pax_global_header00006660000000000000000000000064146204717610014522gustar00rootroot0000000000000052 comment=d11b1007ef5cf8546adee9db3fb8ebf61ce9b17a ntfy-2.11.0/000077500000000000000000000000001462047176100125635ustar00rootroot00000000000000ntfy-2.11.0/.dockerignore000066400000000000000000000000401462047176100152310ustar00rootroot00000000000000dist */node_modules Dockerfile* ntfy-2.11.0/.git-blame-ignore-revs000066400000000000000000000007571462047176100166740ustar00rootroot00000000000000# https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view # Run prettier (https://github.com/binwiederhier/ntfy/pull/746) 6f6a2d1f693070bf72e89d86748080e4825c9164 c87549e71a10bc789eac8036078228f06e515a8e ca5d736a7169eb6b4b0d849e061d5bf9565dcc53 2e27f58963feb9e4d1c573d4745d07770777fa7d # Run eslint (https://github.com/binwiederhier/ntfy/pull/748) f558b4dbe9bb5b9e0e87fada1215de2558353173 8319f1cf26113167fb29fe12edaff5db74caf35f ntfy-2.11.0/.github/000077500000000000000000000000001462047176100141235ustar00rootroot00000000000000ntfy-2.11.0/.github/FUNDING.yml000066400000000000000000000000501462047176100157330ustar00rootroot00000000000000github: [binwiederhier] liberapay: ntfy ntfy-2.11.0/.github/ISSUE_TEMPLATE/000077500000000000000000000000001462047176100163065ustar00rootroot00000000000000ntfy-2.11.0/.github/ISSUE_TEMPLATE/1_bug_report.md000066400000000000000000000013371462047176100212240ustar00rootroot00000000000000--- name: 🐛 Bug Report about: Report any errors and problems title: '' labels: '🪲 bug' assignees: '' --- :lady_beetle: **Describe the bug** :computer: **Components impacted** :bulb: **Screenshots and/or logs** :crystal_ball: **Additional context** ntfy-2.11.0/.github/ISSUE_TEMPLATE/2_enhancement_request.md000066400000000000000000000012041462047176100231030ustar00rootroot00000000000000--- name: 💡 Feature/Enhancement Request about: Got a great idea? Let us know! title: '' labels: 'enhancement' assignees: '' --- :bulb: **Idea** :computer: **Target components** ntfy-2.11.0/.github/ISSUE_TEMPLATE/3_tech_support.md000066400000000000000000000007141462047176100215730ustar00rootroot00000000000000--- name: 🆘 I need help with ... about: Installing ntfy, configuring the app, etc. title: '' labels: 'tech-support' assignees: '' --- ntfy-2.11.0/.github/ISSUE_TEMPLATE/4_question.md000066400000000000000000000007171462047176100207270ustar00rootroot00000000000000--- name: ❓ Question about: Ask a question about ntfy title: '' labels: 'question' assignees: '' --- :question: **Question** ntfy-2.11.0/.github/images/000077500000000000000000000000001462047176100153705ustar00rootroot00000000000000ntfy-2.11.0/.github/images/logo.png000066400000000000000000002415301462047176100170430ustar00rootroot00000000000000PNG  IHDR pHYsPP ѣtEXtSoftwarewww.inkscape.org< IDATxymYUE @À lhmBfiHLMIlSaVfXE(bHMHsךߜk~b=7=޿>4W? eYa~i })tQ3șV~$Եnc+{51TGՃ]pŸ*#kikݞ _/m-, iцØkj}Do:ymȏo__TEh ;$vL@_k@H=EU^HҿC`G%H k Hߢҿʋ?AwHH 6HZG/"{@OF;ҿR_ ҿր-z 닪H-$W@_k@H=EU^HҿC`G7Q@_k@H=EU^HҿC`GR@_k@H=EU^HҿC`G7Tn n5 G~H*/ҿG d! #jp n5 G~H*/ҿG d! #+=kA#?ҿE}Qߣ2ؑk(1kA#?ҿE}Qߣ2ؑ+o n5 G~H*/ҿG d! #@_k@H=EU^HҿC`G@_k@H=EU^HҿC`Gh n5 G~H*/ҿG d! #;h2kA#?ҿE}Qߣ2ؑ}4j$i5 G~H*/ҿG d! #iD_k@H=EU^HҿC`G3:mȏo__TEh ;$vW5N?#[@Uy=Z '#HIUM!H k Hߢҿʋ?AwHH%H˪* ۓ0)J-z 닪H-$節Mf +VJ#mx9!/ҿG d! #i@WFw?*s4&C^HҿC`GwU@WFw?*s4&C^HҿC`Gw @WFw?*s4&C^HҿC`GwU,Z)"UhLH-$,Z)"UhLH-$4@WFw?*s4&C^HҿC`Gw x +VJ#mx9!/ҿG d! #*Ga:E+]D6bIߣ2ؑ]U@ac +VJ#mx9!/ҿG d! #C#ҿh4ҿHцWQl1"{@OF;ҿ? 0Z5k6L3~H*/ҿG d! #JB@K#mx9!/ҿG d! #JHf ۥ]D6bIߣ2ؑ]%`0H."G^E}Ƥȋ?AwHH?hҿ]Ehë(јy=Z '#HIU(@K#mx9!/ҿG d! #JAHvi >Gc?Eh ;$vW?."UhLH-$*5d ۥ]D6bIߣ2ؑ]eAA<H."G^E}Ƥȋ?AwHH2 Hvi >Gc?Eh ;$vW 4ҿHцWQl1"{@OF;ҿL?4ҿHцWQl1"{@OF;ҿ? 4ҿHцWQl1"{@OF;ҿ*4ҿHцWQl1"{@OF;ҿ 4ҿHцWQl1"{@OF;ҿHvi >Gc?Eh ;$vWդHvi >Gc?Eh ;$vWU?H."G^E}Ƥȋ?AwHHOg ۥ]D6bIߣ2ؑ]B;H."G^E}Ƥȋ?AwHHHvi >Gc?Eh ;$vW9Hvi >Gc?Eh ;$vWHvi >Gc?Eh ;$vWaD7L#mx9!/ҿG d! #j@GH."G^E}Ƥȋ?AwHHg #i >Gc?Eh ;$vW͏;$"UhLH-$調h$"UhLH-$y?Fw?*s4&C^HҿC`Gw $"UhLH-$Šˆ􏥑]D6bIߣ2ؑ]0_Z$߼ ߢҿʋ?AwHHZ$9kaR#[@Uy=Z '#HIU F;m%gH=EU^HҿC`Gw5kaR#[@Uy=Z '#HIU I@نIQƏo__TEh ;$vW-*_ ߢҿʋ?AwHHZ`f&EI?ҿE}Qߣ2ؑ],6L3~H*/ҿG d! #j? m%gH=EU^HҿC`Gw2H50)J-z 닪H-$%ºaIҿy&EI?ҿED鿊Hȏo_YTEh ;$vWmҿր-z +jH-$*ҿ @#?ҿEeQߣ2ؑ]E(HZG,"{@OF;ҿHhe_k@H=E^HҿC`Gw_F@#?ҿEeQߣ2ؑ]E׵HZG,"{@OF;ҿH6ҿր-z +jH-$*ҿE5 G~HʢZ/ҿG d! #oFb k Hߢҿ֋?AwHH"۵7ȏo_YTEh ;$vWMۘHZG,"{@OF;ҿHmҿր-z +jH-$*65 G~HʢZ/ҿG d! #_@#?ҿEeQߣ2ؑ]EHaE/6%;_ 'ҿ?߶&zleZ?0" Hߢҿ֋?AwHH"Wnc-: mx9!/ҿG d! #_HŦ+aDw@'$Wo[°';bSҿH0q"YK{ mkAZ֭Uaޙp DІZo[_ 6ֲn $ؔ 6LHnHۚmukU _lJwB&N7kiҿmM6HX˺* ϋC@/6%;_ 'ҿ?߶&zleZH` DІZo[_ 6ֲn HŦ+aDw@'$Wo[°? bSҿH0q"YK{ mkAZ֭Ua~?)A m8ݬ=I5I gc-֪0l ؔ 6LHnHۚmukU_}ؔ 6LHnHۚmukU_(3ؔ 6LHnHۚmukU_4_lJwB&N7kiҿmM6HX˺* / h DІZo[_ 6ֲn Ia2MI"Whĉf-OI?kYVaˆ/0%;_ 'ҿ?߶&zleZC I"G^E}Ƥȋ?AwHH"n4kJҿHцWQl1"{@OF;ҿH@?@w?*s4&C^HҿC`Gwv %Ehë(јy=Z '#HIUm?dҿHцWQl1"{@OF;ҿHPH."G^E}Ƥȋ?AwHH"nÂ@w?*s4&C^HҿC`GwvFREhë(јy=Z '#HIUmH."G^E}Ƥȋ?AwHH"nÔ@w?*s4&C^HҿC`Gwv:Ehë(јy=Z '#HIUmT >Gc?Eh ;$vWkQt mx9!/ҿG d! #_j6ҿHцWQl1"{@OF;ҿHۨI!Ehë(јy=Z '#HIUmT;c >Gc?Eh ;$vWkQo,UhLH-$*6\?tҿHцWQl1"{@OF;ҿHH"G^E}Ƥȋ?AwHH"nÑ@7?*s4&C^HҿC`Gwv6ҿHцWQl1"{@OF;ҿHpˆo-UhLH-$*6Ak@k6#?ҿEeQߣ2ؑ]EƜ?4?]_(јy=Z '#HIUm̏ ~Ql1"{@OF;ҿHۘ+@O!/s4&C^HҿC`GwvH2E}Ƥȋ?AwHH"nc??]_(јy=Z '#HIUm,h ː9!/ҿG d! #_ H2E}Ƥȋ?%E IDATAwHH"nc? ~Ql1"{@OF;ҿHX0.C_hLH-$*6C@O!/s4&C^HҿC`Gwv Il ː9!/ҿG d! #_EP0eHbIߣ2ؑ]E t>Gc?Eh ;$vWk ~Ql1"{@OF;ҿHXx.C_hLH-$*6Cb ː9!/ҿG d! #_%7eHbIߣ2ؑ]EH2E}Ƥȋ?AwHH"nc? ~Ql1"{@OF;ҿHX6@O!/s4&C^HҿC`GwvKHa2eHbIߣ2ؑ]EraD*C_hLH-$*6CK3~HʢZ/ҿG d! #_e@{ [@Wz=Z '#HIUm,9;qҿEeQߣ2ؑ]E(HaHʢZ/ҿG d! #_P4!H=E^HҿC`GwvB!?!H=E^HҿC`Gwv+D!3!H=E^HҿC`GwvEah C=-z +jH-$*6VCr C=-z +jH-$*6VC@{ [@Wz=Z '#HIUm(/@,"{@OF;ҿHX]/@,"{@OF;ҿHXi/@,"{@OF;ҿHXu[_"o_YTEh ;$vWk ?lqҿEeQߣ2ؑ]Eˆ/@,"{@OF;ҿH62 V#G~HʢZ/ҿG d! #_D ߢҿ֋?AwHH"ncм@-z +jH-$*6x gH=E^HҿC`Gwvے63~HʢZ/ҿG d! #_JH?ҿEeQߣ2ؑ]E6 H?ҿEeQߣ2ؑ]Eº.-zXYE6^X O[E=4Eg[0~tˊoWH7†e]!?E0~v]IܛFE !W0lO7oc t gH=,%'Ⱦќ_E\iŵmp}F śjwvB@-zXt,7kiҿmM6p?uFPm'ߢ^'YK{ mk?p* n)33~;Gmԉf-OIJK鿭#[0OO+v=I5IXU|H (93~:~ҿZo[_M7E+-@-z.HۚmlomzHZ֭Ua؞oކ4g gH=x?HnH KADeن) MM_M0FQҿy@xw gH=ԥ)#u<ҿ"z6c?{ A ҿ] ߢZq?R7#;YK{ { nc1D+(8bg;[D\tk gH=ӿqZovC=Q4H ҿ]ڲߢcףnWDz\~x[K{hBmvWOߟ/ҍ082C~a0&_7G'I5?E"oV@-z03l^Qf?A,Z2†+'zp߲ \x(~>لL ۥI?ҿEo$ ρHҿC`]6A^:Dk= b 5.me?} (?#[``y>Wt1nB3eyZkAqOGY7צ1oJ ȏo>?f-O?8\w뵜|OZ鿕jt ۥ@H=H! : \Cw@'v_W˳_z89򧑦݈~qyG􏤭h G~K'YK{ mkM<_(ބOӄEA$m%?LG7xsû6o𥥍-tdӱl KiP!?E/7~֕9.A{:ߊZꠞIb\oH50)1X'H==l|iOsi k6_9m0&6;tn]`7x<9e [MSEIm5 e"G^E}U{SDI] ڿ?ϵKHVEk]id_j T$SN}g!a$no ,J>Dm}AkxX߭ĵ]w)ZncQKsUKz{bDe@w ('V1_ dz ;hЫ+.OC!$*.Ч \wa ֳ]'б;~71gˏYH50)Z\[Ihë(8a+qpJl^/ڻVʠx_t?Y-3~]ȯW_oqݿ?tݿuߠ4.; 7”7>-X)oUVf&E 5D6b,MKzn|`QyOrWLc?t78X_YQ$O| vQmB)a0&?HSeRBۛvnɗ͒Wyh˥_ ҿHm7lՈ"\wR"ڥiz(?=ڶ1Cf義q%⢺}^MdL㵄hI4 Lǀޓl3x+ u9f&EE/ue"G^E}v֑C0ޠQh9N8嬃ǝv{ߵkώ]wX[5MhhnϞ)Zn8pǞ8=c#>~kڗǗcܕoh\{ _ǯ}+_ q|I7UKȠ4 ;ϻN?cߵ(jԄ !F=q4}'}'{*| ~rHMm=B~HVGImތk][6/UgfO9__=K; ?}FREQԆ|}~G}6};=H +8`W#Q4 őQypHцWQli/=\r姞y{PEQ˭G=|>{"KPXy{Ho/+ǀ:_DG]D> >d/hC.G[ן} |ՓO:m]eVEQU~=_=I` ww,0:!.PUgcI_KiXf.4JL!"ҿ@ٕUgc{>{IEo>ǙބBI(ҿ(HцWQlMpS~>bEQ3{>>ݝG H@[^/fWWf,[?V\̖Em?*1v_u+~u)(jpOr&:LIܮz+`ཇ~ k p6HцWQleg_#7~ REQi<??݇{,gwmqB+1oVhj?_kSYx;HblNmOz)%T4yOy;?8yq~/h[ v @h9UgcE;y?REQ#>-2ƭ̼fc@4r=J1_b hë(Ƹ*G{o?̛vN(欿~~^swiP3n歳7^:}Igҿ >c?j7oQEQb}^䫿7?/w|Kǀ'g3EI _k`v'kUh]~ tϽ)htݙ=>>)|B [M6HZKΆUgf_wΝozwWOQEmmr760V@}HZcUgf\/9߸u'qT EQEFϹcohc𭀦> [ @s6J6b̌+kv^]y/(j3[7'x=nl70xк%lnD;?C -_) _b*+HцWQlqM_ʫO0 EQEm|਷tz&cdVVp3ofT:LEl%@hë(̸&ܻ/3+AQEQBkM?C>χً6ڊ\ e%46ҿ[> >Gc8_}k-GQEQ&4Wz֙GO->8ffkGE$@g? MJ/S%@hë(8.|kkEQMu{kꊠ{θiG&O<@p4E(X%?*4Fw]x?EQE cK_{m=H~*`fkiY[GkmxYϺOQEQYt਷{޳w㓾/ B?3@ǷnI4y(_mx9Ck!~Y7ҧQEQvQ奯=f&̬ 5ηM6hqNoe3@K~ /@6b^Pq} HEQ%վ9f[z!+H@HцWQl1*\-/((* ol|28frmus6nsS9/15mx9geMV@6b+^x\@#EQE똽| +zgf+X4 r _bZHmx9ɉs_0Ǔ(VRg[ҿ| ~Ql_-ס;/eq((*M|76㭱`~ P%"3`6_(>EQE=~05|hm6F>H߇C>Gc~REQ?낛/4l~ 8&z`Afk/15U4ҼnJ(Dg={ƓzЭ @MB{`­xҿ'_(8=οsD%)(km4vWa @ ^@!xҿ3FؾW0\__5((>/ztk=3@{ihbHz(o~֗[)(juԞ}S݉;33@: _v!P+g0Hƚҿ(ஸ괳8LEQEQF旄Z3@!S5[x!Wb:'E}EREQUCp3Ͼ ֣/~KzfW$WEOטܐHʢ>A`M^ߌd IDATMG٧((H?[ gf D1A m&ֵ|?ҿ(Ѹ4:Baw\v0EQEQo{skf-FOPHO8o2%;E}N3Auk)(rmOr]e+@W9 '7xk#.9EQEQ4>[#a_!z//V2o. FeQl]1qoy!(ugw!t(~ :?S0^HEmÑoӃ=Kl޸g+N=SEQEQ5?9qZڙi]4@7~+ t 0ߵ~:Q(Z='q2@K=[_ S?%KFq_Vߦ'z5|fEQEԞ;o!D3@?VwG`T"?]Cҗ@k>]o.܍((_=n-굿t@09SںRH6=,f @QEQԣܳ/)ߞo䂡&@\34S/\5})ҿM^89t((jNΧ>sƝdz4p3qFM;?]K3mzXy=\_~3_(Z:=܋'}; :{!DWh?] H6=,g!.7+AQEQڽha+ANd&h#BH=T֧~}#nz|Сo>S nVcΖE7Q{HXHMu7LHo~Piځٳo}d HKW\u?67{+u¸ 7[5o,K@a7G],:<k_>__qC=|f r k?(>ک鿻HNd{YfB=g4) \lU^!O)[{HY//Eab8j8yy+.}@ug_K_|BEks ]}U@혙Jt ҿM~/rsV?ؽ_ >b.Yb@9Cm{(`j?eU1^p; g[I~1O5ꮋKWO>bN{MeoMӻoso5L*Y%s3*.ǿo?!_9\yx/0%s\˼r4nKzP惿#yߏw7J-Gk{R5M|gggKD_"kXH6=,&g4ݷ߬{ϾPt80L8*]\QL,Ec;8~P5?C-Gm/}nQw|ѥ}]0w6ƿ!ukGfoBt } K9fxO]fDZ**#QPT$K,|ݦYKg-n2PU  l.#8fln}С(ĂjXg9cd!"X%eAt50mzS;g_(}kgUlpÅ5|9oB/a+Cɨ& @n#gF+`ngc $ÿW>?y9^~ w]g\2f @a>o4y _xfz~E/L -jz_KaJ.lL$;? )Gᶤ9ee/Oi›>37<ڽc0w X?eiVqHzҿMsS]G-:t6Gv(z~z,4ӿ& >Y4=gĹ$OkG 1Lȍu Tp0 |Gźxnaw;L?a{!%CH6=̍J>BؿkY}󟙹nEed1! ?,\+(+FEŮ0ZпP Y[>{}<uXsC3|OQŌ IEH6=̓M>1380?fnUxTKiBE>] ?i܄ٴ%ۍ>#0cl0Hv6K5OV>oEչǞ|ϛԷѝzYwH␌o?/Ǥ8A\;ȃm8^uk4?a @5_)6B^S{ښ? v+(#ag_6bWRV n_^ӿF0+Lp.?i(8$a?LI|doNMC_B◀k_ kzBlemjr'X4_^JF5ylv53_) h gRj?Sg>Gv΂鸭C_KhfoNy!&xGІS/ݱS\>ѹ-x/m`,K9e8[ő|%Dk&Pv0,TP{Cv;DWŚvIz_bS{BO!j-_ ԑ~x3g[ʎ CO;Yd/:g-M|#@Ew `i,i}mu/s%:2K{s?+ah\xGy=eNeYa^~/~FEK7Sl6#*/^3AG`x2;G__3 5WP"/Xy Whĩ$^k+HC^t[ U1 D(gllZ[)SyX(NQ aHM. /+ n-jݶ_ڌFӾ_ ҔF}Ĉ H_ڱ@Іt>KK}J'1W"\+K\ӿ&Q`Gnao9K5d! c5ƙ B3\HAjB&Ng0Ao]|9ԩ L7G/9Z3|Kw `q-ۥp Qk0.zkcO"aاn2?9Hr*&Fzqj. ,2dV{`J>;LBV%)J6x]H /}zK'L =ƣ _!I8VH0q*yFl^z3v-5Osvbi D@cHGJA3 jCnJ< ex9Lx\IpkAρE/Ph=+a*Oؚ<_o: Rdy+ve)]k`2|hG`ԇ'V5Lȍ1h,:sQNsMԝ&T20H0q>2b'hqe |9ԩ0M0@Ix8'+V(#z/94N@ mOg&EBo ?'qH0qkEoż_*a%j^d׵IAO}餲`x4=,ƅ _ ND 6LPr;ٖg}9o1T4k࣠哯i#n Ο3H5@ S!e7 p['*u E7bW5&0/ 8#(F{? F}xb_$Vђ]_{[$c ce5XiZ -+_ ')qG'ԩ_#`2$`|K) \Hp/%OVPrl3{%%]+6 I96Lψّ}5Eo? қ]bSYE8ѿ=&&2/Ǖ|%> )?e~v a/bL:??S8*6L;aI 0_'~bi D w(@oq)4GR" ))_0F }_GFpI`"բ?@Z|Y]iO m8ʟ2+Z3 E7bW5&0/ 8#(^`C ӿFI$e`x1O>Ǵ=C3 (weLH?#4+a?#>Q\{@"Rn^+Z|WA0%i0PɊJnxf1`֎+w?g(H0q~FdK= 6em]O&>oTVcoV"/Ǖ|%> )?e~]KJ 4!ҿ8D؃p Whʟ-y-MXXDXEJ`?ShT0ERvSja(;ֻ0<$V\bn`6ү/H?;G@Іu+;wSp]?BWV;a m0Aӝd`ԇ'V5)I$z$F8?B ]@L6L}x/R1Җzx?&c$U{mHV˥⬁v1\ X[ȕ0tyP迻`X6+adC?XKeɬ"5֭D^+J6x]  $'ϱGb@*B&Nk+.|u}D(ᰈ  Ha0~Pvwa4yH%QE2DFKsB&N@[~g 7E G;bn,FEgū쏗#AG\ fL `bJ!(  m8׾j#sFN%"x8 w/ ׊U_"Lp/x鿶8paK nZFrW/M m8Kdmy0ʊ|NNe0Fn%\WZG1fld^UO97!.&g*_ 'O? Wav\W@b ,haMRDXE z+˼_tSja(;⻍0 /F=dY0} Gߴ7 ӳ0Ư_7+a(进"#yq78ጠx$($zd?bdf)aK9ٷqt)? i?$H0q?Z3r*7 IDATA\ )`G ]K! WkRRigwl|Hxz0!׳=+a4_  +VzSTVc`{_r AT# ]5SQ(F!t0fld) W@CҢ++M{/ ga@І5+:^WؙͥrR!6(&_՛"c͂rp~YFm3W'pMֶ5+aD7z μظO)58#(^` * fL  v0IIgH@?F3uI6m8 dȩDq5/x a } K[;Of%P3~x:H50q;/׀WZװN;xJe0@>dD5ڪBO? 50`#0O_f$ٯz][,,ǒ+kD7oiӿ )NٛK3Oe7Cm3x_cq_0@Wl}oӆ013~鿆3^1Jmi;|pI^y2#7_& R’uRîn;7m0qZ?Vk@/􏂢"Yg3M`<q 1]K?0ՙͬRK=b)lov^J!J!ߪ šCk@[+v.Yb@"_ڇ,~OkJӿP'~k ?Sw v4, <dum"C=̛C/W+s4&WZlizBʄć"*SRL9MÐrtal"@!q5g RdY0@M H@/[8 [ؙwc8-v*HP)-0@_nZZJ>_"a1?x@/[8QGAQ,ɳXՙ&0/MCcK* \ ?~0=b)^fH{XQ_ׂ k-[upZY 3ƶ=EjXU_62@eFMȊ/HťU 55:U.x^^rŨ׳6 ӿ”I@PLA RGO1aH90F6 8ښ)^Xn!C_* l`gKO8p?ozw_qʙڃ0).(N,V18#(^`[77tP)0מ|ͯ.t6_"a?HEy^Dlǟs/e{^Ԃsu ncJY T@oPy  `W-Fɧ7Lpz$C=,$*(?^.Y,ʼ괳~W^tG!ƶ=Ej2dS[~MDc"I>@eF)M*/BX7/s4&WZ4eJKxFMs/#+<Ȑi(ĜEdB0g ҿdlvp[RTz2?oS^}$"C=,0wHEyy [[C!)Wޗ]k=}  +V3 j x_2ǥ1Z׿ZQP2c?}G`4ƈ 85a l,<&oU!lq0Y63~+Ah  //пfώi}~7ᜋ6H Rۍ>#0@bĄ"L@4͓~9 0kL[_r3psQǼmxm{%ab y? τ3o=dK)eѿ9-HHEyVъSbjN7/|OScz0Qb `dP5%` [WD! [B?rV`,wB<>ѷ_|~ky]ҁ0$iKcFG<h͌WD~p P P@1t# yHos)c`?㷺(o[J pMvk^yInӿ&Qp.,du Fƣ |{'%;"G~ۀ@/^*:g-h/]{57߹+h4NMeh;Yݔ/xN rG'<%TCh~{M'-$G5"L}/7)ҼEw_vzݗ_cmm0_ @= `ԇ'V5CC$/"Cςͦ G.%`4oxJ6;{^rkwccMɝc Gkfon ?.^-n0ܖU\&Z_́jM i6jS v='?p˿핗|z>tPЮ^Ȝ͔juq'[o{9V,g jCnJ7Z*_Z('<+ACh1OCmxݐW<}NUȗοiS|ǿ'8gwh|XtOܐGnaoh6Ʉ` 1gIEYS/ )3_YvyhëT=*[>mt գ`yPWTSٽU =#xcnA `2$`|K) \/7nˊWj{Eyh@oC5M:,n|M[zݗ]sm/Ү\ɓA|U"|)n8WhëhGm>mt 'TaEҨo1T4룖OG>7|_xh>ϜUg/<wVZ!HQ`_U›2Nҟys| ^aJW`KŁx&WIHLcKwL/'p!^[V Ou)g۾ yInNVW|e0:?|U"9I*; *{(GASh/68W?*:-./1o1$ G6&3Я՟}G[2/ݔڏ-snq<$s7|P+aU?*:|,K/3 Z۶xX>ZIW֝kvM)`&6؟QXa^Oh6Ʉ` 1@Oo ?Ճ.~%B."+jHKHt`5A\xh$;^/$p5_\_[gBi!/}ůq_[JHʢZ/Go 6KX;C?Wnκ,cXUo!|NކZro5y3vo,dLkJӿPj>3g-@x' 䫠DsSh1Ģ @Wz! IJI?$gW^񌷼5\x٨i/h6 )RKe-Nx_cK&%)}ABt @Wz͕">҆ElxEC/*X8nK?$ehx?(:'|Ѕ[HцWQx@Wz͕WFR^&,#C:c[-w?Sx D/V[пP_[{K_7WB{[dN:z,9:zSdPWb y,Z _6,]fsƣBa}4K%z٥Z1&*0QT&9 z!i^uWns>:@_R_YTE( ;Wrk᎗ B)?{omWu}uKԁ@wljıW/F'/UJQU5FU٦qpm N0D#Z6}/ګ{{ws~sug~c5Z9j gʎcWsh&FXF /C*J$F ҾF p֩bGؓM:Z2o~ߥ{:_>E) 93{>|W@@. @>?#N;. k R3um|I}v 6O+9l#?]S$ՒVXMM:m嚋/$pk?G[o2m<,IaJ#^?{P(q CYeM{-OZ$I}>SϞ7sV)?lhB Wİ0 |Pj)qƝ?CfHhd*g"76wʮԠ&)/ȅ;̙3 4! HDބ5)|?s8 ``Ɲ?CfO/ @%/n9/}ٹwB*4{8竿8NP| n1r8eOۮOuTQɾù~T x諝;$ِ jzC3/]yޱLb{/8e@ jܣzrK ݰu @KS? *i<_:u=,JCp[; w;+t[9ak]zߟ;+}e}<,MhB Wİ1 QkC"?r30/&] ,y7οK?D8N[˿\ A70!fx g  ?sNfUiVL!VPI38G ?W Y=a0@ = [;[n5v*%I#]w҂Yi>h.dGX`l-@ϸL=?lNv}҈:H=:7*w?bV & W_\-=]$Ȍԯ>v;f-3k\OQ=è+g(2cψW@c^a>0\XA%͠g202oߐ*\VA?/|^yh´p O?竿;))*{! '`1Mb bRKF4ٶ*vU(6DTxv̓e>knLB-ދ\F}>1XN,d+.{ ͪ06`,CT zJ/ @ؓ0%MOl-?#YyomK 0hv}Hiz GX JAO_[(02oU;g/rm9/_tM;wi+/_-J]ƪ42'@ &*%Ku R v舌S? *i=mIO7Ҏ4eU ;-ϿKWlٸglb&&>&>?>뽋 B 7VN YIS mmFb4b`e|I<:;b^]1ػ碻n_bP$u']|3g>&Hп^PC ]3t6Xڰ `j_PI3Yk.02o0@ (1,Lo){v]tM"8Z8k΅֝8R'1y7bNo)[v =R'Rj;@*wp؎ge_PI3Yk:02o Ւ$^Y鿤兝owEӲy ^xϑsJ%-@p%<^!Ef~v؉*i= N%FP_Nnnz3_b5LpO_?7rARx D el1үhB2# : 68ۿET z{12op@v,ݓTzd}eܾ;~%Ν{K??:ϙWh$3)v("$ nJm- @umz~٥RH.с?F4^IK9cE XRoBRG=n[zNg/objtdN嵿p^u{܂B0C] ^fUk[vëe1-3i9[7Re/ *i=Kh7#uTj~4S6aN[wm.讛kV/U[LoTGEe1 &ik1 ^LuQ9qꎌA%͠'{5w ]Pש\b֍u*3 tނ?Zދ9bG 7 _FO'8~EېX 6!pvek _T z)$F^bwC7? CAP`}Wnx7|V:b??zfeR?-ڢ[lAV;umׇ<@Vaa42w``%v1tQ5ԉVzgâHlmff0FShК1: A7d/yjG;[ r3)$F^bwP?.!{ԅڦPgkW?Sm ~tat]l`_S7-1WNķu6BcaPI3AE`F^bwC۾%U©ۤ nves>|SOzauA OSwQaLńWc^0&[> JAO%wK쮹c\‡]'P$ 5vyͥaBaҒ6d7R ZIcb wˆ\Ffгw ?]s`d/%iE`i~;pO$@,UV_(\f<,+#F@#ڏ<&@,%p%ˀ8eh=W{5w N8ԉӿD_\ogysbf0㲣?5e/yvn3Aߕ%F^bwPU $|ZBmC꣐b>srU W?b~axm}'Ȍѿ3/& D!-eCGJeh=Lٽ;h/TXCLjtO}r}wG zrKcnc{)$XLx,ueBH-f3AϚK쮹cH 2QZV?L ԣs'O}ײ aK0Pyz=!XJ#.&U'08\2g4ӿ$F^bw7d}&`C: `];0>wϜC'f ?.;/ ?RB#@0oz%pF3]?]smp.!/cR;dl\-w޿o k ox}'Ȍѿ3o=D!MRdh=cѿ$F^bwѿs;@*qL1 Tam+˾;*NRӿv~h+"`w%Q[~)2Edh=#ҿNٽ;!+Th.4G`bL+.!o}=|_*T^]Fnӻ ={-gD&?~) y- zƥ7{5w CN>;z\0^\^عl;L䷐ˎKOPa򲔿͠gtw΍{5w F "0FH}T.l~W_?|sa, Z@/<+?Ch}aRFfs* ,c0me'8& I4Q:JWrӏw>lS`>Û^z{m x1W~E5T /ӎW zouCMjRac"ݐD ^5:cG Ɖ5\|φB*7UC[i--2V0wË Le-VJPJȫ0lFfг c0\kv~ͥ6\$U_(\f );jW _JCf?l;b`kҨw: `eGXcow`|;vœKxfhyY蓔5JOPaރ'zTFfг1( c0/Q=9Ea]1J֛گ#Ca)05@. Cѿ3.z:h}vLVg4MWG;@D!f\e輎<_xoƟ=rl` UC[i--2VR^L`/ D]lRRD^e;3Aφѿ+Ou? "o ? p|¿O3Xv %iʎW'LvF c`Lu?E$1AՅNPA,<|Uk%vW\֠?v5׮ Xa`'z?$F3Hw?Z1c"ɬ.h8?BQ_@&ǠՓब-jOnn!ޟ0[!YVxlk~mrg["e1r,e0ZGv̷6vxW;5A'40E͡ހGL]*_k㗯sN:lgXP̽ f7C6u)8 .9 ]2bOK5tA;ߤInv0޴[rgO;? 5a ZטLg$ڧ,Jz*1(4Z ¦A^]1I$ϮM;룤H-wwۓV//^:wJWs{lqev92bOSo30EFR!EO 9CfBe~~mc" g~rE?#o/&}WoG#1(~s8 -jwܿ#\KYc!T@bל͞{IgOo FNQ(Bt5Pd_h#p\yNrb읅[iOFcP)ԒwVZ ع`a[L+78ܙ3w̛9 j 11-6O \~B]ET?UW_{ =jZ`_A]xFFkgWK]Q3>x΃ԗc! X.qٻ3g$l4 IDATV 1n⼬M*P*&d=Ş[5!0E͠pzdU*5{_e o$m/ ~ 0L1Cd=ŞBlU`_A.T5K+v<8wc>{k^ bhTZov@Dk#\yNrbl˔ѿ{*&F9e%I">PډoR_xƻO$XLxz1IG^;ѿ{ҿHOxTt Wpy9xμǞc70ŷ?#5,o7{V17<]!<Ě{Uc^0&[<CW[d;ŞjI:Fdi/,"']Z`OYNRr]ݻ+>䧚q.R)qNZLT?`!RK⼌3#p (1(T;r`1J]M]~hќs♿uif|/Lc?=lal-6LctX` ?nP1va2_fQ;te۴?cPVw?JRЦx/K+vt;sև~طzEҝKlxU:<ӛv=mL<_{ =M# }T"vbY8o =۷zEC/=w&?7`N1t612}O?^1yQS5W#7sPcGS0~)%q^V&y(Z8]ѿ{C40G"g5TՏ@@*@suN?gբC9v׍=8 *;/ ?nP1W-@i:1'1(]80GFoo -{YZ+W3sV=!?= ަ1Nob[ (2cWxCh{1_a =ŤH󑆑M}W}x{+/}^qsnS~emϾbj..3lj]&?~) ό54U]!0Gvo?)Vb(X[ࠏW=ɾ+|鹋6mxP$8PeG ݌\I Wa?u >0;tBv]n=xμxo3}`=ƫ_o-G ަ1x}'Ȍѿ3/&u;`؅kTjVA!S]C.#u>\h'If Vzyol=0ޛx` S̝O}%tQn,PU0̣ $,8ހV?u` >R2܊Y9DOc_; NYVڽ5m{bj..35-;Oh?H]L~0}n?3T& 97j_dStntdu'~w-@3)?|˶]ٖ $/Tip*@byYʿv'Kq3?u諭 _o ϥv -`ǯ؍$ܣ:Ⱦ+&>ͷ=B@ik^zs x1W~۷h;kV0:xw.!'F1`5܃W)|/{$ӗlW_5/N;0CxRt^L`/ T hɻe9 b=7t267F10;'k"o7L=֯>?zo!?0 Jv?ծJDҿϭgF26)01A?2qvԷūR[o^<>!?^pH qxʎKOPaR?_ ! O6]u`c NO*B^sޫ7;p8"?Bo_Ȏ; c*Jb[mbʵY*Ch$^5:?G}mƝ:Gt$7aBY /&0y4ݲgŞ`OawlW801FPw3==L z O?vɦ[߹cr8lT}p96&M=!XV6Km9C'a*M~R?J>Zk(r鰌MLc Fkp 0^ƺo鹧/t!0/@q20AAMctX` ?RB#@Hxbѿ㝙 2rm(;`c sʨj^HW^xӭ[)0eJ5`)bk1=%ֲ~^jyû'*_B`ca If 2jt^G:[o^{WC$! k}!Z[MIc uߙC@p 0^zص۷\u=S-9| -n*[*@uu)w !;BvGKs /|3h?|X1֬FBeP:h&Xz[7T _FcxeO/t듯RӡfP.:XsU\@<AsxjI:&kk97jeF yk0&~K6ݺuC~JoyF@FҞPX0@AVQ+0T 3#B:d+?յMJ_o Μg .Q@umdWL^֎nOmw/6dӿDHvZ}7&teBAcƼ`|uX. N1ya2S][I Y"o7pqMnaz?K6mK+/.3Ƥ'T87PPUrJ?JkyUZlCtVhk[!7K"']?bgҦ=W"1@X R\Ʒ?յ&! !פio]oCO|Fʘ6Pd[ڷTڭH@XDwr[V3l]ܨѿ$`O&vnglob]uD \ae3? J5;_.3j^ѿu&-?յS -D75)vм_~{7l{OFʘ6Pum~nˌD[ ETzgȫ,gXZٙu5wh`_Kl:kFkgW;g;^lC~D \ae3?^ȋWp,Xwd%6v[@&L< jGzc[ƃFA쁗 $5FH|iy۵'x1Ѹ{ Lx86˃"迖F;;_Ԟ۾mwW|@_"' V:t:S48Z]ӮLk\oRT\\?#\c7>׶]{&1뽢k̑6uVsFK9_qՖb2]LeFљe'tx)M \ae3% >,7xSƮ?Fi׎ӿ#'F6_GP;?^z{7l{qC~/(c_=)ۄs:LlUgb?l/h$Fn.'ӟ*k 1nT aj~ƫm㖧aOI_ÑMw &*}xT"]!0%vR}4@toގWv}zU8ss';301U]˨t@t+|OnyNDWd/*K ҋ -M<(ri^kQ'_{o?9%w|Np%4r*/=[LC T#]WH0y~"uAՏ7zyίoGrJlbus{0M.HS'²U_mbq~ [/*K -MZ0Wj{lmw;0]J}Lt]ik7"Jk%yPQ_x04;y~"-%ڱiͷgm"WHiOXߕJG|O71bW5[x1'_TW >ZWlD:{Mz/js>G{aDAiGMRA66&yPQ_LQyF-S?4B{{7<ʋA l fB IDATn땽̲#LєmuAd8Ls W6ƞ=V5+{eG)ۄ낄8iOV\:8\#2U?|`/1jN?ˡJ/!L|%6<FL,ȤN%-,e4jUaŒ>ha/*+ L`/1jZ+}W%ƛ鹧/^ ȏVŧJ^F#vd I_86%Mzmѿ+flͷܷtٱ@B팷GQ鈿8C`RN} Sń_e/*kH ?O$tdSn У._^ |T-Q5WslxiGMOۢ}AE} ]D2]M2٧|͏Rxu?ff\v}_ ],+п!0dV_E?{{7<+vX@:^8o'L&d0 "=VjzR&ѿNy~"3$-:cUv/?=>3:4_B c#@M.ubC;^9l#5N?B_ DF %21E/qwbFReGqSAtCeѿKy~"Yퟠ`_n{w_}=)sjh #?\?PR+Pv]s'FҿSJy~"#Vŧ@ wlw|Ŷvpêl蟆R BȄl67I=zr9PG諩4H3@Ң3VQE[]|-~KVQKQz?L yNh47 ڂMC}580d/>k/{WQ/Yv7< /&6WIVjiMND2gKZoyrK+""I,e/aJ7_9hOιK x!0W*~0¾IA 01!@FB7Hq(@)a(dwh`pMcdn>?8/{b%<Ԭ :{6Z ,_m)퉠K'ѿP(*רF?U25Gy8WgwfA0 DgRN_GOCD2*U!$ =EH. _>Z ȧtA0'ɀW?W1HFr1^ LJ,k-Ie&蟆R nb2 lS-/ѿ$F7U`O1Z S2*%8\fߦM`jJ &ٽګb`xA#/{t%<1#(uBK"Foi-x._lmWKC%Fu&F@Pҿ@Fqa55` a <+cb؈Zӿ+ȶL4gJTg1I"*2RLo,z~/F ^cH?qRlKv؅% AL26b/t ͪ0[ƭCHq^ǤT,$Hcv>E/?F1 ѿ?m8HT[c(#S:e]{}eD#udNrʎ;1"n`SAV5w E5{m?bsس #\Ƿ'!L(Y7 ŀ­>  xC):J36HڌtS$FFͥϷ3_F^֕YIfT韪,f< @DCZj#U*8OQi``‹ ekK^`_jd$vDrzA~w2Hb/t ͪ0V]ƭCHq^#gFֵӓ uޙ`hN8k? ^Rs})PÞ{7"`l z0ERFuT"&FJӻhhG nnnx25w k$FFFQV0K)S+ȁP#] ^fU@N;ZSzrn#$Z|<rX[ R\Oo(%P_[ *  )$FFm^>ddYrF§ PSpi ?:?4Xy00Ln|sqAnR_"a_F ȥ':3t6Xx' !l\gJfx2'8]s dpA`_jd?XqwAUN8Jb?`4e 'gг9S/ \ehG nz?N1MKC9T,e{ К\˄^ 44>e?'6B eGc  @(Js?FRQwPFqAԨ;%w$Lx"0!:4l&s&|5?4gJRDZ΃`_a1$D夌t֢OKD^RdGM [jǑ<$Bo,K%J!IجJ`텧?foY-]sǠԨ{@w~!2*F+4m3Jp|?lv.UE RՓ[vQɽgӛ,0^;m'FFF :|7bG=T)"rO{6) >Ě?0w?&ƼaM  WXL9 ѺcPGMK*pK_v`ԇV-Q5Wsl@j`X-1/]8C'a*L\o3#p }G5 Nm;:ߑR#6*\ƒ?lIR Yj Um;0 BrK *jF&d;_P) gL/8]sP迍 ӿCMWS{Ļ` / (Mb)C9WKH TɎW;X{ۤc]E`_j4 -gxĿ@Ŏ`K{:蟆|س?-0Cyc> UF1/`GH\Lple+,&ShusF採Vwe pP ݃Q.ZD_̱Ye`t) ͪ0V`xs}'_ό5eG["8]sP7``_jdRXW:_j3?.;/ ҂韚Ѳ َJ+?F1DOK{m=A0!0q.(Bo_I,eR57j $j{1 rިQJ 9qGjq!;O`_j4T%N;-9(Pg30C)-lQlUJXy00'Hғ›CIe_bӿ'FFF]H>\_]50f}Oԉ XqNfU'2gFJݖ-L`_jd.%g$/^uҿR,;ˎK eOhلlG?%)2GLn:0/52o/P8@ik$2hOϚ[Tc4cg,`ő!StB5jFP\liBUG Z #|\0CTHV0w$LeO*a"k90=7tc{4ޤ3cM#t7ΰ6E܈[U n J/QuŮɊ?bޢmbY,(@\Ci_CyLhPMkр97b_bdOu%jцsA*;/ ?`&Pc?5!b/?(39hlP(>%%kTnJTԤ5:Gmk4 ;ZSs8vOsM!hI @迫Sȴժ7E{UɄ7G,;%FP\5[liOCUG Z #|\Mcz+3wJQlUDŕY9 -0&#V'c !$MXoѿf{_+nɱXuŮ"5 ?3sM~gsR`;p0LYNVYM IDATꮝe%lX+dlZl/K U9/0AclU'88pȐ*a-@ؼ 6CqcN@F ĈZƒI,C6FhD,Lv@+ہ{?szxam>{'Nk_d7Ol00*Ǭ5QvU9/0AcmU'88pȐ*a-@ N~).Wqթ?%ጩ#kO`4Iw?Ԝg?3`rF4`Z*‹]cM[c|* KXf_mZX5Fþc/J)o1L@F%/xXjݢ%H Ү2?+N/}^o9"ؚJ5cF {쀊L0M0?$m ?Q:@,y<@bK.s1?'@#PJěi3f~r)tf]oMFzC(K1ckK`?=>VMg -/ѧaIXx1_0vwrNjNO+'_o ?W9fL:axPUS}pg?Svk獐 LM [%t:X$1@9cῲ[9=?cS(rA ]vpE1r,e0ZGv/Bkh}A{. nTjEtGп0<ύ@MJ1AK;k`Лx;FKaJ^F#>.&ikH1/0q@n fSuCiR&ޤ`M.3ߞ|Μtj{՗74t؛dn+aPu`U9 w &Oy+v8d[7}lD,f< @Deڬ HŖsr?sz/3/Oes擂4^oݍ9Wg3#vE:kUD|$, lD \(3?Z5FG`@M\W1,$'zߋIs1u~;uOȅI,3`MشFH-WCqc*ѿNܮH""Hx @|T_ ?#ovVg:27?7˿0s` y>t3f#5W=(0'5 --0&Easw3:ia#Em{('3xI2D]t`U4K{8S0eoK-92#ꊝf+0dKg) tbƓJ*ӛ Fn Gg=2cYK;l%t~ }?- wS ?W9f*Qutd凯_vV,XTK8d2P?yu?Ex(%mTbe_KoN,d_y!HxUk~1Kh2L5=Wض˖-_Ձ ڿ!F}{=o3VYj홇y9M&4$?[KJMӗ99i\~h_K쉾JUbv&SRc\s֪8b1L&ɔƧwG*"? (E)׸g{5%T__Ձ؇-#'I֯:zGm!|L&ɤ/鍰fŏI wcaq#mu]00Wu Ho_ LV`'OM}Ό㗯\j9kY2w~L&d^"{>L"I<$_κGY20Z:NΟ:h$^?q>FRQ-x窵g:VϚA|d2Ⱥ[&Uؔp*әBw/7 `//p:h&;<~J@s!9yw:Uk[d2L{v}ur;O}=Odm[ѿFL5cZ~З2`֌\j8zh7&d2թs.Xϟ%){2K(w w@mְп$F>[pg:rg\3o,xL&dBko)KF/&*ʪA!dZfM'F>O@$`\]PGL&ɤ+6ݞы!O]qy/۝@ _ՁG|H2rܲW}G>jhd2Tsߞ7h,MRPIẝ%ve_F>%΅zg^{֪gVd2Ll}O<3yORp)t8@-)}?v_3f?n jEZv/[9b|L& s?>97MӛTr'sRNXcZ!͘mYs$IcTQᘑpמ:X2٧WKViMJ6\'%_h4>G۸xV|Mot5W=cё3L&IWc?]hL$_pO˿2/-=J?0G,*xkׯ:jݒCd2L&\{[: h&dj{?7,'s2s4rngR+O_900D {pEFO_{9ؖ#^~>~A-&d2iw<5\LɮNjg?+kR apgB=;d|c_]=cG.nK3L&)gx?!{fE0"O09HFK%FQO_j;EsyQW}GΛ9k2L&IWcگeY3s}%!%R8cTO`a9H4kHȺI N~Vnavd2L]_/f~N>3WO}ٟKa?̥è9[R7Fd}]jC0L&^ݰ}'g9|?] M?v?0&dk{`2L&S_\_잟C_Pyr WFeTè?ϣ,׍d2L&IK߯JzO=TϸxnJGF~z a@@ܪ f2L&IEo_k?Sy?Y߹~M[&4+j??0jgztx&d29W?STz'qNO%?}GwҪ_&I~ aD -=W7d2L&.?|R\>ݚ)pfSBZeO'FsFkhd2LL]e77O}dt,g{ra2g@_^9w!KL&d}9៩_L"O;S?I0|=X_bD$F5o]d2L&n~R.MoFI*;Q? aD>Yznld2Ln~Υ?3}?E=L;:*/Hct7!蜷aНz>z޴U9Xd2L&Sc~׹jtHCʨ>Tn*;Ty~S'F_' IC;d2Lnؾo~rs$ws8 8W?/-f`aO?d2L&r_gC_zx8M{f3 dd"KE:cˉGDJ!)X͝9Kg&d2O_wNyK7>ߏ/.e+GFՂYsFjnd2L~;0]a)I_~2j1yEK# {/M záL&d]o޷.y7s?͝ R ?0j7ͪ?/$B`a҇/[;d2Lm~?=׃?'T'CCo+QU`aZTq4&d2*.u$8@S?I?}b?;zF>=ӞƕFUSAcE?0cu/OЂٳL&dk߁GS+;WKRF9C?Fp+aaX7O_+m#婧DK"PTe* !Y#:H{_+qP ?avჯ?n[C|p?,}?"*;E?Շ^ W}}0a]?;l^|?6'?žSj{%OLh/z WpkS3_Mgɧ?\a]?l6w~WoO>8!fՑs0ձ~?u^%迯蓟0 ðk毾yޣfᒘ!#s?,S/{A+4??faaW6aw~{ݭgs' .xuog;)&z!ޟy H5_J_'?> 0 {x_}/~ϟy_:<|~{j얦C 5Yh.zmF~wRM}ڒz&- 0 ;u;l}[wo͗퟽pg3'aWL;QzMgX]8I Y Wƥ/XũGx7{/1f#0~ GlSwC=w}o~֫oy/]122L//Jo_n=-Aq3?D W1R;2{sĭ_yfcJ. ~5kL)v)cj1gE2a"╴aQGѮT;$\]Mt4[@&'rV{KC>"vvןK{*z1Τ:)3Xo 9_eWfoGI^H*G'rϜwZI?Ma@$'G}пe܀{85Ofǟ(v _ɟⷿo_8/0!ӭ- JzuШ"eӘQпk1poɓ]?+)@пC3e IDATBn9<'y?w?*|yO_|afc+GzпE W')-R}`aUk/s M+'f t6>Jcmټݧoo~ssǮ俓,o 0a=PʽNwfEr`ky+CMlE? )Y).?n*?g 0_@u~G?xt~BjO:{'aY)al'B ;P02*dM)i$]0G8jiu?0v v9  KӿpmO[{_^}o{? K 5Y&u"Ob7_^ovi*ѿ2iA?<}0wwLbпq eo@է.{?L`VO?7ߐwN.vOδ۩C-xR>鿦_a6&_ŏyˍDAB!пCBΒ˧&^p on~w~W_3 W]]lVBeC8zeѿ]o?+ B35T&jgVB Ժ"?볧D~߭q:F HP'4dx&@ZVU*пG^MkFҊW҆1GhMK-W՘|MSoG35_,IHm mwY̷yp}WnH6W%w?gd`p?g:_eWV##Mc'a>P>ת)ױOkFB$LaUZu#п?t5п.[=!ɰȶxWMA+ļ8I_kZѿ_&L@eX) }~\p3]?D}b%O:g9| z׵ 7/lo?ԗK]/z埅Sj7C~|~uX˻?DJQ]1?paw竚k2W?>С ogZN 9 7*c¡NypY77?i2qKȖzMltqk}_9AHڕء4MT~̻D_)ҿx`hmi>M͂ ^L̊᮱m/엟yރ!'5}Ƕ[vBuvuWK4+KYhfhꉦct3 _p_t_o??zUmY_~o[ ot}З:=k:Iep Stכg@VJª|*"\K}4?̀N _C%=hk/)g0:Ueѫ?? IXП8<ϒؿ-7IVh{!=\cG+^IucGBZȊ-ΘxVϔITFY{4e3^?44пގ 'fwܫwu+>sZ915SG=^ wG۵A6eX)|OL!ӣrt^`-k5D5п.7v۾O KvןKO?u@ .6KC~e~L=Z0$sVaQ]D'Ս9 6zy&=o-g)ʀs%BBn~;R$e&AS Nȶpoߝ'ӯmjiy΋2D6a"걋/!nQ ݀츘uSr]0#e?{|e6V_Xߩ+"ϕTI TiҿRmr?gjN>A]J6gH/SܿT\ŦBuzSPh 8;qV}fwor+ 9Ntyv_V=CbQ$w0͏|r'Y[^A?_o~Riy/qv;Ͼzڭ?~)]@}EʟTԦӍzvNGբ;#meP>V~]M?cϔȠCz?ubmg77./!1*WHEg\eƐaB _%PvU2 CrXD*'ۃWQC{=H7пގ SYʥ٣~/e3zŋ|GRk39]m=gkXD(N靝SVn c.T҇w9ǯS~C{\\-8?_oM=v}#a{|7nv?gr/xbNfȢb|NE=źOT(m6|nݠf섏#hLG]$DzW;]5QFU'K­AÃ4+|!kզ\~uTሾKc пE m [Jz"H}Y/YhgG,aGA=?߳-޿+/}'~R.*ed4WfgEƺo_ MnyL-%?҃-jbm)C,~G֋RX ` o@c2Oa)vן3(lKj(36T 9ǥ[p$nt\Wlײj!1WS+LajkQ G/^/Mu$l$VC_Y-w Cm,B {iՇ=zL<6Kts%M _; o=1R|yO_=W,Ag@\*6> Bld B5Dn龈7cNҿFEk?籬3WReInj:P@e'?R*{Ͻz} f{y0G:l/^茀2j8_\=glvBIE(J(运'sf>&Df)9Sg$G:kO|'6zc]%{_x_[_z= a4m/_LaE|П_٧w3ӲeBt$8sT&akAr|Rݘ5^ 9s5,#@ _hYiPأ;oO|߄b"f?.;e\a/UпLċVA`_Z?;D߿i6X{meւD m2ӅWba$vvw=`J _;:3{foz?gW4fS!.@>4[#(QДO5/%&a$;wۊ Bn2~-ܪ:VRwDBhcE@qv _;jfs]l6o{~_~9ħ  җ]IY2tM7@>؟7N&,WAq"{ olT7(|ɇ,5*MJS$\$hRp.w 7YΝW%O|Fu{~מ볏o C]ٟBT@(^ !;/zڎJ_(,pmLҊ-(5ϝ Bn2dK? 9VErkDAh;Wmڑ}!{ ={[\0mVIay*`'2,KϾI~R>iL8csrҗH=Iy[,lCy59IucWGjMSK*,rUI<;(@vdR _;]z<3_7C8WMa\t'zS!>]_5,kktMn9ПXbOTE4lm5_Os/?l7of,Iם]@iV `Ga@eA!<Ŗf;o?3?xei au~BMgvy!VI@\|sxk/-8[H%g΅4\΋T T1%PvU|Rݘ5^-yj_݂z(?,wel .{G}^Q1z&욁dB N ͜葼?6=G-%S_򩽮Xؠh+nQWpJXyokX?D _;}?pg?_~ro!}oA$@!7-]}?SU?I]?b_ϲ*q3Se4A>UlI16 76?ZJsUZs%I/_?Bӿf,alӛFXlBۛz7S|Q7!n7tx3/ D !1)$&caY._ _c Z ?pKпAъWRݘ0Ғ| ੻ImX0րz?p|_M FLf''F`Z; B'Pف0%H~6z%&/Zם]S±b{)J V 9WJM -׎CMпeu;! +񼸚K ' n.p{@qk:_NыC_o[.A(m9T*i)8 76?ZJsUZx^BQɏ?8G9O7,qsngo 6`8cn6 }?PTJ_(:`$`NқrNuX|oviOڥeC z?442li{oi=iүO}̮-Ez$nJ#zkR!)b:2KvпT7( {gO-NCm.2i>j_rE'҆ik Sa%Ud_Tѵ9IucпJ8[\>]|^GwhˁgҨ?R\ReZ_^M{6%=9Fl&h'&dпT7( `WCGњT> 0LW.bJ6`twRUf:x3B1sK߃I6Sz1? +%Yڞ5 @%?^Yi~A.6B%6`i nfg |Wb§+) GRhK7@VJY ;[kWCG9OSN!,.)\ :%\YlsTv:{O'JJVd}+:޹,n2@r/wiM@9?apq⩀C'-,uaZom[EW]_q8eBuayWؠh+nQWiӿii WtXERJf8..ZJZ %V[m?%_NlV4(J0)H X52\|D˻ª]xT iؒc%b?SOj/v*n ku Ԟ1Ga_{'Aa@0+ 0,[`-"f<eBOJlhɓSܥgkzӴ1L:u/'Ս9 C*-ߣ_8]|>i=@1O!N}ͼ5>Nn)'i tH@q֟Ӡ9?>nQWiA%@ 842io΁UB IDAT1u3@X6 x* l?YRM?QN$IuEb~i4_)(9J? ]>٥ߢ?iQ/zm.?~g4vH ض7d>Ns됦2k?jLGTWr}i G+^IucпJ (=NC7eӷ̀tJ^Sl9ۀ},x2+Hc>x L0R̖ olT7( ?$ [=Oe|0[_=?l-b'3/" 32K hv+NA@.G+^IucпJ (=Nôj2`zh6 u^bUR $y>x_P׹ê/=] VQ/z.߲ @io(IQ L 5=B^ !ПfrVZk|-olT7( ? oY|ꛝ=@X=?\pBE+4 nR0Ј~(`26gqC gxSBlykYazy@MA5.oëdbIdnx%Ս9 C*-ߣ_.߲ NPa,R0mC//X7GПY P#Z\k܀-˸DϷ.u PTthCۓ%%XEaHC9ǀۨ^ k*0G- }4S:Szsk _SbT7( *@Ke ۀiu.,I֚2kYɶtX}\=6(`26gfY@@-=@Fg#Wo Ȉd7gMBP?)AբпAʰR}[kۜdMg+A?Sdͳ6%WUV3zWjuEaHC9;bg!WԶ2kP:O[MпAъWRݘ0҂=JEJ@GH[B=^5I+Y٤ږo6h1Zw0@VJпtk ?oril[srw4CYvgEbx~wj{HOڥ{W@GN[B>i+{a)stf.)yh_א@['҂=JE+OAhlmq0%{lRך!&ͿA5@I:H56 6gdeњ̝n䭎)'e2 ] VQ/z\&89߆kz~c %V}~vuR&0Šh+nQWiA%@0olHc/J璺oEl'c{HOڥ{׊C@'M[`J,W6oU/?/пVoviOڥ{׍î oJW _o_˖ XoQߟK (=!n@WS%OL/aBSq^*Kc пE .-ߣ_JonakM z?_ XoQߟK (=-07п6Mħ_[ ;4@e$ zпE .-ߣ_@6겗4Eke$ zпE .-ߣ_F]i0Gt? AOڥ{hhu?Z>&xc2LB=ߢ?iQ/z@V@61a-iYIR迠['҂=JEo o.{6GMo[:wIe*Kc пE .-ߣ_c+5пuủ$Ce$ zпE .-ߣ_mu$i%XkM? AOڥ{QN~j,5aпAъWRݘ0҂=JE?ig! W^Wʐ0I ]ZпG пKju UaпAъWRݘ0҂=JE?cQ_x%Ս9 C*-ߣ_6ou UaпAъWRݘ0҂=JEhQۨ^? ] VQ/z@5ku UaпAъWRݘ0҂=JE@.#=ߢ?iQ/z@v^? ] VQ/z@M&@i UaпAъWRݘ0҂=JE5ȰW^? ] VQ/z@ _yAп* w1?ZJsUZпG пLC0Šh+nQWiA%@o 1Ga_{OPg_x%Ս9 C*-ߣ_;zC0Šh+nQWiA%@n 1Ga_{пIW^? ] VQ/z@VA_yAп* w1?ZJsUZпG п6 UaпAъWRݘ0҂=JE6W^? ] VQ/z@A UbT7( T@+/WA.G+^IucпJ (=AA5 UbT7( Tl 1Ga_{Р|_x%Ս9 C*-ߣ_GeC0Šh+nQWiA%@$5 UaпAъWRݘ0҂=JE!( UbT7( wu_x%Ս9 C*-ߣ_h 1Ga_{пCPlq_x%Ս9 C*-ߣ_o 1Ga_{пCbпAˀ{HOڥ{пCPΠ 1Ga_{пCdWG @oQߟK (=\] ]+GzпE .-ߣ_rw5tA5@Iw*-ՠe@['҂=JE!F,>eIF-_x%Ս9 C*-ߣ_*қ.#=ߢ?iQ/z@ArghG @oQߟK (=&fAˀ{HOڥ{пCPj2^?҃-jviA%@;Y_;*C^7/$)_Ѓ-jviA%@ ?ڠe@['҂=JE!H!w1p6 e]2 yy߼ AOڥ{пCBn?p7tA5@IwR7[X*Z!/a/A5@IwRM X*Z!/a/A5@IwRMq X*Z!/a/A5@IwRȭ? kR2 yy߼ AOڥ{пCB.IaL'ʾyGeCe$ zпE .-ߣ_r X*Z!/a/A5@IwRe?X7bkwTdwdL}'NC!L¦H_8MWG7oMX;nsv).FӰ;M]otci(0,ʭTv8s@9v 7"N+AarK,W5hsό>H/}u.iykfRPPW>$WNj5ComO$f4H0< 1ɥgpZI k:VIA@u%ZP.:\%`m\L/W(n}6gi` g A FT7o;7{X*ST}& efY(r`ɉyod3Z]wJkZ x0ƀU1}Lc`s,@GNG(E݂ x{3Uڕwås+u8z*6N[9.$bEahM3=kml5POrNɿk[ c 3Ν@xhhM]4A4G/%שܡ.l4VA-~dZQ[CT?94`vE8%(XKrFb9Tph{m|@9W۩͍s.u(Y)##^|6<>b1/` 62:A}=g {ihHu1X,ۤ쟅"Hp<| 3Mp{l@awbfusz0Dlfh0 P∱M,kPkk&2 Suk&F-Mkmӑ*QƣUϜBv&lK@q69q颉Q| VӳjFh{0|fELf$]x$E `+la4 Ɯ:,@yyܠ InrgL0:r)|xP5ΫL&z>~i l_7AksRf9[=! woz[eYAtY֘Ł9T⥶+t1 l;7Lap 6PoAemS.n_ϙ!I,MI0IOH^{e;p)k3!}+#)xsĝc8,hӥk_G0=Mn96b_iס91$y+2nk-Z+o#`ښ8S Qt d}M( xp%@a m0]QL57l;m$Nç%\no`2w6J_#k &uVM \ 둙?v6Z}:6WF(kB7/}҈@};+5V/17 ,:紈6"c"PRY^3}Nf)k;NQjUJiz"QT*ʈn9` ʆoES rFZfϕH;TIa.,I N@fCFZzBw)`ǀG`.%0,d93s38VhL)_ʔ&PEk;u;֝B(ѵC8ȁ+Y mh?6-3ȀFԘҧ -)q*#aDOggR} 'i$ KpK!H&y}:@e(f8Tc(~2N !ӽn}JlxqA8vx2ZltkxHY($FH25sGD>D.KrF}ǩK-+;>/>)w\ hjJ!hWskHPZfgh~ځWu^{PNBdFYL{$_3q(0B Jj:`J8Iz捊)kiCR_EaGhkz(B (#/+d,y RTQmz "8Fd̓gnkSL/@uBng$$mN|jdiRJ$yLHrH !AGU V*8HA.P%:Pn@KB_=~hL5E@S|H2gjB҂Q!YXC2ӂ b%݀3,fdw- ͚,= &fJccyPgؗ5wW}Ɋ yzТӓw@(? <&ACP?k`[Lsq5蟾1*ugacnֳZH(},Q:ɢeM!ХNz)ZPnpf9'UA!NkAFJ5:-9FUȤRiӄEZh5tˉQ{ʢ㼬[ &F!S0ͼZk |V3lQUQe$v3FU kTճ'(\TǓ|F_s\=7mNZJD|{K[)dO]G!K`5H训iN03&c1F{FKii;ظ <_N$,Ymϴv4c"\"晵 ۰&~z'޷la dFlz϶`Ȍ`L{Mk=eL46*pȘ%4\s\ct {l\.=fPRH/p\rI 0H樞1ݩ@p`X". Vn)o惕 z^IKP@9[ݾC=a.Yӳ*)^ژkPsͳv}I8a1<#Za*.iEW6PgˤKSZ)f T@}uZ͉_A|r ،ըbzԥbA0 *4~:Ȝ(?O 8pډHđȚܽuOTڰhfDM]T/mγ=0܁kU :ݘT] QΚ YT3rA+E,meڲaA3FC}$ކTnmO"sH"b0FCg I* )Ѳtaw m3Zܩǘ뎺1m=\ؼ=L F#ellcuy)ԟ.LǸfd2NZ.lna`01&X[]; [ +1gI`c[;ocyylv!vvyqSE-cey Zl^]NaK8LX^Zd>dAlv'pexy6N?r<p_Ν}1%_g\y;GG=9@:‚x釰7O= |9-me/smv(;q+C<6n]ۿϟ:~of2$Z Yݼ^Yl[@,K гg(s7CӋ\ц !5F4Rm|kQ2XfBY[kBh(YNbhT#4g(#\߳{NȑA (jwd!vc+guT')+Ihőv֪ϲ JtQk ٨?w*" Ypwz*sBⲶOid?"dڹ0J3%As ; GB]Xh^e*K@"4)C ICUb*LhNjk.f SGV%!5-"Lz|q*C4ʭ!b#z&Yuce4q~j~Ĵpzԋ3Nh PQ 6܊g, ƉAIεf lٲEK{ 3pxx{'Ug@ڕ8vE{q886/na++X_9]<;VqQ?Օ%_d]XX'r9N<_Gu;.r &`}uKmm[;>:U,,L=Yvq9g#gS(_q5{[8' Lw_/q}?ұ+qY?ͣ#ڧg~;٫eg0|ppm\vZi؛7'=Nv^{ok{3S~⇟}GcqaDT.Iq~ >]mH$$e;VbH `7GHx]q\B%&=Ep]}R 2Y 7Ykf(55DDŽlYAyr}}q8>>a=+-S$+VK+(8N)o_Rihhַ8u(o[q ^ِtV/\o-Ԣe/O^cG<_omiIoD(DcAqX,k5ro0O@2+k,2 ˘vYrҳJ!\l%|.8MԮ۬LL!BZǔFw`H>@+ G'ӎ(aעEK iCj-%C !{I\)l2,*x3QR$+\ $)8&cU `!?ڸW_JSܺL|CxO݀ 0cp5ߋW@86cؾg,i|S[xvp0Zf`8z?ngWok^qx=o޾ƮG_MO“7G>G>Vkx㞳߄oӋXڽ KxcLƣ(+ߜ~= ]4CW8p#[ނe7xO~3\\}#>q'xnw]c{6&,߅I0ٓ {<ϻf o֟+ߊs/,}[8vt ˧jƸ?»>\F"fHײfr'рlNY!(2g:MVsTAm"UxŋQ𿪔¾fum@0-u_nR"t3Hݢ _ZiC?8xȧo2Rrn(m2)IK3 HԞ{W-nINp 30&O APb&K%t[(5+@13V[-OqK~m&ns`҈7PLXST,/LNIWeVK#3 }}9e+8+uTUr=2I=υ,_qQF lR\S[իE1JXpl!J 1W9ksW,bFBWuMQ'ik/gE؛˘qzv$8P1kpҋ5bEem~B ߬Uk*n 4> kLW}dCX>4qO?#q:=\c){+U-iw=l=vii!+<Օ%\sY-{߂_|Og^23OO&?KG#_D}ۏ pi!G IDAT߰4hv6x `>,\_; =_#1At1m76>g|w[1x,_=gpᓣq{po)~wz#qeSV>gwX8"UFsif`ڝ߂gcMR81eyGm[׭%Km3zXAiJ1-5N=cuu(άwm%PFw6Ԏ@#0NLRPl[(q20d UDm[w*(`-Opd,v+_Q1E_ -Wi(^j nVNStj6;zVi, 틲1@f R,tw%KX[ҚI܋O('4Pq-j}DXۋ6L5 {(*WvłHhɉK)"Q\tP[eV6\]*řBG_ ȠDݤY]TR[s ],Yݡ6&ޚIݨ[O4 <u^ )@2, 2 paQf=VG h\9T`9+[#U祜7TZȝr?=L9>gq2ƏW=~C8Ow;[cuxO;^pꙸd57_pQXhQ08cue 6=cd |ү`i1 }n [_?d\;_U< xm=6Nayefw<՗~=v+7wUkmD<=o׌X[.{ˋcxe~ 많`"]d2x ;x`|X[,VWc%~|?K8 F#Lƣ|/ñ5ZBԗ.rpUcE mg% zuS8AY׈K(%(׉-uu Vt6G%3NAs6ƖȪ%ZH=CW{ucmk+bFP,ėmEyvn%@}7Vn_3mJ6*3DqXh<)UZ-=)-5T6 zQm]tܫs>lVj D;tzH]^U[Ke6.̲BA鿃J >b-{\B X$)qd"d2{x߄|q OW=IY3B<؟W?e"kҬh?GqS x,*XEMV7z6`z6^/_;8vW{-Fƭ/⊫/ F#iښϝ~~Cl0}f{}e\w$ߵ6/\_K:+w߈pW;+qKpw\\t:Ec-Vݽ|aɸꕯƫbЩ8}~|`ilbY7`|7??? )X[]"vvpur>>} +KD ںŬ5wPJ{-% ^q6p\3/MZAGk;!v '%#.sdԧo>LN6:z sb8Ib\"|MBv@J~2k4ÙL)5+ 3cggz} >߷q[O &f"&g<}IVM+!J,LbwJ=˚"nF͹ 42 Y&7J|=l&AݷN`Sox$ݠ_ &=`eHŎz68gܤ/8#UP.R= -S{8'v9O՚ *[O ϳR G࠴qM(lJouQ,1Lg)A9+-bʨ1D sN )ٖ(!6D0+5^G]uk陬}Иo M^ka 65;>1;`[9gpkso ^zOc^||׽_EӶh{o&[-DžMs2|X"`=xK#t7 ..atwzDX9US`ԳJF"S k?$IjZzSދtaq%MLx,bHT2PAJ6f}xWk}F+&T@g+E { mV408z5svYZJVe}xʳW-λ(3=PY.O2?J[2j"$9aq `U@MDM3U{0.Wec!\f{?4Wfm JZ[NQ ,͐zx3Fv ,sd$l6S!LZ/f|Zk9 ֍MBPOК4-e%8'd%$k 3)(j[6FLojtbgoITE4kRV_Klf| :ۛ &.,ub,ߌ{ikږ$t)x|wvOU,-/ n;s# \ >\O}j ^^ҩ;X[;˶W^,É X]ZBԺGXܹsm͌åx6q6G8%ǣ6sz8#/|^~G~ oz`Ϝw'Y!.L _vCh GW`_u3gp&ObGKOWmnp?T>Wg`?Sxӛ?{,o^-c<U/R0 X&bѼbX: b(ү.  g|(;{3\_= 3yTrg/m GA`Vb?ZYNш09UIOܨ}tD< #N^ HFb*wIXڤ AJ>v^j*Qw$~d|=nm 4͉6FǒѨaB NF糀#u_#!gdW/2\vCD<'oX`$*˂x`끐P-YlS#zG0,^)˜kx:+uC8N: $͍,k&Gld8? AdrR1rZFB|jWh7B䎞LňHFP#j8Ӛޙs&Eҷ$Y{yRD5M3}XǎNiC'Hakz9Wr9C%Īݎxx'/+^z S12q[>Gpߣp^߈xq Zkd2[p_e'pmǛ?m NNL7bѨ1x+G|?ݷ~Cx'|\OE^E/['+̯:kMl,,0#6-I9=bsk9C/=N͟Wg_OhԺE)1/‹jaؿ=!_;+/~1?X,P{=Zoxoʋ 3?o|5r.썱K$Nj\sbp~gf\\d'i,vp1'7ֱ;0V^ޕ$G@c,xlp[;/; ⡛߅>9<| |[|nje-,~Gx'}=듟}GuO`O?Ÿrť@#..9(($I%=k*rp㊧ڋ{we}ZwJu oB̰d}9 eŰʏWR !qۮcNQk$łC]6+%VR6SׂVބ@g~Uf2{(_mtHsਜ਼R{7g8~wݏ|ZֽZd܎212Sm;{xvv021۟bob<`eyGVQg2͔>XtiaaU=Ӧmrq{G7ְ)G}QWׅ}|fSC챤Յy%2ANxzUg0UE@ UT?MGc=/egeYNӚrF8;SOzGbIRك?2QgMflK>LXG cͅ A?u){!-UËתQsZ%2ϧ$!ȩa3ľ9 hl?(ol}ѝID' קsK|/{)9VqgiDk-7G k0C0g! ?tlՐ"ZqV;6DYȋA~N)\y5w?ZI3dAArrMᶞ=^Po=jLbJiLguY($&]4B ¨'x( jC"OM{R;eH Sm/ռMmP8,LbJg- [$Z퍅q$5ֳXʘqF4km'\n>}=-Zf*>Q\վ[+$Qe{f˃tjZPTqZTD 1gUs"K|QeM{ØuВ &9:L3)HTdIЀga;l m+C:QmED.,P[v5lS?b'OS}$fss?\GxC h^Ng5bgww'^!ܹrˋ[V[<1^T;$pp(xjh*ƽEދ hoUb 7̽Ϟ H ֋͑i *-U -G=]_6.Zx/q˳7N'4ª(2ը'K_`V"O%t_&~ ʴrnd,OK7.5N2AoQ%j3W.F3 D牑ėOʼnuׄkmZ>k>Sf`FԚF͔;m$L5Q 'nDH>7sĜY8̋<*{ "}@:5sIw7AiVYvae-KHu[z838C32+HU{;'MZ~Y N89L]a+0' *&]̈;g=Wקu;zHB.PQmY(k,5qHP43Zh T<:@IOd IDATwi[Ur6rLOc;Q.JvڛKC} Um"0uH !!P)PkZJt֪H!3-d85&'f*}Ήuګ68 e5.LQۙ0n=qIe.,)giͥt,Pᝀ6?[ۍo(2`KxZU$WlV9u3zw@ִk@I` YsMYmSU:9R挪آep SaKH?uylEsz:b8"CULBkt(59 ,)S=1)T hn=bPZշ.RʱkӺ6MV*/Ցk5pq(ڪ11Y7 3^K 4d&0͏5:ZC`%=Vd #=NWsPG~ QG':UDT}"[EԩjQ d9D>"+ߦZ7Hd-4 @X?#7#P=}ԯchkW0nUJ;<}sў}QV[xXPRwofLNOd RTҥ(יwʟ\Q3wzMYնؾC>CJ+ i|kv>t{ԓ῔I^Ŗ6RrZ=s:7>*7={^02hd ɵzŪtŢHj2Ze[`**Mm5ɜHec5[βi֫)kzx_P%= -W #8l1er %\1}q}Q},2rԘ=;Gf+Ԍf\ҮV:,Ib2N-SeisAAf1">"6Lu2$ JqM-gjXagR"aDylߦ$JylN l bS1NU>~e!_Ox~IWPNR*akZ{R-CHPZޮK,KS d95ݞ>ݽ4Jp_J3[MYs]+erqge>PCɜu]k{aYݾ f")JV#ݛD;m&&XJ;n=ΒQeBHUu$@)e w ڇ’ٰnW8HSF#5#K7m'b 3ő,c$Ou(VLEwNb @Э9PNaFWK2Y8.rm;R֦r5Ft4%T (sЙ#2ϭ"P1 Nj+nUZ,M" {sԜf6m\0HhCk R:bփ-(uy*H \H!ؑΆQe'^fE6` ^P6sˬJݑ|]8bBQ1 #'(ң@^T/ZbF>l(G*21D cvPc'I@D21') J5QH,+J?Z03eb5k\{OukJNinIɂ[f%I)q(Qq{,VWR~dy70X" CF/(?k~KJ*xA1[ 9\ЋL7nSgZ V{uH/TkјQʨSg4?$N" ɯU虳ց:QRK[2_F~Vr<ʾŇ\/9rV}VM† NbRݻD4bҿ8OK/fgQrb5=QR1Ҕ~ٸب!D1g^sQz[k(˞6RX$ػ2̣%c{eztKT;Q"1K$3'D{PCFלW(m$YfDz@j:ÝSk ]A,MO\2fzЫֱeɣ6e*q,DP(MD iP03ڞ}a,ڗ,UZMI#/42뱩w":EX *'+U)k⳹560n\Onfc`zOEBOT~in/3`E˜L@NT?ke3ZIZWլ`%됖Q֘(J& Ë˾$5 ge\(ŽV@sf)t,L كm͗;%h"|L}!F @28gwѦQ* ޞ! IO4$Xلl;JB+N=l{"өc|\nNom9}Ձg> %~,Qs>'q._kG nzKQ>G uЋ p@ H+Z (Ru6L}'9=${A_b] q/fzȵ * hu(z !fkUFΊ1bQF%P5"2% շ9u_\9mg{hB6ZQo A%oŔDZUF΍41*\$YU%[ֶX[H}Rӥr4:vh+HUg,@g& C}^ze\(C8☻6I|(v*V1*\P}쎲R<^7k$cSޡTӅ2)ځDsэ{HNwV CV ײijMS-Vcqʯ1*SkHRXtERɺz|V*R$V_KB 8ĘE]*4, Y(EZo[O5D #e׻6ߒE-WJb%tInZwh ^wE Rvz% 0ʛAѭ{CeR^zV Dzl}kjUf` όm\u&[h/׬gW;5G] ѨeʲtȈ~K ߪ ઐ,2[y A; sF.*؊LHUAtYU@ǭAks y\V:=α렺e0*dl1sf*̼ƳeruFjY VzvpLt }rȯخRva/r#TޢDpUiy1$V#z|ɾk,0@ۗlڠYɐǙz3h=y-f>cg2pOhs+B!g2xaBڠ9Ӂ|٤_]q=zpYS! =z)Rl(;*iƢtԼV],bek5 H4HGR%gȓEd9m1ѷT{OQZ/ejQHc6bY~xz(XSTٳRj<jʞ5ZNnJ@W:VԼ}@ۏon[ɫ:@,qmdZ{`ַYȹ ڪiձ(Fj`dPݞ﬙N6{,@k[A [UO6t >B[q0FͳjegXiz%\|]f[~rm#5JҕԀ6e`uz*hi/JJЂ澜7Qەu]}ח׽RJKu wYJ}id¡rѧ6^)5ÄR :aqMeNChkOhzBS 4rQ!YA9duJ ,Ko2Iِu,mR`ͨn`dM^QC"YvXd^Zjj4Jo?nzc~̏1?ˋsoD6^L`@NuesSB^-ÑCr.hrt;n^ڼ63fi )SQ-6LZɢ7MI'ht=\(K0ޱt1&* MM׻ YMpU^wMOT3]O)(b^w- .B 1EYeaIe,+8<d!ԍTs_fK, DM.[}2N>7jm[Fya.xf,ƾ|{Wu*yM؀]6w`$b9I6.\Y1 Ru o";VB~'?}7lϭc~̏%z9>uDlP;MZpS&t1`m|c逰'w m̬4LZm_)˨/%vR%bö풸"=@'X% }O$iq7S,WMfU~_{nd78T#[ݿ],-r m!3CEiXK'TPqS.q[ڧR2 w['i{i9hMվb.N2s%達ƕQ/j| ;Grk 7J[ $܈~ai/N?s:9" H mܬ_R#Vu"U~Ic~̏1?v.ڮk[U=S&EU5qBR'RcHJpr-[P4K~};"]WGQ LaAK,~__Kܢ cNVb@/ d S:(%{Pj~)b̌g. IDAT~<f:T^J[bDAɎo wt8e~\5{j+%XNK3o}cS\K$ QXz *|%O1b^/f#st^EP5sWPf~̏1? `+j>Y{Hp( `S8eb, ]9ˆ&j[!w|5Fh:XSGd^ւ ک7v_h`1QVʠ246IA6OH9,ubEji5!sY yG{ckoHO d0ݢ6Rb Sl ("B?bh)_nS2ff-SY;G͐w-CZ;Gq&ۡry1[6k=4 A?.9|E+"b\Ώ1?gh<رhZ@ALygvX#:OZ0cdL8Kd>w8)`81ШcA_1!q /h;'{M ^0"{#1%rKe@gO5o47)QBd'u6J1 w%$S@Ż]R̐sy/i;e2s.5)*#)JU\d;K^ZoUj4{sYQԱiG٢ε^>CxDƫj^yϦt##Փ4\]?]hOb6&xW`gbHr~̏1?r9>'NA ZZ#1 e05.#2 E!M&|zHG8xoaLY_1kԦSΒE}d+`v}D5pbH;8J>rv4jDRCRͲt)8؂װV \!c~̏1? ӏhKwSl:AG46 G?3zMRyF @X"1rvc8DǽoF-4&QG+;qO@p jZ7(z4@T3Et#0F`֯f?o<6d M"eӂ erM f"kВ]#}+Yۇ.ix~2W|wśoymWU&77- B! MP)T(PƧ*gU璘,D)(Di H#]$DҒ77ͽg1s9' JȚwgךk71'` r'~SϹof2e,TQC5A*8dy݄`mĠ$BGE+g`U핑@gQ?r0i}eJ=GI*Hj\߭+m۠,%eLbEՕ18ּ'U@cYlY/[ٶW;\f#z Սky4VQ#Wy/ZV YեTKL#燲f6" RR.'Xw ZHM7(} NqHfGk[S94俻ay^Kr@aoV/n8eqw.)b:tڠ 1E\V*9$JU*b]h.[?[Y6;^4,0 ]bEЄ}դP;l9&wmL=K@M>%AV/ۤp/o.sB8]X%UsvTRwnIv'sȁy66Rj39 ۦNK_9\ rSItw<ñ>/^ۓa8xg gsF-cX28)3gc2ﵗI[RIńgUe(ChXRupKBc:)^#`G&:+ xt uJ^ YΨ gaKV"CMqb{:!sUzܶZ!>tyz"tbSX4Zt/T)9˖{LYcݺqnf4*jQ,2b9Yn@۷ΒdSMc15Ih(oq0~^ַOt^-82jFp"^p`n¾ ?ilx`?.5<w÷޷ |[6~59Ln'm!8i+÷w.xGLJ{O;8X tǺT}Mde=mRV9'M>sPf !ӥPIu=0Khѽt19Co ڥ6 o H:mRf~!$Q뫝N@\#cc`0h,3GIjXxs͏ox$'oe(mxqKވ7Uixs#o[s?q=q?Kx7``~?9#s@߄=}Y->ˎA3`}57Cxϩ '>exq_]Rspߌ&[w =ExOo/ؚGܶsߍwuz/|%^^Z㿀kq}^73|~#+~ozWpp8v]Vl2X2(?# C6ɤJ<ZYϡQDb6ξ5bH=G۫GEb^*12䵀\:jDџ"o'&@1I{JFY6{ Ҟg cW`4 .U˭f3FJS)h$~Ԏc%2)eO܍9YSvAPgPS-xiف0/I&I&pr"/3$Pi{lڇ .(njݔ#'JAje-\Ar.FY89i2C",\Z3s1gn[2( t8w{ 33gkOߊ}?/%(̖qå%ŲxCq!x7o?7'c}8gs./g H0q|~>a᠓Ga]|uXLa/^mȿƹ3 z/kw}:toy/㼷)xIoG?KNg<'Z9]2eܶOB:#e}Fso3@&,IXhJ|!(Q2^5U@np!Ñ[-G$yi, fEԄc͵)asEz*m$#\@6z3WLV\XLi >\w 6F&iYe "-*@9Pi7[Nk Zg )N $"oZ*aÂhATrI)Sm'5Oۜk@I{RPm$+t:*%Y9)TY~1*&#E&ljm'B4 ei-!evsL Ffpv>HY4F L@ęm?g?{.z9.Gއܫs놏xő9!x3pƙkrsޅ?;g>|`syL/{ >p}rg gt7p/K0x{}HLq]v.N9]2e }lhcCC~ }w)y dIVIIp.M>̾:ueiR$#JXN%Y &&t!3d_g#b}&T%Ӿ74ygn%B/V򉅓Nbn_dI彺s|bgeLFaFkR1M)nx$/ByJll)CJ_ϵugʋތ[*k9v3LM>jr*_Ml'C[7c9۞8r!}^%O>Uwu_Y+E6U}s_?ů{>?k:5f})_/_qK(7Κ8|۷vr 8C*ǣ^~U?([KM3].cX2n5,㓩 0zh?+YVN}Fč2ms>Ǵqhc^Bj_,REz?E0d?TQ_āZs؊%g:X*L—yk_v镠`GTEYn`1ZRzga8"p*j^<0\ƠQb Ә:3NXcDiȼ%[D䠥 &dzXnA&Xl ZN,A&7$w䶛-ge6f6o "S`sx{nb>C_kۘNnQۿ`{ߏiO}pc6 Ii  uq8~l ˭e,cX21n"qCދZ&{Qʟ/v+Wµ=n)k(?ߟ֌Q~*kɲEw|/nKUUJ6y0\%Xҭe-v>^mn9vtqM<#@M\/=7 ل` Ue ARREZ/9bͼ37̉unG(R!WjV:zJyu#gʸE: ;9FI Rk#n'2YJ!VD-s3ꁤh<37[ .lg̭kSwEy {>;1؁O/ N{uÞ{K=x E8^[غqfפ/ .îG~7⬫w'/cVػo |xs~߉sn}?.>yse,c0,cQ-34*Q;1Ub9)yn; UiղʳJ@tSmhg d_$Hẃmc!1>12"} }Q,P`>NH7dLH[14KvFpq0)x}5.A0koljֿj/+8a t$ GN$;zH&]M65($賢ُ)\6;%~lK]^l{ c'Ɩ63NڀQo@JͳL R\ܪWխ>9Vyo {MQ)5/<5My5H{['ӭ?o3NxЎx_qijϼֳWzN˿ ?t'}u}{.xC'سva7].|~0~[X|%:pǀ};0\iگHdvnɴlz1MJh}`^&ڡmDKAH[fSlc5.8;o-i)ju'%}ZÓ_x«~"de,c˸]^S&nC Xx( elDZOlk|: 6&Q5[Op]cA9}:O3 :'b@>8@NK)=jjL;yl)k! eA)#WvlNb[N6=.S5VͷK`3u1A;- |<98ɦi`33c7g.{n*",!3 diWic5b>ey L3FL'jZ(%e23O7"T73DF@RzUskI }b^S%mDuTqQfΦsBpj,Eua2ݻ&uUjjaɢ)Tв?džZy%m+ѬTп?9bmv pJnap Ѝ^5:q]B+AI=UbR̄ygN@QUz3g#VsعGZ J z/"$] ,SX*Kp ` E:uA٥Dh+ 䤑IzdQ@օio4SʵSsdO%EnR{:q]7i97>nxWCko;룿8M2cpu q=peSgM] \2;A+RVYj:=mkG "X$j#]Zfck$/}HhYK8yq 0&'0GnJ@Z_2D 0y޴\p}LkBHm2 ='52ɦoU{劻-A?D71IQ4ETKdKԖAT \&"?Y}A=8Tz9LWqx={[)J8줻b8lwt s<ғGye,N>q2F8Y{+v(]0,c )$ 5 FljcVqtLq*I!-Zn6B@.XMYs|/gWq"q0PhCD/k)8SFǨ,dߓwrGAg c1cW < hn]yHK7mJk-Y 8]F zNw=[Je[f*$\#|H(+ 7"/C6sǖm祿{dr>u6 7ƫ•{x^`rxpn|3οƥW=poKᨇ/xrwse,c˸6ؑ" Yjeߛ 㘄nB9$jŗ8(~:>,nK0{JymYK/z.5Z j{N!I㾌C+#:PFZeR}߭)=33#&=se+ Չn'2 *l?`>Sx;rEV#PmưPqt̨M2V* Db,tuQ""T0oF`J rz z 6ΛKłPy7#}yIw^cl<[{3SS^g?(}8hW/^Gr5`k2>a.~Ǧܡ^Ӯ\e,c˸V./,[JȖxO )P Q50f3{K.AIh1TrlGJRV:n#5GїID=8@BCU%WZԨ**Ap [}䤤JjC{v6/٦@(S&2)ڕ()Gp0cD\:^8b~,fk' VXਥ.^Czf}2<& h'v\Ú%[bP  rJ}){{խl,l$ڑC41 ޫ}76pK_br+f\H4y)4`Ze*_+N?{U'>u%p'=}M!x^Sߏ{Wwq5xϵG~Ύc:rp#q#r8ln^}e,8,2hAގ>=)=Ъ:VWT-GU,CytLEܫ?C@A_Qy_Π]!'v~D2ah.eݒ߽8Ykb%1„cQs` ȳg`P: 'i84K_%q]B9ƸSX9_7h,:n +gg- D+DUKFU}/EVhvA!4dbIFI"bTQ}!7)~bF+r\Z;9Iz=R ApL4UxZ%6\BiV"f*gً5 (չ!j\&8䂿}*7x O}g뺫q8p{⸭8y?8a muqk>w8xӞ!\ Y ~@=vx>~qߋ1u2eG)@bRDۙ2EF"fP#$!Xe /9`dl cиT\w&Pf49O@87Ds^Ȑ4W*TQHa a0 :9dQ< XY1tK?5,eտʼn\`M 8Za9=nqJP''VZZvM\y>R}nH +sz5U_d}'q 8s ;n "w#RwGq9a׮5~_}nZe,c˸JJ/ )=Gy^H !83*jUJ<j×Y1bOb,c3c-t{1:_$0w)ZOv )%ō>f<׫d 1yK< pƒ9N YL44J$F1!JZ%&v<{Qu/:7 y=%C+Qb( ʊb]ӵtRv Xʩ;9KtoH&w#;^ٯDRRm^CuQZl ٨fKwɕpkVx{w>;|{f7["m pŕ#n޽DWX2q'֕" "3T@B:"+X!1j}NXF=%#DZ$9F̃ڒf,` 6~=E{5cc:lT&3mH(0OŎ Vο_#nK-X" &m"9z~J5=A{H-1[*EJULzE~U=bSڑv7d͕3?hf ʿM{G8inaăz `h )fw 䶎vyfT$&yv&AkDM4wq[Ч_9(OfuӧӟG=ex)>~͸e뮸/\nϝypt8~G-{}ܰ=B\w?`qaKde,c 8|]+N[8PI) %/ /DQP E62`Ǿ#`"¾Ķy\BY3,-q;Ǘbd4c& "VD&V 3pTe%עQ$kRXP< .@a:Uvv4kgm?zkP]"CPPZ(u{֎WSW V^ h,%\%@f: GڦmkhNBͪƀ<%#Vd*H j ?'S$ Vm(F:nqfItu)q70Lsʝn\w$uxM³|n{Ϻrp>Cma߂7_t5_ܰ x졸ˡ#W~uNjX2ă@hs{T [$_@RI, G.'z8>tȫ,HGXjQīSSYeI!u*5q=b 0eU}M-5 @rec c,r:U1GPyAV~5OUq30clIm_DдB[FשbA%^)ql{x& i'ʭPqHk;mRa/"媛?p*,| Se5Y3[s[7óL!lpcXLne &UobA̭{P&CzŸq.O䯣ˍx w[Ju{o_{?\u-cXƝt\p_~Ij'r~dPd&,h<c* n 5; *,E_YSGxSm8݉kڱZ P>+1HU2ςrh2uNőr*REؾdD3!,z#q;'b-E;g-T2䷴ziUkÕ M{DSve҄&s=5XR LqŨapND-@UYs͓w ׋,ǐN+}Iezn{FHLvr )K _(GT~+3dJHj_?/'x1N>f/vrEg0qU[KZ.cX2LoAU-u=X_sN0V.K'BJrB!j*۶bƲr ,Zޏ87ZR,tVk= ܃xk-'X# j.5%#{Z3grPiycۼDB/Lڈ5,J@ߜ8J^oe1sz8J՛ҊD@dJZ6΁V )`$7-LFg1 6Qr}g)$dU1?8O11{ r35[S2+ԝs;Ku;ˎW:t8h. {}q͇,e,c˨bMIXVۉcG;x`ctN`Dn6^R~K%)eelBʚ ql m;#=y %1v8,QcdưǤނùfb>0+E% "EZbRef`L6u"ց3cJvNmjVI6>RJJ3̴O|1Mw L)e".ʠ$d1fbL{Xg{%%/筽X9? V+9 dI _5D¡ɝR;P+ɖo(d9YPC/wW-se,c˘6/cQEvMGNAj֜Jsib=F[?!¸-Hcf8xA 8-V ΕLا;[1?Uz8hrU T-c¥U,It7`'L;Zf 2F^P"ҩǏiB:V)jl@'֪֬iMl{^Sö4Z;,s {;ϹP7ٻCxn~EPu4X)=dvEv79M`PaJLiYA{1N&[*!׉2Rb,rX2oHpRM#u8_^]׊B(R}DU8N46Ŧ|3؋DPbt0')n'_i梌M< ]ս X6:G2YQ>Vq"(=h|!1e%x_#Ԓ?gǓzK$g9SrekȈj LQuQ)W^:BbNcTlj尹Q J1MS^{Vo ssAX[6,ycJ5+0W}-hDnRߣ2%ɔRx`SZ{VJOA{e,cX7TPP}pbzSG5DWśŻD `b _w VZeITA˷Meq1cdŔǙ~CKׂx\ B|KQ9H% %tόk󪥹e/`#rۨ*ǶXkS "K+ h=+:[*pTyO, B4L&A("=M@}};/'h "HkI⤶z&2 #E{ )1 CJi,.TI(/є-4+#!Y&DL+5hу حzmj 97z͔W7RKrX2o$pYCIOlCA>jlR@wI FGk0ەE)hc+x AehQIXW 0OhSJEI bY*z\cXQ$+$KbZf,sIK^]I4;- [/:FfҶ`] (EZ-2yx.i?Ҷq v@3dV_\ڒg>'Y\rͺQ<~i`blD9p `؇t<(vYr s𞃊,2e,c˸=WUlO9*hFm@ Ð* ¿~,"{.ʪZ <#@qmZ!fhYr z5 *%=#ƌU/:Lso_di7&НxTZmٷ@m=LpRymQVfخ̇"UyO#x3Ÿ9`) x>M,)8v冓;*m].g69^gzIӜ~Bc34Z pGhe?QZt9Kl~^˕mϠy-5.l K8{9L9c~,/9^}|bCB2ŵи53gsIgxɼe,cXtݻO|豕NL ;@}بgh_je5qj3}iخR9&B+!&I}g'2b#+ ` 6o1 >T L˄&22qP~_)cHliٸ>Hv,]=0۵i״},.iN$^ԃVGR'Y xAd1.0+ff Q"AND X +2zꠝ{lT.3\|lzjdI/iB2댅4 0i3"M ruJ'Bq?QW/lML䚫sg?:yX2;ظGtA*0F 5Ae%X-mZ- @!RM ^DcI?QHq^'v0NţDT%'A׃M|#F^}N2d$-4\3c^f;!a%$lc,};sl ukȑi~Skbs*Zoahy5ۚ#lu^ B9^yf :GPO35TwxV}Ʃ98ZkhȗH( IJ&jcL `LcY [=a w9t726ɜ l,19 Vմ/ Ð붴FUSzk*mohT%Dq̖VFˡX`҈zZs̾4 JI.*9x_|(Q9tJa˾$;W끊lQrZQƨ&R+{Gi>: mH ԽI$7^oY0Ҟ2+ělv!co?oA=='TSq4f?2NpXWH"GI+|c^0J2z@A}]9Pdag sTfu8r'dDi=Zi_ U߽We*uDB^oU ʎ@"c}yhk>pQӞҶZtM%\#sUFMi_ gzϸ&bsVsUB;Iv_@[ Ff9E zwES4O-5kM*EMg}V Vޭ[Qp^S%Vmֹ^TYsg-ؚsUImoCǥ XùU"VHcZm4@'IXcFv j`)?/jas~nٞ`}v-HLq:S&'T}sCps-aZj:JDY{ pk/=[v-*retSAV%cpZ S:5(/fk+wǦO?jKAU +Yڠl  1L7=ʭe{ޥ?^̚J9[/>U$$ɢrڦoUcRM>Փ2c3q-׬p0p+PW֠u?iO S԰ev*2-2iST!NT+ ̫A8ńRXAf+HSW7m?7t9v`u<!֎aTN(S9X^&yǮS_ "+ k&.t 60(s%k^s?#B Yu8Sɢsl Z:gBRrmŴði욷-E  h&=uWa YZNSGx"}Hڬab2`[`6$/4$H:W2&6A}#{Uք01|>2oqI&ӵ-s刽lV/"$.AgFsӅϳgd SRq1IÔDiGApT`" 1ܺv0-ߝ*,-G݇y72~ʰJ|̱sd9 a@1jX).$XD!$#RIyêv"^ٯb{lT:tU%㘨(~gSlJNUܽd,TɦOk@*{#m0ܼ'F=1#WdE=pO q lԳ0,~~0HDlZfVϤʠP 6JUIJi9&cljٳsleTz$8`o`kҋwj™ Yo>!+Pl!fȫir3 3hpf [v_c(AT:omVq%fϯꀐ{JXƩ2V 9޻Pay\bIq.'ٳrm[S!ocX@ˎf)n}^Kzˤ^ %0v:.{~垍%zI,/8@L=X"+ٯpǪyaxYrk-\}x gXnReYsY6@u^x,\B鲒&P4LoR֚ANطXϊխ:`DPn@ZR?ٌNU!}{ Iyy]3ϓ jfb/fٍོ|`ZQ9d,kܙ柯F 7/vAW&bB*etI\ |Xm?n&+$dYZ^*"fQ;WГ{ r LͲ}Q(5XlʵF Y[[-;I_yI $TQ=Nz8=gSa@Ϙ,ώ'/rs=c@ʠ\" .Wbp˖VXkS[-FHU%b8A#Vêbc}ZNM.ȱV~sYFJJ볬c(rEylU?so0 aHuhX+e-'E*W}ԉć :qhլxTsZuJcplMD ,e̥@PzoֺĂƱJ~ 8@+@%@֗ՂMC$xv1]ؠwmԘc^P3eAZydM @] `ALlGs h7!g6d&*4ϔ% ]0 `ud/t1^|{+zd vxت^nEֹ+qO"&cY]DRfMdb\Ml PsAyR0(qR+OGisx+Q^Liv(ͩT6R&DdD>2/YSӀ4@eַOmKꯣ~|Y'jg7_ee` ~UmRK HfBjJ5ۋy yK{)i"ͪ V n-׆ȵόFަh*5\Nr!K޾|/P$%i0MooZ#\֖ljؕGfz/&J:%AM&QlM*e yZbX4!4Y,7#D5C {fMlΪ>WeMV[OT|ܖ5)NR[vdzio=9fiCŰ#yb%T6hW1̦S|TAËIt[ Ue} K j%$c[V.5k^`NRm fh@eVfNOSﳵ:(JQS!{N.4uNU0Uf1SBݠ_2U1? \;i*;Zm5̾wŰH M/B*$қ۞I'C(@(t~cW`CN5O٭JBP^7fdMMV2g#xJ$+'+ѼNjiOH@ w,{3LokL6=[,ְlf6XzG,4IRg<Mf)P*Ofp4PNYNv\ڽj|>-s)Q1q 3k]juJˠ]\b0&-LA{Z" H/GD6 c`ɜ+?(Nלeom%ԪN,TbPf7Zg,˖Iz SOEnVq&J:y+m v)aS\U1-ʄNՅ* fj;+3~Jeq9[Lt,㌟QSLhj}DZ8f=2e0i=m*ׄ*e`1CgTjsqn;AZd҈Oj^V@`6<-g',Rq=HؐeB^M9ߦ^$sV>}[.TX'vz [X4/bYIe@*@YX|(\Oϫ5C$Vo~JmTxd63 ZURs*Y0rJSkFz9#UX{O-YR4JD{.nBXIR:mL۔\5F ^)e&˛ܤvZlTlM͖ZN ?Ð3PuH$r;2}l3zd9@)T>,k撲^E۫iO Hqlоf ]S_A asp4RsOyİC,l+ĪZVJ,߫`&[Vۑ)˽þ!rySKt2FUn|琵xԛ y?ǭuOc,̫j1YV)aÍֶrOɯtu*n&y :R2 2RM<([e=:I̗ٲMl dan(k&H{фWRI+G0 ᢧ)IU-SV\Lưu*^`;T" {UxLE.d@ЦYU(A_.1_ĝ(hNS*='sx8+]`xz[%mylT(Kg=m !R6E=Y7+V2a*J 2L5z?=GV"(eTM9InKp"L}0_y$P4ɟn7MTޒOjF*SH+N,(uz߳Ӳ͞EER.&꠽v}zsBЙM MR鼏ʊ`j|Ԟ-GuϞW%G܌Y XE65>Gˍ:Ŵ+5wT`rJh:KH݅zdj;'u8emP{`ճJ> " :7[-U 4./k:ͫU#!- Lv 1~* tMʩ 9,kWULע!J`녯F+@&k.X-|Рj䵔0=c-ESHELqΕ:͗!=qxޠZ_}=:ΓSbBL!֋esN`ͩ*%/TClbC3'L4XP)D]$&i!'@4QNq~lavhĆ\'|6f;v,Zs2UWg$ 2\feIޕGUYΪڠwZNLTYz։.ޖn6N']sa]]4lf{%(O,Vr5υy&S&RҁNaik$sb0ֺRƋŬ$-wNQ8.vM?g"1dIߏc11jH)|֠wԫe:t8R$7PZaϏn.'E*k&ݭx ;sc58ŲҽU}s@)Z|r=1T`Ol_uS/qYÜ41~F4S3o(p^z GY @R+3]FO Ҕ)"] P'ڭW@p(-%U!Ex=Oh&L5 $@>^1 ;: D ɹ(R kI6;{ŅYՐ.!Snbp9T"x֓X#ex7. Q-yrWv% @]BM4c kPS8zŎt+u"X f#f0il:fՂ#ݓ(8AK3L{ce̔~>Q٭cl)[)0!\[dLEt]&}>ΩقN)\_gXlI~]IzВG1# lK۲õ.&&a ,w9 jgu K"HӘ/X-2 X"9NmKG+[\4gfs[)֥ vF̲׶$UtG+ tԾ#alg"SGs8l>DgM(X ґ)Ǫt5+u=^Ʀ@f_κMYLMeLȬuLZ tɪNs"$ᙌ͞D!DrG^eYƃm-1l| 8ъ2icxecر⮃.z`z+`IEgapеfAD&RnWB6nvP j,f͹- %uXuף"WwGCYU6SWNirou,*Qw MbeZk 'e4bWq{Ӗ d=#$.9H''z{uixsJx~[UkUmv3j Ž| Ov5koי$Ao:1M75i) ft5*.2݋-u9aAʨ#kOLK,ffs;=s `*a,#sy95y 4\@ZЈEE}]1*"k{C!jkQHџk?GgL=sGlϜ{C0+b|F)u12k.TJ% A T8@◙c4hdkDBĝ@H '_55*&DH sm~@q'1ymr $lAIe䱞IRC-A'"7?csvna3ªyo)2 >3p% `kXYbo]yHVܔ~GWk! xc#%)5(,r3ƕTk4T23sT* HΤD3RTYw#k+k4M-4{sRg%*nI\ %Kud8eo:+G0$shD^XY, Bؒ_R44VpfX20_ȜC[rw֚3N7DRYrhd5Vܛf93-V$s02 z2EmjM (\gGo_g6̆Vwv@GF=-k7l0®b Sh+l:6K!I8+dFčٳ2z8xhQSђɸw}2&) \d(XN K쭂 Hj&tK3ƟFݎHF`↘D6J N!IJ{"cTCSyt.Fc->}w,䦟,hrF_.9HG׼ lWW,`%،#d"뼋v^*@-# uKˋ^2/ GSI~7]sɩLtޤwʗI|UкivKB>^ t6.DnR7tA%9Nb:U2"jr67o)ZnEed4``YP.чRNB%uJ#$䏝" 9rl#Y;pיvBz` ol،'V;;.`ɑL7M݋)RD\3q/M-K a=qLGg<@IwK#[;j3 @E &f~9 %K隟N\mfK-]w5ovT#v 7S-3)4L RZs4AmĜR6%ܗ nU'/ZaQX;%okmﰹTXJDd54@[/ <'̦yȠ2ހa)͸s )u"!X5auυw: &"ii`9C^gynGD H_`^k[$@\ !Sm2v,LX;#_/]Fi&5XNNtv* /9Ia &dmK8Uv\¨I\UڡvLP㹮$!k7'w(&VnJO^Iϲ4 Uq6ÆIEuחh@t3m],g,C**3ęWd8S4I+d]ØHw#3٨KI:Ë1[5?rig'rlffHh$oRhعΨIlvk'7%dL$&(:+G4D32%=#i6qXxhj[xhǘ:uMlӼJ'ҝ*,8.ϔ|?EK&v꠆d_?j) "Y/q&Kr_1gm0_Q8>y0dž9'E>>;*k؃S\ ()L, 'h_Byh!&GFUU, s(QED~N꺶"F^ZfH^!u561Qҏv0`fuzBZ*q:+FK:05^~}O/"rzhW5֭)K>i`b059&ތK}[RyCw\cՓ}\u:|;A|PĈJ9˺y QKZ# BajuZky '<@)mIc=QB@}Ood Y] 7*>j8x̓b%ԵydeFW8`YW5>'?W\rĶ{}w[5,3W\T݈֮8?Ƀ xRR7Xl߇uۀ;^]05XׁBK_w'Nv,_dxDwW^Z PRھF!B²R, [({fں:Yf$$QG~"a2iM#4*6rj&t6F1GMPS|>'1p@ǽqx)lIn f@D_C !ɌeD1WXh]ڛf6M'[ʕ+x/U8WPʕ!\Fk7#;ɡM!{ԾXh.X|C8/ـ'q1x!B{-î>vbN3B:'VPRPT@5 UPM҆ :NV:hs,1hh3(TX ymY@_f3~YvRk`cSA)c "}Q=Pԟ)`-Pz(Hۑ$G(uM_K,7ӊs8,[Kءn )Sɭ_Up9V m so J^ PDlH+W\#+Wb[ /va;LNN+>Nc}7ߌe˶^ RPJv^L::a2րW <։dšeqH Ku]3]y(s.B'1|K9I-ZYvd`:٪H{t6ƴ*kdg^!LV&LN]xhC G%ۗhj"k$km%W\jl^5jM`fNiτM[aK ȢĢX-3~\bUU!$둘515>{߂FYC; Funjo!/muㇷMKd8'-l`H%*ɦ`kF!%utus}!R.t xtq@~j$: 4]ssvl]90Ecwc@2,Y%({kiU&`]~.y9. 4!w mc.kv]"1h5Yc ݯ2yj&]|6Z+tf.sʕkk Kp_vX -._6ۊ/90klZ W-O} \e٧_n%[f{6W\[&mPU:q ] ۮ;Q\a=ώ$ QNo ufK$c0#%Hތ(3+cVѽxdl}_ aRnm{H#_,Z\Sf@ 1IG3 okt@<"Cp ,*_ݰ-NˑѐnL}bbѶ-6upeJlsʕ+<k`e6q(W>/f0Ox']Pԛj| K>>u5ČcObbSrʵU*,[Uog]2a֯_;txzr3@A=y?޶.(7݁wX`cVX%sWƧp |L+%\_dt,oB<3`E6rWF l ,uC^@cP}7멬_!N29neù4\q+) h-, ',H{5|Hs% ͬmb4Dqa)pdXZ* U²٦?F>Ѐ' \Ȟd@|r5aW~'Nixs}+ /bǦ#팢 _{LJq+} =lq6Z.sʵJkBY^*9""/5in9r @ic*'<jh0'%BeQX&Dh3zF"1&Lo6ļGkmpJo׌B) 5CH#uRB@I۔s0XyuI21lVJq{]ȕw2UZk%l\"s`$ԁ6F0hC e)GyG"ִ뽄ۇ>٣nJq\תWL HbFMֽSr5z.p ^\쵂땍xWO@~/'a+rflqlMSk+WR9]~#_q5*=&%oƣsK޴zӷ@v -$:=Y"%`0`!|Q¾ *}.~F)$]dR+"DRKAR$qr òJɪ9T&gB^mmo*tH)=v@P`Ƙ}D`du0,lԝ sCjځu{mE8Ҥf uAɉQVb c3'q>}e6ɕ+W]_MBר|!J-4ܫqO4-7c˸^+WTR LNNaѢ ?S7JLnYs lX ;tȴuxבC)>֝h:/gmeʢk3@Flh=@Qb?"ijX΃LcQXE5$9fFflg΅6SasNnjq`_#T;4LO;z.m0T P1TNk)EL{7/Je5_ĚnW48!L%ypd.vsPN3s+W\.{R }lw̡ثxܱ #biȻnm(W,FoywbbvX*'{*.&rI\NEkbq?_v^f:VV:l<!*aj4Z@4Y'xcw =6\:@€Y"Pu='"XA%( 60}`jG`hN !jXP';0~: 8*2W@C7H2<늒H),խsS®ht5& -!7lkI0@561t.6ْ=1R#D_< - /{LjVc[ޠبǃGN'm>ʕ+W.+OhBqO.įtX;}7~[]µ⌋GoǽK7aDZhb|ߗ2W\[ \ sϽq6pʕbbxCկ:V5ޅ'l 1wv0ڕ[ϣ=&u@oa .RY@W Q @E Д DFYu1<ԙN id.YiP %j>E\d 4 &Ŀ6 mz2gGشB1!qݗ>yNxHOajBzc>sʕk~~'vyuJRa~5QG5r ֏o[ /[ ;nZgr08}”*H!̥+ FW*kPFUWkٷ9,`{.Bk2$3Zf9 }HeO IdA=@3,5gZ6q(BiJc  MҰUUall j`! dax=*=cJ8o]5 {|]f=#4itc :k]%$q\vnvrN\rmMp?̻pʍD96E6R0/k`6hwkԚvxlb";sʵ5k8Vݻeö.1DJ5k`Xpao͚5{nExDDtpTb{*eH{QZA^D%'kXr9Ua<r 4>6!O! G#J) '&>N؄ 5Q&LƱ#1>BA T6FcCc٘(S~f¶Ρ5p'>A괾ch?\L.I>fTFDI| 9ަ6aq$fb26>Lw,3s+W\.n' ptwOP-.(y\ǒg=v\rm]w݅iX5_^] .Ho8>u`@DjA'pxxa+prV#Ֆ#'ݨf;jm n4.qdȩLʸ\2`*IO& l@)걧1q QeEOxo)A5Q.cݝ xLN0Z^͓6^FWsm`i($RpPX{%h5q=],xHF?gp+W\.&!̭w>Ε+W^RJLL, ~z,^ ơJ3U)lڼB,Z8>"=a~[0?Vx'Oѽi,Wd qI&eFz. %=+lQi"()Ui0@!$҂=d ہ.)ؔ3XFz$Ma XkB" ܼ@eVQ0uM0f@\8aYYE~q6#" K J@PR(O a mBAB-!&w* ;XG5ͷr>9O C7*;AS IDATy`0JW)džxim .ck#^KNJDa覱)3 !P85t02!q_@GEq'=E"o9 !\, F^ߗ\r %1dNvs\r%@W7s>syʆ `*j!X0PH !2RBkNiC_P\\R(B4 Ih1Mǩ#iEW}(%`0xFxjW{i.Y&RIeYzm_,-IH`6,Iu-0;%-BlJ< G n]8ms*th nx5=oDiQMpbG:k=.cH\rʕ+W\h]P4sWa AP, @Yj BɺBxФ E]`<9W5P=PĈ>+3c}DU`(fcz'r,8 cVJ$ UQ^-<)#lP:0I{"K >LMhL-{ ] }oK}igo3 Lm,} >\r? Hͻtďw ,fι̕+W\rʕKj$R)hFI(k (a"7 KUʢ0s)0cq (,i0 JGec;>7. $;DYVӤe9ez@[{%JCHDu]('PN"I""g۪6ۧpCl9\;/-h1lq DS 5}76c,6W\rʕ+W\Ab2,02_ ̅`0'U) H`Fj+m$"VQ (JB60keFF<95ٜNJDp PᕘURi;B4AHG>'Z(2aYLKyNόPkF-iAW}'S+b&~&@2f7Ɔ>"$NHaPJ>DNО+W\rʕ+WKHi4ʘ^L)eٳkaz u Ue95R]:lS0RP&Sәal;f5l\B (O j Pk-}kmi7c+W\Z_x C,zV+yuI4ʞ 6R7ļtVJ^l*-&퉵~](JJt4ygc P ]`0@YIϥ."  wjJ߇ ӯ9`5\- BB/Jd F` l:=Ҭ;\iI`@2]3|IG$eF>fhL $,S`0Ta*BJE)PW,VPJ6XvB\'2HwcfI z҂ N}p`A1X|[# s,AXEjvmnG`ʈٕ]}t>fA_K- Fu>\0my3aPiEb#e FM|rʵ^O5BI;v)|6>o|v/ }g ,TH,:xKw‡_/1p&8>rzx+U Sj0 HAV*V2K[rNԈq6a*  "eAjٚI[E%J\v$LFY^ ;J m02@Hk/ʷ00,U_ c0й`d(: к:$YPѶ:ƚSLsam0iX0&W$҃1,e&l;RgUu}͆~}'{> &/!xUrf8%G-蘒|ʧpƹY!v_`;]3p;;popq?<'Jx^<j9T8/7_{ ͵;!͛߂{;U/0Ϡiّoj~FLMÝ7^<{ˍ&n'} /]&6s`O>չrz@V&eq'ߋN: 'kf0dftX!) L3z%ma+3_8lͮx xsp?V~> )G/C6irK7-w=_W?+q9c1SX gR9V ? ,>\;b3+| cp_?{uG5wgv$"]lJA A5"Ì\*4pLi"aiYK;Uu !%j [JĨ󫪶df &>S\ɢĕ{> Rbk44k?1UULP @* w-d[J,Me pЙig;iqNR9-JNTLooWf87>L(0fBꯩ*dX?Y ~x/}|p[8`G;`^78K+Ϟ8/ţf7i޼MS`ظI6o{~f?NWmq~SxCo#ɨ%>t9~<]v>/l^dt-[){fVf3F˴R]B̓jd H-iR@ct,&5q  ekk*i\|0?X \3\t 7Ke3?Px90П W_~.Q-£v|_{7azw+IG/O*܈->tD,Có4>(s)w_\ZMLo^{nx܃O4 7/-k'џ\~z*xdw-ۍ oŦ;n`bzoPxL;/_ܸvi 7ڌ`o)cKKN> ޴[SX5Ghnܮُ;:xW`:vKE״8c -Ċ=d.@^iė JlPMo]/Sb.8z?<Ec t4uްKzվx9S#?M+7a`{qz"Z0s&| CV}4y|߅S} 6+ ~m|l6aǟ{~r[3? J`:\jH)e1HGB9FlXIx@ 6f#8r,kM&> 6.LFϯՏ!X$ZvNٝ9$,FhZmdrJj/g0V% < _<<8_νo ߶Oxg{x{LL<-jW??cn¥?>r/+ۣک:SO$>n5Qb=KWʳV.Gc=qOn7_{y֝;񃏾 @q^W(Ը‰Ǟ' .;+  JwŸ{zA O|,O?o9` >k)+^_8q̓ދ'~i9|+3x7OC-($v^q)^zĊ#N˞uY+1 ߾mTq%2s7kc03/oG?2ǏBMY ÓiW oz p'V6TEx#N~5JOsy|x?Z7>8uÃ.* b%GᥧfUŋy+7_1LV]+W ٔcϽ%c"4 ?S;끚jǾ[Owy=^I\v_@׼gZK/\s^7oz9Ι4iʋߝ3œ.O]xqgQc%*l|3z?&@(5D RA( )@+B{j9蠝ی[^za'wbٳ^x/75>Ltpү~kO=qޅwaw%G?.9{g>&`@8ǓCɎE\y8o<ܶa>ǘ/>2$~胟ů.W; }\|}rMއk'W\b) c7TҚ !=Ӥ1+ A]b &```!1RNe[ j]A*U4`(W(LT!( /ouXn@#)kŸм0B)@ #aI)${UVSaNMk+zKHk+ &2ɀ-ҮGS6βܝ% !StXwft;Xܤ'؃n^5rJxs _~-w6Ӏ n>A /x3L_<|0QxOũ_xHR<9nSovNa9vGoč+>{nXz0ʤWdЯ]!Ӯb]wŮ.Ǻ/obC1$7#ժ? ЫQ> l{i?Â?9c}GNb K^z~|ϲxo/:~뫾~S_/#p@{8}P^>v@&Ub`_;<VJ|=6h,Xg+b%ӿE v#v:ylnk'W?r=L'jcxl6jH%ڧHXDTsVj/(o<^UIZ(öЀ ԕH0  >E)YJ$msfd:Uf%R ]-b r[gf&{6dI0c ~B]akL)gzOOf:?MK8VNp܇Ŧ̢%~<sZ>_/H\pRso7|U>٫^ IDAT]).~x!=𤗼Ϗcgo?qMnHPP]IC?A,: q5 FА;}(? ~;9k\X ^N<'OzO!w|,H!EUUXa~{oqϿ .7p/E1֯0*pւB,Z,5kq/>z uq8vr6qWz^_#|_pZ]ߧk2 :! \[I<}<7}݆?,rz?rsXl8 3ͭ{YW^*rM`D0 a dS6ʩ>ʲt:mcB#G5DqPW` %Ҵ:E{_V+U`7 ,Kof$Ʀ?RHe`mb7:wqs\5ېv^yϵ?Rؕ٤C%B[|c]ע<~ oa}|-_}pе3D`.WiR?݀^7 g_Pa8pYgwqRVu.K (sD1"(*<1b:y&g<=PTTPQ`*Yrew~TvћTwWU>Oݺ4hЀ 8eeeX+WVyryA j9>MGIfO/sgQ؁<4x|}<*}{ ܇:3A{_Myn ~}23޵o*g۬z}sz-!朗BL~ +uqЅ}wZ)%ViR>u"LBBI2z.X, TᡔjIJ" ?Hy`J) 1$$t b=Q6J,:tB%Ab ~pʊAycF q]%AeϹFJX @Kgy\UүU#Y*S/'۷lʀTV.]@iRaUUqυFۚTL09:WzXkQk y3sd },B[: Vh/B#umI$;ᙣƃ` y3:#@k!FMQ\^ -wd-94w\6^4+5y{_䳊?-ۨAĈyJiL_a8y eF:_`5qݗs=sRJKK7o:vW Ot1 `%n_fŃy_9\zV~ƭ}%-ع`޴ycngcM4iۋg<>jѡ9aC64fOڸ_gPoqIјczOS5wi<0=J>FmͱY[[}vXCp,`'-fK (SZ!T*P,u4d:i/I OAH,2:EER6( cpP)Th7Tt0jq𢡄j+(**"x -A8J!~gh=GBڱR8 #Tz7 MuvfZe˜U,MrnV*8\[iL TRͬܗJQgg$1/:JHP7C`m>ɑyKaA<gC^pe'NLmNmYOZP.+V`u>^\?9ͬ'ԣiҤ62!z)jvcM8`s{3r_p[n%/%[7ŇQlءĖ䬶 Z]9 vN! e\$CT' #|1Y:TLJtf ӵIVM4A@?%ғ*$P8,1zt2Lfڌ!mm$*H11O cN1x uD6%!P6 ^<4Bp+V)BYMj\ʙQe涹 hR]DgFtQ]1F*T0kN*m ᾟ09vn.s<_z³jh/| ްpGp'и5l1.#&67IW,X .:asj\c;6>y_Ä9+P4mVwz<= x'?z[uqJbu7Ҋ~ Hnٚ=ң໼y_O \Ėn BJ:o\VrL/l]܈YeqD1=;I<0_Ga͡lkw|5އqSZaԞN;!ԁ:z :5Ӓow*ӴM?aX%~Rsxcz:hH~ ?*h~gCp)|9O|&7 no` hs\ $j8Wج^SBCi#eh=b#!ZDb096qPxD%[cZp,BFcm])AIRX$ u$$}X Ȩ Zp&sR p}eB)$‘)L֥#d XZOj͔8a VAkh+DJz5̤ )iLpfB'5-*rZVsv+@N0)c):iۥÌdGb3R5e՗к3+EעP uN=*`7*YpAp ptG8pp:|=7 ;6/n >NJb?;ypi+e{}שt84hG-eΔo`~R_ pߎ={U,?OwK6Wp屧q, o."%]zڞoy3w@ pRΟħoś+u1 qCp$}͠%~UᬳҾŴ7,lfp9 .ڑNgB='yӹ5~毀;Z"qI&hڹ)%q y!<0PQ!ƾP ̺˵2Fല뺲HsE EJcp4hGX{0Bws4I[f\jaE"Z@XVܰaJ9P wÿZv7ppiM z~)/0 RN:'^ 9 ,^O|Ih>]ʽ6WULswO^k~n}NyW(_5?zO\GOJ+Z,bZ)2>H_e ! ZT{z\u(D! Q 6,_IRA ~j~ 0/|;OjAvq1[C=F-P?ϦVpsic ^Q=W*@%Xz/y#X}d9+8EYuᱯ|Y-N> zl•~Os6;&Pp{,D! Q[&=XJ"^kƲ|*#AHP'J^A&I< KT4&)TJH(tVЕ;#(B1iz63l2ғ_ib)_J 3gS LeF#Rgiϕ2:fPZc Bfv5©K}ۚuw@~>*ۃM'w&wJuτŋ)#œ~ZP$Y&cl6s-R mY"';Sx(##_ e6EV+ _@knFa&(D! Q J); kRR"$aeĹO&ÐUsVMkؽ/5+&`䕘Y+D! Q)?j uR RI We%äf"b/HUcpD)eJ$'* eI&c&LԸR"%dme*+j!Lc9J .Jxrzgv2ʂ" RsQumH0 .TR#6* /L}/) QBlžP,P]?**~m~.B2`,H 5!ҩ}c&،U]U!&2H9w@:V(z^lAfShPHC"AT6ԓ,5fkJ)q] d\C H@@k7qi4sSTz-F]_ebX;5W4hVrٖ$kkcj2UlOz0a 6^G˨!:nu[(D! QB)(,0 GGFĤb(-T#]pAnaME9I{V+2L! \C$%bX*3XĽ~2f5zD4m4):?G`@.~FUtc YVHj‘^ + uiޠ[ߑ-4.nDLY:w nFv+U\B5.PfsۓiUFdWV4ܿLj.LQYw f(si2Ռ9#14e6CDm$N[0ɂͥ͂zY'(D! QB=tPZ" Qt,|?H0 aV'zIE(im=,T8fc 1%(mk+IK  E٢ڀڪEQFbB\)C$PRna1BHboImiҴN(HShu4Jje_FkSTOS)"2YW~EIQV0omsYޗRIiΕU_TK ̵.vZczlC >!oUz#s tK'OQ^CcKX^k,jކ|Zڗ;ǵr 3,ؾSg26sVx+-\?u_IB(!%Hp@M0NB@5Za0JNC`eE0-B @d $} "b3e޷ܱ{{߬K?ʞN{oggYi5̝4onu_ZY<*zN^v}?|"Ꝟ4r}8,[ Q_{G/: k nCKS\w{Ұmتw~owcY/jrWVP} (fQ$ɬu~f2,x<f2k>pB;D:.ڀ H&Tp U 8g 0ƂℯHBHi-F"CJRA2: #<Ѷ0`#L (僑:xĈǨ4@ HHD8ΐ N ܮJͣY[-lFO4B! Lm KS\3ΩFH€RHDJ ׄʷ2mɮ4z˜Rfc5Fw+2xL*JM@rZХ)XxاLH ҼW4Sq^|2߼<[}7hDž"fj75!;\̞g^V0cJvc5kY#wϖҎC cd^ eAm``$2$aG IDAT۷;n嘣n?sY193(bۣⱧoP,Nמן2╡6~jl nhG2pRppӇGQ[:جNS}͊!*]E[d|5hC>V_{7Ys=LB\f!փcfa\7LX5)ʫ12Tg>禕_LJK#2HdEu*sbNq ,ױJA*Jikik=&8u-%֊IO$K_+x H P{H馎Ê ((**BR9(("N$r4V-6'X`Zd{NʔkfF3y[?RMڋ]8FE]Yن$~%#Bo*IblHBPؤoR*SPES85kXY;,\l4YȒ#/P^m#rKyv^{٠y餫9LYi%aq~p%W0|m{F78^4_fS? O2ᵻkHg7\=OFN펡?ܝ<@[;&<]ֱor|Fo wVNn<=0rCvɴz!fꚌ!ুrJG:Y.k0?T9ws;(\Z.U:U;8VxTARka-=BU! A\7\ 272Rɴk23,\#HzVUڃhB)%Zz^NQf E{W$X<<>K{}RyNBʡ8^:%n1TiXMͦ梷梠Vfj6(?5ZWY`Z) tJՇMK[kK{eMXF5(y%s[6X_fzAC߉~VauxT4 -[Cbfeռ ۝Kޞ3yoȱV_{K55,k޸2a[_7~Y^ȗc8Mٲi/qOt|_%5k{rY0n{Z,}.Rψdխpwצ!g ]uXe7]s8+1kh@͎þ9K)M$˖0󫷸i,|3M&Ŵ=lbxAbWɅPLv^\௘p5~3|8ujms8k~9f};Þ-~3~ %̚8wM7G/pp&_ME*Mʖz55X!Ҧˍq#>a4;Gw)4'gLAM3m@nCwY1'[MgpqLF<9`)QOhrDGr|(V\> \};|c3lNƸIo>w)V!*'xtl;v {\3 $M`gy$O F+?dְ *u(]hTo&[6E̙jw`:Z1 C#sneU~i:sz?'5͚oz hB$?r]j|9 (F&uѫ:ӘlB;9љ ̠16k؆<kF\,ˢV [>7ָ~ ~ʇsardykUR 0/Hx=N؃c1݅Ƕb'󾡴mz^?Ω=6݅2iz^[۔mC Qݎ<E| SFsR.1gq/nد-S^Lh0O]o:4NY·~a?~]xzk\})$;J~#8zq;aIKbE_9/>O~[D -ԧ|Y淖ۘKk0 {Yh4&+KY1ZjEL,\8N:jmEiMyX,FhBHQH!BUt!J>HY1$6H 4eH)"\ϳ8JZ6mU e|$2ӤtJ)C,R-En0u$qC(5oq#T0H{^W D@-ڞ@Mha)WK&9Ecوh>¬|M'&Ggt3*:v j+u2nh.mޗ^QE|3G /*~S6Ì~7cB[pj߻8B:g >oHAxJ ېy1g]Ǯ;|>j-rg S8{׼t2o.Ǡ-!#F_@ KxĤnÌ]:蕁,3u9Ӂ9%EWΚ}*m>Qq֗5|=a~c\>x{5]dGM3i-YTt1Hߑ_)~H (['hvL4$EsQ!ŖP?y F/4o%|3E;Վj7kZ'B^~ޞ|Ɨ_M]u4V(GR$iq{, M%˙6z-1J_ix xDQYc&mH<9+i'}YRv9 uE}2-CΕw#{kthilUX#Z> $'w o߳jc~4h߅N|>]]>϶>>ԃ33ߺi~l<:BNi*O@ G.g䵇p£?> w潳kl qt~j>`N}z]w͑m6~}HҢG?ՆĘ;9^_psXB Zo1LYR ߷Yd.kAn–9cUZ)lf,h;T܂Ey^XVguKXZtPhX(XzlTz"T EuH$f3P!HL @:)G R+ CQrak6ÚOc}Oy4Ƈ@R ++VP֤(EaFtlذF2MɶAWeǔ]+jeY'%TYl5]LƏ_`ĭ 9ٚղ8[ΠvSZqʏbߝkٻmNe3j?uc:rf>Kc)m/7>SFWxyYdEqL$?N7@MIc{qױw0;|aՊQ: ЈzSܵtٖi:gэnvs }x-c/Y0Gס6[ (pZ˸scŴئ z ~N\ϵ(nO3[|gl6l6lMcTUv7;XWp»wٙtz?0kyec_E*P:N8.1ޟ^)8L_feUq[{Gz9Sڹ'+`׵=%3l:~~җ g'1uwc7Rgܳ6`(u&kvo缶[[VJ}-a |6zٚґ8m`+sŇӽK %yaF:AƳwȯGTs?\ݒnj<_zf5.6Rs*lIcGTքQ&|?"ȣC +*kx t3LA@tJ=V!=7TT'BP|6 6L= >J 9^V[~\l-iZJR /TM)0S(\/HRRTC,V\V+V"*rZG!8UfvhQm2jQT؆@QA`fXd6J8rl Rg< 0)OL~枱p=br=wߴSl=JZ @äXU92nBU~%o-?է^'pc8>Q, &2ůI̹6>鴥fX8An8@2y|zX~vЏ1їy**SDNHC%;l2Yl3;՗x˜Ys3'ۓ4lִ Zo.J̲㢛xA ],.;iw_'iwc#]|TY6dҩ>+95?ql5Z'+xA:zze+ńW1behQBݒM+Y1?$Gfᮗ׳PtmR-.{C'NYj.YΚe |X5N@6ۙIIcb?Sf;c?G&W~&''_ҠNuIꄻ#eO;.6,ciYBX_I%<!3 Uʍ"rMKE"T6RdFϋ>BaAҥ* | ZLjfVVI&p;e('|Et[4$ۇYh>nBfh "YЊ8nFENKEjj$xYu*utm&.$ʮEq5s{S1҆9kIS(4aXoɰ"4T1a?1jz |Nzdeز? /mZqtrͷ ,p/n<~>e53_~n~.8\tu>U]^r]irF?ЋG_gNiKѬʔpdhx1_2vSԸoæRF!2&489֩i5Q\BŎϔ_E=Zhtq<8m#%f Sx7=Vk=\d[^8y׈IN8&r+?딽Xa~r*}{ ܇:3A{_MynKzLT{[6ĈPgn^ӌ.˵%Ď 0&O rWqu\tal2 Rx =7#B7tBLȐV+\? _)DxIJZ"ևnQ ? b1FR"tnh2Q HnFHA41$a@bIeE]׵4Y饰)/ljK(CbNI.({ß&}#$lfz!Dj]gfh@e+PD&\;@E\amIE ՞RPgXdJ+ xSE_tsl+|th:3Vjg4R0o |/tG[ky{[ >1oc4C1M/ٓ6י,̺.s|2S8'joz{#gc!μ`:[Kix~bc(kNc !,d(71}f 0xr GI]1,/+_bʽ c8clְ Q`ė2lQ.j[M[[x&>0s{~W&E5`{ aMkoN{V yl2"e^we'U?~aMsnG%dd/c{fi܏q f0uFl׎CZ;R;ԇMtoR('t]'vIX;BmKdX麮q@!0Q`RKhLJViF%sB D(4$%h&@">ܘjek$HՊF_h*I\C6*B,J/L&8P: 'BZ:KkqQ'=$1IPFVæ)i )ۘv&tV g#QA41YuJe֋atG"6+ZɰV4GYsW8&wܸcM-dBz/v+ɕW OEytL~<GzsM؎9 )k|fpwlO2?.:t`'7`s*U3HHOqV~9w_X8!J`}2'q*[GKKuOQV';ʥ 2:/=g!vן,p,^?w%t~i,x[IOӵ8sy^|E(^}k6Ћv$Q9rF1+yBќS=Ff.}:%-KQO?0P"_spGL5&Ti|]}l5E 5'.<Q<Kͦ7=kc^dzo_۱N U)Z:G٥'מ"(*r6/*F\ns[+ғVc룲ޏwҳyOXO#:vT+cxH3*`L(~ A"$_+|`0z̤[L IZJ)%V# 3D#-p~D R"r!!(|T S~`?뫀V)*@YSNM4~Rxq}eeB(bX-hC"აh#H&|8%Gi-Hdg.3]#lj kRt3SFlm23Y8kFeʙdd(4߂$ 6i`:HIL7쥎~׹1IՓfc#|,ώ,f˨z?tѬfW|u(~:O"ޔ;(MpvjOZu·8/ Iٖ=[>u}R\0 IDAT\ƹ<2f4x`}ORyp*Y 59zj> J?⾗fPj=n1Cġ{sRT3{P'#~L^x>nBN!^.~'r̞ Yd]~GNO`euh=`8G^thqWu!mZg e7{>]XFRwt,}zi ?aFk09ew^.iߗ^?ŴH:m`̦E)~/vz '۟Q1 uxݏ׻y 1ϝuZZ1H)J jGύ#]FZ+\2p"Dxfz!v2)/4Tje6}ک 2Qpv6)dBMzH. Kٔ["\ZkLQF%ѕڤ&F3s hЏą{%Y`%s~7wیE'NKo"E颙|M#|$X͈1jȓ1;۲^ew_|&?Yg5ϥ}ioJY0+-DLF|IbΜӱr}|̨5Y3[~OKy\=Y^.op!j#?gT ԓw-? Ksaŵ7pq׎t:9 ϛΏ?\&rhﻸL#P[>?IK'V֗>Ǎ'Q`ݍ{s2ǒ/6GsH۴Q_& ᾿geMfm)-ͯkUʯ ?\T:~4˖2g7|EIEC avOq\DZQǤ@і~ 55 & ʀ##ouH !A+!ltlxa]E|lf4ǔR1=+|E·⧎릿[8!.SG RcmLT EV-W ۪ϥp(//{lUpy)+W{uP MI(Hbݗʀ/]g)tJm"1Zfm# k !8){&c161+3*M DiK|tkiRhC)F^$N9RTAL4ۑj>;Cv|V@x6MM(*cnG1i9yO ( v'qRo`$EqB+q(nۋT\'-w]\}Z:_G5?z[ɍ?rÏyÇ_6j^{/'prΙ'E[Z=Q_uQ2rUlh9{8b0׼I+qʣX')q"C"5RbrԂ4h!Z]XjpYAH"#-^)F,p `o  Qf֕>Dw1Eb }!YQx+HB%X@!?qU;UxP(`]TkDZ9b,B$RHyAGPKbrt16F:wd!8$qVh^EF!)E QFCd$Ρ"2Zo@F , 2"Bb ƑZGxx34$c" R8|6(]3D#HCdoO@ӏKE-EF'K'mo&R6&;.X!*F6`ؗ"hXJAQcLVY"xD\ \S9eH)Yc,NPFG0nsA`8ka`5jԨUgBGPP B-%>،4 J#$Rb>F2)HG85Yp4'RB3͈ kQQĆaIc2fylۻ{}[dƷ"ux &t/s_*kGI/\SzcR Egnv$1ei&|3;Ɨv"wR8&WNC۔Թ֨QF2CCci&bGR3ſ3|װ|}w5jԨXBuP&u#D*EV8!ȳ E)5[" .e if$n:\L)(YZJN`dt !$ylE%DI[EI q"W8' :S<ԌAvxQI!6d @.K= .\Nzt5?m :|$AWVpESHW}eUgPU J> 28Ny֋I&; EZ;bDƥTVlI&_QFO-l?D84=g"ہs~kPkԨQ:VynB 4 11vK38ؠ GqHMA, gxl tWCYf ;TPETTX+JSEE':3dTJU-d@dF`e8@J˕V"Mǰ6!euEᓩdlFѺr1IӠ!7!b[$F! d Wxdy!U7YX2*2 A>|9RH#J1@HHHH/S}̙64Y]N磈MGF ĩ"l"5R@9"!00Jgܵ.G6 3; c |+^9ҹ [Z;${6]:'p : 빢 ;{pb{,7 |DMmw۷İZZfWLV*۰gtnsT$_y.ѷsԎj/=X_LC]/lv p [ѡRgFy-ny۔k~a3QO1( ;Y]W&?㤳9#\ӹp [Aۮ%gS/3?Ip m(Z=5jx@cv:kt8ot֑yPfU k V@S'CƥP(T^;sJ)1DZw !(9,L  S8&rThbA9 dz2"Vayisynl׳33ld`FX=yB+ͱ)82KO"!|Prb%!(Y1:P*|b%g-XdYd"x7!tk|jFskNo*\Pa.YI O! '\Wv]ۇs|Zk'avyۉNVk7+)x'>ʴ#G v=-]p?O̚PLO^ϽIQV[}5SISK} ?OʾӶl:$.wwf$c?Ͽg;?ƽaC+5レwTv\«;׽}gޛڇc\i#`ӗWlg d7ePn<8 .r GKCrϵŻq~tC\MfTa*Nmy\tj:~s8l~8o3x%wn.~$[pަvO{V~7͇ܾI?;>y*mJu~/^fϜd4Y4!mC5j<] v@ )ؔR9 "nrΏ߼~)y1$qH{Aǃ).l+UL5R !RZVqH*¹!zq3Y8@vX,='ʜlg A4EIl -di 9'hMO/\f&ƣsAb5IPinIT #C-V`V``QZ)9tSZX;>U+zv" CnmGavO\V}!sgζUb!dl+V3Q,%cK؎vJS%ɦ|AЭu/q㾇d_ Gò_o|oic{Wu /}Y֟k+b:ů.ﻁ]?/ ͑3HcʋbL}2y79xW8 Y'1HοR޶K~t S/KWTs^źb?_ig?vW~g-@r"9<N.WKKN]*eXO|g\5_߯ƻ_upu̮G or#^9빣\g&ců9|"[;$>%D&$֊Ȃ"F i8ux1FX(HFK1J?l~=i~~$O[~gA}urا]wqWu'Xtޣֹc]?UtWfq{i>$~xo5GrЏY|5^v '?@{}فkYFlơࢡ_KzYF'|j H 5 eHI o!w6H HkRbzdZA$BfHɍ8q 6RʶR)Ee{%QČsvg>="lNLWذnգG6"rlȆG!1!GhP|54̘OoA_ICE4$%ըL;2ұZ#hoХeJN |*, ME8PjaWmۜ]-]|A)SN ~ jt=躶1^'8JL&(gaW(Ho[s{ɶ &+d?%<4EA>/尽TaJCb~u#O6,/>v)^k[̻iQ[\lsjXN]sλ><yыx ,bmv~9֯?>W]}5wy'z__3.';aYkW?FOWvZٕd@)g+2$@ ޡd (V2(*)uBHlJ,,Y!'y(iOr鉦aS3X{Ǭ9Ht/Ne#wj(4EHIGJhÆD-o@72'I I eX0^+RHyF+J 9$h^#Ŷ'DvHa 0Zp6RlD$\i)sKgIDѦ Ho4< fˤa]_=%/'F7:M")=k,O\2oq7^I]s?]ƟXsNs*g ?r~t100J)FFFdt1 ݐsҜlϤE7o>"HjԨ4Ó9Z@l`Jg9qspqJɔ褳!in#QR\c,",'RɈVj;KN`RŴFӚh%!cV߶9vHa0Ѩ!{W1M7G 3).DVӔ1 ȍAzQHuc)8QsQzks' hQg"7hc$DM"4(\$su~{@AM]*ODPn%(_!cp^J.!n뒒@UGI^cp5-}:!zP;v+H10'7@mB*Xa]LطbGc_ͧg{جcp+AIXsV`&AѣGVUKsKsfAg߽UrÑ|~$f1ߩã;V?Ȳ9;w;Ae ?!C`*ֹ.uns5]+ၿ p/ìG1OB_fxxe˖=b[8e:ȋv.5QHsE,*E%X'px,EY;78kXkp(`LFhfcHhjH`9EayRB(\KsĢ,y3mKACb]k 7&=4cbuh'q-6-&7a~`=Q=[1N!@ˈi~rzƑٜ8D3cIEQ?L"o9 W,IDH,H+aqV<<$>`ChxmשlSN?v6p8gF_>\uO8?ZSZ%e|L@hts9]\.nT Za cGauolnens4BHюu- {L-+Z۱h6lŴo27O㒝u-=0>56/_U=va#~w*Na _O݀4yvhy?t|f<SbV<ǹ^oɖ ;Y)sgg/G-_t0 }QQsJ.x&ne5|͜J=UjԨQ㉃œYЗ&P)Ra B+r8ƃ! 7 :g^JhAy)$2ʯdy1!#о.wb2gv4Ǥ6GZAo;Y5.ɆquMm~t &>KD&hHB:⸈Rz=A:i'|T1I$2"DD4u$Zh{z $Den|`*M(ˊEGȎlH5b !ى`by'*)Sp/xćJ}grRmȤ0/vM;:H>;vn0u7~ 7b羌Ϊs/_i[O眷׮jrk[p ɏ/=@WoKŕןW7п`9KRƯߺ/9w7+߇G ڍF}g/壒y woyӑ.{t<$}>}*~_Y{DWp!]q57޵!0g᡼}+I mp>vێ}~ l*;~ºS;a.xqo`?Ꮻ|!vP)c9|B·꧓[lMLL5Ξ |Zx!+{Rrs4p0G/؉7AHM7gplC/zQD ߰KİF5@=";/3(C,B $A[FJTqƂH/2b[8SHe a EiZh' Yu(4)1Wu}ӈekwe|EixM"4}AC%48eQF+#4 BFZ}㸔$MSzz8-i/k xGe=^*u X`lFt"jljTĴWZAJGޕtF[4vs>;A;dϭ(Km0;Yڬ}b oFR?vG'(N=CrG?{>v woĴoowXN/c՝b҉/}wWgXy `<,>vw5oM V?~nZ6_<߽]81M[v\ٿ;'<߱3YY~΃K/Oț_O\~7}=Cs𖞷%W]^8ݟ7SYwjcgOVqG=,:~wmQsEOc*BSBEh7W)ΑYK%8yD3p)4ssx/aE0}8[;Dj?]͆xT^ї'Dhz+{4q,M  w8Q(m(ͭi{nq i$!+ JKPLN̤XF}H*А(D.dJbelJ(x!iGUMYw-¯mIIJ,N~4UH:qPR]i۝ڞ2X85＀kjbY1!~tFlTIO;n~`jH^qFZAPgAfчr,ܡ"#2[dҨXs=9Fɳ( 2A(jW34fЌ:U8In&nA@̿Xk+mVILu# &ڤgL};dƬK9ȏ_?TO7 @ s‹gV$z{\G>1m8:8';Z9h^4dl[hU<l6† C|799Xx!K|f~3xū5jԳni:䅲m["xQQl22:!hZV1 RJz{{CkQj)IEI("t+D2{?ߝ ѡ"5 -YDz+W;8ǡSAF:^$:F*ңci*cK؊DKJthSX!A':HA KւФ)DҐ<67:X2`(ڱ2l,I]wYM $ ::~ǧvG;iQVkէr":U/2‰O>;" @ o*Tumy+hWuՊ~:1/+ԨQFwWMMoC#dֳ~8-+\v3<GF9JH# n5BոԒ,8c !#2:^"'3"J{wH͂RAuy2Ƌl,( K%FM8~:FjGQR TLn2[Ffzp%JH(pkrTC)Aʱơ`8@J)(҈D"Bd(,3k@:&AK'aS4b J"HC% YSXoB"BC.%Y' :D~]iSZV k'":yg5%7/ υY^pOKp%@ԨQF5jԨB`Ehj)EeP-ɐJ- ucrGZIz .J*2#\CG PsX+xgzu/[x36 =c60*^[4N@,e$Ic!ItHH"c/4D!bsAKd҃ZUyj!&G:5X *N!Š{DabSsY*!j.» y r b .QBYX!,kǓI^Vz}lHGv<+ۖE;&SĊ.b)*6ewj2dy.9&n||T o > p×RԨQF5j8@JXP2H: 񲨣T(qEYfڑ@D0$kL4yx8sJ{ d,zJV䬻}F06ZHH$!}UFAtH(Oi!VgY "xfgpX8a깪ĪQ܆QBOk;$(s"?شPABd4 "V ^>DĮ˳RL8RN$UXG&Vhc}' 3i]fuY(4u'.Nd$շA+ -:Wj*=w>{_<Ʈϝ [9saX֨QF5jb(lBHc!"Ln!xk3f` (5؂H8J!cZiP66M*a登޻H}]k]U߹0g+ 32@lE2Rl+8JVKb+Qn(W Gq) & &Ø ̜]U{c]9sLOsvUO=<xj>k'|rbԜ$\PjȴDe'Diiz 9Q@\+\-Ƿ;FFdZKTFM\U3T#ʨ T͹;(g3T҄ ky*JowܐvH;=z߼岻rI3lֶ-^%Zn%s~+|A}~'qpOyo'/gs| ~{ v:Nt^&5`ބfΥUn)ib:UQUJ)!tb@VK-wɟm^{# /W~U? S}KbyXV̚ Bu4IsJwZС!ֺ,UևDuE >$ $ˡ@(I#[AC1rJ&Q!hig3\L]7ePH3wW+ӄy-c ~j{xrs;N5  z\3ǿ?{Z|e'ֶK4ήg\Ҧ"blfF'>tk`@H"HJi&qC+\a*He]w^:Ix۾3|]p%|7rz|/|˟G~;Nt:)vCcf-q5|ƔB18YAD(3Bf4MR(9LS%=_K 1l+'ȿRO J2( Zr 1rq`k%aSe!slZ(HK S{+xtP!62۴I2́{B qhBըO.c8 U$7]j [=l x~YJDU#~GRnD|4WnuoSaUnr&4{xc٫-F/y}n ٿ7Nt:WЂn*N0yH9%Y`fGëZ=ӴG5Σm4 C~uRoz[xϓ7ɟ#'>~&Pt:(" 9()DdY̅ wJX1޾5`Dw\O| DM%R U,Zj*ag+(c15B&.o CA mq'e Lgvs~Z5M gA@7ey6;'垎QXG1}憙noz/ew_ࣿ~GZkm! ^pxb_`*9S!|7w}5|;;Nt:*"Mj3bq7Jm9&̚ ^AB9Ss`N@8[7oϾ;.^Do|OtȦ "l|E`EĨIMbXbeRJ6mQ3a@ *5 V@JT,Zh= ^cSJ2! bJ * Jvq/mlc޵3aN1 ť|y]ϥx|zVR"tLnM:*)1w|.Zm$ŠaYs%wgr|w Kp9~@y971wi-x?X~ٷ|>sx%\>|K =v:Nt>+5RWۉVZsъ V[hI񦇟Ko&Ox|ן!^|iWDhm-xE4r#c 8Vh 0|ФAxTB0( +zH6"A!) <<"=Jq@.<:*bCW9ceH;YiHq 9rCnz>ڔ~Cow3u?rwP-M"'AK/%Drv.ؽ-ROv-e;Σn\~Nt|/ûSgoR 5ҋ毀W]~O<P?sxY?O|iKx779|pkt:NpN2DTz9C,$eT m_VdPafK{<5'`W^dwʱ\@RJ`_،͐ CBBO4ա`DP' mPb% caU.DRSACD}KA%*`CwT\ZrsJD2%OCP$RF.xӄh\zHqU?_&fyۛ,c? 'bg1w8r/!.X9t\ԕ=C;$aXn[³nw]]~ix7XS{? 9|/o?s܏j}-=|C䎧3=#wo?oT/7Kx_Nt:gHoՑ9wMB)G_oYi"[%őR*sQϔۄU[^鱷Ex>>pm=AVj>N*B +NBVA&gWc،iʔ|@Ĉ1ȩ⫈ B`/#-^A5m"!(ΐ2 RihW^XxLyj%i¾V1!H!.򸏸t8.BH&MAl7gPfx*nv9&ŽboԞ;~&O?xXB̏MNs}-=vLIs+W_[>^ᇿ}m? ?`t:N5A%P@\@@T'i=۝cBJAXZ1:]C'ݯ'Og6l_]`*PT'QQWLR&HƔQT1BIIZ72]4^+H[3#'SӱLը ZpZ I"%0SĦ "\J&…psK7{)R9\&SqVюsz[1Jpm&͹7+ iワyy<_χY!Npr"Y?qWnt:NyuC|1bHj+Ҫ5&jq0`Рf'.{;{1$^ys F-Se~M1WCkSJ3J5BE@ a6 a.WJaNOxiyd6Bb#)jmgs5' "󨵐Bdc!>5 bxjS?!^+.Kxzϑ<*DŽ٣3xّH氞˛%rN& E4{U8XKY:/ir0&[#G (0 -@BHM!Vqb! '~[U]so1O2 #B j. dMpn2́CQMdUk!?m:e!b^Z -5Fg=Q7@RA.V-/& *3h@Vk -:RQB)OH# N{.c9q4ϕiϲFbTRZeNwzpcL1Nw5ݙ٤q[nS6;iQV7ScO{98|oAot:N%R/ś_R!, 7H!Pj<ϚAɹcܛ+7k#dELx ^wCxq~KbHh(w{4(9}V\CX:WTR!a^ :Vt6#ΊaWyv'@P#Y`_fnn|f\ NnJ":jwVbAޖCiG@< %?ZFV=E/ܰCt z.t8ޫ'3f'*r؛Ѱh/z:G۞D; TNL?ܲӽNt:N$(SyJu@JjAW!)&"Chڽ`c w~5('Kjulg~j㵸Sz0JzAi{!hKőq Ap2"TTR)1dz7 _SZ~n\oVm4 Rpn*۟<緻zr\?.DkKJeNOt>qvۅGG]GFgg1?'.N.Nt:N5!̑q$| cKA'8/>_IW#>̮41U#XFUT V*ٛhl©*k Up A]'|pd=\GCl- -WmsuDvF<kᡩJ}Ujh lJ#;Kia6 Rd^(ZQK3I!~sJQ%LGdҐX۔fh/FTeʔ Th/xKQ$( Qkt_0$`ZLutj٥ւ(jzUU  !Gx-> IDAT>!ґΥۜi$1zV7o}Jho"Sѹ B"9.P1W_QɹR>c't:N< =p|落s!՝ Š:'81Ҽjg׻ 'WW[@.Ą3[>mG&A"1(^&BɥU**BGV@L R{$B憮"Xk2IcۙD(R)cW&"[6R;FRx$xʰrŋ!C`2njMvYl N#qU\:H tp iэ;VG.k"Iv&0@Dؒ4p.00N*TN~ݚoCk6;ʛ/wVt:Nt:^[`Gu#i 8 M#I#^3CJ쭅`0 xH/e}?"ן>=0cH}f+\j]66bQYq!4UB;/#bibPW0DM02*@ ("+ ϓR@6*{12ڔFL a֏V0c<:ӨKTйCA[7 WA|-v4FL`Bv{,vah;Bvn978qE`\ hкedlelvut:N鼦HX!xGf3#T*+1(V\E(n\a`HkS2$ *ͰHZ̥Q:oy5<(rshf:TJCTWу:VqȱR䎟Y* q<\n wi'=Tܼm_mYhFjvy=.2;Nt:ׂ! 2Ra9j~28JmT8ǓǹXK^׼'lžs>szOn#{!Oq:DM)B"xAQQ͛X;$17*T&xP-- u`Wah uHzl2 nk;UWFt^1Kn1a@qs(h:lQr<}=kڭ /ͱM[([顷m<ܒw"˱t:Nt^VÆjbDN]C\П: '1"u\ﱻy$JFRhN W[~KxbK^-LY@fqe7F<< ( Mve=rKp˸ v!E!txYH=SV]>w{-%xz6?mGXtx]Yv/X+t:Nج¼PR+J[*ϗ+!DT\ ^Hlxrug2O0@#dM1Ys(sAb'wvG.6hl5Y ?`2e?(\_#7iy _M<'.|?\+D$1RD4T(y*;kwwAsEsw<@Q u3&|gˠy,aHP #F>S#Si OyDb0$>6VORCEP<;k!h`*{T JEvOŰt:NyH MLyqoe&,RƀT*\eŬ{<)ka\P!)D" <׀M+X1<9C0Y ST3J!%VfķZ䂦DEGr%4 Iq>5VDj PBLx jsBXen0Jw.1VL@crayt PбKY诶C;jq)쀶"=+. DQ](|tby/t:Nt^+Vb[w}K02[ꝨcBK_@|*0r?AB ˆ`cc*Z@"T4ao3GbȻrX $ biJUVE3T}Bs Ԃ"TxHv *Mj55/M MJiΨC\)",_if'5Τ0{e.q|Q쁝7<[sy886t:Nz+dF]3 M>@-Ǚǘ"%FJ)W.eW]ow{Hqd&y|}hzJkRXk:ĊxsFUUe 8"(Vώ® .-5 #DˆYK搓?WvUHI'X "EAsj((X-,)Ғyclھ`9$ $Wե&%J9uܓ}“S5?# XAe_XKa=nZel`FBVa !iKJjU@/r!ڎfG^$HSm)14`^ә6gx0(hd`Z+cJx5JΥ9VػFF#uĥ's~r=o .ٗztwck&FK=,Y/?Nt:NA>B` u\ 6Dɹ0+פ!(|v[߈a<W~ÄݚA Š )q˼xGBPѨRJ!H@{.I^H2 ?IBzƄJ1xJED`!!"qn)#iDv{DB봔 !BibQVJrBu Y%hkİPUBE$rC<(P ʻěhqT9q1lmԕkrX*Iн)ulrRYf]>wZ ~gmڝNt:NAͩXbd0HũfC=I ҒOMyd|w]udePW ׁzU .`{A/^ a:'KE! lVCrVXFfa SH)Ys6bbS} *VD7C d*̀G '5l^ԤNHaB\x|˲ڜz.~ا>~ P&ۖ1>nځ;.d 0hwV(a@˞j-8G1yBUp'(B]E Z ©H0A1 JuЂ UC4:!!Pz=C`cX Po=`NΤ|6+}Gh㯢M*S#r{̵\q*Yo]9"9V滺Nɴ?G!{P%K7FiRh[MJNt:Ns..%ka] J½=L&ki坼 = {~9S1%e{ijb|IzaFΫnfAlV>W#"Su {ǓI!*2(vM( ~3íz&mr \!E|;au#xaFč8/^b9ODQ!mw´_@Zbpg[<Ĝ ۂء)gcGlq姸{+J{]ouAiꉋx@t;6U̴^}y.a_QOt:N̰}eZmJaV#0{C"x5 :<|qKxgvKclb͘;:Z02(xU:nX16 f3°FE(VHPJe[D_1ʼnCZ1%z9Fk:2*JlЦ,B}qO8I ^LT^H+fyc`՛ZZPQԩZ*a--vq&[#@: 97G]Yk-wzݻUSAg IQkb>\+{p:Y.TkIw ]z59v2t:Nt^;bvU#k6]<•514!y7 ܅/rCy7h-Zfk.brͤ$*֫ `Ĥ8Nmv8|_F&$I "\MDjlBJqa МG5uNEJE uuPz{:g#{(=w'OjF!?;林Y9wׁU$qǃ\Sdzo9|xpbw&Ğ~niq/Nt:NsA AFF |bD*n)arju6i<q:_x{aNřr%fa_2d**s"+&J%[Zajd$h&T`;V҄bKjUUB4 @ֱ ī  B"Hv̩` ա6 :Hz#K) } i2̂lYQ֜7w;wE.bKOĤ8azSMŭٮP4t*TD aw.uzu^[]t:Nt>{TfM$bEF"I8`&hl"xOr|7"OTF.F"B$@)@*Pq*J+D5a'j-쬰x c"BT(t=aLD"u_l-%ɮ@< [G.X 64d!PW-Y2oY È!ȡ֥dýeR˨l]?`ⳭʙZD!a$昫c.U&*si˥I1{,{ ӹK/cҥ=6+TT?鼝Nt:Ng?M1r\YFpJuViTpuưbX)Wp.y۾ yO)Vy FcrGuäFB$Ͱ`cĴx\3JbĀqFLZM1'@@6DC5¶"cl!S'qIMTA|i? CBOz 2QjUkN)F5"z4["ʭ?ӄV9~6SJGD5W=uAk*'nb4,c2edܐKRBk EX=>GcNt:kୢi2JD DLio%o}/5m3K+Wl@ G-(gG]7$Q\T1wZHتf1` +dIz1RjM #ՐD WlN0de~O4) ՄַYDŽyÃ"5;zD!AѠQVT 0FVGSDX=Ow d6n{yuHU&p X]*Um9^MKț~xK-專z$Nt:k@1 xd*؈o|7=8nN<˟^R H yaw dHO;ՆVgwdɲ#Rus(@"z04}nUnf{<"<"5o53+2/uʵZ2¨0&š@y=QhfA1 2w@V %| d`a5< I ԑZq1Av<4Us 6#2 GR H5q֨!.^'aߦ5u 7˘.Y uZnw3 GD{"Y.2}\fo^5gb;Nt:/E5eЀh;ALX~v?%=jo*?P^+~3@3Bd3Qeik~ODќWJma?bmQ+dOGR+zzj"YF!4Om75AV[PBzh41CBR:˺4bMk!Q|0kWc@b)%=VnGE/5F4hq1nmeIrki{xh-x^8[wp=vwu*jIi؞t:NuMh2 &˞hQwo_XPqd +1 őD@uka UFbJH12]<\1RJ8@qcL#&.4 $EBw`X"2%_Fƈhk?1%\\!F$ՈVRJxzs-\v.5~͘@ Di+vf晹V|1U&8r#~?"ݰN믉p;о#LIrًռi'^w2a<~k%%^t^s ;;Nt:$J1VRHԙq8^_??cOTU8nF Ox) )C$HJ!(V*3rfqCU@0N;.N.]$H[MqicbRY N)AQ)A/8PkF'm.89CP\"fצo5sv-g(&Wp#,o=2zgv4w żWA[xWy|MY8tu6\ۜYwB.Vxw:Nt:ߗ8qBC+A'?G"~"XbˑG(Ba)r`q堑" fR% v!Bh'BqA47pl1>MW4>)~64 XV%Ajhx.OR\qZe]'tئZj!C q_Gl" 1ۥ6SUb 1\aq(y[z*Wүɫ5AU}3z#/oޏ{'1Zm?dm{:'.)oގM**p/o6|h{|/{+^nft:Ne6"zZ<' (ńvi|5Rw iǩ~XT)4&TjΜl, +`ZpVjX ihƨTڞbi)s%LqBjAUpӖ[([s6+Q!ূ22 JOa-6[ &r)!:x뿤^RA`KI1FuB2ӷɱg%uݹ A8ں!Y{#r? Աp{J׭ ^zss%~wӽ;Nt:Ηb5rưc#1gh$#|i'D^ȣ=Ӵze)hu`.O+ߟ>(S)$\PWxM|||i4 XET0ƖaZlk:U"wxm?NH5lT*brk8+K0Vr6r(bHP skA@m4ҠZY?UP 4r+sv o%v;g>ϳLyUo}lo.#&7{lKV!wI=.t:NGM0,※`(!|鉟#^3%$"|??#G[Hyy,%$6 Tk #%B5b`%LKQ݀2d\@/ <^Omd Ԡ0O ^xnA?jESl&KSPZ::Fl.4%$UCR\}Ss2X6UtgyVq$gg;E%o?ڝVhncEoӯcͷuv: |H홚C4gt:N%hhbndOJ|߲L啟=J*I8931d+|ɥ#2O;Tl3s к2S0*!2pF]-#c74"TA.ة\MhƈTLڪ^3e#nGcAȠ)@ԁ%cUr:$CuE7:pw{=D瘗o)]7Unw4au-}#Pm?X%pG{5v:Nt:$dB0G_De > ̖/4ܠX1Zh4@doq~z@\8- ^L΅e.Hbq@"5jDBa QQ`'MTXWmF(oƈGiIHdK<@i^+HJ]2A"uYGiUu~zGs/V]0U@c?&>\?:;$溜zxZA"-Mկ&ikj:5pQ?Qy.0;Nt:/AM/z+1V>?}HRw?s+D#Oc*BUg1)_bbIA(T7t  *nbh`9)󂘶}jHh=V+ªsQż)!m,;|23\UA&1琠iI6Q' CK}]R Q"N. 02K^P !dXa(mStu2nk: 5me|\tnuw}y,~{&*o^ 4;FȾ泊]t:NtSUq+S=I_?=o8'cy1ʒYJ!!m)Q6ՊhPGFM)ERqv1eF˜"i<a Rt v UZجF+,T$P9>?a'J j+TRS11P A\(Ab"cH l /#1$,*J?}|}mhPb!FLa,P_g" }LjTiZ݈9͐OU8e\+Cb&FUᄄrEB\ A֎RBB3㴩o+<-"T_{o-@Sݎ㭸;&hu*U.v;oFD.țj{wVn4st:N|V5u)Cjo9~>W+XsFSҺc` DB΅!{d=aR t$A *Lㄌ "W;,U//ӂ\œ NF882$1gն"2EP)"m2!cA\ _*;8{ҨXu+Qq"zN^u ё뾥43w k7;ׄUݺ{{f.6ocyr^:u=iߤ^?.st:N||LQ CS D- RHg?DB5#\*6i8&N!E*V=|4bYmQygDiUՍq}o*a@ދгmpv%opл&ޞqu }@o},XAt:Ntz9Nk% ߝ^O[fTJ]R+Kd 3Ł+SJ :P\R*Tc. ŨgRJN`V(3^+a"||@~CJk 1Ї8x}(!Ak3NJEVG. PKkX@000NaX0+V?K ʭs ZW!gM^}=bVn ٱtp 6r!^cVw\9qk7asAojρB{~qxli&צot:N|L HL6qo /2|uۿ sDꂴ}E >r]ܑB Dvau9Oj$ryH&5j9@kHlfTv.yQчyD GZҫ:f,W!ccD\,O M 3R ƀfx&`<1 8!A Qj10|>M^T{$k_˱&Zl;9پv͈cVvJ q7'\9_oߎ 5|׀ak֠t:N| QFU˿$?!?? K:Ud~e4q"HY0~$" I'~dDŽkFrYȥpZ 1'e"bn.a!%,)byWVnnANSΆ  ୖD- C@m+yf;l#rUƫ&I<2|}pTZ^Qet:N%(Q#ՍIya '[uz`DDx=@ũL:q c 9ֲB M/*M`]3>CPp1QC ²d$ S& {\bhrtJxٱ:*f ڪBrxVCFX(0$8Sqq]xSx"E3ÀGjm]V#Hj0U֜K1svgm\{<#s3{[erZn{yqid ]}X^GdbMVw{Zhɳf5um1Nt:Η@D/_}O_%0<F*U'X۝AǾ.'=UZNZ iLL1B)JDS@jS|)w|)06Z -z d("GrmIQZ:Q1&8Zp\)Āi@J]*: dZȥ(-QFJqk-ojsJ(\D_>nqmnͫfVVNj.|s8n`وE.לV]uX@=t:NcnB\P><|__k^;z8"Yy=SSX,xV]Z@!8Isg")F hP asv;a&c^N,Bg,W\Gx("#őj1`ё1QA :&\JQ{1"(ks}1x'^%ׂ-+F0!:XLԀD 4s+j@h2!xd>DV+^H9Q"0Q{ASjކ%~xG0˸9CP:TGvH55t. yFmZ }5 H"$PiY4!e]-%vBu_ q݈}H{^6Uԣ.*7vn}-8h/a؄dꯉg7, (a|vet:N%QY;1<hد?z$Fe|?1ϟf } u.XT#NGR+.9V'a71>EuT*1FT"x8PGm"ؒ45#Ks\[PCl ͍sA^c/3H'DZh"eչ\Cl2HMĤ "QkEJH,^SQVTkn?~Ӯǖx ?|syTgXowI8k7Ü]N.,ځt:Nt~J RqyOOJ6;JDprYǁ!ET 9m!|1EF~wbRJ pO䜛i}$=蠈  9g\PGi!"K|>[6-B.'XN9fB^]j`Ӂ G T!n Qb @uk"T1]UȚ\zًEOw=p: %N۴]*П5l=W~[r 0tq@owHkNt:N /||ǯ4/o~B\vИ(Vp uc Nef3s>q'Xc<;4Psm~SDxH _9v",T2DELCRR N߽ 4#DGc^H u# Zo𲠥6yNfS*ei5-r4|^ S[KP zjA1wBnI8`QeYP_{>b IDATpfo"\Erg ta6fM=}ue Lz.oAM]nZUiϑ3mV}uu73k1l3{>Met:N%p1ƴ#M|&!v#GڲTˑF. <<@ZVb , d%y %9iHd+Đx 0# `*)!ɡU ӋRFZ]SjIYJf8c!ba$A@2 T46cMbj݈s[xBt F!(Q H+Zb .B *&&MY]KEV:)\2t&oˎYm̫y݈Qis-tE.M=H[{\χgsmu 㪒ϯUmAT*lߤ\?Iw.;Nt:/".qb C淿R` L=bȵpÇDJiZZy68Y( !iqQR²̌ԡC1Vx먌p3$y@ClNEG *IeW\1CvzB4"P*@Bhf0D$ZC H<;|"\v.;Ҫ9VMt#L8#׊T؈{_u6XmU KE,_Gܛ|#8[7egm)Nt:NL=)so>)0=d_22煝VF4$bQs^*:9Ӹc&RpWaE]xYR31@%13a?cBF'࣮Ԍ3ew L@T\̑>$*2& 2F#Xǀ{91?yYEKE\J*՝m0H!0/58xO>A !Z a!=៎d@(8͠ 3"h1Kjz+ UfA#GtL8~,gp{sv?X 2rh wv2ܖ;^)8[w˶d+BU]w0cyJ^˵j{vq+Ϯr\)UߌJȶ3*iA-VNt:N{! !Q]xϔϕ1P9GS@' S㈆RO .P.onJMT WwXla\.'=K2 6,BhӁPhb?5* vrbPuĴ&DGxSO3|\9>SL5F=fN6So)Dȥ*MQTn*l}z&|#L;HLԳsX+PۄW8؍z^RU~+Ulu=K%ڧb;Nt:/$.C),HvqbY2H4GAqBjA3STvi0/efF̎MIB![%陪>gNknCSsEr%ԊMg('|TT,xXI*!4ԝtrRl<55" [0ǣ\HjOJC@j) uxPTcl=ێʫ˨HJ[qɦ:G1}wsiT\;2ԥ7;{=ڸ|"MyRtǻu:Nt:G(BȇGRH2seԕ*F bFbeP樴>N8-G pR||x` 1RKxME8P!ɥ A5Ԝ/pHL0pUT5 1m`yF yE&BCrENҼ 8hR!FWARi xxz@"^(4KWgP׾^jV>(Rhxu$|[tz;~pޟSk-6z{Z9g )wUdwsNt:N'tgZ8|:0`32{f|wzk, _!!2ƈUHCD+`id|\ y! [4bJajĬ&oUA[^˩POG%`!bÈYzQdqV)XTkBl|@?bxdRЇH4#4PO3!AX6|!*$jeaaՀ J)؜@46$zmJkp""%sԯbv~$bϽ]N鯼^'? F]$š]=.ַ.o1>t:Nt:_`ٻ8C1Pu%@đ`#;<9N(ǹn2M c8²^g|ءd*&L!1b5wkKp}T8,;2 m:eZB]{ڲ)H)wkO%bJm2"Tr*{ ʒ0z;~UבN`-Ջh뾦]Ğ.utոnG_w;rr:Ff9[{3Nt:N~DߜX&s=nϨRo[e&m:ҕ!$Ոpb@v;A=c[B@L gg,8qR44R 9FzDQa@U| Rj.P+mm5[(*@5$E?NX4|PEV/zJ` H7.$6'/b*6%Ry5gs^=^]Yf݌kUmm]oس[{~|Tn6p=:'g\v:Nt:_?Hz˯C΅1bV 2RJA0!(ef >PxLxH&fii).0Ɓ#Q<=3%Wajs10st%^0i6HY R2{%.;Nt:/B wGo#k0h5t`LÄyztDDPkeLngGzc^Jn4$PX'Ĵii@"^խS#0DZH)X)>Xš +&‚{LIi@Ia^`*%c90 RڵՊ މȍS$YwXk]Ŧxm;*B]-hZ#mV;'GSO(wOEނĞ=m.G=JOt:Ntֿc^۵P1&m8Eh7RI愺W.ƽ;* dD3t\^^ZoxKN0(kecĂ`낻`/ɕ$I/#P1Hp(Hz IR`b8@L %`9 F @،|[Kn:k[fzR yi6}$Tlw1t 9e>mί;F`xKDY?µd]1G:ARU 'z\>Sޫ{GHQt:Ns?SHB^S2^ xՙa2T 1Fzc—43tvyf4)ŀ,FCkHk& 73k'w;˞rz%gxq wY_ɰs?$Y_vuUtpٳʣқ(v=H~uI0s;j,NClr=T?~8?y?^WNt:Οv+ aLȫI1 $UJ29̨5$ <RTn љibaA.{uQR_WR򊹑LH8غA䮕Pm2;1"U vjjFo6=xtY æFxiz!R%u]HP0Z (UuGi9Q|xd߭7n߅A;!OI1weMRNfϊ<  ,'71pt<=O{LFAkn]ﮤUA\c[Nt:Nq}qinRHqTZ6&+-_1S\f,덷BmPuޯ ) {Q40 mF Pݛ:K*}qW'm\` :;VL0e1&ɆH1e「0D)5.KzSaQݼ C@ O"t?і$۞;Dۣ1Z*Ob<=3C5{+Odz=v7$2^zc\Mr\q-[kEEiM-oG~7u|Z j19t:Nt:>+)FRJ-X0p+Iֲp #*>}ze JL:KޘҌEeb FaXz[x2,+8D^WJP6A.KF^`VaX#9\IjAp xl< acD̅*m'JAQ_2^aAjD܀1WU+uBS{'W#M "DݘfRp[T10U$p&>#/i#>4H}&>Wp'܅!,pT+DĊT !HSiB= ֍C(%*Hs7kI;Nt:Ο0zf7Ur.Ȩdw*UL5g&P0s&4K[{_ߙҌ3bּa;0/|?㿈[-미l+ ^f%r*/e]sBu*FAM[ZV (.xMTKbW`ʲS@U;!&m#Ɪk2Q"TAbs{cg!?8 9&*7A¶=sxmkm]s.6;{&{g&kPU$g}UUld?|Fڅ٤Nt:ΟV ˶,2IbʺryCr͔ZI!gbhlS)F*NUjfGyd[6F ܂-YuXz+ҀF7җ FAL!u`m@ŷJeŐjͨ'c'lm_ V}eL 3P{7@A[E $WjވS@ݨk&H۞[0(T4rϻYs&~nPy2g+=韊Cd=sϦ>4:lwȓ]ޟωX*_ڣp2*ubXt:N3Q1 l",ZNTLU " "Q \G{ÃN yo4Em+E**QM*2CnD9ބO _ %DA>Yj{FHMKÐk&džih[΋5[(|IOi}ClکˆJɕ=ȵUEgo\{G#G*O}-vOl8fKpO{>2%xk=紝A]~Gq|~7t:Nt:7*NT:b?֕u)hu^W$FJ(WްZ4M$4XnK")pc#L59嗙3*7)vۍrl9L @CB3ȶdN{a*5 :D<*#!u#Smsi#VmR+ 8RU5wv O6*QǓ:*8a@c0;>v%XSdGnÁ*>}.{x!\ 6=K/A.Ui#Z쬊8ػ[= Nt:NWxyYJ!ȍ0*sƐ \2*hhVъ j Md^FRqmË\#_^H /EP/~0#zhioD\8T*AY d!QBcIJF+P xsnCPVB U!VBȵEY34&jq1> Lkz?=as|U>˞T)G?'˞vP׎C9ZDqyxNT;ƌ't:NtQch!P)\Hu |qa` BҁNp=@&8!1VE~/!1]3V$u#2PJfHHTYוxDCZ+J`H ML1B.U8]3\"1Cn%EQ:"(JE%B"QLF mXAR6i w#EO꾷x}s=yP~gtyT#TGq޿ԵY6Q꟮FQ[NMzw`>n9DG]Nt:Nɥ"uU_B"r-Ny4-SDkiC"W#psJ5Ƿ+ 1 ߙ¶fJ- 闙06/H1з^V !!6RRZUa $ gTYgW%.eD`qs;VF-m Z%SjZiu-i" IG;+)$THxW)ݚsqGhNs0u){\:z1IJ5_}ڹOpOs1?ĭEPğ>Nt:NGG7g.|l |exjeg Nə8\.3*y$^RIc$TXmϊ pCbڧ&4/*1\hvS 2Pb"֗nM/[=6򉻖N=`4bBM o൉+4A!ښߒI@[16Fic)1 m3QڮZZC=v E³~uz_=DEy,p|otwcȩ丈FLjq/(|:q"ټT{.BVbǩh mSµt:NqA5s\|a͙/+sj%8Dt0/\f1X?VlZXbsZ`[DŽ!`˔e~~_pzcz Jj917Gؐ!A6t-htL 0F:,W(H^!Zk>qZg]! "?y M.OJvoDJ-Pk,+SJTsbH1|8rjO.x@? VKrm8 :myA2ne<$ru*xSg#lO)Qs٬_wJïS }C՛+.1t:Nt([^҅#Ff###Z6̝yb%MZɥb5]0QBeb0̿84Qbn(2NTs|-|3΄ sD( HaPZo ք̂  DƉD(P[&f{hO j\З]6@KltV[G^0$D*)jrxh%!*>*;DчkWgpί纓Sh=hg?C`=,bςq ~߻tX?R͚yn= bwgQy/y$?=:Nt:_A#cDDn4T6ru~,iථ/4*M4N|8Nl Xn,V %J _\ɈJwBI^>zCRjE54ؗh6 a®^kio+\](5gdM7劤1Ŧ]dReŰm%xi͡uv:Nl+h $D=9!]>r>",]9$9ӧ.JJm_Kp;-yL1jn(5Bڧ]&oPޮmuk.eỠҶjB >Nt:N)mR)CmRR!UJP Io+?~3M2YL)Q&r-c[6t[용[a+C´0w] q~!&2:Mօ:%4W*! 5+&< +"`׌ꕠMUHv^^.l4Mw~t)j ! RYK& L)3 bFK+qߓd_Nt:Ο9l7ZDʇR뺐L[abU [=inu~0 5Fjr߾11EʚmC.#>mnA +v]iDK&lN A̰uC%QR93ЌA)a *$!e[oD Xk/tLly! ڮVVۿ Za2CHX5U1A%3Vbxr jIqUgM0~wcu?ާp?ג>F][yN".] 'asÑ}ؙ~"=c+V@@:NODw:Nt:Jp=0_8Pܘ8:ĺnT3n납1Ơe京D*ӿAn{.b֟w1mOlUE{wy #.VN~Ntg?*r Mp."S= -YVv sNt:Ο".bY/a&컔׽Œ^A׉ۺ1ro_^7nJ 㔐- e`fo`ecWJuV$9#?VQi>GncȨq:R|k등J 4W_EЗUW *XA ZuC &Q[ƌ(e#X`"U!D.xNj=Gqy=uEkB$N:Yq$UVELP xj?wETcӥy{J,4|UWLtit:NDM80b"kaЁ8WJuJxTl \o7o/,߮K"ܠ *n(ZJ-":eµ@5&B֭e춴8WGB3 @6-"c hۆJpV5.3yYD1u{ HP Ȟl+S1@q'٬e|%ES꫷ӶS(+ !/~| >jJ 9q~? ?g1rU{$2a=z3c}˞?%=9#x^wnt:N0Han3̱Ս8{?}AY/F;CTO}M[5i@S~ߏCB'z{t:Nt:%pDp *˕Z7TZ(Pւ# mY!"QCVZ ޞ&eJ8d7ʲ4Pڪadǂb׌-gRnIˌ  W6mPk\ Zv D-# Sώ}A1[fNLYl7Z + 1q+q^f$*浙y)C:b[ϻz~#myT|Nr9mEw;ix@9CxO`"ՒW?` ru?.6;Nt:feAQnL:0id+2̘ju6g[3Cdve^Bu1^)J)4L1x'#usA0I.Tw1^mz .ݹt:Nt ̝l a%F&\i:~P@]˅?sqKx$cLV&te' W^WU([ݘ_g|e 캠d _GK9xrT"4*1 `kE@MP[3b@ͨV-.J5CK7:V%W$@) $!ށ),ۊi(}~}϶.#7S DQBnDԶùwRb觔س~tWٓ_iWyPtS4FdN> ='Rj #\v:Nt: T&u%Sl6B":MM3sL):&m\Ayۘ º?``e&~R̘RC 21?6 Lx%ĈaCEgee_/Xv#LþéY3mPJ( I17pksub2oWҐZg.`5LΙd Nоi"s{ꑺz97c wʧgk]t A!=i,VٍD{GsRQU"~.2p?w.;Nt:? uATȶa*ܶŌh"LH {h; )-v^__eY0# IDAT@ @^W֪IUcqsͱj@q'`bkr%!fXm A!:qo2^&1 hM4ţBMF#[^8bQ=ԭm|!>y] D0 :W4Қ "QNy;rs94眶ڢmO6y~GREO<ǾM<|#zQx&{sqx9~ݝSq\|l)Nt:N珳Z&.g#";[2N\df )3SSŨb,o7 'D+FUyQ!T.DȕX*zXfn 䊯E8Nm֦[>dgHhX4qo=I)< !&C‡w*A[)!Br$IeT=@fUuυ/ yOuUenU>{\vV $3#<<#SJ[.n16X$ Cc (Zs QSfxPBݯ}cQvw[pvy/n ާ[MP.5>(q[y|biuP^T҆-v0 `03Sg^z)>cfg~UA1 0iBr9]x}}矦U&%>cOSib=9}>9b߾cy k%~_pڥp" ѧ1Z'$7BvD SAMJMǮဿYL t"n4J#HRsא4Cu9>!Pcׅ9JA?)D$A;HAhSL~ oVɫACOo.Q)z7InU$z(ޮ&vUag6;F/B,PKyR~g>`0 ?h Jŝ`+?.ok+񨔲`%T92CX)Nzi"1@5E+P78eJȓԵ|;Fz:b ^% 8VB+*K X'Lgv1) 54 [h LD˕f4 V*bZnefLu%s8*4EJ43y^VjkYk!J@=EB{i>}"w ő]{~qckN;/p-q[`}.L5l׮Ww% {=L$Et ynu`0 ֶ(^9LfLw /gR8Y#kK飮}Q|DFj+ׅv^g)IS0|M40G9Ԙ,NTxt(3.pZX.Է@&tVN!5ԜIǹ'NJ ͉&\e)%ĭ_C֋wy}y.+ָwI>D/doWSA9 1݊A>Jzcԫvv): V%kD{:Kn>̞+(&;C\`0 v^8ڑR Q&ZuN&7%*,y&<PbdyD9/RC=p ]D8LajSdz )QEx@SOIz"v)RZ0]K&%D;)B'Eqk}߰ԭ}NJo)Jh㶯)+kz7Sl6@P ˏ87+ͮʧb&,y|P쟴db\h_MjDl[>^"w}[oo`0 ?O) Հsi I9D.D^9otyzXOpj吞7R36+DŊ4i#-NhRWT3oL})R T/MFTF|V$)rwf"KwZ2Cd/uFBDu'RD8H>-ݹ)]յ$Pk4GD4BB!.hpDQ1Z^]tuI}|M[kOr^]-yʃB I?J|- 4kgs"zk zfa >'t]/8Џ)8] Lsh}XDYkCPkdFʼnQIO u%iꨆ^c6Q.,`M"R]?Kl}U~Y>P2yTh_8>U|NM玲f~M5kFwݖ ٵu\`0 8S.hrx\{⥋zF<&&pfMuʺRrĀiw,7j)DHhׂTǖ׈>|]GEÌQBl|,C__hglPmR![oq4Rs:G&F QIzUKk J6}c6ӫRvvX~>݅~׉-!|*ʺk׶}&fBnc<+}5li!GE?6ݭEF`0 `gм!!#1P|6xJbB_?h ˙4/Ռ? o(/3_3$a2D-6;|a_To,3\kFD/d]ȹ3f4 6\+b0};RCM¶bT[wR+u+9V4Z#ZSOՠhf=بVJ[ϽVҫ:VwywywWn\쪸㶽Cm:4?rە-H>"w}8n}bz9s?߼OM1C8~{,`0 `0'0bL4DzbTqu)Ul?gOxqZ^;wрs_!/h]:!I(!N )؝ѵJwQ-g<SMtrǙk !(*c&\ZIIԜBde91"]'~*.EZ%rs7Q|C9*(ڎZާދV^SfSz7YI[G `0 2AF%Ji+o QϜ˙VZ3K^aogJE`QAiЬA^z4ŋO u𢄯ufDY2-/=L֧WOb9&x=tDB[ iAF[ >l+nFޅ[k^.\Y[ASqӄ>%5Ok Qi@z'En;iW)N\?%'}Aw/J@D8]yr~>N&類v7o>6kWlujv0 `0wo rWhfd>qHj~_3g{9]ϖ&EU\GP Z6CV%Pw?ݝꕠB0:BF衯^meCx{mqcӾ1Ey/՛hn2jCv?Ep~~/;|c a\`0  K?|AW3ڜrBDi1NBZ $>ԕ|&6￶#׫+د˱z9 `09DQjsj[BBDtfy9w )D,zy-XD!yo=g]3 Y_/*'⤔R8L3ޠ]2ebԷ#n V 0[M")#3nҖ7vBPb@Rf̸nu!VЧU*&}4Hg1uKRZq`)~;eC@U}yw.$;X}W䳽Kon{Rw)H+;cm;?x_۽8v0 `0X7* TШAO^73dX녷ZOr!H@B߇|yyq y] Su; )p+9Dx OGVԥrc~@+t Ere񊴮5|mQ}Xzh^3T6 V {10{+s˲0O3N1kR k1af{m Z2mi}!rhspʵSQ7R[nF>`D(~ݼ26wV۱}YUp ,C{̶Vŷ]x4m?woEȼd{l0 `0xUD8po瘞Y[䉵oQZ%&̿|S|+ߨ([LJ&0ZJ,ebLփw̌Q'<5OD#bJSOv%)Y+<`:ox(0 V >CK|8R[f?}j+RJ ^gPyCPdWۆw>f.Fֆo";}VEplVQMTv^m_P>|#5}:.Cܧ_^3rڴ޺=5 >`0 D ǵ!:Q2-ΗAs=4~N?D3k$ T5O;˚9r i:b ~R@4E 't>̰IO3FL \!E"B'RnsB_f1ւhO h)Ѽ5'/ dYS/+2jW#UPT{ze=1FV9I!RqΰL_f̜vYP[#g4jhC{cZk>jEB@C@B jZKްVabL! AS"Rjs\'qH+;k 0kwT5?u'~':?py[%V7h׽Ny  #օޅ)k `0 ͈Y9a̜y[OGg}ᢕR7O0i@.ƲOH/GZ6 ӅeL|YXtt4 hP=b!+6 T\Tx΅p9Ց,q QΗhZ{Yo\JA"4Ch4v mbu֌vobЅJWxsG+CI!=XgMn"r<^]Ga:z?F]qrA ~V^8,"϶(3CKɮow`0 & Ua IDAT4ĄBR+* ;&$Օ)|PqJnLiVxL$ZYHS S" RD`9cX.u VQK);nS wWg\[ʤ{Tqj3"UIaꁣ*nKp.y%V1V97a,w4[zfzswUb NNYS{]6˃|(`]{v`>\-G?݂(l:O `0 ^dDn}a7'|&T!c7AdBOj&~=Gv:ѼYdP{^BOX?nm/u}9vwoL>|N`0 cJ֌Y" Dwh!2աYc-oSVocbx4e-VxL[.+)FZT83ylK@@t:V2#F#5JcZlۦ)!V iL+UAcD{mkϯ4EąTLTTx!Fez_o$rey+oLiV =ܧOD Ka {{TO+{S`OCl"{KuX)|~\`0 +_xpRi8׀zKɘ#+ϔZ_˿2k@$zekhu'539?!!bo^Z] ueHCfA|˵Qe-0uf*R)1PJfN^+!B+kp {8QD(%Sܙ xz8ىw~+oZf+sd>lﰪP`Byn␏; W;DwUq<>AñqϷ]vojnQ~f@O;]".fw{`0 K^X[!]L\|%j(*S[4"4 sTNkOͿSm?fS4뻍!AT1<-49Ubee?͡aDÚ' ˆ%C>B QT9p|>tk@^ WsYI6e s[x^L5Nm!h(RU8I-8P@Wϯh "nԛHڦkTs9!(rY|&}"hOs;+w m0{]NQ`um~'&oZKݬԃ`0 ObmkԨ4f1DJksYŅ_z浜@ ?&tby;¬7X. dR: j3/Oĩ[UӔHxjf"14.Z=D߂9&i:")F] *Z6ʺa_[ɞr‚D 1P1V-|eF.EъsLJ}^L ns?Vo*nNRZVMC|/@E r@DۯTpzT4]`0 .J!p~f@J ƿ{ +#+z񽮜lbIvvd/hN\h%#BrEH/Kw(E@9- 9>+lRcdc쉭S|< AHƈ1RK(RJFΕyAqyuyo_/11 u%!5&Vn\Z&." G{Abii~/䓴V}}uV~x|>Zp]*cFnoW \qL;b~lF`0 `g%rx%xbr"+ouaubf֋z^K|V^}99R8hXiri:[  Q`Qx;S֕(B2EE3rx3r-_g4FZ)x%ňP5EeYx~*\8)E{%Dޓik&LK>SX^k>Qq/L8-'&AFVRP F΅Y:Mބ.Xc療*7\?N5V"@nnaO9 &>vV7/[qsJԵ`YdkHFߗo|[^9yZ#I2{ƌnj.|{IXR&˛:?;^Bm6vfU'&y6[U{S]CnEC}>T]p hu YU`('z=ZG%`0 ?A\FB5pbLDVs̚@7U 'ܝ3R8 H!*yέk o0Jԣhwi&C3QcJe:XRB4cy9ivMԌTuhjB_ݫ@{8Ω[uA ZFqYN.&K,5C֮wt,*Ńެ;,|v0ub%ǩ_{kRÁnBP?ɮ|֫ɾ*w8Ux}P&Ag¤Hy8!py]91}9FʥO)^rDbbO /|" ڈ)'%fZkX<%\ Z+6w[=K]YoOssn+.hCqδ#Js0k *b{@l`d?߇t'MWlʣ0Qwnm QGmb6y/>>Tiwbs[>d7K\ s'\%HM^e\`0 ()"T ,Ay R2}AC$Fa3V˘l7 30d:f4w9S"αO ;3cJ;:+ O+4p<"QlyCc?kH3@v掉S1!f !+JͅTZ%۹-m-Yoc}[Yx3K8R!LR 1^&jU嘦sz'۶_O)=&b.\Qߺ)oc=w}M>`?>.NJO8 } k&N:+Mﵘ`0 7-r E܈Aq_iX4qi G}XJIAȾ82M j$MTJC2?YFÉSՆՆS38~}BX.]TGkFE(颀Q 8ig$ .L ǧ#b`$ YmY/qi[~xNj+XkAL8{#843^} -^۽cñM+-睔C1>Eϣ*q)*S{3N`0 ?QF 欭rD$*yl)ӁR3)&K+72kTwR ThšZr9Zp8T{`F<(ѕZtS{FtV >u U.4O4k8P݈), B ! qRN̩ӯ| WÌ>4pD\J0nz&yֶiCF]Csq;ɧ;C~,cgBy}MªaF?+tT>ퟺ8߲`0 v0{9NT@]hҬn}bU᠑V͌f.?AŨ\PHTRJZi cqJ#D] >lN˅4E$ ػ/ CܱfPkbx/GD3kY$04*1(*[=/okY֬ ԭmХ)P2HByPp$ J]mʝ=oUusvi= V­[nwn@1vMNoV.ίa`!i0 `09S\u¤;gLwڳaD)Nj,'VV *NJ@8tF{O3˂eݚH,OU]ݳ2ʈlLM%3Iqqw3S`>A GO[YEHyAUi L Y1&^lp!IDMb f-}5ɱaW>[y3RJCh',|u9R&:#AeUئis$Q* bqُJ5y%RDUo?z~KaGOUo:*Bm|PV8J nsgTڸh J mug ]oKga3Dcf$kKuEj:)VRAr^&tPT p8YydfFFBmά(t&mzu9S9heb`8ׅrdbSCs{LA` ېkB2cx;<~cvAt#qw?B{qoɬ7~tGm-U^:"Waz@bUH_ξst:N*r1$#V)O̶+㠜JfCNqDQED@[0nQͨOO; ܂z21^ǽkSN,u—d X%^I^!Us[Gv8PuthZĤJDe"[C^7k 赮#zߋXn#Nk[Qy/6 ص L[n5UT޺>ogVNt:NLjˁS]cq D*bNBl nV aL) J 1qq>O;PJՌ*F9#e)xP J&00Fg˜ 6aIR+i3 )Ʉ !*eY8d+rzK>vzu6!R8-sK:hRJ19Lfe+\' R£Ź|/<(?r,? T܏H`^s ^D`&ݾ7yq9,?^6oB>}t:Nt:{,^5.,uf`SKBƩWr]M,0ʖH1|&%+AHT-bϔZ؍|)̇JP <rvfYfXjKv]øߵVrMm($^2g wc9Ly&y|:r</74(g[YJAW-b%gL* rfvc܎xmF)14\O'2l7H,g#}WpVrȻcÂGP.̷3W/9*p}|W֦|$z>">:b;Nt:B0圧5pfL\0Q^W &y9|$%*_)9>1 0s8.nbe^VcRZ*1FiS&HH΅ϔ`,eŘ&25Y+K%υH[2p::ge߿¿~Wz`!Dg-S*<DS, U*q:D 1 wBԂVӄX+_ٻ|KvQurSp߽/>oE_[0ͼ*NoAF*؏t:Nt~rfЁR B)fD0T()XQ_y `0aJX8*Ӊa!0,#2~MLÈHir<!EyZǯGd#0TN_lRi:Q_8Qy)mjU"J`# (VVZՖV7PBLM *۞g֞QqA2"W4g}rc]ICQDy|=&`?r/羯C|hu W;* ~$Ebd/r6[-*Nt:NPQ":3h K )fZؤL.᠁f^ 3c3K0Q~gD\ y“ Nս)w$02- *E:<}{L`" )a0J]Xز 3^C9?^ʯcMdL 4Mb]RZ]b(9,NLJq)^dcBGc| m#} 7;7q_&/}6|W[ilCv﹯8 *FxcMU$Nt:Ώ!RnT07RHsYǡSTvaQbdmU$4RJ%j`+bmtFvP!kƬ\.UaɅ6j iHC$l\+RhjW#hd×2rl S9_ߨȥ Dk+j %A sfD!RHQYB@ltp163&.Gb?Y=ay;I/wՒ* `# ](7"{cǏB|>:JK}:^OewzNt:Nh}0mw !6Skτ4IqTbbCd.) ήL 7\"RjNGa Ā#/|^jZ IDAT4&9ca0#OO׿}%myY0/+(S: SYW-/Lu&{%|90v'K%b TdžV'2[F|sod ._n[)et:N#%rgБbXŪH7+2+ZL gjtdY؍k/_9ԅHÈkfVKΨ4c`$N'̤HxnT#2/xqJ.LӉ`=g cZCJ?+ۘ^dDΜ$4%=Vgve#cKe6O;f%bP<??s$!IagbPN 3\I8lonƗa>qHUCS7[8יtfLᖢKۣT 9uN"D\88(p.WoA8̧'<QD'?."p~|LL5sgL Q8,g”[OHg9Ϥ172N \FyFEH!n(݆ t´` Ȟyg"ň!!AQVR.sF X3BPT3a12MYax4J(ȻNEXM з"v{r]U{}U ˵\۷TZw@> "mլM0pؗ}pTh%t:ND0!RT03A@B̂P&f6K .m6I;'Mxv%#Rq3cPeax$y32#ŝӷ&T2/_/.6)rp"| Vǃ2tA\R(3 bM?ET9e)!TYmRٌ!q 'Bj'}ފٵ&7*;& woa>₋?L< P`=<$^iDn^{ڵ幊כ(CyndC9Epkkh grw~LNt:Ώ`y>-CH1uPQm|B _ P Z@8nQ d?g9}""L #.` 炉qV287RԔ V3 %Sk!ƈ!ϻ]4cD0h([r&b*82eLʔgIc 8L'\!S6Yj%hBØj!) 5p3\ R3l#Sbs`ؼy0Mˉ, 58zVz@oBk{TAXv,+Kypw@;1`+?U G3(Ub4m,mnooco|%4l\{NHޝքV؏^^$^Fc/c_ޏޤzuM]6jw"2|Hlt:NaH*AǬh=۠L^wڿ] Ll '٠x1D{5ya; s^,(rO/酥& K^a`_lr0ՂK3+e9ↆXkY-t3n8$aXi0Z$VCEV@R )F&B8O͔ mu@M Ȱ=R<,KAŠb0ݔaۿU(ssݝC9Յ)όVRjd+u&FEb$*Q"Nhx5ς*Ӊq3clɰC4x(KΈ%y>cV(`*,b> a<4Ɖ1`N݄mg` ٚ.y xh|+$nlUqYb qH*o0+`Z/ݨ_y; t:Nt:?D\F>0"-'u9w(vjFwHMc¼g*ΌiJ 3Oy9b[dPUXj/g^[)im/< *a:Fa)ML(A.ieB5f (R͐c)Ϡtfz^J&F1it`31 TP'btV5G ;TާM*>J]Qn=qV&t~p|_"ܧ]/[AVka{ Mޤ5?ک|'P?؟.pd8JKk|R(?Nt:NK P-(.'RZƁ"ՍTa;,6}<HCdE2H79ï|GDsYPU8-$Xg,b lZ-JxW+C{WSXC(l,V[ejәLɦhSB8U,T}bgv É0!R-S Y+E.IWq@Ν<|x݄mlvX?yАՙ\tj>"TGuŬ]+Nn`*s=KlnM]BBn)SNt:"{Si&DL*N1!%%[>O[ffB 'l381/3a _z|v>r!%NuW[)OeOeuP!VUV lF Χ5H  Velmpd7*c"V4DSdl'>ʺeAY%LR۹U<]i.:w;?{Qv}= (C{뇔]m'jO*J]}ɥ%sEdM46RQ-{gVnŶu8W{et:NCPrf/#*ih(ŽP=PHB#5ZI(〨a^iMj$q>(n53Y&!)TTfNi%Ār:Rj!Er~$ſ2L6+Bn32/% MCQә0 M/eZa̜'݆&Sf.Gt֊Uci!a5IHmeK1(?n" YP5V.:n(G֛\XErO{#-bN^N3{9뻉i!4's;Nt:`bXH!034c CQzd7mw,'RP c340dAJ6:(b8 J-ZڜLRS$BDYrS5Ԝ.OlJ?y\ѱPpMd3)Eܽu\ƈ{V#*Z5ԝB#z'@5 yw^ġ}(Sv8?\m3냐|˥gҽ1+{={H{V.Qd6$Ynt:NAxP 185bVTVSiu #Z3g Nt:½"g-,5s\N :`ڄ`L\!r^XjfG0yVL9}e:2B4OmΡZ%qL,Yj`hR TA༜Ps8NuC :Èڄf00[!KTT%WC&,UZ+u:Z83̰|\H8,4a m[K*(JɄ.b$;z*Y@BMƣZ=uV-^\FdoζWAV~q+/FgB@oDp-[YUp[nމѮ-;Nt:"L+GrL,G6alٳJj(|yؑ}aLvaiܰbyΜK|Ģ()Tb Z6"ᵍ)DNy&V/Ƹ@A"qP"dyndPeZf4h 0Bʘ s.D Ty~NFDO0hݖUCL(VOr:#DHj.#k?7G/9ƻǴ㩄W̃Cy//B Uk;G:rwAN`ZEDwNt:!J04(I-N؆u~e7@4RR[L"?-E&2$x_OTwE9@5cG5cTg<Q 21ւ06L%Sjzeٲ䌹s^P {rT7Nә%5ܴB˙isY.6`I>}09s*sYMsbcKU"TDRqԜ9.ɱ W*W}Fru/SL.a=܎v6{}T]]5.0z"v5>TZ- \?Ga-{t:Nt:{d[=N#Z J^6Lufl !8xu'f <#8an.Eȯ/+/mAfZ81-,(N  ʹZdaPĉ/R)n {uPDLGr- 1"CIeݶHRZ l@ 8x, ;0nOOFi\aN=R^6&W,Q~w'Ձ>>vx[ CɣGxG6F{\ZLOZC Nt:N%\f81 x(xd3&M-TR| Ϝ?[e t4pȱ,T AI[L3A۰2e-FCB^c)5#\0bfd澦XĜԥRͯ+cq"+,ezK7Y&?1&>}^Xl&#֮Ლ"Dljuq4&o1.=~*ȴ)NI@tVڟ /bE5ʛ̛X><屖V]]9;yU#w")F'{Zlt:NcPxCAi.$[&ad"Z!(9!fd9O-_' DaBh;1]i"ӋlAsb~uqgJD ,9a͉1Dt& k-c^#(eJ. Si!GgpF*V5R}F5SNeriYdNcQ| RVꃛwUT~+PE:I5 I6NʝwrcM[w&Vk[y8*{qǦpIEet:NJ`JV?b8#De##zd'tD@[DЦe/ 10 ?}{ &J(Bv&B' MY*5v22 JY &*/uCv81 Z*#9Tl\bƐR{5㥢A5e ,>c_Sa9L&D8lB5Ul )Mkɵ"r{ !`}tsq.D]-"$- IDAT.3҂^j> ɿWerq^s? {÷P}>EP'4U UܹbrIMEw:Nt:,xuuId/Mdjh3L`M`PRJKiYį׿߾;2(),Z8*缰o)ZH10JfAnJL%,u\،#1Ffd9/锔"^qk cukԩ8n& Rgx>v+ga.,@{0Qkތ!vpjjNrM<3ޏ{ .#X}zw'ZWe Jma9*=pu#iQ:v~G<^fضw"0p jUTk~۵վx*PNt:NG D١SAhY'Cd)J! aka@"9g6-)9i/3'PTmPf88l9*FL n c7%Tr-lӀRdۛҦ( v mf|>SBi0QH&F;:t:NtqZ=SiN^'I@q33JDAYN5dl*/v9&%^OL"N)1BY Gdж)@*$2bt¬RBm1#~])aPlzg /8\ Vn I?qgHBg)&Zڊь.Ɩ\H("a^xݎj"+U=*5"9L\nww6{y?:z~މl]˝޸>v:Nt:r\"Mlb&kihuBZZeTHr|o#Ǻp3cͦњT&QqRHo㪸nXJ\*Aj4(tnSUT6RƄcEB`G۴tNOnTϤ+8~fS'>Tq\:\DšjUZЦYKk:1*²4w wBn ʝ}+,>^]Nqfw=>I{t/B~w;S.Vr˜{}"o)n1AroKڵt:Nt:C"5(nB=p(gJobD4(aݰiDc嵞bY~ļ90O'<e4)lRr,._8O8`n-6FۈvAT L3PD A Q`Ȗq/t+]`?Ml'ҸVL(1"Z "ug1QQU5w:k޻,G$YYDTwGUuojhYL5uff*"̳`Q{Y鵓C`U5_{Ǡ+8\?}*<sn?.U(|=s_+ 'cJzEt"@zj>E:B@d2L&gS4]]w$eI M*/9whrp(*Cy+)*o;g,ER$3C _2ed!*Qr61^^^H dQϧR@m}ɔsX9L%S{L#:]*/_/_o,3f5qܑ5(I`1keHMuC5.#B ]K>mtsa6 rxI}d{kJl:]L7#r]^D׻׳Hbu2L&d2$ıwBs$9)F.y3YNМib|7,?DY%cVѢCsmCGq-ppZ;ӽB-t3]%aYSmCk,na bpXU38 e}0^V3"4Otkj㪣cT3։qӚQJih{Q"c=ebqgcC`E4>>V_@NrGQ8~t/7 QTss!@d2L&d2)tw~F.FHU4u-敳n i#o\XSTp$חr%^͔0u]Pc$WqK1ܝeYUC[}̺mI#;+;)gjoGKoOz|-WO/'LΘ6E=:.B5VQ|;NBΙ;捜*9GdJJ[8G9'ػ) n2HG{!Y'涚dεbH:!F_}\kٯoԐ}̼=QE,~ ޽-'d2L&;]FMҼR5ըH«dM;[?D{}FK&o,i@΢|?䄹a",YYJ%c ocѱ@cYD;j!45C"vS5Z디)ŔK8IphP"dh5~-|MHkԐnd(G`J^ f6dT.)cZiTxc. J)7a?w&^П1+G'{٩C9װ[3y'n/yd2L&'hh|⊩FK^xg6\R4?%e^»#ԧ# &d8òD`\BFOa#uAS ^u#a '\Md̜s֩^A;! et(E9;  -1GCX^kRy-tYe|LT>w(BV%Jtkh21**seT:"PJNYryΗ+ko]y}1jz^GNB0܅R (\nzbe]LU~XhObd%T}}{gAxvNVA8v{` i(wDBm$]qάd2L&䧡Х]iLNL{## hf$Q̍vBd@!:,Oۉa Qp\AB@"YXq\{q8 E8JC^p@75Gizb⭃y+mv"Z'\"؋2ބK?>ȷ6pʑqT4w2L&d2d-z}нC{PII,+= EuYA@chrU\`ə$̢QzǼuY E_dN7LSrۚ;XN{QR Ee0sPUD9+gkpίD6ED.ԑ0HD:eu:p-34k{cGn7q(Sz=%U~rߏ|tn&nh1E^Wԗ<#Gy/v)ײ_3QzyLHjIod2L&'afT3DF67)(;Fw7L`8[VXS{'BK)t%w魑m2Hjkmcۢr$IJdέENZ m{ѣ 7jPC;ҭSJZ*?^Iˆj}{C$sC 6Uڢ>-VSڑ8]{S !~*?.gMPAwbNcy:HQsA=֮h 0}L&d2L&2+ޣcwH|%Y_ˑp:*?\%gNw555,Gj"I"Iu\/Z1"0W\@׼q:؃<wDڭ+ޡW߅o#:1gIuHYXJTr(&jKjJ1YJ!B6'g?%E֞w܊τح86O A.9>#ۮǽ{->JBdv&,V@紻IP{MnsX"nd2L&dXR1rYI"4%*!+?(nу@>`}$"oĺR8,lԝT : c )%kEYs7C˲kSXV76:Kɜ8͉qwz/-gqs4LT8r֊Ї(6Qӽcٍ\27RʗA)9yY\ʟ|?v2Iwѹޯg>e!0FGU9'F/~x׳=>g_avNxfU$d2L&A %8(9e\*Wl(nR8º,itJ6I;UWҨ[ܬE9w[cID UrN9gJJJYP")1Qʙ/t^)l6)@>x;!\Nq1uhhts^RY"ƺPvMLdڣ+"<FnqQOOBzew&שKù.}DLL0?^~KyI/՗<IJ M>d2L&OҖ9snrJyl;՜a!!DY<$ q>&;;/k أZCEnE 9)$%XK=?UDR2)gJXUBkm'0twDUW # -c O=jFRBqN)Yʱ?صzo$1pgBQ_w"NCh nF^ȏb5.ǺBގ~|E`CMɍ؍#S?>qT%Ɓw(޻q]Qj"~g.䣘]MtwzS;OOq%c nmm2A]>VpJ?w.~'d2L&2gkT ƛu+$ rƺJN0sۉJ,H$G5HN  FIa|ƪΗ{㱻&h麪yktI:8IEIwE;H9!j8Yޢ$tkQ%if n`cGOI]A)|H[?|R~vTގg>8z".adeջ ZL&d2L& FI'tkFMJ%iɇ%uE"Y"$+.䢘5~&'ʺT`Kv⽞Fmm6vpNEpDc81 Ǟ'kY0ލW֗NZ:PtaIZŸ1ٽ6s0jaL ]nԞQ5ɳ 5cŘ@ׇca?.>`!ShA_n׺ 똮~t)'d2L&6j,I.7ot5otwr7ʪK,iM3A%#B3VrR=*UbTrk9Dk)#jk0&e 뺰mgT#Hbp*eh ;oGᥑ3zEeE5uæp)UcsWDq4EeZ8pWhfw[z ]z;6(6o=>~OO}xH`ȥ$ \LCO7xM״̄Dd2L&gIi> #qpWM//G9©7LM\刉!)1 %J*DXs5r\;dso_^YBBȥmNJ;}'.?)v]&qn_k߬?sg/+Ϝ>d2L&d|yӽSD(Z,Hj,%qY14uA`jM5tؼ[@Y%)iMXM֍2IDGĚR]y;Q^)K& 3!˗Η*Zΐ;9ŎCW8ᚚۥr- *죜O`NJw)ĺe\2E؏>"Oڣ{&>܈Q<癓z}C>|t8￞{&?Qd2L&_itR294ad8^țS3)  I,ZiGIJƺKtidҬPȚHv$ =`ԖNԭBݶؗDX_(BK`qnTbo۶cuζm $]F[{ uS1X!F9_j[fC[u,v13n#gw(}ou#QcO/e,2V_oOwDr'd2L&ɿěcW:^YD֍ "Н?;3),)s1b0+Zբ!e# U4iZs!jsfYN%Hs%:6*y)Sx'أLi4 )1:ʎb5ZJ:xaGknC3a Grw0wtU⟊#bNCy{|^{kcE.E/޽).'d2L&B7D) 4R^b!)?<}w|XxLL&d2L~3,C\ed///|'$.нKإl"*4#'^KEI*V/Z T*6뺒$>U;wuak\ vb2 Zo2r4{GJ>:7_.ߛEaE5&/dL:hb86v+R/~&>} Rn?u?;߽P&{ACBߝi;"z=S!xD\/|d4L&d2LR! 2Ba9174^Juc]`V,eЭ:A((뙔 p'k{YwZE4H)qYw0a5c2]j<~]ñ -Qǯۻv~,xuBc-8`܉M$x7}| ]Oz;5nO L&d2L&?S?yvFJc",*,Ģ!>Rn5Z?sx-S=0ő֞puwkE8Q}ΡRɸaGHNFJ2DކH'ep_3M6473f*뾏WMkUBqw:sL䱻=p7v1wt8#Nht>k*:{(>z+wC~= wpCxͿ&d2L&S8uYJRx\8FNe͜9^i;ǞfN,K: -!7'PRr`M6ġعNI͝.,KhúP!Ft]^37 K%Aԩck,=:;#L3"ܧ[ZꉎVew4Y8(RX9D:(rUbVؙz(Q[A0 YGSJĵ˥Ve_LtN&d2L&wM ]y}y9.eHQJQZk5ٌKK7U>vbѡZqֲp6rcTHI8 a=aYRΤYDQD֎f\,ѐ\ꉔ"iKIqWTKIoZ72|/ktSa#:zk%Jv2L&d2 H8e]XBZbdx\HY֨ݨV`Ʌ9cx=,lZ/ˁ#USDѤ BDB~,C$JI,$tqpqIUj;.PΘ786ʋaF.p=KpJUaYlcR̄rT zr Qu&cPGmjdԺQJsyQ{OEnlzTdU0nQs@Nsc}9Ьrx-~1YnchÕTW=Ft!={ zӣ{:ռZWW(ݑOS"6"wRgHhOwqy+0o5(Q:Gf_u2L&d2,Qq*HQ˂HB R*GHJ4X=[GU)Y)9NdJ"ƯKY07ۓ*nFo? IPd.zT}7|B; YN"((&07лF)Zج{1޲IYqUR;}譝{RO`kΣ?6FF?K$)S*K1z}UnD#sDw2Sc'd2L&f z|$SUʒw,:c;RCqk#/ szmu(J!<:3uܶpkl$v6.Z.n{CtCT;1ju$:V,|"B,CU`|6w73{L*;:2y`(^oRfz{W_8V<*ƜL&d2L~BV)9Lm MBI ,v(Ͻ"#"t:tbu)K4vR.y1JF^ utHzwexJ s3)%esF=Wν뷯%H`^J\B$;bk !nyRp@u]˜,z;%mܠm$zEwQOǞa=p0Nƭ $S:'O_=bN&d2L&?f^rHPRFh8hsCx{b͙&Nx{'i"- &~:t`NiBR$)⎵"(BkE qf,u/_N,Ģ1n!SJZ7D BJ:ceY8ϴEΞ!SօfD더"6HcB7k~1[x4|9|YWy/4g}ژ;\q׽~D?K}5q܅g/V|)K)wTQܹL&d2L~1 fRR֜ RbgN^q3Mz,ڢr+[Ikf;!'(cRBiI/NFÁJm-BYemw*9+}8[)Wm)Qr :ns,v1])}蔔I), )8ant3,??s#yq5ސ=Wtq:zg@uf Qv7nyܔM&d2L&[ q1QFQU4X)Y͋yS3K$vqԄ%Ǹ"17Ic_QDќ%5HM CjvBUHK=z&]"ez:p$cMtTUuYDQ !imo}M#*璱},{!DϹrO_]%ߋ}rl\m_sDL:W-y{Z>4L&d2LSrAS⸬hR2G]N΅CƽGX3#"{&h}K^)ץ 6{FkLJV+"B'w^^eõt|3a0ZPӘ;: F[ݣ"\phRDm 'qݽ7%_FrCDe}??'r/óQՑXUسG(7]/?~?}w?&V_C}Or2L&d2hl=='0b1͉q WeIHJ^XDёc֭7Ҩ]feTy\*汻Ͻ"px=b') C!%g)Yt ˔fNj+tX; `#GG7`"Xo<,KaY Hw&\~Vswy=J?w񏻏kx1O#OV\S\N&d2L&?òPS&"ѹh֨u#8AJD%Ѷ3];%%뺢kD0Z+K){R Ρjp ɥOR,v&SRvNo69"@7X4;]X1yifH)>F`~ 7QWgn=k>ȼ'TV>域KM}y }tk}Z>'O$]V"wN&d2L&? 伾hҺr:J54 ]%6u(b3%彞))j9%j x"-HEc} rʽMLl=+޻wqSC?eVFP_>K>IO d2L&$/ Ojb*xkAR\Q>*+ڌrDCJA?InKuZˁZ+IR:e]Xr[p=&kx}=bQ}#^i#uW;}P;":Uf6UBQUU%cևx͘GbQpL[>g"[wIp}~=un({Aw+?yz}$grɘ|ZC"Ԗd2L&Ohq]ض3NIUR_W4(fm1*(N9DoETurIlFڪzt@-DD'v.!/3NٴnAmɸֽRFEJۃ}3P͡L$jHTGWzBh !$0VH>ylV>>?Gq!&@V<^l~tQߗgfd2L&d3eHW!W־iL^ɡJÝDR%۩i=\q[n,k"KTwDkhZKLaeF)eL.%rHY%SKCu`Л8ByFmh 1ZN-ԏ*Xǩ BYA/ݗ{Mh!r#iZ;C)Kq({&N}۪Gsk &E"Nw<߉<ܣGRfE_ՏnvO?L&d2wqJNZ10ׯ/vFs8{BgYKcP[(\vL GHw8jd9Oen䬘;&ιS#/;p4 R#6vFwPkA*XgIsEѫ}(mXpPϓZ?Kƽğ>VܼKpMB@d2L&ǒI)~}')D )[cə pĬSPr)@c)z|R ˲zG鄊p<gsɘ;˺r>) a5N~I WQE)F Az֔#XIeICP:ŐpwmUiwB)%go5g,IZFfJb-Gg7?b|z;8>{yޯrƧ&+;"1(w{/׳ QO&d2L&"9F;Q\"h&[RXCţjdAL1=y6N9T9ػ8l6XJFZ26R͝Q cF덡k/u2ZGUh=*Dbܵ034Ec'4HJ&G$:0S iA%_R7Gs{pa5Z|A֭ػuʏٓYP?%>h;]8ώ-#?{oG#idgqgKp{Dd&.[?4gosiiiiiiiiii/H*C h$:E#crs/scf}rT[)5FVR"ݣC]UNvw|Y)׮.{ccg( U-\ZZZZZZZZZ.*XqֱH vui[)1>mn03nuKJM;{k{7F9Jm?S:Z+>??s7Ȧm ;w03z V ǖm6UڐL\F0ej˼-EpZHܳm5A@`{<6z|AW cjv@g{Fr~L}vohu)~DΏ;gsrqw<_3l00YwP6gd>\ABVr:tG 7 =jDTUQJaG59m"DVBۖ1^}˔Ss"9w֢:,bԺAQk0d8'0Q?FO$9n"Ю H0-EDa <{ВF p-7C-|NnG3eQ{▁ifRqsB5_Nδʾyz!8 ~npCJ7 ̄ߍ4\Ϲv/CR0$.d="A-Fh)T0f@ז#fĒ?L *)8S qaZfj gȏf7&`A."u8 gWɲ_&n$%y/uEŘmfLR1yO^/---------}" 1Z2t[8$ &n ,R+@#ǟOZktGx@Yk-96*vl7B- ?tP05H:s0`);;9LO g8RSU0 XLur' {k{Y0 ;gOl +`wwsɻqWW.@;%"ߌ`19 wԜ!k?(W8>kp[Vwab >~|LPd"qԅpC=>F5+I5;ao{R""xľc'ݒ ?4l8Zf keEcfddBS3@OACcJsT/7#kYaB4;8r躃8:~樿;Ԟ!i9vC/{S7o^-m>ϟaO_;/tSX|~΀g3z+r9/.JU7>UsmCX`p@U%{#1hL\Vl-~@279Qw;n tX9gK)e1FeH82v@^qTة#_=dB)U=‡TH=CTu~i1(aާ*){WlW.OG}Kϰn銾Zm2,2M)^n3)6l@ϧ[ZZZZZZZZZZ)ZPUjx*m+4FeMP}B?uMFkmf+sO TuS>-Oq3ߨj~ 8}Z(,VVD$0%N!0a8m2ȝL %(BͿv0@_(2'Z1}~ gs_|a='ю}=WEKKKKKKKKKK%q6k$LQ CCOn >of 47Ҳ$zI鐭@GH݁&pB3X셍F*{㍝IL)J0 F754+<{X : XELB]νʹC?_~u?;9% }gqVOky`?՘)`_$ůsxiiiiiiiiiiI2FJ=]W(w Oߔ$ds2q5DOg؍B;Z'@6f+!s_Ѯ[p(E4%C2Ggi+|L tS@UPJAXZ9U1E4q[.?~X f/&3F1S6&VX5;Uǹ#v*{ nq&d>fH sZظ&;שݣ[] l>ǿJJ0;,{|c4oX(; #cvB3sǚ!IKKKKKKKKKKKO߉g ?qoo-*;iTSܶ~mfv@Z(.5Y~AJR{nf?n0Jc2YO1[rHA)=t;KUu&? R4n+"$OnGIzb6+T; wDQdQAc{ڇ_a%Fhi"d|6c ?Q# %a˟}e<;F̛ tl. lm}DJc`6;@x+QsBa~}käUkN?jT5?'^uXOU_+b>}idҷv4Di=Bj.#,:n03lRՎB&"}9!\Q+tQ>D0"f`GmL!` 0>K" $0G/f"*r3 B rܿYςfϣ}T&Gq 5m2w8{LtN ޳+<ί kZgh|D*oU;ס{eMϥz? ^.---------}}:RbTwZ|IAA1J0hQQw"SO],HqPQ\ 3\W#̜%4 tr4`N ;`&FTp ìGgrM ,GE-Ubϓ FpR8M Ljlv1^~i/+Xr_FB|c~s@;EWg k9e\w׾T3J gPЮǔ" 1ں 0 H ʄ->{tN:7IPAlRrst(ћJ@ ÍP59595 aER] B@>x#v%H8Glad0NNlMaҍ vJnIP#ift^w=2N;@g!f>%̞]C}ͣXZ)AV_uiiiiiiiiiiZFȎ[(xjHIs*摞Jpkc׎'~hm.M| &q?68P}K5)Z30X\|ͨo ה`ZN΂``TzHXy2y0 [ P~`1"jTz~яO#/A?Oɯĝ9Crl e>K"I=t]KKKKKKKKKK1c#umt ) $?~8 ]>[gk`Xs϶"U;LGpB*}1'9Zp'YklHܿ<  2rf9"LfQdng'Jsqy\onl-% -v:Uw0HږK)r4W=@}tl7*.&Ĉ1ba-%M:` s'W Ypl'@~nwwlu}`$ZRO R*H0u #f m^}8ɦ0u*T:T0L(]T= Dky̸;z77zJ*/{WHQ-2]̀^6jH;;;W5}㸉'0 >c`]7(quJ=O◑X+)viiiiiiiii$PWΈƄ}Qk+OC IDATG=DŽ v@D$BQ )j8)X)he=WU/(9Z8FMP:Z? d¬ej,{H*u #,HCs5xBZ 'Pl<6syul;C۹ t#ϣoSe}p|ý7|N\)w$W\DGP=oK__ZZZZZZZZZ>12K+c}3l;ZWhU$QqA` Xfpnu& C C6j8p-N9?Tjvm6O B R@ *U)?1z0DD9*SU,];+Zoݖ1#x3)ssTJP~ 9H&Z\IǨl_ԓ _a\GZ䴯{1 9~LGf>[| `Gk-J8j?or4!#1S$/Qp*-&ɡvě 0#.n6]Kz,GJmR{RP9DJM 'J쓒g1zjgl3jhG>,ә>Gs-!zwpJyu`;ϯzw A0FHSȵdkp+Nɲ*mBS >;ݝKKKKKKKKKKKT(*jNv(YWRkɝƨ0qUB`fo[H]HF9U^`1zY0#NP )vu+`.#>R6H!0 J[kJN`hL58&嚢Ę<ED@%Sx+ 7'  8̰3hfGxNzք}'iN;浩ѾWvn `ƕ}=dqqAl`iiiiiiiiid,Sjyz~:qL*7*n9Ք{61td #oFk0bǒyTwt}tayo5KJA@DWWr7[ekqWRDH"(F2 P>v5۶\e_B+D'wsJwsD<kxcxP:Yz]k:kkCV:GϚKܣhҜݝ8WʺCW\Fy/<PuMpһ͓4{֥L)+@QXwlf"?`8KDM#HP" cT-{-I' ~i#xO؋ b 9cɵ#$5G&3a]QDv1XdvnǾꉛ8ǎQ KvyX@S+pX,dG"y Ϡ ,)pkQcosp,f!<{T!{>aDsQD&TщkaY ^ԓSi0)թ5-"fR@ D۶A-\R - %/Rj&Cn^3E mvB(:P~&0s9 ǘGf NM'Un0W|q]Nj˨71 RfP S-,=s???Ìp.ic ux{3üG \A`GN17NwӈA.L}c6tr/]']iqMj,Ii3h&\Rl "nmD([{Vzömsz,au @C$9H #lwD 3/ad[0 .J&ƨ(%gbԺNm;8 X#0 Y&OH $]{#Uz o!1;)FSjQm0C. 8Hd%\9zk809O!Hkwfmkusp 1ھv{>JZoS; J;zDh@(cD*E$5$mBfHgpNOwx@$3=5@;jhac?H~6E汛ɹhfjDCmZ`{@zO8xt&QQ%k}'w@>Fl5.n](%RYN󖝗 azVpM:4PcUqKz+Iu,|wb,zAC KZZG@Q{ ;H[@q 4]K bg`*8? '$ D}S8G~r/%ؙt ZJ.J]ZZZZZZZZZ^e ls,6\<ѵnT;R P7GMd0+P<`Ѵ8؂2N0֭ܠ]\tzSHVRʼQ#h50Kn Gvc8#51B|=cN8X@v-@].8`QX7vr P{N?5xڹLo\Q̇M?3P8gyZa>KKKKKKKKKKߥH| ,Q!%` sC{pnup8RfE KOz? #-kMܲ(Ѳ Ei֕R#V,7EP4Gr3%lGI)u23ƮN9'wR9J $3_]9Rɶ"rk \wv#P7IѼxcO:>H6Fix& ?T4Kp2#7ߗg;I4Z10/e\PI1C,>$4.~n) n%^2/Gxk7ʠS{gl8 ;دGd'8 (˥oQFxVg0ˬaUi # (ùnqQ0hm5sJU9jq[I0 SpvcRE"'|^v6F85 g9 Y4lۖP>@'+ 4 @]<ƈG"Q0M=h+IEIe=]XBD6hHS?E8'C.$`i9b;Peiiiiiiiiii{1cyFpTVn#bUh>l[ =7@{pBvP:±d Z먵BZk" rlI(\s“FJО`+3þ}Pk 5hw>Y>@U$cɶ`];S&0"s 29RW#.5,7`XG :;%wɒs Kp!DZn 5 ,q(>aAF4 kn/c>eAY}5얔"33E55A "@Qi8Y u~!Ķ9ep&"l'#gH)&̍0""yԟH@u@_03: xuY; 5},||NQxĈ-I3aw?+f ;+J ˘iv}a8I{09-=ޏ ==?Ơ[eˑr(k1(jCE@kilW2,h]cDznNdߍ Ws9KKKKKKKKKKߩ1,sQcTuH-R34'>&ha%Qbw0`'Pz9r>hϞI㨭?fQ[5(ff@]op A&~]1:!{0`nhڲ_u%f#Ֆ%:#a`0Up͚Lu:v*=w  ?!zz39 ;6|4]0i҆#vL2FY 9y9e$Cf%x!@W> rٞn|rl`yiiiiiiiiiiߗcT*V+0{LX mC~0< K7 O?1(v,&F(ja@1]T 2u燻9ǹu |I=o[ {ϏEgԦS sqE<>$*[@t㪣bCu ΁N$`u! _ϰefHeQiFICKr'Ju˹u #qvp#]U|9i&^LM_/9.\ZZZZZZZZZ6 ɪD p{AfEcR]ܶ 4  Aep(b(^]q>F0p0D J56k?FH0YTEY73FX,3{nh0` uym^R\O{3#133L'<@[1;0*6r4RUr BϓSz#gkIkT/aB05j퀮X#N+J!Ԓ1X$^20fsvE{oƆH-8&!8uݶ+%S{Zd[<ӥIi-W{aGw#%"D H 9yWo[ZveTjAo U0 k&FF{ڝ;` i+j pe&@h_)J08;N!%(n-?k;~rpm70d3踯+$.dՒ:bxiiiiiiiiiiւ}FsP8ʱkx&23 ..m'je_ l#S(TUZx4x.# &!"hMg*=y6Rb u+ptlEXzw'~cL}PJY8T -m`ByrO36~dR,RPo9Dr׏K9AV=LX-7m ;pZuwG2J:"zrg}~!y$9 .KJURV! {O27$|ځ4j}Z^f(){H+fN $}.k&z@5Bc4EAOFhfx.V+=W`qM L\d&"eLa`';?i'P2TT8+OXrgOV(jZd @ ƬdAG8C OTc7[zsɠ"PKYJDpki)2L,Ftt'3wC)<_&j6̹uu ɛvʫ,kM=L8Oʚpsgf @Ƹ)r.a:#_*Tsf>c4 u|fAO`Î^ZZZZZZZZZZ50,"0$ jLv}&ZQKZ$C6nϟ8?Bpq 7Iy j4N10We 7Сp"Z!@up&T܅4BO>%jQ$zż=JSgs$:c$6R.Ͽ]ҷ%\V`jH[n@,~p23H14w1H%XaDZj #XȀy? 魁" UgxdOA@GOsD 73#HT5[b% e` VErnsߒdžN=;ZeiIꗁ4{t@nj2\h3j'`;0:X-nk%H_flhXtOЙV8N☉ey>0p38H:D8[vQvU"_:# Aaa-&0܁kUp2 FQ<f!w;z fD ]$3q9QD8/`<]H p iC~JǍ[UGJ#axΞIɝʧR&h^6?_~̀MOBw YybΎ]]$ &j#8g05фa *F 4FGfUXI33YT x#`oP 0Djfe(b&B[^%xk\=Ѯ p4:A-Z[ 䀮3Lˀ%ӡO=p7Sc58L ״_aGdg%F&Pd%t<5'3w1E=,W/Z L-?X:c1:ZNuvnIQnm 7WC!{njwI$ٱUȬCP.[ 9}oeGT5EMER*+2>j88n˗8r& s%5YPV0 MN˔C`T zoPc@5FGF:ƈL1-@kD7hf YF|p*q# GDZ0ż}v''_:k􉆹U(52hN5d''5$w|;Gev R`"wV}ou{^׽Y3FMkaI+p$'?1_&[ 0L0(haX0癳&FؘZ fI xp;@ki3rF0єb a]xr )L$>G0^9ېj=BZk8 =XT"9SQ$NL(d"C s^xAȖ'T4rn1jzcl ki5\'ϧYI=~}5#ߌ Mn_sy{^׽u{sV03cL-g3<[ `Xz8`kGoLX`G[k^`.Q\;fWpq3Y3 p6yɚ>*q@58 SS`0{"3Dk1?ghls&%5bi3w *0]8礘y<=i * Bw7|mltK̥SU P "7ŀT3^׽u{^/CqYD a` Mz ӟ٤F "A/!0'FbBU@or]&A,^a@ "uιd+|ʅU#ԇ8tuɼFx|2֚{09ᾈ 1k0b (9^Dk]r!5 z )W5h̒?;궍m\魶$ w~2Nlj%~ |z?f9߻u{^׽OXr? ɀVhfCf!5j<(XC4"w0@9$<$5&Tkf r Qq4j\ȶ+Ni-RkKMZ)@bax$s*\-D`?Ḭaו鷴7e@%#1[+Wn &`1]}y#.89+4cw 2W_%m 5n&Şݓgl^׽u{^K]]K,Gk\prG9qEnaݘS# :po]91˘* ^d* !b v%q!`&FO"*w 8G`ֆURD@H {903(<$(ใbfL`7CyS^D3 .sfX}w+޷Nm3N"u_Y킾q1J͙Q$׽u{^?e1'qE=0 c!ƕ|| ŁXօ^m ,խmZ4Mi: ^>M`?l~Q\bwm?\nh OR׌kml)`*i, wPu{^׽\@X@@f}넹A(dM$:pG g` {^?r&Mʐ0Uj'Yv)c%%ZAAA\*%gRGaT2Auy=҆ az:KꫪYC/*->_9tx?/q1<;[8`_R۔9eG?+[lŠY2- ne6 )u{^׽OZ’A:[z`2]!6+XD c T?S6 L4f󅣇r`J%Clfz,]|LT2k  rd,uV{im*)հ?nxJn14aR@xC ? ɹ*3)吤@dFO渺@bP_֚9ӛ܊N[`2$hJ҄;\&茠[vJAηTRFz]c0'^׽u{^-G^l&sDՄ"#kxFMA %%<]ÖWƐz`P0dʲsjJRPA2qyM0^@ )yi+)mmBb@@@ƩP`! +͠~,A4BшxQ@waaxM< b>"6kjk1P`B:FxE_= &uzF(ol2"׽u{^׽K$!Qr2LZ$=yc< sO'%Z ̐j2|< Ǒd$ ;D8g\RN5|i#1 '`){D:TO5db9XWY &Q)=H&.*Kbk-Q~b$#Ow3 BIMg8y&磜I_3fmZ?PpS @PhB7$sYk^TY5 5gPp|R~g߳C}4QLL]e(MLbu{^׽u"¼G?Lb8j7=a8A`xD UEkv c D;zpw^IA#_;[Ak'z渑HNL=G(=pc*4uЌi L019*K|g piS8Meҥ/w _\݃b,:o ;'sW/z?עd$?~`s 4YMɄi^׽u{^߾!8Nbe.Ҳ:`y*3N3|{*Pzh #?{[;iqz k0 p ?3NLXs'23tD5q4+~8݂&1d~r$ 3Di> << " 爴XllMa_86cV ip\E% 4iN>Ud52҉ޥz<ܿۓb#R ɶۋ*/o ;_'hRjKl sfhi&Y $wn u81s'5΋~EZOS}:o߷5 v 4l;~:@cm 0"tX@C5Grx: ]:8P _"Kqi{׽T_Is ߸]/Q,ቈ;S^ #Ɩw'ɺi.Skwa^fD/[Y G|ثr?_-_ojq0`  V nt}u@akmCA g$T#Z`JON-D gmHCv=%Qg㉂6ū11,,ޔG\"3YL<:ǑPŜ=Ut 3/Ea#Ut\)OÍ2bd >DArCG0XslrY̭$dj^}B^9"~^۞!6 ,ᴴj#H<_3>1#S,MհK>fn:TḶ>k^ (!Y@ͷ䦵8`&YNΕkV]RbT%3~)ih{7nx:\0_ii%a9NI AtTS3|ŗi~hڎPs*ym!/`|^! `Ѹ.k+/`7s-uZz)u.oM\* J+^ ¼hO_]1_`n6LOf`#LM]E<ݏ_+ sm$"0qH|=s̍r߮#^dSŨ0<9,^C]ЉAZDoz74S|zjojysS(,H6&jg;45߇HzCT*pm}~%+8ޞl}w栶3ǓМXE|~*E)۶7F X dV:ѬL@, uqA d( ̳8Ǐ1\\&*y35i49-$h9|#ffF&LQuW듡X֙8Sp0L86 P2ZR-93x+6N񙛬s5Z>-fnUq^c㸩y}ph.(Ee[1lh0PR^7*2$#)mmHܾa@BK0Uh1I{^,Q[2S$ -upw7&`9]0f]Dp '8Y/)"=[ 9W<Ǫ8p XBցaSEy3|:K:R. d]13|"ݎ t-{H1 ZU[Wq>z_ b:"*q]?SqaҐjv)c&6G\; ٥wT'ʼn61@,rlu9:EUBTdQOEr9Cͼ(>w۔$vȿ]r |W|xˊgP \8, K%^6BhᨚӗC  X~>&hElV#в3CcHxvy*D NgsYJ'۵o*n IDATv$ WMՔQs:bg-Xc{&_g&@N hqdLь[bb_,tWrp0nnI=LCwVFsz}4'S׋g#ATz.h#`5@i *M|#Ğ}H\C\h̭ jLpOF{4q^Pal5弾$W%_ =tu4p7 HdX& R<288: |@ S!5||S3MT!G<40C>3B8. rX T8ik S|@ӛZ ֯IT|iicc~a,#*• 7sw^ǘPAI% |0+4Gt)ѠhpWHȑ"k""5zxSu ,~NPY쥈Lyߠ6})uѓCz$H΂?roO<45KI^*J[Jlh9mLzVx -K\=ʍbsgcDI%;dYE%3g~_~^q#K"l}h%LJi+]H^0tTlO̞u ::B>eTFʌZ %]-PG!sYZmE;؝s_< X/o6gBh#!8:u̯ j>:י߱~ƾ}>f؀u7ߤm1Ɛh^q!a; _Qxe1~0;<u]BQۺ䑻`a\,KHo 0:FYtqahFa*SHAyJB)e v0I_) I͡bV,v 8Uxܡ6ptIjIjg׻%GjE-XVTLO&ktn91AHWncg=[~c 4hnJ\f$2)u#4bБh=Y3f&V,ٽNR%#^@N4uip`$y=>)cN;(ZdN[JFƀ 6x%lvb>HJn8z?iZMr_w8:@P0NfH1G6%,A+% aG{uD0 ƳY1f@$>"0^:>>:T QJ8=A9h=q ^xH{7C|A{Hdx> ^|ƚG}7΁?~|⷟?|,i|~פ$:^3U}9jmi i{'"lhd2QHWG)O['0u|lYaR ;!0nljV(@Cebΐ"dN0q<9߲)@ D4J4W9 iH&^ӏPn x=  ]rՎ1^<=ƒ ׊|yDLB5.JIASc[!ZV{2Λ WV,b>}ylؾ>T,WŚD`Q~Lmꐮ&mºmχYv+]f.Q)DŽA%KIR<!QJkL<mO6t2f>(yGITj@/2foE*.gFhkM87j|4m0«rЅeM0;uْz}mYSrQ[1dxWioQ+L@ BY6rb9޹`FkL}y2 ʛ|IUS8 E}XI%^g3$N(jj`:YWS<#EoA\dh BG#|>]!7N4DܒxYJBIyZ҄f Yzʗo cpG5 HVX=A%쉫i5gl)Nq# 3F`"V*#tp SWQ(lz 6<=Ud+=YcSE' 4ga)T_ŽGVXRSG9+t(99ٖ(p!#z>'K]*vp;Fs1F* s_PK7:D#9=u'{R ֞?;~< ɼ=s^z3]{SyG'~||@D?]Rgz]Nfo\ק P (js#*2C 9),yܼ~%[#aH~*I' sQt"⋲ |н Åof/= &r9ܧ {:_$"i-F"1}kt7;kz&^,e\-M+K7܅ޚ=>x w33ip >@;+FK##lJ=\ G5 ~8,7Qf0l O[̥b-0f0[Οd8 W޹& oYyڮX_ M*궁7z'㸼8YO&{^]4ђucLA+6Jr˧;EM)3/cݟث*&!$gp`boF+}ʴC a[%Pl$% 0EMn X6P=[6'|#"mo臠]( fl 4d{9XHa `{Gg>Ր)#bH873|o4(lGóЊPf Pw"T @ѼUA~9Z|h鹥(M#צ naс|dGQ~j J0Ll}7)c4eĘ -ܐ1[U Oy{V!L C =+7Goo !S&9k}Ԛ8XSzgdX9>)sS|ȹ "-%בl0NdHh CGKj[9zg'425E8O'h:ɧƙr>ZC{D`[o-_{8dkȁ3a`,V7AF0[(r0R %&O{й7F)5upEx1D-VЉM湔tR>=F[PJY`T Jior) M14NI.^4-!˧6z9)*t_zt"!])+ 8m LHWY@l?;QI&*[*a@.],[hϥ/AQ\F-Y,򷶆12]l4&$UryKy{ 'x`L^h?@ѥsxK6/kx1;|U4\Rn3)ޤR%8YM$ [%2+ lmRlpKY4`&F$Xo$9lFo|i5VR!lf僐eLZ3mZ"'-f2y;yb{ Ww3=4xC Ak&O<:@ u@L%Lb|" A5szD\v=*Q3@Q;F0(H$s`=qힹp'3[F4`pRL[8y5к *!ajIAe%g +=jǃ҃q鯝ק\'#,"ҟdLӦCK PCª!eK<0`ӛZa^/uĵ;iɰuڛeKR`6^Xx[1sJKi[i`+J!\qл@AppG1eT0='*T̯.sx*%a5r qdGsCC887igԞ*NV?~8Gy 'L ~@o80 Y&`Z$jDhl9k54NKWZw)z?&Uq2 »N%s֏Z9aa MR2{'O(h,, 3Z`UuH粘i&*T$iv›mJTDJrj8]fgTE$^l6|} A %yj_NhMX)[b,P!:ICbkjI>sa@("m20BBaľb0%86;@ IdW2{$ b黵n]r 7C?!ФO=96lIJaZʖ &,+/@+6Po#IbbWf6Vn p875%f(OWd;)I&֜s> *fXf(nz5(XLj)hQ_Jq=@Z=^8:4ZQVX~Җ XdMfjmtD#t0 [gRl4MLRAZ8F5"y&aTdc:l0@]# rL+UaKn=,'@iȿop[_m#M n-$4YIr Pys0.$>jFP$1%1H M SEoq1]~HCńfqv'[f9e|wtۀa';b:w@X5m`y3^٫B2 Wi3]}&,Փ*>~L#]1z6(6-x8sq6ͱQW,F2p9 \fÔiECn%MO|1gTRwEq <8^ײ3.`vfjÍ,Z4DXS'b+ AxL &AB/@c@s|ziVKmSclRJn0fVc6r.ߛ^Gd_cTАV9<' VC%˙Wf%3v`Zays)7$&i*jߪ}z}`ej3 osFH[]Si®~76Gc QD=B,$yd~Eg(8?.[[1mo,C2t!X` #)G4>f@%yC2lXi9'rJ,JL@ʌ3!W`:-!?Եgh n*Lfsh)7<'΢S H=)Hgz |܁q#8x2-UވhѰjxQ`6!̡ $!L'&}I-+ϸ>zUm5*BX2?%|J׈)&\k098ۣa<#]ZKpfJCC㩊C+ُn=C-̘ 8_g*Gdbdu:@,-|Dhg(WXR6/3eg Fr 61Gw>O?P<>_v< EvHIrT@a.9̚T`d1p}FG?tkRfҨ8Bc]c̥'~kv"F=[GxR2ذhg0x/_?1XZJݖɳc ~:%(sLᬪ{j[ gx*Y, ykIԜO?Oʹ&,s < fQnAMafi\ )/og3/֧wR, œW2dóLH̑.>M(5#£' Ƒ< -%)sGRcqMaҖ,$]ΐx9xSZ7&_>j@ IDATnЍƀs_e߾wY\ӓ97CN{F|%)C'^ok|D-'U8~tz`f'~'H^k ++@ VUsAnBM,cL_A)X8&%b#?FSQs"hZ-p@#C$yMq4C~x07ӏ=@q/q-/E Ӛ{bӭ ƃk]+ڈ4GX&TG;tw E fwi Y|П(^i1;(Ѷxf2Q\*)BE*cX|~afb$֚3㜦7}_V'_Ridf>db(_ՃbR)C`*0?@tp's# tBu]Wj;\Tse55.E&_hY@Gsd_2mJͲ@  <}S 0ob ~ҕdf0`πgw8|Đ9/=wHYd70^(XDMo9( ny8|#F q;l\;95@ED3wvFȧpz^iN[:%_#g/@1ebOx 1j$ J N0>#Er'!GQɊ.lzIH0'yo5H_D8? 8~ 促a W0ׯ'L5ަx}xBGXV^O.8wP _ p6K̪8њq3Њؚ@.V"я72N9Ӳ!6"Iuj${GI?3U4UsQ$_zmH_PhJa9ߐDхJy2#@*5 L,+jp*qؼ 5_^>NssmXs3 zNT&~b_P˱%]@ɄlcD*3i3lp-2c_1>It$s352{PE'YNŰFW&q]|e8t6O+Y5>t%r+m ؝D%j { K] pz3)!'9Vr>RlU3t֐d fHb+IsDKĹY:ySeC*Ȓ_rUʨF > kyXQS0z@y{6o:PRɚWdeynkSxӐ~:"`fB%$4ZFKT0i RdE1N"A."؁c$1ߟD: ^cePy2^-J/G>g`'8F]gI/d 1I>gTSJ,w9}lZԌ8!X;FidK-f# f(ŬV3 +L1`)8"@e+[BAR1j.eɫٌ!֬BZKT/EKZIÓY;>:9 M9&dje5(IYK \C C9^hvP*E[l v, F`+=A#B Q|D_gE#V^O7/2%TLD1c~1g `PfTsϪ)ۨɄHN6q)j>g\ yrvh A~ :k^2R`ԋ,Ϫ^1Y̒爝!YZ#S2<s=^[UQ$s6e0mŠ֜7ϲ G +`xLa.t(Z`0Y7@;+__g&>NI^ThB7|#6gKtzb*܄.[XGJzD5`OR1sg80K@ϒPd[ӕQL󱏟&ySqMp}o2`Zxk(Q~/O&4|s2k{^7v5,JnpGvLO'+}6>@[tc}mpݧD2|RkNlvHH`Q`3,v=2|MT6<=A#xހ1 k5aLz/2ɺՐ!a; 9c:"ұknDDF2@U3~ƶYcK(Rue/c xr6 -sj<=)>S%xL.V)2P4t@702^ HΈ:[7LF}N!NA8d$eS$ Fo %)#)3\=fޝh}6oڟ1BSɀ ' ?.zSq54' G-t KI3޼G\;G #t2 &˖1)<>Wˤ#H$3!i+$+~h$Pa™i\L8RQ&\sAsID39AO0[\et oUKHr jfP7"(J2 N9虾8qG=zO(wˁ9fg<+QrN(.T4'Zgx=5,#lQ;$KrGDV Z^⾱3teF냛GDV̮.1;Þ3UgGE?_G{2Z.>}V¬%DՂ>.QtPm4.IuHirȖOto'va>Z)k\>}Y^0fʾUdb[;O,ߨ1Z~pe$j#8LC2ziG "pT ><< x!{ s/QŴ۬bZ&8(ɃD7<7,<(F{f-:PgêjYE4ȢXrܺH*SyV8UII[0#IEMYm'̹>X(s+BS:6鵳0rX,K),À} l-` (D|WwNe es[,NdG(U}:}9k(yO?;ԓfI9OzlUR0SiQ[1sAADDhlZ kZ`hJڥw '!^h3ك ̍L{Kgt`VQJ Zm85τgUt \NG}PqÆ\edFp88Lh,nyRhƬA lg$'wp1EEۜ섖"8z,um-=5cuȫ dwkQJ[(z՚l3qn)?=.7H(2%oAMf~k'RrbzmC7ev ~6\jLg7eqENl|K.25Mf8%1,f֍*756`&_XȒmkۓ&7Rp.{ &.MޗMp7@)s[5p/]՟+fA5$@mcu,N,7l>g. X DL`'J})zi)'ߟ  N`k3G,bBn J-Әoɳ &233%N,Abc0"RE5<4Mfg ^Z. yOX 8QGY!@SRERiv-/ CNyCV@RFLEUdP:AKjn>2ش Ctz483"rx}L!b lmm ?~f$~ ͏[Ⱥ+KJD3OM; =B͜kY~u,[* *ж2j)늁^A9 }dO_`RT8I2;ḗlⅾ 5#@3ƛC7V6 :'} >Z 18FXQWP<""&  p(4q9 m8OV~F8HuV-6ǎPna _?1BϢR EK# x_0FwJE Y⌺h? x eݖ686S5ΧWܮ 2Fy tA9H9@1 0@c,P-DaZ g*?Rx~o R0'x>C^?`#>>jx-UJoj-8 w1)PZ>O\ägh{4'G߁tQفU7 9q(_??a~ hc\nZq0>R%9P I,61#~c)AZв0E^$R^5JJ TRWUyǏ'~}/ht ͙8^,*È|Nir~ʵDžZq&x]eL?fFdt*ќGÙfppƬsऎcCqbSjMf0ǁDW|gq{w0EKNd̂(u3HSY2ݿ̘~6rZƱ,l^v2FVr*ͭ4V4 `]+rR"ey=ASYRـ.<Ѳ-V~Fn"4 ̳0gўӇ-z I/36`IZk.ŗuE 2'eS62~V^ZJoP)О@AʫZH"+kS&/ю1 4{o0T1#2Uyzmh`ĉ s7}U,5 s+YKk^YT&:eF>Z]GVU%"GqT6y4@MAj?= i@6ZI dc6H?!q2%IRm)GЁ1+F:Rfg5㭎W 6L8Lg6b#hc) V>9*aġ#SKQ|<1AGDWW((-䎥40m_hMc?8`?Ί+Z~9>Z ⁆ρk^g Vt ?>녇 X5UQGhHPa4T0X"A^x> Z83>5iY֠~Ŗ!d!%}US|:Ff ta5@EmPnn-\&5R*T-Aond(5QAܦu P<| 8h5 fTX0EL +Kұ䢁|$- ap^2 pɬˌx<,cy,ž}ĿC"܁-?l9SF(!S.'زtE4aiwlnjpP#?g=mozZZ^ܼ{FߞSRo9&,_ Hv'}ٷK6.oC/6ND(@7jujr93rHx7~#"ң5C'Ѩؠ [T$l!NaWӟ$ņ5c-jʆ a)`6zɄ~$ltcNC ̆JH"PIYl & ,FE6N5`"nAK~hRKG:Q ,6ds[lozIݿ|Wª=!ߍ& P5㝨4<70o!v#>?Jקhd_W?`@nKr x=B)&(=omk(h*O8:(^pw#_BD r4!ВKNu Sjo5˼Tbch_$h@=h}z)ϡY;TDF, 7U EɬJ7ǡ ba0 ߲z!6L*FY>e2LF98 n#=V ժ{V4g7fօ$-6AUKQ<9sqqx]F'csxPx4 eCku 2=Ɇ0xx'-K8PK )-ܴ IDATq\Bo+)=[2c/UM_o4Ky>OphAS\@y9. ^ʄظtig*g*fEKϢ&x9e28%bKFPW~EV}|6\v5~VDTƖqC5{Q||-sm4uk,f2Ҹm ]G=fpgTP4 ɯ\Q"HqM^`n:N>+S._5x2Tحv,ބk0GSv%=CdJaO|Еɶrm6_Z߁ap3,*lKXɉ>&rlJ]LGq( &6ɇ8q::BALPFIk@:>_n p>~<Spr/&%$DÆ&_幾(4޼Iw2_3"ey_Q5KN_o >PO'|,NfR|$Z> xa0=I|!'(6Aw5j)ާ&8ẄtP1=$aFuSąuM8B?QJk 5ZP u2~HleO#PՕ8RdAؤ#Rn+ IW=IֺfDR[N|>HMJAaW #=,E5=dz+}G+AKj2PQ͝ oDuv4rTq  .4q ׀z C[rc k4ZbZCŪ<#s9 y-# u (r z|aaSZjrvPdmDn5hIRj@R8n=EZ]I፳2|"j@uYk ~}hЪܖZqNxBU/_u hqlAqznMINcskH[eI#ɪ|L|ntoۤKߚĭ+{ˁp_tAg2m(F/I5Y"y3žC*[v&< `C凮|iWj6ŷۦu>0SGJaH[#3(ʌb ml6e6ͻ&~?AE {`])17F: x/m{ϛI(ۦ\VÝE|#ٺvx:7D^^}r[ t3h5o2a? Ո\ S{e:=¡&sa>ffIF ̪3PNyX"mnnr e*2?V‡HHPm`ʎ;'-) _-!SaP}fw "i'3tl|EIȕ3($c}V>AƘKq*_3I uf#> @5(CV(@ _3}uϓ ܬze*ǝultog{z|w/(jϝ3ZAld,ZR-q>{КDH̸(I0SF 2cF '^“&gJzd#͎Ra333(FfHط6 hJςV Ϛ ;îXb,P9*zE䄖R8-7 TA2;U1_`LXRCt_qZ<ϋDTo8J AP[x *ZZAkKp<<6ZJ^C%O&):#Eq^u\gU\h1X2 :c$$,溅Mi’=j4n;v#T2HޯظO(Zϣ$0)tnŤG#TpucU o- GulyYYHŠOhܢ )PER~}kOsx6WZa~pzAT1  :O;\x CъΘZXMG`>)l"k* U)Pq*0pOThe|ECٜga9fcpnV'7.b2Ыf!G+[D*.!y^[Dzϟufɩ sr6=Fe>GE Y}b:ϭ|cpÇ 0Eݽ"qkkIYL@"a)؊ݢ,mب9a3ޤ nt|'_!2Y+)$"EBUlʷ*A83RdCgFeƱ_><):}56.eNVj8-FHzNrYܠ̢-^3/,iy@V2KFe+MeӹEM'o>>(:> |JDΔfA8Yg ꛬ|;37 ./7Tdc'@ETzʴ$w>wv QYmPg=.cX ; CA U!)S4]KW6/Nʠ3(W\rcjϽط/폮ڙry f!壀 yv&dݿu-\:AC]$Y$S߳pW$^$駢S-*£I>|n7xުzMdb*ܺrR7$^DîB~l Mr'l$lMNj&s5$`nY4?\쐲E[XZJ@"ekZT*؈)MPkSP1 *57IngYb"ZƒV%Ә3 Ip'+Bb*Fowx] jћa5$"K3\9C1S)겁m:S?ب8dBu;sM 꼮h+6}A\. nZ|q!v V [˻wXRhZbcrs#cfͦek-пD@W̠+}߄L9KiӗNYD|O8 :0$˩>!3lbfCvdu]*YXn{=<4;VgPJ6=A>9g^7=}irHߗB6+'Sۼ @"ܶAN^r!?An`cg{Qe{D裍̼blO3#kBuC!˕m嘾RĖDDDA iD":WOSc6%rD GצMo-h|Ац`#Hgyxr51 S7ܦ'[GϪ`Sү, G%66ve&3l$}9jyD܎P˴s)U-$趲Sj3"f >t׍q\jlXLH>7oQgBJt]JA5Y !#^(!eIkhC9jȻk- Ǻ!BHx͆7H4]rvaTD2ϻ *vYף30vғlܲBJ M%o!Y6!0(%6x14-gP5ў_Y0!SutRmŹc<6T:I3 UQ KTqkz{0eTP DQZvG)kjMa}Ѧm<3jBIW[qA|xVqQOGbJ*qÇEG7umEC1SzsՕ\FsЍq1vTyGb0bt<Vj ;KC6ϣJ3RUE`/(:|p"0|<}J gPӂ>Gy]x~|Ĺ +XpX4:vGȈ;.#NK-%赬0-9q]ͥC=|6^ގgoaLb'*kq'P#Zek%̕,l:_'Je%x8}Sp!3ce F6~aƣdn=@m98IVg\XEaoL+~a9p@A/oػh46߾{5[ޔ/ko}}S!_b;ƭɻK[$z(ӽUlO:k[J6q #soc}Ioӗ Gc)S(0'T&5҆36>P7ӌ4֐z ; Q$ijg&cn#6%fVy= ZlBw݆YxQ"KB2ZRrH!UѴψ"d1̓7 Y? $woG0!Dy={lD0Uy>lIP67N;8SжQ[uѡCQJ ۱-7Õ,f"ԙ?BjEp |4C*j4se.SUHϫB{FOV|>sEdF` |*%>>ÛZCR 2W0"(A )u*+Q1*cM4T Qk[' Bg\3BFfRW딏ZH}0&"Due~gGo99lkGH?Q#hٯC-QRBBmD 5X&AWPgu?-Ў~}Beۈ͛4@56ha.nAgwGŰ })>r+uqVR=8։Ta-dk*R!a\}}͙uhl͟d|OqRG,Ʋ5뼎AbVy<}v4跩 s,hM_eS.nk8i gS\@,XN4؆6[_m9w]o؂:w&Z.{5oBobJ9&\&-<рHw>£Dp+6|2HOՈyn 囷t@إk_ޗZ)m` ]r iE| ̭bƼdEfo--tz?iYFB ?ҡn[) /iESFZ9NW#}m3*sN {QEv>szXO_cmsJ]q͎%BwB*bce 7 )7H/|(}ƶ#34!؋sW\>NsbI?_~F&DcYD~޲z c G) ̑Kr@ (Mj@.P: \ Br hlThQH т)1%~:=5,9q`hۢE$y?s`BFJ`VRbYq cdl>S&I1]BhTIh=hhs{^jt_ꘙu[rݼ=qaQ "ŗ. dkHUcy݀n7#e{ρ 5,3@q os^$̦ft Gҥmd}?RZJ/gC鈍X!2sr, 7y(VJz+ɝeJW1CZ=x T6T>kΈXuVy>8( Iʢu6aB_|jgZbk%2:Q't pWlqN [X"0+$ѯ^TS+2}8q^ >Z 2TCm |]輻 >B 2sbYUz o7IkuYל1F8 /T)ϧ<+u^qa1f1φR"Lءx%B9l lw駄sm gLNL?k06et:ETߍnҭ3^70KT\ (,h|+t(T+su5/SmwB7]ЌA]s{S4WDJ ZeEE\_M8AޖHh~ =3]jE@rd31rKOB좎qzOHao|Bѓ؀}  +*˜'mcTܠ~0!0[0 ֑w*S"粼Zwc"+3'ɚSΛQEу0,]lj( W4FQrz~@B" n__G5E@%A0$'[ʐs(3OB.ޯ# Nb~˦#zd;)3,>\Բ='l= IDAT}?UY͠ |@jhĠufwP`3y)qE2s|^$ 2ͧ^s+ӈQk:B^ s 繨t3.hYr$vIďd\菗Kd-YNEQg&smQh٠LBwlA58ki96&) -'?$j\3pWR1(cLwF0X\]q3Tzrh ̐_7n7UCt0px|2E)q rKYٗp긦B&x;GAn N^[:YD&2PӞCQ6C;J<ѓϴ9|F@Pja9h!{2<5!cl>`BmmE魶 lүW(!8VJG 5czk܁:Q; g, R`#dGka@C1i +3eGYHx[|O][@DcZN[bPNd"%~PT*)lKYKn% tS=(a8@6DFh|6QD-fM|?9zlq{!ͨ`KB|QwyQk]MQ@R!7@ 7SϦ6dEPC4NJ` 1.um U@l\ٕ̌IiL[  S_QYYǡ [` R{+Z磼Jh o,H*mJy/!"C:esA3@_hr@Dzm0 % zZ.ߔ#)] %3q2x e(~-oCz6e94k0"FQ[ ="zXqE 54UbCUJH>KtTFvwj !z K)_h1P_0S6DgO)6ErjKTe沆CpNVYhW#kV**m/ d]$ݖ%g2:^&u6k1bJU6Oi m㚷 w<^<v^g) VBF4F2Gůmp]TTGH= E3L0. Vrzuc6m58 &b\ ('OA;w+rڵ:?3+wi<ܲH\^> @J?S嗛ä7*3VPAi1.o=-quL%Gċ,A*t f\m n11\CPPE._|")oRSضOU+#{3f7'x)\ mv{m%ǻgS{:S7p~߾v|U]>=s&>ez#UШ'= h8w0n~H]o{jLO:m|C U vNXgXo2l{ uyMY#6f-j_$%EgW*cKAE-`H.j$F|)>ʔ5^cn)lf$6@9;Dbtʠq (G1;'W<.?(l6>H7ϲ({_hN@E `s%I)4<AcC1{nkxFpxŶJvF3O{y^h={b.R"D+ Ϙ (HOfNU0x`,HZPjĐYms2R=\KaʒR1DBQ3&d5p ͎ 6_2hgupD`s 47ؤGCb?PĭpÔ#PN In rstfkNL[#3rA(h"Qs )ёA`^!%}XT/CDEri+CAkn362T%x'gOw>k=H@]#"] I<_ҷ9h8Z(APh2FKIe\w"[~]8j7D)ֈ"x@-Me AuY֍A GZTQDgآ1k. ~ `}gt*NEy828B䜰 WK4oy2}VRUxB굙/0V~XO$_â:P\Wx$xF\}.363zQ9s jN9LlGk-8/[t^Wi#[/h}z8gT!¥{@_+5Ei(j+!(( H;xPޛr3+HN͍;#pA@PڢST20z9u#*+ֹZ"sh)SuUJAQyuϊW [$r}c {hJX,+ΨmmqF#g+Wz[%I>k:%ߡV򷳾גςܘXax+6|*]lN@ >86:((7t\P iYNΌ+uRNW` P趩/M*6r'KL"~\rf78ɞ$[~}//7XLZZ(m2XmMzdQz"KjymaYɗo* x桿o"u -9.ȶYWz 16V57|T9MmoQ8 ,ͷ#Ye}h6* R v`{ #.poVX"5 T"=~^ɸH+w33#DgJч۶Y^VDbzj"[vo9%>TO-C{@pq (P& y" iM9V3d1k*yg3G@9=`*^ۡ?uOʢm-imrKcu|`S $OtSXQQb9]6N태鼏Ϟx$|^I-[AƳVpQ|+EWv BB8 ~fם9 ʴ \-19 Zil2l`1­b+DcP-9ʖfC-Fx-!`W :7q /֒lnL[ Q ss@ΔY친P5e35E1&0aP5fĦv253rd5.a0ikHJ-#â LjHy^uZ9_K,Q[Fɰɱp*hy .f&x>>p EqYTGrҤt0%U+N# WWLӆ⍒ݴ:?ݦ\fdk(崱v ٤ͺѴhldR0Sx?WKYu6} ^;eUJH'f40 Dބ@Y\'4FD.g#lYHL%"ņRݠZVl͔-*5=R(nu3P@\}G!0I-t7i1Iy`xDz651Wٌ_fski^Z;ȗȔflJ7E:3HWqApR??\^t>EӓS)?tmrٜ*OZz\1>a$cnjJ9&-37GLeIz N8r Q|!5#nITcÙ/f4KՖDdT l-\,^l<; |k:os(M!l=+pm/LN0O}ye dXl)2\P$KioD 46! rETp }PȈ8CJ8Vp :},yv#˵.!?nIFT=zf rγ7}~]f^@3""%UcnT?-rbIXGWx}O-9WcB=U9k\A7zb}AI=bw2]j ]9lK#Y2,gɐu6u" O ӟϛ&nE*,h$k1CZnNI~ lAp"%<|6t21爯W*i)OU|OLG~`FCN*wcBxxvϗ~cFXOa=>Ў^<7E =Jwb1,1xHA$+nS/К.on<1+jv2f+ `1&NDBQ[]#ix'/h,wc>q># 9CVY''nh/Gd4jgjbJ9fGStơdtJp?\ 0lnEreFɲՎG?a>z {8@qP{%a곁 ,VeI=-x8ՍKotvIlbr^މk/j lsRߧ(%"-s yoXɱRz/RY} 6-5ѳ῀a3e"1.Ս<d1ArF>!g0otRn qn|֗_r0H kAn*,ns5HKC|DI IDAT }l3l7.(-! K؀6@qr޵^caۺ2gvOQi"߆R1N%&' VlƊV7Yܵ 7טk۵ 4 5Czh@{(u? j o"OƋ,"s&WY/I^VOx̦IBr.䟲EJ?Y1BJ(snrܣǃ7>, #瓒Ť˪Qȉ;I }#)P$J){q9تM }6zֻWnɄ %=פ?p |ƣ?rhsBqfLe ?iv 9Ŧhڂ=wi3՛N\3hs8 mA2 ,yzy#B އ e#hbS_|S!A:9!Ȉ[bJl- {-6ӭ?q"J??Ў.LjosF6|SHs56 "svۨ9j^ЋfxWKD eOJӟw 7ͼ/4= bkۥ^IIq<̶<̯{q`:GLt[5饭`d㚑."y>~_luy = oG)9j ͉s gyU_׊!1sJZs<{X\?._CXܱ,bEtD/)ԶLpQ׻ؒUb,O7]n?>>Xzrr6yFsTx.{=lxv;]O=^ >P6a;)ݑ.fxl[ǶQrtG(;"h  M(&綡[>[STT5N/$2U̼>&ۿmrOv*)^Ŷޯ?){ʖ(/TZGY|V.޻̵cqNx_F Nn3{w{qTOoMmj{km+3Y~- Fr 她Dðg0SR@O􋀒'=1!q(>ȵ G' pm//+_ Eu }?gc.%\Kmbs$H^UZSzTs:xq >(Pb" ~FX0ֹIk9W$jE`qӓFE3$n({K[d뻷(v_b'u]W/_ZIz(%4RCv*] 2JOq>GlEn~8@Y u6K/xka<96m h sR`Y~m#_،I6`}o1aj oHWnd!7*Tz!lr<6m| H!H$~#}k/:!kf[QNq'J]FrSr`0/Gxc0ƁX!. OO`Mէ`LN 0E)BעpEZe:e *6(h]y3_XϷ'M z$j=*< x|y,"CD;jTlQoaX9I5 U;1USqSRueM1-eޮݤ)o@ KM"D{<}իhD 7A? HgS5F={_[N VõA0| C "'0QŜux `0GNFrmN.BMba)$P9w~Fqn;ҤfQR"0C|PXcbGn[kE4aޜo +sz7ECl, %ʑ9&IPNZ/}`mۘVdkv&N9PKXXRq^nԊǜbFHm,4ćhy֜rcH#2&$Hf#,l3&_/f`؂DQAm^?Inu iPRg.9-@f3$bBmdc^8ځM4Zݣ.Дݽ5ZО-1Us7Z!e9sĿq!mԳ gfɸL$Y=0lF/`6CUle9G6%T oH2Q]y!{onzTM΂JNmiIڣHٚoXڤ$Aѕ__2۸Fcj2rmhI9: N8#b[ӴQuo8*~k:-KgdJR^' OrGGN~_cJQe6Q8AZQ+S9|Ȣ?K4I5\(/◢T K=U4_4[1uXb)iu;{eNx^?:so~ab_:oJ7+}"b"ZxMk9aˌ(L:|尽H0{lb4sb@Z>Ǧ0.`6W(1dk _ؓ!1\Ú3I܌- VC!OOtiMQY#D9I}7[kcKxfalTX'$6%@&4k8icTAoEi\v˚xK} ` -WB%`!@-zl08FT,ڙyIQZ~.9^>iA[IN D!)v#[|3Kl#%~¢'׈XS~sr#ϩ鴼vPB}iDC{|VAcSQ"ff8Z/y$#,WF`*'TP@N51s@!P_*#nczn(Μ!QLDR*sZBg!bRCK"j&8{I9&LxYPI%7}fXpn%]\3i6-%ke<@dFGu= ๛sx0L{JSyDS3rhpPH(:0/De@ 5[">FWjMڄO_tr,' /g]l(&g0&cDnq×ۂf{ǒ&L`]s~5D<ֆXZM^B;_hpo ϸW1Vlh7F3m1!51| )֘rzv815RCn,sZNp]ro6-^2kƚs+6sRn@𞆝'd[Z ~qLS57?g{9!ޡrAhh? k龣@[:f*M/rp~_s^ Qnhe_{QYG_x^,47k.G6| O/Hf_d SNߊ=[=eT.Oz{&~Ri]@۾-D O^rwIpuTPo<5;b#XY '=x'`ǴvʒN Sx~2[kIe^@~{P0l,]͆}ut0^rE߈)U8R%^,#.ܙD*RE!mD0MJ< xZ)yp*WkXyvXHFɏ[f׺gaO=_S!M1oYT`CHAZ^h~^3Mx>Tw19`AS Ytތ' *VFk-ZGcC'h<I/@fG#0F sHUÄ7pF6&`,"]Sχ9fAPPDSpJdt's~E\MG=nbCpnҟ4˳Ꜵl|xIS~^*Q~&AÜᡕ$L YMs#ZzOn// `'s'FsPgrӟh+&_ql8 rkkHAv,$iɦ%q8Ƹ=dF[|?jhcc٘G;枞59N[=b'!kw TKV~18A- {"l6UђAug4z'`~@kMFVeԍ-;ܓu2UT?`6Lx^-qhŷ"0ג.혆aϪqeQ@iC=賱;E;f{q0B{ BtEXMDSY`IQ$'ָuښj]Eq49hEZ) fc4D<7gv`|@׾Y@_Db5˄Ϣ2GM'7:$^}O434i6NcyF[#j. pVSDDZ/n× F/c}{֟­mE\#8]cNS=m:!} j"TTqN5-ArMs@\y2pg ^`9i Ɨ7_ֲc{4 6x,D"c_׾RdaQ5b$[tX_.,L2YQ`zI,:`.B}iWw*ܳ^dX|3k^^šFo"V`7I]'T)⻇057'o"FD_@?$j&K2^|Η@ DZBe-YZOK5ŗ, ϾOH?YCYB/ji7[. (j Ri_\0í|>BeL ?ƩU7yicw6 2PRC^t4#A_u?k=]tfX# xPh ڵͣ+ lKpdP zV@|w1$9ɦҷ2,0nj&'fWD@V,DUR*{RyD^H̎ǷA2x'ͱ 9gu4X3?MV)kZ"'$f#բ_r|; IDATN} Ȍxn'n.hDFØ3hp ܟfRSNBtN-Nm ؕkIC"Sۆk3\WLL2@.9&]+Н( y 6-,ˆROXw^=P1~#6?e#2b>,8yvøV,y8Os:Y PM',c5,sal5rWz^CEgI ¬4NZl bBc,7Ÿ_,3dwT/es Ǵ?+36l*Q1 |' g?ѤcNNUִh+)%)`Elj|=+137;%ý/kI{Ds>{/"j}^9K9Ӟ:~AHUQWVχ9CâEC[~6^MSԽX%;]7KjIK:RBMrD0ƳEUC+$ [FRJFA2B]sfEn̎ZrX)J 1 X)}*Qod6sL7ֹŤ؋O6 eQX>߼vUz&a-N NcnAl:i 2di]$ږcSU\ e{Ya;c6Wɛ 8mv΍@gvʶrgc^r3zA*dFQ'>u+ ba ZoO&m m?_%s+2zzTw.Zxoجak6TJWR)gieH=.Y3W9[^sL-PhZ`RGB 9p$[t_JxeY RM=s´UxIkjzmJXy+Hk鋈I$9. 7>4H`^e[[- @L@LoO\7QYfa2--<Ӯ :;3V؈7 D+$䑰a> } +,},t!hZfW*"#q6\WlN!Y&ѽy^Өܤd6}}]qO%uȄy46²x3nVl\ڛ~V|Zc\u l<E9"zn18+ %UQ40V3f MM*&X3w3`>n@ٚkZDxЅpIhGHgE{uwQ:yEYTFAuLOYLRx_uNVGM,l$r *bg\8PB@Ä_5s2jSdoGXm=Ks(VwSy$^]3b=x<= bD=gR0?:0pagtv' qqJhlD1? "Fy8f5|7 n~lzc6iym Z8@ 2,sGq}>lm*%a23<_|yR@}ok^`n8[,Z-#e )x~E+%g`+<sRprQ熼zR!=!>}Fbr3?}n@Tާb B)KJ*DwIEv?lE^xaPO;a"p9|[W~lm"%w8l=ח<6[R{6ۛ 8 %D:;VޣȫX?@s_2f{?Tk/S^KW5I6@4nQ,埱xjDH +qxô@Rl݄Ae~m UصɮN]lB9I%^*a[ u˚z+x0Q*R~i# Üh+R :TϒaE[Sxِe,bMIWQDתﱼᙏ ŌEY F:7:]_9o՘ꗴV1!4\6BvؐFuhFHJ>Lsjgư6G&eh&`o ׄ̎y$3 F~fap]%$U1G4 .="󶑇(ZgYrZ'=iG Q*AYƈ=u A2&OtfA[9:l86hƜbah(svqs3fiW-1ׅT!yo?`ߢ"TEhT-6cDkŜ qm3εK rGo=& &iCy!| (U O ׳5ѢYxrTPt)_4HenWJ9ytpRY[l i鴓9t+QN򬉢g#J\h+[HI5́񟘓_z?bʐ)VtM,lE69{n}{ c^Sv t#SiJ2o\L_$9XkNz{Bu~M)A:!&x^C\ 󺂠wCo?^Y$a J4 /g﷑@lu{!(ڭEAqYe(ڴf6$ǽb-DOhohY~@`s9s22 B$d\"3/8'́iuOc5e4toqxL۴8b@r=cp]3 &`ZMMA9*ʦ3pQ 6v d'BqFOkEQvy&,15N:UY>krb\aGDx2qD(*65^o?A1ls(փ^Z`C&tt7&ec&("y~,*y&p $Kb?s t]cqD$$B8:}M)kۊkNبg #Ʒ*ب*iD>Ǥir< .~l׺ )O#%`bCTB1-ֿs2Z P(qoc8~hh~w99C."::Wȴޣyceth Sd/> 0lYx[7mй)~ yy_v׎ `opQo7?z_[oB~VH9 26߲ؼ[}؍[R?$zKOJKk|V Hǚ,"kʢP7oŧ}5e1!mRM"&56p @m o0*@x>``۴_éf(ÄU3R^c_FOg 誑צ}&.Ql[)*6Pv8%}/? .- ܻ^ؘs1;<c.7X2RCvߢCa7].R$[ڔΚެDEb4m[R^>珳՞+U5p{qbU]TƎ4z[PuMdn%Y8HYȔG),`jbY-l~y+HUƱO\$C[^3޾; 2H/S봦[` `St 𓘮 duB9v?n$5q, OGg\n(?x,v*]҆m~+b7P[K`~EG4 :`?9=L?s58̀9!6":p&J~_y97`X\ĶT{-$<`L3`"P\_Uoxc5Nel5KAϒ5u|?6gLq1hI ^̫靋Lu=ΆsǘbrPHIc̹s imӊ`*1skf5ZJ i"7յAZP:p-UEʹ\3,b"u_$Ba^yMl㠜J(h/x|B5 6Ӭh e6FzGFfHx;yemp-h~_xPk%N48%{Ik_1`>O<?S)$!a[o}) CWlԟxS=xoP&Lk0_ّ+ IDAT-%tuS,̩$!Fϧqrg;~9"hLzd)w3qi#s#^e0p\s +RގA(&'4|]szI&&n3\P}%ر\̐]ƍ/Y4\Ӹ1A Mb0%ROMvq^C|'gC?Q͋9=%~ غqbV'$b8Nޏ~~)ńk.xD4&D͌)̧Bf͠pNNqa Pe TcL/{Lk8:xA-!kIK dg<>Q!fzb:XΏ%P1p\.C8M*1`lIP޸xcľ59G|Yr1 |F`zaEBOq,@Ok@ɞð/>ǽFLy'\Z;ny?1[2AEL>=UDY4C{q<ǭyUSFE4<54UЂ qD% J@?gl7ol,L8e =aua,Iogsu!pYÒA$ߴ(ak$?$I 3ۿO?YԊgMk[?`F8 #eIyfHt jOaH-g!)4pTԄp&;ݦt M/|*ӗ X${%.¡Ȯ9x (]s׎O{=69 ko]ZӅ2})leCR2 ccRy\6p^(=!Uw=;޵34#v.;׳qzO<%gXGi^[S 㪢QB cdF`*Pcƙ倔F9 kAZI2.9({Ӡg-86RMVg> 5&s)0 8g4u6_8e&ɕy͹$fqԛէ iɪ(+_d9krX= rPIɱ7Z 2ݤn2Q$fƫOez.%+":m: l[/ƊTMnlp b+HozNLJ j>LlhK/wHs4S.NiTę.q*hVpOβB a$'8<ʡF=h!8$`<#d}1caf ux6W [A4%1 g4276e)A`<iSxt\"#5tã<޸f.:\LhU/2Y0*LDkDC@[iV DzwfByd׵O89.ǚW\3wǏ2k,`sOId&f^q 3t'u׿ߑ2,Fm~ˌ IOJCV< V>c!DEoz+ 0E͖.3-a!/&ARxV=¾l|wK_$_zv/~|ei{rnVNąŃ Y"fuۦk3r iKap7{oqRAs<ڌ"ĢX' '!>gźfMj|dcwu[V6%rO0dZoܲ&FPd1YƮژOFlnױfLNEY9fI߼zoF02Ң5.=1~n|ril1L nVј72]M$~oN5 csv ک09 '%B zA6A>/fNÇb>! 6F˿X*e_Atz3"QH3(uM܎G ME ~Ni\1my{̣N;0ٌ<2.$Rҟx߽e J`eEvcwv Ts?-5c\\'ׂT0,eK_(bBM43_lb>hRڅa&x^֑#mk0)=1^co3 oW$yMy8O[\E߁˼B&VaY(ACGEqY^ 26Yz侳ZO0tđG"b$Jx/&oJ*.hŞ|󳾓X "ȾP?+WR_Eaw>q27*8&^(+TMʑ;I}Bp/p> g2+l&jUV(e;xETQ}Eٷؤhʄa3O(=.4n?"K?Q\lӒǿȨsz_Lv0`Y^T`yᝀwWѡ(qfɐ"EI4JYfJ+OD-& 6frfa_ `Z-ϲz,Ip9-'67|bpyS&hb$ئJ4Fi@ŹE5]5>?EL:9M:gbN%K}Oh-OBMݒ,I{dU쐲{ ofbOU #"GTDxOp\?KذVNj.Od e|xOI{{xseI,7ڕ G95Ȍx5,ʽnŀ #DzfkkAJI8OlLB},ğy b{gqA{^<빔l(#(q!h7w:~Ү`j{~AqrPQ!~6S$`U{GfJ.˨'YJ$n$ޣD֫twhLoqSU_yX3s|,oȘC*IK ZMN=V;',w볢AVeJՊ &KT7V|mYiu]_@DzSh tR(-2*3?3b7P^z}9gt]tE Y>P=x϶ۅ0_9m_]o[l%E0U0Mۊ}NE bqNu(@R0У79,V13?ӎFLe~%nhXγPmVIC;kZ;UT0+n`lhς jĉ>),f9,"(UͬdW< َ$ҟx Q-)mKfC1o TN7'זuΊ t}A$lHX-8^+L#x/5 =63&53=l3=IBk_[ mO ;D'jMNyB?ybnM&< C3( mƒ<ȳod6Pnu,#$OV1{s$ٴU;?) [ !6>_="j ļ27Ut)[ߧ2㍚;#8}HbkWTsAWXXӬ;eJl5E݇s8틾o~ۄ. "RE6\jF?W%=i.PǗOUIXeX+O,D$/ЈWإF1|YIN=d!`,d2NdOnSY8v4# ϩbs2 r~+|ZtyoikpKb-NB%Q(YtK38C{fg`K4+I5G\ZS1?K'!,PX8!u[L\4b;5ךݻ)\-g8As887M7-3~&h\㪦y5j{RhMp{0ytk ~iWiGc!1gė85^>Ҏ`FtUGw) O$!MkvD]ѼWW;66*8WޒNeR 0# !4=?J^ Mzccu|E 6q º/#l~2͟GeS;7t*r4Vi+$ 'ELI<Nk"Efa>T"&*|D G]M q}}FѨiJD1Lj0  Z=#K)O Cl )N;`x_LAoL*l!]? ՋVOEFJ5(i4Qh]Jewh*p)ρ?B`OZ1Q3g'q>fl&Y4RM"5GK2XdoC=|q"?pZN .UQMJccf; U[dZűG3Nz:;/JsڵBpݣrPIu=r_U2PBV۾eIdk8_xT^jNzT?or|KiEqEM=FM3+jW㾷,QDA2&> ]+~ɹ8+9"pK.z'Fr+zE9%V ^]C)AlR_KR̆L90p^2A=%$kqdNUM;?(Z2EIM+k-Y ,;54ۼ,|I]ӈE|ˤ]t _9x.LsJZ`S'n=?S!l6?ZɎY]k]}V|9hۤ@m aM,7ɟ*WwnE ,s7T1@s;|GP`37-k-cD$ ԭIWRHdsH lY/1qw?)ss%5*9^AT)NvrP00-f|#ncAX(kNLWKٴ ,Ny֬=̫Uk@kC4*# 1F5%,V0{(«!5- fB,<%pk85a29c82E! Us"Xȡ`>tҎhB[ t,-=$IZI dxrϧxG2d{mžZ@$h7ipp\q =iaAAxRdM9dbジg3 =̯uzzleenVbdA :hVE8Ow&yX `!;v/^Xs75-H@JYS oTAXtf-p M@wZ{ǁ-iT5P }媥wZ`*,4Jl-a lŠ@Mr Q9#'8Q ]`R\ь39u1oR`m&܀N#T|7W<=8l.|z /JR/S4K)#Arsa!Y@.Q@vJ;VexJǝc•81 Οx6FefЇ9Gȫ18E:T'wx2_N%ס1#-?_"9FIQ4YR$k}Ӷpu=JA \ 6ZLk"l;Q p_NvL=H{vCV{tTD$53spBܚ x ˛(ƘQX7y̤~t#*.%ϐLpH$-Ƥ<@֫AԪ(~ȨȧTq RF8aa//}sF![HPXZbj`Q mH Eu:W-6[xL#pꪪ7 9fȑ{P{<Ty~00  kPӺ 9q'Q_ǖo[l_Z Qg|md+^HXj'xsxz 5{*ZG8}Z܁JAA=nKY86.>W  cV9E>wٔ*y5,@ņy{fyYLR|░$*ǽUgSə w8)5AAϜ1Rcjh*'{E҅JaFЃ{)E^+v gcIck-Yq)>0` 1߂.hGGw#9}Tf|g)8lQ"x HF{Hsx>F[h3H2ǹYkcNZ󈆩Ե^#ODlL܏b2 +J-[d[/^ QBiѵ  acu@kv q]_1ƚ+\d_fw85|ޟho?M$8j2 ?v:3yc$A442fS]쮉G_'DzjR?{t#M: w`lF1jw… u ^'$M81kZ/z"i`Nu2lLA8p0W"vb{U $GwgZfAgb>nEJo90#[ukah5l1lIQDX{q 5p史ULbK& ;1>NYqy6+oZ 7m`ܣD pp/VI-Mrh제hqz]a*ǔLc?6(&Pa]CL|"IV^К|Ȗg{tg,>ih cM'ɲI崊4BYBq(N<lJȨt]+6e@ʠAcRzCa_aWL=?v˟(XG"SVyf(`{{ϭpM21 o`="`m\Lv/ ,(=&qp\xm[$bg 1`\5⢭[OBWʒ*W%kRE H(0}w*Fɬ!dƒ%-% Hk"` LcJr*57 c 3A2}ǁ7K,I Ky<# b~"u2rB]y\)=[ gwv)E""巚3&J苓N%G:+_bs֎ L '%_rlo7$.EA;v#)A lF@`NR9E–Q+"$qE63 ޼e#ZM4F%%=_z8m*q_#p6Hcaω@18d;c~HdL6w=듍 ອ@(ٶφ{441L|NЏZ?fvN{BLގ0RDOJD9z%1-k%gl8zfT G88N2o|߽뛢 ":3a1C=,fM!%J˛hV9eԥB1z3cHoz|b?׀+C4X  cEYNZ;ppu.g}9$,‚ `7ZA ZZ5٠qdLf?Z%ʬH^euXxҭ+ EfE <~!4`-211 p3>-#'80UoxJu͜S$y 6Y~9f]qPpZ[KyCnN7%6O%Zw;Gcs4S$#7.5bk2ݖ']uMwJJc}~٬ly Hm !뙁OgL8h%Y}]n,$zYl~PzOks`9ʛ_u*WD "3(7_^nFoF[LLyw"OD(4Y g-FΈAPJ$7\F|oU9Iw͠=iA'AM (F9= ?Qxj OKwT-CxH".O* Wp:i{>SM$\Xu8~/Op\gf%NNSG@cr )G"wݜ +QU8s"d5* %Gy"/̦'qTsD>xΙ~GY XrZ*tZ<B țq v-,<ѩV12sy5:2zH#&YB6rvF|zΑwq\2hr{n|}]θ {:2  Mon׆ wkiME7/àڔ`N;bIQ8,0W u!5Lj낯L664U!d̛0hDɁ"߽W[#zbzdTHٝٶް 9u$:ŢP礮~gn rԋMJdY2$Q"ДR)"0JҶΟHkj9kb8gO1(o|z#ВVh}[B6OϯQSp(C@]!FVHu;',g[㙱AVdE`;5MO^xdz *[y#=Ƨ-\p|z"ӔI.7SF[$v`B/KFL-ѮX0 1dt?"-jj 5]t)/ŭmzB\y@k’23jqc K)*k8EG5$y1`BqqtᚊHLJB K!M2hG>, J? 0נEyP҇9<1(ϽgP;cE(9IR0A"H;n=W&+$chSi\ tn(ĦǽhZVd吇i}2n){VY1{~~X 13;~oXT9a|TÈ !l`1rBh8PWF3|Gl)fACx' *p(pE\u :-|IMG;} A)mIqH3\H^42s=j󚴱?~$,qG3 lDd>o{o,B jϗgЖ%"TdyOE5dVԤz 8G}#ճ l\I,IJUS6;=:j0Q66l% FGS,d1уs Ypk#EuLЏTёT蛖). fPUE6f_Ю׈F9fVa1upy]uMZbPX@1vmJ]ߦ- CERYIV,) 7n,wA=6G].jmϐ5dG#\&M\'v!s!;!S} ͷ{cFoy80ь9r{8j6d˷= "6m[G]b5!"NaVis[C@{:Ӌ7q*qM A&pLQ"Y@#Gy=qݍGDS@1ٛpǤx4Y{/~BϢ{& xq_O2Qp %15qIOGXYBZLӅ_?8똜l_b̸ 6Cc8zg Kpt*oҸ ޡ}R.hՔl=# c=)y,v: 1 NyP: Z7]{Ag^<7Tq3@(fч]*EuK5{kOo 0ۊ{`8N}1K%P3J6$H~^;8* !P*B18g eıqE,̲UY>3ksu[I|'M "xFp7z40qA{nFIiGP$v~׸YN6XmGMݙq~/p8׺ yN/(,:403,T'psXsV#-~¸g4,gf~:I6|)G{!'`~HH\ԵYpJ'G:U *XGHhd{.V_lge:FYgdAVG;u}!WuTg68IAee'n~8_5܏?CaKŌ~=j:+OK~v~efo[!3ίQkd#7VT2byx,ǽ,OaU#+n@Hk:_09 FY C >\|ւ'/m{>_$>;9l1NbZ^z6R2<~ OOl-TWɭ{o7v`KJ ᑓLJ#ʝHHB-iޟ!C{fPd`ZއjSg|$7tzx ep9Bn!^[虳+lT<i4s9wIϚH(e]`>~]&TVIu҃Q$[qbS OuZ [xLj`3Vu_b%JI [#$&H,=Dpuie!DCJ>yԴU)qPTi6"ÆGkDk)$AxIxT3Lϯ; b fynLWtog1q@ 69m̻tvV\IiO'9@4鱼'V3Wxu߂ 鸯2V C7EHzsƂ~~N tM4(buȇ9E<w$ss&=RVx JZ-gq:5\zMR}qȶ+z |=HEIf/cܑ,=6:/G96sX}oWfxR"l~f,=c]l`[Lh}M>Hq<(^H MtZaQ {^1}Ъ(#-7ヌ=)!?xς8 g'U;IPQE͔7%3¦\ӮѷX/KT#z4 AS1c`>;yϱ{ҙp\+)-"xh) h FM2ax'!h|~c'H}]~pb3y?`&7Zhߨ ?CͩI#OlekYIkzxg,?HN` sjҤ8! $h!{G=t,4&\6?fxb故"t}W~/e. CVף2ҷQ Za TrjbE1g1i!su}FLX3,e^t0b X io w3&eWZw<րak8qA޼cZy"5Gq9bg; Z"t5/(@Fv2d>׻9Ϥz/[x)MFA{ 3y-gJ 4= Yrz2 "Ժ%+.(pwl1T9P}3l]唙i =_`V*4`~;(Hy%@S/ p T ֦/+.W#?kN5ABC>CmFLg|]2!>)̢JL׷Bgio`v*#1+c/ vhǽCoeF4VR)x$K^Y@j Is(x.*Գ;eYHDgc~HdyNd; [lǏ>G灛0 ?OӽP6 ~0w<2:sdAuh&-U7;2GqŹ!hOI~ܾo/v@w:&̀Xe5lWNB|D.\ހ$w_q!Q)Af~T PY~S,#J P"ֺ;5W$S^=gI,BσXn$^5hGzC=DS5>紃4\Ex@O~Cn1K1w6~o-_Wɴ@EH(9Ody37&@vg(f}6p?lş_ xEn!3r 6Àk:9[2^y-DlpNN8gAhfz&WMCz+h-SoRp:c讕}x*/i>{5)I:c`$z.?rGBa٠/X?|Ih*c~By߿7 ,*(W~.c|,B.J#rb^wUX]Ͻ 3*tvG`#76Vm?+{F{^m"7R 72t@Aabο/N05!B,MzFTǽEkr-:MLKRYj! C4dZ|II7/@Ƃ*If[ >8](3M[Úq < Zls@>ib [:(6cg/ RO@ٍoe‰5 5y&gk\6S[!& /), àShJu/θOnȋ(ޥ6YzNHW3i=BmЏ-{nʔ̩FV=gv9ej)Ɗ8`;:%QuSN{OJe!1볦w̕uT9p#'1sS_*y Lvrny~}e}QGjΉq8?p.yW]/8+?? >_F?p4z;.38!ӫ_7~b,~+on01xf\d+-Ci ID8)4g z؀PbҺ| ƃ |ƻaDlqf9 r p>|}v/9.q9,TFbϦUSjjiӴ.ɟ;'\S!m\TTHS*^C+"ь:՚n(}:3;#@q.̡8cqROS6M{؟MBeKsy%eH-}(ō4FѨFc{tj /&X4"Z %Hiy>s|N=&kCkG5^*s0}9K a6C t4d8ZB3zxlwTh`,OC͋yK!{xZұp%ދAaX3Q18͂b%5 8:N\,ˆLIifC"'"0oJy})h,kpoqm%{|ngq M^Dul8O{B:f#hZ<0W0ǞUu/'Wz'5 2'HzPNZ&VHh@k B#9z*F(;m:I`<{Z}BI%НTǜ8ʈ~ܟN"6|i%Qv 6r榵 :q67p\_lW|-xT~DdB"OzL>^xZ#I7euWC.GzẮO& ߕІldvEk@SA!nϚvL3 iM&Z^W)R RTdO׾rs޳"7PQ3d8 }/hKHB*3/=. stL'hGFcqrA 9]ƽYB{doKm?6NAE\ wG{1k4Kb81ywӸ "h%3wgs.@z5%l8Ƹ0n/ ]0ຊ˺Jۢ:ޖt1u\4"0ˑx y9>ȄY}gQ| IDATGޣxIW5EwV6| Fr)? خ"]2ϒ^'䇩;g0<"Xđ?7\rEyumMH^|yZra[[Dk,a,5 +St "w {ǜ ~UFI`ꗍ{<^۟eǓf崲 +WG@EIWEdaW(|"qӓ}  ^G{v-)KHexdA2Z(ֵZs`+-Ty3Rr%ݢ^ϐ17.DqMNiR$iB塤7^=E٬4Zko^SۄxOD+QyON)%)sdbNfGz7_8`h8*4Ř-b]&׎9ҟuZGj{%IrHS2-^ncӞ.twe0j#x;#%UT?us*P-ٔf\gDBo%,du6OX6)9RY Zy2kc<_ UxZ#Z)? IfĄ-Y4mvsx;^wXD7H ̤_Q~+a~YVO*:ʌ {'1cп-^ hZ]YߵhSNIirrr696#L`y>  ?7(ywr,Dwpͽۊ ߧ^_뵙Iw9GVp#!Z]|aD]AD`%0 ?fx؉D~}e.尢 Z/{QHH~Op?kjߤڲAb V)I7 SY:!B(yXn߼^~;*=iy8?(Qa=a̞vh>gB⅑&P<)ޞUgVbWImD[#/:Jn , G7L[sL)qǝ&Μ߬7~JVͣ_X8XH"l nhȍ*u;=y/fsNK͆ roKR(b0'LlLϊɤV V_l6dG%ˆ|zavdWdٱ~ C.z]n$S\I$nhDUJ%HF#r/Q-?ΩXZkA4Nϩdz5hiȩg[s)74UlcpaXtXiJy0^Yo' NԞ~gKc4yIN9f̥|FgdLRT6e1Cqcy]!AIG uBfA )QO ՚[K 2r_;te`XC6[S6ϦŶgCi5()羞1ϕ݊,xWW4L-=+!).gPKͽ'cϩE1zrqy@kx+u嬸X#r}u~U2ǧ~9y )i[Yq b&qz }LD|([WyC? [}ܷ:op/X=;S>2=<$uǀaޠ16s?}~%K~ Q{n7O|YȽΘJ'|Hrj9 !'D/@^p\p_#"_ 0Ί=Bm?4 sSY&ZčkEiƮ>'̻7SuYJ|,:9-'-=#֪<&Ԑ\V,bLvqϙMbCLwYr$iK=H/+i fbB|F 1q_!L& m4/x fMf vr 0ãbjf*8 <*%I){-]Uݬ!n1g\fn4:T6d +ü3kZe2E yV^ @ePlf^`fP hSQ{qk'>hQ>lⲠ;I=F2R@ߣ*Q` '?#2Ɣj/Y+_'<\8=3`\!aD'#)Ni;%9m:X9^/χ5_㺕8`'k gX9+,R eMq mBޡ9ci6էK[R'4z4~gpN\zD G-Ήdi5@l,D(+(mPLfA%,;Vf'Qut _VU+RQRk R gE MEu"ˢ}46' °FsP( ɪ1,܃4315wl4kKFwY@ js숼㰺t9T,/ZG)>ڔZ3*7IoIe'j,:7!lӸ~ Y2yXGO?:JP,Sz܊H]ƻ-^S%g9 u~6\1=HC.W.-Ydi A ņ&a_,FFrJ /`ٜاg5^ugbSʭQ<]JZ Y~zAa7 pk3ߎ88#"HdWyV>o7o2`uzo^lao_ST8sk3ܢ@垭ׄ)qeoG#;FC(It(82NMIs>bj( ѩ E%FnA0uN FOeǵRp>g\G)Jz!d5 ̉Sg(\ˢ8{uk8%kHNKȸG-d.-h͎h:'>N0hp 3$³`RA?JK5 RH ~u|)hNC<25č?EnGcK%p=}N>ˢggd]{QQ7N:[ʷi\) /w7Mz{k-s";Ո6HzU)c-$ט~F%XDT{i/I^9o"UKdAZqS 4[zw`)\N\7fA]kȈ’Qswo=,фkWQXPZzr,M/REgju]cQnz^s[悶axsO|o/{}m#TxQAHH'+7Hs/̓ -cRP}ˢ}' ?)I+lv0'6#<5b"fp@sYD~ A}d6X ?l,b`~S*zؑOtᄌkd> xE% Ô|j-_ݏ_K孫Y4'yuROS(y=<6tNL=M f+ !聣F6ݕ*ǔH.(kFv},|K|^m]#2#Sh :3-`ieQoT} {G6ܯJj#LM4u|\"] ?_ ƥ9)|(s,Ş ާl=o* Xo@)9th@wxFu8NDan<{К#O0[|_ޠ)[2ku< :. h"ERf@)gsXt5|g>hM0$դ\7"z+|Ҙ}.9$~F|unSDl+Sa^Ÿ>~<|YYָwUTT/Q8 XX>H»uTA5SwWWDd&ljzS΀l|^†^2pL_VX!u08!x<*$TG?YPi}W cCX?L8T7Ĝ`LwHy)ZwPgI1(å A12c9zq/| *u]d2=ݏ#&@92[!/cWM,ig Mϊ=.L~G_7+ցMzhF|lӦpiXE Df:+G):sb;g˱Ga+,+;$勷 *rH}! T@ٴ6YnI1#Nll-;}咾_󀮤+s, bd&CPE ey0lϫw\|5ۖW!R SE= p v4ЭMb@u;ƀ\^2Sa|jU\xx<{d PNjc"x_Q#/pN@L>uqPt0|J9u|hc%c!f Ubos6Vs*7Z? #eUϡ)N/B6?'z8LxSJwe n>KA667hr@KQp#5^Q?H0 `ShǤ2{( N$S b{pTQZ':6xQN%8 Ȭ@G2gsek~mzO.הx G*VzQPnײM 붩²m^;ȦR f\ Rk]$vmɞzDO𓅟oMM9-مi ӏ$_.oc)gx?Ga)z\gg/JJ)P3)B'YiQZ?N]#Da7_`EoA);ݾ~MIqI7`ZDl3wYMse}K)ϏޢG|;>-&2BQ';Y **'~!*+6)X7 O@n~p/5D)iξv/pCsHs+_ hsUIM n=:þ9EH0H+G2遥tEd+('9$Be A s=JZ%qzPbAz1 uL i iW{ʛ >nn b] ACt0 X##I`cH Y`)ׯ&j!)qx)sM۔2hOK0^:P]=tjQ\fXY~O1 fP dƪfou \%n{h0z'﷫0:)9W%3!>Aj ˘`OL3 D8?_A8@5čTa14Z_  ɭ1.6yZ紒GNc{x4&Ҽ^̌.! p器9 h1|4{ȴBy/ը[WDi7ue.^<;en T Z\y"\(?ɌY⋾d*j-ȸ6} у8,!2lϸS:$ĄO:[ܜ IDATHm}}ޙx5HXRnbM9S&ZDq;]e){T[ƆMF%U)Ԓ~DO, |{sR]k6aO͢/pڅv=~C'Z1^]6f0A Y(346(S %6 %<,2#hSItNLG&o=2%yLfaS]qsR:dfwgJIwQkW{RM>ݣ(%,a;hu(oH/!{4P69Atn 6I"F [\ɻwWw1iU$fd4pRni}/i ՟I;Vy_ocy&/6[N% wAd!s~cO-W|5xA6qA e5oomM#"oE/fwU6madP_5)3}fh9RRIc3+et ?ؘ_,苈NI* &.*&͇8 hFVmz}-d2) PJJҗKD[ `8a'G6TF@NJ1o 6.AĔeIOΩF鷑;)]]DhHzFAp5$#b,4`vrbz_6XqP aIo,2&uA'E}PM;gΧDI`>Ƚ JE7Dc|"8evVp]6A*H8?~mpR+5+^W_k^$YDѠ/S&382={.hh0ښO U~%$RS>.ctY JMDY9Jhd-$G520d-qNE2zL))S6%QCA[ ZaAEdFO 5Ɉ!x'p%jp4h3~,eO|5k-Lq-__ZD J,^ S.efwLHWd?͐0؋noJǢ&wk=rO"b!JEɆyH/6(q,Nf . 2^Z&ԧDq/ 78Yol=ffM …(.sۦcYȎ܇W1:޲B& XoRzg3(AAy_Z+hz])_Gh>}z(Ed@\X3f}3M~ +$ Z%k"p!!m9%aߐ} E>s?5F- )7%3uyfRަi }3! lSDLo(NriT=N3DcyG|I I6r]1faw+eΨLωcRgUz.q3-l{h[n"lդO(QxpNǔ^ E}|ς  (Ω%?T.)͕F~F[TYju^YfSk@X2'D+ht3! cvm߁D_|0#]9_˄6 XMY^Pf^nc,|s3rlhuo \SB̉PZrXeP%&\c]98g4$mw&0UxJ%dFcRKU 5C&8,5zъ"c‘8HK$ÔwzR´ 2["6eyaKɔ)XT&ro%1?*~Xy3{cʔ?}pZu 8qȐpE[-zZN>7W#) pPzMo*gEg  -?ZLC[ݽ]hXWGJl7<@3x8z/47Gp2)"yTfl.Ս! J·g氦sl`-Nc2 \%<||8tD E&ѼՕ͝"SWg&f3 Jop:ā5w_]BP,J@A \477A}Tޣ\£'ywor_giQPgX܍N y'}nnCo- 1nn^RR-`%YP 塳h2 LKhlk"@;zH@i۽Oޡ !Pe4JATU4"AYi¢[ uFdj]pic|#+TGq@vTt-p$K԰(7$s{]SDpEljmҔy+dIoi J]th M$7 ؂T'P2PJ@:⺮hD;Γ+pxٰ9\< ݊CNJzחD*f!ezK(-ee9#~fȏ?ud> ~2\Qӎ/qE[1_q c $ڧi[IY98 kqJSj6M43|¶boA:Ftu̟6?-M_70:Au/9Qk# nAA>`a97 fߠ@cmA7~߽VıI͂9 u@Fٌ Nvs}51B.j6PY1/ a6c5 E:f7(-5u 1L 6#^@ـ,&Z{|T>BtG(`GtAU )?Y3br&l˲y L01}Ӷp]BV)BF 7 UloI%mAwG1.#~L"@k(<#duJ`ZCp ޚUBUEAIrBW.vy0wD!Ŏ~A9NZϱ­q̏uBh^T 5=`AkrZ~񩼬ρxo_پu@ᕞE/N gԝʉ}"#(Pw]}N䖅(,k+CRu}{qD}<>X,ׂ<xLᅤZY J7|^OظbbZ -'J=Pq6mx?$kw!>{mJݻxuGo,v}O5,*/ m޻) YAsc0skAj۲r͑ J.8aQjLp:܁j]2p0 >?81=LO#}CkDo3Pt˥skT0WOM^fh#U8-Qݶ=DQX"=>=ܗlr #])ݾO6Ea79m,$^f@zIiܦNp` K6MonEp^J|eW0*de<<x7M+[{ܚ.NRYOk[VV  H{/8ѓMAہT{n@q]Ch逾`_`apAg(_ aNj_^dn >c` y{s8/^ᐽfߨ5w[cՂ繚,хR%ͩC>>O|-ƒ6>^RMH,E^#7NqI0 @6ᭈ6zGfm9W11gc  foS>UqׇR!8q 5*4_wxp ƀgkreF7M'ȇ)S<4 }R]r¿CHQR!l7i̝҈1;Jy3 pJr%#^fⴗ2]Q;2?B95+ÃӇa>+ΆBN\[Fl/.R kgé@'F\>Og?|BO+ :e7\/Q1MA(}A\1#FQ7%O;)P y'飯'8%k723"DgEsf sS#4+,HNKNN9\gԳX:V|zPaQϓʡ!ӎ1,(,'&@ uRvZgl}{ ,Bɲbl zy(@U-(aZ !Bz /+ΚzKH߿H! +ď3% . 3uZ2wr*3g3@ZfnLQ$Ph}3qS>.G}fkFQify p:bׂbM1jƝ/r8"{6'͔T6xECD?q2)-}yzlTrƤ0dDٔ^s[N/ِY[[P(̴PB. 5 RТXY#g+YdokLq*=<ۤd7b3_)hRjbs;ϿE{^X"Ia_~dߥvN hı z+ULb;fE>]#GKj6%qarRvݩcMo$sL'%ŷk~41K^,>Ԝ() %ߑYmw>]gC.5doSگD:zpkQAK(1^0/ Uٖ(>BB>Qjlϱnro"bșY|~n)7i1yMOZU#pH}KCb=sI6$p%Dˀr" /3+(=eXy7 2R0q\GtdC_ؽ+\9mpVqX|A0KH->iLDCjq٭>x1!8F3| z|u5O?3y*P10:L{ox]P Ei@{1ݙqT8P08(ԅQ%W, j"S.zE7S?x(ou)8*ƛ&U(gJAo|VSB>[TP=b}ss ZkYvb1-Upl@~<(>a%3GoK _Ob| ]k}Zu/i/ʩے8*% Wg,FAEY]̂!oQY)9Jz|#_2*Bh'NOܯ}#"32̙3Z'@xSڜ*m}7Bk/X0e% MAUUxz )b!u}Mc0?[Qzs9n8ʱTC3Bv$YxA $Q*3,=5#>'bh^6e1e7_`U1+(=zi0AjN ( ԭ15GUTY춄^,s,bPwH-Cޒ/anl"bn΂:y# _} e ƾGK;،~5B~|GZd/5F6vDևPb[><zOhA7N5}ßѯGVq{Ux_2a]2Fqe#s3nT3'ǣ0ZHV>/> g2aW.R R\ՈC"00C@ W窴% T嚓1](Q`^qx> #M}SU gQ1֡rLxk"hdc DM:4(l{"`6)|8Q'~1d,?)=3 yѯ1 ؐώ6L U+n1 K ~#/1ŰwL.:,bZDlr VSNG}`H4}@iAS9s羭+וeQ3^OtZt|`b"l]0?#f`2OREL3TdM. N͟gW Qxes*+Frلx?nQ#ɠp998fي8ঐKk(H::ljK4Tdq`V R<(=-x(^ʴ98PLZ(L;1$?t61LbOSΕL^R-@ U%wR,/U֖ۡ~GS>u?dR ہ'ni~G=hl^ϊ5Y#K'Yw9qN&2>{mi|=~_$Ţ@ ;\BVUd(3x2u[PqJzLfaɢ!3b,Ft}zˣSF,EN ^27q/a xv36G4E m|~BpsxiDn6"y|< q:c6D^EjHFM[::6zΠzwਕ"e, ag,4>?Sʂ7cM,%.8#(ȘSl~S1}\(Z͢#UXo \,,^A r*(>)!s5s.heý07(inr $"BYvЈSI5[5HrRm3ڊ> X;DjN)3#~#N(#M=E?'`EoOT iE,y>865,<y@Z_"gƸsIENDB`ntfy-2.11.0/.github/images/screenshot-phone-detail.jpg000066400000000000000000007017501462047176100226300ustar00rootroot00000000000000JFIF(ICC_PROFILEmntrRGB XYZ acsp- desctrXYZdgXYZxbXYZrTRC(gTRC(bTRC(wtptcprt\z fw:.15{kOb1^f \+][nq_|bi&"Yw"|{W/r6LoT6jղ:XE!US4cg!ӏ+em4@ qT|.2L|t=#ڝ9uY򼾖>mmlů5yB]^q;㌳ RQ0e=vᄔdUGjt'I壶ni2j.q,CgBZ8ܧj:[l$"} ICA~buAYc-ym?F"au!}xt~v=gtf)kOobkw񏡃8^x-]}^8Zzg,y=gqesDǖ/Z^yS^'j2VMI8L29/(TuTQ>H$!Θ5lO8ѱc;Q&-fp \yb:'lH9c$xq'+mþj"$J!^a}Uv_wxUhy*)*E8ߘnVk mGd(:[g8h^IߢY?I|GM.yHŎ^6>;{{O}C)iz89rNb|,-_g|tVx k%$)fu̵Ulo$I,\%RMB0UϒH|_Ocڟ?քi~W}뮛)v ͪY=}8ɥӃxm|>џ Dx|t(wII^n5()ǣ\r*%c?<*)r'l|xW"yqE%|׵Zo5-+$YpD6j!ս+Er:ltP:ֺgwp¡Ki#3v1$NA<%5|ECfYKa%MǪ&[ kyMvqXy'>^^SݍW9u!xpg79 +-mҘqū9refmzN9@F篓S(HErN E;H #;|4QeYUHQ:8[[zWNגPҒp(vYF4w^\+̛lEeR)f)E-#^^RGyûB\1QFQpɹYO]Xfdb`&&HbT=  bcLwv=WP,;%-u߇!Xˋl;ާKck+VrTQl-uL V^R!T2hDz!ɒ?. .t ^TV"v(T1Æmߢɔ3v|`ŗz{s,GO@/L6k^#v(:Ģm|kh.rT. $UN{xn/\kh;fJEN5hi0nM2'LSC٫L>uZcxϴf";DM{=;wr<;m~K~` '?*JtC%߽:(Ʋn؊+'(l #tUZcA :]<( :u?{v6SBY=qLPY&1N'q=3/p{jo5{Vkk#ʳ1:/O%hr;r\)pN%56˽yڙx{Lcb& 7O_?T5Wius+lyOa4EH7?v (甦^1Ջen%pU]K*)60b(b2Sc81 t/NEY+lDIb$H32SJ)27~>Uw I$=ǒk5-޶DżQ{iW7\!1:4r6`ۭ7b;ͫ14)נ/4e4Md[t*<#23)Y%ݫrS pʨf܊x QUbIGȨ=וGz(/Jh[E;*'naF9ǠC{B-u6bt܊M3džڷ#+KXN{~w1P~^B-3qbre#^ LqRo:EN8aepYmɒ6MClĤ^Rz&h&Npcg4MhE|3ڵv;Hi\ƷommoOm{gTɹW69k^,c,8uV1eؚ!†s0䅭Jbr$5ڲe~\[Ra\4Yf7_9@&H;O:4in:tdlnVp*h)̢,I&SC!rlsy aHAgd;fo-oܵns2 |t1S29.3w?MgZ6EƸWOqtpt1qmSG `RJb2L5xxWE|QyhVi򈉘V?Mkܶ>"^>J{>CcswJ~(MoXZژ|cxt>%%嫎8x=oEe/3 %ҋpd3;eάAhMpK+NRѼR5C|ԤJ3i>3yr1uY`Oi{ڻٶrWK,ymţbBDOK08r"KF 6&#H(lԩ&7}uOM b#&:^k1lw^⧫vDDv){z]3)ZgCn6xKcl4|db"o /fԺa;&շESfdɈt˗I&Mo,v&uVP.s7G~}S\"HzЧW%.Nl&\0cLl =r6_CɌRֶ9.3(&LLHc9vrS39]]Nd,"ԛX6NQZBA5YurQB\#bqmx;DGzwrq]'gSZovub)[Sbmk־,ulϬ^ }@(ko4 뀼[ˎkWmUw152tv66rɗ tR˖~2աZ{=@}4*S%sI~ rJCQ#6SS/^'9!'/q9{&63La'W5"&-5'D3?O?Oo>N;Wvݾ,lϊL8R`Vcf"Lx:gJ*De#ÞU riW*A3)aB&O.+L&i=?~ktUlngnruLl~s Yϊkz[4Ge1sk>:BWSibmNf}j'ӈ拤O̓-;k< M>XTfZLtE|GrDTMWh5o"H;t=p6Z)HYݝQ[E7~yO'*Yrx"ٌT?Wm5ou~)Q便d:218>nѓ&ӕ1SEQUNl11;`C=i-;J1˴Q/춆#/f:=c'Ӣbsp|aMg"/; 9_Y2ZW$SVR, kfnOg3/v6+X;;wz=87t4# 2ڹkLxuzdkziu۵W}OWaidu'3HmY[?re!wu>|dMC&YV,鬶\̶ccoVM݆R^˔Đ;L;Ecg3" f{7[D69mgqũ{b'i/?PquݲESK޶ȳ.${YmX9|/$HQ#5"Ȯ|=%0c(l61۬vG2KvAu1Y:j!b8wn-hr,ebR:b\SOq9eDg})bFJHai Z޶юkyDӼsL1rHtf:k䫵9#6Mlw2c?N|thץqb+@$40e4Ed۫:~NpI'sIM$SvhŢ+zvY5"m6_\-Rm+rID)I2ptZ1h^ݣuNȱ=ec?hs'pVT W8AG$TTiSzgTk`Is/fCcA͚1cǖX?V=?f7< J9bϴ;SjפZ|y)kҙ!ϛ"\c-}C^`UuNeqR]#-ptY]5"(&pAqYx g-DyxgD=.w:p[vZ{Zئ˷WGsJֻL%qNZ-rRscsc;1|ys0;ӈ?(v=]Q elؓfZ ED[3lgΤLJԦhC)% 8aW&ضxWi!'lt,EnGJJqNSnܜ7'Gh4eǹ1~tHPrUrTF4\<4Z|(Ŋ+-oR"k<6O~:Kܜ^TN}qg18?dͽmYv/LRm࿮f,jXf9LD4etĕtΒ6IJ2a,c.p_s[u-^(vO/cCB9h*PMɻw`HɏWW>!;;r9Ool̤M {"aMvۺ["SK˩ +!Y~8m^]4Jwf)E+~&^z%n;O}}e1qg-kͯǏiX ,^:7ϓI9/Ưÿ{>M'> ,c4Wk^;^3^f-۷yxnoὗg_!k3cΕ"[4lb/"|$XǦ k8 (R:Lȫ[aK92iifk$'*U_e=1gK5u \a-yZ9|ՠĮY,RkeN&993̷#X>?y:vY$23]_ygQ8rj*c=mg&{LV{|w>s]q?ox'ɚvi|'8}NJNMls1>ZW%b8o0WN֛_]Zhg:9pђ:NIV(ɫ\ɴoNbiMVg))'6 &fÇβh%ܫܒ':ה< }ze-R352nh |as1Mc㰡d|лmksDIZU).a24r3*ئ ŧ=[u<$!9MB-eNj^okjRv3cǜQ?^9-ܵN4wښZ"]Z٩ڸާ "5tq:GqgNΫ~Q-) FK({r|`=$u%^+ov>VuHDݷk"F-1@d#dc%ݠQzbؿxi9jɉ.. <]& <.duhŠ/TWpq,{O-,;ͣQߴv.o5uԮƟҘrx㧪Պwy~>—[vν4FdTh9va|lld[fq/&ڤSu8pe2lYm]Sndlv7i+*ei%NB:xFͰRhІéY[F)8.K7v>}{jOmbf9,lGc $7!};BQG [()ⴞzmر X<,T_&fNEVS)F(Rt̹61cciZootEk]#~xeඳ_=[{~mw{{S;z6ɋ\Xga+gJGYRQkTͅvuYp&%]ˤF qY+'[W(N2S6W8ǘF7oS&~nБSvL]1n=@.vmOZXl9'%)YG÷e]ucv;R)KGxDq/+HX lHX8͙Ai5)J劉 !!e\ٵi:$e12Z'omi&+k~˛-6[+Ke82ly,uSm.(immڏU~E^~rB}w;R$\K陜HIYS9zFƊDnsj g`ѼqT_4B6𹞇r;1j'2Q#]u\fh4fenX{16U%!Wm➼xXe! "wfGhް+_h'h TgZ"keZeb-#s103hJ4k6rXم[:e334oYgD?ʬ)~^pB\|Vi cWW[9Ze8KbKe׽# oz[$.VXQ V2pj4q]۹%pHo-FJV3w$ݒ5*TE/)Ό>/ڿiMGٗiv[Y'ͣd6MWvLި*f:lC΁leHlg$;#LM战XQ@Hs^SvIj }`-{F-V&$NE:k^;h6(EynErQun+8Y}L[OH.ҕVM=a't®\9u=U 6 V[ŻmDϗ<ì6._ͿcBj_&ަKeǒo90'Yͫ7F՚R:6&W+PH*tj9 01veY7M ꫢi.B,FGooi-j߭';a|nrsR$h H"DI4ˎ 4JLGf\1ܦ8]Tu6;R+H^)HD+a7Lk;ңn[{^ζ- %?!_D8xfQ %$Wz5$0߮vʠrc*T]z TD '9'gL9KEu^B}$"kE3Rl$G]l]~DzqR˱$8ie圵ZŖ4o?sM^-]-.̉;Rb31R=ϴGitܯܦ ڹy,mL֤f㹞.&f–u}af{vdVo]֐6l5[)_h{W'YoE2ۗߪhiӶx{ZkA!(ph [݆&= N>M]G.|~΂ƼdҚzVժ&–rffD#춎ῦdԪëw5'W\V<0ɨ*١T4*mvDER <6Vּ-7DD#&շOy&>WCO?!py?[eϱ->|VM5v4o{NzΗjaͱ2r~;WoZ;?/nbl -0 zC8G&dSҡ)7=Ilr5[c#oV,mKN4q DuY}*&+)yxS%fZ)o7JUʦň;f,g?]1ɴU$KRlV6tQ4JxT_wv{sX#.WkSg'2n^6'ӭsV5-oYyσh,\D֨?>jkK>O5[hsډsU@fn)gIM(2yl.7IRͧbG# {/cFZ5Uͣ*Jn Xxῶ%yQfH{%QLfmg ٘RHneU'nJDʕL)'x ~)ҜRCH5T1;ĒYӕ_ %xS. P[Uet}fnX [y,0vB⾻u%ߘNZu 1xXc☛cv7zZ}ݧlWcq9o`7?k5IzΆǃ~k=L^c M|⶯ S \G+jP.E0Ğ?[m\k:?,КP9;yjui]LZ`ራƎA\6dURH !M ƶ>kɷ˧M~w-qZՋZi3e.[2y&ϑt֋fe]`wolqW'Iz|)垱4UmJPGR%}mx\ch;`:Pv}zԽ)S? xL6:>9NkZާ#cJroWݶ8<1Y:N?!e7$LUpQ+>%̳nmZk))9TcwZل|F m 2щM: dHMaf!'ŗe$teUˬ"J^lӚ鼸K3K$Ň_wQ4mŐb O9DrDK O ݎ◻Cm avڼ{]zIJ;j4STZ:P3lZUEK9I/4b350-rrҼɃ9!US1pr%61\E8-&њ1;LS{'_=x})W6==x6 鯱n^4Ŗkɓ f9kYR2SJf .Z|Pܼߥ@O4ȵۙzTZq}TYyz|k$ԒZ:R18dBY:I&FFcU5--S" #y㵲81~ȆhW85mVQ02RᙖmcM|C]] _])"N:;' K`;3m6Թ/zߓ}+_;No_9}=a mɦglr[CPKfYWY5#Y$4d+ru2i/r`b[&*~:@F iTX ua#QM۾QvQ)F3Mq<䬔>޷SNyO1w1Is|ͱjbեk޶Ó[-7o[OV'G#j`-5Ł>:gWE[sL(Je-EiW8kJɺ6U]o:A|f5T`-+uH ?cR<^6̑cΊo Hr<3 j"ULC.e?sN=U87WQlHy :&- {èwRH$اcvm>v'outy>|]AGc0sڜV-`^Kv8)iV1%<7ֺ0L(܃!ݽ6U] 9^TjX&YUM}q!rwQB®]B)~."%9I9)3a?|A6mU×+(DE3BdlWv81>鏌OO{>38]Ns3]L]L[-_\v,ݺ۷lu;qJR6QTJrqЎjeC.bQ3sX\ Rc)Txjq̚_-X%$3e&&Ql+dz=ڧrAi7豿ƷŶ`U݋0!AҴpxZk#38UeM|w-of~Gz?Wݧz[nݧpϊUf.*a 1t]w97ɺe9+>͡l5Y'̧hގ+&7\'5>i u/7u˴f&e'}T>pHV?1T>pHV?W5lDG(}>r7'I=8+hmꭘ3۶DL"O}zW۹N tO}tF[_e|3l)R-&_vME~._?sH"i&B÷nF-]۴nɩnɷWt:jo_7˗O>'yHIpۃыDWzvw8ӖJ-FZj"VBDÖpEUT:lS9Iv'h+xXخ ;±t}z?'px[y>Niޘi=(_<~uYٻR+\'| ֲOg@?KLmT_5f +3^?tT1U٬g'he-Y2F(zǏb-|0TLǢ!r81M81sߌ;헯%RwF|11t111 {4˒+۾Hxfbi]ѯ+)s%Fug~J{[ϋg4"vtF:%c%-8Ѡ-jun kDlL\섽6=wK\;xSA2Eq[moCl* ł];JF_P瞸=l*!wF)dD-HͽGLmF%6mYe9ij/ !~S'N NNEuũ{KO_{xe{/vGo9v:7Wtecх.8YyKbfXt2:Y9lٿM<ǏilNؽRmszTk`ץ5* ΛŲK% Vw+y f5#uM;K*DcTV~q.ZXdz#qp2ϚKR8p)Y$UTB,i9\]D?56iI^6xmK&b5WI: 'u| 6;VqW}dOko[LvNG٦|]U]Jƞbff6pzՙ_S8eGJh΅XH7Z UsojvYv&.ML~bxpժBwL^w/?SEt*f \pɢwcb͑T7v;ݎwvzدwzjtFN螡᯿n:7s+33K==_b"޷{:=u֜DNf^ c7#g({"uS>[I%pCllgshd}lț]]PANBOhDykL8)0R?s9۴|~t&.˚9OSN+ܙ=g޳#Lt|XY3іezh_.앉 &ID 2b)I G+5pIUɼ63//cmI,{>vD6ڧn-[8tZ/n(2MrIK&Tpw;߷oe-Fo/-""2[[͢""'?ld4|K1ұOZIF3T;a t3xtUrI6)˜;l6ʩ˝dMdIDc%@4ryg1;j 311?qmbŗ_|X3qLY11_[dŭ|h|6/O7M{}_<^zf^7]5xO"{OxL{N-=gϛ|VK2vrx-_+;wGx.AoW sXnΤWsBW:|3g-4q(]zj9.0bw g*f2m)3otsX&5k?Gr tŇ0bŻ+ҔG"!/yPOtmq7pFubEċVˆvIuG9M[z*.?t ri>ֶ5 )ΌNqs-a',JL29_s)P {v״yv=v[Gٝپ?U}b"q/[Dx&^S.sfmd"^"Y{ 5lY)ej"9j͗"*fUcɓJe{ˎɏ&;Z1ޓzZ-[Vbk1 ciVo`\i%O]f;sJeپ3Fr*R13r7D7?]O?Hk=ֳ;Gx(GyGr eG{ 䜹oce.YH-337ͦf{˥?o0ʻh֑2rrSrR332/%;v ;}#"ڊzUrەUpª,P6b#DG6w"ڮ9lDD#-169sJ'Mr;pCV&Qmof$c2kwJle[M*f9MMYeX%'e\܃Yi'jyȿYwݏQSclff+XDD{ݞGŇxgk>|X#nq彩;yvV;y{_|qqnZn /?H{ҋUp]1Y"L&ql|BC+8upU]ebN*|rccrcg9sZjq+WDwh1lOYu/_w6cig\tɒ'c_5o\8b-ڱ=KDcs <|?'}eI_/SsW$s|xM5#&.Ȓbepj`\!:aA&lSӮ!?pTʙ2I%4sd!qg&`*,xf6=f{{>{qa9 bӾ\z[Dk`o\Xf/ݼ\k ִhn8W+;Σ[EuiiCYniTO! NbAxN=IhK-_PQ˂E]oyǔϺ'f{N/pcǚ=lY&ώ)LQiŵ%m1j-x}%-F4 ;7W#"MfGm{@*iIx%nޜ[bS=f}:-[OޛtDtY:Rc`ƗhݼU|[d-:S9m籒}.ܒXLPS_iwMfX3f#n_t#SJ}I[m<[͏ζ,vï.{aM)9"}4 6y9oy6sgk( 4ۢZ=qp!d# 3]tݣɸFOζi*ua^]׷4: S+² dl5Gg pXFSW;8{yGno.]ً ]mZ4Nzfڶ={nbǷ}ZƽM/րV;'iP&md;kQIKZ +I7z|HeoG%*iKzu>qRߩWByD?hdk&k*Y  Qd?0 6c,QYh1=;wg&;]+Md5vczcN]LVrD[:$Q2-yU6RW(ìTO9U?sr8?L˄FiNХKc*Ny7+qfk|bS8xejǿc>L~ezk-;\钖ےzOnV5LW>A 3efn29pP08|\$GTfTE٦N/$+$L4Sn363=D}s>Si9h֦ϳզ=e2f0LCerD R)4~=&&-LD=\1 lj9˃&U>)S~rׄ˭jNJ}wy=ÉK~$&l6e1ro8Xc_+:eR;V~gwx;OϿH3|6>?Ƀ.-j5<ǥXf3kLmWhնvݲd]eMf9 ?Տά]$fd-)Zoa@ưMU[fzܬw&3$7I4r΢JSK;7E&;ʱǟn:x}k_6/\[Z}ᵽ\+3i nFxUL'pU o,)T;99Jsԯmj&99Y>Հ $tp!y[ij=&UPzXI ,l2tm6*½yq/%T2vH$)kHC3i5ɓ^ՏG?Z/KF8+>;e]irSnkVtbұZR3_$5\4"ymےb<@_X0~&78F ,(whb*))O9iLq1hɒ&|'Ov?ƞOmmp9(\lvE91՞g[;ǧUvHsɄ#MM=aѣWoЍbroݝAȹk^,qkZmk^ַnk{|7Rdqh|Ng|zQxH-+dv6WLKN~*XMl=[b!8W霛t]PmPT[8kgECaka@I8-SZ.‡#dѦKɒf}7I69jp_Nt*""ٲv[&|ɗ%mkOrd߇W)rNjK~=㽕tݓ;eܮr& r&6;͌|b+OW  u^ntj|EHdn!۷0pUEUoQ0lb WS:bmh3b^;v̈́+s^F|~N 7\~M7Ã?![cIٶJl&qbW{m1hOTSqqS,Umf5ehQ'ŷ%]jRy*=a՛-"V)3߷~b<#Gy{s|nsv1bűmbKǯL㵯96/kZm.KL*bR7n;jkiY{-CVڄdܷ#La^hZ&\rdG唥ƫDDLDDϾbSoZ0(դE]8$;x#\!dPLT>yr?~׋nU2]:r.9]uNuUTQCsyff+XDDzV}x0nmlկ[}ٱӴG9Jv9ԧ+ܸh1Ӑ2"1u8o 9h6]dLE E~sz_%mK֥zoKfh11jDx3[ouyk]ң`ZAHȧoGcq.^# NLkz|h: "$DǓ9bl/WjD d*E#ccmXVmXxE>1(NyX8v^!Sc&Nڦ9bLl}{0 @""' [̋(ƅ:IԄlU:HeܬX:&rlCɱc04m og]/)QW I5E&aII+ꥤس/f3(S@*JfլZՉDϺzy׷)OQLty>KŊgOӚ[\1)jHߵb'.Y*/¾ޚvs܎Q{b^GȪҶ)UJ.FF-%K'_x3{OR3QLH[dM2v Z^^o:\{OiJ׺KgQMZ;i lcC²u""XKǧ2(S,X͒otxOߴw~m}|-o\)k7ܼKaJJS$EZ+5i) J<A{Ce'iRvRflV]A`!WǰlS2$ r'Mf_gG~ݾ?K~[^W%JR}֔Lִ∭k3kLDDfS l΍|7Yֻas7{fZs1}uܔ,`I,՛'̽)ݹC]q^uz?jFzrBwG_\!%,)KhN3p$_T*Ehw(;֙m=b3tGo~>]ݪ[kC|nGb3g|,i`˵Xr^1F<mbKs(KSI(trPT&NC\z|9- W:+ԲqؗAiնqmEӏo%gy6)p#NW*!Vp2ąipZt 6]zbroø#fM/XY #$"&}::M(׹<(*UؖUE:jsyQ^0,y{Vն?)DDLD^=0z+N6?2ϣg.\YW\zǞjbh3f"h GQs.7"5vՁ_|va65 @l#O[Yݩ5vIb`ʧ]^roԴ ] Z@F5eڪ(%-ktI;39w,Wg2TNU|X#&#OyJcn^kN9Ǜfܔˇ&smJkW;Mc0G5=0^F!rziJn ϳaIg xR"؍UfoڵwXøwVLIGh#Cӝ9uW+F}նKMkleLJkv{S:_-KB Lȶ]%`NLf^Ƞ|)$-I%M3\#̢Y)9^$JNժgX+5!iD|gkwsszÈ{AlX}nJ_ɓ&\ŋ/%)Kxkkv,5o:Cd}SZǒaT¹.`peml^رc+K2} $lAUTy(Nl9i:4"թ䒅IJ+Hy^Y&m]:hy7b˿{LtNy~8pZmٝYo>< 2ޘ[&9_&cޱ ;6\T 6]x)EfG2SN"> zQ()rn'vT' @%):rDRV_|TI"'.3 /U7y1LS>^pRxoh) o"fkԝe[O_?#6c.?Jc\Z?DG{ׇm_bX!Kq.~`ŮUJ7Lx2^QL)p [U/9IHJs.2cUaDiψrogCGmAW-sXi TSulkiF6 -heI7M9cK4bT_S[SW^{vw|LGϿotDGhG=)1n 2N[K]>'Ol_>-z_>YxdBztm{qtⷖNҏXecpe9hVacPv_8HV]?lECZ^]4mYMLbBRY=b&jFOΉEısZZ1xf3=&}>S۷a;?h񛼧P{z.6#m|8oKؚ|/11? Sɣ~TE{: :?Z죊>$}zl,=_)밿xy?8꼭GM#`Vk8f[eG?clVe($r:'LΗ:ևV#PB)'Q|4̳:&1gy7LIa~@jڕm=hko g}Kk[׍4r)\6tuo=8ͭ<{#(kOi 펓3W fu Gi7$S]a4YLKZʼnL %qqo+n!-K>oaKFpE"*nMV`OjKI&Wq%;rb3Z-Jxv~13=c=A[]U~r:}7nɯf|80=1f{DN T˒xVp }3Y6xĺ)ɛ عe=v{#"deI?ĽkyTK%'0sף=ĂIB=:Lf-0Z6}Js%8e 5̜|d39ۮ;Z2cXϼ] 7K[ﱽ8_Sl^LlYÒ1Y܈+nu4}E~ԕ٘?Oa W&&,Y[A.K0lfƿ0~t\m˝oSNgggmHǸ]tدdɛ>9x%H0{!no=u\Ekh1۷iG诗's[s{:qmp؜i8Wk&Hi6Jv=aym9?iA5OSVe[:,lh=FUGdcضg&hE±ɯbt,xw=JFzhYw5eu%]pW,e"6A{ {.+>*E~l߿]˴{XosSsr7tkL8VLJ*R{ZDe[Yp<6 od7u,$6fqY;r˚2dI匫<'RI~kj}Iclu.j%ds66jTmJa^Y$W GHNALf<|N%u:»F#[vdcl$$qυD"FHEpc4x咱g˷idW;'Ggӛ٦Ɏ}'k,V_ 6 Ei:[E#6 Jó9Rc[jҧ"T ͊I7I!rRNN:O#Yᄛ #ܹfSɂ@N@u\ݤlvcXuD5pg q^b hF:xʄs!Us\ɼg?Q-c[#STUK :f<9CltGHU 6HGr g\18+zM&<b~]aK6xy>3'ɇgJa|z3U1o1cz7cdA`(4O&V9gíX^(Qr|:V=*oDvsc>f;$O^LMf&'|LLOvgv0Adͫ8&|-s3kZ3>L+uX܎~rb"=UQ^*D:zJBhjjʟ8.3$u7!c8)sQ{QCw?>Qk.?;q4s7nOȨ! ]W>#H??s?7zyjtoK}l5_OjY4݌--Q}8Ʃ+LHr}N%^Իwc܉5ʧuvf|zsl5ˋcW Njh~'!X-]#v 䬴D,?xԘ;q$fax[Zi{F_LV916o2U259YNfL!+,gqn%XHen4Q?. oYK NcV)&fdd ]Uʄ)3*&H@w8]Cxk_QIVݔw.f+HD^IVPslUXnÆd W*!/ R6͏/b#nLxΏӼGI^N_7oz?&~7>I<=u?`+dbkC1B8#44}lќ~wa,E1\(YCWFM4_X݋rd6\4j0y?'wWʖةEOH~gLj{&hQA^/wbBקԷZLYN-j^=֭&a|9ũ8gjx+*CkEU3HAHX l3fθ]"(V࠾ds2Uge:8Hc3tLL"&s1pѿ[ߜnG嵫?LGx|磙z(6pZOky|O}2aN)X8vk2jO1))3bͺ} ;P-yXt*۴Z-"feG3{2TfEg>cR?h?eT'$djd0SĬ*C<y[1Nuןx ,ʧ﯄nNi}Dd$|&38E_IJ;>^@`Q$Q8k0%oF[ՖoN-?6$M,ح}muDyw!4/)蓧sj9_⸞:Mح9R3_c%OzW1ŲJ@,GAY;=uI&mAڷEӢd%+MJiDZ0FQҸbGe41$;I tXP^qcf\vMcTM ̹U9Jy*Ff^ymĢ!龜(ZnqK(R-fԦ)lX׎*a8n6|%-xkGrww>vgO OC=E~K)kw1O9⧨[%k^':ECoMUbu#.rYMOJPE7 MוpE"Q<Xr|ZP~c:ʭ43F)Q3 ɲr',e͛0EEñlrdv֬͢O{DD;wX~}toV=;um<ɓlrϛ.F}خ]^pSQc^COMm/}Tߘ:%l;+eiqtaQplb홴M42y]umѿ}魥϶}u}?kD{VOi|\-}+\+/|{F8N??L|n]~WOZbσ,Œb afiz"ا#%w"zre7j~ЮJKL1K9_=IMf'De˥cac=S`S.S*:cSQ՚n1rqBYŏTvVE0R`6Y4k[~65iffOVA;-`\B)s2k * gzu7mGrvh;΢N%$l_U6YJŁ\8jFOr#k,]q=";=1ߴNj;tUz1زlsσS)ˋ.k ھ,~?nl1K&BdGI_)UQ?Y_1#cƑI"pc& mO$îfM~ԕ)ϘV4DEJ~4tq#4q+^= GʽXqXDNY2tU\\fl\8bIXkB9lh$\>M 5XrQ^inyϋDv߼v]3_'oP枏s;qhMqJ]f֜yi[['+YuS'zܤWE8J=="مbA#dk9fѧdB%Vs{+{Ta-.J1; > b^Y\ccdYXLZf؜Zٜe-=ͫ蛳۷fw__.m FәGõe#=llc8縉0VkI>)>/&}m-,Ull^&oH۴dw_ Dx;FaH Qum#]8k{ HҰKA-N$h&JR\f%1b1C`9s.{bJb38;@0m>;x1=#ە\6.K_^NZgbpVm;{1|18 {;gxn;n|>Zv: ejvqXo{*!g 2fVR#dǿL@ΜDɶMټ`I!fnPmnޥCUƧօ2n2%mbTf_\A-\i$ޖD1;wGyfҏ5<.|ٱƽgJv;dŎJLy;۶*LŁ@w\RwM~{ bߪT,C9σ9H9.֠ane+kӾ˚1J3.2ɒz9|v$js_4Mwbf<17XNK^S8p1-dܯmɯzvW\.gXvWV6oqf.MxM)qwp.̓ge.ާxI]rpc5~weZ'k.+#uL8CXn\- .Lg$O(Ե|u: Lt{4ծs1~IelE?d٤rm-)17/L]z|쾲D=nsuC|7)z>?dεvM+L|L1ś&kÆkVG Mj |o'E#&i9*ZʖLl9?~'xi][ݳLgu y)O⡛IC Q^ӬJ3Ôҏ~wN :h%톗ff+{b|Ǿ#xnGu+vNÏWc˹|[m{[zfj_Z1q[JZZwzZCo?W=&OWSJY={%..b3|ݤP1 J4jh$U%jf7ct - 6Z5ۥhטV瘕 W`!rzܾ`V\*f(IGԑTm|v\6"+3?:&#LO}y+뾠㺧s2{#X˛W&6ZZ;ս)3FjE&=dʛ:yIiw˾UVQ^QL筄$?X.k񓔺PtFb|gfzUAϨ+\kp^*. 4ͼXDLxg} GnW>_k9ϛͷWïxN|j{e: Ƌ}w_r;|*t۪my_H+ ԇlIdϤf+hwM#wT\Em1M ͮ"%kAÄ38WJJxM LɓKMb&;OOx>nW{4=CKc˳fxl3|[xp|[ꪖK]=6 M֭7h-B֕K%!tϗ>˓8^͋%2x݊ke˖il5o+dCv.U V rAf&l<=(9l&xU##T̮{Ŕ:q~8ǃ=ڐ^{.`ϵ,xhVޖ"-r-gJl& e+mb"gOYk鏥pm\&So}[Y60bάΝm/LN|[&k1 ^r]y `JAǬf❢6EgE'"庥 -OžfRQlغx,V^Y5䋐t[I H'yh+u6 y"=ζ~=ǟbcΏ{vs2 ֻ~;gڊxɎ1dJEˇ.;mjZmfq{ǣ~][Wq3#Q1y&D%]臞/EF eƪ ,u5TǙ棘-CLRy:pffʫr8"4:D¤Br 䖮vZ5%hH9U)|ej޵w//2ʸY1Q5$Dٱy<֟={yv1m}!zY<=|::^3.1am|i3N f1z_flWm[|M\z!ɕ6t:;X}`;xp+*ʾ ܮu *mbTiַtN-6ITv`1{67>Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯeជski?ogOWxhr[g&"xw\lZCEśM41Qs+T®Uv-Ն׽* 6ucr #Ǎʨ7 (l.('d soSs2)Zצ)MNԭF}2ys#&xR|%E{:jÓ&+t\/wI3)8~p\;n@p^9FhUb6lR흴|PS&rr&[ 2魕WK~Z@_蚭uwh]m!q;-&˜J.9ln65pwI~Wbkm9=ڬ ʕ׫zwHȻ: & X$YƺxijVDv1ԣGEG7Q훤\sd>_]>}=^IZŚIZ+bE"R$fa#ab'; Z`8A7Dk0Q|Iȹ<|TtU3*r+7s'GnTUvkCPm\7pcSɠ|hF1O1MWqȾA 1L^ɼmWI6,"wrv͐ME]S4!9R8(eѦb/ ȨjK\)ۚVK9b 䤎)gIiX|JQ?Hq[g+))EUk+z1b=ɷt̛7Ar?rde|ݷ8nܞ>%dlB%euKWo:e3gya^ sն٥~Qѵ ObҊ9X5vslRru`tS"/ 0]i]M1i^aHxQFnthF=(<`B@5.kFDknl :n)bC$eV|xτ#J{m-꪿OD %~SroG4pAj͋&çnܬb"ݳdQeTM$ubniح ǮBr*F=uJv法uy)#YRZV6+lnVFvJnǩUmE9wrm9A ³xEl\zie#I;l^EdY$n :]͛u8pAR.N*I&LdP)H\d1ߪ?g5>*MrT:AI$PUB#H[UgE.HW("Jl&)VL`>,7vs:|U;#e  B}ߑ(ө0r|eu\ݚP͟-,:dU9޽^=J_]>rf;jlHG[>ίCMZd9Ut!,c;ꦛI:" c: MƐYtr;[a$Օ]W _X󹪪ɳ\ u5j/e#'%Bc.&"ѲqroSEbd%^0U_}Be52L'D %6c𿓛ʾ`X.G2uӫvhD?61 d-L\F;%ۂDFqIY=Uevʢ+,*f,xLٮa6 [~Z TkUn 1q7!*ǘMG .uP9͜W1O"zxrݹSŖ1LJ1yy>"g 1(ܾ,xH 3_)WQڴ~ 35$D,,ybawcלQGLUZI=*ȩF! s 4v6BtH' uCM%t~&#{IM/NEmF<C[gd3;Jj zw˭m] a9&NVit"H69_;4vzAsV!GzL=Y\omITvF,bbige]4c4He8K[֐I^TutuM}Lv2r.~^3&O8|we[ҮO"i;'nxO8Q uq'yelsfX}~sNۻs'jj}'$(0OgҍL_ II(uN*">eT'aXͣ)}V^,*9Iq:UA՚xQ>։(pJR(hЛ6)eUL{l7h\&cww9g$ %4miCK5f28D"DGKK.D,q5+9D3Nc+-j#:ֻrAhfoYD!>udĴ*Fve9Icw:s[di6SA) hDZ3MxuVn>;X,jIʶXSts_q\lL5)z]YDmqE;y!ESk`Nk'"]9o:%~.!; ),LLr=YUeޙĢ2RlJ0Z)V2]/i xsLأ5 Ȋ)ǐnle#'JؐH,yduzp@5YkI;TeL*IV"ZD;7ܦ4E@^wp^zyeG $U4򪉤_ʜ1?sc!y>)}9'"tVjLn^Z&'Ka(NViH)\Ů2:B4UDXm g+Qͳįab9"2#=)%HxSq/ߛ3fpʧSܚss{~ϨS+3J~َV^rܨ;xHiHWBIjuXƨdxh1fOL괐'Abg#26>5#dGh3gLFnCgbz4,s9oU91L~R*#XW[ʆlǶkDV!_8iM֘J>S.x,U~fcVQ)ݙ2=;f.pqMXyZUvܕ\ՔnURi- Xv00I嶏nF&>Jxʫ*c:먢qÁdže;a$> |Z5DHYa-9™C%J?:Sǰ/R8,"6HȲaMbͱnћF馃f&("H! \N`=SA9{g831ߜ1].Vrf|]^kkrzb*!JWE"ng ݢY k &IdΒL5 92S9.s)Kg _.jlft#Ͱ3EDO1OoJXFc fd1ܙc`z;Ϥɂ,Z5_X"Spc+S5pj&9Q5uL+]R?P>= ֋ g]b6CX!CYg-wv;t zV1[_:CNBTga?upt*ͤteQ! r0 rqM G .|&C(sQkcƸO_#woX5q:S* ;s+t `ʅɽV:řz6,sd5U$CW8&0AlŏC ƽ# Mt?:ɜܬsg#bYlglcUUEmD 1LfVj&Zw!`li5Vho-8xSŊ[9PhuZ^rs%փԺ~+7QY$ХQFd3xͲ[$޶p 23*,T-ոKw;tq_\p*%׊LIw/eM`ŀqoP6M6?Ԣs}[% M4Ɖ3|fː##_E) %׊{/zOlIUn0+:wO!{'>Go3>@(.Zr]M{bM2 Yvm`)+-B."ar^\˖%Qh}J`զ7_Jz26Y(zFŢ᫰\RIYJ0.3Ms_ݡhVzQVIꅅ$500FzO 'f7[$]U]k__3M Z:-frݝk ȵ@]ʩ1DQSɱ#`L.N:n9<>rG ?`4]1~*xI8l%Y2(CǒRrpqftՊfFRVRF<>66=k;|j͛TUp©gT.w`[n֪% z^8WkG*ͳb61o'ˤc/%VQͯZG-eʆu-NIFMt֖D*UR;K3̑vIѓYl]|6}u/!I2OcMK5,F63[a)Wn8SIBZDR ?vYg|nͨ:_uڋ:m҄b&9'DeSTh5Fƹj6Pu5Vjz cӏYbGbmՠ&*B?+#╘q*:9ל ZTҫm ]W,I򳆁o1߄5E/v<^#!ۏG궼qSJfO,Zsaʡf:U#׍# [n t;{5yPNOm~qrس]IE$$e1C4BAiN6l"R zNcbU!z_u] Ɓ: skõ:[@5 ]!CD2Zy'1&؍Ď9Q;GK o 5"jR)6%qw=2 )٠u=y%)Z{s KaYJů+lD2IoiGƽE&$Tyab,lF8oyOo%iRV jZTϛU|i]&dr*ɠVV^^^MD3T6q/!r)23^$us9aM R+ k[x cYhWʒq~'SrSqzKTde*kwL7lK Ze&6M˸,uJS+Jr>XsZ>Xv T,V-I4#W33Lz&pK<ٛ#Pi+ݽh.^=ZaӅmfVEeiZ ^8H"&2dɃy߻h}Aټ}Քmk8~Je&fi̿l䙷4SfV]{w%fꨳW+wvMBOSf59E;p=)hz98~)ghzi+S NNt{s+bVJGXDQ ۻQF82K81qBڼ]^~uj9ݡ'q2+JYh< 8xE.3bW` ˭U}ç,:@qRkڅvV2xc)tcJ* ߕݦ3GUE~nrUdThؘ?|)sS$!9WoNU~^e;iBF"QY+X9n̒)4 /-cv^Qev]>NVFziÖ"l+WU$_`\|%@gwW.wW#6HlGZʹP5(7EF$ȨRn9q#V+=ro++g%V"I7d̚Iė;ת)NuS.2|Jp|_u\+wώvZPM-1^*]hpE#`;kD$9TUҖ\Ѥ5޻o5hWePS/ʼn xيQgՅ"nwrl:ý>8Q3|}OẀ[A'-EeUpR,ɛ:Jc& !\Gowm{{ b:P\J&ȭ&R1=]1| SppEHrB]2uNj7|k$݆|Y륝*s#,c9ɍ&s#3J61TEު!6;8oɴq>gvp?ء-~tjR,Gɲ9Hqʍ|8Nj=B42}Ok5m~;r>VqWn%E#(w 9\!ˎ^Ō٨YUyU 79U4R$ 3c$Qy_h)˟?> Ͻ M_Y xNYn\Y0$DQ}D9`Q+G[84I ⽚;aޙRv47īlyxK+1ʣ! 9 hG͗2 Kځڑ93k ',|y+EcN\g?v]gɳF9}}AxRb.HYRW+/;v+{1<>/~1}h_:~1?Uէg6~gc.mͳ͋sq=m]whM" ?~mQn5]:]EF"2l$L9W͏8<_3YVWtSq`IMxہ6e9彧ԤM+}F.0aud|e<6Ѷ}ٞ}n$=3<*Q2Yh'S-eղQO)/~3x|YWn޿:\:к{]H4jywctqzftgpf]gkDzD#_$\2apGai П{$` $:xqsîu\GRk;ҎnK`RWjc *Ugs᪱>KIW̑Aĺװ:wT @pߤ %;Rup[jD,*AZ0k7qY E<\. :cy4VՑz~ޫ: A:RKEbJdSgM9$3v O>U$u1Ǿhr[2 7oV+jil6^DRm^.٦,:BVZUAFJPCQGjmZbJcl}rJ9Fc-.\>{hʎT#6;f;M"nĩ;)H{S.ׯ-Nq;SMqK-l}ZzY߀?9#qXܮVT݋.jNv %Q7n[s-AM]g{.62@]m:;6kYscˇcU|tB)0P" ٝ08e~v cj5׏KҙLAB^>/VEL/>41Ost|:yoYWd-hj{Kl;KzX=zBeUVI0L5M ~kTf# "..!4{@6-)5D`H5<N[ܴ޻k>FDBmo'PO#pyw,,c9UEUPǗgmă7aZ"+$j3Yv.]1YbhVԸQcd6uYҐ/40?,e]$d[wZ^b!rv:JBT,83}[{Uڢcu)eV hr^bjI"wV\u^NB]H%W$$?:果ǺuklE7*bf\&[AjW*6GOB:;^NãEJjS۞ĬX"۽4Kj|fV=9v:]ʳ.xWvMP"Voi?7+-rCם:Tf-k%yGhy`W1FC%%,%g"R+do}Vz.س;]8[7۶+خ׉R&ȼ\Ha,LI y6ik㦉6CEU*b TRuHb{$VdII$ IȦ^ }zzN`zXfkEgpo ͵,PrM#%FBA˲)tQuNp<㞒ܜJn n`f숊$r9 V#0͹a=h7Egܕ'pI \|~ކ0jg-uz/(:mJ].&Un+)dYF-bKǴp)Wmu9*A,(57'R[P%97q-'`} HtK!.4"=Co:,tوhw:+ݹ#_=,DpЋSgj-cHxBH)D%fo=a]?K>S,gN Avv:ݩMvb UmfMfr̢іX,׫e^LZvYi1%^b:.5\l( 2!}FZMj wvU򅊲֟LǖJ!h]hfbt# )d~H,J=VMf$I~!NGwu*t 7[ZtS!1/?"T}dNAV:jLZ-3c+)(^6MU6#Pz^El~.u=/ {+^VxYC>c'^:A2sK+%k#˰ wpȪ2}>q75]TvEAJci8-V }иJx!v3`تM)=o-/ q@S]DX[xAK o&"{vbjoe}XU')$u n{XQ!I:s:m]2*p|ε=J- 5cli7&?ؤhҳǾ"V" 3ǎ@~TiȍkivjKMT25瘒pR;A43 7!^3Y2'hϠyS;knjsE ׭ jHeRVi*1_Ue$V:b'm%JGXB@(~9c-'qƂH0F+N@[ȹE}y}EMsд_`}#W,cpQEkghܥ紫wΠݕ_]a,kW/A,ϖŽzZ9)V°S)/NURcYgd{čt݁šrJnDZJYr=D<ܺv8O^Iә| 3.:U38rOطJ+X+۶cN0A%@/*7zZ9=Vxȭ,fF:aznvmZ5mFȻj #޳lv%rHɦSP\ ֟'݇_qPjGebI%Y+][ _a+fηsKuvEJ@7^Y 6zFC;ۥV΃3RrZWwO]mz˧&ev}&=.֬1+2)Uv%Dz9>9%F^'d9yjMh߃w~=Jwoo/݆ރϬXbߕ'%99H]; Eq{v;~g>BJ֔~V3K8d,鸧;E}] 5ozW_ҳoeO]$?ndHRzF%VoVr>K}!dyL'\5ₗS$.ב6zK7/b+X숻)mh덇"l՞+"1%_3dF2N9/cc G,1x7veRp ((ER9r!sAeUW9;&u. V2 c\p&5[#Ԗi uk',&P$`}bPܬ0oViV\s2͆aU(Qg MI hfk¤ *kuVF/ĮqTIaj*oV.(޿ pnA5Fd5XV>F1Y-3\v{֯udDHhSc.v,H&HJM Y,.HY(Y($iqe.)l$zAzu!],8>NRj-b[>(ݐ[k09xMAIEm}1 sɨL v֩.zw[:+]ӥ3iw^׵-7 Y ]N+]U8szkĞxe_W^.=65Kx N定r:n;Pnx|d TΛmh9WdBXu0ق vQVHX Ұsl&YEJ4IsUk1% l|Y#zVqO jHjmK^xcY%;&[euZ'e:˷<ݲ!2*ۓGRL+T&6LN<_Z6IK OlF)ͿjSˣa hm} =ïepxjEo}:q<6Ƥ}uK5J5J 76ZnYm˼!Jh[ k`^HvK@ؖφJ=wdŚm-^>.kPRDj_Ll;l2j$ r~|k:K7ΊtnLi״KgBGWjS`kUN5a\ޚ'A=8kH.w-m{_9P-/eNUd.5UlϤ5Cήd^Ȱ}3+*0<>G6(w G3OdWUQ"=,+5Pw3*I#(a=2'v\~"=K{{^89 ?z0p{LciLW~'j"fv/:sԧK<[eє&8׋S"HRkas"ΜrO i(_k vu'[hU8]BS+q5?UQ|LuF}핔&ǹ4ۈ.~}+?u ~,ؚO5fkZ.6"Ar rLO[8/!Hl⢚jZ 6wק!46S@%2N[u?OeEEfuf"['Uɳ`62o\KxT 8}o|~>WK.%޼Ѵ-njc5upV%T:{;l:!U2ܺrĄcW]"&N`}Oֱ;3(Mq)l ڎ 1(ֹ6w>:+U#'MDrqasoyŞcfEEqn:p7agn&2 AtsPM'厲|ȔOMXrb[VXp-a&Hݫu?Q#?()z/f15Z~Vq2E5sWOvv`xNrOi1s[ | \+A{2ɘ=D/.$E_SZd=ҹop)-Q3xǪj78QaP]6&LkL fjq7mt.)&nJl$Q3{1zԋ8c8vs?71$k6w:w n.82TY*-.uV,xۑr0(jd>~nT/;Þp?Oڇ?v;Lq_NٷP~DÎE/!$uou7t*Kw?o 62U`6Y *1E +sR T\\]pr*ZqTXH޹ԚUr[6SIyH2էo6$aT1)CϰWOʽ/#ήdiq{l[u[Jm}o|F:5JR`7h̑lt{B)U_SS۱Nj uFسNZ8@ =tϰYbݩѸtDxbeSsm(;.tqBV<!Whpblma#0~Fg 6Wqqc1cv1c1Ō?\ƟFvϧёUJ=xK%KGG&VmJbbdy%.)UgK*n9*b11M?:CE{_H98+ȷ-5os֊n\,Ĺon6_M X'u՞f"5lGHBՒ:+ʮTB4,Nfwpk(.P &ݔkXhȢѹO߱bRQH֎_ȿr6,DznգV騻+("T!Lly^^N3~&iv-5ҟ5*Tb/wf~ʴu#GtQ*:s ?#B-t-;~5kMcVQzCYa[aH̳/:xIHrۇ S߷ ?#B\x@4o{YEBmI8Cv~q!j+5?N.!].3UzG,Bz.'35/"5a(-"ʜ&sB9ۥpWerxgTTٹA R.C]US_ ߢl,) S .=:?to߮Qx*ߖŽu4u*Vڃ㲯LWd|Z  fɱXd/%X^ϷYʇRunἡ˓3-X^@Y̊e\qM-zw;Qe!l]Q 5ZfIWX0B21xыȠ3(TT*sOږP1_u#1zER+f* eH-+>S& ojU0DؗN'D pX/:uu pD,Ar>ؐv铻Tat%)gθsCc-]Vhe`;v w!L|GAѡd>"o v*z_PM&zC޵hF~uE/i,Ulշ yN% |tꝦx_ j#IYn۶=%4«&3~M|29D銴Ɗc+Y̽bəwQמci~rmWhUj fãSąf%Gw,3x0&::pnVrS{I.H*UDjtO>n$G<\Bn=jBT`u=dli(ވmVo_F}m_<H(]S3cE! +DXgU"3Ņ)\r)jSmʰ$_OX+_=d:[f2$khx~յFbyÎZT>X$9io C+ k\ldZ"rI2.'e)t6si=+ivf#"#edch;쐖x\S{Z;UkR[+~\4SRvW}ݮvE|Zy;CjY7rjH/p9)ȖgvVy#XlW ;`8Ϟ\I2x3\.kٓ}E\uH26[-‹s>o'(3b#&FrֿtR7f֚Z-W^1WXkww~&DfiHk *Ou)({~IXWG| :ogHcu%C]5]bbų1cC)8IT|3k|?Cgq꯾nXjӧ@X4:X3ɿ,%bAjyu~|qr不-xGg[hqI.h7z\"F7eE8!p_;\kk^^D5dfzv*JF] -NGK H`]R/=գ\uch`Xmhlev͖2,:{b{a ;o((&6퉭l f,N騧!!ZmԜ0+4#*ɾr)?//:"z۝=9Zβvյȭ;b%N̵֊ #M:1.Ia&F}|ŠʒO eknB۩wLQt,r WGϞ#88~~z[}=i1AX[ zVVնzձ(كk7FFLG[RQsG,yjw&;s3$hI.|jѮ:qco,6D462fVl^],5Ҷ?}v]`JcsWh+O5iצ#G P;7۸~^tE_*;zredkZwf?"J*kfFtb\:M760~,:{b{a ;o((&6퉭l f,N騧!!ZmԜ0+4#*ɾr)%pP;6}/=C8Q]R[c`MSP[u=2*;Aj`hdg ?afb31&о[,NƒI:C!\cɌc`>ns ]6#Np߅je lNVig>3W̓]B%HU& T֚Ѡ %\C|Klr ֗5e_~SR7+Rbɛu2l!^|DmRԹ+[RjcڠYv-K$.]'-!.uNՙ"|3`$.qtD:':wk]RRdASU&@2I5e,NI sϾoT+[Tu4vtmFWR3y&'Vv>֩L6>LGqJ[1}V& E~8YeL^avMuVdo{Wֺɭ3=dNMw 5ťT X ]z^+e1:Ι[s]qH`ZPetӘG`;F(5J"JD{l a|ͿN ~NJu|([łeٿklTnl5j ǽA'Q뾍X& +o5vw=3ūsW2F€ymY\-5JCw:EUs'IxqH:&¼ M=Z* Vr"s\YB9\xo'8FW{Z;wXjNR#5UkZyM&oU):>WrVTWM<#n_V:q\1]|һwUrX+#RYRk { j:mzI&Nmv:=Jz%_bu} +Z A)2 [nrDT-zzGjkFqʶmOWzcj5zf؊=Y^];x=u[zwV:z$]hRD7mKzݜZZZ7J%w;k}oeiSHKR`[aDHmR*e2ngC5u}BEb6ZVcDıA$l9MT/r(:&DגU٬Wծ潮PUU4RCE{U?\tu%t/oJ~--Wy dJ*T=Ly.e/0yu_O<v]ӤcM)*krunl"v4͟<~ OR Bqo93!|pW w{%C*az߂crƥ[RխOP2cMG/ZjPN&%xx(9$ٱV.;ai$GԐA4EQiE"4I8}DM2c"d&0RJ\`1`v|5 YtvzZ&[6#[a76K˹5iٲw22.*X]ҪzH֑ .56s;B#ڛ+)6 w g-MVҗ*޶len$^Awa׿ Ta/&QiFnX`x `ɮuTEtT)G1 J?4,־0Mqg{!c}4ərR] &U̍I&2gyac<m۫IwXkz =^1Xo#NVj;ʎI-8NL l'+Up9oAo^ޗ7yӯy'bZ'Qt :&RN@V;:,](xQN+rOkVxe#Fk/_@'Umhu *$zm|L+URޯdg=eVRlG][qlԪ~XQ)TʙrL):YGk 5r<_Pi5 !kU1,PI*dSh"[ҬvABYRJe"-9OSexDE˲rt)|]z:×9tq8wJJ܃[j[Hd,g/_9=C83SԵdk2}cyLw%](^P x4.܇VԵkf AcÖjɡg^J&Ey6lUZI!$M4QGZE$QHM$N`4L .0R)qc!ݟ gB]*އVb6MHM͒vrbfvľJt5|C,7`ͼWzwf{DΨBSF-QK*(ce((W"?Ԅ0_996[>Audݲ٦l9TjW_xyi2 {Ǎ5g_0=0u_Smǽ1DYhtGXڪ֦nZSؑ,Iӛ>N]l̺uwk-pm^#q@Z*RK`\kKzYVec}xH7x3I$ȡ:3W[jZnD$"BǷpeTx"m~4|XZ.m6E:~`uɎ,8~ֻsKn eg!3OA#^@bPel"::2e3Oۚ}vȋƴٵh.03mxJu L|\{\x..{'/c7n.ng%˝F;]Cx-Wu`D/cW6*7_~wuǞiE)x#sϔKqNK ȮA;#l։%R /e!;i[#N>rv❪Ʊ. h6x$C(]nw`;b]Zkv!<; 3' s-!>P<;]ڷ^[n6EL͵qqRn-kհ3\2AV{ zS;FO=Q@wZ*kv+lg<2{[_3'-!P1v]zw/ rNrpnd1ŭ_oN9`m4%Fr:KJr=9 쑭2$0eQ)!KZQ& lD",n1ܼlk9Xܳ7Lw|]LʮDnb)%l x"A0bh#d;&TW%eEP.JB`ʥ?7;'3- 6"9|l6fŚK:rSwa4QH)s|~<ᕁLqK^(| K{]D R2v;̶Nl|yS_+YڇXME(:MUHo1LW ox 1JՆ>'Trի=s~)Hש :.ZE%TMB1 0[p՛J~7RKƶYk-Tg'- 壦꜆)o 5MBpCi;Jgkt<^h"v<*!"&R6Ciݑ\SRU1*Ou:+_9QYQY/k"VQ2?H_ ||E9ZtP}ݗG&&oi(Q =ǟ.>^VlTt4unY R}=^q5 (bґܱzR' U% 8.6'dB髷Uft_qTKi{\a5ѡNZ*̼Oi^U ̭y>0e{ai]M]9˔.1xװ e+جhUٮnE8}gNH0>>G!{?>9yh%}ޓY~#X|(V/fwh.Kq'1ՈUiޥ%#iOe~F6(Iva`񒒮$9wozvmr P쭽y wM۴ӣ+ŴOؙS5n f%\eBD~!LnMC"gϏjc{';gW|w'A^=G4{Sv}SdH[ }/x\w~zEoG~"sK};ZWov?;>g^@-t:'W h!<$dHAw\.?&b)_S8|[oi|0{< O ؞'^_z+ӵ|Ŧ^T Q޿ھӫ5?jz_C/w!YCC^z?YGn?i m?4;Y}'/﷼W؞LgKڒ>/M};%Oy$zRgFovT :[)*}rFWl#'ڪFQ@c|j2K%)rGIHڕUh6xI]8IEI<_Ok.85k5Qod{.N fq3mbj.dᡝv|)T*(֛jvJ$ܲm]Hڔ[/ί/hr ikjV#VUrFۙIlőQG3eN'5RK5WuFeU]7LZ&/e\ ޓ樓u+; Bc]]Hcs!`h"fFZ8 Z-e(<6 gsep ~62 ַ 4ʭ 9I vqlƵUQe=_de>ahԘakK@Ple:26B,;Z6%]Umu7ҷ#7z? /K߄q ?g~C{GzÍn;_:ѾXVc£3W<- DžSxFR0c]&#]?3?UY-ŧ4]Yw[DNn*}X#eԏ%!,a^hSwv28vz^P^ۮVͻȭܶM{TSsRa5T52#k NHS4-j}ciV;{DU6g5O36vե&ljWȴs*Ħ3(f|v*9ȉb𧒻%Oɍe&r,|~­nV{hgo,Vfd8V_vNv&5KTN*a]ߧSQsvƝA$lS! 59lrIsk}qBv(ت*XB*[h Th&1C`ʬuQE V;9^6^W,p%# ZIC#z#ǯNHWt$ow0jAhTuć&V6n*,`"e;Z~CYqJJoV>Ckn[vVϖIbGjA6,bku6l!ärJbjKzVׯ .}ce$$+t6r 0kyxFVx]m[g8RnQlu+Hym~M;'Ypx\%T"27s(>}*8҇JjN9EMڻf圎ٳѭkӸQPHzf ŜD2odfefe䤰RvIn<[קQʦΔWM2LKUk7k5ٺO)`+3͜D1j՛ɹ+Hij'*{-ثܢ 7iG3Z]٠Nk(s+%!.cAt>|ojy&3:lZK5R_^E=9#iܴZgk{z՘w+|TcpuX*[nʞnR7+oJCl kHCG_׻]]ftS,c|XŁ@pPfi^;rvVX);X5r͍ʇ<ᜂ %j7c g#8dQs BBTySD\~@ #Э7- 82 Qxl0ɫ.xy7h5OL%>ɹ×M&[-ןFT'Wv⇿ _z½kzϺZ~/g{3wwz+s:7@rǻv-V.5.)TP@)lFsGQ:Qfݻvh[5jM6nAtHTAS)SI)SM4R)J\Ir3z[^BPa^1ȮpI TBBzIIzKrs ןFT'Wv⇿ _z½kzϺZ~/g{3wwz9şîC7߯/o/cOu=s__xj~=?w=ޏ5>E;?o}޳_JHZq+AD]Z mQ$SVe'*OQ hͳ2r5L ypO1pnj\e'*FfΎr+lXn9ӻT\V5e$@8aUٮO,6߹/RM60#;lNܦ >bsvw+9pږIY\wỄEtL*))D!E9LC)g8T] Ak_4wN˵ܫu!u\ܻ]ij__V^Lԧ(L YGD4Fk|RNdm"2N~c>A% =9}쫮ƅ~u߶N^pqR^ۨ”)HB.0RJR)qc1c1w`ԟ#e6)-_9NZ72&ٔJyPLptb,C"|SAD8uЪowF՝>Xg|%aS5+d"Ff$"1b˷Mפ"1ӂbA9&oLrq\q ?|vua҉U8W4y5I&T ]dJ|!9SG8I/NCJ+{.:qim'CU.Zl8$.$=M9IMLĎZ''wTΨd黐c X"2Qtw8uQ MmP ӗkpVdgMvͱXL./.66ݗ\xLkFhw3:El(?Qmض*mRtȳEߪհIh_wk`s\k{|*->pjVIV[8ABzfܢqdJeMK;e-^a Ә35^wT"EJ%͂8yi4`KĮ <8Y-4߿hڻ`\aI 0. j;XTsAHya>5,8׭f5]Sjct Nqc:r- F"zjJ~S9fYO1!Pzp˭E{FV5R=:K؆&J^) Z]U]ܫeRM?$1$B:k?/):o}8ӵĦ+V&ŀ]íد(qs2I/%R VRsslőjV7ZJs6zEy)H9[{ԒiDKDREo;m/INZ_a^uԱ00難[0*LooS*a_)\8ڴmi$AK^g{[O Zm{Kgr8Gyn}Ax޻1<ؓ0T@Uz|M' DY6Z^ľ\)&„1.BMDHmfrGo"^ o_j(i픣Ūr;',1?r9c*UVS2Le襥 s)졥RE骧c7I5L8*U6>39 1ysm:c\miD+{SIdꋢN6eYSd@|Z}W簴x% 3eYtߙ3ᴋPO$#l^5lwsslhڌF&i d(Vq$< r i"stES3$ Ln~Vr ԝ#[m&hA$[KidAZ#1aeZ#%ޣW\/3[Q͉wZSUX'SvGɱRAC G1-ELm̚OÑVaeksu>~bB)H,I?i{ueϣkxA/C]60s\ZJ7FJl[eF% 3`!#_MVU!|\d?AK.7n X d**"!O8|cC\nBo}x%Tׅ.7F1`M˖*G$+&\H1bĉ>k6GĠW.ܚѼ۝*V]b0[\z6b:HDWjqNu~R [PI$>i9 *;F]>GXMF<Ɍe*VuFO:Ah02l(bjecQvEqrmg.1ܙ]8PBmUSOkм=4}R~eI ݚ}dBAɐa.]>rݾ \TouצZnXk/`2Yvfȩ^td=)h"0xw\мSd˻V[l!lFS!$QFF9X*ftt-aU4zTlֈ.Tk4*!+Q50[Y[.ZP`h9ܵjruU2ge ͫ8Õ|ʰfYRqbG(4zޱTE㪴zE^th6(Dz#n u8v3nu-XP6a]-H{y8EREܼU6 2>P2 ᤤ;g k8\ysSKF4[4%NR?7A)ϒjF2$qlq\5ß#%cGF2- 6I S{L1R:Tr0|4G9쎥g85V"gUo3_A̖LG Ɏd1|62Qdtjܲ^D->Y'i 12YnLy].UTJP9˗QR;k !4ʲRMhmɽ\EU2it6] E\]Mn4~8~o3ft<<1 N<*'V5fKSJ\9`dLS`.d6 ݏUhNO!hso#LV! )׹ֽ$/]$D|L z~9G*b'k.<ܨkt܎iɭ^z髓dڲa;0a,.. ģ[ n]4<xs덕Tؘmee38ul6peLFMꢙNb"rB')xڮΒZ26>?+v(r]+SppʺPYDC6mV_NʦvYrZ]LLSa}ɲ63>qOz7R0xؽpX4; |ɋDTI͒xd##lnZ[\[ڷd괨LM-9 *Zŕ,WpxP+?ݝ[j5sBU)6E,Vu0<?wcz|_֋?5_|]@h%_"SYm8ʼn˞FŘ|X<ǙӗkCb<|k`)<%OUSOkм=4}R~eI ݚ}dBAɐa.]>rݾ \=u' ulRī.6U3Yc;__.M98kRp1:r]z#J 'EKhjFhbFQH®Y]US Ne[lq?nž|BacV*g\[s&~Pڹ{#9^̝| l:a'v.$rG5K^TZ:GDU,WJb{"8v]ӌ7nC8vYQuecf5۫׾'TU(0\[-\aa^/S*nJGܼ+N$焫v|骺EVL҄DHaLh䢚zdr MÉ\cִ{Xu;6K.!6{tdlvn(5W9m8!e0J9TUNI2͵e'rRjo)+Q'{ˎQ4MD!IR5SP:j&r!ld!˜639qd=qc.Uiz5^-)S;;X^VmG"RDeD0xT觬U\3Ukp[vFd qT MÆ&Pfo DXȲkeKRĺ3 w+-0SPtE s">\J"le͏MxmGź/OB?jNNjFyۉucbNYw$nVqMJRWXŽɂ60x'=e?6tpTE( wJ"gfN5 R!cG aRiiU!ium!!*)~)hl]?f"C*Udcٜv޻vk/ BEʅ&8hYEE)(y4Պ5,]gLG9pT>tȍ&?i"ы6*Mڶottq(IJBv0>U^nL;bu0ed}jϔ0p2 !*4}9x)X- x'>^I)&Ebq~ (R2z)Eo< zWU^̻ (()R2E,&ؤJy0`u$[Ǎ0"t&dl=j73U&UE53,4GPŦjQul%o+h8(ga4mdlg)/PnY\xQRHGG:D3*c]JS9;{cdJ6T'IL&ݣԄ(OɾTY&!Q.v>O#997IwB֢"dWutRqf񰟓SīLy],d67=8u',_U39F/eo8Ms a* ة*CU&rjwf+Q@W_ν&XezO6S4]mEKU$xG,K0YTfL(ɝfɒ'tM޼pY_ipUp[iKMVV=Ēھv]EGdmʡj\{uA\6rN8d7]2,+3EdU%S1g)r%62\w},9/p㔞h26lyQz&/M{Az5))<'W.RY$u2ky3mIy&ʸ!$aߍU~V Nfr.*ƲYJ9%4 2GL JG-1Y5S脃:*M}ߤȸ`B( Lڧy[K2M*sWP4N~Q"Lȣvo;E:)xI:tiE["v&tMDIQH"I$0R&d)HB) 1q9!m{E 8eO&˃ar`,OFԺTMAAS\rkW)q>MѼ%8v%t5Qe튦uA(RSbw0>Uقb}$`&r| l(BmbRbCQ͌9A%ꬒ&6 ݅3ݜmRn^: l\ϫ/Ԍ]vWjmVQ_IfQ".Q$#Qp# Cuae/ltcl|ui҅&>[EwdUtbc?wfݜ~ZqnjgkA7O0`T`$V`ԝ&6ꕒ2Cu}woױϹ9!Fi w_IT65;b#" Y D@?g/ DC7Oѓtt5ƷT!IO%vw"fdUc[֝@ ݢY巐d6#[æKu1;.i֗ |Kyʜ9AwrPO%&xeTu hs|wȞUﭡbktUb/aݵBQVRyIWY%*ٳ4rKĽM7F5I!ywjo;as q^E&ԉsE)O8?8ml 9]6t40YeFgE7Qs/V_u6^ƶE|~ηJ/dcS3Sb!DDnEEm^f=$Hݣ&Mҩ٫V馋t!E"4RKJR!JB)J\`)K┥v0\c1c;8՞n[Wh,"KoI4rE7 0Ѫ8: 63"3K=":Iwyռn}h`|εM]Z8/ݴ"k_,|졔FM&r U s(T HV6)nѭ6 (EvNB6C\g8M r;>Ab*=}3q!?ljE6 ˟|"DϜ`\J*x/!ѩCy)ئɳye*=bûØY13fgHY_[!y.M5{yr>4*c2.ƕlVJWɺttgC/Oh~ h-]NZ"EFܒ7Tk"r"Η[ WX'74։5duhe˃ cDQrF Cu͙BVaV121,lt"B0F=C6ĺUcLӺaQGTc1]d\U*zI]zӷR2Ca%RɞBc  qۏZ+8]W'cBqYmeV/rV89 (+tȍ;Zq@ӭܺsI8rƳւ`ˮQUPQU1c6sc`Dk k1MٰG/q狊ۢ7Ez}H2 91&Inm]db#y4cE0Dk&Qh3*2"L1Ϝd6Mu־~JI,[P%lFe Ŗe:l™CW^9O%jHUEUܑp$(ڬjôPɑh1d:=#F1:!z|_֋?5_|]nWjkuK]HH7/Avg̜I'1o>2v\E] S/XQrN_pyY"9̤d4sT *{p; ,Tͣ?UJ68GoIGD?dF~V;r8D<.G.9?>\(!Cx]eSfE˟kg9\*Jq(]x9 UTk&F*%fKV43{Y"^EmuɲzvsRHv1U]ԑV"&|7hwnMf ,6pR&e1sg)K8sO_kt{&c6mm~EE&dppRxnGI5_*wW`=YE9Δo BbrѲķSu;G$I,2jqò*+MV\跌R?lofX1<661dٙdK<&37u'KcTk(Ew/3R6C>"dzTvE*Ʋk/~t2]H`$˩ޚK=rovdGǠ=&9*=I* ]qq${5kB #h ъ+X.$#Q4sug%p/xړ&rkm;JlH+w'.3殰Ee#5"&Q1Ьw??b/$~2r1 dF!b*XċTX-ߖV-'wy7b G2VHpRN%nansT9̏uzV-Z VZ(Dd|M$V&Mrv>I:(3d6 l&.r\qߌg HPsvEpU5nVms}0k2|c*T3"EU6< 8s|?+r89Mן<8n<p`˳gLXdh+9ox}JEuSM И:!T+lFY&F!G'aaTd1s^;f|#I\*`6# s!^|MÜɲt~,2?~wi +vglW7nr]Ws/GY:C,IhE9p#0rZ{YwW\P9dpܤ%&9?„"j9lc'/h_Į_(z}oCcٺ?>L;V1tLpEfp7MJc1֛\Vmqxt}Ks:Zܮ8{DDFK7Lw,Xn|YDlKdA|[:H%9!S`&oML3.q?p0m`ƶ{޹0ɋ6,Ly1ڷ3[Vhp{VԵhڳ5m=&'&&&&''y@]]t=\BY9,:GGXêu\N%m.ۭ7Id%XT*r6kq28|wWSmԇfדkZj--X1g%[^^'7ծ_DDGv%'q4KpP<\[ogB^'s.Slp -dL2VgwĽBbUZĎOTU bܼ}:l]$ᮝθ`=񝶚]lJo4.̃S>F&uJ\MםC͑bHú26E:j4RF5!}5]mg3ϣJz],89e&&iO~ݢ`qo#\Bg *RgZ{wKG9y]ٻq]vn4Ja,H.= Vbcm{w7}l2ZWW72G1PIGFI3B~9 h|f{{AJkv͸:l\=:qDϘEV@yk^u]FlMK xB=5ެse<;o5, NHc~o`6ŗPMwsߢQ.z~S<`=Nea$Ur.+Ih띫RpʍܱP{a 1p0,gg5%"b+N.n{S QZSG,˦6ZuB'grbIu:u꣱Lݲ`㖃C TOXRӽXu㭫SoOk{Sl/\6Ls S@({'y=îܐ(qkOCȵ^A_LtF4RIo [dɡ$ۙWw?fc ysN`c 5hënMD+4 6&LIn(t!5Fl-ktI|srcb|Me`fX$+*ȉcOVnN֜憈?)^ͺA;%vܵmU1VM)֑*]e(;^v^u¯F[)7[lGS1NrRy_5PW_f(Cٱ]^yq>wSlMr)D^d"N7RujSZ-J^ݍi-|ؘ8&m(ԤwO4= )BGKb%GJhflG<^Q5YW2Y>k(鳄 Sǟ^;@+QWK_36k^׹Q%-/#%fטXfaL̒1*g*2~&.y]SckDڃ{CiēY妯``]2rs*U]lc38G (ma/f$ppٰV-W0[ߣ^Mݟ s63;|KjߙJ,pa3q_DǧgϞ2'yjcYMeܣ՗xԓLƪ)1c!J\c1̿H}7פ'Ex9]ErDem ξ^s<=_ئJvD/~O?9}^:}Nڳ5ɻ6| /:vp7$/s8IXS=6q3ǎ,d1swqq19ǎs~1ݢF6Ѷ"`&{XÒdq\ 6@sߓaq",9d\cA^g6q'?#VCٓH@8ǴPSɓQbQ<)p3qXHJs2%gn"9\qNS?}7gj_-9zѯW"g4[r;ϊ戉xtk;FC-QGf;W{{N?whzf"#_Xdl+[\M\ҕi,A§V:&qTد,aZ$Ti3ʸy$YՓdWOKM9%jNBW["6˴Z-^VCZdd\{v˘hǒ}sgqߌY~fq ?}<얞M?mܻʚfNi[VJUmɠS"ePtdȻGI*N]iVLa/{+׋L[l)We)vm]Gա즯RINЎ߽YzrWUl5:~s{mqj?!駍$DKNyǎۓiXw; jKӔA"MGQvn6*01JNc[=i%ʕpR^9%`'MWiHmdV9=R0⤲(H\䧕E|" xl1`%%֦J>IA˱^Ad5?jgzb' *1rS)g8<B^SE6Zuߔu4LϮ^NG*[~f+k+I=~4T>P}s>m 헽?oXi/&s65V&YƯb5zwkMJ!#vA+ERΪ2Órׁ3gn򖜾 sa$τ>rnFR#93ًM$~f|&1{M|tWHnɵyԪŶkwVY?6_IOcT[+ZD4 RvrTOf-.N}n9TuVbd;s"'L5KbjrK`nj(Q<&;M3oy5mMl5$X "#_C_՛}FʣDX-=SC, 1;}Oٮy$$UZd3! \'ʧ"(*rwf5/vN(Ks/|-zòv⣧KfYoiی0-oM5 +XPYm<\eˑ;;H8GH}il2ȲjKNyǎۓiXw; jKӔA"MGQvn6*01JNc[=i%ʕpR^9%`'MWiHmdV9=R0⤲(H\䧕E|" xl1`%%֦J>IA˱^Ad5?jgzb' *1rS)g8<B^SE6Zuߔu4LϮ^NG*[~f+k+I=~4T>P}s>m 헽?oXi/&s65V&YƯb5zwkMJ!#vA+ERΪ2Órׁ3gn򖜾 sa$τ>rnFR#93ًM$~f|&1{M|po#ܴKgP'KibSQ!7c,V-unXkSXlGuʩǝ@Z#eEetc'cKG_AgPas<eqw>PxZǷ}gww Xn՜л+6ZgTD+xI:̜:2hrvq]cb8Q(\'8c>ӻV-68S^=d̑߶(O*j]qKv6I503 VnlgG=ct6ui^ۛ:R^vÖKq3i[rh;'smYۆw.Ɋ9.wc̏= lj׷wՋ6QvB* 4W)S&w\$S1r\\Z&2knD(`6qd(U00,HK:-%&T~9ѳٖ&;#&Of1GLNAD'wp͔8G9}yL uk 屓3xrل<,GD~LS ߻ 㙮=FNp_yϐiP],2O V}5De.m`)dDMEGZvm[~Cr ok:CQحZ5ef-N̝e^#"&%ܲ]tqu}`m%xhSve0ת.FG_lr@77Xs^CODǦ)j%aQJ ncԪO|m ʼn) 󙪸r1GPqKT. ۽Lߟbx=^rgq3`3qg9].Xi.0Gyܵ֍І!$ kjDErZ6 ڶ5cdfЙk*ָzXQ &/xr[C\[F 3Jkݛiu)FE2Mk4 t]'q"aۍ&mw7l]9:ƺs<ՙɐ3.):ǾkJJ`9o\H.Jg?~3=RU]:X vœW1K'ғ+T=J׻>SnmpBbmQӗnc麳 ?#B[g "-6>GiS6܂m"-wJyX2afo]c漐4'Z6ZFqiJЗdDÔ$3H•crح T0L`*g+{-'ŮBm!zo'z/QV U8o4haqkIȨ0|3yK% ͩ$Kje)&)-{K|S畸.ݹ]LE9]EYS'QCMRG{N iOkR}_@)s.nڨ̓gwlK"Zc NwMWP[58ҵ}Ca[mNMwe^ӱ\3TDE )di^QxvAY#l)5H0Vm_FG vݚ"2*v=kKش*> >V|LcEtLP9C{掽˽hHSeâ<}JH)U/Uuʒ$S9f>pE^fS<OnLHpov^Y ݙN[/jmIq}%)#W6j:,n] t鳓g9;=TqcŁSI9oM7d6lNTy?!k[d*D(MGkZ勵ҖjU7_^qi{G[8ԍ#qrslЖVrR(CZl־QvFhɫ+tS. in\WSMݘ:R.xҧRW(kwԓnVrc=5n^'> :LםhjukxՋӚ\rSMڔE{'.wD-Kpq3JP'ƊJIk6qjsdVAhƬSAl vZ6d*]Y.SӴv]t-sGr@芩.\)fJH9՝*ִl/HEαFeUbAA/5_ t ;Y6_x^m~49Vm Ih{+xXn9g,VTO*dsc㴟hޑN5r"d("j8FR,ru=#FP K U,:2x78vE6yԄ:m~{zkYu& TʦՓ͹ AH(Bft" !bFT*z&c=jV̯F]"_h/PhIxfڷi}uCWVTB #%vV;_On]M:fdt~ꙶZ&ߚTu/d6Y@l  ش oaJ],f vNp(6 GH4j^QrE]?3JoUʝwDAk \MFaJRc!RYuӍbJAf1QIg)|kcw\? W)_ %B:w/^i{yH;d-#֧'no2~#cבy9gU|ލID6U( >mV4wWaYyӣT0Fjvtd.͏QT+Sas/kG_ O v!~O:#BtTeroၶj}Mmp)X:*zQZ9Eڶ١ kfr̙Wz()_׷vաO#ȯX6֗-m:@lER,VyִiF-ѧA6Zv͛:(7n ( o HJiR)JR'uhiw 덛*rhqVìW9 ,dճגj< ^W27r}~A18ScrJ)YEcXЎѹ[^uYS*~K4ˤv:H4lTZMqJ8gR3v6mJ9,9čOjU . =fX]6Ͽ%8V]'-#-obbBWqI8&{G-,\JgXǁo~P+WִmU(v5xq%mw]d\UYRN\W.U:7>o8Ū8yq#O-Y ]3\lZ X- }smf (7Js,b+ށ=M;<@Wmsfqu0Qtü_H c#}Y%HW4ЌMa;,c"D̶1ӦK01<7t 5K[=o++:Zbt67u16|Zl^?>PKlͩ߅Ԗ 'HS0ʗ8v||Ҟ>Fp4Uq(Y 'NfTʏ$V;g~35ʇ; x!{w3oӯKG>_%1sJqyg[jv#{f"+bsfy}ҽ.?_vr־Yxo;[L׿iW!:jx[K\SW:]xZSɣ3uF1/ )&h.)y)]2vMM!KĻYVSu- =䪇rE|MpFύQ%0Ub㙺jW- if6o1u2 24|κnB=Z=鲴(' N[x Q:ۋZ£ȹgd[X*2N";vZ:ALrt'dx[l㡺c/}S[6:e鏒4mup]DZ7i6[ۦ {OJ6zxoSry083l2ĦɁBD"W#ɨr'h8@߃&揬?=}z6ϭƾ|V̓5+\wo&;VfbմLOi|z_%mLj^Rh8f&&'&&ZqZfww%4+ժԬvW)뽌f띇mA>E*UgWC ųgTm,sFOJNY( Mz{sw܊3olD\lͤ]adzuÅa%ߨbg2zlݠWm$Λ8L. ,骒2j&c1Mf9 ټ S۽5MÇRRNzQo:X.2b˝ExުՎ8/)EhO2pZwrF'X1ԒQ(իIchZbNjE^6 2@CJϾ1{.ק2}?t-X7V.zvj*V:m qٽE)Mm ɷl*'ÛfCHlXG`Ztܒ,21V%r._LA˷[ªots$פW+;7]GOר1'{sOj[RO+ M[HoHk}O<=FxHɆM}ܶ2{oH;vt?xrRMSRm:3*(&+^P'-Xz43YR.5rT;)ZࢲcmE_'N**)Xc0(7e_%E]BoaqGݑ sn+]@zeZ{u,us6I޺hq; SVcd?v1>Ga! !(he&v?-M.QʳHWNV! 9R`'˿8-VW֠>WeZV"X@k|D$,[vq[&vlXAdHDH.1-%yt_|ڦwǷ|pݯ>)MmWGa2(T WpM$f^r&EHn⿸cSS%mA}yz<=3P 1mR{٨+~jh~Sv"n!b$9f9 dV> b8ϋouubGI6'+R7;eֱGOAJ3DM*CRm:HxOA[B`+|^* Lg˨K,KYV6pl+zXKcߜgW/O>[u 4m7K[{F&mƌ{Ѹ]i6oͻHvB3W/^EפW+;7]GOר1'{sOj[RO+ M[HoHk}O<=FxHɆM}ܶ2{oH;vt?xrRMSRm:3*(&+^P'-Xz43YR.5rT;)ZࢲcmE_'N**)Xc0(7e_%E]BoaqGݑ sn+]@zeZ{u,us6I޺hq; SVcd?v1>Ga! !(he&v?-M.QʳHWNV! 9R`'˿8-VW֠>WeZV"X@k|D$,[vq[&vlXAdHDH.1-%yt_|ڦwǷ|pݯ>)MmWGa2(T w>PxZ g{Yɝ=4ve>S݊ ݨb&OY>oA괁ehWZ߶б}_O߯v/;,+*Kâ6Iw*˓"ܭ&謱șxS^ih>%OLrJ[d&dw+.}acYcg,=ʛ{rjw M4nܯ{۫v&ˮ_Ӑ>m.P۬آ}_hAʴ|/8"k<ٷP + 7Ù\p7%K۫zpGEI\ѫ&gctrN$-I]b:{M\Ck}y]itd n 6qqCI&\pTrU*_\z0.= ?ggA^3u 26J97 hVD^B:|ki9$LnwꑪG1W9)q qqg%Joe^acVΜީj܅VJE”e9wt}+K$fjՙxbp_O>v\|Z*W_w?lW0?]xd#W͋;\ ,\C<6ܸ4]3 0rV]xIuNr2Gn+]$ʕ$Pgn3{FWk^Q;PJٓ(_%,_heXŰdZacBG9eԻoX{M.fQ ~nͧ?^9ֿ`z<5!ܬ鬓vӗHN[[IYZzwEE6 /xI2现Z9{zY3=T: VSkYӫOmTR+5Z326gMY5E&6 1G*!GU7:bEcfQZfXio[!zŮ! gba⟻kc2k읶rK<ٻ*]6{|xP@&w kȹSkv{WkfBH|JhE_;kspOf~ݢ~wK|<à(f-[15Tx H#Xc+.Zu{x8,w, ]V wkNQ͡됕U{fؔivQ):+N&9Ne:0i]xj RPqOf Kz)6dbš'OM6}yc c38W8jhݫڬ\5GkHk3"tؖ^B$b9:eF`.eSe$E d mrR,knv~kMZ?|օ ({Kd,b0|Ql#)6nͻvlۢգTRlիdAf ݺ ")e*i! |Gy iXV$TmLYz\%Wpu{+ԪurΞL8i;$ߔ^^o+4K-I3!k̷3[ qt]5<b]ڳ_Wϰ6qJT߹qA- o'ȆT3o u&{P˓ɰ-3Î+x) ?hu껱6]߶l'iTҐb9;OM5Lը줩47JCl }C7 d>ƕaw]'eon] R/;E:- n-#EC,E!UNӶ<)f!i;nvW,-:R[KUs]e7(>FYו;VĩtklS;M: cX);>.+!񛅚ն⾕i-|>q L&0ms5i|%|QEy[*:I&RNpGR-Z憖eղӓF_g] V̈́|ӯSotgr~c7<ƈ@LtQ:È6! eUtɃqT)4E%Y=R*tJvun.Nwڮj =R-׌;S2gޕd{)hEk˫WiPrR@k=Y0(f(FƴOVrϦd}C-,:`t=MM3 ǀٻR[ce֞AƙԺ<:pU}m s ^&\-Zdm]2 g&S,COm{.׮ch%|Ը-"x^+D\|f6Ȃʳt]|j!|w N \ѯ[~Cߵ풸JR5-\r E+"/AIq sw.T55c9turWSqɽ<|.Q4d3 QLaX)8zuCLODin>)Z'nJEJAG+\ڮX/,ʶA7V2XKIp@mbWtݢߵUo@;am79'( k̤Lbex!͙?#Ui2u;.ջ^*RmUkņ^7eJEn6ILgtzg@-VzrȝZx+%(uIk &P,lG3 iE' qѿig9ߜ=5xQԂ _ֹa5l6~•3a4ܟi/"ay1(*Sk5JZC@BܺQ0쐎iꞬLͲ(.oʪc@/҇9bK'FNW5Tjm_lB,ƾ{Bmkjܟ6 s֝tDSӂ[%+UWANQ4MDL (R59rS 9sJb83)ٽ7OWcSqpU7*ӚkDͱ-xf0H;M$֎$9>Z,sYj#FCrӵۛ;15{jT]J{6- kj z3:=fFؒBĶ -vcl]S|SϹ LuFG*u  뭅Jd <<0}o`K+bު-׭֝VCm=6>JF5)Ănj|1\r雷CZݜIFB]hh  T_4IWUL]67P\J%{?qo9ozݕ~e(qْn2DY*w)MVH7qq oώR}WwJ-%t-ZFmHYohGFV}"eDnD`ŷ"sGN΢OX9cjŴc !dכ9YW,#f9e%+#8\QS! =^]!L}wyGﵤhZv 3mu:VJzN^VYH4j'*pϺ}v󬋶!_im=U 8c5#xI1u*.;h"RQ6vSMi,]Gez:M67V+t=g}EQ%LȞ[2& S91uf۠Ѣh6l" ݳtTAR)SES)SI$R&B. c9>/P_ja1Nr @j>SiRPmH,֯oY݅3Ưٚ/&iyx_:8WDz/}~V"gZR]< ײfmAL8=r*ch{=]3wͅIU~ClI~7GLzPDYc>/nc-u}s_Lҭwx> Zө7Nmev4UxabN11ȱ}"Ϋg " ۼnKj~Gk֌mᩥjV2R:,jѥIRk&Z%Ce`QsJuROKjʭ({[Z.Ty71.KY6xP- 8UIh80tI'vOHe[H" B*8yq􋨥Pǣ]f[$4tu_/xWkkq֯`R_ѷs"싹UXȼz뼬Ѕ+Qݍߡa׻/Q3'y#6.|F٪J6S6 heg*VHTO[ 1"a8m.n4O.uoe":^Wۛ6sճGВ`/՚ (x:?vvk[in-lś _MfkjMmLL&8'n]|\wظ1`vD G56:OO_qF'nhK0Dj燤l>Z&FO?O'nhK0ulS8#1ȳxvrl{[,tbe:*fFUDwJ co_VţK]z[մwD,d!~yHj2U<9: ȹ2H92e /~q~9_ں.(Vi֞g+2g*/O11@gHrnAOy+dfQVd=*olt4xi & &ER9BV9.4FZ'ʒZypD;6\CXԎ;Z=LNR1#$NCd+)1[vqg38;׻JRr]d',Hl27XQpVMі:әp"Uc%sTY,# UUU7LQL(}l>U{ӓcO=|#hns@ ꙸ7 Z:е]s9?Gơe px4|aqNFC´L~eOst޺ۚlQ6[334 nL7|jF>3h3Q2$t*[!=>tL sHh eYg!Y犢ٲX1\&2bߜ Aq[|6#5Gutu'OTl^Z=gnZ(l3D*Si8Iyyk*+ӏJWkSzjY.HQieyI4dJmr |΄x76{թm.dm0i=:ĎdMU-V\3q޽T2p=`MܲIskmoVLʳEB8CᛢV-rN#k/#G=c% SSWM7>LwŸgzf1>c4FaTLЋAϙɡT&x} \lineO_[e[E6q 3lR5lBurIMjvZ5YTu0^*"zRRtFJ1|1o.Ͳ긍]RMCd >Pޗ}̮lXkvL;[o;-֏$JwQme,iuyQ"+4MɶA `Peɮ;r3q+6?[n -psS̢y2eU(^(2FS2qfNB{i}"#j֥OYlN^k$uIzϝype#^,Ww$T \]ShU▭4rS*[mKgVjB)f&=SАM$2BĨIsx yҚGY?v+zrۥ:UETQCs"[CRfmS&8eҵ%X/M؋Gٺ;5le[\PO%ũ3mVJ^k 7~T@J ʽ/T&$0U]2lHrlCc'Z֏:m&\~~SV\Ge-f1cx헺1JQ>bE.eN7"ʿZdV*M14U(:UV-,;i2MPAw/~59Џџb՞ڵ-̍ 4gX̃ݽIk&x;׳N H% _uSB*GLkf9ܓiNzWY_lz)Us' y2g T(rKE2g4#3LV(aM Q ,3`8_*MK[#IѶ [i (v,%XJ̄M~Յd[RFPQn؉7K5#R,g;kEԯLY8;U_Ll1YE|W~W77Jz{u?`k;%,qʓH2s/ 2R!&|B͖6w7m$v59ydy55 |6BMI<LvHaWp;SΣ{]t*7VjI1"yi9Yr;Gm^|u/?92b$4TaƏfcLceysys9 >pT>tȍ&LcLo݉Ajm嗀}Dq M`$YL)=wMOUӦk^k|l`📪1v#ܽ#u\="1S)|:q=!wzA7_7铖rɒof[#'\lfSՙUG) ,Qºn:sɴ]jVǵ; ZE ip"s]k3хɛ8,6Y"Zk]ƻ71Vo9>+>tAOۛ L!po3Ò>#H%>ܩ]-BHu=5!56}*ˌ"TkRm'9 K:fZJ\^<|xtmir#wE 5h^}+xa7U8Yc=;wP'ͮ$W7_G M+5NWJ!^vUE"ݱ3։GIƷp?BpQr\>׬}UM5e"+/Ĥ_e-Use3vWX ^qŬN;Qks&$PKrvm’3ԕ,\8HtfN#:Blf l.Q?6ZH epdJ|)<~$J{)·P18r<|3(}τvsf֔M4[VڡS4kՑnڤ  grPG-ecK* Mlg3ݑK.8 K˨qnn E]u6̫-Շ$SQ±K[_Pe%b'=dn_N^#IQm7|6̋X*MA1\!LGygԝUxtfpEΗî2r5Y׬a,S,JRsUYc[Uf~+ klDYɹtɩ]TH7WxLCjR:Qv3RFPRv8Տ#6SSiG6j?-W_Ms!mE+Pe'*me"NIYYh*T!*ZfMҵFiF&x6PQ׈9+3,v};&P9&)IYxsqбwҒ[GFC)rEdpcQeHLd~qB [:1iыRmY?kdkKOX#2ўޛ 񕲧j5:bjRH;l#L)B3l]S"Ѣ*,I ua70.A,nX6MQhմLA9K'yYŴvk.Lup꽷ԫp+P͎y\Ho|YʡX(l$bRfe(8AfLBr1<$SdEŰDٲf,"$) c=1c~!aՒFiX&(K$U<%I'X!)rE/wC<5X㮭RT);o7qMteiIucGcb=//&(1 -.TQ8^m])5״FJwJƲLUdc۝DW *i9u(pć4ys=~Vz}j:q1qdgYט,˭='>P\Qm_^Ly/; F*Ӷ϶b,\$6QxjtRj=͸i7'v]*V2,Aͽ?oݴ[xI̻f_KA$ٻg9sY+'e% MltS&.)dx*6J\}gA;_:`Ɋپ5"x{L[c8{1cq#H rco9glj5MBqg8_;-uTϽк]UOݺinN:4rV$TG;NSnǴ`5 v\,Dl30tR9UYDc+dݸX)-X;pp}:Us5j~?Eˏc_cԦW[qO@RZnWՍ2l`ǧ1#qav/$h1 |c&>8N?Jh_΃669:~ګ*tpT>tȍ>m#ct,c KM&FqMA2MȦGI)HK%r_SrRk(u `Zg I+2>Dr29Ǒ$s(0ge#{"#\޼eʾexG;1N6$IWn!3V2:H˼zGlE6޷]D6P֔dȨDTUظ{SXR."΂dgQS bY)R-n*կWFhJMxvkGr\&M9NEr [L5-ՖaXuI==ZBA<"|J0U_ S23]q`<( ʡSM5.1 IJ+&TI,S86\r_#woX5q:S*#u[>MokʻB6:YJ0e$C4jƪ3`ܦF2g.LM2?hRRQ4fBJE1`'pK6jպj,uDHQCpik*tŲ)RSwEG#HpR)f3*EDTYD4Apn`]zY uB5l|#.ѫi) 27yrfrOUhL\_:{oWu7TV'l6BPIbĥ˒Qq ce 5u~^!ժc8x(Hɳ`dͲX)EHR~{c1X*g\6nmE37~pW*,Lc? G563w^{B/QWippOv|)YA Ҋ,60͡drdN\L=`h4;ʲDZfvX%L"͜LIDNs>]vª.L"ŋ) -wʸAYJ'OwZ O\cg!aP;Xh*g 7bق .b3,tZfTɤ 䉐7!~m]6Omx# [ cc'lI n11'">x*!v%F$Bb03yfἪpz'9ȨjFKԃ.1댒cAq[ v*ϓnjYZoXV$N">唥!JB)q RKwc1c1cƽo}[ v;Ȳ)&6xw<"͡ QȵfRn\B]?W}a7L?&/9Bz: ؂g1̿Ւ@sO*x{#ʘB@EۣnQ!#f)9ݺ'fF`vDMI4ȪKt𰌠"k1a)e2d_$PUEPDI?"8&9o%ҼH3Ul6e3eN >=̛`pa_f-ǓX3'9hK׀#v&ٗy\{OiUc$ە&ȄbqƞoLz5Do?gTgwmfbt>s7Nbd7X9fb3]H$2N:=hzH-JƶtںbG+*+Yʩ9ө'4n?\jZJa:Q$YԄWsrΫYWxI"*h"ݛbdճdv}ĝqy97vw}KIA/Pb aH6 l&[8~M? wʹ'NJW)5Lz̔,1󩸂FMs5 a**.F*s%>p7TwFEߺ2^Meb#VhՋUՊJcQuKpEfշ뽫dl_6rк 3JPȰ3D;5~f7iflI;Gބ黢~Gn]ϵwflٞW^A4oدK'+i LJ>ah lw=]WjVXf&r]Oce#^d\xb5QU3gqSxNL)@N پ.ܼԕY /'ElT&U$ % ATΉHs2i_pLdTlfesPVZ`͔&ZfYT+SLK$KU29|CUWrhVrEzL+ܶ!aJ#(.gpde\VO. ]M7[d9#Ƽޡ>cjMfSc#Z,prȼlE'Pq$jBQ$W)lGBHq湦hq6IIO1ܥyT|yDVUK?"US4fGʕFPK:ɍGgwsFbp N%M9hr,O0C*%)O-TO/xN$^[“2غ1GqWp+,0l"=:";Ft[s&;dLʟ*(b7mRDQCIɍ9*%J\2|yY4a/jno$I6kvʹrb"ncH…œq5l%PfK_X*숉I;K:,,RGm k'*#s!F/?ҥ?b%qU@┥Z7-{;l-rQ.9EXt⪵ô]i R<&7\2<{p$nN컶UԭeX{b~ h.w/̾x$Iw)r筀&r?l1 Jæ'tO+eZUO}b,ߢѕsnW]e4cM.[w^嶡c]{EӋmlY&ad[~i |I #ȭ O֣i䕖&jZ yl'=z~2 L&U_E7Iq:K(,b..ڛ\Q5q̛ {R!^Mè[h+8b5l3U{&.c'\4;Xl$]6B6`QS ۬~fdfm>$HtL )HM)Bl9JBJRVc)q`1c1%Gzm7lPٻ91&sMVJj=h+8aExw"BHT 'zyڜW-m#`T ^GLʨ_i&rmlsD:eN(G+&6&ЭF8")݈H3e&21|qc\yCu}F둕:qX@!2dewrurVx;xVUSXnM\޺fwsBK9bqC8n*F`11x'Ǖg/~M/OӟNVE>`uuI.b![ T3hdELO'>vUt+EnLY4MG{8Ɇ c#u1J5Ut2|PD,wF>=C#)Mvɤ1h>TPnV 1ϒ9͓9sUzKZjeY =`h_fE=s ImRsVEt7QfU2, )Vn]-w WZzKMNX.vfH6TTujYol_ H 3g9L*e9]E\UW Nt큎4I䤲.^pL(tuwd]KV]B͓(s43y)%^}wNвq45r-%w4($˹prbNក]0:fM]k6NPQ4MKX+vv`f:HA\&tTȪ+tdջvM) L8DS*e\6J\dK翻?{i5k;߻"5UQHt̳x:"!$dd64dC<8>l~]R4VҼ6uܻK]jQ i(.d7q LvdMr93xhA#-bhS(K%JsK!ah1q-,dT[7R2rRf>= 9xM6IEܸ]B")UR~{1>$r Zk9p>3܄_$ʰ|hI ygSLB=Nzjn\g(='b_uMq`޴ω[siLa+]pWf#[xj1ˤIBi҃ p&uZJF^)9O0|ئrnU<@:4{έu'XIW!_I-e6 1mݗO!䛤|1ѷvj^!s)WNd9tɾ}8*SSKӏi;tsߥ7ssz8k^}L6Sڰ\7}d'oO.Hk=lR=D[^Bw8=^_Fɧ/3EL>YXm{Ԋ EZHg- exjK6U9 M~/UK$OJ{- AE2>$YYy{o7}wFue9S@[Ti&KdZHHi d\gK$o߄ݚ,v[Lp74kU72mtOf&/{}o =>>yҸXtIGLq~V&W:&J.R5A_2~Ulʤ᫦ꨃMdT:g)޽$wE7@n][iD>mfپյxL2H+S'!Sh9P!SH1qmT!5D 딍Zw.vJR VtLY E\+eྎ}O?sWuGڻSwAHjXzZ=VU_/Խ Ab³ EnK-..IyU(ۍ{xZn3RE^d#hzԄkU r'/Z Sgš3t+Cw7v f9 Պꇱ)lQmgU+i5,6ꥮBWB=sPSFڹg@|)  +fxˇSKD'gۜqM(AvXm]Žj6JQZTmkc_֊MfRqQ<[W>JDR9RSh~wRkq&rw%fjԥTt$aٖw++IL Yv4ʡw09,cl{ 9)1 ۍTo\Q.mu75MA!CLRJEuvQᘷ)ٺ)GBu%鵣 }Q~/3v,&Hlp(Bh Xx_Flݜ[:Q&o=>6Uis_1Ӣki)`m {mUHyދkX&^e) );+ 19Udppyl-Y1 HOl:nF]EzΜh/,9i6"#fՉ[)/7VmDm-4/t m{v|—Cl1T"9Mz2ȼ~j'c:K&Q<`bD&|C.Ҽ }UT]6$.9ySg]e&HS`*킧!\R δTDw.=Jv'PNշzFS.rβ~@$֭YgvlԻ Dm RA<"̓u9S")8.3lǜ9˖RkFh;P>SRA3ݜ%!(3swcޫW\ӝ9sunxmb|9obc[xgx:[%76k$wIyO{ٝtSaUt㎦TN|y/z p0_Pʮlc]NGh>1BI FB Hȕg[0E1aG dˌ쪫Tțrc*\c1/=sc]4גzSh6,kϧ.س˷jvw_bږ)|J$_+UO79nK=]+f߾ nC{]+mDcǓ>5J&?]On^NŇSGK-z`Ë1VյGd|^)vRJlѭ&:N=eQ-\'9sݜ|F!b1L\k *G|̣ {&4FIl28ʋx]8w ޗΐstϿMV5զ7i,"Nc јN' &CK$8;y-}Grtzz2 厚CIWF`qU *jJh"*S}%\)Wq4u9`X78>wft㘝mZSg.,0_h7qѹL9-p䶵b-L<-YZ|hw9IBA4}*mB+NS%ɱdAb-*k L!cuqej[rLQ d?`h"f[?(Bǽ Dl*վ1.8y0Kn_AOѬ4b;c*MQD H>Hcg9J"c&K2h"]~n>4őtoWS|Cu+49l9k k|5- ˯cgEmIGV_ӻ</X3W.+:yi--iOolaj_Vg3ĺ3بǧ{'F6M\}'b\رeLޱjlw;-j[1? v>1`XTWA 9/4?eFi;F:خwV[/+;o%Ȏۗm?5dO 6hm?FLMl_ƫwhQb+锛͞ad EQY#5S9rC)g8t֍=Pݹl܌郿*lJ0YWX^:k2qQIHJOL!P $SiTΒrIR5<1˒.upbL\83g聾:Jڟj,~oY7RޫsTvϽ09#DeS6y<,.N.٪qg\7]"wאG6M]_U9*0I3IBaіUMgpV nP5dvt x jiKKxTC3vMeaH\w)?jsFS9lhAi(ctE/[*\' vPPȨt\Y)uO꾒~˒0Ө-bf0ZqQyϪѓneNxNs+I1;^-m=z1J[V"*:k)bG&>Aٙ=?*y\K.u:,X%5r'VC639q3iṃjWI20$9R3b֖{]y8|Uk`y&6а0FZ;-Kڋ:rSxs eI#cÜg63h)1ƭg Lu-T"L]WpTxܐKӑBWcfE /T;閤62b!4ڰLZk#ӟDz3ӚڜFhu-mr\q{_1_wwmq\z5u#/}kgp)])u_Wgͽ\:/qӍ1֏]Z+6lT\mLXڒ,c2vr͓V>frw|c:Ǐ#1ҸեbdD>={Z֟ff Ԁ1M2EFdw1TÈ1yi1&38)HR)R)q.;Rqc1c?j[>d#r'q]:K$||GMBŜgѩU:=JV{ޞ_3}Ѷ\g-7H'!!P9S9pbJbpb \83gb[^bGKR "c]H9W|(l|Yx_PS7{0j1ׇP_d);2j.{Rp16Y#d3|jU'2#-je"3>F2lUK8*yTΤlx^"Y󿦟ӌ{t6xÆ5uO+l4 k75lkŏWg_LGJ=Mx}~KIn#LزZ~~],bɓF ݯ_-KVdCH`D*Z,SLj1ro"JVtcvppD4l|xs &$oߜwdOj))&C/~>!;BHq1`|Mv+kQxc{+//KѓՉSu;H<4Nh(iŻGn9fα[LyE~r& f~Gq%Ȼ\=XފZe.pLU̮(T@nxV*^),;dGFOA 1ߜCTUS'P>sfOxoRz]{9WmW-zhh`Ҍ|gz.0-kh~;kqxm1Zslڽm;> U\1\uzP7f]u&ծ],jΛTl"{ qHf*SIu۩ϟȪCc( ;h&#ulkaX"h6Iܕ"-bWpW+*ALC`1{sQ5i{8x(SR |\63Ag.WP"Hu[S[m5캺Vȭb4r=t[^=w,Y4U΂*E*x| 9Pl4e9RɌcgR9km5~};] # J),ٻ0p劫$tP1]%2_ v ՛Gxi'Smlvg ҍ͞qk5 "*2% qK_s`4^&zԊm~uv-o-7O!t[5QLe2:YLdS'p7@_sW:"ə J?.Ќrsܺl!3tZW@Zi(;ej] 9Jok9(4pL!!\ &SekKmz/vGm:NNu9o,JR: .=ܻp6n)d*\6lP]4r WۛBU8͔hYX謨y7lѢ"s9q骷Θ ޾{6RxJ6;4fY(/ x/ !@618U+%0&wr2#rZ)3 n ڵޯ|b6mN2G*]oH,gs7XE]/~;9Lװ^Vtjr9+dzj{;׮_=kowNU9xsSZW W]@>Z[עm %fy$!g.Q6v:.[F1 ݜ9һ+gݯ*vT4ȫcHŰ˷T._O8P 0ZZ]kܓUIl .9]rx~07S3aT7m {>ѻhRm[MZƭ,ǍvD3Ǿp75\pMi_^tUtNjSk]ӭ6uZ:~ ^1*vLStVl[)ɕŜx߰/_m;&WWQPj9g wMRs$k[8EQDž$h~!ofH6R"XR-Ehvn]ȼhɿ\EwB!_ßҿ^֕H@uP FA]*j[m+Hk0|FϚD3G5_>r訑Ccpl\檞qV[,/\X[=ʰ1kwl8S 6־ٺl@'jWz򺢧o튤 I:Oʭu#ԱyaIwH ᔔ{/3""&5de$ݷareE=zD5le]uSI2c&9g#95xFwSN]D}AjQnYшv䩷#gBC˜)NC`60bb1sgqg3jIoiRuu#Y'رI3xZ>$ʚQ ]EHT9Mc!i-U vR-A8r&yM ;qіI8O՝<|#v/[ lk^_oLZ#d;Iċ]&eG M$sP&MRD_NC!c8?͐8uЪowF!î΅P}ӿ"6PR9_nߝ^LrDH.c[̡#2-ƦI|/b̼ĴlLc!cJpov1xD[5EU7l0.X^/G|)05mGGV9yJ?)19=Qms`s_,Ku^/kg4Ն;WUXG*I(K: GJ5uS19 |0O筛W<x&2uenm:)E+4 ψLɖ{=v^[f+u{Yٗ0hL׎DQE2ɍ1R\~tұ8D/it2KciG֙1Hbɍc#z\@)7\[UVze^ 2n7{o{5 t1%)FɘdzpŌJlf0+^?eGe3tfUd˓$_u-]kT&XE*| "o/Z/c$-df)W q^hl5n^GD qLԅZ0?b*#"gO 8^AupEUE -a6u*?YWٕWQFPؘ#b ݤ=VR$],H Tޣ\KUft&.癇~<}p՚Y餛zhfqH.[mnt'oCV_zb (BDm'b!8@ctVl|zG=2nvL\÷Un{97:mG4Y5HLpJ9k-.JV7Q,jR򥄒dғ >gUv,ѹ n:$~Лybk:FɬwS{YH8P:B=vcc9:$~ЛybYn+.ط4b䬤*~TebPj2xJ>J/Qr>K'Op}쭡"N!_.nVEdNUY%骒Ɉj9Cd.pb82 t򗥲T+sOKqUG* Lt!F#3"텄'&Z7w<&$P⋖6hL*USU;!pYZk_RF.b ~w w KtqËO@ $[$k3b7xS&%dy)%s#ۡԣ8d~z M5=u0^Œ'cˤ]V?xK{kԷJDiɴ$5La![*FP #eE]"v=žB׵kLVJ.`UˮyT"z$|WS5.<w֐EFv5z87rPd+o5&9Jg8U EYP\>+4IC]`Xk86jʷnՓvvy0,D28'gd9dWYRw,nskzU(Ia|J ͨZ%-UO8 |9?yaKv":b%e2| έs<ck{֨ iJTCgs '^k 8EXrNؚID|%tG1UXq0?x>3u?x #F-;n3U!Mʉa,VIV21%k-vT IhH52=Gn)ٛ[})bҙ2bȿk2O9ndfг.Y5|Yh;DU Mw%2tggn;6wou"Y^{K!^|E=*ZrvyKWqBu96<۰3KړM_$nHj땤 g0(b䎙ES4Qnez &raU,5~f0qgܓ)mR[96p͍`i%^'<Xth rLwU4_@v+[N**=z奢3~2+^ž`W+Ӕ)Œzm#;1efmĨ ޺!?tu2|Y)eHJ|)PRD˓?Er!y>)}9&)b1M1vqg3gRѹ~1^c]<.q@#Ě ɖ|HIxVm+ tIHڊ}yǨ5]_m*5Y0X 8Ő|ڗHLr.՝gك|Ug7& 7E3w+g9tw+|ͺ)~4!di -2Dh jZe$G:f?L;+r^s9^F1 A7eId%Q?I.Tbppxr"2xxXf-"b&TZd-4lJ ۤ))R>ϢhZ>U;C6l= uΥX#YxG[9pr97_ѣ8ڽvEj_Xn4&9l+FN[J(+e 1l%\SR?a<>YlDYEE@D&qE;x\s@y뜜fM׼[a:QK!m+Layc4l|fB2SS垙6iHim, V <3p*UU{97gKDg e0VQew}[@.W(S׋% Fvb3QQf[yMrPAstCaS~dplu ˦uwں^L˾1d FYF2_z*UNFPIT3T3C kmyOZ*tZfwvGDDͩFUDd4A仂¸Y˟pl]S"=B9+mFv; uWM WN~s5Y)tU:+$|C%d'o+B#ZDŨHPg$6>5,u/"({mfz2T)(:lYG9h9Mq>MT|gɎlx<&4pg1db9)l=T*ce18ɛY9Y&QM5 y-Onh1M0h%+ocLrx8d b'̎>F6ښvNձ^-&5zW),%g?(IٴdwM# ;S]{<-uˍbj k lD&Ԓs|oZo&r\X? 5^AFHgO8tgIJ75/$746v8#?ASĸdEb'Y8p٢/ !L1QEo n礀`p>hrۣMTﻒ Ͳt,UZ::kb0,\b-eⳅlIKʸFOWjyw}aКtro ;Mm+(\},zǻIOc]qOUK>(ejfYa]S3LQr TJcnrrI7^m5G),\3.qG?cѳ5(ELKN7H5wS+FdlJ߶˳1IWLd#dJ5 lvnHG(CY2{M ۵TtJ V@6gwII44^/}"PUIe :gXC:8O&XS}o4&Nt+{ˇM{rN-W wU"+/ (r9LT)Kx}‰zܒ羪ж]VaL3kuʂ,?AV$aC/C7I\F4.-HΕo2o,3aKMIM1n1䫂5`v DHvfIHɶg<)BY! =tv]A3_ !î΅P}ӿ"6P5־׶UFU lBQZF2}$"pܤE ;CEA5g%5Eb^W-8p>Y4N)sM2\ÿO7[Ӷ}u*1U<2bB8OÔlK ܲQS-=eOB-Zbٻ&Mh͢hѪ)lճtʒ ۠H (Be)R1Z%gQi2NY֩!+2VbyHv,/(XHHóeLe1uP:n}ӣn^ӗٚޒέ^ogm]w.O8Mb*+U(S@cxg&R`| 7jgz;Mw |ݪa?,ܔ{ǐNdt{SUKk֨# -p`n(Z+jDy,^" Xe ͐uGﳂ.?ҹl*]үT3 s0M ]S8.-wMTZ5̤f8\"|V[7dɲ ٴE&Z5E67DMH(JI&B2!p\c!O?EӜ"Paq\V05 s`L-Yn5H(} m9eff;'_pCx{ۣ~ }^YtgM ˆkE׈h=eB.U,Rr eߝhG_Ǖ:$~Лyb..22:9<4;qqlEGM E Zfl$vMS"d)pa3 2T<61rr-g!%5>`5x*tU]3s!r aƷǫu}[ ۚKVVHPsKh2t.ĉ\Q&@HM5U{N+h8p 6XEܥ͋:W \.odn|͛d^3tnj3"᳖.ttER5S1r2ź.ӸZ&A~tQ4!1sݜg?p0ZMݷn(ӻ2Qjm[WMFؓd*r2nUwgNEYk}[YkF}7TJ F5쑐Ajl.H#<)W}HBdЌ"lL8_ʴtVq/sRq!O-Cpߊ,gԈr[gc)aX(u%.U1y0L'5|nZPGQru,<#hD䒊ʨ&00L`G>WzM!AzR܁ |9&L"nVTqTY{7"hW dYxBEߏw34Ź~Ts$ & (DE"4I2d DL`!qqc1EdP.Q.QI4|[&YDNV^p.0 [vA vu!W!qؚ5q-j  x #~9'mŹlٛ>Ƌޭ5V+PqL&CWwdtc4b;thNꍡ['/*z*BjCXLͫi(NbShɚʏ0Rd"QhGqun4MxI,Ӫw1۹qZyx0O06hR#Y1k5 kڎ.N"f-IHz8 u"ajtR]WpZZ,ټא]"j EJ9RW)cF6M$"p5Kba۶Ī[8KK|RFEn6MґVIL̝% 1 ,k05(p: 5DL{r9* nͪ%s$){ѳ]"pXiKN̓״y1{N8$f6OG2Rҩe7衔 /\\4u^"+ZrJW,'S Ejڿ.N\f&@1ʡTe Q9)'5gs+r^ia+-Td1R,F5c.P.'\ͭ)-^EM5 3A2T"/rNI5MUL`!s٫V[͓dllժ)n񂦒$R$D.0R&JRq;wx묬kf=~ʣ[4jOMRM"#YbKr U']袙.4z' M7؋tIuL5B<*`YyC!6+NX6Z_kvڼ$o-^E2E5po$PpRp.ȟ]$Oªd1~{uҋѩcB vDbpHL3;fj,LH(WsN3<9UMPd׏K9-Thki&s8I™23-ӐzXhXX^.LDwJBfvM)}9'`﵎D={G,T]ݡFakqs,-*Z~NN@O s.֕+j}y3.ߧ\[ye˺~xd3hU9C' SpR8M *>vhj-gk6Uwa` g.9Åo5uNpmmiD'f_F*:tct lS|YihYNLܺxlBH79ZrؚR(}7VWZk\;]2ݚ EfN3q1͓VF!k,6Zf pZI20VHFIt?"|c?15M8YPVzz k=^<M[1r-pdZJb6\[eWnDi-Ʈ=Ybl)!S厓_Q$VpA>Aw $NI8uu3V F{Tq!Gw=gw5',UhѰȮD\eIFkOũjVoYk4\͠pQNlcP-Z5ªxq36~1_:CNCxk R"du]B.;g6t\Ȯɜ6K.qm]k{eQ) e[+t% y$c'2I n W DPOwOZՐ7uɎ՛~qj(6P-_ X2![H 9!1KnO*6k֊r[Ekf-Y"|0|\*]E)>ƻid̫S54-XʕXlFn%!" d\td);U\W\ ^BY"#"]s&511w`>n@pqMjyۭgƊyEI'R'S WGJ "7Hy:ҝtW`Ci_TU$pu M*0&7rv$_kq1x#n4ǝ5 :\.UZ9f2.2l8+/;~Z,|8?vV:r%Y@BZks-^cc7*'"m%&D|麩!>"85jWW`utL"ZaGDEk.&!UE2\6C wKJkս:pҩH^j]Vm≦dl͓T`̇:H˔C ,M>YHU+mfa"7٢#砥MdDwqR#Q\n I*R iFq[*j,㴉g%*8Mt-6dú} g S&ZferQk _ ?).HLɰ`+6}'&&L rtOr|xR q/xY?Z~V+Z2R1i(9?~b9fĜ4xI & &ER9B]QW g͊}C[ F7c$󃔭;@h55a!3evLoQJlZօ]c_o"Kfl<*q^4vM[toNrٻv.EF[9Hp2k *ɪQ5 b1L\9QL;/]y~i7zNe2Ӌ)Y<æE|6s^Nx%klE۷UKc(-%@.>6 IUi!aI5Hc2 "9Gr[*鸚i[yu-a>=㖐=ABE)+gvFsӎ#I:u>=9rU8pKu]ueYeEUUC(s9c&r@ډYӷUQa⢬͘FFK 7l|X)K:]SuQePݻLVvVLo=UF6jEm'6#PpT'E3r\wiĿ]֟do8 V2WaY %rE &0T[5A$R/ʐ: ؂g1̿ՒZkfP);JU`lnrMc $7~Gڑ(rTkSf!!LM4R. BJBJRKc1cv'u%4v3{+V"5B1l"նYj^~KD;hiïtoQǙJr~GƒWV#xYW S^J-G9t"X9|&S`9lcBx=H\wm$.VJU*ѝ|68a'la9K r{O$]d&LLC)V)#dp// ;}ʘO[=4u7QS& |)J^tq׫ o\z+uj NMni ݒꌴ+X[K2V,2(vF/0u!fmʭ}yBR*5SNj_61Icd+𫜼dbMb`CYjq#RV%o-\n4z9R0 $juzͥBl;k=6yXY!Sis3Ne%}ՖoVl2xlfiDVvY;I6¥EdUQIDY<,bd(")L\WwN 0Ryͥe6`KZM!6hss1iǔhC 8装rjB UTIEQ4QE3ʜI'QE>pB&Bc&9͜Ll@@kSo6$ְܣ:S $);&ijxBT)Y+dg _C4UԼƲAgo_;]&훤R9d *}c+=F@c"^.T|5/4k<91: Ue/)vOܷXbMlu*U#-OsGC>Enh3b>fP52Ħ'5Lf!ի/k0s<Ƅ۹uFȅ{^ՙM̄MM6 %Um6W2$Yf$d ({s(V&rT3yka9zz^߱ٓjBB,q`3W&[|ݍZښi֨.$Eu_2g= rvK}8t'O-CKnN\iVv-.b馬lE+rɬf16E%xQ3I4Ahk]SHgAgRjNHEcHWUyOURhDRsl xӐ"5o[cܴbW ͋6"f%_.: !' 㢘y ֺ;]VuC9\of;_y#"DKT6jrw/^݋$\ )/ޏnVX"#z 2~˞xܮ+WHmZ ָl1{e!M,*fM4^JF)(],>Cet+156կ{eMeP2ۍ`e8+ NVfD %W 3xg1{lrG9 S}%SuEW {ʌ Zvd5:uiD_|cM@: sQq )v׫Se)k^붬Yo[A0Jf[j^y"%x&zcrgZZi"l k1 muO9 WH1qK]wηm3{a~BzxʶO8W,_59k4zl$=w1۶ztbiuG9?>%oF`C Tii{s\YO퐮BZADbd,vWTlX'ktޤqAg;MqQא"OQ^oB2e%4\p$Y#D_L괜/m֪֩Chr OfW [DYkYMYYMO6RV972 ZZG HNFo)I]3AsTbʨ5{v½+3+5' !>N14ыyhM%qt{#`Ke8Sq Mf!ԉYvȮجVjSeBguv]ƟQhl]Hz5}HVvs ?ŕ|&E0T^w'2CILAjmO{DMTRm - sG¿hJ6hG([PCM~\#ꫵzw۹] :StH*ȇ Vd>7*ND[ ߩsW .GS{~}F0ֈPuFuY<͎791cWjvl05P'tpתG*.R=Rbv%Y~mgR2G>ui*r&jbRoS:p}a9}i uf=S w[g>UE{=ky {:9p(GnPI`k>puG1S(hֲR6TbuZ]CqJkey[({g=zƾ)8YnټE[tw.i隹Y͹Bq=̧I< y|M8yog6 )UJxqݘY58]/x!t[Ry7X5n̅VZnreEUKn3bgos?+EbӔ#6VSv0c`;ߜwB=0L<0sR׻WFlŋ_m+b?55B=<$ҍˆEnl/%to'PwO:x''=Ϣv}N3pܬ[6%$]Pԛ=:-;[uU$!,EΨ{ԟZ󲪫ls^V|VI1jZ'+Ժ?:0Q%N u({z CO7nʪ:š m+S\hٗn&bBߓ0xc589WJO*ΎZ)=H"]H/#LSѺpyQP9:wr4sbbBz$&٨jɵ*(B"$z|w-zO~ga5^++ m1UigKjc'MGE$\8]\upgЏ:Fw^J#'lFkZ"[Sgmk-M/1H\W~T?&5vjtkN,M:uV[tsg/-2uF$U\dthrQetzheۮ>J׻/l[de~2֪&[֙dg?).> GK@eL"Veʲ]:?QY̖柳ia`nLg| |6fⲔfcyh '.<{In 8CyZIX9*pfkq2 n)#$R*N)ҭ_$Rl|ǔ&ڜ!˾gC$c`)zgKNFƹo!ST &|1U΃Bj0u,9u몯E[>Π36䭒RRΟJZbƒFQgTn8iY/W.^jGh}Z"ALR*ESNn^7b8wHDg ͲU^oY tP:Mum IlRUY"KW,1 <]Pre 9{mg~7mnSn4-ugbLi7gJ]>YrO1eqŞ:.c(7j )ӛ5>IhHU%5Z8modZN=ХWEs2W_E6N5PԻ.9= +)!m]ސך c6oui;Z$6&:2nP+|böɳVĝv*ٌZu$r0AE-[WE 5cT>?\x͢>js kC}*ZD>ڳ^#Wzy m4. V"2 zƽ#30YEG:IFỹ?Mo?]P]R>l=+%kO[-%\V|XS`"Nѷu\CJսt+<~Nq]#tExy)9$Q#v}KS#3ʞYgbL'R){2VvX>>rovlZG8a!)"cN9W"Z]'"}CŮzMvF-QD?fW2~ƺ$<$}=|z˭$ӝ1&\8fc)T5^nQa"dNǞM#0xfL͒3jf'UUY"*Tz}:SZ8s{7JMҶ<:ӎg:ѵ&ӁuhnٮZ4UU[3"k<~W!P:{1\TԹ=)c=#7FjVYHjZ `qYۥݵeŕTAnlv9ӶieROO_ZJs]ӂ&Sgҡ1!"8]C"':;vt:HuǎRئ9d[` 6*܈tv"Y9ضn8:S1/UFQP{V iy6Yr~e%Z{IKK^bWp2|*F+4a1(q9?]Ў,Rqjse!Җ~F#NɳX3Fq' +J.S")UWv&I&\EP"d&2cJ\d1M.ҼHv29@Q䮻NikDq%g};- eo]4 60ɚ HN驩EQP9aq1sCBqD 7Wڶ!R6%Ovv) XE4c7З@usIDR@VҰ|0on.YI7ZsPq)õkoȮzF=Dzܢbi%ʫbMHkaŝi/J+^v@1<"U 5;8Z;]69dE{`Uk+Mȭm';b34Hܩk͖Գ *d!\lֵtg%g*\SWuΟ [k[Xkhăi9xȳM9r VtӕfE.C]UUv. ^&J4yز3Ǎd,6nynU["ɛtyvҧ1uVrAKӮ!Txc4mɣVwå_ ,z\r?\Ohq101!bX'XIJm,e&f9DR!|f1͜_w5;V狛^fyL7qTaӱX!]{T3$3H6EC gW<6iu}BF)vjOT>!RbZå=zㅗ=)q:WG'G ;ގ ݪ^q/JE>6*FF}Y(8b:F1%H|uK']o}54r̵f2}.Q?RkfYk%)?.\"SIRP˔B#0=JzRs"ZЂm"WpFz;*gnY4kz/P:zXqGOhz?Yjj-=ejp7zU^Yv N%{(w0C5htjڥOtpnGyW*E}Q­{eI,|iNQʷ\EBUy;W;MjQr`FGQ,`<7 9AUH &s?;PHl{u ZG'6*h(l*xw%=](E&~ , ͹E ](Ҕ= v2ΫhWB]2%rS;#۪?)hߤR>5^nQa"dNǞM#0xfL͒3jf'UUY"*oDce&8C0ydgƭ?)"H+ydJG G5 EX9EVjC%F9.upp d..:%,bY6faS)4d$[7O'9ϒ" 1l15l`R.C>`HE۲p!Da".u0"5|d.1A*KSj$>dqYY/}ѯϧ#/x|k0ϡ&M׋TswJ ykʼcvّq#Nfη* f6ŴTs;"۽GO958oS;k]Hjjz]fGڼ~/i6n6jiYGfoO9fMm Vvo5j" ݳt6u$PATETI2! -v g]^q\BVC:{<;iԶܟ9;x=s~1dVŘ_U~W#7%-{!ecd[#%Afj:\C׫zK8vyݯ%fNjzNiPBs&[*j>^I,Sw0"w)kHisqILmU$]zՒ fk62lg90xV%QV}4FlO!WG5Q.3NJdXw#*^Fv;{.[o5R[SRܱ-`%b=i: vK>EpdC9R KI:t*L8'C^}|:uK"efl˶+[|,O+yGznNCi=k(tL;xٹuvm/4$l[+R;0rg%VU)эD5eڛݩ?O?޼Қk㌕1A3պquyPA8J}D݁\VLr?5"YM8E4g<?z.xvEWHg vC$ LȬ(SB9r\Ki5%"Tz.WojFע"XIx% fv>oZNb6 aӚb%}W+n;{,U{7t- 8;CڜIkrZ~~Urmy}W^=zdmA?o|'F}krAgR!}G'ejYF:[>`sU l(Gvk;xS2㐁Kj/|6n/|oV-A# z޴#Vifj񌢛%$B{=Bu飦,:[S`X2|T䋨D:lYtrh |yPubfGHhsRoz> :ח]}?y9hyn4Fli 8;[\dkCBg>kɨtfr[X 4nqJu.y{-)3Wb֦&εNVcg췋Kصd~ٚDd#Jջ4-ۇG:{}9-մ~Ժ:j=H=Z.vV}x̔MRF5G{~!&$岲3._=7q Qͽ^^ab֥[*a&Hl9_.HI8p٪j'(vLX7kt]~|#g75jXDZjfzGfJ~Hl;Gvs*wCBuFN^@̙ ȴKyu\x1 au ?9#ة d^5S]2:b%ڸ*k*U4.0r8yH:TV!xԥ$ѐ, I#K9j& \7S/\O֝&5VKStޟSU|k=FQ)jԎH1:9S1>eooSd\y5ScjbVERkuݴ2wf:Xy)TdG-'<??V={˲[3O'rkԗQdKl) }9CEk t>^BlɱAzJ*գӏQ4w1q]nĞDZFI-J[dˡi8zzǫ_<,U[g $wk-:Uf~ qU;VD}QO{s;U,ikiE0X<BXj~l !9D~okvžy ʦv(]~T5*6VOq4Y~kAgUO8ݱvܬB/ON$3nU a~&2r*{0k'+&dtKpTI%UR>i\`.qS.\/jcEbWJ[qND<ʹ+`𯙐^u0J:Eqm_A˧v%R:ig[m`/ZkX&6 s+ 8'Kڱ&CZ+x?{E&ΝUiSw WԪ&d[TU_1 SqN(K` 2i6Uah;][5r (+uzVUKզz)9v"rSioJU*j#*DNSLD[m=2;1SUZd9J;gj rgQ,.✓- ѕ`QPy6W8|t3Ysr(_]/ð+zDZK }1\zIպߨ\TZ5RUjTi]MN$*YEDhžUUrʪLsDZ>{ߙF9M5,:Q#6m]X]+*5e=r0y&IYEN#̫R_MuYs;IGZ܃S77ةeI~W+f|^!<$Yޫ5[uL~뭗_'"wUZV2ϓ*)$+4R*< KnMo?]P]R>l=+%kO[-%\V|XS`"Nѷu\C9"jnɳ\)*f_ (ǁB֍}90H ssi}mu[mnBWZSKVױK!#9!m}dVrqKv?jS,wtqu;._U85M{]Շkx]Ukn˽⎳ >AY-_c 6{7kz{67 ]V>R(E*X2Eӓ&L:vD͕^ v//<ސMzU[]U6zDh~Be]L"LGHٟ&NnvzQ+7,C6jIq~eY;*sVz` ^\'c`a1^{\F6C׋{Sehm]gQ3U>(HLc 迂fbF2B*ˈ)e-%!-IUTSu=mW6Xi.85[&bEV\&\} ylK2oYMXcys`j !IмED]l-IX]nQ@_;'ly}7N΃j5pjԍZ[R&s(M3K侌g& 5_;v{+X>k_[$%b eed?Q<5~Wp;|NۢRYr+tq\~iӐ Vuũ2+gҗ9xo.͍iҎTT12TJn3Lx6ٙR#^S+ 8vQX/Iba,&JL#ٔϗMAbR=Ǿ{QNk5n51ޣJyc!J,U8MGR1hG@6a<{A+j i,lOD5sXJ.s3w/OWE\c oC  ~9ңuڍ=O|FQp)Otn+E#B vcžL]3,”1~oNtvX> ,3:K@ΖWS\֋4OT[ޣ9KF=̧} #. )_g|+n\ rʒ}5_A.NgFA9ﯳ*^_)]KY'+B?jA"ٵ zl~vw# pY.o?af,KXVf^KpotYx7Kwx)֛Jmcjʈa#ĤaVlR~&VJiIu~I6 32(uveQGfv֑j:c(zlCrWg!w6lMack(B2f Fth7:{oڟZ(Z'iUi'S#)qynKX7ZoMaI:ʭ7\j (P;~{jo_4Tɕ$ѩ8JvԖ)}及a6V3PX([EFc[X-V{_4E_E1_fu݋oRn\ !bIoWm`w=.o)ـg4Q-Y)p;Ք[bh&xͦԞFd!|uwr`@FI u>Cy5;0~(e,Y3ٟ$HqDc&[ nWT酝w^mkԕnvl]5bX27Y ݝLdfJ6&o"vzNМ׺GOZ<td)+ңvڷ u]O+L1$b9j|9nI5A$ΒċC&̪4[7eZB4dlALDHFI u>Cy5;0~(soLb67 xH dQlnh $PE"a4E$R&d)Hd)HB.1cs֓?W.AK|jwi8`>QxqWaikʛ(^dL1Қx*uld|Cw cIf,$:G VqǥxoR9JmhDkg2u(&@ؔTlHE{& I.dV>R3lBGԻR2d[b jik4*.AC64Yk U{CkL^Zd5[jӮ˒D\ÞEnZc|00r([;_m16Vs[iH&>أa&X%2ҤTzh4e#|/2viwu{;;}d:8mI7$9_va0=wu۰և\c\}\Y8:FCF:b"u:D*ܤdVH.plDbg8vsݜgyh~|lMB/"E'55J3iyZ6vR6.2c'tQ۹,{cdFgy~mgZ]osK{anT-ڥheb]!(ȴ~ϧL)Es&ce"ˢw?\q|n]aME^i-~)v6({Hdiמl<)zNE @P|:t8W*{r#;aoV36#|oR=uݖ'5hיJ ͎`EtZTn(6'l+Y1J_Gq~uPnS^ˡYnfsdV'cy6k܎Ԛ -e KtOzAqZ8do"ſ6m?% ]EAJ_0i2rSؚU,Dπ ~umi>Ȏ3迄;QD;MPB1w iulS 1\#.VO^i~{3yE_{ `sEq?<1Otn+E#B vcžL]3,”1~oNtvX> ,3:KYvΉ쥺W6Cɪv nuHӚu>sfbA=U&;0:5 462m !16hR:H̝Xf)p=A?9u۫ ^,JA΅-[ n񛳝݊6.bNn\F;MY,M-2 %ai8f#6pv`}nAf=;#pe|b *sl0OѯKnvǙ-u,wߜsBJk&ϕdSRքKgHK5|m1VI{l繺n{&zqm*|f0͢yU-S{Cen؊HvzCC20ӈKnvBvw,_Ex M[7o^̻cٺa\e<}(zrdΑ]5t٪{B~ͬFO[/3ViꞬٓoR(nG8Y$u YM^ksCK| M-h6UnmuuM3;b0{IckZ>}u.r[;GsJ1iX?+_Z̡Uٛ=u]:u(hgjͷ34jѷ\wlUWi^ h=am]cie,sj;Sy?G r{4XVS9Vb8DיM+NȦy{Q ?bB^jHb#'rvsulpL`@ۢ,T9Ja E{0[#r%r"da#q͑fPj^Ymτ;u݆ {p2}e_5kz7gEohq򁸺@쭏jqcke%Qf'LuD5&g곏'lz ӴlIsɍ^9q}r ){z7Mͼ)7*𫙫ҥ-F9MC#b*)e<(\ 'IL&UU$l'P6)_?erRM$K}K[=iEzH @4%=7\{ݜrHaz^mab Y }&eg!URn:jf*&D9wpf ]MznFrEh{'j]4 bzd,(eR DJ0Y6!۝g~{l܌= k|&ُo3UwTϸ SdUk;ic$$U.=:Zs]NrZ/Oo-=QoNӗ/z`/VD2HH|7N 0h*=wʽ̦X:lmMdQJ3FIEOc$`Ixs۽T|Wԛhf`7}lA2N1]9rIKBf"%VZeG -zomoρ۳)s2'89#>5}CIҪPwml5-r (zU#:GƷupγx<; ۋhȘ*%? [۲ou)uU<qy$XE%$AgsL]qǞT뿂vC-Dno%l=Ty riqMˌ[%y=wv?-ҟN2p^Vx黤3a.Cg-:zR iN!zbѡ;S|+$)!SRUџ=v[jjC,Xu=_{w嘺< /-ww\-ceKnVUrJz7,Ժf3vBfg>Wߴz=uO>un:SCDuhkɳTsS?(sT'K>xpӫQKKE|i-t. rZI_n?hT-d+O/>i3 ?wEh> =]F/3)/:N?:SY5kGҌvQSX>X#x=llG!8ğ&=Y4 _j,PL1Sv fl`D\RPHU6QK^y{=b[3G56\̻IN=oiE-FPRt@[+tK\x B!HNz$~‘}?DV7ձ+onҴWIIv\  "+$g"\MUqĻzyusoXZ=*5"I6IuL2rp cd.@/Tݿb}!w}J)y}rţ&ŗ)yj$b27v=ǃ<&⦅ iv}}j'Rin; R"7k< >QÇpȮ(4?tWa?QwvL1wh@ DʙaƬJ" : GZGZ^n9ߘl5:;s;\Gbf2ZW6VQvsEps&36N3g%)2lc9 xsc93ߌ Ntxs=Nޖ[.mLB磞cpuC*E%Zn艮TNgP 3#^;Sy+P׵ҰOlJyWKo'cVlpj;ۧ.)Z+lzcxc򣈜`̭q>OZ Rny |kO6]̜HV\P|6MtL|P`jd}$Cx7٣#ZN 'u]a8Dg Ho xn*wnt-NfX^#!?^`Rf)sHMvΓˤf1> ?]Jh-XD}4٬ݹQIt*\թKȭFk9ITA5i(b`ab4 Z4ɀ2.ͣ1W-I'O% NTN|5#dCTw(N׿]&}';- V˧X)-ш뱳rG֡k{#01i04;Dr40/D9zFnf`;;ZVcȭM3n0*d_Q).8bCWU~?ycmm{Ֆa132]f;Ţ%Èi:Li39 %K:Ir'1^L}}ȴ{z7L>gU1z"dٺx" %83b;ܒ>H)ojju`yhf'[ZegFL.MLBA7 $bVz;vwT;1;ӖyUUU^(rYnE]bqlLDr㨟%,9-U'%'"U9ʺ|^VU"ryW[vy|HT{l;mIa,)kxSs?unikRamOǥ7T;̴Cf5/JvD!؈x&#`cpI 8I`luٴ9/z%g};!-Q*i4&&O5g q%_E2,"LwNF ehP̝lKD vf~#CuY0CmO7ptx rr/XN,D/UJrW`Ɲ,[X-1#'h0s1LY3Kv11sל?ypY|u^4O'l5 \]nH$-̐gLQܒ$UeU W"v*8S/[؈ .=K9 ԷVnk!x7)k곾dTt.,Q<1虺m$+ޑ5/Y|~8Q&-nj)@2v2-%w g-UJfn5X'-}n:^CqJ\VIi2UZ 2>~VZD-;n5 />9i۬M#fK/TԝA\Q/ i6,zJ!\3Uer[]znZB#aZܐp-9?;-EűAw2r.d\]$S9CK+`-:'%uVb%jY-'RfEXY zve,|{#\If(usQc'SqXk>|4=ipPkiaU[{BuTu4L5X-(^mF=sך[dmw{Xb޻[8:?(ݛ&.Eͣ:|uv]=WS3_vlMî5Ωuҳ |ŞHDצݨe8V>ay#d[t\pm;ۻ`nt4 eK\\RS8j:6[B.]jHF-l'ni {8h׮o8̎@pcpO Vʕ=b.\K__٪7%[ь8i `{8*:Gm~37 |ձPYZYfmv=h;㞺[a˙¶uDB–?эYbޝ!_ɞ] ֐ffqO>p͡R;sssDm_cT=8GKimCaouf/ƭ8-iV)zF ɒ(̓zvns6_ #7_8uͅ4m\:Vq cao׶Lk5IԶZNN8%Z^ CP5<=ˇ;#G!{%;9kT/~|%w9;1OĶu//9-!E;Vv B>kY`+K9˜J~^PFcHX#r՛.]J]*\(kєf4IyH.͓$\bKE6\ .;7Ο׻F"vUvUC[3T"N#^*nEs,_Ji"doP>o9lZ\ +gݲnRa?HjX<)] ިxWXN$,N3Oh}ed""w=NN9 qaQiܲ7wx_;S|IѼ?- lvY phz[Bʄa*rI;g,x+`#(l=w'ݾf;L}$ qG_6|t;{7IHEptkÙ[uܫ@ٚJMAϿqVۉxH9ju\hc5RIk72_m1, kI9F2~#YVٺETEC Sg8_Tn/VKn8J{[i_:&V43Ƒ8_w0.-.| -7#Οw.{S܇mc^Vr,*uYyg #1RIIW :3,$Iދ}o[C}Jkab=oO^T0[/BڣQO3jޯh)b7WG<"Mޗ0KDzHT׮n\:yq:_{F:C<+C_ < &4 E<>q dѿǔ{p+{0,?:nav'Guvƪ-qN_ٸ= -[}Ogkcđ<܎# n#_h-Ev)}kkȷhe'ua{ ˅ߢ6q,PUVUGj*hw>֩hA7uq}?:USD+TJ䕞m1L1#e?xKg93=޲Q-=;Fmvs;[6""¹ZM4LEH2WGf#Y &n BSùkR;.|#|fe?@vkj0N@;WpV)y+e/Mesp*/Re{WL]r۷=A0fFZ9 3Q:8Ip&]\oNOVkSKjI*ZABl5m3Z-Ve'WeEpd&w JN))Mvi+ވ*ċf/Y{݆6J2Σ{fN(vE}vNgRrTsJ}@՗}w&hjݎ;وh^?g|u <:s2bord"LlȞ=k\3=z04cM\ H=oj3GJo㺜B v$5^U7r imѯbp5l/ZScū|+'U:: #e%1NRl`1s6;b383gR/U'b*Yu<-VkE sJuflvKSr*jFFEͲe...VO 0XܛZrKKJ?v0gR/N&0\.0^b"yOzur-[FE[ywt9z^S6i{(ðHkhtPx1\صzQ܌J$/jKI5g) ]My&Mgr곳2mavAڲsp[u4зkQ7 EʺaluƉb0STb VnN)9Ϧ7^'_8P6_bX"=֓cۺ"^2 T]K5N`y30L~)}5xYgi;FtbñB~943$c)Igd_h*S. `Q<:q^MKLS`Z4g؃RQ' \۸1騃v{)(˫1h}[K\f: h iߥm}"W[\Q>ɡTQv=uD{<;YwWmIK*rCr1ߗ#汋,k=*U]3t4%̛X<6Kg:GuOVV-yLhHSX4>{BZVͤzЏ^7e6ݞ)UHe(PWJhqDZ|HPCOS_A%f:vE"y'\Tó.Ȍ_)5N;s('snhZ_aHJPS*`õd_8MJg߬&vQ Qz;Nsd],L.-s$E=~ͣ"#v&%'ZPgk~n=PrWz N2dR4NLF9k=i ZQ sm6|mFo&~~w:3{ yؽ˚<ض)PxG$I=dZzpÏZ#\kYWF5b,Ͷ*$v4E=ruc5Wَ>IP.<[)WtVʓg.cj3UC$yNhihsn"'wR.|N'*lZ[tFgu鰶tZ)r>:lMe2u .1(C:O ЌPrq+WtWsͯ҈nkPƿv6]iv {EnU584"]Y>͊Ց΢F_2 ]v+)]3uA֮:+&l!]2:[ޗۜme'OaUݛ8gڬ5_N ջD$$#䚑yڠv:lǮgj=*F4me'Y}g讫AR]\&Gmȋ/ΝKrո'qj%jQldk*tPSlcfMYi:휃tQj!r?֠!߳]emz{rGytU3&?3_w'2zFYU_XצI7&ywdUvml  83g'Ȱf$Ԗ%}UscVN?vpwm\h^%lf̬29#V D[(}d8ɳij kWm~nMf ۍEf _E7B8u/;*C_9ł))6ɇDL(Z&yCxsE3Ikrڑo]Ǻ\{/1s j5}aK4J:QOJK|ϤХvxoϳWh*hAFp=M%boFJJOAK9!$^]KR/b,(jR0{[L=]g3VMA1r5$ǒRUcGU |V.2uD\a5.H`]ڻ;+_NDXkn@!wwn ܹjm("P7/JzvE Udݢ8u^hY geG(a$lj=ηv1 cRyBFf!7WK7ˉ2u:kL= ^Ҵj rMG<MK8xO1䔓#+")'N:pJ :WlwEmqhTS`jS:&Vqjn +/'/(*?vP1W}[8-n7%x^6w$..`~\F4 G[ )aͺnU]|DWrHr+]LotEfN3se7GN{1lEP%V2MܻM ( MM[?ǂkӦ`]vznl-A}nQfvj;D:e[:HF7!5Ty"ؐ.Bƹ9 ">tlh?1 &#6N%"'X]mstx\&s &H靮rʜN]hȶm3?&Dy>9CY:(݂F,ȹ)sa1N)qY/&>2NIP^bĎz.ӔOiueOY=OiOR7k!Po5b㻕;@zuJ+$^Vox驏+w6<&Z<8]z_L)uNP)U (:_S)x0Cr5`؄IDqY\Š!khUu=n&NWJIh-1ČtQg#s&Xf'zuvSۖs}c[KWv; {jP'ՙ>BBhJQ dLMV偘+X:GEߴvyUhb7zQ q-#lSh앫D5̊2-`lb7VFUN'%=V1F=uH?l !4kcd~ǩG]r&RqhSQ"f.c,%/ ` 1z1zY 6QxUVޫX4\8#)$RrpS LD?YC:Ude#6kt eNV**b8kh;ֶ0m٢AIC dtŝN`.[ U^xs'Z:pwZAO ԣ^FMRceC*)\/,Xo eLxU])88HZR/yi{NEPÔ؝`ZBjZ\c(IO#۹Ni6q˒!ǒP[Y¸DxWM8h=>on}[[.M:宙L1L775_ЋCM5µdXMqv_B(Jʲu)$QϐQ9"2xU[j%p$\g|g7,{z6My?wxN# R#թUͣya6>6peT:*:f$19BCxܝ}K0˖5)6-;:p.pYfTL"'.[x|Xr߂x.{DvMWI@n~߼3UBnƛ.5mFfvvdH,VRp+BST{]D 1ʺmGcڴ2fYY-Ȉy~Ͽv^a³^cljA% 9538qlĹ+Y26D=VYؗpǍ))3u㫍ʒ$@V36bX O(&(0Q-ٻqD$ݺxS#lжNfj _Q^Al˥p:Fb)+-wmR:7g+9yʆ+vZv잽~{m^ךґzQ!6|%r+[/Zbh-7NO5UMkHGIKۯ Vt}lmUz/W_UjtZ> ݆jbr4G-cb$Y3o QM웿~Ӽx w08ѣyCTj*kl٥9'ȚE3!d#W5X㶄0zcWJRЧ5n\o;Uc2&$ɴD]:A &66¾CSf58(ZZ"YEGWa"Z.&9"X6웠ћTRnLQ+>: tvҮf$7jMG8ۧNvHFyUTȊg9r&'lvj:㐚;`[:-X’cdՅ$qHv2xyNٜNEoj4$6u3 3$ػ9򅵳GVf d s# nQF*VQӝ]gMs/"7棈qpPվ6<ᨖsCrTe*/ݡ6Ձq++OEǞ^{i%'[B.f1`o,/CI}!Վ5FP{KTd:ryt`9^곳q;cDyz|0mM|e7{=gzr7'E^4lU*v )]ڑGus+:-MX3۸,zTa!pvlޡ^JZ%]foFU@/-1%8,{وVžniLݑV;h6rn,Cs>|ݔh䫽c:t>qĈَy.o (wgd2:+jm:T{ެNj9ܤl_v8-ezcm,6~PQp<{?nkg'Rh:]ՊoWzSpd%v3tbYWHaɆofnb2fyoUd莻[Itߋ+6d&1ai rac$iN1)0JQ3`UvW(qqf7׭aiJtI<Ɓ,=S)/^(Pmk]]cUZHOט=\U۠,ѝ#8%uǒ2i֬qQ*+h4VUı<3W+l-Ol/ck72ۏ.HVH/ޱz ͩ9e]t۬5vXIԗ r/r2#ФKIbwtwjؿ1<\Sc;:y;l_.N.[n>5t٧tb&t~vemM%uhh"Ҫ%bpfߧ>3-$:`µl6e}j!ä@3UvNMkI3X {IV[//ڲZvw2٢D&T#(hiy2i]cXK(\qg91c9sc?1|y~`D;KG4;=~`Klj=Ӯ9,zkkuY>Ö?l)g?\j\c&qjl'Vj^BʆSݦV.KcTxZ%7hNٸA8b{l:Jm4=M];ϸVnAɠhthuu H8wtŞa3 9I]H/PqzW6gvF3}kk8iحl#ƢWHcAL#Y,,U"Y1rGH&ՂN>9Gn[$cyghd9IGL1Kn\:v::k־OH7-blAyJktx~I&)$wG:?Z:+#k]3.rSZN& Eb0xz,%]1dFHl=}`wxWod^"wz u}iIL8-Km2ѭQCNPYDTD3Y?t3ϡS>Zۨ>ަy:`f](#mFz25HbQ}fj:J:vii7<+Wڻ.1RJPW~GuCd ʋxn|b˶@;TUwƜB7ídHn+ԝ^e,qɣx0l9`;~=r5]]T^񒭵y*Dz\lJ.Nhc*O>#f/Ѷ^>qA6[ܒfsXͪ+UwD*6f#;U3ʮ=$vw$7&oZ'blNk-TKK^\%<ϰy|zxtf$mI(e[&Ia>JFiv  -(Տ\03 i7vҪ^׬ q vci1jxq ʎf(vCrr tm6ف Fshhg=%97ttԅSfʒ`.+.Zhޠi;,3MdJČZe=f]@ΏE \Lija[-j7W) bH_(U]Y7o\\ΜfX|~ZkXn: LIc^4٠YY*VH؋=u͜j%˶rA@fߣoNMӧNxh[-~aݰqZPRj=6RbF ͖^~E<*P/l! 874fr6MzRjkΤڌk(6 4jPEuOY#;IzߠghW4]t%`s4#WY%1?Zj+uXʹjAl(蕳FMw#;'>mBJW:ٶb#TE2'h3v壥"" XUYʡiѿWfi=;nc2Soc\}L=iW *{,,]<:(yʞ,s9!3A344c5 =5L\=ڜ(&bWնrE̳$vZGe lzmh Ůq_'NOXLlt)F4T֭UBJ[jTy%yNa5hE.{cH2lMg9;٫OtCnbFqJga?y)g6RҲ5*kʪI-c(kUK%aa],bSۊS\kTۼ_̫lvr-_z5ͦ]ƝHӆN$o#$lvmɻy0۵Ƚ ̓"Qi d)};+T}~v\*S/dO^xM]I]EctR ƕp;!.z^y37I[FQdA'onK▄~_k(('%6/,vPw`Nrbͬck?M:$-vFז*ʾ`i1II80*7L^֏k: ^!*\nLm άs$j /ixvhwJ>, ElrΔ+5FY&!O\wlsk'k[VVEgvu0_,srHsyI}Bqכ)yH|prÔ!Ar9EQcxk*՜'q07M"ٴG֬b[Uj<.*5P>ypW@ue׋8Z4D:ȱN5vHYE p2͝GJż1uRu'ou9O7Fsi)*oc=Je\PaS -`J"ZV:tR8#/Ӫy-*Lm-BG3^]IdB&+lb&UCct+;TXWpMY?56zݙ+S9V׶ي#:| $vBXwZNʬŘoW5_Na[[`^n .Nhg=o_8+*/T9^lg&Y斢(NW=7ʛ^| ϋ)|`q݌q\;]Ifuɫt6KsnGʺs 1-j:*9bctgvKzv{t`.SVJf6lT{C4Mmv[>=x9DZBH&or_7IT9\8Ks_ˤd|GqV:aa"EjI`Qzv?qwcĽRY%+LeqfNٙkSx̳ACJ &0tcT\Lca̜5S,"ceղWtu{3.LdP޵ݝG;7w|iq*f٫5VT{[_lL|l 3a'D@3YE{đH`M+~i!"uMkY*'!Z]WWv6L wj;rk(*GyԞCNfD6h-*35ֱmЎodM cՑs<19;\mh^,xR|qJ#zXaܟE8Mf_V_6CFC뻃 U)u4nT+S%^N:)p•+燷ه5MSm͒rN6EʋlJ5G $Jλ,/1^a= 87gsɜ3argb?vq U'ӳyi=9mȉ{h8Ԧo&DBX#gl0RL.YGrH>l!(z܈5kɷ zuZy`:jOA^bw<6]'Z3;M;\">8b2[|MۯuREa5 -ang&.0g)L\`yshG!qoK8ܴ*׮w=7!l7zyyN)]%s%h\ıc(S2%]4[8.o8OĎ7_k -rrI+6u騊'RQ.Ws) +FɅ:#_ؤ3xUDVeKUڟl&ِדsyODό6 e$a#dffdDD1w'+)$QѱNvIW8Q4[r&CgϲuȜÛ-ʱXޓR╎gezjͶ~j竩HX,zJv9Ww~du/59Y659syK5d;y t1˟-jzD%*䩨r]~zzsւGZFzMCGQ4upiK٭itDlcG*}ԟѧG^qn=1ҫ82NKh%k^fXkm tlh?>kS:poKvϔfXI>J|-EˮņE2S:#y!3G#ZrFnӻokW/5zB|Dk^6;eT`IwGi+N:͡!~rD INt+m}Xq rC>&V3$*tLmڶ|wE7MWm\&Ul%ۮȪ+$sg)ccWK.z&v"nݪ UqLu؁=IǿU'1c{:Ge0.OM3#vjQD5Olsܻ?O=LWm+p /.kg;j'[28?M[4vwm )9vnYu^ƹzSV"]"劚S| lc?lMu$>BDi-akLn"\ b&ϱ.# xz ZbA,Eyw{c.T8.=NAeFSVlJV# C6M];VaԤk|#%3Ż|0SltO?kf!#/偛F-~{fDpEoNwAͱOnZ__n}=xƝƊ! tg+)81O#aEed],oS 7K ǃ}{轗"{<-G_{KdImՍ0Y{-D$lZ2JUQg2 ۛЩURA%]DEΪ*rI&\EP 6pR1c9]Aҹ+eeƱ[75rWRfޭq;=jOS..wHg,CO7itdrשagպXaF;PYfJuCnӕa#t+v9s25{NDCLǑr&J$"F6|MZ:[*:rd.C8W8HSvb]/ȕ/pq>|ڵQMu#DW)z9=7TetDCSjWd &sDMlk[UD3a wU*ĒQ%%-bf$5*M?қʿfRyG%os1_̤,8|ڝK,i'XҫNF1[C%'_$mĢ}vfr cuSkcZ+Bu1V1\hJ2z5 b՛'ڭ'8yUg"MZCۧZ ,hzYvp'8/7R^YVIJ̌ vyhױ KcTV*B*!ԿpO\@!W_tQF4SHPZ+=ʼnYwZf..>1^ye U @g֮骍ʽmY#]Xh虻詨YVe#^s˵p̚sWn޸:G|tת+ǑT}akk|5,׌kӯd!GE_3/M TP5RAĝF.}]J:rw5K'P<5gZ^Ӭ/tg_O*| M(uaj&1 䍓qY.[J,Q\zumKncwZn.M6N䄋TylGmb{gbiǙHZp;zohx=fZE٧b7j,Aӳ۵n,&ݔ<4sv蘈fm#c8.tp#kqˊ; mt(+ aXQg4RVX83$21I;URԇ1%ɾtռkmAgWdl{l%};-ffP#Y3bܤ;B6LE% B,uqh.=?[lΤ]J9l"R5EjgƮ R)\{/F]"T\ 0ټ1ؒݻIӌas.Eqz2vUֆ$],h(j̧hJ.ˍmZཀྵ݋sٛx}wrW68}:VRsy)ںEF8yGIKۯ]<}^~FƔݒ[-%VOtS5U51{bZ r@pd8jrVxxuj/kkȬT<7))䙃N:ԇzV:RKM[-;($/uiGiMFCs Uxe"Ni>n~W4>zG;IYF12yr]t I'NPquV"hQNg5Ok{>b{ahZmVEX dfg F+74tԙ͇jg .X.AV*N%XM&#Y9rrO8Vvr6.gzt.=Jj{KֶUrNXWUn֏b]iVI gpW9@ԓIqA3]XS" tv:h8M)wdAjU~բ ]ض[wS]_ug+q /*4+vκB-:dn}yأ(_sg=%NSrsx?}f:KYےdVޣR2p1׭feEa< crxN{m1meXovY$|=zqq˖5XYҸZvu_E RB)WN.i}7MQ;0i\ecm/ Y:/.Yyt8xsi^5,}W`fq4YR2)H,{e٘QS;;^zIlZaVlB .:ߋ첡IYa]>Q\&Q]s}у@8?m5 [ִPkE{(j-M*gmm#9$fh,/%Qc$Y%Wl]LdL8nDR& |d) l8)d<{Q_?(w(8wVN>eغ~"0 u\LH ȋ(1#eߡbhrq.+ŢqW[v,مvָ[z,淓Flu %l!1];\5m?yU^*EB%]U0)ja֖hXePd6fܧ9 & r9+:+x;ŮQRycn>sж-xu5_C]D-(R2HerM4>U5JyS5ROg?5yxzbi;Hرo( 2=⬎=&12t{woIfzލX FpqheӆlMlr>5^Ke  _'3guZ;K9 ^_&m*Tս\e!]Ղg5jW]gP&ps7״mtO8VM{cLue[wǻG޲ѵAW(7ݡΧ6aJ]~7!(V9>*J&ܡVS-e)pN Jްvܿ4gL:c& *kWѵ#hƸf,iuܤ߼)ޙQSw]ʫ8QUOO.ۄ/[O}쥷T#-<))bOYihRqO-ژK'OGcYFd#Kľi%(ɬl :c!3|:.Z:lkpΒȨE1lg4hWmÂxS/5x۷"_++ k\ul"z>s5E+6ݳÞ̔ۏ]'Gʾxm?bp23:rҭYCu bbwN`)mf?*n2/h“15Qlɬ$+v[ ZLBJ1Ǎ2P)Gob7p$K k~9 ة1K bBRA ],cw3zW(QYư)K-:evēKR+S5,x7xOYh ]wvw ;deҼ:RSZtz֠#٩!*毱^G (;p4WvIR3КAlIhWQ Zً̭Xg "V*;h5ry[H,,jv훮ȷjWrtC(˪JhLuTP!SqkX]1nA Iȭ4#-˪<6YXSy(4XE3Y9L2V"QăG0sӽΣ|/LzVu+Q'3Hv^x\V'Q{TFY(Ežj,/xƥe֫EIW sQ*WуTIK_ydYrNL=q\/WoԅܫqЗz͒I+%[ Ez%5cgyBzҼ{ |fz{]ۖV%ڊ'2+(RWR0,[5"J /Ƌ̓gǏ.ثe;Ij͕vmɚ m~eVIe$d$A#"|0)Fp#Kk*JȌM/Z )hɪ.AVFƢl)#l(P7~EøKq1hOUPNyj4+Xmyuun_(d\cI$ʣ 9J7AԬܻ1MȽlP|6g&mFh1Tɧ`؝BWȕ@;a"6B;:gsqt8;-:D6ss& Jb)SoLc8H| |c)C{9M y5NWqفPɗ޵톹["'EʸX281wv-7S^_H*YX\JC8؇Iuֵ+Y^=3p$R~J]-cg8 \Qs9c~,`S3CAsL>n ,Btw39pye~ܶpæ.v 5/oVG=tDvͬJӨq u&2򤝖EJjna[ƻt+v48f5vvG+$9cT!h:Ak0_0G:Q\  w l콓|k?Q$O-y #ϠonjXVyz^:۶+߼k8I;zuq%. nf"ic*[2\E{1hnv͡7X66 "C>k=15~oXn솠tI>=) It}m(®VE n05J>Tx^sf1|-c#ӕf Ǚtv>Z[@凎M,URkpK5B%̸'檨*osθc١l\FZUTӠ> XJv8Z Mlb%fe\4jS3nQH9K&3vj .PBZ3 cʰ`.^-ègrȟ> >δ*%:q\Ʀ= &ggQF[kT%ur%A9 S[ yRi{܉eu|`]NLkj v뛽(5; [%+slUDsBHrUbuۗ{I'j{OdU%ճYu:læ9cqj;-g@:UFn&H'[I\TsD" ٲ$.NpO+,UU>r)I{!prwsՂoss ӎm4vEzM*vÏreUj ɶeGͲb/g"q p˳yʎ,rF"և򭨯w)7g[*a"5vVJWWxM\R*e!.rL nz: 957[2Sb{{iUֽ쯄_'zh{JO7OY4Q{g?aA;Xϲ}t]i/?z~WSgŗT^.":aŲvjGAbɜ"z=lU dܱNr1fK.׌M/O0G|iKn5h9[ܜ!jdfVK\zTw :,9(ܣYu"IH~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P >xGcŋbG& bO.V]SX1qELy6T6*XY"2D\sa9`9SNc'?|x#GrZ-gNRc3iI3dd0UQ@ SLUAnr9 E$ySA"%Ʋ33En:]"e$L)sͲ2L?pl'!!qpجԕMXdp0oT Dg".r*6;3}}N3o3mr-f-JBH&*dEqݒ 92f9ڟYZ(^q8gw/2߿;n;!lR:tRE E#' &^&\]}ʠeɱyU21hR'5YpWEg SpK ~/Yu2LR9*iyirľĤTd F='dx;x{>MU$PL,4.N6~,.Ll1<RD#i4K¸b8Ϗ lgB\dlZ%fa$I~|E+tpG8pC$\7bHDkr/|IӴW.23Tn 媒Ǐ?.e+.u㜟ZNX-$ǜ6fs7vtNCDqݒg)IGa10E^d$wqRgt&g11Ԏ>yO =,S|yUqϘrUx:M|`GPa B?tŴ+?zXY/H!;ٶ)\' 9:eC& 2~flNtDYUU% 9sg.q?j/ HOWy8I7ՉE'9pvR&s?ݺʟ%pR9wYu`2"QsVʈ`psݞ~1ߎ,T#Q&TVBUI>Gl7!0o`8AJ#QAs?lE?O' ;'m ;`f?&3d)sݣ6% Fo$18dUg'Mr3ll;׻ѻ+vDˣlʙ(({fk3C.Szo?>[~[|`?H-(Y=)L%;KɚC>;*S$K쀭]uY tU :8KrL$nPP+ ^TVl2Uxx91rT<YE1]>vJVj3CZber[4tU#g$G,NrA*TW6szWɗ|˅ !K+ȪC&J$ Dσ63qg8s-#1fdBͰHf~<`ϙƳl. L.6sRsfd^t7ˆ:jnL&F2g~;lg~`>|Tt1|yMe!˟gP:K$b**)M9&]W5 V6Lr8KAw<8IJ_E62skx=y؈ow;rM[/ Nm$ؽ4l9Ϋ~f|.i7~tklhF "ŃDvB79suVTYe2e91CENV:aYKcۺH yˢ;HU#|g)9.Džʯ=ByO9EW$IR?R|tR>{t楳AQ)8]38AçN]U1Z,hI;0y"9O>n:ntfy-2.11.0/.github/images/screenshot-phone-main.jpg000066400000000000000000003773111462047176100223140ustar00rootroot00000000000000JFIF(ICC_PROFILEmntrRGB XYZ acsp- desctrXYZdgXYZxbXYZrTRC(gTRC(bTRC(wtptcprtcy<-m}`%okk[Nulݐm:_b[6[e<48f"fV|}yӴKi:shw}>j>fiC4p|y9çs,qBTl4vbca%$v2rd4vk/EuMdUԲ)!볡q4)MXط5ok{rB?O[E%.k5ܺcЭTɊ񊼶/(]r=,ZnSso󧛼\ǞL1Nbk_0}Cť7x4rjz{޳79?͏ji(l˵W7g8_:?,wr 9iuMJ*ҔXDmIQ(*~!~3L.5u=g#QM5]"­ [sbY.QBAd.5׹WKRǢ,E[|$.:l|1ָ;Yim= 9̞ޟm=-Ez>Ym{G,v ^նQ|>џ Dvqڇ0mޚl[TJZټL\+m8=ۛRڦ,Oq^1ܸiH^*fvdmǍ_:^*4X|d5mF6Wg g۶f/G+U%WN:!ފVQZ\ԷzZ#t stآ:h*kNRۯ캔g;^rǩ!2}E8T+en &1A'I8gQhVm㦣-^PMU.fojִikZwkY{g1t]6fn:f:r4Met[ji5yLeio6zǎ9㙘?F%YiF%Yi7R7^cŸA!,oe.lRkKw+Km+\SیG@)mD/w%^ϩx.Mŗ{YqkNS%-y/g<?>1CV.͖YAuTAtU*_TIK..D/RJҴhYQ~Rr/:iec$pͤV \:Uk}$mYN{;.Wnm?9$q佯|y+ZkKs[MbMgdV[Ok&=ACM4ڱW5ͫ14)@8;7d0X3g#ɦ#1vVQGS/Piekm/r!mnQ[i[NLWWjC^5dq/%(]gVY G+C+o[v#UZ6Z]UY{qēY9'X:29&*ҕQDnW{[ԡie>xݯ\])%͵>wU/룐בS)}k[k/Ze+}}mjX{ZWkģ/[^-J,߼Ʋ8{Is5xKu:]{R!Yodr.߫fِ\/|du~50v0k75S'Օ%\^4Zö1g7‹)*pׁ5j&|_p-ڢ{^c;# ,5rYv.0,Q}_umG3ZJ1^ɌqKV{M6Yg[]7{UtzXZ\i Vfixnŧz^i-X)['R-Mi^e(q,I*ctopӗ./I&Mo,v'z)eִﻺ8sNSXYv֖ޭmDQKR]KiZVRYeϭ[mYrmkeEֶ֝]u;+[nr+=a]';OoGV9%}8bGj fUEw \#Q\88t3>GD|zWo]:޳ާ{qi4|3b)-TMVkݎ?3D/{M}@,P9s[mo3~'aWƹV."uF+kK+ktR}m󏼆r٬6jGf2J/'JVBۤg*]w]JEس4;-#K?fG8R/hq=Vb{-Y|ݵn>z 'N݇suy6Z$eNy.O7m&MUy8mly1s[DKWʷN{;)&Rr)$c:nyr7MAJ%z&/,Q+۪z:ޝkJꚊ'޷ݺVĝ.kgxCo讥Ӷgd۴[[|Y3ٯlq`݂mYUvttv/&$2 17/bh4[&+Oy߿Z"V-JNf'#No8=hiZ2 vֳ1o"R{ע V]ZS.濇mGHc"׭fx9&ga:3d .,Ikśˢj5xt<1$jdnBܚtm$-WY}xj޺۩O]*d} yG7Z>ҒqrX匃e7mԧmp,}]m+SI9/ x ȍ3 Tx>5սҭlneÖW2˫kkK4p1k<:۰KtY 7F-Hڻo}Ux>m3Xbhm3϶>Q=F_\Foun˹RjZRU,v2blK5:uwvڱXصo[{b85y9i66h14;`j^i4[reé\ذV!ᆟo~;ml_$ts<F9)j?MvoY7QF,{%mԼ{N/]L}[8{|VMD19WW1^,$KTIRyW,7[R[I|ZAҖjaJ[JKoj[KK.+Zzqju3dE23Nbb''~i=?fzkOs353|S^ޗIpe1|ucF97hډt9"}_[~#pXClpM>XbOn֓6YmR>^Qʾ eQ4!]ռJ!"#{p6Z)HYݝ(y3r_ imzZvgڕk؝)H1uzknc虋|f1S>'WoF:[=su]U[I&WK&55oi54ַ5ČUŲ<}̃DUUr)&pJ։zT_ZRҵS ޲ɶ0 [ cheWJYk_ʺYD5iWԱ)d|:dZZm6."g?.i=LA"> w{XneT޺"֏}gWAY"N2G ZY[fB3YL1񈘉}>6fǸg]f1FÓ&*eɆפg6Śo:yёSR !KJ9EtdcGq}nѓ&ӕԺAU[Yuե cv3R`{+ZwJ1˴Q/涗XKͭoU6<'FTR%xӂ9>ay 9_fr,>m,yHNlhnܱz9}j j+LmkscowÎf6Gޏu}4Z}~-SZf+VɚKaӎ-o5j~ K#>-HmY-׮/_^yOR˩{a~ԽD%гYX鬶^-X!Ij[we^W RUK;yb)?}8F=F{kpa.g,ZH+=1ůi_?Pqn=7bЖ*^EKEm%~a;9uKm!uQ+ز+0Ig2w&ͤs4|t]xŗ$gm\X&+'zjYu_mִ*;Z8r,fyTGLC5\k1M:UKDw( _:ъWb(*=lTxwM9ǜǾyb#ǵ˽ zLdcUh괛6EiڻͭZ M z 08N~sj 02b/$ۼXSDW wIٔCMuVC˖6#iV#g:c7IbtEmoYZRxbYx^^<8o=%L5Sc"Ȝc-K? Gi.Z%ŰwR>,NF򿤢f 1~UPkYWVDgGO!'lcJ;QXkr,ЬaoO|'jx8DWǷyzAv=rtf۵5nUj'$fd[Sidǒѧqb+ 2#vN]x?'fTxoW/䟹{%gm&v[{n^F-]۴nɰ#-9v?xUeRm1~!\~$ؚImqz-EwWnѺ'dXYtX=BGdr2P]l_pF%!XITityLr Nq̼ O*4cⵎN}c3cpNɿWk[=+|޲R֦5tYuSjibiL͎d'{`s 3(6UGF;i)s z쉳{oBUG;-CV'$]VڹӒo\Vie]E֭S[UJ[N}ɇ<C޿vk|: cɒrEo3Zɒֵ|/}kLR+H`x顳NKL#LhV9|:cA6griZ'[;БzU+ݭbͮɩvf+kLDDLϲ"=t]FS0Qŧ`3gzŎj=C&Ktbγ}W3f[A/[ұe" x5RԪ)KO.[qO(?G -6Ȧqk0*ҋvWSW.UOs^kff{/=!4]1|[ frⶓm|:;c^Ǩyk^g OmH6pvl۬ۥlիd]× jH7nVު,֦Ir)uYmn)]8ȭ Akz^Y((l6Z]^=%u։V쭽t917WyQ>R3d\m;;b*Y#eSN)ʜD&E~*w:Fmcv2^m^`;Fխ,[SZ)mm/imSڞ5Xsƫ!ʷxv^"((z%}]m;[㎒W:iRTVzR]#-izw;hAWMlY"uAY<ʬȥ~75ś\3]^6\*Ba2Tkܬb$]k.~5[[fOr9\&qsOSOg=w0a"V˦e-/D6~{Ug'KdӲ3W #ǻ&}s1pt՗`{jitv1LJOmM.?y-1V^-\Nj>\8 ^9E/îiph66ZUgNӘjuJ1kV"%FrDǾeuE9#JڼLDϲ]1㖅욞krබ-&U7v]^?gu+Z1a,J✵kZ?R)JViJRk_U)JSZ־/O˳u/)+]'̴EED[3lyR7/mmeYjRm,Fq.3!W&ضx']#}+b͝]V}+j)uRhNSnܜ7'GBA0\VY{qy#|kjVڕljm:YoZ|ыV/zZ"X#:Kaܛ^z>Fټm~Mo3kŗQzezKo4Mk5cY_2S#9' %&] u3YQ~ؖY]ܕd_eZ6Wf_vNE˱T/RVM_6B/-۫we+^cBvv9Ool̤NExĶctevػҥL˨ܳwkYmօSƚd9{#Ls3lתnVíw3t˪Xږͪu{b4R!Z5ŀW@u^o' /_9/Ưÿ|fN^0Dw6?z%r;_?;+ ccۥ6/=20aYTD=~⩷6qv흼Y6JDZ9F6meJSf3]Yvqlm%4z8EUr7W. W[Ǥr(ey،z.UVFjAk*8[\KWzݝ5 [(3^a)Oe`Qyddu50q\fڦ_"<-^Ӟ++dd^o4|Qǟ?r}Vǡ}gE=pɛANilol[\tM.\FUvAqCUu6K$Q|=qKV5jZUX7y9N=~źl״OXG|1UOHW߶~}3Uh~7 SSh jnTMU:hYGاv/heTJݵRQ;M$)iWu33W:/u$|<_8`1`ֿ53׎bf-ϔyFm~oz˫Ϣޫj6Lj6}ךf]NiT$Od1wrxXAOr*FkVl)v7W+KK7u{$MU~zcOgmֺ/05iGeTt<β/®-n%tȤ֪N&993ˑ1 7[,I܇{fpw-`(QW8Fz#L1YSm>ȏ fяZ]=K&j;tZ\ls1>ZW%b8o0WN{]Uq%q޴hwލe={75rWrNYFMZ֜-ΔR)'6 qzIr нz8|ܛFi.^đ^St/{8 -eqI~u.B^p4I9__óHwB5v>ql6cZS vҹeUȦ-Y_WuVާv/PrzqmJWO13w< 7G=G{hk4vmV)ß':^ihtSx8i7U/ t5 'O'Ucwp|9/$,orUEWI=;%fuIjЯV7;ij,|S4Mv)a".k!#(l{.6v[lR]!T^6l.FNQݤ|覼Jmb+6]eN FFut-/2^M1b$c&'$r .. <]& ;dz4bQEWr٪+O8 Ot[&Ys6m|Dx.nꎺLjWE})CpnixO 3G6SכwC)}rui6Ȩфsf#Уhȶc!ou&ڥm޳Y.gWsgiX܆Fȫߖ0Ր3Q/ܵݏ|Z4RXuj->6|0:.Ռ'L"luWm[*G5}W*T:t (=s`ނKb,_8i*G#s|g'ʥI2~+:1w2e9X2RbbY."8=+b~yZ-Ot&jsYAjǸbLocUlǥo܂nǒ}:]72ԐY L]@ᯠr 8l&+,7@Hc7J̅ WOc\s7e_T]Y$􅂸%iMQu-t--OzFI\UY`|•f/im^z>6vnInTn P82Y[o1;nVڅ RKz;n+:2pyf^Umd69 tQO+se6Q^.r]TukeiR4>hŋc#|˞9ϱҴ&OYj5}?Tu6Y鵗d]c1T\lQgZs.>4vy(t3 N1 Lcb&Yԝbѷߎy|bͻ;[d}t[eVRӿuݲ+wmm]ZSikz+L9gֵgX㈙3 _B5t}&GrF]5'Q@? t:{ᮔ`q/NKcer< IO1#}8t21E*͊^V.RgVp83Mn\$rLzk$hg:gO%Ԣ\ު-aUbmx/lyOOz'|n[ٛ_QM-45zLˏ$ 590'YVoKuXO52"uLlL |EqXi5!j9-olLdL&颅Ϊ([H2ɥ%^t-i7JYf%}d2^fʚUͣW*^ қWX /Kʈܚ}#!Y %(3qlk\9'h1tN}:[:mzh:NXt֖8΃Ic{lF“n`U<\.y֣ʿ􋒘d-vQCud^n!r\wSʥ`UGh w2GW$宯rn{ mM|ɷOޖV-4u"ʔ;qSXVZgZG?Wu~]]VGkiL4>-qZՋZiDs)t<86|2 il2:X ݽ,q cgOdYZz[n6</lkO+ێy'կ1[%gl촛 MU5"')*}zժ,cj0Uk|F%6/+4%xMQV!'ղtl*jꈬqK.Gm9MY44ƺt<̻{.1|%IU襞QcZ,E-VvMwIOPp3"؜Jav~c9dqQ0Vfm_8a&B9fi0oUmKԾŴZk3J[`d.ܴclR(KڠY'S|y0ldR>[ xT1un,;m[.o WkؒUJ5i$=i"}jxG#$->Dq_yE6_Vi[r)l'S6|\8-lҺN4;dk3JplHn{e]3sNj7oJRɸ5^vygҶ+4BOx·8A,~7J) %IV~tAɠEUڤcKi<[g;]5̵z٬d^F)k{_GN4A0]]qdn;8D+X,\?u(x{w:nc8$e[\Yi^bŚ0|q7U܃ޛm׀[쓚U£R]eU1YbSoy5b v SK'' !30\DKrrrRf:9u>~ۋA6mU×+)bH"}[udlWv8wb}^=9{gTlMmq汗IOͧ5eۗ%/mgn㾭v͕V'5u(6zэnY*z,6(x9_#ۙmG]b蹽f]kᱨM /Vɭ{I/&l×7mWVG:sOKѬ=㖚[IoޙlŖŘm},dfG6\}[DZZ`}}KGgot<^;.Ӛݳ4iI뭧4Oh\TJms|?/IOſ9s6_7x2?7|LdfL~U{m?}}!ujۓ[Ymgh㙟8Æg)EGJms|?/IOſ9s6_7x2?7|Ld慎3`Ckq \ͩ{8ec<ܝ'wv\DtW:WL_S{fx:gDL"O_ w;Iwim?+gp#-9v?xUeRm1~!\~$ؚImqz-EwWnѺ&0dyVaIrI׸Vvbi'evb޽]F,:rĸiYeFe\ʣ,K(Xb UUbIX6u۱bQ >w? }Ϯ?~hޓsNiŽ[MukqV|lR+\| ֲOg@?Kv6zV`Y{~e ժrl qF,Dd;<c3o>.M7XǏS]sN[L+[ǎxj^֦\x[cC$9]W$D&Z g#)5 0]aX3Ag[;;sDE@jS1u[}.]mikJiZvo_~K[mGtgҔ5iOU;=f?z)S[.J֔ZnrD۶f+11^|>#.=]צ6=noF߹bΛ8T굔ϋS4"u:AD3nnF %u:psoas7Q-f/'Ѭ`)&f%\\:A:#eY[[SFSmy%]i5t4o{25r,fHZZۚ\֭l|V{q/=]-}{nam˨7=F׋.lYlAqdݳf4yi>5Nke:q='+\ΔT͝7brMfTBBco!"NWuM;Jڢr̩e1<'7"k d|ø8ig[sF nIU;leSJ}^y-Gtgm?56q\3$gR!i!\.ș׶t'FE,^ښ}5g{O^i^^_GF`]tv}C 6,|];hj)iv=R9+H$7m|Nة}錾6N؃|k5V;!uarѬXJ7UX8AYW 7vq7+xT<8_=;|JŸ{D+Uk5v-6oN={fϷx91dݷNJs$8ss-yA3ט\ͺxiEqm1HgeKHĿ?hMɱui|\lL}-2JD2JXNֳV,WMApAϙ8]V*wP^2n3=x{d,ٰ)4*ɤ#%rR\7 Uq֏#rte.=sa69,ƩmS.hdlU|Sv޹F5I:4i95Snq18{f+6tǛ/ W4=InɸgQ5]%cGWؼY&6N}t?S=V ;84An*F3uK2sNwջV_oYulJҴhZ1_{#&. ߧW!SnH'Jz4S+)Z-iZ֖Km}ugbui)统eˎ#Gnb}o7D>tWMܙc:F 2 ʰ̎{!W|srJ!sɈ $X/r *Vj%*'[Jem2Gc-m=Sx;mBEQ>|Ikdh^xxlآy"""x%! %1tS֒Q սl$omQ-\+eԽ5lkKM9ji($Md濫1Ҏ!rWӾQogmv]Z@q1339>ZXjs<)7lLW[E2vŭY&b=C۸Q{&/zU5g_;ޏyg|/9~MMOKW1툞'9c?>*qj3< د7\80{_nin#!.AoW 97~`[+3K9nѣE+HhUިUn͢*+rmѶf)6sXQ x}:bùqcbŭJDz2km}o=iRN>'?عeJiILr)_Q qF묏}X޸f"_mb}[1^%4$k 9d);e}ӾQ[n+@v׈8-N{jg]MWN7|S{Kcɴ׈(3|\YOd"ׯ2afUV +6YfRO Ul ݋oLS.+\wLy1Ɏ/KbսmjڳYeolS3ϲ,Z$-*9T]J1WZ7juר66+^Mk15qy{0}M}né͋SkdvK[=/\3y[fl϶<3[gegI&uwIɛ>K˒Ds|&״fxP'܎vd-q7uN&y Ћp&Z޳&YgĤ쫛JMM;vgxʝez"k>و_;:~UOijuYqyojbqjuQ|u^fS>Gcb}ѿkHWE85W5o|z6,{JS.UZ9+hɎxW[{m˴ :h;9,dC]װ{S &Bo/N-zӯ*:}|,5rRrE4 9<ý`kM]vO)sD==8zꐲҖ㮛7e7s֛;-XvC }hug s1ݧP^́2U yxxYG}8cG!bI\;Ng8sǗ8|K4Nnx*}t3Z;deT;_ĵEù?+ 6c,wEfDyϜL7}ͧu]+nY]ߛKǨcL9tj×xבuRI[(܂3}+TaF'Z꒪޶uq,?LcrA;K+;Kꜱ-.[ٯ!;{+6{e;]}.~bcZO|sow9iٗm鬴斚koY;%-55JE=tc/?L;k07=Q&;٦ΎoQ+'ae9㙙O33ߵ5i0[Sծ=N9˃&xQɟzAl }Rji;QͶуvY;!Ewv+ SO6˖x\N;=+o+N']o>myj.1'gH3pŵ{6=axɃ.-شpr9qvicL&mivݓ oRUNRiKom)^'\՘~OrRʧ7ϠcX&ŪdzFR$q{su̐l$ѪNE,JN=wo3_8LLsV=dMY;>dim>_0j/kJ_>=+kxshlx nF誔NKڥR;ۭJݭ}}iޥ]JV]u+_M;w+CW J$int]4AP,ؕpk6fe㘷՞'?6~ӣwoMt5ˤ=f+|Kڳ\yp䉋4^&O5_- =]飹] 0="c#ceK! HiNHY;,~Ie7n*ƋG4o`E뒳yt3sV?~zmfǮ4⦢=.昳bksұktsiDǵ]}RnNn[lkm+u]ZSݭj ܛ"k"*(u&RNkK˩Kn+JҴM%Ę [ܹ4A*e-i}-4NJ[7fi8_ũς|tN̵J]=9:I֬vJҩ9jZjeJ\_WM}i,Ncl&8ɚG6xʈHNQZEo_;Y®hOQlT{V&S1ϲcYmݣnvqϥuŸ|֬ cÚmZpIzcp$<۸lFM4-AI -u:c6WaDV>V%䴒 KGIoֿ8"f5ɓ^+]k.n=vb]N-uӪڜ-jӷ+Xӝ=i1V͓uϞ92ͭiD\<{.Bxw *u&mǻ}{YiGM0keܯ}Ku;n=d('Wp }æ_EM E6";v*誢5."cXM$dݳfLqa7J˸KY6, r5o}M[Q$mWf-4LZ$;0n,3"g[1fd%{j%kxդeƥ'[WAvدshH"Dyxf#"8/d4Mv;nzQ-FzE/ּ_kZm.KL)0=udd&[S\CL:haedڷ]Ȱǥ=uV֮n;mȈG_MF.<8r͓-1d{Z\qyE"ibjfv(_c-1WM㹶r(lDGrŻUnl]'O13\Xŏ=k\)-+hJffxDG=Yt>S7{a VfqMU^ 8+Ju]v+uYmug;t/rǯ^.oV场tkY× _zܢ]}խ|pyff+XDDzV}vUVUåf}Fl#J#<[\4>wս-ūxZfZ-}?lC=>2^-l gwX\{df!كx"t{;&#, &f^k-i$q J)T#DZxgXb#TusۓF,V=4?G*dF|r^Qˢ)L$])* վNRvwW{y>bޖ+jk1[D? |?Y{u47 _Ǭ_YiiKNM5s+M3T{z*kAdso}cJ$YKZǠۊ}F؝weִ*m{V{LVMkLb&ff|"&f|!f17Lz$حܵO 鲽Y+/_mݝRjյfm[Dūh&bbbbbc))]&Ku|ypj^b՘fk12G37+qVW"tC\p^ Q}*8Y45!cq/pUY>p%Ǣ~{<݌anM ]֦3Hŝ؛V^󧮛F.+.֦,sj\{x{[Hm-۪6 rf]گ˚I/YVrDb ۅp? =:Bܷm &Bn'Zw3aXbbY G̜O ȔϰwIyf\ʖN!2uYs&,8~VgY^~M91:%1-z8X.VA]{eqj Ŧ:sRp釘]Nb}<%?mڽm!d, vOQN彲wx)yyн}Q|ͱ׷tɶdMη㾦\8iM=c_7ZOK[km0y䘎 ڢبX<7+fŖ`$Zd(LHe"ڪjN;ViO_5aQX*sS?bb#lmt9*cINlZ^o~eiSq8Xwle*med17% 2֭ckU_j)+OWMhM+3wox\+myXWyLG?Vf'&cܺw#9w ɡir/+gͦjbݑ~"gE6=.ls #/} -ؘ|>l̋*Q9vWǫT+Ս\Ҳt?{*?]A~\GDwVZ"''3y]+:KrK3n:Tk#&ߓ>\}v+ݨirx8lD׋O3}p?]!'8_ìvr9|8YdZի7DHr=6?J:h]Gq9D 4֯-t^k[%5jwiYer~U 틪Z[e|i1jm395yұYt"7V,[D־lq+) j-ul엄&21)WyvR~^f.&Q Jc9my-( a,3Rc#hŪǖݜ^?<#ω#[}o1W|k_;6ڜZk񊞱[c5brZlw+h:Cpk\3ޚӜn="6ؘϒ"GoɭŎԘ""b<{'.Y=TfӼu.=u|6W\<4׿U{;zvR|mh)*.M靭!pɬ *F-ݽ߹i3oKUWQhڅ/TufK|OZi6^yW!_TkV-|FjTg"vтks.@Eap虝1IXEc&5>/9,݄YFi:tʷ%U$oIQ+zx<`y֌վS[cdSÈ!29F-Ǖ7f{R-#"392[VGCFt9s&Ŷݻ{ysO͓ipJsɎb1WI>$42O.oݮg?)}'7dssYyGVO'K^NJz-׭#Z"$ZG:zzެBY˒ս|qXffzGb/-vϷOSߦ.4i0~Q>ivbŇn^JZ4kN$9#d2;.R~=y;.ZZK\1{u.EJ:N=E!/=*JG'ԙw'I*ImY1J5A+!;jvяZEg?fV-V<}+xf"9gϏ>'/8r[M6gmvϩɨKff06+de,bo4aoc{ZFNY>-0UgA5TF:>őJl>t-|;! 6sαޯrhvݣEiwݳMJmlX\y/kmpV2eZڞnSK. |f H՜Jp^KZV*=FPӗZm$˼t꥿4q-i66)VK8mEk1$C*i(Lc,T4ֱ'v'F<5Zs4qh/?l{b9=_|:Mn.qڵnV{j4wk|x%[ն,g>g<[guNtk-ۍ)}AkriX*OjEh\6\Y+Y۶wVf13o3k]-927ґ;ac8"fjIn\Fvrk^1c'̚#ˮ]CgYV jh# {\a{[Yå7$xmUilo##3TɠTGNceKAI{f(;GJ'_S,i+>^S=s|y^zsj7kbozLٵΣ*j1j0Niy+kR̖\мR&Sz޴,Gv4dϤ]4c%>~IbUYl{(op)m) SgkE$NвcȯjvWOBU5-ƾf,wG,R_N1\b1/'dϏd8^#jQ/ҵO.+{M3N"M#xb}? sWM?Hnѥàu.],[eɷxϒmZ|kͧ'_u_O q̿G"510r)_dl6c ,f^ [ţ%VQqM񏒸wr>Y/Hf[%䇗iqmO|TX[ӒG_JJz3~lܴE;dJ"xӗfŒ^UcZ4dF==/ͣR8mǺ'bm3/~!n>L-_QWl_:.lwLzL8k]Dx홴x \{=8鶷Q{Z7oz/=S0nUL#w'V ԍcTjms/z4hd6w-_0B!\e:d0_XG0HVc#\r TfK1]v+MbH[ڱ~3<w1٘Ů%Ժm&6s7nߎovn\"fԦ,|Q|Ÿǒp1ۊ/1I=f=93Gbo]䒳-1K3.zSij R˨N[ZWպ#۩ˑrXSNτ?6ߧ:nblkX֟/ds|gH6Yt}WK۱]rs[My˒^rZ^)Lvة:0:wx.ԳY#&+=]{76b Ǵ3v](p xY.N*]]FԘ|6f#`Oa,!jP914\ŲvA.mi7d*XU%"W+m3>;{0gggrc.ĺPWJ2f쏗>Tںa8Z&o|N1(MG1pG_4Z 3vj馻w)bȭe'}mI{/ľ8r$vB}CBa&(_]hu_OfNEԹl8ìNckV۫om/\t51τsfwc&vl:uOW0FL82xZcjj64q6:7t3<*:/ 6"d1M&l:Y疶Jy[Um))k|d٩JvX8)m])ub;kq[nėոJJX:Ku<'iU(cb~4pu^Ѵ\2rƎrAtUPx ثU,֮WUU5mipfe665DL|+1ïw[tVSҝ[.Az87Z`:bˎ|yMUV`^&o/.!q5ꙇ=q 6qIEãee\?nr-fޑpH[rn%jw;>HiH6ur;(._OJ䉭j~ \n,N(o6.xV+c{6#Do[e^RY})uUWp}nRYmnmrɧR8xKǷ혟6_[dغюi'ku&S_,}g6f4ђ&aŗ:Ҷ@]xSbOO,%Mֈӭٮ\>Քc$4n&qGZKi[Q5<+ޢtNmSO3}2;x< {b|FA˹ӱ1d.m4[e\Lz9y|y`}(boL8k\wg­kiOT3o[Wj{bVfc(QR;>o_r=wGK?O{OoKߜG*Ȥ?|N*? y-ɗS.ڵ$l֏]mWE&TM-Ikp~=]Eeq][ZB 97r88Q;EޕWw)#+7U?7z7yQ ɖ,:^(uPE'F(/8{%ǵK,ɻc/GdsS)ˋ.k _>^l1K&Y:#9 ,kM5kcVޕ) 2suW2Q[Ev,$wWړZ]㲉[$dXzmآQv/bJY}.%Q8ky.]t9QRhV%b[[_VUG5FՖM; ŒqԲw=I5/N*E1G7mlM9TSME.VabT^1w{p:l92VS׳l1+YҴ"RdmQ_t޸^:"tQb}IW}M.J~lzYGJO^ 6ɜ@9BF"1,˶lpՒO#I5UzsgBOC$B_d dw|u͓|& 5&G5^FMSQpk?,Iڶdyn?S?sWvsN>7/-.gvSdb .IIyLk%wbwR +$vb"ً'U#urs!ɝ-qpL%wnS |iZ O*ݩV]mTE+wT徃`.l[(Y$UU(SiN$b"ܒJ8dΊxΑ8ubJcYlظ.;֗W_̲W毗kV6wSgMS"[{Sǭx;=u}KxSz?{?<>>}oQKf0:᫻춪1ɟlgz%Ѫt,sJ߷_&ysf~OmV|kӖFz}srgOUW56T#49FA&uڻ5dY',l ZcȴnV:MGwk4 N.OJu_UKmuIj䭪u}(ޭe׸tƥmZlE*'X?S/---Dx}Eܿ|퉧e5vvʈb5=pݪ -f$'cR/v=*$2x3 R$Ff5lq^H6p6\s=٬{5cj͵u]6o~\&MYγ/7FL69kEq䵫gVoGkhao3f<~U(.f܊׷Ja^WY(֗7]eeY}R/nmԭ+m֔+JҴ;i^T5de7~^,gfóLFbmdk=g/[~~bgȧ2&{9?5+\BI%3ǮoQ˥}w V*}BbA?cp[h'VWpNPV+e[Bcڞ8Ď8qp=[;F| -ѓiEZ;SVʪˮleY5/d-Y}ekuNx/RieUTvR)e뭥kӫbmq3sc(tscwqIgp%\Z$Ѣ%we6MU-Bswxo>]җ}1lso_ݼw] g/1IGmrMRR>E[uY,jFU[7]MNnhKpp:G+.z9 R]Dyv8@V4>U+zIKƽ.Sd32ZE=utխ19B?-WT|^eoW rcW5J%8r @p3QT" "]Ixڥ{86Y餬k+nwh?ow;q͹={C?x޽oG]S8˕:`7 $2wHYt6C܏/oRC%U5hJUJc.A~-1Λ}'y:^JlM)ZlAr|X({,wӭ{'K.A~-1Λȸg:W?9S{{[}[|;=5g^.gN=xhVQgY),%ÐUµ6uk3jbHe-ףarzxoNj*9E]-~;nV:Ow$pim_Kc|;(ql/sP9k[s%:=S*ų,>;p\V)u$(d}JV|uyk-"'[W}yaA路-fm?QMVpڷ^eS <3VjhۦQ^l|{vL_3Z(mq0D{:'rYdƽrd\\#_}^xr0 uG сaf[  '"e+I$׾[kYwvr+{}-Rfo7+f,6>AxCs)JV58M] dck;yCQ/vklk'0q[+lMDEbsJ}(K>:jqcq-=;x0Ѭ-zwԻdzgt[Mt$g$Mj=/H -o?՛[ccڛ>Ԙs9DDdо*Ps1lZBeدI GʽXqd{"'N%^]q36.1VexaXG2 mċɷ^A8cUw%W\65涏9|8ccz+mV-YeǬ&NpɩKM4LZ<.%b=W^a>Wn1s|H$E8K*A± ޠBģ0x=}g,]{'.ug0xgn{ hvQ8~_ R+ǖr:[1Yj}ug?bԩVҵRB`:|mҳmyyx=8;ηKX>ۯu|5Ż43O}@,$<\a< .b3[>Ǟ'Td0+E3MT#`LY2V|Pl|#hli`9<>SԾ׽xI5x'{)R)bzKTL 1NJJWs68(D9QPuNz5:4`WOtm8b2NK&k"oݵZӪ_5SXb53][n^X]SO!x]˸jɎ}2:'8w(Ǣ2O ^.g#lx5+{E5&w2i3#˱YWpy.1/?2J$.b%O, -g~캶wo+uĮAD5-LjQ>_5&hvYU_Y()h[jZVlwsmYLqcq>mS|ګmhխ5n:Z&+-i{/%bշnZEb#F~qS-on:c_1FD%!jl}KMCQ{RMJ'ZWg=2oH a Uݮ KhI.Vܓj^)F1Y)'+wlE<{b'xISm+=Į\v˦%o+:[&I+#,b$Rka>7%ۏrxBv&MPkaRorwžCɜE<ETTR&ӳ0mᳵߤx>a#'M^#,grma.ӱU0j{'T0)mݒ8{""'ٖtmw}:}vǚ3i3ũ%⚜q5yp^-6)Z-%f~{g'Ld^ntrM$6yQTX0t{ݴJ_sܠͥU !28B663<`Cf+wʼd\.J`_ /fmݏb&;g퉉`ںu:czM6oݾ场jmiǃlxRzOt٧Y:7m=~NM=ݗyV0_FINIdxcL|߈OJY4WTek4Uj*M}yvƻQf 6~ʰ܎ɥ1Lg,eJpqS0H*wWZ*`.[v|"#dǗ11˘L!t}-im; jts2dɋ&;dk\90]͎F4庺%l+Fkyr--kեԧrv,bwJҵ,.en-9Cb,kbhU~3ۆ Xٳb^]6؂>-5f9 aS |#8_VzHCiklc=vK:m>LՉ˞m%4ZkL~.f/lvZ,Ӌu59S))~ʹ펑y5ZfM}0+{`u{0Pʑ(Ss>Wt}2n7DS l+3ՑsU2rjeҔ51' ^VxhZxJwO6-[||ϟ><ͷ7Rv&שl{ŶSݯtY5:,cSQLiZWirmg5O37z;N[u2,w,l_mLX%+29E=ǟsH.2VVtj'z(Ә=0wMZbb8爏(<3ka׻[i2msśG6 ƚ3fMNlSثkV4Ưx&guc֯[肒x))8JU^.#uҾ bb}-7\2͊.ˋ%|L>魢&>pn+ԫ&e#[´fTn8A>cLYEd\8VMlcd~uu[TLq䶚ɧ1.Çxuǎk2ջzo}7c43{*Ƽ ?22#/SqHQU$p>WM^Y?5g1rfLCފnD63+mޣ{mY'u]SȲb368ӌS];\c12,"MǥJ٬;Lao!WmYAQ16L{='0ޛzS˭1=vr3s2edq.97ǒ"agx'gH-hJy$R|UR.YյnoUt]ڲKe=YW`4?"٫LqGvdE)1,6fȄx<)Y%FEJ{6nkj-^Ɏ9y{<HѷoMfqxgSq^ҹ1d^Zjds-kJพVQYb(9M yr>Zy^#}QbQ7v&m`GQ'1sj2b!#VjyMr>UF]<{gr.rPc&x"-/o`ҍES(e[3|H;9CĊp ҸZWϷ<|}{u):4fi8+Jbŋ&׵qaÏ,}){kHVWgƻR{_y^ 8%Uò)|bUX xYekrAU[z)P )c*Ɇˋ%dũKoYVc11,6ٛ#e8`cl?u\T9U ~FhiMNo뭶QG˗>Ke͓&lo-%""&׼ͭDDs3DG[h{qΕw:z}}.C9{~='ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_zqg{޿&^=Oݟ?._A=}<_WZއsiη=}_~7'ϵ''ʱiݶڏ6Y4Y-Zo0oכ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8"ӧmKܷk?B8OK*KK"0̫[ >gd᫨KEfEd .ķn <%斏\?|uIM,w=2 ^y0oUTj-[MU5U%uT:~sq yW:t G+͜$qΰl<τ8չժN.~%?u ۜUR;5Ccekng^괒bT좨w ]adչzdKbJ/USJ^kZF( ék`X^Õ8nqi86# ~ 3 Tkx,rTCI;úmmwmLNmɮj8g#- gw$Œ7A[ԪQIdɜ4?T{@<[8y̾Y'kIRYܧT]b.mշ?OC_zÃ0uTNC4]ֶ8ŮQ,ošBţZ׸тo Jڬ)Wg\8l靅чIj-ϓֻg[^ qKHHeiURVvF/r}کj RYN86m1 U;:od_/L{g\8l閱86m1 pٴ8/Tl띿 |[1s/xZ pٴ8/-ÏfྈSv6EotǶuȾ-_k-Ïfྈ?`?͛L|C ѽ_c3X5O"&Kc-tra4k[Y#YaJ)[O G1,z)Gͥcw}ru]T;;R[Zbz SBdtLb+Ւdɽ"rm)r)}~ԶÎ3~&0?&uh>~1d;;|Q*餝;}]Jl^Qi8ImýtČ:Q 9mzYښ]eu)Jon9WߚyLk"\HMcML=9hҙ, e"I/N11vZu5rgJORiɜ13`#)\/B~h{{U#਒vJR뮠pGe;߳c S1G/Bz_^B9yOyGc6֚7slxSW_ꍉFX!1:SDr:_eեZZTj>ZA@cϚ2T^]?cd<1}NYɼ27%ܺXNzט:'Y%]y#k81[% 8j`X9ڮȫ/me\ ؐ+<Ի<y;"7nr'ccә[ 3׸RNs3ʦ$klsnzJV~@ e5vãޛ.e`ǰL:1䛹Q- ļk6d;|]8Y[bo&ꥣ M+D<ջ_˜iYxؙҘ3I'1U$PUJFoM:6-IVKy9K8eVJ mh +]7Rwc[FTzxETYD/z_!q~YArc vR1K.E-e$\}>ǥW{ r/%uVZ8fsoVOe[@S ytd.M.5˩11`')r{Idy-jZԪ.E6Ly }YsljM2q~[3s;r\cX+HIh*pK5}WlOA MDjH)[iTЫe;vvNie+e'}&ޚ]KK˭mۭ.kZ]JҴiSOc&T>2k^{7%3}m=g'cnLqtr\fO&e)PpQ6/cv9e:gU0:R4uY9o|amش3\0\-_ wnI{u#u4cI4HL%و ƛIDO.n<9Y&#~ˮ"vZ^V,zm)hF?6$FvIή_l WBk,qGF-ibkmX9,/!d2 w,crr0uq{J6Z.eGʳ'Gq>mU,Qv*o[[{iJv//y9Y+ƮQp?[[(e+e7'%9'FSh'xsI[[cѲ1](Y89͢^v4?ñ}j+*c;EkJ[OK-}T9A Ne9$Hlw'DXB2^FRI$ы˺p}IWB2oR>mv$k LOjQ7Rp#H&p/6ZW.ˬv)}H櫞(5 d3'q bW-%B, ux#-BVI–?:sX$60^ܽ:zULcثjcK+bwމ%b%`Iiȱ+ d=Vҵ"6WJ[Ki[c]ҖJZU)ZBsƢq,~FWnf166}1[$}qz_b =F3 VX:#|hGy)niX}ϬhLġq=Quk1[A=W6߰{_ƱEWqE,vr˥O63ɍx*leOGꭗ6ƽlc bϰŖh9B!~!n|!(\jpVY&*ꦂz,I'moQETؚv[J}Vm+[JR8+{3 /8Ǹ6Dlk^M/.a13EJZ;s[i^rۮ+Jsg#xl}3*tu3uR.^ O~ml=ė1"iCɈw ),֗Vʹ|z_OvʬUSSۡOPko4y KCAN<'+uiVJ-Exoc$Үcl&R1(bnKSq%pޒY#v[!l^6Q70y'p55rr,19z/? c{G$Gc/&ce#Zߤgj1^VPyb seVK/)ZTbR3xlnSk{`B8!8~Qz#We΢̲,X󝀃21uR1COuMn0u9`15ȍ13 })I3`&.{CW`ًk%)>V>L=GF`N[.<ޙ%ș#N<ղk⯙7Al]u]3Z̬(5t#O6}ѽ팶 ./d!e\AC/ l2'ds׫Y;ݾ%Mel*"ꬺZ)%eRbim+uu-V)C$s%}RUh$MJVj(UV۩[.vҾUO)Chr;Ҳ tK[ʦ1n MӆJe9#[z; S;ƷrtOKZa?/k#(֝`VBrԠ=MA2l:v7'+3JrO0Nh;<ۿ!ԛD'0dX q_2`.'9J//ne˨ hԓ /|}З>Z:tܔk?<̲Y[N򻒟g'<dT\ܪq?++J^ۨ}TS־V}@yWʲ|oov G< ȱlăx+eMZ[mio&c?[`mhL+2L^N_6̮ѺRer)^*_mm*Zg]eTFiCaИ)gqfޤ'noeU/VbU[JY'mGhAhѸ !AQ]*ݲiTR^Ri[{-+`n;ux&;'?~Ԥ /a '5zD/B%^(Wm/ Ro9qoЪoS:P?}v_$sMKQRbV.o%|Z]wv˖v[ZR}@Pw1Qn G7r՞N|}R~6t]}BtPȳMGQl+sJZD=+9 7{dbNw"lv̜55= 'FlW՛u+m/P*"~Ďk/jY N.TqrRQꥊ#gzĜ#J9\?UTHY6" n=OؑVmKFcQ"QS6ːlKM1+kaBXR$,nA5AdY)FU;Ͻ2,+ؼO0lo$ b4ܗbe-VI;n}e:+n APMYxKBq B$gnxڅj~ط! ǒmr5Wɦ]!OO*Be-?L[^2M$g,xt'ϥ2LJ[*ݪ\pQiޥN\NNf!Ho2<_Ӫ(T[s7ǸvRqncy ){gWz:Y ==H4ڳ5O/wl7/\B[sk}m-ئ{>c\[7!"0pUrGd[)-|nW'](ٚsO`W"pd_Džۦ'`x-ZN}iN%_zw{tXf!(*m'IDW'ޝŇ^6~?ߚx3Zׄb-磭S=pj2}e7VV0zP~^O{ 2כcc!ghq=t玮h'Hc HdU{0G]6i]oua}u/ٻ#Dd#>E^ZlFZ}O\t&М!q|{V"s=o7]6w)-+yXqf9V`F"ǽ8L=2z[j39AEK)(œGǿ]}߰<e@@>z}s:L :k뫕BJqCLxgj^-,&"să6kB/zWQ&ub;<5&E̵v/7v?! c 6RU7vAVj׶Ю(=>x˝ήy̖˸kս4,'?]^/h@Aؚ5i.ɒ`}Zޚr0u阌{.ۧV]ZU4.KsR_YFēEE|ɞ d1{\/]gmۦ#`&2fF969-*d\'Zdے=>wxϑe\|X-d8)''m7!1 I۹\I4%FVA .iʮ%م]N=kN+]db9ktlLsSO- SLMG^&˱v5'LJ}wo)7`m=Z7!b3q)jسlBhCɕlY0v>}C_zI  ~csAO]OMG--jB(unxVVRk}Kԧe.om+SWrS92`Wg g⹆))ȼyxK?{;57QͬZKR{[+U5(oղSYٸ[ F-a^"\82H>Q{\/BѹkSvn!:0cuj~Ϸy=-ZU8I_^'eni{%ڽ헵:ުWҝ$ufi84`cK#:劒hF^ʬtGVD+mRzӳYqkzBeMpI9)V(r mTnԺj-g,)A7 Yp[87chU7o9qo_$ |: 1o$iȷhcl[7IXvۺ##ıgͬtddsTGGB̘dě4fѲIjպiI+,Nm+r -]æ̟-Ui%m3LnnGImHw,{֭]ں )o@on?9=۴9 N8mYsMMRLYg7823ڋ&+A5馝[^K P bxݚb%,qYH+1:cumXF턥!Vu]<'i!n7"ow`rY$&28M!p=QKkFMfp8rMkD?EwI5VԩK3pr#@-Jļg+ GklC_4~֗L[+QTa Uo$+W\DGuOޯ)rs&?^i|xd߄ߕFVf?h(\.Of5wuM6y>\Fitkqo_JNᳬjXeL9la7,GzM+WI%O't>&kDp\jJNl쌋::#flH̻nߵk+< 4j@hDdOa>I-Xw͚nXCՅ nFkmOt5ҍK{/}78RLe9zkw~gCqZ}SӢ_x]\':3RhIֺy]}/->mE[)!_JG^)[[whU-yOy5V|w}ůq2 z3M=7ne!^VN-AdYJ]` w^klA|N &Rh=-Hj=[iq,EvT cE$]_u;~K(l5~a2Zx{uSSv=bG.&Qju\շ6R#uSRݢzj_n ۩3Y&ج=!NKdUQ RAkm,;pα.q?}toND/=w(N@s (i֐pkfݐn6qӓp#5K]=nYmh89ٯtxQ rK ]vQk}xqÄ"m+WVBo+L[N~9[׋zϑrew ~K"+m-Rjvt~ӫ9sMxI=g_U"|gNa-k}/Lhku[~'mݶe-cƠs}pH?;B_hSWrS92z@p姚j5s06p$w+7bܚ)m&Y})#+tNpg'AdYC;K ԝUtͮfFSzђ+$]Z Ѵؾ:hlhv /clqc'&b]Kx/:c(#^tQۅ(?b-?w_Oe# ry_d?ΘJ8?p~<1pJ؁O]W5E=uǏ?Ҏ?LR ry_?b-?w_Oe msYO537AH AI3~XN0EHǬ᛫]PRID/il }fL`M h9f>Sf^fK#c-tdH|R&6%rlz5ȵ`~k|e;ǰ[)J?EZѱnxJ%AAt6_r}]%b`"/F)I77i{Uo 5orTSm[_Z{JgZ\lALK)#cg!5l 6h{eQm;#w1?ђW{2Zh>M͍4[5FY'iEY ˲c q K'É5U7)r(e }7X_a]ⰳ9[y˿b/UVk_rw$whzv.SU;vxNu,iJҗؕ[ZҽeiOU}Udi>s]-1?ѫA B8--bJ6I$[e^_UԥTXou;hcw?1pyivi kږeyAZ Y/=LTֽw ٓ!e I 2s ax֬Ɲal+wяFDZ-m[eMխ|F-<$i#r}Kp cYc1CiFX}g _%%_NbIow%$r)gvZR;ǵǚcX4ҍmNJJ<ĜēJI9xKRp0==흝YP&^]J\Pmgb,٣[)W:d6j*ҵZ.\@_Pslk]V0O_7>ًImyNI%s'uSܥno,.v,?a6޴dz=~Fg=u $cC5AȧD$>QW7_6^dk8~=0sBnt {F ҉Yr(:mV_߰&au$YtδںWqYڷF2)q~&j2s6K:ZBd&ΗǶpJJMy'\[Ԙ+%(݆U!p,gMf{mo$1iVKy%tvα.(znK%ɢjjk4$9 1l"&IGW$9KUì=)^ g]{3 sZ~},cN{iխ>!ւNDÜ-/C6iDPi~/ T6A{/R'ftڮfX12 &LړX ž)IR&ҍkbdVIE# ktᅍs6h<ܝTV4}oZm׹W)#})UlNF%=-B-[[R6%&HYkzYBFR߭tsK;ٛ+=%uMj7Zc9 4gzж,MtBA)xwLFUP|͔S;f{. &Nb탯[br+&VsHUyZX\Ku :qALf[4S]LƔ2N?rW)˙PC*[!֛;^>N6Z5B(VlǜR)S^z {La= v:HO'nST^-C|UՐdN+.:c=m,g eǮE(㘦n"˞JrORBJˮߩ0P$;ygfk%Ͷ3s$ŜkxwvTv#/5i}ZR [OS76+@)F>zVk3)Zk\9\lܽojUI><>ۤ){R9^BD[ĝ|m+t'Ӷ꽷Z`kJSNe{k쯸yDDU7Msv;ph66CAs%+ >yx'ڰe7XEʞm/U]oNq86ձcep5ҹdN*ENlY>qWWik58_)semYzYa vw"!ʫZǽHuhBn[蟌޺^mY5]Z] /[> <=T9|ӏWӨa Cb3YeXދc1sEZbԥ;)ozW1X54}/Yj1uF 哤,g/'^ӌy#R:(GhRiE-f.Zv^`팾񶴺ۮ{۩ZҴec:7/0v^1M@%kH܂/+ļq{;l2D|{MR ܳMN`pSZ}6R.+zqw*!-$Q&*GG]zӏetvQn$k>*ִ)Z۵Vzԓ=VVw쯻{7>k]ÍU ̣6$b+ZM]pzʡd|+ A\%3SH1RK#Hqc:o߉Q)yYe[ayِd Q75Uqe潙:qOwn)m\C˶+fr (UY79B :QU.]W:.8α|Zue]4f.fBl$֪\RꃋV[;*XǐC^xW^RUYch;"&᢬e)|m\UuZtu/|\ttIFx{-O3us;9^w+Ed*,ȴa'Hk^S:[h񷣎K3i8,Be##)%Lv~07Ad;뛦FQ'eUkJ֝߄F1jVEU=db1K]^m<[}r]Neݴ#n r1 IX}UO#*Ͳ+m+EYcV흴c0L*^x|.-M쭅^f&kPo޵w͐REㄤQhN>$),Ւ[e8Kݩ^;[7Uda:{Z0Q onň\[[ dN/ѐi|[gWDxb?)7HYjf)bli$)}Rԃ3G냲V_7zvl$gVua.,QN*08W6͟8h&:H'lls/9ԯ\OFsI1bvUcq*9J&"]UEl_zKSݯ4VnԻ/5[K sfig2VVT4֭jWgrmiV2xC*>Ϣ:}Kpw x')s>+ful/UmlmE@tܣ֎-p=W6grq/2X2ecb-4^Xk1[h=ߤ6tfkdKVV,VN.EI\kRjTJwxɇBl> %mk{4 Mns>1VSܩTJ[}Ҵ3r.g\%憛kv!E] Seʿmz*坹U;!3Z,F\.SF^UI?{1nȜ+6y/(M<Ȯv<ҹ$)E;et?)y͌7}W7Џq+#6Nŕ4e۠u[=F75Rm_?JԚZS]#,[69ooA*F_4ŸM5jH@CC+w{Exﶩ]J[g&tǺ-r3Dד쳶 r2&.?k(oFwݩ9ksx"s^+[*Ρ;_^;boo- 6d޷*MexYxqnQ6<'L ֘ܒ֘8AJeṭVkrēM xXה2u;ˎ{[v\n]ft4eXO&dWQ=D۸t˔VZĝ)}!G=hx"DŽmYM6;[ļ4#޳_T{lF W=_flƙq+i^9HK[UYv-v=h]7d-nŴʮz}[[#U#^BBk~<0p@&Ρ`>!m]1J3L H?:Bym!vVIyD;o&~AVW[9kKsiۼIøn{-r>78MTVvѻf=̅5܇Xߤ1 2$ߒ㳲b|6YDO81]؍ʶxaN:<Fݘmc"oސb<ƵҙYi9Yj/_އnإJĦܺqIG0Yb:M*!s)D˷r啊xt ݫcE&?sup$_]$7oli9u<:ΰ7:~b9" `a{zLYH*rV~%a%"7y} 1uA*#.~6VUbS9ɊCnZiT4'J:N4 ݘwY,ۓ#} Ų?)qaHJry=2y3I<[ڊ(!!7+8wv.^;}[? lyL=Q6FF)5y#"C9bEzM(Β7PL %d~)4rJ+cIQL֍ܹdi Cc_$m3r΢ :®2HqWyn>qK\,;?;<^8N%Ci#=!罓Iv31Ⱦv#uNZ^eCVb8>&h;OKtξ7ϡ0̽cQ<;+27پY?Vi#٫$s*kd䠂MPEQ4NJSNvֵim;kZSSp_Rm/2m1K3Y, e LW y&OڧzU^(iezF8v؎F-59= y%(.鋯%|t< xYRfpl|w41[ZlXn'.gc_<~NWj!ٹ_۝Xv= o湝/#\'T^Lc %>TarMrWl2i;;_F[#WYj(\5n}̓v:N▻]6~Q ԛ8C*u4/kFbp/ެșVsߦ5ܡG"bIEw2G?1Ub|u\SWjEv1Z 7Ww2-~im3Egdeڰcr\|G U&2X1B.+6SikQݽG0v̼J1}drهUC1:zm̡LQ]|N1թ)eRUɺNZݑCT:_gn:\G[SrDHbөrM;p(k7Mf j.kڗ\ݵ{:'c|ϖa_$W0l&1(ˢ>yxR^ۗXNâ٫`OysбqXw0Rr75XO"QFVzh2L[R&Rq#d,cgux93(N]-ų9jIx6+$hO#ƷtG,]dB'ӏ/yqp#6׭qY1LOkGU _☞BXy&E0rkVN;#N]AM]yAY#0e4$-Y;Ѻ$|#HܒA5YڤuNpq7Zpnu0o[ӑ -ՊcCd$Θ+:yO&9׭^i{{9j` EE5YKI+/QUTM;-רVeҷ_}եJֵ)Zw=ǜG\frhhn(WgMfZ pbg=xTUMvKm8kw=@e'sG&;?rLd1s}*լ:=۔VAJmw7Ժ[)ʨmAV0}k\&O5s69Zz@?6&ۂ}<4ؐ#D '7L6(Y(MqDĄJNﵪI@ܿF<5Z|2=+\fXs Ÿfq[shܲW~ѣgA7I^G5߈<xad׸™wa9OKʕs7ZҘee,ic]#;8d}rɣOtN&{FٖץԵkӮ3Ud-eFSE9lYdӺ^Ifj'^[uL#s}\іe&vyN\#k]{p qm*Qxp{$zK>_4܂ڬ^q%ntb2" X‰WU,Z/_F9b7.1w1һ%渷 ǥzxViYKn/nv4oFjUJlu\cX6.VcfM%$6{i-B_j !l*$]+ϳ|l kL^`y¬W31|H׹qdPleecB5P{FNU$wr ;;gMCa'ST=6^hCZ=`2e)( 3җp/GգQGRG%6KIķ_vQMI3  ɥ ,dOBIBUT\?MeNHrWqCD>GnӸkK3w.lbأ)Ik6bmѹDl玝H8Fo,eq-rxq"2qhhyGx  :|<t]݂h-H;3'A+*)}Im׷c;d}@zWy {q [k\*˙->]7{\YUQJf+¾?:VA5m,! d>ˎEk[8[\l[4ZA(GP,᭗Hw7ycߊh?r#'.K 0(v%v 8ZOUM2X*䨗ޅaѵnmUz[(g=/~%ߘMxyl:4AbX$DSY&JGFRQ& \0|ps~Ӝq]cybY:[!KaOD7y&u{eI5O/)t256>ȋ!a?ƤCN6IK +m\3VX&%uQ[;/os(cǞꇻǓ2+Rj\ue3ʰm5{Xf*5!%){ ފJэ[})EOo{0{Tr[RGf,Was)h9Jo9dR.Ѷc)U,MKl85W{ V&FCBk) &}xbWa ג,dx'i̋T+Z:tܔk?<̲Y[N򻒟g'KN~Cc vX)r\n)'GrJMjw{ )ҧmϊ-lKZk_mkm݋#e9*5En`ETMdR|W.lq?QeXc RКSţoHrv[wTMe/MM3M˦Y.I+MÖvqw^'glT850j~Y%g[]ӼC؀ּ1&glNѴ5&^K \^kbfQ[urW'}J+mۺH-Kfm]iI9(=G[8jڻ\65KbQN\!Kꔕd;gm[>\鿩6ވŦՒbmti((<z+jѼ~ϱ{fwWq[56Mk8!E8h "a]0hXEUc~%uc9z,:S]3xk!785&S=w[3C([ll")WN1w̶ehiP~kG8h-mh+^/6f(E'9 VmWe{-)ݧgaOfpddk <+<|q+y9pu=Cw~'%ǹY#7#zmY3SF,2UA);6>qqKY蒘՘diZ1W'ʜbi[I 'Zc'ԒwiR~(](Aޑqf-,k]r¼rlpj[{W6Klk@˴j.]$Jw>id8w2}'6Ib|N2VrhKCL:J*4yaMkhq7Y5}Wܒi0+HErw5ےN[߯|V"r%RH"mUNp/)45Ms_ L k0lw "[uu|y^M4aZnE]`Ma{G)JM.?1 {_MԃF/[YrF~K62/Ǐ*dz>:P?}vSڿ*-7i(^Oj@DvCow/^+x#|#˶I}'7˞gY.o]nf]`^w훞Ol^WwJOIVaĬٔ~Ekyv zQڣQs&uUjIJ}׹dpZ^UIH撺Pd[lZCaKEN.zwV28[ӝeeVlhrl۫j뤫~vw~+yEqg0UC79l>er-;8·#ڴf,;3;U7NC8;'e´ unQ{TY%s\Ӌڣ,0 괗(({Y3,+rT뭭՚mg1#.~Gc}<ЌH2#!*9ѹ/N".A:UdؾK1&S09 ײ1p9rlf. }^\tIcuk\s;P\} ѬfܼwAF?Ͳz_'EH]s쮉]#7oBf fdЋE#ڋ3ŶR[dW<ذ_d${Nu&QПB[A%{.)[Du)5$SK[e]_U*s3˺){m۪%Rkeۙ*S۫b_^or]_h_m c&U>rW6C~t;UoϜ /{ZWPeArb_*z(wM ?7@n,Ccg鴌{ pn2>Z7F &O2K>Kh Zk^/7Gdw[$-3hw(d03i5]Ūqs6g_Oawu\>QyrnBsxKdv6|]mxUJی|c4 +{ZV;wRcJ7yp^2& \;_~U<5m)vzV<='P-Jb.i{ kM5azJůMa RV[%%\oMF _vR}? &WS]% f |UZqI(8 <{gCI,IQv@.;Hj/!ng=A*g X\ dC]YǬUi$}"!<:#8Z=Ӗw_>JnR,>I3Fr#yIKFSǝŴQ_J5fr HickSles=YvOcƸ^dY4Ґ:ҙ|u~'ZH=Bd)!gH1p_V2 H Ccw4/|}З>Z:tܔk?<̱Bx նXCɽo[Eڲ]t}(+SWrS92/d=յۮۺJZ_enNK.)P*zs3$ϰ|zNo_]=PEkM2bԕ%*R)J˫KJօwM+jA^sx2hukJouijZ7*եKiKN"3zf"~/\d(ɰZ-bO$+jnNRۓR[kZVAn'2r,B} AePRdY"g#FH3tv.,QDmY0uXNֹt 1WIɓ"[ycW9܊Q5듻R>|ٙNN8JA,b䝴F˜R,pqkTkJ^Wu~WNd-%{2GV&vrQ)N]mkC6nkLxe<ϝƮ邪$$bE6ȻYޥm1CM1y+tdUHGH2b=brG)(W uӽ%lK.TGeIT=3r~@,[i3ns5drkJܲc ۔ftrηjս R9dK]sI6.[eimlVR۪Rҕi_p2n MuV5|嶣鹶9{n|DVOb.g8S;<6&6<ԖLWQg& "53}m4Gd^.]ObA 1B}|Qj#.6onzuܐ/yGۻ.f1MߪsQ/D6׭9 `JƷym|ڤڷQ[Ul.[#COFɩd;- ḐUE3v^uU #4?]=k|$u0OXk<&cIk)푺Gbv)M`:Qh^omhm7qIj-  ZYjwYjvrn}ګ.*JUgguZc^qBB\UxHK`a;V*,qsf6-sq )Fz+.uu\\xM&4bKوYRj̲)rRLsF"^"bM'YĺoI=Z8cfg1]rTU nV~ȇP.\FAf荒/t>GIEcI&B:ӃXaNGɍ7k7gv0{㐄ϰ}]БbţHEmej]6Wx^#WF<$IN /㗋l&v4vWcxfs9f}  #-bصyyvTcU+wr#5y3{l̑rSQs^jQKHy4{WY;NHFl :+x!6fk 91F#"rqPn-q&ɳ+ZQTmI4T'قqq7 ,i,/'~E:Qجn-nU)d圝 q_?yqM}LVS)qkHX&[dDL2iI9'w jux-'_,5wG(k a%WO*T2j՜8M'7\0jkno=ocAAc0?`1hhYdɺ-o֦VYOU=4NG$v'^z"x12Ǫ1α]Wi͌%FAl"w޲]U>N]=ZOA##y텉Y-?;yŰ}Ue0'WiR[%ʼLw3H0}An|9ӰU%q <'u#҈ͭ3heq7QZkw skLm7rDq|}yى{< g!$=Q;Qa4S›ƽ`Xf.:A"fozܼLtFq2^Ey'"vR XdĜxJ7titI[,R˭3}'9Snll ͹KِeI+rɌ/nR9a:ɫV[xpk3}ӞZZVϳ4lK|/gªlsg!57,Z6ьŐNKs`:ߕ|%ԻkNff69 ^],ݩ dEOCHdiݕȖE}pXN25qǡ`2W Ι1jẔI} Ttf> N9τ\'̮L6?c3`m#l,>v^EdqHx>vM; 'InglMN}q;eL]6ϳ 5CsC+x3A} 8V.*2O_#Kq<0[ȧ\N|sTs-}kv~!^Wʳn ꬓ57% &QXjקGTSm^'fic*,r}a+ŮY\5:ՖyAwRXsGM;E5 W>t,֭8C;;:W;қ+X\Fb7Q01s_ r R (Ʊ`94e |6웷.9tY\F3K%F3\vŕVCIJ0|_XrSOeFdlU2 <f[JX6ZWٮV'00-ce'/ǡlk`"JMOX}vfؑcwI?|єtnSxe 8ٔ[sf6 Y'Z\D'\Δ'7gY~>vÝK}i=5dYӜA%|5ɬ^m芿 Kzr#N..s|hjřS|vtu}˺ų,rVr'ٳqf-#Z(窢җ[?cdpc<Ү٬6Ka {EILkmͯ Jb9Z1 IŽ6%d?>o]U&?Y+Kl;#QY.aW0]o̥5ɝ`vuYd>+*Hȧ Hk'I8[t0; Q&gv&%ʰ-y3#\)uHC=g Q[ղ륄|+Ys;靉b"OŔI(骲%V[E .$i1C_,t>&I#=6:*1rCdFH`[5̏e6sOFz?UZot\*쪲x/i{?I^#Aҗ9nWrBK68g#u)Ol( yer ̺b![OM̼f37!Y\SvjJ#UimߠFߐO':!Nge͝ٻL=^~ Q>KprW_\~'~Ȳ"7"FInT^/1lk7dv4JZKc^l$yκ_.j*Hx\ec"3ldRU4@}З>ZNv>ǍAO,SWrS92ee8v]5c%'%&6.5W.ݹVlM4춽_[SNԾ.G=kh$pII7xM5.-ywj+J*qK.EZ\.Onχ{7?Ĉ/{v|8ٹ$A`K"۳" ݟ>n_qsH|ǷgÏD 9;9 #?0B\8n&ӗKeC:֢ZYv/ݭKwn[p]̓UnW_+ᮝ)ᯎ];[mŐQ5JXC !xH5G4ku#7(bՕ_cg3;yXske ?zlwDZ8c6iGB[H8x)A\Lj GF߭IF袝=VYmr'muRZenKֽRo``0WZYˑu }CK-'ct%X9FE=GMHr0HvAꏖ)=N1y'Z}ݨ [UKOW]8 ˯u1lO !m?VvPjE ùzNܓ:OwL;6ߐ˴ IID()KѕFX8*Jijj4l RVҍ6dٻ6mhѢ 6jղIٳd$A+lIJSI$4Ӷ,ҔUO1Cݗ#я-?~6k S}Z>:m1nU71Cݗ#я-?~6k otOC,e+ȭ#-\r95_E-w?c`X9Xv/gU^5I4lkxLGE2kb fͪ lպI)meYJ[m(y@+i6["kaKi\붭edx$ ZWz[lNc]sY>43ܓ/SUcWa}L"Uŕwsn&NWiJzJV}֔짽B7u&Vm+[iJRmkZJR־P<{t^٭xӶ#xƽ]:(o2rfˮ7mmqTw{YǛEHXYYur)8EVYE]5U;Q%mYwge{.^S^-C4kT#*b5.hɂ+)jeŵ몋Tl,Ӱv3qme%+^MqbO2x<{(ğS狷uȡ ]Wlnz*mDzBw/K-R˭/ۭۭ=UVi+B$68+IX.ancX">=+EU]0fUV2v&;I&I M$S$biK,Rk@?@r:$aȩHbjܕK|MrN;lN\bWmԩD_cȮFn31_kL%f;v >E%.ƶb,I x]>,}r_#UЫ-G$G (Jm#&l& //v,^h,KWEK/{#UTr8eј#m\5zͺ0nl]Zfg(`HRx"Vٽ0% 5xȞBn2)H<6g-:F=hFHft[c#reTUQ6ܼQv~fS4lK? =uĎk)Tm8K5f$[#Md'.Rۃr^;Gj22^KY-dxݓ4E{Ae9hg+нJS[OkfOv5,>]aXBnAr6kc+KYe7gvc//iݤ2zK_%7W.l²r8aozfTVǖͥe1SjXBv3uƣޑCu;+$048N^2?y7C8tk'^ $T`I(9t/tDy %pQ5^v\tBWuutBJ,u_5:?WQ ;'aaud3kf1Ȼm,>]b2кA6n%u'닲Y.}iMK5%|%3Sy*P쌅ħvXf!hmi>A)sV]1'|uWw{WIl7Nm41zje&ۮ؅]Dsoq;:5I+!0~JU%n45a->J_g.nY :f78=D_tf-2w Ռtŵl8bW~ɽȧc:.KjHP )f6Nr"YD:63_9mdS9kXHD$+(l^kk[~x7sH-wk̃doһ%xo%۔oId"UXBZG>(`_[[3~^oZt6V3q/QIjl(nrNRJ=Dhq8g ۟qq1zcmqJH+VKQ]YJem]]ݭNКoeuCC*O"64ӼbPg6Zדp&oAkMKK^bOh Sa~kLfq g&37f>BL%rSrg7G5n뤡z'Hp9-fߎ('٬؆sǬh1kxVDdҒ,v4HSq%"kʺM2^"D{h|k;܇!ja&252NTVNu(}dނ{Lsdc\ 7%p,:V[J`o3ִkK5vs܊"AsJ'8z0@$W[_rS{qyfZ!p u1pk`g2u7lضmu3q6fYR.,sZ+c;O]eΉ9$2[ǾRgkUE*V0[LZ)HMóB];C3=mYNX}n8(^4bε[199Tݥz,bpZVkXֵmkZFk_]kZZ=>=A$p>Bq]fņEy\W\gVbGr-dXEΫޢA_Fyb[X[6lɳvl۠ѣDlիdAf'jH7nVؒ("IjimYm-)O?K.$?pNmjbQ1>^gH>zPͽN_$bC])wهp[fX7xҮSmfnMf|nsθ6>Z; .$ӹ bXɉ (n's.s#"#J: %$ʛ~ܷMz޶ K\ٵ!mBăkCXFNʶV\SWd>%"ؒQ0udK5TU/]ܫ|Dl?"Kv+`2ɱ1s;r&R3o#-sEڭVMZhJR@0)P_}{0:o~꯫ZދP)L_5rK4#K6^' ^/J=3 /I|OevN睞xO|0|}\af*›Nt$a4J[mTu#e+ګ[Ծ.y8w3>M !yL0/%zK^G賞xUo{~Z\7y5/=l ϖ+kl^SB1E [ѣHVws/vS/1 lm,IѐV|RuE.;- V߲>+7ܓO{+jDcSnj^֖$&{^!wRNznrk7ar;;ejVNZ. ^1U5[%50C*j)1St;M76JZ 1(0̩͓kkKVru.Q׎TU.9]UokMRW_4W}^諭:4?4rn(2=lOS!s|bm:Vbbn"Q$ݱA}^A$~LK9I?)8ϴl1z²/7ҘG_(oOj`o#{$w_<_V蜛JzeRXԇޏzS~O0|w<ȼOWO`R}Io6xV Wq;yd7ygyxO厼?~_wߏ.Yr8:jTf ܦ64R7ɵzxkuAKKiZӺa؉}Q>_TLG?1U6x~s{[ߏ|ƹG]쬧AricVʱA%j$MBnUvYDV.UhjSV'vEn1DbNr#6k BQʸ^ۯM5An/D6pq_/x׍h<o$18XyVr!\,ƭf$L$k^\gM|eC̮S<ư1gn>F죜Yw&wx.ez^8f\ψZӗZ/{-9l'(ml'([sV3}G% ,AF|͋֡t8[6޻i%2L43.V%{fmѶVvڭYA( ,һƷl5-įt} Ț;chih&Aֹi)G2ȧ+(K&S2~(;OGp?jc"-x01x S.+hQԱX^D֧7v{QiO1ǼG}nn{U9BNgOB̗e} ä#3T/yDI ?L='OɻOz.*s1+Tnla:_Lr##ܩ۬~c)eY1Z?zEx6R5j&ymo{oWp/Qyя&#-zC=yΈU/Ob|vl|_sMa8kN*AqO6m68O;G"ɲ)"SZ)f~y.,lWyP천vOZd3HboY'חReQ.1ģU#rWg.Fr'w/9FUӏ`{(UImRA'W=!_6]t.zJ6JJbGCtV1xlqpnHv:YEF)6)EU]k]Wqu\GŧYd36Oͯ_ueQ{^(9$`WRiWJŃvD&f_MM:7^e}Q|ќ8G(!<釤7s)/Ew|@6-ϋq꼝{>!˿[X-+[~-h-m)Z֐oӷzϓpmo""ɱ כ*ǟ,B*P4_}(9U7N$F|5FɤUg]5$6GLh ^*,rUFĢ pc!;ÊB6nOқG#We"9 8v]%OfEv%Iì"FTY %|=u*U&Ya2/&uG,A8Jڝ'+խi[Ce1+L\B}Ru,aeeRBv!|Bҍ6~TGY^l+dc^ÿ#7D#]%PpV؄c.nR˛?h0ϙ2y% l#ڸ|-IVm×+}ibhwVe]uiJTo 8m sƫ"lo$.VfYdy=͚dQ.3yI7O y7(Htm n}B6VWN~VOA'OylS(FZr6n+m|5z]N='&V.w X'i Y:/祧oumwwޞZ;\+[N꽣 Y^rԕ 5NHR.VlUSvOv훀6'3/4vNZmnڪY,FEdDNR˭˫miZ>'Tq}Xl>^Kk qAy|xH\Pĵ:yZ&_r ӻ =VXoeaJdx-vOY5p֩V <խ{4`׻J+)n~k&$s|%Zڬ 'Kյ8pntEm7lv _H䐊K_lŬ]}ɶ¦+uֈm-SUG]G,6{ޱo2dt?A[*vHǤk,4|n Rᄎs9;Eqyeiۓ]fd9Ils-[,q/lF6^e' KCJhIƘٽ#}[eTc,V'ssw;{{;vvvߧ>{hm;k^Qc4CMEc y+77 .&5]O*F[ZڪޭVSkVjҔkZ&mkZf"DDDL.R}<%dOu>Oz@):ly[X6nB]&7hʹOcg$p+Uhޒ;u"]toz O:ڙp.s)j7DhhYIX*[nE:+}.C$sn1}0M鷤6ho5kjm֥tT{k}'8؛Dgժ7&E/fY܁ceg+JӵFm˩N<:p&mīu3WU9a<7|ź/;}ӷƳi^Ϸ}gp=h8_+C!1)U'1+\w;{)ڢ8ܮB攧_Ns+c1z|[ٳG>T%k&qiyh\N״K:gO,geod;3̐~JW]ݥִF],ȬWڢJ5SR,ouRVizEeEPUDU&R+m[Z^ZҾ=/FMTW*l7]yˊ$u]c2vǝ(]=t4տþ״}?O>sxsi1O)3}Nў4.f4z_b=vq%Y})ZV>s+}>12KG\,]O  ʱڼ(e$^Ar+8e$ܶ}v50ƤY?A;ԶV܍\ZKGAtUS\31GgLyt?'x鮳龭9=%+ͣ vύۖ+1_|*eeom?iNֵ?ֵ8w8哞 c3kk)U]Q:^,v"7ZfBVF1ii(UZ&mi"?^|-Ehu[Ǥh[6>Yⴥ|9{LS:E%Zϼ2'r]-o;F)tm}( HOdn|Kj6 cB6&5%oB:9jTV]ۗj7S Elv8+}'=+nc.A|oN=/4ͮLvoKL^fb/M-m80_+X% tex!)e&վCȚڝѬ*'epd[E)%긯4V-[DZ'bc6Vvߪϣ04/.;5&&>h^=B5o/1X,#yFK]{zLYӐ(U[$j $X$$$YZVogO e*0,s%KE9oVꦲJ[oorR,U ]WfuCӯ\<͑sbLPUcv .I]ullJj&V AjR:jL|?|{fc?~},DZoŧ c7V+\uZGŭL4ǖZv8x/Em{i~iJA܀ҴI:o{ooe>omSP`fd<ٌaeYeVqTQfɵ.r.B>-x]6jYJK]r ;rz_UqGbU];/+I5^A+ߔs!'mk3o.=ny`M NJ+ٞLWF@:V% ٕY ۹}7˓}mSŴ}{Ow~|ӗ\ݷ{t4ٳ?vf~?Zyj|{OtF9Op z_p#dc;_L޷Uދ&"VHEȳY*(r嵫:zLD1111>ɉ꽦gj0괹r`σ>+M2͊|y1޳hVbbba.*r;侟+wZ5UJ^ə&PNJFj)#:Q+mAT:5)u)WܩMܫ_Jod5FE%Frg K\(mb_r8uQdG/ZWqkX$m-Y+}}sݯv׳OvS5{'Rݟw>}}u:ӦtێIw4늼DWY;qjڙZ1Vg™d ,dvpH][}+جW'إ((2JBw];&h-,IYzevwm_Y hvҸ]Gi)_%Jq1^U8]ZwZ}[~%Bޚҗ1SJhG2u6]smF(WMy2j-?*uعcL2kQkF?]&w)m'/N=,ƌAVښ6RD|"9ef˨{d͟%yd϶ִ@Z-[6C8wN]51c:S|-c3CϩmP&.]lޓuęErRhZkh|q s ˧[\֋d|,%E3Hi `[r,p' 8AEjZw)k{;S]?J,h^=ǽ_pҳMrZ7 <urnt;Akҽ4{mɪe{aW6]ضED&ei;e3+ޣF c몝Xf,R1ayyo)ퟗ=6{iZV.)^s+']Ni [^.Rv%w{*A*Ee9EkujZ/m?e>ձt[OW3C+??r_Mڛ`yR5VmZbxq{8"-L\g }:}4Qԓ"o!MƼ|ʼ?4!/__oKp?ziqje牏)b.Ot7-l:&o./O\rxy,yqmٓ/^xk11s.Y)_WGq3q'f0ߪg yǜS#ɼoO7G_<8福߈ɖ֤yͦ'ʳǶ<:פG]eޏ^ZnՇuy05ةrW6)2LMfk^ n~_R-=as|V/)yοU?6y͞E7Hy>DɐǛhngGZ!Aͫ|zzދWb;[EҜ_˶1 p%ã>\R0Z5MT+ZR57qJvR*,zA+kZ֖޶#m">nZ'!fEzRCV.lreJ}΢9?"gSm/\JLomi9SKhbcP)r)+k!!m)w5Mg[m-?{}v o~~gooiC枺R?+o~jWJ]ڕ﮴JVWJ\zg]N?Ϙ\R:Mxײ-!^=SV믃yF9v=m~k-mULz%r[b9 (om)odsZ5ÖzgWz+m%1co9rd'ޮ ξt.&N. ֻh`j01^&.|VZ9MvuuR,]uթ~Ϟj&H9F3<)3>ٚ -|;*W,Xf)s*kr'}Lؕm)JϞj&H9 (p{K~$9a뺊{Dֳ'QyGvOI}nS\ǖ$ִ62,\flsb$'$q htA;n&uNkmաˠ+"#N!^5m^6Ԭ3Z[55Ϝf"gπz+*$-m1ޯ]rhkJ-*vzԶlaz68/KAVh>'\0V)rY{\{,jmۧ?M~żz4]׽+{ƛY1LoiiVVƕ?޷z{lWZ'OZ$=S|smvo|^~2diJOz0HI)3+uYc.iEcץݺXyJfb%.RҜl^|1?7w-SnݳYqjMF9W. n'5消՘yL >05=Z2 bp6Ϯ& ә)o?wܧW; mZz>di_AsO@_?˩Jݾ߇)6MKkO]i^{~ 6;{i_} J#KT=O{@YWn6f+sT|Dgu+W"5vK-N[9:}U;i_ݶ.WV+O]+Zc(jv[JZ|?'e)Jᓍ':XzJ1l#dVE"n:W%־17f14?gO~|1t zi7c-*~q\x7(y)H _t0{.Q؜<"sԮM sn/BzY3rʷ!⮺Rp-Y9Gf|>,ɲChnZHZGُEo*c>ăz^oܝmw4M~֩mDUJ7Q5k%lDJR]N{|=LXبMFEkŪTE&LVҲ4h",Nme)m֔}׳elo>dt{~3̿AG}%h6=6>Nڽf^-<߶lFVvRnwv{b1(V5~FpS=;{v S)Oz~g{>S~m.=u}FT;io.ޯ/RM2J꯫vzvV6n@cY$C) .cedNS"WR.}R,zMzzwz)g#{We~׿O{=oJdrc[RbԽ-[RMm[Vf-Y@yܧ3/ME޸VnYJw!򋬷Tm%mHKZI^f3 QG_2A5x lIv[e7\+e骝'} yI*f~,ԺwdZKԪQODe_b,i}8N=>ēa3ź蘊f''?[7N:5u;<{LZo3q~Ϗb+ǭ8Md{,ǦE1s ltJUꊗ5qm |7n̔LLsOL{&>/˃%œlV2bKcɎ-K115DL΍|2%Iٓ>xoMg.jw&Uu{Q$ﺝqEw\cpG`\fG&T"Z]u{Vk->^6 }u#D{= :?:YMC=bՍF8:JSvSюDLbŒNO/~EdHђ.!0F"̗mj.ح<)Yb-,c\5bZwRb°ؔ`%mOxiNR;.dr6mkJ6={[;-{KiuR)3qҭhy;/J,њ_oR)_~U>N_ZX Rޥ=ϗO_K?mϻr]{5m|t5zZm}kUcG~-k[Mm7^w*{'s lv+J&;,B5K]Z[ڰZVRҞsO G1xᦋs?ˋedž|;~}ܫ!^Ifj6 WE5^2b6ip's&V_k/%u-m.kNo{, ]ux[LuFR귮/)e{\wSJe=vSjݼ?Vkm 緕fcL!ނ#lr1뷬LcE&4:is4͗5ffb5kٙuG4]>K;qiqc1bi^}G3>s̽LT=k[>^~jCCw>Sߗ"*^={Mݥ[J{oxc~ 1kKiokV񘲥ꧯ2fwiOW_ܧh iOW?u)Nv_otﳽ}{PF}]}ݧguoghT{17t=_iUFR?{hzWk!)w{}[}gS_j6ۻ~֟ 9߭+z-(zӷ=O{ {L?JֿYm}oܧ=ߏ׷}T}o硾nǩoSC=O.~`48}_Y>^|/_mS{|_RYOt[;>짹z4;>kv~ ̚RϬo꩐;;-Oߧ= mgӳN.fƖ߭)onʖ}o޺W=HR?}@۷)OWv־)J~ڧ >s~~~O{~SzRz^+U+v~vȫm+~w%WP1%#ߵ{e=^ tzv{SҴv_@.}tNߗsE>ݴS}3O%}RKOm+)<㭧g}>s$joj~)Nߟ1[}^t ;=_-GS}%=_~}DZ*Sܧ)m)3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb +di_gSdd|iGze}eCdd|iG}3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb \<׺رmm=|ڂw]e؝..颕.(w`XWhZC UD_YR~nJuE>')_t``O9OcܖYʼnb6mI4N)[AF1ZXV-Cc#:M{ԼVRozJu-ۓU%-DԶ{ ֔kZR־)4SieY$yVތ=*%i~{mRDlQ;oiMw&x/~'{nHJ ?n'%]J^ An!1jHUZ4ZSQkKJ3mϊUu<2mGǭeo}+ZVײTPoE+NRPN3]]+Tp\cgNXPB&yZzwYzI}x`nwԋITbYųmenm)[m->SZS)N#w "oDl^nպ ~IYbWEW*[N˖Q&6N^(kDu]d?ck5OGW C5T#=[X_r;T۫uVPw"pāx"h̦)Kouխ$׶V[wk^9O;kV93ym^V \)dثo֕Mwnשּׂ3.qr)'[(#uvћe\V_U{kv!!ilVjJu .PRi^nI ^˭Su;/hЎ'\fVk,] KYZVQ}owUtV>RIo[ҾgoNQqt#Fn&q'.DPBVj6%cmjPMʼnm7h:N@oq}nUSR)eom*}nk7Ym+"FQCD-ERDl9^mm;,j_Qtä{7OãɸvvMUZ('z+}imE/[e_U)J7l%z0)t)^w[T㓾[uhlR+Jhtvaql%0"Y\I/붾z[wEݨ5+K/+3ub Ee_$VTkm͚u,U%N?Nfxx7IZOnQ5o_]쾊$^-KaRn/*򶸒^RmnރDۡuim'uGed'C2e7wʯoJ.|D[u;+[kj{;ޓk/ †17#H37 ?wwP/I G$TOf7mmp#Zl$rEPV߲wPR?5RItEtYl5RVTIK.e(캕.V{+Je9 σ7ޫ-`RR̬ڵ-4\խ[J:Ur-zwYEtd7Z&W\mW+N~/?ĕN ԺƫKqܧ[_ڬ]=VX*Vӟ[HlMC/szE]QhR;)U,\)JʹhQ?$0#1,t1c7%Ub)_WcwhN"ҝSMËo?C_HK=M (cB&dMӥzJ^ؚĽ%S˓nMKMŶײ#3 jw߶Ȣ)ep;Cc @ǿǰлy! mtR=ŖYZ}֥m]^wku;lv + >}}MWTQ{nv[e"T$v[[Կ_)6d4_0vSp{{_m}Ҵ/MK+zK%u-Q+nrNSBU1}8KݯQ':8ImԢJv6{Ggw;?vrN-.U[}Ѱޫ}K]oN)F9v5Һަ`2),X4N7l,kZַUR(uWdt,׷tYK+KTNVMdTRr^oDžҪwPk[ /go%m}Vvk_'Nj\%G'j.`8t˶ʲ[hɢ&񔢷Tb5N-:ntfy-2.11.0/.github/images/screenshot-phone-notification.jpg000066400000000000000000007004321462047176100240500ustar00rootroot00000000000000JFIF(ICC_PROFILEmntrRGB XYZ acsp- desctrXYZdgXYZxbXYZrTRC(gTRC(bTRC(wtptcprtI؏NW&CSٝLg\t> 9suVWsx>Z{fg\bkYwL9^🏼E(q?xb+[jjf+[GVhź>l+ IU#V&*)(rT@NUsԟOF];ՎV(ugEOF#X&67\k)7^_6[iOP/h\ꊖ$&Ld񔣕F5@brW6 ꥷzޑ.ݛ9柜pZYD[U-@!OXqBzu-g$a.]K6Xi,HvzBOٸϠX?h9ՙ$]cTẼfd6]UΡKnM GMͱTGYInR7QA՚Iye[6AHE Ð1b^uI)^mckvFX}c͵"X<.߳}"śkIq7'="l w%6&y6y_lHyFU$F3ncW_c*Z ,sǹA8E?\Nܴ=:ؑ|l'piR**b W]g彆3[#&v+j2#,,-_6tա(jW(m;l EyW6 wb.okYlfe3x#RIuL2*R^t; R'լw9^o L2Sgr_d-KgOn\sèSTfv0r8y[ΫbIt)kB"ؤ*h<3ـ'Cةmukqsj J# EfY^4j740JC)6wkqi}K,f/t ]S4q0KRiJcw=D._-t/rg*(9^bj]X4Þw/'p $tQ*DW8gv Osw?_SG<_ף%?JGD֣}M{9!J+xX ut4nMv2/4{c@\^vUF#[9;Aiqܜ\Sޟ2iݹhsgV'`k ̺iTl쳖бѭ]9%拖<] 2鲬dtFTYݡhίylKb]ăat>wVyo.0A\&~ );kRqOsQ-Ε]8;>3$}j O׺_-j%+ŕǓxI/=>Kz⸶H~LV$i͝LJOh-WMmu7ftg aH: ӗL<}vf< /qJ8s[B 'MY(]LyQhXHK-*nLd-16^„InsU^bVU.܊GV|27n_ctV?nQ5w&4yQVYf_.'lkhyQBr5u,Yֺ1ycʮ`ZtUm,Ēf|3Y۔%T>wn˚uҧ'k֫ױuڭ>TĎY 5nPmP疚IB*E9TLJr)lc8xٲu!Lq[)K\v; ]o6 1yM߱AK3I'~&g6)/35rѪj61WDU{b;6HMM_^I'RwMNYenJY( W+ldL: MNʮfeN~^wV.03yno5ՇNlhi& ؋Lbi;̾;ohD{ʣIu'2|w? 2dF.[Iif&[pDUm &mk-N%M#\ZGD UF*n4n;4~qu-6)k}\'K21,-q%c]݅Cm3lY&hg7{#btw_48*uRz3ɷ6/B|V]6f&NCe!߳uVlma3Qk}Qnh*ooVߧ/[ToJZ1ioQ{%Y5\2Qh;h&lv&@[5vXHK¨caCXؤK7;_t(m"QG3Y:.O,c#Jj 嶉|dQ-nVѤɣьF liF32U,e‰&m21,/ _9v!˦,Tn$QH)wcһ7h N.>ߛ. xFl3!mv6P+%ᔆϵ)H$"z u=D^Զ^B)vnlZlĘHBVSc,ՙ]2~Rc{譵]л֑/6ޯ^wNa_J.\]|tLa"=|^%׭]+E+=HK .8]lN3FqZhw 4\.ѐl1Quvw16PA+`zZ7oy!ײQOPcs"ixy1ݷM̼%n^ &\Ѯ 뼻]='OoD,In=\,UgÛ@6ŕӬ3Qp~VnWѱ[edreTvLqcN]7+\ngPbc/YKܗ**=n{1[Gn|\?35RM\W'jUb" BIg%Ib}Je,B.sD&k~Sq~F=ʃ&E 7K718 R6|gns P+'SnbF~vUҳ eٝ~Z}9 9jw1.fC'JSU;;6wDݻM*.{dܶf= ;jv]))y${gҲNnE:Q[D;zRzYcK"Rn21R1h9fDUf)Ɍ"7xC#<0fr. 6]zchv Q* |^~ r/ucٔt.6Mڟ/iPc--jqn_BQg]d)[[T}f~61vms:6=ܺ TkEw}.r܎Ez2_vKܗ;\Zc:Kk@BϕND^S|$ٶEv{1ݨn pHi~drڏ9U SH^XgjXR4-/#)4ʾ7 ۼ iuU ۯr,eMvvɦ֥"AFW+D$4|$;[9iz gޣԃBh7IN%bUha[pSU9L>;S~ʹxʪrUYCs<$8s;܇nOh=haDՕ}]VxgI%$EQ4!sczϣ &רc˱AQ;+"Le#IF>C9nn0`[o$8KmŎ]6][9,UC_է.V3)_1{D˜6hpcEmuh%jڱmUSKd^)Oqivc$]1ERg!MW޸<ALϏT}:{-& ~_ZdUi)BD6N?k579`ATzdQ6qťͷ8OP>)}y*AB$[%FR]d zpRb=5'Ț>QI2d "2d625f"̓ #v4nD۵hպiٲ D!HRržUߠ:|uVn 3mHJʎK!IǙʋ/BzO D|+(g@7lNV>SJ׼8Kj]r_18P呝Z1j 4^ZGGU[[7w7:~Y %X=dJ2I1 xOZ8"4tErtEtT:J1'_d++v#ZnbwNċgWJU0,5\(U3X~MGpmO5lO,~ O,~7~P ?wr;}OSqAs>q^ǧ|65Z"uT| |㻣Qʔ&pG(CJ&U"(c(S>9.~ {ӫ1VV1&\4cc2H16R!Kc.1cGg/d-dUK1dkJH>aq16br9hQ!;Nԩ1T13Ƴuکxmnr&Z>z1SԎ\81lRq83'k|{}Ob?1}?]~?(wsc;޻}q3P{9`L?\3>?W4s1GXc>{ӽX}?.?{s`}}}OSsCWm<2\Ϝ~8cy?ZTvZ) .quDv*14Dž%&FqrsYMN hKs Էy4[9gR؛fQ ޯ966Ư ݛsC&pd#D?e+&ѼlkG0x4zUlMv[+r(C٧+[ sBS+\"AE.bRx.YZFE)Mu`qf8fqen3h G-?飳aeJhI$Y'^U%ܜۮ[ܐ ܐ.stQkbrBeC7|SqdZUL1.3c9z)Υv͖VngRHxgE P*Pe3;43;434{ 7{ 7 ^=0xM.w&cu$וgEY\ǢsvS*9p\/m6Ւhӫ ZwX6KRZ1o`{Mّ璇i̮)HR!!`G*}s,c y12]/?f R:jEzJ5cf] |=ʨ*tٞgv 1gێkpm6srM^׹o/+a-ˇo "rC3rŔhXY)TU~E'1_ߎS|3뽡 n:&.[k![ʻN˖+.fٹo1+WnmJdp7s>1^SsFY??yh7|@}OU-=_ɷr;O̓ǟG'/P ?#/Te13|T{?xg;/>l#ΰѝS-'X6=>wu%rGPmcObb$4BV%W^=G)u} gxVa0 C8>mzyswLw܆<$~-2n29cnNοN5;VZT%ȍ1VhQ{(ǷtLM\@uAOUe"_]ls壗p50df0DQڋ_@n4:Ėn{ 5 ?'l>G<ٯvh5bmU]6= g:ooi'ڏeW5]^i[P%6UB_ud֣&# MԴ#+9Q[RRT7fw}9uz{k$ZWu`˴;LdN;G6*^ܔu:ffV'mY=buj?b-3:zyj9)%rѬMdޤX U+S̋ifԌ:mjSrB9s+.ӺNR2_c_N8h*>pd\+] z\cC6e#lEY1!ӳF̢kbbRbWNW*j^n=LιOԚY5 [rvmKQR-)$#/+sNk+/?_I7Z2JueYWH'W4VUrIh\#]ϿjE^IsG3 R49 AMvϜ`5cn_VHmK[9y=$ljI\5ƦFJ;a3d=.Z9'2v(t=HwFۄ{_Ё5bhe!4Kti i!hX caL8Y@,!5oqoyZޞַ=,rlzƷ1y*DXLA"E \$71)ːܕְokU +2X(y9톸8Q" hQMQ"f Z*mEKm."WiEp5ӰWH*QJE_\D|أ#\޶}VQ˖ghqSwzqyfXk D%3'#rƻ>rEΒ,ck fjke)p}SV^%y`n\8|WE ͮkwYYyy{r+|]ϫOJɫC@i1;" L N=Gz -yܚWmpi ȫ ]HD,UFe >qCf9G>rW#tc-Geٿ7ҳ![:Tm%/FBf Qa._E5*Ǐ[c|1V>V̝޻TD-K$Jvi "I0 iJE&{cw(I#WkܫZ[lQzfX[ z~ =2 :Q`WY" cך/uaʗ3!+rϜgn2nH2(;]UT>yJn󚗚 crٴ5ݿnqa. ˇ:O׫6)6IdUۧ:]ӬFzХzqmnOk54numT¢[.Ս~F]L6Sba$ 5#v.]3ς2{֚܌ڳ^<{pReqXhĴ~WhkJ:VdbY&Uvn߶<r0}y_VAz_s2N,8HVzs&(9|ӵP8]UNct=l}}Gh])mIrz:j'QVm ƫ- EBg ^q[FM29HTOu Ni@&EZ奪?%X7֏NCYfB17:nY:37KmMs )M:%pNsי3}%:/6\R0猙"(;:np)ӜȦ3pa+>vW˟nic?8?Կ^}K6}YngKue2h©TH4#:OoMu)&bOceӐJ(UuHYTJ\uZ٭3 (C&HպK>a-.*o$>\[㛹z].gUyٱ~GQ$4D!¹\N5B'dN4bv6 $7,U4$7xEm$ѓ-9}VG_p%hWmm'umj ƞˢ*+puNjcSW=U6*,hoa n׌|k@.,t.KFp`߽-VpBՊI3CݷO 9C]!ʟi[/%$kTIVtX7<2̹%d\2nYb~푐< 1뾒-5şc:O=itr R ; ltQ)]ȢʇnCc 8 uO,9[/ّĽ'`@qՉc(EE]YYͷ|牦0gM^pKenM.כuGm݋Oӷv,Vݵ(Wq!{o3)jSo!lo`XN%sݣ_s1scZzh]W 5>!uvYiR]q,vg*,sCWT^EreR:^;-sqjl[KG^Cjv1:{lCK&%l㦶=|AԢd'ѵz]:Y<;Smٲx6SOQC; &@ʓ[{ȬfW%Ɇ2*xRce3vps 1]uWKkdXӐSo6"5kDneǽDMTttxw698mMim{"nɩZjp!avY4jo?tLK8[g}!Yz OS~6Whh=i\ګsr1kTbD̥ƮQfѡ^GQ&yzN$KZeBM޷k@-楼Mֶ?a킩$cX(x{3 RpZ{"DWJ hFvɼe!K<%J88۶3pH0u[=*:lqpYnۋV8DoՔnԆɓiZg LgiѲlME*~/6#perƷu >ٛmmMyӗR-Wjو=VUxy+J=V/qk`g (0rT#|9?s1*ŔFՅ >Ѱ,lۖ$KwSY;tu|dL3E4;lD[K7(һgxYZ+vOk%־I_,cdP}m4K2B[6l\avB6AF;|Nw>SɤcB11{[cMVHwȕ$/ >7? w"&o b73Pq8>vDv0J6-6q$4H2c|'x׽6&+GVga]"BGۃ\ fvx)f`"d#{{orz]ls*_칓"V4IbUL|۴f@><=]GuO׮4WD)t2x}Q7\(S5ZˤiNK&m']1ee []*ܕOKte7S.SʍMs \A/n<>~>'n>폧p_(~1z}k~(Gp_5d~qV:)ʱ\: i[cKZCq'e7쉔AI.ֵi_r'nfމwahf7"DdhL[+hňnwE4fm^9rGC@G}CE#IzQ8'dzk5>q40fK+Z0 {7tCEd{N$ˌdW5̩8qds7@2L|G(e/SrS >FV~]J`>5aWuKdT{K=b''^T*ZO V _/u{iuLt˩ӲEl]$݂BUK16qk+%&w7ZNeWpE:u!TO7(؎߃|R=ɜG~|* Xr2jwsB*F%+ۿ7Z#N=kuN'YԚ۲,1ڇt8 Ng \zҎ&'LrjS n{WF<m?aVa1R*RZr546QSGJEJGQ`YFGMl_v^3tNIDLƷ '7SZ:ll;'Y]duD 5b9j[^F3UMԋ&v܊5{DNN;wu+ܣ1b<+d˴[sfu91^Ƅ?I=@C!&)l`1Mg0bpb383g:R[2(f]JZS em4U6MޙǴpNf_cת6釪Z-:^HRe:Ci'fƺy[EL5m T]vDIe]H>B'V{ΪծUitȍKnXdNPde&Z序+ #SYpY{'\^)sjS]l{;EN)zJJ"Z9YnH0r=IRٍyÍk.05lHu/.jdۑĕUS6H 2k YG2 gd>?U{[SjmA>ٔvz,z-j}֣a6YqfJ8Q dWI^]/dGm}ٍk>-ܜɱq1 Iu=*2 D wgm2֫6;igXFꑯ)+Jd( 6Rx;c$Y`5??RCKCU;&|!_Aޘ6,Fi K[{{lH/9D 듮hsŷ:LB]$Syse)͹U|e{3w>{~( HEuBLE7L8ڴ#_e:р 7JS`]1mV|1fvKIף\9 d+,8XNQ52 ee$ܴӍA85n ?VΝZ=,9ք;+TZRj36:ŕ~ yj~46Kxj C3H%|t6陻5 aōW8cXٚN51" E*a'L7lʅcmiضN 4(ĬtԵ洵UÝJDzj})!@A+vkpT1v3#I/UJGT#-˜Y67V\з vm,glVC*rS1HLxO{h9TkRv٬[5cQբSw X$쯡2sn64ӷ*޻kt05wRaSVBZC) chYiiݥs^K@p=?oΊ.7U\^F\8ٲWJGmPEgXUߴze>iXaHK+b2֒\v: M&V{z/=s8l1jл>;7k^udŦ6aT׎q)YY_jE e`Ru܂J3l _c?v è궾*lܚ ﱢlCacmǣIflEOl}%HR* N2lB"3sP 6gp"7e{+Zڻ!lI5˽2ʸaK9]EHŃd9MKcMKVmcY+6QQS2H6no&P[50;ʽ1܅F a7Vƹ8VVj٭,hǻ5eM'h\{mGDFiILwYXݝXĩG_p%hzqũHgrV|:L2!&jY"+lZnU!$ܶdQL侥@^d 5AV-7xߙUDj3Gʰw/%۽b+"'L/i9ZdVe䦥їK1+fd"^FjFƤdzH1.Ed y˫u2ښuC'_Z[SڤbcYrqMu$f v f7Tjt;~TnYYr[]%Wif`IF'-Lyk]#Ӆ*3jOdhʛQPmMwRIՆ?3٨`F)$&9`)cg8$zpm3W.;qs\ا/)7ưrs>:ZlW1u:j5\ۿ,$G\(IK4k붭׼SqZ˫ù mMEIl54V*.#~eJعm:,|{'Br>3GUw-\̫QiMHN׫*ò__?`ki|.+hw*(@.]sTt&sn>4hK&Ak-_U3Iø 妬L9J=/lU"K z{uznF[:y 6ȵ2Y;5n䎦H\Kݪb.Cmg| NyNKEEDH:j#S!tKp樗= N };!q`AjnE-i#+:ujbN)nMAXg Qr ͺ&"SeBMtp ƋvΠ?^~[/0+0ouv38 %o1&<}u^|2܍TH|m]w2?xyhk#I!ԇpZ }yQ; d,\-p5!_zus|0ⴢr^?;e&'6sqLF]2Ѳ#d*)prleQ͑Ay|Q)'dd]8}! ޾zctQw.8pYeu9c!TU^'cYl(O8|es16ܲ<|r<ˌ;:ʝ~ݏLZskgq~ /6ji]Wo\ Ok,=*1 i|܊II Z->zZs=z#뻷mZk9OGγlhBCHUK>a$I5;133i|||7<;^|ӽX =??[ooGr{}\̓{;sC~(df<s8qgp_7 ͞y>ŜWOlzWK-Ղ[t7.jسЭQIXN4;lыyIjō&4bČl$ k(xL2,ccnɢFYU2mLQCd6sa$d§)HupBC6HCRKɍc{`38|~ dq`; "~dSS{!0ouR.1SEcE79l&1Lls~.7tL&\E"P3>DO; CFpl5lݶaSGKvv糷#(놻 MZuj/X5dUtL(S:! |.1BCO@4UCO@4UCO@4UU4Jn56dUbyz]3%Β3ne@ʹECC2gm9vV~婵utAy==, MVJV)n0 c$'_ O檉^ewQ5КY9ITm5Q3`騚r1\61g2.;M:]upbdM$jH=cUlyFL\aӜ.ѳWW)T@BQmhywmUHF8ĭȣUI}6sEXPvvQS,Y%F<H_7`1یfsčk,~ c\}f~s1u~v?oy|?;X?W_N9GM(lol{\wTN/qQi*ԝmeDVOޓǃ'Xuc*.Y:r}$Rp^~[>\5^04-a~4Tbw;#%n 0NvwgWɽ'pw=Y/-\urRfv89&=?KϘ-ڎfNsכS/X{zk-ͩ̓Kx;ܤy[dž4`g7dѹ2NIdqe1Hq){svŔkJ !e}t(ڠ*K`鿰 rg;3gim7ƓٛS-W;\Rݿs0)q4iN! ] >l_b_xZno<{hO{zl[ׂ `~[rd˒<-}]>/0ϏcsmjcdTIJF#Ī%lL^{\Wg{;{c:׭d way;5iZg`fv+_z˴o#y)iik83gb&}8L^ Y9H$[ >F=/Xf27mwM"r*(tL:g1M-*յ-j^ihڶZMmYڷoKEhV՘m[Gf 93Sеf3Z{0VM=^溗z{y_{'8<731[[L&Wӎ5fq<9h^=!maO>"rl_:ͭ1ZVm洤Zֈ!:mJϡ@հy9io$y]<=Ǒ*&4bPɖ!6)pݻ&M"$2iV󜜭ji\dC!% \b:?{x0/jC7wmh]763O;\fÊ՘F/m9t)~+g=Yy 4Lz ķղKUD.;TTK9*v%B T͏6Jr NL? gGEpʎ8.sQ\0,>s8;q7i59o1oyi18>#Q^cq~Tqc(5j9f1g)͌vv>l 浾4uTЧn]Sl]\#Zؕ U6sٌ&\ã9ϛ.3u+]kC0lxe;k [1؉RU6?x9l>͓Kj?]q B<\rR1|^mV]?#J"n/(';^6y\dfښj1"Y:?{Ә3nt/Dkt;ͱhrYq?&}9gSD}^w6-N9jY m17t1b)~k_7ɗb|m`>= b9 ͱӤqkt?zk Wk߿A$r3q G\Mr{|/P< [g+C{Zs6@RmdǛ.{ NO׌?dXe]g?&{{볷c9W>og]3D(rTqM`qM#\"ʂΜP21͟6LlM~@^R?bZ?ao?#8qg3? >ȸp {{RP{~y^ѥIqGi͜)NϴxǟrS>8cHw$)ÌrlD"k0^U; /gʈ+5$E'qO(`O'.\tIgཝ?It_Vu1:z6-+mKRc.\H*{3uW7p\f)#Lɓ0k㙜{7ǭ6OZa#cF xvM*8tt6A6dz6x&<[W͠ug/ByrL}Ulsj|]9eMy̓Ok#IO񦴩бFWO9ˆ R6.q6plc?csuJW'8&ѭ,cg.meP6{qٌ=?c W's>9i|2^#~3}rox:5|>}_}OH+-r%r\a vyɱ{Mg%?>1qX(U禫r)(E 862۹K81Jldόg>3CUӯ62XVG)%c͝e^P{. v7W)z9G]H׏xͮؼGaurʖ]33c۳3cսt-r Ϗ{[c_Ŋ>v6L>`!Cn8Vn SnI23Y 8bXBɋ4q %|N2EccܢnS*͝v7t'".ITSslsaݯ#뾘{k$v/\s|o)|o#k-MbUWp/t}<7H1=+dSخ#k_<(%f&q,R8*E%} x.߄.>3`Q-TJ7'Ģ«gԉ+| .^e]7O8pɓ6q sW)7qO1ြ~3ߩhv9 ԖI_5Ȳ{3>3/ DfMqޞ+ngU\gosg*6%$ŕ1T961$9ZIVd3`9M 8 ~Ȏ{3?WS/hDy}QyzE5|Ez6- Mr14mMOr^Y'oc9s1l1nrl9s9{sߗc~u|6a"{l}+N)?ȨvVd6O3"rqzٖԓ˺M!)yK +f"e;Gh*2U|2)ƹ'~S.#mHd)2+V*''6;cdS&^?o"f~]3 =].^wϏs+M[[\&k>=UVbg.<_'\v/`9-\׌6vq. :dj _Jqla^oqsycgζd[՜zZߗ˳|9>v=Il|v ڙ2S0+pLܚOc؋V=z1_>rgtzL]d*F3rLEg9yYA\+D vGNDΡ~*SM,0;8{;G 6y-\;[x/Ջc[b0D'Ţ--19NK83\{uvSr`jexǚc=lg-})~/莸̓_ai_[07[aS5-. 5dϭ dplש6dFkC`㺯kophD$|2_ݫ e;Ţ_ LWPH~u\1;=hnW Qe:߬Dd芵S !hɃh'nY;=$b~~eҏ$$*.ӅsaL*H"DA4I4~^V`p{uvc_${g4ϫkf|{;_S. a˰?iOistGCqVy>JDZ3b[5 վϳ5܃ kZ$g|V`WUx  2G2dGG1OpVZ(EɓU>)Ab(!2'hi^TW#Xe#X,mR" jwgo(بVf\炣)s}>p7⺯>S_JO>sh>"vt%[<^Kf?ыf6p}Y%{Kr=%_ fhς' _N#^M{fP\L,+|M ꯥ*0[a82N0-ogzLB,YHJӥTxh\9`GNLuWN\'kb'lkg.<|^rs+=9я$ڿM ;c.LS!b1M61g~< npk?WcKOX&2.9{rBTLҫt۠ff" qpQ&eMȨƪ|S&4Ag.WPMR:6 \iwԫݗW74j+;TerVNl:DڛLO=f {VJӤK2׃ϾϽ>u\zEDݯO; $|yyPVL]]&&;c%"ޛV"kSsm޶O0fxG=Qjs1npܾ74;}Uώ}Xszb8lS<زRfA2rQr[2ZwÙwIWd0[E2o)aE`dYlt\wGh\FJ/E=x=:MrDbY#B#0deH5UL#P{1psfɹn޷^+Z[,K\tË-oL{82Vsy߉嫯u\)jڔc1V2^қ^Yrco_6;Vˀ()[cSҨdTҨ>3g2gsvI#rX2>|J|yf{ETXUSE9c9c͏0c'Θ+qBgl}c.q8 gEKts1yΎs1>sdKsZIUPs&fr81M8?w;q6@^e+KLy~ ,L}ns9q!ybvS7%IDW ~ҝqyڶN嶱NZe0=XfdV à[ju܂ltT^x>UPg"&p=W>[DVŽL<[^\/6z e+-t;j 9545Tw3$s%v7*Җ |wxUB]^NM8x\9b* muLR;M]*|#‘B9|誑[67c3vy.ou.SxɦnF36jֽ4"wk;u\{Xӎ5l󜇫mI1je6qyحm~o #vpI%VyUCO9F#x vwæ\29][<>x7Cx+Sjkq:[OKS0kk`_,8q+*!Cwۼ!wwsb>[fϛ%7ɗ-{~v>]:bNWfh7tu [8DUTU9TIB1L\g9w[lM}ͪV ~>!Ihj2]JBY"(3YO8nsVKkC=C\N{Cƭr\Dc,f[$Q|2~T)ó:o)z%k:S=).ypG<3Uigy{5[?l;ͱSf: 1|C'2kzD{  f>k'3$8LV13>{{꩜c ɻk++2d7b ٞ̕>Տ.pNy1|\;|arEvMlTI<?2n@9> ]5zN9nrd 3%1PCg>+s.n1J!ڡ1v)+dUDMdܨʡ \8vg;q6EdbO&O!b$Y@(.?iMe*)?yS VQ$  g\Fµ1RaswyK8||)q'.|zںf"rfϗ:DDu9 N/CwM];Sgwg$ǯ9LDSwynUi!?dcw'PHk\dDΆYڬh\e2eZV߯]vl;֫Z`T\LY&SL܊)VEX*I_dUs|E}|G|_x{bry;[S^f8-q.u3՛Mlhkpz׽x*V&i\ӱjxm퍬=0,#@y}N:\K13զS|Of"4:IB5+̪llnjj[v5lMmx2Z4җbֶWfcSkf3[[[cbا>Űaɖ0aV4㭣(YM"֬L;.K_YwVyU[E}od2Ysb>«M,IzHۺ˩Tm2hzߣx.;ѽI]ˣ}E5oj1nx;X1dOG^ x][ow+3\rn`]]31ud31J.k"k"dU%R9TIT.LL C9)3؊#1 Jrfq3tȺK?@0nܔo62S|]yIJЫn~ wcrc;1͟+.{c}ܦ<\}>,c|ECM/o_ޱ~PzFzF5<۽y}>cy|WdzH|gwce|w2%tshڧHԬƭ|c=[dɋ(na%qRػ-b<Tg,63BJOKX\{\GB~e6hg9cҞϽ]A|H˱lj|^F=/Rwl}~g[30bᵱ_/[ؘx{G 2vpг)VUɹW)2dJNEQjŃ4t¦& CRurޒU)ti׼ަ:yG5H&lK*8LB*Ed?}^bDF {t{q]?ugxoc3{YmsͳW9{)=d7pz߶~T\y+NCf&bh˱qb|nͅoEJ#%ǰ4>0~5o2q&H>{WҽHWzTk{ rZR&/jƯq&b㳸p_>s4 1 =qu~{N֤Ϙc/5oklrWϪq[M>et,y:[SoVTd)=>6 |kBEd+5?̃ dL<aV),YiSJc0Kv-Iqv8t$:5Mئtb&M4UVmECa"&⣄l~55|~3.[Zⶳm[. 953W|x1xS\Os44 a:ya{lXkL<">>ǽI{S׼I÷{sV|[#H43Vca<ڱ[SFl/OZ[rɯ5{UܮVqT2;b̊S+7`t>S+o>7Kk6\۹qj`|4cof5˛$+6Ch ;MlYeç&jaMS-xlo\xůyVXmcnOt[=iNjȼ͑ +oSGj#gjTHx*7.Ǥ|ޣsҫ1$Wdꑧ@9NtaB ,Gr\ӓu~\sWd`gjgrNa%p:h]\dL1sیp,oҧvzg'#[]O28-+qM{ƶqN]-ckZ{GnNt.?ݱ9}-xvxcO#ExZ2ғ^1Ԍ{zzR9}kq9i.NVcDɈ1Lhyܝ$t6 <nV^^7#E&-T#$vq&1g+Dfb|!'q*9r2>3bǛ#|o[%F9>& Cwe9+jl[kqK,+"ܧgy %یB83g@a?LO\e˷tiÃ_N_[|6rl׼yN'/om΁ y&1rI'r͗pS_g6mW'z3pru7qAMD/)YqeV-DU>+ݶ1}8Á)AW!{x]̜/tw?qbSwWϛ_cddoX-_1_v/ j9>twΦY^qڗkVK'h<=4cOcV'^9mv-E I&u.;0%3($9!WߟiV-kk i<*yLIc5Ȗp͖ʘ\ɏBno_w|CmΏRQ|~9xCH4G4};'ton~,o}qnt/X':P=ܧ)ooh͇';ŵǣ\9yLϝXtSk}O}:cտˋ-<Þ6=Wˋ'0i(0\GJFH g4Tȹj麸*,1CcqqhNNNճlfq1Q-slNY#\VE<)$șUL(^n].qGzMNk鎶ϭ]klڙ|?n+յfя=3cj:o9+sNޭn_1lSkW/m[DMl2?72z'a?uᓪS[m 3W.i]Ɋ]&f&eJ̑.Lqj\-MJ J3)]«tKƐٌg*_9qقJ`w'qF -q++#u=84wV|GO;]L]ڞ2NmΛŽٹ:o6|3m1"$ iju3F>y|aLLhr-l~*`*MEa!>q8! ={1|Bof56|,$AP+řB5"9rљ.1rL/fa̓]I;A&Y˕E\56|*~lgX9 lL[TT$Οije 8"s+ZZH:N}4Jμj:&3ܕ-&A Ҏ+yW1].cUJr_i_c=$qU|*'Sf{;{s*LSҙ6Fm^庯.;Gn~>|N1Rm}I{#Ԕ8:gwul~C={Gr~>~O[}kmo_ӏ:Vb'&lZusǃ;Zϵӽ;ug5Oq>cخ|&Ky^almL80^kF-nMePuʾO<,VLg!cޣST2x&2|r%Ӥ79v{rRlOZOZm|\{ &t)4k%lzN2..bvP%CpL&2JHe;R*9Ɉ#c6徳89sfȦOL?G-? ɞ)n,Ӫ{N'~r=_tڽGo}._IzҼ!1-M3ͫcfWӽ/nG^qs5Όɋ3lKQÏ<Λl}kTiɺb46/;2wU8E",ܓR.v-Cd# $; )!yTZծ"Tj҈EJ0Yf2QrlU)b&rItr2 9ɝyX9cCTJrŕ2٘w$HUnr5IN T\^\E\W]yٞzO6Se5=Ux>kj:ml|=0嵼{vzoKGMi.-N|OZtަI˿N|z״ef*kiˎjk6 艹\O^uޠ}6r $m5i*|$gY:$R7z\W-9/I-KXQᱜ Ej$cp5[8zXq8-pwK_cXû1'?%ӻվŧf|>?aΤvzs>I=3ԓV&|?ծ0>jryqKomgkqp Fj+B0AGIe ߋ|xTp E OY1L$ӨpPqɕi)gdn,g!:vßM=ɻ;{1G{ {ji]H"۪ю*'nJ&^S=dr_LgC&.{<(3gqc8> >|gk8ī>r"?Tɗ ?b#2̓ y1}L~i|>c|__Aߵ;KY`8]e޿e޾~T~|_khv|K7R!_7XCx?K3g=}avEL$`T4Csܤ}5~ wl7#,JZ:ؒ*%% ͜vaD[R9slazrf/"}v6 LM+^oOk61e+}ŗwL}s[<'g7`iÓKH^&Q䞮/dU>LGPJyY&!{Ɍ|(L*S&L`@ wzS뎜St1r\'7K{W,|6VlƮ?51c͎b{3ԜHs_Rp49~#kޞ?Ŗuxydɋ$M/0+;_emf!%(Ub<(˒=۔H݇Eb(lb2ڙYBO_JjP8 D)\3|d!Gn9Jr!˃ SJb Sc83qg|wcsy(˷{'1$5E9 9䵣:2fdz]ỽAMoFPV^38ֱ3뾖Dhg ;gÞaj4yo읳ŘS0,wpD<#6IOdM3`Dt_P x~}\5Gņnm1KOrlzqa{x5۫~::>'&Kya'6kS_[ gL+_1f0kWP$#d;D|~1S9LߠHܺўJAUM;Iɹ{,̥~AԴRroT?ztu32*s=qܐ.0\uc#}t7<%i1]ΠgSgrR*FcWS:yY͗&{o]aܽZ&ڼ'&8+85ql<݈NQ9LGg%]63 T'g|g&3ϏqEak/zʫٮ)QYQɐs)q9}u6v6&#_lߓqc;Ems˟g_36|X~62VG>{˻vq%sv{sٕY%QG=rR?_Î?\6J hS\`>Vp94aǒmW̵{FKKiٕMO[0ulȒ>0rM"Y×LI%:MR$lurT7Oqwv+fycÇ/%1Zҳ3>!5x lۛu45.}ŃtLr޴+6#摎Hw7m@"rj;4hzW[ ƾse_ڈ= nu~ ѭ=C<A&q'Vj95m#H~ej߈zntkID]kZƕMU?ptQsT_%JNz"&Qcdx;ӝFӷUs"]ڬ9ZȪx9V&z0jYnt]$rS&r8pᆭó=_TuGw>MwsjܟRjӦ :]ŞeG{9{[=A^zw:w=ҸoL~|{9vW=8+e |x+: {BRulg b(h;F e;0>"+ fymUxN2t%uԎ-ՂgXr:ݴ)+TO> ŔHZSb0MB0!T rnAnлF/I4NI^"H 태t2p\c6tY>P>STP./ٓ:'vϮ+':~_fчN^o|7#|͏mlsXɡ={AtY_/'8Y{GKM`ɏ}<֍kЦ:bl_sZ#c^g99ƅs ˱EEe>,cl`h7s_Vn6G,Lw4{ lvg)[.{R2S?͆{L}#/rأKe3}}W5-,GGswd]7|>g`툷ϠmeHڬx%dsuL?Buۏ9Pg4wuFf/$&T;j|=;sjwJũ>hC(R_՛ =F.r9~:`-[Ӌ,wG3Ostqc]K|'g쉯唀%?_:?j,wX=[[u5Z>"J6A $7ycP6S.g*c`>3~׷D5=}  *܈RȯhM_һ3ޟ辛؏ſ_elYp8:,yO՜l8rc c\,sg9ϟ9s#>)ySUBgJlCWڸErߐSlG0n!ӻ*"t<ٶM}ֲ.('öh&YX×8p]|U;pCq|im=C^kܪGTe67'͔"db˗popI>ӚKXEIWyS'{u3 Lٓ$D{LVO1:&9KjYa VS9/iJlT)rc Ϧo&m&i)m]eUۆUγe2eMuèŴƦ٩gn: lSs{&JQ*`,))2}ȶ.QI~'5IS&|w FS;j蝸axM!1-tPy);DDA&lrDJn{MlɖqnjTwsk?k#'T@iڮzoTrF uCD1=GZgz1M|cwAZ:ؒ*%% ͜vaD[R9slazrf// /[N[76MG*[) DSîY{emmsf/A9TC1fǤ+]4ܷf}V*Քͅ|`~MIR-ؓQjWJw}mhRqyr;pEYR||dIMei1y*\Z\Ɗ-#18AEHbt7nRPiMfҺ_sx{/:=5tQtSt%f[tkp<+jxprJ0ɏ%1=3g֏k{79'8>\tŹ:<nhjlsh}s|tKٯk⛟~1mN)Ys,gYYw68uW7yxnU2<=˶.tcQKql~tUq=6G`kf&dp|&8c1|Rl|e)!Um0^+ 6Dl+"Ŋa\()'6Vd%'$ތl/x̐;ɤ針{%0EG8GpK7oozcwGWC_+l{z0k_5=7x~;|\t 6 Ӷ.OkKKgKg:;Kmҷ6ij\ xH-bdʴvJA0n|tXb&|㧻L~Jגbr_XXǛLDDGh7&)_Tk31X33{kڬ|rU:nc9.peHyqprc8=;| }`d7?hw% Y@8a޾~e~>J>#~`v|Ko1P% y}_&= }=Xfh]ăl奚?d^"6kQ\;Y<66{JpFלnՓ@cSbgR}XI2Rjv(aK):<⿹' qWsFeδ3@q83gqg8<3>3_t]\.MR? kW*$RASwn')H1~*g:a;굢Jj u&вNH3TpێҜ!d&L:g1s wӳ<{whǫt7nbsDz拾5h֛Wӱ_.)WEGxލ>\<|lL)?lLLجEX2ǓSbAblj,;Z&$657ɊcU{qT**3}w?jڶƔZFezuD!1{:1JDɓaELS\圅q鶥8J~BFF3lsu$x"+ʿ{OUٜܨ!1F^wy>~+.r-g&}./X#ϱiԦ#8pxÇ8t_$ڼw M;8ym G/NnOÃ6|1|Q{hc˗vRhpwt+mnrq*ݾƕ9 ݖlꉝcώR:362EW~'H:hmə&"*$~U^2i:5(2;cd\3O0v]o6xW[ ~wߐcO5iiL= mΉrj:)>8pWSnJlƵ4kiHkCe@[`n8Ͷ\jfL_.`1ZܝI;.sa,lY(0{W]^>_:c!T9XE8]r7YpLEI*ȡ r=tp+/l}7ԼG+m mV5gFv0|>?|pzbgYғ5u\[+~0n{o8Q,+LNi&_HYvʌ :bNNt!CMm]m pWZl7{37 >71詧((jGldu漦RHtWzt!{1s2PF2Ncg:d+ogk13WvԱʭKUyɜ7PU]߆%d_0ou/BvS5onN^+dé`D4aNͧu[ךx^L\ls9Q~Z|`6 o(m]G56RNuq yQ]*frLwXgL89Kyǽ}$VR1G3\\6X~TMD/n{8&[C;c(ɉTڸ۵UHRk]:=9&<)c )9C?tu m-IRŶ<9</>Ɵ#ƌfk,ۯ3npئwxRԯ1L[<~l8660z TPic<Ra`9gVZܓYxYxL ¨.Ãc9 ES1PL.wh2ubHMc),׈l"YI l: &4lK4̡X=ʈ!!4w~e4V9Z;g !_ ݓ):hgq83g))C*e%B } |'Tq'/O5u#k&2ڳ`\vm bo5ˏ4k/Ӽ#7=66kcM][O7m{d_Ǔ䪉-ТJTͲ*!Jb%1glόJɚBuNu9QC(sd9Ϝ91rl9s[ze6-jzu*d^!_;D&,MVɼoV]U۽톞Svg3˭{' 2ѲrW%햘bTNk[Yc88gcnc%|zlvk&hR%4t5m}Hu&ye`p90vEz+xRf+I4WrȊG9z{Z:;jih-}m|v͟6[˜b^k3?skkgÓckk>-ml7˛>|Ň:2diJִD|ۅtX+k &6gbsB+Dϟh\g[SY0z]Q5i>5tF2S9W"7]r9\M:S&9rssoW[{ֽg1zN]\y>TG99v8:,6Q­ڷn{A$rf \2+d19GBW޶z犑͛LUU>pR1) cG=>jlخ)OIs:Y#&)sis6;K|S|ԯTMΚILq1*馲*dV!ITUU5 j9)r!˜3D:Ov÷RӿThSLniLNo9KgϜg"E@:ґ\d&X# ^pˌ; w{SJl3f]'GnܠSI3.0[%ʉLc9Hl`;d}VT3ݹ<ɤD Oݛ QWYb=;qSq1xHǛ6;;{@wVd Vc4.ArI2NS/a{M5(Mc[=F%bg8#r`m #W&[}`mVv(egK,Px˅N!a3vhCѝ!{9|V)iSZ_gϏ56ޞ֞*وHA"q.1J~भH1>JzJ{c=TtR~T3Z=1VvckcLfR"LC\l޼2v&xLr@^ȍۂw3yNw$E'QL|'ަ*asے@ʭTAn1K6z]AwkOK50]=bb=74{cW4_{k5lޜ5. K`M΢sƒ_N^UéRʉ9htA0Ъ:$wP+*r?EۮZMIF21.Fm2wH`>Gxv2u9?C֯ҴWPBO t3Gr4JE `] e)r\@iԩOdjEu̫u2vX`fDErL"S9qׂP=;w~7wzs:gLs_,8JsrDɎs⯹Kj~}u}ޞ/SSޠѶq[!sTϛ&jF!L~Ӿ<<{3fəE2k+|C7>qLɇR.{.3۔O@/ӜOp\~Z;KpjkaW,X򈏍i&KZn[-cNGc&I˱ޫ{~ֱ"kJְgwLb' +iS kf.<.!c0Sc$Uw"|dot5)&fX:gV>z~LԣnSxV)rvTDUZYO8,ެv-[G׆7䥿]}:C7Nv)ǵ\7/_NH5鋋h,oa^^?ـ!>1ۖꤿFW&/^#AO9L\9on>q8ȳ+v*Q8s}v?3"_u\gJ7#S@NzFzFo}xQ9_K<6?g`$a ߃A>j(馲+&tERDIB&gHj9)ld.rSc8p4S?ǼH䵦D5W7RZ(S9aRT'j6Ɍ1CJ/Y{k:6JF7Y5]Rv֛CW52%$TD2g/P{+|y+]W 1XkqqR&/leZnr5Ë&=AnqxnzrfkIۛcyrZb)9kM)ɏf@*ۭ.: BpK;AJ#^GH>HG2dEB v|T]vA}}|zjaű5ҹp.\㵩iİǟm\p˓ƾ|wśl7ypxŒLwoKkh3\-sm(g㫐, 3\wkas$7(l댕oѵ6 uj"jxR8D+9 ٸ=~.mS.+fվ[e; [oZ~]=Llq=7 9hbW~6,8W-l ^8W^\Gqn6/ f+Dlb jVDI.K^|S$a9q<^۳?qk~'7NAG3xN¸h1`ਿ~b$[5z]͍ċ7T沴&FGv֠+7<1#DPFJ&l;z2>=~ݭ:&=m/t ɹմiׯO]1b;/ٻZ7;Qnn)?ResfjsS59;nal~J1(I/Dl&iB&֓:dJfMXʯsujۂ$ʶIiY\#^;YѼ[uF`xy<ck]+C=NUU9W|~wUtOkmOOLE|DQ^x㒜n^Ps's,MFWo$ŬS4peJ6l^&|XVnggӽo^)t%;ŷ"طx}˱dL[-ֽ#uJs#Rmstޱ[,rn~/tvכyg_1>j&OwN֭p}!u6ɋl8QèiZUGՕDG;r4 # c蛶o /[^-Y7W{1gngb__w5s˓={n.ל;fy3VnCO$ʹ-+#na+x3Wب](l?з'ܸEAT1%Lv;$mo孶؊ۖwF1v)b;>1/EYUy[lOcJ& S$ṅrxQ*R'Q$޳Xkj~ _@NGe_!f̝]E,Mݮȹt6ߝ^ߪR)6Jggό{CZΞ={yq6ϒ-vgcrKW[fm5&+&6yi毊']L4Oqv ̨8Z&TRd7gnH|y|}6>gggAF*TH!˞g.~s͑z%eˤ2g Y2β%&6?c1ٌvclc1WHG?a)өJ_OBOl6p;@U$IDM5Y3*$J$Q5>2EPNCc%1ssLLOLL|'&"bbcOb~SdO?ǼH䵦D5W7RZ(S9aRT'j6Ɍ1CJ/Yk:6JF7Y5]Rv֛CW52%$TD2g/o4{nX7 ¥,(yy""ɓY .sEPzu._~5;^7ܤHjjI$}'XԸ͏JӒ??-\zb91٭uh辨s?c%6b|rΞ 6Ɨ%ݹ վCց[m]蒄LKYPrюɉ gfKo7n0lJrr\sb (^Oۏ9zO?͏>KE1\հs!s2=.>i'ϟ7b~~7 r_o{hw/_8~ hy@N?o;.?> %7_;~?> %7_K3y_Pz"$C7;Aj̊ѯFU9 Xs qJsQ* rɉ_w\CZ#{M6ꋄdU)볲hvLP.9'rJhO:rd?.ZD&>Ҁ;[DCG ;X[(TP|dFV.T2kUCLroٗ>N{o)mrZfǒՎGϮl}8׽k_Ͻe O^hjuVB]`LVKH&1;hitݩ.{>+,W\z_{Zލ?nO{?SQ<^8>GqMpluJϦsiWխ3֞l[@S` g 9%4[-w"o!gʬ r-Vgh˶2fp(M͒?=<Kq{b&k/E<1ͲZ4UuSAYe"H DM2c'QE.2c8)q,69{ܩem3\w oq a7PtiOHI;?{Kq=xpY wx=b%!=qu7TH\&aZ5.ᙥtb[nzO>f6Ok6!k^-6O=;C>9gk٥_[Kg>G=}ūk[4-.;boál8/Zfͱc6~VOVU$62F$sam9 L8BV)c lLx>s_Gkx[w#pma1?1-.;_Z_Kys^ hr\W'SGoe/%'KkJ&;S%+hw#6υTnVp:sԯ)C9rTVs;EؾyCwniimT"٢.eS?j*m'АeT3xM$Yx;aE0m`kk2>/=KQQLFFF4ml#3DdͱnѣF馃f&("H! \r{|eGN{i=75cR"0 Lq-Lvky1;ԛko~jkcd3NrMm/P3*?G@6P vs)J9W&+2mldyi#2"B=RIIs% $Sd 5&ޅ63='>Rkoݵ{y7Y;btU  (u.¦\-VT+x TWȓI:zn5Wl:ĖTllq4I)d;iȹB0_9ɳ7~i^?Hs?m e~NNX[%k_nhLW1-Wf:[0uG r=>oމszٲ}Z[ݏ&2m;haeS . 9似+h\=x)T[M8F̙1Ǔ.\ŋ-.\1Jͯ%1ZRiֱ33-.JbK˒Ǐ:d+JRkLVLf""f]H^(qpb5kU foM%JYLD1f!4Arqcd:rۭCDvZ&S&3WDŽњ ,Ɩc*6V5S{?95#ZZU. SeTZg;TԤZBfezO/;wT),C۝!к9 ;&}{k{$՜33OC&M ;lyFꎱ绅ҝ)[c^3=g_q5ayceݮ=SjjMrs ou\vq9-#ǔJɥpBQH,a`˧Y00sR?;\3meyܳgok5Wɒզ:EqZbJb)\Gqz˶&<Õ.>ϓ?opRs1 \v1 a;ʏN^r\)ß͓|/ΎiJܝ‹ΪoRv&0_63}{ HzmUZ5⑈ʧ!kB}rU1Nt*7R!\91+.uGDqpT@U ]O~z9Vspܦp\¾]Si2b1 9 xs&';=]mx{f7m1~GVxұ5eZF [>$ꦂ (DE"EUUC`dN8)\d6pR902$+o܋\e*#$1ȶ]Yd.ɛ 14_6K|gm7[l m˸t(Ǚ) !단੿j2Drq5"ѯaw n]f56OP15:7śG}s8_TrdމܶM- ٬Nݧyuux>;=U`ˇCy_^{ǧeXmVv69{ܩk3^8&H>ݰ/+l&>IH8,a7}^UuvZxYN+szhq/kMbgvr;o-ݲKtLMk3\'#"Z&|y8/RokEM̂MLcG˟1s69zX{T˟8wD?;3;H9Ho?avdn{ \dɕaG9901 \c2S͌P:f1)r9rS?P1gg? ݫja&Ȩ7/g`8⡅VHYl&Eg #))|/tlg#*O%ZHT'g}>;2gBd.{dRK RJ\c116161I&dE4. B)qc9s9s!ԿC/;B^r}OK2|_PT)/_޾~vv}[> "^}~_hsC_y|_QH7l_k(JOaozڀ=󈼍UU*gVRÊ]G'6MᏥJ{`R!2fqf: r/s;9-3n+-8>l9-{[z&a}?.ޡḾs-kMLE,H\'[DK^M~uĂ^A\QNOs7*"=XO 1Ro%PTnM*3ۋ}Sc:,)R'x*cL6r'W ]~g893DG1hkogﱳrɝr=zK?$xo335rnja+:D~4@W*q+x2"Ml1QqHc|=˂>ncJ~E2r_e1ج#K{{=pm@v_mhK 78૚k? ߾)/qη}\zgLZz/1cҦHH-f>}$8GVg'ljXY%E Y4c*`],Mb䕋1lF3iڲ`ź-lpD[j܉4R!LJ\cN뮳:˪yަۤdy=Ez>[`>#\xqGHN5)ړҽ;tWl_ɾ\8k$92䟮 ~3.CG7tjzm%r&mQcf!sd؋i81LR5 гflT|)ɧkl$+Vo^d> ƝpDw0_^u jqtw [ wg/UV;ۯ-lYќ/xېDDVyn>5"Z}joS:3STeDbs]\c>l?˳+ܯxQ+NY^6p"{<16 ms1er'cg5ū"~U!=͖rcṽZL:(?(9}_?WwY_NCJF,rdq55O"Y7\}[z' donT ULLc:0 &-.)fb@Q]Qmxrju2Vk8:oWm-i>&|ս=ˏgS8s=I|Mft]:&&[Ϫsfk˒^3fe9k[Wml,tNj::V""bD@ZW֞c>m9C g(2EE# S>0lV 9vt0g\:r`\9Z1d&jypk˭ζz[}}T̓6;Njcˋ%m%- R|&&:"pbFKJc*Ti:{qBqhdnY" 00|VTHSLdQf&\ʒ!f[$ˑ8St{6q/mxqw1VI%s:{|DDx> G7}#Թl'fӛi4^:fg3m;O>u[W.JエvE;5{>r5+c8ǟs<⹭{TqZ J5ة 4eRȦq],gV>~,\Oclkt|?ŠbM{;Xɓ涩ϸ\qL}:5x٢~j΂|p,ٛ'jC%ʑщk8 lx!; vg&2n%]1}ǘF}QMD­bGrH.H\;c&/al߽}=/:y;Ϫe>Z1he4]f#z|Hj>Gu~ֳ&r_m?/Hqc%60bqc838ϛ8njr)rnoiO}:>r7UȧpP c\ o.(~B+?s)'`9pU1ʗwG2?g>Y4k. ԙSu^T1{v` O"5W[#MW<{[K 91o }/[V?Ǯ  {3ٔs'E?:Agu/ UTc(Uv'g9Qns,x`TU +=S{z"fZ[prZZ#W<[Ģwi.]ngw4ٹ EN/g}_o?T?cLeC*c?yX,F"91ܗY{MHpJO԰2J%;o&K8?w-"hTT)׫Y!pwx׫;2s]0fM. 4g_&+|-7gx8mb˞/鿪> =;39=e1jm3钳q~oY5,3I4b[6ьGGA61nFl"\Z"h7A"cMD.0R09@{Z֙iZִZgZֵkXkZֱZ#V"""""" ME[|M>f3oZx{Ӷ y }܋-*_q/N[9~|1$Lc':_w?+M6#^*~>%g~>y@&A$&>&B\c?W9#qs6>/Ms}L}Odb}.{ ?|BI/|/@8[_hs@_hsC_y|_y޾~TSS7}ߨ=iǓT1A*b)?I|=I/|/CO"cs*t__޾ѾvvqKo1~/>{~s?qG?E8,K#/PQRq/ ִE\Y=ly&՘E-iL<>:;sdެc M`y/͊LZ;YHV"&&%Z0˨$ +gj(7xFHC.fnں*JIdkEȻd T}E/MenK-Y|r91,` $Yqf -DLy@O&}9Oٗ#ghPSIht2z/1Uss9Oxnwflݲ(ϡR9B1l)K1`.191c9{~|]H"8l$n 0K"y2jf)P1C`Kd}@G~/??Xgrq7:IQ? xD'V]DL STG@)U){*T1xIb$HeW*hd 1 U/V9/XrI8zx]A\&iL(E"1KH9VK!Peegcɖ21vIlm- $%$r-ػ3Cl.qxu=s[7y Nt!J5E(ϐKw(o%fb$XM nm4ז^q1Ұ/]X,ne#8D˨Dh9O%P5єHI6jw#62Md["ߺ]&]t):)?\5Քn`CPO^ ٫ wg,R'`ǽ}*ngR,p|$ּk)s85Ch/o67 0lɰB9vg=uoJpux ;:[ܷ/FM<}<`إ<ر_%p_p=;]Nz3ԜXulfc\Xy6)//.JҹqM?n5~m\aۍ_GhwKYP߆gd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?wY)ֱjGh0 \ s%UF,L!Du2lX% p[oB=yLX_ቃt#wӧX37nB$[>N\ ŴYb yn ͂IwOU|EYy7(WM82]G9L32YZfpc>ii(;3{.E '-AGp6=T팼kM)$D0iѧxXW)$ij">ڢMF=Ul1|+9mp\tx:+Vޖ1ָ50ָJKƟn[?,@`@~t,}l?ۖ !KƟn[?,@`@~t1ۖ !=l?d i`@~tn[?,@,}l?ۖ !KƟn[?,@`@~t1ۖ !=l?d i`@~tn[?,@,}l?ۖ !KƟn[?,@`@~t1ۖ !=l?d i`@~tn[?,@,}l?ۖ !KƟn[?,@`@~t1ۖ !=l?d i`@~tn[?,@,}l?ۖ !KƟn[?,@`@~t1ۖ !=l?d i`@~tn[?,@,}l?ۖ !KƟn[?,@`@~t1ۖ !=l?d i`@~tn[?,@,}l?ۖ !KƟn[?,@`@~t1ۖ !1lv=ci g|i`]&ޕ=e TnSDD)8"MBg'. @62b18˂q`rdϟ9 ^}Mg1cs :zI=[v`ݓ"ɤr;tfK7nd"DSd ]|Q)'dd]8}! ޾zctQw.8pYeu9c!/deiEm0L-z#DA.'^k =n-UT*MגuTR)Tu'0͚+VuT~Z #wX"` dP\BN`&5UVXV '7?(|-t\/+E-2_uiT$]ujqSбs^ekbosF,n:R $ܙ}d|ekqbkJmfƽ[®;WjEЫ&XԘiObk;ܢ f8ƫ3y-5kz}޺l<{Ih,6>~M^3G.c޴z*$QY' $ EYDIB骒Ɉj9Cd.pb82SӥtU5YU81oTfȸE'DlS7QVECK-Coԙ[ɬÿ6)W"U?xa\_GdϜ%>TZ&,(-mdvr~G4*JuIF*gUdIeq:>^rXiAzIieshsOd6wϗlų $vm%yOSo1&CɝC̳'n:FN¹MBn((ecIEtuUQ~[n Y&9@F=W`t40wpWfV}?)~gYnaNEYpx[rFF>Ii~]G_V۷6[H6˹y8OP6w35?숵TXG)^ ԡxxۢ7 jYH]sn,:l6͢ n&r Y6\ݤT@ɓ-GgxlQ%.ee+.K2,{(UE(Ju1 JED.Q1CN9D-A o#$O&ۅ,t42R+ES*1x6=kKg4δm,B<16hKchlj%.;7,7ؑe@u)q3`:?61>)|8Svg\gv~>x--͞7R9wvs< ͻcniMͱіn=^t?V{]Osz7p~tcϱ_ja׶ [ ~v z<֍Q?GZѾ$Nc.KEOִo z<֍7~Hz v_~ z<֍Q?GZѾ__НY7?/_>Q?GZѾ܁'kZ7`"}+?1_qk"܁'kZ7`{=DkFO~Bug;Kb/MZ@=DkFrhYwNi]HrhY@y0n>[ ՟s/񋸿5i@y0=~?}f ߀?'޿k:n~1w_- }~?}fOִoDWo'Vc.KEOִo z<֍7~Hz v_~ z<֍Q?GZѾ__НY7?/_>Q?GZѾ܁'kZ7`"}+?1_qk"܁'kZ7`{=DkFO~Bug;Kb/M^u[Jl>lm[*SPmB+' 4DFp^%1 .9tV09EWMq=>eyWNۚ9'{ZE/h= Ύ59U;q#+[*'đ>v,ʹ3&^)86~cv'Iƫ.8I5TMRqg=rnǏSzNo܆*aכ^1bp@WG\6] AK[mgAW(FEaI|-\x[dɓ%JR;}uˏ |>|oŇ,qlr佫Lx[^V31  Pzmrk(mnIh!$묃|pIfAd6Z_ew?Ś-ҫ0GXvtNxZ59!hя1.WNrIM̾ny ݮrO捾.7qy6wLj#}+|i=lt'Gny.ySs}I[ǯCgūK,}#_Ѯ~XW^ؗew?Dm ~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<1 %ُsZ y**D!$'\'I[L7GgŠc+,u\`Bd'|=͞|)Gu] Xi4:TAtη>MٵLΤU|馉36#c1b.Ls8)JR91l)Kg9scs{!#]:C!T YpɪvLO5Y\PE N:Id½$&ɔGm^"z}D}XC=v~K2G4{4XEkW5]_#d*[7<=L55)ڢ>ϜŋIyw^­\,!]jn:vJ*dXЍ+HA Oثi)YN`nNRϪ޽xfমPF粤q$FIiP&eܙUR|Fdk Jy_`0W:҆M=Zf_]ILvNhuhS:hX6 z$ͥq##ҭTy7 iTlEj6EO;6LW]ȬcgdyQQ'~< /N#?cU~ _~@o \TrO?#pP/WQ6Y3aثWn 2.SdGh'(3p6]ErW.Vgͼ|dd{t1`ŢEEF)A!SM4R1؀!V =y,ߺxV&J4t,p7g0 mdY|$1`NEXbUc tv1@4ͣQ&)rD1S1rr;n,o>TL:+W_Pՙ+$֏:xgW3UCg9qd/[.1^Rk㩍Ǹv2f>5e;Z.5$aY`K9lQM }|+"+eI<*"I|#2( \K`0 缹wj"^rd-V/ru.\BQ6}̊Go$ xoy7.׺Tٶl]]Tl'e#'ErdCGn}l['2E&Y$,#t-4+: ޝS%ى1w؂L".n1t,srq$SIw!nn>冭&7-MT.3>2orv^F^E&&:1Q4-;e <ռ.ᦾ:{k;*kVlQ̣V^ /[M#M>T m(3 %$2'`0i%rбY,1 y*|UYfɢᲊⷾOC9_U'`]p(~OlOc(J-YΪQojAe)#ȨhՌFϙi{**+a뗚|(lZ~*wxr12 mrVE%Jr*<]Yr^zu6J̓E\NUYTrf1\ % 1%ō_HP]N[llE& dN%W8T'Ǻrk+f\|VuV_+K3o11^hgXF- t&tɒgJ&wمB&_ R7mnr-`ݙJ=5ЕH_05pX eC`箠ؼ:jgYڒ~\0vYR42)MUY(#3ZWQQVǮvbu9]rOw&g̞GG;AtK9h{2e5Ow@P?etƸ͟egQ6{ezVu3;.X3pSH.PIUM3h/ZGw9Exܚ w ^3H aab[}^ݟl%ݰwP=6Q5fCg`+PډkwۗuOl*UN|+=.|&jMIdK\XcšNdDכKthhXw:7^cb7ڷ#I̠ƭZǼ])C㫏`_ww0. C&ZY;*J*i_C T5jR']@%P[ug7 yM3 c%vsZc(ʶ.X\-~F0ruRcد*IB'h<F#o1FL$)ʴs)1So)ZUY(J3UVISW1=C-Q'\kFꝫQX"I=Wb8U. ŢY 쀺:QxևKtL"aj KUiHƞQ"g); f5)F_ф!0$7cGD*ĿK?)8$ǁV%_0uM9cRrO?#pyQQ?plc?SsHnQvedY UD)䢝tߺ1E7|@!$:j$U4wxaoQ+#c8=1plJHMb!onMo* iphY9W尙_%79]Dk?a=SJ&uK6s#cۜvY.~g9^6nnhѐDΐy\2etPrQIl*&:ɔ"lePVڿ#59sWew4xMUsqogqOxlt3׈BD4He\CDҍ%bd9 e?yzsk܊I4S)uZ۱om:V۾rѡW38 YYe !"Q:>"S:$S! 0dj@TT),͢vS/f1ƍ}N:iSr?/BaGF6SrX" L|H3C$^ Za֫+:Cr Dq Vr;zi-` R*X&+)d3V+Ƒg-%-֐G!*K- yd/ XGѣa S ١*Ԉ(b9wa3xMQ퍝5rkrx nJtEddIB51r3߱ClގwocˬW%"{,VwԪ2f$S::!Cw= 7(%%vomǺNz6Le ENU5um "ՠs<K疚L_)S [;Wol#'ԮYEV:=9:\~qԬ5V$":gFZ,|w]GmZ(kmY$e-b]vu"x엉H=P&tK/Gmިノ0sj~[Bn:#ٳuddݺ8+ǨE(i$Fr21 x?8׵/Lkn$~!D=Acghy)C,=?gUrߨα)JV#)P{߱eíOrѭ MPrѳqݦ.{k'uΧt[۪(X21/2铧U3|&٣t_$Bc\znQ zXAvfqk۬uo1 ҵ }Qᵞjh͈RWɷnAXَvgǎߏ|4{]$uClZ4s/w{W "oQI=U"Qb1`͡O6m\cIh,mf 2:ԎX\QuM )u9K(|u޿'5RQiīVX,qMC#I#al4Dk]sW~YZ]*JY(*C1+ a%p\aT1֞Rx=Ds:jwpsԭ"+Be>yl\K^b38˲IVn N(Yד_ZFQ@i]AΞ,Tī;ַIޢ_xxFmuݥ \cv\+lsd#mʎݭzivq6u:먖Uh8łR 7h쫶V;݋-8V'ᬽRWdUgS=yv˝ԩ&L#T3A[r"Lzukń窯ջs94Qj9C/q'vI7 5R!fP7E~W_f͉Lju6||"kc ᣤzfwh,qao*p+߂2'0~PܔE}~kv lmԖw^rlL?+rHGɵYXKUP9uaYԷM˥PwZN\-RY"d{ML*Rཝ6WɔK. VH)~DZ7IG{%gMtAӧ\U+\.0u4juƅo;F%X|zئ)e~M];5$p f&j-tfU^J3fw,VJ/A(/nn1 fj^O޼,ԓtw jEcVG0ʓлX%aeڑꜬ')|k5[)U̼yeigGq+WjWJ=t3˛}[q}Cpϋvs λkWkzO"Uᓦ(0V4"Jҕe7a^+WЍnWoulܼFnʻ-Cgv6 6zZ|K?l[ɨЉӡc!'obP]~_{Uy۴>ջUfDT^182G1ji2 %f6vR &VrƠZ5gy]nH{F۔Tqw(v Mp635uָ ^O(E>Ve7U35Pr $ b)l8:oK[A{5濸-={C`3*s۴MhkʻqDzjΟ:gh9궸y{ؒf˕Vw#{##f$zhh)\3 ޜ%5սo1-jȹ*jÈka3~}I}XԳ:<ռ-s7͎?⤢6}cH!Йܶ8k M. {9Pw3S z1Zz\XZOvӷgwJdKnY;dԎixϓ'1V>ܰ5fUpN*R &rEڽf.[L"\v6^Wk4Mwy:-[;\XN 3MGzK: |%멥c^ \th9v句t]Î7R]eO9UC6|1h?Tx&ZFlW_[ٯbg]2gsn5Y&%=62̣W>,Y6IrR+jj`ڧD֧#b+iN f&n*ɣr;:kV>F%裏xFxq 0yZ~.5gח[1OF$WI5Y%P=tlӆmIt$}OVttۤ$;2]۵t\*.eVTQC!spOޒ^JĚKeRX4UTwM 9IW|dxQ)rXعv|X/ŌcTq;c 'Nmii6TF Wh+FEڈ";AG EEW߹m.dS؛uw>2+,mʾ,#wj/ɵWpGeeڟEkK6{u]:I-:Dt+&b 2dЍf+xf1ݼrZc]~s2/}p[}4t$c.WL-ԅ= QQ&nl5wN}cofd#zu3н<:xiU?"8mQ/dT$[MF!{),ӼZ6RwaL/)ڦI;عn$ey3RnzNj .ԯ@:pi+U.ٯg$ZHK/DՓ6B 4%T;O/yˡE'ԉi/lezLMB'J+Sb[[z3ݍvijc(zbf *X+ Ų~9ivmYog/Q^Ef~L@R~Hr(Br9C`9 )63qg{2?@ʎ#?cU~RqIK`98?r_~GyGQFahO7Ō1ۜ~>Fx1|, 6/f hEF)dKt{ɊIS[8:CS %'lP._Ձ5J_ưmN_>I̛Ed&Y?u؟w]V8&Z?IyKOx"-#Jw87BFMNؓ#}cq95֌GkXqc3ܜsJcfx2uY?R۸J|A]4&4K0#y)DټUٴkgPvpbQ3"/uԟEJ]˒{iVII[lh\A{P[4Ä#SAme7%RVA]+]]jzՖ&{[آ?}VE̍$dM,"Q+Q6=66T6MA;]RA5 z^%*TWe5"E_E:MB)(aL9Mqw^3 Ͼ#xm=[al-m=Gfd)uJ1p[YH8s&W|)㮱>bX)䢈8Ⱦu3d]7Agl32Gnٳ4VwY6h}dӚbGmy Țd5L H B*7l"V+xԥ])xʭsɾ\u2]!I$+ںhurr}8[ Uc$껮zpYA\h_?63d,i5UkOcҟYوV=^cW3*Ée,hUUrHۊ)JuBR>iJuֈbl5oݒo'x3Vel]6bU^L^a*ֲչׯZ[vӸw08- ц7VCUsZ{jJ-{d$uzY = {`&w>,EcIa$﹛ oӣYhHQ}vz뵥*Sӭe¸hH9Mf]|.ANf@ܗA~kI]?- yh'jډLƧ&51=ٟdM>MxIw)}BSR}ENf`a/Zσx+2x պڏ\!5ro-x &iz+G֩6"Z,*bUjQMdb\w'@\onnDwv 7ZtE56>جhW,kESk<@$|gГ%Sɹdy<+-k&_ۛBȧ6vXTE&N}"Z˻8~jt~s#x/xx2Z&gUq3HQTe %!iVv8L@#95]FiC:KXPDҦ]Ĕ:FJF~)0FcH5}$v<K=5_NC_`lk4m'Uؓv]!'g/aZjQ2ap?YM{{oќ4ګCjnؚBR) m5sey^1 rG{#_bEl"轧tɝc-kʲ4&MT_;Y 03QSZ;)-,f g=IC*Br C7,(RWZ섵̏WqvYAS Bn˖Zjjb "‹X] jm[P]sKٵP c$nJ4FVTeBdTܲ;P&ǒ\c! ӻ]"Bx$)"~rYȶT@(ld{N<ྰ%ߘ)m[(ȨwzVxLKX?{YMV}?5 A%ʜ&EQ ='8x\q:WlQIPouY^ʈagXjp仴ͷ3P+nk&$oq'[㬻ma*17lVh;I,;-1U7+zG]Sˆ[6f!W ':u0^ONAUqچ W琭iɣ%Jlj|aR[[\*To>xqZްW;^3 C_r W/v,~ƾ QO=Wo*@C]N-o~dtٺ#_lmahzꇆG֯q3NsNs徭gZj4{lLog f]f;`+I|$}'WYyaBWL9R:Dm*kxAόl:=yE0NY_1FݭOJ>Y/-lsz1ū1)wşb)N@sŭѾIj/o=zrKYCk ;g ZV#<:ߡ}ѭ8դ(h۪b/KGǦƞcr^vwI,rdd}_EWvL%MHfv׹voen6pdp}^hr̉TMw&n \P=0}VulR|6K{2R.Ylm.Z+lX{\{A8q ܙԯoe?O^xgX0\zLZ )AԌmTbNHX+7&^'5.͜Tv,М`EϥMe?Kq׋Y]NwE?sq31k(DŶF%͛ "H ]|_ݘepRbYYsTkvƊuݪz^zmƹoyIwjFMg`Xխ;jvNUG26',A>-Dδtqe̫l ebX\ 6SOwjۭk8cuDkPb.aj1u`Zo.yffFz+.V+JuQY;O>Hqmѽ豚 ̨j Ef~djmG%ׄV Lw,$b.K2kB:iͶ45 nKDVY.Im4ζR{xiMڎXZc(j0qљטpӨO%&:8W6oyl${.b:Ɓ^c d>9u"sQdG3O#xnߑUv>_sjZ# zk{?wZ.&^ԙJSZQk*vfO=?xO+txçtTF;3LpGh¯4b(um ЍM; "i5Z27TՈT]s (Qɹ~U>pFm**`.@?tqEmvH6CwYJFVY.L۔6Y<紹dϓl}_1<bFݴ͟vdӻҖlw]g3(c* w݆)Sf߼F;P`rŗ]9ӓ+ ~>\(~12SB 9)"eew9VL)0KAH “ TgD>,v~<?dyuNR|YS3}Wi˲){QO+[P) 2ti% 0LPSNF#跎[dʡz یL':-7~3zt-iUەz)7WY\Ѥ6G.d1EU$0ye.Sp:aoWw/ozvTv ڃkwo(G.eR><_GJ6=Hjhmٚxi83k%L[LX76$)/S*`,1S:tڳIʿku!Lx랣?xsܦ]?'.~A8rsc+wϤdwϤd=n>O@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sËG+ErGm۳/cL1LFɑ$FD3,lcvq9-fC(jjtmk dxwDy6{;뷪r7n^Gb43AȤ:ͻ7Lc?lݲ]1ۏs~~/qُd>?w?w`:xۏ0F7of>8*2{|ǟ;>/c6 ?辚w|"OJiM[)1\ɹr0c%lU+QJidZg91113xc‡ER"qH|`oC4W;qݠh yQ2doqcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLbǞŏ<\ǟˏ}/1.\LLcG$&фt{箕I6Q× )C=s :r66DA )%N1 U%Yc n;1Zyrzc&eэp_ Z3k~)8dQi*jJV2W;2)Ce”U]Jv41n8ؘMc#"\3I[L`IB)qvuгqpmg%.ɴdE,,uIDWID\.q؀ n2\l{ͩud4sURkG&ܪ**)\S,'c ӨI* o]Ue<|D<{艈d8a%'FM'L2t4rn8IDLǨ'#kk[3RU2֟V*xO$s$W7|V*e]i' ?n1|cN =~?G-&k LDʤSwSLvy3iGi cs,n岙y/=JRKc>1˝<q{"ze+RTe,e4CCb1MdJlg3?k8`,wHo\goPs?2~KcU?Xoő~<&>SY#oSzKMTضn8)֬q+5e̩֔~Xol5.[+,Igf:^oM>]m ]2a lS-h8^.j-~T'ț&]w,]Mp&8)(IvY| .Vhc lr)4]dg!E3ܜ)Z,=zzYm٧Ӓ{C{`,SNm:Yٌ{.+un`'Sbs >qe55bֿbv[[T*;*YlyXşH-p$\6nB)*TKj~##YiTC\}q立i7֣6 u'REX $Z\&-V`Rq/j޻VRݷ晫5b+F!,6<8eTglR܄4;\K߻*)5GL |.6O-5PIw <AKo)hV*2u!nڌSYsάq_Ei&CEGC30vfxf1jQ[c_pt4ӳv˨oI}y5Z<e\avt)0{xH&H-2/wafc:uG.b8 /%w(en+|I:}6ibbC I6dKIXb_ q>掽Z{!9;5'hoܑ-ԄiϠUd1Ewѩ(wMUL U̹jfѾS9YW֫t[#V6ƚZ5fٮxYebUWܨ<]:zs[먗UnLoUЮ+vW{BðdDMk%se% u255һr˨Qfr+=:(]sm bʃCIND;)BvfKa~u4%#idžIjLaAW?6 Dus;e͏j/")ib;۝Ta1SICvr8{wGS7& ST_,or0L`rZa^Px? HwJ!H;<~ܚ'v5RCc;6B0`6aYlF*+2#dzjp/O /shM#jQ87%5*If0Fw/c" K b9>s"ę3ҍ}ZesjT%7lvV!&k 'OUX)]U:SnK4Ig*<73ps/bKIXruCUTaTKSrw&p#'Pz;>[2ҍI4,C`qq,[1!2(?z8Jw{q nh( avіrX썧2vļ(;0lT[6$"kԜt=VڔSx %an::‹>S13l#gPKF*WGG6[Ψ=vAĊ*]aIfٜB_^M/U^*6(uvIAE3;PX$ )Fhڠt+6?jw [VgeM˸x0MSf#kZ#D,K򃨇Qvs,UsUMbz2.̫L2>ݺJƺj>!9SZ &NnN:Wsƾl=?s%4YuWVWkxKKIx4JJ0E%C5X1JFOb>O ;`DҪ~ߋ#y`L}* =OkAӧ_Xēuc/tg)7ηy"*J 8mGW$ )WN*Z̋bͳ-w'5lG#Ca Nhz~вEp)=5;_j/twRR2;S)ܞJұ8Q$Y8Eai;w#[k#>B0gR΢YgVM.I,ţԡg E b2:Gq˗Z/79)x]ag`V"K*a6H$SjŨVaX [v|-C.lef|䅮,S]QW*pRJ0a)Ӗx"ǼqGVէ};!yU8yǎ*jjӏSqm,6=>F^XN=TQY gϗ$ :q#T^Jrct]\33nGr"stVlw&ifIՒIMDI! G6_lW9 xZ(7ޑ]f7p͔eWQ-'Ki-M]36Xc–ږaýuNߪnr*ѵ`e:}[M\He)Qoٺm Z2Φ(\(uD5Ϝ2 xP)1&sv8rCg.s읿I|:cPIW>:|螢zXnjsKZ}od"JHU7 $5P|ܭecd ImM ˀۗ.m/b֬ZQ흃 U$z1ɒյܵj՚/dB6}WMn@HƽydU+阒Z$CC:}<ʒV(E!zLceFWJ9cfsC{[J┛<֩YʸaSXi9+biMetٕH݃,Th:޴AvIP#\?n~AZ^6l0c2W^P4E>I&hV˅kZWX郞ys39`Jּ7%kݣ 9uanVj6rm)[NļRKUff'Wns$Yߊn-z#]UQZMְf5NQf n{UbBYN'//9WN];¾"kn ^oQ,Z[+oZ cc@]wߥq-!YT!+y;g^aQft.Z_Gh0U@'RCKr5G!6fmښiھk\BK>oZ{Lڊ DJR4PcY:<PssP!zXvyW:>Otj=ޓCٕfd8JeE9]')Q,l*:wWJī9e"lR#?*xrWz"o!|WemW] XJ":&1uǕҍs1 :=ۦI0dQ=S&>KcU?Xoő~<&>SYP߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-91|ǕSY<&~<1_Q/uJ~,S17?/Q/uJ~,S17?Y &2u]$.2cWn۪]"^U効⬕Y 9YD9y6ps6rrdUIB]}al7^|ZS<%NY7)8]rr:Y_.ILEC+ &r)r!l`9 \)ds83d~E,:tN6"`6sTZ9թݍ-TAfY bҶmdCʹm89i#dԓU"$}SY2*LC&lB|7sv)3@g.|^Y ˚gRjSYcU?Xoő~:+k8^F.{譫`:]Ǎ ѫ7hR|[Ƽ"͘Ҿl^wO_'r\r];ēZkֈ򲓂.:UvE]XɳHEɌVKwM˔#uyEkIjfG f [-3 3Snǝ2בx[rkI)hk3YEƔaZdum$UCGշYo2=܍13RIi;D(A29:ǀaF9N//%MUwa1[OмvmJʛ )[IfYݏ`J?DQ mVQ!^vȯC[ё穧P RpK/2QӏДJR *u̪uaHTI\lBN>;RX~W߹.wY64>+ G*opv`ZIT=d!,;nE"p~H*T\(|fG" V+vB6J?0̤#߳X>bIGm\&휷Q5Y2*r؝1lO?oGЅ%6Cykt-HbmEW/;{KRPnhֱgjH6X`"?Dx"<}gpa_QIwyo=ʽ6å~5v(Y$#|)ʄK%c!wn]"2|f ~oM>F-m]j:XK0Ifg㺤vGxDLr_N 7(v'(BJ{g\䖫evv #hVderVm s&V#\"`~rUpUN9Q)- E2|4}5 9v2ͫ]JbGY^zԴMg\ZwGyZɞlMl+|od1}ýh7%*OOw9\k=y/jZ5/a٫xLM23"MNao |[׼c۝T[+UoO>ܛ^1e&AFyR#SoqAzg]nn5OVl'u//VH{N֤<"f5w24':NpRVSYSYSYSY0Jӆ\9=;nr(jJtEE=M1ŒV ̂$XLN`!}K;1A7bjF~PcLRKp:xK6^#7]w)Up}rJyKԜF?"m3L'xΡ|Q|һ;+ V12--kZ:IsQ6pH*R]0coKlhZ;RSMҚlJՆIuÝD^2Z5_d2S$`z!(i&uU9I"EP"iB9l! 6pRs`k}/L!dZyxY4KR*2N|#g.ٺWVb$D""S뺅u67M}yҜМ]=}8![.P}~8O/$D3@M `|GعQDSl6GZS)_zҬ8YnWaOA h,W"9 IR)BR)ˌ9pnc60lgqQ|rnP]ka2ߺMFBo!m8vR r+ZPsA ɮ9q^Mg`+hk dJϮGJ5J@(:wݪ=Hmz;pԹ8lS"wVNNIC JŮI+ xTL7'|V:x궐[2%F@Ggӵø(聕Bzdr?m:Uı/Dk=M}.ʧBx]^EΡ%rZʹnU8iLV" ܼ}TKDU f!#ٰGu$6,y%&zѿvj]aԴɸGe!6-lT%Wg! t]2ze[nk"9M~sKLErB[y+cUٚvpuwI*mLu-rlUg)d"vDk}U`%h" HE]r%.sD)%n/|auuQ o):_nĮN])`cRP]5i$9/w]63Qc\Mxܚ6{t^k[5he{]);֕_mN*M lϻwjQӬ^>ls~9|3?vZ4ʒfr'Q ^AFɓtJ AmpIn|EQkgQ4ڄt|rQQj0MJ/g-#:6՜o!,Ɖ/W1ܗbۓ^9Jpl>WmS%)mXgaG#PCoZ7h'u=!"HU25WLHnٜ`f3d%=OMJn-F.2/*IĪe| /wl˨ ܷUP`SY4b?GɚN2ׂNm3/^:sۄYXvzTc[Z[<`Gѓ dM)-[A߳z> tmLؼpZ'^^sc Rf:JJ*r0NYւÈY?4|j#䙷jENV#[ТI%FטӤ C/9(We}/ %0%.Vv:?(88"{",lX8H;l311JUZ57Zr2U8t!=fdL<Ȳ27UtqZȚ<-&I vUD%$6.UCLշnۍZ-6/$XٻuF,s8UY^~ne3-vFnr +FW1Pr隻}zghYhJǻA#h<. 9G؇'y`3:hJ7Kd>sF3;8z4#g)JuRL0.#*ͰU?pO&A5+x,cb̮ԽM+G g(n rxnAtې1}xu3j4;dQttyN0dٰJe58¹.<@mckͮCn'>jE%̞´T~3la:S" esry~^c0u(C2B6.=(bv6 ([73E|Zu-bxjm$黷͑͟qOkgcfo3cPMgyxo lzUgLW I-E;Y/tLͅo0ɨ%yٱXMxifN9*UhaOӡeN++,3)guUڐpvW [Eyk<4Kwph3,;9 }!6uok`z='58gݵlc$ek`bӜ3ə5@#ѹٺ9֏9S{|U 3'T>-?rx1[2>)DYaU-9H6$]ǹM0,;V{}T߬,pjndVsT&gɞD;, \Iڰ,j߱m|>h]ev7o4]q4lZ2Mg"OIW/l7u湥qGg^֚طRj"/kŝŬq"lR٩# .֜v}Qϲ?Gt=UOW[AOO.HG]__j xV6f>)WVqqpw >߈Е'I5v)8M 5;WuZGJxQO-\4ouzFq8YUɿ!,:1ZUJ`&!XBj|0c8pK œ8LڠɄ{V옲jjћTfOME$R& B0X~:#&QCmy>J[j8z?ZK[KC)/7>w,Nb|W uN-X񿊻w\m^®I7h _:T$EJhi(g'iܶQS[+"$&9Aij%&hIz,ΦR5_iHjĢ,\50yg.1JKTذȺ?fN8t_UȲ*fQ/tl9Îw^˜ꩄ|[ܐ6F5$lg 5m>s(y (2\JXb$1/=(U *.sMMdCc.p,yEЧuw#b phʥ G6tKete${/Ӏ\k7~ a<BFϩU`Ŋټ;nko?.f_;lԩd8 .bc)M.sfyzqW ǧ5!l7n J(\J8pl=j~ PWlJ]?Yl;bkS1OxV+-qc4ru$h+$!ӳZkHІ0E2=B8 Brm[T$18zѕvv\&tTUWET{ PsO:^ƟFXgX$/nK`Yccڧ!+fkdEmw2I@{&to(Buj_ 8"5 +_qTh}y:@ 2-cvW)rSrRl8^_+ӜVgֺ`uBb_=v J$\;II25Annqz* -u6ksL7@a}IYbX;IߒSGYG.;E?]n8Nd퐜jJ]s &{E!^.SnX;lk6_seW^ Va(,San:SanUOdz, TaG 3ǞD4;ͅ]ו;W6kJ4" m2jl5̡OѬ!#DE1k1PM( ZVlYI&Z7I4h!Kpw\c㳹~㞈o ش<Ӻ_'v&j9Z1Uziv&QH!c+I7-zvL52A uwzuE'M GE־RkDPwNa6iQnYFە ? Y9)Dm9tԺZeFQА01lEjm2Q&ULBr(4f[agn-bXol5IMllFms3d[4I6/[&DR!KCi=Q'}ڞ$?xyO^-ѽ}Njg+˝"RͅQ^rr֦Z8ɚM} 3]Y<KہS (6~jsgiH8{fҚ累 ^ *'nJY2!CʋmJ޾ȡY$H֡ D] u )if=jH?d$6A QLڃSh+ޟzI/WRkZFIL-" N2&z6e]Ҙ‹1xq8<&suWѩt]xRgVn޴|MVDĎH}mj.Uzusz7廫+SMqw]V+G-IVpmL^EܴŖD9*( CXJ4F9Τnь.$#[Xcߒ6C.W<I `ֹuJWxCm}'ndz=NPVӺ6Y^Žjsf*7Dʀfxަ'M@hF$.ji3:c=Iy,2;]gu.ⓢs.ZT53dq :&)i#Z:Qkź˝&;1xG|oې~ӛ1aVs} SLXiط%S*Kn=72B:#Ri8Vea&G̊ncY;U} *I."f)qb xƝh7/4fۺғA*mfZ RIڧYZ)҈)B#Os(@,W3W6ۮ!a6m"rBARa%_Bqb,pTjvΖrLԺNjmCkZf́=VHJ3F^QOde ۅܻQeP l1ztZNn> Ff餤%hnr>U|װM9rsc98:[>Sm0%igSRV2de:~*ۥpLEU1ٜ~D4O'Րh^M#)Jfn:yEc2X].IAu~QwqV(xifT`w-dx˷̌檵I6l N{8 jAdePoqS2 ˃v|7(ʽǒxwu~e"*A%/u&f]IF%f&gXr $MitqR@I9 Ď1:ߗVKګ+rf{_Pޞ(!FEg &\e&, ]Gyp3vZ]-:|Tw;[xnէf,Z{ Σ&LTυ1߈TBvFjNvNai]sC s~YN*ճji ~a{L\,fJ+Mw'9:tz:oިu&;f\q]{lkK=AdQ3aFAN3w 6FN"5+̵':r!}'v3 pvVHYKsMbkmCMw8*`5MxI/rۗ}5r=^/c- +#Yy7˘GNQLzqC8˘v @S VUG]W\8]SdꬺYUܝE1sg=1*ǩ~{pQ6%8liivrk;I-~eZxAΰvs%UH$|W.2RkU qیfs߃9P]OyS jDZJu̪6&ޱ :2lDE+>Yw.K%)j*i&^8Pqc( ^ =D:ɭ\,2ylfξfud2H92UѤQ)IeXQ+Zf'ӮՂeLu)\q1⪎u-WF:]nO|,6~NtㄎuzBP?ҩD?ҩL}* =OǖҪ~ߋ#u/wm?C|b?W8uRh%pt۷E"ꮺ)E2:9HRϓ7ю)klw7j%Ow݇J|IFcl;-h%Ҁ3ykbmH'IqY'=uE岧)1 qʽyKu;_rv.ƴN!cKGR)lV/cf I(]fq=M-wAԞҏ:HښƝy2Wvv*QAɣ8VQ:2c%aeU:}/y)QPxj%Vr\f?U侢k NBV~Qd絻|sݝQ.$F/d2&Y%f‘iӧ3 RLnI߈$#gcOrn~??;{;1_?NW@=՛?j3Y>{p"W:"kY:DPFJq'y 'n\->-ˬ'̩݌sꭋ>1 Ft?%Ћ<ΚqF:WBSej^9 B׹e&T]ҝ >>QҘh/frsJJ`6z웺WTĔOPJϵmhNr&ԲnptdB霥Qt|%ljo}6FschmQv> z g;ԋoHˇR.]'\hUx NvGڛUxksR4$Вj٣Ndge^̟Mz?ݍ#fg?iPѿ.zt/hEէ5FU_&A)h 2KZ`HFxx%LѪZ֍w'/Iuj;Rȍ%GyR ͜$٫ V3SӍvVqLm]y#._-C9m+s~-ulSg#Ozkٞa\n,k}cPn,%T4S;̒Q"'QjKJͺb]mF-f1KCSsׁ]V=,Wr#_]7[m_IQ֪9 U[կgSW/Mj)uٴS5.#bXk2h7ÆKyv \!l`a8vDz)Erz^o^7ru伃JJT+踈s2/uy%;rS1t8p fSYC`ʛfh1TYdL}]"1VFPIwGk{̬[\1Jg9s61y^b}l+GoR΋@&wS-OV頦w#* mnyM חda@u[dP`̈́ԾHg9gӺt{Jc!mroQҬb7-VY*"8Ff8jV2chBW?/q֛ Ѭ@w|#U^9B׬%,[%($sƭ`sBHhh.Se9aG]E9ӆ;~ݭUumd`ؑu]ƉI]0JrT),XRkIhh?KJ:z8Ym^ƿ5ve`Ħ;Z#YC9hW nNӸUQ!e0Cjյ孛')]Y몑e^4Vy--2n*gdd9[kzUhYwW^N}]y_;y ~mpGVyh!Xغ~ZϥA%#c'VuLU]LW!WcE`~l ceٜݥw&rdݞe!,wړs=Q0[ ʣD;Bman֍-,԰YYtσɱpL%|7|^qeZuݒ|,Lm&eXtW'3wٷ)r™?iS]~qė'51&lL۸!#fRȻP8j.c]Lf>y exub.(= X!싞91ʆ>cʳ/ȜX> l9pl=ۜg$˛LmD[٣YXTqqXw F\mKv.di]G dG*:|u:{b-Mi查u,TD,/KHRix"T/}Eq#1/\պmqŲ9[o"6t^7j򤬃E)"kKq%f3v )?FTTQcX5:-~G,U[F`Jٰ,Q+Rjѻ7)N6|?: 隳QSAOwW1 K)59)(zbQ޿I%c/slRW]Xy/dhZݽv$l)WwrJ3^;׺&uINQdqbc&lwEr!cPta׻]C`o@L1KKkڹHR,eX-]l2"9$*)e|YN:nIF$AGo]|bTlTH$.Es'%:#)KQ&iMOW|oy&Hl.*[[!3EG2m u3JFL7Lae6 T]-U 5BtZ-R^qZ`+0W91`Uh:xd7h9R)_ZRCVEUvaS#(z왎#7)H:H;ַsR-i T~ɲApF3O2uc;ë^ڐ,BnDiT8KFCYݨ]Xgq~N a g{(u'zt|sQEuèG[Ppe}2ot-fKXj5sVL֜1:j2q):ΗjGjrnt̑}pAw~@?,\Sv(Yh5ժłN>=LwZqF3Zvt,|,|Vqɮ t9~po2|VdW,T-Q_¼mHW,)X2찵mC=ey7ULYt%lUbEAnWhhxNQ7M[' q̲=xmAhm8J/2Nk̾}uRLDQ4?Xnu]C!r|:ۺzvk 6&.)J0r-2-qlW+Ā~5:xn'a[eԚelzߢ_KL1"$$ݜ| ) Yo# "F=y#}yl6XMYܡ`-|dhvqvRЈL64~bSeܙc"d)c#0FtyKy˷5&wcLEi6JLMg4cXulmK6vqn+n0PTuJnn*TI 'gwMHy R"iɚpS:lsCvr<׽n{jdזxʽ ˪uV'[ezEɑ6``Řܷ%;¾|z)/9OF+b[Sn-2odZnF0n1TʛF@1̌tꕮzTX7!Y٬ Jʽj5h%vMk>a',lDQF|Q:mnX5)m^oƀ+0yR=n=F6X>˺Qhj| ͞__`7\h=JsmGBD{bo[ݣ!(KK{RtF>69 f)Uo*oy-uԚ51_]LF:zڵ! 9!^3*k\'bْPJ -5;¾AU@jݾ\4"4J@%p%a)FM%Tel&yTtEp h쟸gf v k0k)*NsWDk ZezDuMo6s2 4L[IeX6WES,NkZu A?2.}@=tn_SCRאV*1] F}KJ38ޛG2bjd?dU_Xz6UgO3`j̦:n}tYʉ1ő4Az.@&dVl18#Rp[n' 3K5N V7>RKm.0_?&WT"x^spm oR"#[8,SkYv$+58J7 daRاVo5,Bmm\S3$Xvp]rWoYhHUlzpي5+m0gźdWyoRk5'~}-3ppO8hvq,4^ffet3(taBR۾kk+_QRƞNǩ&\,j]5#a$uKx&jXkIccx }cOo6rVքNciҵq٨ekky߭V"/pi]sSVq2"[px Q_QhZk=uFR G-7 7-[#vq}YeMCŠT%#4v!2^qjjܡ7\unl^7B15یl|zZA#ȶ6VXhj$% ͓io-?ˋ?N^S/ 2Yuôaw7k5!ctgO"LG)S{KZ|/W|VەIqHw\`f#|Y*v|>Pn-ܬZot)l?F#}Z^D{^p㑎+tU?ԧ n~s'*a6:E.ٔ]ʾH;OMBۖQ~gzة#c,J&6=QG\&'x:u[]j1,hu6JBk*\l xYd. IcZl&,&^1X^G$MwW+$:9d|b뭧TwJܲ%2D|pr@/hw5/ ZBڝ:ʔ"x. #9)[ԂE/x!TryuƝrs][}kĖȱhir5JNS)p"B͛G ePCu鱞T3mNLh&aT1U ٤;]TV5x"g=]˖ʮ /{l]AtU41YdIBkd"1r8Ȯ2%:Wpk:6Gv5I: sIj ^t33r/ #9\&˖`~^=[x.޻Η{ԚebzĆi&7k؇ 6~G2QpTڽv ywWk}e#l;f hMۇNwmd}rH8YLCkNnAjh|Mtε1`U* 'wzߧ4 LTlcbzgj+{c4+F+VzʎI2de&=,nQ%MBaпl.kr9ɻgupD9H4$T"+gtw97Nyn.wu['h:j]U㬌 hڒ5Ux8ŴCLĹTXKC*޷Ü@mho#<":tUOcuS.Fw-lv='`1m@k}.F׋jfmirJM5)8%|[% fM$gg \״DcFjg-uvmLtFw-x_Fd dHE$*XXJ,uJ,Q17?XJ~,S'#I=gFTՠ۲!!!Ղt{E$$Qq9vdd5d" 90/[+c&6DBgopu |r'o܍K/PMpg45,y~ ]ţ%.3wF)3ߢJ~J]U Ԯ7EՃ]ܓh< Bz0\֜;dI6h휄TT4t bk0CUz=\.*e5f6[VbĖz ] ]97-g|04Ij! .h=+:ty:yyW+MR1^SP.X5IoIN+HztTjJ_P"uɭO5ch3j]md%~Bo;)E{ahjѲ˥$`XukMt*xquy{IP2agâ^)X*uk:6q~F!bWXNe@2|!@b[DMWvD+\m;_]V pKD,\zZDnfxtݗmNdQشU™D,Nk/Bh,Ⱦ]EI [Þzg8wP<ة R`O䘳hړgnɹ+дɈٔNlϋdsGM6y]z]ճaz;k:4H*-McQ*v a Uyq&R AUcjeYMO&a^5Uڈ"tڦnK2h|`<7M[8뿬:j#Y-hTZuqsJMHxsT3昄]g8QW6J$tm=ˑfLw'4>UQ`l&U'IjTZq3!c%]h^|ߜq1t4/tKf6y8'3R>] iBHNN@-aWBW[~[˩6'FZERWQof>lN[@!^;85i[ۗ3r#NlaL#M:=3kHFM2U!.6tpZ0άpohqyq'w})p87HnÎzwՉ(l+i;ۉag~nGwWZyO>L3IWR8ǯbM/5f֝9"=(/Yo&b :zz(&H#!#ȝfLl2IC$clcL&!3\YX>83m J*%iJ#’]e8Y]CF7+Uo6C Nt?Nd5êR\T5%7`:׵igrXzέ(%ݽ}T{dWcW:leF䈵nu@eHyCDn컬NSZ4G5rݡk䅏*.SOo{7Mr[2sM(n$+MH;Efm%k+pV%^UDKX ټ \w-880=㌐vW+i1x'$N~ K )29YH9+t+MӵI<њ gIdV t%`,Xޣ퍑2骩Xy=vX[#B31/k}mO]w^GuQ.TJ*'1ҭlξIx[BD!Ykpn}-ü^ߓ4y+&Ym%.ɇөqQX$M̃2玄n  Ct- E:_N>8Z-%"iYvkDZp2˻Ca,OjH饡kN_XNX Op;mq4Al}# t֝eY7+Qp>p%a,8X˔mLjRMHm{{HZ!^Rf=W ;~X'Vc-5:ed b;Z)ntd-x3[`ZgP64է%'l[1m"i:e[I T搓< e7v+jQimI͍]kRwp-tV1hhrȾr9>pAě XL7ZM>Uqc:n5ejT%eg\ä=ߛ%VHq2k/<CɸiOS@R*aj:ᖍzI1Y̓5%*&-iVv)YdyV{~=6d=%RPmam}g;fJAJ<jR%F0pv2fR:6QdhǸ~ ]@l#sis|zܰ*VEjFA{[>RRlR̓زRx! k%32:tym֝2Sݍ ^RbǪM9ÇMd+t|*I=~+PK?ti|\-ԗ}W7̥!TdRu&rqӨ5qWCΫZN^.6+4-'YTSS-ro}i Qt4UULǪ:AgqՀq R ef 'X,gxN֊[?^ V+V,M=iru |[{3NVx6G96u?F(5TfW.fnZ5?;exHXz,$4Z}#"Q^Bz}9r?PW=KqI˛ S!ଆxn|;֤XW!v)u3]X>7_QOO)FH%"jm,C&3sKw-X#[$^NkyrǨ'MWk^|:6lk:;Z΍: cyJXC/Uj\a Y 稿 v7ҕZVz6r-k՝PM7#uYPOٰpݛO$::Sqn<#\m6R;~ٴ~ Ͳ.S.e&^ž=Z!,djzY &ZK:RiKm嬮^١wu%ikLvo^WeCHعhɸ xg3WђҪ5GA'9 ZRKe9!guM_Mϫܬi{JE~\K4Iv _qk]ǰuZvII˕n#S*eNhrYg:q7p51[=WnGuSImS:bpFM"Xù7lg\I'Wkpo(v*/ONLRwFkT99 kQlf I.ƻsU#djL|xW?߫gE? nc84WhQ\tg-XxԔ>UC[Ʃo}qt" vB $UHsy- Ng158v̸LH&T2d2𩩒'Lw$!{cKٍ,:0GrsW: }/*_<ÓX6{ʶIĩG)f/+eg94K|9MkDޭsв1ғ3fXJPsYofTqYL@ٽA:iV']풁^!IU,E*1-9.<ݦC&'Kԃ_:_k*cv-SSV'墪SykVmD;*=I7.< ä;Lm 56ڲg6u)Wlɚ` dX=i-GI'L^$G dN\"&qp{6 Zo5v- '"{_bb{8MFi#ps6fDiK7ƞuý5cКW~[}_^K1$bAW31%r@f ͂a8{7jHNB4[ bW]5tTXo245е3ςhW.=_剱)-M#k""H(fIG,bZH.|쬺Pi5#7U~k@H8ee4:l3dks:rsݶ'19GUjm37t'ɯ"apmKkmZoUN2KV܉Y#;'.na#~Ҙ68v4sx"Q;#W~F›wXH5fsl; F͆OY͒!j9eGSy/z7u}CQLr+Z\m%l3.02y`C* ;qC* ;pDҪ~ߋ#y`L}* =OCQoewG~y}%v-ڣsU9x6 S;t]Vp넟#UM;~)@_gյGW{Fl2^Vmμw_;&u6Z2h4qpU «5?Y>}+>'|?[~?tG~r3oZVNFҷ},Yب4:bV_CN*tf$S:@Y<>5\ɪtb.H)I&̝NIR T]}XgfXU<5¯]go #?g?<oy>_~쟳^kqyT_{ıyuSӔi CFsRKTR梗^*j[Iq$:JEgFv2:7Ѥ?||?uNN]g*&<*i֕oa»_Q58j"q/EU#lK~^ 8x巶?-*M'{>?xPJw9GWΈ:]uKh\$e,ۿ |ڛ=徽T)/Z*JNxEX\.qQ},xhj"r[Sqib=kNbb-ExCT`Ğ,,VS,Qxgt$]$s(CL ruIWyfWtkJeiR, V).F9jUJ1d-|(!?a`<ӧ Cy3H cIϵ^Tn /Ml-'];:x@4-=6Ak!|wk#xW{Jߺ.$zLyF§U--ϛA%YT:j'6FMp#nI-Cuy/.TP391-/d6tXō-V$Za eI  A'xkN9=u5U$IM3v4eK&/s7{ʗ9QSS,K !?E^=uMj#W5lDYyV tf1cH#$$e U3#)3qH[6j =~U$˭_`$˿MZEDԐrf,˅lA; 87o\eiEWX\H /N"n>^2^?'Z_ʿl.xۿX>" 7ž-GF-ʡrL9pbEC`2Cg;3wqgPNvr>{3kwHӹ{_{姒dTHymLs xon2g#x.=IoںsC䷶mz9Gg9sns簻fX.1c1ć1:~+x}x?d_"f8U?`v㨇U?`v:TaGUOdzat;իދZ\H+̕_kcLNѨEdcn ESYSYrDNM{Zt^bl}mJMXvIMJJe Ѐ|[c7@ B2)erۂlTcw?u;s 'W -֍AX" Tr@$v1\$Oݧp͠2ťԨ6Irh3Izܺ)Ϋl$\%M21FmP7n:۳mSӽ<^=[|.9fӟNe %SeO$;x{ȮHT࡬=1Wz{I#UrUt/{2\Elt:f\ub-`o"̃V稭,FA\,)NKx qT+o 5=s}Yօo]XF; mkLx*˺$K3q)8!28y`C* ;qC* ;pLҪџᇩUO30>m:_:SӴj;m]f@Hfk§Qȶrh6K Rr|f7v߲n>-u}qZ$Ϧc8=YtII;H6fl$xC mޏu4[oB@oi÷fݼbQװm&(F3| 6M"TC)0O0Rn mmێ$íU ֆl"Dt2vi>q2K xX8Hyoꮬ9+9 9sU{\2n-ҡBnvuLJhIK];ԆDF(P{.VsNx{@]Pܼl]z cXv(ReJ:T1d!TpgcCP4$g쮫+/!tUUJV&6^wZd\hfT\Rќ]W1G5d^7׭oW])ʾۚaZ,25iTZlŜ2E#c'.S*sȢ9Φ!ꋯc]vrA<]LQGI96S&TغvM=$qR#g*Kq::%-D+5"C#ݧ"ɓ*6CX$nPUl mlm4ە}nTHwN1MZaZN/U+×N8HWGD@ɗϬFuZ >-M$+,EGklo2i^ b*,V3+`K0R1c1161605C| \2W7bDl1й\lZ42fhHJ5S_42l዗μYUۜRƇNjD\vg$nk:RJK^"lhG*@[i˼lx)]uJ~AG;KL9OWܻ@$*ڧMM"~?)^d 5x.\DR'_[Q:'HSv.h4Y5uXk՗ɆRPJlC"%|6&bH=I>E]x; Kߪ(T:Hw][5v5, )vx"O!r<'/13{~xW}qƪqֹ A*jy?gbW^YM">)ELI޾v>jrJk\Dimtev \-\"1 52e"fLz8M2$R0[OE6S|k XB<~&"xS'm*J' G>Nj7-/ T)>}2 4–tu62$WOwaԧ i Se%iRo$WpGu7%.7s։Us;4󊂭kRi-NN),ةUv)g$f eQZ6,J$⫮>18(9.דmu͛v+#8g]9 rlGS@{ФnΌm&CS'P"Rh3vd)jݥ,ܑ7,aVRMtTLMMUT"I%˝b4&҆:HB1l.3r8U_ئ;:Ctpc&o5> 9*HDRǛ#"dƓm.Eɰ9}Ա+I\*5|Γ1Ujptː=.ˤ $9_+ jH%iʖ-ɘ>NJQ8 & \=];zٷ).uO~gZ!ir6m)dՓ=4H݄WakЇCϡ7 qG H22IV]V/[8;:K"_.2xtlSG<8+oL{e!3Gv%bh[Oٗ22wp8nCErֳ)֦UI u]כ%Md592f}=vu/qFq~"WFq'j}eR3XULTųGĹx#>5j ,आa:|Ju,mukt]'aD\+{GZMXunu6QZsгV9ؕ$^S%,yuUiLh^u+ V gc!\u;7bPf?{b褜.U5T-=~W덗$"`BuFFuP2bO2a8Ia,-UbE\빦֛ޖ.U㆏Ng!qnӺ^WZIשG:mJZ%"wn[8M(tTvmQP JKǾ2R*Iddᚽ~i:fl飄]騊ɑBKbŮNqd- x[EN4Z`k&'qsA8סqjF<hpTʺY?AG}U|rORkKnfT{%9],hFcHIr^05-ͱY[k6f!--M?+ RXQ'JNpKMŗٚ"(Z-E>؎wdwe~wG2kbcaJPsA/Y? ei6i;^Hbˋl.)rNYnwKfOulXkuv=V4U:.`.ЮסmLceb?;ne:gSnjfћyk&qSeq[v ,&j{YV5N:gR0,ŒtYf4@~vȝǧN⧱\/g=95N3K$TH&IUb,{qbMhY[b c6ΎM_4ےNi{FeS-z2&aOUdFeAxʈ(qg}sD3w^6ڇ`Hч7΍RV-V$)wDC8{fg֗}w 7{(r;F5!L7CGQV)؞ggߚGImd?QIGY.扻깙RHUR688-t-1v\8NE $Btm7~anz~bUI RlZtqN6M}bc_̫Xk*`Mmuϫ~Ӑt۝ L봶-̤-LI`U89nJO6`{[--?x3w Em`r7E]KY9MgO`ŗU+93vPAHOF[W3y)ݡ?ҩD?ҩ*z,T?Snvjmk+g坥TrU2S(5.>PMOMBkꭶI)Wj2 ڰr*2ѫE3,˿3t("4Yє9t'!NM iVq_ןN{rkr5C^5FX?yuc?68g:ΞHyLeƱ|阶J1c7u"6: 1th1#e@8s G$ɳیP`1ی9~w˻~N};9-~Kbx=Ov-8kfŧg<5gKR)y1E-l?Jl4l^)r&՛&b'njYfXbcb~ܗ!&Sp\]Ȯs$j&l`1 V6´91 Ws$UPESg'ytRȦLv)PHʯf;ݮ\iN:䴫hs~5]9ִڥ&?f];4O7aǏ{IjA\x{RMr+mw: Md Px\Ĵr2y#\VMqq[61c󱦋_,728>Oˬ8 E}(I@B #SN#diX<غ9N?scf%]k%6Q)&q܃X0g!SJ,^89Q\&:Fs`-_tZʻp\Tw;65dDyE棱cQ67#1{Fz (͝%iIF,Q#2(6:FBkW˙I Xh6 Kb .Upi2nPy=Ň[VmaEo)[լ[VY)ɭS)4h] 9Y$ 񟨪dkLr:q[eVcĭŁ|9 NX;0}̞Y+@7n{r93qֱ7ye[+ոXŸ+TۖkflkXh#eXIJ +MmZVW+[ &e6kvO*/SAC*x.N':fTbX!+Nnfl2!bb7lE$6h.h U)YB$ s՚n:gѝTSYHvMk#9)Y7ڝ$& aM~+d]9d]K u lEj*M|y%***ꥌnɑ2N6j94h6?vtIfjrȪ+&bSc92\5:_8iբaя5gSNa9c2|/u}|y_z8n%XxP1={:MҥaC)]t4VA=dwq*nE1ЇMcimQ|9&ήdL!lI3iVBeӗwߤW [kfz-Bq^YFY%fRPT:H] 'd׷g5+8IoVOk;en&-f:|T[ _tҫ3]Dc"Ut͠u SxBN9.XON=V?el%s-L;GRSYl (ֈ>o2RY}^M#a-M07c=T3v;X[YjVSz4urb+H`Z- G١Y6#w8y`.^n5g^ǫ{Wnna~FxlsJ[LPM-4ubXፎ?e{)Ǹ3`EgnD5Ag.VIf( DPAIYeTSI$)1HB&6p\g#Mz :qH{EcS_U,rV}#,*(Rj**X[,g597NռCՋ Ӕ@VX<ˈVX]Iě75DEכϹAI$d{k 'xsO.^0Z4)^)z.}Ծ),lg/n;륧B?ft%FjIiUt%%L׶ hNb+ !6b=̑Tb-m̉t{405#whM[^,O\,~ nYZEpB%U&˽MYGFQ{Bg.:}i-uxcż),P.<0;eZuʫ|1LZ )VGbɊd9scn%lk~kTH6%?TФ.WZ־ <\jOŵzHXodK7w6LZE[{n|C~4T1/mwV!N[gw4LG7ioN6k۬p5XdE9x8pn&B,̮6|QS=}}^ۛZH:E6ac4YÅMUS=f,Z˶`-S)srYܑ}e;vL%0j6.\kilQ.kjSlovƁVݟީ̩[]Ve‡I,N28IꉜSc;'4vB>AwpOY;HvQ-\k7pIdE9l:&X:Gmf_WVb2.ݔlT\s4h:=fͪ)7l$E2&B)o'׊TRpZ:UK B)GZRd"uDQpeHߨd[jN&jyhFmEu>7u2Qy$B1#Vzr a Uw!Z7h \b#o{],<Mjm]bY$۲T/2rddNBh=6ض8*i*eqCeU~jAL#ێ };E}quƾ#qs]9anyq&wfv}],Vy#A{u6LRksV+0ݫx' >̒Rgk6[Kхh[WJ-"$+RRmX!TX6ls^ PY˕nٺJ.AeEVYU2TI$cRɍҳi_\qӕ>7̉uO-+Lҙȵ4FZrZ-{T;+ KLɦvL397-)܀x%찻/i7o#$k7r 4x7VIYט#uNk]lac76hS8)S!\|,Sc%2Yg2^v 5KN~K֌5]JKl}m1xМŁVC6m_{"R[ۣI oݞX۔.R+,v:](LWb\f$Ru*\|J:7N(-FVL4j{bT(H",fv\S'˜ʅ11+eW$cIl2r탢`rtP63FNw|N7>m{WYmjzp~NS_NgUlЏYЛ֢I6nJmm3mԞn5vߋ_z,:!jR6lhY+\ӎ`"א Ƽ;/ML;6.vM^j4d =6ič̞#Z{ $P2N0"9o{ >nr<%t}cY#QkJ!SZIUmjm= \t{} 4lG1qm6Cei5 ÷Pmm.`!2%Bl[=HwLug]Stmm_2Dl:c6RĝB9Use/V*R1h񓲧>z 3'4gEBFQqɉ椖MČomZIw]Y$MEP!Jlҫ;/dWe6-T;j.[h~P5fJx)  HQIHJ-H(txCɄ]vgl]P/+|#fQj2xbr,gAXO֦b0Rd9hpW $X,ᛴ Y'8dj gW?Ǹdu>~O*3rUݝeUkKAIlWARZ%WEBS4:Ohb]UߣvJO7Ao돲cbB~ Ս鈲H: kq/RpqMRfjATLkD;/A6]ɤNwFJ}D16Y$-s*w|śږܗd+2~cy%uF՟/ 嚡^4У7# 2 ^'M]]:;ߪ7gGUѨ;ZԦ[Nu-Jn#W/dzk;jЭvȤ'ߵlk I Ŗ!d|g>Ю/}?Ybx{=qU?`v㨇U?`v:T?S/ga|#m]rr 7Ӽ* Tv IBc 62l(U)Wf(-[^'N\39413?ab#ȏi{vXf&-[oݕ$Irc1l>Lcg9r1"=/;5zv}]8gpf_w㙭M LN-ٞɿov1Lֵx?VūY_3 X\9rǘk{&F|SQz>91Wdqw]Ҹqc>|cй,JbSm:˜w’Y~Mvc͌9ǜi]j퀆J5Z)˃/d4kC$BN Wcw:qV&!5]UmL ^BY, DvOH*,yI(>ogMDocyku|zvs?:wc=(ލӴRŖrGU[8=ݴcJNjjNM*Z53HkV')iq; VT̵vAf*O tGQ&G18rs%uudS*MGkcPO+6'۞j=hgH2oY]lR"Y2Y"S7oYE&ҩ)|ˎNujO1;|zUgm?nxvט6˹M[ɛئs^)2ڱ똏3?Fj^>.6%–1a:GؕMMiCxGͪ季tlf&[*%ZE/flZ>Wjm 4!zvc-UC{`b!Ye̤MΓ=s{ǁ?qӇO^>qs{vjPSj~jTYvl+f]M zNԚʥ}G`ƨ:zYgTk^]װTZm^!ӘQeŷZEv1xul#t&HORwU3.7OOI4ԩoVIk|SB&)2wLKWT~n}m7IAAJ7#2Q3$u9s>tV"k&eŦw uNnDWȥ!u \de]#vt2~-"e4jR)9k{~-EfsύOl/:Ѵ ; !9`}Y6tZs|K,TEʮA$:rWUly]`\opYsߍw-no_l7uSNqj*x,\qA7M0*&h;BKU5iW[S5uZN9~¹"*)Æ1":)̩GD@}G<ۛ]Zu K׶v1H&-aXgv9F5DȊ!a#M7)mfCZkV5! [r`Dvh3L꺥C9}۫IP^{;Z㳹FꚑFZ1I6R˙ [e@tBB6J9<6dmasa?_R@ ҎjVmQS-rȷ3BUSML%d!^13ҷWl>t6sK͈nm F'oplTZŭ-E"C$\|u%4jaN`V=]yGj$nCl#j7헬#]tc]VQTrnQn̉1Գ|UnXܼ[4ua\b!ULȹżV]gό`Wf*kNIɘ39}=F)a46N䕥$_R (w؛Fx9陊]ŗ$'̙Y˕2]rNg[){qّ\@Oþ*n6h*~ hP9H! T٥qq$]f 7%Es7f ԞƳUw5rη9Xo?V׭"D+/XDb+88=3pQl[W!Ryz&7k)ݬW;~f;bygoI8h״.,^)."^H'%-(sɨFYKţfH\a;b6h,6}fJ>s ;w Ts3\%)H_#z:s\ətrTrjG2LZ!q[e`JEg*QҬ$6RJGKG\ݓ@qwWvqoBmv1U{ 0YIg aiy)-4FYӧz?--COam@[ںcb!{1~|A;PFIlBsATSHRkv%= ݳ#7\xXV9y}{Xwk 仢JP2,#^0H.ގPw<]3OZBмؓ\>a X(vU| tPdsVݑDϙlm? ;Hĭ|e{5rM$利G.YZ1iRIݛmo^~O3a!2sX.ڹ*jK>Oa< h9)[f*:3;LP[9oY;h̪Ml1l"l,3IrOzF~]yi?H*82RHìHU_,Ĭq0v=bIF^{[Yntc6䯡&>M}#ǽfֺd°l{ff;g$" /i$QbRkWQQ,?]5IA'[Ot$S]-1t鹶6}Nx2y:=9tV"lj3&nΤk)=mf.#c8鯢mɞ&c&ũXR'i&v$/qK$I֘ U]X*"+t#'L++p>G֦|eOs$_l2l4TϜ4]w*a!U\:"/x<'mVxf:ݾm ϓzc'`"S¶3F8JS$5VֹINa|ӽH**GQNS,.=M&N4KbHv,e,Mm]dWe6-T1ǔR=vPcY 6B!+9w%u}ڃVu:BMptY-lƴ\ʯ\e۳!_}*NW*̹Ƽؘ)K3ޞ7=V7]ݹM;r}(y1p/7nI$C3k`Ѭl=eAzG:8ZսJѬRΌVI=}~)al3Ƈ"Fo/X]C}1k5qk_"BӪFfvrM6ڦ!xb۔jtRmo!UYU LB5DRBMJMOuGuy׌ゃm8Y7^g)=*I%mSnH+QAK 4|LZdb.VƟ\m1΢cW\d۶paɖ/yx9=Vf)V5gK5'%}i8x^Yͽ13&|Ϗ338??0֙(GG7\_|,? }iJYcemv2Z=DkƵtt[C5®$Yä].DMA5W*]NgCz{})s\^o܎H؊Zς/R/iǖ+1ڷmMKS6Pr[:4yd>-/TS0U`\}6H-1"ga7 B>lUį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-|#I'^ϟNR2H~)9Mybz&/Ì(˜\Tn~r];$;H旫ڲ*1 EY=sYIj=b%]~]0tc6AoN:Ŭ䪭׎oԍdbvR>cI7 ٦|wJd{'m td[s=3&l%:G&3EL| $]yNkw.\6ɸx"dp>҄{w*%N>cɸK>{&9*ݦbbtv3ǰq/S298$?`<;wMX62bcwtF\5`O`_$Ns,w;c !W̚MYI.ћCc970!YǷ\D˧m{K $vZ\b5v)8djF1Me1;8ӋHpfĕ7-#T^5ɹpT&UrJzkR4`~x μ.C@Gn1`厪'=S'1ڀ&>SYcU?Xoő~\t5WV?G5tVr'fXx~ёsM>JjvH+_tՌƼG^rL2ŒuU\kp"s˥gydSc͜|3+tw\w?zjJsVJ!NI/\xmH0vr0v~Lbvl:iu|:[lnN_9UZ.֠PDŠMl~Jt%sT,;]J!h2Osl Qn)l./0Q^% H#Ӻ4gksFڜ5H]AP]2,kh$6;:zI#c+HsaX8ܐ|tկz˧-aunWY4{sؒ w,|ɤNӟ>b9.:im; a/` ښɶnEw [1W\xk9%$5^NIdcOD^Zϖ;/Aw˖\tMo*Bk4[ۜXg[*z=&Qq!%%p Dr{Cym-=exgBm5UfѰJ:#ujyUsfMgXnQoat|m3wg9lPq뤶PX2+a3)*\ggOgρvsg/':yg'U\M߬_E{DR/d\>lm}%MHYxly#iy ^]w]I&!zJT /ڸlij)9I<]Ta|3vOboYf;j)5MGpM)Dʉ`ߥ\gڏiؤ#[躄+ F2 x8r1YaN5ӋW j\W١b!<S7^4_ϓ< üwª;*,7r|ڟiK{,[U *qXJG ɶ>tU]dH!p@ָ]9cK[ yQl6UU[ݳJ+uiH&i(w+s+ u}Wvꭦ6׎;;M6ŵjHQUܪ2r-YhlhmVo(2W\XFw8-Lױ6Xo{ h{SUi$O1H9yf#bOG?(N[YEMXX-%‡ ; Vҳө֏$LWpL۴-JMw.Q#52=#@u.\X1Dg91aO{3/f4<?.V&\O Hca<)ܘ3d6>1B1HB&9͜)q6s391g9`v8pwh&)Wjn1 $c9.| یّFY:c!PM|m(m1×%JG!M}2G[L%vOO@q}tevQUn\˹U/zGjZܞMmf6$JNZU g:F "#P^zDJ\5K2JP BA%OZxӺY9Sòշzf |6lDb"2g b]6j4\ |n.zǔ.N_yY_\AKWٯԚe ڏoP<9$]KӜz37qύ6􏉻{ o{r]ūUG_v{dYjr$delIet]rqwnTV_Xe?w|m7H+w]ZRjQ.j{W$i" $q,c18gx+ѷt8DZjQ5u5h9ޱLIF1 HF,] %SQhu9cx^䥢vߑ&jGaʝBnJ ȓ'q`Y\(XX,ul8uu$L_$sE 5o}֊pJ옮'ּ4XmZ@U!'ePr "ֶ[neQυ<8H|̍Qw#o14 U66H`iDVA61NδVMlGì l>j (ꦊ)'UUNTLiJB|1>r57g#h,r ۪8 א](8AbaDAB*7MDbǟ)YUIYuSE*i&BQC!K>Llǟ9pXӋow^%m.-jzb{emnhƓ*@:vr.ܷ2p3'̕yRݝeotO8^;G4qkTɵ\4̓t^)ga Y9AF4͝gCnF[^n5t/tipNf+ͻm">ʔ-O8gz73%.ouF-'W vcܴ/z넜wQ3E 5}Ћ7:ݲMqOWno#6֦d|kѓfOw GbdeiKb  PZEF0lL$ٔ|{$hɣtTlH!K`[-znrY>,LIHQ>$t1]Q9ʹH&C^>z~A+)|k굲$bbؚ!vҬTYs URQ̍˥!8GtZj1pH$5!A#NB5YB`MҖvdX 2oPLh.Qtm׏n+Q \̕tN#򸀰$e G!$m&ȫM1̜a;3ڬ޽Z$z&FFdJ˶BFiБJ236L $Bv(MkqT6ꞣ؎=m]LkBv٣7 [jx`ɦI.xjͳr 78{'ڛV/98ݗI4O 7VKc:uj*Qn4Yy5B4^IUA*5Hb Pa ٔTD[$TZGǴnѲE*hB7l>pmOv߰vto~$ J@8w2'󤤪 N`1`!Le3s5Y\WOq{{KZHݓv+# ke,/~;gaOaۯiQ$ddl$sxh11mh݄tsjM4lvMR!SL!qPzLi#35FPV+}XQjdfL1Hrv)qͽEy'm j{WB\^3ft95X+wvV.٫w*2-3.g6ZshMc=_|B#gg$HRN=e )3Z|Dڧ[u'\==j-_;E:T:٫`f/62W0fT9ѳ@hCWPo;-eel{8G>HRk,7u½;jGӉ;g6Zͷ+jSڻHliǶ1h<$JG]]&Ѭ+37:im\]wɰ:Uyk{V6t;ɦF1w,dpR Ȯ缔*]Kb/N9 E[ӕw9=zx*tq_AĜ- )XF:YFekC52e#Y}ۗn_ۗ&V+ 3qB"(Eqheh8`X"Yv@uß,*Z}W^YZڵeck1O mM[kUY)7!P^GsHl14',|o㹪sؗfqk sN7 enXeZV]+,S'Žuj1 \uJ~,S17?/Q/uJ~,S175Sd#0S}`(qqoZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$?EXl:Lg=9ufJ_eݟ.sy* ;qC* ;pDǙ0o͟?XJ~,SXv6>?#D?ҩL}* =OǖҪ~ߋ#?ҩD?ҩL}* =OǖҪ~ߋ#b%&7s9k;"WTxgϠ̖TcnɲDuU Hw0T.WBefAvpmHhxYnHo?_EFwl.a[ꦓgTKD)r1NC))SKgq8n6wz/W|# k"I{wyxoi 1xRV îtM>l;l5a˓qD#&sR*d*1 89 9\N=@ 6]Ë3W^˯&-rUida#̵qqdc&Ծ# V%.0f HiN&jf'\ cdӕrRnb?,i w PĈZDz*Č\ \sAjԫ/"7T=iO K.u5wFl[6-($cvn8$jC ݨ|'$[$O!NpPb5J?tnegi2!)KI3p1Ut$$#Ȱn!}Y:Zg't^icaGK]$vfJQi~ݳlLqt 7v\_׍bsC{`kLYH.WƨrO5m5E r>60y dҹetdMKd R 04T )yAwey(frŽ % 4u {OkEg#}l!|k_+ϑ7*< ==~K@X^TngFOZFiד~T_T>OAx~_K^SF)= ?~Nxjz '*nZ+;Wa6[$p0P+/-$DZ0dΞ;rhGQC@w cpys2I}kdX9-x!+au $j_4pjf1w+%lǞEi~Vj:؍Uqd{jKFH Z v%JbV5GAD -zP,X]Cz}MrEK\ Rœ;YfRXB3l|R+u;hn( qkk)٪R&T o9$VA96Z$q"}n퓵*<$9|g\f貋nT)P1.̭iƽX*"6:'s3]Xf]GF1Ojqt)!ϵë'M`G?\?7㿙'/Ӵu,Ԉ NIL2ĵtwRUznbL-F:2Mgʊ8oj _?lڇlO/}3??6~?{}m)TͽAr+ I(Hc9F#^3\69QTL\.Ӝصǎ 4Z[kobal]3-nBJ=;ub]2l&v=3&c~o"d9 fL^zT;FkOF)ضŶgpf02t^4p7X)s2/ONIfQjLXkfŃu]xNJnښjѢ%:ΜJ7AH* gW.tjt;޽M^/]ME{JɆhl Feti;ud"RI2ae],Gޗ~Jݡ7jzַGi[II2|E xCLH1Vnro&Q&E׍[5\DZ f#Y[b׀>'tؽ=mCvfw'3׷g%dեDp(;3!ld^E DluèGvZ H;qXj;3\$١&EtbUXjbI f$llNbu/!-1fl5)T6ٹEgltuqcVjI[:tAՍf޳ (wըy \`l)FzS)mDLv>6l]Z.ݜJ$GdXՐ:dHV{8?w=1 ?.N[Ce6U{r1-'KqS=񕹺C@x[XƯMd\$4s>*?:ǎVmsy6 x%jӵtmEk[d\,o&kXJ_g-Jv+Z'Ҵ5I$93Yo\3L7ufx\ ệJEE6N5[/^iM[!HZ,G45 -J(̶I$E&Kd @~&بO==ݗ<г#'mVhnwpcvɫRSH豭㕗Sޤ{cFqxuy,\yL:Az5DV֯)bͰJR7v4qPKQkXcwY'Yʖ&+[EBoӓΚ[>źBK88_BWߛ'eǔFMY&iM6F=tB7Kd{uǮѶu<Խ9y/ŝy,o4%b&M1)GПoCæ+-vB amk=ȾƚgQSGrJEs#Ӯƚ)c$ey.SrC%RW60lg;9WM^p(2}J7%'5?K^MScO4JL4pd<3 W#eaݑ tF^t^<)ƮopXXt%x7w6٘V5]`A'k*LWAYf.[1gcʆ:gkk*m3_nMWIG3QZI%gaI=#]L}Ϫ_+A}Aj{zS4vîMTʇ{(,y񫺎d`bW6?$w )b*HMۭ6Y&m [FZQRr*DEd-ncS,|j2vzMp VYp3c%37u!$%w&bdGר=ܣk4Ca°K&M<͊ 96rplU) 3GLΙcGd]nn/{XNM-##E&LS#&tA۹&tD].=.G2/!464*MNï+ Y)y6Gn6  l'tt|ESLKqqQ}EvtllsdGGl͋mf6I67M4A2$ \l57YFujqsWI%%,'ɭ)\Fֲ:l4%JfYH@/ʩOX.2l3ԟNS_O^ T4kwtڒ8bt`*T=khxyxFAf)3>"yEQЇsN(~4Hr*:*s\h4z*ikyr619J8T156.r^A2@;r5 ӓRx։(l-Gt([&i7u]fRdi(#/ZE1ezЋYCǾ)n79.&kY5.YBy≁vztndW1%>FO,b<V]Oާ>q S}5n fἶU_?K8.RxL{D}fӽZV&s} lgTiM`5tҚYÂJo0φg89.CZZi4}rm{a4\,l(Svvu^ͱۣA&'U#ݑ +0TqR@Z6ÎT-i[[ЯoFlnf CWeagԁNIƟmHhǘ=;cb͜y3Ìg ^tΞ,fͺ%8]B"#](*I$Lu9B19:]\EI`g/<(0qYrZECYY t\%h)hIN1pNM-V܄.a5#]g2v=U\a/UlrbF 0ƿxŔ2{~?'"oϩ_-桭qXm36kľ/-('H_[dfsake'DdNBiH?H0d =?-<ʣ}nݵȊ6u3aA&N´RA2.~>.6.<Ѭv*Nd"X!)Vץ"}rEh6t4rzW}R ĎHlNAuwTmIxkzz4oڢDŽGY{=!O-GQ+Pl[^f3]+\)㎮C9edƳJj+QE{#{)!u˴EteQ%1υ>qzw Gv{6ưgdl YuukZCmD,0 =}N^EG誅RaWCڽ?ÌjU[aا_>HJ@ =4BXzf l8"&t0DƠگebގ܏۔uG-k>o57Fs{RO#4`kyW{c`R"Y%H04PJQ]<]FTv~6mII5g+#eoPN[u b)t{ěٞ͸~yP-vGµ3ĭm#$ַ꺆a%c8Rk{7YA៷DL۱AJwy?ɞ]y{,_5ԖsuMyx`@*޵fYdzdjN[937pYZR+"y2jf)P1CKdI'T:"Z _׶:V5ڌ^R*4@A!n(JNWkL3'Թ=oZc榉dsckh(ԓuf7DlnIGLU|Tp|&ʘ9~GWt0lZ`L0Xf&M!m#.4 2|ܷnF6[g)Og,$n$t~٧ZQnzpX-R!'kTGn,lzĥt"ĺ IB'?PL"l:ҒDMc'QC4) lGB/GK nzp;Xs,6vNo0:cc0ĸdpŔuFfqKJ8FRIU7ǔRf03SmPhUgHZ) ~'UƝ`knJb/-ًjzXPAxT1\73[e5橮ADZ8`(%!hUE{(<9F%FY3:Y݀.:zh-vPѴ.W+mpȎuOm,ŒoeU|ݛ${cjkS\XNg+>j0ВڎV:&gv[F!͔J,VhGP;@C nijʭm7dwZk*|UZ-S1ԖnfERb#A\=MjP3-qt]e]-Z'tg!(2V5 `R$,m,#I09t}ӓil fͲm^LmmYlk*zKI敖i&E3g^¦9u|1rsI3[qz+LYdp.J'Vn1wpQ&}4G1vtm䬯4t-FA\Q'[h/tnLĽX$QwMvO#Q8V&xZMq;8f>Fq^[~_AlVgi., K]H. #K-"x%]U#s_5뾳QM v%Uk&GRVSգ"VHKF7H) ,&e :EDk&n*r9Hj*)&Et*!n3b89 c8c.q2.m7lK`F5,e J6l5Ȭ}j~lvcU| 1:Mu?l}Wܴ8{i5ZJj"\嫇Poσ8qc (Lbu83o'n; 9U?Ƌ){=U9ϒ;sR`116Lpnk[}w5:5ل$eiv禨)'Idq̃n- $(VGvj[l".udAtU)Y1U% b(C.K!"9\vJ4$cM"Vo̼LJ2+JGmeH|ާO7K h Z6%EkKIW+ڼG N-7j㉎t nx [p]?G{'zum܄4Ľ*uu~9i\y-u;ObU7'K WlcݏfP:*U9@Z MDZ.D82䌬ڹ@~[㉺lskKS&mθ?F*ɝT՝a2UWê'+ e;TX_ŁێTX_ŁۀeS =O Ҫџᇩ$J iɝ%TQ%RP"(Jr)3ch}-߱jM)cikNVJIJGGTόj_1 VIK>WtYݷWRns|[k>n0cJ- ]acwDMʱi ţ**i#ibi=&f\v\i=Ҕ_\uħF2)8J*QY)$$]9g 1r 'I|)+$#6T366=oV=qv ^=*vYD\9pFaT(|=愇rEe+]EdK/ R❪Ɛrutmgfs.jYC<)V5Ю zEfnz&.zao(BZvj-gtoR;j> lV0[?N6Vjw6;\rl_$d*iB"%<9p椦e".?).|ANUʅ"uF凒vJՂ=>cneݕI<Ԍ*m^EF==:ѭ6ŽG ]o+d\u+U kRIV$ʯ/1/$f\.%d^.R(Pq*_<`s8m}^XێK%T;"լК9W0iU9<76ww}ﴯ{n# l-߻gwgw ގpJQx?]oxG/iʣ9vwf:*x2:1WҎSgz{pwq>J_R0OzivxG|{pΤ;~amn:FhiOk^V{cnƝ۽8'wrԃw ϋ==Awk/|Q%Gڗ=%svK@F?S^gn?ihBUdž{^ayY|%|ˊ?|7ǝgquvI8}C8 q[; rEhς˯vyq&7|,c&$D]G;96Y5'EcnK'~Ӑwk4nhVԳ6 ڷfU!XKHVfd-< pc''IY eN#Vu^'w' xz(e%ՉK%,Y ̉˥#.-=wφw!$kRRZv׸_|3x 45xOh/&sʟkl5G'k;O)ܿ#Wf]io_`[i) sJ%!^GGfvy(\6(#/7Nd'×mt8ȊEEviTE@Ԗ# kb̪YW*|=Bzi΢+:gk=JXX^uvҦk)uu w \#&n1 &c3kb͝3_7NPuJMgLUDž1 ٶQvM7`!-RI)i@QCK8GX3nߓFyG) c_ߎ<[ /Ȏ?jTiMZJ۬6|D1U #e"ߡ8e;(=6f9䱓 uk] = ǮfŸEU;k֤R_F^۫"-Kǵ FeO ==tRZ?Mve9YW^vi-[nw dыeG 5.o?whzUr1t6b+*RAb++:QHGb<^"Z-3P)M?6 S \d~ csv_F<}oE5V V{gV)xQ?ٞDŷ0cwi1U\d,ɦLc91Իs2a7@KFܷ̌{ViEˊ~TLR'm!VC3-мGҪ3ɔ.AR rSM$2w+2IgjTTf%̌soKKw)//(9I9 ;%"tK,۷JӅT]e|-;ˏ_8c8?ygn><~~Ⱥ㣜8[fr[%Y޹S‹NթU c4Cqq$5Y#tyNO.2Oq|ܾ(oe9>MGSWҘ27s/uܛsٛ/קUv/lc|J._mNS)s|Zr>>32Hxtlئ" 28MIJ{P$xm> m{)!v :&Hbvڵf#dIu̓$B^%% +uMi(&Ef[)w!f3_E.JXk{ϝWYJΩi]õ,VSWSnp͔U|6Uw#cUR)wlcfyF3Vm_]$:>s۷kx#^qeUA -%ںLHY6q.1 b'1 9SfYUS8MzukUxV\נzśwVfoTW8W02^3ӻ-#-ەt6 3_ |VuKHX\^6gM*d$T̚}-="wglᲫqҖOcfs4΃=en7?TQBjVf*l!Q3 fݿ@^T=I\պrGod=eA_Vng%hg\[ <,MݖBztܓ궞JKn0ڞiߔDin*"©py`L$?Xq8^ As+^jjHz.r)URp {m}'^ c+夜[2/;n< vbwӜ4nA](69[\s܃}c mi9/{ev#%ֶMS89\]aTJPR&}ro.s&"LIeΛit G7۝J٬+F>]׫eQQth.1 6ͺq5dM%d%\\s?`E1BbѾ n$'orBA[,ڗ-ՖBVv2F2RIF"OF5v(c Ӄ)uUa;nZ,T0-HotNk"5{;8feZ(g'I'>0W Od|UG<.s׎Z߹Or ISEQ֙MB;Vij\axr"x.{-tW{JIj\w*ffY<$R+jy/&FQ+IάQw2?ox ߣ3Pk}KP˺o[k, d9H3Deb"07}64 U4ޜ][̊6ڽU9.u/V21-nd*~J㎚`S`S; LJ<ႝ_ZdUϑ >&NLzJH v K7 {pdV'0ܐ}B;MRvfʏw&].ڕaufR%bIjS˖H".AZoPm͠N葶F:n,S%2iPvȊc|G1 bW.']q8ߠ.֨FucڿYtq?V5Ce]C*tvș;co-ևOCHs?*,UWZ2nQɜsdjŊ2 *YzVL+O2ӽr8wzeAѷ 3Nٹ@h(% '-ܴf}qEBJMSbk˧z蕋 ]:%kbuU^&_)Ij`H L\U>JvꍙwH[#)+_(ѺJty[HTY(9ywM9l;n/p]j}_v?)TwSf=Hs;AgN/Qo/!/-lMElɻFmUld q (T`jIeGS e]skFnc=c7ۅt:X)|33+O7cG4\>أ1DC43_A%Z$tͷthYҲnGl9_^serFmRY) Rĝ?Z2M7 UҝZAɟ70hS؆&]oFSJU0 !F2Ìqs/`/tr2M(%1{3|;\wl4pDj騃EXIR1q} h0C[\MnHi\{4U] 9x ii&lT!O+.3zc`]Z횩XM>1JCHͩg9'hˍxH(&y"d݂#;Nt=05>ѻ^bd3uc59de@*?5vVUM]PNAMiIνm ٍR?6Vdr>ɾM,~\:JܦYZ"FqIh\`3cɶm\$6tPE2)I")q1cTY>yͩK:{?dmjZ&qOe,.1'1fpE&Zõsec2|fu$$E3GQddnʣNIcw\6zbv]<5 ~F}JٿQd`+U:Eb & &n1Q̋7dEgϲ㼸pT? qQ9]#zl B]EOe<ؗ jUK4 tW^VV"AF3t&!(n9˶p{r Am:AJ0ũ-N*~Bb-HotN䲵l22p3֊+k>{r @_xQA_\l[ Ƣ>.t]5YV[*tWAtNUY1TIT)N1NC)lc#Y-.}gNXޢ[$zY91PMă 1R)B # ݺeE{>a2jsRRǦlMoF1HB2.3㲞x.Qh}?5ƾh?s0n.[-jsH];\qRq2?j(UNuUTQE11s91sg&1s9~ɊR:{Dpa%2BdN)rlggP9/^v/ t;M$`X>_C#9;ݘtl1gGz֙:ثz&K|~gz| џ؎~eNIeQMN϶b2p}ȎP}N_)cZN)'RyL(fRI]^$搹ÞdWMB1LCc)ld.q%3qg3CILbg!Sc1slg| ε5%4%Y)l­9(ς8q'm\~#oR<}w״?6<>~ ? )nevS.es!nӹ1P \F9Ycc =<Y-ܵTc!\$Tˆ*(RԵ~qR sVr-<=Q~Vt>|g=~;dFk39\9ˆ}ɝ8)q(qdg+crdK]tS>3g,ٱkɟ5,u^DGLDLCg;Jc1r=)B\a2d!0I#`mK>yȺ3X4hc&ɿar{KtNse, ഭ3nu36ݺ?u紩{{%ے%E%O6{L<;to_~3FNJmN'qDXf8E1r<iLYh%}DI™+ڳp\cW1S&]u1qELDljĹ1eɇ%rά՘&?>SO5݂LȚF,|IwoaS>{.L>1rn•f e)YkS`f~q|J1޴XpEPɋy b:g)9iӻigI="b} oJO3.s>JW-rf2 6T\?_D5G^1%'f DT]e2DPKYB&\G(Mx؝?QBceY?j,ss2+:d&t=le.o1sv͡=faJbdU'JB;Xi=Swu6'Cpַ'?O\>}f9ؤ,fKBr(N̕DVOY1Y,Q#;K뒖^RՙV՟111ĥrau0q)=d"Zpc`)َD\c*1gǻ6[(^M ^ܑ̮c咸)re0P#RH qg|xIccҦi>bᒱW%f/cϦ\ǬS &^[o6 $:p1.2l{17Jh Pɭ;&ч}*|g9pTfٺǟ%sdfU>وu7cSOggÆ}Ho5w=1%0LE뗋ɋ,uLTc%D>J}i`p:Cvk^6mkOff|24dkC;lY[4Gų>+'֦ :l'K{v-[Zk-Yh>&<}T*騑r35 b!!Sc\ miŲ7˻fR=3 Mc%)"%.{61dV3OZ*X;k$ܦ#\~618rcdp毚 d?Tt-3x|C|_|oQLq~?S =~ꎪH@L?y UȨwH8Io/otDPL㳳63ճ?(Plb!j-8La19pǛ*42`o{[~ư^]olG(#>Oz'k5+l޻gwY 6NJDML|.ϋlZyi\[4ZШ9~1WGWђVkk5yڿ2ů']xge&<ɏ1](WwV}wޔ{H歫o>|BRx}ͲVmHyO8x37:` ㄂/5|K&W>1 T0cvc=w4ZKgW ؗ)s(r_.̑?^qo'd?E\q_>oșq?ٛqې~Wt?f3U~Frsny_Es|FQS>ogcϥ,3,_vʯ3lF4;pcI>~, _&on;&)x<98}\~gn@|M([L\z&P3c t̲US$R*(c>s콵_w41#QڬEkDV͒""""-$^OMH/]YPff?3X_9>|#~P9͌Ro/Y Zb6?3|U˽t4vyGJ"峔̊,NCc81 0刈DG c&\f'.L&#NKDg}:)5pSŽo^rc w~LJgXDogHD蘹${;ɼݽ2O[x?>t+<>3f)3e—gvwŸi—|?ő%Y$`GGS?G>|gWSόc۶ )q%F+! YqdT/n|پG1S)DC!˒ S S8 \={qv8bCc v0f͊~k>>Dfqg8;3< aUPJw+R.g11)9UKٞw઩r|l(w|L|"J͊2Ò=91^ei7OjTMm1%eh3NKY6ٕ;|'$kޜu>,e26T>sN{+Mb֛Ek*&g>f3U<1W| -&q> %z3X1"KGijknr\k;OYlc8E3=IkF&ՃT \cIEL6qc&6 =o~3V#7ͻhLX˗b&'t/þGg񎍶<ߋ{Gx;1y$4G~I.?g~qO6qgg;{kq;ϟ|߹_> \4SX! 6,Vb1)HSEZv{$äR.Ts_n><\ d~tSy>,}>, Z#ĤlI/ H&|Gk,;Wa'?Gآ:y-z]V>>"">3DVmiXkO2.YŽJv63u lc+nsH1tL`sgn?|8"$[RAI& i!JRlcff SkCl^c<{0;ٌ>7'W1>=oCk%یv~?<cǏSS|ݿn߷(ɸM\z'M.X:j|v&{|{qg.{ \qpO83݃tn3>oo &"bbb&&&&&<&&'11𘟚E}q>+9OXrGWf*#3lc9!\&M.;bgsVմ՚ڳ15LZ&>q1>&&>+8T7IUT"HUCiP3ܐ1\g"tLJE'dFX=_.; Y<1*\;mj;ON8+DZךW|8+d;?ٌ`-- >[ƷzBL.HYM3 3g>nbgtJY1ր28{pLQ;{{;;qH,&øf/n W63+7 Q{|oٟ01~{s3OO;L~֙b?7u>?cϋZ>cԸ x,Lj(+'vt6s[*-g9{ KL n?}_?sRk?>.-s}_~qLf|*,xic,uV~j"#871;>~n|ýl۳=vcroW7H#o;d>'I.7c۷搿1|yo!~?}168d| ^Ϸp(3pC}\w'8O>~ afo?gU3c;;~gÌ}QW gg_8Go_o7Ì)}LEdv?s1? ) ~>܏}~s23}{?c?ŜJ?Sc>oˁM|ݘ> Wvq9k7Ҥ}ϵgώvh۳{~m7|a}OIϵqؤggی}}}1vc9'oُns;01| O}_gϏ?.3\d1y)ge>.qXoP.3q:73>?P?K}_7̎wpo?O~_a,cc>)>?g?.>.~~0Lc?aJٿ{K0߳~c92{oLnj.Hs`I5TL(x2D˛i-}hV"RuϏB?q >?У}\H:N+ʠE"-\1[>V,J\%#) "i9bbN&ad\Wɓ7s%1 dMB$G:Jr(Csٌv>lcs^ڎZPEףYY'k%D#RIG]<4&pj!s?M{I=u7/eA*,1ELGr&.1+x$QEJBŲ`]_:O55{ Y$.Sfpv: !vT/nRpqnѲ0̥q7Unin(*(pWG 9U$̖JnÀ;6eb"By.u9K61A} 1;;r#Izj/Y[I÷ EuVPBdZcg$A5]8rS/a{QCvv~q6*gxӛdlRhʰFDEVw"ȩѦMeQ9„ɋx4'?{MLlF]4WR,99JRBEs2sj6s.;1`bWO˃d J ,Üj)`5E3Y#G SUuG͉f?݊#䑖Oሶ&O*=9Սp5lʫT6{O`#e5hf2MvTdV?fq]fqt-u8U4E;JcT[MKOͤ*U ˝ VKLccLvV9*y WNr3$qwRh"M5'xF&ȡøRv"|'j'+re%oۃ 2}_&XL -K7g*8zP7p(oܑԔ~^3K„n|v&l2E\l9T"I\ ֿQ7Đo'c,8$骟)fDo $3n+c󦩧`+~9ryh 峄̚ȬE g)ggn3y^ 5O^S"ϋ/h6YV.r&c$%$Ye;w.PD6q1?`]^WO˃]d̽ V5Nv7M#glc91=f{1T~U(S8L[8P/B'gg`ΞEį+p܆WIJ E)G*19dn L$#L# C5j.?1ĬIT_`,VtS(SM~#:Xze:fu)LwWpXpGPL;7fb_w] w=|_龇 Jz^:OJ9%rSgJc{yN;p|t=37pEUôRL ګ5K>pTσ+v1m5'ȆM\b.(U -f1u26;[SmIDO~/|I䋇 ǘ1of<á΋Z&N:QHe_4@c9L3p|%6I\3=|Hj A C%'\xȐO>&Lȝ `TC-)4lnu9TEtT:K$3UQ<9sd)b2+/ixۿHМ9$V!7iX??pv*/2R&\c*l8khn;AF>>"fq`n3FGy7#h?G$b|26SBLcS7ud;͌9$7YbXͦ{46ZĜG6JG͜'WU 6B4Đo~ߤ ;<); feSJ|]p Ee#|Iަ+/aI#XluJ_6Sh&I> VQS?|6K];x ydKMC({c&*(c8[$&UYCM<&(DLIȵz|50wMܨCc)d;H 謙ɝ3@fTy>muppf͌*]1ʺ)͞Hew {׉&ggowvwq3-ܟbF궥D8]ٻHY9ȋTUAw .ݙSZj*\e3b,ĜiHS*tl.1$/aA"SSI2&Rhrb)89qo5\2JcDˆ,UWT!P̪%-ͰLcj 1?K ,uXT|hU/S42<6pݛF$EE*o #߰u;pntfy-2.11.0/.github/images/screenshot-web-detail.png000066400000000000000000016616321462047176100223050ustar00rootroot00000000000000PNG  IHDRk|bKGD pHYs  tIME 6ڕ IDATxg@ov*(U)JQDKkbKĘvKGD4Q@P@z;s " (Iٙ33gf)t+z VF,KYN~@['}Uw)'&h8\hV=]N޾;c3'AVQdc Y6Dz+.!_^˵CѬ.}:[Ok&"sAHPu՗|H1 ^<հJBٞFm6yT?nga&EbQ f]щ_vǷ17wl?S…m] ^ϢϙX}eق{w?JZ/5~K;knohsX"J:0)˳SxY?#sshX[z|IѮCΊ<6^Ŭv uRspz]Tݸϯ#Y X]HS[KzTmwۿO^ޘ᳗w}ڿr=F8WWBlnv7Wڃw O֤Ɗ<6ĉ<^dɥMԕGg1 69 ď_oDHzXZ Ϭ x /(//OO0:\y\SχI6 15UЯIzM;vb.&iFaϟN>rXAF*'U^ ßܑˌ9y<8#PoXy>QOʈ7l(KD. e+ރQUgg%,do:˞GVj'}WjA9'JKs>%hhVVF޲<~=URt+&"=?}7%RnUژ$Or;$_J ƒ1Jޱ׈-=l/&"6vlg\Cf4ttWdXb #/{f ߠ}繳Og2m&Q~nf).t+} och}UGj5T[NiY:\Iy9KdV UμK+n- W0Ш4kG=hott`8GEZ&Bkљ5Fm/LTȪZ܂! ;r 9"VhmWKi;RM%? ,YCД#j6nܓFQ5p"y{.80DDB% mK8MAY'rhFf^Vy[աfTo^|ݫ:^e@J+.0$!*HPԸmP󰔒1j؊ozy,Tr.363&~{'缗O.Ulcef;Ě=W't);oי@qљ:e\?Lـ?-=C5YԘ_Sj;szd<>**k'6luT^][QLz\_z{{]M 7nVoFVNIC+ΉxY4$xoØLSV۠Ok+s-w)|x{ c%آ}I~.: okh2MA޽AR\ZV.C.\.k6A0i_Sr|b" JKZNj^vtZJLZ ?hn JIN.5/'8).81.81.%/ HP58w Gq5VAOHPHPHPHPHPHPHPHPHPHPS\\\RRR^^.88e58C5!==]UU'BePʨO@VVa@ % W! PD |i=e_ORu'(Ǎa".|DTu@}"A|"!J ##86CUF&'zE=| |>ai^z .B!'EDxx<@|@z$T{ JkU)!0 [Ӂ6(FHPhDk A A A A A A@S'(8-k^0o붟cu} fXֈ&_ݰt;YIb3(Ga#}wDz%\y@2o|39+~umM{}3{2 &)\{|՜yzȫjhj(qs|tAbE9 Q/ m兩4xO]9tMgiif5ʨ8_; "$0%9ԘKGwT[INGmK{qQ^[mz\!*Ow؅r9msc9$;1OGϋf΃w֓߷dwq'ȠBk~0hq%Ww`t5qH;uZNA1_,=z6nl_KպrI]TF<,sN)wqii$$~|3j3f$w s(L\sֈH`>l $Z_ uoYzg`@xSogv wTb8;aSAAI Jd0CfׂG:GRPm OL) ʷ]Jz`DD|j1d-Nǭ&($ASN[{c}m-~70i )#bmǭZ>^HDdٽ7NX>Ǖϼ)1Dq,G<5_뿈' OYO o@q a:˽6K+a~(5XӉwbp74w n'<|SY/F()'H\R"""bEUWZRWhiQ?ǽ:?gy] ܋%e]=%{4#"$ܮ尿iWV*}&UӄT OSGSBO+HW0nݺu֦ZBMmE"\I$R ZȱiqҡOeO?[I+Dq &jR\58{khлՇlܒbϋMirh+.:ݪ,_GڕI~(A+/;\J0AQ- e]EF`fwkbGp[qr={i(ÒvvRx.8nV^^"SpI̱o7H?Dmmms A46xW@@s'@|0I |>t NU@S3QHPg|H$DZ,Vvx |a8kn! cO,ˊb> ##jH$*))D5$>%HEE >D222***D$aW$(*>I$XX,L@&O?E"ZC'###XHPUBUG@,,6(hZVoq.|A@@@@$($($($($($(@@@@n'Ofgg7h+ #GCmP'Nhh|"'OJP999o[fHXEHPP7q҅5#]m,,PHPGrsi'_*;XPRPzwmFJg^y[2upk6ؤÓ]]F4@jK  IDATggIJ:q'ZZN9"Xu`Hq/tu1YȼYt]$Q6qfR- H8x0vQn.9|z{ڹwJlEÖTD*J/O-}ogz/7u i ]874xxola$1Y>se~66.?w\Y-uqjk6t1Vw2w\qJֶKW%X9+e"\[w]$&I^V^]KFwoW_4osvuhkѶG" 8b5ޢOEjf8 Ih;‹^\Qڶj>?^ĕ_Yhc9q#ٷmk>O+۵s7;K k>ݻ%$~࿕{V())ٽ{wJJ T¦_;iҹoWGGK^:]yٮ4c\Z1nV3}{p/\jiؔ^=t}(?.b}o=o|"Ι YڶmP}u0Dn2}ؔ.sZ 3kZH߳{2CՒ1dsKDh qUzn:@cIhqVgFgX 7V/^ı'V<"< {?X5ʛ寖@QRȨ5jtSZxAg&5N& k]gy?MqZ8KAC@foWkQQ\o\UO*[q;ŐUV&ŋ3||~f5{{"22E'od0t(nEx&O,mbڽ{Yŧ}}ɟXf%It.ӳHs?7ċBV#gd/M<q&'8S9 G&^P;4Ո"CMu3zTx-l|fE'YbMНߧ޾=qҒ7Ks/ SkWG)z+Q_؋J+J_c44ՙ" yl:y+y1c>ۦ >ASȹf鮌|ҫ|Ql@|'qa'6ZRJyk%U05̮Qmk|%gB_0KO{TRYNGE!ϫ 'yVu!XTC1I㓌Ӂ>>j>>ɨ9)ji⌢ KU_C3 F&-TDEO=xc`Zgs -هΔיfv^ӓ|6yآRa٭M =&DDD::8X~JMm˫&K25MKm̲4*"QB-1˵:G[C#>[e߹+9L4wl]@UpAnm2CS^`ԵԒ,dӃT5_OBD HH02,!!zذݻ?2%!GݽOhS!O<>Q'ytCHk_ľ^wWPxUuU*)'z1Ή+*eU!X UT(^);y:=FHR*d<5uUg^(6;3i*yvcVZm2kgn4CA~b8hNbZ}>GeB( v#"VHZ,U!Ӭ _tcx>ebjY^S)*Q5ԕ5E3%IYl[{y)Mnb;9"N?0:8"Ӡ{ "bʾ{=ـ/婶k{7(0Kc><(0ŰC74DS-[$㝊CCt=eɦM/ZT5Jx+:-,t[=DUv#O9>Qso;'trx|sw?w}gg+ϭeӮ_ f]"bcڡO`V&֝-sյ"UfDFD/0 C[CF֭ˁSGH^{$wwh z.gƄ?*g4]"#'/qWںت2q 6prxǖU-Q1ko.- U7׺_9Kؒ"F[g=I~ÝT_x}ŪٷRq0 N:Rhb/mbf:۪r}<[Vԇ ifMLRlyc|oÕԼԼmJƝ M-Qx|zW.9w1I)_4f |9<jҢ«kfpëg:d8s>1 J_1:giyުC=.1](B.d#,[{_gF[V\"!"ijQߙb_=13jgn]޻dζ ի ںXn[~Wz$BF;xN+ 7rW}UK lߞIk۾ zrtXR8 _ " pvH7ZAu SocTlLsCK9[ĊH$08DN$n{e D$kddmã'*ݺIIX(b~ի_~ 7-GGUK.jSWm]rwP$/$I8+N"(8H(>0NK^2%Ss5k'$YcckUUS_mu˜ܴи}z}bO qoC-[&ѱ!#q,˖噚6 |Q|.{'=<9Tk?sŞOwԽ?~=}>6նF0o 8m呰߯ xDD\g8ZƽpYn\s1WUw_6.{׎l}?LIRՉ%09T"ڹ%fd$fgo'yPPJrC&v; E\m˹b <<O•= o!dD).g$SAKYմLm{B;¤sǯ t:wP:8rs/Nvp'FUU[-J޽PRK V}%)-3.4]|ڟx6('O8q^Sg6iv?wh!OKƘ˼ulrPR-T~>n}XI(ZFGPjӾk'.+JyKŤf-/^1 M ~n7Ґ_zڵ7;q.(f~iFYS1u*[1…<5ƒ3-J}|T-R_Vc!O_Ud"5X@9tPmNq~СٳgB_nTdAU8|^:]k\͠V]VNsf9w277#b*sq'OF/%%kɵ+))9t8($($~#R!~Ɣ)1<3<44kѢқ7UU㊦*O >>ruϫT) =㩩) Z5G A A A A A AW5ʺjOo(RNb| o+l @]a$VKzs555ݲe C"4W۝ҥKolVZ5iҤK.)++mذo߾u!!!ZBBB ܹ1ݳ?NMMNKK;{IJT_|tLZJfai))djWIG@] `*# !y=%&''߽{,{QF5*طo߱cʕ+Gq\ttO?tΝӧ_|YCCwgϞ?݌3;t1ݵnnn?)$+Q .L/K/Ȼ!?ɝ#G|rQi*Q~QbJS(7\ޢSNq7rׯř5ᗗ w,ȑ#D4k֬SJ0 ciigϞ?vX}ݽ^|ۼ/zճZ|~"@sI(GVbK\śً8IӧOO=)((h̙VVV}ݺukqqq嫞G9rd۶m'L`jjjjjCD355>}tg̝;&''}IOHHtɊ+LMM95zh[[[++C:u5:޻wӧO/,,ܰaʕ+srrOff7|ӱcGKKݻEEE۷755ȨOSSjy###c͚5ݺu3fW}.Pxx… tbiilٲW5kVNڶm۵kիWTOIIYreΝ---֭[WTTDDӦMk߾}۶m{k.-Ik>JMgX@}֔6{\+ǗjXN9~֠"޽3GGGw端gϞ_~8mm-Zo޼ƍw&O,455?3"-((pppյ'miiivvvzJLLebbbVZUujYlj1"&&F[[[^^>##<8sLSRRFJDzzz;wrC/{||1c233̲ݻO?ձcǾ;XijjtԩK.۷es-[,jkk&$$H3={&= ?x`РA}0%%%qqq6lHNN>\h6+QO!JT( @s%oX%q*mq>>ׯWTTܳg7_naaiӦkfggw7 ?ޱcǎ;ZhADӧO߱cٳ+ϛ7o[n->є)S[~~~՗ddd޽{Ϝ9qӧOo޼a}U,xuGX=w0Ldd[*YbEjjs޽t-3nݺ=z]x ;v׷;e׮]ѣG-\[l 6mwޅ FYPP0gΜe&$$ݾ};""Ã۾}޹s'""b֬Yy#sM~{C7SMٷ_d~~+W JDC}:mذV\٫W/##_~N8Q^^^֭[sHVݻwL2eΜ9Dcǎ;Ν;˫aêV }4eKڟg'NP("233}jcliҚڵ۾}{~~իWoܸqūW~7'O~wB%%F4Eפ$"j۶mcř3g9rnnnul%'M8Uׯ_~ҟ⤡q_)--+*錅b˲ͪ&#ЄmP1i)-㊟Im)24`K$)yZ=djfjU#m[(++xMii)I|TTTm۶wN0A,҆:TƏ36"illFD]v2dHAAǿK?}M*4*((Qrnn_I[[[;aC$| Jj *YbtZ5tCOe\~=*k$bʼF.Uq[ \Wiɍ7seD"@PC]]PK IDATONN>|kT?!//)>lצMM6D;w?/^;s挴=aKug=6aUUoUo Χ/:@{|_'٘Ȑu$Eu琳gk҈U#\{m׮]qtt_u"" g-k<>r﨤$555++ddd/^| {{jaTՕ>%&&V{)---***33*ND-[|' 7$7RR~@ȸXgkE{ZP$^ׯ_QPPvkxbmڵkŲΝ;]m Z?y>EuܹwU' ҃m>ߥK":vX,X0p@tVVV"СCV;rIjĚO:A=|mJ2s߮60ͅ8|j|K 7>C“&q~mK#Āj}o߾EEE/dddݻȑ#qܵkƏ?|𲲲7.ݿr׹t],O8ɓӦ_D4bĈ\pa"bƍI+/[rZBŋ7;jhhZ(66ˋllljp|>̙3ǎ8֯_շo_iВϟ񴱒իWjhhL>}4bM-Ays:7 I˒eޢN0Eyj~l"R}`Ev ƽo߾MD#GpP8lذ8qZ4a„^zƍiiiBo}}r͛?h֭'O¥I5dɒW._|ʕ:::b8++8af͚5p/vjٲerrtٳgK?ѣ'OO__4;;1KuSPPزeˌ3N}ZPPs޽{֭NHH(**RUUݶm[cޛƪI4>q]ݫcSM*2h.)Ƿ'Lvu}ۤ݇Z>}eYSS:"ѣojjZ:}]׮]>|XMMaÆM>sO3ӧgϞ-))|yi:BŮ]޽qqߧO]۷/<\`izܹ+Ws턄%%%Ç>AJǏ޳gOPPǏutt 6{jO ^|CCC?~߭[/wEgnNdɒAf5Y׀u]"fW]YӮY6꺮1'Q|if\P3}t>:Nu1\cM:g6m$s:{}ԣ~cmБOa?-.kN""EQ]]^,}Վh1u{gҤIӦM1W_g}KVLrt8-|IEEEJ)"jӎw^z˧?lonE=GGjݶƔ?~vA{^u{8HP*a\*I޻wogt8m;aȧd v2jDYǢLJSv.Ss^:'Lv>k] U*O~>}'d:&/9\M:VPѶì9]ۜ6eQ) ȏp|W ?E8_~κK;tpd߽ksjp8ioNcAwvR MY"H)ӽϩ;qa'Y>/Ϛq^jѻM/ZI;Fn=xn.~  G-YMgAʊ5/K_˙6jQ;v6Js!8K'0z׼9&l=w7xgQ W=ño;cM4:YhĈ3f̸HIpl4dmr&ߟAkhwzpS^wJu ^|'8q@ؼ+CN~Pۯl9d:"|uƔc(sQZ?3O>澙j5uyS M6y+/< gܿk.N\prY0n8;O~roc64:s/wqڴi?$?i\M:QPj3?<Y#+-#`|/G ;kw1w+`H%}b3oDEVhwq}>ՙw'v@L+6DҦ[ͫ %4?mK[i7.XLp8p8}B~Q JUo9 杋 &;O;h Myl)s4=7;~TiV鵋Vln9&z <\s8p8rM M=3~%غ[Mq؈V3_ŧȺH`7X}M_z:'{"p8SPrE|3w;xfߛ=p@Uk8*.)!NWӲׯ(^'ie<]~i(p8'ŏ߄\Cɿo|鉗>II{3|óTp/Zi]0p[vy5KP""4>y"[vn^p8wAo_YUgeϟU|qU}5gpZA˿z;Y$^LVPҽs/?-[ߊOqcjMu4eW27э: uKn/0sEuuuݺu^C9Ϝ'WI<7=s_:p9O~`۵ M3v5omߞ^NOmo,k/ܲOV6[6WvS>̋vg03'޼֥&)v d}3{UqM=ȑp8|'A(~<'ai,ǟq]}Uܾ{":kl *^{+ؾs^Xd^|3aۯ']'|Tk1=*"';棣ݿa6ۏo{k^ʌ/yev{p8N'o鏿p86~oʹϽSov/&,^aONÿᰝo.Gɯ6*ߤ}_9mNrKp^cV;L=͸iQ{J~*,{ կwߡ;6eU̗O_w' ݲWc<ƹEث羷~q{㆏[a}{m\0ܷkỎЧ>3zJ!پ{.df}~x/{=E\{?⁖5&w£a}QkZ/z~dye-.k*}yNҷqq]&YC0먿>#@JӴ$p jIyBv^Ⱦzmvxټ^jƻ}Ƞ x}'xN?o-GO軝Οuu<›t1CV>xƤs_cy_AI_y1Ci7sߧn5mnߧ2+BjٳC{zΙێ워s蹶ulͽ+@9O|Q3_c?N{(37_/]>iҌ2}ۉ2>'Uv^>u[~O-O?azZz{J;o A5-*l1魹ee3g/1[2/_î|~_{9L?yagciA7oc.qk]e짿sn^7x2FMꆙ?C;xS׼'>puλ>菗?_S#K~b^j%WϘ:ѾHlޣG;m{;faS,ٿ~=䝗_ {0/1^ϞqT })^]@mvם:#/uN?k>il1!-~,{~9`&W#0_N>χ}^ntp$ONWc],}_=vt+Us׽|-=~4%#:aAUu\VNo9x,PCEt됼"454m|حKnj*QuЯw1[4xK_m.Ѩ.u!9taG޻su^xqY6*,Dwm׾sވy x} ^*ysa݇ɋ~zH}#5vm6$S uK^~3 yz'Yv//4rT+Ͼv|GaFCz7 nۆ(.$ۣQ{_{wjmm>xc^qܶ}BkRoq1<fwp$֑ñ.tro}yΣGuҠV#Fw9|;/Okiڿczu+멺U*pemFP:WެvEX:Wmw?m鿯aԺ }Fˋ#z^6˵}fɯR/}T5\_[ܥߕ-]mLäJYhբǬ0kƯ߇Xp plM/=w[:9o3dp' @vO^Lm ZITݼK8Ǜg^}!C<2>>GV:ʓ~UEWV+o+4^vO\8u2 fKR5`>C/tyڥG2ro^b'c'rr; k"R7vUJ6"ddZşoQ 𭪗?Kvc~4|P.5l۝%!m]T9am|2f!|KP՘AcmLئr-?2f"(4qf ynj6` ˟kc-W_5_~Tv ¬W8/w(p8p8֟C{G-D:j2{F&OGu}O}p>?p퇍3|R^}9;ʜGoη~oݶ5佳e5j_>uIQ_=m?י'p_d2ժm+,s=+O·=Wr4sVǎj)G_/yO'OݮG>{ӎAv;oUs`"5n1%R0>ϊ nj&)}GH;z߻i~#Ͽ4/.;b^vʩ} 3.zIn>M~5)ufM"~3O2p8NA9 M4N fĪȧҭF tӓy=&p/=v!^섋n8~кR#Hk1g6oC~3YoyWO~':fSSi{igRPTyם2N=33Wv/9lH7Lٞ~KV?s/8?3ܵWMn]z5w\?zєGuA'2ԭJVrmyت[:/<_=aבR0qn~qejȶ+GU??O=#V#mwϽڼ0C'pny%#ON8WLZ{lѵfM"|Zvpx65Zp8 uKn/0sEuuuݺuW=ywnɦf?+q{TTV3u{zW=wN%''|RQQRT2I8`Oo{ო|ڴºgW|н~Aj9uvm$ IDATyqp8NA9 w$޴ǯn c47\EkG u7M{( nڰ?̼z;hW6+լTMy$Ҿ"6lC2)IY?CFH""BIY!"@|(@E s F*% b!DF, 쓤}J [FX:2"BlZE}^yur5^D }ahGE%uيE UUR_UK &QB$ZHWL-?۵EVo/H)_)BTa ڿ H I2YI%AȂ"Q KqiH4%B((`VJݨԲjYЫ7)]7¸آfehQ>2[ۇA }@A`@0iaRlH"e@8 yeۢLQk5[9T)FY_Q ,¬XP(%՘O;8v@ÀΟTߣ3KYFC #ۼ{mA빟U,̶K\m)Չ4#dY^LM}+GVAPט0J+R faaj6)Y@iylPZύR_CͣR]V S ei !/d(ْ!"+,",̒PPDhFE'0ЈhA؃R-Ls*@D/"",AZ\R  so~0^9fRD9ԏq{zoxd߼t}yXzı_eu+ӷ;?;38yI(c=ϮPwwtZ2>.At].+7\ѺQrHk`f)M8 Ce?"HgRm9-c\YkZHN5Cul806!x&LQMCu)o?\e9y DO3%-Dl)+lG(Jmk ^X5T˼ؤ>\T;)WT BDYI\o5C"PImUu;ez"XR@ 㜱XViii9plj&{]u?\ڌZL$ۮ2ө2YEC҆te"d"+Hi(("I qʛ;'@D;4 4aۤ +`a1I8l` 1Lbitb2ОRB"`80'YX+҉u$Pü~i}Po%_QKBZxЅdN#ʳZ IņlrdF`4)QZ%́yi[(<+Zl::Tesb|hY#I" A}϶KelYʨbF l Q ᐴO)3++[^٣Ғ:0UJm6(]A%wj[mhYk)uZޭCSjaa ŤHi6 aVvY2ժČbMמEHHեk0a.E+:e[߇4 IkI4Mha@n "X)1 +ז#a$3(>CNQE>APk)B@$L,Tp1$`I*l@քp66"ڨ 3qpH*=I(E&LΘȊ%%J)R%}?G> nٷWcې3-|vjF_m~>yfp^}oo7jWL}  ?~㰙7w`x|)#3>|H={ "ѣ'}%Λ-{oG|vFի߈]Bg;RZ˛ 9~* J\:h,ilSئ<՘BeXll8$960%f j "H(D[C&a-Y,)18$ (QVdR؀HU ^@N Kik+ bc؈lH*2f_LJ@`!ٯi ~ ѯI`/ˎDbHN_$IaARa>4Z{%B"$؀#pa3b8nƍ6n8#&+& cb+b!T7pPj!(op+V)pQl$ӹ֭j BxVe_X؋=(n`R5_ Z;k}‖*# @{i &Ul3AYL ;V,ۢV̗:E9B/.Vn_nZ-J-,R*f"F.X5eK{umܼ}S +_^V\^ZT ag8kLh9Y%t:UTTN ZqEQqlbߓdNǐV{!񸋀 3V [a+Z+EPA*Vek~DV(RIXAZ~~} ]6??' z0zΧ\dzl_N|Z*sunym%Os֍8?~.}ӟjYشs.v|ɓ>wSf~6~ZܿV{\t9L9n[WO>vW\qMv¡s6c{VO %Om3u?$bO [Z(i,O /g5,,Kʒ 9p65 # bP A$"!VD"!1bY&$E$r`h p^>!$ꇉX(11/ RhDBXi2I"9aXXcM0ȃQVFN$O ժ̔VZdY---)Da.&}%Y֕rp[^XVL_iԑYb0PB!aYiέwXBĈ~>zY0xJWAL$PL `DUV+wԔQTO1l3x*JC<"b0W^J/B:.JW^k/lڣ3(ҊlYX<*o$CdfQ4Ddl,1BhZ^/*u'/Oc~EV0UO71QH*(RdD {$D(}$kbQ-Ŕ2J%~q_P% c6Xb*XJb8G6K6+Fm܆L<ǹqXk:7ظ 65Je%)g(̙85y /Hd"&!8ɳx^+-0lMUȨC-F*4pѕA7__{)"MVObsG:G_?ow>{̠@~ѭO('`v_<{_gFoIt^wB/*^y?ɞS+ž{Ts|یA \!`3}MrHg.{폻7&1D-zy'4겳'X'ΜbU cɧ5tsBo }c@_mDZ9چՉh)^TEA.d /CLY lVaEca |< (G,yyBd-LV?bYbX` RD Fl1b$i6o_e˖E#(|}xǢ Al3F| DX`!)X%䫾šZ{UsS! a22a a%O+NI$JR$?U2W`H4ayIܣF*֗R@J1=mŒݹcF_*9C4KmJXX둯@`sM)]Sf/OX* Wi]S(ih=!lhbI|SD"E1WkXlo"5HqȴkEUe,Xe!lm'E:!Gzdoj5ч9ՎmU~}tmŨq{w ifЮ3ۏ}Ql|[Ik+dbPttN8&6*4d(sO %Imn)8WdI4!UHUΕL.7J4`<'Pc 1y/4) <+$-bH!UQqXY/hYe IDAT"H1)-~ߥgU9+EIJXa aiEAHK* ELi6'ncH k9+&6'6+QM6 ҁ1YX["y|\P)X# -DuU]ePSfK|- "0D Ҟc̹LKTEGmbiAs]MY]6uKvi. !fm"C/B1S+UgxI,YE"&eE7|Y^f,"nc me%++0+%9ؐM{AQ`D 3"@iMF[Fi296HS>P bg2XEdSce2wTr$E9Y5;XP̻5VRJי$Ae%hoܔ+ʕmjJ2/\|Ф8t >=T]Jv_=%w_a$=UZFF`UIWyv)NVpU&9&)ZZ'b)^U!#DcY)"  8YIv +bCHsm{Ae̋1SHP27^ #bD7m1\t}5z $Y4F;(PJP\C"Z&`p08vRheɆ"*p *ʉ1&zzt[k9Ɨ?>]=d8s{=/8Q$aAEV@BMD jQJ8<4tfKX͵϶-l5M$!&;ɗ%~ $\'Hy)&I|dɌQEhI4AhBUT ,K T(JgLAlKee(y]ƍbbIchEcRkmփ(Q$QȎ8KhL)2޹vAQӬda%6v[tYʐӬ_uOڹ?ɍ(}+^H6LiPJYXCݳ7{o]3g'7A^|ۛK+)r#F8 dtyEm =AN֔&Gk5 Js}A"֤"$FӼh8u%Lb:ruw?#ߝ-8oMn\zn;i7#Sj1D Pe 8y4" $ E4Umr¦ g(e]288AR:v;kwã@ŗ/AgtT7h\T ;Ԅ84uHeIU{kTaƏ2UNqpn,\0_GO/ۿ9^Oo[Ww|߿s?.;-7'\XǙygw~y_O>|.cB$5}deGPU~daՙ܎S7v*Cne nVX\`!;J=K j~=IA1* !Vq&W "APQ X S6&-^+u;GtCC^Ƙ5rweYt)uCY{(z.pA("̌1|`FLjBk mZFtTa"nWO>w~>)fp66ʚi/RF/CCDj V%4k@{J\ZZkZkʏD(Օa EQTIGTBE!^ ͻkR$DVWg\;:P>/^/ !5Y d{o:oc:7kRݜ d6=.K#"*4B4eB2-+o۟pk2no/s@>_^f٧'fNmNQ : źڅ*ཛྷ.ǯo\9yoeǵURQ",SAKNecs|:d,kr.}'M}f{od,G Kb&I Y}'VcJEqW)6!RڀpԎ c6%SR%3@ewWEݰڞ]*lqX~eu"~T O?[p:>/bl7;מ |"{/O|]{ޟ#g|?S?;]|')9=QwDzya/?G⓮+V?֯_So|uܗ.TPui4}??~!fn=m17dڄ:iQ k& G$$2Q&(E+@;bD&vi1 1:jO eljHD;Dh#QD10`.֐J4t4KlUJyc, B˔Xr`\( pD-}CFٰᅖFk{St`%J Aw1un\; kO(MU1-QtucD/?5hCz2@ TQ6fj/-tHEVFj$]Y Ā@=f s6H UH)ӽo7o|<5]OFL;۸C;չ@Әiг{AՂS,ǎ^} mN}Jl&w:X/SFj`$c` ZlL#AL65 ZxKl.z S6h3*IKnߵt{yJcE~o{^)YbյW=ȸP e7GU]0vԀ2$ /0OÜ<~57Vj=Z6$14$3.,Zth >dɈ rDOV>xy\R3,`$OŬZiD,ڋß:VT t~Ջ%EDP/}d׉y1/k :Qk4VzJTE%GfjjnƳ՝;Ǘ w__};oW\`?m_~ío7^=tS; ?Wݗ=16`i3w/?wY_?oz^O{K{~o/{4=񹟵w?xϾavWc?_zoO̟_o'Ϻ}Mn>vzg߽_ڄ˺Kvy>J֣,7٤kJjd*ߙu) 5XDZ(+d(Ԋg3P!&]Z.4h L@! ".pF b*]2~uqhI&xN PN%"D`1SV&I+I 0o1k#`xʃwɀN/v.좷|(O(1+4I n.-ePz)%L2Q1!FƧep;>qU^"\B3h ɐHHf6izk4Kg)U齵W#PGOf:FdĄ28$*c7g埿_M-kC;}uxx~ڗ#ZU@J"DXN>tKNOŽ{/7ͺ?0ENFVe jBC $Ja#TP1XBH$MhF"RۚE?1(5tV%S?븾O}_ռ!{o}6K(3 `:y[ųίjzh.(&tSȖb5H^s۞5̭{ӻR~i`Z7WHhλP)R4JFE|0(cD}k#;$7*#*R̬޷ "ޗW_ռR՚M;?達ۗޖ/~1)K3wPe"@^o(*2;>?^//|/O|ғ??y>G>|2ei [7'^o{w֟?Oy+~Oȏo'?o39қ_Ko o?>Coo޿7Wm~O/+? ?[?sȍ/;7??7}ܼ]֥칼_aJ\n8룝:K(mwf n2/qqQU D8AZh@@R+T 0dA(.pdn϶2p'c6Κ@%Z&aMIZR<Xڡ5qWYmkN)ކGOi2u>x?QRҪ&*̊,m9ݯ|qkx{ zj7ǢْHm2hј,W\0z ݚ{-9/4rUcE2c` t5#؄' U6Dj*rX,tj= k%ՃY, QSwBSX߉*3[a .=5gȣW>iӧ45 H@ ɷkoq>^ݲwPl/vF !P%ZnuŻ9е+@ay)Q7׌-!( 㺉!`& d>k}4Q=pP%kP7(@f)YdFGJ8}*3 APA%^$I{Ev@M#mUL8 N"Gnr wgE 4t͔@e,3G Hfₒ vFH,7ŏ]tU.#m=tg^lWԹ:U(h,)}jL BS>zI B+$>oJ>i8OL h|EfBD{> \jqJbPen_^A |GEDIf ܂+MSRg)y gG7yÇ?_{i"M5iJyg2Y#v7in훇O/O"lެ,YhlXȲ;zng 9"nj0+2tw!Եl,kgݬx-=J)%Lwx@h KL{G0ԝP3yyn=2ܤV)*I 1I*@Qf}eώfL;.WI0 Qٚuih24BU^7ޣOztwoӹup <{xq1*Rх B2pZy>_#ytw/S/BB4%"޶؛,mgg.Yv=xI5vX5SQ:*/;B BPPhRk,auR >$j%U8Aem - ҝ^Q]Yau-C!??wԇ_>n_ß/$YwH3|]O?rÃdi>NOh ,՛ڦZo{U]ys m^NΥH_8aT&AFÉ)s*BЀT)]kef]a(I˂[ײJY#4&zfK{z}źW_>|y47̀$.  ,Qs Q O6ݷ)Nœ/6\޷v[R?z[f"nDza.,yi1LbLXM"R* nJVg׮NEJȔ"5b살w& Pb0E&>e'RJM+iiL҈FU$ QKVRS)%%2A&mjUR8ȄljZ-Wv-sBRAG|O˺HW}Do~l(P0P[ ]JWN5^;/rj3=J0]PjD7,C Ƌ"aIXBJ44]ܣ(p:?QMN&CnJJǔ Q8զLBC"]b@GuמaNS\ylm>E M"BDmX`ˣju8$$"j6ʧ3OϙW1.˴f޲ԁˆp 5hH+C7[2IBG$W0%|`2o#,#E9%L۵Q9oZ+eztZcz e2@#@&"D}>ߜ8ɽAgʙJ'L:[JqoZ8S>kw{ɴ}v~,4i:fo@ DvP}!QO >lXRN#Rc=]{6"*DPUϛ^JV;<ꛈ.y;(X}KW0r`LѸQ7XvxOk7jwA"B֮KgdiU=-OVQ AGZUPbt&cP`:S͂PRd8#Y8֤We[&!OS2ekW;(:52SY82/Gꕏ\>[A72"PZ[aR= II0s =i, J#TRNVzlѤ~uqՀ BUp/̮][iL AHD;j"ޯ{86h 5+F`0ML^=7>4,ϫ+i֐ӲҊq1s[xAJݴ1F_zYd^!r?牊B"UlwW׮ͻਪUKbX`$Iٝ!u’`stAPMP"^o+U/fTD⪪8nK)ۮ;fɵ|%MbEΛa`Pcv=xv˘Ncf`ͥ}˺?^|cW|wF/Rukqcn1p[8\; fuںuc (w9VE"47((cAv8-gLYaj%9RFF֚RV%X%<"|.N#q@I׉"yH *6N(2 F6Ƶ2mw;UURkP[Xf*x>yla9'vUI+Ԣ"t'#O¥^ I!(IbӲ=ALu"BnV(J$-e&6P-\S6u#( DaLmND8Qe<4E.^ =An &Jg.H&FgS^,hϷާ5 P@P սz&gӤ{*m(, 5 4M9(pR(0#)̞}P*b1z` fP@A -ZσIr1$]CGW=2h&E55pJ U$ƶmۜU ZkDa8hF~aD(ݢ-\k{%6Q6b Dd/l&F)FsգS UZ IPK-Ë\iǏ=oVOm^seJbwQ(lbh#{1зcq^⼔W1m@\ije1&;:=:\\~tޢUIMBD0DUvqQvyˑ;HTDM객ϖ<\Ri۶y6fd];iRJ*hfJe,vXf=xaԤDsx2"E(K*e]e}4W;O_ԋα>So̦G6߼rvxp6-;6IadMqzz"x~͎Lq␵@'08pY5@!,pNhf%eU1L3o["`X`NL5XUV>D )F! Y:ZM0Ksܮƃzس@,M&uu]wcoQ5,! dp@12Af":fuR$PT~}ahq7mbZ3hvw z](*UHYJ% #o#o4D9 {J:XF7{b6Q?& "DUه=Jg=yh#}K+˓1*NȈ-alϣx>),Oe|T}QQ5vwׯݼq7)Bw0Xr8KK)^!M~M@)d"Dl-{xzhٵ{Ԟ5:4Z .p$1J 1 k0Qng7p IwJpn<GG,WX1 uX>ƘRQ3}G{K[th 9NL"8J1.}$M&Rh2M h`}ֺ$!2QVѩSys>aϼ!`*} HkT *ZtD&3X$rUS /%"cĈķWy<-iK^F١TEm0j%)`JБ%MQ#T#*KEY7̘pwzA`Q ACDaAa'*LDMr.Q" z~OO 1˧3/pmoh/G% (wQ(rč>>\?;ZthZR]0GTt=ݾx;@. q0qx9.ٵ#,S͆Sy] Su7uuAY^M4LQjBMQCpbҴM$RHEVD*IHfzp }ɃT11E*/BU=5뽽vJht÷ț2ԧ !Bt+B5ѮIG~?%"@Tʡ!Bp8r3p^<|K| 9턒Q"uR"5/H*OYfgl>^&K@<ģ*(cZ;&F4iӚ4"){^Y:o9WDdާ޺a?0 Y#` O!AIIުウ~X)BN;#3#XcoT!9&q!Qޯ^4,alywuwdfЍ(\flUz\mVf˨jԒyXj9ׇn  -Qo챓S] D"V)}PNk[;!B4 S)%QnLPlDW2 Pv)Y.D ?y˿|/f,]i]y1ዟ߳~wG|'0fe~.}s0(L8zq f8T-ڊ86H5xZVc(TU3$A>Ůzz$ӞWF5#[Sʙ"' '}$T3PvT*MgHatɌ>zO X:N4VY"S )C!Pz af.ab'=Ma097BRx;bn׾K,07ͮĥզ`ymgF fIqQǶ~jCd4ʗ)V:nng~ Eke^.ku][]; [̬#@/W\F4@QrFޢi]WL9(dy9 u<-!) 9顚25_e^i4&$3ИF4s3'z=]Ai?!J^W>}o\߿}ݍL[Z `X*d L%}}BP2P p}xy R5 saRtA:Lۨ@gx԰R%\pkH'<¢\ZTeN%Q" 8#Q߬]ͱV@;]y~{}_Rd"d=CD:ѸUKbΘf媬kbmfs 4]zQ[U $jC)$R,VmIVH5su9+^T4Wfpzd^s jEwyPa^zk,6-~W˿ys^__)EcOOƾ M̐$I: Θ0 󥂭1C͘ Wtt۫pZ0hUhF:鋗 shBM!X|gqΆ}bWh(00Lɤ5UA94@n}²j$ὣ̬F@b"cAT'%w:c HeJ|HJ ovh1bx 72ʥ"Mll|bh7m>F`Kֹe$RX!F2x"IT*+tmU=.z:g' +ˇ'F&ԺyYǻֹ߈_[Pt3af^Jq33PH-Zv\eq].U! (f]@b4zDkMYHJzate{P"3a0}I-3 \SIA=֓Pn n6_E"b١~VN_O?{n?rh\Bl7B+ wֿ7;< jRR-g~|ȷxĹa5ԩ߰G/Q q&t-o5VRFO#e!-[IMhUa)_|/˳G( J4%!7xaira#0]> Pz0[߷KMZi=0;_qdr: . F45bSP^eԈZkf'hb+mͬ٢OyQGe OitNaHE[^,!D\b|%HN֔NʆM}x^T[K֟h~pf,ஔ8GW m篞ovtZ_x{,?4źX@# "Te's3 RCYfvF"Ɋ0ow c)f̈q!2i=0p`G!!.Ѕ>MMI5͑;(DCD@[ s" :0l­kE̠S U+3g6d֩ l0$n(7֕:)`E/徭nnldžHrowgC\cY%S[?zuV3Z˄B6L>a8~i 4/vip?dw"M=jӅhdfZx\yt9L#Ϋ1Tbmy*3Ry uͮ]7u| :SP2SYf'eLZ>yPOi=TrO=ӕ/Q= !_L7?zu7i4 B5+(3"EYQ  \[/qͻ]3`/ <v#ݎG^:zD̤ة gj.|qgnYIujuՄ8`>KV7 B"I"rhURKh$ : *2+*l}\ԠTFdF5\>"Ed-X%lg:8)]nP;re%ƘPPHVLƐڀ2^>h8w  [IQhq]D1GL4zWI2*!@-V }㙉-b;[vG: nM$Cڭ\wGOKV=ǒ*ŭ8(1ȡ$hPC qr=ЖX2.BMED(H/>i?oq7ow8IMH IDAT tK NкᲜ׶b3Ʒ̮P#=-ֺ.K[<_LJXk~Bh(ˊ Fs@u82"- P?[ۀPEJo2”)zZOTLK]Eȕh1^W8~gwZC7qiT&VaZud}^tEA-Pl2a^t>}ȷO;<̘2k4t z@X0@6Lm G""ag2hgϞ/y)E2l0b*h< . Qwsi%jdmk-$9@e/_E1G=zzY3@?~Ψ-.2H 2>U$zrS,bV C)f0Tʈs5sUԬk5%ۂ\5)|4HsnuSBnS CB},JnhdMS-mo68سs;^.g^݇uo_8reu1Ej D(b3!e,0>[/ÎAV࣬ wS ?&tXW"v?N4M*Hv [nز+Veʕ f5ͩPT cW.3; ?6=)A|pޒgr<}6.z״x e].KDҕ/dPk2Nr-wTV)h0 n{;nn(\{^dmvNrRGhSO٦N5>U3 o޾9=ZZ)Qavh:\ FXW0mն#>CEr m(>bt}"zRPOi=g FFڄ^ G3Iٴ|^~W_>6+XiUf6*2ېd$)Z>zdd _V{8>?~7'o#.X+,T0$UsbuD ~[ PYҊ D*N|__Xl(€|`&&RtlUKDX]in~~.9/5S]l Iin^TfX%%%# !"3##F> g߆w9e!3ڶ6F.vևBk˺*;l=i2YI9quia 5"wh [ڈ̧rdp{31xɗo>?=߻7\w?xWwpHۼިn%Z8ܝ~:j>ьٸYRbH˔Cm@"jeJsZjKeoh#|$V`8@nCm "hbfka]0sDfYAfڌb$hD@aTewuh3#8CI3tq\On'1c>O>>']޷V>q/D E*"ЄKff"Nm=>Xj3b n(7Î3jƢη|̧Zώ &!ŽbnNu7o˥ >n@+УC=2[[VN~z$UE ysgs3IgSl-F3BsSٓzZOi=ɞ[:gb (d=b_>ǟO/e3(W FTl`DF"Bh6cHcyib[K~ XL% fG-&%eAHW/OxIJm9ٺm}73PWmζ@'8dWJ(67*A¶sn ,cfFTr"e]k=d %"M"hKj EG hye誥@PT`s-RX#~#}ٱC5k]t>ݻPKEy)7n^L—E߾oK?zzu'cFHSN cfZ2MX#y4С%[K&L 2e#3 T\sQ5j % w2bJjSn*z*4Xܼ:'g;S(fV#w#M] ";CTf$&SA@G՘zihRFԌYX-&Id,2Q\ε=E;1^H` ̈’2lcksFȤ "*-[v`W W `fb0O~nE Hх5*ix KmyiF6⒣k?ߙ~p;ݼqNamçi3M,Iqb6ƍYWIMuɡD+!YBlsdnQ``ؖtPвIqi@6+T5 NVcq(3@D%k04A13%Da8d.-PzMBJ]5h@u3G& ec*3־ݖô''c=.)KMc]]m(R&.@.RE6`1^|ʡa78PTp64Nmik[BՌ^{)e(nR eulٱzFenSuz'3Eaё󣎅n d'@oB&tFz_Iqi?x zZO2ȏ:S7^ߴ^}aX9XHBU1%9g4[ %zΨӱ_~7}ۏ;x%XidږcrzXtDbtI6;@M~K3 T0/hǹ}:s&'E֟[ Bwu\Q>/ٿ>祴`/ӍZ.Zgn$TfƚJYkFfdz ($T QMR87F\B!* Z­Nu=C9EN q# z(S eR,ղL4^F0kh3L|\4v2,+7xaۿ='n5J֟W#JfkDZu߷13C-#a$pӬW+HR5͌-Ca1 l_1s+Yn]f2t6\ju@\z?va5kV0\/Հct X@ORf CXe.|ixaz,Yb=M2<ӥ*SsAe[+a]BZB4n4h' zl^8@d0aqzSmǻwu*Dl tY&p^s5uo\N~JUoySJ<`3ۏLn,G~<4']_>IxW;'Wq[v933F徽|D AgAD豖o'ȥk`뼉x>{o;|:Ҹ5Q2z mˬiN:K7Hjؘ`)$k~OfCSFX㊏g|8Jdxz*ܹrձ}d+H#Fpv̝:xq̵ZMk%-ojBm\jj}lMUeͶf&l9?`!oT[?.w5))IZȍi&D2FjU: 6!*:*,"E[J:#W7"@2M͔ktv(~W pY2TV<6 k7??ǿt!>ZVEvI]͂19M C)cjgABwP &`H(ѯ>)DWeP},dGFEhY aeoh3&`(\y-=h'HZ TgPtLF΢#LUZ@=)Goy{tMM99А67&l;(C0:?7?%2.twlR0ݣUPOx4,QtL5\KzӔel*OQ~KYt=A$YV`vm~߿ld! nG7V2ϭ6^CX\]:~28w]WA&zBo>ymu7E!3[k⃉)nzZX DtF;#HuWrC-m'4РQ(KfZipp 0ע\AWk(Il=M qOyY5PJILHkZtEt;5mC, YP@^ND׀#Uy>._={GT m;V 3 X2dA 9]4$KZqcb*~s3].eV.>IfVTq>`Hj*ՈEVS>z&J7`NeDN1:cQ4ejY+¬5DŒ9+ ٠@@TkDcdd 9s T {5]qԛ& >];gx(Hb2Ec읓6 ЍYҪSKz.DAs\tiF%Et"5sͬR&"rf]"d,xsÑ-XvEru\X&V2I2e#= )z{h!GVHJ6i;NeR!Ua[x j>P @뼴/L}|)].Ki~WlKU -6YO Dkfc>_&vƝ,"kT&ADD0(M)Їt.z)=KیF",]mĀUNrcn{&{v;Riga;aE@i3`0fJnb˝m5}ܧb{X͒u]0ȭ ŭ{xa-s]<"X6rY٥Tcyw%m~YGA)h dl#0jO Dnt!}U![*iҝio۱Ûo|gw/ba{xԫӐID1S9%{TS݂<ӈºK[駮3}RPOi=/_w{(ؗri6pt4'"ԧ7Z/ݚn.\zYchH(:zG7wδ4l%6vqduT$7PBiF܎d*)#`tQgŋ>%e]f# 0Xe5?4z`\•Z23R PRS6dn=Fʽ1#/cm?ka}fʝrJ-Aŵg +)HE֐85V+2#G޺Ed2zhO!Pw{?!/47R,ljx?}~~gߛmg8-(M =%2TcH$# ǫv*ɻE(WEVH-5tA#‹eDm>[ `nќ07ۍeƛ <y2'V)Xc]NTfefJ2mрkΗӼ'U,n,|`|iq յ^N zMҢJJ"a* m|ܶg=f$}vzl}zqhFAFlƚ`A1J4K ЧɞdmX-3:-Y#к ;Kƛt]Gk"38lRhTy^U9MzY}~Ozgڝ 8>zrݖrd&XqZfF\ rFۛ 2A%Wߢvzˣ֢x2mIPK̝V9LCF? ^|FI-@9 "EFyHgCm6]tYgC JFm#4& a~1/w[?:P%I!=?R H>_ rRZ6d˥xmr Riݝea6ui2}̋Re.o9 IDATwôCn=yY[]/m]8b(ŀhiPYívqze}4c2ݍ`3Cf%I}DjCe:̮"J'zr6_ԃWe[e PT|ǫڗ#Ua,K#zpD",iE5Bn`zG >HuvkDa?g?$QlRg{q P+Gx43z͊%7be0hXm+Z2&mseؗ20kyVŜeDfhM Wj\2BgoB`тn}rlKE^t ` #HuB\s-E\V!guLFwG32He5q={Ms&)m}{yi B`fP3Ci280@!"W/Cm̩o7G:e>&r3E-oUk{UO}^n4s&f挔p N.swt_"!n!M4 8P0Z{߿E: ١"KId6Eb{hfR ܶ85*QC|L?LOʹ3;zyuY/u9ҝpӋW/v6|۝7?z9GrD4mo1olUsL=rse[Qaۏ1dC^i=/f<0}]SE??%tfHSfH,޻#SwXFx^k Ь.4!իQ}!yFTzV1#Ys؏L S!(j[j :539M_j<֍J /@ۣW?2 D:ʃ1n'QVELF0Afm FU%4[2J$5˖K4z|NnBV(Yۚ!*Ǚ6m!n/K5Zb o/;|Ǜ q}ߑ)("ܭ`ej5E kGZu5C?r1Vmẳ$PluTfhguhZEFc:j#1'Z0lH!$3RP*B.=N\Y-bQYmw=c R4RbWe={X/vYbLf본x}q`I|`۝M(nGYS/?~ⳏ_q'ieC5KYZ뱴u C<+̬nK`_~zWOc_xӳj3h3f~z\ǛhnssMROKv^X}I us'id!08ZSdZ` >xJ08>Dս5 ~ݯq_SPM2gͅPnn;Y9۫}i[;?mb;CE \ƃ_ߔׯU-5GFNסG{lAK)nA+?Yn5 C4fn֏ a&L Yl#`z$ S%VA34Sج0عY i>FnX29Ϙ)ń!L~N]9̌ci5Xr[ w :r+i+mB4"&)-IgV3HjQ wɖ4mj50 TwJ[&T3rVKvtM9/[>=h6ý3)su3ft{sԥ)E#8JHI̳52"WjC;Rv Fg9#Y-cw"xgݯ ^:ӠGǬ ɂ,ØhuNg۝mmΧg\f_8A1Q2Zlܔ8ԢGCl64.US\x+M iP('&(͑ ^|s~>A{_oo.w7f|q)sG^]ǀxM}[0gDD*XXݙ 6\?0됈4#tvHT[}IŢn⨧!jaK_+6_ph9hs_oi"UG}^X ]ɧ|I}Iy>"0P)ǫUc;D>"/68Ln5_KKF,/quÈHIQ:x+}YX.dBwBA}Y9 Y$s X"[JBp9ЊH ԠHV+*"Ь_ޠ~v$fUZ!z؊"pI/%\|D(XG>_6OB4H(T4{LLH0`Xjw؜՗^)gE#`eueKЊQFN VZ0F@R <h٣aYA۔A.,6_^};?}>}ն=܆mMG"JiBKV[U"^N[:gB`"by}F '2A"C}&C4]0"mkTd ]RBH*ⰥkU3[K_$h `rdU#lYM<&%͈#+-L)f0aVͳ ܴ8N7,8 ݜ(ђ*2\ w\lNu<ӗ_| OQëq[uken5TF5 :\z1䀖shhN,=Y8r}v>D/3̏$x jM7uF^!6 d C&dzk!K!]a&h|8\~o~ iI9nYXq07ZNhZDHa0xCI2|M"inG;GmJ "%8_?g۽dPynnzox{p|K4xt> &|Lq&FQn0Er^us`yb, 1 JRE6atwZmf2"i|s?sU.l*VjVŲ\l^L&dCA!I$ ta!ྭ>yUxch-?z7ynBut?L#% %qWH_$>NԽzd`+["\]Tjx9@ڤZcsvgh6FzŪV7Hכ|^+P\|aމz{tC5dS|tqx;<0.q>XL)4-#;ߠD@ee6.n,і9["͘4P (ۉin$:6Cm4)M8R5|(O/wxwݴq-K9f6M^0R_#PKTYNBn YJKIcǸy͛Kř|%KKB9iG{ O,%rBs D' KT*%9IZ4uXX#<͈aWxy$EтPoł!q+fN+PaOA- !DATSFNcʆ0Rc$B 86[}PPRH S, ^rD:2,^ś06N ^A v,6l:߃Hn6V<<;;^ǜu[,4~u?wxl e}=uCe#l* vH]|}KfXfKj`ˌ4Kj֝YEp :ih;عQ=q#*yk\?'=kMy4rJq BټK d6a<\\?ٛߵxț19O)(V19B5P/Ԣ!Mnm]}>kA Mi"wo g 7͗{ʧg{́dV4ՕɖC;\gZU\ֿ?LQy+57iko}b5W7yo^vӣQJZOR ջɎ`0죿R_~| (Yr|XoWΞ\*C@%ܞQaLmPU,Gǯ`nnyqn|Ì6kW{ƚnl/s.S:=/ Вv}98\gM:F7~p9_)_Ds.DSwHRSvus;Wm puE9\m2z2>!"$)KxcQl]"H(5nj8@D IVp-ouy{֖)}Z-Xc~ {$9n^_ g<==q䱵c3Fd(Hn0B^.RLD]s3Mm3 wO e$hJȻc\>D'Ц֠PȊt+oo79_͇}|0Wi?aԱ ZUo}?xYяX̺QrǂڀH-s.eII#cf=X*]Z)k bOmӜ#mG ~ݯh^WUkveڕK9, 45AiTq^iiPF6㈧0cgڒwle0}+Wn9K~FvuZyO{׉l~xRQ(}L)Ƕ\}[zbffN̰aC>ԫ}p4Xf!G vH`eJP20AADuKbA0M6Log櫛m9njZ݌m*_^g/|zx}W9so= g3 g̣FyItudn fu|};PJn^7!vcxZD+m̶gg<[) 6- 42OЎ\:3{=?ĝw{˥OQJd'.b*ebH9?UT' Mͽ Hxo,SbRt[z3t!5+>;6>MioQ߸h}XjPh)3퉹+ˋJEY# =yXÄy)b3VKjTd&Mp/W/}[tȖ%[x񰜟Ts;2f Jx|58y 3cagRŠhivi'Hfq~Ӝft' XY*")uj14Y`;؜bwα2-'uNJ$xOyy3u6A n*.>L9!dn*$D#P&JhGp`ҎsMރzfN'[tXt3 >U:'bQ4C℥ҒDX wf2 ́0K"B&1chڑ0q{ySq}hI8)pZ^+XܪyT$ZD@A!vH{ff7" UZPĩE";X~{bK5qn_?iG̗q8hm7! JJ!JjeZuWَ|?{{Vv9֯⌌TJin옛a۲g7[KOxj#@Z.u[LFyNVoSd&% :іӡ y(Ћ[My)̀ơ K.pĬo lU;i<쿤PK԰߃):/q*1LǷ/ mj:!c32!!sw+ 2`P RwtS,Ϸ\ъӬXziҔʎQ&ڜ g WOή~+/>zYZ\2cD6yyߞЎmspgЫw<\[zi$%v}g- ^guxy:QCrcu袙*BJ 8v#q:L3z\EeBQ#o֋/~ӿW?_?~']͇Q?A k=zr~w#,[b-84zKr)MQ_|&rO3py˛4MdLcq$ IDATGX}$l?B ^YPPf?3Zod]\TݠdDqԂZX܋%V  LhisQb@Skٯ i\JI1SKgNn:_ )cB'_=Z=z䆺@,蝼:ABX bxp CbWA)z7 ;4Sݝ3nԝy,ifפ؜9cc:bs57^<1,KfTԁX4v衆 Ѹxs"3 "Ra&!~`w+W7fo/Ms`uzyX~Os=E!YǦhWy&ɬW/eP/Jffչڦ 2 %c݌hӑ;J߮ԏZ7_|/^o~zooo~K߯?م?Tʤ?._w~?{_CX(?O3HClf%XUn-" ! ΰp?ċz10UX&vZ|,'D ݍf}˝;maRPb͸d@6匜08v\;^E,z*Xc:kN'p8H$nx}ૃ>5pcjZwРu`' VޓD-Z9ʵ j#ùQx]w?|lx+绋U#lX6Ӌ>N]qxJ}̓/|i1HMఓv+;ө|v8yBr O[iPpBF;FNj`*OJ-SLg ,9ޔPW$_#S%$v]ZX10,bd$@E=:74&S Q *E}TX$JŰ{R =M-m4'yi>M *Ble$)Vshoqw/g^/ĝq ljtx] !Mr0ml _7ϮG/{Ä$1dА9;8жɍ[%a Ť-d%î,i]3`Ɩe؏|8^N؎$jBfy5/z~Φis}O?=~>}yG/dn",bfp̘ESx}i l0eP.g& $v~+#QL~6,w97qV<'+6[$2y6h6ZI%@*L[5`UT˓TB\dPjOڪr?5u9b SJ[4-0ɒnhpC9a91PVDW 0NG+S)D3WjL-ʄ/[.;RX4ENq4ba3ZSITPPJ!K5/"FrY[6Oӛ< !M̺ (hUy|-//>{ᰙ|im\vNjviMWWǛîP0 rnl$R1O֢L3m|?& |)JbH^*(D$.5 7gus:c'Br3PN6Hl'i~_gk}+_?C!$F}[[o}k_P? 9TRп}>H8tm{B.٨bh)v䲣5"?y38iѕ[D=7Z18 Ut3]Hy 0 ,T9n~󶿼*/~T9)RjL6gI&]fI[$K)CT3=H%B0EBŘ18'(7!{__g3bk(pۏ% M,Q:m!207;r{?~WO}")S9P% h)>7B/2Ԗmr~p: ܮU"P &1_@̓>Y2h4+XY84JSvݳK_={?[oo/6 A6,u7{XK O,lN:Zm-go뽠iw-!a"@(d̻-@K0+L!}1}E(+d Z dk]'v)Cj%[r4&\ӔDTÜ>3 Dr f@b(^qL.U":d֠fQ@[2`ȤXI$6Ef*chD DB*2# -(Dq+nY+菭4#bxG?psܶy,&Z5wr,o\Wg/_xk3t}Eւp \Yv6a߮}ڞ[%~bl~;Nep~:bZY`^~@#F,%AY)p';1$Ye[fs"oe_e,C[ ~ݯUD!{uo܋Q?}e43g(T) ln:~Z'aa P֖(/Ʊ>AmAY?fCș$ȁ\Ǩ[N{ ZVYQp&a`$AuDD1&6x-$ua}W K),ā@CPclTSyx g$S&~uPT'jAnuWop=ȥx t-3_h֗6/o.qb FaGtj3UVll"K,ӗh'sP?oWƿ9Lo Qp~7ooo7ͯ~O?xi?xe+iv30#S2#M櫤 2L ffi'0 6>Y* ]{9b!L5~w~j3mZiuɦ0RpIHm* #ShقrJv7~?|jVXr6~|Gfp.UH)N7dN TE>]p7:0yR Zғtgvu^G:r@`1-=ekyz:v}ZyKl_%@I^ۥN-TyRi{{89:֏0XTJ- * 8< Q8O9ۿsNׯ5{l;MǫsȆaW/.`zHCV~J4s;yHd}Eb20HR$< eR-[10춻6_MQ9u?g_ռ|R_u_/~BiVD,]P*2C }r3ܼvKPH yPQ1e4I l6֐H[Yil'BX~v; oZ7X;/Y'n [<5i)6E߬豎@$3ڴq<vo ޽h=bD"T˻2X8^K'\'tyn9`Ba"m@!؉[<~ȷؗ/cyaְum՚>bb6$4GhRFq.=[SR/^?qڏ8{B,5P(TYpq]&i"#1w uBu%En(@ Ԥ~m` LPe?>x<ȳ2^<0 x=0oB7WΦ`InK-jqGU׭][ϧ)^kCXцx!sJ fcNU&#%aivKMEmzO,]1W_vK/-3Oq>kcA:b8 [.ڵ OS9Y2Y- ti TICvv7:>dm4+}u745"j 9#PRZODӠr 9iudZzք.x{y'qOeYWP'?_5C?ny5?/?^|g__ ~_gX>O?x_==?k[?*^Au'7GGKD ox'~~ᾂP{PuͻNJ/%AB5&I,Z3ͳq`U%X"0h]KA]A$eNilmo.Ї_("2x6^6n(aC(a[ЅHJ:S]XGԝQJqV:PPTERm98\ꥃ/cqwvNLf=0*:Ln,ɇ u4OU r* n\[o/}@o^+Wxp4Y?XY""fkO/1bK:xU'x6tɓ+k&&a5RDD zcJb0JaQEHL((h4G8~ڠ8T5jcީiyϟ>x=Zժ/.bحleN.[CG sΊLQƓT?{~z܍Xw8Usw~}=p"**pPɭ/)hzL&ւGE"D:Bw{Q@ڨ pRqsTMgxj_u6 uȹLfQę6~a+{hMN;߮kC=Y0(75'${lj/`)}PхžJ׏>zOcw:Z&֭]nՅH޹3BБ;;L}*^Z sE_0^ ȠХ~J]=;NzQ+[;#lQHK2`pBM`RP#^=rV}%i^绢"7]znӟP(=~z ^_uO/xvuG>k^Kw?O^_3/__>+?|eB[z\Znݺ8֭[軿^M TQO^Z'wf>e4A[6ɢ*,ʂp| ;|Rb ġ* IƚjOs4?ċ`u$Q$0$T!PUQF*DUa @TkXEj7޻dHY( BLdYyߕ}.86{A IDAT*-\pOdýV k# <# R L|ý Z1qn|VtPy.P' *}:b,gN"$ ERZe{NRmFg}IbSi9y~˯=xpL}έ\A>PU"mN4NEݥZC*m7z-Ң-,e;H/l}ɽ\7ge7p&www`ֺ"s[[PRj HR|NT5EW)$[6.ȧ=og|}/ާ>'?{dI/yc/I ?>vE~3G~~']{cG_R鯽61qkq\(] X.oIAN;Dcve |^R##GH8FRea3e"Y*N$HHTs#~}#J&ǁ0YM=o *R_24m B!QiTQ qXj]@ I\lB-/+WxSS)aByN3O(85J&FB 5MFtуi7CE,-.j*if_p,m Yfٰlc:sD:KMG^$hAkhն/ ^ٯW~U{!o=N`u1peڬe {Bvhs;sV@R 0 +8Ȧ9t/K NwrAXŁp&YapVhe.`8X/e/e=hb12bq(4ЀhV$w LZLՠ635ALDU5`t& 9Z\wOGWZx%Ѻ61ER@ $h*QE+00óC4! Cͪ!$8m<4F -zȍa2 VwPHռZ^ʋǺwYS#י_-lq{E|?^!ʻmg#'6W/]~="an""7>s@-oEN ̢-gTQ2AH0jDWI ^) })O~~hA^YsR@p &{0hyTڴYo,%iHl\ed?IjD&5+Ll-`D"P4 _%'1PYŧ Ȫ9%>3C؂q?d"FiΖ4) zI2T=*ɴ(D.0YGc\>Mw7Oo+G1z :TZ^L:lDV'X+$F7:lmYj]94HԜT.ݲY^wLHILbCsHɜ-,SU")U./òJ>>'fo#[AW^[|??]~S?|?~Kto/PyQ5{MY^ˮq SVP6W4:ms5bP%v3/'(H1U.|JU4 p A xObU9ס"տ݇ fx.p:DRksiI*@$ ZƤamJB"Z#uJya`瞖zp$ukGj=wggp}È"@%ԌLq˫tݵ+\l~eA=ȱҚIL-CV1Qz#!{ p4Lh+qՓ'~*!id)`(g¬͜P). <\3QkL*>XGto*u--FzDTATJ ,k~۟,OuyZ}NFI[+׺gvgwCxM%Z$`"4!wRb7 ~g/ zp{{GzSs.%hJe7!"ILjUEQ4&ɢKR%$N V3N$͎Y-^Sղp 40ch5#X AHPIjM-τoe8LT 5@RTƒB1Q{1AK4yH0hSPaAAMEB]cݲjsuG IVq˘`NTPp$$ Qj0! .^GB.^;}vvkӛzvRN޽gk<6 *Y-ayH %_KG^=e\\VdJrfF0lVBL"Gʸҗ),̑fbjgPI)U...ζ}*D Dz}!A7ů1½u:MȦ*JaCN$ D4emA<MH6Ph9]TB*1l[/elFܾ~_B(wiԱP+׻nQݸnVuI2YEEkO_󶓓҇ o9_c㮎~ڝ̦o&J;Q5N-Ӑ b&}@LdzM%Mj A1TDtOޛafQK:j {>FP_ i׈"mGT/T.>_'McqR_t{Mw94"1Q_H$3@2\LU5"܃R D@CΒD2.ÐBO*tGZ؁ࡣ%z}&ccH`/C'*!\`bZçNJiaEsH$ɢ&5Y`90}t[ '^2ii)tֹbRH˦Fe?`^do/>?z'?G?oypn7,{̓EGc_EUvD2군Hg#U>uJT >u˺oFb+Ar Xhl\fSR ͪK;]TV/ԕȽ*sht0 yS۩lK0Ƀԡ2am\px+'gI VA IA@#OL43w2OUq7f;w۷S}9[Ƃ4d ׏/\j+x0] _/WMU#)L(.T]mXzE!=pun.$/ҖSI4 &nH0Iꆱu3:Y&E*E2 #q5ͼtmqt}4]'S܇FC%(^rFzЮRZAYTת*3J7\K\GD/ap!4*&K>Z{dmƅ(=o3߇~'~o~P Ox+gtO|'\ݾ⥟ *u<~+^_7>m[Oby3xFЏ{?z^y}@/~Wg)h^ Ƽ:D`\v@"[p F"`0ܩtKG$C 5m<]?m (CQ)I]|P C%Dՙ68sj) ):l&͓tuAj"^^Yr#H:&#eɌqn$8TTl'],t%r`Hi`'LUsNקÃt|9<ȹgpuK'[C2%Y#q43-3$Wz_l8z=ljsgW\K)1YKNSN8|v؜-epa4#M7cPu2Z)˜l(HbӱDTG۴bF&RNf9(nˆ$ դX0"L0J ~|z/~C\_y[W(TʁvPyŜ̲T>)Z;/O?˓;w|Ͼox앗K]kn3ciاP :Q'@1HElm !QCxdն/an:iZNy`hh~R2@QM5#@\ΌH$eHDFT/` bJo]Nw:}=I$,IpB ,:n.Rt:7rNB 4aiL, & 2:0‘SIbideE'iBȢxTdΏZ5+٢E֩p2 AV>$i{PV+g/Kty_eG?竾͟~_O}w|Wo~O9^fW|?/_~?#/7MFu_DzO%4floL1(zaA)| ""iC@iAN;@w`'0x4oa M :M ڦb 4Sc | Z)}{PP4&$˳( ourtݐ]ֳ^OU]NtEZzT'p)6x*QEd6"PmE]N@0"k "-["ZIS&S[4 'dʨFQE$lj]w;|f}aΤ;ۥRzʲ̲;#e;'m<}9)۝ ܝ%ܑ5~q)B%""g;uu"Qz{Ǘ8G_ݽ:MQ=V6ՙYJ (p.GeeLJ&R~m?^7O͇Wn,aURi;hgόPb-T+# ]=]/W|???s3C'~O~ ~4t  lA/,wɒվ4QyJ)t.P(ˤZ.vwN#JRD-KLw5 a+, R:Iqxyxe2zTDV>rs鯕y,XٕuiyǓ;:=q 9y25)C-xt(\NÀ) ˤ""tRļ*= skn8 g}j2wڕuWPho~_kZG/4_]S|ꟼuc_Eԇ'܅4"YgQ"JX1#4m1j{ ]╕Q>2&p'31]C"ɭDX+xj*B)Rzſ*9Qd/)?TrH T*"czw2>u8Lqm):r\PFv8T_DEt^؝NTJTAX H\lFb1kB,\2E YhML=-چC-@рe:R*!GY Xzdtw|Z/m@Н SQeKmHZb̾\(S}Y{38a( NFќgg1h1# lH,FN)i ]L!=snV}ǂᵎ0‚,Gqh$tkNJB=̬XΖ_ڗz6M XBNɡWvtOr̸[OuI:GC$%N>c7eQ>B,{?^?zj~i,hDuاYdQj *,!#UAoCjʦl IDAT˲#dKyhb{gڌW41f?)^Q6%fn#6{,EXk,Yg9]]f`{ Ŭ+ 1QjC:N-Uh Q2baHڹu!sHW˜;3&eswZ2hH _Z/wOv"(p3}a8XV>,z-"N_ѕ Z UaC࡛7jmG_;'^: gcDd4#{wY.Rs>8tzSwlj"s#X| %B ad)a솳ݰS#d/GF3̟+~u[Oܹsr_{&L CDXRde:JPB D>舢,¨uI5& %5D(F"DF.^ۿ,x~u_}.YbUSe ^ۺ[I0(+e1tCn}zl<ƲvIJQ>9R5[2b!Y2K"JClGI3XI ЉIF$Ѭ!ZLƔ Q`Mf%*T4if 'KxPNφxopԝ׾Fr,qlM0X3y @G6ʙ6'߬_DEl5M!c`-=_W%ܸzn\>j)(ڂ4*۳vSg[wָ;\dC`+̺'Ge5S?gwo^9z˖}we.T:2$煦t㴜cܩzWWF5Z_{γw]ֈuƿťK*b)TGUbC>֑ZLYSw5!j4ݚh3HQduQЃf5h+Nнb ɮxh9lJ/s*fd=V%\:LWoﮞWƲʺՏz\I)W]SĺI;DQ`WxRCS"@ $P(" $e%$$hf Jkȹ5!Z BJAFGӳ;w.O񶗚L3X-HWm6qqwC5d&Q=hkA0pd4j[=KBRTn\Oz+>e׏z>|uVKYrk.:UQ6ukQ0]ܗqwml3v]<{{zO}fwѫU("jIԚv-XGe!bIQy>@4d<%}7D76?.-=!ʽ? A/%pCkz9vqP^GkH,X&8::&5%3` H etŢ. sj95uswmMWΔ"i+#E'9B;nON|b6XH U"YJjd/JD;] a# #|Ue&lrÅ-TΙuۑ%\j ! R03f)/WY)AAG %E23AuwgitpAVF;Q |>7k^MD_/nuKsLP<22OX.-CG"^>˼Y. #B& #R2@Os^S_WWOou50:IE@ԗsh* M5d87CB yEFH1jUP L@0%KIis@ 2\0H@⯶NS+U ϰ(kn\ g8곿@~CX+@zյj} "i0.h`#(%8tRp!6y KֻfY:;h9 jQ$i(2V1PƂ:B4fPeBL,*(#U%LIh2[yMU\PcYX$iҚMZre[s䂈M6*¤ dTK̠3[I h'LaBEU$B/Ѩ Km1MzN&; Є!lU,"(0X߼6߽^@_eNw&0Tmm('&ր*0h4 c~o[~|{o~w~=;߼y{?￴$%n  <\V%n᧣/91|ޣ_lpw_/Z)V2KvV-ޘѝE )jLD@}*%$VOZG$EQ =FיwGDI%&\yӻO^ImRGϷ*b}-ih)u%VcP2;*h^WRDϢ^B4%X* Ga0.SWI.t $ECS,vj S41jR |TX (`'E B%`0yՕ #F1G}UHٕn%"onxs1!4)aR+7ʐbA4b5eh:Dj2X)IY"m>̧ҧ#[#~9|-2t_*`7ԛzSotTĴ'[Q( OHB@ݦC2|Boo&E*6mp'9jjCZI 3)HfKh Y6CU2Ւ0gƙ1 fN+EVԪcpgt,KJ.PW\kJ $l_! Qbh!E\RM<,X#~!'Lϧ#n<^IK X5l!HB4&ZG+CjRIWq" D)H%P6 ""PS|vD ~/jG4ݸx{>ӭ üظa43dq}H*=W(R檺}\]|lnO?Ϟ}mo?]3~4<,?*y[+TBUE"F'?i&bj3pǏK_g/wD>?zMR}R!>"ZLbVqQ0:ٖnFfUG *H"bKfQI -}K~:lust@p\vA뛻OArh%a$CHx*u]dPL)6Z丮^M.Ryu{,녯wy*L2j9ODbZu#W0,=Lq,Mdb zRpRqɊA"ǩNr8=ULn2VSȴZɃPG*і͙ t]#ݏ CsF=N` pdipqgmiE%UҬ,]9)) Qe *UQ5aƛM|k>! Dwui,;K~!tPoMz&1HYu~" R22 @:OD,8,):6^t6hZ h=mQTdARl`.HA DtdC̈~B,gRr0z`|mc\XxzM+ù(  RVfpAĽ\bz UO!u|YR[I1r \GBb 7բ ypمTAh Y*!K`0w[Ș6_9'U)U0VJdԊ&.U(4H,RC0ٕH "JSSI"lRUMt\xw|qbò}P0UQ)-JJ@BE̤(e0 Ѵ dFHZQ+*C)\B4.YRF+:nwprx)ۭeZU@a'D!`R8Z4n<__o}o|wn_?_on󍿘ng{<(FO-e_,m;Ԋef )zx{ja?W{{f"ٱP}@PS$L]gpV`X1nh EL5Wq*%1_ .L\^KվpE-4'N)r%KtxځSoBluIP:5׫}1 ^^wOd0j*cW~L"s5=D3ޙ< vaZt{gdI&:4SU;}m 0 pk}5"r} eAxrw5^]:픟A +C*C^L}4/z i˲ ?AK$^@}%\Z+ PmT=qVv_nToR ^@=Tqz%$0LRT1A)V`Y9)Ųoz+NNtim Onlb^62MXlSadi&du]7Rt #&%i\w'U&MsXZێv\W|y'vWԱH Ed,:fQ*ЁZa`:AчC| 3ҘsqS0^1·܌z}mT#b0% ]T[ZBriַ[WW~?~{ws e>vSw< )I%UiPZK]Pѱmo˿|;~}9??>x=x'B4kL)sd+PZj-'YbbӺ^!Ej8(PjEsWK($a] .Ŀ.C6*z]UoLJj6tRmm6)*Ty6oV:;3Ad0S:zFk6DFv˘}EGl" fA$5eu)z'T+Os)|xmo=" )%<>gbjAx5v$rv[Kf[V HB)~&RIC:&f{ޣx?G;>n7O|6?]Ǔᵔ 0@~+V(֩@lRv#! .If뗒ue}X+@8DPZ&_R01C Sa2@+ETmjL^MP".|`pH{UyaSј֚M&/nOjP Uvr]/1Ly֦i:|gߚ}_zXtHN}#h%W.hIZTi@W!2,b{'YD0TtX2\OPԌ2MaZ;!ČLĪp.KUEzSoMAių#}$HPMDGX작RtwZJteu/eb! r')cJ_biG9:BE8ﲽ9Y,n!d 6B/(} 8)F^% Vt['qkx{Ox~(> l`yyc }@m.^QrGP!$JiZ:.%S/2r|$Ës;.vІ CڤsFWꐨ Θn@Y\iA-" W_dM+ @eO Ngg9O4ŕdmuaP3kY<|<y7>2NEYV6f#hԾglf"=ӽs֬3mIf Icrd6wH_zv> ֢tplPle;ŋiFnghe1"P%&:2U3D%i?ۿ/7>?gϾ4ώ/Ƿ~Xfa-e&aL0ʮ`k8L|?7n"oygOQGZ՜JPIQ\LM-1!CmSTQy_6d.$hh$ [U&]j]*i$sk{Ak]+jy㮝)QG#0aUh*C)*dX.S+/f5XVxD V_' ~ K>_BJO4flByC[wժ !Dpy僖!;Hd@2ŒXYQ|yTdF>mx3}zec݌l1;izyonwz/au2QꄦdXh~~r1t0)N5@,{akؒi?؟ͣ8 ./q;KFIzUn}w]MHHzkf_f9e>/-VD휱D,$`P.rV2gOpwFЄ}/o}o?ܽU6y䌢ԁHo":^ ֢x9c}}>o)o}t7_~og|ځ ] Eajkn/׵IdT5IR+ iM{sʈp5wF Izy:,oP,+emRX%l!-UKK "=O6srzN Qٕ D ewY5"(r$>\0HNh9/#A*My6rT^\h ԇPmۢOv~;69ÑP:ZMK ۽meGn,wXNP8:Z %|ɔ*}<܎#,&N E T<}~!"PBN˒J)uϧMiL8={3{ J8dDL+ gыdҔMԛ.Xx4,IɄM[~IF2@QkTE9`Lc~mke>Lg3`R@Ѥ&3ێ.m]1sVsԣVmge_HD2U;7q1'XhgF*)Zt!_stX-]kȉqΘ0D1m.!DM9h7DCq/I.!T\rv|3CT!ZE h,s&1@w!]I"m:S_nx~xaS7@IXx̛OmsD'au13T'ld.ig󣏣jV nnrwfҎ~~V$| 5K}9E;D[e:ej-K ̅ 2bZ J1+P!= mN6 [eTk (菞9᣺s5m<IUR$ZakVN'"fjU  R"n7b-03dB`ƍH;Cs11 @:h5Zm|a)vf9̘uDh184=͇ߴgo鷾T)Lj jdCSW}ɼ6n~70G+BN"1=d("[R#)*TLLM2E%}nMHgpV,W}90U}nd WZ@g" dDjA]a_jU;b* I-Wdp]9 uVWUJDv:Hr/0듨ܚmǴ?Gaa_Y<0qp˫0lL@fdЃ7cNG dcݔbwoH!ua_wwj$zKdFRq\0yR5ޚi΄.٪^5%VKJMLL ZbX ̍~`"\>ѐuexYtSo:7-o)y/VL3\x!pP2 He ޥX Bؐ Gđ~ڍS9ɴKhB!PM8+4ȉ.~L?6Sm7DJaF:!3"Xe=@#J*%')}#E49&7¼k#u=؇вJ93c)Dva33ICr`6f=^QSۊMV@%d[—hSm>t8ZN%4Ms\Zd\\I\M/RzuwacT K2CƓ+yNmK)۲mq3E"f?殔n0"PS!pu9>}q則;=˧7nZf-0;ZJ&D6)v~9ykZn"[qvvf={i j-ZK&0:D%U$%[6 *%UIJ';_y׶_R(T CGC\3m;"2d l-& :LrX)K5u3G˅8Lm{^2CKӈEy6;~'Xk11ϥoo/O>z0%o0$( LjDbEmsUi2{Lr5CdM#}VK;W*9ҙ XIr\V9d˚cmj;L~I& RE`2׬p"E*` (yɤxb+E (YQ )[ ݑLD"C'⺤\. lB_,R#o>]hciH)k2@̌p9{:aEscK!eq|ӍH_׌"eHoǟ3Ifܿ"3BM0 lCyp ;ga:e3lvRJGFEs6d.hV askcW;͒ Z07ԛzSo2u[ /6饨Z,8}!LɈAI1hL-X RbQ09yBnj6#3<#2J ZdhTj11iYfBR\Zj6M!5\j"R@M 1!2;YHg~h(Rq1 ̥EpV\&Fg:9cJ?G;d;f;33;+L'iV+EuUxe7cNIY;\{,#Ha0Cr֜Hwy:NǗَ6%,KFJM:=ѥhl\9'5ghj$NXXrDʉ8"Τhzhc$N N8qfbYzwoS/̷3׏wşyd KU MAIͨEI3ts4Q(!~JةUR2[ǁA&Qkٓ c&sCsET;Q<ޭSLTU^1<TAHmm UdIj{,bϋWH&*)#KtZ^va{MKA-h'#vM淽*ܤ9杄K`[7|OF/~|v}88q4a X:0qTRzrW:GzcSV£yI& @-Vo틗^ $KmAQtj0ILvOܧO OKV_}bǾV77JFp("jE)QDg9*Ct Q7z}^:C,9!LmQ[A\ESͩfE%EJL4qb=ގZ}VU= Eov Ycm6G9պVZA %dO%s\[H 1Zrrl \3+2c8mnm!Q "6獊Ws+4e_z=iknraC4F _.^QQ<"Hu7pjv % bĽA-cwP D-4V D!PEQz20?==?nǻK+xU0ͽZm!H4 /ne}|< X3y+|9l$,m9{hUڷY$CԬњILң`~^=ŸXNzݥWޘ?{œ/sXmuK1'i7ڄ1BIKHTF) >])iߐ*h9*A^@Q5.>[F)q:TC Aaǣ(SDRPsSսykޯy7F!YËZ36ImzYiIq2ƔlsC@BHp+cXKєM,IIʨbSV{u-wwvu"m:{=yk7 S͉P-uuL"ՒKD_*~tD@ KU0 XRW,2  )b(D%JSԇ(ǏOxxYnr*Q}H EB23n͋Kڰ`ħۓ78KD`U 2=2 Uxoc4QiIaD Upa+. 2 ѭgX%Ⱥ5-{X{Bk~)ME9KJHY1c4 ,K2nZn'O~"Γ'8`+~UeC([QU&NDh㸛&w# x뼔i̻8,( 9&.!J(ͣBFNc]<~0 h?(Z j 0 7Yˇ徦SlYOX~W?cVr~?o<[$pV ^azDdBq.,pM*KJT3Q XBclyHܲ}_c [*U6?7xlY9UMP(!ѸBM5-#"TعB*TMF*3'ݼKڮ#t[ ycx+Bhdmh "E4Fq´:]տH9YO$+?8ZW2^x:Et̖F#;9jE])8jN$+@[1djw:׈pPMSRw}AJ<#\TTGN &Mqzx|O\tx(R&sSק㱶x,0d w6twP"# y>Fy=y}~܏7ue\$DC(ѡIf [O`є E<'iːsJ9|n}1ṙX4 ºG)mp]nH!Sy 65Hȏ,"<`AdIvk߿ ~SqTwFKsoOy֓g7d>z(4/BwO~v;v{'Ks96l4z# DUW0#Rc{]A>DѐD}K,0 BSPEt4*"V$KM[N&) + ( j*xSU*TZZL"I4e3I& ÃRUPE24`jyJZ_ 9xj롵ZB6<&.;Ȏ2$I.)tU醷{T#Ivih4B[ChNBD bDTވڱe9sDP ׶UԨJSJQq:7_€oToeI~hCrF=ҒI|o g4DS0 34MGlͣ :>X[[d_Vq(mJc7>cg"_%[z6$:kP˩.aIޖv)BvY.ޒX6jWq.WouJmw wߨٷ%P,jfI*@[BDD`ݥ/UyچaMkdm$W` rDz!ͷiT;OsA:b1*fbUa'V z-ުZB0"V@1,;[ ܬݺ"DU?caۚDxqRC#DtnQLVv"Tco^Whjmƭ$\ _}n/i=RJE1h 늶 =)MT!sP$ Wot0` Aeb:{`m(UF: [J_>zW;D {ZFWHtQQ&h#V?߷Ӟ=sgzp} 3>8 AUz/N=Gm:lfI!.h`PS_K/N1 gѓ\dV`RKJֺtl FDsT2MBpSv@M$ W{Fv[@:%XI>~Q5 s~{)F}Yڴ.x\N ` L9&gSW."v6UlKIé jxḐ[Dd7_::eX~|<˜ŐZےT*zkm0cAi". h-鶞ںA t钒Ք[k5h!Qh)|BIy?>^,eI*Ërx\$Dje]sӇw/^QIK !/77^<o^|_/Ϟ< D9d`>נSLh&jNKӮHH[3s:ĩ2QBu ϩPgQt li[rj\%bG@@DB&.EgnzSђhX.5ք`rN& Ԏ뼾͐.sQA@m nm%\4RZC ANSډX{WUg/PB%@cx|/E3ӋyFz\!I^dX`'#ؼ #M%_, 9Z:)0QMhFJi|S>5>y..2LOK}8?~qӀ'zhYR;V)i[@mCnchP*U~R#xf+"ش`Sl{iFu>_vrN*J$S" P'Ez$ \A}m]aN%*IAJLYR HDelj\|HjY%T,ZbCx֪!8@6Nyܽkbk#[dQswA }҆ϼ%O/uOx(@ҺfM#"aL"tW0] Ҏ:" a6h `CΖ-gQ o]d[QOUo|G/|~qir#iv;KvAF$ܯ<@ԂT?-2h'v0z]-+  .]ޫݖm;KӔd1~QZKR^92P,nh,eeMW h+XXmǷ[\ҦÔL|jceo}|[͍0LQJC I1ʰ}m14oIERbC)ң:$ILij6@ ɛ$Id'h#@C3}[,I`9hmTqn~DN9ly : $iaB+Xk *x@ vUOu!T[e:nnpd\CgA 1" 4$!DuPsy~k kx/K\rIsA="±f M!fS`Zŋ6Ws##C5 B#]?j#_?_w>~_/<1/wWW㔅/tזH/tO ƛG2ڕ/|6c?|'<`s4Զ=s!k $#%:)G{;@DBUH^q>nKۍ}3bV0@'r)t@yKoFHĠܓWkFEE9HZT*lpUEwyI҆K].i*ˁnqv)OfiaE%HxlscJ5DFD% ;;p#{֠ 方{Q$ 3{['Th .V(Y?_j=6 Cs5IYexpe5)P4Q$P_t}c  @odհLP?td;ۘgfۂ='Ps`s)[? Sԥ>O.TC%t׾[^dY(i6%TɦI%,,5Jm'D!55@2D*!z [=gkXV} 7,{48}JBKF# &v=Vֶv2Li7 Ѹxx F˪*>EԺz2#z匢M BR: c7ÄH&Ȫ&fixσ^jTx$x|b˩J*u1  j# $bd$e$ZUh9%2!snzȷXK#?hCExAQ$4hލI>{dT0/֯ŢH58 L?$,' B; I胻 3OԈ=14-awGӐUxPz3XCD8yU /#zK_q~ZmY,Y= I[4x5]"0Mp|5^P<@l3AUJCJb-o׿~Ouٍjq)5$ɉx(3Q %(nGC&I ;Քl?Hvf{>~mm}N;#DG־xrɞ>?VQdWlD'GU6l`OKq#DLM5Df %kslQaJ {|([{5R# нpl(}vC6 1Da 8SnWAΨh+]#-NmD8X|/<ؕ] Qnz{8p _jc-- I}e2ԋץsYm-Ȯ8’)I/sBn2 "I L.hw>zq/|WH"FeZ[UR "+Y(K"S-}SFdOo~}ӥ$onk߻wNw)n>^w/oa` 4PEB75U6 A2O9-Z(`>E8aS2HCf/yز[aun ^}R|R9ɹ։m($_@DnA. qxXA% mʣ4Xj(4|9%Ai?A,juz%gn> Dh}NU=Gk<"./wbSQvҿqτs(C8-t//M|jL᝟ B vaQ ׊6y 4/pL7k~RTU}"h>?TDv!`Qʆ6 Pz t6C^?uىi+O#hNOL42U" \AuZ T:q 6)8^X: ih.,RDCDT Fi؍4l)GLkt۩F /H M]@GWFɆ+JS> Hl?-] IDAT~WM"uI:Y$VnSVR9G()AD@hZOe9R :;{B>nHS1 0u)}X))=%㖸Y%Z՟Dxs(K],e]TwFnhR8%}mɞ>_bη7$a3Nf!7?~>\n}/6}?ܿX/<6 < x>~{G~·&LPQ NJL ]FK9ڊST]$$,R i,'$ VrFALKjֿ gY]0bG:zZA1^^ q9>D8V.Ka&ӘRVUH~/4dKN'JI.2Tt`!dxXNwqXZC\.ZaHC&׹%bΨ. Ӌ!D j⥞QSmUItQK+KcdX魷/X?Gӷsh04I-12tAq ihPZ$L)hmHȦBfhڰq";%<?tm.=( ڙb@DcS(<$<PGTF8ؼI(U\qlljb($6 k%dl/(׹-ҟ;2I!?elڶ OUH&H;(B U/Rz$招4M>ԙ`98 ْu_P TR˱S ^5 jg$N"Bֈ{}jD ed͛SjT4&e$AHD#˩cZX$>Fԥ.u=2{ѵ]/y{TUg[4b*"ɻ*b eg=p8frK)eނ] ZuYe^"BD܂#r&}iH&R@jPA#5IzTt8=m7|.e IO:<ɄJH-J!JhT:3ämԇד ĆBO=ګ}I|?rkqq۱`HL|?m_;yzeLHUuT"^}U⇟]EQ(xbGA6Qj TRʔ F5 GO}~__n Xv**ByT<="{12Η_싸Vǯ'HZS HDpcsRI†X hô:.agYp `JE \22.MH ,QdJXl̖JCtJD`Dt{W5"RT'IlbNT=slϾ?풾ƒ%}b9U11om{S5 dǨ9)M4|B*A2x(E$:n x&W^ r*(b8{bR3{LLCD-1C7"Rr )Յ? vm5m3ш `a4fFXfmgX{JssV c:e) Qx'l`u\GHfk0(qD͘h2џ| S33[ʩОOw$w QF/I$#2"'R :ڌaK]ss,v^-<^f2ĆtFv&u }Kow/|okwGݟq*AD(Ȥ@$TJj]l:5_פLeP|tF:YZlaޣV!rs7Da=(nPcN!GLg$]` LI8(>Su=)t9q158"|4ǽŘ[ xRD8@t 5rV3_ŸhXUDLO޶ ߵI?S^ 9tVL9MzB 4s !)pHQ)23O|oWysᆵWnWWl+uH #Y ]r]&IФt8z /{G3R$/FQ)mȸ92`@PıĄASv [b `2M`#cϐ6[]j])fjjͦUEɤwfe%+04=}Kxx{Bl]!]$I R#7ƚ}fjIDI [DNfS)'+j̞yxSz zR䖘UoV߯7nt=$ 3"ӓ4D CqyrEi[]Ё\&-ULGȠB&8gRLӾNl7DT^†Ɣvw![.PRX "'=ʪ9~nǞ.2]4Lo-޺PMDI)PBǔi4vvA2$PGaL-evY Ke1Z!ҭ_T6R4ʺwxo~t"u vn>=?~zٟtIT"@f쩆bi"Eޥ%7:CkZa #>PS-4ԟlӯ8uS3$%Q_/"K&#M |B1z,\S5\Z5l1+_{~C+jŵ$jSh${xCXQ0G ʴ(;RH` V/B9UhNz:4 ##v^uG9zyv??l[o4{t}ž]JKsK LvQ8T y<2E**S:ň()U٤Z]ı;2 ɄDPje%jO'0(+o~gnCȍ|eyA%@%29ddY d~:6P-*f@ (zEn躙S-*Udd{D(`9T#o.+cE40^P.6lK^`{$@t ݣ2)Rͥk#j!gٯ?om} ,ZŴ&) "z=zCv;8n瘙wdx)%"5 5VK&5h 5X)GtŰ Y)e滻}^q\7j6 >KLfTGA1HBeI42ԟi{㈫MVg;2R"Z2H*,?AD"ҙL^R&P*:I~`9ZZA^fn9&Ǎ:p2ap3P{ֳD1DymzAyx5-|y>;vg&jIAAf62{52M0HP*&(1,\<-Ϟo3Em6""Jxd-Rv$i?hʽW/LE+\%#S)iٯڗW__zxGlS ˜օT뼨Mf"FԹE.yN~%7J;ª΋Ms~>pX@qX~{ @o9a :.CY?x(TJya*hIQk8Fj=ѺbAB'٤l0Oh.1n;Vqw/W,$ZxZh%C$ HRǫ[H77uDzw]Y nEImww@j)Tb*s=ZFO" *dG7K7O7xþ"f뺹u}P;B'L_ͺh< s(UP4+$$%RIUJIVVtNJܶ6"02̯k[]]{{ޯwzG*U8t`|mSdH8T)iX!9x_HE@ ]"_.r$.8rrRB$젫$2)G/e__I8]5MSUElǾ?z{vaAȈ 0iM !-oO pѓ\4-e1Gm_}HJY~Y0߳D HbX~ٶwm{oO7fg Sd1+'K |C߃eJfxFOODI&M)f;쪮fQ SdU@pHQZIޝN׭^\Ԥnf35 ֥5Qocb(( )b3}o+m;zQvH/rX7 >0:nJ ;:pko<ݗRDx<4RLU@-UĊZQJ1Th|`ˌ/L ` S!%K32#Lu4UA@d+˩۟ߵmϞ(&EԚs*v%ܦӾ\b^VHd!a6WvuD=2$U%t"Y*6VS]g72LR+&[>XmwwϲLR43`P S-o[e_CRJ,!o~կLuy\A$ɀtgf8R5 P*[9@C7c,U/׿3?r~lm%xH4O{[SlY="h"TtWSzpW"*C#%'^ޱc-i{ !b\/986hJWӴ4]շQx_A_S*fHwII0"/E"q; C,/_(GuBx8QݩGTep™̔i$BMMMžldݯWۗ,Sd]K4DCl𕙄1C@uRye$ I`%>i)Y=ej2 Dh(Zz'm߶֎ * .#ֶ=oۻ}}l 3ݙL0.fy>Z ݨfZzn.PqBVKY8ṇ~:x1Q5r쎓_jV%mObֹ֩h1+"DOjQ`!UPQf,'b$*eQծՂ6p3i,UGV&#>4BC @UPphωXz/̑St2j:N6h ,qX¨#c y /&c!$}I~?Ʒ^;;lӴЛ(NHQӽMN>?S#yꨘ_ǩ8i=wvT2pEge l)mzeMx..grϓVHmJ*dB @t+ʄtyZ^qr*37h7~??/le9ϱn:X "Z{^^TdfR$.*ҁ jH p=T!Vt*[*BL v9 |FJAk6O"r<dB;$T`UXHaU7_eBOZՑwX ӺL:M8a' F) hB_4)HRP*"r~UPhW%F+$ (== S\/r'_8 0 "3A MC7po$l,`  d" c]ȾEۗPQ}lumgFH2ٶn=Ͱz^lah|W"A]Mw)#J b@[nͧW$ Dx@d$)d 9${#l9^=]_3.x zޯ/]LR7}GNjPH$T!gӒd=/x10Y j-ffP I dRa޹ +}E-nuRC_{{$ fBof0E&EZBlڜZCm*3Lh}oL]@6-bme[}ev%3GEh)L V*TL1UԀ %yUö=NfޘȰjl+uCFI@詘_5UQ/;f]$DDSD30rJF^5Tzl/i(23QD6{,JI":-B#4(&&8*Dv-:VJ)L'3yċDA@zDG$ӷ \ IDAT*-;o /w{~_g\L KLҏ^XlbNgI Ej r4_H#ךlSfZI 䘲-X]O2b01%z̎PKBaY AdfWj)gZO6B$t.u*oGw?;_O,d5kvm߽p&bEJu9om}*S$"F-$dLfmӎiRέ]é Ivær5\Q_Qt BԷūȐJ t=t{l,,ʤQ.%lkwS @2 4TWIO݆ zk-""IN.ZO O+1Q _x#NBD>?k"BRP#;GNrR{5D3#- hQM$Z{ m]umW{ Ǹ*&:ON׭GN+YI u҇z*Pt Fԑ1HlOl#hؚ&R+ v-L{(fv:/[4|w羵q߫ޯ]&&WHG@%#2#Fژt& =NP@B@h_h}D'UajQ-se Pt^!2X-DvϽ&\]2VآoA0;IDiV'-B-SU|Gv*!afJ9H I5##J4*bB 3=;h=T;1$bd]};\@<zC!j)M:'(陈<S!;20̈슮W}ZrIjSNffZdIPc>%*)bu6 R3]¡"aV uĠDQl0х)bl$\\$Gdr}t5ԠbL6)G_=$v X$n|Տ[V V:-N rKIhD0,FNvƞܑ Ȑ_8ĭ#: !Qe"=]C,O޼kQs "T-2cp"@Fh|PNe.9 LE`e< ٴOTadK2MLbTmj1@[[!KE)j(1؊G~lBF@SU)CIUHU2M|2O:]__㯝0&*n",z#IKYzaA嗄;Z1)Z[#LB>_8vaY?H0B0ۯx2qRtrɀ|~{ݗG@W$Xs9r*edleDB gG(T v&ݚ,MUR&ASRDG:Mcd,Btx'S Z^Z>Cύp}u TTB:#)EKAT0Rr#H0)#{)Qr~y.{0|2t*mKn,INMSQCPĪΧRNrD$.őK!:5|~$xa J!j!#Dئ ǧyTkeifG_u$ zޯtB-4͗x 8%!e>`|O,x CqI""/g1RaHAJ# EG/ %C٩Z"IT̆_3vlۨ-9 e\ҷ]b?|P C"`^vQ1Dw=?MHMxa+eVS`c5{9'#3wq2VRLX)Z lVU*(=c\+pbTc926M^J6{RDTxG%=so^zkP&I0XXZ)ɐ8չNZ^4UDmok]LlXL?B$S= %ey褎U~vcF!+*Umii˲iRL0n|x=ɦV-!pIg^ف>ƿոEQRAn>É)LjjFw_ş} I1ShC#!.E꽙ֺ/yyǗ3A-G (Te+֊̯&LJXJ{>}K\zxTl2SlMCHfFyTHRN}ۯVcP&=U|;~~nJ(hEjUS]ۻJDVg9t:{۪) L((GL8czӝߣYf 9|A4ʆ( ffPP/O T) /z?}~8σ&`@wOO.5 GHe}ϦsAd"yƑOhpd fwdZ~|Ddz/yy} hwPE@kr)T0 *,1r GԞ ŹT} h=_="MX'y9R7.uʩˤ̵"A"y:Մxf9C)0;]'{"RBB Yc+>(Dp_/oSw`aQ35 BޯK4AFx PEbj07/3 VD!mQ!@Rd Yn#(R#G{Ld2"@XdDdO$$f^U@I6e̞d"P037ё]ґ)lHAK}@0H209@G.[<&2ŽlVJf\FGm07XǍ%JDԪUYIT __".WrsE:O6-uRTR̔E [t1\3cLbK{zڞޭOz&(]$7bU%'d}@EUKek$eS#Y2<>8b@*:M/\8D{$#_KI)Ќl N 23:P$z[^K\vheyuL;X# I"FҮr©B<o.]-;#be9iu{^TZ1[j!G6HLK9ݗs %xHMd$R$"Yzw(Ow?b@(_#ԫU=C &O\)z7WP~.UR !S:)?nx2+ &d dHI&T/ #oF7_-=%kBՊ׌ޝ>h)(GM m걕@OZA^powg|o.ٻ֑aA <]*@Ƹcʕ~yƄ)H1,SYy$2` PҙQ: KtT8 h|1R!gKD3=A+9b0P 8 .":<5Hro] /QA CK ;r ٙ]$DspRŠE#b8FTyl01RX woMW۟uFIiN'I湔i<]/[`<=eәZFF Do@ 2$Jڶ7OO׾}7x ǠXy|x=[Bgw96Q{36eo:x+z~"z$6⋑DG*.nCc#f"ʜYPXrLiKr 7CD8#5%d7K LPlq[^ʢA UJl[ q0;g=1|+cHi$ar]{_@)!{h\oO8-=*)Byx}TTnH]Kzm2 v/hloҁ,[U1Jv \T335&݆2^O:e;~ [L(fpnHHaqx[t7yѺeW` B>vn=\,=T ^h@YWݹ9MhE[SX5=0{ƀR(zhsuu׷/o~O'EEeT7w;CpW/}6nzng 63X*5GxOτ"P\>/&^2.d١S6L"R2c6fo jf~} JLU03A۠?/:H pU6M4X3%әR7|Bf!+#3s\˼$/.ca2Ȥ@va$(Tm˦B"S TE%[ralHm -~]ƥ*%6)vϘ+C)#lhl =T:1#[tuCֵfEd$5R"@k9<5b0%NSJkǡhƛXWe=pa(E:'JIh_(HַK^0=e)a#.aKLQGL;Pwa nCFKB,sl ur0;`,*fDZÌLJ Q2qк:@(-*/~/߿yRE $Z-[\(ri:2m)<`ᔓ<է`lw.q, E&ͥ)L U:"Z̩TU阛^L#6( T'ר1DXq(]S.7Ni,XLNފuqZw_?=fMES-1@5kvza3#T<̘(xtpmeL B0Dnh 7%E:;Pzy#8 ^PfA\O˧~"!a9}pH \"BaMk̔ b Gk!Z^So$5=tmY#@) 6vgO&3BFRŊmD~**[bfřHi4"tXHd+ =Q=Em"aL6"!tl@H-uqoTD<|C)ClԬLZ `A B2Af˶GX"ϫܝ=?{xq+- S=4p7~e֯Ucx}Q$и4\{2\T*QA=xcuJf*y<LSZKDP#4$rɾ_O;c-u•2= Ib4(O(PQ5ZE&6U@2@˹}g0THeѯҀ\NK!6,C}#eH~-Le{j%Sd "b e)˥E6 H0c;;RnNOel-$Ģ@>+N2DjbjfeNbd88P Ŷ.M+} kf2DRm6EMNC4 U`qTC}$H0El zR{#5(W메"i@l̙AsSvEMS53jQM%5 ȭPݚdRL;z2<]]vi7Ty9Td4w*o12=Pd.,uX SRRl[b_kۊCPyo?nT^30"`{p}gD\WewSXGx83zRUBAHo[zWѢ-DўP 貫uts9^/ɩ (*UK+2#=@*ҳRk;pL}1qC"..q7 wW弬 {X]K{Plz;|0Ѣu;ӚXBTL/ [-$)o0':aEcPE$︺SP`8|w^B48 !K1Wu6# TtʽOMutQ0T# @r%LN9{ҙ -K6 vڛ`c}%/:``HVQ`dE= j%2I9I_bR *(R50#QB iX0^["Iz̭)"R2KsedR C-Ȳ}KDjV IDATaѬEsu]p! ah5J_x^k_O__گ?㧷zlPDJ("4)7G??o]ڼr~dXL~kQ=gKtTHdg yt=x~O\+'Ief.":ZS,g6O2 V%@BMԊnL#qٮl$*LHQm{0BD.`E 3ҝ]Ht:0W*ѳRJKNM?vr3@{n[r_aH%[0SVp̾iṊdds6$d2{KPU̬f(*` (ZFPuSzhkuu237Dxlu(6Jj/QX(x%L)jz$E "6R lni"*v/`%b.@c"EU@I4kPSU+"Hq݀Ty[DZZc?9<}z:v8f h4FܚUŴ QV.*zϧC8_}k JRDX`dKuEnd=pn/>y??}f.䪃 V;IٲUNXEaJ(s21E鞚4BV-3<"HOx0eAwq3L[Zeu6[oҀ4;CʮWt;:֘xOܪLl(Nz \5WaNF_j:9wqQnΧ{{zxquU&3{;DQ!x՛&}vU|,̔X`uj߯al6}0ԒfQ -Q͊JW`:`E8,u}r6()p)`iUH8Ҽl)4b&_n x'7E1.7^ê"Ta2pLeJG,*ݍ:ȰaWT魅n,1p3Xbmr{r7bov'Uj o~`wzBNN˵~Ȥ>y<7tU8-|.B PNHT% ]v mRff*#ȗޠgp|_3HHp),31g>?zw*T.˨º{HoɄKOnA@z1ky HU!EҷCaOܬ|%C>Qb*ң ᄊd*XTZgA +@`v^Eu"HwDt jYF*zò ZF[5 v,${h 4c)fVg 5z "A2[Dc.P A0{WZg9XOR~QBca!$s&8a,TO77O8bQft#3߻zC,% V߼bW/~⋗џ=ӛrX-y>Ny{w3O xwZO`; {xx뭧ĝ MP5Dw rEСn&bYyv"B-IVҶe(01Lrz5a4}`vBJU݋̧hlT g5F%B3Ϋd}lu󛺷ysʗhdX-#y<3bSrŴ/<%QWy)!3@Êݼ*ʎ襫AoEЮqH5{B$37Hζhf7AoB u86x݃!"MjKy CR m" )"e{$*sf%P=,÷c=uˠT?;ٗW_`:\d1U0P'HVeD+u\ޞ?ٕ]w(Pv\b#SjSQ5ݗ/x-. 雛.LQzW+\lmJ pẆvSJ".Nmtaf1(93WX(./"[l;RaSYWnt{ [V,nR z1/=[lC'ATV06ieWu*5i(#^X >-SۉTvK !IME [G_ A@ C8hME_n% *RTAVUM$ssgD0KJ[𕂵z֌>=wl,:o^uOq:W[P3ӨϞ$%²w J *D럁Gx ==1n'c\S[q&#{%)5o I ezlok*}t""Jr8ыj`FuSW'EE+$llg'hQ5x[SBﷰ%Wt "_SΪORg) =C&:X6}„fn W~>ߕLw-P!r`fhS)f4^UpL32J`FWYd"S2I0UDDvӸ+ EUs%IMTZK :: z^1pim],{v5kkKk[ˈ_xϙTZj@G/Jlc+hp pvӴX`8CA Ie]s|r[[SPX?"BrB^R|(oOWŗ䠔TxUVei-EV7noƫg?{zu/{7z IQLU,Wz&3j)zO\goʠSbqnWzdN2caU*rnדTrk"\!e-H=e[.Dz/Y~w߳~yyZ tP'vzFDS~^Ηm¯p 7q,Ɠc4xғ+pLk"!Vd͊+"IX )VuL860{(@Ws1ymeYNm9`;*m2a\ AZu]__]_8 Z)Zתњ/r<OvG?y%if}cDrԬlZn'P{߾yyoO7Wkeh)UaauO>_>W_|_{x Hw&)EQ #& ZP$R4R02-tJx`v@D0Xw-zמѓAe0 P2Aizf(հۏlSZ>dW}U˼mnCBؖ-{6 6' )vŦVp^nGhd!M.R4KfIL鮠$$m<"k63LպU8laD<" q: ul24s-67FI*hzfnbilZg7k lO|-}wmWuhZCV*,C+v#}rZ~ef_qIf\<r-M/nTs)-s4S6s% 'b=򝚜]}XQTB6Lh&}-2$)Ld@x,FLJ: #3V\(w>{Hs+1)"0XUך\DE n`=)p U2 ʯ|Ү7}eLGBlA%T2m{,Ԋ& 1Fpt "DSz `#wCJ'OA#.-H{8R *]WǬV2.޽>Ϯt%à?j>W9RA$q*piK*zrEn˜ :8EsV=n A1WJW<~*Rjη''o_}qmkj(W^~o`v/|}wه?4ۇg 6e iAbi!!L$)E U%Ed [,'>"&]ӓ-:Ze|dʠ*֧7A W7[;cB-0 v2+rǺ z:NX~yvyq+fRz17 $R!r }k($7WP^8ERFx%Wi>4 @UdF`]ZL)nIMS$^w)J@c87kIG89ol: Ii#Kߔh " ɠP sCn̩hRœ0VԊړah+h?]}#- 3; C,^u;-b3&(e?-Q`5+jA5fkr PR00RP$X/]: os(59X-\_՛{[Lۿ?MVߙ~Ç-ɪW - t^bRƬ{WLoV9k:wϠIv$ض <zHy%UB [;l0MhOI$K*^VD D\n.y^+ r!ꪣLx7Yt)}|KBC% ujj^_=&̸xz_=#[ E){ zqҭ)qBIH@$"YT! 0aqJw{QQ5EdneRtZVJrk2,< tUdqqnұLaX׶TMe9i6YVddWGfKB [=lY84ԪVDu8n?^]M4CŊ0bS,||>a=KslI,Tm?CMG|>=0Ud&XM}7/?{5XKQǩRm?N|pwgG[PnY/_(?w;Ϗ{,]ْlaYSvdEE DM5|vaTK0wz'F*X:\z8!E!uow^B%zZ^ɓ>}"+8/̦sŋ }VF0's'I 4P&2W?~[bj8PYSG,"l6 Z̋ nwC2qU R+JX*qL[&φ,QvE*`ՆQMpaiqȢ S`S6 IDATCD~-H8u d nBΕiqqkU0 RGa0eDX|>ݽ~q>{Ơ(MmCw~QYEiqZhwc x-֟Moٷ~r }뗷_>@u!W 洬>/UþԦQOzz{==H3֖-֊ WR› GgZ'qr]rҌY*-*$"!T.:X Xըl7R!I'{7OE_}z8NV{2雧(z8ƈ75–զ%J)μnj?9u躻B^5"EA6Dld8uųc÷:2]=-uRa MK'E^RjF5,uM|x%i)4g$6B ް$u(cԐs3ڸ:e?W 3s +"P ;JJ2<̤"hH(`P`k4R&{qၖA@D()'SCZu( e_l,D󸏸 sha*Z?dzjMB" P pI,Q*DDJQ cubڕRGP->/5 jEL-%uml7&%,+XpLƓ'7z뱔cO?GoPTSӷߩϯ'{w )d'xD)0Q1ɸCA쎧x; xi=zTP<x WwB35\杗X4uL!$YĹk[}(_4˞B@Vds%nkpvé v_fnU"ZR,-#<#rYJ:8M=BҁfϓB8ֈؙ4yx/Ү[ЩUaf*Zj-CqXb1ju(`@'3eY:kk}]22;YM:=ѩʎc5* GeuRK"r69%UX!Ѡ!ZUKbynvd 4j٩TE:ϭYӀlUL N'ygf+&UMRLR KvL5Kzcs>=L3Ѓ QI*ILZbR#h! !?JSFG"hQ3IdeIT!C 0}9}gǽ}xVsNzu~"! ˦JޏE,M,Zh q E w_t ݚ\xL5\o yujGLhѠ(gnrYz}sBigG}Y"upU/nsk_whۚ|{h¡9"l<,y:DΊ@A#L7+MU6o<G/ ׂjϸݭO}W}ad(y옾KJ(DPmܻ>E7rtISt=]O׿ j uFzD) r4(ESa""өHz[G ''zJ@:E Q7PbvF4*%m|~yt1bJQfS2+\R))fEv_͓zgPFQe&= B'02nđO 4%sJÈ1ʾOA,D҃"CTJ!<4DjRTg1O%6.pCt4S+i.61P O$ RVU2ێd M/,p8u:^ᓭS0&yl=9逫T!OdUmK[:EUZw>zc}7׈=z)jYсƤ"0d)ӯx@> a% @[=IQՄ5d[ R'ކPTtNxZ)G대~~q Tb0 Izdou+bfj.HSJ1fxKû{hY լMSl|eԳj:F(dAwpa(QD)=2)=1v! ՔM6[Q`~Hn(']wQD{km]xX֥L&1coIWxHdٱ>V,~8hL5-S.}iv5(J HN|_[o4m}m.F6oeRdY~)2A*t2W?x<"Z)ph}zAڽ :azFDF>\9QU7S m.BLjb:׎~(͑g,T5Ӄ*SQ$27 8x8oe.q*jOGj(೩&n~t9s?pl!AFaEVPzhY􎞭'lР9]vcqZ4tG3Pd!$GEP&,&RLbPwFcS󓈁A 8h\&ʘW $7BFH)*; '+Y*=7^v\cYu䁄Hs8lzl0n JVF5iNXAQ$!)Nxݡ"ZU\Wo+=8?o(0*yB*Ξ^ A-bB`YcY)/ߵߟZ ~4 R{T|U~޸ƍ |Ye9z~T7ChY hjF F.TB;|E,CHdo~״āɶTA~;Ot^wؚ0`Rtd*v-hkQ߼q1c0} Qruoс!p*X^k'#(ԿPßOtSP8b4OT&[oO޾ LHTZHUtce.u*uSʸ<-DdH"==ҕ<A$$t8y?: དk08 }ކ$̆J8n{~z1Դe /_"LH3:‰4*eѤi)N̳363Se)4  {* "wTjb zROHF&TEN!*%q4AD)$^?<7uQS둭SE&>TY(DEeZZu-rbR igG4 lʱqd;oBo'.ꐻn7(pCY2JRm1)4#ˍ-Y-=ZG l!mhW,f=ulM=柍$.護~#]zzVʼSo\n@vmo;4M!\f1Ol aYV7 V;ia3kgtVtHRnsz⡒/éVJq:q I2`ޖna&K DKewIdv|A/Ў1SY;1SZB&g a d i.ҡ݄0r3Ep&&b}tݟ*l+|~/+O_y啗_~=yÇ?}{nI x2RM'mا"dObZVJ9bs\q)jz0yNe̳ci+uSe:I5޹mĎ!ICah~r0@xhõq 2%8UUMXb0J) ;G8ѝu#u;9YrSDm ic'*')]PC<4&dH| IDAT$+𘮅ȪV7qdw@hQ 2:+ϣt(U- ae3kzi}mfn7Ru|ű5LELV筫{QRQ=d=҅4DwZTdF>e׷|˷<|ۿ߿o|ҟxGy/۾CoK _/K|/_S<$?]OO >OǽDFbAM:Okb6%g¸DM{pW/{۩_~vw%xaQ =ePCUٚz)[C#$d+Fx;SI\=j7}YTx MMVhDG! P}s#?_ߝ T+f.wֵ{պ7ZCqU'+eR @0,Ԫh1Ѽa"V፶UQB'-B׌ղ'9t-ftwuL3#vX\in')eD1Punewwb+.CxaW{="Z'QiGݞ:t.ͥZVRv :ۆ)nα DOk@N(a Zn -VLAz&t&ĝnN ,(Swkˢ],aP8 5t2H7cTMGrTnb ٴLp%\QfGZH'[σiVENr n(wLfgij@N{ 1z$0Ȇ3UP#>|zsH& 5` Ԣe͹;}w{vx[#te|3ILݹ7}؏~_p31DCVsg~wݙֽhKa&!( H?W`P5l&EPUixq?mDVu_z饟 ~?wU}/ٛ? }&~|o_~g 9瞿sT>=]OO~'D&KWA[ +!bHĦ S3&"#I#14 QvRvv2u>ݲ_;& L{ٺ1@.dO{0nqsgIIDX#$d F[D|RGY(0^QFv]d("j2zXh>Ct4RM(LH`'p5@#[8Qwdwi-'}x@sJ6X$[C%4̳Ws`Czp3iV4Onח)jZUKL ԙ|o?|Ov֪kܔ:GtT4oK[ -Vfb'-vFJb*ݽӉd԰Gyf]hXiŊذa;+ ej5 ZL(:գ5!x:SR-օ"P}ɑ^{~UsUd3]T`9E`Hu2z1Qvz./28+!N*aQ=ZK6膘9dFmw9V7/@lڻbL 5:N"=;_KԵ[oe΂.@I9i*"Mɴ4$#S!mE5<.V,kG#Ax'ٙ5ь$kuc\=6u$JuuP^=DGៈeonL PDZKÝCJX)/׫Km=Cr:wR60hnl~xRjyWggN&&tbY~IJ܇uUZ!ŴRѱLzgW݄Nu8>W_?>993s/W?G.~Sz?DM9DZc>6٣zxOSg[~)c81h Z51NobR N 9hl$Vw&cy T sx iR!..YX=20 z%ڣu-0*"9f6/;U# AMDZck7gnwʴ)0`&ӦlwϏGªBbZ:BE,7LAΎ 銵MXb(3IKmbjBK(RS8O'^1K? S?ɼi}6%HG7|k7 ~/x%?wOugW:?~?_{KmWlC䋾Wc{cǿw/Ϳ/k? o?j=]?CuɿtCc{BD)*[q'@)hzDϕ8ΦQ(U*ʤTsLu!أH*9+,D%J->R~7F蹩 ABX4Tǐv+jyJ$z{p8m$UZ!g >MlKF R̊:M&)ՕXbFx6_I)PYF@W&O|'N[up{xt@n{?> 480S$ut&b̛ͼ7ݼ~۩fU, &Aד;_EL-6XЋ\p=0ѺУws~YigvsKDHDҥtl0 )ƑPt:$hWsmUU5}h=k08W+{^b3m&_qt}&n !tıcv>@V4;Hm<ߟ %nND2r]TEB#}vHwϡVF~OvUNQ*̷=7_<۞)]KP *bD*w=zFj)օRզ"W8>z1m&Bd.u b&l4Rd%ޣw8eno7o|g_^?߷|ۯk_~/~/7|ۿwяӿqWpIM[~Ww ?oݿOK~gW[?ҽ&Ӭ$4hpc7:6i =~kb !L@0fyr 1dZ C|&jC?x DA>?TX)hj-VEmQJ ![F bFՐT'; ɬa"Nv\CoeCɪrO%"N+66n7mlLnԪjF8&2ޚ/RLtX.yS L'+*<_*(lTPW%$˲,{aC!#tY z܂$bEG[)]|V|-jU]ì٦me5L6K-K; /emjz|C{,>M6M4JAoE pmmw^;k P ! Eg\Q66oHD!$"n&}3fAdk̶CE-Tr^~|B:zӃ; T*%"I,Bw-6Ӕ۽X›/ە:½ ono-ZTˇ} $jz\=]ԢAy}qwNթI/y nS>aշ]?~/[țX~>RwYgf}{wN[,'s{JZHi$2q hsE4kHNoB8@|UO3TQ5QEл\CYDI@+|! [ ɸ+\&, wrJ`Uh-Y!6yQRNOmVD,^/]+>cϽݜ J*BGڎ2@+6AѠLeGa@.*IV+!!xMznlbe+F6{wuL P كmeY{z ꟴ}{_2{*^z&_կ/_;|ޛ[]Zk}ޔ/*JR(4$0J@3a1CDuӀqжBX mC̓FTRU*+7{9{}2dGGEx^sg}/z;_ondeW^ewܱ<m;nK~͛LgqͲnjy}Y>{oW˯{Os)7Ʒcw //)̘ɟ?a[]_UߺiǧqGwmw\ bn ;;9+܌*v|z\*P+S#)HF82Wr!_ÿkam 2C1[AQw#X'8Y0fgh*vq2\`!0 a#hiXS cpk^ֹoZa'Tg.eu 2WLe غ Ha)rsAψcOz>=tLjiRiWLb pT-5Ԙ2S3"j(]SRV2ifCX8l8ꪝfФaEA0E.QO#]PVJ'KjЈ"_9D ^ =co8618Jɽ$ ^5sI8q V\ս8"Lŋ;q=aS؊m7-1lM2Y\]YM$ xvzm8ݞmS3mtLRpNqnɮs"ꄜKml&b*v[?x7>ٸayTw-7?q9O9{ ^zJh .=A3370qiɄp3x(Nfn" aDfKgu5(_ - Lw]W##qV%տXrU-j"I 0IXGwA0b^ى`dLnnʾ*vMJD,.f*0lF ^L8EkчkJ~o gmj8^a놦+Bض7n_Vcp` l&Lo}+{L!@&tB8V.W񖳼3&/emC͌&sIS9)1Vű. =V׷_?ڿo?WǿΩ]|~էn{ѭo~~Bov;KzK?Nu{K^+w|/uG\[뿆djgU65](V|ᮮ*)Tvut09 YJ~aA(*ŋ`\bnT7} O9}?tC):r G2eFS(!J Mv_: r.1׈ ޵LG'UkClr*z;-qS0w3HY 3&\r)\Db mXae(06PzU=c Pi{$68-eȫNȁ|yK$0YA%hsIQ,8 qQEgZJ4FO$Vfa,@@ AC BRzr(-GaeOy+i9f*Fj;}^$JW8z l޴ӄЙfWU ]enS)l=/ih¤w^|/q|bymWK/ n43be&qq fSDb\lwV*%Bd r6Nqv$r4Z\q E q]EOzhdZ0x1ˆAWPOw"8H\$ (ًV.I fbd(y1˵5XF_A ^JT=瞓_ם;w# _M߿wow_~Y/۷SٳW|qSZU~_}osѥAٵC,* ceSڒjq-36vz[`jɡ.3Ex?:v1:"D.pz#'qb!,;$BPTP .GYT $E  '*"`bSLGuphfwK-Mٽ!N8',OI>~mO<+*H1"=`AYͮp nas )07#ITNu$mp(KBɄ76lc:C{{{??T V׾8w~w~,=oO@v}|γO_|K JN?MH_x+~0=;|uKZ;&XCкWL`#YIXlz|"#NUf5ÓjVL LWCsɱYzU1"5$̨̳@b$)씝 Q%YEB;΂+/ģ(1.QX{jڣ2}]Ue8t5 ,\k0b%*T3l_=h_J 'czlc:wt^n;Yw$hUt+3Ta  }}΄ib$A5Wh #蕫N4qҴQHKOT}mHzńD]86! aU*PU^Gъj A.c:j rJʛ DBYQVm82b7*C} ͠Dw)YBS`y0gdpnڌh)APjoIm0ɮ?G/]Nޝ\hpx6&%ۂE s=yMo{iw^xxɰWac'lxUbB{{~׹|ܩ.q(٥% \`UWgrcP45" 22mՊF">Q'n1N[KƦ\!1O:Qm d5;%Ȯ+dx.6 n+À5\'J񒑁B &no϶NT OơۖIS~|b|:{> ϊ;޿Gﺷή/EԎW23@ļ:ڽjK캹k4 j;H$ꆻ=+A6LZ`&r@LAޑL"H@5GińJ> Q8cF8B(&w/k\`hehbYȆsˈE HDTͽI: L$#ҍj$ H`nVx(ITj+8\覠0BNVN}46!\kj"0bLcH)b MMRj%F!b9T]#Uu 2*JuE.Wղ_ }w~wRJf9@p:a͈S_4t:͛ѶmM,FHUp/9j\UX-VjJVRNFQ#8bfQ͊^sd>9btZh_LW%{['g=sB2%'b$3a屗 @uBB@Rŵ-P3 (d~ʇ.QsmJ)"Nl%;̖ٙVl^<@4cjyNu$ CHES a"u"2po! Yn6NWO,ڝwnFD16\2G2ȘXf1-639d<87iZoMab[mI7_>7]whw{Gڜn]VDxg{ks"HYm^@oyhu(o9s&>t.^iq]'.\~^8iޡсF SSg'.Y祗lRD< L]+{ mCb07S3VÑ"4Zv%mpqV$%A3Jv+ꅥ}5 4kA%0Q͇)bS<}/CTp9s+M S6)9gk1hu?@)80S>?}!{Sa8$))KvbcrkNsOd9dMX%dH Rlu(MgrjGnYIesޟ{_뮻sX 鮻ʠkK~Om.O~<}?¯ݻϾc?;ȧm3L^{e]{͟>s^|׋o~䓾櫟?<oxO>Oxn?}?l틟3kW׏6F4UI 'µo8i= T] UaaXy[jQn1xQ"%jG\/NwRhJl:A#e Pl9VRq(& c8D DP}a08lq^{]+Y񱕸ȕؙFA>@Һ [5rp5hE kC{1j zZPQudvpڍF 0y u`N,Ӧ4icRjbJ!S 1XxĵW<۩kc]LUsZ.nC,S+X r[0yCKgu*q[gy:Ku(xrΫeXVj5^UUQ[oֶڭ\JjVKm'1Q޼>CTI JU tL״;Q .!/s7&&zJ!d6XC@4pxx}Ɣ[ɅCf^Usb6fW6 T@\h&IJ סt{bCܝ5[4a1-N1d^^. B|t3{ 19jܬvŵLT) ͰEՍx`dEZYRtd}ˠrqs DQc@Vq ILSUG[Э{LY̤d;#z\h>Ïymz-i{GI=qEpǢrn[ez쏹ꑪ^\\Qy[xU-`!/[Ʀ)A6IÃ=vo^V$<0Яl4ׅH\T~qz0?ʐŒDOZiӈ5+Ҫ*T.>5/ũLP <^m@eZT}ݚ3(&`@ 2f&3PԲsbHdFV֗?8L\WZOO@*psfg]=8>\Ͳy64D:PS͒$,lC?tq޹ap,zjȝ Ht f+nqCdC0DxEx "D[\Ba)_?mo۫U}CZ'_Wpno?G>?~+^_p+O_??]vշϿS7|=4w|^aNPHw~?;^O/ԻWn}{s?[_}_GAF5;NkW*xdʷD.aRT"n>l\[\&"3R D Z'Z<\D4cBA|s:?}vgqϋpbY@FZi\aPaCpe  U nrs˘{^$T!,LP9F|DRꜬWY%V 0w@BN[:N>8 WFWŷ֍FPN&gk ԨILY;Im۶m1B !&j( ֫S>TsC߭V0 `%c#cZtr" =,Bɋz>s65mjXKbuXt]7^]G^ZJ)0bc`\(OueSRJRjhDb%$']|7ܴsq*`zvm`rN܈(M"wޯ\{yJAZ!뛁~$ fϤJ]6Cs Lh: M#$:p8dɩ9Of͙6Mˢ]Ų Q^ J df /l!@ 8yQ%X5dk0&X! nŬd)iCM<(%)'Y. a% 2VN<0 W*L7ڍM G+X(qO^@-MI4Jaq'eF N?!vrp; #zϻ%x[/o^.ۋ>};vG{΍G =CWJ ӻ9,J3k{K{]qX#ew/HSg>)re}J_M`02Ӭ^-r|.ˣ{M;k LcBV|bPEoBݳ8XЛV}b?I]YGdNݘx>}unCv܃ޯ |pJ(ܽʍqŪx8W}'WCFme!lѲ?X O;#s՜N "fҺLln/5.=v3v'ŋ~.iא*^04(bh oൃz,mP-T)Wx W(_ϟ?lgg9jgg˿o׿waP>+U_3?eE7|S~-_cE?㾯O'k_/=/_\7_*suNjwsᄒľ~|P:R6SwZ`" $@!zH 1w+rRbDiRE<YIC ZzWZ:3Μiv즛l:^R[C}@plw2 ^")A "$h,h/ ^׋ia8Q)05g)ɢ'_Gj0D+tg1Z;Y)5]3U'DS-"%K͚QhQ:Sm{>FƫIf_}pJ!cc P!TX^'2w;k2y(@+sݭ 9CCef:kkdx 7  '`3*ٻaMsS :}Y~pRe3T2Cqr5"AVP:wY&B- r 4ǗCZ1b4pd BDLB,5V.[M:{:m|x{G.>ztŌ8[ IDATlC1qHm5qu|w1=+v˰]<ƴ7+{}ӿ3UJ Kf?;<( ٹ[nk~ppuYO/ya <ww֬{ oeA& HR͜) K(IMwߏ[.5 t [ "Q'+2 zJvNJLF pP\fkX 3;!-j-4V$̒.R;qs٢?:Z+e"4si3 ͠n q`R Lܽ9TKLr;ЂwS܆쇞}i&Qa3j(/d>/'~+o=ŷw?]sut $a譂aJJ0%Xztv$"%4-7-B;\! p B0ixc*Mp/ `g7nniOmFb Q;T(^*"b #R#9׈ҨՐ^E(DaT%"1)@n䣻+R3j1GpFFyKZa:14L̠9aE|}7,lb"&bj ׂ-ZC+̊{)ju,rn-Wݪ˵a5>"zx֖71`~25pN)s\ETy;IHiԊ5d*ʣp&bVԵ̵@ V]ɜ(0BbIҌ$v}^8x41xfWG^W%桥tP|Hf:ZI]gq nd`ռW^\5)P^m35ӘR+;zM0cJf; CH[`!|k]-rC"P:H+7QE6!)`#5RUSB \Φ;q8./,G!1ܜcHaZ+D#BpMtr6 pÕE^5)Ѣφc+3O{|Ͽ#O.S6]=tcvG \YwBrY ى81>PxѺ%6'l{/MZޞMQwx*FӢvg:ƅ'GzcK:lS٭'MH_t;ޗBWXX2E跶)G|ܤrR%} rNV,o #;$E}p dq!FV*;qW@KJgn ly@vg&`aXذrv DBsڈ[k:K z7Q[Q T}{G]W&8uSݤ7G[D}Vs ᇻ#o++@)6]4%1u, c ZX'`:Q!m9 hN0ppLzW/G"I 7v~Wп~-=b T$6ȕjw"a+bL9xjiCrӆ((fi3{ 6bI9Nmsg~rjRVx&yD dXq\-7MU><v6[䨛^>n.&gr> AJh҄PCW'B¦qr$n%֦`9$AAK)DIQ،Úmqm?j-Z'ᣑZpꧨ \s].!2h]};*Q0S_hS831cj&67eVCcsAbJIiR3 12+wdDEu};ʹ\ 3‹{ǣS禬8+9;Q1(# 5[hD) 7i,I􎪚ٽ >Ę9Teh6($?%W" B9EfDf\}EBIJDdLy i9}ӟ\!ֽ ~&,mMNoǟ_?g|B$ f8UӃݜľ_=nzdzΙL5%=/^!4}q F}<߆9Ӹڮܾ+2Kr;!t%䩓?ut}vwrvs{7ʀHp^|S^_p8Pn_Z|`XY"* {8eise^ZdЀh:C1:3NN: :ؙ浶G9b3,#! DN*\Ʃ:tk?O'I9dwzK{+i"_^ɿ}R 5 Ǝ>{cX!;Y_pE^g\|f0B~`nZ\Mric ±J}=7DhpdeBd#cc">HM Z%hF0rOK-^۪3H TGZ80Cqk"L77B̾p$ȭ$4m؊k/P "!j-%G555j)eiڃY|Q(Xt5Bsߛ;AI[s3/?[ &*)DF"YpPQ&B}Z8S3ZqZQ AQ53i^>8lg^/nVyZR6c U]HA+99!]2 1K- RƈwnqH[ mDVMbE- \kpb9Xvn'OS$F?Y] A7T#`"VNccH+R2J᪻~5+v:t-[1u."(X#ۼ?_^ߝ8=y"}_I8tN֏g!=uHpSE]ywg'/_xB!K+m'{|>%<L-ݴN;RDpQt-67XԡKx5IPJ6[;bL!WC5Tp@wԑlUH(!xY: T.p1p(C.~apeLn6'[ ax$dSWߌȧ?xx8܈1Zva"v, m[ 'A*ɳ}th詑ta5.DUUky`7;M-z?A?zk$It2(Knvv8Qv60 I@"א8Q:E؅t)UA '~𝓏ɺͦK MխZP:Yb^IV)2,~|Yx(u_mZY-VLV̬1A榀11r$A(tĎ@ jV" uXۛ) (!f5\!09AN @I[lgG%&,3_LlbM䄪j+S .A-`UU$F59{3KLiKUI+G%KDf#Tu<쪁V7AW以-AFn"Q1[b_@\7ɮEHI`p X-30fl@2-C3yU*Z0'" ! T0ЩԱx{8RR\:e0ȪbIPeKHÐ}V*g5109TI:Iy5鹩mlAp]0"ɘј:ut̠09~ '=RJNOtF~EzwrIZLwӛi!.f"k](ݤU У`Ck`b>WMh=Q=Ӈ]Sw.tmyMu$PNO~?O^4^仛'gW0w?|?|xc^}׿K<֔WS'_MwowQhs.f"$!v[u^~}WUB؃e0O^wOywIR_\jԥ ':>ۏK?`K_z}s3;'ǟ<_|<?3GǏ;+ P8=Vv{颥IP>^ RٙTJpl:05D:x8i oV\.\M5߆ $\&S<Lfuo HT L6ڂNjw4״YmD^]mm ,*vT9>NMAδĜ`AZ#ɘHTI.͚yL.֢Ƌ'  @"G"qfJ\ [̠jZBR>f 3-9;Jj095-zVӨ8"3@P89YFtfg&fkWkly+j;nk6B5:--f؉I 9ܴWVeӪVD!Хck5Z_>J]jӛO؈CdA+.%'W f bD$jjG36kܴ1Q*p[D3q|&oDlSXYR(<\<=! Hi}@6*̻Q(›'.ͻi,$C͞ &7ogr;'c Ɉ!"YAJhugk>›1-֦R:9tVQ7''^ٿ?yt{φn͗_O=;|}z߬~Wns/u7Λ?fkUWٓ˛o\raH.SnT-Ԋf04^]_k\<[xzy{gNjo/U]KBƉ~~guHճ:yoQ>oQ"ӬQ9c5(2{:TUGCܲ"&, ԩ)(\H(R3՚,*}u3fQX|;q^DxF &H}PԜ "[oThՈKaܼj3ѧf8jm<?_JىCq7~/n6BnxY^[g3gs7&il#ok Vzq%(bGdw}ZW,2*TPɨ*VG(SvEG"8KuGRbD@p^c0~茷ш|_dpA}YRAH[ƂH.Xn"I!.O^fF-!*@L,(,931XDm y71U#&>5F{+q1`FB#4Nw Z3T8ΰfY*Hȱ@ mk;1+4T+aA8)@T:j@)y+WU IDATi] 1j)ADRj)4O1OV]J$C{ ]LJR/j3s fff&ոݎLu1#9QS)δّT8ґ Gb42[ZHhSnUUv$f"CģpЇ~u)ęvDo^G_L͘) [UOVJ Q!q {CSbXV&郠bev]{'@`_nF% ND, g";+JVa1DxdHYzWpH@$H$$ɩhjŊ 3Jq38|f+^n.l"Wo?SӶta( I"3չPM/_|_)?|0y?zˋo^N||IT_޽-< wW%;nw0V~G0yOS.A#QKQ0󍍇á:S/TMV MXj-Pv,"{{=P?շ|RU<8jynXU7B2'?ޭ/w;0:baKf=e256D6Pį˅_ݲOj Ύ4hA}O@ #΄ >]snr3fvP, UJErL^n>Ո¼֊u0Aݻu؜S8CYa[ y{yqsk|$7+QB崿y?V'tr:|׸}nFEzZC!.dRr5v_Ͽt}-n!mWa=Rb\Lս x~S|->|:ޟ,!% 7ΘOu7O3! &w@#:(]Bb?x0|,R`ߴlXhfu#HwIZ|0|c VcȝZ@nmbޡ U` FFT{[w YKx{䀘bĉ(qtkI ]܈DxT9jS"ªKY9iy.\.ڎ;bnE[ 䖖 j VjbX]XAqn rTh"xјKnFB]]ffLY5I "mgriwzmCn];dDֱ{X:}x` RVC 3*\u E׶0f"v2e'"J5X-]GҙQ#j0wUhEdܼvw8}׼JH\nlWx)ubג͛:%ZT M}͆C&r8M]g*QP$G&p5JUb1HTJu@P'|~$5,!(D(S8I:B l[ +M%2I+u;wֱ3R#bՉA2X "Y6{($LfGI.0)v.u{MO~?O[?Ꮮ|qyZxf~уś{;6q&̥X$8}=:/Ǻ'Č 3r)+\f4b (Ӝt6uXbFH1X. plC:%rEn${|ޟ+6~?C Gbf#\-y8f(fz[1/`m02u-P]T|x^˙tqO+g#PP&- Я9)JQ9)}Y^*\az5'i6bo)+cɋy[9ox3*RD5Ui2zǻkys]N\?ϯ剝0ռjKӋ -AX=Sg)zI,5;<< <OpuGL ¬>@zpr9)@Pj^ ܎1@3 7n1SHt wYӴ#W@`mr54BS|ᙱ ㅞ4 \h?V!67|1Oȴ]Z@(KL#6A?}K@a1Q đ8zH& @ppa&RKpE,C B )VR W7m67Ȏ؉v(,e_coj4MZUZ ԫ`bRE5fis"&(@$=%ykj!!ތ@qDz3ۗ/$h^NQ9PuB#N([@H3H  cX6o$cV(vraN -G/Ik.qIΌ,L@'yu*"ɫɅKp-:.bp^ÂJvabhT %;P8KRL1Iك>y_ywE}&_򺏃U*uXЅYoƩ홪M)&C `YC.29pXNs=E9;˫*nRu2IkU5#RȜS2fʭ:i*y}Ͽݮ諗q5+Cr?]mO^^n/WS!sV L,sk ٪Bglm +b  3< ,z8QC=R3Bu$:B2'93K92'R%s٩8}M o^۰2VE-\ͪV ( QW7[,˒ ,7Ӵ+6["J5ުxGSnᧇ +ʁZ鞄Fse%-F[u< W쑮cYwJ\\ۣSz$kb 'HS)F?GZBrZP2JZPZkJ0"(DpԠ:4-Bv'Ga{8vv4HE6 $|W@j`Y:Zۅ#n űuv()86p̝jp31n&Qgc3niɀv_T;iA Kkmx ZE &|ZG8;p"r[m~i ZMǘT+^jq_ꄛ%HJŔxcR+2[B&:ŔjiV5' j!P`A$s3'/M9Lٯ"Q3v=S+hccNN-nTA05loP4gR &mTC׽t1.BLz&.Ey&tPDVCۖWn?HJm tv(J]8̍0#Lfŷɛ^hF{ XuR|Ͷ:9鑀D6n-az ״b]:D ĤZQ=ckBs4& V !0EVKxmJEoªTXUWROd6vǏno<tM8֩j{r:WyV)j t٬UU}{5> 1GQ6%oh} N *h 3/@mlru4v91PruUwG/Ag*A@C@zP `8H\.vt9Is (gV{1#)*H@ݖԩ:ԛ8 ak1 EC#ʄ@^^z͛ 9It_nx`&faN$؈jd0mӸ9OrWW{7s')|FX:QqXq3zqkW{M ?ϯqر=g %C+ZQ)QT?%OR3 Ydlzzt7q,H_ ݭ >-ULHb9G7;Zꋑ w@3hV<" 1% (D=@on gUT6e32W8-*ߠ]kuk-XduZK1DDE|ݴx&,TyӨlj~Z)7Zgks]A X[%. {#hff mtKO/k3LdYKiY`0/El[r_X( ꋟHMc罣lit"3eJ"'uTX p XfNjKX Dki2Vt`Xmb\$U#IDr0TPW{5ijW|7_S~2R)r'/* AM@,Hأ r$o$svQ PjAg2]x7Uƴ0#vЩ(M^7d%$˻y:9~NU΀0ª!>X(bc 'FfxpdܞGD Ep-R͗u}ss٣}Rw~W?<}v~uq7"ä8d~voӫ;.F.snZJ1O xu}B;rraA֫d]J>9gJB@ƹQQ0\4bs5rK9X\Ch@rl/xU N}nZjhYw7}o'E qB]Gҙ)F#6+9m 0j#"Yt(p3 g, wZ& lE+E񠷗ׯ.56!iֹHUHAbs?ndJPW38@`U3rb&s[(d"AeJ2zAZEs\@~nO?H?WoW襚i5531oSOS^ӫ+xwɬ@fZt2sCgk>YEbZÌaOPڞ2|3(JF(Z-ΛրH"$ Ą<%ĤACM8Y!C0U PT$DLɫ@)0vZ>@L8& *$] `'!D#>6N\GjVanō5qẄmqUsͥb%7ܛWMb̽jSݙ|}μ\m-Bj\= 2oxQZ,ֶd/n._nD0gm_,e6e.忶ڌ KTx)^.*X.|l Hf[ؘFXt[d+Zd.J[|""g‰Zm٦.o"x:Fnf_󧏆uxG2q?yHoc!#EVUu.F\fsj_u}TػZ`ՈasH{no!Q_8c ѥ['Ԛdc"Ù@I`VU2]*w%m&յ ܽY=a_c->i!Rr:[:w${ӕ֜kpgbJ5rQ:11$P:W-dL͔'b~g J5ݝ|5V >jM)8}l/~qy3~X:+oj)1oܞfsugSðNN9O@A4VtX8г幔l1+5٬0yy9M:f&2-L\j5bUplZE]:tk, RF$6Ơ6$skvLiL8uLmYg=!=Kp}qS߼7o|y9^_#uW9~S'8d ag(V9kQdzvWbK):N5h 8BO'yg|jBk*[m>$:^Nc.q{_K[kEDf{"%f?͋d_X<ėAR [NF5KRdx%Sdn]yq uWSM,z۵uwr%nЮxY8D Q$46ɗ(\]jQUk{/_!#H]ɗv|D_b IDAT `SSW>Do)^샶O~X2S9 EkE2wb NRaQ |TjJpcXw{ǛIo2ihʎVԟ+J'"bA|w=N%>v;ݍ-W"b19bZ):|׽]ax#1{_R9Ĥs*I_'o^V8޼s.UB \ Rx甉L.,Ihrvj SmdsG܁6B=A$#%WU{$TTp._'QO|P @h F^p3rE*ɋ[V4\nxPH}fB=r2rg+< )I ey*ә';x.5;C IUl;Mx>{QeXm[j?s>t> :9F8c0 W}Nw?{@8sB(! +,Z\XzE:}TPq& !@Z]T Sk[pBXcʹ_0$fb8O]iDMS I,{pb3T |_Y>ؕų/bν{r\_<^"f 5qTs(toً[USx ,:X9]00pcHt9ߌ㛓V'{Q;T!3P3~Cnʋz(kb55j>X# +v!m .l‚!'aay5W\s0'BtHj8y`DH+J+ZkE0dUAB(DbixbjAq(JbЯ[EyuSqr8B1&3V%/+tu/)+gM' >_1GYZڊ.-$ 7j&x,-)\7ȔK_PWgx&paH;Άx!_z``}_;}paNVGĴ@Լ W"@"Iϼb&<^#&g P\Zdq9RT 5RZQeI<sg7'Ac5Kq]N?Q扨Ց ξ|RߛD]\R` `g2l*p+K.PѲa" ]Kb&rbr1S|M_ݿgtK:nW~iϧy|xjMWWգ]%y+srS%su_O\|.9QR2U0QM&-`B1 015ʠu>x5ZߴXp0? 79{]ܬ [%'s'S ʛ>u01 $A:1 8MkG]H+3iCܳ^K;=~M<ߝwi|oU%g~Z4|eL=qaU[77NГQ rj]Jjlt~}wlƳO#g=<g w`w9/4_ZnIUQjtwR% _T`̫sFF`bZaUB-Y͏cEX4}߾Ӝ,r!l.H}$ r%cF>AY$3Hh%xH4;;LZԴjJ@9x xaW,ʪfF #+p|` s"3ߠH`*6A=Bxӌѻ[yǷFV|V6в bWŌF}ܝ*iE)ވOYA= AN+ܹx+[@`Ўr!S.̾ f2Kb3 o-(mh[*`J꥚;@́C&b!J0 êR'QZ0jRj4\rи֮>P9/۲A%@d872!mՂNpmY sWƣMZ~-I|UKn˔qz}χCz|7$R2-4 ,+]哩XYZ_Sd?B $,h1?㖥FN0psP;=>0t<l.y*80jz 4DbN@XHM{uz>2ٚ ~X9>A5Pԯv]ɪT&ٖf6!5?rvkUGX޿|kv=wp߽՞>_y/wwTJGu.^W192w~Cr)լK.!AK⵨01 KV>LFbj:e44jjιR; sTp={|u9B>C&$p]yHlW0nVa=k5j cʕrD !B/g߼߽?";ލW DWUx .V k {cdZa9D@=qG rı]U*.2OqR4<he -޸Kɚ塹 @ɪ,0 CdY=JqKjD hj`cVTfGw> \k*~_ S3c~򔱥Q[BLa bZQ3Ý ++y3]/ɢ\y,,HP?'䠜\@ P+X(8ABK Bد*ɧ3;y\ȠfxT{BPBZhZ*mfh njoBbqjMOED.nfd^C}/nCx{,ct ,bh@ӄ2P}Y7[}:r5Y F=LZa! xE/p?]}<ۧM `u#5!빙턘XN:tQSgZa EcAլ.7|*>4:_Rf0%j%gVE1RbrV%maIժAvV|DMx\sJKs2jW䂬l]g% o̻ϞR?kgG?ß\ͷe@އu8|,eyவuZœ 99TsZsVgf9π sǹKKR<c nUsWv.yrZK>qRŎ$m+!ϧY-@rG>0[iꎐµU߬'oo~{~n?7_n~ۍYO8 !kFqDA pmV U! {0.=#Q!*~V͔Ԡ Ntz/pgNlZi{$%P @*xexqr",8W9_HzPr8<&FT?Ͱ_b0pj jpVbeF/ډ:_w6$냉|Qm;=|j+qBԜKJpBhX6F]3g5 m ` LJFMX.V4&4kEl 8F IB08↎ZݝZ -AAu!-䞙;feXm @J}\Snb !r$)c?tER7pXZ& 1\U7Y_,N$ns<f]O:6 -i्J֢%m ]h|^ ;рU}s:ܼ?ğ|ӫ8zqݰbkQNfcrv|:` m@`eЛ5Ay=ۯ3䈀Zdiqo^ALUwr43&bDDiA1XrR/?m4 =xiXRf>(UXv:zJ &\f'I gh6@ zȡ?xǟ>=㯾>VϿTky^F:VffuyJhRg ̼ t>4v<9JX] 1)?yDXAF X8y6f:zN1VyRxy}{Et&0xV\t *%qtr-9J8'´͵Ր$pJieSU&}=j4#՗;u'خ]okQHdɽE đ#Z&8ţJy7M.Yȏc=MrV"ک/v‹#k@zn~fpAU?Nl,@e N3QO{߬e>b X-82X'Ɉ B)@+''V+մ\"5w=s"x$ڑDmf飂>뿺9U@Ԁm'bRqjZ"l#b1{6CU5u1'( 8GV.UVu-Z}u6ڔbk%= ]kdP'V\mv .]UGnl;zQ1W͡ ^ w \x BЎ[j۝~p-o@KI1`Fl ^SJ٢QpVJpY(<fk26v"7[p : tZF-8in)!IuZaUR@"$EXRb 1n0bg M/Z)ZZ[#HjE`^.ԦBr@] .vD"-a,d3hm5KiiĜM98xn?|g/7Yϯown_ҊYVc[P7R5Iׇwjjf8\vo^ւH$Q88{e0"ߛuiV3d IDAT7""6Oa8][rĩ:C 0YiZvZ,w ~D䢕s.Yvê_zeȁȊ iJHlRk%LnKjP&<@({v:UrM> Wo^7_=ůú~>.ɧpe<+uH"8trwx7M~c`o>yUKD)Mnn^UCTM<ןmTю3N35q-MD[ZҼ9{k<{.bNn Ą~'> g[}fY]܊FC{/>Ct̅!A`10wCNbKUMkZg3RE+r[)W!taTc !6#$6@}SߌS9Yߝ*Tٸ?sA+7>SP3TIIL8&H؂W&'W;}“+z/#" Yěbe S6pPe抃ML:%zɈM80P pS&k۸1 mॺՐlE9@=ج@g 66s ڂr[!3z[҇I38Nm?iF24~1S`!Uw8D( R=wZ56-"9]P٨.i uuZ\ݸfHDH]maVUJ].b0s! 1P ff7b(IJ]cC2kJ6f*M6/exX2& 3s_@n.H U]X!,ӯ-݉A *"d Ja-!޽㯿)>9SѦ~:ߝk"OAdWˌáLr'UD]L]B'1 5730iyk" ș8Zx:r8 11wNQ*V4o·ZΠ`D L%"Sp$`< m"-A\JK\G# )EqZK]L'J5{2!EոZ=M .<>hƿ;j2UW_ |~R\ fo*LДA.}&-9#H\'g/5}߾.}|vc\N~i]f`6KjPk6R*ono͏lNW=VX|2gӫznx%Gblޮ|uIǵia>! ~w:w}: }ZwwΠ46=zwWq_w݌O?LuyuSܪH(٠=Q R1:2]Z_nqߍMIbv/m>&PF㔐"څ, sGSS\h.^:=6Oh- 3 sZ܃D&oyËG!Xfj0g04L:3@fj!bHز^KE@+)zZR7 ͩl%l9ϡԧ $RD3,7;W2QB-f  Icq}\*` XP'i uw5+ ] x-77 T7!ZkS4D!rx_F\I@,',RFLZy9x`b[TUYHm_ޒ+ֈmz՚E$DֺXa/MKjV}j*Yv=i-)eJ AHҰ~إ~U.@94 %EELDʩk~ R"c$7o*8@M%VȈȕ/#V `{ړxS-ë78Y5"$&hZkVxT=nhy1_^LR1HIOǜR  ?xΒy*$J]7ƌ~,|.+ra8nu-C.2ݡE\]yͼ QBK=Q!ª^.ÉDKˏ n/Lz,Cϟ>=77XS2 sS.]|{;_mx.)L_ooNwwj4vO>tsƓr٧H~f}>y6Z=ܟ):4j<7L]oC,w3.9 5(YpL6.Í΁ցXiZ ؜H20Hb\6W'rfs8!X+Yk3.+pswUb$):pO-tVh8 `Z[l)|oJR ZzqH@VK=DUg|GH}NB)BQsՎU}DZڡ:s1.0K3H2wɺ8?nBcBԥ>t]QA}\{ LJܗ\g=c˗G ~Ѧ+(j Il?]+z/Mlo" F#W2pq +nbYFnނR-5ԨB RCl p3Z@9'ޯ|'O黐|{7@3NDp (mI<ʭ:.1epg_UѺ4u3|U̗"j\Drb,;]R 1qJ,Ҟh ZUo>:xU쵡QUUU75Z:8lnþ6]$ư DāH!5DO (pl Le<ǔU7oJ@^c]ڢYB0\]顽C.3o̼Zѳ1ϪfC5F;tίgO?S-wsV'Bs6oE2pjslq:Hy]RaiJ;0x `Qpl#BpNO7U=߽;nJf,yRTKPb'Dbx(0)\k5U.ƞ|ι*8 wJͣmGU3 Tcaͭ>W?z'&!קTw-ɮƜ3"est7$E&mRdH``'7? %[[%fם{"bΩX;(S?}<YbIY6<{a+aZSgE~~~x8LK-BL܉)ԓcSR}nџ|?7g'[-yZ;q^pWv8ѳS~+S?LS=&IZrÿ;?>`7Ɲh8/~p|9>wzB yys$r&Z]Tq:1v bw Uӱ$i ٫|.|ܤmvq5ZkLE`P&uDfV#ƴMVR ʬeb}z2;%jMPE?VjK1wbIPZZ!zikg g nZ-f0/w@2kQ8lZZKl0GG ]H$}G1iFsT [p7!`PR K$pB; q$?-ZsBBps(HЧnx?A_s1dnn\uxD~B |}t 3zպ6" h,62Lֆm&+UP%T : 6z ::ʜO1]O] u)B"'vcͶ%t.laz +⠆%>{OIce㕘P53mOp[v=Dܔ^aq_%)uH1q.K%zm"bc`ͼEȴAٍJQwrZ#!cM?ln7ð1JX;KV" "Bh.xZ7*11Ev)uMUD2q7S3>L&b1ŔGb33ZU6Wf7##TU|u4!4AN8wol3U7+:_:J=%|y?pU]|;ў=EH"CUK)9k-|d6b{~,LC=([l;W6ԌNXFӃH±'öO|@9*W'j)F!&ɝJ'3,^|J?5i|Q Q 0id-c)e_7Çg_⫷^^<}ǯo߽Hf`Y8a*雷71uڏIkwq0`nI1h%7Emop{6+e6C 7onn뜱dfZ53aflfj%ZJա +* N-${DfkVMR/؍a~ݐRBfh|tW^iQw\W9 AD$,75 f !P߇n!$;p63ͺ,䪪oGS `GG:d0Pk _XWkd-Zqr6x ~ȯ}/|;CDo|Wl5;\z]یQ"@œkEK67fh)#Ѣey:Ļ)^tmJ .dZօFi X{9Ϻ7x%x0Ʋ<>nj+ 7#X>z'UAr)Im)!X{0Pၾ]7Vo_]C:.Qo{PTp(ꇥTu~/jGfsP TLeIQ8DVlY%֍ݰojWw/!뜱q:/StH}cs6LWwqs!&]wٓ}훯G gO.׷7ݰ݌ƑEn2nc IR2?ΏǥVzŰ <\鶛2׻l HD)ɲԯvCpuH?!Oq$b4! #T1PpLMoVPtRH$@Qfkvp&&cZ-^L NVŝx 7+ZkbD(z=(Ju9Rxl\4jցM3GI)f я4nHq Zk}x\%̶T[*WA@pD< | wOW!ghp9j.%͹ޯ9]FCZCڪBb“K|Oֆ]=$ s@ݹE{|N3 +͍ڡJ?sTQf(OY'Ⱦې?|ƻi6y|kMfflp"{BDf&Bf~Br!beZ\)*ͤvJR&p|#bPк1ʀVw㓝zɜFTk-`FJ!vmg|}?4&^9uD:z~03i-k?NL`# DMcff<= N6Ü8i g&v܄6RTVr/'?Hol ߶5 7.-TTDM1/~|^l&LaUv3"bBns2iҦCJ1`!(b1]BZN84l;mh;HYTw'r'B['n"5`&}./e+ӃzExTh L[ S#E74FT@8/mRtVQR 4j4sw_?G?zb~g^ij>1?06.u: @:e'"g"IXrAL>,j@C#B'q &D!H2cհl@n9>iX廣1ۓ T A}m.8f?$]w{tBr}psuJqs?]<jI@$.nri8:׊fB2ٹR6]y.U<rOGWo*ه~'}'dN ;W7,,^ ug@ĥV rxW̰;'ɪhIza%*g7]k̉Wlz66RAYJgxሳe0X`tJ f=HafgtSjpyCfB 1K֜k-4"<}E0 3PURZr=x$vCW[:f^ibJ jCY &(#Nkf# 1;K D B%E'FuІu1iOo]ԾD6?;vR?`quPm›|\;!!f`ݪ9׶3]r)$QHbiI4ݣfBRN-JΆΉ9\UjWD;~l&) ff8f9u8y97 ǿw7^廇e=sC-NH LTZHs%>mV3"%bf!A̵JO6*^؍]ׇYW)pU2Ͻ<쿙21u??wos~s^?!I8zy}] l6s>r/7C?n%gsu6׊L쥽7p+ÉAb i=rc^+\=s-1>݋ 0CTM)BlhD6z9j5K4ȌZ;Ԫ7jY˒k2R4ug]GZd>=]UZZŭq* ۘR"Z.hh  D#!&hj5 <0q߅S6 /Kv{~_? Fp\C7qއ]86HD Y$1G&@@4hEoS՜P`dc0x;wG)PVY3(rgvvID,D^յyNA j.BOy.ZL [" b?r T{ >a Mc is3s3Jyĉt̪lU9N@0D`MY';>_6S5`] nPuYWX0˳ll~8]Ajߚ&?x zD17Uql5ӎFdfw>nv8v!Jb75fybFmwDop8_({)N |AlP56Tw~}"o|J*߈T!p3S"!rB'ZeYtYj-psr8F$LPKá*3!>{]Jc<]7 }lfd4jծF,Ody7,J捨BA 6r% !o'ƣBPԦ1āPx`e6-V޿~/7O?ݰ?7(x?ǯnl*iHQhV! LTbг4v q;9I+YE WdHٮ74.N8q^YkL<^;j Rj!ه]V]޾;<Ͷ, <{~~ٍWo}&⧗-_>϶g,nqcn{jż' ps}/ηa@ZUǪ s"9[; \j Eȧ2G~,,3+(H$ZͲl'0[g~9 '};$>Ls:-6id nC]9OnY)erRيA Dp2'ƧG_㲂A&،OIUײEn6p-؎y:5@p\X<ª9 f؜p$\\;Uxx " C˴ĐC@&)ء0ZOP~? $8uo 63+jI`W 80'3N0 $]ʸK1U!%*cşy. R*nB&o]胐>Dh[I!l`kwXDH]~V\dK4{EXc!/ƵrrJb&.IJ2.L* j8OG3z($($NζNFzb;;{=ݾ>o4[_Z4 ë;MjU[?nO-[U}L>DA ÈqdWwoҨyٗχ?b ާO~뇿rslɥջ%SZ[ZʒS7C_JfyG8r^R߿|v a3,y|m6Vu8֛Y͉} /:H﷛ݫN؇V3 bc9.n"~/ObѼx.a|/ˋ/ϋtb϶Mn:/6l6oDKZ @kUa9;;c:Oqap~6X컟^rq P *v,X gWJ.KtcP=X7vOI[΀JZHP"rӪj4#_j*n; '=RZD)LN!$4SC;5U:#ȝe ݌j^̋"W_$؞_$ĪfLՊku2G bXufX{-fE18pwzu]#ȫ)Ip:Ls zޯ ZMR c]%Y2S5HňݽrJ9Sc ̍T.Ҍ@" 5PX DPu5Qnd!h&M2ZДAs$$ho(!&oY0܋qolZ@"!Rbn1vsp;'C` Fֶ"AN j_ 6Lś$=0V?u"5;DN>"&8$ 1;FQdj9 b c/$Ƚ)]p3;92X/ 壚'枯qSh"׺'n1`mM!n6!$7(1Bln7mDŽJF ᫯yW$no?_!zKpk6vW EҠ)F3X KtVge)uU,]Ղy("Rcb롃#Ar/ճ|qe5Ȕu.QǨN) w-w* s@Q1n7'g˽M>ei&f7fnW 9qͬ/qrSW)b{6&87qO*_ϿywwdY%ϔ~>4Eގf78ȑ=%ajDC CrUIUJ!7nϟ>?۫!W%' LA,%v`iؽ{wwyпA|{H'˒saG36nb &1_}on//ᡚ.>mDFQt_c5cJ>?@:D.}?y?&U5wP+Ŷ(]8 ]8t1`3t"~]g "3^rrЊ{K`"b08h֫?b ~WE%j6+j3je&}$j(@mJ8+;1p1pX3 C/^~7Wog~4{ZRwCJȕ.1p`8U"0gwc5?ǻ}6TTeϟ]]t 8ɴR ^?l?ן,bVg-ӯ/~3~/^۷WӋ'O^~xqsugo$8N%q׍- cgSzkZpJ)ϒ@OvwnG-fT5{!&oZ汏Fq` cF Z.RE+q\+#UfY\#Y$JLd([ΖD&w@b{ZT[_G"Ŋ$ o,;9@1L1P ,I d򄈤rHH9+$ q$ ԑ<-Uŧlrk{{7G8Td sf24OˈO&??я~t}}O<__|+}ޯb&PLreh]0?qӨ|Y+؈0B cXu-_EIՋB!OrWJl:TLZT2*}g;zD> q3kc (9H|VΧ0 O5-N]>Ndm|et?L7Gge `4>A wDJIBpR ,NVZ$L"$mD5XU5uG\ȈX\'@j|R]DmJ5jsUuZ+g޿EyhoѠN6y1Bq> Q"+֪+bUNS̱KU$jeHӜf!H"%+S ,. nam Q!9= SovIVZ`-r~?ir{҈ WPEjJ/7?}dnk{LL˜l i4`!ph1 r3Em J̠!;bD ұUͳ.SX`d&ř#cJR.`>gg52؀ٞdX?ټܦF2ݸ|aTbeb'A Թ/#O;YmxJَ/DޏG]BJh.z?l%U-}DdF"DOeQWt}n U]2Tʱ\wQ96w9j-J㝃*(E*QH QfʄsgKf T-J6ҝ|oohbVղh- Lj0CŲBkzB>6iBoC sLё(J/V[ 'Q &s GL;}9)Xjҩ,RGz ( G/>) }E g~?篯]~R5EլG̀g;<ߡb:EBbbW&^PiYQ||;~?z߼~S96x>_< n1Tac&f[C5g4jXuC[ ;aluiw֯=g˛kTzCI(u!PNAh̫ b(!4M hZ#[6"rFJ(iE{}Zqf~K99KWp9NF6R5+BbO&mq7> I]LUkŹ&%n>&]Ej%'"a^eq5Ij#Q b: l6f;a]߅HȡjUxh>:,VWGֻ~y{m4LMlRc"~;G;>Hb@ӠjSy.Cf1J=p!DݠnXڄB ' "CHɵԼZ4:t䑜c1D RlY ʊȑFZӽq&MOx 9EMZ/o`1>m۫C>j)J1*4֜cҸd%T]BR,Q/[{- =ݞ]w8?{sa{Kl8˳˴894-:RbuSE7!sR*S^àwWn|VH AdOEqۇ/w? ~w-\͝cgؿ\^:v|zy9l߼=<yo߼zxd/78T=yZL]nHQnnr^RCceZH@s7i^JўPK JBeҀ芺.цw+(C";tRG{6[>Ռ$erNffûm؍@lN<\ TP5<ʲ*9wzC 9Tf YU @ c![ m h& 57n! @ 6mLӴ ,d#5ʪʡ2327ᜳ?}eYؘ+VVEfD!޻|gSe oH 2` Gz±P{2Fꌧ\ "Xs zALmۻ7˕i_L!% @gmib8:jX^k9GGkD-E3Q'uy l1VP'O'"q t0: 5T5D&R1L]w\y^3a DlWOsU"dBΒ+8U`0Md ,1\WGMWo=Xn""5}1lݥ Ξ5úCQ/$5)Ǒ΍j&0fqR C#y^ڇ+7xL1L9PTCsO+T1EPLEau8Ž=/oeBR\X9+y%Hw; D3!c `A $aXy. %S0D&VX4L5bI\;X; `+wԩ~1[t{(`jfl٬d` P@̠"cd"2`Z[Tl5']t O7iZW8~UCGZRG1 2,&#ĪЇ!jD@>ؐ™;/vսヅ9}\7. '?z =rtfǮ^nxDx=p{bjN&Srap$5umESDj&M3n~'@C2UB.himN^8=cVL#ZAU0:t)QQfX*2W1idq|ћO&BCS/A(JVU'.;S0drm͠@#&45PIIU3ƤIA)CRTzDyֿI#zx$Oi5HF h f|NhA@sylc'g5S-ƚT2|F9,(kΩ4{eHsM!gQ v1׾__W'_o}p|=WěcʿO|M/|#4;?o?/WE!H6up=wi;{ϾL\z2F 4r@j2M *tK;O7G‡>&'5Jo"ĀL0Y0X-=9R(6撎N6рAp+qD*bd'3&c$I):mi sRIMIDD-GO=y}K*-Ųm#`䖏8VpK:(TMdJr>|R7UYpD{ۿ (JrAä0 )V.֡Qe3QYY5L)2Wr|0-QTouSO8\zR+uR6u3 jF 0Ey;~¹3g-t@RD%SThLX+j.߷_鰊KC8P:t ޣ4Jt333EѨH)˜u^E,"H0* c H*OrZXX%Y ɒ1gc8 ) rC T{(=L5g`BOwLFWYz6[g~w|_XdȣRS3$Xub zKqA=G[`a[ۓ>gB 4$j.RHȭVCʢH"ITܷΤ,]vC&OwKh7=k'eY1בwݩe\}8w;GE'(d.,)3㣶OG3 @uS g7Nrmsc$E06;q3Y%GD@EBaҏ[!f1IT2`X DmHCM"R )y₡tX8r'jL! ٩*ySO7elZݪX9aGƘ`*= ,Ouj<d D]8؇^WLIIa1pzF Z`gpf ,CJ`@5 0$MNkb}es5%,'U^I@^87Ev LL|hE oj(D4%14b5Fۘ 0ԥ̙3Zg5Q_ن@fv+o_:Մ[l{2O&ĹؕTn9i%Sn}eTM|a223CV=k]jVu]B )nM&|k2USjgt譲 5Ga"Y8 45䱚 r[1RnRqd SCp͵C{܅ fgQw Bdׅ=đ:bqݰN2{H9'sCvLcG%5P@vI)&pS1gbb$`ꀽ#tR[hcC EAX2 sqU@ GhPWl^4j7_W_ؚEpJtuɋHRp\shqHm3o؝ΫŵC dGCAAtqaۧY=ALӦFb/@,I1wNE/DT$uU־GtVM'[C~=1sVEtЅag\fVʲr8ZB;Ο~r/Bl[xͮ^[V%y]+Wۈ́{4߿~8tA!Zu%TMgvjg }nܼlb ɗRģsgw` QD jRMNtrt^)%-BLU[7| 1q ~G縨}So4]lg[)FtЁ!\$[2?=B@Ħ3+N ̧0`!^-H轤Ė1:'I1"!`@%_* Mm= U/w׽{Ox^~ |󟼸Hzg}[?'[{o?^{~kOܤ3z7*/o֏Ww<_WgL 7<?y#?w<%WxH|K?ƛ{u|\/}޷o0BYlڝ̷ͬ+fM֊)h 7K<ʗ1S[|#ǝF sh@dHH`Ϊ*ϳvV} A$d`EYLd֔UQdz!P~2AA-oATE4C$yYs"T'" IIU'ljrTUJ?[NW755L,"eAOEEI C)j2  O䘲HE2́61$VJ@ f0A1ULPTtX6*BJ7 '˴Ҳ Cɗ SH:JB".'E1bZPpX8p  (v<n5?;]ް:rC)X/" / Ew{S;xmo5pۯ‘9@ěXEhtuͬIV BrW5jG9Ss`vz8:]Q=[Eub)ŘdgwSLJ(}?w(_w1EsźZ飠MwfuU LӪkKb*dom$AΤ냥MkO08Đp34:<^$ps>^K? }4MDͮQ.&|ͳ1a`Jŝ3#5KFh@-F5(4 3 $hZ 8F\d,k3,HƎwS:3`4 MɣB%8y CgL.hDB`Q>fHDrSԨр 1b>]Fn6>3k=hnحhA5+t?{U>^ֽ_z_;~g;o/uk7+7|q_~;&>o׿/4C~兏}*CW_/}}ro~g {ſgW~3>My ~_^W>xݗ}OO_|}h/M/9o>wO_/0OQannU՘RUڙ]|}ۚt brdXY()3 *ÈQlš|+pN0Gc '(6vhM> LɔQkX IT$E9(` !hr@nH"8lAy-b> mPt%2aA*!"ycHht$@d^VP@cTnklwϺg}6:a 'B#~=|+!Z-wD`ɴڞnmMgi=IPܟ|;8$Y@Q4gObQ^_SS4 =աHT`HID{K_ W8DK  $w0 yۤN:2"3BDRx+4-rJD\4=[M-JRR4Bj9e3$3dh̥ Cb$*2g"&@E$ 6<8),wmjҍz8\tE%Q]PV],S#qc4'SDȹG!t@!U1~Pّ C\땴m2흹)?S>GnkpQjYL/_?:kwN+7{b^|]LC3)êmcJ\UUvO : ]8=a)CqWh&3S۰D)ư=ݞMV*uAV'eF-0!(!pA~}ۊGzq Eϻ5 #1B'yy2 F$0pXμ;,K'(YJJ;&$Y, (,IY sXq%aĞDWJV@sH6g"5QHPIB7sؼDLQX05s7e i6gf#/kXʗ:Dt Ǿ #l]?>: !j 7PrPmgG~{ww~Yk|˟{~?'^{/^.|Z÷|'zv}߽n=soK`==_U^Ͽssoo7}t8/;9ß1g>k˯wp׷= >pIi*PpxtVRԤEgˠ!EխrH޹iq^\W>>qhypR]֬؞uw\`jHCL<64Kh0o A vKJ4g`;F3zAU2e34d Ř<kqC'Ir%u.%2m$aܢ ! %ܮ1UsW!D%AN ΂SP0f)+/-فS34$9U|cts |Q6"M_7C[G;xÏ\ I"‰46COzgQtտ×{qӟ̑8;/|/,nBp3ŭ-k) c} PEd0 t\&fBϲvU?hGcWpa"#e(2zɾ\ '#c-"$8DGŒh#. QҠ"h(]hޕH`F@ء+(ypIbr*Dxٌ/ @sݨBJ*IUf3;QӤqMŨ}XdduC"#EѰ.zև$η~B5[U9TT^H*97pwaWXϥoוۿ>ppRlͪ[wNDԩcwc~ߥBM'8BC;@[44pZDE06t F9Oƕb]zl$8@F'4a ) T 0%Bg`8IҔ4%ID5lz6 Npڍe}6b&"3( QD+j6ζdZUY]fTeOz#<ʳ6Q㦬FՑ<z ⦂   IL1:H5G7X'pS% m]aRfRVv~BFC̒\ef$~lXj$ Uzw}L?3rtܯ7B4bQf!X {4JQ< sK2H^y2:5tr5,WpZ(\Rx@:VN7 }?/U@V_:3a"I9p:ٳ?~k{*vTT 8:jM}soٶ>}Zb8LiP5Ȕ`*BJ ¢x`Cz+ LЛ")>;^'ä&S IEh;5 @[TT( `21 `&C@%V5sЁ*(}б2h\ mۇh踜zVH)85g#HQU@@D|bC4\d6'QW zUVK=@H AEEIF rD6Y2`3C P,zj+(( x"t:a%%]r3AL)D`OVU0n<>&&gfz! $QCXĪˢ8DpGG(UlIQZwpʲ9uzw=q 1@YQa)d:g˖opt^\v ɮIuen9ǽzk\,N'I o:-kr:5];8*%_CJQe_uU0sY:.WV! ΦfLQw~-̘X @4d :ƳRˁy 9BY$A%?{okٖ}59w Uk6t "B‰CD&Bb0D$+-$0 !@@uo7ԫVL{khb ة^{Ͻ{׹}/yRT `bLLl,Yُys0C`CiRRTLX2# 4e-fDƒ S_m݅owp-S9wS{g&*4!Acd Z.Dn X@(~I|/˯+fT}.4{=;Ɵ*/9)[=?w~/{1w~>&_~\?+-+Gg<x{eSŌ>zYkWqy'|y'Zam6OO%ݒ01"Wtt 3?%HaLaBPA"hO4o"hI(Ŷ}tRzs|99rĨNij0vW_R&d6LCR.h@Ғ{pLelܴ:`OhT!-/ 8] fRDA;'&5\Zq@DUQc54kŽ[3bf3bj|#tńjMŒO\y6Y &\6y7_ty;0NP]Q#8d5&Un_X'^(Rk`b WeMk !XUG(Ȕ('`,*Z$r\[SND1cN0Ɣ< Tƪ*I wE%xOMmG b!Ϝ~~ٝ/""0Q )RkO:U)(y8IϪZ6]Oѹ y#*DWhWqUv{l|nޚ]yzIp.E{hND/w~ƫc|02,7Vl䪚Kq1+?9y\qUbo6[4ˋ~!@A7[~oostyxwWk۸^<F^ [84l/7؏IciO,ubB6 LIDr[o$˕f i@ oߎnaκZn=dzGlt|ËĮ"㐆oݼӋQヽvئrtP:W}2W,?zelcBtamq7xߚB*egVFTu#-TRDR L!Ll (_efh: jB\9YQL@3 @>x1YŶ0bq-g8tZK15/* F<('FZ*]7mW_j~K_c?85}o_WWOd~ǿ#=57o{o_}֭/::y=_}ҏ~'w';O^n {~:N_KKCO/vO/te-EpcXLYFR @b#<)Z|UHq}^`3/HBB j2Rj v9hfi"倭ǪM\qDd9PL`b"2B>7'8`܀MmpMI6e8Vh?˕nV(#S$jF s 9Z%LDOFT>*>؜9NoiɳUfT v\UԂM'ݜ >/B.6]cp+wb&^ |'O2}R8O֦o*}U=WG31 DTDD/nQMIrR~Ә=Î^C\j ;=\a0 O[d v5! _'81W\m?/620*1ڌPcbʄW>ɔJ)X[G%m4]zVns "slv\T #DK!*;#_kxf!%1С.mXuo/Ce%Uy dhɧ|hGo8}}m32rx{A0ky/eQ:>lo\?X=R͚p~~ixنcLpl68sqڢiJY{ܾO|'g_흢(=<99=3MɾK<ܝG'/-Kݼ+ۼ{*n޸utmvѣȇ_zUʩ0F<&7֭[lGzHۜK8N/k4}lll^~`V6ur 㽃W&Fwv1 r^^l 7\=iߟ}vm) vSUԧjY(4FaCt %'"0Z.nzd.8>_&ݚ7eǭSbaGu`7!bMBԲQRM)(TG m]چ|=Pa#g Q8sL [rsvR^y'>u׶=6 BA 7u~ rdl ꟻ䝿{~_"/}7v) c?p#e?ӟnwi'x|wf=';~o~o8)}o?ow_Cߟo^O7˯_?uzR}~ IDATK)q$9󶗜Yb;8UM^JY(#g JA*~35]n [m1-Uԣ䞜Ȝ@ldDp#R#b].u{VKidP*R2| EPZ[]`@pD0fbH-0HBCd,D%xrD漉efƻ"anvΛIE9wʛ"WU"%ZzTwmuS 4m̔f T v5XH3 FuboowY76zLj.5iI&N &M8`2̬v5'G|٠PU a +reVMa2xnn],µGMムQprտJ7r==8c=|U..W@r8GͥY"I$G{q}1em#?r |ॣ~|h(c mO?Xӳsr(/O֋AG+Y6Ŷ{v+b[M8-c4_VÓEf &^vowSZ]0j9.ft5JM./H>88[xyxre=C.{%ӳ٬[golq yp˓r~o/ٗ޾=`jN R3rWTjcv>b& CYB `*r}@(w}.t1@S d$vpܐyF-D3n1-Zgo{LE<<6[x \cK&}ꕳ9X#Mp.HF.LH-5vVvLLPr)7Hd?WbM5}qt|\o7?3UM)]^^~=B}U9=CU*xXvc7dQ'"h&ޘr[땸Kں~ ?SmUxX 7 U19Uz60)+=(:y۟3;͗oC*8Evs9+Q 1hQG<(ww}l+(b2r`1"zxcf b1IUV1T r՘K4m4 LDTVӁVcy | y0sa,V$)&a6_[4'3`kV ʣ~Þ|} L'?>uew#Tg8vR3YS dd%4v^o.Ζ=<[}.| 1D4s.*&hQR"h&K-}Cc`'(%˿c/P-Er3MYCjŜ:h OmU`_6L,02Q%g<@&OL0s=CFPEH)Pl5׏ ]6"2/|brλr8:>GNYl@ d›6]mP>FKϮ6lK/EԤaB_oXggg윿8O޹&jiƹPq1F?M9]ctg'Mn~fy=WH\~s:9S1vRL Dеfnax.4nɏfBPĬ p6rWەXy߹햧#Q77,54 zE8i0S 01*͡G{]αX .Z#} oD%f/W%g?8؛p a"BTU"v11[/ݮo"N8[GZ΢f XJ"8zj"w[pHCmI)Q*8ߺ|?y= gQLI3jFfN'̩-2eo?_ro?{Ǖ׭qH2M&I]ر;b 4W ZTL* ndbP [)gX ,dU(ϛC7v1.4B/E0)4xv%RYϒyaK'z 9?Gjy]w}__|vqƭEk֡-C7s$~~׫ެk cټ%`ҔrMP츝5M)ˋ&9vMO|{y>pˏ?}xr2/b|5d:w*0n7pGWrHMiDS.6&=փEۃf|vz\;$͘bႩ$v=跛2Ιd4tyӋ9 nlOױf?rXR%a)Nq|$vEΙ8,۷_㱏PUj\-qGA N3߹(Sxpo/b* cZD 9<:. ޛ'(P*4."SK"MfGG7f -+ $Ӛ("Gp6E . cNjAn*k„tL  rgPLLL\tZqՎ onq6 Ad3&Y5%,jZ1>|/~c/?~[hDڿgdJ ~BV$)Hbȫo|W~kڍ -[O:J#*΅x"M[pyvʪ& iزou\"#iV-d\{@%MsXѬ{7w9bLL!>:0[TӼ7^lα'J$C НOϿs54ąr|5G{{'6жMV Yr+CmZt~σp.=L1v@]dvܶ޻w˿low9]ӽwUj5شc*;T;Fƃc3s}Mi=A42fqԬ֛uHSި"ǎ6.so39]7Go׫Qr2:m֩gخW͌{ry~KvmChѣba="{ѵGgg/~E-m6H)\r%Co.Ɣ)]r]_=_~ֵnܒq02@왜Ș6E,[)j bB@MJNIqC[xOċ,e4JMK8"ɢqlu #+L*`5ꋬ|9V%Amx BFjҡ;Ei6@hpP)fJF,,Ҙ!X~soYZ>QosE?e6cRU&{b`RU%*U\~$~ KK~OO xSzxݥEfa楴~b{F<(*[>py'vA!gMvd9MexFqj쁰Ut ":!_?a"cBMlۦ qMJ ]|ouװCJL ū2L;ē2nB%fjkӫ{lc4u>UT)%Ɯ6c~cb6FJD,q  ` &*MnA3Cvg3բ I!-S`Hy~B~#'|s{{+w䫔R 23 @A5*RT :Ie64r,A!N\a,R7`1qhW i\Ef|``VpVT j("3@fbxo>L>j!hy_hl֗y¼[>6-ي _|l޶}vfvv9~,λ4Yz3#%t3 |y~,7͈zYNb/}xt˷y/tt歋c{p:[ϞN֦Ȏ_kZKBIZ*%Ʀ35YmHf\AG{h4Q(!4jYo!acg٦tL"aG>~dyyٗ?szq} (taqvŢmg19^>چv^^0,|;xN~$oL$x0\G?dʗ)6?s30F<dnE$ cbFQ!ڮBG9fӱ!!9ێCPRe5͖CJ]N(]tF`u[IeLEPĊ{Ml:-B$Gp E/TƒKab~DJqۭ]lO~rm{k!Yގlc om캸` 3u}aq;ժRTjQҢRĊDr؁*)Qiץ 3ڹ&N>i3 \EfT;=Sj^H)"\U?zRWov79c.̜Ehd䜫*wNZ];!O0lEE535Re-\2I1Ւ8# .ITFvyO|Wŵ_x`?:@難"•_gJ*9|]lj**jR<9λƑsV%o1f"͑W2V+ lѹJtRIr ,#=' [Ȕ뤊{rs n%1% 4 X&jV$ (4vxvo]3ϟT{y-ƆJ/yש6yX*,u]5eSA&^U;~8Y}v!2H.9btM1fhOoBdb[te !H ǑE2pY.GeH5:>[;7_cYrqy!^C("Q5aHs] >bb Y}Fg gSԴasj0C #$#Yֵp}Z~ *<{'0&ݦSYTNC%^>[IKl H !Op~;6-!stX2|!:QRL}D("Ȭe+,%B7=UPOtטH%7}xfm99۾sw,ݾeց=oǝ5> D(ȶg7}l0brd:D" UhEFd|5]6isI&@ekUe5el 5&#& /"g[*<OOv@z1l0i"#&*5lƆclJ\MHTTpUo3YMMW]O6vj;GUD s6r* |}ۆ8HQIVό++w-8U; NW+/qkD:l#.^*Z&EIDLp&ONywߪ#Loղ_^v&+Bk b|;,"{n -Wv< *\LB!r<9bTx` 9dS9Z)p}.Dán-uv㚿kc$* Y2EGՌ:@ 9N1ǔ 1:0ZAf*bWpB`Jb5 (@ DpXs,;K3h}}sі:o1oE/t󽳷aQlF;ߛ/UH*g fm~ݚ9s8J]R.c1~ PEr.>rh66kym>qכ7f<.qβW Y'* nJ>67xr%%`1v*ay9㨆ngvZS cJ̎D՜a^bƢhBT Rf!KoFykѬ4Zdb:߶s;:LIDvEl Ml[ƕ$=8};<<ܮVqU ^igHJ7{o#I\kQU3%\.Vn$ fwd7y"7[TUDA-3<өnzT-A<Nj/Wo>! PBu7|Vւr R Db0jEcCY&+Es]Re#76 SeLDjT`K~0d9 ѲPp'z9v@VK5Bgj6n3 VԢټ/a3WM3Ut)t]Gµ\ i%3/ͺR(HZI;("%di9Ka}TPq2AԫZ&WR*-;0`6kwAˢs}{ڿEaj \9;_jA6.Od32u~vgASS9I~D̽k&UDYl(=nhahu;lZz0.3W];aR ov]?Hwr3j5d+d)Dc捡L`vp57~Y*0[q+IA*2B5` )}bINbhDFl559d2_) $@vϤr]Z㖰ik `vrʹ<.x<~kP2)9DRԪj.$lL8jZY+Oӕe ú/żUZjBFuM귱y.^5,wx>߽%00H]K)΍2k$iM!D:.rY):#7 DVيYC<P+n0Eȫ{蔄$U]cOt׻7S>ӥNm 8/|8_ů?\?eKbۇCAȦ6zwD>=Ev^~|`7i^tn3|>wȪ#FE%tn^sR#{U8DDXɪ:H ժxUvW-EK'MOCG]pvbl`(qr0Z@NP1s$bnI'oC*<:TrVx%+0jYִW傐l{˷6]}s&~JlVUbi).Oc6)FJк4S0D1E.K>]F iq+V^^twEMN:0MT*Dl3g<xyAXnv>;3 `?C_7>pm0><(J@ Q9fl%*U:P1*.m`C W,`d4['!jҵ wovizUOL[=P 8`h" *{%pudp7 :ĈABڧCS}7 C1&H$xqQQ YoPY?AANIIakԓpO]OO^5J곞nH""Cd &JRԮxͷ}n`j4J1VN,\ + "A=8 =XH\:L]ɉ1@E1yU]v)9WNBu(j$v1qUwP?9T_Ի۫;coO|&zļجٖj. )nb/>^^4\fx͸ݦsf6;˼D3 |_mK4ʹ9W~86݋w8%~r:OZb^@!ݶ֚./)sהB1jf]aاy6`sV~n4\o¦IHܳ;RG vnV[Iىke겠D$tGJ@ WbsQmAq'%B5*ln̵\Mt5J*vɉ*)jx<9-߾G?.(Sڦ4;HKsΥf6j5{JΤ]($1,x %>U-f^4e >?E Sd` \_\O知_ھoН7Gy'@*8@ EUTLyV[JL<$L9Úbڟ|'ƐnvަOV<[MsVSkT+(Sgf{"G}<4ҜIV!ڬX%W 1fۮfo@!ZʸmGOj53#UJ67j JkK3UUԲ2E Aw~l>$07^5RѣAܝ+'CR r~Nr5!5s25S5 UڸZ7zJzXsYx-Zrp8?|8>ܟiYS`fȳ u  aa $l\WXqϦRj67DG3➛m7@5S7REF *q$oWߎ/_/%FϋC9H6 ;1 p"pp O$i%t',ǚGeA6 ,PNB&H;\n3" W:ar0n6/÷_~?M/>Oaw~)㬶Y1ي$H"n6K|8 fY]jޞbnHy)c $'Oo߼y8jBq˗wé. ޼ I߾=mws)VK׿ͥjZkK"sf MTCl=H̥jZUǼe}Z̪sZSBf@\roO&ė ~o/dC^]>Ms 2_2X77Ր !T\f7ǰ}χ-՝Bpd_ܤM\UYq\ZSRiGq$vVCe"'8͵OtQ]w!8v_]7u/wmnq3<@b۾oblah5Zjf!\|B$1H̵:|t"4xjZ lR jeS$VYuy˩ `w3;JKudB!eZ ]Hxvۤn>جk+6_ mVV{xb9@|Timȟ gEV9=髕a:L4.wr^ʢn`Ԫ*j%"AH"2 @JlDL&VŪXaJ),d,0ԕyNn_ }Uݪ3v[NYHA܂sӄday/r?{>I7=h`#* 0iȍA#hE$ &H2=.yV j#/LI`R BFMiφST0G!8)c1HL]hۯ/FO|>kJGHڙM4M3R}YU-03E!"uKe圗yf1NeULs´^m7eZTkT2_.Q[f:cS7Ϛ;H!Ұ æn5yicuc.2N'TlGk_?~f?ð `YT\X@V*8ĜĈS6mnՒZ͍$m1]7 (1@WhE^(*ŋ>2׺Xj]AKw20wB)P`p:MZgB4ɝH!nO St2w)P~?3}ay8#%1+ل<ϳ̕\sNZ"OcyڕԅWbxǦv0RbKfi >?TuRsdr( ueEJ%,PՋGB^nr~R'u2g9@؝F/( }? iw8\TeiyANJ we4E?u,BZGge8ø\+eP@Y}ޕ^ffL[k Hקuunou1XDb )BK[5`I1*!ܘe|W%"ZZ/k!HЅ$k79dR+'`"bӊ]''/Z u՞͊0D0Zju5xjRt)uOM,/j]X8jw !u!Z1Ɨ/rVG!H۪`,RkM)*CH!U;"*!cv3eb@nm]t:֪́vqй9zA uc@QI+UE)X rA.TL|9k- rC>Pr1B `^QTmvnnhFp&g616`o]kJ:1Qи{Tyw￞'PH8I!$a񪥖\KVV'8OseLN:r` TҾڼ_5‘72:%>OtY)]`gwU!{67|v6HܱW%GRH1)D-=BM{j#mYd }@a!X{ 8Vֳgcu ᨆi842ZA9Qy0SX+ 225,v8\rb ʬ<+g'8KsNB$Ʈۻ͋&SNHAD=7P[KC#Zf?w% a'5sSuլe.B1ԥKE ў^flz4xr5*ez{Dz~xPzݕah(Kx9<>.SγÞ4B w,ABP`(1r8 1ͪ6pꖩΰ{[53SaXItozq6=CbH;K7wۮ! ȋj)%RTkZ߾? 򳗟C霯wH>ûq)E$͍=<ι9}f TOz|(m8rsۋgTsuwGvA.ycSQ=iͻ*p]v7RQݙndёR@@Ek5%(}סp#uVZs"ʥ"W䂹zy, M#/[I"1rkk)@+׌y颗_v<ጇc4:vl̵ ba~so>CBhBIT4i\^yhgA?l(k ^&BʭH.bd6t!k#kV[i~>Z+tcjԎ[SYNx*N'"? Yk>W}gfUq>/8O2ssÆtZUK5 C@,a)C<8u]_k9Nw/nC!͛iYfC K)a](l6=c WC?ļhZ iњa<4͉p̵^wcG8UC))je#@bn/dz0n%ۿ 4 _:Wwvce @T\]I$ u\Q,FtML nJP QJ\/J:]dW77Rm6W[ m1_`ٽfGvr2Ps1S1WzCLaooN͖%KYj-ֺ{`9[ nkSvo'QU"f.?G 0Cqq}\OwnB~_擗aB" $EQ8PHZS0|  ԬSkq;-o~'䫳 PGV #/<|I`gqQ`Y[8т4cu>%Օ ^+#gӄEOin<8lWvnuæܰuF^SpP>њ{yx| GkZ`7<jlE@d ]@0)hO}m$SQ a31g >ܩT͛nrM$ sC[0\ 0ZJΥe!w"0duvnoVOs`Sn 6lRH'TvNo}/_}e]rcǒ@6;dPCxT.ma ۝lL @́v\E.]L =Rg5+&Cq / [u_`uGܔH]ؑy:_aϖ=ZfNb>-:f[̕ɄA"L4Zxd}7i@ Ek- \x=^Gq}\ן *QVWgWė7eaq##B\IT#8s0R>aEP" 97;s4{KG"Ъðw1R1.GsI !{{{ -Z9"-Q0`ZX& D FOov3l0t.v. BOs"jƶDC;nfm>FXZF9ț~!E F Avn*R~Qط[x؅nlȿu$NՄ̚bQ{B{OSe(PQ11)ܛ j-2iZt:rOq-`try5p #5jVeK!D,`$"KGUܡ c6 (SGtKönۛ]|mxuݦM!z/Vj3TȚSE@F\Y 8d' $dIy*o?|ySRfXJ%F~RJ"b+QEkfu1ĜsϜR+w}O3bL˥VleYRJ1ۛ,yv7uG} v4K3NRq\aQa/%V4SKw{XZ>틲Ta<~XĜ\/dww[_?r}q>WB^C豽 %HANJv(}лĎ`U@/{UbY ݋( wdb#RlQ,sȳ%1ԼuzQVźٻsޟw?~f|S0Y܄ɚޮT̊PEEOygwpV:>l ְAUWܘWꪓk' Gq}\ןBB-^}wE꒧ҷz*ܬҫYr)>e*T 7> B 2Z07ԉHZJfnOP6{Q +8BKfdf}Mp>k-fFd]-EZiR~ ݛhqoPLCv7u^~]/q%b!0,c캮R)7gAmKZÉXdp50 `ayׁS>V*"Oo?dUx)ߏ~\"uۡHHF+ʪhѴk aV?@M>5fXŷO@a4ZqZ)xe5,bZZҚEےIHCCL ʉ{Q=vzz;x!^lﮆmljLRlb[܊b"L8^oOnxdpaA%.>8u\2}88T>K|W7Ş^q7;fs7l Y;7Nj-uUbnn~|JnI=x" m3[lpr2#h0 _/7!/|o]-z>ðuݫW/DÇ]ץqE˗itqj>-f1JarexoVCYf?OF7cN/lsv;tb KD _t_|UZ8*ʓLN==jXqY+C7na@C kӨ.) D'{odW\-w wcNXd5nئ6D7bIq(+r@"bE3ta{k}C6.&̨h<: r5\(+qg c:ߢ@,ps݅q1NCj^or> :6XJ{r5fzqYI v5:T|jjez_3X.L}6G.pɍgBfOBPE*H%^=U<;y3L]@ٙ\ 4Q<Iֿ#!sw{gdIR}!$9xOfu_=^?0aN b/ɪ?ZtGmXU߆3s m۶m3PAa$`P&cDP@{xNqt,m4|wkP>x>X*W0y1PQ'2>7m{b;w˧g_wP;N9 (ܿ'aS)<~sa^")j08^NtVC>a!q 8j sAx?y?8Y?{\tL{ME͓k2K dRH%46u؉lVlNnj|q=dz\ozW^ viyMǝ.2v1 F6#C܍AI#i:ijW@AlhNu26:b@)B b Gp0H+@iڎ. ru=NhuZFJyZ,ۣUZ*J^0C)6~WWWcGOب6n^]z͝* QR~~_|}~n;TYTN>v_?#fq}YTu^OTz'u<'Umv\{C˕\_߈ci>jquuu}s}|tɣmoon{<7W>s)^yNzZ 3A9SO1qä("MVL}cl.}mE.wfD1DZ]ھo6<dCV̥ ١|G?'++ɝ~h%7Fx BɖU$1.xI1"*n xD #MDN'xajŠNbLN:_ A d(ٴBMv;vo߼aWX9٘ ` afjDCʘKR81FtbDR.%f2v4*#ӷU[L9g~{_}VVbpyb"!$L3iȂdHj3癦no91Q\$LJ,5n\ǁ.`h;d;TK_V~7dѮX9 (0k\ 8C@u1D!:[VsXt9>t}cPh=eWmu߬ @L,ADTzN4_ɝ V0aA{p?yXq^OhGKGI8EByv07cmY +*mڊCʹky crz:@<~Ԭ{"NNL>M㘦iv}lvird:pwI9Dqx@dK %B4 !%˾aϏჳ'gdE)ol?9dfQPrm5kW$@Ȝ \b.EŘND.((Fd.nmSkNԄpӇG[ vm9f k(H!RwTFPUɡͯF6HmR,X1˴K7WNSBq✑zPđdDJd˿MşM׻i!O BӈjӋvAիi\xn7ݴ.V+6Niu$GGkO?dț|ܗ[}uɧ|y=ӋG)P.g9NNuɳMs>=kb0ӜYLŽwi(ӔU8"mRJRiRyq&071[V"s^,Ml^|mç>{8%m˾oi^}G>|9'AC3b u RKqe߮W(|wrEQ=z/R "0Z` 93N,//tCI⣇}ފOJ pBwZ2` 73 yCd`tR Qs2`tr%i`nP4Oewwee[^x:tԼ`MaOHNNM,Jh]XFmbvM,Desw$Y,2V]]jidNObov~?>I嫫?9Yoa]Uy.hfmϜK)m6mT Hn/JrGM_ތprrDDz|^.Ţjbi@۵zXRR) F5BR=1% 3$){"[y=ȲFy* s!viqt3b܀:UE$NN$"7hJ?kXAF3bs*ӬiR6YYuBif>e?=윘ܭ)!O¡ݎ/Eh쇱m|wW;~a*)ǬJC?O7,Oni;}їo,x궷fݺ :)~QX2G `9f&fuU9Px>k< /ъRM;֋|~OBf$Mn力FRI]"(^rp2gu:BWbfn 5Rt$vwHz|y:L"Kl;~UU͞ҜRs98 4Ny.n%C}訔]%U'IpH~ lBpd0(P^4̖kgE {_n;Lɴs.:-C[ 4i.A,X!ZZ` 0U5b J@M!`b8[ߤY^< sŌFHHHnL!:HnO075n-X){T>cS`2&eDH (e(:ش h8N9sڥ-9%Q,4xtg˿A Bsqʹ%WBlc qvy^2u18,e^9s7K)w%Ãⓓ'!_Ef~|>_oNen?_'9+35-$z˫իRrI)/>(Z0 CXQιi}]:H(UiXmH㔋)ci4M}?o>}:Os6m^qswk0 ~Ǿ)7QZJnz4-:VyN ]6gZ,>sXT7]DGqFZBs.](@]z!Gwwʟ}>bfmΑȝ]09qaI "E)*/5=Vh֬BŢ:;*Q#JYUUP'G$avuqvɧ-_~W߾ɒaV<  ]vm/ibv͋UG 6MvPMh\&Lcpf'Y}!}XMS"}*Dn>/ߌ'$oyɳT f*J$'K[S9;E r T9WПV5fAӒNn]Cq -uBA#bHD#A[P5beҴwU+fFe)]+L/fiGm]l `5M<9Rݷ 5`W0`هO? "O9E닦ifZ= 13H-^g3u7U!ZZdJ pPa?G}rW3;;pwK4iqa/oé DrPɬkq1t ABb9H(#}|>{zhtm68DFCdNSA.(n@mZL3lIىtz}t= ~(ioqP ʆ4=>FW $05; bVw#-V~X"A{*x ]4YCRJS:LN E QBdnPxU.2jf[ӜL>F:^\*,pRˍyL74Mm^]G66 W֯{gގyfsBn5tC٥d('^~_^_ e9zL'7|.^m~?]_ѴzҞw/)Zf'7՛j}I0MvZ) aT^e]7ͅڶwQ𩪈UeӶeǏg?~6/_lg?߽n78fCvMӶm+"[`9O^0L#"@] bmB,mv'/%̨Ys1ݩ],BwT3u=3;]ПpIt~fǏ}#^a>JHYB 9@!BA øZ?~ R?iV\?r\^m甖TDx_]޽~i-4e;唙)ÔRj{lѸ7gfvyynax'OW|oի㣓iJo޼"muSL< CmZf/..NW_4.c4M4DfHi57nӔ&gZi%=|W7}UE.zqi`Oh?яn~&k]hM$E>D攋46doIqdraI1Y.Hxʞ5];afz={rgoC\0Rtw\pH)5MhLyX]Goo7o^@'W)#fPS‡ÇڏsZy[qpgPՔ{zx'G3rB0G6'hm*Z z14B:: w5i!7bl.tȒlM !0&:b#a 鄚xl4M:~SRJE!D Ef3Mjp3M:y!'4]cq h!]_/~_#ǣ|9l۠k]Q\v&B9ޥys%Q To/fDWW~遰σ\nnoӧ?:KsܾhOsf~n??\=>]Izw}7wwnSPǧFUOO~뛗/_.hj5Su|oGw]hڟZrJvyi4:Պ9;{L/ۮ!V5~ݔҶ8>YjaL|xϷ18.ath2le%F$Y.1^<`wXSqphI#% BkhfW$fD U^FB氃͜ȠN%I#@"Dx&Ϟ,~~w#>!oM2)ZeWj𻐐^98BpA?TResyQEwP}%f/oz_uXE_ VKAXF4-bF *TJ.٣X`Pr:imrwԴ' *;x잫P*pf,<89w^ĉA0`jȇ Pfrg@$ `Vwȕ,{I:~Rk"™;A{?~\q݋^y5ɉßO? YՓ'_r!Y|!ҷ^/vچB1s1y_zcSJˋo_."ryyjuyyu[IuU ڽ.&FӰ璑!}\=G._/\6ftfi)Ɲ8M߶U["{R ۲('rzq8=>X"?Mz2AR}h;i!6 k{lG'xt--V[, ]9Yz . . w{WU[uƓ"zshU!~hopx[Nu}'G1􉢹 K5V;$(gGuudR0POBmSqatͬPKRMyN6Li9OsmݼƱ$U'cp~pJr~kJ!DjN5ر +v&0(*qJH:P޵euI8Df1( 6밀"f:,nj# ZT0Wpʘgaq4OiKJiNXb& RU.@5k`CBԽ/뾂0K|T)zxrg]=yqA"ve@!@"I7fZMcø@QQe;L$U+`2?x1C @UՒex rY4{`[n҂pHdJɖdc<)H$N\}TBBBEPb!8^>xA|? 41P,Clhz}mL~OϖQ!yĮmzT>zW[G~v1|{}?wӿi|tn;=}_JyݚFҬov]Dڦ&v;>`yrxs~|tkChqL咩mry۶Umr˗**6V-!K`&3<`f' !,KBbl%d54eݮUYq{z328b>wqW?և]MU5<$T5GMC }9َ樾|}XHW.>.oU[ZoFrf?bѴFbg''W9quWmn*;^DT M]sڟSGGo};=җwvvk6%އUs{w^onnnB)0 %?mBuO.cʉ0!eC̹i 3OQep$Y JgʲRADDe5Q-Ѵ #tN׷7ԛfY?_*>WC%< .f_z~)<DƑd>MmʰCj'gr@̎&T)HcX!;8]b#x=~gy?,}~)`Ii}<Ԉ4JrJ:GHlC/Ͽ;<|<AĽebMݩkS!aPc5RcI%I 83.;TDM b6MlE!i&i2BrԔ4'I),eK1@ }c9uwPx3.l`Jf幰B _eliS8gWW;/P?ꗏ)d dSfj!'M3&e8I-Aj UfFY[0sMc]9GCf*/.K@=N8ENkl?mhEZZ 4)liLL@*ePJ"0W/Vc6Dbc6ɔ Lj1H_deTo.ۧ_Oۦ<*Us\]ygG{{9n>M~/寝?;?Y޷?[_>}|LTo6uݘ0drǏr] u<::zXfU۶ٌ!Pw0X^;x}GGWWתSNYCN/L.*" sU-<8뫫b13Ggm8RJuYU/sD\1GOwwٲkg:C*.Kj/.ڣvw?d{ݦ0gv}!o~^] >}1]hz,sqf~'.hh¬dUeQ-U4e1!6c` .qQIA񄅰.v%WsB& Ơec&2Ben rwf(QL0}M ONVۿm֑S7r}YtQk3EeªD(/Ȋ̱?O_bT&ed4M! (Wo*7z~Nh:%O ( ˥}G$ϵԱH`_.s١f ˥=1WH`EeBdCP2*Ɋ`}4 2J*5(1*,C_m*H˜brYƔN/`RGƤl[ 'TT$1FICGG4 1Ŝs*OLe,6mGǨZBg_s!\01g*:Na ff0 N>8،'>,+Q@'z{}>9jȘTTP5ytf e.or(Sr.2X2S1dc $#ۺu 9Iq1>]CDS|__YySڽ@%0&8^yQMAs19X9PUr}ؔD %"\U5, v= 281mtVuV{J;n|V-^ޮpكr.6:f1n~#F>Y3;^5$p5_6*k;[Grz5}|ٯgM{}989pOS-)$#@9l6y "8ZѳgϞ11ONN~X,yfHl6b?3~lN\39wttt||LϞ}Xιn8컮mnoۍuu~rZ5QڻO]zuy=Y8vlެ0&0ffdx{׍yGN>}_YnyG m]X\2ø QLQLE%qD2lJz8.&31`tۇ LdR*amLMM%\lB؋c|p7"d__~YӣoͧײQ]I58g% Ng3&BaNH&+A41&>☋+&CϒxSAYo֛OWes R N!b96m$F0dTU^,};*RA*4dҘR@١23L&d "2򙽆7p&>o"Fm3X%vټ3`lJ`4aYV8WE1nsYыxyk# lY ȕ + z54cQ6<-Vxpgd6ӬQ<)qYي+;;JP, x xVTyĦEY1ZDH2ͤA JX.:Rg92"P& JԳU*L0)+e1]:0'qhJ#^hc|7PDM<:'G0ټMlih! %K`NfijM zKnOՅafqe!9abfLL%62DĎɒ)8@Ȃ'ؑj2wݽu͌̔AfsNFed:3;$ tTTb& &dAs #ܡ^.CP@RF&ިL.RƘ,QAl7궛|ӿo{Q7k]ђ:IOiݸxw׋m\d'o=~zbTkW/?K9 &4MO򯜷O?M^>~"v^o}'_iTM뷻xZ.OO~Ol83dhPׁr5bQ CzţG(u0UP_|R^.n5s97UUn4-3}K\\}'yJIUWqw0MӎPUIЧwKbMS&[VYT6lᓏn_n|>Yuv~\/14S}41]oǺrff;b r^䗗/0fIwqh++ń<$\:f25Q D4P$,Ht,*ݺi "ИzwNXpC6!L1!c41h\v|P)䋐Cچv<ȃ!JL|8xS- EFPhM(]g & qz9@YTrc1!ٱwyzެ79a3qzfgĖyHM-O?S2ӈ@pd휛!1 P%ҏ3S@ᘕI9B3'toy]W2B[xǾ|%T(%́9FR թh`rY-GI:Bzyiv3L-" 2$L, dhSλ*kv`r(&.+ױ%x%&0`j%杕H(ȣr DP+(6%s`&vL\r{` "c HēBđx*wLS$Yq~7ڏD E4(FƒkSWEYX /B+w˦9tT(<3WY"&"Qr9IΪYU:}oү=Woo5&YK='Ie^26ᓋՍX?Or9hrϫY"iߙ8)H0Gh}_zss4=b"wp΅f^$3b n]UU9|>ϛ!bH9vf]4~ݾzJUV''GmیP < FdPd]7w^gw\n{=kw֟h۫ǫen̒ 7BuM3#HVaѴx{7>sG-syY[q-Mukb&FX%u;d iNm{ &H60yCH2)Ҙ0S<9xRvD jpo0A*6$Zr"o}{o-=?YΫpu{Uzʻi¤K.rwR3sA̎؜꩖; Dfc1eszެ7t4$`c&{  m6͌}yi'Q*GBJo3KvR/l 8iMZ#8ō"AV(Y8Q|I{}SfrdmΏT `Y) !2A |噉MIY-f31h"~Nq׫;zqg/խmzD$NpF(gHpAHJƼy f9" &1hқ)Ȧ#rFLGle 1MYݽQ)/L($nkbF^afCIz]R(xhayXwŜ%f}6Cܪq+W>0 8SjQ%♾h݃ E M+n׀Dj2UQ  Pi\p~A`uA Զ&Տ?i_zhxVY3KɆQb4Q3Cb”XJ0ڡs@LgrBZKrMWlc!*ɲXlR$u%*dݥl:$7ZV]Ss䜼 IDAT]Q $᠅U yXlH։lQ5B"'5څyXV\ü I]n r_gT_yv!{2A4Lb[o;Z.2?yٜ9R}_}4>|/OY]Tv8],CG?z!1$eH3SM)E\Iއ$Z&n14Uݎ=4x:r jJynHeS׾Vv||t,ƻǫ'm]oEG1ZWƦ@2d XV$5Hȸ ,M=iè" -K* }A-b]uPJÆFZeL6Jbu=1s~tR+?~޿ZRWY MভN#s4ueV0a #%$Ǵv]'مuzެ7t9u LƬqm >]&ƄDWbEb^u6NNӓ4߃*MJf!P"2a YȕMY^#IaQ6Y\`x{b'i(4*4IQwDFN9bԜABH2lrmk{ts%ѕ7D`6USQ& XYc+<8; +Hkž#\ע8eDPdd(j(R0inHqwkEj} u]:(1!$0gTYLU$uQiSAkU*$#jИ,NMIrv8 M vbnU>4!3J}ĖCcUiwFJbS#SoL?6./|euzԸ*CTQ ٜ3QJjYBʧA!{dU -0w@L9 Ks'13; v%r^cDHbZSttGhjӗeTwYG.g_Sj(Ō!~F RVlbΨb걤)e\Xbqy>Z#>WIJLrn*)CV1F4bLɋig fu֪a9pIܓ*]ī[onG\h\V}70f cyΛarplUBwBpØ\HQƘl6ygu>;*qX,V!7 ]\\ P0 `^}1F3=;9iNNyy睳qw˗/q9{FkLEmlAJ4-|6nm֟dzZU.n\4rbJcB*\#;nM&@osִ,CMVZy*ͪB@ZĀL 3Q:M0W"G'?Zngؘ8^JB)ϛ<=5R2Vk LJ Tt)TFi 9N>4jqbK7GZ͘i2f'K 7 sIZd\f"2MaRfvn7C› zެ@d<ꀺP@'b386<`L`#bѪ:=WZy,rG0S1"r|-f~FW\N00S;cFj`r-&v"k< *uUDM*܀~ț^םmG DZ) dj +p5R@4Ag=>_~~{H s>]^EܣiRLaeþ `ҎIh>ѼeHmFQH=c&K&PMM%3o2C<#y6 [QQTGRLU ІZx_(*)[*ze36N rc!3ӈ Pczf6#k ) Ԉ+͆,/.7øbVM0e!D`,ufNLN)(n Kj`MLҚR##S*s8eOEJh&*: 2؇3)x3g¦\%-e3eSGRub. A Gp(:wLF&,"v/fw/Ow>?p]}ֻ1,eJ uMS;#Sڏ ɺ<^(ni?ǏOyx/_ޥ7QuԹ줝#:%(Lڶ53c4頻|]W9KـqW/ogfDD$Q4yVHGH]뜫zX4M4]%*b֎C]!Fk6jHIbLUULS͎%5kg&1;b\SVj/6'gCuDn "H cWOݚronKɆj׽N*Klb`:%D՜ \M1qE:uʋv}U f ^y+&c:Ӌb\!Tff&XdZ:,dzZBȂ2LLHό8u~FG #_k3xe;#sP"*"#R*$d-PPXXZ^@;O,mX7? fYWP 3{W9 4 zԼ@ &ܣXENj>6;2*!H*f4%NC"f⧹M>yoRa  H-F%5uiYXՀ)Qe1UD;`50dڍd;h Eoo:V׆r%*)%E0:Xօ7|8Or>Z)v+el z> Zq9'qQ}? u6Ki;J5ds&F$ҼBV.-BlT55cRvp:2ȘIMJ f^,=uۄ8df14)FɹƂ&Oaϩ Iv}BD+Ф HyTuh LF>I Qٍ7MzgS74E5fBA-;P5ldA4I*9 AtUpaCnt%,I-fL afϥ^NB /rp>P"-07ޘ{G+XAِ͒H*X4U;a1"c5o7"I19UgH /dS}j~gW( R$$V(Y6f/C5kc!dw[ΝΟ?Vgt}xvyWnn׏qs~z_6^!Mrw98wɉsw٭׻aYX.]?rTfaZ~v)"+myJ5v_꺞fr)D 7M`qu݈Uu]WbX@U_.)y II>ŽTlicKַwwyx}CSʪW׍2.Xͫvܭ;ifVh2$&ˇ& 9Z&"yyH&=bJGٚ!c2d!1g.scF hRvWs*DS_R2b.qmVy4UI$)Qs.'* jW}3i*88W3 \(DF 3"^4B%F(6Pej0L M~?3Ϳ /+_$__3NJv{? x^?'?˗~/?߬N2<ئOA) cS&r7f yY@Lj':Mu@dBM¡9|Gv@ 0LYK6שִۀr>OEb1WU"`^gۏ~݀>!ꔲSbdˠ|W@PFp1c9{o5kVOxų}SPXHEq٧Cѡ(BB1,G U.SN1kF֜5e頻CEinyTҌbp'vƎ'#D7FE8Sr꺕zf^fVf؛R0bV֯C s&UH9(Zu0IIg)8 #q娵o<:9fw\ICxZzU!R,yn}gs:;;v稪BS]7|4o㦡,c)ε!|yyy|X~~n:^k?r[>mU}*fQ3I'{oe[V~svwΉv'$ d b)E@|AIKlDi ;(DE@,EZ"OF$y޼]tj?>qz5+#qN8^/x{&lX}$!*sS͚,#|1|ssijcy\fCwR)I۴*jI)y0s H]c1yUєYw ϊGWǕv4+2?}v|m,Fm,rHk 6.˙9ƾfC!t-2"C~w{(pxbϑDm[H2k$ ;PU{n*e82[%^/.q8h@@AkLUֱ:+3&f[ d2]f<#"R֤ZATCBZM1x_ Q%U4&% "^%$M)DNpKiSO-δe9u Q&b!@beE%^zg!&JD2(11C4sj w o{};n.+Thn}Ky<X{!ec:2k3S&)J[fE39hTMϝ3"eRv{v<̖yheGgw.,33um<=w&UǎTavkUI(Q I(ԟrRJ0tLKDㆨUSlRvA߰.3R/#:%0Y6lS"DLĆ0[n+A` $A$$TMH-KdHJ' &C - ̲);*=(հju˲<0)TPb]ogGU??}?ߧğ_Ҭ^'pup~S;X⁏K󾞿~~O?|[]\|Gsqݯ}-}5#~?o.Þ?i_tݷ>yOK\)|g5 IDATw=^~W}GMo}= t=?vO.n+J{_w^_M??ػw;/Z*8AIS^1%]:"Leg7(uB^ѩ£<ۜdٙ-wt]h*=pR8h0 }ZHè5S}RNbK;hT\".ޫ\r1"[2$$0U庡B3O9M~4 e8oUXg =k214*CrF. Xa&>?BEb)t4M7؞iSIAc4i'MHΧ'%%#gJ^)b7j:Ky Hco J].j Eۉ]DFmmf:]u[=: 2Pdiޗ%Ư?-` JHQ}!&߅nQQrppeYi\ŀ*& -Hnsdsxml2C JMڋa܍ aUH })"Z(MLM 0l[Zd+}[. s뽧|%(F?J70P @o)A3 3"'DR@-8ˮB>޼靷P\l>}|gh4vR*1%%n9P/:gyTT]4!v+GbC [ ѥ:WM5(s{nȭO\N{\re]f7D jmm-űNS/'.t^˲4@HE|s(u"/x}cΜ=?gui8hzshfrU|v6++ ~ǽاʟVW° ƕ- rhJb!kbL}:"Џ٫2=A/LLL`VTYB-\a`8eÇgD:$lj#Ћľ$b0B_UZ&2Ojy0lR4ܒ\ &z.xe =|h(l c2!LF) qO:33벬(j4*K~=eT'U/yvʷ7nOz/\yŵ9>OꥏY?gnU?yƧ.|#}_Rg}wyv^5˾X_Mzs^ }ѯ䳯 7\zԝ, P-B(a,ITKhE"s:ѣBvݢЇP"h|@CIc=K;{1@*=dHU"wեƪka ,8!81a$-j&&8"V@]¬T8_' ͻA?Jw `,*[J7Hثa!i0`{2*(@=tMn6Yܝ3K y:Y+MCH>ѣ)!+S1jdžJ2V}JAᅂ:Ңy@pRb6RԩH01j躮隦]yt)%ߕ3CwO[N/}|P?#Uy(Ұ?aJ>O < L}GJEW,>kn󼪲2F'Nmtɬ *(ȌuD| #R e>]@Ҵ 6e׻ R. :#*fAx}FN,wƐ:#Y &2mVŇ,gB30$Jc:i8N7wg[.Gl>==vv|]+$L)u Aʍ'+Tc>O"e9 i7MBZ,Mf1V zg)BT4Ϝ:XY]@FըmmL&bgwgwg'xs֭y^bV͢^Yzqɪ,[[[l6neuRUt]S>*rk-M֪֋޴9yjYRe%[;[;;{4ye"9KlX֬omlK.ee _r^!C5+VR.U yJB*DHÃ?txId,"0A2 (9Xad04TXKǁew6' #p> t9DkV%*=A ;.M6ujG{Ӻ5͓7 osqJ[ 3/9F 7Q"MT0;UU9Yz>_ԭNW|rt3M㷾-}X?޿3'^b{k__{l_sEG_<+ pc?دdɭ8~w<0pϽ;㇯y޵*&\u˳z_ ۚ>G^}sgD?u/<.ܩ<>#fɈfƣkh)MJYec@R" "5<\WWoӼ >iHUoܰa '} ?CI5 H!rF*wuuKJո䜑N$dЮRUE"&6d90Puks$N[ټ.ٽtj9/jb.P]KJ)"Eh4JCxuQr@,QHVݴ^u ֫i`[ΣZA&p>J,i̻tϽ@ؘ%]v;DL0?O~G Z~#'}~rmZƧ]w ^p{Яʋ\qȅdžw?a_~-<|}/oٯq}O퇦[y=2XrzF[teeZq<`>w|Ӿi_2yt+.|@N:VLPy|^c0-cѣm.VIEkBU F9~9֨M2:ͧkSH<}m TCYFΆ@j@PVr9 #]qa%IՖ%\(7lZ !BKJQ% RP2(!Q4.Y dpct@$i"cR=}Pdv"]u5 mJnxKPVbQ>j dJѮqә=;xz7ɴA'RH>D BSe2T J@)(4$سkɎ)39q1tZhôŬ&YY$KV IڵbΦ|ͧzv] QUXTBDp:/y">cf6p秦98 :χ!tUվlèU.*ˋƒI lTmO`CjY]JSO TƕY[-W&esa6kl`QeI*^c5yQ1j"H#&hlTbzL  }s[% !y2FyJJLltم~_j{(%a~sƔ֌f;{'UC~룵cy=l9̦NO !ըQL!IS+JQIS kʳ禣YgOZm3{gwKG.\CD8yrڌQ/8kbEyAZc94MӤ`"gABt*fjb23gol#@Sw}BLVԧѯ;{uBA:ҩ @Q4E8Ҫntg>3;qEl Z1lq&Ȭ֚<+UUYXfN|<Ml FP(phkU$ީ񅝥yP馷#G5~FoǛ?lyck㟐:Q^9r>ůw/~G}M|N+k+_Oq_bOEx2b:~C/8'rV'bTDPu@cNQ0Yf YM=\绾'!EH`bY}j/<T2`T ީ!HHF u%.=fla1U2x31#S)D(qRB"0LɌT&^:SM4Q bjd!l0&QʢC=C=ZFBi6X.ԯ°KXaol $$H52K>Z'[N.n;N,"zʹ*p aRh+-#.B-ʼ$691lQ$̈́rKD %^gtϚY]'rhzK|q+ xC%b 9s Tя de9gDC=ZSYS_T: ꊞI!0}6F?~ ^e+L6e` D GMQ($I)ѠFkκl!'zw,h^D"cƢ bb#IR צ+Ϟ۴OVz[W~A'>mB4?悋mnnH¹򓟶ƴA]fVJӴ!F%i&nfrxf}@]yֶm,D$3cLqooH{o,d21nmmt:][[˲lwwkU9{:FƘt:~1<ϺΧOFDƘ;Id5f>h=S3@zE4$0+_OI'`"XMQTeǝ +I Qjmǻ[NԟuvL7MSA#2ټ8ʲ҅lFF1S UQ!vT ͍3q{Po}cH/{o~ϳhebuoL>_DduLݢrdtգ~4y7msseS1='^?ş'+1Unh!O6֬ ᝉ1YпTy݃U"&IRdM@ޢ*Tsa!*Uf@Ѯ,Pl($]Z- T)=Ot6 AL9D0Jz J=L]b/8jIt8g8gazeÊq 5(+8`-Ykұ36]XtllJi-ij\>(FpCϑ ^C}:g 0HYm?~>T<%?/g-s[D><( 03DQ@H"1iPDl"lE+'9+ I B^L铉 6.tf|,I$cxIhė7A@>L3ôK hÃv NAV̠AIR QK8nL>7&7ʲ`] v1mEq3T!&JR*]h=9+# T(FStac V+2lsXÙ3 !aMLDlyŲh83V!U(jJU&"5,8,lsY222c!plIUH}8.zX4iV&ClŘQԧXr,Ef=vB[[o \v'yN.N5;Celڵh)I6,흛h@14uc:u|tk.  t1o >t_~%g~߻~r݅㕉sg{ٳ#m'#91\WO>N= //gv6ßj?{|{<'_0/?=}1'~.7@Sys$Y`"EHP ^AAziy)řt&aae8+R2).(& ˙]=sEKLD\JqJLbQ5D ]K .:_i/\?LYSPdp=aHrPW"iފT9&@Sϳ`SBU-hXsHV ޶][idJw~ d$-ɤ:IC A$#PPoy%ҩoi'Mgn oB #Ta0̦Git"LjYI0tC4D=*$mJVDYR* E mvo1_Ե>H"CC K~<-~?K{ye9fMa@e((]2TB"+RyEG֓i Z%EE2S) 31I&LbV]ըH^GJ-EX8tFhEa1% m!@sĦ$0ș2CU$C#aakZ(t]R$"uT"+G,xlҔ%d;@}xM1SfE!>;5c fqs6dI 8"|ZWcG6ugۣ[RMx6uj+| !6W.[oD]䅉a+ؘn{w.ʓXcOOG+pގm+Ov۞**_[]b]ufGIE;ROŘ<jVcRu!xCJj,tec뺪{p_Vםsb-4Ύ=zȑS2_4"z|>?qh40۶NeYرcmm!z4MFLy{bѨd1_67d&*CEtopYq ע*67m''߾ 2Q+sSTN8II$jӧ.Z7m9{#8z7iF Q H HIS$( / 'ƀ30H+d(%I" HՃ]ڬKo/at;9 Uý5J92`GJISN)#3;3C;V'݆80s;6ˠf+ܥTDsl5HE{#$"ܲw~mu9{oZAr<~{^G rc^#?Ww_xֻ־o7ڍo~{&{= ^3/x_+߶A{}Oޫ:w_󋏾܀}w~~>~~v|'a{~˞ckF/y޵/|aĞ?yl?;W=;oR~tP? /gʍGv۟o} ewj;Yj`|GSqFR4b ϥ [a# EpY %r]:~x{vh VQ n"eh0r\3 e;J]j<_ c,ÔL)H|Pp$$CqVjhP2yv{s;$Y;D7134IJ(]q:&*RJ25 h`/-g4Rv!i[HUaP,ySfgLj*T㮬|V )j*(M} D5J !bHɫt|j[4bfż뺘"`zZ<4%C7+?' jX +>"^D%FJDƄ Hj&RI %-SMS; !䣏EC}]&5!Ͼ3ݐU`ˮ0H  TX"kMÀhnQ(AٝM]ըFO .G>z[KۂkkűcNO|JITBtoo>KJ16s!(9/X]]Q.Fq?~b4*:tTY"FUCӧ϶mJAb{{(ޛ汖Y߳zoәkm&`XA !"2( " )Q  Bc J_?HH$A(t{Us {wX+TDصURUǏilX3ry}}Ӷm6EGՂ80@3>>:aji;oKͤZ^Qk?h'mv۝*l6_2B)[6Tν-V^n_sficӬ:A"YMBbF62c&#-ÈrNeKz+B1s’j(]C;#S#*EW%%}H\ b}گn{BnJ%TJF޲KeIxz.ݷNԳz[ώVvXӳo?_V'''ʹ"i#srNȚ? TAhڪkT98 V _/~έomgÿ?_o5?_7?o?Ҽ~K_⫾⿪~o;w?g}~￧ou۷o?{{x?=p??e}4?;dX+s?Go[IQ?S|w{gG?7/q?i jo[rFtѸHb!5c ,X8Fp5e/F>1f}j13申i*D9T±1 Zq8 ޣ[Usu: j+n_a"RD*r-F0!T9L_fqL̤| &SyfkGϭ03dC6o%ɐ@ld,y޺7{QGt;. f NrTAIM=U {z!Y6%v`ʖ-`VdRBɱLj1gpFiV*!f6l)'+M90}߇!98}>c%68۶;S\QĎT69~HP+zU*gu G3$PÄ(T%)c$+RtK9bCF#sbDFĵsЏq0긍6*I6#+ɕFYp\]јx(4J5ö2@hefνog_/NjEhޠN딷ÎD&WC1iE^^,o)ch~;o/{^]owj`O>y*v}Z.2$w^߬nnmWN'1vcj&1e5@f0 ,{OsM\, 0 UUYuk\dҖ$Ӕt꺾{n̼2s۶GGG\Uflιd"lx1ӓZq}]4ơOL6MS;E{w:O+=(v]?N9GUtZUq;Wa&r?ig$^դV!"P)U"#!23}:Fe)BD@2 EsQHD)JLjHـ$ Q名@;"0@9XrEkK`<@%6e;犢1ko"mVz~nnjI΃GߙY ?ޝ} _?}|>=|[w۶n'xq"N(TUcCuOܶm;4K)!~[zo HwoI+ݽy5QǏ#혪Vջ IT~_d(Y-}ſsN6BӰC"0l|Ku?\̰nDܐm?y7>O^`Q2ƪV ^cTFCXT3ۧ;`ɔf #Cӹij[s$Մ*F9ǔ  d;4t4eh4?|18@}Q˫ #G4{O]Z")}wn1=}z~./v>;>:'zQUU\0"ngn4MDrB^DhbLׇDc9Vb1ƓU=??{?LNOOӉn۾'nۅڦ9>:/f޻6l>]׻n>]l771mgD1ugs˜b(pW{}g> xwqbN1HlL.f`ł|[?|wݫW>y8Wx%c FJG%ë!)-%2JYq,]!J\pY$ @1 L\K,PZ`@ܷ߂;'S^ {f25\7k<tmѝGU{x~|~qr^Lg'vBfڶ3_lYo7fX}Lyd]IཟgMS_xo8?_f3=3>䓃1{NoM)QTJXd@M޵4ebD A!v/7+"}nA::S2Z'9>> 9q "2H . ({*vP C߅05"lya7b8PLR60U,@T8`6Ν;9 :ăI,'U5f+&d]2(OXҳ }/"2@\NJ:kʚ=N] fDe (Dsv޴lҴkr( ,fs-#9_?^X獶jDPj@$F$u@1_AAyi ]ߡpp{Ziqr!h޹i욪VS/v).-i8F{!X̎nY6l6U{1n3:箮eJΉ糶,k^oVH !\]_狡+!\^lYa?6m=']>$ĽËgˮM0us`q|hB(O?z^pN6?W/_ˏg~{5V_Z|#;j[lB=!.{9 ut6]y g.S5{rx^m^ (:h_a& Rc( T JHcE WNA bhfEbdՔ(jSw>÷֞˫\]mǡ~Zwtrv`\_^L&n٬6΋ Y|12(,ng \J;gGGL\~O..⍊M7f`)DCD0 BYāo~V%jy)b>rf#!a6G?b0Bdy /m~qQxo[ IDATdEY&uEUE{dSkH \Xbp^Gk+!,Fy -ucIFd\㫛p۝ .\t!*8Gѡ[,hvQvf&t(my2LJȚ(cȫ^nvy;ژJD+ 5Nl(Q%U IIJWbpF\,^ `mݒ(dÐZe?tYqh-o&>K%5#G[PhO 5'縪 .k+oVY7(”Rf;&PI24vɽ{u#ޓ4B!lw! 9@""B&Q]m5ivWŴZKh%*c4J*](v$Je0ez6đAd)=f T2aLEy`uXqy~"Y+XU'p ˦"j j0W8GJ֢r6m3s5oFWW7}iyW7R62f]gH]w}NI y<ׇ/EL֏6&>df)Ŝs9`qyEx}}MD/_,/_cUa2LӇ޿Z-7f:3Uc^j'$uۜ7MI纩ctڄA^-w,qV_^_nK_|tvtzS?;S0&Ǩ={JFٴA]Vf1gy:鄵kU$h!jRS%ɠ"Ʀ{]/ K 6[$F5+@.גef%8cL}%uUMk*YD3nJn 3)`dee?gaQ3Z λ&eBL9j'?dg$?~:)|}pAjslzyyuuw-HIS۶PSU䜽wё~={ǟbumG{dzS>?!Y&LdB o;#CJ4&sNP31;sX V`Q%Iv]f^fK7˰ZauqtRG4QTNJ*T eOD`b#+jg"˨ \C5p;$*MAa-fF8r2 :z^ŋaH߆~RMlmu>8|v{O.n'r{UjӇJ̲`98Gh|Z.;v0_1u"o2]/~6_ܽxիkU Uu|yis<2ë뫛8ƶ1ƱW̰6MsqqJ8fZd9rEFNfR`A0tjjf!*DL@ݺv_w~ѷD:N0̪H)V}c,ۧn7LB8nSUd2=lG_춫6gﱘ7N7MCu1;VP.xf E"1Ɍv\*FVd!C 1jL3>skGlDFALœ+OHjB!f DeȔ1y*m^]SW?'nstݻszr#XL-clĠзM#U}tt2 attrX$irNvO>UNj`1]6MSUoX|oM_ e.D xűA3@H`$ 0 ;<[%T \U8ch:>M_-|Gms}"Ȝ",Ӟ `V:8\>ݧ44ȓSjH ߨ`KTh )*!e)Dc.m y:Z-Dhn!s`rr8{ڜN ijb_P-H%e-TURL -f ֻu1"vm=[1J:vI=kYUMTLl9g5[=o%w"F1Y38ОBCn;J{|~ KJeͤJ{wN= fKH5S %xTw6?+/yvL T$1i^8x!1 (z1ϒc0@UaL KKr0d"XJ#@qebPSQU^$EH,'[YdABY2'11c@,gu^mij:ò%#Na]bed9B X[N3GH};ZM:e礽~z{QP%{j8:]\19StCѽ˫0|=,WY1OoG_ܬI| wO}[8z>+m6ULŹ''Ǜf fzCESXBuv"=0'?|>vY E9XJWMy@r|EU{_t&XDlW]Q͇;@<<:-{wNO]B>]i1QyB)%(&{e<ӔkW[$_yؤAݒL\ %S,TXdO$Lf%̽HPOie0。L 1+YHS1e0I i"A## 3(R!X?WWun^tPL2?yy~MƐs6[1wtRɱ SmA磣yi"5u;NaUU̴O|~zRu-gggggd:qU H~atPoMy6&rbjH[4Њ2)dT*V&veR<*A H_*T V熅v"' VKw[ */M6?(4q\Ds\=@dR8AaJ+ĭgD#HZBE1 m[X  #`].`Hr,ВPjF|͎NjzqIvU 6|N7XeESR#(]LAPxʛbDݮT=$/TdFصR}hE[7 y`қ2R11a!cŀܳ=Q[wn)O^d)TNfќ4'"sR,Ln[kb@jV |%'o;{AzW7ae:lb`6 >` )*(fNRĖd`SW)+eq\Uڣ"9' 9p Y fv)(2sY`q1S)2|嫺۶E(z4*E(kиl-&xV8DV2$Yl__uA=]mطd9djTU-&W2v}ރ}mʉw)gw'SXL"5p~s3Y瓦i˥Mǟ=!3{uN3uX޻NC5via9BJTj&>U5 !*c3999yVU4MrNR6Q5{rNE(saX\P#Go?8;= {fIj9.Y=93, u_GGr !e񄦮5.9SNo;aNo<[6^4ǺJn)s툡y=MhlscԷ> 3^FT@LL&F1 dEpj@*eS%jOgVѐE 5)0aUZYIMVjŔ)$K L7sf_M䪛ZAȴpv||||:99'}8/46I[ۤi@ɼkv٬../˫뛛zu#ml>u3'\z7ԛzSojO"$h^m VIsEm'0yPՎc*fXP9rYR┤JUM49iÈ,wT<4R2W $Utu AF@&pjA"8Ē# c,5яW ńhH df%u(3F>bwU5U)%'YJ-a7b )Yy e 6ia#sk9 0-SdMb(\^4vQ75~ZK[QȓCy/ |4%sS0c~Ԙ([ٰnzė޾ UbfbKTM]9GM R,#JeydC)@Z?6hY)#[JB~tї)o%^Qm6OؼUsq8$ͰLTzkU[)cU+ %cLbPteF&ZJbN9rlYhUAU[l$F"FBD"UhfMHaXƘR5tIF 8P!;˵l!QHQSѬRaG&òer|v)ʼn&;~Nm;d}Vɬi?zdw߾wj~ծKw[oWtҼݪ~f٩ZJb^ Rl6D$a ϟ=c֪r!٬톔`1ga*T[5Z.7s16Ч,T@Ήsv;\__#0 w4Hݮf1Ʈ /P}*?m۶m 2EsN!! ISכի+X2 c.}ˏvaysC/.^<~9M[/0{f|bNgެ;va>춽k&Ttf4$B}ݔ&rJ3 H弇]1S2 ) dE6db}w^ne)@PpR${Fle@JLnf!k̖J. IhCMYzv!fv[\W݅mv\={xn'Sn}l@?Y;뇰vv7L֓ڷtmT;9WMvr7scNv͓'x~َ}|1==9+y,bC}ozSoM,#Lbޅ9vIؘXq76eILoV jQ%DTĔ8).NEӴTc? C=QHieH*"KnLě*g-+ P@}H)I\Y3;lgGijpSY%Z̦Dv´DZbmcK}DU}|$TPڢΊ~~o?SN9ml54H\F{ZpjJsitP9YΖÑ uڤ%Pl5x2qR1Wj.y &9Z?~gƼo,gpxDЯ޷nT:A˿ A*#6*3Jrޫ^gÊ v6oJ9#3JI"e0P,Es63cJKd-eH1c+ϫٝݗ//???;w!M]; ]njɤ|uXLVs"XS}κZm.lf;nB`iæiRM7(⫪|JR׵\BHo:7}ka9% 5oIgC0OpG$B5dybVedLᅜ#爉HaE<5H\I(ِ R-׭AUΒ=dLPXˠN`po5 )ƈt ;Y6\"E ʌDHhdFlƬfP%Q."|r襁98::8>\LmV"ݐGF$Kd\y2])J@wnڤyf\=e3@ b)kp:?a̽V\{2#g.1}a10Ʊ. ]fl%Bc$nU|RY_׏dIw+=dFfjޝAp@> n ;;-Dfpqs`ף{Dn!HQ~}vXƋO }mtnTKE aU계BZZYZ}YLMXFfc_~˟F6&ѐz̔KQ@GD-RldM 8"'YK}L}MTT$%(lFhL= *eA-`jEŏDL@ PDT$zR " -U3b`L=B2Ee1Q `1 Q AA u7࿼nmhz>>͚6?7CNy:͇Tr}^]mo>~x@nݙQwt<|?Lg_| =?Q0~xsz IDATݥ qjx}}5r< 9[ߵrqqGf6Eu,LD1q|*f1DOdm7qvi~Ӈfc;䣊a۴8ڶe{B8A0!)mc0yRJIŒS5y}}h[Bۧ;잷7WW<ۇ<777}tO=뿩 Gq6!8dV P2 Hc 0F<e`j"..9g}1(V^]`C4=x\@jHB P !!VF]-1+JPSƬhHJ\&[lLȎC momz`N9~RzgBPfH/lX&DVDfjV_]>%!T>A9E!p7E߮bskkH͐RDr9qqR*$Ѐ$\chxh3l`JbVeZ),gB dBUZk=2dAjTt H"&E 5*eoۿ;g?{ﲒYQJ@,$*P}XU׊ƆEPH萙:MDQ,ZvT*)𢩈*)W B߬\ *ߒh9YK3HE%{碃hD*ǿ'_`F}80*a;{7>٘1e*4%ö-$%:o;C6ޞ=~7dP0ø;j.xvy%"b{|i<jJJ,?LmxY(蜛HCls38Uv߽qе36YJ _3ABV@k G$ b Q;vaw<>ygڕ#Rs΅]+ gWA"y}~zz>=߽1Os6iiyS=`*E,ϩ4Zn])Gq}\ *Cgxp6ֽeufWΠLa`/{jdd$+h1dPPU(0) ze[p2pFòfz$XP ki쉱V-YXQ`VƢ`jE(%Yةҁ<83"B8DشM׵u{[b:It’Ƭ1jy@FbX JulT&:J(n}6L(0@t%-| Q(]CMM׬nug]i}|9p/tq͐k版h2VӢ_9ƦM6fխ@e,Z*ZL@RաB)Hr6@S ^]HC@$#FrTT̲Ӝ<穤))$ rr@(Zdؐ#1:4b$fD"dDg^mTY,/"qU)239IȬJt <)e6"0B$]dVۅ+pO j&tzT Ȓ сS:P'g 8 0ij=1Wg2=SR5}@ؼb)R>8a"rPݿsjcp<v4hpuW {8%thr]S4ed3;=R] h EleC >E!"P)@MW8>bh)[s P=8BW[=jJ.BɎ:00UDSTfA5^1 \%r)oZDd |A#TEL&RrєaJ0$(THD(&$`Q#'' "3cv̞y 1c&6]@I23+JBx_P<!.DkU1}q9`E0=YB* ]uӬzݬv4& 7=(ƋG@OUPfR"EDT6ibDVHձwڀ/|3UZ,cf }wM׶q.{FTDsyJ)\h iRAQDUlEo/~ސ|Ć cӚ2& @%!(I1V\Iq>0pfF@@L;Gj| E O^vNj'Ze&!c=sXd Z-/ !Ul^ }v]4c@ ǠY|?<3`EL]M?vs4>}|qf J[$ח!})퇔dbv*RX,9 a&9%lڦi8UUU9 QUdI<1q u"Ni~d 9eH{3)9'ccj`L%DCH(s#s=cYw>>P8yjoMKqE8\\_ա- V-G!^9UOso3|m9@訦dXnE 3zUcPBJKG"3#fZX(K Y5w;gȨ՚M&P|0|to?_U7P 6ط %єie- QK*Eäv)XUx(J55&3MEQGcp&cۄw!RR Vfٵ hB9i!f.ŅϱD?YA UpQBhSۆfvvӯf.6pVaѶ2̫h IuUNY1Am%5ø"=(؈MŰ\pcmU1V}ӆMФYRJ84MIDVQuh)&PIKA2 R( lTe8oZr]4*ʌ5E`` Ljc8 2$yL>mI؁gb Ƅ䖝K*ʧS6E9usr&R`gkbӣ:% 4ojy̕h y;̖/@#0#d"Wk  91ñX4YΚ j1V(jEU@"ΚƒǫW  9U%tMӨ̪6͹~1Ţ?|Ôǟo}=m 7}p7~h?{ n׫2'M86}Ͽ8Kݻ{]z3#=RJS*]hPc9Ni~~~jc|!DضDD1Z19"j*Rynǔ={=Y7i2ag}֫o/8-Wz{Y]ܵM8MllJaK*F^M_]lĠX*.AHjŖNKdk+1#2x4FtdSbTʥ3)zLVj LP$.9AVdE&tTEh1tybӟ_Ob(ry4QVa=Uٺm_v)mժ`DHmU M5DH LĂo6 18OO[.IDL]hne;}"!zHR, >"KɕTH{Uӌ]sp <%XI,^-'7,ʽC; j1L`]|vY^J$#Ws*y^x}Ŧ 4=QnЍt(Wj@DfɀHI1;bv`I4%JsgG}ů~}ݬ\՚ sdf!Ъ_uj?=ۧpxzN AIpwpfBXժ%˜pL9KV<rj-@ /J)kGq}\7OKk,CD"„B]\96׀o/gӂ3T(X2+@PgFXiHl< +Ἔ PU134Zwc d(I̳zdp5 c6$Q8f Nb'84[vmk&61D;9v9=">4( .&Phpi& J|Oa1 LADCh]jj}imsv"ظ8+N&Ͷ'SSRL?E  & C1:L\0k^@m:ߝnwydDӒsy88S*E 8ɂ$[@V:}T!Q ;ë3x*|r~:~?y㮯UCPb$%h ,EP05US FȃslEiyDТZUZJQ. @=sp=rkӢf,*8-@SW2-@1 cB"D3EL T ǖx@!(!=vm}( )Y!3A<*Ⱦ?}l4]^@GS "&8.}=wDF޽?Ÿ|חor.f1U]x~_0Y/.󐟟w7ww*l#L6 #yjR&-r88<Gf:;ߤXJju駯^~߫*"HD}_^^w p8UcPa@CL̘2!X޹ڨi"ntLQ./}t0w}@D5!C94S5<ds0<_lCȌPTĨUD/FS\,'0ʨvH%@6r H@:+!NR&,Wk`hr2 (pqWPyvwc:>yu>E_wM6tmGUy'4wۧab!H*2HǶS?n"y̢RL񔐴 bQA}\cSS`Z)uSb mι[AER`\ :)N{D `TAZ2H ,P%Q~B&,V9 PȬ)s9(eM  ʨsN |[{w `g@QBQ&Vjw]״1gO'/ZC0UM*IK&- j$˂%Z& B&Ria)CAʇ#e XH\Բ-~ӯfם mqҡzN;)׻*S z^ln>}1.)SŅ2 j@?P^4x:Zoxs3߮(vER2Iiqqqʩ"R̴ϱƪj[iM1!b9&$?.H IDATW^]u櫳vR`(Uf!ghd QQ.$ eC4XTp!‚44â/JΈɑ"ypA+tƱzO엯)44WDbCaO_iMj {JOY;q+P(BPos h[\߸UY~/>٬7pOs1I8Q.~H ejؽ<͆(u{7펚&']to߾ 2OsE} t޽{zAoS1"l;MJ9aFqlk/qДzryq wwƆط])f`{=@e.kZb&+"t UWu+Le^\ZOGNJJxu}]hg7ϳ;BJۜxO9 ]>JeN"A2aiEdSD)X{,({y2ZeTPqWUTBf !brmU=cpU4ʠ栀fdRډpvj9 PPͲJ2- JBhPi>>;xGsmՠ >b6m]ߴ]״M O)|bzQ.b8gהpL|-ZTZQ-T; @ fc}qVmKMi M)"Es9MM7]߶.;#73DY*˵E?-d)ثy00,Ŧ)cI%J^W}T4i%  2,EUY0Ndf\M6 Zdo:H<4 tHQS4YK>Ƈm`E 1s`D@$$G $)bϓ?}]<=_=ߜ/?74Vt J9)9 ȄF &O+Au`#=9]h{ {`Ll$3T)Ԑzuhi1<bZK eU Ls>LiwaW )#fbA3Jm'q=4AA8olf́_=0ͼIa:N *n7zߪC$o`,i;]uд}=֫, !nֶ^n7\8lј9fac*rND0݊Jyڶ%rӽ?..6]W!x3 Œ~KtIDJɻ狋m~?#vmt;34'Ff*\yhiv[~7ݛp :FDy?ͫ닯x7\D$yh W]pշ]Ϳ_yfve6D<Pd1SP֟_"|-L/Uea"!VOOhz3b dcɻ4SI晤#n-/B{(HYͤbL([؜ۋ/o6߫m`Q _n'l"Jq}\_VPRuT#<].yC\;{N0ÂGM bF˦3@ZD [h o; JQ@P(du#j2Z,V2bHqٶ[|v#Cv@D%B TA{M۵udz}5iwDa|GK,G j2g̃)7&  2sᒩdRJo &((?j4vS.E%KN%'Q3eC&6&>r 8`\J2b&Y,"dij CJ%B>AK)"Z)|MBpggpyλ~&61F"*Ys\< LlպkZ!0 RvmΛy{O)G>]tw-,H]poFޣMir6^7pat]䢗ͦC)y1gȌXk@N J}рƱ,5"h#l־m[&oD+Yxy9@LA":sk(1#E3[l{2Su|t}\>xQں ETET='$8 !"ډ,NgGW H` `FH$ 3Qa A-@Q@I c) #\$t*V r4[Kgg}zЧ 3eѹ(aQd#18 w<{bh.t}l;vM FQ`ڗ(2"sq]ʸ!8nap؈@ RRiyTiUlB.w)8dShZRqY.& \17C+A냱zk_QݳH%Ua 9pvnwc)򒄩`A3:`bTjcs\bH}S.%O_sqcr9󶸃oa?c.TIJ1T%Ub*thA " 10Vj1#U=MpTQ;@4lfF4|WE_ݸ3[awǴ΢&~*^Cu>wb3Wޢ_@4}* l/{H(kӂz\E^J'BLVX-I d3H9S&mV{15^a~-I#lw_rznN=3E IE$QАp=֞͛w=[,nfz87)zgV!+7"N>23V:2bRPrٜn[cv4tNX8>l"Gέ:jԵa8lR6mN\/k~u{{o*g_r9TZM']ۛ^U3_/^$q￷]^^OO77닍w!N]3ls9sn2mbrN9t:-q3:>>^,*ݶu]΅V 0 U 9cI l_N:ơ S]l8⺮|P'mۉ:9=nʇ:TrMjFa`bjo,W뫘Q}CQU'uDU3 xRչkWKehL&JADB*lZZmƪ EA bXO=aT1NL@f̈́PqVݰ֜xGJ#TKAU>`"r(S]H)WjsMY{Y5Gムm:+4E+ &5Om>庩ȕRܬf@*4>HDw}+xxMĪ"Nn[mFd*Ƞ"j "87yr΍ݒA.'.JƠ?63M`f63H *-,vb\lw'0 @01@v9qJ'B$JIH,AQ㠃1VܵN1 dz2G8ԁc諸n&W*VKZNÌS1#V]]GAFooxN*YM!m\Kj6kZHա F=ja7 ,4k%%Q L 3!<*g2mFjNsC1ar0 kc뺒sUr}`B7%L^GD;QA]`Ӊ䈞W<ޟ۬mFBm7mŔLT0ĩEh kfardD`Y4 jTLJqI=8ͥlok&aHqx0cvKɤi&4CwɩHl; ŝeqPMvN)fP7CꚖ IG!_d n/oÀ^jݬXjfynۺNOrkwMSj|:׫rf `GGfݪZ41r3٩sý,iꓓ|rwwwlp|] ~N'}^NO!|s= r~zJjo\wYpʹ^Ic66fZM[ ,j分d֯{̺&opWGTC9\9gd2b ;9FxFYi b%i?a߂LMT:"9dͲ2!zyKQ_1r@UuT ̴JPEDaV})-Raz;G>>8dW19#P0[ތS7;(jN90XC/qYĕ>:M>% H|Pn|PֻnWPE&ZZy@8}+vħZ"(Bw0CL#YH{1mᔚP6\6QG $Sz&Fu-o;632(  (XbĢH#niu}G6&j07a2o=\TϾ~e]AA Rww=|I3݅&K0B*fblx2,P '2UxlGݯ53U\{EjLl6i9Hc5avNSH . 1sYlucn[qEq 5Kv*3HļDȌƼW  8ɪ0˪ \ѭ]8!HJeL "" `H6wty,0|"&IM3Άr6(D0#pztzw8PM`*+x8{#*F/5 T\4vfHWn51Bin3]lh62[ xUUUUEș U*ΑoqhpF3НɁ ܄IMM<$jvqdF#<\joТe1o jD BE !(uYT%9MNiAUU{/~rtxXٰ0\9ʚUa\ZIB03#V<>j"% (S]J &s.8WU;Z`x_ݬ F$drb\()UM{)@i,Y)ѐa\`,=157? l}ݴ&],};4,'oVtVr5TsRu1 g}<w]%OŎNR+v/bO^_^-/߬NٙqssuwǪL*0>vNN *`^/WQy놪!f|ud3IDlVU\. v~~|b1]d۶p,1 )b1{m[@%?x2/__5դe'O~=}4Ï>P߭\W_fi NO3bl9%'?8ϟΚ 5`ƃhoQEna1BDZ~n!'vM+U;b̵"7п_# F鐑!ai)cS5Hh!wr@˧˕^[)12b!e|DβQ^5x2?}2;=ojPrnd&5YSJ]899SΖ$CgCoydZ񴎭$[/460[zWA[ֻ]D$*Xb9 IDATS`,GɹUEc1$RAL~nf;kWM]ւl br7KmWTy 8d.v21È@Hs!9%g f_5f4 >9.fQ:҈/-Ԉ`$j)aH}'s mJ d&$(T{ǵsaZYWuqmEKB*vɦHvƬBឳzPAE16F*N\KzE3ic?l}*9n5Whn4Asii54!֜(Y2Zrwg"j^ P.G5S/s#.0182s *4;/WS`UL/*:=k\3mׯ>t}'5s;{o:{s혘 Q$Gy W|{l/Lf1B/U1`<:(|'h۶߶]M4[1d'f0Hbj>;~t_cB?z;oۻu$qNI6;Hy)iWcw{pン=$zEq1JDƻ zޭ?Uj|oQ 4ټ3Rժ9NyX 'KLjVaN7~} h(;W"(Yԭ.^gφ+PTU<8X<%EG>ndꎎ~=!K͡@g/'Q^ Q[,+?Y4vmھ1g(wD#[7`SJR@9Bp. 2HTsY$fք~A|֤lf=N0<>'ZLqu9@N%d] .n7^篟o_YA̦\|!%L\MNaz*IT%a`JXK PVc1Nۤj76qӧȚ}4Csȹ:蛣m}];"H#<m`dՌyy\Tj1s.y| ?9L؄أ;;FҁrP"mug71luhCV˦Jr## L`a,.~wmPMLCư]tj*޶q]O{O?껗ѣ>=n<&In./77 drjP対mg߽^t"RNK)M&ӳ3YVY~몢j'ًL0\WUyK8vGG _\.ÔfP'|tw^J?g7w_~qv:9綛b1fP?<LJm>y7o/>ɟ04i^|~nwϾ3Eͺs=B!Ei7CUs)EK}XORIdUvS&kps[ "I:k_"9p杘I֔DLNC9߫)Q.7IR)4~!/;!z qPs+ގi1?yTO*829+7B]V˸\}a>w+BE9 A4)h̒sQV|z~vruY?xo_^w, 4WiRv7UBuwޜMf[yL'I':<;<^-cCャg?no.oNO/o^_޼x|P՗_~ ]'ϟcfNjXSҔ7_ǔ!a>omSsS_^^N ;!*;>3"wk&z:'貮*fvΪ 2~25}{_}jnݭǿ;?[v'8ѣͦ|}-YCU/^_ aUNoz!iD,3fI}vy\Ɉ$jT׎/eIQC$JF R0G g)dHUif@u)Y2 pyd"[0r#NrLqnSKV w.v5fU5I}3s \YÁCvnoY7Og^iS41 4s>Fe @wZe/ c?Ad UPֻn.JPq`&+( y3z[@=O'M7?P5w)kקm^qq)_|)70e aU3b!+gFJ賶m>r2-##6}P2;vatB seDZ'^lWXPtZgŴn]بڤ`$Hm pN<"Q) Q؉RV"Ð>(yP+ʢT Ȏ@*g&eߪHb̲7= " gwZ1%&T `Ck *E% *T Rc+~D#FVڨdqF.l &lMT|z>9wgǺfΡ!?kPk"(,Yn%`땻՗/W_'8L"T͠}J]UO9D,GEbND:~ȥbcʑw Ef511BBrȂ< $0!Q_cD@T%Hژ;x;lrz㨪}e*])hǏ.6L%ݮNs^.qZlK6U|_ruȺV?|ɫg0T77HV*r>i]|ՓI78月s֙h5}7]Pd\^]i>IX8'@|^Ռe9CHT%<=.D`HF0#P Cd" !iΪ,{CP˭恜c)ȇdhVL  s3}F %0Q4v!hAXlC(0P=;<::wU |wד];M>}񪷤ٶo9>=;瘇lII4ֳ`盛nQNSCӜId $!1؏y1̹@`2Sɘ]JUdB&Fl9Y #tdH u@ (9U``K".:Z)R,R's'P\!삕vBL4"&c6!b򹴬 G"waNڭM&fhq%11:uLf"PxʹwDC]n[b.;(y֛A(]}KXv-+WjQF3fnujyCU'Wۯ+8eL5-'Vr ggF9GbKrj_W7X`B&-onuudQ$m;ۦVW u1YTl>ͦͤ  VRG=b0 myW G&"9Ɯ鎥kN[rHR3UɮkǮ\\mb&xR&]JlQ\, Ps"AɸT=v4&f?ZʧQW U͹J0j9,ÐS%%}1 C[;FȔ-È ʹuȲǕ&|‹R!J~Vɢh0& 3f-APNj2TkP9ǁHGt^崂`G %i" "P!3 %̒)&QII5_2wF*,B8N_qDV7˘ `@TSB -ߋQsr Jc}/xs7K眳sBr5;0qyq*pcwt;Vw~{p߮Mg:Kӽny{ ~$ۛvܬW{i L3w=YO\3^jS&F$% IDATιwW/V'~8G>}t_ݝʙOv}mfḟzXGpxU3=ަUMjiHyMr&0q%x{ˎ, 6>H2$s) -h%@jC^(Td ӛ`f->'$Unp`8ڱ~jLsvFsoY6ݝ9;:&iMLkHX"DA@P T-jY* ZbdDuD5(HY]LT HQLńF˝$!*5 36eTM$ \j"YۥMu~S%}}36<#nFJ13Aw `Z^PS)#B}3+j,P  @ ?!ɼܿ/}zXHH:icGԴzG%랡R 8:- `Еl(;wcS`N^033 xr`Ȭ}.C`C1Ca'rmWGb{%eƮ;y6vqbՃ|)rk* Jum f8ViuV䔋O4C'TU;Cj!*"Թe2Wׄp:!9"bB&tŎTVA`$$u>g8LUVEC_ff*E$g")*RNc)KI9CS5\UW9[M[Bb~D CPDPc"^$ JHZ@*ojT $͠h=Nzkk~Z:O !+8_7?of !#N" 50@aӉ%VԤ{rt֝d(5U63D(5;\Vmf ZԦئ X1R  q ݑEjA8999cSrh2)dnxb>?k?X۪cZDr֜rN&\ޏ'T`f?uUx:9αFOVYTat/, 'cZJbQ 4(US1~) b"Vv3riDZ rV63ܞP? eT)B U(` d4͂J`vݸ&Ȉtu-UDDfW` 2LT&%MǮbHutf^||?OepVTbQT&-IKoajD4c@`F]CM<|hNF: LXh$bB3DF&$,(]Q0+umJ6g]\tggGgts{zkB( E!BR[Av4wX";/gRUXCnAQx|vc|p}G˙joz'?a^}<#6zvgG?{x3k4%RJߍ0Ā'iCYvVգ#||~u #O>yTL2tWų'Odؤvh`wߦ'ώI>/=>:=Y6vsvz/?\8YaujS/>Ul;Vّ4 hA1@Oqn[NR|D'D!ZWklkJlP&1 Tދi%:O `0cQȒ)&ށg?@!:tUPybXClW=1R|L~&bV@$2Q pfTTCDqм \ o>$z%f}WݫD9@`c"RBft͛|( 8eazXa=LPS B= z LH2bRqxs >' ׀1 w NT!h;D8CjF!+=zo:s $`IW;Y5Md *ܬm‚ۅk;fV5 &D3 'xBД,hsS"b]E*8e߷~ tEbff.b.:ftsp}M]@P 'HCO%QJuP)o"bJǡKv]'AĠE@FIYGhJrpfνxPQc.8 d 2$( J- 4`:*nt[VX2 T;7k(8d.?z~z?zKJ/}&uDE0+ (: NDRVH!!sX@$F S#Dr8 ʦYD$k̉i"TQ2ƒu~BИ)^GGPqU_+@5&j*&jhbs1Mq8=}v7}77ik]zM(m);1 ]&'ӜHz[,g]__ǡ ؝d"e\^,7}|'~v}].f>ܽ,b1C)?Ge(_'sﰉxq8}mm\d͛7wwMSbi(jb)' zHhut|ۿX/nG6خ=%"00P1Գ0(fU͢E _O{L}jJS%|0U\r(F(Q.7F%pw=~{."Q6%؍8( @Q LjZ)81}h&( IW 2|WDpm[QGa@ghF a$ʎԓy)+EDL̩bO3*ہreE$aHnwۖ4:>1SO4FXJz v <.ATfXfGa8s.9g$ i&6w1"ʅ S>OZ":AOD?* a=G:xLz&XR:Ѭ2 zi(j-o Iw{[ols;sǁT"P,*"E8R:C(  P J)6 u2$BZdKcvPԴiۦ {*UM鐅:w0,Q4 Sr(3Sђ%ǜ\½DhfJPyR?:(l?1P'(<TDHpd΃4J"Eq CDN1dEE5El4/)aao6z۔2 XDhSUdRT0 5s,v3w|,9P~,3S"XDǡ iR2G4OuU\T tpHFg9xs$ @;1宗J"Ea>K I׍XqDӆJMbxʐMVrRȆPGb6rt%s*(+0˧5˥DPwӑ †s.SDF`RhD TC)O0F,>9m>yO rpw[Lܮ1e3Ԛ3P1J@B VeBd;TSKt(n@7fB\,fMf+k 1Pp{{'!Mm؍Coi+!RΏCpj52Ohr{w=}2ƛ뵉j&ի˛x1sži*;&KG%7]YQַ׿t1[tY_7O_o:|ӳ~_~u4 \ԟr{G-04B̋|ӏq PjS* G*^7w7ʇt7vfǫ71(}ѻfV1,=7 Rpl',ؽSG[: 6n"1PЂR䦔A},0/0'sѷrކ`~\A3u.T DL@cђRqC m]PӭOxРzX:q"[*T T26_QJI6( \7ꫫtj.`.bA03%TlEnkqz PRJ]׍c6=H p9cyUbeEI:v}.6lffR1WgAИs0&w&o{jR?MLzD艜CvTJyTH>x9x2։%עtLd5 ̫zN淃ϩd %eDs}4~vcsNPVAu"~$3BUSP 1~,>>ãaP eaYG ,}g9(oG^ 6BQ *N\uU| IDAT@E(#l=/矜' A[YZDU6#= y^UlTiÙM@@EUKCR@Svx}\ fmlN6݇vp(Ɨ7wAb(x=^.=dl9^-W_~n9ҀB2.l5&ޖc򭵋v6xX.bnٖ9rӍc̆FdE&3) hxKl蛈]y}7ࣞ=Fd!M (1T407B E7گWi7Ŧ``Fj͢XPsz;xs_0~͵V2tyݿᓓ2`JR(ʽkvbcJG!Hԡ`yLv/L_SX@K#d9YΚld} 37I4k /|h8Onֆ6c1gvD<9G@ <!*KӟQxg&ֿ'0+:& &mJM"W 8Ywn8l<0S%Rб;=_Y"cA |™ I)uC}/"@ӎbi!HL5L:Ď']rv%:_hlw\P+D#C= {}dyS:4j&j"D`c_e(sU$q TD`3)mqwt9>0u$#|L:K|ݮ/yc*)2zq٦n,IE&M=#,`0E‰L@1Ae,6Kx|6+Y8r2+bf@SE!4F,ha4#(;/!RQfRq3)kf ;f2fbF<998`GmWb#E$l;7˫]} YCti3fѓd塀e@4A6a…&"fIcJ1yᧇJݫ*cM dӕ# yУI:TC $TmOt' n}I}Kv@6_a1Lfd5ŴS%DfE`0$%To&ZX3h "G:m(]1e㏞_޺ sv{v<~J( %NjӕB^}wbm/lԛtgg |}]zt59#ʎ @7ScW܌}s;ỿ+/_m͇a{w~ކǫg mo|2?C*yǛz;UwsZxzs8_-Vo^]nw9.<{wsz:?;7y\.֝MzGR,g9O 84iMe?\نƜKTJrӄ?RG{"9Y 0g8kh A@"H a5"dx]\>c=ybfdhHDcjRHVXm4=d!El i1[oŬ6ҹyv% UKGE8ӣfpG3:= hBs64ҴAɨБ1+A>\ 2U$#4Zx`nR{+llCPC6c4fc`FnBGn1z_EWaVRjĂLLi6Ȁʧk bʹy$%it' PG <=\b4k߽~ݫv<51]Rln`M_`ٰZ^awꎐ<[N_y/#7dxs[ìG.ne̞?? aGY >/V_ )nwZ/~n}cJ囯mۯ~7W~˾La`8Z-NN$}嵡}I|[).N?|ޅf#e+]/{v] s7oGa (]E -[tcL"io#r2db i@ x$ѣdašA!$CRP{8O'6p8QᣵR^_+lșDDy7G`%F_ئϯ߿~OgO=kO$I"[}yC8lNqCuBw`T @ 6)LEA Lͧnooo?OӧN Bӆe]d`VxWt ꄈ]8瘈Ba,JI'[7&ֿTๆF'ʉd\-DXQ=Ypb1x qdz抶1qHg[:9 vՙAq}Go.woōF E&D0% V|UCIRbH1Т&Ŷ޳C眂!s· ɃsL9sΩSe5#LAQP  '#QՒr ,DP5)ZOHutuczV'%nS!Nռ"('rh0tP P3AHguv]uZ7`ã9~z_OgP$<ޛ=u9Ttf HpD]˲׎orkI5єHq1yk쇵DnGP +3} 0 kCy u:z@`:?x+ FRE udو oG^a@( R-ʙ}Xjm2*$PxJJ kk_<_.w7_\ɇ;!DnrqP" a{D2- CU f\̮OҾb_m">۳OG刃+=BET ZesBMٹDr =BZ\}d7Hx:xz{ޞ༩d+3=")QP9w(C xLacPUCf[鴋MPRVP sp;멄PfƘ)%M*vpYƾwO)@΢ 옇gH,BhؼANLA6P ̅'_<@ p !^]kf--Iv`8 pp 0#*Ў*hߧ!j"z(NF Aa2s$XV#_/_`ve  68*E˅ :D<.yb աp>_W)mm<;;{9^\]Ghnsˮ^xT{0b9~YU%4NW =?cZWdg߽ǣb}|x4W18QoJ"Uj4^_!~j2?xWWo>ާO?p55$Yd7}~$ՁGy.g(*` Dbg U whއ<`tcfRQv!01a`,,bMtha6[*@0d8;)3TmruY7YX&o[P"XUcEX [nu}__|_.LJ?Mʪ1k e"%,K7[绖vj1>-]7n?˥Aú/=Ͼ>xxگֽf16m3(8rn~ۏ>0\B*(} ~p4? y{ޞw*CV D%%!0&W:/g}d/N z .+댐K1D 4nPɆ]^,N P$etinn  H*8sUՖU]T6O.~U< !x;y֎ekncOhHJAwTbGHl;UP D Mu bULt_i1)Kܴp~./r)}  t=xLAYP҆dʶC&QLL=Ý}|p'fVoJ',p5{yb(E.7uMJ2pw2&TbbvǓq=iQ*}`bvv>7"ۀ!%͵NHvٕ9<;rQCYppH(˲,KMz8;'L{ìU1eτ(j9YV͢YE=bgʧ &dЁk CPwa>\q58;ցfTQSUmۭWҵ !{T tA6ɐ{h,@AP-C֛y Uy#,O|qw %hNA{֊a{_}'>W鴸i՚G!]VU3#A^#QO>/g~l2+;]\&d1墨ye.< pE@lbbH4*aDp7c4$F#ΏG V\ųU{3mf#6%Kl\)Qi vvn.~}N8IUdVlyK1-.1 !F;{PP TRMkoj;wawYuo11//ǟ{VM*_lT19"&$b""ށL`bEd IDAT2ȰIm=oޕtGvuveUȇɃw8v%Pl Q %jUʀY5!;𤐶5pȋеV@ @pFU ͐c;#d!Hg7UQ5n=kŽc/ʪN lV(|`TAbh_ptTbؔ4-]U(lBejYR]v~~p7"*}$ZgB $%vP53 %Ḍ:6C Yl\}|r?3>L\!X8$G## lY-ej`ӻ-]-jMN TL6"DM2{_l0U(u(4`MUn. ;cͻwL=Zr/tDl$I<+-{Ga{MN:}osԑ.z.uLISҌ@b+0g|@%:8lצG019fEr#W*p@M3+" hۭiѾg3HoL x\Y6QL#lllg Ibs+ (.N=B &m`..q~j?_r(Qm& % v0&Lƚz5_.:w0ziͯϯEWW 4; ;eM񳏯˳;erݮRP V^\߿ߟV-Xvfl:}ݫMiZGw4vUcLr7oömV D >OGn}qфqQ#7Kh뺴_GWzL&ޝ=@X앙S73Irx\VT95Y쇁nZv,0jb"Qgtyt3:oSq_\^^\_W2o~￙>ݓGwѳ):٘w08ļg<‘n;E7 @z[A=o]A%53~Hlޅ2/ <9oG̲ rʬMz dEFbLLX"P tt3=x1]͚ncaHm_\b *hDu]fdBBSYJYI[fԏ'ukr|Q !Px  y$2UYA0r4-xTsAk Ŷ.YȚMZH l竄-aL@2L&pySrT$}~&@FSd2N4 XByuՁ"2YJFV *'vñBWY)d,`8!X4D%UȒۤۤ7[:vN+=$*5%B"6x9Qw098'մ(9'( F ԹDkض9jIYUӢE!傜)Lz[!qR_>p7?:,%¬cSDl9e@uTM3"+!01 ؟*&pC5=+!nDC*(j%pA#f0U<;ޥ Aآi2> xLl-D-Ƭ)[_񃻼Zg<I__7$t~y}=~&[λw7^q\Oo{)dzɉگIˋtT>VՖy7)%UPXGކØ6/Mi.ݩiǢĻǣݢ;0/ -$,*ڠkEKQlDDI 9k 0DsUPuJEY6&"TLtSUyvGc0B8fQûEL޴|svv)7a7QW͗>->ywQyX٬-D՘P2YBrX=BH&IGiXz՞_wJX&py%jHWpvwv_]~jNW½w=;DV @(Pqh[ 0ya69ɀE}S5[='<'D 2!v313{bvvV>D&b9kYd}[>ƶm7Y}c2316E"6U5l*0TLv8*"0(csO5JwY9olT Ki1(x캦)KK5H\T$!Y\W>-1 I$8b*Fa4 [($w$ӈ ̠M`!єrTp:6BPzQ\n, bR^eG#ĽJ51fh3 s &朐RUج3;K 1{G>WP>b-.//kѮعIv8Z8&t<fU9*BI<ogCHF 602 6MTxcsЍq6*hy؋ :=z%U!(H6U3r\8  7yOރc@R4i,2~+mFm7;g H3 YKBXmPp F|sPVϨ:q ZPu<3ft (vo']3x}\Zdmd\W>,h׬U3hUY-uUQY3|WtZMhUT7Z6iYr,xܷX9Z-6-,.[JYHʨ%!D\g߈ɇサGQ^,`o/AݭR&O^B(7StuGO~K_bfG}7?[Wd-V!vsfC@DWxyvQֳr2]o={s^__J޻ß~Z}:53 `$F޹a͒yQ7Ml@2H%IDM֥a.yt{!P@(.y:.2}r/㲅 fx~~޻_Ʉ$xZidӐR!6b//joW*p^eюk03Fsd B!`|d'ng/Y͗:}}p099?ܛN&#.D88 phn`b&yx[?{x{;z{ޞϽ]z[Hj*";1%0%ƔHQmv6}̌;Gw$,eݾi [03jc *^nåtQ] ,8Qd( iJ$Чm}bŽT 5ԋ6#йšUQ5J0e;L}jQfbLh6kh" Xp` )C©,IHJΐ0҃Zq7=Mt3*L _`XygB]˦Tb21' Z8)`A"4 >s8MI!`2 :gH lrx4?NǣIjwJjfPx&9.yަWr0KXC*v8T4;"$Dh7C^cziVPowWal.a1@J֔sƶ6$D,clۮ{UsΡFFߔc @ݍO8uaαs4 v3(U9yOCoDڭl}7"8r [[iۤP. D4B-%wDƁWs@f<9aя{I"sƹ4-`ơDB1bݝߴgWz - Y eHnzk#0( WEDeLÝ}x!{⧁PI|m7}@Ƀ$| \ -KSM gu0}*<6CF#eD2jKYA!!Bڕ@4lUq*l2۟NƣI]Ԟ='6y[D*DóH 1ƶp6oۮܴQUCYybg0$QWwv݃:7d!Рj2Ȓb$=dQIap.x w@  JHLVcݿ%P H^ 儒5k6ځ7;PLs6qv. H%  01&AްzJݝBfCH ɠ7l }^w֚ azs01kW4 %ե,tǡtmi PRLmKeN*պf1KәoB2lk9i[횴o䝣y_W ;O='?DuOU/r|'Gw?O>{GKߝ~gLF.Vw/^>Bot K~su,ȡ/PbVY]쑡zQΓ߻_tNYo`I;;G?̦ƋZ7ƪf Ĕ@bb;+ nPA G&W%Rfeತj{p~ mg & Dp<hjI 3Үz^) :ua5p0hvQQQuha*^_f/֛e`Ӧ_<^#}9GJ :K^7ËWpsn0 \+Rq9T$F 1C5fwSLFE5M'Gwz6}6] HHv}4nR:mjRQ)=''}"ҰdÍ yϦ&^DSo( {Q)If>(k i:av]nj  ol}%dXxLh.Q(&H'z|0Mj$ΩPz;.GDS¬!AWuOaS# 3U0 H(4KU,d)Azc Z- [!2:ELdM}&@P6 ՉfN[2#YJy*VCdN{A%VWȏ}x o{="E7`ZϦ{bpzvٕ2G8Is Rƥ28yw9ofݛ8<=ZH^5K("busuZK 3ˋ[Wl_ƒuwgf^ΦZPN>w_|wǓq>xwK(W{m2rgtNmi!9_EQMܬ".f4oȐCA{5U[?m=oϿyD~-m:B@E3,}[fODfs}9TL@o6Qw5 P3 ]L(o$èq9~1# g"wNQUj6*@pΙ"*Ky #!p)1GRͦe3_d%vD@ LJ LٔT]nTUe0BYStbuu8i-e=%JY+~b<|6a65$# pj*(h (0@`wa}oǜѭ 2;I5sFEd7/뜣!bBpPd10AUTT^g,)bohJ@m דr<{e=)9i IDAT b?`܎v@|&t{DL6۾\5u]u]`6pS49R<9bAۦR0fCEDVWRKҍ*!f5GEl]i'z,*dB0,fi6l#)`ΔD@BT j"ݕ@`8Pnm|,&ɢ*v`:a`|UJ#T,n;BBLSkM6ʮ 0;Go>v]xU~^&ᨆu i>_sM.ϖCmkWGa|鉏gŦեAmr=Yi7:n{ŏ>~?s}h-0Oao|IR'뗫V^IFPz4*+r}FL 1@LCFJ7{okI=Uu3μ3i A DaRpwnǧ:{ D9U{X+a0D,6"@أRC$5LS}ۣ|HRk*`s/x9Ÿ0IfU ᦪZ;I !&T6Or*6K"Bf< (Co/_6gγ 7 DC>p\̥ΖemFxo9Xv96W1]'Ú7㳋fӧ!HۊRM-9Wݗ g'"C8}:VðZl}`)E^#OԥHBuՊYQ,CmaF 94s%n\{1p$'TZKCb`nI; RbT@ʘ Yш DXz-hy 5JL̮a"v߹B.)ƲNi"**THG/Ǫ3E$P-ևHr9SG\>|n^vD~6 ^v}3!0y O%Wu.81Z_=*ՋN\^D/W~qvun jUT^>s.5HPr}u}|{!_|}\> O_ono./ >;:O^1p~w/Gy|_t$ 1۞'y*yMk̘gJookq8rϗV[ٮ*hzW)U;&fV"3H]2X`œh@V:H8rz|s[^TV#7ӤVC3ػ$YZ@@B,f3dʰ#& 4)}r_᳏G3\˟_/~QՋc8(Fnb1&ERE _v1uzڬ6+1Fb2cew[ Wpf_Rl0Ns_2'v?L)&oB?|WA[ֻ;®}isK,gp|fgg'j)`'"۽Ia֨} "f9%` M;lo}BM͌dͳSmi7B'ȵHb LMb&jT- fe.Vs.z1So\B NbO.Lb0 Q+'^"zYd)yJ쀚g V]Jc|2)wӕPڥ](VcGT4N?bwU ݠMyIoiOc|"]h$f r2VHq|\ hMV0by*)yMM_E8R 2&IHlԺ!# ;SeAlZ-!)Q-(FJɠZ1ijmv4p;q+ VW]|5( 狀}ń Cf 0!jU!I" $>|q>?2|ug__}%܉9fcq*I/lVB8~v|yR뗗ǹX ܻvw/~y}߿)C?Vy3ijze\'z__E4\?G/$tw#/ƽE޳=~yǃ曃in|Nw_[os)y?;v8&Fj: 03ĩCePcZ*yk53k#drԨܫ=J>IB*PM›k v"s6fwQ"Xt,4lNnU3kuV-:U. ]npy>j6lG/r&wwje!u0yRxUwY#VN]p7Z2c]n[g hӌHy8&[[)[L©X6ۂDa"f&Amh9quVwZs7Z`#r"%33-c*Y2Dkr{[m-@e&FCn)׵6B0ȡZ⒳s.H183SdBC}vN|/ڇƎÐ, K@Oz*X S`e&Qu7lOa'[1Γ_ dE+fjj^afC51(N5$ٻ2*,JXwE)Яvݡl;W~9،G~y\VgJ]AǼ:դ.jwzs[y?Xݱ~zeyqɫ-78A]Kuzs9߮AA-;.A RJc1_ Cn e"?[׼ڎc﷑^*{"VR)O1_qSAěy\aCXKS8 XܦYj΂GB脘5TEC*C*#j11ZdIRj 2' W(^2" LijkSJeEfA[,’gnR4}M϶_~oq,GOΆn>nSyv_ajݏKw{+Źjk:U>uW^ǃZFp-TROwfsҗoo Nn2}fǟdy.@<\t;PT[V+BI` WjBE|\s"Qb憾Kn6 պOֿC.yv;yqlJy07QcqKtb`yAp)`,)nc%^ Z)=3Wr~7?Aݮ0[2-8~f`?5Ό[&Us@LIDuۡ=Z?}qfJc։XR9A4OB6ԞM> U x8lsbQ#n"5_ncВ 3uRTp{wxzws{FͅBf oIom;*wz~3z j;9Q{ȶ&"Tai`?YkM{fNy'ԃ%ro{.|'QÎ/SE($FfG%e2sHXC`-bn=OS@N/)VI`*9v.< }}L6E.R0F_ļ}oDf#`wHb&IBN{JPP+QeAż\Ѐ Fu$1 nGĠG'dC |>$|;O|=wb@ 5bi }}"sJcn r؂_ٰX ."842Ms~ )TkB!pB캒s-u]qnnWӆ;CZ]7#ZB ]W+l!"Eqe6&bXoةFc4ffV:93$]C@f uս db0!8 O vPw2rE͆l^nAx #g˦foVm]Dd*w/o滃VtlV???8zXxy'Otp{yϿ.!P\ QՋWn+4*nL9oΟ=}ڽڪRq b SLB׷0w{B7w>T86fiV;&"1ȣG_^~^NkVwur6c|w_i,S~Xp;#M"}|o/>ŗwkxO5Fj~zz_2Bw]P1  s]n Y/$ pll`uڌhA@ aK^P|@h^+syyl-'2?5uAPM(բ$a"7᳏7o>GYxvBo!JFjc2}*S< .;0VRZsY;   Krך3̫[:uu\8F5/K~G*wz'…klZstKBކG lj') hA۵2-l32n{";=ɖN=USm 4pr+DZ U"<%\=۟,$RorNN "Y|",3019QsBWUV,%tHA'?UBcncٕdQh'HMɝl2y,0BnFGX6W(#C\9PӋ=r;,8jD'].J*y*'/ &}UsG8 \h1~m~_|U~KW5n'?*77j=;8a{^~1ɃuQR/{vuZ)KMpY8z\5λ>nxGg+]ԉ@FFAU8Zjnuԧ.v=uDi@AH"P"009~,wΏs2O,b0g H Pii 8)ZpSk,L!f&#lJ<є=+Mܷ} i DWxTc6dչxuZY!D"`B"Jrv"J_:Ο Cy|!J7/-xxr+)AmRs1v8{ryݾ_|uǃ짫 oordn TGLժy1?L(w4n5\>:/6i! u4\uY) QC\nNѥ!Et>rP '/ :Pfj)x$&/4dl88lŰT coZuͣ\%Fa&V'Ur )4 )uL^|+~~;O.=拋ۿzos,m B1&bI4I32oh[mAZUhy/Z#ZLua<̔ y3IoyS u|Ouq[A\4 FTgVRCqjFp*b}Eۤc.Cwޓ镭;Jb\k .L(߰`uj3OSYG~g>] GV~uO6>D.gtKZaEXqew$=g?heyz6^ %I%^@qTt7og__bǻ3Bax gl]C䦧ꢼf/=\ x z!RYcl<݃(X8q;N8l., &>uqCH&P$b37a5sH1 J%υMz 5  pVŦlsIa@HHu Zx^Rz^9Mj{d d gwBD0'SPj!8Zҟ=?_=;+"{;_ܖ(7t~x_77_V/C\ ͱC V V#]]Zy_zgbe\|^qc Bjy.q= ð8u"v tAjU/խݏ;7ISL90!w(|,я%WH&;]OGu<2k'0xNkw?͏??|JpT,UݠrNVE ӮCaW;uJ$IC|OC]QXtZo]_)` ɥ9C cו2<2j%cQ՝U9WP2;KV@s0PpJĂ-L )ǃeEp "U6&skX"5X9E88%\A `nD 'U/Y<=uw`X t2ΎxX^OSF"!W28Ƣ{3>GϺٶt&t@9|'v~6g|s<9ᄐN 3Q*bm@e4WM1D)&Tc}/vW;(a-u$ΣRu?^>kS:֪NTl]wwyKOe}W],wc&!ɲתV9ߎqԋmgaSi:K(֒"AM0SnBWWKsqXyU:ùwHU0ŃzZub'!DaY#oVKUrT9#y B0ӳgWhtK-4M+jtIRCD֐hTřՃS(Dщɼ`+grLꦰt9## %!ao5׼%QUj=QrJӼFjͪlsE%Gچ~۾A (6TWչXu6V#692ª], ΊNi @s: sޓpuGW?<ܼ^uœ~u|8_\'A~P &b7QJl^ m.6uֹګWuJ{?y0$y-q6tr֮cq=Hxuoo7gێ\ba1k7a>_;luGǗ qLHm WQ(6 %y|}]7|/{qS`]qEU$\zB$BྋGQ=Wh<#׬h!P$[{GGN+ D&d脪j1ZDJpo&sb5S|i E؛;$r$s!4~ŧ.:񛻽M*>5c0ko\X?1 0N9C909OW|<~sGJL׫E WweeLJ0CwG0cq^BMܦ %ggD<@VFyZjKGUpib:$}Gπ[L!ATQ:MnE'bDk{z~~II:&(66{pd)___C&^*U5Иz!}6lX u)%xOv),)3ЈN8Mh, t1ZtӀCG{SϖGTJL_nۅ.DנFH"sr,ݡ pƃ4kdn^IBQ mY!sL$f0A T e ٲBB $]<{(Dر@@~BDmw'7QWBCL!,},=:d }4&@MɌ*\A^"I+Y2"-ܺJZWQ*˜qܸhF (8#Lq%CY=2CP@Z s:q7j&PnG.Vyj X'ڏuC1f>J^c_ FnV&N"́ P6J.=N֛֛lXma]V^~$*@!k؏fJ )rb . ?x\䚳 nypgD8,`bR1qqHJm|7C  a+)q3,2Q'J[ɕ.h%C8yZrc~$Ak-fc#a6"5PZ<++xIpԪn}"tBO23 d*5ʑYlGrϟF? =_7E,1 3n>F 1gӄH yJzR*eKq._nǏHp8&9c>b }YJ?hD'ΫmB!ġO^8UX,|{}0ozh)u*TKM$ A;y$*RDchf*}qeQ0*"w!<"INR.jeR=Ofֹjvp%myEȐl1{H<:)E&'}XJU?eY' 2\-m%LDBmaX;qv];S2 +3 e>xۯ?/^͇mɟw]h=(b3T~Gs[+;LS{zTs CD0Ӣeq.!9J!-K[ҴZJ)j*Z2߰9F[zwԻn[?@F!p,81HH$8jvn68M ԋN۔HnJj OAZFXtp7:w锩~/_ 8񲱶`EsosF;uӲ "''7v Wwr'!KU̩ ê#G|^m@CL4!# p2jSȐ@@x'qĬhPLw!Vʪ+VDcQ8N{ }$؅Q YU*t~_ѵr 0G:Óp{UXvo4;d\oׯ/p}d Ub(SK%vr~R Mê뇔- foXƎ8V6o9;E kVA[ Dnɦ/OyJ &DhjpJ~2 $01)pQ\<~QKjHCއ40#hDfA^|": w幝79'4:}yz: _ߝ.I0-! ǣ+"0S]tVj^j)fN?X˱p<=РV- 5'y( p5E>M틯y^5az""z)oG/B.VMnWq\^Lfn-pᐁHe&wL1XA1!a,L ޙ5D3U(pJQ<u"Z (uTX<A9x ĄͩxMCoe5rv u$oOt,]vCp"?W()!On~c]emVe VC8~ۧ|ꖍ}wy 1{0y%;Vo o<ϥdDބLQ$&5UJ] C V\q?VPq=߻Dnr]Y|Q*" B`=щng,H{Js0hj QB`vg"!ݔ!ƀ8o7?$wxX/\g-{-WE\ݎdc8ALdj.=Ӿ5m'pNs9GnVIHZSanZfzrh)Ԛ% H Ԇ;FI!J`)p*OE퟾?ϥ/qh]'گ^ K` !!1!$7}Laڍ4Sc13cS:°>^(/:`l nnK  !xͲ6͘k9]b8 ƉC"؈<1HI*[ra8\MH ݽ=j[ 5((c7vs ؘM׉$Y~k_%QY/e\LÁO,}1"@Hpg4eqnbDH"9<=k} 0AZkq?yb$f_(L֫fv%`CʼA/ 8 q~?%|5|Z<|_98 ZkKI\.}.r8N,1}9 xi(ySkf08>}/ݽ*]߼[b'Ih#Q3XlaLW_} @ѹOY)0ƑG|jdR4ܟϲz1 /?Η%)P[7B#!ۘ6j[>+& 1Y5#j=̎\E˥,ZfBxb lbcȦŭ[ uM+| >AAf}]J `sݾMgm[*KFUptᣧHٔ1wӇ/ڑS Y$ ڞ,s< iCN26~i{d=#Wpk ͋W6*>vi˼??mY8 #SȍRhu13sc51Kqӵ Uӵy=.tYRsy@L)׊"T"cgY*]_efLm %8 1,yH4 0N0CRJaqi6P6[`P ݞQNcȼ<7>a,, IK wd; u^תEv_|v.ZȞjkw}->a g]'e [V[):՜`U3;!zYeW7 |]@0++ITlKAH ) RZHmo֯vIEhUkQ@sKkyn?ݥ)̬!ysr8 m'~s! d`_`ǤVYw7O}O crܿ;GC /nږZ'{\q=VP!f*z~ S e#3՛iO&Xj]PW9]y6]UU%AZ!qU>!hk;=8z[a~k~Q(Sy,sv) A"KEya8} O!ՁEľ}.qf+ݗ7뻓^.+^<hԔq"4uXL~})|"fYK9KSaÐd"N%ȹ}}iL(YMvy;>h;y+F[ږ^0uto!WPJh6dKZJ;ib73VA܇PGi6W=׺VBw=,檺yHpOģ9_ח4C*"6ȹsYtۻOK{@]p0EDmX,83eIjYFk7SV_Ah*O}=7= 9`J):EzY\T1Vgw.nw_.DWĭh 7l.^!1ɞ0/cB,z aϞ47慨q<Rg|[w>>o?~qzod[jsw$Yét>VZX6Vfsw-Mժܫj3=P[qdQ2sm5 aKR0u xb<=3+QC$+Iȕ9>I!dJ]ߚ8Oxؾ>~닊" )&NIzFCqӺo:<v ^ lܣ@RNi\ؚ 8nRZ[E[yOE.ⱂz\q=.@)~ظsiD",}OTZXUMݣs+/{Q?Pɷi 4tHBWu`aEɮPzh@BK`L70~&DMp´%ILTA(QA!@_ڗoq\pQYII̼A;4 OSAAsYH!k10 TεC!l%F%G 1s{0L|ۯֹQ ^zu16*˓O?VuS֯@TDž7Xq.F`fU='#7_{5\A5__V=v)%0QXRV9Ĵ}H~X{v{9 [L,}}r%x|,eI1)pT_W}\Aҋ/S-k.\7k*Y "ѣ=V/˂$`]χÓ'F>y:ml7nCO+O_?.?z/޿[_@ N*C`ނэF{yͯckzu 6H'ʩ<_6,6WV[3u0)p-ΚaDy8rVh0opq@@`;* 5=3HcH9LQI` -EtLG ?;y.IJj<鯞)008RH֕ )fJ6w(KHW'"3WVVV-E{NC^ߢJ=_+䊑CP6 &2m}U2f5wz/B>BLDַUk'mP]Ufuywk̜zr-CAHG.l٠]frEZO|%w$y4 S YRd""HB1QLj@cۨ6/?1?umoWo <=4R JbԮBVPc5o=wc]Rz\gi1(:pZlÇwGeVu帜|Y/MȻGר=E/,ARnƴ4w/_-yY|SłPCEA"Rc @C1abaHyÐR1@(<H+Z_+m2vv t?FǨuדF$fa"gff+ L)088XLr`!<؝}~YRQ=8]}ݡ ?-qK{*ԜQݏeYn}&> _NG+Y55Hک kurHsj`wyCp;~~x}U[Ցvk,Ϟ~MNj``A1t^jD!/M8u.\fc#묦;<DKsRmf !Iu\wS5!4vniz`?(<|yʻT;~{듧{I*(b]IRKHzK@Nd!z h HqwWr3@!$& dFfa:Rl.f) =\ 1q$܅==^D3ZSHHāE]rEW± K bDͪkp?-g_`~3;X6tf?sÔ\D)HqUL!:77Y M4+JZˏzYz\q=TPI:{ÇUw!mMn歳e):<կM[_?|?!&f܍L;40Ckl,b3WVmeQC@ reT{00gd-$ 99yb3Q^ U+۹</kvY1,xl. Lu:͡i؂q:HܕٕͥWoz̜M  #u N8QB#ERe\rzZme6BE4 ֵ~ӆjT_]=y qHCv!1e!R(!0meIa1rJ1B9fH a$ֻF|oRk^|.VY[voYaWDpXs昣qU;w8Y#]eqFkW]{m&}\y,Z\0Hi^f-j50DJ) lMSq%#)X,ԟvw'f"v0H!,npC'b`B8\RJ;^/?u~ŪH!^7V"Dc˸o|C.@a3ayȖ W|:^wr/ǥ, JrbT0i;T]R%8ļKyaw8 t B^uV컫*w=d顲^=TPaù:d{CYgW25b0תؗ*wia p#9CLyH9،Z7q#y0$e4}pw/4ŷc Z`dC9AAN,@ U{ӺVW+ nd܍/v}G:N%V9E0- fFj wGS_^r^K]Vʖ7 q׻:0Qz\ *yC[>ҡNfS!Wya7&Zg†Bb{O쟆:Ь3$rVjm!4rv\qZZ luV4 V)N5xؕpw! 9i^u4Zr:.z:.,MmUQ34w jN9,qH8q)L4 1K(,Z!gfP]aDN!f $)۠z[nGӃW4pVMeI7`ZZ:5ՋkԿ$zk2SAbFL3R0%".4 >2?e,fs+g"΅Ȕ\@.$Ff0)FxT-D;qf{}pYBfXU׵6Wn@LƈivW˫;4Bs0[[r OGW+f< 0&8H 3ūS#[n숑C#TU$v ϋ.TcᰏZۥi4x)0bmnHߜ>l/!}(U!jo1Dq&+|9dL<$vJ~~n\ߟOpðؕ817P0BS41޽OO&z*|/rUٳoȴ#X #d.4z+}{ %=d_tF z5ML-bGS~O33h$uU#ޥ3:ju' s H]Њ*ll]/e|uWCĘi&VMM;r <'E8LU0)ywx"]˗i$A ׮aoh'"brb7Rw1;\Ĺ`7Eu"țתږs]mAS=VPq=77;6}3Q~󞐣08|bJvG%lq;uݸpcgl D$- arb9c{,s͹|]=kgyaln$4qCKm[.olw 8(3H-80ȳlU 3q*Z C6_CzdWEU @ fa{EOTsU;mn+3KIBG.rkmD!c( "i Hp7(0S:FJ͐ܤiÀ@-JVJ4RHI\`nDX 9*l7w?ٯ]럎>shm =dqߏ܉]֜A(0 j^;)7`OҖeYָw1r_9w]4>zz\T 2s? 竏ɺJ'#^bhf̡_.Z֥垧dX6]HQḆ/ě,,*&ViY1Uu}P-m-4m 1 Tqi]oF"jV7F'o54Eñл=݂R!/J͜{1`BnxÅKn\/̖FPzR[SS`7^urxcЏ,1R i!n~I(1)g admdI fRUZZJUU'!qc bac;C CߍOɜa$qy+ɘ JھAԼ[$mBͣp'6];yEy`C%𧟧OvkԓHݎ1LNjf A0J=\xU[W7y0HH)"Qin"Dslǹ΅>m+59s-jc7rny]1U9"7~&tjYjCA `"l- jf7'΀)D3rDw ^\5VV;ͫY`ΧsQ,I IDAT7?|Η%,&)a͑Zu}勛}7~}/_PJ8ljkCZeS?>޼ko_ܹ+W?7W{}^k IF18pV/9u< L@~ ׀ ;[L" @kic#Ǧݍ ؅ .N$v&u >$]JŘL jZ]:j1Nc4i.n¸C ` z.x~o"bZm`hdNrisۺhkN]6鱂z\qZQ#! }~d33}4҇ګz0fע죇f'vriwkF.sc!!20L'Bxq ƭriX@R-K]m!؈F`~v!(1C1CKtnt9;ȭ֊y^ ]A L#n`ڋ5wOZQ!.oR~y^닟*P+*Aw PW|^r~ԼeZgp߮U 7_uo( 8,sy }nn>48 !m Zպu˲,˺,,V#8&B!`4/x]3J2z|(qw`mAi=0ﭿIlJaLdN !cJM(W1"tKIÜ_>y{a7j߆jM ײdW{8"3 @)TuUtwqhAO@ 4hcnV(DVk;/֎.-+`H-\nFbJugrArk*"eH5:abZyiYCu:,RH#MϪQ]8x'TFZPEwwLVZW}uZ?;LZĜ[v t<!Dđ8煎%uR )  k݁ޭxsx5ںHkQ+I_x^|7!䎬!M_1gd|O@v?9?}FGfx?>|Q>og?N}_5j9z*|~b]P׈ 5QL"Ś R"!A?pc8 dNSi!A6|LHj r "pnF) $Ą9sEgO Ȁ EWwc-0pbG1@"(kKUqK0: 6Q!R//~9z <N#VQ{OU.x9-uvyI70h,ԈkˢXݫ~ǵp3m%M(s1k)4o;y{qKaH`{L__^?U/~swa70ohڏ7n >M/y6\08R̒wqwn?Ĕﻜc1G@bSh)Zk=K"dD96!CB<]rr1 dW_f_fgL+锑QLojjS(JPBf *jA0h3"<N3O+➞~ S"mlV!,Y-ܬepUc]ke-K63R8d_4+6/!AvWpWicߧи{"A"1Z w6Rt]k).ey^q|>OӴJk&֦ ћ\zV`6"_(Z9LD !  hB˦6ɕ[ ?,f#!>|[ Q45ozjS8lZDEaPR24Tx07FtK`rp{O~7hJjG]ʻNRB$+UJ>VbIkp259335&98Rtp}j-} F~^'YWHb,! Pl@kHȕ nR~~*@j"'GUKaxbX:Bi ճ6F{{79<٭_'`*:O/i& ?ONPG[J/{wU/ݫu i]]s0Vh!uȒihR{sY=CdfJb !`˪fslOE"imP3"g ġU]@DnFf@bYųbǛ>z} deuO m*rS);a&"@Db Ե U;['{ c%Ԋ™] IXlԾuvZ,eyuHu&MImn*ZUJ&AvO 3B[jJmʬOϗǏ0t)ճ?Gɗ7' / \!c8A|KF@Vmj)&i%~ h| Ds#*($0lgAnNf8Dr'HmzX`\ԟu oxnqoaLM2h#3PLT>}6/&ʟ}_o~cfqA 1¾M.⮜3,NZ21 ~_|NOOOUz H A ̱;f?0_7?h20m&m-3a[17 5QjˬTr:/wwt:Z3uK.K[vPotLP ?@>zok9CsuYC<@pIk}40%`;U77!򰋹1ƔRJ1FIA6 rl-uJm0U-C]UEḆ/a"u}վ O)iS+x%}Ey<Χq}uRWw:9kEUVvrم0XHU_%Vꓦ`N5K5Yj8OW48Xm媲z0H { HBNwukIS r+^ H@J.Ռ6ȢCv=#)s^r/!1ESsy;' LM64ߍx:q]Jhm.`6Y1Zu]lu\4O^NRVUmkv/јyK8_S8A}o;y{65i_s€آ_I}jmEx]\G"²`nl gHdI_m>tSH!0"B-$X[z Yp!J1Um#A!ݮ;\onwCbJ1B;juY4ߟJaR ^*!AR<;R` D}<آ#f(dtV*K2Iy\4k_0. sj`cUZQ2`,t)բu*k]lqA79 $HB^ֲÄIR9u9SEGpD_]\GXz?ݡc?^! =v'xP|'ʮ'Y"Ww|z>`OnupuzڟwB|2=͑Q7U)Ad%#Wcec^֪U+)4W`!^%esZ~?pߵMo  IVINPbnD$9Cn+i>'pYVCӈ&pAi/2_߾:=w{owQץoAh[ tC| B:hϏWOszL-ejǟ|!_/{_@p^RO~O]IkӉ۬XdfV]W]f'e<-O8<x [t#s7'6]GZ=oϟ ;br=mH›`S燆js 7o ڒ%RLs殦f),yC7r1KBh(b`F؂5ĥUD&!繚:!`,on׷!}a'=vU]iM:OVWV#* C05k1V¡K̂b4ֵT&$_ .0PՕLv ĜY+|FPɕȨٮ֊ã u6]܂n pQ+@L2N8[(\$Z})XݪB+j&hRg6u% #݋hOюGIV I?e}p%PƱLҕ|˱nGi)d?x_s.1պB8M/u)W3qP DQfP2fձ9r`LuB)y.17%ٶj5\sPfK`0Chy-FDo!B܂6ɦJqbE[/˲~Ǐ{{|;RE u"f6} FS¹i/j.XVg~ߗwv>N~Jiy~|~:=>[;osoݿ:޽:T>S׼o63&mnKujX)Z6 $%e1gr]W\IZ+^i)|y&?=6=jm53`Mm^Bn%ߊهהG̉ KCJɈ̬j(]}yC DcV]R@3rX8X2PR_ލV8rG~d9FTVoQndJHP"q'bh&UO}!Zj~ 2ejjUKSnP -UJR`LbUZJ5V{N"wp:] Vz '[26սXjIA\Re㛭I pd∐99.8DJUj-4ߝ/WyGc 1;|Vwe2Vu: F Rsscdjnj Ab"fsbNFP7'BfR/K,d:5ÃsH1:vy% !V5&@SSP nÉPtT+;9x B*r!MI&2+]O?~Q]G=>GHy~=>Ү+]{5?רÓ; 5v9,Ǜ﬜gPg0OP\bN`Q'1(OeU.9{ عZ\|~>t7{wWSI v3_Xma@%Q " 4X2""+qobL6# 2gq6s8Ӧ;+#svatwuhó?tJ|>=4 IDAT豭ɝjCJѥش~6?;ߗO? xxu_=zr}gi?},Iw~o_=}_xz˗w3WZWoRHLr'#Wsfjp :9SJjq-0%5XuuwZZTZ0lM+ !견1H3bLݮo;y{U|\`&#n2 j!C!"a\hLf殭h4؜c(u}J)n.g)ކHV1DRv0Qs:/iZ Abݐ?Sg--R GKZ]J_v^~^QZ u`2-D=T3V ZY$bLɠB5&<[5[KZJ53"(CZH1v~S/V"uZLżlK07fFnQ76BeD$IS7ͧ&'uoi98/8WWw4yᄵ`= V.V}?LF!\mz lʋCiZ l"m؛~ PF#XE6c9V[ &]u:]wɇ߿!u>'6 QIXZV"85DŽܹSr09Gfr %F K VWIs4Ok>t9ZVMZŽŹEL]K ue;E!RSG8y Ƣ'fZqB++ 0/Զed:W]+9(KQD4a>Yo%>|ň  Qj!a-=t?w{;Cջ3z>~/~wUU;o;̗B`I]?tȒF UҔ;+G*FvEV\Qަ&&dN1UT]}Ara=!JL9h褏̴)^U@"0*HUDGxgEy0ܕpmgDbu }gB5@t:Ͽ_&R2n-__*]vW]sJ(`1) 1潏or<% #4|ӟWӝGworwxq-_|IXamޒ%q_)D("jj } mSjֲZ[Ֆ@3wٺ˼,osiC߿ޞ=ä %% i6#ff6oQrmd K^ܼD )K]߉($C xU2 .z)`D0b⦴k )UrCvNӼ )nzS.V ȍ) 0xM/x Zf5qDSXͅ&h)W+-sqqguUk#90i5rp õKBOY H0wbHhD?ߴME<9&Z3.SNî CYB&jDrW-Ze:tOe XFJR2/˼RBߢU`Id'߄1FoڸD[>=45¨xP5˖rIqʖo6!.|D qWWCɣawfFڸd"CF`k:W`v #IF:})GuB|SW6yiπM @(s=~uAd̏\x]8:`Bb 7AFP04~~_dD>;IxуDYLu]}V0bHpvffG;]u}.R0YRFw7crAM9V3/ePK@ #p0vF31Ip@H$w2s+#λR͇%]Y/ןً󱒒q8/v7n /Onıؓ/RCaDl|o)<߼;нCoVl]1!0[]d78R(ԬICZۆL7ٹYZJY˪m5 t)w93j]xaG1]yw:ޞ6n~dڶmpp!qLjc!pi7p*pclB %pJEj *mE̐#80C37sZͭS3)7I19#; Ru̔LA̴j-eֲT(uv!>"*ȝiZEqX_Ք}\0:W>y9q;8 K7[ D(D]RSs@XCBN)F1W[MVca\F #Rjf1Al_,RǷ ȑL).dg0hPe^W}xr1fV}rZg@[cZ뺖u-eejecv] bzEl%e+pSKmA6>hYL3}sDi94Tryݏ> «4?Pi.]ۑ$s6$ʪcs}=zLreHE1D̉8dFF5ACrpM,}jnB!9V+${@9"::dA U@X0jPHsA 56ٴ=C␻WUY8g22F,\t*ij+C94$1\țJs1c" @e^{WG1<6;gťVPKN&g]P,.êP4j4U&\DL"L`Tc3@Yb/T]}.}䴚j>>AO:-4\%nP:`̽R0BmCNP&ZÜz1zS%F7 /Zu830ntYeUU30O/Ky~s)B1ID!aG>/^gȹi;}߿Q)MM_KzhM];ĩ@)KGO+#J箻~]YWYL/$uDL ԥUsEsf꽦WWϞ2|Gf?%iv{cZ7v9FF zѓ^ $(L%++3"|[`#ZaH ׯgY1>jZn@":1וog+g!a S%,hӔ+7\eP1(c~вmHE!P * ͚= *Ĵhl,O1#(Iv~xX1w˕'%B2)Nժ[''Є$ Q7ᙏh1Q : xPیu_ףW;-(H2Owu7h]lNܺq)\ X$su}p xbm@VA@{A:3g5r=6|7'yw_}w'b-x!pIGY;zw>rqw!UeiRd_+*Z䓟OG䧿׿S#r.Wv+}ޮ{[V'˺ۺNu'Z *JHGШƩEE7c8(9~O8$`2Wt';ZKQ&d3vh~v3V˛& tޢtQ-8Avx G H$!$xnv>6~TKR"u"̬ʥj5u;fq7G?E;Q:h(KSIBP$DxYRؓb׬{kњz>x>WX]הiDU ݺ[xdr..b]m>#u9uB]&J)Et;ư%qRF$\UM@-/IK X+"2k_-jko3"cS>Qs܎Ddj|vލj~X5jayP,׵OR"NL3I l$.Rn0԰R9mEqdm<;6  A8S)wFa@my\ٍzuueAk#lf]#45/˪Gzo^> O~rS-|o4=o4WLJsM ANS\TN 1S9R2& >+)<כ-Loo&U[omDR9©LRD*t~ ( 0# 'jcyoA>=0%G"❞Gy2O45eb[ܐ3i/P=0ֳw3˰F(/}}6ݫJ)a\N_77o?= ѿݷ=#jxU!IFF͓" ({J3&(#hAw:"0JK7 CDoyL4K3 IDAT97 *v@~>]`"Zʤ,[{,Zrz)g)D mD,r5бws-"bk H3tS;t\Nu9:ji]N˺L$gCsUvLSH ]k*'BU0cW*0 VJp$Q(Gy춡" i"}/,I Ť PSI$ݝITD:I<rs RvNS)E ]w0FՊSy|,~tWv;v9ef]͐8iɜݰ,x<=H)hU.j<<3a ,4Me7T0DT>=U,O>x'_~g_|ëW^g~eexZS[&Fp͵eU"]p8DUD蛻*!h2YezzZT=7 q%J1@f|vjGef3aIdͼVP!"uMTԪ$ DHjM!9 HdWfz{"pDڲN㲜lc|,t>wUM"!TpNRSK /VD, !iTUE+ gӺ&[G{#Wݼ\TnB$BIW^{W>_\]^@]^\HǐOGt}x}\%H p;H PEhǼrUh_r4F'V8;ze4K5[ѫ3c62}-{P], uI(R4I'D/14LZypN@'XLiI֘DzQnI!c%UCٍHaLA$BRDpn<6?.bfF;;223`w|93QX'(`" !MMUCҥuz]}%$`P(ȷ.,䥧H?pZyW*wDz뇻;&Ne"@yLM<="##7MH8 "wŸWyXf֮w,up$EX$-=Ϥ i=zz; 4Oޟ8cD;%ީeG@'0Sdpj$E"RIUi:ZJ)ET݌J(ck,<2Zȑ-8AFk;Lw%7_|\e}8x8-f=D-3щ׵/˲׶N4$9 Hx wCRp eJ%Nb31#`N >60i@Ñaf6"d6X ,(E9B N+U*s$aa),.دsTjiWO WWnwt3UYmF&Ǩ4K <ˡTUZZj)t!;g s1&rO}KH#zTw*6 2>Q_Wޮ?yWrҾHRn)gPE G-r]-ٺ8#)c1y'5Xn=E'kt:W_5^S?qw}|}/X0C:ȷrOUH)zD\vB\rG̑N O4cC)#}VW [b'$wxe`.W-xv ?=,$*4r Đ )AT9у֌"sQW%#,RQϤ7uuRn\Va ZeWNr8Oe9/(23܌u=Χt>Zk*,LE̤lQ T]&8GۼJ}3@G;Bf|kqZ(! 2!6:AJf8*D[TbLP+8$7WKrF ;: DOQh~Vv|-Y|ubtҔ Ygda:h6m* E䚈@KB!2=$4pa[YClA?L ؙ *_ڼ[[6#[8_[B daUfՊ]c!E-(p4yOXJb)X_o/"?͟{~A^\YY+G` TYw}h>jT^O 0 Sqy=u5؈ P"pA?OPOZ['{Z6d͢Yṉ\_~}3M{wru=v77]]|W_|Wwk?}>]]M/ܒU", nd1iG*Cdٲ\"NSZJ!6A:⇨K֣hr Fr%}(NCHq1i~LeɎu JHOD5 =rq>u>y.-jANzY`Vg__N59ɂ@o/>;|8<7 ZnHOk~j- V@ir<.3"!>y̱@dx'ZlBbbOjheab3Cs|ccׄLz>uۛ}K)?'/{^}pokn772ϻ{k+Ghtؑw"&!" -<)I#(ɂŲP_{oKVxr{nr+ݭ7&l'ݡN|lcFپy:m4 &$a[kzKI@w( 0 1x7wq!8//WNgx>{1o^{NpXǶq:aYp8 PE)vf~wh糏樿[4rA2(<֍̜0 bȺ((Xγ|i{8jRJQ"f ˆ0yҥd(8l_Uiwx,D[4ס5&"i+$l\ 3Ý.)0Vw1' 'H ֆqJ\FȄgŨ`ꤾPF`ZL"\ZJiVan&8@'o{_{ojֳO,=K %afkkkڛy TI{+v]8'R&Y(3{±m)A1v7B¢D;k#Ӕ&)᭚"m V3DP"Dd\c55#[m_Wv+AxOwNՙ `V"AY*g&V*P%{7&XKbI +"ьBn|a>ʱሖQγOP:8k;/ȅH8ćc|+d Z~Q%Q #9g즨Ҍ2؉X @ibY(()3f#hͲ;7p7&2DGrQ!hK=9ڵIoᏴJ[.ڂ%ɠ˼Wa\4b,nt>n'S\jޭRjըf4͑gvReVin݃MӔGXxwLWWr^ץRQD0{h"mO}POi=?صm]B}g@QLC<~a.澱Au3wZtv̌œ{tO6*H)Rk6AiRqi Iޜ-l`336p@5anfpKEF\wsa⪓2KٕRUFon2DnƼoNʱ-؋OaB VC;>-ɩZHFnkr$_"OAӡ/@'>\ =,ouQ)5={瞈̓97d0d9RyPK"ea@2SHʤȌ0!QHݳyR˯] a#"bڄ >8Q5!k"r5ѵwqg IDATd&H0)f: J<>\q7m.E#3_l{[yf '#/#5`p < *scVԊ{MBa1Z\y48Ó q;xSx? I!GzOLKov*|iԊ`XpsCS&S`p )fw{&"/t_ϧts ͎p8$XТ^cEQ:SxTv,Jk:Zjje`& =WilX{[#a.LVXA1#K¤BS,<KOB=MPOi=HzFĖʗu:[{mQ$eia \E'`HP<| cvSEjJE0go-1!؆/3ö~YspK_t$I&76I莥ztOPfZ=KYsgW|@{97ͥn"B@st1Q>Y.`"JMj4zEQ32(ʅ*)a,lvx;%<kJq啥/ۯ~_/W:pJD\['%)qy+&D214GҤ(JJ\2%ڵɓSr8gc2hΙsUnċ9DN.BLpH0bF$'2MD-i?{z"%͗J1%-9G YȵC{W.Ûas.\ 4X:e a*B329} Ea$o~$g_薥-x3 B`_4(xE@^.Â,05Q+d"%et_]{M׷݉t'fdI q^%$0yI[z˾>J[Yw)UJx))H-ɝ}X-"(UmhWT>?xonnvnKAE12x"U~okKLѬnۻwsi}9uvk̬mǥެMuP!{Y[̬޽/2&A% Y&% z?l$K ːP\e23"Z~g e=r:}Xk}#k4/Pu/lV׹XSsk)"4Ѧ4t> y=+W8S]5>6"zTL3qO !@NAAM&M;wI@wYkͼCUU%sJIs]3S+q eNFּuY׵XQתVN>]v1 *Lɜk2ǼzHIEmnkKwą|.[Uֶ.OxXy{i/ܢvh*ײʔyҎ@l$&p U*{`j m9z<mExfY'lqɘH{6OfY f,wz0KJǔ0I(,QjFVB͋DHs_CC&!lX/,**C!n$ P8 aಖΚe`FPtw]);Sh.P>t#qZ-W-8©gKiETGE-2XȔYA'3)kdwV0Y]yww|?kXH%䴤ޏ?|~en RnYWz gv!d.PpFâ"@!7Y-a%/AQrkU::"(h`I"YҀ@jFVXa>zC B3D4D&i&a@JG.Do)wgI£4qc7Ua&aVqV)d3KF0('mn %7U͗p;^SS;%QNN@18NjcLpkBp&M nŎyF[PiЁMsIIXqMhBCP4ХaRW/Y?ycez{Dɉ|HSj_;Dq`@A&R0/>On_p3M)zzw>م[ԓ3ͫ&yuX5Նvs 2AbvC0MoFַ_}}>EL&i8jӼܟ9y ,rUyYn7A= $gGĺ)uSY5[kz^7vm4?p*M[+ίhKzC$qJ"*"DAa0nfN)pRQՔJ [;h̐lQܭu]j^Yi%Nj}FRkPK{>)֠T:~0v7ߜy)ucx6ey8-hTnI +{IiG~E[3qDH$&76' 4`Ff D6c=?]a?]][D+""VjY(sbHre$3`nfI"}zT#-~O/"iH/go -PS*{)I}c ‚jN5Ø5HW5S ZRc>_rIX H9\W+Qޗ18"ZfiB7;93TEQKt~XN|eVZ%{gCyxO߻9L?݇BDhbPf=t (f52t 46gnO/]N|.k`ZN;9k?jL9gn~)%h$my}wolD$"Bz^WϠ tGfm14]ķ" [*4!%rR_N Ue&T5HUzE0ͨ(JYCW:bW?y~z ~Èa䜓 sתky-"&įnMyyxxoӺM[Q-mYt*ߟd)::i"RHHFP$NBRy-6/υT|#:j RaaK?8/~>+g'O(` E*nnV`MP"rV3  A`)*jNfdkq4U¨Zk,HtGюo mYL9ڸ 0&ʈlڢXAS9[Ȼ{| >m OW_S9އ2U(1_59y&wN1'9LVEX 3,d&Jcǐ&fQ ElV펶bJIqu56)rT/Xc8w ;ܻyw(65ˏzƢyPbF#WPcKEdks߱ ~Oηk4 3_XO>=.`wЂ.ݭۄRۗ/^v;! 3B_,tA`tMuvGj_hn kV^9yaoyD]H"Vjmm)yw߿}%|Fc+ ZI,˼,< CFp6"*JYUj.͢I_P? =WPy=_seﻞ=K&}wuG% D"f9i^>Ԟma\<>M0b ͪ[x]|y:G%$ond|:2i2FIYhnaYc"ONc5ZUOSݥw/ץf!%+XKe8'o'PQ%PH20SbJ^dѭIayںO5(90DEEi8FYP Y1M0My 8nҪ,~A0TcZE`";ꭿG2;9!rZk˹dZg^5`c)] @x3̉ΉOEUIlN+ܹ;#FϪ- LW2v-h>nzCȉpὮm:z ':zu'G!01{s+l|l jb;?HO?(o)ZJƉXf`h&JjNAP⬬BD81#<%p&}!#ۜ^8dhJPwc+рoEm̽03&O~~z9=ܿ}ߖvCGT :$ƥ,Nojiޅ"P <@J`6aH\)sĒX!ΫU3!0)C؊I8u1#U+[%JIaW{#wW5Sj5|˪l-<w!BY$&ܓCMKFu=|`02V̷"|v¦kE\ Sa0c!X~Dc ,aJI%'YSf&ݲ)cN׸؆pjn6kC+UuX6|aji㔇)BeAqt^ô8{r\lڋpEkneZk/)jk8l0!Vjuq0˶wB{\A=~Xk;p%ksM\DB8:䔒D$8Hl?]DD4 |iRb둈݊A͢6*-Z9e }rX^uL!%I&EeRsp9 TC#~I~yy]XcKʷ\/"nF M3 q^f:D|{r:S L(ČH A&s)·ޥ&}>\LJ$.N0 ҂9rq4LasBkJ]Zq6jT+WfTLa);R@*I%!&`vqD>>.rݒU'2=+s 23um-8¶.2=C&SV0}P>ꊗw85f|o3~ޢE[E|*,(f.N:?<<ֲ IE XܽdžWvo-ARH`ܜEi7X3if,V)\v/Dn39dQ2{υpa͢4[Eьx G?_k6>Wŏ?@](D $1A/3M f2ڹDHģB @h=G D<I],<C#&S(ª@ )7Do_fPg⦋ [EYk"e09"ej_xoA|~8sN*8.J[x֓DwIO|-h֮|2/&DɊ$0<\,!qTs!)q>aTaČ^GZn 6Z( ǖeaܿwAY)1h;s=/G%7Ӌ7$iuO~]eYe y9RDTky*U=־ɖn뽞 y=ZAdWeO?fPj¢r΃R%Vծ.>{b'p1' wEY|<){{o~O^ߎ&cT2u:MFP2";Qu2J4<^CfN_~uj{8hv|KsF! DPAb%B^~rSߣX,W BI-yM@2 "!CVGy ?=IL;*7IfNA"YHU< kzInxcM\囓ݚ[AeӉXAbe01DžG]xڟ zT||zu> 'Pv%@]TJ[aՋX%xZP뿇s[1]N}pX$]s,< 2D HR$rP,PErB3|fkDS vohJX[FGtCZ{3[ q ѿOo7B;/w_mOHI#A{4Q(D!wRa쫭E2 9jJVأ∙s4B=([3#fr)}EFF&6?FpUf-w=g [ Ŧt @)(ZrROK-0JZ[/kY%E8`h5\JC$T_{`L6~B&@(Ax ]}Uѹ/^r{a/G̋ , CqyHu[/EH,j1`- w nn5%ՔqVx Q`%p{)Kֵ"?3Njm ֔8h)%w>JOhG"n=w*a>tu_+ozǩz!˷I.B M|H{x>T%%Ѭ])ID8a{7+܏Wv6%tLҼKOZxun8 2rhhB 5eZ;[f &)&à) o~:[ATg<qY`%e "~2[ԢB\FS[yfcvp4&FD` {Oq䪍!b]X0dut|vUy9_ZJj0m3kZ`jE[6iPo, ~,/|f^[˓|Я雳yi6 Եv@hMX)Kĉ;>NetX;m>x}9 IDATAzaq,l$5Gx֊hFr:VM?G+l~|: x<$JRp#W_ی&/k73+2 :rbcfs|[׷= ѝ``DROP& G{Edyn9h00@:eQ8=8ϼ5kN;jXZj@3剆")2:T"h*øʺ"Ir.yHrt&Jy@̭Y##2/*"u9}w~3~J90;!:́;p8Hݭ9js#H#;BNz^?kZœ8}oUW9g ,= [+oaG"߯*]RG?w SvZ' f踄>N"zSݯ&Fge֊b̭ֆ01Cqy({@L 1Kki',˲tpS9Sy/Mq#=U;+o\< |殗>m6ڸHA9.r&]/. U'ljO芸è)-Jh-e]N[u-N}Xĉȝ>6 X|nb–(gx7Y Ԝ܎f}aaF ~_~c_9g;=3B27\C6dڏe&\}$(-qG"lL3MO]!B?7J]¼mڪJ j[k04kZ@}a)ܦpO㘧PuQfML4]Г4#: wepo gfg"͆Ceb1 IКp>^]GH[Vh$0)O;^nٟ|٧+у1++Jk`dGG,`Dּz@HUyONȉCq|VPV5\0͐^!3d$Atcam:F,,,#}]lz8H/=<8ſ^9ۿSϧ˻vtnHBJŨU ƽ>S)sgJw{v\wR!tLgh 8Oj-΋- Q*8(g5< (r ͍z=óSXR2ȭKBN]*(ݪvXE8 '=E"PĢ@Q*Qͣ{!%t1 ~g*~wY_&v>S▽#"Q@yn^/^0H8"7fբ *,{] 2fiD`,L$HY44!<4dͪ99kN`ֺ;Y;l"'P)n,=-Z럦H.< CJZk-k1ٻ>;Obqz^y.ٴfW؇Խ'Va%ǵzw=YReQģJc[Oߏ<ּVkVy_qY^WǷx[e=T* nñm'4a;;:"E,NGA4UIvxu>~n˻\6G5!k/'vK"WptِbІ]H ]ș]9D#;1Cp 0$=^_뿔Vx`[v* 3JV5XՁR oS5+}LU}m( F Nt0ÉB)!< pbpػITXfA0]XݴP6W0!Җ#NoRIvYwcpcJ|DR8%ӔM AAD<ӣG$.Ox⪽N')[*u0&ioCuha/|x5ܼ^iÔXAfpG"$S  㠻]NV"j%yVN3ҴK c~,I="%/Uշ, "ĥ"WW= ZH3ٙKw%/眸NG"Q<f}~}D^QRUfܦb gᵐv4\ynԜؠ+<{׼,!oZ)Y$TJ饂zY/e}O3xmJ;`c.ULӸct=ҚѴx걆X[} bJ\<:My$O7F>ovr@1A<nQ)&'!UtPM3PU*Jv "Lђw=ݧ㻷n(Z}*zwH!GU.͜W ;sIysV굺9ɈBL`o `(;c'.ǖv7w6<I-u3cHLbT8:UZM4 Ul@s l$.ՊvWnG\t݂Wjx{ǯ˯^~}qCǸ$}yb?O! 3XH9/ ^=VSrC lWb:? V w\tz 6b5UaԚ(\f:ZU7 0N\2PU|\RICY@(cǪ댲xQ b{M7] # b`r>LO=P$I0^xu^x+-"9xZ=p/K@v. gY؜k14t:ug'Wa|Kh*}mƁUnnM|C魏jZ٪BdZ=ΥScfr|񛷟NQaD0GpBmf@Ugr f`BspӾ0+Oŧs8r@]}7=Kh!A+Z*̍ , UH,Ph-aO40b#,77D#W!Xa-GH,ZĴGlUB]/1nāTQgl>^ Jwe*}BY"Kmͅ8Jum#B$BYLCoޝ觿7?;e6&w^}ٖ}{[P"b5$0M͔%"m9"%q2P 0.E9\Pmm){BDv"*0Ǜy ` Wh< K9h3gv[QoDgӊg&['ZM'ϐ+fV( pDmeC?Lq;&.>@`[cPn⇻7AlED$ XQ*||Ox)ʎ괵"YUM.4f׻o@ IDAT 5sX(v^- Ca w( Ldz+j>l(m*%IP2Qf}jw?5702zXݕ;hG{FV )) !h;\@ѩ3cNs=tle.V@@V縻8`N>EZL ќMcV/IB!P.KK\Q#Ebwj+1̹B3ɫb.</N\V#]=OZqӂb1EgK&á -yɋu2 RI.ۮ:$pInꦥh-nB !B7i#µn^j9\PE;R:MxӒgsc%SC&dmv)-W5.}2)j*D̠.ҿn_iYVS؁ha2ۤ4 j밹qX"Gxrv'6&V 3)0qd xj-/~}O_)BaKD3+ɈF(t"l1RU!W ,̭V#W+t˴&ALnZs OӮ ͞Q  ܞ nhPr"+N+Uy'==Jvz p hee2VjɮkEnUS QT"#6_XJ-"Fȭןo1ڏ冺 mhgi-&3OI@߅;\}j)%QR-_8SK]\ܫV5yEҦK],(-1/˲,9/p A$pץv3 ;UXQ9ZD?ZkU73)MMݿ-IUMU׾#uɴYwkv]C-#1uﬓF.S^*lt}wgoy 4u@y b"*X%N ?Ovl!6kq 3)H/rVN= (nSFZS*֓tJm0sSׇ0a.Z,'|^̕{(TA+,j*>UgŬeQsE+aJG{M— *U"'RƆ= $5gvBk.uY8!thq10n)6^VK]u}$yl,` gs6o4#A0ӒjB".P.)isƈNlpk50#ɟ}H>eER%pKNҾZcUe@bЁx8Rtvr=A'"2|ܧ6TJ!rz܈PB5'g"'$Ė锭/?]UJ!a~0p^GLaf268"l: b?W-hRYr2KI;^kNd Zݕ0s!p0ܵ@'za"QuDA\+3|eDOF5-j=ŹrUOJ 6!j ü\gD4sC-݆Cd)~o79{ |n!@PVݟÊZH%w蛻O?EOFR kkG nlaoaw٥c+!!56X甼3 68s~臮K)D^ͪ,2M4ORb b)uCû01DDdL.y)ܝ%ت:18zs=)0q`ԥs4z2gu>?+B"7.ok1('"H LE= ʬrX9ݟdwJ]݉ 2%*j!Xg9^a5&1LanZ sT`]!-4Őg.+ `R 0^UM((-زR})VחU݉)½jav5j;99̟{r>KZ AcԗyaL8vA7a`&^\R-1Ռ grsOs&pŗLcɋ b(ŋ38T;:{=WsssBp,Mw7m 8p wpinڴظ`4?!1 ~xa@=tmPt疷FME5.d*jb""kL?d1Pp1':6Rիw{;.N55=ꥒSNԑ6yӻrIyeY/RB o)VLl(jFyiVɖPaI ) ]e XId H@N~VyF6!؆xB kʹY8Z&d'0i+sCj01keQcGm>=K̨]#q;*99iDk E5낞jKHXbTi=Ѐ$0qa+Wmw8lRb VmK3"EXj%ז2 ZPB1PbOlbcRB"1] P:hao?ޥ+;57FiZ\"6'B  SA g54frFjL2qW٬a$$QǜK^VP3_Qޗva$vmgڼ1muk{)b#x+;m=uɆS6jRS.E/agrH.&Սm4v 1wpRZIKi|qڄAXk?ncUY^`jij΀^v:Ux^+^/ɵ  ڢ+nuXcssoicyp 2X[fks߇^}^nVPrXF&7ԴM\hu0S1qbs%kɦJ IL̊j䁣q/U:^TpĽk&A_"On'P)̞^.<i`*&(n/HB3H8Cur(A ǰ>PfvV(7˓kU8"rx5$+({eF&d Um).i)0?U aQ疤dMZ0UH`K]EδBZADBpZy"0L$6QlFf‘NBy f8pD,Fn:nMӚ9 b2wi#JQ9FBV ,x ?V̸"xO6Z 0Qy#9GܼY ,ս1&s-nȠfjNFWC߽y 9j1Ihg:\#G̃fYRT_*^t}e)P+e,zmCY7"筕f zME,"sHV_S8UŴh^|/BʒB9qit'%,i{ Vd*DFDP"PEV4=x ׼3 od!ɩ,ҚˌZB2@6${庂Ds_nכlkXG"ϽA?x뎦{}9Si< wDYpuۅ}N Ƶ1| 찥)KvR–7o@2VDqKv-Ֆ nGB E4GIfDnmDI]o+`P_WdH*Y޾-ðQÔ+7HAsyAUΨ>{"͖E[͟ɻ%]h~\ DȣFbTO48/cmtnZ!PZ$gj5ϛq1b!pL!]qf}XſՁ{^zY߳ j.o.~AIղJn>F׹pw"抂 FJwl6iؤ( D<jn+̪.ssy
  • N<2eQͰZAD%;)9cεpVUf0 77'W+:+//i S&OFL-\Nc|@KM~s7|Zl)J~~ u0i/顣} A$b2ϊ\y*4.r4a:-d'[wy8Dy_ mcIP'k?hM̝"6zY aoqGs,LƎk-+@ӂ^J]jo1S0¿0!՝(8lf> {xXҢ8i+. *T@rqlEB ;kRATak$4yZ[ۖ۠iq|Y2嫪 ۧjm !b\beֲeZqy<ͧ4yy,yѼh)ڰWo@2gg I8f pn5SR%2IS٪Z=/|8[{ijQTbNHd GQ=L%W,,9ַ|UЧn}VbLyThK~[r2()zOsl3 ,9 lյ%+2^pO#3/ϑPgP~ZB} ?݊j71# q޺ 2Epo}y_#q`N4x)ſUй167mxj3}<&ݥjе * "k%yDpBAfUiS}0z.Sb:#\:5%0QHYq.q?!lz7H!  _I V=s5¦bhd߄tsgZۄ^\kq#!@poL- )?~5Ϗs3ΓF \) on{'__|A IDATާ"vqLΤ1UrJ"Wn8lSEȸOWn- s$1*3Rq*S-Ȼݰ6p}uC^4?t:EG+h!ctCono.txUKB~}B}I\Ȱie#A><ܓHSMɝK"$(]R8QE|/zY//}]k'6az}xfѷʧoNبv8j*j\jހtz`>iw9"yufnO^3Ef9.);Kp(qO-d*pBH ,uNoUc=?>Ɏ g%HDnɝU/M%eDЁ J#h~~Q_y/2QL,]YnJdÏvKy\dq6@p"Wm "Ҏ7wfZ.-E@04Hs>X4pQZjlT FWɬg72K0 Urz)RoϏi24L7`č' A(f ۾u C^b7bk6#sWo{@dSЩǥrKD"FcNwn?i|\tw5]S_i<ww石v6|Z;N"QHBigp8Nf/A\D"1,<5P[Ԫf)!ZkkTP/e YH-\gT [T>lwonuQ\MK.q\S>=)x9l%{)0=KʻM߃;͐Y'\;6洂TUYLV`%TG?XJjT;QEr Ict? "bOWWվM?LR4DTj0LƑ(*猹j3mKdAgC%rA̬͊5z[ɚ{ j? z""kPdejS"ԁB1J($(W]m6~͝~t Azv9^OcU&KX>WN}n& ofq_gE\7}Hs;DUki# R"pvgc?:ٳD &8~EgnoS2.#PW{_Y֊̬2)٤Lih@,A@[~?яa@d3$3$G3=}=}̈"k=CA_='h]vUfF}LM.;.Ak@r6VqMY\;h5%D8ZCH 鎱pzf&7l.\^bp GUo}^P!⤲;VDȀgzD]DR,i7P rn.dr͠uN:Xo w]Da2MDŪu1my3nnoonZK"8[Js`@_/noo__Tw_'O_Z<>z|'?M*usz8-_z8B5W {1|?fޟZ&}~_{tEAOԞ  <Yaͮ\^n.6q+TTS=.v|ww>N֯USS.zGO dhK wx(\#cGŭ{XòD]P GN26C8R0"76>(3sIr||9]iJ(}MQiЈ%T#|vb2;\<(hL L$W;Zjv.E t8KkD9V1%TX(L#yɺHF9^{kD,̽*wbIy{ӃTCg1u]hM5ix?u?<)#BV8ݿ|b]D'8zjH-0pvj6 ŷ>(R;Tr8ލ-(I4^0u UkGX/n%Z'ꛗ- |-OGKmaq+ܢ$Jh O^ @5 `s:Cg$t/_?~5w$y0Lُjw_v&c UYU=!H- }&Р ՈVyxZTqbbV~\K󐸞C5"!px nIFGa]5@zhC= ʂDQzA‰ߘLd;+c+@Q6[?K<_<}%XP@M!%{A 8ZazF/_g`Idʸ) G&'zˉH1 3!{nXz$lQ]D0qH%É ='-c)Yqj!wo.%0k:}ctQLpZS_iگoo~gϟ?~LKn6vRV\2"t:=*II٭ Ne(U%Yh[RJ=w~_?KR JYסPS97"F;^tjVUI2nҴMm6Z DX;.KVY6өo|ws<-Autp/5BDZHɛW뇗x"nnK:f4(#ՔEUj-S+/_if˻AJwgҝ{2聆fz'=#YMYIen`^fw2M{N|:uaS{f4  5Bz+VeW4y0RqH׿n%楻[  Ri/Kƚ(D[H!LXA/{WҳEx!iTA(`@;ݓH0E0"tZ5{\FMZ4`~=<}ol~/pۯO/|2K賍Z$-j?CTXK.e%0e#%I@ )Nt{̳pAXN ]咮(EmjBE=ώB|w cAQ0\\`̅Z+PnƈX!dmEK?pHUoDDȓś#iG'{0$.$9d㮥u] fX-`}s9WP rNsdfA]2Ij$1~s솤Ѭ $DIT\0>"csmQ%SZ4%"ܝT_^^^o^_[u=;[E{_mPY Z*-?o/>ƳOg'͏̹^^=_8 4raT[)*p5? )$ZKLnVkќ!ֺ1a zޯǥEV=lmO3RE (Y$ZV=DVB@єePf 4O5vQnC))_%y޿{4vc;cZg몕"cs]S\̧s\ ݄uU7kٲZkjgZۼezڬٹ;Hc={]G"D*iXd'E`aNUyDԏL6CD3@po+'ã"`L.9,U\ëw)U$i*)kPrzw?|Y'+27_b^CYNoċ-~^&=0N>??7 2wg.0 ׍\|x Cv ybAxKU%pØ=ひfXyg聤psLDR `PyރΩdw0R+kx5 2BV+A%`B8.Y!pA0e7~ow!I@katO9ʀ̀a6wi5|<( s֒~ʡp:wCفk0: D.!+]-ҟ9ZkZk3P}~_J95A=lkGM=`ܶKZ68_=^)AU^$puˏ@V0DsfmJrD$f5B"i,~aX0:v:{hcQuQ*@%y͌\93وZtXR:}M5;enE6m4*p__%`Q."P4TJ*C*6cz7A=+d15e0Vf4))aﮚ&^OGE)j/^yvxYڳ8U9H #p[ $ A7Y *.o_|wo~XғTƛׯ?ӟۯI|O~WEX\D3"Uòl/>yg 4BWGf[N'`zxr_b( |G4Aj.$yԒ0h03償:DgpNsGɔ,"sE}5B٩ u~jK$uz>[;|gf1ZR2`i;=ܥO_~Ց4%9v+ޯ:mxt/`FPPI9 0̌p(i7bǬ:KR-ȇ5ktB@0ޞola3ْRfl|:ݝN'oEE8w. !}{?8j.ٌcW>|g}ÿnޞpϿ6'|㏾}usa^X AX[:waޭf}SxxuiPJ~+z~.+$=.A%"gap،ڎa:qCHqg;f`HV#$ThZIsOxͱ rFG8~O!J_jzOѩz%d@sF($C2vyhrmi>@v!k&(ˆp:C8=x_Xsl5kMG410 r^v й*^Y|# O:>/-z]y>%wY2 -"e DykѪϧFV0%2*^DɻºWW zy@OQc|Wz^`jǻp8NGRY$YeZZ-։V0鈋ކmjV@ߐTƱLӶ! . ˔ [ u#2 ^xeIdxiճG%&м4,IdOss@jR8@ " TBq63͟|<=ڶXXV߼]o{ɓ<GGΚ$AšU%4h}XvYs KJ&X-8cl'u=wS**pp{3B)H9A7dձ k/9]\gb=Mn Hx)oOPXRT2%AAPP.FVre(yrhI-/߽~sw_? ԁ=BJi3攦5mgoux.?*[oF3z}ӻ E("C״:IH]\(%v܌Wq3%1SH)kg΃r'rw@`Rv<òJKmVft:ɚuj s]VQwDx 'oOʐnoʯ/|m8V IDAT[+~gg|uQg[V17@I^ORfHd^iZ;~_?q䫳c +'<}?1v&9Z j=zymZx[\"T-:7֮uOu;>RY:=H lB$Cꠏwͣf Ӡ9a+PV8jr" RLo{ʗ0 -dxx`[⭺y!6%gg#D'e?WDUGp J5-vT!wc۳nH %ofܜ( CѥEܚG< ~2=pEʹmf5c~o^$`AO2a,e(M*ݜnK,K;a;20 P|Vk[Ie(!)}Jw-QQM7eܠ/aw)9jRX}};Q]`ntV} b W ^m7aW4zVwqY<7ӜJN}~_Ba1[eXi'ጌG-CG-rιr|4@.bꐎY{u"D SB$L*=V͞j3To{Qk%\*PaVdEYV+Y5)"S.S9ĜVQI lUWw՛md(z;\%\X;a{$ӫ40ٶJxf4} | (w :t_ANp꜇~B`J2~܎ۡ )4vV Uc;xS̕7&9P:Ȃc]JY4SFգ=({zo,,q-{avdmv gO|wϖُweyo?KiLYu ,2$B@H.%^P)C)p{sP_A_(عM>+rVу<>A0 kgcƃ3bUeRWN{_D^" Ĕ jҖj&@sn e #1灚U4AQ-%|ݖ㏼5psHRQp//ݰnvrrCQqAUQM~o h=5] !GyhaK[hi^ADwUZ`y+)kQr<onnAS3Nâr3]EE40hRBF伜"Qksd-X,I\ĥs WLN)s5Cn-jVyQ(Ix?t'3JY7qw1/n\wWW4u{ҥBXc5o`G7t{ppֈ`e=]6>(2գGqr=r-"<pZDMjkc=DJITu Ud$it8Yy8Eڃ4p D4XM LD&Ua C`2ku^Jqɶm6L}oyMj*c4tXxuco9g{hޯ9]us=VO8 C>7 +6zmQw SWFWcLD#@ A1`,m\j:.~sف H˩4TPRx!T(% 2mwi( Z5̞clA=o_ob6HNH[Nt7p+ʹ0MΌC؆:du3 F@υК|AwEOEKSx5?Gy}^nN8-fND< [mDf$@jEcӑ?~<*Eƫ7fd(6,̱ Qs\#+b I;x:/"x&{XlCPwy A>`TE5'Q$wn NX_gHհmeI1M'is6Ykfb HH@&ɵͱ8UJvMӨY-X롤9H?1bYVBJ"!"©LYl6v)zB^䜅ԜD"4ϳ{u[ѳTh*0%9,=G("@-ޡ⢮YPa-fwVZ#jv ^=P$F*бNIW~ƷuqbP)q{YԥeSLR-ιE 7Q &n(2m|?GϗW)NQ4vU'ŷ`vD;!;z pTk c,P6珮O# h"4Rsyu*Ytqi4f~BID$1CĽ8jw| $K:IC%$R" YZ#uuJ02 lF"TL k͵ʳ_i-%wv~{7^+JU|/̡xe*s֐ @34h g4HUPFhr ItZnYq={>"U' МTp9Ow1!'{vw:ޝN5JJkaW{L`vO*rieN'Wv}gK]r@F(M)5n\K({#BØ>Ϟ~KԷoo8z}wċɳDXPv[WP~VPYActO+SOfw#== Za,GkQ\iJT1UzX^o77[Af76*bhaN,VJ9Cia[&!v$@)n3c&6m(rUmJWv.xDMhv2n"P1X;B$vF=dH{Bn져,w m}cYh9"i -M&MlΊp(1ݖI4 ν(LL%~xfYUt*c}(ljHu7qs6a͗ꭙ;"*zwA902&.$v05ShFKngV|Z5>磶htr_n"gba1k5@ )KAR@Z AhJi1sH (1Fp՜ĀZD$dffNU+ϓ-ӡL{!G%qRډnP3 L<˫_~_AKO.oC5SӪf`NAP #HSPidLww|s1W?7x1#z绱ƀLKb}o@otVcLn`_ $tS~r>.014&3X9+q3XRAH6RB@`+ 歩$SęA~W0A9 $ ) qjO"@ a_~}x{a>:y()FFǒG=g/Rp%dDʹVҦné#8֪VZJ.,̼TL( !%u-l (ZU} ](/^vg1msWӡK>M~y bYU+P^VuKsX581!Dx$`Znoق$ZZ-2P;Bjk5]PjQUP@4v7ðm<R7t{[~>f?_ʓ;޽:9'iSC 3 ]ĉٍݛ51'UnVXA=~sy"-qnX~jTهO~j@zZ%ޘLwddKU>ؓw?ߖ'K$ܔ&nf}]v1Vfn*>c6xR"R!ABi S2xjDh"6XфHM%tID^r% ă%Q>ޕ|UxKULO7a IDATɌ[ֆjpݥ3{#-N3#"xio)L˳3B<+#!j9䁃Wev0 م.vO`EԘb-MMB:e綱>|L,&)8LUMa؊DՖ3Zqk5KYbmOQ^TN<=6-)1]r/>m$̮h~$a̬&{@@0G`ffBK5effD QR CzqyӓG/_1GZZ_a'aK]{<)\#dU .! |gj c.Bh*FynozXA=HjшGֹe?z ,QZ2_=K}+I!2DnOOwٶohS ]#)xL &ǫM9R&@xvb\Ԫ ,Z.(L"ak؍gi082"qO>&+2TQFbՕ A8nkK+Ӝh-< sS{0ޢXW3U*3Bk I +JĤbέJkgf}Ndu44\[V3 fa [彔ᾆ2 Zc QcS:.N6mR rGZ>j _㙍 0:P0ږ^oxqb,٪=Zxsˑڗ+ Vj4vx/ϟONRD$8I鮝˓a5݃jP8]\޽Ү/nʒk!h6zQ?'g YB$dZ2uv2bԴyC myvw df ؄o a0'yԕM ! b'q[8kcy9r"84R 5 ։ @9ܫԖ"@f nh@P̔ Vj.s˩%}>Ja7Cb]ߟtiSbҰ'?櫋҂iv,S7 C l浺UUmJ"! LKбZh!K܆XQM>ne>٤_SQzw8\Q)F12Q3,&Pg77{ɌBȅ^_9̅$H6Uu/ 6L+j{Ƿ|l}"iui NUkE.uIXi4}os7۔O^|pU3>9ėϟ?&̲Ѵ RS[3dM`{\q6mf :LYv}egZNK pUv/ܥ"B"Nwx1 }c{qjOM#IDPBHNn2Y:>tkgn'5!*|9.8Vv#Wf aI9mb ɋ8j(%HsO! )ݪëIN`ѹ5qcIZw୭BPșx[d*Z& QԟR7iˆ<-) ɭUks%:rɥMZt%Zj5²4LUadUwT]͈(B$HmRKIk}aaq-fVk͵6PcҖ cܳS!\͌)XSok$`UKRrUK]RǾmn> ժ6ͤ}5-;_oVaev(E ȭ!G?|O~r{7JTW?\wgCx4~7;<=ߞơ$f&+QUK%3ᗟ~g*t/nS$KnE;à(;-sׅ(~펐D$q!mob^D7=ֵ*xi49jQHHdqj1W@LNL&f%@L7Rmc6޽z_^hJ`7W2`(ṰA ,!2s@@ιA1uSJ6ϳF$8w<==}fonoǟ/pJx[^}^ӳ>v=Y)-F6VITW>z\7u`ZLk~Kl3mqI<-b_e+F+Fm䔾<|"|j϶v:X ŇmNhR::*8i&?̶.$bl5Ůfv "iăx"+ĭsIMΤLb"JRR!E- yq ȏƖ{:*MY^.0Zkl/c(rw:&#Y DV),91/@ֺ.y*9R LT朧iSRH)F(fan/ #n/E+YHc]ߥEYȗ%sYajnJn+q朧y6}?@nҔiKy\nfVV-~ZLj^RJiS1}ݶ6C?~]HZu4-7fҙ9Bh5 ή{x_=wcBceo?/o޿532ٸmlƯ/~ÿ8pdx|s~֝ 1qFs~nvK)Yo=??' hy ܠmR2͓ Ѧ Sj)CcRj:}YY :ۭ< ?h284M8]jݭ $"LM;R5GTG2tyy͛)׆1I` />}|q ]8ݴiCXٻO)0L@wtN{J)s>櫫KU~w':ꐳ??=B$(9 6Ƙ|Bu#g7=VPq=jՌݷǘY[1x|_ydTC{7 ZĮS۪.^~?..4%I}9 @ B֚dr53nv{wmG$rā T_Ѻh3p$\`EQ8dPTݛovDR0XQ-`gSt%}w׏!Y,KHQd:c ^N&*.MKi mKQBh ;jx YZj\cQZ"7? 1ԫj.%׬V.)uB ^sej#>mnyy63Btre14_s,onjZkVM[30wF_]k8뇡n:zC5cjp=|WHJ;{i:ϸ<>(xSSn~/G_|1es5VJsLQ6Dxo&Zvvw%2U9S-jZQ:4^8f uVfcPҬ*puRO7~thqPG{/`1Sq@tgy􉜝!&'6&"uٔajC-canۥ݆ `7_=mmι|8<$9ϡ w럗 `khyVD 0rsUd!cU¡p󀔂Vv*Ixl$kcOŀЂ(y;;߉`ۊxQK-LFzA=~SeN[æكÑj#!W&-@0;R0X9jآ.`ىt7xJL`q #WB2,Ue,4g'KA-Z܁g܌u?apa ݄ͯG' 43{($2Fͯ\f٣@ JVy@l*mls#eHvBݽT|Ph-1[?B88jU*\[XCj-zkucl<3b1chN3`(5ɵ:KV >Xx %}m _"3]>UuUͶۅb2sMb#, Y:i [%nkUv$#whmdv+.9Wr9L>粟c?WW~=g1k,Mٹ*B)h=ܰ#fll.l&p"Te0jlVU=u[aFnȘ\Li8 `JN[&wJNB(" U'۸|xv;Gpt c8[m_Pc02 y+c A)"D_r[dxa  DLpvgp2'@A 6dqWA?-"Jl(vXH$2_WMV[IAF4[ \K߽fK ]BAas-˴Q*9)D2p-%-Zn\ĬEW7~w"js15qVmMiUXY? $^ PXx ~N/]0kbϸw. v6j58EHIY@۞H[F $}G&VݲՑuVwڀ: (D9gr#bVzqISKXβL~fV]jְ~{XX]5X̦GW&[.@  aVPjn]gVaf4Ǫk @DUMB!"^KkyZkm%+)HhUv6kZR7-SG}RwN^㫿5|( Fc(=,qy-:1{fJnF\ .f'/ :TpgPq7}.VP3"7h\>Q (N^zwϾpk%SSTKV OB!(uO? gg2aM* NPsW2m!0X~&6:H;p^y0$\ P T="J^pPp*kT IDAT->Pt @ L2- B3|+( c 2/?|MJ3q:\_}t/r# $"54 $f1*"&uCbFݫ5#r!@n)a&hźjґ9+5S0/ۿzQ6j뛻NsuKZQKMp@E')xBn ε̳VwA0&K&z'0u*Gs۹Y=;;nt]zoJ$,▫y!ŐjR4pABz-^~GO7CG~׿z͛a)3}x;·_jf{A}Ϟb*ȫT}kŅ٢pXE+EeFWuS8aNysB-KdŐELgG9nRlyHu6۞vCnZYmvh}(&S)\p\=>,Tq.o y]C@MN`"nQĪnPZJ)Zo-E8R'Sܠ&ZZ 1ɠKԒKɥj^,AnVRkV-:M4ݦ)pLcApdhnG0w&fiAX/3n;h ISRkZeiZ⊪s9܎j&~uC`5c 7ZL͈L;$` ]ePDB!w1֬B"1h!uכqy@:PbvJo__#:\"i:V)1Tas6l?KϞa3h:Nf)݅`ͨg0VݏWPNdf@ 9.Hm,ZZԅ9rB$ v=!Dtܰ'q祹"PDD9s#סqC@$esquFƥX#( 7_yɳbat}ywj7`6soZm.0Peؤn41q#kEVŬ VbN&7Dh3{p_ [ @LI7nq43S8~Anph6/²,:e QzU*YUn» ;XQjK㶰XdG*;~< ewOOwfyvSJ9gUuhLTl. 4{^,),nusԋo}ÿ5HtW!>mO'z\7z0>_{?m{ӂ@_kkG ƴLFZ%*\ 8S|-G'~9?;AF4^iaSOOCxL3!VDI}wNp"aK4 zA s>i2CV6'rkqiIRkiɵl)hWKF`%MœXqXlFXOvIXt9\K=_Vۤ͌ԥ@‚sm~t,@,,$$G?.W3B`[vךL n,v6ٜK#sԅvB`WjTZYKVE_H3VZs8iUVs\.m۳ӓ0 ׆zD]^7z)sRRM B`r]7斀Ycj؄B*jSN%g1cԏw)q,jPUrE`uXVkpԸw2ZLFs*UͪܕaĤ!`Y,;C ;9L|lX,>wOu*:*vٓ)+`d 'mJ h38vsۉm)!Fv p!4%k+Z y !ZbT[h0QF @@oTB`"k PK%F#I=D99wCϿC]I q}ysuq|H} "!\߾}w>\vVvǪT ZjSDs퇡$b:YxjΥsUZ1P2@]c)ET}a3s0gT4N̕t!B#ԽZ0ͷqiԜJjZMp{sf,䙩tT6R6# ԡs5$۫j-A!ݏ+!N.D\Mӯ{֚pw3,8c3LU]f=2Iɖꪌp7 l7 P8fѶTA 2|*-h9ۺZAEx1Ro5'l$EXN gL )zYİnC(QY5na$=Xj9R\yS?:nD٪' 0&ecr{y??+ f:l0FXo_^ޖVDHRA9gU?' =>7+VJHb1f-ͩ# y`2A@ @(b w Er4OxwϗŴĶ=[AHD?UP֧i1¹.T bRNgT߳$\P˜vuyA(K3?_&?~T)B qw Xp A1]í\Kh Q[h3kBE\d2C`*2jG맱 XQ&&+zHc8wT axv"%$M"a'{G?E,,qAY>>` , K@eRE-<|2.dRTORp'a~Sx SYGh6()ÜQ2YE"R]idcl3іmC^ch "Jnl0snAY \Gcxý{! 3!+a6 èՙ٨=a m[C3~"9ǂoǿϷDZݟ&:3$6k+P|·+: pc&ai/||־}{w^F gPG־crssrn[߶|>: ޢw0Z",E=33q*'}؉"fJxvރ,cx8HEhjBZDT_Lv%mPv,ڱx%bG ,.c|5Ӄom7a.+ݮqK>2ϊ=L31:O盛ͱ4"u:|<qV<|,߽{rŗǟ_|{}曻_u[jUYA" ҧ >m"'^GW9%O71J *|XI7?.OoO?O"2($f'Fs-G}qNKEx.1Uw#A[ Iag$4+0CKCo mkҁF&!EQy)1@KpaHR 6K0sSs@$;uF09Oy\;"돼1mhNDVKM)1=..'ݙC q 32TED2"ƮFz1n01 eֶ.ʅN`&R$$4R]2w @p%I" ˶mۺ׵ sRTR+bY{7 ^/ú^-iycd`Ny ‡箍'K~tne@|ޛs%"b]vzxTe9zmՂpz{'?}yj~x?p|uro?_gZOԧi}Z. |[D Gݙ݉smI67O$5X&gJ??ɛr~x1)2 DNᨯ^NzA%[ibu`(` :W#t)9 F0ڶ=lv'P,`CQH2"\YzT$NcK4 & &")pz..<1h^DY؈LºOf;șɃ/Mnfxvg- 昽i>>E3.a-Ė8-.0̑ED;!94*C1쁻" a%f2Qqa;n<}nۻmypz80SUsl}][kk L(Hcvq9ݯuZr)Df-(]Q ڶm}n<䒢VFH<ש;usJQ:{W  }‹,itop;O!2q;Jv T9@ư<1i ϯ'Mw[VY0 ;Dі~A$" G3g>9aUjUi⧘` V (@-wr1,8Tj[祍>jAkm[e-dCa6:zu[#Z9{߼c[K+Fp۲mFEŀ#I>F \2}Lp"e?nɠfG|a:J { fg9^]y6>"“ eCTla!>L|F>@¯|U^]t>MIK$EX=` &%wXRT;[n_ޟ% ȍuρNC9XסX|^ mt!RalN㻏b (Qyh lQ f[a"bH|)>#-@}Ǹu?=avA11aoJom*P;x/_ *84 N_XOm}]ZQ\T$"@4[T 0U-#67e`U1ư0T̑bQQU#b]LW{b-_qdXAG޻m 'et{xsu%TSk޼/(^1_}ӏj/^/uB IDATb\_zsSxM)z{{P%}>Oՠv[ZX.lY.NcXdFagf_zhU: za'|n8-wz𽋼C)51Zl7/3q}SeV$p3><,(4ġ@P YPoR0J;Aу@ZH-:W VbI ࠰6p7cMQJQI8G9QLe&yh߃H3Ķhv |J_`Dq0^ {0.e}KE,4ǜxբVsm=7ϙxo1AN6;!F=YT"8 ƴ+'-Z&.֩N{u]u]yg:\Ad@sZ ׀8Y9=BJ/ =ID ٣p'616`P9V9'.38 x9607xXP_6`XmŶRW/Te][¤ ahcE|`Xqܽw}{}ކm#HAg`x+X,JlΌxcgd)8vޓ|rg3EO͠ZKZT$h0: CG_`gࠓ-ynS ŽLI!ESڳSp#W{,%0"_Msul[w;Xa"$JcR([w?'p-5]\e]mY_j>w^9fixVqg§ >Z *]DZXv~$IXn`[>.8Crq@d"ċkΏ'w\M[U+&&i t91+p|U&E!I. :1Iu>`BTR Z4SJxH7NpO6m Q9lpp`"bU~ zdK9!6z${.st T!rS3mIVd>jBAĒBZ תn6!T[{='41r.]HKWpG4F8y: e'%8>Džy}}ϰ3Oԇ2!لNnpBTĄ] NH0Ì᱒Z?{[VN/Mjm':2"2[K{{b 0i l/WP% vA  6^͛/W1I@ku BS)%OU_l0?{ݻOi60,M! @tM GsYZ|f@yd.^xx^py"#S90d WtO=F K藏[8ETX`f1"꽷2 Rk"u:޿xz[ \+g?ŏ??ë <ɫOԧi}ZTf? yXvQyU3D(z;UDR]#fcxu˿nPM ''Ԛl&؄QkTwRB9̝L.wH)-K7svc7^Sh+{ U*XN\&թZ*X>ov,n$6vX+3s/w99i,9yJ,=EP˛zRiF Y ct&u[g: RP^\O:Ui0,\_΁z)DrEgAAs9a) ;Ƃ{w_|$rCQb](:oew…d v `ֱ1AJ/)^ފvPrED1ꗿh?gHc|I zCLudfjz:I:`X,bÇ`*r Z! ۱y.Khl胑.g_~_}>O뷵*L"Z ePRsqnxOaLL'3DS3 S ^^篦W7|3ǤMe)Tmu1J;s@Ti4:1`A{IIQ3#F$"MO ȕ:F+Ǒ& &"Y3eRΤ4ٸf3-muiἬ(eR.UJ-jqt%1Y[{{iE\GNu!ڵ% zdg5*8L njν b" 4 {PCux<5 {﹫'Ouw}{O/N#As O[)\ #b]x|L\H'"ڲ-6q׻(WWAScD#vák$jmK)>|+86,D0LfhO\<1"ЇyzXt6[YF$DE:>lY۰p*2Y* Q C̈ER֜~U{!`@&cC~(}`/7\{zvHĉX(NSV˲W_˗6¼-R%طtsןzyz3+ًY~m]>UP֧i@E9z$]rK);?6RHD"0G60\ '9ՄIRt՚ox޿k6cܾi$ X F QDoNfy/"Tkhq'!,h-8cS_jS-B"`rG84RgvqH(}th[߶۲˲M{p0-qx[%-DX;"nD-<7.Sv0<TgI^eoc]rjv>lۚ#v-q9$4h %rj8|=)' Nϗ}뒙gF/^>I1rZjRh Pkt3y<O}n}͂}l:+>3U|0-B9 qcaOHg}}Fn{a<BBT3)*D&"u!Hh2K_m\=׿xP)1ZW.2J Ie(pVXj<~{˿AԞ)Kdֱ.o)#2uM9 Ѫu"c>>D1 \*tuWz<Ϊ0Zon$ 5=ZU’May-TKi%^ 'ѭ+'99,BL.*VuԮԮuP7mP["|Zqn#(f_/w'acԪU˽>pIk v~Sj5Lk1zl0-MTT(L,˺oNiևi{w|[ۛ/| xwoo>Or%6R)=>o.씛pɌ"JL?sH#ie7B,dETFPxu ö=ѷ_7pg/`* ]#$DN,Sb`ÞHfNd=b%DWs>J"@ $:e8ܼwkt>u]m FթhB(,hY1ưa6̇_I3 7az}bvSDUl4+inK(̢ZT]ĉU77W$ piYA$጖|rAz45dQe{.=q=+(4ADwk,YDED%;+{Q􂍰[α7F` >nf=7t1߫".f zҾWM}Oz鶝.}>۴4BUǫ/nVZ~㽻7~͛2ɛ?gZ@ڶo5wj-sww4O~{+(JD,<<4 ; ]NU;J 9w[rЙ@\6b66K~UAnf;L[*`"by98E(ԭѷ޶v:Osxu'`AJs6,+Cn` "F2UxGY*,f5VYHEr!ŸSkRejv]XUKpW4RpS=jU!Yi;}xz_e_v9}K@2\\1&1Tkqs@^;<|nң`J)\ k!,(Cue;/K޻#kq0>+xlw\r^ o^́6|g+ τť[p:ۇ{;} $z9`a'!ų=  , ] `ŀ5}ܷaw򷸧?otbkc&f{pJo/㯾'rb L=CDQxڲS_νHj]| )77<|>O@iqS\b_ {pR 4D3~b]2AqTl;(7j֮+bp߰,lPH:}:g4Cz@f&L"HC^kQR h>?V8G-%Xh(=`;-Yl) ƶuYu]emyno74թB tE҅ޞǃaf6z>,)F܆{gff8~pJūqєD$ư1:B}^.<9-{6bc}l[{ wv}P !.* k߶jm+6z.S+ HK#TfHefC</"Ey͡'ZJ-\yEKIV!̷wwam`x`αp n><I,i_Z9=O1=PQ-5!9[anm[[t޶hO4g1 S{ R`[-[#kaxP?Upg$J:'3(@a$Ӷ>tlm?{I,=lfҭuϴF>;  @%HizC6l"-pw胙Gfi UVedsywiDlm4HQA K7GW4ᗿ?}k $mSDn~<,sz Ce^tY൚p$Bd1`RlV CSfryyO?~g$024-)1#[U+݀HDIEx6Pz}L>3GŢ{)JUk0#'&QoBdeeOePi1l.% IDATS CE{;n{l}2&7Zͯ=#(1Y|Pt#rRp?g4g0 9#CZuAGCcNC:(Qp՘+`ݛ]k8{woi*[rz3#wNӌ,᮪ebA0 -Ve)ZJ]֢U0lU)-ț\#´c9%xtW"KݛW_^]^7C+/; [ :q i/ףDtIPAcR=ixFmQCm(NsNIDD0iu8,K5[{xlʯq xlXUpvgXRjpz$2dDUL3wW`]zvqUwSvr%' /Ua'1@Op}Yv4n$;#IH(H@ zޮUΗ(K>/_~$bmفA-GnN'vAg!9PAX WX `nnW׈ra),ƒ iƈV:.!\j<ݎ?O8qu^T01'Dʀ"aAAG] y]]V]ID$,Ic\98i]lki8U BA-z=GwsHHTx$]I=o 0lHDgUry^J\[z2zߎ[''XM]lI|˫B\[ 86b2]jRpXje0i*@j!N>O哧 ?x챼>x/㫫yLFȀQEhROb  :vXk #I$Z4r:-ke9=ⰣiyŨ̈v/F^)A")ƭ#"t ^Gu>J[lѮ|m`+ =zyٖY7ہaXpO7۱)BkP@u@hjE6"S v_Aݯu~Si렾7_ͣQ]w[6@znWWk|xyʧ#4N4nk9츔/56*st0/pXp*4<8$ qG&BbNl=MVwKÐ9]ð6DE4W^*V# rlI]_j)e~S)̓$ISS>Dbe^RlFkZ,e2-ΝۆĒ ik@bEXx ۍ`_83 .\zpQ}w{S1ݩRܪa8Um#׺f7sG01&1nn{/(9(j԰vXGkְz:9ְ(M-̩6  ׉ ""U[:Mnwvy:Բ{"l7[vs,s  Ӑ$1L&hEBfBZSF`!]EDr09De՛KVJmW3DC##@168RHrF33ϧxvJeBplZ- :Gz݂Ж7zyz\(@[S0 p{skލ xz*F9G$a+uPgzWO/a B/?w !vdR6%"V9BJ^j'O?w3jFR6sD(lj9eQ⎄ાT-Ṷ8V4G4m$%&<|_>s{wΓGNEu)q6 21IeApj3jp'`j-:oLmsy_I!D9!C '*c]X*9`FS5 DtMuEj6nvk35}5t;z^ߺ hSL bl'g[IafsQj,0[5U )k#,Tx,FneV|ؽrhM_[AES!ܵXOL؝qܞ}EcU<p±* \6'I9,v{T¡P /2 ]/PeV^L*{06p!fF&bT`TU/+ ILjXLv % a Pj-,uYy.30'!k˼̥8 KScjRYd;>-px|Y?/&;),@}ֺo |28B%E7_N?_@ e`[GR|0iT2"B@[v5C8Fwn"ꈵ>DWZxX cE/ r⻗Wo^~wߝXff 4`ARJ!")gM)['":o b@w=\xZ:PHl62Qe1zlUji)K^0T5Gbo)@ŕB[ CUU0c"`o#nfWg:kOh B 6=~|9֔TUa@H*:kYaLq󢅙$d"ЪZ5 eݮWP~ݯ"n #o {K/M`&5]݀`E!lqy`'83EqCOX*'P~= ( Ĵjִ3 <c dFd$ j5p N!cՖ(r$#:[k]Fr U{U%"ӏ! jUꁍ&Y20 T_sT Al=sV@UsW@t[ qRjc5 I}ޖhмZLɿ ԫ Swosder9qJ!{m,0Y$K2u\ 14TU[ޟ.ZXogF o3MvgnG#spe2k7!b͌ ,B Ø1L:m3a~VA!5W J n9@]R*Z9={x[eޝRDꞨVo.9< ӑA)u(xBXH0WO:-WwZ==H6 ikVQ͵J]V2*eysm7?OO~,c7@r΂ Qkiy5(18!8(̥mXH(" S3xG#s4TZ!mMʧ۩[@/ax 1/< :z/Mj9 Has @- D"fZ-VTC8 coVu>Js/z` Rk.[(ŢZzcBpN< 5ŒȚauh7SuU8vojO#VVp Ҝo k|CdӴsEt\],%<Q8,y䔑XCuASaaLN/_+utuSDoKwFU hBoc&"Owt\U"z`an``T7Wq9e@v Hm(#;!:b HE7Kl IŤ A&ND̂,ȹQ{\& <|f3I YJ}&4 =l,=VA92z)42DR`d@"IA"blլeBGK2~XZ"džUr4"^LLq!R%nԽ\jZZkAsE*0Xn&dsv9=;9999=lO6)a) $%uX%I, \έ2ZZtv(a""14\-SJ =dMW:խDmdGy@H=mme0D& fb#`xt>s4We^wh6 Q f>z0 ^za}1{><[$pn!!f7'9^0OGȹF4s77_]40_:#naAw1(B0ĐdO6Ko/?SW?]nq PD{cEn"ˏ|ڰf7L@V_=yT~ﻩ7"{D<""#$"9!!v@!Z$'ZyB@Y?Gps-mhUDۡ b0A2ptq pǦ[&⦱n&cqb]ABȤ+8֒ |)uY.2yE5VOu E8XP $)khZT(V޵1]ia޴MC68D2ANN?yATdQ3G*( Ah}o_<=O&kkχw6lԐDHHt0t_~ВZE$5*"'$Xzwz ؏M` XA x`UA sLUqsZRnK)8,2̠T @9_ IDATdh&,@2)5f{XCt!7]b4e22 G @ZJH@5`jZŪE d!QyuuRF-@=ܫGjVVdE5<ޮ8ZݝR cbQ:]G ,B9xzy|3@za`ui*2%a^N$L"X})m}u#?aE@"uCgFP %@ t sP5UumE~3S%@u=^KlB!b3!B53[6VbmP"vX)Ɂ%qJaeQ9'$,H@˘ P H+!#gNjXyQ'u'$HԠWᤡZuY2Y5"ьɺҚvxn?Ͽ9*HBX?9 gxĊk># 0ZՀB0Ͱl,cP\<+:L@jqk !\Bus x9͘sAQýh6$;)U 0$jV:d" [C3= +:'ajtzr "Di@4p8vyӏs02EDZmN,pZeI6m6)s8IP"cqTCjdN-U˲,sŎ輣{S}0j6cӘ4qUU# ++Ό"<Id֠dw=sYRr/Z=+C("":asCPqCwuU}s uSuVK]DRr{بZZP@98doc*Pw8lN6'gۓpr7ۆRiSmXwkj\_U=jeTIj,"CBɬ؂E|Zc>W5/<$;4q[6X2$)$R [A-7c*9q4D &lm_Gmض;mAaZ?oxf)u""-9߱}>[ۤU4+ĉ`U=7H&2qH !Y:gu}٫铏o>W_y}wd7(VN H 쾘s GB8g_r3cNp=ï><:/mW; ta/o2Nz?zɃ( "PH${H)u?y 2[@U*m.+ Aފ^mK;IP-yvG"a33a@掀?)b@rO0Iv^sӯ_ĦBՌ׸Nk0M?y|ζĘ!ji7W/W_wT4񮋦 B iw-BbIBja"9݋z)%;:swjI%Donu#Q R&y.nv(pN$$A2lh*׍BX_ŭ- ]!CL,V>sAC΄h AbMѭAP=,"Tu)G ԼhNpr[WK)cs"D=X8"T(2x4dA[f\ËWr6p a7:^ O74/Ϳ.C/'vCzt6l(IhkޮEsNgg'Ø1{mB(8C?1sN9"...#BIԪ닋7S)yVA!0 秵.1Fj2WP~ݯ ʚdG!TٔgPf֡d, DĄYHR LTMBɈ,e'F 8Ey?_7V9FL2RIZJa[v A<4lx!e$W)RRJLeLIu9{ƃuxLK*c$dč{9{Yz9mqypX]< JSͻ%Ac)B8䁾nyRXc؛1]5͘H&(B`K 6SnM L$U5ĠDADn{idõa,XWUK1NDpd3Jܔ7R52x&5= m8o$j5zUOuJ!@󬦈ee` _#ш՚ܽ)8bFUGeDe=@T-5RTLDv8њZWw@g.(N a9?Zbpӱ",%a `u ʺ_0p aiP.~77LO}^APջzCP0#!Ga "7pB#H0 Pg.: 4VK_zzq^]^wKhu N v'/\$=xdU{Jf`Ala@(2mW͟|7>P:xP Mӳ{h>, 0L8MWz_?ֳo?=߀evR&N,r,m1mO_|mgů/[O&֣3o=0ĤO˄*Ո p} Ifͺ~.94ɼ2=j5Y"C'Q|׽TAFʪ(̜f"֛jƱӷ1u8|CVB3iwB& W$ebh,Dfm7Q:@\j(cЁ>84`8'}k"w\zMaY!qZjhfLQDVUJ Z9TBQ,o//.6j#ĘDC] H򮂺[wn 1}$nn2[W+"ܗu LP  ,Q5Es pRkř2C4%'7Rio|ũ@ D "<ڗH~&H/^ Wbn)Ft uܚ-T+BD."Zh 8a-ԁ{yiZH|$f.e'@ e[y!UU]\ k$#a RVP'( |ӖfUMaĿ/gPRԐR8zMͻ4s# zKzN[ѪEn773b0Sø^zӮ]n1)hRT\j%#{ (5NNay y9Mq "(y_:a8,CHr-TM!D:~'vyO~|uuqr~A-v*<ֻJHd4Spk P1À(Z Ó'?ypvvz줰t}<l3O^n?>[t?C9}}kk_ITW6$'* @gTt&;w$6X€#98C|wgΰVؾ"Rq;D`3_^nM'}o._϶m!T1Fʪr)E__/_/wo\??7!lQ~M7[ހL9^]ܲ7,Qk](p8'ԒyZIqUMtOm<[k,̵{'LTí;sՎ?"-wpFP; >O3"JaO Z`3 GxS@CYwlG|f80P3lA9rF:2 '_;}x-ȽIaWg$jB#bkggǧ7~?vn什Z#5R ÆXքl\J6[*u APb76S☰ٔQ1~.EŢ glI8Xvt;;- 8GP7+]Ϸx9N zg{F -#&y =H4pXE<ẅY9Zֻ57x-HEJ e"\ Ҡfm޷ pVsSsNsk nah-ЃԀa*;,' S?d 7fn01x䔤Yb(375_ TPD'CdtlMkꈲ;UP"$BJAhijݼL~s'.ff@gķdJfsֳa8q5 L{Cb?uƕW[ 'җBDtkDP ۀa ?H Tiq|+2A#`>HT c~jKo%1Paڣ}ӳP{YWWv`55 FBܲ^*(L!͂qUpv:=[jaNOժvwٽZTyr6>{]vx1&]#|z{=k3ãGz20%@2-|zGT#ɫ[QlfBbS`Ab5_G\EF0..'8CPO='̄puTòѿ~>=OC{Wp`/0dLH% 4YI1! Qڟ:93R[.!֏O%9zyXvHBHakEpYXs9:L=,\IS=Z NjMyh7ۅS䤥#`…,&Ahs8d:K p52+:_xNz #9>?CK,2# [k5=]VUպyfmii?On7MHG2#-Cyͼ>?yӳtZWb@tp U/:ayк\_??,``pz N&Ɖa&ZJ`l" 0H6}̾?jBpYCA7[+7{+X╦yOߺhf <"BA]e(FİkjLj/م7hH躤4]77̥j,GLY r:4/4;@Z gާ 4sw`bo*ߺaStZ8TBvGb.)wNq>b yګ #=hN*f BM RfںW"yK7Ͻ!p nݭs Bs4LX9cN$‡&23HDQ t@ӈ֝0ZC+:K ̛^g;cP\gi\2$˨yD*1Ru( ͥ.cާy{ AffpDRJ:VXJ),Eɺ[6ck;G8 EDB[Z뭻e9RoUPdRqHRfQKw89h֢705b 9*1`V"_GW[3#sbcsm:rsu{zsu̥ոƦ[-%XDw0p m箭' jW RZ•^j]b\Q 9X1 3SQt4"n'΄.-crӎ8{[lnH̀tw<_}f>ܫuRXUM_#\M#pk}߫*GWmMոF$3yn?~z|jdq5RT}V'V jeUtC:o/ųO'}ʙ򨸕!'^ cA`\I:0 n$[+h@xVL %  E"=a*)p4_2R]X":!SD,1pH@%T5,"/\nIC*`bwwpp ^ Y$&h$XG)LD|4.ag e XjUE[3EPJSk}Ұ@BT #`8j\ 2adq|{28I04W_\]Ο_>yt'PZ[mn_nDKJ0 X("Ӵ\~&7ePXdOJn!C.+)^/*uk勅8G-BX$qx8̥" T$`(nKP k" Cmzvt>kV s7t4AdɵlƺG8R ŢssS % RPKRkf"FB@p 'w_&4Af  t .0PÛyM(|Сr4E ׁ|n`*  !^ɒ2-V ϯ7Hկ=ӷ}0{_PU,TYvmnnn}jʵunkT2==@ť# yTWW]~o.>|e[ł`I$ GlW9뿱6]/{zHʼn0),a `Q59un5Wnn8+<HP{z=}eZLhL9ZNoTPQ-iW #桖RK"E)B  cq13\M@&GoǟRx@ A:?>-OZ R pUjTit[߾Ϳ4.= 8#| 5  d%'2z~M7Xv 0PH |iT,iψy/x9NA^fA1ChJ#eyggu ʬ$ w BaH=7_n]-ܘfIa*EHGg9IBl8h5=YjU iofs5O "< T6i?4Iڕӛ1츙G.*?[Q^mCag]rq3kP֔ jwymNǢsn7Vu\Q; kGUon֮8RK'.RXYW$E0IZ}5VU AJ@%C~U8"$PRDwSU苻0cZG{1+h%È,wO/_o>sߍ*C]d"њ@@=42{jW5dulm駟:?_ڻ_F&0o,izt{lwf=q|{?9?5O.@r$:@'W# ;`qWhͼB'/N~t[(Ô8Y`P۠:'Kο/ӏ>~9} 0:/@@ni@wkSc E~@48)>ul^`NS acfQc~1Ymjzd~Qpfw@eơB›94%q=njD@<1Q8@8RtȺSsSS' eavxL:UrjPfA(AfBi~zZz>jQt3GP5Mav30n?^>}[O?|t,PY0T^JLfa Sa(EE!BWiNuߴ𮂺[wn}_M-Ёw!`F rS 18Glg +;bBh掻.b'vj*&r T`Fk!K1#`@0w5WںEء7aݼ*r@KHSC)iLTDV`gܭpm߷n!"kNOmZfK7,:\Q "n*Xs2UًFNĆ:MIZa|̘nu]_nKLf{4v^a2YZ #mrt j#1D@(QDʺ8?_49b0yA 21Y#'$M[k;GA2㯙Q$)ja%|导_~֣O_|xq+Nd5 ysP<#;-gR|{ lRP yt8h`!,6/0__O_F꽄20epA D7Ӧ4,3pwTXY3!0 R! ''D$F 0S[9p\[L7c%l&"{/es0"<w0w$^2y߽MQ) fs ٟ#_d{ @d&A`ڭ >gzcn?{G! ݑBDUխcx)1(ɝE)BLaθ!zbٿxރO{O;Smv\^^n1,sH@_JSː٪2 ™x}2,n3͝P?arWAݭu~.\j7/|#d#_fh:0H:IXH1v4[pFj!u G0[Si˄F`D0pjW{l+wB!xcf02(vHœ3wsZ'nQ}IJ{az!(ɁH,% d+#!p&B 0K)cyޛ;*nT;zqg'vow7?<~Կ`Zڭs^1IEZ8"nM.D?;}|ff6M=vj{yl6e*2=[(PWֽ7 ΅LM;3PɤBW SԚf,Go-LM>WmB0RTba)ČR`vFoZfቖ t%x.8D&H- ԻJ'~~ރR鳗_]v޽GLP U&ts<.@N$Dzp!->vgg)d"w^\=tD2FOiҁi{w?Jw?~ a;z.HD\%*z>ܭlԲ#FQ"(B]%U^dև'3"x8A9ƒ.Ô ޻z. $?%فq38ho|ĸn͠nZwl,J+!BVu>Iy*"0 ax4ZfE *ǀ'`4=E\EhO(`rpf`aU)H [b"rS5<ϓ?~pGw??vQUsCR {#!f$uph.TV8!kw`@v"R6d8Ngݺ[w竎?/nP`/Iv&Bb@$J4TD#7܃6j~(!Lͽ )m\Mrwr.{3pp Vd :g?opk9eD@ʴ뼟]oTs.$0P);1!-ɽ6'.EKbpRLDRU^~_Zm28V~0#SnMvu<7L]8L15Sm7}9 N!d~P-z7n_T/>X^-@>Rn\O]g7C% LjU{,sa<&y!"#32{DNC8r @+γΓN{ӎqUONφJP䉊( S"6AB(*Ά2s!'L@J%KfGO?y:7<{od<=;99YOJ tϸ'6x[92 P1IZ8B\c(Z2 nU _>Ňj*%0$g:X" "d oUO뇧OQA &}{Si߿>=Ab*MzAb0HneDIBݻ!o?x!NcY⼛:C ɲ<f;XD80t>[)ͬs&C]UމE o3QΩ[HI"%Q5i IDATz]wz[>:azwNL 3p{I=A̲V'a$~?u@07@R@Fa_'_k nݭ)?iIoL3B"D\G2dJ$I)`%ҟ +1pt!9 H!H#Ǽ:NFg|=ES瞜QE80o`Isݾf 0j`)a$ ,B K0p_9)c]Nne(6-ҙpmgmvm6nߚ.8;];[_^]Ӧ]4uX,r<T?EބFgꄞM#~JDnqoMu~gBoɸHMFiL1 E5˹)L;^Mi&ZwGћMffDXa\pro^KT*!{2#7CiLƖFܖK yth:p)ԛyó{^/?7dީHim&aA{ %3-[ED<kz5 Bj/q,nɹg#eg?y]~=PR,)h /}yx(gxț@@ =`n'7}>AqB\x@$Huht%"/0._95 "%6CBBXD'| `9XrnCFP2h*HKXcӴrD-Lf9Rd`7D㊈Rt8AȾ8S\RkFzӾA$ hz<Ö2';zxa.a֌_ p("0t|lg~Y,v~HW+QU I)'o=y TUכ> cn |´6Cc.ck]^]I!@a> ^ybHN*uMt233گ?'u-}4L"NRPQ2(Y``nKl&햍R $ R8g ڹl\5ǮA6bG bIM: 2., VI(+(ϭm#,02uXIaX{V˜R``2duF"=@1p}fZ]\Ovz~0HU}p;iٚi#p" fHH0}C L?8R'!0 Ϻp;6sșp-̬#iDt\5C/1X44,D,",(%ݨM1OZmw]T?gf-F%!J bذ?uw޵\w{Ŷ\ˮ E(HQB@Ԅ@;37)9'y9sղ_DѮ-6 5- DO eiex,CGvChWkma(,eWڵ]v{n'm׌óR2M^dÿv.=ztҴ}WZ z}VdT Ꮘ|֮+[CIxiocpԵ Ci(˴hvrQQZa#1MeZ- +J Uks Ujk[]*ı4LCW/M(2%W #Kr>KVю蠘!%^ۖϞfk.seyCIV\vb}}PJ[;Ri]mm!)J-~S#Z\Q5#JL%J\SZ73E4npTx{m5z'K_ױ+i[~?:B/Aɩ9 BT7lۿ2~}흪[BTG~:O σ/:"1N8 $( vHP T?p0eO>$p֭]5sƫT6+tV^'hkKoyt!qawHN2jh@pRPTWE[bEuIMM=+uږ~gdw7D!A[; A8]ye5_5qθKzDD7o+5k;F<1ٵr /Z՟_< +o5/Zm̽MJy鍅k6{']qAxU_^{?/{1J7.~[IwI?zV4yS \ry1.y0 Xlg[~{M:CpXIsߝw)}amn*}7wat&GDD~/2 kE#g;c^d{{ȸ}_ V'?3O_L+R=*C*:'?mǗ{[Ś`y&-lPn㧦k}ZDD7UV#{υY&m HP0䚟}. |5U5Hk٧+/jt~Fz' O 0nZ')VJ0ypQgO9z-C<ƾ/53wWIILw}-k5rs7ohw[Zp@jy醠[ feZT~.s 뚾)z틿|to8׈(愎:Vb7=17'~ %n+uE^yYo(O+ѻ8[| y )y*ժKѴ;JorWCvЌhrwnP6hTaJ)[NBjg[斶8mA]7wּJ{ S윷`}}URz竊›*˷zһ"Wxs>^[#rr Qu')9,!.66'@}Q1]<Ջ?X~c?Fml__u5xmWDDdے^|/^YEM(.1g͜Y 7{S1#Wڶ~o|;bL몺ɋPbײ~Cw~)"beVӯ.ܶ|ߩviDpXTĀ)׍KH*9E5D 2o18-7qSoŷ_1?B'Ko5wdzF=~j\`/[7vA]tl51bK2n}|'""axJgAO-340b`²֘.M殭kKTTڠDDJ[S3g̴Dz:-[[8 kוl5qK?z-k/;vmL=awV)"|ZNw) =br,e6 `M4hK֕T//+L3V;5Y gWD_0g767{nO{H}驖޳u{kNЁLN -Yf-q͜Mn\ìY9|pZuT!)%9%nm(HPN N-HKH蘭6bklƪ&MΊFnII^T]ר;׵h׍EyYWX`Cg,m*_iv":Z.k{>zŘSV>CV8 Ź9ݥsK:hijհw溝_ N߽`wGkjlѻlf8hݦƺ ]]7f|'V8ڱCZfEey92,WPH76Ӹ䝷vKѷ2aX_[ I={j(ݺnfݻc埗} nic;qq?{jgm/g^*:z~hۯ gg`QV>ykeC~ϞѾtʺ(񺒵2 v~xN^̗o yGlY_o"b$M[sZn(>2MKItDۡ}gK jxT'#l+%{{ԔOn2,먦twOK9!Vm[ߋ oqib=z3>3oϢ;{ws6۱9]cI}Պ%f:}Q![?|Ë/KI[>٦}_oyQkK?j|uf}Uwf @p3cRΖ$oۀeo/PUvȭٵ3"wl4aw_1Վ.}v:,ю1rvmWD^k#?gAc?ul'{I9Xfx_ܥ]PA8x;,QnX)h_vK8qC(iׯ|\#{ַv?4=OBg;} (s}o)QI]PיLBHPNt*!g).\uAo|A1ŋ&3JWT%qMn;c8qw{G+;:%bt?KW>6cׁf]I+$ Ģ5l :/ߨ%0̯:ڿ*:%˾id˂|"'HkǤ*))? `>33v'XkR'ӹ HP@$( HP@ A HP@ A HP@TRT`lCp؟jhiiI0NĴBNJ)0<Ouu5Nj0m:)ضzFtW^m۶8gBLӴ,+::nŊPHk-"'0FگGFFGGG[e6ENi---mS-daY^cx'a^75**J}'`FDL4 òp  85CRʲ,8ysԉHP)|'鐆_89$( A HP$( A @ijbscIDAT$( A @$( AHP@&UjXIENDB`ntfy-2.11.0/.github/workflows/000077500000000000000000000000001462047176100161605ustar00rootroot00000000000000ntfy-2.11.0/.github/workflows/build.yaml000066400000000000000000000012241462047176100201420ustar00rootroot00000000000000name: build on: [ push, pull_request ] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Install Go uses: actions/setup-go@v4 with: go-version: '1.22.x' - name: Install node uses: actions/setup-node@v3 with: node-version: '20' cache: 'npm' cache-dependency-path: './web/package-lock.json' - name: Install dependencies run: make build-deps-ubuntu - name: Build all the things run: make build - name: Print build results and checksums run: make cli-build-results ntfy-2.11.0/.github/workflows/docs.yaml000066400000000000000000000020541462047176100177750ustar00rootroot00000000000000name: docs on: push: branches: - main jobs: publish-docs: runs-on: ubuntu-latest steps: - name: Checkout ntfy code uses: actions/checkout@v3 - name: Checkout docs pages code uses: actions/checkout@v3 with: repository: binwiederhier/ntfy-docs.github.io path: build/ntfy-docs.github.io token: ${{secrets.NTFY_DOCS_PUSH_TOKEN}} # Expires after 1 year, re-generate via # User -> Settings -> Developer options -> Personal Access Tokens -> Fine Grained Token - name: Build docs run: make docs - name: Copy generated docs run: rsync -av --exclude CNAME --delete server/docs/ build/ntfy-docs.github.io/docs/ - name: Publish docs run: | cd build/ntfy-docs.github.io git config user.name "GitHub Actions Bot" git config user.email "" git add docs/ git commit -m "Updated docs" git push origin main ntfy-2.11.0/.github/workflows/release.yaml000066400000000000000000000016501462047176100204660ustar00rootroot00000000000000name: release on: push: tags: - 'v[0-9]+.[0-9]+.[0-9]+' jobs: release: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Install Go uses: actions/setup-go@v4 with: go-version: '1.22.x' - name: Install node uses: actions/setup-node@v3 with: node-version: '20' cache: 'npm' cache-dependency-path: './web/package-lock.json' - name: Docker login uses: docker/login-action@v2 with: username: ${{ github.repository_owner }} password: ${{ secrets.DOCKER_HUB_TOKEN }} - name: Install dependencies run: make build-deps-ubuntu - name: Build and publish run: make release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Print build results and checksums run: make cli-build-results ntfy-2.11.0/.github/workflows/test.yaml000066400000000000000000000015441462047176100200270ustar00rootroot00000000000000name: test on: [ push, pull_request ] jobs: test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Install Go uses: actions/setup-go@v4 with: go-version: '1.22.x' - name: Install node uses: actions/setup-node@v3 with: node-version: '20' cache: 'npm' cache-dependency-path: './web/package-lock.json' - name: Install dependencies run: make build-deps-ubuntu - name: Build docs (required for tests) run: make docs - name: Build web app (required for tests) run: make web - name: Run tests, formatting, vetting and linting run: make check - name: Run coverage run: make coverage - name: Upload coverage to codecov.io run: make coverage-upload ntfy-2.11.0/.gitignore000066400000000000000000000002561462047176100145560ustar00rootroot00000000000000dist/ dev-dist/ build/ .idea/ .vscode/ *.swp server/docs/ server/site/ tools/fbsend/fbsend playground/ secrets/ *.iml node_modules/ .DS_Store __pycache__ web/dev-dist/ venv/ ntfy-2.11.0/.gitpod.yml000066400000000000000000000012031462047176100146460ustar00rootroot00000000000000tasks: - name: docs before: make docs-deps command: mkdocs serve - name: binary before: | npm install --global nodemon make cli-deps-static-sites command: | nodemon --watch './**/*.go' --ext go --signal SIGTERM --exec "CGO_ENABLED=1 go run main.go serve --listen-http :2586 --debug --base-url $(gp url 2586)" openMode: split-right - name: web before: make web-deps command: cd web && npm start openMode: split-right vscode: extensions: - golang.go - ms-azuretools.vscode-docker ports: - name: docs port: 8000 - name: binary port: 2586 - name: web port: 3000ntfy-2.11.0/.goreleaser.yml000066400000000000000000000126361462047176100155240ustar00rootroot00000000000000before: hooks: - go mod download - go mod tidy builds: - id: ntfy_linux_amd64 binary: ntfy env: - CGO_ENABLED=1 # required for go-sqlite3 tags: [sqlite_omit_load_extension,osusergo,netgo] ldflags: - "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}" goos: [linux] goarch: [amd64] - id: ntfy_linux_armv6 binary: ntfy env: - CGO_ENABLED=1 # required for go-sqlite3 - CC=arm-linux-gnueabi-gcc # apt install gcc-arm-linux-gnueabi tags: [sqlite_omit_load_extension,osusergo,netgo] ldflags: - "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}" goos: [linux] goarch: [arm] goarm: [6] - id: ntfy_linux_armv7 binary: ntfy env: - CGO_ENABLED=1 # required for go-sqlite3 - CC=arm-linux-gnueabi-gcc # apt install gcc-arm-linux-gnueabi tags: [sqlite_omit_load_extension,osusergo,netgo] ldflags: - "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}" goos: [linux] goarch: [arm] goarm: [7] - id: ntfy_linux_arm64 binary: ntfy env: - CGO_ENABLED=1 # required for go-sqlite3 - CC=aarch64-linux-gnu-gcc # apt install gcc-aarch64-linux-gnu tags: [sqlite_omit_load_extension,osusergo,netgo] ldflags: - "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}" goos: [linux] goarch: [arm64] - id: ntfy_windows_amd64 binary: ntfy env: - CGO_ENABLED=0 # explicitly disable, since we don't need go-sqlite3 tags: [noserver] # don't include server files ldflags: - "-X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}" goos: [windows] goarch: [amd64] - id: ntfy_darwin_all binary: ntfy env: - CGO_ENABLED=0 # explicitly disable, since we don't need go-sqlite3 tags: [noserver] # don't include server files ldflags: - "-X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}" goos: [darwin] goarch: [amd64, arm64] # will be combined to "universal binary" (see below) nfpms: - package_name: ntfy homepage: https://heckel.io/ntfy maintainer: Philipp C. Heckel description: Simple pub-sub notification service license: Apache 2.0 formats: - deb - rpm bindir: /usr/bin contents: - src: server/server.yml dst: /etc/ntfy/server.yml type: "config|noreplace" - src: server/ntfy.service dst: /lib/systemd/system/ntfy.service - src: client/client.yml dst: /etc/ntfy/client.yml type: "config|noreplace" - src: client/ntfy-client.service dst: /lib/systemd/system/ntfy-client.service - dst: /var/cache/ntfy type: dir - dst: /var/cache/ntfy/attachments type: dir - dst: /var/lib/ntfy type: dir - dst: /usr/share/ntfy/logo.png src: web/public/static/images/ntfy.png scripts: preinstall: "scripts/preinst.sh" postinstall: "scripts/postinst.sh" preremove: "scripts/prerm.sh" postremove: "scripts/postrm.sh" archives: - id: ntfy_linux builds: - ntfy_linux_amd64 - ntfy_linux_armv6 - ntfy_linux_armv7 - ntfy_linux_arm64 wrap_in_directory: true files: - LICENSE - README.md - server/server.yml - server/ntfy.service - client/client.yml - client/ntfy-client.service - id: ntfy_windows builds: - ntfy_windows_amd64 format: zip wrap_in_directory: true files: - LICENSE - README.md - client/client.yml - id: ntfy_darwin builds: - ntfy_darwin_all wrap_in_directory: true files: - LICENSE - README.md - client/client.yml universal_binaries: - id: ntfy_darwin_all replace: true name_template: ntfy checksum: name_template: 'checksums.txt' snapshot: name_template: "{{ .Tag }}-next" changelog: sort: asc filters: exclude: - '^docs:' - '^test:' dockers: - image_templates: - &amd64_image "binwiederhier/ntfy:{{ .Tag }}-amd64" use: buildx dockerfile: Dockerfile goarch: amd64 build_flag_templates: - "--platform=linux/amd64" - image_templates: - &arm64v8_image "binwiederhier/ntfy:{{ .Tag }}-arm64v8" use: buildx dockerfile: Dockerfile-arm goarch: arm64 build_flag_templates: - "--platform=linux/arm64/v8" - image_templates: - &armv7_image "binwiederhier/ntfy:{{ .Tag }}-armv7" use: buildx dockerfile: Dockerfile-arm goarch: arm goarm: 7 build_flag_templates: - "--platform=linux/arm/v7" - image_templates: - &armv6_image "binwiederhier/ntfy:{{ .Tag }}-armv6" use: buildx dockerfile: Dockerfile-arm goarch: arm goarm: 6 build_flag_templates: - "--platform=linux/arm/v6" docker_manifests: - name_template: "binwiederhier/ntfy:latest" image_templates: - *amd64_image - *arm64v8_image - *armv7_image - *armv6_image - name_template: "binwiederhier/ntfy:{{ .Tag }}" image_templates: - *amd64_image - *arm64v8_image - *armv7_image - *armv6_image ntfy-2.11.0/CODE_OF_CONDUCT.md000066400000000000000000000126251462047176100153700ustar00rootroot00000000000000# Contributor Covenant Code of Conduct ## Our Pledge We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. ## Our Standards Examples of behavior that contributes to a positive environment for our community include: * Demonstrating empathy and kindness toward other people * Being respectful of differing opinions, viewpoints, and experiences * Giving and gracefully accepting constructive feedback * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience * Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: * The use of sexualized language or imagery, and sexual attention or advances of any kind * Trolling, insulting or derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or email address, without their explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Enforcement Responsibilities Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. ## Scope This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement via Discord/Matrix (binwiederhier), or email (ntfy@heckel.io). All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident. ## Enforcement Guidelines Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: ### 1. Correction **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. ### 2. Warning **Community Impact**: A violation through a single incident or series of actions. **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. ### 3. Temporary Ban **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. ### 4. Permanent Ban **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. **Consequence**: A permanent ban from any sort of public interaction within the community. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. For answers to common questions about this code of conduct, see the FAQ at [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at [https://www.contributor-covenant.org/translations][translations]. [homepage]: https://www.contributor-covenant.org [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html [Mozilla CoC]: https://github.com/mozilla/diversity [FAQ]: https://www.contributor-covenant.org/faq [translations]: https://www.contributor-covenant.org/translations ntfy-2.11.0/Dockerfile000066400000000000000000000011761462047176100145620ustar00rootroot00000000000000FROM alpine LABEL org.opencontainers.image.authors="philipp.heckel@gmail.com" LABEL org.opencontainers.image.url="https://ntfy.sh/" LABEL org.opencontainers.image.documentation="https://docs.ntfy.sh/" LABEL org.opencontainers.image.source="https://github.com/binwiederhier/ntfy" LABEL org.opencontainers.image.vendor="Philipp C. Heckel" LABEL org.opencontainers.image.licenses="Apache-2.0, GPL-2.0" LABEL org.opencontainers.image.title="ntfy" LABEL org.opencontainers.image.description="Send push notifications to your phone or desktop using PUT/POST" RUN apk add --no-cache tzdata COPY ntfy /usr/bin EXPOSE 80/tcp ENTRYPOINT ["ntfy"] ntfy-2.11.0/Dockerfile-arm000066400000000000000000000013221462047176100153300ustar00rootroot00000000000000FROM alpine LABEL org.opencontainers.image.authors="philipp.heckel@gmail.com" LABEL org.opencontainers.image.url="https://ntfy.sh/" LABEL org.opencontainers.image.documentation="https://docs.ntfy.sh/" LABEL org.opencontainers.image.source="https://github.com/binwiederhier/ntfy" LABEL org.opencontainers.image.vendor="Philipp C. Heckel" LABEL org.opencontainers.image.licenses="Apache-2.0, GPL-2.0" LABEL org.opencontainers.image.title="ntfy" LABEL org.opencontainers.image.description="Send push notifications to your phone or desktop using PUT/POST" # Alpine does not support adding "tzdata" on ARM anymore, see # https://github.com/binwiederhier/ntfy/issues/894 COPY ntfy /usr/bin EXPOSE 80/tcp ENTRYPOINT ["ntfy"] ntfy-2.11.0/Dockerfile-build000066400000000000000000000033741462047176100156610ustar00rootroot00000000000000FROM golang:1.22-bullseye as builder ARG VERSION=dev ARG COMMIT=unknown ARG NODE_MAJOR=18 RUN apt-get update && apt-get install -y \ build-essential ca-certificates curl gnupg \ && mkdir -p /etc/apt/keyrings \ && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" >> /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y \ python3-pip \ python3-venv \ nodejs \ && rm -rf /var/lib/apt/lists/* WORKDIR /app ADD Makefile . # docs ADD ./requirements.txt . RUN make docs-deps ADD ./mkdocs.yml . ADD ./docs ./docs RUN make docs-build # web ADD ./web/package.json ./web/package-lock.json ./web/ RUN make web-deps ADD ./web ./web RUN make web-build # cli & server ADD go.mod go.sum main.go ./ ADD ./client ./client ADD ./cmd ./cmd ADD ./log ./log ADD ./server ./server ADD ./user ./user ADD ./util ./util RUN make VERSION=$VERSION COMMIT=$COMMIT cli-linux-server FROM alpine LABEL org.opencontainers.image.authors="philipp.heckel@gmail.com" LABEL org.opencontainers.image.url="https://ntfy.sh/" LABEL org.opencontainers.image.documentation="https://docs.ntfy.sh/" LABEL org.opencontainers.image.source="https://github.com/binwiederhier/ntfy" LABEL org.opencontainers.image.vendor="Philipp C. Heckel" LABEL org.opencontainers.image.licenses="Apache-2.0, GPL-2.0" LABEL org.opencontainers.image.title="ntfy" LABEL org.opencontainers.image.description="Send push notifications to your phone or desktop using PUT/POST" COPY --from=builder /app/dist/ntfy_linux_server/ntfy /usr/bin/ntfy EXPOSE 80/tcp ENTRYPOINT ["ntfy"] ntfy-2.11.0/LICENSE000066400000000000000000000261231462047176100135740ustar00rootroot00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2021 Philipp C. Heckel Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ntfy-2.11.0/LICENSE.GPLv2000066400000000000000000000431501462047176100144640ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. ntfy Copyright (C) 2021 Philipp C. Heckel This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ntfy-2.11.0/Makefile000066400000000000000000000301541462047176100142260ustar00rootroot00000000000000MAKEFLAGS := --jobs=1 PYTHON := python3 PIP := pip3 VERSION := $(shell git describe --tag) COMMIT := $(shell git rev-parse --short HEAD) .PHONY: help: @echo "Typical commands (more see below):" @echo " make build - Build web app, documentation and server/client (sloowwww)" @echo " make cli-linux-amd64 - Build server/client binary (amd64, no web app or docs)" @echo " make install-linux-amd64 - Install ntfy binary to /usr/bin/ntfy (amd64)" @echo " make web - Build the web app" @echo " make docs - Build the documentation" @echo " make check - Run all tests, vetting/formatting checks and linters" @echo @echo "Build everything:" @echo " make build - Build web app, documentation and server/client" @echo " make clean - Clean build/dist folders" @echo @echo "Build server & client (using GoReleaser, not release version):" @echo " make cli - Build server & client (all architectures)" @echo " make cli-linux-amd64 - Build server & client (Linux, amd64 only)" @echo " make cli-linux-armv6 - Build server & client (Linux, armv6 only)" @echo " make cli-linux-armv7 - Build server & client (Linux, armv7 only)" @echo " make cli-linux-arm64 - Build server & client (Linux, arm64 only)" @echo " make cli-windows-amd64 - Build client (Windows, amd64 only)" @echo " make cli-darwin-all - Build client (macOS, arm64+amd64 universal binary)" @echo @echo "Build server & client (without GoReleaser):" @echo " make cli-linux-server - Build client & server (no GoReleaser, current arch, Linux)" @echo " make cli-darwin-server - Build client & server (no GoReleaser, current arch, macOS)" @echo " make cli-client - Build client only (no GoReleaser, current arch, Linux/macOS/Windows)" @echo @echo "Build dev Docker:" @echo " make docker-dev - Build client & server for current architecture using Docker only" @echo @echo "Build web app:" @echo " make web - Build the web app" @echo " make web-deps - Install web app dependencies (npm install the universe)" @echo " make web-build - Actually build the web app" @echo " make web-lint - Run eslint on the web app" @echo " make web-fmt - Run prettier on the web app" @echo " make web-fmt-check - Run prettier on the web app, but don't change anything" @echo @echo "Build documentation:" @echo " make docs - Build the documentation" @echo " make docs-deps - Install Python dependencies (pip3 install)" @echo " make docs-build - Actually build the documentation" @echo @echo "Test/check:" @echo " make test - Run tests" @echo " make race - Run tests with -race flag" @echo " make coverage - Run tests and show coverage" @echo " make coverage-html - Run tests and show coverage (as HTML)" @echo " make coverage-upload - Upload coverage results to codecov.io" @echo @echo "Lint/format:" @echo " make fmt - Run 'go fmt'" @echo " make fmt-check - Run 'go fmt', but don't change anything" @echo " make vet - Run 'go vet'" @echo " make lint - Run 'golint'" @echo " make staticcheck - Run 'staticcheck'" @echo @echo "Releasing:" @echo " make release - Create a release" @echo " make release-snapshot - Create a test release" @echo @echo "Install locally (requires sudo):" @echo " make install-linux-amd64 - Copy amd64 binary from dist/ to /usr/bin/ntfy" @echo " make install-linux-armv6 - Copy armv6 binary from dist/ to /usr/bin/ntfy" @echo " make install-linux-armv7 - Copy armv7 binary from dist/ to /usr/bin/ntfy" @echo " make install-linux-arm64 - Copy arm64 binary from dist/ to /usr/bin/ntfy" @echo " make install-linux-deb-amd64 - Install .deb from dist/ (amd64 only)" @echo " make install-linux-deb-armv6 - Install .deb from dist/ (armv6 only)" @echo " make install-linux-deb-armv7 - Install .deb from dist/ (armv7 only)" @echo " make install-linux-deb-arm64 - Install .deb from dist/ (arm64 only)" # Building everything clean: .PHONY rm -rf dist build server/docs server/site build: web docs cli update: web-deps-update cli-deps-update docs-deps-update docker pull alpine docker-dev: docker build \ --file ./Dockerfile-build \ --tag binwiederhier/ntfy:$(VERSION) \ --tag binwiederhier/ntfy:dev \ --build-arg VERSION=$(VERSION) \ --build-arg COMMIT=$(COMMIT) \ ./ # Ubuntu-specific build-deps-ubuntu: sudo apt-get update sudo apt-get install -y \ curl \ gcc-aarch64-linux-gnu \ gcc-arm-linux-gnueabi \ python3 \ python3-venv \ jq which pip3 || sudo apt-get install -y python3-pip # Documentation docs: docs-deps docs-build docs-venv: .PHONY $(PYTHON) -m venv ./venv docs-build: docs-venv (. venv/bin/activate && $(PYTHON) -m mkdocs build) docs-deps: docs-venv (. venv/bin/activate && $(PIP) install -r requirements.txt) docs-deps-update: .PHONY (. venv/bin/activate && $(PIP) install -r requirements.txt --upgrade) # Web app web: web-deps web-build web-build: cd web \ && npm run build \ && mv build/index.html build/app.html \ && rm -rf ../server/site \ && mv build ../server/site \ && rm \ ../server/site/config.js web-deps: cd web && npm install # If this fails for .svg files, optimize them with svgo web-deps-update: cd web && npm update web-fmt: cd web && npm run format web-fmt-check: cd web && npm run format:check web-lint: cd web && npm run lint # Main server/client build cli: cli-deps goreleaser build --snapshot --clean cli-linux-amd64: cli-deps-static-sites goreleaser build --snapshot --clean --id ntfy_linux_amd64 cli-linux-armv6: cli-deps-static-sites cli-deps-gcc-armv6-armv7 goreleaser build --snapshot --clean --id ntfy_linux_armv6 cli-linux-armv7: cli-deps-static-sites cli-deps-gcc-armv6-armv7 goreleaser build --snapshot --clean --id ntfy_linux_armv7 cli-linux-arm64: cli-deps-static-sites cli-deps-gcc-arm64 goreleaser build --snapshot --clean --id ntfy_linux_arm64 cli-windows-amd64: cli-deps-static-sites goreleaser build --snapshot --clean --id ntfy_windows_amd64 cli-darwin-all: cli-deps-static-sites goreleaser build --snapshot --clean --id ntfy_darwin_all cli-linux-server: cli-deps-static-sites # This is a target to build the CLI (including the server) manually. # Use this for development, if you really don't want to install GoReleaser ... mkdir -p dist/ntfy_linux_server server/docs CGO_ENABLED=1 go build \ -o dist/ntfy_linux_server/ntfy \ -tags sqlite_omit_load_extension,osusergo,netgo \ -ldflags \ "-linkmode=external -extldflags=-static -s -w -X main.version=$(VERSION) -X main.commit=$(COMMIT) -X main.date=$(shell date +%s)" cli-darwin-server: cli-deps-static-sites # This is a target to build the CLI (including the server) manually. # Use this for macOS/iOS development, so you have a local server to test with. mkdir -p dist/ntfy_darwin_server server/docs CGO_ENABLED=1 go build \ -o dist/ntfy_darwin_server/ntfy \ -tags sqlite_omit_load_extension,osusergo,netgo \ -ldflags \ "-linkmode=external -s -w -X main.version=$(VERSION) -X main.commit=$(COMMIT) -X main.date=$(shell date +%s)" cli-client: cli-deps-static-sites # This is a target to build the CLI (excluding the server) manually. This should work on Linux/macOS/Windows. # Use this for development, if you really don't want to install GoReleaser ... mkdir -p dist/ntfy_client server/docs CGO_ENABLED=0 go build \ -o dist/ntfy_client/ntfy \ -tags noserver \ -ldflags \ "-X main.version=$(VERSION) -X main.commit=$(COMMIT) -X main.date=$(shell date +%s)" cli-deps: cli-deps-static-sites cli-deps-all cli-deps-gcc cli-deps-gcc: cli-deps-gcc-armv6-armv7 cli-deps-gcc-arm64 cli-deps-static-sites: mkdir -p server/docs server/site touch server/docs/index.html server/site/app.html cli-deps-all: go install github.com/goreleaser/goreleaser@latest cli-deps-gcc-armv6-armv7: which arm-linux-gnueabi-gcc || { echo "ERROR: ARMv6/ARMv7 cross compiler not installed. On Ubuntu, run: apt install gcc-arm-linux-gnueabi"; exit 1; } cli-deps-gcc-arm64: which aarch64-linux-gnu-gcc || { echo "ERROR: ARM64 cross compiler not installed. On Ubuntu, run: apt install gcc-aarch64-linux-gnu"; exit 1; } cli-deps-update: go get -u go install honnef.co/go/tools/cmd/staticcheck@latest go install golang.org/x/lint/golint@latest go install github.com/goreleaser/goreleaser@latest cli-build-results: cat dist/config.yaml [ -f dist/artifacts.json ] && cat dist/artifacts.json | jq . || true [ -f dist/metadata.json ] && cat dist/metadata.json | jq . || true [ -f dist/checksums.txt ] && cat dist/checksums.txt || true find dist -maxdepth 2 -type f \ \( -name '*.deb' -or -name '*.rpm' -or -name '*.zip' -or -name '*.tar.gz' -or -name 'ntfy' \) \ -and -not -path 'dist/goreleaserdocker*' \ -exec sha256sum {} \; # Test/check targets check: test web-fmt-check fmt-check vet web-lint lint staticcheck test: .PHONY go test $(shell go list ./... | grep -vE 'ntfy/(test|examples|tools)') testv: .PHONY go test -v $(shell go list ./... | grep -vE 'ntfy/(test|examples|tools)') race: .PHONY go test -v -race $(shell go list ./... | grep -vE 'ntfy/(test|examples|tools)') coverage: mkdir -p build/coverage go test -v -race -coverprofile=build/coverage/coverage.txt -covermode=atomic $(shell go list ./... | grep -vE 'ntfy/(test|examples|tools)') go tool cover -func build/coverage/coverage.txt coverage-html: mkdir -p build/coverage go test -race -coverprofile=build/coverage/coverage.txt -covermode=atomic $(shell go list ./... | grep -vE 'ntfy/(test|examples|tools)') go tool cover -html build/coverage/coverage.txt coverage-upload: cd build/coverage && (curl -s https://codecov.io/bash | bash) # Lint/formatting targets fmt: web-fmt gofmt -s -w . fmt-check: test -z $(shell gofmt -l .) vet: go vet ./... lint: which golint || go install golang.org/x/lint/golint@latest go list ./... | grep -v /vendor/ | xargs -L1 golint -set_exit_status staticcheck: .PHONY rm -rf build/staticcheck which staticcheck || go install honnef.co/go/tools/cmd/staticcheck@latest mkdir -p build/staticcheck ln -s "go" build/staticcheck/go PATH="$(PWD)/build/staticcheck:$(PATH)" staticcheck ./... rm -rf build/staticcheck # Releasing targets release: clean cli-deps release-checks docs web check goreleaser release --clean release-snapshot: clean cli-deps docs web check goreleaser release --snapshot --skip-publish --clean release-checks: $(eval LATEST_TAG := $(shell git describe --abbrev=0 --tags | cut -c2-)) if ! grep -q $(LATEST_TAG) docs/install.md; then\ echo "ERROR: Must update docs/install.md with latest tag first.";\ exit 1;\ fi if ! grep -q $(LATEST_TAG) docs/releases.md; then\ echo "ERROR: Must update docs/releases.md with latest tag first.";\ exit 1;\ fi if [ -n "$(shell git status -s)" ]; then\ echo "ERROR: Git repository is in an unclean state.";\ exit 1;\ fi # Installing targets install-linux-amd64: remove-binary sudo cp -a dist/ntfy_linux_amd64_linux_amd64_v1/ntfy /usr/bin/ntfy install-linux-armv6: remove-binary sudo cp -a dist/ntfy_linux_armv6_linux_arm_6/ntfy /usr/bin/ntfy install-linux-armv7: remove-binary sudo cp -a dist/ntfy_linux_armv7_linux_arm_7/ntfy /usr/bin/ntfy install-linux-arm64: remove-binary sudo cp -a dist/ntfy_linux_arm64_linux_arm64/ntfy /usr/bin/ntfy remove-binary: sudo rm -f /usr/bin/ntfy install-linux-amd64-deb: purge-package sudo dpkg -i dist/ntfy_*_linux_amd64.deb install-linux-armv6-deb: purge-package sudo dpkg -i dist/ntfy_*_linux_armv6.deb install-linux-armv7-deb: purge-package sudo dpkg -i dist/ntfy_*_linux_armv7.deb install-linux-arm64-deb: purge-package sudo dpkg -i dist/ntfy_*_linux_arm64.deb purge-package: sudo systemctl stop ntfy || true sudo apt-get purge ntfy || true ntfy-2.11.0/README.md000066400000000000000000000521141462047176100140450ustar00rootroot00000000000000![ntfy](web/public/static/images/ntfy.png) # ntfy.sh | Send push notifications to your phone or desktop via PUT/POST [![Release](https://img.shields.io/github/release/binwiederhier/ntfy.svg?color=success&style=flat-square)](https://github.com/binwiederhier/ntfy/releases/latest) [![Go Reference](https://pkg.go.dev/badge/heckel.io/ntfy.svg)](https://pkg.go.dev/heckel.io/ntfy/v2) [![Tests](https://github.com/binwiederhier/ntfy/workflows/test/badge.svg)](https://github.com/binwiederhier/ntfy/actions) [![Go Report Card](https://goreportcard.com/badge/github.com/binwiederhier/ntfy)](https://goreportcard.com/report/github.com/binwiederhier/ntfy) [![codecov](https://codecov.io/gh/binwiederhier/ntfy/branch/main/graph/badge.svg?token=A597KQ463G)](https://codecov.io/gh/binwiederhier/ntfy) [![Discord](https://img.shields.io/discord/874398661709295626?label=Discord)](https://discord.gg/cT7ECsZj9w) [![Matrix](https://img.shields.io/matrix/ntfy:matrix.org?label=Matrix)](https://matrix.to/#/#ntfy:matrix.org) [![Matrix space](https://img.shields.io/matrix/ntfy-space:matrix.org?label=Matrix+space)](https://matrix.to/#/#ntfy-space:matrix.org) [![Healthcheck](https://healthchecks.io/badge/68b65976-b3b0-4102-aec9-980921/kcoEgrLY.svg)](https://ntfy.statuspage.io/) [![Gitpod](https://img.shields.io/badge/Contribute%20with-Gitpod-908a85?logo=gitpod)](https://gitpod.io/#https://github.com/binwiederhier/ntfy) **ntfy** (pronounced "*notify*") is a simple HTTP-based [pub-sub](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) notification service. With ntfy, you can **send notifications to your phone or desktop via scripts** from any computer, **without having to sign up or pay any fees**. If you'd like to run your own instance of the service, you can easily do so since ntfy is open source. You can access the free version of ntfy at **[ntfy.sh](https://ntfy.sh)**. There is also an [open-source Android app](https://github.com/binwiederhier/ntfy-android) available on [Google Play](https://play.google.com/store/apps/details?id=io.heckel.ntfy) or [F-Droid](https://f-droid.org/en/packages/io.heckel.ntfy/), as well as an [open source iOS app](https://github.com/binwiederhier/ntfy-ios) available on the [App Store](https://apps.apple.com/us/app/ntfy/id1625396347).

    ## [ntfy Pro](https://ntfy.sh/app) 💸 🎉 I now offer paid plans for [ntfy.sh](https://ntfy.sh/) if you don't want to self-host, or you want to support the development of ntfy (→ [Purchase via web app](https://ntfy.sh/app)). You can **buy a plan for as low as $5/month**. You can also donate via [GitHub Sponsors](https://github.com/sponsors/binwiederhier), and [Liberapay](https://liberapay.com/ntfy). I would be very humbled by your sponsorship. ❤️ ## **[Documentation](https://ntfy.sh/docs/)** [Getting started](https://ntfy.sh/docs/) | [Android/iOS](https://ntfy.sh/docs/subscribe/phone/) | [API](https://ntfy.sh/docs/publish/) | [Install / Self-hosting](https://ntfy.sh/docs/install/) | [Building](https://ntfy.sh/docs/develop/) ## Chat/forum There are a few ways to get in touch with me and/or the rest of the community. Feel free to use any of these methods. Whatever works best for you: * [Discord server](https://discord.gg/cT7ECsZj9w) - direct chat with the community * [Matrix room #ntfy](https://matrix.to/#/#ntfy:matrix.org) (+ [Matrix space](https://matrix.to/#/#ntfy-space:matrix.org)) - same chat, bridged from Discord * [GitHub issues](https://github.com/binwiederhier/ntfy/issues) - questions, features, bugs ## Announcements/beta testers For announcements of new releases and cutting-edge beta versions, please subscribe to the [ntfy.sh/announcements](https://ntfy.sh/announcements) topic. If you'd like to test the iOS app, join [TestFlight](https://testflight.apple.com/join/P1fFnAm9). For Android betas, join Discord/Matrix (I'll eventually make a testing channel in Google Play). ## Contributing I welcome any contributions. Just create a PR or an issue. For larger features/ideas, please reach out on Discord/Matrix first to see if I'd accept them. To contribute code, check out the [build instructions](https://ntfy.sh/docs/develop/) for the server and the Android app. Or, if you'd like to help translate 🇩🇪 🇺🇸 🇧🇬, you can start immediately in [Hosted Weblate](https://hosted.weblate.org/projects/ntfy/).
    Translation status ## Sponsors I have just very recently started accepting donations via [GitHub Sponsors](https://github.com/sponsors/binwiederhier), and [Liberapay](https://liberapay.com/ntfy). I would be humbled if you helped me carry the server and developer account costs. Even small donations are very much appreciated. A big fat **Thank You** to the folks who have sponsored ntfy in the past, or are still sponsoring ntfy: I'd also like to thank JetBrains for their awesome [IntelliJ IDEA](https://www.jetbrains.com/idea/), and [DigitalOcean](https://m.do.co/c/442b929528db) (*referral link*) for supporting the project: ## Code of Conduct We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation. **We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.** _Please be sure to read the complete [Code of Conduct](CODE_OF_CONDUCT.md)._ ## License Made with ❤️ by [Philipp C. Heckel](https://heckel.io). The project is dual licensed under the [Apache License 2.0](LICENSE) and the [GPLv2 License](LICENSE.GPLv2). Third-party libraries and resources: * [github.com/urfave/cli](https://github.com/urfave/cli) (MIT) is used to drive the CLI * [Mixkit sounds](https://mixkit.co/free-sound-effects/notification/) (Mixkit Free License) are used as notification sounds * [Sounds from notificationsounds.com](https://notificationsounds.com) (Creative Commons Attribution) are used as notification sounds * [Roboto Font](https://fonts.google.com/specimen/Roboto) (Apache 2.0) is used as a font in everything web * [React](https://reactjs.org/) (MIT) is used for the web app * [Material UI components](https://mui.com/) (MIT) are used in the web app * [MUI dashboard template](https://github.com/mui/material-ui/tree/master/docs/data/material/getting-started/templates/dashboard) (MIT) was used as a basis for the web app * [Dexie.js](https://github.com/dexie/Dexie.js) (Apache 2.0) is used for web app persistence in IndexedDB * [GoReleaser](https://goreleaser.com/) (MIT) is used to create releases * [go-smtp](https://github.com/emersion/go-smtp) (MIT) is used to receive e-mails * [stretchr/testify](https://github.com/stretchr/testify) (MIT) is used for unit and integration tests * [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) (MIT) is used to provide the persistent message cache * [Firebase Admin SDK](https://github.com/firebase/firebase-admin-go) (Apache 2.0) is used to send FCM messages * [github/gemoji](https://github.com/github/gemoji) (MIT) is used for emoji support (specifically the [emoji.json](https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json) file) * [Lightbox with vanilla JS](https://yossiabramov.com/blog/vanilla-js-lightbox) as a lightbox on the landing page * [HTTP middleware for gzip compression](https://gist.github.com/CJEnright/bc2d8b8dc0c1389a9feeddb110f822d7) (MIT) is used for serving static files * [Regex for auto-linking](https://github.com/bryanwoods/autolink-js) (MIT) is used to highlight links (the library is not used) * [Statically linking go-sqlite3](https://www.arp242.net/static-go.html) * [Linked tabs in mkdocs](https://facelessuser.github.io/pymdown-extensions/extensions/tabbed/#linked-tabs) * [webpush-go](https://github.com/SherClockHolmes/webpush-go) (MIT) is used to send web push notifications ntfy-2.11.0/SECURITY.md000066400000000000000000000005501462047176100143540ustar00rootroot00000000000000# Security Policy ## Supported Versions As of today, I only support the latest version of ntfy. Please make sure you stay up-to-date. ## Reporting a Vulnerability Please report severe security issues privately via ntfy@heckel.io, [Discord](https://discord.gg/cT7ECsZj9w), or [Matrix](https://matrix.to/#/#ntfy:matrix.org) (my username is `binwiederhier`). ntfy-2.11.0/assets/000077500000000000000000000000001462047176100140655ustar00rootroot00000000000000ntfy-2.11.0/assets/favicon.xcf000066400000000000000000000232671462047176100162260ustar00rootroot00000000000000gimp xcf filePPBBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) *$^%Rrn     ogimp-text-layerS(markup "n") (font "Sans") (font-size 29.000000) (font-size-unit pixels) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 1.000000 1.000000 1.000000)) (justify left) (box-mode fixed) (box-width 82.000000) (box-height 114.000000) (box-unit pixels) (hinting yes) RrRr N ^`        ++,,                  `        ++,,                  `        ++,,                  `HԲ~@ /  m e     g λ++ ,X,W* 'i $s( pT  |  ` n #    _ .                                                                                      )9Rrn #1       ogimp-text-layerS(markup "n") (font "Sans") (font-size 29.000000) (font-size-unit pixels) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.654902 0.654902 0.654902)) (justify left) (box-mode fixed) (box-width 82.000000) (box-height 114.000000) (box-unit pixels) (hinting yes) NRrf$RRr$B`   U     +,,-      U             `   U     +,,-      U             `   U     +,,-      U             `HԲ~@ /  m e     g λ++ ,X,W* 'i $s( pT  |  ` n #    _ .                                                                                      )9ddLayer     % dd%$%dd%@%P%`%p        22dd Background     &Gdd&_&dd&{&&&9Z 9  Z 9  Z9Z22ntfy-2.11.0/client/000077500000000000000000000000001462047176100140415ustar00rootroot00000000000000ntfy-2.11.0/client/client.go000066400000000000000000000216631462047176100156560ustar00rootroot00000000000000// Package client provides a ntfy client to publish and subscribe to topics package client import ( "bufio" "context" "encoding/json" "errors" "fmt" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/util" "io" "net/http" "regexp" "strings" "sync" "time" ) const ( // MessageEvent identifies a message event MessageEvent = "message" ) const ( maxResponseBytes = 4096 ) var ( topicRegex = regexp.MustCompile(`^[-_A-Za-z0-9]{1,64}$`) // Same as in server/server.go ) // Client is the ntfy client that can be used to publish and subscribe to ntfy topics type Client struct { Messages chan *Message config *Config subscriptions map[string]*subscription mu sync.Mutex } // Message is a struct that represents a ntfy message type Message struct { // TODO combine with server.message ID string Event string Time int64 Topic string Message string Title string Priority int Tags []string Click string Icon string Attachment *Attachment // Additional fields TopicURL string SubscriptionID string Raw string } // Attachment represents a message attachment type Attachment struct { Name string `json:"name"` Type string `json:"type,omitempty"` Size int64 `json:"size,omitempty"` Expires int64 `json:"expires,omitempty"` URL string `json:"url"` Owner string `json:"-"` // IP address of uploader, used for rate limiting } type subscription struct { ID string topicURL string cancel context.CancelFunc } // New creates a new Client using a given Config func New(config *Config) *Client { return &Client{ Messages: make(chan *Message, 50), // Allow reading a few messages config: config, subscriptions: make(map[string]*subscription), } } // Publish sends a message to a specific topic, optionally using options. // See PublishReader for details. func (c *Client) Publish(topic, message string, options ...PublishOption) (*Message, error) { return c.PublishReader(topic, strings.NewReader(message), options...) } // PublishReader sends a message to a specific topic, optionally using options. // // A topic can be either a full URL (e.g. https://myhost.lan/mytopic), a short URL which is then prepended https:// // (e.g. myhost.lan -> https://myhost.lan), or a short name which is expanded using the default host in the // config (e.g. mytopic -> https://ntfy.sh/mytopic). // // To pass title, priority and tags, check out WithTitle, WithPriority, WithTagsList, WithDelay, WithNoCache, // WithNoFirebase, and the generic WithHeader. func (c *Client) PublishReader(topic string, body io.Reader, options ...PublishOption) (*Message, error) { topicURL, err := c.expandTopicURL(topic) if err != nil { return nil, err } req, err := http.NewRequest("POST", topicURL, body) if err != nil { return nil, err } for _, option := range options { if err := option(req); err != nil { return nil, err } } log.Debug("%s Publishing message with headers %s", util.ShortTopicURL(topicURL), req.Header) resp, err := http.DefaultClient.Do(req) if err != nil { return nil, err } defer resp.Body.Close() b, err := io.ReadAll(io.LimitReader(resp.Body, maxResponseBytes)) if err != nil { return nil, err } if resp.StatusCode != http.StatusOK { return nil, errors.New(strings.TrimSpace(string(b))) } m, err := toMessage(string(b), topicURL, "") if err != nil { return nil, err } return m, nil } // Poll queries a topic for all (or a limited set) of messages. Unlike Subscribe, this method only polls for // messages and does not subscribe to messages that arrive after this call. // // A topic can be either a full URL (e.g. https://myhost.lan/mytopic), a short URL which is then prepended https:// // (e.g. myhost.lan -> https://myhost.lan), or a short name which is expanded using the default host in the // config (e.g. mytopic -> https://ntfy.sh/mytopic). // // By default, all messages will be returned, but you can change this behavior using a SubscribeOption. // See WithSince, WithSinceAll, WithSinceUnixTime, WithScheduled, and the generic WithQueryParam. func (c *Client) Poll(topic string, options ...SubscribeOption) ([]*Message, error) { topicURL, err := c.expandTopicURL(topic) if err != nil { return nil, err } ctx := context.Background() messages := make([]*Message, 0) msgChan := make(chan *Message) errChan := make(chan error) log.Debug("%s Polling from topic", util.ShortTopicURL(topicURL)) options = append(options, WithPoll()) go func() { err := performSubscribeRequest(ctx, msgChan, topicURL, "", options...) close(msgChan) errChan <- err }() for m := range msgChan { messages = append(messages, m) } return messages, <-errChan } // Subscribe subscribes to a topic to listen for newly incoming messages. The method starts a connection in the // background and returns new messages via the Messages channel. // // A topic can be either a full URL (e.g. https://myhost.lan/mytopic), a short URL which is then prepended https:// // (e.g. myhost.lan -> https://myhost.lan), or a short name which is expanded using the default host in the // config (e.g. mytopic -> https://ntfy.sh/mytopic). // // By default, only new messages will be returned, but you can change this behavior using a SubscribeOption. // See WithSince, WithSinceAll, WithSinceUnixTime, WithScheduled, and the generic WithQueryParam. // // The method returns a unique subscriptionID that can be used in Unsubscribe. // // Example: // // c := client.New(client.NewConfig()) // subscriptionID, _ := c.Subscribe("mytopic") // for m := range c.Messages { // fmt.Printf("New message: %s", m.Message) // } func (c *Client) Subscribe(topic string, options ...SubscribeOption) (string, error) { topicURL, err := c.expandTopicURL(topic) if err != nil { return "", err } c.mu.Lock() defer c.mu.Unlock() subscriptionID := util.RandomString(10) log.Debug("%s Subscribing to topic", util.ShortTopicURL(topicURL)) ctx, cancel := context.WithCancel(context.Background()) c.subscriptions[subscriptionID] = &subscription{ ID: subscriptionID, topicURL: topicURL, cancel: cancel, } go handleSubscribeConnLoop(ctx, c.Messages, topicURL, subscriptionID, options...) return subscriptionID, nil } // Unsubscribe unsubscribes from a topic that has been previously subscribed to using the unique // subscriptionID returned in Subscribe. func (c *Client) Unsubscribe(subscriptionID string) { c.mu.Lock() defer c.mu.Unlock() sub, ok := c.subscriptions[subscriptionID] if !ok { return } delete(c.subscriptions, subscriptionID) sub.cancel() } func (c *Client) expandTopicURL(topic string) (string, error) { if strings.HasPrefix(topic, "http://") || strings.HasPrefix(topic, "https://") { return topic, nil } else if strings.Contains(topic, "/") { return fmt.Sprintf("https://%s", topic), nil } if !topicRegex.MatchString(topic) { return "", fmt.Errorf("invalid topic name: %s", topic) } return fmt.Sprintf("%s/%s", c.config.DefaultHost, topic), nil } func handleSubscribeConnLoop(ctx context.Context, msgChan chan *Message, topicURL, subcriptionID string, options ...SubscribeOption) { for { // TODO The retry logic is crude and may lose messages. It should record the last message like the // Android client, use since=, and do incremental backoff too if err := performSubscribeRequest(ctx, msgChan, topicURL, subcriptionID, options...); err != nil { log.Warn("%s Connection failed: %s", util.ShortTopicURL(topicURL), err.Error()) } select { case <-ctx.Done(): log.Info("%s Connection exited", util.ShortTopicURL(topicURL)) return case <-time.After(10 * time.Second): // TODO Add incremental backoff } } } func performSubscribeRequest(ctx context.Context, msgChan chan *Message, topicURL string, subscriptionID string, options ...SubscribeOption) error { streamURL := fmt.Sprintf("%s/json", topicURL) log.Debug("%s Listening to %s", util.ShortTopicURL(topicURL), streamURL) req, err := http.NewRequestWithContext(ctx, http.MethodGet, streamURL, nil) if err != nil { return err } for _, option := range options { if err := option(req); err != nil { return err } } resp, err := http.DefaultClient.Do(req) if err != nil { return err } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { b, err := io.ReadAll(io.LimitReader(resp.Body, maxResponseBytes)) if err != nil { return err } return errors.New(strings.TrimSpace(string(b))) } scanner := bufio.NewScanner(resp.Body) for scanner.Scan() { messageJSON := scanner.Text() m, err := toMessage(messageJSON, topicURL, subscriptionID) if err != nil { return err } log.Trace("%s Message received: %s", util.ShortTopicURL(topicURL), messageJSON) if m.Event == MessageEvent { msgChan <- m } } return nil } func toMessage(s, topicURL, subscriptionID string) (*Message, error) { var m *Message if err := json.NewDecoder(strings.NewReader(s)).Decode(&m); err != nil { return nil, err } m.TopicURL = topicURL m.SubscriptionID = subscriptionID m.Raw = s return m, nil } ntfy-2.11.0/client/client.yml000066400000000000000000000045471462047176100160540ustar00rootroot00000000000000# ntfy client config file # Base URL used to expand short topic names in the "ntfy publish" and "ntfy subscribe" commands. # If you self-host a ntfy server, you'll likely want to change this. # # default-host: https://ntfy.sh # Default credentials will be used with "ntfy publish" and "ntfy subscribe" if no other credentials are provided. # You can set a default token to use or a default user:password combination, but not both. For an empty password, # use empty double-quotes (""). # # To override the default user:password combination or default token for a particular subscription (e.g., to send # no Authorization header), set the user:pass/token for the subscription to empty double-quotes (""). # default-token: # default-user: # default-password: # Default command will execute after "ntfy subscribe" receives a message if no command is provided in subscription below # default-command: # Subscriptions to topics and their actions. This option is primarily used by the systemd service, # or if you cann "ntfy subscribe --from-config" directly. # # Example: # subscribe: # - topic: mytopic # command: /usr/local/bin/mytopic-triggered.sh # - topic: myserver.com/anothertopic # command: 'echo "$message"' # if: # priority: high,urgent # - topic: secret # command: 'notify-send "$m"' # user: phill # password: mypass # - topic: token_topic # token: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 # # Variables: # Variable Aliases Description # --------------- --------------------- ----------------------------------- # $NTFY_ID $id Unique message ID # $NTFY_TIME $time Unix timestamp of the message delivery # $NTFY_TOPIC $topic Topic name # $NTFY_MESSAGE $message, $m Message body # $NTFY_TITLE $title, $t Message title # $NTFY_PRIORITY $priority, $prio, $p Message priority (1=min, 5=max) # $NTFY_TAGS $tags, $tag, $ta Message tags (comma separated list) # $NTFY_RAW $raw Raw JSON message # # Filters ('if:'): # You can filter 'message', 'title', 'priority' (comma-separated list, logical OR) # and 'tags' (comma-separated list, logical AND). See https://ntfy.sh/docs/subscribe/api/#filter-messages. # # subscribe: ntfy-2.11.0/client/client_test.go000066400000000000000000000062631462047176100167140ustar00rootroot00000000000000package client_test import ( "fmt" "github.com/stretchr/testify/require" "heckel.io/ntfy/v2/client" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/test" "os" "testing" "time" ) func TestMain(m *testing.M) { log.SetLevel(log.ErrorLevel) os.Exit(m.Run()) } func TestClient_Publish_Subscribe(t *testing.T) { s, port := test.StartServer(t) defer test.StopServer(t, s, port) c := client.New(newTestConfig(port)) subscriptionID, _ := c.Subscribe("mytopic") time.Sleep(time.Second) msg, err := c.Publish("mytopic", "some message") require.Nil(t, err) require.Equal(t, "some message", msg.Message) msg, err = c.Publish("mytopic", "some other message", client.WithTitle("some title"), client.WithPriority("high"), client.WithTags([]string{"tag1", "tag 2"})) require.Nil(t, err) require.Equal(t, "some other message", msg.Message) require.Equal(t, "some title", msg.Title) require.Equal(t, []string{"tag1", "tag 2"}, msg.Tags) require.Equal(t, 4, msg.Priority) msg, err = c.Publish("mytopic", "some delayed message", client.WithDelay("25 hours")) require.Nil(t, err) require.Equal(t, "some delayed message", msg.Message) require.True(t, time.Now().Add(24*time.Hour).Unix() < msg.Time) time.Sleep(200 * time.Millisecond) msg = nextMessage(c) require.NotNil(t, msg) require.Equal(t, "some message", msg.Message) msg = nextMessage(c) require.NotNil(t, msg) require.Equal(t, "some other message", msg.Message) require.Equal(t, "some title", msg.Title) require.Equal(t, []string{"tag1", "tag 2"}, msg.Tags) require.Equal(t, 4, msg.Priority) msg = nextMessage(c) require.Nil(t, msg) c.Unsubscribe(subscriptionID) time.Sleep(200 * time.Millisecond) msg, err = c.Publish("mytopic", "a message that won't be received") require.Nil(t, err) require.Equal(t, "a message that won't be received", msg.Message) msg = nextMessage(c) require.Nil(t, msg) } func TestClient_Publish_Poll(t *testing.T) { s, port := test.StartServer(t) defer test.StopServer(t, s, port) c := client.New(newTestConfig(port)) msg, err := c.Publish("mytopic", "some message", client.WithNoFirebase(), client.WithTagsList("tag1,tag2")) require.Nil(t, err) require.Equal(t, "some message", msg.Message) require.Equal(t, []string{"tag1", "tag2"}, msg.Tags) msg, err = c.Publish("mytopic", "this won't be cached", client.WithNoCache()) require.Nil(t, err) require.Equal(t, "this won't be cached", msg.Message) msg, err = c.Publish("mytopic", "some delayed message", client.WithDelay("20 min")) require.Nil(t, err) require.Equal(t, "some delayed message", msg.Message) messages, err := c.Poll("mytopic") require.Nil(t, err) require.Equal(t, 1, len(messages)) require.Equal(t, "some message", messages[0].Message) messages, err = c.Poll("mytopic", client.WithScheduled()) require.Nil(t, err) require.Equal(t, 2, len(messages)) require.Equal(t, "some message", messages[0].Message) require.Equal(t, "some delayed message", messages[1].Message) } func newTestConfig(port int) *client.Config { c := client.NewConfig() c.DefaultHost = fmt.Sprintf("http://127.0.0.1:%d", port) return c } func nextMessage(c *client.Client) *client.Message { select { case m := <-c.Messages: return m default: return nil } } ntfy-2.11.0/client/config.go000066400000000000000000000027451462047176100156450ustar00rootroot00000000000000package client import ( "gopkg.in/yaml.v2" "heckel.io/ntfy/v2/log" "os" ) const ( // DefaultBaseURL is the base URL used to expand short topic names DefaultBaseURL = "https://ntfy.sh" ) // Config is the config struct for a Client type Config struct { DefaultHost string `yaml:"default-host"` DefaultUser string `yaml:"default-user"` DefaultPassword *string `yaml:"default-password"` DefaultToken string `yaml:"default-token"` DefaultCommand string `yaml:"default-command"` Subscribe []Subscribe `yaml:"subscribe"` } // Subscribe is the struct for a Subscription within Config type Subscribe struct { Topic string `yaml:"topic"` User *string `yaml:"user"` Password *string `yaml:"password"` Token *string `yaml:"token"` Command string `yaml:"command"` If map[string]string `yaml:"if"` } // NewConfig creates a new Config struct for a Client func NewConfig() *Config { return &Config{ DefaultHost: DefaultBaseURL, DefaultUser: "", DefaultPassword: nil, DefaultToken: "", DefaultCommand: "", Subscribe: nil, } } // LoadConfig loads the Client config from a yaml file func LoadConfig(filename string) (*Config, error) { log.Debug("Loading client config from %s", filename) b, err := os.ReadFile(filename) if err != nil { return nil, err } c := NewConfig() if err := yaml.Unmarshal(b, c); err != nil { return nil, err } return c, nil } ntfy-2.11.0/client/config_test.go000066400000000000000000000111731462047176100166770ustar00rootroot00000000000000package client_test import ( "github.com/stretchr/testify/require" "heckel.io/ntfy/v2/client" "os" "path/filepath" "testing" ) func TestConfig_Load(t *testing.T) { filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(` default-host: http://localhost default-user: philipp default-password: mypass default-command: 'echo "Got the message: $message"' subscribe: - topic: no-command-with-auth user: phil password: mypass - topic: echo-this command: 'echo "Message received: $message"' - topic: alerts command: notify-send -i /usr/share/ntfy/logo.png "Important" "$m" if: priority: high,urgent - topic: defaults `), 0600)) conf, err := client.LoadConfig(filename) require.Nil(t, err) require.Equal(t, "http://localhost", conf.DefaultHost) require.Equal(t, "philipp", conf.DefaultUser) require.Equal(t, "mypass", *conf.DefaultPassword) require.Equal(t, `echo "Got the message: $message"`, conf.DefaultCommand) require.Equal(t, 4, len(conf.Subscribe)) require.Equal(t, "no-command-with-auth", conf.Subscribe[0].Topic) require.Equal(t, "", conf.Subscribe[0].Command) require.Equal(t, "phil", *conf.Subscribe[0].User) require.Equal(t, "mypass", *conf.Subscribe[0].Password) require.Equal(t, "echo-this", conf.Subscribe[1].Topic) require.Equal(t, `echo "Message received: $message"`, conf.Subscribe[1].Command) require.Equal(t, "alerts", conf.Subscribe[2].Topic) require.Equal(t, `notify-send -i /usr/share/ntfy/logo.png "Important" "$m"`, conf.Subscribe[2].Command) require.Equal(t, "high,urgent", conf.Subscribe[2].If["priority"]) require.Equal(t, "defaults", conf.Subscribe[3].Topic) } func TestConfig_EmptyPassword(t *testing.T) { filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(` default-host: http://localhost default-user: philipp default-password: "" subscribe: - topic: no-command-with-auth user: phil password: "" `), 0600)) conf, err := client.LoadConfig(filename) require.Nil(t, err) require.Equal(t, "http://localhost", conf.DefaultHost) require.Equal(t, "philipp", conf.DefaultUser) require.Equal(t, "", *conf.DefaultPassword) require.Equal(t, 1, len(conf.Subscribe)) require.Equal(t, "no-command-with-auth", conf.Subscribe[0].Topic) require.Equal(t, "", conf.Subscribe[0].Command) require.Equal(t, "phil", *conf.Subscribe[0].User) require.Equal(t, "", *conf.Subscribe[0].Password) } func TestConfig_NullPassword(t *testing.T) { filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(` default-host: http://localhost default-user: philipp default-password: ~ subscribe: - topic: no-command-with-auth user: phil password: ~ `), 0600)) conf, err := client.LoadConfig(filename) require.Nil(t, err) require.Equal(t, "http://localhost", conf.DefaultHost) require.Equal(t, "philipp", conf.DefaultUser) require.Nil(t, conf.DefaultPassword) require.Equal(t, 1, len(conf.Subscribe)) require.Equal(t, "no-command-with-auth", conf.Subscribe[0].Topic) require.Equal(t, "", conf.Subscribe[0].Command) require.Equal(t, "phil", *conf.Subscribe[0].User) require.Nil(t, conf.Subscribe[0].Password) } func TestConfig_NoPassword(t *testing.T) { filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(` default-host: http://localhost default-user: philipp subscribe: - topic: no-command-with-auth user: phil `), 0600)) conf, err := client.LoadConfig(filename) require.Nil(t, err) require.Equal(t, "http://localhost", conf.DefaultHost) require.Equal(t, "philipp", conf.DefaultUser) require.Nil(t, conf.DefaultPassword) require.Equal(t, 1, len(conf.Subscribe)) require.Equal(t, "no-command-with-auth", conf.Subscribe[0].Topic) require.Equal(t, "", conf.Subscribe[0].Command) require.Equal(t, "phil", *conf.Subscribe[0].User) require.Nil(t, conf.Subscribe[0].Password) } func TestConfig_DefaultToken(t *testing.T) { filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(` default-host: http://localhost default-token: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 subscribe: - topic: mytopic `), 0600)) conf, err := client.LoadConfig(filename) require.Nil(t, err) require.Equal(t, "http://localhost", conf.DefaultHost) require.Equal(t, "", conf.DefaultUser) require.Nil(t, conf.DefaultPassword) require.Equal(t, "tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", conf.DefaultToken) require.Equal(t, 1, len(conf.Subscribe)) require.Equal(t, "mytopic", conf.Subscribe[0].Topic) require.Nil(t, conf.Subscribe[0].User) require.Nil(t, conf.Subscribe[0].Password) require.Nil(t, conf.Subscribe[0].Token) } ntfy-2.11.0/client/ntfy-client.service000066400000000000000000000003331462047176100176560ustar00rootroot00000000000000[Unit] Description=ntfy client After=network.target [Service] User=ntfy Group=ntfy ExecStart=/usr/bin/ntfy subscribe --config /etc/ntfy/client.yml --from-config Restart=on-failure [Install] WantedBy=multi-user.target ntfy-2.11.0/client/options.go000066400000000000000000000156601462047176100160730ustar00rootroot00000000000000package client import ( "fmt" "heckel.io/ntfy/v2/util" "net/http" "strings" "time" ) // RequestOption is a generic request option that can be added to Client calls type RequestOption = func(r *http.Request) error // PublishOption is an option that can be passed to the Client.Publish call type PublishOption = RequestOption // SubscribeOption is an option that can be passed to a Client.Subscribe or Client.Poll call type SubscribeOption = RequestOption // WithMessage sets the notification message. This is an alternative way to passing the message body. func WithMessage(message string) PublishOption { return WithHeader("X-Message", message) } // WithTitle adds a title to a message func WithTitle(title string) PublishOption { return WithHeader("X-Title", title) } // WithPriority adds a priority to a message. The priority can be either a number (1=min, 5=max), // or the corresponding names (see util.ParsePriority). func WithPriority(priority string) PublishOption { return WithHeader("X-Priority", priority) } // WithTagsList adds a list of tags to a message. The tags parameter must be a comma-separated list // of tags. To use a slice, use WithTags instead func WithTagsList(tags string) PublishOption { return WithHeader("X-Tags", tags) } // WithTags adds a list of a tags to a message func WithTags(tags []string) PublishOption { return WithTagsList(strings.Join(tags, ",")) } // WithDelay instructs the server to send the message at a later date. The delay parameter can be a // Unix timestamp, a duration string or a natural langage string. See https://ntfy.sh/docs/publish/#scheduled-delivery // for details. func WithDelay(delay string) PublishOption { return WithHeader("X-Delay", delay) } // WithClick makes the notification action open the given URL as opposed to entering the detail view func WithClick(url string) PublishOption { return WithHeader("X-Click", url) } // WithIcon makes the notification use the given URL as its icon func WithIcon(icon string) PublishOption { return WithHeader("X-Icon", icon) } // WithActions adds custom user actions to the notification. The value can be either a JSON array or the // simple format definition. See https://ntfy.sh/docs/publish/#action-buttons for details. func WithActions(value string) PublishOption { return WithHeader("X-Actions", value) } // WithAttach sets a URL that will be used by the client to download an attachment func WithAttach(attach string) PublishOption { return WithHeader("X-Attach", attach) } // WithMarkdown instructs the server to interpret the message body as Markdown func WithMarkdown() PublishOption { return WithHeader("X-Markdown", "yes") } // WithFilename sets a filename for the attachment, and/or forces the HTTP body to interpreted as an attachment func WithFilename(filename string) PublishOption { return WithHeader("X-Filename", filename) } // WithEmail instructs the server to also send the message to the given e-mail address func WithEmail(email string) PublishOption { return WithHeader("X-Email", email) } // WithBasicAuth adds the Authorization header for basic auth to the request func WithBasicAuth(user, pass string) PublishOption { return WithHeader("Authorization", util.BasicAuth(user, pass)) } // WithBearerAuth adds the Authorization header for Bearer auth to the request func WithBearerAuth(token string) PublishOption { return WithHeader("Authorization", fmt.Sprintf("Bearer %s", token)) } // WithEmptyAuth clears the Authorization header func WithEmptyAuth() PublishOption { return RemoveHeader("Authorization") } // WithNoCache instructs the server not to cache the message server-side func WithNoCache() PublishOption { return WithHeader("X-Cache", "no") } // WithNoFirebase instructs the server not to forward the message to Firebase func WithNoFirebase() PublishOption { return WithHeader("X-Firebase", "no") } // WithSince limits the number of messages returned from the server. The parameter since can be a Unix // timestamp (see WithSinceUnixTime), a duration (WithSinceDuration) the word "all" (see WithSinceAll). func WithSince(since string) SubscribeOption { return WithQueryParam("since", since) } // WithSinceAll instructs the server to return all messages for the given topic from the server func WithSinceAll() SubscribeOption { return WithSince("all") } // WithSinceDuration instructs the server to return all messages since the given duration ago func WithSinceDuration(since time.Duration) SubscribeOption { return WithSinceUnixTime(time.Now().Add(-1 * since).Unix()) } // WithSinceUnixTime instructs the server to return only messages newer or equal to the given timestamp func WithSinceUnixTime(since int64) SubscribeOption { return WithSince(fmt.Sprintf("%d", since)) } // WithPoll instructs the server to close the connection after messages have been returned. Don't use this option // directly. Use Client.Poll instead. func WithPoll() SubscribeOption { return WithQueryParam("poll", "1") } // WithScheduled instructs the server to also return messages that have not been sent yet, i.e. delayed/scheduled // messages (see WithDelay). The messages will have a future date. func WithScheduled() SubscribeOption { return WithQueryParam("scheduled", "1") } // WithFilter is a generic subscribe option meant to be used to filter for certain messages only func WithFilter(param, value string) SubscribeOption { return WithQueryParam(param, value) } // WithMessageFilter instructs the server to only return messages that match the exact message func WithMessageFilter(message string) SubscribeOption { return WithQueryParam("message", message) } // WithTitleFilter instructs the server to only return messages with a title that match the exact string func WithTitleFilter(title string) SubscribeOption { return WithQueryParam("title", title) } // WithPriorityFilter instructs the server to only return messages with the matching priority. Not that messages // without priority also implicitly match priority 3. func WithPriorityFilter(priority int) SubscribeOption { return WithQueryParam("priority", fmt.Sprintf("%d", priority)) } // WithTagsFilter instructs the server to only return messages that contain all of the given tags func WithTagsFilter(tags []string) SubscribeOption { return WithQueryParam("tags", strings.Join(tags, ",")) } // WithHeader is a generic option to add headers to a request func WithHeader(header, value string) RequestOption { return func(r *http.Request) error { if value != "" { r.Header.Set(header, value) } return nil } } // WithQueryParam is a generic option to add query parameters to a request func WithQueryParam(param, value string) RequestOption { return func(r *http.Request) error { if value != "" { q := r.URL.Query() q.Add(param, value) r.URL.RawQuery = q.Encode() } return nil } } // RemoveHeader is a generic option to remove a header from a request func RemoveHeader(header string) RequestOption { return func(r *http.Request) error { if header != "" { delete(r.Header, header) } return nil } } ntfy-2.11.0/cmd/000077500000000000000000000000001462047176100133265ustar00rootroot00000000000000ntfy-2.11.0/cmd/access.go000066400000000000000000000176071462047176100151310ustar00rootroot00000000000000//go:build !noserver package cmd import ( "errors" "fmt" "github.com/urfave/cli/v2" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" ) func init() { commands = append(commands, cmdAccess) } const ( userEveryone = "everyone" ) var flagsAccess = append( append([]cli.Flag{}, flagsUser...), &cli.BoolFlag{Name: "reset", Aliases: []string{"r"}, Usage: "reset access for user (and topic)"}, ) var cmdAccess = &cli.Command{ Name: "access", Usage: "Grant/revoke access to a topic, or show access", UsageText: "ntfy access [USERNAME [TOPIC [PERMISSION]]]", Flags: flagsAccess, Before: initConfigFileInputSourceFunc("config", flagsAccess, initLogFunc), Action: execUserAccess, Category: categoryServer, Description: `Manage the access control list for the ntfy server. This is a server-only command. It directly manages the user.db as defined in the server config file server.yml. The command only works if 'auth-file' is properly defined. Please also refer to the related command 'ntfy user'. The command allows you to show the access control list, as well as change it, depending on how it is called. Usage: ntfy access # Shows access control list (alias: 'ntfy user list') ntfy access USERNAME # Shows access control entries for USERNAME ntfy access USERNAME TOPIC PERMISSION # Allow/deny access for USERNAME to TOPIC Arguments: USERNAME an existing user, as created with 'ntfy user add', or "everyone"/"*" to define access rules for anonymous/unauthenticated clients TOPIC name of a topic with optional wildcards, e.g. "mytopic*" PERMISSION one of the following: - read-write (alias: rw) - read-only (aliases: read, ro) - write-only (aliases: write, wo) - deny (alias: none) Examples: ntfy access # Shows access control list (alias: 'ntfy user list') ntfy access phil # Shows access for user phil ntfy access phil mytopic rw # Allow read-write access to mytopic for user phil ntfy access everyone mytopic rw # Allow anonymous read-write access to mytopic ntfy access everyone "up*" write # Allow anonymous write-only access to topics "up..." ntfy access --reset # Reset entire access control list ntfy access --reset phil # Reset all access for user phil ntfy access --reset phil mytopic # Reset access for user phil and topic mytopic `, } func execUserAccess(c *cli.Context) error { if c.NArg() > 3 { return errors.New("too many arguments, please check 'ntfy access --help' for usage details") } manager, err := createUserManager(c) if err != nil { return err } username := c.Args().Get(0) if username == userEveryone { username = user.Everyone } topic := c.Args().Get(1) perms := c.Args().Get(2) reset := c.Bool("reset") if reset { if perms != "" { return errors.New("too many arguments, please check 'ntfy access --help' for usage details") } return resetAccess(c, manager, username, topic) } else if perms == "" { if topic != "" { return errors.New("invalid syntax, please check 'ntfy access --help' for usage details") } return showAccess(c, manager, username) } return changeAccess(c, manager, username, topic, perms) } func changeAccess(c *cli.Context, manager *user.Manager, username string, topic string, perms string) error { if !util.Contains([]string{"", "read-write", "rw", "read-only", "read", "ro", "write-only", "write", "wo", "none", "deny"}, perms) { return errors.New("permission must be one of: read-write, read-only, write-only, or deny (or the aliases: read, ro, write, wo, none)") } permission, err := user.ParsePermission(perms) if err != nil { return err } u, err := manager.User(username) if err == user.ErrUserNotFound { return fmt.Errorf("user %s does not exist", username) } else if u.Role == user.RoleAdmin { return fmt.Errorf("user %s is an admin user, access control entries have no effect", username) } if err := manager.AllowAccess(username, topic, permission); err != nil { return err } if permission.IsReadWrite() { fmt.Fprintf(c.App.ErrWriter, "granted read-write access to topic %s\n\n", topic) } else if permission.IsRead() { fmt.Fprintf(c.App.ErrWriter, "granted read-only access to topic %s\n\n", topic) } else if permission.IsWrite() { fmt.Fprintf(c.App.ErrWriter, "granted write-only access to topic %s\n\n", topic) } else { fmt.Fprintf(c.App.ErrWriter, "revoked all access to topic %s\n\n", topic) } return showUserAccess(c, manager, username) } func resetAccess(c *cli.Context, manager *user.Manager, username, topic string) error { if username == "" { return resetAllAccess(c, manager) } else if topic == "" { return resetUserAccess(c, manager, username) } return resetUserTopicAccess(c, manager, username, topic) } func resetAllAccess(c *cli.Context, manager *user.Manager) error { if err := manager.ResetAccess("", ""); err != nil { return err } fmt.Fprintln(c.App.ErrWriter, "reset access for all users") return nil } func resetUserAccess(c *cli.Context, manager *user.Manager, username string) error { if err := manager.ResetAccess(username, ""); err != nil { return err } fmt.Fprintf(c.App.ErrWriter, "reset access for user %s\n\n", username) return showUserAccess(c, manager, username) } func resetUserTopicAccess(c *cli.Context, manager *user.Manager, username string, topic string) error { if err := manager.ResetAccess(username, topic); err != nil { return err } fmt.Fprintf(c.App.ErrWriter, "reset access for user %s and topic %s\n\n", username, topic) return showUserAccess(c, manager, username) } func showAccess(c *cli.Context, manager *user.Manager, username string) error { if username == "" { return showAllAccess(c, manager) } return showUserAccess(c, manager, username) } func showAllAccess(c *cli.Context, manager *user.Manager) error { users, err := manager.Users() if err != nil { return err } return showUsers(c, manager, users) } func showUserAccess(c *cli.Context, manager *user.Manager, username string) error { users, err := manager.User(username) if err == user.ErrUserNotFound { return fmt.Errorf("user %s does not exist", username) } else if err != nil { return err } return showUsers(c, manager, []*user.User{users}) } func showUsers(c *cli.Context, manager *user.Manager, users []*user.User) error { for _, u := range users { grants, err := manager.Grants(u.Name) if err != nil { return err } tier := "none" if u.Tier != nil { tier = u.Tier.Name } fmt.Fprintf(c.App.ErrWriter, "user %s (role: %s, tier: %s)\n", u.Name, u.Role, tier) if u.Role == user.RoleAdmin { fmt.Fprintf(c.App.ErrWriter, "- read-write access to all topics (admin role)\n") } else if len(grants) > 0 { for _, grant := range grants { if grant.Allow.IsReadWrite() { fmt.Fprintf(c.App.ErrWriter, "- read-write access to topic %s\n", grant.TopicPattern) } else if grant.Allow.IsRead() { fmt.Fprintf(c.App.ErrWriter, "- read-only access to topic %s\n", grant.TopicPattern) } else if grant.Allow.IsWrite() { fmt.Fprintf(c.App.ErrWriter, "- write-only access to topic %s\n", grant.TopicPattern) } else { fmt.Fprintf(c.App.ErrWriter, "- no access to topic %s\n", grant.TopicPattern) } } } else { fmt.Fprintf(c.App.ErrWriter, "- no topic-specific permissions\n") } if u.Name == user.Everyone { access := manager.DefaultAccess() if access.IsReadWrite() { fmt.Fprintln(c.App.ErrWriter, "- read-write access to all (other) topics (server config)") } else if access.IsRead() { fmt.Fprintln(c.App.ErrWriter, "- read-only access to all (other) topics (server config)") } else if access.IsWrite() { fmt.Fprintln(c.App.ErrWriter, "- write-only access to all (other) topics (server config)") } else { fmt.Fprintln(c.App.ErrWriter, "- no access to any (other) topics (server config)") } } } return nil } ntfy-2.11.0/cmd/access_test.go000066400000000000000000000052141462047176100161570ustar00rootroot00000000000000package cmd import ( "fmt" "github.com/stretchr/testify/require" "github.com/urfave/cli/v2" "heckel.io/ntfy/v2/server" "heckel.io/ntfy/v2/test" "testing" ) func TestCLI_Access_Show(t *testing.T) { s, conf, port := newTestServerWithAuth(t) defer test.StopServer(t, s, port) app, _, _, stderr := newTestApp() require.Nil(t, runAccessCommand(app, conf)) require.Contains(t, stderr.String(), "user * (role: anonymous, tier: none)\n- no topic-specific permissions\n- no access to any (other) topics (server config)") } func TestCLI_Access_Grant_And_Publish(t *testing.T) { s, conf, port := newTestServerWithAuth(t) defer test.StopServer(t, s, port) app, stdin, _, _ := newTestApp() stdin.WriteString("philpass\nphilpass\nbenpass\nbenpass") require.Nil(t, runUserCommand(app, conf, "add", "--role=admin", "phil")) require.Nil(t, runUserCommand(app, conf, "add", "ben")) require.Nil(t, runAccessCommand(app, conf, "ben", "announcements", "rw")) require.Nil(t, runAccessCommand(app, conf, "ben", "sometopic", "read")) require.Nil(t, runAccessCommand(app, conf, "everyone", "announcements", "read")) app, _, _, stderr := newTestApp() require.Nil(t, runAccessCommand(app, conf)) expected := `user phil (role: admin, tier: none) - read-write access to all topics (admin role) user ben (role: user, tier: none) - read-write access to topic announcements - read-only access to topic sometopic user * (role: anonymous, tier: none) - read-only access to topic announcements - no access to any (other) topics (server config) ` require.Equal(t, expected, stderr.String()) // See if access permissions match app, _, _, _ = newTestApp() require.Error(t, app.Run([]string{ "ntfy", "publish", fmt.Sprintf("http://127.0.0.1:%d/announcements", port), })) require.Nil(t, app.Run([]string{ "ntfy", "publish", "-u", "ben:benpass", fmt.Sprintf("http://127.0.0.1:%d/announcements", port), })) require.Nil(t, app.Run([]string{ "ntfy", "publish", "-u", "phil:philpass", fmt.Sprintf("http://127.0.0.1:%d/announcements", port), })) require.Nil(t, app.Run([]string{ "ntfy", "subscribe", "--poll", fmt.Sprintf("http://127.0.0.1:%d/announcements", port), })) require.Error(t, app.Run([]string{ "ntfy", "subscribe", "--poll", fmt.Sprintf("http://127.0.0.1:%d/something-else", port), })) } func runAccessCommand(app *cli.App, conf *server.Config, args ...string) error { userArgs := []string{ "ntfy", "--log-level=ERROR", "access", "--config=" + conf.File, // Dummy config file to avoid lookups of real file "--auth-file=" + conf.AuthFile, "--auth-default-access=" + conf.AuthDefault.String(), } return app.Run(append(userArgs, args...)) } ntfy-2.11.0/cmd/app.go000066400000000000000000000063461462047176100144460ustar00rootroot00000000000000// Package cmd provides the ntfy CLI application package cmd import ( "fmt" "github.com/urfave/cli/v2" "github.com/urfave/cli/v2/altsrc" "heckel.io/ntfy/v2/log" "os" "regexp" ) const ( categoryClient = "Client commands" categoryServer = "Server commands" ) var commands = make([]*cli.Command, 0) var flagsDefault = []cli.Flag{ &cli.BoolFlag{Name: "debug", Aliases: []string{"d"}, EnvVars: []string{"NTFY_DEBUG"}, Usage: "enable debug logging"}, &cli.BoolFlag{Name: "trace", EnvVars: []string{"NTFY_TRACE"}, Usage: "enable tracing (very verbose, be careful)"}, &cli.BoolFlag{Name: "no-log-dates", Aliases: []string{"no_log_dates"}, EnvVars: []string{"NTFY_NO_LOG_DATES"}, Usage: "disable the date/time prefix"}, altsrc.NewStringFlag(&cli.StringFlag{Name: "log-level", Aliases: []string{"log_level"}, Value: log.InfoLevel.String(), EnvVars: []string{"NTFY_LOG_LEVEL"}, Usage: "set log level"}), altsrc.NewStringSliceFlag(&cli.StringSliceFlag{Name: "log-level-overrides", Aliases: []string{"log_level_overrides"}, EnvVars: []string{"NTFY_LOG_LEVEL_OVERRIDES"}, Usage: "set log level overrides"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "log-format", Aliases: []string{"log_format"}, Value: log.TextFormat.String(), EnvVars: []string{"NTFY_LOG_FORMAT"}, Usage: "set log format"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "log-file", Aliases: []string{"log_file"}, EnvVars: []string{"NTFY_LOG_FILE"}, Usage: "set log file, default is STDOUT"}), } var ( logLevelOverrideRegex = regexp.MustCompile(`(?i)^([^=\s]+)(?:\s*=\s*(\S+))?\s*->\s*(TRACE|DEBUG|INFO|WARN|ERROR)$`) ) // New creates a new CLI application func New() *cli.App { return &cli.App{ Name: "ntfy", Usage: "Simple pub-sub notification service", UsageText: "ntfy [OPTION..]", HideVersion: true, UseShortOptionHandling: true, Reader: os.Stdin, Writer: os.Stdout, ErrWriter: os.Stderr, Commands: commands, Flags: flagsDefault, Before: initLogFunc, } } func initLogFunc(c *cli.Context) error { log.SetLevel(log.ToLevel(c.String("log-level"))) log.SetFormat(log.ToFormat(c.String("log-format"))) if c.Bool("trace") { log.SetLevel(log.TraceLevel) } else if c.Bool("debug") { log.SetLevel(log.DebugLevel) } if c.Bool("no-log-dates") { log.DisableDates() } if err := applyLogLevelOverrides(c.StringSlice("log-level-overrides")); err != nil { return err } logFile := c.String("log-file") if logFile != "" { w, err := os.OpenFile(logFile, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0600) if err != nil { return err } log.SetOutput(w) } return nil } func applyLogLevelOverrides(rawOverrides []string) error { for _, override := range rawOverrides { m := logLevelOverrideRegex.FindStringSubmatch(override) if len(m) == 4 { field, value, level := m[1], m[2], m[3] log.SetLevelOverride(field, value, log.ToLevel(level)) } else if len(m) == 3 { field, level := m[1], m[2] log.SetLevelOverride(field, "", log.ToLevel(level)) // Matches any value } else { return fmt.Errorf(`invalid log level override "%s", must be "field=value -> loglevel", e.g. "user_id=u_123 -> DEBUG"`, override) } } return nil } ntfy-2.11.0/cmd/app_test.go000066400000000000000000000012761462047176100155020ustar00rootroot00000000000000package cmd import ( "bytes" "encoding/json" "github.com/urfave/cli/v2" "heckel.io/ntfy/v2/client" "heckel.io/ntfy/v2/log" "os" "strings" "testing" ) // This only contains helpers so far func TestMain(m *testing.M) { log.SetLevel(log.ErrorLevel) os.Exit(m.Run()) } func newTestApp() (*cli.App, *bytes.Buffer, *bytes.Buffer, *bytes.Buffer) { var stdin, stdout, stderr bytes.Buffer app := New() app.Reader = &stdin app.Writer = &stdout app.ErrWriter = &stderr return app, &stdin, &stdout, &stderr } func toMessage(t *testing.T, s string) *client.Message { var m *client.Message if err := json.NewDecoder(strings.NewReader(s)).Decode(&m); err != nil { t.Fatal(err) } return m } ntfy-2.11.0/cmd/config_loader.go000066400000000000000000000035441462047176100164560ustar00rootroot00000000000000package cmd import ( "fmt" "github.com/urfave/cli/v2" "github.com/urfave/cli/v2/altsrc" "gopkg.in/yaml.v2" "heckel.io/ntfy/v2/util" "os" ) // initConfigFileInputSourceFunc is like altsrc.InitInputSourceWithContext and altsrc.NewYamlSourceFromFlagFunc, but checks // if the config flag is exists and only loads it if it does. If the flag is set and the file exists, it fails. func initConfigFileInputSourceFunc(configFlag string, flags []cli.Flag, next cli.BeforeFunc) cli.BeforeFunc { return func(context *cli.Context) error { configFile := context.String(configFlag) if context.IsSet(configFlag) && !util.FileExists(configFile) { return fmt.Errorf("config file %s does not exist", configFile) } else if !context.IsSet(configFlag) && !util.FileExists(configFile) { return nil } inputSource, err := newYamlSourceFromFile(configFile, flags) if err != nil { return err } if err := altsrc.ApplyInputSourceValues(context, inputSource, flags); err != nil { return err } if next != nil { if err := next(context); err != nil { return err } } return nil } } // newYamlSourceFromFile creates a new Yaml InputSourceContext from a filepath. // // This function also maps aliases, so a .yml file can contain short options, or options with underscores // instead of dashes. See https://github.com/binwiederhier/ntfy/issues/255. func newYamlSourceFromFile(file string, flags []cli.Flag) (altsrc.InputSourceContext, error) { var rawConfig map[any]any b, err := os.ReadFile(file) if err != nil { return nil, err } if err := yaml.Unmarshal(b, &rawConfig); err != nil { return nil, err } for _, f := range flags { flagName := f.Names()[0] for _, flagAlias := range f.Names()[1:] { if _, ok := rawConfig[flagAlias]; ok { rawConfig[flagName] = rawConfig[flagAlias] } } } return altsrc.NewMapInputSource(file, rawConfig), nil } ntfy-2.11.0/cmd/config_loader_test.go000066400000000000000000000015261462047176100175130ustar00rootroot00000000000000package cmd import ( "github.com/stretchr/testify/require" "os" "path/filepath" "testing" ) func TestNewYamlSourceFromFile(t *testing.T) { filename := filepath.Join(t.TempDir(), "server.yml") contents := ` # Normal options listen-https: ":10443" # Note the underscore! listen_http: ":1080" # OMG this is allowed now ... K: /some/file.pem ` require.Nil(t, os.WriteFile(filename, []byte(contents), 0600)) ctx, err := newYamlSourceFromFile(filename, flagsServe) require.Nil(t, err) listenHTTPS, err := ctx.String("listen-https") require.Nil(t, err) require.Equal(t, ":10443", listenHTTPS) listenHTTP, err := ctx.String("listen-http") // No underscore! require.Nil(t, err) require.Equal(t, ":1080", listenHTTP) keyFile, err := ctx.String("key-file") // Long option! require.Nil(t, err) require.Equal(t, "/some/file.pem", keyFile) } ntfy-2.11.0/cmd/publish.go000066400000000000000000000275641462047176100153410ustar00rootroot00000000000000package cmd import ( "errors" "fmt" "github.com/urfave/cli/v2" "heckel.io/ntfy/v2/client" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/util" "io" "os" "os/exec" "path/filepath" "strings" "time" ) func init() { commands = append(commands, cmdPublish) } var flagsPublish = append( append([]cli.Flag{}, flagsDefault...), &cli.StringFlag{Name: "config", Aliases: []string{"c"}, EnvVars: []string{"NTFY_CONFIG"}, Usage: "client config file"}, &cli.StringFlag{Name: "title", Aliases: []string{"t"}, EnvVars: []string{"NTFY_TITLE"}, Usage: "message title"}, &cli.StringFlag{Name: "message", Aliases: []string{"m"}, EnvVars: []string{"NTFY_MESSAGE"}, Usage: "message body"}, &cli.StringFlag{Name: "priority", Aliases: []string{"p"}, EnvVars: []string{"NTFY_PRIORITY"}, Usage: "priority of the message (1=min, 2=low, 3=default, 4=high, 5=max)"}, &cli.StringFlag{Name: "tags", Aliases: []string{"tag", "T"}, EnvVars: []string{"NTFY_TAGS"}, Usage: "comma separated list of tags and emojis"}, &cli.StringFlag{Name: "delay", Aliases: []string{"at", "in", "D"}, EnvVars: []string{"NTFY_DELAY"}, Usage: "delay/schedule message"}, &cli.StringFlag{Name: "click", Aliases: []string{"U"}, EnvVars: []string{"NTFY_CLICK"}, Usage: "URL to open when notification is clicked"}, &cli.StringFlag{Name: "icon", Aliases: []string{"i"}, EnvVars: []string{"NTFY_ICON"}, Usage: "URL to use as notification icon"}, &cli.StringFlag{Name: "actions", Aliases: []string{"A"}, EnvVars: []string{"NTFY_ACTIONS"}, Usage: "actions JSON array or simple definition"}, &cli.StringFlag{Name: "attach", Aliases: []string{"a"}, EnvVars: []string{"NTFY_ATTACH"}, Usage: "URL to send as an external attachment"}, &cli.BoolFlag{Name: "markdown", Aliases: []string{"md"}, EnvVars: []string{"NTFY_MARKDOWN"}, Usage: "Message is formatted as Markdown"}, &cli.StringFlag{Name: "filename", Aliases: []string{"name", "n"}, EnvVars: []string{"NTFY_FILENAME"}, Usage: "filename for the attachment"}, &cli.StringFlag{Name: "file", Aliases: []string{"f"}, EnvVars: []string{"NTFY_FILE"}, Usage: "file to upload as an attachment"}, &cli.StringFlag{Name: "email", Aliases: []string{"mail", "e"}, EnvVars: []string{"NTFY_EMAIL"}, Usage: "also send to e-mail address"}, &cli.StringFlag{Name: "user", Aliases: []string{"u"}, EnvVars: []string{"NTFY_USER"}, Usage: "username[:password] used to auth against the server"}, &cli.StringFlag{Name: "token", Aliases: []string{"k"}, EnvVars: []string{"NTFY_TOKEN"}, Usage: "access token used to auth against the server"}, &cli.IntFlag{Name: "wait-pid", Aliases: []string{"wait_pid", "pid"}, EnvVars: []string{"NTFY_WAIT_PID"}, Usage: "wait until PID exits before publishing"}, &cli.BoolFlag{Name: "wait-cmd", Aliases: []string{"wait_cmd", "cmd", "done"}, EnvVars: []string{"NTFY_WAIT_CMD"}, Usage: "run command and wait until it finishes before publishing"}, &cli.BoolFlag{Name: "no-cache", Aliases: []string{"no_cache", "C"}, EnvVars: []string{"NTFY_NO_CACHE"}, Usage: "do not cache message server-side"}, &cli.BoolFlag{Name: "no-firebase", Aliases: []string{"no_firebase", "F"}, EnvVars: []string{"NTFY_NO_FIREBASE"}, Usage: "do not forward message to Firebase"}, &cli.BoolFlag{Name: "quiet", Aliases: []string{"q"}, EnvVars: []string{"NTFY_QUIET"}, Usage: "do not print message"}, ) var cmdPublish = &cli.Command{ Name: "publish", Aliases: []string{"pub", "send", "trigger"}, Usage: "Send message via a ntfy server", UsageText: `ntfy publish [OPTIONS..] TOPIC [MESSAGE...] ntfy publish [OPTIONS..] --wait-cmd COMMAND... NTFY_TOPIC=.. ntfy publish [OPTIONS..] [MESSAGE...]`, Action: execPublish, Category: categoryClient, Flags: flagsPublish, Before: initLogFunc, Description: `Publish a message to a ntfy server. Examples: ntfy publish mytopic This is my message # Send simple message ntfy send myserver.com/mytopic "This is my message" # Send message to different default host ntfy pub -p high backups "Backups failed" # Send high priority message ntfy pub --tags=warning,skull backups "Backups failed" # Add tags/emojis to message ntfy pub --delay=10s delayed_topic Laterzz # Delay message by 10s ntfy pub --at=8:30am delayed_topic Laterzz # Send message at 8:30am ntfy pub -e phil@example.com alerts 'App is down!' # Also send email to phil@example.com ntfy pub --click="https://reddit.com" redd 'New msg' # Opens Reddit when notification is clicked ntfy pub --icon="http://some.tld/icon.png" 'Icon!' # Send notification with custom icon ntfy pub --attach="http://some.tld/file.zip" files # Send ZIP archive from URL as attachment ntfy pub --file=flower.jpg flowers 'Nice!' # Send image.jpg as attachment ntfy pub -u phil:mypass secret Psst # Publish with username/password ntfy pub --wait-pid 1234 mytopic # Wait for process 1234 to exit before publishing ntfy pub --wait-cmd mytopic rsync -av ./ /tmp/a # Run command and publish after it completes NTFY_USER=phil:mypass ntfy pub secret Psst # Use env variables to set username/password NTFY_TOPIC=mytopic ntfy pub "some message" # Use NTFY_TOPIC variable as topic cat flower.jpg | ntfy pub --file=- flowers 'Nice!' # Same as above, send image.jpg as attachment ntfy trigger mywebhook # Sending without message, useful for webhooks Please also check out the docs on publishing messages. Especially for the --tags and --delay options, it has incredibly useful information: https://ntfy.sh/docs/publish/. ` + clientCommandDescriptionSuffix, } func execPublish(c *cli.Context) error { conf, err := loadConfig(c) if err != nil { return err } title := c.String("title") priority := c.String("priority") tags := c.String("tags") delay := c.String("delay") click := c.String("click") icon := c.String("icon") actions := c.String("actions") attach := c.String("attach") markdown := c.Bool("markdown") filename := c.String("filename") file := c.String("file") email := c.String("email") user := c.String("user") token := c.String("token") noCache := c.Bool("no-cache") noFirebase := c.Bool("no-firebase") quiet := c.Bool("quiet") pid := c.Int("wait-pid") // Checks if user != "" && token != "" { return errors.New("cannot set both --user and --token") } // Do the things topic, message, command, err := parseTopicMessageCommand(c) if err != nil { return err } var options []client.PublishOption if title != "" { options = append(options, client.WithTitle(title)) } if priority != "" { options = append(options, client.WithPriority(priority)) } if tags != "" { options = append(options, client.WithTagsList(tags)) } if delay != "" { options = append(options, client.WithDelay(delay)) } if click != "" { options = append(options, client.WithClick(click)) } if icon != "" { options = append(options, client.WithIcon(icon)) } if actions != "" { options = append(options, client.WithActions(strings.ReplaceAll(actions, "\n", " "))) } if attach != "" { options = append(options, client.WithAttach(attach)) } if markdown { options = append(options, client.WithMarkdown()) } if filename != "" { options = append(options, client.WithFilename(filename)) } if email != "" { options = append(options, client.WithEmail(email)) } if noCache { options = append(options, client.WithNoCache()) } if noFirebase { options = append(options, client.WithNoFirebase()) } if token != "" { options = append(options, client.WithBearerAuth(token)) } else if user != "" { var pass string parts := strings.SplitN(user, ":", 2) if len(parts) == 2 { user = parts[0] pass = parts[1] } else { fmt.Fprint(c.App.ErrWriter, "Enter Password: ") p, err := util.ReadPassword(c.App.Reader) if err != nil { return err } pass = string(p) fmt.Fprintf(c.App.ErrWriter, "\r%s\r", strings.Repeat(" ", 20)) } options = append(options, client.WithBasicAuth(user, pass)) } else if conf.DefaultToken != "" { options = append(options, client.WithBearerAuth(conf.DefaultToken)) } else if conf.DefaultUser != "" && conf.DefaultPassword != nil { options = append(options, client.WithBasicAuth(conf.DefaultUser, *conf.DefaultPassword)) } if pid > 0 { newMessage, err := waitForProcess(pid) if err != nil { return err } else if message == "" { message = newMessage } } else if len(command) > 0 { newMessage, err := runAndWaitForCommand(command) if err != nil { return err } else if message == "" { message = newMessage } } var body io.Reader if file == "" { body = strings.NewReader(message) } else { if message != "" { options = append(options, client.WithMessage(message)) } if file == "-" { if filename == "" { options = append(options, client.WithFilename("stdin")) } body = c.App.Reader } else { if filename == "" { options = append(options, client.WithFilename(filepath.Base(file))) } body, err = os.Open(file) if err != nil { return err } } } cl := client.New(conf) m, err := cl.PublishReader(topic, body, options...) if err != nil { return err } if !quiet { fmt.Fprintln(c.App.Writer, strings.TrimSpace(m.Raw)) } return nil } // parseTopicMessageCommand reads the topic and the remaining arguments from the context. // There are a few cases to consider: // // ntfy publish [] // ntfy publish --wait-cmd // NTFY_TOPIC=.. ntfy publish [] // NTFY_TOPIC=.. ntfy publish --wait-cmd func parseTopicMessageCommand(c *cli.Context) (topic string, message string, command []string, err error) { var args []string topic, args, err = parseTopicAndArgs(c) if err != nil { return } if c.Bool("wait-cmd") { if len(args) == 0 { err = errors.New("must specify command when --wait-cmd is passed, type 'ntfy publish --help' for help") return } command = args } else { message = strings.Join(args, " ") } if c.String("message") != "" { message = c.String("message") } return } func parseTopicAndArgs(c *cli.Context) (topic string, args []string, err error) { envTopic := os.Getenv("NTFY_TOPIC") if envTopic != "" { topic = envTopic return topic, remainingArgs(c, 0), nil } if c.NArg() < 1 { return "", nil, errors.New("must specify topic, type 'ntfy publish --help' for help") } return c.Args().Get(0), remainingArgs(c, 1), nil } func remainingArgs(c *cli.Context, fromIndex int) []string { if c.NArg() > fromIndex { return c.Args().Slice()[fromIndex:] } return []string{} } func waitForProcess(pid int) (message string, err error) { if !processExists(pid) { return "", fmt.Errorf("process with PID %d not running", pid) } start := time.Now() log.Debug("Waiting for process with PID %d to exit", pid) for processExists(pid) { time.Sleep(500 * time.Millisecond) } runtime := time.Since(start).Round(time.Millisecond) log.Debug("Process with PID %d exited after %s", pid, runtime) return fmt.Sprintf("Process with PID %d exited after %s", pid, runtime), nil } func runAndWaitForCommand(command []string) (message string, err error) { prettyCmd := util.QuoteCommand(command) log.Debug("Running command: %s", prettyCmd) start := time.Now() cmd := exec.Command(command[0], command[1:]...) if log.IsTrace() { cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr } err = cmd.Run() runtime := time.Since(start).Round(time.Millisecond) if err != nil { if exitError, ok := err.(*exec.ExitError); ok { log.Debug("Command failed after %s (exit code %d): %s", runtime, exitError.ExitCode(), prettyCmd) return fmt.Sprintf("Command failed after %s (exit code %d): %s", runtime, exitError.ExitCode(), prettyCmd), nil } // Hard fail when command does not exist or could not be properly launched return "", fmt.Errorf("command failed: %s, error: %s", prettyCmd, err.Error()) } log.Debug("Command succeeded after %s: %s", runtime, prettyCmd) return fmt.Sprintf("Command succeeded after %s: %s", runtime, prettyCmd), nil } ntfy-2.11.0/cmd/publish_test.go000066400000000000000000000264611462047176100163730ustar00rootroot00000000000000package cmd import ( "fmt" "github.com/stretchr/testify/require" "heckel.io/ntfy/v2/test" "heckel.io/ntfy/v2/util" "net/http" "net/http/httptest" "os" "os/exec" "path/filepath" "strconv" "strings" "testing" "time" ) func TestCLI_Publish_Subscribe_Poll_Real_Server(t *testing.T) { testMessage := util.RandomString(10) app, _, _, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "publish", "ntfytest", "ntfy unit test " + testMessage})) _, err := util.Retry(func() (*int, error) { app2, _, stdout, _ := newTestApp() if err := app2.Run([]string{"ntfy", "subscribe", "--poll", "ntfytest"}); err != nil { return nil, err } if !strings.Contains(stdout.String(), testMessage) { return nil, fmt.Errorf("test message %s not found in topic", testMessage) } return util.Int(1), nil }, time.Second, 2*time.Second, 5*time.Second) // Since #502, ntfy.sh writes messages to the cache asynchronously, after a timeout of ~1.5s require.Nil(t, err) } func TestCLI_Publish_Subscribe_Poll(t *testing.T) { s, port := test.StartServer(t) defer test.StopServer(t, s, port) topic := fmt.Sprintf("http://127.0.0.1:%d/mytopic", port) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "publish", topic, "some message"})) m := toMessage(t, stdout.String()) require.Equal(t, "some message", m.Message) app2, _, stdout, _ := newTestApp() require.Nil(t, app2.Run([]string{"ntfy", "subscribe", "--poll", topic})) m = toMessage(t, stdout.String()) require.Equal(t, "some message", m.Message) } func TestCLI_Publish_All_The_Things(t *testing.T) { s, port := test.StartServer(t) defer test.StopServer(t, s, port) topic := fmt.Sprintf("http://127.0.0.1:%d/mytopic", port) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{ "ntfy", "publish", "--title", "this is a title", "--priority", "high", "--tags", "tag1,tag2", // No --delay, --email "--click", "https://ntfy.sh", "--icon", "https://ntfy.sh/static/img/ntfy.png", "--attach", "https://f-droid.org/F-Droid.apk", "--filename", "fdroid.apk", "--no-cache", "--no-firebase", topic, "some message", })) m := toMessage(t, stdout.String()) require.Equal(t, "message", m.Event) require.Equal(t, "mytopic", m.Topic) require.Equal(t, "some message", m.Message) require.Equal(t, "this is a title", m.Title) require.Equal(t, 4, m.Priority) require.Equal(t, []string{"tag1", "tag2"}, m.Tags) require.Equal(t, "https://ntfy.sh", m.Click) require.Equal(t, "https://f-droid.org/F-Droid.apk", m.Attachment.URL) require.Equal(t, "fdroid.apk", m.Attachment.Name) require.Equal(t, int64(0), m.Attachment.Size) require.Equal(t, "", m.Attachment.Owner) require.Equal(t, int64(0), m.Attachment.Expires) require.Equal(t, "", m.Attachment.Type) require.Equal(t, "https://ntfy.sh/static/img/ntfy.png", m.Icon) } func TestCLI_Publish_Wait_PID_And_Cmd(t *testing.T) { s, port := test.StartServer(t) defer test.StopServer(t, s, port) topic := fmt.Sprintf("http://127.0.0.1:%d/mytopic", port) // Test: sleep 0.5 sleep := exec.Command("sleep", "0.5") require.Nil(t, sleep.Start()) go sleep.Wait() // Must be called to release resources start := time.Now() app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "publish", "--wait-pid", strconv.Itoa(sleep.Process.Pid), topic})) m := toMessage(t, stdout.String()) require.True(t, time.Since(start) >= 500*time.Millisecond) require.Regexp(t, `Process with PID \d+ exited after `, m.Message) // Test: PID does not exist app, _, _, _ = newTestApp() err := app.Run([]string{"ntfy", "publish", "--wait-pid", "1234567", topic}) require.Error(t, err) require.Equal(t, "process with PID 1234567 not running", err.Error()) // Test: Successful command (exit 0) start = time.Now() app, _, stdout, _ = newTestApp() require.Nil(t, app.Run([]string{"ntfy", "publish", "--wait-cmd", topic, "sleep", "0.5"})) m = toMessage(t, stdout.String()) require.True(t, time.Since(start) >= 500*time.Millisecond) require.Contains(t, m.Message, `Command succeeded after `) require.Contains(t, m.Message, `: sleep 0.5`) // Test: Failing command (exit 1) app, _, stdout, _ = newTestApp() require.Nil(t, app.Run([]string{"ntfy", "publish", "--wait-cmd", topic, "/bin/false", "false doesn't care about its args"})) m = toMessage(t, stdout.String()) require.Contains(t, m.Message, `Command failed after `) require.Contains(t, m.Message, `(exit code 1): /bin/false "false doesn't care about its args"`, m.Message) // Test: Non-existing command (hard fail!) app, _, _, _ = newTestApp() err = app.Run([]string{"ntfy", "publish", "--wait-cmd", topic, "does-not-exist-no-really", "really though"}) require.Error(t, err) require.Equal(t, `command failed: does-not-exist-no-really "really though", error: exec: "does-not-exist-no-really": executable file not found in $PATH`, err.Error()) // Tests with NTFY_TOPIC set //// t.Setenv("NTFY_TOPIC", topic) // Test: Successful command with NTFY_TOPIC app, _, stdout, _ = newTestApp() require.Nil(t, app.Run([]string{"ntfy", "publish", "--cmd", "echo", "hi there"})) m = toMessage(t, stdout.String()) require.Equal(t, "mytopic", m.Topic) // Test: Successful --wait-pid with NTFY_TOPIC sleep = exec.Command("sleep", "0.2") require.Nil(t, sleep.Start()) go sleep.Wait() // Must be called to release resources app, _, stdout, _ = newTestApp() require.Nil(t, app.Run([]string{"ntfy", "publish", "--wait-pid", strconv.Itoa(sleep.Process.Pid)})) m = toMessage(t, stdout.String()) require.Regexp(t, `Process with PID \d+ exited after .+ms`, m.Message) } func TestCLI_Publish_Default_UserPass(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "Basic cGhpbGlwcDpteXBhc3M=", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-user: philipp default-password: mypass `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "publish", "--config=" + filename, "mytopic", "triggered"})) m := toMessage(t, stdout.String()) require.Equal(t, "triggered", m.Message) } func TestCLI_Publish_Default_Token(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-token: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "publish", "--config=" + filename, "mytopic", "triggered"})) m := toMessage(t, stdout.String()) require.Equal(t, "triggered", m.Message) } func TestCLI_Publish_Default_UserPass_CLI_Token(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-user: philipp default-password: mypass `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "publish", "--config=" + filename, "--token", "tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", "mytopic", "triggered"})) m := toMessage(t, stdout.String()) require.Equal(t, "triggered", m.Message) } func TestCLI_Publish_Default_Token_CLI_UserPass(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "Basic cGhpbGlwcDpteXBhc3M=", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-token: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "publish", "--config=" + filename, "--user", "philipp:mypass", "mytopic", "triggered"})) m := toMessage(t, stdout.String()) require.Equal(t, "triggered", m.Message) } func TestCLI_Publish_Default_Token_CLI_Token(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-token: tk_FAKETOKEN01234567890FAKETOKEN `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "publish", "--config=" + filename, "--token", "tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", "mytopic", "triggered"})) m := toMessage(t, stdout.String()) require.Equal(t, "triggered", m.Message) } func TestCLI_Publish_Default_UserPass_CLI_UserPass(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "Basic cGhpbGlwcDpteXBhc3M=", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-user: philipp default-password: fakepass `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "publish", "--config=" + filename, "--user", "philipp:mypass", "mytopic", "triggered"})) m := toMessage(t, stdout.String()) require.Equal(t, "triggered", m.Message) } func TestCLI_Publish_Token_And_UserPass(t *testing.T) { app, _, _, _ := newTestApp() err := app.Run([]string{"ntfy", "publish", "--token", "tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", "--user", "philipp:mypass", "mytopic", "triggered"}) require.Error(t, err) require.Equal(t, "cannot set both --user and --token", err.Error()) } ntfy-2.11.0/cmd/publish_unix.go000066400000000000000000000004051462047176100163650ustar00rootroot00000000000000//go:build darwin || linux || dragonfly || freebsd || netbsd || openbsd // +build darwin linux dragonfly freebsd netbsd openbsd package cmd import "syscall" func processExists(pid int) bool { err := syscall.Kill(pid, syscall.Signal(0)) return err == nil } ntfy-2.11.0/cmd/publish_windows.go000066400000000000000000000001661462047176100171000ustar00rootroot00000000000000package cmd import ( "os" ) func processExists(pid int) bool { _, err := os.FindProcess(pid) return err == nil } ntfy-2.11.0/cmd/serve.go000066400000000000000000001024271462047176100150070ustar00rootroot00000000000000//go:build !noserver package cmd import ( "errors" "fmt" "github.com/stripe/stripe-go/v74" "github.com/urfave/cli/v2" "github.com/urfave/cli/v2/altsrc" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/server" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" "io/fs" "math" "net" "net/netip" "net/url" "os" "os/signal" "strings" "syscall" "time" ) func init() { commands = append(commands, cmdServe) } const ( defaultServerConfigFile = "/etc/ntfy/server.yml" ) var flagsServe = append( append([]cli.Flag{}, flagsDefault...), &cli.StringFlag{Name: "config", Aliases: []string{"c"}, EnvVars: []string{"NTFY_CONFIG_FILE"}, Value: defaultServerConfigFile, Usage: "config file"}, altsrc.NewStringFlag(&cli.StringFlag{Name: "base-url", Aliases: []string{"base_url", "B"}, EnvVars: []string{"NTFY_BASE_URL"}, Usage: "externally visible base URL for this host (e.g. https://ntfy.sh)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "listen-http", Aliases: []string{"listen_http", "l"}, EnvVars: []string{"NTFY_LISTEN_HTTP"}, Value: server.DefaultListenHTTP, Usage: "ip:port used as HTTP listen address"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "listen-https", Aliases: []string{"listen_https", "L"}, EnvVars: []string{"NTFY_LISTEN_HTTPS"}, Usage: "ip:port used as HTTPS listen address"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "listen-unix", Aliases: []string{"listen_unix", "U"}, EnvVars: []string{"NTFY_LISTEN_UNIX"}, Usage: "listen on unix socket path"}), altsrc.NewIntFlag(&cli.IntFlag{Name: "listen-unix-mode", Aliases: []string{"listen_unix_mode"}, EnvVars: []string{"NTFY_LISTEN_UNIX_MODE"}, DefaultText: "system default", Usage: "file permissions of unix socket, e.g. 0700"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "key-file", Aliases: []string{"key_file", "K"}, EnvVars: []string{"NTFY_KEY_FILE"}, Usage: "private key file, if listen-https is set"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "cert-file", Aliases: []string{"cert_file", "E"}, EnvVars: []string{"NTFY_CERT_FILE"}, Usage: "certificate file, if listen-https is set"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "firebase-key-file", Aliases: []string{"firebase_key_file", "F"}, EnvVars: []string{"NTFY_FIREBASE_KEY_FILE"}, Usage: "Firebase credentials file; if set additionally publish to FCM topic"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "cache-file", Aliases: []string{"cache_file", "C"}, EnvVars: []string{"NTFY_CACHE_FILE"}, Usage: "cache file used for message caching"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "cache-duration", Aliases: []string{"cache_duration", "b"}, EnvVars: []string{"NTFY_CACHE_DURATION"}, Value: util.FormatDuration(server.DefaultCacheDuration), Usage: "buffer messages for this time to allow `since` requests"}), altsrc.NewIntFlag(&cli.IntFlag{Name: "cache-batch-size", Aliases: []string{"cache_batch_size"}, EnvVars: []string{"NTFY_BATCH_SIZE"}, Usage: "max size of messages to batch together when writing to message cache (if zero, writes are synchronous)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "cache-batch-timeout", Aliases: []string{"cache_batch_timeout"}, EnvVars: []string{"NTFY_CACHE_BATCH_TIMEOUT"}, Value: util.FormatDuration(server.DefaultCacheBatchTimeout), Usage: "timeout for batched async writes to the message cache (if zero, writes are synchronous)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "cache-startup-queries", Aliases: []string{"cache_startup_queries"}, EnvVars: []string{"NTFY_CACHE_STARTUP_QUERIES"}, Usage: "queries run when the cache database is initialized"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "auth-file", Aliases: []string{"auth_file", "H"}, EnvVars: []string{"NTFY_AUTH_FILE"}, Usage: "auth database file used for access control"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "auth-startup-queries", Aliases: []string{"auth_startup_queries"}, EnvVars: []string{"NTFY_AUTH_STARTUP_QUERIES"}, Usage: "queries run when the auth database is initialized"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "auth-default-access", Aliases: []string{"auth_default_access", "p"}, EnvVars: []string{"NTFY_AUTH_DEFAULT_ACCESS"}, Value: "read-write", Usage: "default permissions if no matching entries in the auth database are found"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "attachment-cache-dir", Aliases: []string{"attachment_cache_dir"}, EnvVars: []string{"NTFY_ATTACHMENT_CACHE_DIR"}, Usage: "cache directory for attached files"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "attachment-total-size-limit", Aliases: []string{"attachment_total_size_limit", "A"}, EnvVars: []string{"NTFY_ATTACHMENT_TOTAL_SIZE_LIMIT"}, Value: util.FormatSize(server.DefaultAttachmentTotalSizeLimit), Usage: "limit of the on-disk attachment cache"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "attachment-file-size-limit", Aliases: []string{"attachment_file_size_limit", "Y"}, EnvVars: []string{"NTFY_ATTACHMENT_FILE_SIZE_LIMIT"}, Value: util.FormatSize(server.DefaultAttachmentFileSizeLimit), Usage: "per-file attachment size limit (e.g. 300k, 2M, 100M)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "attachment-expiry-duration", Aliases: []string{"attachment_expiry_duration", "X"}, EnvVars: []string{"NTFY_ATTACHMENT_EXPIRY_DURATION"}, Value: util.FormatDuration(server.DefaultAttachmentExpiryDuration), Usage: "duration after which uploaded attachments will be deleted (e.g. 3h, 20h)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "keepalive-interval", Aliases: []string{"keepalive_interval", "k"}, EnvVars: []string{"NTFY_KEEPALIVE_INTERVAL"}, Value: util.FormatDuration(server.DefaultKeepaliveInterval), Usage: "interval of keepalive messages"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "manager-interval", Aliases: []string{"manager_interval", "m"}, EnvVars: []string{"NTFY_MANAGER_INTERVAL"}, Value: util.FormatDuration(server.DefaultManagerInterval), Usage: "interval of for message pruning and stats printing"}), altsrc.NewStringSliceFlag(&cli.StringSliceFlag{Name: "disallowed-topics", Aliases: []string{"disallowed_topics"}, EnvVars: []string{"NTFY_DISALLOWED_TOPICS"}, Usage: "topics that are not allowed to be used"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "web-root", Aliases: []string{"web_root"}, EnvVars: []string{"NTFY_WEB_ROOT"}, Value: "/", Usage: "sets root of the web app (e.g. /, or /app), or disables it (disable)"}), altsrc.NewBoolFlag(&cli.BoolFlag{Name: "enable-signup", Aliases: []string{"enable_signup"}, EnvVars: []string{"NTFY_ENABLE_SIGNUP"}, Value: false, Usage: "allows users to sign up via the web app, or API"}), altsrc.NewBoolFlag(&cli.BoolFlag{Name: "enable-login", Aliases: []string{"enable_login"}, EnvVars: []string{"NTFY_ENABLE_LOGIN"}, Value: false, Usage: "allows users to log in via the web app, or API"}), altsrc.NewBoolFlag(&cli.BoolFlag{Name: "enable-reservations", Aliases: []string{"enable_reservations"}, EnvVars: []string{"NTFY_ENABLE_RESERVATIONS"}, Value: false, Usage: "allows users to reserve topics (if their tier allows it)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "upstream-base-url", Aliases: []string{"upstream_base_url"}, EnvVars: []string{"NTFY_UPSTREAM_BASE_URL"}, Value: "", Usage: "forward poll request to an upstream server, this is needed for iOS push notifications for self-hosted servers"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "upstream-access-token", Aliases: []string{"upstream_access_token"}, EnvVars: []string{"NTFY_UPSTREAM_ACCESS_TOKEN"}, Value: "", Usage: "access token to use for the upstream server; needed only if upstream rate limits are exceeded or upstream server requires auth"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "smtp-sender-addr", Aliases: []string{"smtp_sender_addr"}, EnvVars: []string{"NTFY_SMTP_SENDER_ADDR"}, Usage: "SMTP server address (host:port) for outgoing emails"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "smtp-sender-user", Aliases: []string{"smtp_sender_user"}, EnvVars: []string{"NTFY_SMTP_SENDER_USER"}, Usage: "SMTP user (if e-mail sending is enabled)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "smtp-sender-pass", Aliases: []string{"smtp_sender_pass"}, EnvVars: []string{"NTFY_SMTP_SENDER_PASS"}, Usage: "SMTP password (if e-mail sending is enabled)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "smtp-sender-from", Aliases: []string{"smtp_sender_from"}, EnvVars: []string{"NTFY_SMTP_SENDER_FROM"}, Usage: "SMTP sender address (if e-mail sending is enabled)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "smtp-server-listen", Aliases: []string{"smtp_server_listen"}, EnvVars: []string{"NTFY_SMTP_SERVER_LISTEN"}, Usage: "SMTP server address (ip:port) for incoming emails, e.g. :25"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "smtp-server-domain", Aliases: []string{"smtp_server_domain"}, EnvVars: []string{"NTFY_SMTP_SERVER_DOMAIN"}, Usage: "SMTP domain for incoming e-mail, e.g. ntfy.sh"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "smtp-server-addr-prefix", Aliases: []string{"smtp_server_addr_prefix"}, EnvVars: []string{"NTFY_SMTP_SERVER_ADDR_PREFIX"}, Usage: "SMTP email address prefix for topics to prevent spam (e.g. 'ntfy-')"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "twilio-account", Aliases: []string{"twilio_account"}, EnvVars: []string{"NTFY_TWILIO_ACCOUNT"}, Usage: "Twilio account SID, used for phone calls, e.g. AC123..."}), altsrc.NewStringFlag(&cli.StringFlag{Name: "twilio-auth-token", Aliases: []string{"twilio_auth_token"}, EnvVars: []string{"NTFY_TWILIO_AUTH_TOKEN"}, Usage: "Twilio auth token"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "twilio-phone-number", Aliases: []string{"twilio_phone_number"}, EnvVars: []string{"NTFY_TWILIO_PHONE_NUMBER"}, Usage: "Twilio number to use for outgoing calls"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "twilio-verify-service", Aliases: []string{"twilio_verify_service"}, EnvVars: []string{"NTFY_TWILIO_VERIFY_SERVICE"}, Usage: "Twilio Verify service ID, used for phone number verification"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "message-size-limit", Aliases: []string{"message_size_limit"}, EnvVars: []string{"NTFY_MESSAGE_SIZE_LIMIT"}, Value: util.FormatSize(server.DefaultMessageSizeLimit), Usage: "size limit for the message (see docs for limitations)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "message-delay-limit", Aliases: []string{"message_delay_limit"}, EnvVars: []string{"NTFY_MESSAGE_DELAY_LIMIT"}, Value: util.FormatDuration(server.DefaultMessageDelayMax), Usage: "max duration a message can be scheduled into the future"}), altsrc.NewIntFlag(&cli.IntFlag{Name: "global-topic-limit", Aliases: []string{"global_topic_limit", "T"}, EnvVars: []string{"NTFY_GLOBAL_TOPIC_LIMIT"}, Value: server.DefaultTotalTopicLimit, Usage: "total number of topics allowed"}), altsrc.NewIntFlag(&cli.IntFlag{Name: "visitor-subscription-limit", Aliases: []string{"visitor_subscription_limit"}, EnvVars: []string{"NTFY_VISITOR_SUBSCRIPTION_LIMIT"}, Value: server.DefaultVisitorSubscriptionLimit, Usage: "number of subscriptions per visitor"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "visitor-attachment-total-size-limit", Aliases: []string{"visitor_attachment_total_size_limit"}, EnvVars: []string{"NTFY_VISITOR_ATTACHMENT_TOTAL_SIZE_LIMIT"}, Value: util.FormatSize(server.DefaultVisitorAttachmentTotalSizeLimit), Usage: "total storage limit used for attachments per visitor"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "visitor-attachment-daily-bandwidth-limit", Aliases: []string{"visitor_attachment_daily_bandwidth_limit"}, EnvVars: []string{"NTFY_VISITOR_ATTACHMENT_DAILY_BANDWIDTH_LIMIT"}, Value: "500M", Usage: "total daily attachment download/upload bandwidth limit per visitor"}), altsrc.NewIntFlag(&cli.IntFlag{Name: "visitor-request-limit-burst", Aliases: []string{"visitor_request_limit_burst"}, EnvVars: []string{"NTFY_VISITOR_REQUEST_LIMIT_BURST"}, Value: server.DefaultVisitorRequestLimitBurst, Usage: "initial limit of requests per visitor"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "visitor-request-limit-replenish", Aliases: []string{"visitor_request_limit_replenish"}, EnvVars: []string{"NTFY_VISITOR_REQUEST_LIMIT_REPLENISH"}, Value: util.FormatDuration(server.DefaultVisitorRequestLimitReplenish), Usage: "interval at which burst limit is replenished (one per x)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "visitor-request-limit-exempt-hosts", Aliases: []string{"visitor_request_limit_exempt_hosts"}, EnvVars: []string{"NTFY_VISITOR_REQUEST_LIMIT_EXEMPT_HOSTS"}, Value: "", Usage: "hostnames and/or IP addresses of hosts that will be exempt from the visitor request limit"}), altsrc.NewIntFlag(&cli.IntFlag{Name: "visitor-message-daily-limit", Aliases: []string{"visitor_message_daily_limit"}, EnvVars: []string{"NTFY_VISITOR_MESSAGE_DAILY_LIMIT"}, Value: server.DefaultVisitorMessageDailyLimit, Usage: "max messages per visitor per day, derived from request limit if unset"}), altsrc.NewIntFlag(&cli.IntFlag{Name: "visitor-email-limit-burst", Aliases: []string{"visitor_email_limit_burst"}, EnvVars: []string{"NTFY_VISITOR_EMAIL_LIMIT_BURST"}, Value: server.DefaultVisitorEmailLimitBurst, Usage: "initial limit of e-mails per visitor"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "visitor-email-limit-replenish", Aliases: []string{"visitor_email_limit_replenish"}, EnvVars: []string{"NTFY_VISITOR_EMAIL_LIMIT_REPLENISH"}, Value: util.FormatDuration(server.DefaultVisitorEmailLimitReplenish), Usage: "interval at which burst limit is replenished (one per x)"}), altsrc.NewBoolFlag(&cli.BoolFlag{Name: "visitor-subscriber-rate-limiting", Aliases: []string{"visitor_subscriber_rate_limiting"}, EnvVars: []string{"NTFY_VISITOR_SUBSCRIBER_RATE_LIMITING"}, Value: false, Usage: "enables subscriber-based rate limiting"}), altsrc.NewBoolFlag(&cli.BoolFlag{Name: "behind-proxy", Aliases: []string{"behind_proxy", "P"}, EnvVars: []string{"NTFY_BEHIND_PROXY"}, Value: false, Usage: "if set, use X-Forwarded-For header to determine visitor IP address (for rate limiting)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "stripe-secret-key", Aliases: []string{"stripe_secret_key"}, EnvVars: []string{"NTFY_STRIPE_SECRET_KEY"}, Value: "", Usage: "key used for the Stripe API communication, this enables payments"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "stripe-webhook-key", Aliases: []string{"stripe_webhook_key"}, EnvVars: []string{"NTFY_STRIPE_WEBHOOK_KEY"}, Value: "", Usage: "key required to validate the authenticity of incoming webhooks from Stripe"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "billing-contact", Aliases: []string{"billing_contact"}, EnvVars: []string{"NTFY_BILLING_CONTACT"}, Value: "", Usage: "e-mail or website to display in upgrade dialog (only if payments are enabled)"}), altsrc.NewBoolFlag(&cli.BoolFlag{Name: "enable-metrics", Aliases: []string{"enable_metrics"}, EnvVars: []string{"NTFY_ENABLE_METRICS"}, Value: false, Usage: "if set, Prometheus metrics are exposed via the /metrics endpoint"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "metrics-listen-http", Aliases: []string{"metrics_listen_http"}, EnvVars: []string{"NTFY_METRICS_LISTEN_HTTP"}, Usage: "ip:port used to expose the metrics endpoint (implicitly enables metrics)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "profile-listen-http", Aliases: []string{"profile_listen_http"}, EnvVars: []string{"NTFY_PROFILE_LISTEN_HTTP"}, Usage: "ip:port used to expose the profiling endpoints (implicitly enables profiling)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-public-key", Aliases: []string{"web_push_public_key"}, EnvVars: []string{"NTFY_WEB_PUSH_PUBLIC_KEY"}, Usage: "public key used for web push notifications"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-private-key", Aliases: []string{"web_push_private_key"}, EnvVars: []string{"NTFY_WEB_PUSH_PRIVATE_KEY"}, Usage: "private key used for web push notifications"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-file", Aliases: []string{"web_push_file"}, EnvVars: []string{"NTFY_WEB_PUSH_FILE"}, Usage: "file used to store web push subscriptions"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-email-address", Aliases: []string{"web_push_email_address"}, EnvVars: []string{"NTFY_WEB_PUSH_EMAIL_ADDRESS"}, Usage: "e-mail address of sender, required to use browser push services"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-startup-queries", Aliases: []string{"web_push_startup_queries"}, EnvVars: []string{"NTFY_WEB_PUSH_STARTUP_QUERIES"}, Usage: "queries run when the web push database is initialized"}), ) var cmdServe = &cli.Command{ Name: "serve", Usage: "Run the ntfy server", UsageText: "ntfy serve [OPTIONS..]", Action: execServe, Category: categoryServer, Flags: flagsServe, Before: initConfigFileInputSourceFunc("config", flagsServe, initLogFunc), Description: `Run the ntfy server and listen for incoming requests The command will load the configuration from /etc/ntfy/server.yml. Config options can be overridden using the command line options. Examples: ntfy serve # Starts server in the foreground (on port 80) ntfy serve --listen-http :8080 # Starts server with alternate port`, } func execServe(c *cli.Context) error { if c.NArg() > 0 { return errors.New("no arguments expected, see 'ntfy serve --help' for help") } // Read all the options config := c.String("config") baseURL := strings.TrimSuffix(c.String("base-url"), "/") listenHTTP := c.String("listen-http") listenHTTPS := c.String("listen-https") listenUnix := c.String("listen-unix") listenUnixMode := c.Int("listen-unix-mode") keyFile := c.String("key-file") certFile := c.String("cert-file") firebaseKeyFile := c.String("firebase-key-file") webPushPrivateKey := c.String("web-push-private-key") webPushPublicKey := c.String("web-push-public-key") webPushFile := c.String("web-push-file") webPushEmailAddress := c.String("web-push-email-address") webPushStartupQueries := c.String("web-push-startup-queries") cacheFile := c.String("cache-file") cacheDurationStr := c.String("cache-duration") cacheStartupQueries := c.String("cache-startup-queries") cacheBatchSize := c.Int("cache-batch-size") cacheBatchTimeoutStr := c.String("cache-batch-timeout") authFile := c.String("auth-file") authStartupQueries := c.String("auth-startup-queries") authDefaultAccess := c.String("auth-default-access") attachmentCacheDir := c.String("attachment-cache-dir") attachmentTotalSizeLimitStr := c.String("attachment-total-size-limit") attachmentFileSizeLimitStr := c.String("attachment-file-size-limit") attachmentExpiryDurationStr := c.String("attachment-expiry-duration") keepaliveIntervalStr := c.String("keepalive-interval") managerIntervalStr := c.String("manager-interval") disallowedTopics := c.StringSlice("disallowed-topics") webRoot := c.String("web-root") enableSignup := c.Bool("enable-signup") enableLogin := c.Bool("enable-login") enableReservations := c.Bool("enable-reservations") upstreamBaseURL := c.String("upstream-base-url") upstreamAccessToken := c.String("upstream-access-token") smtpSenderAddr := c.String("smtp-sender-addr") smtpSenderUser := c.String("smtp-sender-user") smtpSenderPass := c.String("smtp-sender-pass") smtpSenderFrom := c.String("smtp-sender-from") smtpServerListen := c.String("smtp-server-listen") smtpServerDomain := c.String("smtp-server-domain") smtpServerAddrPrefix := c.String("smtp-server-addr-prefix") twilioAccount := c.String("twilio-account") twilioAuthToken := c.String("twilio-auth-token") twilioPhoneNumber := c.String("twilio-phone-number") twilioVerifyService := c.String("twilio-verify-service") messageSizeLimitStr := c.String("message-size-limit") messageDelayLimitStr := c.String("message-delay-limit") totalTopicLimit := c.Int("global-topic-limit") visitorSubscriptionLimit := c.Int("visitor-subscription-limit") visitorSubscriberRateLimiting := c.Bool("visitor-subscriber-rate-limiting") visitorAttachmentTotalSizeLimitStr := c.String("visitor-attachment-total-size-limit") visitorAttachmentDailyBandwidthLimitStr := c.String("visitor-attachment-daily-bandwidth-limit") visitorRequestLimitBurst := c.Int("visitor-request-limit-burst") visitorRequestLimitReplenishStr := c.String("visitor-request-limit-replenish") visitorRequestLimitExemptHosts := util.SplitNoEmpty(c.String("visitor-request-limit-exempt-hosts"), ",") visitorMessageDailyLimit := c.Int("visitor-message-daily-limit") visitorEmailLimitBurst := c.Int("visitor-email-limit-burst") visitorEmailLimitReplenishStr := c.String("visitor-email-limit-replenish") behindProxy := c.Bool("behind-proxy") stripeSecretKey := c.String("stripe-secret-key") stripeWebhookKey := c.String("stripe-webhook-key") billingContact := c.String("billing-contact") metricsListenHTTP := c.String("metrics-listen-http") enableMetrics := c.Bool("enable-metrics") || metricsListenHTTP != "" profileListenHTTP := c.String("profile-listen-http") // Convert durations cacheDuration, err := util.ParseDuration(cacheDurationStr) if err != nil { return fmt.Errorf("invalid cache duration: %s", cacheDurationStr) } cacheBatchTimeout, err := util.ParseDuration(cacheBatchTimeoutStr) if err != nil { return fmt.Errorf("invalid cache batch timeout: %s", cacheBatchTimeoutStr) } attachmentExpiryDuration, err := util.ParseDuration(attachmentExpiryDurationStr) if err != nil { return fmt.Errorf("invalid attachment expiry duration: %s", attachmentExpiryDurationStr) } keepaliveInterval, err := util.ParseDuration(keepaliveIntervalStr) if err != nil { return fmt.Errorf("invalid keepalive interval: %s", keepaliveIntervalStr) } managerInterval, err := util.ParseDuration(managerIntervalStr) if err != nil { return fmt.Errorf("invalid manager interval: %s", managerIntervalStr) } messageDelayLimit, err := util.ParseDuration(messageDelayLimitStr) if err != nil { return fmt.Errorf("invalid message delay limit: %s", messageDelayLimitStr) } visitorRequestLimitReplenish, err := util.ParseDuration(visitorRequestLimitReplenishStr) if err != nil { return fmt.Errorf("invalid visitor request limit replenish: %s", visitorRequestLimitReplenishStr) } visitorEmailLimitReplenish, err := util.ParseDuration(visitorEmailLimitReplenishStr) if err != nil { return fmt.Errorf("invalid visitor email limit replenish: %s", visitorEmailLimitReplenishStr) } // Convert sizes to bytes messageSizeLimit, err := util.ParseSize(messageSizeLimitStr) if err != nil { return fmt.Errorf("invalid message size limit: %s", messageSizeLimitStr) } attachmentTotalSizeLimit, err := util.ParseSize(attachmentTotalSizeLimitStr) if err != nil { return fmt.Errorf("invalid attachment total size limit: %s", attachmentTotalSizeLimitStr) } attachmentFileSizeLimit, err := util.ParseSize(attachmentFileSizeLimitStr) if err != nil { return fmt.Errorf("invalid attachment file size limit: %s", attachmentFileSizeLimitStr) } visitorAttachmentTotalSizeLimit, err := util.ParseSize(visitorAttachmentTotalSizeLimitStr) if err != nil { return fmt.Errorf("invalid visitor attachment total size limit: %s", visitorAttachmentTotalSizeLimitStr) } visitorAttachmentDailyBandwidthLimit, err := util.ParseSize(visitorAttachmentDailyBandwidthLimitStr) if err != nil { return fmt.Errorf("invalid visitor attachment daily bandwidth limit: %s", visitorAttachmentDailyBandwidthLimitStr) } else if visitorAttachmentDailyBandwidthLimit > math.MaxInt { return fmt.Errorf("config option visitor-attachment-daily-bandwidth-limit must be lower than %d", math.MaxInt) } // Check values if firebaseKeyFile != "" && !util.FileExists(firebaseKeyFile) { return errors.New("if set, FCM key file must exist") } else if webPushPublicKey != "" && (webPushPrivateKey == "" || webPushFile == "" || webPushEmailAddress == "" || baseURL == "") { return errors.New("if web push is enabled, web-push-private-key, web-push-public-key, web-push-file, web-push-email-address, and base-url should be set. run 'ntfy webpush keys' to generate keys") } else if keepaliveInterval < 5*time.Second { return errors.New("keepalive interval cannot be lower than five seconds") } else if managerInterval < 5*time.Second { return errors.New("manager interval cannot be lower than five seconds") } else if cacheDuration > 0 && cacheDuration < managerInterval { return errors.New("cache duration cannot be lower than manager interval") } else if keyFile != "" && !util.FileExists(keyFile) { return errors.New("if set, key file must exist") } else if certFile != "" && !util.FileExists(certFile) { return errors.New("if set, certificate file must exist") } else if listenHTTPS != "" && (keyFile == "" || certFile == "") { return errors.New("if listen-https is set, both key-file and cert-file must be set") } else if smtpSenderAddr != "" && (baseURL == "" || smtpSenderFrom == "") { return errors.New("if smtp-sender-addr is set, base-url, and smtp-sender-from must also be set") } else if smtpServerListen != "" && smtpServerDomain == "" { return errors.New("if smtp-server-listen is set, smtp-server-domain must also be set") } else if attachmentCacheDir != "" && baseURL == "" { return errors.New("if attachment-cache-dir is set, base-url must also be set") } else if baseURL != "" { u, err := url.Parse(baseURL) if err != nil { return fmt.Errorf("if set, base-url must be a valid URL, e.g. https://ntfy.mydomain.com: %v", err) } else if u.Scheme != "http" && u.Scheme != "https" { return errors.New("if set, base-url must be a valid URL starting with http:// or https://, e.g. https://ntfy.mydomain.com") } else if u.Path != "" { return fmt.Errorf("if set, base-url must not have a path (%s), as hosting ntfy on a sub-path is not supported, e.g. https://ntfy.mydomain.com", u.Path) } } else if upstreamBaseURL != "" && !strings.HasPrefix(upstreamBaseURL, "http://") && !strings.HasPrefix(upstreamBaseURL, "https://") { return errors.New("if set, upstream-base-url must start with http:// or https://") } else if upstreamBaseURL != "" && strings.HasSuffix(upstreamBaseURL, "/") { return errors.New("if set, upstream-base-url must not end with a slash (/)") } else if upstreamBaseURL != "" && baseURL == "" { return errors.New("if upstream-base-url is set, base-url must also be set") } else if upstreamBaseURL != "" && baseURL != "" && baseURL == upstreamBaseURL { return errors.New("base-url and upstream-base-url cannot be identical, you'll likely want to set upstream-base-url to https://ntfy.sh, see https://ntfy.sh/docs/config/#ios-instant-notifications") } else if authFile == "" && (enableSignup || enableLogin || enableReservations || stripeSecretKey != "") { return errors.New("cannot set enable-signup, enable-login, enable-reserve-topics, or stripe-secret-key if auth-file is not set") } else if enableSignup && !enableLogin { return errors.New("cannot set enable-signup without also setting enable-login") } else if stripeSecretKey != "" && (stripeWebhookKey == "" || baseURL == "") { return errors.New("if stripe-secret-key is set, stripe-webhook-key and base-url must also be set") } else if twilioAccount != "" && (twilioAuthToken == "" || twilioPhoneNumber == "" || twilioVerifyService == "" || baseURL == "" || authFile == "") { return errors.New("if twilio-account is set, twilio-auth-token, twilio-phone-number, twilio-verify-service, base-url, and auth-file must also be set") } else if messageSizeLimit > server.DefaultMessageSizeLimit { log.Warn("message-size-limit is greater than 4K, this is not recommended and largely untested, and may lead to issues with some clients") if messageSizeLimit > 5*1024*1024 { return errors.New("message-size-limit cannot be higher than 5M") } } // Backwards compatibility if webRoot == "app" { webRoot = "/" } else if webRoot == "home" { webRoot = "/app" } else if webRoot == "disable" { webRoot = "" } else if !strings.HasPrefix(webRoot, "/") { webRoot = "/" + webRoot } // Default auth permissions authDefault, err := user.ParsePermission(authDefaultAccess) if err != nil { return errors.New("if set, auth-default-access must start set to 'read-write', 'read-only', 'write-only' or 'deny-all'") } // Special case: Unset default if listenHTTP == "-" { listenHTTP = "" } // Resolve hosts visitorRequestLimitExemptIPs := make([]netip.Prefix, 0) for _, host := range visitorRequestLimitExemptHosts { ips, err := parseIPHostPrefix(host) if err != nil { log.Warn("cannot resolve host %s: %s, ignoring visitor request exemption", host, err.Error()) continue } visitorRequestLimitExemptIPs = append(visitorRequestLimitExemptIPs, ips...) } // Stripe things if stripeSecretKey != "" { stripe.EnableTelemetry = false // Whoa! stripe.Key = stripeSecretKey } // Add default forbidden topics disallowedTopics = append(disallowedTopics, server.DefaultDisallowedTopics...) // Run server conf := server.NewConfig() conf.File = config conf.BaseURL = baseURL conf.ListenHTTP = listenHTTP conf.ListenHTTPS = listenHTTPS conf.ListenUnix = listenUnix conf.ListenUnixMode = fs.FileMode(listenUnixMode) conf.KeyFile = keyFile conf.CertFile = certFile conf.FirebaseKeyFile = firebaseKeyFile conf.CacheFile = cacheFile conf.CacheDuration = cacheDuration conf.CacheStartupQueries = cacheStartupQueries conf.CacheBatchSize = cacheBatchSize conf.CacheBatchTimeout = cacheBatchTimeout conf.AuthFile = authFile conf.AuthStartupQueries = authStartupQueries conf.AuthDefault = authDefault conf.AttachmentCacheDir = attachmentCacheDir conf.AttachmentTotalSizeLimit = attachmentTotalSizeLimit conf.AttachmentFileSizeLimit = attachmentFileSizeLimit conf.AttachmentExpiryDuration = attachmentExpiryDuration conf.KeepaliveInterval = keepaliveInterval conf.ManagerInterval = managerInterval conf.DisallowedTopics = disallowedTopics conf.WebRoot = webRoot conf.UpstreamBaseURL = upstreamBaseURL conf.UpstreamAccessToken = upstreamAccessToken conf.SMTPSenderAddr = smtpSenderAddr conf.SMTPSenderUser = smtpSenderUser conf.SMTPSenderPass = smtpSenderPass conf.SMTPSenderFrom = smtpSenderFrom conf.SMTPServerListen = smtpServerListen conf.SMTPServerDomain = smtpServerDomain conf.SMTPServerAddrPrefix = smtpServerAddrPrefix conf.TwilioAccount = twilioAccount conf.TwilioAuthToken = twilioAuthToken conf.TwilioPhoneNumber = twilioPhoneNumber conf.TwilioVerifyService = twilioVerifyService conf.MessageSizeLimit = int(messageSizeLimit) conf.MessageDelayMax = messageDelayLimit conf.TotalTopicLimit = totalTopicLimit conf.VisitorSubscriptionLimit = visitorSubscriptionLimit conf.VisitorAttachmentTotalSizeLimit = visitorAttachmentTotalSizeLimit conf.VisitorAttachmentDailyBandwidthLimit = visitorAttachmentDailyBandwidthLimit conf.VisitorRequestLimitBurst = visitorRequestLimitBurst conf.VisitorRequestLimitReplenish = visitorRequestLimitReplenish conf.VisitorRequestExemptIPAddrs = visitorRequestLimitExemptIPs conf.VisitorMessageDailyLimit = visitorMessageDailyLimit conf.VisitorEmailLimitBurst = visitorEmailLimitBurst conf.VisitorEmailLimitReplenish = visitorEmailLimitReplenish conf.VisitorSubscriberRateLimiting = visitorSubscriberRateLimiting conf.BehindProxy = behindProxy conf.StripeSecretKey = stripeSecretKey conf.StripeWebhookKey = stripeWebhookKey conf.BillingContact = billingContact conf.EnableSignup = enableSignup conf.EnableLogin = enableLogin conf.EnableReservations = enableReservations conf.EnableMetrics = enableMetrics conf.MetricsListenHTTP = metricsListenHTTP conf.ProfileListenHTTP = profileListenHTTP conf.Version = c.App.Version conf.WebPushPrivateKey = webPushPrivateKey conf.WebPushPublicKey = webPushPublicKey conf.WebPushFile = webPushFile conf.WebPushEmailAddress = webPushEmailAddress conf.WebPushStartupQueries = webPushStartupQueries // Set up hot-reloading of config go sigHandlerConfigReload(config) // Run server s, err := server.New(conf) if err != nil { log.Fatal(err.Error()) } else if err := s.Run(); err != nil { log.Fatal(err.Error()) } log.Info("Exiting.") return nil } func sigHandlerConfigReload(config string) { sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGHUP) for range sigs { log.Info("Partially hot reloading configuration ...") inputSource, err := newYamlSourceFromFile(config, flagsServe) if err != nil { log.Warn("Hot reload failed: %s", err.Error()) continue } if err := reloadLogLevel(inputSource); err != nil { log.Warn("Reloading log level failed: %s", err.Error()) } } } func parseIPHostPrefix(host string) (prefixes []netip.Prefix, err error) { // Try parsing as prefix, e.g. 10.0.1.0/24 prefix, err := netip.ParsePrefix(host) if err == nil { prefixes = append(prefixes, prefix.Masked()) return prefixes, nil } // Not a prefix, parse as host or IP (LookupHost passes through an IP as is) ips, err := net.LookupHost(host) if err != nil { return nil, err } for _, ipStr := range ips { ip, err := netip.ParseAddr(ipStr) if err == nil { prefix, err := ip.Prefix(ip.BitLen()) if err != nil { return nil, fmt.Errorf("%s successfully parsed but unable to make prefix: %s", ip.String(), err.Error()) } prefixes = append(prefixes, prefix.Masked()) } } return } func reloadLogLevel(inputSource altsrc.InputSourceContext) error { newLevelStr, err := inputSource.String("log-level") if err != nil { return fmt.Errorf("cannot load log level: %s", err.Error()) } overrides, err := inputSource.StringSlice("log-level-overrides") if err != nil { return fmt.Errorf("cannot load log level overrides (1): %s", err.Error()) } log.ResetLevelOverrides() if err := applyLogLevelOverrides(overrides); err != nil { return fmt.Errorf("cannot load log level overrides (2): %s", err.Error()) } log.SetLevel(log.ToLevel(newLevelStr)) if len(overrides) > 0 { log.Info("Log level is %v, %d override(s) in place", strings.ToUpper(newLevelStr), len(overrides)) } else { log.Info("Log level is %v", strings.ToUpper(newLevelStr)) } return nil } ntfy-2.11.0/cmd/serve_test.go000066400000000000000000000052361462047176100160460ustar00rootroot00000000000000package cmd import ( "fmt" "math/rand" "os" "os/exec" "path/filepath" "testing" "time" "github.com/gorilla/websocket" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "heckel.io/ntfy/v2/client" "heckel.io/ntfy/v2/test" "heckel.io/ntfy/v2/util" ) func TestCLI_Serve_Unix_Curl(t *testing.T) { sockFile := filepath.Join(t.TempDir(), "ntfy.sock") configFile := newEmptyFile(t) // Avoid issues with existing server.yml file on system go func() { app, _, _, _ := newTestApp() err := app.Run([]string{"ntfy", "serve", "--config=" + configFile, "--listen-http=-", "--listen-unix=" + sockFile}) require.Nil(t, err) }() for i := 0; i < 40 && !util.FileExists(sockFile); i++ { time.Sleep(50 * time.Millisecond) } require.True(t, util.FileExists(sockFile)) cmd := exec.Command("curl", "-s", "--unix-socket", sockFile, "-d", "this is a message", "localhost/mytopic") out, err := cmd.Output() require.Nil(t, err) m := toMessage(t, string(out)) require.Equal(t, "this is a message", m.Message) } func TestCLI_Serve_WebSocket(t *testing.T) { port := 10000 + rand.Intn(20000) go func() { configFile := newEmptyFile(t) // Avoid issues with existing server.yml file on system app, _, _, _ := newTestApp() err := app.Run([]string{"ntfy", "serve", "--config=" + configFile, fmt.Sprintf("--listen-http=:%d", port)}) require.Nil(t, err) }() test.WaitForPortUp(t, port) ws, _, err := websocket.DefaultDialer.Dial(fmt.Sprintf("ws://127.0.0.1:%d/mytopic/ws", port), nil) require.Nil(t, err) messageType, data, err := ws.ReadMessage() require.Nil(t, err) require.Equal(t, websocket.TextMessage, messageType) require.Equal(t, "open", toMessage(t, string(data)).Event) c := client.New(client.NewConfig()) _, err = c.Publish(fmt.Sprintf("http://127.0.0.1:%d/mytopic", port), "my message") require.Nil(t, err) messageType, data, err = ws.ReadMessage() require.Nil(t, err) require.Equal(t, websocket.TextMessage, messageType) m := toMessage(t, string(data)) require.Equal(t, "my message", m.Message) require.Equal(t, "mytopic", m.Topic) } func TestIP_Host_Parsing(t *testing.T) { cases := map[string]string{ "1.1.1.1": "1.1.1.1/32", "fd00::1234": "fd00::1234/128", "192.168.0.3/24": "192.168.0.0/24", "10.1.2.3/8": "10.0.0.0/8", "201:be93::4a6/21": "201:b800::/21", } for q, expectedAnswer := range cases { ips, err := parseIPHostPrefix(q) require.Nil(t, err) assert.Equal(t, 1, len(ips)) assert.Equal(t, expectedAnswer, ips[0].String()) } } func newEmptyFile(t *testing.T) string { filename := filepath.Join(t.TempDir(), "empty") require.Nil(t, os.WriteFile(filename, []byte{}, 0600)) return filename } ntfy-2.11.0/cmd/subscribe.go000066400000000000000000000277631462047176100156550ustar00rootroot00000000000000package cmd import ( "errors" "fmt" "github.com/urfave/cli/v2" "heckel.io/ntfy/v2/client" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/util" "os" "os/exec" "os/user" "path/filepath" "sort" "strings" ) func init() { commands = append(commands, cmdSubscribe) } const ( clientRootConfigFileUnixAbsolute = "/etc/ntfy/client.yml" clientUserConfigFileUnixRelative = "ntfy/client.yml" clientUserConfigFileWindowsRelative = "ntfy\\client.yml" ) var flagsSubscribe = append( append([]cli.Flag{}, flagsDefault...), &cli.StringFlag{Name: "config", Aliases: []string{"c"}, Usage: "client config file"}, &cli.StringFlag{Name: "since", Aliases: []string{"s"}, Usage: "return events since `SINCE` (Unix timestamp, or all)"}, &cli.StringFlag{Name: "user", Aliases: []string{"u"}, EnvVars: []string{"NTFY_USER"}, Usage: "username[:password] used to auth against the server"}, &cli.StringFlag{Name: "token", Aliases: []string{"k"}, EnvVars: []string{"NTFY_TOKEN"}, Usage: "access token used to auth against the server"}, &cli.BoolFlag{Name: "from-config", Aliases: []string{"from_config", "C"}, Usage: "read subscriptions from config file (service mode)"}, &cli.BoolFlag{Name: "poll", Aliases: []string{"p"}, Usage: "return events and exit, do not listen for new events"}, &cli.BoolFlag{Name: "scheduled", Aliases: []string{"sched", "S"}, Usage: "also return scheduled/delayed events"}, ) var cmdSubscribe = &cli.Command{ Name: "subscribe", Aliases: []string{"sub"}, Usage: "Subscribe to one or more topics on a ntfy server", UsageText: "ntfy subscribe [OPTIONS..] [TOPIC]", Action: execSubscribe, Category: categoryClient, Flags: flagsSubscribe, Before: initLogFunc, Description: `Subscribe to a topic from a ntfy server, and either print or execute a command for every arriving message. There are 3 modes in which the command can be run: ntfy subscribe TOPIC This prints the JSON representation of every incoming message. It is useful when you have a command that wants to stream-read incoming JSON messages. Unless --poll is passed, this command stays open forever. Examples: ntfy subscribe mytopic # Prints JSON for incoming messages for ntfy.sh/mytopic ntfy sub home.lan/backups # Subscribe to topic on different server ntfy sub --poll home.lan/backups # Just query for latest messages and exit ntfy sub -u phil:mypass secret # Subscribe with username/password ntfy subscribe TOPIC COMMAND This executes COMMAND for every incoming messages. The message fields are passed to the command as environment variables: Variable Aliases Description --------------- --------------------- ----------------------------------- $NTFY_ID $id Unique message ID $NTFY_TIME $time Unix timestamp of the message delivery $NTFY_TOPIC $topic Topic name $NTFY_MESSAGE $message, $m Message body $NTFY_TITLE $title, $t Message title $NTFY_PRIORITY $priority, $prio, $p Message priority (1=min, 5=max) $NTFY_TAGS $tags, $tag, $ta Message tags (comma separated list) $NTFY_RAW $raw Raw JSON message Examples: ntfy sub mytopic 'notify-send "$m"' # Execute command for incoming messages ntfy sub topic1 myscript.sh # Execute script for incoming messages ntfy subscribe --from-config Service mode (used in ntfy-client.service). This reads the config file and sets up subscriptions for every topic in the "subscribe:" block (see config file). Examples: ntfy sub --from-config # Read topics from config file ntfy sub --config=myclient.yml --from-config # Read topics from alternate config file ` + clientCommandDescriptionSuffix, } func execSubscribe(c *cli.Context) error { // Read config and options conf, err := loadConfig(c) if err != nil { return err } cl := client.New(conf) since := c.String("since") user := c.String("user") token := c.String("token") poll := c.Bool("poll") scheduled := c.Bool("scheduled") fromConfig := c.Bool("from-config") topic := c.Args().Get(0) command := c.Args().Get(1) // Checks if user != "" && token != "" { return errors.New("cannot set both --user and --token") } if !fromConfig { conf.Subscribe = nil // wipe if --from-config not passed } var options []client.SubscribeOption if since != "" { options = append(options, client.WithSince(since)) } if token != "" { options = append(options, client.WithBearerAuth(token)) } else if user != "" { var pass string parts := strings.SplitN(user, ":", 2) if len(parts) == 2 { user = parts[0] pass = parts[1] } else { fmt.Fprint(c.App.ErrWriter, "Enter Password: ") p, err := util.ReadPassword(c.App.Reader) if err != nil { return err } pass = string(p) fmt.Fprintf(c.App.ErrWriter, "\r%s\r", strings.Repeat(" ", 20)) } options = append(options, client.WithBasicAuth(user, pass)) } else if conf.DefaultToken != "" { options = append(options, client.WithBearerAuth(conf.DefaultToken)) } else if conf.DefaultUser != "" && conf.DefaultPassword != nil { options = append(options, client.WithBasicAuth(conf.DefaultUser, *conf.DefaultPassword)) } if scheduled { options = append(options, client.WithScheduled()) } if topic == "" && len(conf.Subscribe) == 0 { return errors.New("must specify topic, type 'ntfy subscribe --help' for help") } // Execute poll or subscribe if poll { return doPoll(c, cl, conf, topic, command, options...) } return doSubscribe(c, cl, conf, topic, command, options...) } func doPoll(c *cli.Context, cl *client.Client, conf *client.Config, topic, command string, options ...client.SubscribeOption) error { for _, s := range conf.Subscribe { // may be nil if auth := maybeAddAuthHeader(s, conf); auth != nil { options = append(options, auth) } if err := doPollSingle(c, cl, s.Topic, s.Command, options...); err != nil { return err } } if topic != "" { if err := doPollSingle(c, cl, topic, command, options...); err != nil { return err } } return nil } func doPollSingle(c *cli.Context, cl *client.Client, topic, command string, options ...client.SubscribeOption) error { messages, err := cl.Poll(topic, options...) if err != nil { return err } for _, m := range messages { printMessageOrRunCommand(c, m, command) } return nil } func doSubscribe(c *cli.Context, cl *client.Client, conf *client.Config, topic, command string, options ...client.SubscribeOption) error { cmds := make(map[string]string) // Subscription ID -> command for _, s := range conf.Subscribe { // May be nil topicOptions := append(make([]client.SubscribeOption, 0), options...) for filter, value := range s.If { topicOptions = append(topicOptions, client.WithFilter(filter, value)) } if auth := maybeAddAuthHeader(s, conf); auth != nil { topicOptions = append(topicOptions, auth) } subscriptionID, err := cl.Subscribe(s.Topic, topicOptions...) if err != nil { return err } if s.Command != "" { cmds[subscriptionID] = s.Command } else if conf.DefaultCommand != "" { cmds[subscriptionID] = conf.DefaultCommand } else { cmds[subscriptionID] = "" } } if topic != "" { subscriptionID, err := cl.Subscribe(topic, options...) if err != nil { return err } cmds[subscriptionID] = command } for m := range cl.Messages { cmd, ok := cmds[m.SubscriptionID] if !ok { continue } log.Debug("%s Dispatching received message: %s", logMessagePrefix(m), m.Raw) printMessageOrRunCommand(c, m, cmd) } return nil } func maybeAddAuthHeader(s client.Subscribe, conf *client.Config) client.SubscribeOption { // if an explicit empty token or empty user:pass is given, exit without auth if (s.Token != nil && *s.Token == "") || (s.User != nil && *s.User == "" && s.Password != nil && *s.Password == "") { return client.WithEmptyAuth() } // check for subscription token then subscription user:pass if s.Token != nil && *s.Token != "" { return client.WithBearerAuth(*s.Token) } if s.User != nil && *s.User != "" && s.Password != nil { return client.WithBasicAuth(*s.User, *s.Password) } // if no subscription token nor subscription user:pass, check for default token then default user:pass if conf.DefaultToken != "" { return client.WithBearerAuth(conf.DefaultToken) } if conf.DefaultUser != "" && conf.DefaultPassword != nil { return client.WithBasicAuth(conf.DefaultUser, *conf.DefaultPassword) } return nil } func printMessageOrRunCommand(c *cli.Context, m *client.Message, command string) { if command != "" { runCommand(c, command, m) } else { log.Debug("%s Printing raw message", logMessagePrefix(m)) fmt.Fprintln(c.App.Writer, m.Raw) } } func runCommand(c *cli.Context, command string, m *client.Message) { if err := runCommandInternal(c, command, m); err != nil { log.Warn("%s Command failed: %s", logMessagePrefix(m), err.Error()) } } func runCommandInternal(c *cli.Context, script string, m *client.Message) error { scriptFile := fmt.Sprintf("%s/ntfy-subscribe-%s.%s", os.TempDir(), util.RandomString(10), scriptExt) log.Debug("%s Running command '%s' via temporary script %s", logMessagePrefix(m), script, scriptFile) script = scriptHeader + script if err := os.WriteFile(scriptFile, []byte(script), 0700); err != nil { return err } defer os.Remove(scriptFile) log.Debug("%s Executing script %s", logMessagePrefix(m), scriptFile) cmd := exec.Command(scriptLauncher[0], append(scriptLauncher[1:], scriptFile)...) cmd.Stdin = c.App.Reader cmd.Stdout = c.App.Writer cmd.Stderr = c.App.ErrWriter cmd.Env = envVars(m) return cmd.Run() } func envVars(m *client.Message) []string { env := make([]string, 0) env = append(env, envVar(m.ID, "NTFY_ID", "id")...) env = append(env, envVar(m.Topic, "NTFY_TOPIC", "topic")...) env = append(env, envVar(fmt.Sprintf("%d", m.Time), "NTFY_TIME", "time")...) env = append(env, envVar(m.Message, "NTFY_MESSAGE", "message", "m")...) env = append(env, envVar(m.Title, "NTFY_TITLE", "title", "t")...) env = append(env, envVar(fmt.Sprintf("%d", m.Priority), "NTFY_PRIORITY", "priority", "prio", "p")...) env = append(env, envVar(strings.Join(m.Tags, ","), "NTFY_TAGS", "tags", "tag", "ta")...) env = append(env, envVar(m.Raw, "NTFY_RAW", "raw")...) sort.Strings(env) if log.IsTrace() { log.Trace("%s With environment:\n%s", logMessagePrefix(m), strings.Join(env, "\n")) } return append(os.Environ(), env...) } func envVar(value string, vars ...string) []string { env := make([]string, 0) for _, v := range vars { env = append(env, fmt.Sprintf("%s=%s", v, value)) } return env } func loadConfig(c *cli.Context) (*client.Config, error) { filename := c.String("config") if filename != "" { return client.LoadConfig(filename) } configFile, err := defaultClientConfigFile() if err != nil { log.Warn("Could not determine default client config file: %s", err.Error()) } else { if s, _ := os.Stat(configFile); s != nil { return client.LoadConfig(configFile) } log.Debug("Config file %s not found", configFile) } log.Debug("Loading default config") return client.NewConfig(), nil } //lint:ignore U1000 Conditionally used in different builds func defaultClientConfigFileUnix() (string, error) { u, err := user.Current() if err != nil { return "", fmt.Errorf("could not determine current user: %w", err) } configFile := clientRootConfigFileUnixAbsolute if u.Uid != "0" { homeDir, err := os.UserConfigDir() if err != nil { return "", fmt.Errorf("could not determine user config dir: %w", err) } return filepath.Join(homeDir, clientUserConfigFileUnixRelative), nil } return configFile, nil } //lint:ignore U1000 Conditionally used in different builds func defaultClientConfigFileWindows() (string, error) { homeDir, err := os.UserConfigDir() if err != nil { return "", fmt.Errorf("could not determine user config dir: %w", err) } return filepath.Join(homeDir, clientUserConfigFileWindowsRelative), nil } func logMessagePrefix(m *client.Message) string { return fmt.Sprintf("%s/%s", util.ShortTopicURL(m.TopicURL), m.ID) } ntfy-2.11.0/cmd/subscribe_darwin.go000066400000000000000000000006741462047176100172110ustar00rootroot00000000000000package cmd const ( scriptExt = "sh" scriptHeader = "#!/bin/sh\n" clientCommandDescriptionSuffix = `The default config file for all client commands is /etc/ntfy/client.yml (if root user), or "~/Library/Application Support/ntfy/client.yml" for all other users.` ) var ( scriptLauncher = []string{"sh", "-c"} ) func defaultClientConfigFile() (string, error) { return defaultClientConfigFileUnix() } ntfy-2.11.0/cmd/subscribe_test.go000066400000000000000000000351631462047176100167050ustar00rootroot00000000000000package cmd import ( "fmt" "github.com/stretchr/testify/require" "net/http" "net/http/httptest" "os" "path/filepath" "strings" "testing" ) func TestCLI_Subscribe_Default_UserPass_Subscription_Token(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-user: philipp default-password: mypass subscribe: - topic: mytopic token: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } func TestCLI_Subscribe_Default_Token_Subscription_UserPass(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "Basic cGhpbGlwcDpteXBhc3M=", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-token: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 subscribe: - topic: mytopic user: philipp password: mypass `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } func TestCLI_Subscribe_Default_Token_Subscription_Token(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-token: tk_FAKETOKEN01234567890FAKETOKEN subscribe: - topic: mytopic token: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } func TestCLI_Subscribe_Default_UserPass_Subscription_UserPass(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "Basic cGhpbGlwcDpteXBhc3M=", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-user: fake default-password: password subscribe: - topic: mytopic user: philipp password: mypass `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } func TestCLI_Subscribe_Default_Token_Subscription_Empty(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-token: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 subscribe: - topic: mytopic `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } func TestCLI_Subscribe_Default_UserPass_Subscription_Empty(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "Basic cGhpbGlwcDpteXBhc3M=", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-user: philipp default-password: mypass subscribe: - topic: mytopic `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } func TestCLI_Subscribe_Default_Empty_Subscription_Token(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s subscribe: - topic: mytopic token: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } func TestCLI_Subscribe_Default_Empty_Subscription_UserPass(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "Basic cGhpbGlwcDpteXBhc3M=", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s subscribe: - topic: mytopic user: philipp password: mypass `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } func TestCLI_Subscribe_Default_Token_CLI_Token(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-token: tk_FAKETOKEN0123456789FAKETOKEN `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename, "--token", "tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", "mytopic"})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } func TestCLI_Subscribe_Default_Token_CLI_UserPass(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "Basic cGhpbGlwcDpteXBhc3M=", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-token: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename, "--user", "philipp:mypass", "mytopic"})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } func TestCLI_Subscribe_Default_Token_Subscription_Token_CLI_UserPass(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-token: tk_FAKETOKEN01234567890FAKETOKEN subscribe: - topic: mytopic token: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename, "--user", "philipp:mypass"})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } func TestCLI_Subscribe_Token_And_UserPass(t *testing.T) { app, _, _, _ := newTestApp() err := app.Run([]string{"ntfy", "subscribe", "--poll", "--token", "tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", "--user", "philipp:mypass", "mytopic", "triggered"}) require.Error(t, err) require.Equal(t, "cannot set both --user and --token", err.Error()) } func TestCLI_Subscribe_Default_Token(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-token: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename, "mytopic"})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } func TestCLI_Subscribe_Default_UserPass(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "Basic cGhpbGlwcDpteXBhc3M=", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-user: philipp default-password: mypass `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename, "mytopic"})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } func TestCLI_Subscribe_Override_Default_UserPass_With_Empty_UserPass(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-user: philipp default-password: mypass subscribe: - topic: mytopic user: "" password: "" `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } func TestCLI_Subscribe_Override_Default_Token_With_Empty_Token(t *testing.T) { message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic/json", r.URL.Path) require.Equal(t, "", r.Header.Get("Authorization")) w.WriteHeader(http.StatusOK) w.Write([]byte(message)) })) defer server.Close() filename := filepath.Join(t.TempDir(), "client.yml") require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` default-host: %s default-token: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 subscribe: - topic: mytopic token: "" `, server.URL)), 0600)) app, _, stdout, _ := newTestApp() require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--from-config", "--config=" + filename})) require.Equal(t, message, strings.TrimSpace(stdout.String())) } ntfy-2.11.0/cmd/subscribe_unix.go000066400000000000000000000007451462047176100167070ustar00rootroot00000000000000//go:build linux || dragonfly || freebsd || netbsd || openbsd package cmd const ( scriptExt = "sh" scriptHeader = "#!/bin/sh\n" clientCommandDescriptionSuffix = `The default config file for all client commands is /etc/ntfy/client.yml (if root user), or ~/.config/ntfy/client.yml for all other users.` ) var ( scriptLauncher = []string{"sh", "-c"} ) func defaultClientConfigFile() (string, error) { return defaultClientConfigFileUnix() } ntfy-2.11.0/cmd/subscribe_windows.go000066400000000000000000000005561462047176100174160ustar00rootroot00000000000000package cmd const ( scriptExt = "bat" scriptHeader = "" clientCommandDescriptionSuffix = `The default config file for all client commands is %AppData%\ntfy\client.yml.` ) var ( scriptLauncher = []string{"cmd.exe", "/Q", "/C"} ) func defaultClientConfigFile() (string, error) { return defaultClientConfigFileWindows() } ntfy-2.11.0/cmd/tier.go000066400000000000000000000340531462047176100146250ustar00rootroot00000000000000//go:build !noserver package cmd import ( "errors" "fmt" "github.com/urfave/cli/v2" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" ) func init() { commands = append(commands, cmdTier) } const ( defaultMessageLimit = 5000 defaultMessageExpiryDuration = "12h" defaultEmailLimit = 20 defaultCallLimit = 0 defaultReservationLimit = 3 defaultAttachmentFileSizeLimit = "15M" defaultAttachmentTotalSizeLimit = "100M" defaultAttachmentExpiryDuration = "6h" defaultAttachmentBandwidthLimit = "1G" ) var ( flagsTier = append([]cli.Flag{}, flagsUser...) ) var cmdTier = &cli.Command{ Name: "tier", Usage: "Manage/show tiers", UsageText: "ntfy tier [list|add|change|remove] ...", Flags: flagsTier, Before: initConfigFileInputSourceFunc("config", flagsUser, initLogFunc), Category: categoryServer, Subcommands: []*cli.Command{ { Name: "add", Aliases: []string{"a"}, Usage: "Adds a new tier", UsageText: "ntfy tier add [OPTIONS] CODE", Action: execTierAdd, Flags: []cli.Flag{ &cli.StringFlag{Name: "name", Usage: "tier name"}, &cli.Int64Flag{Name: "message-limit", Value: defaultMessageLimit, Usage: "daily message limit"}, &cli.StringFlag{Name: "message-expiry-duration", Value: defaultMessageExpiryDuration, Usage: "duration after which messages are deleted"}, &cli.Int64Flag{Name: "email-limit", Value: defaultEmailLimit, Usage: "daily email limit"}, &cli.Int64Flag{Name: "call-limit", Value: defaultCallLimit, Usage: "daily phone call limit"}, &cli.Int64Flag{Name: "reservation-limit", Value: defaultReservationLimit, Usage: "topic reservation limit"}, &cli.StringFlag{Name: "attachment-file-size-limit", Value: defaultAttachmentFileSizeLimit, Usage: "per-attachment file size limit"}, &cli.StringFlag{Name: "attachment-total-size-limit", Value: defaultAttachmentTotalSizeLimit, Usage: "total size limit of attachments for the user"}, &cli.StringFlag{Name: "attachment-expiry-duration", Value: defaultAttachmentExpiryDuration, Usage: "duration after which attachments are deleted"}, &cli.StringFlag{Name: "attachment-bandwidth-limit", Value: defaultAttachmentBandwidthLimit, Usage: "daily bandwidth limit for attachment uploads/downloads"}, &cli.StringFlag{Name: "stripe-monthly-price-id", Usage: "Monthly Stripe price ID for paid tiers (e.g. price_12345)"}, &cli.StringFlag{Name: "stripe-yearly-price-id", Usage: "Yearly Stripe price ID for paid tiers (e.g. price_12345)"}, &cli.BoolFlag{Name: "ignore-exists", Usage: "if the tier already exists, perform no action and exit"}, }, Description: `Add a new tier to the ntfy user database. Tiers can be used to grant users higher limits, such as daily message limits, attachment size, or make it possible for users to reserve topics. This is a server-only command. It directly reads from user.db as defined in the server config file server.yml. The command only works if 'auth-file' is properly defined. Examples: ntfy tier add pro # Add tier with code "pro", using the defaults ntfy tier add \ # Add a tier with custom limits --name="Pro" \ --message-limit=10000 \ --message-expiry-duration=24h \ --email-limit=50 \ --reservation-limit=10 \ --attachment-file-size-limit=100M \ --attachment-total-size-limit=1G \ --attachment-expiry-duration=12h \ --attachment-bandwidth-limit=5G \ pro `, }, { Name: "change", Aliases: []string{"ch"}, Usage: "Change a tier", UsageText: "ntfy tier change [OPTIONS] CODE", Action: execTierChange, Flags: []cli.Flag{ &cli.StringFlag{Name: "name", Usage: "tier name"}, &cli.Int64Flag{Name: "message-limit", Usage: "daily message limit"}, &cli.StringFlag{Name: "message-expiry-duration", Usage: "duration after which messages are deleted"}, &cli.Int64Flag{Name: "email-limit", Usage: "daily email limit"}, &cli.Int64Flag{Name: "call-limit", Usage: "daily phone call limit"}, &cli.Int64Flag{Name: "reservation-limit", Usage: "topic reservation limit"}, &cli.StringFlag{Name: "attachment-file-size-limit", Usage: "per-attachment file size limit"}, &cli.StringFlag{Name: "attachment-total-size-limit", Usage: "total size limit of attachments for the user"}, &cli.StringFlag{Name: "attachment-expiry-duration", Usage: "duration after which attachments are deleted"}, &cli.StringFlag{Name: "attachment-bandwidth-limit", Usage: "daily bandwidth limit for attachment uploads/downloads"}, &cli.StringFlag{Name: "stripe-monthly-price-id", Usage: "Monthly Stripe price ID for paid tiers (e.g. price_12345)"}, &cli.StringFlag{Name: "stripe-yearly-price-id", Usage: "Yearly Stripe price ID for paid tiers (e.g. price_12345)"}, }, Description: `Updates a tier to change the limits. After updating a tier, you may have to restart the ntfy server to apply them to all visitors. This is a server-only command. It directly reads from user.db as defined in the server config file server.yml. The command only works if 'auth-file' is properly defined. Examples: ntfy tier change --name="Pro" pro # Update the name of an existing tier ntfy tier change \ # Update multiple limits and fields --message-expiry-duration=24h \ --stripe-monthly-price-id=price_1234 \ --stripe-monthly-price-id=price_5678 \ pro `, }, { Name: "remove", Aliases: []string{"del", "rm"}, Usage: "Removes a tier", UsageText: "ntfy tier remove CODE", Action: execTierDel, Description: `Remove a tier from the ntfy user database. You cannot remove a tier if there are users associated with a tier. Use "ntfy user change-tier" to remove or switch their tier first. This is a server-only command. It directly reads from user.db as defined in the server config file server.yml. The command only works if 'auth-file' is properly defined. Example: ntfy tier del pro `, }, { Name: "list", Aliases: []string{"l"}, Usage: "Shows a list of tiers", Action: execTierList, Description: `Shows a list of all configured tiers. This is a server-only command. It directly reads from user.db as defined in the server config file server.yml. The command only works if 'auth-file' is properly defined. `, }, }, Description: `Manage tiers of the ntfy server. The command allows you to add/remove/change tiers in the ntfy user database. Tiers are used to grant users higher limits, such as daily message limits, attachment size, or make it possible for users to reserve topics. This is a server-only command. It directly manages the user.db as defined in the server config file server.yml. The command only works if 'auth-file' is properly defined. Examples: ntfy tier add pro # Add tier with code "pro", using the defaults ntfy tier change --name="Pro" pro # Update the name of an existing tier ntfy tier del pro # Delete an existing tier `, } func execTierAdd(c *cli.Context) error { code := c.Args().Get(0) if code == "" { return errors.New("tier code expected, type 'ntfy tier add --help' for help") } else if !user.AllowedTier(code) { return errors.New("tier code must consist only of numbers and letters") } else if c.String("stripe-monthly-price-id") != "" && c.String("stripe-yearly-price-id") == "" { return errors.New("if stripe-monthly-price-id is set, stripe-yearly-price-id must also be set") } else if c.String("stripe-monthly-price-id") == "" && c.String("stripe-yearly-price-id") != "" { return errors.New("if stripe-yearly-price-id is set, stripe-monthly-price-id must also be set") } manager, err := createUserManager(c) if err != nil { return err } if tier, _ := manager.Tier(code); tier != nil { if c.Bool("ignore-exists") { fmt.Fprintf(c.App.ErrWriter, "tier %s already exists (exited successfully)\n", code) return nil } return fmt.Errorf("tier %s already exists", code) } name := c.String("name") if name == "" { name = code } messageExpiryDuration, err := util.ParseDuration(c.String("message-expiry-duration")) if err != nil { return err } attachmentFileSizeLimit, err := util.ParseSize(c.String("attachment-file-size-limit")) if err != nil { return err } attachmentTotalSizeLimit, err := util.ParseSize(c.String("attachment-total-size-limit")) if err != nil { return err } attachmentBandwidthLimit, err := util.ParseSize(c.String("attachment-bandwidth-limit")) if err != nil { return err } attachmentExpiryDuration, err := util.ParseDuration(c.String("attachment-expiry-duration")) if err != nil { return err } tier := &user.Tier{ ID: "", // Generated Code: code, Name: name, MessageLimit: c.Int64("message-limit"), MessageExpiryDuration: messageExpiryDuration, EmailLimit: c.Int64("email-limit"), CallLimit: c.Int64("call-limit"), ReservationLimit: c.Int64("reservation-limit"), AttachmentFileSizeLimit: attachmentFileSizeLimit, AttachmentTotalSizeLimit: attachmentTotalSizeLimit, AttachmentExpiryDuration: attachmentExpiryDuration, AttachmentBandwidthLimit: attachmentBandwidthLimit, StripeMonthlyPriceID: c.String("stripe-monthly-price-id"), StripeYearlyPriceID: c.String("stripe-yearly-price-id"), } if err := manager.AddTier(tier); err != nil { return err } tier, err = manager.Tier(code) if err != nil { return err } fmt.Fprintf(c.App.ErrWriter, "tier added\n\n") printTier(c, tier) return nil } func execTierChange(c *cli.Context) error { code := c.Args().Get(0) if code == "" { return errors.New("tier code expected, type 'ntfy tier change --help' for help") } else if !user.AllowedTier(code) { return errors.New("tier code must consist only of numbers and letters") } manager, err := createUserManager(c) if err != nil { return err } tier, err := manager.Tier(code) if err == user.ErrTierNotFound { return fmt.Errorf("tier %s does not exist", code) } else if err != nil { return err } if c.IsSet("name") { tier.Name = c.String("name") } if c.IsSet("message-limit") { tier.MessageLimit = c.Int64("message-limit") } if c.IsSet("message-expiry-duration") { tier.MessageExpiryDuration, err = util.ParseDuration(c.String("message-expiry-duration")) if err != nil { return err } } if c.IsSet("email-limit") { tier.EmailLimit = c.Int64("email-limit") } if c.IsSet("call-limit") { tier.CallLimit = c.Int64("call-limit") } if c.IsSet("reservation-limit") { tier.ReservationLimit = c.Int64("reservation-limit") } if c.IsSet("attachment-file-size-limit") { tier.AttachmentFileSizeLimit, err = util.ParseSize(c.String("attachment-file-size-limit")) if err != nil { return err } } if c.IsSet("attachment-total-size-limit") { tier.AttachmentTotalSizeLimit, err = util.ParseSize(c.String("attachment-total-size-limit")) if err != nil { return err } } if c.IsSet("attachment-expiry-duration") { tier.AttachmentExpiryDuration, err = util.ParseDuration(c.String("attachment-expiry-duration")) if err != nil { return err } } if c.IsSet("attachment-bandwidth-limit") { tier.AttachmentBandwidthLimit, err = util.ParseSize(c.String("attachment-bandwidth-limit")) if err != nil { return err } } if c.IsSet("stripe-monthly-price-id") { tier.StripeMonthlyPriceID = c.String("stripe-monthly-price-id") } if c.IsSet("stripe-yearly-price-id") { tier.StripeYearlyPriceID = c.String("stripe-yearly-price-id") } if tier.StripeMonthlyPriceID != "" && tier.StripeYearlyPriceID == "" { return errors.New("if stripe-monthly-price-id is set, stripe-yearly-price-id must also be set") } else if tier.StripeMonthlyPriceID == "" && tier.StripeYearlyPriceID != "" { return errors.New("if stripe-yearly-price-id is set, stripe-monthly-price-id must also be set") } if err := manager.UpdateTier(tier); err != nil { return err } fmt.Fprintf(c.App.ErrWriter, "tier updated\n\n") printTier(c, tier) return nil } func execTierDel(c *cli.Context) error { code := c.Args().Get(0) if code == "" { return errors.New("tier code expected, type 'ntfy tier del --help' for help") } manager, err := createUserManager(c) if err != nil { return err } if _, err := manager.Tier(code); err == user.ErrTierNotFound { return fmt.Errorf("tier %s does not exist", code) } if err := manager.RemoveTier(code); err != nil { return err } fmt.Fprintf(c.App.ErrWriter, "tier %s removed\n", code) return nil } func execTierList(c *cli.Context) error { manager, err := createUserManager(c) if err != nil { return err } tiers, err := manager.Tiers() if err != nil { return err } for _, tier := range tiers { printTier(c, tier) } return nil } func printTier(c *cli.Context, tier *user.Tier) { prices := "(none)" if tier.StripeMonthlyPriceID != "" && tier.StripeYearlyPriceID != "" { prices = fmt.Sprintf("%s / %s", tier.StripeMonthlyPriceID, tier.StripeYearlyPriceID) } fmt.Fprintf(c.App.ErrWriter, "tier %s (id: %s)\n", tier.Code, tier.ID) fmt.Fprintf(c.App.ErrWriter, "- Name: %s\n", tier.Name) fmt.Fprintf(c.App.ErrWriter, "- Message limit: %d\n", tier.MessageLimit) fmt.Fprintf(c.App.ErrWriter, "- Message expiry duration: %s (%d seconds)\n", tier.MessageExpiryDuration.String(), int64(tier.MessageExpiryDuration.Seconds())) fmt.Fprintf(c.App.ErrWriter, "- Email limit: %d\n", tier.EmailLimit) fmt.Fprintf(c.App.ErrWriter, "- Phone call limit: %d\n", tier.CallLimit) fmt.Fprintf(c.App.ErrWriter, "- Reservation limit: %d\n", tier.ReservationLimit) fmt.Fprintf(c.App.ErrWriter, "- Attachment file size limit: %s\n", util.FormatSizeHuman(tier.AttachmentFileSizeLimit)) fmt.Fprintf(c.App.ErrWriter, "- Attachment total size limit: %s\n", util.FormatSizeHuman(tier.AttachmentTotalSizeLimit)) fmt.Fprintf(c.App.ErrWriter, "- Attachment expiry duration: %s (%d seconds)\n", tier.AttachmentExpiryDuration.String(), int64(tier.AttachmentExpiryDuration.Seconds())) fmt.Fprintf(c.App.ErrWriter, "- Attachment daily bandwidth limit: %s\n", util.FormatSizeHuman(tier.AttachmentBandwidthLimit)) fmt.Fprintf(c.App.ErrWriter, "- Stripe prices (monthly/yearly): %s\n", prices) } ntfy-2.11.0/cmd/tier_test.go000066400000000000000000000046121462047176100156620ustar00rootroot00000000000000package cmd import ( "github.com/stretchr/testify/require" "github.com/urfave/cli/v2" "heckel.io/ntfy/v2/server" "heckel.io/ntfy/v2/test" "testing" ) func TestCLI_Tier_AddListChangeDelete(t *testing.T) { s, conf, port := newTestServerWithAuth(t) defer test.StopServer(t, s, port) app, _, _, stderr := newTestApp() require.Nil(t, runTierCommand(app, conf, "add", "--name", "Pro", "--message-limit", "1234", "pro")) require.Contains(t, stderr.String(), "tier added\n\ntier pro (id: ti_") err := runTierCommand(app, conf, "add", "pro") require.NotNil(t, err) require.Equal(t, "tier pro already exists", err.Error()) app, _, _, stderr = newTestApp() require.Nil(t, runTierCommand(app, conf, "list")) require.Contains(t, stderr.String(), "tier pro (id: ti_") require.Contains(t, stderr.String(), "- Name: Pro") require.Contains(t, stderr.String(), "- Message limit: 1234") app, _, _, stderr = newTestApp() require.Nil(t, runTierCommand(app, conf, "change", "--message-limit=999", "--message-expiry-duration=2d", "--email-limit=91", "--reservation-limit=98", "--attachment-file-size-limit=100m", "--attachment-expiry-duration=1d", "--attachment-total-size-limit=10G", "--attachment-bandwidth-limit=100G", "--stripe-monthly-price-id=price_991", "--stripe-yearly-price-id=price_992", "pro", )) require.Contains(t, stderr.String(), "- Message limit: 999") require.Contains(t, stderr.String(), "- Message expiry duration: 48h") require.Contains(t, stderr.String(), "- Email limit: 91") require.Contains(t, stderr.String(), "- Reservation limit: 98") require.Contains(t, stderr.String(), "- Attachment file size limit: 100.0 MB") require.Contains(t, stderr.String(), "- Attachment expiry duration: 24h") require.Contains(t, stderr.String(), "- Attachment total size limit: 10.0 GB") require.Contains(t, stderr.String(), "- Stripe prices (monthly/yearly): price_991 / price_992") app, _, _, stderr = newTestApp() require.Nil(t, runTierCommand(app, conf, "remove", "pro")) require.Contains(t, stderr.String(), "tier pro removed") } func runTierCommand(app *cli.App, conf *server.Config, args ...string) error { userArgs := []string{ "ntfy", "--log-level=ERROR", "tier", "--config=" + conf.File, // Dummy config file to avoid lookups of real file "--auth-file=" + conf.AuthFile, "--auth-default-access=" + conf.AuthDefault.String(), } return app.Run(append(userArgs, args...)) } ntfy-2.11.0/cmd/token.go000066400000000000000000000152141462047176100150000ustar00rootroot00000000000000//go:build !noserver package cmd import ( "errors" "fmt" "github.com/urfave/cli/v2" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" "net/netip" "time" ) func init() { commands = append(commands, cmdToken) } var flagsToken = append([]cli.Flag{}, flagsUser...) var cmdToken = &cli.Command{ Name: "token", Usage: "Create, list or delete user tokens", UsageText: "ntfy token [list|add|remove] ...", Flags: flagsToken, Before: initConfigFileInputSourceFunc("config", flagsToken, initLogFunc), Category: categoryServer, Subcommands: []*cli.Command{ { Name: "add", Aliases: []string{"a"}, Usage: "Create a new token", UsageText: "ntfy token add [--expires=] [--label=..] USERNAME", Action: execTokenAdd, Flags: []cli.Flag{ &cli.StringFlag{Name: "expires", Aliases: []string{"e"}, Value: "", Usage: "token expires after"}, &cli.StringFlag{Name: "label", Aliases: []string{"l"}, Value: "", Usage: "token label"}, }, Description: `Create a new user access token. User access tokens can be used to publish, subscribe, or perform any other user-specific tasks. Tokens have full access, and can perform any task a user can do. They are meant to be used to avoid spreading the password to various places. This is a server-only command. It directly reads from user.db as defined in the server config file server.yml. The command only works if 'auth-file' is properly defined. Examples: ntfy token add phil # Create token for user phil which never expires ntfy token add --expires=2d phil # Create token for user phil which expires in 2 days ntfy token add -e "tuesday, 8pm" phil # Create token for user phil which expires next Tuesday ntfy token add -l backups phil # Create token for user phil with label "backups"`, }, { Name: "remove", Aliases: []string{"del", "rm"}, Usage: "Removes a token", UsageText: "ntfy token remove USERNAME TOKEN", Action: execTokenDel, Description: `Remove a token from the ntfy user database. Example: ntfy token del phil tk_th2srHVlxrANQHAso5t0HuQ1J1TjN`, }, { Name: "list", Aliases: []string{"l"}, Usage: "Shows a list of tokens", Action: execTokenList, Description: `Shows a list of all tokens. This is a server-only command. It directly reads from user.db as defined in the server config file server.yml. The command only works if 'auth-file' is properly defined.`, }, }, Description: `Manage access tokens for individual users. User access tokens can be used to publish, subscribe, or perform any other user-specific tasks. Tokens have full access, and can perform any task a user can do. They are meant to be used to avoid spreading the password to various places. This is a server-only command. It directly manages the user.db as defined in the server config file server.yml. The command only works if 'auth-file' is properly defined. Examples: ntfy token list # Shows list of tokens for all users ntfy token list phil # Shows list of tokens for user phil ntfy token add phil # Create token for user phil which never expires ntfy token add --expires=2d phil # Create token for user phil which expires in 2 days ntfy token remove phil tk_th2srHVlxr... # Delete token`, } func execTokenAdd(c *cli.Context) error { username := c.Args().Get(0) expiresStr := c.String("expires") label := c.String("label") if username == "" { return errors.New("username expected, type 'ntfy token add --help' for help") } else if username == userEveryone || username == user.Everyone { return errors.New("username not allowed") } expires := time.Unix(0, 0) if expiresStr != "" { var err error expires, err = util.ParseFutureTime(expiresStr, time.Now()) if err != nil { return err } } manager, err := createUserManager(c) if err != nil { return err } u, err := manager.User(username) if err == user.ErrUserNotFound { return fmt.Errorf("user %s does not exist", username) } else if err != nil { return err } token, err := manager.CreateToken(u.ID, label, expires, netip.IPv4Unspecified()) if err != nil { return err } if expires.Unix() == 0 { fmt.Fprintf(c.App.ErrWriter, "token %s created for user %s, never expires\n", token.Value, u.Name) } else { fmt.Fprintf(c.App.ErrWriter, "token %s created for user %s, expires %v\n", token.Value, u.Name, expires.Format(time.UnixDate)) } return nil } func execTokenDel(c *cli.Context) error { username, token := c.Args().Get(0), c.Args().Get(1) if username == "" || token == "" { return errors.New("username and token expected, type 'ntfy token remove --help' for help") } else if username == userEveryone || username == user.Everyone { return errors.New("username not allowed") } manager, err := createUserManager(c) if err != nil { return err } u, err := manager.User(username) if err == user.ErrUserNotFound { return fmt.Errorf("user %s does not exist", username) } else if err != nil { return err } if err := manager.RemoveToken(u.ID, token); err != nil { return err } fmt.Fprintf(c.App.ErrWriter, "token %s for user %s removed\n", token, username) return nil } func execTokenList(c *cli.Context) error { username := c.Args().Get(0) if username == userEveryone || username == user.Everyone { return errors.New("username not allowed") } manager, err := createUserManager(c) if err != nil { return err } var users []*user.User if username != "" { u, err := manager.User(username) if err == user.ErrUserNotFound { return fmt.Errorf("user %s does not exist", username) } else if err != nil { return err } users = append(users, u) } else { users, err = manager.Users() if err != nil { return err } } usersWithTokens := 0 for _, u := range users { tokens, err := manager.Tokens(u.ID) if err != nil { return err } else if len(tokens) == 0 && username != "" { fmt.Fprintf(c.App.ErrWriter, "user %s has no access tokens\n", username) return nil } else if len(tokens) == 0 { continue } usersWithTokens++ fmt.Fprintf(c.App.ErrWriter, "user %s\n", u.Name) for _, t := range tokens { var label, expires string if t.Label != "" { label = fmt.Sprintf(" (%s)", t.Label) } if t.Expires.Unix() == 0 { expires = "never expires" } else { expires = fmt.Sprintf("expires %s", t.Expires.Format(time.RFC822)) } fmt.Fprintf(c.App.ErrWriter, "- %s%s, %s, accessed from %s at %s\n", t.Value, label, expires, t.LastOrigin.String(), t.LastAccess.Format(time.RFC822)) } } if usersWithTokens == 0 { fmt.Fprintf(c.App.ErrWriter, "no users with tokens\n") } return nil } ntfy-2.11.0/cmd/token_test.go000066400000000000000000000031201462047176100160300ustar00rootroot00000000000000package cmd import ( "fmt" "github.com/stretchr/testify/require" "github.com/urfave/cli/v2" "heckel.io/ntfy/v2/server" "heckel.io/ntfy/v2/test" "regexp" "testing" ) func TestCLI_Token_AddListRemove(t *testing.T) { s, conf, port := newTestServerWithAuth(t) defer test.StopServer(t, s, port) app, stdin, _, stderr := newTestApp() stdin.WriteString("mypass\nmypass") require.Nil(t, runUserCommand(app, conf, "add", "phil")) require.Contains(t, stderr.String(), "user phil added with role user") app, _, _, stderr = newTestApp() require.Nil(t, runTokenCommand(app, conf, "add", "phil")) require.Regexp(t, `token tk_.+ created for user phil, never expires`, stderr.String()) app, _, _, stderr = newTestApp() require.Nil(t, runTokenCommand(app, conf, "list", "phil")) require.Regexp(t, `user phil\n- tk_.+, never expires, accessed from 0.0.0.0 at .+`, stderr.String()) re := regexp.MustCompile(`tk_\w+`) token := re.FindString(stderr.String()) app, _, _, stderr = newTestApp() require.Nil(t, runTokenCommand(app, conf, "remove", "phil", token)) require.Regexp(t, fmt.Sprintf("token %s for user phil removed", token), stderr.String()) app, _, _, stderr = newTestApp() require.Nil(t, runTokenCommand(app, conf, "list")) require.Equal(t, "no users with tokens\n", stderr.String()) } func runTokenCommand(app *cli.App, conf *server.Config, args ...string) error { userArgs := []string{ "ntfy", "--log-level=ERROR", "token", "--config=" + conf.File, // Dummy config file to avoid lookups of real file "--auth-file=" + conf.AuthFile, } return app.Run(append(userArgs, args...)) } ntfy-2.11.0/cmd/user.go000066400000000000000000000303161462047176100146360ustar00rootroot00000000000000//go:build !noserver package cmd import ( "crypto/subtle" "errors" "fmt" "heckel.io/ntfy/v2/user" "os" "strings" "github.com/urfave/cli/v2" "github.com/urfave/cli/v2/altsrc" "heckel.io/ntfy/v2/util" ) const ( tierReset = "-" ) func init() { commands = append(commands, cmdUser) } var flagsUser = append( append([]cli.Flag{}, flagsDefault...), &cli.StringFlag{Name: "config", Aliases: []string{"c"}, EnvVars: []string{"NTFY_CONFIG_FILE"}, Value: defaultServerConfigFile, DefaultText: defaultServerConfigFile, Usage: "config file"}, altsrc.NewStringFlag(&cli.StringFlag{Name: "auth-file", Aliases: []string{"auth_file", "H"}, EnvVars: []string{"NTFY_AUTH_FILE"}, Usage: "auth database file used for access control"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "auth-default-access", Aliases: []string{"auth_default_access", "p"}, EnvVars: []string{"NTFY_AUTH_DEFAULT_ACCESS"}, Value: "read-write", Usage: "default permissions if no matching entries in the auth database are found"}), ) var cmdUser = &cli.Command{ Name: "user", Usage: "Manage/show users", UsageText: "ntfy user [list|add|remove|change-pass|change-role] ...", Flags: flagsUser, Before: initConfigFileInputSourceFunc("config", flagsUser, initLogFunc), Category: categoryServer, Subcommands: []*cli.Command{ { Name: "add", Aliases: []string{"a"}, Usage: "Adds a new user", UsageText: "ntfy user add [--role=admin|user] USERNAME\nNTFY_PASSWORD=... ntfy user add [--role=admin|user] USERNAME", Action: execUserAdd, Flags: []cli.Flag{ &cli.StringFlag{Name: "role", Aliases: []string{"r"}, Value: string(user.RoleUser), Usage: "user role"}, &cli.BoolFlag{Name: "ignore-exists", Usage: "if the user already exists, perform no action and exit"}, }, Description: `Add a new user to the ntfy user database. A user can be either a regular user, or an admin. A regular user has no read or write access (unless granted otherwise by the auth-default-access setting). An admin user has read and write access to all topics. Examples: ntfy user add phil # Add regular user phil ntfy user add --role=admin phil # Add admin user phil NTFY_PASSWORD=... ntfy user add phil # Add user, using env variable to set password (for scripts) You may set the NTFY_PASSWORD environment variable to pass the password. This is useful if you are creating users via scripts. `, }, { Name: "remove", Aliases: []string{"del", "rm"}, Usage: "Removes a user", UsageText: "ntfy user remove USERNAME", Action: execUserDel, Description: `Remove a user from the ntfy user database. Example: ntfy user del phil `, }, { Name: "change-pass", Aliases: []string{"chp"}, Usage: "Changes a user's password", UsageText: "ntfy user change-pass USERNAME\nNTFY_PASSWORD=... ntfy user change-pass USERNAME", Action: execUserChangePass, Description: `Change the password for the given user. The new password will be read from STDIN, and it'll be confirmed by typing it twice. Example: ntfy user change-pass phil NTFY_PASSWORD=.. ntfy user change-pass phil You may set the NTFY_PASSWORD environment variable to pass the new password. This is useful if you are updating users via scripts. `, }, { Name: "change-role", Aliases: []string{"chr"}, Usage: "Changes the role of a user", UsageText: "ntfy user change-role USERNAME ROLE", Action: execUserChangeRole, Description: `Change the role for the given user to admin or user. This command can be used to change the role of a user either from a regular user to an admin user, or the other way around: - admin: an admin has read/write access to all topics - user: a regular user only has access to what was explicitly granted via 'ntfy access' When changing the role of a user to "admin", all access control entries for that user are removed, since they are no longer necessary. Example: ntfy user change-role phil admin # Make user phil an admin ntfy user change-role phil user # Remove admin role from user phil `, }, { Name: "change-tier", Aliases: []string{"cht"}, Usage: "Changes the tier of a user", UsageText: "ntfy user change-tier USERNAME (TIER|-)", Action: execUserChangeTier, Description: `Change the tier for the given user. This command can be used to change the tier of a user. Tiers define usage limits, such as messages per day, attachment file sizes, etc. Example: ntfy user change-tier phil pro # Change tier to "pro" for user "phil" ntfy user change-tier phil - # Remove tier from user "phil" entirely `, }, { Name: "list", Aliases: []string{"l"}, Usage: "Shows a list of users", Action: execUserList, Description: `Shows a list of all configured users, including the everyone ('*') user. This command is an alias to calling 'ntfy access' (display access control list). This is a server-only command. It directly reads from user.db as defined in the server config file server.yml. The command only works if 'auth-file' is properly defined. `, }, }, Description: `Manage users of the ntfy server. The command allows you to add/remove/change users in the ntfy user database, as well as change passwords or roles. This is a server-only command. It directly manages the user.db as defined in the server config file server.yml. The command only works if 'auth-file' is properly defined. Please also refer to the related command 'ntfy access'. Examples: ntfy user list # Shows list of users (alias: 'ntfy access') ntfy user add phil # Add regular user phil NTFY_PASSWORD=... ntfy user add phil # As above, using env variable to set password (for scripts) ntfy user add --role=admin phil # Add admin user phil ntfy user del phil # Delete user phil ntfy user change-pass phil # Change password for user phil NTFY_PASSWORD=.. ntfy user change-pass phil # As above, using env variable to set password (for scripts) ntfy user change-role phil admin # Make user phil an admin For the 'ntfy user add' and 'ntfy user change-pass' commands, you may set the NTFY_PASSWORD environment variable to pass the new password. This is useful if you are creating/updating users via scripts. `, } func execUserAdd(c *cli.Context) error { username := c.Args().Get(0) role := user.Role(c.String("role")) password := os.Getenv("NTFY_PASSWORD") if username == "" { return errors.New("username expected, type 'ntfy user add --help' for help") } else if username == userEveryone || username == user.Everyone { return errors.New("username not allowed") } else if !user.AllowedRole(role) { return errors.New("role must be either 'user' or 'admin'") } manager, err := createUserManager(c) if err != nil { return err } if user, _ := manager.User(username); user != nil { if c.Bool("ignore-exists") { fmt.Fprintf(c.App.ErrWriter, "user %s already exists (exited successfully)\n", username) return nil } return fmt.Errorf("user %s already exists", username) } if password == "" { p, err := readPasswordAndConfirm(c) if err != nil { return err } password = p } if err := manager.AddUser(username, password, role); err != nil { return err } fmt.Fprintf(c.App.ErrWriter, "user %s added with role %s\n", username, role) return nil } func execUserDel(c *cli.Context) error { username := c.Args().Get(0) if username == "" { return errors.New("username expected, type 'ntfy user del --help' for help") } else if username == userEveryone || username == user.Everyone { return errors.New("username not allowed") } manager, err := createUserManager(c) if err != nil { return err } if _, err := manager.User(username); err == user.ErrUserNotFound { return fmt.Errorf("user %s does not exist", username) } if err := manager.RemoveUser(username); err != nil { return err } fmt.Fprintf(c.App.ErrWriter, "user %s removed\n", username) return nil } func execUserChangePass(c *cli.Context) error { username := c.Args().Get(0) password := os.Getenv("NTFY_PASSWORD") if username == "" { return errors.New("username expected, type 'ntfy user change-pass --help' for help") } else if username == userEveryone || username == user.Everyone { return errors.New("username not allowed") } manager, err := createUserManager(c) if err != nil { return err } if _, err := manager.User(username); err == user.ErrUserNotFound { return fmt.Errorf("user %s does not exist", username) } if password == "" { password, err = readPasswordAndConfirm(c) if err != nil { return err } } if err := manager.ChangePassword(username, password); err != nil { return err } fmt.Fprintf(c.App.ErrWriter, "changed password for user %s\n", username) return nil } func execUserChangeRole(c *cli.Context) error { username := c.Args().Get(0) role := user.Role(c.Args().Get(1)) if username == "" || !user.AllowedRole(role) { return errors.New("username and new role expected, type 'ntfy user change-role --help' for help") } else if username == userEveryone || username == user.Everyone { return errors.New("username not allowed") } manager, err := createUserManager(c) if err != nil { return err } if _, err := manager.User(username); err == user.ErrUserNotFound { return fmt.Errorf("user %s does not exist", username) } if err := manager.ChangeRole(username, role); err != nil { return err } fmt.Fprintf(c.App.ErrWriter, "changed role for user %s to %s\n", username, role) return nil } func execUserChangeTier(c *cli.Context) error { username := c.Args().Get(0) tier := c.Args().Get(1) if username == "" { return errors.New("username and new tier expected, type 'ntfy user change-tier --help' for help") } else if !user.AllowedTier(tier) && tier != tierReset { return errors.New("invalid tier, must be tier code, or - to reset") } else if username == userEveryone || username == user.Everyone { return errors.New("username not allowed") } manager, err := createUserManager(c) if err != nil { return err } if _, err := manager.User(username); err == user.ErrUserNotFound { return fmt.Errorf("user %s does not exist", username) } if tier == tierReset { if err := manager.ResetTier(username); err != nil { return err } fmt.Fprintf(c.App.ErrWriter, "removed tier from user %s\n", username) } else { if err := manager.ChangeTier(username, tier); err != nil { return err } fmt.Fprintf(c.App.ErrWriter, "changed tier for user %s to %s\n", username, tier) } return nil } func execUserList(c *cli.Context) error { manager, err := createUserManager(c) if err != nil { return err } users, err := manager.Users() if err != nil { return err } return showUsers(c, manager, users) } func createUserManager(c *cli.Context) (*user.Manager, error) { authFile := c.String("auth-file") authStartupQueries := c.String("auth-startup-queries") authDefaultAccess := c.String("auth-default-access") if authFile == "" { return nil, errors.New("option auth-file not set; auth is unconfigured for this server") } else if !util.FileExists(authFile) { return nil, errors.New("auth-file does not exist; please start the server at least once to create it") } authDefault, err := user.ParsePermission(authDefaultAccess) if err != nil { return nil, errors.New("if set, auth-default-access must start set to 'read-write', 'read-only', 'write-only' or 'deny-all'") } return user.NewManager(authFile, authStartupQueries, authDefault, user.DefaultUserPasswordBcryptCost, user.DefaultUserStatsQueueWriterInterval) } func readPasswordAndConfirm(c *cli.Context) (string, error) { fmt.Fprint(c.App.ErrWriter, "password: ") password, err := util.ReadPassword(c.App.Reader) if err != nil { return "", err } else if len(password) == 0 { return "", errors.New("password cannot be empty") } fmt.Fprintf(c.App.ErrWriter, "\r%s\rconfirm: ", strings.Repeat(" ", 25)) confirm, err := util.ReadPassword(c.App.Reader) if err != nil { return "", err } fmt.Fprintf(c.App.ErrWriter, "\r%s\r", strings.Repeat(" ", 25)) if subtle.ConstantTimeCompare(confirm, password) != 1 { return "", errors.New("passwords do not match: try it again, but this time type slooowwwlly") } return string(password), nil } ntfy-2.11.0/cmd/user_test.go000066400000000000000000000106071462047176100156760ustar00rootroot00000000000000package cmd import ( "github.com/stretchr/testify/require" "github.com/urfave/cli/v2" "heckel.io/ntfy/v2/server" "heckel.io/ntfy/v2/test" "heckel.io/ntfy/v2/user" "os" "path/filepath" "testing" ) func TestCLI_User_Add(t *testing.T) { s, conf, port := newTestServerWithAuth(t) defer test.StopServer(t, s, port) app, stdin, _, stderr := newTestApp() stdin.WriteString("mypass\nmypass") require.Nil(t, runUserCommand(app, conf, "add", "phil")) require.Contains(t, stderr.String(), "user phil added with role user") } func TestCLI_User_Add_Exists(t *testing.T) { s, conf, port := newTestServerWithAuth(t) defer test.StopServer(t, s, port) app, stdin, _, stderr := newTestApp() stdin.WriteString("mypass\nmypass") require.Nil(t, runUserCommand(app, conf, "add", "phil")) require.Contains(t, stderr.String(), "user phil added with role user") app, stdin, _, _ = newTestApp() stdin.WriteString("mypass\nmypass") err := runUserCommand(app, conf, "add", "phil") require.Error(t, err) require.Contains(t, err.Error(), "user phil already exists") } func TestCLI_User_Add_Admin(t *testing.T) { s, conf, port := newTestServerWithAuth(t) defer test.StopServer(t, s, port) app, stdin, _, stderr := newTestApp() stdin.WriteString("mypass\nmypass") require.Nil(t, runUserCommand(app, conf, "add", "--role=admin", "phil")) require.Contains(t, stderr.String(), "user phil added with role admin") } func TestCLI_User_Add_Password_Mismatch(t *testing.T) { s, conf, port := newTestServerWithAuth(t) defer test.StopServer(t, s, port) app, stdin, _, _ := newTestApp() stdin.WriteString("mypass\nNOTMATCH") err := runUserCommand(app, conf, "add", "phil") require.Error(t, err) require.Contains(t, err.Error(), "passwords do not match: try it again, but this time type slooowwwlly") } func TestCLI_User_ChangePass(t *testing.T) { s, conf, port := newTestServerWithAuth(t) defer test.StopServer(t, s, port) // Add user app, stdin, _, stderr := newTestApp() stdin.WriteString("mypass\nmypass") require.Nil(t, runUserCommand(app, conf, "add", "phil")) require.Contains(t, stderr.String(), "user phil added with role user") // Change pass app, stdin, _, stderr = newTestApp() stdin.WriteString("newpass\nnewpass") require.Nil(t, runUserCommand(app, conf, "change-pass", "phil")) require.Contains(t, stderr.String(), "changed password for user phil") } func TestCLI_User_ChangeRole(t *testing.T) { s, conf, port := newTestServerWithAuth(t) defer test.StopServer(t, s, port) // Add user app, stdin, _, stderr := newTestApp() stdin.WriteString("mypass\nmypass") require.Nil(t, runUserCommand(app, conf, "add", "phil")) require.Contains(t, stderr.String(), "user phil added with role user") // Change role app, _, _, stderr = newTestApp() require.Nil(t, runUserCommand(app, conf, "change-role", "phil", "admin")) require.Contains(t, stderr.String(), "changed role for user phil to admin") } func TestCLI_User_Delete(t *testing.T) { s, conf, port := newTestServerWithAuth(t) defer test.StopServer(t, s, port) // Add user app, stdin, _, stderr := newTestApp() stdin.WriteString("mypass\nmypass") require.Nil(t, runUserCommand(app, conf, "add", "phil")) require.Contains(t, stderr.String(), "user phil added with role user") // Delete user app, _, _, stderr = newTestApp() require.Nil(t, runUserCommand(app, conf, "del", "phil")) require.Contains(t, stderr.String(), "user phil removed") // Delete user again (does not exist) app, _, _, _ = newTestApp() err := runUserCommand(app, conf, "del", "phil") require.Error(t, err) require.Contains(t, err.Error(), "user phil does not exist") } func newTestServerWithAuth(t *testing.T) (s *server.Server, conf *server.Config, port int) { configFile := filepath.Join(t.TempDir(), "server-dummy.yml") require.Nil(t, os.WriteFile(configFile, []byte(""), 0600)) // Dummy config file to avoid lookup of real server.yml conf = server.NewConfig() conf.File = configFile conf.AuthFile = filepath.Join(t.TempDir(), "user.db") conf.AuthDefault = user.PermissionDenyAll s, port = test.StartServerWithConfig(t, conf) return } func runUserCommand(app *cli.App, conf *server.Config, args ...string) error { userArgs := []string{ "ntfy", "--log-level=ERROR", "user", "--config=" + conf.File, // Dummy config file to avoid lookups of real file "--auth-file=" + conf.AuthFile, "--auth-default-access=" + conf.AuthDefault.String(), } return app.Run(append(userArgs, args...)) } ntfy-2.11.0/cmd/webpush.go000066400000000000000000000021371462047176100153350ustar00rootroot00000000000000//go:build !noserver package cmd import ( "fmt" "github.com/SherClockHolmes/webpush-go" "github.com/urfave/cli/v2" ) func init() { commands = append(commands, cmdWebPush) } var cmdWebPush = &cli.Command{ Name: "webpush", Usage: "Generate keys, in the future manage web push subscriptions", UsageText: "ntfy webpush [keys]", Category: categoryServer, Subcommands: []*cli.Command{ { Action: generateWebPushKeys, Name: "keys", Usage: "Generate VAPID keys to enable browser background push notifications", UsageText: "ntfy webpush keys", Category: categoryServer, }, }, } func generateWebPushKeys(c *cli.Context) error { privateKey, publicKey, err := webpush.GenerateVAPIDKeys() if err != nil { return err } _, err = fmt.Fprintf(c.App.ErrWriter, `Web Push keys generated. Add the following lines to your config file: web-push-public-key: %s web-push-private-key: %s web-push-file: /var/cache/ntfy/webpush.db # or similar web-push-email-address: See https://ntfy.sh/docs/config/#web-push for details. `, publicKey, privateKey) return err } ntfy-2.11.0/cmd/webpush_test.go000066400000000000000000000010571462047176100163740ustar00rootroot00000000000000package cmd import ( "testing" "github.com/stretchr/testify/require" "github.com/urfave/cli/v2" "heckel.io/ntfy/v2/server" ) func TestCLI_WebPush_GenerateKeys(t *testing.T) { app, _, _, stderr := newTestApp() require.Nil(t, runWebPushCommand(app, server.NewConfig(), "keys")) require.Contains(t, stderr.String(), "Web Push keys generated.") } func runWebPushCommand(app *cli.App, conf *server.Config, args ...string) error { webPushArgs := []string{ "ntfy", "--log-level=ERROR", "webpush", } return app.Run(append(webPushArgs, args...)) } ntfy-2.11.0/docker-compose.yml000066400000000000000000000006101462047176100162150ustar00rootroot00000000000000version: "2.1" services: ntfy: image: binwiederhier/ntfy container_name: ntfy command: - serve environment: - TZ=UTC # optional: Change to your desired timezone user: UID:GID # optional: Set custom user/group or uid/gid volumes: - /var/cache/ntfy:/var/cache/ntfy - /etc/ntfy:/etc/ntfy ports: - 80:80 restart: unless-stopped ntfy-2.11.0/docs/000077500000000000000000000000001462047176100135135ustar00rootroot00000000000000ntfy-2.11.0/docs/_overrides/000077500000000000000000000000001462047176100156545ustar00rootroot00000000000000ntfy-2.11.0/docs/_overrides/main.html000066400000000000000000000042411462047176100174670ustar00rootroot00000000000000{% extends "base.html" %} {% block announce %} If you like ntfy, please consider sponsoring me via GitHub Sponsors or Liberapay , or subscribing to ntfy Pro. {% endblock %} ntfy-2.11.0/docs/config.md000066400000000000000000003152571462047176100153170ustar00rootroot00000000000000# Configuring the ntfy server The ntfy server can be configured in three ways: using a config file (typically at `/etc/ntfy/server.yml`, see [server.yml](https://github.com/binwiederhier/ntfy/blob/main/server/server.yml)), via command line arguments or using environment variables. ## Quick start By default, simply running `ntfy serve` will start the server at port 80. No configuration needed. Batteries included 😀. If everything works as it should, you'll see something like this: ``` $ ntfy serve 2021/11/30 19:59:08 Listening on :80 ``` You can immediately start [publishing messages](publish.md), or subscribe via the [Android app](subscribe/phone.md), [the web UI](subscribe/web.md), or simply via [curl or your favorite HTTP client](subscribe/api.md). To configure the server further, check out the [config options table](#config-options) or simply type `ntfy serve --help` to get a list of [command line options](#command-line-options). ## Example config !!! info Definitely check out the **[server.yml](https://github.com/binwiederhier/ntfy/blob/main/server/server.yml)** file. It contains examples and detailed descriptions of all the settings. The most basic settings are `base-url` (the external URL of the ntfy server), the HTTP/HTTPS listen address (`listen-http` and `listen-https`), and socket path (`listen-unix`). All the other things are additional features. Here are a few working sample configs using a `/etc/ntfy/server.yml` file: === "server.yml (HTTP-only, with cache + attachments)" ``` yaml base-url: "http://ntfy.example.com" cache-file: "/var/cache/ntfy/cache.db" attachment-cache-dir: "/var/cache/ntfy/attachments" ``` === "server.yml (HTTP+HTTPS, with cache + attachments)" ``` yaml base-url: "http://ntfy.example.com" listen-http: ":80" listen-https: ":443" key-file: "/etc/letsencrypt/live/ntfy.example.com.key" cert-file: "/etc/letsencrypt/live/ntfy.example.com.crt" cache-file: "/var/cache/ntfy/cache.db" attachment-cache-dir: "/var/cache/ntfy/attachments" ``` === "server.yml (behind proxy, with cache + attachments)" ``` yaml base-url: "http://ntfy.example.com" listen-http: ":2586" cache-file: "/var/cache/ntfy/cache.db" attachment-cache-dir: "/var/cache/ntfy/attachments" ``` === "server.yml (ntfy.sh config)" ``` yaml # All the things: Behind a proxy, Firebase, cache, attachments, # SMTP publishing & receiving base-url: "https://ntfy.sh" listen-http: "127.0.0.1:2586" firebase-key-file: "/etc/ntfy/firebase.json" cache-file: "/var/cache/ntfy/cache.db" behind-proxy: true attachment-cache-dir: "/var/cache/ntfy/attachments" smtp-sender-addr: "email-smtp.us-east-2.amazonaws.com:587" smtp-sender-user: "AKIDEADBEEFAFFE12345" smtp-sender-pass: "Abd13Kf+sfAk2DzifjafldkThisIsNotARealKeyOMG." smtp-sender-from: "ntfy@ntfy.sh" smtp-server-listen: ":25" smtp-server-domain: "ntfy.sh" smtp-server-addr-prefix: "ntfy-" keepalive-interval: "45s" ``` Alternatively, you can also use command line arguments or environment variables to configure the server. Here's an example using Docker Compose (i.e. `docker-compose.yml`): === "Docker Compose (w/ auth, cache, attachments)" ``` yaml version: '3' services: ntfy: image: binwiederhier/ntfy restart: unless-stopped environment: NTFY_BASE_URL: http://ntfy.example.com NTFY_CACHE_FILE: /var/lib/ntfy/cache.db NTFY_AUTH_FILE: /var/lib/ntfy/auth.db NTFY_AUTH_DEFAULT_ACCESS: deny-all NTFY_BEHIND_PROXY: true NTFY_ATTACHMENT_CACHE_DIR: /var/lib/ntfy/attachments NTFY_ENABLE_LOGIN: true volumes: - ./:/var/lib/ntfy ports: - 80:80 command: serve ``` === "Docker Compose (w/ auth, cache, web push, iOS)" ``` yaml version: '3' services: ntfy: image: binwiederhier/ntfy restart: unless-stopped environment: NTFY_BASE_URL: http://ntfy.example.com NTFY_CACHE_FILE: /var/lib/ntfy/cache.db NTFY_AUTH_FILE: /var/lib/ntfy/auth.db NTFY_AUTH_DEFAULT_ACCESS: deny-all NTFY_BEHIND_PROXY: true NTFY_ATTACHMENT_CACHE_DIR: /var/lib/ntfy/attachments NTFY_ENABLE_LOGIN: true NTFY_UPSTREAM_BASE_URL: https://ntfy.sh NTFY_WEB_PUSH_PUBLIC_KEY: NTFY_WEB_PUSH_PRIVATE_KEY: NTFY_WEB_PUSH_FILE: /var/lib/ntfy/webpush.db NTFY_WEB_PUSH_EMAIL_ADDRESS: volumes: - ./:/var/lib/ntfy ports: - 8093:80 command: serve ``` ## Message cache If desired, ntfy can temporarily keep notifications in an in-memory or an on-disk cache. Caching messages for a short period of time is important to allow [phones](subscribe/phone.md) and other devices with brittle Internet connections to be able to retrieve notifications that they may have missed. By default, ntfy keeps messages **in-memory for 12 hours**, which means that **cached messages do not survive an application restart**. You can override this behavior using the following config settings: * `cache-file`: if set, ntfy will store messages in a SQLite based cache (default is empty, which means in-memory cache). **This is required if you'd like messages to be retained across restarts**. * `cache-duration`: defines the duration for which messages are stored in the cache (default is `12h`). You can also entirely disable the cache by setting `cache-duration` to `0`. When the cache is disabled, messages are only passed on to the connected subscribers, but never stored on disk or even kept in memory longer than is needed to forward the message to the subscribers. Subscribers can retrieve cached messaging using the [`poll=1` parameter](subscribe/api.md#poll-for-messages), as well as the [`since=` parameter](subscribe/api.md#fetch-cached-messages). ## Attachments If desired, you may allow users to upload and [attach files to notifications](publish.md#attachments). To enable this feature, you have to simply configure an attachment cache directory and a base URL (`attachment-cache-dir`, `base-url`). Once these options are set and the directory is writable by the server user, you can upload attachments via PUT. By default, attachments are stored in the disk-cache **for only 3 hours**. The main reason for this is to avoid legal issues and such when hosting user controlled content. Typically, this is more than enough time for the user (or the auto download feature) to download the file. The following config options are relevant to attachments: * `base-url` is the root URL for the ntfy server; this is needed for the generated attachment URLs * `attachment-cache-dir` is the cache directory for attached files * `attachment-total-size-limit` is the size limit of the on-disk attachment cache (default: 5G) * `attachment-file-size-limit` is the per-file attachment size limit (e.g. 300k, 2M, 100M, default: 15M) * `attachment-expiry-duration` is the duration after which uploaded attachments will be deleted (e.g. 3h, 20h, default: 3h) Here's an example config using mostly the defaults (except for the cache directory, which is empty by default): === "/etc/ntfy/server.yml (minimal)" ``` yaml base-url: "https://ntfy.sh" attachment-cache-dir: "/var/cache/ntfy/attachments" ``` === "/etc/ntfy/server.yml (all options)" ``` yaml base-url: "https://ntfy.sh" attachment-cache-dir: "/var/cache/ntfy/attachments" attachment-total-size-limit: "5G" attachment-file-size-limit: "15M" attachment-expiry-duration: "3h" visitor-attachment-total-size-limit: "100M" visitor-attachment-daily-bandwidth-limit: "500M" ``` Please also refer to the [rate limiting](#rate-limiting) settings below, specifically `visitor-attachment-total-size-limit` and `visitor-attachment-daily-bandwidth-limit`. Setting these conservatively is necessary to avoid abuse. ## Access control By default, the ntfy server is open for everyone, meaning **everyone can read and write to any topic** (this is how ntfy.sh is configured). To restrict access to your own server, you can optionally configure authentication and authorization. ntfy's auth is implemented with a simple [SQLite](https://www.sqlite.org/)-based backend. It implements two roles (`user` and `admin`) and per-topic `read` and `write` permissions using an [access control list (ACL)](https://en.wikipedia.org/wiki/Access-control_list). Access control entries can be applied to users as well as the special everyone user (`*`), which represents anonymous API access. To set up auth, simply **configure the following two options**: * `auth-file` is the user/access database; it is created automatically if it doesn't already exist; suggested location `/var/lib/ntfy/user.db` (easiest if deb/rpm package is used) * `auth-default-access` defines the default/fallback access if no access control entry is found; it can be set to `read-write` (default), `read-only`, `write-only` or `deny-all`. Once configured, you can use the `ntfy user` command to [add or modify users](#users-and-roles), and the `ntfy access` command lets you [modify the access control list](#access-control-list-acl) for specific users and topic patterns. Both of these commands **directly edit the auth database** (as defined in `auth-file`), so they only work on the server, and only if the user accessing them has the right permissions. ### Users and roles The `ntfy user` command allows you to add/remove/change users in the ntfy user database, as well as change passwords or roles (`user` or `admin`). In practice, you'll often just create one admin user with `ntfy user add --role=admin ...` and be done with all this (see [example below](#example-private-instance)). **Roles:** * Role `user` (default): Users with this role have no special permissions. Manage access using `ntfy access` (see [below](#access-control-list-acl)). * Role `admin`: Users with this role can read/write to all topics. Granular access control is not necessary. **Example commands** (type `ntfy user --help` or `ntfy user COMMAND --help` for more details): ``` ntfy user list # Shows list of users (alias: 'ntfy access') ntfy user add phil # Add regular user phil ntfy user add --role=admin phil # Add admin user phil ntfy user del phil # Delete user phil ntfy user change-pass phil # Change password for user phil ntfy user change-role phil admin # Make user phil an admin ntfy user change-tier phil pro # Change phil's tier to "pro" ``` ### Access control list (ACL) The access control list (ACL) **manages access to topics for non-admin users, and for anonymous access (`everyone`/`*`)**. Each entry represents the access permissions for a user to a specific topic or topic pattern. The ACL can be displayed or modified with the `ntfy access` command: ``` ntfy access # Shows access control list (alias: 'ntfy user list') ntfy access USERNAME # Shows access control entries for USERNAME ntfy access USERNAME TOPIC PERMISSION # Allow/deny access for USERNAME to TOPIC ``` A `USERNAME` is an existing user, as created with `ntfy user add` (see [users and roles](#users-and-roles)), or the anonymous user `everyone` or `*`, which represents clients that access the API without username/password. A `TOPIC` is either a specific topic name (e.g. `mytopic`, or `phil_alerts`), or a wildcard pattern that matches any number of topics (e.g. `alerts_*` or `ben-*`). Only the wildcard character `*` is supported. It stands for zero to any number of characters. A `PERMISSION` is any of the following supported permissions: * `read-write` (alias: `rw`): Allows [publishing messages](publish.md) to the given topic, as well as [subscribing](subscribe/api.md) and reading messages * `read-only` (aliases: `read`, `ro`): Allows only subscribing and reading messages, but not publishing to the topic * `write-only` (aliases: `write`, `wo`): Allows only publishing to the topic, but not subscribing to it * `deny` (alias: `none`): Allows neither publishing nor subscribing to a topic **Example commands** (type `ntfy access --help` for more details): ``` ntfy access # Shows entire access control list ntfy access phil # Shows access for user phil ntfy access phil mytopic rw # Allow read-write access to mytopic for user phil ntfy access everyone mytopic rw # Allow anonymous read-write access to mytopic ntfy access everyone "up*" write # Allow anonymous write-only access to topics "up..." ntfy access --reset # Reset entire access control list ntfy access --reset phil # Reset all access for user phil ntfy access --reset phil mytopic # Reset access for user phil and topic mytopic ``` **Example ACL:** ``` $ ntfy access user phil (admin) - read-write access to all topics (admin role) user ben (user) - read-write access to topic garagedoor - read-write access to topic alerts* - read-only access to topic furnace user * (anonymous) - read-only access to topic announcements - read-only access to topic server-stats - no access to any (other) topics (server config) ``` In this example, `phil` has the role `admin`, so he has read-write access to all topics (no ACL entries are necessary). User `ben` has three topic-specific entries. He can read, but not write to topic `furnace`, and has read-write access to topic `garagedoor` and all topics starting with the word `alerts` (wildcards). Clients that are not authenticated (called `*`/`everyone`) only have read access to the `announcements` and `server-stats` topics. ### Access tokens In addition to username/password auth, ntfy also provides authentication via access tokens. Access tokens are useful to avoid having to configure your password across multiple publishing/subscribing applications. For instance, you may want to use a dedicated token to publish from your backup host, and one from your home automation system. !!! info As of today, access tokens grant users **full access to the user account**. Aside from changing the password, and deleting the account, every action can be performed with a token. Granular access tokens are on the roadmap, but not yet implemented. The `ntfy token` command can be used to manage access tokens for users. Tokens can have labels, and they can expire automatically (or never expire). Each user can have up to 20 tokens (hardcoded). **Example commands** (type `ntfy token --help` or `ntfy token COMMAND --help` for more details): ``` ntfy token list # Shows list of tokens for all users ntfy token list phil # Shows list of tokens for user phil ntfy token add phil # Create token for user phil which never expires ntfy token add --expires=2d phil # Create token for user phil which expires in 2 days ntfy token remove phil tk_th2sxr... # Delete token ``` **Creating an access token:** ``` $ ntfy token add --expires=30d --label="backups" phil $ ntfy token list user phil - tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 (backups), expires 15 Mar 23 14:33 EDT, accessed from 0.0.0.0 at 13 Feb 23 13:33 EST ``` Once an access token is created, you can **use it to authenticate against the ntfy server, e.g. when you publish or subscribe to topics**. To learn how, check out [authenticate via access tokens](publish.md#access-tokens). ### Example: Private instance The easiest way to configure a private instance is to set `auth-default-access` to `deny-all` in the `server.yml`: === "/etc/ntfy/server.yml" ``` yaml auth-file: "/var/lib/ntfy/user.db" auth-default-access: "deny-all" ``` After that, simply create an `admin` user: ``` $ ntfy user add --role=admin phil password: mypass confirm: mypass user phil added with role admin ``` Once you've done that, you can publish and subscribe using [Basic Auth](https://en.wikipedia.org/wiki/Basic_access_authentication) with the given username/password. Be sure to use HTTPS to avoid eavesdropping and exposing your password. Here's a simple example: === "Command line (curl)" ``` curl \ -u phil:mypass \ -d "Look ma, with auth" \ https://ntfy.example.com/mysecrets ``` === "ntfy CLI" ``` ntfy publish \ -u phil:mypass \ ntfy.example.com/mysecrets \ "Look ma, with auth" ``` === "HTTP" ``` http POST /mysecrets HTTP/1.1 Host: ntfy.example.com Authorization: Basic cGhpbDpteXBhc3M= Look ma, with auth ``` === "JavaScript" ``` javascript fetch('https://ntfy.example.com/mysecrets', { method: 'POST', // PUT works too body: 'Look ma, with auth', headers: { 'Authorization': 'Basic cGhpbDpteXBhc3M=' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.example.com/mysecrets", strings.NewReader("Look ma, with auth")) req.Header.Set("Authorization", "Basic cGhpbDpteXBhc3M=") http.DefaultClient.Do(req) ``` === "Python" ``` python requests.post("https://ntfy.example.com/mysecrets", data="Look ma, with auth", headers={ "Authorization": "Basic cGhpbDpteXBhc3M=" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.example.com/mysecrets', false, stream_context_create([ 'http' => [ 'method' => 'POST', // PUT also works 'header' => 'Content-Type: text/plain\r\n' . 'Authorization: Basic cGhpbDpteXBhc3M=', 'content' => 'Look ma, with auth' ] ])); ``` ### Example: UnifiedPush [UnifiedPush](https://unifiedpush.org) requires that the [application server](https://unifiedpush.org/developers/spec/definitions/#application-server) (e.g. Synapse, Fediverse Server, …) has anonymous write access to the [topic](https://unifiedpush.org/developers/spec/definitions/#endpoint) used for push messages. The topic names used by UnifiedPush all start with the `up*` prefix. Please refer to the **[UnifiedPush documentation](https://unifiedpush.org/users/distributors/ntfy/#limit-access-to-some-users-acl)** for more details. To enable support for UnifiedPush for private servers (i.e. `auth-default-access: "deny-all"`), you should either allow anonymous write access for the entire prefix or explicitly per topic: === "Prefix" ``` $ ntfy access '*' 'up*' write-only ``` === "Explicitly" ``` $ ntfy access '*' upYzMtZGZiYTY5 write-only ``` ## E-mail notifications To allow forwarding messages via e-mail, you can configure an **SMTP server for outgoing messages**. Once configured, you can set the `X-Email` header to [send messages via e-mail](publish.md#e-mail-notifications) (e.g. `curl -d "hi there" -H "X-Email: phil@example.com" ntfy.sh/mytopic`). As of today, only SMTP servers with PLAIN auth and STARTLS are supported. To enable e-mail sending, you must set the following settings: * `base-url` is the root URL for the ntfy server; this is needed for e-mail footer * `smtp-sender-addr` is the hostname:port of the SMTP server * `smtp-sender-user` and `smtp-sender-pass` are the username and password of the SMTP user * `smtp-sender-from` is the e-mail address of the sender Here's an example config using [Amazon SES](https://aws.amazon.com/ses/) for outgoing mail (this is how it is configured for `ntfy.sh`): === "/etc/ntfy/server.yml" ``` yaml base-url: "https://ntfy.sh" smtp-sender-addr: "email-smtp.us-east-2.amazonaws.com:587" smtp-sender-user: "AKIDEADBEEFAFFE12345" smtp-sender-pass: "Abd13Kf+sfAk2DzifjafldkThisIsNotARealKeyOMG." smtp-sender-from: "ntfy@ntfy.sh" ``` Please also refer to the [rate limiting](#rate-limiting) settings below, specifically `visitor-email-limit-burst` and `visitor-email-limit-burst`. Setting these conservatively is necessary to avoid abuse. ## E-mail publishing To allow publishing messages via e-mail, ntfy can run a lightweight **SMTP server for incoming messages**. Once configured, users can [send emails to a topic e-mail address](publish.md#e-mail-publishing) (e.g. `mytopic@ntfy.sh` or `myprefix-mytopic@ntfy.sh`) to publish messages to a topic. This is useful for e-mail based integrations such as for statuspage.io (though these days most services also support webhooks and HTTP calls). To configure the SMTP server, you must at least set `smtp-server-listen` and `smtp-server-domain`: * `smtp-server-listen` defines the IP address and port the SMTP server will listen on, e.g. `:25` or `1.2.3.4:25` * `smtp-server-domain` is the e-mail domain, e.g. `ntfy.sh` (must be identical to MX record, see below) * `smtp-server-addr-prefix` is an optional prefix for the e-mail addresses to prevent spam. If set to `ntfy-`, for instance, only e-mails to `ntfy-$topic@ntfy.sh` will be accepted. If this is not set, all emails to `$topic@ntfy.sh` will be accepted (which may obviously be a spam problem). Here's an example config (this is how it is configured for `ntfy.sh`): === "/etc/ntfy/server.yml" ``` yaml smtp-server-listen: ":25" smtp-server-domain: "ntfy.sh" smtp-server-addr-prefix: "ntfy-" ``` In addition to configuring the ntfy server, you have to create two DNS records (an [MX record](https://en.wikipedia.org/wiki/MX_record) and a corresponding A record), so incoming mail will find its way to your server. Here's an example of how `ntfy.sh` is configured (in [Amazon Route 53](https://aws.amazon.com/route53/)):
    ![DNS records for incoming mail](static/img/screenshot-email-publishing-dns.png){ width=600 }
    DNS records for incoming mail
    You can check if everything is working correctly by sending an email as raw SMTP via `nc`. Create a text file, e.g. `email.txt` ``` EHLO example.com MAIL FROM: phil@example.com RCPT TO: ntfy-mytopic@ntfy.sh DATA Subject: Email for you Content-Type: text/plain; charset="UTF-8" Hello from 🇩🇪 . ``` And then send the mail via `nc` like this. If you see any lines starting with `451`, those are errors from the ntfy server. Read them carefully. ``` $ cat email.txt | nc -N ntfy.sh 25 220 ntfy.sh ESMTP Service Ready 250-Hello example.com ... 250 2.0.0 Roger, accepting mail from 250 2.0.0 I'll make sure gets this ``` As for the DNS setup, be sure to verify that `dig MX` and `dig A` are returning results similar to this: ``` $ dig MX ntfy.sh +short 10 mx1.ntfy.sh. $ dig A mx1.ntfy.sh +short 3.139.215.220 ``` ### Local-only email If you want to send emails from an internal service on the same network as your ntfy instance, you do not need to worry about DNS records at all. Define a port for the SMTP server and pick an SMTP server domain (can be anything). === "/etc/ntfy/server.yml" ``` yaml smtp-server-listen: ":25" smtp-server-domain: "example.com" smtp-server-addr-prefix: "ntfy-" # optional ``` Then, in the email settings of your internal service, set the SMTP server address to the IP address of your ntfy instance. Set the port to the value you defined in `smtp-server-listen`. Leave any username and password fields empty. In the "From" address, pick anything (e.g., "alerts@ntfy.sh"); the value doesn't matter. In the "To" address, put in an email address that follows this pattern: `[topic]@[smtp-server-domain]` (or `[smtp-server-addr-prefix][topic]@[smtp-server-domain]` if you set `smtp-server-addr-prefix`). So if you used `example.com` as the SMTP server domain, and you want to send a message to the `email-alerts` topic, set the "To" address to `email-alerts@example.com`. If the topic has access restrictions, you will need to include an access token in the "To" address, such as `email-alerts+tk_AbC123dEf456@example.com`. If the internal service lets you use define an email "Subject", it will become the title of the notification. The body of the email will become the message of the notification. ## Behind a proxy (TLS, etc.) !!! warning If you are running ntfy behind a proxy, you must set the `behind-proxy` flag. Otherwise, all visitors are [rate limited](#rate-limiting) as if they are one. It may be desirable to run ntfy behind a proxy (e.g. nginx, HAproxy or Apache), so you can provide TLS certificates using Let's Encrypt using certbot, or simply because you'd like to share the ports (80/443) with other services. Whatever your reasons may be, there are a few things to consider. If you are running ntfy behind a proxy, you should set the `behind-proxy` flag. This will instruct the [rate limiting](#rate-limiting) logic to use the `X-Forwarded-For` header as the primary identifier for a visitor, as opposed to the remote IP address. If the `behind-proxy` flag is not set, all visitors will be counted as one, because from the perspective of the ntfy server, they all share the proxy's IP address. === "/etc/ntfy/server.yml" ``` yaml # Tell ntfy to use "X-Forwarded-For" to identify visitors behind-proxy: true ``` ### TLS/SSL ntfy supports HTTPS/TLS by setting the `listen-https` [config option](#config-options). However, if you are behind a proxy, it is recommended that TLS/SSL termination is done by the proxy itself (see below). I highly recommend using [certbot](https://certbot.eff.org/). I use it with the [dns-route53 plugin](https://certbot-dns-route53.readthedocs.io/en/stable/), which lets you use [AWS Route 53](https://aws.amazon.com/route53/) as the challenge. That's much easier than using the HTTP challenge. I've found [this guide](https://nandovieira.com/using-lets-encrypt-in-development-with-nginx-and-aws-route53) to be incredibly helpful. ### nginx/Apache2/caddy For your convenience, here's a working config that'll help configure things behind a proxy. Be sure to **enable WebSockets** by forwarding the `Connection` and `Upgrade` headers accordingly. In this example, ntfy runs on `:2586` and we proxy traffic to it. We also redirect HTTP to HTTPS for GET requests against a topic or the root domain: === "nginx (convenient)" ``` # /etc/nginx/sites-*/ntfy # # This config allows insecure HTTP POST/PUT requests against topics to allow a short curl syntax (without -L # and "https://" prefix). It also disables output buffering, which has worked well for the ntfy.sh server. # # This is pretty much how ntfy.sh is configured. To see the exact configuration, # see https://github.com/binwiederhier/ntfy-ansible/ server { listen 80; server_name ntfy.sh; location / { # Redirect HTTP to HTTPS, but only for GET topic addresses, since we want # it to work with curl without the annoying https:// prefix set $redirect_https ""; if ($request_method = GET) { set $redirect_https "yes"; } if ($request_uri ~* "^/([-_a-z0-9]{0,64}$|docs/|static/)") { set $redirect_https "${redirect_https}yes"; } if ($redirect_https = "yesyes") { return 302 https://$http_host$request_uri$is_args$query_string; } proxy_pass http://127.0.0.1:2586; proxy_http_version 1.1; proxy_buffering off; proxy_request_buffering off; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 3m; proxy_send_timeout 3m; proxy_read_timeout 3m; client_max_body_size 0; # Stream request body to backend } } server { listen 443 ssl http2; server_name ntfy.sh; # See https://ssl-config.mozilla.org/#server=nginx&version=1.18.0&config=intermediate&openssl=1.1.1k&hsts=false&ocsp=false&guideline=5.6see https://ssl-config.mozilla.org/#server=nginx&version=1.18.0&config=intermediate&openssl=1.1.1k&hsts=false&ocsp=false&guideline=5.6 ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; # about 40000 sessions ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_certificate /etc/letsencrypt/live/ntfy.sh/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ntfy.sh/privkey.pem; location / { proxy_pass http://127.0.0.1:2586; proxy_http_version 1.1; proxy_buffering off; proxy_request_buffering off; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 3m; proxy_send_timeout 3m; proxy_read_timeout 3m; client_max_body_size 0; # Stream request body to backend } } ``` === "nginx (more secure)" ``` # /etc/nginx/sites-*/ntfy # # This config requires the use of the -L flag in curl to redirect to HTTPS, and it keeps nginx output buffering # enabled. While recommended, I have had issues with that in the past. server { listen 80; server_name ntfy.sh; location / { return 302 https://$http_host$request_uri$is_args$query_string; proxy_pass http://127.0.0.1:2586; proxy_http_version 1.1; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 3m; proxy_send_timeout 3m; proxy_read_timeout 3m; client_max_body_size 0; # Stream request body to backend } } server { listen 443 ssl http2; server_name ntfy.sh; # See https://ssl-config.mozilla.org/#server=nginx&version=1.18.0&config=intermediate&openssl=1.1.1k&hsts=false&ocsp=false&guideline=5.6see https://ssl-config.mozilla.org/#server=nginx&version=1.18.0&config=intermediate&openssl=1.1.1k&hsts=false&ocsp=false&guideline=5.6 ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; # about 40000 sessions ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_certificate /etc/letsencrypt/live/ntfy.sh/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ntfy.sh/privkey.pem; location / { proxy_pass http://127.0.0.1:2586; proxy_http_version 1.1; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 3m; proxy_send_timeout 3m; proxy_read_timeout 3m; client_max_body_size 0; # Stream request body to backend } } ``` === "Apache2" ``` # /etc/apache2/sites-*/ntfy.conf ServerName ntfy.sh # Proxy connections to ntfy (requires "a2enmod proxy proxy_http") ProxyPass / http://127.0.0.1:2586/ upgrade=websocket ProxyPassReverse / http://127.0.0.1:2586/ SetEnv proxy-nokeepalive 1 SetEnv proxy-sendchunked 1 # Higher than the max message size of 4096 bytes LimitRequestBody 102400 # Redirect HTTP to HTTPS, but only for GET topic addresses, since we want # it to work with curl without the annoying https:// prefix (requires "a2enmod alias") RedirectMatch permanent "^/([-_A-Za-z0-9]{0,64})$" "https://%{SERVER_NAME}/$1" ServerName ntfy.sh SSLEngine on SSLCertificateFile /etc/letsencrypt/live/ntfy.sh/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/ntfy.sh/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf # Proxy connections to ntfy (requires "a2enmod proxy proxy_http") ProxyPass / http://127.0.0.1:2586/ upgrade=websocket ProxyPassReverse / http://127.0.0.1:2586/ SetEnv proxy-nokeepalive 1 SetEnv proxy-sendchunked 1 # Higher than the max message size of 4096 bytes LimitRequestBody 102400 ``` === "caddy" ``` # Note that this config is most certainly incomplete. Please help out and let me know what's missing # via Discord/Matrix or in a GitHub issue. ntfy.sh, http://nfty.sh { reverse_proxy 127.0.0.1:2586 # Redirect HTTP to HTTPS, but only for GET topic addresses, since we want # it to work with curl without the annoying https:// prefix @httpget { protocol http method GET path_regexp ^/([-_a-z0-9]{0,64}$|docs/|static/) } redir @httpget https://{host}{uri} } ``` ## Firebase (FCM) !!! info Using Firebase is **optional** and only works if you modify and [build your own Android .apk](develop.md#android-app). For a self-hosted instance, it's easier to just not bother with FCM. [Firebase Cloud Messaging (FCM)](https://firebase.google.com/docs/cloud-messaging) is the Google approved way to send push messages to Android devices. FCM is the only method that an Android app can receive messages without having to run a [foreground service](https://developer.android.com/guide/components/foreground-services). For the main host [ntfy.sh](https://ntfy.sh), the [ntfy Android app](subscribe/phone.md) uses Firebase to send messages to the device. For other hosts, instant delivery is used and FCM is not involved. To configure FCM for your self-hosted instance of the ntfy server, follow these steps: 1. Sign up for a [Firebase account](https://console.firebase.google.com/) 2. Create a Firebase app and download the key file (e.g. `myapp-firebase-adminsdk-...json`) 3. Place the key file in `/etc/ntfy`, set the `firebase-key-file` in `server.yml` accordingly and restart the ntfy server 4. Build your own Android .apk following [these instructions](develop.md#android-app) Example: ``` # If set, also publish messages to a Firebase Cloud Messaging (FCM) topic for your app. # This is optional and only required to support Android apps (which don't allow background services anymore). # firebase-key-file: "/etc/ntfy/ntfy-sh-firebase-adminsdk-ahnce-9f4d6f14b5.json" ``` ## iOS instant notifications Unlike Android, iOS heavily restricts background processing, which sadly makes it impossible to implement instant push notifications without a central server. To still support instant notifications on iOS through your self-hosted ntfy server, you have to forward so called `poll_request` messages to the main ntfy.sh server (or any upstream server that's APNS/Firebase connected, if you build your own iOS app), which will then forward it to Firebase/APNS. To configure it, simply set `upstream-base-url` like so: ``` yaml upstream-base-url: "https://ntfy.sh" upstream-access-token: "..." # optional, only if rate limits exceeded, or upstream server protected ``` If set, all incoming messages will publish a poll request to the configured upstream server, containing the message ID of the original message, instructing the iOS app to poll this server for the actual message contents. If `upstream-base-url` is not set, notifications will still eventually get to your device, but delivery can take hours, depending on the state of the phone. If you are using your phone, it shouldn't take more than 20-30 minutes though. In case you're curious, here's an example of the entire flow: - In the iOS app, you subscribe to `https://ntfy.example.com/mytopic` - The app subscribes to the Firebase topic `6de73be8dfb7d69e...` (the SHA256 of the topic URL) - When you publish a message to `https://ntfy.example.com/mytopic`, your ntfy server will publish a poll request to `https://ntfy.sh/6de73be8dfb7d69e...`. The request from your server to the upstream server contains only the message ID (in the `X-Poll-ID` header), and the SHA256 checksum of the topic URL (as upstream topic). - The ntfy.sh server publishes the poll request message to Firebase, which forwards it to APNS, which forwards it to your iOS device - Your iOS device receives the poll request, and fetches the actual message from your server, and then displays it Here's an example of what the self-hosted server forwards to the upstream server. The request is equivalent to this curl: ``` curl -X POST -H "X-Poll-ID: s4PdJozxM8na" https://ntfy.sh/6de73be8dfb7d69e32fb2c00c23fe7adbd8b5504406e3068c273aa24cef4055b {"id":"4HsClFEuCIcs","time":1654087955,"event":"poll_request","topic":"6de73be8dfb7d69e32fb2c00c23fe7adbd8b5504406e3068c273aa24cef4055b","message":"New message","poll_id":"s4PdJozxM8na"} ``` Note that the self-hosted server literally sends the message `New message` for every message, even if your message may be `Some other message`. This is so that if iOS cannot talk to the self-hosted server (in time, or at all), it'll show `New message` as a popup. ## Web Push [Web Push](https://developer.mozilla.org/en-US/docs/Web/API/Push_API) ([RFC8030](https://datatracker.ietf.org/doc/html/rfc8030)) allows ntfy to receive push notifications, even when the ntfy web app (or even the browser, depending on the platform) is closed. When enabled, the user can enable **background notifications** for their topics in the wep app under Settings. Once enabled by the user, ntfy will forward published messages to the push endpoint (browser-provided, e.g. fcm.googleapis.com), which will then forward it to the browser. To configure Web Push, you need to generate and configure a [VAPID](https://datatracker.ietf.org/doc/html/draft-thomson-webpush-vapid) keypair (via `ntfy webpush keys`), a database to keep track of the browser's subscriptions, and an admin email address (you): - `web-push-public-key` is the generated VAPID public key, e.g. AA1234BBCCddvveekaabcdfqwertyuiopasdfghjklzxcvbnm1234567890 - `web-push-private-key` is the generated VAPID private key, e.g. AA2BB1234567890abcdefzxcvbnm1234567890 - `web-push-file` is a database file to keep track of browser subscription endpoints, e.g. `/var/cache/ntfy/webpush.db` - `web-push-email-address` is the admin email address send to the push provider, e.g. `sysadmin@example.com` - `web-push-startup-queries` is an optional list of queries to run on startup` Limitations: - Like foreground browser notifications, background push notifications require the web app to be served over HTTPS. A _valid_ certificate is required, as service workers will not run on origins with untrusted certificates. - Web Push is only supported for the same server. You cannot use subscribe to web push on a topic on another server. This is due to a limitation of the Push API, which doesn't allow multiple push servers for the same origin. To configure VAPID keys, first generate them: ```sh $ ntfy webpush keys Web Push keys generated. ... ``` Then copy the generated values into your `server.yml` or use the corresponding environment variables or command line arguments: ```yaml web-push-public-key: AA1234BBCCddvveekaabcdfqwertyuiopasdfghjklzxcvbnm1234567890 web-push-private-key: AA2BB1234567890abcdefzxcvbnm1234567890 web-push-file: /var/cache/ntfy/webpush.db web-push-email-address: sysadmin@example.com ``` The `web-push-file` is used to store the push subscriptions. Unused subscriptions will send out a warning after 7 days, and will automatically expire after 9 days (not configurable). If the gateway returns an error (e.g. 410 Gone when a user has unsubscribed), subscriptions are also removed automatically. The web app refreshes subscriptions on start and regularly on an interval, but this file should be persisted across restarts. If the subscription file is deleted or lost, any web apps that aren't open will not receive new web push notifications until you open then. Changing your public/private keypair is **not recommended**. Browsers only allow one server identity (public key) per origin, and if you change them the clients will not be able to subscribe via web push until the user manually clears the notification permission. ## Tiers ntfy supports associating users to pre-defined tiers. Tiers can be used to grant users higher limits, such as daily message limits, attachment size, or make it possible for users to reserve topics. If [payments are enabled](#payments), tiers can be paid or unpaid, and users can upgrade/downgrade between them. If payments are disabled, then the only way to switch between tiers is with the `ntfy user change-tier` command (see [users and roles](#users-and-roles)). By default, **newly created users have no tier**, and all usage limits are read from the `server.yml` config file. Once a user is associated with a tier, some limits are overridden based on the tier. The `ntfy tier` command can be used to manage all available tiers. By default, there are no pre-defined tiers. **Example commands** (type `ntfy token --help` or `ntfy token COMMAND --help` for more details): ``` ntfy tier add pro # Add tier with code "pro", using the defaults ntfy tier change --name="Pro" pro # Update the name of an existing tier ntfy tier del starter # Delete an existing tier ntfy user change-tier phil pro # Switch user "phil" to tier "pro" ``` **Creating a tier (full example):** ``` ntfy tier add \ --name="Pro" \ --message-limit=10000 \ --message-expiry-duration=24h \ --email-limit=50 \ --call-limit=10 \ --reservation-limit=10 \ --attachment-file-size-limit=100M \ --attachment-total-size-limit=1G \ --attachment-expiry-duration=12h \ --attachment-bandwidth-limit=5G \ --stripe-price-id=price_123456 \ pro ``` ## Payments ntfy supports paid [tiers](#tiers) via [Stripe](https://stripe.com/) as a payment provider. If payments are enabled, users can register, login and switch plans in the web app. The web app will behave slightly differently if payments are enabled (e.g. showing an upgrade banner, or "ntfy Pro" tags). !!! info The ntfy payments integration is very tailored to ntfy.sh and Stripe. I do not intend to support arbitrary use cases. To enable payments, sign up with [Stripe](https://stripe.com/), set the `stripe-secret-key` and `stripe-webhook-key` config options: * `stripe-secret-key` is the key used for the Stripe API communication. Setting this values enables payments in the ntfy web app (e.g. Upgrade dialog). See [API keys](https://dashboard.stripe.com/apikeys). * `stripe-webhook-key` is the key required to validate the authenticity of incoming webhooks from Stripe. Webhooks are essential to keep the local database in sync with the payment provider. See [Webhooks](https://dashboard.stripe.com/webhooks). * `billing-contact` is an email address or website displayed in the "Upgrade tier" dialog to let people reach out with billing questions. If unset, nothing will be displayed. In addition to setting these two options, you also need to define a [Stripe webhook](https://dashboard.stripe.com/webhooks) for the `customer.subscription.updated` and `customer.subscription.deleted` event, which points to `https://ntfy.example.com/v1/account/billing/webhook`. Here's an example: ``` yaml stripe-secret-key: "sk_test_ZmhzZGtmbGhkc2tqZmhzYcO2a2hmbGtnaHNkbGtnaGRsc2hnbG" stripe-webhook-key: "whsec_ZnNkZnNIRExBSFNES0hBRFNmaHNka2ZsaGR" billing-contact: "phil@example.com" ``` ## Phone calls ntfy supports phone calls via [Twilio](https://www.twilio.com/) as a call provider. If phone calls are enabled, users can verify and add a phone number, and then receive phone calls when publishing a message using the `X-Call` header. See [publishing page](publish.md#phone-calls) for more details. To enable Twilio integration, sign up with [Twilio](https://www.twilio.com/), purchase a phone number (Toll free numbers are the easiest), and then configure the following options: * `twilio-account` is the Twilio account SID, e.g. AC12345beefbeef67890beefbeef122586 * `twilio-auth-token` is the Twilio auth token, e.g. affebeef258625862586258625862586 * `twilio-phone-number` is the outgoing phone number you purchased, e.g. +18775132586 * `twilio-verify-service` is the Twilio Verify service SID, e.g. VA12345beefbeef67890beefbeef122586 After you have configured phone calls, create a [tier](#tiers) with a call limit (e.g. `ntfy tier create --call-limit=10 ...`), and then assign it to a user. Users may then use the `X-Call` header to receive a phone call when publishing a message. ## Message limits There are a few message limits that you can configure: * `message-size-limit` defines the max size of a message body. Please note message sizes >4K are **not recommended, and largely untested**. The Android/iOS and other clients may not work, or work properly. If FCM and/or APNS is used, the limit should stay 4K, because their limits are around that size. If you increase this size limit regardless, FCM and APNS will NOT work for large messages. * `message-delay-limit` defines the max delay of a message when using the "Delay" header and [scheduled delivery](publish.md#scheduled-delivery). ## Rate limiting !!! info Be aware that if you are running ntfy behind a proxy, you must set the `behind-proxy` flag. Otherwise, all visitors are rate limited as if they are one. By default, ntfy runs without authentication, so it is vitally important that we protect the server from abuse or overload. There are various limits and rate limits in place that you can use to configure the server: * **Global limit**: A global limit applies across all visitors (IPs, clients, users) * **Visitor limit**: A visitor limit only applies to a certain visitor. A **visitor** is identified by its IP address (or the `X-Forwarded-For` header if `behind-proxy` is set). All config options that start with the word `visitor` apply only on a per-visitor basis. During normal usage, you shouldn't encounter these limits at all, and even if you burst a few requests or emails (e.g. when you reconnect after a connection drop), it shouldn't have any effect. ### General limits Let's do the easy limits first: * `global-topic-limit` defines the total number of topics before the server rejects new topics. It defaults to 15,000. * `visitor-subscription-limit` is the number of subscriptions (open connections) per visitor. This value defaults to 30. ### Request limits In addition to the limits above, there is a requests/second limit per visitor for all sensitive GET/PUT/POST requests. This limit uses a [token bucket](https://en.wikipedia.org/wiki/Token_bucket) (using Go's [rate package](https://pkg.go.dev/golang.org/x/time/rate)): Each visitor has a bucket of 60 requests they can fire against the server (defined by `visitor-request-limit-burst`). After the 60, new requests will encounter a `429 Too Many Requests` response. The visitor request bucket is refilled at a rate of one request every 5s (defined by `visitor-request-limit-replenish`) * `visitor-request-limit-burst` is the initial bucket of requests each visitor has. This defaults to 60. * `visitor-request-limit-replenish` is the rate at which the bucket is refilled (one request per x). Defaults to 5s. * `visitor-request-limit-exempt-hosts` is a comma-separated list of hostnames and IPs to be exempt from request rate limiting; hostnames are resolved at the time the server is started. Defaults to an empty list. ### Message limits By default, the number of messages a visitor can send is governed entirely by the [request limit](#request-limits). For instance, if the request limit allows for 15,000 requests per day, and all of those requests are POST/PUT requests to publish messages, then that is the daily message limit. To limit the number of daily messages per visitor, you can set `visitor-message-daily-limit`. This defines the number of messages a visitor can send in a day. This counter is reset every day at midnight (UTC). ### Attachment limits Aside from the global file size and total attachment cache limits (see [above](#attachments)), there are two relevant per-visitor limits: * `visitor-attachment-total-size-limit` is the total storage limit used for attachments per visitor. It defaults to 100M. The per-visitor storage is automatically decreased as attachments expire. External attachments (attached via `X-Attach`, see [publishing docs](publish.md#attachments)) do not count here. * `visitor-attachment-daily-bandwidth-limit` is the total daily attachment download/upload bandwidth limit per visitor, including PUT and GET requests. This is to protect your precious bandwidth from abuse, since egress costs money in most cloud providers. This defaults to 500M. ### E-mail limits Similarly to the request limit, there is also an e-mail limit (only relevant if [e-mail notifications](#e-mail-notifications) are enabled): * `visitor-email-limit-burst` is the initial bucket of emails each visitor has. This defaults to 16. * `visitor-email-limit-replenish` is the rate at which the bucket is refilled (one email per x). Defaults to 1h. ### Firebase limits If [Firebase is configured](#firebase-fcm), all messages are also published to a Firebase topic (unless `Firebase: no` is set). Firebase enforces [its own limits](https://firebase.google.com/docs/cloud-messaging/concept-options#topics_throttling) on how many messages can be published. Unfortunately these limits are a little vague and can change depending on the time of day. In practice, I have only ever observed `429 Quota exceeded` responses from Firebase if **too many messages are published to the same topic**. In ntfy, if Firebase responds with a 429 after publishing to a topic, the visitor (= IP address) who published the message is **banned from publishing to Firebase for 10 minutes** (not configurable). Because publishing to Firebase happens asynchronously, there is no indication of the user that this has happened. Non-Firebase subscribers (WebSocket or HTTP stream) are not affected. After the 10 minutes are up, messages forwarding to Firebase is resumed for this visitor. If this ever happens, there will be a log message that looks something like this: ``` WARN Firebase quota exceeded (likely for topic), temporarily denying Firebase access to visitor ``` ### Subscriber-based rate limiting By default, ntfy puts almost all rate limits on the message publisher, e.g. number of messages, requests, and attachment size are all based on the visitor who publishes a message. **Subscriber-based rate limiting is a way to use the rate limits of a topic's subscriber, instead of the limits of the publisher.** If subscriber-based rate limiting is enabled, **messages published on UnifiedPush topics** (topics starting with `up`, e.g. `up123456789012`) will be counted towards the "rate visitor" of the topic. A "rate visitor" is the first subscriber to the topic. Once enabled, a client subscribing to UnifiedPush topics via HTTP stream, or websockets, will be automatically registered as a "rate visitor", i.e. the visitor whose rate limits will be used when publishing on this topic. Note that setting the rate visitor requires **read-write permission** on the topic. If this setting is enabled, publishing to UnifiedPush topics will lead to an `HTTP 507 Insufficient Storage` response if no "rate visitor" has been previously registered. This is to avoid burning the publisher's `visitor-message-daily-limit`. To enable subscriber-based rate limiting, set `visitor-subscriber-rate-limiting: true`. !!! info Due to a [denial-of-service issue](https://github.com/binwiederhier/ntfy/issues/1048), support for the `Rate-Topics` header was removed entirely. This is unfortunate, but subscriber-based rate limiting will still work for `up*` topics. ## Tuning for scale If you're running ntfy for your home server, you probably don't need to worry about scale at all. In its default config, if it's not behind a proxy, the ntfy server can keep about **as many connections as the open file limit allows**. This limit is typically called `nofile`. Other than that, RAM and CPU are obviously relevant. You may also want to check out [this discussion on Reddit](https://www.reddit.com/r/golang/comments/r9u4ee/how_many_actively_connected_http_clients_can_a_go/). Depending on *how you run it*, here are a few limits that are relevant: ### Message cache By default, the [message cache](#message-cache) (defined by `cache-file`) uses the SQLite default settings, which means it syncs to disk on every write. For personal servers, this is perfectly adequate. For larger installations, such as ntfy.sh, the [write-ahead log (WAL)](https://sqlite.org/wal.html) should be enabled, and the sync mode should be adjusted. See [this article](https://phiresky.github.io/blog/2020/sqlite-performance-tuning/) for details. In addition to that, for very high load servers (such as ntfy.sh), it may be beneficial to write messages to the cache in batches, and asynchronously. This can be enabled with the `cache-batch-size` and `cache-batch-timeout`. If you start seeing `database locked` messages in the logs, you should probably enable that. Here's how ntfy.sh has been tuned in the `server.yml` file: ``` yaml cache-batch-size: 25 cache-batch-timeout: "1s" cache-startup-queries: | pragma journal_mode = WAL; pragma synchronous = normal; pragma temp_store = memory; pragma busy_timeout = 15000; vacuum; ``` ### For systemd services If you're running ntfy in a systemd service (e.g. for .deb/.rpm packages), the main limiting factor is the `LimitNOFILE` setting in the systemd unit. The default open files limit for `ntfy.service` is 10,000. You can override it by creating a `/etc/systemd/system/ntfy.service.d/override.conf` file. As far as I can tell, `/etc/security/limits.conf` is not relevant. === "/etc/systemd/system/ntfy.service.d/override.conf" ``` # Allow 20,000 ntfy connections (and give room for other file handles) [Service] LimitNOFILE=20500 ``` ### Outside of systemd If you're running outside systemd, you may want to adjust your `/etc/security/limits.conf` file to increase the `nofile` setting. Here's an example that increases the limit to 5,000. You can find out the current setting by running `ulimit -n`, or manually override it temporarily by running `ulimit -n 50000`. === "/etc/security/limits.conf" ``` # Increase open files limit globally * hard nofile 20500 ``` ### Proxy limits (nginx, Apache2) If you are running [behind a proxy](#behind-a-proxy-tls-etc) (e.g. nginx, Apache), the open files limit of the proxy is also relevant. So if your proxy runs inside of systemd, increase the limits in systemd for the proxy. Typically, the proxy open files limit has to be **double the number of how many connections you'd like to support**, because the proxy has to maintain the client connection and the connection to ntfy. === "/etc/nginx/nginx.conf" ``` events { # Allow 40,000 proxy connections (2x of the desired ntfy connection count; # and give room for other file handles) worker_connections 40500; } ``` === "/etc/systemd/system/nginx.service.d/override.conf" ``` # Allow 40,000 proxy connections (2x of the desired ntfy connection count; # and give room for other file handles) [Service] LimitNOFILE=40500 ``` ### Banning bad actors (fail2ban) If you put stuff on the Internet, bad actors will try to break them or break in. [fail2ban](https://www.fail2ban.org/) and nginx's [ngx_http_limit_req_module module](http://nginx.org/en/docs/http/ngx_http_limit_req_module.html) can be used to ban client IPs if they misbehave. This is on top of the [rate limiting](#rate-limiting) inside the ntfy server. Here's an example for how ntfy.sh is configured, following the instructions from two tutorials ([here](https://easyengine.io/tutorials/nginx/fail2ban/) and [here](https://easyengine.io/tutorials/nginx/block-wp-login-php-bruteforce-attack/)): === "/etc/nginx/nginx.conf" ``` # Rate limit all IP addresses http { limit_req_zone $binary_remote_addr zone=one:10m rate=45r/m; } # Alternatively, whitelist certain IP addresses http { geo $limited { default 1; 116.203.112.46/32 0; 132.226.42.65/32 0; ... } map $limited $limitkey { 1 $binary_remote_addr; 0 ""; } limit_req_zone $limitkey zone=one:10m rate=45r/m; } ``` === "/etc/nginx/sites-enabled/ntfy.sh" ``` # For each server/location block server { location / { limit_req zone=one burst=1000 nodelay; } } ``` === "/etc/fail2ban/filter.d/nginx-req-limit.conf" ``` [Definition] failregex = limiting requests, excess:.* by zone.*client: ignoreregex = ``` === "/etc/fail2ban/jail.local" ``` [nginx-req-limit] enabled = true filter = nginx-req-limit action = iptables-multiport[name=ReqLimit, port="http,https", protocol=tcp] logpath = /var/log/nginx/error.log findtime = 600 bantime = 14400 maxretry = 10 ``` ## Health checks A preliminary health check API endpoint is exposed at `/v1/health`. The endpoint returns a `json` response in the format shown below. If a non-200 HTTP status code is returned or if the returned `healthy` field is `false` the ntfy service should be considered as unhealthy. ```json {"healthy":true} ``` See [Installation for Docker](install.md#docker) for an example of how this could be used in a `docker-compose` environment. ## Monitoring If configured, ntfy can expose a `/metrics` endpoint for [Prometheus](https://prometheus.io/), which can then be used to create dashboards and alerts (e.g. via [Grafana](https://grafana.com/)). To configure the metrics endpoint, either set `enable-metrics` and/or set the `listen-metrics-http` option to a dedicated listen address. Metrics may be considered sensitive information, so before you enable them, be sure you know what you are doing, and/or secure access to the endpoint in your reverse proxy. - `enable-metrics` enables the /metrics endpoint for the default ntfy server (i.e. HTTP, HTTPS and/or Unix socket) - `metrics-listen-http` exposes the metrics endpoint via a dedicated `[IP]:port`. If set, this option implicitly enables metrics as well, e.g. "10.0.1.1:9090" or ":9090" === "server.yml (Using default port)" ```yaml enable-metrics: true ``` === "server.yml (Using dedicated IP/port)" ```yaml metrics-listen-http: "10.0.1.1:9090" ``` In Prometheus, an example scrape config would look like this: === "prometheus.yml" ```yaml scrape_configs: - job_name: "ntfy" static_configs: - targets: ["10.0.1.1:9090"] ``` Here's an example Grafana dashboard built from the metrics (see [Grafana JSON on GitHub](https://raw.githubusercontent.com/binwiederhier/ntfy/main/examples/grafana-dashboard/ntfy-grafana.json)):
    ntfy Grafana dashboard
    ## Profiling ntfy can expose Go's [net/http/pprof](https://pkg.go.dev/net/http/pprof) endpoints to support profiling of the ntfy server. If enabled, ntfy will listen on a dedicated listen IP/port, which can be accessed via the web browser on `http://:/debug/pprof/`. This can be helpful to expose bottlenecks, and visualize call flows. To enable, simply set the `profile-listen-http` config option. ## Logging & debugging By default, ntfy logs to the console (stderr), with an `info` log level, and in a human-readable text format. ntfy supports five different log levels, can also write to a file, log as JSON, and even supports granular log level overrides for easier debugging. Some options (`log-level` and `log-level-overrides`) can be hot reloaded by calling `kill -HUP $pid` or `systemctl reload ntfy`. The following config options define the logging behavior: * `log-format` defines the output format, can be `text` (default) or `json` * `log-file` is a filename to write logs to. If this is not set, ntfy logs to stderr. * `log-level` defines the default log level, can be one of `trace`, `debug`, `info` (default), `warn` or `error`. Be aware that `debug` (and particularly `trace`) can be **very verbose**. Only turn them on briefly for debugging purposes. * `log-level-overrides` lets you override the log level if certain fields match. This is incredibly powerful for debugging certain parts of the system (e.g. only the account management, or only a certain visitor). This is an array of strings in the format: - `field=value -> level` to match a value exactly, e.g. `tag=manager -> trace` - `field -> level` to match any value, e.g. `time_taken_ms -> debug` **Logging config (good for production use):** ``` yaml log-level: info log-format: json log-file: /var/log/ntfy.log ``` **Temporary debugging:** If something's not working right, you can debug/trace through what the ntfy server is doing by setting the `log-level` to `debug` or `trace`. The `debug` setting will output information about each published message, but not the message contents. The `trace` setting will also print the message contents. Alternatively, you can set `log-level-overrides` for only certain fields, such as a visitor's IP address (`visitor_ip`), a username (`user_name`), or a tag (`tag`). There are dozens of fields you can use to override log levels. To learn what they are, either turn the log-level to `trace` and observe, or reference the [source code](https://github.com/binwiederhier/ntfy). Here's an example that will output only `info` log events, except when they match either of the defined overrides: ``` yaml log-level: info log-level-overrides: - "tag=manager -> trace" - "visitor_ip=1.2.3.4 -> debug" - "time_taken_ms -> debug" ``` !!! warning The `debug` and `trace` log levels are very verbose, and using `log-level-overrides` has a performance penalty. Only use it for temporary debugging. You can also hot-reload the `log-level` and `log-level-overrides` by sending the `SIGHUP` signal to the process after editing the `server.yml` file. You can do so by calling `systemctl reload ntfy` (if ntfy is running inside systemd), or by calling `kill -HUP $(pidof ntfy)`. If successful, you'll see something like this: ``` $ ntfy serve 2022/06/02 10:29:28 INFO Listening on :2586[http] :1025[smtp], log level is INFO 2022/06/02 10:29:34 INFO Partially hot reloading configuration ... 2022/06/02 10:29:34 INFO Log level is TRACE ``` ## Config options Each config option can be set in the config file `/etc/ntfy/server.yml` (e.g. `listen-http: :80`) or as a CLI option (e.g. `--listen-http :80`. Here's a list of all available options. Alternatively, you can set an environment variable before running the `ntfy` command (e.g. `export NTFY_LISTEN_HTTP=:80`). !!! info All config options can also be defined in the `server.yml` file using underscores instead of dashes, e.g. `cache_duration` and `cache-duration` are both supported. This is to support stricter YAML parsers that do not support dashes. | Config option | Env variable | Format | Default | Description | |--------------------------------------------|-------------------------------------------------|-----------------------------------------------------|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `base-url` | `NTFY_BASE_URL` | *URL* | - | Public facing base URL of the service (e.g. `https://ntfy.sh`) | | `listen-http` | `NTFY_LISTEN_HTTP` | `[host]:port` | `:80` | Listen address for the HTTP web server | | `listen-https` | `NTFY_LISTEN_HTTPS` | `[host]:port` | - | Listen address for the HTTPS web server. If set, you also need to set `key-file` and `cert-file`. | | `listen-unix` | `NTFY_LISTEN_UNIX` | *filename* | - | Path to a Unix socket to listen on | | `listen-unix-mode` | `NTFY_LISTEN_UNIX_MODE` | *file mode* | *system default* | File mode of the Unix socket, e.g. 0700 or 0777 | | `key-file` | `NTFY_KEY_FILE` | *filename* | - | HTTPS/TLS private key file, only used if `listen-https` is set. | | `cert-file` | `NTFY_CERT_FILE` | *filename* | - | HTTPS/TLS certificate file, only used if `listen-https` is set. | | `firebase-key-file` | `NTFY_FIREBASE_KEY_FILE` | *filename* | - | If set, also publish messages to a Firebase Cloud Messaging (FCM) topic for your app. This is optional and only required to save battery when using the Android app. See [Firebase (FCM](#firebase-fcm). | | `cache-file` | `NTFY_CACHE_FILE` | *filename* | - | If set, messages are cached in a local SQLite database instead of only in-memory. This allows for service restarts without losing messages in support of the since= parameter. See [message cache](#message-cache). | | `cache-duration` | `NTFY_CACHE_DURATION` | *duration* | 12h | Duration for which messages will be buffered before they are deleted. This is required to support the `since=...` and `poll=1` parameter. Set this to `0` to disable the cache entirely. | | `cache-startup-queries` | `NTFY_CACHE_STARTUP_QUERIES` | *string (SQL queries)* | - | SQL queries to run during database startup; this is useful for tuning and [enabling WAL mode](#wal-for-message-cache) | | `cache-batch-size` | `NTFY_CACHE_BATCH_SIZE` | *int* | 0 | Max size of messages to batch together when writing to message cache (if zero, writes are synchronous) | | `cache-batch-timeout` | `NTFY_CACHE_BATCH_TIMEOUT` | *duration* | 0s | Timeout for batched async writes to the message cache (if zero, writes are synchronous) | | `auth-file` | `NTFY_AUTH_FILE` | *filename* | - | Auth database file used for access control. If set, enables authentication and access control. See [access control](#access-control). | | `auth-default-access` | `NTFY_AUTH_DEFAULT_ACCESS` | `read-write`, `read-only`, `write-only`, `deny-all` | `read-write` | Default permissions if no matching entries in the auth database are found. Default is `read-write`. | | `behind-proxy` | `NTFY_BEHIND_PROXY` | *bool* | false | If set, the X-Forwarded-For header is used to determine the visitor IP address instead of the remote address of the connection. | | `attachment-cache-dir` | `NTFY_ATTACHMENT_CACHE_DIR` | *directory* | - | Cache directory for attached files. To enable attachments, this has to be set. | | `attachment-total-size-limit` | `NTFY_ATTACHMENT_TOTAL_SIZE_LIMIT` | *size* | 5G | Limit of the on-disk attachment cache directory. If the limits is exceeded, new attachments will be rejected. | | `attachment-file-size-limit` | `NTFY_ATTACHMENT_FILE_SIZE_LIMIT` | *size* | 15M | Per-file attachment size limit (e.g. 300k, 2M, 100M). Larger attachment will be rejected. | | `attachment-expiry-duration` | `NTFY_ATTACHMENT_EXPIRY_DURATION` | *duration* | 3h | Duration after which uploaded attachments will be deleted (e.g. 3h, 20h). Strongly affects `visitor-attachment-total-size-limit`. | | `smtp-sender-addr` | `NTFY_SMTP_SENDER_ADDR` | `host:port` | - | SMTP server address to allow email sending | | `smtp-sender-user` | `NTFY_SMTP_SENDER_USER` | *string* | - | SMTP user; only used if e-mail sending is enabled | | `smtp-sender-pass` | `NTFY_SMTP_SENDER_PASS` | *string* | - | SMTP password; only used if e-mail sending is enabled | | `smtp-sender-from` | `NTFY_SMTP_SENDER_FROM` | *e-mail address* | - | SMTP sender e-mail address; only used if e-mail sending is enabled | | `smtp-server-listen` | `NTFY_SMTP_SERVER_LISTEN` | `[ip]:port` | - | Defines the IP address and port the SMTP server will listen on, e.g. `:25` or `1.2.3.4:25` | | `smtp-server-domain` | `NTFY_SMTP_SERVER_DOMAIN` | *domain name* | - | SMTP server e-mail domain, e.g. `ntfy.sh` | | `smtp-server-addr-prefix` | `NTFY_SMTP_SERVER_ADDR_PREFIX` | *string* | - | Optional prefix for the e-mail addresses to prevent spam, e.g. `ntfy-` | | `twilio-account` | `NTFY_TWILIO_ACCOUNT` | *string* | - | Twilio account SID, e.g. AC12345beefbeef67890beefbeef122586 | | `twilio-auth-token` | `NTFY_TWILIO_AUTH_TOKEN` | *string* | - | Twilio auth token, e.g. affebeef258625862586258625862586 | | `twilio-phone-number` | `NTFY_TWILIO_PHONE_NUMBER` | *string* | - | Twilio outgoing phone number, e.g. +18775132586 | | `twilio-verify-service` | `NTFY_TWILIO_VERIFY_SERVICE` | *string* | - | Twilio Verify service SID, e.g. VA12345beefbeef67890beefbeef122586 | | `keepalive-interval` | `NTFY_KEEPALIVE_INTERVAL` | *duration* | 45s | Interval in which keepalive messages are sent to the client. This is to prevent intermediaries closing the connection for inactivity. Note that the Android app has a hardcoded timeout at 77s, so it should be less than that. | | `manager-interval` | `NTFY_MANAGER_INTERVAL` | *duration* | 1m | Interval in which the manager prunes old messages, deletes topics and prints the stats. | | `message-size-limit` | `NTFY_MESSAGE_SIZE_LIMIT` | *size* | 4K | The size limit for the message body. Please note that this is largely untested, and that FCM/APNS have limits around 4KB. If you increase this size limit, FCM and APNS will NOT work for large messages. | | `message-delay-limit` | `NTFY_MESSAGE_DELAY_LIMIT` | *duration* | 3d | Amount of time a message can be [scheduled](publish.md#scheduled-delivery) into the future when using the `Delay` header | | `global-topic-limit` | `NTFY_GLOBAL_TOPIC_LIMIT` | *number* | 15,000 | Rate limiting: Total number of topics before the server rejects new topics. | | `upstream-base-url` | `NTFY_UPSTREAM_BASE_URL` | *URL* | `https://ntfy.sh` | Forward poll request to an upstream server, this is needed for iOS push notifications for self-hosted servers | | `upstream-access-token` | `NTFY_UPSTREAM_ACCESS_TOKEN` | *string* | `tk_zyYLYj...` | Access token to use for the upstream server; needed only if upstream rate limits are exceeded or upstream server requires auth | | `visitor-attachment-total-size-limit` | `NTFY_VISITOR_ATTACHMENT_TOTAL_SIZE_LIMIT` | *size* | 100M | Rate limiting: Total storage limit used for attachments per visitor, for all attachments combined. Storage is freed after attachments expire. See `attachment-expiry-duration`. | | `visitor-attachment-daily-bandwidth-limit` | `NTFY_VISITOR_ATTACHMENT_DAILY_BANDWIDTH_LIMIT` | *size* | 500M | Rate limiting: Total daily attachment download/upload traffic limit per visitor. This is to protect your bandwidth costs from exploding. | | `visitor-email-limit-burst` | `NTFY_VISITOR_EMAIL_LIMIT_BURST` | *number* | 16 | Rate limiting:Initial limit of e-mails per visitor | | `visitor-email-limit-replenish` | `NTFY_VISITOR_EMAIL_LIMIT_REPLENISH` | *duration* | 1h | Rate limiting: Strongly related to `visitor-email-limit-burst`: The rate at which the bucket is refilled | | `visitor-message-daily-limit` | `NTFY_VISITOR_MESSAGE_DAILY_LIMIT` | *number* | - | Rate limiting: Allowed number of messages per day per visitor, reset every day at midnight (UTC). By default, this value is unset. | | `visitor-request-limit-burst` | `NTFY_VISITOR_REQUEST_LIMIT_BURST` | *number* | 60 | Rate limiting: Allowed GET/PUT/POST requests per second, per visitor. This setting is the initial bucket of requests each visitor has | | `visitor-request-limit-replenish` | `NTFY_VISITOR_REQUEST_LIMIT_REPLENISH` | *duration* | 5s | Rate limiting: Strongly related to `visitor-request-limit-burst`: The rate at which the bucket is refilled | | `visitor-request-limit-exempt-hosts` | `NTFY_VISITOR_REQUEST_LIMIT_EXEMPT_HOSTS` | *comma-separated host/IP list* | - | Rate limiting: List of hostnames and IPs to be exempt from request rate limiting | | `visitor-subscription-limit` | `NTFY_VISITOR_SUBSCRIPTION_LIMIT` | *number* | 30 | Rate limiting: Number of subscriptions per visitor (IP address) | | `visitor-subscriber-rate-limiting` | `NTFY_VISITOR_SUBSCRIBER_RATE_LIMITING` | *bool* | `false` | Rate limiting: Enables subscriber-based rate limiting | | `web-root` | `NTFY_WEB_ROOT` | *path*, e.g. `/` or `/app`, or `disable` | `/` | Sets root of the web app (e.g. /, or /app), or disables it entirely (disable) | | `enable-signup` | `NTFY_ENABLE_SIGNUP` | *boolean* (`true` or `false`) | `false` | Allows users to sign up via the web app, or API | | `enable-login` | `NTFY_ENABLE_LOGIN` | *boolean* (`true` or `false`) | `false` | Allows users to log in via the web app, or API | | `enable-reservations` | `NTFY_ENABLE_RESERVATIONS` | *boolean* (`true` or `false`) | `false` | Allows users to reserve topics (if their tier allows it) | | `stripe-secret-key` | `NTFY_STRIPE_SECRET_KEY` | *string* | - | Payments: Key used for the Stripe API communication, this enables payments | | `stripe-webhook-key` | `NTFY_STRIPE_WEBHOOK_KEY` | *string* | - | Payments: Key required to validate the authenticity of incoming webhooks from Stripe | | `billing-contact` | `NTFY_BILLING_CONTACT` | *email address* or *website* | - | Payments: Email or website displayed in Upgrade dialog as a billing contact | | `web-push-public-key` | `NTFY_WEB_PUSH_PUBLIC_KEY` | *string* | - | Web Push: Public Key. Run `ntfy webpush keys` to generate | | `web-push-private-key` | `NTFY_WEB_PUSH_PRIVATE_KEY` | *string* | - | Web Push: Private Key. Run `ntfy webpush keys` to generate | | `web-push-file` | `NTFY_WEB_PUSH_FILE` | *string* | - | Web Push: Database file that stores subscriptions | | `web-push-email-address` | `NTFY_WEB_PUSH_EMAIL_ADDRESS` | *string* | - | Web Push: Sender email address | | `web-push-startup-queries` | `NTFY_WEB_PUSH_STARTUP_QUERIES` | *string* | - | Web Push: SQL queries to run against subscription database at startup | The format for a *duration* is: `(smhd)`, e.g. 30s, 20m, 1h or 3d. The format for a *size* is: `(GMK)`, e.g. 1G, 200M or 4000k. ## Command line options ``` NAME: ntfy serve - Run the ntfy server USAGE: ntfy serve [OPTIONS..] CATEGORY: Server commands DESCRIPTION: Run the ntfy server and listen for incoming requests The command will load the configuration from /etc/ntfy/server.yml. Config options can be overridden using the command line options. Examples: ntfy serve # Starts server in the foreground (on port 80) ntfy serve --listen-http :8080 # Starts server with alternate port OPTIONS: --debug, -d enable debug logging (default: false) [$NTFY_DEBUG] --trace enable tracing (very verbose, be careful) (default: false) [$NTFY_TRACE] --no-log-dates, --no_log_dates disable the date/time prefix (default: false) [$NTFY_NO_LOG_DATES] --log-level value, --log_level value set log level (default: "INFO") [$NTFY_LOG_LEVEL] --log-level-overrides value, --log_level_overrides value [ --log-level-overrides value, --log_level_overrides value ] set log level overrides [$NTFY_LOG_LEVEL_OVERRIDES] --log-format value, --log_format value set log format (default: "text") [$NTFY_LOG_FORMAT] --log-file value, --log_file value set log file, default is STDOUT [$NTFY_LOG_FILE] --config value, -c value config file (default: "/etc/ntfy/server.yml") [$NTFY_CONFIG_FILE] --base-url value, --base_url value, -B value externally visible base URL for this host (e.g. https://ntfy.sh) [$NTFY_BASE_URL] --listen-http value, --listen_http value, -l value ip:port used as HTTP listen address (default: ":80") [$NTFY_LISTEN_HTTP] --listen-https value, --listen_https value, -L value ip:port used as HTTPS listen address [$NTFY_LISTEN_HTTPS] --listen-unix value, --listen_unix value, -U value listen on unix socket path [$NTFY_LISTEN_UNIX] --listen-unix-mode value, --listen_unix_mode value file permissions of unix socket, e.g. 0700 (default: system default) [$NTFY_LISTEN_UNIX_MODE] --key-file value, --key_file value, -K value private key file, if listen-https is set [$NTFY_KEY_FILE] --cert-file value, --cert_file value, -E value certificate file, if listen-https is set [$NTFY_CERT_FILE] --firebase-key-file value, --firebase_key_file value, -F value Firebase credentials file; if set additionally publish to FCM topic [$NTFY_FIREBASE_KEY_FILE] --cache-file value, --cache_file value, -C value cache file used for message caching [$NTFY_CACHE_FILE] --cache-duration since, --cache_duration since, -b since buffer messages for this time to allow since requests (default: "12h") [$NTFY_CACHE_DURATION] --cache-batch-size value, --cache_batch_size value max size of messages to batch together when writing to message cache (if zero, writes are synchronous) (default: 0) [$NTFY_BATCH_SIZE] --cache-batch-timeout value, --cache_batch_timeout value timeout for batched async writes to the message cache (if zero, writes are synchronous) (default: "0s") [$NTFY_CACHE_BATCH_TIMEOUT] --cache-startup-queries value, --cache_startup_queries value queries run when the cache database is initialized [$NTFY_CACHE_STARTUP_QUERIES] --auth-file value, --auth_file value, -H value auth database file used for access control [$NTFY_AUTH_FILE] --auth-startup-queries value, --auth_startup_queries value queries run when the auth database is initialized [$NTFY_AUTH_STARTUP_QUERIES] --auth-default-access value, --auth_default_access value, -p value default permissions if no matching entries in the auth database are found (default: "read-write") [$NTFY_AUTH_DEFAULT_ACCESS] --attachment-cache-dir value, --attachment_cache_dir value cache directory for attached files [$NTFY_ATTACHMENT_CACHE_DIR] --attachment-total-size-limit value, --attachment_total_size_limit value, -A value limit of the on-disk attachment cache (default: "5G") [$NTFY_ATTACHMENT_TOTAL_SIZE_LIMIT] --attachment-file-size-limit value, --attachment_file_size_limit value, -Y value per-file attachment size limit (e.g. 300k, 2M, 100M) (default: "15M") [$NTFY_ATTACHMENT_FILE_SIZE_LIMIT] --attachment-expiry-duration value, --attachment_expiry_duration value, -X value duration after which uploaded attachments will be deleted (e.g. 3h, 20h) (default: "3h") [$NTFY_ATTACHMENT_EXPIRY_DURATION] --keepalive-interval value, --keepalive_interval value, -k value interval of keepalive messages (default: "45s") [$NTFY_KEEPALIVE_INTERVAL] --manager-interval value, --manager_interval value, -m value interval of for message pruning and stats printing (default: "1m") [$NTFY_MANAGER_INTERVAL] --disallowed-topics value, --disallowed_topics value [ --disallowed-topics value, --disallowed_topics value ] topics that are not allowed to be used [$NTFY_DISALLOWED_TOPICS] --web-root value, --web_root value sets root of the web app (e.g. /, or /app), or disables it (disable) (default: "/") [$NTFY_WEB_ROOT] --enable-signup, --enable_signup allows users to sign up via the web app, or API (default: false) [$NTFY_ENABLE_SIGNUP] --enable-login, --enable_login allows users to log in via the web app, or API (default: false) [$NTFY_ENABLE_LOGIN] --enable-reservations, --enable_reservations allows users to reserve topics (if their tier allows it) (default: false) [$NTFY_ENABLE_RESERVATIONS] --upstream-base-url value, --upstream_base_url value forward poll request to an upstream server, this is needed for iOS push notifications for self-hosted servers [$NTFY_UPSTREAM_BASE_URL] --upstream-access-token value, --upstream_access_token value access token to use for the upstream server; needed only if upstream rate limits are exceeded or upstream server requires auth [$NTFY_UPSTREAM_ACCESS_TOKEN] --smtp-sender-addr value, --smtp_sender_addr value SMTP server address (host:port) for outgoing emails [$NTFY_SMTP_SENDER_ADDR] --smtp-sender-user value, --smtp_sender_user value SMTP user (if e-mail sending is enabled) [$NTFY_SMTP_SENDER_USER] --smtp-sender-pass value, --smtp_sender_pass value SMTP password (if e-mail sending is enabled) [$NTFY_SMTP_SENDER_PASS] --smtp-sender-from value, --smtp_sender_from value SMTP sender address (if e-mail sending is enabled) [$NTFY_SMTP_SENDER_FROM] --smtp-server-listen value, --smtp_server_listen value SMTP server address (ip:port) for incoming emails, e.g. :25 [$NTFY_SMTP_SERVER_LISTEN] --smtp-server-domain value, --smtp_server_domain value SMTP domain for incoming e-mail, e.g. ntfy.sh [$NTFY_SMTP_SERVER_DOMAIN] --smtp-server-addr-prefix value, --smtp_server_addr_prefix value SMTP email address prefix for topics to prevent spam (e.g. 'ntfy-') [$NTFY_SMTP_SERVER_ADDR_PREFIX] --twilio-account value, --twilio_account value Twilio account SID, used for phone calls, e.g. AC123... [$NTFY_TWILIO_ACCOUNT] --twilio-auth-token value, --twilio_auth_token value Twilio auth token [$NTFY_TWILIO_AUTH_TOKEN] --twilio-phone-number value, --twilio_phone_number value Twilio number to use for outgoing calls [$NTFY_TWILIO_PHONE_NUMBER] --twilio-verify-service value, --twilio_verify_service value Twilio Verify service ID, used for phone number verification [$NTFY_TWILIO_VERIFY_SERVICE] --message-size-limit value, --message_size_limit value size limit for the message (see docs for limitations) (default: "4K") [$NTFY_MESSAGE_SIZE_LIMIT] --message-delay-limit value, --message_delay_limit value max duration a message can be scheduled into the future (default: "3d") [$NTFY_MESSAGE_DELAY_LIMIT] --global-topic-limit value, --global_topic_limit value, -T value total number of topics allowed (default: 15000) [$NTFY_GLOBAL_TOPIC_LIMIT] --visitor-subscription-limit value, --visitor_subscription_limit value number of subscriptions per visitor (default: 30) [$NTFY_VISITOR_SUBSCRIPTION_LIMIT] --visitor-attachment-total-size-limit value, --visitor_attachment_total_size_limit value total storage limit used for attachments per visitor (default: "100M") [$NTFY_VISITOR_ATTACHMENT_TOTAL_SIZE_LIMIT] --visitor-attachment-daily-bandwidth-limit value, --visitor_attachment_daily_bandwidth_limit value total daily attachment download/upload bandwidth limit per visitor (default: "500M") [$NTFY_VISITOR_ATTACHMENT_DAILY_BANDWIDTH_LIMIT] --visitor-request-limit-burst value, --visitor_request_limit_burst value initial limit of requests per visitor (default: 60) [$NTFY_VISITOR_REQUEST_LIMIT_BURST] --visitor-request-limit-replenish value, --visitor_request_limit_replenish value interval at which burst limit is replenished (one per x) (default: "5s") [$NTFY_VISITOR_REQUEST_LIMIT_REPLENISH] --visitor-request-limit-exempt-hosts value, --visitor_request_limit_exempt_hosts value hostnames and/or IP addresses of hosts that will be exempt from the visitor request limit [$NTFY_VISITOR_REQUEST_LIMIT_EXEMPT_HOSTS] --visitor-message-daily-limit value, --visitor_message_daily_limit value max messages per visitor per day, derived from request limit if unset (default: 0) [$NTFY_VISITOR_MESSAGE_DAILY_LIMIT] --visitor-email-limit-burst value, --visitor_email_limit_burst value initial limit of e-mails per visitor (default: 16) [$NTFY_VISITOR_EMAIL_LIMIT_BURST] --visitor-email-limit-replenish value, --visitor_email_limit_replenish value interval at which burst limit is replenished (one per x) (default: "1h") [$NTFY_VISITOR_EMAIL_LIMIT_REPLENISH] --visitor-subscriber-rate-limiting, --visitor_subscriber_rate_limiting enables subscriber-based rate limiting (default: false) [$NTFY_VISITOR_SUBSCRIBER_RATE_LIMITING] --behind-proxy, --behind_proxy, -P if set, use X-Forwarded-For header to determine visitor IP address (for rate limiting) (default: false) [$NTFY_BEHIND_PROXY] --stripe-secret-key value, --stripe_secret_key value key used for the Stripe API communication, this enables payments [$NTFY_STRIPE_SECRET_KEY] --stripe-webhook-key value, --stripe_webhook_key value key required to validate the authenticity of incoming webhooks from Stripe [$NTFY_STRIPE_WEBHOOK_KEY] --billing-contact value, --billing_contact value e-mail or website to display in upgrade dialog (only if payments are enabled) [$NTFY_BILLING_CONTACT] --enable-metrics, --enable_metrics if set, Prometheus metrics are exposed via the /metrics endpoint (default: false) [$NTFY_ENABLE_METRICS] --metrics-listen-http value, --metrics_listen_http value ip:port used to expose the metrics endpoint (implicitly enables metrics) [$NTFY_METRICS_LISTEN_HTTP] --profile-listen-http value, --profile_listen_http value ip:port used to expose the profiling endpoints (implicitly enables profiling) [$NTFY_PROFILE_LISTEN_HTTP] --web-push-public-key value, --web_push_public_key value public key used for web push notifications [$NTFY_WEB_PUSH_PUBLIC_KEY] --web-push-private-key value, --web_push_private_key value private key used for web push notifications [$NTFY_WEB_PUSH_PRIVATE_KEY] --web-push-file value, --web_push_file value file used to store web push subscriptions [$NTFY_WEB_PUSH_FILE] --web-push-email-address value, --web_push_email_address value e-mail address of sender, required to use browser push services [$NTFY_WEB_PUSH_EMAIL_ADDRESS] --web-push-startup-queries value, --web_push_startup_queries value queries run when the web push database is initialized [$NTFY_WEB_PUSH_STARTUP_QUERIES] --help, -h show help ``` ntfy-2.11.0/docs/deprecations.md000066400000000000000000000045201462047176100165160ustar00rootroot00000000000000# Deprecations and breaking changes This page is used to list deprecation notices for ntfy. Deprecated commands and options will be **removed after 1-3 months** from the time they were deprecated. How long the feature is deprecated before the behavior is changed depends on the severity of the change, and how prominent the feature is. ## Active deprecations _No active deprecations_ ## Previous deprecations ### ntfy CLI: `ntfy publish --env-topic` will be removed > Active since 2022-06-20, behavior changed with v1.30.1 The `ntfy publish --env-topic` option will be removed. It'll still be possible to specify a topic via the `NTFY_TOPIC` environment variable, but it won't be necessary anymore to specify the `--env-topic` flag. === "Before" ``` $ NTFY_TOPIC=mytopic ntfy publish --env-topic "this is the message" ``` === "After" ``` $ NTFY_TOPIC=mytopic ntfy publish "this is the message" ``` ### Android app: WebSockets will become the default connection protocol > Active since 2022-03-13, behavior will not change (deprecation removed 2022-06-20) Instant delivery connections and connections to self-hosted servers in the Android app were going to switch to use the WebSockets protocol by default. It was decided to keep JSON stream as the most compatible default and add a notice banner in the Android app instead. ### Android app: Using `since=` instead of `since=` > Active since 2022-02-27, behavior changed with v1.14.0 The Android app started using `since=` instead of `since=`, which means as of Android app v1.14.0, it will not work with servers older than v1.16.0 anymore. This is to simplify handling of deduplication in the Android app. The `since=` endpoint will continue to work. This is merely a notice that the Android app behavior will change. ### Running server via `ntfy` (instead of `ntfy serve`) > Deprecated 2021-12-17, behavior changed with v1.10.0 As more commands are added to the `ntfy` CLI tool, using just `ntfy` to run the server is not practical anymore. Please use `ntfy serve` instead. This also applies to Docker images, as they can also execute more than just the server. === "Before" ``` $ ntfy 2021/12/17 08:16:01 Listening on :80/http ``` === "After" ``` $ ntfy serve 2021/12/17 08:16:01 Listening on :80/http ``` ntfy-2.11.0/docs/develop.md000066400000000000000000000466221462047176100155050ustar00rootroot00000000000000# Development Hurray 🥳 🎉, you are interested in writing code for ntfy! **That's awesome.** 😎 I tried my very best to write up detailed instructions, but if at any point in time you run into issues, don't hesitate to **contact me on [Discord](https://discord.gg/cT7ECsZj9w) or [Matrix](https://matrix.to/#/#ntfy:matrix.org)**. ## ntfy server The ntfy server source code is available [on GitHub](https://github.com/binwiederhier/ntfy). The codebase for the server consists of three components: * **The main server/client** is written in [Go](https://go.dev/) (so you'll need Go). Its main entrypoint is at [main.go](https://github.com/binwiederhier/ntfy/blob/main/main.go), and the meat you're likely interested in is in [server.go](https://github.com/binwiederhier/ntfy/blob/main/server/server.go). Notably, the server uses a [SQLite](https://sqlite.org) library called [go-sqlite3](https://github.com/mattn/go-sqlite3), which requires [Cgo](https://go.dev/blog/cgo) and `CGO_ENABLED=1` to be set. Otherwise things will not work (see below). * **The documentation** is generated by [MkDocs](https://www.mkdocs.org/) and [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/), which is written in [Python](https://www.python.org/). You'll need Python and MkDocs (via `pip`) only if you want to build the docs. * **The web app** is written in [React](https://reactjs.org/), using [MUI](https://mui.com/). It uses [Vite](https://vitejs.dev/) to build the production build. If you want to modify the web app, you need [nodejs](https://nodejs.org/en/) (for `npm`) and install all the 100,000 dependencies (*sigh*). All of these components are built and then **baked into one binary**. ### Navigating the code Code: * [main.go](https://github.com/binwiederhier/ntfy/blob/main/main.go) - Main entrypoint into the CLI, for both server and client * [cmd/](https://github.com/binwiederhier/ntfy/tree/main/cmd) - CLI commands, such as `serve` or `publish` * [server/](https://github.com/binwiederhier/ntfy/tree/main/server) - The meat of the server logic * [docs/](https://github.com/binwiederhier/ntfy/tree/main/docs) - The [MkDocs](https://www.mkdocs.org/) documentation, also see `mkdocs.yml` * [web/](https://github.com/binwiederhier/ntfy/tree/main/web) - The [React](https://reactjs.org/) application, also see `web/package.json` Build related: * [Makefile](https://github.com/binwiederhier/ntfy/blob/main/Makefile) - Main entrypoint for all things related to building * [.goreleaser.yml](https://github.com/binwiederhier/ntfy/blob/main/.goreleaser.yml) - Describes all build outputs (for [GoReleaser](https://goreleaser.com/)) * [go.mod](https://github.com/binwiederhier/ntfy/blob/main/go.mod) - Go modules dependency file * [mkdocs.yml](https://github.com/binwiederhier/ntfy/blob/main/mkdocs.yml) - Config file for the docs (for [MkDocs](https://www.mkdocs.org/)) * [web/package.json](https://github.com/binwiederhier/ntfy/blob/main/web/package.json) - Build and dependency file for web app (for npm) The `web/` and `docs/` folder are the sources for web app and documentation. During the build process, the generated output is copied to `server/site` (web app and landing page) and `server/docs` (documentation). ### Build/test on Gitpod To get a quick working development environment you can use [Gitpod](https://gitpod.io), an in-browser IDE that makes it easy to develop ntfy without having to set up a desktop IDE. For any real development, I do suggest a proper IDE like [IntelliJ IDEA](https://www.jetbrains.com/idea/). [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/binwiederhier/ntfy) ### Build requirements * [Go](https://go.dev/) (required for main server) * [gcc](https://gcc.gnu.org/) (required main server, for SQLite cgo-based bindings) * [Make](https://www.gnu.org/software/make/) (required for convenience) * [libsqlite3/libsqlite3-dev](https://www.sqlite.org/) (required for main server, for SQLite cgo-based bindings) * [GoReleaser](https://goreleaser.com/) (required for a proper main server build) * [Python](https://www.python.org/) (for `pip`, only to build the docs) * [nodejs](https://nodejs.org/en/) (for `npm`, only to build the web app) ### Install dependencies These steps **assume Ubuntu**. Steps may vary on different Linux distributions. First, install [Go](https://go.dev/) (see [official instructions](https://go.dev/doc/install)): ``` shell wget https://go.dev/dl/go1.19.1.linux-amd64.tar.gz sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.19.1.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin go version # verifies that it worked ``` Install [GoReleaser](https://goreleaser.com/) (see [official instructions](https://goreleaser.com/install/)): ``` shell go install github.com/goreleaser/goreleaser@latest goreleaser -v # verifies that it worked ``` Install [nodejs](https://nodejs.org/en/) (see [official instructions](https://nodejs.org/en/download/package-manager/)): ``` shell curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs npm -v # verifies that it worked ``` Then install a few other things required: ``` shell sudo apt install \ build-essential \ libsqlite3-dev \ gcc-arm-linux-gnueabi \ gcc-aarch64-linux-gnu \ python3-pip \ git ``` ### Check out code Now check out via git from the [GitHub repository](https://github.com/binwiederhier/ntfy): === "via HTTPS" ``` shell git clone https://github.com/binwiederhier/ntfy.git cd ntfy ``` === "via SSH" ``` shell git clone git@github.com:binwiederhier/ntfy.git cd ntfy ``` ### Build all the things Now you can finally build everything. There are tons of `make` targets, so maybe just review what's there first by typing `make`: ``` shell $ make Typical commands (more see below): make build - Build web app, documentation and server/client (sloowwww) make cli-linux-amd64 - Build server/client binary (amd64, no web app or docs) make install-linux-amd64 - Install ntfy binary to /usr/bin/ntfy (amd64) make web - Build the web app make docs - Build the documentation make check - Run all tests, vetting/formatting checks and linters ... ``` If you want to build the **ntfy binary including web app and docs for all supported architectures** (amd64, armv7, and arm64), you can simply run `make build`: ``` shell $ make build ... # This builds web app, docs, and the ntfy binary (for amd64, armv7 and arm64). # This will be SLOW (5+ minutes on my laptop on the first run). Maybe look at the other make targets? ``` You'll see all the outputs in the `dist/` folder afterwards: ``` bash $ find dist dist dist/metadata.json dist/ntfy_arm64_linux_arm64 dist/ntfy_arm64_linux_arm64/ntfy dist/ntfy_armv7_linux_arm_7 dist/ntfy_armv7_linux_arm_7/ntfy dist/ntfy_amd64_linux_amd64 dist/ntfy_amd64_linux_amd64/ntfy dist/config.yaml dist/artifacts.json ``` If you also want to build the **Debian/RPM packages and the Docker images for all supported architectures**, you can use the `make release-snapshot` target: ``` shell $ make release-snapshot ... # This will be REALLY SLOW (sometimes 5+ minutes on my laptop) ``` During development, you may want to be more picky and build only certain things. Here are a few examples. ### Build a Docker image only for Linux This is useful to test the final build with web app, docs, and server without any dependencies locally ``` shell $ make docker-dev $ docker run --rm -p 80:80 binwiederhier/ntfy:dev serve ``` ### Build the ntfy binary To build only the `ntfy` binary **without the web app or documentation**, use the `make cli-...` targets: ``` shell $ make Build server & client (using GoReleaser, not release version): make cli - Build server & client (all architectures) make cli-linux-amd64 - Build server & client (Linux, amd64 only) make cli-linux-armv6 - Build server & client (Linux, armv6 only) make cli-linux-armv7 - Build server & client (Linux, armv7 only) make cli-linux-arm64 - Build server & client (Linux, arm64 only) make cli-windows-amd64 - Build client (Windows, amd64 only) make cli-darwin-all - Build client (macOS, arm64+amd64 universal binary) ``` So if you're on an amd64/x86_64-based machine, you may just want to run `make cli-linux-amd64` during testing. On a modern system, this shouldn't take longer than 5-10 seconds. I often combine it with `install-linux-amd64` so I can run the binary right away: ``` shell $ make cli-linux-amd64 install-linux-amd64 $ ntfy serve ``` **During development of the main app, you can also just use `go run main.go`**, as long as you run `make cli-deps-static-sites`at least once and `CGO_ENABLED=1`: ``` shell $ export CGO_ENABLED=1 $ make cli-deps-static-sites $ go run main.go serve 2022/03/18 08:43:55 Listening on :2586[http] ... ``` If you don't run `cli-deps-static-sites`, you may see an error *`pattern ...: no matching files found`*: ``` $ go run main.go serve server/server.go:85:13: pattern docs: no matching files found ``` This is because we use `go:embed` to embed the documentation and web app, so the Go code expects files to be present at `server/docs` and `server/site`. If they are not, you'll see the above error. The `cli-deps-static-sites` target creates dummy files that ensure that you'll be able to build. While not officially supported (or released), you can build and run the server **on macOS** as well. Simply run `make cli-darwin-server` to build a binary, or `go run main.go serve` (see above) to run it. ### Build the web app The sources for the web app live in `web/`. As long as you have `npm` installed (see above), building the web app is really simple. Just type `make web` and you're in business: ``` shell $ make web ... ``` This will build the web app using Create React App and then **copy the production build to the `server/site` folder**, so that when you `make cli` (or `make cli-linux-amd64`, ...), you will have the web app included in the `ntfy` binary. If you're developing on the web app, it's best to just `cd web` and run `npm start` manually. This will open your browser at `http://127.0.0.1:3000` with the web app, and as you edit the source files, they will be recompiled and the browser will automatically refresh: ``` shell $ cd web $ npm start ``` ### Testing Web Push locally Reference: #### With the dev servers 1. Get web push keys `go run main.go webpush keys` 2. Run the server with web push enabled ```sh go run main.go \ --log-level debug \ serve \ --web-push-public-key KEY \ --web-push-private-key KEY \ --web-push-email-address \ --web-push-file=/tmp/webpush.db ``` 3. In `web/public/config.js`: - Set `base_url` to `http://localhost`, This is required as web push can only be used with the server matching the `base_url`. - Set the `web_push_public_key` correctly. 4. Run `npm run start` #### With a built package 1. Run `make web-build` 2. Run the server (step 2 above) 3. Open ### Build the docs The sources for the docs live in `docs/`. Similarly to the web app, you can simply run `make docs` to build the documentation. As long as you have `mkdocs` installed (see above), this should work fine: ``` shell $ make docs ... ``` If you are changing the documentation, you should be running `mkdocs serve` directly. This will build the documentation, serve the files at `http://127.0.0.1:8000/`, and rebuild every time you save the source files: ``` $ mkdocs serve INFO - Building documentation... INFO - Cleaning site directory INFO - Documentation built in 5.53 seconds INFO - [16:28:14] Serving on http://127.0.0.1:8000/ ``` Then you can navigate to http://127.0.0.1:8000/ and whenever you change a markdown file in your text editor it'll automatically update. ## Android app The ntfy Android app source code is available [on GitHub](https://github.com/binwiederhier/ntfy-android). The Android app has two flavors: * **Google Play:** The `play` flavor includes [Firebase (FCM)](https://firebase.google.com/) and requires a Firebase account * **F-Droid:** The `fdroid` flavor does not include Firebase or Google dependencies ### Navigating the code * [main/](https://github.com/binwiederhier/ntfy-android/tree/main/app/src/main) - Main Android app source code * [play/](https://github.com/binwiederhier/ntfy-android/tree/main/app/src/play) - Google Play / Firebase specific code * [fdroid/](https://github.com/binwiederhier/ntfy-android/tree/main/app/src/fdroid) - F-Droid Firebase stubs * [build.gradle](https://github.com/binwiederhier/ntfy-android/blob/main/app/build.gradle) - Main build file ### IDE/Environment You should download [Android Studio](https://developer.android.com/studio) (or [IntelliJ IDEA](https://www.jetbrains.com/idea/) with the relevant Android plugins). Everything else will just be a pain for you. Do yourself a favor. 😀 ### Check out the code First check out the repository: === "via HTTPS" ``` shell git clone https://github.com/binwiederhier/ntfy-android.git cd ntfy-android ``` === "via SSH" ``` shell git clone git@github.com:binwiederhier/ntfy-android.git cd ntfy-android ``` Then either follow the steps for building with or without Firebase. ### Build F-Droid flavor (no FCM) !!! info I do build the ntfy Android app using IntelliJ IDEA (Android Studio), so I don't know if these Gradle commands will work without issues. Please give me feedback if it does/doesn't work for you. Without Firebase, you may want to still change the default `app_base_url` in [values.xml](https://github.com/binwiederhier/ntfy-android/blob/main/app/src/main/res/values/values.xml) if you're self-hosting the server. Then run: ``` # Remove Google dependencies (FCM) sed -i -e '/google-services/d' build.gradle sed -i -e '/google-services/d' app/build.gradle # To build an unsigned .apk (app/build/outputs/apk/fdroid/*.apk) ./gradlew assembleFdroidRelease # To build a bundle .aab (app/fdroid/release/*.aab) ./gradlew bundleFdroidRelease ``` ### Build Play flavor (FCM) !!! info I do build the ntfy Android app using IntelliJ IDEA (Android Studio), so I don't know if these Gradle commands will work without issues. Please give me feedback if it does/doesn't work for you. To build your own version with Firebase, you must: * Create a Firebase/FCM account * Place your account file at `app/google-services.json` * And change `app_base_url` in [values.xml](https://github.com/binwiederhier/ntfy-android/blob/main/app/src/main/res/values/values.xml) * Then run: ``` # To build an unsigned .apk (app/build/outputs/apk/play/release/*.apk) ./gradlew assemblePlayRelease # To build a bundle .aab (app/play/release/*.aab) ./gradlew bundlePlayRelease ``` ## iOS app Building the iOS app is very involved. Please report any inconsistencies or issues with it. The requirements are strictly based off of my development on this app. There may be other versions of macOS / XCode that work. ### Requirements 1. macOS Monterey or later 1. XCode 13.2+ 1. A physical iOS device (for push notifications, Firebase does not work in the XCode simulator) 1. Firebase account 1. Apple Developer license? (I forget if it's possible to do testing without purchasing the license) ### Apple setup !!! info Along with this step, the [PLIST Deployment](#plist-deployment-and-configuration) step is also required for these changes to take effect in the iOS app. 1. [Create a new key in Apple Developer Member Center](https://developer.apple.com/account/resources/authkeys/add) 1. Select "Apple Push Notifications service (APNs)" 1. Download the newly created key (should have a file name similar to `AuthKey_ZZZZZZ.p8`, where `ZZZZZZ` is the **Key ID**) 1. Record your **Team ID** - it can be seen in the top-right corner of the page, or on your Account > Membership page 1. Next, navigate to "Project Settings" in the firebase console for your project, and select the iOS app you created. Then, click "Cloud Messaging" in the left sidebar, and scroll down to the "APNs Authentication Key" section. Click "Upload Key", and upload the key you downloaded from Apple Developer. !!! warning If you don't do the above setups for APNS, **notifications will not post instantly or sometimes at all**. This is because of the missing APNS key, which is required for firebase to send notifications to the iOS app. See below for a snip from the firebase docs. If you don't have an APNs authentication key, you can still send notifications to iOS devices, but they won't be delivered instantly. Instead, they'll be delivered when the device wakes up to check for new notifications or when your application sends a firebase request to check for them. The time to check for new notifications can vary from a few seconds to hours, days or even weeks. Enabling APNs authentication keys ensures that notifications are delivered instantly and is strongly recommended. ### Firebase setup 1. If you haven't already, create a Google / Firebase account 1. Visit the [Firebase console](https://console.firebase.google.com) 1. Create a new Firebase project: 1. Enter a project name 1. Disable Google Analytics (currently iOS app does not support analytics) 1. On the "Project settings" page, add an iOS app 1. Apple bundle ID - "com.copephobia.ntfy-ios" (this can be changed to match XCode's ntfy.sh target > "Bundle Identifier" value) 1. Register the app 1. Download the config file - GoogleInfo.plist (this will need to be included in the ntfy-ios repository / XCode) 1. Generate a new service account private key for the ntfy server 1. Go to "Project settings" > "Service accounts" 1. Click "Generate new private key" to generate and download a private key to use for sending messages via the ntfy server ### ntfy server Note that the ntfy server is not officially supported on macOS. It should, however, be able to run on macOS using these steps: 1. If not already made, make the `/etc/ntfy/` directory and move the service account private key to that folder 1. Copy the `server/server.yml` file from the ntfy repository to `/etc/ntfy/` 1. Modify the `/etc/ntfy/server.yml` file `firebase-key-file` value to the path of the private key 1. Install go: `brew install go` 1. In the ntfy repository, run `make cli-darwin-server`. ### XCode setup 1. Follow step 4 of [Add Firebase to your Apple project](https://firebase.google.com/docs/ios/setup) to install the `firebase-ios-sdk` in XCode, if it's not already present - you can select any packages in addition to Firebase Core / Firebase Messaging 1. Similarly, install the SQLite.swift package dependency in XCode 1. When running the debug build, ensure XCode is pointed to the connected iOS device - registering for push notifications does not work in the iOS simulators ### PLIST config To have instant notifications/better notification delivery when using firebase, you will need to add the `GoogleService-Info.plist` file to your project. Here's how to do that: 1. In XCode, find the NTFY app target. **Not** the NSE app target. 1. Find the Asset/ folder in the project navigator 1. Drag the `GoogleService-Info.plist` file into the Asset/ folder that you get from the firebase console. It can be found in the "Project settings" > "General" > "Your apps" with a button labled "GoogleService-Info.plist" After that, you should be all set! ntfy-2.11.0/docs/emojis.md000066400000000000000000004047151462047176100153360ustar00rootroot00000000000000# Emoji reference You can [tag messages](publish.md#tags-emojis) with emojis 🥳 🎉 and other relevant strings. Matching tags are automatically converted to emojis. This is a reference of all supported emojis. To learn more about the feature, please refer to the [tagging and emojis page](publish.md#tags-emojis).
    TagEmoji
    grinning😀
    smiley😃
    smile😄
    grin😁
    laughing😆
    sweat_smile😅
    rofl🤣
    joy😂
    slightly_smiling_face🙂
    upside_down_face🙃
    wink😉
    blush😊
    innocent😇
    smiling_face_with_three_hearts🥰
    heart_eyes😍
    star_struck🤩
    kissing_heart😘
    kissing😗
    relaxed☺️
    kissing_closed_eyes😚
    kissing_smiling_eyes😙
    smiling_face_with_tear🥲
    yum😋
    stuck_out_tongue😛
    stuck_out_tongue_winking_eye😜
    zany_face🤪
    stuck_out_tongue_closed_eyes😝
    money_mouth_face🤑
    hugs🤗
    hand_over_mouth🤭
    shushing_face🤫
    thinking🤔
    zipper_mouth_face🤐
    raised_eyebrow🤨
    neutral_face😐
    expressionless😑
    no_mouth😶
    face_in_clouds😶‍🌫️
    smirk😏
    unamused😒
    roll_eyes🙄
    grimacing😬
    face_exhaling😮‍💨
    lying_face🤥
    relieved😌
    pensive😔
    sleepy😪
    drooling_face🤤
    sleeping😴
    mask😷
    face_with_thermometer🤒
    face_with_head_bandage🤕
    nauseated_face🤢
    vomiting_face🤮
    sneezing_face🤧
    hot_face🥵
    cold_face🥶
    woozy_face🥴
    dizzy_face😵
    face_with_spiral_eyes😵‍💫
    exploding_head🤯
    cowboy_hat_face🤠
    partying_face🥳
    disguised_face🥸
    sunglasses😎
    nerd_face🤓
    monocle_face🧐
    confused😕
    worried😟
    slightly_frowning_face🙁
    frowning_face☹️
    open_mouth😮
    hushed😯
    astonished😲
    flushed😳
    pleading_face🥺
    frowning😦
    anguished😧
    fearful😨
    cold_sweat😰
    disappointed_relieved😥
    cry😢
    sob😭
    scream😱
    confounded😖
    persevere😣
    disappointed😞
    sweat😓
    weary😩
    tired_face😫
    yawning_face🥱
    triumph😤
    rage😡
    angry😠
    cursing_face🤬
    smiling_imp😈
    imp👿
    skull💀
    skull_and_crossbones☠️
    hankey💩
    clown_face🤡
    japanese_ogre👹
    japanese_goblin👺
    ghost👻
    alien👽
    space_invader👾
    robot🤖
    smiley_cat😺
    smile_cat😸
    joy_cat😹
    heart_eyes_cat😻
    smirk_cat😼
    kissing_cat😽
    scream_cat🙀
    crying_cat_face😿
    pouting_cat😾
    see_no_evil🙈
    hear_no_evil🙉
    speak_no_evil🙊
    kiss💋
    love_letter💌
    cupid💘
    gift_heart💝
    sparkling_heart💖
    heartpulse💗
    heartbeat💓
    revolving_hearts💞
    two_hearts💕
    heart_decoration💟
    heavy_heart_exclamation❣️
    broken_heart💔
    heart_on_fire❤️‍🔥
    mending_heart❤️‍🩹
    heart❤️
    orange_heart🧡
    yellow_heart💛
    green_heart💚
    blue_heart💙
    purple_heart💜
    brown_heart🤎
    black_heart🖤
    white_heart🤍
    100💯
    anger💢
    boom💥
    dizzy💫
    sweat_drops💦
    dash💨
    hole🕳️
    bomb💣
    speech_balloon💬
    eye_speech_bubble👁️‍🗨️
    left_speech_bubble🗨️
    right_anger_bubble🗯️
    thought_balloon💭
    zzz💤
    wave👋
    raised_back_of_hand🤚
    raised_hand_with_fingers_splayed🖐️
    hand
    vulcan_salute🖖
    ok_hand👌
    pinched_fingers🤌
    pinching_hand🤏
    v✌️
    crossed_fingers🤞
    love_you_gesture🤟
    metal🤘
    call_me_hand🤙
    point_left👈
    point_right👉
    point_up_2👆
    middle_finger🖕
    point_down👇
    point_up☝️
    +1👍
    -1👎
    fist_raised
    fist_oncoming👊
    fist_left🤛
    fist_right🤜
    clap👏
    raised_hands🙌
    open_hands👐
    palms_up_together🤲
    handshake🤝
    pray🙏
    writing_hand✍️
    nail_care💅
    selfie🤳
    muscle💪
    mechanical_arm🦾
    mechanical_leg🦿
    leg🦵
    foot🦶
    ear👂
    ear_with_hearing_aid🦻
    nose👃
    brain🧠
    anatomical_heart🫀
    lungs🫁
    tooth🦷
    bone🦴
    eyes👀
    eye👁️
    tongue👅
    lips👄
    baby👶
    child🧒
    boy👦
    girl👧
    adult🧑
    blond_haired_person👱
    man👨
    bearded_person🧔
    man_beard🧔‍♂️
    woman_beard🧔‍♀️
    red_haired_man👨‍🦰
    curly_haired_man👨‍🦱
    white_haired_man👨‍🦳
    bald_man👨‍🦲
    woman👩
    red_haired_woman👩‍🦰
    person_red_hair🧑‍🦰
    curly_haired_woman👩‍🦱
    person_curly_hair🧑‍🦱
    white_haired_woman👩‍🦳
    person_white_hair🧑‍🦳
    bald_woman👩‍🦲
    person_bald🧑‍🦲
    blond_haired_woman👱‍♀️
    blond_haired_man👱‍♂️
    older_adult🧓
    older_man👴
    older_woman👵
    frowning_person🙍
    frowning_man🙍‍♂️
    frowning_woman🙍‍♀️
    pouting_face🙎
    pouting_man🙎‍♂️
    pouting_woman🙎‍♀️
    no_good🙅
    no_good_man🙅‍♂️
    no_good_woman🙅‍♀️
    ok_person🙆
    ok_man🙆‍♂️
    ok_woman🙆‍♀️
    tipping_hand_person💁
    tipping_hand_man💁‍♂️
    tipping_hand_woman💁‍♀️
    raising_hand🙋
    raising_hand_man🙋‍♂️
    raising_hand_woman🙋‍♀️
    deaf_person🧏
    deaf_man🧏‍♂️
    deaf_woman🧏‍♀️
    bow🙇
    bowing_man🙇‍♂️
    bowing_woman🙇‍♀️
    facepalm🤦
    man_facepalming🤦‍♂️
    woman_facepalming🤦‍♀️
    shrug🤷
    man_shrugging🤷‍♂️
    woman_shrugging🤷‍♀️
    health_worker🧑‍⚕️
    man_health_worker👨‍⚕️
    woman_health_worker👩‍⚕️
    student🧑‍🎓
    man_student👨‍🎓
    woman_student👩‍🎓
    teacher🧑‍🏫
    man_teacher👨‍🏫
    woman_teacher👩‍🏫
    judge🧑‍⚖️
    man_judge👨‍⚖️
    woman_judge👩‍⚖️
    farmer🧑‍🌾
    man_farmer👨‍🌾
    woman_farmer👩‍🌾
    cook🧑‍🍳
    man_cook👨‍🍳
    woman_cook👩‍🍳
    mechanic🧑‍🔧
    man_mechanic👨‍🔧
    woman_mechanic👩‍🔧
    factory_worker🧑‍🏭
    man_factory_worker👨‍🏭
    woman_factory_worker👩‍🏭
    office_worker🧑‍💼
    man_office_worker👨‍💼
    woman_office_worker👩‍💼
    scientist🧑‍🔬
    man_scientist👨‍🔬
    woman_scientist👩‍🔬
    technologist🧑‍💻
    man_technologist👨‍💻
    woman_technologist👩‍💻
    singer🧑‍🎤
    man_singer👨‍🎤
    woman_singer👩‍🎤
    artist🧑‍🎨
    man_artist👨‍🎨
    woman_artist👩‍🎨
    pilot🧑‍✈️
    man_pilot👨‍✈️
    woman_pilot👩‍✈️
    astronaut🧑‍🚀
    man_astronaut👨‍🚀
    woman_astronaut👩‍🚀
    firefighter🧑‍🚒
    man_firefighter👨‍🚒
    woman_firefighter👩‍🚒
    police_officer👮
    policeman👮‍♂️
    policewoman👮‍♀️
    detective🕵️
    male_detective🕵️‍♂️
    female_detective🕵️‍♀️
    guard💂
    guardsman💂‍♂️
    guardswoman💂‍♀️
    ninja🥷
    construction_worker👷
    construction_worker_man👷‍♂️
    construction_worker_woman👷‍♀️
    prince🤴
    princess👸
    person_with_turban👳
    man_with_turban👳‍♂️
    woman_with_turban👳‍♀️
    man_with_gua_pi_mao👲
    woman_with_headscarf🧕
    person_in_tuxedo🤵
    man_in_tuxedo🤵‍♂️
    woman_in_tuxedo🤵‍♀️
    person_with_veil👰
    man_with_veil👰‍♂️
    woman_with_veil👰‍♀️
    pregnant_woman🤰
    breast_feeding🤱
    woman_feeding_baby👩‍🍼
    man_feeding_baby👨‍🍼
    person_feeding_baby🧑‍🍼
    angel👼
    santa🎅
    mrs_claus🤶
    mx_claus🧑‍🎄
    superhero🦸
    superhero_man🦸‍♂️
    superhero_woman🦸‍♀️
    supervillain🦹
    supervillain_man🦹‍♂️
    supervillain_woman🦹‍♀️
    mage🧙
    mage_man🧙‍♂️
    mage_woman🧙‍♀️
    fairy🧚
    fairy_man🧚‍♂️
    fairy_woman🧚‍♀️
    vampire🧛
    vampire_man🧛‍♂️
    vampire_woman🧛‍♀️
    merperson🧜
    merman🧜‍♂️
    mermaid🧜‍♀️
    elf🧝
    elf_man🧝‍♂️
    elf_woman🧝‍♀️
    genie🧞
    genie_man🧞‍♂️
    genie_woman🧞‍♀️
    zombie🧟
    zombie_man🧟‍♂️
    zombie_woman🧟‍♀️
    massage💆
    massage_man💆‍♂️
    massage_woman💆‍♀️
    haircut💇
    haircut_man💇‍♂️
    haircut_woman💇‍♀️
    walking🚶
    walking_man🚶‍♂️
    walking_woman🚶‍♀️
    standing_person🧍
    standing_man🧍‍♂️
    standing_woman🧍‍♀️
    kneeling_person🧎
    kneeling_man🧎‍♂️
    kneeling_woman🧎‍♀️
    person_with_probing_cane🧑‍🦯
    man_with_probing_cane👨‍🦯
    woman_with_probing_cane👩‍🦯
    person_in_motorized_wheelchair🧑‍🦼
    man_in_motorized_wheelchair👨‍🦼
    woman_in_motorized_wheelchair👩‍🦼
    person_in_manual_wheelchair🧑‍🦽
    man_in_manual_wheelchair👨‍🦽
    woman_in_manual_wheelchair👩‍🦽
    runner🏃
    running_man🏃‍♂️
    running_woman🏃‍♀️
    woman_dancing💃
    man_dancing🕺
    business_suit_levitating🕴️
    dancers👯
    dancing_men👯‍♂️
    dancing_women👯‍♀️
    sauna_person🧖
    sauna_man🧖‍♂️
    sauna_woman🧖‍♀️
    climbing🧗
    climbing_man🧗‍♂️
    climbing_woman🧗‍♀️
    person_fencing🤺
    horse_racing🏇
    skier⛷️
    snowboarder🏂
    golfing🏌️
    golfing_man🏌️‍♂️
    golfing_woman🏌️‍♀️
    surfer🏄
    surfing_man🏄‍♂️
    surfing_woman🏄‍♀️
    rowboat🚣
    rowing_man🚣‍♂️
    rowing_woman🚣‍♀️
    swimmer🏊
    swimming_man🏊‍♂️
    swimming_woman🏊‍♀️
    bouncing_ball_person⛹️
    bouncing_ball_man⛹️‍♂️
    bouncing_ball_woman⛹️‍♀️
    weight_lifting🏋️
    weight_lifting_man🏋️‍♂️
    weight_lifting_woman🏋️‍♀️
    bicyclist🚴
    biking_man🚴‍♂️
    biking_woman🚴‍♀️
    mountain_bicyclist🚵
    mountain_biking_man🚵‍♂️
    mountain_biking_woman🚵‍♀️
    cartwheeling🤸
    man_cartwheeling🤸‍♂️
    woman_cartwheeling🤸‍♀️
    wrestling🤼
    men_wrestling🤼‍♂️
    women_wrestling🤼‍♀️
    water_polo🤽
    man_playing_water_polo🤽‍♂️
    woman_playing_water_polo🤽‍♀️
    handball_person🤾
    man_playing_handball🤾‍♂️
    woman_playing_handball🤾‍♀️
    juggling_person🤹
    man_juggling🤹‍♂️
    woman_juggling🤹‍♀️
    lotus_position🧘
    lotus_position_man🧘‍♂️
    lotus_position_woman🧘‍♀️
    bath🛀
    sleeping_bed🛌
    people_holding_hands🧑‍🤝‍🧑
    two_women_holding_hands👭
    couple👫
    two_men_holding_hands👬
    couplekiss💏
    couplekiss_man_woman👩‍❤️‍💋‍👨
    couplekiss_man_man👨‍❤️‍💋‍👨
    couplekiss_woman_woman👩‍❤️‍💋‍👩
    couple_with_heart💑
    couple_with_heart_woman_man👩‍❤️‍👨
    couple_with_heart_man_man👨‍❤️‍👨
    couple_with_heart_woman_woman👩‍❤️‍👩
    family👪
    family_man_woman_boy👨‍👩‍👦
    family_man_woman_girl👨‍👩‍👧
    family_man_woman_girl_boy👨‍👩‍👧‍👦
    family_man_woman_boy_boy👨‍👩‍👦‍👦
    family_man_woman_girl_girl👨‍👩‍👧‍👧
    family_man_man_boy👨‍👨‍👦
    family_man_man_girl👨‍👨‍👧
    family_man_man_girl_boy👨‍👨‍👧‍👦
    family_man_man_boy_boy👨‍👨‍👦‍👦
    family_man_man_girl_girl👨‍👨‍👧‍👧
    family_woman_woman_boy👩‍👩‍👦
    family_woman_woman_girl👩‍👩‍👧
    family_woman_woman_girl_boy👩‍👩‍👧‍👦
    family_woman_woman_boy_boy👩‍👩‍👦‍👦
    family_woman_woman_girl_girl👩‍👩‍👧‍👧
    family_man_boy👨‍👦
    family_man_boy_boy👨‍👦‍👦
    family_man_girl👨‍👧
    family_man_girl_boy👨‍👧‍👦
    family_man_girl_girl👨‍👧‍👧
    family_woman_boy👩‍👦
    family_woman_boy_boy👩‍👦‍👦
    family_woman_girl👩‍👧
    family_woman_girl_boy👩‍👧‍👦
    family_woman_girl_girl👩‍👧‍👧
    speaking_head🗣️
    bust_in_silhouette👤
    busts_in_silhouette👥
    people_hugging🫂
    footprints👣
    monkey_face🐵
    monkey🐒
    gorilla🦍
    orangutan🦧
    dog🐶
    dog2🐕
    guide_dog🦮
    service_dog🐕‍🦺
    poodle🐩
    wolf🐺
    fox_face🦊
    raccoon🦝
    cat🐱
    cat2🐈
    black_cat🐈‍⬛
    lion🦁
    tiger🐯
    tiger2🐅
    leopard🐆
    horse🐴
    racehorse🐎
    unicorn🦄
    zebra🦓
    deer🦌
    bison🦬
    cow🐮
    ox🐂
    water_buffalo🐃
    cow2🐄
    pig🐷
    pig2🐖
    boar🐗
    pig_nose🐽
    ram🐏
    sheep🐑
    goat🐐
    dromedary_camel🐪
    camel🐫
    llama🦙
    giraffe🦒
    elephant🐘
    mammoth🦣
    rhinoceros🦏
    hippopotamus🦛
    mouse🐭
    mouse2🐁
    rat🐀
    hamster🐹
    rabbit🐰
    rabbit2🐇
    chipmunk🐿️
    beaver🦫
    hedgehog🦔
    bat🦇
    bear🐻
    polar_bear🐻‍❄️
    koala🐨
    panda_face🐼
    sloth🦥
    otter🦦
    skunk🦨
    kangaroo🦘
    badger🦡
    feet🐾
    turkey🦃
    chicken🐔
    rooster🐓
    hatching_chick🐣
    baby_chick🐤
    hatched_chick🐥
    bird🐦
    penguin🐧
    dove🕊️
    eagle🦅
    duck🦆
    swan🦢
    owl🦉
    dodo🦤
    feather🪶
    flamingo🦩
    peacock🦚
    parrot🦜
    frog🐸
    crocodile🐊
    turtle🐢
    lizard🦎
    snake🐍
    dragon_face🐲
    dragon🐉
    sauropod🦕
    t-rex🦖
    whale🐳
    whale2🐋
    dolphin🐬
    seal🦭
    fish🐟
    tropical_fish🐠
    blowfish🐡
    shark🦈
    octopus🐙
    TagEmoji
    octopus🐙
    shell🐚
    snail🐌
    butterfly🦋
    bug🐛
    ant🐜
    bee🐝
    beetle🪲
    lady_beetle🐞
    cricket🦗
    cockroach🪳
    spider🕷️
    spider_web🕸️
    scorpion🦂
    mosquito🦟
    fly🪰
    worm🪱
    microbe🦠
    bouquet💐
    cherry_blossom🌸
    white_flower💮
    rosette🏵️
    rose🌹
    wilted_flower🥀
    hibiscus🌺
    sunflower🌻
    blossom🌼
    tulip🌷
    seedling🌱
    potted_plant🪴
    evergreen_tree🌲
    deciduous_tree🌳
    palm_tree🌴
    cactus🌵
    ear_of_rice🌾
    herb🌿
    shamrock☘️
    four_leaf_clover🍀
    maple_leaf🍁
    fallen_leaf🍂
    leaves🍃
    grapes🍇
    melon🍈
    watermelon🍉
    tangerine🍊
    lemon🍋
    banana🍌
    pineapple🍍
    mango🥭
    apple🍎
    green_apple🍏
    pear🍐
    peach🍑
    cherries🍒
    strawberry🍓
    blueberries🫐
    kiwi_fruit🥝
    tomato🍅
    olive🫒
    coconut🥥
    avocado🥑
    eggplant🍆
    potato🥔
    carrot🥕
    corn🌽
    hot_pepper🌶️
    bell_pepper🫑
    cucumber🥒
    leafy_green🥬
    broccoli🥦
    garlic🧄
    onion🧅
    mushroom🍄
    peanuts🥜
    chestnut🌰
    bread🍞
    croissant🥐
    baguette_bread🥖
    flatbread🫓
    pretzel🥨
    bagel🥯
    pancakes🥞
    waffle🧇
    cheese🧀
    meat_on_bone🍖
    poultry_leg🍗
    cut_of_meat🥩
    bacon🥓
    hamburger🍔
    fries🍟
    pizza🍕
    hotdog🌭
    sandwich🥪
    taco🌮
    burrito🌯
    tamale🫔
    stuffed_flatbread🥙
    falafel🧆
    egg🥚
    fried_egg🍳
    shallow_pan_of_food🥘
    stew🍲
    fondue🫕
    bowl_with_spoon🥣
    green_salad🥗
    popcorn🍿
    butter🧈
    salt🧂
    canned_food🥫
    bento🍱
    rice_cracker🍘
    rice_ball🍙
    rice🍚
    curry🍛
    ramen🍜
    spaghetti🍝
    sweet_potato🍠
    oden🍢
    sushi🍣
    fried_shrimp🍤
    fish_cake🍥
    moon_cake🥮
    dango🍡
    dumpling🥟
    fortune_cookie🥠
    takeout_box🥡
    crab🦀
    lobster🦞
    shrimp🦐
    squid🦑
    oyster🦪
    icecream🍦
    shaved_ice🍧
    ice_cream🍨
    doughnut🍩
    cookie🍪
    birthday🎂
    cake🍰
    cupcake🧁
    pie🥧
    chocolate_bar🍫
    candy🍬
    lollipop🍭
    custard🍮
    honey_pot🍯
    baby_bottle🍼
    milk_glass🥛
    coffee
    teapot🫖
    tea🍵
    sake🍶
    champagne🍾
    wine_glass🍷
    cocktail🍸
    tropical_drink🍹
    beer🍺
    beers🍻
    clinking_glasses🥂
    tumbler_glass🥃
    cup_with_straw🥤
    bubble_tea🧋
    beverage_box🧃
    mate🧉
    ice_cube🧊
    chopsticks🥢
    plate_with_cutlery🍽️
    fork_and_knife🍴
    spoon🥄
    hocho🔪
    amphora🏺
    earth_africa🌍
    earth_americas🌎
    earth_asia🌏
    globe_with_meridians🌐
    world_map🗺️
    japan🗾
    compass🧭
    mountain_snow🏔️
    mountain⛰️
    volcano🌋
    mount_fuji🗻
    camping🏕️
    beach_umbrella🏖️
    desert🏜️
    desert_island🏝️
    national_park🏞️
    stadium🏟️
    classical_building🏛️
    building_construction🏗️
    bricks🧱
    rock🪨
    wood🪵
    hut🛖
    houses🏘️
    derelict_house🏚️
    house🏠
    house_with_garden🏡
    office🏢
    post_office🏣
    european_post_office🏤
    hospital🏥
    bank🏦
    hotel🏨
    love_hotel🏩
    convenience_store🏪
    school🏫
    department_store🏬
    factory🏭
    japanese_castle🏯
    european_castle🏰
    wedding💒
    tokyo_tower🗼
    statue_of_liberty🗽
    church
    mosque🕌
    hindu_temple🛕
    synagogue🕍
    shinto_shrine⛩️
    kaaba🕋
    fountain
    tent
    foggy🌁
    night_with_stars🌃
    cityscape🏙️
    sunrise_over_mountains🌄
    sunrise🌅
    city_sunset🌆
    city_sunrise🌇
    bridge_at_night🌉
    hotsprings♨️
    carousel_horse🎠
    ferris_wheel🎡
    roller_coaster🎢
    barber💈
    circus_tent🎪
    steam_locomotive🚂
    railway_car🚃
    bullettrain_side🚄
    bullettrain_front🚅
    train2🚆
    metro🚇
    light_rail🚈
    station🚉
    tram🚊
    monorail🚝
    mountain_railway🚞
    train🚋
    bus🚌
    oncoming_bus🚍
    trolleybus🚎
    minibus🚐
    ambulance🚑
    fire_engine🚒
    police_car🚓
    oncoming_police_car🚔
    taxi🚕
    oncoming_taxi🚖
    car🚗
    oncoming_automobile🚘
    blue_car🚙
    pickup_truck🛻
    truck🚚
    articulated_lorry🚛
    tractor🚜
    racing_car🏎️
    motorcycle🏍️
    motor_scooter🛵
    manual_wheelchair🦽
    motorized_wheelchair🦼
    auto_rickshaw🛺
    bike🚲
    kick_scooter🛴
    skateboard🛹
    roller_skate🛼
    busstop🚏
    motorway🛣️
    railway_track🛤️
    oil_drum🛢️
    fuelpump
    rotating_light🚨
    traffic_light🚥
    vertical_traffic_light🚦
    stop_sign🛑
    construction🚧
    anchor
    boat
    canoe🛶
    speedboat🚤
    passenger_ship🛳️
    ferry⛴️
    motor_boat🛥️
    ship🚢
    airplane✈️
    small_airplane🛩️
    flight_departure🛫
    flight_arrival🛬
    parachute🪂
    seat💺
    helicopter🚁
    suspension_railway🚟
    mountain_cableway🚠
    aerial_tramway🚡
    artificial_satellite🛰️
    rocket🚀
    flying_saucer🛸
    bellhop_bell🛎️
    luggage🧳
    hourglass
    hourglass_flowing_sand
    watch
    alarm_clock
    stopwatch⏱️
    timer_clock⏲️
    mantelpiece_clock🕰️
    clock12🕛
    clock1230🕧
    clock1🕐
    clock130🕜
    clock2🕑
    clock230🕝
    clock3🕒
    clock330🕞
    clock4🕓
    clock430🕟
    clock5🕔
    clock530🕠
    clock6🕕
    clock630🕡
    clock7🕖
    clock730🕢
    clock8🕗
    clock830🕣
    clock9🕘
    clock930🕤
    clock10🕙
    clock1030🕥
    clock11🕚
    clock1130🕦
    new_moon🌑
    waxing_crescent_moon🌒
    first_quarter_moon🌓
    moon🌔
    full_moon🌕
    waning_gibbous_moon🌖
    last_quarter_moon🌗
    waning_crescent_moon🌘
    crescent_moon🌙
    new_moon_with_face🌚
    first_quarter_moon_with_face🌛
    last_quarter_moon_with_face🌜
    thermometer🌡️
    sunny☀️
    full_moon_with_face🌝
    sun_with_face🌞
    ringed_planet🪐
    star
    star2🌟
    stars🌠
    milky_way🌌
    cloud☁️
    partly_sunny
    cloud_with_lightning_and_rain⛈️
    sun_behind_small_cloud🌤️
    sun_behind_large_cloud🌥️
    sun_behind_rain_cloud🌦️
    cloud_with_rain🌧️
    cloud_with_snow🌨️
    cloud_with_lightning🌩️
    tornado🌪️
    fog🌫️
    wind_face🌬️
    cyclone🌀
    rainbow🌈
    closed_umbrella🌂
    open_umbrella☂️
    umbrella
    parasol_on_ground⛱️
    zap
    snowflake❄️
    snowman_with_snow☃️
    snowman
    comet☄️
    fire🔥
    droplet💧
    ocean🌊
    jack_o_lantern🎃
    christmas_tree🎄
    fireworks🎆
    sparkler🎇
    firecracker🧨
    sparkles
    balloon🎈
    tada🎉
    confetti_ball🎊
    tanabata_tree🎋
    bamboo🎍
    dolls🎎
    flags🎏
    wind_chime🎐
    rice_scene🎑
    red_envelope🧧
    ribbon🎀
    gift🎁
    reminder_ribbon🎗️
    tickets🎟️
    ticket🎫
    medal_military🎖️
    trophy🏆
    medal_sports🏅
    1st_place_medal🥇
    2nd_place_medal🥈
    3rd_place_medal🥉
    soccer
    baseball
    softball🥎
    basketball🏀
    volleyball🏐
    football🏈
    rugby_football🏉
    tennis🎾
    flying_disc🥏
    bowling🎳
    cricket_game🏏
    field_hockey🏑
    ice_hockey🏒
    lacrosse🥍
    ping_pong🏓
    badminton🏸
    boxing_glove🥊
    martial_arts_uniform🥋
    goal_net🥅
    golf
    ice_skate⛸️
    fishing_pole_and_fish🎣
    diving_mask🤿
    running_shirt_with_sash🎽
    ski🎿
    sled🛷
    curling_stone🥌
    dart🎯
    yo_yo🪀
    kite🪁
    8ball🎱
    crystal_ball🔮
    magic_wand🪄
    nazar_amulet🧿
    video_game🎮
    joystick🕹️
    slot_machine🎰
    game_die🎲
    jigsaw🧩
    teddy_bear🧸
    pinata🪅
    nesting_dolls🪆
    spades♠️
    hearts♥️
    diamonds♦️
    clubs♣️
    chess_pawn♟️
    black_joker🃏
    mahjong🀄
    flower_playing_cards🎴
    performing_arts🎭
    framed_picture🖼️
    art🎨
    thread🧵
    sewing_needle🪡
    yarn🧶
    knot🪢
    eyeglasses👓
    dark_sunglasses🕶️
    goggles🥽
    lab_coat🥼
    safety_vest🦺
    necktie👔
    shirt👕
    jeans👖
    scarf🧣
    gloves🧤
    coat🧥
    socks🧦
    dress👗
    kimono👘
    sari🥻
    one_piece_swimsuit🩱
    swim_brief🩲
    shorts🩳
    bikini👙
    womans_clothes👚
    purse👛
    handbag👜
    pouch👝
    shopping🛍️
    school_satchel🎒
    thong_sandal🩴
    mans_shoe👞
    athletic_shoe👟
    hiking_boot🥾
    flat_shoe🥿
    high_heel👠
    sandal👡
    ballet_shoes🩰
    boot👢
    crown👑
    womans_hat👒
    tophat🎩
    mortar_board🎓
    billed_cap🧢
    military_helmet🪖
    rescue_worker_helmet⛑️
    prayer_beads📿
    lipstick💄
    ring💍
    gem💎
    mute🔇
    speaker🔈
    sound🔉
    loud_sound🔊
    loudspeaker📢
    mega📣
    postal_horn📯
    bell🔔
    no_bell🔕
    musical_score🎼
    musical_note🎵
    notes🎶
    studio_microphone🎙️
    level_slider🎚️
    control_knobs🎛️
    microphone🎤
    headphones🎧
    radio📻
    saxophone🎷
    accordion🪗
    guitar🎸
    musical_keyboard🎹
    trumpet🎺
    violin🎻
    banjo🪕
    drum🥁
    long_drum🪘
    iphone📱
    calling📲
    phone☎️
    telephone_receiver📞
    pager📟
    fax📠
    battery🔋
    electric_plug🔌
    computer💻
    desktop_computer🖥️
    printer🖨️
    keyboard⌨️
    computer_mouse🖱️
    trackball🖲️
    minidisc💽
    floppy_disk💾
    cd💿
    dvd📀
    abacus🧮
    movie_camera🎥
    film_strip🎞️
    film_projector📽️
    clapper🎬
    tv📺
    camera📷
    camera_flash📸
    video_camera📹
    vhs📼
    mag🔍
    mag_right🔎
    candle🕯️
    bulb💡
    flashlight🔦
    izakaya_lantern🏮
    diya_lamp🪔
    notebook_with_decorative_cover📔
    closed_book📕
    book📖
    green_book📗
    blue_book📘
    orange_book📙
    books📚
    notebook📓
    ledger📒
    page_with_curl📃
    scroll📜
    page_facing_up📄
    newspaper📰
    newspaper_roll🗞️
    bookmark_tabs📑
    bookmark🔖
    label🏷️
    moneybag💰
    coin🪙
    yen💴
    dollar💵
    euro💶
    pound💷
    money_with_wings💸
    credit_card💳
    receipt🧾
    chart💹
    envelope✉️
    email📧
    TagEmoji
    email📧
    incoming_envelope📨
    envelope_with_arrow📩
    outbox_tray📤
    inbox_tray📥
    package📦
    mailbox📫
    mailbox_closed📪
    mailbox_with_mail📬
    mailbox_with_no_mail📭
    postbox📮
    ballot_box🗳️
    pencil2✏️
    black_nib✒️
    fountain_pen🖋️
    pen🖊️
    paintbrush🖌️
    crayon🖍️
    memo📝
    briefcase💼
    file_folder📁
    open_file_folder📂
    card_index_dividers🗂️
    date📅
    calendar📆
    spiral_notepad🗒️
    spiral_calendar🗓️
    card_index📇
    chart_with_upwards_trend📈
    chart_with_downwards_trend📉
    bar_chart📊
    clipboard📋
    pushpin📌
    round_pushpin📍
    paperclip📎
    paperclips🖇️
    straight_ruler📏
    triangular_ruler📐
    scissors✂️
    card_file_box🗃️
    file_cabinet🗄️
    wastebasket🗑️
    lock🔒
    unlock🔓
    lock_with_ink_pen🔏
    closed_lock_with_key🔐
    key🔑
    old_key🗝️
    hammer🔨
    axe🪓
    pick⛏️
    hammer_and_pick⚒️
    hammer_and_wrench🛠️
    dagger🗡️
    crossed_swords⚔️
    gun🔫
    boomerang🪃
    bow_and_arrow🏹
    shield🛡️
    carpentry_saw🪚
    wrench🔧
    screwdriver🪛
    nut_and_bolt🔩
    gear⚙️
    clamp🗜️
    balance_scale⚖️
    probing_cane🦯
    link🔗
    chains⛓️
    hook🪝
    toolbox🧰
    magnet🧲
    ladder🪜
    alembic⚗️
    test_tube🧪
    petri_dish🧫
    dna🧬
    microscope🔬
    telescope🔭
    satellite📡
    syringe💉
    drop_of_blood🩸
    pill💊
    adhesive_bandage🩹
    stethoscope🩺
    door🚪
    elevator🛗
    mirror🪞
    window🪟
    bed🛏️
    couch_and_lamp🛋️
    chair🪑
    toilet🚽
    plunger🪠
    shower🚿
    bathtub🛁
    mouse_trap🪤
    razor🪒
    lotion_bottle🧴
    safety_pin🧷
    broom🧹
    basket🧺
    roll_of_paper🧻
    bucket🪣
    soap🧼
    toothbrush🪥
    sponge🧽
    fire_extinguisher🧯
    shopping_cart🛒
    smoking🚬
    coffin⚰️
    headstone🪦
    funeral_urn⚱️
    moyai🗿
    placard🪧
    atm🏧
    put_litter_in_its_place🚮
    potable_water🚰
    wheelchair
    mens🚹
    womens🚺
    restroom🚻
    baby_symbol🚼
    wc🚾
    passport_control🛂
    customs🛃
    baggage_claim🛄
    left_luggage🛅
    warning⚠️
    children_crossing🚸
    no_entry
    no_entry_sign🚫
    no_bicycles🚳
    no_smoking🚭
    do_not_litter🚯
    non-potable_water🚱
    no_pedestrians🚷
    no_mobile_phones📵
    underage🔞
    radioactive☢️
    biohazard☣️
    arrow_up⬆️
    arrow_upper_right↗️
    arrow_right➡️
    arrow_lower_right↘️
    arrow_down⬇️
    arrow_lower_left↙️
    arrow_left⬅️
    arrow_upper_left↖️
    arrow_up_down↕️
    left_right_arrow↔️
    leftwards_arrow_with_hook↩️
    arrow_right_hook↪️
    arrow_heading_up⤴️
    arrow_heading_down⤵️
    arrows_clockwise🔃
    arrows_counterclockwise🔄
    back🔙
    end🔚
    on🔛
    soon🔜
    top🔝
    place_of_worship🛐
    atom_symbol⚛️
    om🕉️
    star_of_david✡️
    wheel_of_dharma☸️
    yin_yang☯️
    latin_cross✝️
    orthodox_cross☦️
    star_and_crescent☪️
    peace_symbol☮️
    menorah🕎
    six_pointed_star🔯
    aries
    taurus
    gemini
    cancer
    leo
    virgo
    libra
    scorpius
    sagittarius
    capricorn
    aquarius
    pisces
    ophiuchus
    twisted_rightwards_arrows🔀
    repeat🔁
    repeat_one🔂
    arrow_forward▶️
    fast_forward
    next_track_button⏭️
    play_or_pause_button⏯️
    arrow_backward◀️
    rewind
    previous_track_button⏮️
    arrow_up_small🔼
    arrow_double_up
    arrow_down_small🔽
    arrow_double_down
    pause_button⏸️
    stop_button⏹️
    record_button⏺️
    eject_button⏏️
    cinema🎦
    low_brightness🔅
    high_brightness🔆
    signal_strength📶
    vibration_mode📳
    mobile_phone_off📴
    female_sign♀️
    male_sign♂️
    transgender_symbol⚧️
    heavy_multiplication_x✖️
    heavy_plus_sign
    heavy_minus_sign
    heavy_division_sign
    infinity♾️
    bangbang‼️
    interrobang⁉️
    question
    grey_question
    grey_exclamation
    exclamation
    wavy_dash〰️
    currency_exchange💱
    heavy_dollar_sign💲
    medical_symbol⚕️
    recycle♻️
    fleur_de_lis⚜️
    trident🔱
    name_badge📛
    beginner🔰
    o
    white_check_mark
    ballot_box_with_check☑️
    heavy_check_mark✔️
    x
    negative_squared_cross_mark
    curly_loop
    loop
    part_alternation_mark〽️
    eight_spoked_asterisk✳️
    eight_pointed_black_star✴️
    sparkle❇️
    copyright©️
    registered®️
    tm™️
    hash#️⃣
    asterisk*️⃣
    zero0️⃣
    one1️⃣
    two2️⃣
    three3️⃣
    four4️⃣
    five5️⃣
    six6️⃣
    seven7️⃣
    eight8️⃣
    nine9️⃣
    keycap_ten🔟
    capital_abcd🔠
    abcd🔡
    1234🔢
    symbols🔣
    abc🔤
    a🅰️
    ab🆎
    b🅱️
    cl🆑
    cool🆒
    free🆓
    information_sourceℹ️
    id🆔
    mⓂ️
    new🆕
    ng🆖
    o2🅾️
    ok🆗
    parking🅿️
    sos🆘
    up🆙
    vs🆚
    koko🈁
    sa🈂️
    u6708🈷️
    u6709🈶
    u6307🈯
    ideograph_advantage🉐
    u5272🈹
    u7121🈚
    u7981🈲
    accept🉑
    u7533🈸
    u5408🈴
    u7a7a🈳
    congratulations㊗️
    secret㊙️
    u55b6🈺
    u6e80🈵
    red_circle🔴
    orange_circle🟠
    yellow_circle🟡
    green_circle🟢
    large_blue_circle🔵
    purple_circle🟣
    brown_circle🟤
    black_circle
    white_circle
    red_square🟥
    orange_square🟧
    yellow_square🟨
    green_square🟩
    blue_square🟦
    purple_square🟪
    brown_square🟫
    black_large_square
    white_large_square
    black_medium_square◼️
    white_medium_square◻️
    black_medium_small_square
    white_medium_small_square
    black_small_square▪️
    white_small_square▫️
    large_orange_diamond🔶
    large_blue_diamond🔷
    small_orange_diamond🔸
    small_blue_diamond🔹
    small_red_triangle🔺
    small_red_triangle_down🔻
    diamond_shape_with_a_dot_inside💠
    radio_button🔘
    white_square_button🔳
    black_square_button🔲
    checkered_flag🏁
    triangular_flag_on_post🚩
    crossed_flags🎌
    black_flag🏴
    white_flag🏳️
    rainbow_flag🏳️‍🌈
    transgender_flag🏳️‍⚧️
    pirate_flag🏴‍☠️
    ascension_island🇦🇨
    andorra🇦🇩
    united_arab_emirates🇦🇪
    afghanistan🇦🇫
    antigua_barbuda🇦🇬
    anguilla🇦🇮
    albania🇦🇱
    armenia🇦🇲
    angola🇦🇴
    antarctica🇦🇶
    argentina🇦🇷
    american_samoa🇦🇸
    austria🇦🇹
    australia🇦🇺
    aruba🇦🇼
    aland_islands🇦🇽
    azerbaijan🇦🇿
    bosnia_herzegovina🇧🇦
    barbados🇧🇧
    bangladesh🇧🇩
    belgium🇧🇪
    burkina_faso🇧🇫
    bulgaria🇧🇬
    bahrain🇧🇭
    burundi🇧🇮
    benin🇧🇯
    st_barthelemy🇧🇱
    bermuda🇧🇲
    brunei🇧🇳
    bolivia🇧🇴
    caribbean_netherlands🇧🇶
    brazil🇧🇷
    bahamas🇧🇸
    bhutan🇧🇹
    bouvet_island🇧🇻
    botswana🇧🇼
    belarus🇧🇾
    belize🇧🇿
    canada🇨🇦
    cocos_islands🇨🇨
    congo_kinshasa🇨🇩
    central_african_republic🇨🇫
    congo_brazzaville🇨🇬
    switzerland🇨🇭
    cote_divoire🇨🇮
    cook_islands🇨🇰
    chile🇨🇱
    cameroon🇨🇲
    cn🇨🇳
    colombia🇨🇴
    clipperton_island🇨🇵
    costa_rica🇨🇷
    cuba🇨🇺
    cape_verde🇨🇻
    curacao🇨🇼
    christmas_island🇨🇽
    cyprus🇨🇾
    czech_republic🇨🇿
    de🇩🇪
    diego_garcia🇩🇬
    djibouti🇩🇯
    denmark🇩🇰
    dominica🇩🇲
    dominican_republic🇩🇴
    algeria🇩🇿
    ceuta_melilla🇪🇦
    ecuador🇪🇨
    estonia🇪🇪
    egypt🇪🇬
    western_sahara🇪🇭
    eritrea🇪🇷
    es🇪🇸
    ethiopia🇪🇹
    eu🇪🇺
    finland🇫🇮
    fiji🇫🇯
    falkland_islands🇫🇰
    micronesia🇫🇲
    faroe_islands🇫🇴
    fr🇫🇷
    gabon🇬🇦
    gb🇬🇧
    grenada🇬🇩
    georgia🇬🇪
    french_guiana🇬🇫
    guernsey🇬🇬
    ghana🇬🇭
    gibraltar🇬🇮
    greenland🇬🇱
    gambia🇬🇲
    guinea🇬🇳
    guadeloupe🇬🇵
    equatorial_guinea🇬🇶
    greece🇬🇷
    south_georgia_south_sandwich_islands🇬🇸
    guatemala🇬🇹
    guam🇬🇺
    guinea_bissau🇬🇼
    guyana🇬🇾
    hong_kong🇭🇰
    heard_mcdonald_islands🇭🇲
    honduras🇭🇳
    croatia🇭🇷
    haiti🇭🇹
    hungary🇭🇺
    canary_islands🇮🇨
    indonesia🇮🇩
    ireland🇮🇪
    israel🇮🇱
    isle_of_man🇮🇲
    india🇮🇳
    british_indian_ocean_territory🇮🇴
    iraq🇮🇶
    iran🇮🇷
    iceland🇮🇸
    it🇮🇹
    jersey🇯🇪
    jamaica🇯🇲
    jordan🇯🇴
    jp🇯🇵
    kenya🇰🇪
    kyrgyzstan🇰🇬
    cambodia🇰🇭
    kiribati🇰🇮
    comoros🇰🇲
    st_kitts_nevis🇰🇳
    north_korea🇰🇵
    kr🇰🇷
    kuwait🇰🇼
    cayman_islands🇰🇾
    kazakhstan🇰🇿
    laos🇱🇦
    lebanon🇱🇧
    st_lucia🇱🇨
    liechtenstein🇱🇮
    sri_lanka🇱🇰
    liberia🇱🇷
    lesotho🇱🇸
    lithuania🇱🇹
    luxembourg🇱🇺
    latvia🇱🇻
    libya🇱🇾
    morocco🇲🇦
    monaco🇲🇨
    moldova🇲🇩
    montenegro🇲🇪
    st_martin🇲🇫
    madagascar🇲🇬
    marshall_islands🇲🇭
    macedonia🇲🇰
    mali🇲🇱
    myanmar🇲🇲
    mongolia🇲🇳
    macau🇲🇴
    northern_mariana_islands🇲🇵
    martinique🇲🇶
    mauritania🇲🇷
    montserrat🇲🇸
    malta🇲🇹
    mauritius🇲🇺
    maldives🇲🇻
    malawi🇲🇼
    mexico🇲🇽
    malaysia🇲🇾
    mozambique🇲🇿
    namibia🇳🇦
    new_caledonia🇳🇨
    niger🇳🇪
    norfolk_island🇳🇫
    nigeria🇳🇬
    nicaragua🇳🇮
    netherlands🇳🇱
    norway🇳🇴
    nepal🇳🇵
    nauru🇳🇷
    niue🇳🇺
    new_zealand🇳🇿
    oman🇴🇲
    panama🇵🇦
    peru🇵🇪
    french_polynesia🇵🇫
    papua_new_guinea🇵🇬
    philippines🇵🇭
    pakistan🇵🇰
    poland🇵🇱
    st_pierre_miquelon🇵🇲
    pitcairn_islands🇵🇳
    puerto_rico🇵🇷
    palestinian_territories🇵🇸
    portugal🇵🇹
    palau🇵🇼
    paraguay🇵🇾
    qatar🇶🇦
    reunion🇷🇪
    romania🇷🇴
    serbia🇷🇸
    ru🇷🇺
    rwanda🇷🇼
    saudi_arabia🇸🇦
    solomon_islands🇸🇧
    seychelles🇸🇨
    sudan🇸🇩
    sweden🇸🇪
    singapore🇸🇬
    st_helena🇸🇭
    slovenia🇸🇮
    svalbard_jan_mayen🇸🇯
    slovakia🇸🇰
    sierra_leone🇸🇱
    san_marino🇸🇲
    senegal🇸🇳
    somalia🇸🇴
    suriname🇸🇷
    south_sudan🇸🇸
    sao_tome_principe🇸🇹
    el_salvador🇸🇻
    sint_maarten🇸🇽
    syria🇸🇾
    swaziland🇸🇿
    tristan_da_cunha🇹🇦
    turks_caicos_islands🇹🇨
    chad🇹🇩
    french_southern_territories🇹🇫
    togo🇹🇬
    thailand🇹🇭
    tajikistan🇹🇯
    tokelau🇹🇰
    timor_leste🇹🇱
    turkmenistan🇹🇲
    tunisia🇹🇳
    tonga🇹🇴
    tr🇹🇷
    trinidad_tobago🇹🇹
    tuvalu🇹🇻
    taiwan🇹🇼
    tanzania🇹🇿
    ukraine🇺🇦
    uganda🇺🇬
    us_outlying_islands🇺🇲
    united_nations🇺🇳
    us🇺🇸
    uruguay🇺🇾
    uzbekistan🇺🇿
    vatican_city🇻🇦
    st_vincent_grenadines🇻🇨
    venezuela🇻🇪
    british_virgin_islands🇻🇬
    us_virgin_islands🇻🇮
    vietnam🇻🇳
    vanuatu🇻🇺
    wallis_futuna🇼🇫
    samoa🇼🇸
    kosovo🇽🇰
    yemen🇾🇪
    mayotte🇾🇹
    south_africa🇿🇦
    zambia🇿🇲
    zimbabwe🇿🇼
    england🏴󠁧󠁢󠁥󠁮󠁧󠁿
    scotland🏴󠁧󠁢󠁳󠁣󠁴󠁿
    wales🏴󠁧󠁢󠁷󠁬󠁳󠁿
    ntfy-2.11.0/docs/examples.md000066400000000000000000000473741462047176100156720ustar00rootroot00000000000000# Examples There are a million ways to use ntfy, but here are some inspirations. I try to collect examples on GitHub, so be sure to check those out, too. !!! info Many of these examples were contributed by ntfy users. If you have other examples of how you use ntfy, please [create a pull request](https://github.com/binwiederhier/ntfy/pulls), and I'll happily include it. Also note, that I cannot guarantee that all of these examples are functional. Many of them I have not tried myself. ## Cronjobs ntfy is perfect for any kind of cronjobs or just when long processes are done (backups, pipelines, rsync copy commands, ...). I started adding notifications pretty much all of my scripts. Typically, I just chain the curl call directly to the command I'm running. The following example will either send Laptop backup succeeded or ⚠️ Laptop backup failed directly to my phone: ``` bash rsync -a root@laptop /backups/laptop \ && zfs snapshot ... \ && curl -H prio:low -d "Laptop backup succeeded" ntfy.sh/backups \ || curl -H tags:warning -H prio:high -d "Laptop backup failed" ntfy.sh/backups ``` Here's one for the history books. I desperately want the `github.com/ntfy` organization, but all my tickets with GitHub have been hopeless. In case it ever becomes available, I want to know immediately. ``` # Check github/ntfy user */6 * * * * if curl -s https://api.github.com/users/ntfy | grep "Not Found"; then curl -d "github.com/ntfy is available" -H "Tags: tada" -H "Prio: high" ntfy.sh/my-alerts; fi ``` ## Low disk space alerts Here's a simple cronjob that I use to alert me when the disk space on the root disk is running low. It's simple, but effective. ``` bash #!/bin/bash mingigs=10 avail=$(df | awk '$6 == "/" && $4 < '$mingigs' * 1024*1024 { print $4/1024/1024 }') topicurl=https://ntfy.sh/mytopic if [ -n "$avail" ]; then curl \ -d "Only $avail GB available on the root disk. Better clean that up." \ -H "Title: Low disk space alert on $(hostname)" \ -H "Priority: high" \ -H "Tags: warning,cd" \ $topicurl fi ``` ## SSH login alerts Years ago my home server was broken into. That shook me hard, so every time someone logs into any machine that I own, I now message myself. Here's an example of how to use PAM to notify yourself on SSH login. === "/etc/pam.d/sshd" ``` # at the end of the file session optional pam_exec.so /usr/bin/ntfy-ssh-login.sh ``` === "/usr/bin/ntfy-ssh-login.sh" ```bash #!/bin/bash if [ "${PAM_TYPE}" = "open_session" ]; then curl \ -H prio:high \ -H tags:warning \ -d "SSH login: ${PAM_USER} from ${PAM_RHOST}" \ ntfy.sh/alerts fi ``` ## Collect data from multiple machines The other day I was running tasks on 20 servers, and I wanted to collect the interim results as a CSV in one place. Each of the servers was publishing to a topic as the results completed (`publish-result.sh`), and I had one central collector to grab the results as they came in (`collect-results.sh`). It looked something like this: === "collect-results.sh" ```bash while read result; do [ -n "$result" ] && echo "$result" >> results.csv done < <(stdbuf -i0 -o0 curl -s ntfy.sh/results/raw) ``` === "publish-result.sh" ```bash // This script was run on each of the 20 servers. It was doing heavy processing ... // Publish script results curl -d "$(hostname),$count,$time" ntfy.sh/results ``` ## Ansible, Salt and Puppet You can easily integrate ntfy into Ansible, Salt, or Puppet to notify you when runs are done or are highstated. One of my co-workers uses the following Ansible task to let him know when things are done: ``` yaml - name: Send ntfy.sh update uri: url: "https://ntfy.sh/{{ ntfy_channel }}" method: POST body: "{{ inventory_hostname }} reseeding complete" ``` There's also a dedicated Ansible action plugin (one which runs on the Ansible controller) called [ansible-ntfy](https://github.com/jpmens/ansible-ntfy). The following task posts a message to ntfy at its default URL (`attrs` and other attributes are optional): ``` yaml - name: "Notify ntfy that we're done" ntfy: msg: "deployment on {{ inventory_hostname }} is complete. 🐄" attrs: tags: [ heavy_check_mark ] priority: 1 ``` ## GitHub Actions You can send a message during a workflow run with curl. Here is an example sending info about the repo, commit and job status. ``` yaml - name: Actions Ntfy run: | curl \ -u ${{ secrets.NTFY_CRED }} \ -H "Title: Title here" \ -H "Content-Type: text/plain" \ -d $'Repo: ${{ github.repository }}\nCommit: ${{ github.sha }}\nRef: ${{ github.ref }}\nStatus: ${{ job.status}}' \ ${{ secrets.NTFY_URL }} ``` ## Changedetection.io ntfy is an excellent choice for getting notifications when a website has a change sent to your mobile (or desktop), [changedetection.io](https://changedetection.io) or on GitHub ([dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io)) uses [apprise](https://github.com/caronc/apprise) library for notification integrations. To add any ntfy(s) notification to a website change simply add the [ntfy style URL](https://github.com/caronc/apprise/wiki/Notify_ntfy) to the notification list. For example `ntfy://{topic}` or `ntfy://{user}:{password}@{host}:{port}/{topics}` In your changedetection.io installation, click `Edit` > `Notifications` on a single website watch (or group) then add the special ntfy Apprise Notification URL to the Notification List. ![ntfy alerts on website change](static/img/cdio-setup.jpg) ## Watchtower (shoutrrr) You can use [shoutrrr](https://containrrr.dev/shoutrrr/latest/services/ntfy/) to send [Watchtower](https://github.com/containrrr/watchtower/) notifications to your ntfy topic. Example docker-compose.yml: ``` yaml services: watchtower: image: containrrr/watchtower environment: - WATCHTOWER_NOTIFICATIONS=shoutrrr - WATCHTOWER_NOTIFICATION_SKIP_TITLE=True - WATCHTOWER_NOTIFICATION_URL=ntfy://ntfy.sh/my_watchtower_topic?title=WatchtowerUpdates ``` The environment variable `WATCHTOWER_NOTIFICATION_SKIP_TITLE` is required to prevent Watchtower from [replacing the `title` query parameter](https://containrrr.dev/watchtower/notifications/#settings). If omitted, the provided notification title will not be used. Or, if you only want to send notifications using shoutrrr: ``` shoutrrr send -u "ntfy://ntfy.sh/my_watchtower_topic?title=WatchtowerUpdates" -m "testMessage" ``` Authentication tokens are also supported via the generic webhook and authorization header using this url format (replace the domain, topic and token with your own): ``` generic+https://DOMAIN/TOPIC?@authorization=Bearer+TOKEN` ``` ## Sonarr, Radarr, Lidarr, Readarr, Prowlarr, SABnzbd Radarr, Prowlarr, and Sonarr v4 support ntfy natively under Settings > Connect. Sonarr v3, Readarr, and SABnzbd support custom scripts for downloads, warnings, grabs, etc. Some simple bash scripts to achieve this are kindly provided in [nickexyz's ntfy-shellscripts repository](https://github.com/nickexyz/ntfy-shellscripts). ## Node-RED You can use the HTTP request node to send messages with [Node-RED](https://nodered.org), some examples:
    Example: Send a message (click to expand) ``` json [ { "id": "c956e688cc74ad8e", "type": "http request", "z": "fabdd7a3.4045a", "name": "ntfy.sh", "method": "POST", "ret": "txt", "paytoqs": "ignore", "url": "https://ntfy.sh/mytopic", "tls": "", "persist": false, "proxy": "", "authType": "", "senderr": false, "credentials": { "user": "", "password": "" }, "x": 590, "y": 3160, "wires": [ [] ] }, { "id": "32ee1eade51fae50", "type": "function", "z": "fabdd7a3.4045a", "name": "data", "func": "msg.payload = \"Something happened\";\nmsg.headers = {};\nmsg.headers['tags'] = 'house';\nmsg.headers['X-Title'] = 'Home Assistant';\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 470, "y": 3160, "wires": [ [ "c956e688cc74ad8e" ] ] }, { "id": "b287e59cd2311815", "type": "inject", "z": "fabdd7a3.4045a", "name": "Manual start", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": "20", "topic": "", "payload": "", "payloadType": "date", "x": 330, "y": 3160, "wires": [ [ "32ee1eade51fae50" ] ] } ] ```
    ![Node red message flow](static/img/nodered-message.png)
    Example: Send a picture (click to expand) ``` json [ { "id": "d135a13eadeb9d6d", "type": "http request", "z": "fabdd7a3.4045a", "name": "Download image", "method": "GET", "ret": "bin", "paytoqs": "ignore", "url": "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png", "tls": "", "persist": false, "proxy": "", "authType": "", "senderr": false, "credentials": { "user": "", "password": "" }, "x": 490, "y": 3320, "wires": [ [ "6e75bc41d2ec4a03" ] ] }, { "id": "6e75bc41d2ec4a03", "type": "function", "z": "fabdd7a3.4045a", "name": "data", "func": "msg.payload = msg.payload;\nmsg.headers = {};\nmsg.headers['tags'] = 'house';\nmsg.headers['X-Title'] = 'Home Assistant - Picture';\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 650, "y": 3320, "wires": [ [ "eb160615b6ceda98" ] ] }, { "id": "eb160615b6ceda98", "type": "http request", "z": "fabdd7a3.4045a", "name": "ntfy.sh", "method": "PUT", "ret": "bin", "paytoqs": "ignore", "url": "https://ntfy.sh/mytopic", "tls": "", "persist": false, "proxy": "", "authType": "", "senderr": false, "credentials": { "user": "", "password": "" }, "x": 770, "y": 3320, "wires": [ [] ] }, { "id": "5b8dbf15c8a7a3a5", "type": "inject", "z": "fabdd7a3.4045a", "name": "Manual start", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": "20", "topic": "", "payload": "", "payloadType": "date", "x": 310, "y": 3320, "wires": [ [ "d135a13eadeb9d6d" ] ] } ] ```
    ![Node red picture flow](static/img/nodered-picture.png) ## Gatus To use ntfy with [Gatus](https://github.com/TwiN/gatus), you can use the `ntfy` alerting provider like so: ```yaml alerting: ntfy: url: "https://ntfy.sh" topic: "YOUR_NTFY_TOPIC" priority: 3 ``` For more information on using ntfy with Gatus, refer to [Configuring ntfy alerts](https://github.com/TwiN/gatus#configuring-ntfy-alerts).
    Alternative: Using the custom alerting provider ```yaml alerting: custom: url: "https://ntfy.sh" method: "POST" body: | { "topic": "mytopic", "message": "[ENDPOINT_NAME] - [ALERT_DESCRIPTION]", "title": "Gatus", "tags": ["[ALERT_TRIGGERED_OR_RESOLVED]"], "priority": 3 } default-alert: enabled: true description: "health check failed" send-on-resolved: true failure-threshold: 3 success-threshold: 3 placeholders: ALERT_TRIGGERED_OR_RESOLVED: TRIGGERED: "warning" RESOLVED: "white_check_mark" ```
    ## Jellyseerr/Overseerr webhook Here is an example for [jellyseerr](https://github.com/Fallenbagel/jellyseerr)/[overseerr](https://overseerr.dev/) webhook JSON payload. Remember to change the `https://request.example.com` to your URL as the value of the JSON key click. And if you're not using the request `topic`, make sure to change it in the JSON payload to your topic. ``` json { "topic": "requests", "title": "{{event}}", "message": "{{subject}}\n{{message}}\n\nRequested by: {{requestedBy_username}}\n\nStatus: {{media_status}}\nRequest Id: {{request_id}}", "priority": 4, "attach": "{{image}}", "click": "https://requests.example.com/{{media_type}}/{{media_tmdbid}}" } ``` ## Home Assistant Here is an example for the configuration.yml file to setup a REST notify component. Since Home Assistant is going to POST JSON, you need to specify the root of your ntfy resource. ```yaml notify: - name: ntfy platform: rest method: POST_JSON data: topic: YOUR_NTFY_TOPIC title_param_name: title message_param_name: message resource: https://ntfy.sh ``` If you need to authenticate to your ntfy resource, define the authentication, username and password as below: ```yaml notify: - name: ntfy platform: rest method: POST_JSON authentication: basic username: YOUR_USERNAME password: YOUR_PASSWORD data: topic: YOUR_NTFY_TOPIC title_param_name: title message_param_name: message resource: https://ntfy.sh ``` If you need to add any other [ntfy specific parameters](https://ntfy.sh/docs/publish/#publish-as-json) such as priority, tags, etc., add them to the `data` array in the example yml. For example: ```yaml notify: - name: ntfy platform: rest method: POST_JSON data: topic: YOUR_NTFY_TOPIC priority: 4 title_param_name: title message_param_name: message resource: https://ntfy.sh ``` ## Uptime Kuma Go to your [Uptime Kuma](https://github.com/louislam/uptime-kuma) Settings > Notifications, click on **Setup Notification**. Then set your desired **title** (e.g. "Uptime Kuma"), **ntfy topic**, **Server URL** and **priority (1-5)**:
    You can now test the notifications and apply them to monitors:
    ## UptimeRobot Go to your [UptimeRobot](https://github.com/uptimerobot) My Settings > Alert Contacts > Add Alert Contact Select **Alert Contact Type** = Webhook. Then set your desired **Friendly Name** (e.g. "ntfy-sh-UP"), **URL to Notify**, **POST value** and select checkbox **Send as JSON (application/json)**. Make sure to send the JSON POST request to ntfy.domain.com without the topic name in the url and include the "topic" name in the JSON body.
    ``` json { "topic":"myTopic", "title": "*monitorFriendlyName* *alertTypeFriendlyName*", "message": "*alertDetails*", "tags": ["green_circle"], "priority": 3, "click": https://uptimerobot.com/dashboard#*monitorID* } ``` You can create two Alert Contacts each with a different icon and priority, for example: ``` json { "topic":"myTopic", "title": "*monitorFriendlyName* *alertTypeFriendlyName*", "message": "*alertDetails*", "tags": ["red_circle"], "priority": 3, "click": https://uptimerobot.com/dashboard#*monitorID* } ``` You can now add the created Alerts Contact(s) to the monitor(s) and test the notifications:
    ## Apprise ntfy is integrated natively into [Apprise](https://github.com/caronc/apprise) (also check out the [Apprise/ntfy wiki page](https://github.com/caronc/apprise/wiki/Notify_ntfy)). You can use it like this: ``` apprise -vv -t "Test Message Title" -b "Test Message Body" \ ntfy://mytopic ``` Or with your own server like this: ``` apprise -vv -t "Test Message Title" -b "Test Message Body" \ ntfy://ntfy.example.com/mytopic ``` ## Rundeck Rundeck by default sends only HTML email which is not processed by ntfy SMTP server. Append following configurations to [rundeck-config.properties](https://docs.rundeck.com/docs/administration/configuration/config-file-reference.html) : ``` # Template rundeck.mail.template.file=/path/to/template.html rundeck.mail.template.log.formatted=false ``` Example `template.html`: ```html
    Execution ${execution.id} was ${execution.status}
    ``` Add notification on Rundeck (attachment type must be: `Attached as file to email`): ![Rundeck](static/img/rundeck.png) ## Traccar This will only work on selfhosted [traccar](https://www.traccar.org/) ([Github](https://github.com/traccar/traccar)) instances, as you need to be able to set `sms.http.*` keys, which is not possible through the UI attributes The easiest way to integrate traccar with ntfy, is to configure ntfy as the SMS provider for your instance. You then can set your ntfy topic as your account's phone number in traccar. Sending the email notifications to ntfy will not work, as ntfy does not support HTML emails. **Info:** Add a phone number to your traccar account not in device, as otherwise it will not try to send SMS. **Caution:** JSON publishing is only possible, when POST-ing to the root URL of the ntfy instance. (see [documentation](publish.md#publish-as-json)) ```xml https://ntfy.sh { "topic": "{phone}", "message": "{message}" } ``` If [access control](config.md#access-control) is enabled, and the target topic does not support anonymous writes, you'll also have to provide an authorization header, for example in form of a privileged token ```xml Bearer tk_JhbsnoMrgy2FcfHeofv97Pi5uXaZZ ``` or by simply providing traccar with a valid username/password combination. ```xml phil mypass ``` ntfy-2.11.0/docs/faq.md000066400000000000000000000155561462047176100146200ustar00rootroot00000000000000# Frequently asked questions (FAQ) ## Isn't this like ...? Who knows. I didn't do a lot of research before making this. It was fun making it. ## Can I use this in my app? Will it stay free? Yes. As long as you don't abuse it, it'll be available and free of charge. While I will always allow usage of the ntfy.sh server without signup and free of charge, I may also offer paid plans in the future. ## What are the uptime guarantees? Best effort. ntfy currently runs on a single DigitalOcean droplet, without any scale out strategy or redundancies. When the time comes, I'll add scale out features, but for now it is what it is. In the first year of its life, and to this day (Dec'22), ntfy had **no outages** that I can remember. Other than short blips and some HTTP 500 spikes, it has been rock solid. There is a [status page](https://ntfy.statuspage.io/) which is updated based on some automated checks via the amazingly awesome [healthchecks.io](https://healthchecks.io/) (_no affiliation, just a fan_). ## What happens if there are multiple subscribers to the same topic? As per usual with pub-sub, all subscribers receive notifications if they are subscribed to a topic. ## Will you know what topics exist, can you spy on me? If you don't trust me or your messages are sensitive, run your own server. It's open source. That said, the logs do contain topic names and IP addresses, but I don't use them for anything other than troubleshooting and rate limiting. Messages are cached for the duration configured in `server.yml` (12h by default) to facilitate service restarts, message polling and to overcome client network disruptions. ## Can I self-host it? Yes. The server (including this Web UI) can be self-hosted, and the Android/iOS app supports adding topics from your own server as well. Check out the [install instructions](install.md). ## Is Firebase used? In addition to caching messages locally and delivering them to long-polling subscribers, all messages are also published to Firebase Cloud Messaging (FCM) (if `FirebaseKeyFile` is set, which it is on ntfy.sh). This is to facilitate notifications on Android. If you do not care for Firebase, I suggest you install the [F-Droid version](https://f-droid.org/en/packages/io.heckel.ntfy/) of the app and [self-host your own ntfy server](install.md). ## How much battery does the Android app use? If you use the ntfy.sh server, and you don't use the [instant delivery](subscribe/phone.md#instant-delivery) feature, the Android/iOS app uses no additional battery, since Firebase Cloud Messaging (FCM) is used. If you use your own server, or you use *instant delivery* (Android only), or install from F-droid ([which does not support FCM](https://f-droid.org/docs/Inclusion_Policy/)), the app has to maintain a constant connection to the server, which consumes about 0-1% of battery in 17h of use (on my phone). There has been a ton of testing and improvement around this. I think it's pretty decent now. ## Paid plans? I thought it was open source? All of ntfy will remain open source, with a free software license (Apache 2.0 and GPLv2). If you'd like to self-host, you can (and should do that). The paid plans I am offering are for people that do not want to self-host, and/or need higher limits. ## What is instant delivery? [Instant delivery](subscribe/phone.md#instant-delivery) is a feature in the Android app. If turned on, the app maintains a constant connection to the server and listens for incoming notifications. This consumes additional battery (see above), but delivers notifications instantly. ## Can you implement feature X? Yes, maybe. Check out [existing GitHub issues](https://github.com/binwiederhier/ntfy/issues) to see if somebody else had the same idea before you, or file a new issue. I'll likely get back to you within a few days. ## I'm having issues with iOS, can you help? The iOS app is behind compared to the Android app, can you fix that? The iOS is very bare bones and quite frankly a little buggy. I wanted to get something out the door to make the iOS users happy, but halfway through I got frustrated with iOS development and paused development. I will eventually get back to it, or hopefully, somebody else will come along and help out. Please review the [known issues](known-issues.md) for details. ## Can I disable the web app? Can I protect it with a login screen? The web app is a static website without a backend (other than the ntfy API). All data is stored locally in the browser cache and local storage. That means it does not need to be protected with a login screen, and it poses no additional security risk. So technically, it does not need to be disabled. However, if you still want to disable it, you can do so with the `web-root: disable` option in the `server.yml` file. Think of the ntfy web app like an Android/iOS app. It is freely available and accessible to anyone, yet useless without a proper backend. So as long as you secure your backend with ACLs, exposing the ntfy web app to the Internet is harmless. ## If topic names are public, could I not just brute force them? If you don't have [ACLs set up](config.md#access-control), the topic name is your password, it says so everywhere. If you choose a easy-to-guess/dumb topic name, people will be able to guess it. If you choose a randomly generated topic name, the topic is as good as a good password. As for brute forcing: It's not possible to brute force a ntfy server for very long, as you'll get quickly rate limited. In the default configuration, you'll be able to do 60 requests as a burst, and then 1 request per 10 seconds. Assuming you choose a random 10 digit topic name using only A-Z, a-z, 0-9, _ and -, there are 64^10 possible topic names. Even if you could do hundreds of requests per seconds (which you cannot), it would take many years to brute force a topic name. For ntfy.sh, there's even a fail2ban in place which will ban your IP pretty quickly. ## Where can I donate? I have just very recently started accepting donations via [GitHub Sponsors](https://github.com/sponsors/binwiederhier). I would be humbled if you helped me carry the server and developer account costs. Even small donations are very much appreciated. ## Can I email you? Can I DM you on Discord/Matrix? While I love chatting on [Discord](https://discord.gg/cT7ECsZj9w), [Matrix](https://matrix.to/#/#ntfy-space:matrix.org), [Lemmy](https://discuss.ntfy.sh/c/ntfy), or [GitHub](https://github.com/binwiederhier/ntfy/issues), I generally **do not respond to emails about ntfy or direct messages** about ntfy, unless you are paying for a [ntfy Pro](https://ntfy.sh/#pricing) plan, or you are inquiring about business opportunities. I am sorry, but answering individual questions about ntfy on a 1-on-1 basis is not scalable. Answering your questions in the above-mentioned forums benefits others, since I can link to the discussion at a later point in time, or other users may be able to help out. I hope you understand. ntfy-2.11.0/docs/hooks.py000066400000000000000000000002511462047176100152060ustar00rootroot00000000000000import os import shutil def on_post_build(config, **kwargs): site_dir = config["site_dir"] shutil.copytree("docs/static/fonts", os.path.join(site_dir, "get")) ntfy-2.11.0/docs/index.md000066400000000000000000000064321462047176100151510ustar00rootroot00000000000000# Getting started ntfy lets you **send push notifications to your phone or desktop via scripts from any computer**, using simple HTTP PUT or POST requests. I use it to notify myself when scripts fail, or long-running commands complete. ## Step 1: Get the app To [receive notifications on your phone](subscribe/phone.md), install the app, either via Google Play or F-Droid. Once installed, open it and subscribe to a topic of your choosing. Topics don't have to explicitly be created, so just pick a name and use it later when you [publish a message](publish.md). Note that **topic names are public, so it's wise to choose something that cannot be guessed easily.** For this guide, we'll just use `mytopic` as our topic name:
    ![adding a topic](static/img/getting-started-add.png){ width=500 }
    Creating/adding your first topic
    That's it. After you tap "Subscribe", the app is listening for new messages on that topic. ## Step 2: Send a message Now let's [send a message](publish.md) to our topic. It's easy in every language, since we're just using HTTP PUT/POST, or with the [ntfy CLI](install.md). The message is in the request body. Here's an example showing how to publish a simple message using a POST request: === "Command line (curl)" ``` curl -d "Backup successful 😀" ntfy.sh/mytopic ``` === "ntfy CLI" ``` ntfy publish mytopic "Backup successful 😀" ``` === "HTTP" ``` http POST /mytopic HTTP/1.1 Host: ntfy.sh Backup successful 😀 ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/mytopic', { method: 'POST', // PUT works too body: 'Backup successful 😀' }) ``` === "Go" ``` go http.Post("https://ntfy.sh/mytopic", "text/plain", strings.NewReader("Backup successful 😀")) ``` === "Python" ``` python requests.post("https://ntfy.sh/mytopic", data="Backup successful 😀".encode(encoding='utf-8')) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/mytopic', false, stream_context_create([ 'http' => [ 'method' => 'POST', // PUT also works 'header' => 'Content-Type: text/plain', 'content' => 'Backup successful 😀' ] ])); ``` This will create a notification that looks like this:
    ![basic notification](static/img/android-screenshot-basic-notification.png){ width=500 }
    Android notification
    That's it. You're all set. Go play and read the rest of the docs. I highly recommend reading at least the page on [publishing messages](publish.md), as well as the detailed page on the [Android/iOS app](subscribe/phone.md). Here's another video showing the entire process:
    Sending push notifications to your Android phone
    ntfy-2.11.0/docs/install.md000066400000000000000000000510521462047176100155060ustar00rootroot00000000000000# Installing ntfy The `ntfy` CLI allows you to [publish messages](publish.md), [subscribe to topics](subscribe/cli.md) as well as to self-host your own ntfy server. It's all pretty straight forward. Just install the binary, package or Docker image, configure it and run it. Just like any other software. No fuzz. !!! info The following steps are only required if you want to **self-host your own ntfy server or you want to use the ntfy CLI**. If you just want to [send messages using ntfy.sh](publish.md), you don't need to install anything. You can just use `curl`. ## General steps The ntfy server comes as a statically linked binary and is shipped as tarball, deb/rpm packages and as a Docker image. We support amd64, armv7 and arm64. 1. Install ntfy using one of the methods described below 2. Then (optionally) edit `/etc/ntfy/server.yml` for the server (Linux only, see [configuration](config.md) or [sample server.yml](https://github.com/binwiederhier/ntfy/blob/main/server/server.yml)) 3. Or (optionally) create/edit `~/.config/ntfy/client.yml` (for the non-root user), `~/Library/Application Support/ntfy/client.yml` (for the macOS non-root user), or `/etc/ntfy/client.yml` (for the root user), see [sample client.yml](https://github.com/binwiederhier/ntfy/blob/main/client/client.yml)) To run the ntfy server, then just run `ntfy serve` (or `systemctl start ntfy` when using the deb/rpm). To send messages, use `ntfy publish`. To subscribe to topics, use `ntfy subscribe` (see [subscribing via CLI](subscribe/cli.md) for details). If you like tutorials, check out :simple-youtube: [Kris Occhipinti's ntfy install guide](https://www.youtube.com/watch?v=bZzqrX05mNU) on YouTube, or [Alex's Docker-based setup guide](https://blog.alexsguardian.net/posts/2023/09/12/selfhosting-ntfy/). Both are great resources to get started. _I am not affiliated with Kris or Alex, I just liked their video/post._ ## Linux binaries Please check out the [releases page](https://github.com/binwiederhier/ntfy/releases) for binaries and deb/rpm packages. === "x86_64/amd64" ```bash wget https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_linux_amd64.tar.gz tar zxvf ntfy_2.11.0_linux_amd64.tar.gz sudo cp -a ntfy_2.11.0_linux_amd64/ntfy /usr/local/bin/ntfy sudo mkdir /etc/ntfy && sudo cp ntfy_2.11.0_linux_amd64/{client,server}/*.yml /etc/ntfy sudo ntfy serve ``` === "armv6" ```bash wget https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_linux_armv6.tar.gz tar zxvf ntfy_2.11.0_linux_armv6.tar.gz sudo cp -a ntfy_2.11.0_linux_armv6/ntfy /usr/bin/ntfy sudo mkdir /etc/ntfy && sudo cp ntfy_2.11.0_linux_armv6/{client,server}/*.yml /etc/ntfy sudo ntfy serve ``` === "armv7/armhf" ```bash wget https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_linux_armv7.tar.gz tar zxvf ntfy_2.11.0_linux_armv7.tar.gz sudo cp -a ntfy_2.11.0_linux_armv7/ntfy /usr/bin/ntfy sudo mkdir /etc/ntfy && sudo cp ntfy_2.11.0_linux_armv7/{client,server}/*.yml /etc/ntfy sudo ntfy serve ``` === "arm64" ```bash wget https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_linux_arm64.tar.gz tar zxvf ntfy_2.11.0_linux_arm64.tar.gz sudo cp -a ntfy_2.11.0_linux_arm64/ntfy /usr/bin/ntfy sudo mkdir /etc/ntfy && sudo cp ntfy_2.11.0_linux_arm64/{client,server}/*.yml /etc/ntfy sudo ntfy serve ``` ## Debian/Ubuntu repository Installation via Debian repository: === "x86_64/amd64" ```bash sudo mkdir -p /etc/apt/keyrings curl -fsSL https://archive.heckel.io/apt/pubkey.txt | sudo gpg --dearmor -o /etc/apt/keyrings/archive.heckel.io.gpg sudo apt install apt-transport-https sudo sh -c "echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/archive.heckel.io.gpg] https://archive.heckel.io/apt debian main' \ > /etc/apt/sources.list.d/archive.heckel.io.list" sudo apt update sudo apt install ntfy sudo systemctl enable ntfy sudo systemctl start ntfy ``` === "armv7/armhf" ```bash sudo mkdir -p /etc/apt/keyrings curl -fsSL https://archive.heckel.io/apt/pubkey.txt | sudo gpg --dearmor -o /etc/apt/keyrings/archive.heckel.io.gpg sudo apt install apt-transport-https sudo sh -c "echo 'deb [arch=armhf signed-by=/etc/apt/keyrings/archive.heckel.io.gpg] https://archive.heckel.io/apt debian main' \ > /etc/apt/sources.list.d/archive.heckel.io.list" sudo apt update sudo apt install ntfy sudo systemctl enable ntfy sudo systemctl start ntfy ``` === "arm64" ```bash sudo mkdir -p /etc/apt/keyrings curl -fsSL https://archive.heckel.io/apt/pubkey.txt | sudo gpg --dearmor -o /etc/apt/keyrings/archive.heckel.io.gpg sudo apt install apt-transport-https sudo sh -c "echo 'deb [arch=arm64 signed-by=/etc/apt/keyrings/archive.heckel.io.gpg] https://archive.heckel.io/apt debian main' \ > /etc/apt/sources.list.d/archive.heckel.io.list" sudo apt update sudo apt install ntfy sudo systemctl enable ntfy sudo systemctl start ntfy ``` Manually installing the .deb file: === "x86_64/amd64" ```bash wget https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_linux_amd64.deb sudo dpkg -i ntfy_*.deb sudo systemctl enable ntfy sudo systemctl start ntfy ``` === "armv6" ```bash wget https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_linux_armv6.deb sudo dpkg -i ntfy_*.deb sudo systemctl enable ntfy sudo systemctl start ntfy ``` === "armv7/armhf" ```bash wget https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_linux_armv7.deb sudo dpkg -i ntfy_*.deb sudo systemctl enable ntfy sudo systemctl start ntfy ``` === "arm64" ```bash wget https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_linux_arm64.deb sudo dpkg -i ntfy_*.deb sudo systemctl enable ntfy sudo systemctl start ntfy ``` ## Fedora/RHEL/CentOS === "x86_64/amd64" ```bash sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_linux_amd64.rpm sudo systemctl enable ntfy sudo systemctl start ntfy ``` === "armv6" ```bash sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_linux_armv6.rpm sudo systemctl enable ntfy sudo systemctl start ntfy ``` === "armv7/armhf" ```bash sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_linux_armv7.rpm sudo systemctl enable ntfy sudo systemctl start ntfy ``` === "arm64" ```bash sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_linux_arm64.rpm sudo systemctl enable ntfy sudo systemctl start ntfy ``` ## Arch Linux ntfy can be installed using an [AUR package](https://aur.archlinux.org/packages/ntfysh-bin/). You can use an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers) like `paru`, `yay` or others to download, build and install ntfy and keep it up to date. ``` paru -S ntfysh-bin ``` Alternatively, run the following commands to install ntfy manually: ``` curl https://aur.archlinux.org/cgit/aur.git/snapshot/ntfysh-bin.tar.gz | tar xzv cd ntfysh-bin makepkg -si ``` ## NixOS / Nix ntfy is packaged in nixpkgs as `ntfy-sh`. It can be installed by adding the package name to the configuration file and calling `nixos-rebuild`. Alternatively, the following command can be used to install ntfy in the current user environment: ``` nix-env -iA ntfy-sh ``` NixOS also supports [declarative setup of the ntfy server](https://search.nixos.org/options?channel=unstable&show=services.ntfy-sh.enable&from=0&size=50&sort=relevance&type=packages&query=ntfy). ## macOS The [ntfy CLI](subscribe/cli.md) (`ntfy publish` and `ntfy subscribe` only) is supported on macOS as well. To install, please [download the tarball](https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_darwin_all.tar.gz), extract it and place it somewhere in your `PATH` (e.g. `/usr/local/bin/ntfy`). If run as `root`, ntfy will look for its config at `/etc/ntfy/client.yml`. For all other users, it'll look for it at `~/Library/Application Support/ntfy/client.yml` (sample included in the tarball). ```bash curl -L https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_darwin_all.tar.gz > ntfy_2.11.0_darwin_all.tar.gz tar zxvf ntfy_2.11.0_darwin_all.tar.gz sudo cp -a ntfy_2.11.0_darwin_all/ntfy /usr/local/bin/ntfy mkdir ~/Library/Application\ Support/ntfy cp ntfy_2.11.0_darwin_all/client/client.yml ~/Library/Application\ Support/ntfy/client.yml ntfy --help ``` !!! info Only the ntfy CLI is supported on macOS. ntfy server is currently not supported, but you can build and run it for development as well. Check out the [build instructions](develop.md) for details. ## Homebrew To install the [ntfy CLI](subscribe/cli.md) (`ntfy publish` and `ntfy subscribe` only) via Homebrew (Linux and macOS), simply run: ``` brew install ntfy ``` ## Windows The [ntfy CLI](subscribe/cli.md) (`ntfy publish` and `ntfy subscribe` only) is supported on Windows as well. To install, please [download the latest ZIP](https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_windows_amd64.zip), extract it and place the `ntfy.exe` binary somewhere in your `%Path%`. The default path for the client config file is at `%AppData%\ntfy\client.yml` (not created automatically, sample in the ZIP file). Also available in [Scoop's](https://scoop.sh) Main repository: `scoop install ntfy` !!! info There is currently no installer for Windows, and the binary is not signed. If this is desired, please create a [GitHub issue](https://github.com/binwiederhier/ntfy/issues) to let me know. ## Docker The [ntfy image](https://hub.docker.com/r/binwiederhier/ntfy) is available for amd64, armv6, armv7 and arm64. It should be pretty straight forward to use. The server exposes its web UI and the API on port 80, so you need to expose that in Docker. To use the persistent [message cache](config.md#message-cache), you also need to map a volume to `/var/cache/ntfy`. To change other settings, you should map `/etc/ntfy`, so you can edit `/etc/ntfy/server.yml`. !!! info Note that the Docker image **does not contain a `/etc/ntfy/server.yml` file**. If you'd like to use a config file, please manually create one outside the image and map it as a volume, e.g. via `-v /etc/ntfy:/etc/ntfy`. You may use the [`server.yml` file on GitHub](https://github.com/binwiederhier/ntfy/blob/main/server/server.yml) as a template. Basic usage (no cache or additional config): ``` docker run -p 80:80 -it binwiederhier/ntfy serve ``` With persistent cache (configured as command line arguments): ```bash docker run \ -v /var/cache/ntfy:/var/cache/ntfy \ -p 80:80 \ -it \ binwiederhier/ntfy \ serve \ --cache-file /var/cache/ntfy/cache.db ``` With other config options, timezone, and non-root user (configured via `/etc/ntfy/server.yml`, see [configuration](config.md) for details): ```bash docker run \ -v /etc/ntfy:/etc/ntfy \ -e TZ=UTC \ -p 80:80 \ -u UID:GID \ -it \ binwiederhier/ntfy \ serve ``` Using docker-compose with non-root user and healthchecks enabled: ```yaml version: "2.3" services: ntfy: image: binwiederhier/ntfy container_name: ntfy command: - serve environment: - TZ=UTC # optional: set desired timezone user: UID:GID # optional: replace with your own user/group or uid/gid volumes: - /var/cache/ntfy:/var/cache/ntfy - /etc/ntfy:/etc/ntfy ports: - 80:80 healthcheck: # optional: remember to adapt the host:port to your environment test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:80/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"] interval: 60s timeout: 10s retries: 3 start_period: 40s restart: unless-stopped ``` If using a non-root user when running the docker version, be sure to chown the server.yml, user.db, and cache.db files and attachments directory to the same uid/gid. Alternatively, you may wish to build a customized Docker image that can be run with fewer command-line arguments and without delivering the configuration file separately. ``` FROM binwiederhier/ntfy COPY server.yml /etc/ntfy/server.yml ENTRYPOINT ["ntfy", "serve"] ``` This image can be pushed to a container registry and shipped independently. All that's needed when running it is mapping ntfy's port to a host port. ## Kubernetes The setup for Kubernetes is very similar to that for Docker, and requires a fairly minimal deployment or pod definition to function. There are a few options to mix and match, including a deployment without a cache file, a stateful set with a persistent cache, and a standalone unmanned pod. === "deployment" ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: ntfy spec: selector: matchLabels: app: ntfy template: metadata: labels: app: ntfy spec: containers: - name: ntfy image: binwiederhier/ntfy args: ["serve"] resources: limits: memory: "128Mi" cpu: "500m" ports: - containerPort: 80 name: http volumeMounts: - name: config mountPath: "/etc/ntfy" readOnly: true volumes: - name: config configMap: name: ntfy --- # Basic service for port 80 apiVersion: v1 kind: Service metadata: name: ntfy spec: selector: app: ntfy ports: - port: 80 targetPort: 80 ``` === "stateful set" ```yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: ntfy spec: selector: matchLabels: app: ntfy serviceName: ntfy template: metadata: labels: app: ntfy spec: containers: - name: ntfy image: binwiederhier/ntfy args: ["serve", "--cache-file", "/var/cache/ntfy/cache.db"] ports: - containerPort: 80 name: http volumeMounts: - name: config mountPath: "/etc/ntfy" readOnly: true - name: cache mountPath: "/var/cache/ntfy" volumes: - name: config configMap: name: ntfy volumeClaimTemplates: - metadata: name: cache spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi ``` === "pod" ```yaml apiVersion: v1 kind: Pod metadata: labels: app: ntfy spec: containers: - name: ntfy image: binwiederhier/ntfy args: ["serve"] resources: limits: memory: "128Mi" cpu: "500m" ports: - containerPort: 80 name: http volumeMounts: - name: config mountPath: "/etc/ntfy" readOnly: true volumes: - name: config configMap: name: ntfy ``` Configuration is relatively straightforward. As an example, a minimal configuration is provided. === "resource definition" ```yaml apiVersion: v1 kind: ConfigMap metadata: name: ntfy data: server.yml: | # Template: https://github.com/binwiederhier/ntfy/blob/main/server/server.yml base-url: https://ntfy.sh ``` === "from-file" ```bash kubectl create configmap ntfy --from-file=server.yml ``` ## Kustomize ntfy can be deployed in a Kubernetes cluster with [Kustomize](https://github.com/kubernetes-sigs/kustomize), a tool used to customize Kubernetes objects using a `kustomization.yaml` file. 1. Create new folder - `ntfy` 2. Add all files listed below 1. `kustomization.yaml` - stores all configmaps and resources used in a deployment 2. `ntfy-deployment.yaml` - define deployment type and its parameters 3. `ntfy-pvc.yaml` - describes how [persistent volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) will be created 4. `ntfy-svc.yaml` - expose application to the internal kubernetes network 5. `ntfy-ingress.yaml` - expose service to outside the network using [ingress controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/) 6. `server.yaml` - simple server configuration 3. Replace **TESTNAMESPACE** within `kustomization.yaml` with designated namespace 4. Replace **ntfy.test** within `ntfy-ingress.yaml` with desired DNS name 5. Apply configuration to cluster set in current context: ```bash kubectl apply -k /ntfy ``` === "kustomization.yaml" ```yaml apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - ntfy-deployment.yaml # deployment definition - ntfy-svc.yaml # service connecting pods to cluster network - ntfy-pvc.yaml # pvc used to store cache and attachment - ntfy-ingress.yaml # ingress definition configMapGenerator: # will parse config from raw config to configmap,it allows for dynamic reload of application if additional app is deployed ie https://github.com/stakater/Reloader - name: server-config files: - server.yml namespace: TESTNAMESPACE # select namespace for whole application ``` === "ntfy-deployment.yaml" ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: ntfy-deployment labels: app: ntfy-deployment spec: revisionHistoryLimit: 1 replicas: 1 selector: matchLabels: app: ntfy-pod template: metadata: labels: app: ntfy-pod spec: containers: - name: ntfy image: binwiederhier/ntfy:v1.28.0 # set deployed version args: ["serve"] env: #example of adjustments made in environmental variables - name: TZ # set timezone value: XXXXXXX - name: NTFY_DEBUG # enable/disable debug value: "false" - name: NTFY_LOG_LEVEL # adjust log level value: INFO - name: NTFY_BASE_URL # add base url value: XXXXXXXXXX ports: - containerPort: 80 name: http-ntfy resources: limits: memory: 300Mi cpu: 200m requests: cpu: 150m memory: 150Mi volumeMounts: - mountPath: /etc/ntfy/server.yml subPath: server.yml name: config-volume # generated vie configMapGenerator from kustomization file - mountPath: /var/cache/ntfy name: cache-volume #cache volume mounted to persistent volume volumes: - name: config-volume configMap: # uses configmap generator to parse server.yml to configmap name: server-config - name: cache-volume persistentVolumeClaim: # stores /cache/ntfy in defined pv claimName: ntfy-pvc ``` === "ntfy-pvc.yaml" ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ntfy-pvc spec: accessModes: - ReadWriteOnce storageClassName: local-path # adjust storage if needed resources: requests: storage: 1Gi ``` === "ntfy-svc.yaml" ```yaml apiVersion: v1 kind: Service metadata: name: ntfy-svc spec: type: ClusterIP selector: app: ntfy-pod ports: - name: http-ntfy-out protocol: TCP port: 80 targetPort: http-ntfy ``` === "ntfy-ingress.yaml" ```yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ntfy-ingress spec: rules: - host: ntfy.test #select own http: paths: - path: / pathType: Prefix backend: service: name: ntfy-svc port: number: 80 ``` === "server.yml" ```yaml cache-file: "/var/cache/ntfy/cache.db" attachment-cache-dir: "/var/cache/ntfy/attachments" ``` ntfy-2.11.0/docs/integrations.md000066400000000000000000000734561462047176100165620ustar00rootroot00000000000000# Integrations + community projects There are quite a few projects that work with ntfy, integrate ntfy, or have been built around ntfy. It's super exciting to see what you guys have come up with. Feel free to [create a pull request on GitHub](https://github.com/binwiederhier/ntfy/issues) to add your own project here. I've added a ⭐ to projects or posts that have a significant following, or had a lot of interaction by the community. ## Official integrations - [changedetection.io](https://changedetection.io) ⭐ - Website change detection and notification - [Healthchecks.io](https://healthchecks.io/) ⭐ - Online service for monitoring regularly running tasks such as cron jobs - [Apprise](https://github.com/caronc/apprise/wiki/Notify_ntfy) ⭐ - Push notifications that work with just about every platform - [Uptime Kuma](https://uptime.kuma.pet/) ⭐ - A self-hosted monitoring tool - [Robusta](https://docs.robusta.dev/master/catalog/sinks/webhook.html) ⭐ - open source platform for Kubernetes troubleshooting - [borgmatic](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#third-party-monitoring-services) ⭐ - configuration-driven backup software for servers and workstations - [Radarr](https://radarr.video/) ⭐ - Movie collection manager for Usenet and BitTorrent users - [Sonarr](https://sonarr.tv/) ⭐ - PVR for Usenet and BitTorrent users - [Gatus](https://gatus.io/) ⭐ - Automated service health dashboard - [Automatisch](https://automatisch.io/) ⭐ - Open source Zapier alternative / workflow automation tool - [FlexGet](https://flexget.com/Plugins/Notifiers/ntfysh) ⭐ - Multipurpose automation tool for all of your media - [Shoutrrr](https://containrrr.dev/shoutrrr/v0.8/services/ntfy/) ⭐ - Notification library for gophers and their furry friends. - [Netdata](https://learn.netdata.cloud/docs/alerts-and-notifications/notifications/agent-alert-notifications/ntfy) ⭐ - Real-time performance monitoring - [Deployer](https://github.com/deployphp/deployer) ⭐ - PHP deployment tool - [Scrt.link](https://scrt.link/) - Share a secret - [Platypush](https://docs.platypush.tech/platypush/plugins/ntfy.html) - Automation platform aimed to run on any device that can run Python - [diun](https://crazymax.dev/diun/) - Docker Image Update Notifier - [Cloudron](https://www.cloudron.io/store/sh.ntfy.cloudronapp.html) - Platform that makes it easy to manage web apps on your server - [Xitoring](https://xitoring.com/docs/notifications/notification-roles/ntfy/) - Server and Uptime monitoring - [HetrixTools](https://docs.hetrixtools.com/ntfy-sh-notifications/) - Uptime monitoring ## Integration via HTTP/SMTP/etc. - [Watchtower](https://containrrr.dev/watchtower/) ⭐ - Automating Docker container base image updates (see [integration example](examples.md#watchtower-shoutrrr)) - [Jellyfin](https://jellyfin.org/) ⭐ - The Free Software Media System (see [integration example](examples.md#)) - [Overseer](https://docs.overseerr.dev/using-overseerr/notifications/webhooks) ⭐ - a request management and media discovery tool for Plex (see [integration example](examples.md#jellyseerroverseerr-webhook)) - [Tautulli](https://github.com/Tautulli/Tautulli) ⭐ - Monitoring and tracking tool for Plex (integration [via webhook](https://github.com/Tautulli/Tautulli/wiki/Notification-Agents-Guide#webhook)) - [Mailrise](https://github.com/YoRyan/mailrise) - An SMTP gateway (integration via [Apprise](https://github.com/caronc/apprise/wiki/Notify_ntfy)) - [Proxmox-Ntfy](https://github.com/qtsone/proxmox-ntfy) - Python script that monitors Proxmox tasks and sends notifications using the Ntfy service. ## [UnifiedPush](https://unifiedpush.org/users/apps/) integrations - [Element](https://f-droid.org/packages/im.vector.app/) ⭐ - Matrix client - [SchildiChat](https://schildi.chat/android/) ⭐ - Matrix client - [Tusky](https://tusky.app/) ⭐ - Fediverse client - [Fedilab](https://fedilab.app/) - Fediverse client - [FindMyDevice](https://gitlab.com/Nulide/findmydevice/) - Find your Device with an SMS or online with the help of FMDServer - [Tox Push Message App](https://github.com/zoff99/tox_push_msg_app) - Tox Push Message App ## Libraries - [ntfy-php-library](https://github.com/VerifiedJoseph/ntfy-php-library) - PHP library for sending messages using a ntfy server (PHP) - [ntfy-notifier](https://github.com/DAcodedBEAT/ntfy-notifier) - Symfony Notifier integration for ntfy (PHP) - [ntfpy](https://github.com/Nevalicjus/ntfpy) - API Wrapper for ntfy.sh (Python) - [pyntfy](https://github.com/DP44/pyntfy) - A module for interacting with ntfy notifications (Python) - [vntfy](https://github.com/lmangani/vntfy) - Barebone V client for ntfy (V) - [ntfy-middleman](https://github.com/nachotp/ntfy-middleman) - Wraps APIs and send notifications using ntfy.sh on schedule (Python) - [ntfy-dotnet](https://github.com/nwithan8/ntfy-dotnet) - .NET client library to interact with a ntfy server (C# / .NET) - [node-ntfy-publish](https://github.com/cityssm/node-ntfy-publish) - A Node package to publish notifications to an ntfy server (Node) - [ntfy](https://github.com/jonocarroll/ntfy) - Wraps the ntfy API with pipe-friendly tooling (R) - [ntfy-for-delphi](https://github.com/hazzelnuts/ntfy-for-delphi) - A friendly library to push instant notifications ntfy (Delphi) - [ntfy](https://github.com/ffflorian/ntfy) - Send notifications over ntfy (JS) - [ntfy_dart](https://github.com/jr1221/ntfy_dart) - Dart wrapper around the ntfy API (Dart) - [gotfy](https://github.com/AnthonyHewins/gotfy) - A Go wrapper for the ntfy API (Go) - [symfony/ntfy-notifier](https://symfony.com/components/NtfyNotifier) ⭐ - Symfony Notifier integration for ntfy (PHP) - [ntfy-java](https://github.com/MaheshBabu11/ntfy-java/) - A Java package to interact with a ntfy server (Java) ## CLIs + GUIs - [ntfy.sh.sh](https://github.com/mininmobile/ntfy.sh.sh) - Run scripts on ntfy.sh events - [ntfy Desktop client](https://codeberg.org/zvava/ntfy-desktop) - Cross-platform desktop application for ntfy - [ntfy svelte front-end](https://github.com/novatorem/Ntfy) - Front-end built with svelte - [wio-ntfy-ticker](https://github.com/nachotp/wio-ntfy-ticker) - Ticker display for a ntfy.sh topic - [ntfysh-windows](https://github.com/lucas-bortoli/ntfysh-windows) - A ntfy client for Windows Desktop - [ntfyr](https://github.com/haxwithaxe/ntfyr) - A simple commandline tool to send notifications to ntfy - [ntfy.py](https://github.com/ioqy/ntfy-client-python) - ntfy.py is a simple nfty.sh client for sending notifications ## Projects + scripts - [Grafana-to-ntfy](https://github.com/kittyandrew/grafana-to-ntfy) - Grafana-to-ntfy alerts channel (Rust) - [Grafana-ntfy-webhook-integration](https://github.com/academo/grafana-alerting-ntfy-webhook-integration) - Integrates Grafana alerts webhooks (Go) - [Grafana-to-ntfy](https://gitlab.com/Saibe1111/grafana-to-ntfy) - Grafana-to-ntfy alerts channel (Node Js) - [ntfy-long-zsh-command](https://github.com/robfox92/ntfy-long-zsh-command) - Notifies you once a long-running command completes (zsh) - [ntfy-shellscripts](https://github.com/nickexyz/ntfy-shellscripts) - A few scripts for the ntfy project (Shell) - [QuickStatus](https://github.com/corneliusroot/QuickStatus) - A shell script to alert to any immediate problems upon login (Shell) - [ntfy.el](https://github.com/shombando/ntfy) - Send notifications from Emacs (Emacs) - [backup-projects](https://gist.github.com/anthonyaxenov/826ba65abbabd5b00196bc3e6af76002) - Stupidly simple backup script for own projects (Shell) - [grav-plugin-whistleblower](https://github.com/Himmlisch-Studios/grav-plugin-whistleblower) - Grav CMS plugin to get notifications via ntfy (PHP) - [ntfy-server-status](https://github.com/filip2cz/ntfy-server-status) - Checking if server is online and reporting through ntfy (C) - [ntfy.sh *arr script](https://github.com/agent-squirrel/nfty-arr-script) - Quick and hacky script to get sonarr/radarr to notify the ntfy.sh service (Shell) - [website-watcher](https://github.com/muety/website-watcher) - A small tool to watch websites for changes (with XPath support) (Python) - [siteeagle](https://github.com/tpanum/siteeagle) - A small Python script to monitor websites and notify changes (Python) - [send_to_phone](https://github.com/whipped-cream/send_to_phone) - Scripts to upload a file to Transfer.sh and ping ntfy with the download link (Python) - [ntfy Discord bot](https://github.com/R0dn3yS/ntfy-bot) - WIP ntfy discord bot (TypeScript) - [ntfy Discord bot](https://github.com/binwiederhier/ntfy-bot) - ntfy Discord bot (Go) - [ntfy Discord bot](https://github.com/jr1221/ntfy_discord_bot) - An advanced modal-based bot for interacting with the ntfy.sh API (Dart) - [Bettarr Notifications](https://github.com/NiNiyas/Bettarr-Notifications) - Better Notifications for Sonarr and Radarr (Python) - [Notify me the intruders](https://github.com/nothingbutlucas/notify_me_the_intruders) - Notify you if they are intruders or new connections on your network (Shell) - [Send GitHub Action to ntfy](https://github.com/NiNiyas/ntfy-action) - Send GitHub Action workflow notifications to ntfy (JS) - [aTable/ntfy alertmanager bridge](https://github.com/aTable/ntfy_alertmanager_bridge) - Basic alertmanager bridge to ntfy (JS) - [~xenrox/ntfy-alertmanager](https://hub.xenrox.net/~xenrox/ntfy-alertmanager) - A bridge between ntfy and Alertmanager (Go) - [pinpox/alertmanager-ntfy](https://github.com/pinpox/alertmanager-ntfy) - Relay prometheus alertmanager alerts to ntfy (Go) - [alexbakker/alertmanager-ntfy](https://github.com/alexbakker/alertmanager-ntfy) - Service that forwards Prometheus Alertmanager notifications to ntfy (Go) - [restreamchat2ntfy](https://github.com/kurohuku7/restreamchat2ntfy) - Send restream.io chat to ntfy to check on the Meta Quest (JS) - [k8s-ntfy-deployment-service](https://github.com/Christian42/k8s-ntfy-deployment-service) - Automatic Kubernetes (k8s) ntfy deployment - [huginn-global-entry-notif](https://github.com/kylezoa/huginn-global-entry-notif) - Checks CBP API for available appointments with Huginn (JSON) - [ntfyer](https://github.com/KikyTokamuro/ntfyer) - Sending various information to your ntfy topic by time (TypeScript) - [git-simple-notifier](https://github.com/plamenjm/git-simple-notifier) - Script running git-log, checking for new repositories (Shell) - [ntfy-to-slack](https://github.com/ozskywalker/ntfy-to-slack) - Tool to subscribe to a ntfy topic and send the messages to a Slack webhook (Go) - [ansible-ntfy](https://github.com/jpmens/ansible-ntfy) - Ansible action plugin to post JSON messages to ntfy (Python) - [ntfy-notification-channel](https://github.com/wijourdil/ntfy-notification-channel) - Laravel Notification channel for ntfy (PHP) - [ntfy_on_a_chip](https://github.com/gergepalfi/ntfy_on_a_chip) - ESP8266 and ESP32 client code to communicate with ntfy - [ntfy-sdk](https://github.com/yukibtc/ntfy-sdk) - ntfy client library to send notifications (Rust) - [ntfy_ynh](https://github.com/YunoHost-Apps/ntfy_ynh) - ntfy app for YunoHost - [woodpecker-ntfy](https://codeberg.org/l-x/woodpecker-ntfy)- Woodpecker CI plugin for sending ntfy notfication from a pipeline (Go) - [drone-ntfy](https://github.com/Clortox/drone-ntfy) - Drone.io plugin for sending ntfy notifications from a pipeline (Shell) - [ignition-ntfy-module](https://github.com/Kyvis-Labs/ignition-ntfy-module) - Adds support for sending notifications via a ntfy server to Ignition (Java) - [maubot-ntfy](https://gitlab.com/999eagle/maubot-ntfy) - Matrix bot to subscribe to ntfy topics and send messages to Matrix (Python) - [ntfy-wrapper](https://github.com/vict0rsch/ntfy-wrapper) - Wrapper around ntfy (Python) - [nodebb-plugin-ntfy](https://github.com/NodeBB/nodebb-plugin-ntfy) - Push notifications for NodeBB forums - [n8n-ntfy](https://github.com/raghavanand98/n8n-ntfy.sh) - n8n community node that lets you use ntfy in your workflows - [nlog-ntfy](https://github.com/MichelMichels/nlog-ntfy) - Send NLog messages over ntfy (C# / .NET / NLog) - [helm-charts](https://github.com/sarab97/helm-charts) - Helm charts of some of the selfhosted services, incl. ntfy - [ntfy_ansible_role](https://github.com/stevenengland/ntfy_ansible_role) (on [Ansible Galaxy](https://galaxy.ansible.com/stevenengland/ntfy)) - Ansible role to install ntfy - [easy2ntfy](https://github.com/chromoxdor/easy2ntfy) - Gateway for ESPeasy to receive commands through ntfy and using easyfetch (HTML/JS) - [ntfy_lite](https://github.com/MPI-IS/ntfy_lite) - Minimalist python API for pushing ntfy notifications (Python) - [notify](https://github.com/guanguans/notify) - 推送通知 (PHP) - [zpool-events](https://github.com/maglar0/zpool-events) - Notify on ZFS pool events (Python) - [ntfyd](https://github.com/joachimschmidt557/ntfyd) - ntfy desktop daemon (Zig) - [ntfy-browser](https://github.com/johman10/ntfy-browser) - browser extension to receive notifications without having the page open (TypeScript) - [ntfy-electron](https://github.com/xdpirate/ntfy-electron) - Electron wrapper for the ntfy web app (JS) - [systemd-ntfy-poweronoff](https://github.com/stendler/systemd-ntfy-poweronoff) - Systemd services to send notifications on system startup and shutdown (Go) - [msgdrop](https://github.com/jbrubake/msgdrop) - Send and receive encrypted messages (Bash) - [vigilant](https://github.com/VerifiedJoseph/vigilant) - Monitor RSS/ATOM and JSON feeds, and send push notifications on new entries (PHP) - [ansible-role-ntfy-alertmanager](https://github.com/bleetube/ansible-role-ntfy-alertmanager) - Ansible role to install xenrox/ntfy-alertmanager - [NtfyMe-Blender](https://github.com/NotNanook/NtfyMe-Blender) - Blender addon to send notifications to NtfyMe (Python) - [ntfy-ios-url-share](https://www.icloud.com/shortcuts/be8a7f49530c45f79733cfe3e41887e6) - An iOS shortcut that lets you share URLs easily and quickly. - [ntfy-ios-filesharing](https://www.icloud.com/shortcuts/fe948d151b2e4ae08fb2f9d6b27d680b) - An iOS shortcut that lets you share files from your share feed to a topic of your choice. - [systemd-ntfy](https://hackage.haskell.org/package/systemd-ntfy) - monitor a set of systemd services an send a notification to ntfy.sh whenever their status changes - [RouterOS Scripts](https://git.eworm.de/cgit/routeros-scripts/about/) - a collection of scripts for MikroTik RouterOS - [ntfy-android-builder](https://github.com/TheBlusky/ntfy-android-builder) - Script for building ntfy-android with custom Firebase configuration (Docker/Shell) - [jetspotter](https://github.com/vvanouytsel/jetspotter) - send notifications when planes are spotted near you (Go) - [monitoring_ntfy](https://www.drupal.org/project/monitoring_ntfy) - Drupal monitoring Ntfy.sh integration (PHP/Drupal) - [Notify](https://flathub.org/apps/com.ranfdev.Notify) - Native GTK4 client for ntfy (Rust) - [notify-via-ntfy](https://exchange.checkmk.com/p/notify-via-ntfy) - Checkmk plugin to send notifications via ntfy (Python) - [ntfy-java](https://github.com/MaheshBabu11/ntfy-java/) - A Java package to interact with a ntfy server (Java) ## Blog + forum posts - [ntfy / Emacs Lisp](https://speechcode.com/blog/ntfy/) - speechcode.com - 3/2024 - [Boost Your Productivity with ntfy.sh: The Ultimate Notification Tool for Command-Line Users](https://dev.to/archetypal/boost-your-productivity-with-ntfysh-the-ultimate-notification-tool-for-command-line-users-iil) - dev.to - 3/2024 - [Nextcloud Talk (F-Droid version) notifications using ntfy (ntfy.sh)](https://www.youtube.com/watch?v=0a6PpfN5PD8) - youtube.com - 2/2024 - [ZFS and SMART Warnings via Ntfy](https://rair.dev/zfs-smart-ntfy/) - rair.dev - 2/2024 - [Automating Security Camera Notifications With Home Assistant and Ntfy](https://runtimeterror.dev/automating-camera-notifications-home-assistant-ntfy/) ⭐ - runtimeterror.dev - 2/2024 - [Ntfy: self-hosted notification service](https://medium.com/@williamdonze/ntfy-self-hosted-notification-service-0f3eada6e657) ⭐ - williamdonze.medium.com - 1/2024 - [Let’s Supercharge Snowflake Alerts with Cool ntfy Open-source Notifications!](https://sarathi-data-ml-cloud.medium.com/lets-supercharge-snowflake-alerts-with-cool-ntfy-open-source-notifications-296da442c331) - sarathi-data-ml-cloud.medium.com - 1/2024 - [Setting up NTFY with Ngnix-Proxy-Manager, authentication and Ansible notifications](https://random-it-blog.de/rocky-linux/setting-up-ntfy-with-ngnix-proxy-manager-authentication-and-ansible-notifications/) - random-it-blog.de - 12/2023 - [Introducing the Monitoring Ntfy.sh Integration Module: Real-time Notifications for Drupal Monitoring](https://cyberschorsch.dev/drupal/introducing-monitoring-ntfysh-integration-module-real-time-notifications-drupal-monitoring) - cyberschorsch.dev - 11/2023 - [How to install Ntfy.sh on CasaOS using BigBearCasaOS](https://www.youtube.com/watch?v=wSWhtSNwTd8) - youtube.com - 10/2023 - [Podman Update Notifications via Ntfy](https://rair.dev/podman-update-notifications-ntfy/) - rair.dev - 9/2023 - [Easy Push Notifications With ntfy.sh](https://runtimeterror.dev/easy-push-notifications-with-ntfy/) ⭐ - runtimeterror.dev - 9/2023 - [Ntfy: Your Ultimate Push Notification Powerhouse!](https://kkamalesh117.medium.com/ntfy-your-ultimate-push-notification-powerhouse-1968c070f1d1) - kkamalesh117.medium.com - 9/2023 - [Installing Self Host NTFY On Linux Using Docker Container](https://www.pinoylinux.org/topicsplus/containers/installing-self-host-ntfy-on-linux-using-docker-container/) - pinoylinux.org - 9/2023 - [Homelab Notifications with ntfy](https://blog.alexsguardian.net/posts/2023/09/12/selfhosting-ntfy/) ⭐ - alexsguardian.net - 9/2023 - [Why NTFY is the Ultimate Push Notification Tool for Your Needs](https://osintph.medium.com/why-ntfy-is-the-ultimate-push-notification-tool-for-your-needs-e767421c84c5) - osintph.medium.com - 9/2023 - [Supercharge Your Alerts: Ntfy — The Ultimate Push Notification Solution](https://medium.com/spring-boot/supercharge-your-alerts-ntfy-the-ultimate-push-notification-solution-a3dda79651fe) - spring-boot.medium.com - 9/2023 - [Deploy Ntfy using Docker](https://www.linkedin.com/pulse/deploy-ntfy-mohamed-sharfy/) - linkedin.com - 9/2023 - [Send Notifications With Ntfy for New WordPress Posts](https://www.activepieces.com/blog/ntfy-notifications-for-wordpress-new-posts) - activepieces.com - 9/2023 - [Get Ntfy Notifications About New Zendesk Ticket](https://www.activepieces.com/blog/ntfy-notifications-about-new-zendesk-tickets) - activepieces.com - 9/2023 - [Set reminder for recurring events using ntfy & Cron](https://www.youtube.com/watch?v=J3O4aQ-EcYk) - youtube.com - 9/2023 - [ntfy - Installation and full configuration setup](https://www.youtube.com/watch?v=QMy14rGmpFI) - youtube.com - 9/2023 - [How to install Ntfy.sh on Portainer / Docker Compose](https://www.youtube.com/watch?v=utD9GNbAwyg) - youtube.com - 9/2023 - [ntfy - Push-Benachrichtigungen // Push Notifications](https://www.youtube.com/watch?v=LE3vRPPqZOU) - youtube.com - 9/2023 - [Podman Update Notifications via Ntfy](https://rair.dev/podman-upadte-notifications-ntfy/) - rair.dev - 9/2023 - [How to Send Alerts From Raspberry Pi Pico W to a Phone or Tablet](https://www.tomshardware.com/how-to/send-alerts-raspberry-pi-pico-w-to-mobile-device) - tomshardware.com - 8/2023 - [NetworkChunk - how did I NOT know about this?](https://www.youtube.com/watch?v=poDIT2ruQ9M) ⭐ - youtube.com - 8/2023 - [NTFY - Command-Line Notifications](https://academy.networkchuck.com/blog/ntfy/) - academy.networkchuck.com - 8/2023 - [Open Source Push Notifications! Get notified of any event you can imagine. Triggers abound!](https://www.youtube.com/watch?v=WJgwWXt79pE) ⭐ - youtube.com - 8/2023 - [How to install and self host an Ntfy server on Linux](https://linuxconfig.org/how-to-install-and-self-host-an-ntfy-server-on-linux) - linuxconfig.org - 7/2023 - [Basic website monitoring using cronjobs and ntfy.sh](https://burkhardt.dev/2023/website-monitoring-cron-ntfy/) - burkhardt.dev - 6/2023 - [Pingdom alternative in one line of curl through ntfy.sh](https://piqoni.bearblog.dev/uptime-monitoring-in-one-line-of-curl/) - bearblog.dev - 6/2023 - [#OpenSourceDiscovery 78: ntfy.sh](https://opensourcedisc.substack.com/p/opensourcediscovery-78-ntfysh) - opensourcedisc.substack.com - 6/2023 - [ntfy: des notifications instantanées](https://blogmotion.fr/diy/ntfy-notification-push-domotique-20708) - blogmotion.fr - 5/2023 - [桌面通知:ntfy](https://www.cnblogs.com/xueweihan/archive/2023/05/04/17370060.html) - cnblogs.com - 5/2023 - [ntfy.sh - Open source push notifications via PUT/POST](https://lobste.rs/s/5drapz/ntfy_sh_open_source_push_notifications) - lobste.rs - 5/2023 - [Install ntfy Inside Docker Container in Linux](https://lindevs.com/install-ntfy-inside-docker-container-in-linux) - lindevs.com - 4/2023 - [ntfy.sh](https://neo-sahara.com/wp/2023/03/25/ntfy-sh/) - neo-sahara.com - 3/2023 - [Using Ntfy to send and receive push notifications - Samuel Rosa de Oliveria - Delphicon 2023](https://www.youtube.com/watch?v=feu0skpI9QI) - youtube.com - 3/2023 - [ntfy: własny darmowy system powiadomień](https://sprawdzone.it/ntfy-wlasny-darmowy-system-powiadomien/) - sprawdzone.it - 3/2023 - [Deploying ntfy on railway](https://www.youtube.com/watch?v=auJICXtxoNA) - youtube.com - 3/2023 - [Start-Job,Variables, and ntfy.sh](https://klingele.dev/2023/03/01/start-jobvariables-and-ntfy-sh/) - klingele.dev - 3/2023 - [enviar notificaciones automáticas usando ntfy.sh](https://osiux.com/2023-02-15-send-automatic-notifications-using-ntfy.html) - osiux.com - 2/2023 - [Carnet IP动态解析以及通过ntfy推送IP信息](https://blog.wslll.cn/index.php/archives/201/) - blog.wslll.cn - 2/2023 - [Open-Source-Brieftaube: ntfy verschickt Push-Meldungen auf Smartphone und PC](https://www.heise.de/news/Open-Source-Brieftaube-ntfy-verschickt-Push-Meldungen-auf-Smartphone-und-PC-7521583.html) ⭐ - heise.de - 2/2023 - [Video: Simple Push Notifications ntfy](https://www.youtube.com/watch?v=u9EcWrsjE20) ⭐ - youtube.com - 2/2023 - [Use ntfy.sh with Home Assistant](https://diecknet.de/en/2023/02/12/ntfy-sh-with-homeassistant/) - diecknet.de - 2/2023 - [On installe Ntfy sur Synology Docker](https://www.maison-et-domotique.com/140356-serveur-notification-jeedom-ntfy-synology-docker/) - maison-et-domotique.co - 1/2023 - [January 2023 Developer Update](https://community.nodebb.org/topic/16908/january-2023-developer-update) - nodebb.org - 1/2023 - [Comment envoyer des notifications push sur votre téléphone facilement et gratuitement?](https://korben.info/notifications-push-telephone.html) - 1/2023 - [UnifiedPush: a decentralized, open-source push notification protocol](https://f-droid.org/en/2022/12/18/unifiedpush.html) ⭐ - 12/2022 - [ntfy setup instructions](https://docs.benjamin-altpeter.de/network/vms/1001029-ntfy/) - benjamin-altpeter.de - 12/2022 - [Ntfy Self-Hosted Push Notifications](https://lachlanlife.net/posts/2022-12-ntfy/) - lachlanlife.net - 12/2022 - [NTFY - système de notification hyper simple et complet](https://www.youtube.com/watch?v=UieZYWVVgA4) - youtube.com - 12/2022 - [ntfy.sh](https://paramdeo.com/til/ntfy-sh) - paramdeo.com - 11/2022 - [Using ntfy to warn me when my computer is discharging](https://ulysseszh.github.io/programming/2022/11/28/ntfy-warn-discharge.html) - ulysseszh.github.io - 11/2022 - [Enabling SSH Login Notifications using Ntfy](https://paramdeo.com/blog/enabling-ssh-login-notifications-using-ntfy) - paramdeo.com - 11/2022 - [ntfy - Push Notification Service](https://dizzytech.de/posts/ntfy/) - dizzytech.de - 11/2022 - [Console #132](https://console.substack.com/p/console-132) ⭐ - console.substack.com - 11/2022 - [How to make my phone buzz*](https://evbogue.com/howtomakemyphonebuzz) - evbogue.com - 11/2022 - [MeshCentral - Ntfy Push Notifications ](https://www.youtube.com/watch?v=wyE4rtUd4Bg) - youtube.com - 11/2022 - [Changelog | Tracking layoffs, tech worker demand still high, ntfy, ...](https://changelog.com/news/tracking-layoffs-tech-worker-demand-still-high-ntfy-devenv-markdoc-mike-bifulco-Y1jW) ⭐ - changelog.com - 11/2022 - [Pointer | Issue #367](https://www.pointer.io/archives/a9495a2a6f/) - pointer.io - 11/2022 - [Envie Push Notifications por POST (de graça e sem cadastro)](https://www.tabnews.com.br/filipedeschamps/envie-push-notifications-por-post-de-graca-e-sem-cadastro) - tabnews.com.br - 11/2022 - [Push Notifications for KDE](https://volkerkrause.eu/2022/11/12/kde-unifiedpush-push-notifications.html) - volkerkrause.eu - 11/2022 - [TLDR Newsletter Daily Update 2022-11-09](https://tldr.tech/tech/newsletter/2022-11-09) ⭐ - tldr.tech - 11/2022 - [Ntfy.sh – Send push notifications to your phone via PUT/POST](https://news.ycombinator.com/item?id=33517944) ⭐ - news.ycombinator.com - 11/2022 - [Ntfy et Jeedom : un plugin](https://lunarok-domotique.com/2022/11/ntfy-et-jeedom/) - lunarok-domotique.com - 11/2022 - [Crea tu propio servidor de notificaciones con Ntfy](https://blog.parravidales.es/crea-tu-propio-servidor-de-notificaciones-con-ntfy/) - blog.parravidales.es - 11/2022 - [unRAID Notifications with ntfy.sh](https://lder.dev/posts/ntfy-Notifications-With-unRAID/) - lder.dev - 10/2022 - [Zero-cost push notifications to your phone or desktop via PUT/POST ](https://lobste.rs/s/41dq13/zero_cost_push_notifications_your_phone) - lobste.rs - 10/2022 - [A nifty push notification system: ntfy](https://jpmens.net/2022/10/30/a-nifty-push-notification-system-ntfy/) - jpmens.net - 10/2022 - [Alarmanlage der dritten Art (YouTube video)](https://www.youtube.com/watch?v=altb5QLHbaU&feature=youtu.be) - youtube.com - 10/2022 - [Neue Services: Ntfy, TikTok und RustDesk](https://adminforge.de/tools/neue-services-ntfy-tiktok-und-rustdesk/) - adminforge.de - 9/2022 - [Ntfy, le service de notifications qu’il vous faut](https://www.cachem.fr/ntfy-le-service-de-notifications-quil-vous-faut/) - cachem.fr - 9/2022 - [NAS Synology et notifications avec ntfy](https://www.cachem.fr/synology-notifications-ntfy/) - cachem.fr - 9/2022 - [Self hosted Mobile Push Notifications using NTFY | Thejesh GN](https://thejeshgn.com/2022/08/23/self-hosted-mobile-push-notifications-using-ntfy/) - thejeshgn.com - 8/2022 - [Fedora Magazine | 4 cool new projects to try in Copr](https://fedoramagazine.org/4-cool-new-projects-to-try-in-copr-for-august-2022/) - fedoramagazine.org - 8/2022 - [Docker로 오픈소스 푸시알람 프로젝트 ntfy.sh 설치 및 사용하기.(Feat. Uptimekuma)](https://svrforum.com/svr/398979) - svrforum.com - 8/2022 - [Easy notifications from R](https://sometimesir.com/posts/easy-notifications-from-r/) - sometimesir.com - 6/2022 - [ntfy is finally coming to iOS, and Matrix/UnifiedPush gateway support](https://www.reddit.com/r/selfhosted/comments/vdzvxi/ntfy_is_finally_coming_to_ios_with_full/) ⭐ - reddit.com - 6/2022 - [Install guide (with Docker)](https://chowdera.com/2022/150/202205301257379077.html) - chowdera.com - 5/2022 - [无需注册的通知服务ntfy](https://blog.csdn.net/wbsu2004/article/details/125040247) - blog.csdn.net - 5/2022 - [Updated review post (Jan-Lukas Else)](https://jlelse.blog/thoughts/2022/04/ntfy) - jlelse.blog - 4/2022 - [Using ntfy and Tasker together](https://lachlanlife.net/posts/2022-04-tasker-ntfy/) - lachlanlife.net - 4/2022 - [Reddit feature update post](https://www.reddit.com/r/selfhosted/comments/uetlso/ntfy_is_a_tool_to_send_push_notifications_to_your/) ⭐ - reddit.com - 4/2022 - [無料で簡単に通知の送受信ができつつオープンソースでセルフホストも可能な「ntfy」を使ってみた](https://gigazine.net/news/20220404-ntfy-push-notification/) - gigazine.net - 4/2022 - [Pocketmags ntfy review](https://pocketmags.com/us/linux-format-magazine/march-2022/articles/1104187/ntfy) - pocketmags.com - 3/2022 - [Reddit web app release post](https://www.reddit.com/r/selfhosted/comments/tc0p0u/say_hello_to_the_brand_new_ntfysh_web_app_push/) ⭐ - reddit.com- 3/2022 - [Lemmy post (Jakob)](https://lemmy.eus/post/15541) - lemmy.eus - 1/2022 - [Reddit UnifiedPush release post](https://www.reddit.com/r/selfhosted/comments/s5jylf/my_open_source_notification_android_app_and/) ⭐ - reddit.com - 1/2022 - [ntfy: send notifications from your computer to your phone](https://rs1.es/tutorials/2022/01/19/ntfy-send-notifications-phone.html) - rs1.es - 1/2022 - [Short ntfy review (Jan-Lukas Else)](https://jlelse.blog/links/2021/12/ntfy-sh) - jlelse.blog - 12/2021 - [Free MacroDroid webhook alternative (FrameXX)](https://www.macrodroidforum.com/index.php?threads/ntfy-sh-free-macrodroid-webhook-alternative.1505/) - macrodroidforum.com - 12/2021 - [ntfy otro sistema de notificaciones pub-sub simple basado en HTTP](https://ugeek.github.io/blog/post/2021-11-05-ntfy-sh-otro-sistema-de-notificaciones-pub-sub-simple-basado-en-http.html) - ugeek.github.io - 11/2021 - [Show HN: A tool to send push notifications to your phone, written in Go](https://news.ycombinator.com/item?id=29715464) ⭐ - news.ycombinator.com - 12/2021 - [Reddit selfhostable post](https://www.reddit.com/r/selfhosted/comments/qxlsm9/my_open_source_notification_android_app_and/) ⭐ - reddit.com - 11/2021 ## Alternative ntfy servers Here's a list of public ntfy servers. As of right now, there is only one official server. The others are provided by the ntfy community. Thanks to everyone running a public server. **You guys rock!** | URL | Country | |---------------------------------------------------|--------------------| | [ntfy.sh](https://ntfy.sh/) (*Official*) | 🇺🇸 United States | | [ntfy.tedomum.net](https://ntfy.tedomum.net/) | 🇫🇷 France | | [ntfy.jae.fi](https://ntfy.jae.fi/) | 🇫🇮 Finland | | [ntfy.adminforge.de](https://ntfy.adminforge.de/) | 🇩🇪 Germany | | [ntfy.envs.net](https://ntfy.envs.net) | 🇩🇪 Germany | | [ntfy.mzte.de](https://ntfy.mzte.de/) | 🇩🇪 Germany | | [ntfy.hostux.net](https://ntfy.hostux.net/) | 🇫🇷 France | | [ntfy.fossman.de](https://ntfy.fossman.de/) | 🇩🇪 Germany | Please be aware that **server operators can log your messages**. The project also cannot guarantee the reliability and uptime of third party servers, so use of each server is **at your own discretion**. ntfy-2.11.0/docs/known-issues.md000066400000000000000000000054221462047176100165050ustar00rootroot00000000000000# Known issues This is an incomplete list of known issues with the ntfy server, web app, Android app, and iOS app. You can find a complete list [on GitHub](https://github.com/binwiederhier/ntfy/labels/%F0%9F%AA%B2%20bug), but I thought it may be helpful to have the prominent ones here to link to. ## iOS app not refreshing (see [#267](https://github.com/binwiederhier/ntfy/issues/267)) For some (many?) users, the iOS app is not refreshing the view when new notifications come in. Until you manually swipe down, you do not see the newly arrived messages, even though the popup appeared before. This is caused by some weirdness between the Notification Service Extension (NSE), SwiftUI and Core Data. I am entirely clueless on how to fix it, sadly, as it is ephemeral and not clear to me what is causing it. Please send experienced iOS developers my way to help me figure this out. ## iOS app not receiving notifications (anymore) If notifications do not show up at all anymore, there are a few causes for it (that I know of): **Firebase+APNS are being weird and buggy**: If this is the case, usually it helps to **remove the topic/subscription and re-add it**. That will force Firebase to re-subscribe to the Firebase topic. **Self-hosted only: No `upstream-base-url` set, or `base-url` mismatch**: To make self-hosted servers work with the iOS app, I had to do some horrible things (see [iOS instant notifications](config.md#ios-instant-notifications) for details). Be sure that in your selfhosted server: * Set `upstream-base-url: "https://ntfy.sh"` (**not your own hostname!**) * Ensure that the URL you set in `base-url` **matches exactly** what you set the Default Server in iOS to ## iOS app seeing "New message", but not real message content If you see `New message` notifications on iOS, your iPhone can likely not talk to your self-hosted server. Be sure that your iOS device and your ntfy server are either on the same network, or that your phone can actually reach the server. Turn on tracing/debugging on the server (via `log-level: trace` or `log-level: debug`, see [troubleshooting](troubleshooting.md)), and read docs on [iOS instant notifications](https://docs.ntfy.sh/config/#ios-instant-notifications). ## Safari does not play sounds for web push notifications Safari does not support playing sounds for web push notifications, and treats them all as silent. This will be fixed with iOS 17 / Safari 17, which will be released later in 2023. ## PWA on iOS sometimes crashes with an IndexedDB error (see [#787](https://github.com/binwiederhier/ntfy/issues/787)) When resuming the installed PWA from the background, it sometimes crashes with an error from IndexedDB/Dexie, due to a [WebKit bug]( https://bugs.webkit.org/show_bug.cgi?id=197050). A reload will fix it until a permanent fix is found. ntfy-2.11.0/docs/privacy.md000066400000000000000000000014441462047176100155150ustar00rootroot00000000000000# Privacy policy I love free software, and I'm doing this because it's fun. I have no bad intentions, and **I will never monetize or sell your information, and this service and software will always stay free and open.** Neither the server nor the app record any personal information, or share any of the messages and topics with any outside service. All data is exclusively used to make the service function properly. The only external service I use is Firebase Cloud Messaging (FCM) service, which is required to provide instant Android notifications (see [FAQ](faq.md) for details). To avoid FCM altogether, download the F-Droid version. For debugging purposes, the ntfy server may temporarily log request paths, remote IP addresses or even topics or messages, though typically this is turned off. ntfy-2.11.0/docs/publish.md000066400000000000000000005453231462047176100155170ustar00rootroot00000000000000# Publishing Publishing messages can be done via HTTP PUT/POST or via the [ntfy CLI](install.md). Topics are created on the fly by subscribing or publishing to them. Because there is no sign-up, **the topic is essentially a password**, so pick something that's not easily guessable. Here's an example showing how to publish a simple message using a POST request: === "Command line (curl)" ``` curl -d "Backup successful 😀" ntfy.sh/mytopic ``` === "ntfy CLI" ``` ntfy publish mytopic "Backup successful 😀" ``` === "HTTP" ``` http POST /mytopic HTTP/1.1 Host: ntfy.sh Backup successful 😀 ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/mytopic', { method: 'POST', // PUT works too body: 'Backup successful 😀' }) ``` === "Go" ``` go http.Post("https://ntfy.sh/mytopic", "text/plain", strings.NewReader("Backup successful 😀")) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/mytopic" Body = "Backup successful" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/mytopic", data="Backup successful 😀".encode(encoding='utf-8')) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/mytopic', false, stream_context_create([ 'http' => [ 'method' => 'POST', // PUT also works 'header' => 'Content-Type: text/plain', 'content' => 'Backup successful 😀' ] ])); ``` If you have the [Android app](subscribe/phone.md) installed on your phone, this will create a notification that looks like this:
    ![basic notification](static/img/android-screenshot-basic-notification.png){ width=500 }
    Android notification
    There are more features related to publishing messages: You can set a [notification priority](#message-priority), a [title](#message-title), and [tag messages](#tags-emojis) 🥳 🎉. Here's an example that uses some of them at together: === "Command line (curl)" ``` curl \ -H "Title: Unauthorized access detected" \ -H "Priority: urgent" \ -H "Tags: warning,skull" \ -d "Remote access to phils-laptop detected. Act right away." \ ntfy.sh/phil_alerts ``` === "ntfy CLI" ``` ntfy publish \ --title "Unauthorized access detected" \ --tags warning,skull \ --priority urgent \ mytopic \ "Remote access to phils-laptop detected. Act right away." ``` === "HTTP" ``` http POST /phil_alerts HTTP/1.1 Host: ntfy.sh Title: Unauthorized access detected Priority: urgent Tags: warning,skull Remote access to phils-laptop detected. Act right away. ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/phil_alerts', { method: 'POST', // PUT works too body: 'Remote access to phils-laptop detected. Act right away.', headers: { 'Title': 'Unauthorized access detected', 'Priority': 'urgent', 'Tags': 'warning,skull' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/phil_alerts", strings.NewReader("Remote access to phils-laptop detected. Act right away.")) req.Header.Set("Title", "Unauthorized access detected") req.Header.Set("Priority", "urgent") req.Header.Set("Tags", "warning,skull") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/phil_alerts" Headers = @{ Title = "Unauthorized access detected" Priority = "urgent" Tags = "warning,skull" } Body = "Remote access to phils-laptop detected. Act right away." } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/phil_alerts", data="Remote access to phils-laptop detected. Act right away.", headers={ "Title": "Unauthorized access detected", "Priority": "urgent", "Tags": "warning,skull" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/phil_alerts', false, stream_context_create([ 'http' => [ 'method' => 'POST', // PUT also works 'header' => "Content-Type: text/plain\r\n" . "Title: Unauthorized access detected\r\n" . "Priority: urgent\r\n" . "Tags: warning,skull", 'content' => 'Remote access to phils-laptop detected. Act right away.' ] ])); ```
    ![priority notification](static/img/priority-notification.png){ width=500 }
    Urgent notification with tags and title
    You can also do multi-line messages. Here's an example using a [click action](#click-action), an [action button](#action-buttons), an [external image attachment](#attach-file-from-a-url) and [email publishing](#e-mail-publishing): === "Command line (curl)" ``` curl \ -H "Click: https://home.nest.com/" \ -H "Attach: https://nest.com/view/yAxkasd.jpg" \ -H "Actions: http, Open door, https://api.nest.com/open/yAxkasd, clear=true" \ -H "Email: phil@example.com" \ -d "There's someone at the door. 🐶 Please check if it's a good boy or a hooman. Doggies have been known to ring the doorbell." \ ntfy.sh/mydoorbell ``` === "ntfy CLI" ``` ntfy publish \ --click="https://home.nest.com/" \ --attach="https://nest.com/view/yAxkasd.jpg" \ --actions="http, Open door, https://api.nest.com/open/yAxkasd, clear=true" \ --email="phil@example.com" \ mydoorbell \ "There's someone at the door. 🐶 Please check if it's a good boy or a hooman. Doggies have been known to ring the doorbell." ``` === "HTTP" ``` http POST /mydoorbell HTTP/1.1 Host: ntfy.sh Click: https://home.nest.com/ Attach: https://nest.com/view/yAxkasd.jpg Actions: http, Open door, https://api.nest.com/open/yAxkasd, clear=true Email: phil@example.com There's someone at the door. 🐶 Please check if it's a good boy or a hooman. Doggies have been known to ring the doorbell. ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/mydoorbell', { method: 'POST', // PUT works too headers: { 'Click': 'https://home.nest.com/', 'Attach': 'https://nest.com/view/yAxkasd.jpg', 'Actions': 'http, Open door, https://api.nest.com/open/yAxkasd, clear=true', 'Email': 'phil@example.com' }, body: `There's someone at the door. 🐶 Please check if it's a good boy or a hooman. Doggies have been known to ring the doorbell.`, }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/mydoorbell", strings.NewReader(`There's someone at the door. 🐶 Please check if it's a good boy or a hooman. Doggies have been known to ring the doorbell.`)) req.Header.Set("Click", "https://home.nest.com/") req.Header.Set("Attach", "https://nest.com/view/yAxkasd.jpg") req.Header.Set("Actions", "http, Open door, https://api.nest.com/open/yAxkasd, clear=true") req.Header.Set("Email", "phil@example.com") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/mydoorbell" Headers = @{ Click = "https://home.nest.com" Attach = "https://nest.com/view/yAxksd.jpg" Actions = "http, Open door, https://api.nest.com/open/yAxkasd, clear=true" Email = "phil@example.com" } Body = "There's someone at the door. 🐶`n `n Please check if it's a good boy or a hooman.`n Doggies have been known to ring the doorbell.`n" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/mydoorbell", data="""There's someone at the door. 🐶 Please check if it's a good boy or a hooman. Doggies have been known to ring the doorbell.""".encode('utf-8'), headers={ "Click": "https://home.nest.com/", "Attach": "https://nest.com/view/yAxkasd.jpg", "Actions": "http, Open door, https://api.nest.com/open/yAxkasd, clear=true", "Email": "phil@example.com" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/mydoorbell', false, stream_context_create([ 'http' => [ 'method' => 'POST', // PUT also works 'header' => "Content-Type: text/plain\r\n" . "Click: https://home.nest.com/\r\n" . "Attach: https://nest.com/view/yAxkasd.jpg\r\n" . "Actions": "http, Open door, https://api.nest.com/open/yAxkasd, clear=true\r\n" . "Email": "phil@example.com\r\n", 'content' => 'There\'s someone at the door. 🐶 Please check if it\'s a good boy or a hooman. Doggies have been known to ring the doorbell.' ] ])); ```
    ![priority notification](static/img/android-screenshot-notification-multiline.jpg){ width=500 }
    Notification using a click action, a user action, with an external image attachment and forwarded via email
    ## Message title _Supported on:_ :material-android: :material-apple: :material-firefox: The notification title is typically set to the topic short URL (e.g. `ntfy.sh/mytopic`). To override the title, you can set the `X-Title` header (or any of its aliases: `Title`, `ti`, or `t`). === "Command line (curl)" ``` curl -H "X-Title: Dogs are better than cats" -d "Oh my ..." ntfy.sh/controversial curl -H "Title: Dogs are better than cats" -d "Oh my ..." ntfy.sh/controversial curl -H "t: Dogs are better than cats" -d "Oh my ..." ntfy.sh/controversial ``` === "ntfy CLI" ``` ntfy publish \ -t "Dogs are better than cats" \ controversial "Oh my ..." ``` === "HTTP" ``` http POST /controversial HTTP/1.1 Host: ntfy.sh Title: Dogs are better than cats Oh my ... ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/controversial', { method: 'POST', body: 'Oh my ...', headers: { 'Title': 'Dogs are better than cats' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/controversial", strings.NewReader("Oh my ...")) req.Header.Set("Title", "Dogs are better than cats") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/controversial" Headers = @{ Title = "Dogs are better than cats" } Body = "Oh my ..." } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/controversial", data="Oh my ...", headers={ "Title": "Dogs are better than cats" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/controversial', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: text/plain\r\n" . "Title: Dogs are better than cats", 'content' => 'Oh my ...' ] ])); ```
    ![notification with title](static/img/notification-with-title.png){ width=500 }
    Detail view of notification with title
    !!! info ntfy supports UTF-8 in HTTP headers, but [not every library or programming language does](https://www.jmix.io/blog/utf-8-in-http-headers/). If non-ASCII characters are causing issues for you in the title (i.e. you're seeing `?` symbols), you may also encode any header (including the title) as [RFC 2047](https://datatracker.ietf.org/doc/html/rfc2047#section-2), e.g. `=?UTF-8?B?8J+HqfCfh6o=?=` ([base64](https://en.wikipedia.org/wiki/Base64)), or `=?UTF-8?Q?=C3=84pfel?=` ([quoted-printable](https://en.wikipedia.org/wiki/Quoted-printable)). ## Message priority _Supported on:_ :material-android: :material-apple: :material-firefox: All messages have a priority, which defines how urgently your phone notifies you. On Android, you can set custom notification sounds and vibration patterns on your phone to map to these priorities (see [Android config](subscribe/phone.md)). The following priorities exist: | Priority | Icon | ID | Name | Description | |----------------------|--------------------------------------------|-----|----------------|--------------------------------------------------------------------------------------------------------| | Max priority | ![min priority](static/img/priority-5.svg) | `5` | `max`/`urgent` | Really long vibration bursts, default notification sound with a pop-over notification. | | High priority | ![min priority](static/img/priority-4.svg) | `4` | `high` | Long vibration burst, default notification sound with a pop-over notification. | | **Default priority** | *(none)* | `3` | `default` | Short default vibration and sound. Default notification behavior. | | Low priority | ![min priority](static/img/priority-2.svg) | `2` | `low` | No vibration or sound. Notification will not visibly show up until notification drawer is pulled down. | | Min priority | ![min priority](static/img/priority-1.svg) | `1` | `min` | No vibration or sound. The notification will be under the fold in "Other notifications". | You can set the priority with the header `X-Priority` (or any of its aliases: `Priority`, `prio`, or `p`). === "Command line (curl)" ``` curl -H "X-Priority: 5" -d "An urgent message" ntfy.sh/phil_alerts curl -H "Priority: low" -d "Low priority message" ntfy.sh/phil_alerts curl -H p:4 -d "A high priority message" ntfy.sh/phil_alerts ``` === "ntfy CLI" ``` ntfy publish \ -p 5 \ phil_alerts An urgent message ``` === "HTTP" ``` http POST /phil_alerts HTTP/1.1 Host: ntfy.sh Priority: 5 An urgent message ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/phil_alerts', { method: 'POST', body: 'An urgent message', headers: { 'Priority': '5' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/phil_alerts", strings.NewReader("An urgent message")) req.Header.Set("Priority", "5") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = 'POST' URI = "https://ntfy.sh/phil_alerts" Headers = @{ Priority = "5" } Body = "An urgent message" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/phil_alerts", data="An urgent message", headers={ "Priority": "5" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/phil_alerts', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: text/plain\r\n" . "Priority: 5", 'content' => 'An urgent message' ] ])); ```
    ![priority notification](static/img/priority-detail-overview.png){ width=500 }
    Detail view of priority notifications
    ## Tags & emojis 🥳 🎉 _Supported on:_ :material-android: :material-apple: :material-firefox: You can tag messages with emojis and other relevant strings: * **Emojis**: If a tag matches an [emoji short code](emojis.md), it'll be converted to an emoji and prepended to title or message. * **Other tags:** If a tag doesn't match, it will be listed below the notification. This feature is useful for things like warnings (⚠️, ️🚨, or 🚩), but also to simply tag messages otherwise (e.g. script names, hostnames, etc.). Use [the emoji short code list](emojis.md) to figure out what tags can be converted to emojis. Here's an **excerpt of emojis** I've found very useful in alert messages:
    TagEmoji
    +1👍
    partying_face🥳
    tada🎉
    heavy_check_mark✔️
    loudspeaker📢
    ......
    TagEmoji
    -1👎️
    warning⚠️
    rotating_light️🚨
    triangular_flag_on_post🚩
    skull💀
    ......
    TagEmoji
    facepalm🤦
    no_entry
    no_entry_sign🚫
    cd💿
    computer💻
    ......
    You can set tags with the `X-Tags` header (or any of its aliases: `Tags`, `tag`, or `ta`). Specify multiple tags by separating them with a comma, e.g. `tag1,tag2,tag3`. === "Command line (curl)" ``` curl -H "X-Tags: warning,mailsrv13,daily-backup" -d "Backup of mailsrv13 failed" ntfy.sh/backups curl -H "Tags: horse,unicorn" -d "Unicorns are just horses with unique horns" ntfy.sh/backups curl -H ta:dog -d "Dogs are awesome" ntfy.sh/backups ``` === "ntfy CLI" ``` ntfy publish \ --tags=warning,mailsrv13,daily-backup \ backups "Backup of mailsrv13 failed" ``` === "HTTP" ``` http POST /backups HTTP/1.1 Host: ntfy.sh Tags: warning,mailsrv13,daily-backup Backup of mailsrv13 failed ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/backups', { method: 'POST', body: 'Backup of mailsrv13 failed', headers: { 'Tags': 'warning,mailsrv13,daily-backup' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/backups", strings.NewReader("Backup of mailsrv13 failed")) req.Header.Set("Tags", "warning,mailsrv13,daily-backup") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/backups" Headers = @{ Tags = "warning,mailsrv13,daily-backup" } Body = "Backup of mailsrv13 failed" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/backups", data="Backup of mailsrv13 failed", headers={ "Tags": "warning,mailsrv13,daily-backup" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/backups', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: text/plain\r\n" . "Tags: warning,mailsrv13,daily-backup", 'content' => 'Backup of mailsrv13 failed' ] ])); ```
    ![priority notification](static/img/notification-with-tags.png){ width=500 }
    Detail view of notifications with tags
    !!! info ntfy supports UTF-8 in HTTP headers, but [not every library or programming language does](https://www.jmix.io/blog/utf-8-in-http-headers/). If non-ASCII characters are causing issues for you in the title (i.e. you're seeing `?` symbols), you may also encode the tags header or individual tags as [RFC 2047](https://datatracker.ietf.org/doc/html/rfc2047#section-2), e.g. `tag1,=?UTF-8?B?8J+HqfCfh6o=?=` ([base64](https://en.wikipedia.org/wiki/Base64)), or `=?UTF-8?Q?=C3=84pfel?=,tag2` ([quoted-printable](https://en.wikipedia.org/wiki/Quoted-printable)). ## Markdown formatting _Supported on:_ :material-firefox: You can format messages using [Markdown](https://www.markdownguide.org/basic-syntax/) 🤩. That means you can use **bold text**, *italicized text*, links, images, and more. Supported Markdown features (web app only for now): - [Emphasis](https://www.markdownguide.org/basic-syntax/#emphasis) such as **bold** (`**bold**`), *italics* (`*italics*`) - [Links](https://www.markdownguide.org/basic-syntax/#links) (`[some tool](https://ntfy.sh)`) - [Images](https://www.markdownguide.org/basic-syntax/#images) (`![some image](https://bing.com/logo.png)`) - [Code blocks](https://www.markdownguide.org/basic-syntax/#code-blocks) (` ```code blocks``` `) and [inline code](https://www.markdownguide.org/basic-syntax/#inline-code) (`` `inline code` ``) - [Headings](https://www.markdownguide.org/basic-syntax/#headings) (`# headings`, `## headings`, etc.) - [Lists](https://www.markdownguide.org/basic-syntax/#lists) (`- lists`, `1. lists`, etc.) - [Blockquotes](https://www.markdownguide.org/basic-syntax/#blockquotes) (`> blockquotes`) - [Horizontal rules](https://www.markdownguide.org/basic-syntax/#horizontal-rules) (`---`) By default, messages sent to ntfy are rendered as plain text. To enable Markdown, set the `X-Markdown` header (or any of its aliases: `Markdown`, or `md`) to `true` (or `1` or `yes`), or set the `Content-Type` header to `text/markdown`. As of today, **Markdown is only supported in the web app.** Here's an example of how to enable Markdown formatting: === "Command line (curl)" ``` curl \ -d "Look ma, **bold text**, *italics*, ..." \ -H "Markdown: yes" \ ntfy.sh/mytopic ``` === "ntfy CLI" ``` ntfy publish \ --markdown \ mytopic \ "Look ma, **bold text**, *italics*, ..." ``` === "HTTP" ``` http POST /mytopic HTTP/1.1 Host: ntfy.sh Markdown: yes Look ma, **bold text**, *italics*, ... ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/mytopic', { method: 'POST', // PUT works too body: 'Look ma, **bold text**, *italics*, ...', headers: { 'Markdown': 'yes' } }) ``` === "Go" ``` go http.Post("https://ntfy.sh/mytopic", "text/markdown", strings.NewReader("Look ma, **bold text**, *italics*, ...")) // or req, _ := http.NewRequest("POST", "https://ntfy.sh/mytopic", strings.NewReader("Look ma, **bold text**, *italics*, ...")) req.Header.Set("Markdown", "yes") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/mytopic" Body = "Look ma, **bold text**, *italics*, ..." Headers = @{ Markdown = "yes" } } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/mytopic", data="Look ma, **bold text**, *italics*, ..." headers={ "Markdown": "yes" })) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/mytopic', false, stream_context_create([ 'http' => [ 'method' => 'POST', // PUT also works 'header' => 'Content-Type: text/markdown', // ! 'content' => 'Look ma, **bold text**, *italics*, ...' ] ])); ``` Here's what that looks like in the web app:
    ![markdown](static/img/web-markdown.png){ width=500 }
    Markdown formatting in the web app
    ## Scheduled delivery _Supported on:_ :material-android: :material-apple: :material-firefox: You can delay the delivery of messages and let ntfy send them at a later date. This can be used to send yourself reminders or even to execute commands at a later date (if your subscriber acts on messages). Usage is pretty straight forward. You can set the delivery time using the `X-Delay` header (or any of its aliases: `Delay`, `X-At`, `At`, `X-In` or `In`), either by specifying a Unix timestamp (e.g. `1639194738`), a duration (e.g. `30m`, `3h`, `2 days`), or a natural language time string (e.g. `10am`, `8:30pm`, `tomorrow, 3pm`, `Tuesday, 7am`, [and more](https://github.com/olebedev/when)). As of today, the minimum delay you can set is **10 seconds** and the maximum delay is **3 days**. This can be configured with the `message-delay-limit` option). For the purposes of [message caching](config.md#message-cache), scheduled messages are kept in the cache until 12 hours after they were delivered (or whatever the server-side cache duration is set to). For instance, if a message is scheduled to be delivered in 3 days, it'll remain in the cache for 3 days and 12 hours. Also note that naturally, [turning off server-side caching](#message-caching) is not possible in combination with this feature. === "Command line (curl)" ``` curl -H "At: tomorrow, 10am" -d "Good morning" ntfy.sh/hello curl -H "In: 30min" -d "It's 30 minutes later now" ntfy.sh/reminder curl -H "Delay: 1639194738" -d "Unix timestamps are awesome" ntfy.sh/itsaunixsystem ``` === "ntfy CLI" ``` ntfy publish \ --at="tomorrow, 10am" \ hello "Good morning" ``` === "HTTP" ``` http POST /hello HTTP/1.1 Host: ntfy.sh At: tomorrow, 10am Good morning ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/hello', { method: 'POST', body: 'Good morning', headers: { 'At': 'tomorrow, 10am' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/hello", strings.NewReader("Good morning")) req.Header.Set("At", "tomorrow, 10am") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/hello" Headers = @{ At = "tomorrow, 10am" } Body = "Good morning" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/hello", data="Good morning", headers={ "At": "tomorrow, 10am" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/backups', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: text/plain\r\n" . "At: tomorrow, 10am", 'content' => 'Good morning' ] ])); ``` Here are a few examples (assuming today's date is **12/10/2021, 9am, Eastern Time Zone**):
    Delay/At/In headerMessage will be delivered atExplanation
    30m12/10/2021, 9:30am30 minutes from now
    2 hours12/10/2021, 11:30am2 hours from now
    1 day12/11/2021, 9am24 hours from now
    10am12/10/2021, 10amToday at 10am (same day, because it's only 9am)
    8am12/11/2021, 8amTomorrow at 8am (because it's 9am already)
    163915200012/10/2021, 11am (EST) Today at 11am (EST)
    ## Webhooks (publish via GET) _Supported on:_ :material-android: :material-apple: :material-firefox: In addition to using PUT/POST, you can also send to topics via simple HTTP GET requests. This makes it easy to use a ntfy topic as a [webhook](https://en.wikipedia.org/wiki/Webhook), or if your client has limited HTTP support (e.g. like the [MacroDroid](https://play.google.com/store/apps/details?id=com.arlosoft.macrodroid) Android app). To send messages via HTTP GET, simply call the `/publish` endpoint (or its aliases `/send` and `/trigger`). Without any arguments, this will send the message `triggered` to the topic. However, you can provide all arguments that are also supported as HTTP headers as URL-encoded arguments. Be sure to check the list of all [supported parameters and headers](#list-of-all-parameters) for details. For instance, assuming your topic is `mywebhook`, you can simply call `/mywebhook/trigger` to send a message (aka trigger the webhook): === "Command line (curl)" ``` curl ntfy.sh/mywebhook/trigger ``` === "ntfy CLI" ``` ntfy trigger mywebhook ``` === "HTTP" ``` http GET /mywebhook/trigger HTTP/1.1 Host: ntfy.sh ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/mywebhook/trigger') ``` === "Go" ``` go http.Get("https://ntfy.sh/mywebhook/trigger") ``` === "PowerShell" ``` powershell Invoke-RestMethod "ntfy.sh/mywebhook/trigger" ``` === "Python" ``` python requests.get("https://ntfy.sh/mywebhook/trigger") ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/mywebhook/trigger'); ``` To add a custom message, simply append the `message=` URL parameter. And of course you can set the [message priority](#message-priority), the [message title](#message-title), and [tags](#tags-emojis) as well. For a full list of possible parameters, check the list of [supported parameters and headers](#list-of-all-parameters). Here's an example with a custom message, tags and a priority: === "Command line (curl)" ``` curl "ntfy.sh/mywebhook/publish?message=Webhook+triggered&priority=high&tags=warning,skull" ``` === "ntfy CLI" ``` ntfy publish \ -p 5 --tags=warning,skull \ mywebhook "Webhook triggered" ``` === "HTTP" ``` http GET /mywebhook/publish?message=Webhook+triggered&priority=high&tags=warning,skull HTTP/1.1 Host: ntfy.sh ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/mywebhook/publish?message=Webhook+triggered&priority=high&tags=warning,skull') ``` === "Go" ``` go http.Get("https://ntfy.sh/mywebhook/publish?message=Webhook+triggered&priority=high&tags=warning,skull") ``` === "PowerShell" ``` powershell Invoke-RestMethod "ntfy.sh/mywebhook/publish?message=Webhook+triggered&priority=high&tags=warning,skull" ``` === "Python" ``` python requests.get("https://ntfy.sh/mywebhook/publish?message=Webhook+triggered&priority=high&tags=warning,skull") ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/mywebhook/publish?message=Webhook+triggered&priority=high&tags=warning,skull'); ``` ## Message templating _Supported on:_ :material-android: :material-apple: :material-firefox: Templating lets you **format a JSON message body into human-friendly message and title text** using [Go templates](https://pkg.go.dev/text/template) (see tutorials [here](https://blog.gopheracademy.com/advent-2017/using-go-templates/), [here](https://www.digitalocean.com/community/tutorials/how-to-use-templates-in-go), and [here](https://developer.hashicorp.com/nomad/tutorials/templates/go-template-syntax)). This is specifically useful when **combined with webhooks** from services such as GitHub, Grafana, or other services that emit JSON webhooks. Instead of using a separate bridge program to parse the webhook body into the format ntfy expects, you can include a templated message and/or a templated title which will be populated based on the fields of the webhook body (so long as the webhook body is valid JSON). You can enable templating by setting the `X-Template` header (or its aliases `Template` or `tpl`) to `yes` or `1`, or (more appropriately for webhooks) by setting the `?template=yes` query parameter. Then, include templates in your `message` and/or `title`, using the following stanzas (see [Go docs](https://pkg.go.dev/text/template) for detailed syntax): * Variables,, e.g. `{{.alert.title}}` or `An error occurred: {{.error.desc}}` * Conditionals (if/else, e.g. `{{if eq .action "opened"}}..{{else}}..{{end}}`, see [example](https://repeatit.io/#/share/eyJ0ZW1wbGF0ZSI6Ilt7ey5wdWxsX3JlcXVlc3QuaGVhZC5yZXBvLmZ1bGxfbmFtZX19XSBQdWxsIHJlcXVlc3Qge3tpZiBlcSAuYWN0aW9uIFwib3BlbmVkXCJ9fU9QRU5FRHt7ZWxzZX19Q0xPU0VEe3tlbmR9fToge3sucHVsbF9yZXF1ZXN0LnRpdGxlfX0iLCJpbnB1dCI6IntcbiAgXCJhY3Rpb25cIjogXCJvcGVuZWRcIixcbiAgXCJudW1iZXJcIjogMSxcbiAgXCJwdWxsX3JlcXVlc3RcIjoge1xuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9wdWxscy8xXCIsXG4gICAgXCJpZFwiOiAxNzgzNDIwOTcyLFxuICAgIFwibm9kZV9pZFwiOiBcIlBSX2t3RE9IQWJkbzg1cVROZ3NcIixcbiAgICBcImh0bWxfdXJsXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2JpbndpZWRlcmhpZXIvZGFiYmxlL3B1bGwvMVwiLFxuICAgIFwiZGlmZl91cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYmlud2llZGVyaGllci9kYWJibGUvcHVsbC8xLmRpZmZcIixcbiAgICBcInBhdGNoX3VybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9iaW53aWVkZXJoaWVyL2RhYmJsZS9wdWxsLzEucGF0Y2hcIixcbiAgICBcImlzc3VlX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvaXNzdWVzLzFcIixcbiAgICBcIm51bWJlclwiOiAxLFxuICAgIFwic3RhdGVcIjogXCJvcGVuXCIsXG4gICAgXCJsb2NrZWRcIjogZmFsc2UsXG4gICAgXCJ0aXRsZVwiOiBcIkEgc2FtcGxlIFBSIGZyb20gUGhpbFwiLFxuICAgIFwidXNlclwiOiB7XG4gICAgICBcImxvZ2luXCI6IFwiYmlud2llZGVyaGllclwiLFxuICAgICAgXCJpZFwiOiA2NjQ1OTcsXG4gICAgICBcIm5vZGVfaWRcIjogXCJNRFE2VlhObGNqWTJORFU1Tnc9PVwiLFxuICAgICAgXCJhdmF0YXJfdXJsXCI6IFwiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzY2NDU5Nz92PTRcIixcbiAgICAgIFwiZ3JhdmF0YXJfaWRcIjogXCJcIixcbiAgICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyXCIsXG4gICAgICBcImh0bWxfdXJsXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2JpbndpZWRlcmhpZXJcIixcbiAgICAgIFwiZm9sbG93ZXJzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9mb2xsb3dlcnNcIixcbiAgICAgIFwiZm9sbG93aW5nX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9mb2xsb3dpbmd7L290aGVyX3VzZXJ9XCIsXG4gICAgICBcImdpc3RzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9naXN0c3svZ2lzdF9pZH1cIixcbiAgICAgIFwic3RhcnJlZF91cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvc3RhcnJlZHsvb3duZXJ9ey9yZXBvfVwiLFxuICAgICAgXCJzdWJzY3JpcHRpb25zX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9zdWJzY3JpcHRpb25zXCIsXG4gICAgICBcIm9yZ2FuaXphdGlvbnNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL29yZ3NcIixcbiAgICAgIFwicmVwb3NfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL3JlcG9zXCIsXG4gICAgICBcImV2ZW50c191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvZXZlbnRzey9wcml2YWN5fVwiLFxuICAgICAgXCJyZWNlaXZlZF9ldmVudHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL3JlY2VpdmVkX2V2ZW50c1wiLFxuICAgICAgXCJ0eXBlXCI6IFwiVXNlclwiLFxuICAgICAgXCJzaXRlX2FkbWluXCI6IGZhbHNlXG4gICAgfSxcbiAgICBcImJvZHlcIjogbnVsbCxcbiAgICBcImNyZWF0ZWRfYXRcIjogXCIyMDI0LTAzLTIxVDAyOjUyOjA5WlwiLFxuICAgIFwidXBkYXRlZF9hdFwiOiBcIjIwMjQtMDMtMjFUMDI6NTI6MDlaXCIsXG4gICAgXCJjbG9zZWRfYXRcIjogbnVsbCxcbiAgICBcIm1lcmdlZF9hdFwiOiBudWxsLFxuICAgIFwibWVyZ2VfY29tbWl0X3NoYVwiOiBudWxsLFxuICAgIFwiYXNzaWduZWVcIjogbnVsbCxcbiAgICBcImFzc2lnbmVlc1wiOiBbXSxcbiAgICBcInJlcXVlc3RlZF9yZXZpZXdlcnNcIjogW10sXG4gICAgXCJyZXF1ZXN0ZWRfdGVhbXNcIjogW10sXG4gICAgXCJsYWJlbHNcIjogW10sXG4gICAgXCJtaWxlc3RvbmVcIjogbnVsbCxcbiAgICBcImRyYWZ0XCI6IGZhbHNlLFxuICAgIFwiY29tbWl0c191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL3B1bGxzLzEvY29tbWl0c1wiLFxuICAgIFwicmV2aWV3X2NvbW1lbnRzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvcHVsbHMvMS9jb21tZW50c1wiLFxuICAgIFwicmV2aWV3X2NvbW1lbnRfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9wdWxscy9jb21tZW50c3svbnVtYmVyfVwiLFxuICAgIFwiY29tbWVudHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9pc3N1ZXMvMS9jb21tZW50c1wiLFxuICAgIFwic3RhdHVzZXNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9zdGF0dXNlcy81NzAzODQyY2M1NzE1ZWQxZTM1OGQyM2ViYjY5M2RiMDk3NDdhZTliXCIsXG4gICAgXCJoZWFkXCI6IHtcbiAgICAgIFwibGFiZWxcIjogXCJiaW53aWVkZXJoaWVyOmFhXCIsXG4gICAgICBcInJlZlwiOiBcImFhXCIsXG4gICAgICBcInNoYVwiOiBcIjU3MDM4NDJjYzU3MTVlZDFlMzU4ZDIzZWJiNjkzZGIwOTc0N2FlOWJcIixcbiAgICAgIFwidXNlclwiOiB7XG4gICAgICAgIFwibG9naW5cIjogXCJiaW53aWVkZXJoaWVyXCIsXG4gICAgICAgIFwiaWRcIjogNjY0NTk3LFxuICAgICAgICBcIm5vZGVfaWRcIjogXCJNRFE2VlhObGNqWTJORFU1Tnc9PVwiLFxuICAgICAgICBcImF2YXRhcl91cmxcIjogXCJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjY0NTk3P3Y9NFwiLFxuICAgICAgICBcImdyYXZhdGFyX2lkXCI6IFwiXCIsXG4gICAgICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyXCIsXG4gICAgICAgIFwiaHRtbF91cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYmlud2llZGVyaGllclwiLFxuICAgICAgICBcImZvbGxvd2Vyc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvZm9sbG93ZXJzXCIsXG4gICAgICAgIFwiZm9sbG93aW5nX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9mb2xsb3dpbmd7L290aGVyX3VzZXJ9XCIsXG4gICAgICAgIFwiZ2lzdHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL2dpc3Rzey9naXN0X2lkfVwiLFxuICAgICAgICBcInN0YXJyZWRfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL3N0YXJyZWR7L293bmVyfXsvcmVwb31cIixcbiAgICAgICAgXCJzdWJzY3JpcHRpb25zX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9zdWJzY3JpcHRpb25zXCIsXG4gICAgICAgIFwib3JnYW5pemF0aW9uc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvb3Jnc1wiLFxuICAgICAgICBcInJlcG9zX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9yZXBvc1wiLFxuICAgICAgICBcImV2ZW50c191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvZXZlbnRzey9wcml2YWN5fVwiLFxuICAgICAgICBcInJlY2VpdmVkX2V2ZW50c191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvcmVjZWl2ZWRfZXZlbnRzXCIsXG4gICAgICAgIFwidHlwZVwiOiBcIlVzZXJcIixcbiAgICAgICAgXCJzaXRlX2FkbWluXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJyZXBvXCI6IHtcbiAgICAgICAgXCJpZFwiOiA0NzAyMTIwMDMsXG4gICAgICAgIFwibm9kZV9pZFwiOiBcIlJfa2dET0hBYmRvd1wiLFxuICAgICAgICBcIm5hbWVcIjogXCJkYWJibGVcIixcbiAgICAgICAgXCJmdWxsX25hbWVcIjogXCJiaW53aWVkZXJoaWVyL2RhYmJsZVwiLFxuICAgICAgICBcInByaXZhdGVcIjogZmFsc2UsXG4gICAgICAgIFwib3duZXJcIjoge1xuICAgICAgICAgIFwibG9naW5cIjogXCJiaW53aWVkZXJoaWVyXCIsXG4gICAgICAgICAgXCJpZFwiOiA2NjQ1OTcsXG4gICAgICAgICAgXCJub2RlX2lkXCI6IFwiTURRNlZYTmxjalkyTkRVNU53PT1cIixcbiAgICAgICAgICBcImF2YXRhcl91cmxcIjogXCJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjY0NTk3P3Y9NFwiLFxuICAgICAgICAgIFwiZ3JhdmF0YXJfaWRcIjogXCJcIixcbiAgICAgICAgICBcInVybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllclwiLFxuICAgICAgICAgIFwiaHRtbF91cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYmlud2llZGVyaGllclwiLFxuICAgICAgICAgIFwiZm9sbG93ZXJzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9mb2xsb3dlcnNcIixcbiAgICAgICAgICBcImZvbGxvd2luZ191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvZm9sbG93aW5ney9vdGhlcl91c2VyfVwiLFxuICAgICAgICAgIFwiZ2lzdHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL2dpc3Rzey9naXN0X2lkfVwiLFxuICAgICAgICAgIFwic3RhcnJlZF91cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvc3RhcnJlZHsvb3duZXJ9ey9yZXBvfVwiLFxuICAgICAgICAgIFwic3Vic2NyaXB0aW9uc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvc3Vic2NyaXB0aW9uc1wiLFxuICAgICAgICAgIFwib3JnYW5pemF0aW9uc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvb3Jnc1wiLFxuICAgICAgICAgIFwicmVwb3NfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL3JlcG9zXCIsXG4gICAgICAgICAgXCJldmVudHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL2V2ZW50c3svcHJpdmFjeX1cIixcbiAgICAgICAgICBcInJlY2VpdmVkX2V2ZW50c191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvcmVjZWl2ZWRfZXZlbnRzXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiVXNlclwiLFxuICAgICAgICAgIFwic2l0ZV9hZG1pblwiOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBcImh0bWxfdXJsXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2JpbndpZWRlcmhpZXIvZGFiYmxlXCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIHJlcG8gZm9yIGRhYmJsaW5nXCIsXG4gICAgICAgIFwiZm9ya1wiOiBmYWxzZSxcbiAgICAgICAgXCJ1cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlXCIsXG4gICAgICAgIFwiZm9ya3NfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9mb3Jrc1wiLFxuICAgICAgICBcImtleXNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9rZXlzey9rZXlfaWR9XCIsXG4gICAgICAgIFwiY29sbGFib3JhdG9yc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2NvbGxhYm9yYXRvcnN7L2NvbGxhYm9yYXRvcn1cIixcbiAgICAgICAgXCJ0ZWFtc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL3RlYW1zXCIsXG4gICAgICAgIFwiaG9va3NfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9ob29rc1wiLFxuICAgICAgICBcImlzc3VlX2V2ZW50c191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2lzc3Vlcy9ldmVudHN7L251bWJlcn1cIixcbiAgICAgICAgXCJldmVudHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9ldmVudHNcIixcbiAgICAgICAgXCJhc3NpZ25lZXNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9hc3NpZ25lZXN7L3VzZXJ9XCIsXG4gICAgICAgIFwiYnJhbmNoZXNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9icmFuY2hlc3svYnJhbmNofVwiLFxuICAgICAgICBcInRhZ3NfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS90YWdzXCIsXG4gICAgICAgIFwiYmxvYnNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9naXQvYmxvYnN7L3NoYX1cIixcbiAgICAgICAgXCJnaXRfdGFnc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2dpdC90YWdzey9zaGF9XCIsXG4gICAgICAgIFwiZ2l0X3JlZnNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9naXQvcmVmc3svc2hhfVwiLFxuICAgICAgICBcInRyZWVzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvZ2l0L3RyZWVzey9zaGF9XCIsXG4gICAgICAgIFwic3RhdHVzZXNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9zdGF0dXNlcy97c2hhfVwiLFxuICAgICAgICBcImxhbmd1YWdlc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2xhbmd1YWdlc1wiLFxuICAgICAgICBcInN0YXJnYXplcnNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9zdGFyZ2F6ZXJzXCIsXG4gICAgICAgIFwiY29udHJpYnV0b3JzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvY29udHJpYnV0b3JzXCIsXG4gICAgICAgIFwic3Vic2NyaWJlcnNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9zdWJzY3JpYmVyc1wiLFxuICAgICAgICBcInN1YnNjcmlwdGlvbl91cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL3N1YnNjcmlwdGlvblwiLFxuICAgICAgICBcImNvbW1pdHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9jb21taXRzey9zaGF9XCIsXG4gICAgICAgIFwiZ2l0X2NvbW1pdHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9naXQvY29tbWl0c3svc2hhfVwiLFxuICAgICAgICBcImNvbW1lbnRzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvY29tbWVudHN7L251bWJlcn1cIixcbiAgICAgICAgXCJpc3N1ZV9jb21tZW50X3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvaXNzdWVzL2NvbW1lbnRzey9udW1iZXJ9XCIsXG4gICAgICAgIFwiY29udGVudHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9jb250ZW50cy97K3BhdGh9XCIsXG4gICAgICAgIFwiY29tcGFyZV91cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2NvbXBhcmUve2Jhc2V9Li4ue2hlYWR9XCIsXG4gICAgICAgIFwibWVyZ2VzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvbWVyZ2VzXCIsXG4gICAgICAgIFwiYXJjaGl2ZV91cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL3thcmNoaXZlX2Zvcm1hdH17L3JlZn1cIixcbiAgICAgICAgXCJkb3dubG9hZHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9kb3dubG9hZHNcIixcbiAgICAgICAgXCJpc3N1ZXNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9pc3N1ZXN7L251bWJlcn1cIixcbiAgICAgICAgXCJwdWxsc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL3B1bGxzey9udW1iZXJ9XCIsXG4gICAgICAgIFwibWlsZXN0b25lc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL21pbGVzdG9uZXN7L251bWJlcn1cIixcbiAgICAgICAgXCJub3RpZmljYXRpb25zX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvbm90aWZpY2F0aW9uc3s/c2luY2UsYWxsLHBhcnRpY2lwYXRpbmd9XCIsXG4gICAgICAgIFwibGFiZWxzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvbGFiZWxzey9uYW1lfVwiLFxuICAgICAgICBcInJlbGVhc2VzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvcmVsZWFzZXN7L2lkfVwiLFxuICAgICAgICBcImRlcGxveW1lbnRzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvZGVwbG95bWVudHNcIixcbiAgICAgICAgXCJjcmVhdGVkX2F0XCI6IFwiMjAyMi0wMy0xNVQxNTowNjoxN1pcIixcbiAgICAgICAgXCJ1cGRhdGVkX2F0XCI6IFwiMjAyMi0wMy0xNVQxNTowNjoxN1pcIixcbiAgICAgICAgXCJwdXNoZWRfYXRcIjogXCIyMDI0LTAzLTIxVDAyOjUyOjEwWlwiLFxuICAgICAgICBcImdpdF91cmxcIjogXCJnaXQ6Ly9naXRodWIuY29tL2JpbndpZWRlcmhpZXIvZGFiYmxlLmdpdFwiLFxuICAgICAgICBcInNzaF91cmxcIjogXCJnaXRAZ2l0aHViLmNvbTpiaW53aWVkZXJoaWVyL2RhYmJsZS5naXRcIixcbiAgICAgICAgXCJjbG9uZV91cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYmlud2llZGVyaGllci9kYWJibGUuZ2l0XCIsXG4gICAgICAgIFwic3ZuX3VybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9iaW53aWVkZXJoaWVyL2RhYmJsZVwiLFxuICAgICAgICBcImhvbWVwYWdlXCI6IG51bGwsXG4gICAgICAgIFwic2l6ZVwiOiAxLFxuICAgICAgICBcInN0YXJnYXplcnNfY291bnRcIjogMCxcbiAgICAgICAgXCJ3YXRjaGVyc19jb3VudFwiOiAwLFxuICAgICAgICBcImxhbmd1YWdlXCI6IG51bGwsXG4gICAgICAgIFwiaGFzX2lzc3Vlc1wiOiB0cnVlLFxuICAgICAgICBcImhhc19wcm9qZWN0c1wiOiB0cnVlLFxuICAgICAgICBcImhhc19kb3dubG9hZHNcIjogdHJ1ZSxcbiAgICAgICAgXCJoYXNfd2lraVwiOiB0cnVlLFxuICAgICAgICBcImhhc19wYWdlc1wiOiBmYWxzZSxcbiAgICAgICAgXCJoYXNfZGlzY3Vzc2lvbnNcIjogZmFsc2UsXG4gICAgICAgIFwiZm9ya3NfY291bnRcIjogMCxcbiAgICAgICAgXCJtaXJyb3JfdXJsXCI6IG51bGwsXG4gICAgICAgIFwiYXJjaGl2ZWRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZWRcIjogZmFsc2UsXG4gICAgICAgIFwib3Blbl9pc3N1ZXNfY291bnRcIjogMSxcbiAgICAgICAgXCJsaWNlbnNlXCI6IG51bGwsXG4gICAgICAgIFwiYWxsb3dfZm9ya2luZ1wiOiB0cnVlLFxuICAgICAgICBcImlzX3RlbXBsYXRlXCI6IGZhbHNlLFxuICAgICAgICBcIndlYl9jb21taXRfc2lnbm9mZl9yZXF1aXJlZFwiOiBmYWxzZSxcbiAgICAgICAgXCJ0b3BpY3NcIjogW10sXG4gICAgICAgIFwidmlzaWJpbGl0eVwiOiBcInB1YmxpY1wiLFxuICAgICAgICBcImZvcmtzXCI6IDAsXG4gICAgICAgIFwib3Blbl9pc3N1ZXNcIjogMSxcbiAgICAgICAgXCJ3YXRjaGVyc1wiOiAwLFxuICAgICAgICBcImRlZmF1bHRfYnJhbmNoXCI6IFwibWFpblwiLFxuICAgICAgICBcImFsbG93X3NxdWFzaF9tZXJnZVwiOiB0cnVlLFxuICAgICAgICBcImFsbG93X21lcmdlX2NvbW1pdFwiOiB0cnVlLFxuICAgICAgICBcImFsbG93X3JlYmFzZV9tZXJnZVwiOiB0cnVlLFxuICAgICAgICBcImFsbG93X2F1dG9fbWVyZ2VcIjogZmFsc2UsXG4gICAgICAgIFwiZGVsZXRlX2JyYW5jaF9vbl9tZXJnZVwiOiBmYWxzZSxcbiAgICAgICAgXCJhbGxvd191cGRhdGVfYnJhbmNoXCI6IGZhbHNlLFxuICAgICAgICBcInVzZV9zcXVhc2hfcHJfdGl0bGVfYXNfZGVmYXVsdFwiOiBmYWxzZSxcbiAgICAgICAgXCJzcXVhc2hfbWVyZ2VfY29tbWl0X21lc3NhZ2VcIjogXCJDT01NSVRfTUVTU0FHRVNcIixcbiAgICAgICAgXCJzcXVhc2hfbWVyZ2VfY29tbWl0X3RpdGxlXCI6IFwiQ09NTUlUX09SX1BSX1RJVExFXCIsXG4gICAgICAgIFwibWVyZ2VfY29tbWl0X21lc3NhZ2VcIjogXCJQUl9USVRMRVwiLFxuICAgICAgICBcIm1lcmdlX2NvbW1pdF90aXRsZVwiOiBcIk1FUkdFX01FU1NBR0VcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJiYXNlXCI6IHtcbiAgICAgIFwibGFiZWxcIjogXCJiaW53aWVkZXJoaWVyOm1haW5cIixcbiAgICAgIFwicmVmXCI6IFwibWFpblwiLFxuICAgICAgXCJzaGFcIjogXCI3MmQ5MzFhMjBiYjgzZDEyM2FiNDVhY2NhZjc2MTE1MGM4YjAxMjExXCIsXG4gICAgICBcInVzZXJcIjoge1xuICAgICAgICBcImxvZ2luXCI6IFwiYmlud2llZGVyaGllclwiLFxuICAgICAgICBcImlkXCI6IDY2NDU5NyxcbiAgICAgICAgXCJub2RlX2lkXCI6IFwiTURRNlZYTmxjalkyTkRVNU53PT1cIixcbiAgICAgICAgXCJhdmF0YXJfdXJsXCI6IFwiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzY2NDU5Nz92PTRcIixcbiAgICAgICAgXCJncmF2YXRhcl9pZFwiOiBcIlwiLFxuICAgICAgICBcInVybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllclwiLFxuICAgICAgICBcImh0bWxfdXJsXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2JpbndpZWRlcmhpZXJcIixcbiAgICAgICAgXCJmb2xsb3dlcnNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL2ZvbGxvd2Vyc1wiLFxuICAgICAgICBcImZvbGxvd2luZ191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvZm9sbG93aW5ney9vdGhlcl91c2VyfVwiLFxuICAgICAgICBcImdpc3RzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9naXN0c3svZ2lzdF9pZH1cIixcbiAgICAgICAgXCJzdGFycmVkX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9zdGFycmVkey9vd25lcn17L3JlcG99XCIsXG4gICAgICAgIFwic3Vic2NyaXB0aW9uc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvc3Vic2NyaXB0aW9uc1wiLFxuICAgICAgICBcIm9yZ2FuaXphdGlvbnNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL29yZ3NcIixcbiAgICAgICAgXCJyZXBvc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvcmVwb3NcIixcbiAgICAgICAgXCJldmVudHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL2V2ZW50c3svcHJpdmFjeX1cIixcbiAgICAgICAgXCJyZWNlaXZlZF9ldmVudHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL3JlY2VpdmVkX2V2ZW50c1wiLFxuICAgICAgICBcInR5cGVcIjogXCJVc2VyXCIsXG4gICAgICAgIFwic2l0ZV9hZG1pblwiOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwicmVwb1wiOiB7XG4gICAgICAgIFwiaWRcIjogNDcwMjEyMDAzLFxuICAgICAgICBcIm5vZGVfaWRcIjogXCJSX2tnRE9IQWJkb3dcIixcbiAgICAgICAgXCJuYW1lXCI6IFwiZGFiYmxlXCIsXG4gICAgICAgIFwiZnVsbF9uYW1lXCI6IFwiYmlud2llZGVyaGllci9kYWJibGVcIixcbiAgICAgICAgXCJwcml2YXRlXCI6IGZhbHNlLFxuICAgICAgICBcIm93bmVyXCI6IHtcbiAgICAgICAgICBcImxvZ2luXCI6IFwiYmlud2llZGVyaGllclwiLFxuICAgICAgICAgIFwiaWRcIjogNjY0NTk3LFxuICAgICAgICAgIFwibm9kZV9pZFwiOiBcIk1EUTZWWE5sY2pZMk5EVTVOdz09XCIsXG4gICAgICAgICAgXCJhdmF0YXJfdXJsXCI6IFwiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzY2NDU5Nz92PTRcIixcbiAgICAgICAgICBcImdyYXZhdGFyX2lkXCI6IFwiXCIsXG4gICAgICAgICAgXCJ1cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXJcIixcbiAgICAgICAgICBcImh0bWxfdXJsXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2JpbndpZWRlcmhpZXJcIixcbiAgICAgICAgICBcImZvbGxvd2Vyc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvZm9sbG93ZXJzXCIsXG4gICAgICAgICAgXCJmb2xsb3dpbmdfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL2ZvbGxvd2luZ3svb3RoZXJfdXNlcn1cIixcbiAgICAgICAgICBcImdpc3RzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9naXN0c3svZ2lzdF9pZH1cIixcbiAgICAgICAgICBcInN0YXJyZWRfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL3N0YXJyZWR7L293bmVyfXsvcmVwb31cIixcbiAgICAgICAgICBcInN1YnNjcmlwdGlvbnNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL3N1YnNjcmlwdGlvbnNcIixcbiAgICAgICAgICBcIm9yZ2FuaXphdGlvbnNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL29yZ3NcIixcbiAgICAgICAgICBcInJlcG9zX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9yZXBvc1wiLFxuICAgICAgICAgIFwiZXZlbnRzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9ldmVudHN7L3ByaXZhY3l9XCIsXG4gICAgICAgICAgXCJyZWNlaXZlZF9ldmVudHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL3JlY2VpdmVkX2V2ZW50c1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcIlVzZXJcIixcbiAgICAgICAgICBcInNpdGVfYWRtaW5cIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJodG1sX3VybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9iaW53aWVkZXJoaWVyL2RhYmJsZVwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSByZXBvIGZvciBkYWJibGluZ1wiLFxuICAgICAgICBcImZvcmtcIjogZmFsc2UsXG4gICAgICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZVwiLFxuICAgICAgICBcImZvcmtzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvZm9ya3NcIixcbiAgICAgICAgXCJrZXlzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUva2V5c3sva2V5X2lkfVwiLFxuICAgICAgICBcImNvbGxhYm9yYXRvcnNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9jb2xsYWJvcmF0b3Jzey9jb2xsYWJvcmF0b3J9XCIsXG4gICAgICAgIFwidGVhbXNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS90ZWFtc1wiLFxuICAgICAgICBcImhvb2tzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvaG9va3NcIixcbiAgICAgICAgXCJpc3N1ZV9ldmVudHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9pc3N1ZXMvZXZlbnRzey9udW1iZXJ9XCIsXG4gICAgICAgIFwiZXZlbnRzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvZXZlbnRzXCIsXG4gICAgICAgIFwiYXNzaWduZWVzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvYXNzaWduZWVzey91c2VyfVwiLFxuICAgICAgICBcImJyYW5jaGVzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvYnJhbmNoZXN7L2JyYW5jaH1cIixcbiAgICAgICAgXCJ0YWdzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvdGFnc1wiLFxuICAgICAgICBcImJsb2JzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvZ2l0L2Jsb2Jzey9zaGF9XCIsXG4gICAgICAgIFwiZ2l0X3RhZ3NfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9naXQvdGFnc3svc2hhfVwiLFxuICAgICAgICBcImdpdF9yZWZzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvZ2l0L3JlZnN7L3NoYX1cIixcbiAgICAgICAgXCJ0cmVlc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2dpdC90cmVlc3svc2hhfVwiLFxuICAgICAgICBcInN0YXR1c2VzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvc3RhdHVzZXMve3NoYX1cIixcbiAgICAgICAgXCJsYW5ndWFnZXNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9sYW5ndWFnZXNcIixcbiAgICAgICAgXCJzdGFyZ2F6ZXJzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvc3RhcmdhemVyc1wiLFxuICAgICAgICBcImNvbnRyaWJ1dG9yc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2NvbnRyaWJ1dG9yc1wiLFxuICAgICAgICBcInN1YnNjcmliZXJzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvc3Vic2NyaWJlcnNcIixcbiAgICAgICAgXCJzdWJzY3JpcHRpb25fdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9zdWJzY3JpcHRpb25cIixcbiAgICAgICAgXCJjb21taXRzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvY29tbWl0c3svc2hhfVwiLFxuICAgICAgICBcImdpdF9jb21taXRzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvZ2l0L2NvbW1pdHN7L3NoYX1cIixcbiAgICAgICAgXCJjb21tZW50c191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2NvbW1lbnRzey9udW1iZXJ9XCIsXG4gICAgICAgIFwiaXNzdWVfY29tbWVudF91cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2lzc3Vlcy9jb21tZW50c3svbnVtYmVyfVwiLFxuICAgICAgICBcImNvbnRlbnRzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvY29udGVudHMveytwYXRofVwiLFxuICAgICAgICBcImNvbXBhcmVfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9jb21wYXJlL3tiYXNlfS4uLntoZWFkfVwiLFxuICAgICAgICBcIm1lcmdlc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL21lcmdlc1wiLFxuICAgICAgICBcImFyY2hpdmVfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS97YXJjaGl2ZV9mb3JtYXR9ey9yZWZ9XCIsXG4gICAgICAgIFwiZG93bmxvYWRzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvZG93bmxvYWRzXCIsXG4gICAgICAgIFwiaXNzdWVzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvaXNzdWVzey9udW1iZXJ9XCIsXG4gICAgICAgIFwicHVsbHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9wdWxsc3svbnVtYmVyfVwiLFxuICAgICAgICBcIm1pbGVzdG9uZXNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9taWxlc3RvbmVzey9udW1iZXJ9XCIsXG4gICAgICAgIFwibm90aWZpY2F0aW9uc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL25vdGlmaWNhdGlvbnN7P3NpbmNlLGFsbCxwYXJ0aWNpcGF0aW5nfVwiLFxuICAgICAgICBcImxhYmVsc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2xhYmVsc3svbmFtZX1cIixcbiAgICAgICAgXCJyZWxlYXNlc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL3JlbGVhc2Vzey9pZH1cIixcbiAgICAgICAgXCJkZXBsb3ltZW50c191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2RlcGxveW1lbnRzXCIsXG4gICAgICAgIFwiY3JlYXRlZF9hdFwiOiBcIjIwMjItMDMtMTVUMTU6MDY6MTdaXCIsXG4gICAgICAgIFwidXBkYXRlZF9hdFwiOiBcIjIwMjItMDMtMTVUMTU6MDY6MTdaXCIsXG4gICAgICAgIFwicHVzaGVkX2F0XCI6IFwiMjAyNC0wMy0yMVQwMjo1MjoxMFpcIixcbiAgICAgICAgXCJnaXRfdXJsXCI6IFwiZ2l0Oi8vZ2l0aHViLmNvbS9iaW53aWVkZXJoaWVyL2RhYmJsZS5naXRcIixcbiAgICAgICAgXCJzc2hfdXJsXCI6IFwiZ2l0QGdpdGh1Yi5jb206Ymlud2llZGVyaGllci9kYWJibGUuZ2l0XCIsXG4gICAgICAgIFwiY2xvbmVfdXJsXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2JpbndpZWRlcmhpZXIvZGFiYmxlLmdpdFwiLFxuICAgICAgICBcInN2bl91cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYmlud2llZGVyaGllci9kYWJibGVcIixcbiAgICAgICAgXCJob21lcGFnZVwiOiBudWxsLFxuICAgICAgICBcInNpemVcIjogMSxcbiAgICAgICAgXCJzdGFyZ2F6ZXJzX2NvdW50XCI6IDAsXG4gICAgICAgIFwid2F0Y2hlcnNfY291bnRcIjogMCxcbiAgICAgICAgXCJsYW5ndWFnZVwiOiBudWxsLFxuICAgICAgICBcImhhc19pc3N1ZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJoYXNfcHJvamVjdHNcIjogdHJ1ZSxcbiAgICAgICAgXCJoYXNfZG93bmxvYWRzXCI6IHRydWUsXG4gICAgICAgIFwiaGFzX3dpa2lcIjogdHJ1ZSxcbiAgICAgICAgXCJoYXNfcGFnZXNcIjogZmFsc2UsXG4gICAgICAgIFwiaGFzX2Rpc2N1c3Npb25zXCI6IGZhbHNlLFxuICAgICAgICBcImZvcmtzX2NvdW50XCI6IDAsXG4gICAgICAgIFwibWlycm9yX3VybFwiOiBudWxsLFxuICAgICAgICBcImFyY2hpdmVkXCI6IGZhbHNlLFxuICAgICAgICBcImRpc2FibGVkXCI6IGZhbHNlLFxuICAgICAgICBcIm9wZW5faXNzdWVzX2NvdW50XCI6IDEsXG4gICAgICAgIFwibGljZW5zZVwiOiBudWxsLFxuICAgICAgICBcImFsbG93X2ZvcmtpbmdcIjogdHJ1ZSxcbiAgICAgICAgXCJpc190ZW1wbGF0ZVwiOiBmYWxzZSxcbiAgICAgICAgXCJ3ZWJfY29tbWl0X3NpZ25vZmZfcmVxdWlyZWRcIjogZmFsc2UsXG4gICAgICAgIFwidG9waWNzXCI6IFtdLFxuICAgICAgICBcInZpc2liaWxpdHlcIjogXCJwdWJsaWNcIixcbiAgICAgICAgXCJmb3Jrc1wiOiAwLFxuICAgICAgICBcIm9wZW5faXNzdWVzXCI6IDEsXG4gICAgICAgIFwid2F0Y2hlcnNcIjogMCxcbiAgICAgICAgXCJkZWZhdWx0X2JyYW5jaFwiOiBcIm1haW5cIixcbiAgICAgICAgXCJhbGxvd19zcXVhc2hfbWVyZ2VcIjogdHJ1ZSxcbiAgICAgICAgXCJhbGxvd19tZXJnZV9jb21taXRcIjogdHJ1ZSxcbiAgICAgICAgXCJhbGxvd19yZWJhc2VfbWVyZ2VcIjogdHJ1ZSxcbiAgICAgICAgXCJhbGxvd19hdXRvX21lcmdlXCI6IGZhbHNlLFxuICAgICAgICBcImRlbGV0ZV9icmFuY2hfb25fbWVyZ2VcIjogZmFsc2UsXG4gICAgICAgIFwiYWxsb3dfdXBkYXRlX2JyYW5jaFwiOiBmYWxzZSxcbiAgICAgICAgXCJ1c2Vfc3F1YXNoX3ByX3RpdGxlX2FzX2RlZmF1bHRcIjogZmFsc2UsXG4gICAgICAgIFwic3F1YXNoX21lcmdlX2NvbW1pdF9tZXNzYWdlXCI6IFwiQ09NTUlUX01FU1NBR0VTXCIsXG4gICAgICAgIFwic3F1YXNoX21lcmdlX2NvbW1pdF90aXRsZVwiOiBcIkNPTU1JVF9PUl9QUl9USVRMRVwiLFxuICAgICAgICBcIm1lcmdlX2NvbW1pdF9tZXNzYWdlXCI6IFwiUFJfVElUTEVcIixcbiAgICAgICAgXCJtZXJnZV9jb21taXRfdGl0bGVcIjogXCJNRVJHRV9NRVNTQUdFXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiX2xpbmtzXCI6IHtcbiAgICAgIFwic2VsZlwiOiB7XG4gICAgICAgIFwiaHJlZlwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvcHVsbHMvMVwiXG4gICAgICB9LFxuICAgICAgXCJodG1sXCI6IHtcbiAgICAgICAgXCJocmVmXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2JpbndpZWRlcmhpZXIvZGFiYmxlL3B1bGwvMVwiXG4gICAgICB9LFxuICAgICAgXCJpc3N1ZVwiOiB7XG4gICAgICAgIFwiaHJlZlwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvaXNzdWVzLzFcIlxuICAgICAgfSxcbiAgICAgIFwiY29tbWVudHNcIjoge1xuICAgICAgICBcImhyZWZcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2lzc3Vlcy8xL2NvbW1lbnRzXCJcbiAgICAgIH0sXG4gICAgICBcInJldmlld19jb21tZW50c1wiOiB7XG4gICAgICAgIFwiaHJlZlwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvcHVsbHMvMS9jb21tZW50c1wiXG4gICAgICB9LFxuICAgICAgXCJyZXZpZXdfY29tbWVudFwiOiB7XG4gICAgICAgIFwiaHJlZlwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvcHVsbHMvY29tbWVudHN7L251bWJlcn1cIlxuICAgICAgfSxcbiAgICAgIFwiY29tbWl0c1wiOiB7XG4gICAgICAgIFwiaHJlZlwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvcHVsbHMvMS9jb21taXRzXCJcbiAgICAgIH0sXG4gICAgICBcInN0YXR1c2VzXCI6IHtcbiAgICAgICAgXCJocmVmXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9zdGF0dXNlcy81NzAzODQyY2M1NzE1ZWQxZTM1OGQyM2ViYjY5M2RiMDk3NDdhZTliXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiYXV0aG9yX2Fzc29jaWF0aW9uXCI6IFwiT1dORVJcIixcbiAgICBcImF1dG9fbWVyZ2VcIjogbnVsbCxcbiAgICBcImFjdGl2ZV9sb2NrX3JlYXNvblwiOiBudWxsLFxuICAgIFwibWVyZ2VkXCI6IGZhbHNlLFxuICAgIFwibWVyZ2VhYmxlXCI6IG51bGwsXG4gICAgXCJyZWJhc2VhYmxlXCI6IG51bGwsXG4gICAgXCJtZXJnZWFibGVfc3RhdGVcIjogXCJ1bmtub3duXCIsXG4gICAgXCJtZXJnZWRfYnlcIjogbnVsbCxcbiAgICBcImNvbW1lbnRzXCI6IDAsXG4gICAgXCJyZXZpZXdfY29tbWVudHNcIjogMCxcbiAgICBcIm1haW50YWluZXJfY2FuX21vZGlmeVwiOiBmYWxzZSxcbiAgICBcImNvbW1pdHNcIjogMSxcbiAgICBcImFkZGl0aW9uc1wiOiAxLFxuICAgIFwiZGVsZXRpb25zXCI6IDEsXG4gICAgXCJjaGFuZ2VkX2ZpbGVzXCI6IDFcbiAgfSxcbiAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICBcImlkXCI6IDQ3MDIxMjAwMyxcbiAgICBcIm5vZGVfaWRcIjogXCJSX2tnRE9IQWJkb3dcIixcbiAgICBcIm5hbWVcIjogXCJkYWJibGVcIixcbiAgICBcImZ1bGxfbmFtZVwiOiBcImJpbndpZWRlcmhpZXIvZGFiYmxlXCIsXG4gICAgXCJwcml2YXRlXCI6IGZhbHNlLFxuICAgIFwib3duZXJcIjoge1xuICAgICAgXCJsb2dpblwiOiBcImJpbndpZWRlcmhpZXJcIixcbiAgICAgIFwiaWRcIjogNjY0NTk3LFxuICAgICAgXCJub2RlX2lkXCI6IFwiTURRNlZYTmxjalkyTkRVNU53PT1cIixcbiAgICAgIFwiYXZhdGFyX3VybFwiOiBcImh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82NjQ1OTc/dj00XCIsXG4gICAgICBcImdyYXZhdGFyX2lkXCI6IFwiXCIsXG4gICAgICBcInVybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllclwiLFxuICAgICAgXCJodG1sX3VybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9iaW53aWVkZXJoaWVyXCIsXG4gICAgICBcImZvbGxvd2Vyc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvZm9sbG93ZXJzXCIsXG4gICAgICBcImZvbGxvd2luZ191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvZm9sbG93aW5ney9vdGhlcl91c2VyfVwiLFxuICAgICAgXCJnaXN0c191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvZ2lzdHN7L2dpc3RfaWR9XCIsXG4gICAgICBcInN0YXJyZWRfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL3N0YXJyZWR7L293bmVyfXsvcmVwb31cIixcbiAgICAgIFwic3Vic2NyaXB0aW9uc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvc3Vic2NyaXB0aW9uc1wiLFxuICAgICAgXCJvcmdhbml6YXRpb25zX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9vcmdzXCIsXG4gICAgICBcInJlcG9zX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9yZXBvc1wiLFxuICAgICAgXCJldmVudHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL2V2ZW50c3svcHJpdmFjeX1cIixcbiAgICAgIFwicmVjZWl2ZWRfZXZlbnRzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9yZWNlaXZlZF9ldmVudHNcIixcbiAgICAgIFwidHlwZVwiOiBcIlVzZXJcIixcbiAgICAgIFwic2l0ZV9hZG1pblwiOiBmYWxzZVxuICAgIH0sXG4gICAgXCJodG1sX3VybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9iaW53aWVkZXJoaWVyL2RhYmJsZVwiLFxuICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIHJlcG8gZm9yIGRhYmJsaW5nXCIsXG4gICAgXCJmb3JrXCI6IGZhbHNlLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZVwiLFxuICAgIFwiZm9ya3NfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9mb3Jrc1wiLFxuICAgIFwia2V5c191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2tleXN7L2tleV9pZH1cIixcbiAgICBcImNvbGxhYm9yYXRvcnNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9jb2xsYWJvcmF0b3Jzey9jb2xsYWJvcmF0b3J9XCIsXG4gICAgXCJ0ZWFtc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL3RlYW1zXCIsXG4gICAgXCJob29rc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2hvb2tzXCIsXG4gICAgXCJpc3N1ZV9ldmVudHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9pc3N1ZXMvZXZlbnRzey9udW1iZXJ9XCIsXG4gICAgXCJldmVudHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9ldmVudHNcIixcbiAgICBcImFzc2lnbmVlc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2Fzc2lnbmVlc3svdXNlcn1cIixcbiAgICBcImJyYW5jaGVzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvYnJhbmNoZXN7L2JyYW5jaH1cIixcbiAgICBcInRhZ3NfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS90YWdzXCIsXG4gICAgXCJibG9ic191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2dpdC9ibG9ic3svc2hhfVwiLFxuICAgIFwiZ2l0X3RhZ3NfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9naXQvdGFnc3svc2hhfVwiLFxuICAgIFwiZ2l0X3JlZnNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9naXQvcmVmc3svc2hhfVwiLFxuICAgIFwidHJlZXNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9naXQvdHJlZXN7L3NoYX1cIixcbiAgICBcInN0YXR1c2VzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvc3RhdHVzZXMve3NoYX1cIixcbiAgICBcImxhbmd1YWdlc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2xhbmd1YWdlc1wiLFxuICAgIFwic3RhcmdhemVyc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL3N0YXJnYXplcnNcIixcbiAgICBcImNvbnRyaWJ1dG9yc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2NvbnRyaWJ1dG9yc1wiLFxuICAgIFwic3Vic2NyaWJlcnNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9zdWJzY3JpYmVyc1wiLFxuICAgIFwic3Vic2NyaXB0aW9uX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvc3Vic2NyaXB0aW9uXCIsXG4gICAgXCJjb21taXRzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvY29tbWl0c3svc2hhfVwiLFxuICAgIFwiZ2l0X2NvbW1pdHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9naXQvY29tbWl0c3svc2hhfVwiLFxuICAgIFwiY29tbWVudHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9jb21tZW50c3svbnVtYmVyfVwiLFxuICAgIFwiaXNzdWVfY29tbWVudF91cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2lzc3Vlcy9jb21tZW50c3svbnVtYmVyfVwiLFxuICAgIFwiY29udGVudHNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9jb250ZW50cy97K3BhdGh9XCIsXG4gICAgXCJjb21wYXJlX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvY29tcGFyZS97YmFzZX0uLi57aGVhZH1cIixcbiAgICBcIm1lcmdlc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL21lcmdlc1wiLFxuICAgIFwiYXJjaGl2ZV91cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL3thcmNoaXZlX2Zvcm1hdH17L3JlZn1cIixcbiAgICBcImRvd25sb2Fkc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2Rvd25sb2Fkc1wiLFxuICAgIFwiaXNzdWVzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvaXNzdWVzey9udW1iZXJ9XCIsXG4gICAgXCJwdWxsc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL3B1bGxzey9udW1iZXJ9XCIsXG4gICAgXCJtaWxlc3RvbmVzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvbWlsZXN0b25lc3svbnVtYmVyfVwiLFxuICAgIFwibm90aWZpY2F0aW9uc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL25vdGlmaWNhdGlvbnN7P3NpbmNlLGFsbCxwYXJ0aWNpcGF0aW5nfVwiLFxuICAgIFwibGFiZWxzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvYmlud2llZGVyaGllci9kYWJibGUvbGFiZWxzey9uYW1lfVwiLFxuICAgIFwicmVsZWFzZXNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9iaW53aWVkZXJoaWVyL2RhYmJsZS9yZWxlYXNlc3svaWR9XCIsXG4gICAgXCJkZXBsb3ltZW50c191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JpbndpZWRlcmhpZXIvZGFiYmxlL2RlcGxveW1lbnRzXCIsXG4gICAgXCJjcmVhdGVkX2F0XCI6IFwiMjAyMi0wMy0xNVQxNTowNjoxN1pcIixcbiAgICBcInVwZGF0ZWRfYXRcIjogXCIyMDIyLTAzLTE1VDE1OjA2OjE3WlwiLFxuICAgIFwicHVzaGVkX2F0XCI6IFwiMjAyNC0wMy0yMVQwMjo1MjoxMFpcIixcbiAgICBcImdpdF91cmxcIjogXCJnaXQ6Ly9naXRodWIuY29tL2JpbndpZWRlcmhpZXIvZGFiYmxlLmdpdFwiLFxuICAgIFwic3NoX3VybFwiOiBcImdpdEBnaXRodWIuY29tOmJpbndpZWRlcmhpZXIvZGFiYmxlLmdpdFwiLFxuICAgIFwiY2xvbmVfdXJsXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2JpbndpZWRlcmhpZXIvZGFiYmxlLmdpdFwiLFxuICAgIFwic3ZuX3VybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9iaW53aWVkZXJoaWVyL2RhYmJsZVwiLFxuICAgIFwiaG9tZXBhZ2VcIjogbnVsbCxcbiAgICBcInNpemVcIjogMSxcbiAgICBcInN0YXJnYXplcnNfY291bnRcIjogMCxcbiAgICBcIndhdGNoZXJzX2NvdW50XCI6IDAsXG4gICAgXCJsYW5ndWFnZVwiOiBudWxsLFxuICAgIFwiaGFzX2lzc3Vlc1wiOiB0cnVlLFxuICAgIFwiaGFzX3Byb2plY3RzXCI6IHRydWUsXG4gICAgXCJoYXNfZG93bmxvYWRzXCI6IHRydWUsXG4gICAgXCJoYXNfd2lraVwiOiB0cnVlLFxuICAgIFwiaGFzX3BhZ2VzXCI6IGZhbHNlLFxuICAgIFwiaGFzX2Rpc2N1c3Npb25zXCI6IGZhbHNlLFxuICAgIFwiZm9ya3NfY291bnRcIjogMCxcbiAgICBcIm1pcnJvcl91cmxcIjogbnVsbCxcbiAgICBcImFyY2hpdmVkXCI6IGZhbHNlLFxuICAgIFwiZGlzYWJsZWRcIjogZmFsc2UsXG4gICAgXCJvcGVuX2lzc3Vlc19jb3VudFwiOiAxLFxuICAgIFwibGljZW5zZVwiOiBudWxsLFxuICAgIFwiYWxsb3dfZm9ya2luZ1wiOiB0cnVlLFxuICAgIFwiaXNfdGVtcGxhdGVcIjogZmFsc2UsXG4gICAgXCJ3ZWJfY29tbWl0X3NpZ25vZmZfcmVxdWlyZWRcIjogZmFsc2UsXG4gICAgXCJ0b3BpY3NcIjogW10sXG4gICAgXCJ2aXNpYmlsaXR5XCI6IFwicHVibGljXCIsXG4gICAgXCJmb3Jrc1wiOiAwLFxuICAgIFwib3Blbl9pc3N1ZXNcIjogMSxcbiAgICBcIndhdGNoZXJzXCI6IDAsXG4gICAgXCJkZWZhdWx0X2JyYW5jaFwiOiBcIm1haW5cIlxuICB9LFxuICBcInNlbmRlclwiOiB7XG4gICAgXCJsb2dpblwiOiBcImJpbndpZWRlcmhpZXJcIixcbiAgICBcImlkXCI6IDY2NDU5NyxcbiAgICBcIm5vZGVfaWRcIjogXCJNRFE2VlhObGNqWTJORFU1Tnc9PVwiLFxuICAgIFwiYXZhdGFyX3VybFwiOiBcImh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82NjQ1OTc/dj00XCIsXG4gICAgXCJncmF2YXRhcl9pZFwiOiBcIlwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyXCIsXG4gICAgXCJodG1sX3VybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9iaW53aWVkZXJoaWVyXCIsXG4gICAgXCJmb2xsb3dlcnNfdXJsXCI6IFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9iaW53aWVkZXJoaWVyL2ZvbGxvd2Vyc1wiLFxuICAgIFwiZm9sbG93aW5nX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9mb2xsb3dpbmd7L290aGVyX3VzZXJ9XCIsXG4gICAgXCJnaXN0c191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvZ2lzdHN7L2dpc3RfaWR9XCIsXG4gICAgXCJzdGFycmVkX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9zdGFycmVkey9vd25lcn17L3JlcG99XCIsXG4gICAgXCJzdWJzY3JpcHRpb25zX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9zdWJzY3JpcHRpb25zXCIsXG4gICAgXCJvcmdhbml6YXRpb25zX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9vcmdzXCIsXG4gICAgXCJyZXBvc191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvcmVwb3NcIixcbiAgICBcImV2ZW50c191cmxcIjogXCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2JpbndpZWRlcmhpZXIvZXZlbnRzey9wcml2YWN5fVwiLFxuICAgIFwicmVjZWl2ZWRfZXZlbnRzX3VybFwiOiBcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvYmlud2llZGVyaGllci9yZWNlaXZlZF9ldmVudHNcIixcbiAgICBcInR5cGVcIjogXCJVc2VyXCIsXG4gICAgXCJzaXRlX2FkbWluXCI6IGZhbHNlXG4gIH1cbn1cbiIsImNvbmZpZyI6eyJ0ZW1wbGF0ZSI6InRleHQiLCJmdWxsU2NyZWVuSFRNTCI6ZmFsc2UsImZ1bmN0aW9ucyI6WyJzcHJpZyJdLCJvcHRpb25zIjpbImxpdmUiXSwiaW5wdXRUeXBlIjoieWFtbCJ9fQ==)) * Loops (e.g. `{{range .errors}}..{{end}}`, see [example](https://repeatit.io/#/share/eyJ0ZW1wbGF0ZSI6IlNldmVyZSBVUkxzOlxue3tyYW5nZSAuZXJyb3JzfX17e2lmIGVxIC5sZXZlbCBcInNldmVyZVwifX0tIHt7LnVybH19XG57e2VuZH19e3tlbmR9fSIsImlucHV0Ijoie1wiZm9vXCI6IFwiYmFyXCIsIFwiZXJyb3JzXCI6IFt7XCJsZXZlbFwiOiBcInNldmVyZVwiLCBcInVybFwiOiBcImh0dHBzOi8vc2V2ZXJlMS5jb21cIn0se1wibGV2ZWxcIjogXCJ3YXJuaW5nXCIsIFwidXJsXCI6IFwiaHR0cHM6Ly93YXJuaW5nLmNvbVwifSx7XCJsZXZlbFwiOiBcInNldmVyZVwiLCBcInVybFwiOiBcImh0dHBzOi8vc2V2ZXJlMi5jb21cIn1dfSIsImNvbmZpZyI6eyJ0ZW1wbGF0ZSI6InRleHQiLCJmdWxsU2NyZWVuSFRNTCI6ZmFsc2UsImZ1bmN0aW9ucyI6WyJzcHJpZyJdLCJvcHRpb25zIjpbImxpdmUiXSwiaW5wdXRUeXBlIjoieWFtbCJ9fQ==)) A good way to experiment with Go templates is the **[Go Template Playground](https://repeatit.io)**. It is _highly recommended_ to test your templates there first ([example for Grafana alert](https://repeatit.io/#/share/eyJ0ZW1wbGF0ZSI6InRpdGxlPUdyYWZhbmErYWxlcnQ6K3t7LnRpdGxlfX0mbWVzc2FnZT17ey5tZXNzYWdlfX0iLCJpbnB1dCI6IntcbiAgXCJyZWNlaXZlclwiOiBcIm50ZnlcXFxcLmV4YW1wbGVcXFxcLmNvbS9hbGVydHNcIixcbiAgXCJzdGF0dXNcIjogXCJyZXNvbHZlZFwiLFxuICBcImFsZXJ0c1wiOiBbXG4gICAge1xuICAgICAgXCJzdGF0dXNcIjogXCJyZXNvbHZlZFwiLFxuICAgICAgXCJsYWJlbHNcIjoge1xuICAgICAgICBcImFsZXJ0bmFtZVwiOiBcIkxvYWQgYXZnIDE1bSB0b28gaGlnaFwiLFxuICAgICAgICBcImdyYWZhbmFfZm9sZGVyXCI6IFwiTm9kZSBhbGVydHNcIixcbiAgICAgICAgXCJpbnN0YW5jZVwiOiBcIjEwLjEwOC4wLjI6OTEwMFwiLFxuICAgICAgICBcImpvYlwiOiBcIm5vZGUtZXhwb3J0ZXJcIlxuICAgICAgfSxcbiAgICAgIFwiYW5ub3RhdGlvbnNcIjoge1xuICAgICAgICBcInN1bW1hcnlcIjogXCIxNW0gbG9hZCBhdmVyYWdlIHRvbyBoaWdoXCJcbiAgICAgIH0sXG4gICAgICBcInN0YXJ0c0F0XCI6IFwiMjAyNC0wMy0xNVQwMjoyODowMFpcIixcbiAgICAgIFwiZW5kc0F0XCI6IFwiMjAyNC0wMy0xNVQwMjo0MjowMFpcIixcbiAgICAgIFwiZ2VuZXJhdG9yVVJMXCI6IFwibG9jYWxob3N0OjMwMDAvYWxlcnRpbmcvZ3JhZmFuYS9OVzlvRHctNHovdmlld1wiLFxuICAgICAgXCJmaW5nZXJwcmludFwiOiBcImJlY2JmYjk0YmQ4MWVmNDhcIixcbiAgICAgIFwic2lsZW5jZVVSTFwiOiBcImxvY2FsaG9zdDozMDAwL2FsZXJ0aW5nL3NpbGVuY2UvbmV3P2FsZXJ0bWFuYWdlcj1ncmFmYW5hJm1hdGNoZXI9YWxlcnRuYW1lJTNETG9hZCthdmcrMTVtK3RvbytoaWdoJm1hdGNoZXI9Z3JhZmFuYV9mb2xkZXIlM0ROb2RlK2FsZXJ0cyZtYXRjaGVyPWluc3RhbmNlJTNEMTAuMTA4LjAuMiUzQTkxMDAmbWF0Y2hlcj1qb2IlM0Rub2RlLWV4cG9ydGVyXCIsXG4gICAgICBcImRhc2hib2FyZFVSTFwiOiBcIlwiLFxuICAgICAgXCJwYW5lbFVSTFwiOiBcIlwiLFxuICAgICAgXCJ2YWx1ZXNcIjoge1xuICAgICAgICBcIkJcIjogMTguOTgyMTEzMTQ0NzU4NzYsXG4gICAgICAgIFwiQ1wiOiAwXG4gICAgICB9LFxuICAgICAgXCJ2YWx1ZVN0cmluZ1wiOiBcIlsgdmFyPSdCJyBsYWJlbHM9e19fbmFtZV9fPW5vZGVfbG9hZDE1LCBpbnN0YW5jZT0xMC4xMDguMC4yOjkxMDAsIGpvYj1ub2RlLWV4cG9ydGVyfSB2YWx1ZT0xOC45ODIxMTMxNDQ3NTg3NiBdLCBbIHZhcj0nQycgbGFiZWxzPXtfX25hbWVfXz1ub2RlX2xvYWQxNSwgaW5zdGFuY2U9MTAuMTA4LjAuMjo5MTAwLCBqb2I9bm9kZS1leHBvcnRlcn0gdmFsdWU9MCBdXCJcbiAgICB9XG4gIF0sXG4gIFwiZ3JvdXBMYWJlbHNcIjoge1xuICAgIFwiYWxlcnRuYW1lXCI6IFwiTG9hZCBhdmcgMTVtIHRvbyBoaWdoXCIsXG4gICAgXCJncmFmYW5hX2ZvbGRlclwiOiBcIk5vZGUgYWxlcnRzXCJcbiAgfSxcbiAgXCJjb21tb25MYWJlbHNcIjoge1xuICAgIFwiYWxlcnRuYW1lXCI6IFwiTG9hZCBhdmcgMTVtIHRvbyBoaWdoXCIsXG4gICAgXCJncmFmYW5hX2ZvbGRlclwiOiBcIk5vZGUgYWxlcnRzXCIsXG4gICAgXCJpbnN0YW5jZVwiOiBcIjEwLjEwOC4wLjI6OTEwMFwiLFxuICAgIFwiam9iXCI6IFwibm9kZS1leHBvcnRlclwiXG4gIH0sXG4gIFwiY29tbW9uQW5ub3RhdGlvbnNcIjoge1xuICAgIFwic3VtbWFyeVwiOiBcIjE1bSBsb2FkIGF2ZXJhZ2UgdG9vIGhpZ2hcIlxuICB9LFxuICBcImV4dGVybmFsVVJMXCI6IFwibG9jYWxob3N0OjMwMDAvXCIsXG4gIFwidmVyc2lvblwiOiBcIjFcIixcbiAgXCJncm91cEtleVwiOiBcInt9OnthbGVydG5hbWU9XFxcIkxvYWQgYXZnIDE1bSB0b28gaGlnaFxcXCIsIGdyYWZhbmFfZm9sZGVyPVxcXCJOb2RlIGFsZXJ0c1xcXCJ9XCIsXG4gIFwidHJ1bmNhdGVkQWxlcnRzXCI6IDAsXG4gIFwib3JnSWRcIjogMSxcbiAgXCJ0aXRsZVwiOiBcIltSRVNPTFZFRF0gTG9hZCBhdmcgMTVtIHRvbyBoaWdoIE5vZGUgYWxlcnRzICgxMC4xMDguMC4yOjkxMDAgbm9kZS1leHBvcnRlcilcIixcbiAgXCJzdGF0ZVwiOiBcIm9rXCIsXG4gIFwibWVzc2FnZVwiOiBcIioqUmVzb2x2ZWQqKlxcblxcblZhbHVlOiBCPTE4Ljk4MjExMzE0NDc1ODc2LCBDPTBcXG5MYWJlbHM6XFxuIC0gYWxlcnRuYW1lID0gTG9hZCBhdmcgMTVtIHRvbyBoaWdoXFxuIC0gZ3JhZmFuYV9mb2xkZXIgPSBOb2RlIGFsZXJ0c1xcbiAtIGluc3RhbmNlID0gMTAuMTA4LjAuMjo5MTAwXFxuIC0gam9iID0gbm9kZS1leHBvcnRlclxcbkFubm90YXRpb25zOlxcbiAtIHN1bW1hcnkgPSAxNW0gbG9hZCBhdmVyYWdlIHRvbyBoaWdoXFxuU291cmNlOiBsb2NhbGhvc3Q6MzAwMC9hbGVydGluZy9ncmFmYW5hL05XOW9Edy00ei92aWV3XFxuU2lsZW5jZTogbG9jYWxob3N0OjMwMDAvYWxlcnRpbmcvc2lsZW5jZS9uZXc/YWxlcnRtYW5hZ2VyPWdyYWZhbmEmbWF0Y2hlcj1hbGVydG5hbWUlM0RMb2FkK2F2ZysxNW0rdG9vK2hpZ2gmbWF0Y2hlcj1ncmFmYW5hX2ZvbGRlciUzRE5vZGUrYWxlcnRzJm1hdGNoZXI9aW5zdGFuY2UlM0QxMC4xMDguMC4yJTNBOTEwMCZtYXRjaGVyPWpvYiUzRG5vZGUtZXhwb3J0ZXJcXG5cIlxufVxuIiwiY29uZmlnIjp7InRlbXBsYXRlIjoidGV4dCIsImZ1bGxTY3JlZW5IVE1MIjpmYWxzZSwiZnVuY3Rpb25zIjpbInNwcmlnIl0sIm9wdGlvbnMiOlsibGl2ZSJdLCJpbnB1dFR5cGUiOiJ5YW1sIn19)). !!! info Please note that the Go templating language is quite terrible. My apologies for using it for this feature. It is the best option for Go-based programs like ntfy. Stay calm and don't harm yourself or others in despair. **You can do it. I believe in you!** Here's an **example for a Grafana alert**:
    ![notification with actions](static/img/android-screenshot-template.jpg){ width=500 }
    Grafana webhook, formatted using templates
    This was sent using the following templates and payloads === "Message template" ``` {{range .alerts}} {{.annotations.summary}} Values: {{range $k,$v := .values}} - {{$k}}={{$v}} {{end}} {{end}} ``` === "Title template" ``` {{.title}} ``` === "Encoded webhook URL" ``` # Additional URL encoding (see https://www.urlencoder.org/) is necessary for Grafana, # and may be required for other tools too https://ntfy.sh/mytopic?tpl=1&t=%7B%7B.title%7D%7D&m=%7B%7Brange%20.alerts%7D%7D%7B%7B.annotations.summary%7D%7D%5Cn%5CnValues%3A%5Cn%7B%7Brange%20%24k%2C%24v%20%3A%3D%20.values%7D%7D-%20%7B%7B%24k%7D%7D%3D%7B%7B%24v%7D%7D%5Cn%7B%7Bend%7D%7D%7B%7Bend%7D%7D ``` === "Grafana-sent payload" ``` {"receiver":"ntfy\\.example\\.com/alerts","status":"resolved","alerts":[{"status":"resolved","labels":{"alertname":"Load avg 15m too high","grafana_folder":"Node alerts","instance":"10.108.0.2:9100","job":"node-exporter"},"annotations":{"summary":"15m load average too high"},"startsAt":"2024-03-15T02:28:00Z","endsAt":"2024-03-15T02:42:00Z","generatorURL":"localhost:3000/alerting/grafana/NW9oDw-4z/view","fingerprint":"becbfb94bd81ef48","silenceURL":"localhost:3000/alerting/silence/new?alertmanager=grafana&matcher=alertname%3DLoad+avg+15m+too+high&matcher=grafana_folder%3DNode+alerts&matcher=instance%3D10.108.0.2%3A9100&matcher=job%3Dnode-exporter","dashboardURL":"","panelURL":"","values":{"B":18.98211314475876,"C":0},"valueString":"[ var='B' labels={__name__=node_load15, instance=10.108.0.2:9100, job=node-exporter} value=18.98211314475876 ], [ var='C' labels={__name__=node_load15, instance=10.108.0.2:9100, job=node-exporter} value=0 ]"}],"groupLabels":{"alertname":"Load avg 15m too high","grafana_folder":"Node alerts"},"commonLabels":{"alertname":"Load avg 15m too high","grafana_folder":"Node alerts","instance":"10.108.0.2:9100","job":"node-exporter"},"commonAnnotations":{"summary":"15m load average too high"},"externalURL":"localhost:3000/","version":"1","groupKey":"{}:{alertname=\"Load avg 15m too high\", grafana_folder=\"Node alerts\"}","truncatedAlerts":0,"orgId":1,"title":"[RESOLVED] Load avg 15m too high Node alerts (10.108.0.2:9100 node-exporter)","state":"ok","message":"**Resolved**\n\nValue: B=18.98211314475876, C=0\nLabels:\n - alertname = Load avg 15m too high\n - grafana_folder = Node alerts\n - instance = 10.108.0.2:9100\n - job = node-exporter\nAnnotations:\n - summary = 15m load average too high\nSource: localhost:3000/alerting/grafana/NW9oDw-4z/view\nSilence: localhost:3000/alerting/silence/new?alertmanager=grafana&matcher=alertname%3DLoad+avg+15m+too+high&matcher=grafana_folder%3DNode+alerts&matcher=instance%3D10.108.0.2%3A9100&matcher=job%3Dnode-exporter\n"} ``` Here's an **easier example with a shorter JSON payload**: === "Command line (curl)" ``` # To use { and } in the URL without encoding, we need to turn of # curl's globbing using --globoff curl \ --globoff \ -d '{"hostname": "phil-pc", "error": {"level": "severe", "desc": "Disk has run out of space"}}' \ 'ntfy.sh/mytopic?tpl=yes&t={{.hostname}}:+A+{{.error.level}}+error+has+occurred&m=Error+message:+{{.error.desc}}' ``` === "HTTP" ``` http POST /mytopic?tpl=yes&t={{.hostname}}:+A+{{.error.level}}+error+has+occurred&m=Error+message:+{{.error.desc}} HTTP/1.1 Host: ntfy.sh {"hostname": "phil-pc", "error": {"level": "severe", "desc": "Disk has run out of space"}} ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/mytopic?tpl=yes&t={{.hostname}}:+A+{{.error.level}}+error+has+occurred&m=Error+message:+{{.error.desc}}', { method: 'POST', body: '{"hostname": "phil-pc", "error": {"level": "severe", "desc": "Disk has run out of space"}}' }) ``` === "Go" ``` go body := `{"hostname": "phil-pc", "error": {"level": "severe", "desc": "Disk has run out of space"}}` uri := "https://ntfy.sh/mytopic?tpl=yes&t={{.hostname}}:+A+{{.error.level}}+error+has+occurred&m=Error+message:+{{.error.desc}}" req, _ := http.NewRequest("POST", uri, strings.NewReader(body)) http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/mytopic?tpl=yes&t={{.hostname}}:+A+{{.error.level}}+error+has+occurred&m=Error+message:+{{.error.desc}}" Body = '{"hostname": "phil-pc", "error": {"level": "severe", "desc": "Disk has run out of space"}}' ContentType = "application/json" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post( "https://ntfy.sh/mytopic?tpl=yes&t={{.hostname}}:+A+{{.error.level}}+error+has+occurred&m=Error+message:+{{.error.desc}}", data='{"hostname": "phil-pc", "error": {"level": "severe", "desc": "Disk has run out of space"}}' ) ``` === "PHP" ``` php-inline file_get_contents("https://ntfy.sh/mytopic?tpl=yes&t={{.hostname}}:+A+{{.error.level}}+error+has+occurred&m=Error+message:+{{.error.desc}}", false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: application/json", 'content' => '{"hostname": "phil-pc", "error": {"level": "severe", "desc": "Disk has run out of space"}}' ] ])); ``` This example uses the `message`/`m` and `title`/`t` query parameters, but obviously this also works with the corresponding `Message`/`Title` headers. It will send a notification with a title `phil-pc: A severe error has occurred` and a message `Error message: Disk has run out of space`. ## Publish as JSON _Supported on:_ :material-android: :material-apple: :material-firefox: For some integrations with other tools (e.g. [Jellyfin](https://jellyfin.org/), [overseerr](https://overseerr.dev/)), adding custom headers to HTTP requests may be tricky or impossible, so ntfy also allows publishing the entire message as JSON in the request body. To publish as JSON, simple PUT/POST the JSON object directly to the ntfy root URL. The message format is described below the example. !!! info To publish as JSON, you must **PUT/POST to the ntfy root URL**, not to the topic URL. Be sure to check that you're POST-ing to `https://ntfy.sh/` (correct), and not to `https://ntfy.sh/mytopic` (incorrect). Here's an example using most supported parameters. Check the table below for a complete list. The `topic` parameter is the only required one: === "Command line (curl)" ``` curl ntfy.sh \ -d '{ "topic": "mytopic", "message": "Disk space is low at 5.1 GB", "title": "Low disk space alert", "tags": ["warning","cd"], "priority": 4, "attach": "https://filesrv.lan/space.jpg", "filename": "diskspace.jpg", "click": "https://homecamera.lan/xasds1h2xsSsa/", "actions": [{ "action": "view", "label": "Admin panel", "url": "https://filesrv.lan/admin" }] }' ``` === "HTTP" ``` http POST / HTTP/1.1 Host: ntfy.sh { "topic": "mytopic", "message": "Disk space is low at 5.1 GB", "title": "Low disk space alert", "tags": ["warning","cd"], "priority": 4, "attach": "https://filesrv.lan/space.jpg", "filename": "diskspace.jpg", "click": "https://homecamera.lan/xasds1h2xsSsa/", "actions": [{ "action": "view", "label": "Admin panel", "url": "https://filesrv.lan/admin" }] } ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh', { method: 'POST', body: JSON.stringify({ "topic": "mytopic", "message": "Disk space is low at 5.1 GB", "title": "Low disk space alert", "tags": ["warning","cd"], "priority": 4, "attach": "https://filesrv.lan/space.jpg", "filename": "diskspace.jpg", "click": "https://homecamera.lan/xasds1h2xsSsa/", "actions": [{ "action": "view", "label": "Admin panel", "url": "https://filesrv.lan/admin" }] }) }) ``` === "Go" ``` go // You should probably use json.Marshal() instead and make a proper struct, // or even just use req.Header.Set() like in the other examples, but for the // sake of the example, this is easier. body := `{ "topic": "mytopic", "message": "Disk space is low at 5.1 GB", "title": "Low disk space alert", "tags": ["warning","cd"], "priority": 4, "attach": "https://filesrv.lan/space.jpg", "filename": "diskspace.jpg", "click": "https://homecamera.lan/xasds1h2xsSsa/", "actions": [{ "action": "view", "label": "Admin panel", "url": "https://filesrv.lan/admin" }] }` req, _ := http.NewRequest("POST", "https://ntfy.sh/", strings.NewReader(body)) http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh" Body = ConvertTo-JSON @{ Topic = "mytopic" Title = "Low disk space alert" Message = "Disk space is low at 5.1 GB" Priority = 4 Attach = "https://filesrv.lan/space.jpg" FileName = "diskspace.jpg" Tags = @("warning", "cd") Click = "https://homecamera.lan/xasds1h2xsSsa/" Actions = @( @{ Action = "view" Label = "Admin panel" URL = "https://filesrv.lan/admin" } ) } ContentType = "application/json" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/", data=json.dumps({ "topic": "mytopic", "message": "Disk space is low at 5.1 GB", "title": "Low disk space alert", "tags": ["warning","cd"], "priority": 4, "attach": "https://filesrv.lan/space.jpg", "filename": "diskspace.jpg", "click": "https://homecamera.lan/xasds1h2xsSsa/", "actions": [{ "action": "view", "label": "Admin panel", "url": "https://filesrv.lan/admin" }] }) ) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: application/json", 'content' => json_encode([ "topic": "mytopic", "message": "Disk space is low at 5.1 GB", "title": "Low disk space alert", "tags": ["warning","cd"], "priority": 4, "attach": "https://filesrv.lan/space.jpg", "filename": "diskspace.jpg", "click": "https://homecamera.lan/xasds1h2xsSsa/", "actions": [["action": "view", "label": "Admin panel", "url": "https://filesrv.lan/admin" ]] ]) ] ])); ``` The JSON message format closely mirrors the format of the message you can consume when you [subscribe via the API](subscribe/api.md) (see [JSON message format](subscribe/api.md#json-message-format) for details), but is not exactly identical. Here's an overview of all the supported fields: | Field | Required | Type | Example | Description | |------------|----------|----------------------------------|-------------------------------------------|-----------------------------------------------------------------------| | `topic` | ✔️ | *string* | `topic1` | Target topic name | | `message` | - | *string* | `Some message` | Message body; set to `triggered` if empty or not passed | | `title` | - | *string* | `Some title` | Message [title](#message-title) | | `tags` | - | *string array* | `["tag1","tag2"]` | List of [tags](#tags-emojis) that may or not map to emojis | | `priority` | - | *int (one of: 1, 2, 3, 4, or 5)* | `4` | Message [priority](#message-priority) with 1=min, 3=default and 5=max | | `actions` | - | *JSON array* | *(see [action buttons](#action-buttons))* | Custom [user action buttons](#action-buttons) for notifications | | `click` | - | *URL* | `https://example.com` | Website opened when notification is [clicked](#click-action) | | `attach` | - | *URL* | `https://example.com/file.jpg` | URL of an attachment, see [attach via URL](#attach-file-from-url) | | `markdown` | - | *bool* | `true` | Set to true if the `message` is Markdown-formatted | | `icon` | - | *string* | `https://example.com/icon.png` | URL to use as notification [icon](#icons) | | `filename` | - | *string* | `file.jpg` | File name of the attachment | | `delay` | - | *string* | `30min`, `9am` | Timestamp or duration for delayed delivery | | `email` | - | *e-mail address* | `phil@example.com` | E-mail address for e-mail notifications | | `call` | - | *phone number or 'yes'* | `+1222334444` or `yes` | Phone number to use for [voice call](#phone-calls) | ## Action buttons _Supported on:_ :material-android: :material-apple: :material-firefox: You can add action buttons to notifications to allow yourself to react to a notification directly. This is incredibly useful and has countless applications. You can control your home appliances (open/close garage door, change temperature on thermostat, ...), react to common monitoring alerts (clear logs when disk is full, ...), and many other things. The sky is the limit. As of today, the following actions are supported: * [`view`](#open-websiteapp): Opens a website or app when the action button is tapped * [`broadcast`](#send-android-broadcast): Sends an [Android broadcast](https://developer.android.com/guide/components/broadcasts) intent when the action button is tapped (only supported on Android) * [`http`](#send-http-request): Sends HTTP POST/GET/PUT request when the action button is tapped Here's an example of what a notification with actions can look like:
    ![notification with actions](static/img/android-screenshot-notification-actions.png){ width=500 }
    Notification with two user actions
    ### Defining actions You can define **up to three user actions** in your notifications, using either of the following methods: * In the [`X-Actions` header](#using-a-header), using a simple comma-separated format * As a [JSON array](#using-a-json-array) in the `actions` key, when [publishing as JSON](#publish-as-json) #### Using a header To define actions using the `X-Actions` header (or any of its aliases: `Actions`, `Action`), use the following format: === "Header format (long)" ``` action=, label=, paramN=... [; action=, label=, ...] ``` === "Header format (short)" ``` , , paramN=... [; , , ...] ``` Multiple actions are separated by a semicolon (`;`), and key/value pairs are separated by commas (`,`). Values may be quoted with double quotes (`"`) or single quotes (`'`) if the value itself contains commas or semicolons. The `action=` and `label=` prefix are optional in all actions, and the `url=` prefix is optional in the `view` and `http` action. The only limitation of this format is that depending on your language/library, UTF-8 characters may not work. If they don't, use the [JSON array format](#using-a-json-array) instead. As an example, here's how you can create the above notification using this format. Refer to the [`view` action](#open-websiteapp) and [`http` action](#send-http-request) section for details on the specific actions: === "Command line (curl)" ``` body='{"temperature": 65}' curl \ -d "You left the house. Turn down the A/C?" \ -H "Actions: view, Open portal, https://home.nest.com/, clear=true; \ http, Turn down, https://api.nest.com/, body='$body'" \ ntfy.sh/myhome ``` === "ntfy CLI" ``` body='{"temperature": 65}' ntfy publish \ --actions="view, Open portal, https://home.nest.com/, clear=true; \ http, Turn down, https://api.nest.com/, body='$body'" \ myhome \ "You left the house. Turn down the A/C?" ``` === "HTTP" ``` http POST /myhome HTTP/1.1 Host: ntfy.sh Actions: view, Open portal, https://home.nest.com/, clear=true; http, Turn down, https://api.nest.com/, body='{"temperature": 65}' You left the house. Turn down the A/C? ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/myhome', { method: 'POST', body: 'You left the house. Turn down the A/C?', headers: { 'Actions': 'view, Open portal, https://home.nest.com/, clear=true; http, Turn down, https://api.nest.com/, body=\'{"temperature": 65}\'' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/myhome", strings.NewReader("You left the house. Turn down the A/C?")) req.Header.Set("Actions", "view, Open portal, https://home.nest.com/, clear=true; http, Turn down, https://api.nest.com/, body='{\"temperature\": 65}'") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/myhome" Headers = @{ Actions="view, Open portal, https://home.nest.com/, clear=true; http, Turn down, https://api.nest.com/, body='{\"temperature\": 65}'" } Body = "You left the house. Turn down the A/C?" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/myhome", data="You left the house. Turn down the A/C?", headers={ "Actions": "view, Open portal, https://home.nest.com/, clear=true; http, Turn down, https://api.nest.com/, body='{\"temperature\": 65}'" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/reddit_alerts', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: text/plain\r\n" . "Actions: view, Open portal, https://home.nest.com/, clear=true; http, Turn down, https://api.nest.com/, body='{\"temperature\": 65}'", 'content' => 'You left the house. Turn down the A/C?' ] ])); ``` !!! info ntfy supports UTF-8 in HTTP headers, but [not every library or programming language does](https://www.jmix.io/blog/utf-8-in-http-headers/). If non-ASCII characters are causing issues for you in the title (i.e. you're seeing `?` symbols), you may also encode any header (including actions) as [RFC 2047](https://datatracker.ietf.org/doc/html/rfc2047#section-2), e.g. `=?UTF-8?B?8J+HqfCfh6o=?=` ([base64](https://en.wikipedia.org/wiki/Base64)), or `=?UTF-8?Q?=C3=84pfel?=` ([quoted-printable](https://en.wikipedia.org/wiki/Quoted-printable)). #### Using a JSON array Alternatively, the same actions can be defined as **JSON array**, if the notification is defined as part of the JSON body (see [publish as JSON](#publish-as-json)): === "Command line (curl)" ``` curl ntfy.sh \ -d '{ "topic": "myhome", "message": "You left the house. Turn down the A/C?", "actions": [ { "action": "view", "label": "Open portal", "url": "https://home.nest.com/", "clear": true }, { "action": "http", "label": "Turn down", "url": "https://api.nest.com/", "body": "{\"temperature\": 65}" } ] }' ``` === "ntfy CLI" ``` ntfy publish \ --actions '[ { "action": "view", "label": "Open portal", "url": "https://home.nest.com/", "clear": true }, { "action": "http", "label": "Turn down", "url": "https://api.nest.com/", "body": "{\"temperature\": 65}" } ]' \ myhome \ "You left the house. Turn down the A/C?" ``` === "HTTP" ``` http POST / HTTP/1.1 Host: ntfy.sh { "topic": "myhome", "message": "You left the house. Turn down the A/C?", "actions": [ { "action": "view", "label": "Open portal", "url": "https://home.nest.com/", "clear": true }, { "action": "http", "label": "Turn down", "url": "https://api.nest.com/", "body": "{\"temperature\": 65}" } ] } ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh', { method: 'POST', body: JSON.stringify({ topic: "myhome", message: "You left the house. Turn down the A/C?", actions: [ { action: "view", label: "Open portal", url: "https://home.nest.com/", clear: true }, { action: "http", label: "Turn down", url: "https://api.nest.com/", body: "{\"temperature\": 65}" } ] }) }) ``` === "Go" ``` go // You should probably use json.Marshal() instead and make a proper struct, // but for the sake of the example, this is easier. body := `{ "topic": "myhome", "message": "You left the house. Turn down the A/C?", "actions": [ { "action": "view", "label": "Open portal", "url": "https://home.nest.com/", "clear": true }, { "action": "http", "label": "Turn down", "url": "https://api.nest.com/", "body": "{\"temperature\": 65}" } ] }` req, _ := http.NewRequest("POST", "https://ntfy.sh/", strings.NewReader(body)) http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh" Body = ConvertTo-JSON @{ Topic = "myhome" Message = "You left the house. Turn down the A/C?" Actions = @( @{ Action = "view" Label = "Open portal" URL = "https://home.nest.com/" Clear = $true }, @{ Action = "http" Label = "Turn down" URL = "https://api.nest.com/" Body = '{"temperature": 65}' } ) } ContentType = "application/json" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/", data=json.dumps({ "topic": "myhome", "message": "You left the house. Turn down the A/C?", "actions": [ { "action": "view", "label": "Open portal", "url": "https://home.nest.com/", "clear": true }, { "action": "http", "label": "Turn down", "url": "https://api.nest.com/", "body": "{\"temperature\": 65}" } ] }) ) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: application/json", 'content' => json_encode([ "topic": "myhome", "message": "You left the house. Turn down the A/C?", "actions": [ [ "action": "view", "label": "Open portal", "url": "https://home.nest.com/", "clear": true ], [ "action": "http", "label": "Turn down", "url": "https://api.nest.com/", "headers": [ "Authorization": "Bearer ..." ], "body": "{\"temperature\": 65}" ] ] ]) ] ])); ``` The required/optional fields for each action depend on the type of the action itself. Please refer to [`view` action](#open-websiteapp), [`broadcast` action](#send-android-broadcast), and [`http` action](#send-http-request) for details. ### Open website/app _Supported on:_ :material-android: :material-apple: :material-firefox: The `view` action **opens a website or app when the action button is tapped**, e.g. a browser, a Google Maps location, or even a deep link into Twitter or a show ntfy topic. How exactly the action is handled depends on how Android and your desktop browser treat the links. Normally it'll just open a link in the browser. Examples: * `http://` or `https://` will open your browser (or an app if it registered for a URL) * `mailto:` links will open your mail app, e.g. `mailto:phil@example.com` * `geo:` links will open Google Maps, e.g. `geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+CA` * `ntfy://` links will open ntfy (see [ntfy:// links](subscribe/phone.md#ntfy-links)), e.g. `ntfy://ntfy.sh/stats` * `twitter://` links will open Twitter, e.g. `twitter://user?screen_name=..` * ... Here's an example using the [`X-Actions` header](#using-a-header): === "Command line (curl)" ``` curl \ -d "Somebody retweeted your tweet." \ -H "Actions: view, Open Twitter, https://twitter.com/binwiederhier/status/1467633927951163392" \ ntfy.sh/myhome ``` === "ntfy CLI" ``` ntfy publish \ --actions="view, Open Twitter, https://twitter.com/binwiederhier/status/1467633927951163392" \ myhome \ "Somebody retweeted your tweet." ``` === "HTTP" ``` http POST /myhome HTTP/1.1 Host: ntfy.sh Actions: view, Open Twitter, https://twitter.com/binwiederhier/status/1467633927951163392 Somebody retweeted your tweet. ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/myhome', { method: 'POST', body: 'Somebody retweeted your tweet.', headers: { 'Actions': 'view, Open Twitter, https://twitter.com/binwiederhier/status/1467633927951163392' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/myhome", strings.NewReader("Somebody retweeted your tweet.")) req.Header.Set("Actions", "view, Open Twitter, https://twitter.com/binwiederhier/status/1467633927951163392") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/myhome" Headers = @{ Actions = "view, Open Twitter, https://twitter.com/binwiederhier/status/1467633927951163392" } Body = "Somebody retweeted your tweet." } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/myhome", data="Somebody retweeted your tweet.", headers={ "Actions": "view, Open Twitter, https://twitter.com/binwiederhier/status/1467633927951163392" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/reddit_alerts', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: text/plain\r\n" . "Actions: view, Open Twitter, https://twitter.com/binwiederhier/status/1467633927951163392", 'content' => 'Somebody retweeted your tweet.' ] ])); ``` And the same example using [JSON publishing](#publish-as-json): === "Command line (curl)" ``` curl ntfy.sh \ -d '{ "topic": "myhome", "message": "Somebody retweeted your tweet.", "actions": [ { "action": "view", "label": "Open Twitter", "url": "https://twitter.com/binwiederhier/status/1467633927951163392" } ] }' ``` === "ntfy CLI" ``` ntfy publish \ --actions '[ { "action": "view", "label": "Open Twitter", "url": "https://twitter.com/binwiederhier/status/1467633927951163392" } ]' \ myhome \ "Somebody retweeted your tweet." ``` === "HTTP" ``` http POST / HTTP/1.1 Host: ntfy.sh { "topic": "myhome", "message": "Somebody retweeted your tweet.", "actions": [ { "action": "view", "label": "Open Twitter", "url": "https://twitter.com/binwiederhier/status/1467633927951163392" } ] } ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh', { method: 'POST', body: JSON.stringify({ topic: "myhome", message": "Somebody retweeted your tweet.", actions: [ { action: "view", label: "Open Twitter", url: "https://twitter.com/binwiederhier/status/1467633927951163392" } ] }) }) ``` === "Go" ``` go // You should probably use json.Marshal() instead and make a proper struct, // but for the sake of the example, this is easier. body := `{ "topic": "myhome", "message": "Somebody retweeted your tweet.", "actions": [ { "action": "view", "label": "Open Twitter", "url": "https://twitter.com/binwiederhier/status/1467633927951163392" } ] }` req, _ := http.NewRequest("POST", "https://ntfy.sh/", strings.NewReader(body)) http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh" Body = ConvertTo-JSON @{ Topic = "myhome" Message = "Somebody retweeted your tweet." Actions = @( @{ Action = "view" Label = "Open Twitter" URL = "https://twitter.com/binwiederhier/status/1467633927951163392" } ) } ContentType = "application/json" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/", data=json.dumps({ "topic": "myhome", "message": "Somebody retweeted your tweet.", "actions": [ { "action": "view", "label": "Open Twitter", "url": "https://twitter.com/binwiederhier/status/1467633927951163392" } ] }) ) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: application/json", 'content' => json_encode([ "topic": "myhome", "message": "Somebody retweeted your tweet.", "actions": [ [ "action": "view", "label": "Open Twitter", "url": "https://twitter.com/binwiederhier/status/1467633927951163392" ] ] ]) ] ])); ``` The `view` action supports the following fields: | Field | Required | Type | Default | Example | Description | |----------|----------|-----------|---------|-----------------------|--------------------------------------------------| | `action` | ✔️ | *string* | - | `view` | Action type (**must be `view`**) | | `label` | ✔️ | *string* | - | `Turn on light` | Label of the action button in the notification | | `url` | ✔️ | *URL* | - | `https://example.com` | URL to open when action is tapped | | `clear` | -️ | *boolean* | `false` | `true` | Clear notification after action button is tapped | ### Send Android broadcast _Supported on:_ :material-android: The `broadcast` action **sends an [Android broadcast](https://developer.android.com/guide/components/broadcasts) intent when the action button is tapped**. This allows integration into automation apps such as [MacroDroid](https://play.google.com/store/apps/details?id=com.arlosoft.macrodroid) or [Tasker](https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm), which basically means you can do everything your phone is capable of. Examples include taking pictures, launching/killing apps, change device settings, write/read files, etc. By default, the intent action **`io.heckel.ntfy.USER_ACTION`** is broadcast, though this can be changed with the `intent` parameter (see below). To send extras, use the `extras` parameter. Currently, **only string extras are supported**. !!! info If you have no idea what this is, check out the [automation apps](subscribe/phone.md#automation-apps) section, which shows how to integrate Tasker and MacroDroid **with screenshots**. The action button integration is identical, except that you have to use **the intent action `io.heckel.ntfy.USER_ACTION`** instead. Here's an example using the [`X-Actions` header](#using-a-header): === "Command line (curl)" ``` curl \ -d "Your wife requested you send a picture of yourself." \ -H "Actions: broadcast, Take picture, extras.cmd=pic, extras.camera=front" \ ntfy.sh/wifey ``` === "ntfy CLI" ``` ntfy publish \ --actions="broadcast, Take picture, extras.cmd=pic, extras.camera=front" \ wifey \ "Your wife requested you send a picture of yourself." ``` === "HTTP" ``` http POST /wifey HTTP/1.1 Host: ntfy.sh Actions: broadcast, Take picture, extras.cmd=pic, extras.camera=front Your wife requested you send a picture of yourself. ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/wifey', { method: 'POST', body: 'Your wife requested you send a picture of yourself.', headers: { 'Actions': 'broadcast, Take picture, extras.cmd=pic, extras.camera=front' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/wifey", strings.NewReader("Your wife requested you send a picture of yourself.")) req.Header.Set("Actions", "broadcast, Take picture, extras.cmd=pic, extras.camera=front") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/wifey" Headers = @{ Actions = "broadcast, Take picture, extras.cmd=pic, extras.camera=front" } Body = "Your wife requested you send a picture of yourself." } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/wifey", data="Your wife requested you send a picture of yourself.", headers={ "Actions": "broadcast, Take picture, extras.cmd=pic, extras.camera=front" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/wifey', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: text/plain\r\n" . "Actions: broadcast, Take picture, extras.cmd=pic, extras.camera=front", 'content' => 'Your wife requested you send a picture of yourself.' ] ])); ``` And the same example using [JSON publishing](#publish-as-json): === "Command line (curl)" ``` curl ntfy.sh \ -d '{ "topic": "wifey", "message": "Your wife requested you send a picture of yourself.", "actions": [ { "action": "broadcast", "label": "Take picture", "extras": { "cmd": "pic", "camera": "front" } } ] }' ``` === "ntfy CLI" ``` ntfy publish \ --actions '[ { "action": "broadcast", "label": "Take picture", "extras": { "cmd": "pic", "camera": "front" } } ]' \ wifey \ "Your wife requested you send a picture of yourself." ``` === "HTTP" ``` http POST / HTTP/1.1 Host: ntfy.sh { "topic": "wifey", "message": "Your wife requested you send a picture of yourself.", "actions": [ { "action": "broadcast", "label": "Take picture", "extras": { "cmd": "pic", "camera": "front" } } ] } ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh', { method: 'POST', body: JSON.stringify({ topic: "wifey", message": "Your wife requested you send a picture of yourself.", actions: [ { "action": "broadcast", "label": "Take picture", "extras": { "cmd": "pic", "camera": "front" } } ] }) }) ``` === "Go" ``` go // You should probably use json.Marshal() instead and make a proper struct, // but for the sake of the example, this is easier. body := `{ "topic": "wifey", "message": "Your wife requested you send a picture of yourself.", "actions": [ { "action": "broadcast", "label": "Take picture", "extras": { "cmd": "pic", "camera": "front" } } ] }` req, _ := http.NewRequest("POST", "https://ntfy.sh/", strings.NewReader(body)) http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell # Powershell requires the 'Depth' argument to equal 3 here to expand 'Extras', # otherwise it will read System.Collections.Hashtable in the returned JSON $Request = @{ Method = "POST" URI = "https://ntfy.sh" Body = ConvertTo-Json -Depth 3 @{ Topic = "wifey" Message = "Your wife requested you send a picture of yourself." Actions = @( @{ Action = "broadcast" Label = "Take picture" Extras = @{ CMD ="pic" Camera = "front" } } ) } ContentType = "application/json" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/", data=json.dumps({ "topic": "wifey", "message": "Your wife requested you send a picture of yourself.", "actions": [ { "action": "broadcast", "label": "Take picture", "extras": { "cmd": "pic", "camera": "front" } } ] }) ) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: application/json", 'content' => json_encode([ "topic": "wifey", "message": "Your wife requested you send a picture of yourself.", "actions": [ [ "action": "broadcast", "label": "Take picture", "extras": [ "cmd": "pic", "camera": "front" ] ] ]) ] ])); ``` The `broadcast` action supports the following fields: | Field | Required | Type | Default | Example | Description | |----------|----------|------------------|------------------------------|-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `action` | ✔️ | *string* | - | `broadcast` | Action type (**must be `broadcast`**) | | `label` | ✔️ | *string* | - | `Turn on light` | Label of the action button in the notification | | `intent` | -️ | *string* | `io.heckel.ntfy.USER_ACTION` | `com.example.AN_INTENT` | Android intent name, **default is `io.heckel.ntfy.USER_ACTION`** | | `extras` | -️ | *map of strings* | - | *see above* | Android intent extras. Currently, only string extras are supported. When publishing as JSON, extras are passed as a map. When the simple format is used, use `extras.=`. | | `clear` | -️ | *boolean* | `false` | `true` | Clear notification after action button is tapped | ### Send HTTP request _Supported on:_ :material-android: :material-apple: :material-firefox: The `http` action **sends a HTTP request when the action button is tapped**. You can use this to trigger REST APIs for whatever systems you have, e.g. opening the garage door, or turning on/off lights. By default, this action sends a **POST request** (not GET!), though this can be changed with the `method` parameter. The only required parameter is `url`. Headers can be passed along using the `headers` parameter. Here's an example using the [`X-Actions` header](#using-a-header): === "Command line (curl)" ``` curl \ -d "Garage door has been open for 15 minutes. Close it?" \ -H "Actions: http, Close door, https://api.mygarage.lan/, method=PUT, headers.Authorization=Bearer zAzsx1sk.., body={\"action\": \"close\"}" \ ntfy.sh/myhome ``` === "ntfy CLI" ``` ntfy publish \ --actions="http, Close door, https://api.mygarage.lan/, method=PUT, headers.Authorization=Bearer zAzsx1sk.., body={\"action\": \"close\"}" \ myhome \ "Garage door has been open for 15 minutes. Close it?" ``` === "HTTP" ``` http POST /myhome HTTP/1.1 Host: ntfy.sh Actions: http, Close door, https://api.mygarage.lan/, method=PUT, headers.Authorization=Bearer zAzsx1sk.., body={"action": "close"} Garage door has been open for 15 minutes. Close it? ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/myhome', { method: 'POST', body: 'Garage door has been open for 15 minutes. Close it?', headers: { 'Actions': 'http, Close door, https://api.mygarage.lan/, method=PUT, headers.Authorization=Bearer zAzsx1sk.., body={\"action\": \"close\"}' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/myhome", strings.NewReader("Garage door has been open for 15 minutes. Close it?")) req.Header.Set("Actions", "http, Close door, https://api.mygarage.lan/, method=PUT, headers.Authorization=Bearer zAzsx1sk.., body={\"action\": \"close\"}") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/myhome" Headers = @{ Actions="http, Close door, https://api.mygarage.lan/, method=PUT, headers.Authorization=Bearer zAzsx1sk.., body={\"action\": \"close\"}" } Body = "Garage door has been open for 15 minutes. Close it?" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/myhome", data="Garage door has been open for 15 minutes. Close it?", headers={ "Actions": "http, Close door, https://api.mygarage.lan/, method=PUT, headers.Authorization=Bearer zAzsx1sk.., body={\"action\": \"close\"}" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/reddit_alerts', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: text/plain\r\n" . 'Actions: http, Close door, https://api.mygarage.lan/, method=PUT, headers.Authorization=Bearer zAzsx1sk.., body={\"action\": \"close\"}', 'content' => 'Garage door has been open for 15 minutes. Close it?' ] ])); ``` And the same example using [JSON publishing](#publish-as-json): === "Command line (curl)" ``` curl ntfy.sh \ -d '{ "topic": "myhome", "message": "Garage door has been open for 15 minutes. Close it?", "actions": [ { "action": "http", "label": "Close door", "url": "https://api.mygarage.lan/", "method": "PUT", "headers": { "Authorization": "Bearer zAzsx1sk.." }, "body": "{\"action\": \"close\"}" } ] }' ``` === "ntfy CLI" ``` ntfy publish \ --actions '[ { "action": "http", "label": "Close door", "url": "https://api.mygarage.lan/", "method": "PUT", "headers": { "Authorization": "Bearer zAzsx1sk.." }, "body": "{\"action\": \"close\"}" } ]' \ myhome \ "Garage door has been open for 15 minutes. Close it?" ``` === "HTTP" ``` http POST / HTTP/1.1 Host: ntfy.sh { "topic": "myhome", "message": "Garage door has been open for 15 minutes. Close it?", "actions": [ { "action": "http", "label": "Close door", "url": "https://api.mygarage.lan/", "method": "PUT", "headers": { "Authorization": "Bearer zAzsx1sk.." }, "body": "{\"action\": \"close\"}" } ] } ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh', { method: 'POST', body: JSON.stringify({ topic: "myhome", message": "Garage door has been open for 15 minutes. Close it?", actions: [ { "action": "http", "label": "Close door", "url": "https://api.mygarage.lan/", "method": "PUT", "headers": { "Authorization": "Bearer zAzsx1sk.." }, "body": "{\"action\": \"close\"}" } ] }) }) ``` === "Go" ``` go // You should probably use json.Marshal() instead and make a proper struct, // but for the sake of the example, this is easier. body := `{ "topic": "myhome", "message": "Garage door has been open for 15 minutes. Close it?", "actions": [ { "action": "http", "label": "Close door", "method": "PUT", "url": "https://api.mygarage.lan/", "headers": { "Authorization": "Bearer zAzsx1sk.." }, "body": "{\"action\": \"close\"}" } ] }` req, _ := http.NewRequest("POST", "https://ntfy.sh/", strings.NewReader(body)) http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell # Powershell requires the 'Depth' argument to equal 3 here to expand 'headers', # otherwise it will read System.Collections.Hashtable in the returned JSON $Request = @{ Method = "POST" URI = "https://ntfy.sh" Body = ConvertTo-Json -Depth 3 @{ Topic = "myhome" Message = "Garage door has been open for 15 minutes. Close it?" Actions = @( @{ Action = "http" Label = "Close door" URL = "https://api.mygarage.lan/" Method = "PUT" Headers = @{ Authorization = "Bearer zAzsx1sk.." } Body = ConvertTo-JSON @{Action = "close"} } ) } ContentType = "application/json" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/", data=json.dumps({ "topic": "myhome", "message": "Garage door has been open for 15 minutes. Close it?", "actions": [ { "action": "http", "label": "Close door", "url": "https://api.mygarage.lan/", "method": "PUT", "headers": { "Authorization": "Bearer zAzsx1sk.." }, "body": "{\"action\": \"close\"}" } ] }) ) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: application/json", 'content' => json_encode([ "topic": "myhome", "message": "Garage door has been open for 15 minutes. Close it?", "actions": [ [ "action": "http", "label": "Close door", "url": "https://api.mygarage.lan/", "method": "PUT", "headers": [ "Authorization": "Bearer zAzsx1sk.." ], "body": "{\"action\": \"close\"}" ] ] ]) ] ])); ``` The `http` action supports the following fields: | Field | Required | Type | Default | Example | Description | |-----------|----------|--------------------|-----------|---------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------| | `action` | ✔️ | *string* | - | `http` | Action type (**must be `http`**) | | `label` | ✔️ | *string* | - | `Open garage door` | Label of the action button in the notification | | `url` | ✔️ | *string* | - | `https://ntfy.sh/mytopic` | URL to which the HTTP request will be sent | | `method` | -️ | *GET/POST/PUT/...* | `POST` ⚠️ | `GET` | HTTP method to use for request, **default is POST** ⚠️ | | `headers` | -️ | *map of strings* | - | *see above* | HTTP headers to pass in request. When publishing as JSON, headers are passed as a map. When the simple format is used, use `headers.=`. | | `body` | -️ | *string* | *empty* | `some body, somebody?` | HTTP body | | `clear` | -️ | *boolean* | `false` | `true` | Clear notification after HTTP request succeeds. If the request fails, the notification is not cleared. | ## Click action _Supported on:_ :material-android: :material-apple: :material-firefox: You can define which URL to open when a notification is clicked. This may be useful if your notification is related to a Zabbix alert or a transaction that you'd like to provide the deep-link for. Tapping the notification will open the web browser (or the app) and open the website. To define a click action for the notification, pass a URL as the value of the `X-Click` header (or its alias `Click`). If you pass a website URL (`http://` or `https://`) the web browser will open. If you pass another URI that can be handled by another app, the responsible app may open. Examples: * `http://` or `https://` will open your browser (or an app if it registered for a URL) * `mailto:` links will open your mail app, e.g. `mailto:phil@example.com` * `geo:` links will open Google Maps, e.g. `geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+CA` * `ntfy://` links will open ntfy (see [ntfy:// links](subscribe/phone.md#ntfy-links)), e.g. `ntfy://ntfy.sh/stats` * `twitter://` links will open Twitter, e.g. `twitter://user?screen_name=..` * ... Here's an example that will open Reddit when the notification is clicked: === "Command line (curl)" ``` curl \ -d "New messages on Reddit" \ -H "Click: https://www.reddit.com/message/messages" \ ntfy.sh/reddit_alerts ``` === "ntfy CLI" ``` ntfy publish \ --click="https://www.reddit.com/message/messages" \ reddit_alerts "New messages on Reddit" ``` === "HTTP" ``` http POST /reddit_alerts HTTP/1.1 Host: ntfy.sh Click: https://www.reddit.com/message/messages New messages on Reddit ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/reddit_alerts', { method: 'POST', body: 'New messages on Reddit', headers: { 'Click': 'https://www.reddit.com/message/messages' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/reddit_alerts", strings.NewReader("New messages on Reddit")) req.Header.Set("Click", "https://www.reddit.com/message/messages") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/reddit_alerts" Headers = @{ Click="https://www.reddit.com/message/messages" } Body = "New messages on Reddit" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/reddit_alerts", data="New messages on Reddit", headers={ "Click": "https://www.reddit.com/message/messages" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/reddit_alerts', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: text/plain\r\n" . "Click: https://www.reddit.com/message/messages", 'content' => 'New messages on Reddit' ] ])); ``` ## Attachments _Supported on:_ :material-android: :material-firefox: You can **send images and other files to your phone** as attachments to a notification. The attachments are then downloaded onto your phone (depending on size and setting automatically), and can be used from the Downloads folder. There are two different ways to send attachments: * sending [a local file](#attach-local-file) via PUT, e.g. from `~/Flowers/flower.jpg` or `ringtone.mp3` * or by [passing an external URL](#attach-file-from-a-url) as an attachment, e.g. `https://f-droid.org/F-Droid.apk` ### Attach local file To **send a file from your computer** as an attachment, you can send it as the PUT request body. If a message is greater than the maximum message size (4,096 bytes) or consists of non UTF-8 characters, the ntfy server will automatically detect the mime type and size, and send the message as an attachment file. To send smaller text-only messages or files as attachments, you must pass a filename by passing the `X-Filename` header or query parameter (or any of its aliases `Filename`, `File` or `f`). By default, and how ntfy.sh is configured, the **max attachment size is 15 MB** (with 100 MB total per visitor). Attachments **expire after 3 hours**, which typically is plenty of time for the user to download it, or for the Android app to auto-download it. Please also check out the [other limits below](#limitations). Here's an example showing how to upload an image: === "Command line (curl)" ``` curl \ -T flower.jpg \ -H "Filename: flower.jpg" \ ntfy.sh/flowers ``` === "ntfy CLI" ``` ntfy publish \ --file=flower.jpg \ flowers ``` === "HTTP" ``` http PUT /flowers HTTP/1.1 Host: ntfy.sh Filename: flower.jpg Content-Type: 52312 (binary JPEG data) ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/flowers', { method: 'PUT', body: document.getElementById("file").files[0], headers: { 'Filename': 'flower.jpg' } }) ``` === "Go" ``` go file, _ := os.Open("flower.jpg") req, _ := http.NewRequest("PUT", "https://ntfy.sh/flowers", file) req.Header.Set("Filename", "flower.jpg") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" Uri = "ntfy.sh/flowers" InFile = "flower.jpg" Headers = @{"Filename" = "flower.jpg"} } Invoke-RestMethod @Request ``` === "Python" ``` python requests.put("https://ntfy.sh/flowers", data=open("flower.jpg", 'rb'), headers={ "Filename": "flower.jpg" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/flowers', false, stream_context_create([ 'http' => [ 'method' => 'PUT', 'header' => "Content-Type: application/octet-stream\r\n" . // Does not matter "Filename: flower.jpg", 'content' => file_get_contents('flower.jpg') // Dangerous for large files ] ])); ``` Here's what that looks like on Android:
    ![image attachment](static/img/android-screenshot-attachment-image.png){ width=500 }
    Image attachment sent from a local file
    ### Attach file from a URL Instead of sending a local file to your phone, you can use **an external URL** to specify where the attachment is hosted. This could be a Dropbox link, a file from social media, or any other publicly available URL. Since the files are externally hosted, the expiration or size limits from above do not apply here. To attach an external file, simple pass the `X-Attach` header or query parameter (or any of its aliases `Attach` or `a`) to specify the attachment URL. It can be any type of file. ntfy will automatically try to derive the file name from the URL (e.g `https://example.com/flower.jpg` will yield a filename `flower.jpg`). To override this filename, you may send the `X-Filename` header or query parameter (or any of its aliases `Filename`, `File` or `f`). Here's an example showing how to attach an APK file: === "Command line (curl)" ``` curl \ -X POST \ -H "Attach: https://f-droid.org/F-Droid.apk" \ ntfy.sh/mydownloads ``` === "ntfy CLI" ``` ntfy publish \ --attach="https://f-droid.org/F-Droid.apk" \ mydownloads ``` === "HTTP" ``` http POST /mydownloads HTTP/1.1 Host: ntfy.sh Attach: https://f-droid.org/F-Droid.apk ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/mydownloads', { method: 'POST', headers: { 'Attach': 'https://f-droid.org/F-Droid.apk' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/mydownloads", file) req.Header.Set("Attach", "https://f-droid.org/F-Droid.apk") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/mydownloads" Headers = @{ Attach="https://f-droid.org/F-Droid.apk" } } Invoke-RestMethod @Request ``` === "Python" ``` python requests.put("https://ntfy.sh/mydownloads", headers={ "Attach": "https://f-droid.org/F-Droid.apk" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/mydownloads', false, stream_context_create([ 'http' => [ 'method' => 'PUT', 'header' => "Content-Type: text/plain\r\n" . // Does not matter "Attach: https://f-droid.org/F-Droid.apk", ] ])); ```
    ![file attachment](static/img/android-screenshot-attachment-file.png){ width=500 }
    File attachment sent from an external URL
    ## Icons _Supported on:_ :material-android: You can include an icon that will appear next to the text of the notification. Simply pass the `X-Icon` header or query parameter (or its alias `Icon`) to specify the URL that the icon is located at. The client will automatically download the icon (unless it is already cached locally, and less than 24 hours old), and show it in the notification. Icons are cached locally in the client until the notification is deleted. **Only JPEG and PNG images are supported at this time**. Here's an example showing how to include an icon: === "Command line (curl)" ``` curl \ -H "Icon: https://styles.redditmedia.com/t5_32uhe/styles/communityIcon_xnt6chtnr2j21.png" \ -H "Title: Kodi: Resuming Playback" \ -H "Tags: arrow_forward" \ -d "The Wire, S01E01" \ ntfy.sh/tvshows ``` === "ntfy CLI" ``` ntfy publish \ --icon="https://styles.redditmedia.com/t5_32uhe/styles/communityIcon_xnt6chtnr2j21.png" \ --title="Kodi: Resuming Playback" \ --tags="arrow_forward" \ tvshows \ "The Wire, S01E01" ``` === "HTTP" ``` http POST /tvshows HTTP/1.1 Host: ntfy.sh Icon: https://styles.redditmedia.com/t5_32uhe/styles/communityIcon_xnt6chtnr2j21.png Tags: arrow_forward Title: Kodi: Resuming Playback The Wire, S01E01 ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/tvshows', { method: 'POST', headers: { 'Icon': 'https://styles.redditmedia.com/t5_32uhe/styles/communityIcon_xnt6chtnr2j21.png', 'Title': 'Kodi: Resuming Playback', 'Tags': 'arrow_forward' }, body: "The Wire, S01E01" }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/tvshows", strings.NewReader("The Wire, S01E01")) req.Header.Set("Icon", "https://styles.redditmedia.com/t5_32uhe/styles/communityIcon_xnt6chtnr2j21.png") req.Header.Set("Tags", "arrow_forward") req.Header.Set("Title", "Kodi: Resuming Playback") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/tvshows" Headers = @{ Title = "Kodi: Resuming Playback" Tags = "arrow_forward" Icon = "https://styles.redditmedia.com/t5_32uhe/styles/communityIcon_xnt6chtnr2j21.png" } Body = "The Wire, S01E01" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/tvshows", data="The Wire, S01E01", headers={ "Title": "Kodi: Resuming Playback", "Tags": "arrow_forward", "Icon": "https://styles.redditmedia.com/t5_32uhe/styles/communityIcon_xnt6chtnr2j21.png" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/tvshows', false, stream_context_create([ 'http' => [ 'method' => 'PUT', 'header' => "Content-Type: text/plain\r\n" . // Does not matter "Title: Kodi: Resuming Playback\r\n" . "Tags: arrow_forward\r\n" . "Icon: https://styles.redditmedia.com/t5_32uhe/styles/communityIcon_xnt6chtnr2j21.png", ], 'content' => "The Wire, S01E01" ])); ``` Here's an example of how it will look on Android:
    ![file attachment](static/img/android-screenshot-icon.png){ width=500 }
    Custom icon from an external URL
    ## E-mail notifications _Supported on:_ :material-android: :material-apple: :material-firefox: You can forward messages to e-mail by specifying an address in the header. This can be useful for messages that you'd like to persist longer, or to blast-notify yourself on all possible channels. Usage is easy: Simply pass the `X-Email` header (or any of its aliases: `X-E-mail`, `Email`, `E-mail`, `Mail`, or `e`). Only one e-mail address is supported. Since ntfy does not provide auth (yet), the rate limiting is pretty strict (see [limitations](#limitations)). In the default configuration, you get **16 e-mails per visitor** (IP address) and then after that one per hour. On top of that, your IP address appears in the e-mail body. This is to prevent abuse. === "Command line (curl)" ``` curl \ -H "Email: phil@example.com" \ -H "Tags: warning,skull,backup-host,ssh-login" \ -H "Priority: high" \ -d "Unknown login from 5.31.23.83 to backups.example.com" \ ntfy.sh/alerts curl -H "Email: phil@example.com" -d "You've Got Mail" curl -d "You've Got Mail" "ntfy.sh/alerts?email=phil@example.com" ``` === "ntfy CLI" ``` ntfy publish \ --email=phil@example.com \ --tags=warning,skull,backup-host,ssh-login \ --priority=high \ alerts "Unknown login from 5.31.23.83 to backups.example.com" ``` === "HTTP" ``` http POST /alerts HTTP/1.1 Host: ntfy.sh Email: phil@example.com Tags: warning,skull,backup-host,ssh-login Priority: high Unknown login from 5.31.23.83 to backups.example.com ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/alerts', { method: 'POST', body: "Unknown login from 5.31.23.83 to backups.example.com", headers: { 'Email': 'phil@example.com', 'Tags': 'warning,skull,backup-host,ssh-login', 'Priority': 'high' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/alerts", strings.NewReader("Unknown login from 5.31.23.83 to backups.example.com")) req.Header.Set("Email", "phil@example.com") req.Header.Set("Tags", "warning,skull,backup-host,ssh-login") req.Header.Set("Priority", "high") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/alerts" Headers = @{ Title = "Low disk space alert" Priority = "high" Tags = "warning,skull,backup-host,ssh-login") Email = "phil@example.com" } Body = "Unknown login from 5.31.23.83 to backups.example.com" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/alerts", data="Unknown login from 5.31.23.83 to backups.example.com", headers={ "Email": "phil@example.com", "Tags": "warning,skull,backup-host,ssh-login", "Priority": "high" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/alerts', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: text/plain\r\n" . "Email: phil@example.com\r\n" . "Tags: warning,skull,backup-host,ssh-login\r\n" . "Priority: high", 'content' => 'Unknown login from 5.31.23.83 to backups.example.com' ] ])); ``` Here's what that looks like in Google Mail:
    ![e-mail notification](static/img/screenshot-email.png){ width=600 }
    E-mail notification
    ## E-mail publishing _Supported on:_ :material-android: :material-apple: :material-firefox: You can publish messages to a topic via e-mail, i.e. by sending an email to a specific address. For instance, you can publish a message to the topic `sometopic` by sending an e-mail to `ntfy-sometopic@ntfy.sh`. This is useful for e-mail based integrations such as for statuspage.io (though these days most services also support webhooks and HTTP calls). Depending on the [server configuration](config.md#e-mail-publishing), the e-mail address format can have a prefix to prevent spam on topics. For ntfy.sh, the prefix is configured to `ntfy-`, meaning that the general e-mail address format is: ``` ntfy-$topic@ntfy.sh ``` If [access control](config.md#access-control) is enabled, and the target topic does not support anonymous writes, e-mail publishing won't work without providing an authorized access token. That will change the format of the e-mail's recipient address to ``` ntfy-$topic+$token@ntfy.sh ``` As of today, e-mail publishing only supports adding a [message title](#message-title) (the e-mail subject). Tags, priority, delay and other features are not supported (yet). Here's an example that will publish a message with the title `You've Got Mail` to topic `sometopic` (see [ntfy.sh/sometopic](https://ntfy.sh/sometopic)):
    ![e-mail publishing](static/img/screenshot-email-publishing-gmail.png){ width=500 }
    Publishing a message via e-mail
    ## Phone calls _Supported on:_ :material-android: :material-apple: :material-firefox: You can use ntfy to call a phone and **read the message out loud using text-to-speech**. Similar to email notifications, this can be useful to blast-notify yourself on all possible channels, or to notify people that do not have the ntfy app installed on their phone. **Phone numbers have to be previously verified** (via the [web app](https://ntfy.sh/account)), so this feature is **only available to authenticated users** (no anonymous phone calls). To forward a message as a voice call, pass a phone number in the `X-Call` header (or its alias: `Call`), prefixed with a plus sign and the country code, e.g. `+12223334444`. You may also simply pass `yes` as a value to pick the first of your verified phone numbers. On ntfy.sh, this feature is only supported to [ntfy Pro](https://ntfy.sh/app) plans.
    ![phone number verification](static/img/web-phone-verify.png)
    Phone number verification in the web app
    As of today, the text-to-speed voice used will only support English. If there is demand for other languages, we'll be happy to add support for that. Please [open an issue on GitHub](https://github.com/binwiederhier/ntfy/issues). !!! info You are responsible for the message content, and **you must abide by the [Twilio Acceptable Use Policy](https://www.twilio.com/en-us/legal/aup)**. This particularly means that you must not use this feature to send unsolicited messages, or messages that are illegal or violate the rights of others. Please read the policy for details. Failure to do so may result in your account being suspended or terminated. Here's how you use it: === "Command line (curl)" ``` curl \ -u :tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 \ -H "Call: +12223334444" \ -d "Your garage seems to be on fire. You should probably check that out." \ ntfy.sh/alerts ``` === "ntfy CLI" ``` ntfy publish \ --token=tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 \ --call=+12223334444 \ alerts "Your garage seems to be on fire. You should probably check that out." ``` === "HTTP" ``` http POST /alerts HTTP/1.1 Host: ntfy.sh Authorization: Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 Call: +12223334444 Your garage seems to be on fire. You should probably check that out. ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/alerts', { method: 'POST', body: "Your garage seems to be on fire. You should probably check that out.", headers: { 'Authorization': 'Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2', 'Call': '+12223334444' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/alerts", strings.NewReader("Your garage seems to be on fire. You should probably check that out.")) req.Header.Set("Call", "+12223334444") req.Header.Set("Authorization", "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/alerts" Headers = @{ Authorization = "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2" Call = "+12223334444" } Body = "Your garage seems to be on fire. You should probably check that out." } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/alerts", data="Your garage seems to be on fire. You should probably check that out.", headers={ "Authorization": "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", "Call": "+12223334444" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/alerts', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: text/plain\r\n" . "Authorization: Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2\r\n" . "Call: +12223334444", 'content' => 'Your garage seems to be on fire. You should probably check that out.' ] ])); ``` Here's what a phone call from ntfy sounds like: Audio transcript: > You have a notification from ntfy on topic alerts. > Message: Your garage seems to be on fire. You should probably check that out. End message. > This message was sent by user phil. It will be repeated up to three times. ## Authentication Depending on whether the server is configured to support [access control](config.md#access-control), some topics may be read/write protected so that only users with the correct credentials can subscribe or publish to them. To publish/subscribe to protected topics, you can: * Use [username & password](#username-password) via Basic auth, e.g. `Authorization: Basic dGVzdHVzZXI6ZmFrZXBhc3N3b3Jk` * Use [access tokens](#bearer-auth) via Bearer/Basic auth, e.g. `Authorization: Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2` * or use either with the [`auth` query parameter](#query-param), e.g. `?auth=QmFzaWMgZEdWemRIVnpaWEk2Wm1GclpYQmhjM04zYjNKaw` !!! warning When using Basic auth, base64 only encodes username and password. It **is not encrypting it**. For your self-hosted server, **be sure to use HTTPS to avoid eavesdropping** and exposing your password. ### Username + password The simplest way to authenticate against a ntfy server is to use [Basic auth](https://en.wikipedia.org/wiki/Basic_access_authentication). Here's an example with a user `testuser` and password `fakepassword`: === "Command line (curl)" ``` curl \ -u testuser:fakepassword \ -d "Look ma, with auth" \ https://ntfy.example.com/mysecrets ``` === "ntfy CLI" ``` ntfy publish \ -u testuser:fakepassword \ ntfy.example.com/mysecrets \ "Look ma, with auth" ``` === "HTTP" ``` http POST /mysecrets HTTP/1.1 Host: ntfy.example.com Authorization: Basic dGVzdHVzZXI6ZmFrZXBhc3N3b3Jk Look ma, with auth ``` === "JavaScript" ``` javascript fetch('https://ntfy.example.com/mysecrets', { method: 'POST', // PUT works too body: 'Look ma, with auth', headers: { 'Authorization': 'Basic dGVzdHVzZXI6ZmFrZXBhc3N3b3Jk' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.example.com/mysecrets", strings.NewReader("Look ma, with auth")) req.Header.Set("Authorization", "Basic dGVzdHVzZXI6ZmFrZXBhc3N3b3Jk") http.DefaultClient.Do(req) ``` === "PowerShell 7+" ``` powershell # Get the credentials from the user $Credential = Get-Credential testuser # Alternatively, create a PSCredential object with the password from scratch $Credential = [PSCredential]::new("testuser", (ConvertTo-SecureString "password" -AsPlainText -Force)) # Note that the Authentication parameter requires PowerShell 7 or later $Request = @{ Method = "POST" URI = "https://ntfy.example.com/mysecrets" Authentication = "Basic" Credential = $Credential Body = "Look ma, with auth" } Invoke-RestMethod @Request ``` === "PowerShell 5 and earlier" ``` powershell # With PowerShell 5 or earlier, we need to create the base64 username:password string ourselves $CredentialString = "$($Credential.Username):$($Credential.GetNetworkCredential().Password)" $EncodedCredential = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($CredentialString)) $Request = @{ Method = "POST" URI = "https://ntfy.example.com/mysecrets" Headers = @{ Authorization = "Basic $EncodedCredential"} Body = "Look ma, with auth" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.example.com/mysecrets", data="Look ma, with auth", headers={ "Authorization": "Basic dGVzdHVzZXI6ZmFrZXBhc3N3b3Jk" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.example.com/mysecrets', false, stream_context_create([ 'http' => [ 'method' => 'POST', // PUT also works 'header' => 'Content-Type: text/plain\r\n' . 'Authorization: Basic dGVzdHVzZXI6ZmFrZXBhc3N3b3Jk', 'content' => 'Look ma, with auth' ] ])); ``` To generate the `Authorization` header, use **standard base64** to encode the colon-separated `:` and prepend the word `Basic`, i.e. `Authorization: Basic base64(:)`. Here's some pseudo-code that hopefully explains it better: ``` username = "testuser" password = "fakepassword" authHeader = "Basic " + base64(username + ":" + password) // -> Basic dGVzdHVzZXI6ZmFrZXBhc3N3b3Jk ``` The following command will generate the appropriate value for you on *nix systems: ``` echo "Basic $(echo -n 'testuser:fakepassword' | base64)" ``` ### Access tokens In addition to username/password auth, ntfy also provides authentication via access tokens. Access tokens are useful to avoid having to configure your password across multiple publishing/subscribing applications. For instance, you may want to use a dedicated token to publish from your backup host, and one from your home automation system. You can create access tokens using the `ntfy token` command, or in the web app in the "Account" section (when logged in). See [access tokens](config.md#access-tokens) for details. Once an access token is created, you can use it to authenticate against the ntfy server, e.g. when you publish or subscribe to topics. Here's an example using [Bearer auth](https://swagger.io/docs/specification/authentication/bearer-authentication/), with the token `tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2`: === "Command line (curl)" ``` curl \ -H "Authorization: Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2" \ -d "Look ma, with auth" \ https://ntfy.example.com/mysecrets ``` === "ntfy CLI" ``` ntfy publish \ --token tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 \ ntfy.example.com/mysecrets \ "Look ma, with auth" ``` === "HTTP" ``` http POST /mysecrets HTTP/1.1 Host: ntfy.example.com Authorization: Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 Look ma, with auth ``` === "JavaScript" ``` javascript fetch('https://ntfy.example.com/mysecrets', { method: 'POST', // PUT works too body: 'Look ma, with auth', headers: { 'Authorization': 'Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.example.com/mysecrets", strings.NewReader("Look ma, with auth")) req.Header.Set("Authorization", "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2") http.DefaultClient.Do(req) ``` === "PowerShell 7+" ``` powershell # With PowerShell 7 or greater, we can use the Authentication and Token parameters # The Token parameter must be in the form of a System.Security.SecureString $Request = @{ Method = "POST" URI = "https://ntfy.example.com/mysecrets" Authentication = "Bearer" Token = ConvertTo-SecureString "tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2" -AsPlainText Body = "Look ma, with auth" } Invoke-RestMethod @Request ``` === "PowerShell 5 and earlier" ``` powershell # In PowerShell 5 and below, we can only send the Bearer token as a string in the Headers $Request = @{ Method = "POST" URI = "https://ntfy.example.com/mysecrets" Headers = @{ Authorization = "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2" } Body = "Look ma, with auth" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.example.com/mysecrets", data="Look ma, with auth", headers={ "Authorization": "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.example.com/mysecrets', false, stream_context_create([ 'http' => [ 'method' => 'POST', // PUT also works 'header' => 'Content-Type: text/plain\r\n' . 'Authorization: Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2', 'content' => 'Look ma, with auth' ] ])); ``` Alternatively, you can use [Basic Auth](https://en.wikipedia.org/wiki/Basic_access_authentication) to send the access token. When sending an empty username, the basic auth password is treated by the ntfy server as an access token. This is primarily useful to make `curl` calls easier, e.g. `curl -u:tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 ...`: === "Command line (curl)" ``` curl \ -u :tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 \ -d "Look ma, with auth" \ https://ntfy.example.com/mysecrets ``` === "ntfy CLI" ``` ntfy publish \ --token tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 \ ntfy.example.com/mysecrets \ "Look ma, with auth" ``` === "HTTP" ``` http POST /mysecrets HTTP/1.1 Host: ntfy.example.com Authorization: Basic OnRrX0FnUWRxN21WQm9GRDM3elFWTjI5Umh1TXpOSXoy Look ma, with auth ``` === "JavaScript" ``` javascript fetch('https://ntfy.example.com/mysecrets', { method: 'POST', // PUT works too body: 'Look ma, with auth', headers: { 'Authorization': 'Basic OnRrX0FnUWRxN21WQm9GRDM3elFWTjI5Umh1TXpOSXoy' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.example.com/mysecrets", strings.NewReader("Look ma, with auth")) req.Header.Set("Authorization", "Basic OnRrX0FnUWRxN21WQm9GRDM3elFWTjI5Umh1TXpOSXoy") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell # Note that PSCredentials *must* have a username, so we fall back to placing the authorization in the Headers as with PowerShell 5 $Request = @{ Method = "POST" URI = "https://ntfy.example.com/mysecrets" Headers = @{ Authorization = "Basic OnRrX0FnUWRxN21WQm9GRDM3elFWTjI5Umh1TXpOSXoy" } Body = "Look ma, with auth" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.example.com/mysecrets", data="Look ma, with auth", headers={ "Authorization": "Basic OnRrX0FnUWRxN21WQm9GRDM3elFWTjI5Umh1TXpOSXoy" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.example.com/mysecrets', false, stream_context_create([ 'http' => [ 'method' => 'POST', // PUT also works 'header' => 'Content-Type: text/plain\r\n' . 'Authorization: Basic OnRrX0FnUWRxN21WQm9GRDM3elFWTjI5Umh1TXpOSXoy', 'content' => 'Look ma, with auth' ] ])); ``` ### Query param Here's an example using the `auth` query parameter: === "Command line (curl)" ``` curl \ -d "Look ma, with auth" \ "https://ntfy.example.com/mysecrets?auth=QmFzaWMgZEdWemRIVnpaWEk2Wm1GclpYQmhjM04zYjNKaw" ``` === "ntfy CLI" ``` ntfy publish \ -u testuser:fakepassword \ ntfy.example.com/mysecrets \ "Look ma, with auth" ``` === "HTTP" ``` http POST /mysecrets?auth=QmFzaWMgZEdWemRIVnpaWEk2Wm1GclpYQmhjM04zYjNKaw HTTP/1.1 Host: ntfy.example.com Look ma, with auth ``` === "JavaScript" ``` javascript fetch('https://ntfy.example.com/mysecrets?auth=QmFzaWMgZEdWemRIVnpaWEk2Wm1GclpYQmhjM04zYjNKaw', { method: 'POST', // PUT works too body: 'Look ma, with auth' }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.example.com/mysecrets?auth=QmFzaWMgZEdWemRIVnpaWEk2Wm1GclpYQmhjM04zYjNKaw", strings.NewReader("Look ma, with auth")) http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.example.com/mysecrets?auth=QmFzaWMgZEdWemRIVnpaWEk2Wm1GclpYQmhjM04zYjNKaw" Body = "Look ma, with auth" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.example.com/mysecrets?auth=QmFzaWMgZEdWemRIVnpaWEk2Wm1GclpYQmhjM04zYjNKaw", data="Look ma, with auth" ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.example.com/mysecrets?auth=QmFzaWMgZEdWemRIVnpaWEk2Wm1GclpYQmhjM04zYjNKaw', false, stream_context_create([ 'http' => [ 'method' => 'POST', // PUT also works 'header' => 'Content-Type: text/plain', 'content' => 'Look ma, with auth' ] ])); ``` To generate the value of the `auth` parameter, encode the value of the `Authorization` header (see above) using **raw base64 encoding** (like base64, but strip any trailing `=`). Here's some pseudo-code that hopefully explains it better: ``` username = "testuser" password = "fakepassword" authHeader = "Basic " + base64(username + ":" + password) // -> Basic dGVzdHVzZXI6ZmFrZXBhc3N3b3Jk authParam = base64_raw(authHeader) // -> QmFzaWMgZEdWemRIVnpaWEk2Wm1GclpYQmhjM04zYjNKaw (no trailing =) // If your language does not have a function to encode raw base64, simply use normal base64 // and REMOVE TRAILING "=" characters. ``` The following command will generate the appropriate value for you on *nix systems: ``` echo -n "Basic `echo -n 'testuser:fakepassword' | base64`" | base64 | tr -d '=' ``` For access tokens, you can use this instead: ``` echo -n "Bearer faketoken" | base64 | tr -d '=' ``` ## Advanced features ### Message caching !!! info If `Cache: no` is used, messages will only be delivered to connected subscribers, and won't be re-delivered if a client re-connects. If a subscriber has (temporary) network issues or is reconnecting momentarily, **messages might be missed**. By default, the ntfy server caches messages on disk for 12 hours (see [message caching](config.md#message-cache)), so all messages you publish are stored server-side for a little while. The reason for this is to overcome temporary client-side network disruptions, but arguably this feature also may raise privacy concerns. To avoid messages being cached server-side entirely, you can set `X-Cache` header (or its alias: `Cache`) to `no`. This will make sure that your message is not cached on the server, even if server-side caching is enabled. Messages are still delivered to connected subscribers, but [`since=`](subscribe/api.md#fetch-cached-messages) and [`poll=1`](subscribe/api.md#poll-for-messages) won't return the message anymore. === "Command line (curl)" ``` curl -H "X-Cache: no" -d "This message won't be stored server-side" ntfy.sh/mytopic curl -H "Cache: no" -d "This message won't be stored server-side" ntfy.sh/mytopic ``` === "ntfy CLI" ``` ntfy publish \ --no-cache \ mytopic "This message won't be stored server-side" ``` === "HTTP" ``` http POST /mytopic HTTP/1.1 Host: ntfy.sh Cache: no This message won't be stored server-side ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/mytopic', { method: 'POST', body: 'This message won't be stored server-side', headers: { 'Cache': 'no' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/mytopic", strings.NewReader("This message won't be stored server-side")) req.Header.Set("Cache", "no") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/mytopic" Headers = @{ Cache="no" } Body = "This message won't be stored server-side" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/mytopic", data="This message won't be stored server-side", headers={ "Cache": "no" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/mytopic', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: text/plain\r\n" . "Cache: no", 'content' => 'This message won't be stored server-side' ] ])); ``` ### Disable Firebase !!! info If `Firebase: no` is used and [instant delivery](subscribe/phone.md#instant-delivery) isn't enabled in the Android app (Google Play variant only), **message delivery will be significantly delayed (up to 15 minutes)**. To overcome this delay, simply enable instant delivery. The ntfy server can be configured to use [Firebase Cloud Messaging (FCM)](https://firebase.google.com/docs/cloud-messaging) (see [Firebase config](config.md#firebase-fcm)) for message delivery on Android (to minimize the app's battery footprint). The ntfy.sh server is configured this way, meaning that all messages published to ntfy.sh are also published to corresponding FCM topics. If you'd like to avoid forwarding messages to Firebase, you can set the `X-Firebase` header (or its alias: `Firebase`) to `no`. This will instruct the server not to forward messages to Firebase. === "Command line (curl)" ``` curl -H "X-Firebase: no" -d "This message won't be forwarded to FCM" ntfy.sh/mytopic curl -H "Firebase: no" -d "This message won't be forwarded to FCM" ntfy.sh/mytopic ``` === "ntfy CLI" ``` ntfy publish \ --no-firebase \ mytopic "This message won't be forwarded to FCM" ``` === "HTTP" ``` http POST /mytopic HTTP/1.1 Host: ntfy.sh Firebase: no This message won't be forwarded to FCM ``` === "JavaScript" ``` javascript fetch('https://ntfy.sh/mytopic', { method: 'POST', body: 'This message won't be forwarded to FCM', headers: { 'Firebase': 'no' } }) ``` === "Go" ``` go req, _ := http.NewRequest("POST", "https://ntfy.sh/mytopic", strings.NewReader("This message won't be forwarded to FCM")) req.Header.Set("Firebase", "no") http.DefaultClient.Do(req) ``` === "PowerShell" ``` powershell $Request = @{ Method = "POST" URI = "https://ntfy.sh/mytopic" Headers = @{ Firebase="no" } Body = "This message won't be forwarded to FCM" } Invoke-RestMethod @Request ``` === "Python" ``` python requests.post("https://ntfy.sh/mytopic", data="This message won't be forwarded to FCM", headers={ "Firebase": "no" }) ``` === "PHP" ``` php-inline file_get_contents('https://ntfy.sh/mytopic', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: text/plain\r\n" . "Firebase: no", 'content' => 'This message won't be stored server-side' ] ])); ``` ### UnifiedPush !!! info This setting is not relevant to users, only to app developers and people interested in [UnifiedPush](https://unifiedpush.org). [UnifiedPush](https://unifiedpush.org) is a standard for receiving push notifications without using the Google-owned [Firebase Cloud Messaging (FCM)](https://firebase.google.com/docs/cloud-messaging) service. It puts push notifications in the control of the user. ntfy can act as a **UnifiedPush distributor**, forwarding messages to apps that support it. When publishing messages to a topic, apps using ntfy as a UnifiedPush distributor can set the `X-UnifiedPush` header or query parameter (or any of its aliases `unifiedpush` or `up`) to `1` to [disable Firebase](#disable-firebase). As of today, this option is mostly equivalent to `Firebase: no`, but was introduced to allow future flexibility. The flag additionally enables auto-detection of the message encoding. If the message is binary, it'll be encoded as base64. ### Matrix Gateway The ntfy server implements a [Matrix Push Gateway](https://spec.matrix.org/v1.2/push-gateway-api/) (in combination with [UnifiedPush](https://unifiedpush.org) as the [Provider Push Protocol](https://unifiedpush.org/developers/gateway/)). This makes it easier to integrate with self-hosted [Matrix](https://matrix.org/) servers (such as [synapse](https://github.com/matrix-org/synapse)), since you don't have to set up a separate push proxy (such as [common-proxies](https://github.com/UnifiedPush/common-proxies)). In short, ntfy accepts Matrix messages on the `/_matrix/push/v1/notify` endpoint (see [Push Gateway API](https://spec.matrix.org/v1.2/push-gateway-api/)), and forwards them to the ntfy topic defined in the `pushkey` of the message. The message will then be forwarded to the ntfy Android app, and passed on to the Matrix client there. There is a nice diagram in the [Push Gateway docs](https://spec.matrix.org/v1.2/push-gateway-api/). In this diagram, the ntfy server plays the role of the Push Gateway, as well as the Push Provider. UnifiedPush is the Provider Push Protocol. !!! info This is not a generic Matrix Push Gateway. It only works in combination with UnifiedPush and ntfy. ## Public topics Obviously all topics on ntfy.sh are public, but there are a few designated topics that are used in examples, and topics that you can use to try out what [authentication and access control](#authentication) looks like. | Topic | User | Permissions | Description | |------------------------------------------------|-----------------------------------|------------------------------------------------------|--------------------------------------| | [announcements](https://ntfy.sh/announcements) | `*` (unauthenticated) | Read-only for everyone | Release announcements and such | | [stats](https://ntfy.sh/stats) | `*` (unauthenticated) | Read-only for everyone | Daily statistics about ntfy.sh usage | ## Limitations There are a few limitations to the API to prevent abuse and to keep the server healthy. Almost all of these settings are configurable via the server side [rate limiting settings](config.md#rate-limiting). Most of these limits you won't run into, but just in case, let's list them all: | Limit | Description | |----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **Message length** | Each message can be up to 4,096 bytes long. Longer messages are treated as [attachments](#attachments). | | **Requests** | By default, the server is configured to allow 60 requests per visitor at once, and then refills the your allowed requests bucket at a rate of one request per 5 seconds. | | **Daily messages** | By default, the number of messages is governed by the request limits. This can be overridden. On ntfy.sh, the daily message limit is 250. | | **E-mails** | By default, the server is configured to allow sending 16 e-mails per visitor at once, and then refills the your allowed e-mail bucket at a rate of one per hour. On ntfy.sh, the daily limit is 5. | | **Phone calls** | By default, the server does not allow any phone calls, except for users with a tier that has a call limit. | | **Subscription limit** | By default, the server allows each visitor to keep 30 connections to the server open. | | **Attachment size limit** | By default, the server allows attachments up to 15 MB in size, up to 100 MB in total per visitor and up to 5 GB across all visitors. On ntfy.sh, the attachment size limit is 2 MB, and the per-visitor total is 20 MB. | | **Attachment expiry** | By default, the server deletes attachments after 3 hours and thereby frees up space from the total visitor attachment limit. | | **Attachment bandwidth** | By default, the server allows 500 MB of GET/PUT/POST traffic for attachments per visitor in a 24 hour period. Traffic exceeding that is rejected. On ntfy.sh, the daily bandwidth limit is 200 MB. | | **Total number of topics** | By default, the server is configured to allow 15,000 topics. The ntfy.sh server has higher limits though. | These limits can be changed on a per-user basis using [tiers](config.md#tiers). If [payments](config.md#payments) are enabled, a user tier can be changed by purchasing a higher tier. ntfy.sh offers multiple paid tiers, which allows for much hier limits than the ones listed above. ## List of all parameters The following is a list of all parameters that can be passed when publishing a message. Parameter names are **case-insensitive** when used in **HTTP headers**, and must be **lowercase** when used as **query parameters in the URL**. They are listed in the table in their canonical form. !!! info ntfy supports UTF-8 in HTTP headers, but [not every library or programming language does](https://www.jmix.io/blog/utf-8-in-http-headers/). If non-ASCII characters are causing issues for you in the title (i.e. you're seeing `?` symbols), you may also encode any header as [RFC 2047](https://datatracker.ietf.org/doc/html/rfc2047#section-2), e.g. `=?UTF-8?B?8J+HqfCfh6o=?=` ([base64](https://en.wikipedia.org/wiki/Base64)), or `=?UTF-8?Q?=C3=84pfel?=` ([quoted-printable](https://en.wikipedia.org/wiki/Quoted-printable)). | Parameter | Aliases | Description | |-----------------|--------------------------------------------|-----------------------------------------------------------------------------------------------| | `X-Message` | `Message`, `m` | Main body of the message as shown in the notification | | `X-Title` | `Title`, `t` | [Message title](#message-title) | | `X-Priority` | `Priority`, `prio`, `p` | [Message priority](#message-priority) | | `X-Tags` | `Tags`, `Tag`, `ta` | [Tags and emojis](#tags-emojis) | | `X-Delay` | `Delay`, `X-At`, `At`, `X-In`, `In` | Timestamp or duration for [delayed delivery](#scheduled-delivery) | | `X-Actions` | `Actions`, `Action` | JSON array or short format of [user actions](#action-buttons) | | `X-Click` | `Click` | URL to open when [notification is clicked](#click-action) | | `X-Attach` | `Attach`, `a` | URL to send as an [attachment](#attachments), as an alternative to PUT/POST-ing an attachment | | `X-Markdown` | `Markdown`, `md` | Enable [Markdown formatting](#markdown-formatting) in the notification body | | `X-Icon` | `Icon` | URL to use as notification [icon](#icons) | | `X-Filename` | `Filename`, `file`, `f` | Optional [attachment](#attachments) filename, as it appears in the client | | `X-Email` | `X-E-Mail`, `Email`, `E-Mail`, `mail`, `e` | E-mail address for [e-mail notifications](#e-mail-notifications) | | `X-Call` | `Call` | Phone number for [phone calls](#phone-calls) | | `X-Cache` | `Cache` | Allows disabling [message caching](#message-caching) | | `X-Firebase` | `Firebase` | Allows disabling [sending to Firebase](#disable-firebase) | | `X-UnifiedPush` | `UnifiedPush`, `up` | [UnifiedPush](#unifiedpush) publish option, only to be used by UnifiedPush apps | | `X-Poll-ID` | `Poll-ID` | Internal parameter, used for [iOS push notifications](config.md#ios-instant-notifications) | | `Authorization` | - | If supported by the server, you can [login to access](#authentication) protected topics | | `Content-Type` | - | If set to `text/markdown`, [Markdown formatting](#markdown-formatting) is enabled | ntfy-2.11.0/docs/releases.md000066400000000000000000002560561462047176100156560ustar00rootroot00000000000000# Release notes Binaries for all releases can be found on the GitHub releases pages for the [ntfy server](https://github.com/binwiederhier/ntfy/releases) and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/releases). ### ntfy server v2.11.0 Released May 13, 2024 This is a tiny release that fixes a database index issue that caused performance issues on ntfy.sh. It also fixes a bug in the rate visitor logic that caused rate visitors to be assigned to seemingly random topics. Nothing major this time. ❤️ Quick reminder that if you like ntfy, **please consider sponsoring us** via [GitHub Sponsors](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/), or buying a [paid plan via the web app](https://ntfy.sh/app). ntfy will always remain open source. **Bug fixes + maintenance:** * Re-add database index `idx_topic` to the `messages` table to fix performance issues on ntfy.sh (no ticket, big thanks to [@tcaputi](https://github.com/tcaputi) for finding this issue) * Do not set rate visitor for non-eligible topics (no ticket) * Do not cache `config.js` ([#1098](https://github.com/binwiederhier/ntfy/pull/1098), thanks to [@wunter8](https://github.com/wunter8)) ### ntfy server v2.10.0 Released Mar 27, 2024 This release adds support for **message templating** in the ntfy server, which allows you to include a message and/or title template that will be filled with values from a JSON body (e.g. `curl -gd '{"alert":"Disk space low"}' "ntfy.sh/mytopic?tpl=1&m={{.alert}}"`). This is great for services that let you specify a webhook URL but do not let you change the webhook body (such as GitHub, or Grafana). **Features:** * [Message templating](publish.md#message-templating): You can now include a message and/or title template that will be filled with values from a JSON body ([#724](https://github.com/binwiederhier/ntfy/issues/724), thanks to [@wunter8](https://github.com/wunter8) for implementing) ### ntfy server v2.9.0 Released Mar 7, 2024 A small release after a long pause (lots of day job work). This release adds for **larger messages** and **longer message delays** in scheduled delivery messages. The web app also now supports pasting images from the clipboard. Other than that, only a few bug fixes and documentation updates, and a teeny tiny breaking change 😬. !!! info ⚠️ **Breaking change**: The `Rate-Topics` header was removed due to a [DoS issue](https://github.com/binwiederhier/ntfy/issues/1048). This only affects installations with `visitor-subscriber-rate-limiting: true`, which is not the default and likely very rarely used. Normally I'd never remove a feature, but this is a security issue, and likely affects almost nobody. **Features:** * Support for larger message delays with `message-delay-limit` (see [message limits](config.md#message-limits), [#1050](https://github.com/binwiederhier/ntfy/pull/1050)/[#1019](https://github.com/binwiederhier/ntfy/issues/1019), thanks to [@MrChadMWood](https://github.com/MrChadMWood) for reporting) * Support for larger message body sizes with `message-size-limit` (use at your own risk, see [message limits](config.md#message-limits), [#836](https://github.com/binwiederhier/ntfy/pull/836)/[#1050](https://github.com/binwiederhier/ntfy/pull/1050), thanks to [@zhzy0077](https://github.com/zhzy0077) for implementing this, and to [@nkjshlsqja7331](https://github.com/nkjshlsqja7331) for reporting) * Web app: You can now paste images into the message bar or publish dialog ([#963](https://github.com/binwiederhier/ntfy/pull/963)/[#572](https://github.com/binwiederhier/ntfy/issues/572), thanks to [@cmj2002](https://github.com/cmj2002) for implementing, and [@rounakdatta](https://github.com/rounakdatta) for reporting) **Bug fixes + maintenance:** * ⚠️ Remove `Rate-Topics` header due to DoS security issue if `visitor-subscriber-rate-limiting: true` ([#1048](https://github.com/binwiederhier/ntfy/issues/1048)) **Documentation:** * Remove `mkdocs-simple-hooks` ([#1016](https://github.com/binwiederhier/ntfy/pull/1016), thanks to [@Tom-Hubrecht](https://github.com/Tom-Hubrecht)) * Update Watchtower example ([#1014](https://github.com/binwiederhier/ntfy/pull/1014), thanks to [@lennart-m](https://github.com/lennart-m)) * Fix dead links ([#1022](https://github.com/binwiederhier/ntfy/pull/1022), thanks to [@DerRockWolf](https://github.com/DerRockWolf)) * PowerShell file upload example ([#1004](https://github.com/binwiederhier/ntfy/pull/1004), thanks to [@YMan84](https://github.com/YMan84)) ## ntfy iOS app v1.3 Released Nov 26, 2023 This release (hopefully) fixes the issues with the iOS UI not updating properly when new notifications arrive, as well as notifications not being received (anymore) after previously working. Both issues have been annoying and known bugs for a long time, and I hope that they are finally fixed. Many thanks to [@tcaputi](https://github.com/tcaputi) for fixing the issues, and to the anonymous donor for sponsoring these fixes. **Bug fixes:** * UI not updating properly ([#267](https://github.com/binwiederhier/ntfy/issues/267)/[#402](https://github.com/binwiederhier/ntfy/issues/402), thanks to [@tcaputi](https://github.com/tcaputi)) ## ntfy server v2.8.0 Released November 19, 2023 This release brings a handful of random bug fixes: two unrelated access control list fixes, a fix around web app crashes for languages with underscores in the language code (e.g. `zh_Hant`, `zh_Hans`, `pt_BR`, ...), a workaround for the `Priority` header (often used in Cloudflare setups), and support among others support for HTML-only emails (finally), web app crash fixes **Bug fixes + maintenance:** * Support for HTML-only emails ([#690](https://github.com/binwiederhier/ntfy/issues/690)/[#693](https://github.com/binwiederhier/ntfy/pull/693), thanks to [@teastrainer](https://github.com/teastrainer) and [@CrazyWolf13](https://github.com/CrazyWolf13) for reporting) * Fix ACL issue with topic patterns containing underscores ([#840](https://github.com/binwiederhier/ntfy/issues/840), thanks to [@Joe-0237](https://github.com/Joe-0237) for reporting) * Fix ACL issue with order of read/write rules ([#914](https://github.com/binwiederhier/ntfy/issues/914)/[#917](https://github.com/binwiederhier/ntfy/pull/917), thanks to [@sandman7920](https://github.com/sandman7920)) * Re-add `tzdata` to Docker images for amd64 image ([#894](https://github.com/binwiederhier/ntfy/issues/894), [#307](https://github.com/binwiederhier/ntfy/pull/307)) * Add special logic to ignore `Priority` header if it resembles an RFC 9218 value ([#851](https://github.com/binwiederhier/ntfy/pull/851)/[#895](https://github.com/binwiederhier/ntfy/pull/895), thanks to [@gusdleon](https://github.com/gusdleon), see also [#351](https://github.com/binwiederhier/ntfy/issues/351), [#353](https://github.com/binwiederhier/ntfy/issues/353), [#461](https://github.com/binwiederhier/ntfy/issues/461)) * PWA: hide install prompt on macOS 14 Safari ([#899](https://github.com/binwiederhier/ntfy/pull/899), thanks to [@nihalgonsalves](https://github.com/nihalgonsalves)) * Fix web app crash in Edge for languages with underline in locale ([#922](https://github.com/binwiederhier/ntfy/pull/922)/[#912](https://github.com/binwiederhier/ntfy/issues/912)/[#852](https://github.com/binwiederhier/ntfy/issues/852), thanks to [@imkero](https://github.com/imkero)) **Additional languages:** * Finnish (thanks to [@Seppo](https://hosted.weblate.org/user/Seppo/)) ## ntfy server v2.7.0 Released August 17, 2023 This release ships Markdown support for the web app (not in the Android app yet), and adds support for right-to-left languages (RTL) in the web app. It also fixes a few issues around date/time formatting, internationalization support, a CLI auth bug. Furthermore, it fixes a security issue around access tokens getting erroneously deleted for other users in a specific scenario. This was a denial-of-service-type security issue, since it **effectively allowed a single user to deny access to all other users of a ntfy instance**. Please note that while tokens were erroneously deleted, **nobody but the token owner ever had access to it.** Please refer to [the ticket](https://github.com/binwiederhier/ntfy/issues/838) for details. **Please upgrade your ntfy instance if you run a multi-user system.** **Features:** * Add support for [Markdown formatting](publish.md#markdown-formatting) in web app ([#310](https://github.com/binwiederhier/ntfy/issues/310), thanks to [@nihalgonsalves](https://github.com/nihalgonsalves)) * Add support for right-to-left languages (RTL) in the web app ([#663](https://github.com/binwiederhier/ntfy/issues/663), thanks to [@nimbleghost](https://github.com/nimbleghost)) **Security:** ⚠️ * Fixes issue with access tokens getting deleted ([#838](https://github.com/binwiederhier/ntfy/issues/838)) **Bug fixes + maintenance:** * Fix issues with date/time with different locales ([#700](https://github.com/binwiederhier/ntfy/issues/700), thanks to [@nimbleghost](https://github.com/nimbleghost)) * Re-init i18n on each service worker message to avoid missing translations ([#817](https://github.com/binwiederhier/ntfy/pull/817), thanks to [@nihalgonsalves](https://github.com/nihalgonsalves)) * You can now unset the default user:pass/token in `client.yml` for an individual subscription to remove the Authorization header ([#829](https://github.com/binwiederhier/ntfy/issues/829), thanks to [@tomeon](https://github.com/tomeon) for reporting and to [@wunter8](https://github.com/wunter8) for fixing) **Documentation:** * Update docs for Apache config ([#819](https://github.com/binwiederhier/ntfy/pull/819), thanks to [@nisbet-hubbard](https://github.com/nisbet-hubbard)) ## ntfy server v2.6.2 Released June 30, 2023 With this release, the ntfy web app now contains a **[progressive web app](subscribe/pwa.md) (PWA) with Web Push support**, which means you'll be able to **install the ntfy web app on your desktop or phone** similar to a native app (__even on iOS!__ 🥳). Installing the PWA gives ntfy web its own launcher, a standalone window, push notifications, and an app badge with the unread notification count. Note that for self-hosted servers, [Web Push](config.md#web-push) must be configured. On top of that, this release also brings **dark mode** 🧛🌙 to the web app. 🙏 A huge thanks for this release goes to [@nimbleghost](https://github.com/nimbleghost), for basically implementing the Web Push / PWA and dark mode feature by himself. I'm really grateful for your contributions. ❤️ If you like ntfy, **please consider sponsoring us** via [GitHub Sponsors](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/), or buying a [paid plan via the web app](https://ntfy.sh/app) (20% off if you use promo code `MYTOPIC`). ntfy will always remain open source. **Features:** * The web app now supports Web Push, and is installable as a [progressive web app (PWA)](https://docs.ntfy.sh/subscribe/pwa/) on Chrome, Edge, Android, and iOS ([#751](https://github.com/binwiederhier/ntfy/pull/751), thanks to [@nimbleghost](https://github.com/nimbleghost)) * Support for dark mode in the web app ([#206](https://github.com/binwiederhier/ntfy/issues/206), thanks to [@nimbleghost](https://github.com/nimbleghost)) **Bug fixes:** * Support encoding any header as RFC 2047 ([#737](https://github.com/binwiederhier/ntfy/issues/737), thanks to [@cfouche3005](https://github.com/cfouche3005) for reporting) * Do not forward poll requests for UnifiedPush messages (no ticket, thanks to NoName for reporting) * Fix `ntfy pub %` segfaulting ([#760](https://github.com/binwiederhier/ntfy/issues/760), thanks to [@clesmian](https://github.com/clesmian) for reporting) * Newly created access tokens are now lowercase only to fully support `+@` email syntax ([#773](https://github.com/binwiederhier/ntfy/issues/773), thanks to gingervitiz for reporting) * The .1 release fixes a few visual issues with dark mode, and other web app updates ([#791](https://github.com/binwiederhier/ntfy/pull/791), [#793](https://github.com/binwiederhier/ntfy/pull/793), [#792](https://github.com/binwiederhier/ntfy/pull/792), thanks to [@nimbleghost](https://github.com/nimbleghost)) * The .2 release fixes issues with the service worker in Firefox and adds automatic service worker updates ([#795](https://github.com/binwiederhier/ntfy/pull/795), thanks to [@nimbleghost](https://github.com/nimbleghost)) **Maintenance:** * Improved GitHub Actions flow ([#745](https://github.com/binwiederhier/ntfy/pull/745), thanks to [@nimbleghost](https://github.com/nimbleghost)) * Web: Add JS formatter "prettier" ([#746](https://github.com/binwiederhier/ntfy/pull/746), thanks to [@nimbleghost](https://github.com/nimbleghost)) * Web: Add eslint with eslint-config-airbnb ([#748](https://github.com/binwiederhier/ntfy/pull/748), thanks to [@nimbleghost](https://github.com/nimbleghost)) * Web: Switch to Vite ([#749](https://github.com/binwiederhier/ntfy/pull/749), thanks to [@nimbleghost](https://github.com/nimbleghost)) **Changes in tarball/zip naming:** Due to a [change in GoReleaser](https://goreleaser.com/deprecations/#archivesreplacements), some of the binary release archives now have slightly different names. My apologies if this causes issues in the downstream projects that use ntfy: - `ntfy_v${VERSION}_windows_x86_64.zip` -> `ntfy_v${VERSION}_windows_amd64.zip` - `ntfy_v${VERSION}_linux_x86_64.tar.gz` -> `ntfy_v${VERSION}_linux_amd64.tar.gz` - `ntfy_v${VERSION}_macOS_all.tar.gz` -> `ntfy_v${VERSION}_darwin_all.tar.gz` ## ntfy server v2.5.0 Released May 18, 2023 This release brings a number of new features, including support for text-to-speech style [phone calls](publish.md#phone-calls), an admin API to manage users and ACL (currently in beta, and hence undocumented), and support for authorized access to upstream servers via the `upstream-access-token` config option. ❤️ If you like ntfy, **please consider sponsoring me** via [GitHub Sponsors](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/), or by buying a [paid plan via the web app](https://ntfy.sh/app) (20% off if you use promo code `MYTOPIC`). ntfy will always remain open source. **Features:** * Support for text-to-speech style [phone calls](publish.md#phone-calls) using the `X-Call` header (no ticket) * Admin API to manage users and ACL, `v1/users` + `v1/users/access` (intentionally undocumented as of now, [#722](https://github.com/binwiederhier/ntfy/issues/722), thanks to [@CreativeWarlock](https://github.com/CreativeWarlock) for sponsoring this ticket) * Added `upstream-access-token` config option to allow authorized access to upstream servers (no ticket) **Bug fixes + maintenance:** * Removed old ntfy website from ntfy entirely (no ticket) * Make emoji lookup for emails more efficient ([#725](https://github.com/binwiederhier/ntfy/pull/725), thanks to [@adamantike](https://github.com/adamantike)) * Fix potential subscriber ID clash ([#712](https://github.com/binwiederhier/ntfy/issues/712), thanks to [@peterbourgon](https://github.com/peterbourgon) for reporting, and [@dropdevrahul](https://github.com/dropdevrahul) for fixing) * Support for `quoted-printable` in incoming emails ([#719](https://github.com/binwiederhier/ntfy/pull/719), thanks to [@Aerion](https://github.com/Aerion)) * Attachments with filenames that are downloaded using a browser will now download with the proper filename ([#726](https://github.com/binwiederhier/ntfy/issues/726), thanks to [@un99known99](https://github.com/un99known99) for reporting, and [@wunter8](https://github.com/wunter8) for fixing) * Fix web app i18n issue in account preferences ([#730](https://github.com/binwiederhier/ntfy/issues/730), thanks to [@codebude](https://github.com/codebude) for reporting) ## ntfy server v2.4.0 Released Apr 26, 2023 This release adds a tiny `v1/stats` endpoint to expose how many messages have been published, and adds support to encode the `X-Title`, `X-Message` and `X-Tags` header as RFC 2047. It's a pretty small release, and mainly enables the release of the new ntfy.sh website. ❤️ If you like ntfy, **please consider sponsoring me** via [GitHub Sponsors](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/), or by buying a [paid plan via the web app](https://ntfy.sh/app). ntfy will always remain open source. **Features:** * [ntfy CLI](subscribe/cli.md) (`ntfy publish` and `ntfy subscribe` only) can now be installed via Homebrew (thanks to [@Moulick](https://github.com/Moulick)) * Added `v1/stats` endpoint to expose messages stats (no ticket) * Support [RFC 2047](https://datatracker.ietf.org/doc/html/rfc2047#section-2) encoded headers (no ticket, honorable mention to [mqttwarn](https://github.com/jpmens/mqttwarn/pull/638) and [@amotl](https://github.com/amotl)) **Bug fixes + maintenance:** * Hide country flags on Windows ([#606](https://github.com/binwiederhier/ntfy/issues/606), thanks to [@cmeis](https://github.com/cmeis) for reporting, and to [@pokej6](https://github.com/pokej6) for fixing it) * `ntfy sub` now uses default auth credentials as defined in `client.yml` ([#698](https://github.com/binwiederhier/ntfy/issues/698), thanks to [@CrimsonFez](https://github.com/CrimsonFez) for reporting, and to [@wunter8](https://github.com/wunter8) for fixing it) **Documentation:** * Updated PowerShell examples ([#697](https://github.com/binwiederhier/ntfy/pull/697), thanks to [@Natfan](https://github.com/Natfan)) **Additional languages:** * Swedish (thanks to [@hellbown](https://hosted.weblate.org/user/Shjosan/)) ## ntfy server v2.3.1 Released March 30, 2023 This release disables server-initiated polling of iOS devices entirely, thereby eliminating the thundering herd problem on ntfy.sh that we observe every 20 minutes. The polling was never strictly necessary, and has actually caused duplicate delivery issues as well, so disabling it should not have any negative effects. iOS users, please reach out via Discord or Matrix if there are issues. **Bug fixes + maintenance:** * Disable iOS polling entirely ([#677](https://github.com/binwiederhier/ntfy/issues/677)/[#509](https://github.com/binwiederhier/ntfy/issues/509)) ## ntfy server v2.3.0 Released March 29, 2023 This release primarily fixes an issue with delayed messages, and it adds support for Go's profiler (if enabled), which will allow investigating usage spikes in more detail. There will likely be a follow-up release this week to fix the actual spikes [caused by iOS devices](https://github.com/binwiederhier/ntfy/issues/677). **Features:** * ntfy now supports Go's `pprof` profiler, if enabled (relates to [#677](https://github.com/binwiederhier/ntfy/issues/677)) **Bug fixes + maintenance:** * Fix delayed message sending from authenticated users ([#679](https://github.com/binwiederhier/ntfy/issues/679)) * Fixed plural for Polish and other translations ([#678](https://github.com/binwiederhier/ntfy/pull/678), thanks to [@bmoczulski](https://github.com/bmoczulski)) ## ntfy server v2.2.0 Released March 17, 2023 With this release, ntfy is now able to expose metrics via a `/metrics` endpoint for [Prometheus](https://prometheus.io/), if enabled. The endpoint exposes about 20 different counters and gauges, from the number of published messages and emails, to active subscribers, visitors and topics. If you'd like more metrics, pop in the Discord/Matrix or file an issue on GitHub. On top of this, you can now use access tokens in the ntfy CLI (defined in the `client.yml` file), fixed a bug in `ntfy subscribe`, removed the dependency on Google Fonts, and more. 🔥 Reminder: Purchase one of three **ntfy Pro plans** for **50% off** for a limited time (if you use promo code `MYTOPIC`). ntfy Pro gives you higher rate limits and lets you reserve topic names. [Buy through web app](https://ntfy.sh/app). ❤️ If you don't need ntfy Pro, please consider sponsoring ntfy via [GitHub Sponsors](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/). ntfy will stay open source forever. **Features:** * Monitoring: ntfy now exposes a `/metrics` endpoint for [Prometheus](https://prometheus.io/) if [configured](config.md#monitoring) ([#210](https://github.com/binwiederhier/ntfy/issues/210), thanks to [@rogeliodh](https://github.com/rogeliodh) for reporting) * You can now use tokens in `client.yml` for publishing and subscribing ([#653](https://github.com/binwiederhier/ntfy/issues/653), thanks to [@wunter8](https://github.com/wunter8)) **Bug fixes + maintenance:** * `ntfy sub --poll --from-config` will now include authentication headers from client.yml (if applicable) ([#658](https://github.com/binwiederhier/ntfy/issues/658), thanks to [@wunter8](https://github.com/wunter8)) * Docs: Removed dependency on Google Fonts in docs ([#554](https://github.com/binwiederhier/ntfy/issues/554), thanks to [@bt90](https://github.com/bt90) for reporting, and [@ozskywalker](https://github.com/ozskywalker) for implementing) * Increase allowed auth failure attempts per IP address to 30 (no ticket) * Web app: Increase maximum incremental backoff retry interval to 2 minutes (no ticket) **Documentation:** * Make query parameter description more clear ([#630](https://github.com/binwiederhier/ntfy/issues/630), thanks to [@bbaa-bbaa](https://github.com/bbaa-bbaa) for reporting, and to [@wunter8](https://github.com/wunter8) for a fix) ## ntfy server v2.1.2 Released March 4, 2023 This is a hotfix release, mostly to combat the ridiculous amount of Matrix requests with invalid/dead pushkeys, and the corresponding HTTP 507 responses the ntfy.sh server is sending out. We're up to >600k HTTP 507 responses per day 🤦. This release solves this issue by rejecting Matrix pushkeys, if nobody has subscribed to the corresponding topic for 12 hours. The release furthermore reverts the default rate limiting behavior for UnifiedPush to be publisher-based, and introduces a flag to enable [subscriber-based rate limiting](config.md#subscriber-based-rate-limiting) for high volume servers. **Features:** * Support SMTP servers without auth ([#645](https://github.com/binwiederhier/ntfy/issues/645), thanks to [@Sharknoon](https://github.com/Sharknoon) for reporting) **Bug fixes + maintenance:** * Token auth doesn't work if default user credentials are defined in `client.yml` ([#650](https://github.com/binwiederhier/ntfy/issues/650), thanks to [@Xinayder](https://github.com/Xinayder)) * Add `visitor-subscriber-rate-limiting` flag to allow enabling [subscriber-based rate limiting](config.md#subscriber-based-rate-limiting) (off by default now, [#649](https://github.com/binwiederhier/ntfy/issues/649)/[#655](https://github.com/binwiederhier/ntfy/pull/655), thanks to [@barathrm](https://github.com/barathrm) for reporting, and to [@karmanyaahm](https://github.com/karmanyaahm) and [@p1gp1g](https://github.com/p1gp1g) for help with the design) * Reject Matrix pushkey after 12 hours of inactivity on a topic, if `visitor-subscriber-rate-limiting` is enabled ([#643](https://github.com/binwiederhier/ntfy/pull/643), thanks to [@karmanyaahm](https://github.com/karmanyaahm) and [@p1gp1g](https://github.com/p1gp1g) for help with the design) **Additional languages:** * Danish (thanks to [@Andersbiha](https://hosted.weblate.org/user/Andersbiha/)) ## ntfy server v2.1.1 Released March 1, 2023 This is a tiny release with a few bug fixes, but it's big for me personally. After almost three months of work, **today I am finally launching the paid plans on ntfy.sh** 🥳 🎉. You are now able to purchase one of three plans that'll give you **higher rate limits** (messages, emails, attachment sizes, ...), as well as the ability to **reserve topic names** for your personal use, while at the same time supporting me and the ntfy open source project ❤️. You can check out the pricing, and [purchase plans through the web app](https://ntfy.sh/app) (use promo code `MYTOPIC` for a **50% discount**, limited time only). And as I've said many times: Do not worry. **ntfy will always stay open source**, and that includes all features. There are no closed-source features. So if you'd like to run your own server, you can! **Bug fixes + maintenance:** * Fix panic when using Firebase without users ([#641](https://github.com/binwiederhier/ntfy/issues/641), thanks to [u/heavybell](https://www.reddit.com/user/heavybell/) for reporting) * Remove health check from `Dockerfile` and [document it](config.md#health-checks) ([#635](https://github.com/binwiederhier/ntfy/issues/635), thanks to [@Andersbiha](https://github.com/Andersbiha)) * Upgrade dialog: Disable submit button for free tier (no ticket) * Allow multiple `log-level-overrides` on the same field (no ticket) * Actually remove `ntfy publish --env-topic` flag (as per [deprecations](deprecations.md), no ticket) * Added `billing-contact` config option (no ticket) ## ntfy server v2.1.0 Released February 25, 2023 This release changes the way UnifiedPush (UP) topics are rate limited from publisher-based rate limiting to subscriber-based rate limiting. This allows UP application servers to send higher volumes, since the subscribers carry the rate limits. However, it also means that UP clients have to subscribe to a topic first before they are allowed to publish. If they do no, clients will receive an HTTP 507 response from the server. We also fixed another issue with UnifiedPush: Some Mastodon servers were sending unsupported `Authorization` headers, which ntfy rejected with an HTTP 401. We now ignore unsupported header values. As of this release, ntfy also supports sending emails to protected topics, and it ships code to support annual billing cycles (not live yet). As part of this release, I also enabled sign-up and login (free accounts only), and I also started reducing the rate limits for anonymous & free users a bit. With the next release and the launch of the paid plan, I'll reduce the limits a bit more. For 90% of users, you should not feel the difference. **Features:** * UnifiedPush: Subscriber-based rate limiting for `up*` topics ([#584](https://github.com/binwiederhier/ntfy/pull/584)/[#609](https://github.com/binwiederhier/ntfy/pull/609)/[#633](https://github.com/binwiederhier/ntfy/pull/633), thanks to [@karmanyaahm](https://github.com/karmanyaahm)) * Support for publishing to protected topics via email with access tokens ([#612](https://github.com/binwiederhier/ntfy/pull/621), thanks to [@tamcore](https://github.com/tamcore)) * Support for base64-encoded and nested multipart emails ([#610](https://github.com/binwiederhier/ntfy/issues/610), thanks to [@Robert-litts](https://github.com/Robert-litts)) * Payments: Add support for annual billing intervals (no ticket) **Bug fixes + maintenance:** * Web: Do not disable "Reserve topic" checkbox for admins (no ticket, thanks to @xenrox for reporting) * UnifiedPush: Treat non-Basic/Bearer `Authorization` header like header was not sent ([#629](https://github.com/binwiederhier/ntfy/issues/629), thanks to [@Boebbele](https://github.com/Boebbele) and [@S1m](https://github.com/S1m) for reporting) **Documentation:** * Added example for [Traccar](https://ntfy.sh/docs/examples/#traccar) ([#631](https://github.com/binwiederhier/ntfy/pull/631), thanks to [tamcore](https://github.com/tamcore)) **Additional languages:** * Arabic (thanks to [@ButterflyOfFire](https://hosted.weblate.org/user/ButterflyOfFire/)) ## ntfy server v2.0.1 Released February 17, 2023 This is a quick bugfix release to address a panic that happens when `attachment-cache-dir` is not set. **Bug fixes + maintenance:** * Avoid panic in manager when `attachment-cache-dir` is not set ([#617](https://github.com/binwiederhier/ntfy/issues/617), thanks to [@ksurl](https://github.com/ksurl)) * Ensure that calls to standard logger `log.Println` also output JSON (no ticket) ## ntfy server v2.0.0 Released February 16, 2023 This is the biggest ntfy server release I've ever done 🥳 . Lots of new and exciting features. **Brand-new features:** * **User signup/login & account sync**: If enabled, users can now register to create a user account, and then login to the web app. Once logged in, topic subscriptions and user settings are stored server-side in the user account (as opposed to only in the browser storage). So far, this is implemented only in the web app only. Once it's in the Android/iOS app, you can easily keep your account in sync. Relevant [config options](config.md#config-options) are `enable-signup` and `enable-login`.
    * **Topic reservations** 🎉: If enabled, users can now **reserve topics and restrict access to other users**. Once this is fully rolled out, you may reserve `ntfy.sh/philbackups` and define access so that only you can publish/subscribe to the topic. Reservations let you claim ownership of a topic, and you can define access permissions for others as `deny-all` (only you have full access), `read-only` (you can publish/subscribe, others can subscribe), `write-only` (you can publish/subscribe, others can publish), `read-write` (everyone can publish/subscribe, but you remain the owner). Topic reservations can be [configured](config.md#config-options) in the web app if `enable-reservations` is enabled, and only if the user has a [tier](config.md#tiers) that supports reservations.
    * **Access tokens:** It is now possible to create user access tokens for a user account. Access tokens are useful to avoid having to paste your password to various applications or scripts. For instance, you may want to use a dedicated token to publish from your backup host, and one from your home automation system. Tokens can be configured in the web app, or via the `ntfy token` command. See [creating tokens](config.md#access-tokens), and [publishing using tokens](publish.md#access-tokens).
    * **Structured logging:** I've redone a lot of the logging to make it more structured, and to make it easier to debug and troubleshoot. Logs can now be written to a file, and as JSON (if configured). Each log event carries context fields that you can filter and search on using tools like `jq`. On top of that, you can override the log level if certain fields match. For instance, you can say `user_name=phil -> debug` to log everything related to a certain user with debug level. See [logging & debugging](config.md#logging-debugging). * **Tiers:** You can now define and associate usage tiers to users. Tiers can be used to grant users higher limits, such as daily message limits, attachment size, or make it possible for users to reserve topics. You could, for instance, have a tier `Standard` that allows 500 messages/day, 15 MB attachments and 5 allowed topic reservations, and another tier `Friends & Family` with much higher limits. For ntfy.sh, I'll mostly use these tiers to facilitate paid plans (see below). Tiers can be configured via the `ntfy tier ...` command. See [tiers](config.md#tiers). * **Paid tiers:** Starting very soon, I will be offering paid tiers for ntfy.sh on top of the free service. You'll be able to subscribe to tiers with higher rate limits (more daily messages, bigger attachments) and topic reservations. Paid tiers are facilitated by integrating [Stripe](https://stripe.com) as a payment provider. See [payments](config.md#payments) for details. **ntfy is forever open source!** Yes, I will be offering some paid plans. But you don't need to panic! I won't be taking any features away, and everything will remain forever open source, so you can self-host if you like. Similar to the donations via [GitHub Sponsors](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/), paid plans will help pay for the service and keep me motivated to keep going. It'll only make ntfy better. **Other tickets:** * User account signup, login, topic reservations, access tokens, tiers etc. ([#522](https://github.com/binwiederhier/ntfy/issues/522)) * `OPTIONS` method calls are not serviced when the UI is disabled ([#598](https://github.com/binwiederhier/ntfy/issues/598), thanks to [@enticedwanderer](https://github.com/enticedwanderer) for reporting) **Special thanks:** A big Thank-you goes to everyone who tested the user account and payments work. I very much appreciate all the feedback, suggestions, and bug reports. Thank you, @nwithan8, @deadcade, @xenrox, @cmeis, @wunter8 and the others who I forgot. ## ntfy server v1.31.0 Released February 14, 2023 This is a tiny release before the really big release, and also the last before the big v2.0.0. The most interesting things in this release are the new preliminary health endpoint to allow monitoring in K8s (and others), and the removal of `upx` binary packing (which was causing erroneous virus flagging). Aside from that, the `go-smtp` library did a breaking-change upgrade, which required some work to get working again. **Features:** * Preliminary `/v1/health` API endpoint for service monitoring (no ticket) * Add basic health check to `Dockerfile` ([#555](https://github.com/binwiederhier/ntfy/pull/555), thanks to [@bt90](https://github.com/bt90)) **Bug fixes + maintenance:** * Fix `chown` issues with RHEL-like based systems ([#566](https://github.com/binwiederhier/ntfy/issues/566)/[#565](https://github.com/binwiederhier/ntfy/pull/565), thanks to [@danieldemus](https://github.com/danieldemus)) * Removed `upx` (binary packing) for all builds due to false virus warnings ([#576](https://github.com/binwiederhier/ntfy/issues/576), thanks to [@shawnhwei](https://github.com/shawnhwei) for reporting) * Upgraded `go-smtp` library and tests to v0.16.0 ([#569](https://github.com/binwiederhier/ntfy/issues/569)) **Documentation:** * Add HTTP/2 and TLSv1.3 support to nginx docs ([#553](https://github.com/binwiederhier/ntfy/issues/553), thanks to [@bt90](https://github.com/bt90)) * Small wording change for `client.yml` ([#562](https://github.com/binwiederhier/ntfy/pull/562), thanks to [@fleopaulD](https://github.com/fleopaulD)) * Fix K8s install docs ([#582](https://github.com/binwiederhier/ntfy/pull/582), thanks to [@Remedan](https://github.com/Remedan)) * Updated Jellyseer docs ([#604](https://github.com/binwiederhier/ntfy/pull/604), thanks to [@Y0ngg4n](https://github.com/Y0ngg4n)) * Updated iOS developer docs ([#605](https://github.com/binwiederhier/ntfy/pull/605), thanks to [@SticksDev](https://github.com/SticksDev)) **Additional languages:** * Portuguese (thanks to [@ssantos](https://hosted.weblate.org/user/ssantos/)) ## ntfy server v1.30.1 Released December 23, 2022 🎅 This is a special holiday edition version of ntfy, with all sorts of holiday fun and games, and hidden quests. Nahh, just kidding. This release is an intermediate release mainly to eliminate warnings in the logs, so I can roll out the TLSv1.3, HTTP/2 and Unix mode changes on ntfy.sh (see [#552](https://github.com/binwiederhier/ntfy/issues/552)). **Features:** * Web: Generate random topic name button ([#453](https://github.com/binwiederhier/ntfy/issues/453), thanks to [@yardenshoham](https://github.com/yardenshoham)) * Add [Gitpod config](https://github.com/binwiederhier/ntfy/blob/main/.gitpod.yml) ([#540](https://github.com/binwiederhier/ntfy/pull/540), thanks to [@yardenshoham](https://github.com/yardenshoham)) **Bug fixes + maintenance:** * Remove `--env-topic` option from `ntfy publish` as per [deprecation](deprecations.md) (no ticket) * Prepared statements for message cache writes ([#542](https://github.com/binwiederhier/ntfy/pull/542), thanks to [@nicois](https://github.com/nicois)) * Do not warn about invalid IP address when behind proxy in unix socket mode (relates to [#552](https://github.com/binwiederhier/ntfy/issues/552)) * Upgrade nginx/ntfy config on ntfy.sh to work with TLSv1.3, HTTP/2 ([#552](https://github.com/binwiederhier/ntfy/issues/552), thanks to [@bt90](https://github.com/bt90)) ## ntfy Android app v1.16.0 Released December 11, 2022 This is a feature and platform/dependency upgrade release. You can now have per-subscription notification settings (including sounds, DND, etc.), and you can make notifications continue ringing until they are dismissed. There's also support for thematic/adaptive launcher icon for Android 13. There are a few more Android 13 specific things, as well as many bug fixes: No more crashes from large images, no more opening the wrong subscription, and we also fixed the icon color issue. **Features:** * Custom per-subscription notification settings incl. sounds, DND, etc. ([#6](https://github.com/binwiederhier/ntfy/issues/6), thanks to [@doits](https://github.com/doits)) * Insistent notifications that ring until dismissed ([#417](https://github.com/binwiederhier/ntfy/issues/417), thanks to [@danmed](https://github.com/danmed) for reporting) * Add thematic/adaptive launcher icon ([#513](https://github.com/binwiederhier/ntfy/issues/513), thanks to [@daedric7](https://github.com/daedric7) for reporting) **Bug fixes + maintenance:** * Upgrade Android dependencies and build toolchain to SDK 33 (no ticket) * Simplify F-Droid build: Disable tasks for Google Services ([#516](https://github.com/binwiederhier/ntfy/issues/516), thanks to [@markosopcic](https://github.com/markosopcic)) * Android 13: Ask for permission to post notifications ([#508](https://github.com/binwiederhier/ntfy/issues/508)) * Android 13: Do not allow swiping away the foreground notification ([#521](https://github.com/binwiederhier/ntfy/issues/521), thanks to [@alexhorner](https://github.com/alexhorner) for reporting) * Android 5 (SDK 21): Fix crash on unsubscribing ([#528](https://github.com/binwiederhier/ntfy/issues/528), thanks to Roger M.) * Remove timestamp when copying message text ([#471](https://github.com/binwiederhier/ntfy/issues/471), thanks to [@wunter8](https://github.com/wunter8)) * Fix auto-delete if some icons do not exist anymore ([#506](https://github.com/binwiederhier/ntfy/issues/506)) * Fix notification icon color ([#480](https://github.com/binwiederhier/ntfy/issues/480), thanks to [@s-h-a-r-d](https://github.com/s-h-a-r-d) for reporting) * Fix topics do not re-subscribe to Firebase after restoring from backup ([#511](https://github.com/binwiederhier/ntfy/issues/511)) * Fix crashes from large images ([#474](https://github.com/binwiederhier/ntfy/issues/474), thanks to [@daedric7](https://github.com/daedric7) for reporting) * Fix notification click opens wrong subscription ([#261](https://github.com/binwiederhier/ntfy/issues/261), thanks to [@SMAW](https://github.com/SMAW) for reporting) * Fix Firebase-only "link expired" issue ([#529](https://github.com/binwiederhier/ntfy/issues/529)) * Remove "Install .apk" feature in Google Play variant due to policy change ([#531](https://github.com/binwiederhier/ntfy/issues/531)) * Add donate button (no ticket) **Additional translations:** * Korean (thanks to [@YJSofta0f97461d82447ac](https://hosted.weblate.org/user/YJSofta0f97461d82447ac/)) * Portuguese (thanks to [@victormagalhaess](https://hosted.weblate.org/user/victormagalhaess/)) ## ntfy server v1.29.1 Released November 17, 2022 This is mostly a bugfix release to address the high load on ntfy.sh. There are now two new options that allow synchronous batch-writing of messages to the cache. This avoids database locking, and subsequent pileups of waiting requests. **Bug fixes:** * High-load servers: Allow asynchronous batch-writing of messages to cache via `cache-batch-*` options ([#498](https://github.com/binwiederhier/ntfy/issues/498)/[#502](https://github.com/binwiederhier/ntfy/pull/502)) * Sender column in cache.db shows invalid IP ([#503](https://github.com/binwiederhier/ntfy/issues/503)) **Documentation:** * GitHub Actions example ([#492](https://github.com/binwiederhier/ntfy/pull/492), thanks to [@ksurl](https://github.com/ksurl)) * UnifiedPush ACL clarification ([#497](https://github.com/binwiederhier/ntfy/issues/497), thanks to [@bt90](https://github.com/bt90)) * Install instructions for Kustomize ([#463](https://github.com/binwiederhier/ntfy/pull/463), thanks to [@l-maciej](https://github.com/l-maciej)) **Other things:** * Put ntfy.sh docs on GitHub pages to reduce AWS outbound traffic cost ([#491](https://github.com/binwiederhier/ntfy/issues/491)) * The ntfy.sh server hardware was upgraded to a bigger box. If you'd like to help out carrying the server cost, **[sponsorships and donations](https://github.com/sponsors/binwiederhier)** 💸 would be very much appreciated ## ntfy server v1.29.0 Released November 12, 2022 This release adds the ability to add rate limit exemptions for IP ranges instead of just specific IP addresses. It also fixes a few bugs in the web app and the CLI and adds lots of new examples and install instructions. Thanks to [some love on HN](https://news.ycombinator.com/item?id=33517944), we got so many new ntfy users trying out ntfy and joining the [chat rooms](https://github.com/binwiederhier/ntfy#chat--forum). **Welcome to the ntfy community to all of you!** We also got a ton of new **[sponsors and donations](https://github.com/sponsors/binwiederhier)** 💸, which is amazing. I'd like to thank all of you for believing in the project, and for helping me pay the server cost. The HN spike increased the AWS cost quite a bit. **Features:** * Allow IP CIDRs in `visitor-request-limit-exempt-hosts` ([#423](https://github.com/binwiederhier/ntfy/issues/423), thanks to [@karmanyaahm](https://github.com/karmanyaahm)) **Bug fixes + maintenance:** * Subscriptions can now have a display name ([#370](https://github.com/binwiederhier/ntfy/issues/370), thanks to [@tfheen](https://github.com/tfheen) for reporting) * Bump Go version to Go 18.x ([#422](https://github.com/binwiederhier/ntfy/issues/422)) * Web: Strip trailing slash when subscribing ([#428](https://github.com/binwiederhier/ntfy/issues/428), thanks to [@raining1123](https://github.com/raining1123) for reporting, and [@wunter8](https://github.com/wunter8) for fixing) * Web: Strip trailing slash after server URL in publish dialog ([#441](https://github.com/binwiederhier/ntfy/issues/441), thanks to [@wunter8](https://github.com/wunter8)) * Allow empty passwords in `client.yml` ([#374](https://github.com/binwiederhier/ntfy/issues/374), thanks to [@cyqsimon](https://github.com/cyqsimon) for reporting, and [@wunter8](https://github.com/wunter8) for fixing) * `ntfy pub` will now use default username and password from `client.yml` ([#431](https://github.com/binwiederhier/ntfy/issues/431), thanks to [@wunter8](https://github.com/wunter8) for fixing) * Make `ntfy sub` work with `NTFY_USER` env variable ([#447](https://github.com/binwiederhier/ntfy/pull/447), thanks to [SuperSandro2000](https://github.com/SuperSandro2000)) * Web: Disallow GET/HEAD requests with body in actions ([#468](https://github.com/binwiederhier/ntfy/issues/468), thanks to [@ollien](https://github.com/ollien)) **Documentation:** * Updated developer docs, bump nodejs and go version ([#414](https://github.com/binwiederhier/ntfy/issues/414), thanks to [@YJSoft](https://github.com/YJSoft) for reporting) * Officially document `?auth=..` query parameter ([#433](https://github.com/binwiederhier/ntfy/pull/433), thanks to [@wunter8](https://github.com/wunter8)) * Added Rundeck example ([#427](https://github.com/binwiederhier/ntfy/pull/427), thanks to [@demogorgonz](https://github.com/demogorgonz)) * Fix Debian installation instructions ([#237](https://github.com/binwiederhier/ntfy/issues/237), thanks to [@Joeharrison94](https://github.com/Joeharrison94) for reporting) * Updated [example](https://ntfy.sh/docs/examples/#gatus) with official [Gatus](https://github.com/TwiN/gatus) integration (thanks to [@TwiN](https://github.com/TwiN)) * Added [Kubernetes install instructions](https://ntfy.sh/docs/install/#kubernetes) ([#452](https://github.com/binwiederhier/ntfy/pull/452), thanks to [@gmemstr](https://github.com/gmemstr)) * Added [additional NixOS links for self-hosting](https://ntfy.sh/docs/install/#nixos-nix) ([#462](https://github.com/binwiederhier/ntfy/pull/462), thanks to [@wamserma](https://github.com/wamserma)) * Added additional [more secure nginx config example](https://ntfy.sh/docs/config/#nginxapache2caddy) ([#451](https://github.com/binwiederhier/ntfy/pull/451), thanks to [SuperSandro2000](https://github.com/SuperSandro2000)) * Minor fixes in the config table ([#470](https://github.com/binwiederhier/ntfy/pull/470), thanks to [snh](https://github.com/snh)) * Fix broken link ([#476](https://github.com/binwiederhier/ntfy/pull/476), thanks to [@shuuji3](https://github.com/shuuji3)) **Additional translations:** * Korean (thanks to [@YJSofta0f97461d82447ac](https://hosted.weblate.org/user/YJSofta0f97461d82447ac/)) **Sponsorships:**: Thank you to the amazing folks who decided to [sponsor ntfy](https://github.com/sponsors/binwiederhier). Thank you for helping carry the cost of the public server and developer licenses, and more importantly: Thank you for believing in ntfy! You guys rock! A list of all the sponsors can be found in the [README](https://github.com/binwiederhier/ntfy/blob/main/README.md). ## ntfy Android app v1.14.0 Released September 27, 2022 This release adds the ability to set a custom icon to each notification, as well as a display name to subscriptions. We also moved the action buttons in the detail view to a more logical place, fixed a bunch of bugs, and added four more languages. Hurray! **Features:** * Subscriptions can now have a display name ([#313](https://github.com/binwiederhier/ntfy/issues/313), thanks to [@wunter8](https://github.com/wunter8)) * Display name for UnifiedPush subscriptions ([#355](https://github.com/binwiederhier/ntfy/issues/355), thanks to [@wunter8](https://github.com/wunter8)) * Polling is now done with `since=` API, which makes deduping easier ([#165](https://github.com/binwiederhier/ntfy/issues/165)) * Turned JSON stream deprecation banner into "Use WebSockets" banner (no ticket) * Move action buttons in notification cards ([#236](https://github.com/binwiederhier/ntfy/issues/236), thanks to [@wunter8](https://github.com/wunter8)) * Icons can be set for each individual notification ([#126](https://github.com/binwiederhier/ntfy/issues/126), thanks to [@wunter8](https://github.com/wunter8)) **Bug fixes:** * Long-click selecting of notifications doesn't scroll to the top anymore ([#235](https://github.com/binwiederhier/ntfy/issues/235), thanks to [@wunter8](https://github.com/wunter8)) * Add attachment and click URL extras to MESSAGE_RECEIVED broadcast ([#329](https://github.com/binwiederhier/ntfy/issues/329), thanks to [@wunter8](https://github.com/wunter8)) * Accessibility: Clear/choose service URL button in base URL dropdown now has a label ([#292](https://github.com/binwiederhier/ntfy/issues/292), thanks to [@mhameed](https://github.com/mhameed) for reporting) **Additional translations:** * Italian (thanks to [@Genio2003](https://hosted.weblate.org/user/Genio2003/)) * Dutch (thanks to [@SchoNie](https://hosted.weblate.org/user/SchoNie/)) * Ukranian (thanks to [@v.kopitsa](https://hosted.weblate.org/user/v.kopitsa/)) * Polish (thanks to [@Namax0r](https://hosted.weblate.org/user/Namax0r/)) Thank you to [@wunter8](https://github.com/wunter8) for proactively picking up some Android tickets, and fixing them! You rock! ## ntfy server v1.28.0 Released September 27, 2022 This release primarily adds icon support for the Android app, and adds a display name to subscriptions in the web app. Aside from that, we fixed a few random bugs, most importantly the `Priority` header bug that allows the use behind Cloudflare. We also added a ton of documentation. Most prominently, an [integrations + projects page](https://ntfy.sh/docs/integrations/). As of now, I also have started accepting **[donations and sponsorships](https://github.com/sponsors/binwiederhier)** 💸. I would be very humbled if you consider donating. **Features:** * Subscription display name for the web app ([#348](https://github.com/binwiederhier/ntfy/pull/348)) * Allow setting socket permissions via `--listen-unix-mode` ([#356](https://github.com/binwiederhier/ntfy/pull/356), thanks to [@koro666](https://github.com/koro666)) * Icons can be set for each individual notification ([#126](https://github.com/binwiederhier/ntfy/issues/126), thanks to [@wunter8](https://github.com/wunter8)) * CLI: Allow default username/password in `client.yml` ([#372](https://github.com/binwiederhier/ntfy/pull/372), thanks to [@wunter8](https://github.com/wunter8)) * Build support for other Unix systems ([#393](https://github.com/binwiederhier/ntfy/pull/393), thanks to [@la-ninpre](https://github.com/la-ninpre)) **Bug fixes:** * `ntfy user` commands don't work with `auth_file` but works with `auth-file` ([#344](https://github.com/binwiederhier/ntfy/issues/344), thanks to [@Histalek](https://github.com/Histalek) for reporting) * Ignore new draft HTTP `Priority` header ([#351](https://github.com/binwiederhier/ntfy/issues/351), thanks to [@ksurl](https://github.com/ksurl) for reporting) * Delete expired attachments based on mod time instead of DB entry to avoid races (no ticket) * Better logging for Matrix push key errors ([#384](https://github.com/binwiederhier/ntfy/pull/384), thanks to [@christophehenry](https://github.com/christophehenry)) * Web: Switched "Pop" and "Pop Swoosh" sounds ([#352](https://github.com/binwiederhier/ntfy/issues/352), thanks to [@coma-toast](https://github.com/coma-toast) for reporting) **Documentation:** * Added [integrations + projects page](https://ntfy.sh/docs/integrations/) (**so many integrations, whoa!**) * Added example for [UptimeRobot](https://ntfy.sh/docs/examples/#uptimerobot) * Fix some PowerShell publish docs ([#345](https://github.com/binwiederhier/ntfy/pull/345), thanks to [@noahpeltier](https://github.com/noahpeltier)) * Clarified Docker install instructions ([#361](https://github.com/binwiederhier/ntfy/issues/361), thanks to [@barart](https://github.com/barart) for reporting) * Mismatched quotation marks ([#392](https://github.com/binwiederhier/ntfy/pull/392)], thanks to [@connorlanigan](https://github.com/connorlanigan)) **Additional translations:** * Ukranian (thanks to [@v.kopitsa](https://hosted.weblate.org/user/v.kopitsa/)) * Polish (thanks to [@Namax0r](https://hosted.weblate.org/user/Namax0r/)) ## ntfy server v1.27.2 Released June 23, 2022 This release brings two new CLI options to wait for a command to finish, or for a PID to exit. It also adds more detail to trace debug output. Aside from other bugs, it fixes a performance issue that occurred in large installations every minute or so, due to competing stats gathering (personal installations will likely be unaffected by this). **Features:** * Add `cache-startup-queries` option to allow custom [SQLite performance tuning](config.md#wal-for-message-cache) (no ticket) * ntfy CLI can now [wait for a command or PID](subscribe/cli.md#wait-for-pidcommand) before publishing ([#263](https://github.com/binwiederhier/ntfy/issues/263), thanks to the [original ntfy](https://github.com/dschep/ntfy) for the idea) * Trace: Log entire HTTP request to simplify debugging (no ticket) * Allow setting user password via `NTFY_PASSWORD` env variable ([#327](https://github.com/binwiederhier/ntfy/pull/327), thanks to [@Kenix3](https://github.com/Kenix3)) **Bug fixes:** * Fix slow requests due to excessive locking ([#338](https://github.com/binwiederhier/ntfy/issues/338)) * Return HTTP 500 for `GET /_matrix/push/v1/notify` when `base-url` is not configured (no ticket) * Disallow setting `upstream-base-url` to the same value as `base-url` ([#334](https://github.com/binwiederhier/ntfy/issues/334), thanks to [@oester](https://github.com/oester) for reporting) * Fix `since=` implementation for multiple topics ([#336](https://github.com/binwiederhier/ntfy/issues/336), thanks to [@karmanyaahm](https://github.com/karmanyaahm) for reporting) * Simple parsing in `Actions` header now supports settings Android `intent=` key ([#341](https://github.com/binwiederhier/ntfy/pull/341), thanks to [@wunter8](https://github.com/wunter8)) **Deprecations:** * The `ntfy publish --env-topic` option is deprecated as of now (see [deprecations](deprecations.md) for details) ## ntfy server v1.26.0 Released June 16, 2022 This release adds a Matrix Push Gateway directly into ntfy, to make self-hosting a Matrix server easier. The Windows CLI is now available via Scoop, and ntfy is now natively supported in Uptime Kuma. **Features:** * ntfy now is a [Matrix Push Gateway](https://spec.matrix.org/v1.2/push-gateway-api/) (in combination with [UnifiedPush](https://unifiedpush.org) as the [Provider Push Protocol](https://unifiedpush.org/developers/gateway/), [#319](https://github.com/binwiederhier/ntfy/issues/319)/[#326](https://github.com/binwiederhier/ntfy/pull/326), thanks to [@MayeulC](https://github.com/MayeulC) for reporting) * Windows CLI is now available via [Scoop](https://scoop.sh) ([ScoopInstaller#3594](https://github.com/ScoopInstaller/Main/pull/3594), [#311](https://github.com/binwiederhier/ntfy/pull/311), [#269](https://github.com/binwiederhier/ntfy/issues/269), thanks to [@kzshantonu](https://github.com/kzshantonu)) * [Uptime Kuma](https://github.com/louislam/uptime-kuma) now allows publishing to ntfy ([uptime-kuma#1674](https://github.com/louislam/uptime-kuma/pull/1674), thanks to [@philippdormann](https://github.com/philippdormann)) * Display ntfy version in `ntfy serve` command ([#314](https://github.com/binwiederhier/ntfy/issues/314), thanks to [@poblabs](https://github.com/poblabs)) **Bug fixes:** * Web app: Show "notifications not supported" alert on HTTP ([#323](https://github.com/binwiederhier/ntfy/issues/323), thanks to [@milksteakjellybeans](https://github.com/milksteakjellybeans) for reporting) * Use last address in `X-Forwarded-For` header as visitor address ([#328](https://github.com/binwiederhier/ntfy/issues/328)) **Documentation** * Added [example](examples.md) for [Uptime Kuma](https://github.com/louislam/uptime-kuma) integration ([#315](https://github.com/binwiederhier/ntfy/pull/315), thanks to [@philippdormann](https://github.com/philippdormann)) * Fix Docker install instructions ([#320](https://github.com/binwiederhier/ntfy/issues/320), thanks to [@milksteakjellybeans](https://github.com/milksteakjellybeans) for reporting) * Add clarifying comments to base-url ([#322](https://github.com/binwiederhier/ntfy/issues/322), thanks to [@milksteakjellybeans](https://github.com/milksteakjellybeans) for reporting) * Update FAQ for iOS app ([#321](https://github.com/binwiederhier/ntfy/issues/321), thanks to [@milksteakjellybeans](https://github.com/milksteakjellybeans) for reporting) ## ntfy iOS app v1.2 Released June 16, 2022 This release adds support for authentication/authorization for self-hosted servers. It also allows you to set your server as the default server for new topics. **Features:** * Support for auth and user management ([#277](https://github.com/binwiederhier/ntfy/issues/277)) * Ability to add default server ([#295](https://github.com/binwiederhier/ntfy/issues/295)) **Bug fixes:** * Add validation for selfhosted server URL ([#290](https://github.com/binwiederhier/ntfy/issues/290)) ## ntfy server v1.25.2 Released June 2, 2022 This release adds the ability to set a log level to facilitate easier debugging of live systems. It also solves a production problem with a few over-users that resulted in Firebase quota problems (only applying to the over-users). We now block visitors from using Firebase if they trigger a quota exceeded response. On top of that, we updated the Firebase SDK and are now building the release in GitHub Actions. We've also got two more translations: Chinese/Simplified and Dutch. **Features:** * Advanced logging, with different log levels and hot reloading of the log level ([#284](https://github.com/binwiederhier/ntfy/pull/284)) **Bugs**: * Respect Firebase "quota exceeded" response for topics, block Firebase publishing for user for 10min ([#289](https://github.com/binwiederhier/ntfy/issues/289)) * Fix documentation header blue header due to mkdocs-material theme update (no ticket) **Maintenance:** * Upgrade Firebase Admin SDK to 4.x ([#274](https://github.com/binwiederhier/ntfy/issues/274)) * CI: Build from pipeline instead of locally ([#36](https://github.com/binwiederhier/ntfy/issues/36)) **Documentation**: * ⚠️ [Privacy policy](privacy.md) updated to reflect additional debug/tracing feature (no ticket) * [Examples](examples.md) for [Home Assistant](https://www.home-assistant.io/) ([#282](https://github.com/binwiederhier/ntfy/pull/282), thanks to [@poblabs](https://github.com/poblabs)) * Install instructions for [NixOS/Nix](https://ntfy.sh/docs/install/#nixos-nix) ([#282](https://github.com/binwiederhier/ntfy/pull/282), thanks to [@arjan-s](https://github.com/arjan-s)) * Clarify `poll_request` wording for [iOS push notifications](https://ntfy.sh/docs/config/#ios-instant-notifications) ([#300](https://github.com/binwiederhier/ntfy/issues/300), thanks to [@prabirshrestha](https://github.com/prabirshrestha) for reporting) * Example for using ntfy with docker-compose.yml without root privileges ([#304](https://github.com/binwiederhier/ntfy/pull/304), thanks to [@ksurl](https://github.com/ksurl)) **Additional translations:** * Chinese/Simplified (thanks to [@yufei.im](https://hosted.weblate.org/user/yufei.im/)) * Dutch (thanks to [@SchoNie](https://hosted.weblate.org/user/SchoNie/)) ## ntfy iOS app v1.1 Released May 31, 2022 In this release of the iOS app, we add message priorities (mapped to iOS interruption levels), tags and emojis, action buttons to open websites or perform HTTP requests (in the notification and the detail view), a custom click action when the notification is tapped, and various other fixes. It also adds support for self-hosted servers (albeit not supporting auth yet). The self-hosted server needs to be configured to forward poll requests to upstream ntfy.sh for push notifications to work (see [iOS push notifications](https://ntfy.sh/docs/config/#ios-instant-notifications) for details). **Features:** * [Message priority](https://ntfy.sh/docs/publish/#message-priority) support (no ticket) * [Tags/emojis](https://ntfy.sh/docs/publish/#tags-emojis) support (no ticket) * [Action buttons](https://ntfy.sh/docs/publish/#action-buttons) support (no ticket) * [Click action](https://ntfy.sh/docs/publish/#click-action) support (no ticket) * Open topic when notification clicked (no ticket) * Notification now makes a sound and vibrates (no ticket) * Cancel notifications when navigating to topic (no ticket) * iOS 14.0 support (no ticket, [PR#1](https://github.com/binwiederhier/ntfy-ios/pull/1), thanks to [@callum-99](https://github.com/callum-99)) **Bug fixes:** * iOS UI not always updating properly ([#267](https://github.com/binwiederhier/ntfy/issues/267)) ## ntfy server v1.24.0 Released May 28, 2022 This release of the ntfy server brings supporting features for the ntfy iOS app. Most importantly, it enables support for self-hosted servers in combination with the iOS app. This is to overcome the restrictive Apple development environment. **Features:** * Regularly send Firebase keepalive messages to ~poll topic to support self-hosted servers (no ticket) * Add subscribe filter to query exact messages by ID (no ticket) * Support for `poll_request` messages to support [iOS push notifications](https://ntfy.sh/docs/config/#ios-instant-notifications) for self-hosted servers (no ticket) **Bug fixes:** * Support emails without `Content-Type` ([#265](https://github.com/binwiederhier/ntfy/issues/265), thanks to [@dmbonsall](https://github.com/dmbonsall)) **Additional translations:** * Italian (thanks to [@Genio2003](https://hosted.weblate.org/user/Genio2003/)) ## ntfy iOS app v1.0 Released May 25, 2022 This is the first version of the ntfy iOS app. It supports only ntfy.sh (no selfhosted servers) and only messages + title (no priority, tags, attachments, ...). I'll rapidly add (hopefully) most of the other ntfy features, and then I'll focus on self-hosted servers. The app is now available in the [App Store](https://apps.apple.com/us/app/ntfy/id1625396347). **Tickets:** * iOS app ([#4](https://github.com/binwiederhier/ntfy/issues/4), see also: [TestFlight summary](https://github.com/binwiederhier/ntfy/issues/4#issuecomment-1133767150)) **Thanks:** * Thank you to all the testers who tried out the app. You guys gave me the confidence that it's ready to release (albeit with some known issues which will be addressed in follow-up releases). ## ntfy server v1.23.0 Released May 21, 2022 This release ships a CLI for Windows and macOS, as well as the ability to disable the web app entirely. On top of that, it adds support for APNs, the iOS messaging service. This is needed for the (soon to be released) iOS app. **Features:** * [Windows](https://ntfy.sh/docs/install/#windows) and [macOS](https://ntfy.sh/docs/install/#macos) builds for the [ntfy CLI](https://ntfy.sh/docs/subscribe/cli/) ([#112](https://github.com/binwiederhier/ntfy/issues/112)) * Ability to disable the web app entirely ([#238](https://github.com/binwiederhier/ntfy/issues/238)/[#249](https://github.com/binwiederhier/ntfy/pull/249), thanks to [@Curid](https://github.com/Curid)) * Add APNs config to Firebase messages to support [iOS app](https://github.com/binwiederhier/ntfy/issues/4) ([#247](https://github.com/binwiederhier/ntfy/pull/247), thanks to [@Copephobia](https://github.com/Copephobia)) **Bug fixes:** * Support underscores in server.yml config options ([#255](https://github.com/binwiederhier/ntfy/issues/255), thanks to [@ajdelgado](https://github.com/ajdelgado)) * Force MAKEFLAGS to --jobs=1 in `Makefile` ([#257](https://github.com/binwiederhier/ntfy/pull/257), thanks to [@oddlama](https://github.com/oddlama)) **Documentation:** * Typo in install instructions ([#252](https://github.com/binwiederhier/ntfy/pull/252)/[#251](https://github.com/binwiederhier/ntfy/issues/251), thanks to [@oddlama](https://github.com/oddlama)) * Fix typo in private server example ([#262](https://github.com/binwiederhier/ntfy/pull/262), thanks to [@MayeulC](https://github.com/MayeulC)) * [Examples](examples.md) for [jellyseerr](https://github.com/Fallenbagel/jellyseerr)/[overseerr](https://overseerr.dev/) ([#264](https://github.com/binwiederhier/ntfy/pull/264), thanks to [@Fallenbagel](https://github.com/Fallenbagel)) **Additional translations:** * Portuguese/Brazil (thanks to [@tiagotriques](https://hosted.weblate.org/user/tiagotriques/) and [@pireshenrique22](https://hosted.weblate.org/user/pireshenrique22/)) Thank you to the many translators, who helped translate the new strings so quickly. I am humbled and amazed by your help. ## ntfy Android app v1.13.0 Released May 11, 2022 This release brings a slightly altered design for the detail view, featuring a card layout to make notifications more easily distinguishable from one another. It also ships per-topic settings that allow overriding minimum priority, auto delete threshold and custom icons. Aside from that, we've got tons of bug fixes as usual. **Features:** * Per-subscription settings, custom subscription icons ([#155](https://github.com/binwiederhier/ntfy/issues/155), thanks to [@mztiq](https://github.com/mztiq) for reporting) * Cards in notification detail view ([#175](https://github.com/binwiederhier/ntfy/issues/175), thanks to [@cmeis](https://github.com/cmeis) for reporting) **Bug fixes:** * Accurate naming of "mute notifications" from "pause notifications" ([#224](https://github.com/binwiederhier/ntfy/issues/224), thanks to [@shadow00](https://github.com/shadow00) for reporting) * Make messages with links selectable ([#226](https://github.com/binwiederhier/ntfy/issues/226), thanks to [@StoyanDimitrov](https://github.com/StoyanDimitrov) for reporting) * Restoring topics or settings from backup doesn't work ([#223](https://github.com/binwiederhier/ntfy/issues/223), thanks to [@shadow00](https://github.com/shadow00) for reporting) * Fix app icon on old Android versions ([#128](https://github.com/binwiederhier/ntfy/issues/128), thanks to [@shadow00](https://github.com/shadow00) for reporting) * Fix races in UnifiedPush registration ([#230](https://github.com/binwiederhier/ntfy/issues/230), thanks to @Jakob for reporting) * Prevent view action from crashing the app ([#233](https://github.com/binwiederhier/ntfy/issues/233)) * Prevent long topic names and icons from overlapping ([#240](https://github.com/binwiederhier/ntfy/issues/240), thanks to [@cmeis](https://github.com/cmeis) for reporting) **Additional translations:** * Dutch (*incomplete*, thanks to [@diony](https://hosted.weblate.org/user/diony/)) **Thank you:** Thanks to [@cmeis](https://github.com/cmeis), [@StoyanDimitrov](https://github.com/StoyanDimitrov), [@Fallenbagel](https://github.com/Fallenbagel) for testing, and to [@Joeharrison94](https://github.com/Joeharrison94) for the input. And thank you very much to all the translators for catching up so quickly. ## ntfy server v1.22.0 Released May 7, 2022 This release makes the web app more accessible to people with disabilities, and introduces a "mark as read" icon in the web app. It also fixes a curious bug with WebSockets and Apache and makes the notification sounds in the web app a little quieter. We've also improved the documentation a little and added translations for three more languages. **Features:** * Make web app more accessible ([#217](https://github.com/binwiederhier/ntfy/issues/217)) * Better parsing of the user actions, allowing quotes (no ticket) * Add "mark as read" icon button to notification ([#243](https://github.com/binwiederhier/ntfy/pull/243), thanks to [@wunter8](https://github.com/wunter8)) **Bug fixes:** * `Upgrade` header check is now case in-sensitive ([#228](https://github.com/binwiederhier/ntfy/issues/228), thanks to [@wunter8](https://github.com/wunter8) for finding it) * Made web app sounds quieter ([#222](https://github.com/binwiederhier/ntfy/issues/222)) * Add "private browsing"-specific error message for Firefox/Safari ([#208](https://github.com/binwiederhier/ntfy/issues/208), thanks to [@julianfoad](https://github.com/julianfoad) for reporting) **Documentation:** * Improved caddy configuration (no ticket, thanks to @Stnby) * Additional multi-line examples on the [publish page](https://ntfy.sh/docs/publish/) ([#234](https://github.com/binwiederhier/ntfy/pull/234), thanks to [@aTable](https://github.com/aTable)) * Fixed PowerShell auth example to use UTF-8 ([#242](https://github.com/binwiederhier/ntfy/pull/242), thanks to [@SMAW](https://github.com/SMAW)) **Additional translations:** * Czech (thanks to [@waclaw66](https://hosted.weblate.org/user/waclaw66/)) * French (thanks to [@nathanaelhoun](https://hosted.weblate.org/user/nathanaelhoun/)) * Hungarian (thanks to [@agocsdaniel](https://hosted.weblate.org/user/agocsdaniel/)) **Thanks for testing:** Thanks to [@wunter8](https://github.com/wunter8) for testing. ## ntfy Android app v1.12.0 Released Apr 25, 2022 The main feature in this Android release is [Action Buttons](https://ntfy.sh/docs/publish/#action-buttons), a feature that allows users to add actions to the notifications. Actions can be to view a website or app, send a broadcast, or send a HTTP request. We also added support for [ntfy:// deep links](https://ntfy.sh/docs/subscribe/phone/#ntfy-links), added three more languages and fixed a ton of bugs. **Features:** * Custom notification [action buttons](https://ntfy.sh/docs/publish/#action-buttons) ([#134](https://github.com/binwiederhier/ntfy/issues/134), thanks to [@mrherman](https://github.com/mrherman) for reporting) * Support for [ntfy:// deep links](https://ntfy.sh/docs/subscribe/phone/#ntfy-links) ([#20](https://github.com/binwiederhier/ntfy/issues/20), thanks to [@Copephobia](https://github.com/Copephobia) for reporting) * [Fastlane metadata](https://hosted.weblate.org/projects/ntfy/android-fastlane/) can now be translated too ([#198](https://github.com/binwiederhier/ntfy/issues/198), thanks to [@StoyanDimitrov](https://github.com/StoyanDimitrov) for reporting) * Channel settings option to configure DND override, sounds, etc. ([#91](https://github.com/binwiederhier/ntfy/issues/91)) **Bug fixes:** * Validate URLs when changing default server and server in user management ([#193](https://github.com/binwiederhier/ntfy/issues/193), thanks to [@StoyanDimitrov](https://github.com/StoyanDimitrov) for reporting) * Error in sending test notification in different languages ([#209](https://github.com/binwiederhier/ntfy/issues/209), thanks to [@StoyanDimitrov](https://github.com/StoyanDimitrov) for reporting) * "[x] Instant delivery in doze mode" checkbox does not work properly ([#211](https://github.com/binwiederhier/ntfy/issues/211)) * Disallow "http" GET/HEAD actions with body ([#221](https://github.com/binwiederhier/ntfy/issues/221), thanks to [@cmeis](https://github.com/cmeis) for reporting) * Action "view" with "clear=true" does not work on some phones ([#220](https://github.com/binwiederhier/ntfy/issues/220), thanks to [@cmeis](https://github.com/cmeis) for reporting) * Do not group foreground service notification with others ([#219](https://github.com/binwiederhier/ntfy/issues/219), thanks to [@s-h-a-r-d](https://github.com/s-h-a-r-d) for reporting) **Additional translations:** * Czech (thanks to [@waclaw66](https://hosted.weblate.org/user/waclaw66/)) * French (thanks to [@nathanaelhoun](https://hosted.weblate.org/user/nathanaelhoun/)) * Japanese (thanks to [@shak](https://hosted.weblate.org/user/shak/)) * Russian (thanks to [@flamey](https://hosted.weblate.org/user/flamey/) and [@ilya.mikheev.coder](https://hosted.weblate.org/user/ilya.mikheev.coder/)) **Thanks for testing:** Thanks to [@s-h-a-r-d](https://github.com/s-h-a-r-d) (aka @Shard), [@cmeis](https://github.com/cmeis), @poblabs, and everyone I forgot for testing. ## ntfy server v1.21.2 Released Apr 24, 2022 In this release, the web app got translation support and was translated into 9 languages already 🇧🇬 🇩🇪 🇺🇸 🌎. It also re-adds support for ARMv6, and adds server-side support for Action Buttons. [Action Buttons](https://ntfy.sh/docs/publish/#action-buttons) is a feature that will be released in the Android app soon. It allows users to add actions to the notifications. Limited support is available in the web app. **Features:** * Custom notification [action buttons](https://ntfy.sh/docs/publish/#action-buttons) ([#134](https://github.com/binwiederhier/ntfy/issues/134), thanks to [@mrherman](https://github.com/mrherman) for reporting) * Added ARMv6 build ([#200](https://github.com/binwiederhier/ntfy/issues/200), thanks to [@jcrubioa](https://github.com/jcrubioa) for reporting) * Web app internationalization support 🇧🇬 🇩🇪 🇺🇸 🌎 ([#189](https://github.com/binwiederhier/ntfy/issues/189)) **Bug fixes:** * Web app: English language strings fixes, additional descriptions for settings ([#203](https://github.com/binwiederhier/ntfy/issues/203), thanks to [@StoyanDimitrov](https://github.com/StoyanDimitrov)) * Web app: Show error message snackbar when sending test notification fails ([#205](https://github.com/binwiederhier/ntfy/issues/205), thanks to [@cmeis](https://github.com/cmeis)) * Web app: basic URL validation in user management ([#204](https://github.com/binwiederhier/ntfy/issues/204), thanks to [@cmeis](https://github.com/cmeis)) * Disallow "http" GET/HEAD actions with body ([#221](https://github.com/binwiederhier/ntfy/issues/221), thanks to [@cmeis](https://github.com/cmeis) for reporting) **Translations (web app):** * Bulgarian (thanks to [@StoyanDimitrov](https://github.com/StoyanDimitrov)) * German (thanks to [@cmeis](https://github.com/cmeis)) * Indonesian (thanks to [@linerly](https://hosted.weblate.org/user/linerly/)) * Japanese (thanks to [@shak](https://hosted.weblate.org/user/shak/)) * Norwegian Bokmål (thanks to [@comradekingu](https://github.com/comradekingu)) * Russian (thanks to [@flamey](https://hosted.weblate.org/user/flamey/) and [@ilya.mikheev.coder](https://hosted.weblate.org/user/ilya.mikheev.coder/)) * Spanish (thanks to [@rogeliodh](https://github.com/rogeliodh)) * Turkish (thanks to [@ersen](https://ersen.moe/)) **Integrations:** [Apprise](https://github.com/caronc/apprise) support was fully released in [v0.9.8.2](https://github.com/caronc/apprise/releases/tag/v0.9.8.2) of Apprise. Thanks to [@particledecay](https://github.com/particledecay) and [@caronc](https://github.com/caronc) for their fantastic work. You can try it yourself like this (detailed usage in the [Apprise wiki](https://github.com/caronc/apprise/wiki/Notify_ntfy)): ``` pip3 install apprise apprise -b "Hi there" ntfys://mytopic ``` ## ntfy Android app v1.11.0 Released Apr 7, 2022 **Features:** * Download attachments to cache folder ([#181](https://github.com/binwiederhier/ntfy/issues/181)) * Regularly delete attachments for deleted notifications ([#142](https://github.com/binwiederhier/ntfy/issues/142)) * Translations to different languages ([#188](https://github.com/binwiederhier/ntfy/issues/188), thanks to [@StoyanDimitrov](https://github.com/StoyanDimitrov) for initiating things) **Bug fixes:** * IllegalStateException: Failed to build unique file ([#177](https://github.com/binwiederhier/ntfy/issues/177), thanks to [@Fallenbagel](https://github.com/Fallenbagel) for reporting) * SQLiteConstraintException: Crash during UP registration ([#185](https://github.com/binwiederhier/ntfy/issues/185)) * Refresh preferences screen after settings import (#183, thanks to [@cmeis](https://github.com/cmeis) for reporting) * Add priority strings to strings.xml to make it translatable (#192, thanks to [@StoyanDimitrov](https://github.com/StoyanDimitrov)) **Translations:** * English language improvements (thanks to [@comradekingu](https://github.com/comradekingu)) * Bulgarian (thanks to [@StoyanDimitrov](https://github.com/StoyanDimitrov)) * Chinese/Simplified (thanks to [@poi](https://hosted.weblate.org/user/poi) and [@PeterCxy](https://hosted.weblate.org/user/PeterCxy)) * Dutch (*incomplete*, thanks to [@diony](https://hosted.weblate.org/user/diony)) * French (thanks to [@Kusoneko](https://kusoneko.moe/) and [@mlcsthor](https://hosted.weblate.org/user/mlcsthor/)) * German (thanks to [@cmeis](https://github.com/cmeis)) * Italian (thanks to [@theTranslator](https://hosted.weblate.org/user/theTranslator/)) * Indonesian (thanks to [@linerly](https://hosted.weblate.org/user/linerly/)) * Norwegian Bokmål (*incomplete*, thanks to [@comradekingu](https://github.com/comradekingu)) * Portuguese/Brazil (thanks to [@LW](https://hosted.weblate.org/user/LW/)) * Spanish (thanks to [@rogeliodh](https://github.com/rogeliodh)) * Turkish (thanks to [@ersen](https://ersen.moe/)) **Thanks:** * Many thanks to [@cmeis](https://github.com/cmeis), [@Fallenbagel](https://github.com/Fallenbagel), [@Joeharrison94](https://github.com/Joeharrison94), and [@rogeliodh](https://github.com/rogeliodh) for input on the new attachment logic, and for testing the release ## ntfy server v1.20.0 Released Apr 6, 2022 **Features:**: * Added message bar and publish dialog ([#196](https://github.com/binwiederhier/ntfy/issues/196)) **Bug fixes:** * Added `EXPOSE 80/tcp` to Dockerfile to support auto-discovery in [Traefik](https://traefik.io/) ([#195](https://github.com/binwiederhier/ntfy/issues/195), thanks to [@s-h-a-r-d](https://github.com/s-h-a-r-d)) **Documentation:** * Added docker-compose example to [install instructions](install.md#docker) ([#194](https://github.com/binwiederhier/ntfy/pull/194), thanks to [@s-h-a-r-d](https://github.com/s-h-a-r-d)) **Integrations:** * [Apprise](https://github.com/caronc/apprise) has added integration into ntfy ([#99](https://github.com/binwiederhier/ntfy/issues/99), [apprise#524](https://github.com/caronc/apprise/pull/524), thanks to [@particledecay](https://github.com/particledecay) and [@caronc](https://github.com/caronc) for their fantastic work) ## ntfy server v1.19.0 Released Mar 30, 2022 **Bug fixes:** * Do not pack binary with `upx` for armv7/arm64 due to `illegal instruction` errors ([#191](https://github.com/binwiederhier/ntfy/issues/191), thanks to [@iexos](https://github.com/iexos)) * Do not allow comma in topic name in publish via GET endpoint (no ticket) * Add "Access-Control-Allow-Origin: *" for attachments (no ticket, thanks to @FrameXX) * Make pruning run again in web app ([#186](https://github.com/binwiederhier/ntfy/issues/186)) * Added missing params `delay` and `email` to publish as JSON body (no ticket) **Documentation:** * Improved [e-mail publishing](config.md#e-mail-publishing) documentation ## ntfy server v1.18.1 Released Mar 21, 2022 _This release ships no features or bug fixes. It's merely a documentation update._ **Documentation:** * Overhaul of [developer documentation](https://ntfy.sh/docs/develop/) * PowerShell examples for [publish documentation](https://ntfy.sh/docs/publish/) ([#138](https://github.com/binwiederhier/ntfy/issues/138), thanks to [@Joeharrison94](https://github.com/Joeharrison94)) * Additional examples for [NodeRED, Gatus, Sonarr, Radarr, ...](https://ntfy.sh/docs/examples/) (thanks to [@nickexyz](https://github.com/nickexyz)) * Fixes in developer instructions (thanks to [@Fallenbagel](https://github.com/Fallenbagel) for reporting) ## ntfy Android app v1.10.0 Released Mar 21, 2022 **Features:** * Support for UnifiedPush 2.0 specification (bytes messages, [#130](https://github.com/binwiederhier/ntfy/issues/130)) * Export/import settings and subscriptions ([#115](https://github.com/binwiederhier/ntfy/issues/115), thanks [@cmeis](https://github.com/cmeis) for reporting) * Open "Click" link when tapping notification ([#110](https://github.com/binwiederhier/ntfy/issues/110), thanks [@cmeis](https://github.com/cmeis) for reporting) * JSON stream deprecation banner ([#164](https://github.com/binwiederhier/ntfy/issues/164)) **Bug fixes:** * Display locale-specific times, with AM/PM or 24h format ([#140](https://github.com/binwiederhier/ntfy/issues/140), thanks [@hl2guide](https://github.com/hl2guide) for reporting) ## ntfy server v1.18.0 Released Mar 16, 2022 **Features:** * [Publish messages as JSON](https://ntfy.sh/docs/publish/#publish-as-json) ([#133](https://github.com/binwiederhier/ntfy/issues/133), thanks [@cmeis](https://github.com/cmeis) for reporting, thanks to [@Joeharrison94](https://github.com/Joeharrison94) and [@Fallenbagel](https://github.com/Fallenbagel) for testing) **Bug fixes:** * rpm: do not overwrite server.yaml on package upgrade ([#166](https://github.com/binwiederhier/ntfy/issues/166), thanks [@waclaw66](https://github.com/waclaw66) for reporting) * Typo in [ntfy.sh/announcements](https://ntfy.sh/announcements) topic ([#170](https://github.com/binwiederhier/ntfy/pull/170), thanks to [@sandebert](https://github.com/sandebert)) * Readme image URL fixes ([#156](https://github.com/binwiederhier/ntfy/pull/156), thanks to [@ChaseCares](https://github.com/ChaseCares)) **Deprecations:** * Removed the ability to run server as `ntfy` (as opposed to `ntfy serve`) as per [deprecation](deprecations.md) ## ntfy server v1.17.1 Released Mar 12, 2022 **Bug fixes:** * Replace `crypto.subtle` with `hashCode` to errors with Brave/FF-Windows (#157, thanks for reporting @arminus) ## ntfy server v1.17.0 Released Mar 11, 2022 **Features & bug fixes:** * Replace [web app](https://ntfy.sh/app) with a React/MUI-based web app from the 21st century (#111) * Web UI broken with auth (#132, thanks for reporting @arminus) * Send static web resources as `Content-Encoding: gzip`, i.e. docs and web app (no ticket) * Add support for auth via `?auth=...` query param, used by WebSocket in web app (no ticket) ## ntfy server v1.16.0 Released Feb 27, 2022 **Features & Bug fixes:** * Add [auth support](https://ntfy.sh/docs/subscribe/cli/#authentication) for subscribing with CLI (#147/#148, thanks @lrabane) * Add support for [?since=](https://ntfy.sh/docs/subscribe/api/#fetch-cached-messages) (#151, thanks for reporting @nachotp) **Documentation:** * Add [watchtower/shoutrr examples](https://ntfy.sh/docs/examples/#watchtower-notifications-shoutrrr) (#150, thanks @rogeliodh) * Add [release notes](https://ntfy.sh/docs/releases/) **Technical notes:** * As of this release, message IDs will be 12 characters long (as opposed to 10 characters). This is to be able to distinguish them from Unix timestamps for #151. ## ntfy Android app v1.9.1 Released Feb 16, 2022 **Features:** * Share to topic feature (#131, thanks u/emptymatrix for reporting) * Ability to pick a default server (#127, thanks to @poblabs for reporting and testing) * Automatically delete notifications (#71, thanks @arjan-s for reporting) * Dark theme: Improvements around style and contrast (#119, thanks @kzshantonu for reporting) **Bug fixes:** * Do not attempt to download attachments if they are already expired (#135) * Fixed crash in AddFragment as seen per stack trace in Play Console (no ticket) **Other thanks:** * Thanks to @rogeliodh, @cmeis and @poblabs for testing ## ntfy server v1.15.0 Released Feb 14, 2022 **Features & bug fixes:** * Compress binaries with `upx` (#137) * Add `visitor-request-limit-exempt-hosts` to exempt friendly hosts from rate limits (#144) * Double default requests per second limit from 1 per 10s to 1 per 5s (no ticket) * Convert `\n` to new line for `X-Message` header as prep for sharing feature (see #136) * Reduce bcrypt cost to 10 to make auth timing more reasonable on slow servers (no ticket) * Docs update to include [public test topics](https://ntfy.sh/docs/publish/#public-topics) (no ticket) ## ntfy server v1.14.1 Released Feb 9, 2022 **Bug fixes:** * Fix ARMv8 Docker build (#113, thanks to @djmaze) * No other significant changes ## ntfy Android app v1.8.1 Released Feb 6, 2022 **Features:** * Support [auth / access control](https://ntfy.sh/docs/config/#access-control) (#19, thanks to @cmeis, @drsprite/@poblabs, @gedw99, @karmanyaahm, @Mek101, @gc-ss, @julianfoad, @nmoseman, Jakob, PeterCxy, Techlosopher) * Export/upload log now allows censored/uncensored logs (no ticket) * Removed wake lock (except for notification dispatching, no ticket) * Swipe to remove notifications (#117) **Bug fixes:** * Fix download issues on SDK 29 "Movement not allowed" (#116, thanks Jakob) * Fix for Android 12 crashes (#124, thanks @eskilop) * Fix WebSocket retry logic bug with multiple servers (no ticket) * Fix race in refresh logic leading to duplicate connections (no ticket) * Fix scrolling issue in subscribe to topic dialog (#131, thanks @arminus) * Fix base URL text field color in dark mode, and size with large fonts (no ticket) * Fix action bar color in dark mode (make black, no ticket) **Notes:** * Foundational work for per-subscription settings ## ntfy server v1.14.0 Released Feb 3, 2022 **Features**: * Server-side for [authentication & authorization](https://ntfy.sh/docs/config/#access-control) (#19, thanks for testing @cmeis, and for input from @gedw99, @karmanyaahm, @Mek101, @gc-ss, @julianfoad, @nmoseman, Jakob, PeterCxy, Techlosopher) * Support `NTFY_TOPIC` env variable in `ntfy publish` (#103) **Bug fixes**: * Binary UnifiedPush messages should not be converted to attachments (part 1, #101) **Docs**: * Clarification regarding attachments (#118, thanks @xnumad) ## ntfy Android app v1.7.1 Released Jan 21, 2022 **New features:** * Battery improvements: wakelock disabled by default (#76) * Dark mode: Allow changing app appearance (#102) * Report logs: Copy/export logs to help troubleshooting (#94) * WebSockets (experimental): Use WebSockets to subscribe to topics (#96, #100, #97) * Show battery optimization banner (#105) **Bug fixes:** * (Partial) support for binary UnifiedPush messages (#101) **Notes:** * The foreground wakelock is now disabled by default * The service restarter is now scheduled every 3h instead of every 6h ## ntfy server v1.13.0 Released Jan 16, 2022 **Features:** * [Websockets](https://ntfy.sh/docs/subscribe/api/#websockets) endpoint * Listen on Unix socket, see [config option](https://ntfy.sh/docs/config/#config-options) `listen-unix` ## ntfy Android app v1.6.0 Released Jan 14, 2022 **New features:** * Attachments: Send files to the phone (#25, #15) * Click action: Add a click action URL to notifications (#85) * Battery optimization: Allow disabling persistent wake-lock (#76, thanks @MatMaul) * Recognize imported user CA certificate for self-hosted servers (#87, thanks @keith24) * Remove mentions of "instant delivery" from F-Droid to make it less confusing (no ticket) **Bug fixes:** * Subscription "muted until" was not always respected (#90) * Fix two stack traces reported by Play console vitals (no ticket) * Truncate FCM messages >4,000 bytes, prefer instant messages (#84) ## ntfy server v1.12.1 Released Jan 14, 2022 **Bug fixes:** * Fix security issue with attachment peaking (#93) ## ntfy server v1.12.0 Released Jan 13, 2022 **Features:** * [Attachments](https://ntfy.sh/docs/publish/#attachments) (#25, #15) * [Click action](https://ntfy.sh/docs/publish/#click-action) (#85) * Increase FCM priority for high/max priority messages (#70) **Bug fixes:** * Make postinst script work properly for rpm-based systems (#83, thanks @cmeis) * Truncate FCM messages longer than 4000 bytes (#84) * Fix `listen-https` port (no ticket) ## ntfy Android app v1.5.2 Released Jan 3, 2022 **New features:** * Allow using ntfy as UnifiedPush distributor (#9) * Support for longer message up to 4096 bytes (#77) * Minimum priority: show notifications only if priority X or higher (#79) * Allowing disabling broadcasts in global settings (#80) **Bug fixes:** * Allow int/long extras for SEND_MESSAGE intent (#57) * Various battery improvement fixes (#76) ## ntfy server v1.11.2 Released Jan 1, 2022 **Features & bug fixes:** * Increase message limit to 4096 bytes (4k) #77 * Docs for [UnifiedPush](https://unifiedpush.org) #9 * Increase keepalive interval to 55s #76 * Increase Firebase keepalive to 3 hours #76 ## ntfy server v1.10.0 Released Dec 28, 2021 **Features & bug fixes:** * [Publish messages via e-mail](publish.md#e-mail-publishing) #66 * Server-side work to support [unifiedpush.org](https://unifiedpush.org) #64 * Fixing the Santa bug #65 ## Older releases For older releases, check out the GitHub releases pages for the [ntfy server](https://github.com/binwiederhier/ntfy/releases) and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/releases). ## Not released yet ### ntfy Android app v1.16.1 (UNRELEASED) **Features:** * You can now disable UnifiedPush so ntfy does not act as a UnifiedPush distributor ([#646](https://github.com/binwiederhier/ntfy/issues/646), thanks to [@ollien](https://github.com/ollien) for reporting and to [@wunter8](https://github.com/wunter8) for implementing) **Bug fixes + maintenance:** * UnifiedPush subscriptions now include the `Rate-Topics` header to facilitate subscriber-based billing ([#652](https://github.com/binwiederhier/ntfy/issues/652), thanks to [@wunter8](https://github.com/wunter8)) * Subscriptions without icons no longer appear to use another subscription's icon ([#634](https://github.com/binwiederhier/ntfy/issues/634), thanks to [@topcaser](https://github.com/topcaser) for reporting and to [@wunter8](https://github.com/wunter8) for fixing) * Bumped all dependencies to the latest versions (no ticket) **Additional languages:** * Swedish (thanks to [@hellbown](https://hosted.weblate.org/user/hellbown/)) ntfy-2.11.0/docs/static/000077500000000000000000000000001462047176100150025ustar00rootroot00000000000000ntfy-2.11.0/docs/static/audio/000077500000000000000000000000001462047176100161035ustar00rootroot00000000000000ntfy-2.11.0/docs/static/audio/ntfy-phone-call.mp3000066400000000000000000001645201462047176100215340ustar00rootroot00000000000000ID3@  ? TPE1ntfy.shHXing(  $'*.259;=@CGHIJKLNRUY\^chkprtux{PLAME3.100($!(PLAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.;100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ~LAME3.(v(100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU?ZLAME3.100LAME3.100$LAME3.100(LAME3.100h ~LAME3.100?]LAME3.100UUUUUUUUUU(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU$UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUh UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ~LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU?ZLAME3.100(LAME3.100$sxU h> _f'1(Ya@TlL@x(t$D̿t)<|$)h <WciƼ5n8 @œ'zT1S9LɁbc8NU0(%,(`B a0@iz,T X(A 6wH (@EA9dL c0(,HN?PxyAHDJXaB  - @{`wW``=mؚ>+›'snLB! cc!L )&F` .B&C$Ar2-t@@awMM &a%w0* UU#2T z^E`Pj1R+W<'PuOrPZ+r.U=ph_jy3]޷B ,Sk}: H%kG GNJ\_^ y:|J`AU\/_vrȂOc3&bjNqVer] $KпJ'^anSFs36dYğz}f͊oEjؤ=L(U@ݣL?'˽ΒJ}0n=7_9~/ hfZ]`qٶƆw\JKǁtaΣ9e^o8r1BRiwaFOq_̂.4.Bp/&@-볍%[ 6r-r0+þnyx~o8:p럼DD󟧝w:{<8 8qNjXzs,@VVK88z50znt]&iNI7lcZuu^0*͘32!$Z=3_:5``ֿ8ܧ zcKTfo4蹜u.[OB$Ҡ%c xI'a4چK%˶mUW"uqm}KR޻މz-db7&GKcHC|b^QP c޼ЈqNOI9/QXٷ$$!W sF\^Jh|;D&΅V+t[,^nwF!#'/ c{{|N:MST-jYgzrz#-fb9ǂacuT8SEEjURCkoiYU&@iZb~PXYeuUUm}֛j%UVui$TY_Xhk?UMQa*2nȩ)0#- $+XrC-AλCR8-L>69zJNanz**\ gěؤjMa( ~eJI 0FG{,2r&$}j EN% &(%>jPxƄ RFNĭ>C޻f0fn1-)b.YV,C 6niVGÔdQ0Ԇ67W[n/,8PG9x XPeig.j| Z QAy8`2wj"jNpxѯY32$*,Q'PD \Q+yӟmb%wb$}j)9JG,`Nf5}p(([+'*[Xsq0"f& 4B3A38*ڲ@ p)vHBWP )ib^ LEPXHB HIyT4؈8I2g TԳ}udOcn[O:}M6#qpNVw=G҇,~clSw^ݮ§JG>/ΚszbłB_JM1IqLl a86#Ʀ[X}"HUQNTňPR (BA65TTRI[ HKej bLS ?pc3hL)X^2(s[dǎSmQe_#=^%@, 4o[Q yURS$^)j^RCBӺzF`2BN]M[݆{'XP{Šy  Tզfvkzk[V#1Yj;g >ه `Ȥb+^ |]?=T7%8aі:O;+w_A5_7MN)%}˽, IY69,YexDq$YpBXu7eAq6YH]Jf*_[9DjS(i؁S7MޫI(_ĢBŞlܻXcw[/~[w[s:{oW򫕏Snk=Zߏ4yk XojSWvso8Ad:̕U!RW?Tܷ+ ֟[oㆠ%AI|hyе˪3Kz7q\DFIcQ8Q1.})@ȕ>RPHR3)17jhbV~?y~Fy9&)Z`f 89 U/Ҭ1MJDZzW &~F8)\F }4EΆ""C55DHun:B \f_CbM<3A646eTHsYRI (KqX$׋FXJ?^aE& ԰c8Ǭ`0V;pH=߱e}F9o9cjP5*Pjc'5W88n~z^zHُ5|s'F$7 iQX`X%d.#D`t  )R[r㙑m 1DW:A;,MZ4ils#۲!?E|,*n]̪*g.QrPJ'qj̩lou)ԥq[9fPWUN˴l_̑ы@7*?ijU_* TŽKgdhmhdT ASEU(͍pݛmnwiZ}75 9J8/kƙxKFM1yYeMzBֹDp"2hģ P4PbhfduzpNGMQC*%'nnj;bPF4pDHY^sp@1m’@]o$bcCE eof9K{r\B]$2V$kw~190.B8.SΦ^F9̶uy8:ڜt!WdzA-+=<j¡0 0.#|d JE!N{ =Ck[X~\[u6"Q֐r;>l19VuyI6>kn#Z8BLnؼ5w:SR*x2I>fw؛NRkR 3BqEo#&3:CZ:XAK54az\X͞e8݊eqԪ[CH焗90(ٲ5UWڐQTDz%ig^5~y5f>f0WY Q*imO̪KI$TNRU58Ŀ1Cɇ)] k\ ;-Y̾ &LCO7n{$0?(#8J,o D^^<2ڿn%2fX )ϰ5S1D7FIAHjb vy=2vϽw?[/v׿seRWp+0;mdA42!eb80B(8/+^ /])kfIU9, 3)g%ADF 9aˢFi.cca*n]+G2F IY,`8>-~p 8͙:}jb햔BbKʵI$U x4 p!3*;+2!E3kaT$l^VXYI_2}ķwHA.I$H[  8RKc HT(X]]&**/}*܀*]PGe/8H~Z(9mmC0SeȢ Lڟt!5lҺoT|քaBOηfԩĨOY-2*hX!s橋Cea4X"[MQ#Y? % 5kHI۳)f*wb!Uv5BPf׵UcP!YBe|.JK#2IR"Xl@|zT3}_ks>}z87&ЬU_RKm 'ke,J/ӅYfu ]\\gXF"6qV]O g,5|tQJ%rRC%g#yiO0[M#4sS:~~ٙϽnϺd˪voDuSoGrYm2pk33(]f" q#?fj\߶1 F, a8*$L0X  y:5` ͘@ U2)ɵ>+L`J!]xLme5`QK6I$#j}SH@ɔY#= gɞOadA̽ܓ3~3s|Wvϖt[<zTuU5ؓ|GQ]e o-~d8/^:mǧCw;wIahE[LJ{,QLOK*=LXvzRދ4s'iuȚY)xy\mQ."CHfe2)YPo%#1]}+y,!,+{Ç0ܧ7?eXxon,cq *2%w 0o4 V]yV݇^/4SwWp(?Xenp,- G$ c,)_S PET6.,U5o7$^?&`A6ϲc5%…aaR0CV"uGZBT Vs@`@^մS h<.dc= KbWI3R+2"Oljxæ"pIGIؚx'g""4O}Ii$('2I-I]hKtkVH?L&ڠ(3ˢWZGG]*^MhblxE*gM2ue-$DrU׀nLnAH $=Z#"0hlR~L{7nmE12}vVbB m5 B `J+zo'pƴX4'y6F܎QuTt6q\5t{?/;$; 嫧'|Bt%ZKM^) v|Znf[)`_ +\!@Ǭ8..&òhђ tK();kGKa:M调uؤyxO53W3)?9t VҜ LK,! HAmCyGVU$PDHvwowpJC"2`L1[@lTH+ Te#&B ;D=A Qe ]"όOZ?HD^MKqI1.ywj7. fsѭк nZ]j]?f(f.H  T("]>}[]&o-nh59(}C/=/}tz)-o`C5go1>~@gPFը&+ȼM|[`@De{W]r V>{gt$^k;ƾs[K!7 iKW%Ȧit/fy5+xg[gπA[*E87<:23> #&Hs5ZS4#H r4aVbX(ɤvVRTJ Ӓjr$q49'm:2 Gx$Z-[=kUnmZO8FS?ە?xo͖uF9721'!TQz۪U gm8THpu8-KҌO0@ik (';Cc!"BM჈eMv\F*;%K8H`X3 &ѷe B`HN-r92GM-~LiC%MMLW3]( 6+K+.gn\u$;ݝ»`UaavNӷ<>lGJv~)Zy/Hu% HORLJ/=NRU\NG&kR[#u`uZ[wwJi֕-p87r_,?Fu5[h)`41u:WR&g+b_lHu!h(XI[E`DK \`<-OGDXr"<:Y 7](fס/j>;^Yyrb/&KuG7q0 xbXKWOGy)Jw x#o3 x:MٮKOD3{K8Mz9XL3j?4Kڢ#st=m_x~0T@~OTT.,^yQ(r~:~z"b])1jOrY X˥1EIl]ml"b>b+ūʇhcTW$PT0opZ~D/tL@&k d62f.*s'db d]`_j3 3J(Љ\YU5h\/vL V0&jl2Yk Eۏ%Ըu*Dܴkz&<) 8D!P.ȞGQwqƻA.Ķig8ũ]^:wbŇ ycMn#Нe]HNksEjp_["xSm9 ".[ۖ?O VXj31Rznjwpx q8 Ȁ[W:b*!PKN !pQ6+ Ak3UzW .b0I*]-d&:'Ox*"h"բd/7>0. 1e.v$0L#S:'h'AQKLAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUU8);2fhUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU?ZLAME3.100LAME3.100@ d I$0%PH30LwM.O&JkG0ɳ4SCCFCh SWeKR(b⁊JS@bfБF(ew&| 6o1@ hT c/Zj7#_`:%ވ()0#(@N`!9&  ީ1FcH("*,X\{k$\\vX9)Cр@v$}G@`8,VŢ& BX\:g0 PhCA !‹5m:Uy1RvCE+6MVD&ZP9] FC4:UL-IVZ]C 0E#$A8sc41 "@;Ξ ^w8\L,2   _&x0 @bҩ 0  Q @e|!q!7C@)A#)V{C ك(>EX_nSXCa),v.{0( 0 IU}?6ػ=awu21ϟ3fjnQ7J)WUW eM*ާ՝n(wsRKG,Kf'v458߭_ k9ZΖQ%1g<3P"EqXtM\r_&tdM]S/Bd'YBq|e1[Q[֞lF1dS?so[?V+˜]QM<B8Aն80K^zM,D_TB;-Q9$=:_Tyun@Z꺮8AN8qwqpbQ=s hGMٝpQMljUc^vw*ۑ*B]^SPHAv3Z}?pÝDs 8U;?Yph%V9aM`-/&Hp0 108*a ˢ1p pL5MW]U0 $L9/LP7 7LLi 4 BN)6RM8 * Lqe@S7Qa,5gHЂfH>ER/%4rJ,ȀN";(aA(F(00aASr8t<:Ŭ:m p3,4HEUv梸^.F_dlη,L+|J*{ZH8Gewҥ 5j89 f gbT9Rl%HWyInBBEܗUV(JRJfBs#տU)Ycql>>3'ۭ7mooMz!Fν~+Y}o[1խfv ko:sKz!o~5/k?oo[+[˾2 #x8:<\xfFuYduHleCc 3SX0blFw a!1-y(YhP, xȕs`(b N)"@%:VP0([,Gs]aY+aaJZ dMNv0MYd Lps<ܧ 9K ARnGle1Ban x HRװun˘WvT^3šqiSh\ k bCy `DH!6#RHcaPH4( u`Awa2Evڨk(KZHп?+J] 5OěK@/ =j<2j\7jS4wU;RdGQK݀iy~L4pYՈwyfff"PHsg bƀA(d@Xv2mr)9.PjP:jH0OBR}Ϫ'T?QYK)^zu*IEVU(_3݁>pY}S./D_VoOqb3De}6:Ԋ{tWIGk@iH03.,3ZAx]MUI;2HO[‹$si-w]ܲ%Phleə}qe!r2;WfgNV1+*Ձ Tdrb2O Ģ/,͟LAME3.100LAME3.100 ~LAME3.100?]LAME3.100UUUUUUUUUU r1aUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU$UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUh UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ~LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU?ZLAME3.100(LAME3.100$LAME3.100(LAME3.100h ~LAME3.100?]LAME3.100UUUUUUUUUU(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU$UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUP)z\< e0Ԫ(l؃> ģPĦc8q! Ep5i\d^h [s֝0x0h P0NS$j7Abч4zSKbۺ9 =}7ƭ@↓?괷0vnØB(ND|_tsׂXsYo XSß-Rs})`L6Yg;Ԗ5CM;HM[bY pR~^eEP,.DXt.C7vݻNv6Kz۫_١~bhzV!j;wTi}{ùw6q +PRjKRZۮr%B>nj8{w43 B„jTX:+lU15H!=5$ݶd_YK-kSԣh閂B/ϷCF\/}Zmd3!s]jDVk_v;ie2s;YsyMZ{8g^ĢQf$d4_fY5ò^q֦KWSJ;MvˁKuDyD>*0?ɝ/Sh[x㠳,A#1(CZ +;T^h91A# #3y.="0T3gݙu5 `͞LIfn ) p ӟ/ټ0d.o񰸕$&A60(H^(yd'E-0j'0 XĺSz95ՂnB$oԩ맗Yڎ ar` ( `YbK5[ggyabȓ3)w4SyG3MOz.LPt ҈>tcrWrW)J]ےkL)5q⵰»p\Zd3u!X/.GuI&6 Pk29fUkVǢFh93]ǟ( > )BrFWA-ˣ(V `EِeHax/ QGf>(p\!Kh)kQ)Ezpzк[ Lϭ#K^N[bvGZ'j4"nПI4c83hdnJ0ľZ P(sY@ HDelS#SF%SQޗ߃R$bPۗU  A`UW5Ɣ4Tev]kJo jF8L\ _"v ic˪SP9vsGpΗBL-ྫྷ™(84n$޺5)i3:~a|Or" 5[->Qh'X-\ojsF7`X$Kz$s t Dav{u*}%zinI%rFGr'~ qa+MnM8M` xAF¡"PV]p$O@ aȈƘ2(XB!ԃHA,nVy"@PiS\`"uBEh]kM2a`L(jҴ,N)D˄D5S,D!KrѮj9U)DʕM_ F:OCEPZc]Yfi^/XT*4]$ܡ:-ZbIjѧ'6x .ml{kIeb[x𢸬~YO;=tV]"~)伭n!H <.(([ƓIќM A0YwKqAܯN(PRPDhUQXW:7^{1C@ѫ ɀ Ѿ*b"i!~/籩pi2,8A 7N5[aĨJH=|n~yl0hd xM鴊1=n?˽5mY` AA(@`(eЀg?F"eT/ e`E*T`F*actq+cyg1Fa PBBBV3 H- cTlEk1I)fst'ir,Jx69?KbeMZ+r;;U"e=ulؼIi,%x{"i"w Q8ʩ0J1]w1flRm u"@Dcv[p`x0}=E5I+5@8 !`$ig:2 pT4|g@B+;mv9˄5G s4464UUUf-,TTTգKzˤEMk-r֡zl0Ra,`n8;ʒP8Ƭ]$!Kp1=*PW_lf٥2GwG 7u@1aA`-: ke)i iZjd"/&f9⾾wI4ܙh*ܵm9͇>J!Xq-OW*UCAibnjj>~okm"ۇQثi&^8oE"ETpźe|z8ĺ/^03&hn L[xQ qҢ]KqSM#І,4e[,gϣ+f#Τ>XXvsp&đӓu8sGhǥ=C Uh.S|DZ?5D/o8~/\xxЗQwj{DH> f$'s.b1Ǡs;18T`M 4j!#5B10V2 0X*0 G&) FH( p?1pa e) `0\!ew`f xoa6`HtC1\(ISptK2 \蒦H  `N<.HXa$-( C< 0`\ŋļ,f thp/581(5"F3tɍP (a`IxH@޼D] IN4zN}\%ZE$kʖ~p [@z$D K` CoF8+pT!5yC)vTɅ |$w*aOmMğJGXtȱ/G38&B!aL i0: ?f2u ɋ֠bC%h8O/dl+V g0pjRq 7pu`%׃w^*FÅWaGlϭ-4Ĝ{8ܞ[;}hUy4)rlN~9%QgIgSRݒE"\Hf/E`V=i/4F DȢi˥u/r^vvT0SAɈEj3#rFk׆";r7OeCrz7O;|eW_yY|NSbF1%Oq\DYt9 zRX}D.3IjGzEn93wV.m9il%+e*sM0q@A#.+CmES8px|'8 `Rw:z^sL ^3Y1Ц-$ኣ*\r`8kqCp^ Gkm{xkk[CPaeݺY6rg?w9[;U|# k&BaYdtU)3Hab8(* 7چ) &%,JGgK\Z5-yMU4Rs[鵒  [sU2ۨ~]8Bm~˒LAME3.100?]LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.(&*1`100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`( $Hѓ#2Р &R#  &ap?ٹ04e 704h *rnAq͛&@ nhfn[GqAJ(3&#Hp 0((l=lɁ 4`@$s0UX8ѨO(@ ɅF|Sm> @ Bddz`@9q@v0Ȍ(#JYO><ˆ lV ˑ"11J^ M^*Y`qVNu.^S3 E&D=P d4% BթGAD\23_Nc,-vҕ(EQTȁÁ XcCvy 35_ɲx][#F`y[E51c 2Hk/ /vy= A7{I J1bqh+*0dPC]W0p62ܮ75 ]$CCjްb(5OsD6HZ2!Շ]a hgd4unMCrJX@ Ս٫Ej3S)E0;V>:&;E|̅YxF&wym-{ӜkGE;6_N au؞f~' 9ef H#.LK+kuTqeTCA cL_N9+Z9Ȩs8U|Įrj:1'Z'*C584Ln`hX'c*Wxwmr\p;̋PC-dǀ㱆 Ć$@rL  C fJ  euq&QT6f֑@, !NSBȃ%0 hb`8 @@&͝iP^f7٩&>b} ɫluG&mH.؁Em6_>!]B[Ɣ0O]GF7\Ḵv!+XWSXT'UI?~q`e֔=a-CVOUQaYIkַ){ Hu=̂63@A2I|S/" `2j#x_ Y"Wbd 2D :]D]A"L,IG85A$[HM[I&/јYh$IHĽ<{ƪW٘:f)%KEѫRI=Gdtg+5j};O9EV qXXkV,̙Rhp&!2Qku>s4SCМMigI8k2А5O|Xs;{ %zŚ EYAh5VfZ*Ni!O*:>U,Tin`t>95EMTD5B׮ب =v=RXTYfRƸi8.sޢ]|F0Ŗ AVyd9]_qjxcO$w >\}z;5Hz/;9?W;}͍uU&zrȺ775P蹩IERol.mO4v#+kURq;FU[,B a:͠ D 2 lr4-81ZXd.%Pٰ*`B&";߳dGũǀCs#LV6`*Gy&, KG^@p2$P ht0 ?n7#eF(T2i_e VP߀0]ǥ{VCrHRmq4ur/{ tEJQ뺥n꫹~9~"r8?,LoH[ɧfrܙAEw?,^~%l.;c$@b^'e 0'3$$Ra8 9A@  fxjрٰ J2Fі ?` va#8aBd&AXEh yPD$5+PuL\qZN03Ĺ| M13@ppA,2KP)* 4 MO1zLQJa<0Da!*~D3d+'8i* {L DeHK% J#F r(li 9 ؜  'Q"hEARO<1v 9R HPPQ(Y)HP@ߓ*12 Pta !vHNv " Pt245+ PdO*@R'AF4x9eFbj$@ } A_S78 .0?# !l#@zzH&%bg :*5S8[2H 8`-<|x &|!a׵ATq& ,ySt !5[>q4ֶ? %2 dxkwF$,ۙS_mr6Tel`lI3䠃W>vpmJ{<'q?|,_jq mˉzqᷦ>91&Ս589R6Ia:졀3Q7( 큧%oȾ'ZR.E`kp44Vt$5 MDZ7.[XSn]׃i%nb6 Z}[tY,Gغ>)bVˡ,8βR=dXVV)| Nf2_аA2V2/7f*Q4X}B m# Vc2'2.@ T 1@3*  2`" <F pX$crFZ Bh BR&^ TV9Jcl,0F!ڶU%N_r$Rwwr/f)3_|HQ֯\UTr8<)VwǟWuiy. Z¼sK(). Hb( -fkba:JJϳ0zEL"41 dp0pȡ`sb/HXd401` ,0P"pgJų t| B17UUsI<Ҕi @r!4\@K` UB0&)hZu;r\>JPZhZL7^Ynyah~XT3’Yh4+vZbQh Ҡ߽o%kG `Ǵ@ +V[Jܠi$2c0iucG.eR**vݵVJHAPr+; Ք2cs;q)&P rX*Vʣ(QQ--WȈ 00T4ŅD_8H@ADbe+IP$.2gX u!(0` p#; 0A8 3<鐣җ7!* }ldC()(V]0bAMLX#8]2txGTƕBKqHVs@;zğVeB k&AXXRY jn%^I<U!| ɪʒl@Pя;[_IיPAګ-Z&~ƷeèN;ZVɓO 3X`zF_|rVy݆]LSC/ <3 mHuÁzI~H#p7` %8'a6bc@Ąhbd(h! 0q3E$SР81p76p!j@nCf: P` edbq a&Qc"] nIx_i[,h֩}w`7+ax9N` wXVs³ O@{P-m SOGeN+=~eZ­lNu@#r3^yi[iVrykFzԦx+?UVƓi)à؞75>1HurY3X\tkN L\G")r?v5ì|<@2Xv(3`'&۽7>K1wfkؔe mG m#"DnfIOM6!(FuX<"(! Xܻ5en%R=6<Ź vkd>"fG zT$xx5 cc'j9^'Ώ5[ hBG8] Hy; c}%r]6:[:mmڷ_YiLxc~۬\ XUמ^q%88#ֶx>(Y:0+~YWh.Qa\xg9~4*dN9f7bBB HK\%T @`Nȣ)\W$u"5v-'%g:cjN,&Oy~]k\q;K"E J/ Pi os?tp8.R^]s4 >/D/zawCJ5V)*5{h`p/&c!. ^5]%27 ( ҄!&'M2D$.NđI$zKQy-+$c[*ȤOe:6Mkލ:A:j.@qԣ6Ua;AlZ, B*0rG۲ٴإAB L81_Xh8x1zcJ 7 1!p ØEBA:l0*Nhr$((7R5A \PD:jJc2ԗ?LYZa(K=t%yhP3k ~57S>nj,o{ E8K.o9md8j-~v:uCl9yN2ׯyeHIRpq53ZȐ9n\r%8ϳ5ϱ(5KZ;V0~."?ns7R*GRۡsa&SeW:Xc2Tu1S02U @9}AQ58Ac1qJf!BE"1/BW˫Zَ2QyJ80>b3d?WlHpXaeR0 UQ*K5j9 5`oC׀PcG47kZLD[yPJ 4͒f[u~XSsSga$8%lcZZFTҡt&@3CxfVPB d*>S&-VLU+bWH2\ɨ$C7+1tH9J\q}\YeLAME3.100UUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU$UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ~LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU?ZLAME3.100(LAME3.100$LAME3.100(LAME3.100h ~LAME3.100?]LAME3.100UUUUUUUUUU(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU$UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUh UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ~LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU?ZLAME3.100(LAM /i$$Cc`]ULH~`#TgQټP(X@NКk39DƜFp(( %NyuٕiTVh #0`Nh42B&ٓ7J@ÀC $@DbPcc@)FfR # B5P0h :?(@p铞Yf I 5Q8!MHT(t_BCxa|&a ĝpHս+Xd–Y$JD0 (0\D20sO4:)X󻛧Gmy{PJjmAF0221D#(3V]>so)JC*l8%ȣ$c3v7OVoj935gLo) ܧ /]>p 6S{ڂsg!^\iimrIt5+~ -Z5 .ìs&^<ۋ0A*wa-]k|z3i's*ؿ_Z`Zϫo_5ul_6\ff7*P(k81杽xŀVݷEO;SZۆx4 x} Cˏەja/AuRnsyRXFN +l.Q67Fg/6i 'en #4ŋm C-ۅdSTALut_u؂!5Y %"q ij(ɴ0QՄ&>rC \?Po80^Fd\1k ȳO;_11L]ՠKЄ900YDDa@ &cf$Z$:-2yb2Mib!EaMwPT  .td ċBCGzbQ񠡙tMZQ$Vz#݄0.' :d XXV^IQt L; 8p~G@d9 0,]g]SWElhgkgKDP?A|z"i け|>4sǃꣁ,YĻ͟2_yG"3n^?z|g74`.WLŽ.Յ|tCfoWM$:!L]B9fCkJSRr`lO}A6Wu6/P|l"6hUJԈ_ոٞѢU0xc5\xP@OJ2AC&r?~338-c^~ȵba8fL$ ưG',pŝ{dC}cu,ˉ4$DB` Av9S6Ia ,"{+B6IHXr̃JvQ d{g;fCC;4j.q!uB۫MF0vU$ AK2HHNDY8+snb+]z#D4W\P9TvVRp$o02:489c]Zxa3a@0УC(#3 aF*@RCG.\2*aPhġ()y*~nȵ@]rFN$XlL%P]yhFX4he\y\2MI6%XU("^K+I6wUkn={!D w-H!G[d.+rke$teX`"{Cc$>ơũXQks nQ%77iC2aZF"d3ؽK/"xq(FǯVKrf~;*4Mg͒'A13|Bo%yjżV'ZyfwP @V]AP;<2[ ;@C6B$sba6x4LݘVg*5'yabjĦ]eZI`0 I@++ÆΓNUTad#:ƥWɯ˜Zء^P cGB%!W/j:?UuHF D:O$%$R T.&PJ.qcع+ԎHQ‡VvO-C~F ;yĵXNAKA W/ܷ#Rx~Wm/ Q7:ijݛټz޶ 8p0<L'x0 1Hdb$Pj7-RHʥ5!yBA@gh5-L8Z0=\b %@BLdԦccEx@ xue aGB0@qDE-"Qhcdaq ,hň C/Đj-qkjd@IjCPSI5`JE,xN煬}5jXh-p DWrFZ;d*u B#UX"0/$dK.wT2;lyB 5 (BxKܜk$Pr쮼K)`)Y&YpW >.9ٍ .tГi 82 QYy^Ep5/U~BD.IfJd >U %e ه*'UW"rTQQ%9Z*;KE2t:hʊԢ9U1)u#'1EF&,^HLAME3.1008/3zg ~LAME3.100?]LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUh UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ~LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU?ZLAME3.100(LAME3.100$LAME3.100(LAME3.100h ~LAME3.100?]LAME3.100UUUUUUUUUU(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU$UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUh UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ~LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU?ZLAME3.100( P@ р $ lc ejEri<t : sl( @<=B epP D]qnq ,C!h !7qfQ7@P(Abx (Bk-7ZFH-<@ada@ xZ\ b!p 4 '`wFHs`08300@HIcc=1~PP8P1aaMA@ 0l*V0IfX1L&;"%f;~",`&V\d@C7qL"$v\/QBۯPDЙ* <iX ˘Jfn(X[ŽY;tElPZTV!w^[$ @088@5KZKxj2s#YthQ_٭X8/@7YuPBZֿY1aTTV&U<E&siaI6-G^ 4aeȨKEe]fkRG98m3ž0_n?Gq*B `EpXST=o0`2ۉ2B,H%}$ M8,l O@Y̬QsaÁ]ayi HfEyHZr TJ }`3٪KU2S$>F@鸰cYRZ\Y\: v;$Iڷ%T\p4x;:Ik$v=e16lrXfa4!=Oz$<:H]ZvC3D'ZT4ҷHN§G reW''9AA1u}{=^-Rܕ](qRRd *u+Uju GR49T A @4:1d"3j0(2M0 *$F0ET2!A(6w Af m(<aEВIq%\ IR!\q8ʎL sTf,ʋ ~ك]k쁮BQN1iHw:$ٙV%i݁#ҘP+XMXY†YB%\#wjL +VKܢG{(Fp'7?f]~Ckŷ >i2 Oxyی>1* jƟyJ>_yM;q&Qk+: nW6`rf_/%1GD/P&1ԵXPRJ&h_t%.ooOv签3C1QG5cًI3+2KW25/9,_!f Td-,qH;>xV8wYeY b<Z+}#FʦjAէU2<HUe\PƂjDLRBͪe)J吒(,[lBWE%g9$h}4<_&Ugs$*7D_jD 0ۑϴfhGa_OO,Ai(Y#)3m0h5ś?[߇cHiw?z÷/Csj޿ "qa㖜1eLЇPѓF! DL:@Dh()L.~zF]fRi-sj_' zi=srgQޫ:%Z]DMM{ڙ>,;gz8p-;\RFZ,Sp)[Sߏk5֩cs&H;>Zx< iZ-3.{jJ^j[:ZKvd|hH/jDs%Y25(0c镈Fch 鬏(A 24`ϒjK1Pd 7*XmO+8*P.I$c.(BȜ6M$1錀Ía n-S8[*: $& ajҙ:&2X̹ts(mߖn E`OԾHPoHfv3qKVk2K)XU$cFk"m0&Ԏô0J$`T ,&[˹֞U]7~?9Er"r>חHf唦Sr+ѫq))htx8t(j, iAc#4TҪ4HȳZOqH N. F84D (T\. GLS߸QiQ.F.I2vFTш8{ EGXutﲙ"œB"騖V$ljA+A3fS!|]YJLur9#&/dNhl>$[>yؔ5vODbrb1,u;b\HPK“0vQuwKFJoQGi$N.04,fPdap<%X}˪|+7)^SUudYw(`RCy@ f4*SU1 SzӃ[ƞ՗ B^޹D.|PL3$AŎk @GG : 5ܲ SG4Ъɤj3GܓzU#Qu1_CIEZb;W>+STT0^p%[81Ɩ-@UHm>j*{76fR kf쉒2AXb6qg̐$ĹGP q&r{/HHoq;k>mH_.DEoդEY9zf-Oi6"U6D#{damq+sVUwuT5%oo˲;5x0;ue0X$(Ks8+F`PRMNƐ>^B-D$Mm^mZ"YvJFabTLE7L*(1iŀR_7'KyX N(0FD 9ES1 h$Lp03:Ƃ"1GUHKD06E SIj{c!H bF q.L1((Vh0x(p4uw+V^֣ 0D|k)XĽGMjrcЗggs@2+왤I=.Qir1nNcw<o׭6[;"qg+HxlvyƝIQS_q1h#6uc : R[[qxڭDNgY*s SGE:5FZʘj "R@L -Cv I:m#x&`!/0.aYyF(_IȠ/}? 2 46C@@@S+/Ѕ[`P򉔒р-r#XL\8("+.uuv>#Jj5P0qA aw[\C pV$LD IZ(iX[C‚Y P* xuVs.bb Ino9eW:(B47pSFT&vZbW!/;q8m@n `˿/Y;n\ A-v' ap-~̊bMK,I2n51F[tCk-Z ge ๅi1ex Qr"Gyl` U"l"xBP."UI#f(Cdg!FEII,Y/uIxi󮶤S.#lfEi l4ަM#zesMחԄ(&f|StFH6؈ǙA$th@h1QHKK'e m=[r7 p.O,|)yq&+}cO4YZWX-3 is"Ҽdv*T1݄tU֭{&̷Z@%ަVZUV!k]$Yr ݆eݼ^]8]H`β;W:@z[{m@ {g S+K_3Ul1 }Zu(@(1PJC3AkXTs"pJ:nWB(crR@4#2.0[YtNe;D"jzեXoTk$qQ#ŎqS_<\3JC#=f*o8ĺ/^i'iG]O?ZόC=5IWT[a+ I%vyJL}f >.}HøhP浇 x [*Aw`~^߇\*')Ӳ֣yG";`Rbn;M8a82+Αт7srϘ2;!4?5,ܭ3R*F'=]HaȊ8hSӿ(uFo4W3KT?PnjB)#p;| z~W΂Af!Oz\)Y=mVݮniHrǟk߸ ݏB z0ѷ!dK:vÒ(,o߲<`oHBDn~hVg %0N+(z%c%-X](K\1.*Hꌼpr]xQf ѣFԱ N0N[֏~D~F7y!(Jǽ%w'KKҭR%dç/} K\=B|W1pK''%x?J ix͓˟?zbAR;7mii!dWxwߣK"/|3.Y>PC%.Eā@ytathS]REeFa#@ #$b@(cIUL30B %Hh* ƕ#,X&Xa '&p~ Yy ^^Dh"9Scr0P51Xr9DM\RH 8L-ˆ &`:`|"bf!ra&`` ~Ocò|_2J$0&ðv3%S2 &W$IZ1yVo=5yy@! W~JLd;ya<_SD'  ܉Qxh* Ƥq|,eS!y).K<}C3Cx_be]ޯI;_ݿb30ɼoGbr{_k[WkkB}39E»׵b{ խjkB[}'?84ʮ_xD)s[jֱn:h30-Q !pM Yaʸ'(L-Jq>X_50/jBѹH+kKJI;+S& т-HpP:q 3aߓ# N1`1'Ѩ#uۤ$:]wy/90F080>Ƶ HrxwB;_.,ND19 1|U.RB$虨Hq@P66EV}fJS"@Ƒ$h MF @`.,t c.E'e,!& th d\Ȉ2]FeC4*]zG4)K&od+HɟR[3M$U$I#H>D^_[֒(-x&]Rb]}WM236 Fʽe0 0P7't°4$XFht@gɳpp0X&&6B =D38[U".@o'-bpd5V8,5r#Š+mO^钾KJewTq(U[aes-H>ә7[͍R}\wV*g.#|aqx1Tl1SLI}a;XU+nY yWep<ͦ4$*gn)^6Bf!Ao*{9U3Jh#pg'7Ykk¶"Qî ŷ ^)]J.0,fBr^ ΧoL09XX&J" rP8`HF<@c#TZħPeJVD_:"2!@%l朻 y s Xr:<$9"L&[+j& *+x A&bΓ*-r yɗJc%ڋUu( 5)GT\ukXV{}9/`kks-v:*N?:"{Թ+6yXHBr+z=/^85ԦebcRP755q߱VU@ܳ~VcK_s^QZc`FbMA ]4?JokCqA}_=!F!Ώo[5NTCM`a ĩ7 T#ma 4 J3b$ƞNɦ޷.!JTa,ZtWyi?&(7ֿv(RX֠+Eʂ&e\^8:֙x&ՈҖ:*7Q24s4O0ƅA{`R-E+rSf!ˤڲ%(Nyvڭa{ZʼʵyҦ]C}>H5mwӽ}^cy|e`^ٮlֶ-c[W_[3%αۋQ88_Zx4 r%j:ħ[ܥA"~@vn\Jf*Pf@#VG dB2pPb.a0 Y|(J)j a3$nm ߤsXS_nREnMY&֟av?ObzjCW]윴SXu/jp-X4 *e)wJڿnՎ( i^\D(XKVYF%!f#;F/M;Ptw]"uRMJCZ]ז܊ا{ūuԷ˗/4`L ^WIc {g' $f`R$#%.$ P0Zk" LLt@C@T 1#Ed`&_TBk9VO3a ^͘zU8H I AXp "]E:ol!>eq$KC_^HCY5!(Z5<گx_$HTpw8M<_y[e[.*)JEqxVMBW_88V}xcS.g5;=CVj*#.坜|٠'aܥF6ݴՖ{ a̐iRWgeQC7> o17 ac e_QݾQ梣{ጣ"&7*?R !%C+;"ca@3; 2*#`X 8-Ϊ_XXҌwx,!}!Lal0‡M\eFtbUL Rw])KBXB N% LUaWvLJ* 1 ( ~:"Rp>KV$70ba9 ֫ZnLg ^N>p*TN֍*fFp0ӊ)]-aWk0+)XUfy,V##Svc!LP b5ViJa%Ѻ01)/<)͛4A,ֵ^M;bzgj<8ˢ4R!erAS8k7Y;HS JT1xg1ALdףkI- V@HY.8\hfnf1@Tt(hP tĶ c$D&6O!&2#-D1PHAHjl4ѠJeVřhĥ& 0L@`B-is3^[YdRd TӲo%%b3w\V& (A2X[–šɀCbS L>:qF (g*9 om,_J98'.tԶ=M.[0e)<=qL aX0 ARs'1nh+J0 ! r9PhHjahX`@9rf< Iq0U#&iXh0v%6z-Ha0x^wA̐00*wE\_ep 4ͺ3 `XNYA5a`Ja 6) <;Zgó.Ys78'縀 RLa$L!D3.Q$ 4 ;p'c 4б!ntEIcrpCpE|qa( (' 퀽%ƓD=7KHľD$.]x}1]]cvF6m־O[o=F L۴[_1+=bWWMZ;??fg_#ֳ ok2Hjipv.>kfW+'1[SJU3zU935#[Z=noI$s*0 kC0"?ms3Dp3.u.X|l&-iVQ)!dd 0|9~U`dM?C8*>H삻44 }Zɋ3 nʢPUfژ`MK5買y_*=VOUP5&+m:֞yKSCɓ DyccYh$ ;9/aDgnۻ ٗ߷#Y# 5KY{ 0@! y̎oKM`bg?Y846 ,HTb\ȔĘ!.TqCj!@ Urg|Ac߹LlM1l \0Jć`䀌}R֟5);hW]mǴ?UWk 7VLZ_݋ Q*$3KaA\t&P$*Z#k&<)ubUi\\N8-mCME9a|LٶG ;*T,"Va2Q P- * T {>{IIea֎xey>c"aTx䮫 lJqP[ed|L-MW5dlwqNcյdа:ӘaiWwhTJP,x(hiagq‚Bc PfgZ8.RO@$rX7.e,l ${.vv:V:&v^Iȍn !:y4ւ,QQvW R)y'сi,F L|B%e.L7"S6 ~;V o0bZ!/` d0*㿶DF?H}Ua؀x HPsIq@ ŦV$1K;~a- iN=57Kk\: ʓ([5e/q2,3E&?RHT* H,$HPH"Ir$@,39i($5UUU33꪿35UUG%9$JyU39}UUUTjڪ3sH333d8 C_ĠLAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU8&+f]0UUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ~LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU?ZLAME3.100LAME3.100$LAME3.100(LAME3.100h ~LAME3.100?]LAME3.100UUUUUUUUUU(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU$UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUh UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ~LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU$UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUU(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUntfy-2.11.0/docs/static/audio/ntfy-phone-call.ogg000066400000000000000000001447201462047176100216110ustar00rootroot00000000000000OggSxJg vorbis@`mOggSxJg~&h Vvorbis4Xiph.Org libVorbis I 20200704 (Reducing Environment)ARTIST=ntfy.shvorbisBCV R!%SJcRR)cP[Gc9F!dSI{O*XJRX)ESLSIR)EcSH!S1esKI %lMtKc1FcZJc1EcRRIs:f%d:Fb|0:B(R-[S-KiasJjc1S(АU@BCV P EQАU@EqqG$BCV@((#IdYeYy/.!I̐SI&)U99dRƘbQΐS 11)N9 "CHd K=b8"A!Ɛs J!rI D9)LJ(I -"眔NJ&RˤB+8XRH)ĔbN1R)ǐR9Řr1 T1H)sN9 d * 2B!+8$iihi(z(y陦zlyiz)k늪j˦ڶ骶ʲn۞ʶnml,ۺyꙦz麪ڲ꺲홦늪+ۦʲʶʲk麢ڮʮmʺʲ۶ 躶ʮ-lBT3MLuU׵mum[3M5]WEueՕu]ue[LuMWeUeYeveWE׵mU}]ue_meY}uu[eWeYe]Y}SU[7]WM}[}am]WUօUu}eu0,뾮00m ëƱ뾮ܾj۾1nƱm+loq,ʾo/ *˺ڲ˺. jںp̲. +ǯ Cնuo 7v@!+8!c* R !T1!cJJI!* dIJhJ(PJKRj-Z JiZj)Rlc2dI(VJi)sLJƠB*JIeIɠ9HRIPJkJJJmJi-ZIRmZ# dAɜRJIZ朔:*J)RA(%JIJ+JJRZk՘RK5ZIPJkS+5PR JiVkj-PBkK*1cmJi[)[XSK5blJ-9ZkJ-R[LXk %JiZJZJ*ZlZ5b))JlX[l5blXR1XsKՔZXK+5kn5R@ eА@` cAhr9)R9'%sB)eA!99B))[(%Z, M Y D ( c*sBcAsA)cA'%B)B( lДXА@` b 1 tR:)LJ'Z )eJ%ZH 2k%bFXb*B(4d%@c9gb9!41*ƜsBc9!9 BsBBA!RJ B)tBR *pQdsBCVy1J9'%F) [cRjb BJX1!b ZvRj-ZCJXk!b5Z{j-ZsιE6' *4d%@ c9b1CJ1Ƙs)s9c9s1s9Ƙs9s9砃9sAs9!t9 *pQdsBCV1RJ)RJRJ)R!RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ) gXI:+ .4d%9'%1tNJI%5A(sRJ)ZjRJb !Z Vk)R()KJ2$ZK9ZjBJRkuRRIZm-Zk-bl%ZkZL[K-bKb1 npHqBCV!2J9眃B!R1砃B!DJ1會B!1 B1B!R: PJ RJBRJ !B(RJ)!J)RJ)%B(RJ)B(RJ)B(RJ)BRJ)RBRJ)RJ(!RJ)RJ %RJ)RJ)!RJ)RJ)#$"l4LQH h  "$OggSExJg؝F fjogckmlmogihklllqokiijlljqrxuln-hPn-c L&CaHg(tln-cPlAcȄ;&n-c tCҘИ|n-c@y(x0lxen-c 4:Fn-c L&CaHg(tln-cPlAcȄ;&n-c tCҘИ|n-c@y(x0lxen-c 4:Fn-c L&CaHg(tln-cPlAcȄ;&n-c tCҘИ|n-c@y(x0lxen-c 4:Fn-c L&CaHg(tln-cPlAcȄ;&n-c tCҘИ|n-c@y(x0lxen-c 4:Fn-c L&CaHg(tln-cPlAcȄ;&n-c tCҘИ|n-c@y(x0lxen-c 4:Fn-c L&CaHg(tln-cPlAcȄ;&n-c tCҘИ|n-c@y(x0lxen-c 4:Fn-c L&CaHg(tln-cPlAcȄ;&n-c tCҘИ|n-c@y(x0lxen-c 4:Fn-c L&CaHg(tln-cPlAcȄ;&n-c tCҘИ|j/>"_O_{Gg41c#G'i3 xB#ЌnoA5eeC)~fhFwfz;V~K. H3M~@x;\Vf JJNZz겹VTʔѣww!ЕsQ!0lD]dlU=!z@i`}ITu#ڦ}k߸]YJ>ySV8ݬz) oT{@]FA۔[ƵBw"wŦ9&:񷃯f*)^Ԍm)XL.eĄ61~\T~Wr>`-[h-v;-nr>`VN;UV">ب s'K[LKC@N%S8ePCuŭsylJWmu اH@!f~ ˟U RvwWf{#0oԈwdM> nb]XدOap+o\_23фk ]2j zV59\}r"pZW!KU:#eWR\'z<:ҨbXf}BёTd rZz xp}tb&8KXQyݖ퇊*_Ҵ~ ǽuZR"BMj} )Lu 1q:Xk[DCR>qOfc3 G< DNj cc#YzWcW#תU9TO4YNWu=- Ya u$$gqۼ̵tҌDYo)5vXuT|BGFyq4Ru3xMy<әZQ4.-iCo0.9Zk@` ~e|+[Y(= NS N;BS˴?hub 7xx2/?]r45_JE>M1}8># X21@(w6$:(5q*ܮqުwL sDgz@v?b`B;֋ٽ|J@2ipx8%Kc4 ܘB-Gx ]^]%ؤSA,wGn"Us,G( OggתǙUFlKZ#O.k7+틞aav55MQ6;1_uD?7CX\Џ(z/k0@&aGB:l}+di8*W/G$wdSvb\EdC2R7ߑsqn0+~i~غ:l$FD ]ifMrJ1Iݹ4x8T~AH+ZrFg rib?Xmj_o,~+|~ eE$0c]g,K$&;v݉6um ŹOY]M:UuG{A'!C%!vp[9^f\"c5vC^h4,b9\N]+͑eo[kd7ѝZ2g9WwmB"~>dȟ_"] 庄4K4%MKɼ=[l ׏13MAӳ|GkQdw3ġjƳ>IoL[ N.%)<-vm&xVVhN;wM}^4Q\+Hv {8# re k( V#@ArmSR_yZ<2up؝'3Fڎr&H5ONQ#yHQ%70ƫ'{yR%oE7'hi}|]~p,35Sl{sgsHޟ%lW{2~n[#}`6_~cߙzߖ C &g-:v|(;G`܁Px$~ItԃHT74F|U[7N-Fg,/̞\ }~OO$v BYB#ەHy^t-eZoj0^+`*@~öe_Ķ0jIO,jdIaP/{}Ӌw.}ӡRNqm1Z,hi{dY(.3rJf>= fpXͩdrla|]n"ŒcE(M%<ĢcɝW3wsv#%-tgoGYjtlO[&:C0>]霔7|R'O]_>*!1/ɼQz`l._>A (@a$@>Gܮl6=:B!6 (XUϮ Z6hvx#;6絜&4i7ޗ|s/s|ӯZ&>g VLu ) ̶FFvr[ 1ebZ!qlEִBa~&N\)m 3gf=K;_~22XtSXE3(@ Rh?HG=Gjl=Ƥ7NQ}⹺"yk@\֞ư( 娓8eh?N ww^*FDWl*z}7ꐠUkAA60yC!!U%,fCDb,i?wR^>c<tĸ}Dfw.xIP(;ٰ/ D *3wۼ־S- }O^;0B)}g ߻/Mwϝs֏@#c= yY?k.t=F;Nv[i@e9cOpg:r[g;5ɓMFseu7֬9ou7^AtwB(I!p&_fc{f;^jav g^r\x^f:DQarRb}&i<\>b@GF!{`SwZk4Y.UI.o)Fhn[^$okU 9jLemsT2w #M8u>op+iY\=/V;[|^)$)0^]"9il>00փ!Ar7c([X?[.)E,2Wo#}3\I٘8i2%<W? s62~mFM8cB=uxxO'5g/,>wot桭V/%`HD6098UR FMπOZO ~(+PuŖcEWOog:xˆ̓y\vgfr(#LZT2 ( rO56q_Q0/LH3-󎜧+]kAgmi`+pAG . XT=w|+V6\L?~L͘Vb%KqόU,0?}\=$|`>#o|j!i3Uqv!#Ui1~Vr CҰVDrUsÂ<ҷ}k)rW]7ABҹMJyt Ņa"0>YtJT5tk%%ʀ`0AH])WÈf!KpI#V*U렗& 5FMӌ譙;$çUZ͓DDH &vd~zAhHQZM>< qH 47O=\z)XJUJ}.}kgC2zIճk׿dzN}~ms/lZR|GZfoNJTùs.izr m`2 v1Vh  w>f2YbETP)E~MDc$Kt"assh5Q\3ak{P׉BQh~e ~~ =$ fM!W?&Bd_}j!a|[FZBݲ?A-Ùr8N=c$mFpJ7gQ vK˜ 2|みӫLٻ׬ƪ12f1}jStڵ`|;:$.AF)EL% eϩ'*Gf?: H<>|^3kM35xD)[OP4 <@Gmfc*gVɿv5vbiq)]"xeѡUW׻{G&GۭU7ܚ3qXxGFG3ۊ셺קvbTOSBD˘O z)mI{Ebq7ꄡ}X@ ˁ:ANcZ}:Zֲ;'\, :q|탔\2oK& 9N!g15g5 Xt/p-'`aR:`iE^ WRIE !{^19umPڞ&(;pѲoMʣd%8!aø^.pDnW5H ށg 'xA PA6Q,':gņeb.}K5y^MY+t&!պIJ'o}uXz֡C^& YZK gI֭2etW ёeip_ߏwj0zؙ kq~($Wuh~5O회==^>?F8=K<Ǿ mֲ6GG " w,QzZrY4(e!}`pS.}[+ɞtjb~\k-^ֻTG̪WO ii9S>l8x~ٴ8(^F6 ~:Гt2X( #S)6{c_Oޟ?V"tORtœԳ맞n3uK,y^e]'AǞ.w.~Ua"u#C^w=90 =Ɲg?oe}Vusw,3;]n>7f;3"}0%/-zgtJZVm"{K)h(#x`^H~:UTLo1k/ܬg{2ʣIqZr:XGb뉛Mnq$L)4dkXUW8>~oԳl6ucaؖQ^m›yhwœv_ Bf}Sq`졐z9JcYLDkOggSxJg(tSP0jkhotlmpnfhemn``dlimfigcgekmkfbcggfff+zw @zˮwu6okcNK{@zi>d̗:]x@Ź{ n ɡOѬa^&WwK Ý8`bn-9QP)kXlLD; y/f8}=N=jk\ (6lE%f Ǘ㕟p蓬/u `\8+0 @BtL~ʅdʠZ >mkiIrжuKrm^%Ɣɑ#6|#t[+=zJb7޻~Mo\Is(.|AZ0 3)4(]rgk}ղ|CfS&.NeeT6%dx8g'ewҕ:%&ajJjj<{fb.ҚI&xa9~-Xt2ٱ5lZ億}KXm]?.ͼ<DDeqA1!h$B?rg"Oa/6SKDtNd_d[%` h|ޛhˉS"=hwO.~a~v1B\:1j^({7\UzgGNGPss|'Izȱ jBa'&@ԀOp 8ٹniT}Zԝ/w}S_|u̸>:4%p(qfc<qӕI~|Xlbs+ #?V_O}ݮsj"~yHzO_E;t)Q Y8M P?Uucu]Xё8CV#Y=1j H3Ζˬ5Qx il K-1hB{W3/rVro6?:9Յaal]*/3hzp#ѽ|.;fO<4|1d'Ǔ:衇J%Jc_!N9D~IcwgsJ9r 塇1j*}%n nQF0n7q\?|;xzJ16v@t'l6y'8~CC'Cvez'4KE0 ƛ˃nܝw^O/1'd4<fNm^|ґyK$8.qoi7HSD4J~:0:@6k4qҵQ;;lrr\fw]2$)b~k_S`fE$k siZixL}Z`Z.*0&n8X}PG\Y j4gV"Oy'xR=<z:ε>D\O\}T2FzZ-?+ pw gVUͣ]eMtc+vj`D#hI]U=Ϸ@r'* W 3h#bENtʯcٸ=*dm\MFm9&G -@MM*b7&[na}II)L k]!R&zz_ZaبmBX6Zb蟙"}_MJj8ݪ-_|eBnyõiyeuqr! [ѿ)>G(<#z^o0s0pH6ߕ#^50S2^L$TI[,iV?i Ub};ܾC37}Fz ak7rxX``BFaӬlܥ[#Ds+k}A-z~ݮyZu%j@G:utϏaq1%%6\]qYбѵy>(odq?(cH, E)iǦ<:7\=Eӿ}7U m22gb>WI!h (Uer6c&߾J}U}یp h|Qؠt)~$'WՒUm2gtr//[}3<_AMSX$RW>RFOy~~XNv*0| Y_edcDgFwwr=-|oMPvv02ݪ&_fCGl"{c7!ԗvP{Nx@fjÿ-M`RdL|>ON*LYՇாK9.[r1c$C{7f2kۋ~kVĉjSoW{0VvΌֽu6k76.Y"Ogd3C@vͧ~pC8#4bIZi"_3VU~\>{m/dϑEN+g3*{~.9e &qyD ŶGtl^W% _f~ׇm=7,7qm[20O[X?O%8$\¾w3E㇦ h"|Wv?%3sy Lb<@b}4%qlZ-wvzg;9vf n_`F>]a=6$[2}VmntDf~zP50޻k9ɚq~)Dہl!n_U }DOl]^ֿ_s 㓴O>aJEm.daw*<䡥[9j̐y􆛁3lx#txc7 11 V%T Ye4cXݑ˲gOG Tj5']sX#%^wߜy؛'z &w˱ɑUkr$6S5^~-`Gh  qzжx4e.L*o/!wу(+iLiC8< 7/vZq̙S>ϟ41%N~Y@O@`ณ P!Vdt!ģKOYgXE8(0:7b,떤6|M@R6yg%^ 6kXOggSxJg"#DnmjlkhdjchomljiXeljif]jffljgchmnh45 h `{@LI S볷>*<Q}ѧmӻ4 l5b╹9c~{fIQu/2EƧ7W ~].aMO%#l"R>x%,Px w2η9r~y222z;:ȺO~alu-@$uayp+Lvu?x+\O SYtb",ꦮw֥J0Ll,Et$8ѫa MPFQHIN cއr1 e ?a]%3, Пi c壥׫.jDVH#u3USxӵv築m-y :Y巓\XIc-Knn0fvgAE  P(żנּWV-v Y.) ~UH\A%QF'mkm9Zg!z*wȃ'=77r"W=OU l>j:<<lagW Vw%%^??Q!5qufVl,2ޖԚ,Pш,)KO*̴+HrS t"4 @6s/ȎeV;4frަj|8w;&L9fԲJ(Ԭ>e9UbDD3vFd|/A F'D$&Nla#zhY魷x1i|1^x;v͠>4̨[XoiT+lc[f#@6Ķ14O7nW_)֣%M>!]}WP}P}{thPf,&܄ty>):UIzif't e*@L`Mg\xWMlt=85atߗW`3>ߚ~c>oCsXU:Z\iSɘL׬wfxKĂ ^&Ot'f~`3e~vmKIك)o(2f \;nQ>0a+ kևyW<|tf T A}ay딥{/デV&5[7)o'N>n{W_@B:F&t9]a=*sؒ!_CsbRoCc$N=yhM+TdRO_; s7w|FUULs(eAw4,n|y/i($8nn-cPy<„;&n-!4&4&_6n-c@dW&n-c 4:Fn-c L&CaHg(tln-cPlAcȄdn-!4&4&_6n-c@y(x0l n-c 4:Fn-c L&CaHg(tln-cPlAcȄdn-!4&4&_6n-c@y(x0l n-c 4:Fn-c L&CaHg(tln-cPlAcȄdn-!4&4&_6n-c@y(x0l n-c 4:Fn-c L&CaHg(tln-cPlAcȄdn-!4&4&_6n-c@y(x0l n-c 4:Fn-c L&CaHg(tln-cPlAcȄdn-!4&4&_6n-c@y(x0l n-c 4:Fn-c L&CaHg(tln-cPlAcȄdn-!4&4&_6n-c@y(x0l n-c 4:Fn-c L&CaHg(tljok|u v}AVjF}8ЇF0s t_aBgG3RGF8gư[o=@͂[}z{$~PcpL+^ja"&&tB"֯=\^_`ݟtlCh{Ml!CFfT_o;J&zd<(?܌?wݲJ~kYL }EU>2qr(_zX0Z?D*u_K]$}uCj3",F [nKzW<\$<|χ'fLIDqV5\Zd8O 44KlZpx؝yo 9 R. 3tdEkZ3ew5W}^fL:=>QW{!9?g\-rg3V:3z<誂*pu5@ $5ŕB*$}^ʒL |OS&qjA*=Ÿ. ']wo=1'K_[&~X}/P%\t%`A I7$?+zO #CAO72m: k6db:.uwgb(r\ zƒw/ U`t,AW{.h|[ZJFgR;O_56Ӊnv_mszyĘͤOarM;e݋˪ 5rSje#ajBӉ1d oo9U=Vڎܟp0Tp99eϕ_٧Ѝ)r>T Wnf~vxUs2dpz;]JusCXLBU$,1cc}݆5To$]g6Ԛ>˓;{MBĶO[`R ~Y=9`ߧu2`A5. +STj!Qb+CsO֧m>Qb{X{bYHHІa*~ TͅrR:`4W m8@ z:>F>{!}Sk4 `P[;O :9KUHz9}nѕO?%6(h9(7vURe>a@ ` `g൙ ձ l7:GvL*"9Dj)'q#y,@aXBUi}pBi 7^zV#?>n,:"EW6"M>ZWoQw=B1fgY{!73x3s?ː@o?NfOemplJ~z. 8>;]P!qtB4RسXߖ|P2~T^޹ֶHˏV”PA$ӽS|pyX/YE@(@PAžlxߊ3Yr`_\5W 1M.CIl,f_'MM5t18Sr 'XWLyr9@z] KDQ6E-#_Vmt}gZG|ܯoAC~`|0W$#B"!RKuܺ:Hũ3dNW_p%u {Vi6':^ 4_H e.]}YmCчӣ=pY\$V2鉓Kn=,v*;1mY .OggSxJg4(ZcijihheimnsjX]_flekqrihgfclnniZakgndigp~XHOPt aR*/l~<4[`uہ#33%ԻxZ3bE=uD]GnɮΟ]Yɾd(I`CYlQK?/"k*Y>L]OG;Z\Nz5y;)j i gyeqvFJ:Eocب;@TsoDo#O~a _aeB-(Fh9+IiREd#DaF/ό0<33#ih1(N_ԭKykg)<4'd>S&oyO6ZkM|VҖ NvɍHd[3/i nPhAu'kgOw屟v>ޚIyl|*-,O։%A^ PszZEgV/u-G zU|爊P|7fJӰ14_PQ(:֗_Xk[zz`l3Ҹh'Jtlʼ4I4 b-1qX,׻"QnbЦP9~};~,s޳C 4O'KA9ΆCFW~n"d%OZQ\n#7yC$Բs-_%*} ~f_s)'yBó~8daedMj%OywN?¸}JH%+H\n6$(/2~%D Ẵ{<8֭HZܥ9 AO@b[FS_u?m\|i5njzYa9~Uc@ԁlGV]Lz >?&ca<Л0@DoJKSo'y83>bc1j7 Bbk MHyUi>># ՠ 1p !o+sHB}GWohB2Q~h|_UfwOj̗*9҈i~W7s ۫'>#^_< Cd#Q02 n&fZw$pTΥ[^r1j~R hi: gcv 76K%) A 3!sPoJ Y+AV,s,T9A&SH4wYqmoY睌h})b8j+0 @qdp?j4=ySϵ6'u:?cA]rH1fu9 %xd#țrɼ䛺6r܃WjwZ(N-Dz:1,ˇ^O\nʧ9Q:١B~CQ֣?bTef~S4@0Xuv<>.eMM))ϧK7Iln'؆~OXq.]ǫfgHJ0{(HD1+\!%z! AV}Qh _׾'UgݍxgrB0EHFoU͉w[\;XQeނ>6urέ_ qXdEa) 8Cy@  =?j4,nGszK13L9nsƳF@[{cݸ2n}Xg73X%`Q Kl6c{< S~[1`֮N 3cƟkY3V]'۽P؝; &TUHu(_ұ;C̈́['_tOiFI~Tl*{O68C[4HJBX ~IĘ3N"yW`,~'{God9Hp0ۯ|󨏘S,\sOҨko$~s> ~~0B(z>f/ NfA* VC7Y:{B<ݓG9*mb]_{,_B&gAi͏ [lHG7,T`.=|\.Q6r?޽~yj1!>kuE_vuC=KxIWqvb:LsJS$~"t5qlF"tFY4BPoդ~IrˣWSet{ݷQ. *t~,5\b(Ԁ%e[{ZJHN kGN2s{cq~N8©[ Y ZՓ[} Z(| p `lq0yI]lD}ot}gIMOadݲ W/MtuSO8JbT_5K?c5$Kz6MF NO^{a~n{v׽|"$e}xru<۽i?87pIKlfoGl浹&ٜs?V5܎}!C0Ͼ͍q>uضqׂ fh{y8=Z^siM wK"sFd[J4d<z2UQU !C%XN)WC$ϓ*G}&U٩HTJ];bJ+nF=e#0A\K8S[ݔ~zUesPXէVauuVPҪٿSUD`8>9NE_@ }u|'~W|Ee3IOx25m|}e2ɧ$ š \ ٭+s}5@]H9n_Oy?.{N&AIz4 *Wz]bD^Z]v;aS5c>y neyǀ,7]/YK~G8 ^`+g}zkق}ٴ 4A0?c %-kbd;KJLkN*s= ??~tQmZmLЯfc8sMKݙ1yZn4c1[ &{N~ NJYRVEN3Ot R˅dkh, ?y;Or&3$RWn/e h +>zҼߝ.ۜK!_NôΙt(l{Go{A,}%&j2Bx[i۶庯xYmr2cssB`kKrU.'ӫ?&IdT cQ¨vʮy3&"Z?,78MX?V# p<&l ̨t}lV9{}$#v84{ •nDYw;;ۮLw۝DI"8?98rt[xTz;OggS7xJgƾ=/joojkgklgkeiXhdmdigopqnqeegggnr`up^khXZ9P@Y  F|!itҔY5c1e,*(= j⿒tߺtu#cI-m1-X)3PcKjrMYS_,+ a6l.c45i?66Z:c]:%r0cyVV+{ѭȠ/=j1r~?Y.`}K;`[tTGn.<< l HԫlxThF`vc`džC5MQ>ާU亮f&&PK8ef䍹}[gh P׭U׌a X48Ɛ FPŦlJ ?bե,: !{@D|ڧ\ī |&2`1ƫҌ tFK0.TSDdeŸOE4\dq=Vw4x·>ѭP֋#{9ҭz7fk`s9O ]јA]zn˰~8Y[ǞcAN{rcƋ<]RS _lojd"23NCbJ @ڛ*c5ڱewL-Z'6\HtN9 ouȝ0; ooK¶$o jwTjn?m!Z܍+˿m)tܰ4eyT0%5PUM>^h;ZRn˪e n-c CҘ<ɗ n-c@dW&n-c 4lPgn-c L&CaHg(tln-cPy<„dn-!4&@cen-c@y(x& }2n-c 4:Fn-c L&CaHg(tln-cPy<„d~+aK' YsLH< Be FkD]&DD yEFz{e/A= h,A3hCl"Sp0wiJbK@w&sQXo F%FH=c.d8mJnED| cҕa[hxs 3c:^vuYw|m'\:ϬWk|MY0"yn7Ykgʔ%Fx4z~OϏ]yoڳ!P[nMI{oɶ;&yˣzIчkho Pz3Hg=ÐazR3F ??եs?[Dʉr;-wGRx7!}qSm}V;QS=xfZn~"DEMzYWoLJQB> z|et=dIO7ա}9d |q5"GDp/ z5dzZGgPGDBw:֞ES;K^Ѻ2Sǎ ސ0O\=,^6(Z`|Թ>|W5<ּ313N.+ZsIXIOG԰.X̵$GgZxL :.q'~U= SM1@@gw^|`s$!R ץS[>o`aQ;/nl}g1W)g/#3ޝG|VV2vX# l@)x+H .|<@'3ƾFAΡ{t>:Kc w-F R,N6Pˠ!iv9= n(P v-_<4ہ_)GNHQZDF: v`! *`ͻZS{>=m߬!N-22z=Bo̿GvD*k*Zh~A _A ){LP3[ ѸtlyD76*zVqrs.* Bw4anklmj*:@A+6#6/3Yub~u7O!D_üo5ݐwڄ&va*a}V*57@7av>C3R1:b|Q2jhc cX㱸IxgEv{zcOI+eN[.cʑU;j%QAuk(eQ b,ǻ aUqCΆӝ-v:ٍ}s-@d8?) cL".ykjSOޝ܉@19O@Mf&\KV3 ϧBpUj/Ovx5:S@M&ylH%'LM\?q-2sJy%^.*š1߇l!ӸsY8V6JO0B+vhj_uFkwmjDJox (J~A?<_)k'} _Hv9evԅX1W׬Xr.6W"mh/龲}8@nKbus<qt Ry [w04oe!p1,u|}w,hہ7nQ!4`{XB4?wM|+jCfXWomA>>>gݨqǁ=yl֚a5w^WvKJ6-aC[ʣsȵ]%WEo?=tik~J=}|q]e0wƸ~N Qm84By3fnFhV$b8  g=a7֔&_\~/_o=ffa CQw7tf٩g{:qw솛'հ! p&>.2Kb졧X{:{en=$-Pb 31 Q`;MiO=|3~6Od>= k#هTKVs\M8mpiXJG u]m_!؟eÚn L)Jz)㲡3!FDaHwSCW*STXЁ [4m}ϴmz:y''_nVw7Zj7ps RD`~9]kQ1} u}lѯk%کzsi߈7}=vg)dDj!G-7+4OMR5NGFC`-hm-r=f|h{ MdM%Jv?WM?Uwcy%H!\-v+R[ ٴ& jxP7  `meNvC+[UGgG;.w%fX:Fel^1ǧUSئbfrÒGW/RK t\+pa;PnE(bCbعwn,冠w5y,۽Ro{~TwJU#X6'ekԓ:hrLG!4Xt,ybLڭ况KǛ~M> l=N؋-S+xNV%:%{C|RN QK'mwI |a6:L!tHVL:lnB3%jy,=?}:_\J㿙?tkỐCOd!G~)CmkNs[EZφ@чe4tyi598?]zw y>x #F:\ҍϙa <,joefG._Ff؁CwrnvWyU}ۇ$4&"ƅ՜=>*j~ne53~$UJNn͐Ih,!ٕj|`Rnc@|Ow^>˷lz;Wc=CͦonuzaZn2BUgίI=Kq6c׽;3.zCjvݦSϦ;dW_[a|`>xcwѸCd 9݂oq}PT*rym^%ۘ^3hk$ujv1 s]:χ^{fizWݵ{ώ߹]9pk =6LSueo 0~QYg AE֚޻ͳهN4Q6jj?EC 2gv1g 댗[݇O^;Ow cc4vRĈZr4 |oqJ0M` 嶅%?.Ғ5:֔SΔ*FS,\|2gWҾܛw кn\j7]WThPzzQ86,$DZ,aqfP؈!X+mя"%JNA,E}94cߢ if}ϓqQWlz_U BT}iEa8G ^5)J0BٗȀJmy׿txFqن+t2EUH*j?HpxhEC-NR.$<twv30M-D2_K'B(#En%vG7אX YO#A`o0{Fq{jeYo ˙XkE8Sy/uu>GsP *KcUJ֢]|  ' P-`E?fng1&͜:3G1R[KNRkX]R3w^>b^~m- T4vi!?^?~,|0 q?f-XvJ g8C`4lR,޾yc+$Im=U%Om(nӻlPVjiS]˦0̕nVo+VLN=}j)x_ɋh-9xI]MM5>nk)blZ3z: Iyqym FN4r!ΆK 4@gr;{N,qIGg֟Kzzv;UqW< ߐn:㊣GTH *:Oɝ.|A85 z >xtP V 1f7oMM^_}$yHW?}u[\R2>M$H2,ܑzw_n̷ pS3ƶNIztʉ9Iy&6i" (#WDG(E[[_9ٶ1Ek2T$c3qkY%#+&'\+E␴uuqtlntvzf^^:Q3u`߀944硐S5f/6[t7oW׽:'<ŝ&WWGg8 )a=o$AXYM 5(1ޏf>'y`vDOxBf[{{{JnHx2dSE8?pC.NAChېXV 0{< z@  =\K)9{fP17vW4d(g]'ƃCúM-N] ~}t}53 ׿C*c j'Pex)ź(LZб-s}cX_k: iDfh㋉^@LUUc:gnL<.<$epޞ~6MאWo=US"/ݰxs-8<<p8r_yf*kЀʢxN}Dwg̼|~lzeg=۷Pu30l4nz1G p ;eK#+YsPPx=f``brG>r_LGj25ikήg䃍 "?0jok2j7%+H*ynW}O@O2Bf<^%?bkP\F:/#, K߿]yvis{8Yy8ys5)ל3ef1%#\3YƓ2o9-,P.j9lK&HM&k yg>yfݝqǾ:$ۨ.3SMA_C `9OggSxJg 5(hbmgknigdfkhidkbjiiholjlhijgkldfblhbflmn\M;Ղ̨sc"Z\D4ff͡=^3穇% 6 /y2->&eJ_Fno"ӕ*1gޮz:M*J:u Uү 62;UEN:(T4r}.'މ0ϟ%=Lǃm8^6Nq>1a5cJ~%}"Oz%;7+xYxGIä̖RѾwpWNmമ ^Ki&}pw,* QvX`Ti#6<ߵ' ( ݭ/\Igͳ<xAX7pkIC!}^/LuƑ$ Sϟ~<ҝfܝ|T27@vIg//^cZ_ƌ#+i\ib߅C.拏 `-$TMws9YybO[]Gz6{0^"Ϸ_JgH [.վ2;4 H&K1JxPJ͗_&f-mQtY57c2r!xꥰjBNa!,h-l9ǃKNmI{6g'sҗPJ}L`J]rAGTYzZنE:^9~] L\:BRw(.oz N!RA&f@_ܰZXPL?aO7~$>쿸%1J=jى,=En*.l^1vOqs3׫c4]ָl<:٧eW-7ӹl68`L_?EDXwcKNr7"+[M]D+yΜcG/,hlmc$l'LO<*=;+qBmflǞC.'>uv !3] ='Hv.Š|vhn=4Z?.XGϼ,ȟA}xWR=еI~ר46;uN}S6mHs_mr~m&q29dyv>=CU*"K>s`̚v900 @nkͦҟO%]ő# ^_螷?6;Ȱ~|}|D:m9$*yB9MK`ȇhsk(:{Lc ayQ3ݻZ(Jj\z @r_p}anzɽIs;~9:Xу?=`fjdP׋=ZĹR%tvYK4}*Eͪ%5T緬]‰R`݃hfWyX7ê6K?|+1_-&7۾.xUqWI<8rFK|]_]ݩg[;֭{q Vn qOj( rI|X|HUN v9P қ`e _R VT"%'UWYGsIB\%J!rC(\$RבuVW[O* h&-oņD5`=UyNW:n_~~!)R pO lAi?jw&=z/~AQ OggS xJg /pjjabcolrhimjinlejngkkhgf$mwtfrheSTcfbz>Or@ȦA>A-Gɢc AGe5Z C(86 }rw5Əigoj- }>A`6a^wf|aSjr |&Ah+Pt ?< U /fF^^{/fflv28 b<\@t2޴g4-bc$=sw `WǤں)Jh3y:;~ݝ^L/)]k,%"}9#)0}]GPvT6r D%Ȅ !IϪ3);|K&7I+v=9;4%+7_?Nň>A-3z<+v޸O2]TW R:v( ߉14>.{e5}oiGDÌ3.wE7 Ab!/ >g -< '73f_E[E $JћXo8x3󭳦.ɔq2qu XQY/ưV (nzzBJTf!{ J϶>ݤa`ٺ."A#6tW'fEmiow~jΈ:M¥6L,Zl]_8Bߧg"{_>A>u_lM\ѧ-x:`\KL k|[b+R<IGS.ӸWvhed eiVk \wK[=Q-!1XҜ%(",*z=iV[i{uoQvmġ)+k>|MSr͡x`M ~`3 RsM=yS7/ؚw-˯?m~~%APhmI:87YHpu.FCE^*Za'pPD=K<q VpB(8lr / PKjmVbOMh޶q4^B䪁x:z[ۆƉ]mL7>I3ONd~F ZӽJ>"LQ~x;gW. karql+,CNعf9HD`̽:3ZVvl{T/Hu&{Fߌio{:/fʎ 'FjC_מu_~L#6$O|c|i_ۼv&n59]cv9/!JG N0e|,way}0^>\2jDxusQ-:I"\CNG^kt~uRŕ9w*d*~h;}0[= zBt'HhA@aM/v1F~(`? IX) O"? ~?Wj>ohTCk*8vo)gkP#llNP˲hנ1SNNO/n': 5;r(»Qu:} yDl΀741t vUu5sakW_19Y+dm[^L!= ol(E`z8|bk'0}?7Jm>$ֽZ#Ы\u[x8lv]E][l}Ĺe= |up8! uhiU+ 50+v @);Dv%,S@{-%u8 qg[9vzjl`.w $3cDp'< oX~ a]ɇt1VNQl;װv#0!6'Ž1xzUMcg0ُ188M ia!5݇[x)POx;&խ6܈ClSnQMC46 v0 ǒ7;?'*ޔ+}bzk>wܔ_]$ I_|*0FC|UyO4l)9z U qL}A~U[Z"3/ ?e0 3M4:.!bf|7f7A)/ QdZl߃cg~fp_eÒgRhqD \g+ִF'Ni5*֙@Y<5m=Tѹfcѣ͛5ì uYvS|> luT'S}\ pbwMZo?.ƫ@'[X!m 0T}cr]W#+jP]+MjlD_@4ƍe2yڇp,2u!I}l0\j֭xtbєsMΪ ĬT?_^BQL\v 槥PB r~:!}R'N8E-WS^Ź?' #5s*ЗD8 PG@\rwwHKO>uBD0ō nSK[4R&qUR4g~.W?<}w:W3>n);C9I.\ w<ڍj<~( A)܄(}6k``ՄilfT'[Zo־jYՍyI{,pW䪚s}ӕ€lݟ<r, tܹ-RE~]:A'`DˎlMةa($/64)Ͻv4j|%_Ik::fV[5㧟ᢻ>ĚOj;@WUv]\ _@?3t$ubn.˥SG:ouX1ȌbiWgG.BRY:_ %kMb=1ynR20xhM~Ub<}} P#U5NoԷa4}mdݵovY|~wԔt ?:(٠r CqIFv`G>n&z@O|k35_kڜg}Z{'}zVPܨ` oW>c!xkX,{\a &׿J3j ]PV)uFZqq ͂˺e#uTғ9#MB-M+g5zS-`k/|׌cFA̋݇~-84It4顔rJ}͙]. eO> Y1PGoJ1n2:iWNo=fgm/ul=zR8w_u䯡-y.|'3_Q$~X3?,N:c^ecDUΑC^3߯H~՗!jft:N3f3gQ~8|||ގߎoCq!R;igfnyTPoT:'mswjcWjfgtYnϵ\;f~:gY]Cj- bam6_wӢ'nsC+~U=8O%6jLCY<||U[}>LX|֎(9r|^~kO}WR=>}ϮrؖIe)zY\2\/;"1;dh[7zN>']uzz^mH{µCZ̜ =EW*|[|TPҨCUVb'Ƕ VA]W|y嵇ԼVl|L+;|?4HN-^X@PTALڥ6+MM}VGCnnꊐ@X[dvGP7&F]]a''KJ}oxlF݀yoSw6Ng:' Yߏ7Mqjh*~L ēC^=e;ڻQnMvfNv&f_I>%V*+-YrB%G jƪvK  FnǙ=Niv~k3_qtڟx˩sZ8IQ"<`L(q^K>R] k1BsVPHhϠuhorzSY >` sKw)Fch{6)$UMr6m\P^b#]/ȠK/%uUwFk~Aj V?} n;בZypQK00a]M_\)-E_iДkP"[.&NIXHс-=ucHRI!?!E޿]w}d8"uźEؿwhjVM0Y?'B` 4.TKm;HZM>g 2B( bXzKMY+XhDN-M>ƉW&w7=f۪nX-d& ތm{0!jfP(%N āҨ,1m]}x~d+uvw,>p[4mjڤjVfYB!й3yjD`G%WֶYS7(y~Կ塚U%Ń2^jJ OA5Tdmۻ Ppئq ~{T+ʋcnD;a"QCJWMvu&`3ϼF#t7OggS.yxJg kI-3qkrooplmkhii`fierba.i@)<T/pSJ|靿@0->epi_1bŷn6 .s_5} ?yڦ,Mi]VY^eMN] ~ Cxrѷݷu~LOw^f̻?|hc%=ԇJ|?NuBa޿N̯OzseQJztg{a2wfPl:+'!m?a2E\cKN="m:uӓڤzĂc!䲐%.s8Tb΅yX7k;j\ClNP1.3.`yZ'&޻{VǬëצ$#:wn$-sJ|/'ϺĞ ,YSjJC  Cr9q{l>v_ɵj'ёED>Y$Ƿ]w֊?M lXut81{iaޘ6_ݾde|&6Ac[]'^￘v#D-W.?0w<)~KD*v(7$ (xtaz`uЉ&$|=N*psX?o9LJYݐ۞P)~r\]mӵz5=Ed xq-g#pWUpgT]^ci@H`F~@gJpHG;PGw,]kR8(cwg! kK$݂5VX2wnrx\vg+۩O0^5S;ϼV"pi0*#l)д򶔕" 52}hmH8}sB#\{`F^Iw{U8_X~} כeh?\q^}\4A`>9 v峺)O ;GMhF5˾'c`=k!,*iaιT~ĭ,0-)-7q Eo;\ sH WYenc(b_>M:.<„}Vt1sQ{TMR(*lh7zc%=] hMxStdTGf[MמҬ'w'nlp (eMu`KFEsqK{?/0&CO[IɰHPe{Iގ n@uD_y;盞[' Ôsla=,Úb.X|ƍJhlRB1...U9 @>-IpH6 bĊ!޽|So톉GٙYˏN4llv;TӦĵ|DPf;HacUݽx8̶b!f#j _7 f:FQ?V>O?͖11q3j}2w!+;S3-WdjK^~oP_PwmSϮe?˿3mrkowYsEwYM7w"䲪K QdQ3n-c 4 Fn-c L&CNg(tln-cPlAcȄ;&n-c tCҘИ|n-c@y(x0lxen-c 4:Fn-c L&CaHg(tln-cPlAcȄ;&n-c tCҘИ|n-c@y(x0lxen-c 4:Fn-c L&CaHg(tln-cPlAcȄ;&n-c tCҘИ|n-c@y(x0lxen-c 4:Fn-c L&CaHg(tln-cPlAcȄ;&n-c tCҘИ|n-c@y(x0lxen-c 4:Fn-c L&CaHg(tln-cPlAcȄ;&n-c tCҘИ|n-c@y(x0lxen-c 4:Fn-c L&CaHg(tln-cPlAcȄ;&n-c tCҘИ|n-c@y(x0lxen-c 4:Fn- ɤ@xin-c 4&B4Ɯn-0tH& ntfy-2.11.0/docs/static/css/000077500000000000000000000000001462047176100155725ustar00rootroot00000000000000ntfy-2.11.0/docs/static/css/extra.css000066400000000000000000000106261462047176100174340ustar00rootroot00000000000000:root > * { --md-primary-fg-color: #338574; --md-primary-fg-color--light: #338574; --md-primary-fg-color--dark: #338574; --md-footer-bg-color: #353744; --md-text-font: "Roboto"; --md-code-font: "Roboto Mono"; } .md-header__button.md-logo :is(img, svg) { width: unset !important; } .md-header__topic:first-child { font-weight: 400; } .md-typeset h4 { font-weight: 500 !important; margin: 0 !important; font-size: 1.1em !important; } .admonition { font-size: .74rem !important; } article { padding-bottom: 50px; } figure img, figure video { border-radius: 7px; } header { background: linear-gradient(150deg, rgba(51,133,116,1) 0%, rgba(86,189,168,1) 100%); } body[data-md-color-scheme="default"] header { filter: drop-shadow(0 5px 10px #ccc); } body[data-md-color-scheme="slate"] header { filter: drop-shadow(0 5px 10px #333); } body[data-md-color-scheme="default"] figure img, body[data-md-color-scheme="default"] figure video, body[data-md-color-scheme="default"] .screenshots img, body[data-md-color-scheme="default"] .screenshots video { filter: drop-shadow(3px 3px 3px #ccc); } body[data-md-color-scheme="slate"] figure img, body[data-md-color-scheme="slate"] figure video, body[data-md-color-scheme="slate"] .screenshots img, body[data-md-color-scheme="slate"] .screenshots video { filter: drop-shadow(3px 3px 3px #353744); } figure video { width: 100%; max-height: 450px; } .remove-md-box { background: none; border: none; margin: 0 auto; } .remove-md-box td { padding: 0 10px; } .emoji-table .c { vertical-align: middle !important; } .emoji-table .e { font-size: 2.5em; padding: 0 2px !important; text-align: center !important; vertical-align: middle !important; } /* Lightbox; thanks to https://yossiabramov.com/blog/vanilla-js-lightbox */ .screenshots { text-align: center; } .screenshots img { max-height: 230px; max-width: 300px; margin: 3px; border-radius: 5px; filter: drop-shadow(2px 2px 2px #ddd); } .screenshots .nowrap { white-space: nowrap; } .lightbox { opacity: 0; visibility: hidden; position: fixed; left:0; right: 0; top: 0; bottom: 0; z-index: -1; display: flex; align-items: center; justify-content: center; transition: all 0.15s ease-in; } .lightbox.show { background-color: rgba(0,0,0, 0.75); opacity: 1; visibility: visible; z-index: 1000; } .lightbox img { max-width: 90%; max-height: 90%; filter: drop-shadow(5px 5px 10px #222); border-radius: 5px; } .lightbox .close-lightbox { cursor: pointer; position: absolute; top: 30px; right: 30px; width: 20px; height: 20px; } .lightbox .close-lightbox::after, .lightbox .close-lightbox::before { content: ''; width: 3px; height: 20px; background-color: #ddd; position: absolute; border-radius: 5px; transform: rotate(45deg); } .lightbox .close-lightbox::before { transform: rotate(-45deg); } .lightbox .close-lightbox:hover::after, .lightbox .close-lightbox:hover::before { background-color: #fff; } /* roboto-300 - latin */ @font-face { font-display: swap; font-family: 'Roboto'; font-style: normal; font-weight: 300; src: url('../fonts/roboto-v30-latin-300.woff2') format('woff2'); } /* roboto-regular - latin */ @font-face { font-display: swap; font-family: 'Roboto'; font-style: normal; font-weight: 400; src: url('../fonts/roboto-v30-latin-regular.woff2') format('woff2'); } /* roboto-italic - latin */ @font-face { font-display: swap; font-family: 'Roboto'; font-style: italic; font-weight: 400; src: url('../fonts/roboto-v30-latin-italic.woff2') format('woff2'); } /* roboto-500 - latin */ @font-face { font-display: swap; font-family: 'Roboto'; font-style: normal; font-weight: 500; src: url('../fonts/roboto-v30-latin-500.woff2') format('woff2'); } /* roboto-700 - latin */ @font-face { font-display: swap; font-family: 'Roboto'; font-style: normal; font-weight: 700; src: url('../fonts/roboto-v30-latin-700.woff2') format('woff2'); } /* roboto-mono - latin */ @font-face { font-display: swap; font-family: 'Roboto Mono'; font-style: normal; font-weight: 400; src: url('../fonts/roboto-mono-v22-latin-regular.woff2') format('woff2'); } ntfy-2.11.0/docs/static/fonts/000077500000000000000000000000001462047176100161335ustar00rootroot00000000000000ntfy-2.11.0/docs/static/fonts/roboto-mono-v22-latin-regular.woff2000066400000000000000000000300301462047176100245210ustar00rootroot00000000000000wOF20W/6`?STATH6 ` B6$B  D"8-rCK e2B:D/F& bw1Bx"|H`"J.?$ _[`"&TZ U|g& "!c@dz$n>/>8qcccc6!yTBa VǶ*.YUMiNMkoTwh~/o}OLXu +rygug\km l862yx|;ڥ1;G6ES'NrϿFAff{)`AncvXZ^:sfV  06يEKvV4&yl/Ҡ!H.}rȗeoUH+]4J71E=`c\y?-##lMh@qFc4 316`ABhJ6|I<&b!#jWkz@dZrN,nCksS:>rD-˨Qؙ=ː*A'sZ)B3g`"H24Fч$ϒM9E2P*+!rB _Z\S/+n=#V"dO8#8BiAna~dcvS:Ykz@[mvUΞ1a<HQVrE)g,"0s{$6ế-?x刂.)QYc<1:ޅ[ գ)k* PTi bX\t2Zp+$of Wyw7:9>Kjj E9@)mmU,Z*zkB[ !&]oEr8ZN>ocuRh.`u웈dSn_R}N;vQi*X%u$F챈dL=-Xz*׬,]ė27C)MΈB0n|aXJ?y7nek?HuM]q^7L$PS< RJAy=0?|`1iPunt:8w![8h\tDYld=I,c9&aO+{87TNU%ޱv " ]&{ej5=wG ܭm-h[&o-҆?ypOug%G߿B`3% H/(2ِKUOPOQ_},`Hd*: D`T2WZ*% ƭ/vErgUOC?XaOK{rdp5a=H?luRWK0zA L[hܾphQzcv_(3l{Xca2גwgEޑi]ň3̆C0c%64 F5eH" e@d~Ƙi;=BzUx>çnYpH`ţx;j0cEǂ&6v#xd;g~J&jԃd (EA#TD+*/ȥ~rs3@"˺qds.;=ttwc 2h=a@5<*cDz[%W /U-n6s0п'J5WKTsa<&p\D$>]wWID|:JٍxuηFz&6V1yARSBqO>qMr-ɈN\#A*Z9[HЙ6m2οZ!x_>&ZjҁB`fu i_i[|K#\.Ԙ{OuMu p}i0|b\MpZuEh%_#qWc( T \>!1) 96tiwBh(YV [P^ahjHt5LH7ܦɘ2Uc5zVu jx{֬իv p)S,5`'xX }'o}sIEKAyGxLpjˎ1΂o?B[C.-=%_d\A3 &]>e؆.h;wR0NP @ʍ$! BZdIv6R +Ye0QS>b;AS[)kͽchI}q$]@l)1`0.Ee|5k#~'A"AzTlgl{rrlSPUN2"}~_:E+L7<qzQ=(eu}\zsiņnWD A)&Z3y8ע"nԟB[k<9d5X:B4aM盂;@{Npnku߯nսq:Џ6+%)A{"X/YU`0m NH&a?%puL\6GNY#dm,^)9qඔ'bO4ZAMJ ԰[2 e-5--7-qccI32I#bglv8oCÙ< '4Ԙ /#JYV;;!Hoi>N  T/Z9+''de\]li^QZRp|K9bρXϑ/8vs)%o= !Z )=f_U\ @.2S(tm"s#8ѹ 6t G4׏V c>h<?0BD> * rB U4c4uqŷoYJ!' R q3 m3GIhzI=@$H@NI`+ \!60Ζ+gQ3q`%ʱұq@7~39D';P$ 9j%rlÔ$/v롭O>d 91`a<h.&`aln¸_ o5GL~`a|p DrG9y8ypyp!ƶ47RK%G-{d2+qnm/ā/lng:Q)ëeffnFq U])õ`R\X^^/rXMY!y<^HvEE==h1eOհtoPs7;Rel)7صdM>3#2{4"~R$/lGU]1* F}޳oS$x:c 9Tf&`qw*_mf ˍ0"q."XF},vE1cՇIVFA'j!hlS)^ hW,"SCVMcb8nhS% *U*wO_+C9#eG56nJZW*ó4gŋ#YzxGe;oJUV9\"EϿJ\DZ{As w$%kS{-y*2<]^ǜ?x<=8۱sΉ jxNzONٵs#tcmp§:v&/lKK(@dKc&BtJӇk|q0k"k6`!Kz#@`Sa FHgJK.DV"B!;Gg=I{1YXWcċ F.hLWl-K%0.\l=-Y[n#::EΈgoI @iD A Ə*آN]aR1Y"1 FE߼!& .dHEDԤGr=7NEnY0@"5pV? N%r"8ן? ƛ uӇx2=ͳNj BerL@ 6yU6YWN&WNKfڞ}M=fұqJlhPfT糯rҒ Oe'I|$Uɣd?i +Xʥ:n&r1CI-~S]n%-}R^INL*xj+de]4;ϯI,d)Jӆt6V5XlTh(Ffa 0C` ~tTH )$%I&rvD1UI~ -7_Z:K9I$I0XHπS Y/_\X2_Ǒp0.#O F80iI Y[r M-=3;Du",-@ :}`&uIy7?_]=w(DrVT+ tERodpJ|;J::BZ˜rᢓ0+Y Z;O &5  w9ݛ.m^0gr3nP0R?_OBN:p Os;nſ꼺 1ߜ\Ġq8(4R,kt"W?Aن!">%N) ECl[7yqEaQ' ),.ಃ9RC*]U;r>azpIIj7)\ qt Kni7-jw}~<{Vtj_B&i&<$цX/QjZ^&Ugԃ&sQTܥK 19V/ Y7-hȤ ߩ>t~YnAbu^cXcr"Hd`*o}եݒ(} JfaNXъA~R^ ITdp~YywzG^q3KFJ[K5%taf%tbNSɼ4Bo`P XM h׷89nYFE( e!P%KȒ\fl#Y~ X4In7³7%Pd)+1~=L'e^KϣaEZ6XUxGFDn#rr"`bj')p_gF6ce60)Rww:;H$LTmm@~dcӊ+{"R6視aT87L) -N4qdz 4ՉTNUdj/O( p); '<5KlߏYƺ"1"A/O}@h*RrǏN: &degdBiz-k.q`T.)>9V|ϟ0aD=&=ux4fk xv'ح;`S9lダIԱc6rۥh\NU\'aai`WTTzc)=n‘ڶ5!U\WNBx, m3V qbL-c{cK5sha{nޙTb0v㉳ F2r#29tCď23`~QW67'IXь ĮQ~H0eX${;LB'z[$u }lm^3}86EG%)5 I^O,.$e‚*cӞq0d =uVC:T->eAX#J0%<&4n>:_2C}mmQd)YBfbQ#O3jaB0EM@J@D;Ga|qE^b ckq8,ym<3{ꭠ_fP"p>|nUbhe7{mv`LOY1w6+)v|\+͎)zC+ SKriyp4 ^~9@//GZX-O~y'YLnOOw{e-$%pQDч!KIB%]^"?/ZtO{{oEp !Zy 1nG/᱉4Ѓ?Y)blX~˙2dsZ ^nu߁iOv@zyC uic,Lwȅ 5G/I}Sr72xbњkTxOSЯ5x18pUd:& iGAq(ۛ.m>~?e-}w =H)SKZ`_h9=]ԆCyLd0F,MI :֩#髮N@2/'<=^/j1y$Y2-Dy…բ΂mYW3O@6D2 ,].L'>;ϳ$Gf}B,u! %vNxs=ŏAq@?z\09CƼ%WsatB.3t.^e 1)5rf˺ N3΁kH7nIm?bcֺ 2ѥ)B|yDbIMm}>yN͐d6lr/]QIa5 />,5& ;nS:H0![ I-<ưP^Aqsf D%˷,%=V` FY9 VeB}nRqK3}r] zU?N As2~oD@Ws`D^ a/c@ Ab;&qO)|%J*'GJ$D(;ؠěJ"b-bg%JqUA-u*dKU`"s)cOТ,i] da ^+_@Wu U i ĝb&w XJy: vp1Q>zĄW U"2ΰ-۳OÞ(H0$7l 7}j"Cw?/oB%!. dI g<)2 PuVc1sKʏ"G#^;ۃ=w[G}ky?ȓca\9fzx("mGj"؀d>c!Zxm=߉vV:6s򀛾Joz#Y"dٝ6>1iIQ*;2\dn yKYLO2^6*+zԬ+rDN4Zަg+V"wNJ垍Maw&?+}Sz%"dcDoZXξ×ѽ%omsrj>soǘyȅ$Kl@5O_z$߃E, ~t='bw s KO ^:]F2M:K܋;I?OuJ;_QL!&C<Tt)Zpsslر+7'#50p&CF2 4qѢed>2xGG841SwU1%U|?@$Nq0Ȳ$9"FRanC`"Y e^z,QI":bN =0c1n4B0OrSW*$_רa`YK`&Yy nOS3Pvv}]c.F$!*#"dRJ0J`e s:Ᏸ7q(IxHP@,$b#8!JpN` 'I)7L0Lِ2B%!!!)F*B8 F\ $x(ۿIBuQ==p( ֹ 䓃|A9rXL(`)d0: Fѥ2^ĭHXM"{˺e9w~jHXI ~Z p=pKF B"$"VB\wob?}H8q5H=8% F)7.(UoM} C`.5fAĈ )0&bicWSp90pѭ,\&DfАa#FA %``Ȣ8 *^ib8D $PPML?US+m`$:Y R[+=MYz-pM}WmL>+.9ng3)f|SyǞx*]g۰i˶LY{r|7'EpZ|06 "`;ӷ!&At$8 gP3-e+!=5?p.䂯W2a@>0e@L2@JWptʆ_&y~B_3sj\0~#^ ~UA*7}e{$s}YK=$[ UkÎRTӈ +lE䚗S5s p܊~:2{7ƣ4 Viphi?ٚ e]jEYξL{`v88wԩj:%q+Q2AG-KiKLtuf '00GZ/#>Hg4:؏w텦 `A(eH2RX.`C5γڠ)䞦LEW-X<@rD,IH QR(.]6@xRuB 6lQLDN%9>T)}?46TJ)+<̐/R+Nj&7/NW3N xG*;A$uZZ>Ԅ6(JP!9ʜǧ=\Bō ^e\+GQ5FG{(Ϝ1[L:(-‹aO2a\s{'$[X 1S1*!w?JBBz PT^Ҵi#ƒ{1p? /x+^ 7@X8 0Q.vㄶbӨ]|j4#rYפ=.$ZBij9jHN кβ O08>QnjI%f\ɘJ#+%KDU,#}M/R3<9DNY ExZ]AT[r+ y<,Uu',b}VF6b+t+ TLi qtJl toAM- \{#$W6t}iEh1)TF=,O~pP r,"[Qܯ:! Hn/\GBn/U o˽;tڥ&L#`Zse#tmjZ)aT?)AP&YZ>k;c Ѯv/EeTTBeBOr}`PT<"z=ǒ N\|F#q+tZp/_NCϕtgJCA  zsvqBɚ=C((uyfCp @8l !-b9#p2e }W#E?V,(X'I["x|J'<]WJa~ަqtuee ڦf8+l}!ee7N[}5Gg53tԽԆK?.e$]bЛs}P$c@stfN6t~o5FxmKb0WU4W 48hbW[wQԚ[O/V2LtiEQB [_51, <3S_WQlMgjn@痉TsCȕx,Q.>p=G9{+Ue{r \fluרM;swr!5;JXKxxD GA"`LQoM&f{$|d+nξw0UKI%,`\ؤ-'+rdHoM'Z0E$v[\ݴ rWGcC ~WNI:{5YzuJ[ZL[ܸOJTl$VPej_[{!ݒE^"dGl3hyS=]u%US)kpZxⱿi t7xn&ڦv~Q+ k5.]tJP4  G*ijEMnqgm%&F|ew#g315]O;n[CdwCd[uHcX=3iŊđnpQ<ĎXHTefQBW[fvGCZrGuN֥z(̢7󩩏h @".py6Δ0z6ٿ&R"Oэ=|9(WkގMРB1څsZG|ҙTZI6Mvt/v}G½3{d\Eh(ݕGDL|Zo? R8eBȹ*|_}LDJ#65lx>Jzm[vVl>_~^͝IJ8XYVV"Êa%Ayir4"-XSIS?ן8F 6fjjIU܌^lŧy]//~6fɃ,Mm>c$οC(L HVE:̙GN<UC$:Nw $+#[Y SVjgԠlShGr~FK;)ήwr#0ڴ@ư0 Yt>ao}h7cY[t^ZWs Uۿu. 4 Uf)-7-PgI!-\9Rof8ۀJt|1Ti?YU;ϐO/k@-1O6/N*7nR1հ;Q/}1" ob}JN͹Ue͹h!Ĝ``KPsb<,uBv/.rC"G_u? :gKڅo/ޡ$,eׯv]Qz󲂗"]77/dމKe$3#/cB U-PetŞo7o/޺>H7/yo.+6TV<=NA|--(Ċi:^xPxT+/5 (\yI/ZWv&f;88n~@ Sי#虫P>p|>'/N ܗt~N鄷)܏V:!F#$ /:j"׳v ΨC]{LIhNrWo]5Z'hlh)I\~l+QPژ|vIo}YU.O~sI6#EBE4~>@v+#w+#:V!7GvyS # #(f=xkOVڸo-Q>Cח[aP?4>"[ !?4 :W_#V8&WY'J4g5P%S.e ap>ׂB{:guAC/20/sh<3Ne]Z[{#vͻ.!.h3qqy{=OC6Eg&TmD76nX9υݰSywD}OԼ[f''# pvo[DJ蒆8_IUSCW@$>y0B,o[# -_BI!3L8Q]*H .p|=L9:;\2AŒi DW83J;7Gr|_ά}fzgb|D'9 >m44BFs=Hf kem)S .xP8inw^[k@B(%eD1,}9;r9#8rWfJvhbw: ՕjW)uÿ SDAvRO ܹK*+MI(eUsJF2Ll#Z*.::5o_jْRr'sA\GS~*=7fnryfY?"e?'\ItC?W?yu|p|&a !>qS k30tVF 0aeYoMre A'~›u:,N٪XC#ޕ͍wzSlmXNj,pLh"b&L_GToFUM~Y^ձ{yo>l6?_s15?g~ߥ*{sHVLZ4!-)O΍dl$f2V'#t$RRi+$G,;oڰ,cM6QUr4UG 6>!#ir%A n mĭ.4S5:")GX,(  7K%$Wt'#'sx,Z75@# PĎ1 XmqLPY[KOW rm:Gڼ5"x2s26ЩTxB)ҔhaqyÌ{AG.Wsҫ"EhPToڠ3 Q1ָl$Ki؄sgǾO{ԆdqJ=nVW0r3rFX%:+c%!@4wTTbdVyAAA(^=fd$60-%#/ZEӠ۳ ݔ%f1 fYgӡ鎻%EY>1LsI-`Ξ6N{"_kkb!D[p>0{ciyfuȸJױ."]/O:@o,5»QЗ;p{C@" k'.I \*h뗪;rq%Դ \mJ8&I,I~.V> =bmmE>ھ!yCEO+0~֔Xޢ} ` mٍzK[]C1*EiEa rg 7u2oF~b{Q_/dEX=R~bxV{B%\ դO&myS4 S}7}{(Ϯ# z~=g/cWiT&|u߲qJj񘡎sEƥs/3rn\őcOGtE_R* CQ/YP'+C[YMF'ɥi/`&9/c98[\K(+8W7];a8qnc>_K ]'QNNp55~)>3C kKuGJ~妴 oejk1Ƈdiq>9Uj>EgTiadД9-==a | ,+aމt0iXm4ek [XxXN35gՄK,JlDRގHN Gb oK6`t,+z^LҽM{fꍲR{ H;WRG/gФ8P?4-,=@>\|"@S)bk&<%Czz悦U i4\> 7˴rIi3YL\(pҙ$Mom7}w%K}( W}-\ \QGiGzZY;PTr%3k|n vwe}Op˔{<%44R?/NɁ7ղnSobg1Q(CFW=å늋E2eU\;Ovagq*j^P oWɃБ]ak`$gPKM˨:K,bű7X7 I- N,Z5%$VWU ߹ DZjtlAvV>a ^`4Z-(֎ ) q2{IUc4ai )8bhꈋk;|X-@"sԗaޙ C;F,ٍ%v1^G2W;&Pm55BuT13`-}5+ ʭo\\,Y+m[Y@у7Kl'z(PzDd`B eհJ-B;xDU铜 UC# c OL cXw1%a 1٤L$яi_{^i˜z]VWuihr)d*Qđ3?4!iˀ4{4v1 2(=_1^,V#f[i?ni3%א`~s=mИ i}[Td.oi}c s VbV>oK빻C[.З^WcŀruhH4co-L>Q"<@rD['%oP IqU^nGB?O' ppu  (@"u3T_BӬRip ۑx<,$!Ԣv d$FoYD`(nVXus|9Xpә-a|>#\\";BLNJхhBthZzU/w3z4ZU U8>P- \FxѵG؉ǑK!R0)=WxQ&c?AWX/PFt_,*TPT c^WwPA,G+"%!ڂw">0c[Jc8-ΊDO]P+2̐L6;^kN槏&!efHk1VRe} N˪P4MMfd:[cU(ײ[Z=3 (h@6Q#h] rl`cTҀHJJNeHFEUvu4"N`P`G:dsSK.TJ t\w4s[g8UJ]k_YaeSDXE<`M tI :{hBQԝXc" 4I"Wwjm P*ܾV l|zBBf. MOUmm 6M3-[)CbxStgg|XF Oe\>},L`zNofO+e9tZh2ʇWM'n]xW*uO=-}pY+ SCK0;حY۞u˵W`;w_wCz\x'‹` ~̉:˃`$R5v:|<иy=P5FO*PXM6۪Uzc%E),iGL8? k0~j1Dh h=+` aFˊҪl#T^0h2%OY `F詰ũOkx] eO!WAx>m[Û]vJ?A{\m Nӷ9t<3D t'n pq$M(( ҵ߽^G0*GZ;F)݇ Sr?喈"1W"UX?yd[L?{UYi-];nu#$&L8ThVP7Hnoc}479ns!x$,UF}gkW lъK^L+?swÇi -/`CSPn" /H*lZdmdaG-Uچb^2(Yi|dJ8;\w.ŕ&8߷KY+C6@AH-gd;҈_^Bסcw ٚ*}Od-]k(YUW%:bs7y*pՑݓ,Ip)\b\]uz!r H]B1;2fbI,`^Ɯs̺^c}:@Nc% F>ƓlN©c}+8QR}cؿJ>vіlo4 Ж=h72N B q96*jVs">\选$kDD-ͮH:퐐tƢۧ$S*^MB`AUKE{dTI2x,>2!.p^?o]3! X-H+'mB*Fw6򞎣єS(b:PwudX FC3,KaO}tmT2ѵU$˷xKET\@T~!ʃHFWvX;:lr6\`q?@ic8@$!D".I7@ ]M]ҽb:=Qs71D!Tȟcڝs-Zs'WHgM>cڳ{W` mIBkR_](Vt)yP ~T׸G0<p0FH:eG~[հT휚"jouդ&NgQt9zxp6t V#V**kq`k `^ՙ3&ǶRz%;}㖈 4yM]n:$z[<娥Xhи6Ch>ʫ#[hsíueu7fK&n:7EvqTnjs.ab;row.Ṗ6DH3BF2sV؂};Q [a9ndctʡ~h jxSbg݌P,,nWL;ע=y']̤ nQn~SPd~^R#ᰳʕ,)m;Mtֶn\ym p A`,h FYt8ƕA7*<:˧; ޭLFy, r]sx4tZttn+=-㹋:oACC?Zɝ4]!A Z!1xHs|(#"k' GG؉$+ݠ //?G P)H@04Q J&#̈́b9 ګ(E|(PD8J+b*R4TVNvi˽Olp8NpPHEGI(Y2c5JOx8nr#i*`C0%N%p i^u `ucqj;"`+!MpW5c}8kʈ:z(|ۘ`| `s(oZf CQl۩-,OưoxIB-mQB/FJ/Fh >N9bxIɇ"EB醴שb z^ntfy-2.11.0/docs/static/fonts/roboto-v30-latin-500.woff2000066400000000000000000000370601462047176100224270ustar00rootroot00000000000000wOF2>0T=d^` \ <  6$  S!%c |yف6;s#x_nMJ2.U& (L]]%P$p59LDf ᫩ӱ Vz5~2\#4ǘ9_܌%wpOU0CK/x A2e@(if/ `1ă !@0 vbte v/!N=>:A(f?iHF!k6O6S54^c2G˜?6)blv,hY}?ukL4dgݮ6\1u{lZ[/h4<ԧ\_RO/WsV?վ_0M^{N1M6)^GkpO . )PˮߖA$ ?;md{Bϴ IzMM:&M11ť͆Xu*>KG 59$.6Evl^[~S{Muw},~1,]| \hj,^ֲOi?Q[3¡]fQ,]i=ٍGs(?kaZ_* /;0/&Pc!JIR)PB Zeʌks;OުըSo¤)f̚3o%^x޶8t؉S?h4 1ؽ59\ K.XLS9wjk_墾 i2)f̚Ku6}J[}mǮ=;q(}w?*!.q(} Faڢ>{@@Z*j&9{O& +d.7b }2x EC7ּy=&`ʜcG\ ԩO[ٶc^ CjA>ǔ9GEl۱k4V.cꚩط9t;vⴈ. Z ۷o~Ya”y/'wtfEصr؉ᄻť#}U2Yzn*Ѷ-c+%;z}7~I-ԘF5(*%,]B5 A 'J 44hu#8\L!/-9)-\\3a;5 pOA1DBHrҒ씅JCMKNDӖb,܁muBTv!ÁjKAfQ.8 &yLIs`c` Ax{Ͷ=N'L0+&:Zb=(`I99( *-4@/ܫLAD9B\HQC}dh0$LQRvWa&X8u u$&H!#">G=p@;oI/hh<"1O^Yy=Vu"1Pm}ľNOᄃck'>{Z;;T(Th;&_J[H4M < hhp*f-(ޔ j`$*h "VaxzT' 65*k R+?>`:їjԙsCLz<ƃ ;* ra0bT i7SV>n!0!`к#Uw@`{ʓ`IEƢFS^/%RHgx5G?r~oM7O>C7ּ{Y}Ѻ >!y+7S_,*Ӥ̾h9fgnk|nibjk),t# èUC>"  <'dv=!~Vg+#W+xcF .)#B 4')҂ͣgywbR$:z*>9c|Rz;yxԨכkܾ呬Ϧ9IL"GJ:d5 Kl4)iQr z/6L+Q?͇|y R;^Vh{1tBq`؆v-g.2`G HV.O&=3koIڝ?ȵg.@ť_4UI^"Q3'P*XtδFbE>{&\ &#EVPYC-q&k*o1y'{v|KIY`5^g7ֵ3dAV˂Nިu"pVirkgL-$N;ܤh Wﶨ[Zet Wj~ЙB-, ^Gf[<3rQZhJZ)Nb)``p((,>y;lLa0SIaK=ڼb^C<@PK?E5  _X$"P,Yr-ʅ*¨an,88I9gdže3Xk wi FfYd>_69^1E>xp3aN o}FO#JH] ʥ]79!V,Xeax?bpP:b|_O`g.]+͖f54u'`ZZX.r3Io=u~iL";~Ks6,f m> {5,Y\*;PN}fO`Odmzg6 jZh; 2`+h/B*햽bkp0A'T-XR mU,UfXhsX#[ܱS$G)7: rz`:Pk\!d.'B1Dz잒}'+uK76MI@*5q7B74+`k50%a#-I:4O^ZbF[h5ˆH*wƏX+f]KceX.;Cˆ%)5Շ~3_e [7.rҾؒL 8i 7p)R^&vcK6R#3qdiA~faPАf 2ʏ^Kb-| Q5(RQK}eDE@ p cIba@9/ŵg=jL٪ ;صS"$K\G'p Mɧn~|uwkud~hG OCduuvvdvvv!,tuLM,S̜p ޶"\F{'gw{^IkbgnnlicaovNIpE7:{VkBpb+3$<'a[Bx[X7b`z2TaIFg]"5#Z&6gPqGDyRޱIBFC|O;VTu{lQWT#T ubQYS|S"ZGy46{Y'I)RypnR$`-!/&YYS )Bx4+',B/:j03͓/0S C'fWf#IeK-t:^LɎ{NxÂjVN\e$ȸN"(kڄ_RtDҭIݷ>ާņ_IH*Q6Qû}Zg|f(C_|EmԜW.dvw}pgÅ> _1!S ^_d^43u Զ@@I@3dD+p9KJ](|bHEO,.aP Kz~9)]B3 aaXMOoK~~^±7_g2 zȜxԛcbKS%P8t(^^^s^C7 ˜D8kXss @-Ս qzfP EMDͿM}ž~x<|VɜdnV~ixqCTvPާ;8pGD4wfY!Wn hE6P@cZhg',YvI^hG%H$D$S_l掫H2'45p9XȟFNZBV:M +& #j`mO񻟺D6\}"8sR^>>oϟ<8W)J))LԭmW2.[*T-ٗ c#~=l ?Bԭ81m*/LV1bVEJ̈́<4CIs䋟k"sS΢ӲrCm*KiQw_5QʗΓZrjA戭?[㋙/K{?=X<[.-Q֮!r]`]̦as#a I>erg!E_HTTdt콸&"V3k8r^RL*ϊ_n,8PmjճȈ|,=fuYݣrqhX\z#jI\3IՓ*^ʧ rl"tFW:[*g}JwN~ֻW.7I113'.@l]rqh.@\H()x+I719: s [nsO4pT[c;pXn'NN鵴Wn74V]dX_OORFUYU1\Xv/ ^w1o6>#y5hH(@'0S_I"=# L aqLG} #9ڊL M {F:,25 #4p1 *'&c!'(|vV *J6b۫S e4;>ą)Ǐ/Š)8- *)t@yX˂Q0Vb?VEsQ_OwmY)uGO>-xhdcIjtO([[ ǧLN7Ua2GYݕMa5Yhdg F FbBֽpie[2ιA&7l'>Q'`'S Om>NV'C+W;|>&_Q=z⡃ҕzhnɩ884H0'O&Q/ hP0Q83 E/ΧY,Aͻ>?W^]at1e={@3}n+!IU6u ;,gҺ'rclpl[߯7zz?DUWw`,k4WwҐ/Vغ71>81`pkHIrCYzmEXZY4S_P>A)Du >LCg3ӵs FZos&x~#p;<#PDu#z9n:9ywȍzߟB}>bz)ea19-_?5ZR^XRTZ=:^G((*o/,*H _zDxt!lAO0F>_Z^LVZ%_ӕmۜ&c3#.${} S_~^9cs -=PzQ>U4 f^9[_KSb2Ǣ\kmXy.'9V |#/ b  b f&1F57_ ]#('jז^ҌnwGcm]ͦL{|m͎EBWLU*s$Z\ҫ|rh`5:s5̭`|I) y=S;w[e>Z5V2?8dW2!VQ <W)K"xwBԙp︸8?Q`hȃCGq6 v G +-DâvBfOMB,o姂zzǸ49>"b``blDNUB$o^ZRVR6oEޅ:ᶓ̏ ڔ ZqGGzI `(D*@RΫyܦJ`>Zt6Ge 2*Sw(+oى 捺;,ZUis>\!冕ss7&eE0dJNK>]14 5{c]%:.#ӗf)UX*p q7k {3!{hb.\XX,׋2TQCnW|vSVOxG,UHc3i2t-Ny) =%rZ(5Bh1=ïzꆕs;4$.svGUO-ՒUp KEI_VEke‚fAspI MI~`p7 P"!쁞37e2!bklLJ3+Q_aB$C&WBqKU*ϸ}޴[dGH''d4c-5G$VG`«Sv.aTx[]1U_ds$:;Esg .x|;ҋh0 n̘`X*\xNUaPW3 <8xXc: ׏屌"Ӻ,zY:.9mR=ƚj_bx/M_i&8$)gTd)R<:d/C7%dQV&=.i0}f&c @9 2W *HHe`TIHmT!q$O4X"ުڎf#&I2fx\L57K.O[ %ǪL ;ENr>mB/'9 UA4Aͼ8*~"C|L7i7Ţz\ܩRMYʷzd3O'kAamY akL) v<2܌Ǯc "<=%GL"(47ju.ܳ_B/naĴ+c)8Ƙq4oY,n{-BXMkO 8 YUlK,FAy T x=7f5`)EMˌCכ~gz`i i%O6i= DN79g!A%)V,IvtbXcyÃpIq 4Ϣ1-tpjk;B`x +z88NvBdblXbr!?Qae+$jt9ËQJmL( ʓvqJL.?nT4™f TjSm gu Ake憷lvcv]?բfiXɻL2Y=Uz@uqN`a0ƣFCy2;ܲ{1.{ ](/BãByC؁EmeUi-A[@jRΦ?LuS]. [!Sf0Vf2^` LQ=Gsa+3FLzLJ?FH)HIH1=X>wSb-25☈t' Y"5s.yR6=pU%ksD|Z  LVs;|:mMBm0TCEwȘpn=秉uBvZEB6r7uZx=FY("w(Jf8ȁRWh=s¸婊[x+\]dٌuw)ݩ0E=QHE$b3/^W 1=s\~^A~\p0!KRCX% .Dչءe[UA*o顁0r%w%e!|mJS_`#lNgTIaM@r,i'hx#L-j&,}6A7&wyu%*^ߋ"p5'63xHJ yKPojﺬt#N+cU}.eQnH䲈iRd݅jZMs& "N1oT :Ib9P> =TW$5)'l[& vpO-fq]5CR1Y(BP=yLm @:jR֡/tZէqMT#RSq-(ɦ' zR xҞqmN0+"-׉oNBIi)%Px |if(qr"#m}- =8@OLx FO_U{ooMF|3=]A"32M5X̎5SlKc`G^ybC/3gfrAw GruUp0μ3v ?Thb! Ab.8= 8`ŒEG*S+o}X_ Ez ES*P&b^Twt(e\UMJaŊ i/fcjEVH"o68`^ * ~e blVxSIfKݡz4T/.>Y;c dZzWK=tNX@ IaZj-5q&`5wiK򲾮.է  jӼcd\*ҞtIs̼b~ ]QHFP]"U\6]F~Tj8-NgT*FBbϷ&A0n Q6UoAxڢxƙP鿬X\o+}]tP;+1(Hgs Q3TYDdyTcg hv-F;gMV+KE W\.vL5yl eͅNma=6슙HRD2ZQb3LmsG0@N̜ʸ\Qc҂. BY#5A3Bᐆn$(@i ^CTS>W*;42Bob$0nJItU($-+ZM64i*jQd0ܺi 31]۱\׹zZq_g%B_i-vOU @=ө&Pd }$j&+m.35Oqq..ɩR`gJ:ٲ"=_F%Lt3AYJI[.ܛ=Fi jIr8x|4|eZ F#sugI`o6uMHKI:M(ʪ.XC}=jm)L 36ߜ}"yPNY)~HʫC;** B爭߱S_ѻvqF?><1."ey&]ŭf 92EusKWV}fKV=EQ+!v<*A,n4dٲܕ;1Y sYgV2 1W_KHVDȓ(&DPwr+%)I$瓑 J* ` ևfA9n^#a%DCQ{wi"E-T(Pl8"|a6ఈ]3*ꁲ3P@ݷ~/L`YEޢO*a'!U,WNVj^Yq `7$S*+,²~vL0b^0Y ಓovz@ B0ihDqFA ]HCNifUfMY#RRA1o+SKUv7HrdXahc,[b=@c #J?4?t`H%M? ]$_A6~`ZT7T$' Zs\ wA]ΛK^"!AG@UAĕp+?[pKZtntfy-2.11.0/docs/static/fonts/roboto-v30-latin-700.woff2000066400000000000000000000367641462047176100224430ustar00rootroot00000000000000wOF2==d^` H < 8 6$ ~ )~Eޮ6J呁` :8;5!lj%SXSDmRXh&X5_І @8ȉGiޥg;9'Qȋ15UϷw+hnۈ c5#{%#JP*iJU(6D5V.<"Ex6"ѱk[{?d2{Ζ޺*W߽ShT,ٖl'9;[@_L|+)̞Sۻ9FTt-=X:FtZuZ[?f< @'Iݝeةɔ8?-R˒3,%X I2|Wk{iV2CĻH$H˄LH.{(6U%W[tRڔΝj䟙iS% Lrf=79iIщ1MjCuBߟvJ.+u$=3TR_.gs6)$-PUHHl IJWDdfK (BF1>5_[]}VA#X.c߿ %(s50m^1'$U*HtHsAZu'8p @@qY؃# # GG@o8 A:է S:NSjڬtav}ր9hs heھ{,~kڽ,eKz}5%GluCKV mĵU}SzZc{ڊ:g >h삲'|Zaې鯜^b o>gߊ f./w' Jao(Ou䭴B7/\ `/#2^UA^=!5|>*+J"2Pm}v"d 4'Bn;LU'Cq@9K-K]kا1Z4WiO:o][<5[oF.S9QI_4fe.dx7$C9c;A*緛.M`SL}}G|<>'fX26m`7ת-Y8yS9 uP_h:z,DFGG!jCpB.R:T" <AcMbNJIK^ n+_r0b-#d)|[TEFMK%,'~A!UU֑ 0,b #AʙP J;qڪv倬 8 ±uc]nB*$a^?S/,b ˉ͘p ՃV[8ZdP_yڌ+ 5s,SqhRX5&F]~&(G ٩H3ǼGJx!Ha;ANGSDPE.Ö=YspsHn~T W˔mE>g09 RIja(B 9.%y)(5Eh*@K^%i+NG$]VLB|, r[@%=*7-u!נ$IaR%Fb}"`  ! L0exuҩ[> 9א"Dk&:H00"d #pgL$BÁ %Di0nMޏK<ڄphK >wz)e:*e]MFJM @[&(r/ m3Oͧ8sCK }9Q ]}]&c-[.q L)y0pLI:UD%L0@Y2#vœSD"8&`:="⊡1"I>˦A2֮j]_⥪vkƫЭ[5 !K|ڑ9T:>iG\j0M|Y S+ýufY9RKʬ'tGa9 ~I:Sy2,u𠸲"(d͸#O<e_*?_u*\{9h˟ OE>Ko4=~<7"őv Աҳ4=ڨiޣR+H&5Iyٻ/p+cWmtΈҴ9(ыvλ=g?`jȢ,IG?[Py 4 GYTo>&,xwֆHNzi".9 h(vhR*Ӗ?E m(I'8@܏W Y:DY!EsJiGS }^-WevQZrvM9BI#9W9bm(D^{lW,-˾=pF&Ƹ)PXLJF[>m#:lt䧡nfہm-@1*(vU).s}6틲ZX2¼p,T0g&tq adeb?)~,_Rާ+QcBY IpBH)B䖱^#*n_XȮz/939vx1nLSWTꨌZ@рbG_[˂i4 ΓXmh;wH!fƠș Ԥ [86qs^0"Oc_ 5鮒,BL)"infU4dzuOzslƦ GD$8a#mx5iHt$*YEo8 GW'1^i>AA3sX+U-FVRn|°F.5u7W^q1387Nhaxc}>8aH p bh)>Xq5. #8;M<툙Z]֏@FudM2u2B7aaِJg;4BWs5ר'M-r%T\j.v&N˩5.\)yeAYc~dPR 5#Ԝr" } VU x):.9.hة;]˂iڔCO=rG >fo|_nmr*ms%xDҝ$T'0 lQl=,}ML`O{TX/ W5~,I?8=EFռp5:{(Eˎu>66GnI7WkAO_iW.v{n̻.twBt#`$3f+Z-Rglsg>D/A/}=|BdbM[(K`aZtm'toqt [-fS2e3td V? 6҇޸C'-毼42(Uc^TJv{}|3+7mTU6y⇦oՕ ` o4d~;s?&!4 81n_sk5A?b20')iC4{7,>?2*n[69:O {LtEDF8#łX{Kdﶣ=?qh5|KսFeK։q[U+N ѭ i&Z ٖP31I<[4{%O "xy뿎߇juoGtR!Is=Riޓd;T)=NS̑+\;C`@mPؓnJeAѽy6Z}w~AK waG7uPjMϼ{k|׺LW/hA㕐1ܴ̒{c#φMwܥQ^SZ^9AL55Y€ ` bs3CFѓ!Dߚ77B.hM?#U2oS4"ά&`2b_ܱy-Ú/{/BwNS^721^/+VFN(6M X۹ 4/T\ȿ*Ή#QQ-A&FOPǚ}ax1(Q䗭C-(!n a?Z7ql$W ;S=pwT*cCJq(^ ^=ЉKQ9:X 洵 lm:^ K~<,;4#KnhH?*]n{mS{ ',*v{HP)htsT<i~$:G#(iń z&z{~4􏪏RF(GU)zu)X߰lT14] B+i?uޗM>}s?jԛKYBg99CTN9 f_:3tf1|RSO\y~) kKfI-s dj#m@ \G C 6r9SYg!U= >^^.Tn^cMӟϷ aqzPqs~ùrTG[COyz26iĔBVw=z}aJ~QuRY"vv̳&7hGG2n/<}+" ޴> f^#hQEQn՞3aRiw8yP{Gxr}v ̌03H\ q*hpvYO33g1d9vkp&vfG*v:S$s 8uAۊW?YdMWu7ߜml.lGsaf|/ƫ%\ZRSFξZ٪/Q)glh6fr"Mn8;VX&D dv# HN쬚LO cCA怪BcEO#/IQ_w[Nv]IL,ӨY3Voa`hy13MOԔK-\}m}\_ ! xcSyDF'ńB˷?6G'/Ӄ,X,]a{Q.gM!);Tx XsNE~߳L˻]†jif.G|4"$1t \x7"7.2MA&I㹞sN%BV`Pt5m UT$i78@YgFEiBRoͱ8˰Jbʽa_ٕ2c jU&9c' bgbhgf~\O_{i'Se*HK>(FktOE4WOX`T}̿`Wlp Wwz׆!`dAt+*UR k@[Q{ zkz&?z*ij[oTi[t,9^[ LKfm^Ǭ+){"ra6҃G45͖aA.#ڵN9FEҨQv>J^'}Wx+)ոZhP@+ -gYQ`*0 ;,Xabc _e"tp}#LX˩mŠ_g!wWrxZBP`F|%VuLXu$1o|/*D^?fyxPkDIIiMNt$~GUG^Fr*9KI-K2v$glmdhbhlzojOAO6'o.;t߄F_|x8!_Fj~6\jnU=1t$zX?8: .Bˍ2G{5׬G#Ox654g&))Xzj [um[}3tZ\:;Rh vR0+`UςW.m: ωCGK dW9Ywrի>k?:'IF?A`*FYQ ~Ԍ {+8=-Q\@Tb!Bղv|Yv\+s±x2%-Ek5u^Mv \\]s 1X={/,YuϏv+8gN)Qaح"6T喱vwU#~vUTI!$HWdhӽB\Ͻ⎁oWhZxږ~kZ_@{{ _` 02bOO!Jqi@j֚M@QyknzwY{gZfuf^m?RH# cֺ#íJVH~Uh;XhE5klLehʜs 8I2 MX'wZy1N‘'>-C 6=FDXIMEf}6+IA/Vp{b1uKOLEVe!̓6Ss} $ f$1f>/OyY9[&kv`a.|wA>MTR2AY*50P;阉.&KEFyy iMI4}LW#(Ϫ6!W'HAX`Y]TmZbz@{f7'[QWT6-a;p+;9zĺ5- )hz22mj )J̕ $l6Gl_~-i((Uq -M 3_9O*!:Y5!.gC)8?I0l7}c !ɪ[g7;WFE7T}3CvW03oVfٍ,/ y%જ@`g~}3E_4j:[ e'rw źG7*#,#T ~kC&KLtM4EV,[¢0C}90p!&}nzbXl;ĽU!nw"6&۽M;Lr뺈T.ӱ)mu)ϣ .ipǟHfيMjm[Ʃ| [4Kf/<> t/ؐLSyD FyP")(vpxb.;-%$R#QYBCJcb !]SNCDL4W-5Nio9Nx? $pTwt}=pL>iYA]M8P c<`EƢ#uΆE203dwBòʦ6klh=*r;FeiKXӘ "hKhrrv%5X }_OS]D/R˽ GM[sGDҾ9rK&@+)K*|'C5+\=IWɌ;?___M n== ;rA]rjeZgbCZD{eِt#-0sniĐUZ쨺a-Erq,,/x-Pm+L]Q_BxV`g|7*z+xt/8k( U͒@8e2$f`C4ѕ\އPFOPY2d`tsrwU0t*\"IuS:%:.L7昦Nt1tz_7'Hckz57 ҝyk8ɟT)#Tn8f^L: _9PTə~+&Ur5(gyeih3/ ٬ ]ӻgT-STTj5>5^LDP~cqޡwti,56,a*hSM$w=/hGxLR}[$ [nX#9udQ(O"UKHPy':a \v:Gm&,W.]tA^? BKlsC5 $Cjl,#3@ԆU!~VVšLk6~SP?;jn],-eIʑp'I k^CE|vʹqod[tI3qniW~]};.wn|;v5kЀ![~ůY R-Kq(eJ.cGlaMyX'nW ]#(oY6BOVWvC!A+g3^҆)FAU 3Fړǩmo3-ט^+X57]!rh@\@:^PK3ƙ*4fä {2Y$ 9!!R ThI6fd1X24coG`t ;p{lh N]Rwl oť6rrp o0]JRZp}m|sù<!^/m0Ií33rHe~YìfE2a yǬKb+Q)7}TMRB9Bðav0>k2# =b W9k,Wid,0i'WbY$j4Z. ZA߆kҨGN]otj\W-zך(֝ GJb\My_ޯyx/61-e$ Xr n f[É Eȶ8~S7H(8  MJB-7% .ZF_.|(P^HZ! !@" ڙ5,ZNq#1(hLE'S_J!"Vf̈ +&NePƂݡ | ''58JS9<>1b|ME-~*mNJBP؎G\]f;q^NUixrU/iM8ߘpMw|aKdg٨L!枨vG$ZGB#3"#Qn"5g#?D ##m=}hUyѣ2ntfy-2.11.0/docs/static/fonts/roboto-v30-latin-italic.woff2000066400000000000000000000417301462047176100233670ustar00rootroot00000000000000wOF2C`Csdd^` R < X% 6$   D#n@Tcd 8@a'#5{p1D&BD3i ,:/a5''v$XK0 g;9'G>s>`*ɳݻEbMI)b$8&((*&~ C{M+pSDcj, hccl388.Ϧ7#r Zٝ3X'McIP_"eV}ke,20z*P SpZ6*}T,z^z G,϶*]c83vL4m]誢`{oU`U8cN-2}"*Arwš_l#ܺF\H_濾/iI:fyf.HRuv:w~W:mo{_hl/1/ciV`qMbŰ@53t "ug;Oa1`q` {%$†vUw ȖC.ѷ!B$yd]BџJBbx8G6#>'.3HP LR94f%8P@VqyΎzn0w aoSrg5rG>w Jyy' >H_F>XعYA[hA2{3ڜL'IdxA6L`SsOߙ}@iޤwsK6{潙/`{S\ zWR ]í?Z,Ω]2su P>W2yUhZ7Y2J_Nu%Zd2b~ڼ jk:t0chզCIS.lڌ+fu75,z7}'+>o?_G)--q¥iH[>O$Y cKX>Yٗ$3Eu==8wK]c`g_gg>S=盠$#/ <M=_ݝY.?JrAyP[D {t*$HT Ym=MȌmfņ;v9pą;e||jyS**ժ:=zhL_x|`ȠĤMjaXCZkzxڴQAK4 C$3Fgl7c[|ǰҀB*ɶyAO!ćePQ_"t>{{?7?R<"r@JOܞFMH¨*`qwT?0Gat~45S@sY H!K.ZD q,(Z@jtP'L;AdАa2PȐDh)cN7`B`$)L8=α]\,CwԛY$_-, #!3CX\@f7xڇ7:7qȯ  D|ZsSOOQާRSUZ;eM% G"ІgVx uUQ۫P<@f Z}-λi[6:Z" <,VU,Eku34߱To n 凮HS-;U!,0A|Y3xvpѢ+!TNMNc O &VƎShX1a=Vk+J;mmNw4'6YqLa*-yrJTȆ c6MMږ7*q+q5I 䬿dQT|IXTkzAPq*iݘ֩1+v:0kE)w{j=T"> 3|Mz*v,>8R36FѭIWG I|=qEUxBQ}wk+imkV6cdsm'*ae!]dno]%\˞ }gwER0 Xs|_I4t[o,i+AZmoYN"" LA5VR `pV4c4 ҽ#$U27xʵ" !"$c#ẸN ZJe6>Ys16YU5zJ= z-4uj짔Z%ht'[u`V ;:V(Xԗb5$".}ZNRND9FQM e,^sY먲ȧ]@^4KSËXdlCw|C⑌xhB4`Ol|Ia%v,W;]ar+3 h2,škP](u3٦{"}3 Ϳx֞,+)Vq'a!+ 1$$@ ?5- ]f7/U?v>M b@Ig&}xĽtHs &f*N0 nqPc`O%lPqXPp+E-]eH%`fhwA.[S r@K) U0v@BWfOgPOg`اPq*f0 y`[InE Z[4nZ q)GY/}`$XBkཞSju\SqgQ+_; gxQd׻: \d[+UmmХ=6skL13X[;d_#cBow삫y -{`HQYCצuJW-pgI&4&}gqK&A|;TXfkhR >/Ʊ(Xv_8R|I^}! @RO;Xaހ %0Y6 ~4OUMO%MY)+i(d40n@YAE!x(˻ob61P֑CX9^[x(]!:uFନ9-];6)#H.Jq/ |¹qlܞy٥0.tR~.&tN,І!NЭ^;cFklE8،9ǰ̝w b<]NfeV fs0VPwMBZ2ܠTVWGOf=aC $fpݭ/D1l`/DE~lYU䫊0/[Kw R_?)z7 `83Gfd )/?*kƨd`_\h4pp{gܽp?*ἱ>o a%& Y:aN47i^d?ټkM/Yd83xcmrҞ' E7L`G6uS/BaOdX|؋_C )MRgϷƵuN#fq>ӏRǺ;\65){2=m{s'c!o|to0P7/z}V#*@͍iIʾ{Dk6]lT[a;Il aC5ɊN1k'ӎ5Q=[v~̡11@ؙ sѢx4Tsw`Bi1;V;r|{ 8 ;öCKFq~DG\ -98 Q:wYÐoPNo6$#sc7vlp)$SߟهJұk5 A?K;n?m|v(ƚ2j"zLt3h vDY :d*vD9Liwqǯi -bT,z$eQ+bK;n`*P]InGP(w62vGHjI5 Ur-%/d*?oyw -fYZ89hhGQcD{C#?a$ m:Tbz؎uP;f*= Hg E7W-Cg JO(\FHUɒfv *P:ˮ㊰at6ܵ;>w&~*(ВE0$Asä#'&IL~AShe (iQRP(XvJe2s)LGo.ޙ_bջr0@cd?Cp~!50梁3dd ubLC]HR1J2ǒW{WHgR$iyCgW 's;~AZ9U/ye?eZ' m!Ŗ $m&F3+-_Ac~q>Yԏ=`:SS[P&10$= C~ Yz5BmPأVv!Wg gh'b$ҩ~( 3=OoE:u)>}(="SmsWϖدHzXOC, NroG|Xip%X^ANF^W_^QûyaY w6\(ϏMc0C K ho7J?2頻oeyE/Ytm{vTb^t<]E%1^>M]F݅Hr ؘlcͭ_$>Ǘ`WruȅLն f'@x1N{.'pO ?ZPZq; ;kK_ jli0lZh)pw Q(%qbYmz+P>|'4YP0Ǚvyp!X$Rlk'hey41WXdWb;.Wo2cMm:0cB;-았M<'qĸ+qGPs]GЭqJF3Б<g^m@ԫ/+Vz# =^C$oTV-neErWRf^#ܢheM`S&wC*%yt%͠2Է( ;?ռЈm ?ٺX&p?)ٶ^&&<^Xs>}m'ۙem8*}/7 ;fݲ=Qv3?!|ٕe 20:_s#Q针 lߒ9S1x >b_n6.f[edW!5bt+UjϸmErZJh)V'!BzC\Q;#+ 9〔ӦCwγ/1 )%n+WR@%ngxNxzIY]j ]x͡iʵX;<䗝iplNů~hP~svig&rƨO{eYoK|KÚű8$"ɞ5@x k%ŀp9FS]28yJ>orX PI;,C<,j}g4KF%bߴ&ơVdž6q rrZe(慵Gc>;i镡\ڦ/_NV@ipמm#ƹ5uD.M\ۍJUMN#( P73V(^"gZ+fτݰauq %7q+Q6~?Z5BHnЍ϶ ҉TwLbʵƍ>j~i|@稰]Z'r7xˎt;c>IÂa-?\eL If*wqjŌec:֜])Di}*Xxfz >T(i//圚$n2޺H5ƕH_6DǩEk?X]dP(wiQq٭)Y?nb-̆)eeRϘm o.[ܨЦ(Sim}Lᆳ(Q@VK?T^xJ;=@)̞bC!zNҿ K7/[LCklD3Ӱ#M["Y ;zŅJelo/4 ;1P jyێݬ0б&ɳߝtPѥ+aW|1 Y<7GIkY.En^EӠ+J\k>+Pi|4ZPZd:}tNۮb;0~c]]^~#NBTPz(ڍIk$,ttfw+fOnPU8.F,e5x ɪu NMl{Hٓ^vݢD=zwZ JFkw5?|vTOqT&ocR],3 $:iKR83R}D(pazʵE>\x+lL:DIz:yGE;@)>Sog/م͙X2-࠶T =~,t67j R֧xԟKώjһVNK^lAo;؄О č]uk2 Ü:t6avv D8O#'#Y3Ryrx*N^-uE h*LV{KNJ_}kzPF[O#1*52Ł 2X<_M'{"f&rFoZeo ]XĶ{M#$޵ ɷ:Z?-5#}UshHj+Ԣ=MN#GcW~ԯYq.$7*pMyZ@ìpl<:1P-XUttMcj@C3 pͶzFN644i 4o֝"ےlֵ(UCUvo5')x}N`bEߔ SaE6.ђe.YJ̡09xE.JhOZv6V $'o@y"2c[͍xfBiaU8>*oVQ{ ֓G|`uN+ K=燙V%+g93u@hyٌ>MxCy OhPD(::U{hLIHKUwFfiFըwLb=m?JIt;1A#L .PDd2mSc]{#CSi $_Y~'׫"t89;.}N~-[s31K;PlZ'ڳVMi2׺d9&C RO@S$thxu j`s(/`?ϓK[{{~eW͐*NG9zHq0H3I@gq^KjTW}7qJ~ԇzi`d<"1/WB3W|/wE?Hk$JQ1$^h&ڢaXE0#(ys@3octˎgH4xW(U=N>XTjG !D'`,:=|lrVYE--:/+x.S;mòԭf+cknUv M⛞ܸ;eM ( 8̚%Ҽevc)=C-XZQ\G}l4zt.$̦#Z4y}Q{ZϹ="cSB0ks8Tjo'\&z;{J'U;R5IUQQ'l?D.: ͱlNrt~%6H4?rEY΁JռLl fRz ʆQ7:m :#$h"l•a^S`dhOjØRh}4蝗嚘=2ܷkhvdAv-"5.o ;NΪ Ϣ`/_%L^b'/)f wCdʥ iϤq2(1#@,ҊOjoQ::,۹f%%<.׈ŷ֧U|XO9Wno(`AwQ"ޱdM,z_Y[?J$;5582Uq )p }ب$<.[/u` 'z5*R RYBzVuֵ^~іUd=kvNҝWjȷh(P 9!#!YhtH_^0ՎĘ|˓2 Ic◲ȑ;x8Ol3MНs{T?KcCDg ,[m!ݑ_@%A\q7ܑj,tR(N s6spD83-{rή-1T<ͳP9IjWӯ77V>l[SbwnO̹n05 56q}U8l1NQ=]:K-@NRheA3hC=}I]a! 3l틫/lΏP:ܡt8&8oLk:}w^Jgw@!7Rh4p!ZY,ކO 0g.a0:O??FFpr/G6 }#M<{ES!|oD{B|m %c}Y3M;mP$JI,e򌙹Vm!.fvFBm}9lI3X$KrJ;vuF55wFhmq!vs8LScEc9ղ[y^-q9~xw]ׅO۳ov|-Mr>ӭ}=4(k[L֣"`ܞ{4h[ s vD&KuI=:L}diPxLEkܵ䁲ZmGiaLhkr}t]$rgi!ƆκG\t Qkմlm ;=\shgc,_N7t |ܔnՍ5s~٣5^dr]"wB V/(;6TH&2D!'v%\Rؘz&l=7@eӶⶻXN~V5/f$m. {8SC߶V#7n-=6/掐9^/Q63gVد|TN 3֏hǵ5TΨָ#vNe 1rG}ʐ 3 v]/|4? S߱ێdv8ml_2}ɬT͢ﮌM} h, KeP&oJzzs;ԛ7&##e,rR18pty)s6)E__ cD7e[ ZONCׅ.gaTrV9t@VvTU+NMȧ*|Po0hrV@kL~lxo+2K aI}^$R %1 7 GH:Vdrpv`'Uڏ:Fu(P 'ږE" ۗ5M )n6$ 2l&46|i3z;ѳ;\r2x^V& ݠ9,^#2Ao*MkwApCP dSXA2pH3Tm,8^VJ}1ݑƝkDY|gs `9<&Ey,p 䏀NfGL(یoiL4ƓӔ{z[6?6m$]Es=75 Ȥu;9IEBg %p2&4 M\-]R kkIR:;;C?2h)M~X\>@a_4ෑ_Eڠ<  `PGq| ({+U+|W6<&=^3J~dx2%Y(Ȣgv#q8i_-Qۘ5=ZǦ qsU cA^Pc6Gb[ `}Źs M,k0qLUaGh8죊PTNA=_I-pB)+*f†KYtY=yQ@~MK,zBnu$Ԡ)ͺ W l$ٗ3CsѢn =U ֜C$?x͔#L"W/cL'e|Dqrnxڄ\0(IL0^Q'hr+o8G `9ː`3ػ DIɭe Qכ~anH(ࠟMnq8kG*NB市 \&Ӡr*zΩ)N]p"챸K0cD{'I=n SŸK8`z>:uk&,}&/T䠈op]&8D%j9 -}is!j MGZdg1iؾ|2]d\&{RNSSF~%6d 4 >ŧ7|A^B'x "r '< t+}4Cu/?mNnP?ЌzBf3 21)]1#tA62ZEr0;`VEٯ?~vJʪ&:Z\0ʹk&V@o^r6٪dIYx (NcsB-Ny ibVL~Z]g:p,[GgT~Ix{~05D$_2ijFgJMQ9]C*t國\T,xi!$d&ۆd쯷z61>MN,ʕX;V{pZ#}'E68KKBD=Q oA|c碙}a%P]4||e{ߘAkCA~ǒlq*0&꜡YBʏd?.* D!<l pȅrM~H(c7 ͜1meZV33RmnG:m ^^HOxU! nE^y9nWMI\vZGSbo; q׾1q,ܧ+Xȃ7}t3Qo"`k~ cXTw-Rf`~ҿe15+ݽ]:U=A)$UUSi_>7b X!\` `|8e?M, >\-gD9ɿsD^$)NKJy!.i)f̚8 lXgtu{~0n#O0rp8qZ!f PIĖICnApg7ޮG'E.L"=BDM//f^3Mߕk\U92nkLcܨ{ LV) Ntv}Jw]ԣFto ZϹw2Psꗔruwb 9vAXyg]Ե40k&8a}Zy:9.F-ʠ p~I umᦀZb"jRȖAV;Fac+aeUIr s8jZ4fq~0VəE @ʓbZDykƲL0;]<49X2|^`סMN{V՜1cd&QN-r;A.%$֓|j4Id=&znR,ǣ3T] ѦA"1I wB *XIRw'oW-+4D@ A L1؀Q&Ow4(5V!`p¢,08 9 Ό/茓 rQQpg\koC3 Yyt'd9>#|3Ƹ?֌#$i  g5z֏秲S {3ɲSpS2бw 6Ӣf]﵋F]&^fM%A}؊)ZLUX.&qOq?$nV_[3hQ詎ְ$ڥcEv0CQ4a=jwn'&Vwz' fxdjqv:ꡔVVF7:HZl*Тtj"O~ۿGJa1F~۷--J %MZ߱}:!%cV1&9עV5hUp} ѾtS߼w?<=V Ek -xƻ1xP@F'O!#LXdÖ{pƓ &.XX $4xǞhסSmq&G|O_ClNX\p @Ĉ/~q6A7^SsNjQ#-vV"qwq a#hoa|'|k/}w0ܯ2"n<0BCPAzǥ x>CEMTqXUX+SR٘xʀJ)X 2~8A/WѬdq9G !4m1I7?ۗν< o8&0y8/JYc" #>3%a hv|8C%. }pha '|Ɨs и}DK*SY\S%P8'K[J2*f "D ^ bt6220/:‚1F0cƁ+ܩIHDJC Zn;&YxP?%GFN&M<<2db  ,Yaéĉg\ʕ#[` wTxD!PB`!(DDED% Kh41b(RF45iE Mm馛[<CO'gyFb$#|_h~KOdLLW[1 Pec` R^rT2Sbt "O7)Q@ yAQU)@)`j"[lq11vFV c4F IDfXa9O܉gfCԜ[#9 =371  G~$v:H6T>@v"A!nٝfso;}|7 ߻/ڊAi#mÕ'ҥ@NϡՃP㐮ks7;g'~5zoZ 2F)+Bbb,.Hgs Xl.إꠧ;k1{P16C2E0-@b ٧BL÷d^U)9NIac_XQO}h ~o~༰Vɕ[JށfK.rf0 ^xy0Gռ KFߛIf (? ҅*G78BCX L8y cA+ESs5Z!C >!/bx3ڔi{nx[㉭!dSP@Y<˂U{֍Ug'YjbIЙ7rA2UZM%dvxȢ&Wp6պF|J ! : Rhz oudQʫ#XXxBXa}+l^Š܊SH0Y 0 fTpV7O'1My$"B5SǛ0PVŜb ]$WR PkE Lܰ9 E!CK3X;RqtH45Ik`wiL To7E2%{yU~nVb}8^RNY+;3SٴF|T=JHEIBw ˡPm;7jMIڐF_sM U[t '\y٨叶skHȡ^™][ !4p̬:"O[+5h%C*1b]|e{*ȹu.ٞHʁ:!/ya] ܤkg1 g=mCл0=SgMTHXV 9?D/[|!GϦ19@od_OW, :pax^m@MKc+CD %(U+\i!7X \r>} Ҷv48?) ,yk =V|0>sjgVUeȒReT\VHJ+bӯP37L&Yp<  ٮ7ݦ~L-z2=p+q23"s~pʩ EV8?ެCAۧ=J8M8s+x*" (D(*:)"W}`;k|SUW253ttJ!5Cgu2R˖yD[ǵʷR8'Ul}ݬdPAڇt !':@eAFZI%ϙ}V4ITz_CQNͨT۷3'G˲]PV< >f[ˍ|:Qp |Hnb^^شm !4ź*quk&m5_- d7!Ӓ#ogZ(a Bh( PLBy*t6gEgbtB+flaTpL0#-d u 0s p%8dA*<'41/ހhFj!Ovs+1eҚ!- f7@6aIQ-dLBEץ'~x[ .FnVg62-Y6(;GLRq{O K:1|e,PUwǚFWƳ߃W]CjFc:'Tjx .Gs>Ϟֻ\ͦ? T$`@l$ p1G7_ˎ%չ% B N9ǁPqumO9G/۬of_ z?u0v2K:K̬$ce^.FbgGNVxq/qiq^!b;=NJ+  e'dHbBt# [1YCw@ z0>Bʟ%XLi\""''.* #Ƶ~씠=\I䋹sDU9ܗk3x\rSKٕ1O~~^l[6R)%JRS": 7 k (t˸FTKTSD<+GLODhDBpO`xY@UiߐrD}=KoHY +,~&8z/k4>㺭51]),rj3=ǿ#dVpLb ȱh|,,=6= $5 a湩Rj玪KϭW--g=O>Zٕ06c-%ꠅb[# Se!/^bϝ9ih~wvod\?VK;ͺr |?4[*KmxKw <=\7`Xwbf.&wr{7OFns_? ) -]o#t$2SjldJy˗rvV-ŏһe[owtOrm ]sc9%OV!ۢ[my|F|+L$/qqŻ. %rwdKrn=SUknJ@2yڕ 3ǚBȞ~߰JjBrS/,-`%q_%[ Y|GM[-[y͏L 훏OGc^_b4 xz Xq(mˮY7e4=E^wT"{A^vZvKka}e=ZlY_ ` zR=U.XF;i5:e t A1fFFB:m(gwXYF? Mwp9$5My+6{&(KްfX氺q?vbA{5`e2Qs3I~_?AHoB_di7f$᧶O>!Rbor`rOU241}twS;{݊2eC !ݍd`ht\%Ar<:ڿX6A2֋?=ܻGAm;ayrKť6a>ځAǸO1XgObu~(Y`(^NH= nYɭK2/vI"k- Xui,q6PCX0 _>&J-F׺FSB3+n yT53;73\Y/!g斐(STTY9G \))ȵɤՔ*:f2f #Dވ\,3n2N567MmM\zSrJ-z-fV9r27˅g繁X L^wk4ҫ*j o y~Jk""Lls۶EiϷ$lapS,I{5nGd8{4#:7Z^K]dV׶5J}<}RbP͏'|i]lh]noH jKHA[̰9=ibkeX3:13%8؎PM5QQ=ܖ]Y/n| 0UOdeI?dC j-5Rm5~v(ld')..53HpgF@ZP|"RK<RVRRVB % [jhZT`6RD9L,Ϥ4 }202orEG(6Ԡ |!aa6EDN03my0kԼjTXUb#ՔN225RCg=:tIXY3 ؝R7S~̇i-3pg>)tgDZqp%W[wz*$JiD0[[绐m@'hHhqz/dh3lBOEFS=Yڽ{=;h1mm=>(<IO?`)뮴p!JswcKvT7--c":Z8]7Nt1\u{:WCC:\{/޼,t%"Fz_3/M ԧ( q(K ̗ NED:v dFc'.mg&\t`%C">صSP/9J"dLЩBiDKl-OoEa޽8@Idҋ?oy5LM HaGDlZ= 6ks6 7Iy%pJy$F_Mn`k )P{ᱧd].N^ Y>q긢5dE(gɢ]\8{jaisarIgAg M'hxP` e_/-V=8X77Tv9;UbBu@k jjx Bל3z8&Aa$BPR'`Q,oaYJ+IA2 `ƺV0V4[ D;¸ψ;# XűW$4C H&໼eZozrSZi`U-[P?t1,o4!@dcml[AA -q.O)tLE ml `]LWƳ`^ȇ}H,:w_v[bև]hsQx<'ټI[mQ-9n II6F؇`'ֹIoKiD Ban\wo{rbJ诤P`yɰ~y%d3v\\=ՃO<8v7 "]=#b Z$YtWAE$TXihb/5pR>weO_ڿGv3Do =&'Zw;=UOUZ*KsrJ{>}i.C)J!1:E3 Z?& =,ŅD{^%DtK(2(`gih=|w JaȝGCTʾqIòvFG7ٴEWIh$O>罖7`.~ 5g^h_;~)A)ĥwlSj@#`lv[EwLΜ7cڰRjJ,zdp_(ދv6LӲVڢ.A#y%?`,'@:0uNBp(VLW￳.H yx &n FE~}Y)7nӉGhZ' cI)ae:tEƶ|F f5xИ&qKQlVd(%rb@$V?TUaMݮGe% az-W+M ֌q"XaƿX@éKf>ެ4t:ێTͣg;v Mx^[\f:o/KԥCU3jY5io~aVQ4ԤbRD"x *y zETa|OI,]Ԁ0\6j"y)=XCi~2=%zڌ<:XSkZcrs D#0]y-5g݀z4Nظ1-za\ݨ՞}Qt4[h a2AFOdȋřa@Gwub`pƴX݃InKaXg92cQr,g&wjkȟn0B"AA#k0s/S 挷 rdNUexLenMpv_ä=;׭<7zxkxovwi}fB8" %IZ*+id ҵ T!zB`"9d7Xr)g1ۄwM6ğm1ari}x~׊z2t[0z"<Ƴul< [ WO_շ:K>/q/U]-\G] ! F_{0 >W28W+JJRf}1udXʢ`/ r35@AhseHGm\nXhL}4dSZȡL V`%9",e GN2tJ{i틭3e&/֊]:CH|g墶5D,hrV%͕Ӧ@* 229 :x#a3[G5[u v1#濑T֚XLB~[pS:YAG'1JLcrKm8Pi\v;ȝfoBs7]=G`udI@Idwgs*se-nZxcdiE)tfȤ\q()@By34גIaz[EYHTTVД+w`l0tA=w rֆM/CѓSŽH(рT-ӆ5S >Myߙ=ۓ龼[?Е/B:\9ڠvYޜ6At2ûh>V%/lX_M@xng҅ی6U#׵3wOE}Z2L0;YVBXv+sAP (xw{2PWQW=`L^Ujݚ,IɜYL:o|p\·3yo@Bu7y1bviJ12n P>-u0;(BG=aqȊXlb{ΥMs!!*]Y]Vɰb3Q%,]u"_bȶȩؐh!PRYz') O8: +9<nSDeXii=`o/<јRmɛI-}?.[NO5(ovRƶɘC=EXR BS_-YUU ma,kJ;x]]q)4?7cɍ2(ںe>-ɟ=Gwaa/a^.7vz89K_3/8M0̪siGf41z^l MeOުu%ĩƝ+VaeA(lVj;t2+hKmy{%4O}']MvdY9wiej/xƂY}([G)ҚD(&}|`ʬf:.Ÿ>N(&Rí/c r@g,M}C ?i{ Rg;L;}\vgɱڵOVqA;'l#٦xWepg?B+ yzm'`/ό{z) ‹վr`X NT^Ӓc ;HRS:e)qE:蕞8Xe3z0S4êe<Ɗ05FNHBAqme$do^'0Z`YKZ,m<[-G=1?);Cd1{To=޼L1Z sjOdت5h*i)U} wg#՝Xd=o]ԠfJ#SOb$A)g!*F( jZdYT8H?"x#qDɀ_[1  ^X$F JDNbd0EkV!l(st; t^9"yǕc8^q6g?~jNw,g09w`?3^JBKE5X?eAY*LӶ$ܵcP he%(] (#1CySEdH8ITVgyd4uZס9N c-nmsƮfۡVNSoQ9êYiFu.|B) 6VsFnjh5 ");ԤĊMevjq&>Z}2:dq~/--U=:'zljpk$ON RnHOz҉[/<5`6l6%ܤ3$|d/ѺxG\o_i궫Q'氃-lڊAIQ 5%ϋI!崓A!p1䲏JtZCXdE#[VB =aEXdcR d1+s#]|QǘERSdŏ. )ntfy-2.11.0/docs/static/img/000077500000000000000000000000001462047176100155565ustar00rootroot00000000000000ntfy-2.11.0/docs/static/img/android-screenshot-add-instant.png000066400000000000000000002726271462047176100243030ustar00rootroot00000000000000PNG  IHDR? pHYs  tIME 0wM IDATx]gU>ު8ӓ ay,"(QL`9wk]3,ꊨ( 939Nu~TwOOO tOaA`„ &L0sL0a„I*&L0a$&L0a &L0a &L0Iń &Lb„ &LR1a„ &LR1a„ &0a„ TL0a„ TL0a„I*&L0a$&L0a &L0a &L0Iń &Lb„ &Lb„ &LR1a„ &0a„ TL0a„ TL0a„I*DĿD2:R_i :];MFԑNv mNMq"ul[[FgEǚRi6nIеCؙmzd6"vDO5dR`:x 1@~%bmS$`潍Tƾu*qe0a7aVQXWP}La%BJ]pM R ]Q5Nf8/,` 냚M^ (YWZX Y[+8Ȧ˛7NA5)\#HBjh>G_'"US[ȑ JoF%Q{\DV!S_DHXm6w& I>WJj!qj2$\4jnM )["@/,=e+!$W_ k"qEQqR%cZ CPc\Qv{O0Ϯ}[6rWfe,zf$&|uɩ .zwM68*բ!W y}(3 b+) SO8Y J 8B 3% .Aڰiˢ?# "]J:GD- l]f !zw;p`t#_Rh/$5FaDp…<}9O崴d۽ןyn*_w mϼ>sъE#"Nxsfd{~:ȭ.g|ʨa~g\~fR awWd,}Cgྕy}L?cO;OV5{ʺԪ:mW{[oL_6~ƕVm7O1 ym;Wf~h?nGn?SZV:̚%)ذvSyƇ0|0IeŝĸW\6#5ep-Xvj}ۜo挵 .IEܴ}㜵-ҳ; 5Ӟ`ߞ=/j6[r6Ϝr:a/C7u:A6pmu^v'|dѓ3_>"8v \Kdk;)7_qf[7ԇ խW3+O&%?TY[ @&RW;;KR2pgM4v\)jk?gԏ>KMUtFhi9~W}_y_7|B/,/=7,krrk+!wOYZ ǑC5w"C/DYmO<Ou3zH÷ys)q߃91 oڈpl'HK?onS2._t9SHI;EfͶ- i/=X~gEE9ιjUSbv}R Хpd'c]/?M'}FjZ3>:w8,^ܻ[8 o3[nuDT}yyw\q#B&u5 w6H~7G[`oafkVVs!]1p-7y݌P"1`wh;CS&PUW{-,0HdW fđ%"›O=?f0+KFf^aDP5m-= )g3y7ް;u~\XmuGټ)jfS%4%p򳦇9݌`6B#F.\| +ׯx /WTMW]}zӵן5Wyn͡J4Rh@^C 쏹DGȈ(qĤ]yvr鯿H#C7||5顦qZbLjGIϕ֒[W{vx^$C*H>SYj3UPY-9~?N4~~FiU-< |3_bD`@e\U>ˏ=';It09&Ϋ ni︪0c9ᇑ9簻{և瓙>7;;IƋOs8t{|޽ye5*:ƛ&&a=94MR"h#jVUpY3} v=${ `̀$~`mu/uC- 4`'_}U6RQ]9Fߗ̗xHeWa{ N>nc\{eOđ{0_Ц_=-]ynt M0g{/r/B45xO4bx]ۏ:eׯ[Jbhמ>pٙB_5Espާgy_hߜ1Qyo}-]9r0Wk̬>n@mw8*** =~1Gq-׫K+`_Qіݻ#r6nO xhwߜT3?|~~D@m}=cc`%Z۶5#r Yy#::n@Of}`mA³OV|#F2b+׬Q,D`spi3::OUiޅY]շf_qno{!snŻb_~Ol7<>6K\+~)X-RAu]@ ؏_gYܪiu{+>(6iHO8o7yݻf+4h?PS9@FF%&'~{j}cƳsǣ=n=zޘ1OvK9q !\߽e @!u畧f nزs'c&L_~͂ˎ=oC3`]wf^QKϜ~c ٤dQ3<֊LQGJ87ĤQ'TTU ]ȶywp[Ox眷tŊcTsWxz_[ښ cp5:0sHT -wX^]Y@X Ym]=$'J)+*TT^XvTXN:z<TTUm7t@I[YEcX0%1;.ټx٠#D9urpcƩ2i #%SO}寴8(HʔҒPLogy3^}<+5=gͻv<3 x;ms?w?XzSO.iT0w\Cq9EE9 #u}_QAAq!ϚEQ/~. -K=y_7^~Y/rr6lgI` kWZ|y]6U4l{iv?u ]O{FQewS-fUT%).>->Nl+35& 16w( ;>wC.sm7=C.(}f\&Jd5-IEd }ǒ\1EU/2TU5$hJDy%E#sG-*@鞕 's\qI'_+=?3yE#sG+. 5W0HO(cΝK/ezBNttp~ k)=“!d9Kyŗxn_iL;ZN8yⱿ[xg뮽6jfB6 )u~ҘK>WQYhRQAS쭭ӭ[ԩOHML?^{iDa򄅎FE9,6H|A 7^0!n37QmN;;,~>Y_|±fd}^vuPj]xBqj(ckj7|pf>wݕ?w\}=:O M>K/vYWT]~9??6lo0jsv5۫+/2N|H$}$:,>K-6}ů6]KCZ>egyvUDY.wZ,\xΈLXiW\''M||ٺ xڷ﷍ZϠ4[9{lϞ?oy]ڿ=ah p)S_|7TٝS.f;`>ܫ=E7m 9: SN~ʩhc7nշ{pAꄭIgNmOCy_&bu][W@ʡ;>ʋ?{v)m۞=Wqz;`^۶NÀh̩ (|D/5`aqGEU_~_>.qIJz$xWEj6k 9 |ṩ5#coA|Z;sҟ;J ML9nzG^`HF 0)IH!!{̲;ޙ= /7bT(OXXvh>z.3bӸ]2):ϻ05>aٚߟxBN%v7ZUAޛf+9B E3l҄:yuW֧[X6/Xm~ ;)1qۮW-ah99*'ڹ۳WVFM:jm7nܢˋJcb7l@53VUUvqF/uLDl0r\Ϸb]W\tmN#ҚA~_xmW\F,+ıΰ(!ؘE[n"ΣDQ`{WeBkHM N o3~< 7nW\E+׭ݸ}f:#/gf'ŻN=h9[ Ijz(p0)t#_z_pͽ||#@eUXgᦐ\1PZQ0,XU]m3****h&`ie9X,`a@֊v@Éun_UV jxV|\]^\\|ϓ_/tCH!Ǐ;# o1>x%W}Mo?Bzrʔ/j' ~gϏuĨA[[J'Gm|y:hhɼK+b]N`, bjɂ?"g:Ihxgnj>b! hrW^Tgtz[sf6qW>xp%#srWoh*"('<.WleEX_$wpe= Ry| J)Re(?D}gN>kV&zv.[wl_q\;_}2wIN &\?y#ݺbK\x-Ga{[USRL֔ͻwv{_g {{gqIW{qc!۟|ؘbFQUMܯ׺=,DFڂo=Ǟ{1gMݰcGWfyMN;OpѣFKm߶#ݳ9Q6Sz|˦MÇ ƛMZ@Ĕ_.=5y݉բ\Ψ].YL2XuGy5WZTMQիnu~͕'MIv66%?n/n?Pn鞻e\0{jDrt8蚺:ig6߼(-+n>FXߵwܖ;{7\|V8MNO;l#wCXXjR|0㕗mXNxQG\{~zHN{I PWВ:uHҤ\K<ǘգGq#?yz䉓8WCoLaṽ#[4³)CT 7.kV?w\y7vM|Z [xTyk=f쑃s}O?o6N5IN%~j6g@qR^=zU IR>Nj+8cRW-ES%"߻OsMUVOtiNj# 6t]'7׊: 觟x?[pUe n窲;o}8݅WaQ 6('GhAC|)l=>;oW}2t}gaBV IDAT$/8kMQ}@̞cg~oV֥+VV<{L&<4捸pҚj;flCŢMvSL89:*z捯"b,]w?,5W>uLS{Ņ˖]xԂ‚Y_]'ժ K;|yEpYq7ʏ?)=R >[0ᄉlm[Ī2G1r؈a@>zu6*)č\WTVRE'Nԯg漢j"ho8#yYq{mCLWywJFR#8W̕\pb+fȀVL0_ Pҵuk>o5-Xb#F׌U_7^85|pU#$I$5^wKGI"7$g[@țDc"z''9EoE@0˛vlEU%$Aç"fiv2IP ¢_W,eE*h6g|/IWUd,LQ{ @IjEUChS06_y]R+sժ UEoSMvɇ:H!9m3C]ҳθX={ ^4=DHP_oѴ>phN];q/T+̯}/^t5Ν{nQC.qLM{ݜs/xtqzQ[_gP1yu7DU$,фt!BOKLJt99*=)tOKJq{=^륮Kz}(2DzpV, @6C p~WGO`JThwQÆ{ʥU׵kswV}'4vc~=n3=tٙg@M?{ryxlZ l?0R9Wn #(*瓏 yk, ;}X:WYç! B0p,r!ՓUf&! CG\ Dn"g 6O%mneup#c#+223|_֮%?}-A2ڲw߯1$/S5f?ǎQ_~'%%'>? cGѽK׷?zcIdʒ~jQC )5e\xE"N?smXWT[o\qy=+{uD4w5bմ'' m" < Ƈ:BOM ?W˚ի7n&ЎC~(S4m9gweζ\my_ q;k)KpDNGumYwhTH jZ%Z+0`cBD =n2_ BB@S,2bHUK[GE}{4ID Y'a|oE׍9I$(w[VY3`ྂ(up?T2#9oWo^իtH&?&CiC[iiJLj`?D#W=B5ݡIfOꠘ>8В )y-3ԎGwInwzi`-e[cV0oS"+1J3țx:H`5{zJiloVz#$9NmvP?%>I$yǂ&]Q=>34I倍cCHoEV$ޞA)Am л!(B#*~%jꡑVŒ7[hq6ox?S2DK69PhMY*!zk-k6Xˆl=Wy &L0Iń &Lb„ &LR1a„ &LR1a„ &0a„ TL0a„ TL0a„I*&L0a$&L0a &L0a &L0Iń &Lb„ &Lb„ &LR1a„ &0a„ TL0a„ TL0a„I*&L0a$&L0a$&L0a &L0I710a␀Дi;b=aM0q58&%!gShptf&LkC&˜ 9Gy"2"@Hin0n!U!uS+ڰiW#:=lQ?e/TIjD1Dׯ-w׆odͳ5$Dp.b[dC5a&nOυ蕞Qن@H/BDb~@;s_$C`$%SG-njOp&W `ƥDV9nE+,^z "as#R"U8G c)" I?Rٺ0a2HSjlO*P 3$&Fj}%kWLdt)ߐFқ@^R[Eb/CU]f%&CNRbH#V;{@>Bpъ$"6R}Ri3(ȊONMuFqd}[@!/lpF^aLAc90\+ϴT[ jVШ>\nmE 8  [/t7Ŧ2` 2Ht" b NVPKR}b {vl)*`tqZa ѫ[b2 5 CZtla?]]&8@"1 JL\1ό4߷޳w$I].Wrڤ#\VKݐZB M4xW:%2 B.]@S+l!^/N4/(#7$HNJNJIj`Ph*Z _B()!wv|s6&LEn @8n`iO32ԄD$z 9WxG k}ۋ KhGѐ5Iކk-ޖܡk=1mڼ\|[Rd`/:Ġ% @O}4c˂2ev5=.xFX!6ԈS ra.v@'Þo)߰g;q#Qu\j׶YlزH6TԎΛyl!0\WJNpkQ>01 ^coa'B$gQ25#@ `>f9Zx34s'Fm8pEB2872B==MJɚi`'ݽbC|9aݪdVx$ tAcLr AJi0d@""6ʥ*穬K!f9v$Y4܌s¦B $)8XSz_ V$uz֐Ȍ q =6*JUT_YW%WID8"]8VMܺ1$6Z"j*y<^7r.+3q!EZlP2oo&61GN i`+wl%f%Iʈ!⒚J촌h޻W+W93%VE"Cbmn1 2]oUB"'W?$8uUW--Bni N9g?HH'#e"rVPYQPQ0욒c # X3T~۱蚔Me5UKK!9z` xKLJtA߭Er%$5$y<WZBѧhOϘt47Ĕ8%)9YQׇկ+tF@L kw,T#=##&}_yY! QQĴՀ=x%"d'{wG8t"b-ݰCedvoѣWqe՞Š2ܐmiTс4.۸9=%n=z$&#Avr}{q ~*/[6{uUn܅zAm3c $yy "G WZ21w+ `FBҞ&m`p] PM#BsaWzꍋ{' ͥIJb`($+\yW dѪU꒔잒@xͮm,*pg2`ϫ,#D@@X\Y[V2)wP,]vDW51ee䂐 #!qoE)l&.t}@V8nܷwsA2$ҒrG9 J G@}e;J!-㇏q,-6坉CCl*P %6 @RccV;`9uN%$)_wKq1{9~TW 8i#,( A·!)J##IvѬjuK6]ic ⢢po+#v籮zgݞ#rB1\А!QP^b Qj\1w2#@w "%.1 ζ BBU[Z8c(D59$:l2J%)%4VS!x [%;>eS-@; #!l{q*<Q6QH,߼a测7).CP>X|\\" g{qCduвddfMvg'e&%E[Rѽm+*XgadB`/ 26k+;P#(*(ԗJeh}#)'a"rkQ<&Q2@ !a'#4 TWe%PJDHtagcwr2lV_:w[cuIX1ܘĢ)Hm$%䗠=ċ+R j%IآeMr؍׹=> Om C (蝙k?lҢ꒚zþ1&8bdpMQ`5* $%õ;#k"r:`B(S^͑$=SjEvv@|Fo2"Tᗭ?ХZAg)QTW "K ȠSHU#( cj;a$lI!~VnX*ʁ`{I3REZ%BHj>/5v׃p)# TZg[!`dk90+ iwr Ҫy{+jC:S8fj)`%\6U+l:o6I^lʠ_^Ȟds=s?K-ϓ!#u o (E헖5y(5'9Y+@0hdS) 0TT(#J!"cn6ꀴAv`tY쇅[g1V+w29*聃u2M8N*آ.ghALuyUf}yK%7+u6SP(W^M{v$E)mۜ(ɪjF OsF-/SZ0JMLL4}n0uCi)Q: I"ء@h t]rrTF>R( jZgDwm)q"j47!Y|T޸+*Gݯ85@c^l9{D#^ڳc-Ngӕ,)iE%b aJ=#2#-$:VI/ƊQB AVYVu!6✎'̉ 񊈂d0MԶ>ժ*RdQ8k4 ո=%5:tL()4T74 c fUR ).WT"(ZoH44uJ7!AcuᲪjCIv-6* UpAD)$CiCe[ $혦?2VPI)1a cbAJ@o0b$-Y*$VZb`8e*UWLT ,^=RPJb|WqP(*0xˢ S8IX*MGd<6C_!GٖF%Jêjn$8hSc]@2Ɗ*⼽ӳ\CI kt0 IDAT{J^oCqNJ2>e%&I "GZ~\Vǀevإ ~ Uj FWQ[$HNA'}Һ8cRbHRG fw08 V>"WO=@"g/2A~}HA].k,b!{gt]e! dx 0ͮB|mfBS;{ra)-D a\:V;WC)4KjL k );%-0  D)NWJT HBDOz̮3$D9 W!!0yG_L0xIIJv=?F+WoEHvY}a+ker"===*JՖ+$d9_ECQI0m!B+FahUظa={۔@tx>="pEHHhOzV$D iLUb^?ڝ=zZB%!CQ8qX37wݎ:U۶ $u8R\1Β&$U J+j >Hue&jYU59*fX>*+wn5*rdu YI)@®I) ]\C{Ju:e59%b >*trxgTnvÈN蒶1lhK0HpF#fI.$kR\eDY(ɢ𔘘a J >&"蚚Dbc\}[ E51ٮYKGrd6gnvX $߶o@ PJBT4J=5.K[519;5 y{GU Z7ZՍ D6z* 鰗T}>Cv$ظؠLMS3?$V/k(d+6=&p7r̫VX n޻'='u z2u ^$n/bm!!A׽0Hܲid~WljL,"B~Wnۢpf{vŧPnIT/6@,4ЖU ~%òAmVkvr k (lM"8PXSa߮~@ ApA,%ւԸXLIsO5@HU[2+etRRU:rbӆ Cr5BozwQ?Sv7M=EHD@O=ίwayޝ'tb@PSHHHf˔fӨٝ{>u+e;.ۃHd f'1 ٦2NÉ#(U,l͛|.6,<68HrjxdZd ,K,|_\"!DfF&Sr$"2˜nimh73g8,V(y}M=#QBFN\mN>gt{=ۉFf5<e 2aVKԕQ+Ip|1P0I2wtLo)%ɲ$MZ$f.8/xa$lsð+]$A<;c\%Y$p ˰,aڬsٻ?12$1Ӛ Fe4of6ϲ!@BHfa$A8gRT&!&GXKWMp؀$ӹIpIi\"ʌԴf65"jtR!bw~yȡ \m~~&'tv:%ˌCt)qx\OG.~(~_ӫ\vuZ춎.A'O*PpB'L͓J }-joo_f =ЎӧO[oW͛-"""NgsssGGG```HHHPPRivZBH|||ppjڹsgggѣޖp`Y懒$YRFԩSiii#:4"_Aŭeȑ'k ՔZ_x1wqܦMjjj:4cƌظ8AyBȂ ļyjkk7m6ou{ӱݕׯ_O1cFff&4r/r۶mwq Z馛dYv\\s 0w...:tqqݻ !W_}unn.]g}}ߟ0̘溺:̭hzr(}}U'N0$/p4Ϗ+xڄM&k={v`` rFMiAU$C%DztYA$8qB eeetE(ZҢ瞮J)S$$$; ˣ ? EDDBZ[[݊>Ǐ'ddd?9rdnn.mÐeetBR.+111##E1===$$QYh鄞%ѣSwi(댉1bDBBBGG <1Goٲe˖-6m}l6gff^z:+gZPYYb5 F\>&&&;;ׯ =>ztǎ#5JN>LYkoo'ݻwnUEq̙k׮-+++++:thXXX.0^PA9rd߮yڗi|xsBI&OȲݻcccz6 ֝LaÇ_,ǥBkjj CTTTwiR___[[K۫].^ə3g!WEel۝N`HNNV€ېZϣ$ƒ \. }(6A$IRTTԍ7J!'˃,iiiiiiC 1 Jszzz?Az*tJߢC%T<>LW]Z I!vu)qt$9 ۲eKuuz !!!䧭~^dn=չ9펬!uyt$ln_ PVV9ޟHl6o޼uVuȤŵ>5l6oVۙ<}/QЧlG+IRee,a}'Oǟ$''3 Ce$IZv~ݱcBv]^^.IVu۶m^5╔Brrr< t '!d˖-t~G^Cݭ3556|ǭt]zlW>}N0LtttPPnߺukGGL4BeeYժg=Ssv0;(tNG [;p3ghq`_e9"""!!e(ZY$rZZVy><<<%%E Z6>>^DfYGnP1L!C(111Çy`0M8q„ A:n- 0NHHzz~ԨQegg_{aaaҹ蒡qqq#F%̙COm)h t:x{rssCCCZm```DD]gXX" \DQ,++ey_&*++iP1 >y,XWWД&߿$IF9x|12W&0~{ )QKi o=?tvvggg_9ONi%Qv 3>Z]].K~I3VYL2m4zzg+}ԿU'ÕTH#xW[[٥rJjLKM8ѭvrD} /2ϡH;[HHԩS1XTh²,8MU")QQQrHAѣG'$$\o˲<|po< 涴L&&&(#QZʛ[Olllw#*D_Slmm?s- 0=D/J1芪|pEÀhLIIQCР?V~y\(Z&C1@Pޑ1em6h* IDAT4e$vD;::*++- 0AAAb]:Uj@@ޮ*^vp !z>33sޑN˦E*=p?~\7vtt TOn+t: """9 *9h}YMMc<؏9h*^O̱c&L0uh('%%%''UBB}w]Nyd]]]xxxTTTGGǑ#G;FILLhjj:x } 4Lݗ&IBvb`:fPP]RE٬MrauvvVUUuuu)Z}$׫s搐u_jXЫ F],??8:,*#,,Yt___OQ2YEEݻbѦT.9-faX 9z}LLLuu3gj=z C y.t jUZ))) ?~f9ƴ4Qi3FIII{{;MZ-˲ V-ɲ&#G:;;G]]]uuuddd``gτ -hiiill4L).cu,ˎ3ɓ4 1bDw4APȲ,ijС4j(uSNWǏ];fXɸRV;qD]Z&˲F-++;|03&&&--M9RQk4QF=zt}g+$ItbϙQ~ry^Cǩ?!TіZ ZzEFdYVOZU8_Kպ'˲NCTdS0^ɲ,M)ꍺnKDKc=v+T.g4s۾E„!mlW&͹IջAE{ , qׯ??g矿HNd2LZv֯L&Ӆ:*.`uTVX뻺z-Rȑ#~aYO:u ˠ \B0/}_uu50.+==kFvM7 _|o~BHMMMcc(Ǐw[Xbccnx!!!s{,^?~|^^[[[o^VVFIJJ3gNLL2=q111 ~iGGwߝL)**j999^7t:lRRR"bNN΂ 8K_|ESS^ꫧL9|( ð,Ke999922-˂A"""fΜ[[[9khh 31cx۷:tH3fxę3g9%?~2͡]wN궶m۶>S s}'6A$ID5یj 'xb6(,,k6JDtttRR!dɒ%oVGGbq[jGyGꫯzgggQQѯ~C zh]]]SNy=6`ܸq>Ȕ)Sh( o/\PY/0 ޯ+33ޣ;;vXhFye9::@z|m˖-{ ñcϟ_TT4l+WςפVfPh4ݓ$jxofV o4 lngw/̠T.ٳg_fZvĉ?9`tN u:N|~7 fjhh2eJFFf۽{,;wW_}^ѣ .  \pahhhkkƍ%IzEQ^+))'NO۹si{7n<}4˲f̘SZZz? ,k67oެ~NG׭[WZZGP>邂~%>4i,ˏ=:,_H^xA=>>}?ӟ;ؘosjDKKˬY}u!mxGDQ4Sꬖ.]:~xY~ |fُ?z 6[Ejv[n9rHwy7!/;c-{8r}'ˋ}ʥKW^ף?|ر.HKK{衇z j~^y啐A8v!d˖-3P9s渍x7oβ3[l'({(^Ŷ6uuիkkkm6ۊ+ԭ fٲe.ĉ~tZ O :Tv8fUyNE7e6/_+ݾfkʲyٲeݝE,; K Q׮]; @ +%%'9sx~_B'NlTi_9sSL))))--Φ۷f9c-Zji}[uYo̙vmg˖-ʇV8n#GbFo޼ox˥~`W9&Nɲg677 L0qÇ,j*DQlaYo'>|o߾NT\~0ΝgϞ?ozՙ|.χnY;NFS\\]TV"#####z=믿jN;rsUW6-"~n"))IԧSN%ʥ68p`0t%K9gYVAYm۶ޛ8q$I۶mtR!$88B%evhƛ.Ĵ#F#j]]]ل[g0MHDşhjXVSy O>MXVZ39Jf̙+Wlhhؼy0 o;FBwAЌ2<ɲԷ#Q QoŸREgg'˲$XJrۿ|||RRͤIN'˲UUU<ϋHGVz5f̘￿ٷo߾}Wɒ$ICN1 S^^#<_VHKKepz],!, WMHt: x%''˲|O%J;Ni۲WVF e=+XFMQmܸ?1b߿{_z.dͦ锠2k,ݮ;92{3ft?ηFh6m4lΜ96Mׯ[_?oQF{n+ s'm^ڴim=%ϬYt:]~~GS 2XBCCjBȇ~dMo t"BȨQAjw[wUe1 O>ۇmmmVmܹJ~ho߾s΢"m6+ 2$33^zs?[[[@++Ww Zwqkp8^|Eر_7!11q,˾.'o`MgiY|la-anVWWoݺZTzMu*T%hf̘?V裏Uf.,,T 4/‹/Ȳ[a>w`Ǐ_{:j>3ʒ/6 z~ѢE~yccE S_l6[MM͢E\G}t۶mv]fkq\K.̙3G=>c&Lӂ=s~?W_}泾ѾvqE)*rUTT(/_ԩSOSRR$It6lpJ5\~ڠ8&4̓>*c9 IDAT;vl…wW^z*?J9 .c_QQQ| 7[ooc&<<ǥz{bЉdY#G,**r;VpmYfաaZaÆ9stvv.^aCvvv>Bcǎ}_~>555--04?~Z`M/^,bpppKK z\sMMM{oӁ8:N{q_u***y_dɽKIHH}wM<9,,,<<8Fb h޼y<`o\.n⮻2e&bccnBÇ?O<İa)~|7PƍSNeZZZjjV---OSnǀ+!!/" 21@饗v'W_}h4h٬Vh{m`XhPn[,/O>dpp0PKg?6Z匌YfIrJJJDQ3f̮]כ栠 :w/*Z,`fߢ z3+YjHϟ8N.--T&Z\WW#N:p8BCCv+**dYNLLh4^Ӈn",,LirCn`Z{Pl6ۙ3gz*οM}yO]S{'VĨs Ym\\\wԫ YPgVcbyO(>=ӭ|/ЇM]}`0z@PH'$$l6 @P{{A: T \2@P/ՍyR]]%rصk?r.ŝg8^xø /QKz!^Oxgr[n_h4}^ygg%KƍwIe|RgZN(<cijjDC;\AgYp8>A0ӟr-Wut:y믿~+ΏO?tΝ˗/+<T.xF\̙3u:ݕ\LGF  qw9~V :y;jkkz}FFo֭v}|Immd0aԩS鷒$G7oÇ?>k,e[l9rJHHXpaTTjo|{7[j,X{=ݮh:tԩy%''WzG9tnOJJn2e6mTUU%bRR󣣣o+++mvNLn޼jSСC}ݽޫbW;w.i ,{+I֭[Vklll^^}bYn]uuh7nqhmmm+V~тÑp뭷*)777Ϛ5kժU/" *7o...vۥҝ;w677k˗LE) =z֬Yݠi8rH>N͛;t:W u'Kkly^7vwCs7|Bw֫{ Ǎ;<`N>x 0e_|yTTԴi۩SJ={8qlnngYvȐ!tW\Mk\.׳>6eʔ#FTTTlٲe!!!/'Nx`qq ^{-aݒ ٳtϞ=qqqQQQ,sKNr &'%%B ^ӧ/yȑtvرjժS;vO8h4ũO /vL0! a^ګd+xP(˵dɒS1ԩS7o7TWW7|S[[{qEEEs%O6^Nt7|\oJz[iժUZQJ0V[y|\J)8UV;;蘭L4駟^vThٞ}@Bȴi}g3g6lp8~i|=a„e˖Ykhh^x !ƍ_aÆӧ[neҤI#G\ݻw%a"""z!W7nlkk{I|}^+ F>HLIIywJKK322|ǶmRSSr#F(O#G|>n_ߎ=î]nBȮ]~mzzK/wM6j'Nkԋ .,,!>|844l6WUU%%%1 S^^>l0_l6?ӡǯ\rݺuG3m?S4m^2:rrrCSa^ɼ{g]裏.ƚ把 r}G'O^x1d2[ ڼyihB|'N9/B}6mҲd駟+NQNK}ƍnO>3f =jׯ/ZvG!!!׬YCn(W矧;Ͻ|%lǩ߿_Eue``1c8\A}ϙ3r ϵ8p 77W]csקBZ,555W?eBу.m=:buڦx̙3gОn)CS~~&ݻwԨQ]WKW _ɓ9reYVWdffN6LػwonnnwWcAJݥwޑ#G8j? $IR_qqqnW}?^7ۗzѦre9<<\aBB,KPP,nutJ6++Kp8bsϏ9Cf;w,..njjAEaԻ!IeN>K]/ ^?@?eԩч߿R>s̮]iEQYouVKd2'5%eddsvL8NDAA'zAAAZvҥʒ!!!=\aaѣGݻqqu]=^FF˲EEE:.111,,?~<,,f.<+-yhsJo:<{áNѽW$I$I$)SLL Sr tU>g;Y:wkM=}-?!xn4222deAhh(˲6M\__hii!=BX1)^{-a-[[on9r'Th`LL… QKKu#F 1bZjժݻwy/0Ç/++cYv1C 9tPEEEvv6``YU9eۻ;:VqQ^/G]/v$] Eq^0 ;m3:HRU" 5[MLrDsL"hL,1gCliґ6 6}~1_pff.k׵ <  ]5`]?:5A7HӮ /رcPmmq=\x%-- QFO=cvwy&`0r9uA :z~)rssc=\\8R.jI~;>>V ?oMѣ(**> `GϧaI O"__BZgdtGRZZ5K4$y]CDuL*))):7(څ/@a (/-{5(ӗkΚaȆP(67m]yvqZZZFEE%%%%''wvv644ڵK.SO6O?uvv޼y3++kӴW_}U*߿3)));;{ɒ%͘1۷Z,effi/‚c[eeeMM͑#GRRR K.U۶m eee۶m;r`ciiMӆBq\.xQSSSFҥKbX$ڵ`]ѣG߼y.33skt鹹whii9~8I@{@{zz nZ__Rɒ%D]]]/^ ^}1|Bk.Ht̙\jgk 5KbX;K``laggtuX֖e˖F lllBCC/\USSsN[[[plЊoɒ%}vXs^YYS7*..rww5T.\_&lװ&kgҥK!!! hnMg[6dQO }}} OO~A&Q ]vmDXn"(66ԩSrd^ڛw}wƌH$:qD}}=fffχT?^[[ >Wֹ[XXx^ 'M{5kL0/F;vqpܓdN8*?ظqUN=0,55ܹs :X{{{\\ ˙L5kLE>|zo޼ $&&r ì-Z4vXwށO[+++`Ǐ?zq 1G;&  >v؁VUUNa ~hii155ݺu+xtPFV:sLzz:h;v͚5p,55ٳJ_[[ۉ'۵k+++K]ہ/,ҨnP7n>䚬?Ehmm IfGFFln/XOHRCwPaD"1666dT*jٌZV(&&&,+.A2̐D&y \-RW\h N sD"`D{QJROt_j@'/Hx<2d2El/:L*99911qΝUQ5(T*J5߮ ̆~ onCh/Qy) Xe 8u?TbxiM` Ew 7&w מ~`C}:JkΤ!(yPaCvY-_Û a K¼y G5  䋤(('SA ?mOŨG İ @ Qy+++Ԋ`Ñ%%%0!;CF1Dn޼yرJ>N/3޽{=Z\\|eƍ"o>/oUUUÕxvv"N@%o%&?i Wl󬑝}ĉg-WOD"ϟ?OM{{Ju;8kƊ B~rQAT -,,` '_ʢgFCI~.VXLUw`}Ϟ=jzӦMÇ㏄W_}mwVzWARFF寙YXXx.GGGZ& À8SSSA[KKK.#Tܘ$Y^^.Jh`ԨQ:SSSRq\"455S`tuu BCtuuD"F ]`j\.:P2 <==| Ќf@)jR"X[[CڔJ#Rloo285a`,EMG'uuu>>>RT,3 Rsssxq<133޸#N:ollp8.,,lkk{7E0,000,,,%%eΜ9\.kkk311Q.//WT#GϽޮVU*---- |>_gSe2YuuB9r$,t(8aeeeQwwwK$ڽ4e2 -׀wttD"#!ӳy_=))I*`0ƍC|744_H$mmmFFF?{[nߢ cƌ~~~?3M 5$Z޻woeeeww7[n-Wv555MOOqG}O$~sLLL4߿ojjd2z- vGKmϞ=WEEE;I&&&ׯ׎ݭ_Q*jϞ=555fffR FEEAq5-Pf7bZ)@b>311˻x?OOꫯFСC&&&gӦMvvv| ah|~wwG}ٳ,l6{ҤIIII?3舋{w@I b-[xe󻺺D={*++%F?~LL̀D8!QQQ!!!M񈈈˗/ܹʪ]v<'I4G̙3---8ΝDXT? IDATu&8yݻw|R} n߼yŋ,Ȩ' OJDll̙3oݺu֭Sɓ' {!ӦM[`&>5a wyx<ŋz-PGʚ>} Awvss{@۷=Qvv6XC IСCwMMM/`رc'O]ݻw8p.Ƃ@@pL]WW~ظs .qڵ?ꬬSNM8xN 7|~֭ӞE("[[[ .^xYKKˀġ4e0vj ={?n80j$Ip8AP|pVTT`0LMM1Z{9Hͷ1ÁðކLf#{kR888xB`ll_ h(..&I2f̘7nЂa_g@3KT*CBB@Ǐ?~ѱ$IZ4$2e a@@AڅU[[ t@o`/~|}}=ztɓ'9 B:>':KTfP= sA8 mjjoyDBsNju[(N6˗{ B36>>>L6M|KKKm\8GFeˋg0,{@5ڮRn߾*$a===MMM !8oڴ'OT(0~ GܣVVV`s~@4m6ف"D8qؖhѢ#Gi0 %>}cTR8>dʾiӦskɓo߾uV3vyiE*pv:0-|$I7U*(>mtקnCEf),mlll X@ &רttt9s& ?#,K&߿{Pq~ -7nܨQʕ+W\ؘXYYvADg4^ǩHX,\~_t8;6??ѢE rAY haACzdҭZjժUa.H*++_a`4=>NҲs҄p@=mM#BArfISdh* itOW#^==2 :N6A Fmmm>b???bv޴_TRRr6^QVWWSԟ8S5CUQaa!."̛7o„ EEEP۷o+JpʐƆve,OpBa1LZqˮS:P@ʕ+=#O>$(`xx8iii X*8755Q;wfUWWMhAi'zi 555cz6Ų3g>eP7`0iSyɄ;ׯ_|Ux<މ'kVwnoo$I*_W^UE 5By&{ww7ޱcSN'eeeeeepٚbQ5T*f,,, ]KA.Dp8PoooccWzyyihQNwԩB0??>9y򤑑Ncuuup_PdeeO?jRW\s;+7nФd2t]]}4|z]sss æL" w[]gmm Hss3mcF.߹s{e`TI&Ν g϶HpUXb1ܰ?99)`m"o߾mi \xՄ,6]^^ v!矿 FSXX/vvv{ԩSouX`Ç7lc>aRKKKkllCYYY544477^zvܹqF hTL&ǏM-κuv޽a???www=_)!444++Kojjw}oDFF Ç{{{+?P0bڴi>x#j8.gϞ-Ϝ9sO?ޅ޳gOsso`0;m۶͛73̸8pMb9rDP$=WT~DZ(/~"* f̘֭nCjιs璓aHD4 O8bH@=SSSB.$iaaA ;FB*B#ݻw… ɒdž Çoڴ ,־+AAA;-[nݺ5sLh@t`2\.habq\(ΎW_*j4#a4?%ϚrȨ@*(T}vcc#~W's .]$ /_][ZZѣgϞ ?/^Dyܹ$%%uuu-\ɓ"ᄄð߻wzĈûp޽0iFDD$xbwfϞ}ɺ: ~:,,L)!8N^^P(3g8[UUu֭f###ZR>vٳ bbb˗/*ʑ#GΛ7jJrybbbuu\.wrrnB&%%566AiA߿?(((222###77wށ?4i yҥBJj=pº/^L!lv^^^MM P]ZZZ~~|{رN.{!\n:PxʕK` 555:Uann>vӧʝ;w9ΡC|˩ʁrJiiD"2e P֖ҥK%%%622288*0m>~&))mNjooaN>@۷o'2,33ngggٳؐl޼hjj&L)}nff`۷oٳ|Pm۶<..N L<ڵk7o4\LƛCT Zsssmo`awrrb2/_dXb]]]]]] 077wwwf 9siJ B8uTHHo_ӧcTÑd.]tww?zڵkfff~)(88O>{.rOO'|DGGw>:mIIIpmll`k׮t+HY,ڵk>_ 9'OV(׮]sss9s&N Kp&LشiSŊ㸵5taXbbX,ouظqcBB9^pAPlڴ ތ7nǎOϕJe|||dd$|?{ٳirssQF=θ8p({oUTTx{{k""":xKx<ެYjjj}m.\ K[eee/mm̘1j:99yŊ===555TGTO]]]6m;gϞ >iRB[ZZD"Ah]v]pA{CH~6j?#H>s|Oe/:hĈh4]>%''$IjU񉎎CիW=Zq@@=/hvҥ/^xܹs[n-++;w.q+-- E@:::ho/--oW*:3 $g˖- ׯ_Z!u޼yb'+33sرVHHHii),@~@ll,XQdd$pFBG#={Wc!!!0 !u %++U: O۷o*ɉ`TS3f ~F x E(--m\-92''kA?---A(E޽[WWwnhGW&8l6mʕp>1\_?^J JvjO\… .\X[[ B mڴIOht@[T)JLpA\,+JZh l555'OR+ɏ8|~~~hhh^^_~CVjc)] u}BT*iS &\ZZޮRuCҗrz^0SSSE ݨ= b֬YW^-(( 2 Sg^Hg?~Sa)Aڥ:>P_ /]~~ÇǏl2>ro>dqJJJJ`` F`-,,t9uww8N 56Eƍw! Xh4$I x"$I{{{ ROAIvvv:<////44 00}5 ayS@OO@ueR9{lgggUPPCm)/2I3gΤI222jjj~7vZ?AFYa̘1\.7''  @htTJpg`233q v@W\ Xr專?K\.WgSնzKKKhc"$pnO>~񦦦'W!Ū%;;;_l@ h4ӧO70_xxѣGJeqq1ԁ3@,,,B?FFF8SU`VXXֶqF80TTrܐlZ cZAر_~ٱcSϟϼH< ʨNmCCCIGJ^x<ڑZEA]J.8sA]:׈///:{ IDAT&Cò2uFInn.vbZߍ7Ĥ:Q]A,X/77!{{{Aϧ~ѣ1f%''S?E ?xK `5S>>>TU GG~G`>~Vw/$>o61 G@@BNd~~g &tuuQ7,--'MY__k.BtRf8~xssP(x5k֜9s&>>^P`6vX4t͚5NLL$ItnݪI)JL&mܸ111͛.\7**J^pIx:Lѣ?s:txU xר}͛7߿e0h)߈aثzܹo+X+ml+JicXKK/ĉ;v"L8v4VVV~'[VXmUo߾ aÆ >"##ݻG;egiiq'N`Ò$)WgQUASZKTTDF&)G}TannUaiio駟?~~+88zPO?jOËgo6/! t___BBSa/o.lvG$*R'] \.vsu~XDRAEEņ ȫRJx!BPЄJg'@W_yd xŠG:U7(B"x ̘BDV+ k!UŐ"Ă LLLp %+_гTSiL%;;[RoQ*0m 9u:fju39?OGV =Щ@ mgd2\,İ?A_< YYYӦMy/A Kg=`z~. KJJ&M4,o@̓" B?ڞ Q@ a@ buuueeea͛ǎCe@ Ȩ l :@ Ȩ 9RZ[[lvyy\.wqqK(r8EVWVVd#F8::RokkxUUU]]]/Fb% @ /Qꊋ?7q<&&`\~ܹs&&&?!233O> www;99}G `FOO͛_$TJ?~ˡ5矫,,,zzzx<޺uI 4--mÆ #F0ȑ#w5jaT*ۿ?jllܹs @hc;w/oy<^bbڵkA<#GdffĀ(U{}{|1o<`Q0 [f ɤa0k׮aK.Y[[hVVV˖-kmm-))OH|W`%ðڥKaؒ%K$ -@ | 🾵}}}B!8Xd8 `PSS3zhoHo1 ?/**qԴhAehH$MLL@ #?HR.}vj6-HPB Ȩ<\* \.AڑA<?X2lC@ /$pUUˀbY[[WUUQ?]]]uNq8;;3 Hk@F=MMM NڴiB0??>9y򤑑5\h0##Ǐ/(ݻwwttzzzPB /IjzG7#"" mddP(<|YyyR m|?_|h ---1 dQ C /̐SU*B*,X`ԩ'NG͍+{{{www1c|}}z@@7`l6,0iffa)S\B022.AbFFFaaa%@:u A˙ 9|0aoɤNYӧO{[#IOC3ϗD`.br QA ?P(TL&ը<^O ia/g kDhTkVWWK$5rHGGGZSTjѣGL&֖fTjcc#kkk vqq1b D"Z`0*++pwtttvvR0ˋ#L&.ݴԨT*QFhE"rfmm=H$=dD.Jyyy zRn1`WW%_"P#Gtrr2i⚚\bhǏT* MMM8[ZZzzzRGT}}}&&&#Flmmuttnmm%qU*=ǃ @?B ^.w^ii)ͩW^;bd ukBpԩԾʕ+жΝ;W`0;;s…׮]duVVV ,~ÇLOO9s&.fddtwwO6-%%E8d2̙s͚&3e///[222 PÇgΜ9RГ*++KKKc2ð2X; ]]] ]\\f̘Ay\xQ&1{II wJJJB)S;wTWWÔ_}U###,@qHO z{{kkdžB̜9;ϟ9s&joo2$^{{0.aYjuee$9~x`8OӾlٲpwww;;;MLLH$IT VHtuup8`pAPTTfGMFDDTGQWf4 mܜ(--e0-ZQQAAA'F*'Vz̨_ql@3oooVƭϭ Fww7fDqݝ`'8 =ўJjii!"00, F3rHZ @8P@; h޾Z4%åAM|}}sss/_aiiaFwww[[[oo/ cSژL9ǴLpwwOKKkiit钿#3NQ"Q?$ I:k|>G.OtkTd2IoOP@VId #--M&8T*^" 7n?@OlPP}AAAAAA...cǎ1<[nuuu$d29CQ bqbb"#&Rmj`,[,%%E$senn>jԨcǾ`Ȩ<,VF!b{-]o/O%55~ĉannnaa0EDEExok/I__@ ppp0WA^hkk V𺻻ϟ?_RRMÇ FPP6lT݉3jԨQFEGG߽{&%%E9F?/#GqYR0H$h4 6ϏD"q\aޞ`hhPف877\3JIL6 ݣ>433suue2`bH$ 'p0۵$ܺu+!!f5̀Ȩ3ZdǃcbCƐL$-,,h-y ;P.J$ B=5;$IPH;\\\|)x )'''''DI%RTTDMDVSmlvrr2tl6cw?%hnnN+'ںֳnn,1A/_f . f_vPR^&m|~WWW^^aKK @{E1 ̙3\fnnR*++jCssɓ'X,VSSSkk+ISL-PEEEݹs󞞞&&&RJREGGkT%&&rV@ h4Jidd---###LWT T*&Lp Nj655MHHHPTJI B{LVDprrZpسA&0HT__3333HD=ÍҥKo߾-JJJ[`#GjaaQWW%8_Z"IRTRxU`x##Eݾ} 77iӦ;wC1 {WsssmTTT.Q6mڕ+Wښ X|9p?1bDddγ!^r~O2aX___BB_.-IRb9skҥ`\Ojhhr0"HL. T8-*D"%T"FARřC$Ii%l2SSSKp'L&zrݻyQ*֭`bb2$` 1cXڕJ&i4:z  ) rֹC|`<Vl8{r=kNKKKd2iz j:jll0{xx8m3r29L@_KUUӈTPP=apðw$>9"Ȩ {^{NcԨQYYYRT*$H 9i @F/dh#_x;x<ފ+D"Qwwc@@BD Qy& $ *bʟѳ;cii @ LLL2*ߟ2eӊ+zzzGGG __͛7Iv#F={vII hÆ +W]`ۦMUyTTԕ+W7nL<Ĭ\۷/ bɏ=/~-|^__?nܸw}f޽:eO<<<Axxǩ$駟:;;[[[Ϝ9~qECcϿ曘'@F?<ɑ$Iڵw߽pႽZ;vlĉ&&&{_{5锖UUUOUUUӫW:881/prr}(Ax'7w]vafgg5b âǍGwڵjժz+##7|T*,YrmYFo߾5kݻbժU?_~yw⚚|}}E"ڵk#F1ca[n&e Γ@ ;:©߭[wO>nܸ{~Rt˗/^>쳭[ꫯ+V022ھ}CX1~x ֯_t)pMgݺu...曯'|bŊ1cƌ31??뿨otvvNOOGDD,Zgâ:>w+KG((ED `,clDӌ Ш$v+ t^ez?&fe)=y ;{w̙3sݙ+W>[( a]RR2wޅ ̙we˖UWW?{xb.d4jmmMHH@',^YYY BD_'"'#7qRSS?zxx۷goǏ'66E8΋/P(77r={G]h$_`NO$6M݂h"e3RRRPȃ၁У@fϞ}Ej6gM< ?H]ʛ"""ܹcll<|p?u333=d2hGnذ!99$IPH@F $[SST*y\!D"D"@VVNлwM68qbҤISL6m<x{{KJJmmmjjj u>k֬h(rq'('NUO)YZZ644ŝ_*ZXXt"&@"ۏ=$I===رC 'rTȉ`BܺzQj \RAM?uf޼y"8oظq# ӪP( Us„ 111hN͝;WwWb/^Lǃd2LooÇq0q.X 66ٳ.91 v*s{̙kfffVVVhhĉknݺœ ٳa<((hÆ Kiii~~%K .||5k߿gkU9/JJKKVX1uT:HKKk+;##CGzj͛7KKKO>gϞr\$͝;w***.\`kk  _|EyyӧO ] J;#jڵE7l۶ڠkii?3@WWѣ^^^'N;wʙ3g>իW^fGGGY&>>~񚛛x<4111 Bk $88?;w.pLC ɄȈmll|"[LLLf̘1zh/O:裏F C>쳃*&@WW91KiL.)(= 4IcKK˙3gQ]vkhh~+y}}=ApU@!uuul6[~}}=֦OE,755Q^" fCCCuLV@ hjjѣoBacco;qMW`555 _oeUldVQ֔ʃŒ9p84b(?<<@Gn+ ;wwRUZZڹb~_H`Sy;6lAMMMj`sH$ Щ$})= Çc=`qBXXnIg T_`;vz*w*tx@ `HWa0OMM577ǪN M\ 9> :RC@ xE[[^6l077>)׮] ?+|ff&떨~wLq^z&ތT ?nw\V3$*rn߾mhhxܹ +J%MUUUuuu'|ZVV ӧOتkjjޱ:홺vļNH !! tu߭32D̍K*N1Log``]hXf͚5k^c844t2&)St;g8HHG8lbw~$Id',Sc` 0`|'\Q_H$AH$yF*%:PWrÖ `>\=r0^T5A~5kVsss```=WZE}޽{>>>VVV|ISSʕ+`رfBoٲESSq͚5(ӧC yaxxw^^zwƍG{5J[[ȳcǎCJRT:lذ͛7ˌcƎn0;7nXhQ=W^BeCݹs'H-ccc"!,,>x H$|󍝝ȑ#/\ڼyh9.]Jxȑ0Բ!88xΜ9EEE[ldff3аo߾6lF*)GGGqƕd$gϞFFFƍ{굪ɓ06T0S =4($p#lng6_=gp ;+''ŋfff&&&+V A ʍ7NdXXآEΞ=kff&MMMGijj 5jԐ!C'O^|ϡCƍzꀀ@ HNN㏷n駟Ο??11A**JCCCϞ=޽o޼yqG>|Ν;'L믿~G \PPp}Օ 111i7NP<}رc1"))ѣ({&$$5J^AppL|o:8!I4""b̙[nUWW8qbXX̞źqFcc#5ZZZ;w_z2fggƺkjj._|Μ9+V066_ ewޫVݻLٳhѢЪ*GGG՗ߚgϞ=/ļ_DqGV)ABHGXoϜxRt|Ҩ>)) 6ձc~W뵴n޼ 2dΝ;曁VVV/¿kK,L>GFFgݻ6mZ||caѢE+V :@kkٳ?㘘Ԁ._|6664y_x˗XBBD"/UO>III(66`ԩSǏWe>11qС= a-[Mv)駟6 =tRl͛7soO>1665kuLidddhhxǓɬ)_xСC p(ӻwC/F*eB_lYuuuuu5t-rK,ȓr{Cļ#I)@Y$`cn#Ж0c3` ?ZZZ>@\yR)(-uA .#"ɓ'Ǎ= dĈ}<~8}'ODFFlEQc;w۷.猌 >?|&k  E!{Ԯ]dKIIGAd2¸¿###eںu+JYH%<<<00 gϾx*ݾ};(2=7w|B@2+4Q6: 桯W}cÿ^֋'ܥzQ;BX,GDDܹsx>>>s΅S4[ܹsC_"PDv%lkkJS&vff&O>A!p|# f͊+ǎC~B8|W{N"wF$HH K2wximm CfVY&!k`,( IEXoooXRRrϟ+) ŋ^L>[4A-\Coס8gaaqȑ LE-1 .]:uy@BTT =hh3tA8;; v߅B!p8I5kC`kQ4g(&kc= AxqD@@\o߷o7m,ǫҮI?s#Whvvvh Nu4 ^:??Bfrj4 G^ rƐ!CO>M}sUe=BSa>ϔto;vիW`0jjjAAAĨλ# RuKPKGyqA}ۢ"ApNT2Ǝ{Ij7n>b6ϟ{YHKJP-3f݋Bd0aBLLTa[T8!J333ΝK:99mذ_~)--_dɐ!CT-O8{^XXHg]8::^z۶m?>o>T蘔TVVm۶+WN:عs˗? uw/#Պ+T(S[nU)s[[;w<}… vvvSL***R)A{`e"< P|p7{pdDW F>L} }}?s>}^zQ///mppܹsvkkk8W_]UP 611;w:xҥaÆ9;;oڴ'N\244w܁|63(llluuu'OT|v3Q_*TXHE0f+W&Mw9::~prdjjZPPٻw믿F3].]DGGOv(Co@ZZZ䳀KLLLhBf:77`ȑVVV'NOLLٗ7&~… Ul~RC`;B$r̙n{RE  WbQ]E p8򿭭ӣҬ  /^եyb)t(Nx3ՋD"ill9*M(677̪"LTfJ$544Cﯩ鉝ʻD``&ANT A Z[P/?R!A2 Qѱ.e!4͓LH2|l2{$Cqn۶MS:Te2p:W gVeBj7Sl6QuϞ=cXNɶR% @o utjjjT}}=U>k`̚5Kً;TD `B("Hh$`EyJ Z[[rҺkc.[(//ۈ1]᭜b> |jb]s,@HT_)IF: 1 ¯^zQ(Ƽ9?~X˩@{{uR԰G` x N[[Dg{^b0 v*g[K`S7wh1 >T>W@`ǂ`0۴PO(ۣ`06R`0 v* N`0T0  `S`0 v*7\Kٳg999ɗGUUUNNI"0$srr[ca;v\/^t1殛~wqը($~7S䈈tU5)))<< J ?޽Mhʩ:NÇ=jlllhhBn7*^DLd2 Fw6oB0??[r`0izQh]Alz}P<, 2??_ fw۞ 3!JFf``b{ye^[;ݾ}{w宻$D4:7I&M4vuԍ&&& %%%APUUUQQrmmm544PVOOO&DWWWSSS$ssseb8//O(ZZZ,-B!A<JOOO]]}XTTrsPVV&HziddmRYYi``&Ӭ100ryyy(/$Ix={gR[[o߾2-X,.((xFFF{`ee%Qzmmm{{{y嵴ȨZMMMOOǏE"2ӤKm&RՖD"iqq 2H IDAT/UIhUU.,kjj$2Sӕ!::޽{򚄶H M2-54)SN>][[kii.J544~#Gdeeq\Dl``Љexa^_NA%#ԩSaDNY*:r6m۷%KPƍmll Y$k׮]zu,+""b} •+W+S;sT8h&L/`f+++mvYX+Ξ=[^^O?N8q9KKK l4.Fkjjj g۷/_w#ҧ+AX:={ݻW^ױ+**o~Ɏ>_ZZzcR5jܺu ]XXw^QIA֥N $aZbKEGFFRI T~%D`0hkk+))A8 r }Y>}P1-Ź_PXx;wf`6 077۷/ZՅm 00pĈ*ι?MKK )řB8:::::޻wMS\En4 I=E^͛拆 d2ʔ&?-kA&MH$#F@QZZ kNqq3P8(( T OnllfK@hmm 9s& ӳ )SDLkIWIԅG+-ѣO55 &mmm+f͚r-,,;|\\ U0ƍ[;;#F(R׉u?RSSǔ&"$U`$젛Gn&iJiiidbX,V6QzG*$ b0:::pnVȢkhh9sF(_CCcРA jWZZZ2׋bbE^^_~V?U2dEEEkk&IYOCk5552H5Ԏ>/oUrqBzt,SWWÇ賲;SMu;з m h4EkccC prrnTN;׏O@0ooo k׮_8;;O46nTo>`0>|vCDv4-7D{fgg0Lh֝V.qFF6B~ؘ@`aa퍴+@jjѣG F^lvcc#Ro[[T*iБ|>AIWfj~Ϟ=P fS%Q뜦hQ ruԺIQxxx\rE,}5K !2liii7wǏH$R477w4qX,h 7;WPPrJSSS,$I__߉'vMZÇWWWoݺY?&ϏPihh̚5k֬Y<+((@uuxW\A;xq&N~LL NK$:N ;FҕСCUUU2TSUJg 0f̘I& &JITEÇߎ+>>>55^MM d`$I Be]aȐ!ǎKOOH$ѹ8WxMmE"\x1??ߒ$ Aa_$Rl]]ݢ"$օ 1 $;;_~~KzNY0RB@NN΅ Мɓ )HD+U iJ-ȷSh^Y߿&;W(XqqB QII&MtT'={uuuU<)XEl 80###++ͭqvαSy2ЩI&BSFFFAo/\WSRRB߸q̙30ei5A__6/bTaQ_566ǣƢs8$CW*\w ~)^0//2v}e zjGuᑛ[^^hѣGQ7u"ή輾ڵkp[ z#(..^v(䣏>R82`GGGXchh+ѣoܸn:ccB###z|||ʢ***MZݻGV  ܷoʕ+*++544[#/رcNJ+/H233mllnAeddֆO>={6 50zh˥KbccY,Ǐ]\\9sDDD6662褤$CCCytM2L2iBSSI%N;$:MQ`cƌȈr ܿ2[Wttz'I1cƤРML)899GdP=ή뼮ٳ :o#L?{B>z Y[[[akk fff2bjjjccf"HCCcԨQ19 DHd>} `Xvvv2F{=g2}ZHd2ar20330114hD"r|򉶶d͆B!YcX}*ѣGs\@6v؀WWW[[[uϞ=gϞ5jȑ#1bNchh0eЩ 2D,3 3g_֨JythRޖhҕo6DEvyhL6"HOOoَԗ젨D޺ubddԧOj*==ɩ_~4u|ذa4$y411)_G󊊊>@~7Jr1#3;Gu2N=@TX~&"Q~=[ZZqf^!w644t0ohV__O?O79RVV?555_SkTHHӧ2/^p84ݨwnW-@ |=T*}g}.e+ɻ;dΜ9allwuޢ2sss9>+`[v*7;;k544hkk_0o/Cׯ^H`(Аf W^z/󵪷wOxM6㻧T0G ;׀H$TWWo۶/lHOOݸq#44zLd[!´y|e*dڵ/_~*׻r TSm-tG&%%[^/ ضmּyK* % x$ɚ.2x<^MMMg봴]^*:111IIIׯFaSX,:դjtZ]7 .\z~bbT*E|}`gnn,P ̝;WuOy櫹[je2-hiiM>7YXX) I&t__c=^裏lmmaeTTqLMM!;#H(ܸ%fe̘1rC_MF/Z1tttY,KK>ة\JKK/]TYY:vXXNNNhȕ+WJKKѱ4臺ξ0ȑ#SLyIBBBSSw獵A۷=zbM4zO~~kkk\ndd =J(!!!11QaZ䔧ɓOT8|VVP(}gddP˃Q3vuuu;v$%% :tܸq7nT6\PP/,,K&M Qx&4UX\XX}-77m޼Ν1cŋ:Dȁ3һw^zIR]]]kkk0]ɏ BBB]\\`~#GdggGTVWW?~8$$D[[[OO/>>ի pӧ |}} 7l@uP$WWWytttz(,,D[&&&zzzݞ={ʆRPP^XX5hР~ $99A>>/_F>[nMHHpwwPWW?tL%#׌P(9s&jO:5~xOOό*8\-++xBH?aЫW?3??_A،aÆɏyJSSSqq1" % riP?b}||vUPPt,*###ssTxY7 ##o߾)N?QP&"""//ܹs/^ -?x̙sҗ7ttt-Z?gwޕ[~ZzTW[[iӦ 6 0p@HtO>w#Gg[ \| ¨tŮ544Z N{xxĜ:u* CC/R_ʨQ֭[.oii={V^^>sLNvYT^3)))xyy;t`'''be?CoI^@caI+%%^N*nO=>*GI$@ CTSRRHzD#GcBB ]LDhծ]@,N6UufffHuFFF(b0rjf~+vE%))i%\x{P*hii/B4`03czf<11Q`e߿B9rqqZ $#PF4% 73斒uZ7=y,[l˖-xQUUf=Jm9qތ CmtYa*r>/s'Y3666--=--dR7$IQM]={S"H,OpS ,..^rU-CUrڵG֊bD`FdnބQB5|>_f8ba;dr7^ 555$I/u)O?vBakkbe@.E*++I92%%ICC-~E/^ׯ߀[TR)\;aњ3#Fw^uuD"ihh@K$ICdfffƛB9MMMY^W{𡻻{zz¨h86i!Oٿkdff&&&Ź]ۡBp„ VVVl6;==… ?])+/&l.(i05H['n.J4Hjj,,yOʥ~BEbcc.\Na0NNNk555gΜ 3lذgϞ={zQ a||<ٳg׭[GJOSRR***MK  ʪN<յPQCl= tٔm۶+AAAbxÆ %%%7nUojj={EdC:tA*ݣGwwwe9 IDATp8 #//JY])+ De˖۷o;wn/0 >>ϟ?Ά{mi;A`4hгgrD7bM#Gtҍ7^xӰ?j۶mCƟn  k3e] ջ~~~EEEYYY+xU3k,CCÿ;..$I33+WRW$I|@|>_;ydtt4l?3X VX_a^^^щgAAA篿:uh޼y{6 ͛w;vHRŋo߾Qd0eʔSNYf…nnn2QRX^+Wڸq#wFsGסP(D/( A,X'OH$:::sݻw/*AFB=~X$ݻw:n000|>|BQ+IB/^xI$mmm/_ʔ)QQQwX _oj`Ֆo!Tn G*nnngzބ@jlX [KK˙3g^^6|>@S{#WSWWYZ슜4ﴮTLE*vk8)ݨV555U+ˈT*mkkyeD"NӴN iP@9}G ++00PSSGZ(uh&/3HT懯N7l贮TL`tAy kq*{`tEˋdzJ;-X Q=C,)K0 N`0ة`0 ; `QmM;nߞQXXxErrrmٳ[a:GUUUNNNBuu*xc.w(љoQQQ;wIxlHNNxVW$%%w%;UyP(nKNN=z4<.Nd2_ʹ AøwJel@$8qbTTT123\.wo } )-760]Pm@*&'' CQȻ[TD"QMM )77ʪG+X )Dr {{ֆsssx`mmz/jjj$YUU DEEE  R%骪JckkKoCCCYY<\HG#ŋAbqAAzTfjj`0#T(Qꅅ ^*yyy<F9(322?RLYeͭJ[[zb|cccss36 |>H XZZ\!۷/}XZZ*o uuubĤ888|`[VVVxUUUUUUQTE fpܼV}$?~ C *VGGO>2౏:::}U]UVVB ATUU xUUUzzz;NSSSHH۷R?$111$Ir8Ǐ{.bb޽{;ͮ Yh3|>$$? I2$$oʔ)3gi$wQPP$I@@e&2|6m$#/_ێǏKRMMF++F[n(M暬SNc 򊏏߱cÁ#H$'N#Fz 3gGSSڵkgΜyҥVx'>yf(9YYYJ=zX|9:D+ ###-,,/^"߷oP(\rT*իΝcXjjjMMMNNNb/,,400hllTWW_t %0FWWWd gΜquuԔH$jjj9sԔhP/YuDvQRRJĴiF2f/Յ.\E BBBo D"ׯd2AF>}:RΝ; bK+++%{׈OڵԨ-^z?6GSN knnѹwޕ+WVXI A2>F~T^jjj}Y>}`RZZzcsUsss#""lllF [ۤ$???x'Ovp ͖9. FoWx>Lz̘1ǏϞ=[^^?Ž'Ν;goo/o4˖-"99ѣwޕ=,, ***5jn۶ma\nBBҐPiPܻw 22WUSSFHD2f#ݪ;wnPJJJ;v,رd^P"e@MM-99yժU$I7o޼}+ȑ#ol׮]/^*6""*ZBT8 +T*ݾ}%K:oaUf lڴ W_> Yl? F{IǏwuu҂ุ8ccctRt===QVVV2'w(iEz衣611-tuu. 1b:z9o<4_d2ʔ_ȹs猌Ѝ놆~ϩFI~-===>}{GhJ@[8z) ??qʔ)s&9oz =z-++CsD j$_ 2[cnzSbPNj#iJ+W}p4/#l@VB]p8RF5, tuu*hiiByyy}}X,qة6e >ޖ +; b0鴴4Is\ooo k׮_8;;O<2$!222++N[[+Sx𸆆kKf{%'"---11#ɡW<< zEY$}VqYXXxyyy{{k*ND%3fBYePg ]3,J8И5k֬Y*++άe+yDQ)ђ,QDQ   L @$2]? (;4癑F8z9uw7eʔE޽韦LR\\|񺺺'xKx:9;6###@BUUs=7gΜʬ,ﺟ~/ovΜ9|E{$dYYzÇoԽwԚ1c7i0q"Z {鼼UVP(jժGy$eر-Z-^udyrrrf̘?[7oٳ!s>Ci>h+V(((p'??շ~ۚ|qNKKxB%3ܥKa۶+**~@ 0y苫iӦ'N|'1G%濯k̘1͋}6ω'&-[Oxyyy7pCFFFWWWFF{LO8\sM'!zKJJNW OW?cS?i6#//oLOOȸ曽~"궜Tqq{%f (,,*F1cF@(m{֬Yp #_)̒^zɽ&߱amxR6$85?uD߶%Xx?y_?Od(Ͻޛ=dbǎ?݁wcƍ+++MD`]ɟH:3p-zg9r7pmU\M! VB;曗/_>$ 7}cǎi=Ed20#˲&MqO[!*B@@e2R /w}UUU;w(++{衇7lذk׮xhϡC}SNeffΚ5뮻hyK?Ǐ9ow^zư_뮻yo={BPYYw5޻*1pСC?ѣG-[VQQqgyWUuuʕ+.\XSSO{駟>seq .?k]]݁y晼v}T^lZ]VqEq/Yz|mc)__gc5FU{7|>?٣_ŭU8bD2b(7Mn >ϋ[7;qbҴ_;ZuuѣG;::@QQ322677ٳ'==}ٲeڹsgkkiJKKGz9yyy3fHOO~ю={4559=yS8Ez===eee B'|b?`t„ Ouڂs]T00aG,ˊHW_]\\LW;L3:uwmO}v૛"OL_+_9wW 3c?}w.]zj_PG_xJPOH)k7}7=ТVNV8/&'ҳP'j?"L NvL^;{8J)S5kx kGGGuuuNNND?~a^WWWk-l޼y^{UWmۡPH);577[Nk1eٳ硇w`8`޽w_fflǏB%w-/rss`0oǙ֪ct;)qSz+ozQ:c۰nKMunZ?˦Ymsok/,:sz(%zWV_5=JkDQJl_e&qPlٲ%77rߝ;w~7Mf̘dcL(/M6M6ͫWBП'˲,YrWHkk[ou;v,Zk׭[8ٳ.]jvgg;s?nWy@ `ikk7lp&[T8~455}[lYjKf^$]/R=xԏ|bLZVX_G{{"Bh햏+g z^߾)ޟQh4uCo_WHv^?|+d9`J~є / 4חJ'NZ/Y;_`AVVVOOѣGY9vFFFfff^^ʕ+lDԩSJ7QD$77wPh5cѣWX[ff歷 8Q4?3f̚5kӧ7Ռ1}JKKDﰷe慲C\ae(U,-Df|n&$%6ӝ_?r؉]'k珟=~azՓV;?wu1(QZ䓽M0iVMRE]VqaU$ʈQJW .--Ͳɓ'{w}Zkg~R*>--ѡ0a?Zcٳfee͚5+ۇɻY 2giJ Gٿ"E6j wOS21#뎊n4GgT_n=o>^{蝪ݷ̞oE5FpiL7UϮ} DH[HY7aZ8JbJfC5gΜ>`Ϟ=Ν[`QD!JD2*mPO8͛;v3g.Z(xG 1t*`0XXXx)mC;uuu[nݴiSiiy"k'YgcnԴgg ounI&E6/\s \b*D?͘{w;ƬYBDgΜ0wvv[D1_4}7sȤ⹓8 uDwziJ3k֬3gVVV3cƌ/^Mu9soF8˖-܌KDL? 5S~%~o经1"%nڶε/~~Y9tD4q,'o ҕP"Ɨ:P^k7w}z濼D7Kmӛy*|hQYYw^[n%;;۲#Gx'qOݚ#qRRRjhhȡC[j1_Xu_~:uӯꪲ2Ԗ-[?}3f{eL{{{2\ȍW-RZnث-ǏT>Qy eZ)E23n)1VF6D_0&d}.oKOfL_dVjk,#be8%17o޴iSļ[wⓗ"Zֈq67ܹsrd#Gl۶m߾}Ӎ1=q $cinn>qɓ'aʕ===Ndrս4BWqDߺœ܃'O<֋Vs\+ Xo8^1a-3L,_5@W,".i®4%[qg)3:{~Uy5E]빍h7dUF6"umg7mDe3.dWvv֮]{u}Kx#ՙƍ;s̺u뮿>ȶl,7N:::1ZC=zTk_[Ξ5kVZZڹs>#˲۳gٳg{ŋgdd466;go.riӦ;vlӦMzk2nAֶ}@ P\\1G{y.FJ?/ȡO1 qOө,?RK[ݾhk{ o?rhi?FoJK҉k*W_yrō ξWt(,}?>?̈2f]h1(#ƤĶ(1uٺE˾w*C,wy[SS[oiRecnF'k֬yESAT^^w}_[[uUS\\f͚{oΝ;v6+**׏=vY4iҥK#R!cjŊ/ѣG&`p=`mfV5k pŲDMSi]pm%:sIy "Fݏ6:;Gi߾v#:۾ooziNeyE߳?~dKSz08}tKWS"7͚7pĸ?\}fyDtvYFfwަfk_ZKKˡCڔRf͊)m;rHOO7=3iҤ\c]PP0~誢#GN<&M4nܸͲ}Qo̩SF.\Fosy2~x7 ( -~Q)^ѷ_e4Iw~{|;U "mmmk׮mN{ ~MCܺo D%8x)fC#vXr$.{ovv򑾹p^;ܼ b~M d_Ib?-o'*2m@ T PP*BB@ T P*Bԅ1_AJԇP|Pm)Po){5F8qVJ322^~e]`y (4DGR^;xٳogx G4nCMUU՞={R^ oQE ڷo{Ko˕]`0Gѥ*oKMhtD$JBy^DlI--)jQ^o(ao/?coV T!O' T$[M>70 "ZԲ,T q3cvun D$\82-+0E⌸ċԲFJ #.+^` oIO#ٴWWt$>b$+e@v/bTw`p MFIij/r$x1ߘ?ZHPČk6K?ʴ@oWvvے 0\()%KM$37/#a@ r q%0$ėӻZ$d$gٰT*|LppW+2aU*.qFD͑xy+Qfu*/pш^8-2%^T)2_ITx@oudCR?6&7{H>cpp$ *ŔU\V wr@T3gP8-z,DȠg%3+d \A2DL)h92ČaeiaRh!$3>R>NbÔb@zú[/pFpOd$QϘ33660`@{\ T P*BB@ T P**B@ T T P**B@@ T T PP*B@@ T PP*B@@ T PP*BB@ T P*BB@ T P**B@ T T P**B@@ T T P**B@@ T T PP*B@@ T PP*BB@ T P*BB@ T P**B@ T P**%#Jޯ(#(s~c#F*U 󉢔- bDhcRJkfL_ Y]C1(1FRatvtt;hERʶ@ fedEQZRqjBPLDq{+`t74vkPʲ-ˈ8bFR,%FN8-,,_h+Z+Qbz.b*zщb(- e[Mm677ww%a( 7YKZZl[k=60@+W8bmɉ344i;8/FJŕGю8|xرyYFw0_)XP+1Fb3kNup8KyH4;޳ %4566-,URV-¸"T2D-ulc:=aFIJ|uR1'˾ iVry|J'Y1u*zJkKtpeMs⸍ʞ$$XMƗM]Q {*ˆ1RǛ;8F6tg-*Lje״ s2-ܨZǎ:z]2eX[Z6Vn2JK& |&djN;bFzWzXSXJkŤ-_@k6Ζ}ng _BHQ W 9)ZڈRRKF}-.he.ZD_( iD:zwu8BR'ZkcLHd˾m-FD.Pua~m8bxAsQr[ +B%U? LZwGE]&=ԳD%d \PSs[;MHXtNm;ˀPIkmDN6ihk1b.SyZYjpP("%s,߃çOCA&d15Ou鰺lEX̡SFYqRp m9&d.Tqb+=SSJǻҞPQF̱MoF2ʝX6K`bh# ŲDX4IDATJ*0Dk>37"F)t\!.B@Z`we_#gZv{ӈ{kHE)3$T`#XsVW;D,%-gC] 9bPN45yvl{!PrP%sg.7a ;o9+Cmw~FδXmuعsJ뚛>?rȲ3Ĕ4k`o I(SDD)ijou[pfZmX(w-FL1F%bR6bT1{H5|rmo;߁+ RѺ=M2Gp,lt{wQJse@ HmLkWJiwX"_ڎUakQ40Bms1"Vlރ˜LUbf|ߣlpFV̬,[.e \0DoYVĕ&T`hgv쩣F[b|ގHPQcDX& W58jlAz8[|\7-B.+mL"K1e7AcE;B.N=oШڢFgM*#(PJ,RXD-ŏT&ز,Kic.qKTgLPF,RƑ5-%4pRQEX 2e0ln`xo ͨeb}t*ZedRE,5R[D?Ql)ռҔTGwyEWf/2}kToXe5x1A^$ cWLJ)2DL+#͛ʄ¢Ycݛ+JTϯ3+&NJK,'*Bń Xn-Q(e)KԨdY%ʋh$eLDDl# f/EYؽo#:We DHDR,۲fQ@X@4挛0`e)qCAXS$J24M, h=s̸1yuu&E{#FLnYڌəTqhc,ѩ,RR(m 32i,"QTo(RW < R.Jb5y>`,./WPp1!VZ5t1b)]]V8*7=rD!d9kCPc&S"Z+ egN;na'f^4c,e)c`aF‚@ƒq"Q%oHqC oXٲ,cfQY٣rB4kjo?2:oP_E%p+CyٹEyQ7L$\JtBHJ2|ӛ(}lHȘyPwW'dLO(֎Zc[eY`PYiv 3--;=#?3Qƈ+o/C\!T 5 WDZ+1ZI@1F "]ڱ"J%Jva}!.7NKX7W[ؽ@>{Sg7"bDUXb1$;$%񕏄 \fFD\Fm?BňcNc)+",#(PR[*0~nP#131DW+etTO<Õ.⍠VW"#!]ŮTb^ *p' )\;zEmvW*yL+2% ^wzX¶RKPDJDIU*0q-K(۶"2AZ%SPTD[ G,~*$ +P"'T2(Y"&( G_c*pJC\ܞP+сsα|/w8!T`xsE. נG{"_?=,Ax@*03o_|bёsPnL%%k%^i _&s`$P_D>b2XtyGT*RjdP-1KȈeKchրcrqJ.~J<2JPF\/Q.nuB.BB c*p+@WW* T T P**B@@ T T PP*% %A28W8Z#,˶m$>s8999mc|* ,:ujQQQƘݻw۶KpRӦM2eJqqqVVttt444=zСCT 3g\|yFFF[[[[[9,qOp.D뮻F=gTCCÛoI;g^|R*s{˖- 8-q.))YjUnnw^y, . D,+ɿp8=ztEEŞ={g>~nb۶奵v+VL}ΝF$_PP6s]]]wﮭu;d͛.))׮]1L&Rjs pXD,ںu+oA࢝B@ o߾d~rժU===F4|W.,,4;wn߾ m\sMEE8EEEVڴi[ 7QB/^r#|[nk9P .UT `P(d-[ ;vZl8W]uUeeeKK 0P(4eʔ+Vdffc1moܸ"\iYti(,˪;vĉ{zz/_~zf=ī 1cƸ#Rnƍ?HB2kP( noB̴iBPYY0[\{===ٛ8X\&OzOv/W:::N>]TT8ΤI?a'W^{zzD$ VVVnݺU)E*.==ݝؘdeYMMMEEEs z;1~]]] XPnёT[[h8~G oٲeϞ=`0r+CdH{{ۨeee%ylu[CfEw˗/ۼZ pvCeԨQI^8Naa*Cg~n{lҥ |%ԸcƌqWvvvIIXU[[1eC˿KMMM0t'9s&W*=tP(r~[p8b w ĉǤ޸q+f1f=XII BE6Du'9ĉ͛Lk=wI&c-[1Aںnݺw}c4ƤY{a Bb "T29{}-[xbQ,Yl2wɪgr ǏoVpZjeY]9g(\2ewRMGGG}}9sʌ1Νb Rȑ#&Mr!;vlyyֺӽ|/''gڴi7|0455mذ2%Q w;v{sŠp8\VVm{_t]֡RQQQQQᮇߡw?D4ZrKiiTܣ޶=,ĉ9O+++sGV#_ F--7 .2[&Y4ey9藿FpX{ܹ4es+3c"#$Q?P*BB@ T P*BB@pV3IIENDB`ntfy-2.11.0/docs/static/img/android-screenshot-add-other.png000066400000000000000000002777441462047176100237510ustar00rootroot00000000000000PNG  IHDR? pHYs  tIME A. IDATx]w?ޙI^ җ. (OQ{Xgǂ RDo66dld';i &L0aā3 &Lb„ &LR1a„ &0a„ &0a„ TL0a„I*&L0a$&L0a$&L0a &L0Iń &L0Iń &Lb„ &LR1a„ &0a„ &0a„ TL0a„I*&L0a„I*&L0a$&L0a &L0Iń &L0Iń &Lr % }aבJKЁʖAIu&܇vDCbG,+;ޙo@l7+ڞzmO&&O϶v|Nvش'ϙ}%H9""bZGވ)&L`MtuF?WF[ޤCPvl PLx"C<5u "FD$@'R^џ)!t)oSyj. ]!"kgm9(D͎5]ɛ^F @@B tE K$t!TM5'Z͎׉HԖfxtÆҨFQu@I&,0rE*xy"$y\@Djf#xmʁPxzR A^8皦Q48H޼~Adh鈺i⑲P%ʹYO BJGDk3 AqEU-^ i4C2VxH$׹tsOVt>K[ vM=Ծ{,VkzBM\s?됬i3Y-jr<^獍sDPr5[^HIr*WPd%J 7@(Xu ,UOD TYeM+Dsb$dCCC^S J,wf(l*4p!k=O}'L;]h>OwߛBZ3 T2URz#Km1{ >襨.g|~g\zf46=Lemm@%=k6hb),*zl-ֺ c3N;NVvhŚϼZu}]+i\l!cd+w|BYtI/?ԥ7^){ɜ/L8??,ZSVe//=:1ߵs$:b͞%-_;~ʩ ?onpw\d0IkKEũI ,\vmNf^}‹-Zv Gk~ӜmY\u~y$ xq-/.f{uqgO9#FӢL+XϷ>їs5JR9zOuSgk]FӶIHBVNM'©ׯ'Taт_zѣpأ="]JW4"_}-YLᲫ6]> 6*LRPzuNm=;wvɄN'rP]a>woptWݲs:WWUQ[h5vfrؗ޸G_=b,NL?eE߳(ׄnRJW%u{ϻ n0O mfR~Gr=VZӠA yg>zu .f`$ 7GnӯEyW}븕: lxh`~s.G[|p} ~y1'pbIYmbG%-3O{Tp)~>"UtF䄄8}ڝk/{ 4Ћ+ϸK~뚞R5O0"@2Ïz!Cj `;,CZmNS>5hA;{h_XdƘ+ޖidHp΢H/Y07&$N;kUt_; kM΍nݎMkӵO/%ɜ{MW\uE˖HD 4nnN6WO<vO쬬Icy=^)ij>0jA}U%8 ~3txϿW_Kj ޤ/?>>$bBy}gz7wΒU+Eϼ >xܧN<;o5 c' /zxu㧞qv I^q5w?5kJˁD/7@ޟ;g {* M# M;nZ1?K۷ʹ-([Q[StWVVUTVTTV>WVVUWU*mXD᳿HT)%Jo }@peWF[aZ u8 bKme)i7=pM'‚:&~HDSN<_ZapUӯEL+.䙗^vi / -x/z TE!}$ز}aIu֭# q睵zz{\\RTU$ϟ6Z5狹#\FhܷwoǟwukCuC%(j J++}^"QW4 .W+K Es+9>Ň&kRaȚ< D:.2D@1?u]GD1Sa;~ee+ VոݛnqzV@"@R~}z]w[wkV4Ҡ@@FF JM=^ϩNaϚ~͝?س{Q.=ʌ>a[^q㎊Z왙gy7ovQĬ~sϽ;v0F9x-~Z 2C`κ=eMVw޶u0/fuS߱}ɤ6F< Y!FiN-Z4ͪJZRrVrOd/iMD ;6<7 [ UpM?y֘Ku5QdD`ظJd6Ol6z'T?ȰQdPHfDD޲# J#Pw's|iY'~S^S>|[Z="?gĐ=E?GD !A]܃j{P9+gzNzƻ<}~YR^sE^H4zSy;[%5M駝urI[nMjBRZrʪ5kKs| v:=xλ|VS[4z`ϿYx1? &yu뒙9e҉i'ܫ]<0yB[rcc' oo+.q Nyez7PoU㧝m_M੻:ɠ*a]ղ>G(Qt5Ds~~z遇k._|\9>z+ rN^yʪKuϳjanֺ/ <%b>\~)pgD:c`ٓ$}$|$ڣjo-=nwrc p9$@I%= 8mvgPA֮Z|hgk벱i,׽.Z׫~f+;c:t`/aRUWSrjG0rffdTnZ/~x^z EN'׊9k1#7|']}Ś;r[oꞙ9Y!X8T߿!WO.Go1)eke.::s)N+P6#oч9l(WNP]&nZAN_u)bFa# E棚Y-򗭰KZ?j\YdeD=751q^Q%dEj6늵k/_Z{w>3ǍsN8h}tȔŘJMgM>koi\}F wS#1t#Gb~1!?=>⾧|1%rF2n E`gƯݶW[bۡG +ιsLNY^x΢S6:*^˻s>ڬm#!sylP.);Ͻ؊;B :Y9:W#>k$Ţٲ1]ٳU.YֻV U&=ùsʪjk:Ow>={uɚ뒉oܺqOqG`Ғ6 uԜvF/ODmtQW_t#>DJ twAޒ,i{/XW㦟ai.8;Dbc|w>0jQɅ~?s Ie8LR9v 7z >WuOK8T$: 7@UU a;A3˫+bP`DxnibD2O9]ӳvN1[Th($'%ϼ; B7DrQc=r u?g\UqyYj5 w|>~ Ka$z?_}H@fj*@Th Zm²RfQA5@{lb3I+I~ =%"{:?vc]m=[_mz֭۬^z S6|q 6 xɬ^t?״r3&_pnEmM+EQ=v~#G0{O:wGꭻ|yiwD>x 0c3,"g:Ihx㏎uAR /h1%h7|jڄQ_~k{F _yAtN=bJP }^;|/?gbl/#;gAK\A>G0-;x@{UU}͚L3oV,9fؼ};S@Y-@HH6/M@" ~;s{T28K8Bw_ɘȤw̱ZG${v0gUB 6ya/@o}qUan~Awa G§ѭټ aKV1c816SN-,*zOe\y寜3N9}% 9)Wn[jQ-,)(8؊lgsg?ܷ?J)Re8HjW1_N􏮝;A9Zemk6ov˫A*W:rG:r˖v_ߴ-KDKNxGa{\,]aT*SƟ9yӮ]-k,q~ϬY:#n;_Օk^g_y|c /KHIekϿSV“Ln3gT*f|lX-۶M7Qc'}q)iO?[9~i<:KCyH`ʂO.tM&M}q݅uI%9 E/xO?) [m;aܸ Nuce>k?5npA3|qG0jqG;|llL wNH 㸳s۷׸}[)Jˮ6.?x7Oׅ~}a[9rD씴w^xu֭}D\gms>'8k̴ɧy~捛 ru7}%E蔚ǟ3'~-&}%1㴨xGlnn勖- ,tp:@qcξr)zM74a[A.p?IhJj\ZDы۱O?ie1=}w!{G¿jpu6f@c10Na(A/IJw&vN@@vsZK;7bQղ}dȠAa~<-ۂ9_s-A$6xa#36O?!ubQ4U2 yl8G Tj5|Oxb(@J"9tȆ8g7~3OwyN9/ta0pDS^rɭ7ȓg®ofDYEeԼyV('Ghڐ{ l4@O1cÏ(.s#ygN)gC0?T؟r彷պxkIÇ wu1SZΫo4I!4oKB`0kVP,ڄgLV,bUQc 1C:|*Q@Gv}gںc3uuN))/Wy G$kuH!Ꚓ2ۉ\!O0yUZ"jpǍO8o߷W^oJh(U^xNON 6(`8A/Ёߟpy_0_VLW_;䈾Hk@@wz⁧Ao\5[1r`#b{hrE ^0o |Ōs/i〈r>tV f(3pJJt!☈o4G8(=GqǟpY?,ZsfIU^yqm 1e` OFZ[֙syiTUB|J,j$#O`'T6 ,XlZTy@Y?O$qUE7)O?DMo~4)SUZymR+sժ UE{~YۢknȔ_z/gqGRbK> %En"D1ˢio~vG [7 &g;E %ظe0< 6jz^3B>j_ν2tun=jpe!39g;}*7z oTo~r=ao._YiIq#FfexݞY^jp{k%C}ޥ-3jeKcWTv˃:lPϼSoI-0 w '4vc=nSwicD}?y׽W]xɂ/ ?#O=_R9WnGPT'^3Xjݮ[~@:WYͧ! B'ayLAwV;1!DsoEnmJjjb˷'hN9 >k_WعgWy"H&o.}"ƀ6 xw)!>s !g- CլU/Ǐ=.D3/>ē7q; *5Ǝ:{o}SZ_Dho.Z8r!f[/ZT2zgZ`oIo~Y} Wk# u{ZS,۷MF 5NK0uTqgBD 4̂!!J) }uq6ަRc#^wfj"dQ |Dm׍${$JF *뿧:fx_~[ʕxKʓ2'=O G^zW^'q047v%c;ې}?kwFCFL&I*mPliKx4}TuɁ<i5[ψ׏ԎG=W[)8 ll U~ֲBxlwh #[kI;i_Dٻ=*߱9LH,!ZmK|ԛHm 8z %CTX?ҕ2HDߞ'eVI@md?KoFPtrLhQDSsUEG~CNaG&3ͮ&mo%,G$J@ț }YM6i}6}/x[J߷J [^m}aG D;G1-\{P4k,hlnNk?u¿xH\f(nW@a]ZmjY<,ϩl7VJaLKń &Lb„ &LR1a„ &0a„ &0a„ TL0a„I*&L0a$&L0a$&L0a &L0Iń &L0Iń &Lb„ &LR1a„ &0a„ &0a„ TL0a„I*&L0a„I*&L0a$&L0a &L0Iń &L0Iń &L&L2p'b 0&L8bC dȴYZ+=_b= &CaL p#тO_SN $4ԁwL7Dͪ:@-X (N`%[af@t5J$5a"bbtq ׿V 0,Rdԁ}Ap!_T]&:hd%B٨KD~,CI $ЁQR!~1?@ɜ1v>FKBP~`D@`(%3sMQ8@JFv͂+0a"ַ{7WWl+ك\=]2l)dU4ιt|{ ([6&BtLL QY[aFBϳhw)?Fқ@G%^!Lv1윚:{ĐF({+Woq CG)۰`sI!틥ҬgP99Gff###Xu,߲wbHuy2Q$ s0\+{Z 6554Y񉀸`֒BHP^͏v:«lU0$C[:s2+%)}o.)44&@~۫[j: 5 CV\bꐡ]]&$@"1 ꜚh7cʡ4]3/`.HRm+=kVK|iHf!L+ewCˆP )q $"5>(Pyj-D ؁EmA`@؄i=2RZ3C_DPe!JJ;@Hۿ6&L9|DMQM}R&$ K$cQH`yvUo+-.s"2$!|$oEoMen׵薋Vm^.Qrp7\2ZT!1hBaEkSxT &kߴ N):uߩkvR*0 B'yhrp)\l{a!"R TT~6'v1aƔ>!}e۹[x@BiuuE 9__Po !o..\{q#u|cέ~eSl8 7 C`d3q{iB `cXFoaH`("(z4Xی:GQ o&AVVNHH"nk/ 1qY)ݳ{z]XD/VuJMjZquEcE ›[TPB#`;Q ߦ};uF̤$.q>C0΍$$I1%jd$Y%6&\`fE`K1簫v: yDR1*$508x@,"I]0Sb 4bDRA @@ t*v85ClH Ymvk t= >70R"$Ro@dJ"S[q qr5:P !PgccUEuLQxU )Dd# En4!cLb$ 1Asf^)Y mtQg!iN&9]Yn]h5_?RPpIRkʝIHa,~&؂uT\g{e AzɆbV#f$$$@ 嫶mF쪖߽Wj|<" Ľkvn_!rr;[BDȪܾ"=22w @%U%rR؜_A lw =;E&Q ]@W{X}ޚh:p 3>ƁFO"khsz` ^9)(aQUUEUeK@6zJ@t쑖⅂'+rsS@ TXUvv뙕5K.,)w]a G޹:FX@k-ŅMNsTH1@ƫ]oG왙+U3VgGaep<Yq11o5+YKҺd㝡#" S [WxLv>SEsj:qeUՍiwyފ]奌3$ wPi$H:= {++aȐ 5)!b X/D(jLN]\L,AǪc; %!G!Y{JJѐ.F푖#D$-3t<i&Ĥƣ.9ÜT& iӞdsrZ W$ɲz{F|"(夤E$QJ1;%s]ar҇kaP)kKzfm73INsġ$e$855!AHZ#`yYѭ$%¦  P?$c=x$!j뚙OD=#6,!BI bNJZHHvIN IY^W[(}ep")|RZkfvm]} KK!=zepxQJ1IIRV:M^1q`X{fd7١7Z-]UUY*;$ZbFnVW Kk}^;WQR̜E++$"2 .yL"T6oؽ{*Vݺܾ$-'1 J{dY(İ߮\C X t^BcI*Ў:˪ٝ, W,׃?I蚋 `󈲕u$$9jE"䬨Ra5#;c<1Gf}'5-3%6*jv#B$rT0#m[PX,y9T`*ј~~ZJ & Hj\In+*xVk. ۻdrg : AԌ$%)9YQׇv2$uIM']õvULIH!vALIg (AaZq@j8zeۛ#rRR !fBBuB { 6E1qœԔ]D@=K!qe$%(/5坉Cl*P #1 @2V;`9O%$)K̸Q={0ddf|8Gvw @[")J=#Iq16 YqmmXlz$Ũ)x/p$ApU8OOJ{u O­Ņۊ-@PR[ש3zb턡vTՖԺ\}cxMZ1qȼnȏE5Y@R2\cI#@~M% mΩi=23gFV~OeET*mG;"3~o8ox :ˈόO@zwWY"t boŠ KES9lXϼD9# EQ  <~_U'TFRdD$ 3MQ#2RQxKUjܶB0*]u;wJB8KlX^SioAU33oFa!C/ݸ.5>ަje5Uf-_T:&@B )` ߯ Ilw8 =RUy@ +Y' hM cWt C# %&19F CA9( ]"!-~cP3<]jazy ]e>)8gDĥL;] MA&~ſN)ج.~( *Wޚ*_鸥L"G ȗ@wlW^w IqqRɪjF OcFT./QOJL锚%i#y*`̯`S4u@ / DC[A9 IDAT lDH. ύ[}d)* #F)W]׍ Y5#~8Y5 \_Hic$37KmzK#R' gh$= "tߪWnߜp8{df;4 "7#4-3+S3Bn$0V+D8 i:`?8AqVBDI{#[8DGxEDA2䊑Fn8bo Ab=HunOY]@*q֖V%%: YNnDPRThH4l4uH7!x=eUPc,:  AP-Uoh'A`Ch4u@!W#$e$$Vm'DJOH)`H"X*ғR$ֺRb`8k* @ 22Yr3PJb|giPuzʶ;phERʜu37Z'a\67xmR~B;w%J  (36ipnUՊVl(8h\SٷQ#c%5Uyٝ\CI VE, ]^oMIxd$$IY9$D !dnV~IV{tֿK8 FWs}DrӳAP #Dאַjtu<$$1!V6"Vo=q9nܳ  >k].Y5&y9]AFLRlԞ/OYZl픒PN!e؁ˋ1e5)b5KfBƖϪ3F@R(}f83b@";Ե.)UH1ȳ07>ucS;h3Iq0qi`rutV䠋̸yH: &ĪںY8잝k[%jK+ dpOU8I0g!BJ|ЪIC{ٔ@tӸ>3D15'%1;wKMApK*W= \Y9LUcc^?%8s{ZBmeŌ!CSQ$qD#G^RL Vm" nψO@wD"꒚jPV_[U4t{f|" QL1& rD^9-HĨjNZiCr{e%$:*R 966Ɏy 6%m-˰w,E{#6+H]^ lhLNruDIg$$ G?<>3fw;@ rʍZدkնZZQ* ذpF&,!i Du>)3>8I}QkdYnYCu],džaH,sD$2K-GBIvܒ(8MZt"c몭n*Zc輞yvHwoFCrB;#3! !jJk#r='3NKFC¿[h/kg8F&LqMu(F9K +KaAxzw22!dwL:a!(,8e u2Ȳ,̑Yٌ ŅLJ3 KdF2!)+9T57ED&F0KזYCE.")"Þ{K zڮLk6 !-胂1gJsOfHtvr:`vlj0D76]Y_KNbHi}]|Dt@$)>$,!4\"P=;)/Io4DEs'heF#3SW!?yJf 7NLa]eHI2J+KD>&kGjn Gd"=  D",SX[dd|0Z/$B$YfN3㩒0GJVmٳXs^BrRfd"YY8dەj€t_32C Ze ϚՕ5/KZ::b£Z~ lnkna ku;k[ZIJxivo2 z'c;; ~ r؛;:BM! =-G o2(,7)]u--D&!!!5 ǷZȹaZ&SBd4ñ.I*oeXFItY3 AA,5wuuuѿ 7#^SXq,2 :EHEs[<7iۺ͡&^' C2DdCŅne"Ե4t!&AΎ%SReeuGO.KtDŽG2 03.I TР7BF1,FyoIR5gkc 8uUPTx]'DyrVg %gd" Bhݒ-l>^fOkg#C 0f- (Qy$i8>e$DF&=%ɲ$MAZ$f!/xa$lwðnW HxoUrYdI1,ò(Fk4ZKZ= $Ad0,Ofj,f &tYmI`FcEen2q6]LHBM:NQf]M[fӣbƧdB,'0D7x0ݞ:{;JeBD!jetڬNr,pZV$˜:T+ % "N80+껔UK@V)#㽎g'\wWĽZ}JxBw={sDcz85yqՖx2H,Qv|oK1 Dhp{bK 0^*^uޔzub~\ cO&ހJ*\_w?ںO2J%G<<zc#J'T};;-[v{Zhba&DJG3 T!h*peTVוpM+ϑ,!iP^ ` B*P@B*P@B*P. 9<@ʰXBzZ9R"F&2!a>3&0aC6 8?5%IEac$, Ɔe>wtt㎠_JMMg}uIkZA fY?;w#p|\WWWMM͘1c.#TW J_WnۣGuttdggKjiN{U5k_(u޳8@qcǎV;bekkkO>][[{wsw >|.--lJ1PQBN5kDQsǎ馛4Ouvv[n~xxxWWW]]݆ nHܶmbQB.**rvuu(ׯ'$&&Z/{WhKr,[XXHCIEt p8]]]"o/]Bţeرh͔Y mll\r%wq֭[kkk;6o޼A|MB˝N']5\S__uֈkǙLT^IڔPSSΙ㸍76668p`֬Yuvvfggϝ;W$a:::>:ͦ󬬬eyJq_|(&L>}:|֬Y[ZZ{oڴ2o޼,:h?߹swܡ,VnᆄYnW_0ݻ>i$zfs{nBUW]KظiӦC) .3f^sk4^|q˾eUIIh HIIINNiڟ?VWF6Lޤ … W=~xz)M+$)U: !MȲ,BVV!Dز2BHff*icOg%̙3<ϝ;vEioo:u2rH籱cǎͥ},,IQӼ:uv'''9)bfffXXXwwwssz  = ʾFNiޥDg\\ѣP'O*8$mڴi۷oߺu+7f9++k6P-@.Ƚ#ȣ*J^t\}ÇWUU) !;;nu[^{-=eYYU v{}}}ffz$I0 ᧳7~uMso󧤤tvvթ;-ujDEE577۷oܹ<ϋ(YAI:ժ't  UW'IREEEJJNЯP bÕXTUUp85 mF>...''ԩS6mIIIiw~Lɓ GZxhDIMT%''ƾWyZP,vww[֤}Q圜qɲx3gά]³,AOxԤZFP3fo`dYvzv 78aZ[[?xpF5 111=z_vz1c/^L)**UUeYz{JNNǯ:;;].`HMMUbZﭓ$fIee}n[%fkhhhkk $)&&$˃,˱Æ 3 Jsfff?AU̕E---ǎإK T?NW]ZYe$IلV\ͦ;i 8p`5559xUVV&''{0Vt8B{$I<~%BYY$f۶mێ;ԑIk}jKlZOn?>^gY9T NSo$IUUUNO 3.//0 n$i7nTĉ !wﮨ$yպsNBHFFF:񊋋 !cƌ@9 !۷oX,.޳X,i{ooo7Xѿꫯ<\WWG0LlllHHرcGWWM"ppaYj*-͛7l0ײ1b2?%%e̙zcÇϛ7OyS 쬩qcUZZ2!($9O?%,]ɲ۲DQmаa,YțZ=[o%ouUUU)~Qj1.˚ 6r}5޻'jINձzAU9sVwh fUY<.XMLLE,gddhZ###ҔjJsebرDINN6lrA7j( CXXXBB´iӦNSyAAAf999III>7V׏7㸠EEDDpLuF OHHP_=:11NBNN IDATxbzh ݓޝ@fĈ.+$$$99oq\nnnxxV 󌈈@eIŲ2YLHew}w`s'˲ JV48СC I4v{>TիwA*]0̾} n>VHyQ.g}%&&\9WNK(:K|V&:::88X]R>,Ϝ9sفRePz'yrBo1Bŷz!ŗ^1tԴi!dIIIWQ0"]b"˲nxVUr9=>pGDDp%/1h4z=U,ˣFF3 T`Z6999,,LyjU|{cPUߞ].W{{Q+(T=@}l } ~*B\ѡx ƴ4?_;t iZ;Ed<mcYfnFc0.XQ.IPLb0 >/֥J Pث:Bq"6W*%&<~{~~F}:22 eVlL+0`B̽e8jcibɅeRZbyG,܃eYQ,rjjRjȖL=U---QQQ+++$$%Wh4l2'l6[DU H%1өTq՟w:sA^ hkks8A95:Bbj,j4$:ǏM>cg#R.jݮ|B[z#::ب.[[[cjA*.t@}weee8Fr˲ڪoll$_ZSrbѧ*x:faX 8KHHz}\\\MM͙3gNj=q Æ e.Fժz)A8ufs:555(nNEM)Z-˲MMMV#dYȐe9??t644DGG{<~LJJyb8ζfԫ'ee &;""b=ݧ)UGeAASÇh4555qƩ_>}ѣFh(zաS^^GjÇcFYQQq):8;;ɓ8\ZZjMFKdYh4eeeǏ?edd([J8jF3nܸ'NаDJDRdE.+Pe(qOȹ!UDQw#, >>RM4xx'˲يvNW[$Z;@MrF Gڹ[]uL(Ҿz~렾D8MsEfz2]S~sCȹf4-oϙӵ"N#rB*P@B*@B*@B@B@ T@ T T T TP TP T*P T*P B*P B*P@B*P@B*@B*@B@B@B*P B*P B*P@B*P@B*@B*@B@B@ T@ T T TP TP TP T*PJdYp'Qvrb 0,3 s) 2`(ǒRJl7_%S=`o-d T cblW .R}pC%b'ZAZ' 1G-ՇְJo`7Q$Ib;ZgV .v`xtDA,J/BWz(119s?ݭYYYg w)r:H /11r:e$IVJbY'YA@\\Qw=k<TRy+ > 8Zq0fl?W.DQ7 FJ덆/-ޟe5mm>0te"d`B%wD"AqwkX Tg$zZ$`JO zz R|6 T)`5g "NZM^&cZ 3\ rO#Xxk*>7t jy#?An[U`eEP(շ |_zx1\P!~o+gO(80DrK%L^M}50-<>PpK.M9$=J*=ue0(͡ /+F 嚊_*10tr弣l Q23{o.uJx{tx-y vq \PQ)pb/20WHťB~ S;>4mRΰع)~1)P$B>m۶wyG]rIs7sy8UʥrÆ [bŬY?Qjjjk׮}WR>/CBB] pIWY*W.Pyw}QFCEQ$?6l^<䓂 }>G/ƒ /0 v333}N`ժUzO?/~AmnnEqQ<|ΰ> [dȑ#ޡC[ŢL2w\?wttܹx⸸8i<|lllRRReeƍδ4BHaanjcƌy\;v8f̘˗sg*++?fpUW͜9G$??_a蜛=*rjjjttnwLL̼y󲲲;JeeY8 p7~xE"8%:u/0K.yjս:C!B鶄 sw>$s7mʲlZ7m4úul6[aaaDDn;//eؔBO?kuuuY,Vkbbh|~׿݅?яz=4>k֬=ѣwyg[[v5͋/x 7xkFZKdZW_}U]LK/ /Yr 7:thԨQ'&'?ɰayB][QY׿u5xOggO~ zJ\.N49s& EQEoXBgeȲp8Fo]n6F<˲,:BHLḺcS|X;C /`0:ujٲeAAA*nϝ;wڵ,: 7pl(_{5\H_hdToROg\}*-Zf`{֭[=F:u6u:9CN8kaMMM3f9rf۽{,G]d_|ɉ'VX|uׅoٲEO,YRRRG5m4z]v͙3g޽e˖3gΰ,h4(jZ: Bc֭ !!!/6 555_~ePPO 6xTAg̘!IFkڶmt:WX_6 Bl|ffQ$IR~lܸE;wΚ5k׮]=;ixtM>}vx㍲,'7mIJltt"fΜt:1cƙ3g,Xj6?SpСe˖}'NՄK`c7+o|Ʉ nwkkޛq}yC(_|1,,^{MP'OʲrJu^xȑ#/^q5\s뭷,c}"""m`PD!ZJŎuκuΜ9c׬Yh4/.(((-- pT'jÇW?Nl6}z:.33"E8{_^eF+w^xzu(T*.F^a6lo&$$@/ =#ŋE+(Jxе:s3f()))++ɡ8pn;Y[ZZ< n?[hOەiѨQƎݴ0^߲eKѣG[[[APӦMbYRCyiӦ5"DQk!,{뭷B?\:pp:=JV}(.?I%K'xzBYYYW}.w:ZHpҥ"R_GGGGEEO٣jn7wa%%%\v8(۷rUW~ܸq:vڥvy߉'.֘"N<".]vZz/y۳gFq\=bC Pƍ /ܹsɒ%6M=# Uh* ì_~YYYsϦMKvڧ|n⣭=+x뭷}/D#""QG>_㚛aJJ ^}Cy@ "ڝ{^~iϚeN۹so=m4I>7? 8VIcƼξ k2z`0E,c0h4E)Km6ɜNM@\򒒒^z%vG "l6mnYvmSSӶm766zoQ]Bo'pZ}E=Xs<~j!ɲ:Pjii"Y$F T&&&=L>r,[]]ȕ{oW/P5k!d֭r](V%K(FϾBi[(111aÆeeeonn  _lv2snΝC=>8ꫯo菂 OYd }%p©Sǂ=ST׿/ -gcg+:GW^yt:9sTVV*ӿ>,qf͚3gy矚*Nۼyǯ^yrΝnǣ`Yv֬Yyᆱ|r+V ㏟w^|Eq(nJ!~0111{Z[[_,FFFџze͛7+=cO=bYp^$`0;PT}뭷[>:po޼y]]]~;0ÇoooohhZWV4i?`կ~u VQ__"A5jԣ>#dff655uvv+<;TC?PF@MeHKJJ:z>-"}]viZu|w5 (l6f2뮝;w666Z,:]rAz߿wޞ/fhȣmꪫԋ0 ~p8o~wvvJzj2P˲q(.ox*a4{ih6CBBsכ氰@U__O3)N[+ЫB?q\t \FFPmmm<'$$xw8lnhh i_>}tFDD(LUQQ!rJJ o7Zt@lj6C p}88ۓozz^M~U 'ZσEFFyt/Oã >,P ҃  Tec*2.aB` @ T@ T TKflv_K. ȕ㫯Zjƶ_D˯!^0i4N7 wۗBe(v#G\|9ϟ?nϙ3磏>7LSN5k$IW?~3'Ns#99yٲe ʂmVPP`Zcbbf̘1a„VuϞ=yyymmmǏ_`l6K.?y Eo۶ɓ.+11뮋l~wn[,oQ=C;v\sMjjz杝7ߜ1әd2)Ӵo۶ZŔk666Vmuu'|R__oᆠ {رc뮻)?%K[ZZ>˗2 #IҎ; Vk||9s[Ų~Z8i$?ێw}[ns:III7|>䓖 |ᇭ>,=*lsҺoii_~ڪjxnΧO>9sLXXXnnrzPǎoL&رcP_^^ɲ}vz$%%XB}몫8q򫞶'ñeJJJk_(3n,3{5[o~ ;-SWʻ\[ou6СCn{̙뱱gώطo7|3k,h7ߔ|999YYY---8nذat׮]EqO=T{{̙3G}m۶5*,,dƌmmm}`HKK^Ϸzo0aŒ3xϚrss !Vu͙ͥ)))P^jUUUٳ***>SKdjnڴjʔ)111'No,X@ވQ_={le;;;Fceee|||FFFZZGCww-[A8qbDDıcǾ9s¨y~޼y#G,((O'OLSQQK/EGGϝ;7&&_W_MW3gz=FGt:.\Ձw-0 #O?]]]=}cǶn߾d2u8VꪫRSS=ZTT$¢EKXݻ|޽ѹ,cJ.v)SDEEB^~夤s}筭cǎk׮ذaf2v***6mrԇgQΜʏ?xʔ)zoǩ+~}~v_]___WW7iҤ'OݻW}&k=}Ǎ=oJӧgϞ=j(?_7>jGKG2 e[Sq\| Nu֭\~bٞ|`Bٳرc޼y߫͛7;{^SN}֭[C555UWW~SN%L4饗^ڼy9s2vX۽{o]Ί?ٲeKGGO?MWr>ƍӟlm0/鏩ofiiȑ#s:O?4--Mx=zre0vؿou]GOCCCN0ꫯn&Bȗ_~r=fff>s{={ZPP0fBfsuu5- ***FA-[<<<2eʔ{oÆ Ǐ{~GNhmcܹ/rYYF)l٩^kU7͕zf̘&iÆ K.p8۶m={CیW^yۺuk{{U3Gٴi=s턐+W1 }ń>|877W}lٲ ڝCU~u3LB*%%en%M7N'N,(()Y rgg'(z &FpYiN_qO<񄺉h4*5Z_~V+|pO8q+ \;v,-(eo߾'FnKOOE̙3gΜ#dY>|=d{ZaU>AXl̙3ϧGPE)ʚ={6}ߟq*۞sj,{^x u3zcƌ7uS &>Pcc$I:dXBBB7翾^)0;;Ndɒ?8???;;;''^Yd׮] HDn|V\.f{W] H$"~(˲HJJ:|7zLeAuuuwﮩl,x~PYY#dee >|JxO>ݻwoWWd:qҥKCCCwuM75448q;ﰨ{3t"HނFcu7kf&ٔ$kэiFƨ]cłF tDЙ>sۓ;3K,#w===}ɳr---FejU*}ׇZ^~=Eh47n60@Já'Ncc#;r#>`(+++'ϧ7LjRTSt@UgAEi4ޠ k2}k>R{3dԷ47ӆaCfS?5EQ7bks=7nܸ[nUUU޽[$^>lܸQΘ1cȐ!\.7''8KRggg lkI$I.8fNNΞ={FxbD">sՆ oݺu鈈|k.X GDqqD" nnnGdvvvsY/Z>\.TT,ڵ_t 0&y ^YD$I f?}xY* jằ٠B$,bT}/0}eTlllpW(b70`g mmm83F B YT*K$I~;w/嵶[ا"('''j?` Ҡ/3ѯqV[[w,LR>Ҁdff6ϳz J+>|N K(xL1$$$//srrRjj*EQO 5, LCaaaE%''0$~Hkv5g7W0[om>5#8߸qq ,ЖRyⱵIJJJNN訯߲eZ^x1}믿tRzzQ fP5o5g{x n6QX3t`jll jѢE߮քp 6쀿+,ʛph{p ðބ/BT .\p\/p~=zRr+VW_1c =tݻwq~Ԁ7,,lŊFw9CdHHȸqnݺr1cd>/ H a*++#c.^mmm֭{饗Ni`N+`2,..nΜ9vʕpw]PP@QҥK/_^R0 7o<J>rss{WO?Ύ~>$@P"hpǔl8Adhh߁vax5O ܹ_8pΝ;`A$ j*JϟONNe|rǏm=bĈUV23Zs{yy~26MUuj#{~jP2lݺu_\YjB  dPhfdz;w#(v ~:..0\ NS,Q( l~HT(& >oJ2R/_jQ 50(2 KXRgqnܸO Ir\$1bgOLɟ$IRiJF󞜜|i05{aK>cUh63Y`}^<te|>u7"J.,4! Fa >pL,)=3aIހ,;0Bo{`ը `Fo7e^XKςcO{؅vmDylm!{f/.s̉@M 5T˟2i}lk!ߟ~k'ϒh((, 3#SA>ğh򴂔 @kGH N]]]IIɃ F P0Z]TTd3inn.**=T|^t*}qx*̃%%%eϞ=} ,1x4qeee}^dOO+**T;v0B ?oZC趕8΀O ͨa:##War?t2l0߁}pZ rf~y RV0xaXs IDATss}}D"1b@JeeeZ}q @d6mz[B->cš5kbbbΝ;w-h%ɉaG=222222>>>99n*TVV:th„ ۶[nٲ>0L|fffjjԩS!;w‰ <qۋq=KYr\[[G;v,11u9߽{7<<X54@e]vdD}Aر;&&#{9ø h:nǎ8d[n߾?n9sf٠BVUUm߾ɓ͛7WX1tPAtA\j&$$\z'((ð{2u5kEEŏ?'{$XicEcP(.\l2#1zhR 8oA_ٳzq|ڴi8ւVUUh"`\^TTd*%H?Wx0lȐ!/29xH5,XpOQ܎&Ir֬YKeɒ%prJ\ eaÆ ~2 o/x~魭y {ݾx񢫫+xyy`̙aaaѶ0k,Q0 {D"э7ONN;ijb+q8H$#GSݎ^Ԅ5}W$I_  ,--AgҠp9( S|> *.a=== ݥ)\\\bqBBF =af f t/2ךZa t:(;Hd* #G|8==}޼yyyy8nحXXXgl=0w蹛0aX,rg}񂃃gϞ %P8alj&:RIDvvvZZjFGqM=u[PZgTX,3}|c\ _SgL srr͛WXXC`0=n;VPTTTTT\.sίqƵk:99''t7448NIgW+# æL2k,F FSeaaa*F;wjǡ2%:(~aZ U 'O6}$ F̞= ǔ;A5553GЗm;w.=cƌ^ +**,,,MSvpLI˜1c\h294X2zɉw8ʥ;ˁ=EEEϟ7;^2/(͛}f:qÈlrr2A`1xzz'O,**xVVVpRً0_F XUU2˵Ǐ93\u=A3j &MɁO9" tF.j5}Gу:{,;*ŋFsp222Q ǭ6}||N>Mu傂3gSbرcɵk׮^jmm 媫BHNN6BR HSSSii)sٳg-,,Raƍ+**J('NpyX;::ࡀ'd̘1T*W\|ʂzzz >'֬Ym۶_z>?? ^4aqNNN7nhhh4iѓΝgϞk׺544bDSڵήiŊfYf˖-֭-)) 4ijYn]@@ 2( .[ZZ Jw677K#""M@ 6,%%eӦMV޳gUiiF?%>y[ xxxtvv:0iҤM69::VTTy(*<<˫b޼yIjkk:ojj2u)<<N2%%%>I+++L߃yfZZceeRĉn$D"4$;)jh8KLkK~~~@@@WW\=uꔟ߳0{s}P xP8r}||07nD"qnʕ<w<?חxfii9aPVB)S̙2j0ǝ?a  ""_JfCNooob Y J"L8jKK9s ,ęJrĉ.؃R0X_2da(u/2wpppqqt#F 6 taAAA_ oMCƌcmm鬭_z%NWQQ1c E"AÚc* Z=w111<OՊ☘Kx@|7p8&MPA#U6mBr@Jbccꫯ؀m˗-[v]$r@ x"xl\GbG @kB"@<")@<` ߡ X {BPjZS8IJ cҢT*lCZmss3IXP%ܩIccy&>>zyy͛7Oo.OpH<[(NZ[[7DڿNNΎ;~駮wܹK.A]t:aرc?ٳg *zWFxLqgg+W{"$ߟ CW^ ވ)rЬpX?04EQ*>罽6l^ Ewȑ4Oc֭NNN-"ISkh4pW)g@0x%Kzp933… 5 t&MVݻwKSCnݺ 77ŋkj;aW^MHH 9sT*mjj:~-[yxz۶m/r@@c|͛7oذŁk\.w߾}jW^t4jo;{ǹ$ɂ _Fݴi\\\7nPfCI||o]">A dc@@w,^~8cZ>3lllnܹsGPDFFҕK콽N :{ڵ|ɞ={֯_aXsssMMٳCCC;M._<}t0mMN.W <g|nt8CtNNNNNNOGkffg m"~P(kÇzhʕ+ "op,|̙ųg϶5]NNNjjjKKD"1b}Q#11V׻Ϛ5 zTMJJ7oޑ#GjkkAhh(pj&GqFee%~zdd$:zW^(jwfΜyȑ:wwwe=.yw^Jrrr{9pQf2u:;;8sN2 <{l^^VJK. ٳ%%%ry„ pյyݼyŅ3g:::FGGH,=m3III2lʔ)GdO'pvDT㌌[8a҂aXccc]]=q]r3gNPP˗m~jiidUkk͛wR ,--/^=l9<NF (*z쵵ֆ$YC`͍;wpٲer C ( |PqqqXjIWVV8pn94..֭[G>}zOO͛;::`~7lPRR2zX`-֊/ϙ3ŋ1rs ?,++ G5}> Ef)))QQQuuu9,/CQlذ^zxxxxxyyy2Ν;`&%HHΝ;sV+..P(7oDݛh"??۷̕!C@Eťۯ_~<:U[[_\7o 3gH$ڷoߵk׌"U̶P-[HRwg4Sӈ:ydCC@bsch=j*8㏏;lٲ~ŢT*Ϝ9^^^;v(++pႥ;~ }w8www۠u?~ӦML/\@$67otppbqÕc6j4tP?]zݻ?YI0aZpႧ'b ?8mC>}O?=z|FNRTȑ#cǎСCѰH'N̜9̠T{{{,h68//8 ذa8Ϙ"[XX!Cv}??? 0 Dj8[$͘1 :8*!!ARmڴ.Ǐ2dcƌ0lĈ:.99_+l]]]UUUN>ٹ~zu'No2,usss]]ݲeaDD7|sԩVgpW(oSvIP5j(|'''񥧧zD" oDoߦ(^cbb`dŊ| }@,q:EQR0 suu imm=sLbbbbbɓ'?ٳg}µL&;{,?OII ]5>A_6mn~w}s14,ְ۷o}$I!iiiVXXt퐐~@ll,0~mN qH*9**y(++(@ǬËY*9Ņ(05gQ5o0dffρFɭ[F `ECEѽ|:;;\_wޅ_~a,m3 O)'ufggϛ7$b曚(bs0v@@ ,@0o޼yԤ\z5++kbJgFPa{{Ntz^V37:;z(,P|>\:cEDDDp80k1FP']UՌ)\...d@t>zRT*X4rt׍\{ӓnt_6v?TZ~O5޽{zH4,-ׅ;(;''gϞ=FZhC IDAT%ݨ{04*ҔƦb>~pނ+#GܹsOOM9!PR @`J$I$#׌3E"Q@@@vvvDDDnnnHH Qߠ}V9uG\\V}x<^nn.t)oNȆS^.˒lzNccccbbnݺUUU{nHzj-t1UAJqaĈ<===ph`ccCB? t qgq5 g-_elb'@ 0ZS{zzi.==54AwIIIkk+c,_PP@Q;s ???￸Y14 УNNN ܒ!8RTO:LQGEE߿_Mkk;BEyyy2lݺupa\Pb1AZJ2?RtڴiO/w_<jyxm痔"GDD$ AD"Ff %IjP(^{5p椭jR؁ _p8`RRRQ/FyˇǏrNt/0`s?>OcUJ>ɡ~T J޽{E" @W)>e(z y 賍{1TÇЫAjj*Q#>>W_M P|v?cDtttgggoo/}s6&&&)))99oQՋ//$y;v455 !""ԩSo쬪ڲe#8p2bĈK.եmذ XU}|9**kccccc+W~'޸qKx+W/5puɓ';;;رܹs_|˅g%@@DYYYcccOObUTK,13Et:p:d8,aS(۷oojjjoo?|FFp`uŋ/vtt:ujƍ ehhhEE\pNϫ `]CIII-0,$$$ݻwWUU۷/%%qXIff{ C^p^ꫯjkk;::RRRΜ9Nc*ӦMH$}eeeGGGAAAZZvTjy:yo2D"8::26 .\(Jϟ?q}]Z__ʕ[n8>~xPXRRb4+W?~СCC+WܳgӧAe˖]|0LVT*zPO JYκuN>}ҥSNu&LHru}'.tR{wҥ7oEv 363EA^8qħ~+{Ǹn ;_Rج];v,zÇ˗C|r;;˗/vqqYv- ㊎~:㔝ڵk:W_FGGrȶmH y׷nZQQ.N?>==}޽J6oތH$?~<\(JPŊ߯ QYR}c[#.3Br6e?4&Ol^A!<[Jxܸq@@ P?+p@ P?|#)@ (3u@ HK.8p1@ FZ@ R]@<<yVbooʔJQ3P)g\_tJrРA[[[mllD"QEEEgg'K~m\#ӣT:;;̙믿aؔ)S̙D .\/Ht:P(|K_~$I .77z \;ڰaòe˒ IA9t}]yyMwwH$ZfR)'`ƍk׮4hav횯/{B{۹\nCCÖ-[N:\TUVV>|x7p[[֭[lW^ ۷/==}ԩK7֭[wl"3˓B? ncrJ nܸ( իWzCBgΜ/^RTT5kt /((p8`Ox#@ 5e\.=. E ?G<O.*@ RyzPT;yb@@CRHwqJrǎ2@yVVV***qqww'7U)QchX/01|穚`܌^e 󉧧'CD"̙3Ob3 ;.w„ FS5eT3fPB T?4 IfHW!# ^CF \p\'''T@  )@ @ T@J@ H )@ @ R*@J@ H  @ RA R*@J@ T @ RA )@ @ '.A( q$',B.JRݾ}9'D-P!Ry(={SSSqq1㠗(蛾0j Ə*ГHuuuGGGpp0kt+5R*T 88 0LuU*UUUڧL~Q(@ J$XZZ޽{Wxyy>`YYYWW1,AU^^.(rsssss, A{{{MMRr...@޽{ZV(zxx/FP+|||#ޖ A:88z (t"JB&$)J}}}OijT;ׯA$ㅅ?@ nr!!!"/66x ׵%8m4%7i$IYY^>}:(wD2}t d2Ygg9!TVV8;;GFFɍ3t:]yy9ˇ׮]0lȑ@|??P òsEEFFzyy999q\DbaaAQEQ@"%T]]MQG``@ kF(T~_xÇg {Ghz+㦺@{{{vBBBOzBO^z7xʊ5`%`e֖Ύ .g~~>>|8c{g|~h4$I2Vu^g얹^]0͙8V,X/ݲ2_gLg(rMMM aZ7l0^]81 sww7sSxcǢ?mmmzÃvvvvttذl'Iћoi 9 _kllloom,޴0 FC }T K s9~p<Ɋ9%)ɳ0lذgx{{MW'柇jiipEr8kkksCQL&cTgΜ $U!J ӧO3~p8$I"YdիWkkk FHF}k$K[1 ggcZ[[YYY* z}LLP(dؼq̕z J"H:⪪1cƘ#1RpƏ 7w!EQ!!! 8Bpƌ&;;;//oJx攊eooogga>}v===EjTR6\.w֬Y0X 2@,,,zzz1z$Ip^#X>ydQQ]/ `]=Y|>СC?~իW]ro< RƸYYXX0(pBDUUyvvÇܹs?F `mA A'ggga)MܯyCn fHxxxp863˗(8#̎8 ~|rBBZTTV# )@p~q<<<7.755$==4{Fˇ=]`` EQ֨R r~!HHUWWcUf!88_~C}۷Y!I0G@t:ݻw)r ܸqőK`8<삂wXYYM8>4 }WG([EFGGLj1`(J)3-cbb,͛7/55L8 ͛඄a VVV38/Zʕ+EEE$I:99͝;w߾} ?4N͔CJp $, @$ݾ}pYcƌ Od20m>9#GЖ> YtCBN>R IDAT[XXx֭tkkkRT*) ;x])qppq ͉A$-[5((h͒?FA R & !Y0 F%@頣@J@ H )ISrz!N >'1 pTA}JQAL56Q(FQ("#L@lE8sb6#'ԫ]\\=@JO=d3}"9zlװ͙/O8:0L />:u꣛Q{F.wtt`IQ.?1R ]%B Ry2 =9eq bߒtYH$2\"at83'^{ .YF RyD衂`LYp0Гzq5FQ}tXuyB3u9) 8Nc}{^ yl5a8}>s{:q͉'ZYY_SSSǏ/J ap_xA̜9nݺ˗Ν;sou:ocmms9_0aٳg1 2e' ]w\߽қiRiRDQXKbYyjMԈ[41R*@, E"1wW4F3sfΜ93gf ,++S솆UV9rD:ܼywLL?`ɥjΙ3'??USSA1cv0aR()CIp"<ߟp!Fe%--ðZ릦b;?~رG ޹s~09;;EEE&&&_~EDDķ~ iSSǏ/\L&sDdܸq&&&7?@AHRYCe,+==4i#G6mr,Y`8d˖-{챱gϟ???#o߾ӧO'ݏ?Z/߹s' ֭設Dd .ܼyG}ؘ _Gcƌ={;wN 'OOܾ?A 6Űzj:zjr5kRSS G dסJEZAQE6|n bX]\ȟ^kd2O///@F3g ~1x~Ey{ѵk`&6El6~Q__?qDpp0( 728z W\ m\]]A~dgʲfɓ'|>=sL@dɒ%jB HHH N?O>fGt @X0 ٣?^`&mڱз^(Hv)Wn;2}Ǐ?xhرǏ_lxUPPc2 u# O>ﲳ;::0  r5$'J]\\LMMoWC"M~H$BaZ|Ze:t֭xbHHȬY̙rp8b877700~_]]  ',Z(..l\xqkIBH-q6$ ;N޺%C02p1FZ'{zz/]tĉӧ߸qA0{xx#Fg111/7o/bllb!dNȲD" nHUH3~{ݴi㏹sRebb a|>_ 6<\$xk׾):  @(yHLs q"SQ.>@h^Qf~߯ ٳg/_o߾[#Ϯ]ǖ-[5O$J|IR33A4+ &&&D"qpp 0LGGV?+OOO==3gΈb;;;_F$@QA˱eP=}ume78Ǐ>*e˖!RYY 6| jii&1i0 #`,:w_^ly^EQx]L&Ϛ5 A@ H``௿ ,ͪ\bŵk׮_bŊ7E'rdl9 A]y4 *n_6.[lС .ܹsgAAAaaadd-,,6nOv]QQQTT Ȓ%K<,,׿USSSVVvZgϞɗfee8qLù\:u?sT*uttʪ/gϞ>[,?¢e'l͚5ȖǮ]MKKz'\\\t:XIR;;444ܺuv"nݺUV):  gwT\xh*E12o",//UWWoذ!<<\CQtӦMQQQgϲXooAD[[;>>tW_} уXGBBԩSwڵk.*k׮Tp8p)cbbRVVwk6nlٲԩS˖-|>_*"_ '`CigO>?~PPԗ/_9[[[|%KΝ;+500 6=I' 2??" 2 ooxC\(nyj]R EKKKu)b +|" fѡ#jP[Hӣ|5T: '`̙(ȿd(^:CJQNQ*ҫ8|TN 2JWG,yBTjIBteA*j$@{"B #0At7@8upQLT 5"DWOT(B1H0Chڨ1uE _GC j0[k<1D @RsUT _"N=)#*&H''@B  @T7 mr+P @(wkC: @P* @P* @P* @T @T * @P*?JJJ***Ӊ @(w\.ݓg?^QQv+YYYݻwϟ?\sȑb"QCCC(&%%c ˗/:T&~r/H$ " LLLL&E"ѥKF2eee-3ٙ4s?K @T^ GQڵkIII?sNfxk N?tٳxR4;;apkkkj)477(Bl V*5nܸVcccA\nFF y<~*ѡDWYY)ETVVvwwkii988gL&TDlmmehSA->0 +--xCV0gvMMM{{{g"ĤgԨQ577kjjjkk㇭ֆ>DSSSSSB=, Qp8:::L&jnnf0vvv4M>-x(a玲䝝RPhjnp qEѮ.E l᪪QFPNӇ &CX,666nkkkhhptt\hllppp@QTAgg'baGG777yA CCCe ώ/D" Ummml6bVUUh4GG7\&V*̘1#33իk֬A$!!EѰ0AVVօ $ ذa:;;###?3WWWqwwwdd-_֝;wnܸAP FAGGG 1UV p”.+JI$… />\^^p$Ihh VS'jQJbE>X`\.3 QQQzzz4mʕ@7$$$D'Ob1iҤYf r|||zz: ZZZ[lG)//3[XXl6ѣGwٸq#D"Çl6EQt2iO>`0vabbk.>\UUj-ڵk]]]&&&bPZLwMJJyUaaٳg1 cX===_|Œs߾}bd8qB(~ׯ_- )W|Μ9 Wvttgdd0LT}tDuV#0N߷o=|w666k׮E/^?Rippɓ͛*UWWw]vAUwoٲ,--=vخ]X,VBBB[[ǵk455% غu1J嵩PLfZ gRƍ3gCq<~8hdA9յ{nf:t={lذ!8842 {ΝFFF$&&^rEOOT ڵk'NA]vIIId2$;zǿ+j>ƍ2ʕ+s gϞ1bĊ+@7~+興8ܓH$.w`0U˺N777@yUUѣGw HccC/_.CǏb1B~~~@^'/(􌌌K6 d.rvvh'N4X\__J+..*BtuuBijj~:hĞ"((f_~=))`W7n000 ڊ^;w 2v666FJKKCjXXG} E1cpܾ>U0}th2e a wZZZ`̙jnHL>^f͚d2>|"@0犊 @ҥK9ΣG`V244LdTŋA LԄ HMMMMMͼy%,,(d@ +𳪪~Μ9` B$44$))I!S>yHHLr:"&LhmmmiiQ3Rnϝ;W: MF/~t^jhjBQe0ӦMۋbxH^cǢ(377D"y:u;łQ;BCCAH$=NWXYkHNNrƍdH$|/gX@#H;p{i\\DP(2V(000PCC޽{{h!!!/444$3 烝Y444P\{QBp8T*3Ñ,\__P~Tرիqqq/00p ԯ80藷;wbqwwwWWׂ ވ> 6+PSSjhh%JH$TıiB hiiɈNJSZ. !3qDgg?!6<{ O-~2hrr2Mgeeuuuyzz ''A & gwww /·Gzz:8Y|'bEcccakDCuttC&1 Ö+VRRRZZ OB'+ … %%%p̔ðd%T/**c";w}AߜPXeKJJ,qyQRxvWVVVVV:mmm(ϯ̙3ڥBpÆ pw622000P Ə_RRrÇ3i IDAT"&' 斒rڵl WWמWurʃnݺI"<\__?(( Y[[o޼Ņe 8**X,.**9GٵkmGGGEEٳ7T ##FFF<oݺu>_1B"X[[+R@PLLL$Bs0 hvvvl6; JD"&`8vtt2@pR vvv2L%P|ƍ笫 -Z(e5*C^@`eetRBbǏ`L0!44TB!BqppbXǏRf/lpȐ!b`ذaN|%KkaÆjzyyYZZr8p}uɒ%pakk K,SF'ߐGQD4 R.p@0E!LLL:CfU3ggg~2禮 >F5 6gϞ?o7nD"ss{W6440Lss~m 3>>~ʔ)WWWW\\܄ e'^p tn*(( EȤZDbii9}t!Ϝ9C)ʌ38!T4R]r^SS299yժUT*'&&FKWVV޽{oܸݽd赵-[L0 wwɓ'Ï\RWWQYu/cƌR.&CJǎ+++|Epp0Srx7꣢222<==CCCLs622233w}ww7xŋjiiߨ A~ Z>}~:|𔔔XJ,WTT?pذa* F򪭭ݿ?\CssEEETTa3f-**T%"""##=88JFGG?xH$ǎŋw[;VVVVVVRTGGD(//ggg>|EQF憇À"---ZZZڷo߾{惍s|cFDDdeeVYpS[[PRR믿¸ " P,P2RVV{ w=zɓEmmm'O>}z{{pH*[[[aAM>F٧T.{ѣG{yy?t3D"ߥ:D"=<<A溺:|EZZZ`0|?~vjj*|>Ϟ='OX6_INQe0݃r'#G"(<<788ݻVɓ'%V*Z[[kkk,X=xzzDiiiuuu`@BgeP((dIssD"Q⾾|a  |T惓SeRoP(d >DQ\B76mfffUUӧ544V\ikk+H0 |8ZGHҞAr333#;j&&&%𢢢DOOOh$O lOp_s| {}] ---EQP`v {,0|/R;sѣϟbt޽{_iJSOt|3C΀ꇻW惓Swww3F*T*}B ZZZT*ݿ'.m2/hsrrhebxĉc#F1,/\d䮮.CHOBtvvyUWWL~2~"5Y,^$L %`8y#-Z42444H$+凜S(WGŃng:Ssss CY$H uD"ygLJxOڵk~)@"F!aaOǧ@0,-- e}}_Rk<~i\\-;;;S9;;>zA///8e喗c/,<==R)<GG7_5+ s\X.DQoR^ [EN->J>H0oo5SaauXd2eT'''H-ޅϟ?Wݞyyy'M@#T^ &M:vXeeewwwaaaVV58;&ޒ{;wNucƌimmmmmśVMLLRSSSSS"##9ݻw捘e&Nɓ5&&0OOOTaaa~~RRҨQA{EoܸqڃãN'H/^hnn\OO/ %%%--|>oaaa"H+g̘!>ٙ Ӳl==G9sF}E{UXRTTtݺpA+5o}466BYo]5kիWO?C$x<|epl˖-В BPaW򫯾ݷo O?ݳgD"quu;vÇakמ8qɓRhѢEG|{ө_^V.]zyl ~2e <OL` 5oddjժKRww xOKa,޺u+d{CCý{233Q7n())Qnpz۷3{+S*/C a2t:]f ߰aCll~G}*7U[Z??nxc`` !!OX,RB*4H$O*/R"eAEyyy)*@*(h :2ЯX 䤤~|>,ªVR)WضjBwT$Q\. H׮]KOOl*XpԔ59sWW2̙3555Q?7X(Q qI!TedD"P2xdDADU]xfff133!p8xQbC$ Pq[[[CCبȔUZZ*e!DlmmZtA HjRa6*ZZZz/s\X:aMMM, mmm]]]|>ĩ uTQ ehii)Ǔ_'BEсfeBfwsssss3Sq\9433 oȎ.'5773LKY"Ĥ{ԨQ2}@__ʊ ǎp8FFF c i___DDĂ RRR\T*%HG^`/~~600$ b`` **UOOF\ Ǐ/]$Y,Vooƍ_ *#J,/Q`/_ںk.HիWkkk谰xɔJ۷o)((Rdnݺ͍0 T 0`hh bnȉ'd'OFɓ'111R鉈 sQ0a>Ǐ/^(HdJGQ~266Q̼tƍÒcǎ}g`T+**@`2֭gAg4iL-MMR)pj9~ѣ;wlܸQ&mmmL&ح&@>|f8sWxu2EFFN4i֬YgϞݹs'QUWW߿ƍ@3!!:77W$|z͚5 F޽{O:w߁ FRRҊ+Tܹs?0aEd2oӓJ?3> ~GDo>'Nسgɬ7nܜ9sDСCQQQ_5Hd2W\)OP(<{A~^~=M4?!nnn dlUUѣGw6?:29wĉwےǏ r۷YKe{ J徴}tzFFƒ%KA&Ljkk H&1̇n۶ =w\zzKKwss>L&377(> ZA= C@"XtaTx#HYYY6lK҄t;;;ggg߷o 6lQ'O~˳ƍNNN(;w+˗/"eLy娦_aq䩢h`u…ǏCu q =L&s\>sNHو#VX!/e8}i.pBxח€R488g䱡AYfD"-_\3vA***Z[[,X-]#.7n000c okk+**S3f($]*sΕ׭:d2M~ۋD"^ JLLćtrrrtttZZZg̙B¨Sn]]JSN`X`hllT4$$6ҥKd2 'u }}}e B X\TT陟>.//Gl`TUUWXXA|ԩʌ<3f̀FYfA|İǓUUUuuuś6$|UˑBVfddtٳgC1 IDATPLTwp-|ժUl6JGJRFTX,n]]]~~'O1|W. z|YYa=>'O~@Gðb?j455Ai3̄l. ȨQ͛f b02et:ZQQQaaaMMMͺ0SwwwLL ai4ܹsdpP1@$ O?Suu5,]f[_%N1 lvXXXOO(l6H$6j u5 #䍈C}}2q7Qwwwllϋ/TQee^↊_WWB}}}رcS<3)#SyI||D2LxNҒD"ԨIZ C&Us\E_:\8ȳ{ӦMvvv$ ajjjR-G*XNGkoo_:R6f(e?Kr2S𳷷`3777:~5$%%F)/^O߿MxW@p]^:FIގ𪹹dkWWWmJiii LILL@ ן}THMݗ`0lmm6mmmߌb2TPxA<ݻDJNN#++Rkhhى8^wb&U-|lkjjj{{IIIii/Wb /^߯R|奬J?:99rS(/^#:*'?~믿mnn*\h\ȑ#vmoo5kW]]}mmRPauFgϞ>}Z__eɒ% _1B"_ׯ p`mm矏9VWW[YYٳqCPLLL>|$sQ8Aqawqq~PPx~q``eˢɑ^RIII~iOq`5?8},?K,R@TApXL&>C bmm.n@@'.Z?⸸899O>k5*:l0edڂ駥%K;*f^fff˗/722222LMMWPy 0777'''>/J>chaT*U$ihh7nd^r>`ē'WwG㏙3ggcǎ)Tѣƀ1DaAAA`NW,)Ecc'OL"JN>>22>|P(?̙3B!H @DDį!** j94N>zjyϟ?FrwG5uݻG ?s7E"ѦMI& 2֯_|vZZZt Ś;wK#qTTTe˖bW:u Rx9777S\z@QtgϞk+d2NCQp\D"ARe?)tCB `,h: HTD<+**敍o>7)Z6\]]lvJJ 1 +wΝ3gN]]]FFF__ܹsdeeod2f̘A&Q_x<J˫6mСC=zvNO?xWWWߺuk޼y0*OLLӧOY?>}٩ BhӧOX HhwwwXAD\\\pLMMǍ7|pX_uٵsnܸQTTr !Μ9C)ʌ3ZDbii9}t|՚۷o755tYf1_)}JJJcc#`-M_XX8aXw2DuƍBm)44#33ɓ'}% /0Lhnn3{Z6j(eqOE+,,,Ν+[ A(FHtIs*(lȞg...rsIMM}˵={67ZEEŽ{ҥz oooy466lwwwb2ס$ù~zMMMMMaaaÇ'Lx٧N266xA@@DaXC xinnԩS1 ҲonnNMMWD"QxxxWWرcGQSSsM'''_~yD{nkkP( ===CJxxxMMKGG͛7@PSSS[[ j'Z8pŋcǎuuus玆|𒞞T<55(***:dhhhdduNjD"Pׇ O>=zy`` ɼ{nGGp xWVV6l0KKK/^trrrvv? pttJNNf2 #!!.#?~|yR SEELC>|x___vv6 "ӫz>aܺu֭[VVV]pBXXX́aXxxxmm<1 .**jkk8q"X*k PuuuQtuua_I 7|~DDD__ߘ1c[RR"'M ƍpɞB\_} xk%=EY,֚5kO++~A(^pO>o}}}wqҥ  ۷o[YYM2E&[&9eʔ*e_. >>>|-[:::̙" >ԴJׄ;voo︸+W*jZWW`/ׯ_ *((o߾É͛:--fZ 6l؞={=zojjׇP([p!xb\2uT4W__  ȸNLL_'$$,[pȐ!O>%={foo]]]0ѣ+|׷i& Ǎ{gϞU̩ӦM0a~~|T//ŋö=|0{]~wΝ`R"t|@Ǐs8 /*D E!/;uTiiP(Kѣw $AW ۷J=Z^^>D2@KK 1661޾TLMM1 A$++K",#''G}[ϜWWW|088(700طoUEQx ^gNZsqnw߽y把g?wݟ"7G/y?.'5++fuuc***vQ^^n7Lb:6mf(ܨx<ӧOZӧ[Qn{ɒ%G)//?zUHǣJ:+5;|Kvj59/^6-֮OBB!`G b$|YW^tݜ𛐫S]Vk_2V8_155si_ co}S=$x''_{e˖=#1ץK.]To}wocx غukyƱTƘ@iӦŘdv_W@oo7K=ޓ3233c}}}ywرG}^Z61G14Mgu @U12LB={>|xѢE;Fkɒ%%/Q{{YŋoO/_^YYi~o>"}sCΗ^zi۶muD8˗/g288_m[p4*++R;.\3=<%K>|~dsΟz꩔)/ k\rr֒>՛nmmmﯻ:ա1I'Hcǎ[Jiʵ+''go;y…G~T-✟:ui '?inn|7}5fRʟO>{SO={nι{<]:6<`wuu޽W^)//֭[=uuu?~bΜ9#Yuu[oаo~޺uÇ~펎7Bk7dMvڝ;wܹ}C# KKKC}{O?r73gاo__<'K,_|Νwnmmz'N"Mյgջ?Sdۜk566 "{G?:|SS /pa{O_BXs:OLdB E[}7m۶{ ]i X_ sssog7zGDޜ~=ܿ !V^/|M7?.|>k=?{馛kH)V#^{<PU*eeeָnGoǟԧ~_رC 'zZx:W_}_$΀ ߩGy$77OZq]UVB=''}Dƍ6Nٸq={BNyǟyRJ]7md=1K,?'~s{ꩧ^x4322>?.=g/s7|innv:a_-[ԉ#( /Wz'o0Z?ĉ .c544|ĶmWB&^ۯN|>ۺbppp<@0k|)))!L5Ƕma]cfcEno*SRRB& pCL~wu 1ݘ(1:c~ӓk 4vctFW/~qzt}Mɏy8't:֠`=1---u+P]s21IMM i kn{ :X^}s>تc87= &jVEGxϟDz0oMܸq὘bTWW׊zQ?kjj^Lg_ q_җ<&'xb+Bp kـP B*P@B*P@B*@B*:&>֬Y2檪*9;Ngވru2wuuXbnݻu] IDAT߰a}]G1;yݻ5Mc$ݗW+WD T>!D]]r---^7;;;''gⷪɓ]w] {oyܹ)_nBPʡo !B3gΜ:ujժUW%Thҥ! ! ǼB& DCk [ߗC=?o>}z֬Y!#O9s錸 D'@2jgΜimme͚5K-zBι… `YGDΟ?oFiii0u}Μ9/uA]g̘1sLTTT3Μ9#Xx}y]]iK,쫍3gmmmDT\\{OtROOclppܹsB~x/r"^kO5M+** Ӑ\ N@LԷ{wvܩi _4͇zh޽^Wuy]]]mmmAA 1;4رcg޺uu~:BJMM>[o]td˖-!\SSzII}'}:;;7|s``4Mˋ97]]];wRxwxK:tk֬*!{Z]]z\oDvBe쀮)))---nGGǗ/_^\\裏 /H)?OA}2:t+V,Y*&cNOSYY٢E4Mp{w…Z:w\NNέxwҥW^yj333ϟ?>iٲe#.TcǎsYrڵjٲe;n7cGmoo o!r8vz (rɤoYZZq;Ic*REz뭙.k֬Y֭#/.=====]J)t\隦ND#==> ܴiSyyyzz^`֭[GS[[kmݖVxsۻc6l}n͚5!\]]MD!Mmąʂ n̔w躮iqRJMRSSU53w\qikMMMD4}þ~{=q; Xz}IAAi>: 4MfM-**illTVO?nj5M _ɓ'222F\HDa1XhQ]]]]]ӧO3͛)1ol=ogYYYP\JEq.qf ɤӧs[ZZԯ/fT 222G0kjj htRB{p&pOp8:;;^Zr90qiPLekHM%իW\C=zѣ+W^OUUclѢE Bbe'O-++3gTSxeɒ%K,immmhhhjj:{l}}ҥKc\a4ycsJKKmhYŋΜ99?~ǹ N@L>q6}}}RJRPPNay饗.\q%5552D$YYY]]])eii՞Ӈ2X/<i4_~y޽dffΞ=[ӴhXSSreMMMjjjē+g߿11\o>=ʔiZS$[$7]߷o}(;;;++O:eu+BLa.\FCNhCeŋٳg9j^h6uttC.Afee|;v-ZHuL>\.[ZZ{9s*[Y~}EEoٳggeeB0uFٳoVrȪ*!h w0Ƒq\3fhoo'"9!۬ SgSP@ %]JC[osz~Ԝ={zasO~~+++Ō.]0;rȱc.]z=X ӧO` ;A!D#--RΙ3Ǿ0d՞nٲEieec|>߲e{vƶm6bWI_ KT:͛^ۯު}Y"dpp0--M}|Aub}՞~M"ޟ4Mu3g~[qn={vv0ږ<|w=}B׎Or2!l6EW4shR.5---:G9vV뜚z7ZrYɄ`4'Ou=$Q(U(o[%$3fĹpb9r-_o7 Tkj|>! 1B%SSSuM^4͙3g|͸ T릛n;|2$ ! TP TPkd=ŋ.]SҌ3*AJPQQ<֯_?cƌxuI*ׯ_yB*P@B*P@B*@B*@B@B@|:ecƱ0u TrCfѮIDRj#p5Vb ׸Hdi!PB`BDFn+|-Jo|I6(iSNřd T M0)=2mSr\?*jd2"1H?B]aG>֒k';@tZH$n<7\\8Ö)&Im(D\;$((eGMdË%##S\>\h*8хޮVJg9\r\=sp`Z[k4z\ꎜwu=''+4M0rٗ)6tP4]pBtuuc󺺺x?WW޵zGW466޽rUxM6YhjjzW=?lkֶqƥK%{=}4cRy6l.B]v>}zQs-l^ee#G n{%%%l/~a_277wժU _Uqq]weee!/pVByG"TZˆ=p8n_}]'tŽ'󅧜ms[U@ FoVnW_SwjcBw;|zכw8ۓņKv1]cK"& ;?x~3?X/o;-wj˕x L2$ zurnsVmp.]zc^;;Cu]׭T`p8<O~~0K.=C=== ,p8ϟ߱c?laٳg5M?9{Ν;raܹikk{w/_nGHa܎?[l3g0DaV.*P.߮wZ'WQO~s?=y7MF:^ipJќ{7. TJę;=_ۻђ}G[zG}Ͽu7Xʼn_(%Rt8˗////WKʞ~ .tvvĹ{S;cƌ 6~k֖ѡi'> 'OʈK.9sFӴz(%%E->}{キk׮4oQ%?~JAڵٳPa_{Wޭ $9v[q|wg`pⓒD.7@ϕ8ɆW ohpppw\ٌ+?9iii(ZdIIIUUiK.-Z {{{;-[fi>/?T100pŗA0:h|DAk2(H0[m5$I$o_Tw΁s~|"VK~F,ϓRDe8S2S.3_}D豿#v 7455 <3EEE ,g{Du}Æ j#55uÆ Ǐ7o… ssssv| _bXϻwv8G 缢1&hooW~ ivϬYΝPd#"`\K8suƅKζ4j7`4g?[s|ӛf߀aI=Q9RK5|c=Պxᇏ9rر斖{._|ݺuc^gWWW[[^{<Ԑ,_|ƌ/^200P[[{ĉ{oaas1A1MSzG. ~U}jkk{zzn{&O}SV=6oR^0P$\1܎ u{U͈^>Ws8?n}<1gñ~{z!O91 >ß'}Qι?w(vtp a466(l).4: $_aSOj<Do~p@0r2h4)>iSS%d]}mƠ}R%G ߧJ$ zz[ԏ[]Rqjjoo~^dddr;::?Cz#j\y~_=z4C4MEUqϞ=w?|4%֬YS:cJy0ڟ @4Ol߬O=7m#o}拂$'Ɖ˸vGu}Mݹj2+zQxni _ o{+2]_9mGW_lWձK?insgHhM%ݲd[LH'֭[|={噦yy)eFFFQQnwٷoߙ3g/\[n]Kۉ4vM\.$IJΧzj֬Y.YaID999eee| /P\\%ܲe*knڵ;xŋGFuW;00 ؼysY\j.0{N_4LsO,Vb_ϡLc)F|l?}]L3"?=/R22mCQ繯|㉗{HJMJl8„u|LJ1.t|ݗOR.Vl̙>Z[[p,\p͟??--.]jjjR痗DbF }}}jUYYYfͺBرc555ֵ ׮];c ˳>|yhӦMVA~Dž 8pk׮S#/c+V*0XCe…#m۶h//Q+8׻}vP03/OLQ@$A~1-o(pŵ+dL>Z 5I#V_? oNw}E$5o8FU>2*Tϯ8=vHa):f< Ws`s bY8pxDWye"Eykxbdz%qEFoГ$ѕŊ yҠѫH|- @2 :4bнX"tFҝ9ՈKx~6"1|KxFo 9A T TP TP TP T*P*RDFW2Tc8:PAQ0%ظGcc#Bp8b<`l]S3Ѷ1f9'"|0o}thXm۶/ y5D/>~U?sJb4'`p:NSL+DK "$*&@RBha !Qu +#&JxaYJꒈx^qBb7 Lk[sZj&7D'rWGO 66bxwňv jĴXքOC'GS LuE :G!9NT*Z|5aJyf+qNF̌@} ) 1fy[{<+dX ES0b+?y4P"1 s#= pXhc*18U<`͈WR:4dU* hR) .\= xvH@cX}B@˔x%QuLRB%Ƹz 8LrMUh=B1/2bfIDAT,qL%ڄ%'S^/ ^qQ1􃍭AG$vnj}ã0hSXF@V}-v_QͨPcNW*lj1r%Ʊ Qƈ6ר}>{ v)3G*XQ"^&ĉ1g*!-s[cw} Eck-ЁtQgH+ 1Tc+s{x;ǟ+ ~8yɻXBeč1Z"^b%skpѮ0y*8?UٺgT>-g|0Id BSռeygvxC%%&gVERT5yIR*1\&{$+TB6:pMHnLOG$ !gZ`~ `굟o T T TP TP T*P T*P B*P B*P@B*P@B*@B*@B@B@B@ T@ T T TP TP T*P T*P B*P B*P@B*P@B*@B*@B*@B@B@ T@ T T TP TP T*P T*P B*P B*P@B*P@B*PH!$Fa'Cȼ`I!T>lAr9Q$H -D1Ƅ*c3H1X3 PYBRJFR1fsaH24ngJABJ!HJ$R T@f0b2V.!Z $)D1NqF p4Of;'-=/3[c$`H]ŀA$^xHFLTB4ml!L"FICCIArWAljrj03kZVl1.V T&&I)Ip~+hs X RFj2 R0yu@D_QPζ6K6ɨW* !2HTqkI"ZC)],$O55ko%ṂPH'| y-liaP/4$id02$IF'η U^8zrB"H\hhR^*1Mcj*ALB DyS bd'/6,QW'C\P!?I""2H4vjBjBHKm^IrmPʪg׈(Q+(D&L)'>0϶4 `1$Y4( 6i Y$R3W*cm772('Iiַ6 iZg#T&FBH:Qo֌,&X6S`"n!Ź⚕( eċ./$%)ݥ-Ѵʾ}4d_+y Jqg$B`ԕIBW`Sa8g4M\1+Q犦N5rݝD B`t"Iv} 8^iLmBvӸoۅ;?5͔ma~dFa]Gqc%չlD02>S߂KJpsMZkeaK!wPRӼA"q"ȡ[GU(9ʺw VQ;b0 1SށD6L)!+ d̐? c\UPE)},Qb }+k-R:pSd*RJ"9k,)ceX$_T& Q1 .q9N4G n1_SFcAӐyS.ɄT+ #8t_!`8?4qW0 A9<>?a] K)fF90LSJ\!*ZEH!$5V !Iqدo {RHp24VcLDq.:tM#PHILJ$L Yc#z%OpplsC$tAT0,[F1J\sg4:ם&fdĈH2F㞇<7Ƙ5bJ 1PHrN,_KZy,HB( ə% ͤs7l (Τ^J~ $#bÁm/E8 yR $%dHrm%!Z6+6 ۾RCbㄮz.I+'\%Q4Ҝ.hVPWYJF ܱLޑHI K$FB #1Ɇ"LK+I2Ffj8׃_#T'6Ԓ4/Kws BR?WDYzY^8 # YLIa?xNCKeJ)vuܤ $dp̡%qzhIzUsu: K~zh4ƘdCCGcPUJLJɉMe $H *|O3Lk֎RHt{EH 5:lF/Śglp,Y_EFQVЌ(Ag T""|hcI]PHilkt$xsvV>2KUO] g$E6$Jei`6B,(^yy@(yK$6 Y^+_23f"*Ih/@ιAoJ-+{bwIRr,b3&)9ynM璅 daVFkyT‹ך04əřYӳ.uu4tH݇ A|"3&LVq9? #]9-⤯1d B`1fW{BB0Yٹޖ~M )F'&U/q&Ksdr:8HsB`Ab "sΥ+L5yiyA);z:{]7 kP%jRF0#%͓IrIHFPP±b0ѹLR%0$rddfd`@?   CB!9ܥ;;5tR2n5`ä$1%@IlPHntM<RDx V~exTDO@ YP%KH؄%tKxq{LNxG\\  Dshe|xGR\+¢5c0WK H DgLļ*{q=ՇGN9c=0B4tk &q`"p+;އL !!J8A\hx8s_&4 -L|D֨#^& *_(ZP T0hru .BBTbeF*@B@B@ T@ T T9S^)%ԠLiBGpi8a)h4~MӤD4^zܹ999#~gΜ9zi8z1ctΜ9DΟ?_WWC(a,X`)))^_aEc=0h~~83^yJx3?'Nu|-q6m͛=u^?JηիWD94 Cjժcǎ!y3fBzE4%0MS fϞsN !6m4sLS6'''Ύ\@@͝;W%ʞ={jjjiݖ.]a!ļy*++0$q, =zAudffXv !Mv=l߾08cׯ_taa|6lPB׽`0'\.W<Ϫڼys WoΖR^YYyA.! Uyi*T~?]wwᆱr0~xݺu B}}/((PQZZڴiӈsЀcxEy]]SO=U__p8T,Zӟ p7o[~rJɛ(sQj|>_kk9!ҥK===555H1vܹuE !{饥[lQ'Ν;wL}T`[[ѣGnwaa@vvU (..BhvAI&]:TVZj*u=8?+94Zv[QQ u?umwjŋ? 7P\\FV#r~򓟨~H@^xq֬YcڌJ{{]PDު<=9$Y((s\׼kZ׸b#9kF AA$! LαS{n:I&&L0aġ3 &Lb„ &LR1a„ &0a„ &0a„ TL0a„I*&L0a$&L0a$&L0a &L0Iń &L0Iń &Lb„ &LR1a„ &0a„ &0a„ TL0a„I*&L0a„I*&L0a$&L0a &L0Iń &L0Iń &Lr % ǑHk>Z)%"hƉ7UY\4jjM )[AM}}sdĄr%IPɀԁE YPxmܼu_Dx@D͕tEZL4'@B644dwӿˑ/)[TtEi8BxyNvjѠc5| g|8Bi,aTMc<8RH,Y8 *]x=4$F3›"z-kVłhhKrpwͅO;dzt寏ByMUxYo:uImǞϾ1kE#"Nxxfvsvo.eƙ#sH{ҢN5ѥKOzɣ~K>9-CVp^x獅˖38sN?Ce`< rz4^6tְ1B2ո۲U~!7l䋏>`S/jANUq+hϳp_y'eߺ[ .)}u/vkLaeEH: X\Yjݺ̴ԁD^bպ;_}ߝs~3־Fݵ\0;=YVi3.z=D5ǟ|5W:h?G _}ތUGh4+ ڌ{"I 7]yy_S[Ozūpq\r.%\`_qݍ]pۯa-YmBhICѹ[.]#gN?LR90w>3,U :'gIe`UԵ9\NKH;y'x3 '~+_ؿg/xQ w~ƿuRltŗ>z7]|S4qW t}Ҹبuٷ_6fRK=ɻix"t? •m ״3 /ӽ~c1e劵7]'gu[3{ I?N'{>mtK y$ÆwIN[nƎy EmMLsHtL=v;Ͼxr`>zayW\q]SRZ 9~w~➿2y1yKڗRB "~ڞzs'FY!5hAz/:l2<3|7<}^M6"Q&i#t䋯t4%{^|e_sʉU9CZzkoIFxlٴtK=r\p&%8]{8>g-t)<+?"[yi6QXMR9V \r9$YW_6oѢn="z/f_8z9Svw?'dxPW]Ӱeg5uw,Wo!IU5噷^{Ov'{)`z;.-u>#H ؖm'b=pӪj/wDFp8bFP"!"F N뀱1Xxr8{&O*..V56풒ʿ>GTE %r?gD8#݌`&>be6m\aM||-[sܮۮƿqۍ7?yk%$M#e2`>+jlL ĦʸPjR}vroH#C?Szr&5GƱظ7{i̸zx?D6ѹѭ?(Fiw>]<ZOV:\w^w}<9/_N ;N^v&2\Ǟ/#2UH4qpC[q5tsGTS _xֹ9KWrƹ *˞ |\@ zΚ4}afiU|d?O'M9 _ L8͹Ddsݍp+֮-(.@ڿE@'O:꼞~)|p kjJqϿfo-Zb\QT^nnm"pvơXm 5xrP"Dƕ%ΠKmeIw>?"iC-7&vFUu,Z~~}++_wUqYze]y^v ,‚x7x/z$Ц_7ߞեDjj:|ķ+?0&#\#/_w?u iW-y@={{WZ<`ĐS Oa‚={ 23:euT4Dn@UhN8krjj)mݽ{[mwo۳{۞]vmݹ0fL9=>|/a#~D@m}=cR`[naIu# K.Xe#&&_Of`!yb9_yFlڵE}rk6o욙I[vlW-q;w@J\fv:۷WښŅvE"¹{?ꋹ?|Y/uED|-rIca" #c*gm>/; ?w`Q8$9֧Wܵ}_yʕFYd xD'^ɧpf9}ѳ{:~Ԩ/8aF:#>٭v;anvȣ,=}3uϺ[IR?0oғGn. e7]gPVϳ>ry7qԳ@UWeAo"$g<kc-/dIbRHÉUC~[n#ߞh ۲쉧\sEK/0vlAE9xgح0f(.Ant!`(Qj #Ֆ]A Koixޘ Ym]=$$I)+***v;*E&UeU;vy}\nQǣ$@_RJ5u 8!16ҒS@Aۗ_oYxˢzf%G蘺s;_|/f{qj8,IuvUuugݐh(a*PW?ZQ@ȁ@Xo}&0S?jʵkTU@F- K/8/`՚5:TiҪJ ݱ(cDN!yH 1LĚ p:;v\׀I?4%ꪋn~73SR{ŧ|(@r˯y<@ڵ(ܻͣ&1U7cظ8@`ٽ??{6Y!ByFY7U ,P\'rd_m]nݺM|ZZR)gWN n' B9q.bC$Ѡ}?{ $t )=_ޟm2\p탯/ZՌ }ΟaΙUw_7GCDK5_f=]tӵ+NMo$L~uޠȡO>Kr}QC+vC/̬p#E}GfkU]u%SY^ 5QD5"rZE_{fcv,_c_s%0K HR(w>d\Un|UQ\%˜ ^s3% IHI:=t) n׫gK/*\ٵw3e?RƊ򪨩✻]1Dt,l]h ݯ?cv̋/7z䗯ί(vuk6H.("`^A/<Oi͛αk:̳fyqK7|#U"륈[@885@ [.r_v=p˯Ҵĥkx-j9ؽ7jUTaTNE?73_J`XjH)})srh ͏>q9좛Ţ.[ʖEU-c;I-V""9%s^k%UOݷ}zꜙNy潅ŧpٲظ; uUUU})F/uLDn9iĨ^h{"Ÿ2`{N#[Ӟ%-ZSz5׵K qs--1J$6zw?CEiiQQ(`7dBkHMiN o3a>ɗhݬۯV_i6f%uFI7_~eN]FqW~8qh!M.n1B$f/`ѵSc^~pl#@eUqJ3pSHIX(`숖XU]mrBfV#bi,`ı+,-Fؘ2AmUS_q:XtHXYe86갔JO. =R ƞtz?'ϸҒj (}[ Y/i$z_oxɕH@/R AQUgHF;ֈ~;$9\']~T@q3N>YdaAN=+Y6 o?bFJ..j(c;r[;y޶ʈ7XIN ?ʪ8SAWo 5EdN,G?| CT4EvEX F&nw={ΧM5޻Gnsld*"$y1l)5TLR {kŢG!LQf֝;_*ӿ*WTͼIɏҳo~wk^yZ8=>?`ZdF&=XTOZa=ٹK;vμK* kk "0}Ӛ_y8ç2_{F '#؂$wzvƭ3,gb%eՕ u1aKƹb9ӬA9͟x9Ǎ:f H~6ZTeҥe%9[-\ٓ/(惏RjT7CA"@>&kNz=uٖc-ny5PʸGq[|ٗ_aĐ;mۀaї(Fia? cPVM H2eS e?.虞1w9]krkOԐiX𳹋>kSIES{8?z]R|յFB>PQE ?վ?+绥<oE|jX5>\}ce$_{ŧoacA ”7?jj~]Ta-xԍU^umvEQAqm߫ԅoN"B~s0!q1~ȑd$&k֬۷p>Y=jk~\6)S ~ua{@x))u?eL㴶?/[>/. H!92;?962 q 'EG>xI=-Zp׀jaj5^2i Ic i+DnZ+6Q ~'2q7wW2SR^_rb"7來QJr=8cTǏ8~#ϼ?g>ca}k.zj0j>0z-lʐ q~]^·n8^wUSGi\#/]5m W}uY~ IDAT55۷\g|ccK~w,X`i=$9@V; ؘ ⌥{z<OB򉄄IBmm-1T$퟿ĩSI ݵk?j-/k.t\Q,ZR^O <ͣP-s[4A$6xa#36O?!ubQ4U2 ٽclkjw>{igO:- l# :dSޮ?]4ߊ pŊ^ܣOƸ뽞\ 0fW8"--;z♠3awawEYEjټh+`~W4mȀA
      5g}oժH` ?iS&|)JMN),*bw_fk"V1 3tÇS9$BqEŃO<^Y[7oޤ(- "JIYznS8$YU[H!nᦢ:*IyI]USMD '?石;{wٿoKb O3_}R#(BFr"w^{ɥ /rc.n$Hs-C4jY>>ܳ:HJUټeOC6d_7};lf\DHIfG*k.5}DunXζ@*)DD}{e$$;]¢#H ?N92SK~Xӯr IUԧ^{esɃ 3ep Ͽr6?s}{f'^xU7 B$#. W._VUl/~o&I\Ua0Ey𹧀&ժUهL`LUWoٰ{W8U ̧5lU=3"@'7zYݢRpxیbܨKF3>=O@^Q&GC}Ef9v|' v[_~o!ðYm(fO=9n?s?jea ~Ylw8:es_nOKHzOdԶ ~USt[=&a& zzRr;.:aȌT=='u/{=Pߎ']Z<^1Haoٯ+ƌl_j##3{ʕU׵ksOV>{hQe?Di-c>/x恇o]D566_~R9Wn #(*O/ yk, ՞T:WY諈ͧ!B •0x,rUThugUI(ƌ`3ͽ S9Sy*is+AhyN )X BN ~oe/+WڻӲ|$cyp1 -kBx= mkO%2~䬵RaU c]{(˯>?%$= /;vȣcG߽K׷?z)m/"LYo/9dRZ-^råWXT-jǁom}<߆ _5\wSx QQWKDsyW,VM<D|o u@d"n߳?u$|ݷokl N84Ԏ:oü E34mӺuuζ|myg#rAHw o\9X fLmow~>= ugF&"H@0Η{v]''#Q2ܓWVY1_Օ.uquWNf%)i}zf8:7zo՚5GrOO}tC%UeT:n+ lĴ5<6I^< ^wdw7A*Xjɸ!y->g׏ԎGWpjܺFfJ~4 l?H+8REk(h6 @ ~\^ă/foOi:P*N 8YB@7>= }+tq{P JEf!6 j*9"{JL,q8%o:0A6,Ex/TIΣ9E0ff/Z\͞Gz[ttQhT+q%"os)BmpSƓ-(AV*%lKio~+Y\Dh3Ej4~@ӛriaY[A뼕#(+pM6W3k's1ޮc~u,Q,rC۷|)%\zb„ &LR1a„ &0a„ TL0a„ TL0a„I*&L0a$&L0a &L0a &L0Iń &Lb„ &Lb„ &LR1a„ &0a„ TL0a„ TL0a„I*&L0a$&L0a$&L0a &L0Iń &Lb„ &Lb„ &LRiaA&Mv 1X{s&Lb C dȴcYZ+=_b= &C&˜ 9Gy{"2"BHi.C0n!U!cuS+ZʱiS :=3bGێ-P& Mf.F+~ٰS9ϚJ԰:Tul:89kOtiF= iԘX\^ ȏe :2[*D:(2g OM%!@( ?v0IIR" 0X9&(B %#fAqUDE۽E +vEʮH6\dU4ιF$SQ߶m*:FX + Ì.II;w# ~uk':S55#?7#Ju83sRҀYp+/] QSR$!1i_֢|8tw JA!DiiqNGF [^m^(ŒM+) ql}k|N+FŠe}\;^j2A^ L="r9BՑrT8`lܭEpN3NcH+L9Y%qZ% 551OW$II[ 0͘JuHw 6'$uAnS^)铆 w[-R DWCj1 0hb6=]/aD( )1 $"|xj-D  B]֑ b{$HNMjkcPx(Z }^B()!)Hpu|q6&Lq%|DMcR&$!K$8\($0{w(.,FdHw-y"x[*sE\bǴir{H<;uAK -Z;ǣh0YǦuJLЩ{N]3ⓀGX0-v`1A󔐐{I:gHSQń#StRFonqŕĐy!Fl{j\<B05@RTA9 ۥ]fb"pRQ;;oA p]g(9! bnqᶢ| `cD!lBlGvzG4G5;x(j|_̝=";J ") Xބ˴BLsV At)%kE-F螒nwbC|9yNI)VM+,z _yAxKȑ JHpƀLܸg!<:߲/oHOG@=7d H0AB SF@EQ\v;Bу-xӡ21M"е{L$(\iCT,׊x|v8tHCrJrQ ++]+7I 8"JDVQWG*_=w'葚6[O*(*+=32a`^*vOUEӡs`nDVǮeuu0d&鄾1(` 2bMM@ BæNRc@NHVa˾= lLgA46IpYm]2H\gs ] %)5u^4hdd;WHҚPG.F=97IiQi5uu>/3,-!蕝 ADD)031EJY^[h#35yŠjꢠR!bݧOzgR\Yt[*<+/\EI2Sc),/H 3CV (96sERjPȫ %؄ҥi237 u!sd3 PPi.o@u8wZw*w1c+Irf\< wT*HόXQaٽ]\`Ι,* }^?hsȍWU Ņ5zfet{*\B$5 E/+-Bn)N9q%VHH;jE"䬠\a55#b7# F_3T~ItMNKtAYMRd@BW^ŒI7տIc2䎂:aJ@!YV0Ơ tJJ͈G]˪+1u}XvoW.A;KR ۽ReJVFfflٷse oJ:G(DAD V#B8iA?p$"HNbr[#9R1BBƖl\7 +()b#[d*SZ\XQM47:Z~ڥ!-++) zoڻ QQۺ+u@.ڳ7&$[$qe߾yL30VX)o@"Tx<¨М1dzICGq)8ae%tѿ[wTU.߲[^rҠ!1U꒜[Z BvO@ @Q\vv w;0ጜͳψc~U JK4>WYF qv)po!WV2)g8P,]wD?V71ee倐 31)" 6ޯs8nڛ`2$}% s 3w@;t{JsK!׭q,-6坉#Cl"*P 5. @b;d9O%,)<"ꕹRaD\@ZL쨞O22 "Aڈ; sB@mq%2|b@HRFp4+ZqMoxW]N#]*y;6*]'WrDΰR(Ɣԗ$ K.JO$"X1iNpbDD$2!ƭ1ֽAa@H*y,9BND]SRIHWVT[껌=RvIN#iUAG5*$Npm108 Hvݱ@Kq9Eeٖ[imaeuMtPnZa0p ~#݋"ӣ쐖%;d$y;6#%Srr.@[8E4]lK1g L"Zmj> **jjjR}uHJDmHCVp( Fp?#4 TWuO06΁@ %3d.lV_:OG`{uI81ҘĢꪬ $IM$%d⊲TW X$ [ :O \0Gᾠ+;u]N:jOiQyMuIMUu}a^lVLkh12o(q*$%u;w k"r:dB<(s~蜔#-I!{-/J&ʈP H߶mӷ[R]4w,"}K wȐSHU#(‡bj1oI!VnX*ʁ`zfM堈$)J@H 88J$UU5LvEDR8Eި")HM0lvԕqij˾pΔb&eEG% l$ۦj%U-rPTͺ$!ARA@_ 3 \߿RdH6DJ}ޚWQҡǥwH] iP@Եǀ.IPV[3&ٙ]Aen #_ C+L_)1ũjA˝@C=%ݰ"c0.V.͒hZu(HꑚOFT; ѩ_;uIt9 W!!0yG_L=i0u?b&)5=:{GAF+WGkEHqF~0+kwD{F*jKqsz9n[PoTub,6DHt* ?gM J;3:s@nI@c-)m{+>+=IZ(ie T{v2 ?OOHB)c-lΜv;Vo& HuO;K"꒔jW5(5t8#H)%Mc̪)ءٽUVfT;' f&vMKrdJs:e59%c r;0ks ]} [x7ZR;1YAچ+WQ4dQxjl^}T@hsC)qHwaRU-3S^`aY. F&>FQ1$B(( *"ui[^gv:3;pc)sʲcC'gЁD--9{-JS" Z,-Vk'aðn+6,V1l4iĨP2GKD"r|D`# a.[IGdp3UV7n~!MzN-M2jt^FC{[*9hht].œegd0$.4,6(\@ZMq] =cd2_ɣƍnecδ1#BXtuUF9# +KaAxz_edBvFбCdQYbqK #˲(3G fd20,Yr˄HsXz1&,<.8h*wI9@}bлveZanA0":!ox6PaΎBXSy2xDְlf|ð,TiXFi`eg[sMaaDS#"cLdY{`aHe j*#C LLA%D$,sU\I\Ԣm?{1^+6$kF&21ۺM]& x.Q(b0u ,Kx찟*/V]j^`3M-Q,angMs3a" iϳ:t'c:~ t؛ۃ zZ"1,i>POoS.!in&2 Wc, 6;΍Ű\MsL䐠@2,7[ڻTBL˝yu3U'ʑ(0XeC1۬NKy$].Y.sCyiqK?p:xN"3) +dޠ=(#ku\`Zݢ1LDA1 :[r[$z-ҡel'Z:Z;CDu<d0Ȅ1[nIP7Fï$IAFad0$˒j j$I6l~D#g/1 {Fzˀ$goX(EI$!2,+bɤh].j97#I8mȳS:~Y6h"tZmI`F}x?Eebd:# 68[rwYDQ65mMF8\_<940Hknw{976[Rhm(YfF PIYXByib10@2;f9 k=@ :_whI3nR!2:ɰĪ,^iڻ2@OBQb9Z[O<kT8K g~x,DBG/j;y $@eUTw& gt W'LzBgD8ܮfU52:BIȁ΂.e}pPJ9屧T`G%?qVZ?6yjS."նvuy\&G)7w0T =λ5 \q l%?{KakQP̫ gUD3uLSS!2-Dշ<0z0?ZD%|oT0UUKJ5nk]}ׯd`XeF&l^J|?*\7?ZNTU2EKx4<܀wG~nQ>OOW<iq:7?jBs% 0/R7g:`ם*֝Fe~\ cp3%3M*}էlP@B*@B*@B*Pag0J9 V&Ȫʑ202 ! Q4TΆ Ca@S,r0 OgYtD *0 *P B*P B*P@B*P@B*@B*@Bb@cg|{{bh4,;,I( #AdY8n(V ,v[yw \뮻N$\*BppG0˲_~eMMܹsG 0:;;Ǎorm<REpuO?=(((33S$V;D @gGOpܪ$Z*66Eq4]kiGK'ɓ,ldYrV!˲xE3*,lvuv` y~r;_RfrmD!B&M3QO3 o߾O0e \jjjVkLL.)44455ZMMMuuuTTTzzω3 0LGGG}}}ss̙37*(wuu褤$Y"Z]]]ax|瓓Ak "t: 6KӧY5lʶ6Ft:kjjz0LUUUccj,zϫouGl|㸖~y^I+JtUAZZZ1""Rrn)111 s7|sHHN^UUE[ >˲111QFGGKF}+R}>^\\lG8۾}{uuV5j˲555555wq:W:;;?裀#GbͦP),, EtZJȘ]ZZzر3gtM=4Outt]~hhhgg3g֯_7֭[-r.d2)֭#[֪={tuuM8m e hy(I5~ TTTю}:}}֬Y~ss3gbccoܸA;~;w;YЊ 7'˲+ٻwoaaȑ#'OLlK+&L@аqCeee) .2fsk4^pӾeUQQh HJJJLLt _VWFy&lM@),Xd2>n{ĉTVT%IR>3HAW~FeA222!EEEJĖB}VhM{:)AfΜ044tܹ aaa6O^^!dף'L@aȲ̲lzz:!DiO󖗗vGME1===$$I ʶFNiޥDfLLرc:;;QńSN)8$mܸq۶m۶m۲e ?MMMf9##c6P-@˽#ȣ*J^t\ÇWVV*5L%22-hn_{S/:,ʢ'h=7$Ia~:)zc i;~3gΨ/b)[>ꅉhjjڿܹsyEQYf).gΜZJyB(?`uu$%%%t: 99\: ʔԤhh3cbb6nܨRSSSSS{=n{:u2~xn#GΜ9 ^ |.BɄ([n]IIIIIIlll||ȑ#y*Bvvvyڗy+p477 ?\h.hE1##(552jԨ8sܪ*ZBLre FcttGK`ss3:l4Y-//KiNmn3 ŏԩSGXphDIMwW%&&*󴄡XZ y,pZF_WVV,KvTcCBB͛b)--=|Ch/>m:>eeoNkiV1 c6{t:.]~eY?~, ]zwߍ,FxبZƌP3fo`dYv޽zO{e~t1 r񆆆 * q)))6ihh׫n^7n… !} ,KoOxr d%@)e)%%eڴiؽ{z QQQ3gɕ< ,Yd555r4nܸSNa|exumݺ~-ZϓZ233=d2%oᆵkVVV*C(jR eMJHHHLLL_9T}@5蠁AqNtX x\Sm#rDDDBBǥ e㣢hc,iiiZ%Zm||2Zzʲ,egg/BGPČ3y7mڴSottFnXXX|||@@l>|pVVVBBϕǏ8. ,,,++몫 8d2ѱ'CCC'8cǎ OOO_p!e ݒ4ͨQ\.WPPPbb"ߞ &| IDATjZAD(%%%,O2şv$J~`&Oe땬 MII_iqܡCN$);;{ʈ^}z} ߿???[ouX!e~j)W]U4. ]]]ʺtΜӀK(: |V:22d2=?Ԥ,3gΜ={?==2~Uo?Nu#FVWWݥbfv6mG F:o" g Yf]j` IeYz49׈4zDEEva < HXȲl=*CBB.[計#555,, KP59`F1))Ir{˲M566^~{ɣUӮfq\Dp q.k0@DmVSS<<}'Nh4_~^sԩSz(OJJJNN52v:`[0LEEE]]ݜ9sh%>rv:T<xβbioop=tH14O&˕EJhӏ?|J»Lo>EeY-`4YNH|cxZ}1nmeOLLsex߲wAfR*|e{>O!!!&LP?|t:KJJRRRNhLMMU1 c6kkkm6q!!!,˞>}Z㚛-KRRdoiir\%%%Neټ'0 ƍ6LEEEf988XL}8Qkjjn|bbLLLEQibR*" (O!9vXyyĉv{{{{jjjLL,$Ս9\.:e*Sv:]vS\\\QQNÏSVV֧Okm:;;9'NdA z잞SZv(&V\X-..%fPPPHe>hYeMMM,'''+V onnNOODQkootHG$^gYn<!$ !!.Oxx8. n7!!!938i h2228PWWOtWPVl זh-JD/ݳ,Z]]w@=? X=Fri322[F$CydЙfJr)U>$t:*0@۠rN'.c„ A5Bbj{Xf%)Yh4 t Ǐ/,,>}:H/ү!R~Z]]]UUUv]ybuwuKT Tq˔߿8 :,*#,,E}龡~hMwu{oOP5P6 Œq\\\\_'cbbkkkNj=y #Fe.FժR:kgٜNguuuSSSZZ(2ӧ;::h6j,666ZV0e9--M'Ntuu9H]'3!!|t:[[[4R\KjmY4iRiii~~>-Ǝ} [udYA45rHFS]]]^^N ?~UJJJEEѣGnjCS-(zաUZZKj#G}F]VVGgff:ub'⚚Zi|i3,f„ %%%ǏĤ)kJ8\kF3~'OҰHOOG={/JDG)G* 8N 9ץ^ihQ݈,*PI[;\0`9ײ^}kGہc}y% yVdwkj*~捲&>8o^|΁t?x6LK?םN'{\.GY/R!TzEeA(?xq[>g*}  ~ gWiJ0L.gaӧz-̇y*]`Ged|V0 ǀB}3X#_@Y~}>eϠ}QzhH߇J^?L4fz(TCpP0<, Jɐf_sd]g\Vw@k*~&r`P|)zԧ'ê5%~?R"Z.ߒ$]ay*~ "`8J?nH毾.*(3Zpf#C) wg~<ׯP^0$?2qJovpg W~DQ`P4 \L>w|-%ƺVOoK>5.x$~ء^o+Uӊgx\﮸O ^5ikf >@{pQJb5w`xNܻ(O?ݲeu:7|^;w~+OeHB <3 #,<?~?1bĦMBCC/gᩧBIM O  }\'j&{'KW]u,gΜ6mZggpr-_pXg}vSOEFFT rK[[0ʅ]Sill\|hLNN޳go_d,wqƍ/}bŊ+V 2LCWt@lj®ZJzzHWTTozhtYP\5anwzz\+Vرco~&ANaA;Ʋllll\\}ѣtaa_|hѢѣGx,^2eܹs{p{{Ν;KJJ!III .9IHH(//߰aCgg]wݕL)((l:nܸqW \. EQ^d tVQ^^cǎ&pW̜9=r A!tʍGe999922ckǎ!""b޼yNe٦&BqǏEeى'z/277WȜWk.zW<|nj299ޕJȧ{キ(ʟ$3aVP4@ڵkm6[~~~xxnwnn.˲III˗[]]]fV5>>h4>Ï>(}?񏮮_ǏtvY>cGWjmmU\.V}Wn~zjqzV뭷~```PPЃ>HyL& oE!7p333K+AAAwy#x a,hAo.^{y:::`0Cr}ᇓ'Oa̚56Oѹ ;StRc_z%a覓ep=>ٝݻw/[L't:- ⊌ Ͷw^Y=hѢ]v?|ɥK.Y$44m͒$=(?W~ѢEEEEcƌ6mǎw=k֬c6o\[[˲Fh4(*+4zmٲ>00pѢEzϞ=wu= MMM3gEQ.^8..u֭Nsҥ|ȑ##͛0a06my>==}̘1$*qF"""*^_YYsΚٳgڵz' n㸂 AnFYM&c=b̙wVB9$f̘Q[[;dټcpСk?8|nꫯtWN:BrCVcW?j0|qWfee>|xʔ)O?^;[eYټuVy>~~C=邂>TbL>]{L*ovAA(=>ﮭ_4~wyG]Ru޼y~JuuzI:QM&Ӯ]6_|qʔ),w}!t,X㏫?iӦ#UF/"?V 3t#G{BH||oi6y^=p[c[NeFEz9+-[+ G#˲֭{w%>;LIIy'e: z_B墢6%<9s3f8}tqqqVV}vr[oj$577{R}]yyx-nFm6Ez(333;;gFoٲѣ--- xT_iӦedd,{)xǺ0޳E1))XeYvٲeǏ|,]t:ەFe] pH.Zh߾}7ިUO>$## ߉x޼y |aaW_MOrJ~dddddd@@}믿jNӻ!/?}tYYGNz^O/8k=!+BJKK1wޭv{NN"~'OgVk}(!$''agh"{ݻWպ\ &ܕEEErkR}2~_~9??ǎW_}njO<ϻXUDQdEywIOOgfݺuӧOȸ6l]B~›e- ]?Ж͎yS6رcAygMMM xB%HNNE8.FwdAP|7nܛoya?yw Z6X,ENs>`ڴi$uvv~?pjjK/:S~06.K=7Pq8=heeY>&l=|vBQB墕knV駟,V+0$y5o޼իW766n۶Yrh'?&Z@z{;v_=TZZZ8$A,YeYtuu,+IRρa0!(Sr:tP|||RR:GA6}tŲlUUP,Cqq1ow8q?~СnaiEeQ!/uD%hGzүIp8~ Q8~xfQPP@wq|||KIIeVLQB傔vyWhbE;igK7<+OWO IDAT7oLo?;v,}>_{ ˗/c{_{,&z L:eٕ+WORowꫯrgW_}EsE*t:NsܹS~nYf͙3'''KDxr͝;D^`Y#x>#SN-]`0l~E+].ף>cǎڕ܅=WTT޽{577ۯ:˲^gY6%%eӦM㩧ӟdXϟo0dY>rݷzڵk׬Yn6tNM.\u3 3rȶzhZW\4y^:x`ZZZjj*%h4??,Ye˖nMѨz|INNNUU3==]t:Qk9^s5ׯ///y~ ! 3gUTTСVZ]s5<`x~ۭwPbƌaaat0 AƌO>鍍fY9g} *]/!!!C(F7zѹϗ$r>}Q.lϞ=CH=ëVJMMeL匌7Pl6[,l6B;t),K[[ۜ9s?m4e65j3gΡC舼|@YKKK A5jԆ yˋ/8cƌNF#IqK-\pӧOv V8tFY ,z血ŽQW\y}裏h]LѣGoذcW\y{ !]]]ًUUUvh4&$$Il6zSy388؟ѷh&<;ei ^\\sY]]MIMMnmmmnn'ӫFe {/UEE ///e911AAg\@n`ZEz+?(16?e"&&F]j9?-!8==*\0pSHHHHHHKrZЃ~"66OuuWBr>޿A*(:"\rxl'$$<^$ Trw}_P T*P T*P B*P PS LtCfٻaۨw\8D._}Պ+n%mmm=q@^.t= Ȳ<0Op_h4xWW׊+&Mt=\"l jmii9os\(A}v]{uy]n7Jgb e !<N{ Y'gy/Rqq={ZZZZol2eC}uuuP/&MMM&);;{ѢEez쾭[:ur_wu#uu|9sL(3gNfffwq:6mh߯7tSDDnYYٮ]|{>z8+H7Z?~HBC7E[n5<(̙3/:tߎ5kVxxYfF}}wYYYcƌinn91b]իWGGGgddBnfΜ9v؊[3&$$ꫯ͘1c„ _~`HII^o4iҌ3X/'L@Z6m*..nnnNOOOJJ+*++gϞQVVgM2Ż!jnܸjɑNo,X@ON1{찰00山iii)))c7o>q ]vYXXرc7gZ555 <=://oΝ_~9NYYȹsFEEXbb+=ZXX(UW]]vuum޼ɓn{ɡǎo-o߾}EEEM0A+VTTTx/rfcԩIIIs صkWKKKvv6]ݻw#F5khܽ{waaiӔ}#\}8˗jP9s΢?{:ngmooA̙3ʑo߾{>t1*++[7s=G7ژ1cJKK[֬YjZoV*+Uj節g.ښw+5k&M_2}~zڵv}f=&2{_}999޿M69z5O:W^Yvc=X]]}mM:2y^{mӦMsHKKKaaM74}tBHvv {ە󬈈|P}J޾|rӧO'7nx]wlW1L?3%%w-..=z֘6m3o<]jՌ3300pW_}uXXn߲e˜9s&%17,**6oÑ駟\CUUPߴiS{{3<㽾t6nt:~i/Y!!!l2&Mt>iJQQ>b6wrRLz6j*o]z^orBD'---EK#77Jb֜IݻϦzHDDҰRa|'.\_|éhNN&Ol,J񐐐J "##1 ϯ fL :;;tj\]s\pBر4] %@`0f̘a򜱃o2ZaZn=&kcccC=dqܚl0ۏ?m6>㸕\_F<{*111$I޺u0///88n%Ad@@qjaaa'z1 ;}5k`RAj X,@SS<444//>Sƽ_bcc-Kaq^Jeee?j~#zڵG=Z~kҥ7bJTTTc@FOn߾MQTll޿1 Hƀ,l,1EQTjj*!OFRnݺ7o-se++,,LV근t( ڥ~m%lo֐kxS|||rrrjjjgggCC5 d3I~m}}\.rJvvرcS{U*ݻ[ZZ:;;srr/^a̙3TWW򢢢L$_YYYSS/aŋz-[jkkʶnzFcc;4ҥKrTcrH=|zzzggg}};#F())zj}}}VVƍq1cF^^ލ7:::Z[[>LQTtt4EQ3g ?^VV/`5Gр`Xihh0 tA m۶ڼuVRRRll,yi4;vH$Tzĉ:ôdIVk.eE,ϼRy.do\.ל,6 ۷j]x ߼X,s>{Tc}ju  -dR'NPС,gr{,5b.D0w\ @J4?'V6;88X <ӯ?sQkzT97SA1@J@ Hۼ+//~~ooݻU999{'R*B%&&0p,(NwQ&b[_'G| g}v$bL&駟۟|{]hhyZ`# <)((_N>`̝;-.R*:ёWUUuuuyxx0a< Bz\['''WQQP(<==s|KwwB`K\Ryyy1B~[DZ e|JOOƍ_}dRI$Acǎ]lBCCݻ{{{ "lll|MkӦM ׮]q\1sbi4 aHp^WVV:99uww~ӓ;v߾}ʕ+^XXEQ,+%%ԩSvvv$IxO>*۷o?' 322`jv***I ]]]b?6v/e,1cXZᆱW*8/\83Yϐ;3|pz- 2`XP(G}$ݻwܹ/;w~׿tRZZo>;;;go0,;;_^Ç O< r'LwqM6[7o^zѣ-;\\\>C]vUVVD"Ba0͛7}~=0@&NS\\ӳi&z8>n85o&Y빹G(Ʈ^dfUa'Nhmm8uD"3cǎفaHPmʕ+ϟg666aaao&mڴi̙7o4 sy_~ݻwӵcH-SN}᧌av̙7ng#OJJZv-̜>} Ivӟ [n駟b?L:>yd0ܼy3!ڵe!/ロJe}}ݻlvssϞ= 4˗}]PǏgddL0\j@o=m۶~wWƂΞ1c}wr?Ν;w GGp |tܹsϞ=@2j|/oO8ŋYYYОS\\{TP]]8i$acΝ۷o߰aqssso߾=c ȶ~[9cOb&+ðgCyĉ6romm5C ?wT]^) :th@ eee{gd-b1v/O ^qd;vؽ{_~vqq Ν dMM?pE8nccsΝ+Wׁ w}Ň3CBBBBB`SSSzG<#+쿝J0L 3,ur^oiia ] .K$= EEEAۃFۥAuu9$ W\. .a* O任;?}V F zf`0 c)5jTJJ #x9?P2"A@2Ƶ ԛ,BLL Jƌsȑ&`aDC1GMM͔)SO)*--5:Ƹ~PAΜ9jlmmR^^~ȑɓ'6BC765cݻw/UUUllT*>pwtt4yB&,,ɓvmm-Nl2z=zS;(?&88ɮD9S)G֯ݻwQ lvwwwG5]!ۺu+qP(>:n޽~~~,˚??SN%&&= &8BR$IpW(*dx%c\ ">}ѣ#..9zhvv =<< ¤r[[[ r ^-B(Cq7w <;}9sX-T@oy (E0vlQ{9jߩSΝ;׸=$ijtؘgvVXXH}0<== Íx5~URRrEh {饗Ə_TT4bQ[[KX]]mgggMI\-Hǚ,aƏ}5F;Ћbƕi`29ູ1ΘLÁ&˭d `x"kggPuΝ~ N=Hjj*Ac}||pJN*))p8k[nl6nq r,K,H@ii'oWWWWrb\v bւxƕźwʕ+㖉fΝ2H4ɔ#_.]jE >L >WW^_txV5J _A5#JFܹ81X !006999 cyԩpðcǎؘTKcǎ{\pn+;hƸt666,bݽ{D"'J'III}ׯ͞=. sM=22_OD"aSL !55d FsF\.ȃX,RiYY]3jp6 ( cĉ%%%`_riBDrr2lrnX.~\\D"EVӿ)˯_ni dz*HNN>sLNN.//5jTWWWoo/֘K+~{Νׯ 5 5igٮSN ?֯_?|&@  bхqvvnhhhmm]b ,oׯ_WVV9uT`HsXX2ӧO肂XƖ+Wζ_zxx^:..AAA$$$Dחb sJe??>dyz{MMMSL1c5k|d2YUUՂ )SH$Ĭ,xKK h1Y@O~֭ '6l}7H,߹s';;[,ԨT*p8eF۞2eJYYٮ]BCCmllJJJ|믿n&`FT*kkk'L7.>4)O6U;::Ξ=$ g²ƀ` Z~<㑀8߆Oqvv^jѣ\H$ 6驁' 5{{SxaX.; `=c>>>t:[[I&+&66ܾ=cƌ ^}Uy~k1>>,@]\\/_>b,$${{{^z dǃUo1dȐ!C^.cj4ooUVXn۱ b3fʕ`h@Yf7v„ /fGa}||VZE/u:ʕ+CBBKǛf͚[泞Ǐ  E~D .>C޽{~Y^^_|7o޼YTT4'H$׿&** xLDGG?x`ǎ`IbN:k,T/)uklٲ$=<< TO71!1 AxބDd@!R*O=n A!A' 7gT* j|X,nEQJ~NMR988;ؘRNJe,-Sz=/|nO8D:tP~~={?/<<<ҥKW^k6rd„ 0… t9::>}B9tssWà2 IСCҒ5kU~(fZu?dEj6mA= mܸ1&&7xBnرcYYY_~%p,wdPWWjz=Ѕ9R*Jx<×.] Vj://RD3e&s\0L:/0ȑ#˖-geepC<oذa FZZڙ3g"""fϞ- [ZZN8}?ޅ޵kT*}hll<|-[6nb6mCkzf?!!aܹOr EȲObXt3fpwwKwygLZA t<Ȁؿ=޺u՚z;Z(dPQQP((1ގxzz:x{__ٳg#""`n??o;pg}aXkkk]]ܹs`"o_~yڵ^x"m-x<LL6jƢsss7Ri0Fy+Ø+G{¯?۞VT*Ak[Gzx|>?((hܹ9aϟ.\hkk3.??ۭBpȑt\.?wD"1 ś 99kǎH$\.7** vqeddTWW[JnݺK`noOKK(8:ٳA鼼 ˖KllfZp8/"8k\K ú><{¢ӧŁΟ?_TT?͛7JjuRRRuuZ6l؜9s/_njjҀ/ݻwGFFeff[}}}ĉaxMaÆK С ߹sm…@ vT* -ܤ222 zÇwttx}wyŋK,,7o޻wO&D"(7nd2.o>@l2g (/* 77ɓ'ৌRgffvuuRC镔(!C$X>X78>}_2왹;h4ׯ_OT*UVV\ڵ ð܍7}얖z---uuu&ua׮])cֶi&LPd-[@w߭<شiP(NVg9;|D"D$)b.]B^{5z===)rppj)''gΝj4/ÇnӦMYYYcǎ}z{{liӦq%$$oUܻwo۶mg޼y!!!ɉp***@cl-[rsOLLyfTTTllD"ٶm@A$$$[L&+ ???PH>0r CJ._~ܹsK. x1  b̌;w.ٽ{[K9zzz;wDGGϛ7__}U_j+S__={]|?EEE}pF5iҤ/܂ E{Hܹ3d+ ci.P37^v}6l:LN())hoИw\3seeedITTt݈_|tqqq8!a=ztII FA"""(--5Idgg ͉b"!!B,oݺh'}}}#F͙3qQj777@>wMŤ|`}|P(|\9<+VPPpB$KKKaoii( J 6ݻ3… XQR IDATJ%EQг& ,\%Q*`r>>>˗/w=1PQJʖv>od0@-X`uuu `^^g}frc@$ɨVF ckZR?‡z^ד$h@^Tp;F%\ahܸqNϏwŊNMʇAts-ܜ(Gh4444~ziiL&-, c}j a,dAWOg͚uҥpz:ʾXǙg҇}kر%%%MMMNKI4-0 -ϲ80vإK uV ,ˍBxGu\$===""q˜(///"H"?qt{̘1{MNN`Xe&T5!B!;8 R0'd@Qݠf  w^LLLaaaDD8H ^! q[ mG֋!(( A2{򿭭-q$I7U+uց3'tJb!,n0 qQMfIg@L4fN^0 jNHbbb`7///88I_hhh^^]}j8zӿС4RSS20J/  (LpcĈׯ̉ 1X>1bD~~>OqqX-suցC`V VgRyo999'''vvv666رCV/Y$I9rvϞ=---&wqq9{lnnnWWWMMۇ 1իYYY6mq6GKllˑ#G\"J[ZZYgfdd+^v۶m8 fӦMsww߳gϥK k|/xAK^z۷k4KZŋz-[jjjʶn b/+ݻwtvv&''S))))))r\&9sfV` :th15 l a9a؂ (R)CE߿%6{PfsssK(7H$\~ܹhFIfΜ)~j\^TTcկ|q B xb@p'NP-ׯgff8>yd2XjՉ'9ȑ#9UV8p ))({{e˖]v 0LժjzRO諜~ц ^zY{MU$RvR:k:u꧟~W^y ㏯]v .'ƍH߻/|ԩ/bڵQQQ/ .]G1vJ@RsX'''&&n۶ q5a{」G~ˡ}Ŋbڵk֯_BRxW\\ܭ[ Ɠ~E^t? .(7n믿~]v$oڵ \!?n0Aww flܸW_MNNV*$I8>vXZNNN|>w1 @ Ry .N322֯_?tP <P(ܼ}gςUՉ&M;::vܹ} 65kրxΞ1cRwvvn޼vڵgϞ 5){ ¤q[[[B21Rx[nro.'Yjtx<IƱU*K@lJ{nYFA -Ϛۻ]fTUUx'AuuuI!TbLOOԩSkkkcǎؘ J'66&11TZΝ;e2S"@ 7nEQz>1bDWWWmmqm\\\mmĉ0LJȑ!!!`w=<<<"8f0 2e h4666ӧO7oPH&66޲D ߗǏs\ngZ`f0n*{dd$IDD㉏C|ٳ-?aٓ'O6ӧF@ CCI@ aEiZ$Q-"SlD9}@ H ꊪ@ О @ RA R*@J@ T @ RA R*@ @ T @ H )@ @ T@J@ H )@ RA R*xz`# 7JettRwxG3;x^T*---8NQ?OOGꢢI&4R[[+GiMEO<0^@ۏEVVVw\.(NP%RQ*)gPuuu@kGŌ3Qo|y+$7n$1)~Ţ+ǁmpp0j:kkk:thEEE{{X,nkk#I z(J&$) GR*֭[eeeA$xqqK/D[r9akAܿ{ƌkŵSN5/^lnnq...sε0|SRRT*XfyѿYPP X۷oϜ9333Nn00 c/իWkjj@fX,ݻwL@KfffQQA/h8NOeee,`0PuǗuY_rTkk̙/;w΂䋋LbAܸqv<$"??_ .T*C9{lyu__ߜ68a)))Ax< âEhoox^9nܸ~5 ϗRȨtpp2eF)(((++;qĊ+q.{ 6x톆ܘhy#>ȦN8Q(*[n%'''$$X?psFGGشutt777~ڴib`0ܽ{˫Vp8ƌbn߾-JO8Rf͚jKKKנ2(++srr2eH$KMMmjj3fB"~v- L"ܾ}+_ t k׮EEEX,P799ߤaj3[WW8}tPR222Rs/^le}`0=:((񚚚۷o_tiŊUK$5bXlkk+WXa0~WV^ G ϓ$9n8P 7oD Y7vuux!Cl;;8n߾&L# f̙$Iпðz̝;W$X,{{[[N :uoSS}h4gvqqqf5ӓ 0Gg,>>~ȑ5g///' Ǎ' hlls".h"ggg~>h"waٱvvv|>?888!!BʨA 3fdT\ppLYxiyy`5kw@0k, d2YWW5ٮussrDٳg ?y&EQcǎ9r$rFq޽{&AQԒ%KFf 6 ,iy{{q\`;v,I%%%hD )**p8#F`XƏ c1)--eXpa Ŗ^?2d`P(pPXb[oD822Af0B3AB(`2bF"t$I5,נ^sssW*d8k4Ek&7Y{{{$jfSWWaBCCz}}}==Ç~S({.]:a4V"a0Ϲ\cWW\.wtt4Cs___KK cȦoQxx11sd>eJZLfl~N$yq\ mkkoii ?~,kҤI޽{m$C Hz&YZm]]T*H$yyy ,|xP(4Kd2WePܞ CYY͞3g:f; Ϊmoo@(mAkME!C ^wwSJJJaAAAAAAFeW`] NLp@p>--6==9F⿌| [ZZz=8 cyW&{xxQSSս{=j O( ǍGC`ɱfw x>,kD"pdhGYA^CKK˙3gnݺEbꗢ(HX#t2XhõkΜ9PGbD #FD]]EQiii8GEEf2ʢ(ё#؍7ꢢ"B0#IG&eeePDF"IqFaݻw޽k!$ #"z"n p8_ݸq^1CKok!匑Ers֖)pƄs8dTѣפ+#;;;\N?aXkk+AVtdz&A /^|Ft@EǎRi[[EQSL?SSSO>/ HҤI߬6#>>ƍwΝǏ{{{D"P[[T*گ@ddZ[[WwwwV+HFh4Ϙ1crCx<huz3, ٳ...AAAbTD]](( G>̙3ԴZ'" >|wܩohh(f1~_{H*Ez""aYd%III EQC7oޡCoD9=P ޻wjJY1@?fkkSSSf,`,Xpƍnf̘qɎ&___Mƫ1 {sssKJJ!CÒ$iӦMxb{{{KK ؛!bٲeUUUEEE C <9_vό{'L΢`w̙߽$I*Jcrxĉ%KۅB`Zjz IDATZ5_  qvatR8#*BHLL2d4d4ڱa$I߿(/s?dҥKWCi4E?]ZZnvZ;Hrmn0 mQaT*I94J>̟?40 pzGo] \+0AVu xL7G~ߎBCC&hcwA דsVVV2qt*,,?~|XXx"(2O>E >1(N>W^q{,=P.] G9E?ܡCQFݻ|&Lؾ}{޽efff ϙ3ʹeڵ&^ziƌyrrn~C ]x1c̙smΞ={7o޼ c]v^:99911q٩3P!Drro1y 7^"C&%%Ѱahc=K/eeeyݻw ~C [xرcͻmٶl2qĕ+W9]vҳg^{ŋo knɒ%3f̘7o^aaaFFơCo铔4j("|g?~bb_NKBcyorrY,X洝<...77W8eʔ{ߖKʲ "zGRSSt;ѝw9iҤz(++W^z:vXNNΓO>iuaƍrIff ֬YsZ֩Sw;))i֬Y}Hnu,_X2c O %[K~'y "zǏoD4uիW|믿z-om-O@\07֯_0dȐjڴi:uwرCrWc_~Y`-[JJJ^1p8s.?<\JuֈHnpΝnKr sz;Ξ=_|_7N0A^j:~i$ iVVҥKe@._ ی3ڷo_^^_Xbɒ%7nW_}EDrd_~P!=zȁ 'K.ʺ['&&t&cyMyvۭ{n̙oƺu&NhX۫fQRRR޽ݻQǸ~GvVV{~O@˫KnnAL>矟={3g͚5kСƘ/yeCmmyrT9@nݺ1B!wG/߿LL̻p8Ӎ'=_\s -[̼PN1b{`N":p~DϚeUXX( c)6f̘KsHΠ6mZ3J:9vu2ƌUUH >>{WQQQTT>}ʕ+ӧk?B=<;cǎ'O~ꩧvرs_wu>O8p`׮]7|3M:U~$,XOw}ܶms7n͚5s,Y"_wgddl޼9??ѢE> o[NN֣G'.X'_׿(3gΔs{/,,'x'(22rٲe"Zbc=O?D~z7F=gΜ9sX,KΝ;oZ֪*VUQ˻曍yS?#SfϞoO6-00N4Éi'|c͟?NX'999rQ̍7O>sm :T.:u/oWWW;ڹs瘘'g}y2/Kn4/4/Bcuu_"?7իzP߿@uƘST*ʪ?~||||ZZ_ 7nꪫ"##SSSLRYY)Xfȑ#_|޽{fdd̝;X^PP0`_~_ѣGttW"5ѣGugvuذarŭ_~+us>x^x|9sFym 8pڵ3f̈Ν;hРjcM6 <8+bG}[)Q^zݻČ5î9sfzzzTTԕW^j*^xax;'gxk&66[n/"رꫯK0^ :ԼWu|};t7jԨ{^UU駟cpXSڵkɉSSS͛g4(k׮2d1c_|zRRСChذa_f1b?jԨ9s?^U__uI&-\o>}zvvv9rkN[3+//OMMݰa=3mڴ>@6d?pȐ!/;vSO=um=}㏌1EQ"""=-[L8qʕ#GLHH2d͛?ccSoƦM ?ݻw^:%%[Gy衇dtũOoL<_ 7nK/$MNNfiڵk9s<+W۷ogϞ2k֬?{0`>/Xu.\l+"5kqPr,ݜ)))K,1cƼy 322:oK/dT_|'ك.(++ۼyly:,[L+3τ]Vy5 8p3gիױcrrr|IyWZkw}D4qڷz۸q=hР &Ykuݚ{W}$|WޚSN4hӓf͚3t˱{|Ν;eئMt]}f׮]7ollb,]?~gGe,;;+oAjj/\p„ ~\ruKJJe<}I&=CSLIHH2Wqqq~a3^(^$$$6mW 5kVZZc՝wiޫ_||PYYYƧ| - \Wrq``o־h.EDD}<כ;Lu]"K.v>}ȵí˗5J&tW}]ٽc,;|r/_ODo\oGDDݗmΘ1~M6~ӵo^[[;}tR~ܾ,K.RoK,;vyEW_uرcKKKn*|wFEED1~1TU5L޽u{pBc<_?~LiԩWL1Ɉ#ڷo.Jcn?۹ꪫ㎴4[{}\E]]K/;v )SPwZtX|3|ߦ57o~x]wo#n|rw} jr{n7RYY9իyarr29 BꫫW~wwsΝ6|4S3敝fm("^Ɂ WJ&㧟~>|qeebb}}ދ}@W[k׮]yy_~bŊ%K̛7oܸq_}SRRjkk,X0pe˖͛7!'ysC,_~Fh !zaɃ>G￿۔qekNʧ~:aHtI's}??{l=T;wѣcr˅~j6)[lΜ9Mxcbb}]Ñn !4iL>}ܹyyyG55EEEn@Ctt49Y[[t>3j-y{%k ^q^y?(ֳgϗ_~nw߽[m Ø?CeƏ~-q?J#G~'%vJ??lSu]+W/C '";vgr ƒB cƌYt $M&=ztyyQn̘1++{頌߇ÇnҊ&:or@\\rN;-[O߿׮]qWYo!I&ѨQ[nrƗT9yW8{ޱcǝw޹rJ=zL8qO>d~~~^^}7p@?yی߿=m#G3g΢EݻrnݺWxw97o_hџnIΉXx7|3eʔ]vj_ʃ曛zgޫC-ZG0aܫk&K.ׯ/((XjUzz7ؤ}8zѩS'|7\\c*gZ+XVf=?OZ(g$Ɩ]̞=[nm?~FF_}L977=|ɣ>:nݺ}gׯ͖\6kPvܹN?^z8{OŨ?'}u]gddz뭲z36zT]]]SSjLL c=m6B4Umxav;XAUUMpqGXXXhh5v{ IDATpppxx-f;݈̌< >>ie#T.0:*8eTEa <آͺau=GN bOSviqjY;_{ȱnqsgEyG.OK7(~KN(BDvc%i1"˾۵XC5`A_?_.Μ1}ΙZ)((V!DFFƐ!C ꫈)Sjժ'N <.K6nܘ'[g)ҥK;u۷OQ!]} N/uAAACرw%ݻw׮]6Ӯ]1c;X,c۩S's|;r7G1zhcg*HWc[v>bQl؛;wK<^aAm[Ep@ݾtSNbĘD_;EDMDaq;^yZXғSuiٶ姣X'3hD2%(0.2*#1B$?p˩jY,jp 2ZXXzjEQcbbW]]}ך?i(4X,qqqDp89rcǎvm~aaa\rb)..>tЗ_~9qhc~SUk׮onjӾ}{#dйsgcEEʼn'֭[WWW׳gOckғ'O~w#GLKK3(@ , 'N\B#s;EW=G>H!"A;s*hzi]-|և3frL?0z7DP՗|:#57\cUᖁCS?-Vp> ?+?bѣ_.>8rɓ'cbbN]df)))v]]G}T]]}ĉxTUɓ'޻wovvQF;vl߾}vmAA YiӦu9M6H-[lݺ*֭ve.pxQ>qfѮ0CX#Rє#UeʜI!ݶ.w[s S=^/TӤ,,8T~V[7kdA)DAD7,llVHqD\4JRCDp͝N+==+ͼ퇹((((::1fޚjU3^ڱcG\M.R#Q{vit]7op^SSvǜt9w{.T,'C]1>Q8n-/mk^7-nJV0AMW\ݫfa kZyŒh :l 4djAq+N9Lr[츸8A߿96)GuuuNNN߾}#Fs1]cԩS9Y2-+F#h>_WPc_eʔ)ˎ;?aÆ={8,+++)).8ӳgϔM6믻v튊1b9Zdci|rJ9&o x(ݻqHUUcǩٷoyIhh(B$@RIpbj0n9x*XÉ, WWZgU?0s?~y#o4qF_[/)"qT7WcUxDbD3ޢ4h$f8ޯ_~=zt޽r_kא.0?_^o6O"뮻6//oUUU} 7ܐh=1cιg;v *++2n0Cǖ}ܦ1" Qx`'K<0>sNVW?mPl ]<nOѪ6: FˡMtUȘrn{o[sA!?VV9#憈*Z|oJ66]vW_}JDEEEm3صkWŲsNܻwI&ubl޼\(R-2'O;SL LҞqomuh,?<}a>gj_6(-`H!p۠~-ż1=w Zј(u_?z1CF6˘0'_X9?q<22角ٳXСCVsT>ˍK""2?)竪j<)n۷XO?ƚt.2RWWga_Dɑu:  c*ނE]!mqk%:<|_cUT_?oH!Ry khtf۰wWT5OsӚ[˅Ci=hޔ{n_4gˡ{WZ:[OHUtD3'CNKˬwؙ_$""ӈK=b4GAs5|7ׯ߳gO\\8t"""B.]yk׮ݸq cW\q'F<8qBSIIz2V۷CN}p +챱Ϫm1t])']NDZv$MoM{sn#!-7 cDz]Ք>PƳ8m֚2f#oXjjꭷ޺y#G34M֭۠A̫u544t˖-ǎ+,,B߿CNP6fUVVbNMM5N7?~ǎ{ٷoILL0`@JJyw?s~~l۵k7dsB4/֭ۖ-[V-[  nٜ:cc,$$]vzr̫C[n'/ K !?G糆_@"NwF O$?{YSe':^]iXUڝ-\.6\h:5F9l'8;]&B5~Pf"(̷?yRh^0IAAF ڒ7e%ԝxokt. QeB~޸ 7U_lIܞ趇s_-,S}u5>7gcl9p/@B*@B*@B@B@PB@p .PA\Z2fw"XIw{ #KR]@}``mېLmo۶m-*iڢEoߎwe…hVڏ1n_5'u=q6pՙt|# 7mߠ Mӌ Ei(] :k.ȅfS W7F !_iuCŜ cv/Xp$NYbopB|ll'2$4>Fk-_nעK {xsoZv0hjx̵k˸׵gu {/۞V[pSz>MeZo(G1xJ 81y(M1#%NaGtiOM޺=aũqס{Iֳ\ޏS*[mxjm*Miy ma|V yv-4~Hg,-q]mu@x)ϭ{X.}/DRٴ^/-]X#зx)MD U3T+^bvjJ {4T=_:ZRKU/=`>^SGx:ė9j7/T Ӥk/FS^"|i*)\$@~3ia4|,A|/V<+񱞚~f˃x.B>\>1/=XSš6sLŗ\9c_;PNK&{_YkmR@D˷L!1tvt:u$߿-?;}<>yŌoҴPiRx9)ʾlEW)Rqt(.f7ɨծl^(5Q-of53.=lss6K;h]wp%g<<-,_P4uZҤyckv!WVAcpĕwŜ( J:}<$ >HZ1T{i1b.N~l?[$ZkshզX[@B@B@ T@ T T TP TP T*P T*P B*P B*P@B*P@B*P@B*@B*@B@B@ T@ T T TP TP T*P T*P B*P B*P B*P@B*P@B*@B*@B@B@ T@ T T TP TP T*P T*P T*P B*P B*P@B*P@B*@B*@B@B@ T@ T T TP {4!1bn`.yÅJZY`-HN% c8%H#B0"\fLcIi[fgp*g3KHHb c9^[ouC9D1*i%8 ((B\IP T.`ĄD=]\5֓Օ'UQNBp.bLa$ȡ;4KthxdHpLhX\dʈsΈh;P?D'!Ikua2k}=):# bqDC긽,@U9牑QIQIQcX\A .tBWhiɑejIbDb (6U픘"1H  $8%/A 3jWoF;Hqz T֚7 !Vpt:]LPFV; 蓖nL紴rł˴5ahבCr`'xe핶:H2P8E.OI];{9WM'^msd))sI WpNDB޳Qqr5ID##->Q|1T*HBTKݹ:]p&#1sߊk֨W*~ιN{WIJQNomH'kaA~I(~ ?0ښn$΅=- ªVYAL!AÇJjY*/6؞E# 9?RZrU1V;6`dF*-*S8ܱ.8dYG,W'CP!Uqz7BDDKjjrBl c'KNTW ۅ=)*kpHWhw]UvP C43T 븃G qP0EA\A4EftHvqXB.tL{ @(sAȉz_ƌ,&XS`CIQDiI T(ͧRPZx1yV/FQX^&-ʾʫk4־W5֜yAi11&Z&W*:#e]G)+n b\Q5xI25<UՊO![+% Q^c)¡]5v΋+˩_ۅo~h.RQU]n[(*;KEictZMLֳ~5$*&)DV霷Wp YUUVjsZ**BbjuM8`ndDWG֫Ps5U+Z95 mjPhƘye՟M=rJSL¢5!V1̹ҤbЄDBT0vG馊OoUw!9`UIDAT0k]3HS!T|msDV26 tiU\'"emV}.ԿL㤕m[ٗib3 1v!K]n3Rp n'E1oQ6`dwE|T-FZ[:qoc!ESɱ ~aI A$NtQ 44c#~rN~tco,[HD8Pƥ_BD6#1"Lmg!-f:1!Deleo.WDQ!aY^89' QߘjoS\XkZDHLWgtz(LQ PD?Pk 0_$3-Z`ѲPisy: k R-Q!17 5? 0!B,):qnߟE%%><9tyhƁRw{Zʈ74 ьN]%1 Bh!""4b1AI׍m<=6A19?)(XD`P|hD>r`ޤ#TLN5DҒRTӵ%> 7`DQAA{bHQ捦 T@79"ƶTswQ8%)$_c4p{Fs8"* h~,\EI hNWGF쓾c*L djxϟ!p(}/qTZ^1\uK t9N%^i M @KӅceR-|}dtdPbLB(GP8;Hj-C @L01Ha0~j\.ӂlEQ 쒐* `^WIScB0/5BUirSr"!4FNsݚ پ#1ZSi<[P1&clB8E0ټ:}+6[Ƃ8աcSE}$skeFJeQhQE,-6sl XPt4Ƙs"z\ q\I閘l_.τ+'lq1RS0*FX1n6 1SB,.$oEQa-Fqj*(52*#JL;6kx**m-_0Y (*Jj]Đ06H NQ P(BSI5I)tEcME8$!9!"rQQpp;^ Ѱ[ aacUyK0?cƙN)} w=( ܸ!Ϸ ױ: wg cqj`N(!YQxQ[@S*ע&OBP#UH4|1㜔 1q~F:}&I_ @KcƩ|p!QjTlkZi'&d/ S%:(4%:*@.:'2^b|B4H̽aZdEQ+L45q!q!av!NVUZ+k[49%Id!GƄFD0!s+ BsSr*hHF*)((!"21"Rmmv!lvs.(j ST-8 40(28X0!7ļ2O-\A'cLcM9ctiĄy% Lӎ։ 3AqADLva5 w1N0Pp+gs4T-j) _Jܸ5l{ADP˷ ј"DBa/ c'Nx?p. D9႘ʻP$Tpw_')PFS<;(-V*+\AcNO=P3$^\e>5*؈0'3BB.-v]b'߿G\q D/s2ükG BusN Ԡ{_1/qW%< Q*m1nƨH/V9n猵*\O^`>M~[ BW*x45*O)6qP8a>羴}i\<=hhq{&.MT*gp4RA `iV's=]΅hsK T T TP TP T*P8\%~NBE0hx .?H]9>}PUU&7/Ft] Z !PطoΝ;ĜOQqo߾]UUz^^(X.]bccCBBĉ:p^"q8\rɠAW^]UU<.NWN뮻.>>Ic'Nꫯ+^ՌA1\?ٻw4|,k뜔4tpu^b^XT*pv>MW&(>:y|||>}v؁~Wu)))sY*8纮ԩӷ~K_i:yhh!CRSS/$cL111>vBAs2Q֯_g_Z.,33sN{M7EEEfn2۷իWpp0<))/'clРA]vp8D(͛333叀Pq/66nk{@_;tPN ߰aâlݺU'޻wonn_ާO]cbbaYʀ'2Qv{޽iگy!CB9JA;$::{v]U]v-A4Mꮸ ]/J^`!BUuUVVWpu}v7PGcchԲlt:ӓ$I655Qrmmm``0]XTIgѨ544Te4l6֐_?HRbKUU?77W P_PZb"BP(PrLfggG䊢(v=+ F|{{>]$ɲŨ?ZYXYYFADYZZ<_'o)266&RUuwwwmm-N4PEĹѧv:oL:00r4M3 `o Y׷iFq~~~aad2qW%q,%LL\w@c'. ÙLMP($FՊXIYUOlhh*|Djl**GU~áiC8撌Nwyyr%6񨪚=vgff$mnn2Lyz&hiiz8UUkjjB%8t}Pz^W܇Q|gggv 񞊨xYeYN$[[[{*C*l4<$w7Dtbe+ S~ZH$vQ˔p(J$쬫+=r bznjzDoolBL&)o ި'Ti wȲ\((gfCmm-VdÎOBp.#Q/C P**B@ T T P**B@@>_al^IENDB`ntfy-2.11.0/docs/static/img/android-screenshot-attachment-file.png000066400000000000000000001472041462047176100251320ustar00rootroot00000000000000PNG  IHDR 7 pHYs  tIME  IDATxwUյs>Dib{Kb&hL&Dc)jbL3 vTb)J9p{9>>7}9g֚s11;d5*9rȑ#G0#ȑ#G9rG9rȑ#w8rȑ#G9r#G9rȑ;9rȑ#Gȑ#G9r9rȑ#Gpȑ#G9rG9rȑ#w8rȑ#GÑ#G9rȑ;9rȑ#Gȑ#G9rG9rȑ#Gpȑ#G9r#G9rȑ#w8rȑ#GÑ#G9r9rȑ#Gȑ#G9rG9rȑ#w8rȑ#G9r#GBG#Gx-oDPUP U 78cQAx% *d F5,>v F T X0ޡFPx jgyǪGDqϩjs U^<* XD-(x+"6,E/~[;;TW_y#5amZ !,/ND Xth_Fj{M>S` {UgVKtlµ 01~MMQ R,ٟұGz.q/x%5k6{jsLɋFjkS8cIPub,`kvWQT]6اTrA}k >)SbSkSH%܀j(n@Yp\pH )h=ݵ]֖:*IJgl63Ux_QQ{F3zŨ'+Q0PqHP`'X2d6ׯ'X5J{uk欠%s!(&$Ys_(b<"1X)T&\ H8%ƉGm3gHQEIbL"(o rT"%sM ,"Rr-ڕB5˜ /:OB=! 8 qt d-@!/h3fNU#m,@2wBTĐFJbA<[?KSNu\bs,Ky蹧;h8m#-W22<&l3t$`ˣh0 ;@ST)*`bњCjUQ16>9iT!uUxRdJ0^Gཧb`"47G`^" ġb'"B82wǼ1}l3[]H^BtZcZRah  ( )⌕cV2VA[ӽ'HS+V|l$qJ/Bj3KW'w6x(G]~?;䪌8l{=჆sOox=884!A$@zԧJB]" 7`lpBU11 Ɓbu:&|}F.$=ϣGDQ`oQb\T*9)'i6IoO#^m%sw|v )= ogi/P(;0Cwއ!6-+/Kϰ\NLSl]bGae%<8Imb0jYT:_={ߑݺ|U O4ˣjkƣ=`7lsZ,W3\CHF:@)NWFB*1VDcM;ï>GDxދzŊ{TŰqw1eFU[^{|'M{=DyZ;vz%FJ;s?O.ج{ob > z5Ctim{W<9m d-*n1HRqꉀA=cgbExe  HT|CD&]{p.{;*=*Sɳؔ<3"VP5wH"0me.:4vK+,UΞD '}o,2 `0t8b#c55""މߎ{Ӹ4 [??8/}8 -x(M8b ,6׹Sbpȯ*TRn0=1Fʘ2$FR(/͚)"T2Uԣu|:8߸؛tACK**RƳ.d^}Rl؅Q{]x:J)'s`2&X|VN]&$% R3%vH5D "! ܰ/v  8⏏>gi({u?6N;4>reױOSCwޓgf+ q|d3`ࡌځ}vޝ*͊퇪҂֋X`wwj[+@.]VjDb#?9rx1~1 v'gtwx-}j hh k3{PFpX/oON 's3B]%C'B8aАs2g7mL>h]Rάۼ{qG>~ޅjc)됑2d$ ZwІBi5JQ#᳚5.sٱ_cᣉ/𯮵>5*ބw9u9neu9:tSBucDu?t{JKo֍ WOO7O= #OfΧK;C3ݻw1 %ZPǨsߪq&aC.>;[ -IsC:7]}ɱ@@bk8,t)5?iq F-^<㹸$U B[o|$Ow1_n+5/O_.s)gRDyml. 89~g$Z[q{ ԫDD6՗x|l5p3y*qcS֔F}_U&`ղĝxcl,^H OB[~]{^ x!u~|  !V54M)jZ@q(-n#gQ(d9= 8BR^wr|0NЍ#{ygBޜ?b|K^[0_ M5anz'8e|(VkM"Bd eե\v?c>A|&0d<ƫx#tol )V]&Tjlؽ[[v{&"#k=F\eo18ZLvXmRǟ;ogy !PU wMZ Lb{W%{Zu9,Bss3xYE֤ }6JҞqJbҐ~ɩPxE ̧Ekx! hh;Ϫ/yg, HCZux%$a^}}-8l+DH Q %@DŽ]sx'4dN sY+m*}]ԇܳ7 v1Lyy^| .Ej 3lpfϚE9 ѡ1LQ5n8E NTZVw(RRF0"x0qD;.RQ{~7q@cu킵*}]DWuB]H{Xh|8L಴"5Oa&=NS"`7[S7xiV&)ۏٖ|incƋ_!}lٳfY2vu5ZHef6 ʺ9PYPoCOwN;: #F2  kZm|է?Nf}< U_͉{}߁qVbֺ?R&: _-UkO{kpѧ1W205#N B9#'"֎:S B(p߷/1|2Jѣ ˖-ņ "ikk%!2F)fiV|lpBv%۞Y3g1jp[)Us< 1i Hcg~Ǭd86jt_$bֱz1#[*m°^Al0F04 Uzti6I~A!7ʥ\}ϘѺD=zz44cVAd1bP<-mmeצ>c~ucmv,w{I#JZsB$EP|)*w!wE?<E[ mkc( -lBW򢹀dQ3>hvdjQ]Z%L#M{C`ٴY͐MMjh@5v>g686s_|čh[Uhh(j.5uObEH0R&l9bÔ^ܭ5 ZaU"S! #5; rw޽y?kN?;tReRk^3=FEtl5x3ޙTiikeEj"Ir^V묋kOkA!P $b]PlA=\wyl>hP7U;\#-!)l=ds>!S^yumj࢟o/>F,݈1ґPz_3f!RKE;KZ}`q$YgpJA SJUGΛX~g3XDVxPGZ}w@G뮫%gX+{ jɓ^2H!O=#Nwfu!(sZ[6}\S{=wEGk-|%ξFR &wT -ybed?}ul T\xt憎BPo@RpwxȒ+xㅴқκa%t| RpS-PQU:ZQQHc!gR_>ntmY..`k/`Ť&;Q*VsϹpWN'~xy۴߆}vdE[+/~0O2M*\Y" F+UQR=_} {'Wx1N:MSO)BwBwq0ahzt/>G"?xoEF)-F%ҵ@R4VܪV@}Alc ujpe֧VZIuo@'c#%DN):S!f4. ILjk -lң'b[ӵsR;+V.Dʞwc"Vk[jRgkY^0W_.>\>lo_?WXXI1p&\x1z,`c,z]MS^W"<[ܓ$&$bExOm s*6Y\ZW 9w;YgJVW$A+(]UO^=BSykG|r 1;͉By;+'߼Go˒U+ƫ1ETV9p~U#s琉{'fq:s*KEH&6*53Ā&55Iq3MbsFk,<6PKѲj-0)BD߸]_K/w>VXiBVgC2ɪm [[ ~"J /{?>"ևVB1$81بR$՛.b9Cyf;, .Mi61xeL.Pj w]}#M_;HVe~נ'2ۃ[#&l=}6 BGSeT>g=V/+810ڹ=٫Wrů~Bڽ E0Yr3}]}*xM(S.9Tv%ȈKNA;N 7RRj-E"*Hդ@S3x5;݆ǞzI;mmsq>~n_iЫ+_sQ ZV逍ذz0# IDAT;zljJLy+Ro~+p7L3WK-!n3INWo'ɜP_Vro\lYZSwH`w٧8jd.B@5x$Ũ"1 dJ8O@3.d@SfZeT[E xBŤ)!"gpU4*n>|l)>.VZz3Oֽ51Zq6qW{hqZyfɊl)|a hΌOqϓB!$ޅ!|b ۰OOy?=#.>v{:džo} b+Z -vN\63իWJԭ }Jyo Pv 6+BG7=oֈxSLdy๧Y…_9C#sJZp8Z4Y3ۣ1s\o)/e*Fo:h.50{bDRV Jj|GK{V"%l7x;n3'?Xϰ!rBCVRt z^cqR":e/^L%kNLLVEί5£OaT]bMvMֲeCݐ'jK8a8~2yrH B6fQJg+1oaU61 ~_8t ͆Ҭi\s<\ym&+9a}xcL^?ăHDRޙ!'N#=);~ Qu-Y0)X$T:"JMiJN@}R^M"P*dMBkPOb8J :DsSC#)P*men1B9^Iot Q 9ZM\`PĩP`FxI>D ="LSTK)lܬ=rY۪PW(tnZ v҅C=r*~н< 4$q2톎BS?Ͽe$j|u9*)6B'ryME>h_AbB8\7GĄjTڍ_TJfD€f94_pnM\ճjZձY+q)xXֶ/3zKn1>k<̙3]q;ޔ}'EIEs𣋯XW m2g֞ƽzs^2GBkDOC$>=7ڻ~ƒU+ج*ե7~/[Ȟ}Հ101}%ȵ{ J8M)&\zb:U)#Ps:5%np^p=jGWeteʧVJ(ZgY0t $h!&NYUn#B&A+nŰmo~-7ĸ[0uYݞЫ]^#S_;~w>}6O>gBS5rQNӶÅxvtغ -喋/< e2[?E#VB/-ň1,X Ò:F [V`1SO=;Ǟ]{S)l0{CgLs1:S*N elj{ȱNH ڹڛi&t:ιZf }vVa1\y$k(Rl؇^STv$zŚYsAA Ζ9h~;b <}z7v{C[ֺ_ݛF:jB qfDǿ]n4/k B0N)1O< ]}Wh`Q[Ө-1#L)yONoA+ЈpG2PJlѭGq4(i7:=nA坿lFls{gX~4k:ǖW_ q7)Ȉ^!Xߝ-8r+6K7v<DI>F1uCV9 ϱԵ !&chQM=NKyg5pOo=XOϙ]O=Bg,NT;2-ᢣNa[QނZԿgc Yjw8q0ϩ++ >{ȳNaƌ8x}QQ1ԩSq@ DzI.s$x洶޼V埐򍃾n8` l >6.c3~1w7#XUigvG.$@󵡔U:̲~JGrGZh1r9ʑ'2YDX-~Ȟsd3xͩ 6 G#F0e4 \{ﯹ8`ۉE~2~䃸(Fm&eisN8gr&|o3j֌<3r/|۟|q[epsn8L"-˭y^z]s6nvl7^R &")"CH*%xD!J%ZA EĔڽ^Bߞ=0 iZm&RꯟDž7^K%,x/{OMlk;cON" 8>5ɯQ}h4Y&f=fBTdIY}-s)yWpOnz\Uٔ϶ABcN= MDjB6O6Q[Χ5mLG{aPM_?[-==U0zH5 x*3zM#.ėvڅfMS!B4$TC$|#٢lX[CeHb3q禣062oTфxsN!5Abz5&1jkECG'K):[#Ã/MaF1{h1·~t=b ȗjsV沯.# 5-ft ^ki7Ms?ypI`T/V0Yv-2h(]va9A]8Z7.f/J. >]Wq°,nY/?䷦Bc)n|p +pq,} dYq8#00Vͺǚ'2T 6- Dٺ ]GvI|rAn)JkjDA9M8K(sBIkͦ`F>ȥ(P ]#Uf .YOxc( jcB 9f騵r @K:k:S?x?N[ V-*PVGYo3PY~wϷIRr0g8gĖ1&xlSRU|y}I 0gRޟ7W$lg6x]}er]kgx5 )DXcq.]h1Ku)߁L5Dr3t $sӖJ:ް;s.P5멿E8K[[馡{*^;Lom SM0UZ۽CGh КNIg4R[ z.E5:<|PfHz96HK"q!I!o)97/ϲ֡3ELh#xH0aњ0g43P(B%T#lYg) Gu{jƉKljDjql "G՜Bl&UR5>y ՘lAcM.!% jMGkn S+FyB 'ri0C^ɔ@ RNqS Ts>qCZ+-'tmjuJR#YIz#ʯLeIgB& Y4UB ̣J޹p d966I^;4Y*$6TIJDTC"`%(HIP:CPA.HKW" m3xʅ(HUG'En@PQ Hkͨv)t֐ ^KǦ 2$KZ31]ũVUu.eSncg-NJw^wO ;|d,+ttbOQ7&$7 &n3UQ,XV#nfL~U]{T5Ř8Rkh\Q3d6[֫j_gtg՚Cu[o2&Kֳ#mVuLh_.:J*[,-P+ tH]Eq}%r*z553>3"Pvh,4;Hþ:Ӻk温B{)kY7rtZ 36@UjN@W$<I#fNL=Ե۲)v0|͓pDYOUY| NLgA'_ej!+MmVQ|m Կ꺱[W]dkC*#>hZ+ TSj]?o.q* f!$@{ow9s&(3z>\:}Nwԣ+y%5Ah)8vY?) )JWpz+XAS]UH*ʽ]Ȩ|']O8UBGk2"$ϧ,|WnzZΛXŭJP;rb5pY uŞ)'L!ry Q{+5T3*CöJ]9:$]pZ31%Y \,':dhi}hzfu^ g- 1:R" l)@M!k#,L(+ύǪyFF1 :RVkiEH7$ Г27 P)΂ÔlLEg8&GՀ :Fɨ!FE'*+zx cO^u j?;(S2L倱h̪[4!ѱ}(HK8Zz"h,*,K׿gJVE IDATtcWDUu@7{mqުi"-R#~`tïW]Sf q6 LD}ctE)_p1VHUWUu7%jB'=E{%ݔ>fF-hqX?^sg?=srAsiCol>o6ڳ{O}=.sW 6?::Y*RK-RK 8jZjpRK-RK-ԀZjZjG-RK-RZjZjpRK-RK-5ਥZjZjG-RK-RZjZjRK-RK-5ਥZjZjQK-RK-ԀZjZjRK-RK 8jZjZjQK-RK-ԀZjZjG-RK-RK 8jZjpRK-RK-5ਥZjZjy X',E`x~W׾xƿ>_^ 5?cUl<0GqƫϨ{b̨s"* ?/4l ӽCf=JѺ=&ܟ<דl  䶸pFA<[q?o`l{q+u 11 <atC}R1C1S*b (J [; (.*!CPKWߎ%`cyL1N )#g<хi5YE79p݉zDUT˲ 4R&eF?[&3V> ÙqL[U ~_:Yn(U"d{_:yN& 0&ӓIbJ͗}܏ݟ{W Bx^ -V`r:$/ &<6m?k8,v}g>h8 /͕6gV$Q6iw9{:{[6A7%+x116.ƍpHPufa,.c;q>zx+вuc׹y@sfyݩ+Hj)`C *fnv <8#V#ZO|X0pN SrܵQG֢V<|bF9ΦDINĪ7$M, =En)b EK^f4nqj<Uϑ{e8\n/xrź;S(*_@t tbQ`|Q)Hn_z{pսcn8% "OM=T`(t~=k:ˣ So5FoF 1GLJ8Y-AS՛pͼط$_B;n];~ʇ}o s<+;#rB ȹ8b3ᔓ:0$IJRhT eѾZkp0ۨ8tA*FpR2}=js{W/eF,!??ݺX*^Bdeq|]g` Ju~G^/ncf&KD`Ё  {^qvfpT13?)]e}29 g{(pY( Ƅrt^0f}oYE?ނ.y7~C'E;)y੩^O[ަ$)@A,%H&XDUu6ԅ#|lFـ`z2j=sA={%*=STc1sXKedVID#qTǽ, OiXX?/9aU8p=wmK]чqbEeQwq +7 n:gMb~qf:#ʷѓpghk,2ICޙϾT`}_/"IеvX =^Eܥ4\%vCN Z4@pL8$(7޿ᾔ ^KV~ " J[}P1 8sUMl Q_@kyJ I{vޅMJ ݂H)xW,* ф0S\3g}"o^m%TȌb/ )w*˙*{ړV4xcJPWT?>>jVBTΔ]߆3X5X<E{5G=%<必e1#{R7Wݟ^*5eބg/r(v|$Zq/t {b [洿~IEC*>Re&O<FRBZIh#Aְrh->#OD8A1ų`5p- &yU @3b|I;ZK4Dh=lV:V RE$.wO2c"e@n,4@%G4TizabX7vݝNxћȁ_//۬rޑzB13 e?iC0> Xz8ͧzsS9lBw8x果Ia/׭bXsJ@nU$gxOXn4ϯĖ@]ǿfe.KX2 ԅz f9G\Z` o t8=p/>5~߿b}sЌ De[ ? ֦Bjn gu=a\=Pw.^D|>J.hCWJK عs1.xɂXC_å}{N8,̇HYZ͵~+ydz1tKPY|^t4>zw[lz>_aI4O،wۄ15+E’'E 1\CG ڟS^gEs/~> `RBOFai=[&0F^+bjC$kSu2lcsHxK'!Qҍd40Xsၵi˘(a(Vsxs#~\nt&}9f9hwko oJ2QM)xC+!ǂ*~M'v;2hGܓAuYhBMtJHmRR 4g8+.~s0 n'L8xv/NReߝv `Xģ<}M L ~\aI|&WrCy?jk{rąWԭi($F=a-=_4#}I|+5!? CXK+NOC-r* yO$Fh㘾4wȍxu'T9pɬA-H;cC'?8`CB$NbQf {)ccbV? rQÎs?ƚtsϽ=[ovo&3!8oJwN!)sfmSn ,Qό |siўS\5o#D/^h g5k_x*j"P1n x҅ױz4;7|39y*ࠇzxM/?Gޟ(GŔEX;Zx>eZaXpFTc5Dqo5u yF@g21혶s1Zw,N ,yў9,h! L&mz-3o.K6t4ڍh3Mg6er#:y v6cfNaƬi5G4F}Y32oﺕK=ë舧0~2fG%+ᇷ\EY|{4 K-(= 9_[Z~s"W:^DH**.g[vd\m+Zvl*14*HmⳜ0Z͢ @(+TdXʌ6gX==-[^Hbd$ۯĊ09;g.SZwr͂~g.v:>gW#Νv_-tݓd\~ϭ R  /w7'm8#\5J~.JNSi B 4Q<evgu8rY$$ Sґ=o_6ttPbva,pcqW%t~3+MU8o}ëwdPc_˾wiǟ1:s+^ V8[߅d ^3*&_wk(p.@+H-:D` vyX){*ʢewq De-XvGUc-8'sAG2Iڭ׳Qaӆ9o}W(Ɖ'˱/yY(jMl8/UCgʮ{?{?wglٮo< ;op=ucW̙hc3181ܲ|)w,[a!;mwa?ٚM.e>=P{7McT ;m9mҾkn]@n`5ܠ掃vؙT|l*$,z!{)W#as?/VO} 79Α 9ewނ ,.LgCf Ue/fn5ZU[W>ka`c"pýẅ́$vۃs^V,øK[?ᝩ ޓO,aq08.Xs g8lNx? 7Gy^s|or;i[!{)]O<Ng`uyY'VMlȐV_|=M^r\r/`F/ݨ;B V=SEVL?J(*l"TĐDPQ$bSbF.JU ŦZSCfƸ~[)VbpTZJUpsĠp<8#ߞ1swzn{!Y1D$auL1%ćU~f/堠"l^Sd\?+tTiN5 D/%)=Z}9Nj877_·1qߊ?05ܶ(*ְh"б5.FO7k-5eg0k.ƢMêp {NߎT dM:c|^3Hvl}ų \wtRYX%K wxt=h\^z$9w>p/+P][}ƲLM@!~v~DzFdNb\ IDATO쑇%' oYD)bXUsmEɀ|-5$q}|ߢuv&3kƎץ>qgϞzneQ, ֛oΉ $=OJP7F )ΕmZIeʆUֆE3,D j, sH8uMW܍zr(k׬ `CLpI 돩}dx |,brr\}\_iLĐٰC+awcHa{>9V|a5Z.ˆ[{C^U GNk)u \6w|K{忮%$1g:å !o%=my"4(sܽ v0TzG/Ey=Ċk5hjp31 FJ~fF+B&s?O=^kԂd6FJ ԅFviL!$x9[M.N:hZ/{woE9|1B\~uH#Ae- )Fְa}vOVPsfWv44,8%7 Wݹ?cv62ㆻsn޻UwʡΦ.y+^6v%˞z=fT߼Nhd#aAK7 9v:=0I?vY?qۃA4nO| v?vj<3LG;'aard& #og;T rB:/ ѓ*/ awӽ6g;=#OTYߏB|w{U{#^İwdq DTpDKO8vJfg}٩n[=#kر5W4RĘ`_Fٕ18h;< {LPa>pgmH0NL( MdC1!WcTM7 ]@d30P 4Nِ8+[x) ۔-v2\E7 "e#I@|_ibM7y4;%`wɝ=Hl ٖ\C-$C m$&mΓ_މ%ž/x ƭK YhI1< X[r$)=xxVŷsnÀs 8r~bͭ7r+^+gN`"~tkqEXIcn. vY`tAw9'LDxHbZPuY ANN|0EטևtTF(6Ck,z D'+^Re?*Q5ILRݪ@KZ2ݘȦ]tY>lU w@3LP⍐h7q2օԖXy˧>q[lŏ/G֢}-|ZxW1BĒ[3Y%A9ӗy2\#CLoubN L5,R WmuEN cS|P‡79'^{YncAԅbCȡ ,b ܻI^7Xg/R*]'nΗq:n&"ta!Fp'VtH΄Kb:E0nLZ16B5|N qJ0bŵfh1s{q{cbv}6B$$˽mY0~aDɋk[jB!'"ׇM ߵ4:'[6~d\t U-926غ 背QluR$ ȩcg= c/;,<+km;h6֊u,^ \˖"!a/bm*bCՙpl49Ҍڕ08 nR  /) k9 8UXpnrr.Xѿ #ol0 "?4\yy^R0+F B~=nY΅AT&8YzAr*`]To<8ȗqt$e*蟦EkQ4̨F҃ ހgW6Dp{FCafhE66X%@; ?8y? z>uL̓dAnH`J{/0xd_zklR1*?]Ⅷ\*0?ܛg \~|kס#yY7~`N$DSO+WCbDytJ\fS2tݝ7\[mJ{"={ˀ* GB 'N` FsͰiמ8~I[^cV'ԣg\;_xӹ~.*yz@SӺsri&Trz|bpFBrc 8{ )J=-F0U< "d0>TL`y*QM_A<3ǖOxEFo .}s?Ps%888%AgeИRAڢ>lF{׮ϝuУ8W7kH2no~nxAoh]Q,` "uplhiPmavdRF2c-u0ޅ!grcR!QeJap-&+DW_J,6 W,Z8Afm{ FB>y36ۜWQ |9(RX>pؼ56CgH\>;삋tՓf%oE7⢧^~e꧸ohr7u ozb$n\zifĉ'mֲb)LLfRAa3ŰGPMޱ2okjrN]og!<,#RZNg<'GlijzO_qܾp9//L& ch([7)m1B%̿N"v7 q}x;qL#I7<#u][Lj ab1 m~Q#yN mp557XAӀTwΗޱZ/kiW??Mh_z'+legV?o2AD9|g~3_v#G4ٕqjue=Fj#ڥA=PUܯ(bmxIvq 8#<6Z0@h=w1bCA^Qc;DWqiH<{떢~CC=S377ϧS28H2h:H5!Q!x/ ]B1M 1q4ewp^n<6CPVi!>*J|ڠ[xl!ܺ|)mcH:E1kI!&L"blBb-I`rE7_L3[їK`Lj+gBܛM14)TI+>=ҝFGSk+u;>kEC`„Jy#i40^G3GcpmKBȂEa 5oe3۠B6xifo~Kb-Ra*p/I[v961kKh45N 5c:9n_/ ՚a VCҨx\Y&Hb._5DMHNVCxxuB 4mOn&24 u sӴ(Bp Ϯ6x锣dfiϼTWI/1&Z~~x̷Q>UO$m$?o|L&T׿ w`,N +kœBE7I;1̿s14AԑZj]xFёNA+/E}QB@}Lńz ^\`meMyO4ta>R7@<4z xnIw .F=mj5#ʎӶ)L 5k]Hke0ʦ_xxޯP<}fPݖVH(FVq>LN8(Y_޼j?1q% m&%aE;kd:~2}QݷoIdapeGb{V9;9u7H֗bL`>kݘj[p>Wukq_&pҼpaDŽC khxR1g;zDRQM:I-cqׯ^ 0Eqa$*NѪ7nLPLX7\=Xr悴1PzkM979pՍv lhx8E/z%%A30 8-~9|ϜLazχbh' [.Ǟ[@y]J:~+ybz"^!eꂻnR:dcHBR7J &0h,xBԇyS Ip ?J5CfB𦃎M1H@?  ЫV%gs8Cs3ZR@&)&zA2u< ͜ʑ@,ρ|0yp*H]t4, mArC4]OZS r ѐCv /Uwނk$=[l?Vd#|¯s;;k :85䣜OpigUkFeύdmFMb nO[=Cf~+4\̈@!JD9Q oqbH4#~]Z$t׼5q%QÎk{n NGJH9 ;.bSX?AŖշ߂ 7K`;d"4Z-n.fn6ƻ }ZV q_lQVB:`#:ttCDHƙf0,ʰcrk4[Ejo6ڕg!,vl;u /~@i㌀6R*Ln`wrCg0De?'}ƽ)g<&qN.0sډ!1i̬FYǡ\DW e8Q&+XLfW qЬ9n;V\ $%"^G2J&֐;XBzri|o(X i﬽uVIȳbDAGl5q2ޛ 4n0`_$b@ߟFj ;Zml[n5 o`HYA}=Cc(J|5"PE:XUmt6摼]]/ľk7O\ xzɋ"I/5Xѷe31qޅ\8`T#[: *'u]C/f #󎏢xgH ^C_: `ADQ`A(4|Qk(RbC4(I/ q7ٽ%@@}ޯW23;;gyNԹyK V ̜3awh.G/WrGSer[s@;Pgb t6q8U aGp *@` r@;}|xTU˪;e:7dR>CƠF` 5[snWf.G TMZ/vrN]i (:3֯0vյFq.!wrߡX| 0gx7lD>`s)?ڰL1ro4fSFm| Ppnpvb`\ y*UU`w:Q=SX8cWUS\t D[@*(H{HW5 @+~q(uzG՚)Eՠ0r WS8QLB*>oZNq d<;j*wT]ٹRLM+Ss;ހݫͅ[louKHThs\ +|IΡm~+Bœ{8+ü o>E'/܅ɵ aS*|Ȣ:cgVZiŦ0iTͤg⺦s?_4'JTf- /n[4}tN fW]ˬ4N^^ze\bHq-⚇vptP_,TM)U6e6 c圪9ϡ9|)R.aQPkҢHV 5KT VWVdqF i.SBAFMՊWEFbؙLeū_*+i5)rb0Ν:EQ5]Yu[ ,)#4eȚHIqۻC;b빬5 .{,Mt܊$l>ve.7{¨-5 (\+V]Zu0rY.F- cW; ̬b>8PTĞdF-~y=poaC S4aζh|ˆCۆmfhOyV\!' Ȁzv>ͦZݹ.] N "Ly8 +:8ԂwSu#H?M7ibVL)ίhVQG8ŁV,]-Mzi\*Fh0ے{nL_v<7`e^?4"5_lqb/.5WTF8`ߠ9PD4FGӉx7%5W^oQ:p +tR[b)Pp PQa˳;*6EBDiNVi,6hLâYa`PIo0~`**jA`9-*WAOwCEo0ZծIk o( {*^sbؠhӬ BQ4cQHcPmgFkUuFr%IOA~)3%\_nTA$8o"Q2|an~DAvr,H{Qk@xɦq%Y Hp.,HhRxaA ~ aFA  AA   AA   AA  AAX)pAA\p&SAA\KXZ6 hL( AA4Ơ**&60E( AAiiEQHOc\p0Ơ  Tå)4MZBQXC% G1$8 (0j b@B  %c>*Z߬ p8Lt}c<%QRZJt+)p8^fX^~ϟ|^q/i^zfi!Vyjx?mlղdT4(EQL3H\ (!f&c`nۥk,jff&._,nZp8`ZQTT$ːc޼yHJJB\\\<pfgg#==5kքf+{s%WӧOF ٳΝCDD7oh]_~Z322k.0дiSTV'vEdggbnFӧ}dKڵkl|^ǎC@@|EQ_|2n&ԫWĺpedffBQX,]nZKZZÁu"66V'SRRDy,իk=2޷orrrD~>u9p4ock#&&FoTۇTy nP!8os<6 ge5?3֮] ŢkPy;vݻ/DRR>r{0۷o… ^   ??[ƣ>vͦ~atѣ_ƍQPP>4M'Naۡ( `ZWbOذa** 1dԨQӧOGbb///SN5lp;7&&/8nؿ? EG( ƍg**y^n/_.^..:TUnGll,^~e!TǏ.GLL Ek]sTvEEE8q"t ^HOOY 4Mرc(ҟ>@Csκ8q"Ν;'i5jD۷ś1p-֝ n0~m<1Zw0rxѵkW1yd76-$oS/f;Of"oX,݃0&jyڃ_ߘ;wbP*UBAA. <̜9Zs='>ꫯwߡYfXQQݎH+_'ObԨQ (ȑ#h"<Ӧ4\TT Y|n1cƠe˖kә ~i?ߏ]vk׮뮻/_ᅬ9sॗ^2-+V.Wި>6 qqqZ"OӦM1zhTXSLgðaܦzd9sÆ Cʕ*1|p$$$`Yfb`رܿQWá( 'OĈ#Pre@vv6Fٳg_eM_~|W?ѲeKDEET(A>ٳ|.ZH7Zj>sX,b޼yh޼yX|9EA5'V%oyˣ;ONjY6(k:eGYw\&*"Ɠ?8Ə{m۠*u&>w8{i:Q@jbҤIhڴl߾[FDD(א4mGq3/_Q^YΟ{v]|euΧzvwuxV!!!h߾=8s}VWSRRx6Mp^g$o;'ڷoUrFΝ$F'8~8>y!>۲e ڷo*UN:!11Q~z(={c=Á 1rHцSSS1e~`„ ]v~MJJ ϟ_.֍2[8RHpYL4I4d:t cN/SbķX,GFF4MCʕ1dt=o&/_sΡW^h޼0[|4ʣSNԩ!z^~eq4}n:q84h4hW^yE|5kYAb 4l|ذaz-ԪU ŋ`!<<ܣ(̓;Y^-y300o&EEExgo,ODEE,VHMMiӧrӰaCTV !!!:A-:$6رcX,:+cnm;X*GwxE(L: ‡~iiiXd0vTAiĎl?~<2331h L0E,[?PZ5=#F@pp0Ν4iDܿnݺhѢκÁ`ѺukZB7(**ҭRGEE29Mnnݺؿ 1fxw:3l`TX_ZxgQre0PJu]Xbrss(:v gϐ| =*| sn]t Á*U^(7 GMBX"Ξ={o#Iyt!CMPPP aNU4]R%0Ɛ{Uɓ'")yzi.^D\t ELc 7jHΝ]vo-F~DGƍ-Ҕco/bbEEE+NYcY&uϛ_# |N>sbؾ};0x`_oQ0sCjժ"=z &G'%%DO MčI_Mk׮xt+XC߾}M}h_6^ q)!#??q%!䂗G{H%*k}]Ü9s;ue{]vh߾=#FY0`ŗpqٳ;wtK(m'AdZ)922ڵ͛ų[v-VZVZB?&L#nGQ( y*ߏ9s`ԨQ9r$*UtU?cΝѲeKGbxk 5L:4 iii6mڴi;k:̙$==%Ɓݒ)Hۡkʣf+.>|8?FnDe,xɎwWɫ6~h[^GiбcG:tHzl+W`w4q;/777oƝwYQ1X,lڴ 4'V\y՞=cLǭ}5d\XqMOӒ}ك!CpčBM@q68ØQoxYhrO :suGNNEfزe 4Ms='AȦ%8%LY|Ŋ"YITe+Aaa!ƎuֹE HX~n ._r[r%.2زe['!SPP `eduȞˆ}Xhx SPl6dee{򳊋CժU+螟<Ν2LMMխ7ժUÀDƵkbxDUs Ʊn@3+1w䕑70rJp;cyEŊqyk;v̫e͚5uq=vEQt2V+.^v&*":M8Ñ%fuO:%l/c[???9r*T *pVZHIICt֭[Ŋ㪜zdlذ3ݾ};uj֬]oΝPUU&'+~aÆlظqsgjjp2,)TOƎ *`h*U 88Xuq޽f͚Lcƌ4+ݻwD>}. pM%uƍFo֭[K.|2f!~aL<Æ <\ٳ8m۶o0ydvmlذa Ep]$McEU3<ڵÚ5k0k,oM6űcǰvZDFF[o!#cyꩧ0k,7> , ~O>W bX,F oؽ{7vލ =?֬YÁmYl.c >(>33ݻwG^^/_\<}Q3z!aŊ8u:t`UV?.d8x'Ѷm[$%%~Up= 88;vѣGnݺn(AӦMCff&ڵkK«]ңG,X'ND׮]u֡vhԨ8oԩtڶmo֭V^:tS`TV 8qW]t ofG:u`߃1_|۶mySQDEEa̘1HHH?MaÆ ohɓ'cÆ xèY&EAQQvZvt1|7n?MÇǦM_cƍPU]tc(**~(kܸ1␐yf!<<ÇGDDHjEHH*ꫯb׮]X`~w!:wbFeQꤪ*j׮ѣG/yr7|"-+WF||<͛o!00/2Ji#Gypz;/ҥKEt"/_v(Ȁ(زeFlr EVN9s栨}:֯_޽{cܹXjUQFaРA"o%ݏz\ʫ. :tMXx1&LZjF999fyYQ1e =ͅs|xpOGf3KSKJϦMyr:ͮ%8ǚ,/fe(J |u|y<`;e/?3oTYwIyHt #<<\ݳgO\|jի/cƌ" fGޞ1ѽ{w<#jaJ\&-'R\7h" lll,q(_ݭz뭷*nr-܈\pɺqo⛙QPP1)))8}!LLLDvvigp8ĵN'''3Mww}7)*V<(1ϟTUeO>iZ:wEaJL?^zq1{jcM4ir8"/1X`` 8qcL!baM6eL4qdUVM{p8cժUK<~-۱c ҥߟ}嗺;wEFF7xuy]9ܹs}wg~~~LUU*Zf󗚚*>eXre]J/\EaX~~~}3ϰO߅ LIӧ>66`Ga*Unܸ<ݳgOzߣG( ꫯt9c[ne#F0EQoQb~yMJJb!!!t5j$0,;;EEE1UUy6-\^g؁tՆ Ĺi *А4`w87x@\=#t OncիKL? _۶m1b5jϬqLQVzupZqqqlݺu,>>^|6|p7jb˖-c?kРSլYSwYg{1ep8Xbb"bbbty_tHoK%Kt˗`sagfju$t1v]w1,""lΝIHH(Y}ofX޽̙3ٴi1 ;O4{"G>2دf͚v|*Wjժ%… VZfc-[=G}`-kZ/g>7wzٶm؊+Xݺu&5 ӧE?Z˖-+QpٳGn: k$85wfgΜq9/櫯Ea;vtk(N :ubتU|z)xs^M2Ewyq3gߥsx usOQp8HN`Ȑ! 3f믿DG$O0wKСC}3,**ʭV~}w^z1l֬YnqR(4ϛ1Vo߾e$f'%%>h( _>+((}+ٺu(ƏK(pi;y־}tf0UU}p0X֭7߸j?>WvvÇ3,$$Tp߿_XUx>~-FSLaEzc_]Gs矋ϮS*~[%/33mckN?x`)y _~n|#[neXcUVkX4و#Ϛvd;vd!OgjjΔSc.]b'N`ϟw+WnzX_GYwI2pi0 uD~z1v;ܮ-fp4m۶`sCyw>Y8x a%dذas8pxl۶‘&pΜ9~A^kZ*~w,\6 ~pNW[l4n5k9q^z~kl;{UPAömM4AhhaV[nxTSNEVV}Yh;v2 uK_۶m@7'yN(`nFxG7a p֬Y޽;c6m1 oРN }-)))^'Ni ʏSNԩcp8b9'>|XU0k,W^y/Ƨ~ EQ0o<KLL(ҥ V(wv;/553\VTC^8p@|uJ 룯l駟Ƃ ĀZ6K0/]]Vo&Mf͚aӦM8u֭zO4jmeb4 'N@ǎ<|y?֮][Weڵk'ӭZUTA\C_nݺ{1ӆwjNT~tzjθ4 qͽܐ,""͛7- FQQE:m6Ƒ0?/Âsrr<⍫fC.]|r>| 4ҥK=.`m۶l{1RdÁ(]|rbWoUUEժUqybڴihҤ~*U3y{V`Y7Ǐ?ϟc=o92ƅUV} * ͛"|)5j… 8y$U1ǏC3Td;wNX3͂ň\lX]``אFӐEQPR%#!!?0~gt6l' o|'OSXlTUEv+V(6t/~-~uA4]#&[俹ŪUiW}ի-[Ƙ ߅eIҥ `…"֨hЛ[[Zn عs1{Nҡy'|Rw?k]K,^y%/{⧟~syoFϝ;'9Hh޼9~hmPUm%f6(S. O,ʕ+wvo ~GDFFbƍ)ܐͧ|M idhaÆƂo']?++ ֭Bp5^aaaԩ1{473F׸q}],Yk׆\2n6K/ b^ӧΝ;CXOnhz-0L̙3* #S'ۈ7..kݱyw d? >\X|aO>DL-ʾU/2ENW^y0i$ݔu[e/zI][&O,sYl{/?oI o<=j(ܹz BApE=͖w.-X@Dw;GFl۶-;q;}47n2 efqc,==]\;5/֤IGݻ ^{a1v!Eawuni;dgϞe1w^֨Q#@Q'N0]ˑQ^%1ϊKtf٘bqeiY,0;3gSW_}U _~4>lZb cOf;wYҥ믿 믿pYظ,v,00;k5mڔ`UVeWffFE߿X^wy;3yd1 0/_81A\80## ,L2ŭu8âС֭֬YSby/@Ov SȞoc]S75jǏ*8cJ*Mr1xfcNrfϟ|16n82Zr#9sw#pf U-#G\!Gyݻb<bpȯOubǂ H˖-ݞwdd$9siz {uyb+VtKSÆ nTp$$$祗^rK//c2ڵ+X,seBc BK ֭ѧI:u 7nĥKЪU+4k *TKHfؼy3ۇp}ݨ\2ҐU" kzsss@S7yȩSi&#::;v$̰몪͛q1Ԯ]v"""e"==[1Of3==/_LҥKصk8k 61Fr^^6mڄ}AСqi%vƍqI4k ڵC`` RSS0TXx~srrݱ'Ni"v7j2y޽͚5+ŋ2OrLNNvf!88!!!~&ܑ̙3(,,D͚5a<m۶GΝQzuӴ!''v۽599WbފX…  AxxHsNN6n܈Ν;~=<7" wy'ԩ={P^=($''Wك;v 22wu""";a,5jVg)"§GɁ J9|l;󲥵q37똭Jv9/2͛s7_%wl|N+ceb=fvfeouKd:b[m73柗4L:1[E<-SLkl?45L8p6lq՛Vci AdVqƗ\_v1VovlIfk /e>fe\R9=5Wiʾ2l|>,/h.)*LߗT<>&(bmOi5K; ( D  +O|Y; uFo"A Cnn.4MCPPP@ AAChJ  AA   AA   HpAA  AA   HpAA  .8̶MHi5~iZ1MM! Hpxv;mr'^b[n.A X @UU`AQ(fpx,FTUDAApqQ?~gϚZ6TUEVVqq;v gϞՉkgffob(Qo#AA\s!O\j=]ha0b;hm۶Xr.==c=}b„ ZÇk{ {ŏ?TR/^ z’%KЯ_?l۶ ~):uSo[oEfͰk.ݻQQQx衇#tCE͚5Sk͢( 9h޼ &`̘10`>Yt#< &Cd曰1c.FCGOʕ+ѴiSm!_p{/1tPCQ 1cov̝;]txߧz 0i$]:CxF.,6oތt;w  &CQUUU 4>(OH9ryyy"%:~ Pre")) #18qG-՞"%v+3ʺjF$FA@,S* 77={-#g.DIIMq=܃_|czcؿ?z)ңG 6Lw P?3&O3g?2KCVi&NԒCRRuÁ]v! ЪU+"00 @^A[Jiwwʭ,ejnXƕ+sV3!}B֘˗/c̙0`㫑/A8>صkW]B4~C޽1j(=zj,Ap/˽y;_q˗{fÇcĉb3.,0ؾ};n&Z“Kay^/v;zj&Moٳg矧ZKA-smҤ v5ڧ,==rrrPBg&La\u3vXdffرc_~ywku8xg0|NjWt,X/b֬Y:+Y-^|Eؾ};  !8x'ئMi2x&e#G, pB\t +VԉoPyL:}[tI&qƈjŗרQj,Aʛ҈3up5ݎÇEbJ*B }deeaĈ/",ݻwFffOiӦMԩ"##R% øɍ,4V9997ne 990atIIIHLLDK/aӦM%ޯZB:uny盞vZ]H:bT[ 0Z:o{$PF;"::tcLl3`ɨWvZXV3{s!o`ݺu8n̙ׯ&f|HLLqAl޼GDDK5 w =R%c k֬ɓ'1j(y,ѣC=kזx_ f?`… WF+~!$rV9J9V.Τpe'\6J9I\a )ʼn߃f|2mgڳ'LF*hooUX_CD\.#4NQ*>\v>"#~177>Ytll,dDDs`ʯobb"}b?E"LjrG7-?LX///b1׿ F5g@p\.ZZZbaaD6* F>coo/ Ben'I100cڽ|Rr.iN(HC]FH$1l6P9==l6CCC1;;KKKuG!m8˱j6+;::cOOO>'IJXZnoo&fffnF*O[qtLNN66|Tc?2LtuuUFS.//>leT#)t:ߺ2G]+/b*a` AXDU ۪X,ξk (@J",D),Q @+O$IiH,@DD,{ "\|5Bb$A` @q g}E\7~< X-`X,Ko@4#1}[oCO>CG4 & 5ߜj2YIqbX0Ҟ}V #Ree~~cI,W(bBFdYڵkw׮]׹C'GI&9ZjZ+jRSiX,S=cw5rZ1A!:  %,hffPBaH+NFDAX,ao0pY  p'N}%D`@A>j PL~goM6J~;|G񸩂˗ϙ3Ǥ!_}ٲeEBW^yeŊAbXI&\k} xZNo;>XglrTL2h%DAnO>jҥ}Yz]v}ꩧq6l;w^pAan)9vj;=`X7 ,,SO;}A\䀄@kA͕>FQ>f?̠c睊^v d(b  ;Yf~?s饗v}ܹwqǔ)S8;O>j͚֭[+׭z'#!< B|DtڶmfO\x1L>}ĈF9s&'p'RlX,w/1s/ثW/@ĿovСCWyD꾂(Z_zW@ŒHZu]uos>81csX ZjehE$''N=ԛnnɒ%f}sZ+?U>dX/4}3g|{2o":t=zBDna&$]խwrDc:U*@14t)77w޼y?OD.\={d:ko>Sq#Fh߾}۶m5U-BK.+⨣jl><f&E@}UGʸ0ΚE"=o{yGl޼kKsss>|x;p>fX{GC3D^6U Չzo|򥫖(+@-Nļ_ |v 2_?%(XSSS__\WWWWWgyĉdrȐ!UUUYYYǏn6rx`ĈQF]pGXv&%2B&9P&~HL-`-7bE]|}ȡdƎRpDkTܜW\yP @@#8{S]v>aX,i9``Uwq;o>"fuZh5́(ܻ5J,c@ 46̢&vĸwY,e@ E@R+@ &rG<cJ픯b|'@a%=0lpA1AaQb/"0_PLP(#ubh$ձ)!)y`X,0>ejE?ab|b`WaZ,UbjbX,V X,ŪbX5`X,,bՀbXX,UbjbX,V X,ŪbX5`X,,bՀbXX,UbjbX,V 4DDd'pwy89bjrVDIZLj~D4E2ųX,4~{XH}6adbj[gɒ%srr&L%… }?# iӦm޼9w1?? b~ZFgXlFѣG/_v΄9!v}ٸq㫯ڽ{$4AW~ǯ.];|pD}?3؉i14M /VS A߆ eX,37 i¢ ?^{k֬ $ٳW\3K@5)2%&u]׍D"m'z衙3g&LPJ #8D"Q׮]M;vlݺF"L&7nHDzhP5k|-Z߿,3rrr:v8w>}WްaCNNG]TTd5bVoGݪU?ϭ[.--СCIIɌ3D_W˖-;tpAFѺh4ڦM6m~7pC֭/"/M6]w9b?^VVVRRRRRҺunݺmڴɬ߿۶m޲2SW^yEDLѣ:( 7PTTT^^~A}?._RZZںu벲֭[g֭T6mjkk-.SkgΜY\\|֬Ycǎ7n"Ι3'sΜ9"r饗"p -[1cƊ+.袚N;{? "-"RYYps9Ǥ?~ԩSN:o޼aiӦ,,,|_|ő#G~C 1#M ^{Yf.X ;;<,"p |駟>cƌ/?/0gV\YUU5jԨ~e]u;oժU3f(++{'y X,܀yO>/",))*---++]0/Qiiih۶g}tc9wߍeee@%KrssO8޽{w߽sNx≁AJJJꪫMh~il:;wn߾x׷o_3-ǿ;yᇏ=XիСC׬YSO]x'|Yϟqǽuuu򊩖UV <f͚e˖N:=&O>_K)%"-ZXzu W\o馂v7o^2bp7Ke&tNh3fL4}`ԩhG`555ӧO뮻VZ? " (き?y>}05 ͼ_nٲŸ5ѣYd <+W)S|ߟ4iR2|7}w=|D|הR?яyUVۭ[N&k׮$yEE)G>)S|Æ ?|Rb|@xPXʇӄn6&2wx<~9d,<'O\RR>m۶\sy C-~oڴ鬳 e,l ܱcRm۶aM֩S'wZXb d .`iӦ^:a^x4^{4ʢ|aÆ{W_}u/jXA=8 VO6M6GqĚ5k,Xtڵcǎ.D$tI'tΝ /L>^[zucQnZ駟ؓVL lپ};Vر b7Μ9sƍƍ#}Ι3uL DQD7nYgT 3Gь*u݇zX`ٳMv֞{Z,7*ؙ0njOӬѣGqrED?mݶiӦ &k۶m۴iS'g6lY}fu͛M0o<ѣI3|p1kxFÆ ۺuO>)"}1ɺu&"k׮ѣ޽{?[nf-iFq˖-&Mz衇!C?q'-;[\ԢE*++}or9jjjY1 &LLʧ~`ӦM555Z (ŋWWWwywoiJuǎeɓMK/5 _~\YYYQQaJ2zD"c3%n % oy]w$bM޽=믛+WTJjXsހ d"''x}Ս5;h ":#`=ԩS?#ޭ[ o߾}sL}}=ܓط:ꨣڶm{7O>$3C5tڕ; H$O<ѹs;^s5慵"R'3<]vӧOoѢnb9|qƙ,ࢋ.*((Xpa,AjUPVJ1r1cƘ ;u:wlRK… 닊=rsSS c,#7tH3&u1iR_=(D`x-Z4w /0???e+O>guVxnUVyaԳg># :g?3sA?~g>H$rQG3&<_bX,o&y&S69餓VZiӦ`6 O㦆k>W^y4E>#XD3JcGV]ƇhTX,h,⸹/H/Ϛ5kƌ{y+#qɯ{f&?7d!##bxqj 3>y7VBniZkc&xS?p`3*mS8ɽg<)e ;w{Psi߾}E'zʔ)[l9CXTTy޼y;vh$aP?֭[G?:C ߑհX70{k?OTWWO8 # gqF"8Ͽy>K.mӦMaaa׮][lٻwd2??l "Z?cǎmڴ98∢X,iSfꫯFpBX,߀} B;餓}n-Â{~\nŋ-\u;tu5k֘r$1c7ݧz0 ww*^{w޹+7b;UUUhѢ 6Xcb&~:}ٳg裏CuuOx q69W( 6իe˖q,=dI{$\ڌmr@D+++/=ta?O;`j`կ~Fo"Z]wy iD\n̙!7o0 lڴ)8a!_fMUUUee/qc֭{,YHoִi,X`&FFd2/O6l3[&ae˖wy'\ k֬y/^<ގ^h7nܸ73o /h"hQ w}uݚ5k|W~8ܹsg̘qƠb9/Zرcƍx"?朧>`ڴiͫ'l{?޶m[D"vگ**-LMY~="._|ʔ)H&M 6L2 ~uҳgl2;vlNnj:=L'x@/ח/ r4hU뮻ό'} &y睞5VKfc3@Fu]ů 325";뮻32%/no_\^^~g[l{_|EiiipqƵknҤI[ouA{Cٳ{x IDATE|ܩS'Ýbj`VkSO=U\\Iܯ_k֜s[\r%;vlnӗ_~YZZ?!rHu֙.Ѻu_XtMV XJoXU'N,,,~+9{l1bD8:lذ>v!&Zw~15k֬]hٲe8o<8pRʤFd򪫮Kqk׮]f￿vۯY&c[nݻwSS3f:th,Yf9SZZf͚JK"ŋ'tR~jZ:s۶m;̜9sڴi& nMXSzM ׭[v6mڬ[gϞÇfqN8a…&K/4dȐ!C+fuN9siu5h'͒'fD"WN}ʕxb xbs/hM5t;wZ^ѩS'DܱcGNN>%Xi򯬬>ibXee%ڵ(rRJM:uAuxMM 9Kg} 7x^`SO=eUUU3hР~YYYUUU̜+-$R厑SNO8NϞ=֭[is*++Ǚ>}ɓ28~JkD-"DĘ핕#F[zu֍1sC }ɒ%FOHuu5-Ꭱ{c bAAI`%rrr$ b9j "c]dgg,fMvvv&fn5X:X!ĸ"rW|}#ts_?c 󲲲v2nfY9ޤ7 "|%\[o5'O|6W'_"|5zZkJ)7i,Cx۷+СCǎg͚{q;77W_?'h2UW]\[;jRSSfo,SJyg&X~|#q aĨs " -[- 1 ͬC)rJQJXz2 Uxm͙3'F MKX,v)̜9_>tGʕ+O޽{{#M|/ֳi3 8F[noTnҸnRIw!*wV LOD4o޼ -+"Fz7-[vg O?S~ÇW\aJnI&e;9P;v,X 8gϞ8tМn-ZbB0 i2eʔCzܱcǫziM0+{ 4hΝonh&`~L2bĈ.] =ϛ5kV>}:vh$㣏>z9tڵO>֭ *2SOm=쳱Xl…#Fضmۗ_~پ} a"vzFW^yU&L0y;ׯg]=뷇KkԩC8*++ϟ?r &M?`"ҥK6m%ڷooW[W]u3<\[O]]]}g޼yubR|͟?f'6-vZuY,?ԝws5n(**cXmmmiiwqUW2]r%fwܹs磏>ڼGMj߿G+2+++L8;lm^|H///ӟt)eȑ޵ky={|ǺwD;w:th.]O]\\|嗷hѢ:77ꫯ6t3SN{n}}Rjȑw뺽z:蠃GǍW\\;v_:f̘6mڴo>C3}СC {ya s1f*^DFy 'TUU1G裏vdեKs9T#4,//߿IPTTtWbӲW_}4l۶m ֹsKo~ذa效=E+**ze+hb̘1:u2-C{}iӦvիW~8=W B2t]SO}>}64d!c_|0iݻw曯⋗/_6wI]]]x}ڦMw=\tEe]}#3AzDݻ-ܲk.sfee]ppbՀ]u]ӓC"F/VZ+D"=جYڴiߣGx`~O?hBO>ϊt-V X,凅 Y,UbjbX,V X,ŪbX5`X,,bՀbXX,Ubj!߶z~|6;6j}ܛMws b з0MJ6# J(rֻKoaǔ6d/k{w6d3j2ht㦟A@(}kNW(~RB={o IV6$|9v!HBy f ^9\ at"ڝ ͫ oPB%`!P qC`@XS2Hwj&5c`m9lK8{xe䑾θ4퀘VW&_'(9PNQ j^oa&ۋ(л7fG {2%ހz)p : 8=ffPHH@@LQ@ /5 #APO԰nA+_k/S,nR`a#$(y|Ha ٔP==b$@TgKճ9d~aM DҪiCBv{2B2 âK͘k6KX5P HsC_jA1 9 7B @(QzndToιЈp`U $#{+i!ꔣ.*I@dF!CҰG f6BJSwZ1dcpĆa@P!Q4$ f*&ig2%}v#&qxTS'o27j4ؤ){ژ1Lg6O'i=vwFl*61 Ǡ4,Ҡ2;U( #/M+ɘ2¡ ppFXw6RjDR^kM$#z̰Q&Y풮D 4L LǛA7c10HHR1.{QgH#:[ŏFicÍe`zzn9ot`Ĥ4t8OI2F"𙰑(㰉V8 u41L hDoQ+)yנuc{'1eK(>ZkNF 3W bE}I) C}P6c+(Jdl,aٸ)CI#_pwG5M9Ф }di H#'G8֌ᦫk*0b~aY' fW !0x֬h-"H(|!D6ۇBh/z|\341A   "BЊ 8! N(L%-cr9NV²" _ |x=9ZN$d}\EXv8@N,JJq]rrbF08KJ Z@"Y9*aBT$D@  h#@da AD}R)Fc8 # z 'u"ʭy?jjMU"u( bF@ " E5NIH",>"k\k:s JAOJT!(Bm=PX0x  "" QDQ3 HIH-/*1mUX.ϫaD'#EqH$ꪨQdgŲ ^ɈD,HD`W)5KGPx\Ga^ɤZIq<󼤫R2͚5fAkrdMG>qq69e-?j[嶚%Ք媈K$wyzuȉ)PQI B"28N4ka"aUkvWKaVTFr[fgbەen,E"j}Z8Dn%'GE#XԍEu]$r1RךH9 jj!}P'""=G9DB.fE0x1/ s@! ݁5oyջ>FE3)`&Є 8JKL[EeN  f$IvCD61Ql0 4h4i->)F(Dc$h`3|4ZA1i5iAJ@D@L@(EcUJ`dgun-JdT11BG.@ĠA;^""N4 (7sbQT;Ğ^T6Fщjk֎ ,"!$aTH",K({a$"⺊}M +1ApA*+*9).F1yΝY x uqt/l*[G . zgfA$»uQ)L"aZ09i "=N1TJ)!!9)M 1}ABfcBT""lJZ<(@  ZfHȯjժ&U ʋTTүv<m&DJw&q !p<1HE#Xv4c  F8",4RJZsD)1#)8@d0J<}MZXkՊ;$f͓(Hv܉TOJ]*7.W~Z,D(<QM$FGH]VOy(F\SJi%Zr OQ" KT(K9ܘkϫw#WHG9#Q$0@DgQ(AvF(S!碢G+FP  jt( DǥrNxZ{r40Ɏ9nVߋN+ 1_IQH8;QQfP50b p  "ZYиlT)UA8Ft$N$KD%}@?)2#d)׺$w!dI Q$ǣ@^n2V;<@ r +4{BL5hv" }/I.) fP>+A` d}H|! B 3h(Q4!fkucEk3AE@@:hv2'+hVT,P+~JfE@E Li03!h)UEL1MBZ RaAJkc,HE%I1kAN $OPG%(( Q1 E)R5]; "b g`/Yk_"Nĉ\TrD#CN^u@`Ԉqi$@Ab4E,)EO$78QW'D'QXf &BTq9$!D@'WEk;BANQyQ.IVx"Y:M8$){1FvD fbWi"VDD 8B٤Y@\($!y$Z AIt$ b46@&@{ZX@EbH.,ZP s'7 c @QXX#>%@YkԀ""@P%(IN^]=O*͋yx5~wK&vT}ɯ Q3}MPͤHfN~HK%8۩`КQHHЄ{جtHXw_ѡ]$=͜:ǔ*PK6czDHu#FQF<fAR !q>L_5*@M73% ɩ=S<BFtn]N湹챗LRDߪqZ'I9)%Š*E( ݬ u>hDE &P: BFfFQ( ]UcP  BEZDD(&L͠IOF 3r$dšj hCv㧺6eU"Z@&@*Zp\[$]sA#h12* K1 X%N:Ƿ+' s+.:QGCuTj3jz_A방`FFa4kH8\0Ndd"1kfRu\%Et}WWNNP "$ kP@&Þo%FO:@48$3x NgY bfM"~jE!Dt"7Y"Wu=Ŕ%(L&$ ~*])2͘6IGdMMm kKN!x`j-狌`B"f A1)tjoK)^OV%_7B`쁯Qld0vr Ef"ODkH MQAܬTHGH$5Tp D'0JR?q$Gd靣j @]{{gEv3"R o$wgwnS]U]K"L<y'T"T~(@jvNDC:Q>XAicTY4B%'n#q2>ϕ3gw8gBJoA&8,),H"3ae4!ަrzz.)HᱟN-R=#A&!Xj2Ork4~aDӊER+#X*S)b)3B)KeSJIP(NRNP"Ji9˛<@^]}^ /m_A;TYWY/oٯMӋ,~!+DKe-,iRh/~_cHZgZ^@#S"+̍ (bAh[㌲/$Cz 1:zv Z2i2 y){/ 5fg6ەy-%>.C{`hIŘeid=xԲ]#ef HRDƹO3KpP*s_RTs x$iQRn|@ƖxÏ i#$EsbBEފ-)TE:^MTy8Ikv.{[[mǓN'ZE- 1cTmPZ)XRg#n NiecZLJ:DIʠ2,)""BB\R[)7H6ʌV͝Nڽ|Q̿<'m`D h/nm)&i6>)_uk 6tf>ю~dr3G9|{z4/u?ks`SUg7ZvmQ`+ gwL=zBnŝ,z*bO̢5440LI2'&uC.>dzOeKlH@7Ftgg߭}=u/&^/;Vvnem,Yy+V7京O(<|7-Hһ'b_I]]/{UY"H "8%IJ5B3fc Ȋq:fm*S~B-QJ!i7fCcK.ǧr{wo~iA@ff20D>/ hSkegin5>e9YV\d!?O. LzF:e<tnDL2C3,0bn={u+버Vٚ6l3mȦVSA?SF3eD*2(GXcMTڝ?B5j2`!eg5d(npШQ:h.ed4٘3cfLɣ 6(;7OVM a _ ? IdDe2 +&@̄bV 'wVV6j"{J$@EuD.~/.7 zCEjةNGyͽGdmڟwfdrP&Jտ~}_+˲,ު3VKf.@*Fb*EI3JTZ"=`!2 =%{aF>i4sw@"ctD(S-"ebK-َȔZjM- ,tWW{Ƿ:<¦سo>6ۋ؅yAQbzzTz NK`m'S7Lj )|=~__߽xY<]Wƚa#2 k̢zdQ ƀ|\EȐs*%"$ujt8%S5r 4~Zd>NKӺ* Tq9_ޖb4Ꙃb۷MnF##PI/Ĝي=!JxO 1 m2?s󌏎d+'>jO1>shS>!2x'FgBDqspؓSZO7qT. {׶e-gh4Wj^.k13342bs ްZH ]tܼkX-lFEzelf4d+Ck`zfؠsm>g}0]}{'dB>/}#YW&t,k;b?RDD]ye8^|wǻv|1#nWk){@w'3AXy,nS*4+%D]ɩw뚙SY j%:T=yl}=Q[/w^zf-mDh4Dv33ȟFC WDlt)N1=`"˭H 2&mam̄9ɭ1f,\g&TB(!4@D @. \LzW799Yo-nBc=݂iA%jaIKGfzɤ5Ӊ;bOcWaEyJ DKSӵtn!v fba,憈a355Fi.| w7/|Ͼ=ɐ͘NGݟ7gV& 3dL2X2EG#jk/23a3j?Op#=w9laP%>m#MEDJ-a\yrwm#cU}mZUTm_mrދ f`qK-FZoyݝyޝbff3zDq8 apˈQ %㴂- -7S RXWXtD?E}|n_[ĺؑ^῟_VM^phlǝC}vq]=6-#p7_-/>͗/~8޾N?֧z?w`ATNi؆NN'y:`p }RkfyլހSJ XkTN!0D"-[aFw4#wN{hw}ysS ].m"8- ‹qN$sF?zdx>jk1eo)܆ c`CYG40h44ai}jϳn^N8T^^>gsFeEr^|=8^uh~0T&f7rkbv##3զJۥHbQPoͭf|rh4:a!3Bfǟ&3f&vw;dm3aO4+O|U?(VŸL}I;T4m)BgȟZq8N~wq_~qԫWū K~y<[r&{m4ˡTLXF *(L7G19\s-z3/$[_$SKm]NU,}YՒb2W[٣\R _qezᖝa L*qjevFw;(E1[(mIy-_L㰑ei 'ТFس vlh8MgZiA ]|;?.eGڳDⴌ\OKj1 [A0` }scn5Ha61 =RFֺ{ciŭV1b%\Vc$8X@d &͊IYHlXt®ib{"h)O\W$۵)744zq[j@6.YfʰidS ,Gi#}}Z뷘rݎTCdVK'2[5O+B}RNgD3nEpDԹQi?͵ND֐r{ݜ⸜`';%sٽZrjWmj1H#(Iyv2~r߀ε ddwKBrC41&KRa&ֺ wH?'3|o36n XK&|7jp(xSHK,&:ibCcH-G׳u6[r<9xbĦu({ -yZmfiYLa閮p3c&1R0f,dٕA{-:=ZG7I`Vj]vjxs#x *gPwznq I&'hP#;h!~" gʧϬ3vn \gO5FX!125qxlto7مxxw<|xw{׾W tyie Dbԡ !LU3@>BG(aHp9I"DֆS\X23t+ _%\To%o~?}??{E.w fo2(HqA铹t+kW.Ѫ8%?l^Y ~Z]IC7uya_}uz}sӪZMnĒT,-892UrwKww+rE頻ݧTDb*EMAi%॰ TlB,}ctWW>߿>BRf(VA73Y3x*2%&9DN`ĝEyg֡HAn砃-T!,r=sc0gSHv8l[v#l[ȍU,Ժ{lv\cxw{3[IJwZ ˘Q02Nҍ%[h0w;^@ 7hK Ld Ղ*mx'i[0,DeRf6F󺛍5fMvΩRED}U`gt$GP6KFC?~>W:Wp)F~-=uC@sp E∣HaX"uiM.x2Kَ:wy^Lj(L^%sK7+O"BYeHF]p23s8d&b۷'GĈps";Ԍ9@7&u"Ll_^}ueys|׏{v{(+փMpZ3a,W^RzUηׯ~N?oͣߣ̶8C[YPUkkqY|Ż/l˧>\.?{ǿ;N^2H Hc C4#ʼn+aIwZHKP0MNN7/t|20י 9+֛yT вe^^"vpz^07EJr1b}&/\[/zDݲp%A!s[e%o Z#$`$|uM_mD%}cf8K<$& )ӑ҈R",\[^u:<@2 Rܱ.LM}22#3Cr:KPCq8Ih\it]̵lK77r08A/=:7%H1f# TD,h9!rPj\\>|=|+7}|n-sZnY:4anQ85QE2Fph<Dx&Ƙ203TZZp@gLMlXb IDATF*R0sG>w D4X_6.dG Rl˂0j#Szo e}KnFf"%"a0M>0QSt2YP:- ,a8߽ŲwgjOMNDLL,S{W{CDO vϨt3׾P{:ux_U#0>{/fk=o^|˒ۛ!f |iH9X)cA$fs"e*M!@Z{Q:V ӺdnglGIlf#S_-՗֬L70˛jw??i1+Nd!RO@H,7A&16eiȢܮVp]y ѥ̷9y<Τ\8;, ev_m8m*ZC)a6,Y ݐfDMyuxӦ/C{b;?G6p 7X)m5>i9Yz*i ڎٜ#dkGġ54ؼg6·\}bSSt(Lh]At:.ai9K)eӉyNmu8T͝R)wY|}"zq$f-1L#zqСNRL<;2-NƲ6wG;̸=1`yJ?t۞JV%Ԑf3#5c/3yx~_v0 u9j|(cyҒeqSɀOtWYqOP FX4uާ!mAu9Y晥jScG-e^k)t:n9!#8tuHԫrUpK\|7/?\kCGxьZ($jX"5f#d:gӰmB#99a915 5[Onll>328rwML[K'X[RJk-#/ZUk[<X bF3s()sSYkR`}j?'Yמ2 Bܪ@!ΑHelp{uqws;tⰍXS4$~4l?S P'ЎD@!?h8Hp!h+CfB&ظ17\m옡BFcב&!( >+N(Ef7!/* >OOS_ښ(BFٕ Ykgȫ0.pvf2ɬRs϶zS= )(2:w!ܯ뽻}L1z2]zDu!%w , fw%C_HˢSډg?}qw 'N}Z.Vh4.?$ O~t8|mP cHŖBU6@;Jwi[{ِ awchf@ZX}v{ w0GOi]bj6#CDK[1´u|q63G9tgg Q`F!c)C Ƅ^Kizf7/n6 }*sWfZ&d`) Ƹc~FѲ0$UULР$"df@`IODfjiR*AI2GoܮL(:!V[R۠73xEm)qȐ~nvVW~{ Զ@H K*⓼)plb*0m[ւ8TSj6、s9Ս|mVc@O0dOѐQPM/%4x/8c $ Cn՘Ce#8Zk@<'ZM)4}MVֲDPah4i0n~xݾ=}8vU_͗We1KX[܋nflӥROo3fվ+LW%RX/MRv_p:^, N wٖ^Xz;XrG3WVG3^:2X%NrzڗnO~Փ )㒼iT*SC(ܫRdׂbӼ#O湖i@$S4L @HX?d~?H$!` *󧊖;z74\ۦ? &2e9ok!mTKzFDYLI"MOGvfX-(1iɘxQv?C"(/;~rJ#з1&IŲ9[ιԙ_x5͗өbWkݣ%:ew/8e 2 QhY ѺcZ;4<#KaP] 0R(#b._z)?{ǿwߴ/_5^qC[ۇՄ c\MW][sw*S+Y@)RR!z =C(PqÝjKrj9y'b~m E߶n{&$o?kc{D$F͉q?XG $5ÒTe*&1c,`,CcMAsRh%X)+β>ox}Q\qOW5<>>ͧȵDv;yi>raٕ{फ़-na)2b,٧Okfѽ3`u3Ekoorw|x:S7nP;]17B?軲(yڡ hв@iwZ[h-OȐUXXVKdDԫYYu79[m5=T+''X&}s=K.Oߢ黾^|aq^|P{Վ_5h 3jS-Piq]քycL# fuK4:R^ΥDLآe}Z?К`lL!-2P?x8dVH fI9Cuh8#2>JŸM@k@g9+BTZn;bE)#n!sX`HtbrCՇhl}e]n_Ji,r*hb$,G6%Qp:2 Z=% 4򍅈n=l){HVFF0e!Ca~Hqsm) 1GBHw#cd  &E/_]ګ^zFt3aF w Hme,灦-]9,3ƳEmRHi fI"aU]ar`:=h|16ؚzZ tôI9gA%|5ZO5 LVUXB{3zng*5hc"JT9ϘT]zZ̩ ['C\7K#O0~D̵$|OCvle͇Ӈ<^m=={º!}{$f2W rhnsN]Y,̡,b#DMZi1ѧ~BoU}N)E8QH0WE r @]%-y;9D!AF^E/λU?ێ|yrJ`?7& htS.JO8(cov!<-U$)5EJJ9 w_3B P#2W) (LZ!iDB=HWQ#qP~^"0y@+!$l]!B87CIS{](oh3no&-ܺ-M$t93G 6]ᰟHlJ n;c\YhYh> P$cu61]K]yq?V} ; 㒟O͜IR7~R|n=C#IBJ6"0CHgfFdF3KJAI ݒ.6bB!NVRcNwc)jTd~vmJz<ۆ{F+5͆DXkI$hJ(DDGLwiPhR\Ne?,;̉IMbfs u&9rV|n.Qq切7_ݼU=LOŷ92V ,S XD=RI0a¼UMCk9,H,\M\J 変1&. a~|͙{aFيŹDOT| |d ̫yfs($vb@m=eh}14ʫ{@ZR} ":"Qy6  r%?]:;dJeI $./="іy iv"r5 `+Ip#&` :-U҂! %Vu&[AdUˆLQM_-*FjWuY،HDr럸4!SzȖ"#HBira4 deXPvsZjӚ0xIwĪcl]D_tE\mMܪ <ND6,5&1fno6_nh?ƶ NOTڼ˟Qql{~wYݗ#p:6wFȀ20ײNOwo*)8qL9q#5D¥ڮ>1ݪ6INER![ ZW %:K?i~UoRudy59ickhlj68%F6g`+o__lv(\:9%Q3KoGv(~sß-Js)?-\t;ɩfWO}G}8l ]O ]؋Eq$Q 9g ]JMHJ bK%#k7 %:uc~7wc=>#rLvigi@v-5L8g՗y9ǥfDh)SzzuyɩΛftAsЬ[Ф3IbX(*Kl_z2s/=x74K:W>0mh?Dyr& 撱x[܊-%I' Y57}AV&M"᱒ "̬T&r'aLqcBXO.tׂZ"v[?P/mCL=HLmA䏠FvoFPp u$4ɚ^0ڲj,T9*  x';WQ|`2pJ]V'Ԥ.ʱJA dNC/L"":+bk&$aHm/_IluvGw;v4v.ly<抣S1庤ioۿP3gXtv߿ \xjKt:NpB:L 'Z#@U(yT6I 183ND!nؙ$&g`.e`4/ IDATх;NtˋM6x߹pRn̲Eo]lͰ벹 )b !oPNTBZJ.) ;""%ۇx8vEi~xsհ)v4˼ŠZəi3ev+gO$[],&uo vYM  phP!م َ'95,%X%x}G ɠX Q6Dv!~R\} &L Zb5[ƖAr!j#+K%_ f*_rbG onftp0!orڎoӻCn֞s}qb0Oʽjf_]=B9ӓl՗W~>W? wS6WRNh?RAfP \sPZcprpuU9:R1! =sMw=&9)Gua0\v]wy`eЙ:Y66GI(+FX_: <4?;= C Xgj899lGM˖b 5zxzӼ ('O (S<=.U}w{?[TJ KmHH9kWVDܔXDUɦ~(le)'U%g=mp|v~Ʌ# q y+~:vh6enCJtOtmw CP ĩN~"̃.OcD9hvwi?0,~LgeI:[L"JRM* lK#^/݈S蚳DbҋPжͭLNdl0I+5/{D!Rhv25cDCm3݂-}U}{4\'5W @U9 wF/5R0lw'p@L[tܔ^;'rk7(;. :2K&(nffxᷘ~ɽy3wǨ-V8N湜ϋMû՛/O\>Sgf7*G}8o<@lD|b Ǘgn,ٙI/uafRddjN[+F.V !)wP^簳+oxY2=l#|#SN7~_|G^vogdǚ75BZJg)xf]_w4v[Zw3y X ՅQ_{ݶC$b7 ey{t u)J]I`ST]7l/T”m0rNKNNS$%*Dz,htp3C fDFZJyb%2|%1 ) @¥;9G#0W.Op˽Q!ԚC2⫯hD/`_8B _||auBw#o6w:Aõ.9u,\kəjD$9{Tm`a 2oĴP@:EĽZ5uֽ+̈ZIB)hp!J\$-Mkf"WTTOqjGR0-%E8Q{13~P8֗ ֽ{4%>=BH]RlјL$A!mxnFcBAڠhezDE}.hyxS`kHY> "[п龾N_mnrSGYi2,8t$;kb&-Xks95E^7W׷=qYjΆe~S~ÆëZ2H=?<{KT9Z F! ev YmtΉ$*< au" )R Oghsv8cw:b~\ME)zXHǼW-4 9<[Dp&S$VaslIOuvx"ϋubGfr6%z>K,4R !P:;f tq=0:W1GA) U CcU{1& 7fv~;Lyn3vv:w܄Ir ].7I\Na.&(رBu ytO%6_+r״PPN˪J!uR$vݵh7|>Fa Q͑8LmAT}kf+؜}Z*N {sr/j&q:r|[""Qc2 98$t oCֆxO-j[zY[fm3J,ҪR{$Z̩"Uñ,`4N2O6qX(uCkcgEaIKjUd8HÂy4 d$}kݮj7W;O=]ɜdP0j*TTŵ9 ©T(3E}1Gލw=A-KyuvOc߅KMG|eS]$qw +S)R %4D[K2#hG;qQQp8r?+,7VPH +%i~AGq5%vʉ\>e.)6K̓I%yA[%U)-7=FeJUiom}.q~"@I_R6WL˲t"A٧Go;>%O{&]Ľsr'D1,-A=@CЍ[@ʝr uf!]So.m61d>-]J9Zkf&y&Ec1s" #` 9ݰ2-yُYJ.שO!BV /5gԮXNs:ο-c'//~8$'4MRAėwdaZW[p bgpNBͨ4r+8ipH34?C (3ĉƄ(=kЄ_gGg+%V[P'l}5z:WSS^ $Mcj_o Z:mkUj 'vqaǣ-.r<8f {/*jE)5u]G%`88g4 csZukS֩svFkXr2Hxpd. ]Bnd2W5wn?M?wv3t&,Yq! 7K&Sk\2sU)QsUY Z~Hyv:壿s_j >|x#-?XJdh "MC($܅sbi07eYc[{F ZHz=wn/N=\%PI{g.FQ׫tnj.ΰP`e. ]ˤ0 .N5eԙT!pYWϝ̤cw"\»p2Uf}G^+Z-$HJ%j א kΥ h.m_+eݝ?fB> ,vyzF ăN] `k>m`!fK EG='P5_4<̴BXV3\pa.6h 0ŅEň50L2FO^_i^pNQ!"JeMԾ6VjpS[# !0p_qղ)Bmu\Qgk^Rμff5{[eᵯk\z)lHqw|'}vKeqYdx,FHW55 <vG4hNKYGv{]0Q}~y3*Wo7e#C = \87t,v_B- 0;q{ݩj93SYnF# ` TSLJ<SxMF6ϐ{gUZVB4n5/mr9SUḪ60!8}a^તɩT/0r$UFzD [she>|&RbUABTS`6Em sq57u<𮿎K 6[9Iz=0'wKӪad-"ȼYY?S %«sD9-IX܉EhPilajvF .\G1 )ۙoBqP ka] Jjc'"[=|ܪ˰&jk4mDѠL|ƒd ٗeHlAwT Aj5RJ̬DR!9cnJD٨ISR$uQh(yBX4lE*#8̉|ׯ˛./ЃrM@)eq -Z2ĽEmMռP[+QbX+}{!xіbh?i^|:+'Ӱe+qNK2YČ+/a ;=ΤNucğKyxQHrra$M4W4Ԝ~K|$"U޺= jXG=}r.y^jQf <.{I6"T\v0qOpE9QuFxʼb߼(N06/!KDX(Q pN`4êz e2Ì Q1|w -O[n_$$z qG?OwWoNP}<}pB B%o7Kho޼ uE+FItSbN]׹{5h1ZKijSDDEmЅmie=hTzC̜2χGǼ wiCuKUDc9hK]jqڍ}8g4aYjїb~ߠ Pʹloe:צEBg?|6?D)f*L=|N˱*CIxM~uSJ87 xe\ɬɍz^D6"IDLH +!HkTfP Gw_/+P Yqt 0HWDC!#c[hNS>!d P[d͌4wX|\Wt _e9 !.VE R0ěMK_5 ZRemM|dBDkK4V:쇻xKw'H0Ȉt>W7_>momۭa?>y![3H3gU͋O9(ܨ]oۯGΏ\{paB/xz`o{hPl7 i{lt\ Fp1yj)SNrneuV AZټt}W?|?ec@C1A!q`)O"& (@nۂuxEU-Z^LhÕuZW0iʯ;,4>HbA~8n&+ R*"xIK w/Z]ʭ!՚ =ʔ8"/(#Y+D8'5oFF0FlZߣ`Ԗ3# D3 'U1Wt7*?4ȭ%x}}e?Ɵ1xr?ƌb"jv\ژݣM+֘)o$ %ƮnoZv_td>9f>^MR̓rDz X03ƫ"29D IDAT r)1D) T޻+\o>ӏۦzYJ Lu1|>% FP^OEܙ"maV}WHʥmrjERCBGV/۟Y|:I`й)m;b :"$z>ʋeR,Kswŧ:^>{?N<"dϱ{֝e֥{>;u?\vr~ Ƙoon>,Z#՗2 +\ R^~6a~ῌ_~{st5:{G/YÁbeV+20E4w' sNQϋVmvvSv5ս"(cuQaP/??_KcPbMnNvWg}D|61׵:E#ȭ=^A;cRswiztMIVrąԂC L`_D6I. bd1Cv3Ϣ<{? #Xe_%XIk7TS|l "s/I8'i<$$APJں®f`h w\jBCma2H ipcS&~ xK5Tɪ3#y %#@x~qߥpu)GFfڹmV^znO֗f3kDC3[I/no/|)ݒc *Q 0fˢ"k֪YG+#"r BUttߟnr9|T]_ß]a<(>wĜRK!&Ws"RhhZơ; @:S47e,6MO.+wE:IS)@1CU8^Xҽʖidk%kn[i3DV>HW7~7y8t7?*57'(B/bVlwןmx#}<|C^p˴Pf-}~3<~W뻫/οݟ{vƾ56W}gS-Q&%CN IA!mGf=$IU3Gx,3r_ˀh2ӵtueVVfDdF/^[TEnD5|sd823~TEyaJh,.eZ$4ڌx?>O|o~cUg/ovWwc}{Q0$?G GU!цS`i&lFn_E-ykQ6ȚSahɏMVerZ &}o1.e'-w7Z`RL-ew`To1 dmfc@p^/DA LuFm32 %"-33K42\X2ar1vj^l Ϊow%]PXNH4PvoAdf)mS Zz4*j\0n?٦sM]=iaY"<8a`7^ݝ'HgW "[?3*c[Ҙ<"yYf;gb  W_O? ǻw׏7; ˍS˟ .|<SJz768SfJKIsZ}Qۄf00"A0ZhG,)K꺡z ۿ/|L%ͫů?}zQ u#T.okKP Fv{ule*R7̄/QLvnGRoR@D5iV'cG!,IU ԊsS*,҂͟PƗQMz<~KY,*b <̉F:Qݲ ,mo&U픢p?x!K{jtIWvvAӻ/ , a?&ڠbIxz(N1Hxq/CTWpw3r*K,3jk2"Z{?BIќ6t¢%Wja^xUTXʻz`~{W3$H@1R"Qj54c:ӰZF 3!p0)= =?òl|.ͳ>%?6F80l6fАdHSnN#,mI!#iOeFde9@,A^w}O,5姏4Nn]wO}o}w躭߼v;T] qv4idƂH2f姖s_4-3%rII%JY))'hx U .%xmZk]D Lss2tz]LEt#|߼y":GDx5i?n G_W[ X-F@4)]?֚z2\ Oa]F7^O>zA Ynts M#uioi^n2LUQ=ddޞDkeMѰ dN&A%Q)TRK`*ޡfmS\%}Ґl HJi2LrN(DWhII11i.ʈ.U$P DDR$Ȣ Huw{yTDD " [ BhOF#\+qI"UT9ay=_wҝD..QC=Sew*Q"Dr(T?MAOoe\)OO5!ogyeys7/;/w߿.Nqcյq3 |*Z%PAbQN\FFP$Tcdg-6h+vl\~l.|O-:M$!iEt:OӔ b}RZrI0ZJmfў5{a@iT4w $S[*#j%"hN(mGˢf56GDH H^A`k&fJDL†"3!SCFT/4z<+>/8" CՖ|tXa\ҍ!H^.nMgxR~~u|?v>y7J%Xjg5f+SJ3F]EDX<Q3ڥb\ikDY['RTIGK? ?\7,Ŗg};wنmDNo󰏘^wKJd $ZzSTrXs39$Q$$2*~֭mbz|w@~opHx C?͛ۧBTjZ4u^vWn0q8ǽEpe?kz b)C H$**+n´׃N׷LQeuW\ zI$_n?>EnIB,^K>m91ʩ[8nSz{鳜|sI24$D]L-fAݫGHnY naCD}}χ>m2u!NN2ϻ'77W׷\{RBW/s7au@|-װgcѷ &UG#\xV F̕,ԑ I[-2B!+G,e'@j)IjrǮy^M5w]MVDsbcu 6cmh xl/fD RuW0E2LҥPXh}34 T"ҡ$*!D@)+S#D%PZkG)NmA"XJU<¨PhYPq6jXKJRAEz|?y2N7kVН@A-1uTniZ~!DԴ¨/˄p#jjf&@&ER'BtL)\~խnw{]Gf|sOWv48D0Yv=VʯDxDI,uZ[ԽZB7W \C\wu'9tx)mE&Q1{;qlgI 63B&.圷_ãKcBQқf+ЬLMB …@R\gwOċ6`Z"{?W?ds &C2z٦ݦ{W2?|sNW,0u5JåRQ!v=\͒3. w.Jh:N푾:&a|ck >yw?}ﶾe^NN?-#Y DVLC!Q!k93Eõ%) T!$qNyWهkG[f/55\vfhwx[\#hLP,wsD=t0 SԔ; u^*AUeQ5̾JŘqDb-CajZjKH/PIֹQHxx4SKV"9@]\ *Zђ^\U/GNZRy怫Vh,Yn;ȋC~~Xt z1@xP4(PJKD}"mO'ǗONO'R/.2,ӤNv#ójTTD8|ATA# k(DwfF)c~k Q?Fl}2<.ﮇ3HoE).)DaTS)gwLgmdZ^xSz?Ǽ0͏W%. 6- Peyn;P'.r'|0-12 Rwu[W+Y ijN; '@N_RWKL%V2LSd߼|ؿ?|̖|5O8|DC2YY`r[!mĞIZ%X—e֔xA@&k,1DA]07|w'29w6W}z6}T>9}zc Ob?k(>R#.h3yb"%ڃ0i>+ўm,&J 6T: {^u}#Pģuv\n3$4aq?.[,P}Vd{sVk}73Tp,/vjK #=@)HijFK)-TK8a&е{Td57G4,jB]BTެ,U+wn]m@.lQ*iB $Lu8LvPqZzu_)uʠ£B:veOϟ]?xuDT/Qg*2cw)Hm. &Y5իum\,5f PgDI7z;=.ZO`;%y5P>O$*btdQJBΙ54@=tQQ*TQgzBX7C=QՑ7۝?7Ku7Sԝ]JwsntiQ=iNP6: F%JoUJ6u@NZg>8J?BHOꥥMȁLUoۯﮟq-1u)jWMeοu)hxt !QjYfI0F!I`듗hUUge9纔%tc)sG`,1wLJǷ?)<ۿ;Qd4 FqdH2bez;  CE\5!Hjym30jo!mk'!4ʊi BLmsPwcaoݰd:eQa\cMZjpeʐX2͡h&CA4b+> 6XՏ^P.&p !߹M*H6J etQ܇-oOٳpɄ(v<QKATee"9EUt-.5woR/g4h}gМ.#唸2QW/J懭ˋ;/*&i*h8eQQ]D3)CT!hZ dN LE$i\;z8U nFXd}UȻ9on?sb$ps>q){mRd) ƃNAS\g9׀Qj䮏dTE39S %ܽyZ~?v/keWeR~ׯfxrudys'$勧`:=RKKni5*52Eٻz'ѳ4&A͒RMT_Jai̋{)$1b"EzwPEW{:wl.ÄO?ao Pk3.@l @c A:Фj֞҄bbN|>pכ[@>;^Vu+!+ihh *S d \FQ,,E!ɼd) QU{8R+G@7& a 2<I3Y!J *mu J3\2 0"24Jm6U# k"fEe\c)֎"7wÄ+DXFCKyr"TzIͳ'{};ǹʑp.k-BFFA*}hHH:la?^mviXL\k_J] kB/^MRdG-VEKRҾڱ֕6' „nfd0Txd,Y4Ld‡w_~RFCBTHJ"H431?X VFd"o7KGSGdse.6|z48f#q2v~ns3l?[o-_%^t3eDO*I @d[&(Ѭj-5z[dT0F =OO?Ij?7r?z# IDATz__8a_ts &P:sXHH`f ږG^KTk ~wy;\⢚΄JZc.^"JYg,~ݧH}睜!m:eDLa\;ۊ;zK&hUl6\A"" * Jd>P A;ŷvKpXŪYyPj4yJ%SAe[ Evjo~8vO%b4U&43oh5R:jzbLnxǷyaY]eTθKn3!C6NuY˰qS=f?|oov-q$!Tт/O veA)G)0M!su2ÉB,t]weO޽{x{~Eϻ^S=/Ў"`,5Ņ h&aR#4ws_^J ~rHҒj(j<=/Pvȃє#Ck?k0\EL!橽D[ IIu y i!Di~ ʥLh.d4 D5&+Aj&\xAIJ8:ޚY<-rrPz^+j(TihpSn3ql i ;j!4cQ0 )5$ZN!P>B+CUZ:U@ȒBLҮ2I壓A(dۉ/M6k`*۟5*C[ՌܕͽF* RX-.?`SوX]Nja0r M}yﮇ>?):Q\pΓ/ K1- ᅵF[UI P!JxZU˶ RvkZOI)kt{GUl_7%ί@hVec|7?H$TwFA!Hjj'$k&Fe r8Ҿf"s꯺'}m6Wi9~]u(L8@OfjcXNeM/y;K7Q w Ԉ O"b.`RԺd^tF5fpa;yyvǬ_=wE@tbaaJ-:^rRq V 2af9%5ϒZ6fl+^TMd0ՙ$,cy8R =.wfGpɋ?_91՘ܒr}of5(<;nw@,<\RW.2^M!cITiRfU ,45BEaNlfc.:n@F{z({?Χysv8=y)KUfx8?&ZT!5R DIM0 #KܗシBvoP|\^nf}ٰgwarA\}JΒfIOGRI9WIy_GbH)3(yJHn6ZiF2%QJY<( uPN"LJն}ް[6s~ii/}.WIjbT jRd%DHJX@0U$ۚAZUu c,cmB3u{SǺd65|vJ}ͦ_<~ɿW>$ 5ΪTa*2>$I duH+TL:qPa&.`0 1GEW6 j(_}* d14&J>u];Y%j˩˃X52n/j9Wte{7HwWUڻb#Xܭ+DEsrBU,SSiu_7I)gEd mF8ZW | *ě/Pm5 6*LݣyuZdZ֮8@!sBB``m&mKF UC hܦbnB#ڇt|*ի/O#+@PMk^TSUD%\!`e@ ^q#j hqwS-$3QAD–c$;q~pk4e>/ORWgZaM$ֻʚPhZ 7,{KOSʹJ9`-щy:SEtݶKW>`{Ƴ|Ӵ>)~Nf^jaTHګdZ9u8#'DԶZxv%`xܩmڙn$dy,mɼ׺Q딈`Cr!BP4Hpa0z'VD kh. 2RVZRXCa-Es+ꪡZ.5vLǷ͏B_I]*-Gڬs cFe=ŵ"E*ڰaI/Esu&QP'9&@jvoFWpǥz)ZACoy5S[R,(DuS2yQ+̒{M K̂>j$L"lJRt];b, Yӓ=B#I2m<̨ʆh 6S Gk H٬F#'Gk2hE͡4$TEa*ms )݂CI2EPl师 Ll?=]ӎYul-d[tS/RM[ ]x~?NcTN#o,u]qߟ}xt{/oe)/~Ǡ1#uoaHCc$5O㣓/l<} \@k/`#*8kLZai))wuZ=VaS USFZ\$*HȚ TwP[x^(A: N`I6B hrS/K1`b4:-uZm_ll\q`/y#~ qu|/e"`ڕytUy] 5 clJ#&hN>ME$ *N  "+d5~q9)6V("ш,qEKNBaxDDe(H_իKԜЌ@h~"ΨtcgTQiòI|ۿug/^ϷoݽBF:pj{ k@F)bUK @ DZ-@%(TJFulMX//;sm|Lź^_.VUE!k0TYA8\!؊J NMќ%א6Ҫͨd{JE"za6qw05BFdd_"MU`D*!+UۋAӇĊksz60p@ rH1&&I]ˮrzp`űNILoєJ;yq*?|- &1Qj-s-sYE.}hSUF=Ji*SEcx;Cc̽TFSjm4QeiyZ%VGBhHpq0hd8/cz^VɆ2VRaEm-~2_śϛ~~W|&V=H""b?{E\#k~k|-懠` -Pȝ'2^{(Dؒr3=YjTdcDjEi"F#ṢzGU,~ϨvfJNuO:RP-b!L0M31Ԩ^tv5.`4Bs.ӤSk V\ 0Y85VDTvj L.F VS>Kr@!&}iR@n3c[xĽ\[ eU6Í}vvVd÷˺stFc(OaD$CU%R2TJ-\pM򐩉3DG6I"jʤD2ݷ.f9f04w߽XCղyl;{q֖H|}&rģSxN@a{#?vkjyL8q!]p\"mABcU`j&0d#yEP3kЌLEycLp3@CjAxE"d2)1܇>@hz5RU.!F*$jFk0kcck]zfR ժhMP1ut$#ͨb)Bd4.?;˻&(Ԗ TL-Vj $|";l,pg!R-@d"m)#yMFWw]~^[Yҙ4ml} Y۽S>?v-؍("G/Z~goEQ[ OsA"jI.@RΛ !0vl(K׃2 >΍I+ɄNUD#fyYܽm۴4M""3wTM"j{DDhMw&"SJLbPx3-oGdrx3j%+Jឥ=D0Bt"H3L ^D ,;*C*~͋zԧ +ȄB-xQB>· )ҒQ+4G?ŋiY'̫G$r⒗/6KDKpgLL] PdIzjNn&Қ(L$ )">QR;ъgC& $iIdI޿z6uf~;3b}ᶿ%֎lT*_d2} U7&?OL y?m}nf]n}bRy;MSx6_i= n}:Ҧ/\uڒЦ=Ll 7Gs 'jH`LMp76)PAWz_~iB1-[.*lSe9=m:,tnjN>vMyxY_NfatڔŎڑBckeqe9x "(nݷww鳎Oo~2Rɠ4@{jjw6h "-cwgfElw_54EɫIڑiZu3k$PI@BxpzBdL{ Ga"s4jȐMV~1O PUWDMu{P`<,y3ͮL4 jN50C GA A E FL24(SC# dI.Vo՚i#ߘTa-06Hf*`fv/ H&GKELDq`O[19TM!q~4g=yOlhkxŷוP,eɨƵ)s #cD9ɍ!i֐RڿG3Z$ME2Rmr݊i2STTC}q>u&z_eh9b\.aKant@Ż5o4>81|;'d}<6ER tJi88T*8K{=X~)GDz1b%(~>I"46G(T雷H IDAT@1b(4 P(za>'i@ӆpW":{pF?(D rًpB|g1^ҢVL"l?/6 d=3'd/iKTM=O֗9u_۟o&|jFn*"&SY4 uo/(=kzVE}b<'a5f:+htHHNMS{v@,TQXAinM&Aq h* }Z#j/M$^)2+"y]YSD&5/~qJ&i MIdj\'C3P#]EQL2iMR3Xt)=T*H L"!g kךQUdXaUUX^TZFViČpI4H5Ka o[,19ex!/ n哟+qZdU̫ư al÷cmd}M9>W5ƨSS+k+ݷW噴QNmB{&bJGJ($l G&(6z;iG g9}׷/ B1ƀq^&^~6MBR"CX>ƳM1Wc,eaVKy\0)Р7Г }viDJD YmYC)dz8/. C=J 2gWPV+$'"%CÒ_/_=0ȔL Dw109@iˬk/hZU/UUILZM j] UUzn S$*ؙm CR2E}k̷A,Gb2#Ⱥh,իd-,|= dHj`Ԙ2y@U2&4UT )'RvdbJY+~$ŦJAr~2 kp_f$ۦ"FGDhM*PT_)=%ҪLBógMvx ݳ UNH QJN7} L>0n䛞0?&#\׸\".> ʝW+*Л5PzUރ~ BfddȠS&RE,mT%4VD(M$TZS 2mfbIEwH o|^|w#ՅnM3.c^$4F*tL{uIDrq2)߾pysOiGYn|s h'fvZpQ m1%\r!N0H[=婲[Dyw F&Zbg[cИH }mm3tNw搚yڟ?Pr EY>![$5݀juLQ tY 5orc7mq}zKS*샒BPS BTTYjP w55Œꡢ"TaVہRw٬RW͞.dD>Y7d0޳ı{,CY/I&6?r0omL&Lwt n2bfjUcmVĔ=T?rA `I"*lfjB_wd64m]_^ wLj@!=0Pe=ϵR$( R S`dFx4N%Z5L[JrO&byfPxܜOE~M(1 MD9))5}iþZOӋ۟7+ޠ&0(ƈG(FE'lnKwvs?/z8h7>Dl|U-[E*&?BBA Az 1T qw~q񿽑 %s/HZ,u1}Hp>7kGGh6YM Sbru.3)չi` d $lN-%^L# ,nf[֖OZ_O+4 &q1g*!d%ȔMʌ*H"D*:ȫ=Mw9R*,,3j!WA\BxŠʼn$[IYnylnmD]ZIQݰ,3)" ՘FO=M0ÕKU,a1LEugD>O'̬%pHk^lB!gRD)<o vIPdqT&&Zܕ0f1A.d쪛.H7}e^&qg&_?Yu6i95vJ7b.qyȍ>[f;W0d=$7RVfB)z*@e\Fh HMA˜fyZ'`T䕙csӬUlW|nw=֋#yEV'=b]VЃMxx꣏?"or޹#2+!Lm2g8g;[omyhǏMm$:F(l-ڪ(|D;ke(a1ɤ7cJ_/pRS"wK2fQ)uiD!*Ԧs9bmC L2Ω'(ETaM'`سwn*RR20޹2oo'}♶9Y4(%dݶPmkPMK%I&OO$Cij,#Y0cBCOvJ #H *vYr {Yi@Bd*B4/|dx4$z+MlŊWF.4LEE,͘]4{-S[Y}$0T ͒ ?9BLGTX %ȟzfj6B57ՖA}; qXkHDR):3Z2xFS3vކ0/rZ>\~EG'7iGcr~{fX#6HDɄBaT3#s?$zP=u OirK0xL61gM1ڜ(HIUǟ2șc Fi+N2߮N/S]oϏV͕>ot8)mf$9@;4*D1IhDNpw׎%= :t m0,s\!]ځ1Ei[<=A{}أe4{"cr:.uxuXBVMB=Ԫ$Oh۶g=BhAuwckScQ"I ZtψѦfsVʁI4>zUj$m))2@3UU$~YZKe0/[soz5sOB2XhR:Z҈""m?{h$N~a4 *]Y=(eq5+Li Aw u5?]}4K\E Vjwψnf,IThԤi;6Ҧ9;ڲd aB֊GDfqPគ*2CECmRQF~x,X?d\ua Q8+UF\+{6"3CLbߠK >O?_<xϖTRaѷsn[u嶲_;2ǀgf*(%}PөzU-cgipUA߮ݙ-@{0órtnbMJ$I2Lu@5D6X"UB>F"1t~ś2gqOqMђzF '1TUS4ҫ¥xq9uKN uY hhcZ.su%6x= l9=c髍I W?C =I1(3#&y9Fd,zTf#~&rDc GD*s4`X|La&a?7ϗCBC$PLKI5Z2" wO1\G6ksk䚈q^c&zYsJyiC?ȫnd)CQ++ .ݎ^("Jzau 5 UZXAV7*"lgU<isp'֏RHIj"5J&BcH#"" SQHT{%'֋5eDT! 2uWZvPjQE1ZNқa̬yUNLH.q?Oۗox9>̩ѪKl5{<֕cˈ>"# Hi %Y˔dH3"5W)7H݉ 2SvtgT]4&UISw1PS!~CJ \h9Fi2Ϻ7/xo~W_m(e(("ʺ " )5UNqNU%*t~p\P )Xq]'W}-Ph$M玊Tl'6 {4Nhu!MHmO ÞWۀ"ﲧi-ID $S O Fji ~h&}(`1 j*Pq& bl`K TCF@ĠF&0D~)ɔd@إf(Q[Tt 碪m"&C@&ps.z}:nQ>/ߞ޶=٠j.uC)kp+bDmԦIR"H4S%U3 UoI7 jlA)T$E|Фڔ3 fSUUD'@!L=M 9B%ő0mbQ$MgĨ'z8nIp:$l'_}O<= 2ef X"/4A/7o{   &Ⱥ|n!0ciMO"'`m?e~$Ib$!)T J[$`%eIi`0u n1342$#ѷlAT^2es:Nɚ3[yo|( 3uik4p/on}5~ )h 4iD3զDf&}"ȄD(T*#E$|q^R.@1GNb bG2 T*cfŞ V[^$bV0FbmSY?Us *=UY^UOͺx)eHgh JVoyb|d8̝Z+)f5x5Kaꊖdu 3T S  +;x8䍷UMw29k˶]>.-c 'BX}ش6s,_D lE!+Lcr>0M""$Č0Ɇ =*CJɁMv[5ePL,s4^@qi-ۗn9mcx̊`Xԙ./߽~j/mk4IGz.~zh|. +׋MҖEy颍rRy^o޼&SvI:fmS @jT9&;sv?OopDxN4k-Vq`"f \DHN2nc#< j@"'OHd6۷#{EF@ F pc|yV4 3j}.'oBW`XatX@}e wlgC |Hm;XWȦԤVT& rCB H*U~G] }h2=ҮS: vv v9%Anߞ_?dRز 2A *}NjR6IUЙ ֵHlb5BiktgjpdjflZR%AZ{ 7b¨ \,u荤bR?2RRRi`&?xfY0ʖ^Rj;iy mQЕVݖu:5$ d0{m%/X/}WE(}XѳP"HBG]*Q FT`WSRfj`W@]& {fLRD PPz !*!R by8~p:t|?;ݯypw̏Mݝ0-skӷg0 n!.ܱo.>_/( ާmۖcO3pa8 #lZE7Mv>K]{=}J8ϥ[-9橉rR7Qt9Oqqnqxmgr2oě}}Ytu"r&-bc߮t3زȥհ|Vo$vA=sv N?2.Ͳ|p_f8ߟ߀]% HTG840]yo7s~|Z~"0hoskڔ`߼_Fdk0-KdҖH14l#83 !UMx8KZ"rt!ѵ0*5Q=|[IvjOq?~ShՑV5cFIU\e!~z{˖ӢTss_}M$/:N: UZ!5=D?,Qr IDAT人259P!yfM,Blhd4UxЪ+icfDF-*!+tuWkACSe STFts(nIPCI~F~_]KQSEKL&$>vĔÀD%2]ĥ d,2S(zM87l|lR%sܺ_./9.Df2(:4uv)b]Zq]{~@ .DMDib%-BխHھU BMܢ^MdFt92)ô , 8.F ϯ7Ӕ~ܺmp{r$uRU6v}1NGywyo|gO#n?j񋆇4Ot<3y~&9=1&71-l>iy3˧ESFx^*=oxY'~$KzDEcRIZжmkm0-%A@`'ghS1<7 L#BEl,o3|XD %GD&M!s FcҚ/|37OǧM_n).M*SKY Q}/@ dCIL';ye/_K` Zq5׶7]ªR:3<WQed:+ 2RT~sTbRTE8\^igTD"1=E+1ҳEt[vHUU2B""d NS8qʄq2ۏl ^C:)ТBQ=8o듋ei~nOcuOw'?7fRf~?l?쮧qNSl.NaOfyw֎QnK[ѻCo%z\DK}~P$fAe'*ځm-C%!)c.Dl&*O\iBfdlNb;JR2iԹ,E;βKLxu-,ŭFYZ-<"E j=̽ pNL)O3"EDѭs'[{Y.oOt/xCr`VK%hgD8*ΑcFF7aSPh"2_8q|k'@ (P8= $~L#c|6*DefJAf"Ldߛ? #ZPz1 T%jc gC2|ٝ X@lgJBP<̉9)Q"0H@zܐaidLAIoxٜ""!1>(x~VZ%`W5Hp sL Zaق<NfuYtlM2H%7zj{X zp$`(38;7 5+"3o.7 ruqpW픭cطƕ7sY\6tq1[pO/wyt8U{1,M|p<|np6^r72A`lqIo}.m-ETk2.^hpZ߳_=|5 ffKcUdGUn&&N\xVcbc)D޻Z)Ӽ0`)tY,ALv(KI6fZSY0GynY 8rfH45IUד_ȱ.ۓmh3hz'ϝh>Z‚&񑴜!ݎnd~94%>n=֢ &:D4 yxV3NGr=+θApb{ #fDž06GƐ!=Yדuө>RXpn^b_L5Kle64*,B1TnN@$c)J)%a8<% "b.F5/#Ha g'3v#2l)HR fⱡ΅vyNAr1 bb.$eW{ &נY9 J쑭S8[&ă‡SsڷpA{˙KwP{9ɗ eIk)ڕ"34%XKf A,`gFuj=DUIgu'xdRQyCsf NȚi`܅Zվr+q]O݇ljP&UӥuFc./4nqjN__}rv\O~h4Myzw傣?\xy&qCWa{k4sU^$h_~ӗ>|>+>i+s=S&n|1׏PriKp3LRSj,Kq7Q $T]\l ZCi66pQR.bdAl i,J!#LjWF%-z^X:[A'B#ya"laDaATZGr-(sqn@G=!d(: f(̆s@_[8L5%6 "TJtsmo845A C=[c19&-I~HR`>G~ k\ S"MQw˪.8a' J)V]YÓUFM+=Zfn;A%ٷ:Μ_<MuhmᴧsERtq]m6ur՟[6-o߅??..ˉe~ {R)7ѭ-}j x_|_}/?k>-v7<Պ\UބVpqf)4"{7 (4Vkxbj}̬F ֵS!WSRd8:$)&PAA\dJ!q3ɲ|&qN D`ဎI]G_h& @W##FFnbC~6d"lȄ9Dh݅_6/{ԫl db KryZf2  ]"BBpPM DNQfd:yެWT bfЀvD')L2L =!3 l~|RnD)LyJՉ G@R 7G781?],"QiP#$?|S?\o~ӧ7|Rjzzf7|4o4Ůn>gzW޿_Rݤіp|wa=gϿ?Z?W?iF|ܝnWh??Ze...yi^dw-D3=f#%s"))`e1RNwe)u"p;u[TTM#"e֚Yk[$gހ; KiѕE"ںve[pYd=}xonwƥX(EAvKePK0Kpœ/.GB-Rn6XcWaZm]纖ykmQ2B h* euu]4^n7`:S?-2 ⨵y;TjdrvI!3s+ּu* -D7M ߨݡx4qӌsҔg8} y0q0[)`䣙pP!]fGPp 0EÏ ybg4EYNDR$hǘFO*8j̏ByQnwF_8#;CTfBf›FWT#CE1vCxFFj͝)٭/ ̙r2sW d‹O3,=C4(%0!Œx _DœCDVȅ !l,!Q;L=Y/1cfs'#?Ojp:ޭCG(jLL+ SJePNEqn'/ 0y9( "@u3WSsSNΏA#5Ed̈|X9W$l2A*|m<("LbS|Rv}|ۯ~I^7T/J&nhar~?iKH{e(哉_)X}S uo&A/vlXZ6~Ͽ^W}u7o_W_|7]3MABd-Sl^Ծzav^OݴGMR"VD4IR7…dK2εRfw` i53!u.`5zoE`>w]6vBLi;mǃ|m1i p8#w9{l P _hnsF 缹]tx AHtl!\>W D )q \K&~s*En;h$ٗ!A`#"Aʴ<Ӌk78A d&R гZOźpȉDHPИH7AVD! Z$S37'SD@L HXAA e2 }Gq,4A$ m^E Gze dr w>mX'ըqZNCoI%J:tHG/cl& gJO^:yYCRxBΟ7f` Th<̴3C=MC )I)T*H2wG݈Q8'2 W'O뫋O?;pZPEtЙ,Ֆ]_Wo?\oOTS~{squ_Snyyy1TEp^%"Ngrgwoׯ^}t<|8=ۧQbGzs%b};dOUXuֽ5Ui":5j)SBDsq]-ŅH*c-l])& QZKyoL(ĨYRu>7[TUOF3EŮd#}sۿ:N'D➧U"OP>y9aCkLNPe7ts>320S:8B F& TҞ234e8*= FL@G G>ת9'r7A 7EqsHH?rvݶፇn])$E9X)%]))\;p5&wR(B)1̬S"Q3PEJ!̕G8Z) aR9Sf,a26)h&XM  $)M~v&E 3\\AlZhum؏z:~ 3fP 0Ճµ ȌB<"BP9r~zAJɎ1Ap՞m?8mq&ekoL!@8+!mFݝ)""cZnQB8GPF`n.9wO?[Zz1m%*KRp^j2w||>߼}>իՆ`sOlכ},NoGg o`=Vwۯ^%~g$KWea鰮ˋ-og/v?yy*7=_i}@nWnW/wIt]jJ!}9x!_v>$R4c!qpvaYGn`XZf 78xorLZ+#TyTKe(iQ ,̥H߸ IDATEmm[Іt|n_noV`ldG#Ip@)FAƞ"iH|M2I8Ƚ%2B8-$ GI-Y0> s]S2 D\cD:(4h6E(q1Ş>qwTaYw0J ,sV0?xdyDy)c 0]<:u4Z*B+IABÊ 4広(TxZ1 e4f.AC|FXܝ9?=ҸOcFfI/6mMVZ#TrVT),5qɫ2O bWa];!T@r;}~}k9Gb$ v7 &{(Ztؙ2!k0I0J8aØFx\6D\ y6(  1&K?6)O??}/˟?<eWfj^Lwpk}߿C9O_!˫dBϷ݇nZeX/>>ú> !HrUT/w._Oէ|y˿c^?35JWOqCr>f? d77V1;(@o>(J "{fN83IF~@b8ܺ"K&- I[1K `ɱG1l&Fwͮ=Ņɻ(X 1Se948S2S_JXxt 91yb0i؈lKta`H0N~UMIp"%99P∴ӨTA ҡ WPxh$BGPбdyy`Y re`pu^Qhތ\ T!$Ij`pe &2F;Y l|0ʗz6N!#PP F)!B)#T:*"$eYK9VBUL"C|8FfeLHm7<}w?7I]eOnr%..߾3ٶlٷ7om‡ $˫ˋ%lA_a~ˊഹuJesy[w]~zs˧.w__?{~xOo?ܾg>Y{.*}qӏB_mc`&p bhڭpӲu0]` i;Z3u")^7k7 FD& #iǓ65J{`L(F3ņ颖gr{}p! ȲvIEA F0ك8h$]ty_| (TH _qPژA6:xOKbx)R͵k_qw 񰸙K6CvuC 6_q;=y׺e Qҭ""53c:00ٙ5qe A ѻ.t9֏=4}*ZXKE-~>5D(AkP=$…$"ԭE^JeLCϟMPE[w kR^pGHvLS8CFd"@mE&?\ۻC_W)I}\qoͣsuKvhA>"%k+~M};W}]"?v{8j{wo7_}n~o\-N vW4~^rPBQ7kl}]R[Ӡe&2om.feV`V"M"7U49CJTj!,\=bMDLU{92fpDKy[m-{~Cԑvq(ʬNPzx\*gy(? \4ĜppR$#5+9 tf Aqp08[2Gdqވ19G؈C!\c%FY$Ft=77|q]s…P8#JT8C@dNdP>+Ya:Ia)672wLzǙIgGHZ2О d(dpf&frDƘBģ!$ZyeC^׏ę2*,i=z~poj#"=33Wm|W'.p"3?E!RSm\<ȅ' TD™,LG-L=JRdݘ2K0O |"fig)b 60eh1qN\ʳ)dFvr?lnIofYepD& Rౝ7eZfjm}8}^O~iyz]>'ʦݛ?[iewl.:|y4{Mo_Ya[+ ax0r1nLA dV21 e$a;6*1Gя^97"F!x !"4I=$E7?. >-ub{ZP؅[AK{% !Cf=^~ƃNqab#H4wL ,SfJ>ݺ0(4y7HOcɏb5\&5DG}P&~c舓^V˪?!n5L{N8{dޱ  l? SMgCjBxЇ.#Jd-d3 KpAV p 1vUwR3"( i$as%"ssw%s8H>[ G޷j޲1pZsKei4$B搨b3I%`O0,e$pU$Pl m'YH;9XZ[4WPkM{Z=(RJ_Vv%[WvcV#@^Y: OK"IO$L.aNaNѭ&߷7p*ߚTɃs|i?b" .c(JG%"_#G:CfeLJ75D!}!r,$Axd2*'f"od,cEcN^ JpG._D;<"pՓvS(! J k xxqHSn1IEȈ(2$99ݩJ7g%3v'R?3."Xz y=xzZo o.}yכ]|O?wNk^>?}fmj!e]O}ݓQ[xS>ª8`昢-ƆfY0z}9꼝ɕC5>B(B­ucdf]D%ɒ_uR&{CNjׇ_ZprPApB%G ]"~tx61q&!prrS %/Ȝ!b>/YjNALz))g{ wO4Y;!ķz}9LvuSvpfT)BR@ ^3 j)9Rw!pJV\b03jҤ(ش0ubp$r3dt +G&ɂDN14HnA#9CX!NB .y?R%5Y3z:QOnֳ"I~eɤT܅SGp*E70p"0QQnI$%ba6$`ӽ] ele(,sɄ-X )" E%fB21"B qkA w T8:ZӲ~|=͝itQK}X)BENekZJ?~ܩ M\]vUEӛNO -mU1švXoOiigV-m[j~qtMb*O aK F$sͤudڵlћB A)8ڲ:M1CD(JdjںjԵ"(L`A7l櫿YooL9a, 4WQQ5A~@ OF lZVr"͈@9 ~7YģEnD̯>yrwo>|wF K<1y@d ʲ7cp*BSYFf☂ml5(uWyPMED(ѺݺߞJ#E8%BCe̼C\ =!6bࣔ2jt.NQPhe,bt5k@O@nk=pT qJ•dd9P 3m2U&(DTӕ'c6Ed0IE X|:Cw3JyIĈm֣7X'y $ D"Py sc~~Q X+9 fNuq c<|Ofks0:ՋZ7-C0oIj%B#Iጩs"H\ew2<$ۛZ\Wkfgs 90I(TPF 7h4JꪢP &1ns=k$B ˺~9@DE9 yj׉BX$=>%T)%+D-jJ az z-ĵw1)5 89+*{$PR9ϯ CJI6ܥ 1 Zڇ#L#iWcw^A?wb 7^Z˪hnXOɋ_տ4U^hzVGލ?~5H)cTmXf&ͭL\v7R;?"Ⓠ>jFuej29.*ZQi#FaecniKo?킡|X@ý*ĭGHlVklڼYImx ʭۮGNQ+4 Gk! 1#5j=.fIp<|&`4A`VB{KHPx\Bǚ=Št!F([X15A 3(WURFƉj#7j"u^&dzٯ1WGNƃ9_!hj;yɹ %duԬJ]rXKSEe)ewLdQ2::>1失71{_|}̚,A R椩[xO6V  vڥSOf4JD,,4͎(K;dQb^ent/AC+k;RH=iМl4FD[ khG";3j9+?8(_O?>%{O?1E'Óۇ~kI~9]}0L Ԙ"@c ֎Im$>?ІDod-nOa[Eek/yRO”IXsC s[S`g B ڔYΤ6Ryb!P a`X3ͮjAmG>? gq4`yGKnkyJXxfka(hUlvkc QP*IDX$@.:F˸*(;8{J#{GV#lN1#)(,IUX%ħ$b6Ȫ=YP_(v eRbooڦCŔ@ >_#p!*QrhLTHԭB52;V??:|lߗ:/F:ᬩ^Ox<}?K*a~[ߎvC}?_?1+Sg&!EEK-U\EUNMi$A&gxCЍ IDAT0EN㫃ow{tϣ\๗)h`jfMmB!pPU&e&/N_ UG= M8g}Lcs)ڜ `ՅM&,H݈A wc̳&*)EZ[Ejj5""yZd {@@5Qi@Al#@E5$s&2(5#N,E4 &? NTaFL( *M2ys%Dg`1MМ+ '&&IOI42A"$Jn&4GpTE&N" y}رEqL՜@f 4t&jyNgG|C#zɳ4 NBI6rk]t8,kv{?␵bUs8<bBD%cJ2gsYS`a!ljJ,shfPVNO\KKɄ^Iv "i(fc7w%Ds1p Q)8+lOO?dndͧ)u[*u`SE)²cyZz<=}nx=mcg*c%"Hȫ! AmIYA / ߂<M"&!: , 9 n 0⵶4H@ 0D ԐJp#(<PrA~"|=YbZ ڢ)ܚ3j"DMFli / ByʻK J5̣+"n%wQb@!%y)š|AXAT@܈&!3y@T9垄ͦ XG'CXB$5Jl3X~_&_EȤ9Hͻlt'Y^Y^܌7FL٪yx%Ξo$ dl-jWdʼn8Nn oAxXXH0OPw Da!6$PhNP.Tp y m^,ڲ\<\`UON]]"szûz8+~ov*G8' 1cKJTy>>* 11 poł[fxXSS4c;Ώ+dpBc/xG^RfVLB6~dtOV Jgc!.֋=-n-3w~Vw kuPs<񌀃[qDt}&#_][*N3K5a^X8L#II'7nho,4% f{3E:`f{kͤY|P"Tb* h?1'1)! &LDwߎmT/pUHPxi P7"6E9۴jYM!EZN?__ 5_%ϽZHTY2,6?YUH-ڋP#Dyv<3kmaPZdR"@mu@n4Yh"<$D2\ض_-0(';IZ<]嘀pgTLNh'5tKYNxO/l}ӫaB24 ˯m9Ƚ //)c. v,cWӷ*ů~YW~ןZp,.^gϗw~g-W߼Cg$S.4Aꂅ9;0MUrND& RHx NJdԱO)P+ l^03(K0!&63;Gjk(.fgb=޾~bg>q0JxlSG"Zv1J-$3Iڈ_!u`Jў( &D+A7囏ݮRq:NIsaQƾ[ gf"7 Tfq kVRϲ_.]z]~goxypsnsEf`wy&@MzPN䍼9p`6¬P=ѥȠŸPb%Pp =?~UXA,'cR8Шp)#"$Z<<h"Jh,5+wO13׶`f(kxN Qat6({rkͳӚOnAp_ie!]v;&i+\6w{#HXS#5C47plOnA^N]Kj-9M&6$U G,ʝRbsMh^BZu.f% ~uRMd (3 VֵaUnhfPv_JfdS~g'zqvE:}f?ڟtu%"FyxS~~y)ak9Ks(3-!vCG4.vtt1 TQ셌 L!  qTHڷI r:I4~ ͿUPnMb0"Ww1({yx輪뛻~G1}LH"" ap{Uf"dDD" i&"Op/TZFlmS6b7kxڙ& ÛS_ô=K-E1̃TeZ&Z2UT#+"cd- VX"m(n^[VVExF ڢy}dsZrZw0o gTOm0Epx3IHU302 *4HYo86 <UɣɲhNj~Bw"ԼzVi mopj$@4,X<Ugԡy3ܑ_$p7.秋cP wy15qH9D #ЩKXNE]Dg|~|yK>vG4 S(r02^!$$.VsN܋CE$ZjZ)VKFۏ>JmW䰶 Vj 4@Ǝ/?_> ~JOIvVcZN'F 2/QL>QpC$g]B1#&wvDn|A S̽ NBAG/N"vzW_n,'%ge:te.R1335P3lF!gh,"qLgqU4f=fW(YȈ AfE+s[kf@m3 y%#]?usXlzK}JQn/_e\LCt=;恘=~Vu|eV$c;@',ҳ_gz@wr;]߿N|Ԕ2 "Z $3 }ڽK,f&a!6XbR:ho0]jJuNjfrKPI)kʤ]F5WO.EײLިG3Fh@6YG6pզZvM궎}Nݺ>m2/ ) [@rdٳq>ǥtr<˾#`؝ꤎWw'Ka8t]fڧp N$nS?/%f;u0NdSr'bEg`RJ MQ2*k,By0D$KDi6*cc0bJ=>MQ])` h1# 3TLu얝v 'Y%THr0YqfP<(TXpvq?ԣj0cWXC:W\j,1J dVB yJI5%FpHO,3,$ 0< AYSl?y9B:r5Xh&!= !CmCJ-j 2r ̹2Au&71ڎmG`c{Pcc6E.\-8w 赍Et?t;Ұ 'ҭ@(u'0r|'%1UpDM"U%"02q ~8 Y+ \D5qA|5*" >1D9*jbYI NA,ʬXa5a}Z^,ku™)s& 03qeI9 ~NPv/ŀpՁvŀi8Aن+Oɪ8M8 w}"nTIeq?nvo͟\_lO7oџC,>4n U9cұ:L4^@#Jg*Gbm)jB?j>Y0s+EIԎFGNr8m}倇=xpA$Z^1(m0/\ɕr?TIw*Y8 K<[g#{U7An ^ *d}8<o pQ8Gh57z*H|\W kKZvc]fgC.w]bŝSNlj%5i^YQN|կew)҄0=w{ yčhd 5Fn4)p^Y'KZ2zՎ(A""TK)lrkAXªnw(i+7YYã]FV.v4 Hҡ*1*flosQ :J=O`LQ tEBz¯% eAE#9wapHes>9b:{9\|󏇇W0vݎnL a0O?qi1pw8x̪o-y< B4%C Y2{(`G|Udfj=--soT0ZK?HʜT#T$¢fDz`aQJXt:es!B>M`7&ij,S: ~ˇőR^$vYh'vsKUSD9pq$pL]7~}uu7áT_tK/uٝ^],֩K#.=.tk゚^%cnitHJv ݻ.tL É/RZL4ka߯k4CRJr` OYD0 &pCpQVir}79XpeVf=p봁Iѫ|q|~=;Mz֥e,$JBB. mZ`^] .aQOc ۻ퇷7}7 Ţ98јtv1c,!8vMI%PZFrxvcRI%G@5M OiZDQO$َiK|y7;췲+!]ȼ^0hvj sQl QpU2/VgS?N@dn:GR0X <#6WYfK yp&bhj 9Jb*ZRV~,#'aUJʕKC%jQ-‰';e^HmІ85&H= ˓}\+e\>ҕ@l<.\v˟y'o^_ӋX^oϾO>?~!nQRJX3!{rK ̢UbsaF@pJ]P^#DETk "j^$$yNDUHJE֓gVu[BaA!LjD4`.-\[Ěn?6 ;^zҎ͎3kb&af2GLa{[,?OON_B0c>C{&vՓ?9|CO2I`7g/-O-g׼:gYvwTq'i<~|ݷzWaURU^-r]4w}Am9B(\EeD*6q?npowֱ+4(ny+7K3!䑱Yŋ\Oka0X8L BPK]fc9ڀ H؅Y$$>EZW_߽AK[i`xHISZىɈQkLQjbeL=X á I %Pw1-o!ɛu2AsxԮfvf!apY8>z^\C{5A<5~k=֜gpc1JfE,"BYT(iD nVPJM2ORBwSZqJNQJTתt=Jf|އMd{Ԉ$$n`v>)r;Pt7-H 'g o4;}#/>xþpI)]'px3g끜 d,†y.|u,0f;jq-24T6Z1<_I󧗫qڟNSqT(%RwWDû2NTDVhlhPKy;t_=}RJWO7?^m!׿],Oơ.u~,~_o~8;}].ڈX9/GQb0q;=l8^{F IDAT}< P),0ô8T`ˋӳ~7ʝ WWR}gvwO0b|,jLA{Iכ$BZ/y-RJfAQaڴcwF8zCq(Oosp8PGW^ :,A ݁/I Ao˛rޖq69/jaQ#CqEO>yYܐj[ɞtz8UmĬam9n85xH 4]l%!h4#t`mޱKSWhpSSQߘ5e]ң採oNoߜS_|Cߟϱz|q]xHB@F%Iq`u@ rJ4<?mz~qeq DNk֬y"¬ikfjֺ\BMU WOe2a 1#9}J "#&.]yy\W=~Sd|NZM2KBTצDLMռ —7W@0?/VoǴU`~pG_0D}H]qf ޢ+Ӏݺhm7_94 9sQ,z;P).C@LD*^,jjLrqCf܅ H ݌Q?_e; XCv㶭ȠVy@ TZiƆnLW][b\j6Dr'hl5zC݌T0j qi .]NadO@\= vW+c#97I R&IP!!t@b09#XJ<^O~ϯp=U Ch=Zu37/Zw j w,R"$TE@FYsZj"& hn~*q0.hø篷X~'$0F%c813 FX0UzǻN'1'dpgZ$I;^=g ߯vo@HH xԚG\fv @$zS~MJ]O^Z#% d@ .Р鉙+tUϙtՀ uKӆÝՔB0UNh(aM>\n7nU!e3AV go"P fFVKh+)ELO"]F9DFA mQatűT[EȎCPo?~/޿kX,9[a1u]UDfA33t7%DLD,,Bn],S\eB0 nvEsU]z)CpK$vXXtzE7Bwp nÛ}PK``=i@pB@Hi$mwy_8^_ 2xL6nҚGU )*9q(;: UZՉXԽlUM(\ P=BT@nMxgfoNwzoH-1Ü8!&0F0J 0i)f5P;@#Z$|{l'g)=I<&8R8[sU hZjVaMK330mnfͼ0.\:4!i:ji˲wzjִ'ॾr^Lkœ|=CKx=#91 1 ;3nP84/C^y %vì[̏|}6@s'rR tpC0|>R 4lf3߳BԆ7& h?_nve!:B]r$ P23%q&aBfX(DB :$BRlGH PS| z+1 0v/!$ , Մ%0G_%L^NgTplVj@&gy*Dz 7B0@ wj-U/hȶtPoѾ-?ݛ'׵ՀTB)AAA*s]|Cqt6xw3w8r;ad`I#@  LT /u`&"枳AZnv5 vBva  Kb 2Bd]œ°{! HUD8<Zrn[s@qNx1lJc)AZZmV[U[ڴi5SPNVmDY'#8i;.OOp@ӈLD/xEqqUkV9E$JݑA%i\]1#S+VBȒ;{L "s*:0P\|@L@}$e#S ܵ5HRNQ܌8q7!5 10kw{ޅmPI O4 ); %8jgM{;/FoObFX"*4t` / 4z| j ]XЊ 8cdB tyh =y2<ȳn' v3sڴ`SS-mZ5Ew5s/uN] w z.i`mS̋>ﶇǶV*ҥ-Sg()=SXZZ74+"RRف1_TBd4NR4խ9Vh9g VG@e}3kߧ @"s&G@dRѬaAH "*tګE/#M>C@q;W/􄮘$;362"wNE[g?ELL=$N(nf4 8eS(j5DB;W0>-7#[!YKţU :.čᎆ `_#VyWؚCZ Nm]"Bjl1HހAU crD `I:Ɯח# oa7߾wnS*$M0"խ!9\KH#G6 $>;ؑdaQ#3!dTs$)vWOo4!pX\ha(-2X '$h׶>>lonDz>Z zCL99T!9o"g%U'CTO۫h} )ղ, i/իPSI&[0q9Cv%R˳h˜OZ(AGFNi2R+z$X,2n M1 ;?!&PeM " D X2M)ֆ^Ԛz P"s&ާ&?󓑯& 0Mi-[-u޵fShx Ra ۅpifJ``m%Tը"iyw~|߶%Z hgOիWkشiyjmzrw˫RؑCn2HuVot@Ys3`iM ;Eٚ*iS K3Bg1gyg !C]G|[sDp100"؁ClWkFo3gr 5^ BS̝8 B:9z#M! @X @'rz韀 8AP;܁gu܀#}`q԰DaPqtv0_Ԭ9 Tmpm 3gBuCEN` ;Qq2Bh!*ۖ?pt |L7d -QNNzƃ-54 8 91;#!хGK$.((7Uލ1pF`(@Ĩjё<J# ' a? ݹcbU]M; 5!"Gs-Oq==\n4 F5S"pWs5@5m- #3y fdvm}ww;<ܝ궲 O#anmVUay28>Ѷبj rji- cY 9qJ$㶼}|zwNv;#t7@G˅qȂ]b Bɹ5x>tcSؚUź!7óC~vnw*!f`\5nM֦%==TnԴ*3*#pNJLJ Vyy,wro5k"˶nZW0%6N$ݕ|Ҏx,lRbGsP.%y1 |;T0"̈*9CzE)&?yo;zz5;aT@뾔>NG7:ǮWAD"ݙ̬ff k˓I 88e ;V{0ݛG3@+9#H/? COV_%h@ M\9HP1$pLBA}B 1o灇|xݠUȀ(_ϖϾ8> 1ei_5)q88 HrЎDDI_[)Stۗ*v)c #bfbD,8`"GsüK))rǭ)7;Dׯiy V9u}P:>RfL9σZXI6tɚ2:aʄ(%h!?W>yZZB|~KYivpҢ519<ۼ?liV!r4XUI]#EmsvH;15 <|N=|WEOeH.` `a5I!>lJ sKWk^56@i7Wo2όDj[ꭶZ݊fjg@uw"®C0UmVԬVkkF0$--T9`U;/˩-at؜[_T.ρ֚Fގ'  Ӹ>ޏ,t<)al坄}CSγ$>`dԴX BI фs7VSsTm@X Af۴ 85]Zkzab8ZQƄD=lWh_E tx0sw[e]OI1y(,̣7U.(1Iit֬`.C8 ki~ݶvQ%ߑ 5(8q&њ6ӠT#V/ZcWJJ8pFHBn  v_xKU'8jgD!4 拸5p~/nyBj<(;`PAXzèPZ@ ro#~ZxZ? F;`r`$$8Σe ~ݡ#g]J{iv?l?Vpa7#%z{cƌ׭ ;7D߂n IDATJipˆ4 Qx1 TU1#0UIPBYNzճ_ִOnƇ|dzUծB@)"Ս̵֪Ju+y-D圂Eg|+t>gqB$?+Jv˲)M4La᮶;Z֔$r  a.wT,s^ p L9VglIavRX9 LI%-Z֐z i  c-',c뺸W 09! 0:a>HZY54>O;m L@(NNeD֙@L @, d- Æm;~T6] 8ی\?Gt`u_x[?7p tPCaԼgY(bB:`0 &w Er,N rE[( 8dh{P\a~<a)06cj1Ώӧ߯޼i[Jh0p#F(ycH"y tC s @KIH-tG$攧"4 ALq/釺>GDhx|䑗4|`Ka J "Z٘ q@p h~ZmJ]jeуy554dwԵo>|{lETvD7CP @`$JHv Q8UĐ2[~kfwy9Ӝp^7mV^$л9hCw94~|iyt6R 0JB{yL MJ+Z8 ; " P8I~C01Ӄ1ń|!GSHA"1LQ|[PHʶA EYiR6 JyJ˱JHk٪" @Ki " ]NAڛo7?OO7ˇ}-`kwz8rUJ`T7f.(dSm]Nc5(Kae(?PH+ l`p>4yE- ',Vî,K B֦a,W43DCBatfT:ēpF02ƈ:q^=oJk@Gtt"\'Wi?`)yi6.%Cjg OTiQP)qxGfw,9yTSFb&`A0w"pb"dJ`" FBQ=vo+ǨpYh )l4ߍ =WLP@DU@' *(2JˈR"9cpk`xkr_+!$N=EVRu&yKJfP>m$G c8M0sFSfaOLu\z+"S$`0lFBdުbD@@7NDAhѪ[u]}c IIq*a+5aLy.>'a]>fY;tQxrz,Z \H\.K"3i@ak[1VMd u]9   ;P"h3i0 7 p~ F'qퟖa)?/沎ebiJ|pz\O燡H;"d!@M)Zi}w;G. Mv>t05bC:!=ܢF!E w' B9s'˜`H쪕14^`pha}A/i50VVڴZGIjfZI50a]Z"HU#m9)0*t.#chR;a}z|8`s+&ӐƩ.e@iDvnEmC$")qbXZ/Bs FkpҜ'Ӏe^'GJ踶gqVhX!8f9 2;eHY̶ H"W P$wYjJi0kBfA>@\  " FB~߳ l01$ brq` VP^͟Taz˜dϢm;6Y Aۊy-(#izFU!p3NJ96=O㎉B@L0@ xe¥ZܙPJmky$bdc@hnfM7+dD B@f@7sv@԰fP6ʘ0aW|D3 &^'FM()Sa^[VZem۶x>ߵRIrJ) ĒִmD0 9!Lqm+TYҲ=Q17w ^_p"rloWIf g?T>aټ/Oe}8e9;ŋ;'!/_ޕQ9R\A[SrFAŶ"#DxD9{}| @OJ"J1 ]%`H&p!HTA77U0#pT6Y)[kC}flG uk6KLn˶-(t\%|1 =8܊i)nmneim%"ufss mS"#LD)eNp `Ȱz;s~:j4t59juj'c]{Fa F"MX A9R#v@|A iE( , DfuCK"20pAG0u"dFnXB $9PR1=SyA9o+Y4N;GC;EO@L2zlƛG|s!`{}q:?A'Y߮U~EPae_n9ote| YH!63pckKM44EFY?|Vw2/WPdK,#B%"ƺ% 83RBvxP `}lncyRk9ɓõP023H-e9=*SKASkZ5j2ۻJy-"}˹dnY-@d/3Cۂd@jw&yxN]%3׊n.yNը6V}!bCSJ$F_;".P,ĥ0o있Ur 롙=;0SjRy!.256{ۯ?%2ާ`V$R)ږC;9m~ٶpGb뮺e 0||~yڶTZO7ָ?$C }>'$\(~9}tmHPqBV+eڻ.XRUvn3c6ia1CR8dAg[%i#$[)@(D)@IĉDD("Di Ј:@Z)ZZW7ӈST̈H=HgD"P*ge | 8,LǒRZEJ6hRغ|*rUZܶ @; !}K|Kojж뮿?\ ݔ}[|{cč>^~eg}Z$7 6[y.-*&1pPD)PcH!|.JT5@rt}y-~?Qwp dFO(90~/O\ FC/ct5OԹpG tyHLxJ Ej -R]^A@J!-G:a&O1PԔ0]Pu |ȆOtLqR+L@0Ko }$!3K"dP8`d?E6][x}鷼'{~z{zޜ^vՋv+ J&@Zf,"" b_ uB XI"t'xQl;!]< NadHXf' N3AZd$"x:P~!BFaH\R (T-!"ӓ$I|biҤ S] H8EPwߍm{*ghD8;,I|0p)%s6]yUrKW˯˷ 20&d,!@m;EG> o%BnЃ{ae gP^barPWr7[w'@ ^{ŁƇmb z>W_3ߨ NDCO4MJB"2& ca@Tr<K+ڈ0֒4U `6i<=U3] zl ` ! غDcmZE"l,11P_ o/q9hU7EX{?L6GfwL'f7$6VNFC_>F1徃 =mq4 *"Hq^ʫ8NNLpJm lD1_=`_C8a6SS1ߐ $+u $S3SOy `!aFFH˜XRún6tn\=!9!12)s7H8ܥ<ac}{%$& c xsw|]1v^O^ӓ JgeKyhinHp! dݷ3 y2 ct P0ðM"Ur'%Rӄ;BG$ 4Ocs$Ҍ#FS>HL !KH $fb@@)L H`ErzWy%̷8ڱzl6 M&`>y"tRUtJL.%1/8qwGg+0#_8DxB6/__ӛ6k2 mhsF+  AG7-bU<6O /$훷<>MiVEw 98d,4"  #pHհzX˜YD&TJ֨,Za"ZJ17("f) ԑLS@9+y`b3\²I u}׺H[lñr\}\"M5 nņ >lC[[ݻ0 cF;>b?"N!-.N}fm`t4 P88q#\ԊM XTe.w}OHsbꙑicvKs T0ww0 @MQ$bff#c~f[:CeDf UCԇF&gBd a'ĘJ3{ۦ{7 GРp0 8#)Ș :~_V{9U<]MHzǛo`| At@,-FClH'"p"DkeVM#qP+r)c`"$tFLLHIpH#fX@&pTw \q,ny;z|B HĄ4I>̔>߲d'fa?_=_E?5?Or$!eqsx vք dBʁȈvw)w8MF=G!,90|W!09dWRn=.e=fT\}Wi ^g|񜶧E:QnmYj?׏w-`pGaWZAcIjrȺ7R^n/dAB"eFt03 Ca:0ip{8ܜ4uʈ2KҡR͑[9)$d*L̑3Âa},,]#`=!ULiNURI(^%`8LLnd=o Hc<Й,2V[T 1`hphnid+ĆADYlSb  6m)͒ (cK]B-7nۣ)" ("y~3b" ^]Ľ9?a޷C|<f=E RZ.iѷ6<30Ky!"/Sٟk)Yݯ?=mcԀmiYo0 2>G8 A"%UXAGd^۷<"@@$Bn<@$zBaI jFX"JHdAfDbpWDdD&7 帜\KMկG_ӏg 9aAxSxGUaS5 wtzr8-<:B6/͡d~. ;c*Ų IDAT |1Rp[}'}x`$\ՋGqן@.+:1'{|?n<]x/oM3Fez߲K))1C-&'@y}Uu35j($ο:gJ۶kfRF42!@ti%MH韩Eq_o^~oN>o1Owa5e|޻cY>\Q, !n}60/׺]^@5 ۮ`iphMYD{'a {uoK̴, #mǠ" wCg)p\O pr=!A% {{HBWĚ1m#2IQ $#C(HjYŹS!{np-:0i{AaiHFTD'gGC:`$xb*y"'b`>.uͺLP'PBddk܇S=B`wzDLc0parp p7HB=0 @x߼{tG8ߊ%1[b_nݽ{?jAȵ!,T">&iR9FL8^K`pu ۦnR /L xA bԏ\~s@f KR@>8"czH`Hp8kaA H&L$'3)@LZ<_KC/1n=<k{.L$Zm)׺?nWn>Zm s* :H_2 ,-ߗ!~n>pI<"A5Z\rƧ ǹ5O|/ry{ymwBe*e2A[Iw3HyBM6/T.RZ\jI&`&$J|=M3+'3sy"FaևaCH[V Ā붹;$ A13H0_.ciY -TR+.//XkUUL{Ft[)f1\u*۶}@@ai˺m9&m@I"=ŒcX*xE'xHEBfR8$ qpA Fei"^mKBHDf}[pU{lfCL]Um4E4̄0J@D- '(h(#"!#- e<6-cf#(!"=!q3-b@""bN<"sl>21ET\( 202ϕB9{=|ͧz~VbKᆙ{ec1Fta xhŶ\ꤻǗ>5Zdm}D9ѕbnDe+]äquvʁBvTMY@D \@"}YeFi~Z1AukDFH1_[:(Ix&0 d$xB atf}O޽ci]v ?|tX~+}>uCa5$no c1Ƨ\*- Ss\I/W Tzﶧ{5=ёr)empTSCt$et> B@*b:.P%@ LhidiWϥ"+sFB$*d0Q8EPe0r{z>,Xg{,%2ǮK@KmU$á.nq8q ѴLbFNTx}NH̅HmDp[l{ctU7pv $~o N5ih v՗5s 鑁inQeGČQw>7R*˼"$W3@@$ch<ˑc쀉EJZץmVJۯϕ9&NAJ+x$ 4Y;DC}8  E2}3y׃X`F]y?!C'u+!9 #3)Ye #+!)7n~̨w vR$wؿ{k/{>H&- B9z0| 6x $);3_ՇRn*\2-]^[R`E}m-4n]kz[ZGm%oZU-旅*g#"w/g'9>Η3x) ړcJQlp~ID7M7VK/o>ʲ ?|d`6 @"{G38pʙTD<,Q K ݘL`y:vd$D3/]쪼[Z9=$ # LP Ws{gy+KdbBd3iDu-l3 ,ѵOͺ.tݯMZpMt`!2B%2ۯ>?/ 3{>ߕ xx9eZd8z)~<#uJ[f{E2+3g\k4GH4}a}j2,0Us5HE3wM44'L"5-L[u2r"H#|RԽ#8e;' be 8$CO "GNw d8'Gf:U,ȄHHZ !g!2 Nϑ%H?7N6G5:'_Zm[ ڬKk~ww>u}[`cە!a:[)D&"{BYxtK(Ną$2=1=-0#U- fh$ wpHLFNODhps#Ep PZP`Gl& RB"CCQ.$3<070 "D`@[A8 !Z@"A<(ôԤȸ^xs.O@"bbUl'(~N77 n֭ki//z>?օ##e]sp\@4㾛YrvhyΥ>`}zF DyP ,/:w_1wTRKBB=|ADrRiKT$[bF"FFrafAXH82-<}9Rȉ6,. q{3^֥\EpFRU $>̆{D6g>OoMJ9 b>o=p׍PTuDᚔ@"7mnח4ՅJKPCJN1#3 1{kn^!R"THYnjti;nv>L]wf DdULxCO 0H3;l 0g?{2tsy \9j&4t00 D@, D{,#" SDAD @ }%Ÿnց9C~gYNSa"kzŊ KZ+'&١e"JB'c+Klݶ^Ύy{#M-Khf=ՐT'("05%gz2'L;Ԓ$%!e 9s]Kxr#"31R,VXs: a25¿B=>D3 y8!r+zv2`!$̃c_i<$kBX ὜M&2^`h)> mA@KEb "\jMcpyz)t<}a$ #ȳl9i-۹CbSz>Em4ƺxx_>Pr+A?^?W?~CPRU"ư>BZQ*\ /jV$NdA`LO^f9&DD !$0gL3 R=Ŷ$Zk 8AI<Gn]G0@`"fN jc멶D/gmiuYkkw"f-D|>[Y@,ƈPԄ*D@:S ta*Y(Ba!e}~f+ }sС6@5RA 'Ls#Hrڜ9"#9"Q=bdc'v--a<2p^3qpN)<a#2Rsfѫ|vŀft 2r)}l./݈dWI/=O-41QbzzVO/JY C מn@)fA%ce"U5aPj LpH#"WoCDYpnH"aBD",X@@ED)K\LL#pH ʂH> Ô(¢%#c&$Q(B@÷ N=/"I@[n7A'#0[D5f"Ϛ|G  /=xU9.=ϻPe ؾqINp&z}\ J-og0qOC=Z8_oI|9ug !=T&#mgs|ze\xa݉E3&jU+D}; ^ G-0y&n-fOvz6.tjna\ ]&`EZy{^;,Ko֊"QJ)n ۀ_ 4\宮̔DJ$m_"֚s?A EX1G*Sl̵lR U  ~mѣ=}$14"aD:=33#rTu2B;%LIB6/[?_Sk1"!֋g:i=`T<FJ"/NӄHf-*=\ՀDbf[8"s{rxhXOe3+ܳ7AGI `|?|#!cS@#/8Yta*&*TE&1û7[yk/{hz)3;܉\(]aݲK22w[]M0 #EB`'8H {<L*/w`Iv &`2hk( H]TeB/]~mw G0% H.Ău/N+N99Rs`xu;~jeX=,pR!⑦J&)ӬH26NPS` i# lZHdop\4%BÒXԦBdIłvqHqyZb!Jk&S 3F/AleWŨ6XOk?v%ˑGr->oI?c-į~%Ϗu2˲WIt*!DSx箐z&MRHQʽ ]M`4s 7y+}=<Ǒ| \EN4* XbZV#lJ@_[Z'H3$' =xx+J6Q]2Al:&,R{Df`z^^.78!L_nDTT0q"I /[ksH_*o.7 /DP.6F tno?4}6~l?Lm[T#vzUvg "R D?Dۥ&M-wp|*į}o߼SoLJ{*HQ)ld$LTN "һw;qXj޺o[$֔ N#~!GȈXS8^d>lRL=3{k/*_idb 3նZ0(3LLS\'H6-Zku3Uc2{g*ziݴ&22EzeRfiZ[Lrd$Ec:`|Q!)2@&ZR7㉳ =(BD̨\LAw;n޻o[ߒdޣwb ITFLI ia=2{!5'h26$`I@hhF4yG|1Y2g2<&#dbb˲VwQ2j-Srݼo[0d|$)wMaR!)v2J1![eȡLF$@rXJnt\$&(߉Z#{{2%%1r! KaO@ 8^ݤ~^0(3E @"QKeS ́ba"*"nY݇r?i'B6M=v~-mi7<7W7oׯ~{c?_߾~whO_+ԖeVm}@[F#{[ϟ]=.L5`*K٦d@Fy:L4OiP XHr7+ ~}91q>1}2N2ZX[ۿ=_kՂ4ѧÇv|O׷5"5 JlfSeq)H& 0}|8A/w#?KIfb Dsdr@C&J $}*ɸhַ SGX$pZ(df V#ۺm΀2 Umei mYvfb)DвVy. !㲝>~٫Vt+7W_%xeG`Dc#cO B$FԘ7  ұH me޷ivڣ;yz$;Ij&(IHh8EHUt~ =ӓ{Cr-+Y$Ҽy=%Ʋ"I<"za Ȧ$5Q $UHŘTe_]ׇBP=<7_Rw- ƼD3t>w-\Myw7_L)Z4-INĢ|əEMI؅XpQ\6c)I0noAc%"ʜ)2Bg`MU81K9ț"<9d*D}>G#Q*щj9&L)d)LBml冝:(4z(zj,$.>t56ro [Jr4'%5wcv9mӑxZO$e{'eGvqӥN jڷW#G[f~~P_dS.jiY%I(9W$oy~N{k$g'>nY7EIZ?~ąwWHգ 1@vywzs*V]pg%&NJ31feё ;.ett3" ;0ģ F3I%A<)"L!Dx,:WG|eOUQ?^[<]n[Bg#jO)elBP;E Y6R'O$p "gn.ӲX;xUxYt=׋Hi9|7/~6^׋sOc%MZu?ks/ȩhYv As[褯L׷NSsi;\;貣_k߽}_N./&ӢJZENE(bkIHgNE[B ][{ ﱣdaz$&_RjX`*̱ ɊTǟ331/D.`ٽyljt OVݎкn]Yɐ/Oy>=#v~(bOOӶݬO2_?>l9#7Tsnd>[IPs=_oLɘ)IE䶵suu^>qAd|>CƼa%loeݞ[)-E4UYTɝ'zAEGX\̈q{q(="|D3؊=O1b@D9/ `ѝT0Uv:;CL4Ifoc\ NVr^]")&{KޒotbZwo-@Zg.yN*:lnf! _9BhO3(;UnUb4'HPvP$ T"Cꫤ&3-B8FwZ4RmV3BD q-{zHxI1׿zdQ~!a6%E޽qHff$/BfPU1c6,1rt($RKy%w@j UI%e >\Frko{[9,Mퟷ_LxQe>{"UUE"%ཻi-9J4.+#:4q`f%U"% 洘Kt#b 233QgnA./  3̰dIˌA~XXҴ𞑔2e:*$D*.MvOO9ެl6y z.-׺zޛmowE">(Ue ݝ:He\#/0Ohջ(d%TT,EfVe)1b =eu(&#d*2:逓>-_YFckM#Ni;0.p֛KRTyz;譵3b4jLZ!pPgf3&rwbDX0XF4(h%Ee A9skm8Y =#NrעFRj@!{PJ$Ez51AhRky?efբܸ|֙Vѻ߾lW ΠtP F[콵䙠#If_ap4ޓ9y:KOEN,,ݫ7W/u*e&h0S298V''*A(U "h!ckbP6?><Йwץ.yO78~5bwS3wtn pPJfR؄!R1$$&*:qPϖDBB*$*d* J̜mEBT&+ɭ3"Ԍ%ҷaO5)UkeR^׈hlΥ3ӠQB @2iRPHdKߠD|Ϸ'Sډi|%77rLFDU~V7߸|קNC~D >/\}Gv9ב~1b:>˟Ot~u}OD0rY{6u7pJydrw޲e;w& t֟sKqYnE~+L7->p'ŸrH.acX FW C(ݷ j 'Αh 0b6(YKgԻ0A 0(E5NeN"dCD^Rʹ"'ъzѭL̸x˶c>+jHi rzZ-vh~&zwssf8>=>':6j^ψm&ڈt˗NhO??}yd޲g`b$wo_mm>Ĺ,7A;{;Oƻ-Ųm#v7?K?MSK:ܮpNm]-{cjXlQLLOďTaDcCD*$\Jq)er!޻)F*,\pj P(7oh7d _>_v8?+[3“{ k;m ##ғ3 XhY!&QacbZD.bT Lki`]n_vPNKD[Rsy]Q{{߽=|sjîU,#<׵]󥝷 -38Ea%Bìq:S(Bثt~5j7Xź~0Wj~7ۖaAROγ}K$sߺ_~\1Kӧs~}O2r>e'@ո0kD=q*R.5Gs΀u֣O-wϷ?f/痞cga2A/h11%IHU+UqUM:~:]KW-l&f֣ 3B5r0IMEՌթ|QRў eA%E"Lwftgw75~kR]~|~VA&ۥ~oyO_L~}szOa7{Sf R G*ck#{d8f@%)&٘w42Ldj !Q5UZ/!RM& Zy˲-iN.Mbkr}usn]2ܢq}<].qO6K2' DA& cY ȰK(/o )ŖL޽{wz^n;!eLUJerR^:/Ly 2(9khw5\k{<^ՎMDE3#Dr7rU^ n֩붞/SR*uHD6O& }jE[kLfբBlIz%Pwgkـ_/p) U) CpUM2)Dr\fIwZ"Z[)ߜ6}%MOVezOH(;_+i^^%[@v)Hlץ h{r}nj IDAT?fOg>?>>ps×a>K_'$ܾ?]ws9n("/ȎT&’VO2Յ(Oh32%iz,xx}U}Bo}Z{(̄C7N0*AUKSf VZkO|K4ֶ:iYD JVcfZ#&B΃֔b*Zf .@`A~BFV3fSЀɶ}]GTLTLjN)|?{ (j6+}}*cc2fzj $0[/~i9Kb 'wG\&)ָ*dLj2r4͠ϏRL'N<[yyQ1Pd6w߿{rn_v Numϧy=R jp&FzPR ~u$1fР 0APNy훛~}wf7]O!*g&"KJ0!LRqk>leGd!eN ixلա3vOjߓ%@2aeYF1`K$ugX/Q*DT@1c6 f.j/'ڶ11j$.}LT.YxPaUkq 3}x윘DE(t E +?72r[I/!/?k-Шeu.Ԓ}3]hDE,T&\O{hۑoUᱨ&*Nx1 IH)=[/1۽{==?>ЧLNf-2Uv3vџ~_詪:*/EhZ2^o[+ݧ?_}ڷm=eKP1%ba.Dj3Ƙpxc7 "U#!F36p("/Ӑw% DĐ(/VaR׭ Sp03Pr RGSJ\I(Ɨv׋\gpVp`D|"pv!-I`DF/[O9"zJ3jJ)۹e)Mt"@{o MJNRK6/ӲLuZf!@nrꛫ\&%y}<\Oh$ɮ4%f YYThE~d64h$3Sdf=F$.rĔsnmzxpdjW Xd`3Im|p||o}xpXtV`f70ϤPR4g'ka/,<E_/wǪ5mk4^c/k?_}k%¸JRTn)wG[;KL7EL{oB) VVRA2 YH2Xtpi.2f``0Q)YLYƯa#2E%`~~;?~X6HVԃV-۩R}k_ƽRf0IZ߼m YIxxۗ/t'Փ̓5YK?/O*Zx^D5^OQ0==__>OKf;!jZsT\*3ܬG2iN{{ɽt[i}pOϿׇM(,VInZfJ Z-#.R ff)EF)J`g (#wZbքEHĚ,:'0FL2sx88 1F$3-#HL(lZDRԛ2A;$"uQ3Epa]BB/||И)SpN|\ETДl 88AH 7geyܻt˭Ey& JNh42QQf{)v>=o{ն,{]6 z4D#?1(%"7[9_OKQC !b"BZ׊KG4i;/IW׮nw|cd,`)H% iJDt,,E0QBBQ7TbJ ଌ]LkR3I*!IE*R 3Q!R 0э[5舙*Q!L pyo,˾JD鰈huݙ։E/9 #aE^,pϢ%`GMILcnfޢw7>H1wKsT2,ʵӴΩΞqp+q_JQ*QQۿFD6ppK`wZdEJ"Ⱦ~ھ./麽^ykj[K-)XI+IGBDE80π8yh]#LRk2-0~y_R"TnFdf6;%eՁOt@&<$ύYNP&)BX4T^bN֕jϧ'UvENPPJ8jaZjz٥d"4aVUՖizԭTDt"c齷6ˁz؅\D]Z4Du"Jh#=ZҠfjSw$I &14>izߍb~9їOͻ{(f1sn#3D'B)-B6G^üȮaXa-[ - Cw4WYA1,8r-z_̷`4Nq\KN[;#½WA_EJ\:?J3׷urr?l^wtBZLy:/OȣVlk9sߖG| x*1ZCp)$R#(')Y *""\UD"J;U4 #|Lr#"͓37VD($=<3˾ʔ?L9oza0O&.D)cWRmo,eL*Kޣ$IP߮-АV3hfY2 %^^?wwG =3 dO-{4Oa;faiţZ*t@,Di\53_U(rQ-mKI3A$̕`,.cX@)C,*`2.nP;<"(lt$ kQN"墨!*TѪZNR22e2nfdlaҺdRegff"!?$;@braU- 0GHONӺܿ6D9EqY)2;T_87YyF i9~mZDu3YPi;m/}7"QK%JU+ G$QRV&F@f{m4\Qr(#ZOvVFT<BA9I])UD)7?~C[Kk^ˡK^֮Z>sJzdH)%$7x;jp_fP .\W'r<<ia{aQX(cYTa)gT*)JZyREu**ZD*RV)EJ!pY,<"f$(IA0ʅd/K_Yn_H0V-SQU-\54e!&z JHXdz}ͤT* &`䮪aJkt Qgm[W&TC۾He6$f)U!:E`SM4Do"jYXH2MCƭҀtϠ !YKJDRdXw`n)Iʤ@"CV/??|Mw/`/ucrI[ םhS9Hd"(Ǿ?bBa\>=)ߞ/?fϟLU~/onA.Ry;mŮ0uYCN♹Ux7-?={p/y>pv_;z/"D#[=vu^@isO8(#L!#{&!aPw;F(2<- Dy&QBxHUK)޻ T BD) HNssZ`aӵ́!uGط1^QW j-?La+].oqSB~O"?ǚ<ͻG0K g PX Ռ⩥>M&4 t &Ͷu3B9Q:9,#!*"PN,r:]^fwK 'kfNC`JJ׆ DiZ0)UE)T*Seb*e.hld4$΃O%"i%HJϾ o#!;Q%~kvN~>XT(mϡXn^ד$5i%ܟwaI/U_&yS*ϰϑ]}{[fzt)~wA\"E}qc{MN$ e #Hs)ݜY 'b}OF 8IY'&&N" \ w$@N wh=%=m=ĕ.&RA a򈟱͘$*{Gwo&aH,3W-n*9[k-ɍVw/ӣȚgi,66,ZD7냠nFko9Ĩ%|{,iy^=4%Urb,cL&?Ap7w3Ƃܚ#摺H!#y޶~:_^O緷u=~0HeZw=|Ɓm|I$,CoEDnEN׋|*~Y?~|*'}zї~uMgݓL"P "`N֛Ci$ F(1FRFRU*G$ !3Q0T͜HDde-7 ۺ]rz;vFZ miq[(( h;pg"S(Pfeș%"d2Eɓa0]s!n-O} B)\Z:*s1<&-…yzf%AF`L iRbyȡ/{~,BBHF1ݷW-5R扵r[#i +C#02쀔TRͶ-@ĆWI A*f\$2[瞘tK(&^]3YU٢quh{ 5㍬>oǷ|oD\y߬;˧?ko2Py m)BE鰸m-jS>!Z#yfzikD$Z:aoomVEiq8{cu~÷wQڃmP-}<r>m~wW]#WAi-L\ta ,rԼᾉHh𠣏>Y** ې3E9#8g*>JD* 0lL(̍ eu.f .E8I<E j6'wz$U4"X31\`y)|bL|{XQtG;#,"3=22zO۩{uϞlYgkSg ¦ދkdD˝rU&I\fur,:ey4 1k E/{wwJdZxR#mnu^o˥6-=3#)[=a`Hf-*J1D 2-!̑T%"E!-!t7E$R!6 RF'2@p)4bIu*T:ϥ,s)V*E Q5c9ДɜH ݌R-|DH4QFm46-ɢժ1 ''Q*f3. *ȴ="$TFIZxY!Ąq2Tћ*j4HJzpH{OSbp%5H-x}]?S)rYe?r.ϟGc 5+WooyVw;}T%WWGPу̲-y6uIq8JꞾ]CAD{ۺ{xJȾu݇ PN|T׿x8$wW防h6Nm:~{^75~zo>z 9Iޙ,:O Qz#<"SXt&V%a$[XDd%p%D%" :!j ?Τҍ)G+xNYa6b9b,d Z/ufdƅ *P 1 {FS6͘u ,ܽyC+_vv ~R\A!0s7 3Xl}n}2ܪi%)d6g*9ʵ)/4vDBC t0wbp*ZLlײ:G1Zkwٝ<-jX*T*pӷr S\*I'3w֚sF@y7;w7g}dst?Ӓ!{Cqc"20yg/uګ*S_a If-#Ik@"9eœ(R eyX5k(L4XYd_ʥb<LUL+BU!9_1$]{AY2WQF]|>>Nr-ܓ {8hi@ %=c;NCONxD!PX K{XD(ȧ2ĪZ'L3iZ] BvIOPDk :i)G+_;eꍷ0L]oKi%w_vڎ bݎ}6i &Jyqyu ͓%Mg?_?۷O7k|o|?q,Ιyxpayk!"8" sA"@R*1G&)3+dDsL%""%| Y+)\3O hH)ZDœ InS${RFd^4B`f<l]|kܝ-=$8,2=|,)f A SE+Jў,+3Bae)rG[݅akVYDYJCu +2͢"s1 qÃR*LJDDƈ9G~ LJ"^J)c'TLh$#7w"@8" y2H $RXrlV~y{Nr[~}=>Ὤ~>^r\[:7!y_h%V偦O vHyn=EENV&}\|Jo%rfVn4t\pqC/a??O|>O<ŇK\TO7W/yiIyYpfL`2*Ik \>0,B,T%˾H-T33<̉4$;*D.vEf&L;l}=-|\N燥Wl-gp#43`ݑpbsdPzFsg x:/#=/ ygD&%EߐppLITZTLZX?6º-9q+ %!EK,JTR@0([1gEو٥(3A NԈ\ S0xO.xu\T )#<#B+3iPU 'H $ 1$A=c3(ދ x*1IA&K>‰D,<=$E3Er"0;Y>Ѷ. gεRv}Vo;^ڼ;my5lLt]6[_?.'Ҭ?>ϫOe:߷.pv\Wò㳗Oo"W?ɏ.w`>|Oc|''f#sMi[3Vc/ۏ?lWq*jzxͶYzeLfHSE92U%TZ=$2**a MEbJsL#Q0&$TVN7f32ͶmCP}Yh=ݚtGxP(Mؽ'zX\e6dLK V9!u/tUO-{s0%.qXcU i*h &ox:\յ~X[lR@k_ijOc8_}_|q}6\feG?p /S7߾/~Y?Tn^}#]V>O힕"[_CzeZy;ʕą0^v5O:Ӗ 32c#>ȴLbX1&#ITD{NLd.AI,UAq* zfI.6H@3ST-;<|m۶\*yP{#RkoQ8D"$ĨB."ݛynKx۶󹯤ZiOz'A{'YNC &gV9ҏO- gԒuf MaN{q=GGpwH 1Qr@@8i 鍮Ӯ4ܓOraI,5LHKB@>FEAu@\: c>^& J"$Ǣ-$DəJKN[Dk7 WNǻ>JF)x 3̳Z O pf*Г.B*`BzV")ɕ)3tH$"D0b!ʼn-sP,h X)̴0[30R IDAT5.tNߜ?L9 ioΏe򅝏٨ I% 9]U\ f㶾Df-w~l|W[e։ȩ^ŵ#t:<p<Å~7;k~>//Op*Whw/^݄JLENKҶXyVoתT.N4-f;}^yd(@uy6ɢu"bbTH6IxoZ0t3N*b.{o6)THwA{Uh !$[z^LJxZNv^qSu ΫGt#"Q@. %bU:-?29̼3 ,`4"N2$8LuN$ZRᓶhay&}Bt1ӿi] DINO,LQfquQP08!8EvnlNKΣBֱnr\q\p\췛fl/ 'I,,B<)YQBUX(IQhg:Oy @oNCnl<ߝ^i;?r\8oX-נթm(i b I& (zՑEl0 yGe6b.I9v\ku!%K4ϭ ZGl|x` H*]{ߞ6/Ax8c' d14Obeh}LIԠD='Ζ'ϭ*5?ns~;3ۘʙuŎz$ebTim" 3nBL,#YHȍ2 g=AN#S4ٛgˠRQ$"81`EL/}ySkVIvѻye J -t:LgIy~>xǯZ{9]|2z[>_~^/^Ë_p8Rc[]=<^_~u7ۯ_?|~==_?g?;};\S#]~Qো_{ dBjwW<̕@DÑQK4!ZC2}H.q>B$2:_hSI, bj 2<ܤnuBB"ݬ23+em]}n"Qֹ/}ik-is-kF*tRgW=") #"[oG;iRü)cѐ DF=.Nٶ4Gdmr^DžWzt۰wiI$BUu' WI0W*M *\ 2HQtLLeݻy|>v3=ܽY_i(5NNoNN #dKz^l;/fsdV)bډoΞd@d&䉆8:$$霞LDF" H "A|0#4 '"#="A EPl}PӅ3rC;1]ٺ#8/^|o>#Eڦ7Qoޖb?>nOYNaǿ~{|OW?yWw!6T쭟׳>0UUj*pnw K_7}Րҍ`}+EM(S$ K "cw9.|: gN nXC*Y|ʜ2;_뫫?7?y-7~|oj]^\h{.sCW.ڊ%>O[Ƣ]ej$}x/~gZ^݇?}q}ׯO"B(9qv&gQ=;H0sGwKfaA3nLB>0s>A;S" 3X3TJ),of֚LUDu&v3o݈H=䉾lApdf=Զ^J$R=" 1GFNhObGZ4S(\ a4w"۲1pQ8Qʳ]Å63UŃ&=csνc69.t:*|Xq4$8dAA$ K,D p*@Q1qpʼ?\Mӡa=a@EY3ӻ#޶my8>-w[. K˓['3N%#L '"*ý6{s-TH!dSbAA%I!f!eV@5Y㨘³%F˹mcz+R p撮>X?Nᑩ)B%D))6aGDh5>-sdDI;g];ǐND"F>WWWT!L(鑞<L T2pL A)hCF4ǀ,OPL"xBJ)$R`HVM 0Y*gGFv64B6\1PU%qhE[kgُtq?s=JHPj^S[?H.җ7_O?Wtևw5!\&&|fݡe~~Ͽ~yxZ?X}l}uUy e_]/%&D!Ô-9׹\T( D-AEZ׉E $LDQJfRD(*1yPuD)T@O*g[B s Z(e >W{*hސeoY:M BZmH27ݙm=J2c "=)X36&jnL۶$evOwDpXZ9{GkԜzzX5<Av(eB*&H C*DIB^F w C2O/o&l۶u(Jd@Dxe]m?=>Où?.y8{l.9od>Ydd$Qzћ\U"G@YvzBN`LTB4Ӷ-z7[8-xvL]ʤdPn~@H{w8%N8t"?8h#vIND)D)Lf[_@is}|8\m32@zD(8[#z9>@Dx:01wA+ ?g$LSd18 !0B F2=ݢXSL  `X-,=@TXíXǃfoto@bv_y|Cנ-#"/tzqDhk4%~ӯg"Wo]?[o|,y:]h;X>{|uMۗo|Ŗkغ.9ϼۏxUv壗M_1ѾL%‰.܈˾+|fPΕAzH'k"$TY9"epzAR ֻ^"L=D,*xL*@faBi{Iz)E&eR/in=zvㆊ8UT|kN`[7ww8J|dU#hD33љ%Ypg@muU˝>}e:h q g3Nf:m+ݝ,8ѩcY rf0%DLH%RF塢B&1#;<pdFƫn}e91{mDzݲm};崝=yNځܓ{L,0w<23"0`de&VQ J`r1>pVdc(fE=b ۼ ٶ~$`NPr"3d#;ig{"(«?~vJ}N;oG'B:>߶O{ֻoZ3zqxWxs8ǟ:Zks5JJRg(!lEV:5Xx IDATDdAimNֶmںdҌTvɨZ"Q"Bv"P'x]LS@ur 9u*L+OO=0 9<1:w2SͺL)SGm*1[.ąQjcAd2GD&ڥQ3eC Aܣppn&R3O>XVtYkpdތm\6ޟݻdxm>|dyR-EχVnڹe[7o~-sTTJ4P_uS&T!ݬm6P F`W`2 dRnT>"sV'rmᚄ *HL݉(E p`6mUk3 FB9/"Uk[' sRPgM a,iK:K-r52f8Q6.=9!%E4MCA[kAYlj&X]MuѤٕףX "[l2LuFHg+j@@. #u7ٹvAll⚙^_-Iપa!H)L5O&ɪGxN&f,,TTE=3Qޘ#BHxZv"&T:;2 ĥ)%ErXH dE@Iսmڴܤq=tҴML[ nY \ Rbpa&B.DbN2غ\CUr(4Hk,`1rSs@`r󜃷VI9S%'tL]:baQPCQ Jdm5 x=* $P`e(KqøT`V:$\pN  Z9VmhSZܴyg}W'> =tFi^-7N<^=7ܹXp_^mgGi6CޟhA-Es?mvjQȳ[7~y:ܲvi7&Pqɴo92>C>X-M]0dt fu# (jQ;td,((1tA} .B9gd,cȠ 0@Le "QՀP3kSC!Y5y6x'eMrk2jӤ4 0鸝&L391JM'P puc׶)MkN]R#f&'vkMݍ22'i̴T04ھ mM2!Sd ؈"T31ALJ)sI\Hc+tB#60wS "s0(3@l4wGhpC2Wf&tl0W0ŒL-i:mF<#~XeT3ՠLjbQm3'S'S芞Ldˡ a8qCJb9Yh!fn&%jª̭d2&f:M(r59# e`.X"s  DA"HZT6iαH]j]'I zevwqTLBl@.02!glN(1Pf2jQ4HK A9k}h:j,*ݸ(S !0w)]=9ܩp8X``a! |lgÈd'_/r&,t;bB(8dVdu2w1AJէ:YB!!Q&cY50ÃEkCμᶛ,d:|w;FhXG`UZk|qiz@1=:t=Ǟテtn\0gF=}2ڿy̝\7! ¼JYͽ% hbHE3pyhVi2KX dL>eLM֪H9@,U͉] DA`JH ,ڨQ0@tw3fDLYݍYf1@($[v@UpwϙT-jRAD5kk "F(  r#682mL0+H/ifZ9JWVeံjv6gYPUA3eGhP7dI 1nՓ݂=uO#gBEp2uqs"bw %-(#E7ݦN Xb1SE,shRJD]J~nۦm9]@"3e)3UHTP̼8Ȥe Q5EA=(@T \- ⨡lƍUXKDJfL*K֤4xԓz2idZ S,ER$Gp q@%.c AEU~=9$L ܉t[LDx`Wywz9v&&2I}f.ѩ#O:iv)fl"i;`X x՟SV̓f6b~i3M[_7R[2) ]BPIIܫ5s)i: *Fh`!MEPp9"@Tmn:m5kPsfz`f#Fb$Lg@j .r,Cp'#)BM3]s D ˹pAEYNYcWUpn8jlD%8<)Y6ue8”Xn`:[G3!]{m 52ihV$p,[", qwHoeSur~y}gY:$(úL "$e_`8յsƙsfﲶafp7R I`)jXyf27K:- K/ AIQeV\z`=AhP&ٔ whF jWI!3G@B]!NN+"NDA`$]$rv6S53ea5]ɫyfX,U9I]v%hl:1 Hm]cQTLI@]e fHm&bbww B'd֥VS& ]k 8cBTLB 1<49idJJ]'7ׇ' '?86S*,\ ff*!hzm:qgS옊Ӿ82Y=mNҤ޼nw8 sz{v7o:vWyyfLH4!LJ! q$e͍EQԛT+\#;CVʲ5]b 1 Ǔ'BIoHܥ!l- R sm L2Ųm]"ëkXw1.Q %G&vVf▍RK,Sz6%U:Xr( kM7l9U¸ѡC+yecIrJ&]\Ėݍdu ΂]ɯ`ܥGzh B,a.21D)TA 2HAd䝦EYĽ5g'f2 Vf B"C(c khmPP1 D]H r9:D YV'w#qVdܕ7S6#Ȗt<.OFh4)OI3nwRX(cE  HD, E a)D qP3Q!rDY|J zS JP"(DcuNͬ+CPhJ@8"a ĉ5 1BW!ͭFGhe3Դi}a +T-RBIhSBťp\AiV9[%lıSA*̭Os`wl,̠\L37!]:!O'-ؙEY$%0jRO)h4nFk+p:tn6:&ʩfgܙ ))4=2H"Nqu@<2M&>s9s—\+/W&s176r!dLYtZH=?Ts a0rJ[jƃb bU":XsNRI ʊ%Xw6FL9'Mʲg8PR)jVk4yܒF`4O82Չ:zQn`:m▊G c ĩլY9Cr33@*a4QL10Sb6җ}E6I^դ!iBkXުOٚĔk!id汫d]08圜#x+rqqܩq$h`,Ɯ[.ȝ t%H.&g%E[59 PjkMڶɪ-qb)ʸ<;1C&S#bXf9qv:k& IP+D"1(T*YY(u /@V474);(kNu]OmԦFݓ6MSm;ÇWVVVkkx:RSkjS'l(();FPE5F. ĊQÂgQ{=RF.*m?ěD͓z}R9Wy%ސ֐zWPn qtZ]Qk>Bg9;czH8 `ЋI;i=L+ikB#Ywٓ __e{O~uwǜLI{C籯20N@s֯jpD$O}%fw{PaC:WUztGG"~G~GG/>M7պ߹kGt=򰧯 2=|>~鏾2|(Y|ۓ{y}W='xuX-}Co}}oG")k#nG@{ݜ#%`ͷ@G_6=[~lOD!؃iO̾U[~|N|Oϵcu[~!omw6ԍ"== xеmEWOԘ?]?s2~)Ξ9$~SDzzzzz zzzzz3ӛ f7=====@OOOOOozzzzzz3ӛ f7=====@OOOOOozzzzzz3ӛ f7=====f#?w|ܿxn Ob1373U18=3HP@"s  D @P$D@v(͝ ErrA;҉@\ 90!v)ݝ FP p+Z 5  F0ן @>򧧧7`!?ֿ?9,]Gmsg"wף J̙fByϿ;B1p8ǃ]qN294Yw_uMwޱqf_n"DO^K[6m7 =Kc\O~U4ijsӶ3Ή@A\޵1Ks'mdnLL`dOß+B8y_d3f~A/|6'nw_Cێ>!wN&]|'wʫoq3Ey;m[dx+o뎖Dr<~GQӛG#A_ُK1:w+_pQfn#͗_ytª.%"KrzFp4g2lggx>~ןu9ێ%¯o,}kc82‘2o8v o?{/s5 g&@ (,\m_*e6i}o}_mƿWV wuO|͇?ww^sO>ٻNSw\]if~>i|]z–n;^Ou컇 m7Tiu;b a"wW7 ?o9sCf%g/ No3'Zm,?ڗuqg^}/{÷>}iOϷOl@:5Zδ@HUedL'c;Aˀ0Nske=;a/7;K/ L2 ?F+o?=hv[6 N0 ~3_#/84dt>iz/^}|| [Law݆ E:&nD瞴/~=qշ\)]p8]u=a}i 7^qwLu|֛ ϻ׾6H~ѕoy[?$zzz3XcGΙ`dDܹkXه7G6pm?ovl(@!Aw3 .d]wmp%CW_^ąY@wICoe9 d~ht5_/?"đݮoሱ:c~G^T &aݙٜ  ?sI]swr]gxR\pIx*vI`g}.=Ws'?/uwَ;s(3AɋQ}.ZOOoWȁa,/E`v@OM,03s5qEϸx1Gm+`2y+0g`+ s=^_}pb'OۏXnWj{bB>zE'wKιDNz μ ٫n>tߎm۷/  kK-дujsʩmcwfgr& 8naXg2ÈlB~O]7x?|7U3 gl;W+@$===x`S?!cswd 8IGaK'HpO'_[$ Ww pcJA5[1fHF@Co{n] ZI$~B_3ș܀t 4;߿sHm^qw9Ǯy9zt۝w@t1Lp ^w< s Avsgvv䣷_s-B| ;=t{.+k7mt՟}ٳ[d@9xўo;xC&pXci 8;9;N;{dbAP!]ȑ"2 "l йB''P_ WJ8?1)dOGc=a™J]y=ꘛ뮄"P;Γi'2Dc#%wM3 ܝ*gO۲w5_|3O9E1fG]XJ`.I (Y0b>={~78-@7CGI[W^u ^Jv72u1}fL7fu΂i82[7nڔĕg_O\whb=yx3>sM $wuW) ێ*~f?W7}=coG/8?qsO%?̳!u+ tƍ827n޵w/3uG]>:/-(ܻ|7;(SMAOOouELG3ϟxW~Ԅ#x?qi{A4a- T(xXh씙uO_}%caQrqk~5>2BuOVk(o~ǟfąS?f_4M[wW|_pٙ/lo?y{.Ͻ᤹E"b{> !\p®csy'27SOa"+oz;ޚ2X5|680`/z7]Bj:|~Tfq-!ϿßNټ|`&v5^+" DLkd0&]rYS2A L %#Z>㸝๧cæn CAmf_{gIjLS!xtqH3EK_@@Z qyp}qˮ[NϿ?xm\ы.O|l}¼/zw͂r3iz?AP A?^'tZ XO~~J|Ҧm{ֳ!\ٶqKڹݶa(3ry#LTAZ sxYSq\+N\Q:*J-hZ#VwKylNI,/U.N_f,%-ܭ-uK'+YUVApFիhʝX몆ҐWvwmV]1Cjk- Mΰ#]QHcղVKY)ӪUq[,9)sՄ͘vIGrYW9Uњ@ n \zCl/6{ĿcJ+~wC7ʀlׇ4g*`67oll@ 1 b@ 1 G 6SQIENDB`ntfy-2.11.0/docs/static/img/android-screenshot-basic-notification.png000066400000000000000000000607471462047176100256400ustar00rootroot00000000000000PNG  IHDRl<bKGD pHYs  tIME hFiTXtCommentCreated with GIMPd.e IDATxywfwEEDQ!  Qqy]q!n1j#n.bP4F 30ݮzv ۷ηNUR=;a PXkQJ;aIn-gYP  KY gQJckyUA)RJY~JRJiR|Ͽ.AJZ?5 ecԕzPO]FZPb-)KV^OU=C凗&oJyYoN4 w zeĚqm,h V)|yo- JJh48Vc0^ߝ˒~:גH$pqPJB)#9nł?X',uV)0`5^0Հ!e梁bWxzA (P #\7EqQ1)˾^~aYRXϢ}^ }׆i/Z9ҟR@+Kh56~ye-A4W)Dq4Z)5:ᕉtAޡmQXtޠfHT}_a{*+cW砙CYJiKgUөwHej녟Zn#weID?Қm5TP^ 6|kg5Q8 cw-Wyd2GtX,%%c]ND+T+E"@iqnl[kM}ΣtoT}x ihZ80}sQʿhQ (E"0@*47Z~'Ҿzw1*b$ӖoP!=Wh{J {֯޳XEJ߈(IC ʦ{ieB+ؘFZnitqI7 7ц)4քF1mL=n 2m?ò"e;Х[:otbvu]mQ*eEJBx>߀B)L(0w1#XĆ.F24\VUY^D55*bi#!R? ۅ6^ZZ]ó %z|~g"b$ 7sX\HyQ0J(,ws ;(8~[nJR)R5㷓^'Ea huV蠝ŷ[Q;bj+2"M{  Z N{b2xp Ď :~&.XiCuܗ6e.ڈ"b[]N`Q1[ S|ۦ4*ƴmrߐ)_Dy/*1GCrF34E譠k*xhp( *sJy=mzF"tZبh"- "$z^y2OPFtI{xBU(:;JGWezHTla'\𕶃?D@ exR8)zL$h#Tt8ʆ I(턍c|Mppp7O+G&xA}?nӡ#F{hy)x/EɤAVcP!bW×Jmܹj /]6tVE]EBO+%C\dB)[o܌t04ʄCJi6XAH&0h9E@EBy"P.oTkM2, q: ?:Hs/6gˡz1*Rôؠ>{c\{:OH7h_BOHZTjic#ɠPpH0:et]:e fZh h =_T'B^rf=@A67{wWZe"ʗh5Z*o ;67PQ&-`"tx?0"(!1MmihBrKUMt[ 南fOQKRrɇs'tă2U*詫ȰY Xe z7axgߕN _-s+_<)k=nߨ 6:b@10 zQ501 8[℆!=e!2oƘPyWf[:=o#c&{/|DЛ1 Yl+KR㱱|/ B;MIRDTD?&b0CaӞ`lK skz]^H5PnKu轌R\ S([j8SGߛ1B4A+:ĶXoT+I )m5V{bZ9h_AK!ֲ_ԓ[S?"j6+i׹M2(vƴ;u#(NK_; <)m—3Qsb=gD2?n6)ڈ$IE'7 ǐ"Ɖ]H3FgI+eu(ZJPbcl^-J=Nϯ16)'#]F-vRnİD±˸{w~?5e|\pD$m*SE04v>VϨSu"CTX`pB0!^lSSwY!Ȱ1ґRRCGTPqxwMұ?:Oһ^Ľy1oYL;@|R^>^ިX;2hCM+M:H=!:\i./FTi Z'Znw̝3d2AJ"zg&\hP$b֖$݋w"Y)odWX 3+yڲc~ܦbsr?/K8w('+*T>'ϤJժŘ$,΋l7 Qr1he2WsA+o`U7֛n&=?ΑԾ3܋yzldbPjuxoұa ԨY7#I'6UCVp2;Xu9<=YO)Ey_3QN% Kk p sQGSf->{h PUzn]+ oNîAAyܣ ܤiW0V{zRXF\~ u6ލۉARK"I\Fm?/ߍZwAAȇ#/TŚXn5F H AKّ0ߍԸ'B޿E;ݼ _ ¯A><c؎L݁1eèR  tҍ?yzfV~ 6펗\AΝN8 )&r:ue AA8ةQ;i8X޽Sc6"##SrMA1ޡ4嗀L  \`5xy(a  Xh0~0)<̨ ~P  EQ4c 6zs b$k%//OJ  &AI$}w(**b̙[gϞ͗_~3|>ر>-[Ҹqcj׮ȑ#I/Zw}WJ p~IqPF;v6+;w2x` P7x#ׯgرc?0ÿ߿?>c{~}}Q>) 0NZm4*z"LqFxr?s=cÆ +A@x&^,DL0T޽{׿;C='+|rիZ*:~-ԯ_nݺ.'|2se$ILBVVv3f 33nݺ6i$VZEÆ 9̌Ę={6|pӺukLիW^vڜz̙3;v.v)SSV-H͚5|Mj֬ɱ˄ 3 yf^z%8cӧsAak0<aBÝֆx+T,TeE$dСtЁaÆ۷oM6?k-|{,K,>㫯"H_0yd}YVX3| &L /k˖-s1L4 k-ӧOUV >K.c [ngϞҥK/pO>$SO(((cǎ @-7o^(vI&MغuO'EEEL4k6vΰaؼy3~axI&s:uDqqqwÆ ٰa۶m ++< ^Mp]5~ )/VJJob_Ł2d͛7gСe>q͛ǎ׮]k-˖-k%HиqMҫWӧӥK9N9.2O@l۶D"A۶mcTZc K.~'xƍs衇ҽ{wp  JJR\J\kqŵ_CڞygXd /B՟)(,,9K.eĈ<裬Yy/RRRI$᥃YTZPtƄ jj^8 [sB!' hډV_QK#is? 1A`{?իsyUTZje<ZkZj{sӧͶ9r:>  fΚ# wu6QFw4i҄ 6жm[T¡? EEE\xdggE׮]裏s:(|P\q!dɒիWsGv 3w.ay|0{6Ɍ N+V/0`@lW_-'p2.bK9B{wpl{3' WժUgܸq\fΜK/D^^K,駟Ncsϱl2*UD^2eJLL4s=w?Iڵرn~ki&Fm;K.lٲիWׯk֬ ._v Ǝ^ߧAW͚2y8S&W\ɖ[8f|Yΰ pࠕ ̳aWF}LI YXk9С.5jPJTV*UL&^:ZQÇO? ,YBժU9w'xի~z͛-**b֬Y4i҄UrWŋ?>[laڴiԮ]L.Rڶm%\9իk>\tE1s=Gnv;k׮APVs\7֭[TZw>Ao~^GQ#F0'Ɋo}usʨ'I).[ؼEh *1k0%.qF¨%޵mQ5fӟqEl‰ʄ?qGVVV̈jwyT^!CЩS}>{Ν '?\}|7|aM_O\(.)ᩧQXXX^xkJA`- 8[UT@`=4(]ƭ[JMތʴa| eaM1?&B4h˘1cbT*y)]wӟxlذ!{/s]tUV_#=S:ṳN:deyQ" /dԩc#?#5裎Th"H`ğkݖKu Al ; ko{ǸCBdJ~{D[Fǔ@TBsu߁pGJ=z.'pQGj֬ٳ8q"~|LFMF\㤓Nk׮{-j׮ 7;ѣo~Kڵ+/2۷o[nO>eBG7͛7Ǯw5ׄs"5kr=ÿg_u >,A~X2^>8'k0 Ћܫ Xq#C2#͎Q-8H 52>-ƍy晃; _o QzTZQ$tLk5Lf׫Fs!S=vd.\Ȝ9s7n_~A_6l LWHHYo)u-uI(6pQȿˡrh:?avĉ,^^zue_A kc1#LYwvEKQoA`%FgB̲  G5JNju- S^)9Zs ! B/ BOzCH  e?damwu0"'BAV,')[^Jn 1Z*OJ  `wTjx3x!AA.@Y㠕3&AA0\[Ho c   `(@RPD  5 P)R&H*DO 8PV` AA_^V i0! BZ@x(#s ^AW<ZA4pnDVŃ1J#AA81&WV0A{fXBA аc@F) G/  hBM,0 ?! AADƆ"k=O wZY! Bd28Z    㠴FioCx7ːAG9'G;X,%%%2NAA-I$2ЎWexs "!\sӬY3ԩ 7Paڵ+C ر_e*,,_dΝRA~8&8A; lj aT*Ŷmؾ}{y\NtX7w}zhF_OFF=C / SLadeeɠA۷/ׯo߾׏T*9ù˲eMܹs8p mڴs\z饬]yZkVZyG6m836mZ,))a„ o>{۶m9CCO>nݚ޽{3k֬}'O̠A*3gΣ}tڕѣGSRR"5PPhqobetf yyy̝;ɓ'ӭ[7~JJJ/:t(9۷o'//rrrرc梵FkMnn.9994jԈ+W믇/O/8ꨣʤgƌӇӡCׯϛoɉ'c[۳yf1|9ŋ+J$7xcxs2uTv֭[)..fٲe\y\}\wuΝ;Y`{&JQfM֯_̄ biOXd ;v$''b C*SN7UVqᇳpBnvFbΝ?ON?trrrp%Kpްa}|MxlҤI\p̞=FQPP+B˖- ¸Xc֛P(og}aܹ̜9KrI'O? /)**^zL6o2}t)((`aK.!H0eʔ>ot֭tu]$ &Mĸq:u*>e.0k,f͚ŋ9өT>`>4lؐVZˌ3Xt)]v%H0}t-ZČ3믩[.&NM7݄:&f͚Eff&͛7~ۜ|c9r$R =7oE|7L:o&9sJ̙3yXp!#F L|| Xp!o ,K.qM7I-A8qS.5 WaewG}t' mc]T xT^zc=B.]*n/_ ?6mI jFe̙tI޳aÆ~y4j(v}u֭Ozkq饗ҲeK6orGR^|]wZkƏg}FVVVS+ Iid-WR*p֖jFA8qu-1P@R6*7gYhӦM/|c ժU;?+WSOeǎޏfVX ɋ;m6V\ɓIR|?*UPTTˬPYjDʕ+5qc 7.Mb…B纬X5kH A8Q~jc )71^T_$8"\VoߧqƱѹ7o&;;MDzp]wSR% ɓ,Î;6mu֥EsOC|3Lҷo_DO7x# ;J|dggSN222MI'Daa!ܹ֭3\rBA*bmm\i {CHSTTĦM袋h߾.'CF 7oJ)z{x9yW_>^xaro߾ /n,ǣ>ʱ[pbԨQhСCϏ>haܸq^ocr10elB&M;w.6mA\z饱kѬY3 D~~>&MRJ?u֥o߾L66mЫW/6nȴiӨT/BA * ;x:ASA*( T۷YP\\cAjԨ]wEaa!og?۶m[lFRXX8Cعs'͚5 oc|׌3xBF9//}?^n1l۶񒒒r󤰰=-ZjEQQ%%%z C=[R\\L5X`[橧bҥ~̛75ԩõ^w&M85*̓@d~g=C a֭&8'u$uC=F֎)vx?2''' +77۷ ԩǏҰGY&#h"wロe ;bQJ.VrP@LɴT/5 ȓ%סCz@iE]$/&7o1 ܹ3cƌm۶}&X=+'p/**bʕ!:J`r>ka2*:)  (*UwRT#ʔ'A1)5hWy̍bbi߾= .䣏>bܹ<|Ջ:e֭1?N:ɓ?!JnPکͬj+ Q3@gXl%@B'6i]Ď o4A\`H{PܭTTf͚ѼysZhA޽yW0OV} xv(h׮/~~EO*[IO<8*Y5 ZJd5*᠒0T.` x+6Ax*vkHJ)it?I_q]͛73j(?xZjŅ^ҥK|ѣGӵkWZlɠAXpO+?\}Q.2=\xƍꫯf˖- :mr)裏~7\xᅴiӆ;rey0999ۗW^y%m۶ѧOyٳg3h ڴiC׮]mF9c߿?~VZСCiժݻw;,qN;49z2}ݺu\tEmۖ:0rH֮]#FH$;v, bʔ)L81/2C C uKQYar%*;' `Ow; IDATUh^QJѳgڵki׮˖-kogƍvi|Wy 0n(Ջ> +*yrssYhkݛ[o>pkywx饗hݺORZΝ;y96lÆ W^a̘1dee{qQN|X޽iڴ)7tC=~1x`ƌùK*⬳΢C{uY|'tЁ۷r7ЧOK<L05k2sZ aÆ1ɓ'3|p6o̓O>əg{UAdf`¶LѾm >Y5DP):u<|FW-n0d$R| zI"¯cAh4Zy1q؈X{M6MIII켱cǖ8ԭ[7N/3Π{0JaxW9ܹ3;vo߾妵bрMM)\ ujqJ/_v`#LJuQl-j֖VE?ڃDžV_*패);QGtԉ᱙3gұcG:u*3f ###v-;kr7c;0&M̙3y뭷hѢfNW^{'+Q\eqS,&:G_ά~lXߊu`ݚY 6cf[} KNfqm$vҨp ^oZ>4Mӷn_ #FQ'F,b4QXVf41a*-$CJJ2-+:* 0Ct}Zc?ϽW4sgZ 4IU|XKXbEx=o<̜9ivJ:::`izz`Ig}6ϟ &`ѢE5kVeќ֖AD8÷xq;OUW] ly)ScD EQ`ƍʈ1yd.[qpe. oĹ[9n>}:jٳq?f[~-*n =(<x8p'>/vߣ-ظa^~%k^7Ħ ]}GekẽP"2V~W+W[H?g_M7o&MTq}}}n }}};wn%}t˗xG`Yg5=SOwcƍv*^yq(">ðqƦlJ^GGGGx$+Ur! 6?䓘0a֬YS9k >W=#044ssٞI&RR [SU6҉B}PMz/ss×/W>ḩz0a_ {dK Lkdp3lq5퀵kGҥKtR,\3f0np9眃g}wq~G?>+妛n N?tx7pB,Z_OAyὓO>ø |r I."3fիxb|Č3Z+oǪUrJ|_G[[.@gg'=PCpH?N=a7:~opYbt94pVUDOpvAӎWz? jwwN0A{zzCK/TW\Y9^E]&Ln:u>zgɓ+Ǿz'jVZ￿~{ YF[o|oٲe:~x馛{׉'6^y:o޼5oF=uٲe:ej۫sU٢.oB{<@]xq\D_O>dZӦM֦7pC|zZմKgϞW)Zt};SmwtAmӦMӟ'c~m3gvwwkVn=묳wީw=]]]եSNEUYfj5]tiS[xn?_/^{W8gў]vIlznzaG{9+;5w]+RH}ߜNҷmnЌ];۵oDw$>:uJ0O㧩,K*>wp})WlKZD088{6mڄM65-Goook|XdIH % QFQ%|ƍd)Z^֯_?n:Gm[Y@ww71kpp\[#ꪔoF;vzY_GOzHAc:#]P-bmu`cwv=O@oLA2;5jqK0IfgV`斄hoo.m$5%86=oym`DmmƘrj֐09'DW[u:H) 6 ^_ہG_ΩBSYdmUEB21~nFHs乃﴿Fy 0:fUacq7" ~?@&EX‘U L:3fȂaasDq:ԇtC#\FFF X`܅H} eDĭDIĖp饗ܵ3c#E5@+2؅8*TJqg*DH~@-#Ϳk@D v)R@yqfkaV(DRA] nڽm6"02222222H!a)]T! ͏edddddd8O@A#?c3222222vy6`sМp ‘Ċ42222222d d?"`/a|<"###### (jS͡<2######Q('dׁ?.AnBeFFFFFFF&~ Qa'@ح99a9 B׉t{jBhM)#8k}08812 -  LDFFFFFƮ bIHxz[oq\"g"222222vU rG<3(DĦ"P<R_τ5J 7q*<`a,+[<<А]:Y*]hG'9MI!ws\J*v)DIAfa_0(G6efdddddt$ࡇWrۓAxИ_`"0(ֽNxe9#######cG-.KI#v¤&Oa S030]9D,|#; ڵްýdAM7g낾_uR7[mmY)qG;10̕e+QgB2}2uckys眇I;̳7>HKDHo >_ArOXUԽ5m;[w涿Vvﵭ+'}7j -.'on=tﴖwomla?zώrqhÎ'| ~=jd*Fv "*Mdaئ-8NB ۰#bL(%r}j`աKh0z'LX h:Pzo =ɘB"ڙ/ΥO偸={Ja2mg&C|c=ە.Sk۵ b) QmiT!X2ت/ %}'"("2 qzB m{_E2nZ Bb[-YGT+Uzf\0VZ8$+܏DUg`9xx1j;D d<7C/FrlEvsǚrU{F9HÕ&PAV=P.IM#@%m{dqq*}VsB[{w}XB 5;dQdR-4FrfeT_t@ZOtHŎ&-[]"V7(tҨkY@rq#J GN-f(krhU_Q%O<amo>7|품\IDGU q0JvTQZ%e TfjC="v2mV`e0Q n@yAZӮpQ%Jܬ!e61S}Q+00lLLW"q j$)YǧQA9kll'1qt>e3Rĩl %Zځ$e5U3^q{jeGLvTSit[ϋ;?yA^cd,D3v ǶW*wrP0 VzYBĞIgweY.ɹ_ v%c 'X1/,:u\T D(%~feꠝ,+d!1~u[J޳`5gC"p5Q5e&҉t#  66bfءPIN{B^_/92b.,=)yvpeÖ q,x}+s^f9ԩrL֖0*!-Z/ύjI H1m[@;}r:@UAP@}P탭GS @iurvHĎqc.31> BI %Se/ž[\4N\@)6Pl^ 9-F7mM׆N B  :qE/ m^Y5Pr&)PJ40N-A5tBAP XTi^O QԘzK!9/@% Bc)R^vؾWb礭0P &SPh/'Qil@-pyP:0 r(*(POVa\)m?Sh5 "Qq= E%3p@B 79DDR AH'ǥ#lP%> ƌ)` 86a؊! $I&KIq#cPף.%ē6(-#Q{%:O.("oPJgSǨ&ZPe"`-ZRwD6d|&D,۱2tQؘjF  PpcܹZ%cQP(2H4.uERX=!u$)D f TqرYPeɳ6=תY(Ep2D8g?l4.OiRg81ͻ1A!`*Bh-J81(eRc"۱24LTrw@߳[7bǒRb1vDSc{Gy?ZGKp @ ߥ*ZOZCA rDGl*dІ^HfQ-\80Iѱ>e~5euoJSU%VR4IU:B̖.:AeT:+}F*sW=ciȔޯD`s\*)Z@H#UH#opQ$RFaclۜ–8100$Uh9I4TZATNfjɇ) XZe0?gE5Ul j vJKGH[1=kS"a و8֙PHLu'ZJRѿ>LF͸g@R's{IS@, ѦQ"7u%1*:pq1(K[bm3##-DFfNnZӠ8'%F_JڢJ;ɧJdTL$ΏvO#"A\=;JJI#h?R~XaPc@nu1[J)ql#omP/&v߳S?0,CfOŗ5drSN1ff.3ZJUb| J^xԄ#jS+nE u[ lycRT- 7"Rcؤx ԏTN|mSH#m&CXl c#ch+Jֳ5É-Ĩɀr9!Wڈ'd$st6D$5XzD+sf\>ő9Wri4xƘ:( hVr۷:CJB s_1I]Z;T"jcR6MH"I Etl^j"A'IDATGV}Y#xGR^`0*d}hcdK.k wҔ,!HRSgHPg5iT͡$7&H#`̐R]W0bM u 6~ GN&n`2tDLؙ !U`t6T_ ۥg_Θ~E!%7\gtv;1A03No߹aZ'|)$M9udi)TGC#VRDK!>mg]@(B1H5 !ŕvnaqh#-##hpIOBV2̰~$7װӕ77Te`iZ𷞃S~J ?Oz[!#73ILMg| i`fgfM!eD#e0&AF]wGXgl|;/ClR9 >JXܥY:''y|ś׿7eހW[3+N߳YkӹmOMq-t--竗گCM^P?pϹd&֔+ħް:aeb7Niz)gKO3V.`/Ċ"JٷM6 k٢$SrݚzgY{3c Lamد @3;Zy̍+C [|D"ۙ7^3UJ<1qK1ˇ+؟NhW~d-j6OyOʭ[z5mQEgO^E5s M6 aC6=OS+6cmA{%YjՔyy~X8sESQu#< c< MKAW1XD 3`ؐo3W {ozۦc̈́"g֚1r[|PwwxO ԯmK{t.ܰ(%VDTfկGD9'צApXʿTX=Ƌ5. /f-ߙ/?O5L "i^ deM,G?sQϓ57O BqG9-G|):ѡ~v75_hpK3vNC.LbYMZRACtnD0߻fiVv\Bvv9]TtM`N<0/]fPn񮸻>{4pşfn F0`@+F-οZ7=&/&,Agw-q3׬IKw]IN.{DھSO=3^QgY%J@x3WYqK$ _3^wA I,Hߓ( mԙoCԷGܙᆭ/MI|5im/'\r!A4k/@hݙ57mf=sj2ks?Mދۗ͌\E[A  #}-AbFH]ȘEJKHlӸko[}K wBVm\=yW>^ݿ1+mf2eQyVOsfD͸8YI;FݤSnVT>-=tB#̀ L.?|UsY_ .-} :t_=nZ+v4{|wzA+oI"rJnr>{&otgu^Ô [ z %Gf~?kD>5Sz4iaTw]|QM=0 .GEG]&e۷0$K 6 Cf2cI*Jr%(DdN͟=oF-ѽS_S4ڦmNǂO=[%f:Ym4`C1A*;ן^{W_Md9ϛyÌ-n0kӺ=ŅL&6u귭CSZ%iH3yNoH~_6,*(՟LGۆٿJ_TtTu,L_bܬK=wikWy_`Պ/n)<0}ڟ)5Υ0_أ3_йJ8G<휬Z1n-Z>~ZY,:m~_u4lh v_J f( c5{ISRb'i6Ȩ`7s-ڶIOto+.q_ ԰iE/pߖ-E[Z/5%AJj?/^Ҵb pܖ6}SB1]7(p`6ؽa voܷ7*mU!Nd[ J^)ƹlٳK 9v$eeMLf{HW]ۜ^ݢ;*`DF:j7P?3u@s+RIJy:]yu5;֩b[v a9;[P;͊j` Xe xe8tKHƺn|frԵh@+ vZbʽOծ+$8c2D&Fr2G[w?q -U#" vY9?Μ1j?o2]v+ӷ I;iO5O?T$L#`ܴUVѭ'_sQEꞋj\+/ݴwwʔS8c?:9%;* A7b'oCUNZoC;t'w_ 84Um.  ?p^*M{`*$i*p&SÚէm_5E95\k{ߖmvʒuk;5kebW[%ңKCE e."g0C2!^J!@x{tkP><^/w"3,.EE)] PSⴤd.ϾRRx'ڷ KE%\+$E>u"{Vq%3mj]+bSukz ۊnݷwЦs[m95T#.QD WRdI=ŕ˛A-r{^/pG[P1[$Vyݬ%::4~]E<(LΈOzH)'&-_wY* L#;7'6 UR@9v혻z%2f 297>p}w"UX7e"&"ݟش܋0Pl=UC)+=hXMs`cUȜhW.hMCERӻ4hd_ B2Sm/J~p:9"W1Ux>%bFDYݷ -b_`S]ϧB8^6Ffv~ޏݹ!P+%ںg܍r?]>'y)ZgO`C;vPD1 CϘÆuq*r* No.>zkMaNEKh蹇Q_߹ǛS<XZ&ST 6Xj{*92&|= n ~dp I1I)!K$1n̼XTJ9>>\*2#ȟbx0u;?|]xߓIspS뗊e6*ןKzpN]dҼ9]uHJ8םҵ_{ƠθxO9?C.?nٖg-S$BnaY lq`֟ڶ%M@heXEUs|U=~ψ.f#V]Ir%^Fmi'_I7 yG ,")߉Qi\nj8=у Ѝ"]1"4Cs\%BwIh\^kVvOC(S+I$'D.ǒy{1d҄S;uka]L(TEx-I%Bj@79Gw}VuuXh$z$emb@Ļ(RƏr~GŬX`04 &Oaq>R̸GDj(!o;~w]gQC.Ia7nZꮂG&9_)zҡlBoEٙSjY{w:PеYykWLOX T4_XZҧu[hϠ2V]sj&ZғA={y;NZpyNG.Q78JKցE-\̣G>OY{ڰ>1h./< c&#rxy¯9MǞٍHk楽Q[Un2`qq>9ɩWs7~JNp3;o 䌫HX(䐗b2ΩzLc!wizkX JAOMt6x7b+Y[lЁ\ &"bS|nbk='Ź^E;CH84fjC)"QTB(`;-P s(.C;uˆ1zW{c]ly2 zݩE͟{.v6mO]/+#-&~T}۟Lmynw]%?e$&]57ʕ\z]f[{iQ'hRE3 ]4nD ńX:zG`M2wG-aҊy5])N'H_@qψe,b ϟ#ile$ O>E>st8G#vÙ[0KhZOgw4[7hrvU!qF te-JUfTE#J[:ӗ  t>tl&7ܗTE m4Au DP>?%{r܉9iSLAgkЈ{J~}h\`0$s: L`!r=6ڸɡ+_cv.vRuշ6RSMw/hX+46 rYaд5\w޳`<@z ?7ԅOCukYkKt\rWIqnÆkV;CJ0T%rshپNjzUq'Q@S Ox q㝗͘2)="3Yg'*)0HiLoЙɐ,>8Xnx뙵v t~{??_)I02bi;<\&qn|4^Mf,ظ֑4˺b۬ݮS?.u=SĔ׮]6پ{Wܖ4(gf 5t3w 4t'3 bܠwntWUje י7ϊ1)Ԁq M!߽?0 +B9]Нԩ^UYɌIЯMK0>ʞgtk?.N.: sCܶ֋wvvl4;-W\Mw[oΦcoѲnU-q  ~(-9旟]*Q~(5G=E ֯S4[ } MH/>s߇o}n/N9ݲ,V垹-ƵfOU zO2^? "g-7>}ހ_Fl V9/5)Et<1;"FΣKG1#Z~al1tM`ɽl޶+sVW˴po\ҫ/ǻ"[9aӧ#E@fb2*P⯋P_Gt1%;B{J QnFDxd—,zn>3K *\ﳷ ]@&m3hۨ#)lm+)'5mֵ^îB_˅*Q:mx5ʩ[/^qcmjlvj ,֟^g ynΞ(o#v., )5ʓ~{w85]{0w)4)Nqv:*#TJΈ3V-a(g~RLZdI9Mn\ͬȩK]*X5S7I:NZV-mN:IFhU{oyEHZgmZ{~e5 +BaiI'`8i"o>zCA[ @I1}Oe)ca z5S>q``oݿMZEVE'$7;RM1ky`UڪY(1hH&1]2dNv%Ļ]{ eZ9|է{nJ)ܰb9p8@ R,{i.NIKX.ʗٙu/o`X#e'Uۺn^ޚ&A .}%.[fBC.ߘ 4™bQD\MEB(Mm8X)[o .G,!][sے퟇&mF9HoK_o3ayS̻٭ry 5\|^SVA,Ģ-[DB*@D,p] Y' EYJOLLqt:;oR'!g%WS4-12ix*xeG^#2x>LHsX  y൯>w]3^^uFۤ־WUްbi0֛5os%4" ӺɘCvAU&@q q >볷I+"5Z5Y)B βOiѬ`UB+L߱i7)` t(pG(&APUn>{*}hj"|QŴM0"@JHY1")6 0kp *ְqwQ@ʩXR1LMZ6I{pE>3P2`}?Pyc9U/fv.Eh yB*CÑ#cO]3#~mU<,g\_j1B[[/nŮXBš]2^PTǫhƼUJéGh}QuV*bz!b(!5F呍{5e8~9V\0c:ְy#QQrlvQ/ذaÆoÆ 6lؤbÆ 6lRaÆ 6ذaÆ 6ذaÆ TlذaÆM*6lذa&6lذa&6lذa 6lذIņ 6lذIņ 6lؤbÆ 6lRaÆ 6ذaÆ 6ذaÆ TlذaÆM*6lذaÆM*6lذa&6lذa 6lذIņ 6l b75TȬ'G)"o_(1 h_^Iyذ!*AJPWF<j̡zov"У=A_+e:fe2`j}Gb{SPR3ڰz|$>,s}N*D̶ZQceaq9S`RۨN@ hS;덫oՁY7+s`N50vV"m[+s%n[UF2C:E&QLnPPgXW׺99cLbX+'d;0Ba#^;zv'r1 %t+~Y1K0 2Y5K`6bĀ?99\Y@@V֮gʚf[pd=te]u'uev-ux|plư=?i\; 0b05ʽuĚ֛ONiQ"uI))㎏^]ma?)6> 3\-k{[Yz;Bs:Fy5HF 7 ?T벅O|sT @{o!k$1&~ hJ5?1( vyG tg:m`.+.g:Kg'dL EN0+ꏗ $A&KG"ć-2LzI?߭yPce,D%UC/AC]&l0ҰFzn+||*'W<[ 4[NO1 yH$Tպ] s:w7QI>2Q f vtgOX߅ ısy>c6Lҵsw foy[]S0~=`ndeͣ{&d•-@#+|ь4;9t9˗¡j<bGsܱQn4ZiesEt+;BR%%mgvܹ,@ 73322M`ˮdXwUKKVQ(&]I cHǠvĒΑpF>Pu< S1Zf$S>WB%B5XחSP᫙7Rq[L }3w `,e%Gj(&EW|X-;$Νqm+ˑeUcX9e0Q( l:gSFLCͼ`lݳ$Ʉ9ܿyt/?JC_ 1Q,7Y]>A0P"Z*mqB66#qAJeqkg,LI4_ @I+'Rܳe~^4dU6 Lf(BgCO~z`&X/9+dV?6 \,LQX;{wŐTAJL$<<ǬV[)κ 8ǵ/=qV.Zi*R)7yH*߸S\s6,z$uBqI@I X1v4,[o;ٵu>rZOf|_84Еa(C^QR H)"f U٤2̀b%DO!&אܬ.㠧tJ#ST䇃d\Bqƒd0*TspR7ox]-ӊ &MO Sj\%9 1az}3ֽv8\ +H@ fvĻ׬vZkwmKK0iZ@Q\t$sT?6k󖲺jI:O$kd{w]v L۰jQ&fU?=]SjuomygfMSd>"⨑JN=G7]/fAzv0PR,?/>w wيw.O a=z= 0|>wKңVIұ޿>pxoG-ܶYH0Nk >:<|#vnTaMr?|Q#&sΐA?Xk='U 1\BmA93xF&G}aNRMx`ap4Y+نO}Yd+7"5Co~kΈ{rsO#w4aJ̸{.sc8m$v5"QZFN(RdҤyz _CKJQ]z,~e?SF)YL_)9$ \qi#ƐN=G Ƴk+PTB2$d)*3 d^pIf{2`Y:Ym 4P": K׭)٫Yb܃0{Uw,w=б^C-;}[lC} /?} m3wX7ULpFN f[0/v_T3 g篾YyUK14/F6B-T@NRWҳq.-TAx`UR3? G? Tϝmv8T8>Fꥥ*Ib"+-C`K!R Pgs/-b5'\:qɂKd,<]x$ ʭ1zǠH?ʩ([+uoڪ BDS9#?(@OI]k3 ӺS&HӝgS@zBⲝ/aO] קm+LN=ظ"i}vss,~ gۦ%]N5+wv_*GEk|hu,%6caמ][}%ހ5 r<ÇwѮAx! +.[(] ͹;Zf_o& (z- @cjYcL¶q_>tj]EvZ3жnΤ b_AډI3*uô`t{C`o֩߱~z4ie8w% S,7E\&ΛŘkIӱ7 gF xG] $4e"`vkʒ &XRZUufݪ]?6A@HM9Nn8c^kF ( Y |r9#=ZӂVsEGGS!słkNW۝ ±Q>ѶcGOxe}nU˚e =& T"oCQP m\3S]7s2ݚdftRe F[vzC7 [9W3 3r0~tRwsz@f6@KkVDVJOMzo `㙙Yihs\MTF;o"Wմ3`1Nmz@>A&Q97(t:tH `ցŁ% UAy}V֦78)f](<(k޿Q.4^|Qv'4o= 2!$L+QC5 GHE"x  &8W7wƨ3 oNoMwVO[/``y1\P/Di `1<{0`ƃ>e #+If g׬I4ɬk!D+3Цac4ZjЉd@hT 6^*ŝZnI vl=zc ٥U,~|?ХE2'DOLqyr50gBǽn\浽6\\s8↯G7"p|4nw9w^tqU*f/iL_(E&-sǙ$K@I5K)= ]o0a$5nֽq3vzK5iS|s $P k0a%Gˊt_w{Lk2ЮM|S5qR{tU17 w:ʅω(HJ:ӷ_c(;is(`Q":ZTҥRHұ^a=S|܋%\jIɳW/+R*TUϯB*5UD>uO;GN3WJ\{^IE`_iɒ[ЫIiXkW)\%*yOS[f!@. u)}y"E 6qv 0ߗ.RN-$ Fd.}~o ,)NM5mALU񳚐PYōƳbsĿÊ { g;}?Ejc)CF7UY ldDmł~^E&t{IK{MwƻM05>.yؾQQ8蒊1"GN٫nWUt7p`z:ӼoXs)YdX Ne&,'Ms{6i5CW$c+FrPǾ@]m"3zO&2k p,ٱuOARݚC0|˧)}HWa,(WCX 6?-.yqtq[_FabSRwDI8*$B)n0%%شsW}3H H fSNҵyz(YR GvgA3a1GA􃡽؟GCJ% x fgZ% 6[OWT v9sώ9Mȡ{tq?=P s "zϖr`ҲM"~Z2aXriw))DdyhU ʌ9z|%kx=!^s:uᎯ,6UѦnzܣqsE'40U#[d| =jd=#\l"q#vUܽA=ןt+m)"R+=srj{|;V,N "1 #%RJU-qT|2f_I¡ | -TG|ߖ&&[If[ wg6KJ,R~ 㜓@Xo IDATjEXZ" d%fܯcWBŚmVR̸g蕚ק)Œ%\x[ [s 0Tp8uX(}ZuXc caC:vx;e Ye0wpvڝ,ewDt"t~%t=s=b&[+Z_#,^}УQ^!t ? _Qe/sRG萔b|_m)@W:SSKH2jd$J!"ذwHK1$T!j GLnSd 䈾f'?\yHvR}hOa;LR(_څ:$qIY&4Y.q\y` )i 33>`ģ*ٺED;vHM mO .xөb t!̬YeBL`ip:DDpͨ)s5M+L̤Pn %% jہ S``yޒ.w)0ck%W]scνeZfd`O.OSD%HӃ{; 6}:`Eh3#_6 'ΞP'FE'a5I+8r{ȳMI <|;?4&f@>BF"2&ڹىzyZٹ^8 UT® JJI $#Al# Nu ~Z 33̩%a@OaZkss/OIӎ/3#C.ҀAf538T `:ez|kש\Yԃ.6M#=t;bqKȃ_|}& + E9336tYOv:X8 MzQ1FcoX@,QII4z)^Mlk+vEPQE#1YOؒ3;;;3;gPTTUcZ5C!#VkF0UI9ٕB.%MlhOO$H26BaVo!iut!,T#OĢj>,=y2a//"6!y\xpW ON  elĢRumin=B m^8Fp0e!`ُ_b!7z#1g2"pa_CYy|20&o0YYFO aR͇q9xiZut7WQ;aZ'm8sXã ͜_؊2u4[xy-p?4Q(qFh矱NcdF |Vg014V.̘8মdG cZL&×ڧ} i\xs1`^7o8īV'a@T剖( 70&0ЕTk @Th4 h *kM, * *  *  *   4OؑX`zZ* `#`sN:5tt8uTqq_|>c[l3gN׮]Y[jСCMh?zhƌZB#\>bĈs/OJJرN6x`Ө947L<<<(*++suu ݻ7rRɽGfPWE<8eB!xtۀ.~is ?nm-j`>bAR1֓ w}b 7nٲ%6l\dɒ%K6lyfi^|E֯_Od/):9}Pbbbjj*kKi999l 0D"yw fg+++pe 0B4M/^Ν;UO ޳ M.<> {F?D4Q!:w?U(kDV/9.4ݢNNyx#E hGrpgg簰0s:u؜‚(bΞc 5lܸqzByyy͙3gǎ[n ڵ޽;< ,_b̙?%J;t`:4ooooo߸qСCk֬믛R p{yb3&}j+_"a׮V̼-'Д44}EGGG'ͥ@x"nG!f13B(33{22ۆYfL -ha9r̘1Æ 6lõZ{DDjٲeKEEżyBģh4˗/pႎ;Y@4yZh3;33(_To(e+I\jذwr<|0;(3v>ߪ8-""gFrʴpK%Kh4I&Ν;[XX޽ DV] ԩ.]׬Y3(Y[[{xxƲ>}ay&@| 777GЭ[ivtt & #y*&Td߾} ,08@?>4U*\~=##uT՗/_hitܺtVئR|||@@i7?i#hm[###Ea#5gnHVzjV3Pjy*f b+**Z̙3DfΜ~y4}___ֺ2y 6|~~~Fv&|'+VX`A6mʲu&MrʯS}s :Tk:4:TL~ 2&WV;c %>۴i3cƌ-[YUR=x@,73jժ[nGs玍ݻwB|^O.VbL$w AR+BG1y.OX^;@Q?mVyyyw޽;!));c|9___KtDGG;;;///ʵZ+WJJJx<^֭uW\!DvD5Y^tI&Ν;qFNN3$$8{Ա9s+ ,))iܿ?++kk^111:]&%&&7>hӧ-ܩS'TRRXUU%<==;wׯsMU:DVۢE={E$%%4sx#14tBO=`b:n/yqhRTD YZT;4YIDɂ0*Dӎib]F.Ӣ./[VpT B[1.++VTd4Y\*6o޼ksoJKarSgxRUՌ?s2BƅV =EQ4M+jLT,^i%~d~#RmSRRRUU`eej~$~!//j#,V+SM( :V4G!}54} ߟ”~z>oaaaÆYLׯ_o߾ 2cacPYYٗ_~)JuJxMD:z-'/|csUɮ$HSMOa͛7D܈rQեmڴi4h0ӧO }mɓ'#""BR8JRaVV9z{{cJ%8U~д:V i< ͬ+*"!CSVcB!ٴOB$q2###?fh!<նR>:L0ԝ{o{ˣTuu<;^E!*TCj%%%VE|>?pt0xo~JGa[ -0}H(YZiђen(96W"~r%]WsrrD" uh44MaKhvppٲ9׍HqVVD"ד깥( !UaN4ZkQ$ Dy4Z1Yg!_;> MrEƸ(PhggG|2@hնMSܼyȑ#VVV>|8{JR:tH h4_8pՋٳ +++lْ2sLvE _{ܹsJҾ} ;Fvvv&d2َ;]{ܸqܾbq=6lp};;>wuR]2220:t---߿2444,, dx,-ρV % ? IDAT{wwܾ.Vѫ,o*rIII111>|u岲r=M܈Mof[}}}vt2J"\vN$cٮٳgQ&ѣGu ~Po&.W\!$m۶%.|>X-cƌa= :8oM?}tnP;vcǎl__~0 Mӽzcoox xNQ{tw2 )Rrϐݺuֵ;ӏ \GB*)))--V*'?ħB8ydTTTBBBYYY/*NNNeddۘ1cݻU'N$.[f }l^ f͚x:::FDDhXNN9uwX믬~ 0'?Æ 3_x;}4ҡCiعsg˖-3ӧYom V^93g*3iuP0Mhbi(1cu3³kVGV*Jax<it޽ElѷoJo"%4ݾ{R"xqqq[oEΎ5l==66o<6cJ-?VK02!T*;0<+yDE-`h M-`XQM#LS ckK=q5NPQŭ#H]PyNQYn9駟tBϟ'w!m!C[n!=zTZZB,ZAL:1kZr%if˖- Ɠ!P:f\TTG}޽/f8h sgK9s&**̙3:9駟ۗΜ9effׯ]ƶE U-L$:t8޿3A݋9rdXXXhhСCY5EQNJJ'$$(Jnj5B?$?%EeggZ0|>?%%jّ֬#Gȩ:H4 7PT(6{h#ZJMӴVmkCX0(.:FP|Ox:S IUx>>%%%‹-yIСCsSN!]rssk֬28c)?~eYV (L!(R,%|0xկǥ7eoe=#'>+BP"jhɉ0BP{/駟g/_$#GÇ CvHg}]cl8T &}||Lo#6s9s mVWW0c=|ԩSqq1[A5>)E2/0XwM,TYf͛7~c=Ο?߷oߑ#G\<P9lذŋϝ;G~z Zl9uZ7LBXnww)S&&&G,O&.jeJv[L7+'sFǤxp;NqgR=,c9;'h  ??^a;wUC̙h!Cos5聝hp2|~~>kcgҤI -;5عsgttt41~Ag,onz#dQ^^NTj ?ڱcYYYUWWۺu#G`ٮc'D]pwi5a(#ɿ F4U(Sfk5*L1 { 6ÈWnnnU2*~E:/R=*/_~#XW_&-ւvlkb ˃ v 0Z`7Sis7n,X&̙3YۗYfΝ;ݻwJJJHHױcǎqqq3`f͚5c g@@@FF=kE\l3ggϞ=q,??ܐ?r)aĉ7oԉX޽>|♦ Ҵ<)h?w-h #bxJ7*\.ofua0!y J.f6^|н{|50V[QQQZZڱcGӛ?UrT*R$bѣGNNN:DF*3Y)((`MgX]DDΙ>}MByyydlp(bMPTTDh[aaV厭SQAH]xg#-Ei01(cOwj#8}Og ))F!00C!Lm6{y1d/>6wSӴZ1JQ***TԨY,&V'xGsmoo϶  w29(*Le҈BiBf0b0B[4'R5A* BB4EѶ‚[NFH`CTve2#JV1ƵE?ॊ\QG DkbLad e%TKD*F[(X~Dd Iq6qttU*R‚d>" >ҾL'=7A(La)Daba nxh[q  ׫T* PTd0BH b;;֭[ hڶmK21Q A1CH `l#&@-Q@TQ@T7kFVy<*CP0 #)Jwf3MJcNiK%'''777777///77̄<ӶNJoFJ_(a3)+++**2v틎V(=$''޽ŋv 0 $$ Rӫz.-sw [r%ْˠAnݺzjsc# L/}:CX/:܈6ѣGW\I6㚚?ӧO^t_6tД;IO8СCNyW# ,YңGjӦMEEE7n$. c=L:͛7!P(ϟѣG#Ғ8{*f Fg߸q!4}tRʙR$7f4555/.[nܹ>//נhP׮]۷o: ɓ'#~wR[[bYfq^^޲e~- BJ$A,fHqPPСCB˖-c?c''Cq}.YB*R5vXngpu˙3gk4rQQQXXEQ$d]vUmll źu%X,pikLPPT*e>x fNyy#((*$$$%%x``~AAA ވ6… B۶m3d\\BK.:ªHvv6{V&aaaڵ#"dZtWWW''"4i$K ּyX4:p)ttlwf]HIaccG}dYKKK\nE &d1H'Odr?ۛw7???PDDĸq{LYݻGcʔ)F%&& |7f,M[7*22~t钎'".]N}H Ƙ(|1_B caaa={D988Çܹ!4zhKh0+D%##! SԼysU=z v3O?!RN/>VVV::duD*;;u>>u GjDEw^օ4,<==M1Qa9Off&Bo߾g6YoǏGӹ4Znͺ|l ;vjr!4o<ߴ+W uQgAȈO9E֭[=?e˖DNnݺ=zL6k߽{7BhΜ9:=6PB| ݻ ɓwǎ#}7ӦMC !%2ayyy:֭'Np?~0i䰉i<@Ʈ^zɱϟׯ_mmm۶mfFc1rUUUׯ_JLL"V5fߧB(=t!tֱ}QQQk׮)%ϟ??uT>`Yu#""Hpii)ם(d]1'D"6sLp***먣7u]Obbb~>} 8… 0|FTF׮]ɬ?رcDQ1ZM.]f͚RtZ1#iӦXSSC\>|Dx: %UCP`b__穐2Tb^J:&C{OJJ q!v-N78Q?ur iii$7o4͎y< 3Lb_,]v;w.4uÆ " MDLݻ7/qqq:Q>?rJCBBXdd2aM[H?ѢBZ"o0 [?էNz1^j6ѣG/x"7!cnܪ IK L0Uܹss]]]a#>P4믿 WW׎;>HKK=z416oZ4~xn{ݻwܠvޝC5ƍ7vQ\\leeEEnݺ/u_VVvZGGG\}||rrr222 --->zߵkWQQP(|?3/"""t7w=z4wGn >V>Y Oz;JKKmll:vXߟŋ'$$XYYM>t_QNN֭[>cSyyy+VxT*߿|С;w|'P]]|f͚=|ƞ Mγʋ0XoVdjߌW؜UTT,Z(11#hѢaL 9 KϜ9M)dasңGm^ r/54ח6Z2 FV4-H$&0QT׵kWr\PP{dz[? "JG&KY7B0$#GƚrT*1vvv-Zx͓׿g-_3DjwsZ555'r=gԩS݉KNNNTTTAAX,9r{ǎjz„ bXlEEɓ'Ts4k֬cǎ `3dΝCMNNNII0`ŋD"ѯ*JMv9vDJ1f&ٳ1iDPi_2lѢE /--駟 \dɒΝ;ߺukǎ>d-NVzjPP%Ν;r477W.TP,]4;; C6W6[n:ld6mڔ:|p"/^\VVFRZVVO?̖۷oZJ$1M6gϞݳg9j333wڕҪU+kkk___T0AZmVV֦My/Y+VIVV?ս{x-sΞ=ԩӜ9sȞo%6>}lܸx.)){IMpp5k;F2dȐ!C ѣ*o!ujÇ z:u*٪UKds[fff~NNNRjcc ={vlljzϞ=O\>|tDLڶmkNP/2a„KD6/RRR^{,0bŊozΝǘgPRO71a߾})))ӦM`-]O &|U|>`C*!!AՆ.ݻw(*))5Ѕ4:1ljѢEzz91ѣEQ&w|! B 666//4Mw NwϞ=ܶmvڵoߞ> vk4Ri"XF5ze˖;wz+,,lժUVXSN]~[fT.cP.ED"FQMJۍ7̉ DƂrww/W#*[n{=T*-[-M:thϞ=]oI$ɓ' Iܞywi֬… ܹsڵǏM8-d;v옘xe&~:)ݺukHH~Ju`a777nM-fP 8;;{yymx-LTN:վ}{n˖@ TWW:44+VزeMD|>D] 7n۷/..O>䦡@t֭[6`⦴]v:JcTJupKrGG&Iyy|!<M֧RQQ!%QJRR?z;wYѣGLNhxڵS*ZMMÔ)Sҥ M\ mmm7mddIB0f r]G0Lmm-{,>|1?&EղeKBx5Ҿ}輼k׮-\:R֬Y[\\|7o׆Z[[oڴ)33255>>>y˹EU*իsss:t-c18p[.^X^^^RR{n1;ˬYmf0:)~E*>]\\tUYYYZZzرŋI@p͂Çg̘A@Gx<ɓ'/]TYYfbRVVɍ EQ$ 3 cbFP>h֭Ǐ،?>::䬓Ӵivܹ|ra:uԯ_/ƙ?w^j)+'L@d22OE. v׮]lFڵk6wƌ#N:ua.4i7) ycǎݾ} &oܔİ)h4 -Z?MYckkK"|>"ӂafo޻w/Ϸ1c91quuec٠̤G1 T*---Y[r\"PuѸs/j*Y+-,,?y'6>OJMP(x<7H$</66رck׮QE}ᇝ;wiZR䓠>.]hZZm~^5G(T(ϟGYZZD}@ h`T9`JM#HVVV$Ez2͏H$2P(@Qh4sSNiF&$$(dל&nzѢҦMŋ_x1++a;2j`LQA6md& 8Lp أQ@TQ@TD@TD@TDQDQDQ@TDQ@TDQ@TQ@TiAAq4޿?11(wOOnݺn޼9((k׮g%}||~NL]QQaaaѡC(TGa]\\ $J 3))IRL4::τBEEELLѣy<^EFqrr>~ܹlcb1{FixhԩS_|Ǝ?lٲeΜ9]veE4//oժUC7vÇ0>|811SNƒo>4r#Ͻ<))cǎ:xIs4Mt////..Feff޺ug -pBo'';w:7o޼:// AUWWs!]vXK .?~߾}i6ǎ{T*~Y_WqcccZM~VWWc|&0++ޞB0888##Vm1ΰf4Z͵u֍a\6i:I&Ih4}չ<''G?Z-t"kR1Addd~~oBBFٲe xѢE#G43~8pX6Z322jjj$ɬY<<<تիKJJE"ɓk2 !utqq)//'dzfҹ` ===,sB[nk߾oܸ矓FR``@LKP~~~#ܸHFug{DKK˼HBCC{ͽ\Tr/7jDXO2ϯW(}[e]&hٲ%QٰaCee%KHv͛7/]x^~=M˗/B.]*Har 4gиJLLLMM0aB4>>>''gɒ%hccON"r@)aI,smSDD4B(444--mţFС7I `&VVV \|(v􇱤'ɽ\0k$*ѣ9,,\Nj6c(trrr'O6ƌ|򴴴iӦG}4s+W 8&[/Ytoܸ]SSV'Nh aJuС#GtlvEDD4c;!H2urdMO*O4.66}{f=^`P($6S||JJ dz),,d233Bܡb"h˖-[Ϟ=kkk<ވpovҼ>E؈#BCCQX=zX`' uyoɹvZrrrRR̙3P(֭ :BXvNTTh06COr\,/[k7 Ī11,hB!X`i䖘 [rۿgJJ iGjBBN͝&UBppp\\Md~NNJRִe ooooogâ:~"*D4jDQc؍5j,5v}EXPQt,"}8|7ww/KWAٙ3gfƎyĉm۶XYP*7oן;w.]WWW5k@p M:"..eYgggH$j(*˹V%%%<5= M*Mx`Y622Ɔg0 ]tСCBѤI;ĈOE贁Oۻ͛d>޺uks֭H6 pwhƭZ OJJ"RS=z4555 @uCNR)7kZ"Y;v@p ^(f[eق\8w\sܹsٲeZR(111D2cƌ]vYYfÇ@Le˖77T26mb %;pplvԩS111&&&qqq:::ƍ#ǎ߮XuJ266h̘1µÛJ;mΜ9AAA۶mz왞^3"##MLLv9s4jH8k ;!KNKjpJqFFF\\\׮]~Qaa!wc3˲#:BBB|Ar\~ΝlHԼys޾;w1]t&PܫjƲ}Ν.]Ҕ;ŋUvvvDD/o2p@MUWqSRRryӦMwQdkkGiJ6k߾=Q:eggGGGI${{{///wؑ⑓:1R(={$dYCIѣjk_e   BPtQ(  BPBP(*T( BBBP(TP(  BPBP( * BBBP(TP( ,TVX1yd޵+?/_o۶mNLr#BCCڴiYXX"//oҤI-] ܸqoժU{ ^"~&o»^y=VS(..vqq0`;~O?uii)a5i҄PǨLeϟoȽOݻwǏs;u)(Od}\ǘ˗/+wYJs#G`?K:Sr l۶To\z5ŋwJ,*Je.\{g ëIKd,{رwYD/љ TjƮ]`ҥSYP/^DCWٳgS^^ףG~...kkkZ(Z^'dݻsNBB[Ξ=[RR2a„ҠDQFuڕĉRtСܕ+W4h`Ȑ!%%%ϟ9r9w:;;{{{'&&۷?իԩSR#֭ۯ>`nRSS|vƌjo&߻wͭ}n:uTeee˖-gϞͫM7nD'OM)YfފU=|z`K|>KàALLL 33pss:>E^^C8{U>~XUtRAVZO~~~pAe?SMsU/СL&YvjhK .2;!bD{cjjʍѣG9eYܹs0y|^pASi===}̙$ɓyӹ%ӪRݺucYLJo>qi8qw+>>aÆPnݪiLm vG+ 0ZZtiJJJVV֯*Hx}x6** ZnM\P֬YT{:88T`ذayyygϞEe˖jc ޾ꫬK.KOO3f ,\0--d,˲/^ƍRSSћ.<==ccc+**={2棏>"~PEiaaT*KKKL7oX-))IKKCǂr}"7_ƜZ?u}:::GINN1bH$M]^^BիWiiiHttt/^|b,ݻӧOa.lu6lHOO^__ӹɟ}>BSRϜ9~BBBcbbȤT-@Tlb 1rS9ֵp([8e}KϞ=z#o^^q1cY+T;(('T"##.pZ IDATX\?ݻwkZ'jS"^zS2y&>Ƣ@3رcy5Ųg͛7c\ۣLXp,2 PF ,gϞUy˖-U'ʿd]| q7oرCڿ5矵XR.((:>{,11#$Y;"QvR˗d,--Ǐ?/zaΝ_/^6T,˖Ύкuk)))>ӴiSKΝQ0p`Q*,],qWTU(M [YYk׎BxTu҅i&\S뿬իd;* $F~+9~%4?H^GoP*<|o߾]0ܹ%K=z͛7o*ܪ}\.~@VqD,D;i$q򐐐͛7ܹsGmQƯ} x.ƦjG`jjO $ Ӄsb*izzc|޽{eB"##uuu[n#}ebȑ#:c+bnnZfMƍ.]u֭[yʕ8(~ปgDt6b pB2H$"kM7USfQGqM.󰷷OKKiY-">m$G 427y"哐Э[7Q EBq<k'Td2m7o޼yΞ={3gu{L<sEڃ &Lp!ooRPQS}"TKkZI-|LKp6cyyy^7$U (Pٽ{7LqDWۀ4nXUU6یT#C) B BP?$a:u~K)wYݫ=v~o)r V)J] *T( Bk* BBBP(TP(  BPPP( * BBBP(TP( B BPPP( * BPBP(*T( B BPPP(  BPBP(*T( BBBP(o^=znooߥK ˲ ð,{nOOOoooPǎc?999m3'''$$M6$UUU]|ŋ,ZYY 0ظ8=zTUU6wHnnիW ׮]1bH7oLLLd411!%B4h)~MHH +))111ٳpkkxxx|||ii)V_޽b1<~8!!AS͚5رӧO޼y߼y=zhSײ49˂JP(;88 077 d2ٳgϬehhhcceee׮]322:uj= wﶳsww/**:rHllԩS7yzz2 {-]Rml^ >0ݻwx} b^LPDDDȑ#yׯ_w0:::""/bkϟ?233z\^UUoݺu)wwwggĭ[N:}jCV.cEo޼!!!7o\bqEEEQQ̴622Brǝ9sm۶uvv.,,>>k׮=rRssKTYYy̙nݺ5 |}}>ܶm[Α[;<.\ 9ruٳdɒΝ;w322nӢE Mի7n :o߾tGk׮rÆ ӧ|||Ο?00,P$|ʴ(u}}e CG[ B{~~~VV$''GEEx˗G,}uttf͚eaa→v:>>dp0-ʌ׋pԨ?60zH$g&Ϟmg0FyF5kfl{-_b Pj#T4>8fDRQQv}U ,[^^ )++Ӵ<<< koݺ0ATTTLLLuV4h[)--eYVb'Y%b Ð9]T*ׯ_q;uꔝ}ڵ)[nU(rKS"^z0u*{Z@,۰~7hZhڕP(iMޟ(7n١aH$JKKcT'''a^~͍ԩS(xjHNN>(77 b޼yϟdi?__!C 2dС2%ehڴ)ERRRiҤ琐ŋsӲ2a4_xNmTd͛7_zndd0 a5%((`ٲeMf u{|}-ro׌L%Ke~ܣCJRMވEF9~~i?,,PBظqL&6mxyy>|TR}Ǐ'1ܺu͛}h nܸAp˲h$߿OzCe߿okk+ޠ.]xqСBhҤIǎ~OEoo着7oʈVZݧ)˃Igϲ,_MHH;vSj*<<<))8J;wN5zѴjѣVk/e66.!!Ϝ& ÀH,8,Y95U:x@ TX%M(}* %%eݺu,rGG9sp7̛7oǎ˗/wwwW(111D5cƌ]vY9???))idԩS7o޼bŊ-[秤AiӾ+V3 3e>a\]]trԩLظqW>33ÇTTTԱcGaoOt.].OT(mڴ~999k֬yAEEE֭=ڄ e2ٚ5kI<<<ڼEUVV8pWQUBeڵ֭G77f͚YZZJ$җ/_>=uY5ח{%K)?<Ǐ///;;;vA8gOw|rGƗall'''t Njg~{{aU3ttt|>)(_Fw '$$$$$hy\rEI;===\>ydzRZlTohhÇs>>C9rxz?ŋB$-- ;_z336WWWChT=ÆB!|S-W,-gPJ$ڧO(I{q"Zd \/^۷o߷@a˖-C=z1%C''2tޭy֭wVu/̇r3쌙^ ]UU43J"y?O?W뭎CӫWm`4`Tڕ;fGg Ի7^qYKNN{LH_eDb??ˆBY/M.=z4""B&9;;O8/璝''',8f>wxǏufgg' pBW-AAA8t$Xt)^ۦM}rWTT>|ѣG2O?._\XX蘞~=aD"ѨQ ի%%%}Ǐ9s˗cǎ&L%+ʞ={Z[[?~͛ _~hq+p.O>=vXvva}||ȸwQ'fee:uJGGO@B<~ӯ^R#xhܸq~Ξ=yҥ)PY.(>};S9|y IDATy;/ӧѐ,`:ښ$xSrssz BnnnHHX,J&L[t[6p3IgXVVvYX0)Y潦|/g{{#6 {XW爎>uWO44%9ǀ>1@'F4Y$ʼj1%I駟T=sXfɒ%\?VR'|:88zEeׯ_O\I,Flnn. x]={>n̘1jc[|9q<}4: $##\0 {ii)'TTTtA5;[nw^ 7777*.p nO,v Js+9!P_~%~֭O/i;.[nU 8i$Fm{E2r5 ,,T9ۧVEĤX,ZP-,˲T6aAX,%$y.=%xI}㺺[ 02j`]qzz󌌶\׏20<sT'Bp3T`޽{c޽GN>^ WT\i~xLJCCC(T.\H/^,&?Y}6ybII $ѣG󄊡!N^~ݢE tڵ4hSj\@rb R $l{M9bHzW+*)kZm#-5 fffĉe_^DD˲-[2xBeٕ+W8)L)/8 /I3?`x0rn߮ [յkԶ3;ò,<{,zJ/^|ŋyO]Q>{7㏹8:::\aÆ9~8q$Ӧ3g,端B?;w nՔ-6m"W*;#j/]'PYYYHuq]X[fS7kL+,ޢExM'ODF˶mHgffGdddKB`Νj5öbp͙kn2 y%"Ă,6\ %KdA˖-/\kbBCC}}} ӿsmϴuРA矹&F7n4{n] ***sݹ˗,--q}VVT*%]9!DS2ۯ_<ɓ'D@:u [Wii)Q(9drT΃5L6VF?m۶I1We= w;v;[7n~:uy{pp65]/2,˂RJ(YP(\`XaY@C%X(G,Gs45 ??bo%$$DGG3 `KKoFu7V "y|||tښNƀ}ZM]Dڵχ"ر]ŋFԗHmsUc0N>7hݾ}j-^rī$I%Y6m@KKK'KCd!'oذ8rM|;_j^~]_IŲz1cv>}^^69M. ʇF` l$(# gOưw ]({ !EUŤ{*q+WWWpttDCx7wM6fxxxZʕ+\##zj_> Zj۶md<y:2iҤM6r+"`E6H̙3w/ puAAAn"aЮ];l[bE,д)pɛk׮ݾ};1>tz#*X`E>P9/n [ ff͚5۷o'$kk<؉Ϗ?`2|Ք٭_/433#R~bkʇnRdeQzI F2H`l c{']P8u!yWe"Td2W| H~b݄ovu*999ӧ7;m;teG6kע\P TT[ѣGAxRBcǎ}d7*O>zjR>dezM6O(\QC GNYUdZfccsȑjr2GjQ[F&kڨxbllLܢ&l޼ѣC.]͟?/]D*TmU !5R7oB]P(ڼהK^?Gi0H-73n&kc XVUI+YJYclĬJ%0J1E+jQ'#'<EEEEEE&&&TUβH$RsEEEvvW\UU쓺>2iӦ’[[[+^333B*kgM^|T*zJPKl+b"Gj뽎>Iryݯвi g111d*幹dddwy)P猅-87e~:TC @V\TXU"yiajE+ D*D ,nݹ@@LBbccрI&uT"$T9H9m?@)Iq E[v܉'M6q)k‚@̰0Ԩxffb*L(0yd}Ǟ}*bڋ~T0*Q('DaÆq6Q(LBP(zP( B BPPP( * BPBP(*T( B BPż>e2T*DyW// ===%%EWWM6i1ݦ%''{zz~(薕 YRRlT*$~G=iÛ7oҴ\ճgj|ӧOrvR;vB7TK[TmfΜ}Wf3fb븗;bmiyfjqY?}_~Y :l2ێ_SN>wO<ݻRM---577W(ܻ]]]7n⢥D˗/cbb&Trg̘ѦM^(Թ%xզu֭Z_~vzBW{BK.PO:::{vƍsssN>jp׭[nݺz/P^^^PP7$š(mO>ygҎa*攗6Wt9Veyyy%ר0uI'9hРzy?#޻w/77I&o{RGRGWUKzoו{٪ S{vrȚɣQj[^eej'C*}jˡڛ_J ୷VVV$xSU@Mz5 9Km&5U~M)R8UUUd槩}۰aì+V"Mw֢ȈС7|۷ofRmÐdjk­/PR.??yyy}%Ϛ8qR$6l Ľ YfNɤI4irqO>L=z͍;?߶m[+++\=266߿?CPPm /_5j6ӳA۷o755^yǎ\ѣGj/ni/\ 5 6233Co666 4>4**;Сý{x +++;v,chhb sqMMM55jsT*7n<\xǭnӦMͱX0™3g^zĉÃj~w^mڴ166.))Yx1Z cYٳggFFQYYY&k?C FQCɓн{wt99Y5ӇTy $Um˗oq1qAmjgΜ~PO ((H@l޼F{(GůW^d o1{lXr%q!ma"ӧOרu;=z:b׼ysgTw֍yB%..; QG&35m }5j pv"۵k&!s5`(to8Tݖ7w\BŋkWOcDoig}ZYYiccӶm[^@$vޭO6mo !+k׮ݲe o>_f2'N:6W^io%֬Y3gT,XX999\w]]]nJR˖-yQyڪes͛j2e XtMqcKk}i.]D5I&Qnݺ4a .\njMdk~5?nhhxAXܳgϵkצ4N:͟?SN'N##xTK֨ &;W\`>~񕕕>|806m~ 6zM6޽[.SPPPPhnnN}OjUajX/y &&&۷oYlٮ]qL (:XJJג y-YΞ= /ю"iZZv898oE Zm9VQ=Ǔϟ?|Ϯ\ڵkV|p֭u;|0..VXQVVVO={Ʋl-;wwwEeE j@K3MW M /_K/,;)O,YO>JMHp.'Z&X/{{{4ܲe }Ȅ$lДT©8Max03gҘ3gθq㲳QB\p m^jsxw?7쁨ijJvvv FSK> Dr1аȯ)斖慣GNþ}WWWBAL̵aǎ<7nܨKꫯ[E*ڇK^^?NQqwڳ ..cM:رc_x#G ^EEEh Šc)]|Yt~*Ν;mڴc!`RLTQZj㯩&=z-Z{n- F=ZVV2ov oo*hgM*++1*J~e7owʅeTxUZꫧsTTY|90j/k޼UZhs0a7qoԨQ@@ث z:t R2z֭[iӆ|ƍ۽{wbbT*;vl=stɐG̟?>--Px---m͚5]ڳgcǒ_I |T*3f / ,-5i䫯 z%JwYYYikk;}t\X\Çwqq\[q.\8sLaaaÆ Gw|MO! $t" "Ո"PDT@ł^ދ PP#*@ !tR6q^3wvw %3gg;s955:>dȐ~8;;G3:޳gϭ[zxxȆI1t%K޽ٖ:]'LЯ_?^xA={|999 SOh-Z;wYm{˯_.))QvQh,0ʞgϞr{Yx 8q<==?޽{xB|J_㧞z*%%G>G]+ƍ׭[7ϽuQRcɓ'۵kcƥH|򙕸ps#G,_|ʕ]tQpD|Dz|E ԩS;v8~xBp@RFm0@O2l瞻u?Fݾ}{LLLnz\Zjڴiy{.66֕17_`ʔ)cƌ믿F4]Ξ=ۮ];3Eqqq.ajjjx{{O47.Z;x{LLO?keee683ψЪ:z(]<뒲qF\aeJuuҥKm6[C,\:tĉ'Nj0III^oW^)..ԩ]|WFFhuYvm5h_.k;wӉ'~l7|VF} Q\\, uÇovhrqY!q}Uf6$T6l'~=iii;wk{m۶իWWVVFEEM>]l9[TTTϞ=lSN 555!!AVkݺu7|s-x?tЊ+Μ93|pͨov˖-F{r!ٶmM3f _Ԛ5k6l`8a׏ǍFc^bcc5CӯY{/ve0F)Gjժm۶UUUmvҤI?P]]-JJJZbEӦMkO1btoLz݁ζ?>p yĉsΝEr?oV;~sFyzOvͶ{nZ^{ ֞e(;P<6m2HZ``zTٳg6,LUUUfx`g퇏ussSNZ%TtFvvSo{CEɓB'%%oͱRI#%\5ɒ߷w^gkMYIh"ML0A=ŋ7|2otel2͛gߤO)3gݕs9ҍ5aESǎ5[T*lL_~׶PVc6=6`Je(qњ4PRRe}?^~ t-l޼YLyrg[:i$ ( zvmVE :Km?P?SCy~Qyה^yMr@_GMDٓ+f逸}JJzDuM,הC=,T?YeffojrфSNUUU9kaF;vo &Bⶏ7n 5kȑ#;vXvehZ{nyEe=ܳlٲ={XԹ@gn&SNɺoyP"o Ȋk&555))K׭[3lذzϲa1eʔ?+"w &Tnݺ2꣢~wS PoI61dkU~7o>p|Hkjjt~;{w=誫hSq1cƤ5-.?u8ۅʶ{zzfgg?~duSN;w~_n (*ì,%y!T )S,^O>Y`AbbbEEō7ިOgZnz̙X.wwիWk}˕2dr|lƼy󂂂fϞG|5z^xar9rd 4g++ ![cx"5k֬w}W9FtvxyFjjjա lٛtѢE'NTvzWvuGsT͛7ߴiSqqի7mڴjժ_~W_=v5\S'M[Ͻm{P~nuuKS͜9s˖-[`_|!oݤSTTp)a}O2k׮3f̐;f3f(//w[qbOHHXf֭[Mdw}Kra^y,O5'.bQ`>)ѹBdggK4o㏅uWϲNݔO5k肃[t*Xپ^Ptv2&&g}Sݼ~SϦNh ٤f.uܷoNbG>\*٫944G}%ZVM,ChZ[l6-003gr9tPpoa޽N(C><&&&F3M;W ַC 6VbWJmWgΜ9n8 }(RNhbbb̙3k,y]sH*>}ܹscիb5)=c.?'YՇ~Xoҥ"88Xj9rD^Yжm6M6pssU.)J=#sUϔ_?kV aÆUTT˗t~U4eرcgS:+&={pޡ]{&(_/[Lݩ^Bwu,T,Cg(gdmܹgC ?0-|'B/))_~ʊɺrM?Ѯ(ot͙3G|7SO}{*g⶯[N}hԨQ(n+VT!:.BQv˯󣿿λLAAAAAAu.Yfs6-y,ko'6n6b:,yְ[XxСC뵶&I;m۞(WZE, mW8| +'C/88ؕÕuD:: PO>΢_cb;wn^^ ( r ]"""rrrjjj|}}/bҬY܈n/qL0##oNKK;OF4`O\fW*BBpɠץVvs@Ô !嶰|oeҨ(u'gpr|WƈiBt??͛h׮ߑ#Gei҆ j~h0`aÞy:J>|{n˝\r.%++kԨQ;tW_iݻl<7M6,YgyU4iҤ'xByb; ǎs۲p櫳P⹹w}>`ǎf̌z};J[ ./j@ut]w}ݞrK6jw}6ꦛn;|sL8q2^\A~[oUl ۷榄GM4)66V~=Jׯ_?vvm#׎">~2H6U o`0*G!)r0 Ԩ*ptoҭ[7~'OV#8>O_{5!DϞ=)E5++Ka4}Ȼrh ul)rI(R^^.s/.9RCgϞBՆrkeʕ+啮fcQk֬!o3fP9~XXX\#h`ȣ۠A4T=^ǫg4\Yp lBo !͛Jhݸqˋ{W}޵ks=j*}ZO^RvAB>99M6r @3ԩf6y:wuzyW{G92ED=c W/))bC<5u v;uꔛ{}}!9o֬1vy4" 9BG9ܣ4;{࿳gr8hR,o:}ݻɓ6GGwAAu])a;'Yfɒ% ʑ`֮]cXvnѣB޽{ۿ4x`!ɓ'vgͷ"x\4yyO>s=~!DFF{q1pCE5 >>>y#cVk)++o|q1">>> `ܸqA^=C ~iLL4i(s9DͷXTTԷotՐ/7 lk64p5țFb@٣JJJ4/G9lD+TBCC4/z!Y"nX~v R?<>>wSO)SZ+V}2Bٿ$<88aN^㏮]>|866/Y WެYm۶i*E/EV^qOE~OEֽ.޽%\d:WCXnCCCoe7oIR%%+4UTT8v[͖`2UV鬆pZ~\=8oț?5ӟy!E[oy>Y~^}J;T١Pv~'OG,uT,^X![ !fΜ)x]v  soPpp%K2flp`tټt GǗ]1.z=z<%+**~~ѪlAԶm[eRwSWϗ[GgGO}]WnW'%bC)))oej̘1qqqj Kz1%%eҤIuۗD@\L&LBq){w@R ַ/}3Y TP/.**;cy@݌P*BB@4-rIquuuMMW.7o޼s9s渻_ߙlc էmܸQ$n0L&SMM $6x_"\^Ycǎ]y睗U##'SC߿;33sٲeǏW(ϟ~᯿lrhKDM41 !z#d|Ÿmڴ>}rcݺu.// 4hP^}mڴiƌZRRrJeg񩩩ׯjҤIϞ=oMpO?tVZ(_>//oذa+V>]G0ܸqSM&%55_~ԬٳgQF411Ѿgddxyym;PRV\Wnn >f̘7x#??_ZQQk:uj}?+9?Ν;s|۶m/奥fX,zʻ?;u~˗;uB,X !!!::z%%%o2cNNαc.\/ڼyz6mSZԜ8qbҥرru0x{{(;;srr`B $''GGG=l6ʫ6mnnݺ󎺠v% T]P))) .l111IIIwep]/O?gϞO?֭[n!_]]/ʫoW5iiimӧO~{͚5Lȑ#GtW;wzǏVUU-_|?UV9~\uϟ/!::'xB8::ٲ0--|РA`~9sӧǏ?`-ҷf/zyy !ロ={vEEźun !ڶmhѢG^{e˖&ML>]C;_PQW!L&ryqС.]ڵke Xzz`֬YT$&&j,v޽555GV^8pի80dȐYbBBBa׮]=zP.5zJHHPSEѹsg//ݻw;V{MnZgRh RUU۩SCiWMo4tbXt ,611b{i4.J:uO-aW:|r@Y-[V[ԭ[7e5y..]߿_W_}O*w^%˖ZQQQ:5mڴZy_~555͛7)..޵kW>}BBBYYYIIInnnK,l͚5] Zju䰰xy[oussعsѣG7on0N8߲eKYeo߾K#""B.e˖ݻl߾h4mذ>ݻ}uh۶mVZSN}GǎׯEEEC,3$$䧟~*++>>22R=_zݻksh(%%_~Qj8p //Eyyy|ӧ=<9tfkҤ7nxȑ#K.-..Z={lѢ͛e'IK.MKKg{0al?ŽK{ѣG.]ZTT${.]tѢEJʟy˖-6e˖&Lt]: ]|c ۠Aƍ'_ZdIJJ[oe7|۾7o,*,,ksM2a06mڴ#FJs ߢ^zM8Qumڴ`0 2,99YҖ/_n0dbʕ;v=z4iR믏;fL&k׮ݺu|(CHHȝwyu׹RPaZ-3tfhn_Ml6 }g3TTTF7W4סb4` qtlٲ|m) |qjpdp4rMTQQa!C~kf3L ;7vحnnnxs}Ce:EsSFQg>>>6KA[iii?SRRҵ^[[[o>|<-]Ӈ]pFK<{-[222VkVF!Oxx P*BB@ T P*BB@ T P**B@ T T P**B@@ T T PP*B@@ T( T P*BB@ T P**B@ T T P**B@@ T T PP*B@@ T PP*B@@ T PP*BB@ T P*BB@ T P**B@ T T P**B@@ T T P**B@@ T T PP*B@@ T PP*BB@ T P*BB@ T P**B@ T P**B@ T T P**B@@ T T PP*B@@ T PP*BB@ T P*BB@ T P*BB@ T P**B@ T T P**B@@ T T PP*B@@ T( T P*BB@ T P**B@ T T P**B@@ T T PP*B@@ T PP*B@@ T PP*BB@ T P*BB@ T P**B@ T T P**B@@ T T P**B@@ T T PP*B@@ T PP*BB@ T P*BB@ T P**B@ T P**B@ T T P**B@@ T T PP*B@@ T PP*BB@ T P*BB@ T P*BB@ T P**B@ T9r3IDAT T P**B@@ T T PP*B@@ T( T P*BB@ T P**B@ T T P**B@@ T T gˣ*R4 P**B@ T T P**B@"BFCfYVJJ$|&%Tpzŕ7o.:Ϟ=[QQQSS#0L>>>M4 ׈qRXXU[[A\G䥡l CeeeFFFyyRުU+yr#T+P((--5-[HgŠFcii)ehk0VkFFFQQrD.q?PCaII___yxx[S%%%:Qӕ8Z!!!aaaT\V oooף[Wn@X,2Qd6i$<<ݝ.B*TUU?\?{\y;$}J퓫ɒj[Z+YbhDHffɓ'n@W777ϼ4o!Ʋ+''Q pUg.SWUUfyҤIPf5mڴk׮J$%%`+N!8$o=EF/(oooe믿n+ Tp5@)yN]RRS>!??DQ[[+R ݽ}mڴqssU[[{ɔ*CBbB4JgPP,F1;;[>SEZ;w SѣD&ŗ9WUUYf>tRPP 5nX***Fc~~~qqqHHl%RWSS#˫UVts=Z3[lYr ]3g4`<x*V@mڴv]]]!~gϞt&JG-JKKeG3[23YYYOs-'*vQh2"##fsFFFeeR[J///bk4 ^^^͚5=)=}%%%fY816mJ4\TT$Ǩ7L۷)I֕D%N\ԋC4ahӓ_W]v(d0)rav`D\ P*BB@ T P*BB@JٮRIENDB`ntfy-2.11.0/docs/static/img/android-screenshot-icon.png000066400000000000000000000675151462047176100230230ustar00rootroot00000000000000PNG  IHDR5JbKGD pHYs  tIME #dBiTXtCommentCreated with GIMPd.e IDATxyŽ>/0,þHDQǸ՘3&S1>z%^k`p\p0z?OA/^gtW|8r F Ph !ѠZ:B-)HH+uOs@:zDֈ"&lپm;66W3%w]*t;Jiߍ:F Ц-ڨtҼlڴWj@hB%iojUp^j+@ ͘kYFcD(S Rhe~*PZH)҉ ZFiù"%!_ظ Rf|J"gJ4}V)!>|nRY+D4yIҦBH@ nS¾P -R%;" FN[`֩ )b > 4J9躮m攙٦95Z!pqB^Ї!C SABa>Op86@JR ]i_kC&braV VB3n$$IZZ=|J +lPhAܰ6H#'tn"ۡ̔RkMy5Ñ $cV(Cj+6nZd5io7B!4r%]#2mֳ:6B8`"C 3qys3kmb!kw{h_[<<3B8W:G&p]M(Y8NJH x&5ܨE\4wHDn-B{Lȅ^3'EwjpELSHm;p#AL@i3(Cq@'|Wkj @J:aLĀĢ 2X, FWR1p%h%L5?zgpR E pLC LZ#" sf8R |r"ur4~FJD"Q@E#iI6)3NAؼRd'tM)",HǍ8G&(T:))c.XsZFlE(Mؘ+"3RCnFBW`6JdTb;xgQF!YtD ؂ sF i /顼$ Qt4Yi?kX]ѪA࣑H08F9p~h*Nq+LR!%N4R @ R~#K`H֩H>j-< D)҉6d+yh:WhmFBxja0F R-/.C\JNw"1 Xj3JH!8n8OL=?RD4Rkn(l jio^-`tJBZ6ZC  &IʂNXBkN65JCLsi^KXቸΙvvdILGH1N]V`RDmإ֑"X =!q 'h*OrT`M!PGB5l)JZDNyx.VDh7Z:8k<@'4(?5%NI$E! \*p)oRw*6b+'oDNȨ!񡂙؄66fUh"1(bZRpBXSF:F 1)_q%6jx -,H)DFAeL^A@Fx_B F  }|$2Rt`)E/TZE2#"/|}?H `\52()4BW2 !]x6Dq<&aS.Ҁ$@1L]!Dphw5t'9ZK\ x s6CE+HM2@` T8ۼ(?)1D2^j'_!:B+]5>^ԗ)c@y^0fX47 nGb*e`,$_qjDHKDՑRhY\n)Q@|Z_KV@%ѳI:-Zզ͢/TBEVl ӼN-PD$UB_Rm\ZK |BČ:M[0~EDqhq@M(I t Mq#Qnj,xP#"KUJ]k. )@kܖE;`J#6WJiʵH FS(}iJEGJ `ƕ.qtxDXAHWqI# M5b֕$ч<)kƫqCFD#]<8~jik)e%ё1_kX"R,". [fbы[Aƻ0Aw Y;^HB ED %P6.U'wJz/B$Mxq5T?h<)5J-1b2-S6E{gdj_(:(4W2inXKPX@:ݸ ,h)E{&IG~49]6oΉdf7EGFvBX( *e 阹\ Ś>2iUڄ"SJ 䨈B')!pk;nyjF1xB1t@qRL%yTÿPQ~T@2M ,5%A74$t*~[{xL0 |?P41 Ѯ(tEbII:"OkCmRa—֬U$Tc=kbߎƪH9TFq~1a~$bqc2#Qa((܇NɊKEq%\f KzQtL}/HP4 Ddx:0,txr(2Hc$Z\ +y*PrbXDsi6cpGeN(6;M-Lvoa)P444PWWG}m-uuuxXB'"E* -aŌSqt2;|2r(ҕRFߠ!?@8XXXXXXCٸq#+/eXGl߾۷ԄpC **;nѦcgM..”CȢ{=#ѓأq{QΟ?:8uB"a9 \x­+!XYS궮Xҝ< SLt)I2s7`;Cou][`yx7ٲy8(q\)ca %܅a'__ (ڷr`4)+Ϲ3/eE] YXXXAEIIgN=nڹ;GFA\Ъ)NgZKA`w4ut8r4.GO"ee>*_vuΆ/Kߌ4p Fî];ٴiLӶ}޿/Íib{V &O=㧔g ,/Ԋ/5cag^ͦCM(.1cL!T-;wmap/6{'L>ta%_K:C|oC yyɶmظi= ʩ+lզ6;LL]tzI-,,,,,vʿO5z SQB:J$=VS)( S%Tpryt֓zd{ _|ӽGSup7f )|SNtQ8Yt,GOn{kOc1Sstc@؎|S.48GʣW?~.>~8ŁgΠO&q!8 i 8npoӀʦ| _%i7n[Rҹ9[ ÏH'N)ҍ'~Za1cѥsDQcءi0Ü<}haaaaaqaĈFǶƏW*<9krr;p9 C"+;;𦋴sݰ] ΣK HVfZiy.ε JȢ{OszEFF&Z J1t)ʯ8µ=gaaaaaq!<\)PiZ*Ak%u0uR3\Bp86gH)Og~Jl8d >Zkܐ֠̕Ai, U*O= P{JfK~a}~p!h{W^믿'̠A쌲80Fqnոm"B  766d?Br8?U#k4"Z55̚gpzMM ֭cԨQQ}Jn6*++9H&vNYXXXX|mB8/(.vRGJ)ZaKk֬'hnj@rXf r /bYh>(G3S!15h(|ݻYj444Я_?ә@UU;vgϞ_9Q/LyfPJpB2330aYYYFi ­O>]+VI>|~[o'|);vGodԨQe$ ^~e&N8{+0n8z3<W\!Cx饗Xr%?OH---=|Mmm-O=6lj֯_OYYW]u;wFy)..qq9:,K4iMMM̞=7rRXXիy9,[XXXf\%Q21BξҊLN9y:|֯_رc8a4 b]v1|.b9\}< :3fP\\|OII Zk9s8p 7nd|' 2xwׯEEE{|woAyG٣aرs='p]w1}tNJUU/99Sq]2wRy1i$o;î]X|9'NdҥTUUEV)e*M ,~L๥ysdYl QZӿ;8?~<6m"LҧOz2tB׮]۷/2d:ẁ6l ,`ɒ%2arss{GQUUg(7n<}ePQQ9s<1h ЫW/{9 9ꨣ7o6lvݻ7z+pе6EeHGu. i&䓼n1PXX; ''Iy2g}?gvG0n86mYd EEE 0 3zh?|JKKָ.y+V`G$ ʲe;v,;wdͬ_#F0e6mDee%۶mcРAqvuXXXXfPJ|L =n`s0ϥfۻ̟ƍi(--%##AEE---Q_kMN~iR(++#;;e˖1p@9ә:u*Q2ݗmk?~[nӇ^zݻw3~xw… yΦvUXXXX<_{x7vSǧѵiTϞKСCӲܟ6lđX76+$=!C4hf͢K.{챸ogCI&%/dŌ5 ˙;w.gĉddd/Gmu+$Atr?0TZǔcP^^yH dUQ#5zĞ񝓓^d2nK\ǎ˖-[ۿWV^֯_C1b~)PPP@=X`ۮ Î5^R$.w!LřJvu:{~ICTǙ\}o3cƌ38;o5d];2deee q%A^)y(#kj|ߧx o%Hd #GJqaaTr܁KVWSO?KUUUwK_)'_'szBxo 𵗃YZЀεh-SIqiu-=C>={2trrrZ.hZBhuL>&o,Y뮻zDat#wZ 7L ?S5ѣFJe w|tݒ_k$)9T\` )ճz-SvdAAcǎ3k5JԵR_}pܪ MkrFZH:8’ŗu9U=$tijk W⟃H M"'Yv?! 7* t`kW IDATRIqiД-,,,,,I ]T/ -J\Xd}6 :ʅ)Ih9$YXXXXXX|jNX *[s“J5ZJRDxZVQ2Ǒ %-AWK&+1D >g[XXXXXX|hSZU_^+rAƻL]%@[TPB6xյ_+Pjw_0mZXXXXX.48c qЅdaaaaaqC _) ؓ y,Tp05QBjYBnaaaaaaqB !D#mC?e򰧓 9-,,,,,pIs$h%BqFRW-"&Ө2  QTFvc@;ʝ7@g0@X8%Dp(wM;ii/$2 #-PdBy{!ծ"ti o4t#-{N27F0~ZD[,PItc%$$XH-25LՈXyHtugB*GTP*u!6$I222;%Iָ{Hx y}|LT@iDԣv t7t«4yOnn.YYY_^~e^~e&O̅^HVV#++1c3}?KVVa/lҥK4iMjhhkff&D"g^N~5kpm]we`455q7_ΐ!Ct8<)kBmفr;ڈۆH6a_aϘ?>\s RJ>Ǝnܹg?N;+[[la޼yt5֭c̙h)**ڧ{p ^Ȋԩ#G?&L8 7o_ΕW^yPi&J}]Φ_~s9~t72o< yZ'~GqU,^jd8 &)x]!J7M~U ]G60yn*^TU#Q#\u`/u͍B|'׿oO/o&$H8Zkv)BFFyyy|uΦS\\L2dڵ{N8l]'|2J):ꨃL)%YYY0zhTVVrJnF,YsJJJ"@Y{8&Nl7-t@4$A7q5~ɸfpVꦘ˹<պu/~Ν;9s&?]@mm-J)(..8FkMBDZߎ:r*غu+PZZ6{Gii)_=>={6:ujyA)EFFid2IaaaZS]]ACC `O~~~B,N:E3<3<3rc+BJGA}}=8G.$>w例LJJJ6tiq\tEL>=|p <|fڴiΟw囹 !;///[ZZڵks]:unyGUU8Caa!ɚ|ߏ:EdffRPP` \ߩHY`fd$ϣv.i܄CK[B?Oꫯnw+V0w\͛G2O>zL<۷K/;ٴiS3kjj馛H&{8ömя~Dii){/999_ZijjJs^ciByʕ̙3>2d3f`Qڵkyijjk׮x≜x ?裬X'1""￟*.b[o믿ɓI&4551vXٳYt)DN8|;y֬Y|駜viL>nv6mo .$//N:O?=RP/̖-[֭^x!sΥ;#m:"ƍYp!˗/gڴiηV}̙ڵkqCrg2~xl£>y\p 6,/?͛曣{+x7y穨gϞ̘1SF{n|M|MvAnn.&MOO>ѽ6oܹsywo#NUU< ,`ڴiq* f.ؗ̚kdzSDh*PkuZ4 I֑ F'ҩ$3]ץ#,si'4߶+pEEK\uU,\B***Ȃ ͛7ٳgeDjn6w/7ߌ~ӟqFzISSwuv۶msnv(**?OyO׿5 >ܒ7Êtï|⇪ !:"o$h5#EO{9sPSSe]Fn]{wrJ.?1k,nVx'裏3geeez̚5{={L< B"WAq=puѥK/lwss3k֬aݺu\E?jf̘F>s.bz)?Zx /^̛o'C={nV;8/^)fѷu]$g֬Y\{ :W_}qE}xӹsg^y啈lU"`ҤI <|ߧ%K]xghjj/駟s%33sݻwcz->3\׍;rϛ7)Sp뭷sf{99cZtRXp!~Fꫯ'K/x ]:?<L2stRq>N>d~aqN;ؽ{wRO?ѣ#m_'J'-FEd.)&{61僓Ճ~h[^9ƍYf 㐝{ӬZ~m+"4ig}6ƑGɚ5kX~=^x!s ]ta̘1|g_؇RJ&LO^͛7s=۷S__ϩ_8믓֭[ZӳgOǖ-[XlyyyuV}]ΑGI^mul_Zk)Gaŋ6m{($RRRO~ƍihh +++Rp_u^~eJKKk-,'6O]rlMSom LQ@WWY#8Dɾlha ]r?Ĝ&j mz[#O|]]ÇgԩkdĈz{oݺ5ړީSDS[[֭[#B]&+H7HkMqq1]veʕرݻ_"oNSS~f!---lڴ6mɓSO=r ƑGԩSǺ$Қ#8"~xސH$9!'766ү_gk"Wؖj֬Y%>N2rf̘n\e|GInٲ%{1x`ƍSO=ŦMf֭L2g(;;"OE`۶m׏&x -[ͭUVz$8~EGAmm-gfΝL6#GZ"JnjDjFStpC2(46{ikBDпČ ~$7 mUx)J) 9㷿-eee 0`-ҎH@;2PJwN=TZZZȠ vvmG駟fҥ׳yf.}E8رne˖qg0~xR̞=+V|~QGŢEx'lcae,dDͣjQ}V  B7B0S.4&PȄ@l%mԦ!w-&S}ߧ{0sL-Z_W~r]wEq]*++#K'Lb ޽{dj#kʴWígD#Fo|ロqƑMn;̙3ѣG}l26oĉ9`vmLU222ظqcڶ/"믪Zk:uDnn.k׮M.޽;HлwozO)uo;vOB 999\xᅌ='x2oY.a]UJL +U*P~4KPvD%ƙ\tKB |!tjֿBr`$*> Cכs_;r}d4ɐd+ׯO>diӨwhyyٳ'wd;"OhnnBBonng/>OM=sLz'|o@AA't555u]TTTsNyy,XkG}5]taذacΝq^{(Sk/7L&?~<,]^z(q_/9S`}H&pl_u,X@"'RTT?e/Z_Ws=ig pGs1 6cEdaq8qlhUϊ*^DpoKIN0kMM:޾}w 4)**3`\qR]]MEEd085nݺE9 aIp}?ps%GUU۷o'LFY^x!K,_g۶mi&֯_u]GII gExׯ\s~9k\cޜTqe5ngrkV.O#!Qtȿc`FV -N _Qn 'rցӠ5֬\[pPio =eZdo(С5Ā4iRZ첲2R8G &ХKnJkk+\qQ =lذHp'3m43f hپ};SNX`ذap &s555̠A8qbZXWXXH)-- &ЫW/***s9RRR)((`ǎ޽R.>ozAhii.]pEѷo_u1CNu]&O̠A"򭩩K.{챑L&bȐ!L:qعs'EEEL4y;wdȐ!uQQF5jF";;R^^Nss3ٓK.7xd2ɿwɎ;8۽iĿ\Ms@Z{{I:=ŲV &Lkj?C;94¦":0y̾:'hm߭H$,{ iб7|OpHY/cꫯrדqe}3g7x#---̘1ɓ'A8DGJH? 8 !c);"_9)?ڬZTK~t.{짖DGCKfqzU4o IDAT*WJ83f /fݺu1j(zW!C8>|8ӦM۫maaD@zߖfuMp݄X ==Sh@轤J\h|hpRN!{V ڕۓCpAf/qԩSN[VTPv8zhFaأH-,F]nj=S)3a\)}+}J)"nn*EV׼ 2%ap׀m7C5?QZkn03$Nڳ5 "`T RG1tCſ D5GƾT:ၪ-@0K׎JL>[Dy}9vӯ0S{P ^RF pV(GVhGoaaaaaq5~7ݜ$zw݇/v^Kr\ ە,v0Fъdq V:e4ˆP5ByE@EJHJ8{XuȝS/$Kr|glӟDyXX9T W$t:B8Ə|RеҠ v^YXXXX|M6x4<~JǃD'9taXCjI}nh;5v'`ت:ꯉ*78q+^h;R9}naaaaq(X2g76pק;-@{( druc2* )K}OqBE9eYUG.qL8+\lf75 CZzZJe 2ǔbkGwfl5M'`aǭ 3J : H658h.TDAL(W$9 sFRTV*$[!:4n7*Й;w!y!8C=}'x2eʔ^uk֭OϞ=ڣfǎRHEEEEE}vZZZ(--W=`ΝxGNN{a۷o"׽PRYYINNN5Zkjjj^R{qFɡNk]vfaare{K+/I'}(ܤ!C{8hϧ+~ͨD"8L聾q s\\gg|'U(QVUW\kSxUPy$B@QMlQ::Q5&zhBc1Qo;ZM b+jh|PT@(, *8g5{dB>`:gc~s~ss QPaLɽ =^|Er̖ZkN7x#qm3Č3>uB\3{ٳC8+V??O<7|7pFqЇ|Xd -ZV M4 {.ƌy~ .6l;<R1֯_7|/".2;6˖-C=\.o~s455=Fǘ6mot; lΝXv-^{5ܹÙaN`i\!-23W6 e{#0_V*B([R?++%0 }eT`1HA¬ID!orF.r9(sa˖-; 2q#ϣ9.0cѢEk3m6<1b#A+Vʕ+o} PWWݻwf p-`ƌ5k***uV,^+Ww܁C|rx8cq9`~soFCC/z)شi6oތ /[{_矏:(2΃#8q]waҥ81flڴ {/_RJ(c^5ki& >\rId'l Mc9CZiEB9U 5ߝ03{ON㪆AU"X&9t%^gpd158gD5}ç[&@U CDt{` {n^W\c=[P(_y,^_|1L_s=wc9J)Apcʕx 𨗄-X^;ڑtw# S_;2?n`v]H m7vWbeb@*QyKK`4RP@ AQ"\XgjX,P(@kݻw5_x1}YgqOy͛#`r4i̙Mu8q"؈.˖-qZ ?clܸ'pϭ?chjjy睇Z,[ ?<>lgq~匛k.L0!C0c \z>Gֆuaɞsظqzj_1`aɒ%{=Xd_}W3Oμ>g̟?/ϧ_wu3f ***pM7aݺudpDDr@Axhcڸײ~Qk#BCk"TKʼ8|\-n}#UEy °<[k}{%5b@$$ k298ĖEQg}6l#h"\sy\hii̙3ގ~[l5\cNЀ?8:vX˾/jKK F_[t)VZYfW۷,Yya8q"6oތo}.}Ő!C0p@<381mڴﯼJ"P(#CP]]j4557n\*͏YX'R,(A=bXpDo’nǼUZPPOŤ>LZZ3h/B6VQ5pD_ %6A2͝PZ!Bksښ D &7ơ =c\~4i`+tR\r%hkkyf׿q~6m<=m4?`ܷ33l^į| #pJ'ʸefV 7?_VuAQbƠԓ7)ɋPЍ`&AJ)L:ӧO/uV9?䓸 p{3g/^UVa=3faŊ>|8y9#GDyy9? G1tL .Bgg}>~@}}=.,Y$t5kxO#qeaȐ!'H{owuu#:uԿ3?*>FEju NBK? GBfH*)bm[ucd? ڧ~F!$85dH8btfF>}|y oߎm۶ᩧ† vvvbڵ5j:::z\=qDTUUse0k,oܸqx饗pgcݺu6lX9=VZ ̌(//t;v@[[MpG;#'|<^}U~݊ F/jjjpWc^Zui`@{ӱڋcU .}RQ^O?iG`\Y2@:,؂c9#>'*h[ߊ,]υBRJ 6 FDCD;v,LkahllĻヒ[bJL>wV^VO;;;! SNŔ)Sy4QVUU #G '3<^z)NW( ݮFEX\G}4:^';|4& ƿs豆=W.?(`̣4ֈe[c𥭘#0y3W`q(ǥij6G3R`C)#axZUU}?۷oΝ;*tI`f̙330`  Ǐ?{<сG}(¶m+jӧV\Eu[lUUU5j6l؀Vuaڵ;vFDܾuшj|Itvvz) @(}_7;xt(ܜ(.ӈEv^l.J2vDٯ1'ۀլTcNE RLz|=\qQUU?8{|CCN_~'xrJe`wy{!Ĝ9sֆ|:nV??яގ'4hPguytMXf :, 86m}݇;v`ܹ9sqǕW^;voGyymKDO>kf:c?&L'S;@E9s&qwcٟo1v<=얯ҝ@dH}~ w%|>MY^ +;!Y[s=Jbѿ.駟)%n6uY "ꫯ9眳{B?SN9[T~="ə$5#(> ߮4?iC+ 0fוjQ'q2lwiSy$H0 +GD .A qqÔ:Â28f[%B qert*ЗlN(˫=8mpNѽwQA :F$l)JD`pXpu@0k~s'bM8u S1"ei244kH0,LD­a܅C㈼Mg4Ԣ61: ߜP#sKx!@%35HFXV`Aap@@@@aXG׎; (8NimtCv3YE((d@\Mq]!A `Z- /|5cO4n j !(_-aϞ.4m; /gjy{k74Ǧ]Ji#t6Uز605dw"`vlxsuhC;]ⴶ;3"S^ tֆ 8zjt 3V0Zf4kXa_ U'^yelݲ=drgf Ԗ&ܰpִլJc ͎qZk0^!FwaWqÚЊ@z*y tvuټ9̙Jl ;NUoZXhЀV _CXzH!,[lJݜ` 4^yi{zar輪B+MdĆf4T RHlonw7KGֽw|$jDsؙ)k W_-~!oǟ`Ͷ(ȱ#b{"`[뱳u;>ZZZp7=\.< Kn8c5mɔ& Dk^GS6?U}1j?>4ەĐ d||Jdlz,zÖ-[p weysIm7#;V ~GeM(ϚkV`Eo7^Q#A#@$zOsz rxYJe8}~ṁ =x(@5^ye\sxFEES!a 3 ! ǎ<``vl5 דrhin3K#.vQ(++2 MI%s؀F,VG;c|^w-n{eeĶ˔ysl9}άYA0Td؄L .': zSNCu(+Q؀xgnlފŋb}P^^( ݬO6&)"k!AgmYC1lDYC3@6`_hP@uL;˘68fTTT!CJi̴־e?Ƚ:F©OlRǝ&^(ex:{Rx/_}J1*DԈtB/Ǔq\3msaÄX8s+CdƮC~_ޟUB6T|u.Eʡ0U̙K>5{Gk>l\h=vbA{.YO=X4vŞo8(9U Esh@g3TIDATx3D4Cis\bRPI(EEHQnjaG/(/M5&DOFYa3;n(kkR )Rss<$+Z^|NRL~^"93V(05_LYjmL cxw:]En:.Rbsv^:IY)m;wvZ@Q>B>vOIgJIA$)%H ^3< ǗluaJISPB\D*$3g<%p! =Z`H*Txg-@yXd6ny0+)'\|A+%RNi~0;\8gH]'4uM gTA!9ʙ>uǬS'CCYҖB hf*#I;e$m9rR.G<5Y{R=_GkiHi@ \.\D(2SN" 5!Bfc"rQZJWXJ4eRkhr.8Ѐf0 Lڜ$HX2"l95vnQm&W":C,A$Ga܏1N佉=paG>jњSmǞȴc.mE̔҆쵛)IS)L$lԭsNJ3Ng-y/%O@ +{oB X*HFwvȴ9{5lqN,qݎMIvny:.08ǺspDיRʒ%d;fov:8rΡJ+oiNt[^nI2+{O咝"ZxskDb`]'dKIg(`e#'4[о.'f[;wR Q $l*wj$.6*C;!NtGߒeH/\ u'=#\6moegضW"˜xg޸D9}HyD@x0# kZ.V6 3DY| H!!IڶWn383dl1d+㢠1TJ(1|B g 0Q1q8&@ ^"NKhxWe/6E({%mKIE̿RCak|N|bJvk:OVv@=L9s׫ٹF7(%]+2O"P`|HI{7"rAit1KsGL49OشL8\ܔܲB&qU4kpqfT-3%RC*#R4 fi./d,"vACB>V|&rMmp5NeZyR]HlZIQvosA>}|k{8s^, 8 S)I|)Q<9u'\`T%Hu蔲}CJ3"4R%'L)iK)6x EP1zz*p%MAleHKk(ˎi.v%i'|[H)pmDD${TNOTN&58&QSh2Md&1\]=p*rCPIGވ:V4dogci!7e36tm$lk/A'a%qlKpc%"Jg Ij,'mĀɓ?w+!Ҟ,NK#NSJtdC:wH lkW[ٓLA0HSqHfN=X4S:`qmf6yR $kJj'\zҕTK5bK9Q$gC %F&-d Bc__CkX;eJ"%6 3cWhyq<|*Krl^qD .W&Oǖy-U8eo>BK>KOSg3c6R ۢ!0vz٪tTn!).{iJ(SD,AE9D֬Q2E8)>I7ja:qzo.9@` [Y[273+Pت lΫ#q(!DMrTfbd&6D"I \Xk\,0#D mJI: 89(D/HHV} :g,Vp)e 3KGJ)A{hNNF(9]͟v}3T3@$4cB1ʱN9H)}̪8TN؄R(UeԏkNjl$]cFV"jVҙvδ#cl; Kx\*2In8WBdDK<,lTp{!ӊ dسK9>u]>Dm`19 $Ut5Ԓz" RfUB 2c;s84;V!pmç*HU-;I!Jd: @Q@Q@Q@Q@Q@Q@Q@T2Mg>؉6#~om6*evs푀*O |D:Vz ,@d'q=R"GHQEV*jB->Ppn#¶=[eH2)#3TӞ[g˪Αd+. JT.8έrbΞF6 8n䎽1kM-MHv(;N:GZh)#7C|s2@qgobë+ų㞹?Zi 1\xb]5X+B+.Y7 @2+r0oY@jOcC2=×&s隄7(X$g2 Ug 2ȡ\0:?:Ҁ9[ǿ? ˝`v`GM]Ro>R fd`gNFs}5եߘ¢T`N=G@0sV[.)4f/incc/@Bz▊*OD(+]ؒ1(qy|gWV4u?gi7/T{UpFOuSii>n<xw+F` (].z{zt1Gp|ɑ>=QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEVZe,{A1Ri;z l֥dAeڹX4g&Mm:7gl@ƫ``.>JIp~;Qa;&%`#{^edrcs,ݤH`d-6|˴N>t%Ŝelz~u-Ӵřdff-nA q*=P2)9d2ŒdުúI8 HS GY f2TG^Z}s y2+n/#K)<a܅ns/̪I2@#>UY%&ex_ކ䎞۠+eY챆#8!8p߹o! )4E!b9^,Q#m;)@zOLm 3;ɸn2 *Xtϳm Ę@U!S {c&$}J.LU6`* '~c֖=Bm )UK) Lcp͹¼+ΠOQ-A`fLFz$Ŭ õ]T-a JeF;$~Ka$<ɰ2//#s`qJmNxq"]gy uGY7rږeKc`pNp 9/ eE8~UPY5褀%"FH?3yXnmA6I&~mМdb4mWVvIadehؕܢLn\TJ.#[b7B]_}H]H͝#`@(Bk;m@,ŋSܧ -)]f~W0m?EdVs;Lq"‰9S$\U {]XZJǏ }ʞ:E}@!AL"U"it.7HYs3=q޲% Hv0QTVSs׸]BwyBTu5 @ kY ԰UL'/Fs,͒wA6<%"fYH?6q#}+sLhy"K 1Pa¥@  `<;@ ?/(?Q@Ld1͟2-k6߭:=>$*K컀,݈tPr֋8jJݟ" E2<3Hn?](*chȨH*U%,GdbX9%$5j(((((((((((((((((((((m/aF3o@Lh"D  > )MFY]QVcO(((((((((((((Sq͜#YdH=׊j: rJᑔ 8>?,b$2ɻ*g WzAIї9SlPX.qO3a}pOҢ+: qżxOL7KmOUuak7S,ɻ?_#I#֓#Er =o51W;z vҷ4&O9ffe_1˂=U+^*ծie${],q =`HyʀOs@Y;`UX?R(J(ȤQI@ EFadlI-(.#YcV!\c #ր (#ր )2=E267CҀ$$BrH Ψ$E `@ LZZ((+"XWl&9eݓ߷¶hj= !A \1$\+yNP9O'$ t B|!\JSh =;Lo1 9l99y5ND3dk[Cw$k9ȴKigWܡd;. y m`bvQ0lJݢ9_xg~a%f# @Ǥ̒V(I*HHؔ1F3ךޢ1tY  Ro#>«$sڕc(ˆ-%ېz98*(imee3s둞NL,q2 q遞3[P8`Cn]YM6H?Z-"H`vdx2'v@+d h k1彸X#PK\֩MhcXRkmI* stP6g.>T3 g%2:rFOzKU71/RY dN3qz."b{m$` NJz[kfydFx 0@(:D]XaIJsnm!xbW ICC_PROFILElcms0mntrRGB XYZ acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBC      C  L   s:bI0x^ϟ.ErqqRB;#zLLFQHG:3xQ4S"=} a^hY,mcؖi"&y~xYq-}#b@S̋BYnqgZWFA\z_vTHdrC5~82~{LDi:#YZN$I`Js8nY Yۗ¨̘B3%# 'Ϥ&☸5#3: xo2`9:Ӕeq\ghs%BXހ,L)Nl珠ȚH*N΀TLIeak%DK&rAi~E6JK&' BͥQޔIHJ1&ih\Q`I*O<5k3!aF7eyhA'B'ɚ&yu.F;SALC<7FY IGdpᬿ9!jF0:=E51do%&&qPN7'¸ZMĭ,HfD (Z@ώ`j$MDBq~r)4`o6$r1~pxqAdxU) d\4*aW 7L`YA@W33ih9## $9ZQ25s( LϬKbM4 CeiX4iz(K@9"܀`\JAı GVC#Rء:3IӜA%$NH&fԧ3$Hy9ȭ-HDSQ^J:::Rĭ;2=> @?4 0 @P%&1A!"$367`pƜ>VmMWWQ<듳-kZ)"v!oV (} mH<ʈ5vRb,(uԹw+5ZWնC:c!x#!1"11Qq#*W&n% lR+f,f޾,޽b(S6f,0o9\"KzWRNAE Krc6diY9Q\ӷ/'n-`hi.A,,ғsr$ka %#t 2m`L&2=Ql{WȉؑlpWi)LIIE^~?"ED/C&/ _dV+Ld[fca9(QfZbAV1B3GC?8c0+tqu2a}v(v+bLgP7H~Ox]?BE5x12$V"aF1s1Y!1C̣ӓ%a{ɦQ3:,j xDQD0?㏿؅g$O k,3;Dv5"ke鱎+!iJ[k^&"ڟ)wk+gQ+׭R4*r:q\4T˴G/!QV+fj*ܰ-MaVID +QVv|6%f!}K+&zfڣh(QȍmDfW\YqXjc dDV/%``kIҜK3­Y+̰Z] X$]RQZm\bPg W Qu9  ]rlϘmmu؄+@-fҢ_ؐTdL`]0wCX܃[*XQH QIɓ]ܽV涎z# XML jp)sp;Nkq ݘ},cXW ieis}\dr-ucJ uG K1p KK.5SԳB'q~ГۑYFeh(ȭƎͶ#Jڱ9+.czT6%K s$s`ǬA{`}zhɭh)gƮj~,D~Ȓu%ae݉4՜< 㳼}l)XV2Y"bBo -8֧Y0j=N+[˒*C֦ZXjTL&2;8AL%:Ĉ#i,B %ŕ&-Eg5ġ#lգV(ozR,qբaf yCX [`Z9WiC3i([A%QF'bɤؑgf.CM+^сo\U.s0_0ZЄXVGFv/1.V缽ÖjBLmb$a`+LU9P9LXKQ4:Keb* ofwg Gj{$kȽnekJjrésbqd\˨q"HLۑx~kٍl;.$kLϦfb '4uV& РNyF3 4 1(Q6mf]pUϻ˶ZTĶJZE53)'t|7@@:as-y[بr +[Qj)&ZMxk=bldt2H3::_AFҎ`ˁqt aJW=va۶?p@yon UL33Sq+׮[a^M"e jIc_89 nZ-mʼny%pCpsc̆f0RsŨaLȵH"fXb%mQV^,i= b`v22fѡpPY%%ȂI":1O,jg٧1*%AJRl6DiK)bl׵!"opRLDJǽsU;Mmq1yb19WľY"I"+ԛ1=cU ++^R+Z9nkXM`<͒U nάO1(~$1Gڐ2yf51Yrkc\,ƹf51Yrkc\,ƹf51Yrkc\,ƹf51Yrkc\,ƹf51Yrkc\,ƹf51Yrkc\,ƹf51"!1P?HWZd,NuF篘#1$uΏ'dbqVk> Mg9pTt1vP?" %spŎ>L !1"2AQa#qR$03@BPb 4ruCS`cpst?ѫ5gUٽ;=]ͼ[pGfZkod WWq[R)L)m1 /4v2:[_;k`|kbZlkԺx7r(LkV }{-w5%ѷnrL]EiqW *YὂH" *3ͅ7;[c6_^ 펢#{m)] [䭎}ն}ghXxՑ+^ ˦5yu5(ze')(]:qkeK%Kմ*X[*JyaktfFg]\{澅n I ﯤm;.i^ё¾˷NeZ=X_LɳjB{eG_qM=ҐZNWn'i WEie V_XD?bucUfEf:-2@%G}]˽M:C;PHZ{m_U5nq|iv~ e/?Q"!P]Q>"\ P'Œf~;wmVq8jT};>Uvn'D"˧r3 J`x)NԲFˑǺlm.#c?}t/`hǭIσٶ`T]ڒgPAAqIq$L2;Hcܙ51c[YڄJ䪸1~f:VAWKmzI FfXĊ×·sKxr$x#fž EiEURGv;#\/QY68Yp㵄$'!aG]C) 1VLZ`zVMՠ'Io \O:ewGGYTv¿7tKy^w,(:|kdФ诮VqR4sV:KI}Yj>uq>U`69e[DF$mGlKmyjo#v%hP9ǧO'&9W H쥸yP4d>ue4C$2ڈA=y)˻y&ywSSg;WvuUӆY}o Q+Qm z⮯,H%fI8/d|?ޯz[tE}y-Vm :9im-c:Nq },WR^C1W=\20O^QB&9 ҶdG3Pjc97Ț#}Zqw" 1Κ)QvB-mYƀE\tP|q4f۬|6G?:0HbÑE8J$]ZX2+FLpRH|^VT -iq`@1ُc#O/E4F lˍQoSTvo#jsrLlo%sՑFwƶut3L&= jiEL ߎUcw,P mNPdӰ@G!)"N2 -,2$C2pƂ8גEALhP#Hegd\ ]'RsRҪܘC,yq*7C,yyA X7>x JS`΀2$ueڼ\ƌbE2k4I3Sc5F,q[^vlDAg^cWe-y?*H "8-ƃy?8!+ں?Ww|3W.᳻/`gPHjYױm; I=mF^9?c8*6:ݮMrIڌiDžl'Ԍs̿S񭗴u/ Cpfakngg+[BK8񯡱_mcfM|H}+"ۮP}1̲.ķS:d7&Ǝ(gQ <利՟_J6PK䓵ZmD=^uQt8I#ݻU*//=?eMwۑ>9[(o{;b-b$$1^Tdth |WkKTu`{i"BƫG<.֐sWFIoZxY Pxn7KTвc_ 7t< ^Ϸ,QM岏D /S-V,"@ᏸT}"wŀ>O=ϷOAI-A;-*F>'*Ƞ@ (aQA$1c* +IXm]sR㇭,\F7$g5b;E԰#=q}pp3BIHPgl 3 ^"r*4\[̓'6j$V\*-3G JQ[zƯJ2O*v)FcW兕}*(k*FWw8kmZn^+;0|{W=w RDEˑk~j hȊOfe1n➿}lyo}:}0x|)f[uM3DBseK@{f,eפ]#@mш? RVbCO[C1ͳ #^k 'v}s}Ηpϩmuw^ƶę^2𺴱Vkgik$QYB3n;lugd8[Y mtrOT&g5-av;i#{\{ks,I` 1zd Bۺ- iխ1ҏQww[F#Gjm]fVΕm֩WW $#[f[xXJ.4`cv8Df2@Pr끽a`#,8}X[7DFKl[avkxi![8umkq М9{cߦE2HdٚRM3db@pWGTuyVər8 qzNs=w;ʊ\5 ó밙5 x3ƓK/&BA89$dBWğɽ&<[1y:Ώt|h׫Ԓ:O j#,*dK+R"'$gB0QjKp3/9,DzG6*ø⭿IfGI1M$cÝlzԈ%AGv*itw2h~ƶͬ.mGiXjMh5Rbn9.uAt.d;?y8V;+gnXLA[ǺGlxxyd)̍®mYga T73=khqҡ] U.x\W7bjv)V1nh׳~ڵIf!ƶz#$e|+nDa[ʧί[gYdke%O#Er;^8=LlV-Ury%0OH%]QHXg')aR \Op>rO(FŲ29S3ǚ5 ٴΙ(X9}^̖%++o1Wy4 l,껒F->o,qtIax5-T4ϐZ=DO񭞶vwlf]BO>VH9SƭU1q˾`Xes!|*2漣AId:mw22ǭ]k9.!tAq\3i犹vu&K8O<ۭxsSuf-88 1b|awWÀW+$H1hA6}gJ֛г%֧I2ȣā[vg!s zw]c!2uɺ)15"^\!ZAc!_#Φ4,̘Cf9$A%NsKo 18F?fwjM rm"᧍dd\dwLt{yK+FmR#>>Ti;)`39ruQ{idFM+"ː4_`;V) ).`dX-m"Y yƶA%^]ibf3BXgWKk,[`"tƒpWw>n|G Hiw{lj41rnnm5u@c8Bΐ3)=f`mS8$j& *=.p4xﭠtgyCpt3S˙;ƴ]1ǵ詖m<*K5F݀egƠb>4ơ"ep@5q/DN9xf#>s [$ y`LbEݓT;Ϯx-k 1qK{@~qζvkUlwfEv8=~*k\sCk5#UO.fAgHaUQ}y)ᵚEHwx*6voQ9e(i>BDS`il|xrgLW4Tsjx%T4F l:P.&*IT3HNnhdTH]g Uv12Tv(=K8 FWxZ?M rDʹgow6f\Wp^ow,i0F8{2Z9V<J*r5cK8,- BWO6p4*I ͍guu!jH#ulw8=`Gwulmt,zW5x ) GrTﭚMw[d8eiI! dcw:m2z2+ yTAmDLc6bT!aQO4b?mF+UX:@ cK0x:my.W D]_z8[n)X*^tlޕmx)%x yլel9 r:qέr& erQ_<άLxW+#gAb6y͒1|kl,r[2ΚȒ}.FXʭ1iZ*+LRԶ }w[E0\$R7=\cN<~{X=?}lǍ"hʹ$1u|f\Y&<ĄCm_0L>dD+rJ/hE*.NetK&[X~qZT?7!fQ%XF5ᦼm }WDb =)U-Q;s1$D;dQ* b716zBS*S$Y胂xGODHs)X܂Aw0~0P@cfPd=ub> $e5yE@-6 Aѷ%2>ߪ_vY )ON>?1j:2q cN:ʄC6w{թ޴/z|I6/"A =xbCRDYRZWhLH0 [62|BփoaRKtvSY/ T? v,#ۜ1$[iB4T,D\>p:#/f"sUEmFNJF30 t2&9xlaLb4뜾fN3qFf(;9>?o5/nY*Y-P~}fL+ef}QH9UA|Bs'`ýu~X3,W$vtC퉚N_|کo\L0rbᯆ"#6%]%I1,r[0rGSa+||2 F!G䶜KprfH@}, *p\܈pF zL6[ :V8JeMŋG&]'S4h2$~Bڸˆ ?\r6'fpq9Jm#JZIcBV?nj')~Qx@,><{nͦz1bx­&½@7Ne2NEv[Pe{ECz1=p++l3Co$$pd;DM4DVYI 2*Ũ8<AJI ?>{z/RM^.@Pάa]b ,"+ a=2OOyHɜB0!'x_j]m0?f$۬2w0p@FGO*4H2+Hki CtGx(jWWI !&zc<=ō^;p4;q숼 I\+($}%:=<@&DcwJ=Y+x:kM4~SЄ+.Zr)f#n7+H={8S;d&u>9b#cXiTPJ Kԃv``@ܱUNg" cT{]pKzS#UC = ԏ!9;IMdTd$1# ~4:_+ *iDkd"޷ҕL9VfSj~rz8S$T=\#×1|4h\MβW |湜XU&ZZ7)6`c՜5X& U6q W%Oh!4x,V~h8Յ&ANP(6)㎣]oJ1ĺ0Y &Ƒl$p7Nl~6.gr%5$poу+r//o%.Mw T0َaZn_SST:cO$jJm$T q$ 'όA.RPHDb"GO'1iV}Y_9i&  `ͱK+ JS-) )ZY>x,pA% 8NJ4ԺrxPp=%$ Xɞ^\Qn cDDd-t }ĆGS>d e(5,HTa?M_ 566] %.Y_?@N&W=M:e3PU7? @!222˃[f7"I*`J8y mGI_ ?ITrҶ[Wr1A t>l:VFF#hC $rMI GB\L/d\(flcYK` -* ή qK"*^r٘ld:lCf`ꐱ7~2DgE݋F3yBA%D[LPa$c.[w*4E R }`bX:hGLߣv5fg*DX7aH}ndEbcD| u ZQʨ[̠\&@X8͚6E $!$XgY(Ue2L,+g1I*A#I-;巼/o! ()sxIz67N*a$O)[/n5Po]ϝU$L=X$M<{p4AXiq+##OҏI%ӃLrR]œb6y% "92p=sl$8TDQ0 96WTIoN;"JK G%@<- Y,'o]i?oǼD>۱r$0>Rt"LPv"Qz0HW@@l@Ȋ:x'Y ua-o!sP$f#rV%jaP+xTg牲U i2)J8(ˣ}Ha.kzQ2PPO]N4:n$ Mr)!VtW.Q6'r}G[9MBfv>¦3.F>̒[a 2jJ sdLWX"fWexҿV[zt!\0F)n`]QPxyD@CyǷ$ĘEO8Ph@E>r{MQdmN]-H83FdvEu-bLj`MؑD/UcHdYD'~0rؠ]ɇTQs*ThyO<2)G7*wGnf}vIƯF>9} -P%ńw,@t2u/1Eyoc/ۇBBM[޳_"!ͤ4_"&Ve~r [9+MxT /Fai>L$;f # #yLvfw`z4- $!IVm,%Uq?|UwlRo<({63@}>l,L5=!K&7xp85ȍQdDIY0!$2yxTt7zw$`8QA_GTxHu6G ^؟4G%֛K+Z.1[ %X<~eoBe A7eW HRjuK 0jaFfIH4?˳E[Q HG$ Ѻ ۨ FS83!"PCMXq)9*3&::6D%p]eX%9wWCWof/<@!Uk$-=r&JZХ#AS0x9JRkDM퓓A(n&263X @R"E 0?&Rp$)v cz8@) AΐWh €!83IplVNhF|a"lA-4NU  uDXRC8 tվ TaB#Yu \-EeJ˃܀3<8? !G< %]!mH 8Ul<92'`5` D@yK;R gjĤfǬKQ< #Eƍ%jK0v$n>0"%R5yF 3_q2ʜkDC]󅗸ht1ZpqJ$> o4su{DjhD *Yx|#fJe$:OqhB'FӰI( y|1όBbED]g<Jҫ\'i$$!|\ LYNgp-B gg>2& a~T=`2FOjĺKV hͫ4a3"qц-pdO0s0O41X m"@a@e@h01<L`G?,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ? @   !A$I GH$H $# A @ $A A$ @I$H I$HA $  $@H $I$A I @$$@ A @H@$  $@$ A $$HA $ @ H @$I$I$A "q1AP!Qa?HjFC8%قp9ƱUV"uU?`oBG~y ROr7!1Pa?&m Fμ֚nRvKʸ,!1AQaq 0@P`p?I@jO2 BOd8 lp $" iydT(bKŽ/w CL$ЋO D(+a@9C WatW47OLqEbCG TmH@xC**,û42"o2{]` SÃO>RD4 pbA$LҰ:dePу0 &`_'9eq݅ ZrOQ|6c1R󁄄&'C׏%?; [iX5VJꊮ9K ?'&T&E{yU?%f*d (!p6]144N/cCAR-EPxA l/hj4Y7 !:FP|$UZ Uf8=tAf h:ה62'&X\PZW΃[jBl0=( `L8[l!)t W3iXdrc6v8T߶:َfEHa]q:T6=kRHi]Xt 7st7r{wP'GUiqe(G D*J>žF P!1R*LZl}ijF&`1a#c(!4ޣXDr!>0 ߉wi%WrP"R"Ee0^D!X)y=֪ +t/풽zbn'qm=?D h 5:s?Zx^T+J'0tҧEh1XGZ  4te; <0e*/DN) ]A`.bֵq91U`84*/0=çb?aDzٱH Im<%7-F˚z>vI%E:XjQUHw+xP^)(@B#{@EA٬D{-v^L0@ăZ8!7jRH4Lr5Ou<$  Ngb 0xP7-!0y!1Yf-j1! /w|)HwD|4վIn̫+F*F  'wpDo@ _g#nȘ0D'aX5b5Md Rϫ:ahs(nW4q%bi;L2#- :X~(p!B2D,45b Yz8'[&K1y:kC|9}[Xa{V8(~BL{@rqSP58anzpv4-Ħ.aņ¤vN`G>,J5S88vVo 1(ex" !B:\pRbH)B˂P  eY~&e B?FA6Z:T(0pZ@CL ĭ O5)\Zn zc+@?-LuP/;a!aa >g=%7⻊EUM ۉ$Aa$+P`?4r MlGzGH+i1EHfPӔ" xA=K 0bLq]RMaNE?OQƯ$9H(D7b),G5})a"m 2<1" XL-FO8Qա-9h# MGT(5 ,4FEj(p!$Gr[kXb$`NUtZK* Iy!<>'&Ï0lrMGdQ9@T'\Ԃ5Y{ik4TLl:Y/ձ-p߲ʩ ]JbO1cq ͼid0NWFܥŤwK7zPXFiPB`ESRK+Gi'g0.unYa< v ht8&Da.\Kdz0S* TEC5%Epbt (IZP/C%I&mMՓ) U:p Q#"_yf^u[ڹ'rWL"EfqGrZ@9~@>Ħ8;EO*&TTW6@!Xm?ir-ɬP@~ `OZVAmZ&j%\ 91VU2bgm0G&&Z"woqhP&SlTٟmW eA7Rz\m( #K˶= 5;.4~ (pj*9xdqQNsKEȨ#O5YO&PKv:m %).c%{@*"}8TS Y" jm\C/.G8 Q])(κ#gEpvGɂel ތ|5D$GHtDpipշP E؎9($Jӷ9DE.$UDGH*Idd+6bMBfmyKMvz^0h!Z{ʹIB: md'kXW 6{Xr`7CbUݸWp%ԫbML74tYh`F?I4gСDwO9URHw-(jEI, ea!>4}$Ȫ\ԀC?\40Hš17$ 9gJ6,y0Q_!a e@,/B`voEՁܵv(Bj; JE9!6! zo.wn//&: " 70|6P9IGTH$'N5]Jv6Hxz"0BJHTs  `ih;@tN1NJFR ӻN@D ELIM!]ւe}f藘lv|V"(!DzA[QaD˘}66"᮪.}+~hcOBhei & .K$DzW2<(fP߸[gEkP"ƈ&ɝHcPNF/~iz\U,(%YUhun>)] wZ #j֛"Z̄ZSwoPJQقm]d10OR0QUDzcQj[]aѴ^Mo[`p2Я.H+yE \`*#'t7 VCml-U^ eJ9}1FTxsup|IA,5Q s4۰GN0dZ֤Bc}qcz+ǂo5DLRȊ;!Y\h`1MhɀӍި&Ao48¥!n9! Ed|8'(VX ]*ay=hAäÐj*t Z|G | H9]uT1͇!mC9W?I4LMI (6ĆVcHjeH@jR|]1~x:xRwHhҖL~+ ( ʳbfJlYGDo=?ֻGSR}1ڼ́z}c¬V{STr!BG(֪{1Wl3܂w**haiPL)@XR%2gB i Vn;dJR:qS)$qg g~`Lb AdBQI/.O4DCH)Pߑoc5u/fWplGE4 L`G4PB2p@| ةE l{oҐE\. [f(>IjPvT%ɰ%hmC Jc4ݎ;j&L(*VЃ-RIU%RBdwqpAŽP01y@:rx"M@E"k B*64&GY:Z|u-z ` N|Mvt%z !Jžm(b"0 1+.H&6f [˴/&6I੢ ًƀ,k2& aWp0uR/6\'l}GKЂ2.ET@?^ }oӻm}.=SbU ܢ8ܴ P\P.lP]M J RJ{ΨiwEhPsZ0twᾛFx[*=Ą-S OBW$uXtXw#H)Pwmj&(0 G ט% Y^XTF&E3l)[ Sj*- FEXѪ\4(HoE **BPY{/BT9$zGHpx~xO Kp1Q~Pd8pÇ8pÇ8pÇ8pÇ8pÇ8pÇ8pntfy-2.11.0/docs/static/img/android-screenshot-macrodroid-action.png000066400000000000000000003136251462047176100254650ustar00rootroot00000000000000PNG  IHDR? pHYs  tIME " IDATxw|Eǟgv!H-tBo"ElEEE +V {dPBMHۙc. H6{S<ϔFmA"H$,H$D"HQH$D"HH$DD"HH$DD"H$RT$D"EE"H$RT$D""H$)*D""H$)*D"HQH$D"HQH$DD"HH$DD"HH$D"EE"H$RTkj:a5B^1Q"@|ʧZ߇/7L/@bPb ]QFĨt)T*i7Jڂ/N/lȧ|LYU^w%ʯ!aE+NB7RLU ,D(=׫)1U RIxrs.7 sU~7>H !/_  @ @ "Ȑ!!ɼ2͊/O(FqE?vJmKD"J#5a ݆&hRTǰ dfJ^C MA16 Gǣi^d2n5jy=^"2L!5 Iuv !SLF32#\ qv;h|5&2[(^`΋mMÇ]|2#?>xhSUvWk4Yu~p=֙`g_NUUC7(+3&b0 $&3b#E0xa*(樠֊|hDWw농[V@eZCbEąW 2Vy]t/flެCO=~b媵hߥHʯqaY3%'m,9,, 56.^9y%e6.8 x\nk ddL R gTUe@ .7LFE 2I+們Om =k7^z5&վ"p`^=8QF.{n/4"D=#{Te˶Ͽzce_x=iҝ5r8]jH AhZzIW_yYn]4W^3l6<{/?ᒷy1VK#;_z8=O9&ELAVk cAv6~w>^IGpڋ2^iִl߽ay5k[),< LQ1vёse%`æmX4ofG?) 8ҥCac5%mۮei{?swŨw,^Pwoޤw,!ޝWTZW8hYn6BxkoiӦfU")J?#;74;.c/2͛UPn{%'u[%_}måg`k%+1*ʇ}h ^swl}Bȧ,2~cM5l֤B w(l|CgCW0Q[)'PBnzǂO+u &*jX8ϠiP[nzbW-u_ \N3O=4;jج}Xtsm7iX^)9 &*beXOz7U-ߘW^xfs8GNh3]wmF.'pΙ/qvpֵ/:#7n~#pР_}7fX[4i1,,lGw70dPsr7ixn;"M[F\qC9:!!~Ο qڳ}|/3w%p񜼂f-ۭZMf_ߴyǪuka[nޜ0LM("W=Stl0F&4h߹wVvNtDOBx=KUپC[uLjz՚m#l&QW?\-75?}|wwC/(q77oҐs1qu9f6=|B>hPUپs5Lc\tlTi著گ!#2!#:򪋇_9dC#2!#2AC/۰e[ݽ^(`XFڍ{ظujܱ }^ڵs7|Gݠ(/s띌>}zl߹`P ( ܛ7JGKh4mQQܫoZz}LtKYyI=#' tw+q‚mvΟX'hӺBCdQ*Nfaqe%aS`%.6&3wـZ"E)5cZ=} BQ\Nۯp˘GGDg_GjЮsoݩ3O<,8Mp]Qn}7nۮs%KW]1 ]z\dA.2 fn /z>C/<^6xC_>dٺmg6n HQ) #^N^ -x7#N~SGty41@F ۵խs:wL4  _ 79]NHy{s/۸LSiZVrko>v2˩@]=ڥ#|Yᑏ?]:v)*s\+,(8y*;#+TT֩S'22:b10߀dֵ˱ûSwo|wvۯЮ Lxs{Ư?x=n!~8t՗:~oe,m`DڵzG|t7RY/Ȯ|K67lҤa#S|'W];`4cr9F#[lq%Tb5Su3g*LڡqȈmZ>н44@z3x'D0"##^}}{.K(Zh6 !K f{ҕ@PYO`s~B#OP`j._2j_5''G5j8 "# ''GQhР\.WV O?Uo3KƏyŊU )+V99,D8 vւ S + !j}RPo4BlIufn@srrj@mŹaC@vv-?33szz?jz'bC||LbZWq-7[oh0L~8j6-}z0}uL9+FLy?}TqBuֹ+ (hv%Lk|A桂C=qW@A ñ'gϪ57<]P0++tJ!9++{W^{_.rLh^W۴ 8,?0d|} V咡jՎ真>vPaJ߀{&***m-V^NS>ZjdKV*ӽ[],\~YiS`]sߣ*|])T²trSX%Qnbtˏ۶n>⒋ou,Lduc=z?7ܵuo ϿqxITɮt1߷cL}I>nUBJn䉓1 q6oqd+,q%`0f{J!H$ulꏟ?~3,Ǟ|u떿-/2S!FW/0/A(+J4t9y-( |c?9X_2r_}{͛=ؒ嫐ֻ( í{XsQ7~>ң+ [vw /69Hy8_J  V0Oycs30Um}w pf/n>e½Rhs XTUM[׬h9O߯X!B:o \lI?kN"?y,]kYBOmZwܭ(ᣛlM 3@H^lPJnU]Zv?~h穣 ,/S&G W0字mo 3MsO\?r~6kGq 'mް~ݤ>]ut咿@UsXkW9;K-C| mC.n/D3/޹{J[^N~U׍X88x&s䕘(}C*Jq:o?Ŋҁ&r\=X&%V8orzMڱ׍gߡqN0@ٺqV|էGK ?K09R*]ecJ.͎yúu|Cϔnsa(fA \-erf5"@7?x^5Da#Do_:/?}m4(|3MqQ;溹 /](5ڵb׬[S FCX<FUUte…0l 5k\nVmWqMOeeٝ.KƱ`4n߽'6IㆍҏQ 4I<`SVkx՜  ߳s6[Y9yѡGm3gh޼ef;`@ߣG8toܼ?`֭֮1..&&2jϾ_{~ 7hP?HXY!M!Ď{y_{㝠ypǭ(/_)=0HMz~>CU}InևSSm [$Pvp(`4M6nx݀r9I * WCTnEs QDN70柽ёQz7Gjqqqr9+*n牧_y5 ᷧ`P y dfdp.o h #k5|/UEhҸaiFZ4oܰ5W_q#bӛsa ew\< V6[׶}-'oҴG.^j-^ȱpN5g˃|NFٹogQ'rT4lP?\g5ix[n/EFXnXKlب諮+(ZǞxncBĨ8ʬ?fi+fmaoXd,>ּinb^Mot\N点3wo^uknOp0@HD.q싊hPsf3ӯVNn]~ntl0y#'^nI' ~󃢨Fh4h}L}ͣG;/<_d1`T"2Վm֩#nX(j4Mz%MS?v9 01^ݺu/ӫeyW þx]vwA[_eB;!I ,[/⡣*90RܪUW=~_^0t}X,LaϽZJ-_OG$ްzA322ccbtNe" <ڵ7劉bVultܙ+mi׹O} l!^t-cߟO,2,V8ʺQ&-QA=̛pWV%V@M}Z۶~w) IDATwFlL~H vH[rJB|U vv5xoӾ5Q/w}URrv}4YSã3%}VЫW%ˍFu7ߌ>la@۰ytϳO<'|klTMƞ))m[@).%'O$=bPz;V.[N?N_.Zf2W' "MX,4y`8(3T11Χ_NmѲiJ.pyZ AV8`0Nil޼ ?h2hq}򅪪y*^ҹ+VUbV Kظ0yoe d(:w_{XlXNd2{YFuj'ǩ%gb2#?`̍AEA7Xi/[3mEgxn)oDGG9jTNnî(,,BU'2Nc'&l G0hq(!{:+z"Az0:ux7`鲕_Nֱ7>0& j7b2o:u~sMu|b&+Ne󗍺{/QV9wQ,#Z>ۀ;ܡ]+>kμij~| ,[ƷTz/"Vء[oܾfׂ~`6Jf0xEKVtӵK:~ďg,_Rߨx>!,X) !:rKG^:^SY,X/}Zwsu ۟zZߞ`@J+{NUU 5Ne<˹y:޶cjP[\#އiۑBn۪y^N l{!\Sk1()@*Z} NdBQI։sv]w,YԨn"finqa˯f?s/-{%c#ѳ/«o 6A/O$%KVMpKmXɓ=]zǬY]:'1n p!4rSHyK+zr:~c z`mݢNB\dDe~M/Ǭy&.sҕ}&~{EQ/yը\6jXbc'NΜ_s-քfvQc1}r"BBǎ=`؊:Б#jz{k|U7A.: f\22L. /2EJDƾǟ/=֥+W|J-&6m١yȘoZu[̅b)9dfw=˚׫ ԳdE]R0ԍ{EΈemhH%}Df4UPZBP(lơd lSyA@ ~}۳aօ\>AзZ#&P Q1i{3Ph vA `4-ϼxP ߎH u^}OޟrÏyվ}z5k5z9ʍ+V3Q^.L&˼VjPPgONrAao_ΉDdeeGw5_!>O]NfAb񼄄BBn|1<^XUk70m:cJ,V>W_~ڨ  @DmؼuNDVa>ZyG j6F /JM;TF> Cp,; p(;=w%t// @ɨ F9??^R2"3ʋ<+P%5A0#+j , e ^d2Ŧ#i $TrVa2ND)Bu/]%jQx4 ^sMQӅQQ]yů=QVo3LJ7%H uZD 0E#z+"CF(P^ #$$FA0 BQZ0 W/eD} Z5'㒞u/d$]@nbVAo) p*6$d kݼ9I!&A/B8t8=3+srGsrrְ6햯\5S ~#X3-[@H_5t87ߤYSKQIQhur娼c\)~ megZ:U@ A"BV!_4[a؀ZM%Xȧ^-Z.[ /c25(o*B_Few#1E B@hוSQ߃E|犳NF ,#߫d؅xUWʆTR PJ[pG5x=5d~FJGS\]OYTRT$gfU^j/ds!WMWμ$)塮:%(i&*#^2] vr_^"J]z6JB53y&"RnUT x.W͓X~P}`W*2E1ry8=;WŪv9{X^RO#ω#^ɛ8GH$DD"HH$DD"H$RT$D"EE"H$RT$D"EE"H$)*D""H$)*D"HQH$D"HQH$D"HH$DD"HH$D"EE"H$RT$D"EE"H$RT$D""H$ LTe~J$rnor^1R<)LG*8D"y`oϞ6" '=C]QJL%I$`J\r, * ;-"~y)r'bo hh׶ydD(rQmݱ7#+f KCWLc#br]DWDBBwN1QVUAE’k؝slIt[wJ*H!+~rY8JYH$Q@@ [LOff<^ڹmB\dAPQz(ʄJ_Zj4q6LTo0r MUHH~JQ_j65(烝ݶ}o$խWX;e խW7ty\p"! I? D5j lR[h QQXnn>.֘ o )u/^oiCV<BhʪC Wi>H4O^ tkNd6ammܞNW` Z7oB4hPoe\A}Y-(@ 0" B}`Ą(>cAB-AF>) 9Ez(Bzz#t. @F@OJnBptyjҼy=(k "'/96D@`ԪYV}?Hg!⏩Tqo38 [4jOK%Fpm9ܞk7E5bNmږ]ו F㢣t?è`՚_`CDFH (O* >_ $&֩0@HHԫ'-]e 1B8\\l  ޸AR KWϷ~V$41@Y$EDYiۮ#3Bz@Nӻ>!ѕ+~rAOzVp{$P :\%dTwN^i{FV+Бcb oC!1B|-p8kNQ((nz0jC(μ߯NI2%o\?}Ľԥ+6])w((F- 9ЮՉ $O#"+nHߘ(J.dO%c%{.DRsz7h:]ygfV^͋ A3N]I@lstGF*俤)$|sp\elT7ix2sc`BD96?ɘ!pnT.T$0LYjEIufɓlg Vɫ6QOJnݜs/l&]Q h fT 1޴}א=kDd6tE( srހ&Z1x5-0;+rH4oPȔG!Aq1 mV)!>hT\B!bTkǚM&@vyOe:\n9sNߑZq]F.NBp C-E Ȏԕۯ((geЦ&ʲNy1ɸӿ @qMOz|Ld&ID g!pwno D 2ӹfvҴ^;D2u7j8 P9 կ$.4Gtj:wh]N A S؉ [vr" ,F%>0ĉTһ0DD?\;-TsSNOic8cDU[:GOJnӂs/lz]QWZj4 uks\M "KfػŤ )0q` =SDpd[edL`o!Oͅ1dHv[+Vps~*;tƵȁRAH#0Ģis? Vv6&*q.ƅWMDM{WAj'"4t@ wz*DamrԩUH!# &PB0@=t$~PllTswGȈZqD9ocLWd @Ӵ!K+oȳ"aw2ֶe;+? ѳGr|t1fXvSvnaQ8^Y["R+D=ZM-&.mD(4ܶYI¬lٙ(EriSB(5 @BĚ{Rf5O$]|a*vv[w&"0WW!4"j\? vMsN%vl\@털 ~3Z`lXY5$.&2662h銒v0}۞4E16 >6:&ƘquvǠ]m)]: eg$٭C|t$ k6-# c [zsv s~D vMPA1Sիc`@ ݼc7\"Puu@{u~Rb%5?"(<ȅ5^]Vv]BxDFF^ތ1Dr9EDTMxVf2Ƃ?9'DYFgLe!.wN^#8q?F@TT,]+iDE .fk𤋮 qz-&6&?2&@h,f$ĹϏt*%&tdL)*Gg Gd1lw91 2DN_T?h}RFN߸ UiA/>ܽA5-ݶUC'Faw蚤 BDj 8%T ${ Gs fՈTU/UDpx\ ڝ*NoDrD Է3->lpBaxg[a5 v>LM-.leIȺ;;2ƈgvo.Zf`AvEiPQ'2E1 {hڀT^tNuC H DĹFDά+;ָQ=,bnլÈu{<x+$b6y<ܟ"by="4} KBsη| r2-FƢhV N*zZQf9#+s2Qv!hPZ1)] MeQJFmK4wY!S9y1BX S`1BtUaw. 6*їoԐ+Gr/'Tv9`wh(j}/_ l_"_+[PT5\ (^˹5ħj\ӄ/[L Ss3iJm>jVTBݕ \l-vBLJds!aw 2$"d$D/ @>vjljռ\Ftm羴ڵ̪Ť7'bX-&"8m{R"DEٓzPQjq4"F,.6;.JqQ @f=)3/A'T'hN-&É쵛vb 0ϥmi.Zf`Qוvk7l tſko5:CsDt& y@ k/t.][afqфڝo4BH}wjݤD"lޤѱ' @Q[(GhZOCFT㱌M[vWp|Oҁ AЄBoBs(D vB\6\h-Y R:EBo]\ڡc֊&ګ{2. * TӘ7&6j[FkP bPŸfӶ9eg=F.ԅ(ɾՔJ /r, ʸ`VHTEr>٧GQ%r ZکMLd2sF7Yb o)8'W4O d\(3ϟ]B{="'\|=s"#˿""|=< O!OCW A~XqзB4 個2 IDATTJz>jBz qBҏ* p͇X`snެGwcLYpRn EAXo5ۿВn+(8?Wwf+,=`xA.DAgkmCpt{ vZnX Q@dRL.t.g)l MP6xO"xњ!],.AtKXPJRl ƅ\cLIErz-DG3՘h}/[vy9Gfl bY[OߤBK,:3]c* 4jYz"Q%9? QRYBٹ,ЈsZeH΍R<8r Uvn9/!%(V}u uV$URQe_ZŠl 6Vʹ-jTjT*k+ii_KI)ԠtmkHTŒhFVƾ΂ jNz< ׼MH^Z\ #cɅ/*viNjS~'c4ITv~b%qZ?|#\ i.H"H"TH$RT$3F6HH$P9"HQHN!_( HQH$D"HQH$D"HH$DD"HH$D"EE"H$RT$D"EE"H$RT$D"9CQP)qy\GE 0B )<.9.ڤ~$DR %DrƚȼH$ə2&'I$D"sD"H$U"x j IH$`ThOZK*D"ٗ*D"6t\$#`OȫU @BAD))Dr !Aê #s{\GOvp EM`$D/Eaa[ל$f0"H@d¶kHD(gH$ A`+IcAd^P#FH@):"*48lYכ{H$Ʌ`!9va T^Gi[1""!T3wݡ(eH$Ʌ,]$A+[|(lfx}'I/H$ *+D`6EpTYTt]!T(6#rRn/FƔR|KH#b&D"9M4k&/вQͻ,g4׻(D`@y7xӑ7$#Zl=y2k*DrZpT"'{8>'i8Ӂz$&Ozp w G @\Rߊ4  5q \&JA"H7P9 [)xTL9t((E+{6,[ps'I_e2_wu[kgCYk7_U+4(LJ-H{| ZQ6SUW.,&@ܸ8s'yl@ԐZ2;chdum6)Tu iOJ0 UP| pLZ訆IMS$f_f"E72a ~CdO*;~R3 8`_㙓B`Tjy#TTm:1۔YCm2Rv:ɅAP)9U:g$+L`Tb#,-ߝ3L"m~RofIE0H(OS* R kvŢ_(f#ZYeU(sj%(u'L:-Q&;:j6Қ͒fFD١Q,*>s=Dr`Wh\^TĖzc*@)RҎSËyZKe$ѓ}#fG[wÍRfd$wbʖC#~$K 0qsy^ =[u) ) ~n|*C\_~ڬTΞߘ&A4ݗ.Νj?s*eRȞΟ"2M mogRFI"ś&ݯs2+&Ńm+x((b'&s==6lFK ! LRO"@77fgņ8 (Hw? QHn| 6 Tv=s@OE:]'OR{?ݭ7AVA%l͖ׯhԨA]/?u 6b"E7@,Ġj@lnT@;Jmg1| =ڗ_2@ V?(ڹ?9;;w>#%*ӅP*g._8Dӛ?sVTW~;6 ңGC?]qs~\\X 7LDXKwcT:33 ]cch()Rx.]ޓŞJD wRG! \^뫯W^Tj`JovC`+_|"ۋnWe, u |?9_͛ ΜUR([sHka^766cgw?[gh2Y2aM 0bs}#"Hu)V}ot"M)RfXܙ31q Bm")fJuظN[#aʡٷNoQJAڮquwt4^OTlJA:he 7 ) zBܬL()aAdUEBQei"m 5\Yxmq.*m6MujFMSH@5v6n;B ýҗ ( R:&y{6# A=8u]@lr;:6H)j} %ٝMHSDP3s|]X@mW͐AaX׾ÏxhXzz Y k3[ ɦFJ) z@ln㟄t K먔C PmeM7TP%ūW-ECՌ(rbB ?w4UՖq.]M>)R>s`C@bތw~PDX]Td.@-D$g?נln6KloKbCP՗}9}nyi6uu>i+!ûFuߢZ=hWF\DBTZ{egt4ۧ66JOoxhލ,+K'ÇY U"v2l: 8R)9c * VVVvJ()RqcvYvXj˴]oª;wn73oUwlLO"hLS{0~Ϫ Cds됝UW_*L\#!@"* ba{dq~}aN4iL C\)R82oѩ+xWrЁ"̯- TeO|Pw`JlU e q{{8L:q|:^akiGihSFI" >;-xp~h{M r>*>֣6n~6"CԶSHWeouHc6}O&'í*1{b6z. >Ȟ< j[`  V~6yL"_HA,Åt?8Ra`nnV+?`o>jZ8w4ӥ{wVpX')R 7Wڌ6\~p)6oܰq {9vOp]/nXUgy4)RuZ-o?þO1u^AbRWU2ww.\luu O?V;%11̎O>^@}nY@ Ć|\fR{3ӟzo'POVx:"6ůvv)8,NG` DB;~(RC5X e(% T-vU YB>&+۟1VZ5[USJ ˿pv67+ K&6ӹο-!">:E.F)k=VJ똎=XA"*$>FY55PRx,DP xv4[QB*qWtr%2f_ꍭ١訓FJjɓa6&3&SqNP ׌*Jbz}p~xdV}qMCjC6E)OVhP #R}$wW)ȏ;m5Z+ ݱ,A]qCLQ\t ?>dsh5]hlX 36JLZʦ?0nעˌN*?2bDj6m'JJYRRxIłB hNMRZ]#Μ-M+  FL5 '>Qd 8:ZpQUbɮ1 u(loZTz/_ ]71Z|QľVG5PӘ?FED՛:Y8W^򣐕̙s=WE*-ƽNA#odTTXT깥q:yٚլn\GZXlP2=`ix(C=25 ϐL+ RWo[!"'L1Jں opбR{7\[_W,=q7n]/:}`nƉv=Ē6?Ψ"3>}B߻ojK VJwoEkp7 Wǐ%1?9;glt˝Mvl54[- J^unU9tp?zk^sqX Dպ>]THG<<,fM[|;]bc%Ezd'53D bqX'R]/Zџ~߹%[ ӕ9>ן6FHT (Q ^:Hqo>x7J? K&;0 ) +VښlT{74}W5KY3ݘ{.\;̠}J봺9!Sv`A.k+RRrxw&dE ̉ȨKf#C*;2b<颳I+C|^ HwB{;fsT6ީ|{Ǫ^vGG+,.:[Z^^o ?>|^7nU-,ب j>fM$ͥeR>lnry6=ݜ ,A`2Q>B1?o6t~o~mu TRxHEUpBC(/AM8E˖˺%UV8Qն~Ƒ .>Cf}HUgg7<m)V [ZsDq(ڪ*&L)X9 {PLD݅taw?c98X|ʪ"ufM5P֭HfhX~]|\Ǐ3Qg<%XծS#Ym jԃRɊfИad Iift̊]%83,bk IDATBufPUON>7o V!D4WVҨJoK0 Ͷ99CD*t#lRiNLILIGȊ728 "?C"Nu e";%:ތ RUKVPsq`{H RbXA[(4-R0e/lۿZNO2,?yb VQu ?jS6VWjzZZM1scv xȊ72)%ߗV J &6/U"ET#k__?S"@g\WM w ?؉yD&9ČdJ]`R666M;BP,\m,dh'˖=7NS}P %U\Pi{|;:]'NS@Wx̵ٳzdN[ZHJjHLy a nI1"A*fM_mEI6׎z{"HՍN* "辮%5Z0~%5 ? tވ"F%E]]aQ"-tMNhWOk?s; >[Mfh{Zs{MLU+5 IZhu_뷿4f<6PQh}{(D bKqbN')R} %Rb4 N,F /WbQLYN7Zcg:|"50x]w.dl.Ԉ2 7>FḪ.QG@ymx#B@C@=]UȲ 3@.8h5{6~Z[3 CZ ýKWȂ;?hwWyC"'L Uw/׮E`<ܩS ˍO*8H6&ՋkKzΟ gltrx&)D|V8GƩUZs2Sg2Q]/a&3j./Eݝ@h]ަgZ~lܛ3nL,SheZ)xl;KK̨Vu͞k_ȍVWh 4 (@P,?5Uwx opRf; cUvLа4:i# Zʪx-4gzzLfX~j +30dAaJe̹ロ;u2ܪ]yX %RJI%ETTaڶd oǣr dG]\j ɝ=\Vca}jyǏ#Yft!Ca'J}bfj"R(X1;pxx( UߵdftLE f7‚K"`C>ŮI]Xٹ)o`@0XTMu3-o؜=91|Wߩ[3=׮nh,..*zPvj C\zr^QԬ^΅nh,,,Ckeg 5WtX~{LLdTp>N:pHߨ Q-ՙVmy)R п`(Fa=z2sD DҚ(tqW!+ )$N`fh7c~ N``bws]cW/k>'ziuz:\Yq~$a>a"R!&NCHAd@Nfþնz(Y0~Of#TK& U 3y,duu7*L(\g$ظuk#j lu?$jm7cl |Vx{l5:8/]un!؃i}˨]?c˾ScKK+F`+jUlW2ď7QD "&ï,c{fohFۿc4z D{M~AF!B;??ώiZpgJX 1Ҩ}L:tmh΁I *c ;I9nۅ StQ(vG}g\vlf;~85;1HZ*hH*6;w{z~U!p}uc!hOn 66]w2`\,N\&Ah7;:rOthOm!} uI-Y+P`u"#V-=HbЁ׻p#8g=| bFpj9K$KjM%kΞ讉mQ $[P;xP6w s I|ɩ,%CYEӻm8T(()P)A6rmQ3xJԩcVZ'$SVL !F$]L^*i`GGV'R\&EGTYp.sY 5*L>,Z[W%Vr[B$Vs܉AT~G=ٖ6m(%},zQA԰Mqm. "K{rhU E*|MgkFpv";fDo棤PN(Y="$xV@ߕJ2JJ*GHjmݛ=B6:HIZ auyy5h8`NL]m@PSW Wi77"(5/X&) V:?2E ~̓/^{wwޱIw63OOnyK}'DwͻO$g PTR) 'qPV9P,b~[GV0T~_{F6ؠ i+B}}xfNY; lUxw؈ԺnϸaXbhXԽuH i9zޒkd4.3Ǎ gg:E{\[eRBkrYR[ZuʀT(ʁ>zMP]Yi6)hqKck5{lA:|l;vJYu( UH~ip%%<Ntt%1Qi&@V+Cfd8K>0*Ң8XGrr$X{zЖ7;#Ʈj,#t=1Ty~7^a}' Kd]:~-QWV41F˗xxZYҍcʆHdgƓ'i6X"obUCFN~IKh2Ɵ FJ'_UH>;SsSS.}$R-߹K$60'˜jS-sJ ʃ<-?$a/ì@u򓟷TVDE0Qo-WABawM=_"X_[K@‰O> :x@dT7esy}t}v819s<};amrBKͯj-5s')dUO>iA5R 1PߋRg{-=$ၷ %VOz5t8V[qZ@iNiX=j;LjqEhGlBdJ1qXmE;S5@ ~̓[8Y(ZFfOC@ ({'cu[Vh({TK&nNrj8JͲBKVۻ~6Dfj Эۆ|)n^|Bkӷ!ʎM"Qvr2|֓Ylp.sbE2(RFΩŬ7jVtkl7U `U=r$VS@YH|~'?+߄u=5+H ZΝ]#Hih%)PYΜɎM6<:"RfdFQm驫VʴMdC&faC'2C+;I/għ%Cѯ5n]x= s=;5)0,\XX8{>{pw v|U*Ow`ALdՈEpm$_ ժ3,X\  %P:|(IZ:D VfGD(D#H5|@ X!Td-Jv$&Bk73:. ׇ!ynDžKL&uB{N"?!cZcc}}g?ϟ8Y}p?lN&?ÐRӍO>:u!fRS91e[ꚜ\?C)!sFϿ@k[…K33>qFm[Ȝ0 toܹYD,)eiA T_npbT+e87u%e!%XIWXUV&"%ćR[D&f,Di9k ʆ,nkjED epy@ 'ׯ ^?D%S"_Gme8 ׾ydՙ`e{ٻ;g'<{fscX^޺{ʈLe` ̓'..\#׳zizZ 썏>ǹA}uzΜ靘0FQ}e^tP9y05aW62{Ϝu9Qsy|z}|֭WX$Je6p쓿m9*c]}[5='NEAkg`u4+o%:OoGQyR4J]'Oz݋TNL)Om$]Iq/N" D43W>GFL 먅IVDǏytRwwbc4s.zZ*d`USd8a0=~tZKйT`7VԨZiŶڟVݾ:67%4zO.LHTIy,Lw))Dft_ g#D56IDy +++E@ J|`R(xp_|萘 gtWj.?яAdvT> ū׻_[ƃ[kɑ4$)b#;1Y|Qh޷lkm~mm5;1GA\wv,OAc •BT[]jJDjʲm4mX^!URsuU.G&&BX.9=S7/,:^S(|/qH&i,?w2HHHHH Ä^bcɀUù?r! KsZ%U?2Tc1;1EZgvZbРis?jڼ' YdN}fU0,Ru:,%-$Rx+㻧NJ6WS4hriYuӴWx3IX~2X@nbJ~ Jl)T,Zṓ(;*};x[-aVEmҮX=XSP#ޫW>?Mj/!sj~[_U¥ `aN]g5t'j(4rNRZ?5ZY.}­͞l4"G{#ʟ>*A]s[k뫟Ȁ*܁A֎1779c'hTkkWkrU٬ݿ(OAPw? dϜS!  ضӜ ̓‰ԉ471Id< j;DΝ3PR"V憁nܹ=\,f&cr8;T~dlBki恜;(MLح-[`V.;l"I 0$ & S;ғH=QRRR%PfKG$fbMQKḍE UeD"h&TpOM"+q#LJ(oh}nll6~Ȃ !z]A5Ԙwwv|jQݺ5e٥m~,icJ*Gi]J+n/*bYlBj<$?4V6 OT~𠿿?;>V/o)TjU" Qvd=$h$D兹ܩS@ T=P07o{L2{Lލ?1#!͍CՂ:??ulˑ! eHcn6Gj5_hP#`P6q(U"6ΞˌI IDATVj0XY)N*0Z81fT.'*wkCɓťuC gβ*+U%,`巿MΝ>?y2{{l`巿͞>ukd~$F޽`v>w-?4DW}0^l8ラ s3dx%GF@ 4gfRI=*)Đ-566*l$(HON$lW˕ۮUJ١a38{ʃ1yʷ~ObHYjCYV!zÇ 7?0S,F}W,Psrt_*ңVJf9lF-p]qc}t0o=~x0փLSRߚͯ$ˎtdO ai,Z*^_C'/U CRll}.C¥ŎoWs;OwR!x~!o~QeAж\YVkszVi EWTvi#P}jGخi-RV(~$̎4,%#|cH Z{n# Gqp=NIb+ı!JGEidwv~14e#劔˔NI Ec3\x9đ ]YZ_V#OlԬTJEezgΩ.lwCjVvjs3KWa\\+"bErɧs'N>;Ot \RahQ&ԧ:DxDZ)7+#?4wլ*!JU)W{0ONo=ybuqp(2""C]U!S(F޹+ٳg/)>K2=fk叿wO~ TpI 56 0~&d߈,)"Zm//\6S'>;cNLe-yL!w)T!eT."K:ɥcW/ 3k NwQ:Db>LdMT{e"`T"[teQ?6g{8>3=CB$H܂D$(6*ZTiyRzWUKUE,ZqE\B# ݙl6=yH|gv3c>c4Y p95Ug6uP;::7eZy-gE"0HIL\ն4V1TYbtV0}@^g6jQ%qF4\z9խmϿJlV+@URp0?<|H咜 54ը F3gMkmVsP0DzUt`yDST?~q*Qs.R!T[*7$;%LK< Qu;sZ-[_HшuH @RE^@GA!X)BPw]l $o +kbP$@ŋ|`?ٚ{٠Z Z!X $[êx7_BKۛ/KHdωW@}R=FΠ7' !FEQ.,aވ6د\ 2K-%pNGn.$fh(&n !1֫/B!k ,e8?)Pw0-/\3$wD`Lu2-@I݃.+W 4-b~ <ɍx@k]C9HSJh9@.p#`HG.G=^\FC;B@ЁB ٬bz!\&dX65ldp_(;xr@᾽H -Zt: t7$$@*C!W̭.^І^a1*lk|Mo> @DavBLBE"_*zC PW L(҆Hqi18]K2!xrb0BBQ "ChfX+d6[/ V;g+i*$ %O7EVܔ|yMlx\?rvL1 T;ܠ\PdrYv^/ڿU+XCH= ),4ԭڒKA{Hyybn.., %~ ~-KX\X;n3X哼zA5 @j6hXvًż+f#46i\3$4PTD .7@\@BPz{: 8Kg׌l\D$tϗ[H͇\Z&ZfV7$YI:X" 9#HW҂jlY{sgp o`ϟ\.]W|h-u/>{[ ̖K9:9%=P}: /Y-z ׭il)34DXJ+@"PNb _Nk2*VxH SvmrHuN?dl=nϜ!|Ԗs<] b` `yO "rUTVB  [ r. ➃z#M!AYϮ7 No[#tm &T\ 2'߇:K #("h)/۷M[H@$zu8MADqԊ0/3Vps sp}< <WfդD"_/a0A1cru_=GD]?t6[ݵڄ{ר߀bR@A BXoΠ$@qWzt" xQ*;wR;*ֲR%BDj"Ğ %Lv<2d4 (϶xΞ} ^(_G!`0Z,w8UZ|.)=-jѲVXr4ƥKb=sF,+n7,<,Y./>za=B/0sa˅ 5m(J…kVOXK߰rM[~~ჂFgzAЪU ]b焛!6Q[E |^CkP*; }Po]ٕӦwft:dKvvѣBG ֭(>x@@մĒs',lb^>M% hz`h @$,[N l8n8f !D'sfc!0|7* D3w)>#H99 %H9e$dAG$Y 2 C1ȑ\1!HPΫ&&XR+0jDLfaV#cBc@WjŒ"A _Dm6* #AP0Pq# `2sKJ9,2 TR8.WNф`YI3]A<Q IN]ދh $  ʪ򽸵z@e Y+zAXJ4Vm+Msi~W?<ܶ/Uʟ=$ /<"mA.s6p$xQWgG4! "t!(#"W,x*-ViIw?!*{p:pŪ~w侭8~״ ~ީnsj8MTHt*,9GJin%.o?{VEѷYՊ1D2:vdY *ߔ{i `b5L_{hFM9APUO7S칑sAՌ;2\AiJ]%`y݀Prb<7ݞRw6)7%832`D5-T_q{F= ][*IL}/FBqueB[L0 ]. "C D>qBjxj #C !9ԼiIIbX"B 2ߐ 4pHdAXYST & u1"""܍k[ CA%4:jX0 @7>DwU$5"dq*~ouu*"pQeζ"CPf9D Adl0P'4hhn@xA@*I-*Ex@!$DTO͓%"k|zUPVc Jxj.ˋSWxJGш u!;v+JGH11`QC'_|L܅0 FtW^t: " H Y.2\SrʳV Ln_0;`< X~}  B !$x&^X> +@Q ! +)qA*N!yX R@DB x`e+P9ȗ rOF j `@E.ey  @㊝! |SްE3 M jHry N'JI}&a ぃ8@"Z~PAr%QU5 ,`0dUE=(;ف<(΅HD `<Ȯ jz:s.spyWFUϤa`Y0 ƃ B$agL<&w0櫩` E%VGqq # ]*Mj>^@4Gw V\z2j8brrke @(  *Wh. 3խaB ݹ ﬗ'*i"c$/+Nۃ1q`089( 3RvAntƘ )F#B$\)M;[ "&J \>2@"g8_pE1n纁P!@PrH<_FxZa0 (TXH`NwBC"!X)WB9(3b (ak"&V aUU W1Ws$H*]֩BdLȜ@ 5?`<\@Hd'Mʜp4D4 By"rsIHӼĝZaӬgzxU@T1D算a0K\22\-ME&bUFB)]`0\!2"*e$Z Pi'MPd5`pxhD6TbA>rVPc!&˄@@*UA@dfb0OK+L)= 21e^I ?$dH?=uT~~>8::Zidӧ!F]vտG)Bn~EN:5k,g܌gϞr6THII8ce0?y$hݻ1թ,]vU::ippp it>>>5ٵkݻKKKFcFbcc֭|عs._R~~~͚5٦`(B1mܸ7ߤ№H$ yfqfjvөS_c͚5qqq.\nJ AoJ:y#G}>.7رcO81bB5j԰X,ǎs)T аaTĉSݻw?.9|g̘Txj6?cIY,VsK,Utŋ{ORRRRZZ1:x`TTT~~xzT#np 4M@ g%0-[lzn,d2l5kԬYS;vT&4ozzaa~gIBDQ[noz kO@}FwM`*' B*ƋT`gΜ$Iz'OLf/ܫWGyDݻwo۶wsso>11!o߾QF)[lQw8ʟVd2!ݜaÆݮ * SKDe ƸESWSYf͖-[z)fڵѣG!͛G-.)((/f(}*pSp7 R4*Iʕ+O8QF6mFY CJJ̙3Շ۷oРAߩS'#b~!mڗý%I8.//OsYgh^?|0-.z>`:T← {jK-ݴ^}֭[333x azѺÇx7YYYO<񄻡Fڵk׮5Ȳܮ]m֫WO9xСfpDDDif 6̚5O¯*SO=p_E߈woĐ!C 04RVVFM۲,) ͚5;}4q/^jdY~'L@?s/^ .|Wn.JLL˲nz ~:}Zojn۶m#2`^C'N?f% Ƹo߾}- TV+[BFrwI(SnݺԩSfyT~^ڑx/_N`acǎDjԨq5/B8p"һw{Uu떓#";wV"Q<׶Ej !!a&iŊ&M>|hl6m !fVRnTP /'fyҥtɊ+xӧU_N(%Vb(r… sݳgeĉu8.I4 M'OI aB jjG+QL=Ξ=Bx˓8emk.B^ejZ,ooo BYOſFߤIXo֭ݺu۷oOjj <855Ӓp*~؎;rH.]k2|}}5J̙c0:fm۶Mg}R_\.;Ǝ;gVևW_}sNǏҥWn֬_$\(IPgٜ%b%/ԴoߞC\BK_!7,[L=*;wW\Ts !㸈ӧO?jٳh4G}ӳgϝ;w*<;q\S[eP[au֢(#iI>}7o~ԩ\w޽k׮ iUw;w*@CkDNPM1 T,bٻwIII'Nn 2B] [o 4gUCHWD\ kYx؄J͚5!nt,ˁ7of3}4PPP@|+<<ٳ:.##eҽBYTueeeQD6J4~xd|4 \w[n+VWT#Q+"< Czz={z}VNU9jy̓ӧO>}Ν;nݚFO7oNMMlBџՠAg}Vuҥ,+.PDQ7n-)Gt)))dR~tS;LgϞ}q+V>|V-Z8;3.QxΝ;Gmзq;:vhyߺucxѣiz- @!l߾tZ[Pk,9B )4^={pɡCZ,k׮mܸуeiyT, pڵ1cBs&N:7R!&..ZW^q){N^Ɯ,M*q!Y,ݙvZXccciBoƹǎ׷N:TP'IfN\\]8鲶Gu/^oUy! S;l6m3xWY5kFE~AAs*ؾ[矧Ouvv&0(f &T ~~~,:W_ꫯJFFFll$IѣG;))))K,QJ.\x!PS[ӧi|¼ybbb-Zt{C@HHf[||tnkH7Cm;wh"tĉo5kv X,#Fm۶vb(5Ik/52lҤIcN /*Ǐݻw=KL4IB,YSOLM6:t ٳF/?;S-СCYjOufZWc|vÆ :tey޽VRje˖-_<,,ҥKc}ZmxLJJ֭[ii^ٽ{+W#ׯw'Qׯe:o;k%Kf̘!I!d2]t`0X'''2D罼̮1$ aTԓ_^__TTd0BBBk2V^M 2eݻ?~|ƍկ_ذaO5kk!&Oo Wƍ'ODQTW5kKWĉJmB 4644tʔ)¸3gn߾=116 A!,,ѣ7nܵkݓN:}lۯ_&MBZnQ222.\_F ?sڵkϝ;WVVӱcGϞ[ʲ,IO652e B2Ur4=B>lY_0a¯~5Wppp߾}JstR˘f)l3ǁ6ѝ2>tXL`ȤN?XRRѣrK~yRSSz{R!3ibaXB[zmyBԀ,~042˖-821L0_v z!.2 T):aÆY{0`0@@/#Pa0 R{Qqa0DRH !T|낐 Y8  $ "jń `܄B!zr\>hS}@r?9Bz'` A឴* Q-qBx̐(fn~.Lt#b^s&T pT_ c~ b!/ybr|+`hQ`w `0`l2k !Xd'%I"P=* q qd1P(w_MaB`0nQeacB`0L0  `0`0 * `BĆ3X3L<ܓpb&A>M$I!d0X܇EQEu:ݽUW֘e< Ν;ƌ󀶠n)**r.,,,|۷ߡNC͞=;44wuiqq%%%wtTxbNNb]W>r͛mۖcnn{^xѹj\rӅXV?־'''і q^^^||?EW^ajyl6!5: fR\\34jhĈ3<:|;4~{W;x`vy1cƌ=:,,lܸq>?VZjʿ먨wy=;iҤ?Οb####""֬Ys DI&߇{1PoԅE͚5WJ;uԸqc&Miwf[6Mqʕ^xa&LhԨQzzzTTTg/RZF#/_ܿg}v_~ehhΝ;c/5fdd __-[h>{~M~'^СիWk>z7!͛72em隴a0rXBͦ)/((~=RjjjAAQ4ׯ_W ~^5yDQ4hО={fΜ9rߙ E'U}7JJJfmԩS9{뭷>{,33VZ;wtni_z=՜4ڵnwڵ5zw!׿R~Сe˖Y,vuEQT N*w2 (?L&Su2<+8[/YBOk B›3-mO-wι(4:݉ViР? :z/[jc֭^xAcpߤIBɓ'ՇB1 9r$""'ر#**eo3fdܸq7xP:yBBB4i2{l҄ 5jc?~v{bbho~ʕtbfŊ _\6۶m{13gΌ8|pܹD5cƌ1_}FK?4֡W;V#Hڴiӹsgz}4wٳn?^.;{ltttv$IRu:]ll۶mҥK```pp0jQQQ}n]vϞ=_rFfTȑ#Oh ڵkGM?mݺudd?nݺ-Zl۶-X訨(///,7nի(#FX, .D13f޼yQF1 33s׮]NyҥtRtMHHv~֯_3x`ѣG;tm۶c&$$>}W^9sfs`rssw'**e8<<:zh=FտQ-Z4rH1OڴiSllq뗑Q lk>̙3111#F2~s333v{Ϟ=]VΊ***ںu_~HHHJJpB=ԅ~^^ޜ9swfp† ԅ6l(..DQT w]PPЮ];:w`Z޽,t$&&=zBi&壴4![w|gϞ=۹s#F4i䥗^z_#ի7uT0a„sZS?3>>>--O>Ǐ8p޽{뗘qîIMMe#C'FݩSۛj3g\rA^yzآEDQ ϟ?_3;vl {޺ukrrr\\5k$&&֫WﯿRN6l؞={}Z3fMjlٲzEEEi ###!!!͛7?sLRRR||<-?zh5! !!A>`Ĉk׮?C.]MTT6{ps} IDAT Dϟ_{5EܹsΝ2d7 8PǏ?~ Tj2e B諯R f 0coooUS,6j!C,^x׮]?pj!11?L۷quU.u̙/}TԸ8ڵkFFƩS3a Ö-[vزe BcڵeY>qsͽvn"sΚ!8))n8vdeڱg޽{w1MFsȐ!2d7eʔ_~%//C:O>jDmhƍ8nժU]tQzg'N=z^FF!9:HBEe:6Pd#<"Mܼysttk!\n-ܺu+!D-Ͼsν2p@áa7oN0!66V4v=++SN9f8b !)|.] ݻ.B Ŕi ؾ}4ӣݻwcb<d29 JNNeٹwOf͚6m(>]3rϠ m7EHH$IJm۶m'NxG}4::zԩ۷o֮]۳gZji 5wnK??p"b֭BgٷBM%%%Μ9{ׯ*6l@i \^NN(aaak6 !1YE>} pܹ/ׯqƵjRV{Cynn|аa_|ÀؠAڵk+"sӦMm۶ $N_ bF6k֬gϞmڴy&L `#;:aB>裢(4$L9ˢ(jժ:j(Al6[AA*;;[F9OttMAAHr`BC'S}^C ʊu֬YÆ l?s=W_yȯp88ʆ  )O=BwѨ^\VV53 ۘNmLBlU1 FsVf___I0jO>$IZ}X,TZv-߻woqqj=|z=z4!d $IeBh-AZΣ>J/"WܶmXm$$%%M<}]v֭6m-v;QA?  MJJww8lǏshZ/^ ۣ9YEQt r*64cv4jO>9tБ#G{=8ggKƾ}j^Kɤ)<$Q ئM3<|r9qY 1BHe:ry{{+W&bԩsPy 8.,,Lqܙ,APFvQwbbbӦMÆ aƍiii:NY|Aлw ի.3i$zA )))$QWLL Ս|||9TiҤI6mJIIYlY\\֭[z�ׯ_?yf|Ϟ=_~ڵ4kJjժfYfa?öm>s&Ic9k\Nʃ$t ػwozz?s/&8/VPOIIyꩧ N=0`0))i 4P[lPvaIZlIKz=:?NGќ[}]P~!AkU :]륦l&Mt]v B ZmٲJ4]tthܺu)"U2{ĈO>?|`` Ƹ_~cƌQqqq,gffoBe߿Sm3_~nwv rJAʕ+%IԸرcy.9s K.VTZ)Ǐ߸q5~ ]? pN/QdBN!ctqV駟t: ={СC5.4i"I$Iw!TZM3#G$L28M{j.\Psʇ~h6ծz Y1Jl Y9,ɚ}^WsذaCM&UtˆJHHp8JlBFF۶mze۶m#(qKy74߯_ԝ;wlGsΝS{q4vΜ9D=zڼys||"q񫯾*iӦ=zt9SN ,ZphN:&۷(9 U3M6N)/DQ7o򩧞r8/\~畔fǎ) H"PaQY,.l%,B)V$@ٵkWiiS& n'$$$NOOW1ooF˗Ǐo0)~M6꙾Й] ͦ}ڶmۿ~W_.X@?P=xq7}#GB͛j6i׮^~ ̮]j62lج,qaa￿}vINJ޽{LLb֭bOKKҥرcX եK֭[%$$\pc|#G:ώM&… eY~f̘qĉSN;Ge/ԸL&SiifԒL˗/4`*xʒmڴɑeYRћyEEEZ*((hѢE·CŒۛL&ͧ={,**$I Ĵnݺ'PsѴ1Ε$_8_ګW=z %3[LLLTTٳgyj,))6mZZZZ˖-fԨQ /{,GB,"Y~O?yY|&;yFᑾPLw2ˌ1p߿q PʟyFYn]|I|rDDD@@@HHȏ?HYb4{_|zDFFݻ7**JٽСC{QVԧ]~]y5k222JKKk֬4gΜ@g! /4iD;*-MniT,E+kAaU՟Qׂ.kuWwѕE\YP@ $WH/Ϝ' mI <<33眙~2rرcrOI&ϩ2L?^wYxҥ$/%322Ək׮馛w-^sz}NN~IxeQ˝ s2Ī<?͕'*~~mkkkHH_qE[s۷{5 |Kf$~SJ {ny'YLH|ҙ 2zR^}Wai (_Dʎ e|m۶r9sb0a•W^+葕+W~Ws<~~dɒ^x9Í{zg{l#e΍[#IҐ}IĜvH@$&:J% ITt0A-OWKsWFQT}ACh7"HT䈀iP5(# _-ѝ[^xvO .kUCl |3f(ihh:\gѭN͓D hEşJ˸Ag_CJKAl߾bݺu$|!$lnj6k`x. ;Kx;`F_v Uk!r."2`Xg  u9+D0l 24&a%A'p>o C?w߹,1u#@kAd((Lz8[Ey ةI@79Ec UY$XT~} ; C>$bT*`0qE Ih7D :i CcL B|-#a̠D$$YikWSvNN9g5(vP{,9(*'"gA/bƛJj5:ưCzraA ǝw(-J)!DLUe(( !]qt/=IJ]1+)T{uz"ecUFEE)G"JU*@@K8ZÔRAZEt xD8YBTMD4B%tU k/E/ķߢ EZ0cAAEAAQAA ŹA+[?볨P_ 2, |UB$ /DӪ)ac AܗhUJ"ʘL" @r&QbzJ A⮐11B$-8#t*HtKT{1N@ٯ₉DZF?xz~>J״iD"Pb :*ڰcAd(=$ب@SPN{4TEF%&PH Q4k .'GIC9dEd$FA qhJ%%R_+'A1&'Jm6JX JTP  LE Q(0 w(&*6  jSh0QQ&PJ?q?EEJ)?eNAh*2@R}@9Sk`=@x_0>^P&IF/A99 @52JBtOAT(OS/dfIkxSA%E4v|>bz: (;55AQA9ǜB$J)*A!T}/֭)yLFr.$.7 r !@B%ڣvy_JRq Y`oY_| ]Zd1$\Adp<ʑ{ a#+SƝ?h H_ͲĈV~=ѭ_`T@uwEOAwʗv'SY2="aDI"sϳ@ A9sH"D@%xl?C) 1Q&wحmm7E" ~,QZAmJl}hpZ6ꣵV%D%;R0&1 %I QSF:֫ws_=ԃy3PdA{ZɆhhl)7ĦF I$]jOu0,f"0z{!p}Pwv?@ 3f%^9#( ~PFDc3׵V A /(C؉1J\ ǝ~wՋ@%"@%?P Pg{)B鷬0#J,yuVo\T$&(?Piz{PxD$Rl&  0؋Kē (Gz!*cLd Kcu^PuQ@" 71toAN@SrJcP֖1ƀUTrH/5@`*6?]{#c yh{{{SSVb4+0雚5mgXׂ ?m}N1FʶjWu>iai5f_D*6dІLը| OE"##ݷGEE]veu" pw+/E9dz)7655FWWWKK 鳴j§fX V)kj" f#+T^戝PFzΘN]˻4 lܸʺ{x &s^g>3[x6Bk; !Gs_Tƒ4$!0`]r$QI#u\Qr^ϪM9KOO?~<~>{#"##Ν{Qyի.]yWGEE%%%P޾|9s:tHwg KNNm6ro]]W\9r^xAVd,;;/|gG;/QF/qI/?>(((33駟WWWO:uǎVZn'O޿SO=ՙ IDAT9o޼x'RSSΝ[^^cAYfmٲ̙t ^]]=eH9;w5k`HHHXdI{{;dhJFNFp0ƸyǺ[Leny uDD~gM9eU%L}K&m]]()Zj͚5|WAA_m2F㣏>fY,;\vmKK˄ {K/]vٲe|hu5!!!++;Xb/*s'\tEAAA֭ꪫ|nc 6l0nܸ'>cz' .|/䒏>h޼yO=ԯkfٳkݴiӜ9sbcc}Zw޽jժ믿߸qf̘}{wٲe?cjjj9sh/xʔ)=fݻ.ݱcDž^ʪU˘Ӊa#LSS(B.A0os"0TZ s5_H ~IEy=i!(Wv-y!::NV{]w4޽z(!!O?~;RWWg0oXbEQQQWWmݶ`箻2+V?/$bqqdԩSe˖x㍟~)b2~>99ٽmmmr|'>3=F)..޲e믿~]w^kXy=(--m{III鯿oinf?-\rɯ[^q> 2vرc<\[xz˦LnݺM2|椢x )ӡG 2  B2E;tˊ"i؀u/3fhʟ~7xꫯ昳lٲZ3$$DnDĉkYv̙3wmgyWttu]' 6̛7+ gƌ{?[~RE`=s`QBpxq?.oYj=55_|}ԩ-ƍAI-tvv8q9ydƏB *1Js(ĕOE'"CJQy=ک :uQ/PVV gr:?YsEBtvvrܻp… @~~>(N4? g5=%Km A@ p =W_}U\\lZyEQ B$!N='?*77W.wAI-?SttE]4{+Vwyh2dɞb wɂH~|b "rtvѣG@}}}LL#<^p8xEHǏZ=C⦍Pwd\\\on׿Bxԫe$IDhjjwq%>>Kw_?S*7ǎ 83f ަMo /\&xW\vGy x< <_Db+7f/<ঃg2Mv^K3g_^Ϟ=Q|}(լY>cpܥ#]vKV[eh|EqE3gn>^P&ػw7πd^}U;w,0&{7=#U3,YD>ϊ+R 2EdV&p]|>OU:uXz̽dŊ7tӓO>Ο??!!vTpp>cǎ={ȱ7~?t?ߗ$)55~޲eKJJQdz7f^WVVzM6qrg}^(//ǍgZ?#K4~]v\rӦMrh̘1]w'x讻2e=16z={?S?z$x\`m?\}ռ3"cMeAˋneAP> ''ǟO?+)))(( 0&8t׿J:N*F{2U1V^^~>3|:!4|?K ,)>|ψTr-lIJJ:r 7GmeP皤dggx|Fy뭷3W^z5dff:tHukvp饗cܸqի}g}'hqxE}gr7lذtR\z饛7o^`322x5ve*-r-.#sAc+K7;mZ>Dd@W{gKNs?#_3LDBeDzbSs(_1]p ^}v8QQQl6[VoS/Z<ҢR%??ȧ755y>d0T*(M#> r aZݷ^(9 ¨l%R. qi^wqaTD|F5Dqj?f _)Ån^0m6pG9DOE 1;76n1" ViN +|7n}AQvVMKcdW7t؁ >^ BKf5=M)AJ@l1-ii}>طQ jzd-FoCJ.:/ 2<AEAAPTAAEAAQAAAEAAQAAAEAAQAAPTAEA4T O= p2ws_=j޿`^t^wi4|5= p }~4AlOgX&D΢"|4z ,&&!>[w4 ZTJ! $eOfwgE[Uc_ bc NvJ 0gYO@$|"I$rR hO6bX,`Zb}Z^ojj"k,ffZmPPQgA Z[[###G鲫R~`aZ4?evyUWmٲJ/$JYASgdڭ֭wp8"##WZޱl#"##͛"x9s愇gff˾{+'LHHx6m޽^{M̙+ (;o۷O>[.44;v믿|W_}5,,o~饗>XPP7L0d2͝;W>k   xoL&eA;o<~np8~xrr?,//g K4 .ykooX,)))￿qƫʣtw766'&&ʕ+ox`ɒ%ʔz/f> mmmݵk״i`ǎSLzwyV뮻dj3'7os=ct:1?{ --m!|jѢE[nmnnS7n ۴iӣ> ܟÇ[|\-2a„z]FټsN^92G'BPT6lP\?EFF?w}=jU9ov!YnJ]]z_~yew{\W]u7^zi3<׿7|#-ܲ{>۷?|oqWsk+{=ϐ.oݺuŋc_rb>Os)ԋ/(k۷nݺdɒټyK/bt/N |}rw:c]/--ES Eٓn%т DEE=s>DZgz^9ȑ#7o憆nM3gѤ`6e 1s̹k^nmܸqJGc*c<Π馛כL矏_f;s!x`tϳf͒-++ 7FwQ'=mkk$IYL W_-Y?:u%\]˗G%&&>7nܸpŋ/^Xt8*U>!2TrT6o>#JT/.sTl>g}4o޼z cޮ ꫯ.N<999***/CBBxpdRX7nrB|'$ We,X_mذ{oqÆ ˗/߱c/vx7Zw_Uwdk97Ee@׮?HX̞={۶m^xr;7ADD466z,T>l?keN$*f̘O믿"##333ׯ_?\}<3f_W?m߉=b( tW^yeΝUUU˖-[ouܹC[2LO?4K.1և2rn~`G/}=x/M7Qb +>Tѣ-Zhܹ/駟=W_+VxI233w]QQ/?裋/0a p mmm6+[nV>?c޼yr_z˖-)))-sV6o|ȑ{^xx39qaa.o$IP{B-Z7r.\(oʴiӾ_oָqz~fΜ ߲ZR'\uU?)cWWһ/L 9[ . ވ$1fw*j-0`|9a"2%_a"K^ή2pv ҧ/;S/&$$c~ά/?GvXosp8Z[[%hnn6 GCCC߯EP=b:::rykjjܲe!/@eFDŞgHRQR\)O>CO#_g"%/((W_}GpFmjEp?'yюVMQ>>--Mb6GKeۭVW!gE"w555f 8+xƘ#(`6N/0̈́ۋST 纨r7Nz:B9Ϭn=*%L5mۦ=b:%%tRJZ[[SRR {*++-V5III.E6ʢ3gjhh4i|lsssyyyggJHKK򶵵vtt1hS\\lZǎɮcǬV*111>_x`Vk~~ȑ#NgpppffV---mhh[222gdd?~ h42ʫN՚L;OEj 1=Fp.'u0$8p=..h4߿%>>d2ڵK~~ZZZg2.RgA###;VPP?1lN .PUU(Zvĉ=zjΘ1ccc FFq:#FȐi999MMMrXP]'O #Fdgg744fuQQj9s&7qqqѣGy{|эyyyկ9" c(8=ԔѢ(VVV3R^4553 n(6<Nppfkjjdjll;vlcccYYYUUȑ#5 3#Mu:ٳ{EHHHP5kkkcJhL&S]]?奔yFJV3׃0ƔqH IRLL( *555g1ƟOǏ{,􄐆4z*@q> Ξ={v={l6 Rnj866jGfggki4>ozL gu1Er/>IDQ}z~~ݻRծ$%%C(#Gͭ#Fyȑ~7L.cƉ'۷bp)Zttqd=rB.EP%%%GSAPΧG?h4WWWBU*<.Un\FFrxc¸q ]n:F3mڴ> p¥oOKKkhh(((L8Qy̘1:Rbbbmmm^^F5kV_Š+N3G1fw*j-0`L 1jligTD-ӒCpVSC`zrhcNSII܂M=@93CVt8|1DU|ުΟ'D5zXۢ,#=2l ݇ Q9bL(buTTKo{*"J`:]r>$ǜ{KcZ?ϊ2p9rz{fxz r."׮wH,0ƺKO;N@9|S/ls2D2Y@Ti:vw$}zN0=]%6\a2DDB!ԷlDD"#q %~_a= (*{06$0NNW$Ӽ 綾A!ay؆^>J   \TDA'}/" ;Q!b^t?8CAdJzCގ   (*    (*    (*y3Ar]TtgXΨGp#NW'gA 8* `ـW>km[v2` L #  QT=}B% \|L@ d珿mǻ HNA!穰;hh QQ)q;cBCMvVPQA. F\Mʷ!*X 8 95mV/A3+( Ԃ[GXϮ!1z C0!6&yzrCNk+62!T[S!PA` $JYHCl*7(2T*ײ\x\S;<|\ -$f^/oikk+,,lmm`!YvƘEs%K@_@$"D5ғ`B<'(!B* A  nssKАcٴZMFáGw8p <<\}ioo/**;v|"9j(Z,vI CjjjPPu1՚QPP&BLL 7eeeMMMYjkk+))INN sJ}}}uulV)))ʽ'NE1888--Mٜta>TmJAFNi٠GTRuQ$vdLrwR*++WјJ)=p 555r⚚z{䱉ՕmZf],)++K$&&;v BCC[ZZmnn uJyyynnn@@@zzzTTTyy}YYYqqqv}׮]rHWWWss޽{5MDD``j4ܓcaaa<3NeEjjjOMMu:;wlmm{sss233#""JJJrss@фg6 X޽[҂r`0uryF])U@] \|G<(U$ILa&k]rB;/gTWWGEEֽhIKKb:c sPPXXh45MTTTCC1JuĉDEd2TN>^Z4MaaarrNC }tQ#HcPhB|=Ӟi" :@HǏnHpBtuuuvvrvO52r_4p5JTTc_j;7A8vر3f8u3(U!gFy`ppfcbb%:;;v,0Jjkk@HHH"QYQQtFߖ/fϞ- 0 .NTTyK||HҝE/TVVzPZC)% [[JiWWꐐFTWWc5 111---QQQ.Y^^εDӂn}r)!!;+uuu xlftqmoo?pjJ (.nDdd;ŃufY$W줔*]w ]@J}DB#+(cLEV[[K)ݽ{d744[ykSnOАcYǏ 1cx<}}C233|]viǃW^]&88X i yI,IRRRBBBA?v옏1zh }yɪ 4* 7> 93H@$! IgjR/EQ/Q+**GjBKW$Qed2}oJIIITTRrzgf2j7W^c+,,ePs'%%8c9S5Ⱥib H"'vMj'IIIIOO'X𨨨ze1&wcTÇc(G f,Iq6 Ż:VL&c{Qñu֊ WNw:ތω|PrK^^޶mxmTF1 "ގFAzE&_@ J/J' -j4p8⺺x׈2,331gϞvZYYY\\`eXa(ѡ0p7'N(++kooEI,FnX<-L:>.k޽95j(wnmmlvmjjG (3;|7rHñNzرL^pּJB\!XVl6=z4;;۷!v@A8ͼD"Eܠ\E>4]T JKKǎ+IQ~F6mZAAΝ;y@lĈSEGGWWW+~1L>,>hQQK=ztYY<}+----&3nܸ#GcM&رcy1Oϻ( ăFYXX?&IYo\G?et\p_.g`̘1tǏ/((طoch4N8q߾}---X[[hf͚cƌteeeEEE\fOTzAzv)b )oQ~tuugslR10\c93UY^^^^^-?Jb9}g*ϲ؈ >mc H?Y`^' P:"otOI#}u/0 0]rI9<<*6 HDQD`@SO$??N\DvnWTT455v PT#QV (i2@08O$ $g!t9W$VM2"rfEF$( $jI_|1>B-b q>GIAd0̉&.">?* ȰF?_ވ 2E_;]KOAr AEAAQAAAEAAQAAPTAEAr&KxSAS! ># 9s. õA\'EAm"WA+* {WAAaH޼fEN'UNXd ` Ad8 Vf)>T ;9,ؿO.5@EABob* 0@$1@hht'h"FAcN@އsj:ڬv)e`8 Adzgͣ{  ;H:F:}the-eGђc~Ed''c('ryQ4V4OyoޛyCHB;@nt7zKݍB vWߪ[0BtQPNTB#>` ) L&F"ү+++###M1uٻw゙rey{{{/)H,)\ ˡ0UB0:p (H$fffJ IDATӒs\OOOgghB ,BPܱ熞qܗ^ǏC{ァ J;f{EIT5\ o/.B:w:/^t 9qGGf67277 Iɴ_EyR[Ix RaT)EVWWY={,|ooo>rT kU#R! ð,Wc2L&ӁEFb!o!?uQA4MF|Ryc\,٬,Vh4"BP$9sb*d{{Fe2mVvNEq~~>Nh6{{{Z4-43\eYG_8s8 èb"d2utt8=aaaassS$^FQR4??ObҽL&aYtuu"3g4ryjj;@ ֶFϝ;ݽP(tN0J4j h^P ?O]/wa+JLfkkyGb[(n߾],龩T*+;bT*B ;wXs8333u IH2===(޺u+N_'''vXZZo1lpooc:IR:.VRQIVں:66F9W׀鬪wnllx<>F355V۶D"vrљXVkx'l6Z2ie<_7}4{RX,R)|tΝ; ׷o6@@-//+ᱱ1qOOF###@###P0 3>>ӹFFFT*o.J^E# B2yS-//r\Bvx[n4ҸoӓdBzUەV{%vd2EQ׫JKKF$iffMj'Otuu>L&BUo߾Ms^[<+53АCy{)!Ǫr۠\&Rlmm)EXL&U h*$IUEۈUA1Ν[V|eOLL,--;vaZgxxXqYRtuo}>'O<+ztl6Ϸ4BYt*I(UNs0U5,5C:kyy9:Nu6NY7bL&< +*}"4T]!WZl5BlD"reYQD m&b6W6J%YeY Jv(X,VsYBwh4nll Fqݹ9:,F=<ϳ,st:i,nŠBf3u_ɤ)@564mXXFKKK-VqF"Phaa*p4@LWtttBGqwiX6hUխL%YuS7"RX3{ 욌y4{uXPy6 ͤlV/hurY;JS{@uYZ0-,,4;p b855Ԇf|>o2].N|SSS$mnn*`:յUi|Ŋ+WH,p`S_t$8qmiM %y>Bȝ;w>|7U2 իW*s'{#Z;K3;u5REɛ*WeQdR,..6Xj_`0ةbQ<-ϵuQ՟KR]7w/xs*z>QX 'Qx^$]WTO!TĪH=zU|'jOɲLNm:Z,BeJ|!$'| iΫf>SZ(51nmmEST,Cj\Rr1 ʤEZS# (*tP(Dk^/!DY5)uq8tH}JBU]|xztNXZZ R)޻wOǏ}dJ:;ķoNr9Hܾ}{rr6Twu*-+/ |^=y/r9WiP'憿Kݧw{Kkk+W'&&ht===z'ONLLSsĉJ[[ZՂס!^B5LW\{o^p ZzSfffʖgώR):hܣn1Y]\\| SN)g>|p||b4 V]'H5[HT?%sp#-ICɄUgwezsZU[Sy~#\Hv}*e.1>edq8kܤ6ycjK 'aeٽt%+_EqU k_ ,Wda( "HFA{+1<\H੐{5P@@Q!|vS dK³W8{L0"u( [.*!̀1e%IFAx_^o5<(PVT(^g5\ã)SHI*a)M} $ * * * Cff_{ATvEjxHuD -mVg\53hg6~ޯ πIF~`ݦp#$"s  2R[~)BdLͣ(!kk5D ؁M!Dެl[:}׿z% Bk~:L?ldҔ2D$Ifk( nb 1KxʘI$DDDA@T0Hn1H%Ldط"7oBHF$~ *sUd < R| *UnkU * ^+0(oJENDz;DE\.k{{(gMA !(ϿQ~xW(Jr2h4%^9 b%$L?F$< t^48AdH,aTSyi\.W& >d25 Jemm-!L&SggNf*jkkS8Af["HTbYfuttՓ'O / ayy\.> d9 noo,KU1ƙLf}}];::v Z8H$HhZ[[=Ob12͕J% K4HJ~?$iqqX,Ҕbh4l6D\.nW Ajǎeycc6V,Kӝ:Necc# 4 |6^*-Noll(}j6{ZN0&zMA܏]2iK$blӧO߾}{bbڵk % BHKK !deeeuuٳuX Ą$IǏW%pxcccxxyq(tVX,.,,^zUY[[ZrYP4r wp8XbP'ueuu5vq"'Nh0}J>|ryaaammڵkʼX:6 Fqkk+BstY(...˗/kZ L>|ARQdYvqqjrJ`[[,dsPA$_(666 "*KKKTJ_|墢BOzZb777DOO4`T*)MS[i`ڵkʮՅzbxM ܛ_?[*k%P?yƨae=Xƈ#Z:t?d2JX A@TP(J211+W֭[>qFb4z},BmS<\.:B~&fwnnnaaAr9߯hZB_ GFFqnʻᆱiYnݺ5;;vdÇZ4Ǐ Ѭfξ>T<uX,˗/Ӫd2ccc/_Yzz+۷aWR7X,.--i4+WcǎՍSr%NwZt:=>>~WUTir^W`Ǜj8o֏X.j$ %D$տq_CeL# `,c",k9j pR(\ZZB )Zќ8qB/IR&_EQrOEz{{{{{mmm$eYuxVBۇԁǃ1V288H!|WWBh}}n !CCC8ND{JQOnYw=Rz3LT[h4wk͟ *KKKn8tz޺RJRźk4EnTq UӪ#sנځـC29YŷybK7yJUk`a5Moo/#ndQ,r 8vX,K&d2K.q#u-+Į[We֕J*Ri+o_Vt W1 ,?w?qF̊cZ6.CCCUYѨz;-DF|ٍ I/^|;V[[z}ATW4fU:R{<xiiiuuunnNYwPխ=uuW;V udV۸vB@aVMG02Faj~aa˘V.mބ0&{ښQ)!T11 1nmmM$Xl6[(r,w\*Wl8(0;=p.n޼9::)ȲjH™OʈK3 0L4 Orؠ ef 6l6ۮ b D0#bVX!,a$#VŒgy'O?;;1nƶ6ʪM&0ҦBp-ewZ@U,r8 IDATEc_ti8'OR)5ɬ0 Ӽ:]6==gȲѣ7o*T*lkkk tC%IQT*naV/Dt.Y?~_$PeyyyYwaa!6V611TZwwwu@_HjIK%#1'f[__OX[[KRj}:sL4MRNmDuf>J|v}mmM9uR1 IY8p$/E"` b#X}QpRJ>㏡ǿjF׮]]m dY.2;x=~h2 cP6@rdzW|/(7oTsJӱX>V)ƺ'i}1\ܑ`o(/,})ݻwm6`(J[[[ǝ9s<6m{P7se٫WFx<9 Qܳ  DQD8%-_s_@Tʬ3HzFD`f[>"wˈ}'Qؓ<}:~"&#,מU=Yklo"LH>#bg\NxL ^8/Oy3Gi1FT zê+]=$|e[ND"|>d1Qh:daA("!rӼpY± pc3z3 *{vY0q8"d<ϲ,ٌk]0 q!dYn1 òaD`߆[4(٣9<7jBE1H d.p# * * * *  *  *"*+<V8$fAL( x #bi0A?݂UZQ)JÕ@0!HƘٿctCA(9|C CC `0 Wf^੠,&.# ~_f=U.RB 𶋊Y!Iwo# H8*s'Hƈ C9?T^?(&bS\.  lC6 { BD"!˲6رcY2D"===:"233x"ve ^o2b<ϻ\.=BgϾp22)ƒNwE`0x_Oy B$9vX.D8|(J%e m65 !c,!\.ӯ(fY%•YVe>uԛ׉imkT*%Fy9 éTjhh+?qTU84 x`AN@T@ l6200022K.nԗ|s6sNwwPW'{nm,˃FQ ް=}劕fpcQƙ<@=-vi^( BeYכJ*T*h4Z(krKrH$LR 25jKPSEڔb1ZJР\D"D2Lhh4Jf/ED"AK=jbqQy׶(JʲMDhm4! 1Ȃ tZ!LFQ:oO}uO:"L (RU& %2<׊Ff,].#BMOOollhZq\vݧOFRk׮L&s΅ t:,ORz\.swW5{jwFd26-Ȳښ㓓K`xwhdnnX,L F#22$I4  _} ,,{e@%ING}}}JDqm}Б'N,// @;;qDjKRZ& ~ cC7LΝS\ I\B]`0 qgϞc]3xwzl6cBcǎ4Dյ9::rKQјH$rJ B>ovv6+I8j4K{G{キSN S+eYE2@ׯ_Wנ\$MNNbxΝG?P(8*NlԺ)Gv-,,tV(R)~k_c&ݽ{w~~ \&Q~vvv~~ZX=8naaӴMp PLfիJ[AZp766N||e/TvUӅ .XVZE`nb &b\taG}ߟ[,SN)~W˥ b1׋d2Lf``@ Jeo޼qܗ+RѣJѱKtYjiN* Z!^?00aYV`r1%"Nld2-,,3sijL&SKKZVƾi]QZ?P9MVv%T=ubz;:JJ~VK݈BK#ƘN888x?㶶6QᲪLNs1UPEAs^ɗl#<ӕWf2P(bb9wN'BRdYQp>7lRpM<kڪt:;LevIt,;::ZP٩\f㸹9Q[[[5U,n{ii)NxrZQ{yVlh6D<ommGh4T]lX$ЙlV5P:RU.騹61ƕJe{Cq\0eҽG{oƾNO3z-anxLP6^^wvvH$hFgff0Va*Uޝeڕ2YףWFJ-Bk:$moozQ\.Z,zd>Qe矫bX___,SfEQ|y C^ ʞK mooGT*bU fJB ԅ^JGFF\b4$i_mw )7v,Kb}FQB˲nn/ ]]]===tK8">Ǥq6 7B¼4]Ν;uGԋO$NS B,+mmmJH cNk?Tؠ\lx\Y\ePhvrd-wHWj4M1ؠyFm=Z2jqՊC777=0鴝ץvw *-N+fDDUtHM}&PhkkK41NS_ZZeYFl~qKK|Q$IRfq$IZYY#ԪT*U<k"H$kzJԨJ<==8씁W\.qce\.///#դHl^SYZZRpT;{x_E';wÇݣ IR28.D=z>X,<<_u7[ZZRnh\p޽{}e9lٛx}Zɀ,ˉDBñ6::j6_~nJWPbnn.gyڻ"8kiii)Ad2U+XVj1Vɓ'bRwEQE6<EGjW(+R|>dnd2%I]:*l$hYt9xQT‡ãG U(ˬ)BattTx|&r0# } 0 B3LՎGIQ]-addvpW,'&&XP3@r""{G >EQਸ)eE` /Q/na׋Tm!t >-:W%X^^^YY$Oh4JJ2>>Mex<^xp( 'qmmm`1?wøU.]bb|B. Y,o|00=|QaYV޻wOL&sL&t:Rww(jgΜdrqqݻW^ &''xGG'D"Y`aa! \@ 0L<_ZZsו߾}[v#̌FQT 8;; ;h~ߍI: z ]:o~ئMH=3d@৯b nîbBB6moovww[Vu%YGzjkkd*X6Z,lXN:wM@0<Z+dj,,3 Z@$CHˆ}+ƿk#(!3%;SٵģyA^K f-IHYs|]v8e !Nr: BP2v^Ȳ<11/_r6UvjUZkZe{Tv+.}|OKѻ?{ńpD+oL,Wֈ0Fe?UfBUrh4Z*W|ĉbwJt:KMd!GKUUEŪkj@CuA B?No!5h-eAz35* HDAQ_.N4EMq!DLY5 IDAT"auz0 QPѯ~eǏlooh+/e#)'/L&˘%AHoĝSܹiيp:bllleK2bE#JjC<iժj777'''[ZZJ=xp8,T*Wŧ|h4߿d2f6;`|bjy1ݑQGDXXbLpNn= (Q7$XLźAPZ˗/?~xqq՛LK.Y,ҥKP(BX|hnwyѣGh4,t:ܹH$Η.]bX c֦j9?{R0 ô]Ls`;Bz<`D?A%ݳ'.㣫(!G04xvc`J>8C ,˲lnG]w:B$I`w%4ŋySP4-,L-MoJBƘ8Fò,>w݃@!0,agY 0 ˲,2-Q؇Â1%"5aX zP_X@Tvג0ƘB9M|X'q̦V57? *  *    * * * * *  *  *    * *Ҏ}mnp j4 Gbq)6*{&G *A wl٣qdJgwnpЬRkZ "y_)DWU *¨~jzm agBW+V GEs@1f&ԏ01~㪘Ҿ9sK\VFBya-0CՆ0z&*IRy& "~ B0jM,#;$~|^H. *"!TAh|=-\V)s(Bk$ɒ^Ay nf5/-azl`1BBbVZ%9p8yjiÄ8Ȥa%9/bFv#, jA',{Î 2ADj7DV"a1<EA +`}wNb5 B<Ϝ/CDD]2~]g1u,A(z~X~!٨#DX]."B㙟; jAPI5'B9#`e1bu.ڿ'~30$᣷*L wo-%4 AX䅎_^b D _#PG0B"B[M'2O~(*, uX̌4%K%X6l@&!gBHJJs{Ү-M 7mâ% $mZ kml%˲oi4F#X,"Ϝm;g0|u2 yȋ7GvЖ_ux_=s|~?=Ɣ@C+tC8͋m#V,dG(_[m"EdpnC顦Ả/y%B~ů?NӇ]nxݹj}E~zשDBI?\,@Ol牞#tM=pWzƉ?ss_| >" rM(UI=]ѾluEHW> nݰ* 7)łaґ´rd&h_lu~e쭄Y,2$.7l r;>`Z8jxdPˁ8'v]瘑o<1@!  ŵE<q#ј5ujmu3CjieD4?Co~ɫsL:š Iː"]Gȟ"$Ld۰|2Z",$Ikg+V[or%D$|?ɵ5AJyTyW8q WL{طlY2D_^a;^mIӗʎ|c۱ĥ*Q &՜yl9|w?}!n6Db8Dc^V [Oe'_~"2fF"TI1gPQm$<$&^ nZl;] k^I RD>]ls#Jx 8Fbfub!2d%X?5}/t5Set)1LIq2C! U{$DFz4)5;g ozex!"I',XIZ&UpU\ +=2:xh(׿8Dwʱ}E0kbmo;47H"fYZkݶWV:z&Ms_@uc5$oYtÚ%/#GHqEpO_{jlE̦+>iep$|[jwnBY=OF(Q^W}a7NdaDx]ş'3]տɫSIUk#qçzI^oI6DBLBV-ɷW]Z[ Tѷ?~ye;p7/z趫.,dF~oMMx7-Ctۆl!ԝH}S>s}`൯g?/8ԗ\~XZw DCC[~qٰ$ A_L^;i|/~Ovzq#T|ں?V"6}DpRԮ#6Å|T4V9G ?S 0硒k\ MYH>b}Dh}<;M[%:=d]V7Gu l$1̆%IJMh>>qfM|Aoy*`%]D!L8]~>b{#U`w+DHXAֲ<5QSSX0x,'OG=\0z䏽:?|BeML}awekwTӆN>,f/kMSfd4T* rǬ'99ǟ l(\U3B*P@B*P@B*@B*@B@87DdBŲ˲ΦvQY)Gy~ vvJrLux;v8z5\x\D%9`Z@r뢽?JVgJ,R?ψT'sJʃ̬ԌDJ"oR2%ѷ}RjsG8K$yifwBST&*N&J|]=I̴= y$%&:Hu6LP٤oONl/s(S}}tٝYJ1*NKr5M;}rlC%qfFcy)PF9YF)oQkzS϶RQ^00w j0D˴He会\d.YhҞ` 6ih+FRlFToޙYd %SDʂl戮 : ;O~s *k'(KlT\TD8HHBfzc,{ښ#|  Y L&9r Ȱ23'[ڧҎzQƹz$ \+3ݻ%s d%#-3:g)D}j'eY0/reDQnOH܄xd>Ą++:2̷1VY",کeFU̮ps=v5Tvi1eiCp~reOe0˾ZtS1Ӧg<})cO[qکצ`ɾfwsp㴹Bv"?(eCvb`FekSM+slʬd60rl(ᯩzeWJPglf\/0fZ U*yh87"VsP 9Td#8x, <8x<1 B*P B*P B*P@B*P8Wd.5#a0[Rb]P Pw1?xO5 IrO )$pt|'Bw~O%?_JNig<@XHʜJwS?bsVo YRc *C6ξRa"5MLl|"GO,#"8iZ1tٲY!b"_2tHem-J$NZ+m:'ҏ}xoXtӮ)` olښޡHT,Z^++>tɺuMagy^d6TxqIA3Y.]R}@sWŖIC{ퟟ & Yv}hcqq㣟>!x$SkWP4,H}YMj_,n(+6hW_Y1Fk&\tkѕ)+1WF3s_p…HDs߯ }x4'Ŷ}Lڊ%6+RC%9A3l;Cb΁{#xLxANI>'$ !@ vGf%dCY 4Kx&} 5Xg7۶bSS\I6l9;$fI4MeX&"aGv 2s{Qzc#vSF3JFR2=XLے'΂@r 0kYՅ9~Sݽq)%Um+odT_*!QL!YR\ Hh$oq]aKoX0Hб˚\r݆R:=0ֆ%D݊P4M~_*CP[_`y^ޢ‚3C%Ź9ñXxL \ȄNYkk/` 1i;:,mjX,X}oj3^˖bbQBTg;r,4IDATv5]+Zwδ_0_c((qʂƘg:ز(醋rEY\ܾ\B,X nIqu]5E*[Z-e޵FDCy:.!_6B9Lm#ab&I7⺗V"c 3XzbQa%D6׬l+)4^a!@O,.r%4 T\!Wo]P_\@<=KJ+JsC-|Ǿ?{}/ٶ("KL}IQqAA=# (#$E\^W Ǣ{[1pԺ%!˺aE޻yS)L}Y.DzW/̵5Ş7]WԒ]}E]Ƙwtt -{EeyK7\l[`8i+*C6.. \ 2r b!7uH9yqeŦKVr͒ڢ"德;#^qL-]jIIA6z{_=,D'z| d_?Q8C68(7DoDR!se"&qbe/xs5D-=}w\vC}DDE퇏ĉ-ʼn_*)zvof9)+J(!mmxi܍5/sTT 岼5 mo83&VDt֮XWG5 %Cg"1a&#pIinnMYED=;&Db܋vvwDņIXmkm1u%UE'ڇF0 1Ǻz&?$!a:;Bj4<`xK!1wδ3Sua0ƾزttzWްeio]D±a&ǶTB/:llR8(S \) *斮D xr3>,GJ5]Dm^>v|byh ~.B>ߪJ%I!+5-BtkK2%jJȘ#8^j0Z3B' r_Mq]Mj7I2SQ7 Z3S? 9vUq҆,[KRq+ᶁV`|a0?/F/c恑aE",$n<.B6sQ0{$rpq0eueMCC}ZDb,*p$Ȥ&D(`;L2zBp,ND~GHYd8b])E̥ؔKk؎aeq$I'>gdO_mAA}yiSoi(+#G;:9˘KkkJrG6C%.Ǐ 11%o FDӮab/±'J!hϲ#xfqvKkk/]h|&"r]o۬K_sъ%9֐wδa  T`"ʰyXvx[Ѯٓs%j!.b"2>m/$dYTk_@-.dILQVG;: XV4TwKKeǻ/(W&mfeH[^)rͥ5;{=N0$gI$T 1dY$&\15&LXRmCGzHxW )"!|$ox]) + W-u 31pn$N嘔jՕ&K>"/0ׯGO P}E.'ٍݰ^QEd[&acʂs`<7o[::Ȳ†bzLNu,VDW7|a*CdWx!D&Cu]NH)ÊI*C8qƊdq~A3 k&bM eeȩ~V`bRGYm"Ұ¸qH[y&J .P_gxuA VliXZ +,9ݑ؎ǔm$ #cjs>zٺ!\ʳut򊊥EuϼF{. Fc!KPp%*g~uS]ꢂHWׯ_\f뙦 )M"LFf˩Mu+K G90':߷74uu{շVD'#Δ"E_9t-Zxp4G1>=9uj}KUWG?q~hX6BR,EPJذQdFwzzzވZ FKOxhgֶׁj0ho-;yQmm>9F]e?wUe!&杣P~P^X` *M'ٲk3"vI\}g<ˊ7leY8lYie 11?A$}AڶڒW63x:ѷڿyy}QN1|DYD,lYc3Y|{j+ C@S{zɶYi>7i ,1q07R32mDuMJhҚI;KؗEu rr-Ž##dY̆ [6[hWIh"ZXRLEb ^ )ma0wVR*0 +w z{L|rBgZL2v+)5jtطK13K҆E&eٔ y')ܞ~,0k)&ݝ7 7M_Ozdh3{d'򗿼_|E/Q^}YqDFewuh4>o׮]_z% *k:~f)EeeٶO SO vm^{?|{{;0ƻ;???tرc>hWWFҺۢ( /,_|ݺuH;wJyy'?Ɇx裇F TGH$gs?iӦp8f^Ze}߲eK$DzDZp_9244K=ZUUncc}Ќ6oO}*E" ۶mw B`FO BPTTM f*oSVV6LVWWMPٶ㏧QeÄ|%eɍ#K,QJuvv =z;b;dxxxYti&"fF&xG|>EիW?÷z+Z;7pyI^^ˉȶmOcǎ|3wh4z5?-[8@y1yNxDHDoZ?c_[ZZ;ʕ+>x<'x@ @Dׯ3|u׭_O<ˠ|ᇇRƘ/}K_WJKK>Be֟"р_xfv]o?<ՑGovu_-YOSffx<^[[s=e vp֯_ E5\}k֬^z m쭷Zn]AAֺa֭ x\W\q>UVy}햽gy&??ŊZkuUU7<88بv穧BC_n馛oYD,VL+y?=poe+8:{աeY\SPPp=466z{bD ?O}P8rȚ5k1nv"555?Dk׮իW[%"ZkD)O~GF4ݵkobŊP(fkk+ hT*0oڴɻG}Yinnޱcn5 ͛7][dmo֦M`0o|WG#GMLARIENDB`ntfy-2.11.0/docs/static/img/android-screenshot-macrodroid-overview.png000066400000000000000000002630271462047176100260560ustar00rootroot00000000000000PNG  IHDR? pHYs  tIME B IDATxwEǟgf7G"wX(vQ,QPQQQ"TaCAC齗+$3&M.(|?|B.!C:Zo$c;P \$}RJ:2-X #J2]Qr,UΘU-[dY ʖE[ ߮eӛ;J̘GR)LNuؾ}PrRBn,]*qʍ_Ι4G^-Ҹ@@"BB2ϐq.G$,?mDJ]+Ytµ ndߛw۸zHR  !\9`H fyT,_Fؘ c=-Dݡ,o2̣ -ț9aU+pSNWL>V-Qh3/빧]#^tG> ;]d[  aS7<$Aw88sbT4,H`KϾ} 2-szW(*Nv]qqq.;4!`kLS~#x2=Yץf$l1d@ao|PL'Y`}oTf 7vq̚/~X<U,<σGfs[1!9eK喘>wȇTP F7ߖ\O:OꉓŊ6U9-X~srZ3XΊ_ךBM DU*_ήB+W;v=ggZY!}˗zU7^{Kr6mϋ錣ѽb@8ɘ0zpOeAtHV>t=/'zttƭ;sF"˺6ܡTɒi?kG")ix۷i~cq܁2;.~y!$Q%W.lRR7B [)-Ӈb %*gHD$];y{pϭomTqQMvRpߛ5a MU [L[uxD`7b\֓.X鰧'|80C0|YFдl[w_8z2)Z5o(t/c)3yIծwM/-qc/ 95!-TyjXyw]wu5֟y{u{er _ʍ׶JtXEiZؼsuz}ؘFizbB;ƹ`jDajG<7MaLOLdn|N??UJS9qu"p9(9w/ʔI6bq/,^&e# >oƸ+M=7)1t W5WU<[KVT܇u>vאGdzܞ:pW:؃w>E~jYBiߋo-]RB sk0M(!oLz@qǞQ £4~b9yԊKQL#' Pӝ;wX>`35y>aS ĥ+-^!d7kTg=0VFP)ϋ#&}vmSv̡y?*j޴ g [Zj_qw|ޠ~{sF |󌌬۶gz̛;cD2|XJxCd*լO΋斴{s}ݯXa:^b؀)QhDB=tб^3Ww#ƊzԢA5{D ">π>w]nJU`)w?5W^˽4ӺEU7랛,,Rk;4G J*٦y= 9ׯ١K/y&3 i@y[iU诰*ڶU~M85+[} o8zɃGRK)Slא?_$4T\4 uyn_XjY?0U:mS>xZ3g{pUf$Qzz5Xgt]k~ޢl2>#ԬvaT"Ѻ_X-SZe-O猒SbŸZ4%kT6 ГI rYJb@6sѸ7^XGuhw5]\KL*1|GҳLD`^ݦE׳lߛ6PrډSY)lbݻfnǫX|UeƵ4RwDt;znvcl8;zp7]V4#-ԶUaVP>밆+0ϛ+(ex2&d) [@!~π'톫j[{ 6!qڍ_;tiƭ{FMh;#In 4+׺e㖍j G7,>66X|bkBb:3G(Q9GT([vޫN v=%Ji"H~}]o~܅@WFF>SfsW?.BYaOude1D)DRX\;w e˖`DWF#] rwzw7?.Frέ!p$VliH _V q.u) y.(fJQs#--3j#KRx=^OIq=~6!)$FB`Сk=޼}>Ƚ ۵|/ٙ#dvJJ&LO͖.]5^w>'RO!XW*k.ESX "L]vsG7S5?Q矬VԠv=6m=x\|N!Y2|lc؀{{Xɘ0jpO}H}wnʥG~!j:1ߝPz509>;煫@sƵ7w,S2EFGOf2/?調-\rD^`)bTQ@9JTl-Dbdfy KKF0@AW,۸^u˟#LS?p鮽@[y Gbb/Г%x)Ss|ߗ{@\oEAIþ9SRY 2HNN!C7mۗϒd1L}_dK~x w!=~KȈqdbN1[5ZlrRU{t_hPU&~qm=|dFfP":>ѬQ]o^ DqSR38 ]:4f{u_< Txl">rT\1bD}`T߶k)07#pǼ0#'҂ 4Mcd@&K@L{kl$ 4HN*@ؾ# ֔'3rk+`㊆uzEz{kFu.ɖ(tcŪ7tl8h۲-K*ԫU2dԫ]#5 X"H*}8+W񪖞SeW._Uz5U~fIfQr(}kUֈ99%DET\~̈AJoxpΣ/7ި?.Xˬã &n73=5u,1/k@:>p"P㚶jfhӲI023:]weİ v#=5#&pWS2nJ5*FuCu*7suJӸN7_ۚ0UD(b}1(u@wtQU={c񲵚c|Όnvgk'[d %е\Ҕy/}shjo!4[lCPԽ|mF>mƷƾ觏\^rђcGt}:rM#[ԲYsznWG\1TA5N˗5w]nR{ů[562ُ6]u++" >sOGyL![ܷ]N}ծY\jCIӽqN<ć3}eKE3r쇄,L)p o+T#O{gbi{E]:wZ^S.D ym7T,tǽ1UZܾ7(H6%* OIy} ;6{4g?:V!9cJqE:}M,Uc]V ! يD&u\ 8'c1 '3t'9~٭?!DOM:sW8yƜϘrpB*]OJpkpNe"!4@ Ò]rH$"D~CR]X(lPJ&'=ߠ{$!>~bl_*أ l˿4 $,w /EʡM[a's4_VŠ\SP"@`z6E [QBz}Oh0ei 9pB%&w8ݽ+/p8ݼy¨dZ]wX'wO=}/jUZ?j܇~ޮׯSmi-U,kazyE VJ ku]]Ny-_mC~kڪDZU+~7p/-C:@`Zvy%}HHVJ0m//cϜΐ>sw ߤa (>:Y I+3?xM:DESP_tzM>W #W30eʔM. +/}y ˔׶oY<>$AMՓֻtUK {a6]iow4*XGZ^v#II%\l17|yG&Y;`tO(WL"*\{l޾ pkҤ2ٰAظ~*i[غUrG)li%>ک* Y7foGÔQ1 {ĩ={i٤Uܝ5}!g/[V_Īlr^[JXSzѲU~ a'˕*ָ3hM}g/Nyi`%&+S6޳eˆW4ݲq,Qt|Byϭ(S*t+ȡq/MSC,_&)puw׺y%%Nw?/Iu󺥓|M`Ώ5-KlY] D񸠟dV4RCs#{f6ST_zzשZ|fz HvjuleM?|׎\Bay-1򔜔ٴ7K*W.Wv+?xJB\ncM%'.26i* Z 9v8Z<>!%Q uϑ~^wG]^qZnMjSVDس#(G_~h1 QGN@&iҶKWɼc V]ӗ?4nDxoSӼ(;&׶UkTI<# %FVRBTQᯰ뮁Cǎխ_ݺgƝҩKg& ;k׾4lXwkްnuz}Œ_._:nojBk֠UwZym_Xo\냞 }ՋJѝkJp+"es5lZOOZCoغGmY@5r>-$ؑ=ESh%/I\w̬]v60 "9i_WX:k|˟$qü0 IDAT:8]ຓ " |Řc'i7u*_ dկWuǁ}!i1i3=cc=a4M9":6ta sh7'K <ԼA^ҧGy yi ֯uN?(!\eKZNjQ.h ĿV{m̅֝Uk7Kz{;m֠nSRra)7 ;=\SZ%ǻx/5DNbή݇uƂ`gV Z)33Zk)m;pzfWn߶Q|{_?бSXgdW V Ne ,À`\:mƥ=u,[;y4ߐkڸ3Ǐh+yk\D%18=2!7KMe;@BVNNȔD^OV&ͦ}a?x{jU  s.7(B&lZ4!~ɩ~oG_8HRU0unWIѹ^ry/ m7]uMۦwlߟ[g(Uv"̂K?zGJBy)"k6vd1$&NGF#Drz[nw I=*c( 7| z@QU+MJ;r,5\$y.ڂ%}/X!EIfi׶ZC-\;LwxbwV˦~5DXJTJs1Oz>hi 4j١@Դ~^BRE,ˁ\4kFS^5א 2"Ҝߗ_RJM+DM߷@\)WlYz)R 8R|ң2:\w84q9RJ))0|YOFfMȑ7s|iP^ }ůȃ]֫kJwLLRի8l% Ԁѡ5ê-{=^8G ZVZx|>[ D^H-T\>#5Vg> y0ady.ڛLueO>|k7s$qOA ZXЗ]gp$um3֫]rI2Nx7(ۘ0Y("2#i}]ݮ_n9O5}ڌYcW!bA{<8 vHL4 MrDkj#1.Q#fD;.ΨmJ7Bšyh\ a.O-4BҐi:hK((L^ |v S0錴|cq𑓇|81kB`}.ݐ[wW(X8蹧Ƽ3<8o kW(w?ZU8`֮ߴxukIkʔ;^е=<L̹ mv<ɬ;HL~Ó' <q'T,ToǏDC?iN?o!2V7=]:$k8ܰiYŏ#ȱ""-[V$9c?\{tD""cu/<|$4]]c|Xe5M O%%I232`8T["uʿl~Λ8Ǻvj zn}QxiMv~(k=}n(< c጗O `  ӔB0^8Õ.Ih~۝9(H#̚'z͂aۚGQL2 @rdíi}ȫP h&8Xg/Sni!;YS~TR&jH kSh'P8\ C2U\ʕP]H3αSiujT=xةfʫod\v8ȷP |Z|#Ydʕ*5'7m1}%*5Պ?}gu7=SC.ǜ_Qi.r\12 LB鏚bQ ͘;P`+«W ZP )¾>Ԫۢa6|.iߑ&TڹGjJX*wP$ [uie3'E'aoNb3we=)|ah(d}F~.Vv-ȃǔ3 ra29 \*NvLJ}:KVЩ-t//2@uLp[Oܞؑ""l c[]r-[QF1\2 wAP49<*dK`FD#VԨ׹2|O_\ BhޞNL[,L6ǷX PΈqA7yٸ|f?[-( BBP(( BBP(JT BDEP(JT BDEP( %* BPP( %* BP(QQ( BP(QQ( BP(( BBP(( BDEP(JT BDEP(JT BPP(JTs|$g[6@=`va$ %LjKy L B}uz+`剈Ddd$ ѓ$.Ĥ5ybhshEncpUR(.90ǟ3N 2szcxaGn#D%<sL@P)Bq):+\"~@U)?j܇VmD]w N#~]del׭YI( ~B4 LQ&9>_'j`B0+H"+ovvD )BݎHT*ʒOxoFHF,Y=l4 KHDIA-?xWyH"ǎfy}J[KEAJJc&k݆Qס]xꫮضc}Y LKv׵ou <5 4g?/!Y3੻o5%L8 J ;vIl* df[p8dKtݡ9Al\9n{D&F(P"[}>魗9zbq+m>_+D@t}@n,lʖ@ XVrW€]?&NMC#O{CgTs]3Y ;ΕB?B!8H"wW}NpiZbCN=23W2=ݾg/6lځD[>Υh=@!!$Hw4gffDMBqf?A`zIoR,1[ " נnuOJ.wBMa`Un yi!Um6-gp~6>v8' HøCόرapَbPU+N|㹑> ðFk (`9*|l)9 EB0 \P\aCG}Ic^N*~sX#;;gu`cvalz!(WBksIed?ʲ3v#@"8zX7wꎽGHj['A}zduAHnvb۰Z#5mi'@Br /K#O=7$9F ~jIWoόرH dr\$Ξ g+Wx kWxU/!vl` @@duh8!; !@lPb2F\N$pbɖR%H)LY`'z2WJy׍tރG<\iz^)ZMvK7\{er?s( nПqfXsP0GioĎGB7 ":e砮;ܱ U#Љޞ<θX nKU{y+طo7=ԩC`Hy˼^K/E`K߳"e#jQNťB2$~\VBJRYڈҰRD Rng $#osPn|B9F78DaM6"oyu)Z) $BJKM0$ K':q-=G;zHZ{aĥ+72My@ǝ7_V>~cb%cg҆M˔N.\7Qw<4g*k|P z,Nγ Iָ]+W(=oɀL0jI+)N&1@U+~k .kgeڶjЦUCGyEB@b?oc8"@5]ZZ7kd};5e{^Oȗ!|rmV<K&&SR _3C^q;j/Qp&A0}|OMKcSojcg9W<+.x`Dp#1KQzvokM7 {9=qˈ7r8m܋V~vc{?uv8-Q HyKvm[6kӲY2_k=*G&Y2F4W'p9ȪYL;J9@+h!cI??uAZ2Lxs(}=|B#3 [v"@ytjo}8;~ik۹ :_࿰BQ(~z3&6 cۅ->)Yb+\2}KW3ι"9jݺo쭉:\1UTB.c/ZJK)șb {S a qK]8hU#0<7ow#.X =jRYZZ2^Dflp!ծQ5 [Cg`L_6]ש]{T(ӄ{76e@F/j>_4kٹs~_,K,V#)찺Ρ:@@EME%|/5x%am/{Gs@plU0TQ)̚OŹ۴j:lW}{ Xu8z4G3fK S7={NGˍlvg{Nt8]Vn3.>RxwHL4GPsn'5{4Qa 7lq}Ks@ӝ闿&F""yXnWlZߖkY意y*̆?^TlDg{z 1yDb jW]gq*,ٞ"4>>61/!.]DzVx7 ~!O`܁`>I-^tެЕR=C^{w!1=۽pP~Prp8~A;@XlatO#}2 آo ?6ٺChEa9 . $V?DoMVl~V=7rI#t8];vRGE%q~ G&oո֘W2Fs`r'.E̷dr!KT$+govb6vpM&;sϞիɟWw~;%= HezP@$4ݘ{X %W @̄6}0NΓG(.h86Pvq4.7 8ς׻lKEtYm0pX5wkF!}$7B΁(B/4R90)dXp{\–  IDAT%!ncm,1q*X46bU̠ʰųݓǓ1oOFnMWZW`o{c)yS([\Bp:F/'^뙽!r\mBJvKH [UGQCT7+f @P(–Jd?R( BS5Iqզh ť *C Qqc%UBqIJ/E=UE6VHy ť,*98[%Jy %(* BPP( %* BP(QQ( BP(QQ( BP(( BBP(( BDEP(Emr>Wsy>׺\׆%Pp"R O?C3ʔlyt2ƀ3{l*WQAAR! ugH=D\Ź (*H,QwoRܡs_ &I!~ߦw$j$( Eٺ@xĦwr^)-f **DLJI~Ʌ8׮Rs RC&( 5'XD~&*@b Bٟ1K$T* Bq1# bX`g} Sd;+Qj0{m ># P(2m:HBs1W 'agP11BH`Sb8?r4 "3Ա1[%Xs[4ҙ v) !i$kSz` $!$% F% G {/?0 BqbɹG=CdEP(.Q1ԩ}5KZ5RP(.qa δϥNP(opBP(cЬII5zYP(.-QA:Ya3Y*P(%_ aXgT+ Eyy!JY _ ՄJB(" eg $` %Η* E y(Ad,.EqR* (&rȞϩhgdI_"%>(QX;%}RfYzB8|w i֭n&tNBv"ﯷjmA~42<ګnG<˖_,BPEӷY|lMr'ՋpAh$1 0M3Ǻca}#/AYI9c:-'*+uA gY{*] Z7hm6&cZG= .bf}H閆\XhG`a׊tВΓD`Yg(?QΠZFP_Itļ88{4Tl(:BH$$k@$#HDF;HcD K ĬC A #Ɓ1" ad;L|9Nٝ.m (j"jK%vMb"4XbAMş)v(*m) ,eewvv{6XdAI<#3w=ܙ'BH^LS+6 &&D" pHr(ᏑNu_uPoI*AM<\m>S(AuG%JZ2[gj__o?QVj/]j XZӗ5v\f@NyR]YMcf=)^Й▱zUh@"XVNyd[ |yaJPwp_•G8kZ w:HCoK?vi"%pw/LLSPi暑:@I CJÇyx1.*zqkZ:_Zt(!6bA5KuE|U*F">bĐ{~8  /_嫯V pŕ/ؙf HѥdۺYК!}f^rv VѓSk k&Bkz\}uM 4)mf\pq tTY@ u,S4;[o)!FAL){M:%@Ƌ6z*+$bDE t_A]u;2:~L G@HF CbknE#`|-~0Zf6ӳ'eܪYkP[/,c㍁q'YO÷ duoR&8tl}(߀{ ~swF )$1qk.,\ ҹ/Q5ץL*:_wߞ+M0Jε.XSܦŐ#ڝ{>Zs5FJ/IX+z$pu Y[XgΟz* cwV֒w}sg5nZDd]Fq!ALiϕW( ֎EFBaUWI$Ux/=TX"-PߘoYW]J'+%iId=wV%%_P@.Pܳ3G^;DСԭv}ɤa{y]1Ṿ+N2#O }j1h7d+-PHfM|9ysxJű/n*.\8`!!D ! ;PP-IBBHH !PS9(z߻rXl#,hKP!'Bv'X,0 )jvlxf++@3 `m%xm(mm*Hbwto3F9ϐ!FXvŊ9o- J+…ClgQbT}7zx'R񙼶m~PrVC  4Fՠ.% 9U[5rsN hw%%ΙA3IX@ʈ9YLٰ}ݻw36cyqUG] 7؅ 93A@*zJ!o5!eˤ=KP;0CHEDѷ/k1E3tWFm&]dW/\:8 ~n⤜|dvŅ HSwTa (ǣ#LVS" VVb:)ANvXI=OK@[ !EY!aԳW0Khui񘩵G)R_kւzFS;a`fZS… ߕ:&$M2,M_UJٶje>myˣZv8)-Y17z+G )GGLCCiňٶDM)m!{oyזҤڰ3i9'K ZUn] 3$dĞ ,mJ)f( ̀AB""CH)ɐ$v!b[1WjFFUo3NM铛*Ͷ]pqؐJSyA55[ei:!/Xi Bx 0rۑK8YԀ"HD>4v I (T@9Q\8 Ii5"q+nIFJgi-c)! nc,\xx1JBCo#пR Ih]R;.\ 0HR:^%:n Cf̶|03P)c+vtNt5cKGRh]iEުvy!(-܀ZvӃ UAAluuaO^kTNd 4wkx%fo%!]́C 6߯m2 7ܴWW_h{x/8=T`hx|Y#GW,k:Cq I% $4kpq p"!1738!H)Hɭ[e@ƞ:-qie>~3ϨdJ%> i'٬蓌(㩧eBْDЪz?!^=^r{A7`oDzSet %|5'5MPv\:u[ΝpW﮷5L'GHJDyulesb` l&N!+I>HY=_p=oZ,H ~aꊊ͏>"vΝ\vy#t.\H,MPRsLp$mV  yWhheˎ^'j'm0B`e,[&2 {l5RdbϺu&Ҫ2Z{uU+=̨5hdbYС`۱C.J*e6W:&! ѵ6L{Xv_ 8a,՗]UG2-6pݐW^?qwGU鎐eq-\35O< ݰ~muOz^~ "- &hӦ5~bY#sg":?v2U)7 #m'XZQ-گd-Y"urud-ğS=qg欻̾a㗷y؇ZN?u\3TIkX];"WBk9r"=tg B $L5!PTܳΆmo}mOuzHJh-FVς Dd\H넉a`褓읋gko3S hOʪw Cyw-X(hehejb Իp}T%g:ȵ?K ` mK24QJNPL4Nl#'#u`@(\–l15SnB weʩNV(e#9ofW*g H镆2Uhv[~f>ѯ/ƶmFm/Z3q9G[9SI5T&&&' $X\w#}pEe 0Ra0 BQǃN$ l#'; zd-71.ߤd E180Ah0$2IFj J9mKh_KƲdYYgjcBs8ip X@Ajm2w}>λrۅو Y z)im%,TT[G !P'h!<@w+ڭtDDŗbz0BUU/R]n[Qo9-3Hz i)#De7KƺutZ!ZȊ!Dzۜ9AC&UЇvapTPӣWWhMy2$kuD`q'M uEȲ6Da=f^q'=zK/m~tv91nKmZH& fʼ  LnCw {퍊%KKwt'pbh䝇(bE _&SoP̼hϢEOs-ӎ(.Ѓ]nM/>#G!'WaO1evƜ-J =P fQe_ƛ;\rY[~8Un.+{bLUu_~q1 D.=Q~?A}aYgջwu(VZ& $޴.ǭZӧVҳ[Wc Ģ0=O݅ÃT&M{4!rn#Ft)lFz]4۩˟*?ӶV[d0IAR2=S@2i@JIN YPߎN;rxǡ&lM ׭7ޘ7yJIAK7="2H@Ia@H#Q̝8wcEJہ4p(9ݳΝ8 v>wF/Tsgo=zñ?xoUSK`b沋jVqzg]dسg↝;]ٻW V~{afpM$8!D7{lTU%"`ĜU[o1oqc0 h /1 FC~zWȰXqxWRmpٳOs(5{h"DND̪"ZXhNsƑGZ#zto[ر}Vt|,bGriD Q8󙭰 bk-L:[ lLe&3QȲ4s!$R/ViOˉo-.sΠꀸ4vEyhlӔډ77 U7&Q*__3'7^R"ʚNbN)ّDu<Ơ !|R`%8d)NX߬3c 6ܞk=!֋OlN7HF"\TR6LixEM ,SLC4}&Qif+32Pцl @d8>&59T~'%Q<$2p\8ĥ<̙23`I QKEb^IEXWq&BO6\(֮]nʟr <^4d?3P ،hVvs{\u5U' (<ucwyK$ LY:i-vIrү'fh!i 'EP|aJt.fpqI5+WI'7NiB5+޶mѴi%<yjwO).OΤI;, PtDǭG @2K(%\d<,93ys<$Y [d-l2,MqD&2 4ZKtZ)FR.R֍@#[GWdXC`ީ7+<'b3͒[1޸9Hp[f16 'sUX:}*%N#mZ^PKS]p%z%wRP޴nd"Wa2lRCG }'3GU^7e>hXfpoS5UШ ԋT1R*mTG&ש비L}tnJ5k=o~es"S鷓>>Q\8d8PB,:0S S)=3N#0=67so7țv&<~0UɂÊ5P}={s҉qH Fv@J8oojP[/U68OTRU˴7h]'E%P=ih5sTR>$BnPgJ7gk1]WxcCnE %z}lRx}՟~U*-KJZU|ꁸ6֬i/ R>4r1;&T\+ŅR!&Z߉Cih eD`I.p=C]- n%Ͱ -TJ,NFߟ3@Tz:lr7+貉  }y#RYIAiGZg_}ExzfpEE 7Ҫ.yHbq ʾ!* 'V`6!T,̔dbbm6hIHS#[ľt5[(~͋QE t8{+Y\H7t.%OM`&lFޠbix"%_i>ߺ%jd*ɏ?cY!{{Udf9"A6IJd_w1` zHt٫mG-m)04(6N i4!Iw 5r5OjU2jo!PKvIg$F+t5+JK0s|_r D> `zпlƱ/{e Xf AS[Qf6M6ܤEԗh/ˣ5f=V]3%_W GMo 4歷Fƨ_۬fvf1|fj$5u$ax< &f/<}%|}>>xP;YX>K&,U>5fNެjC`ܵlc-}-}kNOДn| G\*DNB,gd3QCHY{pR_FgKѵ HHܙy9ʆq[BS>z6`C {v 2Ȫ2 1g; R%qjfo2,&8Ѐd )]u "&t}^ApL^OaڶfdDVlm)߷[/ݫ(ĵ P(FKzcE'N_0XDE-KB8Yݔ/ LLLG?~ްS:su&8O T*vj#UED-wZMgn37 r2 b$5[:1n$1@X83tⳂA`ل '%YhfpM$fĀLM=v+. ~iDaG QQ.=?K|sq#aӧL_jIdK3kY#n99Ud| J=&pMc0BQs`ԨMEFy[VDGzSk"Q'Q Y˺_Ckϙmy aCR})i='y1roehޛR4ӯ;p85n9q!эkf#o&,޹uU\d Y|Ib@D0r SYY2Y]hі{Ha{hĽ# YSSj/&)N@"^D;wP%JOz@+*0v퐗4q~bx..6&h*4PtBZY6Gm ʄd~ D 3xS0(;uҥe۵Y[H},Hee:=9WD"Qh*1OqVvMMPc\Ri'JpY)NC!$.*Z~5yǟ~׮Ǝ5gNc{)͛dStHKx떰ex hVD;^8sz.b0C=o]أYJu鏑K唽?T?7Ɔs5*&I5MiMVUlezq(nT;~kSp-lCf?nd;K>tJ2EC H`ܾ3xKr._巿 L^jo~[5op|۞St<7H.@֕W?y?:K DBEQc纙(~:{)[٧uui.-]J^5A{7L0g1"?˥Me@8pU4W_07jB,^NCBg+/.'ЭKa4.!ĥݯ'Ġ9dL&8e"O$t;}!/@LѣQ)vRx4/4iryaY*ƲLZM=SAb#:"󤓙$)=n vq  (S 4t^'dĈjf:C$1,:CLچضf0 "8y8QL) 8:e+DNC똵QAx%APa`:j[!#*m+ei-KƎP`Dq*`V]'33kx"C4VR.E 7|)~ؓ ]Z8E"'6yǶU+kgH)M?G^sHz{Ɇի=B/Y9fkFD?[,΀ahw&y *#}na8D|7>̄D"~$(ڻ IDAT[akoW5BEEfig;c(E#|%#sHWD2js`r-[ѣ1w͟JiY뿱ד *bK{$IЮ&[zW[~ukVR7r|jeWu*B }Wkv1c믇:([IgZ˦!am&OU}'Mbk'Wee;V[odVG%v:dkdžٳyrJAi&Lx %H"=N ӁLFZ+9bHFhFQ":͚) ۲CB`+Ů7^?@ʪ* fŽ5!0rh P[WͯfOÏR f'X;0U,!v8JΈcuǎt™V:y&RV.]w+Y&^b5fϠ˖a:S8IY {R&HhH&i@{hwz^uox뎫Һ݄I"`8N!YI8`64,_3zn14Q"PJ-%hfN8OЅk6̚^LTx ^Hժ6 tfi0@9{K>W_[puu-oH =.'O{;>]vyD =~qk4[3˖O==VZ;_ri]EgO#!) P3yRWGjj6).g??ү̟rjZ1pNt+*43ACH  #-V,y&hkr5r_o4I h y*)_{&(v0& -p\'zɸ`8 z2ߚ5l'.0kkk. ivw$');/`xSbIW8@,{ihYN cw@:?߉븾/TŐ!H4d\eAS0ٺeV))֧/&3%dQMW_ ^=8~ɱes P7Ƕ:jw̉UZ4Vy 'BQ|>nn-9ш!ǍD/Luk⊅ :GuZ|/Lʉ(kϻow(}ԚSdKmg5&$]9~b姟Ƶ4$_|Ѯ9cM'N,||2m?4{h0Id :wFPz[kW ֙W_}]a33WVn{лId9Y?rt9[EŶg ;79YY^axy݇ nDa7?H$4'[M?+_:4OǏGuu"'*8 ߴ~%Wq.aJEfF-ԌiC>gu7W$3ZM;e9g(eL3φȦ'}v :e3  !:bD፳guEqO}'E3/sO7'T9|xb%~q 1:7ߔrĐ*y8a" 6̹4^(;a% c+H} W'L,X ۶1Ž7%gJ`#r#Ő}) BL)oŒJwOG`tL[QvM`=|5Kg\*TOL RۖDb\`X%t(!"2bcEo6`(CH+*£&s@25y.ASs'Nյ}a$ܳnt\nBƴ<,Ry Ar棎 m)q]aĤ+[)brw5֜>ٲ5sؘފފ l*;r_'rF 7Wfg#& ҮH۟Xt'/s饹9 R*cJv4,uƌůcV&kVS;$e8ԟ̿ uHQ[1jiK5k 5*I.yj;p z9 caQŽrrM̴/%mۨKa’JsUԥΗ&Ž;Դ%Tv3*P$ފ6nqGl4&! [Mq۶ƁqV,/d␘M[* lV ,'nj NRnnV|^ZS붭qH}+X `DX\0Mtio2X Ex\ysI5h%H9dAD'3Q&>uiؑۛkZ@1$' ={O%F (YSG|Szw]Dz2H"F(^SG|Ȉty$A%iXi"gq[yo :r gB%)?'kRAJmo_}믫dCIhi[æN_z{5mRG-;z\Pq9z}9xjc: M 5is>7oN`{{thy!˞S熗=HeEvcC$ޒ% {njvعrte >s$u63MwSEW~yKW?p2qAG0+Z*4O* P*c͍c6PVt-Fe˚g͊5.t:(TA0{L^6gsHgҤbM37<|i3nh7(?*7?qD^PĢEشqS68"9Ke_+f3ʫՠ!;| [ڽ>,c}7"wo K1\F8[~5gX;R5yI/^KX_&hUĠ\+Ri{yVjѢSN-m>ǭ;Sgxٴy9d,t`eWG wE*D;oseμYR>TuN`^9;WTO85j:)ZL {[L֮qׯkubŠ9dDp:ߦ-U8ôGb{CW{+U ?ryWο@!Q9ivݖ;npŕw7l+"N>r̂ŋJm_9y>gFS~i',j^$>j4홧ڏVᩧÕS^U[/}on$0~Y NY̅?@Ib4 e^E,Yb8o>aJYtqŁ;7@L`f~0_doZL"3f:mɹs)lfҐ0`7v]γwݵ?>ӟ'k39)( r#]{IeCo}_9LhiYgg9d!$АС[V&QpC7;1 *=7o UC"J.\#;^zy Y4lM.YKf0$ 9EbCgGtFHU \g5_(5@dï~a֬k ?syr4̜W)E"mݻr^^sTj̙nCYqO>.ļ́'p=+D3[uaW]5sW#!4:9o޺_4LbXu͗J Adٸ|Ĕ \UpPl}>xvkySwS$x Lٸa~ !@:nRBӷoq&)Wa/oɮ[rI:ϣaG뼹+pnk[{w5@mIMWW `}ϖ^9P6Ia-ο?^ Iyf$'%*U! z^9@z-:č֯t&k_UVT*j2 ^Tq8YI_G}%M9aD-kV/B&ʊlsSf渫!zڈPn;"2 XpU+Od($I[Kvx r8D 7bBsP3kք,'u)!ט-C^,qaD; @f\1-K{" U8*L$`H>T 4׺zmLFBFWt`ͶY]AiӾgs\h$"MU>}}#mYM))1_|,>M? \VH&RN1Ն* M4Fx ϶^SA)flJyU8+&W=A.CT-cL*b J^ELs Gr رr"]rQJ/R@tV/' )`*r^#@{_Y^ 42,>] AHXx} in\e˙ ?l%Dz_ /ZK›6qqN{TY=j߮·L|靯u%)6k -gF{և|/Z`ٸw*تC:[0Cګ#P7OVǷvyhŁO*ξHqT>P"yF3zW8gH mBuKΕ^f \ԭD HgJN&R=?5B<n(꺄n{R彭QBT{:nH]|` [QT]u;$Kw]=ݝ,SX}PD8#PWO$X @u؂X['&5*iCU.59P2ta+/Kgj e;YH'骦-X G b"sFNK;Iq*F +:~ TI҆eQ/W6'E˚,,,,K 2iQF1aba %ʾIHqPYqGABxOdt)$)#$B(,q IDATj]D@ZXXXX!'UDLL ӱovy*,u{wAUzXcbaaaQTSh1=rY1QY] fBQ㜓Npr <k؇|R0';B!2RiWĩˌzfVJ)P6y\[C F[XXXB-uu/ ^"O08n8Ԏvxu56A'5FYXXXBѹ(BQaF}  4.*1FkyɄөh~x:Ȁ`ZXXXX @YB"ܾ^Dpu@M;RQ-yN-M/7ǬY4ȰUV,,,,vD3j#&LUP$nP{Fمb؈ T_k}<6Zš _)v\rbE+.jTɈ 9(0uF\ gWtr}C9 ;6b7 pFhl`؇0iӭ?o^‚;Iӷ8}}pad-,,,q: [#{ӣ^=eO.caaaaqAHu.=D*$g\baaaqCh{;' C>X}yGu}ݾn_?h^/lDfS)@p@@a@~=ڣ=ڣ=ǂ ,۝ݱz O\v{{򆦌6.hhxPCG֜9Ne||ELP¥G4#ljZ_>on˪(9ȏò=ڣ=!q&%?qt/4jHȄfIIyxk_ x،G CBj?i1:6Jbfv,RfH%#2O^^ٛtF҉{$⤛Rwô1u "uǃ+v2{baaa/Z}/ߑaµ I&F16| p5yYXXX d?p]=m1""y Kך:mW/.X{RtW/.hZwSb1Fʽgv;9ض|v}k[Vtc"/by5xj-nΈc @O%`!_ƄQN^ 8ax,vV6&@QMJypTTε!1W\A3'ƈT " eaaaagT(_bw;T,,,,,,XXXXXXRbaaaaaIea4-,,z7f/l2nS>lz kڿ@BBb(ɿK6¢S@æ4OOWNvj?_}?תwxBbΧ;GNNy<|[oN#t`J{o|0⎽'ߡcaaaуɩ$`nrXW=;;%o qo#"B0QH6Xh!h8oaaa#a!"ԁT&ÈBvGsRLj:ۊ-/5"\`obр2^[3*ȭi,,,zL'a@ Z%k}nU'sm;*ݺ=kvEjߒ >qp'Kl qCDT* $Τ18,5%)-,,z 9!(Cz>wQ< ڈJ^6!ېbًf@||bMrI~0SB"@c)b`(71=YoiЁYG*J;&HܭaG& uo#%sPM}p,>^40@hESdSEi-l~af|۴R=%kYJwo%#""}}o20ɣv_dY4#фlV~b iLI6I:A`@HBDjۚ)[vRgI4QKQSF$)լLfHDb'M%&` YXJ(ML7fcT'R:}xQbOT!M]20xASNz~F? ~!('r>3#xt}rf%o\V.zkLzgh߿XvNC8g|e,t~pſ?yMg =kVߞ_Lm&?fp0] F+V5 =a@Ǝx&eU7g6>r̿8fwد^z^U8g{Z]1kN J&|tL7?/ -,, )R>QJB93WlE\9,K? q֘ FKNkpY 8a S'_SϜp wY xUSىp%7 f-~xeZXGK) hNs+4 tJVƻf^)s_^Oj܅_qd9k܀V+wOFz!ck| ƀH,ڴssFLJb1X1z?iKinrb7>\!v.Enke{p#zdMn|ag:Iχ9ahp߼q9]IG AG)௯mT$fg.#V@W&>w0ԋHGik|a!}C-9AG@ @֖V #00}xWNjV~ҙ~q(D O*#.D(2e1f(<t?x ){h"qɏ, hR/MKh`T}oF}d hJro[ҹLIAP(\*3J)MV.ܸuư5FoaK74' D-\@34~մcR)Z ־{jaEn @@9vn+1  )!D J '|ܵa/KB1A)67AB>AoAyOaR4p&co<ӏ)eW #n{U U!$ٓұ)hU? DPК$"AObHWͥ J5N_z/Td⑓F\> yG~o\iU8(LH `!g]B iez\|Ǜ;9^,QehG)t5S_@d#ClcRhl9g\J \w[JnaI}B#k«P)+숖tD' 6Bڀ o<;w~޺L$J&g/4™qXƏ'|ss˿4X!! :)@^iCCj%' 猺5P~uSguQ ^UW@ceZ(lcxl%vo ? 7=0&ԐGԆbhsx̼vԗ:d魆Mbrm.)fJʜ0Y,l}'κjѪ&vWi<'\]}ZX4({E|XX4Aˏ/Jg.= e"~vU`=beZra:Fwըݰfr#O,gon8WNwf%#>5}!c%3 |Pιk\ya##^8;Uɦo}xͭ"e^)2$qtj7XVƈkPVM88!\ePw_vܴ!^m|$"y{Sps-*/zxsd?>㋷>^ 'o7^0z(Ng!$\0~ȹGM-pTāEkR*k/2dbMt nlvVCG|^޷)dL`sZHgqدϨ<%Aȸ' jפ)jM KW1ikM8ej0O>wāb $?ԔYyk0,,EUCg.8/J,߳F_}X mnp:Q6Ru^?0(v#ܷMoJpe=Xýke`l]A[]"BlR T-_T#foC "A9QAn%RU]ܿ3`1F6I9~uѬ&pKJE}7L E.גOSSYQ/.mOo;qdSU;lOQ)dТ!)4d7C ^t'[φ lsYD{(;ش/$ATxm{_m &߀:h3<@=A Mf־﷤= \+:-+H0, 2 ,>4'f#?aÐ Ho1)1H\Kp6B!, ؐ:a ]G巶kҾrscӫ_?V 2:2WE8J}n^(דϹsL\]rF:PpL>旂Q+:Ne ~kÃۘ|a܃W;jĀ daaq(+*e\"9 %1S `L Fz % h}G"!ᒣʲ#*|ЋE.XR8daHs.AFYroPI ~(T,,,,.,:[|!K[oit$8.dpa( +49=_w`1bʿw_bf ƴ!SJ\P2xT%LfZk;FN|q%dU7˻[MCEna)<ƶx469QZm:eꦰqUS2:H"qa.J"D{+)aCB֝гc~:7`ޑw&*u?+0è-ͳ(1 TfzƒIbhX+6v82JH=x]@ C&PnD&* mQF rBVbSRz](Ӊ'ſ w8I7_"A6'[I ^K:elDD&EcQ"9k9xo"ʟ A:9OcQ-)^w/2d>5MKUAQ'9Eb"Ȑ t   :jA,T򒟜oksIvie.*WdֵhiwC*d)FZ#)_!quxM h; C OY4孼A !K`HiVa2'dAȖ̲;J@X N T"{ʨu5>;j ĥ2?uh% ȃߢW5ӇV+x%]7r)gгDfjOHӒ!,=s:6m x5n/c= 3ty(uɶ6Dn؅|]4J>w|ߝQO_.-Hi$[xM\(S?8mG=7{`GJT Ժz``W/72zE+QN_$<'Ͼ |QnbިE?׺xSe-p7mU?}~Q7F4_yܠB7 xvSߤcy;jCz/W|~z=M..Q  [MbJg- 2^+"{UdZ{;Y̳_:h[q!g3(줋5UOr=pF70eDeIMh&<}p(d^gi,>9-q7wۦXвִͭloK ޡyUy5=$&}Qu}<7NR! ̛ ѝ@0@!V4GnW9f0YԲ-IC kFʊ<=6' > A3+x9TQ\?uT n}#n'>u!vSM_ǔq^܊Gر#N?)S~v Lp_k/i 8VfH zB^on-7&"5,6bߘr}^f=]hח@Z&BAF{rD2-w*U!#>:#A v`/PT*G!*NU;W_{` IDAT%b9j`P7crĀII.B;UW4rS[w[D_@yTnn$;_ V$0xqz>8 !p*vF!v!oHUZijf;hRYz|‹B٣U[&蒕[94䟓Ov|usy&6xo}bB?}x㟛2Z|v h3? k t'Oo|iBsƩ\|svsopw-+OCzU.1n %P$fm/Ѧ~7"B u=:cǎ7*JnfXVi\vm~%p)Ygrd&%ZeljRr')8FU"~ XA@ ښN(єjzl/'m!`L6BzXV68ʨ铏J36p~k @,vƖjV^[p-Ρ6+/I嫈8m;GWQՈy*`1eYR9mi kR0n-q<@֤Drcs'+osڵf(7$aWF R1nrM'uןQQVh' I}Z>=>~ΤJَHDN6q# J\ω](G$}AvNdڭB®-R)FK'žT [ȼ+dimQ5$lm&d""t-]s|rZxm+?8/gVXʴ@!H$S]5mR`H,W4PLOL~qMϝ8Kz 7oTd`s78edg%foǜ>G7"  U GG2_;u%m A@̹O9[p}9f@fPN| 'K/lL\{em.̴a}jRP㳟>OvގXW=E\%O34p0,K=#+ƭ(13> ԶœHd@(О ({Āvb,K^2,ZR}}n{evJ ޿'f{ssR$tԤma?4&D+a'2N$xύi#L!_T@`C$@%p>vѶԬ `Dw}r`G>kӆV7>j>~dG::nf𪁣h5' mi7ˏdK$kv4 L9RAqe+S8pF;$sܖΒ wN?oE~l[|0 h΅;yYڟRy TG/;~mI561M^$UXhZt܉~޻(GhοtRH8EX'֙L(|Ol1(rj3y TS0-ä"4wJ{A(g “w%D.Ei"守w5s+!jQ&F|"[ JH"rBK6ng^ЍCFVҡg」(ϭ<JZ$"d3ƀ3 60gcIDP+ivyvRwW=3;I+ ;s鮪ޏLa`2s<.nh`8,‡]q4@IrكBoh |N{ (5_).rH &0(;.^^W{~ ?v_\4~Ş7yucS-rw"Vzpaw3s+ -0teWݓ}}zneZY{VJ\_V'&M -'d>apC=uv4L%"'x<`_1Л:ps A_V~ EVkӤR+^7t8ŧ-;sC}W5\. aOM@"(oMKjK38fV TEN掌ܼ{ .߹RY6U0L^CkI{[ ( xz65?@)39s;'BE'2@)Yh7:JYԀ4l}AH`cC'{3$m ㄁bA투LάbXGZ- 8#!b19W[Sǀ@,3=uӻxǜ;XwXJHƒ ySxxwnal&7%|!glgFVh%Lh%4{%oIUU:*#6eǐ^t!nDFXƿzm{&# k0DWՠ*Փ1uJMY{ưRmS22֮Օ; g[ PԋFΐ@UQbRCGGH{Bk4.@hK</8d̯ sHGo=uO,C&J.X,c>P{o$'0F~'Ni&Zr0HS2zXɑ^ +3NV.KK( `Da /DIŊB#KS*b5F0_xJ>f!Yv%, PRs˴' Z`qXR@=p%ھd|5C`G%p:8{Y!w`VUҳ p!/}>BjΰJ?]Sפ ,iw߃y4J,3UM.9^3;5un5TV-I1q\VQ4v8,3OPIpl(>nm Y [??L Amvq`qM{rOTn=LD{JñL(#4Qm ]4zڮPx>^<9τr!8O.`E[Zm2?q>H րd9}+S%ZChYO,d{RopI#ʄi&&+}[O+NAv+34MyJge uZwuo2?Id!e4p}tb0'R0;IZ#YNO*Wuy7*癭$O&UpshPo?dk?ᮯ= m7^R ytLFRwŕe3Fn\3.=_텃x]]Jȭڻw?t^Ѱ ?6y__9.ۭ'2S=S9s'*웸+ )2%1 dxM'i.'c7X+Rs`ظ]l5X*v= |?r"Ni1|+FyG왥x˓%>Hg̒n;8]fpVFols ;&̊͑xYTenB`7OɜAsGdtT㌫werQmR=8ԃ:toPY0=[Ԛ{V4<7'fbr|@RușꜹC—_>*p@Kg7xL>8OKrLH[ފɗo;/4xOuGk hx~dAC0FK/17_>Si=tB,r~b@(D+}ф']6en߮8r[۔8{E ٕߝ])g`[̾- 3xys_p ~ڠ r75k EN)agm>#%AY: ޶=“*w"-;?{S45knm/?|~h X~%]lcHeU(y2tSzR]QxX,yX{b=٬3 m<-5&8Ǔ:.nG9"]\ $5+2ze =l:Xs㬲NpE,AfT!, ҨN'%LO Ӧe/{SHJP}d:j$:liHUS즐0̞ M8 O3벫$BE`VfJQ24)hNY瘀wRrƞ7b-}f^4Vm3KYpooAB4SԥR/Uc4EVL럑B0O/| #3^mٶtX}<)o|J,\q▧hǞ9 @]_|xam$}þ>gE#Y'K'\1yr $}Qw*]Sg~|^j͑x/qyS*(L̬Ȳb[b m laWD M)F] 5bf6`^kvSd)"= v6myS*]3it. :&, MK5 q2(ԮPy$D KfY\*uF+ʧW)OySިa4C#KWP 8 0R%ۓ}}RSwgs.US򔧼PS^p47'an2PPI$ m|-q$R IDATN?%T"-IJ'66m;f=k|6VyK%OySi_%QS G$gWxttb E~vq-9#K]ryl2+փ-Aegz yk$Jqjt=]wU!0yg%TD6*)Z!% ybO#Ci#:[R3Em_=RvYP͔]zf:Yu9x)!iE4 ?:ܣ7E0{߹֯G[݉!&weo\EO?I5iRcd+r*1T2=@Y'.q23^foz= RPu:wsD7ʣ[z{þ(dOdUtw4om1XmH )B'qr,z3 _(oW'&=>. ktMM$+b X> g;l4CwND2;cz#]x+ҙ0_c YH^5(K2u9 =IudyRɱ c'Pd{Z3GpZW^n~+} k3A?]?KՍT#_SFAO.6F>bsF7507z4e\O._ge)[7J &)͎=~b&;$tWvy) r58rܛ:W< ;ԠEWMm(M2ue)F|CB[J00ܝB]6`o`#9d-e*tBKk2%*HF1贉fmؖFOFsW@ciǂLz9-;LvcX F&ɱXZd 4vc EN2?gK.΄41Im+; fR^WoRt(!1#0{o޸]rΔJ#׏k )Κ0Jd3h`O}/ȕ9\#CYB ;Jw?;jvWj΍SW~3f&ݾ!4%/}ݑ1 _Z&ndgH{z;ߘmx݄D epv!ڻc`NO~eO r3sw8AʅdU~z: qNI^>m'$۞nwN(++5kǝ?@@ _?Vj}xr 'cٰ]@>넏n?&\36I|.^y Yq |R1;_`^ɯ:.G"FRQDD:-~uE|r$%5ZgBӜ"V iA#f"Ǿn|l'6+Nq&ާA cx-F]ui3>j"y\rh$v:EjBkwvfߝՙ}B\0U;tȎ)s&{H+*9yNC֛:a[[wo:LĉY#=A/OhZPs*6 j'{DZcP?2)KFz{V h-%;Hr,I_9ZjhQ/85"=U9DqBxeG@_F}g3L{$̒-#=ұ%VZsAiz1{ѝ?D`6c#"Alhkb1opȏM mO*79)ST .P# Vos` ,],[yL?_ѯX `E9ܜ7-1=iPm]rc$/:L8]` XJu(s:'8{hЩ6ri(ǯNW.3~:%O/?<GUN,\vc 1Ω*l3E`Fo%+31ˊwAUp+nziumㅍ}<􃳇 ӳ3 h&v 7r/& *vAXV`$ے%5I{gW$1g{ӂV\Wjtn1mQ)=//[?O*$|3OPa'`cM~Fv4檾?l /@msSG,i}CI/%wJK>J@Bᛦ4-UeX=אyC Z04QX1LC U,E>5Ĵ41t~hO '|neƩ&'JT];~I}((uŴmU$t8wK{sGJBcªN|D@]31tÃ~ỦQ0@f}"/ 47`^eX8V^8Pf{Eqrׅ 2k&8u_[ڤsaj`^E/%)COȺ mpr׷n+Ԟ,ꓗN;ȏ /Rnr}}"ᤗ4 pfUTZg=|oN&;0$idk{^JᅕTSG׶NzM[ks dBĊ>vx:8ep{jkt:;@R;e2z S*"Z)}5Cjonkl-S~fNVEVB7N_=14cI sO^^D_̐,[듗OʷSqONAƃ/akxxx Ǧ5r /Uæ sO]!0(pJ{#OZ70[$!%cUd0h']3O|i#L^5(77IU뀉XYĥW[f1`GۍϮ}^mÂ66F/E$q/pc'qᔊg?ޥawRxym-;ʼn?o;DR;_QrӬa7fgV)]X_Kb =v-Ӛ6 8a-ڬ q1+'Y:uDqEtlybe܁U"\;ΞI[g[@"Axړi<!]g[BgCCC IU}J{L}[Or+zj­M~w_sry"p^@xaM K:藧WY7ŧj9|N5tEX^Q0HaQ%CDlᦍ/L(g' ,.Xnzʺcް}5A*+ Ҏdu2*N>a|H}4 oaujhKRW,O^^uA9jbCu4{f;BiJ?% n&xg /[_{fՑi{%X3wNzhYum_NV HE4hG@eCoM-3x;ԫ %̓瞷vW?ᶽqE 7M/z{ge5>ΌF&)g|#q eMZrw%Begv&=b)<}B23 -͍ܶ9.+{^Ж _Nz9CŐoUJp8ԆDQLNfĮVjלg6ML4oJ vXw2 ϓ(AbgC-׼Rݦd-tZ>0 'y匢qN1_U۽-7>st+""n~& H[mj0,eL(Uo "L=2LU0bJV /Ba_ej5`X_Xj8@ Bڽ!P }x{DeDd3M ,̊䒚 =/uP յ^ed*z_&!c-j|C\]Zy@ QaE?`H;v~oڷ|oݹ#8'_-'\Yff{ $l1Ě0?<*1m /Qef"<|wnXO%;0".ΎY`~yʚUvEl2RdnIY}SMkj|J>w<>S̓ mxB p$dY ?=9ڐmqFj &pIMYB>C O_c}?n: ?)np ;)%q്u$?;?@TR %J8rބ ,Q~ o"ie8I8@i VhdΝfNwEv|'5JUԳ41({ LT5cpY㗏|ʱ'U)% unk. p%&N3QNgAD5 |J(Ji9b$V6IRUΛ4tΆGqΘ0CK>vPzR;72x\~7f)Z9J)X|MasG ,ީhUVh$ XUPd' vd=_іś']G# I~V(5/hK CUNU9h>Asi( ÑD(iOn"R;T=tKm&XR PsQۦǜ6זLa]MAGl-(OO|҂JD>uImkQ}$1mmG, vu_8~I@HӖ4P3b*o\^2¶/L~}֐W}=6f(hƝT%R !w5c-n=Sc= yK%O%Ҡ@@|jb&B(if 4҆{>ERW(g)S r /O?[rި ״]pɴp+7U7ϭjֆ'bWͬ\m_?z%'XLUaVU'.1(+wגa ^R]/ o;g,& t7>3Zd 5pm;?iveG'/8CrH\cMqswBN{V+$Y]L͊1}`pKJܑ0nkOqiJD˗fVلE[2CxG\]8E[Y5-s^A}ݚ;[~Ζ_-E٠M,ɞ(p ߊ]'T>r /ȕ#-0tQNe%%M(S*鹕{S>^L5d( M!%S M )`f0vlow_Ude%̇{ ~`M\IOu7lba\;q$RHZ$Z>Jnԯ<}B;s;1@y̔mqlDuf ^m G@׶1/^Q'bTjG)٪Jh\}bUE&u7rw;(ѦA~8 N ve#ўzc=.?@)Nj!_PgN*=}Mn }G-?rلx#q!G4Zx#tTN?*{xv9˧F\xrWMm.9:쥵;?wMZ_Y)Μ'4omC ~;&0w[b)B4 kveZǻ E>G|)sM+U34p&" 2wp(wREc?sHp_ +gw?%ȰxGo׾E,@@Kad"bqkInlOo]UmZ\Y¤,ZҺ>fr^Z;/״`5Ʌm{=͉k|mu3ɖH4;sFBM<0m_={I H}Dbؾw%}HK+nl=𰥥Ll hJئ֤-h}?~M0ɍ,] m1 kU7h&㍿YwΦE,ֈ 1 {>ӑfݽ}s{Ҹrjw-l.䆃+v5=doo:t7ťɾȖF L^`kP Gm{j@ЖMp 58ؔh5)ѪCxNr꬈ܾ(|7Z].jssmu ں%_~Cu Rh?77=G?5B`T< r4Ge߬i׷?MR$%/U1/}(a4NU֤KB Էe&<ĝǻ_7g,oaݭBZ{g62?}r۵  IB| DNL"9On>g?ջLH2s; =E+X-Crr9` ^d\q!N_}1n;ëcͿ^{wCԁ.ֶh2BKZjD C3H Rh?S ?9ZҠxo;⍵uk>JGQ#M((VV,TN+/Oߕ`ftX#W턦'0k8ՃE܉=4Y9CKʡ ye-{éwrS!Hw g.<11q7eqܥŜuҠ$6x^eL=0)2,9]CvGnz9;$̥(-zDQ7p.[x-w]0SܓդpӳkBdXE^&:йR `qܧL?s T2)sv P:Òܤ7>a2/﫩}nQM9|:1ԭ=t<2[w3>7b'WnQ.oЋRw-?Uҋ>=d~DdrՎDfܞ曗(ğR!A=B "(id ;./<^s`>^cTϩ=^0.mN"}_jg󥻑ܱ6 wc|~TխplӪK7Fٛ ay] AnW ^-ul `_y8a >ٱȶVBsלmerHzȔ0Max$<)Oy('O';Okf ] """I<(3U[DӠaiDG D$ D?;N};)靐N Z@T "bU쮻UZе+"6, "= )HI̽s޿?>NL H^\'~>SE;pdg*tx\J' "Aջ(v.9j6mp݀|j=;p%+7,މ/t[Iw)fqP(NRfw7Mɾ:PI,مq_Ggg>ET\' HBѹ쎅Ctݍ}*mȇ Ǜl]%}ל<ڷ}\__=&߼p7wq4IyUu=lLqOs{$?kH9,߼S|<?Hx Eb9!OwN{:ؽgbiJbqok\wۮuo‘XpT,9kH\.$I?tTRKKkh. GnŪi"WKKkv1;<<<}Kʀ,up.4 ǚy:,<| wc]y{YO3%U]f%Mŋ8h$%H">Jo1HQ]'ܴl~V=e5y9c[^rN0.$TҐK/V%Qq=L9sb}N&)%^y J3bWVk[? >:,7$qCvbdҶtJQP[dt{v9Cs]Q9z)JۯFOKc fArJJ?ˢ2G w/ZC)&,g*iAV6挤}a߮m*Bۣ\OE1J[ljdj\ߩ=ӼikӖS ΕccZ\Qsgss#?Xj1|TBHZL]jOIG4}}!fYT,ZD|H45 5o"bhÚT+iR@T 5S"* *QQ9ï(.c]_s=Gx}9G1DDb.;z߼qGdԮ\_{鐨 \sH:HTvM{lgɁgx .N.bz!yA]%Ѡ,döSo>qԜIԗO"yCۊW`Q{Ҕ}mRg!4h"Dn+']m"^߄_'ԜH<+G~󗩸{olEdkqۭ|EM;& pŌG֜S)m[Pᨼl>Dr7_7?#LƇm޲]|z3-]in_w~i^hXQ_I=rQЙN?W>]CUZ5lO7g=ZL\MTEMLTvNE"̉73 $xg9YjZ DMLԬ]ԙf*EMOml4f%$щIpVy?j΅l7_K ,S|Ģ5d%kLdskWZ^m7fQz7]wOcEĥ_gƈ%- Zؚ+V')hy-.9'^;ܙRlxxå\19sV?g=qM6rč=M iSzOe;ھf€SLZ}=Ɩ8yIVײqӋ^b*{ޣ4`]A1Qo[м6Ә<$-ٲ$j7[lTĒ T1 ; %ܱ{'.3tΩfε[eLb6:q_z/ahLh@3?xݟԜs89qwӒldM{޴շJ!=8wMx~W{Qq9Ɲ=C;FSg%eҞ>o!ՃNruo7̼6WaO?$&1c|M߷Mw=i^E_y&}Zs}no 8itjEB[\\PVuDQ"bisר}rQ$ i뼹[g]3OsS 5MOzǚ;.pgӮކ-*ZGonm4 %Gܾ~z>u?sLy-"dŎUS{Oܹ:悖iQ}G޻yEj6;ĜeQj3-T\]+nG1c7]ޮ~֐ُ?f[M \{)bsG=.7/Us6 p|OPJ)oʅ\6+':iषNʳ5h\m+M_#}ZDZEc߁ G\2T=?Ϧn]<g8~6ph~͹VDмJ "2~p^ P2/q鎥gfѴ׶ ǧ]:*nK؁cFh(h]+<%R\Ԓ4'f*Eqn B0dyhÒ\_q9cM?ִ;יʠo g*-ݾLߞ;-ݴbOigD/J0O>͒f^o^QMG T;9fwڠe^GfWpQbV {D$ v@n-ݱBE{X~mGQuۗI"9 쪨?`7qε?m|O~]F'R#5u&kak4wl1[K \v{ԩm&N6\:MP[EDԜ%_ۦrN$:Yk}O^0 *?Ukn?+_livI6*ɌA2ucT\vЬm'>VEpಈ4wjhCCE3o|k{澫i#<*5?fM&-?o_,qI dK_m_G8*$Hxbgb3ϼo} o-񭳯R5o'm+IY2kqFѶɨP/TE=]p_836jM_so?-ݦz`ޥ"9.4&qumVjXqƽ75mZz/yK5L1T^L;-v\EDtςv?tG6ԙ[K&֚kVl*j>l0I%mMZYԨR9NudT>ɍ / b_z _i2x҉U#L䑭; IDAT -q{ؚ}kfkb*VㆍS5;ר?‚>Kݲ-=P^0Ury7?3i[B)yWE;T'ޙTzZt6sV.G^tKYfc_Ƽo6OV+edQQlGL#EzW颛Uܨ{ɜ9UͩZ>:Aš?cO-1N0>{*'( wnz$!b?~ǧѫT[SҴ`}WĪ4Vt-R]_j/X(6~g}ZMltwo}}M[{̢7.L%k;@mbq[?欓,m\5UBm؟W';1J8s̙_U7YHvΙnHv$BvwFsEI?ָ4ph1끫/#y/xt进aWW(b;ӝnNgZ68o;KsϴlƂoHJ?XY'V;ۯFCRWӻi#O/*m6=S皛>7Bۋ$E?Ϭw?UGzzU[ceKՀ5nx [e/9i[K053mGWmaK>{?xg0kx˿hb #l}VV7-ޟ N1_/'~4oܽ/?Jm'vF~|ʩWN:IZ7޵fV+_w -ucea^Ln_}W9qV|$K{ݪZwWviI.;K:q.ɉg 8f]?_o~sG3B *Չw9g"NC巾VU4_iO=*>]WV_:f/}X,h!M}n];s95@X圹x&54dg8]U&DM&|6 梚j*NS `fbE,Qmצ,/`4*f%KӨB% sBj(y˦"%QWM\,F+$JK{yv RiPueGCkQD5QWpfA߁Kouzϋnћdڪ_y7j$޿3.35FKDM:Xt]6wvHq|g"bhPӐT"]GLʯ"'t<29Whb&"KDZ;{7mi,"VUFULMLyi;Ks$Tì*iN}.qf[򚽜/(`uYc )\,E:՜jNGGyx68Τmr:Q9|7K}k.X˧pV<]{غ\;:;éCj,BۻԎ)/p_tm&_~MUK+BT#-m;m\pP㛜>8؏P"9k& 2v D@TD@T * *QQy#@hQ D@TD * *Q @TD@T * SF(\ i QK(^D4hF{>pn @=}?@TA; u:FɆ3qM~*x$Qֿ,8 w85&jެsLESTDEwkL[6sE i3QQ|E[W#7QВR[}l"Zn⯖`u>K'\\E:q7d|VJӍO߽?;i7-`33S.sש\;猚og|sMME- *x[ Qg_eto1oτ6n~N[: ESĵG]7oYẢ/Mkrߓ&9^?|fnuQ+xӚ\y'b/%w !NYŒ3yzlu7eNzOxbբlQKd÷//X_ϞEęDӠRמ޳Jܹ掦td ?j~>w@$}>c/թ0YQw+f%޳&j4+xa1*RI=SgӢTIQѓz_YomYj;O_4w€ ]\pZ9NK%uEr\(]MENEEGk5u9GxvxΟں=o[]aUM .83s]=+]T" mUX;DDsY_k'?yYC{ҴbZvL۶vᄋv-8&\vߺ'>5+44ç8sH![\umMZSW>$`򚟿arW7.JiiÊKk59Ѩk:X߿e+]{oKDF9ߴ>R]2b+⭋75mY7bɍ-oXr׎?vGXGH̷~O6#LlXP}s ۷wwmQu# i}Sگ=[{꯫vZ*A> н)6i]D5zʨSfѿB-8c> ^ G]}i_BU_YhTW̾3Lgb猞|_XgUpJulL V '8]ݵϮJC繐3ˋ9o/8tsyyO_gU1Ģu[>ߚb;;3^?ҿcщ U7^uELEGuͬOnl8yIv'.ȻOyO޲wI&s;7lpʹdc \wo8q^řȩO{ԫo|I ='EdҀϬ<+ "fC҉|gMp{(kFE<çomwK|Ƌ? /.H<{YoO'[T(ބ#@TpM~[G?MT,MT~>vfژ߹wuK'_:sO#f-t̋ʚ|]#"w=MyV?vrߩ>zW~Kf W>)m0Tĉ5s޺q/fO랉ǿm5r.zُX]wOeMߴiߦ6u>{]s}KATQQCSы^xRgm[*a-nX2dU{eM4Q9bTU*TUڎ=K!㜸ۖTֹhVm[G!ێ'01NLdAD:3蒼Ԃ(Cg|9ם9dnMZc%[shi4A~ţ2bR,Zi`~+Fw5}GhIRyU${>˻Խ\7wi5ilU5<8 Tp$*4ܹ͛oЇoEZg$Xv7UݫPz){Zdl/mkV.2YZQ=+s-ݞ=5ս uB}4q1:tɄמ3yrػ+~7=R+ʖN;9=$Qre+`zrT>}4xEg>sT=k~jWމuD/3Q4g66ձ]RKnh,yӠ"O?aO{ɖǢj "%]'E$RwekgH 鏗%?;ei}M9}|sձLE;]oMhяm]GRr¹^2+9)o03TxRe?ْWŌ>zGg\rDl 9=w~яEu.Y7ZC,ۻ;wġuC \y WM۵ZvD aYMSCS?gع.syIR7% RоmPbV 2xy9GV}L4l6 'i5i5N}7}i@TNOvVYcbO<|p"9+mhp?{</+6|5͋w?~w"ěq}=!rnƅQ "f&>꼱g;qeUѴ㖞9p捙7}}֚͜$j{𙅏XU5[؉!:nز+`fWk{y6Ai)8wЙ7[lQy}߱:JT5]* *xu4j_JZNIwAMy4K+snb r x뚞t7\>iomuRԪG7<55_(q\˦^GcMoWf,EfTDtÖ'Sj&NEoZ{[b!vY%o;Wܗ/oܶrWSc^}& EZ>[zsAcC[|s3~ߴomY'%yiϖu$:LC\ЪP;xlT\{}EIC,EQ:DkfԀ!Ƶ֥-Ģ|u>hT%Tux#T44ĴmmVkgT}U KMME5HhcoM[mPr%ITp/'P$h33'HO+o1qtϞݬG<;ݽ=US5i;{ZCz?[ .V4Z*saUː}i; TBuE.hԲLڎ>7ıv㈤߭Nanվ^4]v} *pv]lD-v.:=DL-J2[7ٺY쵵rqR`_@ ]u:wU}˙]~BܩR"$ts$Qs4Z(31N~/ TpD6罦r;a~]ڠ? ua8={WTQyV<Q ppFTGp(7GA{TT)e״~.Q13gʭELCLD[>zK:ˏ㉊7/=B˙;Y I1׫yY!k.zqV.Oexp'*"ۻtUUUggD0]o5ouZ7vNsiCNq]{)!lcrbEbv`Sq8*99J&Q$?oY5FJ9JW'b"Zj獘s9sE%x|.믜p/v| &(p moWtYo;54Y9XTsIT&9/I=g|Qʙi/yѤޓs$)8;HTX,vf14Mb՝ IDATiӊ]n]}GcTLCRj4IO)VWU$[T#*%4--֖Ү]m^٫^DřI`/3!jg}3V UJQudb|T*bؒ6TlU|1'W/߯N\#(XsU|!\r􇎊eBifu ! S ؔEz{$IDvgCG9dsf֕NEn|qq^U>AyvQidig5/#޶Y ɳzgc4jމ]Hp:p\d克 xT * *QQ D@TD * *Q @TD@TD@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@TD@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TDphƧ82QOpD$Nhw<<<~ǓP[O[GDbgD@TD * *Q @TD@T *xLnH:ڿ Qq^;:t0X'nS i1=YAB0GϞǛ>]ez01w{MG#ҖP,JkIhMK`L ‰Ľ{ELk,Ti1ץ,&ګłJ"fҫOƤEVKUZ[%_BHX$Ѫjf*xXyg_57Ӕж*c_tB^ۋ'o/xb{#G>5~ҍ6 ИXN/~__V);;&N/~]uf]/~]:mQ˓XDbsZ|gM%L;썰x\xS rvzKT$4_=kzytמO>mek9iZIK~ +[ wXo# ^S U'v|KUldY?(7ƃK,l]Jx] *86_^6o1Xُ3K,cYt_zRoQ4$"":[,ZE "͘:O\19D>h[YXZYWۙUBpŹ[ܼduYۻs_]kϙv2$DM FQ[[ۣG=9Gj=zNժuZ-E .019{kc%;իB_׻~v>*IU 9:g:SژK$yq~AcTWJ.O[p߽ޣ(+rlF sWƫ-Pw{#p8$@GK}iVyүm=&g }]uCo;%|zwKt 8٩@PZlRx=dMNdVwG.pysӶ9^67+mgk)IEZ5 )=YS2gLNRGnvR4ٙs3<,:77,j)6ɢ.0f 8sDp#u1HNKL"'3V>}Zm&(J*5Q{`ӇOWVK V_W}weHox&Hסs=~b9<`]D{7, r3]_׋*OͳJgL`Qxyn,sf|9x`\SyUw7_3sٲm_kײYXnhp|뾻f;.o$rYek{ugiR3Wj`^*pW 3H{wo17+q8Х xt+ F'[oZSﮪ8eQ%,˛]c>RWM-NؽT$GW]1fOmv&Q튥xf0,θcwlcC&л+UXŗ$%+ lPY(fŶ=m~K{Ȉ7~_<KpH )_P2%8`P[W͈s=o$:"ّoNc;9>h:^h ۬ѧ19<2`xfixr޶H9 Qr(M{x岕Ymﯷl?F,͘ #mw!B %͢쏢Hqmny:p͓W(tmࢂXKbRZU}l6-.)|1TLՁ }a1`㡆UY*:GLdȐ ٩7?T'M6@Ax_Q% kr^8i+R|xr-lE)o54=C5|bbz9?8Ta# py'wU1I<}ߗb 0`L׿3\K"UΙQ__F'bZAݪ CN8"/eUzs=GBU =B8/ɑ&!};"(Qαjƀt{`QFf=(%I}@@9f nu@}GJe:sbc:܃z_W`pffWν W}oo%9@=B:N\1ż&)fMt(憣l [JN=?ܲ۫fVUm'>akq繪{zιpkj{sOn^S\O*Uct=U ~_-t դs`An)/~cT_FKQ1jҘ€9blW+2'{ $c,Un2* ټQ^ɸx1HqV-}pŢ׳0/s÷W~ xSŊȨ,hPPR!_1 p^clXf$۫!`364>ݣ͏mXr~37]c:]!EiS""߭65 0A;ƊZM T_6#}2ި|+ \Ё3{34#+Z@je4WsygEnͪNP &`Ӹ{ hi xd0 2)lݡR~f7\ʥ x\q{+0 1<7,{{|Nc*WS1lԟ9cBow7<|纍Ϭ^q[qmŅdIPn]j{۴rQ}^ӟMi\yW%ڟdO{4+ZMVO`r5=3HC}z1_ fm#lv f}--]x{i Sr#?m9"2c|ܽ~H`ؙ;czn{(UdZAC[GJ\lHiY1Q_g7^?ȿs2hs(JnBm翺 q5w"9{ MWegFG>iղ߽p[Xlb1X0^t<{3\ZFQS/>GnXbL&|ѹW &Y`w߷֮~ ™ex#sx/M> nQ֟v9-;nysCe)ƤG:N?8TozM)&K~@ Ѓߦf1j@`PSUn&~"@}R %Sͪ4YGVN0@rHG]n/م~ +@ `v uxP~?E<.twjr[w U**BxL& Ie3)&f0\;59Ѣ*dQXI A͊ɬ}40T[h1a21U]`PfLQfjg.WuɹbUPR!_oә=㇮ǍdK9n] $1O윜B+A>vs,40.bL7+ȉi8<:‡rJs1#{u/#<> qf!#\hL|]a#/>g)ɉS?.z1O'v8ΏRP:1qG._Bfn(K@c*B(BB! !BIB%B!T!PR!B(BB! !BIB%B!T!PR!B 5!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!Bȅ1(B|p)(P.111OJHq222&Ot:m6v Η(==rf׻m6C1B6R3ۻm6dee2knn@}AqqqBdzyfK\m )%\UUeRJݮzOOp1Nד7Zg.**RUUJndGDD:tsR){Q*++[[OX2IDAT['xr 6… 1___z8|*LHHXp-[(h{\]u]9q\67Bd111)23g B111EEEPnO=OssssssaaaaaQQQ.B7AyyyӦM`UUkjjeeeƋ :oc/IQQQٚqw󽳮. !rrrn7’].3Z'===4,OIK5Mvb8zh|||JJi.kǎ󉈈(//7zc@ԩSJ*\4M3L555yuuuFFiIIIs✻\.gtm1jjj;FBȥ,55ըD BN X庮?UUOBȥl6Q}}}RJD1+**j֬YPN{{={ E !l61&~1,k4P8MMMB@Kpv}GEDD`쯳twwjd\5wp[PR! t:'~և1F;gqݻwVi+W,))PR!B{{;@||584J?^KK˺uZ[['MӦLzꬬ, %rѠ%.PrM3fBxBM67l&MPR!lD眪a 977755M˅y}dSSODgg{p#t.[x$▖fLq9$+++99YJ944DO_%''[Vٺn_qFJߵkmz{{VkBBBJ]XXRRR5`}Rnb:tb8޼yí@UUOR 9ڹs'ocZʒ۷5k׮PK|={1҉____UUZ[[~RR-36oiZkkkWWWBBBxbԀ M:533sϨ?qQ&"333%%%..Θdzzz:::ZZZ(8_RnJB,B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!|UK7XIENDB`ntfy-2.11.0/docs/static/img/android-screenshot-macrodroid-send-action.png000066400000000000000000002462761462047176100264230ustar00rootroot00000000000000PNG  IHDR? pHYs  tIME m | IDATxw|Mǿ9H{-JiKТZWեJRbDl!E!o>{rrss(J}4|?,RBm@AAAQAAPTAAAQAAPTAAEAAPTAAEAAPTAAEAAQAAAEAAQAAAEAAQAAPTAEAAQy4?`ra1FHXӤ<&9g8| 9ݼFr^ϖOH0Fr9&\[gsLHqs3_"3Ogb@t(p1}^9|"CH/0`y\bFBq "9 9}[9` NX,wK9'Qq #R.>M-"BSb?'0cۗ# X)q~ 9\@Tn4Y*^'9"Ɓh2Tju\|T?t'ͅx20 jVJ8;S&fXDhI J-6|8BV,)>FD7HWm6v\%;_N<<< o0_~0^.}jMnE1-h i$lf8>|ً1h{wo)]xn;3cσV\ &}M[ƀ,kV/{߿Y#'N.Qn s=1:QBb(U*U`47A_X+4FDea,U*UzXؠZzTOk֮[Y frq3;ׅj&:_}1|ؠ3g[W}k%J~W1VdmܸN{_~[cj6wyzz>GlYM0\Ld҆ V*_JM*{_/\cii!PQZQ#fN\׸jW3<+m:˪ݽ%ʀo1fj0cּvH:5vmt5k7*J>y7wleFN7h0)1QNRn/W+k)0*o =`0ɋPf TB?}Qѯ {So1ܴu[3o4io/|ԤS8d1[#?}&)3yo@d ܩ}289LZhҨ=ף_X.bwoعg_SK:}֗_L=jxVq&&WQdtTUǞ;sOCKV~s+w3@(l]oݹ+%9'[r~{vS|ź^*; iՌ$Uó MFf6ΜsֹZ>= }_2BGntnJݼi?p ~uCaoTbҳ͒g߲WlJ)(<9xh=b.vWy_+VgU |xOruz5Év4 ܬMfm:4kөYHz[ݼuAp vڅo))d¥yBvjUXG2h`Q86,IQ2ԳHMC322`i6Q:S6jS i*ml6K]32{szc@:uߩgN:߾g{>gMlKy(-S{Vk._RbYRjKXD Ur?}?.0-Uz(㡳ICG絎l%+5j5mm7cNƜ8׵K'ώ3?»wཉ_).~ kVfaaDj#]/Vh1FB,sϮ^<ݯw(wljTSoA.)Ik9|1|`Dp> Ӝ֪QMRw?Wjаc6ڷCf_>Rk~ؠʕ8_/Э;L9xHfl2,?s.kٲ3f bX,h2VaZf]ʳ{`4qJso&Ѡϼw%ܹ >~e*/k2[׭"Y7gd5:rvk֤U%k3ۨ_a`֗f-C^kn9y?!1iwAVd2f}5qr糾L]l2ݾ7)5-#=Ç=~8)QRećII)ݺj+`0˙Ç Bx)(W"u!~= _~YWGV5j6kG'1u>?1Ƥ*}fZP=NN.۷mbԘi4`U >~E ,X (Rr cʳbו*FWQ)Bh2[>h|tJ&ԫw?/\)QC5[jJj FhI3J32yc 2Ygظ?gqy^߄ @>pj+W!Y-Vsʕ&/_^O5-vM[·GZ,ѨR]hǏKF+PJ LtŸ!DjBEDQ$N_:B:vڳ+qJJJJ% / qXHYzq{ڍk~PoλlmAc -Y"践'z3r>A࿜[#F|}լ8.}{S^CZ,+_XZa#^v]~NȽ*l?[ʵ. a>(MhXo Wty8Y5ӱjx^uّ_bI|x錊J@9G># .eԈaGqϑK9}nÞTPV`˗S(4xTFX@iYժVʋ$c$'HSOKqHxnU* >t0(:xRgKNNya7mu`ZhGY/5#@E)eSTF ZE~=k5C[ qd%^{m@zZgƼh*:FX,cG?ƍX/bxp)^^Rf(^hBC&fk %% DJPhܟA bc ϜkӮkjZFv& [+M+vҮx@(>x|Mz׎o;}̣MdjԬ&^eZ6itVao(d?ƾѵwrnV`bDw(84n'Ea9eua! 5 *Q\҅`Gmؼ~VTA 2vP4,]Íw~=E}=᛹%bi$i1Éߟ|0mV/{w#Q쏊TBX.]bXX`lw!ٳFyC:qã4k `drrʁCO}{3RJ Rb7`gܹC 圪vd(|~ ߸֝{lw0C9yʴZ5oZ cb ԥO^IVeƭ7mUw*q32z'hʡ(l/)C TG@Ν<fԧ~e̝~ԇR֨yhaaT^?)9ea9?5CR x*೗R ]&YJ+`+H" 7GyXȉNw&ZmwƏ{?J\nA~Bʟ~.Yx=V(y9җSf̞۷ƞsB>NJ%kִCmִɱ^Q|`mInix~֝"woˣGTj5x<=۽sg~T7K rar9_~|񂳧^pKChwt9oojU*gf @HU*UOh#d2lnE6oML&e 4|k7o0IjU[g( F/g1lZ-auŜZaӜ .Sd;5iTF~7I1hu3g$ }߾{﫹_lܥQM.QT4$#w}^ZI(@88sKWj:)ťG*C#|}.#H"f6*6ߴ׆y=Xȵ~ލ[:k{ko֪YgH@իW6@:Cre˕+g`Dd"tMc܅z JʎĜfI( XlN]<\32"׵'> #Q>6nG#aq ZDs\G%Ƹzo\S<0Oz_{ch͛xE'\">.=lhYQ $eqoU*_YH9꟢cz壳חJ1~~֌ 9&&ܨC`ނd+?R%)0?jޱlɠ[ww_P0KMbui90~GQcdCj"i?x(7m@ƍNJI5vk8lEm׶u0vnY}CZ5 EzԖg @OGOKLN6,Rț"z*d7D9zeh'&,lWuݽK}AP/_N9;nN9z#/\gа@m;'NݡCX?^ZT^'g4jU}f3q$G_^ӣV-0N'գE@ꏢzmز=9)T.io_u~՚hߪm*,Y v;qm]ʖ }~)|1_O?o5*uV+W ZlUM5~m)ʉ1^k uhpp;Rɖ}طaR{Vd1;89U8UfٸiϵkTMLJm۱ pwl6[W?i3ߴU9Zu'6hPi7fǟ{l:.MTKǎgŞ9[w~({d'շKV+[KVdO~˖) *WPZ ˽:_0BAŐVEQ1lpv D cNNN]ĂzzU\QuDP o/o#|d!@-^εk?+J޻ cT*͒+Z{v"۰q3/W*U*굸?+~!Ҫ%!ef޾>} JNMsh-رemX3%4bc?}$ġ׫V&:H=?|t.;vj AJlڴ5$&Н8!ĘhXddx*dGct(*/G]{,"^m%Z4 *}Vj8a,_[U=ٮQ W>&N:e߶nєR6c欖-i.u-[5EQ'B|һvl#1W^ܱ}B[whRlʷ=e8˛㲏绔*Һe&ŋӪڦeS68о:ypK4 { WDS'K,աK/gA:{֬^=)9%b^`$ѻi:wռM'鳾l֪}c}<;dO?ҹ}wwJc]:]懿\uz7s⻓Wvc`#=z0ȡGD 8suǮ?gޢ5-۫+pYJW '#wk5G=JNz>=6m8%=`T;AQy?״#ׯ[+CoMR0Z%[ݕ+78lՏܾQb_A~y81i0|&p.]aXTK%/UVZ'BQ:I p`Ri:u~=zvpU?rl=SzT*-5nѬYpgo=i'11RR36m / D7 Q9((Z>xGe )=u]jZJ^ٶmȜ=:v֮ٔyԩp:縵?7ųw#@mҤ!Eƽ}Z]FUe(#ݣ+l.ڭO<+BɳTW3.fhԮڴjs@pH ߱qpQ#h}s|d՜XU !<"l ls#vVV#=/]iI/3` &F{yF *UHO>Tfյ7ϙVeM˗x\Bx0.11eyV#DV9FW ?Yr_|1_"u8"|9;ij0@3f} c'EڴuW T PlYoo{2 *fdf jᇟ nO1[x^=mLzalظcS'׼i CeJj֤zi^ nSB! 1j`ci )r##Jnl/_hHi+W(n: d4Lh5flVm6՘iQ<~g֚҇>L1w#RprAFE/61LG i:QVf͛թYO4{#|}~ZS{\Bfu( B<ڵ|3qcF>yr'z@xǔ#61"(gjq[A(3MʹY (& D͏`(*ϽĚo9N:B깅N Ltv5}F|~QV~(NsBʔ)c2YO;xܸ}l08=F ;u㖭!/{z߾Z wh:7 ӷ[As/Zqy۴nQb?,EpH]{j&ZvG5O:B_}-AJgQQڏ?^qcGm޴0MFs^([[*2?ߣQ{ HK`O;tؐ4=`wZ`s28._KW3Y# 8rTl =PՓ0^s@e~S*9mӦ}(p5/Hs I'?vTz0֨JӤhTJz>`m$.nd#8̄:9p{q<" }4?} ׍{799KWV#ǎyVRN+a9լ]GNr*QFjlg80OXVQT| r fdZs:'g"ᜯ \dxFG>3[rz߬ad$s+ؓqc.n0`U,-8Fvwnٙrt2a@7S|v<@Js bȳJ]A##R BR҈gT,»?j`y]W.z=mCy"'09Pc&]^][';SR;? o7g>s>y;>&^~cTv//'-n#7?u?_ MܞՋE?O+ 3EY;|Ee=F/L% TAAEAAQAAAEAAQAAPTAEA)t"P%.qg|26|{iȅlף f=KAĀ8&R<4H8 i&S%)AoY6K̅;4Nv<W'b 8`@9 # HaBG 5JqΙ/%@AQAiݘw% Eȏ2DpNAI]snε'0DŽ"a L9t/kO|%.q˧̯O2,-GSLBʙ@)dkW̻.0`nf%I]r~A 9y).˹0H\eGژ `%\|Kgk\p;"Tu(p.$[OX\q=O)x( 9CU"(0B @뮎y,)Y+}]ǫu%DWY^r"1 nbҰ.9X +Ҍy..\Jt"w7L1jɀq̍%.2o;LPB8" gyF$YeRb-{``YQݔGq'J5RlYEAg $#o"|]E;<"9?.cb2jѴ1Q݂ Ri N8}TQa9\tHd!*1YfwSc@ @ cM`⸏?Ā잂 3k78NهsՕ0{+[{7r<Č Cx|  _)RnzxFdm=r3bp+.NSQw Rh 3*d$LjgMTrNg7diCA^r%TV+, ".r. KDx+b6y\:%(' /?}4s /]`8Lj,"ۑeX*|!Fc^dp'A utOLA Y0i{s'+E탼/n Ha9ɛ' DA)J֟4$~ `n44Kv7%# BsV0Dޞ AK s=N=/W H!L1clET^-YZB3A%Gi9Xuvd)pE=ÊAn@cA -G3kqB)BžsAg͡.nA+*B*3TeI#4OxA= s LBOJVb| T+AA0lr m۶Zpf>ASyidɒ%ݻw/^xPPP``` &Lp֭>|x7nl67?~SNݺu{1!RX^|r߾}M&!SZs 6|Ǐ];LKR 'clǎ l^z=D]tI *ԨQA uܙyBV۷o```8~x\\9s R_!_HIIyWܸqիcG2e ~-Q1c %K=zTish4SN>>8k֬ŋI&ԫW/00モojuUGy _5jHLLTT_|EsJC>V=<<, t'Ohb޽ժUvX,:nȐ!ь1AjNرctt| .tEV{yyq\|||.]$CdjAΟ?ߪU+ƘFy0ruֵmۖyV+%UPh$B$l h4 \"EA^nOeĉzn߾]F+V>h̃Vf󫯾}nݺYVœWTQQQ;w^f͛(ې!C(PPP… 'Oj{H-Nm۶ )RDj7@&Mvڵc`~:TNt{&IJm$ cƌ:u288811>ܻwoN)&LtP&M`Νɂ tiƍӧYf$($VO<5jԨQӦMu:dSźuI2c"'ѣGy&911FJrzXbŊkР~-OxL㼼N>=eʔKeyƘTa4e)1fŢRvڥ\o6"d@ !Қ;wJV{ԨQ=/^V4 Elٲy)ɲ4 '9!OEt7nu֪USSS~aÆ(NR˗fTlFvɕm@IG\"bey_.9(*07EsdIi!$9AD/ܹs}]ddNKLL۷ݻ 11QjuΝ;;%K=?~,zqxqI~F AxY;կ_֭3/J΄y8qVfIm ċ\TFLdшyAT`{!TZ֐&M?^;vVZ( P~p7"QzEz/R&Ayx*ٺp;vDFF.w֪UKTqԼJ)j4}9?uXڵEֱE,p;vZ˗;mMLL:Y,ƍKӦM|w_l٪U6zmZ !+VPsN\\sPJ/ugiݺunI^|%Y+@n0k?|ƌjz̙}Vb9qĪUT*)SiӦ!s h4v۷رcK*?=zTE__߁TJ,h0Zl,YԩS-nYkRחR&MԧOooo)$߹s租~+%Kre˖:uh4:<"/BY%h5j(Qg̘Ο?g!*J;v\+FjF!ղHßԫWoOpAxĉEQTT *ܹs9 k֭}:11RJ5jԈ糵fxl[^?z`0`['NHKKnԨQ@@_e44h4e\\ !%JhԨp.\E199Ν;UY A%}رyQ ! lڴ7T۷?x`ׯd2O 6`cyw}' =Zx^EQl2f̘ * RRRj5Ν;uTQTA^2QٵkW``믿^\9rȑ˗ϙ3GȪ֭[WJ { IDATO !V$%$$,\Ixxl(b Hau֝>}RJ۵kWTTTNiZRw!ΔR옂 RDEǏ;G)MHHMKcfF3A1Jqڤ" Ŋ!)))%%?ʕ+.ws ! /B$W#))ݻcǎAbjJVYF_;H˗+Wӧ>|X^#f3f A%/GИ ԭ[Wݽ{֭[ygϞ3f̨ScҥKi^z SL LIIZn*U>rh޽;$AS1F1ѯ_vٳgcbbRRR /^* C9+W}a)SfX{׮];Jitt];Vx_9~:uFcΞ=AD1B[2R/ j]#wFQi> "`ψ2qdR(.TKIffbty*I|}}] 27#6c<).R^J*˥sKx%KA=cƌ'&&VZ5$$tҘ APT 6l: 3-! (*    (*             (*    (*  ]6,,… (AdzӧO?5MPPP&M}]Vo͛7><~xC /b06lزe˖-[6h ))￯Y^+N0`u0"ʓc6g͚UxqyW_}? !_ןM)ygʔ)#GTgҤIk֬C!C̟?"""<<<,X0k֬zkܹ'Sd~ݨB]Û l?#vA_B**\R_^uaÆ)RXbp̙޽{/^|UVtҌ3zY^=3g.]{N;wnǎϜ9#<$$$11q HMM]h޽{+BHvܹGu-33sΜ9f͢Jiii[t+WlذaBB‡~8mڴ"EW:osQF 4f-ZhƍfyM67o +xmfF02 <#춃qĘ6˓-亸?b`aQ|s0 `$3g}C  Aqqq111 Xx[ѢEU*ѣG+V(j/\#IJJW^PP:c֮]Q&Lؼyk֬ ˗/={çO.ӫW؍7J5?i> &^z0cƌK_>$$DZjmvڵRKj)EΝKKKST5lذ'{"x,B7Lj1`0Θ>q-rۄE2ψ]q<4Us'\~9<JzjJtʕ+;ְaC={ѣG qשStJ*< ݻM&ӻᆱܧy汱p4n8>&L/Sg}g)l{ZN^ /<";y[&T_ <Fa k+33E~nܹ.\XjUVqfW?~㸶m:u'OSblذܹsz^yEqq|fwq&(Xał{I{77j,I&XhX{1*("Ɗ(+f~3;{癲,.tܺuإzj Z!Ctcǎk4a|'6l++8^Yt:ڵkc???\b֭[tD=zd09ŋ?j.\h4bE1ݻAAAf͚YGIII/ BJ !;ء>]*.*FAAARM6դIww#G{=Z~Fq ^ O4hT*]|8'N9R&sJ,Yf>t&IJJرCܧ2m4x6qg #*Rzz5{S5_RߟRLIII t۷o/{ǝ;wv޽k׮fjڴi\\wrtt4iEdddxxYff&C׮][h{́kשSk׊?*&J'Oܻw޽{9rͼV:u*0 3a„֭[?ӝ:umX?~``JBw}oݺ~(**bYYf[l2eʥKyy۷ѨQVXҥKgQ֭[w0oלRD占볳mmm1egS B(++a:{222 94,qFT*Qa#a[a\^Y)WQBvvvelr(csd(TN`6 * * * *  *  *    *P=DEU*Ull,!.<ۀlt鰰0kkŋgϞ=@T._,J򒓓_'cǎ-^822RظqcTڠA_T=zTXXhiiI_'+NRt:8W^˗/oԨ\x/*.\@M0A&]~O, 8iZk"ZDK^ϲ,=T>n޼T*]\\ڶmuնmb/]16337]!tً/:;;O2!tw4yBVcY8WWnݺyyy[~}zzŋϰ\Baׯ@T.]DtvB>>>zŋ%ZZ*""cܱcG\~…ZV-777sss3@d,]4..ͭsm۶MKKۻw..QR;we˖-;{ȑ#NDJVVVrr߉Ү];Tj]YFÇƍV/_l`\(FӠAAQB bԨQ'NYEAu]קmPDܹsR}?ѡCFRRR4Mڵ薀Y)38}#1M4(*--PH8N(!RI;oJ$*W\j>>>B\.oҤIqq{ EQ94lذc322Xuqq1Jtvvv|wܧBt: Cq'l-**i:**ÃOjcy3hBxh c݋ 銊i 7nt|+onnNQeYXXl*(( -PeDwܹ#HVZ%vSB4M޽Ν;]tAժUK=y8k׮!ڴicz...NNNt^1Y&"T.^(J[j04ݩS'e/]+:uNj3IMMݽ{wDDʯZǎu:x/\ުU+ Ͳ,zT>eС:nΝ|ʃ6l؀10`#JLLh4*O4TwuumѢEqq5k>y^~Y.XBo<)ϳx4vEGG;wnĈ3&00pӦMz!ۏ3aÆ^Ϟ=7o_;0q-[-]8~B5ktT1QׯJtUPho3::\FN:) ^~mhhFFZhdPܔ)S]VPP J2b||| dFT` \$Jk &:t-9(Pbh"+[uhhň DbjbJTYn(s,BAn-Yf/Ȉ)81biØqs֬IOc3B_YSkPeB!TB){{#H9)QTيRe1frI-BRT OeO'!L GQEww#*ac9h qcDh8K+'!F|8<<\x(ֶsνzz,;eʔvڕa矫T*ZcSɲ;v(<|0 ...++cذaݻw7AÇ/R`Μ9yyyK,qqq)ʿ[DDǏ ![9sل  E q~j@UZrB`Q,E0BL[^ FsB p[nqGQUr7l#Ϟ=kԨQƍfׯkРɓ'%ɫѳg\J.J/_|ƍ7۷Oʜ}ZiZ4MܹSP8BsC۷ })qz֭uʕ2a77'Nw\rʕ+e2Mӂɓ'-}ǎ ,9r+Wn۷J: D_Z:tʕ,t/^:thӦMgfϞ ̙3999666%n_ Eiv\\eáC֮]kggs 1c._'[Nlikkcooor+eB޽{KZݻwoN[XXˢEMְaFw),,, U:UbL~}C 7y?-[SmB˕A~~>˲zEgff:;;_^P>N2k,a 3BV U d2sss DDDe˖]rBg833~4=rT*577/qT*-B˻aWZ%( B944o߾KAQx˰0K:xD"9rZ(_~%!' @P'r|޼y+T'0 Lk_YThC){C;v,$$ĸ! Yx 6nܘYl=zW__>;; Ջ/VZ5˗ߺu|4M``E,Xk  IDATr~>l`,?W>7okbŊjݺu|xBCC>}ʇkN8q9Ѕ N:OO8hXpűcǎ;&Ι͛m۶Ƈ7|𬬬'NZlG$22288z-YD&-XN8QRֱgKΙH\\V5a#kٱcGB) 8q"˲%B9rDRo3gNFFFXX8y1Qb"-DQ"/Wo);eʔڵkWHLHH6lXnn^'H$E͙3ID$ɒ%K֭['H(?޽{ B~ƍaYs׮]:? T_o޼_~խ[+WҊ[nAqz }رc㏵k [bP/299YPH$iӦK.+V?J%&9OHHXxqZZ8))iʔ)r<))ԩò7=##ø2fŊfO{j]>q}׷nJKKQCBѻwpm۶Ϝ9SE_!j׮y>}lڹs'qƒKvvv۷o';vt&LhԨQ͚5O>R ׮](ͭn|D޳|gj a 00#Biys A! aa$33W^999}۷?~o>gg 6YN>o߾;w&$$\|o߾Rtԩs&M9sӧQQQZ:ҥK78{=|pRtҤIqqq&!׷pѢEǏ 曝;w6mڔ/… ř1 s={ׯT*裏'ָ#Mv֭;w"nzFi4ܼy̙3cC :z!Ca4M''';3a8XG+O%l۶^1cN2D+feeM:bKLL{)j;3g dK$qlܸqcKq͠3#///""ՕB9rB௻WJ͛v&?r,ktag {C)( rВyyj}~~Pٳg3 3cƌ?Oܹ3gZl|'Z[[Å BgVVVbbbÆ ƍ###yu8qnݺ_5/R+Fɛ 6L.Ϙ1~ؿqxsιY|ѦMHwz?nP_rP 6DFFY&BD"gvD!UץR/+Х̲!Cիgl}͛?~ܹs]tyёa}rj>>>vvvٶ¦AKlgjd2%V?c>#''aÆ :nݺƹeiMەJ#~ݻO.6G^+wԢ+T!"aНVִecFq0 ?#B?8=!IL-zf1C STTP(Νk5|𠠠-[l2G|+вesΥi&RiP;v,""gϞQQQ?++8DХKQF}|q3CtL??Ƶkժv>:99yyyŝ9sG|su{{6mڔCܹt]v9s&,,L-\v"믿Gx?zؠI7YYY}w .>}z\\ܫ hi4 B&MZf͛ϟ/ؑ#Gh>|8/!T*TSa˖- 6lw}fWWiӦO[nܸqծӧO/qݻU*Շ~(hj۶mcbb4i"VM$&TU*F }oTbՌ PUDhx2 [ּs E0 ?REPs,B4"CD|ݵgZ`Z_☘\{oׯߡCbcc΁3 j zK ${ymL&#v9rdZZq/(_8~jPڕe2H>|xBB¡CxQ?JAD&}ǃN>pYf-juPPx dv~?sSCE˖-۱c *vizԨQBlJ2ݺu֭ۃ?x `ƖK,1yfjj8qĈwٲeի1… /]ċ%XDDD4kT Jn1$0椶us0%*Ó(UT0 !XDI-"žt yY004##C"̟?_4]XXiXX߄]~]t2͛70 EQ|qz]G?0}7)t֭[~?XFÇ ~j?mJT*Z/\p…7nϒ{+2))gϞ|l"J{.$9rD,*`hmʔ) ˗gff}Y]AI f1LOsP4a GE!D(D2)!S#z qE㗅([b_+Xj4UV9887|cď1i///''QF>|ؠ8V+.N<562W^Ν ޽ٳgk֬i0kl$ܹs׋EpppXp'O\P2|N+GlMvԩ͛73!!!11m۶]FB~֭ϝ;״iӬ2,333O>ݻwo> TlٲNlT*zѣGUV:.!!Al&vZvAtVAR1tBVۂB(-AW #*$ 1rqDMnݒH$B+ɮS%²onʕ++`kzq1cƜ;wСCEI$2fctI"c%p»wムC6mځ9sNѓ'O633[zc$I_3YN۷oZʵٵk˲-ZlqF/^¢DB00aRһiˁBmFO/Yf)ɓ'wy-kkkqrll+<Ϝ9㸐͛۷o/L\כR/3{~AQEިJ J;ٳg,;w\)2 Ԯ]?=njժB˽3qDVwћҽTn5w c PĠ=zx,_xq5Lֹs |IDDDLLL˖-hffsyD"w]r ^İ\̶m6nܸ3f!C<~xʕ{n޼\.8`B5jTXQ>|8--ĭgϞ:t(!DV߻w_dƍyd(Sy=z9r$((w&&&&66 ?|[>|ѣ}qrrh47o޼y&?ܶm[isTy&Lo߾{ #,--;gϞGں8..իO>iӦVc  T+8QBjWK >16IT!<# B Zj|q\nV^-t lmmhq<**??_p'*,,ٳ!\>uoFŋ꫃ǎ|rAt:qӧW\_}aaacjקO۷oϞ=uD_S*nݚ@=zfFܹsO?bYurr3f̼yā|BHTTT]Z\\VK yyyq'>l~'O Jeݺu[j5ydqhb[ٳ{ FXMu>|a>6;|%:criD_5//Wyzz<}ٳ nZdɡCf8cǎ7CgJՀ X#TFG 1. No8#hܭ98pFE璇ߞ7-|Y-c@ffNPbqiii Ô](77d7n|)ӋjVVV%[]vir6mZʒduXJҷqdeeT*\^a\NC6&!0[3͜]ۄ6)3N+Vl8S䕡i0~)+'v*JUeq\Q>}Jx B= ġ[vvvvvvФ/^/FUyiGroWn˖-;wnҤIFFŋaO}^E*+ܽ{m̙0൘2eʔ)S<@ Q*(E^x9 BP/թ b!UNeP8B }Q?N P^\eGjx9xLT?^KPTE>ޡD篰ltHtH(?+*A:A:C:Cq:.=O PQ@TD@TDQDQv8p ??7Bx-[$ /FӴY&M6lʍMKKڵ% DTnݺ%5 1i:**|֬Yp@TLE~ ʲlfffPPГ'O~駥KJRZҧBaDdZj͘1ٙ`T੼.}ٺu{ ߿jJe]\\J=99֭[*J.{zz֩So߾qEݺuĢk׮eddPUV6m4moAAgaaѦM;;ZݪU+Lj!bcc>|1vvvnӦ 0p/ֱ8@pY&''8BMaaaӧO7wÆ s1SάY(T?oİǏ4Ͳ,ƘaÇO2`Att'N <8:::%%m0Kaa!˲!a~ӧ%--i!߿{ݻwW(iii[lyѣG $oO<[#lmm8ɓ3fXVXXXdd !:::$$~nnnZ… 'Nشie2o0 ӧOmRuΝCQ%ְ~I:t߼yСC6lXlPթ}*կQG}j^*암tssٳgרQC"Ϙ1)))EEE+y'OTiӦ!Riݛ6mJQԍ7 Tڷo=zXYYYXXx{{Ϙ1wn{BuP(rw1ƧNT|ǃ?˲ϟ?xbaa\.ӧ޺u֭[q\aarEDk`٥K+W<Y,i7n8|\.;wR?ӽ{4Mw]lVn]N'V}L&ҥ'444>>~pGH$[n^׷hbرƽ O>8!d[?=<< ԩSN ?~~9sq61=|.[SSSqss3v0BbRRD"qrrz1!ħ}ϟ?7^:t0aKKڵkw3l߾=55P(bQ),,$"f۷o<GDDR zR0aRSS׮]k <4MzeKTR1Xmݺ04 V\0ѣ$ >{l S& >'Nhذk׮իWoᎎ|bHHHDD`+AjTN=zCD̙34Mۻ 3l>%[hA9x`@@ҥKweK.Iҙ3g5qi`Fh47;jI[877"x x+W͛7j6mɡ(xIgEёa=!?~,))D3KKK.\ v~gaOΝBgZZXTTtܹf͚4<&LP*=:{[,,^x`wTgqw680___T*-FYxsvS_}?RyD2rݻwO^^^666yyyW^tF*f̙˗/?~xFj֬0ott5k7oP(W_կ_?++Ν\`F1}ݺu8!!!/^Qܹs===v'M$η, N-XK^|'ǭhT*U yhZJP( "Q%//( X777H$}g|زHp#PYT=dm!Ls qfNJT6鹪.+L TFԲ*ŋ5kTv=aj׮]e0{C)x#G<|Ϟ=b+7CvΟ?cǎ999Bw޲eK8?bɒ%7}A IDATnܸ}vFFG.]J{{ P%. TDQDQ@TDQ@TDQ@TQ@TQ@TSZ-EQrʕX\\qD"H$o !EEEsrrS9_?pI&kG~Y &d5}ڵk?~ݻaÆ-[ ~T7O%&&fȐ!tkՍaJ hV*2 !/˕J%ü tڵsd'zzz@5wwwWWW77l,YرcSN:u8}۶mfffs̙5kjX[[_~. /'oDYsss _xjtg7EUC:qƍ^:aJq '*A ‰8bnn?xE={4hUw{ըQ}&晛;v5jԭ[eܹB*|ə:usݺuhfj֬ڰa%KT-j׮NM, "##.]3nܸ5jo߾#GB۷?~m׮ѣ CCC9c!xa=4MN4hֽ{&MYݻ666Ǐi:,,lϟ/tm۶988:tHJ,[naaaʆe7nkV\;w"<==ܹT~}WWW\.h45P*֭[GFF~gBA999M4qtt ULT#?۶m UVTTMBcaÆ!C\t߿?a„K }ɼ<+++>qfƍ SBBBL2u .)k׮MLLl޼01b˗W\_quDFFe/nӦM/8qĉy]탃ڭX!`0@萟7oB~mÆ 1cƜ9s&((H,*GizСkꅿYrN۶m(/N:ɧO.{F-]TmV& ]v[PP߾}7n{)6lPT۷og~cQܷoҥK#"",--wLQFk׮v!ㄿN!)=zH$w}⅐RFܻw///N:764zhae?Cv*ݻw5kfoo/=zի-5… sQ*]Μ9SZq2HZcPgff)..ܹ3` }G4ݬY3Mm۶jIIIo~ʕL1kSaիg\G&L`ffֳgO777)8RSS+tod"'8pرcsA>|a}PMD(~rV_J1V,ې...|Zx$%%B,,,;֯_>Fb`0:... BƧ6o޼Fw}yZ5 @{{{㲳74mmmEXYYxk.֖eټ|8N&bmm{qm6qFٻwoAAɓ+*5J-Z>z(ήugΜݻw?޸q8QO5 >3rHVkPBH(G(VժUyϞ=۸q#! |PDŠ[vV]x޽{:11k׮~R:o 0tr[O.]tARuE{ҥ;N<ٳg|ʏ?jMv9>%::zȐ!o4ٽ{S___8aott4_0?HPu:߫u;88B.\PXX+> ؈#0>H> BN:Gaf]v}{׮]pƒʐ9tPݻ0lذÇSB-[\nZ3f`? T*wqӳݿk׮ -|s/4o߾rʅ  4c\;c;vVqFznƸ3zh~LOBTzKK˹sg ":t萘wXFyeQABF(-ʕ Z`ܣG~$L&(bq -!cBt!(KT"2 ArPԫtyP=<<$ɳgϢ#""RRR&O _B!LEi Ƙ8"EDJ!H\>w\{{{>Yf}Yx;w_._)+9ƈpfJNUj cLadk&#BhG2 3tPAQxh8p EQgϞ51+FS^joPMU DS?E!9Ml2E0=z*! !ջYsuC|JzzzFFL&kӦ֖-[n޼9??_I$2 {)1hР5k?>''c,J[h1|pTZQ F(n2DX$QbgHB( (\N$фP7ާ(H6lXV׮](-0TP(RRR?3m۶+ ccc޽h"ALO+Q!!dDW΂cc!! Ea9yղ~VHm [YYfP(vtBBB[?{lppѣG?S>ٳgnݲ^xo@@ǏO81h m Fe #V.fS_b*[T04k(5y+|+o߾ÇйsgN#!%99Y"4jHA<<<!ꥢ5s0s30Ƅ=a+!BqD!ax1:˽Tt/ڵk׮]۰V c`nݺ':99M2B6Ya Mq+GV C# c(*c%ricZ ѬuzUpy)*5a˲ɝ;w.]ٳ\BJR<յk׮gϞ]jMÆ 6m)렼 qHӨRA4M-' M!!B4wlEC{,ͦ(R*,,4޸J[ls玅E˖-mllr9f~~~:t|20}ڵkl#/VRF( a"4Ea Ma o٢"("E=!Gc/ׯG BBB?~\իBӧO{ ZW^MHHpww={8}߾}Y9::5װSN8qBٳB69 FvQ,˱ FaLxEi$4MKZBSR ,UNDK93wi„ ˗/nP휓 ))EQ /1~+Hx/ko^ ߿ǎiSNq833Sx-dǏĉ5j8N1:-<4-(H1m"U"7}ؤ^ٳgzeٔ͛7'%%ӧ}===Y SչNںu+/ !t7oyyy;v`yToc(bzDŽqgҤ҇9Dc?4̛7oƍ_v-ߠ{m쀍bV!@H!o ](nzSkyRWW׭[u_- p3rFc5.U"*kawwN8%ΈY ̎H%qU?5snT5]fnVu r+f(7SBJ)!K=>\&mwCb8[TsuW9uQp/ wK ZbwE5 EVRT\mR;9pBvU_g8DE+\5 (p_Ȉd:tPʹ5+7iցv&p? 1)'N8!܇vpb:xJŲwdqX9Ge**~c4; Bɭ$*>Sʝ-**ᄫ6N^{ ('O9تZU KEBTΩ !NSn ։rTqM~e^=)ÔS׋S>! tԣ`& ); `f&>V`EpװX,gϞ5 EEE()Rz9ɴtҐ:tHeN(T%%%IJv8/_ L!( *iiitv#yJJʸRSUsNT8{^w휬#G *p Ƙ$IS c ]- XCCCoo/4999--MDQUUJ{{nOLL 1fYgddŹ_"==bZիW GIQ~UUEraBHlllVVcf 477fISSS'g\e8|: y}}$IsILLz{{E  u@IIIx nJiLL̼y+h4^~=44t֬Y ===TƤ'}ŋH?>--mӦM.x衇%IV$cڎ9( s.IRii 222|˵i$<#.G666 ťֆl۶`0+xp\<}І N<( !D嚚{MMMB$I:{볲"j1&5MCCC{5͔RX]]]ll췾-87yٳg}}}G,++D)Dey2Ǯ}͝;wҥAAAׯ_?~x___MMSSSwء(ʇ~9v{PPFgF㝝eee+VpDqqqRRܹsɉh<(IҚ5k222(---Nꫯmuu7nSٳعsN***ZZZoSNuww۷g?p\?~|ŊKJJ?#裏Ξ=f\t"sĬ_>**jttرcZheY/͛tRs/.X@3>SEQrrr(MMM%%%߹s,"fY,XMSpŏ9wK 6DFF 4N*z!,,L4/^tO=TLL,ˑ[nWWWr77w…bKj>>**J q8/v(h}juQƎmDl.^2lܹΝX, }{QQQ###B)ZaaaZO?(6OYSQrrsHbb(111ᱱCCC t:fi7\#߂d"Ȳ~~~~UUU{{!1沎r2y8[j*-("< ۥ]zzzLܸqCe%^ܵywww__f#g+UVV~guvr|j\Z1**Zk1O^I_Sƍ.w$DeRtt$1͌SN^\B4ZIw-yk<^>*++C(saR_n… €KOO_pa||L9Mum IDATww۽F{EܷosRIL>o@TakžO?H)Ueڵh>4Yw k֬Νvvڵ悂UV+|%j$((Hy#w uwh"g L\e̹[w4o@TrG  g1(J]],[lq BО={jkksrr\g 鏊g\52^d >71fS(6IIIK.MIjbFPOO~evڽ{oFJ%k׮}΁b2n__8Z ;T?qDމ&!!Rzƍ Z􉍉IިrΛ]feY>~sӧ0CCCUUń溺:hqqq}}}. boob0[7nhq&'d…ݻ'P#.u:݁\t>y^%@}*b9s_Re2~;v!!!ptvvp{}Ϟ=iiio. I,Xp{ ް0ժMDe(--ݽ{wzzzTT(&)!!a֬Y̚5Kę>#h5jGG߳aŊ]]]v2 Fիb ʝjrλ5iLbpέV6$7nܿOOOwwwjjH!55u۶mZ-v o<%%% UUUbA^^ރ>7筗WZ/\9 Yvmdd䧟~ڪE+(( )//ojjw$rAAsV?e>ffsv i59k&v }'ϝ;WSS#LUU֮]=Qz}}\~99l-C].N9!BUFTN1Tϔ[5$[!sD)f~7YIvjJwO-)jkp8 7E1GM LIII2:-5qZy^0c[jN tq |)&0yLr Χ@Tf3e[ @u *QphJ`涙,׫GN G8o!FnwJC5`|MpB(2ъS%֩PBu3x+^W0NUʩ7%6ÍBȯˡ.8'7w8!DBCUQT\E%qqWfHAK@T@T@T@T QQQQ *8w[Nx☘@TGuuuPPjo)$۷/??^tHSQJBQp !j+srW砠 ʮ]TU]#|*,˲,Xӟt6{7 zL T(=/qʕl珌FcEEō7(˖-$I|400ڪ( cRz%՚}ʕ+uuu6-440%%G60Q{V^}Ჲ2gQ9|g}&I(RY?_|1''^$1h[o9222o+2>O#J;p@[[RZZ_>s̱lşok W^ynꫪE3S^uѸq 6\~wijjO|I<0}JDD===ZM&ӏ~9sBzƍ $Iӽ CtttTTE-[Bf͚K/9r< pX*.#comW\ڒ%K,Y(h8iRW^X,2[BdYp/hdEDD8۷رcBBCC)Iwwk׮qeY+c *p_իWeYNMMBv]QQ&$$=ztFFF?Sm߾}ҥZxRBHAAx(ӧz9Gꫯ$IzW\)'g?~G?"d``R2F \o4AšGDE6v޽{ݫ(hQQQutth.\())!;eY朻Edd$cX QU7`SВH>z[o%Iz>((襗^JOOwu֕111FyZ0c,!!axx7HMM]reJJʦMN>ꫯΛ7b d2+fb6-KCC˗^j2o.m۶aBHUUUiiwqsNY[[[?><sf NBQbbb֯_5::zرβ+V8_8))iܹ$yk{{{?.IҒ%K(---Oen;ܳgbYpaaa`Bx JiEEESSSaaa~~fUTT߈w8gϞ=pΝ;u:ݔ(6=1233.]^S"bO8˗/ɡ677=,|VcͲ,Ɔ_;M T8猱9wK7FFF 4|tttBt:]XXXXX8Mׇixxŋ:駟$)22R]NO~򲳳 4ȲlٲE?c*AccHbb4G}p4448aaa"vٳV-… cwzuuuv]qiNNΆ <֔ĉ+V999bڹs\r._|ܹˆT($(J||zñh"8 ήZ-X;wncccGGq8fjlׯ3\f&&&*mgeffG?rzdd$\ s.uBȍ7˵~llxTť]jpt:˫loo"$򖖖]B8[t:0-זc1{}}} vnc===mИcq$%$$CCC===FQs4~J'SwqV,f͚ĉթKToo$IQQQׯ_w)I9'P֨v"#Z8'3b#%Du PQGGG{\2%L&ةSbz:- ԥ5ꫯJu11p8VYYᜋ+wn~"feLf3clppp޽fbﯻT( T(ogGCR!2*)otܣ'J:%c]6((H3^G6yD)5͟|$I=Pff|~ɓ'^zjmܹsS^,kvaxxxZZZWWWyyyQQtyBB¢E\JR*fsV.iNB^w=mDis]]`~uuEu559w8/kUm&/3TgƞuOؔtҔ-Ih䜻(.1[@(ZOKq32kjjrSpwK+IRqq񝨑Jioo{Y$֢gppJ[ovۧ u:Xw3Vo5Ha…ĽxݻB^^N;~s#G\ZꐐXMMg7hr2<ΉNoꈗ^x.^EʐeV,\ )\eD@ULQY;s1x9l =|gۭVkhho_X,b9h4N&fYUՐj6 rtM&TD}dьE$,f|!!ݔ1d0B8YR" n!SHJDH]MPDxzY'G- Jg7=PՂYKB(07$TzUƘ)Lf}v '5N1x$3<%yG1 ^RP0=)#3zC\a&\r3>¹Xq$JBsB)}ʸDjnk}8!q!q%Ci|lfgMi 26 ^:'\\#sqqZ^GCL*Q6+tuإ3Xrq;kB Ǐ$syvX$Q譕8DBL)3P}FD:U_GA '}-Ӟ`J w~DOU9i:j`Rq-W]JĤ(9254BRJ(WmBRB8'0([9ߠ3^CN)HLY:kjKR!+ԣsKWrC.IB\7'"5c:$"1?Bnn.˪0.s]>:46zߦ)BqH L(PN)2fAb2Q|{+ǘvsLnjBSRCGm#fe6@vㄨLLG3*‰BuQs%I͝„! ngD(e83hemMj>"BOrzr1Tx}gLT6?l^MQplXM/Bnr)ݼPJ2gƴQTӹR1qum4B~}~Noz !D;QXO&Tͻ9}WdMׯ0|-J$PJTu sm%7ó>HKE(ԘTݒ92{:: u{\Mrq˩X.|?*i@ע_V|9R\qI"276P8( vgcW[tT($׺Y7#mͻp̯fW 'Lg߫pn[W5,5E M6p#|P/IBI̕YAb)KG`U#~t[ϭwI2Jt0FqןZ*6BBE` .Q>ۇ,6np2zIӾ.^E$m:7g5 IDAT s(`:N'(a?D5ݔ"t:ƘӱR+>=n zk٦+I$I Q'-bņ,N(2)\Q@W8焈yfZR\~P E~KLov8 ЍI *0<%z6"DDDDNxxcdd,VdbEFFj1'dl xn @ER<((s_GC|رc޾kB^>}`0BdYv$^<&x Iz}||yKwުu֭[2mp)'O/_X,֋L&A,ttΜ9O>xnL&ݎ p(Ȕk׮uww{p BHaa2f'I a8=fp8<X*ݲeKGGDZcǶodtRxxxNNŋOw~&7xcttbB=ZRR/}TTs_g{{{?+--X,Λ7;άY\.TVVvС^BHDDă>yf<X*E8V‰'z5kFGG;%f͚J!*gϞuR/_#0foE^oZ(wec' Ú5k$vZݓؔbDDD\vm``R]]p8\DBK!{6R9Z'fslllll,f`xfʕO.))YfͩSvSRwǏ-_|hhH8Z d"QyFF__RׯlW^Z/vمe Z)LpZfUUUUWWKTTTbx*A={r YDe|DGGgff $7o Ȕp}]yL9:::55ㄐ :J)$9sKJNNVUUٳgB֭[9ӷ6T2 ю67Z[[}|K!GEEER\XX-ι$Iٳg㧵t֭}vݾwcǎ d_x*,,tLc ֺ孷+W~mmm?f͚={Hb /:UV|!,SJ322ojqRRR~_1 RxkQټy8S9pǎ.{ GEE͙3G 5k֦M\v?W-_~СCVUlӢp\_~ƍ%%%:`.̙3mmm6-44tѢEbn4^pi^-hܻw/ _nk?+`ٺukXXu8MRu~"3NpJn1p!====UUU)))S2 *)eeeG8 1 xqZh/(.s nRko=Fs?f( EcM+ *0eH QK~CdD#ƚ[Bctk3oR c(* `J8#TBQT *0J_;ئRvIWƹJ)!|ܔsuS*Q_ ^_Gnѯ|%?OJ D9甾yo9.$N hH=|)TP8*!;•sBU!*@ *L\%߶q_,N>yJvEq(*@#6NFI@ޥmopD|_VnS?!y/ LDhIWB T`fq˟8*B(3H U8X*! * * *`FKq8#rp'`0t@˳j턐`Ilv8p-ptt$7kfl6 cGfEQ8 N a 3qۣ2>vڥ׭[hyx"|ɒ%˖-ޣۿ?쳡m۶%$$$82 չ7SYt&u!*:1׆>Wu8>矿syf #·\|YeJ$i6=p>sN<pE)**/VIv96#99c:>wHUUޞ#ApRJ/.palۮ)[))!d,_xk9/zLg``?&&&$$dL fffRJkjj< 24/⭮](2|N8oR۷oxxn}}}UUhĬ^:11VRRB)tݻw+#kLIIIcc399.:Μ9sUУ\4ɝmmm%((%ŋ%I?~qq6SRRRGG? NR\Eq644^9~UUU}}ooo/..KMM-))vTϟ?}0j:u[{C .Ե3W\&9硣ɓs8vh[f$tKeLl6j=zSssscbbFFFB C|||||Yf͚5K444455%''ϟ??##ڵk{wnV_~بA|^n[pa!D:n(8ў&$$$$$Ȳ522R__h4Ν;lnjjOEMKKs8Շv?Ieĉ%%%qqq999.uqرb͖>ps/h4kل?0k׮m߾=,чpڵk;pׯ_>plܸQ4ȑ#<%L&ӶmbccK),,u_|R5Q)ñ`K.$X__O)5壸kGS~^ m=ѹO>#%%E/)vu-f{kRWWSOիWKKKsֶUVؾ EEӽ;.>csqٸqB [[[㸧_WWgӵ788͏RUu( !DQNҊ: TUQeo(C \zUy9_=55US!E555uuuBTvb1O]={VUGy<ңFFF(dtQᜧ0\ KC S|9u OIIpEcj!d555Z+600000ZTJ$1Ho Y{f-UUUt_s.bs:88[T|jrdEQ:;; !""#1]TǦMj&;CCCҳgVVV:5Rj2q9$&&k .H$1-yL0$$=Hp Pק\vMXKtuubDD(Ub///?wlI)cjݻyHR*hDG=3tˆ vn$),,A? ,OAANR1X4.QpS^y@innv]Vp8Dik%/}8ai)X,aaaK hˆ-fb]x70 Fhk\QJ݇._gS^YYY'Nhii"xyT2 žy;Qz^UYfTQ;7<EQKOafS#-Ih"VrFFt钘6%I;wn>¾XpeihĨ;aG܇v i0N @T\<`.\pY766Nu 9III… 9'NqNpjGj‰} Ƙ!y"J$m-Xι+Whc_,H.PB$BLF(-S2ED~ml0z=!vwn5"\$Ƙ$ImJJJbbn裏D?###p913gpiLJ[,-A8 M"Q\Zq $I튢ϒ"|"qqnŋE?[NQ3gTWW ZO>qℶӛjN&o[ UE$ڿ(?=}ISLo_}۾$n DT/›PTTܞ:7΍sʕ[5?_~5$QJqQ ³"rzzK:.i}d2tGǖ-[u;___mܚsEyGg9 cG}Vׂ͛7:tٳgΜ|9III6ms?@+pm0|ꂌ`c?Ect*;L m,]T̿-5k'??}GK:r׬Y{5ƘsyFwn%Yؑ\HZVy$-]ϟoXBBBYI1t҉G֬YR\6/]^e˖Wvuu)QPPe٘u- 7nܰAAAsu,""bőxyB>_>*߱6SLD{kt %/TcmƟN51} θѫ?cn^p:DZ?(n guGꫯymmmꫯ~aPUX}Lb&*QD6zk'N%2 ;lTSUi&q^/NW-oݺ5,,:h]1q-]nb477'%%M`M>jܿDo+~A*!T8^_Qc>22ryBш *`۷/88p,[lAwtD#lܸfy[8{짟~{ *`lc`0p`(@3FB7QIUuG8§$ ñZ!3ܦ(_!:cWwn S~rep,*DT\xꩧ***Ey衇 ?ڵksYAT`Ƌ[VY&yu:ۗ.]Dc<01f؆]vB f={&W_}%#@T.ݹrʹs ֭[ !=cwq#֦X1/+..BTUo~c0X[ɇ^~m"H.^xժU?񏄐;vO͛7˗/ٳ穧'O,..6L?+>gΜiiiyW͛gZ/^9gL<0,lX\rv/_Cywsrrw߱cf;tիWEȂ .]j2JKKDj5.SCCC%$$\v IDAT"++_~fffEQ0}\r-hܻwoޕj5L.ڶ.p߲uְ0!r%D' `0Wd> * * *DDDD@T@T@T@T QqOL!yϟ߶m!RYKWՒ%K~;w5k@QTfbsDot:#/9fywT;>ja93%B:%  H.(~ \׆HQB% $T !mX7B`6}ٳ33üsΙP'۷M6 !dٲemڴ7nk֬i߾}ڵx|8p‹/۷VZ 6/,KKK ?<$$߿QFs&P]Cyaaa:uꄅ5nitt9sG1a„oݺUVw1#bVVֶmza2ƌӣGFt &X~WVV-Kzl2ǎ;aGGիWw[ @P c>#駟^xiӦ?]zulllݺu;btA8qrRIIIK.2dmϞ=g1ߋ-JJJ پ}\g >ɓ뭷TD,I̯f_|h\z9Q!N```ZZZllt"##͉BiԨɓJUJFB_hV^m9e6l؀ J9^sY}4rHAvaYPTV1BǗBHbbbQQQHHe֭[bCq͛7A )QDD`}vS 4L999499YK.JjTMRZAQդ SJFcrR5-T<<<$I23,eeeqZt:qR/qssca;GWhhN;~xɏۧP(6mZ EÆ KiӦz̙3%?ڼy3c̲SM8RյC1ӷc:nנPJK~x…JՎZj۷ϲիSN]l6*#GO\h`;wEQݺucM2nݺa :4--hx4cƌ>'O>|\rSJ̙ ѣ CBBBzy000p<Ϟ=322ƍ裏,)-Zxzz[1O?ٕ-ZXxV5jaݻxbPAاqԩE4i\ޮ]_pA{{{><88\]]lٲe˖#Gt'prr9sX/RϞ=7nL N0j(#ܓaٟa.CVTTcS˳w &DEEY]<ѿGGGjb)~U QO BjN˞DQ PRZUQÔF)ڵkgoo j> f "(BqqqqqqD5*kyCmbN8Bom*G$ʵ|eGܾ/ɭ;#TYɝ8j+BG$d첸 99zPBxFĪށӇӸeqq{qD9}*e c}HQ%&*M3ID$&I3cPzHH6sF8IĘM T#=g9db$IU?++D[~ªbTEc-#TQ^T<`L$0j) fT9Zlb.*~ T ToM6'NJMf47mڴqƧ-۶mܵk0x|Bpvv&jJ^fB0rx{{o۶nݺu!))iʕ`8NT ޽{^<ثo-[l¡C=zRj2xoݺ*vH8!6:E̋JRTܿGGGjA>V6a~5F[\G=T[޻woϞ=/_>tPDDR=zZ߲etrҥ'Nܼyʕ+͚53'?ܠA۷'''={vر]t<k9s??s~1cƜ9suև}v|||~w@MbgժU+66UV7n!'''<<|ɒ%nnn;w^|`طo9Tva9;w 9o|||c$9;;jBȵk֬YT*֭駟0㔐ewu:?| Fo&|<7ǙŽRJ/ճbsb25UFϗ- yyy$Y y<0o pĉݻBڶm{~{۶m˞IFt_pe($իWoɒ%M6[˞A֭h٤I?:t>J0qZ{Fr!$-WwMQ§js)>h%#fszcƬZ{ݻw5JZZ]|M&SVVkɱ:w|ڵǏBJ,&77E?&زǾ <$.5O˔0jRʞF iFI~{Ր/uVI R(>>>zy{{WvVoWT!#JT-aJ 2]0Ω:ƄQ;srr>CBرce@fq,!PBk΂רPYreΝ4ir?PTb*xnvˌi;F-z:KĀiӦ=jJhh cyFx֨EQ2qĒw~ÿ~$f}xpgyO^JBK<̕P՚06H͊l&;uFDZ=-[xD[lHb?%dSL'Q x+^+!!D%j0ӦD!pL>ep֯19QDBW{Wd9F%0oV6 ,Q'qU選y,mPkʑ+@ak*rST'Z`ͩ'fm$ a&עsZ ӭT X]%l_ zT!W̦9vH1?U1X(G9Q+:" qy 6)VKd\C Qr? Lec;NZw1SÈ1&YbTuOM= %=!sרBY}'Ak3&Z(%2 LŏqG*^dyS) PYBS!RAT*qO58#Dy '"Tl7T8===11/1cF9MX.<--d2cJՓ刎??,ӧܹާOBСC !k|||-za9.qfKv2gW8p`׮][l>}zf>+++))#(([ TJz7 EQvӧ\hu ?X)8qbϞ= qǫW;we֬Y+V<%&&RJn.?;#kSl+T(53֮]+IҸq㼼ڷoj7o\ly.ܶv]‹/>fBHZZw}Vy睊<#lRRJ~FFc۶m!C IHH07999B:w,}Yشi .zyyկ__ן8qbJd2Lꫯccǎh4jggRQ(˖-+2ѵk^xڵkOVÆ 3WJ ?Xb޼yra۶mwܙo׮]w-/_|ܹիW8` NV>x !D˗d2M>~ضR5S"~Z,e˖7{;99͙3g޽:| ;:88XMy̘1m۶MHHt;vpuu-M:;;$IذD'L`U9 %Ȋbbbj;::R ĢA/3AB*P@B*P@B*@B*@B@B@ T@$3#=Ջ`k3t={vΝZ6 `ԨQ?&&&*vӧo=sC Q*%ԛ7op(~~~C |a!G9pVuss۷oHHH{cǎBZj5`̓'O֫WYfݹs租~vqq۷ohh([*T t„ %-%Ȋbbb رcĉC ΎU(ǩT*1bDAATPB9y 7n4hݻwEQd) BqƈƘp!CZh$(J^kTd>55UEIA$k׮6l\(N׽{I乪SO8qܹ!̙7( #蹹=zw{wtڵ?d2 Zjƶj=88xƍ jjɒ%nnn;w^|`ؿy7x1L2yԨQ:_~<Ν;c}0a??w\QWXQalْڶmw}ŅҠAM6S IDATgԩSϟaaannn7޼ysxxeߺuourr:xs=Vի}v7|c2B1EDDXL_~ٲqF[Vk.ĉ-{嗵Ze cvС'O?~Ň8p`nn/bY 23nڴIV[9!K.ĢoqppxW-<Al`ۜ;ΖrWApZ>s挹"\tI~ۯ_Yf9sfǏҥJ 2Ran޼""!DRzׯ_7 ݻwK$˷druuL)A ٳgB埋l^گ_?dAT|kf0WJR.}0EãV(Uq\QQ6V@}t>YxR1cƨQ:u\r|ZZ_ǎ]@5UnF)pBZZeUMtttϞ={O&&&V|;wؠAaze!u <֭[wٺu>}899ݸqc۶m$/Z0ouΜ9ӱc:::28+!?ٳطo___۷{xxh4s-~ժUcƌ:uƍ Ç/]ԤIZjacJL|FcUh󭺻cyyyVKٳg+VX|9q&e˖ ,0bKӧO[no/mݺ~Za8ꫯ^xƍ({ŊÇ  9vXJn߾]Ώw}h"9޽}ݽ{8pV'Mdu}>Ͳ{=YRrss<<V +cys.uS*($*qqJ(G9Qrs9ehҽݻMնTU޾B3(ߗNO7e'( -'eP_OPv66p@B*P@B*_l_DAPF\EG'ޫ' [[cmEבjP(O\xG"'Be󄈥^9!oׯ^MP*BB&.PF66^'(kwYv&$qML1:Jlz_'$IL['b=s8f]Qj02Qf J}xV<#QE1P\)==*o H !d2ɉBm/ @b<}7v z +~u?ש@(J̜%,??WR3Vaa˗Kmck 3DEBTJ@۩y ,sJKKER2ZcǩiӦիW+* Ƒ|KcRuBW\޹sGo 7]QoܸP*&`0MQIP( E/F!'ryj*3ݦVSH".ר0I*EP.I$UlVu?p 9#G]f~;e??۷W|k׮uԹu͛7?ݱcya??ϚX|@)#$A"&&JKDO988ԩSN:u)7Դ <=A!YYYr]V;88P(Gyzm˟q%$$L4޳[O|¿Lx12D$0”ϳB,bĿj* :e˖romY9RAUTjj$22ի;v\㠄03d ^d3fWB 3f)EiB&Pj|WrrrP(A@<ӡz٧=J52cƌ3fԀ %J,6h6eKNvtAC*Zb,BEϟ?=?䳿-Z"VR<޼zX0:N?Yޟ:cKI̧E="!P(k0b0I[5j r(Dao1V)@)OcQ*J%@5 /\ŋ}UV```Æ ?Rw@3fL:uի;k,ˍΝ;QQQoWIKKk޼()))/-111TrrX۶m+UZlWnN:?~qAAA~~~M6?#g 33m۶͛7ߵk\[ojjΝZ:tPxxyrssǎUjv'""⧟~:ydxx_~9ڵk[Nwy"͚5c͝;~j߿իWKm)u[m*k֬i߾|_``ooVjN4ۻ^z JJJzB_,yO1H(R9 2#1 /r,` զKŬm۶}駡cƌ>tвe˒VZe;NIIiݺۈ# ٳykךgee)JCvv׮]$gϞYYY;v2eJzzɓ˚ȵk׺u&}z\\\߾}###Ϝ9}4nmXA2b<"ha!0 LEh[T Vp?r?sRƝ35*u&ܥ(^Yeo8j R>>>vvv/!z9ZHyAja mN9bAcPC8r3ƨ(<3j@ɞ<9#hz0jUBŒ}Vu:|UUrܸqƍ#$$$,Xȑ#:tHLL,k~佌Xc P,;vhܲeK۶mͅǏ/9m۶;))魷ުșǏq+UIyyyGY5㬬,*,...wٰaǒYw[nL˺jFDȞ?%P: ,1.uS;5zŸUI&*N&xukt}39:M%Q8T*xt̛cCXV*%29մbs5y/SBBB(9>q˗%-[\n]pph-~QFFqϞ=O ???Dlj/^L_AX~Ν;JhРR,nx뼜;{h,4z><پ} EeOV *D^ˏ̍vE (gh[Ҟ&@E2S 8 ]]0ONMfhu\j$/P"J(/2^x%'<% ¡RFQJսBE~\ӷ.\T*ׯ_ BL&SeǢVF5%}CJ뜐g~ݺu(k+a;Bȱclg\bYxyQvZY$IZj^~ fK/ %K<زeKB"9zSz_\Ⱥ!!!"Y2]&LD'+ԓnu?i"c$IȺjM(͹[w6{u:EcgNr;4B8td"pph 8H D#p=mO%%%eСF3gΜx[UлwN4~[2B1uM6}ܹ^znʔ)W-Z`0|ׯQ0R?;;Vy*$Nf ;GT.T$P#jIF"B72'd-nvQanU[6ڧ~Ν0vvvvJՄ*B111=zرcGLL|-J]ѱmUٱJ 6СC$<ꫯ~wΨ׿uk׮͞=>#e]V7oԩٳg[n-_ܯ_;oB Ø1c&Mk'PJ#""pn޼yԨQgϞ1c|(#G裏c6m4rCuM>k@T yfOڵH$TK%BO& 9&"PXK$xpX~ UJ9|MBQ@w,qJHFN͂ȨN!N%٩Y e:5 :;[pJ믿nٲȑ#:.000::<@PPЌ3ׯo5CCC3gΔ//88QFe}(R'''O޽yyyjiӦG.?᜜N8QX/ݻw.www9sfZ%5tw}P(Zn=rlZmy]<5˵Dٸqʕ+M&|i% ;p-ZW#!1!!?s cYf]y8Mֹ|=eʔ_}ڵvvvQQQ{>k,.Wђ֯_^=|XFy~oٲ%;;&M7E'LcD)xA"YƌJ cPN6t4xVkg| iZg T;ثu^|*@&y0EEۂvo:9srJ{B1ǣɜJM΁)%떳Y9j6?1dWRbcc_y啨-<7M}?xOcչsk׮?~rWn밴i?17S>z2"##\N()y) kW|&Oܴi6mxyye&]vvv6c+;;[ѬXbԩ~V8!srQr QB(h$Qo%#{}Qn9\aY6rXZ6Kl U:>>ԩS=%111F_~=22*R*D "p2 Jq"ۯ2b>|~۱ccy;;?W^۸ʡkd`B囶DbE6M\WW'(x[QJ[hashu^Vu?%pmT|WÊQY !KuG||8eT)ߑgn,k_2WO*qs(ЖNjԴGP*-gV6 l(T OeC_ (hbɢrOܒ'"jVMFԴP!,y%6x}¯=mxTPypI˲^nUP/{{<]Wg ]@ըص 66v  ᾛ651Glnl\Fqj׆ jƌY?<0>f|{bRn#t @{Ioӛ$D`nn1֓'D'ʩI<>u"=&>k%j*6݂[VtZa)R.Q1FQ񼚘(U2C@N[3qǩSLҦqBܝPFrA`B%@_ã*SABy_ q Bx$eǣUN@yNy88\a 9cӪˆNB) %IYUl.1b _ ) VͶ.簹B*P@B*Pxl+V(ʒ@۷o߰aC[[q߳gOJJFqqq_~Ϟ=U*6)@T/j^_#I7n\I%''߻w ֬YC)uuuuwwHMM9sf:uUB?Ϊ""9uɓ'{B%//o "::QFrvرtyag %( A**tpzJe׮]͉B֭[Z ҰUj*U1-ϝ;G) JMMEݻK.͛=zT 2ĜUW^r`ppph޼oڲeKr{ݻw Tct:88,YDR}'^onnn… srrJ% O C%&&&##cȑ6lA4㸂Eq޽{LRΜDFFZ^PPsttV_Y޽c6l0vXBVݹs$I'O&̘1RcǎGFFvؑyy\j 6lزeK/{ݺu\b͛7l2pJjj]\\ի *U촬{yyo_|ńsuݺu^zyzzB\]] !r%FVY}E6mFa~{ܹ&MԩS lpƍ'O_ Tl"T8`&9T!_~?bĈDww>}'_ 2 ={, SŢٳgccc) SPbFqڴijڪbUܹ'-[&IҫJ.rX=_,;;;999''G@Tyn۶mppduѣG,XУGsRe$INT>{dҥe%ƜիWgdd0A`B7nܳg?0666""vذR=$%%iZA*۝n` bȑ B.7cj<Ϸi&..ĉ ϦjvCIڵk)Zv͏=}<նm[sTP2nnn1V *Fc׮]GmggxeY5LG^ykזlJ *@T=Kz3gj /@3f q+W,9jd_+qG1Hw Q(eaQQщ't:]֭U3VTJe̗+ZjѢE _F6lجY͛7>?O4h.]RK5}{߿ܹsFo߾jVT%V]XlBʕ+5jdy'ѣG ׯaaaϟ u:V888[^^^gΜiР9s\]]FcRRR93oՋrݻw?~}{&2:ark.CVTTcKggUǕ؊Fx< wttŝ,_HFJU|boo_V+3Ϩ TP TP T*P T*P B*P B*P@B*P@B*@B*@B@B@ To*}]k&$$$@KP" @jE>mmݺ=mϱv}h{wTi-  $cLf&@YkfͻzyߵTB *B!Ԅ81`w}'r7Wǣ`M!w(z^@FPpK{3 Lx ˖@>)}[!Y"[';(28HAh n瘱ڟf1ơ6Ìa|c0,,-fmVPr5*=K>ltQ|9^o{]gȁY&n5 /nrjˆĭG hr}DD"E/֐BN,4(߸ EXIq F>^/ײLfǷ{\SW/dP Gv _gTjRZ/:o̟=yO3HxX˷i֎X4zݔ}vV3˿P*3Qq'ܵbިZ_;zaG;REEH%4wܲlA͛Bg%A031&"A XG'CKQ8^İ111`וXsV8 .a7?Y{)~<kW:R@]?ݸy3{Kq_S W,U|Ikf_9%S.NKCw'7;Y#{< 0f~c6 S4`ɦ6`1gep,&R Y@#H8©Ce9٥>*/9+C~p@oTWԴ@Mi:6$pKݼ^ّO*OƑv%1 " li}=n pB[i$l (Q]0v66U=ٹ..P1?dP0(嚨;zÏũ,u4fOXc?qh(*j@NFZⴣ!,Il]ܳjрmJV/wٮ_PBіr3C )?p)R& Дa%k[_xf:`/T҄z3y, %ڲ 8a40?'n *bg=ޘb]Tx%m*':_0(+`@!q(|5M;9 ;woޙiP 4xpJ7r:uR@̎RY$z,(U* ,Lkgjlt1+hdz&63[ 't39o=ߺw[kw>Ʃ:IqLJU:: @^DH*Oyqr=v(38 uSAE|(b wR*WkI5X|H8QC0CC}~rzw-qY!K@7OT-\wEzd!1 !-ԡIpT)1@gpNj6>!OFGG!~$k'-HupX`ӁډeP{9Ě`M䙍;iTEgiu\D7 -Էם n[%aKA]/ȉ~%`"kv4%H qG,IGnycpT]uW%ZoT: |l ;a w\-Q <~8X$Gb&l]&Kx0e/O.(#d%'NL-&7{ܐv 5PGG-+P!>.@=KE5n?'ԴZ*ރdgT1^בvC̨**9 @y/'M>ϘK.D!:R6=(ih\Zs[ öu~ A#&%#AE}>Q¹FB!AE!!TB *B!$!"BB!AE!!TB *B!$!"BB!AE!!TB *B!$!"BBq3up'Msoi{Y{Ľ>3'w=D?<S *Z׷{Q?]fl[$|iug4QV=}JlI4咣u C{ϽUcyjϽI""ummpN).8'f C[0 {~KP}FM֡ MF:N1CqfܶUA?mI? _AwJ,Eߑj.TqSZ͌7:=u|CS\r}M@;QJNt҉8#Kc:E LJNP{ Mrvm2(ٓ1c*ʗ)+qrvq02j%  cT=JJ8{2X)E4|6ncuQkQ ..fpC{ E<~H9شGuuḌ;:NH+\]5HG 8pF8 Nxw1c9 Nѓg%3Uj̠Ad-VI1,1y2H4 Ec vEqI(8ZV >X_\14=GZBPShS34hܐdM4nL\Q\\ +ˇm{$V]W"\7I~Dy3,kւ@k?|ht6ʒMD7rTN2l"T2`l5V ^gY,'.rhs~y1 ʈRNF)f@kU45+.6| i!c7wcOV Gb~XmՍL0Ͻ2PP ( RFo7NwXJ,u~/Nᅧ?>Ñ{XT0j)CƴvDN(=q>%]pDeYo:ҀbXO(-PZViLqw+ 47-޻Ukn<@$qԻ5v9SYZZ9h-o>&MQA@Q8j\G;DL8f!RJ' )ej}Y޵5nV~2dBV=AK-8&SFAAwy9 @+XQZBEXbT(zdʧu!""'ښ.(RxMȡ'ޯ+IsN46G) ܨ5:v; Ckoa}F T 1Hխp(* BaE`h0ЀxJ^oϭ>8#M:~'珓Ww|瑣ESG+tc#Q|.i͊@}f(R ~C#& ;_^vo}#G xЂ_ofR5tc$o_դ h;Z[ 0P5+b@njmٽoB`(c;:?N IDATB߫k *+m8fj[Z`.0L:OյwNtΕn$D&${,%RqXCˊb(M^'{,Xe!R:ak\<7GbP01D88ܾ~kZu2$ %f@'6J֩> bX6d-Hyq1q;w [6&nƒ֤[P ʻ@dSZbk` b( qumDvCc*Dr_3Mdi{v'@6}8ڮA%iƩ?q9ore x+x'@2xn qD9Uwxg_9ODtP;MnF9'~W_qiqVr~#fTA:Fnk^Ďzyl\|K'nRw[wi,;ulu%\½Jz<@F"G#W?/`/'2cO&` C!ć@K$24T|(Ӵ&`ej!8QS *,m̜# ="Vz\rY~%dCƼr4N>eSY`(ygWb02c=b$$1="7 !ِ~TM_n+t74P|r1DEo* (Bq"ʙ:;O6+Bqv zt=Wz.^`֚BY.e,-cW9gOtRdMuL%̇;eL%{:}V4g!ę5A|1+~Jz :ŪsL!DOa4c嬾I.;X !YSfvPJfLiZ@e, 2Yé0$g)Ji%sn-A(BEYfEYSf)ހ 1 %{*Y(̦ޑ2~*BEⷯA,O q1BۺVN6d9qooD$Bq.*|%{1rǑ,J.1 1YB]nB=#JYR^$YQ珽#G)"; !B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!? "))sJAApHϟe1B)|͛7]VʭW3gμK^\\ oMpNӧ/^8 644|{߫gf) *x衇Fm&J{LJkUgg^hu-X3ZjÆ Rbh̘1wuWYY1[}MJR=G1cVkYk%%%Xl߾}R]}_7o|>up⅙/x7o:9_,X+[>OHk_~QVX nK,1̜9S:zᇇjQJ577 o։' 8p/((0TVV>ַ>7|5ׄh4 @k_rɒ%hT:"FɼaGD޶"^QQ=>+E ׯ_xu[oryG?3gN$!"Ϸe˖{wZKljd*lS;o@qR^^UvZjݺuݭsϵ.\0_}/Rmm`&O|뭷z۷oR8TD&= 9-\0x7z(u֍?~ԩpxѢEO<`w tw7.YkR---˗/ߵk!t8_re__r3:::&M$n={v8bR+W$q6mWٳ/ݻ"O *Bƾo 2[kʤ Ӎ=rgʕYcT=ɀ_' /xx3KRuuuRc/^|}I2'AE6eԨQ}jذaM0ݱcǞ|I L8qٲe7|!>m.cdžBl ƏqjӦMnݚ̑H䪫O~2{l) *5elC8CzkGG۷KdYbWj/f3ŋ &HHPoTS6OUV6mڼyz^yܹӦMj*)/]tٲeJ)km(zzR) * *'݊LW[[n:"rˍ7ݚoxܗMf͚5i$fY~awygԩEEEƘq͙3'777{\%%%ӧO{.B/$WWW?r뻪5kVVVc1_}KKɓ1^Z 뮻Ykiӫh4ϾR]'N[!"u t1X;vXl)**;&O~u~d*سgϤIJJJ~駟i˖-'NZ31+:/;QJc~_Ɍ#"lٲe핕_<|$Вk1c=07m$?A4s)S7λ؛ߖߨ?f̘hѢ`0~W$Bq B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B35p]DoIENDB`ntfy-2.11.0/docs/static/img/android-screenshot-macrodroid-send-macro.png000066400000000000000000002314151462047176100262340ustar00rootroot00000000000000PNG  IHDR? pHYs  tIME (AG IDATx]w|yoZB- ""UP"PD 4iCO( R{wٻTy7o:tСCǣӇ@:t褢C:tRѡC:СC:СCTtСCN*:tСC':tСC':tС:tIE:tIE:t褢C:tRѡC:СC:СCTtСCN*:tСCN*:tСC':tС:tIE:tIE:tchPb@*>![welEۙJsCrxW|$ H9[4rfzB;3}My{B%,I6IBL?B#:rT@qPxI $'\K], P\T(ˮT^=gP.K@&C9@N9t %!;@ 8j*Ō&"D8*6{'"t:WDł&|Zc@"rv b˲#N4$o#2+zύGBb$3&@0&HAd,`PNq` @@(v@JsVg="8HP&Wg91B'$Ɛ ߑ(\ s 9z2jʍ H`@l“g-e:!vm>SzRJ_٩Zt`*(Rlvݙvk+U(SR[nj%CNn*Tؼs_R5Uxځ"/!"2@Ԝu ]>aƵaqիV*T0h|I)ig.]e6d(^JP PAf9m=Gr)(iz|:)R !Ϙ&YhBQ$IӅDvMײt8vƸh$@N ϶v v1(' KcfT0 t~AH|E7naPPreN *;rĔ9 |LXdMDN-SG$ZqoV8$DflOQBk*W&_R|>fr$}uRjL_gq omҦ]$=]z@\@_eɀ ըS;CH 0-7 OgX`] -T Qȷz[׬B4߱:sV~SGz1wYyl QtM6jt晿/Qؼ#L]:껕D)G݇N?;jج]oO|VkڷCG,g5# aK)VOPҁ@T\nDneJ8w)+l\rGDa _)x򥖯}̰.e] Xkzl2(Z$[@5ȰĐciVçt쌱3iC o0N&YN_6E#'#NYd뷝8{?.>i͆Pr9Áf5jPb+Z 0v<'J,QOUl)Dv+>f\7n߻}v-`Lf,ըg I޾s/>!juI71NbĔ; wSOOLIHLOLNN_r@ X_dl&if-ZZYeU%c_2(^=:_Iw3%!DdIӻ|48*:N6Aߠ^su Wl+nqhnI3X`6{VRs5a-&Kyf)g1C$fj w_.ƬYW(YsBFSFb˨OխyHbR}ZU Co&<~G?TZy2{q( = J(;ڶh:v% {iKVl@eJ9N K))i`nM77UFr`,3?_AW?DA>uRD@?}K`|+  P˕QV #uҨ/~7tx%y砓g@fPf䔍[vY̆9qFdQ-Uخ=6vV+˂J1w%@j#f?fh_ݖ%ɻ'/Č89Nb4?>%7"rs;}G!^+٣"VuS@QKDh& -Q,\x..LJ޾˖✭u_-YOTqi ٍx|[? 7nܡUxcg~Fً&/b뤒@JfZEiV+#TToaKr6[@\|2\ejE2&3@-m|3Xw.ظ;w;~ލr[7'<`B]tmպmw*}ǨA֬aɃzwlA!4pܶE PóÜ16.aΘ|fznoʂ1wƨ|=r)99U))?:OU} zxd|{;QϞ2~b9y7-3f[Z$ܻܾsl6kVqZkW/U6r2C~M.\fxfG:$Y39E$SQ+*R0*#UqFI߶:hį$y,-H {Zj'.nOcͮo̖zqplTr(Wȸa=;vT{z:gWU+ 5/=wn˷v;QVz"A`'=ZnUdʡWyC{U4nض/{2}G#7{r|w @aA?w!RpqMw7<,`U}=6ͪK;Z:gBz Fҥ6kPc?ԤA;ENӼIr&#fȀ[XtE2LBREC17߰SmA.UIBv yaheUF1-vI"NP8bq~K-ʕ-aM֯UNM8ouhծEO;|A4k\nd!{^mDܽ'9R'Nvw>cQ Qdhۼ>,Z^5"/@`|-&N`DN>}:}&I(L  g7tK Bm<%em?zjK|IT\YÚËb_[|< 7* ҥTq e@B灍[wg3dР{ao2;+\6h{VP[|r1vq#>iRpTّQw֊bw:>UeÖaB/sW9}$j?Sd3<==xHIHLw(m7^Μ)vm رHFXƝ)QhKgVy?o8|"J\cxD^0i 'ݼuԄz$J@\0GUNaņАm!QݝA-5 ?.}>ױ'c'ϺԭQqp`E(TI6fF(Qz=5ί-V@򥏟Ȁ2K"qD$Je<v`0"߭T}۬?Em8fj/n3Lj:c%t9DD ]%٩}+Xofbg.wk1݋L$*/'QWLCENeK s36&$0%I20MI.t>Ӡ֟{9[xۚ5k`0M{("$8h4]_FBvIN{# +M}#%2!DJ5g.\k66lS6"ʄEV*/ 2g ytٲE_8?Aka@^l!!Zh]Ju8]z@N.M GDǎ6}fh_*{D8& @mzkѶe]BqGV2N,QbԬTF'EQQmǞ9;xK1]!?}~?aa}fFr':!תl4[A(@ܳesX{95%a䠏NîoߎY|^;_JJ߾mz5+]|Y8x %*k ^;`6me#F/ lvrre=]v8 R:uq6۾;oJhҰΌqLF1CmQb^bI3y~ˎg/:O uC>}Uvl}'#9LRG0*`Q@>ok_sGpRba7:vتqB |խޱ]?άT.kH*MaJ˒y uxdmW(_Ȍ ǵEi7 luZ7PYVdemqh4Ft:ef˰~Y*se[Ǿ0:|zP2.I\6\@/Ō=gC.%m$\myAU mR;w﹅+ -cvSg/wWȼ蕜fkJ5NN'm-&,%(yR(ȸD!4KH-"$.eXG qZT#gGVtػg+ d*'$NH:a&'#b MI-p7nKF# (`Gt=JK#ep"`0a#DՐ@7xnj=M>PpTY#1uzTyMM9$`.|I2!#GE8ԭg2U3<$I0`Wo:u5Dlb&P!bȈƇp:܅AAaC\%Zmqr%"@ɋ+:ܻp܃)}J f j["ҥ~ory\fyl(fe{B,7+~ y ,u%2ǽäm5<#y|C]&+^c. 1r=4p~F@H^-v=4 !1@7ʻ|@TGr5hs<!dZO)Y5;|N[|דdT<BYEoE.-:ynr`3Dv3R6^:K#gM<9C]WQwtei-!v:WD)FN^!1(n:t$ܥ|+e2OQr?Jv <| .LM総5qN;wH36B*>V+0XCdarrI<zW5JVY$5G =oɲ<=#ًZz@9TnJFdڜ?\=&Zq_ N*y23j33[\W|'Sn65* Cx*'ǷSrSÂ\.5WaDi[íJva(޾J/2y&1Q f#k er/mi[u2y<+QvG09x UzuRy}։ͣ|,JaM&s aVDqwY2򹥮S;xL3EE':t$A':tС:tIE:t褢C:t褢C:tRѡC:СCTtСCTtСCN*:tСC':tСC':tС:tIE:t褢C:t褢C:tRѡC:СC:СCTtСCN*:tСC':tСI L_)3[cp ]0h'5 lj9K/C*)Cn<#CǠ剈Dd$O n$6Y[d: pVM<ҡaWG 4L{ҍQrl'JG39I 2EA ufѡYLzSTQ/f~iғ;O'8AN ʐ/pF RF{=RСX8bYc  U)GۨAдq]Eo |uM%!-=:ÞN/*!R eǯBsI>q:K2 sScT"aB>_Whԭ;?0$a "J, nw8l `Px}dF t؈qd2:^x "ȁM5pܩÂ}8h[+D@]^}Ǜ/KmztwÂQk_ գ`s毠#8͟(3JefӒ[1aqEzpՂ+ Aֱ]_${'PP%xUUKio[vpL/پ v7~#Wr?A}` -2SPxBNv>B@"ݽg+GPQ;BA"ގgu*!PHeا=U@3nv;ʇ}O'֝=wڈ@?ÄyxԿ+8l*U?(~eN+*WuFCǿ2 qZ>dQ] z C@~c/_%dIa}絶xALT.Wro޶{ߑt8.œTp $tic@p]'TϜg@q pȔ lXL߹du5*w.^f?}fl,^@b+@s.h I)گӵ3=č~aݳ*@c.&d `ۗrIAT8yxAd_CgO & K@ Yz GT[ `v\A#( :O\hrC8f,'j'J& TF?,z=>(:R>tG7 s>O_(7{.z9&_DVqDhQ5$⾃/](eF#tG1ܮa&[o! p(vG4U/G3ʕ)/ԬZJ W+s q$1@\lF@iM r& Fvv4G tk[gCp &iB$7w upF{ )D@$ '$Xi~\fܕHˈgH3ѡ#7cQ@}3.Gs {;*LO3rEbnGߊؗ1F^MQdݏjL`2ڿ=T=(4ݽQsۣtA0[rѓ9pmjT(]l2W)Y4Cg.+SffKwNb¸fiWx^hY^Jv`DV.ab}, mt h*{W[ _9{X_Vdhhjމ *(Ggzk 쿣>/dؼ} @(6`JO02|g5>ʘKq !FQo @QE2lo-wُsyyAAH8 (N~m>|}W 7qR>ze_/Zxf& 5.Jd3Wr)}G0 L6\0-y$$3 } *8GFuigùKioT>]eP9~ܴcLl(Td.n&ty3z&]n_NecK#@a6f\.JjU*ݸ[Ha Qbw?&HzQ?G:b +\[#zC\6 QP Hʍ2 okrB #j'q@uwX@@mфY\1Gu%nrv:xG8|17:%N̴|ӶA=׉SO?׸*U}ȪaAWDE8{4DJd则cwWێY$NfO{>'9zK_cۢoܹ{'6rU*SgwmJ+ 5m!.ԸAM7.\f4nG450*e:uIP]^.YU[OF]a@NI"ܯ#99$qh(Vx@ S.Gx~lGٽPzԫ,^}>R6p I/-r5G}|CѤ*q]?nM Ey56<`sk6s$-3epͪJ']F`eg~} $YWA%㧣~X,~zw@DkVC6k˦+al(\ 2ۯR3hPZˎӬk~^(p],2b78u<_y |݊G5 =vS3uNos8c}+ߛ-Ĥu[wjQFZ vNsNEյ!Kӻ*"z=N~>+M@Trb`c_̜o4!5h!^GN^p{/e3M\%/n^%>1yůL~fuT~M?odb흸8~&|߶nռ~e @H>F%g[O$nF5مˑ6lwذ9o)Wz[#uuϠ[F_6o^MF^F*dBR`HhJ@!{( kkp5Yl0YUR$ƶ:n!2FHRNqWVԮQ=/c{{շ?& !A6F]T InKY K/X"heG"(BHJ֎<,{Q*ȩ 4wV*tkV~ $y G\}sy |g.gF >vm'4FKM'^2jd;7r&LNjz;9A$ٕ{lun.Yit~ڶh43ܹkӭVlTO%%˞\qMs!IQ`>#>{Q|I1a\mρA27߽xFӬV#LI6^FrШ~-kV]^~l0:Fl #$qE_nٱW!WoJk㈀B]BygnE(W %p#ڭV@PQ=8~Vy6)vlm6UsEٵ6o߫ })EG65ƥ /CKGWܡ\5HE;zߩsw>fwL\XPx؝s!w'2u-8XNGu6nz1#+Nn٤fhpB׋=e6h9Կ$IQ"mX{71xة{5Z,Ox "]?_v.a*Jq6^V7  8Ӫ7@,nOJc֮)u"+ ~aѳG?|ۧ\nlN!K++O(U8f8@ܳx^2m}ԄߧKf~DvF)]BvG/O;ve9'\.Cl*9`0g_q+N!۲}_!zK-E fs~1?vAt={ϸWjV#C 2Y֬ڵS;uMfQt5qw&ґp-$FԠN>o3 jb\XH=/vz% ]((7>ͻ\fJwO˽kqεh3S/<#g &K sNRw50q hMeS~sQٹ܂Fos-3j'Cn!~v9do>{? Gc2 /m>%_^v}N(,QS/wOfؐ~>X.G:6*|Vę--g}ћ^wՙvj;ӛ`H7?K3Tg:J'f3Qo`av춚sSӰLtӕ2 )Gp ˶tTs] eE:;4v?wrS}9%͝ T{g[ZG _0vyMӒUϼ٧ _<umu,ČN6rj-]Oi6Jf2uNoza#*R6{1{s[oG̜EaEU)jw7|톊LN[Kgrr4`:ap=Ͼֻ{K8nk+27sKnթS?z#U.0Ra52/ȮGI cƦSiȫ~ 'o{W #W /ZV"'6lpQ@EHKQ5맽orTGoxm ~i5`BqpY;nyU+Fݶ]:;IZi}j;m2H9b$Q'd?j}?6gumcgZ*Y&cv-*JG?.>%VeA}R@Z:4A _ry7Y54ȖnG|{g3kFN1:+.H;LW}CК;p16)wiٝ9{ÐI B3ܩGfXfug5M𦸃Rv9]ٍ,FSڹtjix$-=]&1s4/ة)]ӕ$:2j uO2lmm&e+ێlp,o^ ⫂%D ktle}[fRZ#c-"*/c+JLg#7CF('3q B{5iͅOq_-b-faoCu힬4Ta&V|BNVX,`A؛EEŽF,{ "*    "*   " "*   " "* BgPn`ٻ<.x;wYpo^--o"֮l*ACBDD#!& 5}PAZ "ruAQJ劌AC, DEtEA訢 ANiLi< Вլx("9 {l. _: B$4(:@Ed}MAɋԲ tAA2pFQ)-Ntң[W;+D^A 캡}u=fq'n%&VZ[k(@;RTkNˉ5Uի 9jf@F>A.!*SNtUNXZ)EՇ?vlCTZL,ur!k$F/&tuOJ)hZM(*0l1"6ͿᚒĬ%Х ,l%y"ѽZV+->a35&J.|2( Bs8˷.|a5^QaVZN}/XjA4.b{TZ#*]15gU ]`%"Е1hR ?]zcD_o:^R+F'I B4V،Jh6X~׀mZ2S}Ge:NfG B5V)yZo#dɪ vٖIk|*8` l IRocR5ˁ֚wWB6׶(K|6=[u]k8! f~pK_5?>FAD u0fճOf;biu=QVLSLb &Xk{7; o[ )cGl=3gD AصVV;Pl:n4 B ;R0J9|El)':Nbv ##e\VmjXs5 :qrCŪm4Ȁu}@!b:%u̙HAvXd:=nbfM0;nƘJE `H(f`@%()frJ˗+XYX ve!JY1+f0 r, Un+2'vŬ\f["COAv'*L?Fq:FQ j le6QT;~0|;'2z4O?9!jO]PF ::ѷ/y)g9={zto[7z GۇR3n9^=C{akC)6AyEÎHuNZ W[|':'_|f͉\[t\pLƛ"J&#_(B&Qb ®&&|]~{rd C'٩D}H[8rET~O?A%u] "`Fii^cUlR0λӻݖMw|13 _f hoE+]XPz^< b,WC>wLw<\Oo&r2KfFRfgZ+gu5>0׮鏝@CGTfE=/Y8˦N̟j j֬^rꭑ޽/- AC瞇H$3RYJ#-H?ͼΞ8?l,,oyۦ3 2Gr]Y2_ky`0~,Ckip:!iLUjаbO?OX?jLw/9ч"l3W,"NSa LVS: Y qlϭ֮բEPZ ޽V8ÆրZJCлAhn h`>'RJֆ c؉' AW^YHPQT4C#NRi|"N]kt~"@C A)h4~?))`mCkT+50v=ؚ`*\ݳ_<N,(k+3{+++{" \E[ߤ2cpZSy!ނm4`԰.p#LelCᡗ]f Yea'hVPW@,JNPxS 6%-uCa5h0AQ#<",GƽzjR'Vs{weyw9)ݾn眇hW_z"E)Lb7?T}W~=.o-PNI^]i" JV,fU>8v{ i uk{i/*j}Toi/L{2jpA(D̍3&tV%&T0D1o-YWk_]d̘UN6bB3}cҾ6}+7D [9JGm:ҵ!,4#8NPH  L9#I c5#Nmn" PPk]sAABFJim<ܛE{~bI`.@z "*   " "*   "  ®Y]A4QAi/m;%}OРÌ GEgW٢vuAaȵ :'aQ)Av+ mp-NA=ANuZQ&SDL!VzL011Xle+[vr"@lڠsE%-u6m Š~ DXA=KE i "*   " "* v$AvN;!er5Qy&Uô҅LA(*dNƚm{-ca,ؠ1)&G ԅfc( ]TT'S=id(l,H`\Ž8JbA {44ME]K~}EJYN<䐫î"c {X̪.Um&J6%GE\YXa7agH:r#5zЁ-&򌭨Iyc ]RA5L27FlÊTy)hDg$V/,ኚ:A3J èK5Ѯk.[aOE:V'D PXp:-2g4TD 쉢B\uh2AWR^mΛEaO:m"z:vyA( {S%}fJH-?QP]22iH )*d :KJn N+dA @5 @!A,QaT}[SW(j_ajAu]T L:Nu4T5k,InB0)?rb ƢҴ$CQkqDJI!t /t"kVi/ՔY+73%`FGH,iɼG֗Wes.xGShH tuո(L1uU)zjˮnͬ;VJz>}9 G#YՁlT 5Ev( \;9 @EDT*0I߶6g1Ԑkucn)?wם  T#&/~4SWx[:XR f(-Fm\= y)j<-*r^w] /@*SO7j'7[T |GPz߫x߽ѼtC|n %S)0`\6/:9]lVZ AѲ@veӻE\L̼Z^f,xn5mj穔)p0T*=+\t1ɹ?ɖ_(=1DƎu+Y'_7`Ɨ^.2ަg-ãto2~6EH XAeΨ +J\ۜkب6wT? V),&{0F);|dlx )Ts%v<nj4eDC%C21_h7Y\ng5ˁh?Ug]_;?ʶs׎9x0٥F@-P mbk!\na-|К̹Q'&7ewAN[ƂR;׿1,%qavIJZpk*- ^.97ݘHve-1%gΜy531QsᄈЫ?딓b&sƷ6aVuŰZuװQwL"@)T"wG?jt3J*JیG)B Rْ2`ݠ%9,Aq:6K#GEL-[g?_qWVe{hOrTdHnݱaC+4`rү[+^ɾ)A/io]fv.ߔHIΟ7Q]Sxic'V(pL0D}8Ë1&ߴmI$Aŗ|/~ 7Ԭ#ZvUM U~(5id*Ee+*JSKq+SpgղK;g?Xcؼ4x_zF}Mʰ Ҕ6e2xzᕷlX߰zR A5i9rT#]VTɺcw{^p!Rɹ?il[.ÖU2nf"V \5svjB=hP|0vܷ52ܺ,|l+~o+݌8= ͜WBI'*T-;5Tc (P4Xb_)O)HYR5@-R*}1Uyw6mpW\As:=3[gUϝPx#7ͧ %͹`)++l>3l nx RRђ;lC#~78;n_ n? lDrr970ᇋN=ed2 Rɴ캷0lxޑG͙mFYby6*3v5|9gL'**?nF1U^ګT"ka0j>Jud% oIF ==oPDJ8(ڴ>.Tu4/v)'Ld˖&xC[z bX!bN-Oƽ2Sp)W#}./9n&2tI_ok]3 }2HO6ϜԽ:8msf.uDOpB!u˗-IZ:z&&:qSuӭUTMK tEQ\oI[*>4:aҰW'32@-%n3gO>Qr֙c\wԩ`;@'꫻zt?pB#k=DC2 7G3;ۛOn@8Wb1w7`lɱ^ 󫪂ږJ~?RpD5:?|#=l&l#DeϏ1sJ)CFy7h p˾kDlj2 r^U՚_wO:Jt9Q_{OWjGyƼ6hl[Ԋw]Dr?u@5@oC;q.lo_jt#~đJXSkˮ"J1VEˠ0aӧ!?1Iʔׇ8Wx/ 5:λʕbuH ٶY]l} wߪZ"_)&"bgFj5+!m/^hO~~`ջ‹RIW^]pI\~ƲPjo5eOĐxy //)Ekp-~PhjƟ6bG W|Y]ZJsWC{ Pj_Zz.`ڱF*kuG̦M˦ܼo/Mɵk܁Z6-]]T_fmU2~+5rT("FU,x9_ʊ“>[0 [躍^ }$`>Hq-8-@*Vi df0>|UWf 槞}˿ @COZ {s.^~cGJnY) #MPO: 7׮րPiЛ'3z]0dIo~ؒK~ *"HEZ@&&e3H! TЛӛ|Y0dIOl0\K_ 4ۉ+wtG@}U)o 7?-Z^߭`̠_^C*ra#_r+~Xz5кU~$y`uE&B K+X;,{[g$ OKrG1s5ע3F|s؍4\1%OZ[  6u.t>_?{ߑXecP+;(^J2(xcć+cΆ뻏߰s5ǥ}]xue7d3l8Zǧb 0FxeLjR9,u՜!q VkTL) @TW^rH속sam䨣 pBo8kM7p/7Ol5["c[Ө"b$y&Y9Pe9,fںys`:03 l_A8.]|/dž܂Nó&9o^^8+U3qr޼W]9' O?m9SmM̵ۢO-^x~s,>*T[tq6lp?#yyZAMu΋}DU辷ܚ "X΄O,~$0!lxpQx>@/1yr3Z "TSZc A⋈Fs}dF׫W?6qRbuU/LEe{ʭO:U/>,9O?Mk9i,˟LC`Yr)'Cܨn_0D` VTJϡFI̊HW)6d]ٌ82zxC۪w]\1PtAFj3$W~I JUjj1S+JGis7NmʫW;}&F̂1VO/̙DvkX@8AvX<W_7o唟r&ڎC[k,opE,ĴxY~}c+//.F9:A/?ҭWՕ=Ͽp 7U8T=LwǡLaˊU ފ@QD(b JM8 @|(@W(T?lWgK_+&L@T1}ZG8ԺJhg{EIj{n PϞU3 SKD(@8R|):1Q&d /(oaPr)Q%sWQHnq3~6I܃>|բ%}Z]uvZ>7lHꛅ$(WfwʴDZucJ̷&I/] 7[0ThDn VLZEք#>F*嬗Ee\w# `R5ӵkg)*< bruu E֤S @uM|„_T#L3\3s&=:lxF%cƄ`kIڰkcm~^^oa7@;mA1B>&:zkA4jTsr$r&NCȋoyeqhkjj7+ +,j5RV~8v @rZh+9q6& (}ӟ68u?fشo(tbϽ0 jWYA ⳾ EqORL6U?֩%UD *{ŞސLw|š7^G3m&ƂUeEo7nqkIm$ƛ@T;k&*P:Ԕ#%䡢I 6ik>a}3P U+;bV\c\}Kk_B萃Aqٸʈ3! BWTֺV1G-ͯ{~ZG{xW#z̘d`VQ<ǟ(^R>%r|ɒg~K J: =zʕ_:eġKp]@ib&v \mqVN\ֿA9?-xQ(?}2G#8O6y߳'1VW/-o t;A? m)rs?jj%dW/>}㫕Eg}_{-E!K5(c;b^񏿇2Gs,ƆPʼ˜ !'9V^ k> %%N>u@5}oǶnLڧ?uj~VNAIY|*Jn R,/o}Toi/LXH[Pl*mZK(g5; O:53.XI' ?Ke?7{ԑxm<FMZNVppn&ծ\ow\Dz!_fTqu'Ǩ=BxD`/+2EK"#ckFq(L--y>ǡ O au^4yKeiiu TᥲݤףV*hlD%@ yU˖n*}Znä}}[k- VZW.k`Lpd҆ IDAT%K1Tk#Hi~f /Ա8ZC`ںvD R~qͺt](ԛq]U@3Duk6s8`#/.OT8/J@5Vs0U̬)^i2`R ViBк#)y^jtIJ(8Sϒ̊X@"b"0ma'v&Lvc  κwս{O:t%Q玘V3 zDǝym~j᝷>OfT.Z\ImepܶǬqW&+Jb׹݀9] K 8`Q7Ty-2;UO`ȑG?>q'EO[xֆm 0ڐ!.,;]؁sH teQFԥcCD LVKaJfͬ5s5Ʒ1]7h\ҞF-̅)_ъiCrNdn;nrZl2NNThDq[5&x~Uh cΏEmvf[+ʹ f*ANvOkx$tujj7c=nA*vv䒣PX tQuu4uERA)h%L;/Q7u5T2 tQuX4 %6HTE@Q A.%*XT8XM~\RdZI BW2 <.{١ȶ^iWJ eAXpϬ&[VY#EX @Q;owbJ?6Lv-`OV i5[II ZtbBYSVc-Ǭ)%le+.506~{boȆ5 mQkL['ErQkĮ#GynQRJ9AcqQ HY+h 1 -(о710F^Z(03Se[hEAdŋ>ѺiKZ"ZU Bqy m0Y@8eByZk-fkLª$)^/ARR`D.IeiQjIQZNiٛ|r u|<;gcJҒhXkS̯/Xb3A[K2[k@+oxj$ t},oT n6aCŠ1 P^ ty-,U籵lJVW$I_ )P 8ISݓ7^9r p, (TAT^QQ_PA@rT2(pݦٝz~o}ϰ;;SU|mrR100000b`````H!CI400 ܘ=/dWiS|#>GPK25}@LL)LAOfB%h3G|TdKpLƜOi>HȻ27QsxJ{\#f0f{O~@ݧARd~yi9>(9N# X "`bthĠ4I7000萝>L &aP3R!FZ +PXh{>tRLw(fG( P= |׻4e' *Yv[W\1uL#}wtgGɏApIE+~qCwhM9`?Y &/ IdRϘ੕J1LcJC"I&EDu+-BaW8@sW>ܐbREK ?qd5||F dxm() ^6iFI=8w)J;:&Hح 8~1},|a@nkDԲ)T0 t}RXOfU>CEu`7M#qy ֝Pu 0o_ۭr)YcFwqHH_Q]c=D=-?`䋂Y(25HVjk 7UjN' ;l~"'k(Y%j(Uc) NVSmdShO4KfK{PdUh^hBlu%` W&NXTw;;up~Rq*Evc\/[CĎ0CM]s%WXsq'1D?tJG3&;a/h?%Q,?%tgÙ.? >T(JK~ɽ4\#gm Vv$sw@]7+cz+Zq8cM뤉uތF]3 /u>NcJRu_> ccOew& )nxn\ z{Ϯ|G2箦x9‘BgGptJڻzzr)}ұJ KYY3FĬ3Fu{f]}phK n!Q>񿗍)-뫑۫vdXGJ(ϭޫ%V i`` hγ .q"؏ "ʹbhaC؀_fM3,SG\=uD!?~ss} $RC5A>Or'RXj>~X{g'ו^\ kp@w@WMvL_wZE87){[ښ>ב$,ث% @ k:09"`k `zkuc3?̦H0' ,X#G*#,Y:LYՏXtXB#q~(SG ^8JX:Ltx|DW3v_V@n@*) Y_"%x$we/߶kF߲~eZniЈn&Mg:"=WM7,?>aZMz, ƭb`p(Ί K B3 !­zhB,\ 8l}}&,ݱw{IS h ; O*Hk8ol_t;BvU/w&'3LgPfOL ύt^ ~dx0uATQ ) li>PI۷ F%bMw֐?q u<G 19F*&\أl& _tE]R%E:HPG/iJ\=ufG>^0F*&뙣$$'"\)}&troz%0r+N7pav: PyB(9Uiƿ5BJ7!S W7gwZ3u:`EN{cft0o/e> -~vU`=8B˴dn!|_Z_!%"+vj' ^[c/۫[S}'Y !s@K' `#+ B~bbW6Tx0xv."ν;BZ|=.Uj,ZHM5iH`XKR%tҴo| vss#FͶhQhuJ^\KE;eK{9"sú >I_{3i s{vHgr E@@jj'վ/{qc"s7ힹkV!>s+໏⺰1AhF"W?1`@e չ&קxhay6 ,]%(磯Եw^~!x_gN=H(k7dhG&&unD(@ ܨj(ϯؓBƕb Uw)C˞XUh~@Ї2EB~hi-N}#ma&aR#T-9#WL ۗ9yQ$`栜(Fn\RZ•`< X8eQo?B>NwO/sQ]zD\EX弰|gJF|;,v—>KGE?w҂ŬP;X~ߖ20\.h>U{숶 D~1k%i*6eJ(ޓ&B(~{]\ŪkH6b`pU)tٝ$hlI]t9*L4H ? Mr]rWڴ\%lZӢfKlqF L̐X/@ >X413Tli h%,.ZkFHR>t,XQ$xu4٪5ӇBt4-ޭZ70-\3D+NM ˜ػjDSzeYR~Ӎ|}="{|z`R100?1 O_sEt2|8ߋOx+}Y0b``&% j00rag -L1 @ylF1b```ƔgY 0#22J{,-*i(T D̷E/Lf% @Q|c Ð!C*T R1000000b````pؓJ4 rG\wDv 8$Dy_MTj````pDc2Uq >AChLMyE9y߼o7sٟO*AG{V4kb*hf^ͫy5z d8CmHAS@Blݟ0#Y=j*dxO*.''"ѽSn :,3ĐAǑYC*T R10000?K*\*f```pπ|`&DB AB@ZǛ9, hYKBpVAg54H t8DIN. ϰNCŶ%f.踴q"EmT%աaj>bJ RiIy|bbv:s3|}iN"pLK 3Dd0N,U|w`$;t@J^6Jq:܌(`f;wH"&R jKɠbq/;dMqQJ`шYIG/Z62JVT S2?1JEg \LD+N׫+ m P/ܴ(g!uf&j$e IDAT/w| f3 ICˏWXQMUkI P$,āpىn)XhxQ @Q7kBDvȢHg\djD,'u@JXTe ڱ=K􌔆U'ŜuPBY҇4 wq.;/{bEOW\ . 5ݚ ?( |dT/ Z: IxdJYĖ*qe8QîyjS&_ߧB_ܒՙB8lݲut=)vNCiÌL;!Ml2 >G `_VGV"HiU[%+|TG92o?m].;£J,}&ͭMfk"ៗuӌ_bx=~/}ӌOX M1iVu5hq)` RM|2YWRJK7,d~s(3L7AߟF>j^>t œbp-&&@3o'7õ"1 y`n9+@ τuۺ|(, Xqm-iU gna)ݣt|}aX_Z[# |f\g1K#J8KϠ:ɊjrY2S62JjϪ%`7TI/E s. YtRTMW>Bp%j(YMyj@wȼT_E/h*m5_ hUWMQa]Щf\VV&ʴh=GJԉ!/]DM @ľ_: W=q,-i_%gie=4p}JjKۑ6<^ A@(]&|j_۰O9BcKŋW׿ܞj'Jߑn>mh{ZuZO8T&˔ϩʹN ZdI֩\pvMAFs/کP)qӉC^;y޷&kBRY*s˶r 'PlUz+ 1@$@NWrJhų6!]25O_ZKP\;=n3+OH_ºPh+4:%8cJw:CqNK[lJRd g-#=-'[/憓9Ӏ^o ~tVo[+6׿eU 'Y{&WZZv5ˋ6TjPm0L: v) RIҩjm& X2ҩN613KeW5 jqvi,݁m XŬ0WQAd.qs8 d?Q"4׻0:u`+,nzl3w ԁVN`%ޭfX9IV -'h~(S7}hϬoljXrm 3ZI]о `*T9ԧ9}Xep};GzWF cv D@ 섁 gm߶qMr֦WVk񋏾OagF%K#"o^3-VxtK=6ofKɕ%~2_zjT,T%Y{SFǀ1^֐p^+ߚ40ꅦB. ׹$h.-xj 8sle9Ly !TpciLPj'اB!R{' ͅ9}aҐHAx|MA]!Qx$ue INǖ8iw8:{n> u),ChVuʣ{ \xBZ8+ R$FiOi';cFpt0xeͶTi`n ̚Y2ED#ic a=c04Uu̼(~ُ/X )q]@ߟB֖:m=$q^-7wRϒicZmRmkGO`(F%I(pS\_ )&o5h9 ^4_B yfkS B-j9 Nvc=nP`¬T+jJ6-uoSg=_:uD߯N*۔txZ ☛^]mjL7DU[;5v3F ;X hI@j}҈ @ 1K;T5^ cRf5)PD[( pvA誤v6-ۜ(-* qO۳Uؘ [R *ŠN+-(4 _;Yؾ [RjܺBAeDy~mf^`Rzޤ"Z /y+Zt)=bWOv7[{Z̕HkM![WZ$-'hA$| \_{*,5$+*;,SjVy(X\.F_ڳ CP1Vn*[-Kօ\$@ N@ڊ3Lο68NRXS!SMdHoJ|n,T0,d|n9{9/9Em:4YV҉4e nH5ib' -Vl/+"Eu?h`d&lSpUq)aQz`aP~Vt#',>kLb>iZw+v%F(wX<}d2~Kv":SƑLh !)SpAdq]尰H|X6Sq:@ m9@ "!YXˡ'X8;`% (\Hw v^@L5e]bhHZ Cm9`Jj c9T/̀Hcq6RZyr8GP )B9hJ42 m633=[ &F7tA6յ$,Fa;%~;k'[v`p+p9#H(\ArTPͯЄIp-pHoL3k聹H@,ٲe!OTD9Ŀ>dE;kOpse v0*\i Ev+ -{h±z~a\7υO]h;Y? [uη=uߖ ޭIPhCcٴ1P_mǦP5y*g %mi5kK׷t.;K]ui3s_KwJQm[Z^ظP 6w%q#ԠG#&n''=m@\fjENtD`dJ6jRJڳ/`T @^6trgJ;OT^O4 E#O;_5|ы:`M{=6O< 8OTybߒ>m`NRl.)wFCʄ$5xlR0dL91߉X_`L쫼t֏BB∔p8P '"؛L`\gK{{0.IG*|g=(g#r;IKtP+vTq.NP $T$" }fxgT(;KV%vиݴߧKq;[t\Q$V%˷vҸ]R/q}o' \&UVLnm:eъG7{1cc= pBGr [Yoqj*ErT a`J/ %bX * 3@rK's'쐌5 kkG@ї݆On!O6+KLi=6;=w)tj *A&v.G=5c^߳ V}oL\ dfǗ=6#-q 3VnM&źB>vJK|WH>pq 3<왵i%]G-q1[OǗ[Λ擆8~x_\f 8pvS?}PDJs~ije;`ـ$&0jR „~]RD5&ɓ^aq[4 cVܙLse(ПtEԸxuŪ}'rY@yiAtI{ѵ)W [0k+k~ͦZBԤ^ {XĚa3[yn.I6sL%{3q.,I@9iXw[} N|uiO IDATHdSSiL2CDC+U Pjp-G, H+ F_5TuVv}6y夨]*h?m/Lm-U{FOU9b}߫So*sɿ}u8/&zʝɛ:"DZ~CWN_\77e4}]".^zmU=F7V Rr'N;.7|(!7>wsTzOuUܗy 6VFlZ&Uƈ>yXxI ڝjӆu{vdJi!{3j}-N'D] Q_%f45Oy/J9#ET+RӻEz :$wXK>g}YجrreVKːm?djP_*W,B;__SWOѥ]tHn|A؝oߘP'2I +˫Z@EJ3[ucL=Z.պؑtm`fMuWkP2LGu~Y~0pRJĔ0Q;v{j3']P*ס8l;^(lGYa?B '`]CgK3GVZi';yaQKx/O>$ؓ!X!i`P j+96C.ٞږTYLbǯxdcKftѽxt{qt8\= f }mi -#񽩷=j G/"EDE^Bnʤ>ė֪R~zTWoC!'gĕ ޟf`;=3cOopq&(uo<»M; Vu qnrLS_k2}~l\O,)?ݗw MpAPNnG׿V nwJmY h Ύ|0IU18H9a! kmՙ= k|]T}mI Q"; ظ8b{]*Q(݂eΚX!}f."c%TxթNI{SDD`،3 6չٰA}i"5dG6 6o8fj5uEPVJLIzqύ5Swy<"-"э+" cV-o~}n9kvT]wAAίp9o$+dcA;/_\>ZshKŚ)  @J}=L󥉕^vdc:"0P9T BC@iL쉵'V*U~czG6i8JTV\fjZ߇4׳SS/N/n'GDT2 V>,3jVm_mi>i@S#{B={~9+Avyq:='hj:Ӊ|_8=2o3rgǔ^zgkn#V,󒴵+A᪺O@Du26a;BIׅ(v}s˶""#L.Ugv4bNK`᥂YA 3gCz\>=}"D3CRCd;R,rX3ku2j<ѽQ(٥{ %B{{A=k3':`* 1tc{9eE+ (w~r.dab};R'_<= xe#WcO}9zޕ\] N7-3>u1JV[]>$XׯoS*f=_ےSt$ ݘ§Gvyv}Z[]NT9WjI.ܮmwYx}$0bpTZZZ6ޡYoJHuۻ}{Wr6ZAQ4GYZh)[.+Qfwu”}8u[PT5濿KX6J>“q%X-=ʶ~ژ[Ҵad 6U)`|ϸ:场܁]"O_w3&N<,{і- bcژr6: TY|4A+0&)(9#\{w 3G&Z P8JN`iU5 y"['yh5$Hq߆E8[%>knPgj&%A@h-Y6Ц<'oѻ{v%[.]4Xmf~u͸j9ivy^o@,jќ4עNl<+Sxk6Eð"m'ތZ4TO(їM=gC0H/UŤ29Oʆ$:=hpVꨩֵԦNmj/ܔ^jSKBı ͕WmI?sS{yoX͘BwIc=|ߵ-{\,`yzeՊK'#MoX}4>suKaK kMc-ǵOE}Xq(ݘ{Pṵ̈&w^ޙ{}ԡ=o9ceST56["؊I8/_TK""`6}忹jҫߞ)l̘>y۫B SvaoCYIQY!^Všj9b #^?|vU_xoڷg*o 3OޖrˑdL8mPU,mLU U 7۷>ւ|enS=}rYͧ"z~u YdBYo/+G769:e[%{pOoJ u酂L?,?_*KQK8yɔK, OO%!d|=Fϲe!'?T[n8q++0%39`pIdO/șŸ-.?.fqјo?fWu,?ԝ}h}qƏ/G?0;'o>QŸ: X".{p?>i=)%ԯx)wVCycC;" )i}y3weuIt6;"W_>5P  tF@57׮)şTzΘEyo~佺 5 h[}7׼E m \pW;6&Vftׯoc-{B!r&K?5۰^ݶnW6Q6E;JXy`>m얟лij~3cv>pOW$jڵ;gc }殯qd`_\ޫR(軶Z&p^~Ϣ[-?gMn^ˁV着N`f1B$5Z\vg 9!޷U/cEҕoh~aMcߊ8N(dVI85ktʎhWZ{ZvlXxf%+7mo6ro9Z*_ؘ\=w}U#&ޫo׼&QgWUSY%#^Y, 5{^Wp?L#{$Z\] c9 `7ϻ{cK?gIoiݮ8;P\7>*> YW9 x\IvK]08/še-BsױP =Ik#Y'Zk}߯%?Ne?:ɽm' ..2Kb %jć63ZQld{`0l0X OLb$5=BX rR( IM_K %U {ܝ@V %XGX||2NqrL 9+Z$O/ ?x/=--m̎zegYg\z"%k< 1Ă%-4tiXB@K !ǠƆ?:5@M r̖b=͂1:]DbL#뜳֤GUYK:kp(la7?ݲ HksE IZpdCpXD̞c̭֝nԬ@k!28xg:O;%|FrE]~fncLa7G'"D~dlE`JJz)˒Z*JL$snBdB`ā"D̬<#80 $xlVa a!9 O1ر.`aka`V #n'?kHˈLॵ{%\}j֧X?Pb lsSHV#4m]5!cú!:Bٌ;۱󢰃K붌>6(NGGˮtp ;GdkɩR(W$oo^[gmj0iX%)u=LT2e[}v1hfQtHfJA5OE.]59ҎulJ2@(G&Zs #WئP^x`/u+JOFv%,g;a2%4tغJViQTN#& KvSj[(Sj#LuD@ wӚo: Pnvvqrns^[/#;0$*8X g }Kt}aW0=#F^e}[7rLRPtp$C>㠱 (g{ ȥ^EFVSd:ʈ# s/[ן֒Qnwٵͥʀ(.SYlQ2ۑ869$-݇~?ś(d7f_lv[3]v5,*9y:=TÚ }ਃ>OMuk*'vuwCu 3 Z'l<'|4aH1^0k GOmJCu)rOGܐ+):z͖N98ʺRiZb"]mvoA1› |s۲:8au<>]ZH$3&ίP@z{">uD~P'`EEM@%MYRV  d2 cWRmHu"2ķC'5-P!""2$c{GW2rEAD$\2(&QMRJo5LHVKҨ,aQcG2OQ+NW 3dv6 I׺|V#O2Rd۽" e$t,wA5%l`H1ƘL7QM"iA?֓졮ᨔRC١B1#01` .4$9/ a#ba-377@)1 g&褒.f*+Br2006w[%I/QXROSQJ)~spRǙXe@C%%&C>RJ}4P~G:T=tI:A8zFjRǺT{Hg5Ny]zlphw$ɇh(12 Ɓs=)+`9Hs6}k;v'T`Zg+Hcӷ)O>}iݼna "9~˴X8ېׅ Ƀ#':^)MB,L19{Yq %.Qk+'J)u0:Be+j~]ܵj(!U[c`]ʯmBיΝQD:g;ja:^(Sw;Hj*I&>UJGZGQJヘVOZ IDAT}~&K0YϬyօD#E)JH]󬏤6hpw("p6iOyKb,J)uV]!Riu>tֹiX8/RJU 0Bdr_|j*M&!HbUJj`jL4Z؃Ă$j+T5 #IN9JRvIL@TSQJ)RJ) R*J)4TRJ) R*J)4Tf;8WH-c/`t=.r?ʡҾLp.sJd:R;} Z"BQJRA[#bmT͑st*,3N͡Kr8JC-1;2*BG,٤LFb $,px'졞FKR$`Dօ)AN:ZA),Ĩ u[kܷV؁Q.Wp n٢wυΟ>hzHi8╱;=JB@1'aaE[ƙG_q+ޫ\74,LDaI&RheE)uL8 I9,ܻG ѻ5 +WVŪ`R8g/WOJ`_r3Zt/4ԑR#*w_5A\IjO1᫧|G8&r"! Gm7cXvX*d@E}pO3"PȂB$$$ 3 P YO*$a<Xa ~$68+c(:<1G,Tvg]+_vS$H$~0B8o mzx=,X^q얤\3JK5郦/{ .LDCq3}>L[Qrws sO9J_9SOn}:ZƗc}+Vmk^cWWYS^HHܸcFhc;w.ٹTNy3dВ{Wؒz^Uzuy <Ѹb ;$HhBqէ]~ջ<eÒeK@ܣ6舅 >E}GrǗ=9A#[׽67-i^\2­ ."sF@Jܨ0A! ے4T4#p ^gZl=%d)nn>k`_^-{N?ߴ/O0R'uOUOUT{ {y=n>k{\|Y/oҽKDdpOLĹCΩjn{3q֨3X䆧\qCѼf[_#ĒNaDX#Kw wt'ʢ7#$'108sK C+*VsyaWjq^+mY:g_wS3n:>=ӿ%sLpz(+2@aK6T 9*v@-T}1L:>m/~oCFaGD/oxQ|q?=9[V @⛏ꄅ|S\q&Tû|@ݽT;c.X]vB$W_o YJi!=mqIZi=n@h?_ǁQ/?X>@ԛFPCDz8A/wͽ%\-{PZ'LM[QEDP8ɚ"H4݉<(ιr7 }A2?TЂVHӕPW}TVIn]6{جep"<P6BtQK^Z@Æm3A]#甸#?8AIBH:Q8Fh(kݨX{!ByfՎէ=hِ6 #]KEcU[aj%{{ͽs[oɺ%:GbԊ+aj!"2dRp$4_>=Ӡצ}/nؽ#TW[K ȊELOEK!d:*]v( 0sh#>Qj5 (R$M3 ۛxiE("pESdd¾F S2%$JPfr 8ƺ w 3o(DṣιxWb[}zs5RcJ5]Isŀ`IPJbrIraƪ5L|L9.hI6缳- !9k=nԊΎT8>GAy&̃/u僭" d>k#+7X SOy{۶Zk\}v5ey}_Ienӕ2Ы'c5LQP7D Y>woM4^'/pO7*J"9Y˶XruI_q@ebŎU;v7/^?u!a,:삺N R%sҔ}9o{xngnp(u\H<Ϲ+&>Gzؑ Kh[]#eWL ?s&=f| EqtKmhd)$FA 69B,J"gw"y3L8zг^dPr'^ /o=a 98B&wm Q6#/b1vfGV`4V:^s%_mJ {zI*G~Ez =a)t_DqD$0m7gnhXlr cpٚ F^cF3̢U%3o&@D5GaTYp[ch;=yg\eǠ eS]ۡuWZ3o}fpzQkMT'%!p8J>oy*;+KF\8]ݼn1$~/)J0xbS2x-G"hyC=_}}w{!ok3!p" S/R9kvËsfe0ّOHm6:~剱5a 4ˈOjoA~fntDv' 2 w,p?/Yauh6w$dS=y7nFE/Z4_g~eKY)UA'ҮXf~g5}ɺP+A+ݼ!ԾD(_=0u~}*d;Js۹J@'8wn 6$^<~a6xΪ=E^էޣk}{;%i3a0DRi+JM^|狛SL/ޱQQJ}HP w~Կo^.4pRG-;vW3LtƽljUD|k>D$.uT~qN)ҕ 1:}o\5郦 ¦_ f w.BQ0 15,˳pԫz^=!f>|y@Aj(wmO0Q]"3BZPLȓ8V2ԂIdlG*s."Q(DAQ.'ޯ&ǂLrpYY6mtp6[`hNMdVtr,Bn656kG3ܛURN8ڠTE)Y s*Q>WM%(30S.w>9^!{B@5T>r_k'J3UJ)RJCE)RJ)RJCE)RJ) RJCE)RJ) RJCE)RJ) R*J)RJ#07PQJ)07 nkL&69!w ;vmtݫˑ(P6L` #֜ڊPQDq.M{j3V̷S51;yI:Q7~Aa:Kcj8D(E7_X6%=-`53fy)}4Ӈ̾,#,F`iE @"h˄PQ~a ) _=V6RC2{ۨQ%,I<ӭow0L3 ?ǜ3pGsYr% PAAg0kDTAdro_(qrR{GK7Vo\S aJCE} (T/rvJX dIIwI7{&M0Y_Q8|?C8xݽn_x=[8@뿜{s*YΜocK_W\Q/B@ub,UNQ eJ]I[4ȏż_=p eQg3G&H-S'bavLB$Ď)I$v ϔ@`g'!faBN'}H6oyfó^G#-u2Ė ,q9U(5FM՛Sǿni"eɔbO”ҩ}KcMy^<ԶeZ{|`ԅ}D3# rߚM:IVo&i"'N+RVRkZo[ߊ{qSIsG~,L9[瑏=䊊olz#;9Cq9qzN.-k^oMscKO1{[pVH"d=N(W]u>>𥻗e뉉ӈ#O7}@@XeyJgRXtuӮ՟_k9vi1 +I{ I~mG6.DzyKΐ0D#ND{wt$;CO~u?OVׯYKg'}xWDRwrʀS>9o=F1(}FrڐYN^J|~u v8W4k'}~kk'~4[/m~ٴ <'?}o}Y>.uȒYm55 _k9CϞ^6@H_d\|[_Iw 0ANJ+^e_t{plN2sS>}?F$AS*h˔MoSyΠ3lzcy*A\ιߙ}B_lٷ$ZrɸKgn-`beAQ y& ^|q+19fkI^']<ϔ|_rB N욚5Ox>^?Mwe.۪r_U4*V}{F{~nڵC,ܱpWޡr3_>`{N!Y:"ĜMs4lhg^s3\} _S.?=ݴr'Ɛxp?VW_>q~~onkOzcz~koǿ̼aTȪW~>y 5Q!>u8ox{AnCOԶdbNcsfkWʝWM3oDi*ZH9{֡f1`'8ȿ=o5}yz犪K3oJGYV~zڦun~O0}$Nw;,Z#ky͊=}L߻%won[6oI rr;^Z߸aq͒coBLzߚV6&noS}+֮MؙN6߫Z#kYͲ֫2)%2JiVeo!x_>gaZ7ϩZ#'x`z𦔞P.0oONk8j;?½iNײrLQmɃJ{ř^qY>8OmbPI^7JA^)qpB?|G?|?nq$3ڑTUȶm+VPұsBy|c_U .AdaBfޭ/EP#z9(jo߲zY#qlO^+rA'#Rc&(\$H(}wܼoKEV?JCE}`qp?)ŒiJ^6ҀT,!]d˺ hdtp>".=Յ$/"Bf`ʥ{n emz4 dtx$"^>}2Sf5-ZVm̹ᑮXIK$$Yu搳z]ʼn}@yY"!s\"ydt>p>ׇԯ2e'Hʚ}kB IDATW,ۗ#YW&!Wg=DŽo@~sKpj^KPW~Br?6.uiCO=t7oxj3sESXGt!U[(=7o}>}ՕMa"g!f`Y%[k6Tu6D4oK=!K93xЀ~=`k[ypdVi!59͏xѥ:}bOY4'}|.u5Y2}:&9;zٴo\wUC>}}u땬d(H5vAjv H>UL^<'z3|.2/~VOrM5n_?c/\4\.Su>[ԷMPi']Ck6Y}TSRE7Iƌ[Nw;bj-+fI"'j΄oKe@nCZ$i]K$6g-Í?!`F)'=)~:Woj Vj6L&HG ѐ5[>"sKH."w-]oMw/M1a'h4TZ=i2]ܺ 9gY9-Baoюy4LÕq hFkrWcF `9/ ՝,0Bݸۄ ^/ڱ<˶X"q4{i nFl 'r㒂 =lg)-",sTZzA$XUm3ȥPYQ$Z4%Q-MrŹ#=?NiGNP-ܵp}:;v( k[쑣(~>:%{vsnDM>s{_'gV?#]ݤPtsܴA;n~ řţ:V'v]Gz~ nD`^ON]DY Eb3@֓Kg l˺%&Q\y&_ "=Z_ = { Y#Ϥf8I|j3M'9=l8ז;11zJ HB [woɽ&䏝^6Z}$ _֭jt.:ڧޯ!+Zȵ>-Y]BRW?~/_7sX[aM|E\[̠^Oy/Խk*6t6bw*{ՙ_~u =m}ݦ8[ߴWN&B@lg.qƺlG==oorԣ?+6ZKS#*o,_PhZɷμ44 =HHx%Ç &/#RDG7_{_ssT!!'GMglL9"h>Hص$ˊƓ-m9O K&I{xD֪mֳ0,lswr,bYX[6Wm!d )ID6ŬL[sHq$6Umه$–ldxdbKݖ;%L%k.t(kunSf?dX GÖ6BL!pZGȶ$!̫wC )+PQa=G~ls$'A'n 9ٗ0Ry1FCEm"`#iΗjt#уZR=t֨KBdf9;$NhK9Jܶ]1uqZ^(%TrLiR.`$3zhnPюzuD# \!'YvMn¬-MKv6 e@HeT5Y,4upsSzdv`@l᜹+mVi4 Nt"`$3Y$,$f^!t5 :Qh:"M`T}!NfuR.RW?8鶏G:gbf#椲6r"DĔR꘬9{O,9'VS xAxYz&Z):JWB[8{.Tza6!_5 ~(1fJ{3WĔ 5*+] 3{m%.ZZQJcQ$䵘K_8dl4sPD"1Es'xsKߴvh5:D[RF^-recKD yp8y9*B 9P!Gb}HbDKwQ4,Ƒc:RJ}S$+ER8tڬtw#ytxS?kڌ*TιL&D"$붗7nJ8/ _~կ F60"H(/dB~z*"Yk}ZkZ @j;RJcU2d cL(<~y^P}i]PLt(RJ[BTJ1Ƙ:JE$+9Q>GqCD̒@uB%Se 4s( L3AA=])14D$D?݂%[tI:^HrجhQJ)u\*J)7cME)PQJ)RJCE)RJ)RJCE)RJ)RJCE)RJ) RJCE)RJ) RJCE)RJ) R*J)RJ) R*J)RJ) R*J)4TRJ) R*J)4TRJiKRJCE)RJ) RJCE)RJ) R*J)RJ) R*J)RJ) R*J)4TRJ) R*J)4TRJ) R*J)4TRJi(R*J)4TRJi(R*J)4TRJi(PQJ)4TRJi(PQJ)4TRJi(PQJ)RJi(PQJ)RJi(PQJ)RJCE)PQJ)RJCE)PQJ)RJCE)RJ)R;?}sId Z(RUM[؟z3#mgL]ժubq A5%`H< h\F~K>I>g * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ 0 *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *ӝ22 '*r×?۬{۹۹O~Vµ]D@TD * *Q @TD@T *_s| s笼_;G~=5wl_{ǭm|a.HuLE@TpLSN%0ilǧ:_ֵ'm4ԉ'qzo' f?VwX~/q|(miIeD<bEѣ"VYRYlK&ĊFU"TRhT'c%iq\n#锤R Pv52- OK:-f*8ߛXdH|mS9z}{^PPEΰwͳwϻvǚFŘ[M1wa7oze\wݱ$y`I21QUeVQ"N+):t{V;ly,ݻrρqۧȑ5 kcOX礼UUiXQ:!:4eA1;b/ߐ!w晣#.ڼU~Xܡ=]e|)7ɕ3o>mۍ#r+VXQ 'R]7 cZg?mUx&D{i/ c~:`"ꊋ[_Qhr+ύD}kO.>s!_V܉E=#+`HDꏷ}cjQOHm&{}%(mKiƅ^b.8'- UV_ݶ㿫klH}7O-*4"JĴ-翭:nI_{a=YszZZu왚"y3/ ֭"[Jl4| }fؠEWGW@TJ2;j'U\3>? k x/xҔ:'څO2/"YUƶ]e7MeeSغk5!ǝ\umxr1F$!wpTeR0gRͱ;q0>/=Vؐg'N׿%VmE(cXG2{o3W] ߨE}kwhN[;lGjvy[@+S xӍvDZ)e[,'U}sĴ+VS~霳FLu dЍ&\P6[n!NQ'z}ǚ apOӿx`ջ -_ΝY3OY'dكKzxY]uVy_n ?ەFx"oHD,X:s+O+¦tg2bovIuFXeǤs'O0"/lؔt\+bS ̺LVkǚ7n C)zWy*W? HӺ+`{~mzۙ9puER/RሲoмY-=Q"ة}sDO_? j_/Y[8.EZv.klqaI$D=6o;cXcEdR˾ApV/;wڵ{Wsz~K.W m]9ulqѯtg:1e%v ̚.+k[]jkG1h䉃#ݳ+RRոWNES(2{̨Ѱ'R}4Vg䉈H˔|+=gE)p=aV=ŽOտ_Vj{֣dl~FQd_@N^0[7[˒[~<gƏ46Y8g#m]\eny׍~SŸ۟{Q #vqۚ'\ZD6,|k+0"/yz WW'x[t?ny]%a׊lسww]F6{ Y^>Ox0^94D_S.)JdJF͝3 d+ w^M]qrE9g^_ \{5"eѐ+㟾| |y~EA#2gAi^λow7)vo2 /tė) k@-ViI"\WBWlEqDL2aYVr [ϜP"VUd~)+}p]s\GƊ6\GʋZq[vλ::|{&#ɤ(Q8n+Q(ҡMu{L0lWcq+ l:%\:?DN@E"mp+qŘ/IwvqNh;m؊!>|:Þ;UuK1v1.rW ?+"cɼluN1ǽ$Nmo]HrS|ا * *QQ @TD@TD|NN) >|PA8(0#G}Çڵk˖-TVV6pH$""DaϞ=wfp>D`0/^81&DӧZ~J544,^;AM8Q)y`r]v ԫW)Sc[bثȜTYk֮:`FQ:vv>ωRm`1eyg=vXum܍72>.!8շEYbEmmm7߃WTTXkٌ31Jd2yqׯȑ#ᰵw3fXp!6(5~aÆyyh++++**<{Osn| ٬8,ܹsԩL<ɓEqŶo߾}ѣG=5k0t4|1cƈuo^YYi7}}OKfZkn۶DYUUNǏo:t-[+..'yСC+V`lmm)2k4hCTpND2LEEEwҤILjժ_|џ[.>}0>D\:ti͚5naÆ VRR""rb/^ti*/ .ӧ0>DXBNt\SS2L0DUƎ;a555KׯoΚ5kGmA5MMMݹˠAGA:ᰈ |xٲe[544l޼9cѣѣST1pSANm#G=z(m'a+e<qjưiӦ۷mn']]k]WWtR Ó'O...n|?`'d|Q__߯_?=9ظj*Kd_~fcض[nW lmmm]]]޽.],"MMMLc6bĈFݻtGyyy{dJ:o߾]v18'd2h".]Y)R)MIENDB`ntfy-2.11.0/docs/static/img/android-screenshot-macrodroid-trigger.png000066400000000000000000002753571462047176100256640ustar00rootroot00000000000000PNG  IHDR? pHYs  tIME ik IDATxw|ǟٽJ HwB /M*XD^)"C]D՝wr ylݝ<4^"  ˀG   (*    (*    (*    (*             (*  ~҂b$qyHaeKWp9~],|6#c^=i`\Ι]ñͺx08z}q9*i_m/_tT~K,мD*9Imvd$ D0[ ldW0bԾcJYX$錼͚B 8߶%xJQ(J2`Rx p]&@_-@8~[<4y QJ%yc[۱%#qzbFE[ f?BAʮ^j/:1Hϟ1B,!:+xB\j|.l eR$tm_(c)l߸#< sLRcS*UjEMNl9dZ<A j%کfF8 dQ3$RNTr<)_PS(Rie#"*[A3RpZ9cl4RYhJMK&u5WkִYU %@%~~ .[C_5wlߒ1 Tj_qJRPqPVLf! (=Аګ %0` 18 c}ӖPB/^5Loui4"Q. ¥?1u1 8?ON^n٫vf]z|kofQY-GVfcU^x"/]Ȼc#Nj Wr"{1t`^7B3EZ3lu2^۪NfhؾqUT.'Wh41 ɏEy1㱻K,*?`4U]_3RP\>,Sh>}zu'f^8a4=%;dEu"kMYm~{E.Q\IQ>[{Mh_>tֵz+)SQ)9֢YC`2fNp̀ }l6Lfl4M&V-*W0-NiGQ3ֶU+Lc<%&@mFNq?{ .`ŋ6,n Vz5UZfWw`'Ξ|PJ%d1 ڷ?O{0IZڴn VQ jZrJ{p3.y8nD-l0:Ĵ?O}?n-m[z-j7f8_PȲGؾvoN4[LR}! ΅ L%dZ XbW\k:ȁ]t9QY211_^.nI.Q>^7˗K+tēgεnΟߩCnZիOgS&D?è}{P*YRvnY3/J-UߪE93*2īb*Vؽ[&mJii7ly ׮d 5ҧMo^^)_|ߗAX,T.quؗ|8v)c>ץ+!s2iu~8TRgQ3b$O@`!ay~Mv.7nfǭ;w oH(vB]Ƒ_-J ZJ;6ܾqebe}+x^r1^V#ּ!ApmaFT]y)U*KQ+>j;@ ϓ8EQ wT7o2… J7RhwX,~jՠQ*{CX,U*W6CRJu:NFk'H;"\ cH寔  e1{,_>UB䏪o#Ĺ5JX1stيNz-:9Y-<U+oժu)i1ܳT~ݷ$$<F+U(;a,"bRs^[wtc >أ'&|mdD+X*_T?ydԴ}G5JO5S^iSoYkW\f!}C֖RaX+-M_hs/@*,f300yZ֝of2BQ(+^.X ƍ>{q䷹3<}מrDQyuNN>~6M:78e)S^DM3o!!0$){ݰN0~ivJɇNyPJS%=Ob*A EhhPxX.}Я7L>[BBu:=! 8t:ȟ/٪囑Z-#e`oMKݶeMè)K6ҧ(K8N@xpf0@ȗ' 2&*o$~[|~܌ϟ:8`А~ hZ#Kȑl" aAQqJԈJ?p Y q(>PEJVyK33'1)y֯ ePNR2=~b - Vw Ξ11ֳ.a#eeLK-g "jըQj֧Z-#c5;JV flэ-aR#ָa=dB󄅆8u:ϯzJzs \ySxNcF|zCF` ݖGh8i$T[׭lؠ۶f0:o`2NK㞜>l"u-Xj+lT5>g'N!)9+V[r˖.-XɈgpœ>snظl*X>!*jW-ZЭ;w4d߁C*Y8Tx5k7=a5k&%4z}֭;ʔ)]L;4myЬi.ݾsBrgΜ'#@CBBoGR]p" yfSFuQ8I< ]A3oM)N2sΗ&N6'ݺC֊b+X%Ey;xczI-󇏝pf hU*U4Ko mݸ2,$cL4}e+y ?cK-\ak-c'ϴSm CYDRBg*y~`ٞ1ִQYSO>~qboL yXPP<}x)*Rt*PF5٘Z`(y@$܎bwCgU>=DEP*N+|J Ө՚Դy-V*U*=u t-i ϓf>vu}Il]8NipOKӑF}ƕ*WfݦWD`XJE, a+*& _T>gFԮ]-HQK}TX1zRclG鳤]`1fLV-]vWHc 0A=xUe1R dl2x/sDD'fQ VXsxMg.>{! ~QΞ@)uJn⍩VT͚[@XрEgYԯ[U1Vx… @ʖ)]h]:۱}@ @EA(B}}}ѼI#īu/MQӇWYNJ >#GN>'z͊߷mZg4ysf>ypk|Ϳ.I׶mjμ^JX"޻j)Y[/yCGaԯRN<HNMHNoz͙9^{ecI(U8>]; ϟ>NųoOxzݖͣ6y:m/780~n4cb%yC; ÎQTر{U *n|5 Z/ fX-aC?3:UՕJ!v#{0(Zȱ7oݲY&5mܠih|,__5AȂϙخ=R)ܻJBRoܼ>|OvՋ=~h{Gh\_9aTdwek1UJS(Oͳz m S3+`0zW%e8wT_7֫Qf}F ʔ.|tN*2|5v4uڵ; FcPol/[o|N.T ivhTʖIzc^pGԫ [wjGw?Llȱ_6 shI>~U%clU*y !G;xc-f8yΙOۺ}o/kSt:֫(ӈ<eZELlσݻ?v(z6KEJ##jvn_l^ O[&67x&)Ndȗ7/huum*-*(Unソa6c4͙s X>z +%V F֖]W72Б}'\4հ~<_ްq˜y bڴ^U TJ`U'B -nCǦΘӸaU*̝5q򽇏B9sk׺U868Ao߁Cɩϟ=OHxfxAPvڻiGUJb ,-Mߵg߂ >sx1m:,< 5[6jҼH0{ŋSRSTJj4 BIXF Bm&&֤Fsp ؽ@L+Jkլl:Jizu=|UARVcd Q(]‚׬ߜҫqRquԾu^]w}?e@j[,RmF(G=N8s:A|tmw:v E{dQ{wn1FYTHxn IDAT T^uIޔC,F JWӔsUL1y#C>m>Zu؉gϓ'4CVujJI:j1GsUk7A*+hu^IPK3<jQ ´ݺK&) Бy-&{Wj lSW3 D'׮R٬u]:o* _.^>pK#xiҼ]Lm4/\=۰YRJ9RTѭ;vұ}Weq/y2;Cd2ڳŋEyɣOw;g{=EW {T7pRڶutR(P^߸a6o3fJ+WaxBX k$iv'=(URQÇ*UBeAel߶%۸1y~ܿwGGԪG&L&##+TC8s;ZS^='nj#!dW~omުPHfd6m "Q "LbH7Lw3i1`U(_&,_H@ē{v6-6E5.FW`^ٸeZJ^_YrW]ӤJ|C3>d&>By,i܄)"V9F ŒkNaYy^)`p0ˆWa7 Zuލ[vPAW|dx%8xd(rP(R^IQv޸eLPpa:Bč98WS!{q [֮֮8t׷`|a!K~ۺ}WA ĥ=b3rtJ(9V,d2eQuj*^U+Ud DbH7X,f}`NOA >jcnj$qydʪ3 Lj'7O SFQ*Aqu"+/TA3[*ZmڎkH¥VF`L:ǾR,h57M8?z-ʟ'M2vc9y޻?yDKf8Ū`q+ ˨Ҕ(*VAC8<$ɲiy-6`A掆p4׾m;󼧩d塽USӿ*jf݆M}4B;o/Sf͛=c#!wg G/Q|ѢpةS{YL=GQB$\N0u4i~[7f ZYM&Noet锲^\j]i`2oU Hm(O \p,.Ia þj]8ZӪ]Eܾ{a%K1#s{ރB! # C>ߣy`T)ARSR"Eb-exwq3;t>ҩTj%6qq+s4xٖY=,y9J==7$c/9lj3bNfOf d[qY^C~ /"H)G7K1CYpӹeurW_<̡5u Y ו._D]%۫rlκ0enwb$Y㵩   (*    (*    (* ['*9 r-nqj+s;y@Χw](Z< o3^O1 ,*T &m=Զ7 KTz.ݕ̍92ӵWP΅ VAY㙵,ř䄁}SJ+" o#-w' E፜`lfU^0AW$uማKo}OaHl?c2ql=8Hkq[/bO|,gMq"Bhi exW̻.E.q.꒥ iȋz!ƨ2" @"YjiP-nqۗu-s^g--@$,5d!s 85kWV~܏q?`!gvU9@JBufKq?|p;ѽJVB‹U;|dɉ# ƀxpIӺd`> +'rX^ˋq>{ōSFQ\°.`w[cD-nqaam+o43M/,0}FȜ-=_ o#1^85dQxpy DAye5hPIy!!ABL``dm[h Z 2=ٓC(6#e񓗦$̃!fq6SAy 4s# hOdo Ad0փwm޻/ALS2d鿜&j8Fdh ^A7yY1\Œ,d˴ùi$ RA89DcA AB+kqBy+rAWfR ފ :A ,B7>iA@UhAT2Y*̾0\ A?|XAeU 0r tKAAPTAAmXvBAr-*n#394'ny8F%: !nL?+~5iҤ^zW^Ŝ ?N;v,y]t!9у lٲeJ ,UT׮]K,ZjjjŊ)ϟp=dZFc4]&Bzzz۷+ />+V\rO~7:zY4i|r_ի1JuyD }jB6l`РAF%K2!f?4;gΜ>tPJQTTTZΝ;7p@TA ;NtIqq\ZfΜ)߳tґ#G;wlݺ}ԗ{k͛7㗃 ﭹt޽Oz.=>|ѣGOq(f>T**ʛ pӧO6mHgW=IJJ6Ǐ߽{rz^\ݻw/%%?WAQyUlذ!O>>gΜ[͛7{'N4 <ϫꀀCEGG yiO=QKHfر?j%S:n„ |իرCT @h4cƌ]&LB= 8. 66%Ç cǎǏǢj'_zQFnAhÇ"ʫ?=z֭[OӦMݻwo߾]^߽{;z{Jd2uu׮]۶mkݺjygϞ. IȊ+6nfsٳg~۱cGLLdtiǎ nݺU)SƱO?| AAAs9pix߻w gl63ʗ/lٲ3Fjٹsڵk sƍY0$$$""L&!H"%JKllԩSApEz/?3gnٲEj^j"kPT*Ϝ95k֬YfDDF9sTI2#yDQ\oFP0>cG75j$&&;w.!!a߾}͛7wO)2dȈ#?#""9R>\v*U@XXdUV{qE(cǎ=} z?߿~~~pqF˗TRÆ 5̙3tΝ|Z s˗/_|Ν;T~k׮ބ9cƌΝ;gN:]zURmڴIz}vZs\)B#rUTQFXvܙP(4ɓ'kժաCvX( oҨQ#IQ$ .,!DN<Z0|p>b{n~r$MSg8иqF5j(222˖-L<@iK,J޽{KDҥ117oޔZW\hcGj9en߭[7i޽{;q\zz[xc%2eʸ|Νػ˗B "Z* y+ G J#\"9XJ*uuɑ%.۷=(ڄ. J ?~)V`.\lCCCݻT*ڵk_1ԸqcEބP(0ݦǧqΝw^||;cZ?WBwyG:MXEE)r)y&In&: 8nEuٳgRsE\\\˖-!8=Y*T 7nx cN:rE bر.% Bd'$$HphhhsyԩSjz֭}с\|_舅1&r)=Ұ0J_oF8jZ,'""_hѢEV\!K,wnﶗq.ɦZV8K SE%;ZVҼ8z{%"G,.)AK!44TWZ(qɻ/LD/7+ֺuG}WVr IHH0{8{a!+3 ǵjСC'N{Jڵӧ&i˗jZ-O>rAlKEZ| ɓ'h7v„ z1vATRR\zufYbELGyĈÆ i֭bQǏ7 RcR,*jʕYCR~s\!ڋUeksI߶YϯA駟\2 X,\9<>>&&СCׯ__|yttFX,C ii׮Øp-ҢE Ƙ R,W\qrG,R͛7={vM6[yukjlٲM6]w%K.X`?߿(|*S:$ O"1VPX,iiiiii:Nvf^+͎1`ʔ) 4HKK3R/#ǡ6mڜ8qnݺFQ'L&#vVd2IZJh6%c(4Cp0z蔔ׯ;X߿ȑR TK9&"K.nZZ*16}ti 1&t)uԑ^ARRRNd8Y,:RUK,yȑejZl6 .sH)(![dSQ8|$Op\0R~cF 1Pc1y# ecL޸ǿy.9^7o^'>pT108s"f'^ #@䓲LDݭGT@1Q @yPb{SQ,_HxJl3L2>1NTNR*R^|`06TABG>zyrPjW8czzc&C*c+= Ϙʘro4SQpʗJZT(e2R_fBe1BD{ IDATlAyᩤT0Ӯ`PjtUևD Z<%II`keqX*'# ob[Fx`y&Z=80m _ [d8Jz W c `.cAL[R ^t⿎uP=U, ^'dVA䭃1B RaREZ!R$n.FA#BZ,%.*F. jƘ;'G  q*8 Aqz: LAAQAAPTAAAQAAPTAV}a{ ]Aǎ۹s^s9>Zj3ׯ_Hp7Q4˲l~a͚5k֬sB 9F oܾ}p:N\v z=!qf޼y-*WoIfc___BV.! v>(⥆ʕ+<(Э$HH4Ƙ O%dA6Q~zR6lؓdɒ`Bɓ%KJܹZzuEaI T*u[;wٳf͚߽{k׮cǎ;v~ V. Z[֬Y3`^ϯlٲһQbǯ_~%#cݦMWy 9"&b޼y_$m???RqƬY`oHHxW(*wH'>{,<<_~}2dBpTuccc=9f̘ XlZW^۝mgg^R!k+**j_}ڵksrrݻw/__/z/>dffZjK.~|4-ZW_mܸhF޽[Vm_rnquK>|!߽{wٲe ,u.::СCӧO9rDTRuԩȨ(Z۲d ""F`Ĉ4MoܸhU>çSk׮I$:1bDnnnddR*V2//OL˦MT*g}ֳgϤ;wYvBxw}||vI#FB^رc !O1~333{ Õ!!! b^1cƔz͛7jQiڴLW_eWPɓ7nܯ_?qcRR Y%H$ŋ' ,5CDH$Eq˖-z!E[ih_cǦLjZ`M߿z+VO-ZvZD²luLRRҴiƎOKKˡCVWJd"|GO'*iƍӳc/D7ǍWZZZCJ 6rJ~,ݻWoݻY5l<;;wdF k9s0 g=z;vM6?ĉmlljNNN!;;????99EBhݺuNNN'N7iM4Yf͗_~)(ܼyR}!e2٬Y,Ym6: =zΘ1c̙޴48aXڵkLeK.鞝_AApvnnn!BlԨpЈH$'''qqVXqA"8{uVFԉ)S̛7o͚5sqWWݻ={h V}X[[OV(eeAujH$5kԐm >|ǎ۶m_͛7rW׊_ *U\u\ntzAwuƍsژz5I~޼yeYkk%JW\ d:u20ȑYYYzZ|^8XD"3~;2|ĝ;w ann>dȐIZ-Fm۶7MCCCU*`C !$88x޼yzn Ǫd%K|w?rHtt}.\SFDD߿ȑ#G 7LԩeLLLaa藈WYw^߾}xƸSNqqppܹsu&SG%''NjWF&5m~z7җy!K1F'98qgQT٣Rݮ"< wB ';;i^]]]9ͭkzD`Ɇ4M4-sss)21h~Qİ0EԊd>#G^`CؗF7n\ fcje2CCCCCCQ)--0`0ݨamllLw(4hРAZ??#F0L9xW2''̙3͛7ׯ߾}/qv=EQ<3 SRRbaa!zu?7oܹsލ&شlYn@o…޿Сyyy;w6>>77E6Ms;Qwf !FvJV\Ҩt 1LV]5 i]v...5jݻ [j1q.2ߎ=zh޽cbb܄Y54lB=<<:t?$$$_ӧC"̝;_ E֔jZodT*efͺKܾ};))I; ### g>>knaa!6=<<Ϝ9?xիbX,##c׮]z#_ +VhӦ͚5kf͚nݺ9r$22Ҩ㏻v4iR"|ٳ믿޻woYY 'OYYY=E"G???B];w$ҥD"y暿T*zaxUV:u///Af !}BB7߬WKHHEQGݾ}V3fϠA$ɁV\inn k >55ܹs( )o߾]CJqҥK[h|K.Ǐ/J7l >{Wpqq5jT*5e!'OVTF{=ʪW^YYYo78?iZ& gΜ9fffz),,ƍֺ}ׯ_m̙3y_cǎbͤId2^O7|Rzexxx,[#F,+l5kqFԩS ]D7nx"Z: 4HOOOhRq1 k4SևOu<ϝ;pPٳr ̙3RDbtBhرYlԨٳ%I ܇4m(/h4{MMMUÂڵݻ7˲13f,۹sgY,f[֎;aŋSU$ һ/^ԩSqqq``ѥU!1h BqڵXD]|RRuP(BCCǍ7cƌ;wmV&$$ ɾ눈޽{ݛ'N$&&:99-YG}ĉcǎ3FXzzCu? -,,V&޽[*y4iӦ^baÆZ䲲2aaÆ/_o߾[n۶YvvvTT󶶶˖-:thZZڊ+ڵ)x,FFF,[]FhY_xq۶mT-֭̌[=ZhAtNNNttV4\OS{j,,,>?O?]{F.5A}w/]Լy?~JwUΚ5aB+H**%%e]:U***ҋ\rk֬<߻w+W  M,*ʲ2WZTBwǏ/=*IӦM[pgϞ/v);vҥK7lȑ+VSjt%JCL?;Jwv!!!C ٺuMDQ)--֔4 m۶utt5u@ 6N]\\:vxIݞ$b+JRnXbs履~~ 8;;3fV{ܹ!!!+WM4vNayyyPPP A#GFGGo+]СC?DžŠcƌYpu0jFGR&_|{!a RI9s* k0ϟ_bş}v*ڎ?~…zSXj!$f˲mevM1zܼI&&Mқhqyk5۷{!c@ua@/3F FbEhQcOOsE )tE/DӴSu^6]& kW7fs-k)e]Ca}aHHH Zn~^e/9 :uo0<tGXxѣG__߼ŋ?ŀS !n5k)Cz@Tj2e YbWA:eOꁨZ)//Q+V#p>DQ@TDQ@TQ@TQ@TD@TD@TDQDQDQ@TDQB!ē:4 Qꅱ'5oㄟ Q(k_ w1kkPI+ !WPO^"Ɣfoa7L U ~])%ISYg gmJ]wejt$"t#/?<"bB!եuOh8BX7,WT:^t=xu)Z FDgZi_:E%X cCCԿgT\asI !kklfV&`Q8 #ްd/dn`1"f-JF#^6ihBw/ Q4Qt Gg]c48aׁ yf9B8 9QeoDX#D0T=6:vH}ॣ,H)T| !ab\*>B VTUb4-Ot cDPa޷-f E!aL#LҔVmzT#6rWQ 䬌)F1XOL*}<_l8)"|EnPwrTR֭/>-Q\?Cmm:`0Pɘe0Ux=TTpU1?޹ Eض};v:\y/[V|Df|0uq,B+v}4vHJly]޳fZ#"+Wi?n._vM"3s ycL]3˼ȒW_o4g!#OƣzBoԭGwƈ'#?41sVYQ%-Zftlw{媲4$/[8s3'wR{<:yM*ѨZܚ2Khb5ϵ9p99ݻ

      ߽KW(Iq`Aܪk7msVYL!MU\]zN߽۶EKɓuk?ɕn*K߱0!Q,d8ޚ(ҩ_ўj!p@[r T*0ATzAy!()az#bvu`aT=KW+dɤWʄL^abh\]oO^Ai'Nf6|8(D -=ڴ[ U=5g6nkK8 +T> < QF4jZGbLKU"\jFFcB*C*qhcD^]PP``bDty+SB 9|ſ< h׿ºI&jjS9is"1rrh)UqOa33ZSY;gE"HkcUiT+۾QA1AŘWtذ*$5q-ջ]Utܝ͛OfF\yi*c.=' B&TgJ+IA= ^Ĵc0$_Q c*fZ7U+h*ŬɷYDyf6Q ŅY3}Vm{Y#T 4UscيBr̜[YCQ)*W?{'iŋSH79o<>w6aAC,|M!;ۦg=t9yf13ܺulϝC)Y@HB"ҥfm =7mu̝G<=o܀ ^sG {fc'D0,O8V$yPYYSra#Bˆg)__K:-`ԧYpߊULW tꕔb\1ѝ'HD I%[t^ѢJJPI)rv:*Tɓ Qq1*)A.'X\C/ r$-Y޻M Gp\<~=~R]3!Yre&@ai+"L(5E̻vCf ):uEwK$gf_]x)dL>B2\ XX s'wNae,-+6RUWSSF*.B dnd\Q$hBE=uDәS%l0GaL-^ێ'!Ba1=151((aTus%4UбA)Bs8GoW'?U9ڔjKV̖AoZOQ@j:-B!EӔ-vv%F&c"&V9C=jdSo3&Z ~i k `ŕh(:{*TghOS)':vYSh U?CU>S<5#CBgoSxdq<ƬB!o҄S;c a SH*7ʒ: [ItL&AR;;I#diPL4yLi-hˤE 5P5?F0m`//5p " F4h&TR${Cu!mFN&)jEQxPM3R77uvǗh$3|]aF]6ݍ:.(@YK_ QT֎ozy/ okH%œqp;9ghP0;!FWWD)-kkIt?DQͿM//!L OQE1LmW D0&c#DKx'#B< yccL(lZD,)uu ¨֢(t_0GyQΈ2m:UR*ÉDox$L~7Գ>yWU1v:LyN=/k\e333 qRgWp/$_U쥠j:dkk0`k;PU:n(Q:}vR`Ν;w}3gΈ.PթS' 2G"h8 }IB{߾}!@0J/ ldMx&!!'PQQwHsA%!DLGgkLL0u VB0V8ag!0i xwA6S4"4x.,<$ CSHv ,FԿ`5ŕĞʏL$LIc#VQ 8B Qe"J xIF_t: DQ@TDQ@TQ@TQ@TD@TDxAyN?*`:Z`U`\9R}]V}TTܥK!k߯R\\\FbIffmrrrlllߺuk4n݊533޽[oti vڕ6lD"1Lm۶G9::>#&&hzryqV &J94'N[h4cLƲl׮]w9iҤ4MQL&STW6ln-Zv-04M ޸qnӧ۷c,aȑ#vvvuJ?/Yae1RagϞmڴ?Jj!IJv֭<ܹsj!!;vtex Ϥ ]-F#0'VL9Ca$۾ /EӴY⋫W&$$,_\._x{Ν۲e˭[.]4n8T:gR ,\0,,رcO yyy_}UJJJjj?Ȳa> T8[r3 `o߾{}ںwmڴiɓw]n'|}}ryӦM8@Yf ˲B;v͛77mT&5nxR4>>>554˖-+,,ܶm[`` XP̚5+88zNfffٳ]]]njgF{1!o>}՘1cf͚EQʕ+QD)h4ݻwҥKF'lx~~~u֙O:Uyw9qēBQN8qU777$$$4kL7Miw𳤤f֬YbBHǎuEEREEEBLۄ ˏ= 2[o.0!kkkqi!$n޼Zl IDATɲuS4-H\?~O?{M0a!]911W?>11QT"t럜,J۶mo8ryqqqBK2 */D2|4(?W^oQ2s@S 5khZBЫ(ZkNQTJJʀvd2Fj*QyQPhV\(z<[иqc]GdW^=rȅ 8p'.YĔ4B}ݻ|+V4mT8jŊk֬u5!bwN 5GmvzbYV@T^8l>xã[n(xAAAQMIh6mڤP(ݫ^7xrqq8NۯWWWJKKN/m$7|S"_5$tR߾}?sݍ^^^L&z/LI)\_w01BYfr<==:]_CxjQ̚5pׯԩSnn.B( ͛۶mӵk׮iZ!eJ777V/&ܴiBH75~xB1sL]j̙O:UP=ZOڶm~zx^}* "44tܸq3fعsg۶m5MlllBB=Blɒ%_|EΝߴiSZݾ}ۛF*N:u ׯ7|ݱ . qFCBB!ǎZhٳg}}}jccw^Z 2 *OCIIRR,--K\^^T*ug_~ѣGO8AӦM[pf„ ?CxxB4iR],Y~ۿ?!iժUM6۷ott3gL6ȑ#'˲;w>tP˖-9rdŊdž 0,ZJUt D8bɩ4eeer\pb:^êjڜ;;;\󼋋 BPN2\1g*?OӴѹ( Bi[D___D"V)66V&F3]Sy^  c M- ۷onn}]>4 W۷ȑ#wqvv޽)S< C 2d\4@T_LCSIOOȀ{k'---&&0^+z-BPPPPP}:11eY++nݺy{{ eK$__=zK * 1vpppXXXjjO\\Fڵk>|=qDq;wܳgOLt…w}9///""BPs%QTn߾)ÇzСCݿ!!!{9r:۷jkkѣ(B._ܿ w:u*99gϞovAAATT˗;uѣÇ˫dNٳ nܸ2rH!Ó'O>zhȑw܉1bEQΝ  y#GDa@={DeѣGJ$ݻ>}5..w#11 JlѢElllnnк4hBQFM4A5nѣGzRgΜiӦOZJHH=\*JRB˲ׯ_߿1֡C˗/ ;w*ogg'zGGG//> 0q>>>M4zXZZBT*v(JAb 2eV\\v䈢^pjhZ!(WCAoͨ`>|ۻ[nǏ7%7V+x?.e͏?nee%:IjZш|C-asss b_G?=ʕ+:9z#EBHLLS۷ʕ+FJ(Si04}e]KʲlHHHBBB~~;#ӧ͛Ҽ0ўbJ?&&F*KKKJe\__:[ڴisR0۷-,,jQ...)//AAA;vصkVMHHҥ0Xʊ阘OOπ{=~8''RzIOO2....\8y򤗗W>}""" ,--3228ԩQi+C 5 !%r_rܰc7771J1,efJJJ0:tiɉ( {{R[[[kkk++VZ)JZ$ʉnA!G+c8WWQs̙ϒ~Ͱ`1EtG9l!p }۷ _ٳ&NXkэ5:s8eW:tuAh~PQt eYv  R^^.D8޽{~~~gh4%XBՆNϽBk-FYx-[8ܠ BG}Tפ23/Y]j1.3S/)<ƥ 3_uu]{w^//Cjg֭-Z8|p &/h޼,Xga,XtΝ!C|w5:F#ߟô'i33??nRmT \˹{cf "4!yDBNlwݮj Km…:sA7BB-BH `[3*P!0V2xUa$H A3ij`F$!Ʃj \0z;{B?G42X0 0,* 0 0 â0 0,* 0 0 K16VZ=c >9r$9A5A9ݻf\iѢE-Sk$Wp xA"BD)kD,&D@p:e9ʸi.W XӰBHl:|F " Hv4"Ϝ!0hu."a(8 ! A!#"B*DTt;QхH ٧EŤ0om 5>STZC2(@_kw*^-@R_^h=ڶ#+) \>(EHj1qv/~isGh2fUUEڢHOȀfVDTH*KTtE@B" .d3n;UR V4T$g( L j ,k>^FhVpjሲ >֑2I U唜(t:@Va+B"ҭvCrSSBA_Ǫ@lm&H(JrRQQi#m"r\EZb'a"Ґ3=~PSx)ȢT R@"P'ufȸ!P<(aU"~lɭ^SgN6{YRDeKଇmqUըGGyB 0 \fN {4)dbE^MA1"jU4a$2)L}؊"Y֔4i{ӧO_󦧧޽^3cgΜٽ{<܅>-Rʙ3g(6*Nwȸ<]vѢE|JG u^k%* "` 6_n6l|s.X`ժU흈ϟi&Mϟ~ټy 4Mwٳgh">>~K.-,,4)--?>z9=0ȑ#>S}M#*s^ )ƘyfLެ++k}:2{nה[rرRʕ+W5JkZ JNN5m׮]ݻwWUzy 8p@SD;;^Ϩ ! 5$^xMX*={G1nܸ:t(///00SNF۝j[hѼys߿UV}իwuٲe'N=>}p_=OfffLLq"JOOzU/c~ :t:[l][t8Q wH}WNNαcvx<FDDiӦx}U IDAT_ѝ֭#[0)))xW=$Yfui{u-[4n5\aÆCk׎MmSBj(@H]*D键3%Ye‚K{cǎkm_!o9q󋊊VC=/IR)vaL!CZ5;;|_iݾ{QQQ>uƍ˖->}z4͋z襗^2dv3C }_VK.=_DGGgeeHAA~5kH)oƑ#G_~O?l6_qٹsEO>^JzJ"r83fS~ggΜn$/;+sss5kqƀMǟI}Gzj]$Æ 3fqO?8ӧ[V1xG/H)ow}7 j>s͚53x~liӦ{7nJm֭[qVڸq7h-[X,Qwy@rrҥKHm߾}#qGRRJ݅Xwx#$nE:QŢJH!E=Ȭ}ʥ5"$I@Z RHKn:u*666??d2ը(R9s=z__paپꫩS5ŋoܸqz-! /&|tADK, ڵ߮=z]k.͖Jyyyff^5;N}S=cjk׮+V5jĈpǏ@jnذn߾d_~k=z4-\ȉZhQ׮]>ݥ?<~^=oaTU+blQ%33SN׿Լy,XO^~_ݥXx?ܱcG:thɒ%SϞ={֬Y<~|'OܡC]|Y?o/nٳ,X`9sTZj|<ȑ#Æ ܶm۔]Tt߿|k+[=w kꫯ6ҷkرcln/>Θi ;,(}D<(E}? "*e[N$fHFkH߿۷]vwqDzejLYZZ:a„I& \y啥F7)QXȑ#ɓpqDq}\g_ta֬YӧOW^.K?ٽ{w߾}mۦ=x u޽טrCV^ݢE ]Qm۶}YfMRTTd_߫W@"?۷ꪫdeeI)Kxx gH 曍g-U2vXs֭~~}r-ճ\|-[JJJSZի9rW\q~RݵkW"ڳgQt~W];v bPPަr)}Cӯ_?!ƍ)))͚53>:t(666==]t4^Y "r,ۙ\sŸskS":Dw5ߩS'Ø8qbmRSS.]*hӦFu@ӹqԖk׮`[SQN:%''==z8녗ט1` !l6[m6 u&I/t"">s˗/_tlѢUW]eDl~r\sy?F8b())BTvƊHmY,_wVRs[*u=RRRƍWTTt9;{WGGu֍7RvN%smrCNpNYا}DE!"\W>(9҈S'%%-]>[{_XZ\\ܮ]M)~xbضmc==zX~ 7pi}Bm~3ld"/Q uM' ;;N>YS~W4Rurvʡn-KPZZ;DUղL:nfNg] HMM=q}}j+@eeСFax}l6(*qƌ )tj,Oc!C9;?_!;;LS*B({D7FeKF[ x#)NGܳg/ܼy>2GEEE56qΟ?gi۶mFFb{'NÇ ѹs^z[zzzoڵkw>626dȐ={̞=K.Vu6{ dʕF۷gϞuȰaöm۶pvY,;v{{m۶wy'...<<ɓwuWӧÇ_nݫکSClRoбlW^^>m4_Ix<3f֭[~~#Gڶmk9rԩs?`Q||ڵkgΜ٢E =,裏Ξ=ҥi;vЯFΝug: Zvdk`;{7lذ:sȐ!ǎ[dɦMt6##cԩyw`.+QA@CGP[U L75_$ZNynQN_|B}l<>}s~A'Oܯ_?[VU}AAAq#""=(={8qqqq5@3hР{pcJ#bjbb؂tgLQcתU+:112rwd2V 0`Pzwvc8w^ڵkުUG޽d2 4H?`LL}Wmۦp,+++//oӦɓرc0h NKJJk׮sakȘ3((hСtZÇ3P={;)vٜ7x{'С櫯%*>>\J7yd-[v=e^91eȔTi#rb[UP@?ԀKаDUW?__q?v>0ZP#)@mͽҥsŢN}ԩx\cƢE9K/ո7;;^;EN? 0o/B^ILFj;.,|Y>x 9RH0{wH$ ˜mLbE aڌl9k 0wuׁv2?nV&-$^98/VgC=,Ӑ4Ín0裏.Z(33jϞ=+W1c?uL5Y(Q7\<'>۷G9d2=sL sN0Lmڍ6 a0 ð0 0,* 0 0 ð0 0,* 0 0 â0 0,* 0 0 â0 0,* 0 JGKB] jaP_~WK^Wv9"REWa_T˥RC:3)%DԢx/a &x ;LźkX+zIU])nl20M@T@jUmv Vߠ\b8Oc?֤nW 0IcZfTI?ԵqCiN0y]p F.M9蔗o|#G2_t&u{kO=zҤ.gaT7tc'*o(U<}|@VOdyiԜ{T+2PH !( \~ΞoOO|kNՃ;dfniO\ޒWcr-j H oWaU(IUP8^ CM"$@QE "z!ﯴz\[NahJT#(^+ ""F}'O*-c x>}Gsvfmnci;iiW^@<+%3h6s\%$ OlX^R&.o_ 39٣2OΝHGlOϑǷֲKgk|g D*9tX++ -s/ygr:Mғc%"< 6Vb׮i, !"%;w޿/ $ŠA`TDw£~՜Ζ-+r0 s )` ;ps ,P"aI}bFƏ?ZmvT,!Nmټ~ѳQ6=h7g;bb`m *+.m HxkNHB"*°z‚涀_o_ێ KnGi%Eqq 1EG{nىN'o C>g/@IY7lТ>d?*. ey@5*ٹѵ[.g Ե;L'?h pU*. M߂?Uۭ&hPPwmW+UB]}ՙHM#wܪa|iTd{q8aɯWǣW1Qpy?7nNac*KIٿ?Q&ʕަ !rVcEڙ}>x'Ƶ "yƤ\'|k{uf7^k?LMfk>YFIS;8f2; We714i {e)[/]'RV\,[g!o/xcMlsƟR/> 5ӥ1II÷nc юi&^ymqG ݼeo\hѢ}XQi(Bߟ_bi3`FwCRFuI v! ٫nQlu2ueC kSQ?QnDh!y=fUf<9~lJ>C kAhPOk6z֥sru %H}]ڥ~ڭںU [nʟu'I v*@H oΆ@{3tQJ5#VhTdMo qTtng>bi /V5s?/uGz/X`ĶCPcO[VThŦ*tH9v~*ٶ޽{ͮAƍ&ۥBEnT/-e  )J̈k=ti*"cGЭ{ޖcN[VTlB*oLQ+}{ˋ UPmvD !ꪫۻQ)*Dtf%)$!QښEfe`raF/*Tѐ@>p@UWœvOz#yV"*(أ)Q:DExąa?=N: g/ 0 4 )a@QF,jyUkQc߮ܣGy *(?''Guhr Dyh!*(-Q:DE@BFSh$>b)YX3yQȌأAq X( \.,۹ֺU`Jm;vj24s[~yV}gjFٯօf!{쳙?}x"BΑ׃ ^╓Z$(%Uzt=Fql~uY?>{d~]~UU?3m}Yבõ];HIU?hX݈'N?mZՋB$gf (>p*H WY9&mlٯU+RV1mƌ-,ZTq8Ijǎ`Rrw v;nL $QystIYePvʳWf,Ϣ9Ǝ3!oƖFz|6r6mlXx :B4"^'JpHT pؽCN̊0LDef={f}eO?WZʜ{l. %%fhnںw :o^xuk(:_{ u*r~iZ&"2xk$[yWNϗyݻ_?f4f~ BbZΛ9^iڸаd()EtYB??NW*))ծSqqWʜ v{zE?t[ޡg>bL&_YK10Lc L7?'舎kU\tf.j\@WoC1eD:y-ckln2s%uwkuw_s{T))n` }'dEAcFg(d1R'?/Çky=8*3nE1[)5vm3+AƵZ£NoWƞٱU^9 r@$v>s7濁s;Wt'dիME 0 ^_v;]y 9,*ӧ^CAU[3YȈcΜim D{NQ9@GȈ=_y^2!8JP3fS[nAU7hmּ[Cb&g@Q}c*ZQt*VkhD{T\}HrBaN5< IDAT4(WmUD߿ŝ1O[3 ;F]5 8!#G9Yg;th޻>Ŋ\DԪ5";t^{`Ȉ=g + h L=zbdڣ{ԧ\!" nZoDjq ]\(ҭ{/mgT̔vA:;Y~]P;'WJ=8!5gaA zS,{υ)g=n JQ(cl1mT!EEm%>j}{w 2w\<0@ WM!j>J>RO:DՄaVo.l-޵a"KkXH" T0Lvé*{էMz|&.]HoIu_lmʁp4 ð4쟧gk*악,ʟa ԸFqga&Z#!49XTi]aߊF"5l0 $i-J6 0 {X*"aF HA9T,bQai]AFo܅ f)8P T%rEaIE/f„"AD?HExgk,* 4U o , -4߬x$$h/ng$5wAh '=)l YTi yW`j'GӤǩ0 4dGG^Jq* 0 YW+/2hJ0 tJw{+( z2a.BV}DUzm`0 t=tR+j$֚EaWRx SaEaaQaaaEaaQaaXTa z+0 xGS@6 YTa_BBiBJlE+?2 \(Y^\RN/Mo~+WGEEye˖^ 66vڴiqqq~?ꫯ曂I&woFFܹscǎ?pttoyՑtΟ?۶m111wqGBBBHk֬OsrrZljN<+0RΙ3g޽6wӦMXa.w܏>())O>NڴiҥK=z3f̖-[ZhѶm+V|~a}ڵk'NjBBzwy?| Eׯ_ FYVVֿݾbŊ>'1cs%=zlذaѢEFZf QYf͝w ;y?;l޼9 syкuW^yEו[ni`dXT5O{'_{?XO<>#aÆƍk޼9L2fmݺ5((HI 6ۻw~ʔ)zC&0ai6lhӦ"})S ]z뭘5k &Mdee~111?Нx'׿ƈ<0_k5qDMPN 3s4XE)D-[φkPTs }lYg)ר4\& fkXXСop6444==]?ZoW p:۷o͛7/\{ѝn_$%%Ֆl6?cܢ"MLߞr ~"Dߍܳgώ;zƈte̙%%%EQtOvB@l  AbS\|9oƖG+]bw޽ax0#+nvSN =K/x✜ݫ0͆ԝ:ue˖u_ݩS"##}b bnn.!ӕg}V5 E!{ ȣ3Tsǎ(DZnƢryBDR &to޶k׮ݵk7|iӦ9s̙3^ZZn] nm۶=#zkfEy뭷͛g  |nw[W^|űc6|E 3K22[KwtmKQH&4J-C=Pgеk׮]@^^ޠA?;6$$H\[{nݺ[o}gzpڴiVwV###sssL¶iR/6 "]7BJU&D:1>2TD>ڵU BCCǎk6= 5&3fɓFFFWo1Y ZVM6l"~~P\\\[܏a iXPHMrF/* FDDvmOGGXzun{==ztNNΛoyq'+W4->>H0k,}{NSC'?G!ҷL>rOu>?Y}g5M{ǍkNsҤI}m0d0k%&Yk/DQ?jp̙s̙_uN:UTTp@XX;s'&&FGGC!Yaaa .:ujm ?͚5+11d2Lqƭ\СCzZho<  -((p݃ ڼyf͚-[lĉ7xcddd```ZZ| LRk)DDK3xVZn7n\ݭV|w'|bŊ܄C^wuoq׮]/>z(tM'O053f7&&& %<<'gM;TOߡC_~vccc}X,0̥7L- MDQt=))ز~+Wn:..aO9,f;vlΝ;vx[lKB=aSa*q8IIIof\\܁EyGvٶm[.aSa·'N8ˁaTaEaaQa ,* 0dQa`oaQaąIM#AgQa ˍcAFDidTaQaiPTe"@$l^7oDq8R,* 49}2$S`PT4BhDGzaXH!:\;b퇋bzl!8,h,XTiIDc+PTC­B(bYa.$@ZdT[&n)Pl6Y,¢0 ӰADBUU5޺D$0L8YTi"BfO=aF *FDEQ`|3ɢ0 h,FP\ 0 0 â 0 â[a< 0y+M%kP_T09kIeݘSdD^6^b`i\z*.ma;k0 s^ՔgUiW@O?*@Ğ 09 +?W\qistIEEQT`9g3`8{k@0 0 QQg5jc"0 sr+ 0 Ev-5"*@(ߡCcQaEWv@&EErx*HDarr.’0 s^r_uc")@"zy*(@3CKQDX5m 2ڵ_ݒhd*G2T7 Ae^ + ÜWU_Q}vs芿(zCSJʏ!ąݻHIP GRYD#3QU1y}4yx`LDzmE؄* [{^H߄P{ 1d*ȕO![")ҧ  r XC.,qY#<%KW 6h{VZCue(?*~"@A;9.'@ܜ6 $Ciի-9˕wE;,#:N(<:VPm۶|f}"y{Nk=eaW=PP @I,gO ST5#jm'Ya ) Q|GTSǦ}z\mvjL$5 iF: +6Ng'ڷDC;~eB#Or뙏>E4S"7ϳcl- Ah@ܩ5"2m-7Ƕ¢}&2ڎD>IْqC^Pgw^EQr>YiKگP.l!<(pG9HHH(RJU1zlqIӧ3_]A\RTtmdfmmb`AaZ]EQb̺o0aW!ҵX M5y2dg?( L/4Ƕpۤ_N=@'};p@ S\ݣWw*k῵4+t}Mxy&ܽ_H{2d=+ s]5H?EAphgUv#G4dȑ>|*K;U0PrU\PG &(ҥrIߣ*J,^.%'"益x;5mrp݈)*vp0xUΰO;8WӿՕmTǾYYQ ^uM!:w24 $DdyNsRIB@CCcv!nR|2󕗲_,Z @} B(@xI`DfY*plͩ!N`"M#DÏ:RwɪՁ}7V 5%QQ@#_|>&h6eJi˫3~5rIx99Jiw-P!Ig@@~B*z &}+$ FGj(uZvD̰aG?2LzϥKc9 9اKw+/W5ѤаHYDas)UCE[3֐ }qWOgǃK_҆z!VPݑޙ|\?h0ud3 :]&T^r׼wEu,epX| Gӌpɲ;j<:af_(fS6Svv_Ä M3Pw hP 9R1wAw@ qm~ޙٟ2=1UEʂ-G\kYsOc&LoU2t7 `^̚J!@K[@0yyS5U">1ɠC˖-۷fU\[ KK\hr5YBHȾ}O#ː37$=fj,.$k!7kni.Æ; ;hL& IDAT{RrҬ,,*ir:+$LV= aQԠ<~49~iI &!*~3.m!a|[);/GK_ёçWJcRҳO2F h Sg(;ő/<#_|ypǏўW_udw~eд^Ͽ#4PO_$W] 6l8ђyEu9w0 t&X{1ꚞM6n6R7mML ɪƂFTPHoSqz$ _x͜{ι=紻p ðZC*rR}-rb2 b^Vg#XZZW7M50FX׵穧*srXQ  ;F< g\QbY`4fp ?TE#+W$[JN_ww7r|WʒfǬ96 }3OO_99GVnnK;v(hlw`[ =Cw%fNYPc2:~/kܼٸz6&+Ar1cJ"Z غ ?ޛK aPƦ5]:j5ڶ2rtMh̃\y[[P@* t:OM!~3 msV[nvvZ?;_`j5+OՋxEE83dw&tDFPڹFt.zj~T@v"Hih%'n}MCX k>h"]#L@ҎlJڂD afzЍ`?NA-N.̈́10oWy{E=w.N:ۂ H7ib/[OLZV100cӅvAQ&Aֶ#pjzvv1k o'-+iC uAAQAAPTA.8AkFcIIk^": CBBX,BHRWW3d (*V7ns'#ק XdbNN'd2,[YY)rssmmm=<<ZmAA!C$ 4''V.d2]~o߾2,<<\"\PۗKn4sssܹSRRT*D"QyyyAAX,۷ [ng Hwᡚ?t:>pB(//aҎ?XUUe2t:w}CsΖ-[jjj,E%))&ڵk[neYɋ;.9d޽׮]3۷opBRRh,,,ܺu+g$&&&%%B޽e˖:A///`Lsĉɓ';vo߾o.,,=z4\$^zyWW)Sp_{ҥXD".ڰa6o\TTweSZ&'@tt7|SZZ:|.?9|˗sG={,! .*UUUc>˲\ɓlrqF7ߖݛͻ#dd28w T*;NβY"HR???>C^aaa|x~vڅA?e]\\,IÇL0Y_rE*JR^!\0D"1V 㒘eX]]]]]G^/Jv"G`u#77W,_~ǧ3Y%''\x?}tcc/&99|3g.T'a&::wY ݋n9Pߞr%K[K(--qԙ%%%~~~|rkݻ JܠA?FsssJJѣe2O:94Ram^^^}}^̼q߯ju^^^CC͛xQViРA7nܸz*{z H7uQJFcbbП?}\\\ <<<++3gtwwwuuݾ}{PPЄ z;v{Ji```XXXVVIu:L,fggD(WFapww6mӧOyӦMBQY`3g!FQ,oذa{DXA{ ԏ3&++ܹs!??ї^ziǎ/,,LOO_|yiiiLLV3DjzO=TZZիW?#[['N|hbXQ|򴴴!C:u#Fz* tKQ𠔲,Vr9ܸqc˖-R4))irޛ7od?!d2_z嗽,Xg0>NqQ'' LsNww3g\~k <4T6oެR{1X [o566z~ر#G0 sIoٲE.],|͚5YYYXAQrN4iY]HH )f1.HҬ柝FezC͛7k #*&򐇇0 VVVV,AArQ`y`0PJe2Y9pi3Kd2Y{# b>.Lq,^zDb1 3F,fᩩMMM^^^pEjGȑ#%I||Y9p!vrr9s+ϯNtvvg͚^^^ЫW/R3Q3gDEEq%L.JR)`4322N {zz<855RTX:tg|ff#ֻVUUL&5kT>}rbR*`0\vmΜ9vvv^vmԨQҡC |}}]\\޽ (* 4qD'''>DRnn;õtV{̄`ήVVVZ3 #G޺uK&sͺV̬j4 ,VUU^t:V{pj͇={^V[sgDP(l2ёeܪ*XUUŲey9B`e2`AQNش|޽{׷Yݻo߾^^^Rj}?~|ȑ7n 9)+**: F^D"QL-8uv*w+ K:7 J9999,,ĉ{:bCCCG}-,,lllֻwoX]]h".ٳCׯ533Ӳ5`も;0O֖R̻Z4EEsu: SQogVw`>>cǎDx"pvvlA~>t6d}iR a?,ZISɇ?ph4TXZ&},bZ`pwKA5enlUN 9͘1CRݷ`; f  (*  Hw]c "L86E]0B;te`(*HڴFؔZwT@E",/,FQA,V՝?צAL]B?1;v'0]EA*&BMlB 9Y !`S11]uBDPW&K+ =QaY@j~&he)wCQA';*KiםVE&R(%τFQA'ö]vZZ- tuAQAAPTAAAQAAPTAAEIJJq ˗/ϝ;R^^NNG=zk_~w ___QF CNsssmmVNaooE z*]Qk4Y$I{Xgh]% AE'Ohjjzw}||&Mt%(,,={דO>비~att7 ?7xc֬Yѻv"lڴ)::zŊ˜~||||}}}zaǏ8O>̜:uoPP| vΝ &u}{~뭷"RWWW__?eʔإK;77w ѕ+V5kT*=tД)S ,(**ھ}YwsΌ3;`gggJG[fkVQQdɒUVٳgРA%%%|T^^o߾q e˖?iƍVV2iҤM6D+VZ6..nXGFt1XT*sfdd]vʕ[}ڵ__ǏkjgΜ3>|̙3"Q׿6l0o޼y9997n?>uĉJJJDsP}_֭ɉؿ?hѢ/TAShnn^~0^t ;Jɓe2?*h"X?qkcc3g>eY?χ~h0xEo>>>ŇF;v,(OHҸ8.a׆ a>6m"Hׇ\+*RT* qvvfYV[šV)//.[111pA^|N[WWbvhٲeb@LfmZ̡~F wvv;::ٳ7VSj3JO.&&RzQtgΜqttׯ_bK:g IDATqDD <,^a;w ży:Nh!!D.SJyÜK}\`VeB[y*MJc802o<ј6mŸ.ta]! [*@H#M,~m,!{DQ5j\.ohhhnn^lQWWWJӧ֭o֭[M&;eÃw֭[ ,(..^{-%%d2==:?ulMJ%rt}esE ݵkD"y=<<\\\bccΝo0`}wm۶) 6QQQ}YSSӲe\\\\\\,XP]]~z\T ]aa0p94L w0sX"<\~͚5555vvvB^puu5 /V/^R/OA|S:GJZ[ʃ3sL''C7LZ =]iU6+煊B(PB(*_~e}}ĉ~ T*w =ERZJ !Td) (JU)-vvv4Az][P0 \sW`@m5'[EAAQAAiL{ H'!p;9M{v7&''{?|ӦM|ҍ7;wzܹ7ޟa9.\شid_}uyyy\pa۶m$ݼys텅7&M!=TTo߾N$YXWW믟?QT>|{\9"ð߃_4… [n=j DZc***V\ $Sk׮y{{plllWc4sss}}};qFƍ,fee`0eYwT*X^^"srr}}}Mr.!jRL)// Ĭ~UmӧOSJ·DGG:tё=0==2lذ_wfh4wP&ڵkW^3fLrrr^^^@@HٳgO0˻vbfʔ)˖-3apܾ}{ƍ r'zkҥMMM,2 3t%KMzDhƎv!!!¯ROk_kWWcǎ{.00aWW{Ro2ivIX#G۷O,򆆆'x¬@***RWWǝɓ,N>}ҤIgϞǏ0Ro߾Bc233XuqqyT*e)q1)*_bܹݻoy׮]EEE.޽=%%ETL&JK/sN?ϙ3g>| aƍ7k,>FQRy{{?sr?'Nx)eMGT^{ݝ3h4_ƍuuu gNQSSGݔ*K̊qĈLII>}:SSSe2_:wft\m6J)gA?=<ؼy3?P(׮]=nٲ%%%e\n}0o#˲|Mg.([n 7;zBHKKDEՖO0;*J)aBzg̘1qD߸qO?4 "˓W\(H ==ԩS&L9s&ܼysͼ%z>...<<|՜K~O?ٵ[裏bج D|H$*/// 6lڴoٳg_~eΥزeˉ'5yyy[n7owu}ǯ ?w+V xȐ!w>qwFWWWܠumڴo?SbzB ƍ' OOODt:]NNNLLL'+s{gRXXw{ڵM6=PTT %y@}FFFRRҊ+y;vXLԴ`KrJ$455lX1cߗ2i$BHqq1Ι3kAYz^i]q}}s=gyzh4fee 47nPJqV j>|ˋS8pɓ';(@Lҿ[[[Aĉ@``ȑ#yc***X4hW,NNN ,puu4}urr7oKU&͞=3~w7N+VH$ӧOs_ϝ?E˳sWRz .;,Xe^m:QWWAC/u~p%>>͍BBBBBBfQ?eE;!gϞ4rȦ&8**::֭[D8Ɔ,JuWnn.4,,ju{l۶矷޽{dLΟPϯfyeggs"''0mf]+K,Y~}' V֭[fb7T({IKKn.\hi6sݩ d5U̞O)-((h/B߾}fRN)-r !DVsc*w!0 AmZa)Š1daRRRRvu@ uP[­c&222==}Μ9 sk]O?K.a.eٞ0}AQ,UUU|ͤI~o۶3in^2vsmll J1-[˗}Y<{iJJJU pbBa|[/H(V;^@:΍CT>#d297nZ$I7 TJt~۷osGqFVbccg̘Ae6RW =3ddd0 #|;0J掻{9'KQ1L pSkX\\|Bљ5n~~~%֜mbΝ;C;wp {jnbYdFVVց3g>ʕ+qLXlȚDC=)7orvvv6 oxe%W\VVoUj5P>}lll.^xPey$]~~>MZ8,;(.^};|0mHTTL&۽{7϶eee,?71 8DIFŵ\O?ݽ{ #v{1bDQQ?,\9r>^&Yhb:;;liikׄ%(\LR8̙3Ѥ$n,566ҥK|۷r˻&G)?~YWC"##>IQPZZM> ;vlvvuryVVBXjW |\~=**7n˗7o ɮ\R[[0`˗+???''ⲲG}2vsO~z Wp(ZgJh|#""jkk FyĈ_upp0\/鸳($$$))w%~u 3LW\ᮥFhh(lY2jԨ$Db6ݸq:(ϱcmݺܹs_[VVvZayw~HبZ B(ڸA&3 "F999XbȐ!s"nY,jaA`` 9::h4Dŋb???kbh45\aÆ=6b8::lmA`` 03&((0UÆ һwon:::G;Džr!CH$ `0/_bcc/߿@@{޽}Q~- bBbJ$QFqzzz^Օ{X|2±YX tԩٳgVVV*QF9h!ӟvqq4...j:66V&t:\>~Yfj7,DEElllRittَ!((0Rt''Q!!!ZeY??+V^SSS֬Yc֩tE(-OOg/LFߧzo CvJ!{t5sV|FOe2"֮Sq"qqqoգo#<2xntQܶO>d7߿?8 Ұ͛ic$3fT|PQߊG}477ի]ͰG TׂtL&SGf wT~:..X/bC~-b,0o޼D_>SA"kNK8  S̝]`4)Bevem9>uZ]7&m<ڢŀbRb ^ǭGglٝOڻLMM[km*͸X}ɔO,6)PiO((Dn A"OEٟ~ju+OգcR T^yv+?{q%,rϟ4rR |.2,h bWw?X^nM)⍵* "FY MKNJ)PB!-E@  m9'g9%fܽE pA4%Z=:WI=cFMŢ^^@ 0θb4zEBB6P[ٿ}`4dfJ\U޽~Ko޴qt1  YoR+jKe ~2{ @]]_=hPƬm(,4XwƂ[W2XWXx @4y&uxD5w+ddʜ޽N, `,hvyhKG }\Rs=Hd-zp"(@}}3&WH,4(A-*2{PY@ g"Ƌ}QR)lNꅜߎn*?,8?Lu{:;ֶ1[i3uC}BkoR+ﻲ{WOO)֌DFfF7xW76N %i9oe͆^^@M_xQJ$56: :d&zYQr^^0I˗.]@M?q†FaC6mPJ<|Dlvȷߪ|王PK7\F 9!l?bX6^Jg/޷F7( )|CS?(/MO{1C!>zLC*wX=,vΘsS^zE0u Q:|䔔*Ϗͻ?eT7g|KkNK_n`FILԬ|ȐaD}|}ũ?()Q/Ԝ^cYR_ :Fٚ3g.+e IDATϜb/{yq_i<ұ8 :͌Tǣ~@ib['˺<(e)stLՑ#u?>i qr; oߋ7),ˍOHR1: (‚|7m#p*74f_#}zxo&4<7, WZL`' !}=Vҕ6\L7M@9@vgGigA@=aXt<@ىcgO شIǎFd***mH.e]f,9~LsMD MϜY@4%YJֶR˰ Kd&BCv6LSt.7yNphΧ´)i(oZ/((aB,!:."L"6LΨگ574H@௝@"ᝤ#GZ٭(q#*@ɾ7j&-PBU_ f+Z/鞢вDNGLy@)O}/i}NFL(K8oa\njl,=tXa(HjlŒO?cdZgQņEjD 18:e[&L"15`2(uu\YZkPUi'J+]@뵷'Ɨ88PJن= )gND$ JT`%l@"%Xi);{sXڐ0" ,m QΚ0}\]g>s)%>gAYx%bUʹ^CIzBk$,Ϣa)aAdtتAe*؀ l1Y ҝEQ^QQ{k6VVmT(Ua}@P&''dL-ĀE;^6lp 0@Y͍߇ W2lEũTqR*hZ'(芪7+Šz}B0A, %K<6nAnvj*! {͞9|F*a(e\\fλr ĦOlm'Nz=ccl~~w%∅ L޲ !rw2IDm<-| (8ACm\])atZJQ}O:LQ}J%BP>n#k T&Eə7( 0%J@H>5^ӧمE4Rw( Hz.OOg/LFߧzo.JhUnBVZ07 ~h4bPL&^Xڵr(<٘Z&`cۢ@ K)C`Y.aƽm轝ĸZ5m2b9-[`Y @Ւ RB ar,ܪmV֬ =03 tEXS_1Yӌ3T*}[p xFwhZ>0m #mF`Z9)y2 XƄb7LHj{K^gϽv HX+    (*    (*    ] 1 =XBsH>. =9 u 킧M%{1 U} P]sj\U}CzE6! zٙ1Z Hty?,jVJH}] ,"1t]zAz (:)1PEAkK e eIdbʲ,EOAkC)%0eF˲ݢB8"BDd >j #= G/$FKh;C%##wYxqwz>;;Ο w<ׄ q˲V\ٸqwoƍ:<PZjFv5f6 #66k-a^+,R^,暹!Nn߾W_Ů '.Ih9KRk 2Ts:M~NxȐ!衇Po֢Erss֭{Wv9֧~N\%%%]vYJ`82#f"XHXˮX\ -p5<B%khy>hO:w7s 5K,_?322>޽{>\R?ӬYޝ|B-RcOP &&&N4yϟ9 oߞm,VZq^"Z`Add#уVXrxd4'N}J$Ė| fV-Z"H("==ekWԠIߣyϘ1c~?kڵ'w˲7o2IF سg{hΝi7.[D{d{ݿRI.]ۅ83d~{9mu蠧&]^l~4}nݺx?sS PkmCoYu]Wr֭[DCreĉ=А!CyžQ }{#\:)XJ2kwRzzرc_~0J oܸRjÆ ;vtuVW^̼N:"Ҷm/?+=)JH)COSZ$IHnI&O:8{Ϝ99f~~EZn[9ׯhƌ!srrP4eCDr"DjΏ0yKJJCu=g_u~֫W.Z~ɓM֨Q7Q^%rmn\J$<5ӡ|7 uyСs3cƌ۷|ͭZ1P-,"*\ҫ ")*uֽ۶m[z*===..9pܹ .\`A^^^߾}G%z䦛n*SSj޼yLrssu6|:y SiPS9ԫWoVddwY~x޽{v={3dرcj&PÈYHX۵atI1 pxa&Y Tv}ї]j_&HJ~6X;/TC~N5c@B*@B@Dm UEAMeDÕ7,qOtMd zs<ȡyfۅF0#v,+$tS։OO)V=Ms銜}Icw8rsrZt$sqR꤆JI ^'oɨP)L4f&Xp4g'WhU6c!ly*P B*P B*P@B*P@IdV[|U:Z}ݺuw Pe˖{yK}v"B Thʕi2sTT1L^XXhU*rDu/۳C%"̌'L&"QPqweyTP91 }s޺ukzU4ؾ}FO^CZUnܸ1}@TߢE3<|-hs`۶m۶m{rwת8k&*)wWvڵs?/ئMĞ={qz3<3::u>`<ЬY /pϞ=|ҥK{ۺuz{ zGGGs[h1qĐe(,,2dHJJJr:WGDpO2dȓO>BRTJPRRjժ+駟1bѣ/_ުU+2"Ǐ߻w{7G3nXdIÆ CzY=cƌݻGGGO:u_v6l矷o߾v}/x9qƏoM4iܸyeڵkW\u-[,W}̙sԭ[,I-[6f̘ .7n=UVu}ѢE7bĈ7h @mү_?{`ݺuMv7N2e޽[|{<37xܹs֭w۵kk:ujbb#~i͛7\2䯾矯z'F9}Zjse}YZZZڵ L2|QQQѪU;5+Wx㍗_~_~ٮ]ݻ/\[n9r7|ӬY#~u9ԩCD=zҥ=#cǎ%ÇEEE.].X~=f̘&M?_ Yk+9s=N:ǏG4iR> -[v9'9rs򴴴xg {^s5iJUVy+V;y˙O}Ǐ]?T~z۷o_ڵ覛nx}t2uqmذaݺu/o^{m;#duoA}Gc֮]{ԨQo=$++kŊv>~ ;o/^ 9#F(,,!{_GDD>|;w...&::VZ~(***:/2=3!jպ˂i/U@D;vwy]s5!vdžVw~N*9C⢋.U4g˭Tj{w_reCl@zGy䣏>ڴiSQQ=H M6ofXf ]uU6 njJ{srsruF rqqd"/_|EÆ 7lF8}ۀː^zcRgɒ%j޽{^t{F?'2 IDAT5k֠A:l0{9C]6mxYg͚5W^olC;hݟT~vh9+?"*PSA8arDu-,,|Ǻt;L2iÖMccǎUDڴiS*EprvڦM3$؎({}Ѯ]FDD䚂ZN{bbb ð,+))׿VQԩӮ]v{;ׯΚ5kڴiSL8ploxÇ\.5(22Xc>/"d߫J QbBo;Z޽{׮]ۦM{HZZZ͠۷'$$ݣÒT>y hϞ=vy.ߏm}Qǹ~%''7i .ؿ%e֭[[NFnӦs=W\|vk6zwuWpQj˲ZlixB&V9x`rrrpu p{@w~Z%dO }*^1ߺu+\L}AΦEӧ>qKRÇ'^z)VHarjO*Ws|WVZ5cƌYfeddvm1:th{z9c gCeNNNpžkwM71s~~1tP"r^+lgu;onr|ם0e#iP9޼yf5gΜ#N{Wg_~ŋ bwD;ӦMv7]vɒ%aoӦ{I&m߾}ӦMcǎҥKԦMK/[hѧOz駟_Νۼysg3d"֭[dɒ[l */prAA/gNNΘ1cӯ_ u]= c{~m۶-__]kݴi%K޽O?mڴD4jԨ3g>#[n]~^JD#G+RDt9,ZhiڵkxB>"==m۶}ڵ+** p}Ϯ?lrvwڵxmyR97rO?瞫=zt}$>k֬={۷gϞZpap̏?n׮y睷ґ3{ &<-[|,Yb!BΚ599sϟ?wyg1lذӧ;{Vq͞=m۶w^˖-[~9U^%iw =O܊& qС|ՎS^whіWXcwb}.)>Kj+ՠ$,^/zQ6Z,N 39f QCžƸTpRTPOpjB*P@B*P#P S!`,mQĊ٥!7Ząbo:V.eU7 Q/[LTe Ax$0h-D3*WD*HkM0Ep|"BQ=BFY6`] 6w~HANvΚ5srDxՈC~!FW4sAΝ 74RD۟CdDES%  J\MH'Ց'":nEhcXzBU/kĞ}6[k S`4ڲUYSx v1k|QT-[ŋ2߃DF/ ūx׭֬֬֬)ZEd6w1SrJ17췤}Ȳm/Iwߚ5k}kV{^cY[fZ.^FY]bI%m׿\ QKH?&]rIҁ@T&t,CȲi׻#f]z[9*XH  LY^rXvы(St<_||>r[H0;uHIzt0V?)!M?C %Dd}-LdZb67\~BDq?T! /ҡC_G/ ۻrKJZN_McZԡ}d]slLZG?'a~]%7e# nwm;];]3d1DmT!ξo>mVU홽J(TQ-.ȧ(__@f5[>,_갡)P}O)9S'JK#mKOQQ]: Ӟ )DH*Ύ"INIbaaѦpanv$SLJ^Eɥ>ԳJ Е;%LBﻇt~_$D^Wl&8B6ԩDȨCDۮ^JZo$Yg4rdjbcuafBbt-&Iz YVƲeTRbO>Jb2${=e+4B""lWG|e$ L"zca*m1kLf-Sdg I/o ]dkboޤ]w+b.%:i;Q UZ䁃 }׭52*q K^!*RfI+P".Ql|j^ŋ*DnbiMM!8FQvT9q/h"fHEҗ}uj7"Bry:ߙN!Eaz\Bjh)èz3Pwj7:z9 _ M% #}b;w"?޸q|qy'R"w&J>E7F4o ?*prծMD>gz-"jo+H3tȡ>*UNJ_1{"lGDoVl!PŃ(""y3g۽uk+!ᯗ q7jLgB,ۺK܍  ~ Ojj.{QZ>[g ۿU :c|Ji/ 391+sեJpWW^:-X%Cɲ|[dZ2+Wnk2h'*PJ0' D>d.^Jo$c޵.j~ɰ%ӧGoFaҽbKD,[V,RL~t^O!ŷjGECHs3Dz(t+Eߞp^n+ D¬V,5ia"6 V./駨6mrÇLbyt8ջW׋ aPm$'{+`b{2ߜo+#1>23M{YHK|c֌bL%$9ທ^ <Ӆ|㷭KDzxʶJى&駻V.{)w+[aj+VdWzre0uٞ-n>ݹgsN]I7OqCҥ˺73w|C3-%Bo%LJ6@5ãFrm{ qǿ> l0)&!f4fbx!Ҭ׋13 4x0U!&* WU^!V1 f)xоiŚL-"e) J{I?Y""#H0O)!2+Z9_-FGn4aРA111@D~!@5$.m"a*`b֖MaDIe* )Eb`9 Q4(,_>ʼnO &24b әH -ϞsŎ*߷p1-P-S=,G]|ʵnU4!X:9DK.yI󸣨Qp@B@ TaT;`ObX6y0\PI!Q 'KH˹eNʝgz5I_D}rժ<_aBXAPsq،rF$&V3۹ˎ'&!`%!11BM;D׽dߊQ̎g\ 3U{"!W)!OZcBrŧ̤.u7BJX0 l)8e.rU:i&*av8+/mHU_e3 )(6Mѹw.fVJrD.5Gr=a(쟒0'?T쭠2M3""B)fFMtJ);WPSۡbo zTbaB/{ QjcVb&KbVbWB*P B*P B*P@B*P@B*@B*@B@B@ T@ T T TP T𧅊pj! 8(v` ');+M3$r֧v/ݘm"m򓋔ݲ'3WaϒBT.cf$Z Z4kJ-;^]$B> ΍IIlIB:A>MRtJMс$BkRā!E$&/D+{]47D{y @&Dk"#uv*.*!$EL_߲Đ0=K2R2[DV䄊iĬ혱jV74Ad׬eZ6eT"f,9czhvmy_;ޜ"f-Ɵ1%z.M 'J>3t737I3;EIt_7{o-iHכܳGGX"{>9xJXX Z>xpO9кhuޛO.EB%/Eg>EE3޽SD Zr[|hTj1bT:K ?? X m*3b$jpR&QE2R\cZ@+On/f4k_4$%[ ONs ʦgyL9ӥ=ӕ``Ů .B Tڴdz$˦U#:u+9bo΂ϭ+sXL#J=|n00cꐐG(#|!wٻoŔbŅ6m\2T.m`TΟo r*Q**DD 3avm_+#LSL3CخH ^XXXH+MrX6,ҜhQ_iv~}w$DJEwg#߄EDJ|0mD\ڱhX4rHۅN~gb.-$F}wv>FZzˊ v6kvK)*%y6"?$")^pRܮ!Ckdʥ7>Ж" b-N?L"ؠwM | QYY%)]_|ėFK>Wke2,d\M2gu+=d"?o~ݤ)Ge J~]8oﰴ䓔wLS8 .3EK Ljܹ|"b8 Ђ) IDATAVD]q͚q𯜤85 X?~s.oAb켂K"+Jw0iiqQHaPJ\47,= "3*)r`JKk޲𷭙KrȧT}#}WZg323bcULVI>nJG>q*ĖTTݲnrZHhɝV*yUVi{Nf*߫MUn 'DaXcC*d.m{76FZG`*#⯐aʔD_}tYȑ^!bRH'v/\ϟ{] ش+IkeY"8D2|D1.W_TcޝE\~bNH|t$}7j4!,zw%Rs(?[\2((/?Յ:Υ'Sٖv!"Pvy.s{&\hqZMu}/(:ZTC_XQD SZ))(Ь=ѱY4IP.=+)\4HSs @-2 #6N)wɴY:4\2Bt洗{e? q*sܹzCR F\m4Iwggx3tvת# ND,F6?~}DO EE  Zmc2:tPigI|Z?MoG{7z_}ؗAr W#TNHqbΦafMa,Dˮrŵ}ɢ_/bK|b[\RRvLs#ŎDgDu (9<Jz2¾xqĊ|>:An%'*#vGX +t 3Mrf@;U&r<;%2apUU "DJ vC#Ϩ,#tSl""Ӥ:i9x] #tJ nZ¬)[:dNp!Ÿt @ T@ T T TP TPN:QTup4)3q#Uqȣ9_q}uK~JYCEvW@DFE2#s*}l9F7*ܣNU J.wv[qFP p՗##fxp7銫:%叝dPGt.,D,D.ߵO a 7g%Π)Yʳ~(Er*pn8BL,&E\znƁJÃ-É)dйf'. ğNnŝ˞:S-o*9xG0}=_Xq`JJnaR.R2/āfD"%$ZI &Ҏ^ǿ~J YjEG'GG{-k۾}7.BbnVڧ%bډBr(37K:i$VAqɮ i\4|̛e6b#=dW%Dl4U4 +*P,}FzDi%^)BRIZ5M{ +!$ҤvUϻm)%cj'ē1oݿDk*%&*9:&h_N}OIJ/)P&ݴVm/07IOLDu-UrLTJL /KNpBBST/'W fujJ|zǁ IX%&EE;,,2I:$ػO1|;Lf.ׅ4b"D*'eY&?)2r\79S9P!&>"$XZBN$kv(s~;))-SS-2^D n=9;4> ., <&[o7m.!f"4!m4eIH y׮]YlKH"E`aGGJ<01Ҿk-"2C;|æbmO5"E>mZ0 ѡolV''[.Å3&s( tEͼdHMi+'{=2%eJ$&-;؈yy6J"55#7vB{K e̤/{36e`6))-j%=viR?!CzlYr,L;r~ܵB-SSZI%-邒Cn5Yl,ua%qÙpH Tf^Js` )!5B<v=SCb{`5`%Um֠p ^St&6]m8IƮܢDEEE}>>ہL23&s[vVnq_EEƹ]%/uoơ"2 _vhXVlLrL).iǮEE11)QQ1.Kr Y "ٺUDv:uFZ3ؓ.`ۡ,bjU;-cF=>[ڰg_3ǺFVLS]lXH0RXv0[֩1%dfnس/-!}ú1Pb`U\u6 FDPnQ}>L&"Ŧ]n2 QX96mmV;5:&*j*,ܒ{N.|qc恼fRc#<і"? 5""^ںK%lO٤lYVhk*zdYd__*!* b]+MXH;ae'?}1&"89lD[.Rbki)51i2k-њ0XVt`+*h矄E0m,bƲ#<n1hD,4+Kh""HW,p`C5m/XHvTτCLb[ρQf*63)")m*_SPW PaҺ|H-~p1^*L,"2 P-ֱYhy .m ,C!v7N0@ Tn?)d\8W}pD1,&BlSӻ2**kB.)96ԮgAM>X(pjl+˼uL#,%MEe^fa'\kqC*\~Af5$02W+" 5%t/sݿeu!0VN6iZK98)wԋ "N`T0*|jZRWR.=bQd9p p ?h}Kan`RMcBE ^mx"e RNH"\p28/gypJ_9zc.NF?~YԶ ?\u3W*I]0d`{!c8c8W4 _#}BK}*e*{cPЧp)}*1g(+(ey ?NOT>0׃XKTsfU05Ϲhk Gu9!},BN #nV6Qqюꈋ5&G;6P p " 9[u83*H ǒ^yTUcH1+0]29gE!̬%\0YKS#lI[tť?NhU4/s9M4 leYl٠r&¼BV.) b ^e"T a{x kپRsys@p*!,"X˷o^PP W2BPww7r!ӹm۶kfggBCЫW~?JKKkkkz}8vc \XXjCDQ W\Az(vrjjjAX(1ׇ~ц =G) /^D2KB>Gq8JQEUUUUsrr2\ܹsn[UUƘ ZVQYy9ef֭qxC)Brss;;;O c^Q:::R\:J"b---W833500gBʕ+m6[yy`\t +(VVVݻ7qB$IݫXJ/"HkV#s__( PCCd"(Ӧ^Q!pKeƘdGns7n(++b (N>+IX8L4O>8C~~>i4wǏ#HUUU2ܽ{'&&l6[}}h뇲,OMM!HoXaX,Fy|$\~~ϪU9b6(ζᠨ,Gh4xR8yՊIÇ\h4H$!(z<lCQXv; E"TD"aɔL&m6ۻwBNرcx<2t:]ww b * R5::j2cz.y^NܹZ}h1PTl@N}o2 *,, *FxѣZ_Öbk ?䆟Ȓ"^KDQ2\hxxXB(gΜdE?dnn/_>Qk֬!077 }(X,V\\VYYdPT^~-2!dƍ ̴X,F.b~ĉ/^`b]vݺur!Kk6 ^h/B7QJ;::.\066k6cի6mB>(*]M6 ׫!vv/}={v;!Dy^ֶH$"ϟonnE>(*~D MLL|>Aduuwɤ ===8%ʼn`SSÇA!H[Q6'7ݮc ٹsje}.ے,Jl.++K&333|+''ԩS7o%yll͛-u`ɓ'FRJ)5L6R*GTZ|zۿEEcL$8?׽ٳgpgVAeK)M$|v(Ijlll{,F 33VkNN"w"o 333Œ$1(<:>;ERz}8+bX ,**2 _9>> 4f*۷po/ea~|ǿ Ap:[l1|1?͛7Fp8jjjz/_._7IWF? 4DIENDB`ntfy-2.11.0/docs/static/img/android-screenshot-main.png000066400000000000000000001521041462047176100230040ustar00rootroot00000000000000PNG  IHDR? pHYs  tIME aN&=8x Q7pYmؤR@~a !á"O0o&iID H &~)p*(:["H`6LŤC2M0 o0X )z)FLb!4g!9|+&3VEN_BYпQM&)Z׭wA ui DӼu] ^4s{Qo^qvMZe~hcb-e kI&d2[")R()%d+bH' & u]HOLbb@"^ uK!a2"bӘf|  (d/@ޯd)KNS ׌).oڷg  \n F/`ldB#I._ 4Ro rf6 7M-TT 6MSBj lBHCX/TXLE 0ٛeTB]fjt-=Jдc?\%ؠ/LU[鏱s 0 Bqjt=NkڡcY?\ʥtA(yM4mU,OߖN'#985:林Nе}cգf|i}7ҫ7v\uKMGAT7xΒ[LImJ&.ڲ f`bղcW zk7+^|ޗvnRk$K^z*VtXT%C]q;757뎷_,(,TLշC:^õfi y~Mfbd.n_c*& ֳ^|"x# c؟*lCtTl\rV׋[wX7"=KȬ[6|=oFFA>4YE8t2L+|0@3n؈`#8:04%$|^f).mѶMp%4@ tRYM[}E34с5IM+vRT"Wf뮎 kM'U \дMjYs:W KB:,KD* ?]'|ރ]>WԹx_xY>C 7^|BfaiYF' )@Ÿ<5wJVu,1 eii ~[V4o^ ?~~՗յCf3ׯXI >m:XCro~jmqQu׮Q#j[ijUviRi@,FkV6kSҥIG?}/ZV(u咅5pPNKq1Nw~Q^Z;RJ &&u ,i*.II@fQqvgw@nw!Nk:uS_6zo{dS#7X)E¯,l]qFĊV S0kko`c7`Od!,Sx Ihb '.sVpcF=SkhՖ?١kf(h|ѷm\f l˹|o_TJ*,}=֍~I;oA]Юgω".gޛ>v|{>RuG~o%L-a<=0wQ_}R{ՠ h3'WAb\ 9 FQBwh߿]/_01yPٺK7ٳAM/ڵ*:5j4OeͲgOe ;SC1 ڣ̂?9FS6f`R q0ʟT@gOX47~1k2ȩ8P/ΰ^OJ۱o: }vlW_mh#J#0ܚC0LH…2}ܙ ܐ+۹>̳h'6쉫`⁰8q 8k=mɢ̢1UfAvs9g)X~Szs$-_آ3Xq} 6"N9Wl.8n"P0Na#b_+DfQF?_<G'E8q?-cΞЁ9يXԈi8no5y[6{^Fw&/$3ein9z i%A&Xs:^uCWa.R@uF7@~{D@Ժ{1cOB'W̟p~K@k*ZUjN<]K.ɲ^f5Z#󚵎!M0 E@Hޭ:&/[,رy0ب|I$C9 r HnvFaAFa^FQ⼌y ,,(;/z@2R'¿(Qo*߽Yۏ>E>0BRKwMk>ekSaoӶ>TH$"UTt7Pa6\2XQ9+49 FJ|&)u77mչq}ُz^~,% //V[7ퟳuò[1Z=n}޸YBqF\z} ʵ PYX`fo>i!rINa#|x n$ 4dg  p !WS0h0=1S&YyZ=̡r{֑_9cY R@vQ>4[XD&*?rM[( /YG~,s{2ܑ}@2M*+"8Z;jgL8f,g&+:abT>7^iZj*դ>@ Px篼Aw>of~=3e1eo2Ud6!:`B?@4Ө4PN%lJ]ҩ >A%²@-OLTš|/Nap }>{ҪC{%=:Mz L 2h}w}~[ϋ%&We XSxUKoTb(bU4SæGg]n~ޝpm1QK֯ywqRj>fZq=:)4;||uj.W֯^sU7n8>c IМc UkYk %WLfxkRN_b&"o1]Q=+&Bʽ\ȹ7ؕ/=yŋOd #.#4ŭ:J`WVֲNZMg,|G uNrD]~Vw:z]^ 'v7SfXV!-uq _J:3eikn%k@bf\=*@K(Y!egJH1t8/5˧].5 P|ف֖o̤P^ޚ:)Yb0BΒ,!šȾN%ز}Y)@[p +2 ۫IwЋLvGC/C0+3 VCZ$fOdQNbGr5mھܜY֬عSt. Km̝unfrHPUt闥Ș[){6ku#ys:u;CzvJ۩߮ !2,hͮwno V ׫O}Ī|#;s/t0άY0?? b*Ӣ$gԸaOJE"J%"bJvEXH")$\NtFiDiolkܼ ;B .eo:g޺>a N%ԚwW_ww˾_#-#CT)*T! ,sEmh#~5yK뚆( F:nl75k֭#~5e @^Zwϣ]@[(0493|M eelSBj)n[Ǒ./\5;BLY/?ܑyL rkn1;79X9Q\XҀ;k͒SK[ /ls?epm77\,.*vz4/et箽m@&̞FB@ ktT<Ϲ`?~:fϿܰj-O~+w Ἃ937j9;( zu1ϕSHT9V115;uִőubƑ/ OJ۬Ϝhι-Z<*R|yㅯץk?{BiG7Y5j<4FLe(/Z*QDjl !.<_ ?]QۥqODp3`75gXi".'1ߦCƏ|Q'K,ܰPQ (*[/PnȂM* m$W\#ukkW`Rg)߾L+Q<~G==cO]c^xSQ}Z~Zҳ=zX*(z6hCԶn Z;UZA/gf"V,ܭqjb̓GLIL>"VB J/*\@x,7 25El_ $ؚ]߹iwtIJ5SjEc9[a&5 аm6[~BȜXeX{Lu*UQlU 6ϭ=g?Jb LsN|lt,ޜ>;cɮmJ/Q! o #WFFK=YY$UcloQ_8 ԯWN_ h6v7u?Vlyoy4jLP`μK{nDm߱;g`Ѧᨢ˦ٳYf~۝z&{uAUOx ,={g_Vނ؛Ci)6/+!y5+y\y_(!^y}NQyWLTit(I9L_쿷ڔ е;!_r),:MϥjEs ME~曷??cEa{&yϕvn}{DQ:Q_9䵷Ƹ?{;(7w0grt 4 ™ H׵R搾WQ>qÝaE?<о&9J1nG-܍cBj&3k|η/1 0+`WV&ѕ007OI1=9YBH)ל: A^mhu ~b)C.!ӆ5>1& /+9 $H)H{Z$$*,%!8dkOF~.Fi\SV/*Xջ/ܰJ74N+5mMo\O~X'掣]s[6 2}wΣK7n`FZѱSs`k$[" @\3~zqf]qR6~UΊDٰr5KKoޣMGЄZoʠѴ? 8+ꎃ[N> *51 e MQፐ;\qYvxk~d@YgpQ)l橄6QZ>%TTE1ժ݈Wg)__SC\{'sylFC@3 wмNw:|Ww:g̬_2 W1%U*9 ػWw&6'ۤnugS'kИLLLl.ݾu?" y-v\zE[}c>%l- |4$@kXc' Y8QN g'.k}=|5.Sknjm6 @ o[X (>arl|zM.jM=Z\RP۶Ǯ@jgZqG׮E*0| d3w YF{_ԸyiٸgsLa[>zk# W2eiɣ'|.S`͒jŤBoQVQkչw;_W\{mTsb4g ĕ%o<$_-F~99x{Y9 WnXłĚ?\Ӓy`Cwm‰+źgS<3ȣ0L:wk?J3(dJlޢ>O߰v |gYp2쾰z{ޟ>_}qj'K7g¶ÇV:9;~r IDAT8AA&.c_Fnp8"3Cڑ{y35+U?cA-҇3lRI_v g"q>\Լ_wW ~cT>Uϯۿ{IR F!|5}}F=$%b8j$ _UO߽%761i|Hz\UذZg2nLr:(%ag2M"xtgAKh&44RjO^#76u@&MC/r߁W- olܹ3!>>V23o$UuN߹OUD6$|7x\A!宓PcoNvk]n." j %@r*H_{28~JB\|J?~=kM[W%24m{=ki2|80LKr]p0#bC2q{ r9,)]jQ wMYQTჯ;NMץ[i sBԲYqSғ_2;7~#c| {AL*.o>2LndnќgG%sCJ&3Yl Mce{w\ڨhRX읻e픕Kr&K~.'+ѼY\NkiZ8ܙy93pXs8_U=&-+NVhl6eaE{s[@tp#ԡjybtnזmbum即JMHz֍7p"+2M.zS& MᑎϿaӗ.@vXD3/moغ_% %\%g&Aj^6w)e Ճicv)yoWKذ?bJr{*GѸ C"p~ .Y Zmd}J ۱ᒗci ힺr޼l\Hg/=ѿs鍈z׶IK[I9ȿOcﻴC7"l_׬]qW]d+Z*kgL r 1 4SoHɄ]YG?^<4@)†MGR`J|`:yzG M@:>}r8x$m%J!fӔ4}wցl{47W{Yى5k]+}}kMt*Y⫟zg_]w"o=[6ϼ4e:vB7^wҜ?-\{g֡J|).KJ8xnLm\Y- aPl$<%u?:5>9w&j+az,*faYSn9b䄈 @1*e2ņ׺)SJAֵ;t]%{{sDJ7ɮ?)4}":ժ_ܪC:ʲ9I.ذ>E<兀1 y~ ƺ=sFR/ήC n ų?74&PB!/Ţ/*{duo3i9uUˁgǜmR ?&+VY$H=,eH[ [Bf404)r\E,0+JEd̴:uggnܿ{[Qd%J*_s(XF*t~W }{k~3{jbj΂Gwn_ƾÇU`Ŭ?޾WF;\$j;[)3I)P0Xe=XwD <߉&̟<~ݪ]-Olz-7+ܺ{׈Q]z>T5OT"Wf-́aDvo{kuUh{^7Z%oÈ!<'ȡDb? 3:W,B_Ħ!Xg赩ަn za4Hkz@BLC% DpD)lǐ"Qر"Xe u}SH|ϖPی%͒`](I0:`0%Wp b40%_4̪<1Ƶ4fzu ?7'{Q(Y`ʧ̍VIx`k%a])Ӥ9qd+: ybBrTq!'ak2O©:)xPm =Bn Vw࡫\8݂r S!6zP''aU8爛9=_ǟyE]G!.]ѣ,L@=LI4}zB^>䱬^.x-C?$Yُp(WwHc E(X0J_Bn5(,W۠^%E`FaTUJG*5E)0u2jTO>5%B~4gr>E(Q{*(SfבWsԫ0b_#Ee|\DT);U_'#V]R 4,܁2+T :Uv_&∳JqϑIUwWk߉S*(>YPH_wUBࣷeUQġwchAI'kIO;zqǪ^ [ːnǕѳJTcԜx4,RhȲ*2;ʪ(je6cZetfͿPv)6Ϳ4"sT0Ye<:0 eʫ ίtǙ^[=6lذ6ذaÆ TlذaÆM*6lذa&6lذa&6lذa 6lذIņ 6lؤbÆ 6lؤbÆ 6lRaÆ 6ذaÆ 6ذaÆ TlذaÆM*6lذa&6lذa&6lذa 6lذIņ 6lذIņ 6lؤbÆ 6lRaÆ 6ذaÆ 6Q`/Ra(JSIURuўL>۟4TglذqFaZ \GI?T /.QڳTf #zmGP_"?MMUbշDRk9|MTħ6:(eL%oJT0כSݡLR4? 6^ْ,BO?S0j}~X(D pMwKpI>\}3C6N~)`Cy.)~O#c/W9NR__\V)gʍ3sS Ϩ W6 yРVRtK[ؽL '&Y", t'.1f!E0v)5@*4>)^QgW.'0Gx*6N(VK0T]ˆAŅ55gtId8+۰%n䪤2Y#&p4R!ĉR&yyRBhO|]壝YDy޵κUԎcGotԻe] e.ȿ8dU|n +6b_vg=tٵqB-d?׿lPg^M&I iOP`x)vYX|au,9`oaެ5˿;#MEIIlVMTQ08ZhqB`V ",,V$]z! Bʫy['Je S\2G I"$!M%i k7:xHY 4bq\.^)p ^6Od9H nܳ~S KrI1M'YeF遃l݉Xդew;/QgXX%1BVmc@\xӹ3y NA4Ipw?['d3ԵGk Y+řLdQ(LW` iY0L)V 1J.u 0 e+O-"VI>U|Vz ЭCP>,Y"iFYw#lS\Xŗ%{ĘPn '53+03ҽoV,=eQEm7)Jڗ3P |9zbs3!UẕJgdgp*)wѯELJ.bEW\ج=1WxJl'+LG\Nk/ϐ9*OUq.gKI 6l-긼\;#*"ؗq~W:ii٥o(!_5Wِ@߿X0YO߂X̀C*Ra:ZW!wݎ }E n%le >q ΪR$(PEccA_-7~,Ŭ,`wbhD{W 0Jט Vqlg9(!J]ݵ!-cQ:}Τ\no>ߧSV<$b"E 5@JIUm^?9a.G'}>04¡04_ko Y( k`J+hƁ,Pvi?EtirgVV-wjS֮ ^V9J1;f hh+iI+X;V#7f;֗⡽9dB(04[m8q%)LrG=}-R~h37yorard*{^}b G0G2d@=rKvm}V'틡O`T gfmvP5JI_ڴ< E mJW\ߨZPgd8q,e`xX{d 7oby7ܸ.薑`.2./,\wayY]:+n>زI{p5k#,[ֿ7O3A*.e7ek4-X\ }u$̟1nLb,tz+3 HI绾^7., o̴7;f Q?qf"jPgg0eq3K)4Df2'H%tJ?co!kH*/7_N @Ipf88%GtVZCPh!`Ԩo1^Sm>*P7yO~1*R h]ûoTdETؕh@$S0eEl)k<{-1ե[/jF(ʺ2ժ0'= =aS|Gy[ VC0ЭA!, PNj]?{Q6 *Y v:hbaժ]9_M[ Ħ5P P?rS7yo~B&}X{zz_K2t €[n֓ ;fA(MH< Ԫeg0ZHP>@+Ȉp@dA_*@7oWW'*Fw{֟>?%Hs9}5)+!ٲK]Bl>zxy>׽I^M[J^LJu .c;S&e5xp>pգ&&s]z7ja)I+ܵŭ9qaj xPna P[wxn9FT=.s8<1`=RaUpVb-V/քӹRumBm6asliCӯr^5ˎhiCxv8€ۤbǖV/CKE8N (Pjo;Z;ͽ.h!`6V 1_UyfNM,yj-H &+jj1EY0+ڽ-ݰZ]g=R BƗ`}铗mq8qa玲 YW(̇q<\%xI!>a &еg?"OJrDMK@5Qkt[hƟ,*Q`PPR l (`C?z]x yGv@{g,S/km~vУE[㛏6 rk>3y.A4mINxܠ:fy) bwYxmLM"?|uá,%1OY_p~\L we`Ь??+~=|dQ$v:{ueؿ_.&/]vHM?+lZG٭Q6ظTqN˶kԲ*o~ @fY2NPmOguf5EWC)~C$ w?]%dG;G(*+O ]hʪ%{.zP8~3zwK:_vkt']Zb]clNH@)R!AmvmV"ܖm_et"ne~3|E_|`ӸW6Io ?.L&$("r;͙n}ЛM#⒖k%+_0Lܭ;?1$F˴$Ǣg)]3L@-k$Z6 &k_r S+;| 0衵v0%~?VYFyMۚqk& N.&(@]͟e5x~߶AhUSTB({\LOg^QĀ;0.oŊ>Ǫy9 6{_:e>?Nv=??OIRSҶ#i]&maT>[W f)"KY*!+iL{ow~`S;A:Wf >chNT{*/P<'2뗁gߧSz1qHt_6{ TC" f&`>+p1PV֣+m[;UormlZf $Ѹv]]2 L?鎐)1v/ @I!tGaQ83͈y$Ӻ=zIlRsJkh{i4¥'U$-1 YfuݹDz f"Rre_~.B yz`:h2Xe g QڦaJv; IDATy[ui؄I0CEqg!;Jĸ+FBw0[~N/-Lݽ}?/4MȎ}8,s)F'aˇ vlkKz-%ڏ_kyu2b d.O`Δ&I/ie@Z:ྩW*:>MDcyk]NBןể׋kæ6%`q?˫`pcMR="]c=*BQ1D%hs588Owͭ!Q \nY99"oTVpY͎BFN&>hcU WeY]YKE;k KJ84IRSd {w9硽/pX}gO]o79]`)O}L|6CƵl^"c|J[0{)3A f|sϵ6|ņg 1b=X Lb2W?=B'"/Ǖ{NiD"TF@"gHM2?_$K̑'"r? {'&b3b]m߯|}UKrڠѧ{oxq&aUfm$<bɀp93c\S򰌓Iԃh )ߙ19 ,E(~`h6،8>&IRrN_zʥnwhF-/I܍w8fpZ?ì"N5T  d)]D'X#>*w^Q upa~'Q31)@ |En)V;bU*E"MНj_%'X/@~q:"*F̂ G k*EV%i(");)m5}uv<P`wN)5kϚ,x=> ]fث9k'{LKϗ(eR{wC"D~JbRr̪ҭJr ՉVCwZt bH۲v]3R$hю-na[f I[.YZGPڠUeV+voz~Kn'`0[@0;5 E2B 0mݷǺH-Ot;s"4tż+Iz\j\sPq<}d),+9x\CnwG!OS80wnv YXZt Շlj#/ѵF# KR_sG3 t!㖌~vqH؀. O=MM o(h{El:w6EQxQk;e4T9WWSٚt0B{yt']zk!: jb=),s-3mБLfʐnݭ]]{^F;Ν&a0à>Id]̇{,]wV^Y?nce9YYzB=?vw?s0`|ִᣥͼ\*Xc[*e`~={(,e,iɳ4}!/zy#ʔpO[=7Ѳ BrnƵ#݇{x6w+Sykec2B"в#J%y`)BZ A.>:{[NOSir ,a1GbqzWwSwwckOZs7,m B\=zs:}jN{'l,B|3*X TV.۷0/Ga1B  flh>L{ٔaBzg#y! B_WQrnƵlDbR]] Va)}0yV_{'\+ aYJjٍAhh555ZFǹ! "©U*@[-ZY -?! = WU<|Ј~~O}3#5m>YsQ &)j|w ޱb% BO{ݏw15ϝ2Sx̰~=1IЋCCZK$w"O}cS]nɂG(l׹3AG?m]>e0>}=-B۳153&\oSn}&M"þ*#BaF `qR]2}d:w*X??)|H5swy8߳7vagջG-eg;ϟ ?Ppo+4.rqR0#qBB B2, F($7}sۺ_%+1g3uA*lZ7ݛgsz VpISƙHfw"#xI_ϼjC|X@^vC4+ga*J=a{ 2ȰEЃ~3of%Mlf[*d*5}0n`)1w#Pfyч;s $Nj^,&t3 q#t:%̰N3wtfWZnc[ey%ŗn ^|mڂja%,aI#[OY]Е7_߾;&Dm{P%]<%&N4O`].Ƚc~mx>C?OV7i}ٿ ̕+7{;v _:$\|7rc f"Hrw;k{'nsiEk0J9H1Œ !˫HqR&Sbvs Rut1'斪Z`F{~LTh YiK&;YЊwD_9Ʉ%dv7^,{bLU*Rfo#SPC: ֕줂䂜yIYZ^weŠU7.'d'd'ݢg'̮Ҫ;Yer3'"*9[;7Vszvdz!#yWktqs4e5ZUfjJb*$eҪTz8Zj5y9:5Z料1b*„ s^)<#§TUX*!H"^!jwLjRVH BK2<ѩ=Zv鹌ye*cjJ?VB,6Ѭt=ҩԈFJŻYD"pJ<cyjl-\Me5i7s%qo!NoΘz>P KXRB  Cy"㑏ar k+ZL̬FNS:l"| ;nA(ο~qyrfC:m_"'R)c"wTo'ZZi*DjaPySipVX`./-*-idWlWs;>ŰNM|b*u%rֈ UoSlplf-0`&LC4[5$1qhs͌U5ƞ{NcLËQ9]/FSQAeޙsFfBYPkLu!', t,^6?:broFV.m!A3u+տ֊J+Ӵov܍jZ/n}@D07̩LbذGW&hV„1mzGo/'6 b]z Og|S#}"D0G-K4#cH0`)ɦƒAy&Lzcٯ"1DnJlg!ucp]BUT20ilʡtp3]:o+^Y'ofY &"p=Q{oZщ&aro(K]84za) B wJ\j:Xy*9ԫ!V&( CD<q^z=:Z6TUrQ3pã&JsFw'u5ܮ<1AwNqN ~wip<4#3h5 @=O0 *VvLg pӬ)>   * *c%h#Q: U`Ƹ!BA!1B#0!AY>a !DT@h$D~a4p`% PBeYM H * *  *  *    *AJA  TA LqnnnVVBHھu:VeF."d2˲Mߋ8ZMQ(T@Wqss5j+++,'NP(aaaYYY]Pddd4Yii޽{yo޼P(,%aÆzxx̟?_YYY# k<߽{enn2&&&`@{4;n8[nfffF2G+//dF]oF988HN$*ũUUU ô8 !޾2][[[u:p5}͛7#>8xXXG <?3myy'_~eGٺu+Whf޼yFUVViӦ 5k\z+88xʔ)^Tt:ݞ={DBJJӧۯk999Xio{eGX~Y;UKDDDDD~;w.::_Wpp0˲?Ӯ]^|EAdddzzŋ===kkk7mڴnݺ?Ĥ~zj33]VWWw7o^l={8qSO=0?*qƵZ;׭[WXXaB[|Tw涼%jڨxPHBjkkk(555IVVVjjꫯPޜ:ugĈ4j&00711Q'&&>Sz嗵Zm\\\C]tvܹ]vEYXX̝;! ~޽{0 4hgRRR+ora^@i3zf`iiR֮]kcc#MMM]]]WͱcǺu&8wncchccCGccc<;::Ι3\|򉣣K/|֦ cƸltϚ5^z5B7S(ŋ3 CO痒RwSS5kٳo>:= @\hmmq}#_~·VVVcbb˫Gq(M.]xW+2m4,--Zyriڴ4SSSQ&߿ {FMJJ]{e/]$R^^^]]=iҤnݺ5꯿ "?~zJ˲AAAUUU.\ ts/o߾m6vYTT4}t~IKKٳgK$GEE7rppڵ3?YTTtԩ7[[[۫Wg}ԩS>>>)))g̘gNUUULR~74//ٙx)Fpcܹs'??6YAAAAAA-B}-OU"^~^Z7%n=BԽӲ c㴱hп0`peuԩo.`eEEٳg_xᅆljGeBgΜi:5t+WZ[[ q_4K}~^zÇׯ5kѣGiDŨX :vBHR+ *4hŋ5͠AfΜy(ڵkBK.mAz2x߶u@kXb˲ǒB4BSNNN>tдifAAATT\r1J<C!5{F_vmZZ /Vw9qD_~ٲoذ'ltHn:J;㳵 ܹS޶m3<3tPq9q111Bʊg/<0QJ)))k֬_`֬Yg԰KO>;w׬Y#O>/..^paw@Đؾ}[zݻwJb͛7ZCݹsgO=ThhW,˞8q }}6˲̽Ծ/eit||`{9ǣŹ ߄kF#zժUE5rm%/^DVrѫW޾};MF9211ԩSYYYP( DS^fMn|}}ŇJMMnjsGFGG'$$ԗ# IDATA %Ϟ={űc6yW},XpQ:&}Ot{N:Ul;h9ʵkz-HZ6'!!㸃vC>q1 sϼS̬`Z+lllƌcnnMYYYM4)88uYY bu:ѣGcccǍP΃8**jȑ5E`̘1e͟?_(tAAAT]>q͙3I&I҂j47l!4eʔ~a̙t( e~ךz ~zmBCCCCCJL&3 0@>>#!!0&)L;~1 :#n1PBAF F#`1d[v3d++++++xlEq+wTB0s7]gh` K0R66ƒn1JD"i|B;99 %999aY}„ =zhSvmІPs`TT[#2 AH(bĈC!ij8Vc{vj;]00ֲJZV9sw=p@< T*[?g}V^^N?[NN:_%ͻzZJ>DDDܹOx$EW,g4k_`vTjucKKKO:%L&kbSQQQ2r4믿3В1c899 ѱEwrg ++ɓ'w4ɻӵ3q\ܣ"⏸,?W QOMMMKK/V1@E\֭[}}}]NeTЋQT6eA`bb"9^Ox8ei[4a'AKD*r`j)aOuP[JTJ9tPzz:ZjV9f̘Xo.^ȉ'UVV:99M4[n6۷r㩊l߾]VK䜜0+W,\z׮]%%%[lQՋ-ɉ:u`9r$++KVcs%%%ZYY=!tƍ~d˖- bڴiÊˍn#XN/_ v|r^O<ƸK.K.=\jǏDBo611y͛B,Y@˲rWN&w1L f3<O7#.cuxZkrqwwwuuݻwg -~ Bo&ڊѣ˗,--[sFш1B~-55Xs0LSwZV!|wMs}kkqƝ<]s 4t6|K.eggtd жʫfa渫 FAn]s4Tw"QQ(J#NZ855U.߿_uJyyyMf50JLη d2aիW{=రh)++30ju/‚:x_rMV\ ?EGXyqS1&E&xT8u"QV2(YhQppɓ{ǏpBhhUbbb>}ڤB7Р;q-I~%''?ft{Uׯ_O9u^o98235%GXT`Fc&=f&fm~a2oSO=}ٲ5k֨n`jj0Lzzzaa`s48qRܸqcQQQYYɓ')S |}} ![nΦAc!$$$ܺuLqܪUϟ?رa0fBqƬׯ_t  '[·YЯ:S_qo T*V5(J T*dʔ)'Oܿ?!O0˖-7oNS*·8STھkw^lB^AY666/O?vZ}}},X7dff҉--- zXXXvꫯ0r<$$g5z% bҥvZz5TfΜ o>ҫ3㘺~8.-?[3^W0A!&t%[jJ:jZ<\Z^7zRIG_F2hZvmz^9f:aP<2*74ך)9TҸ0N 6Myޣ&D5FJLM BP!U k*$Bn]a7І~NBVw)?/L`4ǺNQN F#~{/N%NLLՅS*_,'J]@T:ΤJCPSG މ,A; *ZR0B.]y 1nLZ,i8DsчሁHi{`3F[5AT:9w|}5}3υd)Fпjًzڵ_!!LMMHsl Lf6{mvS0 FL~":0F03 AJ3߀'hJ=p";~ШY) ^!szfx~>>'Nl{̙cǎ >kt={vG>55ӁGnS`5M>>11Ɔ:::GGǗ^z+ϭe2BO:h׾tc YjW^z7 dcsss\nnn{5JJJ&L1Ν;u#8;wN(0aӅݻ}!\\\ jRP$&&\+8!~z$!!A0… nj Zc͚5B*quNgHLLLOOpl&?>\ԶEUUUhtl R#Ͼo߾˗/ ;u> !ԵkWˊ^xʕ+ &Љ5(15S4 -1FT{^{5~SN Q… 7¼}Bݻwhx`j[|/46j:>>‚G} xbF3h ;;3g>|57vZҥKUSSױ|Əzן:.~UU333۹s'0!!!˖-xTFT_ŇD%%%%%%]ve䢢GR1ʕ+ǎ{|f*=`ta֬Y@ZZ /Vw9qD_~ٲoذ'4(|7|ӽ{wyoݸq#hiT*E.6l}_\\\jkk׮]xܹO>@ag׮]bb3!DݻW"8pƍ+MD"III? 4jԨG1={G"ك} gΝ;w޽5'|ҬSF΂<{lHHP%OƦܹst(mYxŋB.]裏~WJ,GwwSҿo޼'=j*EO<~{Y*Bobbc"?@Cro ^{5:{j:=bn޼YYY V|78p@OQQQLLիW!C/^^^<ː!CH8g̘0y*}gϞU\S/Lkf…_|!T.K9ɓB*BϏ-x?pرcC1Qio >o<Ч~jPT*iu_i+Bɭ[~67G!k־* JjGaf:NezإK[ IDATh1tGݼy͛7wL^RF30fDBϟ/kځ:T8)up͙3gϞ=,((ܔ)S%ԲYdIm\\\BaaagϞuuuDfU1`ܸqAAA555={bWgg3g6et#8uTUUUii)BÃɡ?;h3<HB u:}-[ׯeqq6l`oooɓlPgzbcc3Sd2:c"22222M={6BhrܹsMߥW^/b`` -NIIi$BV~T* ~W ?|~n01114 ˲/~њS| z=|IeefeeuCEEEr?? w^WT ô&fIJJʱcN0u'%%;wNpw->uDD9j.]k6]7X~}VV3[dɨQO%~iΒ6̮ ).. EA}Z:'apLLŋ V|~233#""B+Ww צMWT.\@+SZm``䉇>J@k0QiEEE;w!łj;H[wߕO0O>"8^RZZ)z9,,쑔nvy 7$''72ŝÇy|c**eHreeHZ^ ˲C[L'\8Qi5]! S|8;;["O0Gq1" *FPT$j+6m$ngg7wݻuJ$!Iݻ.] ׮]s';Z-q ڈ^z xQo:6`>}ZhMMMuD"ZJP|駶՛6mo+JU믇 +Pvޝ* B(66!h"q>61117o'OROMMMKK`o[X 77!!bѢE4WXҿ6NSSSq.9$"ETrBM7.ȑ#YRC9^cƌi{~km* PUUU+++###'NWYY4i$0Lff/RTT$<==yھ}Z611IJJ sqqMNN[]]k׮RSS-[EDEEM:UX+LV=z4++KV;;;cΝ;TZZjee;zhЍ7Ξ=[\\lbb[XXL670N"BRSSJCHH`TTTܹS몪*GGG>~xJJJmmСCZJii *UUU ô(33s6k/+++gggׯs׷o?sVX!㏵kb"""hJWWWtҳgOjddd R)-8ݝ#T**:."""--mȐ!ᵵ˗/ͥn߾رcSNydSLD"i<@XX/]e:EZ.* W^y6##֭[ PNfFT EEEgdԝU_0W^-..~C0\.gYL\ju/‚:x_r͛WX_CA*q {lYYYAA5kjԩS äPM8qJڰaCQQQYYYtt˗'O%lݺ5###;;{ǎϟt:H$ nݪ)Spjժ;v߿!8,m̘16l*//~z||[[%aj $ɇ~{ugѢEy&^R%SLڿ?BgϞox~„ \lټyt:J5qJ6lmm,Y?.[ clee5c fccK/Ok׮yW_]fMff&8c /!T*˶xwwECryHHVyJ śok׮իWSKo̙"pƃ֚IyRibbbFiMhVyKC7(Y8FcȍRzFi3& *@g*@TD@TDQDQDQ@TDQ@TDQ@TQ@TQ@TD@TD@TDx\@ܬ,B/}5t:V0\.5@ÓX*mԨQl?~\P7;feeu@=tݻyx,GaÆzxx̟?_[YYyR)B̬Y{<hX*_5>>'NUVViӦnܹݻwoܲeիW !![[y9;; >}a6:?n$*:nϞ=yyys:uj`5Mjtgo533&XTT;EDDDDD2cBaaÇSSSb ZJP|駶՛6mo+EdddFFŋ===kkk7o޼v/Dxf̘!+<شZ;׭[wS0&&&{mcPV lqHyVhjkkh<5AVVVZZګ*ۗGoo֌^[ JhGlT`+V%$$TTT̙3ӧOj)))FIII;:ιw& Y}SAAXZG}ڊuy^V(>jmZŶ UZ@6Y\,aIBB s~\fM&̘ϜsϽszmi7tS,?~owާ׿.jiTx)f7IR 6,''/(('|?O9of:wlڵk~~E.]?~x!ļytұcW_}{)**~_TTt76tgz衼,)UW]U&x׮]cǎRfggK)z կ~%;;`{qiiiڵSJ~ .B]vĈRʜ)IY[o6lXQQs='OZTT4nܸ૭ &H)C;S_xᅤC ZOrH9:t 0jԨoN3(}>Swߝ|]G?n޼ӿsrrrrr6mR]]ݾ}}-[jUZZ}7==}*˗/o;`vH{+g̘1nܸ;Ν;wƍ\p޽{93}t;DrrrRF7o^NNȑ#xAA 7ӟA/ۿo{7&L;|;q]wƌ/o]^^|aÆΝ;\s5ӧO:ug͚=~Cvſb޽ ظq_6cƌUVuY/UW]ս{k7| zj!Df$ѣDze6nح[}r)s>A ! 2tЊ^{뮛7o9Sׯ_%kn֬Y˗/ׯʕ+O;4<81cM\PRR_Θ1cȑ/I*ᄑ1777ie'|yRVViӦH$m3'tҊ+6nخ]ÇBcL Y~H)--}衇Rvmܸѿ.B\s5-k/7os سgO; C;MW}/ 74o-u@EEE|7?|FĖÿqϞ=vfoŊ?(q[ !Lv'oٵkWVV⥗^o<䓅={'NB˿/Bq;w<{S pBZzoFWX+L<>s>ɓ''m+~_?#?~SLEquM.]*H:' O'-)):t>KI{z!{w8++.2[zP^I"ykjj>yyy_wuW}>}z_˭YާDieδwX[5hذae%K?k,ۆ|n IG\VUU͙3k]޷oߤOm۶5AGsv[\rbӦM;weʔ&.%\2fCaw}G-*l_lW=쇐wYg"!D4]hQvv38cuuu#Fرu]g_7tgR`]}q9P*Ɛ!CR#^*h֭?'basoYk+ڵ3$-IۇΝ;kwuLD%ibŊ7|`8:u7 !?!o?kF/W\!O'x{7ʮjAP]ho} ;vx222￿?z…eee?q^!SX荨)KV|s86o;Q]]-Ivs[lzVUUرc WVJplEtҟ-:cK)nӧϘ1sΩ;-|{a;vя~dO?ts=<[omu饗|c'z뭤ωFvf̮6nd@fW 4t;k_駟ov9礧?W޽{ߦ{ǩ!?KΚ5r쳩S7 #|裏WR;:b?w h :kW^袋{&CRpaB~83!_t{R>3E̿/n~p5_sǻڤ="w}:uo~WU~~&S~k_?~ٳ_Ww}w?֭?~=?rE=#HꫯRݻ/[3|'E >.---x\6,  <رc?SN9EJq}?8Du7t+9rdUUՙg:-\x酅R?}i {]jQaO'tZd IDATk메Lw\vܙ_{رcg}vРAsIKKAңG'/yuYZZ*c̝wy5N;-uLbמbĉƩUq֯_ߦӉmzqF{5yeeeX,iBDzuYVVo>E裏b6-}PÆ ;b qH\NxΜ9ϷvUñv y׭[g%_>Gy?G?*~oq!X3Vu?ON|PΞVFG/Dv1uT{c{=oy߾}'Lpi-O=Tee_ާOT͞=;H(@TQVVH$ElD{ǏtǻQ)<&ׯ~Qi*?~|qqque˖5sEJy9眓-FEaqgʃ }=L#$aÆFqѣGl*cj̍|ytT{^zi#c s_@T$777770Du]Q*++wޝnOޞDkuVcLQQQ(:bw۶m+HK,ٻwoAA⊶xK.=8Q9*# nzj˖-ggg_wu3f̘9s=Rj̘1ͽIb1@;eʔaÆxSX֭ێ;{cjkkC_|q…=ӌrTF]JYQQ1k,?$4q_]vSL),,ܳgSO=O?v nΜ93gμƌZx_׬.D9s?w&M\t#F$q&L=vآ3Qi6mZj_u)g-o&lHngggtMSLYhhۻw;~#,YlٲJ8guuuBK q҂zEEEWi4i *MD޽{_{իWcE3go {~u7//Nw%]O-77/[͘1+xp8{.Be˖}ǏѣǼyVX~{4##w_|޸qcZZڐ!Cܸq̙3KKKҊ/tҀ]O UWW]V)tu6bȸ曛U#G馛U餓NJNիm Rm߾?σ>}Μ9s=|,X0x'B'|rܹvT\\...Ovr!DNzai߾}Ϟ=۷o/زeKii>쳹^zi~{~hΝ>`yyq&NXVV~O>GZk5D׬Yŋ׿R?~С}є)S y׾}Yfzݺu>/>묳>|0R9riD[ޱc~ 6^ҥK˷m۶{yB/mƌC}cǎBL6mFW^SO9唒cʶmᄂ?_=Bgo'oڵu ,0`-5qE}͝KxbcLgvsss1{MZָLԮ]7h4/Zo^JłK1[oկ_k0 'D"K~ŋϙ3Dz4FduΝ;xѣGvg^RTbor̟?3|zɴF |?U%Ktҵkf1Сðax]v⋝;w3f~ٳ{]ZZ:m44ի G1cF88p`MM/\WWo|)c.\sL$gZ:4֯__]]g{,/HKK 333gΜ9k,!DnnW^iԩbX4m/~3)eFFƘ1c=EM:5;; pcL$ 﫮fo]/_; 8p_ot?3ӦM3\}ճg^z_~r-B/l9S.}_z8~뭷^y!DaaM7Npb\^e$:Hb. ?Rʚ,D"u4MGH$gҚu`] Ҏ3HH *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *QQ)Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *QQ)Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *QQ)Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *@py aoH)h:FHZB4aQR c1-~4¨c./T^7c1Z[bF !Z@VRG0M#8n+ʱ_cB)%me+wF"hѮpVFzAVnYhR%mR*89ZaamUF`i0Bm1u ;Vl\rƍ;V*]1 ŵFH% 9t,J[hͪM"y cq#1Jvn$%}FiӥvR:FG#>FT+!h-Dq]xkmK7Z(ْ#tB9mgӳHh%RvnU eZZcB5mϩJ"qB{6JG>1 ;JO;JI)91qN1BOhg3ᄉ=7=!BBDh?GO!i' qn($Ցhh}&*Lfrr k=È O9/9O?5*/Ghc{`bLȑ=Oo*7#0d!*ВM9hqio,]P+4]{˩#RJh#}/<Ɏ-Qnt\Am-k=]kioW"vǟ~i 4e5Wm:˾)L0fܤgF(Vˆ <+(FWc>AcnQ˾`ňLkW1:dj\O?)~Q=w3̃y~^]w-[SӞ !Qc6O踣}kmQҨ#uInR5gO܊SVD"hyJ>1cg;KLp PTycR_u5<ށ&8zԾqg~e ZH#SUR{'~FW .m UWjqBh%7}f Gy: QH/_kH˗OUӗ/^cݹoPalMF__ 1_OH{*e!l`aFEp3ެWa+F*/X4/a-#*lv3.6ڏI}3g~iIW 4{b5 l:h 2xgZ c侥҇3RI3㣅:.?iJpDUgo,Fhc_pbQ;&Bxvm_Hk#eEv>Kh/i0+Dng=WnrFI`_y="iD\8ր[ܮhvT}TIa\?։Y1S#2L<'.Z*Ǧ$ ziÆ23$a֞1uYu!*дMwF_m۶VUodsj:ױvtzVZx>|_h8EHiY~N+&x$F?Xcob\aj݅F8x6n(Z)_RahIh@ӆ)BOcRmXmSczfw՗}9TB:u e;N]M cڸsg+oMRd}fZiB3Wo?hv_%jDN)BN9iűK]bQBjcAn"}7Ӽ-IDAT8dDG?8OΜ4"ZWgAS^I9/hj]6mhK=J)bu]{oąq!ZsΓߞ 0R!^+vq?XI&P17q#D]+6mk˷8-KxMFeŦ q}HaRFN-#N4VBTyl'#t5Uq_@,qJiԁmϼLy4O~zۘSOE]KpDNF}|_[_PkWRNyuuɁTy#=ǧhe;BE4H芿15H#:p]Ӻͷ#MMأ2ғ%zFDFꗮ\6Rxb̾:R)#5ET9ۃ.Jݧ #|fk}i*5M9BslP{qbFvqDץ'*p84ʒs/ <Ǭ4F휙H%3OZ:^M}qG9ynڕG>6B.id;\6,WK|MܳBTc ;W\!'>o~ǰt$1"-< c0ŨvۑJQe&X82PC@T%i|WQ#7X Fž,J:%qD|?+ݼ|[D{1I#=W?R7{3HŽv?W&9(#] %ur 4*yJ[֞1F)ݕvlUQ&^W]Fqc4 32si靲w/гCL',VKtIWZԨ0@K+"ic*$Z])Xq+"7NjRjWRm,DKjhۮ q`p}]ߨw"ۧRoHC/ "kg@vɴԍ~RW WnDhWFI644i|h`aqR]D³ Q#4d#NlKDʮHWDLW঍BT YRKHRloommG3-]& O:SKR]6'.JߦE!*pҒڕԻ>tYo?:'DZWKR3#,8.G8'DNZ=g^6|{$XǎpN ×FrZ8/۔7L!*[VVƳh %A D@TD@T * *QQ DE?:yuT#aZ7xޚ^>cOK[quyz VoΝUUUh)ױcG4jݵDBnfffNNN^^۾Vɮ]JKK= ={ <-g\n]mmmYRRBWk׮m۶cR.]P$ټys<o B}ecǎHDJOj5CyΝ7o֝:uܹspQC(/,,ܾ};Rht֭]v+M|TVV}v}t-[x kXՔHv0I4ݵkt.] 8m6)eEEEaa!ݻwoݺBt.cQNMauuMKvx^8̴y&EܼyuRD8^imT222 cU+ڢ6''k׮P.|%b1F7|v߀}U9,{}k׮:t`WZǛo1_Iڵk'd֭6lQDZo478/ֽ{wD)wUVm߾C 𕐛k_Y45u,D"vsdi߾}~rssTTT|gv1OQΓP/|q/b?u_ wާO tժUa+ *8Γހ)GJY^^^]]-<.9l B%%%=zp>QmذaݺuXCc1R9IZZZAA}fJKKo^KiԶmI9<{ZgggviEEEX[[z͛7 K׀X^(??_G#_RQQaiii1'=9]vFJ򪪪:dgg],eeeD>ݺuPq{N.]*yEkeee;v8c:wT_ٳ'x (;;G<]7Ž[l ~s0)#:uڳg=ЬZ bJCzYQQQZZj}I xoPnϞ=#Ȗ-['9KTpt^UVVFC5J)<{D"8۷i_J{zuKJJy @Tp4mʋD?'MS4VbiiiL|:Aް4TKQN< *QQ D@TD@T * *@[N+4%|=IENDB`ntfy-2.11.0/docs/static/img/android-screenshot-muted.png000066400000000000000000000524251462047176100232030ustar00rootroot00000000000000PNG  IHDR8MbKGD pHYs  tIME !9 IDATxw\W?H/ X"K4`&& KXb,YM]7Mt5n1vbI4K5**PA\r;r{|<|̝{g̙rsp:?Gj!MDDDDDDDdAPW.@0ߐYf@J-`,ndtVNDDDDDDDd)c1Sq A 9,A9,A,jSjxs  2ADDDDDDDX*kp[93ADDDDDDD"""""""rx pc^&9: """""""DDDDDDDXkpcDDDDDDD """""""9<81ADDDDDDD"""""""rx pcDDDDDDD """""""9<81ADDDDDDD"""""""rx pcDDDDDDD """""""9<81ADDDDDDD"""""""rx pcDDDDDDD """""""9<81ADDDDDDD"""""""rx pcDDDDDDD """""""9<81ADDDDDDD"""""""rx pcDDDDDDD """""""9<8jL""""z"sA`"oxu L"""sQ=j lHD"#tVφd=Q-sUʐ'Nի(((70|pԋtHOOǽ{~˖- BDDD_0j@#%%gϞEΝD%f pYaǎ;w.N<ݻ1xz&L@\\4tR<$DDDT͟?)))tXX͛Wj"77W$ ^{M3qF1jÇq5hZaذaLSVV%K`Νwt҅ CDD@֭nmۦn9oߎC֛t/0̟?DU...Сիhذ! 'OFzz:`Μ96pآʪ-~Ö묍})x9s<3g?Fv[oY8v(!!8ۇT'3V{W pSk֬ Jr4h{k3v[\k⦡FkβǏWL_t .]Bxx8;#"Μ9HKKb/o]btvj֭[ʂFAii)ѴiSqwVYOբUVpuuOYYqu E@@4ibc'6+͛ÃڠhPPPP]}9sfopż~  RTΌ&y zBϞ=*(ˈ;b CJMMŬYJK΅P֩S'tfQ=uy9rrrp \|YL;vgϞuSvC6[nEnnԳPNNv܉$ϝKuN>~oqVmEEw^h4vO>$5kVgOVM6Ҽ^z m۶e\rgΜ P\\\oGDD"""V+-[^4]͉5kGaNu.XL,hժ͛___DDTڵknݺԩSzAEaܹ999X|9 El2,[ z”)SjoKjۛ;vH$8jŋ|r\ؿ?.\)S~U899Y[ZeeeذaN:e;byxʔ)h߾ϞgΜQ78rrrgdeeUKA.޽{qA FjY[~ -_w{lق2 >ܮ r.a/`f)rx{YO-...3g>#Vŋq!ig?X͛7G@@[5:׹sN`g)~68FEEE(9jDE)&LDDDDu3]vL rK^z% 8PQ>iڴ)bbb0zh̞=< bbbдiS}a۶mn:j\PTThR>tP5ڶm{LG3bff&ӥZ+"8|wϞ=rҾhZcU79C\0 EO?5=ÇpB;_jVtcϘ1Co4#-[`˖-X|9kEP'FXn@Cɓ'36dǏ?h""/;w.-ZGWqss &%^^^?effb߾}RSz{ nkL'Q[L[l)8rssluțJOE-999Q SL,Ԁ)))Q쫹f233qIM߾} }pٳپt D… v}9994i˗1b@CU/U鉩S*Z|[[_~R5;k+WO7 Z\\_|s5;jq5kZ-tŬ۴icVҋ1VaÆzqD6@uEFF"44͚5}s ++ P"P{OJJ7gϖMcƌի4iw")) }222a޼y駟+瞓/]9s(ٰabZ^.&&F˱eizzÐm݀Z@Mrr2N:wSXnĉGrr^ 2prr­[p!|+>0i$no&y>}Ep̉ϛ7O 5jZn ///bC7S1k,t >>>(((@jj*VZ'O*;k,C1_7$%%U9߼꫘4i6l#.x'1qDoƩStRE311ȷb k?O={bʔ)h۶-6l[n!>>+VF?55'OΝ;MVQ^4bŃ;fΜ'xmڴ3_?g1~x߿$""!;0w\,\PY\6DR\n׮z)5j8~ɦ..l2~%&*$=fSlk"$$.\QC(ƞgZLw4C8 SdPeڴi(((Yw=ϦJyQFfHݻT0`@9gZGr n9q;{ r̚5 ?l/-)Zq/?bիյw^E+&&`A믿ܐO+V\$;;VC£1Cs)4=m4E-cy^ז-[ w*;4x |7@xF9F bcQǞ=z;L4E_V̾房/3xkqqqzC-XUvءk׮ nuׯ4zvgSNᣏ>^DW+gff:DzF?!bՈ5(CU@bb"jѽ{w899nnnUbA(:5Fyy96o,Tg qu-͛\ڈu|HfV0zhE~0OnfK*֗W;X@}*3g=T4wBCCzNxxJVZ0w+viF&z7ͪץKDGG_`^S?^1P|T6o2o77q] }7Çcf}wߕӂ ݻXjݜ9sT]Z'-Tv({a͔LҀʦX_R֭[O7j˨9̡0Tڞ;vL~`̘1;voܸqSL1爥 /gyGUt>},WXb<ڵ9r.]7$$N bcDҧ,=df}|cIڴ/,,L ߱c^z{]\\0d.w άYb ,_˗/7{8W^y1vݷch~I͞={JU9-Mpխ.GyĬ@佦nmq}z^3$ct,MWbys1V oXŋ޴ڮN:Æ CNS#Ș/N'!}X~NG rXNGp,]Ԫw}UXe$ܹs@eUSXr7/_)5999RYG*g0aKFzj+l{{ȶ]8l6mt["..RwdgyFcmtWo̪ӫW/L4 'Oɓp;ۮۜD@#''G1z /`uYI&zdt)͚5kPQQ.|3j(5,M'N(;vh B~ffb#cH[Θ0aao2p@:L K/ٳgcو2x܉ȱUGW&aoec/E׭[<^FӶm[M-9UM?KWTT(joDEEټck.iL8&w֭R5G,7O KO:as*v(qI|;9M.L ؾ};]vV/hNNNr׻i&;;;cĈr|5PAW-ߨu Z)111wٺukW>Wlyy'>>^it/W_} _~^'""ԠA[Sˇ7Qwϙgcgh[j IDAT~'--MꓥI&R >& вeKg!hmtaΰt;vj ƍSӭ2jqE? z_XcĈ0aa(Pّ!Cо}{Xv-.^h|t5wjeLEN7xzzϊ%t;:ܹU禼yVUtfMʯ+jxYիi!trww筺P#1={)l|%Lm[EmhYc߿FFHKNNV<?^u5غu_Zg_׫qJJJ޶FarرXv4zjRU8ApAEӑ'*F_V Z,;;_| }?=fuhcg*.?'N#Ghܸq|j*E*s &$ ƍn6mVj}\nRL6$ {Qr?ޒ˃1HC:Lid=pu (ĬȇV˗.{kjCX*##k֬Gi֐Z۷oR 4/I7JiӧuW58~g:t Od+?Е7$~fG}Ǐ A* w4hj`*¯{ݰawvlv+HMM7b7ⶉg֎gγZڈ6KvkjĜ+DDdA>9N<059=-[LCOkj_=ZN՚Z3 }lƟ)裏Zldk׮aʕR!C(Kr:uJJB\t .]Bff|tk2a<'Tc7F )ct&MпoK=?JbL0}!::ӦMIֶr=g̘aQĽ3U)6jSL1o[1߰aC|k 2ت*k{Un@Òk~=6W3\Ş'$$HV巛6mClſ[h!2OŊ沺r Eh}۷b Bբ_~xgΜATTECDY{5j/^,899ѣs=gqƖhݺ4:JYYҐ[* ?XfŽK۪-#//O5jT?|h4iMYlKUԆBʛADDuO r,ZH1b<1gEsfiŗ9;Zj<sj]233SV777Cͤ{!=TGM{aʕ}6A@Ϟ=: W^yuaܹq0adT۶m7|#HsBVhnk.Ų59" """0e_.\Q7kQ r˗/~'U Fw(V[iժX>ӊijISݪ...rK[QRocܹsG_~em֮sXl֭[g🩑D0p*՚n[V D>_VTTСCR{Fk{ϗg}V[ԒYp<Ӫ<kwਥ FA\\j $cTTT(i>h;t+Vk׮kazz:6o,MO60u!v8o>C(Ɗnݺ,M\HQQQUj St)o;n Ϸ )CWN8,j{n配V5ٹ`XIIIXv-vޭ״VբׯGFF|>vX;57}-'-\/P߳DEE):S[~wm1b͛'M^84oUSB̏_3ƚ5׿*zI>{l/"zwk*ңGs! ,,صksm/qFŹлw*]u{(߻w/Djkj۷x/""mÜgKU"1RcTm xyK]=z@rr2RRRjvZ$%%!,, (((ӧ={1ciճENNV\rggE `Ϟ=8sb|xXsڵws}0IJJBRRzi?7=&tGyDv9E f&  TmN CmKӦM B{s4]vRM K%$$رc4oQ-ci^VVO?T1opww7kw5{[( 2Jy!,, QQQxׯnj3ɓ'gizРA n9(D!9͛K.)>;u>C 79///;Zpgƍ둜 Vff€0d֛(i֬ͤuk}{v 2.\x=&9dǏ_- - cS TY;DUh*a>CCCѳgOnׯbzʕ77SSSVm%>>^TvPeWT%覅 x饗/^DS Xּh…coHii).\(!qfΜHmb)//|389"nݲo_- >( y红ij<<<0i$L8Q ԩf͚X>-t8H(** V=_"$$D:?bx;sJ![yZȒ#8VŨQ@5#t[nE||<PCP-Z 88X&xƌ;w.:wG X>|Ly!r9r4wҥ޲ 6'|eڵطof̘Xq(**ŋoǽ{ԩbq\z4=}zW?00#F͛O9駟RͅlDFFo~iaÆٳgb ZJ~_xOS}Q@ѲeK899!'''|"x#ZdްDD y֭[zIBV</WaWAAV~^Yl''''i[C/Zp|GtDD"""!00 t8X2e yōDp?~^{z#QOޓ΂ ͛xwh"UК4iJlV͛M(jr]{2~xlwnp4C7`kυ6m`1bWVV?~GFFbݺuhkFEh"ⶮZʦ>裈yΝ3/˗,""mpCWnnM;}7z٩S'4mP+YՈ0qcz T^xV=gee!..>$T{fϞm4PQQQ#'bޤI̺mӨ;:/_OOOq իv]#AcҥK$>2d<==|/H\.]k.s{ZV: alWʥ*]]]/fvr\p7o޴Tߩ iҤ v܉^xAsq\k[C}ѣbbb̺M8Q 9rɑWMϝ; }FAj*۷Ov@u^$~;11Mn ؍ 7moY7JӦMsNL>]\աCر7nĨQ vըQ#L:Xt)6mj4sӦMCJJ ^{5ߑ}]:tHohW[9r$N8>z:uŋ#11 ⅝\|/_(!_N?C#G>y6H\oRA!5kʕ+?%%%%ؽ{4}S^ql-;;IIIR?-ZC=ooj_wEEu놤$~af,f/^ڷo/GaNOL\|())'7nP#7|AsΙ=h]#7п&΅۷o#==yyyw|}}ѸqctѪiرK.?V ''A&uVsŋ~:PVV___k v9gbz-7T;@ߧOkvٳg`i_<<>3VEnn4tP7V4`СC1k,RPA.@eս~Co[mѣG>}O>Ҏb,Pabky?kp"" oooh׮Ts.51[X c k/5:JӱR S<[ϵͷED <ւ9"T5MwIӶZ؞սmnj꯯ ?0uT ;C!S k&5M'!b1al!dMv +]ᅬ۷oKlU6luIl9#;˓MV- $})))?7tCɡ\X&+j St{1QIII?hg7(]v /,͋z {*񭺸>88}5z̘18~gXkr,X@QB6;;v_+ CXXXEYYY8t\bQ`MT#pQQays$KSXXW_}Z?Q\\X>#ıs¤Z)))q|SG[oK,{^z%moxyy›oܨ{Ǝk{,1QC˗/ρ "22FWos[V~` 7Dttt&g8hX̓DDd {FPPΞ=7o{o ys̛7OR{wɷX 2hg\pAd3t={x0,z1o<&Yt׿|CDD 5k G^^Y5?zh48t+z^z͍L旧~Chh(qL2Ipqqȑ#qzoƎHik׮ DDu[$DfWm۶!++KPj#** >>>f-7WWW/ɩn|ļꊍ77ѣk졑:{DuUk"Fw~EE^p# C(AKYo9kvrOT|Ho~UHݸrJKdd$ΐ_?=ᎈV]"Tj56ܬ,^žBs|#"x#MTċ5# bl""""""!!!ڵkXt~_о}{je˖)򚓓Q^^\iـz׮]? /HC"""""6Q .":sH۪8s"!UPPT;v YYY>͛t@@4PGyM8p@Z< AP^^#==Nӧ~ ×_~)Ղ lPP@uߖV]־% W7~7B??vjyf͚'C=wwwƍߤaRRRpENzz:6l M'@-޼y bǎS5kŋ,X ,7 | [{o/É'pAizРA۷/|||T6|26mڄ7nqqqxCVTTץcN:I )) ?3JJJ~ >;3f̐򠘆bz[pu˖-y999ػwQ;/SNpssCyy9_nV~,..QVVcÇy2b>}o>cǎQpƚ .7, _Fvv6 h޼9_-3g[nR4i7n,-+ WZZ_~E֭{9lRכ7oqơo߾ҼM6@y7h (獡Lv3cM Bl߾]]jN#E.]BZZkNΝ;+ ݺuȑ#JLLĽ{ |,I?cǺ{4i"T^7n}Qi=ZmG1dv~~7777N&M`ܸqС G]P p+&o(Rۯ@"&&/"($ڋrl޼Ç+[E G6޽XkE.99YÆ 3,R3Auu`ȒQQYwrr\hڴ)lpFaȐ!|]wA`` ѻwoES ]prrT?U=?Վ'bcc ~c-ʏxᇥ׮]=1۷783'~ZZ^}s eA:r.]ӧBBB =P%Zl]X@Dɓ''B--m۶aCv ~ uB >< 6W\Aii)\]]!z쉞={mnnn۷Pʜ>}aÆFwwwGTTnݪwǒ@QsE$vܫjC3g21as!b[j~j*GX ;v|OZU8v4^t Ŋ;:vhV-;J[nz3A}Owƛo5g/k&7՜6({hhX[/ 4+..[_6m1x`xzzmc5eڹLDDDD pʕ+zņފ#$$D j UTT`˖-(-- 6l!*yx4m(jڴ);Tl&OsA҈2 󹹹tnܸFbEZ߹sF7??>Tʦ5uԮzлwo$$$8t*BDDDDT4jHQKC<TsA.]X2VZ*0dvvFFBZ{WRR8nnn69YYYعs4Z:Pv&kS+?ZVX[2"9FA0rHbϞ=xJJJ =4iݻ#<<Z- >>>R0~4Xs>K}cСfL5ը HtJD [X{@Zb'ObݺuRmw7n(wuu. ?qDeee1!Cj4{z}ӥujݸqC0`h)T|||8}[~M]lyMbo/{1 8v._diԫSN!333f0Qp0Ud7jWyybKP ]a,u rl u+> iZ*:,uLtRyٱcǤFcv+Ǝ!mw^kAt CErr26n܈"c˖-6mm"""":4p chР4*1S nhZdggK4mTzc;b#Cƍqm pWJi͛;9___Ѹqc~V+-T#6;IKKڵMm؂X_zUXmիW"ncmVUWVsݺuCyy9֭['AA5jk21EW^y0w\ 5vXm۶ؿ?ĉxM[bbT7ڬI7#Ξ=0ۮh{IӋ-4jZ^^O۷ xM~/11QԱ6&`NN>iނc5⅏]&mC;==FȐhZ<#ˉoߵZޛJ/]]v>vT{ǐ'O* ~<6m*}&62-{=m'"Sih*УGi]HJJ2}V8ւ k*m#KGzA"Z ;^;Cބ’-ߢE _^~,Ou۫.+lRt 䁁޽4jpwwǔ)SvZ0ڵk &`T5ghZtYp^]Tc닩SbŊEqq1 .oڴ)&L5k֠ py?^qvvƈ#? Ć  4T#,,̪;N~I:gΜ3gTFv0qD4lذF򣇇&M8dffB"==˻`zqDDDD낿5aMcM <==1e$''ȑ#@ =zP*c(_( AރA,/RoR kblAɺq)fN yÜ[uzzZ`֒gmmNNN.//WQ]yب:;;w.,,VzFIูɚozaݞZzޞABө󺽽:b^uݹ 0oW߯pXfvp8FjjuuujxY_Pd9-+p-SТ.κ.궾i30ǶkS kb!m~*O4ف(7 8,AU ,ꊳ ӡ;`e1.^Y v!ս}gۭ\jҤ_F(<uPC9Ht[:+j}p#jv tZeV덋= UTT$%4t:x9N* 㕘X=yvޭr*''Gjڴt1_*,,T\\UtWX7 VYyW`x`kVBŧ: w)|jއ={*&&&ualTTRRRԲeˈPԦEEEڱczZZ4it]%%%ڹs+4UTTd1>*CB U4C}םCBU>[Q,?~ebcc뵬 (7oMDEEoǣ={رcnkСC*((Yg-n+D0MSqqqک=9|JKKp8p8ԡC%&&Z4M㊉9ۭ'OZ.{&l\T5Jj_|>\Z啐De -Ij֬Yа!++ -$EJJJU(--UAA<(cuqHKK+WF U@qqmf=ӧO&{,>>^M4QnnuJJJ*W7Vƍ+τ/beffZѷo_2#>>^M6UAAԴiSpv;gN~lT8*LXEEE:vu:*SMuQr?~ 6$SNj֬t*66VqqqV˳ ),}4MEEEK.x< Y%%%~&&&LcJz/^U`zcuv?;Z4M3L#׏?n 2 -"b*jҤ4M@R8 ;'':͛7*сs:#l ʄ!y ߁r{;izJXB 2*u߹gB 1B.ɯ5Aqq tIk|_J%:򈎎VBB<+Gy̕}4a 80bpfaf#<kھ}{V\;~kذaڵ+avkϞ=Ol2 0=X 4HcƌQjj*SP޽[VXq[`ip8wP?o`ѬY3M@K,>R_u>}LJw>0uW+>>u/66VSfʹn:хNC i;4p@l̷ȑ#~ZRYP86F]pAww'a]wU_,M]<nvwyylCzznvkoˋ˃x\#F{ a1b].‹q6kL&LPtt4g$::Z&LPbbbu׿94@ɚt U Twv Ƹ8st:9CDpgaiqm"Dpga*`YE|^j3H0a#%ـ"v֡>M@hy@䩋!$U¾'Nk .rشb[щ} R!{rR+i0 Pmkrss~*99Y-[Tƍd[gE%Y m]]4pٸq^|E-]ؚ4iK/TW^y|ƝP-p1~Etpi&曒-Z;PTTT~Z$PRRi=+WjԩJLLs=-]Tv\.Wc+,,Ԝ9sjࢲ({+W]wݥ͜9S]t3HDiܹiii7n\ֵ~z^Z4u:{<뱷@?X˃G=c^{.%$$(//OYYYZluV$񖋤hҥ@pa_U}Q 8P[`u9wn-X@b 5o޼ܲ={bbbԯ_[d %I'O֝wYnk1٩{T\gƸ84M?^ ]*Ǐ矯FM6YnjS}S} "z:T  h"[/mڴ Y97 C-[Vi AER;Nԭ"IDC[l$UzzRRRº"r)11Q :NVcW~@$U{}:~\nZ`ۭ+=OSIIUZZjccc(."E]AW_աCSO˺WZZdJJJ+Pttgm߾]K$뮳={J}[iӦΓ$͟?_/$)++˪d Ða馛4vXIҳ>ŋK{9\.͟?_sW_} 2D^{.l:rrrhڹs~LLF'Z[.;wi:p5`_oM[r 6xҥKU\\\<]yr:2aԆ wyGks*//*QFiʔ)JKK0;? ۵kqiĉt}@pILԔ)S|rܹS~FCVr믿J_}̙'x¯"zmݺg233mAQXXh-ͥs/~ ߿_O=F7o#GHpҪU+u]mڴ{I|A0 }~bfrH`x^z%1-ӺuoX)=޽g/X/uV[N;vPZZ5{Yy+hڽ{>Sg? @xwV[ծ];~[+W_{5>W(M: f͚*.u1HcE4MS?%Cq}C*k)0uT'O+=ZW\qFt[#FZP|WUrTt Y4m4»8?z&{0222߰_ @pjxz[fTK z"pM6/KIes|79=fEڻw֮]+4uUWRWzzunݺY+?=z'SnipXVPP`uqW[vU=ORYkkڟ5kք\s yμw@͚5T6ݻGZn֭[{o1hС֯۷o?񏐕 ;$]|ŕk}]ܶm5FD~*\e˖7o͛I&Uڹsl٢-[~4 %R&k׮ѣG+\Om=4 :5Ҍ34rH[$_J*dҤI+Eh"]veZx.\~AfҭZg|PRRb=68dJ{}WX}Ê?B[o-׊@&MdUփ{ˬ<D%%%VsaZ~;}ھ}mۦ{W˗/#n#5QZZ3gJ*:駟V~ʅq^}ϓo׏Pr8n-[.iF]v^}zw)a.\?@FpQmڴѽk=֭t~wޕVjO.]X 6o\n[VҪUm6={XaդIz;{ֶ}g D_Zwa,;Lm߾=h!ás=W?/Р\Tј1c4tPI҆ Y%USSS.4`ڵ+z{Ibbb4`rguz-45wܠ]xm۶M7xnF]2`WPP{V+L`v)<;׿wmʕ+uWj…!ڵbbb.(w}lnFGy$X/"S-ʭw,0 ]wuVφ [[je=^hQ9 jϞ= /.\X.59oz=O+[Ze˖a/[?8q"hnܸck׮ܜ.P&55USN*6lƏ/I4e\RצMZ=tM'OrL8|ۗJ$[a=zT_|nI-$M2ůrcJ*k-pM7?֦Mn:0a.\h`?^ne˖-VTtUtZAɓZ^m۶-b7t>۷Oڷo̙cM*wpYE;#s-^XV=*))т zj^:ݻw?rFK.DO?\.ΝsJ^}U 4ZMu5X;**J=n}?ϟ_~ߕ{}ԩڼymۦ;w.СCt:18mۆ\g yUZZ'ﴬ^=z̙3SEOMn7:xfϞ[j[]wUgoqVq4t:Xc TX=z'u{cǎ뮻o]v!ד_|Q]tRU7g[l뮻Աcredd_t-[7 7`\tI3f3< /zwS.],Qll;Oϥ|Xr\JLLTv5 hIIۧ%%%}ցA"[li'N޽{UTTDu*լYZծeqer:r8."HuԦ뻭WeI1t^+,khh"*P5o IDATTϔުwp˚7tVr #<|U*$ZB]Wk_)t -5-#B vzV>ϴJq}omCzn\"Epl- `[.m\"Epl- `[.m\"Epl- `[.m\"Epl΂ 4)]"@]fQ08sD !vDpgp4M5kv0 "7p8;eRdddppޜ7iGmwV pd5.LӔuroF-.@8-.; FXC gN8]\"Epl- `[.m\"Epl- `[.m\"Epl- `[.m\rR<r3^\$ꦵZsgAz- 6A-/@Bp A}"<*?H= ⧧ys0GCy*H*j#tOOg)01. Tz`W dxda)aiVT٨ࢮGp!Ce* 㷟0"20 CnI.I%ќlŠB<9<2Lzt,!B4]E\v30eF1rP#T3HV'TW$yGuPI>[Jc2Lihz~yJPx.Iӯ\W7nPg)Jקm۶?>XDvHixeJ6!J$ײi{cHg%Qةjoe@Rl!N[]TtSiiiiNl٢,Z,IlHuo]r\JKKsDyhIѧ^s{߫8U=k4WSb` wܡyI֬Y8p@}$O>zGըQmкV}l˥Vjɒ%j#GO%I999Z~v-IoբE %''K6nܨE@Æ Ӆ^^Z[f?vʺP UIj[ɯ:$i߾}C*:::g+ۦU~E_uTa)>V>VusȲOA_ҥKUPPƍ+66P[?Bk=ъV~A,]^Pu_ r#"Ϩ=jLNI3&uTlѢEn`ۯNjY2C`-_oPjj>oUPP=zї)55UYYYZl۴Q.KCah˖-yװaԣG?k˖-Vmi] .jnINܹMzDukͬ$?]ZδKD*--Uͭ3qC뺬ȟ2MIIQ\\\#˥f͚)!!JP' חɓ'-3SZJMMƍkѧ*++˺|\.Y󍲲hԨQݻdܣږک}Na]GѻvҮ]ԩS'uԉ"%LéeKn“';}K/GVˉ޽{kȐ!0a~G]V۷oW׮]%yԿr%IǏ^KMM^5f-^Xij:s-_Q7n\V%1 CsO?m-w^'|;L;ԥK իK/I=\͚5Kz:uꤋ.HӧOooF~Z 4JaÆrnݪ[ZϿ{k_|ᄈaN.D JHHБ#G_P` 9Ôsr4%%'T'OB ߖcǎոq4w\͙3GsΕa6m_uF\{n3y抉Sȟ'{g?|׮]av`EtΝk>sСCC/,ɓ'vڰןc+ݻ˅+/|ƌ~WTTmVRYKn)񫯾*+WJ222Ծ}{Iի˕ڵkev% ͛K.jٲNB*((P~~ԢE uE B ߖcǎՌ3t 7hڴis+myj\CSTiRIܬ_?6M_9Q'O*0T/UxД=s9'ފbn7WBBjIҾ}a'H*"--F=}𝲵6rW2镕euYKtgF&MtuYPY];-[&EI.r]uUdu6/_.I9rbbb~۷mcwE+[闕Y7T4l`F~[4~8kӖ;Vw,cjxӭbܹCc\pKZwfr)pyT#xִϸ}i #E[i^iԨQcoF,7n\xuZ26*..ۇ~%\R322ue@i*++Kk֬$]p袋dСCr;w޽{%/U -"Kgfh1}t+3fO0 _ӧOט1cB0n/4gݑ:VR(JtliijhhK%TKչWu -|Կ͘1ïŌ3t98oP :cg רC5- 9d %6ԦUe0MdƩMERd 9ovD`4jH?jڰax`Ie c3D4|-[LGUΝ5|ӯTuPN8a=nܸqY򤦦O>ڸqVZ'J/^,IdbbbtUW^Ӳeˬd믿T6FiP1_ТA7-/ М9s4gy<͘1v\4F#^DKsyԹM]7gEѧ *JqTp|ۯUt0u*TD[4oJ屮*{饗gT]$==]?5w\HNNք l[)FRe6mZnۗ^z6nܨe˖ɓ***Ʋm]2dkZh e˖I*kR_L'ݯfe 'ZӦMi;w͛'0u ̬"!ަzSʦGuyTֺcHnGݦifiVT}ݻcݠZb_lkwh޼.A뱷>x0-**͛<۷o7KHzz6mb}7ڱcVxv*Spz;vLZ7Zox8`믿r3Fjq70 DK,Ie-,|?ks*يqzM՞}{UpzûN#GѦO]=I,pWոqqFLt]W5,ݻ[W^k[q߾}˽ߧO%&&*//O֭%IW\q~tW_|}4MjJzrs]*((2x5u vŴ@=k֬nFij^xp JLL,PR *PʓT፼B Dԩ9O}a/ ͎RIY?ϒ^x_vegV[0`k}Ǻչswޑ$(##21115j}-ZH۶m$]tE6l{=-XeԨQa#dhri媕TTTT붨HN.|QU[A]8"`Mc=2B8iV>ExIMO_d([O #C1l3MU†xc*`VRSS)A/_.4?K2 |0 M4z%d%_9ԪUykݺu:~u9[.##C111:z5ES}ʕ+tr/8Q ,-]T+D:!Pqdnכ6V?Z` sok)Wi,啜p[9MTAΒP5l0=r\={>#7|ֿ2D111FjPW_V3fPII͛+WjʕA={Bnu8p֬Y#4+tAC QrrrCrrJ貏Q0w-EО܃b4 }{v'!Ai:MZ[!q{֪O"vW^yE=233C#nʦIJJ_ٳgiӦ  'Ԉ#kݺu~ر~_kU&M*W_):::X^\pUC͗ƍ_dqYؘJOO/w456cĉfM 4My<y<x+NguiP#, 2 S2PWeL9.Pa廼ir喋J]{m* ._uUj޼yUz,f %ث:IeR/{1.,XÇ[χ ;ĉ/_j׮]:yڵkt]~JII)W裏'IZ~_E)33Sœ9s$I999ֲ)PgϞd3&LڵksNm_!C4ov[ҥ.jS~~>3[N;wTnnԮ];G\rڷo_?q№-[+Vh*--U.LZ_AAfϞm=+.dݻz~K.Ӳe˴zjeeeDm۶UFFFoV˗/׶mta5mTzҐ!C4pr˗k׮]~/KEEE *:i+p8UUرcZzVZ,egg+))I۷׀t]-Kj͚5ڷo_y9>3MSׯײe˴uV9rD ٳg,p9qVX+Wj:vRRRԱcG4h7nL&''HorU[a2e@/7ox@?c&%%'%\s}7U%KCVy@+VӔ)S*~9眠ue0 y<Ij~fӀB!#HU *(t_Q_"~(*MP B0@ =;a3-ِ ܿ";;崝̙3~S6dYFtt4L"+ּk:t()[oDŽ sٲeM6u8_׮]C|ھ}[Xt>k,x{{cɈ]wr矣aÆHLL|`1ZNk/ׯ믿YΙ$ C۶msAAAOѴiSe@e,_3f`ԨQ۷ފ3g<;w)S vm޼ӧOٳg.SF L4 ?8!r[n00 0 yUړ֮][@RR^u8q:;ő l֬+YvǎV߻w!I-*:clo9rݠ|W>|8RRRl,ؽ{tv^}U8^z-`0vի2dN:^{f'V^I&iҠYf(Zf9gI&Vw$]EZ+1n8A gDƤI{!##á|R;>>jYq6-aРAVJz>} 7DDDDDxDDDL #/{BuWƹsӧO#33ЦM4oeʔA||x_إCDnݺ0Lv,44]vEݺuQn]4m^^^BݺuSNi:PݺuC&Mw5kѣ@J~t;+>ӧg{#.>Cj_>x ?8DpyFѹVNgI Fn͚5Cҥ,\FF222[0qDz„ ]vƍ8yx}ڷoƍ/^|/%%K,WX[FDD$I5yxilRL[z5# L9S}]m)?Xbf7xi߾=~GMgٳVfׯc۶mb}Ю];Mږe˖iSO=f͚~ӧ&O~I7_:ҦML2E\|2ƍ={V\I&ﰰ0ԩS}cǎE5i;b9sF|G :Ʉ7bС ѠA|?|Ho:(c4lPxդ3<tUD_|a1dpp0Fy/++ 6;gr$ԨQ#)SFݻ-ۿs[D ݫ߿_$Iի&hExw5h^:FmN:aȑ+۷s=u+<]UU-==]3Q_~ь ôi)cipBee˖nJZzGyzҥK,^Y-tz75ϸsG""""".CǎtH%I۷)D[B5m۶Moݻwn/ޗD傃d,]K.Œ%Kb3ӱcGWY^8txݶm[iNzh4._fMzm50b>|̿;jFzya3ꫯ (Rl$PcL+GIoe]VnXdf_$-[Ԕߤ$?~Q%""""bh:/,#555WA { ;mڴ|}:~wYtH6l Ahذ: :t^tfƍMjժvHIe4eYڑ`|RR6DYKW1ӧq]{-Z^Ϗ?n3Fz?Gf/F[$\pA@Ψke׼w>q\vpv;׭[bbFYg@Ě7o+Wիv˗#;;,͛2dѦM4huAjլ>UaÞk׮.gy$\z~w%$I\2l700j}:ڵk~j`ڜycǎ(].\ʒ9>i(@[ٟ<In 8|BS___vsfBAv%IB׮]EW$lٲ)ݺus~~~h۶-ڶmʕ+زe ̙xg}nݺY}Pۛ/-xw\9zݕ*UO"##uUfM;;ucѢE9s&Zl{gϞXr%/nA* =}}\97L0LŠ+` wܹss-ˣTR.=k׮iӦuTTϟo 2e :W\Abb"@TT ^^^,=ك} wF2eKm/qqqHLLDPBn۷oQre֭݅F#  CF?Rs\DhѢ+֮/i&gy˖-v$IB DgUhg׳~zN:9tVvr,v|:uc!"""""HNYPgddӼ F#49.gwѣyJAt]엽ێ>3/?6HkW_aԕQH.\1QnW׉ϯҭ[' &&FgϞ(]X٩3&Ni~ufsΔ+{. p::CY6mp$''kѿzN]n:]ޕs{l1]F9҂}1pΌ+#::ZCVZ:}ϑx,"oygő'u\9r((#8TGlg;>ǰa2]9wAAizV~-nW 8eFDDDDDqu}닐t7UBP\R~ :NDDDD훫˖U_Ʉ,X)JDDDDDD֭F#  Cn709]1pQ>ÌB}?""""";?"""""G DDDDDDD """""""-.m1pADDDDDDDn """""""r[ \bDDDDDDD """""""=,s@RRRRR8DT(G(fd$R|GQtiiiXr%k.YVw߹ɖ$Iؽ{7-[(Y$&Nhɢoãw޺u SLG+2 ־C}vf\پ1pQh?7nV@~ q1jzh(55+VG@Cb߾}y\ݱMׯ(4y>.$IBڵ2>pa׬YEe:ЩԴ*:{&2pU@%֭[Hxyy٭/^đ#GpuB@@VZj! }}6:3g͛Bɒ%QV-DFFâ.2hADEum[8p yqƉ_|C(蓰'/_uA"ET ZǃJsTݽ{WMg{ݺu^: 4Sg}7u@?ʕ+!Ij֬UVeK/+WAXdك?\;nDQlYKKK… 1o<ܸqC7#""oqƬ0DD \<ԩ^zaҥ _~_HMMŜ9s cǎ,M.rAlܸQ1b^{5x{{.qWN < uˌIމta=1gWv syvf:Rwmяʭ1cժUSpԯ_eڵk\ݻć~ : ꫯvZ̜9VG?cǎ_vڱ1pp2dVX,8_ѣ]zeQgwݺuoh^TcccѳgOѣ(VX!66=z`,8rv]+L/z8x{{wߵM6a׮]eڵu,Y @GRNn6}/^=zm2B+֬Y#ZJ+mڴѤL?^sc==z ""B||gddQFhԨ~i֩SGM'OA"QO={b…_}fϞ91Wh/e?lՃ͛7YСC(^z}ŋGrPn]ieʔѴγBidY@a媩?wԩSb^2eg[fܹqqq(WhͿSR%9s O=zUsıcǰqF$*UѣH[䙭 5kֈmvjOIII pNEp #"zSO=ƍ9 ?;wѯ_?\d ^z%Y$ AAA_1bΝ~0/WF޽EGM$nݺ+~7n+ׯu^⭷ܹsźʕ+gq?a2lv^z7W_cPkӦMvaɒ%8pL\r"._Çkꁭt#(Iۇ^+VDÆ 5ۧnj3lGtt.L $4ܝèQD)iiu݉0a&hW)㭷޲Z-Z*TWZ \;~;w\rziX8pjILLTP;w}>/;q=ZG:t(*W hwƤI~)OGe&rY1x`l޼{i*m.\(ĉxgÇa 7_2Cuٳ8{,BCC1b<(V222cƌرc۷M4M1cƈ隑={t=uEr !!!5jtA9!v ztFիkW_}+V@eM=p?7Ν;x뭷 ^w}aaabX|믿F&MO8gp;vؙ@o`` ڵkxV}'ӫsO'|Pyu/@9+ $IHIIΝ;1c M0+D$L&ժUXHk-m1'>,fϞmՓ:uhѢ$ gϞܟitQ7eڵC"El֭:usV>5qr^7WzLn4S ָUV-U&,Q[nhX~mzѨVOlxx 6L(ر;vŋ1|ȑ#`N&Eۺqxܸq(W$I͛75@ذacZ?22<7⤤$zઑC;u 6z>>>8p؇-[X W$IՅ;օ:e-﬍Θ:uC͕uOX]rq\~=!I1fARJai`܆ lcy7ŨzNʤjwvډ[$QnL*IG?WtpYjdŋ맟~beTXrm*ҳgϊǩG̿'2n޼)ҫhѢkm}o!^?SCs ΠAয়~9 w +ջ^oXx긧`֭bHlw[ \R/}ʐ<鐜<55UL'˲HW[T?NIWW0Z"t͏!99٩zhѢ&`^J9UYL6 7o]/BCC?u;TN yFȷG*A*Y$δ))).zs[Os^4lP?ٚ}QoFF,8p@SG\":9mmG7OaV qoߚ5k4JyyyY (M-[ȵ 1^zxro3W:0dubܹ6LDD'4C?\ѣIdYիW dUTh߽z^Y? \WuO>}Xx1:uꄦMv ݱc5ߏ]Ώ&$$hJ*N^]w(i[Jxxx^Ȳ+"22GE\\bbbPF Ȳ,]@ΤŋGf6nݪODjܱ|]\\&߶oߎ'Nl\ۧ"l}Vmժ|||Çرcݻwr-k/Է_3ќ9sNIDD \> .G|1pбcG|7͑ʕbFǓW9Q ZT?ʙy^XLWY-A6F#ݻc_qYq,9s&f͚.]`رPE; H-GFE)ƺsKC$Vvd^=z΃ݻwp6I4˴o[lARR9&M@e1?j׮Zw>7mzPg-_\y䭞sΉ/^C|2LBBãG(YS.\b7*,浭G2hADCO}]+USjNlkǑa͎ mOVYnNu>]muMߝYzbDّz#@~ kW_qI:t;\}Z3/ʙ3gp椤$l۶ O=e6n(nԩnּ~/>>Vsn#q4`,u ;w;#ۺuWɳZ{06RT)DWmϔzWGP zlybJ2B]W~iHX:u ̑'q2d ޽{P1pAΞJ;˖-s~Mݾ}{[ Cm_FFF_D۶mEz/dP0SUxb2.#om駟/_p=P]v@$M=PJQQQuttĊRO¼(Vv!GDDԼysm5BPP[5F۫q ݻ'`vWD k&6rCy 2xyya,X`MUe2dYѽ{w2MDDE.:et]s~z'0wʕ+ke5ˋ;w/^[na$-z)k׮]_+,YYfYbhC^<-7̯h^J+/ZEڵ 6l={j*z ǖez×o޼i/_^sV;O^3?;}tq:'quAt8q ZVV͛ &>ҐVGW^z-z8tF-^۪[2R)_|QG8pw_|!^׭[{ل ;u]PL/׭[cb̙MW)7`^r[̟a<3[~}q]$L8fZZ>S|woz2fsVQOQe#{ZP-_mRʗ^}w\^vMPhs:uyRj˖-bG100SL7l؀QFYyEaW_}U河vZbbbxID`8r@ IDATߏdxѲeK"99w\^:$)R?HUVСC޽;Ǐky'L4 1118y$1b,]O=ʖ-t\t ˗/-ZsSbKPP*W,:H#F@^PT)  Nopp7 _nZISN!++Kkd5]yM8Nkm=x gܼyǏON_֭[q1ǣwh֬ڴi ҥKXxfѣG>UyoĥdS bؾ};JP|UV;zcĉrN͙3@U&gN`5u&$$unZ*cƌ@0>"]Mü\4꭬K[NsJ=_~YtE=eUV[1g9RLDk.ڵK7}|}}1uTOXpUx+_߆v gtY&U&bw 40avUz]J}=zwg,9 TyԨZ׮]E]lƌ@;w[nsQѢEsf?<#!!YYY;ӳw#wգ#䓀|ט={65k;^z>}:-Z`'>>>ꫯ;NVL >K.EddˏILɒ%1|̚5 M6]&((Çǒ%K Z8O>azǼZ/Ν+2eʈ+z`-TB,\|+~~~߿?L%f͚%|e˖ň#lY:uDDڵ[kJzy)]4 %KK{g:XzFgGtt4[}oootk׮#wiOsUO :t ^z淕{ϩv?/^}_`mPPn˱cpq?m۶uPe˖bˌ lڴ @΅e;vm6< ֮]c"<<\w@ K.ԩS5K:՞y1=ܤ}R0L0Lrh*w+!! HNNFѢEQti .ƍ0GHH<<<~c[i|k׮0(Y$*Vhʝ+ݻ8s *UXby:ӕh'PdY]Vpyz`4vPE||<p]xzz+W<$M!^Yȩ@_̪n}1/~K#d A,7{ymT0`NCTTXo^f2LU.fl:/i~GcvB @$9}7ofmzyÿx1T.<xJ3/ΰrx=N^tkW#?"(}K9;[$TIF)_,W>OKAXdz,! `b𲓤{ixH3tr=dKj2~_]Sn%߆wN9R"Bq, SqWa0v:_<==QQ OqhNV]iލ|/)$HHFHUb^DB]d$d^[!p-&dI$E`@px:922<,% %</*Tߵ׾60\Eq];Rmv[Er`0oQCi=0V#zƱ<"C#}PV{-ʙIFXɲ(_J)'.Ląd0`2!4("dsܜ~ wn$I4(n0"J5\|@X!1p'u,tJKCbӪ_q.! I rN'h2WdN. dyuIeK0c>f.R< L9hXF>Iz6 Lr&J22$'^/&@"KQ$[;FD*lھ!gDD| V[ן0ʋe0/Þ |:9uzPy:֡mσe ^;e&i\L0Q_M"D/{ 9mU}Z7$}3i'lo7}3@M|Q ŋ"zMրG7Aڷ,:[HjeNq-#&^Y26;uNT9xjl=v$ d]ZCo] w6Тz-DT&FHk0L~~fۯ-C%-ǎ`GӰPJR#)Fq/gގN-B.(v/MFҌ9 I}zAx90᡾UJA5? dҍLRΠ]'"G ^6dxz CoRn!.` H0 hPRpmA?#9 H3ԻtCdkҌd%M@dQ<4ހ<$Iw bHNpN\ڻ+3-vᇜS+o@N~׾m^o_M'Lz$Y$_rv:NƦcQrQrW?"L{t7,aG=5(шHEWtvf7ow5;avv#fK$J3CH-G#h]uWeFYU]"S7qɡUARNy&=/mیpomsۑW'lϴ3E l߂ޤH@#(9ȁ c 9|'? @ 9ȷp,ķU WVS9;)kk;6+)H9 ɜ6/^(^]@Bk D8l\L8Y\W+U*HG7@wqr-5sԓG:*9]'JR눜pVό諜 mƿ|qO)#/|qDm'!k/?i0_"y%O(Õ75"&vZ H@UH*aK{B-y6?"&4oR*FSIf}Ǐ}N>d6Kbϱ#RY:y0#? nάٞ*|n1F'q q\dB!:$k\h= l> Z#6>qÍrb6Cf`ǎbװƨ4~˟cX8~r$L5Fn$fOTЛЩxu[ưq:w?|IVvةW=ovUKai5]F L? 'Nd7?Ǻc7p#V V-Fx[: АH(u7˗cx~Zl؏>["+4l>ڦ\ES"rCkuf'ffh&w@6S]ظc;=q9 paيE[7ඥ0 ~Y .{ 4 ppe`rCSpA;=G#Ya->ژ%V*e+7H!0  G=4HWv*y|\c+7/<B?;Sυ拄+$,ढ़oc7_j#5Xv2ۇ,* T~zJ)tcظ}Ngz1``=e\;gɄ"صrmˢQZl=} u~3^ֆk2hnR0&sPR`w~m#{1I $)Ӽ"FHN?~YT BH"B!0pqo'V ;ZׂV;.Iq y;?Ć0 @O=,'okhX~)C#Ya͛pkpՌ9!]Uz4I=9<"[]'/!~FS _Ìm]6idlj wrD/'go8~e-~ģx'W?[BC*,/Xs 9#WGɗCn)01_:w\q->dYd8G:OG dI)J-a(FAh_'B:@ V݈?PSH((?~ dc. Cs`iG杠6Tyؠ=p|h %{v.}A%{CpŮY~DVJ B ?`ױ{(r)?6o*\_mLjTs'1t跁߿ r!ߎ b;$򶅖Z IDAT^-Hk+tSUmYpM;}RCP<3A]}hTOm1;Ǐ"k}Ӷ>aVMS!G➛?I~x@f@Q;t;`5F8$~/ؘSd$e"KxB szôf|3wk HMQ,L_z;˔X$ ay ?!Dhio¾7"&JAA`N8s"=97KVF%7 a)3mg_}-!L!MYs=::O~p1txǕSe@;p#[E '`VH*3gϚ:xn !HPߛH!3}npVZW]4tis`+V,wv༛-2uͫ$V`yТ"h 3\=ϼ&mm{ry7(CGD;vl%kC#-J7ܸ|Eh`?λ= ? " ОNn | V/KHАpٰV>3Vbٸmu㭽;+-|T吻n̉./J=}}RNmo|xCB\(()҆u!})„ע~6n\ve9ӱ/`ǼѳGN} H}{ER)tUA1Ь0Dg8p VfOd-{쎕I/0 @$TlN ].dgr J$l'Fn9xkH[)ܰl_2vK֙O.nK8ɟ/~FIDhp*г<ϤT=.oRJ8Bcw,8_/K-:Pzi)"̈́ /;m{v&QڸcenIl߷TG!gYl~:-&r: o-`GA+!BUT)? -$4h6 铦DV8tpns!WZDR뎞υ\PPńzHg]$axACGFU _)OE<ӝBj` R5=؟1SoV&NF[$ܸ|ͱف*Y1 ez<nfz{|ZC(75YNIx퍲[̜WpCw Biet'х\O9b0k N-Y>sN #! 4iL0l246GP+O f<7ejĴVS/G;gy=|9((m N}庘XP<-ox6""B .r -^hN¶)Z{{Vq #W N ^#WH`z˔+eڷ/6^|g ּ6^ر/܂wn[LOQR@Sp.\e<i- 7fN0>_?\0Ė֊Kʈەf/ _9!0s1/<W] a椩^ʝT=Dۅ9r͆yQp+ˆs&b֦`hF>a8N˴RP޼/3_%hxO㸧ߪi>`zGBs=A<"KL[̞ [`;rD# `ټjǏG((HƌgY(ْg.>p%Ӟׄ#5-̸JNvB!$CGVTE*5498eO&JL<ȸB!llLCZT"8,ʡk m>z356^@Μ†wL%M i rb/ր%\" -L,qvRi$hl]$y XމƵMg^DSA9r|;" i /5x?CZY:ۉnE-J 4Ү ֫?k_ o`p qABy +O,$q:%V0R J|9y]m4vnX^u#~ H"`fc+>O_cۇf-Ѱ&qԓD$Mͅ(uch9 ϜFE.{[E[$$,=)Pس W]h[=_l-X[˚ZjtuN1G&Տ]ywFyzƙ E!.Fq!͖+ , J!k_cVWkBC[BCVOKV7hon^rg p5?HL> 6a$~Gq7 !:NC4 KtaMo~991#2,)x9)Z)lW6e+G=wĊlH24^^BlyMplZhX9 N#'5a^[퀲,8x hhע l'uO(_/W)(?ay}ei]W֮%79/"?_D &T^Q/߂߆%o /P Q( 9s9)ٺ2y~jLd9 氌4{v\o jv9ʦ[>4 ߯:W'|yl2RA"s)-K4Ш~C|36@s_&8 u=t:~%F.;WYt™spb6djw0:vzB L^ھ ~&a\x8x"f$A(HmgDпѶ4B+|DNJΏSp!A!0pq5rZ}J{ -^a͙t2oFԔ\mKgDPPJc~[nXq%]zab 6W9Z}d,/J܏o8V&, 7nZH,ׯW_9.+p`8Zk@Ț"rQb@r 񨫩 {8EyY 0u2aN3}tdlڧLC*f+C|SO\T7./xeW@>6A6ކ[{;nb?ȲF(qYqTP@0_e"&/Yd- !l`T^&fQF83. z|_/^͆|m Y¤e~@T['m/ajH]Gaj`ǾP^QΤ ,i<{.'4^j[} X8svKR޸~k77x[F$~ګX~՘3nr:cIC!.3Skk嘔VWGO8kߘ; r`A8#"rhi/}/]6 kN( )%v5hN#ݧ[EZ#I/k6b_ ;pؼm+[9߀#-FaۛXW\ T? YuE4?zK'E=WH(>r#=wr258_R-Ixiz|d!oUܕ%wQL&\kfpm {ŗ|1|t%%orX8SJ4#, W)siOMM~O7sXpC0-I2`칰N8Rc۾hog@'epJ̬Ӈ%q<G}7ϼPlBv% cNn1ey"z'-`+`IXrhSb4,o &-QFJC ZtAV#l(x3E5 =Ǐ㙷ע_9rQ 3gBxN#{K"2qhT,̝93>EූҎ9ɠ{5m.1 Ȕ#_抏ڭh%o>?.WlDƖޖㄼ׋'c멓Ql}(:cJ,lٵԘ K+"ms[\5"\Pc) z$<_Mo kY|q*ԃT~;7wG9x{& 1L"_+8ofb9&5bOgOX@཮s8o|Ȗ7Vؘ6 6\!};}9/ 0oz ?IHo I輜=qϼm8h(HX }^Qi `@ljز{r<ϚSva Yz\o|9VΛW4z B3.Y~ZRU<~9,ݹeڶ- RRk\l9j`w<%8ZEVA`?/*C 9u*(xP Њ&jh^͘؂VnjEs*8rPxqQ:0* 5J\wNf0`  [K *]ߟ/+g)/©@J=xpLS8e :Bo 9 xr~0[Lփ9ul?uXe-LFۋEs J`M0[Ebz/Ʃ$³O!0pq o qXx  xy6Ȋ ,x_Bp BߗQ኏jv8xB.k8V3)$]1TGaA#| R қ_ݺف ̪ceI9]aO`2G6${@V <{ )Mxo)Jk|w[Ʒ[] ɀ:`e>UDfkDv1î;ŋ̓Tn0?s^.3+ 6?DX XhqC*+Py|Oݎґ ($?@4^{M+@ νM҆\!oKٰ!dN__ʼG#!J:S)31} Ƒ^} Oz1Qح;>8r*V-^$s=U1{ iΟ4 W-ōk-O_cv]Hg!B..p V|;wDPߏϼW/YM(ǎ[q"gYH8.&|>BhɆ ,W? F4 !ԩa)_׺ƑC*He9h _B'4\!#\<W%0Y'Ǐ6&]erXkY)UHB[nś;ד͌ <ۧp9> glؽ \6U]W9wG8H\}<}Xolٌ[Bۦ?2g=[ZS[@>q[1U`c(t&C/q'6co+ǰv:ܰb%&KH:{osMׄRq5LLy+R&"% J(7+t%G> ^렫O X&+!*LI_h;aǍ~sDzk/DŽqͲh<{GsΗq"&`wِ~PK-0c]X -Nɂs+:%g LG|}wh&ZB! \TM"W\HNIDAT O7d-Y 6BJkLK?k`Vw(]`%tP1 xS_)h3~甫0v爄!`Ʉu!+tdPAFA-W\LwFrm`߫k>SB9~ t(]!Ge ME$|h iԸƁǟ|"rMahRy.;DЙ;;wT_%WX IGK2mʻ׽Q~_(=B{Ι(R`w OE("r%nj[!>?LJԘ9 D;l gckA>wǽE+|(/ra:=nX/鷤~wG"q[0J60%Y/~׾i@:΅[*o%)BL*+f70ybl"͚dE%BEzSќHK:.Ҏ¶Ye[)%"jkqҰB!%`gy2O㙗շ7ɓP\PK+$}>:\` ^rΜPUT(wx.d , 2m6ƽwhIFۑr5r*0Ɠ9gW$}s,|{?zȜL]@9"1rʋxe&=}P0{-mq,mW/Xm^/@S/'_cFC >r^\ZZGַpG t._<8ȟ 0mDqIpe@~P /ByEڍΟԦqҎkǍaIO+\#t(%kYheX †7fZ=u90Eq'4Wc߄:$B E Y1#"+Ƌ[RN@@Hs`i0ho@sC=LoÒ |" >1m({eF=usP%#-:X1 ?bp/VΝz"Jg bmp=};>Y W螔Qua{oLzzBKqu /dQuB!a~IPJA)qOo;Ow` {Ρmc\]N@#lC Qz~ѕl7;0 vQp}ߠMx;~a"zφK !R׾_s~#ݽ= #yr)D'*bʊڑOß{;tu!gCߗ*p{}9Js"WO| UVT!×J)_'55:R )#qEt\*F0Dym?r(1CoGsq 1z6ԮRJH*4FVwCꆾqOT ˅IC#cB!\y睰mRJH)c3y+[CƏ2g1sRco"d#˪Ȣ0yjKq]7]yQ^1z_IMa9nDƲ0\BޡdPl/w5! NnTr{YTA+RO9HS1(ׂeugk}LcʤsF 8 f/ l &OzHMU$>ҍ(*(TJ,a1|/L*e#q`̂B0pcBҽHQRe^ zŻWT=\*〄fVyʶU{}'1#Z2qJVA39S(c|)}$*/8ө~XKVEaJ̨hTб*iS~ ^ܯB! \TQ_h f1+]0~H#nvW| 9忧i .r-6TCg1_CK=6ڎvGn(q"B!Т B!B) B!BZ B!BH!B!B.!B!R0pA!B! B!B!T- \B!B!jaB!B!U B!BZ B!BH!B!B.!B!R0pA!B! B!B!T- \B!B!jaB!B!U B!BZ B!BH!B!B.!B!R0pA!B! B!B!T- \B!B!jaB!B!U B!BZ B!BH!B!B.!B!R0pA!B! B!B!T- \B!B!jaB!B!U B!BZ B!BH!B!B.!B!R0pA!B! B!B!T- \B!B!j֚=J!B!\!Ĩ\oā !DE!B!Kpl`4rnA B!B!.4u9:B!B%hFGPp#D!B!\Œvl`Tq!B!K>H)GB!B!0z"z !B!\J.2 a. T]vq!B!8wﮮSE6m"B!B%8شiSHSE8y$N:ő"B!B.FN>]97*9jB!B%B80} >0ZJOR3[ !B!R8իWòm"C=I$̨Ը)B8p1B!B!=Ad$U$\cNB!B!A){. TVhʚ5kpA!B!r с5k@|ar4o4uO3B!B.~Q=5̨n vZl޼#H!B!|ټy3֮]4}ᬋzgϞ(B!B!@Ξ=|p̲-1*+sc!q4 !B!\=Ο? ZTVJ) /`#:B!B!ՃW /0A ` RBJ~ׯB!B!UH ֯_~RJX6r:@twoR2!B!*`M6npẑ.N֭B!B!)ݵXnocdɒommmA: !B!Bo8V^ "fLGb6oތ.̞=555]cSO!B!RLgg'y<%c??f6`T{5ƍ|+Xl/!B! L$uoĹs"}X'iTZߎ3f'B!BȅįkEu,.n wJg5n&|#A{{;30!B! 8t{9⋑m!.Z) `ܹK,>9\}՘8q"ux!BΜ9;vǾ}.zE!$!DB۷oۡя~K.Ō30~x²Kv[I.[1,8gO/Ƹ UI~o e<B!T[u]d2;w'NݻqF:t:;;mmm7n\{v܉\.9s&^֢2 v#^}/]4Pl$GݟLv h!!B!ڶ Ҍ Lm\˲ζc j'iNQSS]]]8j(#jAWWWlژ0aΝ;8s ZZZԄ3g@kn4779az{{}3v rXm,9,jC?+R}, B!~'j,RTB xA:ߏsΕR*===_z444}}}E}}}---8{,DSSS)l{OO:;;766F;D3.Z.R*Ɲlvw L~Oor]YB!Rw5U(й@Qs%!tuuu#Q2h2 T*lyhmmř3g0aL&\8qDsm%8Amm-fϞ)$ 0ϟĉJ_j\EGG!!B!JVE52݁:WSpD:ĉ#Nz*.6.?~|D8wrDSNӧOӱZmmmhG'J=͡ D}}}R$Dsss,:q"ӃT*ML*ܹsa]A`h!B!Ʌ/v.Fֻ;C0+!L& 6I-#tuV1cp)dX, Ǐ׽dEJs40\DohĉLɓ'}߅tRzmۑB! =ZnPQ~͊d,GaFlnn(2d2v!0~xpZkضT*K:m OӘ={6zzzPWWWv$f͚FLHn{{{/^}l0B!r1^X¡TTc,1 t*XaDl@e'_Գ444l_+Ncܹ N?H$qTR!BH5S*\MX.֍`C L,~(XAG g.ڊ`;5(kB!T/S};T`BdVJ6ɑf%7=@` N v.\6.i!B^-$nDܶr5.ƺ=ڝ0S\*PiE5d #Rcᨼr{.$N&/ՀB!j-V]ulv'TzGz*rԩSBISSƍ7j>ǍG>!B!h2}1zb `.cߏ1vMMMC(RRDdSp*oB!BFJp iqθ SB̍8 }2`;؇p !B!¸-ɠT|KIENDB`ntfy-2.11.0/docs/static/img/android-screenshot-notification-details.jpg000066400000000000000000000732121462047176100261670ustar00rootroot00000000000000JFIFHHCC  YHrS&TWp{kFc:`.o2I$@J#D R=)cʀɈ. GRc@K0& \ɬYG%Ii7\I? HPx#}Ӈ,+0@)T&dMvicD c)HgT?N)bT3LA ##` q1c @f;4DC`>8$r2b$\"ZxTpE Ez(b&-(JC^xFߩ?̍_urY <[2=`y؞b8'x%_")J9(U1B&L1=B]*]jDR,Ej5'k!Z5ctj\\Sje-_1v>dThaL 17Y?^Npi$r惡oMMI7uzzy=,~;W6''k:s092JW';,H] w7N1l&yڱ[Hv͉93 3&,'"7s q41I`4QJiZkyl422jAFjn1[ΨBf# FD0,*f%EfSB5c0f#)JujEfB'[ʗxyx#hL71)S3!1n8(s+޷agЩNE]`nF!#ZВE:i%T4gXSJy1k6 d2cE*wpO+ M3)AZb,Z:sl*рKr4 o!{T5'˰")wRJR>ShXJ^ 6k5k_lG4gQw̃QJN1يUZŷT tim(m>bܓ H\hP{Ow@!PҦ3%" > :,G;:ĦvgƀqWZ1;?+Fv);_zILi5ʋ͐am4YnyӾ3ޱ4tu|#'jʏxɅ@tDˬG0|h-_(t/u$x˦Kɤe37'i/#TÒow^2LV4oXv]vva"ZtGbwN[#+/6l%;ٙ4 !1Qa2Pq"ABR`?141CpjQ@#)핪Puj3ٲNiI/. d[ ̍FDn׎ye-QCCM3NU/):)^YUݘ=|{yØ5=.HEǿfZmZ)5?;icBy)A'/۬;:AlYK|uSο1J0)ŕX !1"2AQ#a3BRq $Pbr04@C%56ScpuvEstw?W$)ylЫfp[Bn;d()qճLEg+e:@ptҺzD̵XT `2베Bp~p]tS&VKEz6uPz*`NdЪS MN"lo߆&JL9[ ʌCO/\5ʶ-CCjQK&}@"E<5LXDkJM=-9)PJdNNDa6;5F9pE䞟c3,KCXFHհ d½ xOe!]~ H噕aViT- {⣼!YFaPu<dW%Ga8 S{Sl1cO)э6mzH5.ʟon8B *N: !ȫmHo}ImC_4v6?VehMčs$t:Bo[ /]f&#Tv]UGz]UԲof2>lF:G5޽q ޥ&3Sj%\ԪS&-M{޻w9Ma|!Yd9uzz&Yx8(܆]i:DyU ?@Ɲ4Ey *7RI~mلLPZ=ɍ*/.MTչxaٺ.>\K[Ni߮23 szk!ymGHqu}5]38j#1^EW^RtU֪K&c4V_n]8WQ&ʸ~b&G,_訋u8\qXMUNRmj1'Tf&RLiv"Gqm^OrxgqQ]W^oCy<hdSe,TXԑ)lJz{[ïR$'е*:b4c;ńJ],EdK*L"HL)&$jSE.^(R[WcWK}*Q0n`ik[7!$ˊqYN-PiK@I0jX@S E숚|$jF*0_EӮ"1h+x\)&.4x/s8կ|KX {B⺉{jԫo(Nu*K*wRE-C#,NpﮍjѫlTݪUۺ`aBE2}[v]4ڌu5Ǒ^*݄KP <Ӝ{Zjȓ$ 6,IrgK̊͟D~ JJbwz/$9 mz9\noe%%]_D2;{߆=[φ>|1OQ+1!~Nt;Aq۩ENoZ2F_1 Uc7 "솹o" 'xMǴ:VrVYaH%zDTQ +9u%DOl3Eg3P%fa9DzE% 4[7ya*ْMGͫ6ۀ߇qU{I[u՗i5'mF.ӺE}@QM)U8EzG4d2TR~X?%YU ^iؚWIbmUsV]\Ӣ>Ow=+SS/ʌʹGRQI}/kj$IKI7#V_զV>{E_?0N:dㆷ32\l WC][G[*uO\?>EV:6k"!o6⷟1iYi dK?[q?8v4ؕJebY)s" lũqjMJ HNldw^7諠wǵ9_-dtf K4~TYn6@Twz@.zMVt" R bd*[U?h2*-G#ľoD5GHTY;E6_"rQ{'}f$f ͠"uTM.1{߂*ZCtgK*"EL7DtRy0q8I|&E-劖bYa`׈7ᦅ])mK+32nʨTXv2⣺2[n 8;.E=6WtpʭTMYQQ0h(I8-Nh -epUM0N62u1M6D8Ȉ"9vlj!&Ap}6sO7lqQ<զx9ߦ]B\X1[3$ MK3mӪ=.&_zuoGحWKMU:~\8Powdy@~LN^7G"HlODZ+-RУa5m{@ *wu]1퉼:|{\[*{PqDxe j_7lv*_B)~ȨɬBBuMN͓v0ߢ[Og0gJbicf "sUMfVշ_ W;?#(n.uiӯ,Sè2V22X8D*-q^FSYߔUY3~|O ]vD'DMv\-T"?y ^`c ^xCCn}.{h2c87EEDTT1˘*t\ Dј]ɋg8(KaRMz*HT[4 8_lʪ;*|*,C%C_2O cϺBYT鵚XØ8WjD}ӗ"iu]J6kb?u*< Q-*TN3N+uW%nv^ M3È/Wu[]za "D2z'( ZIE@fBEOI}WuˀF=Bzti[yP[iwAlIe~QSV+` eM&BާMUH}NXY-LCl8˒])x/^n uKk⬊-XSHQu"TP&{<@HMq/w}. ^oO6Eˠh}.,/bSƘkdj#F2|%q;V$}j l#J|MVE_D)*;?+-,j[w [n+q+N#h K->86"E3?O6" K.ֺbεMt'x˰wkB"PkPͣx",pCAQ WW7BLeתHE) u5_/LT0rŒdvqPЬ"wWF5SR'3/}¢$U7hu@Y7ڻ+tBE!UZtEF" #KJtNw!L Y-Og 'upjJY1%5"|s2*"IS/b?,ɚqQuj;[-U(BJ&J-#R5;&$ߞ{}$e _Brd8ۺY_%-UG2*M折쪊;:eJd=h !n׮$}lJ'$WU)QtD20xff)`'ORwrSV*͢W)4)*_IqZb-\bq@]'¨Lq^V_<_vGerN7_rM|WĊ[uN SBͱwVªUlpU&$%(׺ %\eƿۍo ܮvRG W~X<,T#jx\2<2:ZR[XTjcN8)ASwo0N6b*BhR]׽EUHʫ[| ][;4>4vλwb5?r^%^_\F`Kn+ڼݺB,:DU^pGX:s8Njߨ٧iu۽}xj%; Phi5PI$QvSmu%dꄗĺWV\(+dݕ8J}uyb-@UY:ħajխ58OTjĒjCC&pR IU=q=2x)y,GLMWum5iK˸nädS0!Zv%yl{'>Uo=B~閮[{.+~Z,]s Eq[sǧP128TG8jou+0* ). ̻~%}OΙdadש{R?G⥆t _ qz %mk{[mI|_.긹8I"Lx6lQ˄R#/]?++7MV)0E6O 3W*D3Dךٮ}^g\6&.hM8 t!^sX陿)3We]%oHtLCx30erE)rmxSK\Sii+P٣W\SeIڢ:hSd,XR+9F'KM٦BqRӾ\`t5w$̦KiPHK@Pr芻]14J3r̟>4ycj[|EK52IGD-92Z-K _{OR+u:j4rR_6I-nt[c)iQfMjP3 u/ᐼ ⪉.EJf9ܠ5E--xd]|j֋3}^]][%Q miB[86.8(7S,3V!UjK+ZyM؃^u#1f$T.oqlRhU P!]f)Hm@Ka'uۢ )7UjrLCZ&5Q`ADCD1ÿ8QQwE+5<9~^f@4SF'C(2pvldS?]G8F7o2$z^br=R-#2LGoє͚wu\V/Yy3)s+ԅ) ,8zm3"LUl1SJAiX})EW{vK[Ϯ+q":kKnA3Hx%4؝19lnS &|[1swhp&`SWK5wt[JFPυrZ[Q%yU^@*\KMyS/O,:n]DLRqשTwM e,P5"v\aiW %G/ . ui4NG X:ܟ<:^_ d0gԖR Sk-<FS ڮ+q,,PTU>h;RjWylz=cg5.O2mj(ƊϾTA/]]1EjtP=W&z. |[Y}GKZ7$rT0(,wOR+-U+8gy^-)1Io XGU̙ô8ߔ41;wڵZx;CͲ*9N#ψJtDª Q/]0vv "1/2FrHhНCVm@K"'ϻYjOdx*Df^R2_AE\1C&@zr|JlvM33P}(!N .K̰ǔ˙^&8li%JR3nI䉦zY ГP:Ea*ڵe8<*H(pX'#TXi&P2=.p #(*" ҥJ'=ҙN7-GG]:.VG@iD3׽CKYWpn19m02j%OKYDP"M do< Pʡ^ttPЯڍΝ_i5Oi2fϯנӎl0QfQ-/0.[zfj-1f˖"ʝ & EuSBۊ9y2+ ˑ'n@m MIouY\똪ժzȔ,!(FlE8m]|ff匿S܀bDɳWu%iU(j.wǛ28MN^JM(pǑH+.ؠdsVbhtQ$U tWBwI[!"؆-keZĝ0IU:&WKyc4仌Z`Q+4lJ*;wALUn>voŐRcBQ$RR8_{ .(#Ph>79G=in~wO4J̯fK8E,(tFJm /1E)GtISӉ"ըiF̔Ǣ_f$*c 6RMV[ (\mS~{\JoˎiʟLj A!mJ 3^a=[HԇF(EY8Р冠5sNs%AV]$ HEWw,c.ֲ3YVIEGm 8Un¶TT[8犥uFOz6]eN5/w%"pP|lW3Gy+29'Teq.ދ CJ*=pJHD%&j30et8%TYѝ9: ;E.X+ VeV9B'~ 33e*4OKolt!'r͒-t1;;:.^v4d: 3fH|N![Y)UWӧIs#Kwc͎<|c14zdPEM{{upjÏt& LpfWU\ Hp˱q|keNpzB$P(/bCs5#&Br#/DOU1X[$p&)M_^yN}¿SĹKʛꚐy·]VحR3Foqòrߧ\?OfLu)Iahsx~&>o\GxSmCN.Λ4n8o4HAۻqbnKjM{Bww^;"#ORAH(MP[F*P-SXB8H Hm->0Qfb&dAhtnԩ G ( FMXTIە-ٮ6؞)dሯ(tkI{=V*S &S1%)X"tT48uʃ-2Ò%H*i7k81V|i#I"u .wK-mpY`Aص#a拌BZrYlŊ'FvZz$ D'oe!D}s[ߚ i)iKުT3{T%~Mfڨ"h%F ig&dFtb6^R{b55Ky8hFd ;ɸhaT< $S c&ʷAɷ3,8LJ65rW[z n01xWW ⢾n(>\ BATPq>3L7W# JC;QaqY(sN|9Q8TfۙLnbl)\}Xtycf@|p\jH)d>HqN:ڐl>) HxZFmo1xvRD+b|ُ6 lMq 8*&ʘRKmUٙwy: TD["dDM ݏRĎEo)0 Չ7ھ4LG\.d@!K`^h.&S蛐^!'E|;Ʌå=Ѐ! HmѝW,J%iƏR!!]mɼ<ʹN"}7qt-ko-쫂N+J!ikUDnR&Amj B_ 񸲀 i[oa^i$&O%e^@[ldPԍޟh06ǓLͯ*5[JV[1fH6.}Y~(}v=ORs\_ӋFdH425oq(K,c!OsHK2ҹQ[qWઋoSIVN]da޶]lz.qƣSJ"9lP ,WeGc6(j-I&LGoa_/'o#|rx5-:5tbyqUU!HةDFO[eyn'S\qomrOzv~2"̣\۳rQ5S]_A|Yh^4-W 2{G{O;iqc4-/t< |ۦ)ظlͦ_tfQ0NqT5-]pvN"UvAD]>j-%qԝ e_&BFXe5M ~8l8miS:6t,!1AQaq P0@p?!&Lwm qp@&aJt, MCA:}VIu"%;hC/LgH ~ycvppxƏȜQaR+'u8LbW/l ԅr.'=/uCNޜd9Rk5w~ʤsL2NLA&x]~ze;pUǰM@n0jX5KY~T Wd󕨠 0`mJQ`vꎀǵk.Ȑx( oMNY T#:Nۥk9 @|m'ظ4l%xO7<}"m^dJrX[FA ӅɮH@`ׇ 5 k Uw4AW:l$MJ&Cp̂A<{"`sb vޑrT~!U8l8ONس>!0hݰIAZvq lY-jviXr@ ǽBR)}YO`m8\ FCJ54hJP4N3{A5AsP GS6hgkm3 Uk A[Z`7^J]I]bc-J5ڔw;$q7Y_՚90 Xh^邈ڊ ?&yxO E{PPY.3Vu,;!䓮{[3~x[vʩbl"췉ƃ6W2/&<)_O#O~g o@8{k}T ҝI)>s. `aH+ɮ7fJhűW 15 +O>2Uq%m֎$bCP+aurvT:#MPxZfm1:FDVӅr^+ȖgO",>rmPM\ZKS,~aȖa*5EȏVBA؍ڬ}PAWP.8<9Toi$\*F˪Z.P^Ґ r&xwÕjMv5/:L* )4et)vqVq JTjŹ"&xΙn K5iUy>N *Ox60+mTm㵨C0BtŹ^v6P(ڸ>\%PA@r<`xlG 3x20 |Oև?ASzp!SoaH<6* T`KLb AU0)b'~+ L|1KT) O8z&;(99AA~@`ܼ%%M]Vш BmI~$imlh EOTkMeeׇәQ91߯ZXj Z8&)SYYu`NAh~Z((_E ٫@'0@F4?lx-OʍZnlxchX̞)nLc2'rdRZ)V4G.1 (>Rr#BQX4"4hOxsz~r!faF'|iǿEG>w۸yC4.-Rڭ|oJ"G,OI I>IHNUμDe4hT K.ĘO 7fujX`vWh s?$we5^QKvAxM#M .FTh,ѨLtd"xq7JNt3c\lcI:(R1% r0Z*:g{g1JA|PBzG`V@t*a3R0+|^ܣƚ-lxAUWGC.PlS'jy\ *ٵXw2G\H`G#m)rQIn 1T}&*Sr7"&N 4h]= JXxvPO~{s6q([p"V7linRu{&Ci D^ 0if^S&p`5[Bb??Srzu}c!l(KH@prjb6nֱҢ489HR< ڽM08h*C~ӗ?{F7NVR.m!ө?Ău5gMNy#ͩ8G\Lڃ0jk4WLКV L.83?䢱#gM= "QCB)Ptgvy^v?"r=8=>9I 7)q*z2 7#Gp?Vd@Y]XAk]?UyPpWjV䣯 ;TтEH"=;>!W+$bsLGFPjxL :Elt3!+ `WCϤCh gٕOIHBʆ-6UdNr ><{E`Mi-nnu L%*OE dBW~ mq胘VFc٘쇳1&+]Mkm6SFQГ@jjr!8b|o,9`2DG g~~=gJ";@w+:qt sB&z %OXu|LYfI _!6knkXiCC@_ rob#aV -nkBE$r6$TjBH"hmU}F#4jeUlQ- P~(T!`ow.5и<,5Mm]*iÆ=fzkKb"i2ha&h϶>I0+LoNPxb5]bܗA (8=ppXGk$*X9ժsF!׉%G6ء;`e 0| mioj_ [O A.y%rDlMŨ&DyG6QEsL QI"V|~17S~Eٰt{2lUu4 mվc=$LzֳOdMw{;z5 f15cMuUuMDَ-Frn\bL/6}dr^"}.̵}W|bL`+$"). F-#ɯ81x,fUWb\ɩa|)&QXN|~D$l6,h隂~mȀ}. 1IcBGԛFtְk=ZѓS\NUBCXVoXiPE J+̖+:=!m6r)7N y£X/85neN󒳱F{ƊZF%+PVe&G G0Kz@,ͭ B2U^yy?db%6/#7~y>Rxb'SXJZ8Tt5GzS?*Y鯟1x}xNBEǖL0?5& v U]_4AkX6@iLgŁ_K׾x8c0 ۅ)sH}ơ|iO(`Lm}SO.t_.{;7X@`CbRŗ2?h8;+Y턿G}urFz?L]*|ƌ? 嗬 a).HqJsN&S򷏌T*'_&I "5p]{}"8-Fl3)XR<32H%Sj2(MP 7$P#V!Z: @h|Q,jWIR8c;Y85^j 5eo.9eZ@+|EI`  V> 3;W1[WTA4`0٤D'e SNg:Jcdд'AP fXc[+E0V02 D XfB`g:3!wE ZFED'J4ҶUks#ZƳfRЮ8zWi/uhDA&⊠60L&6NDiMZjt Z( i º1z ,@C+D'J0]A:?6j3IaϩdL t?`Ne{1[9AF{Wn*p".YԴh%,J9TG@KZ) !z6Q GPЉ5:$ &YiQ)5#>\(\z=HGy $5Ø䇽$`;"쯢>ԀHXS NAѭ, !đm-e: `͛&Ç_86$TX q35|ց`<"[&="*9̧b@H&5 ~}d)pPi]z5ۯ.7WYTR9҃&:4\_?Gw@_k%kÜgQ'8)eS 檚3lrޑdѢN ɇBgLDJ#B@P?.Z^k8͏ PdU qE ݖCA$Y9͎eoe8zN^(pF8&W4a`灩81@ L45\@)1Iq9Pk΄(LJ06p mf#g^h nJM *~Ft=Q[8*VLB5U@IIXPPCiawF$cCQT<8Cy0jq>m{ hh0m U.2Ѵ.x<Hמ0„p 6W#*Gb{Ap4Blv[5*&`M ܐ @HVr5jZ3}$WjQ#rŘ$ D`0TGNs"\@dB0ѱsD }ن>4+@7T($TmPV,s1)ɢMrȶ5ED`_c&K4~pQjT-bR0c\-crQ"ɡα*T؆ӂu56!!N IcUx VPs)WGARҥM;e C8_"$yOjڛ8`D+0(:uF :AMCy(cL _(Y՗O%d .PzDGe]#^w_ praǬp?.:]ŻxȨ<4~+0\#'4NDazgƽH(9cxo;Vg{,*'ȬwA@2yTVRxjkJaJ`bj0_ ˇp8&xu%iW`=imV XLMY)/ T?kfA)2Fgf5HKmHĨ('?- UחTa&`}SFt pe:T_\ít&p!x_>>S?1%2L%Hh!ئBb C>$T@XE,j!@,Oq̸OH@ta}=(";t  qH }L904-* ptـkP _i>";0: 5YES3$[I4L_ ġePa&P+d \[h> 䌔Qj0=jGDn8hMC LPH-80|@༼gt)3:O]l}7 7dWx-c+Q*IĔ4FDDcHk|pup k_ yQ0@nxnN;rS\H`gG u&J#=5sƏH|%!R = If]rV.NY"z3(4dj3IaϩdL t?iZT|o}"kV>^~.bL6G?` MLIqB֩8Eb@Q: unH9ܳ.5vⳜ|*št<>S M}m!\)ނ 0# tu$wXRxS(qbMq!YE轶Cml-cibpov*bGޅPP|Qټ" ]3N (NeqTP]bВL)L j%xȮT囊DΛc;`CHG(g-(8EPQ(VKn*x:$h۱Xc9ت$&o{~x/s>p% |Fؗ?*|ܠ rd"VC +5r9N9S B3qML(-(ʶFwYQ5$4ѡ5bѕ{5pnaD 1F=`*{!0UXbeKQf(L`qPTՕ& `!k6:<'P% {GՏSp#Bg'YFmʯqg4"Ccp!&1fr'/\LeYٮmRaS`CI$1p CA!8BJ#\Wtā%+R T 8мМ "I7fA5mI^.S&.ʏ |J4Q "q$zav&ð|쉣cfQ1\y,A{H9ƹ)#Nΐ m9NG&,gP[{9&QiSb%,ȱ]"[N済k)Du )Ipѡ, ۄ_>ȍHDI$QhikU݋jP8/yGIp/ ; nٓ԰[G"("x<[WÒS`8?f(m2|\Mvj54c8'hQBu:ց`<"[&="*9̧b@H&5 ~`\HkbTAjbpyiH sJF*YA $Gf)fMȻ0RJ׸@99 ܓ-!@T7!, 1v P]!q1Wixx`$*!D 1Z3C@r7t%A5pKxDap,rP(m!Eh*JCYJED_TT)<6mriPb?I&nik.po ʢ|pH\RCl1x s b;8B0Qt 8Җbk*"<6^AJA6dƣZ\ڮX.0b!IaP$ִm0l QEb k+3"aAqntfy-2.11.0/docs/static/img/android-screenshot-notification-multiline.jpg000066400000000000000000004037751462047176100265570ustar00rootroot00000000000000JFIFlExifII*12i:Google02208<(ICC_PROFILEmntrRGB XYZ acsp- desctrXYZdgXYZxbXYZrTRC(gTRC(bTRC(wtptcprtc39w''m_[7b{M؟1|][uo6ﯭx]}=O?NA~.~F w.M؞S|@'f}?' V?#n][_}Op) {3>O_|}}o~.~F S|@'=O/վO۾?V?#np) { oϧ'm_[🋫|}}o=7b|gir uo6ﯭxOվO۾u o>c39w''m_[7b{M؟1|][uo6ﯭx]}=O?NA~.~F w.M؞S|@'f}?' V?#n][_}Op) {3>O_|}}o~.~F S|@'=O/վO۾?V?#np) { oϧ'm_[🋫|}}o=7b|gir uo6ﯭxOվO۾u o>c39w''m_[7b{M؟1|][uo6ﯭx]}=O?NA~.~F w.M؞S|@'f}?' V?#n][_}Op) {3>O_|}}o~.~F S|@'=O/վO۾?V?#np) { oϧ'm_[🋫|}}o=7b|gir uo6ﯭxOվO۾u o>c39w''m_[7b{M؟1|][uo6ﯭx]}=O?NA~.~F w.M؞S|@'f}?' V?#n][_}Op) {3>O_|}}o~.~F S|@'=O/վO۾?V?#np) { oϧ'm_[🋫|}}o=7b|gir uo6ﯭxOվO۾u o>c39w''m_[7b{M؟1|][uo6ﯭx]}=O?NA~.~F w.M؞S|@'f}?' V?#n][_}Op) {3>O_|}}o~.~F S|@'=O/վO۾?V?#np) { oϧ'm_[🋫|}}o=7b|gir uo6ﯭxOվO۾u o>c39w''m_[7b{M؟1|][uo6ﯭx]}=O?NA~.~F w.M؞S|@'f}?' V?#n][_}Op) {3>O_|}}o~.~F S|@'=O/վO۾?V?#np) { oϧ'm_[🋫|}}o=7b|gir uo6ﯭxOվO۾u o>c39w''m_[7b{M؟1|][uo6ﯭx]}=O?NA~.~F w.M؞S|@'f}?' V?#n][_}Op) {3>O_|}}o~.~F S|@'=O/վO۾?V?#np) { oϧ'm_[🋫|}}o=7b|gir uo6ﯭxOվO۾u o>c39w''m_[7b{M؟1|][uo6ﯭx]}=O?NA~.~F w.M؞S|@'f}?' V?#n][_}Op) {3>O_|}}o~.~F S|@'=O/վO۾?V?#np) { oϧ'm_[|۱}o=7b|girtuo{66xE)"|gi_zǩLEĿ7ǩE<쁼N*=;$s0\HeGRy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORy)߃fOi=?Vd*ORԧkՙ?k$k8kp$gՔn=IԾPңA/ǩ@DD ip,ѓ k,ԚzOh` 0 ;NOҴ?$nD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@Tw5&Z+ &H.p*A4]Zt2N\& (@DDDALVZOhgb" """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ "" '0~YB& (@DDDALVZOhgb" ";fu55]>m%]<9!:6=-pss^KݟpMm`gk6j;u K@'- =:Hnݪw-VeҒ8bRҖR[Yb'O4ch$^Z Uk=.ߍCڥc dD<r3$9+ѻ@ך[e&=mteE%U}K26 2HAxE]o!>:J4Nk_91Y P8SzGWNyi֓G vGjڷiKYotsQ#4! H#/ȪN=u8л%t:޲+%['[-J V:[P<&pXв^nzQMQ;-;#V=UW%U ols3Dg-qFܟJg:*<\*.{qs=E}obsZ84`Vr/&7w9̅k7:>`3[Oa:@ۃ4vM[|#ZHjI }g.Ѡt+u gc`>u@5Bu%kFl]?փ I"] ѿB }`jAmM[A`ٮBSKAu7O, 7tlŻ^~4lĦ]ٞ{,:OXeL{55_Et况:nը=HH#ֽh0n岽vx](XKVݵ55/ֈ"C` ֌0Z{m˶a]b~4X꥞X+ ֞>Ao,鰦41|`ip>ϣf[m'IO_^jZO3Էj)^ZK9_:l0߶wtٝ.tݨ*&<1N,i>mggj:mQnl̊h ZF{M.w+]OQw9*e;ѱ8t 4rf肚kgK#" {ZAyf];QCzz+G.y atldq=tA qE M1c@w-Mae:wz ԗj6Jƚ6"25y,壙mk7_1'klO![M/USE!/AِZAk2Қw/`_h.;Hn[Z3-dmq9G%A*E I68 kZ ;nK{m3۪a6ungq9H})qٍ4$e ?`,/3[i=~I ݈S~Xz7x(Em 2Iεݭc~8oXA4^lq=;4ڳo幦A뼦w+s~ʉal4>X۟m6!t=5}[I4s{[71&tc,8^@DDD@DDD@D^qwd{ou}uԗ תkѹ ׁ}G""" """ """ """ """ """ """ """ """ """f:_vn]Ǧoi5fu\/uRtf5YdΔqe=f KM%S"6;H+ɝ=0S֔;ٶ[丝S +ys6~xzh;Q,{Iֶ%Vؚ2r+ٮ{sUGtڭIY$MNX`ITcukLxysǫm[*umōґmԸds_]79}5wEv^RM]mW΢y <,i\@XfQw2U?Gګ*$ ;Zf=NO8-g෶Q3zT= x<5{Akra 5DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDDA& (X$e1}~I ݋ILV@DDp7oq}i{잯P^,ցlTZ!0pSLƸ \Fw^ īڲQhe6U6!=Җ\`66:mO5 [YGqղx'g# k y,z;dTZWlKkǺکy6F y>>i0D߶I#vRQdkɌѾ^}>Eg}lv JcMiXPɩ/-s@.@2w";zIϵ&oU6duѽV,^Q՚T8-dAl#kxӺ 5R:H`ָ˻zQi'eԚGlQeU2 `sh&qFck  H捳C#^Ǵ AQ.my<<+ݻE=7ٽJi.wZc#9x{rX!*ֻj+ty kg`|URQH6)$#ҝj{Ɯ?P9HDyeAiz|mЇպH-7:iUj(y Q$/lHOY<4FC+`;Y;n֔0;z-) yv.#oЙG&{>Ft͛̄f7uO|aokt~i%7Sy4iIoӵ9u֤=,'v5=6>ٷwK\WmHZiNuo7*bwFf 1kerD9nYz\l^ޔ=j]WatKṾUA I((`ֈyвn~]j2>f .sUSM#Is#繏bګ\VLm{Kܵ-IWRn 23q4`jCHgHV=Ǭ,uT uh4M  ]#95qźӷ6MAQՒ^ ɬLJXN>2sxK oFҺ;Ի쪂 muZɣo_A#8<܎c5,WG[M 6YgqkOW4.+4u~d[mՏԲսA=k ӂ93w֗>m{-OlgC]+U3 ̥6ex?IP1; 5I?GX<דQǯGMuc\9,enx425{CA\ޯtVM5=M.sLS4I9&og-7{{^EjٌS[kJNLqK9`?I=CO *%k#cKvO`ZZړXg[l;*<$lT,.go;'H'HH_\ͧ{HRΤ}?Nɸ0dAK+͍Z:-bPгص0ꝭVu8yuDwsAњ*;Wu\U #2DrSWzvw_Bߵ׻]Jڍ SQ!"Z~`k1SG N]ntE線 cJu;u=]IV&:W4dp!M}'>Tix6˞x#.c?tBڻ@eX:K:y#qk-,ZdsnEkƣnT8ֲ0s$Obڷ/YOiWPVۮJ%d5NsXMeYV5loc8wV %tVZeа>vIk$ 9;Նm OI6>t4t\}fv8٩:Ȃ;:u#m46HҰ:7i gBDMGI掠CW#wQlf;ZN++j3,`%#Z[szjE[U u3c2DA45Zhӧ,㭻^1RS@+Y!kuK4>ǷٶJq ˭(*$.29=靧yM!ZQ_hw-kz1E,GHƇ5 YfshۀX[ˢݯPlzHLڥXISY jv2]Eϟ']Ź%N%[ٖٝ[ڦN94/ݮK r]d9tjݲo鍺Q#tsxk ~9x5WWG}iwm5]($h3.kk<xp&SvWlBh#gP jPOCST8%Fs$ΖFC{#ۮNf״βp>s{]8*vѱݎAISݬi+{5%`33@srqxGj4 )[ptpRMkh$q#H#,2?.Zٝ97Pi>VxSUem=dm{"6+ƒK}6cEoGjrgc٨hIyDDc(s.,mYΟպ'R+ L2ZFA=Cѫv.ql>]4=OPR秖Q_.7L"rH'_߶1;lzkK +=-M[8Ct%9qNPeW[lPQQӾzPDƗ>GN+RI^{Bۚz:l\{%Qk)xD6/{8pI-PZ*m(ϧ'E K^pG09^QFdt}zm=ix0&8bζWZI#j!iIK]$ZydwGO)͹ީ]-{{rY|ֻ苭Q[>*+$,h 4wZvo/߶KڿSE57U.ap -'qƯ#@kG\oM)3ڮ)ᐜHJ n;mU}y\(lt6HcC9 W:3.#:>Yڵ(1k9u,FYiiv ِHi%7n^jͳnC-uB2K$U--lPvD/ 7c/(;2޻'e]|XpUZYAofѴEv7ʛvڛnPjKIDX3F\pGg4اѷEEvmԺV{*(Gzx\#da 8tMm9ltڟHj >mdN2FX*p>>i0D߶I#vRQdkɌѾ^}>Ew cRɶe[gvVX\-R^!kczɜ EhOvԶjX]5D>lh.sJL=$jqӱmmlWE4I G.;yOJmy= *i$}U4:8.k}darZ_n&{u--]}5v4ni+zz&9ĥc_K-kۖ;>GwTZo_tU.F;- M箨!xHKas3oVݠ>-o5ti+wCPzKIAM#dtis,ZdsnEkƣnT8ֲ0s$Ob ivՖ妱tK=|u4ŒFX*趭i{6U%lն봼DRY SYGE(o[Î'.4{]+)ab7*OtFكEi4TH,RDck*mu؎3JjKhtF@^dg ;#8^zajǶ}Zx[X@ks&3j}׾-63Z]m9|vQ!̊>Gx ~6g.h-vȶA:O$ 4tG8skָip[!xàt.mSXkMfR]ehf ^48:p܁ k( ]eLTtL2(|*bTVXki"|1*lض\#yu&ﺫVg+mRacX7rI$Fk 4׺hmϖ5<2~6A-h|!gixH龉4mf./d4vLWp00 $RW˕귽xpf8:>&vEڣcBj+}5S*mP,wx8 G)6|b6 w;I+#' >O9zipqgy1o. 7u,kyªPܸ4}|`{g]!ʾ۽m;2[^ D-9o9m괶X*骞ޭh?7gк4;wa/Ww5v/D5Jũ+媚_5S0{p守M?Qex|S;r;FCU,1pDD]Oo?׽x-eݷm73KpS](cׅ$,OIڶߴ]rЛJ [V@ل1|QU@\޹{湏FDaUMo{zϷm)e~Ql{Q(snN$ѻtStb:WQ'dZIj5&Zk[惫v0?X7<ϕUFyлm2W #5:%-. d@\H=#'RtKj͟7G#FO3sM93G%ķЛKڗH~}_M:gSY5.FFȚH<ㄴ(,{Kٶo[)niElyմiacq2  r{V:[G+eNFDrON#h Sdc:VwD[ꭊ{[id J\ >:MIAk%a|Eݍ2xp 4v_C7IFZ qykfH(fK[Ql 8? tUmOlbQo:ahx_Kz{K|P˂G[GRk- pmm\XYOɨsUϒ m8uMķTԴzcO_5< k,zʗ!8|5hV7 >gշ)f:O]|QikOk,I#:c _zc,tz8|Ia壬YpXH;3uLkFS\&p{3ם줶?ʩM+wtpng7rAp $k ;0sa 8 %s#_ݵgU:. 6?Uޓ.?ێ]\Al'\z.]G[<Ƒv[e r⧑x? woa(m7݇x6aԷ^VR45C lsr!OQ i?tuo_tLWG;,OhQR&mgQԣ6zad=eI]ShEնj4uw=32hjekxPwB ɺwدI w{+.v WLs#g;=o+Kgm{KRC{O ~wzw|vƭ<4f.3TIJzyckf{z"nCܰ(Cl .S͵YrsSO%6GSM9{k#˚Ƹ:p\46';ML{.KDӎ͛Mf#]v[eFhhtm˴TC|ZUG1<8v2Fʶ/wU 7cuw $^[nIo41Jz"5AΕJ[@n!¾YY\0}~A<@ -+_?Nhp`2L'U|,r|JV]o'nlOQ6\E1S5?Yd+jt՝.dܵ5 ;8cH+wwMPSC﨨dg"H9tRB鎣s\0kkGc-WcVǶ9q׻g#SQu('wR 12 #:Picݿtmj-w^ΦeSQM%K8j'P>c-@nNއSܶS]K8u 0:ՅNCarRD֥\t[UzO[aQ-mS51.-dxX%.AޗN?F6{tf.8:S# E|N9}! q$ Z旇/N?IFloҧ~XuWA[h4I {(q1k%-w{RSl-Uh-H-no,3逑5 ͼ^ww-7\ֲk]g11XX FG%4 hxp.-t-n;*m;͹;SCzuMo-KSCTuŹ͏-?17߾z{7uٶkj.. p  j*f25=ӎN1̓ 4 .Y|w aH \>Nd޻</9d7m3% TZccWm ULcȞ1H-i=wl{h[ hVPP]b _$e8}\.`_V.9\Sh{.^KV],z"kқ|ubIÞM#Ό\@e9Oܝ=7JWM蝐]54ޘuJwVDN'/c9ᾎStQ]NMro&{c5Kvݴ(ɠ6?x6S ZlvZ80IOk_(Om\4;QTTmOf̉6ve’ M4}M<s`vS<:7}Զd=_;P1VTSJ]D?8(-/'ۤY=߳JkZ:5ϫu Vyn0=#)nye%vIs'}KvvIX6<yu {d09Ltaŋ0 nջ*kQOZhf ;s|VXحFnqkz *1 udCS "lw.^3!:k:[cw aОX( i H |m=m+$lz3F2c$gw#wyiڛ8כ%âs]ysVC{԰6O6PXk^ f̒3;k/#]`;XqT3M3?h(%hY-V5bgi/I <9>w1޵5(Cl .S͵YrsSO%6GSM9{k#˚ƻ\wL%i=ORM/, c,yfqeilObv"b]Svg6GϼVDX|@R1^Ӻ>/?byE] s{v7_yВE%.T&H]#*䩐7!Y-Rn\EU r]>88ŞX";=n9f*{E^iseqtIpSxL'ˋYuߏm1]/X=^:ma}SE`>o$@O,,gJ ~R^k 5#)mL=t?kStQ]Ni[Es=9% I%X]نW]g @ 8XH+}?6zo[uJ T\gF35S0YpY ½ =0\Hm"ɴitlz*JGQ-uS ϙnFG',fC߈G DOYm k{Bޅ75m\[Aox[7c{6_=I[ީUZGLz@$7EK7K$x|׺{lqo޿_Y]57BEeh`7;?6llo $\`o~V#]v˾Քvy4]4lkr 'Ff./WU}mfvN&hca-O G&ӻ5۔gm?Wm3}g ڻ@%ѽO igLJz\-my}_apw~65ζxm%Mt.J)㗌7`cKk;}=R{4\ӓϼt4:ʿMZߤݢ9eIhE;8.el{u((灼ωQ~/Y2φaa&yw|Ų=69^4OQiqy$"/ x>G>^Kwv"+(""" """ """ """ """ """ """ """ """ "" '0~YB& (@DDDALVZOhgb" """ """ ޴>ԕlZB_sQS2&gDžX5C\Ϳ\ten[Ȁ-}oܯJ[S*{>g9rkZֆ0 """ 2F=pdv t{jr;=sZ WT@DD +mn;wWŎz31ه=֩e&7qW2f <USRQSECc&v @PsFf9ikA t͑cLcEp~pD@DDkh}*_x[oW.i!]11(4K}u,s+Kdf5y" ӚbzkOۡs #!i>$0\}oܯJ[S*{>g9sDֵh bi^n)pUB.˧n;cz*fDj::0GK]duq8㴟1|6JBdTݟQ*Eωt;δ.;-#o \6a/`dv^E> 2c5==Y]uve-Aln)a=Y5'Ưh:@,JYS4ʞ ,yh+Z^hi _lخ{e]M-TG-{}`"KLk;3ٝ`4ŻBVT7Px"'Y=8D@DDD@DDD@DDD@DDXv.ɶ9v:f'ՊONeu#}"H%s˵{?`,b? """ &+v-'3[x_IտZvi/'p-s6Ҷy m]Pi:ZvF$.pk֌@o @JgG=3c{ދOiOn%9&KpHcϰ6:z-ߠ=~?N>2-qګǣ,rSZpx^Ì9n]mq tIkc%L:-1ǫDOT*(Ü#9^NʽKkR-__u JY穬DaœˊGs^~AMK--NUOuIzcONMK,@+u[WQ.yXݳ¿tץ|t1I(h=UJ!$623͈n њoymmKԑF8'\skOID2C i"U&-}jAwtRutz~IQm45qOWŀ^؎;=";i;Ym2Y]j.uU<by-yd863g#G tEvcm#GO$Nؠ6gaц6Gqdέ IۍVɼ]?w殸^iiY$a燹"wއ_ѹw i$#Z2_lu sBŬ㮎O' }k_JOlA7~Tmk%m+/QSNȣ^g߬'ߛT{/$=+/W3IEX@oos1Ϊ-kxHw'wk>CCjڦ~Ԛ^ )a뺠9k wAkpm[j.jjal4,nk AX4V.D6{qK^c;΃wܫu ܷ˽Z+Ŗ4<˫|$m..sZL$s[R Ϩ<ΛKk; ش͊ARbmM5%Ci\Zі@>z uvf Y mK]i)|LS5G{+Oj=?4Ihv˅;*(.6MLNlZASyݺfotKšA7#T4-%xɀi=^ٺ-vt4؟)wyq1^$kF],;]p{s+f/hpeƮFP{=,w޿rmDN{U]?nWC o[ r]:;wлo/ij8=tp#Yf| `Oa^ ml;?i:iuu]`]W- q$oqmD1$MGAj=IF¥R7)lSvQل?H7Zo|ϝrqwh+l;UKOQ]ou2PEsG\qv~˞ދD˱s'QTXr\o,;UmzAtF > |%p D֑?-hk;#va(*fjznEM;"zjzx)'dJ{Hp#sMCF־un/G牄2P88Ǔe}_NMixJ^.:~O4JO=8dMlm=lgw U=6ˤ }e<\g㗽yWJD=:VGPo,c륮>&yֹu(3Ri6-%sbTSMIPWezM۞*7kQ)&cVT/7%=Ӳc$5S݅7I|G.F >`2)8c$3/wW X"7\Pɕu0or0r9aysrTinɭ&R5gM;Ƈp&vx;lCwBy_gvSZ_yO![oS=}E.c]Mm41:HKJDҺ=?ɴ ]7oՖ-&K[uq:1IB3x YIA';-w]e{4׻ NҷKfs[[ `l} ɺ>%ؾЛq>;Oji$gdU|SѵsPzM`lwcU66vA->j0ysGG0Θ[mV?˹)r܆Mu&ӗ(uǨdTLIN"pGttn߶}ofzjᣤ!W-3ioV_׿; 9{}me[ѴN^6tf@%caxky85 /nɺ}}f vM:%-n:*傠I$@1-A]/&״϶Oԋ] LesQb as݌FœfsJWjemOO_>#s1znݺ`ݿbEQ]YQrӲVxoi 8ς/Xڶ46ŵ T[fp$MFfXG6($PLyAjc+tkS]oIkf_g۪RH;Y1Fǹ *# pXwd6E Q7 9^h湵n ѵ^W m@iM:PŨz>NRZ֙Is[pӤհBoIhUn[w}3XzfFHoo20r* -.L[մAu}.L(,cX{¯Am!AVmGn;IiM;AUxMㆰ9q=ǓX2@iQƘni3"Mxm/q`7?}s9qawI:/Ucknw-()!G}7_W(RDIYei\調mUQh(4ܭS86莰r:.QT[(6@q5dv<-p-/uA܅wYk}ϝlwYk}ϝ&6 []ڦ;Wi ;I XK!`搀Hc@'Q)=qO- }d:95kĀUS $`=g_n}KM:+VPpI-]CXb5נ+qn`лAX.:Z㥩͕SRO?|EL.4U6x%k1vC б=mbhj6M#Muײco{\{\ZwnS|Nѯ\$ACn_q{#y$վ{l(,z[#&\Z* l, ٫j}#(  E]V%M Y B|Ro{C%AsҜOmYSMU|rFK^=`3kNފkI].>K%!\8dmcO\烃A_CvgPW~ >!UQհF?8V0fwH嶽虹mn]IVXMTs:Wӊ4=D=$Z7 Qf>E8Gsܪ֋o=sdN }ŧym8Gé\dEBaR\sAAaK+w(~ݭړN4|5RN%u0 /dF!XI~0@+~Nmץ+hY_WC\"^OFÁˆk ϛti}Y/f6t$3. c OIDӂCqT]-[\7#]+vf*299޹5m4^EήC}LRgqD Metm!U:; 掦UTgVE^~leǑzmruz&{ݳ}lEa4::aF`d̍9#k\]ip-];jwj-]_4EM7n3tJzs9{0$r;(7equ^obVjJʭ]kd͵AHZ*$yl-k ǎ|t .[Ϸ}Kkp ?_;顖89恑 #%qYQtEcR뫍L~}Q]o9 # rD<o {aOEໍkmv=çukoSM#|Np =dJVcs7.%JMQ T6Q5,Zx&{dG$8a|ݻYTlh{Zo4s>*-3l ix^%H Ar+dAwjHzڻ7 c KRinH/:xnM9fFѶSMjCJ_9q$Hڨ 5c;uwsgD.[qkKtlיzRQSoJ#nOWD5]Sѐ~AMQ]4uQgV=#*4@y?ZF\O-?lQRJcwI1OqH2=ԹLKFe֫MQnm:ndSqoe29n'ѧ-SchWɡ[SSd !v;.!M߻ttNcmY4H+(SNM88.`8' n.hXz*|mnv楁7>AΙu]##`ĸ%ǠPZqMg~/2۵ЮN. |Uq׶&ulpgo;=ѣèi%1,t5WZIdŽ)FBsY.]({p}vmq:GX*#X߄U9^5+ 7ؽhC֨owOiXiO&XdG29=}{&d$Z~Mj-(:VWI5L98 &::={ڬz:;Gj{Gd:Y2ߚ߾/GZI\z˪gpVкH΅ҵ&9 ] tm} _q٦(z4I>CEm"(,YiW[7:"v"Ѷ]hUႣQi덶 sdQdnvպ Ş]%T-Q$sFᖽi! A^=Oo3o ǻ9h6QV[8OW)1TqxG#5me;wڇD^*v{=uF59u'?|sOLv΅۷m{LlmjYql4U/}yDsÃpp9_wMEf{YޞoS:*nV]]G#HdϣFDN A+~TNmhM;\/Zf w ^c0AyںEMƗg[U3)DwG 5Ht998Ϣ Ϻo*urj*r8/`63=sSYmʊSk劾M --5>'A1#սպhfjv-vwkJkњI^OJ@qsƸmWO6_ʎ^Tb 'tv0]W%krsIC@ݳzܷi~ͬ,^zT玚\usD ~<5YAiu'KQSQ(dq1.{y5I< UROeڂ[#/ Y!krEl.{; 'ԷzCqcQHMK9|fBpbz@ iPD^T>Ϊ3ͦ +Nqʢ'g=niIq :R]g2k&88csţ7c2b6j}t^AnQ\j[(|=KKF3yo(egtlGhՖ&4Uϒ([i="Kk53p7=mfl񶍳jlZbNiFSF0@QzMӛ[Gi4⦦zLfdwp-dda ~˩>|޷ݖ{},:V7z_kS; $WpC:NwE{B^mvmzX )*73[.,yH{+t MiA_iM=%Ž1x+% ixv}ސNmVm{c{XwYkW-KҾْx83{b.'2" """ """ "" '0~YB& (@DDDALVZOhgb" 𿔓 A7D_GN=;moԚt]w\!tǩVBܪ>״989Pez/ߢg@#طMɩǟ\usHGcŞN5%E bl0y1hZ 畁?+˨< YSpF hVzhO_'uD>r7cOo[}fZZPa'.1PVR9sx-k#! 7w{{mf [hp挐@9H8sPq>|]ʶf)QY6zb{eDSI "$o|p&jLQk =}}N7 ȀV/Lr.WGZӔ3GLɥkDM.h,${EFa7ouH_=-3`.9'#`alD-`\VVmi'e,STWus_/VH \Wu|kv}=ټZ{E@:6c#8] qF٘βHWq8pdj-n!pxMU꛾{R0jinl,!=DI^{Mۍ]n-J PXȍM-e,Rı<. ɺ\7ֻl[m&ᩴܶQ7QߨnT D F;}ye?A^}GNL&욏W Ӯ;0َA-n 5:<#K}iӢIll$Z./ךZFӵVʗ6Zk+cte Z\ 7EGFKMR]m[@2v5 +O W# 0 ^xh1-G:å䮛Ac28Z^CE<41`gE?׿ߓcm?gJBZɨqQ-$9 .2 q .Mhg=t42ێ@%ack%i p\9/AJϥvsݪa J,eU:1 d1Dߟ~=nwԻ.Ժb t.z*/t5 Ec~kLT2G WORzDsْc E?;U |[gJtko7vnս [\o:b[IwY4҉?g#$yPJ%bI֭GԲj[é[Pyq?s `,o55:h`Qyq7W5{ѓ̸̅čuwLG[~ڿs{ݶI=Z7sU:8X榆b@,qs귃LWO6[\6']`wWHl[Q ;Ç^sCkǶ6w-W5ngv#'9{\ӂpZA '7^ӛtjN؝NfSE9p0eM3֎o9gn޷aeo^CQCE4UjEM2Fʘ緈AޙVW ΞJ]闧Z4N?F&4|J{eA%U]dMsqkA%ho&c;`OF.StmQ>T[2N]c9)qFﺇzmKK*+lOrn.c]'_v]'$}+T^jWjL֙{x*d9։%)PJ%bI֭GԲj[é[Pyq?s `ܶMeHԶϫ,5eT1,%-<(s-;lu\t,ܭV{tV.RWSK,W'Z0Ψ Afo7PUC%KecLJg^ox=6{,5kjuFK,fEhv8],ߤr ;ޫ݂zQX/P\`x \.d ɍjzmp5nUVɴXژ\I.s&xrG;k@Zjtt'Iý&CZjZTlaHLZq1>h\qps}ΙOz7oRzfYҷ>5e}-=LR×1v mx/K/A K~vK涺)#վ=87p-k=cVt֭Cg&sp_OI bG5rinczqw4P~uuM5`EՑ789ssaXnw i떈Ѷ?eV0_ Gӵ;.?uuQ}?7w:yGv9px:C:wѿ ͠YI4!jMY(Z X\#d|1ۆ;}]S;K^GwEn&]5}$fwmz;[\F$SS9xs4>C#:x9O(#Ve>U~lږQe## [1 1znz#iޏ4ϮP$T>B#5f8_:Xtޟn͵BCim&X( ,.j0APk(Gn v1$YONS{μ5z& GTGOKϯl}+%j\:Z:S[T>HhًD:>9捎si$=.`Hv;> GRnɴ Cl^YWu=HnG%nGo{r84݋Y魢ݳ{yvt)#{1Q2O6ZWleOCmc9jj*&wzIsv:gztF6WhK%TG_u%̆h+894mzgcfZvk#d&951-|cؙL/p@=G]__M:X53x?4Or﫴Nɠ᪏j-_n>MJv;ux{3OiMM}¿gךz(,3>f8\ $s'ZVKzRYtnjIQVUYNb{=9_~݅tu[W[EM֍oMa-40E,JH&c%O,A{;{N[~]a5|~ꛕe t}#$UTQxdsK h#'!q9t}3ni8?Ik^_i6uuKbLr|>xI:!z:}Wqꛝc:JU=V188i8szP--=653 V4:JήyY sET 23.vcw.o3tǕS*0]OZ ]ZGh[ɭt4ٗBkʘ|uQKM;ZiCkAkv5j (%eDd<ph"<&OLv_htm'cwi ʋla1|͍E6WJ6ykY+w3%_>Jˌ KG~{WgkbnǤ5TQR˘rnsF*i'X?@"elL]m~k~ՔU@$5Dǎ4Dyv/b()㣤E"6;4UWt .,՗" W[<_NGzk\Rl:" ] p*i^y|'{lg/Un{sKo27pƼz26F<6F;i\i<}0Ov[nqwi+zrA sMP9cD/h,qsïm5m6C#Zyy/sE/yq@$޹i&[XՕ-Aq .=x, Yo1?LN;eۉ^v)|2k ֦5QSYSOOB5 =fIo#Mw1[}6k;ꩬT}4|2\q'Bx[CBQttۧuǍ7dKGIeۦ\ZEcquZ`1UoC'Nj:NH ekmY|åk oI4cHc"ӑH4Ax˧7Uiwx5G |H{(%8F3$46>Obzoy}oM}NYm=Lm(\oYq2<7!GĞPE~խ^w:Ia4".>s'x9.1ɹ*u wHfcGW csCBtuӁ4S|7|k/u5vˤhc槥z9tt}4?G/ȔXBV^4ި[fXhꦷ\褦|1)b#IsA+ yGqg-?>۲o%>=۶5ƪؙlneu;ȱxy\apOÿtl4`5PjQM=,O>inǼ9M%޸h\lܵIOjꤜղ3 |.'ts;rt7daR6TY/,D7#7#7YnŬwnqOi]mX\ ] Ǩy率[i +zMP2᧡ѱǜ5pEZ;sAN3Emp+ٴ%QirGyy:jzԒC4LN[I3 k1-}5`{][]sPRGJiᖾflL&D| 3پy>O[mZ >9zVphznw- ȽؠW8OGDw:i#b?c:c`+-;[-4~{r8sI\Gˤ+~{6~:ɪ6qCNiA4Ԇ7 fH:%zFΓkT~ڵϤjgV@3{TA,i]7=1[h͆)t6Ӻ+ꅷpX⊚i>Hy/SGWtitm[_:)5=E,h.tt1;|OyhF_߈k]\uݏy=tߴM5NEguv _41p"0g5ؤAeOO_|j)Kd;vһk;O{NkU'We[#0Ñጌ+8[َ V4>QJ&7ٮvu_B߄ Ke&(Rׂ޾Y'ccY!qcӛ1s&Ssxo5ttU`D@t< ޾QGE^VyٳVR_u'i-g5HV{\ަ=۵B 2je4uL A^a]9;`7mEYejM{]O_ E@QI tPx8Iw>`Q췧W˥(v##F, 77wf<ŸG٣aG{<ۼ0Moýĵ~]5-RߠJj;\-o(1@ƹK7N C]Lw1%«cj}atMQ߮zvK Zʷw Ms<-' ܵǓ=lGM lP ,MQeWV1Άv5#s1)Қ,m>/GCaQ~-E6/C{<4{\9l01-hH['w@k͖t^{gN7}9~i٢Y/h)k*,28zP"gG~.b$n7]?+nFtIME+c(OZ\%8OD?`,b? """ &+v-'3[ [v޷}mmސ.M%^MQKX,,/sMxٵk.WQ3zJ,R7p &T>v[:>vE5&uKedlQ䝅dP$T4Y`o s->v5vu+3mi78.7IEnm%,gQ#>{sEl?b5鳝i{Lj,~G.%eDDD@DD3%?+]Ų-m_{b+ݪ`B` f0ehJi80@vplm[~洤ˎ暋AT1y1MpᦥB2/qҷbݯlڢ[wVvtuTlsbxsp\Ozͩ)㤤E"69ri=I/0~YB" "" _hgb{@?|&:z͠;ӦeULsY +xz53\rG {;_{o>RO6۴ i7rW?CQ+7&c@TB <-u=6wMO:깄TZh U4!mt>pPCtSKSe>9cp^NiG" HD&nʬ \7%*z ?2>0Q a~M&eY'D~IZtJ3j{n=̚!MqEE&~Vj%mqlPSBƗ>IƵp\wQѫe>V}zJx\Zվ9Fq(:Z;+3t:3bZ׫YLj5mh.t\/|U%)ZHr/߸?GdZ|ʋ=7(b\ ib7Շ@%wu(z]m_5&[,(Z 2\bHYbHdcF(=D!mݶǻ5+EPX5A 煬@[;9s.J>Mz8t}[_IM[u6=5g˃G20HY 蹥*ckE.Pؠ53X\@k*&|C' 2K^ߥt՛쎮[4} ]eMy;7JOM>:-v6{=Q.ZlD HdnsDĈo 2*cckӂ220}K% no}i 6GS51h;,QF>4q><9v^@Emŵ^ɵ&m[nش%U>I,y`F׹<Ш'z%ymI["SVꥥ|B9$k43Hy`o]7tsV[EmqL9F kp摒wct*EeM5U22IY@dR8 AamKo!1mM[fjL*E$I׼7\3xz)svM{U[Tm"otoZydYnA@ Ezqmٞ5MN)!|GY2kK'nO#H {ff@tnI;gי-⮪3`MnuKfMr.gk5- XcϒGր $.c[ʻzGHm#YRY&XbbuP9s#{'qΑ :D6{Q-6m2;ݖ\-r?< dpw \KHQ Aav*QoTm7 uCb4H5%s{n>U7F3EYWGQ}jvPN #8-E:Z.%]Uè-¢BKG[KsK{I3g#Zї8}E=|n5VlW Q\jt hio'3j'yfqp-VݙTMu)jKIaqH 7{Z{JQ2M3f1VD848H9qY^]՞PF݃OoE~udӚA>X) 픲($1 .mInmhNO[#a)&S xɌsrl~VGEUt>m&f@o?u7;b"7qca[즃mm"ߪ4-987enGok\229"/ _(kP齠jƭԺ~gSOtdc&T,OER 54 ;t]񶁹֥zkXJ%/򰵮.KH9F_L>])׍khfueURD*YTg=D~C7z MٶGSc|Oo2:tMX)^B%K̜EUw`ܳxiu1{F}+t֛\sRYt,Ng 8o>}BoW5to˴Z͗g{Ej_OryhiiØ**'r32䃡輻Is+m* KkW-(Kq 3$sF@..oosU KlT:Z ( sɭIA55Nks^]m;Aem4`\ӃIUQ 8sk9Yaџtݮy{n.ƓmPNC$7,R=g<{)i-/6cmYiK͡Dsj[,}cNyYZ wi^60_ ;hj<ޚR^ࡊYxKw9-q8i=bMSi%qplUA#C9K^45$A~}Һ@]JmM<TTt {&ys['=] 1on \uIkI_f:mDsxF2 }t=+ѵc'lxLϩ pc1\kK_ZW:Sim|4в+#ւKzkm^UgFuFѶ )&ts_͖:) \AWQ \FqLhHwRv}q5\#`X&$p21c\iu Aav*QoTm7 uCb4H5%b.imʦ>Fh>/ZNu^``r-KV$utkuT\~:hIhxcpi|Oxi 8C舀Ao_?G[)jM7|1B $s#]v|}}ACY;bj-3X\p:RTLHˋ 2\(].oamƶeN,uLW?PuwيGa˰F%n PyD߬7:zEm$͒)~s$cHs\p$A RiufR[-vY*74,is!kZ .'*WeZ}!_GK3,и'}]D/r$83Vq^ћuֽZcPhGp|ms{ .H2@zy':Am[oZ@&~-^86IӐ9.kʟGkZuU3c,>9JJ˜ ]^ږIښ_Lʊ9,5̑i!sH AwfT_m:[[QyzZsD,.51%ǭkMܼ .ǹôV*{^OOlSKP$0]vHpr7K6wKtlI>ouUsks_00zmgtp|]o54V= ]Uql0R|=I%zkjUFϵF:CiΊR5K$$WY˘A(:pHn9!Hj6&}mFG{ӚkG灳pkiq Aav*QoTm7 uCb4H5%b.imʦ>Fh>/ZNu^``r-KV$utkuT\~:hIhxcpi|Oxi 8B-v;Po++-N-j 9',dOdrFx\q ]o5M7 YAu]ҵ쬞l{+^S5Ic/lBlOӫA&zZ7s+m{Ϥ{=;TU<ݙI\7pKN淥pkhILP}Ib@?`؀m#hd-jzK6[]k 6='pI\D%jjUS` 1gSl4T/m yzaws,-%lMۉ07beDPQR;8PǥOh{ .vy[%E |cRzdoVyesKK# \6;Fw B79vu3F:xOgJ=I0P\)cxts#C#HkAXwһ4JXt&z-H3LhYk礸 |/CDl|@ ] 3([.ss% scjyʽ}WFo_Q2I8VI<Z԰;|U=uA?d6^wiu :"qin2!nmFjt&}_SC&Դl/`lwki:8Կ%{?p-6j٩56З]C5-=m,TTz4'Uݖָj%Kj:cYte˳e[=MtϦuu1IHbp^E~]$f1bN9@^Hj&&tm?iIayu5E_[hߋ{dgcAȐ~Hvj>NUa-Ϯ VtQԎM%#dMuinMlSh1UHi"d ֘E B⯓ɲwv+WQQkі ]bVeEO@0Ni+ S o;QM3dI룑iGh(+n_]D!uܗ^mwg7QZj u-Ud#PÃ]+y|8۞Y\?UguwoâxSI,zo[wg)x>?viGaZۖnյ5j vj!;;|t{$0k%HS\lhkVyQ;) 1,S5ds-S1:x]KMa⊞f,h$4 /c nZ1;I>lvn?amFfEe7J::GMfS乕mGfzhT;^lآvc΢ĐSUPj8e??q lv-cЖ]YdٶmU]ERUҲH`a;Rwӓ/,u7J6*X@ × , [Cٕ1žz[[@Z%4Ao^KKӂwQ~6%^Wtܵb{=t bKƷIvI'+tnoq`/}UQoڃIxbձ0/ii!vͲ;Sj[skN˝3Lg<2.75 '{RK{}Su+,4c5iߛ16shikJNvvwͩkw`wˎ+!e@?57$J@1F{ j=j-Evٵ(*)eru;I]kv.kDѬ[䝡ͦLsu Bo˸6ۉ߶7j3d4zE.YT ;*fp pNsIcGd ?E點'Z[5kimMᒞÏ.5 Z 7=DWEpO$#㧠a˲[`6}i& |mzmY:ډs<,nT{li{I:6]$?jÃ:GoYY4EžZ`i*gڪJ4HW< }?uZ կqXmMUds̃z8TU,X;Hp?~)$o~]ۺ:%HW]vl]m~jtJh(ۀ\<{"v-jtG-i YGGz:H*'dn*w#k h[u'[y}t.h4KQ]j؃[$FG.dl-<{x%[&S@ھ!̜SE@V۽dkQGV*䢟>]f9/7y/wM}}vu Bʈtu|4̓{; ^j砣h͏Glgij=E$Q 0KJ*9w>%no/fٵӬn \dh209̑Y-s9}ͯK~ jNw>AJ0Ē rO2MOY?ڶA! M]R^XC'.ʮ5ya3OL{k{iнuךOR*C]L]F-Pqla Dƽ =)I>݅MZl+u]]nO,Sk,{Y4u-si{%[y kLg=%u-[5tNR ϛ7sǤKra3OLџѷ[{.}}Xiku>⚾U4-G>G98D G.q; ˭{ Q ۿɣAþ͈lrMuCtiKw8êqXk$ 8w'{Yz{/F>(z6yTݟo*U*gWwIyX%WY.텤J;Op=0&+c8˾nնmDAGt2oZA`"7f|p' [OGan[ei'Bjork USictfdk\OtgJ{c-/Z L JG@8wdi[g}E}k⢴hdptϦ|p3ȺI_mx oažW,lPX:VnTRCv540{3)81õb}9nK?IkhVڵ]V18wsA\ S;7olGyvF3G #atT\=o`99۵K6Uݦ#ԛ崎?ܠI!&xt*L㿷NN!N}fâ%G4.Ӳ~;Vv_)bk7ڿr&]2*GgHlo=Q\7! y+k ҫAn-=k -2F& 'c6y;ߚޗQy;ߚޗQyRPfj-;Kl5qQx|]`-23׽tWc ӴjFYQWjzp骦{Kݤ; QGqg-?81m|mX7vEZnk`*Yja66'<:Pς;5zʕޗVlғez"%^Ե3,9ᐵ `#G6;#WDOl;KζGWM6SJ:iCf׵4U17UQїc2{=3Ыч=):-~ujCs=X66=&8cHsW|ŷjٶ4n{2ٵMNdѲ 6Y` tu hqpk8zŹ.t=~t}[&4Ɩ0σ8w9w.}]sޏ NZ$~(\ˇhA x hA~՝OiZ ΁o.uQ6diW H> mԶj˱=,n[ds7rs<׈|?+PfWye{wwHi?zTjRݻIo{-X7o׷*[&nDq3nI时2.|G@33_yƍY<] j+`KM-iѷ-?%-!U5KTI;yn9N ŶgخͶi`Gj+/u#G? 3 ._tҩ}w^Xed yi馊:([j*\#ǤI^ɱy-G4h Xhk)Nxdhs$i-sH tXkv ݆:Qe{Akx=%&E u9q󓆀}| 3e6.Gxwv}yd.,avbW-OؖNUY9.-L+yd3,s^ ɭ?nز.ߠt7;:~ w S2٤Y9#$.}wU{2c:gw=KaQajϋ=a# d"iUCn9}N{u|@7>@M6ɺ"589V"k[+Лָ򘨡>u9q 66 3?@W6'Viՠ/瓱/" """ {?,_g`D@DD?$nŤ&+v ""(ն4/W_*,=ѦjJ8Ow  Evt͢j&/jfg!2H{r]D\ս]==':=9IeEl:6jy--#ZqcZbn;#p݃7yM:@]5UUKĕw:$J5kZֵk" Qn*ڶN/Mg1 4㍅s$#p sy78e7d>Ŵ^U}+xb>{IR0C&kihh[v$޾˽MMnw6[*M)LtjgJLO([-U]kYoZ)o aoaio,vaT)uM}481匽v9App#>#uDJDo}T˚[ULde%U=L D×o=wE.M-}t7-3ju=E,4du5ufhV0|!kqo}Qw}]*FSJSC,R ͊)#h{]%}%3}w.՚3LbUjk٘FKTb #ZZNs\ft}kFC:vjgaMuagXoSn1pYC$u 1E2I2>,E,3#FI%kщœs]/=B%Էxc-emʡs=n=tUNS6ϰ=af1CPڃ#9c$C^7ʪޖF |^kxGWMOUMd{ +*A kϾN&~lvQ|FiMSf7cusio'n=z7>;kb}ncvrYw63R0ZNA` 5!o'j[^u!Ui-mD0L敤M+xK:$ 7b:u͌ZUmU_V/4/]DN-!tk;+{qٕcP]tMnۧ Ӄ@Y ~iڶt`]Vٖߥ&>i;Z Բ#Cx[z<^{v{٥V7UVY!uu>rMOvvYk V>~i+X4awk:N:,ǟZA.8\< PiaWWٮ%-k[,OO,S5s,xcKk{f8|ΙZv+ٕ5*˻hLQRg杕u55`$7>8$vmt{;9EG!P,ӚB<,,:k8wS`{vc_WE655I]UMDrI/ K耹]wFXV?ןM`7MEnͅ4T6!1WTQ:[z8l=';*]EQ[.Q4ux詮$aF#H݌58-!7;wm=4?17E:ZA6CQ簑GmCx7 De7طڞu uD:M_(tݹc"Ji# i efzv[-7lTڥ)]ETaa>':7?sq0Us'HnZJ^] \)UmgTbjbQ7 r= [7{ XuuCfh\A 9\28-p-$Mlsu({{w;Ӻ[m{/Z=%H9/USTҽI!˲\Kl86=,O[wԴu΢Ѣ#H#^D$k{gGe٢e%3!liZ%8qI$@\g3Q7~ٶɥu_fZ&ô[jRj+#p ϕyI؅ah5U4sUL?LO7з }0vŨEI :T}K]lDnxw j IG^zL7h.ѫ)E~Դ %\5p:9G5ݷdd|å7 뢣甕Qr"9z#[;_N'Vvt͹.̧r!i,d4\ތovɷRnӶ|5 gS'c᪅#5 A٨Gq^毖Ip)!sK4T4~rHx͹OwK65-]`sh*ᨨk,}D8 9y;w}Oi;l.SELXk.2jQETgdnq|9環-նGma[OUE.5Vu)k8"ύm,r+ȃ;۪m|ގlPڪi~R @|j1 Ϻ&v]ٺ:Yoq5^KOzy>o!@޶r+(&t~ow̶YJ'efܪ/Poh~K0H<." oej˲ 9EMi%-c$dȐ}arrnoKk-jOUXuM)ie5CoV@c4Dd&nyu}pPϨ-/d@:6<5n~8{qz+%MlMi/Q[otp\ƽi AWA 7ޏaEݓc_mQ~[̚%]DOcَMCgW͓/OAv=meE4,{9pG0pA+ ⾚gچ輮m_eNBajs5kCK8ZJھ^PWL}e;4vYGrEk|Le[MUL20|M$pGkQ;)`gw MMF2j%p:Yds{20z|7HaAy5= K[pԸSGT=4yp/lt z> پVmyu uWPG] W z-aљNt]vm+SHiRѺ{eT\5-K`Hi_ɮ>G=߷5%V 1\|DdΎN1i 92I-iҶIYY*><)a5 41 %MlMi/Q[otp\ƽi A\C}]65Mf5gɮQUD=8ݘ]QDDA_(l#њvjJke7Um9$"13_Mh{HtE{c_Ɨ1=L6+ zx.w+0PՇ83A̾>]mx_HF)vE5ƆzEv&ulR1h-Wx#.ch1]UͭAE8ptY.RNY #[."t-t3AlnŸWZBY~C#NSC,I35 i/"@7G?Mo9>lCM~۫|󆶢SRTJa.oCFtmxMg bL^xg2/詪$>(Awn1uIræ|:E6m޶5AtSmS]Ԟe]TG$`亞to}oy̴ܖz߄VSI1%Cj߃ye{}Mc>v=G#-Z2*f=,F<i⶚Իk~=}i˽ɇ'8ǃ De~MmcgbYOSEsUMSJ^Oq1ťĹн7;HnwA]W`;ey:O5UMEK:6]K 9I3H뭟n{'HFKT- ]K}p-4<^s7jMh^(x=I.>tOwfz/,c'Wվ1 NHˋ4Stil)-wv6D-GJt.h-oe%nJσ F`\xYO&6WqXiEO4W +&)}3 ㊢NAfHnHН k{ zb[dzqF2`secxX&DIkGJ :8w~Q6߯MlkvUju+s:$C>TQ##z"Wl} k-6ƼewY.fT[։m?3* Ks -i潗gײ +6 j-w z_5-<Iml$75dq5 s} 8=%7_8m>4v4=0{ª:xb%Tlf{;_N'Vvt͹.̧r!i,d4\޲" oKCzwIE͵Z#b5R>(I7&Gňbo2r\yU;ʴNh+[:jzxO#cwXZN ͮ_ ::7G6g٣uͦuM/.C,2> xKpNH@:J:=SS-wݥU>V_<I5qdq1nD\z2lb/lz* >WTEXJPHd1=dm!5vCHI&]jovӽYlW h1JctS=:RdyGNocQs0HL/|@,--,vaqi}%=_^[/OST 0^^)]K㎦l%\E0h^S'JVv;i΄Mʆ:8 \VUJÌ cWL:/G춭6R:)][n25ZfOqqzXm㣇|ghƼeV[M~"3ꭏO3K! r29 ?IBtͶM/c46ߨ:Uu-D[VqY,%.k8TgʼuB۰ Km*9*kg&JXfi'O_ӵ06Ởo ڦص6^ZS9v{K 3OI5t=HҚ$ZNGY2H8DW؞/{c;lϘtUtTt<1B|6DG3\D`l=n/z'z~;ecgwfրЗfSIP9I4HܲIeIntm .oYQuwZ۾:ah_=Wpڪ(^W;8p\ J:! ׺8]mi?pfCyy>nTJӾHHÖx/HV1toowI7}+tU{*bIcH8dxx#!"dxn!2dxn!2% J8CI9h}:'79Fgi=蟅I=į-=H2 Ӭg韃u4Z*>28@R;xpT9Y1dn\q$j$iITfl~syzO&rIma?AP<〾|#:{qC%|2_Jtk ^ Oeg3ӌgn9_7QkAqP<5Nj.(S$/ o./*L~}K\y$)9.IF<-p'roUK?=S֒pXueN˜ExbNs{89TQ;.>˼OIxoxo^wMLl*n) =q@}ȴn6T~;=N9ڟ< х'>Y\_uR׎|:)cgQ\w()Q ظ6V$TE+ն9矂\U&깒_2*9S/%U1J'h9/1ާRuPNdS uqSq9ZK67CQ;?gjxTg1ic5 W^l ' &lB v (tr+~ppp\#T;@9Z aUd 5G>p8rw5EǗSMCuPKGkf~ Jqw7SDdm\M]/s Q|1PJ3FYej|p.ؤ+դMp<8'%q}־HypU-vn7ԇSxޏ4N0q/1OͩVH'+&x^iVTqIQG?I* ydNcߞz3\|cÁeڎ8 rXyYd͸0"*ɞ/`=M'Kw,k;)n?:v3?zKtm˅ \cõt vs^QIPT&d$]\1qJHpTJpZ}9(!\$ӛ,Ac n)ao0;Typ1ڢ 8Tݥ!I&vPHzgh>*,m2o9¦yOhrXy d(eZPTIqؠ K]ܣr *FpTh-q{Iʡ䲲i}srN`g䡖 j'k3ܳxiʗ$9gsToRՖWnUxq+CtkêflTy{tm3 ^\8pjvIp+S4pViw!w,¯tEp摒W/'%qڕEoHZ!_ Y('-s~ =؟DI[hZk}%h^ѷ +k"a$a3k`t*InJn5i|m:xmх"-i=I/0~YB" "" _hgb{@? :T[rZ: QSny뾝QwX\|3͢kv=nydP^eC#2z8]Fx&P{LB^<=s'*UuSdF$!OUJjkؾp1~r!{JL"*{-[U {cʓ׳~e ±'8{W22?\2*zx.[TNY._ gvVW(~$8&ԩd AC$;*Ly*w9x1#H9%K^x9U;G#r #/>LZUږQ9; 9  &n( \ӫUUQ㼩O{#{kTM8sP\:x_cIO9A_Q.%JǓO/R*)oggξPU+Gw$bg$R5oo<ĎҤTAֆF#hJ 9Ҫ <' tAsn|ب"S[)iA[LqI MT0;eKfsQ0'>#̢3J _*;}|24d.5zr=c=Y$Kw" rU ̅&Pnqg Az=Cݕ;d@h==Q~8\RT6AkzXfV6u4NsOr<cM 3[#8}*ӸHǭzs9#,.1 {cF1<')ytwKn@\"HrCre 9-LNx.jd 8-|=^ \ 7*zӧU_??5V=MRG{w83}$Hţ>U3s\jl2Z}ԕ3 *9Z\INy.$;|TKxZ9F>TSIR%q .ꧤf JDýHH$|ʝRp9amif'$sSl r VrG[ `-ATcfՎHy䩎|Yc +v5kF֎j}q)s2qͻe[k!c0I|=vo K|mؐ՛biԬ3<.LlqgTU1.`˻K}.-K̕*""Y& (X$e1}~I ݋ILV@DDL >Jw<ە뎜bJFs(%<>z\Aq%ÑgCv:gp 8'VY1p8w%o-x~OssKeUN{̂T;* 5Ü"w)o'8SYR^9J .'?ॾGK8)ߛR˰yfnr[D#K?BŎ>LKmO RJe-N.hלҥ9Хp~p~3JHq̀/q>R#s8^r p2oa2c̸s/RP; /n0rXnIN`d郆8TGA/Ü}h2C׃ةĨ&3T9{J yC$Ç!;Qτg*Tʔr=Yd<7RHI{Ta}tP=g<¢$@sݒ GPqv'bcS ХA{OaShϲ8H{|<8ԣ/̭2SZTq>%!#AR8('zU`dd K*>$[sI9PRA}q]2`w}ÚR)hmA#{rBwx>g ]2y9bj|=hC=b pTc9<*.F9H'U sULj7pWA6qܦp},*%!M8b`yTdx)JTT3T|x.7@ _L;jp7lN?:5P̌W*Qruj:~]k 3[<ڟBeR]̌Q1#3;2ՆYilbF=J7d9=`e[nVfcb@ў%Pճ' 2FT%if8T3J KwaqN)5^ )".gޑK $NmAciV<橺OnA_8pVyY m[$󮰖s*=_C8V yrQkOHF~eѼsc>lzlYϻw%_.!ҷϘ;-$-{?`,b? """ &+v-'3[~ys^ҍOJ7KoӞzRA=P/"㹫LxO}{˛X_.ipN >1t㜊cR@R̜xRߎ.Jnz\ qogDs2Mg'L#r%!)/(k_ʞb qRe+Q_ 9pLr Y*F8N>eooСtJ[ Uh'C]tʜIB 0y?0YgdHw|tpO7>]*Z:ھT'x*M_QI黲t | Δ5@2 9R/s*Y}0v$@dRzeLq9nX,aVy'7'\J}tߡKTb"bDqp$F=J73HR Sjk$e-sZ9|\W̞y ce8>8 L )Y{qڧ0yTvNɅ %iRˉvIjdްY}9'ؤq;_X-F? Hо9lT.С;H*>j3,ʰya}.B9CۏbVd|ǭRQ HBll<eÇ4 'US_jʪc-Z' Ԓ\y~[#jUKyePѼϒ5Xy1Tg>r=V0p>5ܻ>uN$yϤ;|TQ!ϭLO *do8#'n8ZH69r|Vڦ/{T~ SC).O<*Y#萁?7D苳NULQ %VSO-;3cAQ0=sQsGNQ w )FV%7`ʣrTF%3 OT]cRy ‡/Dw%3$cڮY-ž7kQ 2gV[IڹIL\ӎy]Fsn{ԉ3F3ars-X̼g <08Tta Krvo9|QRTjY 5JZE.%橖Ggb@Qqw8*kD4ysq§>J7 =|ԷTg0v>L><Ηroyʏ= K݅q]lfѷ:W^Z*8>~ 8/]chZB|2(>hA'J(^Lmgr9k8 i [U@; \9**K\A?Bmj-ESG2bT5m0 eܰNHpBͿq-jL['J9O;~WGұp_忥l""CILP}Ib@?`؀?;:ƙ'%#2N9YLwvNqlxߋj{_Ds="L%9'ھA$[ʬr29aKtK2ow%':SJH<@dwPFc9UgfNYϱ|lZ](o<).̮y9R:՜PL5BNdqP'%I33@F^BxSO')Kل{w0I[i! 1p>pH\ ҒG@d'9Rڠ %&$zwKѲ [i{wTlj_>,*S^PH:qԷ%tg(ޮ&n#zӭU17֝oН] +:rNT/5]쩏¶jlh"09ÒO#|U X*!#rN}JhV2BMd|&a ͓k{\S#S2q5*py9hr~D*8F9} ,> &MdL^~_XTG9SέIA ::\@f\L*^'֣(بd'RoK<} tS{ycuWAVÂ6'8 9475HU Sq̞Jrk[݊tRǐOOl)49SFZ)e^IS?Nָ<9*!z]ʌRZ]MR`%X3L!wcfmY˸Aw̥# ? y  UU,ԩjKqdy\T#@B qR̜p<;AQ=Ҵr*x$<CjPjy?B#֩z2^{]P-ķ$J](\O% xPN#@%DZ:֑Kw0Q3yD\܎J&Cps*&䃕1<DeF$rS8Pw(8'?:j+`;J.hvϱ1H) .H j>7bHg(;@KfWף'q +N2˪QRɲ95XKb<"߅ز9ᠴ&(k1ٕ@فI#oU}{DG>ēt  EMapA+l>#+{fSfwz Hz:n0$E-{RLfH[%$%Օ5،sZmlp5@=jV mh8V;T\W,e|UDks'<ԗK'ȸ d .JWk,Ѥ v1>!Җ<#2/7+NWBOh!c̣N;9*Q{>nJ m1 „ yǭ|&Gc*fWK$}ADv"G8JpK0'9ϊ)r=-P8*H1j;GFr+_ Uk{|H2' Kp%6)w}LaT&WdR3Jӓ I_8'R_&7} Q<9ăFNrcL9V}As!  9Uʝqr΍*|$Yj#Rý\g s_ pH8&%#.#P9-$_Xg(]#GӪ{Fj3 ʯ#} cTq/X qy'־cgԩ~pyhy*vj5'67T\(^yAti|FA%Ѹ.kmϴmRNX|.ڣ ԓw`Bƪn8/]/U+WH+Mu.zTdvxw(^yk,<,w0O%(2OT8;˒c4rw0{37SqHw%2h8<¢l+93RTT)p𜡫kwn&[gi;wIk_Ζ (/Gq""i=I/0~YB" "" _hgb{@?\_60^./zy}ANo5 9sRrUUG.%_K4}+b9GjGxxC|BܩoW j%BH?Uއ(=A(GU9{NGjRU yB^HR8{$BYS<q"-óڎw>D3p}.6dTNqbyd y@' Js%ӻ p#lO28RyJ'#JsFt&>t\TO p9'@OD3cI7e01Nx+I!nOF%dC_0HSMKp A˔9Jp>hv$i+ZT<7W?CAKs zFZ~e6y._|dA,k[OZ 8@@9#ڤ$8 .ѾaR, hJ37@`e|\Asu[v'f8U0-<1I'DO%81ܩ['trq`xwZJ?HDS1ŧS SrW)(Ç`=Pj N3)$( |j&$O.v{S"T_xr갖&|~d|" _>My_!yz1y̾Y'ו3"v5IQ#-ڢ\jߔ_w2ýJNru+Le$ v447!178Q8c 9 m8<'rAU_&yj19Q#j ,ˤYTعy).N`֝T4˒v*6{QorϯF) Hv{Sa) GSzD5k{NÚ}jV֘ pnZ3ٞ_2y3મn7pI&],:1{Tb=)ާT\_}YWr8>o0q3>sx5炂3RxhQ\ `MO,w˝[R6m@yF0]$LJ]=m7q!ء<@!BpqزRK\#S{sg$ޗ%O/T5T)ImSGhQ0qҢ6w' Zu|xQSqsU.i;4 O®A>Sۇ;THiGY:soeX+,.OyQ3U2CUXIH5@5{/9..i ޽,:qlCZ9`D"a) 8SbpqG%sooa6O.`W%~m?ѲI+T١JOg`LP`ش?$nDA'c/^-[Xav Cn^<}u4(;|T7D#g>8Wj̴*wq(K_$y Ts*7K#]Sc]'qesK=poju8+⃬<ΰ㿵:<|OC1aLKBy*zy` :p9UDcUrHS;rCrU)sHqKtwcGYNx=wi9QvPŎD-ySKry)'Rh\Z;='~%-čݕN;FG%9 KզWg!\/h-?ճTu+X׃14 OНX>=p)JrT)v0Uxy)8nprHq>`G8g*G9g sX=33G.j[ !V] c$r=q'?28c=)r%;|=ݪ'I=Hʖ^ !}wOj 9g%Brr( p0Jt6[y)S(F1GQUTo sqjxOЧG!KVE&{T~U$NoyS[1jp;0?9ڥ($SGJs;`sGn~u'ÑVCJ'>ܨ`TPOo̧F j1\ƱP495o5iP4vP&,(U1{yUMQoUϡ5#R!ڣZGaժc4~%=NI`#=ct-x+fI3 -TZrBRAykKq{;ְ}<ʚ;r>.SDZA5.[e\ࠖFq/&i.7Mr"5)S$+Vy0Yt%Q}Ï w+L}Qh]4~ CxťԴy6]2g8tu8bpV+d05Un'`wacyxeY:R+$eP7I2O%Xz8qr[rFA#Ppw/q*%cَXа61SXp~ n{aq@`#dwI+oGj9]BeDE֫ILP}Ib@?`؀?5?n@ۗ\潋 ?S'pv~Յ14wΡ2s%'>K~ʦu upIp|W8Edtα@eC ,ҡ2}!^atc0|V>%p(KJ1"q{}K-#<#ڥ ˹CS{U3g{Q`P2;T{8/N=Kd}25Nhq_}^/xWKN5=)98ʉpRx0|T+)QBnpTm;@=M!_U3Hao3ەYvrI2Vq 48s&;䩠s(4 9WkyG h?0USTFR+&@|G*zV59"W6h(!o2"M4Q 9UTԎ#^ӝzN >?g6x[%!3FATvŷc Lw8!+]crA݅uһlL6#8 KNjolw]u 3Yg0{Q7B׺v4sO5fSmp[UUQTǷT)\ɨvK=f7sK&Mn׶wIoWJ8QeH6q;jFF2cJqKU;ߣRG2J@F`vܠqvd,2eGLA2)roSɓܲLsxCc %8zU/(O0}jˀ** ˎUKW 4_D#$7 r$k[%kleѵ\$L#|7=Ho„KҗduMi]}."]84:Gi@ګ+;>K7 gW+vLt^%*AsU4v[#ZL w#<@{WL׷K'+o$.[I ^y 8X@?W &l Oz}/u?[x1yUbo,ڰ;ir=ެ9^=_YS s8JP޾ۧ^^^w7N e]s׼=myU;B|U09/O86-\aR4c'gF;b+>kNG0ң/K#dc9|ofv" Q*~7#ڭ*:?Ӳs`W%~l:OK^Ɂpgq_z/aB".Og`LP`ش?$nDA$K{=-+؞PSw `[7)zq`gQy*> r*cd8bǞrU1s(_r;8K_\ B9C}$OХ 'YC y(\=sR=Bv,oN8G2G*[HeIr d{ŀSZLLRcRd9!D<㷹A+zpC%SH]ȏZ6A%o!}BIw|cgZ]."{O5y矡@O1]B|xj:wuȩ2UhIPxjɸlps=Y@=[G05Hqr-s |,8):u=.;6;أ~We>NG{ K399ۏ׉gdbr $ x `'` ܕ=qt8wOxr=c>Q2"TC8Q;$XRY uD\Nw'~l%9>=vX3 &0UlԚj| 0@ZpXt>gUSҗ$Q:ik}ܢePђ*&Q>CCk%Z RjOi|7+{$YjHf('kwL㇗`^ؾz^C ʢ`K{4CgZ^(.q3.nyݧ4ݧK[žIlc@o p˛Mq֩0L6^+qR[,OCoaJ̆?3^9;?I\כ|8+ a<;Tjjzrs,.jqitus@HR_v *%i-wTHyX^{~跇.wog5)ҭy%gyLv7&czWdU {F]U>:~.`cִemA<'S\1T|^GGe_>S2~p֌d(K#?ZT4sRjyD2K`=_(/kUҒ7EÉy 29Yeta=k1Vn sxxª^tj#qh^o*d5\!z h_8؍$sgVj׀nUk"J!ݏ0;ժOD} 9FJ3;j[xIQ8§i{rϲ:7v.U,!ݣ¡خt6d .n\$]v6WcԐGr۴dq=PG4>kq>a1znˌA8}}h}MW^Hy'PI]SکnKrMR $k9_z\]Cѭ/^[ھbA眔fVmòV 祜kohS˖ۯʙ獝UޱK#{]ެ7'5vaVه7>*QR̯^nցT=Q/or <`oSzUv2,#).*{G"L4!%U#~Kgjdҥ^kU7zc[L?}q_5doY^Ǣj7-B".m'0~YB& (@DDDALVZOhgb" A_yAn^3ﵿܼ`O.D] ըώܪ߅ad;2Awe;KKQ{>}SQ {k;'?J|wnUNC_N_Cx;Oobt$dy)OΦࠑ{$yy5 gjeӻ3YQ&YG&kzSlPOm )[$.ۅ3[GMmp(FO7MiM =k2@ϊeBC>GBCҥgҧQ^AohX1䨏*%lF2NVdxVhf>2y^^tmkn6okMkH@%\`k1ohɻTz Ht;K_ҼQRO.\wq^F^^oԓ敢%) y}JLfw pQ- 73֧QRCWXyf kܭ2apJ< pu5c~߄Sӊ緒]rRG  %M iS^_^)%D,:3̕58IKFC]X!7?]mx@N8{ VUkϟ51o<sR3~9UX]KO?KڝKGg}|z\wR WTɴtuޯPZÈiT4JN6.ݫ?OOtDC9xVKcSLGs&)Ŕh]_[(Q9y_4fAd?J[7J:TsC1i=Tv:,w QF^[) cFQCFAU>u~\ُ}JC@<*zVq\F5ULñTs[n9 O ]\mv]edΩ' LO%O-iVys5s$U[Zq/'{=k 7ݤmm^p25 N+}9r'2ǯ &*(64YKQ3b3S)lȈN *j*( pԺwmOs ESss2\csMsЯUԵ[h@8E9.C=K_{x-&w[xUM-#+F9q%Vۓ\y;1O+&\N9ZG]6aI ޞJɪ)^eW Akg.JSe%ݥfp{f$,e\8_X|>O#h_ G> ;;tpїv,o3mr8k㛓V(n!ԓN%|2;WW8aTjZwqޭW]`4m`c@AXۮ/tx/{yifvxeN/A/|;kb*Ai=T7;S3f%vIc̞RQu{^jϗ8+˫7ڈٞI˕[o3psJ/v9i)\W۰Öt_[Yp<Z' }va9/scьsro%@x;=J\ҖK'K)kBw.=aWf$ IqK}{݀r~+}t)RJOBfqvO!G1{'5Ǚ~Wko%?~W?ٿ~DD]ʴ$e ?`,/3[i=~I ݈ө 7J.сelfyp5]IInY''Z3=Lw&a\%OOrDžVOW7힧qrg-jnrH&AyVMU;U=ttїIkok217jj ՎE6@H\yy:kOQ/XLf^Ym@oHfZ䭃hT<;OK"{f]wڮ;fz;srEmOgIF_`Q{/;va;\Bd^vw7=E/(32l3!8Ymd/1ֳ ]gYpy, {{'Y0{ic֤ˤ{{$ǎ1MH%QVSZKџZxy]d˗ؽ,9;U1Eς'$7*hbთforzi.}[&{.Դ#0g0z8zc+>[zݤA%e1FJyyiXڮZ{`* rةe-oy[2e<%SUU.;5(t]aJ~s*K1ͪLF# c)k1{&wh$ŭVoA.[[M?jފ?odu΁t7x#vK# V؞uf[d5pqS1[c%l2벭EGm.ۜ2e?ח ;ICM+ao[Þ|NZU ~o1iSF6׿^o㞭_Xihggi§4Y[;I/;%\r깖Sz.H {Gncf;WM4sgk1yrD.E;q+,mR\zjs=2O YPq7Oί:7H7WOS2+gi]4HMyԁecy';dNRZj`sQSiln-Ams-.AOw=?M%GM5MK4ng<gx\V6^7^{&$McZy98ڽէu=cE4H8ZWY;%vy;]>qҺlmduM{] u#%{xds<).' c^rVwR>|NҪG0GJzn؄̨NYzg ga?NZv;\j]Y]zJ<U,kU5KKߖ,mBPjJVG@*V #agk1U-p=L|>wˆJ(cNCw21i@X xW@vwlΎq6:j.=4sK#^gӷ4ٞrޯ^>srqܺe/hU\^sf|&kh7b̶ X0? akW4l%Oox>h^G /ݸu}5[cfIx#&>ab~bjoY\.OY{pv}ץ˓N/%ٝH5Mn׏9NozEfWa5^ʭRڞ1ˁXp x'ژ$r4s$sC'x _ jTi0a /X@8QAثnW7- EE}Ll1RMF{@1 {Tkȓϟ5>jU- y̎JCbuUWX92e]%;Hwn9Q༁S[d8\U–W#O%>euT |:Zkk)>r (꩸69n M;Anznjz %G@,3@ۨ-C0e&7 %'# .2WcñK}pg<ծk9Jkh~\9ua*_q.g>ei?Iݪ8xb*+AϧN[^aWQs 5O%Lj SXs;o\]qsʁuj{ ֌rwOĿv+`KPy{ə%W&Vt!FkZ jn i|7v5 r|upnqwTϧgJQx %gg~U /Y\u4`;\rY*9%w[bzqsȩ-=5Y,?/4Tqdn"}<*xbW-{H$xVQXaUTwr V]95S=%V>2An0c6gɍza}gҾH{۪0}d~Wk?r_U} ,&w({?,_g`D@DD?$nŤ&+v ""NtmBP5+tOrϔkE8Cn^-y3Ws{7)8=zK2&{;"7 }kЮc=02Rqknb\w}.YᄈkUrPI^<8Pj(1$xԀ{ݏ\Ǔ}uG-mK˳|Q7n8s澵o3M}c[ VH@taaokzqp_Okz{J5?!Մ:մui=ԯ89T苄pQIto%U`ٕE5]YR_=00а%S&er.>)ѺAhԷUIwd~vJ-ySO=6SзĴc+%HSX_B,h͐ER]\wfw6U/ G#c$= ;%[au% kg Jgq S>)۾Ꚛ+ex$,H[1:gv7RgdLIS-=Or~ZGg l*ܞ91U3K|zUSSa2=h1|FN'!dTf)|.24esH+̞+ާƾ;.՚Rb5مYj&t7W_-;3d-^tkH(f <_v1V>1Ԭԉ.7o;Rz<:6IP;<آQ21bFHO.G&:;h!I2e+WS;dxv1> Dl9 s9/2bQxjD,>8꯾q1+HdZڦa{\ 9E5ޖHR^AMcTĦu-ʂ Sx4]p{F}2d8Up#%_P-2tp3K#hed GL_2_L{ulo,j'#s+S,u .;fjW-p}D3zv-EoFֹ/$kE:ZH ;קwsfYmyX^nCEzcle s®P@.X3[S9./.oW 4$*Z]GOP]{rذζ 'TgHG5NdL/,<ɦR {OVf\^\`|kd{':i19, vy.vTH~nY*2ϿGO/x*p*658 Y2mqo{E[a5_,|9+Et`t_5i D*q-LԚvJΧ\Y;1XZCM=\G+6$zvn,%gHC|VE:y8 y,R(bzdzKt3ddz$'ܬW&̹U%5hs@kb,Zu`;s,$Ouixyakmj()ԁ7'EiS!gr9̑wv5<<9³R\N8NJ.8s8VY.t!w,F9 ֒?GkCC{Or)k\QϨ#$\7-ZOXzH4Me;9eV;QLO]K}M75l2ҊVgԡPU,z陣+KxK,l VX 6ߥ]O*ʑMKeIOVC#\mWR152BM#{1duR\$i,x,z[TǓ"hY4  j_Ho6u_XEȮSWB;*go&u|Xiހ:>d7+O@5kgt#?w~{UWzlOg`LP`ش?$nDA~oJՅTŏ c lWyAK[?AOW> e54Hs_bUc)n9HWr9.ѺADaC¤E}<\^~in\+ %ÓGΠ2D9O<!–c/䮕LN'<ǭK/x >!yNwAR׼QQ *Pn~tn@< 2qm< |94Ravjm >!BH9/eԾϲg8* ;!.ʛ"||$W} cNJ)%-Q hK2B:lY>`^yslZ!! flrq,ga2ue:+c6 Lt<:&z>=4m6BGXi6twZI.vRO FV:gIB2N_+&Yv±J=}6\уq7$xq,_k:hM#[ِecjkJ\)_zJd׎L*EM؋(iXȎ M'?2n<9"%kkz1YjtUAnaJ栵X )oV>~j9VWJW ![Ui XKVG:+ c3'xV={?:csߝu<캬rШu==HK[$o-+5W[Pތx^?M5#Gyˣ{ ᓂg|dյ˜c,h_O|V5(oBFL {6A[h*  8mӛSdn̩}"b/Q_=jw>̲! ˸rMcG@Psnjd埝CQzN w{U׽3)vy ZsV}.%GnrwϥSr%ܗr}ψPr([=! {{B;ɬnsܦq`)QQd;Yd[O*3Ü\N9+>(NQC: J)e{/rJ +tL38rW1*/Wh\fpi,yua7X_cS+ vf,I8V#,VZ> rb&z]/3]]dubBʮ6ܹXtla<0SqT׷o,u$-a60< 4.]xc-#s5҉"q=*HãxU,9bR9/%`h kOqsŕ-$ ^qlozꦝ^@L[J^ԱI4Rsۅuj.4"!Xܫ\-e?Y=PJ'8fBXgkC.yY[Hέa X%YB̫.;agrr5pkd:zPѾ5A݅N?_IyKm+\_UOsxGgj/qh-<;uΟj'۪!-mKf+,.<8ẓ 0i'zTH<䪪Z@iTS;;r/Kp$5?j3 v0l~-?J:rSXH-zќ0 ͟9#ǩTA;G*|r\"KZXy?rMެw42+ ,^_R{&wRԑ+?µO<.Oy$MqNj$?Ӹ)sTsR_0=ݫlx0,kf:)rV\;9R-q⑍C49/TTU2Tnjc>=0!ivAwKؿ2~Oq~~ zA{?`,b? """ &+v-'3[~d6kF7mxg r=z# pgo]{0F\NAP*Kl@un$?e({TkgI8| )ݪ2̎M=NJ$e%2aU*CglLʤwrTq3ޡ4 :%җ>=8U( <}fQ;ڍwv( _HjKO RbA=1Ρ DUS9˽K@UK; =rZvSHqP4ry;z(P`|$) _?YK>PC-Lg.cqo%]Z赜YFI>|_5+~;>see gG ׯuUDžggU7};UX$lR̀2 a̮J5xo.FrrXoVDXkw5[D[{y(E]YUK\t bcżlJiEd *.R1YTO$M? [ 鴬txe2wZPZhy}ޡӏ SW :.9=^CK#cSD݅}QR־3N Grf6 37{^uSj ]۫17,G먵jhO`1dzc0E|6T2Wpj eUKqYԗ=wozNRkWRk5i^>d8inVGz*rT2p)q9mdT'>Q!# t6t!+O0Kz/r9-99rG%CmGlroEM9To~lԚmt7̾dO`V[4J]gՕ]9_a(jU5r8̌z1g|>(g =+Zgl Ps >z4eݣ%q^M NW}*c%V?=S~7H"ru}&={ σ'1U[f" ʞ!(v]kTQ9Qױ;}kEKtK>e]Y 'TP' '1t;%S ֵR]p']$ca%ǂsc%=k\miJ\rWۭ-E%bqpc C ⾖G.,N|p u6-8iq;OзN=q<*ES#-%a tvƻ P ˂6HsdQGacRɬQSgkk6j(-d:[FXc Y 4D0q~%k]Ajs>e]{\Uɘ`J<u|֧v1`:#\xTy,V$n=|1^Z~zwF8a@v|VY83\\~ӵveΊ#FH 4\֐sަ*rU)rG,y;2=tH2Yg_ <Ԇ8ZUaсWJ*nd*/㷽VvRcku0Z;חMqhKMOYNa|`/8omS}I$le*G|=f` ,oʿų[U#jH8{r0qLa`0pB+3xɣt`d }&GL ;ʚkpC !rbMG|-O8-u%"xXˊQO3}xaVIcQkǂMnM ߅\iqolOs>pcg{*N8GodJy^[s,{Dm'[^˲*NW?sUMhژzCTx,}06G-[S:ݐU <~I-|z\VOQ@<|,)';[:MI .8<]QحM(pk+|)gLȞ{'Kֿ9]-.ݔԸC=?οF轫_On?nkD^&?`,b? """ &+v-'3[~cG+پPs js W6YY_pwP<0Hor_Zc}/ (xeSC'R4'>U .K66ݜVU\iZtn=XXxOg5O @G`*Ǘ%PK6}1Iw7-gƱ/7 Tqӱ96Mh+\[Ĥy,i2ӥ* 15|љgQ 8c ZI)K3״KuIQDz18sb-P =e˜R1GPpEN; a+/2ְS fmSQ&K#cʋid JHe޵Vi@+k\6/Vk=FZO p؛}kec+ cpJӘ56Ծi |M=csT69>ulF*hW ˋGbn|?Vhn+\fw+5E,ut6^Bz-Q~EG5` %iǍʝTF${{{nGAiH55롕i.=[m~9 vI ˫.u%J[e7.>6v띱!#V\n7ZWO$HIsrV'}-I7gkmCkD`ܾ7]8yk9hW ig"$7/I;2o 1݀ #˸W紭qޔ12Z6w!D)Z( =C$'̮)D3E(k-UE#ʯVT}XKU^h|oD(<֥ILOr1Рt@ ,?:Vx,RuRw7Zr=444Wc| pwb4=/NF;;Nwkc.oM '_>e}m8}̞QӜ)7\B%ԓ+VQ8{΄X CPSS~k.A$]nY1tprə'wKζN+ךkO,Vz5c=";Խ-7OCLLgZ!ܾksΧ}>T:^G[POg5&Z~u=ʼWn߇tiqL?Uƥe+|:,nvii뛪rO`[;@PFsc2nW 8gqW)͋:j8@ d0SQ}GҾLJhq/ؓT\~WG(V[eVKY,cج{5MBHZV1ptn8[ޢ!ÒtRvv+cdc^u PI3,ZE4MC~ w,@ZQi;Uŵ ࠧ~o<+ xYھ3JB֓IIdsY.15 <\;E#qT4b` \9 y{09- s/J,~, .sئaC%<ijqz%.{%8̒Å˽[53w NJ)Z+飉=[Bɥ#c}(obLint\]wm&r}bFp_Ǖcڣ]PP kL 9`-9z8jNʻ 1੤{FH]V60 6&ym{,/̪(ij3-93ۤ~;99Y@uv9HVmX-2;HYK%;O y.NKuCU!WuPbMWJH屽Ril ]]ܸEƞ`g<Cc8;[sUOU%-i=vHى>č9 $ViEy eASE,|]hsIU\fvZEKS\Ǩ*2";Tb"Gy2ҚP51UAX9q|C8|π_x\>d7i&Q|y~Ht0Fل^%37٨pg&]## /2Wb"/U& (X$e1}~I ݋ILV@DD(UoLם{x(MnZ[3]+bϥ`9-ǶA* ~yǕۋ.=V-Ӄ̈́ v*Nt%xVmj %6t]6j9ߏ6ij +rh2K30s޷{Ŧt]xW4گ:GE/zVu=ts|Z[WQ^31s|ܚWUؠ{DlloxXv4p:'ؙuČkh><-®ѺzK%DTiwr׏3*頥T09k&U&J[)zYب2*y=e%5-Ac# t8=I\+|p2YG3yvpkJ" fUL ͦtMlq|]6nvi|1 [=ܖyK%-Y%,hVo!$ j@hcGr}v6l @և3Ϩy!62E.xqڰ-KcOE-Lcڴ,c -7CUCvKL=vZu5ݷkC =Jf09n9i7<.^kglp'Ԣg7B5)i]&?A?2 +_Zr9d(8D{m]AcwSk s𹭯voW fS:&;Gz:_x4T .0Zae=K3;93_\v[gg] -Uxh jK/s~Smk5VjdpkSNulqF#pYsdpCCN{̭vv5v gUU 1 eM>طUjJCt31d9yP}Qs$g-lLr":*> 3'ZPl$ {%Yu_Kbng)XcsY3K rg`0D<7=i> CLc4v*U1j [qEœpUϣM .2urV}uKٯ,SޟSY)õaaUY-]} =i Z@m5d::J;S9|ZuEZCR5:Y遪.SY[lG|GdÂBڵg(\r&ƣV " ao.RŴ7;E׺#A@Zi5oZ{F^m$o{% +WHW{Fsi6Įvp0 -O${xVq+i$n$pRMo܏i_QR釶#g=!cqn]Gnw0ᐦ6ܲ>n%|rc/=!WD8fVvp;LOϊgGفR@١d'*Ay[ v*Zb<-6#- /yq٩1(Se|-qk70*z&jd?B 3+uUM5Tp*YuV6ZS}Z .Ƶo'DI[*w< MF,Vs(asYmr1A=XrEىn{Z܅ (I0rK aU/'ؓUŤs1鴜p`wÁ#*QlfM#lsb PG@M<.ZJ.3eze=0/'zz\l9lrT$NǂF9a[^9vWϕʾkb`?42N,*~2A 9z#٥\$jZo;]J+`,=I[%q=cj9oB2w+Nϫ<Œ2J9z8 ݎ).ԩ*2̲7EC][g;sL^g#˱ncm53 LX$a=aY[˖^R.T=7Cqܦ #}ګ]vS=!*`!Gzp〲] E?F%k)Sa%Zydw,} 5wWKkk♲chV 4R̕W5gYE %qSfr1*W>2pK3[8oj̱e/+km;զ9j.6"9V 8xU<ƘVy/Xoh$ߟ_C .ذK\v\|9vw+bùc4s>jiY !RZ~q⾉@<ܨ!-׿'Y nBz{#Ò2i@ƞZ\2IS&іj;ƭمR9~Z\&C%z|9_L52RTLOqر94 xo'˜(M5Yw {9*.#{>\HKJ]8j9~4kKijWԸEfv9k7%2QŏxoXIp9r^Ej)h < lm qsPJȮ%洌jm 8\Yoe>4g3]|ι7F2ּ򛷹^#gKmCǜ;mM 7&4D#o%|4}UEnUҵ*]í:{ QD@HƪcyԱY VOωqtX `M>XQF\]UJT:CZ,eTyoUAfG8Hڱ 48,`+ ҺZ';3Ǧiko$r$Bd1>!X.m zx<+IGq8;%‰ UuRtl=-r?C4й͎synK\W~ҿ/WѯDEILP}Ib@?`؀?;]:vFTRь9N#@4Ω.٧rǤ9^ KjTId/5EW*J1I =˞c˔ݔʬVH#0޳>kHنֺ'Jy`)กWzy32W]x#Yj㓐WVO,ciȟ ZZ2qڥi U[Åެ.:"¬`=ox]s8ccKk{{9J}^ϣ[kbHXudg+{{a'ecZ+{ܟص&Vk>iqm~Ԑik⩝1k(E- ^syU\579}ع+s$811v9 ,ǽk]لWq`Y[w|5-nA沲k|ew}JHoԢ>s) nEAZ޳9o1&HG.Տi[[4n1=20ީMpCظpoK &f=({O ZX\dޓZAW-˥,QKʦ9kr7YY⃉X~B(1R7* z])K=x$mS .9HY շ>Y rciq#9)ovNpzn=U [KC# / 6Z^$RC{8Ute EVVRfɇy,FA8$uњw12Y/@>r˿,֞=K<#TCe  t0_l:5K]DYao;ֶ՚ND.tn'YaFƌTY$%ohVÉ{TZA+D˪;'LHs+>G4 ,x<,*@D>c6Gfxޟ@NJqR*e:Ɔ.~Ug%>Αu.ww.gb2 wu+}',*]Xm ^+%S,wc,팿,`XC^+Glb#^iH%s'zn.4ovH%;)n8xU(Wv7n|2-?orX8H<+U=\敡ZmȜ9jJXGv}J[OoԹ |ş lgDTA [.s=6u(do66;] $\ޣgkb.\NVg"nI'9ϊq埝T 'U5kaӅ\Fvō\kK2G%c$V3wв0+s#cG2=aQTr]y*^$UgМ%YEq' gRD~ܩ,y/]` F(X笡rdTWxL-_ET$#+ܧ.0WGV,|Um7'V~ e];֯W?}rc'gaV__|F:de\ԗksuhsF}3ڤ].`s.,qa\W*K dGn׳S5DC&RY 򒺟9qU4և8ct֚ة L ErMEy@_Mpa%ZwWWSMh]QF]'JIhdBfp=ZD])cA%f+y+\mkǕ]7KXUB~37:N](p}j[IRrsާQ |q8 st[ӽ 6qWyZ%\nڋKx!w~',_F%& (X$e1}~I ݋ILV@DDjmsטTT0ȎzW4;mY+z53!0qϖW{j "=Yo6}D$a!MN iW;uE45qÜM,w#B8מ^Iu*bjz@s dA EF0O5\ݮq2Ӟ"wR<2Wk]LS~C 2F3Siq+<*JV 0{Sك9O%Ǟ~MKns U:gJ{k]X@­Քh99SaCd#i#*Q |z]&Z\zcɜ7yIRU_gqYa|<nO;9c:ULϙk{Sl6O1 ![k obůp6@ÿ́˺˶mEmb8QUk]'!9X, Fa 'vzbk읬qŕ3G[tQf#Vi:;p3i׍zO*>)zx-e.y)݈K"ny: Jn%v Xe΀<1Lw?JûYlrk}OQY\\+S^jYWN] ?2Z{7pحR$ s{zemB̑9h* EMr}a|ҴK3w)ƞkdx/OҹKl&j3ci\Y|qiKotsZeĪZ|&ؽ?Ore{܇>" o6tϞt'p"j@ n9% LқdE}:)0@Z>%ItoHc俋S\IaA汆6puYF &tn.y$L4w9,>b89d, xʭt-'Bie=ݩx[m(`iiP/F5M/UI?)[۞Q -!˜.LpkXaI;>䎨ltg)hkK} 8 3s[ iZ`2Y kF~e(`Zzx إWhoȑض 4ʧL;9†Y R]&;WM*I.Ix}^C@^]ܜ-~||VMasqggc8;k2:͒[c`W(֟ 'zMe+nڱ3G=PH*ƒ+nWT"4{qvyT/̮wc\=lu9Պ;=TRwUkȭq?*+DŽҷw.jlu7زg!.=Qŧ155m">[$vFy*;vgzf+vY%Fߞڎd?:mC;WJ3ڤ*vyrP֒v+> 1O׏˗Zky[,nk^q;<e_榡.رRI,$qa/wϟ~șE 1wx/Yw`U6浀} M=ýmqrou -ё84^.Y%!wV6\c4E54RCP4'TFc [Ey4啚VƢP<~iحІRԽygqsg4iKhL##=-uE7 'ar]_t{Zq@ZܬWƠe`|+)ac2cE.edpwji넠vޮXmIUr0-} cy op9Uz-g9Φ:i\Gh#c2H%-dK>zh$&[25׀G<{ZҸЗPd'ٷ"2ow~-5tDEi=I/0~YB" "" _hgb{@?o.3ն&o^W ^Г*UhǏ\zh{=.n96w0⫩j{k8XV}h;US''y/.[X'T _~|y{;;SK$R؟;FEx=ID0de݁Pژf U{jqp(wCPd¤F*;m%\qOr˞K1eS_IqYrhlqzojpiWs=`)\S2dMbl3c=%d7=.wkOaZڎ;$,7\# 3>;^*"k TM U׉CH=܁T'%v>ese-CὙ歕G)]dҩ.<*L;V?uzY檖pb^I1þpǫZn v.!TˤekszKu3: V Vvm[s VI`c^Hc<,ɵ )h%j^ܬve ov;VS=Fz}X ޸=LKL~ӑ.YrK({pGzlw 1piSōQ;uz%1TTW3`8\ vДxl;U-ULs\jj =La3VZe6z,|HgER櫴ʞ+\da[m@px.Kٗ9YMw -'TXj&;?[JD dOc t ;j[$/qgֻ1FtG; <;5=?Vdz+oJ(.8>ծuӶ0#.$r^|x`#=ioϹJ!< qRjc*ZlCW@/'g=\";}ҰR+ |4 r#)lZLbNUJ@)n*ge͜y#. B?:9Umpʝ).JFrZ}PSs^bqo%i0_'YDKi ,;l_ zտdo VMmw e~bM5nTp5$rS`"G9)-o4B]cgPOJ 69R zqϒ|RvJsz.QO EO,OfX2UX8¹[.20)^~~˵]dqx,JHo%WU[˴.X \ke93A ~r[",-KQK 96>HObVyY[H8~uM8XH[+cJ汣xg6~)sJZ0Сg֨C˟}qk EX7,O_uc5\5)q#17\y@ڶBoX'ZSJXrUW(.~{8HXq2G%[:bMD}uKHlm汄5V5=%%M5+ k-ƫWJ] Xq>*Gi$OU;8z3i[p# Bo= .{5i2V7,צ)v\P8+d2̆;gKmkYO}8A vrI2}-[- #pXՖOpeѤv-㷻!ofҍ戰՗' .u7*\F+ؤ~9۵}-US>MYUum {c.L-Y}[ ьx,K;G.#ر}5qfVHi{zeM͞7DO5K* 3ܲULȤ[ǫz&;4<&]\b.ٙ{pӜg]_{=DD^'0~YB& (@DDDALVZOhgb" Mvu=iڊً\?FBW' `{\G=ҝ _.ܼ/8;ŎmM'dsw ]:Vʼ[g@DAݙ[':1糼,:QmƒP}kJ()#UޒCLA8#}(jG]a0n䮑SMZ5޼^ 'ZQZ%9ܬܥs#cܳ,ֆ29'yujAnA;pqم=7,aWh'8]-%G>{8=gUb0|m=Tw~Acz\-vdԡ  -2t5GBXLҴ5Y=+UEKnq;ˋ,gfhLdc֩2K28OՍ+ n;T8YeUM5]3O蹬ðӴs;=bXZaTYY3;:ذ?Gp9vz8'TQ9p9\pU2K2ǗYWI躑Y%rܱ9m~3YRK~K<``3i 1WILjSMsUyJ<:"}aMۼn9 ̸vI4/%@+jm@<6G J:ۅC`c[.>91v\-%C[/K!I۵ -h'|G=$Y:f6Rܞ]T_ z{G o[Vm3qT˕hW8s+REj/ݠys/G|C c&{L88lGY#}%uҺO:^'||R>U$\,]ӵ]5.7Zt.ث4Vi#xx؆Yͮ'k;]sV.uu]cArpqMebJїEr0L汲bX,{J-U>6ňвysŖ\eS7WۨhH5֯J YǪt%ƪ Hxk' /'> ږDgٳf3mGli?tfR="y!t8].t.ƲXC{y(;0c'ط[beT023dmc7گ.c^Y V6oG;NX50cY#rB׳ 13ZeSJ9{2멺9rθ3㲺 CGfrO{i kB17$!n}i[H\22#hn {=U\NZ\k<ݜe2+r TfWGo5}qa㕃k ݝϬ;/Oow6\3}A8V)nrHItXnN׃Goq^ayf+ ~k NxզJO2S]F_#֏|~jGoҥT֜M;uq`ä +o~5 m9mp`0WK$2j-8 0kp ٽNduYs8y,u51x-8\cRyl5,r]s^Sǥz#1cDvMIytlc{;?ҊS>ߌÆ[Zw'0~YB& (@DDDALVZOhgb" Js]9ן@b=)(%+⧒׌(u#.ܼS72U̦5GcSG;IU0N52uuTnǂ9bHݤ3MJZG,DhSx-,+5ww*Wg(ޱ4{ܷX_ۅh{?7jz7^wwe&ANmNxۃ[j9sQ!zy+c&JVш1㒩I?"y[m+I䱚^mo,m)z'qSSW',jc,L<|륆*nU |Uf1J/[fIE!8N4rʦRB؟0QOEk4|G_n+eվ\s>*sS&*G/T084D)|E Cgnq lZc%f"ӗ0z6Ҟ7 z\j&vJ=YKfuqR"8=Uff8X21[j{daM\z,l6+i*E!v=£l, d!p+&jAXQECP1>UʧFҲ^m@5ݞ ,:zh/VV9 MI5T[O,>͜8p =1ϼqX璫RV-qԱOjlr US̒ysV&b+K#>*N2 붌ib $*6xN{d*5(r+X. ]ȫ㮷"IH=={nY*|6[)$3!RO*&B"Re88T`Ѐa!\n(ӏkrI=:$tڙ*%ZsTɬ5pH4ԶT].9m͉VjB[ֆ'*-v*} d/i$vw+cjDs KNpB6BW,y1;y5MJm,RghWusR䄑sʯt-i'C5!>u]_ȵ8ޥ<(HZzNF PAS8~oP>r%Xԋ=;#Z'N>e3QT0s-:w9THJDeԩ--$⩮b4cʒwwWynx-sn6JVqm|Nu䆵Nݔ͂6/G?c}@o%{8@啪\ mLQ{5='.$zJ=FkP;xS8UZAt: DjK$CT߆ vZ]#<diOfh(pg\TWѮj0U:w SOuڥTrziWkڐܙJB9[nNYHV5R-F=T:ɘ泽cvS+F$*M+nqVj:#ǵ_h.d$XYrcoKiJWZv_8+-l 8l-is;:.RA 'X(}HyWjFOхۥӓN^ Jh\r`vzFH,{HZiQZ*c.+L"{t{Z;{B{yu}fk)1r׽)d FF薷Eמ;?ҪUn'~yn?*eծįcxej'0~YB& (@DDDALVZOhgb" J.>M٦v#=P-aF;閭M# bf{ByBq(!kymLr*k S< h=ld=13[8JN3U9 U;8M-5UM5ǽOdr*;.>)?yDJ#3⦃1ĭ웟"#YKLp䢆s{;rhS*٤5֛uTat,xj 1qZ +[B'p">}[u,wsHVcXY\8~2[c&{=?$O2cSJ^ͤ/@dL ^%M1BU0ܯ2[! h!dZtmf3SG<ǎ>&z!"5&]$cx~ {!㟊|H9j׋G\b1M 8s0q(%F]n]5+nV~L-SK \v{ݪ+n9@S*Vb/c\ZZ6$7VJ) -ˤ xc%])9 R>Vr6lqKvwW9#vvheuscH >wT <õVplZW($|Ax%dS/faorxyک4nq &Jςp8Si(zv_IH pemsTKܧ\4Ԗģ^#2Ct Vm|IO$FH83QVZ^[4}MQǁ z)mtF-W0;dvzum ,r#cy-Ҳ^Y5tB6q>픎B]Yan~ʦ6 /0 0$eL j/G8W^v/aTm#+(3_;<rKwcxǂ%1p֥g{ܥ:)F>psu 9ooIյJVED{֦KGjt'7r8r 2# =&-< p\L  sP'ܶY{<[vji^ܻ\j..x#Q2\$ ث˹vﻛ)uU<T9$(RZܗ+iM]*j.!T^<Ͽ*rw kxV։k%OJN$g5[E\igs)Ҷ=)\yo,gޮP×၅-OsO2Vݾ]U݂ ;ǕzFZfhkY=`sCj+㎘pAG7>u̫2+Nqh Ǜw5WC^]'J,_mf׿څe2po%6cZQ]\貂ztTip7|mSsp[p?"".Og`LP`ش?$nDAa(hՆ{umkgQ\29̓!7c#Ԭ1Ag+˹$ڿUb:UVzsNK4q}k,eǼW4s];CatUnӑ~(}ser1q"Tݒ0W`[[FQt҉{3/>ߺZ#`):- OEw&'=uȡ&2͎b[;\qoMs|G[-܀*sj]Z `l?\q9yU+C?rVboܾw>/3`:?[crd̲QP_3O((فڻu;rO|o]@vLήM޲Sitm~crl 'H _r;|u [2 wn[8n?xQ|+i CKK "лY'EҒdTg>:,tZ F?*>Ku8<. @N3*.zR_7'&MJ!7TҨaJjfu&0cv;K~c_z/«ޓ9)q~XB´&%8 ?{plSuҖ:%:>06yUJw-soSZ]l Ϋޗ7;6UJ!&q0;TzO9!7_(%2l]~rϺ{>K 7l;v-=G]~tQn UQ>oWQ*_/&5:2#aHۨ_U t[42`vUOJKu #8NT'38oqL¸ݘjj2֌;vW=ۍSu=Ržx?#_c8(È7M({hF/?=*9:.w2l<\[|qqe5憰w;9]_ZJM|3:?fnE)H_xQ}9$rsDZ|k:_ś'ȩ/7r1TKTrg..O4NhSXxş(, ܜvl_ܾg"c\ w{~--E}|=;݋;G\rlA8! \m]dinM{;UG?~$Ӓ3@yTR]FngbO\%D䒹iq5B`]x=ۏgbbn:{v%I._yQ}/otw0{WXGFFbY|rʤ_~>.JTT1˘V˴)I3k`tbn:,[Tq]fi+Ϣ}], ϐրIK9in9/ӽ#SȜx~]T)[5Cpy}^aĜkr잟9e))` {9/ұ''ty~:z$fw~򟃜ei~F*_tHۦ^_苐aۥh~d*8RCpNq?OOtHG_f> ]@GDܷO}EȘX-K֌C# ~솘P[ ;rz *u6!kjt3tlۘEV`XremZq ۟q8*>8.31nF2>xo.L/m490;\7'H7_)1nŽ?‹W-QnǟIV;OvDVnჰ:.zPIE,9??wőHִ8¯f78wb웺&z?UJ*n>KOSu?Vڹ=V,kZ9\hY5;;9r]Qܖ0lXx~\TѿF I|Β7:$s!`mH:# gor ;c9ώH#q2lEL_Rkw5sfpV/oBծ~1Z-w3oܾ%:>kq;`EL_ʿ:*ZÒǩ]Iu8(XƴKWkDGӘ#;8= ;U]~=E~..4ߝM\╹Ǯb#ZCN}lg`?YvΉ`$?!ʮ\q2C`xWeri=Lq k'Whf]v;3z_fYvL+zOW6#E9䮺cZ{z; \; uV!,"M»ޓ9(q&{y +SAI n%z>)7 EMoELJ݀FCy)OdN[-a >5]v[n$σkTGqWv;\4<"Q x?X;?W8kS9)@ƨ]|W;s~+qx9ySu,Ӑ|Mks~*\v]=;i?g;nwDu:|Na|#ZzMuΣБo1DUwJ51W*ͼxkY3={z|s"-{?,_g`D@DD?$nŤ&+v """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ {?,_g`D@DD$nŦ%9a6y3_kѬn[nTG8y3 sAQY=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>'^>P,Z^Y=qd{8@}kA{EdX~{?i/g(OaI 'ְVO||Y>,gh{q4m:RNpGIw4$e to7 d($R623c"R9& G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct'e0< G Оo`x1{w7B{[!] }- ynYvL|Ct* EK(s!ɰ<`x IHh@%=K9T-ԯകM/IbB=8dv Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YOt?IglA=Ӡ%N{VD:YQWO?)ZK_h$|0au<yyy,#)) ۷7[h:tpk֬A`` yHo5k ҩS'C$\~ժUĉ!I}]ԪU #G$ICZpB`_>v.] 44~m իWѯ_?4j=z@NP~},\Qkժe[$~;KVУGlٲ]tg};wDÆ ѱcGaaaX`s"##ѦMm(Q,<իWCpuuuqر#5j?Ě3HDDD 44a͛7# - zZjaʔ)#$ fBhh("""ƍcvS~:9N:eϟ7QF lٲm۶Edd$^~e 6 88_~e'OPt;wFHH|M;Q%IB۶m~~~c 3gD:upB8| j׮NǏǥK?gaߊ; J0]Ko EQ/%)) QQQegƍ1k,aРA8tuֈԩS*{1,[ <܌AOOOZ /E#l2#QExxxQ$۷o+X͛7_̚5p$7n@^p|7عs'bbb>v~7(J˓O> Y1glܸ_uxxx\\>Sx{{cƌ8ztq.\M6/Dnn.bÇ!26lXDWEQо}{b޽v'O?aȑX~=ѠAۈ4m+V@dd$V+>3,[ Gi>K#t۶m2e <؝s N/TZ2ds[(3qQjU~VZǏ/ƌGy1c,L&;{FEEaҥš5kzjoh_b _^ܹn( $O>+:t`L-]O??а_ ArJ#o,6m@$@UUmh?((͛7Ǿ}f$ڵ+<==!˲a0GSdQaִpp9#_d\%tG'We̟?:t)SЭ[7$"** UTGqA,cXv-f3X$!%%<ϓ *Eti fC8XUȚU>'"Bp&9YP n&yU$YUъwVV o>L4 ~ Aбc"=j*$&&:Qn]"ŁbРAP1Ȳ Ip!^)))ZNtĞ={ """dGԝc=z4-ZSbÆ ֭vZj48X,0R.n\y &p%˗/ ۋߊb 66Fvv64M3"*v Ni3L[d{___ <omv53aڵkJ*EƲٷo_/'xӧOի1j(롪QEGp]`\!3V /}Ѓc.xdJ \dMP<0ipWS}DY]1 ƺuVZE7iZ:UVc ׯ_eiخщ֭[ѬY34jUT)Dmb@?ȳ20N7~>NrfJ?M'.UslATb%`Kx z< ZS^8ɲ,oE.]0i$DGGyjTp??;3(y|'HLLg}CB4cynQJb풒PZrd2aʔ)6mRRRe̜9=fϞ޽{;l6!yp"v؁nx_`۶mY΂eY?5k"!!&ɸkꫯ$͋c\\\J*2m6"880h gXq;=VMya*4HB867lF%)Cv 9i68# EnesV?bsXz]qo7s{&̃ jժ_~x׊n۶-E֭[|&IvEQTPvhݺ5.^0yϞ=/A{nX, :Ԩ=PQwj%eΝPaIƝo8,[iލ ȕ( ۷oѣGѾ}{hgϞEzzQiCQXp߿18>=b(8j{6mʕ+:W^EZZZOi#=z(Xn6nɄHۧyQo%tqw@(n~ƱrQlXw*_nȆfM8u? *'\ ?=,AC=_F`` N|mET 2ݾÑ#GvZXx"8CF(a`zύN]pY" `l0s f-ئ{Q(%c& ~N wx/ }Jddd"QgC>}0vX4hǎ3*.mڵkjb BѩSr߉^$~ CFFzꅬ,|8|0>#HYO"))  m۶a˖-puu-2RNXV֗:ٷ~;ܹsR,x0dt#F@ƍqe̙31<3:FA$9r(:ĉ1c$zA:u FD!C ..ׯO>>N }Jg$!;;YYY2 2˗/cǎ>}:yΦ z YpՆ3QɄdggBqJ4@ǡm^^nܸbDi~/ξ(% ???-o$!99pssky4hl$V۲~<={6KތDJJ +$1ժN(q.%86a\Yn[qݞT,LK6M+J8Q߾r`0[p?᭪n([ Ыnڴ _r%&Nxut$IB>}PPP͛7$8.:nHCY=8]rMWf_%#^ ݞi,O!I^z%z'fڵkHHHヒ YfE}=q_a*J\<.)Њu Φܰpj (Gll,W_Q@AA4icBe|wDBBOѨA'\?U dT-pR!iw`l޼{%\]]1gfiZjXlڷoOㆸ-`NʑQ1 uRַ)#/=% *!*O*6W=n]AJ.f= 1`\T;9 $ 7zT SPs+𵩖[  ;AG3C0 LmDCC7ǁY{s-+G{AA!͡U@E?g"{×_Ams#i*(wAAT2j0KQS<̲g;y0}qmOu<9 y b=DEQ,Cro=^y*ADi0be A 0^5KV~f=fъx}J÷UUFjf;v6Jk...wvX,$$$a#hRoJbaeWB`7Z4xڹAP |I-[`w*UG k%BQ?if/h* p5 F>, I]o7e>QщX2RXȢn]mœwCDT4pe{7j8y$mV*'"E X,] QQPPQ!Qɐy<I7SxpY!"TUc $x:$I.*dY!Z jB4m#IL&DQd2q5kV䉨 @4XV}mO4ii X?|L"6 6m#ItUZlNQPPWWW烺O3u$SXMQ2D:8pLv7^CM_W 9VXdYuf<3E* ύ1ǐE{6v/i8|(*jhAs?$km$䦠av6s8l_;v`F]e˖ᩧƍb<:22gϞۑ  www$/_˗/bW^Çyf?b py"""P~}nܸ\z :uBz "[X,Cؘf3X`q#ʢi6n܈SNA4UVhѢTU(Xt)D Ɉ>?YYY$ 5BΝc8/_ƦM^z8KJ*eOFVЦMѦD$&&b:tMf͚%ڏ88}4ƎkKQwߡf͚ٳ'"UQPi9<8I S7e"BUB/ʭ8ݻ7Tc} w+`VxvsD7҄ _K8...Xz5z*UضmФI0p%ǣCxaZyf1b֭6lѣ1N1ݻ#%%4hݡiZ;u I0|pX~=YtRԫW ?vZ >BFFVZG}PȊ tR(~t*Zl 8É'#F@Qlذk֬Q>yflݺΜ9۷1d,_;wFxx8rss 6o߾8uBBB0p@xxx8#Ɵ:~!MiפI?~.]BPP 55yyyhܸ1 *f㤹"κr3Z8"NOߐs(?n^Go^`r XnmykV9qF/#+Z*=H`!)) [l˗G:M,m(ׯꊦMtmVZd2 ۷&  H+\]]#<Hzؿ?A@nn.6m.]$!""ҥKww"ӧ$l9{,RSSJ*$ !!!h۶=zh۶- ʲZjpqqAӦMB-[ <<͛7$IAqi}^:郠 x{{;$!)) C=TZ )'NԩS#777X)8떃geim_⤄]fe [8v, (8u;v۫;cv0M`6 甛 sڵkʕ+tx˗o'HtaԷo_ m,ҥK8uΜ9aXJmgpETZH* UUq5}wwwHl6"ak#UU ł,Z*]5JҌ>{xx\dee!$$n;Q펽4Sٳg6Ο?o؅ 8cv7>W=R.Q95eËTdGʵkp5L0("==˗//???:u ?p'YVCl...ϯU3ZpqqkS1c֭8tի777#yZ-z]RGJiZ*Aq"wVх9UۼدaÆسg._*U 55={-AD%rGh#pAGPPPϣ뉠*ZOwfdddE"qPUOÇ3 AE>|KM&i{WˏzjUUѫW/ٶ,n8F`` N8ߟVAT"wj֬i'(xG-йsgT^Fq>>>8yݴc ϟG```X^GJ<3Ak.l޼ %%uЗKl˲UUQV-!33Ӯ/O^mG8lygΜ <==9re ??LY-9{ғec+EAXX.\s!,,S ? %989 Ȳ:ɓ8p׬YƘʂ1fT:3bC~B\\!2>$CUUAQܹ9992tfT)|!!!Z*p .`Ϟ=hѢP^cdʂ8y$Nٳ...޽;oߎT.7BBBm6l۶ &Mc%$$6uZl֭[CUUVP݆ʼn+EQФI,[ 7FV ;1]vaǎ???DEEsG4nرc6o ˗/7WnR9Sn]dddחS *mzϒ;8;uQkTtxxG~~WMm⨿zdY[= f! (((0pQF5M+b6-׮]Cll,F ooo94j[H)+§.R 5ӋEt% ǿ̳e H=ԙӗWvpGfjtQl3LS]Jr-t9Pkc.Mtö_mvEg2իWѷo_ A EJss]vҥKhѢ! Hp^^^֭ٸЫv6ADrpD *FAL@Ab AA$8  HpAA  AA$8  AAA  AA   AA   HpAA  AA   HpAA  AA$8  AAA  AA$8  AA   AA  AA   HpAA  AA$8  HpAA  Ǒ0Aࠋ轇$Iʺ"De=// 1 B={ ::6mBff&$I}?W^yof8(-cHOOǹs琛{o(yj0` u _V]%xۑ;jժ¦MPzukUh?A@tt40n8Ȳl|v1<Ά`AUU|x'#Ajj*^|E~bcԩABB-[{1={#}}YԮ]\>ٳtRk׮vΖ8xyy^zSNΓ~\=+8~8dYF&M{cG۶m駟W_-W Qw ѣ_0dGQo;{1/^}Uc?bHOO݋|<9r~F89r$&LW_}xYA&x7еkWNdVWF@@]_5۷Ƒqi}A0~x>|mQF믿KWW 쯗ws’($ (:ӝ DQ}4 xG g&JmQV ???#Vn]L83f?16Ңf6=Ҍog2`6޳~~*^|ENIA`„ 3gƍ#rv1$ V†  ___ 38z(bccq5]v!''-Z@޽!"fΜ4|Għ~d7ʕ+[.~i:t˗/G^кuk;vi,\W^ hҤ FUiI]v!::)))pqqA-cǎ{ΝC=>}鷭t$$$ ##á]tG[o!<<Çǂ sNX,4jǏds&HqTnݺ+q^EF&Ml,P(9vѹsgt۷oҥK=,cѢE6lիg|2͛dx{{cܹm#z ӦMþ} qFܹcǎ޽{`L>8qpP 񱛮)mݻwg}l6?rss"&&GETTC˖-ѧO0ノ;bٲe裏Jwd⊹2w ͛c޽X|y & 11a;v,l84޽'Oqz*ك .۬Z ?jb8{,8ŋg?~<ŋ_qI_~ݺuCtt4EAzz:fΜ6ms'OcVZ!''SN8$''ֱ#ݻװ˸q;ןqqq۷!=E W_}ǎ(?ꫯ',1ڑÇV#1rU,Z]_?s :qqqѮ];|W_ c <#..Zx 6 ?sȌ18pOqaݺuطo8۶mC6m0|"++ sE˖-{n$޽(b׮]صkE/-Z~.b!"~gOQq^EADD4MΝ;!77.$>Ay,ߧp(bKG9͛1m4X,MCᥗ^ž={/ 11cǎž}0c ]bÆ ( |IYǏw|}}i&L2`̘1Xf >C… x7#G`ѢEXr%VX<9{Z K,ATT݋Wƻヒ<|G]v{„ N#vy2f;ز~4h'ODtt4ߏHdeeaٲeƏ_~sa˖-駟o>XxqСC0L uO!Nؾc,MرcC!666mB||<6o0/"VZ͛7cƍXr%6mA0sRO d2˗tGjհ~,]HLL/F2/2/^x!77زe DQDdd$A5kqX~=|}}Ѽys6mvANҊq+pE  ַ^Liwj/MՊ';wŋ#,, dY6^SNEڵ?ƍPU,jw^Μ%m/"+9s8cz qe'x L2Ů#GD~~>;[]&MT]l nwF(8z(A0V/hfL7|3V98ѣ;}||<6o\Xχd 777Ȳ EQвeK1TUᅬ Vn]nE wwwC$L&HǏcԨQ`瞳˻Q3f@_|9s&<==~?c _|8*mزI{b]ϓ`X#Ku1=ID"C T8/RoPs7,+IȺʖ(M`hR£24q4 >,bbbyf_ݺus֭[a2#q`5koߎ޽{ۅ+N8ܹ...[o's;vDǎ!IE 777pre۶m$a",sX.*Zn: 4h1/cT c NvԩC<6mڄyv3t&fUU艗8CAA܊ݷo'geey0[ogϞe.z%Fmx֭[Ü={B4l۶ <碴:t(bbbm/_MMΙ>233)Aܟ")3nAB!ۢ"ːcj+4]ٴ1h f3v/7pZnX`?w wEЬ ) 8o^XMwʲcǎxW9saÆE>caÆ`ӆca$''I&?򂗗8r>lٲ1e[<`ڥO> F`x"+ԩ{1DFFzElvܔ84h3fp8".\Pۼ|r* UUѳgO}1 E}[!ڋ/YfN?W]~QYPq4o~~~̙36l@͚5ѠA"ǥGJ"%{;*#_~ 㤛Ξ 7 veW Hժ@p3r]U<:1chM403LXFx/x L<zGg;`v1plK'ܒ IDAT8{ !!!FÆ 777!((BS(-dYƄ 0zh]۷oǶmzaժUpqqq}=`ZV|9+UZZ\jbʔ) ~<[*X,4h͛]v׮]K/@}-A9T'-s xHLu*=Z㴛w ׀'cCd* XrO.WtdN:8wS'׵$ fc 111h߾=|||`2n[1 9rġ]cƘQBE<Ø9s&0qD\rSQi|}}q2SNS/_Thtnݺ8ustYVosȐ!P111N)L^^8[KDQGj\f4"""аaCx{{ŋvmߺ]z.SL)ݦx3g"$$}Aƍ駟"$$zwժUCƍsJ)))ԩZjzaҤI e/qpwwǒ%KPPP.]SN0Kd;AYR=z hӦ BCC?<Ϟr20fgdТEVjWmkZzEEA A @=IN&HR|9ww]z0}tJKK)--ea0 7e+_oFQ8{!E 04^[by`k%GZ/~'R`y )]qD7b4hͶmo0b ӯ_?~_2s̰3fpRSS5j]w]]J4hkwbb"e˖CSNy4k Gv5kC ::͛ӽ{w{1~aܹ3DEE]RRbW^pOq4\QV4+䃽jDCuN3klrjuyPGTnaxV,H(h8u8\gl闆XSݹkCuC.]ӐpŘ|gɒ%[V] B1r$t]{?~aÆ;#$k֬aʕv;w!CuV4Mʦ|dddЮ]kX{r|׿ ;G [TN.7hY MɥP]˓~V>?va4rM1j8q"?Yv- ގ#""SҧOڷoOnn.7n$66=UJKKyGٳgGG!22JuQ8طo_}QcA7TcrhYUTc4p2syl%Vhu*?K{7aԩ̙3QVDFFG3жm[8mW ;k4S-PIWU-[uVOH(©S8ri|Gݛ~~x Y AQQ˗/B@#GPTTtD}4Q 5 r(XmMa8&ep8TVi>m9fGO;(((Jqu,y(*ŸKm rF8 ?$##ɓ' QUx>cS)( Ǐ個3EQ]XϞ=më{6vLyy9999{ +uiⱗkW}>n3˕%J}RgsN>JLA T/[&T^~(,>A#KAAuD 2K,3'148PɫVpN.]<'n68CQQQbK>}8vDuzQE(BNN'OD4222hժeQPPcǸpm6RSSIJJv9qaӇ<;F޽CFO&''4INN[n!K4=m-ZйsgAUUoNQQמ]| `֭t EhΟ?ϗ_~I  ..={z7ٳ(Zl_| h޼9]v KUUˉ'PUmҾ}jзo_###ѣG ~|>vJ\\Cdd$ر4Bqq իgSII {o߾w رLYMư?,]gǎӫW/( ćIIBY´l+~l4QY؛[™sMhi͓ќ$Z.Um:WP#F<E!//MӪ 'pI IIIСCl۶;)moRZZJFF.\`\wu52N>M0QQ{RXXH)((UUy^^6lW^^kvv6֭###g}Ɩ-[ַ%ŮXt邦i[lE̙3*gϞ EQ(//gÆ lߏ(޽,ڷo9M61c ;w*yyyksȇfҤIX,XgϒAII K.sΌ?>(**O?e޽|>صk[ne!y&oEEEtؑ|^}Un&Q;v`&OE$$$k֬!33sٴmۖdOlذ޽{{ѐگlcFFFT6l ;;nMĆ u{ -klM K2@ :4;CQEhoZ}Ou/Ϟ=i'0rH4MA*|X(/`Ĉ(G}Dyy9{uƻKzz:餥*7xglۦo߾iӆzÇ% V6(**b7ݻc6ÇW^aƍ :'Nm6nRRRp={sA=z4߿CᗖrJ ƀ, Mx7y;<Mtt4yf6l@ @u?ǹ;\۳tRWm(t֍޽{{}5k0m4lf͚5xA4VZŪU9sׇEEE{4k ۶$f*GcǎhơCbϞ=X8eYӺukvYƳmڼʎ=;|˲ׇ9֭[cN(((lrWsn۷oGuuɰa8s ۷'::۶,֭[{9 4 ۶ر#jU,cgk^8~8@}dlۦO>\pӧO{}ܮ];~whFv8|0RTTɓ'1b0 Oڹs'ׯoM6"6¶mZl$=, W4qWm˗sӾ}{֯_ϼy=z4[fÆ -oFQJJJ^VtT:B,ˢUVUONNѣ޲ӆ Wtk.N mܸ\GDDq)i޼y\LtMJJ dY1A֍ٓEѪU+RSSܹ3)))^ܲeK{Qݻwi4o޼NmӶm[4}ѡC222x󑟟OǎSm}_W6i}LNBw \\-矰/Td4M*8N:EBB# 2ydlի nݚ#FxMn0x9rmڴ)(6F'\ 33)S̝;۩;e6#Gd۷ǏoЮ];nfj߾}%ݻw'>>q:t5k(**ddd( :t`߾}Gbb"`NWTLRV]䓜;w}石n: &59A)'2‰66UU9u-[iߠ*qbcc9|pz9 )))ܹM?~G_v{;:ʺB!>>=zЫW/rssy9|0m۶m45GDDV,UxL0˲ر#;vE!+kܰim|jq]v 6h۶ebAcTIs8lۮfv۶1 #佨(;ƶm0 Kۿ?TOdCQ:w̶m<ٽ{w))Ԩi]StV)++c^i{^Έ]bvD~ZjɦiuVt]GQ O>!))ɛ-%^ɶ*K[\m_4 ڴiC4:t֭[.׉_hT8L$==M6ѦMoypFF'Od޽tы:^cmWѽ*ک:eѥKt²e<(p5FSr]k6Ǐgҥ֒v_mFżyxWȠݻwӣG:teY^Nǖ-[Xl! +;"+͚5cȐ!,[%3>۶ضmm۶R4M#u]'++-Z0nܸ*3j(>CN8All,ǎo4> s^z%:u*XTO?ezP'O˱co+x޳gmڴT]#бcGv%mےiYV Xk,Z3f4Y)~AWqٓro 72J #55+5:dzETTСCC Gi])//UV8 !K {hRSS=gJ)**4M233pqJgϞު6m0~x|>~߫%( ;vGZZ7OMM8)))t҅bIMMeĉDFFVʵ-F':BhݻwgԨQՊbvŷmTUd&LE(H^EQӧ Y^p~lۦ{^dq~?Zק}UUݻ7QQQm}Fw&""N!Au\X&6FqCԾ;o]VԵvCrssY`s111Dp)m.x׊_I.߷>S j>A%T"n AAfTkOtvZA_]@h Ǒ% L  CA  "8AA! AA  AA! AADp  AA  "8AADp  CAA  "8AA!  CA  AA! AA  AA  AADp  CAA  "8AADp  CA  "8AA! AhěNZ~HG JQ0?]ץS_;o-&;;u֡it WpxM+UU MŽ o7tznGeϞ=8Nv_ 8pcr!TUmXousZhϯ( ΝogŊa0k,?jGW^̞=C,n `РAtܙ`0C=ēO>Ç߿('Շ IDAT?-ZwĉMwQ;"""L6ѣGcaY999ݛG}"A4hd 4cf͚z %Kжm[~Fq՝r87'xxST3QZZJQQ9w\ǝ;w+ o޼3f[oUy/99ؐѣGY`|e޼y>|C6Ym޼ӧokQ'?! sybqM}ӫW/ !C N֋ٴi y= xsN|>7xc|>4c,..f 4Z˯,Z'x]Cߍl3ZӺuk5EQ0Mo>|[ߪ{1cǎa6e5՝ر w.,XM7$OSAeYhт[oۉӧٳgyyyUFXնmϙY---, .r{p0 JKKٻw/10 Ο?ݻ9ta|v۶U;\/߲,/98N{nN}Oq0M3*pgYiy_/ 8?<`~ۛ&x] ;v EQ,l8pL}`TsԨQ$''3w\rpu rΝ̙3sdgg3tP 1c߿?Ç?O֭{0 {4q/?bĈ`$%%#`/IKK>dxWB)++K.p 5L^|*Ǐ3ydzرc1b;wW^ gw۶m~;v,/KIIct֍믿'V\qy9 [nU,ҥK:t(QQQWvGDD0|p:uTM6lݺJ&55h߾=iz xmY3n8/?)++t'<ӟ;2j(FEFFb_}o&%%ҬY3RRRHLLq?Ҿ}{\WEQxi׮mی?/GTz8EY~_Y9lnv ?<+WO%%%L6?`~aYz+{Fo~<%KxG0M{{ɍCl4 I&n:fϞ͊+Xp!{橧g`aa!&LرcÇSXX8k;>\X^Q^~eN8ٳy衇˗/}8C߾}|ۿ-?'24Mg_~dff]w /o~j/ Ek׮W4R 馛Ƈ~HFFp1K֭Ybom]ٸq#2pFa( VO/\ez[ouVo'ӟi,\)Se1h ** 4}FaVۨz$$$/gϞt)$i{AΞ=i8CDD~oT8Ç/Vl(¡ChٲG7salذ]QŋcO>$ǎ#'';ѣuE{>,3f_&&&ƋR3sLOUw]u]g*`0s ofHo~H,Xᅬ[nMJJq&p4ۯږ1(*8[%WwΔ`YWv |Ňur a\IQ\{j \;͛zٳg/=>C4FQee&Celڴݻ7Me:v y;-´i0Mqmx8}4hFTTT.lܸM>|x%\ðmsZ3g^?9YYY=nZsE!8Wߗsnj˽+V0fƌCdd$-b|n:2 zSOLLd"awm׮UIIIe˖l޼_vsaҥ| ++˛Ldd$PRR"JirSщ;UBù2JmPuEW:"cT #4f~vGA0"KQTT#x,#:T=h^:u?}Hb6wС˗/gʕU(b۶歌v& }3f`ɬ_G-hٲPTT8UFG闊شif/??/jAHO#Qg8ԱԺ05M?{g?V 45 "9-ۧuE`gLWE 4 ٳgW};CBByyy(B͛AAAA`ӦM`ٲe{1>3lO?Mqq1?K,>χ(=]cb&˖-c娪ʄ ۷SPPƍڵ+͛7=111zaxJHΜ9SyyyՊ݆-Θ1yV^ iFQ%P۳.wt)傩N8(N"I#4L]fz#b G:QrbRyu{3n*N"\tmӦ ?я())'?%:cY}Q2؆a~zLӬR,2p@>6O?g̙3h'|BYYwy2R0x`L /~z`}]PU`0Hbb"r CQ~jо}{Ng}w|=z AQN+#V%(k:⑖T 1} 5JoFawiK_x*k'd{5]wʸq"Q3vߛ}:ߙ;w.gϞeĉK/ysa`&~;L6ロX֮]˚5kٳ!n߾=,\V~2eJ~_t]gܹrNWog|;ߡgϞ=z^x۶{kS|>{nx㍌?%KPXXȌ3p_3qDƏ[;C۶mٻw/?Oٳ'ra&Yp!i2cƌKxUUeڵضͨQďBmbt$P4係E).>CᏋ(* 0z+S.=-U>3sh54ۺlO%%%^c8233yN|g?Wax'ǬY;w.omȑ# 8*{= `̙oә;w.'OmaYݺu#++lܸSN@zz:>`ōP :U0luW۶),, ɷ2d:O<hQΝ?oM7Ă (-- m"vR"d̙XENu]㊸-[ɓ'3k,M`o8(** O`*֟g?K/\"z={~4w6o̼y'NvsRRgȐ!rDv6Y0М%ChjTUG%O>19Fab "Rv>[_<2F94}dFx/rLMgum#O.? a*c:tmib5y& 95X@hҟl%¿0+_Q* SzJ0sX ĭеyì! M5-⢴0[bOձGZ^F]V>F31:"8d. \} G!!@lo*:شTod )WqԴ !E4kA%4\enR:íۼձ* UӊhgxĘ v5\5Ų*Xիyט7o+WlRUʎ_w.Ng WMHhsW5`ČT:D@TA/;73M$>sy^CuYf =ڴ&@ȈW_*fj9z(;w&33F+ne6eeeX 3g׿]vȑ#!G*rT !DV,@q,?=Ơh[}S'q|oh4j؍9Jz:t 6ORRR5McٲeԩS, ˲:t(ޖs-8۷]Tgk|NcǎSNK60hk'95 \sع(:U|Q/T@?JLSd6,\ʼG9$`jp+E.F>TWzuv:G:hYC$WPbzAnسg}Q!K;lAt]'x;V( QVViUUQU0;m۴lEQ6\ᑘA0ZE0$**lN04Ms;FDD:axmJ޽&]^^NTTe8h0pNjjǦiiDDDT[c5""UUC۾k5ȨJYYQQQ!ץkWQ|vA.Gp\t,ulUHJʡ,H h4-: ډ$w`rvl]Ƨ{N/30-Azr DqcNyIgT(aS=\iHؾ};k׮塇Pnn.[+WVƍ󜭢(8puQPP@zz:cǎgVXرc֭˗/ow}#G`}Qoի~9@ @VV3|p:w}ϳb ?(4k֌#FбcGt]_$xB#""YfQPP7oҺukˇ~Ȟ={p( @~, ]y7III!22> qaĉj*l8qwySrJ 1 =z0rH(ѣGYjΝCQ:uĄ 7| 999 8A6mڴM6gժUL2ZOQV\޽{5kgY۶m?~QEΥkX8vi" TJDX{\SBfŨrPm;$QsdK.aE3n88x k׮EG{1l0wNyy9W7{CXUU;vF?a̘1:u{iӦm1PU~0/dٲeDGGi[tؑ)Si~)|w}7͚5cƌxbNJ\\iz=Mx뭷0M;ϑ#G1M8{n233{0M,>fΜvZ>)Sٻw/'jĉ,\#GҵkWJJJXt)YYYL4 qPU222[aO6l;w`KϞ=/9z(QRRBϞ=Elޮu(cRpQv IDAT%D(88( ҌShD':Cvv6k֬رc!%%%ܹкXŤIhݺ5QQQՋDPU]Yv-:ubDDDQ͛7{iiTVq"##"111amɡSaۗvڱe4M^z1rH"##1 믿#Gxч텻)G^^7t AFFd!B"%%cC\\C j4Mnfwdff{Sk֬k׮0cСx+xEUVx㍤W-0Φcǎ׏H7- .-[Yf޽h999DEEyD]<3XQA5񴈻[kRk3V._|44wy]vXx1YYYS߷o_ضm_pt2g( ڵ ?~.7_`L4 ˲gȐ!ÇahVpHLL %33˲ .53ё"SNqyJJJ8{,IIIr)N>먪J~~W… bi^P3MΝ;s!>]^;k !4Jnn.'Nࡇ.\襤M7tʼn{M׸54*ѹ[Q1#222$Wf>s:vHtttIյ&;I}~? mi۶mc۶m!~ԥ 7 9պ_nظq#G%!!<Ə/]A.#::[n[wmFqq1ӦMua뻬KJJhSTY:D˲ػw/۷o{%66qu۷׻M+:r4bŲ,&L@zzzc>uuG UGVؽ{7)))Ǔ"+TA&Rm6QJ߾}9r$-[6iNEONNNҺu*p竭%mTΜ9"rTUeÆ ^M8}4am-۶i۶-gΜ!ݻMӼWR#uܷoҬY3~?;vq `˲(-->[斸#Ek]^3M.]p!8 ) _7q9rd*~. 2l0֭[1MR{=a^n@DD\pJ9ѹsgXx1EEEɎ;&==˲*ׯ… ,\?ό=޽{{ӵ!\ey6O6,^~eE!66'Ҿ}{lۦ]v 0M6qF|>cǎeݺu9sƫKGFFk׮eڵ̞=qBlmn+Vꫯ8>3p@/:~ʂ$U˲?>.\@uz(Uff&m'~zǡyL>ݛJ ~8ԳgOJKKYnV"**1cưpkZSEO((( 11QSAWEj9U0UԬX fDDDXVtVVu۬^׶`0HtttiR,axR]]v۶JTCMRݹ\rssY`sqqqxUDMEb"##CڪOOWi^b[ӯ_?y Hu]m*nN~mDDDxηqnB]u# Չwyg{EGZ >=>Sݹa߸ \յ.8'\ts TkP5/-{"unN7E*ŕltA:/04A}OOOԫW (\/A*@$5x8c`* PM~ 3xCA Gn~ s+p \.bΆ84F3ܩ 4w?*ϕAEp{쒒b˫tURRrK &&7nQFϟ?dѣ㏱~z={]vm6:p 6TY+@Q$$$bs\bՕ:?>S!??wzJJJN:!""aaa@cĉ zݻUVx7mDGuʗeGFFׯ}]O>aڵF=u]G>}ܹsO©S7ZF\L} &jV]~Gy:[T w, ?İaà( -[o|1d9rdk4 HLLرc[z|;%%ӦM3f FIeSGYѿ㏈Ν;_SNXx1 UPP}… HHH޽{M_+1cۙ]ł7N: &`ꫯdԯ_gFzzqs֬Y]vaҥ(..СCL=vEA-3f 4MCbbyyyHMME=k'rDQĂ tR;v?3g_3(L&^}Ulٲ3f0D(xcBBBQF?z-ѣ`m۶Nl6ìYK c ֭(?~< Xlڷo+V;}tddd`8z(ڶm ߿?qơCxW`2r[)e<<<v922Wtzqa > .4@Elٲ&o5MCXXdYTUExxQ~ӦMѩS'8p׮]3Mqa66 HOO7a,t L`R[gw0yYCƫ.uPVc 3gά?x ^h4l淀 4/_Ưj'j;_$&M_|QQQx"t]ٳq9He4 YYY >YYYOv8z>Q>۷(Ɂ(Y6#H=z3gt*6c8s I&Nl61!CD$[>>>ի._o@EEƊGKڵk7o!d]lق?#&&Wl6cĉn[5Yj6n܈2BQ0ذaMRq΍UUų> www$''o۶ & {Ni^J{rm2@mMp>ItT\jW7kŋ#..+Wtx/Qѽ{wڵ++߿۷wؙ&B˖-a2l:`9!C@UUpΡ( dYƯʂl(? QY-8:Yn8'O?믿TzB```u1PVV9ݫ#;4 {EVVN UU qRUUQVVd;v̈Vedd8XhM| 777,^خ\___ :?fwU-߿hذ]5.X {g֭[ /RSSiÕ(-..&@MAd0:M k@nd5:Eu xc|Guf/=999eɤNGúL_@LL  4L&I&}as賺v^#66|M#**ʥ GeGErr2TU5E5M3o*:_K]wލ;b޼y˃]駟F9ӫԸ8v9u;~ۡpM-jksɶbYYvލ>}d29]ȒT/eZnq7%nwFC3"(qqqvo9|||Cvv2^ 7n|[:>777Vm`A%K~,Y_5/^9s`ٷ+vʂ dɄ3g_~CtRaHII~& JZ67n܈|O>N%B2qD4mXjϟs"22u%Kx嗫-6>,noMW^uzիWmTmN*!99}`Ȑ!#@'yB xH"tc"._3_(IpY/Ahz5z])8Yf>}:+ iؽ{ceiiiPUn\M ٳgQTTdO?׮](طoJKKɕiWHxx8TUuhIEQ\Kſ߼y3RSS!E/׃1M69rp |K3k׮ƍ!"&LPTÇ9ǀ Ns O$$$sXl._5/ Ņ \x׮]Chhhзo_#ox ^v ߟLHqڌ3<(-p]&Q1/C VҷuӧOGӦMq ~-Z͛i@JJ m,9 [E> Ʉx .DBB1*wss36c8XJ29s)))xZcsX(**UM<#==%9ǰaÐ>w"""*)'OoTU5Lk}S IDAT,˘0aA@|| M6ؾ};ZliSVPPbccq9c K(((sޅvɃW6l0rHKƊ+0j(ce"5k.\T4mOƕ+W[hI&ٳ.ջUVضma#F` qh꺎||hР.\aÆaƌ0L^ejHKK o֬t\=IB屪b۶mر#RRRo`ժUxgj*SNx뭷аaCL>ݘC\\222ꫯV*:U0RVVNrY;|:u*~?&LC0uT;q]UUo `_Mk7 q[0͈@׮]SB>,;ߦc̙Ν;FV^Co7W@(6sیW D,8(rCh8Z/5xaboHz q]sЧOL:SL w!ׯ_GPP6ll߾M6;n׮]3f ֭[=zЦ_ LJTM/_RrnN{0Ρ NejA14UW=76n.Ȋ n+MN.p$''d2'tȑ#(--EDDAีV& ,ߘjn  . G[;3 DrRԆqW "c;C>gےQ1 Dn%1qW= pدrU,Fbî4p2X 56q[- HD=Q6¡F*ZTW> 1SHT ]&E8 n*AAw$8  AA   AA  AA   HpAA  AA$8  HpAA  AA$8  AAA  AA   AA   HpAA  AA   HpAA  AA$8  AAA  AA$8  AA   AA  AA   HpAA  AA$8  HpAA  AA$8  AAA  AA  S0$8 n`ҥK(**"c  nWIpAmvu$48˞395@yQ(4+!5Qn+u$AA˼nFf8 Q(PT zaVѯt&䎽K|ߥB\/qxyEzk~S#UCxTfmFNAdj/`!++ W^ELBp-0 Ot0rPѱcG /2N8qoSΝ^ݻ7Μ9AlڹSި Xѧ9عs' pwqYϑ#D\-R}]cnDjnDL~&y3<昑X]*c5=,ˈEΝn:ӧOcǎaTtf,#,, [(6O2-ٳgѹsg )) NfC AϞ=1sLh'OSNܹ3,=BCCh":k[RP!44֭xb\~~rUU˗/#66N׌fp;W#XgBcx Sҹ_d"Ci 9*y_c2h(nX`[ 8p111ظqo5ͨHNNFHH=?ׯٳgѵkf`СذaKۑe EABB 9Eaa!V^]3cO?EYYQZZ.5qsssӱcG`Ŋ ɓ'].QO ".]ؾ}MQ}t.Zd1 ןAy8x {NsHP=aʚ,\Deq]-θc (bҤIHJJzQQߏ.]|(qZ;==& dtEEE8pœl63ӧe̝;$e뺎~ NBPPgA$]CEvp֞C=KBu㼌1l߾9r$> UU+-YгgO<Ø?|UF?Au`a-6C נ" (D x%J|s!0\epS5X ywdipalذN\edeeĉzXuhfdsΡi4MXFɖ-qOOO-9`eYFII N:ӧOW:.2qq9s,\{zn|*ۑͪ5M3cϞ='Os^i/]Ǐ.EQD||}}ٝWEsT~qqQU]Q=صkLD~r09YÁlaR/׀c.One0r ٌ+V@$̞=ypApAt]tATT:wH9rp"۶mߏ1c@e$$$ 00s1泻wȲlaڴieC``))) Ě5klSZZѣGM6իz聐\Y\x @лwot[ƚ5kcջyN.{c=fg$ 7nЮ];t O>]}˶1< CXX>\X[nE׮]֭[CHJJ֎?(;vtdIqa߾}h׮"##^gM# ڵ$IȰ9#]vӧ~wȲo~9={6c D6m IѮ];L&߿?TUŦMhAԐEښt`"'`[咇M!lWy){(^^^? UU1yd:bذaP˖-÷~>2d9 Err2^{5hh$&&bر^z*FJJ MUU1f$&&ɍ$˦,;w/DNxb}Ņ {")) M6ſ/$''WZ1c83|7ooo:u &LɓW_aɒ%_>fϞts!&&1YvҥKQ\\CVL{1(:8r(((1ci~Cjj*z___"Ǒ]p)?:̙cs5AE@uٜɓxw0bL<7xxxrUVt9pssСC5iii0L>|!9hذ!Zl7MDE輖W&m.cԨQHLLĞ={uV,$IŽ;mu놈K駟#ܬY3#QHd2!22#((8Qș1իW#33qqq2eL7mڄ({ XlJJJ|rDFF~zcFttMu]Gf!}gv>>5j୷r?z(ch۶k0x0k,]#F0r1cXnDQQPPP-gW:yI. (,,Drr2TUExxͽ]TTT<65mr_+Çc۶mHLLDXX1Myfp1|pvmӦ mۆnZ 1̜9҄իFÆ :A_Am'IbҤI6#wUU/"** /^={6Ν;=z , ++RaVU'++ .gC4眣}P999EsAFsH=z3gt*6c8s I&Nl61!CD$[>>>իgTur\p~)>s|Xf ΝEEEx `;"$$V*~-QXxm۶v;wD@@:t`^uBJY 9@+l gPOfAu&L,񵕍7k29Z_ "wn7SU]v(ؿlmq!lҘf͚ ~W,\SNŤIK/㖶!""##eG8] '6qDȲ_gҥKpww@Esww*8q"86ɣ{EVVyjW:-U^{ ox ̝;| Zj+W"66imE a(++޽{0h Xڑ1b$QZuG7R ojO(sow7{eu/xر~`A999e~YUUcZ5U\6hҤ-E_c(,,4WmX/?o&eeG5),ɢ7wbó(8v;t?7oFTTTTWWgoȑu6m,زe t]GLLCQCT!j ,¹#T/^5-ܘ%:59|||Cvv2^ 7n|[pssCnnn,Yǒ%K_cŘ3gfϞmժ쒕An.& 3g/Caҥ(**㑒RiL&c^őZBٸq#󑚚>}M7.,S`X{Kmjhݺ5m6@jj*Zjx|ѨyAxB~s*W-JPLp%k ?gT,4k ӧOGqq1^ycٝ iؽ{ݒI͛7#55 @QbX~=cY/_v:ycڵظq#DQĄ tuժkZʵ!CIII?1h jgSA MO \5;Q0Z-nq *=dUWBWCuL>M6ʼn'=hѢ6oތLP}FFRRRly;Dֆ#Q>,L&.\ ƨ ,###è%qvuەM+˙3gx.1˹WXXRo77*9GzzKsaÆ!##|>DDDT򭭗/_4|;vleo,#==ݥ͢4M3GV"@jڸk*RԸqcCu<#SRR9Aڟ2f8r?QOPOv+MG%*DQ=O-^Xp8{Ϭu`d/C`S="8D9G`ҤICqqMتU+l߾Z1|p,XmڴѲeKs.XV(\~vaa{.}( 1l0$%%aȑx饗+V`ԨQjEEExw1k,\phڴ)N>+Weh&Mٳg]wVm6.#F .wwu6ѠA,\Æ Ì3`2g?,r5p@Iov7k ]tAnn.FmUUEaa؊v$;Nιu:~['˽EQ38ݠo$Ix|o A:4ĝx$ qC,˳JdU-/\ GCPZ3ͷub~,z2HKrss#@INXi ._[{0|IDATƻS,sXA ͒REQڣ:],X~e(((@֭fϞ &b|˲Ա$$ZDeY[\o]_e;3!!~wzɲgy׮]3Jc YYYh\ ȂKS˶0'Mt @q8bqDnFS&6M`7 ,Rr .}[,fGg| Iۻog_ry{ӎHlfpfUBprDPZm#|==9i֩g\CI@(A2`ub%HR^~ܺhעs&7EWF:Gp-J 0Çq EK KKW~AbP(@tG+h֭rm&#w5|hBڗ'LXRF3K}IW>, kVZr _Eot͵XU;̳2Ҽ^ᄍOTDFMtn߱/{)azSޟeXpƞxE+VR$!٧XW_%?Tt S'Nr:=K|fUyL5{x߃n `QC|BD-SD.y;$\/zgjZ{7ܴY3^{x1VXs۝>LqIIJb!eՕׯH7072yJ/~-|ql}E$x۞y5Y#.@_ϛ{sK VwzFRw]9{({f  Ho=яqW>P]3ON4Ƌ.3da~a'b_Yu܄^un_yk&iӣWַGN;~PX+o7|T^ݲΟyO, rQmvFRgy#<濉1* 99 |Ѱr c[w? 1;g}w^KΝ?o#$k\l7}'|c0+蜭Msͷ bs`}{tїO20r 0J*Ϲlަd7:|X0"@2#Fn<Ż&CE m?xL?ZOc]o}>TD}􎻯='N|ckۢmesb}]zɹvB!+=}m޺[Aw'-]w?pMS~@ b!# A#<>ǝ; b#))/}]z߭^zUYE9xaCe0 c@~; _|Uk8/y7`A!sR^ScwnfÆ[3B"β{foز-G޺KW|w߆&ƨ1f4*KNMwEy%fJ"$}K43jjk>z +*tɬK/W/jO9c_Vk;) KKlۻk[A=޶w]M~/ Q=ۤ8W6nbܴH4old `ZB"l۹{ѭgguGCpEݲ$kkvk> ?~_Y $4_板nopSyDt@UM 2 +!W'^JP d$b?2,Wڋ9yw60P3fh(E8S`[O`Z. VAq3S^|u7si/Z`^|}r;a7nܕϋ̄S{e4ef;u-7yt bY}!͍[wbx8$)Q/>rMh;P %f0o/=f_qjd  |ܲLڍ*dIbRHӅU5fB}3->-7z%b[65uU_l'M*>~V=L%A>d[(S'Tt·>h!‹OkXSFSFHKJRVT7TU~9&ldfqWw|e/ڷ?A*ZVkzZbbfR]>x٧unZy)tܙ'M7_ݳ5Q:U>m*B]C}mSӝʍۂ{Ӓ_{?\{=0?^}}ڵgQY_GlCCnQc0 KJ =!gjs/#{~' 7|`PsoG M۶|l 2c&Ͻ-4߯n{;` X]>{'cde#p!m Q[nX6MR2Rfzs/}b\9}& K {E{5*%.?摻9om-E8ng.T8zr-A{_ZS/"gG bщhnc@@Obs8[7p9w쨨7bTVr74uJy]M̱/hf76m\.T7\51Xj {{G=Y7IV-)>Qp߾7}j敗.Xu!qG)+knۛzקK"RiB|2mً-4aBb p$44|A{fd̚~c={34]}<OXNpV;u&8*()z?,0+~<߃ϳv3POsΖK;iӾo}n(x}޿@lṛxNͰ+7lgtZ{egkn w?5 GN?i1sweg\yw`ZsϜ9̙uùoXr;ӹx 75֟<{VS0*U}qJ\_oQ#W莪kg^}Ͻ|@J۾g57Qo?|oSGf>Dg[f5Y?v oQ+6à18G%Uw$$̚v24Mnm߭_&w]RГ:sfvV}}n3P^(cT5 qp,  gJc :gna(J~lN4?|K.0jL0h3tzrO?)R܋_~obx6/Yq9_.]U*Jt}o]>k j~tIо9s ID`d4؝7翿96?mΧ6Ӂ}\ KʦMhŊM; ewkjj:iKb%ƭ[N3.Ot<K ;w.SP,OW]\_cmQ"t%M0hDd=JyXr 9T ZHL r>Z#5oް~mx$$p}wƩqJ.>3/ ER*R9~ 4aSw֯V,3y @uMyKcIIqP^U0j"#7(6Qꛚ"IEu8mv"""$U3!RUX^{cǏ7Aѿg6>]u_cN8e՞Nt3!C%%qRWdp~3)-.ӷߛuɼ 3NDD XH%7o='Nt)/z}M;YOпW^!9 Pn'"آE>Hfj.j:7g\2=q\4iYIcǏ6<4:[3a8u|ޘyx˫k\jؾ"n,u"#gIZ;o0n<@T,v g1qv=-&Qy-pT]zYfQӵEre5 8l۽3/:XaĚZ~U{?a((,8G`GnO>lPq!@$=2Mn#`$'&GTʁ>2z6FaѾ=zq%5"_xj! 8~҄E˖'=g9x_~MS9{ oF3$%&gmLVK*ͷ![zRJoRZ43nneu{fO?=G0rzܶsǺ͛E#O?Km\,9.۶8Q~"6֣0}M߯fуRL;[ ګJɷ⋅}3=?NhDDDp#@Iu m~'io'NWONZrō_=3cfל3gtltP1nY[v8yʔM:n´SғS6+ 7]{e=dO l\[ͷk>b[+uʄIYiW_pIwt|`fZ .u#F{-ŋ6ڰc;Gz덿ҧXj90E*ҘQ-tرcGtKN3ܾ}s,x2wsf55-_O]#@[FԳϲ; 1s8Ov+K]T\?d0t ڪ[4]?v{νa'I"բx%DL>߰kǿ{[owwڝ4y)CW N3{|9%AwAdQK[` pML7^z1۬|_ꂋfM2in>_b1@FW^ >bk"iSM;[Dkjϟ M_GXJv=.}٫Ǎܘw^w׭|/t}"ͻ[aQ |bYȦ^ {O7?dB6nȼ`1/{乧8q!`]%Eq/~=%-XŮ&`$%8Y3$ hkׯZa\=g^zkUWF"h Fх]<'BB1ie߬"[E hprpl:ԳN>5LA";r潻Opn©hVxO\5u&$vZay7{$C(()Oح-}t/"3 Yz'G,~al? y'N9ps?5T_9Fs5=;oAx*La7,[r]|tm%Uv1~˘5ҁ(R7j!j}[#fLsy3f̘:lز7]XVJ ˖=%AoښkKonP/j ̘6}ɧ~g+F -yW `uB<3zIӺgdUT~t!&p'r:gnb\^_ZB6A}QScӔ {19휳o|5b'&DL|gciIџ6adP XRʑ"L.]슋24 qu74CiԶvm ;}n$dx IDATl} >tTn^HHAI'ϝM:k#{-D+Җ;ܴAmGi럖rJJKZ~F̡zSO^^QE|4[ AtMܹCPY /aǟXl6Vˤ|ïƇc (XKNEIʑfE߭\v#`>>$q]G7i=VKa_4ϖ,@5IH4>C@ٝ//dB4MB1@w_x "4 937>(8%7\|4_aQ ^p:gt??6#)埏?yEsE1ol0i1 QU^_̴D̊$C02SRS])cvKM{}3y>00BK>T/?_( 'c3`_iYϧ͙C[TXncG46gksoV<('UUWZ-2-v;bya)?~?xE^E5v#<kB#h:ݷC0f5j70 iGNZ|LC7mZ >Du%cHQ )^;t48Y@8hȩyEktb3GO|e.SNOMKyO<#@([N7w7:Dt7.]&Wm09 ,գ=:ڇK/<7jQVYb3/%0X͢VkM]ݘL)Z UjH=X[iǏ._+iszU?G ;fdbC'KF/B2uqDR@ifA)4>'&1v3\=.gm}bEީv6@0d>~ÿ= *ⰷ9ZlH尵#;O*5AS΁tVmԐZ}bhGFRfZN|hlz%~ ?h5=*@቏qwm/TXÊovg/}G"YfE3+;ӶB:)VTqP:YC?h3jc~QX@,2QeO)#b-k+XQ((((((RQPPPPPHEAAAAAA"E* T((((((RQPPPPPHEAAAAA"E* T((((((RQPPPPPPHEAAAAA"E* T I96PPX!RԅrúTCHE2):6(Z) B&Rm48eG^n1?1 )"ԥ-%1HJI I!U mutT;]*lsq)?@Ymu&λ ڦKI3ٝTVWWXK5p:C]uI{EGJ vM.hZIgl%8d(VZWL L>{6I@ՍХ-å!@p :fC܌bjHȰS8#uƅH9Rlqy}k%$#H*RNKwhP amLM\0HCPP! Cq,g(P)N5$Rqd.ѢrYIN4-hF Za9$|9zz.ܰ18F3$ 7n#bC΂3sX4fdO50ܲE@B0ߔ qG,eEiRf51-7''+) ô;IR^>{۵coE9r(WZ&0Vmk9:y#5Ivko--:m{=s~IB0ά 0{lֿ@ -՜"ׁi vh}R*+ZD.ejLOH?"Hi!է~RtyO []IUTJ_SLNOH$"QaSm1J^9`quU&J%D`fjK yT 59( #WB"R_FygwQG .B@`d grdXZU'U] bCS<A@>E} 5х0ehZl앜m^Vܕ3}4AY=`CnN^ɰkA@H"al؟1%9i9$to9RiE5 %,L!K֭3 ZE3PǸA͌ҙ,&dϔ4*(7.+G^#*̷3){B"쭬܃$ ZʉBԳמ2?uUE!rIuAٽ%w%}'8BYuuuccM{w33 Oj氞ukQ3 S5 R/4id`t.I"bmud!KJm|%R%HOL Rğn3@;+Dɴ^2L~(-pt0E TT5R;% ~ز6 hjjB0tt.z4!K6鞒fXJ+|>爆CHEʜԌa׆uA#đD18o64$d{gRBrF@2񈌠DLӢ,ʖ$0 -Zt8 sr'`MXJb0z̚zRL$Rՠ a׭.CcV7!B)jsmD5sBòRxfxACAE$ -؜0}:HGl_@HHTX˅3yŵ is"j둘LU7)M&9SYnUȢ°8zff!$gKׯ7Pш.(&}n=z1 DU l gk*5B1n,-^_OFfnvB yS`?N%DƗl\SPOD8n&8|"Ȁ6߀8 "D*LG&?9A~vNt@Xy}ݷ6Ѧ,'&e=% 'RCKpB9\v V7I9a8_}NIx=gM$ zDM|!uh}R p h Bv5RATW`~ew!r2LEVy JhѦ*?+ rr@l醵&3^?LFDA!A0wJ*J" $$VqyL`$ AB4k{CJa E4daR3⒐BY(#>YF0hǛ[Nt!3Dy##$陔R$ !dw74dai($㼰Lͱ- Hb3ݦ*@ ˘2\76cʒA[Cks$@[\]GWB;.7rR3;(8̤35=WJ Ll(A-9/Zb1UUc31{JKOoQ;noUE}W94 HD,KAP5|2$PaeyhS#AY=vݒt oaDUTr3n 4xq7;ғ-5b@wl`wYIyV"J﫮.ߩ[]nb(+TDVиz69쩋wn23!1%)$ zՖMLioyQnݮ!LY^>)o\[m@`PRjb"}ՕEN ĤwH(Ɉ&wɰ0IQj핖@vnD&@qH_[`0w9R1b@c8vQPs0'YDcC]_Sv5j5jef*+)mjXlR䚒 I2 QLi#I[W XImͲM$!cŴ G/A훻N={3"_0PRYnY;A"HI)rI!הgGQBM0ӽ̄|]KsHApݚsG8u n\HHH㣰< @O2 Ipd1b~⎜6#`v3nH/䘵yg6))5K341S6("H =5*jj`ah%$ FÕv9,6na6Yu 咆&.)d׭gI Mw:~p| `XO=>;ʊٍi )k;rj[ښ̸ )ߵcשb qBxݚrۙvb&XQŜ%v c]zj bGW'QTQ>gc-6dP\U ezFDJ!C=ˈGĆ`Ɏb MB+`żJdKFO$Y\Z%0W56P[z<}8_5 -Z愼v=q^&/uK6񐸑=eIQDa"LD 񽕕{4SPH`^C!0d@f[$Xz#{؁GH[BꗓZ[),!&OuS*%5x2g$g\ JqQ8£';=$N p]F"ɢn`Hrhޑ#Sz2r }K)ܧGD[Jq81hrG9HHLJ* e"Pް0m"D@q]MӍD.wSR[U\UKX:; ,4d Aۣ))nOKA~0)=.!#>! HoEDh3 Qõ`YIILJڞ(Vk -葔PҀ,D&I u*DDڨN2@! *\X0{6Jִ$!5EEm^/4bd J+eChdDz1a>jBh)ZeDL#Ĉ%jslS.g 8 rڜq.۽ 8ZyH@PԀDH=7\LcD@蕚~omSCJXv]n2cO_w e9v$Dq.F/3$R\XP7(O3x#65d8298'D 9! +Yam^vdp5 [Mӝ#(nh{/ZX.(6Re%^Cz}Ɔm%E3$IkwhyFSaaG,wma9i l2rZA]@C#B"&iI9 OrdƊƺᄂvGXtIJk˂藲=1 hBI@d3cHM{r5H!%d( JÓJ bweV6M`MC=BHY6!i|?w'G+ 28OJ$PiѺ"K(ZABL4D 5,v1!"f[= IkG!HKa4Gzz5}*E䑅cS Va &u~ok' ƺpKm(t3InOQU%2,ٵf+.öXۻ腊m 8>ax/[ *CQYI̝hEq 8۶=b0 @a( qIa+="ze9Dj9" ! GZ7F e^jx)Kd{66Pa?;~ak[[29.ަk޿ m1_PD.5x*\_n[7uFhm${ )!@ZTbJjDӷZ|TܜZD"=ıa&p )?pkĻȰjdj<4+/]D5D(.+>lHpc4ͨN0J/4# I@q嶍d- %Q&a2amޱgQ'Z6TbfDL+?EAAA¡daQ" Ju](EAAAa[QPPPHEAAAAAA"E* T((((((RQPPPPPHEAAAAA" q~wlH@ 0HI|;r+GrՕ]w-,YIѤ@dHbsh6A.jݳ^mJCᚍqQ   r !RʷʄJpuAdcuhE8AApTX  w&! jAd,}! TAt! TAT* *AA RAAP  TA JAA  TAT* *A RAAP  TA JA_A ۅC TdPc TdT0;RA'CvA<۳)J ݟTRzodPRJ&m=62ܰXکJ4EQ2ƴ]ķt۠(;M{AT"H8pTWWdhh'{?rƘᨨ{LRLFrǣ,,% ιj|(n(sC,NIsssNSw;]U $|i{ݔ1 BP.rl<|9zfn9z{8^__ϯ*t:UUUw,6Ji0D"X,g0P(fAp]a,P(U83_UNWVVv ZAc6 ED" 7 `!\. VVVK$n;͎ڵ l TVVxZ\\X,v"XXXXYY!0vƍL&W-///--qBHSSZX''''+**G& 'PHEժkZSTyyn$i~~~aa`0Ȳd$IDj:@$aöQJ{{{STuu(pxyyy޽Z61KcCVᜢ shdɤ h4 Ltz31:;;-xUH$BP1J<BH}H$r\mm,pGyj#E th!ya<~)#V(CͲ,رnkkm fu :&EX,+tF&v3ƪ3-?omU5a=O,$^um@)!0Ͳ'aS2=LĔJMK|rr2L:rzWNNNqlpM&S6EnC\.700L&M&S.cܹv{8gS[kX2 D}ݫ>SJsd*HtVWWh;11s*~۽W.u8&a)fz^mg400 DY~i't(tfiaxtj֖Z)M$M=$33J089x{_3 2 Is$Ifے2. &V1חd:dZE>|0<889?rdeydddddСC;>]3APmu@MgdhG@uAe:d6 NSLULE`hjjJhVR"d چv][[ijj+[ nx=|tRh-PD4b;wAinn[[[+++D"Tj׮](§mmm.\XZZ@R;?3uyyynn.ʲ^]]]znޔ$ijj+`XCO0drzz`0<9sF{r={ݸq1teee[6l[N-a&RY_kA,6?Y\[[v=E]9Z[:^}u^1OT+c|A`kAc&tRҗӢ5hyy!Dѣt?lZ[[flVl%GGGfs}}=Hp,˃Nhx.D~p8m6[GGvqڦhAñ7h U^C9=VO5k֮_71v͑ǎWAйF7)6Hey~~n'IrYYZb]]]&iï d³Vk窟~*iH!}^y|90v [smAdbG˗/sγ,軻ΓK.·U9;wrLRXv5}}}/_vt:~ /_\VVFD"e3_TAT:;; .[::l4ufGGGG*;vޠ`ذmeeegrr2Ƶ5Xkk+kuuuee.`Jtm ƶ,W2N8%Rbz橪t-؁6_h4\7Vn/Wleccl4`M u& X;vTTTj(ÄbCFQ$Xuuu[[&){rwXS]]/f"yUUU u!2aۭlf^5Opl6wq:02JxuFXEUb<7ldr G]mrP'k|d0r %^,$S& B }Vne&'ȥKnM=ڽ}@L=nH k[(-G6/e{{(V5 Ǎ$o: HqZ@0BW!8PJA6(N~0p AR"yF ~.*wYƨ& *;M[bA[K 0AضoO sEN<ڥ|w )Br:>JVjt:`{x1&bٖAR! IDljɷdTJ$h6s.r<'X,>" m 'bfDl#o5qb+-jeY.v8`"brU̠E1l^Eqaaajj*J z0Y'''c\SebbRZWWG=RJgff,缶f(L&3<<F-Kggg27o1zճ ArY=rT,K$ccc`!\.R:??J8555ehh(JXZU˒$Y,ZvRQcEEE#8AXYYHR(zަ&y`N:. &N "U8!%"T|bo/dFcADRe8XL&KRM6s"I;S388(?x8fܹs jjj lW_B#pEQ 5g?+hPJ'''?sׯxJ"xwNAA~VWWxc||ӟFҥK===7/_O+!ttt ;:: i xƍ3ghxɁ /^;c={n]6L?Ov;{g 1~ TIE-f( 2%1ι¹l92QA %i͚}|%Bګ$IZJd&x<;vhjjjllTEX,sޞ7|SQTM$ZepYZZ9>>̀ B, (|)ǵPSJb6HBO?4 !ߋ>44jzx=99W_EQw7Q,KEEӟ4 pܹiV?AT[gqEpyQ l+ F)L:9k4VoJQ $XV SJd'tbCI}UC)MMM"裏"!>{%I|`0 n(d}};o!^7?… `0:ubuu?,tf\eA~#<(|M ?}ٲf(>rǏkG1vT*@]ts~(SO)255J,X,,_t :t[Q/bjjr…^{MAU#k}}}<ӟq׮];|0X䁳TT&fCs*2Q( FLrh FYо(JR;{FP0^ :V#O>\]](byU>YYY!hDφbq #G)v;aSAA%0\gygOx>3z~sssUWTT9jD[^^ٗ,SJOP +SeYOf"!DmR4E3ATBi.vjV"#pι@ d@3*QJc\.NkI h4(˲*\h QnRF:D dfffcZ68d2kA!V'/jQMMMǎ+,!X;(ʉ'"H("\pb1/]AGy؉>=)(WUUZY(jԃ@ڱ:qΣ!rw-N]%ELL!BQ!lJ )P΍,NLӼA4VvhX,X,f"(@x@Rmo]]@YP]]m4%Ijllz||fQ.6VL 7=99)IceϞ=UL'Oloo?O>]X\\=z\.5Uhrh4f*RUU-r9WCsssT*>ԯ*gς $IQL)FRa'', ( rs&Q`\${(Gǭ&شׁL/" 3ƌFj,+I۫|:飏>|hTM Tu$y^Fp ›joK7Bn޼)IREEʊV^T&=Ν{'***RV<<$goP ϟ?zh,`{,;sLWW E$CR:77{555~u4DQƥ>C% |6-HB|]vI400,BYy?`ս;w4LPbimmX=<0Jr)'rDN0L8L3*J16Ts)(3d0N ,'rBnJ+m(})’e9LjEXi"|#bjۭœUkjjTWWWW'9dV*pbbbee%J@((^M&ӣ>288VYYNp (~uubn#-#L)O|ʚmދ/2>x"ȥKij> ovvgmii/8yu~c*!W_ťT~b 099駟^|h4vtts>|֞l#8Œ/rzzf?,// ŋ6\.̌lnnf&}xxޢ~7}}}ѿh:5<@l!(J.|N"?^{`S(Ae8o3"1&f\(`WwR dYVe3zp$IM6 ^D j#(,//^{ NfTZ!ZVӅGGGp.Z`[pg**;vtנlƘ`YlQ ȃd:t/bffѣͪlvZ__{O8QBpܹIvԩb"RH$Ξ=;;; \ܹSȉoG"###===p*n?~x '(o/˿oCCC~ee'***J tܹs@~ԫ_?^[?^^^^ac@`0H9|###189H)O;;;KԸ|ixKKK_9>okhhxuQ'|Rw= ,mmm0U~6M'|rBH[[Ν;m6o=8V'/^8449я~Tb vjjjZ__ꫯΜ9f2\._xpӧO`6$魷jhhhii1LPw1"ojjjvzyP(fs(zKWaQO>}y.T ښf7F)M&ͦSrpp"*ښH$(p͛;veyhhhuug_XSSv !1,iݑɄ\.w[E#r[*0&@OTB&闿*{ŋ/;vLu^z`0˥~!!ѣT*022R__NՖ꫐ YF===O>d0??agff>^{ no?'x]e_׿/?ϵt[f)n/UWW_ ^x2L$zֶ|B***\.wܹ.Qªd}`0_ԩSʋ/(_|a29Rh!<>55 )|Lɥ%5ZQQ=zTkPJ_M)}-K ޛN݌~ǎx<Ŵ;ퟰ~3nTs#K7 s BV+V# zZbFX"=^S<˥%_Új!\ xETGtm*EmmmggoX^oSSSSSSqD?BK;c0׮ʗwUUU+++9Mf[h=33#!… .]~kCS*oh(555a-~_$$G}&''{^Ahvpc>kllzP諯 BҎzAT*hm9dY>vݻ{zz!U0, ͛7[ZZJb (J5´0E~?$I 5b.#+K^Y={ׯ#Ѩ6 J:L Z$j >,Ld2?o]QQqH$rEQJ+Ay clbb&%{dYvO<(ht||ʕ+/_eZzIA>/snX2L:Z:9KZ3e=Tե35 6NrBU*HAZpZ%?n%ITK }+?{Jg|@+m=tbX+b=`G(|X,600p1"?SIR7o$ݻ䢔.--Ar9ŲgGh>~޽D2(}d3vC eee)X r9xQzV^SSI  !#@77n(>x!`P7xt l̀(ڛ.,,(Ji<7 09PkS9mnPr T:o7\o!PH;eyPR 8s~d2YYYO}ɲ {9sfbb6GI$_@i敲,:uR::::>>^L~HbPڵk'Nl͛7auLTՃNJ655y<\.o¦)W_AJ7 N+oٳI.MNÝ8q_ w֬9rF`0|Afq*r:lvj"l:U!`gBjaavsSOtC߿"Ŧ Go ѣ ɓ'O>g?+eg=}ܜvs~ /^oܹ̙3gΜQߩf1",G?㏃;Cg%5ܹٳgϞV裏nF#p# ,)//?3u"ϫ([o~ĺ,j!utt\~۱cG,[XX8q*SO= bZkjj /' wo(.]RPRZYYxQJ֚Ԑ522Dϧ7Hd||r2n޼FN} ,,,R)Qa[?JٳGbٻwoA .X,/3c( ?ȼ(`pll,LRJ+++;;; \"TK/ _yQl pt$aUTT<KydT_ֆRgeeEŎ2ݼytvbߵkj[[$dپ>Ѹ~x: ߳RdyN7HJo7wckRy Kb S+饗\.v#&I_sտ7)#=iͨYp7U߃Mv f/W]g-Kbj[u'5[!}ꋩs8J埝_Kðm114s].O{*GǠ#c RAAP  TAmw-.AS*䢔nm{Ad㐿(c۵  TEs(W$ R$d2Wn˱W^Z_qA%]233377Nu ԴT$8]VUUk׮m㜧Rmٖ*˥;;_ AKWWWD"1>> ;33{n5rb wޭj5-\nrrl9ch)htnn.p83ty(@ HNXGd2i4}>+͎|p8Z__oX`*Fckkk1dƚp8en777FI}FږXy^h TCPA6dRTOOO&z~?Ngd IDAT>}Y_ǫVVVFGGѨ:}_ZZjll4 `:0rJtX,xڅ}}=ɨ H$SМ\[[khh(U:VVVc n{nngi}}}lllmmrFp8PHiJX*h4:<< ݯSBږΪ-!Dѡh4 #D_ R ⹹9Ѹo>D/^ ---)EQl6 'xQJGGGpggn'ɨ`6=C՞ꚺ(''555SSSp{<-a>\9w%o !$%jUmZuU!#R)x<RX JZRLO-FNfv`X (^`2[~b)m EvL& dY۽~t)egΜ a䲲2Y@(T g[+< fa_}(tY!dVk6eYnkk3CCCV,\QQ9W)c,ت _ur9l6FNn] x\6 A)EQfffҵkŃRe`` %qF[^`0 Gl6p8@r90,x B?R 2L*WVV냎In޼R(JEEl~Oul6N'''!Hr΍F#tii)LRJ#ȹs]S! 3L<iߟ#mK2L:llmU V /k 缭ƍӁ@h4Cv/v566纺:XB1 {UUU꺿t:H$r\Z<1::q||\- IؚA6adXfgg z@A5vTyf\ wuuALEwSZXc0~aR|e֡Phbbza4-X,]]]6MW,^1LwAnùo%NoGeY!{P BebbbaaG@@D'KY[eYA@ TE؟Q ?]EQ#ڂ=5h{ [k{pÛjG8A`0<#2tH$˲ZT FumU~A{d脦KjweyaaQ%;NPE=Dgm|=} fk9r ,G]OmO !oK1kV5@v<' r/b333ns";PxmHcccϝD;p Rq Xs^QQȐ*++w1VVV-csݸ}$ wVb*w(H% mm ATFQ:Ad{,A JAA  TAT* *A RAAP  TA JAA RAAT* *A RAAP  TAT* JAA RAAT* *A JAAP  T088ωx[)ZXQJ *ZJڤͷgƗ1Pf3UmaEQF`C_RMQ@% @GfokJ%GuuuK***<>blllL3GEEg*d2 {<deynn.HpέVEqCU dY.wBH:s:!L755KM Jϯ+b6~`Ў(cLR__k<|9zfAp8p8_tVUUBP(\.W]]Ji0D"X,ϧ4Bl6+]~[È =R*tzeen 4fOQH$bX pC 6(mmmeee>D"vvg񵵵]v7^~]JO]]]N$ +++b7eݸq#0ժ:zKKKxԴ{AT*U]]-b8v޽{V8F#Kէ#zZ\~=JvI ,˙LIH$V$I}(#nh^~זծi/w:]]]=73S缥jz<cGqV6 Inܸ1<ۺTtuu`0v('Js`0(ߥ/L)F&v3ƪ3?uwY^^GC9X`!'AVVV7,d2p8G^SSzzzu^b(R[[;999[__7LlVŎݮJɁd2i2rclΝi8x8gS[kX2 ݫ>SJsd*H:NguuȈ+++0ǯⷸ{r^ )4N`1L15J Mc08~N6)uF еb002 Is$Ifے2. &V1חd:dZE>|0<889?rdeydddddСC;>]3APmu@MgdhG@uAe:d6 NSLULE`hjji$jj@KTRx0b444TVV 6LK^ZOOOSS [ jCV !6U5b4AB)A6vtt܉"h,۹s' BHsss__ZYYY$IRvE>mkkpR}}ʗ1幹l6+r{{{uuu鹭{SF苮bill܂"ϯs=U]%X*`Cf$i$9sv---{qc ʶH& AMubRY|Cg<о1VlI׊*5 }<-Z#)B.A=ZBܔjfp8<99i6U?mIQ\__Otss5`p\rezz#ϒZn?pr86C;,:N׻$ippplrA7[v}$s IDQө4pgC5SJL` 6l6cccݩw(Z[[;tc$`U1[B4nIbEQ뫬\XXЅF^#(p:SSSw|&mѪk^bVs 8@!B %!O(ϓB c6w[ej]mǞ Je}V3wn{9Θ+G<u&/<~+//A zЫ,(L)_I? (Vt :+rɤ&NyR_kkk}^ٜpZ1R `Z"JE)&c aT#o;::p1#~yy9c E/r9)93A;i QڴZ-t:R*BҴG3h`Bt[t:aaa~嗍>9!A  CSϐ&" M|0y"N+* J)Ŀ;(4TNyyy{{Z%ИMS(Ǐw\EEE>Mz*թ?~v_s#E#*bK8yGSll,uuuDSyy9,|Q( `by] $h4ZhP(t:AKAb===ZvVt2ۯVfT=4:X\\ mmmP! tuuEFFJ)GFFvuuA1!N/&&&HyRRZ I i4'jT*p!籱ynhj-**i y#E`C1{ppp1LErI~~c f^uܪ aZ`m&''|FtZ֔V rrr***qPMRXRPPp2~#SE1222>>ORs7yd2uQ(&c_Tfdd:rm2Օaaa 36gF?sq)Q~~J ^4G0#Gr-!j@rcN 9kii1jZAolt8҈ur) ש1|lltwwQE UK'NBGWWWjjNX,՚L6^Vs~lY ^Lh_ĀK;nZ.tww2p8>J2l2h#ƘdqdL\ezgMѢ#b|9h A'x?z/3^\u5ŜJC9A tf" (*    (*      rAvمk+ɥ[DCLTw/؟ q{3gÖ( xMMMV!41T(߭s^^^e_j^uq:{UͻA&NT*++gΜ97ȞappxYaEEe]6i$IQv)oўs:vofDDĪU&q)ǎ۽{\_/ߕ뭩h4 ,@QAPTF#G577 F.;::%ͫs8+?N)]bN:::]$bmm-c,??_K wbj1r饗QJd|Ep窪SbUɓ'O,--DE˗777Jo񪭭%'''i1"""""MDQܹs'!dڴiL.L׃ocb^712AƝ10!UHkbRcc(3@j xV2e4σB"##% 4b̌ 1Y,K6ܻGÃb变/\3R 2cƌߦq\}}vEPdffN4I#QHT+&NSJezz<]__t:yONNNKK/,O$`V<Off&R:܅Q Cvv6pc<3}f^RBۇ CwwfOqcل0Ośz˥RҒ^OAv{MM!$&&&''GV+x<&M x }/{Iǣ2q_mZ G}BټqFyoo߾¹sBk._566666FEE1***/xر:8ĉ'N L21}v؍7(Y6l%ݴ"&&f͚5f<ʋ_._$[۶m#\q./P999Rm67m$7L߿_*dھ}{vvv]]ݱcǤ3:$ןA)'~)!dѢELKK۳gOoo/=33 }'Oʟ%FsWt:vp8c;v?* W^y͛N>tТErrr{6z{{{씎׫W"jŲqFhݗ_~v䞞 '$$\rGWZZ::{}fy֬YF1::СC}}}ӧOQT*++nwcccaaᥗ^Z\\200x  ´iT*tᨮ :u(}8q`0^zyyyfl674418p\)))˖->}zBBBSSАR JuɔK777\p8|MQ/^\ZZj2ZZZ`,viӦS.^x 7%###22d2XV2s̅ ( :+,,Qy?舉Yj՜9s{{{{zz!,r߾}aaa,XPXX|{{{]]ݴixSL˃yM7ݔo08sݕJDE^%KN4Y*)T@}}lKϟ744dX{Hju^^^|||CCC\\,,(((((<555ZvʕeeeB_GfΜ.0cB Y^|l8`9taaaJ2))I*{>c]w]ffF1 +WT((T#`kt0jLz*sfeeAuoooMM k.RܹSF@ +))͚5 Mk֬IOO|.Z(sn!))),,,**jՑyV 8{쒒ZR +y OLLO],ȷPTjjj!|XPP@ qU5I?4Z[[P%Ҽ^u֭[S0C\ħO.7\t:$?MN<LR`fBM^i"##xyedd|3URbJ)݂ +'TUU͚5'5߳5^FJ755utt-Zh\t%xW&7"EG$!ymmm\\ܢEbbbzw}ѱq-箤A1~@ ;r1y1' <lRlڂGU9z>K|I.MAOHH8l6[yyy`? BlyާsGc9N+Z~ J)q`E7+E>L%BI+)݄=(FDDvc̃ x)J;̀2o}% Kz^y'B)=tЁ*++M&Spϯ1H6UNriZd~J7mooꫯbcc/RA@]"##322z{{'@T(fY޿+JX<6{g Y__/~,l62@)Bp%U(PR%A;::?.,hFC @BHOJHO`"4Brssn7x%DQ'444hwڵkawCP@RH˗%l[,6PA;i())!lݺJѣGT*UNN;JgiӦB`n\tOBPGGQT\SޅIELRI%wڴiǵ466EQ_|lZm` b0nHjy>s2ERzBH||F d [>|xԩAW^y$VxbyG|۷wuuAnrr9s~m# +ߩLaFUoVB|,W^ &LK.ǦP__ϟ/Ԓ>%eW1h+iA`?~rr2\+… U*Uyy9J#""6o +Ldzt>/%%%66ֿ)+Jr`%6WoU*0)d:!TJ~AZB8r\px)JpY~D*<tj4@)(z0AXOyP(aaaJj`E3_EP'>J8y9:ϧ7*jjjO`:yU#>cRz<0F#=zIA /ї& #;H!1LطC9L(Jÿ#n2b>Z䇻1z}rp$.euˆ?ۓ0cL^;hB:>+AJ*-/p@(Jʀ+H^ >稞} UFM1ǣVmʨ(ET $ξ'):;c  Hv'Xlllxx^ jd2A9J|b\MCtԏ !bP kJ΅& ߶ !RA.p`1qЧ   (*    (*    (*    (*         pu”ҀLJ{<[yRzJ)168̄Hp % I1dJUCCjwwO4PE APTF```NKHHCZGq^>wrb\.q ~PSNl6BHxxxrrBzÕt:O:e0k@󐽌 [,Q’Jpf;99YVCR]]]GRL&+R|h ~ ͗gXˤ`W|DDĤIy ^n[P D#ڃ#cO2Qd,p8zzzt:zDQ )r111Ҿ9!L 'N ׋ z./2ѣ#..NPuwwO6-`! !R)766F`X*++cbb{{{ ύIcnGEEiZQTTT*ApݒZl6V+cCCC[[[tt^w\MMM===p `0\枞"r(! DagP&3B8ԄZtq^F j#ȷJT$33S{ Ǖ1GhڂQ)^ĉUUUSN#PBfEze0 ӧiiihjjY[[RRRXrN:x$u?{Bju__ ]]]v}ʔ) z(nF>} r]1>>>;;[ŴcǎGGGW>8!##EEEqqqjVTT$''GFFJS6=---99H׃"Qm6[[[t9L4Y2$LkعMu慧D(G ݂$I(>rvJ)Z.+VARh4Z0K044Тqf{<"c,>>f$0*aҤI&""j}Zmiiiii)QnwSSSff sA:謬ٳggggK6%y+ʨ(aQV+ )6MPJzE--A ?xHM,qjUFbq300-TDzlRݢ(N4Im||& 8o{q(mۚ6r )\rz=}ȑPfe,j:x-].?yňcֺ/wRiL5XElo?cO-*v 2zQ~dx<^yas7^QǕ\3f PYYy3gBǎc͚5KP]]]]]=c ;ؠ$?d^PH}qf3V3gI1T*%^HA) J2==]m)}9NGʂyRh;\6(p\ONNX,GIKKtqr"z@) H1;;;)!{㇓;`By;;5wqrxKIN5}CtX9^u^~!c)nll;RSSo}u`B2000`Zsssj5tpL2<Ä={tuu%&&t> jkksݢ(ōMTAhhhHOO?&+ r$J@ \DJeXJJJc---& R|[,;vfffz~ԩ555QQQQQQr_ΘJRw8f\"]>7jsvvQF32J;0{6>093:9zTtGN(Vd3ɇ\lӂQCfRR䓤H}޼yJ6Zdr}}} Fr5M@ijBe޼y-bbb4Mkkl8& ,K}) 1i =v^OJJ X .MT>)%zlC|\XlC-G8R]3XsbKuAEA1 c,55?T><EV㸣GpL1 B>:xw>V Ç֖c1c$4Q &gd2577 DEEXPPpFQFcaaC4pݴR R(Vũd̽9xFURQ7%Q*s45vޭr:2Jt:7߈,.*)-*pھd3Q-8-1] 7[IP0]y=OXX|RR DGGJQi@mm-R1=== g} s!ti*͕G1P{v]V'#..p;BQYVccvʘ>Աs]CgD9vTYmC55)SRؗ ENVcZ6<< ,*C) nJ10X p:]v566fKOOHIIIMMMIIIKKEQӥAC1åUo---w^J%R\/U=fE8hئǏ\"i!!F:\1 fp^[R2.lڴA)gPNptl6x8S9W<N9'~q&M-|s̀ wߎX]L|, W7G(sB$r8tP&co;[`w6]g򱄜MX`ha bo*Oa܎ xI: r|.K!K Nod7>PGpbʸwg38Q9ۀSE#/--oP[5.QՐv̜A"e_g/- *5k\ A vJ1^Ie,?HEAA Eu?)n(ߢ w]s"*cSx^ь `Ďdm@p5l,2ZE 4AIp| QZB8'`I^ ;; A Rag+~p ; IDAT\qk׮F`{͛7.PAvUoRT(6RI\.TAڵkawbBGb{755577 z^BqFhRvlWAzC·?)" >|v߂Fة^V_ GQs>Q'OjaX, % ȅ#-OAƦ+2 wJW=Aۡ(&?(z ^XN  ʮ5Z}0Q'5 B D)F (uj#lHm9d/IAΫQ?w3AAQ(K4WDP1q#Qx&!(0Y#+>/FA&TcBג٦QITx8NDC)a" 0Q."BIo( GK,WڏJiu3$QʉiQ=/"%"!")98&LAλ|?BBvSJG'*Dnw#P'of#9"{|7 (xNFC{%"#GT(gI"tE/2B1 AЕ qPR1R$e QFAP`Q NkzyO "0J U[ Lg*2O,\ O'Q) T$Dd쌅R&RS؈{@ Wp3!t ZAΏՏaࢢ9("F4f@8FE8BQhUa2c'lny( KQǶwd🵏py%#v@Hep{OD9 rE\wʈTqFQc*2(N!Oh3|zA(Af1봣&@P* HOxB%9aFHc r^t)҇ ITcѢ!sSFxB#4*URDLB(GEN<3!*=sPpY= EEA9"n2֙ e #||bJ"#|M4RQ(ch #\s%*PF/ G"e D&0B (*A. -9G_lD: 0&2R\O rU g(,tQ m~)\|O ߵߵe SuA;CF2CY,\ ABL/ߤ?>䓪*6zG(3fXdI^^矟T__o-"\ jbg<#<jݺu=\dd$>1gBzzݻl2B wzxO7!p &O?gzٲe뮻?`!ȹ17T*BHvvŋa`X,~[o[o566}(Q=tpYYYHByM\sڽ{=HW\YYYd#ȅ3SPQ9~9s/9jժ?x…иn#ѽ#."W}fp7  l8KͧrNIG}Diiiؗ91cV:NP.tdZm(w)Kxxx9z>z:MaTbyl׹[&!箟?[Q$#+z,X@)//ku]G)jaaaZ)QvvvDDD[[#Gϟ/EQJ q'O~ /L0FG>㘘כ%KPJz=n:::VZE)tW_}U>MHHrk4oZ Cff&!pL4)!!3!g||m,{AT;ÿ o&o0(s=zTEEE&饗^"<& |<Gqqqov%ON3<V>s3Cl;AFF^{.T(*ԩS۷o_bp!Xb6'MrO^VVf_'x?߿tU__OR([,HUUUAA!dɒ%6m[ZZ>kwh47x#q7n|'I_'$$^~m۶IgBJJJJKK6lp7޽^ܹsc~!صv`y㸏?yyxg7o {'y馛"##+**o^\\W_͝;RZZjX>YYY!GJZZZZRR"l+r˖-˖-ݽ{wSSŋO83CظsO+--:u*OP_ !Rrz!^ڵg2b?&g̘q_>,,wʪs^z۷oڴiAnMM1QQQp׿g?ԫoˮ暲M6nZMy뭷+<<|˖-QQQjg@b>,?ݻxw'N<:ۏ9s Bȭ /\wu=P:/e]vW/ܵk<@cŊ[n}^{ASSܼ<srrrssssssrrrrr6e===lc'㮿zBȧ~:lCxm/~%K/KB|nAy!EBKɣJJJ!ǎ#<мy~[|.P@^9 aB7w``sBde0 ?OAJzway߃>H9~As8S/VVWWB̙#uL?p.kٽ{tگkk#""!v}7-))ٿw/KQGjjjFF¥KBHX_h_+=KL***^ovvv||O޶l"5Yf͚sFM?QT:XGn]cQ/ }pqڳ244$ommt˖-{zzzFLzw3NΝ;;;;u?}p8}В%K.${' IMMӟܹsΝ>hIIɦMșWQ|(mnD0yC D-0 eα|m۶EDD[.===""R*_oIG5f_gf{wjuzzzOO9gB`w/-Z$zMT;i_?OMMu8* vY`aHHHX,&竎BHLLxKz wW{饗mVZZzAqQ 񍏏X,===AJ:An.s6~s@VVֺu͛ԩS%!!A(̊?90 **ܱc<{>,//O2uTGyfNE;#}W˰Dս\Yz% Dh4y^Q/f!Hn̿IMM%\2 NK72e$H)))YYY9_ 1"+@ŒB. 9J\\\AAnDUUՏ'x@jw}?e.-!/Fl;A.8Qjг\R+V455Y,/"==|3kʕoâ(vtt>OW^y#g!o&!{y'`.gìYVZe t:{챧~ Pҙ7⣏>r:c!‘۷ϙ3?Yoذa``VȷN۶mZf9gΜ_Pҗ_~yTe Ddǎ[GFF^vef" կ~5yR'MO;2?|vo\rz?44s^zA򙝝CI{Hp 3gΔrJv+Zv޼yr/Rqq;T*b4xyȵV}|61c?S?O׬Y׿y>yw?7xbL4i'ONMMmjj㛚yA.֭+((ԨJzwD(<,! j3_Jw??<11qɰl9 |7 Dk֬j>+K|I'd:.zE!t/oG!2pXE6p (*8DAQo1& wQGI۷@NUuaڴi'+ (*!QO>ܔ%""@QANzAEAAQAAPTAEAAQAAPTAAAQAAPTAрI"]݂ (*!EBQ pgIAޥVǣhEfikkkii! wZToۥ# +W]veffZnbAPJ~m3uԢ"J߿m۶={m\ZvFt~gX zFaxĉ]]]dx L$>!$77Ryw0v> ȅ(*j:>>69BCo'4559r$K<p8ӳgϞǏo+**@5A[jժ3fȷ<{GY~h]~y~ƍ#|}TYf͞=;<<'?[A,YWVVo080.),,ꪫYEQNA.8Qa~S*[||L(+V0l6[UUU3|'|'z//v>?fuwwΜ9s\oqr EEE=#rqSYYZhRXpy2i>9s^XӟW_oǦMNxkYll֭[ !C >EEEg)^j#X9iҤ^VM&pܹȤI::: !oZ_Tss̙3:裏fgg,[CeeeEEE-] x"wt;v쀓,Y2k֬g} 6Qx>裟$1  W_pyلoQ:2m4Bd`0%%%}Y(M!u]0H7jᒒhghRJLRCCC0FB {˸y]r%?O҈ ȷr !q@7 !C?-"ٯ!NS~nr`߶Bk֬[Ւ,ƍSRR/6L8JT* CIa5"}]{SN\\F3yqΝ;o<`rr2!;..uuuyyy ?&EG%AAA3<+bՄ_|o~ꩧ 23ݾe˖^xW^?oҍ2Plܸ_ ǏxM6L:UZ-9Gˎ;j SNJuJmvvoDII !䥗^e]6- A$gѢE׿#N믿^ 6' 2vQ1ͯzkkktttNNNZZΝ;w%x⋃D/:RuV==֭[):. ym۶jkkx 6WN]^ IDAT~iǎ˗/j?O'E׬YC꫏;_Ο?_M0m۶ټ⋢(fee}嗧N裏2337?O^7 AjJo/++6mX[ouIx+R׋xN߱f͚^{MTOGu3hTTԃ>JSO=_R:y{!f͂\r "g+vTm&\^bqwu] !G9pl^th;}ȞOh4mfy*333 @q#G BuMs.ޮ(ӧw{U~5}{{1ו"#Svv(7neh~~,ʸq/(BБ.Jl!{Q]k0E*|R@Nǂt[Tf :~v#4t\漼VRRԤ( NKzx z衇 ;f4ݻ{X9fX,uuu_|dQbbb4FJl6<}I(܆{]:]NNNyy],oKKKKK4,]tDw'zcǎɣ]ltEUUUMMMr f9>>>99??p֬YVzyhN7j_د$W9< q7xM׫Z^^.w޼yNQ`(pT.X`Ϟ=Ǐ߾}]&ݟ i//kjjV`0]t4N311j}߉JXXOR\oέȃ]jWSSРih/Z[[1Ī*++kkkz|f9>>~ƌ_|s~8Q p8NrEɓ˝CBB(a7WTTuttȖsHmmm XtY( hk*~^/8N9(sD,,,lhh:322266600P^WWw ꫯwy';ٌJܿvEjoogںyfb0,XpWs:*3 eQ֮]k4=Oo4׮] RXX8O>Oyy܃9<<<++feeEDD!+**t---}](Od@T?EEEzkwmz]믿^~l~>/F*AAA(Rjjc>EdQ|!SO=WZDeL&̙3C/g**hhhLfy>~ \sZNsҤI./#99YUUTZZ:9<:kݺu\q'ג=W\)9fMMM$*..ķbݔIII_xәXVVvM6w}˖-KIIBDFF=EEEUUU[lYhTDedffSPP0\tnZ풮.sDDDMM_zzzll=ܳz7x5lٲӧ?cr|S;ݾkݎ}Ν#4 ?iZbb\_|ZQaT0=\&5z~ܸqM w@@FK˴4cp"Wzƍ(ƍBU!) N͕]inn+))u0VRRԤ(NNz`1gnݺ†ѸwݻwGEE!,~ $ČeC *x%''|׮]׷W49k,@T׫:--p͚50R9ם8qbѢE˖-&(((--͕cǎɫ}EɢH6mBO?tpppxx_nݺzy>M **hhhLL`4Aztn^ttӧwu<쳱P@T<-6mpsl'NBL6߉/䒖O?gpGL01t:'M$X_K,yך?O6l Lrr&ɵzJKK}||TUMNNw]QQQSS3\ڭ[/ ^r:555hu+POXDa)6{//GFFرRRRQQQ'N|'/袿/999gw_6GBz뭼|W}|| ֮];8%Kx^B<.ꪫt%65557tSzzdծT7G2.[L1q??5+W||Pm۶K/7Qq}]m~_~\i&moo߹s=Ǐk(W"y^?)0 QUK=9sFQ/aqw@@Fc!z.pzN9N%;;_Q7v| q<E 쐞B"ݾ߇BQEc$*:.77Wv9//l6[III^^^ss(nxi|G}PPкu ;f4ݻ{؀!bO8a2Fሉw.FEWrrrweX|}}[ZZZZZܧUU500033s֬YxZUUUYYY[[$OXl1c罇D[\'I~;'?Я) Q D@TD@T * *QQ / @TDeX9Fa>ڦ&^/PUl6''''%%ҿ;vXVUmmm.]:k,@Tzii z^uvvFFF !N8a2:;;_};ذD6mѡv… 322L&Sl6[iiiqqhlhhX~}nnnPPo1!tʢhaÆ ,d2-X`Æ ᚦYM6>/VUӴkFƵk&$$8Ύ‘xT@T3 欬,oe6^꣏>:pӧ=Ls'''+; Q9رCnGmsrrzΝ;x̝֭;w„ K.kz^yJZpakz25MX,UUUhŊ?s挦iowum5=Ds^Օ19dddJeeɞz)!ěo)w;-Z/!Ddddzyd2EDD!jkk=L&sm~DxwȤ>3_~u}||rQShh5:EQ䁐}<֮]{-[޽[)=كK|N-ޛ4iӧwu<쳱]wonDedTl6`N8!0?Oy_.r{s/DŽ ZNsҤI.bx!\dkOڰaoDe`UU5L{FUU=L~K^SN~/]{\q'=W\) ޿ߙX 7n||ӧ;۶mGhR㎾Z_/tD.1ʅ7glǏ !J$orhwX,rze풮fuEQbN2|7rkkuKϕ.yc8lEQ7nv}ƍBq 萎Po6{{!|||<)88xy (΢1N(Jsss^^^IIIlfEQq|I7cu644ƽ{ٳ'222666 @aX $p9>+999-OKKKKK4b IDATfffΚ5wORSSSSS*++kjjzBUU7c {ʷ$%%!OŹ Ǔ$'0*8= @TD@TD *QQ D@TD@T * *Q"p8cH3'VUUUYYY[[Ԥ䤤$@TWQQc*[ﺪСCfDwNAtΨ@!bO8a2V뫯y睊([ʿnڴC fddLnlbV#N͛;::4M ߰a zEa2,XaÆ0M:::6mʿZ,!DBBڵkFFڵkdW y+QB!DXXXVV72B :u---O#Z~nGEE_7%r6رCnGmsrrv^߹s).]:qĞO8ꫯ澜N_mZ]Xb֬YGB(rĉ^%X,_u5M;ٽwDeUUUYVM.\3Лƅ jfX}u뼙6HQ Z!DTTTzyYd2EFFf5-֖C{Yd\K+̛7B9s横a322? !ϟ-ڷoߕW^9a„Sy睝~]}ա]tƍ:mڴ'x= c͚5qqqǏ7oݻ]666۷oժUaaarٲe}QJJJ@@xIFFƯkׯ={_|vvY,L嬆jϞ=f9///::G^zܹs 22gY|y~~ŋ7o,lϟ%lqqqJJJDD5\#O:~uw<̡C^y%Ǐ$p^;~l:N~wf݊+.B_frʋ.h{[ * )))00PQ⮮n+ W\9eʔ˗?Ç|/^zjoKcVRRra96ܥw6a6kjjcbbիWرC^+G0ݚs7pFvm./_F` P㎾ң_/tD.4M{ơ(((8~i-|V%:::;;%H=MӺrpz"~ڦ&^/PUl6Ϙ1/i(  *(**-w]V^^~СKΚ5Q,,,lhh:322266600P^WWw ꫯwyNdž% *ںyfb0,XpWLnlbV#ҝN,iaaa6lXpaϢ!L&ӂ 6liZGGǦMxQBYkFƵk&$$ȮV" geeyì,,BhV7mmm`DHwuu^zɱz~ΝB;fŊ@:7WUUYVNp~zd4.\w^RUUה>>>B_}ڴik]Gp2`z3##cpsسgdiڴi3g<_WH( wޯU%**}a2"##嬆Hǚ5kƏ?o޼ݻwjllLKK۷oߪU\W\qŸq}Qy;wo~?#w~{G@TܬiZLLPfiZSSM"##y˗-^صf;xM7TTT4|ٰW^y. (,,\h#<P邃x ?r7| #5/&|E`=z}s!뮓'OO2E|{[n ŕɟ;::n֛oy֭򒈈{':ud!UUvC=inzy>h"Y)??_SO.Yj^ᾎK6c^=̙#x\7&#`-t:gΜ|ۅz!?_|ŮNS*\䪧O>u+++#!ѣG寷rk&7l߾ՉÇw>~pa„ 2XVٳ@RDDG0K.$$$^p8qqq%P~Jrr&tps(--QUkn*Irʕ+{[nB<}M7_;>C4wuWCCCccwonDe233UU)((m FlB;\SS痞z;v!4Mr믿~}=㱱]tю;׿G(::zԩ\rIݰu^Frwu]U~%ri]q?~\Ӵľ8:V%::Z;t]]]!!!믿6 ƍ} k2337B~sӌ";;_Q7nˢ7n"PQ&L\}C!c$*:.77Wv9//Df555)u644ƽ{޽;***666 @aX>'NL&%&&f( *7^)//ߵkb_>f:#E@TFUjjjjjjUUUeeemmmSS>>99y({CQ\p8tО$9QD@TD * *Q @TD@T *Q4mcgi T7S绡,Yc0zntPS!r_{?Ģۨ >>;"ը?P)5*{B391puۅh|n5:wpt{y47x~z&*?Ek>Q{ GtJ ; LѾxɛ W_R1[0>#n_2?v{6y:P0yWH]18/z,?:/ܭK& p.ƴ^ P |gGB}d|HF6*} _m00,Q8Gat^A|0GaWUa0^TQ @TD@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD * * *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD * *Q @TD@T * *QQ Dp:;;yTD@T * *QQ D@TD *9GQ^ai/`%!UUu:^}z=D/9!_:SU500bzMxf͚:ujHHH5MkiiO?#^ϫR / Bttt|WGx6mZzzo{{={xYAʫp^ gEQ꫷z&&&+s'}?`cِ^爈y7:뼰Tpv>MϚ5KEyp8ΰÇ?**t^Ns΍)))l_8peEGG7( rE. ԩSeQ׿VWW{tKJJ;w錋#a0xIDATp ǏΏ>A yd^p.KHHRUUήET1+&&F.!xޤ)$$DU)S4662%..+p8]]]Bxȑ2EQ Q8$wi=uꔗ+dt:]KKKHH9gddՉkggcG@@\uttx׃(Bk.,,̵>l4=36 B"j^~d4mܸqri_477u\N3==}… 0l6'zy&LQlN>]ZZ*p8&MbŊ4BT:q><<\>_BNk%NgKuuuFQ%!!n6mGX=tr-~饗s8sΕ?^9{_?uli+V -D.jC$;/3fxX t:Lihz|w:FML&ӵ^dɒ@DTp.dQe<9s.99F={9sI'O>ͫ`hll|W:$G#44n7oNS|6sL^(rf?N3))iɚ9sd(R__?eybٜt:V<|/00 /?<1aW}8W_}G~~~fY~ RRRɓN^?t/yK먤ax|Jş<5\3i$ }*U_,?StǏ}*_~ɓ+l2~iT0 Ǐ_prŴ+'O|tvvN4Iqq>ؿ?";/"22+_5hF*8TUMII CCCz'O6,,6رc~)/0wtvv[|G=QY&WxNsA(oxܸqgΜ9YuL`1BȨV+E ex D@TD * *Q @TD@T *"SQIENDB`ntfy-2.11.0/docs/static/img/android-screenshot-share-1.jpg000066400000000000000000003140601462047176100233150ustar00rootroot00000000000000JFIFHHC      C    p1ّ I,<ӟ.џCԏ[>j:SN7:q؝<0I6DcxbiB&\M82L떪615&^rYijswg&&8)'ma6櫽jt欨^^'≥(a} :P-Mjm]%vz -qUoܲÎ.,і&[[u-2-d:mg~?="Rw!B.7KbmuM㔮 HG˯=SരpMd(Q5ڱ-[z)Mc^#Lt3K|lGjȥ\ڹp[[.qŲ{:&F:&mXMi |# pujM㐧F%E1tGseU)3"nKK hqZ"խ4oסKIJ=z+52r)b٭95&{Ls|W>嵵'޴,۠ړ,Jduvv]^6ʄefT-(PXD,Љ !&gg=mQC9ɍas==w>3oϸys_1qtr-iVc' ӹ4+

      /q|Wӣ,R‰|]avqw@]eO_مъ)*aҙ!"ѥQ(ŕ I:"pke>Z!HP(F3^{!חJՈ{?s[;SyW6Λդ̾dMae،s=^^/Ծ-/DjwIמme[V>v]*&"kQ#m +Ɣ:yDhE DikZcY3s.O7q l._-rN]=o*cm|磛+69$iTþO7Uݨ:٭;nlkW=Jb*naS-yv1tzR@jbӼ|=/0Vl_|>Sh1mƙ4ʳvΌy5SNգs1VXˮsFpz8gc_lɾښDF1KEmgݴ/cjLH‰&,My5hkf mѪ~w:B'xwVV^/D;.s<0OK\ ۟>'f;[=1RU]ngVMӍФMRMKm1C.hxy+|mX3;~-S] ZڳwNV^/\ugls5mN};/]iaZkFAӬro2*5dvݾ25E!CƘ#mYِr:/~+|]VbSjRqtsѷClmFCuYx;_[ #E͹ڗ-2,V Wp-Y饦ŨP$C,2޷2kՓ[]s4۹b8D-YqsɦsCM4mR,Mj&V$kYdjl.M斏,dgy[cD-;yI4GY׍rost^0:9tbgxŪS;1Yu8x5YK۟m=sL 1XOMQ,NhIĜrCY6ʎzEz 6R!ckmf><|^_V $uam=g$|pM6U'E;]2KU,q~v/*odM _cϼKf\ja b&-]ڽ)Joz]3f|-S۝I4G]Օ<kiZW*zR^uN;RT[G{}D\I֎ǫ /klx_*oIaß{!d, bd2BcM St5>K`g;VugIsN>jF\rooHaq)M襣W}JDLIVcՍ|D5O;uLc ũ "hd3V%c-McatDNӂmGϾc$VIڛ eޫ1|<=<6Yvų&3ݎ# gˮ٭\Ձ~zx8KoNl5Wcij^Dޙ1YbMBԋȚC u61.sJLl!ClBw5r76ڜnE0Sm]8s+sze;e4z^[j‰ckhymgƜqlDV\E K SayJ&GNIȮ}_-=:t}-gҚo}Θr! plIG7dj:0jZƣ;i{SE qr韝gy޵VL[23 SaS)z/--E1KiXîStF\Ec-sʋ}-19ueqR*M>k}1Suo6(Q>eGM5UJN*дk3aIϝﭤVlNHgE贼3TeZEKbڕMXW'g,E6)&)3lN]u^¥8:ZyZ1F&K6Zxim=-RGm|Z^lՒl2ErBQ53TE:D,-q |-աDoFl>]u9P 8ji=:9{ZD㭪-={/ MVYxfE:IKW=1D&Ɍs"bE*'2) ҉Ra5Ft\5I59m1yuz2кk^M!KktM0rƒdd_IEVhr#Ĵj'Fѭo 艐^] ̰&qY1Rbr[ [aڴ_Q]VWŰOکeڙ, KY[eV^kkeMYiJB*VXHbPFcZ;-&Piygo0gr2軯Ow:9ޘe-r,姮SLɋˮ;Q4/'4$"{'Rm<Z_qƏ2!$жg$aH[TrLȟS75a\eJbL[N Fx@ߛi#dmLG1ZMgtQ jȘW}۰$8o$V}{{/i2ҦYTB1ᯙ3,[%gm]:Hյ(޺Miz3M3NuN Ϧ,5+ F&m'}/?i19gt(]-t$Z%Z\/lWiIc٫wf㭗[ 99X׺c}O3-6Z Jcp+;$͉Htl֯z^mC]]PkkB$eJdp=Xinf[mYk}fXX&2Άx`NLzoCSf:C]jyOi_19Y%1ac d;D;E&S;;ս [ ȋaiu ֑; ﱉJ/*J EĘdNz#bɎ9 *5x /u}A`aɞ@˚pnIf2<8e"P=hx5PpfC#K9j DG0JP@R`Iɀvn|n]4G h[=l"09y` 炔%ꄢ4A%fc0K@(J/P,9r[S]{v 4ƨ]69|{_'{d~%Gg>$Lg1>l~Cs_̟}G/7g{|nz>~6=|~]70쀭2o*qc?-9>?:x_σ?z[{^BU|igojS'ޮ>CN]>+|g{;|wWybOǀ|~Wi>l~蹏;N~/?DF}G|䞻q' m{?m?#/H1[{t꭯讟#.j6OǮ~?|V|T} GQwo_mG1e?|G^_c矰iק땅w6YkOg:>\N>u߾F>o'~Nyl7'5WOnQ4~/?@|]y!_ҟ={~^w~nyy\=(|r^v߂G<9~s\OI<_X~7U ?g}G/?zVؾc}/euWts}Uo" wX;O/ھkOO[ho=h}Om_垤ǟGΰg_Jao/*r]g˿}>Xs7Sqy}/ԧuN /?N {FH|9On@(s&}'?nki͎k6z_Ns@k Rj͠sZJ41ϝA((xiΘ\ Ia4e# GZtG"vFؘu@P2xvzחNx #NhS9 ڛ@3Ff؛(PT@* \zx:+qmQӏkz{9`@ [Ɋ-?;-q:rFTuU-u6T9Fvu^?qXk2ﵹ׭=oR/;Hr,jQ~uFQksUߠEҟ nFwA>ߢ}AZC>7m>WߜX^p~}xh}cKg>O'=_v_Ks<s]~[/֤.6|ϑ]7:ެ|?|G}`G_n>ay=މ@<>/G,+|~7W~ۗbvٛIܶNoߠ6o/|-7WW溽}O?Jr|u]'e?I~g9K9K?-_:瞇|Op/t '4x?Hk Ӿ,3aulHo!͚Q,qGj &֛jzhJn u(P\ h껺zľ5]\OPPW#J"ʷUN v *Ze~[ +,lL.T9}Ӗ7%A]ndƧ G;ӟ` uYӞQԡP.Wm|eSIZn6ĮʋޘәYyi^qu!"0123#4 $AP5Bp6@C`%'7EuH-Ц5j\=GJO*enD]bా[ĚCݥMnqfۤ;lTźO۞-FEt#6nڟiUN{A)6G~(l1ҠlKjDV+ht/mjϵ.TnAЫTh"˷`T`Ȥ7 pk2ɽ'+G sj6]B4we0S$5s4XyxսPEax0:&Eb*pXɥW?՛*|P8ڶƱmXpJ"lb#o߮JU.w[9(Sb\傮P jS!FT*jې/ʜ}vMRLz1\Bm6 3ŋ;5.&W*|Z5YV+0*:+j]l{U(xMBdX]`t*rㄻ>qrL\MJ*QR[\ȍ%Kӵ12TT*e䪤A5TS5ΫQTcg*hH"jz 㕹seTngʪL[rӪ^0'?ګ؎6%l3͚,}MhNN~h2=jm3 ";Փָ&"=_:ԉ-ڎ ?j'\!Ku)5x`ʟ,]%Q4?Jisu*k*WB$tiP"RgSDDJ3˟bmٵjjS?dI~$DX%$\j A/K",J",Ql5rFy/]1 $ 7e5QkƱkƱkƱkƱkƱkƱkƱkƱkƱkƱkƱkt}U}U7rFp|8p3c888+fijFܡY`J1 حƐ21o-5ֆ9J\FѢ'j;>F`2_}bP8Lp9Prܨ)c##P55CC!! %&õqAU32UE%+U'dBHҗ&ܱcGXd«%+ aJdUT,ƇrL:t4?[]$|#捐u*nZ-,LcEWv1K,]h<ţ7SP"3MUNFCs1P5=p ̌A?ʄ_|i?zVTb*z?$Tڇj.Wg#L'/S' 3זMI[fkSVDK^D!|k6.j\j\/.lz`)9?%l2=Tw1?<&XC̍l],)>yXF9MV.+15-{䐤#dcr{N3d8-!jknAB +#- ;hnRHRa;=S }ꐐo20h-\{j[LҦxIu;Ք祯Z$y#(I2뛉meu:.-Ŀ.L6{Y!!4LY%8A^ m %i%ޜ]B~R~joۈ4<.Zr!txujSډj7oN Id 'E{ܪmh {Rs#:1;ښESw#2zP^w1) t7틜+/ ͗)4"0ʽ!q|:fr%7M!$ r3z1gQ(})(疓K2n}XI.AnbSz~.iMfsv_%VA; WVB/߶.taJ@Z{A,kL|]|<_z0 ߸IL!e jY)*QS=!JDԲTQ+u+[YilNЮO`g4-%dG,Cw˓~ح)M-2YB <`6ջ+HBNro_$XJ NG39K9hZIrJ(h=T[+)ѐ3PM=j6)ZCl`y$~d_A % H-&á=:aͿl\df$ѵ< ==0Ғ™EQܛ--7/AB], ɪ%\t.KPj ##D Ν$ F9d+q9nU]\dyF;/>qK ߶+(Ѳ#SCjJ佘)ImXA3O銥KB%Zy*a*UykNqD<%Qgn 9a9" eg$<K($2myNtG_6A7ڍ-!aKZVnb !KqΜE>DVDd2,|.Y b$Iu {Ά4 pzA$4[$$l [:Y'HkZqH%lOX'Q!^BucNF Qm<n ?2 QCx[CB5mӡ^a'4WljO#Mb-L&  a23hڦqX=SQwOc[qy+-/]a(0r\'T  %%%zǐIc Ta%g`,N''% ɏtݎiV,+HFC[s$AKq4m8JCo=^L5i ߑ#C dhprHӑZ^ORBhnx/S䄘`%Pɞ-j&R?Zs/{ְ,d4Zc5HMA!@fӓmG$'V}9 3%T̵MDw-Ȓf =#PH׀oI׺"@O%;RR 2 ^յMSig4Dd<>ȩ$@wR5 ]jR46PJV=zȇXTXq@(&S )Q>?6Y^A;*A$vB#JuNYRco#F1 gJL-A&:J2u0 d(mSp[ H-:5V bP}Ru(2^xg3)Y r $7p43#Qd^w%|k4RK 뎢24`-DrMQ) FCin8NH5dy.f5+ ]wv@{wI)[Xk(c-,8ӫ)#,MXdM`Z[R64 T0|T}ew*BT^札fj\㕠5 @KAovߢ% $Ҥ1}j'{ An%YaвXRat5 ܻ8i%A-MyaR{Q?ehHR[DIlZ_r1-|M&Y0`Ur[5^A$֪%*ZH[Iḩ䬐H+!V:S{ ȩ{uTqᚂ|N4Ż\Su=cP pzO yv,`18HЫMw&GUQkHm&CJAYYn$=%#HBCEH|dEK?*RO, |2뎪TrB>(Q =Aau%?&֯?LzNuP/{ )'HW4YK41g20OUE#Q N$~#PPNxW@D߂S $¤'~CR TcsSѽDLҦkSH/ڑ| T'_ U|#T?G< WQҕ@~P|%t5q-/jd>xRũj5*lz2\6GLHeO^:ר@uP gvjB~,q 5k7mb"S\W.^D [\\)E+#1{л_wmkvY]e+ kJ8R.5ϸ?8e?W8U%qJ\jVǻ.U{X8D{뫉76Ņ_6x^] ٺn*P]3&GIGc!v2c!v2c!v2e_ ^2KLc49ꖭr pU^lQ8S 55Mo\.ݓ^97%Zl+ ωh;wЇeRmrցL|֓;튏 Wg޺ zb5 ]FkĠ⮻z% 꺝sU\qatE\LWge2lM{ExXrMBNix#۶ 1w9Ux\XxADb[ieT>]I7›wUu԰x'*oU%SήaҢ<\Wep?⭋'7Ks\O\`WdY[nFTz>ۮ7qѼU*$Njjj>ٍ߮VkS]LZwqvcQnڷޣF$ݚQKKmWR*<"Q]jxAgədHmT܎sSNA.KT/T~%xW. P, ݲG: NQq#Eˈ˧ӹ_C߈Kq-֮4{4VhUtN{ҩ9_gţ4^筹pڋyspғ^Ȅ]E*"W$2"ZTMk}Ȕsq@Y"^ J$)Sj9)җRMz~)U\!os.tܗB&K/ᗅ)|[xK9s$&mU .RTtk  Bd!S܋vͨ5dXr8lfږeuCNn#Nb,䪓~%Jk[SvJ;tJͨ)3Wo{kj몓\æ- "C)^Dy/MnN޷j|$[S֣e1#ލ,nuů l&1x*!eQk:fOoZO-IbLJRkVdui\f_jݲxiAo{>SrMcSP_)^R~.o #]p oNmF,_R[eHT(p.ĸYT~ݲ):߅R$XtToP-h>Jeҫ' ɣř GDEԂYKӕΦD]N߅X "Mb~U@Ůg)eF@-s<9H*"lG+nz)N(:ӥPL̄TP^% Ev&ɇbiԈG\cUXOtZS-RϚD5WG"&Fx3) U"Zݎ֊_YÁG[9jMiVahuJ4R{*J]]S6}qr':Vu89[i-ږT<Ö5-3eci*dH+R$F ;a:0)`5neԶ*CltcDn<)Mgvm9~}--ꅗMN"P< D5CQ D5CQ D5CQ<p00000000000000000000000000000000000000000000000000000000001իQhQjtˉ㤬 ZNfĮЭ*\vm#IT>4Sj*aIkn3\Eʗ՚&sĽ&l]j*㞒A)*֛oWع)Z%ʑY m$9YԻ2e*jZAT~:NZ>xQy Ur[U*5Q,pPlT,^t(~WG<bZH1ڀr9k \ʍST{T'7J3EJEB1N*W[{XQ\PU1H;J&.Bʮ~ 4R.riu&O;GT})"cxYpxesWZCwnE\*HC/ na.nA".aWYFf9x<}}k2W n۩ےj"C*o*"gƝjRte_S;t*}\)Ȁgq~9dD> *qtۺ=N(hu}qx*F2 |NK+HC'RZ>&WMQ7j.&`X/]FD8dBQ4OjS-KP.cb_%iP닡[-ȞnE0qLʔ#LTn4s^%Ms8=X!]c.$6hq&hRx4|fg*MB=Yw#%<{&?-rYפ_q)Pg_&.St5A\OECwkpxDtj(K*%[7U:VNU4ٍEڤSJ.1 DD mZJ[֯wB*-:Dv=ki϶ۇ@RL|)r]Эypj%Z֜ve6)[>d7GMjC#L49׼.]9 K-r?*6"QŒCP5 CP5 CP5 CP5 CP5 CP5 CP5 CP5 CP5 CP5 CP5 CP5 CP5 CP5 CP5xRUWvճG^K.0EĊUi-*-VcFl橱n~9+.M\{VrZ_wI}+K1,}-KKSV=w^/,}1L!4KP@OӝDn yK Q3#QHU(J V(4Lţ(Qx'(*ڌvý=+V(40kOf1ٌvc NeiwY83R#I闇)z[ 5IH2^ _5RPWzjK˄wL7pȼv8ԵXE >s|\ e;ocI]z(,PB {7dm% {pA }ފł)أw>Ccm&6itPߠhwdQ>Mol MA]r(ݽ-caF~8@=Q ͍=SPGLA?f( 6M+"MwX}H,mg>"ٲnȧ#wYF>7 FVSE Ew6CeN,6G eJ*M j[6Ś\V-W; {u2i eg g#&|Y G!ЕkZmSPpExw.[)6V;-XB>1ErB9oH>N $'nK AR]zu"QksXX@'YhZVJ!q7֍jZ{'Iabd:Yas0ed&n Xy͎֍vYnޑ ՄekRԲSՎ,\ πu㤢;SeeevL:f(.bֵXSJYZE;u:bVz[v|8 :Ի%:ql,[%ee3o.VP9OonG8azB螗=؝ &Yz0Ӌaaמ/kMNBZpYB:u%'FZ{b3t6XaaiZl:EYYZ2쨇Lra۷#{R4v'YF-iZV=Oa3SFEѳ=YEO &]#t|5d]YaaiZV-|.b2-h?tPj ٷoHG4{&'Y J ZV-EZYYYNr'=-Xh!vYA:ЎJŲ|2ZlܠM  HzB+5c#$ ֧YԻݨ#q&f֒avoH^ u=eeekZqוa֬!(wof7X2\\\fD-) =0{.`ZZը-AjH2bֵkZԵ.bs`1sW5sW9s9s9s9s9s=s9 9s J RԲ-K)  CߘSpY}xQHpc_;9򪨚ዔ|O@@ nl pq.ZZ;(Cs{1PD5[]Fn,g8sf?\Sڳ E* m937,BUӱAGT11Z7p_ǥU48t:~UYNpkK߲wgDa)=vRڻֱSdMC I\_I_Pf}֎Wa{&hxu?*a<'\2ͨg (QUܨ|Q#o.db{r!Pz&coT12rPs|O0WJFAQN[g6Z}#d!y=ܞӅ0TtU:F?}Qjj*a4&Iøfˌ P"9>(pQ;t$dމ8Rղd<U0jc aשR6X"ۨ:1-aE)ʐ9*^>eiZ$_@S/o-D- Ӹ nY9ʇJsFp3b6с.!0ɯL-fcN|\\OJGjjoP|CĩW \L$nVzaFLk#sp(ii#=#k>_9+q5-h3FNc\0WMh#8SI{Fܯ3qA.8iQ#=TPT4faw*~9 ?kn!r Ǩj=\BZgbeDbFxw\޸BQJ&Ex9iTRFo%rrےˏwRG oyjMU'5zz*>N)EQW+~5KxᰶSLrkLUOxcKuėLw)}v02g_*$TLgTU7 ^a;-;spnEq_bkpT%;-~.mC~D~hfmOF u=>2E*j&,$⯓E;=*.55\c?TB^c~SZvxxһ ;k<#?k8 ,5|Qq֞RSxUAw\[OO@{i"[G2׻`fQIZϙ5T2B~<\E?^N )cTƾGI+U e<\ ()'D, 攮(߬'4MEoZU?"wrAPY?rlGTm< Ai oB\5n.vrg^6*~HM-TŎUNd 405W _L`є(7vU;_//%;丕]3)E%9tfz},bFUĨ3Bvr~ͣѻS amrM^oVp}m4IHaK`O}T\&۟Tzآڸ;B睑SLd9*<7Qn*Ma貲d.1pH ||[s2?VpgأO,g.SE@|ݗCˈ*jvJj[P>~R3Z~ _T馦/9;yk8|#Q.nT w~J*vcWáu/ݔS(8*(Ytcѱd!C"kW{Oƪ?6?FPqcPqhj{q*L~g7?7RWP2϶Rz1UqLJ #Ϣ?% ?}INCs~h?p~HSmI&A6+䣂&|RARE3rL\{&7o!CZֵ("P!r)rئ6鏢=äxʇt{[|n91h֏<؞{XE4܅Dئʵ G$z/d埩`JgN&p6Mz&x܅w&0 -KXZ.ʌzސ2qgFQjҰ|Łhb:@4>B 1 !0A"Q2aq#@BS34`PR$?&e+2pVRe+)YJVRe+)YJVRe+)YJVRe+)YJVRe+)YJVRe+)YQ6[,fCVU@+E(ժRwsVQc6>8Yp-[o x-Y̳-[o[g 0Y/oBEj x-Pp:pE@"í5]Q& <{{T/5]|:^A(K5@!S5[hTnNMo ]jS(x"TCczWZ+ B(r4ml[(U(Qx@np)5Gs7J7 ҆҆!T(h('p )$bN P&VV45o B(#Q#Օ 4(׵[G,x[(RvґBWGJ?n1ڇZN' hj4z]6N\QFGN76R2XH"8 ( @Gt/[;ӽG [4jmJuml#隷iHma!Shh4PUڏNzN"VD"(GU\ VV⺺;u{ )48ZBmˆ$TZvV-9ґXHpDmPMѨuTCr*-57Ti 7 ґtk  yP!h;+k&֠MآՓBjeoґAG&.(&(LHtcen꟪5oDBR2W~F(ZQú%8.VLYBYy"*J߀2 1oV5Mu fkCPVHTBuAYnx$rMmSȦz-Ȁ%u>"q%YY[,N8ؾjɺ!C)ְKk4PV .WN)D*􆈧T !). 8{ GpQO<Ÿe6PTy&(3QOJA8hkDEYktMl @ !ZMeEetO%eez9]BXS"s  CN @TCzm"R^Mj nK姒7(i( xQMUuuzjG mLVVYUQ<G\/P(xE6j Uv(rW:E ڔx[PhxFl]4ݔ9Ȕzn vWJܕ+rn ܠl(E+r|k#՜g+9YFu+rVn-#LmQa[%nV-ܭ[+t%nz9[n ܔ' *ʲՕnRl/sl9ިFZ0Z~r_4XuNE0>z*L}C#57&B"BȰ=RLr*6gQ:U9-oV7;7Pbފdd"D H7 څQ94ja 'XMv}@TGrnX +&%#QGd!xi~Ib)K˾10MDlC<Jbvz.;9;E/ YcpAw~[7- $ck[Opf#3znebs4I,9Q Mp}`m.qarcH ?Ub< #y)l" bb3.yTh,GDvWvÇm{~ـ=IC8!ӑ+<2igڢaQb ͍XK>(|lwf"bP`cω墔ڼFr{ybnwx1BvxF7lq0̹MF~;zQ'F'8+9].NL.aQČSsBaȎye۩}ED;%9sph^14pӳ(M/_I?7%c9nf[t nt<ϻ0k)ihpX! N|Ab:c2s|PeI>4 8:nƌL1y54T(ADXnXwulӭWS@hq/'kSl e7񙕶o,m&7ͅ9ͧqMĬ=MYf#T >Gf ni7I^}??SRxc!BKLj!/Dz)s6~ӿE8iDzIi- C ( e;QtbwzM֍BuDM}ۡ@At=Mcf ]?K~j>8}!Laqd"Gff2j yp#J'S=GwNpS~Y[I d w-13( n"G?O mpBkѦni˶nn_h|8yM|gn Mg,Y?4ܨKG0b+{)IƄجЧH1w/5j>^ܯ 8,X-jӧ5+b\ r(8,iؠ!lHŀ%OѸ~~մXMfgC"%']껑X F~V(0"Poh7->??AI&s{6KC߷`4,:2u+m!hKF~6>[':秳oPJ@ᙺ'6q(2p?5Ɖԋa0*^M6+ M$C'רo5j1q:pnjO3qTˑ!?k$-qiv[TX{ Q'~*H} !Eۙ%b[m5dUBYB0s{-`-ԾHBӰi"-oNlQx>,K u^} C.J<;7GQv{ x[Xp$#- f+1YBx_z_8뿘fW3z*,xi)ͱωwC1γ|?wS13˽lx-[Ё9t,Ԅ.h\Ԍ;n{Y?_`GNƊ_֣av]8*!.ltceQt:[KaۘMiӌێJ2rR8%F瓪kjyuk8P]CnE9=6Q;+` Ou x˭end t:E|-[ҋY  !1AQaq "02#5BRr3b$4@CPsS`c%ptDTu?yĐj2V/^2RyvF֨T])["ihԅe|1I䍦Y)U鉥})1-eYU2 #'\ĬX30K:729It:qg+pyiI-#&NϮ{Lm!h`qyE̦32fYm*URD3eR6&Бh."ϛҲM,ɶf˒] =tRy-!b]RӪu7jl\wPU&9һ?NԌ4BTz'a'gY[BTTm)m YEJ*+CK0,%uk78Oi}BL.3. (dJJ ֫uGPcjbVڟUFV-SP31-%*$A~'`_']+EU*S%2sqmh4AW 9]FHzL!؛YL:h!'bU=<& (%:Uzl¢%CoK2|;MPb('_LKS:FE=mDSL=r32m 8|9e6jL5~_eD+! .K}'Qy&|{.)̝ %dܲ,t5åOD2A}/K*d3.[+U8e̘ ve EHO}9Zb,7V}|#Gܽ/'M]V|!mLtRrsLl60ťChLjډda33 &*7%; ng'y\_,u](EU`R;GtHpꉩ)0wWYRvTZk$ Jq r優\bk[fM.waJ%-itEWi^yםֲzีn(Ԩn-N-XFze[oJSfnFLJ4*xDŽ?7X2TQAo9',PU ?9-1[/ +MCK1M4Èٴ3˓ mVEKQ7&2kHMTJ # jٙMyILHOmh[mVx3enRi\M7%2'[ѺORiǖm͕T)**7/ߓKɵ&΅*NvR2y7&J:j7 %qa%@*@'E.0mZe!6Kq }ԛqeTt-ȴkA3l])dMVe6õkL<1ȤAEje:SA7& TV`u i)H.ymZW1h$h]-k5K@P QGK,tΆu~-:*d#kUB[t7zqQ MsN]lٺ's ( WC'.Ƌ SCs`8[MhU<^ᖘq#LmX;`M772BY~iFQeV4]SVFCLC2&RmDn1ޥJfUAerJ}0VJ)8/| $!Y LThI(x" U q)uKB Dj( TB*3^Z ׀sЊ7q_݊~+-c>V}ب*F*@Ui9Z+`Wc4+*F*E^v1_1_1̑2<[+f&(svnI;uBNc)fGۗ ي[`.[7~ccUO5oAWwي+euc_5ʊŔ͌UUUꀊ Zjzꎂ^QBM"ߎwLWdvLkΞ9㙕jCe(nt+WupOU:ʅPbVs: vjB"ʻcߝ0"赂aZ:wS2`ﻘ:N9j B7ZNEBeIy8xs)0!q):3w|Qsⰽ0Dd) q3EσǤO3 #aLΟ Ӛ`Pf qͺt@A:"0lCp<푴sus0&=y'02!&O3qb Έ5|s@C2x.a_?>nvs-+fŌR •"nUPztb"y:xs1*Een0@ ;U<355|}p  hkMs_7R0 Bw<35G̵mΈ'9 HQ8xEkjRb0; j, p¼ÏT1H7^!0 ᙳ+lZ s4Fÿ0κ/AIڷq͏7 BE50a\c*?3~wT0nn ̑Eta7:`sU3I̞<9"Єӵ[Vlmsy}aP0 ޣ=I ;08@8fkRئLήf|4HnÏ30|V+KP F6Lms0zaP07hoי=JBjm3[+| _\"έxgNeTP&^eBܥ*,[YU"3'P V*H(0bRTTbXGj͝A1\D0W óԯ)[U'kd0pϝdS\RgNjm7 ;"18 Ξ<ߚA(aGD $PJct_GyJYJ(Sxb ? ɄRit*@RMA&>S k?Yjپ:8fHؚ^éP廝5 tn/.#am c\3{kvkTǣ8̨8B BGϾa"詼L`Gm7¬f5x8u·n1_xHx8fgΎlEb~f0f,OyE3s)C]D߲Z^6ł{D榸r_G ӫ5oFD]PyK8wӘ8fh1PoFG4 :x l ;RSg|(jb-QX1c.Üb5G6瘞ߍf g4'~qǨfNaJ+l @AQ]PF$ E1 sqkG3'`θZ>YaHgM;G4au'f lvR)PnڠZE~/ESF2cl\3^T lH̜098F|c sSgG}+e0M i nvGGW~jG2ӻ0|"̚E.\ vE]d\9a՝UnyG_3ߛ'dg')0L6>t_t`]_a,pfTE$k ӚȾ8:@F)pų)18Fd/Z8fEN?f<ˢ)ceѾ2y߄zb]}YCmҖwCkɡCY[ЛvXJ 5G}^Qy/fėTĕ5G%=’P,i4<1%jSʌ_$#U }EfXܯ1_fcd𼗳TxZK٪<-'j I5G²~Qi?f𼗳TWt쏲\xnC*)̏TS/dėTxbG*<1#j H5Gd}2>QdďTxfG*<3#J}1#j {5G^QdďT5G%=%?ժ<-'j I5GW*]PT)7}ZNZ!ie9Oɔlemx39fe%D}CGyM_L1.l8R deRѪ@HJF?Nx111110'ni+ZSbjeZ9LΉvVA70%2y-&vVdytrvXTԴ/a _wdjXTn! +>2_5\*va L>+!8(կ9Za -┷A=4 פ 2JTW#1'C4]6ez$a1(L},%-jwIoFN##䌖Ubs0§Vy[)R(e*QO}-&C4_EUY˙B}-Ki;BV^TunG(<%$㜝";rԒem;ipjEy; e 8qDҐ5]}7VfHit%[seL.N[][d0٫en-!DyF^]-NO֒{0»jVՎRҚJ٨bC')ɮ-gy>TEXPӵg)d龍nAOzPZA3.YqVgrpmtUuE@LG* RH!vqܴRKQn{BuH. nU+!q٩tz6ʫsjeKoJz&akDN=?Jj'|U$orboJ>\}sޱ\G=z}sޱ\G=z}sޱ\GIn/0TjQ5FTjQ5FTjQ5FTjQ5FTjQ5FTjQ5FTjQ5FTjBcZDYo$lm+BRMA2oZiU(3ԩ&A5q*^YątqE@h/g!2ͦRq}ܣ/,YR5%Jȹ=J4gY26 ~qt?_2FPs%]nu_\Ha\xmAM2a(p14h}&+(k)ML6ez oL#7X{v )'o׿BL(*19Zr|mrH#̪zQI6OlքLCAv0)ѭ(`JS Sd;ިT㪔.[6<d[1*8S0A:5,j=R%@M9/ʟI5tTQQDŽ0<%ēVFN*nLK! bXPNӮ2_|)U4;';-^XSvذJu~U0th:f6[e%j07!n9榰Zlb)u|!uuQ ͷvtcs&Ws ?4u|eS `W(DԈK:^0ODi Lm$%TTJ'P'TlMMm-BkE+0;Jn?i}qizGzU")A)2BYvXZmJjKju맯wU=Ur$T TJH6 8@AF$q`=6^],n-Tju%)a RO˽/UXe+6;4raWy7LJӕUoJk*٢SBCbQa_DRv/Ib f&4ݨV^#_5:M/^DC.rYZedZ5[ "k&*W.pN?* ba$IĠ|:^!IEb* v}'z5)p8 @ qDYeiޕ^ɾ⇏aD]~>PKmR0wZ Y Kh" sE{Pd#_Fo'&2ka!WăKOz('KM"e-&5~cD]6mWn4&aLlXV&[+$R(q+]T#4`R!GpPWQJ¾_wU;$ diJ̤-9H40vM7+|X+Z)[&5DfѠ_Bde6lJp*q_(1i rZK_l Av::2%~!Zm)rP)/0[Mh$b7HPEABp$4Z^E㪜-ӹ5iHܚJ})DmM me[WjRQ *^Ѧ)qkK:eҚ贆uBfڐqƔiGZh eW03I8-!wLK6U-ԁ뇥]]ff)Cilj#m_ë2mZfl$}ZxŖj/--oM`'ihM]X yV0Zi#Xo$.ۓm57-C >Ym !v` m~1%2*qH|bfnrs6&T{ioVuR[p$6AC'`#,G-VmdtZ~F7^o#Qfp %@jQ)5JrR6TW[n$- *T Ki<餝"ЧDÙAoNЦJRkXnjRҡx&kv̲I.jHJ۱*[ Jnc^_E:h!Xvu$2OrԤ>gEPlrYz0>PFLaGi71tc(e \kY&@c( y}E*7R D2Ғ")Wë[.貤TNw=X]T)i™~]%Y5-:UzV. nrF^R]MR oL96T8ZS)PŖ([.\ֹrj=7nC(W(V,?VRtlꇮ|2C}mg匛,,bG} D *Vdowr.EԖi5$!I?mm^RRRilνRhnatZJi:tXqa= 겊UG '&I3xlMMO5.ĕttfHP/ķ1uAԾGꖅ]?0&lm[˔?;GG(D5l+'8O#@+ObmVۭtm \BGꓼm~BXZ{U}9fS8CRn2&[yǁ6R)dD+lX:)>pU,ZGRv|[!ٹ%Z\KLJ8qԗ 6ĴS@P¤$֦)WcR~=RTPVꌖrMgK9iF4Zi xa?{ľIɫ\m>0w|U1*C<,XPOwh5k^Ҵ)HZMRhD)[/YXZYê1A:Q }[r ӁԱBYk!7ڢM &/><`;SSw=Rm=(t53r eIPI D˯׬ 2-W]MMh=Fޔ}lM*`(=@@=/}CNTPcj s(;#&HKhME2m8hVQOGs JȕXtMU+7()4tMIͥ̋m-% %@,^pnZbysYAL[\h}D3;(Za6]Cmky#&'4"fԹV,ʉZ Y2gͥH;U6FXZ&d.\ge( s ɍrYR4踔%N)ȖmZ+dYfm+S&Wj MEV$3+76Δ!<וP7 (SF\K2A-ixJasIRtL=fH&cTҐVt 8aX["2RyHc'YthSAJRdWZ"bmKhLɷe7bZQJ|p5q*NZBYt2[JXkXj^<%԰ÅpAv3SKBn`]Ԕ&m3iƴZq$NPBiiq$(c2)Bݑq%}RorrsyM˥PË%DukD*mJ'BÖVV4CGX^jmm.Bԭ'&De+2&\*JPUۉ} <,.%.Sv G/LˊS%"65r${#.Ԭm1Vjڔ UXS G,LjQc%d洙.o)vq<)%`߽#lw#2rbU` RͶi&3Y<޵ 6&f-(W&ͥӱ Pu?0#&N-lյ.y3(ҫNUGlxF]NdYKJ&]Z*5"yAY^RChS.UN(7Y1!~U2ɲ~L}4|N\AHP8ףIYa],JL֛h}Dҫxc|divdrJeܪT^R‚\U{=ɥqě%M=hzQ2_Y&=N\JEI҄v;<@ePz`% \] )Wahi^Xp-UOrW̾5`NYt% *d_ZQ̝62fjΊ$SL5)XR2岌PrjP$Ơy&el6dq?-˶f&$^m V(2dOfna)%H$T悂2(s fe0 %yWbr]iɶP[vh@ڳZ`V'ȊqJњ'5& GM'dۖȳ riׂh+]I62:J&%lZ]tsSHm8^$KOױfܪJZYQu oئjbEYJyNiDPb5喝q7['dYf?5K^_Z$R'Mui<ցY+Qk0ʼnֵ+캞Ki5oZiU)FAo%2,lǂ~qU9z?U9NxΕa(laV=t&fQԼҵ[Yglx3'vG<# ݑBV $-&Ia toҒBTfN쏔x:C>QE7'](KHɲpZJHw1uCؘaK ^N쏔x+'uG<# ݑrYYy{}aQ^ /1ٌ` +\ՌDb#=fí~l3Ɋ)ukPJS1W) PsVvVыsluұ7101NNxjL!XGFGD“.J[Q ] 95E@3*ѲBv СíK&՗FnETFLK@P YJE_6bH䛣"⣉ΡR^mO_#?_.!1AQaq0 @P`p?!d5hXL+IZy i:4'zWM*f6uv೼q]v[ ަ+V8 HִWtAnh8  й`[$rD`njaRpdَ& +m% %C[QA6uY hm]߀ť=;a갚 /y\tʡG-BUx^ lmWENWaK[v0^ķ٨U5`x}.Hڵ^ߪQa`5Xhgmߢl;S#A]JЏH,o(^ndg(+1Ye/0Bތޕ: ޺8]hW+J3t\#kLƋX:SJ]#[O/*p >}_9嵳 5㆜A3UBMxk4zBȰr*՟0D8 ;lרOʆN;h}Xn@lII듼A;ܨ [ ANN x#nc\pKKGY=_a(խ6q Mu-/ނy~6䘶D9LkV @c52\",z{J$tu]!MA#6MJΎOĔSGjՆh~jxjo'G(VnĪ@SS fEQx-1O/]~3O*_y4_G)<1y/IC3#^CS|0Q )%kV4Iݮ#ޯIX͇5/ B[33&/r Fp_mKpAFPl.\I\ p V .`%ɴқ]+7҆ Cݸ YH5$k ӱͪKJQPM`5?ÌeYgt;4Of}Νi <4Yfv]hjTLL%]=/>c"p eUrbשnVVRR%<勞~DA} ,ŮUY:letzBd7CB+m+wVP@0>r@t,4X[0+`h(œjz_D_ q.գ( eKHj8tIٙc^<ո){˿2D7]Rp= |i_tNљoCv^^fzdmJϞsVv[4D5W)1{_K4;1.҅L}0\ N#Ǯ,j?LKBQTKOW-洁}#]W&%zB0ޒLb^~j._=tEl n۠E2԰B7Y]]* 0Ř=ůi߇yC>#Qbp#7؋d!S|̵E=ԕ2G .;]hj-vw0zҔmQ%G!3}f'b{K6t5d'hXJh=#$A3ckib wz&$n4vMt! ,28Ig_VB`:ڞJ;|_is|?ttkrVKҼ` h;2ҊGcj$`B%沦N`a}qiO2g'`?l)Cr=v~iգz!/H. Vq6w@:Y 6;R4:u&W+KlLӞ\F iD%6u.H6MZO.`_.՛A['1q52e4>gwR?Zrv`--x;dOF&\pLx-{1vIIgBYVXMn様B+egses螅.dBZ¯rxw_èA}?h&hECa̤V=a0E 3qaE0%caΊ ˠ(FWI]kI; f^t<~S0?'pa;[Lg#+9Zɴ1{%{Jt3t {x=Re-ώa,!&:h9`m&^z3_lc`p0#m: e_fRJ- 0̔# TOc0~O2ucZÖ @&g}lM1ϋh]ggyW>bæR| "B@;›:iPoRZ=q+veCz`B1y7P?hk+|A.BWB8 0lx(NGZtU}+nb]ylCOXR.|+m>*l10ڷ(iɔ6q*3*hM*,eYh2x]NeIbX؏ُ&*?2>r4>#,P5s*lxNOO7<22Tոh)Ue]bM]"tA# 6&YU8\zn\J!~fqS?7g5-$oIPSRVâݥyB5>rc>k:jw!1ף簾aį2x;6v85E۾ycڟ+/&Ngƅz6d:Y;x:hs6<ƍ]=\Q.);`5GToXϊΚ`|^ã3 LPEgjTNB Af(y8< Csפ<G>A^8.Y^{ZO<0}(#ǧtiKCk\=kFo>+4IU ՟ݠ7B7tuDF( I%%3v7 0 &jd>ɤm⣤5@d0#(n4ԛK!'~rj5/Y M=W> _iՁճ1O ;FPAS%]tmQ~`/ AG.L#|DtIM6z2ebf %оxPԫ6],kYrE4ե@M&t5EȜEJ}(=ţݛ}ĚH?u(!*!tiO3Rt-:pijryXif#-P/obgywXψΚz%*zY2aeeye维2 -0w8f c1\D* 2qCK_. w?7%Wg׸0ZjD̪4W'Yn~\ .6?r}C:#p'4?X B[54#=DZf@%Gr!AG)p#;025lj6f.EMg=!LaKU5eNu]5h-.z ]\oM\xbJy/՜3h.鯄DZmݙ蒧;tLcS(%Κz[.D 9B~7?Meqf̸Բd,XcQjeo̻fd^%'yJ[Ґe`1~#ZgL"^H^|Qr2t.cz.M/2?etJڴg'a9"9E{I.ש )WJj" o095V +0 );<LiZKBp,M+F& o XU%(k0xJF.+,Wrn2MsCĹc)rL͠ ݗNe& z!jVn^.S /&*bv]7Z i_ rk ՋL/ɚ͖Pᏺ^W.T*ɈgA! IdWypFOܩyX@e p ~l{c0*Q/aƶ1 g8cR[ E:'MgM?*Zo4Q➌5 i.$0ˉ U`,_h'l%8[Qy.>[7wheK2h%Jw>ܫoM5qnbfmsV.|WBօ_Wwg9Ol}3(%/>e1bTk:i>̯q2S OΕAM$Ԯl20L+Gf6514HBc.H~=q1ޒ°Cit{Dqp1 4xa1:,8QA47,> I >.k:8tk(:` -щ˶d M%B#}OOdBƔ*geTtY8$tiſ(gkTܞ/ c3]߄߷IcĬ_8F.:Jb's+,ō ȱ{ mʻC6@1>ܨ#f{[ئdG> OmsMORQp7[J-xT7^ G1@A24&Xie7* 8z|GNOWB%\˪_1sP0V4CBz 轩*q*aH/V1@:pΚzk)Pv̺M[$dBV%V=%\8q5I`hc`T5V#-De(+ %L%7jyFoRtT YMS̽f<7Owj8@AJ[D)'f^:Lbh#Kw`t6{.? i ycn="#mD.zOV~Jp%F ,g0UT\MYdiwO]z6o p^С%ȅwj,E$\r.!eнXa8?47+GS\،ut+ 2\utxsYflX+ 3YucUE&nɑm]T" )~:L1O ,RQ;2-: L:&&M&~'!u\II8&a0Gu7,M0AlKػǺ80NW91%mlAҺze_'M&HeWcЖ£&(iלtS波O?YwV,]jkUH0Lw\+9AɃ@xω1{,*1YoZ4RSFƜ;Ec0mrf]Kkq:t˗0w3Aor`0f#!fsʗ7pb:g@gt[a.rY}b 4Gp hgN G^J{`[Rq=nQbb9 Ϲh]}EKʨj <R8^Yj ]>oy_ƋX Q5簇Ԏ#I@tL()3/QpWQe5̥).{Nr٥Zҵox̆}v%b;J lmޝY~ Jvj : b95aҁ=1w c.X}Ff|fוZb&xf5߾fCLJe1~^xJrҚ%Bt״wk9dў}rMHZaR̳/uD>f;]Ōk3>&w".j5Se7o/G2} Pf[h3esF"jR"N~c2j_3YҬN8fh^OKF2SYFQ,3@ir4Z^k`~Qгhalp)[4: 8F=m#f A:D ȸ.*˵%y4' J'0ݖ+q~QV{hZ|_ۢO/AjI/Li/ãE1BE5gwxY 5֫G<-򕙵k+7΄1Ec^Lec!.!9z\kYw=zkm3f$ G.SYRibp~W <JK:{2Fl7S֙?yQw;;@Ucyn'3"eץc4+,0G]QLBhhXf *4~W0 dV rMƛ_·QY01yP2˄ VP(ؖ6}!8gd4S7v56MBD'WtM8:7 M#C63eP% |ASĥoD2! 5wݱm߸caA8aﷹ~~'~pW^Wz ])Cc'D*-~. 6.VI$ӓqPbh41P|Sj_QjD ix]tU_eT$ZF-׺ ]SU+[S?@O??@O?6%C[d+W/d^\{%rJ+W/d^\{%rJ+W/d^\{%rJ+W/d^\{%rJ+W/d^\{%rJ+W/d^\{%rJ+W/d^\{%rJ+W/d^)_}\BذNW_'i%hd ` 9[kϜZ7mO 4hՎJ%+HW;hmh{D^t pkt!\g=Wiթks-`>ŻpƛEByH/q_RՅuswy}fø_m=x2mV6!O.Iwݷ8: {^>`>ګ7**-O1ǐ dDXpj2*J-6zCe=#0+@8l2]􂪴gV6"vpGSuJ'5qфgW|2 F;QM)'B}ooqXP-{kjwT1 H9SIimY9<дM dH0X߮wF򴦘Bl¼-ֺ^ Qj BWhfl֭F2W:e8륡Aِ/bSu*<nmX*ZV*{UZႶILarv4pNH@iA,<K4x+M7я$OLFz4!)-a.K@{87嗆DeCVSXVU-|{GSO| JDUj&er-wP/L%5}i gа*H\(Jjk iݝͷϺ&8i!G.wm>}DZVFfd1(u3a殙k^fiq|5ٰaPBƓ ^*9rj EZYjB7Tl@-97(Yz;ļni;vװHEy ]OWY?Pz| ̣+j6;M;K$⾦U1pJً76v:4S$ hiš{N1k}-E[Z*uUZa{AN3 ` *G?F[ؽObP58o[|`C1-)6*S_˺;kqZvh43Qa{#ztViϷ1!aPU}Qb(9iT1Eij|X~+̣pU@[VV֯,ܩY閧1410:!fV(2`z[=̷[7_3f=&LZAE%FE KfH&֥3Z/)7}_ԫ]jB: 3Ń D3mH׊LJTZj$6ݙW)X0&ʶJeVVQ,{L>a%,p.H H#̫Cx> `]\_]5_+Ul;Α`E{/.62!tˌSxX $<ʚ\j/-2v`*]y7Vȼt/s+(Tp2 * -l 9Ji *}OڨeA;'+je2.Y9BTF:l Aq8v+g8jt8b]\/D> ]D4h=suwoR+wlUmMSujng s mX>8*E#[Hټ1]^b(t@o _O wMKe sWWlx譣kv ex",jͨG,+S>HOq?Oq?Oq?AЏrLLGv"aU$Q9WhO\'mnUhZ~ѕ[>Dіe+,j{AuPW=Z 1wm]}Z[O3҉8pb群i-2bDm r/`[esM;iTϳ8Ohk`u>t1迼 q|P >t97Mvhf:WW;$[ifG--KCR|2 [8ЏmK3IMƇ%KZS)j4I c66Dz&ieA2bXD0<Q# T Y .0.N>RR/m=?x6>^,uEVaS5&pjr)9Dʿ\ 2م4ҐAvd?HOpz-d#\ݎĮ4NШaHn D(!ŗG]zSTT4w?OIH(w) &ϹOW[[I^@@_ޠm[[CO/f_ H|E K?ĥBa"F8,VwƊ$Th؛U*c"x(ջ|^+iN)ҁEa.|,`P#Y%@7']+as=ytFhpcxiܮsdKAO}עl+s-e[`tsOvt72i~+R)RVTFCJְ -*PbSO(`H(;ڽ{5pe m옞7ͦhʫV&@B aa%nB2gɲdν3#ǞKv[DST!Lkso + tL{``܃x!XO#4=IŽ G+Ȼ~N&Pٜ /JeG{X}*2ڂ*FMW6/>}U>p?eIv!pE pv>6CNTߋz>""azΧU ?YFY˟Ў wevb 7DzF=^vO};o]$g׿On'c\ :}G#a [>ᄼ4n32RF򒮍韼9}_<T=UF[Pd}Kj<u+ ҋĠ=*=6 ]5:J`v::Eӊ̵cBFV 4ʎlh,止>vLWe}oyG"._V(q+u:K:](fWz[AwT J]P }e6?/rY0En Kc*q #Gx1!{ 4Ec\ᅖofԠr[!WC[[(PlZUpc DaG6aIt< h&@l&`_+/^+ kvb C2P<.(ċLd Vf|d$YV6z BLJL=)4dh%ٚZ`ys)/ƞXwM=Ҥ XSf+mѫS0GPR1(peդ:g]J&3hK9M'1` VmO颪Z(=U-XѬly$J^%dx)HLa߬~Zq92 X့ŋȍMAԈ (ԍcHR85kYPʵ3062hUS۱aXyFj"{eK3]Y-PRi ]4 D pE?o5 ` P87oٞj0FV/%h(ZmY4nQci/fq9`1v#TksS)ı v~+~0ϱr?U2[Ֆ:vfK%M?a{?SgĹj,%$.zS&`K'HL0}I>4Tÿ}\, ƱL w%_Z Jy_xq:W \1?IXEEB!Hl]% Fe1N54 w893Q#`=#3İIw'UfQ;>?ZkEI y3M&S<5z΍"[Ƶyo4 Y:L+*Z_kٞB3nTD+̨r˲3R:||( Ĺ3f `R@T~"y("7Rt?YQI#N;/އCM6zB j ]aĪ}P.212Ms>!9j\|`FUt;R2p\pRw<@x( n0ؘ60-1n#S)7.IORg3N|{ dRɢ%~٭.)#B!2wo$-4;L +)|ME>X%ͫ5r~VN`uE܊3OZa *o>D R% hi$_R !ke@/nPc(Юѯ?P%=BK[Tf^Sb}Ɋ?G+H7* A A$   A $IA$@ A IAA$$H$ mmmmmmwe (\&D e]x*c AO6\ 趉}D==% K͎*%\~Kc>cx wy?vA+:#q+;}MDW_uBhh-4eb'8$4ex8zn20W4@Bҿ$KUJP|}IGj"/smd%:ώ%ZŃ5֐?b.]=3g8R MOb9N>1,ɍJqdB km~Ɣ.WPX@f\npFUh[%`)"Ut Uש^B$@9TatFK= &l <"A"-Hڲ Df 5{m`)H F1P.Ϋ/(b]qL#~y ~IM ꊮ\0 whP C ¤aly% ,,(F9ҥbgj7 Zm9ptaR;2?R^ UsIꄦ'Cu{HB),*}a4|-u.ƀUjNE$Vd><m(?&!*#s+hU \ A;}:\(dgW$p/.f]S)4+h);bf*^RB|3tC!zѰܣ* Ս¢R|ͤAi +_;ٷu EA]BMm⁅vYQșkm2eTEV4T0=Y\y}OA%v@sgF"h<óÊۯNy) &1\R;G-XlBlǝpږ E VOtkdfB[TZSe*|>g4ScHa@A `lNSJ58O.8Y,rY -IEuKlW lOK>r7"NF84L N޺$*HdbbS&`=|y})"3$C@?`HH I@$ A@6 ++&P3@`O7SHk"MM7 ŗ}YsL@M8r@UV5~N)'m !@zG !6 @I  @A $ I$I$I$I$I$I$I$@I$I$I$I$I$I$I$I$ 50!&>D$B-6 f|> _(>b@/ ^1OuL Y)rc @H:@2@ H A HHI$I$I$I$I$I$I$@/{A \pH>0.prp< A"kŏAzn }HcH%@ $֠%$@i @EH#:ʀ-!1AQ 0aq@P`?4FA YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXr KK䬬'HN !4,h7et  4GW[cu,Ũ[RҠ \C|[//* J*Q4 pR <%PI*W*xA'ZJ+&t 7 aK2aȉ[7W7Ppw7o4%2jYe  B=` / v|E%5$X1XK#")4PbqrS ؂oABI`l%1x*0aT0L&n 1f:<18 ;9THCʊd%q9 LA5Ț]q~BK0Dpim:Gp;8 ,x ͪi^5S"&!Db \Hq Xje bi.CIye4swD΢GLjub㖱 PX߈9LǴa !Οi0\ar=G|eN\"TL-Cm7)0* 7ͦ6Xtb,%םf%1QbՌ<%߂W=%bÂ;69{r:I:PV"YS6e35u^,MEΞ-c+> \yaStpXۅ$"xXɀAb EB7u-| K̸aO_ C7HX,.nŶR3+[#KM8 D̈́afI]B,8>ero*-Sx{[qdXpu?.) A {NنW"oGuzSחPl78ݱivai.U-Wlht8 J7>|*u3Bl= E!-.}Y6K=qPB[U1̣&mJqY<Py-)՝@b,ߖS/pPw~>As>N떃򫓼އ0$fM螐3*M"/gf7Mvp@ް;}#ʠ¥/|kZvbGM<`ZaB5zh{RUNl_yUb4)فF/^Z;S] }2-vç~p|pW)5U>oo.a"r{a @cbO@ʔ̃)m)|}/b,,)h zY:<ø*3ݙv<sKl\Z6";^zy@JLuvb$³Gم&6a{9hd^y{L RW|FɣE,NanzPR=wTb_|T~i {A!GHܖF_<] 6}IX@ L*ȋH@6#f,h23|w"֧dD=CWmEm_YVhWC%^JCd.G =VK_ˑe~ dgͩӫR_L܊"-@KcyLߖ%Pӻ-?CЋKG^n_(Xq:,lvck xp}}}=lf5\Cco-@Z|1?{?1go,{z_Qu_NB1,Fޯa:=Fw޺qo, .q'NyDGc ]P{_kdYީ >K>lw ֭[8{Oz>l`߯uv>X+{\Y-Ӳ,i*=W̎U?>[|fEQ]CUMc㏸~и|J,~Ǽ!8YQWcCر:SwB`7GV|7z wCE, ÅݺxKT]B;k~|dE=(i/K>܏!:u ?+X#gˏDI-_VGgIeapW}F4?sIlo)w'|eJ# ;\XW@> Q ?L 1Z0]CLN#QGLGpXpj:|w |K|RCE~ q+2M~pR 8,X%AFWbVx7-.m/]ALbBlw'T K0\iǹ}B,Baql$#q%{Њn>i3r ¥z$x<8#t8f<  ɸ5G,ۓˎgik%bzL "͡;rKULZE c3TyWp%wNS(GQi1]㙴׍7)>V8wNG*[1JLo< Îhna>s5~wS1;͠Grp$1ngX*jZYK锯5\J"N6y|b3Nn1qXDYGQ8.fTyx`̱?F3XdӒJ | ܩ\1 ߇Qbprĝ/ko0G JǾ6nY~>,9ͦo6\\ \s'IR:: Y|^48$0-bM8y=\f^7Y*Vܾ d)T\ۆg|NFZ4W5Fux,/،f61e.CqNoāue5S2 MQ2=иs-Ӄn$ג$#0:F" 7pjZ3*35yX1V 3N5F-C0z<U@xu4TSyDSʖPp5X5ԸC9N3nXGaYcvJ!mMQᆸ/wGPHs*R UI׍p4H2ƣw\T[uPi:M#Afܼ?C ırc3TbE36eBa.sFo_е "74Br1y,Fhp3˩_ICŀx 3t5ƏeMq׆L\K׍8Tc]!q*(54Sdj' Cĸ栋7DO:7 sFTŃ_@6Dq‚0<3^7ܕdQ!/EBUsy#|2 #+MU]PKzYa f_PqYΰJVe{ll\B;o]CS78`-5(1-QTЉ V'@TĩFrHx}MM%pMΐ5xx6w CpR]ۨo|@n 2]J ʒN.$ہ("$iAX%0ӈkYQ8\^0#8k81.>j`p T&[Q$i/\D3*cYP!)2Jͥ\Ũf]G.Xj;E٤*q$X\VF F`DHX d#m.* 1""cd%rBgIurbڔO(EĦH&o-bLwn0P K5_2qlxxbKs52@2R#LCQ A׍ Jyh؊7i6ۉc3*YCYP1[/(dK)0fi-US0RHj<*ȫR*,h&QaD#Fŗ1*F%Ab"ng8. i2x.[ɨLc,fx/P5Pׇ̫a* w!,bW#swq 3ayHO۝<2pԣ)*Ck\-L_.pY9,ͨ;V\yP?J2pEV[\LvX9FV) (2s6e˗xlxRøQ:2.iqss x\&xO|ODb=$k\#P'ĸs3mgWǹ-i+f %x 뇁>K0BXTl!ihF8*, 3Ɔ\\+jbL"Q)kzaPNdXj]%rW Kz Ak1XW+\Upq_1(b fkŗ( 8xA1u=ŏ ._b{p1nWkSW8]4qTT1&b; TmMx!S5,bh4# g%V8_M1: ƀXAO:pߊD }y~ xyJ&'KFiw2b TZ$ϙ]WW S _*2#Ir0&V`Ҡn1Q5ԹE. -n%J&&9|DXJw%Y5eXʄi4]M7_jxy x(yJ% `gZ)L,S(\˗ fTd39JD + SNf ra Xk-+lG""eWqAC=MBXE1/ Q PfTr<,* A+)~qf]bk mrebJl-GCTg81i kp bwű]A;Jz6((i ^+g *TU`f DG*Y 3=#*B &0|L- ۇU7m8,HH`嘙5J"jaidek;F .Tgy_Pm|avNb7 -sQeE2\ZMxIs/;`X &XI\QJ+ڋ9y1"63HopM~e02J1b+m%e^Y*8%v™d#Ms.1O60"A¢;z7oqUuu=ɰEext1/E0pؕ\L2u;3,1e{n1EGP[ႇRg"M֏O%t;z wD`Cg~ޒ^!Iu +@~ .klsK_i+ 'D#jWU-(X)fgmwy[VoW @/W/̬` e5D% ^.T~`ZWWNgRa`3]2iH ۶] c5G]yR=z%-fbx;>_wrW5wJ#Ṿ6vc1mq, ^߻=p dT?geGK{K/ =PGa]}>PJ#-,MT8t+b k[YRMj-a/xg6~jRvA{9BTc5+kblsOl!"섚vz-;Ԯ;m΢ӷƒ?- >oӳK rbzc{$d|A#/e2=J5D+/Pk$n$пEWo&V_SK Ӄę(}}jO1cco1X|k[ Y[A]}V/t\7u>w?H}~qENheO51 .Jc_1K<ůa:y=POz{ܞ[i5_?ܿy1rwH? 1^Ru>J#%/QI(MEXR#O?@ Ҩ V"Ob{7@)2#1N؎"Y)OHqߧ*nN0=v J*љ,})r0ߧAy1mK7m-[p`e L`=6D\սɀzdr/WWCԢ j*/b%ϧ] oHj4zc_Q}chU0=Wg( g=kx[ jo^lg.!1AQaq0 P@p`?zJ* NVF=WD() CFXU@Rq]PF@)J `t0!ZKlP[PFx '( sxpTj3]C'  Y VakBn˖D̲8[Ο[ qԆJQ4*;V,.L˪%ZG/Ҳ-*vUX:"Tae"'dZYA1 brcƪ) T.Ц "T1Y2&@ iɔ{dQj?hb^xQu%T!Gà@] \R, ʓE,:Ə$I Be@HR&|ۄ(jZS6]kI,ɄŊr.j\0!TjLH$XEps؅ /v vBhő5*Aecr{`Vc$CkI7Z!@_]#_@ Д(+uC).5%sVc1` ythzW4b\ @PU hazh&Dz99iRyB< B߃[_ZRP(V,*bVyU q1CUE>'@<$A-ǽT`l+\ǕcKʣ+l.JprvLöqC&l"6ŒƘoWH0rؒ64EАt R刮@Y1 X*ۭ ˠBXq{7X(LpV 4.0d(2 $j rX_T45v>,9 X&NI(\&%Sb Ӆ4f*i*JCIcP4HB(RfF-z&D_ z"w=@|[hs&~q:bb>DKԨ|`ݽh 8e_ Žogu4nҡ+TIv]XmHZ-ᰤ X(;W%z1yatp%x[F/!;GdK6L-EV.[e9A +>_ ˦74LGslQQ'C X!(c%j^گ*A@a2)Y^* Za_QmV Y+̀kC!ڭ Ak 4/UM68B d8D"drB% ʱ&Y:8V# -*'R%6 fmB6( mhx܆!HNPV]0_ 7%1Uoe0uoBU\ 4ZlR˒[*i.[VhX ٫+&D޼صE"0Zu˩Tq!e&/4U(vyf +yQdp5$!b[SV^J WX t4ahX0Qi .&a΀RǨJ*e%OCW BRS2Q]!WRSѽiZE3ѶFV*mK).1u;Zb_G "f/VVehElQ- k~KRUm 6^05AZ,L@(WGɂ8ꖬ!nqح&2tS`dWW7Yna=VwIIIIIIIIIIIIIIIIIIIIIIIHx֮6L9"UϚOGE6 "hL`S W'RSB6er0dn_gME}UWCT.XF9:U]U[Cz-Mn^jj a5ybYnC)ɯYOcXCbΡjuWpӣ T :`p:^7"[9T D ^SNrJE(!d0lz)b4ga+T4ƽc)FA2Cm'k]f# Q1_p1D8^b" -zdܧSj`*D.=xc& Guq0TVO3`!4]/54=jBOHq'C+MS*RsD("efat9p-m7z(-0&ː}-$ݺ Ѡ5yTBD"pjI2, `BCU}1ؾuEgoq*IvD}.j?j%3\=#+䄺֑_ưL#(+_T>ʗIKQm5u,3JRd_Xau+\rRIt.J_Xk@F]s j-"\ž5UKBꉸkDB6zHB|凚J0cOZw (9f6s+&+J! >SeMaeuepQ"VLu×]& oK{1ԺbZ.%'yt^Ce{."P7|B4R-̽ϴ!2&fiXٹYDrhbsVSw JVj wo08awlBrk  s/\kbeBw?K@7h>3향i< x Q -.SF@?!Z!33W" BhlX me0=!'{B@vJ) ÞR+ngSǠ~Dj  :QDh= YG#'cX8Y `LQTxtz?cH70L\]T.uf#ӒuX˩ZrAgmɤu٘,W5^Q{TZR%9ut> n/mb=Q 6cd^|p6[HDO(6bh3smٽS/ ADz;~eZb%[ODK<> w6Ց׌Σ/`9{qلo@Sk ;v2ia*y\ήK2orY\F{|-9q-Zf<.0R_u3Hyu_#jڙlzUuH[FόYq %]@9cpz޾ J}X-; T/m3?k0x6\KNͶˀkR^YuzެD(踚/@1>[d){b+m%yU[C}vY9P4KA7moMU5d~%RZ%K5S&:б˴hM`ZS[gs <T~ive۾>R{AEZq݇c piWyDݕ^S;tX ?w++uWc t"X4=|3 ]-b4s,PP.8.^# l66.pa @$@?ji z;FAQS6!C*͇c2"+> **(=BNu;+qrrpE$^6U~B(]H L<% F-Nun^#v%뉛̓/?nae؂Ζ;fh6at=L>6|4qJHHnG.=`h1V~h(Wj\8-hiMWUo ɠ;gSa@4 Y !j:}&c6owmpOke ,pZN)K#U_Maٯg5"I]ERVDvsHEGt M``ًU8\GCcYO1n3=ܩu"פ=Tpˬ>_, << g1 fwH);(3vЂN7ڽ?B[s nƫhQ6&DUv-na¢~_WO hI,!G]cY5xjm=ȼhq-G4B2ɘyH[j{JH[r rZu ʁ 1\K|7|/]^y=R yJu1խ'?-3+u.X6uQp5ZWY6TYAl\}ẮN8.r7߿243w.5Yk:YjS ֐򏑺Cd[u%(] `Ou!,}<.Qlևg[ !z' M[eVQbհơTPNXbǝ%:oSH7 &c,%<~01W>d2u2< bac.{OUxXw&^I}?UL 0:K&|4KAJk#P6C!+F QR!8ZSR2&Ă_=8a>^9&WpfyL':f y[iwT[V_s-12<6]9Ny,eG$^ #t)%0פb0:GWC\]gSJx?zabjAxKmIlc iփiKW Ռٍؤҭ,Sj}`oӫ> /LEO>'(s'T6K|f?;HW+f%$K0oK9*)w iEr66o'\ΤHPmT@Ιm3>{GT-I泦YܛgSؒ1 aMnuX`m\DfůV ,n<]KѤh3Tuo'Ư7 ٙLZ]5fk <-T֐&нjZĦ3{ĹN<]v.u! E9kJ\@ gxDq;(\B)2ĠRQPw_;=eEY=p䔝=hEcECr j4|ku< k9kH{A*M'kN5|o-ʥWpyn7"D/RC_z"),N􊭩֫SO[ZY% 8\0*~b"^K34r(!%wSe 4Vu9DKtAJ% OIxTPc7VX7?Dž' (+!VuF)Lڲz?mF!J0Fd \. }a9`2׬w} CzC)?ܞ) H ǒ2/XHT+xaHmM.Gp2›sTUGc+ysrFd0%=e9!䗅XSDkIwUqZec5$kNלVEQQagtÏ v@(ZưWCІDQ  =#{/ )iOF: B `d5T$;-h )հY~,r;ʭ9&Ux ۨm5a\+]""b(huFl. T)•g>$Jr>QYuh*y ecL',GS&ȠR. 8yyIX "6 ޽`^&R0.hA)67^l+GɅ߄BH(g8<Q*FzT9C<ܭgw/i! 6B >``ΐly5`Etm% F` j*PP$^W4U>(uֵ̲+49UT\:gHm\~dy Afƫp[`h,6Сt]`oH- @5^yŝTkhnl#&'YY) ºbݵn)K!f X0 4e)`fHݪB F󋌗1X*NqT96NiAC4*e`4OqMhHV,kuJ栫ʐ wgH{vR=cIC y*W -}cNy핧.I.0)7FH}M{ןakܡpY9׬Tq/2`|]\.Vs_Me̡ ~%^XQ^{/$+Z/HQGXdr}>cMaTC0n^o0\OTjT!H+4!,H$|֔WxK FFJH5|}4P[:Z;w5J[6k3j*@C.ĿRå:%zz^)qad3F̌R,Ǖws5BαJB wf#Gvh5r>pU] Zm:%Z@gh-s D7~eFN&|z 8@s1%؎t\>rTQn48oy $^a.vKB giMjAFsȾ ݓInJhΟ2s^Y Rr]iMw7:x֕(e6i45kk_xd8(%((pнG#-@O&"5R .CxKv'cnY]0`LAE/bBNk p]]!4\4hiv E/0"zfv-x8IċCcqrUxeOL̩3 z#W+ICo瘔]!7a 0q^v `V|W &mKdńOezBF(Cs؋B]uBzi!c4:Ŷ9- ̽.J1thEl~4 d47aI]J +?"X7T7=b4uMk4$&qigb v @Uf)RfXpPV2UgFU12t w!Qa؎9-:zTr"4jzGFH{B:LW{;̔f@y9%a)֝!Po: ư洆QÍ (=jSnm*b[]NZ^J ]@iJ4\r>k?#j.ZqV͟JxV)(X~cdRP<7B[kitE5j˝E}bPʡH Ѷr/{ૹB,Fop%SĠpK#$ף #.3rɓ4 0Ҍpͭ! Jq5 N6(Flj+`s(VgꎖbS2wRPn d4߶}ZkeQΟ0Ec}q `rb =[5Қ{:\X+"p&vv.6{˷Um\inv%)U.ؚJ'@ (NZ@帔 w*EJؕ`/K2{Dh6?RYXX\icGbA ::\{x;ƃ Hy&pEy`O8KޒXXV(s^=YRZX];Bqdx6o=#ƮݍztUE~.0{#b/WK ;VR =.>!}5X-Y kb͜n`vu>mpanaJ3KJj3B'uzꃫWyn-Pk6傪-q  m)1t%Q_r&Gsqĥ42XnYʗ esv !( !]UJu_}ll+3kn!5Y:5E P!} 6fR?0O(-醱yU D'Wh MZ@]Oe9r=9Th]uZ$ % &3_{$jtRXR 2.N")JǭZ-.*ʭS{ꃞOH9W̲;^rk&upc8ekOrC oV+6*{$`mh–1a(sɏxzqT+Rv kYcu&m+lS(V-\* PF_V(E*%Sv&Qم^S<Q{WfTwUgs,]>qB4*,Gg5O(@)kq2Eo %&ܱӤĥ`Fv= k/mA:(h 7[>=\G ST5&!brrR2y̴p6ֲyJF,:2o]*jyi/gJ/^l Eoy )fsY 2cD5+,Kj]"KhJCN5pAH[Wh5A:mvJÂs)Xu:5{ǧ&n_yHee. LVў8+ZcÁ%\IJ-<*4=I@hʊ$}K)oNm8'%LqJ״u-4d)),guڹֵ./Wo1Mg< *;C0nY[nf0+3=0kLӂ?2~U0O#d-9v҈66cZ.btqXjYjJ&u3]bƲ\k?QcWRbQf'Ωd'7PXޱЮ oqOGTSm^!2 ]GtJD1k,3sKD+Nw\KcjŪnzh@8DZZ]yBtjE;8,`uƂ:&t J+ <"VۯFRdVKgܖK, %kѰt@k0"@v.\12Ɛ#wGZ*H0/hh8j;֜7~ {72$>A%UZ(q,Ԅ<\ n s4 9Wxz xqbq.cifxSǫ "P6l?/o9Dgb2skGW5x V9iqܳ J`  +ao%XzKϵ&Z ]Ff/r^6bX|;Ԁu;!Fö0S8Pص)͚ϋq.{:əyQj, ܻAz oWbb< ն #KkW z>paJ5%w.f].?T#%`!aWX(hK b +\|=>+E+ɆzT:lɕ-ѳwK :ZdF..BV%ZRxdq 4G6!-Sf=V^pUvCRn+%b\2-s,pc*J@Uc ;XdLi]tk(K ٝe*Zݯ"9}BގXV[8D}1.п8@R(k@'Z^UU|p*3r3uSxDġ+Y_Vq܌MZ%ivGaVB}n?mʍ@hp>h>TLu/iۮQ p0 /mZZ4>҈7V OmګK2@+f؎EjwZޞP*v{/ h8h(g%ex)-Z,%K`Y *֠ubM,.UBcg+[֒0f ؙTJ1eG[? ⋁"с;"Ņ7aV뺶>pe."{Fբ5E% kI _G\Y`s5K-0I[mA0–EtوDJl*@YW`++ =?tvIgL1S :&ҢUNUƋyk::~04eX(i`;DP%d$0Xe,'&]秼-z`eY*fDZu8# 42qRƷ ߸5myƟ-VwF:,"٫d{EUF;@\UUgHt})zŅq . p_OG)RFۚt4Rc"ʶ} cm(Xz dT7 MaF_Rl'iCq⑺nt(pҔ*Ed"*kXkmqSQ PPՒaUNa ;u-V6iJa,LahKy t,IЍ_t(=)UJn#GvQ $ija_+AIZ}'2=??3??3?}(iDmg_[hpKqs&*vijyJWcQ {,hx)7XT8萠+ 1H$Q^-22$xu5 %@̼s]N, lJ,.s+ ֭k^yu *LB.aÄVSA/us=brl,ъ]%klpa2DSi j(0]U˷earZu[Վ1i*\[MN0`hR_Mk c@ x5uum^3Zzj%MM}]vYL2uu_mZaFw,Xbŋ NBw|>[-ϖs忹o|>[-ϖs忹o|>[-ϖs忹o|>[-ϖs忹o|>[-ϖs忹o|>[-ϖs忹o|>[-ϖs忹o|>[-ϖI5u˃ё)k٩/;}sX\> ĎNG3,^D#>GEM7#KVUh ,MT$EBM74DYېՑ^BX]% p3X٬ No@TC%8F^`.*i+9UY࣎lJr*Q~ʮk"b-ZoEkN}F|WDc"d)-G -vhVN75QTRі .QSngԪL7܂ytYj-[e1A~ 5zan2bM)Ma0$rN}!G\hZZfdCGCe?0_B([w*>1 pZҖ\$ItWZgtDr% Y xЩ+TAWe@-`iEjJ5 ea%'a,<5Q-QIF1J"T0"Ÿb P ]Etj xs 0ϕc J ֎@0wz2Yk"u^6BUIaEWy}9$ m_:CvSHSm]:z9b-49M$̴r^,[0!Y.UR RX @.ʧn5XԕUUѤfY0DXm) }@wz4]$֯!Р9X#pbb*ydYP( !VTW@ћ]S`^: +1OkpW0bKelv!D+ Pghh`:X'݊$(yՆKaBҌ[3#CBeQ6 lJ6 (aɼ$H-EJ(t;jƕ[\4[(lMP)f Yhph_FE*^^J|7W%, U R fQڰԇvXN htZd¶6꾉)9`C)]mQyPo}Cf"6Nɰ*д(B(ȴފ s29 ˲ݬBXKlb,7% kI,DQ2p FܑUk`BJ͓8K[WZ%iҙCP_@]-V*ZUXÀ`AH;?D*9ps^61ll i4RXR2p*eCTQN*[:j $a`Um~i!:ܪfB`%!uNt4PA +XD{nh%B$j*2BcE! +:WhWDȄ!VmT]vuk@>̚˝yB(-DmԀHHjtXPmb~ mF UW(׬49Fp Ƣ!7it)Ta: P_ }p2g BqC1GroAu>D0^^Yiu옥´*lSDBj:J\Ȑ_݈Map"Upb5q:JȅFS( >(*`c%fHܨwQ Q}t fKѰ}FȂ`hG [jlm,Ydamw8Tbj܉|='?TG, ~p |j[]ߨyV%) ^1vN&l#~-wAd6N xx* fcoV R `tw©9c#kGSv0)T'h,qA pܺ"y5-Kʱ1¨b"u*f1®e4HXɣ .h\0ܻr«EۘҚ0}SQڨs·9E y5ڮS]a!ItD+.p2v#Fq2$# c z"_)Dh@ ZU`aJtڿ`,۝k b4kTn}4KźfRu5^ƺP@i.ج hL΀U;=`C< F-3 xytH'LYR5GX#CwMxwh ôo6ux21> ܫQ&^lnOTȞHO!>B| 'O!>B| 'O!>B| 'O!>B| 'O!>B| 'O!>B| 'O!>B| 'O!>B|Ѩ'O>| 'O>| 'O>| 'O>| 'O>| 'O>| 'O>| 'O_5 to Ļ &a To5KC7r!i 4GliƆDbТHYQH z# {H:s/D< J8Db#K0؊ Di1Jdž2y-+XolwqA"Cb5Y՛cDcvViO]UUmIA7 (+B%舘OӇTg!0XvȬ߶j)^wY;0ZUيY^Yx&Qq4/i By ^6N;CAt.b')1)kJg}Rq<6}Y=4LKvt pJy/ pI(%gLPa؈ӠZށkЁ@qiA:ه> _< WMx,Ad$iKuc?WޞW_/5XS #"d7Ydv] ERlC @!eSJHU ]$PgDfJ`meDԔT)%+F*Ž+2]@&=Y} i7 }a[@Um`gXIVҧ}AXq VUs*(O0hii"j@3 G9G-+RA: xMůfPɝ_R lZ)Y5ʻ֝?@u XCU| e5]~n5F%1vH)-!EA3L2 +BȂ4CX,DX51 'ee@vŤ[xDͼ#Jâ%F{"V f[M 7]gU&3 $$hc+:nfE{hV!8v=:-VF+7AlAՉ;i' 4ABPzY 91bԿ$K^XJTbB$ ݜY44oHY Z@S:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:ӫ:lnvnNK\=7qWio H-`Z E@XP&4uQ&:u y"tHM@C=g38 ^ɐi6VeK5qӳSr=2_DCQʇ:@L뢒Vk/56îȴ|;^cY/iu/-WWM6Vc F/z "gHeWceiiŊ4R5=Q73g 4x`ex H(Ղ:6Q?WKflϠGo1ѱBl9ܠF/7"dZX]=݈v6#?;pW}'c02t'wȯ/jm+ѿX ѕ&ohԴ*0a%' e]~C_9Mt8\P+bZԇ;SK"&%c\_9Zy"淔fOY3u@tiôt]`Q¥{O%u0G df; ,V`)usV}!A@~rҠuZoonyªjUD1 &00|сVlÀWD"p.Po{*[?=Aŀk4*W}z '|C#qkߌ@|Q*|c5u2fk6W)oĀ??=Ϳ_{gM{k\[؀a{#Ņ廾g'd/(c;RqvPyv὏mc3P7@Fߛ9G!Y@׮VrbtO.[f5u!#U6T/'H<9Pvk-Ttomvo]v=q߮;x \}n׶ȏ< n5=gj/}tsEݽUS}׍-5?=Ƒ?ӳznj7*kn9=ұ|j>jHq9W_Ӿ~yկ*8tetRiu7gi>9߫qn-7ݿ/ۈ:ho^ɭKWϯpXW0`%B?v}nq+*v#l<1)=R05f܁:]T-Fk.v8;EOGNq7mOgSz!ҋ1|ci'a'Dsŝu6ZqVlUH. vv4yy'_quiD^o|hfD<+gDEڪYStÓu/|wQ-NKOK޶cQq\gYoAפ]u'Zij㵇hzd骳9ѣݿM$UL֬'C9ddlfeYuntuG%Vc?#kϢ1z=wPɢuCexWwheSbIWQpqeM_ͯ ;]mѪ=Lvfo{iXN(V?Y9D[’=3\Jח}/祽UXYa1tFwk]B[QW\Q20k#={p\5y#uMT:mZlM;Ӯ>k)9]^if~NLM4{OmQeE7̤[d d-1rs‘M7 UMs uo_8qݦj.<ғ#2g#o8?|Vx },E;l~cK%7ΫoOdr -0]=lVZ ?U{&~d -qmu!^TJG̢K%Փ+RU܆VH1N|o :?Ugg g^[cZIk_C;)ejۖ՗+:wnt~=%߬dA[7LCw-z֫~vh.>aj4G\[!_#O|vGXG,:(oOZ]ԁ+'dr5L:U6?s8uRuN?#\cNy3 d.Ai!/PnBGX<W_g';yoޯgW[KOZpub>3ו{f6M:C/w_ooe!϶Gmk{,-;>c%ni[(l^Tf}K8Ǘ5LL83'벛4D+gu#ʨ(^Wn3-[=:wLy:&Jy/8q#tKtO!ϓՂbJ̯P.MTuRfiFƑr-r4DH9LHYgD`3 jY7V`?LCs_M/6~e\d lFCq)(3wJ"J٩& ;1fÀ rVxȹmNymIigxUz%:T s6øvOO~; 3!D!gd"P9t0脒NWpƟgx> IH qkL<CŘOaMr%\镑1:RWF|jk1FʙjPf))"%` Ճ& a󈚃sd&'hhSĜSWK6u$FhzZjrizl@*r+S XlSv ϐg q.C@dk>OU>GI}q p,v@it0#Jbd dH?*?OCB*"<2$` x7 L1d .BbS6Z+YI 'ET4;L"Tx#UdЁv@, #x ag8,C0wQ!r_&B mQ=1Hӣ#Ga.cQKCa  ,#UĺS" -v :$!b@5-uN#\͓>"?MT7s\ͤ9!?0XpAJ1Z\ebYJ5.kgr$I1;FB L&<:Ǫ@ HTŜlEBnb"*R\UrXLΘCz&H)Bu^8AkVB[Ŗjٰ6A4S LQVuM{6d ,>Ċ- XFR:P2IY$p:6~sYt_4G%n3M}\m)HaHb_X84ޮT63erFZiLG'LJJ14.hn{N.Ir&oPc#Rݟgv~k]gv~k]gv~k]gv~k]gv~k]gv~k]gv~k]gv~k]gv~k]gv~k]gv~k]gv~k]gv~k]gv~k]gv~k]gv~k]gv~k\X5ōqc\X5ōqc\X5ōqc\X5ōqc\X5ōqc\X5ōqc\X5ōqc\X5ōqc\X5ōqc\X5ōqc\X5ōqc\X5ōqc\X5ōqc\X5ōqc\X5ōqc\X5ōqc\X5ōqc 41Wi.Q1Z?nڸ^fL vz]٣ )_n:Ҳ~)eg: 7#$ h03*PX={?!44,{G_Rf&ڀHН?(Z<}:`qNг=d75 n)י/զ~F;A}/G|)Oe)x"^k׍<8~X ZMf/"JaN,<kvqֽ,<[#"]iTW&pRFr-k{6>,m2SdqLB<dH>_t^VnK6{=A|o)o‡1q."'(4620p$ SpIۼITx61O*g{Zsᙏz0334a F7w ep|>w jnevo[496kQx^xzeospxC- [4IJr+b8r͟y'즽r_٤4En<I޻`o]CHfu.hޛ^ՖI|FydYk$d0DҢm}_%Pͷ"89X +=Bpi@bskJe[p;':mv =3yd+bqŘ SPpSP+G| u-ot,Ib8ATZl%4ITdcC`sSx,D<-wRb8 / ybZ{3W.K_lBm.zb!ǃbew 4l4eOiܼy9Gmޡhܲ@TS_bakVidN2LHRƢmRbze6͛ѦKhYu_坓ڤ(W_`PXYm~bGqsic9vMr**0>SlצMp/z _'^_;?ZkéFM\T&%Fl˳,}CN4U[ݐRlVt6EWA.% .um(ץڕǝ76OƚlH9D?>ⱅE,8Ѻ,F{Ytk9YENQc_]ۗbD|YX^v̓|;WC,bu?C{:ÂLi8P{^LJhMl󺉼5,Ҿ 6cwPIM=t)]'vz 6rgb^xqٖQ٩[+ȇ98;2~jei6WOVA_gڣ&M<OO%+!Z ԠL,V7`1:äǥѩPVY%*Fa,$l&OZhFpRą5P6Ӂ2.@6S4B&auצ%1XʅL^9NɅC G̃"[YP@M⎥")כtO$Pd&m$NcQ=î$d# l?:gnN fx⑝b(彵HGn vd"Na\uT.!v =l 1ibL=97#OxE:E2FLDu&"SDbd#h er?l0 ᦻgqr/CeP4@I6lj0 "[1Ƚ !E"@Ia! unHX< *NQX`27%kED)k@A"pOz1t@Y ~׋@'2Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]Rm]RmBp,MA@a;\e*~hC h|8l7.ag}Q LG4R^$KX ɠ bj r=dx _6sGvShy[Zy. YXKfj T 0՗lQ$4AZ{9zFzwhg ߣݪch:@ԃ.BF^f)͉8*I/5mKeقTtlsA$MatMԜ0A:q6y+#lZ*#$戞l=-K TK&Wli&ab`$>Z=XȬS|M뵤? (-o W,jAًY),ŧY S3x DIB8fi0psȩ۷$kG:g1矞e3pƧgj[>yS\)};w 5( s,eϔ`}%AŏKblѭfLEYH3r,b2}ʆ2ɀ$4Lӳ!c j'"$j978,H642jp(0cy4F4b1'.c ͘ O2!@0_7 QKvݨIc# ұB`a4Y;I ~zS"I!u>;Jqlm 'M;ǸK{rݚ H0(퍛:lV|90*ChDy[J%2`R,$fm ˦3"ld1oR64Hѭ~Gu&B!fJlv]AElr%gkkۗ34l?Ft/)EQhyQA2"PJ; |vC1larJvD-ŗnWnTf5t N.ɥ['}n =(rh*N! 4M!?壦c{a?1ۈL._r`ؔgg2fc{a fAvBZen~1xcu__*&L6Ҧ2-D S|=="$jaI%3n1xhp6o ܰd$.%1q٪(..mD͕FP!y:2׷bfiԐi㥞lk86b̂FWV߷m{^tv8lw_Z!0 _4A.c Mېr~NRiZ6>M<k^ǩF Y[/kekcD !1AQ"2Paq# 035@BRpr$4?5fce`1H*&}mMҶ(V' rh /٭ל|>U`"Sم$rTH :Y966 JY$ĸ_dºX!l؛klQ,kW1кkPik,kb$.%hi7q YY #mU{=KQx߇؟i9|5<aT[nkX|m&RD r ?K0`>kj妾Nv:'>aymM<:ai{r涖 E]V1E)>k8W2SWNA #[?uK) A-:iHONŕ!Cc7a7˷; A" ] n`׻N1)y9ْ30 <:kXekUվڬu+OuTMʶhMd#[~)k̬?!B-[7o}ΌJOU h[6wR}l߭CHnTdm1]6UΚHYŘ[p[&٢㍞+A1a,\,_6߸˖!3rlLyit(({f\fqMS$ۯfԲ&_~8e.P ĤMKP(Kk**0OFD$\Wkjdކ@P +n> q*?/:s;ŕ.K qi HOtZ93MwyRU$z%{{,jƂ Ķz] h5I#2QMK$v24(84sU8d{COt`V;W!gQDC ƥUɆA`Fcx-e3dJೃ@Oر j'IYC5{ZȝTx ԎXOI)U.=pmWIM)QM3d+/m~EIAM0/U8՚ZAcH|V~#5 l+;C3878#fl§趒7IKF6͞It_/V& Շ涖භf6a4 iJ Y=0q,B>Bw~{11z~lj#E+C}FAbܵmcddE]V'W/7t&WtUX|uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu}Y_B7*;A;,r*SYE |CMâxD{ƣɳuM?}QpXCo2a'R4X{Ùe8Vx@PiEu'}:TexPwqM+r~-v*yB)oX) Rq> V_E__D׮5m=nwR-#b}1x6@ UP\xJ&TxSzcUkoEY@[sjӦG%Kto?DOxSKjcGOn%ZGв6)_phUW^8> :NKCB6RmN:S?K#oolWXh2⢧*JGָWtq˹y3Ķп()e|7B2?$iJ(E+Ҽem\εXNSTy^r1x_ũXYq!mjk+&=I3WMy :L [b;z<GoB;+S$ {mj ,6 D5Q(UM<$bĤf29vy\"iU-#$Jy_xV+uNBưY݈Cbj-ؚ-sm( MiE3fjZMʯٺƜ؅[Mä"C i; R1P`2f@r>!12"APQa#3@Bq 0pѡRS?kK"ԒYmt\biwqqĘ#atdp 7DmLr(3MY60B!k ,,!5zIAp \-p \-p \-p \-p \-p \-p \-p \-p \-p \-p \-p \-p \-p \-p \-p \-p \؍9j}ёuun桩wK+JuS;1mԓɨ*9]Ī1X7d\{mZU4~#~^ɝ{*.b?n(zȮ)(*pýzXꡚUeUTuT_ȡ$npSDxPUQ&XwV76p_rH6 #SO2pp$T 1vErMꇡS֚-E lw 鿂X#om>f*z&܆gwPJsG9Uuy?p]OLr&jhQtR*Jw:v,Z-6y)17$yku ^hÄ[df;1SBd @TNkpRc >jBz#*0V v1…(c %bB12dݺu3UD7/<.&<*XJ395GQHFZ3u،%IU!gu6i- y*j,SFxTOuT$%UB7XBswr7*0mˆPeUvW6ܶ_l=, jfNX=,^Jrn]7W.&>BEh/Ǩ 첰pV[8 섞ʢ[ D(m{ɤ;rߊiXTDe0=G 7i-oum;HߝnX\ H?¿ƪM[7- VYlMW -Ccv* 6YF-+,9inX;m1VʕYdSMgήB0],'1rJzmTl?Q96Gy(ᑇ~ ; RU0>m;H)oyYw fk]a]&`17ealϨ~' 18h~+9rSuEjmcb \YH"QA찲_Wc~(؏0?ak_:ZBJ>Z< FKpI3FuBdR7$߀rژ3wlp9mrP:S3Vՙߘ8R'ف vMAѩ:UpTShǚTL U > /ٷ܅M"*LD/ٞ˝k(fsu$*g?t\ ~f]qj?{!Pt1zO']( 7)Cstʩ) S煤) *Bʊ"ڸj,0zizq)@:-<#h,2MtOG%b8!9RǔQuN_d7ݷk5KI? 52P@Zp.L$*f8\ ѩs*&lU7ݷ&0 T&>X_\tCM/ܴTݐmf4~6TF؁Uхa'7¨(aUUWcjGl'œd~*Ir0ذAo].Yr'aGm63(VN ElSX#po{%Kokv*ј*qf.6TxEMA&*;CkEepnþIVb>/&]I.]ֳ]Np9 Xs QM3%!p; ISj6SвM]lU~Goo𡭒? nũ~UOaMRQ1WQ {{C#Q~I Ԁ;FE ']I{qJ9=OjȼWK:)ڃ; C v;CO((?j  !1"AQ2aq#3456BRPbr$Cst 0@Spu7`c&Dv%ETdU?:5('R͒)=؏!&+x,=-J6Q d溵Z$ڱ&*"{~,W+}7}֐tag|<&Hr%M- n ėAe)TCnCv R]=Ej:55L6@eA*&^\r}rmUн(i]k( D9%-A 6jcY1uw/ɫ mBBҠOe#= EZdkD\vlT*َ<M+RJ- b%P\yZ/ª4J;HaHV v1*(d ,_12:iH_ 8lwl< ci~/-;y*5:S&d:\)lWX> p!L:aE) xTtOqD4=#7 z 6e8i:Ryd$͉MOvs` ]B-#)Ϯ.d)a9%-=\fj˵(*%4Mö<ㅭw+U':;pKOci^xpr{#fغ``HrI o݊Z!IZ4 ? NEe[ T(dlN{eNrd2-  N2-[ۑ8!T4n-ww,gF~ت1jR1 ) J&$#+T*CLfO9{c3fܔtP$WoϿbU&D[%zl`5k͊! bisni<TeMmMۈ+=MVCqa]P9uG5[ gN?-sV F-q#ONkTVŮu@!Ru{}$c0`L;V}-tء4dPǀKۏ5a%0*!lWB)ȥ#*$m= E7Thy~#!IAZ]Жʳ WCC80c&IVS0&*9tTq;GG8(M+{G~o嬭.SH=%[ \N+T2zz1]w(NMnTd"oɏN.ܨ)ݙ[Iՠ{llCg/mNƖKJJJMշKWmj->ԄHQe7UJ<:6J*@)5 _'9#~x3W[IZep[؎ft:Z \2ڔZ@"#hտ}}E]R|u hXҰ[X8K8.JI$NImz=1eH'k)W0uǞQr~7f˙YW )w &2Tԫa54(tvft*7?ci)gtmc.S$"vm-+$]GQߨ9[ ꪡ:8ԏ&bFMV3E%-e{a22.6,OujT`Ivc%N'oUGT/. e;YZ62KES1KOf#d-c V<9@#>,vP96+$ejP)4V-09:Io`3Ϸ4MHL.:v|m%I}]#‡\@{B9%̍o3FN,&. rbwi/\\շo1熪sSVQ#MN~<ѓ\@5)z(\ԫI*W3sY ->U aib mUTڇpr߅jsCWZno<n}=ԹU Ы~4VV-)!'aBmҿA UL4Gu;]V;3碃K*O#ZG܌Y!=!:$nͨ /ڸ zR^Y;1I_0?)Vr/LBD-m^m2Pmk/B?%5?!Z"#U"wlbU;Xe NtRZmou13|D $;I \P:;!{G+6_n<9QMunHp'wj%&g-\](x==_&*yo!nBbx:6:9j'je tʓlqBOթm`ym#PtXV!7v_l9i><_\{kqE_EC6Y#Iblpx ]>m+%Ő=Fm # $&*s,UgجCgDpM*If˭ںk5}?͇ZvcNgX\ GY'$5lΓ:ؚ;clg|G ACNYlVjo-!ZU܅7N:|`1OlʜUA5sՀ>3"I=RXL Yh5S})=k ǧf%8zQI\0Ug"d\֟!W#lݵ$(y?EXJ ~i}B);qtn cS|n1>9ҍE-& QI#HIc'! MuaeTWĜE eN_#V魫wM݌6)Gz^0X)"Z#|cۃP >" 8I1tIiԗ\I >/Ԇ}T'x bң)'ǥPVr>]5I|1`)ߒտKM`bM$um[@{I-l8=C!Q! %6ɊGYEIv[ Km9oVd'Rsji'}AUUo6 Jf€^CFP6q'z=pᩥw ĩ e Ld+;\~G*mbG,7!یSN'_bZ/1~+ G.b,͔8eKb?Zb(tlp ^c ΎxO6qQzYBDvҕH^ tZ7߶F)fLn<KtHp۔\4~ t6:6FHMӥ+e[AsʼdG^)XN_fCk T-CҐ-Wّ|*mC=QqG4s\Fmvx4Q#aQym8uS؀Bv*=[I CaH:ES,1۪vケSjDweGq8}[ ҞGɰ6 !&݈Oi|Q܏N)a%Rk+J! }P֋;j'Pn@ө^E5~C F W Ha+Jc $8w BNdA!:TfY~ZvU|N5ei^ĎV`8wZHqqunH\۳φJI-U.L.Rm .1ŎB?>A+r~l%ΐ%_kaIJö:N JGK]儭S%}x.k+%\">=^+;ͅcVwZԟˊ5Ι$|Q߉ZAJ{kI [ńsPjh&ݖGz\'#JPlG>CMqF>{p9lI3$!r֞[™+* !Yf>:7H؞vlI;n;7ró(+ţU#6Q}7V(}g RI8W2H yX28Ɣہ?У}܀1L5_(K){b BsŊ\a1Jp8E\i>kac 0g$irW20Ys{?´y=  \^6Nֶ: ˊsE\Ɣޅ7ԚQhZ 4 >Nw z{mGb7"I)4Wc%jvG5rŏ\N*;4bo5'Tߚt_ 䞩Yҿ>4]I<~{va(g Q`;ypBA>K^jS HVZM9[)Un[Տ 6XG *am ~υ,yq~o-= qFl}wԺhⷸY?c2AQjB\il݇%JR\q\o’HRa IIOp, C^:kyNl<8W~ 8Z}WKR6 Z C^Z{mlpAQU1Qcvޣs _]6S60&nQ*믟g`6w]#i-q5.@k>GbKWԬ'a=s% )ے*¢Ii\{M= HZ[W7 -T^Mk;vpAAJk\_' ׺|il]wJ@7Q> 67Wiy/$gT*`H*+ iqiw3QlS6 TR9LgLluV*< @lum}clZGvxIJ$06r- A#8>k rM,u ϫ)}Shk8(RnMZPM3kMdJU\pBMu$K菺0\nؘоzM*|zl='qG+]_ǥZo~9ӌWcm(qʜ[%_=fylRD0^'ߎji)9soas%+t@ߖ#")kGzmbK`lz?bK#;2SL6[5rkx-p†b_>pS}BͯTmSpz\Ȍڛs䋜`Ki?bzr{ҍJ|tQe;d5a-AfY6#B/J_;݋ҭe)_|T#)2Xx,IB  hH*wR|~ -O˴~N~ rt_ R֠_p݃.)!$q;e~wwpczU u!\u-! BRC>CtDSXL#i5 =k{8B%L#'u|cn}KWaIA tqHk$歆e)U]H-e j4x̅HAGlPJ7c&L8*HsԤS Wv4S+&G`:1]sz pHm=-~-xҮ5P2lPQxk|qIV pql7"?Ԧ6V,w0BvpC#~[G BxҒo7u%"Ð إ|RM?> $.d~:c46+%ψaJ+R$" \.!$ZK3XppPXT?.8vgb DdisIō6}j(n"q E.Q)f]'0 F:_4.ާڐ?njmUGsrN H<7RtAW_`np{o{?|qJ(Ǥ|Q?3/֟D Rw+ﺣ2r_|Ypju"zœF4k}08Vy eӫ fRZO_vGtFuWhlKcɐFoՍ N`aIW<hnlp}7kqC2)<~"&|8W@Q&Cq cSlR1өNq.al@aM)u)8! w7{pEAV6%2zƺ:TZHjH:Cqآ, uQ(0e$[OLlLt**pu"@]߽@glR`?1锴J:);7Vo%K*o6m<5^[!)%B\ knV@q#I;2`Vnw*Q L^7d)۩[*M_07unө:RݶZ3\gm-2*MOZߏ*b%B:Cv*{b-*&heRw2)!1z4_ KSB |)tJS*obiRAG1Zv[MQm!o6w_ҠIbli֕.$ b mdPP,DZ"$Ø8i7^\9U_ZKk-*JTI ][6l?LVEIqUwGu)$yF= WC l i %Z+YtөUү㕻1ff5MmN8ChJ+e3[NVmHX O#cnÌq=]S~JKpiV].܈dZT~:UX^xViܬ\eP$+m[i;Zu/BzǍ5fz8-R)|8`'QSB;vb?[.St?- !EmVj,̂iu[U bb ACnJ`I(JA"kCpTCqjpy÷n#QY'q.yn$%2>UBC^z׾ʉ }GЭ*ӫUr7.iy&Yg 2I k.:Ž%+1e.jm;-ɱ gLJ_M` ~xeaBG+9p?2AibP۬wt!6IA;L+V֩Z8a#Z,S`N&I7%F "0Ko ^mU@TFrݦz~Ȕ!sk\VPZlf]'N{Nܭq|VK2_-t5M48NTؕc/E-MGJsdi&C#R z-1r'Um/cGc.R)cJ59!D_acr+EX R輝ֵjcsdi$9RFP#'p䗘þ{Z۞ i!,4uw<[sh# ONpnVQG 7ǁC9V@uy;j/˗LJ_M` ~xcS V/ pqSѹ0FkRDT\Qe v8B+"BKcGT6)p%vĻ!]J3xf-VOU8j"#1Sm , lxlO9:5hwRc$j*<'{d,FKiYĤ*I7=]Ab6gq띑n4OÊStg[vRP۲HyY)@K VT I|*I].[QR`ܑ1Cr"8)S~cCUu. ,;6`LCz1Sk]۸mT>Sj ԣh^4wtH.ތ7|̇+$%-H2{hҵ+lMe~%f&f\XoRj.E3 =/LsdN-G8TL8$RLk{Vz)Ԫ—>|Ȓ9rL$H!ȺTסw[G\*,C>RxC{⏙~~dOqԍVsMcCUu. ,;6z_> Rg.#7VSvsS.^M]\,YjujJ=v9QLh*<_d_skSW/VX;m݊.u0@e#7W8\C1P:%+Q^vbJNjZRi<~=ᬵFC襠@qzQQΣvZRԭUΣShyI"b2=:8p-OqOVI\˓iѤc(u8v+i>5FEl-{UiՈz,|GW0sČHnz,[ː5ֲՆ)QǵOocڍ'FXIm{Q6=~i?uj4ߺǵOocڍ'FXIm{Q6=~i?uj4ߺǵOocڍ'FXIm{Q6=~i?uj4ߺǵOocڍ'FXIm{Q6=~i?uj4ߺǵOocڍ'FXIm{Q6=~i?uj4ߺǵOocڍ'FXIm{Q6=~i?uj4ߺǵOocڍ'FXIm{Q6=~i?uj4ߺǵOocڍ'FXIm:jԷ%\mCϥ6zY8Z$_JG '4e*~@i⮄P +FmE3K4,Kҩ 0LJhε};|( ֳ5IuZe!)XY Ο"'))jCP_5Z@,ȯi6:c߾@k-D𣒣jCs1ɾ]֨KjLT5Vy;BSdAC xKt)=*F6@Peګ>"{3ШtSm>I q$n^?7xX#δ)@lllGaU$g!m97T=|tۢǃtfe0wұ|-,D ⼪)uy/Ahǡx@Y6C1{aMSa1*pIlyCͺBjP7OÀ(1] WH!@CPSp)@ӧSt vNӱPx]K䗔`V0cN̦V/m9#En'@@uW:8lERҔ+@Nj+" xVl|2`"Ǒy&C, #H hݵizM%ᶢ7x X #%kM)ic%Iߖ=B{qN[drwО{#'=G'} Dz9;O}n=B{qN[drwО{#'=G'} Dz9;O}n=B{qN[drwО{#'=G'} Dz9;O}n=B{qN[drwО{#'=G'} Dz9;O}n=B{qN[drwО{#'=G'} Dz9;O}n=B{qN[drwО{#'=G'} Dz9;O}n=B{qN[drwО{#'=G'} Dz9;O}n=B{qN[drwО{#'6)o-.+Tjζ[)O5X^bt/j~#?ϦيU 15Ќa:F/3Qwq#x5)}RtꑛS!A)@1YEk5Wf)/IXjYJR fʎhrk@T#JTBVʐW4ئQy2t\~  N/CWeQ5$&$h[ q~eD% $D g5]2A6O{ږ4PB9F[P٪L\a˚T$X Wg~ke:[GUxM)T(mK:oIOUld % /ΩZY2 )/4TRR{xaV3zCkDiWVExhq|-QҳSXh"&ޜRRܝ1uuAz)TuԍV'M EQ˳T9 Bj \Tcۈ8C59{5ĆTʜ▵kXVT,HJĺuOh⻦Ћɭhu" AJ =rrvneEzNT8 I6CjcajC88Erǃl\Mo'A΍Gy-uejIئy" ̨'*\TzN'S6pD|%0⺤)%*oQ.82+9?6gUg'UBm)[4(),BaBfYvC,H2OqƒEӺ ɊB]LĤ眣3d՘”T9Ǔ &y\%!b QiQےNUPrf(B.%)ܛo|fW f떣tiԅ".)U"N-mHRjKBw+$$vЧQaz&o0julvɃLRu,T'\5j|8*%=MU$zK,au꺂wR*jk`nMYR^Nܶh\bst B,(u؋cnlM>$E<.eCY>>yT԰agJ,m:{y9㱖|\!\=3Lj3Mje7ne`jA +A  9.?iRؑ~m9ISbLt3_Pgnn ܥ`۶b.^ԥx<'pocsb?4W1 4xE࠻7#J gURH*:kknT S,4T3a4D4nZֽǵ_cq3.Z\zuYWQi4w^U|^QRRE'cc$}qZH*QYLn}1񩧑b_bLFeGvS:xͥ`CbB9j#|6.y+f=V!E53=JVREβvfLgąhUҴDG1SwqB5Jϧjsq#]ү&jua?8e2d,V :2b"T-57)On6Kr#c;%ՅJH kN<ƗFʮ!Up 8%}Ez_}?#jE6ө&s#>rL`jHZz<G35ܿ!iԤk(eD:iK3mk y~ՖVZXeR݅5({ӿn(UjL˴莺8"j)e%$7͹r,Vtw` oF_P*.! H"pn9(%cj6 Wkcc8Y\j;tFe65b+99BCЯ!ǃh{-/1!)T4C)Z]6;;#?)4˕NOcHRVoo?1Swq~K1x [uOɉ4T:=)V+\f*tLa;)V}bam jtM7a(BB`aӐ]UU6ڈ%#`JBGکgCi)DzP>y8J'Fmn?vTg R!CNxV4h.Tn^/_  R!NF xJʇcu5ȵ\g>d̿Z^qVO_ޤ@>gZVO0婌8ҩ>mmC0"*DYK@6H7iHSr\KZByRo⭗$lj9U}R*ԣ~rӕ*~}!.[=)zaW;r6D$e7u8Fd18P6{׳$I erVR7=%FCM6ʒ@TO?.<M|x\{352JE.6]Jԭ/vg > S#El FΞj>lfO!UT*ƛ2\P"XZ|椭IrPbͺ͒9{+0G2 YLaw;V@/XҴ)YCQ<cA?' ..td%e,=cPó!?+W$t7OBFW Fs2 W@Z*eףM97<ʩ)MU)56jSx-4JH)l>T3^.]):BSweJ2\-8 ͓3TVз ll(t7:g&vgM)h_W%K%V78o0S߇׽9NPjVZΒ)a MxSѱogT'5TƂm$+PC9r;5*3Pb\tm=kzf'͖eҜ#ԡ-P oJLU rHZ2uwQ7M؜eEJ~|R.utbRob_+7g ї%V4km-$-EJQ۞sDŽ $3YnCzlq*~ z56$͕NEqْ|wZSj( TizkuV ]ը 4jkJ+eykYebj٥Cq}#-q̘u%^q-6cR,ym/0Gl4ķ qܞR0"U): C7( HFI)|8̡N,1): MХu?.?޷xz_]*u&] 8w6ߐ;*[Ōn8wpdؕKp8om6%J!){0ܨr~+)*_1SwqMF1gw{bT7!JU~_N*qavRОjIUň7'&p䚇'{jV$دmYVVr6OXìUsQ :XX.<QgjR鼢!tEcJYK)-:uo>3NRQr:TnS!=Eģ.f:ARP.k!(H?.ThuL.YBڒlkA)Z{/ߌ\*|g ІZiZ@cY$C1E:{o]>`L8Zt Y#f.J[n[urZ .!q'f(h5eS2xV./ⶕ5͙<ÕI\B4m-'q8ϒmM5UT8Dw[(԰=kl)96Ppj/aj)#O!Vo#)o7 GOzӬPFB\12M&,˘`4G-hթN@" $l왴"Ke֪·5@+Jv2ub סҚb5*O% ϶ߐbVyFkP tyEԔ , /1Swq CHA-?&& Neگ^7/ZGM*ԑÉ֜g<*2C_qVl7R`5":Le!hVh_#=,QOL.L)ݻNÉ6͇Dr5ԧ˳I{4pX0k5Jᗞ㺆 `]U_#[|y"ĤtVc0UGx# [aGAKي? xxWeRB=تPC&&_uְ=$ x fRۊc-Qv+1PR0w-PhN9 . |@ղIwDL6VRTt؋Ǡ)T}*GEi'6U5PD '>VaܻCq}SCOa!8( K3^, ]͒/۶=fm⡕VeNBx i4Z!tSu,/Pm{إzP644G{:n_ 9.̦TUǴ"JMny1ಢtJt*5'Xj ]_e5J\*{ֹD8,;΢X*]G60eh 8שT7-b_ɫաҙE2/q,rkc7g"$Ϧz26{sJA_`Y3QWE2L])rֽvhcσ=CiXN ~*:Rt#YZ ())P7|_%ey_*"Rb{Fj!xf#@(}ؤ@Ժ}rP4'qKc| C˹\aSw MV`N<$QS:}b6pX}'wČUNTؐ$7.'H{OZ,\)u&'Tfwo:tG=.pYiF>/yKbyz_'ŒGZbdz;*D GsBJ֣ vhn%nBZM{>iv`̖d5)N1Swq&ҩ*GúGNuiUaey>/L˺1PMR + !)1Ĩ7MyQbdc2\*\x/Hf.(3X5& ͥI\A ;uGr2Z{^[J{ RSsJLz?FeG?/<($ӧzS_`#~D*yURzj$\~2y"gބٗ[-*NóWwfrXgN*_K|E_Ɋ/@Hcj%lCm:O+5g<-+t4 B4R) Z#(8U(yOJOJo\7cηT#_4{}9\@?IsOu|x̭yb:H~ut!ZM|&*?Pʿ)2>ҽ.WGOHg`tQ֗cնT`RF2=7!>@P_giĘj=//㏫n,+YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~V=YߕVwc՝Xg~WS(!8~[ـAйHèu>O/HGoȷQ-Т|ĵ&$T4l m?A`qXဎǵKCեv9 }FG3?DCܽ'Ofqҗ_¨!:J&8adBuJCoh:T0Rhc%-LH8IGCa-`?@#u"NG R%!+AIVs.!1AQaqP 0@`p?!mC!˓iN w_#u)g%vBھ(L 8 } 6!lrXvej%ɮ DKS>UЃ<р^V'x? Ø!qÁB5Px< 4AHLEEfQ;Gl[$v k&!6Gz, Imk>)+\jC?k)! +I2UG:,n+[4KOT,f%Sh#*S=1"2[[F RH!#6 X(oR$558rsB`ZT # b2mAJ m%9Ʋ~0V*tX;*G@5Zp* vY^:3ҍ M 0M Qc5*p7/Y@}FЄoH\Fײ91 ÓM_oPKW1@nB<kwҎtYwR#ERwH[ NlIDl)7 j$lS!,ean4#c4PJ QA ЌtOҷUdA$la͡FE&8fʭKŀYi؜$Z;#]TҤ v9@PHF]0hK4$xLn0NL}.%y%DBتXMI\}#Mѵ IP!!5$my&6UeVVW([%܉K) MtJI;bo29I@dzPċuUH"~0C ce4]?9y[aVbc۩d"Y"]P&-0H+ 2QvF* d TyN`YN[&'lr3pWqA/&K |ar&? CcS<#i{d!z Znc%4m`^I"$")|W@DB%.Uq; lȴ_抗F ϮB #]-OR(\@K?p[eIة YIf}<,,,,,,,,,,,,,,,,?@/Cm( VXCƒ);+l&wBDBÐK͹jg?߇ wLk˹~(Q%5f{dDw FbVeds>bR % pBشhDd_N"ܣ2T[5q'&@DJ[P!? Aɽ`jZ /q:0V:=9/ ߤ#$I(pQadPETAք,8$0 mk$Wh:8b;.E"UN qrU("VHgpرP31D9+r,`|C@.c GmɄ~Fhn)? gR8BNt#@z["y cvHdyKPk+:ihl.L뀘 _ -8%FwI3s'R4j1`2$D->q1'HNC@K8L>]bf3["EBQF(KưAK~p7E_5X@(?ͨ>g-'I0pIGϊ8yWH׮EX( `[bg"4'FqN nI)VθœP@=J^y; yr3Ѕ+ l ?oBE8YVBxguD>' &:ʚx~?rN={dwRAohռWzrayB5d%avsev"l(e|I `?>Dq~x[X=_ e.??|>:䡧𿷎g>}XX*$߯QKKe'*Ķަ)W8\Ty#`XpE\nW!I=ģ.0dD\f*]1:`JlLv^{dV/T- rӟuG\Q4S,ؠ&`n$A+8llR@>eE-)7XYeMr‹/OAʅG3 |o_Ëq ۧ H !SxD(rZCG dp7 %>Mߢe:lD&h' x*vGQIed 5) 3h/zg0HC>d*XMʘ@6^Pezbo9P#)ߜԾFw1߻=2^Q<2E~_2Ji\*z!uIɉMu%D*XP/ߒk#L$d|55b Z.9AAC @' FzWIָfhܾw?c/G#!PJ { Xyit{9@ Lz!8x aCYg_H==UD@Ik@2@B=5sϱ}jvXY?l Jxzd{n \mⷃoe&ןhLA~2ކQVNhוNIDL#^|϶m"zۀzz x ^1;{$kI9 Eq░bgo96XuC;o3kw 'G AFeu"e06%1+.`hЕO6 4 MFY/(~VSӂɒfȤDC)7f,CfӨ Pfd8 EݰyG)i^ S(5HMD8 .r' O/+!ęu_~]r.xYQ/ BO4*bpmi:?g=_9JJy1g8a=V?|S~fp 2hj3V=eIjtqbxyMI JdMYC,d>[+( ɯz)x˂&/'~ynq0i"+$z o[O*( bH}#1ȸw3O!ŷ@ URo O?a(v@} C@<}@y!8HhwqJ+19):Q}8CkZbMvDɛ,F"϶dH(¦ "6O5sT`Y2 }Rvw鎾)HotC)S@%y#% w3 TDP/iHFE46EU?mcDD^&8]o;QNňeLbyu'I$N{~_eT D@IFiQAy ;%`-5׏N&^ C:x'A* i?wv~Zd=W>χ@;q!y *zOVrkϖ^P.Z$l(\3Y7^rw/S#6pLOi!P@$Bk9Qm4Hע֌P(Ԃ04j圸iZwⱦdZ--gz0T;zfx N]}HHׁv4Mkx3WER|ĒO ,w 3Ӹ8D ߩ/͎@RW0psCs:z`H$IWh7ςx@-ٱ8\J# Eڛ2xJ @A*DA!4 rH7xZrJNj#*DfG糑̰67Kgi'H4/(8)AlVB+#%E)k<mCc ڢ[ũoc'5lQIQTf?m* KApD.FfXDJat141BdN9󹣈K=ȴ)0q2g xi|V_6Psw|5"'^2Rj"udu'u,c&`fc]ck b=c^'HvxE=uQO>za2{_m>Tzh̗S_j濿)XCF2HPG0IGIW+/W`M {`ws5!=}>!5{FNxu[0`p@O0N8:)ݟx$u=N4 _ŷ@vt1h^q4X>vd|8"60Dtr %;~ TȂ: 0d5 }ND$,#b.J1~OHӰW$\FP$VL" to6%eD1?$0 m,#҆gP!UE a.Ls{@i"DؗoPuqYd#3~'舥hD=bL$dדRk44xy٫ʊ]&;wH{ DJ.*"FqJ,5ݗ6J@̗^pk+$TRk';b1)+JA.JaG,!3/`&O#.b~+a [3ч>3&N|Flx`#Su Pa9*8$"AlgY# yқ\ d`l:KD栺kSC (; IQM湤kS*sYC`rb @X!D6EIXl Gc/ xZ1S%< ڒ1%̉AN`%P"^ݢD-p?@8l1Ih)NówYK6|]ZtKk2u2̎dNj a{݇?nI98eǍ%ez6l'XY蔄$Y>Gr <&W6$1W!c(5&9Ɓ6\t9cr.`Mf5S) ,VqI$(+F1g "UPE ԌK x&-$]`fqAn\#1 / B2ThPJ"뭽4Fy- 9aR5I4J5X=f`,- 'CMI$ZWb!F -2܅'l L&l6ĺVGP[:Y@,#Bܝ#@3~5cTs>LV* Ay02eQoO9~`ǜ\ Nv IR8r((lsR6qG:%'lP)pMUQt7L둁&0 q,!{kI'z( c97Ejm`28Nm)%Hy&?Nq SR8Rya$+ss+!$r- "J@Fŭ8P uӝk L mP0(|,P*G[ZUoLJڼ`T\0 /> BX|87 xpI Cr}0!dqc7E":L] ;}9TYe'zB}^UCyH+w;λ)+W.~\ND8{(x3|I {:|y(ik䪰( k~wOe.8@,QqҞCVih1S(D bq#I^k?IQFǞF_35W2̛3d ͼdҳB1.>?8 o1_$H"D$H"D$H"D$H"D$H"D$H"D$H"D$H!Xq!h#  %g:In&v{g<;u,e.wx;(LvclȄ\YjRH.e{AZ}4psM\v:v1$8 lBId$lLi$cxR>4 pM5oT ;58Xn8 lBId$lO?rK* epq dصج## )i`l7ԨHc ` o % >ޠdRۓhN%"bx@zdO]" j&P&? I)nZ@jj.3oI9!kS C=IT ?L.WC{8~(@@|!0U|xZg?a-&o)da)(1O /iZX0 [k po,cfAgM|t"ՕtyJY]2)zazlocՂT/$z 3P1@<1JdKJp0H6J 7~Kjs\]RԜ@rѢT[0m-yP-2`t d'#2;hx3%Pįd,6I<$b;?N8;`$rDbH9~f LQ Tx6sD'K&;ԄՔ{=a zSBH LZ ct$ `&#((RH  @H#C).Pr m^Z J%K4>3a6C Bgӹ\IFMt*c[QuS&:@ (d" ţtj ќIC3@PG/!ABйF4f8{ Lj֌0X=:-UpZ㴳w"QX&hcHs]}NJBdA=Z4;1Y;>WHZ`Kxab8 IDMlpm71lE!Vq$3Dπrc2{R3Pu(I!k|A8miY. rdd} Ғ:JS='7$ɷj\cQ)n[K Y*FhNDg4tF8t$oa"⥪Al9@D1/?2d=/C($=lP1ؚ3Xjbcm2Lq"ʕ|3Yؓ" I$mqΑVCMɬ=WUs dPc- r= %j0y <wlײ,=X G%1"IEt9=R{'Tb8wA+f&$#@qVRC@8 Qc/`^ x@X"r- Gք.ds'󆓘<չؑ!ZpA4ٟٿz$Q;vI!$c& ^X݄# Vd6/GU'aPТqkmKk$:lzDbJ"! G;dؐFFB03( _jQҁDω] Rsc+S@dصGKչ IɊdU<&;td}a؃mzPlӨg5S=,/k,ז0j %{L# Uo&A M6Њrkiw&N~Z^ +"vv"Y[x͓ h9,,ˈ鶳'gFOtdwYd 94] 2r\o m?Ɔe.U+Y^C$r,{)$5xz4,p7YdD#5ϛI1DP ]&IFT\GYو L %Id!| IؔPUl!e2JYPl`J136Y|UxD*+* )є OD'b`Yz@p*/6sFV/_HH*I;.˚)*OQvC))6OvżQ9S{5YpM rI*R9]E@J=%*1¹9z>Qlq D!HIyS4^X$2YkE!KG`j;0`UK:EHS,g|T[nlu㐌&]E2#5@ FnPC:B)+ && Pl)wX%~tŢ`x!O=Wsn4hAUF | IrCJ8o{]/Q£;džDZ|}o䷧-"lw9NXH .P<`,#SpА 'f Pbce3 DV!Ekথu(/)$aif `8ۤf_W'| [+wT(:obD\f?A 4gc4:ak%hB0bdPҐ'$uPBXvce;$)JW1\pՁ,8r {^y9 kcB#$V>4!JG2(ɠ8L OPDWDxf"2dr-A'FYZN'_;hD9PPBPV|> : ]}Pd~ @L 3 AǨ~Ʊt0ս{Fck_K_tLOD"s@n"I+LaC;dJ "^ʺW*F)Vl3 `&I *r 8,84RdRbUqi=Bgdhs/cG8M8k `SCnb@eK `5LqpȥBV8WM?eyD89 !hJB~Ļ}N M'TQ :dkp>tH 1IPSNdL݌$cn6P4d'et˜d7 xNaevI!|H@;BDrD Ԏ ]mUa Ƅ%ŇUpĒCb@68z(AzD;l)NϡQTxp x >P~"o>cF$7RN!i<3,>}weiOrd:SjTnf  ԣ`"Ir ,fp ` *LQOMC8QwFk5OȐ7Qk2l%E$h Q"U@TH_粀͌TtZ*54Crb%Y5'$T@Kp0Bv@S W(AM"8ht8Y3Tv *ċ^&Q0ȢXȒ#:X%&RXrVR"9ŚQH68OWRBI!h`ls;x6Ldz #fr}>)Ԅf˻ƥH/Ҹ )0BԓROf[jFDȧ Aճ Ȁm &M{;z,B:#7hI1ET);FL`6#aQ+!uq}Yڏ'GŘ>y!ًʶr c14`@. he3Y~OJ;n]){6gɀ{ފzp;@wo#(g) DrM!Y*đry#1wb"2X9XšLU9r^Ukq8Ϝg3|>q8Ϝg3|>q8Ϝg3|>q8Ϝg3|>q8Ϝg3|>q8Ϝg3|>q8Ϝg3|>q8Ϝg3|>q8?@dUd"`W6+Q|@!Q7hPj֊$I$I H$  AIHH @$ A @ I   @A@$@ H @ A@$ $ H A@$ @H@HI  H$IA HH @$ @H$I I@ A@I @ AH  $@ @@ I AI I $$A $ H @$HI$I$I$I$I$I$I$I$@$$I$$ -!1AQaqP @0p?n<`M ќM_Cn;d3h/^޵G| Qޫ\~$z1 ֫g@T?²0S7>4Ac`]vlҷ^"^y דcZ@ACZvSH,EzKI}x9#T=\V>\.bt?W:ppYixfSs.*XXpɮD. 6_Ġ@KOOxMn3TMh窑+K * qq{X]P\L]!]/QSL[/|Ĺ* x\<%69*"t踠7y,*t6/$MSFJ^NAA uϜT _c9mZP:J*(.3A}[֮&bB'rʽ+'Q'R/cޥ|K"ߤ`k2y0N7?HiUGBi}H`r,kWp1DgRtgϖ|a(Yz{TH -\;Zst͎wՐz}s&PחAiڷf[O;Ϟ{ihug[8~ À Ty(?_n^J,焁:z]6xVIwae}󸷿y]X6%j2% (X`ajBk8 BB &DK40 Y( d0/]W*P;&N)LLOpD 7iu38iu Fw_hbdmJXgnX/ĨRtEVJf:i9 -?#KhFFxƠnA'e&C ^a.ʧҶ?}n JްW2^2,A0s 7ˆc*eĽuc߿LAN y%5yR/q Q|gEO W5)er2NFOe8[q|!@k|@7h BE8/6"9+W8yH#]$0pa⮇,1UOT5@ "ݑ\ Ta.}DK.MSǦ1Y4R PKbm6\71yA6#*X-(="ճ*+/mY(Sڪ*bEB?hDc!YIb5qL?il**/p3 ;_oF|eDJ9B>:%KP>rԖU, ܈@3Od:c^Krߍ%*`oUn& J%bPX(.e>DCL=K!,!La8Ȍp2ܸ2AZM85n~Bƴ!_)폨鯹 S & 0v$A]SU@{H.fRv|gKo"R}EcI xPM/~bVß8 cpAAYKUpӂaq3mFL'~~zaa1>S+~Z ѫhjjû=E|~%*sRP`Ӓ0Yd  !Ա'1ne~~L%(%uay+`d2s٪vmLPvx qeA#q_іc(6أկTbjWEa^}G>o$Շl_~-FA+eçcVDDBvKuU0߼aU^h xc#`x9>ax(%up9o3^c]2zQ^i#McGW*/d138o1,:GObcL{hWaq2؞NǢk8jh=_԰;#J$oW,Ux$ uIh0aԇX0,!1AQaqP 0@p?ծRq^`N$Q} |EZ##i` % ̚zL3nWqtB0m'w UR!~aSH3K5 4@`6-3n\#=a!preJV,\X"W9MDj_Kak7A4SDW3IVuTXEJD0 }jՓt^\ zs+&_1QN R8Bup\O KU$ 3s 9Z )oM!G+F T\,oQCjw Y365 * z?6M-aL̈ظϨe%<{D`~CI #`|E5@Wm~)P_(6ʩ95Kƍ%^'}ues}@T彷+9cKS;lbxg4L@b5w?D"Ñԫ.K7A{r{O-9Z'h'Ig9gQje,ٺK'F$i/&/#cVmtFa'\E iQm呍zwy T 0w- J cf!IPa&H J8%\nȺ8F.nX[ 6,\ 7]y^8%Zj9WJIr#n*C:Dl741{P9Je3(wE`<}#$;"U3Q+s+WIXULJ\盯In홇QR u FY)ƭ//| 6AqTl&gr ܳO$ ` O@)w"渑oӤ<.j[./v N#cPTTvBLjg,RF+K;Wt{x;JY,88"K%JSU(y1%S?WE >ѫlO0 Mm.8_ltآx>|:eQJ 2)[@M=2AVYa%r$+Փ:m ,)2b´Ұ2Cא9Pa O[wcJA)L@n[R#N%/@?1ׅAnp㦀r?rfźBt,*! e-0˰Côy ]\Yȫ2>f,Udž,X49$+B n)|팝t(H7]:JY*6 UH Qm5*B6AfOv-35cBڒ֍ĩd ]TΡt`WsPy1jU E4%>TWn+k Y6~,gG@`eH\?|g_h c V&:(T'"8 dIPD#UE%77ǖ"j($hR Ž? 1"-(rYeT @8&pޓGϏ LD΂i$1%W0;`# @(`ys*\VruIT`J P ʂm,N WKLj hkDA33Ǣ3ܽ[e0TF c#$!{C[( 0$"m;}>IbfA]EGoQy4l @)BcU*O-!fx6jmԛVE`XOZAHBCq'lrq4 (!EZ@{PH ^G(D<YGHdD;à8K8G9uT.1?v+7}AB|:= }rw"l}Hz1n,iz.$#vLAT%?sG_`ȤΖBbjc@/X BJ( P6_X)"U0LJByE+ԟuQ0I8BQG}8>`,b:+;GK:p޳"YPq~LO0 `~ìVA)P[@`@$"R[,A'z4wsB(KmHVr< ~A<[t+fDٍT D+~NcpSI Wo|| >5ύ{gƽ^l׶|k>5ύ{gƽ^l׶|k>5ύ{gƽ^l׶|k>5ύ{gƽ^l׶|k>5ύ{gƽ^l׶|k>5ύ{gƽ^l׶|k>5ύ{gƽ^l׶|k>5ύ{gƽ^l׶|k>_?f~?Yg3f~?Yg3f~?Yg3f~?Yg3f~?Yg3f~?Yg3f~?Yg3f~?Yg3f~=?Z" f㌗ 7v|glo ,&YCTn1eeO:%l,c:X!utK@Oz~+vȐ5Gbi!dz:V1Å [Gu1_;)Cr1@9^PL/ ra !Aݤ!1ʎ߄!K{ AEeߤv%R2e8 r (ď:3u㦅yp>)ߙ]"\# Ą@^-՛f t)GN&eWWVHق)#>:b82ĘKj,N@Ɣ[L+I ahX 3pGUZ*.hBZ)ٖ;PS=Vد tDD̩<* Ǧ!- 0D8p6u+ \W)X/"'ZH4X P¶TB ^_ aa#eVERsa!}c'+,3%2b(\kqdgO\)FJtZ*BqQ !Sθahxv8ʜ,a\ "-=ك"\=wxF]GBo.j,*zLIQ֘>rW¿V?|^J(|;@HXV4Ԯ4C Π6]!Q!&)0FP$1af@bdhKAKZZz5!i@yY"(#zO~ESNoqECtA=eClX~1WGȧP(~##gGiD1:Oa Iے9z1Hw5p}+|fy,;^b玡D]ނ\X3*Mg噲xMl?pKkS}E䔤zM?s./@x1k r.)nSA?!WO?N'Gp+?$v*O|?%JWZ| #uNa*ow۞Fibɜ-Kd LChMKU/ ;bSO9 ArI?%E ҔAJm*[4f};{*ޞF>|#l4oBf:NO~eEk(o4$< Lx q5cRmGcZr4$,nlS*Etb$!lOB*tB8Dt,R)"i9e,LCyvTg]i%}_S_%yq{3\l~jݾ6oc  \H:KE.1ٓhCMP"81/Qu(1612WnFB 'yDi"r5$t%Dێnl`4K8*BhAvm:GDmi!0-|z,kHUx\hjMnŷh9=b@[$b]uȇ?T}5Tldq7Ң5y)R]*&;Մtėtqa: blXyT!?wJR(zGAL@y1a@w Ɯę{w4~ryv vĦ?=ߋ"M!E:o.3PP8Lq)ҥ/-7ki)P8@+҂G|\]AS:6B5C$)r "yl˚BScwcW,"q{ D؅u $7,*"@I.xl-щIR &/V)\V)Agԋ4 /ȯқQa;B+ t&r /~$P A Lm@@a},ж EB*pYKP %FP]3. Wp"C!9e⍶Diؕ5A n"+;70ϖ[- -x_wA*.#آ-^Wk3Q"v/F!Q6qQM0S$ZM]Z -dh ɨM+kJ%FSrzB tKIRXI?pn4"@yFvh1fr v5lhҨ$L.W5A^kp}*^T "[H"_$j@x29 ͖2ó(QUtv ÑMvo穀%+Q/Dՠo @4;1!&AT+æ@D[CHKj.PyurWzHk,Pu5A$EQ+$ӁkR)*8C65kN0KP8)@nBkM1r-לC8H#EMUr^5Ls:ݝIͽ X+ : BiڱAꞁ۹iFXoz1\;0O3!CO*]`4NE4ġ崤:DMM(-XIDj$v@{A\Q?"K oaR( a/5* _j@fCcxK鈎 Zv{53i=늖_32iWPmÏ(U7'ɝAS0#))ª7XǀEfB#57;()`RtScd)# N v+!/#JDq+e  ļdp\ ;`6v= 0sDjDF v+!qHD6( X Z4P%DŽfJ@a)_l8`#CDDo$kR?^ \җ ;kqϤ0^ؐJWߔbͦ<,5 ZEpS.v 2 ww0QPۣJ!h'0C%M ӴSGHrY) ja5P߻+ЄS#[ʹ"Ru0؀#kT2D

      J gGtH@D!u6'F+bFUfu|=8ԷHCBw[W5,V/*g#A! 8Fк/W6ZpX chnD9`@ ĮbZy@qCv9XZu)BZ2܀`.ibD=$ Qb ֲ`$xBh&J'́0!.ǩչ}Aܹe9laa*lRbZ,@!@Az/4(]:Wiɹ{k":b%՚1g5bUú0"GA!8Lѽ"#Wa pZ6#,?],Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,WKi'hX6sC,P 1skBNv?/f@U)@(VX 5PafR`fH@#5AZ8N(pˢVVhT).1Dd1o=! 8V(n{,EcJa Utopnl"pꪠ4~<@pHkχ}uYZST ! ^rFHPBr5VNIqL2oH ^p =( ,0<._N!X*f _pn ʪޮq44( `"'PЂWZNUv(2c ,`I͇'|`2veW!OfJmŸ&(5J)X="T+%p!Mҵʹ/ l%z+Wk91Ԉ!A{psTسL $Bpf]QZd} $0daȀA^aJr0E?|;s4l[hq%IO, š1:9] ,#Bd!8.%baXm ۩x88WRh4qk$!hFl@P*]4,r!E Gs菦Íf~)Mmۡ55ݐ ](F -B^"bIB 螳 />dBFp,aXEh09{M1,PTxT-!Y˛"TUt, hHJ'kׯ^zׯ^zׯ^zׯ^zׯ^zׯ^zׯ^zׯ^iôm^'O?qH0t PmK.%I*s&Bu=dGbH v+R'D b((QKŝ(\-W i[=D-8"# `B9@рċas@IoDE(CEU1qE\lQ /5pƕM0{DH3qd(ŭbiV)Tܡ c! ҉̡QQC&K+ _p; |#8SA!Ѣ&0CGv$3*!Zk+o`>Wشl5*3FĽ3K-)a95x+mr{ *hpIю\ů 0:ZPBCvR1xBRԾq 5@b 4\&4bhk%(R`7JB]aCJ(&&gCNE*aأ3e/h#ʍ8!ɨiH6BE6F E;(a 1qL(l@X˜ q%Ee=J7)WN,.NNwXI$U"TʚЄZ ي@X&$)$"[˪HwwT*F];LWeJn< 8C I#u%U5yP4r`Ilbe ]]8P89e/&ex Vc@}qX~ ͚ZK,AP;-RGB4h%:]=QD ӒcH %9)NP,t1J\J4S^pK)uG?Ѐk]VP8a H6MG7\;; ?K9SF -CNk{Z iGL$?RbQ5B93$@"4? S$+Bc-LL\2qd*q7/$1PD6; U].j4Hz9-р45lHnDD0f8S &`p\j#pq^6Z&K4 %n-BXJ?Q8mp11t-~bO EAt4a $ .As*w 4`/ ;0p}b1g1,'P⼲ѷjj.%#}r0O^ {q.% pUn*"17q<4Y@. )ze mJ_jAűa"XnӅ@ȋVh;oȯ-NT>"Vhi(V+ 1%s</@9`¼1*d$pHmMY!n$,&?ЌG˯)T?/d (ՠ%;.;<Sa/1K`RYXEdLN4;N!ju50L)n+.#րXп/#8q)u H$4Ӑ7`JwWh8lwE2DJ fB`]f ~p;˲h.bsrwry5rEHo * 6q-(mbÊ|ף\ CA&r.SWѰs,sWH4* M[q! 0 A:]p婃g1  "#ш %IXP[A!XV1KQzu\jyG"cq4G(t Tw"' Xj%˂~H%_ aDb'DhryH69Î.h DJ,Jh AeK @d ;ŀv':%NƦDAǷ#sB[Ҁ([0G JMqT"J&@h14)EQ"sH,6ZDinZ ܁ ޓG4=)G ,]\ndwLd16Wht$$YqVU@!11  Xv| |iHBĮ @1qkFt0%=t A'`$00L+YB*εj$lzb9Bm7Ė6Q5TǏt8(KՍ_`MS(7Q1گwgCŹ<#6eKwG!ݬ!4zO'ϓ|?|>O'ϓ|?|>O'ϓ|?|>O'ϓ|?|>O'ϓ|?|>O'ϓ|?|>O'ϓ|?|>O'ϓ|?|/(}_` q"iwDP*GWڰNISnFƅyZ_WzKcM$%6!|->fM A ^ɂ;ūLJoC||0-8mib~;<#;D#PF/Ƽydͅ;.De=I}_-}Uj%EFt|3%+tr_w GQk@/I% eWePdb6ni+_-B;2bi[2V$U0mAjY/ h@$+S̫&?}T z ;& VT6CO[@p\A <ꏆt UcŰ _Åؼw  dMr-˞zPogpmŏwUם2h^@w}?smgdUgiK|cEWc׊)iZc-P<$2X@'P}MΞaө.{űWo 6)z.R}O>$*Rf "ַ$lئΨGW.$è2JIW;;\4eԭMs)nUstr[1FU8l7mX2;D6Mr9ڗ|7!XkHs9ITd_j;@&AUS+-_FbW$ִe?)@W-7n VM̈́mC*Py,v,)ߡdPRN[!ԭwE/[ Ii3KOpv;6.lG[ghAB3@.;]wfӵ(m~IkMR vF7)4'uKO]4=r!a6y޺|A( 0VӪݎxȟèX bvR ݟFL2T{~Ĩ߽6ǯ.>aS!޾jQ=E{+搿| ??yPk/ˆ&$8)|E? DxeXn% @Y@M+ &i#D51w~Qc<gq/jQN2`  iu_*:w'GV %:zז]a~(Ɉ6k7K4nmG5{~6''2TBVb +z> `7Wz%d0k =O#/P]U:?7<tذKXX9̒IKM}C/˪}>`h`P=Oow(Tb-ߏ}U9~e!XUtuC?}20ФS`\$(E RkHXCOۥ/ҏXXy% EZ]፯?mK@5D~9|ʓ~w׫ R߮.\U!;iLÉw+^6X%_swrJM+*HtH8bXBքK&bK9l^Q92ߏ@! `XQEv(ǰEډgᾋ^`#kϾ=qЋuHU/%ZTuI(;<`&ZGSL"2&4K{up ?5$=cL9 {K_t܄u'7rGVz` hcW`MO_!'tM>K}VHZ1$P##JTtףNxmo`NR(2lIk^8j^zI6I_jlMOLv6/;$%FfӇ%brbͱl|uCዕl_۪/~7d/+d޼;%u'ݩF:d(ԞpG C?5IAD}e: (Β3SH&\}-E 30p?8a?w70.7 FUS[e\ fg{Nhέ Ca/NaY T,&|\>3+ޭZeӯ-~yp fAr78 9D!#R2@ *- L0pIvDqvsqm7Iç h&}hZO fRs' ٌO@BEۙTp]D "0D@4å.iG؜wlgLA#bӇF)L,z>!|6FfݧW7i:b+{YwmWxܐzSSBָ}xx?\5bM5 F_4 \Tw9<GW%4mMaUoLzBhoЮ+JO@ذo?i_U>/YZ!]㳣\F9+h@$-~ w80Ih_2C14"͸`I1 Wr8u']ͥOo FFCQn2m}G2M3h0D̒IȔw?LNn#e8iP?5{-?'_ ]=b0"i0Ivnâ߬S2 L9'g9@@-+7^{b`9o)(gUu-YxgHg$L]IJX3,`Pb=^.'{ Xp#lEE|%cgy/3p+9V_Nsn[7md;[J$־ Gy&,҇7Y;5 ,]1LD} Va X~J=W=5 =QSxykP秫<"`nˬˊEbe(G^$5eʾzwYڐ6X_b> _߼ڼQöہbDrjP6=e] bup5OwCVۦ Sµ`ƆO-\O=^|z&Sg(̪caqb:Pti[}Iϻ%c&yJ/ DpYdD<ۨGwK`à!O^h{"F-yAb@l&&!uF,D,tj}K@*0S:jP02/uS% P0O,1,@TN;No2ʛ $6o ;N936Όu-A3P;Q%2YId`Qf'HnmXE/y(>ڞYmd'+щ&J@JaQB@G"AIbdW-l$ZQ XsW鸑(1ͪ׉g8r7WWۗ|bzûJj4٪ݎO\ˡȈJv '!>VN +8Rc,Ϻ,Ysٴ rp)-~̵1GGEWxN[.ݷQ7hWr.`D>l0lh6HZ R~5_1 aݪ v?z'tww,f@kf3XT;槭oN`Z^mヿ>񊲃 U+zҏ#@¬(,U7ѴBeMҿ V=7FL~Ȍ]w+wH3ߓWe;}G ;V͟2!L@MP¨502c62ظǞP̟6+N=Hڍ@>kVqMDKpGC;hYd+Ĉ]H9βw|kai3-I)ؒ'JQ=p4? ڲբiE eZhY`o]8[+kģ@aHOqēg,x{`-7eK8YSC8탥^9:PVٰYt%!&( ɘɎڙpYu}EDH6>sL8mbz-Q ֣NmlEXw;`$ iC P f2j[`#;z#! /Cd$U8&Vxo\N:e2vklUHt=,}%ox^;OpVڶ/P߳tA^" g^-d98Z<|տpK'/{2a+2.t.h\p(o4O8 H\Ltt}V b#ٞJ+.}ǒV^B >ˌ ʃP?C n®0v8ķh 6vN5ʹvĴ#m!(ֱk2z>j]%WiUoLr%bd*P*XUe76ugQ[4v˧QTƳw|aԎS]%;7ѻAw̵| 6aw>WOo]6w~%cMكģv#P"/;eKĄF:{Gi AkCA!?j.τH@m^>c뛗N2g7voGsr2+yOxG|Upq`*VEѶdax`יzZ𴛇ͼ'lt%> st?V]Ki,D{Kj$;p~vZX'!O,hYlY*)(.+2Ȥ]Xv[#({fU$0 IȽFON,~ſljv+7)nv=wr;p5 NI&#خl IDAT?j2/~ko=wEvqǦJ~;mv$#={ g,u!8;ہ+cs 9"LtGa7CIO1X[:\9tPDFg2OôQC0L -OR2NUՖ?L Սw_"۱P Pݤ7Mٽk&KA0M4 ]Qg5 J-N]{=Xb'Ĝs/2Flh_ r$;g6zn?$f1 hVrT?V[>x%5gޚ6d㇍^Z( vԠ6嫘9ƒ{=[J&"ۡ PߠzZ㿏pSX`lw|k|zݩ}`YFYXVq!ka;}M7 ruiJX:{ӯ2wF?x!L$Y۠箑t;`\IG/\Ē,rbK^[s<vO,V26@;P)/XX6{o6=-2t (b Vzwl3tfz {ڞ/`ǽ/V{ܮvj]b&쯪sKI6vʺg4sGpH5wR)NWq ,IΙ8\6?ǀ9ũIMde{ҴkvH,1a#Y!bOWvh{{nԅ_)ߙ1aD37U4!C.mHm=Zw,=U dylwvysNL$647ke9eT+-ZpQ|}94z2kdž ">8~ʒ;d/a|]Mןhzb`!V Ҿ~潾v>ݥ}4 ??|fA͸y$kMWRaT%dW3YڏK~ o'"pp:r1+85\\'H L%HBO\ 0ٖmK'۪EN:C%A}$ؚLlc |ڞ e5^g&_YD<<‘;D>K* hxKZ:# rMdLw*s ۺ1Q9R@tb@3`: 2]Xe`쾨ڡfŵhgR2&h݄FߙmϟeݮG](rӹ'_9NΜbHvk mhGSnh늅c4xOnFI@[1j@uuZcQ2R([^3OEcV {.`cn[M{8}}ɋ~g G:u&av4QvzEL/{]QNλN( kG~٬'G|'3Hg3N+4Pr e2dQ#'yUٍݕ9kG"fi4Uqx?gm-;|S@͠TY+ !۩pNoapNi#טl[N:\۳cV{-I:-F5 5 VAq$IAٛ2]G;VrGsG $<_5BeލH-փP35fKD_8yn74nx˷Wא]*r^b8_{)-&CfvI%C} KRm)jO?좂g)$Vęzp3Sy`+c-xicfmgɹ7k ={K0%C'{鋆wSLPepљ{>ߧt]u3À=%>OcE ohXJJJAP҆AlL>YI 6L0P4ؔ)I|q93;1~ug yb EL@,@`Ȥnm?;>"!4O5"# $O INR˸Js.I5S2ldNo`yـN=G'P*k&hPܿ4Ѭ촮F/5walYX(OyݽiyЇBY}HKԡ3@6$U㸏HD 8_#ޒ1⹿$=5yB3M*&~PAҲ ӏ3-pF?S듽XhGf`bM_NHe^vyh4+,oʷz>pH՛}~l/g} ڴx@[ڗah;awhowlsԵގnL&g[G_թgKf Cܸ10mg_%|(E3ٿzApd8g,gY$OvϽT+pVe+jY=sF[)Uh3K {]>_# у o3iŬ7T}mYfc^o0=rw7!*[-}+ViELڂ{[te@^/Wpz3"̼Ó9V rpx_)M_!2Am/jc4Hފ7-=[zp< 2[_-pS&|YER_?6UKQ۴Yd!~Xỹo,C: MɄ`PRe=Wg]K7} '2\TRk?%%tSX$;r?,'E,9h^g~I &"p#*g߃@5Hw& :?Py=K2B5?[4_ 3[1@ &-]vb %=I0H~`ib IG*Fdl̡]eHܹ~QAfv8yvx4)b"}ئRS#!  e1}AS hGPYd1&$r_5^"_f꘏i6pk "6%FHٱ7aC>D_B LFFr;#޵F eHG3)&fb q,[:,cLẼT}pH;xi q+-8fFģY1 İɈ)>Rn* f"8] {!9(B N<Lio!SO W2S]*B^T!~f&-{%|u Ӟ~ BGϴ.|ft +P:;޺#:V`2(Z,nCH-k"B$ް[@!zvjBhg,6Xv>N[۽` |uu* 1M;a)w:`֏ k#(Li{}F%h鄊6 6 J Y4nk(dC+b&fehphf;dMPsd!͒mɀYQPDȾʉ'\BfGc_Q+!]5ч`U?w+#1`HNXp`P $;pE0 1nP%z?JܾF(|T2L߰MV3$ɤXbtZ?] ֆQw}gd}T@u,oیJ|)hVN8yg`#x.̍/z@§),]W|U2Kcl^Tq|0+NP{ ,jkYVݧ,8i%@ !awD 178Cfhō#~$]T1dql}OgJR0IISa!ʷ9EHa&h 5$Sf'%}餢r86QaXi3Z$7}2YDxA l!ɀ4C(2L=#[l/{uM3k|e/9ѻxgub3&'iH#sfNq离v,$%T}/D2w:sצYgZHv0뗕|ؤH-J8QO|7,Fڨ":,ιE:>H Ho1Ɏ@R@i`"sIMy|. gXw($8LАa)F1  6]KXvDv:Q0xGOI+9&@ v!防΢H5Uڵ*PE$aD#KW\PA}WA* aIߋxqd֦{~l_) Y:u` .#ŐdGAD b4M!fP 7*UfZ Gx;t\SOn TӉn2Y=UzE@ϺϢˈ42CK(KY`E34®9H1a} e;'kL[~"]4SWǏ Rv{wg.m К_*tTs[C_Z42p`KxU~e"Ġ,,? YXgRH |C2E[:gtjၗB0"Tv"GV\ғNGD?)A)5p4nw0GjjےlZf HLПѭcvs uQ|"%?|L6PIi,4蝉I ت>HtS.*;gPJƅwZ@\[מWV ʌrNEX$:).fJ3!>9.2(ݦaj ibcW7jqgP*+ϺXW+=xIԚ$LdwpZOf#9S8ңh@_u34-~TBs~8 M eD,HYA -{ɓ{G:;Db{`@Ԝw-r\RdNSeho2#ᴙVW .ͳ~wA?c5xOcBC/0($sሙU^ Hnlunr8ʴ3U3nfZi4ssٿUviTb;Ɇ I"ƿ2:͘ 쓓^8BE_g"ŶSI1`\;H^jLd V=D+OP,]q/Q&xrÜě  f->C{ڄYXLdlNt+H=3nVy>?NrW IDAT)B5TsC(]ZBsJ 2ӧ- ΄XTOÅC)Hf{k5E+>2aV;2پzL#o/8…Ե {Q\ު+^mlp0 =~)% Ӟ$/$qh ^eZuwjuU,,Y.!~ս3sf^6.)tuY2n`b܀=vxcw4WiMԔ9׎,bGCA5Ū? %Ѯ/GY=6 rS;ʏ][44MvKfe+|LLZCUgpHTfM!d*:!`U pg# +ls3Fy +άT^t@)ߧ"!(ܫp@3LmeF \EBG%k}Bȥjw90bU &~3;' [=asDQ`  *="Y3#1TL/JRLwxJyW G95/$~,iNJUҫ9m|PH}a7+]9|C`0L0)EgPlՂ8-'t,x&1N E^֩ M{<`V&#940 zAO)_`;<;4IOFΈ`ְKj U9:xtTqD.pUstPbc*Cد逰f>`H"j&I5* \T0U4ֵqooƻUhn5;ݑo4ۨr  :'`<(k qVDu6~@$ꉭzPmۨ=!d򽫨(zUwX}?[QFZբ)5Lnﱎ: "ex0b ת[碳ݔv80MKmI'JyDRm^!1外tΜ^f`Ʋȝ$n&P;ΔR[_%Pۺwܿ*|H۩)EھļO2"JW^&ȸĖ|efr¥jc[4iL͓51RBL+WU"F w\Eθ"R*H"MJ7bH|#gvo(_X%h DzKUlL~Wڽ瀨 K/,)Cm x)bAP;D(PC"0JzHi5 XfGQ^k2 9@q$`6$ zFuxh}9IYo)D05 1L46Bஹփ3sߍQj+jZ~@=Rb[{;+.Xճ$6rDr( JIV:V Mk#"ȅO Ѥ,TҦwԔ 0 @4߉e![2mG* _)`$.efO/ν51 e>dQQMZh"bc ?}Ȩ \nx<G#L䐊"\ *ȕ}#s]3PǸ\%r- 56T̓{%$u cwo+&VDD&@kئZȬJX=B1>*B2bcSO~c`VoS9yM۪ViH$@M3,P>S8XB#1@f]g#r" aΨ\Lj1Q,8(@xolMP ~Y$uXL O2w1W11OM#HΠbKaELr-\4p \!0Ʈc a;N"WV'2=; *@').u.@d;nմY Tˁ)NM}fWoX@IÌ"k/ z.pN-ә+GT,D_Rq:N|n3H;Ə2+Rl\Ds_Bt+':X92Wٓ GF=㕘|PC'yteN!V7"K\TK)bVzyC-v/7eD3.B0_qgjYJJ;c{a@ط;pK!$.1n-׿j*Awo-t:@LOp2=Xnl2wN*Ybډn ^R><|FzWPY#RE 2H~Vhiq7r# Wf %@G}{ew^<!Pj{Mв]_1-ڑ-Pp$ XS= f/qU\ Ǻ 8y(.[pƎ_AT>,.U4̾4 Pݑ<;|t `H:\Kk'F0{WqGMG!-\E3TQID@ l'嗥.Ma:4ظ#uPj!@IQ9UWd[DT2+590N'v!p q𶺂B'}6F9+ʻ'%T;tp3"8s8ۨW.c#9c`ښdNcH@ c2(/TVq]G.2W 󘌸6W]|]YJHjH%{j]:*&+"B 83&q@5: Xy&: .D"E|e }Psļ.CP"ċw 1k b!2[yQd?pb4(-k^Q׶;;-́sb!1U֧h˷͏N}ʏldd2fCWrNN r_DrNvd49js(iN um |;h p Y:g&HR@Vn4 t*) P/?R b|Db2Pc\A{bF%:" Meq!O tjhAP PJs+f t̺HWaTn"r!8CH\11 keEҵ/Yv:R8[¬Tn4ᕟȕKR wVReH$F#'ULd7aS[HTmٵCً) !^*"I^KVEH_ǪF]Օ2` F1mE4FK$)*9GU?+I-{j./>"k)H9]\RNXA`֩U?C-Wʍ!fTHd$#B;Gص^͓H$RT{N{B,%5խ:XSƚ51š;[ZXDj $`k>]N4X-2%J"_?zsE+)g}*3 k;TDZ*D"HQH$D"::bFyqy\qyU#[H+`ёcHn4H$IA@NE$D֬D"ԧ+6QUU%[h+D"i8Q 2Bb|+H$I (ֱm IDAT^$D$T "mD"R%*D"9}TD"4RT$D"EE"H$%䂁QKO?IWe41&SK$yI;8SEEU "H$!@HI-.B"W LĢ  EZ*Dr-4/oD(Q!M 3_"Hg&4j82HEH$*]:JD"Yi*o.4RTl D"92RX:F @)H$U֟D"5&āxɂ$EE"H:Ca~>vXUDl\aH$ـ ȴUZfx-{5jREH$2 MFPdݬFGD"4VX-ȴ๵sqH$IU5]@*ڦ)D"9αr 'la9CU(M PfyH$4h ?AIr"5Ax3$*fjTɆn)H#G~,)/0r"eL@)H.(!x8pُٕH`񊊊 HT1@aU:UfFH&HjXYv{'L"s'$E"\0d kY-8idg|>]כgFj#<6p#ԔԬ伋ɟ_?li~o@VxiH$Iu[g֯-r/b_Qi1W^x:3OˤH$I=~YӴ fҕs^T*1&_t:TEٹkD"b/~NLLx<`QU3B` LDHbH$z;w:h<+YK%݄#r@1cC@CّH$ "krEAvQvg|;)*(`NP4h[qۘ'W5G;ϊD"4WRR"~xIg\:a|o$Fzضsצ-;\.WR|~B~9Q/H$&gZT~vﯪڔi3r)zw=GM OHyH$Z1b^>_Qqљ`D%冷"ֳ5#`x/'z%v`Ԁ@,/pDsw9gÇ!dK`ZF2(D"VB?\sS" n׷MY~ا?{d%1ҨHEH$<Жs޲EaZݞGϜS0(C8Kj Ԛ{E*D"%Z^de+ԤM6# TT38H.nrݭn'>p!@JZҽw݂ zTpy_h+g}.&734MтcF3( ÍP$QV׮vTo6#CD~IWEQoUXRjZzJ┯?OOI]59_tvzjRB ]͘v_S`tE[Pe:(;ozAH$LrYj)X6-ޑ$]?EL0=ֿ⋸جq,B2<^C>_`?.]q񼋲}KgU* iV,(+%¯ +/+_qH$_+?X$3 D2D"9O0 +u}7s3lDr+| s'''Ŧ$CTWTx|Pk.7{]!D"9_,PU5e8=ػ_0<ԖʙD"Q"QTq 9'+O7EE-+H$B 5$B΂V&H$sfN/EE"H~AD"HH$DD"HH$pk -n5fP.)H$40?[9l%7{)*Dr`+ԐL<#8LDL"H$&@Y@Uڲ4$T$y;&r45\&@D"lJQH$D"9B+!4Hj# sK$I1Nj)BJcV5~8:bL"H$!.QIɦH$ ŊF.; KEq7kJ$伡iӘ6ԔH$y\%H$hI[&) `Dr~M:3~RU1&.D"HKQUӜS!$k4S$W@("B"rj4M{뭷|Ǐդi#DTyiok QQDT;vرDTSQqF1jcRU5fQ1VWe6EWV]XWoΦ/`8n>o߾;vXhQ^^3뺮s^z޽{…-[lګQ"#Gj~9s m晰,^8##W^id"baao~ҜaÆ=CiO8sϩ:~k-^?߿-bM{1/4 gM?YS97n80^zܟ}ќ9sكgi$Rz_u]ꫯKk֬#Q'9sfW(Ǐ{Vk=جv}ؘ ,--իʕ+:t+VݻkiZQӴp4 +iӦӧoݺ5''g֭/+zr8+Vi^+~OWv:={lxc?>Aď?xǎ?2KKK+VY|y>}DH4Oˇ[G[L#=YTixrl2hРp8g}z}麮 0=z(?ڟ͛7XӹpB{!ϟiZݣ\Lb^[޽]wxx^~e믿^fuo߾&LMzVV֙hyG5xoYv-"gСbPsk. gΜzrJ08;w:uj\\\~@|WUEEŤIr+"ji͛NZXXrz=x`Q`0dɒ޽{לx}ddd̜9})))iiiC5M3O<9...%%e˖-[LJJY~}׮]򲲲LDDԳgϤ:;;;555---777=={!"|0---###555===++K/-((w7w}sqPϷ0 u5==}̙޳g(6lСCVVVZZZjjO&M|Kp iii ,N:wt{I֬Y2p@W^qNNNZZZZZZNNNFFw[v~yyy/5uښ9222Dc%&&[)))zͽk-P)S"%''ŋu~pΝɢC:[ZZڦM6lؐy5X{w͟?!Cdff~sFÇضmغyyy/eff&%%|><^{mrrr8n߾}.]rE-A'|nUfRR=z$$$B!g̘[XX8o޼cǎ?c[haovvvVVw}'ӚMui>뮻zO?mܸq񱱱[l׿}]~?wرqVZ}k׮կ~<ի?#1W%..|ᇗ-[nݺ7x#66vƍc4ظqM־} ݻwٲe}-**5jK8ZhӦ5z?9rdҥr}ȑ%Kzawqꫯ,'O3j(1͛m6n8]oVuÇ/]Ԫ(UqUU߭\rժUo_Wm7eV^(Jk7M]vX1־} 6TTTXoݺܹs^5\cVK.ݩS(ǑCu\ӧOdժUNsڴivvѢE[<U'D9///vW\k׊_+**VXѣGMXPP~M6!e]t:ő˗?SVe]/믿^PPPs!C (o۱cjsϥ?k׮{ws>nܸ͛7ر㭷r8o6n(*vժUr`پ}{i]ΩYm+???11qРA>xUUzbLDDs1w8YYY^bccӭ4q=s)))7||+rEQp8'; &8΍7nٲ:ɡC}Y{׿G1ƄY#k~ڴiTU>}wqiw/O?xz=k,"z7<?_'= OD>믿+_~e0?!]G}4>>>66;|GE_bDc| "Vh /x>~ܹ8ܹߟ19s8ͳ謿`P*[Gڵkw+`M̘1ChUi}`pܹvc+**Zj?z DSWiAG 5k(͛|3fX… cccE{h***ٻW;;vܾ}{qqʌ3N/ͳl 1p@]M5jT(Te֭":NkB, Xn&ńu]'f\BТE5k1x`QUVGy^W]u2*/믿GHhѣWjѢ6 =3oC1JĕW^iիEw]w1n^{m֭bpfff^^b…%%%QsA[0nI,ה)S^ȑ#Šrݺu.몫MѨn9VDM㛦y%D 6\6m,_|C͛]hQ۱ccZ0WzvB!GE5i|]6lضmF;v1$5o޼S1B,0 r-Z$4o޼aÆ :0ɓ'-K, Cߺꪫz'.Z襗^5]g8Di".Ora6s '4 C쁰v}ʕ+f~aڴiwd3f9r't\vKłE͚5k ,ҥ8pwX4a՝F= Ne[enB[ IDAT}Q44M׊ӧ׬(N9nժ߿_QWUuDo_| ]v=SbΚ5^t gxꩧ~۶m_z%~KJJ4M+((x /ۭ[7ñh"D4Mׯ_dɪUbbbBЀ"ݷoߖ-[<W\vGtbݻoܸqѢEBG!#V_n]BSkx+W~/[gyGr0T4rsn5D٤H!X6QRСCZK/nݺsGz^L?3쯍8x|t]-ZW_F-ZcǎڸqibϪ>_/h](V$G{ IJWyFFi>-Ӣ}TEk׮Sg̙3ȹsZ1b+`ĢÇO0A ^uUn[֭[n]Θ.))?~ꩧbcch}AA3 $p =_-p92u],秥iƪ@A>{ݻ0 /cǎ^wʕ `]"##sސ}۾}c=駟䘦yСDĆ4M0F"_g_W>{̞=; -[v5< "][n=|p)VviW\Q뷆sE/voٲEDE/$"9eeeQ,fGOY' xɚ۩JKKM3g }6Yٷo_Z5+SNcbf=%l߾}NL|wC Oؔc5٢EKΙ3'''G,0MnR7  v~m۶=xÇE 0P(tu׉^855.7o^~{Ǝ(}. B;w\jU~Yg6lشiS0WiN}sUk%%%/aPh֬Y꒮]:k׊o߾G”9HQ9k8N땰Np[^4aM?p۶m۾}{ܹM}ׯu]+U͛g 7o޼sNl<"GgSȑ#csiݺ1na>ڸqc||7,>١CP(xb\M='N\jUTQN]vN>7icǎ_zP($6hoVZuITo~s]w}kծ]2Xu]^w̘1ąy D{Ck6aBLOp\ݺu[ji ߔ3Re˖h72`޽n0|j~p8ƌc rq_}$iƍg5ӺFl߽{w~ڵkpBjֳgcǎuСk׮v[Ν`̙>9rdRR?z:t萢( Çw\K.]v-|;vʽ&/clСZ BӦM;~x׮]L뺦ir˒%K?zO>d۶m VO޺uu&bOxQnj@9rڵkzdz~zZtڴim۶>vM7^Z8qڵWNKK+--8qW^)>9k,аDm۶ 8pѣK.ӦMSUUvډ=~a=~u]nݺ5kpΧMf9 E2dȎ;< 7ܐpo&?~Ȑ!+3z9wdJ"5QQ{ZR}TJPӠ~j+EiE})V]TmZ"If5& $w9s9}<9m۶wgX{1$e cǮ_ U2ÔPlݺ5<<\޽ӥwvϟ ߵk홢(… 7oVJKKtqqq ͛׭[fee<ߦMy~̙6l0 Ǐ }d2zyy?ɊkΝ;~~~kZ Í7t%%%[n+VQO?tVV֋/@ǎ6lsϱh򤤤] *pWՈIv9gϞuww͙qرƍܹS¤IjԨ*lSNN7n\͚5Yv_,~-[ڷo`'j*2c XYEWޠAlK%˲zh> uVwEkܸZ!C$''۝f2&L6<<?~޽{mvjѢ5kFGG?4^V-[h4N̾m۶v7݊竿ϯG'N`ɲ\~}gGNNΈ#ӧOzzzf4M;vܹCMW^fOL6jټ}ǎ,?6ʼy󼽽RP'ΖgggZlll:u:w2̗rOvi.ˑ׆ ~0;;{;55bȲ_G:gG 믿^n]|kժ[obaCeh-_ETlvo;777777((RO<$IEEQsNNNNcvkF$I[l4iҊ+T/B`)99 m֬8'cEW\X,z> SAaS'YN`QeYfcL>h0z'F@uNc_]үHOO7~~~i޽bhLOO`*aђ(lc\Vs~3ft3^6^K%-*K*ZôJ/aI_m{3322<<>~ڴig~a-N[8QƥΥn@#@&DQDQ@TDQ@TDQ@TQ@TQ@T"<·1R("a(MJ F!;MT("X08MSX0ә _L$N),J+ ̉z ECS EaW>  ,s1X *c" 0 ~=EfR:=R()C!yCQR $lѕG׃@C\JzŪPUpM)0ipOD H+0Inv:z+~U<8)Љi:^"V+˭Vpa#T 8jjYy1`!L< (ܿ$Sg|N %Uz 'bL T$Ac T(Q"ꠛV5bD6Ik8]8D})d06IĹ1(& <@{Buwg* uB7b#fB)?X(۩==<Q@ $opStn0[Xݟc- ܽI[KELvJㆡ"k*kBs>?_׳#F \vqdzsFG%bwyz#OO$$?9$F!DQ  rHyfffC+ឰܸ#ha'Ԩ;qBa'Nvvdbf9Vl2MF9;7ҿ-<k׮TJ*g~#77СCze:NNW+( )]W SEboUREqʔ)Z5{رc'$IJHH>\$)۶m}]:tj9B’{ZB!ygqG-^A@9.O(cǎ^yYfApW/)pItV.*YYY֭3gΔ)SEiӦMjiy IDAT;l0+IE>| &I7x`h9c8.!!!))Hkʔ)l"S'~Oh5ybTZ 6mB._!k׮/^ر# ת6E;!dXXٳ}n߾}ǎ KncǕqC'MXh=X1&ILTEZ Go#jծ5m4IA?/6!!AcЉ'֯]JmbsssmrGQӧ0@ՔRoL81,,Lvݼyĉ_8n׮]Cy~-[ܾ}[=ݻw c8`~dVۻwvکgrwᴴzٚ'NرcGnnGddd4*Ƽjcj;vxzz{:7׭[f|{ vD= *$I(*b0!L Xʝ;w4ZTVѮ\E;sM=^;wzAVZv$I,D%//ݽ'䓔A5 ӧϥKAx֭[oݺOJJz7nԷo'NN@T^6m_|1uԹs3&,,,22̙3˖-trԩ`0_x͛7WeӦM5ڲe˗^zݻwe<5qW_}O\\^?p4/yuhɮ}ر6m۷ʕ+رӧGKÔR?:*NZ#GZ,}(JFFFbbbnB#Gd5sݺuȑ#?g}vn;vY3߸qm8p@nnnڵ[lά֭[GDDxxxΟ?߱cݻwjjر rԩSy[]-((ٳʕ+u6tкu={622ҥKi骙1>p@ddC"##Ǐ߻wcǎ_~1_̜9344t۶m7o3fB'Nٳg>}Lo^F#"ˋuܹg߾}l|g4m6k֬E-AQG_)Ǐ߻woڵاBBB6oܾ}?|ӕC)ϏGS <٬vQBBBdYyƍa/\~={Ȃ[lE[.;>wܕ+W.YK.$1b޽ o&k lٲ㸁6oo1L!!!,YDa*rllltt4X,;;K.WСCTTxrE777q߿?&&f$'$+ǭ_K.<O4TJCA[nӦMo6K,zҥKmŶ6}7&L|I4gΜ 6~jvUJi׮]6lqƏoJeyܸqϟ*`ڽ{w}ӷO=uiF !ӻ-,n7 8=zS$Y%Ij۶m-8 VO0d28q}*22Rϫ^Ν;FСC !,LI*^;FGGK(,^^^~)qqqql6/[ͣb,YD夤/iaWZ%B$Iz `6whQQ999{w}}}f-Z>y̙3%22Ү7mc|9UB"@С(G-V,3}m$IzP^^qQÄϻՊE3fƍ|MEQ6o,Kl,IR{˖-9RFʠ(JHHq׮]+))),SN:uNT۷o߽{eB'N ?n߾=!!bshZ;#i)vيVNj2RJ(%6 #"$IIEŗ._Aڵk;ElժU``ŋy߹sb8p`hgaFc)RhX(VTfz)JXXX~~s bݻwؿw訪^z 0ϯgΜQVZ yy&!N:Ŷڵk< ϊ(""Tס nFZ,)lDo4MϞ=#>/ ##oMMM|y..?jkL4yʤɯM2i4Ji}M(ʊo2dȸ1(/{z_~xxxJJ),E^IF3nf_m+*(~gzKYgΜ9y$!K.;aŊvK)Νꫯz6iڴill0E~}QQQ_hh=z4NרQ۷oիe˖Æ aʕC=ztTTTƍlb0QFي ѣ[ӧN;tЉ'!_~eIC?77O>dQQQ UVzz͛M&ӧ~cN:a Sb!nI^2{d۷߸qC>|8==}w.]EdY|OFuaϞ=3f`mƌ111vfsbbE-[1&4h/ c16Lj( ֭['(͚5裏:whAE{ >N%ui^^^#F`,Bh̙ȑ#ozeYkI)6lٳ5ͰaF(#FذaØ1cF?֎|cƌaJ#2ۇs>>ٵZ/RLL̔)SXdi̙SR$I?c^vرuVEQ8Yf(B2d'xQAE(nٲ%333///$$.;^-.\p5777??B6lo2z?[UtQӭXBTwwwPFm*k֬Q{"V66sslLLBHAW.FTիw8EiԨԩS6lx߶. 0UVs~nnذajj*˔]a.\جYÇk45*!d͚5G333ܞ~CU5Bĉcbb7nѣo߾C>}<M4mܽ{={rss==={xBK ^Eg|oc=!"o=3[4ߑ4A$",˳߷X,ɱmgPƓuFy`*dZZСC{5k֬bQcV:Y:nذa׮][vmڵY^dy5 vpzAX _PMB\MI6e,y'~BJ'Q-ʨ()c(V }^n#GԊņhdV{dX t$u69lu-ɴfOOORE_KjeŞYz3>իW{{esvXTX˱S#$!)Oѯ_?ERRR^3lڴyK.͟?v!pVh4޷V + *Hxxx͚5e@9 'm@WfA%^^^k׮- 2&l6\SvkSjzyy1N~^zz*(*,r c>_&@PPJү_rxf +W$8bKe.eQyh]))s1%P4lpɎ>!'\IQ=VppJa$#t:h{ B ˹0)V0UgxFXVR\#B>T3c),/ 8RG18.i ( P&0r.+pD@TDQDQEQT{"/Gg N 8Pһ@%j 4+rk9"0AZC\rREQјIs0R?HPns*F$c1$HZ_r֯BEQdnk)l%ٛ,U7uQ 됁D@TD@TDQDg@TJ2ƃ<j<1q,٥Hp;-pj (*Gٻwo:ue%$$$%%N0Aݩ c|׭[wфsg(FPN#{F ̒j@5Vϟ7̓h4ȹI{-KX#"T[=[l1>/1Q&l"_|yΝ͏3ӎ;Fj [KeRnPdd_oyq ׯ Z ?blݺU=Rj,0,^{ho@@@o?oo+W7m @VuVc;TMQMEQ|lݻhܵcgQo!d̸5_aetgy=( C"KҾ}Fc޽B~~~[$_?RἏ%K r}rwTع 8q_NLU' [~Y#D&^ah:J!'3yyyAPAnh֭ƿlwѽ{[tiۃ,Wvvӧ-f˩'ܸQgvD*Fo߮(JTTrt?u֙3g4iR>߿} !1FR9(5zW[2T |)SN?ߙ팴,Jig: nܸma/Ϗb]|)(0BةS`!LguZ=ZPrB$I2L999LFGf{Jip`N,dTn WTK@T*1 * * * z`X P^P DaFД"ǤEr1y?qV85p!g1!)NeYeGG#DP+qc<T5QAqGy eYvٽq(j4@TG1q>qn=A)UPb!+f) Q89),C"˲$Ic@vDl2(( "f^8o+R#DuFyT"B\\ۍFcv͛!OP}AAA7.{O#Gsƍ$9`'O޺u_ / RSS֭{9})Pv]iu "QvdTQKE)S IDATk/֭۱ce(ʲ c" ߒ%vyxy*)1RQGTQ+~98GT_1ر#BQJϞ=۷o_Jw1syݯpc!z|vN?9e/mP %JHJJڻ;QVd,]=ZkM{}$Iq-Zzoy߱cd۷$I7ntFѣdz>+I(GMHH0AAAC U]W.bJJʆ 222"""|Ģ(9sfYYY:s={|sxܼyk0͛78pFkݾ}{Æ o6l{~ي(qM48pNcSy#b-f qVھ}{צ};uk׮[o*!l(ji^^V `1L,{zz*1 ƜQmb!&"LT.*ҠAwնm[EQ>jӦ 3gΤ~vի/>}jk+VtaӦMcǎMHH`I6HQg͚7<( _~e=֬Yƞ 0q-[p'2}]PP/[sDQ\hѼyAech}+VtEmނ ^zƌZbPJΝv .?2dHVV-fΜ9?O?]GvV%'6ʊ(!>)D{I/?cIqH}~޽{O<955uԨQ .qF~ݫvq\\?1>|ٳKyʢ(v ڸq {-i1sDIE 4iҠA@Z*J\w@O6/:uܹsnjӢEȤ˗gx:uo}ȑ'OΟ?_<̡C3g#GE_7Lf͚f͚ܹ_z~mܹ,ܹiӦONN믿}٬Xs0+W\pan޼yzj5@E'´iӎ9rĉ?<..ۂ HNNN^f̘qܹsJ4dX͛UI.!߇SD;taZa/X,vrT%==U˴3鹹5w˖-y~ԨQVzJ2kDQ]j,Ǧo1b7;wCZ;vA\2uwy^2y\iy63g~IIIcƌٹs'BW^ٳ'/ .GB|I/_̔`z~„ v>}믿ڶ;w X={=zvhsjժ~ZRR`hԨ;M7nܘ㸔v#GX֘F)رm,y^^ގ;('NTOS%::l6ݻ0BhzO~׿~=utcvvj(0,HDž5lpRIX .kѸb RE*//oƍVg֬YGyxxٳӳ7Ο?UHW6 :tf_!I… 9cp50;w>w}h4iii;vԩMZ2{}2d0X[I@%B'Lܹ>5ݻ߿o߾-AAA7oެ[nNJl3ww]^_͚5ӧs숢د_>**~-2 G&={vNzհaC/nݺ]v$wwǯ[?ӧO8Q^\Vk׮R///iӦ5QPPgׇ27g !d2ݻڵwݻw(:W^yw5 !ǏX`ABBKX>n8Isҥ۶m#ԬYO> ۷={H0טN'$$ٶjfc-\[bXVZ-\E *vԩ 3B<Bh;3㏑#_ڶcAnzѢEoѣV+T.Z[n bzw}7xɓ'_lT}XbEtttbbbǎeY8Nxzzn޼ǧòeeeݹsڳNS͂g_O>eS fszz ,dNY;wjZ6O^s vuQXfnE55jX,,-33Ӷӳ ۳%A%;;"96jիVu=00,]Nh4e7^߰a7Gq\ff/_,rƍY63j !!!T&͛SRRԩ3hР˗/'$$ EX՟933ݽuCq۶mtRTTO<W_hGq8ER#|˵k׌2B>ѤعQO:f80v_~6 ֞x.*l,v}EQd%! (K+*hl_~&L`?3uTBȄ `HXa-=rȎ;VgFի˽=pq[IXeu)`T{yqƙl@LL̜9sTP>:\ቩ;쨭__,Y\mc 6lZ~ݲZ-+CYuOLMyjVYE~]Bذ~}G{D az%;Vuvv^(#y:S|4ͩɉ%T*ZV38_f*iA|cRY׳,T*Jefi@TXNQ)yD~3Ry8ODeٕ%· VH]Γpz;dQ@TDQ@T@TD+DL&*BؚDԕlY'ZX穤!xU,eTR5CHlcH)/*]gӕJB#Yk,&EXR,BʳjWqgY2*PNR !,_1YnDhQQ@TDDQ9+Y,B,kym:{K|r?ZӔޥ~*'!Ǖq`7FK?˩,M)#ebɜG5 Cc!e < B(b!YfuNgzыcHgORQ_άR5_9n !!d!C|+׼\vey*lk9720:i3ԲvmZ^ɳ<,'eYVɲ,˳e~ , E+)ͯBwvzO*?W2St 8RJ1< _u1sowH!dvj[_5XQɎ꠭w\^k-4 ;M裻BZ)`28O_1b8b!1C)nG=Iʝn-eyj٢I}{|=G$,(}s:+?Y~Ezff/-#)ng!4碷%SlS}Y%O)Ő~ ZUk!qfT}xYQ4_}Xد??Obl5KW_{իCcjy.*)E;ڿۚ _K.222|]ݭwyo[U !c$Wn§`޽{?}ky:+GWj_;hϿ?'v 7oySHnuX Q);b_ůʗo_tE7B߻Ó>x]hbJ]z̧>rWz=T+տC_w?_?B+']-_³~tGh6C[~ްvX;c Zo=cm+~$b*ԧ7=>!z\wϾ<>0>~3.=UZ_WGG`:4O\.4LF=w츬Z=dNT?;!SH|fۻ's6z+_ZgS7l:;~]!?nkXW*ou(Ώub S!1r}?0|p$e?,ZOI)t#y?|^bxT1ŴzVO*XQQ)Bȟ]wR1)y^m95 ޳{YoIf1,Ntgb6gR߹,禢ֳ.C{CBZ9(zetQ")=[۾~WUyzutXR!ļ|/oC:;gy7]ݹVWܻy~7~{êաmR}u7׼ׯ jy YJOc1IDAT,qb);em{L!,eQϩD4st+-_pK{09yp;g?1@ wB80\k˦^_}oއ>g>}``~hGGڮw}hNWУ~_풋To|h7^[C1V*LtZ֚dbc3ه~{"EWtmGFBLF#s,5kִZ}'W~c+ɉK.=}z|5ͱUw—3 +B&'Dg#iRz1VpPOMlvYk޹`Ǫ{ :z欟`kֆPɩШ]T+~նp̵zկ^Z֬1ul.4E%QᣔϜ8ٳO: #p>'v7 rRY5[.x /RSB?<8r8=~GeΩ̴!3 ®lS4o̞4B'E* p^Iشw^RO%1ͻ>~]޲9u߷{>= _RO2->3g.ҚKN7墵 J$* ܢFlrQix\TMI1]}iGe[c<Ol",'+3 b!d8KIEYVRg;UC)Y 9c 1Px:X( 2,EWgpNU+"/{څp`N63Y~Jj#_9/J('HX4 *  * *  *  *  * *  *  * *  *  *  *!@TDDQ@TDQQ@TDDQ@T@TDQQ@TDQ@T@TDDQ@TDQQ@TDDQ@T@TDQQ@TDDQ@T@TDQQ@TDQ@T@TDDQ@TDQQ@TDDQ@T@TDQQ@TDQ@T@TDDQ@TDQ@T@TDDQ@TDQQ@TDDQ@T@TDQQ@TDQ@T@TDDQ@TDQQ@TDDQ@T@TDQQ@TDDQ@T@TDQQ@TDQ@T@TDDQ@TDQQ@TDDQ@T@TDQQ@TDQ@T@TDDQ@TDQ@T@TDDQ@TDQQ@TDDQ@T@TDQQ@TDQ@T@TDDQ@TDQQ@TDDQ@TC *  * *  *  *  * *  *  * *  *  *  *  *  * *  *  * *  *  *  * *  *  * *  *  * *  *  *  * *  *  * *  *  *  *  *  * *  *  * *  *  *  * *  *  * *  *  * *  * d! TDQQ@TDDQ@T@TDQQ@TV ],[`$RJEQoTXɰ</FQT [} ONN.;::֯_i$GFF&&&fRtvvYf}Zm۶eE4 8J)uvvn߾]WN)?lܸ]?V/4;>>c96q;tQ(f2soddd۶m,g6ԍFott4ٝtOTXip)]`!cr)He=P]K)U*M6]Zؾ}f?ut߿?˲()cpw&'',K)uwwZycƍv.k׮TQ^xE]4jaÆ={ݻ7˲ɾ^]Yn={ʷqްaCOOORٽ{!~:̺k!ycLNN f*~޾qrd3te墜!wrEQ^zǎ7oƉ|p׮]xyvtt1G6lO8ɇ8pVe>fpz{{''''&&,ۿMV^]^UR<88l61ʷlܸpp0rMឞ{9+dOC{TRJ]t٣7SիWoݺp h޽\gjZ{LjҸ ~Uk@ȶm8_Nك.qf+ufJm۶ݻwOMM S4;}CCCm1vttlذxyuE| ϨT*۷o/)@TXJ3]NLNP/Ct0\ZZ!lڡ( ipRQ`DQQ@TDDQ@T@TDQQ@Tl_J}6IENDB`ntfy-2.11.0/docs/static/img/android-screenshot-tasker-action-http-post.png000066400000000000000000003341671462047176100265770ustar00rootroot00000000000000PNG  IHDR? pHYs  tIME  Q IDATx]w\U~sSw$ JDz/" jP4§(بRiRB=6S=33%!}~ְ;s}zu,( rc>PA_Kv]I} \ِC<Ԕ'e@;NЃM(}4ox\&.& x-'¬@ .(<̹&H+@C MX ;/sc g'K !L iC1fHEB3Yt #2BB})A#b;c.;Ђb>J +-"Į`C6X~I$#W I^hAa;MӟE<`^pfhܕ R6XA,؈H*D~rqCUc*DtzIryH'evDh dL R!HCu8ЅI$d ShUV>(I-f| ,:Ɇ3-r W@sH*RL| 85g&%X]~ (9G "EUCm?ĂE=w&.&?ԩ~jBŬrsF/ АHYl8msҎN)otҵdγ&0ST}2 @t{,8&IdT+†, vroR#EJ!]d(AdmUOcwSb.یM -s J\1:¿sRKGOokO ; ,Ia3i>RtFa 2Kv8C] F!Ű COHpȤѳP ˟r×BP㿣TT[h" _\Q1Qh^<$ p\D_Sq ҭd?e(ΦzxWN@23E %[+M*~*& jpzZdg01WLB*ֺS7MR="G/, ՝ߪ_Bw,_W'"^Y\rЂ=[[%'L1k~?|̲?|GI:G޿9؄-?GoxgLc*d2U_p hpDNqne>v?IQLšr $ ,@`TV}N#md8q tfxsCma\X>r0lsNCFM Ϻ lPGt?vU|U>1x8b5`('eW'IFBӶ cjw#hjdJ *% X ͡5鐚4=l؂ 9._@@8!_q~qBOGddM)K{̚?qR5ж%V}o\v/HM |81WEI,=n0A9Hv{0\}!Άך9>$ʇhJ]pd@8dCC{9RML!VyK멫*~Q4>pBJiBQ5H4rHh"b(%1/dSjz\`?ti1ƞKսX~Xtc/zOVZSb~'7fh޸Go|C#ȏ+f} qY9@hH}OtGc;T*rM[JAEH0:йs?g}W7 0B}5 O+W5/]&W?}jڧ)7y2zv<ڻy/~|ٶ K~o~oF8[~sTў(Y_Orɜ0~MҞ<l65*ǃ8gƜ0Q+>UOr[^}^AA=7Мi2Ɇ0/Ɇ&y8@WV`^ !+fP "$cKʧĊEk+SOHU;ԵB%*mA{=^q˨ BcnO a'M/; =0;2 RK;aNFrav@`$ %s_^ѻu]d}HXՓ8adNZ vXCLUhD m(4ΣY{$B٭}^<\(07hDȉ_7U6%RI8\qukG(2L_Fu@ qGm ELCƷ |K4M~兿v,;04p  \ٛjf"$ cqmW6.sqO8l^31_>i*ocέaCfIcq>ټ4UQmdXkZJjfn_H&b+JAi+J"]TzЙڟݘ<@ow+3߀ggpujxYdIh[?Cڃ}dà[=Xaeܹ.[ҎKƃ3Ւl ܆tCe鿄1#%hͩxF哾sxa \n=I7>Ц{ -Y;Єc+^0IjN9B_>vDžᆷDpM#3yӏ' hU8SC bݵ@:_nTˎg=R:G83Zԣ_2t7_~Nw* l27.q)3˞y9ӎ*:l[t'-b WtڦKf֊OooeA09:?'dlzfz3]*ڑ!PUӣyX|>4`rm$;T'H XY;I+mkܠ,wsmQ/TTn@$ 5FIp̖/*9ff}1<ٟ*GFڭלk~񗈲iȃib 1gW5H4`^,SgV=[cA: wzo>3ξNMԝ[Dc(-o{M<]pdi|%!:6}SNl=޸_Xx ̾]mqݗXQH2:]Edvk*>[H%WvA 4PmԎ {;k-UgQP _0nv͖..6lGd O?6L=_~,&m "p0:$tP0@ﺫ*PЅ'd7l@.7[)#,m_pmM[F:2Y>}"Jd?@L"PuI`˄{R%F{1X(43 E "|&γ׿d8A!ۦSIHEIt6 hSy uTdC;ta}]`'"!܀LWpfM y0}ѢC΍-o|u`sGP%赗ܳFo  Nٷg/͒yD\$(cRPFIА ;CIߧm+q }EZM<hT镍koR"kd/ZJZ|ߦ-S=нa{ ffrgJK7$ZחN;{[Tnjlk `qi};_VFh@ݻ@ 4'~7ć5UU9 R]ʃV>/K` :dqu_,Ij~ |#5(eQ|`ݵ~dvΥ 9 5̀5b뒰H0n<2P cw1cd@:*n,us*P2A@'{Z2s^t8Ȍ$ʲF9]&;8_AZTNgMd,J7iC0?R%̀>ղPCeD e+dTrų^^z t6LݸD -4 bfIER+C` `2t/-ىG3P:~yl7r F+ͺIw|8R׾Ug^<螻/!=}Z^yfw+_ǡS/CzXuCp*'AԾթ"{rV.5{6 vKsU/`>ltP:`Cw/)Gc[;meM/!UFO˄Yj,*ExԸWA'ڗ./\u<(i5O]ض=a ` ƥOOsT>SJ@帞Φ%tz3>.ͰʦeK_لŚ7>'"Srq[{ܼ83G2 vyQSȩR?|f*I==%錗XJQ6YlmLbl[=Y7 BWN?`L_d"YJ/s^oZ,r_QҖF%㩻m߽_Z` D+eW]N*qtٳH@U}ފ=S;; &,I-uGXLA(hy@*ѪNY]4RE_b=QG}Pͯ- {͛P=`Y7%Uu%"wGᖗ"izo@R7k~; Wqm1a[lPJE` CO&S:+W8-m:WK*AܞD@Pr1=UsNS1n1ts=l?4+f?QRAcDSTm<#qV:&́>$aU~u˃u^н{=Vx :4g]koObAnʨ?ŝ,sbi'#uu;Soܓxf'35#n?ywӈ #GN^6&hy IDATJ2PE/ItR"e!byOwӍ߬=>}r^I<{cyO)67~ Sj=s'τ9sQ4k~\s$ij7F8EJoQ_cËv9<|oD>~ɹ"8} /zO{& (# 0o5 10Tzgm˖DVg*L°l'NMIihkӣ/36T @Bc'\|ߖ[ݢd`|6ThWhIR $t8tϸdT;{sO )Vݜw~ b4g%;n:EVuY9CDJJ9@m5~A݂MڳjyE2[2 G}(|*1G-phlݵ' YuCj[f?^[KycKz!NO,/yCz}?:&E;VS0vW|sE_q"*Xkv<ǣm'䷰sG5fԄ_فV¬}i?nPn=0av3I2Cj[D]I j D.vGx/tsC{OZ:_׆UoBiY»o{ 3GX)(;V.f;jZr_ؙC ͍}Hu OkPLʿpE3sEEq̺)EE?j+.\"г~O8#2e?Xyΐ6D(S|{}>8H3ڼyn}Wǖ7 J!oG-,5%]h_Uy_6 ?AWG*;Tn J H;/,@2p mٱy튉` rȉDԻ$3,LҾpܕihd ΎF`SF5d!~GR;JDẺ/0c\EMiӋԦG13~||{|,u7#vWd>Kքmwdܨ/l 1#ѝ> ]HڃNZIC)gN*d?V CPlz:Fo\q pG*5~V-Ț2%$;}qVpG,Q`k R@]mܣm\ XԪg{7da1e*`\-NlyG :x+n{ӑ "ןdojpO0}- r(@԰悛fHH I_x d i;mS;yt2u,$ rRB*-h+_J7<% ^!i􇴎:zPH";/Ww^߈&B ;RlJ62? 馕R"!6 iA˽u };!~ NSs1O]JF#KzoQ۾DYa_&39h- &AVJXn7 4t:I]B`G.rOI˸;XfHexU>2d0g2R?B l9,Fi@ZSї"\QvZ"ۑ>w;h#;o&Q(K`)> nർsa ^!_^^ʠ1FVHL0:.}P8aXFQ4 ; [SV?"}pz5yAfژs~cLrB˖ (q~:{J _UHZ(+ڛ $LÃ<"!bh0)#4 ev/YbRq(?.jA+g%#U<֨lo~˗l}Kzʧ2W\qC%jCܯא b -\I첩eglnhZpO>=Z23BwՉA*P[~P"gIv e9A4JJ$HCʦpɦ?~>: I@ 8uT>HٟG` `'%۹>AWr>~XpѥkMKh3z*'_e-p ٽSdy :1A>EEJ Ҭ"r3[ 8C~t Z,qstuew֏|z Te6!`gؽjQr5,΍dRƮDŽwTJJ rڗk5׽o^A5,1s ~ l枭z<&C8I"|1'WxT6^JeUH0qi~~y;la찔3a-h60=uƟqQ |FՙAA$ ⽾ZrbP -&V L` 119S1_38 kc˿v[42IC %RfΘ/PDY'|Bfcr_QЯ ]5IGU|e3WA2ٱ&$4XE vU}4 1Ph0Z>F(| yy*FOX&NizdJ,&l:.*Lֆ98M)j2{uNZfܯ:/6"Y'G IJG $}:){ʡaվW7Y]FrU:֛TD]Y2`PxTGжA*=f%W2-K 1tݥ4C3(aTTs s$Z_R'BFrYJ O\`pffB*r "Eb&)P]LrYpnLnъD9 5G37kDa9`0о1^pR+DxaM~e!ŀ4#(2L[vfD^TG#/e6g|u`ٓ 8]ŪMN ( 02f&vGqOgW Vל}7DL4ghgWHv0[*?zIQ*6ʊ~t1k+74(c? æVd(%[,M_܊\^ax3 CMڗMbc&^sr{4dU zq@f Π@L MZp5ItX 2 `MUo8e`ʳ>fRKfX5FrK$$6F@fV>D p6A `+*|&)\@|[@S_Go+Gsel̇<|jзi._}y;]M @4*dZDP&T2Qq|xq"Ppu}O*(Uq5 N$TXcᯬ;otSs^$`̀w,7Y<Į bS@[52v"],W!؏@$2M}X&O|sk3 c}"̖_pi3( N\ L:94Ģ"MP=^d`JD`Q4YK&7-53@5eswD5)oWAhn}‡d 9ᦝnA1mIc\@ R /w پ~Vl>h SH &hD4 himOWG@ HM\jgE0FBq=GאRڲx_L6i2ŷ&\naMʞ11F@̠9ݫVZ]' (ĤŷMm>CB./hse/M?P D_+PdjC2KVLd{ łIFEe N,3Hh[oGIJb`QY6w!>u_/2W?DBVP!acG* Ji%FFMճ> @~.D`G enǪW~oѷ}^\uMlנ?Y*3Q'9Aj@|MvR-!5 l1C|&y);`W: 2 ${[bٵD$@=>b/+5qHV쿀"`|YteLt@8`<ҿg[ Ra Kb "`:I*֐֘P<,5 3|$`<~ۋ*6*) JᖳXB !XaB0€Wj-a"QT:#J(8(9<" y97H#*\.@9Ρ4 ֿ^4K#h^T@1_]yFQt 4mzCHjiˏTLf֝ 1 es>-5ZK:^1tE%_ x\Dv-L ŕ nQ c1C[1vKG"$s ٧z /B"R`ٝu)=i< ݜH+Jx j}Q_T*kt @n^'FLş\)?fU 񋔔o(@sՋd&%4ZHB8*YjpQդ {:kCi62v~W9N)EG+#@FK~Sx\E>\yi}wSW8Gκh|sH١qjgUS.cԊEa$Je,/VTw_Ң.jQY+41!Isa+XAvtkv!ÝsD =O+9B(ܱ[6Xk/~sw'N;d0WowhI EJٛ!O7.5f?U6󸆗Rĝq̩ǚڀP֐06, *1ă}G7r4d7vAX% FɈ(l A؄2w|l>LV^SI8bWsL QF,L!m)IQLp綻n~SуtTP° RjEkbgs٣{fhAfڜxޙT4i{oFVE#~5+I2Ldɤ>3[/B38gh@٫4/3*gõ_eX[iszGpB1!XM(b!rZͩSg:kG1k EMTO5l }LD!8ݦ,@ɮa0Q<頦L:'eO1!DγpSn ۾{N`ʱ@(rݦ5 dQx}<qЋ;)=$#~ [F>5 k_f IDATl Rsזr JyطE?#viTrY I"-:vΜ 쓳OOGsZ8B`"'2?{gEusܶKUcרEMƮI̛DSL5&h[콀` E[o9y{ޭ , >,sg;yS.~ɮ#|3%:Jf)9|8ʉ9VP.1BLҷ3oG@Vr1[ny [e8_>2y9#:^u/%)B-^Uj V(ª uÄ/ؐ3lf ~ws܅n[?E;F: Bg3 ¹.c۝8 & 5jݺN͛Ae^|G'"ߑ5}Af+ V+ݪc~Dk`snYMķ=aޡ3V#Ez 7T-߹˟֥l>ZV+Θ#MY3GS?mm b#joPQVwy|ջTLV%tzQ};tH!/Nx;uHʽ +Wym4!0i U[7 )3_1 198"'I@c PWqnv6 i_&?k듛+_dаdɒcȱmk13;/z4* D~|29uD8UV0bF%^KeDQ%W\5sAjLl*3i]灒l4ow즟:XHgדZRγ큠^9gяƏy?ʝ L\dWo@Wx}ՒӣǸљ5)2Y. =~9E%/~Ud8d2U|s*k#uɴ >a:Nm#^hv<մ.bNLm SK#w`5uB8`EpM.Pn@1+U~2| p1)2q Lk"cw-TLp8 TlW!UZ6;o2`Rffw KfUid3]Q+_ .,咊3+2.y81ud<[[8m6z>XN/,Bc1)MIZH!Nbq 27Zr:VOO{VHi,E=]tV?%*Zf ڬ3cm³?# Dumi 6q2_KVYerI9=d]?{;1PpA#pYkt*H SY&U*UH *(q֟'`K\!s":> K|% G!Zȧg&"i|Y1cgo# %/@Y\N/}r&W~ G?X͟"8á\L?w+ 6SR0_D!Jô[[f|v$ EфBd cP+_h _t*WJT:UEvu9/Ŷ?Q8sz0I}ZoՂ|v`2(lbb[ c#_MUVwx#{j0Tګ9PJ  vKllQ1jc?1̺}i^u!ǼTa4nXFFo[lX nu>o{[\J<Xu,YuN֮e3m{VUr]ddb+fJ׻}gdIM-|{\{'o n?#mS93jOP JGſ:|E۩;EEdeYF0\4r+91\R|3 l4?ÂD?'GݰbP^BLWުV9#zkB*Z8핰%N:D_;DTj~N@6]PO?pXխ2y6V{zWqsKGOy`4׎**"` -A:K>.#+zuMt+goa1`MXb| V/c9kApQEH>w]δjdP#zBc*+[kMM{1:pX4|mZDuMh .񗮾[J Iqic?-NRؘUFaGZaO8>#m"t8, Da%X_n\H  ~*(j ho~Ma0NPda}J+50.0Pz̬ؖdq>#8F#[綨0CEzk&MV/[儀N|Jr|cAdWg6> f=d?Tmk[L}0iXwǩjC @ֺ ̧+٢"'tY3첰3C}7d?_}ׅa#(? 0EQb—&Xq :KtEa}}2|lN<9 Y@1W&mU"+G㖴favJ9@vvˠh58IRe~~:>6gK4#O} ziA6RP'k_#:?7Xv,wת.:ݺu&WCm0i`dİȏT0˪ϸ u/=|8SWM&UΤSs7 We|GpZrtҖPFiwg^Ulqem)1jˠb5 ~PY=8SE{Y 7X4%Q(#˭0:.qsV>q]}XO~F))H g#XD^,8uם%\=i=v]2NS_sqk=7p,a`}7k>$U_E_w5px=p dn?%H1|w0MNaU턒rOmRM'%3Ll&2҈9cO>j8#lM'\w8>6qů4=u;qJ4z}sǂ'(+_-:dk\aK!חw-ld]ïngluj 4,Nަ+Nۯk;k@lB GgMJtohgߋN6b L^3Mw釺i +7[32bUړ])M-RzB;}΂UH-_y%%cuR(2ju(-MP,| ϊek "dlΦgjtKK Ҋb[c@9d51MK[7dZƴHUĪƑkՑK֥:a\V R,z qzR@ WOM~?J:-MOvRYiэF$w>_ Dֽ+UI {|pd[RZqʶ.\XY*[,ȷʩF5>xڧ??fBc oQ 7cu硴&΄E^8䁀3`RK>H~|~ Aas3Λ+6}3yU=216| K#[0#J]?Y'kmZRف"?wp"~:̧Stg:߿PM7"ʶlC+oYNs"Eh8]7ԶY|RK1p{}lǣZ= ﭝy(G}E0{fHk]c *brXE-yd)JRDu a֞. mVAs/G:K!HhmbVZc?kG 56pU3 M DD 96pǺO\v-.(a_XP5`fjmQWf>*6Xk֜QE6;S{z|vwN-5@Y[SvWWLpѨn"Y J((#[ ,?ޯ-ũ[UiH 6,0>x'p54-q7}o:Bζ5o)Xi2Qm߾'1*{M{{|D嚯h& k]w{|FlmڗDLc݂@DdS_,#owDǬ[[*J=[  rXLˊ-.Η(]e#@#֗ CYiN۞ۊ4m)@|Ór &V:fٖ(]*7ӕ#ugqfQ3+>֖NoVV!g v~87AesyY! 6lL-Զ~"LO!5hlo]jg 83 g>};:p'U;W|βU e7zvIDH"W'˙uKM!Z`Uz m3 ̊luF*(*w>+q+ɬ1IFِ% U l2v|bGv4HTi.i6gTR+\å¶еѡӵד:cNn=pɦf=ipCz ׯ[(!E"m~k}޶/um\:EVsjl Da2Mc%5֋Vx8DcjպF ;'؂ٓp 2/)ѪC/Cڗn(zgT鞧%Nguy|m I-} P8j#D‹OTiWKuA߃/ _VQaztOUm鰅RO QayF?,ua@:^u rLɋ3HY CneUp(9>D/T6(kn'rj"jhɰ=;s&s7hOd潡3M\޿qX5Zlb-҈UdV|#Qdžg3Mf[DUKw9An :hKFPuZvA}Dw8q#u>(MƼ-2abYEb7i7bm LymY3ӀXkط::r]Acf'QiHK$XŬzCwㅓ(fVv:Ʈn{VyܹfxMj#TOĨ]˾7t,2-F`dJ?4lZ9?plHt l^Ej.g͕/"g*ZVŠܸ!ۮaV (U 6S$LWXj<\ qf౱c:ܡ@1ln@XX>S]Y9*l|ϜϮ]V T .dkvJ*&KmZ&*f:)XU(] 悘M&j IX]שrs9uol(ZQAy%#MΟY<%Fe>sC ? ܴn}J k@(R8khe bNY*ŷ,(H %U0n=±N2E.cbľ~Uk,/Ѱ-y0NEDTDQ!&UrKEaY4 `WbM!CsFitrh9pgvnIþ UXBi'ƠXYWI 4, .pk/W ̻(X@ِ׀4( X5.}c5F|$jzvєH0g;|%ʖ%,ͥ:LP"V3oL٬nX>SGBxvi!X44͟yPbRT`U0kf|*(3F2 XGQ[۸>`Yu1kQ p1Cǒ b0Y6bĘ1 rXVD6J;Lms5jC+@g0+AdZzk|6L7lcV1QiHlTQ(i(['~~R!{&B؀(U.2 ٧T-UA8C/0qu"|Qb.ƶ4 lN V7SVh_:y}VKpι2N08k(Ql;µprTԠd gW#UCmP *ad-3ʀd72d~FgG \C: 9ÑRJv8Ɣ +72&[TmQр!& l!L{lW|V_񭻸n1.ж1b>$%!;xXILy[ | ]/J:w{]O%uTm yꅶi˙ǯŶ?j3t]rHlN+'8fVgo-zJ*VИ7cwˆTtQ#}j5_s90ҝ%JΕ+0u-KzB3^2uZfV!mTآUDĤmaPLD<`"V@uuĊ%mBv#@Y"+oR'tP݊uAr#JYfޟdW2/x fU;Elnza[U]Q xUR 76\On%V1A.@߻X*`6A0}y5`[hyaߧTmK^TD9AjX|z @EҾq5M.BWfaSna ߃"AM4؂ hnO )ΦCdnϧF& E@DRWv# ua4ŅAQND9&9 2-g0#ck)6*8/!p?ȃ\O>L4Zʱ u U.aFM,owbSjf7_U*ޞ+ile9<޲J$Ɲ%} IDATw__0R'1*Z)'m>޺S:w"4/qC_[*6C{'AQfiOnOrbRεNl8f⩼# ؀a(L]g%91kΨ'def‰#U- "'Bw"/[ojzXt=߈jCZ)l51 _6뙲)ȹ CMbUA7MUd!? K{۾P#,0AQ>AGfNL̝H `df9GDE3{aՌ⍝k8n`q IT@DHyY-bD"=(sϹ+ݒ{OMSDdZFŊ-FDADel?l% 43f`fnNm+44ru­])XZL*w6VWVAD jInD`"ӷ2|dR!X|tG DDf( ׃ThX* Mʿ\ȋ YB;h\[ɪŠiMAR9!l@ [;ݷR`ʢ;w;!U{D"O8 Yf-x\xI49l3~J ,Xǟu+2̼wSG}+N=ĽLkx>K?J>wc7L!'Ïd~m@J] tU`ƜO|]++O{Q'9Ӆǝ>9W=qcsY3;ET6DH7^|/փNWb03#w3od"Uǟ~^;'>t@g\*{ٯWT$1_>{kc:p/)8LA,Ӕ =TZO,ZJioM]r6YgPSSff0۽h>| 02MM~`'@`̟@6Mְ(9_%KHE"tN; b<EJxLiuInj>lsQ̉G4f;)IvADE>2sR?wO@,[o7EO?$D KrJДly"^T֬%}Y (T$r$"T\n uwn2bXg b uM1"w78 "*i嵷om uHdG-) hjJv[ATp!+[M\NDD6No,/ں:%RXD/"&.g^xǞԱL`=t$ B4d29gJ֢D<؍ JOi" JgJ ֬U`N$bdYҩti<" BψJA*;d@MxmG|ʨ~ TΫ~վ ׭[7lv?^ak9Yj}!CE?tv,\`z&0ö pM~ D#/;E˜MTA2M|Ss{xo~}\~|pFE"w{?\Q@ĸ޴Уzҏ1vg#pOG (5၇HeymGJy<: e()%J=g29|6%.l~* S\p >Δwu~5_~|寸<NfڒI}~G=( hʵnkw/= $g~s5Ï=%  7Ox~֏RKM@4qG5v!_ $s}1X3.õɂW9q;'B 4IMy64*E{#wN:ЯFcOM5E.Ͻ|H9mses9tP/;Syf}?o.Rrc dP!E/IO>睅tA#2sw~8goNku&6(Ng ? )V`TkqQ|]trn+&> 7?!n>B68ϗ !qZCS_*:W}ADTp4͛Ϯn:> 9"Şmݨidoo?C>賥ٌߧOő|Qq&Y3cn;MaAغ=e;ŒwnߑIQ8r@&,@h~=]sb{JVqadQfoɨP-(FENEITaK-3 z/Un4 歅mZZ0pb/*\yk͗7'w=uUﻕʊK/ ݹo1[t~,dj-Et7PqJ<k;6Ja;0#Lѕ7Pi( liҹ-QS?_z5 ܡn%SAQAAADEAQAAADEAQADT6 IAMTZ%ICAaEXabI AZ$73{GlLAIb-iE,xAXZ"b枭R 0&'a;,") z3 ]YVVAaO k2 LaU Pܕe( [4[..w=XA6^TAADEAQADTAAAQADTAAAQADTAAADEADTAAADEAq6YJgA}F1ڎvf' f *A ]Qq̘1㬳ΊD"LD!C; .Z[ܟqoy , O? _Xuݿ{履~JDhkn ;-{ym ly2}Ok`ѯ~N馛 p+x;Z;ꫯw}}жxG~tI7|s( Z |_4hɓ1p 'O^bERa F9Z}7M<Gù~ժUǏn~o~o֌38kApjÏ;O>dΜ9' O S("B%W}_xUVUTT}٧n;SsZAp'Zk/e˖yчrH߾}šGDMP[[{1AQz08oٳw}X,FD֭VUUݿZzGqĥ^x3x'%#A t+,))i'Ǎwv͛7~0iܹ'N$믿}uS3{ב%d:e]Fa7[oƙ3gp /⡇sUVV eqryw衇r!O&L|GRKacL}}}:^ZW^y뮻}]fF~5\SǧLe/B~Ae,SRJ)ի1555ōRf͚t:]QQH{K&AQAJvM7yA e!I "*    "*   " "*   " "*   "    "    "  "* a8]>2 [2 ,C7ᵐH –)@teE$hRd%֊ +lAM.!*Ѕ(La+6oB.+r"KWb-/,=)*A v-DTA2bZ)lWȐ gde}:|Íc\]ꆦ `UVUDTA6H"қGStKV6 [ïk`"Г+DlfJD-rEj =B~W1@ lIZZYUg0"* =fYz۵"as6A/,qE좢LGo_pIX Ћ:AmbS.RbCv>+7 [0s9Lm+mcc#Z)OTZ,OY;S~ȸ+;qgJmAE t_|YaJ]"n/p]DbFC)Dc"E4J^ (iA+3ŋ+u"ցv!C(0"BOf4k᭷?];6{wMx'&Nz$>hWqP9ÒbU;0o^YU+߿r_w]1A^wcX=0Dkʐ!C-ZG6 k-[z֜yeh0\S; G#3~0s'^$M-,111^xkt߿'W ҥ+Y0r'1(>`ee%D,^YYY[[JlĀc өg&_ݧ (d3ُ/;~Mw_뇣aB;k*X-"?+ `@MƦ{NDY Z\*l\aɀŀ~}8z`>Æ<y}_ng*ݔ?QE>E"—!Z? s)*yD \`4jWR)xo xAGnugy-k\59% u>CF-,QA]6Js|eee,Jq]Mɯdt:m-x B]ENCGzqHr=\$MS#7 B]! l&2Qa0Yr( Ո'>˯u"Gt"MMM֭ $M}^Nz/XD~6;y3g}FK'} )@FA6d)b7wɧsPPD%\oqcf t@uljZvM lifu X"K⧿ѱ: I B6&Wk/]e |\`]=0ؚ~#&>~{15,Af9WG +̲ ,MZ1u0L:BI,Vpn#kƆYs?@őĶ.٢UQAI(-UUUxҩ*ݢ6jvP`zGPAPwާ >|(˥1(W,//þv^/-CQ5-/_.[B,;1ȃ;(U|/b-=rTn ïJ&7z˝hМ_ |)-f6dhaSVVQi÷qQj'~u1ZE IDAT!@t3>h$qg]UV٢2`WuYR~+PJk∖"G,X 8%\ [an8l1f@MD1e+dbfHLeYO?gY@m8s|z]z}+x5}+n.~oG'v5vUWxi$ ƌ {~}aD;g~ҩ#PEE*>Ӯï ЫPάŵ͎ĩs)_IWHؤ @2Z`A_lV!,lj7MrmG65ޚoNYr6C]y ZɍfXY2|ko_/[^y.N`e:2 ] Aز0APxs,^b{RQ@,VDXiŊؾ}JV!B2A<(46dUs=DcG PJY( d1~9#Fa T1bD`lqg@Rٔ/Aዋ f.))юVVaCXk7*]TdAzDԴEj|x   " WuqA33f}QALդ4w5 q@Q`7<6@wwbA (,xvpubl&7<=o 8LR 0]A`cĶ&b lE ыtC] 5AsQA1S6宺#/AtAl "Sv!˰Z*ݲEKI^A܂{H&MlBeRpX, _TvzW K@hJubRИɚ ;4O6w#LDAb%7Sot% @Ea$frx4YJ;֊ eC+ZRdFJA,AA.Q2 BwAAKTAADEAQADTAAAQADTAAAQADTAAADEADTAAADEAQ! J72܂ [7NiRDdiu_|DD(AZ*+V\j7veMvuQ|}}& ~\ i@kdaᆭ-zUWKHb@}_מ}9sL2[ooJnzSL)@HQ,36]vC.cܸq,ݨY]vY~ 6BN:QJ:teJizz֭[Eiݺ7n޼Y^VZ9;C.]:{lZuV)[oizzd*;^CW^ݨQ-Zh;$&&8qnݺ۷?zvׯ9w8%IرV={!QQQΚ!Iƍ ""իEHWnI._y7nxxxt֭gϞEqǎ]vK.L&Rzє֭[׭[׹&Ǐ߱cGVVW>}KpT9$IzΟ?bŊiӦQJ e˖[nem߾}ܸqǡCƎd2$Ir8v]vwN:?~SNu8(r>}VXQ͛7SJUU՜۷i>|ÇtR1Ixx%Iҥٳgw9~4Bm۶궁{E{fl6˲lZc .ӧ7l_~q>ĉwk.7Q{m+;wʕ+MFѹ....n?'Onǎ=ܐ!Cݫ 6l3&77W;!N:f[n:%%eʕcFbb?l2-Z4jԨ]Ծ}{W_}uʕ$)]ǐ7ӹssιo߾]!Iҳ>}  8Pȑ#:DQUUۯ_ A* Lcv_~9yŋO>xbBc=uTtttM@2žFhѢ YE9gծ];<<`0f  D9wܷ~N:Æ [h, ,,6p8/_ްaCwƓ'O9sBz-g~7gyFUUi !S)YYYE[Zpƚ5kioΧӚ#4}?y&MȲ|%:ukN-n?;vX\Wxb}\.w@@6s{WtI+\n!J3gv{׮]] 4iҞ={ATMƘ?hկʜ9sA/[N'ŕ($imAf\6VtUU:tEܥK_ꫯjvAK-ոq`EQ\jUHHHJxoZaEQ1{˗/۷Gr-mԨQTTh<}]sǎ2eQQQ}]VU3(c=&w}bߏ9bZÝ>0ƜwY-[8#|ڵ[z5Z /E`00ƴKzι`ժ3fвkg͚9oҤ6~ۢE -+WxZ'NeaÆZ96m=}ŋnj쑸X1blݺU#FtۖBdY,}%%IZbjGBרQ#"ĉ{㜿K_~w!D+c]Q>'N䜯Yٳ AҖ,Yrƍ}@R"VژLF%''ׯUVFj޼9cC˖-[|yFF3ts?C7LGSUu5;tܹ 6۷oyC=ԱcGY%I=zstRUUEji%)e |'Zn=r-Z|H```ΝO<9۷)r(fyΜ93gܹs~"##Ƕmۜ[ZJƎ1BAPWYaIz)SZiS$F1v~5i$++ko߾cǎunvWo>**J+?xzz~G/b~ v 6͟?N"Hܬ,RzhȲ_5?-䓅 js4hghBgy& `޼y111ڴWOOω'Θ1C31ڊ={h+ !6lѣG`` ڰa?w\dgg[֢%kqqqQQQzTǥږg}600p޼ysK%'!dʕI&UYVj=$++E~G_>rHoNti޽obSLqYFrW駟jwXl:C3gիEQTU3gNnpǯTUuYŲt_^j2%I tO?i+$}pRI,}k/ҥKx }@ڵkk9}VR?^v A:miffhtiiii0ڴic4=Z\Oֿvy.E{Ұax`׮]ŝ=ml)))f9 evW\x OOπuۊ[nժUI"HuTi.04{2.˲ٚȲl6===>;h鶞EWSJX TU@ k֬ђ+;m[Zz޺uG&M{Z4*wbCkQJJٳ !cǎJ; Awn$SNiiiv7޸NJ ! .o/\ ¬YL&SE4 0" Z  j$v{~i xs &LR֭k] +YjpjGQԱZ+Eª^ RiZPQAPTAK_zU{ Rԯ_~\|x-AݻWT@AZc> T7Ї@APTAAEAAPTAAEAAQAAAEAAQAAAEAAQAAPT'ؓ ; UNj R E HM1TvOErAj@+0 Ce{*EGpA 2sU @ } *e OkQqQbKD\3A/N'\K)AW2׉ @9L 5N% pp X [!T4uצʶEAI~(/. R#aBW8NîCQAy*qP5˔(' }Q 48Qֈ.oV4S"IUUrW^Ajs"8AC!@8)ܕ< I`_!4׮ 'k &5$s 5M]8GJRU c _cH@D(pP@ȭlFV*"⵽rLc*4Ҳly4=D.8Rkfv%UVCfۀ RaW:P ^m*Y R\T^<8/犠 R@j\(9cR*!1C9IyOƁzA]B8pg޵|}}fɡ(*4V9tsn2 z{{{{{˲|-)aWDQAQK@w$)2DPT `Ƙ-_Q}aedgU9+fȳE$k0oBB ++&06B8+IA/Ҡč I֦mtނ%~ĩ\e{>Enol 80( ngR)@)!)Bu+0Wrssu'IUU͖V?$$DוʠEpWTғ>Q9@ Ըׇ0u%89! JStU?cn·rBЯUR/9%1F90 tΑEY[ ?wUUɚa4yxx$*":Jr1 &Jegu gC)P~bNN#D J"[C-9gE\@-I+h&* T999k=j6# IDAT{d_r"?f˱Hϸ뗜\[^e%' m.}%֕ ڹp ƣzOAIITT Xvr?5SYX%$#+Sld*mKE V@~Ś!W @ ?Zq'AtWSL  "D $ WޓqDJ`*8ipBJ @2ԍ3tS4=Ͽ*/$]5t"6Mh0vBsR)AJ ?\^+H\k G UqĢ;~>ۭ Aj0bl@P|CwDդ^Kn0ImZ60vTk 8ܶq*nݖZm~>=H^o(lff %Hy'`8z-[w  ԀZ4K!RMu+׮6mDAsΗogYKy/^R"ȝ@_r;`4ƿZk;l &ѧ_yIƂ0d[ٹ\QTUT?j_: NU_-fOUU~ܺ烏Sw8ɝΜ4b9Jƭas޶CbB -ah$ 2SO9(9 //640ApvI*' ׯq1)H5ij=[j{|Q*v%!akn^͑}5?48fzELi2 qڶm 'N9Gbݱ~ђ mپ ՁUMD˒ |SR*UAM3_sNN%5iJa&ß=%`4)vhq'4 =_+ӟeyg/DDF2OaA`hsy pn௿?;'dVb>|o6Xr9զ{/8:K 6?B!2hݦ{sm_|H\4Q4n 9scF=ujPQ}"\\`bhHhr)VV&*P?#;(rzi`5STvxQrr,^%?Dq@ L(o^p Wi׺@"RDPv0B|Hv6w"ښnO#ȏvGz;(S/H=W`41 p} Qd$!`0{>sgߓL&j-/sg #NXpHQ^Ȳ,Imŭg{y{lαʲ\i%+VTv/?s'c#O Iœyȁ @(u+SՄh:wjŪ5ΜKLJb Fv1*LM&#A)<별 e@ ד 1Fqȟr\ 7S@vYOQO?zoS&{t{#mٸ`L nx}IbRb9^KJ,H0䌌 (<` 8/|.*@";8!m:J߀pNqynNn$`I6oؾ]/HJN9~ Wr I~*_\Xr3ZR")+<+ D`R΀uhmݱ_9܏_7п݆r})_kۯ'r@hpHP@`FVniu>b1TQ)A .syLFιj=N/vsh4@?:f˾h!p5qϠm3o6{p((@U*IYYuuZ^#<<.x}ZEOJL M.^# TRr`@mBiҍE -sII$ @)v-h|哏>ς%_-Y9g|AWDz]!Vv5Z',d26Mqh4f bddU+=#N=7$az&qke0$jSS3T5W`Ι8fw2Ye?Nd9@`8SAU(^18-_v$͞3o1|`͙>uJ^^ht2 HSc6: h2jS L ,Ȳҥ333e1ݞv!Ƙ#Ϯ*fT$AhܰQU T;~ODόSe1=r&wߛ8 <>>Aڰi+=gr FJƜ (3 zt1{__ŁpB3̓$Cqi~zK`ف[9]=E c(q,[s # (R(epFƠ?^ݞZ Rjٯ$_t3Ξ9{˗E*p颪g~*ӕ_#S ]e.g&nAOѓߝ Szlб }glVn.&9~}ԩ~9vm<;UaYw1t܁>{qͦmxk:d}Œ/,>׫ݱ$&\Ւw{%@iI88OC}So5դ[vD h`b>^>||}jqY駆wDہ+ *jJ(TRZԜ .*RBI nPwoÞVU5Swr>~v-o'O|nk2{ʹA mZ'?q?$+@ ̷FURUcjZyQB+"|<)VP 2qm R3p Rn  (*    (*             (*    (*    (*    rNeX\6怀ι()$33#Kʽ Ȳ\\(svD~8Jg^x1٤2<==̙Sr!$=Ǐf̘+c&O(I, $uEEcǎ7o.3"XO`0xxx4hРSNs<;;;66v۷o߿xxx %0ƺw~…Ν;]Q{\ fڲeˤI&MT,IR^\<ƍ㍈ ]ӦMw}WUUWJ)!d„ =zCJxZWUW_}E)9RP+ꫯ:h233m6[1QN˗0) *us ІRdY^hc,>>ɓn$ID$Rj5~ RjqCj_}p[v.J}IKK^z CJ (*% n;t`0Ν;:`-[&''?!!!AAA6MW^y}[n !ܼy駟oܸqppp=6oެ-088800Х@I#lܸGydرвeVZ]~ݥ-[l޼yJJ tڵݺu۲eK F) yAPT*-+AvvvVV֘1cbbbjժmͽysٳ:uڳgO۶m'L0tK.M6r}}}ԩYv[hѶmڵk@hhh6m6m*bvg8p@FFFxxxXX }bbu4G-ɂ :th׮]gΜq$ H @X,G*AHMMݱcG6mX#F{?1F)MKK޽+:uԯ_?Ҋ+P>[oY'6m=::z߾}[ly״DQܴi C pܹ+W4iR C#W^a_|`*lٲ6mڠ z*w NFFƠAFc֭IP 7o:U+VX,N:?^eUUeYU) ~ڼysm ǭ cLQmO>$_W^Ok.:bM 6m:w܈Ng]zu̘1ɓׯ=p+W z*w͞={JKKKHH0Ln !ԭ[z}c8շo_Q/\8窪jwpnݺӧsw֭[7???%r朿۷o޼yƍE!̜9sqqqoֺup V5))O'xrGY[hQtxu֢(&$$݃hOQ)6lEq,L'|Aڌjꫯ,Klln{ATA}.Uѝbp΍FcQn2!yyywU`qm6((W\رcn2dHtHچԭ[7))ڵk%DASq6nJK] n*͛7c~~~RmUU?\x199wޞwU6(gooo-܇" (*UcEa.BnnӧEi֬YykVu˖-vEqذaw%m۶䓢g&hyUUE!A=ꈞa\PUE!Jرc݊GŬOFAQi\|111111-ZxqPAE^ ]v…__իW #aÆyyyEDD 0@A,^3A.@APTA7 T*tmsڱS HUQ%$vBUn ʕ+O>=|pVUe̙3gV\٬Y'}ťVZ&M}rY]wRACT$I6m(ʲeTU믗/_wС;vtԩEs.7|{UYCCCy^xˋ1G7nXfM^E׬YӣGɓ'PJ.ر# cǎLdFIdYvx&eAغukrr]:uYcǎ]vYf.GWZZO<a0~Ǐ/\oܹsEe9!"ZwΝ;;uꤝ.E"Xre=J 80))IB& vwߕJOOݻ[}٬76ҥKرc]eKQT)3^*T#Re˖-qqq {رc˖-sk=5kjժ|p׮]hӦ?<{l-kԨQnnnƍO> ١!Fݻe˖6l˚mEٹBٳg3ƌF7hrҽ{j?jʽ (*p|E /s,Y%Iz}}}{?|ԨQ.4b.n޼Ov\It"AuEQ8s̿~$M:uь1M$(n-֭[wÆ ϧL)(6 wEMWcǎ(X%dt).խ[DQ+ƍFFF:BclÆ w}ɓFi ]T8118SLaܹsÆ $i%IZpaǎҴ=m6[lllqEyTU}7NbĈ+W̟??**e˖m۶5L;wd͝;cӧO_zc}ю;޽[K\qOǏdY.MKp;vҥw RM=͖mZg5xիWoٲE 8gLٳ]~{~_|Źs&O{n}oddbiܸqqކ,oݻ{}ԩ˗/\p'O\dgg[VVsk׮gϞF;woݸq㣏>zȑPvAҜ:#… ===w5o999p8ݴ'No~,`\v9Xyh p"{|鉣+'j [b4o49 83|%DLsZ[MB.ZΩ7+ \$T,g4iX|f (*2h$Om;<$$D]8XIP)̀pShN,?nfZQ~73#ko쁛3g=}ԇ "Jq%\}_5j1^WI( d lۺ8DUk'Ow={{oqmuI|Ӈv݅xGx'E),`:^S'Lͯ~@ \- dg]?Vڮ#4$&^˗H%}^]߮\|Z ٧G3uPd` (+??ӯ֬38s:^sLu.vքzw~r{}O?{ c}jSj+0wSichN-W 9`_OIvrsʛzΞki5 AK#55500Fc`[镦*\Kg͙' O;@U3PY_~e衂$$.Z2B@@2 j56LtsX[ysJq|=)S0_,F*rIu1?:j}}ޥ_TppNpg|r)fdd}hyxzΜ ũρ'mٱWQӧL2뢒h&&$:!@L[l[FqÈ1Ãk€%Xl.gw|ǟ=%'=$@B4\@DB׮y{A;WD@Б!HONNݙ=994=o23O=;yɗ. w 8iܹ'33h06nЄ1BKV'/˥oƒGaC'պMKſn6ZjCZH%kكme' ?kvnn I@>[޼q/pJdCbYdj0jAS!u7>se&}߷m۾ !BNzę|=Ǝ~B܂RB.$6oLQO9]=A*(ȆvPJd1Yʉr=سeۮGy'PMn>_~'h7L^+]sES>eIY9Vk0ŒO׫/>7Ip9?SҲO=` >|94r#y\TUa?_x'=Mcӹ\zrsvAȌ1I/=+o8._Ø$7Ȇ577/h(ݤ'Ncz#fEW֝Q~>F"KBb22eG0[T _g,>f"&sy'xnذmٚÇ %;vcϷr%`Һ [&?2K|պwg~y[6AEA|ΓRթ :uꤤTT͈z|1!H˖@QJFQ[hmG# t@b*CS;4dܹ{ga#ܲu58l@]1[}U0dp6mwhPeiђ4Om0]8>˻/ û/  rR9t?Y/''g7?-YlҤ>==w>fd2 ?88mk;xE;[ #fg}K}ϛ4j4؟bc{v aI"¥_|g߁{Nyʒs_|rIOٽ{GJ v/Nr̹{JzQnݼ \O>xOUz}Eq,'504S/ݰ5 >۫W7ݵxo26kj4t*m۶rq\#OyXvN*cGrH%8 =gDIzv4cG.UkҨ nР_Jz}~뀁Y N@W7lˆ#B3gVI+V&D!|6+=-sw/0 ǍyOf"ѢiÁn5?#AU@@M;sGSO5hP'dC͝p؈{,oվs׮Z?{:kc4M|W;{6ۼrFE #轆;y1:o3s`"4ˡ|4띱Gs/|o٪_ 6+kwt:Ĝ߽l A#J7iFȺZa\qdBIR(B?oR lسznfy,/Z¤Y) 8h4m҃cNG|BR©~_d4v}hDUKc`,f$c̖yd26@ Od8 i  p9]_~:K #G 7wG>q 6}8g8W_v[Ah@|-Ƃ'8A;8}n# cG diҕ B$=~AhoӸ6ިp99<\…1B8ڹ؉`ЄPA4ke_7zx:^%ҕTu"z*Tp[w+%^o4;u_{ ^hY_h@8$(‰VmDՋp_Ѵnf.C~unزCݡ!t``VXkwulQ P!!!B\(NÁCܾ Q  x?wCh޼ ׀@?`ЕcC*eAe{! mX7ƌ*@R;-_ܻ@MHp]~j|V9t`{Nhh4mJXX˗TmZJDLN ɳ#.Az]'HJI!Ǐ$D*3D@ΘtJ:(tL#}͏+V}}+`&'&Ɲ=j(qi?l6GVVvCPrgh9GGONNN2h;zkFCGyred0q _Ɣb uDRR IG?,{,YIASzx։I I{3?2䂔,hbR RGƹ?Y!ҕVg{Yf HY_wQ^T0 br(q%.M\L\Ą\LL) \#\v\3"ߖ.]HN*rT} M8Yլ`>k& OiUoufS,t(2O?*eI| 4p4P$^]lDYDD: I>u9Ψ&>e0F#kݱ,\v],?)+Ү'%%"ևͦ9\ DYcem62sG5/̞STغ懟~ag-^jѲU1lw 5@ݲ_.W۶wugA1;whsgKWA/^ j6#K -X'EDÊ^?":ɸxc+oᜏ1\Ϋ6&%ը;_#P_zcHHЂ\N:f oQ'͈gFgCÜv z^|Sb (PxKZܻ3>l6  0J S&BJq}Fn߳myGd4'YYG~IWvڷykbnغ>fmBЂ HsXdN%''W8Io*J] ˜ɉu6 ];9!BΕZ!@HrJJp _H_HHp_BVX%b= (>z0!UMٽwRB\u% IDAT*<\M}|A[жu35M; u^dB蛯خM A4U.MS$(pͼ<]&tKCBCCBA^ ֫k׮RNNvhP@h_hB|C,>fe^ F-vpC}Ɍw[,*CO zAdဳ6WՈ&s8|%Hc78Izc@rQhj}PUuǮجRbSSiB<}t3rJ2㿟X>%+ZI͖ijQ^ Adz40HHX_83U6l| @l(^-Mݫjͼe f4y9^ g1 /= m`ʉS7 1cFwA{qNvÈ&߀"n?|Tlq1J\9ԣK7mJb]uG\.&Z߾ B+nx!KVLʖ[]{ εrBvbgw'=4VuɲS_g{a{ZTKWQZQƣyP\2n;|tذigҥ+q I_};=/lz.cyw9uQ`m[M1Sg'_J{hԈ`M\ג4]WgSы)=VhٞxxbAWBn+_#$\H;z`'N >>ie1l6V-[()n"8JLJy5Ks:3o]qMdw.I?{>g^V ޿^yIlZF]ͫO[ 1x@_ճ*B Wko≓gؽj+PA^Dxɩ.'ԋ #\g)-k/8qjUk6.[F1X'io>Tyn;,ESJ_8B o\ء?<:yjܹ'R D6\.;^}I  9l[W}}s@sӱ|O|Uw?,rBL -S*hQڤ{ǫmXriJAuޥbQf ȡy4Qّ+O?ߏ.&x>=ԯ۸Ah \>:~_[v:|~קunjAEAn3+p՚CiuO6Q C؋ڐ`>J=8g4.оzu+ѽ}9LMML̡/^B2z);V]}}ΞQ̦:׽'0N@S=aQ,@`Qx"5 ܯ&DƼ[۽/E?JqHW.1Pye A(ubke@p.FD+z\Nݷ"srkPrW)(((80H tBH R\7rELW:wh}ݐ^HJ^h}u/aP4Rڔ m-ǼWϣtL,>>Ç ;3*_o/K-нm_>B%=^Aw3sP`)࠹@+m"@WM{}$6BbqHvytPJ難S_~lURKb b6=6EöGLdbԈRz*DQ-9~p4xPWRKKn}'&SBO=U˝BEAjͳPiLlSQ!WCD vMSUdxn/8;.{ HRLQ`LvtuQQ禭n.xxl  Uꆂ"wSbkJQ@OVQ3* j\N* VS5`7MXAY@=JUm7 R3pU_AF N[*ƒ Hg0s['k#"<.VO(TQ D$3/2I/mA wlFUw 5X TRA+܀xW+ 0ND nQ)!3*D~ (y4X %E B& A䖆AboN{t8 *ӄ \D@@^YAuD PStWNLJ r멊{Qܲƽ>p Ri  (*    (*             (*    (*    (*    (*1BEQTUŦ@EGi.]:w\RRn$rOAIIIɩٖ.\(2gMd[1ƄM{eXn옺Vɕ+WV^ ?8!Z"˲$IB|AQdEYxiܸq@@jpBzzŋ+uB}4Mkd痣G^p7::R*$IYfرZ_re˖ݻwד999-JHHlFs/Jl_DpDFjQEOxf\ GY. ](KZFιl0R *'RRd zm@Lf Qܲl@ &PT䈰jӕX4s{v% ;]tᆵ]>=T #XV/kҾ}w۴Y̓3R: C@ n>4nǀ v]AAA!*E!!f;cH.,I=}ӪeAtl6=+?7ppDznnBhM?$Ix)e7r  ;f$pQAn7(^AȨ)bQ`4GM`M{\w~ \.͜龃GDXM+ի!ih =0PyMW '(ݭ2,_̞gݾ{KQ&)AfF/G҄BxtRYUlNdسF& P~Il[7?hҨ>^r?3O6f_;j 9G|WNm8 @\H^adZ6o69WR3ޟUᴒNGnfjT׬d2$=݄&YYY c%88+S?oP Xb5!ÇxńmJT!DA1ةؙ$"ɫWod2/hAEA6=&VTۆՋx8v؍v_=g_4~$h.|]ѽw[~~Ffƭ-*BZ!aaAaAawjzg>>/>MJ33@(Y%xZ4` ͵Zx0v(6n\sN $8]CvR^T*8Ie͋JAI 'mۼ >K4@ ־¸vA J ݻA֬ td1l (|XGyddH&$]*U]U`%\ ƘXxд ()Bؕ IDATQڵCkB`?!UlcB^@A# $lj0[l9ƍ ry'[)YYYv{5VTM? +4yVUU넇w}W{/L-[W[h*8 k;& B!Є.smȳ٣5k ?AnKOE6"OEt9&~= ]dEa-f_ֵzj=Xd* wSg[mO\# [ekxԈ$8xTdZ]mDԒe^6# ?An'4B~dÄJXEVkh"F_My|Ō?! 'n~wg~Pxw:A,> `OF㰁}j DF W>y<5 R\ (%dlcn!kn(\ZŢjrxM-A's C6L<+\clv\ny^%8t\q)Z5kX?*M:![7iቜ.le&k<~:=3}tmi'譥e׷A:[[T:q!# -6s{X v+W[EwbD"xTOYss99D!dDs_~tETu٢_Aǎ\nÁ|'sjIW``۷۫qmv7^yn_d_@Ȏۂ#|| Tg7P/TC qz*(-)h(.PT(}e T'-)%''U\4*G# ˊSINN6Qu!@^>mvJډC ASI7lTA=8t8TREsqP9Ȏ_+8VpG2" :)4@as>/м'{wIʹvunWAUUO9$F9p  nZkxwK\z̊$_r¢6`B/6Y7K cc 79[2J_yRxiIW2#dA)oW#ArµAb%ъ}nM!U*AA ]5{9^ӗԤ`A\v]RJ|GAB( rH芐7'B+\Kph# 5FL-\_zS),dшA;D @R*4"YA M4Ä ܢB!*VxI( 4LWAAn\TAEAAQAAPTAAAQAAPTAAAQAAPTAAEAAPTAAEAAPTa   7+6@oRƮzBZEg{*RMӄ\%%&&f׮]!ԭ[ert:R/F %wqGxx8>EAn1!iii7n iu!H[۽{ʽM'T6D"BDXh\.B:+&*RB^nBTQN:MF%^Muk|LU캁TnׯYp8ElX`5Y]%4ƨwB CV"ʕ_~VZl 233gΜ8}t/g9T'N?~-}QM*h͚5{9!)ot 5{H$I?u\.*[5DAS h JtTWv_5??n_ݩS={_uʕ2gΜN:V-\ti…;v(ȅVѬVkϞ=zJ,XpTmm^^ p%I޽ƌ3z1cL0bYz]in\B00N \(*B@7yѣGNgԫZۻ+~I-ڶm[,Z *#$E C~_]B@DV`g((^h8.(sݼystt5s~mݺuc7OXnJT(k֬)к02ߊ4ӞX>\PFFhUTc֭lÇ_pa||h8p`Ν=_e˖> 0aBhhh1#-[njقߡCrIII9p4hhZ7o6 RU1c  ҥK> Śh.]o9q6l:th1.Iuj6jԨm۶vZnjܸqL&SfǏ//_~%|=ۻe$IkiC}+WٳRڼy#G㎔/<PV0S3j.MH`k|vxqIL Q#YER{9sR:uT"h4Ν;o߾??tP_~;\zn)[z_|q7oޚ5k>s;rȘ1c ;o?su}/ݮo5mڴSz%?3@1L~O?ԫW/HOO6lXRR>LA>{Y`AYFDѷoYfh;yɓ֭4iRzz:!`0̟?M6fMO?F)5kֻ;3g :VMHH6lJɓO?mcɲ?eRj4?b.K/4|YUU~wK.S%6s΍=:##Cs3 ӧO_`w]xZ,1j"+:'$;T`8FlyDA s*ȍ9 cO?tllCf͚u֙3gzB4q=zl߾ѣ}'Ν83$I}V .NsĈ6m'O<{W_}'&&+..Nk̙Z~?9rd׮]egk#O?'RRR6oܰaý{N>"??O>VuڴiY8;EO)>|xfo5cll쫯*I /o߾C͞={̙/_$X1zJis]/^>|xݻw眏5Jb=ztΝ%]W%K4idqqq{}SSS{t: o8qԩS3fPeWyoR4ZI2Gx~&M~Ά~΀ ShbT=|]UՒ{mݺuРA_bZǎ|/vyڴiФI;%KZĥ(J^zb-қQoaox7%_~^ ?~E:E?رcyL:!!!۷o?Ҽy_~YfO?Xb֭C қj?~̟?`0l޼}f9""b֬Y#F475/(6mڔ)S|gyR:{rf/ZTvy+D,+o__ú휕mͳ G$ M-*BuzB^z5nܘRzt8ł!:tp\W\m%++;?r]ve۝#Fڵk֬Yޣ z퉥k׎1湋#F,]sƍQ̚޽{gdd;vڴińVt:QѱcGf޷ozg?{YOtS\}./(7n\ovh۶-c˺o}}}x o SeVuŞ6]nbɪz\4iشiSY)!izNEebvK=QsT)̳sF%* BG9o K.IIIWϞ==..>`^{mÆ {{JiРA9P9{yNYszُ1>x`RR(Rt:.Iرc/_ܳg?=̙3}zZ_Ym^oڹsguQ*)ǎs:}-v-ZŝA9v"uDDc,~iؖCBhĠYZG RE$[LT!z% Z!$$dׯߵkWLLW_ԫW={9s߫$/_۷d裏x]Q.s):vvډ'zn 1U\Gڼ齍v/d"z׊bp۷2eJɚr QqgqR{z IUa*O ԏ)BEWȫoڲP4Z(- qcc ߗ.[09j3$?5,p0VJiRR^zs+Z3-T\zH]4QF;ϮZ꥗^*j{z]{z_}`:u 8z5a/QQQK,4޷o^.#<N'ۧ֍Lm ;+@R>ea?˙3YY  ۭsw\vwJv)]9+W5Cc{!zKj>}Yf-ZU#'ΝO篿eaÆeUNb{ݻ`0WY0I~QU5::b@S}4h`ƌqy<zoR*)SkÆ ۧ'cYYYw|mW+c fA0:7L\pNb'N7qInWl\;04H;P Nݙ33̾yj"pxQ7lذuVhF !ӟja{6- 8p… cL|Iv{ueݿ4W)@:`yįot yb`Lwj%Z~Һįδs(l8";t͈7cˣI dr8?'Nh28pq] Дuf=쳫Wްa7<~k13ϬZ*ෞy晚B'xo9rȰaÆ b6ols'5UV]vm߾}޼y5YSRMy晕+W 0o^XXxoZUžxzjժU20hР_|o߾Uق /on]^RRGDDlڴG9ydRRǏ_p1cN:gϞɓ'< .馛6n/?SbWhFV51޵k#O?ׯkֻw*eĵ4 ):2$ :F_K pA9i@Չ淹  LFf8.$ HA ji9 $IÇOJJڵkWnTU56򋎎}#Ʀa5L1]3"AVU5::bdZ|T8Q W$ƚL&K6^ь}7>Sfn_t)"""88tmۖ15p[n?1c-Z.]r8Xukv}әkZ*VUAWUjsFp4_kی$Ͻz$X={EӧO5n_/SCaaaaaaEVn/V355c,++d2>}ڈy:u8S *ӗ[T4 :JQܛ3zzGAY VE[WӨjX J;矟?QǏ?7k8 IDATFWW[Ie萑:o    (*    (*    (*    (*    (*    +*:6 ȵ'm;iQ!A ¯1:)P@u1 r@8&2E!#%AAW.R"p pgxqA58p‰JgRP박 `ƾA]o zSJ|0Aks!@'zl/^> AFk:"TN#0lQ(JD H B[M4O^*!9 7fZG86QTiIxRpc~Ͽ Y)! :ppvpi5jydA&LEQA)$} Bs9DZeo٢l+\9 H8r+MA+@IIaln\NW玝_:knJDDtl+\1>{(sW_*:p-Rm>kb"Kg*b1c? dYn;*X"+o>wtEA&T^|}KKaG v@}& h.YGKJl!4kd,zqi{t\ϱMS'M/f/ =rIz?ZĀyEY|}?##Cg͘2hHܳR#&*j̩72!AY?]vll9p#tSU~vSUQT)I{wڹ:M3Is>\dDqɲ5_zcӺ!ArЃ?G].MuW[L7 =Ƣ"8!Gvݓ)>d`ni@wN0`ֶ~MkXL^QqBg;k^H$ˋ]}w\NwIA}o~sb>TuϿ~9|\(\02ķJi\\\vvvC?/˲f>IuҬKК$u?Dҳ&LSTb:߱_W8eֽ*j6nO_-z5K^8lH?ݻTlPSgNvΧf<)"Po$(qBC[I)`8'`̖;6u|Ju""*<ОMwLpCN C\mltd]|5y.ke{hn/>·͚n :/LUk7^ !> ٕ7 : 1^4:=d6c;7fر32VYZCOI/Q pBl21s"I $Ɉ2#FޗqF5-rnʾ*]]N|WK"q'ֿzΥDNQF^f|)Q/L.ׇ.0rP]ng_#dv J̩:vly=~{vG wV_n\:xAa/$r1"z2EPz\SgO:9}3'N"d\W[Lf&EQn: "8~KUt dAm&-GՄ ,N7R{Ϗ>.ܻ=qGN_.}Ͳ>7\^ zƏTrb[Z ԹmNtٳ&{KB >/ɹP-LREFFl7;QtطoXF*639gso/5!b<%&um1+ѽ+W]ԩپ'%5?gyy9\SӴڷoA&zT/^ \/?6^=\A4]ޥsPPT>s޶u_+#+WSJ32;uhԡcNc+A!f\LlWQlh(7pa!1wv;t)/++ l6nW"<6*1VPXUH-N4^p{TX#\?_1p8uZeRJsTTB6TCBBE%%%% r/{Cjqb nvˊlaa'-ʊviBTlT̹(|̓ g=n0f 2 Vޣ>7/R^` d[IӦޞݰUWuA ew˚j NgU0WEWAzy`BVVVc,*,,qqx sU~6=l 4|r/(רnk2A8dgDDGD Ѻ oΞ;XQHIM;o x#du:&s|ܪ BNN0^!!!Qe!f(II)e Ad;i5%=B''XF6ļ<ϰVvB1E?D~U1#igvQL߬blnսOy~Hoڢ3~𡠩oAϾBBrss dL3*J2rU'9%YZ|5j:z/gR~ٸ9&$'3`.+/?/1|zfcrq|(tԥ&WLT'M-o^ٓD!tx_$]!9a@vkBX5?= N `>)dw*v]oѧgwdzl_KJ] p B([()4&p8i|u13FY~v:s&k2 PL[z:T)5@Vhcr.]QJ]Nׅ z/O>{&)%9//O4M ]i5T簗%q̸零Ⱦ'_ܜ0.-#g˖@gbd_.r:<:mʝN9x{~hʵЪ<Y$!ra#[wzoLϺr~WS?qil@2m(1fɗ'~=wȉ zu7^m)-=6%R*PJ)|jybyMӚWWexiCjt F`п>S'ݚJQ$v=_nw; V|[˿tC?y4M(I|jf=oO>rͦe+/atJ$ʪFGn^U(!_<;zv?r7nܤY_}CU}Asm+-ݸu'ƿkp)u#3;&k6vEONک ^]7o-Jy,6 l NztcQط>hXp \:'\vÅE%"ui=s"Cb<P"ksfNu-=wE9}|w߯<Ѣ"[P=}IAs]Q*&z)7Ūu>WTTb2)1cG:|ppځXUut=s"#B}b1 $4Q3no D`˖޵@;gټnc.m\n\ϋgZ}WtEҩ&arcg8shQUB FGt &"F鵄x9ZjLE%U sz1M<IcӖ@Q3<5P8AZz zym1]/(.˫L. VB6t4]OJN ~B!ncPF\BYh=o@Z@תɣ!k(2dAVR_}T(ն|!٬D}L:S=pAkͷszz= (Zx \]1]oJ1=AkYU AlOAXPt!ܤZT8=nAZzx-uYq=A9|> ȵ@"!s*i! -YiFQAAAEAAQAAPTAEAAQAAPTAEAAQAAPTAAAQAAPTAAAQAAPTAAEAAPT Bsii&4(u=''')))33p.,,sn(--O UK;خ]A0uUVFZu;$IuC=D! }#I(͢m -\TTU]tX,;w lyyyK.2eJDDDxb>ӕ Qu]o.E1hFICi"ºuTU0axDC O4mȐ!ѪGɓAAAf2&O<~;ŋ=zHHH`@aaҥKSSS9rjΙ3ǐ1A;vȑN6 rni9UU j\Qcv!19u}ԨQ˗/_|c70>O:z(clRRR?iqXA |0`aDQ4dLӴ={j 4.CU';Gm ]w!!!)C wN)MMM?jUn㝨oޘё$IEQjTAC"sP4M IelιUBHIIIŬ/111l6cOs]tf'R &#(Ȳ,cp\9]^$ MbLZ]{Lת: lܸ1##l6w!((HeB޽{?!ӥK0HdYSJ9w\#}d2ժ:gϞ̌:uo"{nO\4ќJ!NQٹsgbbҥK7nW^P"%55U/u}Ĉ-*ׯ߼y3^KAfgܸqƍEW^x-A>f! N# (*    (*             (*    (*    bA} cNH3 4;+˂ rA80 @󺉊 %M :#i ״0*YY="Pun@t` Aچ\1h  -[3Y$ H UQTADECiq^uN)AnBhΛP 1 8+_ڼ)E%``k36ٓapeΙmؿ @k;HHSz=*BP۱NӵL&YsU(dUe_kL 6\_bhhDY5[Bb547˴MtD)p̡UvVNO0xjFVJJpiuDPE0*BUBpn|j{$4od׿c!h|R@'siPMU%Sv"͹+x.A-YzB&](V$]?G*ͩC3f<; 9U 7ű&_x׳Kb\_sλw Tغc៎?a,@ƭ;_|Ȱ'QTR!խ2fPz/N87SBiҮCHp8noFx ~C=r0P֊ 3ٕ,4j2$@WW<ƏYmj2&&&f{4Sӧ8kDs}׼JK3뾃!k ?pB%[THs/xM_yBlB 0 D*cG%( :sGFdخMrj|yNok9'UιU{S?{T[$Yק7-*,䴿/vŒ1{fؿ.ܱbM-SCUs#ǎ|x[=zh;ajP FGpx$p#MW4Cz =N΄~_ E7f+}`rR[F $SgA![vY,/*dރA7tdV:oq缊~x>YTh 0OV吅\$LP \`Dkئk Qщ'I.+/>8hC?nݪ@ 0xM *CՎ(%>{44>`MG!DZ?FMwZU&AV6gjHSCa_Ri|.ʫ@y-سG?~3uW j` AW~%M oYn+'Ws,p:X\ 񵭷̂Q۞lIQEgeu]#@tw5{yys+5IZ|8ޙ(~Th\V6 1DӒV>&Mw))0,}x ״{X9x ڶiS"SGVe@psBc胅rr&~یiF?uG{=",|nxPyT(.I۝a!# 6}*$iѢo / ;B9ҥ c醁~t g"GBN{}N9}|󬜜ɓY̦SgIT|tà:fybr[ݺO/˂'j1CR+>b+w)LUG"p ^D8ޭ+8^WcD'.]ȱ]dV<'Qʸw˒U:aO7I[sqG[ҭvr&M|̬YSAj}Sp#@Q|mv]dr3srAmϰ¤qw풜rY4qB>wGkX86DeŊջ/9"Cg͘rrCKut IF qh*kNQ +rmJ#uTd@ K(ɦvԾ{lzl)wPTc(}Úy}Ӻ%#),JYRXi뎎ts?\tRkt +zͦ;fN2B7GEG!PPt@Hz?ILm?co(;>Xdst&V~Mˮ$'nLe+,]\+O}E$E72iĉ@CNUc n׋+ƍecZty"Ʉmیi:qҸmR+l.oO|++C?GnMu]׉@W܋+Ǝ]M ::I9zgPL`qÇ~H3ICdӿ҇ YV9(~m͊oÃoNLڼmϙsIuPղ3ϾJ<tV~H<1g%; ̲l?pc̚t 9=z ,'sݻvINNDQ$Y$msmX|Ywιx\$I쁹wg儖aF[VYE¿=bl6_dS")c"FʊbYΝ;OpN,fVk.IɌfos~XHbyjzwloXoķ_4u\b2exƘY9ah1 [gQNʙGNb}M)}{㏔ S(,)|s}ڏ?x=U©3!0k-q/>z}ťTpzCT÷?: @ϧ͸~c߱fW <|ۜb5[{oE>_ d.Y dyS@dE9rgntwJWj1G}k$K➬9s~Y\Q=qE~ѭsN~ӵ˾ c|p }幭~>7M{p3l3"bn۷m:.>.>u:.m67taU ?7ЩS'8ݮ_ϞNMONIK C7S1QD6eC DQ3zG˝v¡CVV7,1%cǎee7K]vwX,imƟ>w>Eе|m[n߲J01X;1Qnjro.6a}oMLظ~˄8(ʂd̞>7^8kjm wW^{e@@@麮 ԗxV̿dbpm jK~ C۸!#?yѿ\etU6v g-cˮG 9R퍗xW[ҜSdQ\|5% LtOӳ62$,j3 k8+N\w~Ecȡ?O(--}a7LPf2gdE$ٱmUs砺|ݾ~P#띔MS}@ٗm+`/-;Ke_~ԛrW̠kt$f&Ma"od|l$ޗc+-}Wn+sQKoO]WK71rky@*G6߄ƅ r}G_~έCoL>'"Is=RFQ enج]sU~X1vߏLPzرa o0ڳ0tv=,AƂ+qOwq?|uJI D1u\@FEY,}0Fh- kӶW,$m6(/=!iin۰1Q-Z$=xb hrF93#U)4߯!a-9tnCTD' ݦi~BBfNHZfw9'޹,B^~afqm׳ } IDAT{ּ {ʾgd={*l*.偦.^ڵo *`OhC/]2.pݻ1o;Z`tP}_W 8w̜>_v> )i9s dfp7nYhZN !ɞluU`ϝs/.[vKSӴu{`sgٹ{٤K.7D6p#p@fd_ض}m#o ?Xm5'MAm?4룺ݢ$t߶PzۨP\Q[|ͦ;=c}""Ukv9xPBpu8%Zǯrr/IZ*)iZGcA|\.,Ii%`k_.* 7Ph\Q#Cc"C?(--ef8v_|ӽss.p1QPKϷIRx)/+++`iw2J%^J8XͦHn﷈ͷ)@8FE0`w1NVc6{MMw$IԾ͊5&}! DiFZ͖r34Y8/,,sup#ÃypҕOv5RN8)k  g㫨>܃x$X _թ"e*RvK4Q1*%Bv?ãH ~m?LU}A*}ye׹OۼujkӪEL_2l6 h%ft cw"pADb~Οb@A`]@ <^`:ϐ%$&QG6խVFm~wpʴϿ%+9;1O)_cbbD]~x*/&$&TXWPZy\oX=2C3wާt*n vYAtyy @;wWIH9?QQ}Үݷ?}]z5n\35]tu} ׭߬jMʙ !n()@dQ ? 95-;;;55EIMM=}qY >_e'Z ZR D51<99O8TJrb\UߢǶlu67(wP@Z5x-a r8iU&!'&%'UI 3!93aVǣKQN  "aԪLZVR$91_6FXyE; ~h7mUUu#z2tYfTco(c%ukGϳ5nغn&raسOS1d64{1ニ  ffOVܩ,_fƬNݳ?sXc8]}W^O&kRTM۱~}~AOm{_ʎ\azQ` B^Aw'&&/#b*[LJBef^H.^1?4/{l w?Xl#n7oD) "XXE rsRrBDk*9өWϮ^)T~V{j u*C ׮ԶMW#4q>_/U߸%?t`hKAݻ]&,@tAw$xpFz9Qܯj7l.+\5,ZJz=Q`RHƨE.# J1}*G$0bb( ~nL:k@I?[hjs=CCz|P0}4WM8a6USopzH4G%YN%&&y"1-IoDlP㲣Yj׹6vV,ܖ 㹒D FgLa{18D/iw8y,N VFvյk=ePc?1@ ݾs_^Λ 0yEspZc=0t! +,"xc8$Y^zMۉdpoEŞvm4 + GU(]ztS#`!`$ 2I*ȻƖnOO79ѰoX^~K;tuѵvԘqO 1nD^E&[eiwuXo蚦-[4ڬ>l(f $+7 D5mvn_..uMմWlٺ~:[63=]ٻ?9AVesնd/E뫈ɧfY`ۧ] MY,VPUWC<8ծYfNdcGz<?X+qs˹VgqvK:y*H_NؽѬK,l.o-%E9Ev>}O_{z{K]e ,b3F&"fkww<~$&^׽%KV|7iGcc'rVo͢l"Slsuۮv&ۯ{u6pdشmM9v};C!I:TF9Xu&3o^gQoF{}9sٰeam>urw=m\G)jNaQZ^]jn3o^l߻~1fz8au0uv~0 $`ye"ղE߯j(KCo_!?=:vw,3{-US۷KC Ib}zP>nWqjU4U}c70m jHE`3?o !rQq\ cәta2c )Bl ũp#T6h+Eo׶I<8gT]cŢ+/>C@i0Fw4sa::wpnhfYp+觙szۯ>hҨ;w羱aȌ)>=] э>}{1oFt]@%$I:3'};;wX]7$ =:EԬL HHٸfϼ0kf͛lsfUUג6[.]#F/|-%Ivڵ7o?|(H2 ɿŀ;KV|{ -[G,Qar+.?No2*G`>o͜ȧk6Z=a_?6nǞs\[,, h]EթU;3H խU;saQTzjտ>t-S;5m\?8oGp8l ׵us]jU6n0r]UmNJ -]^VB#YaCĀp$VkެIk>NimZ=1t9mֿ>Fͱw?[nSaQͪ4i`aU#ݸ{ؠ)?qy޷_?P=Uw'LzFDѵFX?iO7m+,v8m|;mV'Tth~CJWr5Z\Gq@};N6kæE%1NǵZ3bݪVcS"$pڔ/>y۽@QqnIMڻWݻ EP:_{ۚ@֩5恑k4kRs€!Rh6ԣ[jR$PT69*Uϔ{RGc'yzح`0UjU+c?5!h֤aժy?t~a\#>>6p"A;λwI'r_։?M"O~:?/9 zu<]*oL;}/RVT_$`cLNy7( yQ@1 C {O^';@0U 6 oR1랆mO p4D`@hqLQVlBŌDQ/p `%?UnQs{` )~@}?o>:ʼnGWٟgl'Dy+2M 9 d}ģ0l D,!`H~xʼŒ &I5RH뺦i"e-٠A˹þoF\E,SI"08UqXev,KgƓ#r)w ;]r}vl "X(ws!>ϋ<[sx\9*g;yO$a1nH"!;@v_Q邼Y٫&%%]Ud|nߔq8c =|5fW7ZT/+4MFvG39UGy$'6-rj$+ȿ,B [^z<eGFcYΧ(@pe;l"_n#G]܁=cGcn!k > p'"+ˋ & F$7? .W$5d?lfgg%J33].W7/@7)H_xuEʟX "gfĖIpz*cHRɻn'_(GK+BTJԭEu]4@(_cǮ(E.y!{R( $&3(D1vQ׫҃mp\8vJ݌odg_Lb KEpX0X9gLI4k_2xqi.}I߻S#rψWX@ YyEJ9@DģMCT9lgrŲ呢"N[hAa"J j&F KKG %σkJ3"+G_EܿbM[YaMkucn@Zڳ *>TÈm$ C%ˆ>#\/{*Ȃ"揯x<g揕I0/vD򥫞˧ -fh~GimBȇbV Gw+{(I+F@ f V%lY_1X?zLn._Lq%F{ծ #rM xھmw=Zw Vh#ˆm{:ֺ3g"\!ITF+1bo{z-a؅꺋ի׿7~ƿ_XDs)O?M;;x$Y 89y`Ѣ#eB&?Qnw"C4$٧5͇+bDTQ"tMA.]l]MQ+R؞xvCZCā.Aۓ8srNS(ݒ]n70PNdP, aep¥< Ia{#+ܜ 5 KE 2(6_rB.Ĕn/^@#&NzgL&a߂$޳@ $6gEKV7jT70 x6n֠Ao'Le ww1ER؆[ 7n -[hATa|WXbuIi5-[!D[pɊF#6o߰nl|w&Zy1&Il7E!\xTxYGm+T\1K=NSZ&cx# X:&]M$_>{A:5PWp&I~M9^+ _yfCn/jnv"ϟ9mu{q(Yl{=p[^}> ,5rxFFe+dU)UϛWye+~tkw|%|;fm^&nֽ[ǎXQzq^}(+\h$e*hk"VSaw52أˤ+dZU㔰W&]g- ]?Ng~8AaH/[txu]gML!⛉}^=#EK?[ܽv"yL9jD/C}2^|鿺ϞOH m[+$4e[ L|MÅ E+%vILJN"ԩUC7tI C0ڵi,s"0kI ?A-ՠ^M\ۢS#|,xOf>_EnE-vao ¸;o.JW(d\[[t1xFqcrfh&i´ 2^0 Ðps)$ ۻAú 4C~c^ҮeYsblq m iZ8HT֗^TئRŎ9S"iZ ,:E 3$ʖ>xY=o[@9/gBNnQ˸@ \iRzdw؀"'2+Q[J%76V^’ѨL#AFyeilgS sUqqcǏ+ϣ L]O@-J Mڝ +a11qR0dp8J804r (T% 1W Gb<` 2W,WY v;sȞ2S IwSF 0?V%31 ,sQ ŗݔ.xSr2ݶJf5 k<7 @ȈSH:0fs2XMY$ɐMTJSa\K .v^#/~rV^K aM8p@p"!*@ "!*@ Q@ Q@ @@ M^ IDAT@ DE BT@ DE BT@ "!*@ "@ Q@ Q\0Ht@ "0`σ|YF[c8 d"x-[X,Ν;!5@ DˉڹsS<bR5\r]MfΜӷo˨+a8p &&K.BT $Iw^~$I[,ƍٳ@D[s~!hڴiyyya\FS0"+@ʅQ߿aI:vجY3bѣGW^}!Iw^}P* Xr%h"(*{v:RaB?K4m͚5DԷo-Z iڵk2ۗs:59W^ժU+pBQRX*{nXڵkժUmڴٱcǎ;9GģGj֨Q#M8P\\,IRzWnԩSs4zv]ӴLXzD$IYYYlzUVMN(,yfDԤI[fee18$mܸWZeF$IڳgO:uL]d$I… 9.[,66qƚWϟ?iclÆ iii]w ,_Yfڹs$IxlݺO>j ̙3$؎;jԨѿH !*sA1 (..v8Y,e˖m۶iӦ$eee_>++k۷UwmӉhԨQv󄌱={65kLUVڵK`Kcfn^i[n=rȊ+FeJ"Μ9nݺupɒ%9996lܹ ?-"Lu1HQv#jԵk:ƍݛssN"R%&&t9ΘӶ(3Kj*DLKKk׮nWF&-[x9wqGm6[lll޽E4-??< ==$55SNkeYO@ r L9:7Xf͚yuԉGǏ_,/Qe^z~6ѸqcEQ~|ڵcbb5jժ F7[n om\\yƥV3ƂLS T^4''f͚+O$z$Gt8uMOO?}˩f 04M墢`d@EAQ3ii-LM:V4Mۍv111yQ53,[BfXHydnn.3hX,x={줤f͚zche ---+++77~hР(Ǐg 0g;pS&O\zuUU;f*&K r-{ٽ{ǃC;tP~^!Co߾g=zHNN׺p ,8uTvvv:uTbbAI[mf^UVnݜNgZiAl^|y^^^QQխ[o1cF~~'ׯodL:&n[UUYcccu]/3eyEEECMHH\.YNgT$ɬ8i #3J$sYneL0cL$"*+0pFe3i<4VEm@ Kce8kЦ=QQ00 SLKd!\~MIE;GMu]QSHwhf%LQ fj]ʀ'@ (e+{DTjUs?+Dr@ Dp_@} (*ba/vD WI @ BT@pq_G=zh@ ԭ[nݺW>|xʕ^ egϞ[T.zYXK@ p/WhJ@ F !!*@ "!*@ Q@ Q@ @@ @ DE BT@ DE BT@ \bn"$Q ~.`;D|E W/YT]"@3EPt@ AC  b#(o@ .BH Cp^Ƌ|I"Lș$m # 0SE%(!9# %Fsv~-.<_@;2iIB~M"P/>. C"~\@ \jenF* `3 %D˖9TFH ] )DE .|g"sXU3MBT#0H-cUQ5ޚg 1@ Ę7+ ^r~/@܄\6 }&PpE+[It`t QCe7@uM%F*:Mg;.BTpYŤB@ "Y'߰L QHH +`AаƟXϊfze911 8,2v=n!*vZp.s7M Z󩾌I4д(ӗLTF':}6H׉xO)!xU}ʴ`GHp*Z^}Y 5J}W0 ?''2O.`P`"ԣv  D` X^ϛx{:tַ#n>t~{P <\]dhTj5 :gD"&G_ŢX8؜Jg >~7:m")(o UP&8V( R_[$uJs*勵?ӹS{X0"+璄c?sQއgr`;TE)t* 2逐!񳺰 %YV&IÑ0HlСmkE\e `Fb6БghX:~/p΍41˖rM[ kUOi}M B8Hufo߶_MlXa] P,OA! dD1kIT>lw؃Æф2%+/Yռir?xgf__fzN:vl_Zܭv._'oƃ[9K| u"Y-KY* /xtX$L"4BF2ܼa9h^1H >]AL?fX+W\/< 8p` x]E;{W7#]ArsofS.cDN`y؀bDθ4Shsv(YpV҈EE9y.V(fKE?{U+T<7(^/[@Q|jCyE9 /]%[Bgn߳zИQPZ `O>iƄISvrySU{ĐZűmgki:zU_ 0@Ni檵\nO{ts?<.,4y vh{!Z,, /,)#*Ukv_z;tY?/m֜Sc|~^)$:HXNijҸa4> -}{}Մy1vkiTig^&&ѥ}@U[T\R?xw4x͠`n@~D)fmشl6m[ ng~ɦ̘1K]Urk bjlӬ5k6=ժ&y6;}GxԉOٽ卋svh6|`8':upZO۴num[_וÇ&" V&cWX(ʥkjP~C=Eچ~]4 |͏5jM[VdzOwҗMˇǧI$EqJ~g_xjO̘@d(Pd6oMւF))-5t\Qd"Yڢy✖mҦG>8Ϋjs2cl}n ͜"UIa+oL2}VS'dђS$[1n<.S&ЁnF6-V%1tfrq+l_*3>aGPT2]RusCBZmѼqNk*l4y3/d5gp.+ "&9gnT@H6nyc}>0t0$?z~7flۓmZdQ's%fUlnO_+(qe< {sמ}?-&-\/f(F( HݢLV4 yGǟ_  &z9쉨aÆ.dI ^DB[I|Htx,?u7jju|ݔ분,%aEVEg]?MzԽ&|?ee~4 f_~)>Wd@лtjopcb-ષW322,WvΊr %u:79_'7-vm[wK#4[5oܮMAw=p$dƁ  9Bwv5i\0wql{GX۶:uxJ^~ĸgg[2ѧ\ SُYF!9))9) X RSv8W-h͊jtCyɒU3.=K{Сh^o= l{G?.˖n խڽKi]f]8Q݁Ǟ~n>7x<TV^u7toOa1jc}ڵS\.[FI_?s-3vE%'&X.'_:V4]kްdV=}􋯞}j\XjyMsM;HX[+cHKyS>]N7To[7/O`}90TOVCGLaӺ3ݥ_<菗n6dUV4Xҏ{<'>^ASy.6k0Mp&>AՒs$H=y7^}"Iƿnrm}T>X06xQ/o9ʰARe K4]σ<t3O>u/\+]hRGR/eߗ4mSuUy?d ׳GW  YLbC hРn(AW MƑ +&M5o(1 _ۓÇ Q::%*7 YQ/w BQ>Pջz*{ ÿDN$jִQE8TbYqI c?_`Z:_!&Xܿ_oU6o 06oR麶UkT4lVY Ōw! @\?.y;׾S74t#d?0t`lμVNŤbʀTM۸u;,x Evj4$׫ǜ렪ؼlSUkT-cVy@^ q "pcON' @0|%~TuH3 Ib2͛5D~qVp:A9;}: 92_P$ z9!fd "2D劯Rp2aǠ+03w⑫K=LsO@fME6W9 œxylFp =0rݛw̙s&L~>wѲի׭]iANdPVw , 2$()uɒ|*4ht2;ԩ AŸʘG6":XǏ͚"е _9%`>!س4',˺a4n/Thp__4xHڣk޽"Kr(@ .fW(GqJxUD9CP\n8u*7++ "fu &)W :ֲB@((,0]+$2o<0sxvs=* 11zf=?3/|yNǰu$Ax]Uvy`Q+].8/R TXX1e7?n9v=_X PY1ov>sԙstM4_{QÌL^OM?r| nLaw+UO/*d1pE?s@o?~_k x3<^ՌIDҡkzIDATǜӅ`RBB0^#Cf{07L PZL;5x`2?K MfРg M/ 6@G4$F^s n'HJ 8u:OBLLL d D7 9| "z 7eP^t#SY׭ݴus.\dE֬R%!!"q W4_jjTOHLHe0.M;TpONNB9IUccc㒓%jAQ+t[6wy(u9q6uj4!T ƍ=N8ՒIIɉIh^zJ ;vr9ߒ'8@\U#wQ))IP= Y@eV󧤦nCпn?SXm`jZ-)qЭƿ_q(@V/P\\qΓ$ŏRNql%hs>&QĤK+PT3E1rGݳX[RV!p>_/UUoܒsQ/Zbv=8N+*.*|X.*guk E#-7+-u(mݱ 0s"S910bc7u NE. I OYYD.%vmN2h@>ͷnӦp!1NУk2q("QMk$eʌAJ\t,Ā[g~a? 8Ӯ c?z4 $.+Iq*'90b"gR}au\70GKd|DB]g1/KPup>97s稇Ƃ:tai};Kk81<8m1=2C.K#D\#bKA O!;}pO "Y tx{ }ZlbZ>\@[ʶ^_V,͚4On؝ƌ3%g Kw{A3!.Vlݶ];ENgا@Y3D^A&[wĝp״Ts0Ϝ{h쯙XΘ,:u;o&MVK6lǎf@jIy $}dENkd)WԺ^ӏ|Еu%&&VK t K܈4E}`FN#R@P _~rvW<~$/حcK.<}9]em~Yh։Mv1zڬ^糏AcUc}ۖ{z{ |,p VTD6._y{aIiEOV-d N &|nW?~wmq,+[?x?vh _|v=лϠEWgI?ɗH%Kshz&0cOس忬wȞYd?|G>w-n fܴm=#L9|1 aixPVBڵR-V[w|w;ؼu=ʘG$%Btuo~y9wp~辑xЃqv Y 1T &E)ghA{fr|# 9A@2Jl xMys 0Rڵm5k7C=j"OsHԤQ?~3jsX%&Y'oy=v"C_شe۱ϾOD zjn9uL lc4}=s.w5bcZ${%,\l_FC3i'~aEg͝2}apD(VЪ$i׶jԮ]/82g4]GEʋφ7tyyV̞EVf͔YSY;@M֛1{Gݱ׻k,1YV$v]E`֍FF.g xN~i*"6n+=^T\ߟ`錟p@Y /w 0?պd*sםmGQ FGȝ7hp% %y99[4ktSa%4Blݹ{M*PR웉q]Vi׮_TkJZ~NF=[4iZ 4g5 6i#G _vA$bذy{Qqi~mnUk0(֟~yuRWbbBnoxˆ7mޞZڝw /D|pn۔6HNVuҍrUGI3Ʊgv)ܞk}}{W yW[n9T(e%=qpˀ'1UqҿΘ2Wq?7dJ ׯF2;'뺻fCΜX,69jv۶[mݶcmw+?In- =kLی={S3n-<8\PRHuByb'?_֯> +p-9pze(_7{Qf+oG7x+ 2W_e~.wRgY=%]׭V7B.oiY ?ӿIukI/oK_я__]ӾIo:-7s"=L!;}7% ?gNMpޤO)D=Z#'4zN@/B@)v"Eh+xzPj,\Sfm T T P**B@@ T T PΝEܐցaD %z5]brp۵,%TpF^w'[n߾Cv²T*555u-sJy^<_\\HjRryyn꧔RTjii\d{{{uuU)u󳳳Cmn<߿OSX__m[J\ԊCdfao? zKp\.,..en\n4qddqF\Y7^몰P(DLr,j\ uA Ou,+e2X,&t:fsccu])eZ^^^ZZ"WNRlnnE)r(`@ಛ{f\2;;[,MӤIx<Ţ}nnΝ;bL6][[[__7 qr\(ȕ͠jreJ%P7E<(!z0qm|>1MsuuUJf[>1NvvvyJ8"nn>g2l6;]C۶@Rap%(P9H)JR .vbwi=^E*M f0 5Rj~~^l6)_)RV'BB'1G7*l4:Z&''#ނSj4tMZV,8}?GBWPEz`?*8N]SSSB!qP NG?^*~}J?. \ᓧ#Yv#δD)쯐 Bʊ^ T0MS?捾O(‚;1 cwwѣGkkkEOL&[֭V+bض{*SSSa/?dhd0P9)-4oO/cא'&&RRF!sCZl5֪(ܹ~*}=yln![zA{Q\nTKy/7S՘k6FZl2VRݾP Z?,`Eq),kqqѶRr>j}jV9s(L&333gJozh4l g49ZMQoYҒ^ RmFb'Q6-0tnѺ$J &E.,D @ T PP*BB@ T VfIENDB`ntfy-2.11.0/docs/static/img/android-screenshot-tasker-event-edit.png000066400000000000000000002244261462047176100254220ustar00rootroot00000000000000PNG  IHDR? pHYs  tIME  ~\e IDATx}w]EΜsnR7=BH- ]:|)AJQ(" B zMB-̼?νwݽ(`<2gΜyۼC <|-xTBQm4R73-'] rC)kˀ&Zo+H[WW$+fK f`RQ~(T%=՝X@mw; -2>R&t0Cf\fؐd-TLhak`C,q%5]TZMML ɾ4b/Yt 5ApG6]w(R$BI)IwJᬞS\sL޾KD[_{WEsyC/h{oAn#&3c?|+IE2+2r?"2?H̆&&+_hG,mKAU^5pmA.ۀt5 4 )u'Vm;$+@C IE@pL)d1ppl675^dv`Nf-smRVEs#l䈴{gkI jS~?Sdh""# TI5CӋQ sHXgh:j|4`+P<=$AX7B=R!fE3. AW^;bv?ڨ_S;oN@8ZtYy}`GW~]6qyG̎ ѪoܯB"9DԮ3hb~ %+6Xv0|ncO NAt1/e &Z8hXDRkFfbYIkw6Ӯd"cO,n4 [=ZVKM7ZV,lx#s1m.3W}7!Xgq6uW~t/ 38[9+_]{aW>LjAv7}',-f7|*Z[WgW29ZūO+ V $o, "ӌb:}4:G`1ܟ mlY}R&EGS.`([gi&@YRI"E>6lS; E}5AM䒹QGi2䛃XfiӜ8|FAnkYxC{aM22VxaE缠|+ƆxFihZA˿~k4 I+&4,** g5=_pOzG*_?dZ.9`R,-߃'D.y`f+fBֲf(d#l,*ݣh7thqX{M*P440jFF_Jl 0G!L1'ͬt<"f;dЈieg]yÚ/N4pj%A V$Jg?h[/,iֽ_cRT: f+zVW<.L?u0K&M,5qpVw) $2SNvT|ݧǾzͬ9ʧ(8Mh[VǏʏi5鍿XjpU1x} qLy)rDD>_vid%ͯEn;I~\?Hn"QRa3SߎFDYewN xefE|%lAqJt$ ]u[Zŷ.,–D.Ov;;N9X2K_)uqնXvO qG($]eBĐkP * ]Tlʷ+_~1a=sի RqIU>Z;Ҷ_")| ӎ/xc0B *f^^fJ=坹>NbHQm> @oOt%Qd2Kgz!J]DIƆ /oxȸ_p{K-{IKʎ @R~ s61Ӵ[ FOqH|>!cru@Rv5AZƐ f?/l0=W>}Kh6tzfY+ z*h] 8q6l$(S#rk%f,ذl0֔W5剟9[_*jq&5hۚC7[M3*͡ƕ[svl\pѠ y%[Ʀuf$#/YZpEruEkiѰ׸װj\k\k\k\k\e536̔&]Y`IfAh'nXAWgi@+'wm+?ʷ PAXs^(剛u-TAuZ uYct1勼@ zgYk-8{[~x܌%fgGԥ9cN/+ }% t(gIFQ$C9n3:nR $p/{#rƷ0yݏzU⟣m̼%x`(84ha[}V|@#28YlzRdf4 C;kJ5@0裃glyf.uX0 F ."V̊ZR+R⋔auXy~z :9mO866&fE )q XUq_b¨ܻK.^VNB7m\nu 5 hX׭t~o^G`+vD1ܧdk ۊ ,a[}:0|!/IatvYD3)\^vΟό2&mMwq**I113ً?4Q2%9$!v &SX H*:Ե~( 'LGwr p\SolUEdG uaT'>h K>0ʎK*ɡ>~ `f?3d0 ʚ+rIT=zSl{'^GCgttY~wIl[&(eQVھ|<:&ewP6㺀}CEX:nq/yKk.hvgl.ʽ&'䋷WXcуV:+`nŠxNdLP)&ystΧOKv1Yq|r7m%4"|P _~kD&f(S;Dߞ; v91doR@3Q 8 @g:,t؟??A%͉֘^`Tߊ-B>Nf*0͋ZW/t3[ k \گ~D~t4?4 *tl4nDd-eθr]޵qe[;nOmM/OC;,ye!D31#΅`%(K*/9[6g ^ib Tn^k2A9}:-K{T:=&ipLMc2z;ωNHZl–WA_H/|ώ*)ܑaM`"JX,Qsr\gv"ISY}jS1N(.}3p",FuМp4ool9c^:-3\&6QyI? "vznlFN.2+.6n *uuH$]4}1*w(Sb!LL>?׮u $ifF/" ]HBi+`I`! -d& 1rT):bg^a|I @V\i2 i\>jVt2Am\(Yq0ƭ[BR)[/" N[ çQ)L"gnmEb@P2G P1WA7{.7jo5زe?],R;$e "L3"i s3j[ I2tp?\U%V *G\r?_T;] ʬ8jcuW4כ'E#ZZaO4]N j|vY00r|Qg,O?l1 ػng/7|Rp! pdP? B3%k(~0k\h`j9@ai c1Hmx{ˆUm\;/^dWsD"D,4`w^P8={[>'P2}Eng)JBPm+@72.#(,U9QJm΁am4# `TPdF+^W GR;, `2SK.~P/Vd@  a0b%o[ !~#"[*T"i%I' ^&Z [۞Ef{mvڏd2e0+zCk){DnxdowLRXQB66>#%,'e;+Y-+9rJb{*ԗb6Vj@P'=lC:Koa}vÝ!FdKfUt+2f-{Mm!ٿzѠ0gi==ev◶5KwogG2ʼnm:d?|0PZJ*[6:H7X` Hнh墪Ϯ 7<;(@? l((Qz@vݏ"ZUQҍ ns0ڗ`!if.a_' NȔaM=s`rHg5ȶid-6<Ȩ}r_sw0B.7,[v{ wL]E۾DdKg;R@WHN6OD^;bL*+,tREF{٨KZ}=w?G{7/;-[+@ v[+鸯D~5N}QdΆ`.y=1yG?B]q jmt {2"6tP}{Lb˧h۲;֔W_gsb;ϴ BQ4{?]׍#WC*;v]-bHps2 (6&Xî1*P4{4JQwv7d? ;uFvQ,"LXY*6膿xycO ޏvo+`Ep~F[&2߰ o' :۾&d\ͮ{'7GsdS5^'W2! o?7(7()i? hP˞CR+Ju0Aj'$}w+I Tdy@]> h:T>6qiv@-*a9*ό!\`' 1(T96QknC,C;q<4|0Yz^)lbIJp)HGloۇG'H3%Q0xOg˗[pVPo^r}NZ#tbЬlPAu_mygݛ2D䋄$$5AfjvqM7do!DpuϾNs?uSwE"eɤ1Y6M)Բw?}N ?᧭c M[V/k'/:#h'٫EE0dm_Mn]MT]I/{_DeoYD1qv-K|:|zӵ)3 K> -k`Ѿ-@oYP/o3vb-mXXn5H O&u-իoݝ"ذ@'?}@d֍"VԼi3ws޲Rvri&X8DSZ+bF h 8r/4 G;\Iz:}`IR8w wq 8%.C@ |^݊Oi#i)1a#|NхOvvh{'[}%1wʕM&7<{^32Lβ毞|]B䖸%&*7hXV΢Z20z׬7ka9QFiF_MjFu$5oD8M *[?K֮I|/Vvkd|횕_ʽPzGOnq#fG[h?\B;2&+qԍ X>8 ^e8uFZ137!p`[z[B\'`G@+ٶ^dIO 0ٖ ˝gnWLKd=p0 8Dz/o`CU3Y >:-$J&UޟWүE3w,Ly݌\kZоˎŷ-_賄( ]?MκD+deŚ>ք-ݘ7 =b LP:(zP@NnEDW30b**hַŴhgjU2&hj݄Fᡟnod>}Dƚs%Ld(;1 V[6Ӥ 'FXKhC;'vKHׯx޵>v[b. buOh +P9qZIXY(md>eth_^X&C|SOoZ6/5H_8̎N zz7D0r57À`l`?Z͆ ?92YOwB۩lƀC|{J_ +]z"KK!Q*A2ָ͞c8a IS7FQH4:kߊ.y;Cf mLZ(TC$m_%Tu~$Dw]*!fPr[+ !99&IpT2o3َU|9%R\S<&$ݾ=Nn7 -L]+q F^W]· d>Gms.0#a`oׂ5B%sD^?n Bρ‰%Ts|bݚFUgS?M$e箘X!+h39!G.eq5Kp_ڥJ2g! )ؘp@0D4JB[H#cFiku|l-H" #X011>2i[i[vOaH'&Rd$ٕa n)Q:VSG&ӽkh0ߏHO`ŀDU(}GkNɤQ-f~VkzHWXtr,2v%EEA> 8M#oE]|9x;DwQh&ݚBn=OE)y-Ur_ݽ^d~nޙn \EL924u8z|!Fvxh|I;r=NBE权0v~תRZR$t/⤗븣'BDn ][ b>J?gC|Y:֓ۉ&yh8&{loFDڠ.{'˽(UILv^P5P;&qe\773Ӿ{hzQQl>{ڗ{bD6Nq2O+vd< |͚ۧźPۛnʨabN!.p׫d|5#4/S?dwy"kNed*; #rx-C~G7Ӧ⬕.8J{vL osz;2''uJ5zYA2!jGFvdAwj(#Ut=/מlz5U(:k']ʌQG s][L,; `jaD&De*̞ۡ2:?tI^܋N}2%4+&2띷[Rdd_>\얼;Lf{2{1r֤U۝9_;)M;W.6А߮w`:Gof,wUvJr_a= qVd찡{X囪Y*tzЀ@I p$<.#$m J"`W*_.#Ie$alWIOKpb0DWe{!1xpZIg82ID֦`$Gj>,'  >}*X9eу}{|[# 6jݒ<,[>%;vև3[˰'e"N?4w/hP&DN2+!bfF `hnL='D`p ;ǘ9En?&hʊ7/z4  4/hլLNFH#(0Uh%=&OϮ( @ h)S4evI1E&rIC9뤄d>3޲P@w O8?b&N%r{%Mo G}P͢G:`h&`ycTRF@,@1'LSI"e1ac7g+pms|󱧮$E#)"NKO޺ǯJ3>~qQWpfߣ $;fMCX+^'?d~ [2HFZG1Rb"j_u8~i2fʴ(>^8uo=>lUŎ JV^*8\;MafҁT`p+t)W㟿sk 'idG? EoᬻJ%H ,n_4Kv,aV3Y:1|8k@SOXZCRc[j \ 7]y1",lV,4tr*dV$K1,%k"+&V$)ey]RtU,: ʔ)2МB̼˶]TdsU%.!͢14'!tbhBJe Ox^Q,&H4V'V3`7]S\ٴY * |9LÿH  \è]e΂Y &Qcu4G MLĔ(q CBj)$nYl\-HCdmY%Sܬ]1R; !`aFPW-RƎ`Ы+Vj)`&7"Di}DDn#'X_@Cx%%&KwiTHUt^UvGPP=pqA"PpvmK ʷ(kH(_iZN;Qw Kŵvv{u hMpM$_) JU@J_~rQTJR@:~_*[J]:aݎS*S4HTt0uh:Dv,]e2u5qL:mKfAkvQ%k4˶*t#g>YD8~`'edTO` wN[d6i.3LƒIC5/x߆U%7zCm +Lл.W27=_ē;SdMI]E %xb=x2+Ư^ WL@{ãP%K [Wc;g-C i"n Jm2C[AOIBIKJKÝSd`'eɓZuP&*J#= fEQn')ADigG+"4a->FHA16qǵ^j]f<`r$ ^ |pān²MlDL- M "&PN/ .h\K ]UMvlѩpY: ӥv{(E;=| XdP ձ`I0G Ų9oaZ|^P|͇bG,1+lořo8g|kp8 =<80`m; JZz ܷA* `zy~5_iu I${ENsF+Q:|oXy鳀TL "[(fK6ӱeA`|B4h w\SP'(agaΉͤvRRX$Z\.ҼC5WXҲWC[~ɓ2o(c;RUa!Ӗz}5PGORv'^h/m К_*Qa;)8Jp r0؎ii_H21]旞}?R̯bԢwߌfz%_ "5p;u0qGGuvք_/FˁX5,yoӑ Bz9C))&鐙K;l:Rr`S$ 7ǔ!r=0*ඣ&˺5$(ԁ2ɒN~~eJ&]\xEo)7v7Zt`k<<Ed,4$:e8aGulӯݺ/9hN|IKؚ&*VbHb_ޞG}5yGzW]FpZ+Mpö/3~fvI39`3%c_V?8 6Vla^CW%W^ۿx01G7%2Dga' 9;"'oR/DH+3#;KM9 Dk wv+2Zt(ױ`%L2w􍴑PH&2{w&]w3xC|{k@KtR__ަ_)`YD׾(۴\Zr͇ݜ7)>G/Dv$lzw󽳀v;]7ekS[ `NDιO 127nwi#Gv!k2Dᐼ˷FˆkwZB :?1Mf5zIm/oWncpkO'6~D؊1Gg3u lBKkqMۊ׭-DЦdeIl/|O[)}5+>e/i{(<9{t=6a$_wz&{"sTb+Prbt+UP]W ܻSցKgI,-g߬fO3UQJsedT%(EVH ΧřF3yA IDAT~0TP$B"ݏ8¼C~mWg$~KPd}g UMyNkP,*?Zlg+f^y_G K+Hk{R?=+>n%Ɇ<a@1ϓUmο5(&?{o sl pTC:^ -x2l?⻌䧞HՂ $rɘp ۔V=uT nBC_iE+RSXlmb? 82_>y/qE)ox$`tȕua3Yk\JE/FNò{)@_N5oHcR!9.\v.DfVBjޥ s `| =? .^9Zby$TK$BK U U1vm 4^C8}Ne#WO ,кy P ;^#E:[Ael9>I5yVuXm,OfϸbVㆽ.sbotDr}bUtp4JZwiGZYm'^WD_;C c0eXȺ@-5FW>" T )6y;@#oſ*NT_˫ܿ( _8B#- .X+e<wVㆿ\$%&Q#hM"|z sv;u3| *j>,8j-W*5sLxZ,z:\͏'VN\pT K(Bq:A&Z ĩTݪ2%AK(g{g9@5ꀩ!m'*H%J?EsKBތ}K_tBH\B\`j7> j2AĉwPPӓ; q"G~k-xE%ғb[;-02ljz$9o՞h9 7ΌlJ'<|P"{2bRWbaI#H@:6 _?3Jn-Xw' ȍ̟rՎP9ĴPJ[񝆂-Ԟ͹N._y!Gq OfͺSRFD%R؇֛%9Ƅr6֪D+ʏ:{ҞH##N s&  =S !G‘λo5fw$&#&,Hщbr;;BFEnSNI%<*c`4(iF=!lNHk?o߿| l7-@x4O^(4<:"yp5mxl5,[E(p@PERJFеcH0g}djBXRGBs(&DV~<5GY0kgBAav x-dɔu.ԣa4sKJ?̍Kl(TKX^;9)~ `n5\IdwqTU UN=YL $ž6ndkݏ.ǒm*Jr5T<@ǶЀXbOh U=" ) EIx ֆRrM\@L$ W;ԠN9;U<# pXuFR|UXE(ٻPhnR,↡Ħ+@0 !'ŢK ͝Ɍ{!TdM,D-9iv: p@E Nb _EрF4nO@%۲ 0 =8t7jg4!PБ6DiQ0P'yP`I%T+M:1r&j)`1T08Dաb(&݇6W,d"HF8$yTy{ T{B3ȗ,r|Eܙ*q3F^ _6QtdF^(DUuds'EcZS4\ͺl_iAoRyy?} CPbtfB'vg P!kB!`sO˗iwAp5&n0'ЖW Y@R!D€B\y0x?mPr;oQɳΑ7 ϳXے;"vf'42O& fnZj)A5sZv@nf,3Qb:-<5抢_{0Ѩk"XI{l0Ӓz{/gQ%BIĿu ס.FeUTby{RT!0"&j*-w5Xm?PsXƷtu|Y )u ta (f%%*9&uX|d(8AVl{9G0+xw:8: Q5Go0Tl:%("c gs5 dՏirCkN7X_v~z)6w^&bp76p YcbrCkQ1"檘Frw/wDgZWJ(3!CkpX`{H{Z\βEe#ADRHQ9c"NiWtAJ xRxOll( tD =5@v#pNTոy7:ޜf oϲ3)BĶ5lKYxbuΏoUW< $RtP ΃@ޣU/l8ӷK;D?}0m`CrPc|G7w.!F0֪7s7 6ߎ>0~w~7ѰVy?4fv[BsЋ_5' u_@W0+x\ ~w+ Jv"\xgQ+d ߡ-. )(F%B A2{J{R\ɟ#1Df) 2 tF\"K8#`ak#2WJL1=yޕt5tpnڍ;3c(8! CyHuu!d3 S֋L3iҍz"bCL&l!xnAQLQRS2wؘhD'I@ s*;yG YZ"JRpc3kNR""@LK"˜#!1ÓDkz`z:㮈!EQOˁ =ڰgIMM-$TYўU;*-z*x)1@9#WP8@P()T7  0 9+{&H0D"FOE22AvIqTm1B nlbn%-(PߊJ$cJu)Ģ^Wbi"RQ8P m*WPؔp+k]6rAB D #y΃t>6ORc"а3Î2b(%USbR#gx!o>@Ɲ̰Ƅ@aRIFݨ34HX:F/%6%ˤbDJST> )REC ^= 4UbG(ӘLR$LO $aJeк,'w67I΢ۘ0͜E B ^lO=SI%1_A@EuQ;->- mE2I͝)D4p^]tl4 nՐ8BXWY{{W1'jz6 Ob6OrzDD"E"  8(Ai`R+}(sg ;Ƿ뫟?]CNl7yu@nNlP PY\(BaGT2hGrGj o^Dꇝ$$T"~2}jMd'Ci;]mԳo[l~`,Eْؒ[qvl9y \"= mحPzT$; 'J\T >-Mh{YD"g ęԘPI*H  Hy)sk?$`!Wsx腧L5 "v `!i~JTa{B)7ω< F [әto> yI&0nՓB Oڐ+("& k1ɀȽl%1 Q!]U cC*H!Wp\ya(;,}/HQGMm Țx" urԮѧ'ND"!7mV#E!["^Z7]{Uk~@8 ; kK1q+j|:%I}tSl6;71x1 Lb͚4kM ?ՁCG)S?+ANYvNO_?E~\&6&nǮ qaD"_X~o% jܸqBB\ߝ8 d Z⇢ٛ{bVБc{C9ᗹxZݝn7pC>),' 8uhRR^u:7oMG{p:]3gjBfSUlZ5Ÿ/<^]aQ]D"OG"l޴3b_TO.5?rgϙ NGb2(*'r+(;2#O""@Oā>T0Q ӹ5`"BLlx+l~HNmW]̝w֙) &Ԣu}ts{^:/u% vKNl? :nO:K>]z^o]z\եsY+ޜw;]$ d@KxSNљ'eaDR/| .W σ a@lw> u:NJBC`HۻԱ}Y9?SO<vҥS^t^nP^{U~v牉+(rtxAv8;/_}H0DOHJ~ꅗ z@UM۵CC|X%ọؑ6mڴn2D=ڴBS#nO}7zE&POi>lv~a_FnzČsxM -~3B@c @Kܸeg 7)oC0P"-`;f̜?ہAoZa-AӦ͘{n:ғH$>zyf k5\Sy!<lȷ~]ti) aWDrfe(hۍ&BF|78t˜Q6c`C0@ 5  _!!%vYQ}%mZ6`O=w1t!W_l.S"^o^^NJL:Sp';vm[j6b?jȔ|O~x4Jٿ7'6ꦮڒKfL Y1ٗ6mF2 Ȓ@π~ڴtb>w(~PJ6͚@^~n]$DR7tt:&#ظ1>O:z,(ꮌ Gn huq9}6>b(f4 UeN`AK2 ;wEpe c CF"86Bͩ_b{;v;p8sq'bbnܪSz<3g~$yk E 3 #`kP1@576H\F) ĩSYPEJRN$IAElޤi؈ qXPڞedzN'[7wDAL#ٟGKT:zF X9D>IPy6 ;G %o-=Z7KUӜ3P~QQpc+AYP\~z7 >>1%d,A^ŚxB@u ';rZ";y4"4l $I}Z$1116%//MJyrE8qxC;Nٕuhǩ;:3Ğzi㙟Y];'͛U%'`¥lj-:~QgNj:([îùjOإc{D;AӴF)!C?yd??bw̚=WQ H! BS7ạ/Z2P$ =CGoi%ŀ)~o?ـ\ ,%JDDȭFB﫹_Mb?Yg>qD"} 7mYw`u7!\RR+Tk?0A4d6|AıG8 Svh*\ڿDo"IUelb!s?p'_ؼ-\P5p:>>? ԶS[Y5R"&@< 8%U4Ӻ8uҨ0LΩ}}ѣG5M1cFll~X?/UU#U BDilT>E92DSfs+~MӪ8UUE8u9`DRM )*K#J䴑{(@DU<(J o=1^r ===;;;66M6F2dHQUu߾}]rrr8ڼo?|ZZZս6m?pA"JMM֭۟d9F;յpycnm۶ÇONNgQ٩v;c|G+V8p"6jԨO>v{4GyZn뮻СCMOO SL!j^=q:ZyF`(pSN-[O>5T6Ju]믉n~Sw6lyٞ|߾}}"z9sTv]v͙3tG>D\dILLLqqq߫*b_y_n+Ҽy󬬬EO>1Ӈ0lF\xq~"GFg9f͚=s=u6l|iiin{ƍ[n:u;s7Ghv-66];u"bgy?gaF 0} +Q>ɓ'o\ߟr֭[/ynݢ>bf*;ڵk:tF>.._WyJQiӦ\r1y5yl^oM^|AM$w?UVW=?>._xgy瞛3gN0,o4M۵k׫O˛7o>c34Mo/^?[OuP(tV\U˗/X2fVXiұc.\tRUUf,\0;;;77w…ׯW}…7n\hю;ʇ}-Zf͚Dk„ ~?V~'ÇrP(ԣG(s:}KZ4gw*d qM7M0sL_~&M=;;{ŊuUB 4f !sVc,Cc&ѣm6ۜ9s M>SMF}9>؝;w^WgM>}NӦM#?.6_|ŌKN0Xڻ۷~6-&&nV]׿;UUǍv].מ={nv0LZjf͚H~#߿Cc~mli}Q0g͚unٲk]קO.ج(udyf2 c]vmܸ~[PPrmڴ [l٢EBͶo>"*?>:ti*X~=c[n7.ߗv >sssǦ&7a„?p…nxb]oZt)8Ǐw?Ԗ\I걧b>^1kpTsi櫯ڿ?B͛7/_<--͌@-͛׻wuر#*oRUթSqqq+VLSWr5ڻ~:;vMS.HJJ̾;v"#VMӮe˖}Mfy^yu+LJJZrS#7>lӟLcQaDދbZ2<ȁ,Xp} #F>|x!}|7Uiu=g̘vo1cƼkg~EEEwV#Y~BaÆmy֙<"fn6lh\_uks=3Ƽ^/"V~222"t'rʚmƭ+|g ܸqcزe~#xW("'3fx5ճf2ŴsFr@#D-B4޽>[hQff?ɓ'/XA#!CM6rO>?wܙUWU "]˗/_dɠATU1c{9畽]Ѿ}j֭[???gff:t֭Qy3<9رc#UU>}iC 9~x]q@`oF䖺n(..fc!ğn|N^y3䜻V~ٲeC=qƔM"Hv\\\NʛH;|uܹshj]njz/¼]#cF-ŭNH^^c:;^Qq8XIu)7ga56^r%GL632~|&O}˖-:u^cǎ={ٳUV'u]Ժ5ʧzWZչs%K <8#9,խ[UVu%''<J z/Zv͵57tJnt]Ȉ|:Hif4@&8M4O>ĉ6ߌڴi9?tP~(?3t9ji9S @jNMX~fڵRT*Yf+_iΝ3kLrUf̘M6EkԨQu.W& :thٲ}.]U>}4nxժUO;//oҥ3g9r+ ڵ' mڴ曗/_ /g8ۿ߿f͚ kFQknhذa[`A~~1b(i~~~N(\67xn/\… Z@TV6Lf;ɒ%w_'Mun{֭s:G.`-%ʗ_~y)#GbH1Bה1cȲac&=(xg8=IMp8n.$Iz}}}nfkݺٳ3fbɒ%ǎ3rE夤s^|9T;W_}w? Ix __#FPﻻ^13FWvZEQ ӛbԨQ.6lMưf%?ܫWI&qeY6Qeڵ۶ms8FttҤI$Iu۷{n~ܽ{w]׵kޯ_?{1ƶlb䊱N$I޽;))IӴ[7~hnɓsM1N,;-{=9s̨(EQ<ɓ'?̩S]!Ƈf͚UZu۶mSNFnX;W_}uƌ.Xӡ%~;dȐ#FwygZZի322z3L#FصkW^Ν[6M^{'N4mڴAAA.]ZzQQO=߯_UǯXn'|+Vҥ[oչs jꫯܹɓwuW޻` 6,**gϞ|-xX,uw}͚5{G7swaaa:t8|W^Ɩ<??>}l޼f7>>>Ç7*\O>#G4>kʕWիWdd4kZyhyxhٻzԩS/^cǎ{hO۶m3V+v}ݺuciР~s Ylʕ+Khiݺ% =p~z[jLIKK5j>-Z :37>}+.]ꙧ١Cɓ'w{MMctCjjjޭO9'N|wǍme=C4M{G7n{1vjӦɓtg6--zƛ?߀B9_6m曦<\-<22{=z=zFvQtQ~]ߞw>EQ222Vg2k?;OEx222BCC;v]r%000888IG.?=[}tyOܹs>>>=gO>åKmz^,ވ7MO!===))l6W\3,0W' n}7zCy|nX,NC7o?5:333띪.7-=#\K.)b,3S i4')^ r KC ܾI7M+EQZnb.'$l߾}ѢE n d@W_oʌDi8s'x؇Gݍ3/,PDQv%%%9N??p@!p<˗322:vcǎ?X1@ 4OA,R/@@S_ϟϻ#5k֬Yg@ڵkIJle+.eRtB*P@B*P@B*@B*@B}E%'bDX #AxF:^ 3K^\)b# @Š^ :T*<P T*P T*P B*PtF*ȱP{8 Ip"'ٴݿNIMZ}6nХS__ i:NDiK3!i5TP1#laiggd[h nMTu ꋤu%olhBDY|1RUrB*`hL9sYQr{ժQ5jC0-jd sR7j6=~pSOg6(,T.oT0js-=;~'N Fd6ڱ{{$qmxYqXHHB#"fj@)+oV[Ly dzW'?C u"AB١ݏ~Tfl8 db:1ҍa1GbF Qʐ\2emgNצÞ zb.{.rB~ٟ:E3Ϝ3{L}[ ) r:5kz|+o>ӷwCG^#T*<11 "=k`:SFBȰ}WןvܖtHޮܫGQdX>$DdDX5!$ @ \N73LtYWc|ۭ.[4Wjv"Ƅzw5 ۝8uWF$eͯg$#!3"*^fGaA~=u )&e' ḽ'b: FTP!Œp7,h3iނuĤ$-H,>58c顡ff]^{Z_:RݪmV-752p:rab @U]ƱO?yd45ۘ_~6GpVnٌH8# 睷^&JzwNG~d5@P25c5]ߵg=-=ߛ\MHo0a]:Y|f~*9R&ͲzMX@>@E! HZ͚GRzHb wЎ$vyy5Hvv|)M PBqOɗs8BYd/E\t9Ͽ&?Ɖ#V$]?xHjլ#/j9Ճ"L&RKļƀ W^)|r1ƮS]ݻ~h.X32O:7T52lןR^f5)eWXv´M[~%%5ױΈ {ϾO=s|Ւ[f3ӰM2@!b$"t,~*H6O}e7 Z}}ݪ[h:\ =SI]~{p豌)몪2wLoQ{Ei2&9еGSmSVT7T. Wk:5v:pd<“+v7;vө֪Q1+W}o$+&>A.?lv╔iOH?&Tnp?$#!Hӄ3F5|KKx_I1F$s_Lc/ Q/ĄW"nB>{&kɬGdF]q&'e;D);UxD4a$@ ¶> Vd(fڵkÆ gΜ)IRpCݹs'"R9x#fmPPP:u\.na1IxٳgѣZjR[$%%رcРAU\eB8 !RRR㎦Mf֯_߬Y+VL[*z꫐ !V{S*2j(++T ۷wFi_>֭[UU-AnwB8|0pexB]UUun{ĉ<ɓ'ϟLQNӻEUUED,]H;}sQ*ht]^UB[Mn(TGW*I&}g .3fBI~g}666VuI _h(JV.\rʅ 2RRRn(3f̘5kn7f}qGvr_x-kѢE=ܢEz뮻.]LDhRiG}q۸\hbjj׮]Fo6dȐ |Ǖ*UZ|ܹsf_~<~.]?v !dY44t֭u|ƌgϞ]hԩS۴ijXXXNTUUUt~ݺu{z?^jլYnz4Mk׮Q]r۵kvɋ\y#Q:vX~.Jl6s΍f;w5ʸ3TU5jl޼ybbZv˲l456jHqUAbL~Vk9O*3].F޽{eY>u[oAjj$I'N e l˖-믿222cbG\eyʔ)ѿR>܅ c,..NӴXzz$I6lF)|Ir=q- n\y饗~픔(.TQ~}???mX\.ڵk[heƍפI71f'<~nGFJtttvgn9Se>$iذaԐロ~gMٌ?hFBy))IMS)ҦMr;\,C19˲(ʼy>ӪU7θwjΟ?ʕ+޿8yhРKwĈ+W+bRRR*U}K\~]QTj-Eq8aaa&ɘHk}XEQ.^\_*7@ T@ T T TP TPxr  p;cĈ.IHDcӉsa5S+-+K 4"j6U/Io8 d9r^zt @ ^ *LHx*jR`x Ejy*r)t J>}EPbP TP TnFCgm p[Ju\; ]ahf6rɒY1Ffu|Jt` kƿL?Ga]ׅ&׫ӽk'=tU)!Vex!rP1wV\>M*n;%.Y|,}?m[(eoQ6[f͚5B0t(y+=8'GOG^/h׶ *Gg-9Yh1=^Er$Fi$C̫i{vΛ(DlϮ=>DkMۢYj5ke Ĉ]ϸx*dڅިYfw5R,)}sADodnZNHܻ~b%$0bH3KpbƪaלV(eϘ?S:{qАQ)6#||܂=ԃߟAL&۽ÑtG}L~d!}`$+IhLDB">M~~d!XPVJfFAbQ{ e%-=]C+F:t:?~1P12Y {bמBngϟOKWd'$^glނ`T%"<0:듙ujV+[U^g4Ѿu{ut;v~&Eұ-r }YO~Dh4[?>`5[l&21cF<̘؋{е1fH WWwHVK.v*$߬ڂq$9|YHdb&EZgɦ􄄄J!!Ad,}(JC%doT#AL{o,K 4vP)y*9wQ[!#".8] $ND('; T TbZo{!B+Tf "T4P\P̡zB6g/emXŲv х(r-/}o]LQqtNL(Wt 1u&qƈi*.|cbL*H-bP TP TP T*P TH0d۶m ͛7oРE;,%%%99944400r*III+YuRpppݺuk׮v q3g;33SUQFE-[L8qû\Jll3<#I""!$Iuڷoj(رcv~ح[7Yu]/r-$IƷ$>|1֤Ib9>@T6}*1IxȑCNFF-[` "==ѣ;w:thJJs裏>3P^B^v#F۷z=\lllREQ\y9Ȑ$)<< eܒ1y1L&ٜ^usο|7ޘ3gLQ%KlܸrըQc„ UTB({%$$L?sڴiϘ1v3l6W_}uQ]V &TZhr\ӧOoܸ5M3e޽k׮2dHFJQw}t:믿9W pKnwttd㎢w'WP!-[FDDl޼ٻb{:ԤIo]fM˖-/_'%%EEEyرc}uݝ;w ,;u$4m}9rWN<`: "ڷo_ZZrQQQ,l6%K WVK/TkÆ ?ȑ#_}Հfi?'ʕ+ 60`G}dT!&iСfy߾}*U"m> v/_Zh!Iƍ@u+E1__)S= `˗/_ޫWnmXƍk.#BN'i&0ǎ'Urnݺl•C@)4cǎ?pދj2e,#TI"ںul۷i<[׮]cQQQFJ]2~=zHt ..I@i0 ~~~F1/B3N>m2&N8vXO~p}}}SRR8כ2"6mw}w!QGB `V_,]fsDD1رc+W(_BBQ^z;v^ӧOHHdzꩧ֬YS seӦMFW9gFPPP||) Pye,[Fk׾뮻&Nܹsǎ뙐v⋖-[Κ5v{o:uN6hzQƤIbcc4hP^իo޼SN$}׈͚5^ڷo|GDTvڵktv+?SDDD6-HTJ 6iĘV}KO?}_~%--uC i޼f=\ƍ=%~嗻vzjٰa{ѣ[mڴi{իaaaÆ 7mڴnݺ 4hS3>uԈ}/= q$]oОh$1ƌyWA(a{*Ş=PnUܑ(@ T T TP TP T *8۝`yLBE Do%"ǔ Q&yN 1f4۔f :'&Hz$ cqt"z&Pڵ 1 ɈHg`*Lx5 #.Hxqn7EVNz[n@aD:/۷ZRziuN nʅ/ZP_׎ۤNѮZH"ug"TC'=@ZZ>F&{UE%"(-)\˩ f1"!xR1DLfwu\w?)!I[h#H'"U.>p۩wwӑPLϜ_bb-K5 ~8ri*f}@) c.ԿN5j?w41U2G0G\>+ ({U(3#W':1A$bZdfRnSׅ,ˌW~WJI))MZu׭Y:v3qudŔp97^!Nb-:.b̢N민0vħe#$&įe$)d(m]w\̰22Ɍ+fԿ'+Dũ/\bw:1p8Odqs$^v8uR ߰_JUظKysEjAg}։ K,JV2.Um@\.ǩs}z2qK)2}Ǯ^|1ޫG\Vjip^3|t[ohڴlpfn Ff-YS@`S&-k9l '>m[w1DD|?թϯ]ݺ=1QvCFOڤUw_kȰVfuX"o۶=w^#E$m5j3~ݲV*^d1V+j3eH'L|iÖcצJAF< \R‚B+kęկmx]׃y]5g23pedF=t;y$N& d2b hܸbڻoN "!r73&Y.ܚaz/ хn43p\C $Iʺ/E&ѤQ}ɼg_4chRU9"u8Vr>8icF3vDk~^dzյ[,f DTfu=͇nޔrky."k. 5.)ly1t%Mb sdQM3ABV61.(Io`6IkJ'+[3^7SytqYv>guYQZW OUs>@{O1)/]T˴LUk~رt9<<;vH<~O3!wջ9힛d:\_=1fXoDʯv?t4"4G] <~j5c/;=#nSgQ$ML~%siDgmFk=>>qCϩc'9& ٣kzÎL U 5vC)4[ 8IR˴pd}$qH'Md-arݛ3bDN&䏜 y-Ltb$c,/rN\"Hׅ`YsR' v/f( "NeߝF*ࡢ Q)088${kujjJRRRA=TFVѳ: n}:66n˲\wqҥ4 !/222ΝtbV^t]߱cɓ'%I2~iZdddnݬVkᎩ( nO׭[GD?8c1З2EQdY.lv/_r|}}֭hbbb/_޷oߐBsѢEB{̓+~~~,kVVb(H"IҺunwʕ>n&j۶ݻ9/ 6lәm6뺦ixJS)˲|} !<1j۶mn#GrNv-Ƙ,˪2wǏ\.!DdddNvb)"Xxi{ohhf[f=8G?|I֭۶m[9 .ܹv͛7߱cGLLQcy:tN)3gY TJ1???'ڦL&7s!ĨQ$I2ݴiSllm ޣGUU͛'ѣ'){ȏ97p@h$ٳȑ#ׯG{_4hЩS']׉(%%eΝFYs[!C1&IRttӯ_??Vin#E7cCa6^w5M{c !4M֭ʕ+W\!"]׍Yuҁt]u6mlgz>$$SN $իӪU:ȲlĘ5RU5>>R&?ՉOE^$I.]*LNNv\ SFԯ_s~9{ZKr䈪6-00 6RHB#F9sŋNSQ k 4iҴiǏl6IjԨQN[j֩SxιQs(ҲeKEQJ<;5B/ iA" ®kvHQAPBHrq'I&!~drLr~v"!!nغuÇ-x<-[["ONNRJ5mڴVZvT'֯_֭[ܹɿM6իWz,#99tb=\8 M*駟fee3&>>>rXDC^S81T*m:kڧ'"qPyZh*YʄB! @R9c*'9'G*bcc1 T|&B9>b: VP3gw} 8pU;T.5jtׯ/(7 TP TP T*P T*P B*Pue>‹Pٍ9q%B2*IbbY,E`"3WcXBO@)& ,Cԙ +M1EH16L*1=ntO"ְ (QBVP8JLg<)eƂz$%=l~6CTZl_PVr;DqgPEK?JMX*`NzeH\*3eΡU}$QPV@r> @ee)OJU*rP9$Kr!z.ATAĕ҄*%`*UR!Rk"_eܝ%B/S,qfZ񕒥d_Uq=*>QUxC}JXo04!I :CJV֓*P΃pLHݒoܮm~Cf5Б{gbbI$$)Q$HI"!YoB&~I %鮏4͎F w>|:gBEiD4C68.˲zثbVHSlfWq8]rs}vBB|째j7n8ӌ{ABgV*"m);~߾پfV(4LJ)fDaD|3 RaOsalKnYH5WzDxjԨqر*E6fEi;2'""xbhb!`Y߽.KdMV@_bVI: -wmC z )EL,U)w=<$8+I?c%ԭ2^I [G/M4M_j,pHrz]?r?):ap7g^+R0t"jG [s <էD .*uvln&6޶c{ttΡ<zx_{}R* Sٴq'yc-l-x'b<ܝ Zr~˝7w;p\*uPc>;uovN>yt]E*)EbDRl<9_*EGrG=j Ό Y%X7c;M;TU8!r ntCWYѣwzC(|7;s "rS"G=7jUoԶu2{m{3b\ݎ秽ުubdƎbN84buM.9N jҼ /nEN青{u_[vnW̞d,MzI)Q3~M~?T8P 4U? ?p˨gYu;Aˎ8%;_Кb"OtqoDz0kb2 bO*\ފ>Hffy[ZuSC egg_ڻ_g_~]W; ~|cE獉:_WVmа~'6pk~6t=xo/գO^[>-L~ged\%yȕZ6o/yݏ)bfa=ERQ#*"" 3v@y P^n~=/g6/ސziՌ|d)/g]Mkp$%@Dw`d֬QjJap0hר6~7?(:I۴oGBf5lռyゑ )hެ)%wh_v֮04!āC S=3p g/CR~ZIbg }۾yyy׎#Py&EfpYI)?/tl8Ͽv8]qqC\6現zRj+`@ҥ‡+6T( R0p_}c]RLJ[o@)?$ uivDS.A"M_aܺm7oܺsӖoݹiM[Rbc㬐 w$׍Nݻsv"&_r-VM;bb+|\wmZ ]_f1XaԮM-6oښiˎR6nٵikJ|\ᓷ.l^^IDyyz̠Igޗի]POϸvpRjO+e qؑ,2SD**5;LR FB9r\n1"Ka8\ƭibwO_5KQW! `Tt[Paݺ{ HQEbWŶpD]\qp{"ejzi=Xg~~-7]ܴzko|p:ƌJR$g -eQLL*wYZqW%"V%v)PB*E@P)|>|FWfׇ͞?7câd,)OXZ!"բIJV"&"|Ry2NJ٬q,j*J|fڦ)6mmؠ TnjyUZuąSrY-M+ăTqq]VyᩢkJb> O>JNfߟ|nۗ٣&3wEjȶ1Ab!%I8EԦmB>ЪDB\DN5j=cGₕ*Q4wWݮW.l~Z,YJg--qܭPRxٲI0Yf'+Hu[ $jV׫-Z*%u*(J#jJ ;B!kΤBf-X˖ $- $))dD40 :)hCt]O[nYLȨ۴i܋7杷[-ezuQ'vE)I2 IDATXA9>)yyy9G zAHir.\,2StEQA 0~!)5kŪ4 oɺw ?v\ջ$ƍ:/7'++O"ɤ^xiѓG jҨq۝N*ߪSK%}9tm6Q&ݯ,ׯߨu\-4'-dhdxp=7N~i}M,_5XZG! C*K~p~߶<2\^"ƏqߠQiߞXrƒn`q=ׂGP+%O KiI+n=#\8[S\O`D-ETÍ=싂ǐ4K1:r@* ܙ~㖛oS ۵m yeQ5S+ /UC_i׎AQbi_$woԠou]ռ'PO|Ƿƭ7fm?,_.-UfroɣLz흆OW"]D>/33,_Vԫ fed*M׏8oT"9rB!+B`nNv^nvdA)},'TH}99y%WPrnNvNvuH7_}_ԩ]3eǮo?ob_00+VSN/?/'';=C& >s.(@`ou۷mvw6mշWr("e꣇2^ݚv-X F5*v[BYp%rD,' q Qؿ_:Ri!"ld)2]1V#R^9$H윂aAX"*MN\niJYGE~<}ǎs: 5"ev\aES(H`oÇ |U4: %h6n؀ }ߞ`l p9,}d8vl؀TW.ELzʹ3ʃ]S2ԶQ5*$VIg>$QaS-IHq $,ldԫs`@VQKI9YD=)lO-fު8%)/F|L"&WbD ?n~^etq{>liY/VDҢ@~ݚ`?VRR~njq5cL(jm j Ph붭111OuN%q{RiQe|ɳ=a a?u&;Zt?]{պ^֕vP` /HVJT2W-vp-ܻyyyUIx_DiL#u_7/ք3CA!AQ+҄*/>sJgu·a8As5#?>RzM3pT*̒v~epr8Pm c~=zuK&J\_JԨ T #WBBTnu9UQiDȒ~Y pW‰gZ%ԸU/e*ʾ Q @AB*P@B*P@B*@B*@B@BʍR / T|pp+B!RRJ)e?+]#:߿zjѽ{w˲򏓼}Rꦛn n>"z͜9S)C.]oi9!=W$$$f͚ݻw/Y䦛n#g̘:tСCqر 8p`ŊݻwG?\ƘJ D*uv3}HٳK.111ne˖ R_^)eFLLUJ)^oLL][k5M[t)3'''wvQ~#G*V^/3fLӦM].Wll 0M333ӾCJJJNNNzup8Zj ,k *(eI^P(] 4gܨQxf޻woƒUߟf)Gx<-[4 cӦMOLLΘڵk+l[Zh1eʔaÆEm\\RGp9K'!!!77 481raM4MёR6n8%%Xh=.Lu=++СCb@T04튤dmaAٽI't:4S_ncbbHFpE;vBa!HB+իgggggg׬Y|>_0[SiOki\r};N\z3f̰Wk6o<2W^p;c*RziRjiZ:uN<999J)8ݢgYѣG#pvǗ=υׯ_/HNNi&R^o4͛7GTW&6mڜiVJٳ?GUaǎ+RzJJ 5jԷGR|P(2,mRz6mь35Mw's'%%k/_n8b Tj"}h^ Y2_EqC9-ZQJy<M~w]Jo.<:2.@giQgϞ|Iccc@ZZ31tВ8'4iD:tH)էOHAp8gΜYF$;o9ZHNNNOO?tG}ԬY30:w^!Đ!CNk{|h[n=xয়~ c'ƞM%P@JaÆmܸqÆ {T mڴҥKPhԨQk׮ݸq_~yZ"u(۷ܹs<ѨQ5kS~bH6lدj?=saÆzz Kv #rFx#Gdee)7nܯ_*33s߾}M6  Jp=昮A]cccCPYYYcǎV2//Ou;NlEQJnf !4MSJ˲Fu{Қ}()]DViR)g'mpڮ'7nY};Jdd!2䚒]P0 ;H*M\P=QgDfjr|,@I +j׮m_}0 g (!UvR)Z;JI*pΩTqƍ7ڡk׮%@ӧOEJ7${ P餔}stJ1TE!@ T@ T T TPRhx)|*V^J*(\," BEI1$и\RH![$ Ԓa"ŤT$B) T1Bd&"AJ)GliR*vA}ԗz%t'Y8:K<-Z5r.XiŃ3{D APʡWwz~~W_ef)K)Rrİ+j{ 5ܚߟorrl_vQN3#`wa|dI;}!f .Xd(W á;ر IR!+uϞ6`Ѳ n-%RJ)Ru|oؼi#'B)"9=LMK'/uwn߾{~U/?7ŗs[u., DGBa 8$1,F "&M$IYSfR.>JE+EĘjw+ǎv$nu封e+|^*HnòVyd6_\b&.﮾j}ϫtCQyS_}vj51*Ĵro7:od Yi3g4+CV(xaĜ;'p8q#&ML͛4iݲ]e04~ժ5y7\3>7jM^E7ߟ1{^F P~~rI=D2.> +V7߆.;^ܱg"RBR1"TʎQo GrƉ 32?._ywk/R0r] YZIv XF*}xa8Oعgؐ+n?FZj1AoᄏHZb8-X,9b|ٌ{Xbuʮݺճ+I@gvX TreO# {mSN%}*DMw֟<0eu,,q&RaUfT:uvHR) F\ٌ_ϚsY99~h Y؃K/y\7 %ˮN[ZÇǥ0|y$-;GI,_Sjܜ>Ky>QӏYVo>"z T#5jԠPaTyMvBѩEס@)A^z;!x˖x5})eqaiҞO*;$6wO?I*r_5|T*6Udnw}RedO;֮ZPFX[`;&…DD/jӺ&)s̞`7oĻv!2K,RM3vDo瞔]y׌A( PT(f>i~ D{ܤ$EF $ U.n,R"-9yDv; " Ԭ.y옽%\v pŋO)q>ʮ=]7mYsnwqA T*#VVt&\24CY/녒LAiEvID$eKL>Վ,K">x(QzԒFUP  'Du$tt}:}&,R5<BYŠOPL*mCIa"޶}G{"R M۹+4N$ET-Epq~߸1%Z򕫃 T|*$l'%\?,euſ ͙@Iݳ{c%C'yt.Y\3fD0HMS=Nz>r`<"S eLlP덙rCQM<`ݥƑ:+sjd$Q|S/u倾nwuU0sQ+QuCT+_VqͲv_믻틯g|^~U0N|EJiB*|P,+~=Rbs-YjmvvNEAkF5x^*z]&D ݟ _RhDJJjd'r^25M WݧO/E*rR!E"Q<&Uņ+'RwB6x 1C ]3f彺j޴p ȫ7n԰yƤb~t*$\yϟ~벲sb;~Kݑ^oJ)Z=Sn#-G$&&^6?/~8Xl'Z|ќ^zث j\rE=OwI2<^*`/}&]'Ad)"60njRHJ$G/м]g_)p>8/'\+H"ɩ^8QtqY*$R9&,r;M뽷iZn|depUz>P޽BE@ #;++fM IZ''@Us.ԟwIaN(&fL^H 'T"b_E¥b}aPSTJnpd& !uDR@B*@*X2Sш"R2e_˴cC"bbHh$3)ɲm\,An0**᫶1/mZH'l{P.S5 R pa+YV e{ T;y(Z O* /(7@B*SU IDAT@B*@B@B@BܹSp`0x.i .̼+^onٲe͗\rIbbvan075@rN|0b_;w=ܳqsN Tέ\u}Μ9}/ix#*0ɓ'3sQJ 0 (yg!}i'rcEu0t]/ĘU,}>ߔ)SxG}' BŚHOOwp8'MRꡇj߾W\SOݻ3 ԩӰa^x-[ѿ믿W\>|VZzkǎ-ˊ<\^^kiӦP(ԸqARJ`nݺJ6-66E%?:z0FO?oΝ/nժiӦM6W^+D9sIGݳ֭[WzEթSG)jذanݶlْo>05kֵk׍7֭[nݺk׮%Ç'%%ٳߕR|AG߲eMիbٲe`O>ٳ}:t0 c͚5b4M˒8*LM0|뭷hĉkQzzɓ[hm۶?|g5j=eڵkǍQrʗ_~yŊ3gܾ}{zf͚oذaΜ9K,Y`i=`N?䓏>_~q:N((Ʋ޽{;ֲ,Q؇zj%JU fn۶޺wީS ]믿iiv;HOO;w]QVz) "۷!CB\wu|w6hC:uZn}o}ڴiժU3M3 %$$7---770p*ҳgѣGz=r*# }222JΒ%K֭{EEgƍ,ˮ3իW>ԭ[7 m6+3..NvO4+4ѣiii{R2}3F,JRJKRJ,KRÇlٲط$&&Zu裏6iҤE:th۶… Keɕ|*(U2T_~ްa\l6؞UbưaÆ ;|СCg+cƌq\<@M*0MsڴiˋOlRSSSu]SN]~'N8iҤ\.Ӊ*pƹңG{zUP.JnSO= ydVܨ~Æ ^_R`#kVNay߾}3#,Hr_|ѯeY<;8r䈽}޼y~RRR>}N1-Np{õk.[999ayw],籪]coYl^͚5?CuСw;vKkOv"JLLݛԪU KӴ*,Gy\>?fVJk׮{źڴiӼynݺըQþQF'N7 EwqԩSGGmڴnݻwOJJvݻw>6mу}ڵjҤɸqx㍖-[&$$$$$ԯ__4)eΝt邍[qorQiR('eMcf˲PS`@ T@ T T TP TP T*P T*P B*pW +Tx).fUe<!VJ) @3)"μI?PXYv00s)TIBdEĂH"#NX9P)b%9'XPEVЈ311 sΤKfGb֔UB *ZBv7=g]VAB1 R=a}䄺5Ѣ]s9֭KRX}fdYRgK(;+ƨQCR+<$p$较HdU1Jn_vny6[fj]nb&ˢ&gJ}_oRQd>N"G=tr8rPo BD IUZCUjf# +èbB-VJٝ6`XؑW kݢ)359| |ԢqEqnw=)C$ʼnZ8ъNr%1M ÑPNǎTĒ !I bJydE3Q+k׮}ş/|O,QQe>;[b7|nͷN!׫$-""O>k_a5~2vfeeg<#">S ΤL)hQK:u32K{KR&% ƨI[q“Ws%8lŠ$,>P_b޶cǮ`?~R$+DJR$-%/?hvެYsDxm{cd8Hw NJG$t2;OVEko%)dc ivv$I2^ :~#"sH҂9_Us/JO?!? 1lpZjC-X㋯6?7"b_}\NS_md[tﮟ0n攧J)1w_zs/&fxv,4IBJ^5t!*p 5o*AC9yS'UTsH]@;{N끇عsϐ!o?ZZ""'/qO bϽ_4|܂y_s|C]}W>=hw_}̬FMy%""Kt=)"jФqrNjnٗ3;"sp|=sk*}xe&}zv#RX)b⯾}0 ׏?j˽t/ϿJRwLoΜ/(ܺ}: =jD 8OB%ҭ}냮&\֭M_{Af0P]F5zuwNnO4]%-+ԥŬ$)ER=~ pU†Lh]+֮<޿5l Ϛ RK$9\$("bWr8F }}3)Y^IĂ_|Mr2h@M $YfA:wj3f8Yk _ֽ\ݳlG?Lb"Əoٶ#}o\H_mD\_~t]3vTD!wϤܜڼ=eLT]Ǝm)}{~pٳɮhKQ0T)o·P)ڼՈ~jؕ ]b>>.'HĪ8y 'o!3XEDp,+g֔HAd)CYRr5gDխUw_˺^~Yޗuճ[ڷoC*Կ˯Cnja &Lf ir8p]v./~ XSDDիN0#"R̹hapv%h2?ON>xYr}7a厉7P(IYi{#dʤ- TfMM3v{RS4ka&wloA3dsid ѭ˴>[|}`"`qW/q7/wS~6w|؝QiiC3'~Qȑ,EjނsΓVJ>- -TٺQN.O}-wߴ<;x@F 1Hd \"3WJU3C2R {w&q+wx]OhtHiQ0PJېt߷n߷kOBZ?-ٲd'4j@|b̚|eCXٽ{*qunNN()1| *"Y|yȌq_avx<1|MR+#GxRb"3cY.Fjm Ͷ=4U|IJYQJ{*-bbRÇ]9{Ͽ?M,]Ǎ|>;\.Rʗ<.V rHZq % UA#*lL~i/yS Zm$'+}I[bbài꺱mMޝCZqFQnn O6l2 u{wgypҮʖW@JpB88C3) NIMgNdh]`aδ (8ҮdҞgwZKbmY%?.c"{e@)8W~~e&]?t&+EZ m۩X4Ě"h85EbMXcc}?M BŒJ啀|WxSAvOKmQuuu.^_pأon?q >㇕cxm|ׯ]:P}]Ӎuu&jT|oxř1{D.N‰1 3*_}ez<~އTNcqJ?Ƿ|؝fŇl6'],D&}ӗek~7_Eeuy-}m,іRJ՗_ڛ|K0E0]fZJUULWnlKWB5eۗ_ve'> [GlOiv/K۾z63kk$ϯ 8@5[9n{7O<򒋎=(ۓ['~?]~Mk%q㭯wO<'m /[?s|l//U7^wO{l/_y۫/uXG _Zr鉇7~ɢs/=?έxzzchV~@[^Ki|~՗ ϸW=(-;gr"^WW|3}ݕ/~Ϟ u>ƛ U:sh&)-L*ҡYCu+Xtc*3lQsu\rYhf{|ÝΝ^ۓhm[=spwuWV[{zO:<>_ȧwqáqJ,7SϚϟgO85?SxoZuS^:2R mmam$s%^r[oos=y h5660qKBugqmM\p|R(ƾ|˺ vآukiԙ/[痟q=.8}'eY*-?S?>`^+Ύa׺?cOo0 (%?zR>yOGTpEw'?lnyW_m|ŗ{W7DXK/0XunG{/?{ 76Dg};ׯ=I[V\tw)hiqXZ\UetUV (ә@iWRK9ZKxTtFeeHPY%ei͝٥7q`+ޛV/uƩ)ĶD٢8^"XzqJOrf) (qK+ZDb[8N=Nq=Y<=Wes'SJ<^"NaFP&/JgdKyniky:~u)~E1[LשebveNA93Zڮ&N *Ѻ| Yr5͂51XtlqF2]V)3/GVڙL;Rpa]Zjaǂ乧Xo|C*SUuNt+y}C}?}ʝ)u]vwvb3 o>qcK͗o+/TK%f k,(Q/tuv&ؽv-"Rc]7vu6GQW=ךz+>BWik݊k),YUP*&5P2'[p=^9eRܮZRb8S-KGK`QQ Oo3 ,8; ,01`KfƬEYʼn3r al^x< /Qm߾}dd$@SSӢELZ0;vB "' E"&}{1'CCCdqyEg͛nJk tz{{ֻ_ ,ǻ|^eXTl۶m||\)U>UKccX3~Ν;g\-ץ|1HرC=|>H$ReMdGTSFFF̦B $ 0'A,vMkxZZZ^r۷ ͛J&ehx" ^&,KkǙtMn۶%u<ͥ)u/^ZySFXo۶mee2D"FWj 3qFx0DDZ*%vJ&2Xl8۶{{{RXk;v$ q~PHTxkvb [:sh8>>n. $I.jRlgll|.]4UQڦPDFGG-r'Nkdɒ˲FGG]R /H[[qyDXT*eRWWW#x>/ KST*3E.uݖ%K~" 0_k kOQ04˗ `d2S3Hr\.g>}g aǧmmm---\>9HpW80%|;-ZsWrBĖ-[T7 *AmAsޘ焪^k'eܹsӦM}}}<ETBCCٳq:ˍ#H$VZ766y f0`3S2oٶ]|!۸ke˖7^2ܴiS >u*a|RTJD12 m 8[lټys.@,\777I&}}}SJ[k&X,8%K1N{$y!rY(Ji^288h~ikkd2tڲp8ln2 3@`ҥiUI|QOTsU+b " g D8Lb$#Aq6"RQ#PYQ!/ MH(*&9M8."Uq ?OIVzA?X9x'/ş!^/XC<IX@2 -kfl~;,PmFONm]mއE2J\zeq~g|>穿Ô!?Xzv%%3D4X9q@{]?E^-v8_vY?p{`$u}%1tv*8G+?kEXbo5 =[k|ɽ4fO t%wP)>xwO0Z7z{i LYWsJw9d> Wyц.B"]>A- @1T1xN%.0j^/ )+NG;g(i A#i2+EG~g Q?UBOecShxM|M0 U[OO*v?AUl>kŝDwYɉ^6G*TwWt Ltonk[ף6``oGddژCS)[QcƃP uSh}+`z`)&V}Ա쓚=O[Nƨ`iZ$Ľ &[z=`j{p@o戈[ lH=i1/C  Dv:.򒥚C/^Ձ1/~X&/JONJqg_]^x#a_uq$To9T* LGm9%;S xpXӬן>e_}|ǃj J:Geݨ?kl::.vjg~V~ng#]j(dHH.Wv/Ľ)D'*?jnֺ[/I/std>lV_lHg+R+,dq G|bwط2S H/ņTQ pZUȖW;t;p wI vj P\ 4-gLWCEwCcW𲃏ٍw) z;Aڮ<^iZۗoP5{;O(ʈ|*9Y{^k=$xAG]p_ѿIN`]ONʐW&lXĈwzNLp!tg 0 nK}Z ׇx ݍ刄JBb  ~snV~꣹{]܆CeoUδTXɶctWCi ?'x܁g > ,`R@^w+B:f7<őV$0)bE@J7v׺:OkR(ZcAdϣq!0Q`~I4+gULs@zAݕ^Ԩ~R~}=T#e~ҁq K("n?9~/c~`lȱ_F`&oN32LТ]:XsƟ΋bpe"NےuO_wtu1Xt|z &!-,ο?Wj3],j}C*^`ZUhl?. ưUe4+⩶u/`)0f6㯍p?\ ɺm 1e udɴ}oJk"ZCüXM?.5ٯ"?ǎZEϻM4|%ŖK m(eԭ_,܂-A֒5P(@WU=NZټ96ڟJ ,c+^cv^x׸vj|Ӿç(11 PՉW4`HekIJtч]-<wR"*I{+^Uۦ)Hdh0oLrQ_->gR["aOI:AYֲjJWm8b:&޸|7)k{k. n*?7"ٳEoBZA^U@}ehŨm{N6|谧it Fj0ҭF uSS67$2KHT0uGEItz{QWB;][Dwx঺_&GHw>q];8?lnײ+/s'ĜkόM]Fq$6+6VOI-: й$[է]c֮5%[`odyvb-?|]“NT]qc7P%Tq~kBC%WrD*N*_=L `2VydIT{}r2 B>gkNAٲx.h)u8?Ș_Qᅶ=?c~YqYo[i@cR':b b#Ek3MjBR Z!i) S#Xy#4ڶ_u˧KWKf eT;lge)TĊH9:TIsZ@)I%X,4=*Puo`eܬ@Z݈v#VKh?58)GahxtN/`S3 n Vqc,I5 r2Km뼪f3=K{ڞ%tf`w4%>z!,=))tSg/[_Sk;qNy% UFˤ%j].*En鿇NN*O,]{w@A^?ix.@ 0I|zJi߽~z,ןҧNԝ](X^߾3Elj23~t+tkζe\n<}@JgaGO'EgfSb|(I^R0fC6.Ѹճ;eXJ];B>ϥ]ʮ8*z}lnyߨ xx.y< :ecMo>}:鳀QV \C򵿇J:H&a֊{At2+h[U[W6ߕ@gcGYgZȨ|O 5IgAm,@^IW'>~Hq85"  D:kĽ\P"NP IDATͱ{BV,=u/vS tinb;?_ w>g/sׄ=w֓ M\Hlbք{_N]saGbּkd[>:/DW߶g;槽 ^ky_;m5dd܏C {4I]ȰUf\tgu9ɖ6Pcۀk'\wҸ_*͛}[c(J|ʾ< Xf*3zt+v*YfV)#U]c[~'ȟT8UYjϹޟ ']ӫ+B޼~5[W|-O_eW/ JxWZn)ڱZes%C*[F v `ET~K48 H;H88q5i/I;#Իsƞ{glofwnjɗn 778<N'͖W[| OϺd1R@ rڂ Kq?y)WG]{kza鯙:tуyH5?re{#]L^?:$5ȢΙ"14[BX҉$۟嫈$C UբcuN:Mo?XBŅzaHOvT-k5KT*My)G-XjmzecI q/ypm&>}0D`Fw;q:2e%ohЄ9$SAIv;Z@I/3ͻzѻ7dpJ&l5|Zaًc/"$[)*ea~V煵L~ҞtM^\,R ˄S?eCFvסQ/l hl3'!戥o=wO9'3_ R?7%/8i1gߑn ™%ּhn]g I{%mꎾgCEתby+F}b +TCzwJxK('Dzk Zdp ׂ( k *_esJl,/Ի7Xέo ~nVkJ-z5TÕ{jR};Ҿ`e;_4}oˉt5/U=΍L(F.9]wOSE1 ɯ헌N .̽̂?/Fc[_drtbNB5,j?jd`!58ѣv^!krV_QJ!9`W> O]L4?џ"x(4qvI|u 'e;UOwFxOӤ nB4;=m+stUIl_r8OolI9 WLUQІ۾mv{,v?5nW.,M ם\Z3rWtC'u߆>;GA2];(FŃ%){PW21i U;\Л{ӶcGջbL4WT7%J=}U}u|.K???LG.w&꿝Y!sZs*ϻ+(oJ("{3GݝxqE4r-7tx,B_3E"o*,ul U8}g-ąto|Y/C*kF| PV6iG kwli7<6Xr"t*dih?wT! 7FGɓWBcqbǩO_J/:$khim펵w\ T:%rx-8DZӶ+^nX4깿UIt:Z_y!bE5onFu-%XŪQ]^lL 9wHuy.bDJ*. :nv?=4鸋z'^R-,8`*GŽ>J,;i_h4#~Lu~ řH㔏 6.Z蠟a?/#Ot2cG2#{郝Bx@z6B^18nZ;'=`Uα0N rv|9o%^0ƒ.~ms l,ki k`dC; Tm)2&R\#MAdŤNJuL.<`Lb5%lAv{9HIĊHL`-w>{iztt"H%v@#<$H9EVvUyG ]"9"F]D`,?K&%4d&-r8!})$$\i jy2tuʮ74Qa%0M-){2[Ājއτߨg!TLn@3Ii w79vrVCj ꍱ԰S˧QSso3c%ӽɕNb=pLC*[VnjIHG};W5OAp8rdea?_7m@7^DL C rmHJֹa>Q ămn?'/cnS,se,!l#JtPV(}Ie#,?3I@φ!3& 76d~y?&n$iKlT츑 ࣑Y#C_qf=h{o(-԰m(+lF{}Mm 0FFn96C(_}FmSHrKxp^|-E IP}s*ڲ3̂CG; T*2h ڔ) ++bQ0hT7,ҷO Yid ];ic!VIσ [lE93|/RdnE= -3"E&Tevۋec Pr$2y՗\blHe1ᑔ[ {`Q^;lGi3m=3$GJ 5lY܏VGêdS<(Lypqr` '<"4o)Q,8G?wjHaPC=4a69@ol[VpxPW)mgޠ59T)&e`````<C*aiT%Y10000L` M100000b`````H!C*T R100000b`````H!C*T R100000b`````|=OJaӿj!g|~%s T`IE{Ը)_F˅\21K5 yIw,l|)译L4,i"ԔhР_IC*}dB6GRN`>Qӵ"7h\سxn@&lN4 uns_!bF100Ռ& &aŭ;@~4h{7DuS)lp K@՗X`"+LP{fU}.Q4des󹘒{sI-'u/Z2[Yc97:!py|\5HS֙ĂiSӛD*%"&YfQ@Ҷ ȽY03) VeeWh3P^4VZP 8o~_9л|u_+JrĠ,<1X ɔ~z6"=ҰvGVyV6Db+{m9Ħ] (F/cn`%>19Svm>}R[<ԂT̀jKN><O{uϝߎdan|+@hbCړwSq !-o#T& Up `?<iyhubYDC!Y Wk,N# -76b`kFVnglɒU'rGU w(k JH{!vn`_t?(=Ĝ%hwُ M=,>v7u" ` YpH"ՎD:T-b`ZhɦȰ3 ~C0ked"{ |# @+/>aK80IB{$ץҩ־KH$K8(ퟣdzݛl}V!P랳H9h]$ŌJ X!|*"UHMWd%<|,K=BҳeI9F)* VONHv/tk~Bt#&Te"X-%f@C&ţeb嵭UKYLRbzR)ȮN24/z lو 4DSWyvN5k[ܖS[*e%= %SQRA ^"(AڧC"LEH_$?E u`(l=iߊ}ϦîZDˊү _ _yhz= &#**μQOu!zqv8LѼkud%/MwlX[U};Nlv(+}*3J's!j9T@r0w4iJ4i&GJACiY+s??3HyjofAI2أb㞓QzW{^PAk;Q~jwQ7"%QĶ xv)i*O m e3@PfUWw., ,HKU9&8)Q b8La^M*Z-A@$&cuV"Z @h_)>ۤ~XKCvWPr(Ρa|-B*E)5*H|`=iwBx '0~kʾ T[n}RxИWOߣG\a@w?t."xҭݥXGA:_/k<ҔU?;D kvlFJ2Q JQt-Ȁmk+`-kw֥֠|iX?n[%W8bS]}fĦFw:%n^.o✚'2~a+ A$\4}Uv/_^,J8rL6IؕV[[^"A“wTJ^}0l'.4+ Tb3^,yl-H(^jz+د]v<+J]<03"K%e̽ T.a}B9)uO +H*ѫlQ9ūFAvj:C㿙$[U':_Y2ZAmy`퇒{dLkGt)B1r dMK\$m!"T?NIGtR}l3}̼EhDxtiX;AIoWoϟ;\'twM?Nnr}PEJ:MUf*D 9\dk2;I0$`4 tI!{ayuf,I3}nIl|/jai[vB7ЮgƎKE:1?blRĭZoeO0!؋Ɨ6_{`KEz=]2K!韷U?!AnW-ik;֒gC)_:xY*gt;-S$J9!L$H !B'>{LŁ1;KfƢ+;m[5/UsNfvr~BkD2NLurxJ9$8hg GH"5zT85s6x|Y@Tv=3=iN5 VK*,eB}ꆗ O.V I/j2M>8F 4JL=ΔQaI+@Maը&!XuCS;e_&kèX. |+_N۴c9f[-pCzֵ?SIZM-ʷe}eƨEEUQCJ9)q~F?ͮl^`(?E^{qz(/ז̳tB@4#zūb\ mDRk_t، z~ȅp@W/F"ܮ'.d $yxK ѐAI!X0 JFV\㢤bADLOhSa~?.]$xuuEx@W`tO@Fدq"!˦E9+N5-gNx$=:b#g ;4^y40؜1ӱƷxXnĻm c IDAT2Q/xBYʵ# PũUoZͨ>/رދ몎'&>W˼N4_ dg>R[rך`{NZro|tCHȀU$P嶥\'Y<o7.g%nXtnl9KΥ].'vbȰ[^( vQgbɇ&w8{C;x$ eY} {tq[n<zGqtrd$c *&!8趴 HUP HW@E*'o{?f40u91&cPIm^:/Bw  ƨQ^0t5R@%ɿlpSna,MvI: gy67P @S It/"0@/OzINd1w` MA15kD;ytdH:K[0*;Nf aǸ\/b%bMj8HJ><ˁ1YYŘNc <Uz#3L`gc+VnNNШto:A൓C˙lgˉ[g[էܼ=sCgJ Ab"!tBfERLלWN*ZtjYVYdCb/+Lu^9)63׌=@)$@AQ4f"p&@\Bͤ^Av”h2[ 3Wep5T de.qA'91I)T] ȁ SBNY(IWJGg 3NN'# r& X\3iZ6޺s7s:ċeAY>`2}0VfXMy~m! PuϫCt|ȸ`N&q#9HQANj0 4SAZtw1ZLTfLGO_+3 /hO3m+ȼD~ ee~Uavn,Z9R.֫D#ԇ"fh3O  HT  D  Q!  D  Q! HT D  Q! HT D  Q! HT 7tq:Nsu[Trڪq:N8q Ay Ag*3Q*Ay#*jBAK< C@8r@JJWD3 ,"c #De{!]! PQ< "s e422!G&^^^o2G.rǟx???C&Φ{1" ( "?2 E! 8"zD&!! -BABI@AA$*A AAA$*A AABA$*AD6GP"Y{?MD{\g+x,JnB6MQ~Tv+yg~!UD el,z3:+,]ւۣ,&>tV! Uxcy72_$; Qmd.0"nNɵ;7MWSқ)2?^Jl(N閈gLׂa2\X2ٻ,zBZ[GB|WykO{7\g.P+0DUeyb`q`iS 6gIcAp8@E!-ꅈv3"a1[6jzҞǖ 0ef08P4 [ `.' d$?=(f$MՕV 8q0@@ &0@uKBkJV`2Px921V bT #d]M*0[@h> =evw[A3>y &L1;\iP&ܓȀ,ikYv H`R@4T)xBTn܌ܣ,)uT(_nԈ!eJF7; I@ W'jKG~'OP3:7 4 رgGYQ`ZȈ_l6mՠޞ2=& >6lظ=:\FFN3[!Ŗڛl7*WзW_nm8_{3d(!t!t};A8۵5\Y1m߾8i6+QQ_미S[׫&2Bٲ)v?ۿ`\BBR%۴lѻwWPff/j)ϿwPB|BR%Zj':}f񒯏WЯwժAhɯ: ls-> ,ʸѯ=D]:'&x.3S,ݖP7K*Ѧe^Ҟ rK˗C\4cǪ|WԹ}O^#` Tطg7΁1ٴc6?qbԩUsȋEb=>O٩ξΛ+67<ѨW֪^;u{Y|pB{`tu3wۿ~Jp9?}I˗X']|` bof6L ?ξΤ+  gR.Xæʕ+曥B:yj܄N=7gΌL6IUT kִ@>>VQ1)ɶg'G|pv.17_56ы\HxRRr\bC ~?>}GVc rbӧM8wG|~ҥqF(@*^"2Dd̩ 8sœ9_1D_ܻ{ח^9߾^pիT/ :dd1#C\xw֋/a7㓒mF=J/c d,9}dyL]I d_._u?UzsؖjӮ#K5<;v]qMv`#/"^xeЁ%+׮Zv]ĵk?[l{1.6zӠF-?HhHJ * jU+שUͰm:ѵӣW"@VrݚQ:۵._u:?bٷ/CbRO5zjT_._OUXV @@א1LU@VBZ52%u6\?K3`_IƎ,V4m7%E(j.\fF_8{rJj.7m}Q}ft|AQΟweo51uߘo|ޭ۶@յs _-\7_7d+Q8C Lܽ7>>% Xxhpkㆌl 7gw~gsߘO>_09IzV(]C@g2u֧f˙1F+[2? ~mc۳phpA ޽ʖ.][wUZt͐mwIl2d`^ݻ,]/]1 yz"ԨAn߱sOͿ.Ν`7j>T@ynj.D֫_cǽFKŊY0Yn].CC/ ȯKnQ1gm3W d1 Wbgw F i)8ٴ~ӏ?VJO\r8x6Fp}6m Cͤ_oѬqπ`\.Cƙ;Y2ߞ4^Jiv\VD|oOHoLN/ 8ڷw%dS;iQ#^pwr2ΌN˕)[e@p#Zxj}ʭɼk׾F +&Wcb~;vkǶ5\Gw#2`BqzE`\u82%c ϵk<>Q㔮/&%&rɒiǰs˃pUAUjV|Q%+`2 Lfvw>>/sеS߶{;y|eE;=ݲHXh÷tصvŠZR-`Xma5b˖x5uC]NuU+U;z86ng9Sb$ˬBB ZM73`e5nDHp_'Z y*ϚdT 4[,``Ap` [dË́,@,& /t_M7s1yB,{-2cxhۺyjÿ-ظǎm4.Qڴnm.&Ki$x#%K֫GUPLBҵժ`Nu|B7T7}WfN{ 䌟8:\xiƬ9jܹ=l3J{*TH,+y?`vWK?Wی3ܪ}T=ޭʕ(w8bFO/]dVt,ȕ&ئX"8-[4n}}@/zK[U󦍛6eȽS_~%)%Ab^f}qbE 7i\GN^Gݻ,ߟKc)ܤQ: S](tpg-(eW.t&$}sKFuޥkw̏>B2|̫LjV}Ѭs_6:H&)88t|jWZ׉eΨꠋ~ U\@Y㎡]ZQ5fv7o=s/qJWVPik=;((e_}pujָIFFY>r(fsg_PU 0ƞ[HIVB1qƤ/waɠd`&24]C. @GQf1rizm<DԜ?V0D( <$_^teV^|o \8#&-;ڴnnOuxrp:kٱC_9}wg}UsfMdvߘ"EB{U+W,Q,cCN}3Fݚ#mjAZNxԐww=nwn#mc\݉N0lR&^(20|q ~]CZ?#hıK>zHio]۶c;WYG@E-vM1Lvkټi9/mv{˖ضe?noު |wdsƯ]ѬY#^;o믿m{?^w?$y+0rضo^S3q@NPu9FAG CLV@@1:w0\rHH M޶u5y5Hqq1Eʔ,yb@p#BG0rKpԸ[7kZ(jͥs;w1${>u?V~YUUZTÆ xqع.7~t٤7,Y4O6b&Y(nuof4^/% 3P_nz|׳?[NࠛDАb&Ff S8,t@ޟ/ZܲUmn *V4c:]E0s;WSRmD]6|s@0p(r=y.)Lʇf5H2cPٵK{x̙:(?A[?gN׮Q]S^ۼmw[OЙg鎼{Q8KB~,V~ #[PӧRkMعgO{*=VXT?UhDddŊը^5h6$ HM}qP+Wm sQiҠ~΀, D]~ӊqE Āa; Tmȡb`.Úm;v>T5cHf`̘@6A1 ɲ ?U )TKRS +2(J2>äw<ݶEܷW~t=EElDΜ[&098Q$,pa&ΦNtkV[js7 G(! h߭`9AsǎE#D.^rO>]&+pd^6鶭 +Ix&FuNz_KL/ۂܸ]}v#?^dʻm[[h0q?Ϩ5}{uӣcM7o)=|}-=v\+ddΜnFXKeP,pXx>rQ3"]0vėKqc_X{y+/wpֻիWe}mroԮsb#PUwbd4mcicas,]2WF>}\=u  zeժu/\2w %ުSB96mp-:&sիWEŖ:ePUw0a\VL/ l* x/w{͞  uǮ^=F( P@ڻ{rgkѬiH`4)Nǔ&4r\_lPqC#c$-]o t:';啭ŋG<ӣՒ0YXgp97a@/]-51g]zt,^̝GDV |R-Ј:|6mѢy#]m|K>ZD$sF3z_}ӯooժ!CSSS9!o1&+ <#daCdjԠ!@̫Tyfl뀦VZi}Rm˔lF#cIza?+ӸOQj%"   +RN d2J,ܠ~]Z6ovʵa3{NQQ`JCH…ujVdlaI IDATT{2OɒEce {kWt#&ƌ1cX"Xҥ=TZ_kl *4}QQ7bRRmBG{yZ1lڬI:5ccSSCi5dVx.|oc7=r^T4"<$(88$ 8(88( (0F Q5*Z}@Ě5ЫUQ02PhDXHpPHP@HPppH`P@`A`fשg<yt+襀bרVby&2nONJIuh (R$W^j\X2eU\PH]M&%6.47a?SZa< äsXXl@:>3t3^PEfO1k3O,S۽q#0^[[u5B3`S S/C w/Qkf RBSI$lӄPxQwbi~͸;JJiR=2_{!C8 Րi+Si;#*4RikfЀs gL_9U~0(_7{ʝ]:2g6_\P3$SWx|ys$yq%)fiu 矀e] s=XQ2nE\Jd(QYed$Zs&"KI<d AABAA$*A AAA$*A q? HT{&mNNB qxM)Ay&/$*Ay%i8F|AwLd8 l] e 8LN{ VQS@Ldxu7}> 2d7GFKBC)* :`{Иlxm`$*A</fr B czAͱ&Q!x8}^[ĺeәUkK׶$*A D­.xȅe)t =# eɸ@Q2 asP$> {X Qsk1b1`L R$*Ai4iADT@(P\@ C&c\,l$*A#-DDutU!zU5!F8uXeSpj\%:$*ADkv橄:Oor΅8GBKh-,e8tX \.e AD> SADM[1\5+1@B.;Wi3˒8`,/<Цjx1 gQ7_v%N%PNME=%Y꯸gܓR5AB Asd]s{ת*BPq'b7M@]3M+ۥ@@ƣu))2g 8˫Osnt麞\YRJ*UꮿBӴ]vITxe'IRtt#GG*TH'g x{yprKIҜTJ܏Ym zp " 䜧/fȤ{yDEQnܸ166)Ү]ڵkj`{/5ꮿrxo}N۶m۷oG[bӧu]7L/RϟXJ~_%JH(NIIAĨ2eʔ+W%A<̠Ą n)1ݷq<"<j.%0@_Lð>՜˜オ4kf!b&M*W}?޶mݻw{|K-|||>>˲ AW?qICA8]qgMfFeO`+`@Dy0-B/%%d2oҥ$CCCCBB ŋgٳ(/>zL{>|dٳٳxb߾}3E 4Mkժ!?[n 2z۵kwaY۷o?hРի[,YfYǍ'r"E߫W/___UU;w|[_ vǏ{СGJz;tCݻ0թSgРA=zN:ɲo߾Te{w4 )•Q%l[@h g0;-4'"T_SB 3f̰lBɓ'*UjF$'ʕ+9rߞ6mښ5kjݰac6lHJJ>|;u>/ܼy3SrKԶmۤ$ӹzHeҥ?9s^}?eڴi"IҘ1c|||/~С7|w9x$IeԨQ-c,22r/Y3f믿n XI /-Zx7Gj>}\.l޼yq#bt:i2AJUo_CQ X]/1!\6!,iZw]F 9߶mTg5ڵSUR㜇9W^y Z^=MdYq},˳>{y_ԨQdY^z,eʔi׮4mȐ!]p!&&.~Ν;m6&M2_7`D!w\~ѣGTU$IӴL._<66VAm+8`ZM&;ņ#  .|g k2RSSի[7o'LǏ?䓷~'{1c1عs~֭B֭[c;w&7 5$/:SuQIBʌX^uiQUXb&Lx?bĈ+Vm۶qƷH2;w4h""E:o񐐐`ƍtn>}NS{Uw2f ;-`AAA(r\N4mڴM6;w^Lޯ_J]v\.!D߾}C ,)jiKG@)ݨ-@|Ä$[KVTN#G8eʔ1"6FEE]6**gڵ͚5K)))7L`ƍFWDUUٳ}ٴiaE1Lj J*w011f۽n`͍~G5j0/gf͚III֭ 4ͅ T"-*P؞pi9J&-zI2u۬$ed%ˌ4%*yߧO?33g4L622HJJR[l$nϘ1jgqϭڴi3{I&iΝ;׳(ֵkZn E Q[i&?nGٳd2\ܯeZivYڵ+l߾}׮]ح[[!FDnR l(pW0#xһ ј %i/`q<?? L͛7&EEU9sˊcFTXtT] ai(ETm共+$&K&XC)P )W(aUfqn'Kf$A^2eرhѢcǎ9s̞={ƍsB V%Jtƾ꫊Úc6l?~ٳO:vZH;kV/6n;vlҤIӧOz7o^ݺuŋ9r!4mdE}.Nuҥ ž" ZT0k2D`RLb)mx̐eƸh`N~+uIbL<TR{9|͛Y 7nݺiFl63FQ'xqƙ{̘1tЦM.[͛/[lbL&/\Q1cƘL&Q:wh|}} *tС-[l߾=!!'**unjc6˖-c:q>}\ŋ$/_o߾9o߾7o4FW^yEaaa֭[ѢEe,lѣEYf֯hժ*ݛb_ľ2x$Y-uG9<Ώ()hLa*Hi 2ADєZ{8)ce 㜡 J=b q2bؽ5:i1nx~f . cCn6m… +VyfE!Ȑ!8 @մ1_[#$ZVv2s_EWhW*!a,s{턍5}={ݽߛ&ݧ[ewt&Hn/2cԩSrj={$E!DC ;0!IL`a & [ž+?5 7;@gwV%}}L& s+S[neyDέ[>fYVDzx8dC.+)))!!ޑtS]bלzE:C 8@!B!AV5%)Yχ[k$Y{RxhU߆IpM&?c,YVRbQT;S?r)xAv% @&7+B0Y}9pCr={b/__QBjSRRRSSUtp*I`j(dZ|Vbl?HBA+t]w:n\.UUu]ׅ\⊢(bX,fŢ( y1֋D tYt]7u4+k2elSk2dYe9$$*AD^ "r"@1fL v!2 Gc +R 3vߦEs G_I}׳ %Q!xг,%A6K A#E?tȋIT  AABAA$*AABAA$*A AAA$*A AAA$*A AABA$*A AABA$*A AABAA AABAA 0E?k HTV$IRU5&&MIIQ͛7'O|ѻm\\ܔ)S9BE "+c1Be˖믈h|TLAƪzw_q EE CQdY~^:`J*qcbbVX1s̷zK$Ay#| ZlYfM٬(Jҥ }vCx<"((,g'% K<$I,g{[IAl6Xpp鏈SdY޷o߁"""vщ~ѣqqqAAA5jhٲ"M|Ūl6;jb:tNQ~q9tjD>T@dd$I6m_AU>}<䓆606o޼gϞ5k֩S} /_~]\=z/_~ӦM/vH4w?}fٸ|ԩ|'Zl>>0CQA%&&N4iɒ%'Odq΅7k5m駟իڵk'OڵkUֹs 9rtz, .<{ Y~}||zz;b]`C*tMdx(yGHHՃ IDATEYnѣg(s=y$_.^s6﮿+V8y͛7:tȑ#4lذ}1CQN:#!bѢE1!!BCCgΜ)`bPxqyJJJPPGYbűcdž RD C$I:p@Ճc5k}_~9x`MӺu6mڴ3g3$$ʕ+V 1bĝ\hfL` @wh/%oX>O* mz9Ǐ_rgdby駛7oWE6-666 7nܾ}Qh9,k湪aÆ{T'ۿ5kj׮{ D7n\ƍ!\۶mΝ;ׯ_J"EP$Qɕow^EQNg.]&ƍo(FPUuݺuݺu+RH*UN>}ĉTϤ3vm۶۷oƍFLRJ.Tǁ Bϑ|7|FϞ=kLc=44k׮˖-[h2~z6lذgϞ(\FZ;^bI2+(#ZZΞ=`+92((nܹsݺu71ZZOof͚lٲ8-[uֺ𖆆Rӟt͚5!!k׮]f #ҧAnGGQmR{po,JB1aݯ쾷3yUW>~#xi}Y5+€ uﵵ=O>瞻zN:)\}n̙fv|Sz衇nn馥Kz/ҿZ~z|O~򓍍wܱqƣ}zs>`GGg>>U[$5\aÆ|^8wEJK.}ҥKzٳg_veis9lkk[`_^D&3f,YdҥrH3f6%K,Xo/*^F%J.*iԫQIRo4.ep"ݡW?e/ԉH%+tMЇf̘#| _[q]-oyٳ{(o}Y rJ8d{.\.RwmذaŊI|cxv(Zvgd g /9_9`|ӊ>6{ڵkuazTD-V:K^L)W] R4U:k.uExl\^r[u= /555Wypjg޼ya~e{{zzϟ_}V9ݻw8㌳>g?ٹ瞛_"-}^{/_ι/LJm^*e9ʉ0U{+(k1QK:7,izwmj6}+MS}\ /n:c̙կ,Xpi/{>6 h+awqnȓ`]w݋/oiwy7oc9ETO`~/+R__w33cG^8}7 ?Ok-X`#>*5rʜ,*"Uh;Yp+"qSͩ'7]|u5P(&{o?sg}v[[ۮ]Z[[Ggzxc}}}E c[?c UݿE1a$xğ(p1|oy[ ºu뺺N>f"*ȡ*"B;w5k0_(u555O2/sUSN:sjkk>{4P);΍piÆ wB۳r{k_=Y\jժ+Vg?+cxjժ 6](;wB>gyfƍc{նcǎ~.}\.o6vկ~k׮?Cg7lW_}}_Rmȟϧ~͊ }[C}N-ܷ,IY \Fo~[n}zs91Mk\.z뭿o8K/z{${;mǎO3ό IꫯNookkx~իWWhrpg}}s.|wuup8x`T?߳gOcplpTTs_1y~ٳguYýJk]pa8vms7\(jjj=Yڞz믿Q9uB"b"]k=|Or'lʕ[VQ3gW\ٳ'8S92o޼??{xWZuUWw}#UaS3g~oV袋!̓$  ڻᄏ窫w/~U8l6z˗/1cܹs#ɹ;[l뮻hR B[[[{{̙3O=|=R/ϙ3gR9VbΚ5kN0ɹ+;|饗!Mo1vi_-K/gSOMQ===a*ek֬y׻.@~g_;?7l/V.oG?Ç^#oo@U}嗿owpI5bg쬫G?x8+T*}S׿~С3fniŊWB?<~/_z{&ѐ[ To)tğ U(Go9WWW;֮][.W^7%Q=3Uƶc~K_R\WaÆ;I'mV.?_q_~WgChqϊҥK7?v'xb͚5W]u7g8s?Opʕis=O=ԥ^owG}; 'C&'鯪;h-g-N9G;3[nݦMzK.X,rFj;ӇlkT5Mӑ/7ЇDkWϯX"LˇI,9O$o߾r?]bҥKSy]Yfiv]+83;\ve>m>ig/I2!4C2.JY+L6UݴiӋ/x\y!*C^ȡ[linnnhh8f6lp555~| ܏W_}5=yOH7(* _~e]~\pAf+/& b(›V.Z'ԧ>"{ql߾=T*ِٟQ%.BpС#^Mޡ)ߎ"8Nn馰>CpdncnVo^[ ccYx+_ w8sO=!.'%sk_ڐ8⇛իgGY]]]_裏~;˿-\SAQ)sƎ7o7/Ι3gٲe%%Ks7oΧ)b䒍;^I}{?'t믿cbjBᬳZh9D$roS>?E}$G7Zjۿ?bŊ4M7lذlٲ!ּyxK.N;⩹r|Wk_~KQݞK/t7O9 6|ɝ#|y38җz 7Ne;A gxu6ݪ1BN>E-ZhO?=lw^r%aMb ˗/.OFxMMM""---uuu˗Mo 2 [?555},˯e]/_^`˗/ *͛7$IZZZ'x|1}u4x7!555a|wuƍo喰Jf4yd_`f6Q?__{'6lx;.e'Fyw`r|pZ9w_}tQXDQ$I\ }؎@TD@T * *QQ ިFɑ%8qN㊊ٳGU'3knn-hu.Up"}\'( x|83" CTD@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQQQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD * *Q @TD@T * *QQ D@TD *8$ IDAT *Q @TD@T * *QQQQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQQQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ`3SU3ߪ*Q Qoއ7Yՙn!*0-1>8's-ycCZ LMNտ1/"GT DLTUT- sN$Lm] L/"NMԋ%E~oG%DիzQs"y'NKř$QSqfTMULTEK`2y3ƚFD"Dk%J|:JK":u"✊3cD{D\%bIlIQz!\Tĉ)3ȩ91щO R*hY,q}-DM])zEӊDDX:,^Rgleu%+JQ5v.VULc>D=LxQLtO{sVn'*:־ *biQ|ՖӢjE]sH&(]{`EQ1џcFkgT_+Z#.vNٰI Q,JvifޥvV־yu !Ŧ e;(rN8*Ru̼x{DVG~睈 ,1̙$5>*8kZ L3EI,-5MŦ ҭNM%qy'c! Qq BRR-Qz#"T4T,\">eσGNTԧfjoTD(}_Ϻ4%1lBM`coVY}Yo WTŲjXl|{%fn `]+MSZ- 5>Փ+j_liƹTE >^aJ6FI͗j]J/$}M/6SR4Mx¢iOk;rS)# \|UK}A1ʅp+/9JZw{_K5s2sQ^\z¦^ӣ%-J4{՘1YZg}QWԤ.Ka W+D>LqjCQG$8<1_ FTe>-hIDqHT .K_ LnQmK Zz<>5_ާiBT(ff7ݲWsSr~,CSOW -SXCJG#ӂK57CuĽaJ~%Χ|WeУ*4M:( Q# iq.;WZ2)Nf!9 ʛO .;k_߈hrF-Kfp%U|^il|9MK,:j);B)׬f QюWaz9{ںK[',4fޙˇ)r(paJ2Q/ɱ؎RbuI{bW=Le' ]Zħc1RHED|6S1_L֏+DFQ,@E1\e*NUm?䂕3CT13dq6WM>%R9ΚMBTL iD3mC")qϵHw.D0Lɯ}231 _b"&RUTT@=%5+^UTENEַY;BrKMQO&Xhq "cxn"زe OY*E"+:_Q*] S3q_}L "S6ub"F;eIke2j[i:`+|EiiR?gyTMJe*Փbx/i[NīO ]]b98sιUퟥM6M^HGi̚Ωu*PwOWSSrKv˯z;x DN=|[.(BE¯!$ιq Jyp_,MOĥqksÄ&CL$*jC]XRiDɸqKOoogWWM) EɻR]aOQѾ*΋wFYh*/3+z$=,_ 鱹}X%D-:9ή)qqS(Be^CGe='w`ZEj\G>*Fu0X8 XOD&OvXv.iq.:^(j.zmo%[ EP/@UIr,dxkeÝRԷ=Y墳ȩ:TET"QuT UTDtt8Z:9T(&N6%"&..`Մ2ꃘS^"f%GVxm]憎҂LUU9SSS.|eEpf(f")ʋB7;&o|M~^_CgꟴWw|ԇ$lK`̯TEj~׫ЪE\*MfVu=Dnba1jd?K\N%T0K%Q *W'>YL$ML?Ϊ~TSUUh/y¿ά&K0IXir sϜ݇ItNz^~"v fC Fčqo8ҫS S*jNj ㅟ.hJ6wMvQ"D_|NчhʾF&ìSaw>H҃0Xz|cOE-(,B 56nb O&.RQ5CD>!Qai:nyUS':yvÍT+-ݮ"wHE={6u4xp#0dg"ΉІ&o4 Lô廍H%*p4C+&>KT_?ח;ҁ-{^$>\ޖt`̩X_gYSu߻Hr>6_xY0iJ-ȣ88ҋqj*Ĝbwnr8]mF8Qq*RAz3}S0rDbjo$κoܻP(36ZozFc,@ MDTVi"b޹ON %-[BU?B~%6`"J}lo_ޝCR4y[y'bNT4Rq fuܟ>5EbS?˩\]V߫`%KUfZsz w~ vx.ԩU5ʞ!:`䑖c*_WY VstQ-UUSuTXdGM!zw>ug(;%r'Gg.WYڀeʢwPDW|Kg{qR})gch%0MͩV;~|W禟+i R5l5/'>*e7Q1S*f}=ݨt˜ZB?^g5Ո^HEY簎C3qNԩ̈}Oy$uH/HX%vh塩pGN+VtشLYTR)v8sEsW#] -ٸ M[&$ԫJYQsfTĤX^wOT]X*u QVVdҤGŋi"u-|Qq3Xg?l9qo3gFN"&Zwuw?/6Vڛb}k_5!N͜J_%>TL) ̉b璋CRlRlmv-~g qc1T-85UU*ȍ8I~s1L4/r/Nu8ؙ'ja|g L2E;&tr\TzmCM[9Ѻտw`fB*!7ʱL7 7**RWjw,jɇOfxx$x^ٛFU+]o+p;~]$RU#gT…S eH%ܦ^C>EITy}LCV[]d箲HEjfÝ[+jC6 (*a4,[s*&$5d;_[o~F_Mع(mi?&R;/oOɾXȅ3u":q*jTOwXpJ:K?)R#?:L)ԝv64x*E0F*n+ue,SC#I$߿՟>PuƢSO-::D޽[lsQv˩h" V"Q BQ;"WN=WbY|/(5-x`j #Ux*};Uz?^Z7ԕxgbNjapNN_kR缊ENjSQ'hĉ8s"\b6Lq2aLcs&^EDNmuuK.-V;?Xj$qbևm4)ͼx31ojff%"ļ&&75o%K"WO:W~شX|ADDӉUR=W{w%QX-OSsNU,/sHL"0lRBUX8k+Z1![{nfIIJ¨]EkA7MKjb&/zIM3o꽕-:T}ʅ~kUܐxq&I?FT_ti.Aj0 S"IAU"Sٔr좒hy7~'yP! Rꪊ$=wIiSSQUŇYZ>Xļ%&ŋf.>/&$yW]Zhxe`Lċx#=?c 4TLDsFC(U>XDfSL+%$UQ NHTN!"^ZtRXXYD_gRiʠwD_̽V\m XTV,*"J"M̋x/>k&W/ͼDru.[p*IULħ5l.ǹ:mcg~kIJ *WZĪRJ1š%28?U9F>_cn8J(В[oG\;l4=Z#kFx`0yg,"{IE¹żyĬ^+%^SRoņƺֆ쓬\w`}m>;Mzk$/aK; KX8ĉ*aNbNT5CDa琳)躥P^y/N8‹toZxuz8P*ʶ.+>?c/&&KR5@IMX^LW/bf>y\Xv8UVrE5S ۫HvSs,۳,^YQԲQ,vl;Msb6%%ŕ*/aUԊ]9"O~H2"LE/X&-K7?Uf]v sȀ:`-dey8;x"N5-٢|L]mĢ=Æ#SH8ѰSqWWWuKM伓XEE!Dի56(0LD}ot됏K/ԣ@!9|E0UcfgW$ hyp zogDY4[6/|#?WCWH$p 'Dĩ$7W󩝾ijef| [x[ NgEYaّΗ%Lz$ ۷ *] MPLŰSHp^L~*bދw~Wa%Rp/sfD@ą/υ%WױV*X;``%l{_9 VL6BTX!sc SNRs|AUȑ9-[KW*cnl&QEylS5Qs&Ni1QQvT5'!$ΙQT#3Nc8"&Wċ8'fxuGBDTwFMdqIvVNrm0fU-R1Sꪛ IDAT P"rf;;.LaEU[N L@W`2a*bkvwwWk%"H$̛w&9uMD/ail . w cl=fC-nUՙz:Y/ӕ4[|6AM\X o""YX#iޫ7HGOJloH+#뻈K\ȉsN}U*Q2(c6W$ʼny>.Zj9FN;K%u{N$Xl.=XxpMTZE+ũ/⳻4 W!r2 LxE¨BM#3S ެ1QS֩Ip9F'QFqeDTTUÂdfb\xg5 T&(D&rR5n!LEgKXBs햭w&^ywxM*QS/SuRY  bL²p9. Q JlG_9sE$j-(1pG-0OoivWqީ:+w<U̅ DTGUU}TrV;sf~r,; Ųڀ{Λ)UqgxV6"mXT;3*YZ$?ymݥ.\z'j;Ss٥βbڿ+|grV9q$Līv'q9 Y芩 CLD juqٰS'߲ce\>[&9e/+s2aJE8WvWgַZ\%|<'RJDdRF*a<{ PPby9) g"ƺUC˷;'.0i t GRah:ڗCp'WNLMGJvǾ-gǩի䥲d@lR遈dMɆ(}ϪZ{Vl᪍CNiUn>QʀUg{%*,##|aR[أޫ88]uɰd1|/HZz>*3=I(=\j,vbqW.ZB\ez>m4 3L7p\㘧`zvΞ=N i:::8ݝ$q\__8{l}}iZ,-[V,yZ#ݻyȍ7vwwGY}}p۷}v3< o\pass3O8_>|x˖-r9cP83xb`jܹêM]ZZZxqaۙ\ɟσnݺСCɮBhѢ3g*7hBrΥip#lι._Uoݺu􉈴 #* {( iihhbX__:;;gΜ3Y]oٲ%ω~ܹ , *{RWW7Յ|AOOO(Jxn[[[ ' P*oF sUyֹs2}U@Q^i̸kAMMŋ܉s/Ž;XET7СC|M]*>F*\ SDTp$ )\Eh S»qŋquuu7^{{ //[Qqs>7S5uggݻGx~TuϞ="iLp'P(,_|ҥQ'*MM6mܸT*}HT0 1 ?477g}ǎCvm߾=l)"---<{#Ϝ9sŊ ,ȟ_~y˖-$D%kRns4gcٻwo8V72;;;|:Cs``````E R100000b`````H!C*T R100000b``````H!C*T R1000000b`````H!C*T>C(4/}9;}nP1TEmP]S+D߈Fl)z7s?~ wKlV_}.'лD4x/g2| Q`3JOBt opIorS xg6uqcſ;&g>A,'N,|% RAY]l/'V4b )`ȍ6 f& 3脄BA0A : (7"E ``h@Ph@2.h瓅/M!I Eą)hYp>B)m#H3-g] @F̵e@~J[o92T" (fh]^Ad'5 a HE l%=5X@`}Ԍ`)z%x';H3lIriIZxpKGI{)"w$M2` HzMF4ApG(+)R$BypN)zNmac:ObHDxmo14qOI@=+5,#YʴE̖-vdXh_I g#2| _ЀHL1~]2LHoi!xh~TNt`v֛!}Ȥpd1z xlmu|Rɰ`~a$ͨmWNJF_K7$5XKbPWȉ =)Bޠ&) 8l^_4OQ IDX8ѯRF>A/yt M(T>[1dS8pxdb&h#*;n8"YD:̺0x$>ұJc ǯ5qԜ;DjgnՋۯ~Jȴ'dחdr2'ql ~aIٛ#HL})vxtk<uٖLzold(ͫ jCUsŧ~xn"[(U'^=W4fP'U6_㙛H$])v;Q1ύfO-9󌑇P}˝\󚈵4 I Ga9v]=A  ugnCC*4ꄟHvuܺ+ͺ|xhʁ]%x Eˆ:TvG x]Q=b֗^yHm)Xx;}i7m*R1!2GI=|b`V unZmGOE)G~zP"Mg}ğ#D B"' P;n,ǞS=3I,BZS>ziN7 vŷ|+ 7ȅcqqksw! R":a/Q3`Cu{u{}!ѠpW,fbe|- Q׉MK-}2Vڦ;.S^fOm} ^S~O£ *ty?MG]ݫ_^2K=ŏQ(K>٢$~|(HH2,yNo%B>9ė//y@68*ă&__^'.= V:{_̋O=d`lP ۩Õ'_}X ^HSvO|+kOkr-9;.]0%cur^érIMM>R9|vH~b Ŝ%yAII=q9w)ef?ݣOƲ}lDԝ`H~:#O1`?Mک=ĸQ^n@%&8F]wf\»B$$|inKDKn=֘3;o|]{܏JV ?'@`T@tG@! YzT3[o|珔]s+Kڟ)hr-Zg^  "bf߳ֈH1ˌ ?z{,|?B bTc Bm\nUWkb -P̢[FvkO 'ZuH&b:5(zBU&!d4K XU|W-> WO;? /K8CbcMO2= #^{[!7}NTGy_ݬӓ/e*!@UDjXꅪJg׹p^H% \ )-_=$oB{dJ ;>'7r^IzmNr6S5/Bޜ88JeW|ut 'w]K$?d 6^F|wLG-}Iਹ5^H; 9~{uv$×v)DM]=c"괼{qJy}Xg&l"H64ͿZtDۗo|:Y]_Tݸn ݰ,T^ԌG9^ ~-5n?=~ [{ _[.NG[- ӔF|yO jmK@ؘD-5n=~_-@ 0/xؼ$7V~h DÐ,IѸZC&jj]j[j]ᴭ  pVk얕^*8f*tY`MZN8b/H 3@,}}Nq.׿#4XcRAXs"pU \NPC`PQ8Gz1^Vz,I3UX?5y:r[R $v?:yOsP:~_?'M N$ Vͽ3v \ ggEM?lؙ7@"äHݤHCF/oapՅwv<bT:Su;=gCB oԋsR %R!^\~c3š}N9Rݭ/,97uUHꀺr,ekEJC*)qJj*TREcEc$iKu+GCs~yHȑBh$CPZ꨹`[֘=*=k^k6zakHw n^}D$1 : B٭;hz͢_eR&KV,&P,;˻-^Ns0է^ӝomTظZN/}r()%.a THkFL;;~f%?|lqÇM^ϫSǜ{#B5}(7#*u__Rh] Usܥ7CͱaqJ ό4Y$z < p7/aCL ݣ2@Ȱ5]2׮_OP]xiGcӎ9Ev IY'lK?YF{{lnB0dQf82_?Q6l*߉ f|ؘ]}D-YES*J%XDu'v?䀳_/Z֥e鄯]Z#cȳ sU6MQKâPi D&tXvP;DbN)_-n@Z%mRx+ h&Ddhx㡰K/&}fJ'#9O~!] x@Hd+18f!vE~j 9ȔfoBwͻ HsZהs;&AB{})v͎}%_35t=1 0PYÉQbXFEV׳» MԾ(6T "gfo~uw/ZCib VLKwPINuZؘj\I \5y1~3pr$IyQ] ±&p\W=ظ,W5r߼r_U/no ^AYF3/>XF%olʓ2Jaڠ)DѲЂ4@':“ʣl:gnp{s7;k&\()]vu_!‰yƥKB֕Tz=&L=M@skZ B/V2Zo'Y1ХB'_(n_z~n~>W}AG?mS=_ E{~/(rDWQKQNܜeܰ;܈_e/4BJ))aM`"*+5c vm?w8Dm2+uBӲe{셓VuYun鈜Qc?~Sc+xХG DPO:pI`ysHvn5[9U 520{ԮkG~Ӳ@{(pfKA%@~< 9MKo=*HENMΨ:6bo-";; ܖ7n+iۋ(8JO=JHduPIWf_gAM8E*vH:2!i)=\P0#5 xJ=P+*ُxQ9wRډvQ|߳ktV\wPV Ko7~^ZN9mEݖ,dפ>־J'5i%^WڬeI@M/+kw+rO6nZɫǏ!D[ ޸]iȀ {NiŔ߾:</O3ZJ1MHƦ3#1%qU=a}DV/XҠ:48O813c#νZ-,r`A9Q:\y!2z8YOE3ثԛZuOc`X:f%zK┡A{l!QzQk1SN:z@`h<\oI/,| J&\}~BɌ.%XV=O󓭣~'osM.Β%qnl7LS)RHx;Htr)CzBvE1 #Zq޺΋nzG cKW![&9xYu'f~kzcHteKͤ}— }&ʇ+_h{wȮLu5Lܷmk辈U}e P.,,[TPŽU p~UGL ob0_mML`L.>+~,YtϚuϻbh_ݏ0etG;ONMlx4oH7*z@Ѵ 2|JW4X EK6u2(pj821@ K1aV&;w"Ԧ#P,}kʏ?X#aO+A\O=^"Ga1up>¬:m^-H;'+q7S\ HnhzM:T\hԒ!jb;Z71 -Ul\!m5jyↈT`N*3񘑧k}M.  '#:G෭z +Q=׾^/BYBC-.U/q&ݰv *tw=tMB~@AFv<Оz@^ |su%6F^K/O?/?[Z_Cj{wAŧ YX-IK03zJYJ٘so]>sߔAV֮~a׍}6?>XؾRC}T]B 踙=_~n@2 ñĸS~X-N'!!Vm\'Fy^˺zYeY+v1 ߊWMޣy;&4i脃ANȠ?OIzCndRFAE*Tu6@D%umy =cH%\{ pB֮ukh1:ب_^ wFgn+}CϋS1+ i,$S2$呣k49G2|QJXѓc4ԘƜwtkH$ɲ&Ϯ~@2J "`/̪ D" \HXgW]x}gbn!f" KQ YEv) /Hp3vjv[OfZ, t x31r^-D۶C Yh_= C:5l _)ȱ=okvǒҞE?ZGj5$}*,u}qd&1~zoGL (OʴiѼ&@ȱg:\sgC;'6,'i~;""M*a9v\0~r$0PZGtnZY,`Is D"\1iw_'B_tYc~HL*365/UŽe( dzѩꬍoqq='?I~szlulZ?ʰvpN^tǕM ]#ۭӯF_L쥚.ġs(fT5S_ YwM%g^͛t.t[ͱ.QJl]PCϯ䡌]JLs@k+cx1:1mśPp͹7gJΨ9׈ׁ\^Ne]2?A`ݹu.p2fjw=7zB1$?LMɷ -xAؓ!ﹼ/ѽaӷqٌ:уo갗92m{n,OWŎ5_kj)çiμ T=Pvwy M֘ѣ,v78 ۪iA5?+(x P#S} ~ĽW]kO%mxkNou]wwNi8j"% zQӏuޚ7R R~yɰ#w/T8;'GTW;<" մ.3+{N/%LPD}BUs$q~QBU']=\8+߻d֥o:\|RA3gi;\#r*jp O;8:w]T'ΔXf:DbcrpRkn3¿'f|9WUYR(r{N 2%DE IDAT*-L"<~7kBw,y&W@1@way _`_5?L=drץ1xsXwf[ie đj2Ѳ\lO hX:V;o!ա@ e*&VJ'Gn98PE1/ך[/Hc逡@1pq&6iVׇ/39z.Ј-.ܜ%= .l~G^,oh ?qd|.hk %údRg=D=9Ow&Yy_%HL$Y{ wʍKcy7yoAYC~jsk4s `_nXu.9l,h[~>ٸ$Y|@Z9RmzV/ZկV-o\b&$Xmk֯> >C $`" I6-2fglQ"VԱnCףƞ}ް\Oܧ,:mot`ac9եA)'1_VڹY d];6}H/05li}Zzp1S9 Z;쫿vѼTNRtҒҝU#F>"UoaʟL+vCzG]P:~/_Z.4~z˝?m/;({Etǚ3~ŀ3AL`&&..Īt$gnZGKJk"ԥdm  z?x߯=3W{s'Üb?M` ^gQ1MpiZB[<[lYf=V%`H7k.13pvkz:Gz<ȥvj_Dg817#&W˜xھ2"y:D8:s.e_*n+ u{w4[=fv6c'C*[@)Ku Odb@ NE[X Z@[, oב({qDY̝`O>:K-~>+^Gt3Ah H8*a ?TB͠lY+ 1Los$!+rb٥Ou{^ySՉG)Tu-zK^DN~} {C'm>x?SRp DM];Fe+>g73\o^v0=2Fۑu ?GWM8bI@ w?|{ѽ]yfRR[>x(*Ѣ̺#9aeM ֔io92cNߟ]1*iivk>򢒩G滍+," gf+Adf&OO%c`뜒Wacc-]tuD}K0%<#.' 6eOY_Ms 2}*3d Y&Kߢ.f Bwn{ͮ$rdwD;VP'z[I2,Rz H؂ݿM pMCRI(}+.9 !8Mi&1a{(`KŰ@X|)8I e),q* 9$D,a]<1,!@KM VSO&u¯Ǔe' -~,S/T5({nfO&`oYC] :\iТ!6C ^΁lTN$WNuS$3_ڐVuQ{|/ Nrx>ŭm戈ۂL\CHJΝL3nYK߫72$%f3ʊiM rd{a?[O0)B$Z/qGOHfb&V'0f)rbzm_O@.XhG`bMgHes3"7$ YfՇjQn &5d`ew|'\.T*1-dַxC`\v̴>ZlP 4́Oܼqp'Z4>kTX3ʛ;zsӭXU,\,Q )]]Ϣ2JAvޫ(<`܏ܻ^#'rU =w*4'wk"nw 0mL,.Z颰I\6s:D>?Г{IygEmprx*7w *ޠO2jۂ'{ "O" |v"f}ˁ_Z(nMjd~:~GyꗺT?Wf*8jP {k˲e̕zAFoBTRKC9tyua(5a@,xI|r,A,7P Ya0/ٖ\hɋ y]7eᡙvO/FpC?-L攦ϧj{-ķ77[Bcwq)G8Dl6ۤ >1SYL' bb @tb伈'$AЂ1ALĬ){([TںEʒ*JF8D$‹Kd+2x]1V[-eal.@CdX*4\;Yܸa!Op*J^ RB[J@JkXѢ|XtdžَJj&62J8S@R+L旁$\X>\4"+(`qTp>jvXixo sL&&={Lfp2dAӿ `Eg 3DEYz٢s]y#<|.UZ1Ѹqo[ɪ= R7ΰM_\t3` |:@w-9 ~|D.ΞgU}:TL/A,Y[k8ᚴi)5gj~*';|ꬿ'a q:/;W"#|]lw38fRubhobz){a1!YpCeG]j̀ mrn7e`/* T;fmk]9%~D{e$zy;]:\+3sӿX&XiHw5|u^lX WsY_͠fr5>:6@uI={5e`)PQD5G[):x}?;aKvl+I|쪄2{{I}X[ h8r WƓ++}eUG_ęI-QPl$UG@ZCԲ8fjڳ牊idWXӏo{V\xشD eCIX*_2 kh30BXCpzT$40V1[i$h^NY v3`lZliE+{R;ٱv=%mnӿ+pSAu;CY܎E-?EjyC0ؤ7S/t| -mO 4ZZt l;9 L$p< @TRTR٢z?bNZrp$H 0X@׾n؛٪9G/w}\Qh[) >HͰC:DPG@Phth`JvGĜ+D 02X3@L f]!vBSfu;h;B^&TkLXASs+J ٕTf@ϖ &(vT?8:Qt$<I2>n}BѲl,pjǻ rfSbDnӎ%݋GI桁Vb5n2tu~od]L~[~q&om!}a xbR[TTtD홷@VBK`*?Ѩ&4z=Nj!1|9˛͍w,-\b0,#crw;{82rPvIF@Z4X1-700? @vW% q~v;J:IZp"P5d|\dheDWͨ^LX n| K(M`L(c% ɐy-N"4jWǰ(!gd/oddcaV?]jvs>zX*,]Եq- $9[,ݭ$\n$3l[,ۄW+2{:7,G?ڃ #v;y$AI]  YL9iNW KgӿhD>%MglbZzK75#^y;9AS2H&JkK:~ĭLrڑ:fb*< lES!nO\dj2m.uv7R^YE\n~'~1+ ĉvk'klSHKiONC;Q][TT~D&T6҅HzpEEմA9Dʃ]uV$& jSv8GgW; 6eܲdupBQ$}m9)`;8]=AY6 )X[KXsPȲesQP-mʸs^(2 4zͅJ3Xd:YM-ڷ-F*>-t-c͛E**f}ӛpdzΙgO =fTSWG)⍚]+}].S$u,xD<1Ɋ~S ۳S;M<:5gk]ψs"ڲ_^400ؚ"x( iOYzC@V2ʫ` q)uHJEKA,垧M AeVnz\ɦu.̧m "́ _ SUD9SdIfi'}^sӿ:JXd @k&`/JVob6ܮWoOϩۋ=g7}>tH$TtOFDv{70fn|d;`9b_Ns;JLjxO>5j[IR (lzQCmQ ̈;<ߚzUbK楒ZdvS,,גA2ġ7-"i tʐ) ={傆;SoBz D JgV?xۙ% El,CI}O@d{Wse\w_H7+MDLLBCuyGm_7Pl>l6b`m ጨ]>#`濜Z-*wkht5`ڸ(y;PGZ^V*|vjO/ Õ\KғBD*Y[P3J3iYJ)[?Is~m $!ytnn'C Zh&G )Gu $P0l/8*\^ XY gwD+-EpPn/G%8S乒lkt17ۅbsU6ЁR9tG~YR3&SEhJT qmW 4dwCXM统C[Q#If/m+P d7l @DlPS! jQ dcೕq oP6VNxZnкu :>|=t\~F0v/$壗-u`t"~F1l$&w?#t\vS:gָ+^{cfE[  _,Zy;u8{.YeV4@g66'6TXtm G m/? IoNхVĞraMcX ALU> 3 Plש*p~-9Nl%w_rR: [rJj{!$xY@F_?kEK!MRC(X.Euٷj8Aj\,rIvWe<*X]M 9z.mvBِTMN{.u.y>1{u#k5*pf-7fnRf1>Kev>!"}$%f{|ʝ;dqF!BYRIIvhbtnzHz!O{2000=/ _{<_U /M) GVϝo혋ZDY`Jq.";:wʊiU uozO8eQ}YOdV~U6vFcj!A"HM2K`k@`Nnh^R_#w%eK^Hjz%Y@+m_z  6 5)\Dgc!IeQX[{nJtl&gk# IDATm Z1g/5{{mI8SR덧!8і M NRY{v~$ШʹĎp\if1kU`1ÒO-bR1006P&n Tg~fË-9L5{vs{O"1EZ -Y@iCCF}@&ns^ +=#.F*|aWĸ#H@?UFql@BMK_Nq wU]?gvB &H*) Sxł6TQ D)""HU# T-!=i$ $狟ޭ3;7g= DߺYkq^`C$RRs1!LKuQ'a/#e\wNھj V+\H>W?"5ȡFUhc%JʷRXؙedY Ô\4Et;@G7_R"(`+9r̴?@ ]v {y W0QjMȴCR^ %r(S~d[dPxr;Ôtvꗳd!(N1Dү+V=3+UiKOGG'M[(9 `!C(ueT  ▚T|@4 H5JnQR₋\Hv#=\ o%?c!ZШ6B-LFF2BJuL<3._^%T6a]YGUq SYG1BNc"Wߙi)Zf\2W7a|wֱaJ T g9f+! Bh.2w\K yIQlJD;,.ppЍ#[l?َ>2 \_i:G?CM9JЪ- fQŝhcEa@I 跶d(Y'+{%[1Ca< L̝s%fh533>wJDB=R벏-N\0 w.׊uGTAtnڹ=NA&d*G]RgRor<%,p*R4B KȋWR$,5Yd w/<@L6P7cojnU Eҟ!O$BW|@tYn74#0`!\mHa~i/kz0(Be9=-#c.8zĎ)?Mp8; zD5#BDfT #L-JAHEأF5.w0% (fP FGbwaWra"wII:Ӂ &Y?m~:A`t csrr=_Pb 5H~2x`10 JVaSU7! ݢ $ ͔#u \q51sK't~R:ëҎ_=b|MSi5!stadFK#\e@LH{>Y*Q;QL#=:%(,]ۣ|&t~+-U_yCeVy/n+Yop}Δ"Q)jaD9ܘA'AuR֜T͑=! P "`` & @H"+(j142ۄ(ZoǗʁe!iHhsaiPʚ@J0E@ D`@V(Wx%D>RMI!.g=>j+ɳSQTIYG>*޺/XjTЯϘ10Ĥ^wRU$e_vޝw+E^cǧϜfٲI)n @Z9u̧ǿݪgΞ[֠GrcFf/HH@ҔR"^7^  KV]? ̑gͶzKǟvִiGB|1OϜ>3c))Uk7̝cGԪ^=}o9)%j:wξ{K2^22<qӖ䔪U*u}ROٻNC믯7;ׯ HNM;nPmЌ&9;f];w_/ phcF=ݢEo땜:v ABJ3fC ތ6m|.%jJ:w80~J#((ׄ2g2ϗӂ^{m{yv4Gs-={t ɩc= H@Ȉzj֬^owh֤#ݗDWUT;85Y_~բmkҰ.HܻרQ >|l{3-\L;}&>d:ڻo%!}N~5MГӎ8 (019t⹼ I{pլY$YΤ$<>Sb\w]ώ1ONoGJhenj۲~Z`;O|7vh @$3}iiY?M˦d9B,Yȃ=]>1\4$Ho;v[cVFM0KV^ђ%>>0~>dي=錷F_U)rD@JjPn& ,ޭgzn˖#IԠA@ۖnk}_`ӖmmWmM[ɜテ j7o ``H٭aKJ j5k(Wi.^I;>1.=2|ܟ4UJre4nXJT;32sيUmڶDˬ }}[=w6~“@?БcOMxڽu6KNbt"?=ct{\,5n)sgMWA`\lTc1A-[fo#ޙ>sW_  uMzyM7w=y]]Թf'1}Ϡ;F/3WJU+U\j}u4, azEo&$$sU6yFJH@"'׀muc;_];.XAjc> skTsy4ml׬б}k SP}$'?;voj qwFFF~?բY.ԡzIx9WHT4{u bMM}iQT>lQ9zD~=6 h2O3aD LMׯX!g(AP>V B|9 B>9y䗋~h3?/Tvf5ݺv2A(=uy]u@|^tճ^KSޜ=˷TT5F* (.GG3I?ٰjͺE_}GdZtʔi4fkoܱ}9ܶu{ݹsD D;w\ru.E_.ZU@qڎzn۶zݏN|·xiSQyVU!h x=BhƛnTc7mނ-66GE`f7nTz"ơ D$reUwf cF>2xǦL~1t>6&KCG:37Au`6nдј!w|Ui~Գf}j4>oLD؀~=wάSzf7DE4V @|ЁzYs͚DEEKN3GyuӮ  0cfOh )[&vwN]:sSltdB},4Ysߘލo rQ8iZ{Qe˿y}4ISw#بp0t㙧U⿯s3@tiM5Ї=yQ0S?D,L;We; S'=;̚ (i׶7әϿms#f-Z}hd7p|𹛭sTNcR]{J=IrkbǛڮY?թY=rEwfϿli٢iB *&$4jX?|owI"|h}'Ovwoߏ?>.3˓\c8ZlPիᯄ8W|obxxȰЍ'F>q?  8\KZÚ t=wȞf`hMlA%CfO7cb>9+3 fߴyRb1ZGNw }F HSWT-]}+ScM˓۴uW ^a!@ڹGėϕťHV_E!@ڵǗPbúuyc@6%zt*X) Xj *~tsOݺĤԜw[ UXbfDD%dydn3>,87jPg𽃎=o:y6)q՚o[Ry05RR5{ב'Sgr$IzlUҤ_6mAQ#CDMQfY^ [AZb,f- UU/CC]H"}ߩM^~U#&ZFD8u{Nd:ڜ+VԱ-I$0w8ʕ*6H㾻Xw1A_}q3_ؼm[ -333&jKyZDT5Maab|DRlX^SZl^~ܕUZ~mAڔ60pN<+UhڤHTblؘظ21͛5l6Jqqqeb˔-ժesFwpe^{{:EA (HR:5bpM׮sH+2O=Nj˕зn;tlߦՓO q*UH^j@4JL:SV7mռĤ̬訑ر])V@;ԪYX%@P{[АIإMF>ۓEGFEEGEFEEGFD6jPTUiԨni]7OlPv|ٲiZ2QёёQQI7uhײ II4ЊZ/%THQ:knN;Z⊎4R 6lX;BQZj) -}G6LD7#BVJ4,HiDE1pe6 ;N!s\(%Irͳ=|b:?uxO*-w)DSB 5ZTNT` (d+/VW&=/5P TrPv )dO]>V;2r^#_3  +Rո}Qi" *fP-aXTJp@@40 S *SpY$H`*i0̵**g~~H\j4o   @+4ԜuakRTB`x@ ,* \Y_ ejWd{:-f暅;&_ 1 sz*:8e%!$$"$*(G3 s JVG$B@It#@w=j B2 s퀈'>zxzHT$05'+*B(XpES)kamQj jo,*{b3PakETCUUj hIwʠcS B$ GIC 8i@+HvL%5U ao("0 A X~(+V^aUUWZэ5"G߿nFŅaA"@'ٝ7x3)I3CҔuzO&rT@_Sfn) #!Db$ T.e^d{*GYxqKt:4hPzu]׭M4i#FӧOQt%++J*!!!?SO=UCTU5kֹsr166ZjM644/"4MVڵG}9sy׻}RCQ0 W@ ^zaJқ_RA˱^aI_%P@=(13ۈo%l`}_=z4-"2MլYs5k$";uԨwy9_B ji[ ?oR?E"RŒ4!i?zoi ##c„ R7nܸHOO7n Ô>HA>: 6yle(έy] ,{i`k2իW}۷馛4M;vX׮];v}ذaʕ{ᇯ ;vYfB>EaJ3H9d,]%4Qfe^Ly|&b\=L{[n lOƏiĉ?]_|ED4 #ݚE=DFF~ᇁ?:vxԩ 3B ~ɒv6moWO?œy< k"'ÔTPc*H,@ʀtI<{SsWrPVƮ#%A2E%`M n+V@Ęn!`5M[~O?x*UԧO2Ǐ߳g"l2X  &<.;۷o?dffu=cF:u7{o9i.]5js<>oҥi-[ر0W"}ig9SȲ9n qEz J|"ԏnUt yO^5Ja?UVĉ>|Zbp>}>}ꄐR>># ɝ;wx<(ߢJ*a8SN!"y<=zڵpX2q~7dȐ1cƬX"33z:ŋ[2ܱc=|ÇK)vlٲ˗/r0%OJ=ˤ!XD <3#aODYOIb}%BdfΝPfMpnv횒p8?dȐի;W^yeѢEkYΝ;i􍊊4MunݺDiZΝۇݻw:th-l6w}7tKwAvڹ\._k+rmyY`xXfkl6D=ztJJ;rF!inwFFw}ꫯ>Sk֬Yn2erݺuKKK|-)R]iٳWfuO~I7s{oܸq衇`[l4IOO8pbܹI8uƍnٳ/5jѣDdO?Ng}VqJff!C233wm qB̞=;$$J* 4lٲ%%%0gyj|Rp UTQUuʕyTakNr弖LIP|QIRXqe4LgΜCrt]?~?\`޽;<<^z=zٳ'X8gΜDEQڽ{t\q p8V:{eZ޲eխ6Mڵ?HшvTҤIO?8q(s >dƍ60um޼9Yqae0% =<d&#nT\T< Hť"*X+w]Q5E{I&) Ǖi!!!niCf4%%/Fv[1c4'8~#G6ʌ aaa[j.+++K駟7oދ/m۶ӧOq=@gf0LTQқ(H5H!}/Q[@Z9KXO^F͛@̙֭s7x(tZn?u];-Z$4hЊ+.lMZ=s&7xcرRJeIWVVVgzz:DFF^bXwOz_~.qJ`!C^?LD.SN߱cG+('Op!dԢ*+̲X+htLR-⤀$ᵗJmTթ(Q)^+$* nf=smrV;7;,\{oB9k,wuEj۶mƍ>;y? ߿ɓ/^?z)YAlm+`+/U!)B| ݶHKl_ R|!VEFTQEZOE\kѢEqʿᰦ[ƍ駟^<0l0 !O3QXXԩS^ٳgǍW{饗N3_~4hА!C8ÔDvi6@b/ma $@ B4*dTQBM" h t$ˌu"0u='a6R1USRJ?e8+SLYd({Zc=ff~w7oގ;nw@-UUGiZ&M}v۹sRSS=OJJJHHHFA;w.vDlܸK/v4M+WΝ;꫟~)333""{۷<, =7h`ȑa?5}gFxxx*UG3MGu|u}ȑ?^o||ԩD}H:@w4f{ uhZX42'e JB(7(&j7 GgYӥ (żHW^>ֈak Zެ[ӹШh V0%BBB@X"nv+LSH/5XG{Zhm_QzeFDD:`wZ( E٧xyQd,ނ^crK&0խ!7sG@* J3̗t̪=B}}=W@^~Ehf\Ko!^9"2.$$f0عR _yǂa&X $|iii))ɞsZQOl< D ($ 扮WspńGDGDF\btm 0LEJz3223Sɛzؒi{Ea՗.H̐x推-+J5 .% 0LI]׭'jAH tPlv+,44r9!hYaQay^v}>iDD!a-p84MŢ0 S2]4 |a)$"k,6MUUUU/ea%'HH"hE/τ ^aVp0B#^)aD+9f/\H,* 0% 3_ / xY:WXTaJJ>08 fQaa(,* 0 0 â0 ð0 0 0 â0 ð0 0,* 0 â0 ð0 0,* 0 â0 ð0 0,* 0 0 ð02)0Lvu뚦 !̥O8QB~ŊʼnaDVLv'M|i\."[gs:/,Y4M)eCCC[hѻw[wb7o4iRTTTJbbbff&"K2 âr5aE_}g̘QC.lB!ccc-ڵkѣG_ SN111Rq VaJX5EQLUU-go!(6n#TUnFbFDI4l7֟ժUl+W+T1\^ு}GݴiSjjj|||߾}ccc믵k&&&l> 44tРAa!ݻnݺgl?,,:4͆ \رcD֭[7mt t4̀.[l׮]'$$3..ܱcǣ>JD^zn&+=æi !:wKl֯_y挌 *8o& IDAT׏K091%S1 7nܬY#GDVjհ0)eժU+Vh۷z]ʕ+?snnfl_}UR%oiiiro>uT|ukx"Zj֬Yz_5kMfL/o޼E]tIOOגoXnDvPשS,]tQQQ;v}={jժt &@֭z%K :44-ZܹѣʕgeejJJ_|Q㧦7poڸq~ 0%SԼysk$/_RRR y֭ar-V[e˖B;wZK)5k8[||<UUuѢE3gΜ9s;O>#+`]{R>f͚Rifƍǎ3M3%%UVBX AOhaJѩS'qU/բESNDZՉ4pD̴lyr!brm*Tm64+UuRʎ;柿)BgScYWqvZ!(rȑ"(#kf޽EY`i[.խ&M֭[W6l؆ k_-mpiiiJa͛7wEԸqc)?>5jԈlIMM2afaQRyf+4VBB 7ܰjժ+V$'''&&.ZhG-ߓl}̙3-ZlOHHh֬Y?>>^z+WܰaÙ3g~7xra(_^( Ү][~gaaa'OuYf7|ʕ;v5fg#vmٲ%p<-Qiz<`+޽5kf͚q=DGGzBBv.\/|аa{cΝ;wԩ(J֭ `͢zoL2N3,,,v1tٳg/\jfΜiof]a-tebNbH)}DZPӴT-}҄>Ϻ-p}횦^:=%%e)))3yo8ٻ QvMYD׭[?*b[jelkv$&&z^ iƔ)SIhԎc3,L7A ^C[\0{U2~qӧkf>i~iӦڵ+ *YYY˗/?{lڵIII'O4Mĉ7?{'uu/>)XX^DE"D7hPK Qܘ5FhHbL}h5XQ( (H fs; viy=gkΧ3dH3-SLRaK+n{WV&KOjUHjI>mW_v? z"{)JeQJ4}m :ub?O=ٺu_$ L&T 真'Uڸqc,; ;w䒒T*5cƌyWwݭޚL&'N_" ^{N?#F~j޽ӟկ6 _c̫rʻ`9?}3Kam%[N<9 vu޽}|裏ȑ#;w\JKK_x܄ ʏ>h}PG+A0{˗ݻ7ot81'ޭHXV"9Esy3 F1n8{ۇ -SaōyS-L^>ݻ1?m۶m۶Qcf͚o/BE^3<3~:Zjٲeeee~aK$+WСá(7rȻKF&_8pA1{9c~ڷa6woʬݟ_xѢED/wgFsWզMJJJ:w\YYꫯ?Tco]qQnҍ X6hq'h8-fvsDbɒ%oƚ5knT*բEǟ| `b]N0o>})SL4gϞpݟDYyq.gƿU&Nv}\:ĜJ]~8cVzb/Қ5ktb袋Wgɜ7@~:ҡC:u*))_|I&5|R3C;DQٱc_~~EBh`#qO9D"nݺ389֭[߲eoN2\jUEEEuVa|ᇥ;wҥK/u6lТE}f k Xf֭[WZi&c_8O6lPPPЯ_ƌ1T*չsm۶Y&k6ng)++۰aCV4ed_!"EEE۶mOYYYٵk/{II;o^p_hQYYٙgdɵVh?nժU߾}}?0C y饗v XUWsԜ@O ERm]3U=͹كI9V4hK/~z{w#G/ZUU3|WUgL&w}UJKKsssڮ]/ܻww߽eX+Uv͏F^hgC#\zOF":%TVVvmMȑ#ΩS?LH\zwN:o'onܸ.F?SwO~RTT;묳~'|rvN DdPIov9>}8WFM6_a6m\q_/^\:~ѣ.\駟knժUk֬7Ѻuk_~ɓ.]Z\\nٲ媫J׾vϞ={~o;}LcժUW8qbaǏ?y|A\}թT*Lv֭_~~xL&Bһ-QPYg5o޼w}w;cN=:W*ׯ_QQ̙3υh3Ϝ>}zXk|m'L0j(֭ 7#Fgu)-[lݺd̘1ZOIII6m#'}sϟ3gѣ31%H|w^p9|򒒒#}\~~~w՟T%Kjaa?!~3z꒒>@D~X,vgm-ZtW Ad>իXX,y<UVV6%իWaaE:,1 ~Ι3gСHv:tpf>Trd\.]~ӟ\rܹŋ;w|mʟ'".#a 3n< PLҷ& uسXQm!"\nnnNN_>Jzu޻woUUU۶m3_boƍ3`o?f˗/>|/ߨCEmڴD"[naz;TTTcyyyˣXləX,V^^noO2_`ʕ~Bq13hPTjСJee]v1a„95jڴi3g=zŋ?N;ˊd{|eΜ9SN{7xEs"v)v9Mu5CUbɊ-'u:VuH:Z~6']1c:vg?>}__K㤮5:3>A-Z_o?|% CS_UUU6m****,,TU#Fl޼_W:4mTڶW/8I/jyU1NDSJJƙ!+"=ZKq$Pn6J3Θ5kօ^X{c_-g,V9w7O?ݯ_Ω[_ve .:u׾0 [h;w̼7e˖8רm۶ի3O޻w~uUU׬Y9Hz=zj!Sb~_$}WPïL޽O:{,Jֹ%髿2cZj5`s\ҿ\H$H̚5+wԩyGdX}Ĩ Ԯ r&$|իqM6رcڴi ,?~?8e*]r%xWT?> ֭۵k̙3{!CBv(:S۶m ιs9g͚5_g͚ղe?0H\wu~~_]{S3k pɒ%={lӦ+-ҫWm۶}G^zic'ꩧ.0 G?*..NRY׿5I&cϚ5kÆ ~~1⩧7laGyRm29r /|ޚܭ&L߿5\s=:tرcUUʕ+^o}[|97cƌ=z?}UTڵ9rdz ^~.]|v̙%%%7˕oFqqq.]Cٳgo޼ӧOO?=sھ{Ι3gǎ-|Nu .ܱcK_,3شOgϞ> 7o7o>9?Xp].iEm߾}UUU͘1sСC?tP4sWg2H_lӦMz=d2+92}n`ٲe֭ x륗^_Nk۶wٰa… wAn݆z'϶@ IDATߪII&δ 72f:wmI%k<[^^L&[l2'nIRcJDdsDʪ¬K-B(D߿ '}%L՘ e ;myopS5tܹ{YL_'|[ڦM|%V֮]}5'jwU.d[}ڏ :7 *"y7nH$n Yq6X5B9/ϑ?H-Æ ˜,+M4<8q(4RIeٲe[ٳZ?FQ9APYYyfkm֭꬗7%''ΣѨfQU۵kyI[2 7Um`_A~~~ ~5:6gM flذCO3s:7іa" k`/qב3~2ϴ\4z{fQ> ,H%ݻĉ[hfz'ƌs~s·~8撒1fΜO 2ߒ0=)lAA/t&MT{L&k6mڴmڴWڧO\27/Az}M7/ˊnZ{ 7i[nlw^z/d4UY10`ܸqڵ;fG{+Ah ',őH7ͦM0~G}׿fFΝΝ{%dL뮼I&'?_nf7cod4h/8qb6mjK,y7֮]{M7b]v0aBC[1ӦM{饗Fuܹd$8p`v1cƌ-߿.]t~ڣK_osgy>o7ZF,XPXXػw+37[U-\7$Ƿv͛Fё#G^r% ͙3]v]tI&EEE}3gNzCM1gF~ڶm#FZtih~/}$2uT?9J"㏍1W_}uٳgg>-[w*hRm(Ƙ%Kdnַy_pkݻ?ڽ{_%V/lgZ]_.UV[3g\pc lҥƍ"FoڴɏNxƘ?M$k_mH$s_nn?صsT*uwd/1z/Wp3Qws*1bC=vN:͛7Ͽ2YGت:b=+J1%#kܣG޽{>|?CDfϞ8Ux޺Ksƍ?Ogp Y1LfXcƌ]vg?{.̷P[ ɏ,UUUd2777=:vi~/~_2Z>Ƙ 64"'ډ ~ɓ'g.aqqd̙ӶmASN߿۷o?o<L_#t.GRx(**:3f͚k׮|yݻw/++ۼys'~dׯ_?bĈBf=>oݺurXk֯_bŊ̝ݞ={RTAAvݺu۶m;snj}nرϱcVVV.Y?y睷vg]T{}Wg0??tO?&O?wAݻ6 6"6̏a?977ׯFN_ι /p;Ab 6L6-=ZDfΜСCvx|ك JRcǎ]r#`֘k)**֞uY>ɓ,..k ')O=ToTUUem^*6lشi45Ioso֥VhΧ~:?!k ۪1A"QF]r%,O ;vlٲcX>}=ؘ={ԩSo pJKKlҷo_)QA_kHh/A"'1ySx qTXN$yaEEUmY818ڴis8%\; 'ܱ+'`p3"&CTD@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ^QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ^QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ^QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ [9Uu oUHGu#:Zc 89I1$ݘc!-DNNᜨXq8?(QuNTUT]/$IrtBT9XqjԉZq%Eog8q9h.eZU+ꌨH֩8qNF"TDsΨ:UqbL9{ҢD|h?~Y0a @SB遉>W5.AFBcBZ TU$PFDQdqϩ3"9ZgjZ"ΥZTĥbRCڅ8q*V")MIT4UuG9%⬭TTQMK}- Dߟ;5IMIjDM'"Q(.:sΥUqq&$չf*j.Z%1Ո1U5If?‰zh8m9K:gUF4p90]sH(wYkKE]UL+U첇4V#kA#hXօ@S.k&LLqIw>s_]eȇE&5WLĨUip "ǠsVXg6DVKa=Mq D0fqR jBTYP 2UNCqFڨThC.f%e6Ǎ,D{HZ2"V] ₣} ".绢9"zf>FT0r6tNM((9ZUsp("G(6Vw%e "Ú+,1܏bm*pU9Z'\G3-.yAIk%ӹo κ抯0 &s4G:I_lh"nLU"&0RÈJ%t6c*URdƆ4dx%8E 0t6kE q*5UB! 18g\c8'] s#&998XkdTIO""aLֆϣU 8ƴҸ}+܈u6ȺкBTЇ)ƅQbuSQ)gS+<+ 6jBW3QP\JD(']*IW3F Bk0 r]!*pc眳 薫ә{ UD}T+DN͒)&:_FDņQVsSWW 4ݛyo^+RƆGbHg.JBTv>Ҍc cB\*};pN~*]e &#f+qc\!\ ,p`ϋsb4e\_=wwFڷmݳ[gm3aeҦWL4}Jc_!*J0٘Zi쫪O>Jr֐ݻ47F5YLzR;-?kNԋjȜ7&0&jQ4]ӗF#*ppiFU䈭YeNX$CXa@cvwTT9)2j]4uްpf x"9wbMֈ9b}KwQFf?:'GhXdupf_paz?lVڌ) TT15'??m{e\Yk1駟 *pP%tS>d*}ƩD҆*"z톧{EwbTsSzuЄ56G9U"9~JaLo⯦K%XxJZoUٴ};ҟYԡCDMl_KU0̚J }Gdٳh8-~Wa4G(ZSs\Kq:'SPq*jgCIDAT: 'pqMܤ۳4KF"H$b1xj˾AWްg^> 0ժ :iS[p"ƉWнWʐSOgYZ9EbAS^oJ0X<7A+!1Ƥ_%{RZZz|Hw::g0eH6M;dAnZ,0bSTǻTVUO|Q],zQɸ[XFQ}X#hs.jm*UH6NXS6˞LKݻ2D4DԨj^ \ٹc Sa3Q # FD/%?ǦDO9M)wW1nop6D5a`Ԩ9b҃D>?o= o)8>/aRsߡ 8+)'+U.=WRG 깿W90^53.0FjQ 2؈$=v.alEEhԱ8 ER"N$tHrh͹o]uiE?Zoă0*jNUQ̩>(W"iZgX,*bᜈm>=ֵ9ijo'Y@wYb}g4n@/Qw+1CW[V~Vm~~̪~42a+l+wk܉tV βZ{ՈDM}s1(!4*jQL(DݹsI6,ȍqy=qSl-FTׇA#o+9[XQ\<&cNv'7mWҼ?ܑ[ET~8+bRΉ1NdgRIzw){uFrnw9wf'") uhSgZ4NDg>1@=ㄚ@ʇ"HwTfKcHgrP&AJ]cf.&*P$dM\UT-e+fOHd|qx=p~2jS#zى 7RWv Ʒ#!.8ޞܶzךw =3"*PHE,"bScHlKݟ>+_|0?aOs忴8!K+Nl$X*QfE˝lb'?da0ΩϪ?HX๪ERs3"VixV DfzZ}ǨS#Ψk W> (:=ݹ@RFDTJ̈́ez#}G3*\#8G*NEįH틟W,1msˏ "?P}NDT DYclƵzLM(o 2!{otY'?V6\`~ϛV<~^1ֈ8#*gi?yԫ΋ĎBTl\]f`%]ꏨ@J gѣH$zs?wj~E4 sY8W5gY2ꤞtTub؟"+&c"Y G};YΨ 4G^}t[5c.HװSaԩ1 8jUDUwi#S2AisuqcѤgKC 8hY>5"ƉQ5F {}\B!sn 018њ*EmEMQJ(=NXayvC=š)ٸ [ل}7kjU%0ajoV}clY EĒ _Q5nGU QS|5w4`RGŊӔ䖶ӃQ;0ФƎrE3nj@50Y/ݺTܱt3 { u8Q z^JYTTj_afDL۹&=-΢ kDb;_Ԟx 5fo?UTŨSU1ƵԽ MΊy7˗Ք Dj81ΏOT? &;;\C(9Mzr\ St9wuʈdvh]Bc-hޜq漊>,ZRW1 ׾=Tрb5Iyg4ȸ }%vlz?@%'F_h?Q T2)*F'700HS1*jUUutJ/s$F*;Sr ?w[ ~([=QMߜ"~j~oM16RȮOY̓ĩ!>$v?ױsAb|Vw")Wu?FF y k+Ѡ1o\sxDe߳ J]~7r6Yg_Lv9-ҡ^kRGWy>jc`ߍog*.pUe}F;M}+ū]pJrW6wʵƪQjDĨ@4bĈS#QU1Ψ8c|)F5L-I<7ĪSmZ]nj^;[X/I(b%*׽(tۍX~uq""VYX9NsΩ.%b8)'s֩.4SZ' 7`ܵ]FED4lK_ՊSqf>⩻M֘Iny}:cTťbDDh ND ^Tjvj}톉LH]"u?~ErPRQʾV@sΩs:M9笄N+Z Nk\~ʶ2OďNb'_VӃnƴ3xɕCb 1`11JMVGM؎_Uub9u\vJtuulToyӳ߾ o$outzI-hmh4D\aD'M *ʛ&s m'$YjZ#[kO/4!rEbYU,&&xm(nu {0(;G]?ѯ28`H?O~4$e;"A E_/PҋTf$C负z`ٛRu{ڞi|Ҕ3{>dfB޴oYTJWKa&f=(n]NWƯRٿXj>]?w7_w؈b ëlk›RR@͊/nյ;VR Eqg?ˋ;l^wUZ?F>[Ct/F!E6@ u$D`wMJ5hhk>2ym|vqrvu=vM>ֽgOzYvOFH(>%T|ǡeri+["1 d&^FTI,pH~ D ȷj$Z%@ OCQ\MNJyzⅷ[~^tceS'߲OUQegm]_d""aXՅ_ԽW-.H r%RfgEWաrrRxR#'ruԍu&Kif %IV#rf#2NZ $tF'9-8Bz~azN\\賒8Z7zڳM !1)&P<\ő**gLɪ}o~.7("/|ȥi8&* !jKKVeuzhOݪh~Ts.ة-洿uoog Br%>gtHEw/z`#!\srp x97QT!2\rn@5EBYV1W((yõNB\\z[6͋*hB[ v̄BEBD*B rd@!d8Ӓ ! ! ! ! !BQ!BQ!BQ!BQ!B(*B(*B(*BEBEBEBEBBBw"BK%xGNY "AXeyoNSB.{ ׏ݸq i!wttvE111qڵ7np}Z{̬V͸DՖ鬮﫞3GQ!fV8Blmm`}&~嗱{QӭV @>88xqgϞ=xԕemmmkkKUCQ}aaauuO`E񱪺\Yk]^^N)Hxv=#4ef7o޼uV3jmll}oll4Bȷ8Y?{l3u><< Kڵk\&~?pzz>,D|ڹ[)ADyJ\Ƽ womm?VE\yT777/XPer VK)BeW_=xn}HQ!oBs2kkkUu}}=r]MMM}o߮/X^^$K0jv9A5ェloo^9::s,..T$wEnk866v .-ssskkk) S;r吮+G^aߺuTÇիhjj޽{\W;Ji>TbRZ*ryA  b9Ly,--moow/ \fEtxxrrrR/r3Oh9mnn("ccc333Qջ88bF׹8C|Č(߿} E\&A 2ԋ[^sadov=::JUwW3;(h0Uͼ .! ! ! !BQ!BQ!BQ!BQ!B(*B(*B(*BEBEBEBEBBBB!B!}GIENDB`ntfy-2.11.0/docs/static/img/android-screenshot-tasker-task-edit-post.png000066400000000000000000001372271462047176100262300ustar00rootroot00000000000000PNG  IHDR? pHYs  tIME  n IDATx]w~sff^)*" Ql1^Řh,1D=k,DPw֙sݻw/\y~ݙ=s=sx›NSpH1,|瓮+/4`{T _ZsOCPiQG*HSlT~,O 8nȤ#RLLD@%\f}d 0eXx:˃6_u1c + ԩG]Rs*_BZc-Mz낕&AD&p9N/oX ǵ)&_h[^㗅F ]݉Y- 0 w'.3#Z+X׌J{+"F9~vk"C#=Dm}5 _aҭ 2)Tq%X@VՌI:: DYz5֨n nԌ*m&F֨L-3cFi^~M) w>Q޷dyRW5i{6t|}N9+ tPo.ؖ%?m/}!\0?]DչY5=—¨Y e j1SGLDE,/e(iʎeG\4L(m$g1h7vȊ"K'jOA~1lg{KTOɴ}P (;wnݩ-]A$MVT(f @2%L] t},)k}]\5`c8(׃qc{p[ݺN寜g%r䅞H騁|F R*(w}U eC&߼Mi~5'[yy}'c &(52xCBo==RL7 L@\HICyld%K5 0 (HX5G\m\k}zJO;yR`&h+wsONQ {v D*7bs954d&9MG/^se@##zGB8ߩD~_/0+Z+muͪ@H}e~7 9P腪"~@ց֥uQ>  RV$( B"sM,{^v n7y@'.}!L9jkw 8e@رO|$v? >|F{0BU>䍒>a*9TMSCJ҄x#0SgfK{ݏn댢x-ްIDD+} <u6].]+g\L7 n/7i$#~/8ֿxY;O4.laPQ$VTzA_W`B6?}u@$ѕv¦>mQf&X; sHWTF.+ယ_=աMixA-׬KB@""K{PݖU:`9^+Ċd.or=xɊhPQ:zr`$ Pxθƿcd(eA[$fTHK5pZȬL"~'Q 2ʕThD #QGa(l׾ }&`z4Dd'WoL$wrC! dGsDv8@aB6~DPd =h# ]P4įԬ4gsw=w$"Kv2VmR8@Va#owR!V5X޹j 3m E9Q',c[J)ߠ7 4ݞw$sb0-@ WDB#eZ[z6Nld+_fp#A!/buLGjM %a;fc&an N"3H$v܇ Hn=&u7hT(>I `SQEYʩLT;+{bNDb}Y@JR0Jk<#-b܁-_cA~q!mu Tr9$ }dLNwʏTC=F ZǮdA:CWھOꋍit%\b 'η{`{OeZ[4&7 -]uT8l8>N l8ƗM:j[;HNMj0xD90p`2~Jum\mI/>&f;MEҾ9pK?| 1uPAPǖYD'F!_naT,׬FnuMFH[yՠW\a[ Ĉ9V&aCmI&@h)l금5"Ҫn[L{N|֝Ί/_{wBYېn,p5jO;t}d{]~% m~d~gt_Rv;t:|Ғ}szQcnyl s"Vdg9M󡳄*rH{pg"U\Ц*~SifM:p<8|%Ď=^i^ᒅ]__EE")r̫H Ph`:HeAkSn/(v ]DEkg^;kѴHZ.=끐(w{ }. V Ƹwe@RȂtWP䟗uu:U4#B=E@f._G Tഊ!?TgWZw1j E3l%0k`֔ME% Y Nl#lݍU_pdW=A*M'SH B>/|46.|n`7d|X 'G~;_q7X]hxJĠICq-?yy>um5*]7&%mǁ2*-쨖}HЏ&u* 73ZԡU\,* sS1 ˶۳}_AEG^dMbpEAnV]4ތ4V}|ÿoLYuԹa?5;$kvsf;%{I.$+FO 0@`ن lgT9Tă M'`7F~Krޛ5iYߖxa'>{8Mmћ)yey,_ g،JѴtG'Q9"Q>:yU{ڲ,HgB t:,SKerxߢ V/0H'^C? _ _3jH73Ҋ ;j XDL HK_}W溵o`)0;dm6aCf=_2bJTQ{5#!~-F2覓xcT'įMt̖yv*Աtm'91`vㆇ.,1lҜkw3r7}3SW}up3 s:I†k$K5P0@tj?Qs}ǯz2YVvRIt1֠9Խ|wq&*X-k;?{imP#f>Z@b8ނG*GH,Ipȅ`ˡ{i#$amS 6LD"rgISf'!},?z9&6BD¨؆稜͑*F{ͶAMR$?xbUA|Nh_ u\gψy#\o\^6zq+~"K'hp5K:/1  t8 ~}>fl@H$;+}K9nim-|?|1`xDݺ- j(n? zk0vGPWZk9*-$k*uKڹago[u@xȸ5 p4؉A+⩧|}͑#k`iPp|K W$9)5뮾 $@L9ۚ:wq2 u[2R` G6AƐ `f1/NFk]`@9 (buoClHu4`ZVD.hJw_,J5iC0,0h۬7"T4~ٶk%MPBF%:oaAܾƀ&Al"HjuEѸ0 GBX,YåW6tĹwtЙoz#}jP~e}՜U]z;QwEfw_3']n7rxW \!jy/tPg5Z\gͲ~+o;1ر:e Fc+GNh\y FL n=3;$[~V#8` *Ͻ?<ƍz*1Տ*:[=L iR W;dHDKmذt2.gkoN@0H+,s7a +Tio|$⡁~o?~Z}첾Gr3&U ڿC",ÇtzD`I+ÎkB\ Z/FQ RXa%4w?/IŘS&PL$GSy#@bɹJCDɖp}KuN]߰${9ԖjR"ւשiU CN#t%K㦃BfNA]4}2s#Id'c=)ujHΪ:^HfXZ#'W>lG:7DȬmfV?H3Y(F!7*Pu 17/ C!i_~,wSb'P6Ý%`^$ƺEkY/}DL~!~q&QfW#G j `3|^A*He+ʪH(_vv*S{I_EAPm'M^H6>ƶoEy IE_%@h`TF,j }ɦ0*kN[Y^ͺ/>O{1S58J]!?0Ik}l~^sƾWH t--#3\Ǿ?Z1=N'^/?W18~3_4E? y'쿍ߺj=7I4+Ϳ|O[-HDPQjGIvo+cco>Iڋ߷{G::v[U/z e[%BN~_՟?xRrxO X7[oasE@Ev9_*,W')mS~< ZŏN/?^gJ]H@aWZ>e;YĉگQsֽ\,HV5Nc,osV]l\VsY0l|z"opuwSd7 񶜉(P۝@[]p0}\Ei 4x؅Oؗ1zpK حsѻZX4tGhȄEIkzY6 WZPd7r IDATEIg\ڿݎ!!ҡ;u_rrPE6P 1P{}Po[%e~Kwk^03Oӱm縃CGί)ѵv-xRog}`QNwۡJZdptl J|Xre{{P-$Rg#wQ7a,N'PyƟLnh(svE?<3GA6odQQ5vUf]:l/kG.@-K?pz0d7Sg 3|~w,n[3akN-Q3(3d?tNQM?0uvUw\(,z\laRq޾[$+C"̹Kdjy#q?!3LeB˛~3GڙsI3$]2 edzfL!|HBm M Q]G;ܯ߱|sî Hf"Rq_w~B*'|ೄQ6[K?[O =!fA H7|( n%Jk#݉p.a`=glG˺~"L?6EDIjW=yKgX{~2yyq tkV'@S"B `GSvy'#'6-T&#n3-ȄU=%Թ\vKgbcU`xCQ(%:Uqա=棈\P<Č縶/"$;EvƭJg;s1SL}hǘ mL>*Ye?uq!(@6qnān&~A xRX"Dg3^@[D`PeCMd>M$Z )wmL, 4^o|]iy-L5N\5E: _yDZQ;ydd>GWqx<ȓ:k:j9oۻOw|=T2՛k܃(aś,-@h_SNz <8I$:cTBEG?xܷb7boUsD?ܑزk>v3/4l7J&ڛ|˄T$G(曏*7 VhC o; Pr(PɆŒ܃oB{z.! l!m'?xT FF lrҤq,$O/gmV8$({᫆7:j9ǣo‡EbS- "%]M.+ w$ٔ"e"Jش @J V$Df!-h9g &)EXĒJvs# i:Ytͬi>@ρp"RٖLJ21ifɤݿ t̕BK6$5,c dp:S$d Tn/5ivPl3Lgv>{1ഺF=  $8dҨ_U@1`ZAzczSj{"p`pgdfbtfd2_17fzeuL/=T hy!Ygbd 9  8t{o6"KʆJ3o&&郫 mf7 ~ N2em_.cPt R6*,]7 \V(}$t2^e bĩMra̤ &-HM84k}#{OIpqw兿6z#4Zn=8/oܝor-4s9hRۛ4 GCRBvA̶=IpXfg>CO%q!=d:qT\WoW.k R&Ztə̡ihc>o#Msa (`MK,6QW[vWk=Je ߨ&@OUϰH913m͹LS c]B(q6uz{ eoz3udsEYқĽ>]Y,̯ȗFT#kr+)v7DYVd7J̴^YPy{Z6=)QJݛ).Qxw2Hd~BiR+Kl)S#ڈڕ9WQBvQUO?ͥ ӑn=z9,ò6@]O79K_TH/H3eNZ`Հ|HtTF|#q5ाdM~A`@ʼnәM!l y#2+Z$Ѻ àҡ AܱTS6PR$kS|$&DZҍr*#mkHź)IĈSߚ! CSJNO-rXGOPb_2ɰ[fΌ1 uJ3j )̧jxTvU4K&`:/] "&JI(@{ 1KŅ$. ]ڏDw65`"SS$ƏeVT$ ~(vv ^'Z>dq-|,<UNg 07(<ҥSZb;S%>N3V3^Afߖ3V k"H(Y~ēlXo#Vre.g/2z("f3 Ό>M+co \Ċ ݧf4`b,ĚUJ+f3[?{{u1yOmt6G\/\IY&SmSdFXME`ҷIfX"D]۹ $Tr-_}9M/Q͢ed'=lnk5e4 e0wQְ{*-atZ:O<ùZ"sU,`~mrs;'m7R1p4v"w%۪髖gZ*v7Q2T5R J֯_џ#8@-~ 1O{AfM?g17$zvuh]VC@$yD-IU|Z&V0 ARI!yYxiڕn]d# @^,J `"J{zTdesqwN*ջ? dZi`=P:V̈0ڝi [.'gUDX%ѵ(fT9<}Zw.k|E*z2l0`vK  8PD҉sOXą%"^ ܍4,Z&fíY,a vȫNZ:2@Ȩ#t8>P1TK@d7.k_N.xOq ɮ2W(G=[i*Td0BL' 3S%Wwwډ8d&w8YɆ-24C+3wGة+nJHPOl K3bN5Im͗+>B|5TW/5'W~*XB+ tVόQ3t>8YK'X6bM @LLlAZC8CHCi R,H-pa'^f]A&̬2Daϔv,*j'3ӽMP-oma, j^ĥ;18⊑ #7EZܶ4S8P[ijtXj! +('8[<'EC5Y IVpgXwoo|7n"#[t_]t|`b!Щ?3QmepK@vɰWDDs `>>>v|}HZd- 8E&"wᬤ'h+w֫?HD A FctImzL atP5ڍeS.Hz+ەecdqQeဠipJ;F20JM4@A-SdC2q:z*( @[ԊiAOלtQ=)z'4n~ЊWOVgh_`9K^4itv`i f-Q1:Q'IY}gTŤ5- lgŕ k@*fWdv5_84r/(}NOV6S4Çˏ%00͸E{dT>&n?Áv,xh] K S!Wēcv&[6PW ͯdwee+hܲ_u]5zZy񫮘Oj>;0[e߿`#3G $tb޳*?&?3 hTѦfpnkc 8~o0e˺*fg+}ql%؊g+&3Wx#X2O> "j;EKN19FX!2;y|E ˿yf帬3@:@eYo#嚶ۑ`E`n"K_jyR#b-8^ZE= <?t[&hY >F%`ex!{!<LFE9GfHt,Reɘ:T fB}rq%΂2>?\ Hg~9kLcUwSǏ }&m{Lπi}ދEO!TvE[Sk?#1tR IҖ?<&H|]`D¨(9q2j:R"0 J4.IwUGJ<'%i+Pal$Cwg {"v:IbEE*?fV,yӀrQ @ _u_薕wK(EϮ'uD:u/`T]|b[l"O8n,%.'~9`iLM@ZH.BܡGvi+ W3 IDAT׾ -|ӊ)ҩOꜮ77r-Yb_Pi!Q S Spd@n0phԦdfA|U]Gn?QJb uTriѽ&9ȪuLK6۫reb=|^xgkNVV "nK4H;+@fV+Bg}|  MJ&l)dCF3mA6v#5}[]l&m7JEACDm3{(eaKm:I6W=뗊D   E`EX'!TYa2m/%:u_9o徦էe4tg%PGplN+vpGٻ*ν3WH!ФWU+֏Xvm?UAU[%@*ՙ}oR'$-s9}t"icjV-^N?_oNn5ݱ,UO ݿ[@*̭#Yfhr` :.qO5d[fhE+?6eEwr.FG2"_:G3® ߃3j1:̙s _JeVׇJO+ ; @P")aTeEEF ,sћ$|_ Oצּ\*Eo[^gEfTLJ1-3>D5_nS/t" %yIfϻ'؎֝PLpӂ.}FVx*x*-N/G=ө͵peHlF, KУad|7@,B~eoM^\-ڵVyR1HRGŚgm8r>3DTlFʄ V6t\.ݦ&现ƙQ+9&WV@C"vw@5rU^Q|W 6DqJ$^4?CFv"w6yD F #5"hժՠ-1 [Y&^ /KԾ F%D]xJHKQ wpKź1jY߅Ya4 k-\8 % /`'@RJ՜CR^kyVۊdpcc8).E$o[P!⻑KͼLEJz0gVFuWcOfy{Ug#Ow߹_!>Ѕ إKV?6)fHpİ;\59%//Ad<[GN&ϡT4lګZMcFO'p Pv}d&N*͐$ܛ d a]'D EpU{ 5` ͸%tDJh rSHҰoJDw|B@SOsP(qOđr~(ȵ0`~#p.d O.x)p-#My̙z9U~z;;fi}]e3ʁpI-"G`z/젢M j\D<Hpd>r\\z.lF 'EU|2tY xٽwKC:=;x`t`σnծ : (U hd1,u t;O-aQJ[~`>?GIΜgh+8ڨl- %LK͙{rQmܝF$\;H$Ԋ&[Wj74f0͝&~NB*N*\R(X1AHk_cG9׭N+-,I!F"#'[-I­oSǥl_^}:X-=][W=R;hIvؐT EЂZ,`J^ģ)0W-]nVxzHnP?8ͻߒkw]/:}̽8IPf9U,|{R;{b^?ZnEk=3vIxhXZZ\*.V~vM6lQfO!U2t>uePM`5{yKס%EZ:jF} ޟ0`)یlQ?,c*> n MAоO5Ues O u s 3B͵&wa3>RL`ftr֜;8__:{ ]oIGOIh<!@F#Z 4xcW#[6wVU&nʀ- r,T%!wQ{Yer?a D4RMZ%Ɵ "%4 sbS6SQLa5`5ı᳿b@ձ5p>sZ>$gԠ}U-g9Hᾏ45;q6is&ꄣq@d&[R۫Ryt3;-TuCkhh2h ޾%̝M_I pRsfm|6N!Rޡ\? <(V7_ H. 9U.n,]/?ZN]\V|2:;_0pթJD^}>_VȮ?Cgk(n/=mAfU3BD>]RGܜͨg^ җ~s%GԤu =(\BDKveK>1`Da֭zWVx4"Ws.YiH.*p#*KRF8Ǿ~JDC3!xшkg)b":iHIBO3?ÞDFש.JfsDCT}P,o[!Y:AT{3S,HrN+Sa F T wpE&̛ }ѯ^/ m}xF@J!9)c}̀?}bBMׂD8 Pxi82@__E6{>N9r"d=̄Jn>V, .bdHNز?Z|YM"A1dc(qHSV w䀀Fn_pRFr"Xe ˭Y005i'kYԕDi6Wӷ:KMpY8 j_ޭ:77In XW M-*5pj IWպ$+תNQ$,U%i.#73]LShh *6?C!3aȸ Xjr6}3rE&;d '`BcRUr R'a=ƖhBo"h8PD4FW)Y$@idN)BekB3GP"0f,_@j:@Ul: "9_?KoTI e+kL\=kK.s U\SQrQD ]ՇsI@tKk&b:oqy'oDUΣl{U.ug)<^Oy͎|!lIci7@ ~-<ֳTj-Y4A\o֪kq F+E9r.ZMV-"4)$+߼n E8 ^,XkƧ7m6@wefiحLVYR.YBNvI*' (0?d'\` r)TUښC5g`9q 0N3&_Tqʃ\n ;TLGZU)?*}}uvFdLE\h 2SJrdVJ_1Ew |K]+E q C9-{@l~(`V,}\YᔪU g+mV+)gW:*Ԓ*Α؎,j (,$h"P6tWsiZ˞.bS8E4@ΐSk+/z RNlIC/ӪJ_*@57ǁ%h 0H:JGWڄ=q4D1⟫~槑>SJ[ g:Kn*|&6+i9yY>BPO9 sQ{!Ic2K2INT0gv7'd ԨfTb-nU=|s?̱!Ln9UV=9 g9Gp)њ#'q`xh] 8PKDM@=ř~ Li?Q 8pD~űvDa$5ybGQ)2(Γ;8Bpk4P\>嚚wP)9ihP >)Fal 9G@9@i͑m9='4#ҀMqIԎo.=׉'[c;YY[&lg@yp$h(O0Y9Pq[Fy[D Gg9RҔ   lZ܅!BP$n"Dc)0wi2 lB@gj#$rc}ԁΡg WC9E̱]tSL8L* ـr@׀ըP#Vp`aOڗ%[):ipx[݌Ps m[Va 'DEJ@_K8!Xp)45Y8PU&"H!GpW{Vu=Ibwdt0B[t-0AˀCRAkSU8bT{n eْ#'8JZEձ-ڢTG4%w+V^08HQ~N\<h7gȠIě 9倀@df9 " d{@vHW O@+'-!t5ܗ{H\]xT)m1AqxOLŀCRgbU/[[*!~TSلK&[d 3,DDD@B=J %aQm1*eXM8H MP]̩IlˁpoX/Q%w `ce50:}v 9E.^4H&̞w)XyL>b 0 ('āS$46BV+ Mٳӑs[Nna2n.kq]oP@Ow #Ge5U\dnۛ3_j rB_FV9v&2#si2 `d?U\}j;FLAim4Uba q^tQ+,CnmՓzQUڀCTZ|•~p{\E,0Gt+B9OﶶLC[G^wOeAsT[k\g*;ZSY!LPoz2HwW.ANcv*HHMfZP?!}ϑAG)³0``*Ӵ&T=ǿwfM&y#ʫ +Oc220bGnc=“u'm0iNH!2R V@9d`v8(kNbz"Qj^IPvYSnc-»5g^+[86p &rL^ljhU\>|s<54sL%*8 %~snL2phULt` n 2N d3"8QU&4&RD%f9$Tj}5WF42a~~hHMmSXd]o!LՀsfq[€ 1fLYJU2J8* LެPC ѣ3AT7>/U#*Lֶë aכT[0`T~Mv'F`E!o?w%]vZ d\_;7~R%y{c^dN f d:&L@\hx˶c&Jkȩ!0`.ZڛM+~Mzө^~-<+p>$PQC^N~fFkw/doIsr"e(!%Dt\MUŀ\l)S]?IjoIM>:u0MI#<9~L8VG[|i;+iPw1[ IDATRtgTJNy[kb;1``*W)};/:,I SvV6z婆j_x=&} kBYQ+wS"s;T9ĊZ#~ߧsæbwg8o!0p `' Olv 0``* 0`J |ກuqݸn\77}?0_*i4~?/'%y8x#HQπ 48C@@@DXC\h0`_W8$IKk 0tpH8_1`M(Db. jE2 yb?0`@bp 0p`0 0`0 0pU3*m~).c=ZB(NXB!si3Y@UUι\D4Ƙ$IO7+w#FzU(b1fT1`0S\DJEIjשwG.)0D/m6`ٳg%,?#O=T۶mwG5W8&M?~_WxTUTUfKJJ+9033hSL8n%Dl׮"?~d2)8pW^y?;ϟRE}&O/VVVj޸6L:"z<gZZرc322ӈv <clƌ3`je3#gչtr∻:t%PP^Ifd2K!ׅ(cXl(tN(&&f̙}iok bkIII %=nД{R3JȀCRi"F)l0d{'Rłs~&&&={vϞ=#Fhbt $"Y/_^TT6nܸ>}h(yyy˗//((|SSSv{UUɓ'>ܭ[7c0`H*W;u)6LN74e˲_BxA1E܈){O].ל9sɓ^ll֭[ŸڷozΝ;/Zh޼y$ɲsY,G}-ܒVZ@BBg}ֹsÇ=zcǎ6MXTTThh 0ʕGlnݻw ꏈ[n]j_e`C=j+rĉTx{쩪*޳lsO'Lv;v58==]eթS'Ϧろn߾}bȈXQQѦM1RUU[cl3 ѣ1:uԂΝ;l٢+/QQQ<̴i.qɌ p$KLL|W 9rDU={~Y?z'OL>}KT# cƌ4m̙om6k֬ogϞвeKc0`0ºvZ7 D^ׯߴiDUbbb.]TUm qz)1S 8Ų,?u/ݎeeeK1vEEEl1-<}nwjj#GlϮ_7n!dǎǏiÇ߿'OFĴƖl֬Y޽{+s#GtU4jٞgyfС7xcnƍ 맻椤Ϗ7gϞӧO޽ 0$.+hV*E@U8`X+ $50@v"媬WMQoݸ(~]Ӵ{vܹsڵo=:%%[n}7y'NNIIٛ$I;v8pS.\`Bȶm۪('|2f̘?pҥK,2dqG%ݲe˛oo͜9s-ZԦMk׾[nqqw߽j*J(… fsZZ{WXXhl?>4TUGąՅ,81Dp}]_s\c8&5P^! HeUXX(IR||VY("""44TUU5/Tɲvm6[LL(]$LoRPeeeV5..{Ν;gX LRZ9"aBL\0`igwMϔbp_cy܀6jC-4n7 pك9gq!hܐQ~MpE,b_lS1  0pH*PĀbL 0 0 0 0`0 0`0 0`0W>~L-1c1``**A!#߀F/B ^] cRJ)D5zyzT6r97͗>u#Ȳuv]7v]X,WٙJiCU0 LAbmڴwȲt< ^x;cȐ!ϻvZ|O>)R*#ױcGARvNeemN<6tО={ eٳ9996mРA isFhiC 1u7mffڵ"ӧUUҥ~q|DFFFFGGwm۶Sz7p:?cRRҕ ;3f8l۶MP騮2eʡC$Ir8%Q$IqqqÇ//L}\=f(_|7Λ7H-a0_t۴ҡ;[n;vlDDsss !!Aٜx$BH~~,-ZӧWιi=ܭުY[9w\]tOӧZVBhO?MJJ4mԩ ͉n?vX]B)}cbbzT$Izw۶m+MUUջK)غuٳgGFF|{Ƨd2l6JiCFJ?dׯUqqSs΢_;nnw;߿1],<}tPP flMS~@~][DPJ_{_?0!䪑 R*vftmr(-Zhd}׻w>gM1''1v5J)Ϗ2DGY), 5n?.kڴi/YjUPP(\sMnnnaas箻{FDDFgZccc{yof944fNNk9޳gBee%ce˖bϟ?/)S!L)Gy$++SN۷ojܳgOQa\^LJ >-`\].= .1cFݍfpOHQM6 R$InJV$UVVr[nMxYKdږS!(dgg'$$\pyǎ;zs֮]ZO=Ν;KI~u8p_tݜ9s߿ӜaÆOK.ݰaÿ/M! ,ZYYYǎmEEE@hh1Ξ=]{ܺ={ڵkgXVfӧ=ω'iݺu>TӨ,&I/ &?9__5 5oUUÇ^7!dݺucӿQ'tl6wt j+M?4d?44@׷^O'ŀV xA>clΜ9?QgpJ4$zPTT94hٳgO8&J_a֬Y#ǎoBCC;ac,(#Fx,}YIƌs-6o޼'OGyd>Ƙy饗#F}5jTdd… uO 0 XjNyy/gϞmN8an1J-?ڶmۺu\JNKJJv5f̘baVUs+VgҤIϟߺu::d2$E~Ο?/S%<}"D4)))GIMM-//OMM Sk׮nݺGΝ;W>.[b Z:t4dgggVڵkeddkPLÇO4iڵ{̃ yIIɵ^+ 9s7ؾ}r /@Dq( kӦӧu*,_|t7gggnZ|r#F̙3gvw)HM7iɓofDn7n_xQ$飏>~&L0dȐx]vWɲWoѣG?裱zP(y6ln;))v@]:q9A>]]]}m 27,))E!B =+888((Hh!p6өZJHH_bS&DmnܸqݺuB:uԉ'Fy1!&&&]fk(o#Gt% "ǯ\2%%C} {n\-[]v?6m|Gfz뭷9QHO'$$dݺu6lh׮G C}W^yeӦMB7o޼)SvYׯ_/Ips}/Z,aÆx *-))yWocy}$''/YtիW˲,Bp߿5k{Wx;~n IDATw۱c0ax/۷ox<ǏH7r.\أGݻ?c"\)'''(((aaaQQQ6e˖ᑑ^{-l޼222`ҤIC!Z[`W_}"&A}Kiڝwv֭['IڵkM&pq\\\xxxEEƍj{ڵk?i„ RVVw_~_gϞ=n8!t@cii;@(E۷o[6m?d.TG233#+ !WlEE,''O>sΣül0$ɲ,4|/&ޣlB*Nۋyӧ/]fkݻڹsgEQ}|8m4/_@t_m*:W.СC r:wqG 1b7nثWaÆ >[n ߃ tqtLaХ_ ӎxp8[n7pGL…1v׊ESRRyС*bEQm6Ycbbo8~l4o߾ۊTTT\U(/LVӄpڴiՊ0&Uy̙xq,--&t]K~8슃!!$""B5$ìP qx 999mر3n3g>cwGby>ъ(ʘ1cǏ FXQQ`^OMD񅤂gΜa͝;'|'~MӊmiZ~~~||9ru~;Ex{֭KLL4\du]'"zƍ%I9rd6ԥ i [oufyƍ[l!i&99_|1sLyQQuiƍ t=Zq5Fz.TB;zhyySLiȘp8+n-w!${ιK %$%dggSJ׭[׵kW?GoQxg'aH G@~NCDR ?:eEQBg`O'^xA7uA:t(==LoINeYN:ew%t!!!K,СfKOOoTeeeu [+!H-[FDDO&Mג$5RАϐrssV8"PJu;vX"--=x֭[5M8qx֭[cr/r&g =zݻ7m$ 'OK)^x7o駟*r= l(`\ ،3,Yb6y8?Al###ܓLff$I^ձ8HryP`}0!X hp[r>}׍B~YaUW ^VV&t:a ]iEDD\.!;wj`x,-M!4b\Wq!Rf=z޽{׬YIIIݺu4-44433377wݺu_,l6Sᇈ !BקO~tm\-貘s1FA脛RRR"@{nݺٳMꫯ&$$L2eB?gǩu+\}X1&E BQSi>}@m߾}ʔ)'N,((ӧO?ꫯӧ/ȃ@8=$''mۖRzID7n5C_^Hf zQGؾ}aѲe{uWSADa 6LIMM1b8 c,88SN?s?snZr+l9ӂ >/œ9sL&5ki? 9rO>"fNc"Ne„ O>H?i&,cOaN7t t6,Vi@zgϞٳgٳE Mo| u TU0E|AMN81iҤ^{n4rssǏꫯN6رcb_5RJ?1v1gΜ_~yĈYfR݀R*f1իW _xk_u֯}k_{-7tq'ozӛ>mo7ȦM=o}|2c}^x_|]w5)bnmo{[{TU^><5t>R}mʕwqǞ={ng<W>p-[>~az.f-w9Gtwy}{{^ۭjÆ o˲Ns\%/yI||I'>wnm˿/~fg??vms-R?=@FtZLJ[nzo{g?Q?~ڇ/{キIegu֟˷wyw/<]wiQ9\+'7ONsM7]|R(}\aժU۷o]w]~Sҗt˖-_~y=9!5v_5WT W_}w?mι?o~ۿm߾nњ5k~w~(뮻nWeY~C{>Om۶mŊx3k_oIOz7|o?tƍz׻>iO{OOu:0/Dk:oM6ڵ .ꪫF+Gg'"76lxc_z^׬_3LUU?3?S<׿6m:믭{_C=ccc|+5䳟엿/}K8~/|a:|;[R`W=j} MgϞUV%/yֳ5]n;w+7Dz>nʗR?]L^4㰣?zB>coU?f{S'^W}߸k>϶w3*wetk̸c#s<]3>/FџT?o_Wc{뎹oWq=I~|>bŊs=~]7Gh9~? _ș%8r:s|p2=)l__6mڔeٵ^;4POBmGycX9tG>c~Viآ_w;T_rXErWzb1'>:>>~뭷>IOZaUUwaǒxz̩ c:rq'% *  * ,Z%ƸsNkRJk֬9 Ozw8 :ũ8g *  *  *  * *  *  * *  *  *  * *  * b *  *  *  * *  *  * *  *  *  * *  *  * *  *  * *  *  *  * *  *  * *  *  * *  *  *  * *  *  * *  *  *  * *  *  * *  *  * *  *  *  * *  *  * *  *  * *  *  *  * *  *  * *  *  *  *M *  * *  *  *  * *  *  * *  *  *  *  *  * *  *  * *  *  *  * *  *  * *  *  * *  *  *  * *  *  * *  *  *  *  *  * *  *  * *  *  *  * *  *  * *  *  * *  *  *  * *  *  * *  *  *6 * *  *  * *  *  *  * *  *  * *  *  * *  *  *  * *  *  * *  *  *  * *  *  * *  *  * *  *  *  * *  *  * *  *  * *  *  *  * *  *  * *  *  *  * *  *  * *  *  * *  *  *  * *  *  * *dMtb)>hQT"C頻~Rk▤zhNͲ~OӘQ859FJ!ƺ/U1ԌGbĘR1Sy$$YPR8uPRb );ܒvQRH)*eL,Sbe*Ő2d)*)!CYJ)1RȲ"T%z=?|EKKV#*eyTb30 sqC%TEeeT!1,f!,!GD`K1ĔPb(M$4UHnlv1bB1HAX,R yc 1e)? t%L !UI5^'CdGZP<Ŭ_u["fy1˲8O.CE`%TGJ)AUŐ,~LibKЍȲ"Ƙe)>>-&() XU)K0ALQC<޾1TvCU^/nE<;I,xQUUUJNRH?U2ZCs,c>Y8"B}4lQ"* YçvUUJUVD<|{?{]ӐOt_TN?Y*NgN"cP)*PjxipW=. [)!Tv09NUUU_"*KL(!Pƪ*S*;XJ i)|U'L<*SL* ,j1.dI)*cn ) )?_,Cʋ_Yw%P^e $X)"(qj2prwey+npc*Qj8U/22-p5R+T_]7cp;3ʲUӷL?ry=bNVf ½OG)]:iU"5=艋4^eYV!UU-"*PnW,+-Y)BʔҠ2SXJT $>gԒUa,R:j8J1n>R Ydi΋o}E>6 ZQK7+'UsG&5+~ET;^9]}etb9UTe)k)i9ƈÔd,ǒ,+bci>V!,V~A0Qx|i UىdTBB:UBR ).?; <2JN_GJR6}1dJeg`ë (!;ِEGq||U 3 ;LT敖lJۃ5802ChO\K YSuc SsRJ!Uy_B1!kVC!T!bIyfGrN)x|;<+Wͩ S nF*"tBfBmܸIև8)!?JucxV)RJ% SGZ5wOLwBwB[۱, 3a`eN51w1e9@sE)0wZ]mYe9aIԠO!U1';BUr0,*TtEQEeYeuI0}h"˲,睝_rASNLucc+~댏_74Vt:/C;(<!ɲ>YFطo'hW@uQRJe9bt5=>R)x֊+ŸqԾz(MWEߘw0jzN,Vvr]蟜Wd!ֽ[%2ֳ21n߾t4#M];4X)y֕zZCBOʷ銭7={)nWS0=~cxu)ԁxR*Zx7\u3;ݱ0bH)9 *#(c<4я1ko,hSwb gd?YB;6@iLbob*XN`T)11fRjnr{PY aëN{ .coc1!OWŘ7ż}|߭E2V<0~\~up#6>; ̰6I 1SipxU|Y?m;fywh]-0Q%KyC YY@y7L 9Lt`כeɲW!.߰doߛEfXx.Q6zh#Ʋvo^;NҴM{LŘuF2PpIh]cQ/[2b1'ݴÇgY'8zmQoc?GUŬؾ{EZ-AL}afGvRh^~,WDCsUy^mǁOQZtO;).̌zնSb̲,eS&yӟ,˲"b~ܾs"->J)~?ᶢX1} 7O5C+Vx[:6zo}[W\tMLL4ꦛnkmr:,B YcLYbӣ6^rފ",L%V!P÷t WiT{r*R[`|||0xsJ 4o}Qqso2"#k)R*c'CUUƳ%8^ !m{ ;tcih}[a 18p~;f^:O4Cq}ݘ0Ӎٛ=r<ȳvN bXj<NNNeW⢋. w2tz[etqy4vOZ+:!Sx!Ku~}ewꖴ& H8^/+ꋢ?o~_.W >oviӦ5*_`055O|/+;Oh^>YڰaMzz=21tkLR4SBJybގ{6> .Xu+B5+1ː=cGvT)YYqN,ec'lbsמsN(S>$ƐBȲvݵwbǞE^ccRߕsϦ jԎ9p)l~[ߺ뮻^W_s5Kg?Ƹw??馛~g5gQNaкT0Ƙez#瀤,YVo޶7iyV?!WTc 1X+ٻb2ܳD/ˋC3|Ybm3ݑgs_],_^|W~W~zI ?ݻwx~y1 VBk۴UyR*jǾN)uv:N͋CUVLS2*Ţ # Md3=xhN%~zKjԮ3a2o}]ѥ/ST,,睔RJi&HY=Y22ڏ_GNd~,}e/K)-=7MWv ΐHyK}i`撗gJ!dC%W{3e,/vX,˫~i. ۜ(<~k СfnI3vj9ycLs>ǚƴNGǜqaN[nZj/z+^1_,;w޴iS;S<`}}EUU]w]\]w5 ]v#`gA2tȫ~<##8)BgDfh 1ǩ_:<42y_uwr-y/Qڵk~Ϟ{s dy衇> ]x 7TU555я~twEQdYO~duUUzիDL>6ڕкJ3@ߨG$MK4;z351sDeRYGr)TRJ+VxpUW-A@J/ҋ_ \ v zߞJ3˜+ͼzfҤ98̯4/V±3֭҇_8 v̕Jk+uݷ-6lnݺΏi֕+WRNS|7.~>|k١G00eAeID%z7^xᒝ⋛W K28xe4IGkGM43[F!{X/22\}o{R>qU!$cЕКGi&Q-i>}-d{_WW/.\xxprO}Txvr +Wl_@bŊ:}i~:묡W$ѕ0q02K?퐄c2dz B;ɳh'F'̆oϙc404o Kxgh]Y9cɆY SFWo3}܋H RPc }jϘG9jpf<6ۧ5w^iat&z6`tq022a, Wfɒyf}q{hҴj('aK*+QXܮ%暃`fhщf,2tnq.%dq^+*'/-C9>mƠ=X|s-2p2[3FO:VQ8C9^9{Ƣb#,:uXD{l7.fbeF-c_3^fPWNF[\f_]p`wѕQXm2NXZeN]8|>,NTN}Z99̷-Kn֙r,x Q,)*w0R`i1 *  * *  * ppO`6i RUU|[XfY'p/N^۳g|>||Ͽ 0={ݻwbbb0Xr9s-`Nvڵuֲ,ƍݮͲH۷o/<011*r+BWfk׮Gy$4:߹nݺ5k؀'zСC7o;;ΓdHSG=tP95տ̏=ڵkm>^zڵ۶m{G,ܲeue/o߾m۶z;^zݺuEQ<6p_\y\D9C&''wUGzݺuk׮qW&Gy$Ƹsεkך[>fNݻe˖,ʕ+/n(*pSy瞻v9tСC֭[M4qh;~6:UVU+ !߿?˲,׭[w=]JK.ٳgOe G1ƪ~ݻw7'!'Ι8mwrYgnrzjj߾}V%Eٽ{͛TUu\r%?SQ媪:*+VVXQO7S&''sY~}qKT7W͗S/^~\` p8%~gZ7-I)9kYg$d˖->` g<7M}ЗSK빓,8pwo۶ͥQgs=~e}yzG*smؖR:s=IΝ;'Dn#̨>}+R_R]zO~WX;wʱ1CgYرcϞ=\pUꓻUo> m8>>'<|O˚5k֮]u۷y^ gϞuysuem>qO%tʌ6mڴ-[)ЪU.2F~i,nŤF*]t Vk@fƍ;wܺuk=z]Y:AaQ7nF*}۷o߽{1cWpgϞ}:t~y};Y'ݻ{EqW *Jmn"|neDCGX'psks4q|EOU"\RIENDB`ntfy-2.11.0/docs/static/img/android-screenshot-tasker-task-edit.png000066400000000000000000001562561462047176100252500ustar00rootroot00000000000000PNG  IHDR? pHYs  tIME  8Nx IDATx]w\U~snnz I`D)EDA " ** -JizI${y?fI~[63w==sÇŸ>|ᓊ>|IŇ>|Ç>|Ç>|RÇ>ÇT|ÇT|ÇO*>|'>|'>|ᓊ>|IŇ>|Ç>|Ç>|RÇ>Ç>ÇT|ÇO*>|'>|'>|ʷo%7} Hc=JgK}!C1U21b,L}y}F7GJ_il9ʐhzOں6 =&Z)I+Lw Bz )H$fLRy Yu%ynC$\%XCw%#! XCZM6w⬩d"bbʼ ҳĂ`OpHh-1@ MٻC!=FxV  0@Z04 IKtҬuwf_}i $|0Cqsw̖[( f1EB{reA %72^ߥ [ <#H{[WߠI V ӑ0P>l(O %3L&;I-{26)KfBfؐd#3bI&p!<]zVSc S@jl$Mt4 &ȁt4gJT! Pu7olPB$BCO+0mỉWq7ڴv?h¾n t·G&:;_/feg'vaJd1ntZ]ȀЮ7Zڑ3T5.i3hgfY,oL1 S%^$Xel`HmqM&PgJCQ1bx(֑"\gi[:Pр`nؼ󛉞x*9GŴlx9u_ArtHZyzRtIgRB]Ҁ%a,3 5I6 4AE ,\AX^>!(;3#n '70@XOtycm4-kovPRD:SĚύ>smà$,z™ $bz0y![ӗ;_K8A,$(Kp!X<2nFS+x( ;M( 8muW|-ε-5E3OWã\ ǁqnC{\_cX}̲A~XU[_Zgse`r".xTT 0dg+wKoOf=uK2JjvMkl)GL` D;A}Փ{6{QLwާhL /cD.àNmSCxwԿh۫"&dc+ӁSni!#8rʉ? vu;_vr, IyC9lY1R T @'`ZF_O*I2})?W`Rځd=vo V꿚 9ˆT9f 8YZCnG~`6A`ڞ.lNrn4* 眲#}wͯ "9bcO>v)vWK.AqUý)'1ך>Tu%G\+@P1[Ϲ󟲝ojׁc M? ,A~7*>~ɒwS"2 2ͩTO=V)tMj2h'[I~(h[ne/3 +zw*ι_)5.c%PRruiW]ì[4Jq9`xoʆQQ8<0+O-~Y2ib=컭uooCr~|`oAW.z.ImԜxj~Ϊ~Qyn}V q$MS+d3<"0`tv,QXe3S]kLo6G0I@YR1z!l 8njcB2+T:f Thv4 Nl]*j:,gL,6*QRJ3JOz%LN,YO*Eh@aJLBPM*1Sb/}YF(aZb~DX~J^})3Nsv2ݏ ʲ3/yDc;0pȞYX8vyn9VQʊ"Ci&=7 2.Tvj+J h쀓o~Lgk ?+յϽ'2 荩Sɣd1lSf1׆ɰKdA" _2C;޶j3L3ϭu l IC1V\Y8~F We^>n%"54QӀ;qkӓAe?4֎3 u O][!B=s#ݤDɬ¬ܮܪԬ[hX#k7GegůP!;9 +M?~u;\3AH0a{WsI;yc{-ܲxݿ}/X.^sy}X= ҂ Uk֕FreݼjYj,[-K%V uٴi\+LaotZԸB N4Dp`dNQY76~>}bMgM‚ ǯ{2VBABFU<`7W=+> V #Wrղ_9Gv9鋹@xL:՜ T=WG?(>w~' U>@H3SHp- 312zI+2oO"o~Ͼ/,OG|ڵU~̵[]NYŅI[wU[1uo'&?{#77M;rŒ* i ?kl=J`$`) *J* r2./Slml(4'/K`_*M$ 3 0jv-9@7@ƝOHIH@#)q+L Vl$Yk՚RolBp3ȱcL&;?={4 c! t (&8^i);bKMRq{&}#,SRw `M3oL*(r_bLߐE}Y8`ꇮկ9+{PoDaL=c1cӛxDŽ}{CwC JB:(w [)F~&`e$\sn{Oeи9Š(IuJtc@Ӛ,kb_詠p1dX2y|A]*꼶lt-ETS@8`lLA;8WiKV U$Om̝XfvxuHHt@QhTrDB9@ܻ3"@u-5p)pvP=V."En9&AߋœY-󀋆޼jͫ.dk[&h B@iobUOhv@8,b֗ 4~&Q;Y.K ̯дkκY9+=M q.(@Zk$Wh:fx5s 2FއTǺܳA&=TG!<|Be/4=[~X?_Hh1bv(̉E|^Q2ŴRv5)F.[2N @ @<`-R!H-UBn;w>pu#xE-#@aÜK#2IycR^qj{T=&iL]M|@sGxAմxkg3 ֒]ɊeWs pثKvm'>upKغqP`m5-Z;{cƅM94ӴiFmDcj]w/%N{ѿJY.qؑ}~SRx3ÚDX,q̺f̪YHҶ2cK磠j69q~je TRniWW|m^1Ցlm^'/=R B`.~(5,|G'5~,xX$Ɖwae?~߂VYl(Hc :e7/>+HEZwo9't`o,"ݺOǃ[ֺf:6.LNvCrq2>Jd{/B2Cnh㬆g͎OןZC0XoJuUl[]~l:^_^MA Up/aWo,~Puo<_;L80Q6j^ѿ#vT|R)I'DWʙGǣ.v`?L.SLȮnn+"%+gͭg6|,فM Exy90݇]}Z5WxM@eZ hp~2JK,ZiqYX9|*08jǂ2[l>2B>mc=xCM}w Tuԯ*^vi ]cmH~>9P^&I&ǘn~4 xUmku@Dm?~jdzT'/lg6޸d^m+>BKc; 2Õ*ذzc@6(ȴ>qk`|/{J3B{d{l`_[ ^l~/Ek$j7t|zzmh?3Q@L:ɣ0/_h~R߉YhPZBA!yōG ;v.]tlUӎJ6V$sQq_^g NP6"l|R u 6C%^s@\LfIBP sF:t$LwCpϹ_&% hWX жj۲m/Eh=bZdi\$[lJ\JvLS *s"<}]l݀ mYC6cn^ ߔtovbڦd BIL\ȠtC^ Lm-hpoAhf̹w~w -0oa[\bsK>?}bmz̎/V SQֿ\#@2򽺧^p{AΓ U37Ѵ {,ƲG0KI5 rH]~SC#Y=A> ^KYE\vMe3Z磜qOZr͵t U՗ ްzdɞnCD0xx^B xP㫷>t_Qʹ+plJBP@46! PYfX~Lץ;${Bا ]e:FLȌYsƭ+yvYdc8^0X5a`‰a51JhXB&DA({luK y_!պ]3i(nLr{)}bZJA7RdV={ 9xd:̚ȭq$G)&rE축4\ U}͖'/C' n21_tq"_B/ɸѸ*RX~;x/pq L84kO8ϯ $Ri-NSe9n9:X^Ӿa %KrSLP ѓ\(3-\(6g Yσ1.1JW?J Ȟ(][)%sĝ._<0$ ug&aSe 6 wطhGh&|Z2l:Y~µHt4?q.|v7\2DzWpVڶ?Q% Yw~2 *N1Z1}FJ|;9\5,SgTqbS=0+q5 v,[o?; ,<ݢU*OjPR&A{W詄].;>{zȂncm䆪ΆOb 8^ړ!ﭾaV#t֮}垪OstQ06@)4BñbMGVwk2=;Ko&5`\2ɕΉQPpr׃ەQ}fBh fnӣ$(q/AU7((u_ ;AcUGeɮnШНo>y#M8ˊNhZ4wcI1v!c,@dOvɖ"8FgGܞ3d`ÿ)0tOv2M 4 }Fˢw,T k2I @HpRSj_/{#f?]~JQrPX?hZ"H)'Ns}(K2þʈhn@h 2&rȄŶA+-ha휡g]8‰VAbWn-d@}XH4߾(+7$#&#`ϑ1\ IDAT€l[dIY97kyޠ`܌g7?xlZ B`ĤFN/_ Stխg =]iǖ$mR+͕$Sw vBU5bTn ?׊mҞ0tjm2k Tpx7ļG Hv@^[֭ד`]G%n +kuB}ԚޗS'Ac"v k O?eVm=aYxS[%c/^u[Y;s m|P'v?Ooc.X2Y- 'jf&+xA~ @Dtt& b%ppz빊 `W@+ٹRdd#w@.a#O_դEnsknxzL6ҙ*j 롓hd,Q.xԐ}6<}sPʔ_7hىWuExg3*O_m QRmtխpaӟO W*'oTX"zg J'ZD(I8뢚(czP\%lL+hԫDlc˚=W[%ӵ'c7N` N{N3Mqi$;6y[F2ڴ䃲16,P:sAo|*c)o9%ܱBj݋BmHg۵U~oC|I{%~кp{s`N< "p]9yVBD0rY^:Թy ArejG>ݕf sPr XHZeX[q#'S@ b-Li@g]}%RZpc"Z$[Ǿx#lS N&-H;I@v]yR%;?@2"hZYHh؝? Yϑ;O/x\Mvʏ)^PVΓ $]cӠ:`dG]D9 gRf0# 9pHy15%A ta>t4@cgÍv$w{y8xd QTlٻ5ʎU{)R]d\(:o:taAj5M8qg)7&C%NNu I }#4sh^jB h ] k0%| *FW em: _6_M,Sz8:?Q>OlT`#}ٽtȯ|*uP$`Nqgf/)+ȓy[df6\MKI R)J: HI5IՆ%cq[* EoE"IM`F5D*<a1)w#)?67EnpO`蹠J]G7X&נԹ?4ά6:(3si6 nxHH.%r&Vt[O*[5E=* Y'9v#޲Li#j_=cθEjH?&)YgBL/JK\?Eciuپ_v#cId)9G5my{'IDZ$جd`REz9.Y k}vۛě^|-#i[}m܏Ÿ_r_o*/u"t76޾+{qmRrgM[~}*X卝1q5Ft.Q6(0ӋAr7 e%uK5LkocHw-n=f6~gG4W8gKƶ8; njd5=պ<+j#MNL™3Z/ },oBV)ͺZz$)ʖS1rKg_D$4 pkMʍQYG >x}mYf16Vnj,6jS+v FfK~iޙt̮YA,7ԲY(^ɋ 3dy's#ڨlv_Vۆ9* l)M]i5fZxO>/xGqsV-"C9I˖sT|ÇO*>|cۃ9ÇTBžÇ>60؟>|Y)>|'>|ᓊ>|IŇ>|IŇ>|Ç>|RÇ>Ç>ÇT|&T:(/(*s`cqϯ`PL I`[hTBרRʹ2 $$H%SDR[0 >|mH(EZf ӊ[} g= l7E~^!:%\]f;uv81J] uYP,q!D;O JAq#!M~. =NŇT)Yv#EMNo?m՜iOXaUª9Z~>|<  m5rt><>'`iQB0*DǯIeD=g7 v_ÇO*;BʶL ,Tmڷi{t\!lG Bjic@Q+ 0RRK ĂfW45Q4sdlCН 0Y̦'e6_WH@ed=  A} Hl~VyI"`\%Kݝ+LޯDZ{҃r?/2F[אS {4@ M)9!m=X9pc Vq2pxPg>|R/h;N)ͨ5 p3˱CAS: uT?w1^+%II7,秓4sxdOw3@u%jl*5lk<fD <I dVAT$ )>|RSpP:jpQ/kHG@ P31,&Q!W.+UctkU˚$̨cbMP0byކEa@棓."cI)PYlǠUB:D̼8^uYC5 G6K:\uM[(K(_|IǢL$rl{:iG<Q"ٕ;#v~OLiGbl[rINд[%"[HK%sHI f&ʎ_@i2Q6Ӭ̘w(Dn|[W~I Np1(=4Ѝݯ'Y9bfW`WEpe(,ˇz͏*'FRa\R)MA1{P)wE QȩA[FԊnUMT$$9貢/UŚ Ɣ~Zk̷N e+9tϒ?`'϶z\`ҙ7gFꤢns+"&(30|諾NdRC(]]Kdk V)q" 2s|lG+p ci?J9<٥\6vdef"A)4 $[My.X222QP5҆JAȡ;&DsVGfȞzlhLf+יM ;ywi4ѲqG9ɕo=ۈHн0Ik1%1EiuTv i']Rt[l%2w5Hʷ\ەe\Z~'&Ѽ\C>6Wݵ2eyk^iݪy5JK=z\-SɹOV05ҽa oy ozjkےy?'2\5RJ/_=D> =EHȋ5Pn'-"Bzc/'o4tw{ 'IG6Kׇ 5mco ڝIjѲB."HWD-IUd!0Mʫ a`4!!Bv+.AֳҊ+?= &F'm<'YƕLWDe#7t/Iesq'كF dZكm^{t ])XȂriw Ӧ%APV}FײQV}y0Zw,kx"20`J  2PDҍuGDą %:?}24.Z&fëY,vɯ"J-@rh] dԕT<' ,.E r-ԋH.x%@q ɮ2O(G=[i*Td0BL' 3S%Wtډd&w:_Y-04ӷ!;ovul;I # RilM?&izr{T]5aș5~\~r凢~%AgUD+dӆ/L ڗFI &&6t !ܲaѸJt Q,H+p~'~f]A&̬2D1怲ȁS Ɍ /nksZ!$; [RfP7IaPV"'nmX\Z&ʍ}SP))DĹ)~Y/6Gřbk[9/Wl%&&V$$'r]4e˚vj'AYx*O$\gZי )|*O=8_v;s%jf!U^Tpty?}UTrT;_@.4s@j m5A0';6>lf?Ul3*KS`` Y>qFEsw=z#?=,dW;1=Nto1TKh{$ jKObpAec@Fjo#uip4AMneHgnZ l#; k_cf$Y}.(,P)+?^DB!&Gϻc?~ l01p`~e?-QmepK@uɰ]}՝{]Ci3$ džckñ!Z,! p5M>dp_ @7z`l5x2x4Ah/ݩw?(Dj7""@@T _,^oc2pM,N9z" Q>;.YiwLjU&FQiFFC5ᘸ8KQ믽n p{O .{`+&:H"YЅr!v3.@vf o׿pmj;h҉GI'$ի$]C{1 4;!Jh5]*7JY79EӳpYr h[wkPlKIP푑}셜W2l0D"1ePMY (/{vZRqX5zzվ"8P:둺?I&(_Efr#+8n7Ѐ#/UcʽjJ4?|Lk_`C|XI҄L,E?FHnռ'_;J%H%G-&_lhf@KJgI,\ljF\1$힧BbXh 5?|Zl\PU'eTHpBJͬ^Cxŋ $n?+ws4MΎQ8l4 %j8Xy~:i:^N0gBl;a ZŌ s^ǚO/5z(}NJO @Ē|M}=j }?7(}&MܦC+k*پൂQS S! GVCC kN;řwt&&09j2K0g6̽#,7bҒUޕaFQ&_&y?5}lH3fuw_u|RKٙ@F*qN;62s@B'5lىAS 0Hm\M`v  q,~%ſulq{)[֫TL8[ mJ`+f_ ` qJ]6\9pȪRvʄTֈ5", 9(X}3'd5V-虁 TfW~NQi> Vd6Nй/6:MvKtc=kChnC `@`aVˎ 6@d/R`hX1m̄8rEΆ2-;?R ܽpPnf~k>%`".?Z#lL2i &B M Eǐ$C=neE߻偳""NYCSVMGJX8M9n7pi-l}"w{d Cwg<{"v;IbE^]K^3\fFP®|"ݼzY@2詵w7cH̟%ּ,'.+L[eKDK,Ǻk1PઽtCpE h0('%sLyQ[b*|^rGV$AsگWllSm9Tԋ[w^~+WmܼL X]; mى !&r#U ۃC'`swٙ{S4J_-BC&/=OO|/:ݬ <04zIo r%s4Lz<-7M־Q\bqPJ1@jGjу~DYzdl-sN2k9/@p`*ʦI*H\=fowiX IDAT:yJ.m ͋Q]io2aOf+-&25HuyRs`nqbflx@,4)H)vߙƸT K߶Hr"7-o|Ӝu`J@.GșR;r_]X%R1J/+"rF@Drv3@Tyk$J(B jU(er9OצּXLdjz[T5 EVhZ )a|`-aeOz${6- zr&o.A. }k8Ss?=}KK'jeb)ARoH0>۵ߎHj篗2!  *^/޽Ȃl(P1'F!-q!ڠ"P' ^ToJ9*ZdZ". Ds#pX]:%$nP#kFObDW@D OC4~I&/E%޸8w<D:+1E *9bn%"n$md*}W("rc@J鉔I* uA:ѲTc.Klz /7dÖ?:x[ͥx%s+mOۑ9l+)@%ݷSXP~=q,U$Vkwde-1&8xVdCe9zTlS70P.՜K%0 rړ7`+Ԭ>O-ۻtwVg\^ĞuYp@7w;-3\M3 s6},D -3;d"\^L` %//*qB`*ӒͬKml jA}rZ!S=QYAphK@%X(H,v*iCJ?)@%/gv)I݌%k&ʹ(kd ֩.Fj8._ >D6\+ɾx9pap~ѷ+MMM:ʂ]5ΤZh ML ( Uߺb Y{QbP ^#@+8h3׼bTDWgk={xT4%T PT3!l5D HE@ ҕjv ERH_ ^uPZs UX)Cz *<"(,ܢɻiAA3ߍ\&P^)qZLBb 4LYE7~u})M_4ԝWƀU.v[V -OqQKĒ) :X) ޱTH{Ujd"ѢMݰ.M0`ŃJJr6m^31ͻrګ$ Rz0 wY0uS6}ZÅ*(! A@JB`Z}$ܶ6bCm#15;@s%{uz$ˉHI24}= !t? T]ޡ~h*bP{rC-bPW|Քx4 TTDNƙ"aC.n`;[BOP͎v;T$md(q-nTW,XO|1M.}64d(,TjCKKι3~ҫ4 @1E=I/P@mB5=S+KFyz^CB!k.׹WfDj t_vCPN;!#fi2\m޸XRLR~GjtT3 D]k{׼fBՖWݖJe 4[ީ8s΅ߩgbk#>(o2.Nr_%QBR@JsI\ɂ<ƲH;x-R""b#(nVGuٌMn "e.~RsNd,U`)v%J6sG y߿ljr(TPPf 9D""h#I0+= g_dN,iT-EE k@͜o]n6}Na'b #'A A"4\A)-cϺO4Yp (݁I(R4LQ61B"z6L-̍_?%kэJ"Nk kB:H\rw}SFrhuب/1Xƭ46~t4gɷ?/{*5Dϛ ZnM<5dDl$ط0) ({^BQ RȑrC^א^uQ@(olk65N9%ټȻ'D%/d ! d+XC4zS) e8$Rl?ڻU GsbvpQ\z0>_nfVyJrW1-ιhD]-rFD9,ƕ6 kV @ACgj< +TAFFRxN@!I4[<|zK Fr"礻g$t 9"D Ҋn!QDɄXim ` pK T+]u4YZb1!Pwg!9ʽP[phv(wZ%k7Z U/BDʺH{Q$U1P~ 2i;P;̋IR")8LY-)J˳#zE,FQd ޻y0hgwKlhҬO~DȀ߾ @ΌUVΈ58k5mM8888sW0,ńĖHgEH D]9b ZQPRT9h-W!xL%JC"ABѹ=F 0XPd63"*XoSbJB$ieL*y~ [|0FzBIQ. &I-PkP̂l@Z\G\YU; "SD_sO-'*iSM(\y$QPTbL5;pppEpP*!bĪQPMPE(A.gkR@@O|\}$#`SbA3b,΋{q6z0\vD r{RDdD\6[3'{ U h΋@-Q 1"eJʐ5;j# \v+cռ%Ԣ ֗ C*iև: 0(΢$JR$-s'XnR(wK#z1qe47VATġ?"z.ٶ(#R :UFWZP ;(_ jF0]MBIE"N ^B$"mIWzqrGXEҜW W֖.1 ܄LgwR@z(iͧeCj܄oeW."QP@s%d__>yVZ̯(h iIș~m`#R ٞvB}C}/{ڱW@)GbR !XÜM8885ʃ '"r5 PpjE T/ٍ(k|̕E@"SS'T*!Sk)"pɊJ $@f)b(R 1ϚJM,Z5@(Rfܮ?g鱛^u888_pם -/}oGTݺi<%WӗVKE"eIb%kf<կ}(TjRAU1!ޭTK *_[15*+sppppRЪVRTNN,9\ Uu/Ǩj ncG ;3Hnz'}spppK '* *H5 W*8?Ώm^j/_(W)| ;D(ABH&o(-O+sppppi^qcQEW88888 "b݉RyŃADA+98888ʴp/+e1_npF6pR?M*|'QtKMF@U5"P+IeY!.E!$ oApBoEǽ$(V%?GJRgT_!z~,˵j۷oݙXdIO9k֬ Vvر(~jB믻wvY{իW/w@=s ZVzpppirVX;/YnիATp7HoUUu8:yȲL) |f$uҥK7onժUokժ%IҡCԩs$ !z _pp0B̙3>>>אVxz:/lw~ڵ˗/_|999yʕ 6LOO5jTN:1WWkwîduҥK.%''oذ}P,X{O*S-7ىX7`eYeڥK۷g^rv?Ay\W-)gxa^c`Z۶mݸqcB_ͮ鄃r@ IDATob*Hm%%" kq5!*A7nHJJSN.]V\yرݻGEE1+I˗7lp-سg޽{Q7l@߿,EO:uҥHŢ_ܹs.] kٲ%;Bٰa5M 1bDpp3DQLMM_222|}}~j ΐRe̘1EQyT FJ%fZZ!D ;w^p@(oڵk5jaÆ .:thرnݻd|FcLL^977!&&=r/Bp1f͝;ٳ)))_~o(?c-o~={m6!!aܹ[@"a/bHHHRW8~9st:pB׮]ϡ)Ν}||v-"L l͛7Ϟ=>SUӦM۷oX4͛FOll~ֻwoA!۶mҤI윁_ZlY~E9ҥKbccY7lЬYKΜ9mV-ƾ:p+V8Ή'j_I %%ԩSrSf3Sn]AXtb8q,˺ryUV^z…آE3gxyyuV8gΜW^yeݽzXY{ugÇwUwL4ɽa7nݻwuO8ݦ( ҷzuj`c!RJ)u… ? 6ŹJԩSN_~zy.\8w\&M4MtR\\O裢(X£m6[HHHhh~r%I;w|'ؾ}أGJԩS'&LӧOJJނ(fͲlH׮]EQ<:P{M"""dY޸qcR4!,,Úqwzƌ#YgqHQ6njv-į&O|~?` ,q矯"R:aQcbbv ,2cʔ)SO>c֭(* }v:r.\gIHtaYXK/Ē׮]$;;mɒ%]vʪ焐_~hڵׯ$IS"^|ŪTU;w劎>{Ȳ,UpppTj Z %i(,hV*^?tD/'R_z#}ݻ\\\9sڴi~QѣG?sQQQM4)((X~fׯ߳>СCrrr=f3e ϛ7d2=z+:::&&cǎZ/_޼yigfgZ,ƍ{V^;3gDDDԪUv駟N6W_/:u$IҥKvڅ1>| /x^x{7l٢o2Ǝ[qnߴig888jTt2@c )b-@PS~?P"Y9dq8W\aa4ի+hBWE)((lڵ]fΜqFQ !AAA3g|=={ۚcg!IbQU=z>{QX,cLA]paܸqW^5 !UU !ӧOd$M2s=;zٲ,c5M9sŋG9pܹsUU]vm.]?SRRF rSO=e2^|6mT=7m U܎W7==M-Zh&G};T!b׮]v$I68qqq3g4L>>> Z(N0ŋгgOJb9x :yII hX(U?PEQ>#YeY/ =̞=Use&QՓDɓ'/[l6@˖-$IrJϞ=#= (x dZ~zz$I2F100_4Ga+W^zVngʵ$IUdڢ&A|a3TӘ$rLdxM(1f[!Dd7o$I͛7gܹs$l:%%% t:u3Eld`0̞=[4IyQϝ;i& 8q;Us΍7 ЬY .lڴѣsu:^xo5'TRSS*v@M+Wlp覌iBf̘ѪU-ZKvR0tЌ HMM1bķ~;a„3Y3wܨ(ӹ}!CDEE7q۷;wt:O޹s teԩZW\\ܢE̞=]۷tFEE1ĉ 6l_ߌ3 vv$..nȑ#G+W6l׮]cRà g]fÆ ?~|҄RZTT4~&Mor7%EQLJJzꩧZh1jԨD`}> n6m:i$6t;v( 2h EQE1LK.u8f/$i…lXeY~':6lر݉8gָqcNQQQ믿#[n:tܹsٽ0`Ȑ!#))  $˲fy~޹sg8~8#2TA0 /Q-Zԭ[F 2ʕ+#G6lҥK#4iRHHZ*33sf-\˛:ujN{_{?#޽{q/l 4-00 7o"<%.+--yR.7 cn0ƌ2 ۷o?}tBBB^^^BBBf۷:vXzz:RϜ9"yyyGpB4M[|7n2:wlv(W^شikժ(wjj*s3\j5J4kӔҌ_~ˍFc۶m(}o2N'9rd޽oo(ʭ[Xr!lIIIBM<p>mZu5%%… U`0ai+W<~֭[YU^uʈ!11qȐ!K.4h sBB(2 \ñu;vHĆ!sNɤ(ȑ#'C֭}}}޽{qƟ| EAAA/_޻whܼyK/ڴiӭ[Yw̙e˖ %KtU'?__܌u=!aÆǏ'%%͝;Nٳg`Fe˖*2dȐD7zh.r/uddd ի^ ݵ71xٲeHUU5Mq;ϚJߺuMBCCLNNիٳgԩǏף?#UUEYhӧu]n5j1>|0KXZtiqqصk7nܘt:O~aܸq2Bwތ27ox 㔒rM2|pEQ.^8ocƌCBB֬Ycǎ6m ;F&''7ްX,[lٶm[hhj:unx;tΝFEDDر_ b<UUׯ0kҤ ]nݺ9Y=ڲehD޽[E͖iZϞ=Q"IҤI/Zcڵȑ#Xv퐐=Cn=DvBc=(,ΝctΞ=p$''ԃ;-Bڵׯ_u:T|]ta$\?Xu,꫄Jŋ ھ}{VV x4۴iSq%IYIy_oذaÆ +V5kٳg}Y&&0TN租~ڲe֭[Ϙ1CUUQ]fX;āwpp.֭;dNGDD|7v`0lذAt&Yntǎ׬Y/RJ5Mׯ[oŜ qqq.kݳg0`iرcNl޴i(7nep%KX,ݾ|rVl6bYxbˬ!q LruСy_}f3 Ѣ(~~m6mZl_;UU=] 6Ȳlٖ-[ּyN:}ᇺ*..ffqp9p ͚5EI={ 4Mۻw8}4ۣ>&E4h0ydiiuNIIlGe``A3g@=M6V^t:~'>ktʲ|Сsif4۵kרQ#pȑSNQ׮]!k6۵kC-Z9Bݡ(o{ GÆ}Ĉ hذg}t:cbb#'jvN*Tiw1NKK#xOB,@Nq,/^<|JJʱc|}}?~iOL9mذ_ȩ՝,iUSk< 6dFcƌ)..6L;v9rvڢE 'E9|FH_~?s:tecJi>}X23G[#BCC 99v wi!׭[h4>}!$w}7}ӧ/]?ΆuϏR$#Xz"SEGb$I$~BB,O<,enݺ*|o),sMNvѵkW.3g6ol0ƎkۙMic={tLiӦ5l駟f^JMXƊo ҫ{ =z0SCݻw:tҙY|Bbiڴn|xϞ=6m;{lRRi4jh۶mm۶O2'-Z0L)eEvIQFKOfڵkW 3BhРAzr:qqq'Om qر#66-eg;XT[={qƾ3͓e944T_E)X~O}i?^G5>>~˖-lB6k֌T94UUmӦMLL͛u-ĉ֭ СilkK-[?~<;;regg~ GZ_~…7xe˖?? ;=zx@ȫ:zhѸj*I7niu|6nj'OW_a'N8fʕ+Y&K/D)m׮2Lڈ#rss׭[';oy۴iPDQ:uV5k Caas=G?l~ 6LKKݻwW{'L8qҥ5jTaaի;(7|3h c@^"##Yuʕ+G}h4ڷo_U~ yg???>e c]:///9tPBHdYfEb"##5M{饗g4m6W_} M6Y{:u֍ qնm[v,˓'O=z(k׮c'̵ﳄ?lr{yҥK'L10a?7q l߾߿hܸq3gǷk׮[nqqq,G/'j#;v8p@PPPVVVNNNӦM'O@w;w>}nݺ%ѣGuj?~ZPXfyڵyyyǏر#{ҾI&Ai~?S񊋋/88;vرc ,p\,B̙i:4hS;wtz?fy`_ɲzÇkҊX5kiݺ>ptݽ?~֬Y `h43{R׮]3LyyyTB<#+V`fx㍆ [l8p,{{{o߾{ {].WϞ=_VZ /xzyyտ~I޽{. 4hܹV{*B`Xڶm{EԶm[f oǎNS'Vc̪DEEy]v=rTU޽;s5jˋ݋… _y/h 11c3^~eleڵc+~i*;vȑ#2yjՊ97n8~xaf2TU?~-:ˤW^9{ɓ'NgHHHvggf"""{B͚5ݻs=&䋟ǚJwt^SUUϪ ?bE)|o }~e]vwk޽{jW_kٲe[nbϹ:th$–>f̘c,Yb7нv^-((HOO߿VVVi_{~۶mKNN~뭷6lX ]+1{z<׃ #WG#8`*`W/vs˔)S .ӦM;1i%iվ4uh4 /*wqy?|>5k\r%J~ēJ|G7؁NW;y^E)Q)S~?^kGJvK)G9z /pҤI&OėS. M; ,e˖{!SO=jǎʹ#nzzv~޽{޽_|]!QEeԩ[.`s[Y_ +U7/"ό'}GSL0aixҤ;w]vƌ@ 55uٲe4o6H?Q%>M2Er˖-o+,,|Wga征>\~ݻw?'xl{.{ʈ:++_97ߴǕ@`Zf… 1W\q OǍ4p aWT}` ݢMNP|(/l!'(EAy2 ׼yа8e|8ZRe0iS2qg+S_)%Ԟ7fQÌ2 V *b-[ 6RUjѶvQdَ *dt޲7шrw S6ҔuQ_)it*;I8@LVd*>OMTp+)\i8NNe /Sʙ3/m$8^W`_Q;ޣrY"O崜qMVn:{;nݺ}8qEN.R1o)[۫RUsg_ڞ۳gOŊ;mׯ_vZtboPF}\Ŋyb&#oѳdɒ?E8ѣKR~<6췿m,Yy n}:r˗/[nznzfJ);8 |={^wu+e0y ng-w 7uY_;{|駷z7X^]zuoF;?)H[-]tӦM@m۶>KW<}>_߾}ϟUW-YgϞ .]Rj͚52dM67tSه}뺑Hdݺug_L6-[CBeD`m۶p8;3wܵk>#%`.͛wf+VouK)|>_ymR|65/*999uԉ-–.]*ѣG$)}qPTT_^s5?IoСk?}|evׯc=6f̘;y8ވU|$P B)))&M_*7n\aaa_XX8cƌg'l)63U$kKO}cTN3`_~9<ϋF999pvڥ|b8+VFiiiƘ"wmhoݻwٳH^^ʕ+333SRRZŋ׭[ֶmʕ+ua˕R3f0tСRJviw"???99~Tɩ^_\ʶϷtRJm۶PBֿܹs.]nٲE)u9$ rsssss1-[ܸqE*Tp饗c|>ٳMh"ڵkƘ:uꤥ'b Tjjj0ܾ}}?C*U4h۞n'QŊ/$rKD;vX}yyyZ2ٳ'%%%0[NJ]v۷1bR*//F'TT٠e˖٠)ֹsg)v5ksύ_zެ+^tEiii[I}Eԯ_m۶ ?8 6*sss۷o?4R͚5+ u!_ӬY$ڳg۰aYlYfRRg}֬YƍG"+f͚bӦM|M8n޼9S|vh$9sb7nӧyܹsѢEj\qZY~w޹pp8lٲ[n{}z ~5*~]e˖ S͛e92sq]۷ovvv֭1h믿+㪫8$jٲeI$`p{ND *>"HNNNF2qC&]vٕW^Y|6bcǎ۷oӦM] B۷OIIIbGuf߬^zjެɓ'K%?B}#뮻QF>mN[J9cƌÇ+sݺuv5h u@Ϟ=/iӦUP!99n|G[nsucJ.X#uK<ӧOBEEEqI 8C={eu-[lСCs)'|2bĈ^z=vDTr^xAk O=+ڴiӳg]v]y啧ql:vl޼cZݻwGL9׎;]nG]wܑdWcuv;{֭GySO=F̙!ׯ߼yFu6_z饯1fʕ^zirr+?)U}999(؍`Ȑ!g]qsεSM6%N&MK`𫯾oVϞ=-[f߬ٳguHiӦ׿7nPBNN/b[`0-[ njD.첮]*.\إKq™3g6iDJ?wߍu袋&NhLb -i7o';/.\[nݻw/qPJ^{ƍ%{[_|E?x~X3ό9rʔ)cǎ}ۏ?8hРƍ?ozs8H8ݺu?~1f͚5;vZ⋷vQQGeǎ0!sUQNz  !ϟ?qɓ'BJkݱcG~'O̙3GJٺuZj_=`>VZi5kbŊ%,\PѶm[{ Rjĉ \ם5kRVZEEEϗRfee}VZ%hӦMj㤧ujբѨڱcYg%FUVZ+rss_>o|sDf͊F+Wlڴili=k֬Yݺusss{u4$KJJ*eo'OB~駟~jѢz޽{? -oƤIY0_۶m͛gyIII ,Qw ,Xp%?[nO>… uv귿m˖-&M=,_}vׯB!)))7xUV}V~;^t `qƍ7޼yܹs BTpǁlܸ1~!Yfͣ=u!C\yM6m֬YAAg}vܱc] '33!77ue׮]Hk]$ &!x`}Yp+VZ4A=5kּyCXSn?f 󢢢vڍ5ώD"ӦM0`m=S@;{qM7}RJ;=ҢѨ}V֭{d7^5~j1IIIB۷'6kW^6m#<2hРP(KJG޹sR*ʕ+w9#STT$ضmۖ-[>;vԩyCcDٳgO0Y=q۷רQ9rǎ3gμ;֋-RJuGSG*V?p(1fB BCm5kOcd-555-/>},ZhΜ9q3LXW|/&Q£ٗf'QlDR|;۵k׭[Ν;rR5jƘ{wΝ/_k׮V͛7_ty>/bӦM׿<ϻz衹s禦^xm;DJ)pWݧO;w&Lظq%>Ν;|>? GNNѣ}ф٠QFp},YiӦ;fddwkѢbذavM7t-,^wBѣG_x#F;c6 H)۷oEE"NFXbIIIvVl4o@ e˖~NP(TJp^vy\p=hWcТEP(TB9s4k3{|0 }g \ƍo 6=N%b;pjjy}x/NNNnѢE?rҳ>lذAJFnZfͣ[9u_yW.njjժCAWO<+b߿ALիWjj޽{o愧ycL~N:xZ/f]wy^JJJ=Ə?iҤ[ncǎֺEEEkڴi{_|Q]څ1G/U^RwuW$zW17tnM3Ǐ饗뮜 *&ֺz;wѣR'\~}VR%{܄ ɓ'_uUpo?EcrPJmݺSZ51v?GjGB$4iҎ;̙3[h[n;vݻ_y=իWv8ҬY{,Ɩbk7n\ wlРAc5j裏6l޼yg϶9 2K.IWT魷޺|IQFӦM_|u]o/[lҥH$33sΝuv$g̘n=bG!.2{eK,[233O͛{cQƌlOM=%G81C ={̙3͛7k,>묳֭[G5{-XD"oΝ;bA AGRJof߾},{vջwh4 1c= ^J*=P׮]}>СCXGO?ٱ=3lڴiĈ`nݺa;1bĈk9|8EEE{NNN>RD"cƌKv9j()))jD}ٖ-[niΜ9%>O?jժ5kأP_VQQkР=ƘnݺMGB v 1{ޔ)S1={رc4Z6aÆ|M4ZgggwX.]uf{/O>o1檫ҥdee}ݶvn|M{Zõ^۲e>{Օ+WVZs97|vg+?3uoѣG'%mڭOh4cL>}ڷon}>_6mb?չsP(۷oKNN^`qvݤIijz7&Qv*;&N.IF'N8s̏>h޽+V֭[NOv`0cǎʕ+ iiia%vE";Ŵŧ؟'o1M6%Yv-Zhԩ- B_}l[oKz뭭[ .=.hܸҥK_xm۶5jhȐ!/BAAA:u>ܹi<ꫯ&LyyoƂ UP!;;M6r_@ мys 7ڵ+++gRRҒ%K&Oxh4ڢEۙ:thl#ˋ/Zj+V{19-!ݑ[fC=ؗR ϟ_RH.ewvرnݺ$3wC=a{Oc^c-e C/%Lg\t(,XPjqm۶ݾ}{ݺugΜ7HkEyAGW7{z?6wVei0R(e9RK'||d̉_?'iKG~ #2gΜs/_o/qT(^2..qOo)Uʗ#P[nٻwoV:k֬¿/ +'}j]^;N[# aմp8 =999_~e4MOOG.$:UyX<@jjٳ_~3ꫯ>P1 8 3_rRbŊvIyR͛7e@nn9sj֬iw0$r^Zʕ+wUz&M$I]5Ƴ>+o Y}rW1>^zϞ='dW (b,BȏDJ]!(#c][q{ta\%m"SC =0”y;fe"]c@!*8b)Ν;p g{?Y֣S_rOIg D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD * *LQQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ& @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *QQ @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TD@T * *QQ D@TD * *Q @TD@TD *QQ D@TD@T * *QQ @TD@TD *QQ D@TD@T * *QQ D@TD * *Q @TIcso_R@ IˑPS1DNrK1&k̩'''Z#}BH!Ll<"0vP"1BJ)4ށ($Nn] ZaFH-גFa1ڑ4QeZJ-QB Ha'1RKGiBcFJaR1dEa|8niQv81B{udTO#cQ|_%;pqO GJ)#TBvQӞB%6HiDZKuM/8EF)p>!]2R8JJ)Q9'8>]7k a7:QdD:Gs#UD¯+#TJfOiR]cZKavwʽ(F:j( "%胾S y})g p$E<6Q'cF*PEwpژτ2(7vcV#KO:A$d@(W)a׺(Ϣ;Kkc"~ULD?t]ae]{¸FEdPZJ6@* h:&$D Ox8`8Bi<2ʈ`4RZk{N QSL|Q“Z{x> Ȑ0“>Q$SiZDRZq" Q2 lR<2(9Oz8خ$!+v0eȉR{H{-J ?hBxz_Ws\bXvt@ژhuL(IW}LW HSdtDkiL7HʰėyRGdXv+҈f  yR_W@oNRA)9b˰+#BT$g%OǷ(vnOF0(OW#Nr<=r ]!*pcc~'v-ON2T:اR8:oue]jB{>;禤(ys` DN^o d\<-ֲxQ.DC|.󤸸u9޿^HQaJfÌ?RFOz\)Zja:e/`#QKОO qe>(`[G);FĝZ wX!*p$ }g}beR(s\!">d6l޲rJoEP?ouhԋFLh Au6yſk }8vMKBcJFNTl8WiѨ '_wM}CR- EqI)c]Ic0p2-PVYDJ)xjgWTY"aOmz8̠Eǘhӎ㿔ש~-e `w{86QŏJ9+)afH,Iy*3n/pz8wEc#2_z{#>_}*vW0Q~6@E9G}ƈ'r-şB+¢H-&7v8k^6!eR( m+:hsӉS2F x!n' lj6JJI Bƨkݍ;^2B/2RG-^V㎃RJJ)=Q#/{J:͋##Q2eޢJ~].zعGu'GkH!S2Q/o0pBT0-?oߒWHT{ eoPJxHا噖9p^!O߰; UE_C5@zbWzҋv:yA,5_YdaR9z/JS"*pщ;sEJ^d`D >?JR7 .C6&n[rws{{0v?T2BD\VM .7px$;daM|>ߑĉIzƌQb7N_RK)(OwSRTyp aPR"({PW0T^8-[6}Fd!Drr}D x R8RRR|>O#J1{l(8㸎ٰ(*ũv[_ÎS8#k_sՉb7V9H)w5rK.gϞw*^m֭HnݺG `>}NJ=c \b.Vs ;dVpN,ZVsmINx8BH7bP)})180s>|ݺu{>G7[M6mܸޭnx_q! 98t~۲cPH!q/!N1BPT|"Q:VP,a})õS.* nj+)|3f9rdaanE9{D8 Gpbb_SѿnҢr]q 1ӪMaTFs|!98B)%O,֘Cr SnLW\C]wu\p)SJsGywڵ+rhׯ߷oqZy@W^ ԫWy$,g^9m_T>q-[<#_~8>|닟7nUTQb;|(6d[;QT9 !/a<$ۦԠ5ڃ';L2=7Ķ $B)0F(m5:)ke}w9ó)ؗ;_=x/r$)FO>CTOyTL2Y!J 18WYԀp(cmvZF|"ywSJ(!T(7Z.߭;tJaDP*zo/j>59r뱴,?r L?j͛70= %"?8R{^vykܶjSq N(qlDz^oг͹4F x\)懷ؕS!0޽;RT; u48+ "w"1B\ 9ݾ3#0, xFe]~֭[Ry2oRb_LTTZrVćeˋU\RW p&Tɫ%ae DEwf6̲,Y,{OK$M]չA/ի^OQ.`"xVQ#`RWğ""])?x!qP|)W?Wx&HkG~ƍ>~~c[o]/i$ꫯO5|0ܺu-tzBapGw,rpe d-Fɐ3׿"e)o&YcQm{eeEtԏZXɶK. ^}tepqǾ\A0W(LHE(w/1hRʇcYjR蛟5 9;w_s> ƎZ3̈׮]sg0j8`oWWW B^qMTO奃b9'pͿEC ) *v%Tuk׮ݹsGӴjFt:#>}믿z~u1→#/ * QN^)0rQ}hƾS|' WqH9b_KF [߸q#nZCo>Ί0̫JEJ ܬ,=Q~;r2T,˒'?`X4ŋ!l6+N~T7 oKWgZy7xA0E^UO_7׉9AE QᜧR{;wndKKKr7F ݻ'd@4 W芪.O#F+~ py!!"I@e\_`0ZWRJ)%"j˕GQD~LTz_QUAyrXً8w'8;0 XL^̨ Ð̌k硶IꦨP`ē-\V5ewrQQ` l^3JW'[sou=\eZ^a.dȋDU2Wx٫/U'ÇHBT`Ttť1U'%ʠx[o,cU jw$Z\'(TT_gx%A!/U`HpZs&R\rB[O +3bNӢMI_U[$!~ BTIˉ1߷b:+„N| Dޜiȓ 1EY,C$G(pޜ:T)]]{P+|{oh+H6N ]/GpKWsDUWHt ]yrQQ ? O!gw1y|]> *prs#cDNf81#>qZ+`@NDDD@T@T@TĀC?'L"9wG\naW ,&YNüpN^va>FΝ;' ^7N3 !񹹹}'('{{{rٶm4i0HJVrccҷ8x|mm &" xP. ~_h˗aXx*ln۔R CaIӰ ӧ28Tf,JF#ey=SRl6;vAT)z],\.BTRD)j\'5ιL&LA,j JtU)j1&sfKK`D^eqm۾BA4l , "58痖Ԣ0RT:fuR+!AJekkK\ ;Rl6zX *7D #3X]tݽ=!l6NqBo4Mܤi䖏FQ*lۖ_<_YY1M"D tS6779L!+p H e$W]vzbxpp ]a\p!H|Q`ҖBBHbٶf\8z1j`CK)uX,j5>!r9Q8|D] ͦ-xiqj6DTV )'d28X,^bHTt](¶sss\0  *Le ]:)q2 'S8%~?d9\H )JO<nD@4q~r}"ʊȝ0=z( SA2;냃{j˲T`CիWɤ݇b0&i|["SP5ę[YY|r,7^\~l[0ϹĞlV*!VfIm[†A5 cmmmuuU4a(۶[.A+B]|.^OYMx*l6}JVu#FJi4MRN^o6v[l5Mg8'xj5qFkkkbNDsf($̡^XTao`˲"__P0 y37PI * * *DDDD@T6շa'IENDB`ntfy-2.11.0/docs/static/img/android-screenshot-template.jpg000066400000000000000000003627261462047176100237040ustar00rootroot00000000000000JFIFxExifII*1>iFGoogle02208ICC_PROFILEapplmntrRGB XYZ   acspAPPLOPPO-appl deschcprtX$wtpt|rXYZgXYZbXYZrTRC(gTRC(bTRC(descsRGBtextCopyright Apple Inc., 2017XYZ -XYZ o8XYZ bXYZ $paraff Y [CC8"  p    !36QWrv19SVbx"#8Aw$Y27:Xa%BRqu&'45GtyCDsTU I !1AQa"2#R4Bqr&3bs567Stuv ?)޳7gt\u[;3׍3h|g}ya=ϗpαҀ=&u"q<y1q;gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'y!'?gXQ~i@~:J8y!'|d3}(4?atγgtn*ut<2Ɍ}~HoY.=:MIsv>}=;sЦH3=~>Lg:"G*e*I$S*"i$LET6qR6~?DCvg~}osFBEi3W M|[Vުn3[1&eqC\\ybEԖ&:e>q<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./Vi+<ӻ./V֮meTꊵUZ,ZnSc ڮ~za6`ufdW𳑊흡:JT8jhPz+x(i_%o)¥͒Iµ,"urFY2#aP#< 8p8&):Ż)%]ߛ^wS ,ؕYbȦse(gɳ.1)+;85Kz/DiJhɰoMei&#r 'I-h%Q6G$ma%k\ R.+-f>+h-Fk']Fř'Crɀݞ$sGWs.;`/-(Q2#+ю\hcǒi$$I\VhT10j&1vp㢼s8|C \s1V%flSC$"x29͂6s_w6Д9m(\g^q8橬ZY|5b˜F,6QKӲz[0mPsW9T_-yP+( $gr9)`wqu,f]̮ qmSFbk fZ=5`7D.qS֋gM|bvc=,) z!2Rjz 2^2MZg$I8&HL>~شKzkYa,af‡EdIR$nRY{[z޷A*MCQ ۋMc"v*muaƑ>T :ɛLŠٯ#;w$gJGyw\]=} w8.M"7gʦױM2ݽYrUVX#rfC:{< KcQ\ɤ"8H5)"%~:#R.n#^ mtFA$i,LrMe3x*N/ڗ]^0;gOʢqv(SH,6!pg&˼F!1$㿿sͽ)t{^k5ӦtHG&1l6G22J" XAu;6ul\vQu]B$L*JDL1P)B1rճAU5]t ՇSӐ7*&;G$ٽ~'Al$aaަL-$\l;/yUi7~VX'5 Z%C3~zn#&|3RAkK6IgN_O&gMGMk#sέKjŀη-T֣0رWFW+xx#V򧅚\Q5 vT e׾=lpdK4rodz"h͡&I@Iau7 HYmpba4;c2\Œ5jyKdi_LD3D{ 4#wjq6sxDNKGjb16IQ6g%h,zqr4gfvЌ6PPuטM,αWdiJa2jɫ}xBeʌ`0y(7.T{ݙP(fWϐ7|~1Yg.\r vu\tUrU8]SUYSEUPQE c6s3M kDߍ֯Ef"#}.:~:F:8tt1D sϛ.IoR^y,qڱ..sSܿy)m8A:-a/5>Iy(o(v'PGR0PZz%} Kn[ٕ]ׂԤRzd$is rBeU`|[\e5pHX=uޮJ|3VZMK?rBG^gtc%'1zބū38#g=I;_ԫu֮ާ#9LKxWo;zddzojV1dhYņQfۀ7ﵚ6BX f͇Ж''Ibpğ'2߱)O A{Ys%|G~ħ?$fЕq[Y۵mˮ_Z#bOt+5|?h":PL*yNɱ66qyHOQn6%ԣ6MĻR UEFqo Je3Xw.mkh-">^nܾs,dbkhC0 5IB3̖coʞ~^1򉱶l VLGZٹrWdvcGX@ŵpIԾjUò:Cko=E6u̢oh1NE\8tvF!੬"I7qpʵ:cŜQybh}X˕-rq& 9H2TrevJpi%L,Fnd9-\j!|_m;{Qnv ]sK|_ ,hX+;e<~WBqG[We(.w8Ǘi 3?iXlCܨu1Չ9a7ti49RNNUvشjn*/)i)Mˆ0w9li7(㜬Hv4R~m⚌{5AR"8MǍE)pb9~+9UVUPpd8zٹgWQknVk;#)(خB3diqwR)up=rǓ_PoCfNʫӠ=SɒjR6ff(p,2tr1|9pH&qEM$D.1lso2cc9GۻKrNdl UEhҵ[%Ї=9i*K/,/R*CO+/4rվNgl]Y#u.t*TJ@l&ѳF?tBt{Z^+5ogTzYgJt$I]HG.FɫEtO^k׫e]yZڷ]$ȴIapJ6NAXdz"o2O,'=;vnjZt\k $ b떊Nc/';,9Sx6|T$xոb1!~+LwnxO9.pA<דyCx)JB)HB! )q.11c1c`wMN:, VvλzH[K;D S&Q$<̽VEL:;VglUI_jl j\i y7GI\sl׫"$xӮ>7_7:Y/RR;WUQ.74 ?cff=9 Ԝ*L#^zG5WQo)%1U4LEhsKGA0QEԼDí "Qѱ[`ƁՓM" Z4jlȊ"B$D*i.1>~;"ZvwUdC\-c]rSje_NwY1 q'lK}ѳfw5\we$T¼p+xæe0Lʘچ5>/uzqZoU5D%ݻȩx՞vg 4dR̃sScv&lѪQT)_d$7V25VF\-i:qanJi M"H dɎx5t:RqDlF_5%WX'VMj,]λhFI ܦc,L*'nsx"CFڴHf Kr;}nLq\}vrWvP7Ƌv,OjшNnY8i8f WiH%}ӨyERA|fzWTQtxHFa_3d_6]Do%UcpԝAj`)Kԍyg3u*qz݆"'=c1-gΝ<7 *k+UYX2| `2r^KE5'[J.ZK>8lM^5/( xaNɦ;xMXM7xݴGng8u$iwJ~͹Mbt[=_VLNwclˋSNlՍC0v1C&3iS&F2_R:q\xRc Vc"fqr.qX* o}c7ќNҳUh4!kF릫G2Q۰t7*3fWՎB_DAy-!&Qy7I]wDVnҜZW /]Vf>%xk#Y;QՒ+(TSy)JR R)K`.1ٌcc1c~HAr[qa@eLOq+4ɜA^! llIkӚ|whzn)-,5 >cFIQq 3pEĖ] rE62tPk;^ini:8Iy位K8VkFYDYx2f.#92&w ʚ3Qns.En:ÊXǷ'Z%".w*V(ʷ`hHUIm+(0nGQ7#䨚k~[=i9v5MUca% +29`g&Ȯ L~/G52|y,LKYRڔ~%W'suqU`v]s]*nZv66:֢s?Ep>Y2N6cOdsnT$yFb7@ܧ .Kf< R2q|ϗ,X-l4[a4֤^;~oߠF:'NjWԿןM=)q::{b-lZ=ͧiuQWZ˴gEAz(I9(x֮&df$aY]Uד Emwm U"*uU]}s5V+Wu,@3XSa[ֈeFn+3n&sFY-=mrV<KIHZ~i_2_?} [KތY3jc\<43cf~K.W;ZŹJ`gDxPBL>4GVHE ,b5G\vQ.ic"uҭa 0K غA܄"=B_1sM|6;&bHMfr/ gz7ᴻN֮y"b|i2FGHO FM2\63T3p}PMBDS9pbpbJb \83gJR.0R)J\c)qcǭc1[?L\,l|Q6N_n =KS =f=[B2)HB!\!q.111c`|(jEF$Nr@Z; vdc/b1vv"u%sokz~ćD{L)5W®a0*e!Dd)lc:ҧ$fgW a{vȰDd7{9(#eƙ9O\+ʷGD"7zk8Eb;nz{xsgÓ%bǵhun ZWȔ|*[a 1>*-V cxOcۜ}+JSkJV+ZRVb"b"+ZDVz}>9'1ok5ώl>=?Oe$ >OH: ͏+>%> /k6?o1J\J\d1;s>1z}lcȏͶQLrfk33: E6Hg.d39s.Jlc8q{8kd VsٞUoX-[}՘f?8Qˋ. şL9i=--%'OkR=% O'/?6y}A7tH=FRIԃGA{1$X.N۷hU=N$$6jԪ"/<,2\f xExD;LJO@W6wQ3e,,RL;֊.zS6VᥲWr /n[V7dHGMUSlw5.|z3,oLܘUǝ 5%=˄2~Ą -f+8"Rl192Ͱ(N#]v/5q(񇖴\,*-NDR&Mu?|TXEGR^IXضnߺnJr#;3.3qZ ;Y/&Q0Md UWwwڞybPycaqPwᠮfOfQ{,l&:us]? :6ku%6 [d!oli*WT4;QUd,$l)T 7a^%6Jlm13J]hW&U`<#F)(e"A֛]} $21X _D_~+%z/s7eMA+!TEV"6194oQ r^V>QML5SleZ.~VDQ1NS& \z61>xC-i\׾jOmMB>0Z"! qVIiL=v9)#ϖ-2H`'P!k#}w%>`TUxVhr[x]q7-?O%eWvB>gw'8q5Ub]7UIeυ m*l% Tl)s~ys!6fgZ_Gj #9e#daH t !fu=R|i e\8Nٱ@2a\$ǏLEB-׀9kqMlr__$f-Z"{xC;ή̢cuM |.UȩSK ~+%z/s zr[qF6a!^u16q$PwSRwNhY&lwxtoTr[0 Y<1BgIk{TMkel:FjFFN!8\^RZ='d9>TABhS[nhj_ekZO]s,ce+1잦^6B9TI78Q#3~Y|sa%Nb ߾k} `B{X' I}c,Pt7BW}7J|BA^l _9wS`f+U GHKrG463jDFPD1&j7 KL`녦|o&e3VD'op)p6˫3Yp Yl<~eQ5UMBxE'&K8G`l-{5*s`pb5^UdIG"6=cs[8}JzǗqa׭k_Vy$n߸CGOp[x+tg.^\#˛.MԈ~7Z-=kDZokZ߇oK勮(@DGf;{uvjn[ $d )e2짔Kc{; j`r#J4H4$S*i$Jb9*h&1pV)[OhA?÷NV ,UWp'UC㻃d ߻}w f$q"~•GUwEO9_Ř['y2/n9E%x{0 gO5" pl28O;ś/vCCڮ(˒K;lOiZ;ϴvwGP3eھ)$R/mjxW&#ʽ<˼r5jKsU̕iEOW4{RU=YrnJ&SGH>hS麝 " ^g) +LunQiUNHrRd@صSgt_6LY~Lu .S_$2WLfT S3󜓷wȳoew+ONt1ͩ3kkeLf}!yu|ϋ[DMc/ x3ofI=Z"&fTY뺍abQg'yZJ4 ٘;c>xWZ+ar][#^ٷl~;B&AO-~E읶rK#z;Rݘe&q\%.#' <'jh&p` ,I'"w6Dԧ\-$6(٪,X _+ i+ٽnG%O(9ETNr=H2=kdݫCUJWnUnk=Jv"\k=L*zADrsUAwHdK*$\(\3[UٍO;UЃQnts yjaD5aa 4dɇ fa1qR9gv~|?Z[.۷U-V=j\ә>+ aK&1k|ޚ<F10R5lа$t:~OԾn)Os/VGnݷjJ/*zVқy6 M}nBE(sJ6bXU5!?΢P^Lg96#wYZI1ZQQLKs /q- U Hkj4\z(E&1HIR#tS*eǭcǭ.3,ln[\1һE-yZO4 )Mn~Ҽ֕K5: w_:*R&&eSGtSK罞ț/ns^k= dXμb}N4푌1kf7 DF[3NUL:]kr:ƞCELpnt+݅2*]R*Sg1 lg(#9]mpl&{=~Ss)ϭφ1y>AHu?{DGD}Fx!_k?|A[$yaxAPetx@&V[F.v7M(E=(𵸣-9X={7Gi{}F1^<6 l.HmSL'5MB9T0v%V}78NэeoUKůwMl;YˤR \/<;.Gb[)D1$̓g=7 egs" \knSaio;EӞMHb%y9[/<$Kg}R6n5T[h("ƴ^ER!wͯ up+ :q? 6,7ȩۅUjo1D9:*󌲪E2-ǯ sr+▆(b%6}X ;K=8w4rChi+ 1 "H|%ϿȯZM~0vx{v?[Dœd-#=hVJ8wDr/\*&H6C)1hуv͒zF̏Z?qG9uߤt^}*Ʈ% ?7/]3CűZyDR)Bŝwjs r.`,vDMq-w5D8**[DH9'NK9u[ Y@= G5]i;\k+4ڴzݺȌZ$lL˧k*g1LWz??5w%f|׆5y[\q-V]} (ͩW:0,; IZeZϼ?b*}_桵zytzю2Qxv`.9y֭R>PY!&JܝSS1:28RM&ĿHy>\g^>ƓvqD[m8dө缪U)4 ek`*g6<:Es: Z8ʤ܅"f͸Kxs387;98?Ք?L>{)~% Sk%1M)gs83(}w%>`.9 BaQEegzkJLɪreUz7ܮz6s _b[6=1_=3;ǰ_ 7繦z:Z˷wuA^XbX&nȿtLu)*d3tt<<<*l\65"q}I ]u'=ՆV;$KFEX ]Z*_W&aRiEO CMNy;-sR+pr)ڼ<}aW*{ 3_W96q| ;re--Xx<هBf8|m䦪 FI'OO:j6h\܄nc:bj;r.`Ngvk;Nj/da_0J#fZŇ\IM"Jъuf9D>&-+|u(]됒RQ$ճfj7:lTf#Y>|%$2L=[G ysXI\.gV-gh(SJeLb 'K7xe#=!ۗ`GIW6FNԳh ȒEZF˒ya֜0`wldF)ځ:W> O/g"VPLdܷr98M. ?os嶄uN;7ᬾke֏lYE"5jrO# 2l0]}X[FNi.X:MY]Uudql/dbvÙGӬHKwCW)H{ [u涪aѳa6mۣƽuW&k5mnYd\1Y 9GkMm'=[4[V :Zj*%EMlWǗʬb{R ׅ]ewO7 Σ2cⅷ-嚻s=+5U8O, qcMB9G)WPn[ƊQկcOk d5+ͅjeڊ9VƋ#U;fDk ".IuS]".ʢK"ptIBdQ5b&rS81sgmqiO冾dmBI`2A,"F6Z6;X)nl+y7'[U 9<ښ*c^,Upتwq5l0&:wwj9p}QXlv=bT;晝(W*F3ZA[Vw_cmMuœmmT.3mk(ȺrDO*M\..0A%*ATF-WW&?ag|ʚS{nnݟ8z<&n]Nf<_:1FR~rJ<5qWK5\f"dD#c t2g\]תۓ:ψ5IAJ' "k6v9{[c6? oY]ߴv,nqw`J(^jfV7gխ ڲe0V桬1q& zt%^i)呰W놗;uFOIUJ:l <<$Zi8VCH.|:jܫ=yܺj՚ĽFk׭7uXzUyh3S&fb˴=SmON=T1ܣNf+J*g3vHy8FfbJ,uxTM)k߽f^});Bpޏ8gU)=yP+@څl;YbƼQIL1xHR]!:"vޱ^}]Ph[]ETWccj$'tϨXE_p{ra߾E/lA^PVθ| yZ.ˆVoEӊ"ےhS1릢] UOd?xO'zHx/{Z:ѵmvƯٵ:VJ{hOZs`W,35 xda H1QK(z'*+u4O*{j_p;^%5$v]ma4ō,IB-`nF\8D/%SЯ 5Tf[0OmIF#aM$rv7NIIY avRrc*j;)1fl#!ݽjXԫf赧e,Ys4XϰB7I&Dɔ}_sS;j'bJ#{z[s6z HZ,q2AKY]=FY4,M!+v>_MGu%\@,wZUv')'Xik^Uw9^|<բ,f38H2ZZW5 w_pVX'k;\%4I+lej!N\=oBóY6l6YA:͞VXöt*vbq7O>xKi}i׬i[b`q=!TB%\,FUY2N=fo^?]8 s{p Mj'f#"f9;`ԫ1ppudR2p1߄[>om8-!1h} [MW;U)GE^V]žJIvjrˢArו\_v 6QٗuB&jW_{8^mp}+j.c:$ڑwU~|l7Q.@h E`'_7η}!hj[> huYG0mܹ^197 ^+F65')[hMh+$pͺfb4EwmQUS"!qMx{N2Y.dv!02Nu.\ t)p\vcgf3uRTl=ܫUK$_=c5D-rEGX)3|+隴&D;*2T+f~?l퉯$ad:kwa%)#qԚZҮg-caN@o]o{v_MlM6еx&^@EZ~C 2#/qfۦ'p߅_HxY͞.g6lR_˭s%3Nc}QJϲ-x [!++lj\]& wHWuȴllAG>ydfÄbz|EXE^X`QTlbr)'`c!v),[FDŇy=6HJuS_PV”^5QL1$nu:YeLgWI| a,+sWjm՛c",8Ҋ EUP7dٲ\('pc =FNf]j^/Rٵj%HّoUM t y*mX=g- Z^:_lF4q`EZ"YYEMD)"#-ڸ:I{F:rힷjK;JަYc]6Me0ԉj7n+槄;ӣi[+k]Y|] .gVS+u[CN:/4tU$ o1n:&6VQ=KLdۓDSSyTt#$򗒍"Tk!t]In͉HVTfW]luĻqы9_CB$#ϦkIjԲhg_.\Wo +v fXjg\׺R<¡jYl7 {jN/!.۰wDp3vH-fb.]F~Rf"Io#"ت9I7VUꦲ*3š> G5nwF ufۚ\ :6ª3„R0k!n! L.f\K}>9>$ > Nؓ$X%> /k6?ooؔ'9sȾLnh*0olUn-MMT;<0!א{_s"J,5]Sm.ٱbL4-qTS #>;r81F9^mǗo/ObokAә}|h[|I[>-nYkLmm䈭j`׼<:^q+uBZ4MUHힴzsda *SXƸU<6.r1ɰ}ch\zȒ9>cw6.*r[Y$!*.M6Nn_M" AE#17li,%ǖ56 tSg:كJ{NV?AdXW'S7:K63ght_/xj[:xm[Ž N_:Vޕ$LszմEWO~.]/P[͇.+]]Zx^ ZxLJ&,l4[,LS0T1rU^F'RIdWUCc1|Ir\}G9ǵ0Ib*xHj7H"Hʗ{ 9\^ǻnr*XD~]v}:/p˨V2k*Dnsꕡfx;ČYlIHl3¢lTuϕ[aI[nh%"ڦ6/N5_ =k3Z'+˽MWL17ל|r;Dfqwoz|F8s+DGb.ܵ&>CJ\|frL(uE12ś]T=3mͣi[ ͪ%ٲDE۞ins`TClݏa[/[:3MHb)?!M-!.aZC/-^jf%$M;xI9({֔?+'K~u+ɋ{\0q4|U N%5· mYcW* D`M=X(4;Afիܶpp1-YPQ%PMT)Nb63Q#C dyo#hkYmW߱)nݓXjddm_<[4rMBݿyӍX/Ro4l:A:fHƎQ1pu],Ȣf1Mۉ|ߞc\p?@rBMl28Tv-]rHIjܥyfjsO6)AINatC+ ͶhETE0-hNnF9u;HHpSA.~JH]Lׯg{Rͧ_%1AdjƈG&wMh Q$L,os>܈hk,;uUAmk-֍ k% (:Ӆ]ûWk[Fmt_;yJ?*'&)NN}`itqPZf+N󒄆A#,+<$JuoIOT)z;]T+-%6<5C$ՐRd]sHGV.k9ǘg=}A[mQVZ,?E\MG(vFV*$ ziau2k(jaOqwW=ZOnP97rz䦝TVddQX*(d-2H7lKs^ϤJ]{Bm:svmFfYj ' L "ډPBJbRJ^Hc8CѰ^W_#j+^6+4;RϽZiYyИ)į>& mHteN9I#ӱxVTW+)_. V4hNzzi%~ ؜T0GIH)͓%ܷ**9lɚN2Z7a5×y7yI(ǫ픖!T4Zƫؓ)TsZ#>&IBj& wsAu`8NCmӐkR3hozaty^W[F0ZIMIEl˕bua~ۍ]׫]˥tyNPAp֨S㺛+ciWON'QG7 .X:d_.mM5Rv3kH4puE8[{c;rjubcK=Ŝv4 4ŔvNED#֭F+L6 X 6Z(0rdKl5h zog(}w%>`/{գbM_ D/ӿ-ǯ|ߞcPyHtwVt \nmD/bb,kDRtv1[EEtۂt?A/He=03Kuyǣ\"W[+rp4>3dICn✡ٟ^bn~2Cn>HGh8*:k6 ̚q$"wAپ%zU{DrSYm>]îܻjSsVZ䴄2^G f!'\0jv[ƝLzEj BTJQFJ=n5ǎ~RvOh4EBĮZz<+%uj1㠲j-9hl;S879:WErS&rMb{{ZfYH>덭b&Bas;~\lzaCh⮞$N2 ʬ6pWP\ԺkFﷶ$&U\Tj3omw4OECV0)ƴP;Fzb1ڧ}5o#oYG˷򨴬-CYȲ:yl4Nƈ?z(5G/bV' w^^_Wܒx%Xͥ'tp"i(G @Vѐuʷ+fIV*Q'A;z ǁԎc?dv^WϙUH ޴{ 3?z u+Q1 ~ٱyzB&ѻtR=>JGR[M H.\@YjS;bV429~ 3..ٚ[kn˵dmrpRs_?, Jl+*$L"8Yh$J$UnzCÝ mv>=R&UrgX8n&'s3q^YPzEr1VlQ:e e6OSq5wQ}TG#xI/Vk M:kckX{RjYvHi+r(#GW8bU]~) T=;MuV|Ů Ȫ2w2rY@HY6;r;]|9IEܨ(r=Y&ݮ Ye9SIHQUT>JDLs!q83C#iᦱm9l[Dֱ'v&SVƟ铓}eVbJʒd#cdm+w9_c4켜ԳR.M54D5)tK,K`C%) K|#2g !I߾o_C׬yp;toT,+k)ڟͶ玻z/[)VV ߳myTy9tyR^\DTrϨ/(*NjE_Qݙ7eWn7Aُ_=X;>~Tt氐~Ӵ9Uk1٭/f*EWl6JE0g*\t3rUqNu19MdT:g3fq\ysgPΚ<. nlgPh+k-I6R@WL,&.]A~jy7PC-W=Oqp:\?^X/>7JN&J?7Mc  jITYB&?CoΜ/i8y-z*Nb\4m+v2G)֏;ѷ}> %!6A e*$״_ڲp2TF=E21C"Gr)d S*۟WlmCyb3iQmzWnPOw(A|' wO̗Ǔ5QN̺"*IetqpRiϽohYT@N%gP^!K H*r`I_0yk;BJtqMJoaN >UV0{܁jF5mU_R,2Wƥ#藮 a9) R_C bRs&7M<0r6>2;+}Q}.vdo 7M]Hꭑޚ\WF+QcfĄkysG1˄0\T0'헨/|Lɣ +2NF]$`Wj <,R$b7K* *b'. <<n0r[r-.%9P3"ښWtztw^5LvM6ׯoU}J6KWevg3 8EdYmjS"W-6.*vIj%+wǭv7@iU 8IBGGHE=3ᬓWn㉟> jfqf1lQ2p=ihY)afbiL[{'ٿ`]3t$ɜPw^g п/o߂^nq.3g.=oqg՜g9a:/,iW3캶+n3spNM$*:Fb̼Y P1 SѲQ1/ZEJk%"dܳ2zF2KtTnf2j!Sc9O_ץh>/tiXA;֣e4> ܼ qbߡ9 5,<"0kfRCZQ=BY}ŷvEfN(jURnl2MY=D6E]W5zɬ+T!M2Y ȔqF6TI2L/t=2a%]O4__>H=!#vhԡ|ỊD 65Cɝꜣ JkMQS71eV{'qvyYybF -_(O&s`aw[Y7{WuhV+lʎe+6! E9ʝ>*esEi,UP*{ZÝ3̍JW'sb|YM޶)<'H>9?)%/7^ĮP:Dr㖤jjyS`dVZ- fU3ڳǔ)h7*c*fPٿt)א6o+{rœfdjU2nȸ0w/R gR2Fs,V['_uvԷ&vaX~cWԽjf\Ҕr'>h}4\-$9kzɻcGxW,V B蓒\nUqZe*YBvG63uXkK2ɗ8dͲb!oBA0/8ōc=ɰ[]w5 f,2(lWX(|"nQQjΚ%W}>9'1ok5ώl>=?Oe$ >OH: ͏+>%> /k6?o.z/,Ty7'apdHUN6#-y);x-HBX:ϯ,3(e>+7Y.pg~v4jCʤG)u2Uf6A X5@= *,Ot9pBEKUSNj9$ X[њ)RњJ,NTS*TJ,U'W*H3x|0E2evz72޶LT,5v xV-4M)6@jnNG.7kkr93o,Yk믒%s F<>zJZ]E7,̖U&EF擋|H;'d+b.\X HRVE(Б0PQm&2,cco;tuODPƒ',7PkrѼa>1Vj+v-m2 NT+SZ0|1gDz9&U@nu/)zK>.[r;ZpYqm~18ՕXv=K&&oV֬3 ^5Ie+Rnv74S_ auI󆓡8UF;ro~w<ÙH6:?R~M-`䮇%<Iu5^7% ۍ^㳴fϠPd{6LBO_CͩwG)g1sz=޼\Y7mݑ-.zNjեҭ^;PDy)9%kGYݵi%GPwNx_[+XXڒzӆILҍ6BI8p!&a#teO)KfsW9>PѣךcYFH9a;Jgz$䟙(yDE}W5Kn6EsG6{֖; ylԥi̓ҘX6rl9gm5NS_jY!kzer/p$=f6.9'1ok5ώl>=?Oe$ >OH: ͏+>%> /k6?oS+NsO\bqFZ~޷dH[Jq]IE7`GRUD?PI3"S O8Riwݎ^tݷtLD]4+RU9ݹϕ]oR;PgO>R] ׶'w:j8T\V BU+* gRG,+&s[5-./˘]k-`Oi+rMp0O}(Hp"Ɏޥ"%QI9ItLGdQzM"ds ny簅pfC,fzWsZٵꅸ]=]$ ]QrcnFlN0e2;[u`m/AMJl8][NĠ'+765U$3YX Cż)A8'e:*ҺHQ)}I:#xO`^E>bZS4[dn*Dc1pLuu}5 }-w̧j}wdR]Eӣd㚝҅ZJYQ񨻔[%E@ dj'HKѭ!,û~,-oSk/a[XXFFgJ";D:|5#;"sRmY*:Ԍ3jʴJ>UV5SV ܣIiw嬂%PUQL?8;xYo/Z_Э֗B [Wk/kY^1M]qwrSrum4Z=Ļt=2>qJ?I4Z%1P.>JR} AH-+0AD7h-k5IQPL9 lduzV4scīȣܬt2hTvڨdIq&)=vJߕpG1mzrAUwR.:8'{R0&#aA咽qԧa{c)$brInb%cpF9eSpEnJrhiOlSj"qlyxP}acS/QѿY?o׿F` k18Ú{'7uN?;a&N"eܵcRin|bkn.I/|jT|#.7+J^T 8j^ݨ=^!SK[6w%墚Ҩ2bobԛ/eU Z[R[jq:kv"j!˸cWjTlM}9*$5\@ǻg }'+) v1웦;]!YB6 ý:`ru"٠jyY{TMӯ0eИ;D"g9r*%&X".´G|g"quat(tq.UTu%HF|)}w?:5ޱRrL̲>2)(nslW,7hQ ^+|E^vMFZTRIXv5Ƙ(%<9Wc\jS9v/ &5x>y녟6A+2p[+oVYJo-av8pʯYI ec]v]:%.qǀ ?1r45IH9VS Ij |݆b2p\/'׊hSJuFSa.[5~Oǡ-]Uf#E﶑p:Itȟ= 2 nLuěT qr!ڑ4Ek!u=mgcYmق>~R 8ֻ?,m Ez//[S-TLI;|2m_Ed c(EP:)#į 3`v]ՂKa)3wDU_Ţ#Hi dvͼdKC]y t1V@z]M> [*}f8{fӱ>M,, 3}seiVM3E>ǍOݸ杝 &Ns`PktUYܦM".5]XZر>U:5sLDpsl)f4-%wiXPkqZ]lYH75Q쬢̡H:ITXb\$7a@g9zy[FIhq<-[׵EXRN_enYBR9D袺bN^M썃t^b:QB2]ez{3-bȒ0WAL-KEfr5AD:QM|z cW"."2*T)rL5 d61H0hǭ$XQvl&S)8nuSU3~P! \e~'1ͮhjͥh0Uv;\ m6;;[| zAU=3g?M292鮒Vg}zY:|3M]G2uOGSCZMao8|\;[,7;Tj,;5|b{Vsx!( zcvWLF̛Lu=O/nOKH^r'Ho9#Q(|ٻnY#stkye]UqtP%]ȵwNI܄ yBzUClqQoGҷ 5<Ӝ[AdTc[;96LEpr&TW8gN~QD"b_8Knaȫ9jnZL+Zӯ,Bj8*k}) H앸9 +:&] GϞF(PG\b U*- /S2k er:!$~ ?5㶬J2)prq$0yk iY ̣j'Xéњ %ıvP7ӭl7 ?'eeU%Fl$Z"Upm5Efkh߿nin7>#66qqre˃gbx)ɏ{#Ŧx6f#dg!5qa{{]Wu )2ɱc6 Uhh{Rzĩ\nݤ1VlSjޑI5pb¥6GRmC%so'v-Dfݺ+;A|{R/NS5x) 8j|PLJ;y415̰/Q9ޯn{xn]ˏs>[V/|qI5ⶉ{mfsc9qcscǯ9cr{Hӣ_\CJ֣߷9p3"rw,)XQ5C3?R)VgedXu'3prROˢbX\ώM "L%^?.Eu-%uʴLWdN >W'H-/j5YYgө֭ӓR"ZUWR#b&eJ=zuUIՇd3rwvqr"I낿xzHj995ݸENfѮ ύo~{|辷Kug!}kCήitZy{V__Zbךl9-]kdܯxsG/6bŚ*9v5hպ%]˅DPE"c'QUNRɌlc;RնCUFm6{tW(:ſ ٦3^Zd*-3|<"yܳdS[)Ů 됦I*%rͧ"][&e;Cܧ O\Lɔ]宀td/Z91c[,dLr&s$e6S1L&qK,zX[4^Ԭͫcg3<֞z]8ΓxS{'s.8˂[czY;o^PIRV%;axiXTUSݫtADVrI)x Zq"Ej~ͷnŞyMqxYs7\}D#{~\^.rcg6)ůkM+ 4&c#>nݭ8^պ^F͸Tw%eq5$3sƣfEO\S81q=o_^Yeɕx1և͛u]- vr2LJrmVi(Jeq]&8R\ڶGӰq-m3c/1Q+oK5k.e;MX#ٺtS [[!UyXZ֪ɧbc$; A3Latt/h^(+Îo\+Oz{Oh=:M7WӜ]Y-=}S˗ml36i[5ǒ?yGˊO^x۶DU[ƵeU'ݾAJ$౲3Ƚ$aڮ1܍ud۞S³nIqsp'DVx]z edX#`1h+9dSKt޻7Dqm6Y͟ʈID hYψ蹜BTd߿+ o,S(inDD{{}B_Jkm[l:mdéj[e˳_忥c|lQTtc-M`b0uYd6{2I5y"B,ddϬT G`u׻ 5mKHB8͕2FnEB$:E3y$ܐ4nkԛtmFNR,jә/msH˄4ݎ"ӱV:a-8]%Sj񂑫(Jtn-VX5/QE*zgڣ6[ MtC=<2KL3k lq=[~=w"bbb{~u[p}ot_]Sܞk^y*l\3?1[>]lקּ6;sW&L1 ,O4۪έeA&v;4)UWi R)8I8Ү- ÊR x|-/J0~/;9)o1 7k_Һ˛P32;g&*8X0Sc*y~[7A!ӥ_5"%gIjN#MԼğnI Q44d{e9G~{w~o]iszw4'YnK,_5)\w2N[L8f[䣣\u.UEk3U UT2-,E +&\<[ ˰b|ۗ"c)JK{Y{*s>V^PZ[YX%"{ NJUtTࡳ0^"6ʳ??LOoiL3}qm~/k,bךElbK_&*2I#u֖MoS )gfeQ\ٴA"*NM,"c;_8AE1ISӭ!lr\.h8*rG\l,0Ẕ6:67u8Kw_ڱkO?3ݦYSw//ͱCֽ\Y73S.Z=1x ٯIp,dSm]y 0un12^6G!sakYj@q'9ۓqU>ҕONR]eŴN$̢@HGJM:k9ȫp룇xA[ct-꭭ըb%aX^ǤTsƉJ;<QF?(p[Pˮl[NW+K VJå^0#R=I6HEQFU$S L־,sLOOibcxY٨>\?Su.s~7[m} c|m=e+|sMiMKF\DZ69}絜oĮEZcdꛜ˔X@Ȼ h{$,>UB ɜdvDRW=XG_]k W\L/Oe0ƒw9cq! LUQC&%;#W\,_m(F1u>L&b8:LEJ?]C./1*g6v޳LV莸/'нiֶMuE0Oj=6pL1lUˏ6 9_#O=x,i7%a#>I.{ j\,eLTװ!MݓqΡ:[}ZJKe ^3zڟ=:|kPRvVQuXlYkf͒E(B`fMHdq1Pm.Ţv(,ڙEgh5vy/jErx¦OOh"&<{_@k#=hr[Egzqwgji]Ɋ}KN:Ųk׼/4ִ=VFMobTPHLnY sy6)5jfHer]$1HR{scs=19}lcOaŏVs↦ -JEUsk$Y*dFT.S蘲93BȢe5"ZF?<ޕ}DϿh?hmmtkz<]j1wN}ŏx޽Kex{,4-=fjt4=~v6LȜøz: g)eMb'4oYnK$}BaNJIkά6vD|?,B%:]IJZK\hWxZfte%BY\ Z f;|e~h-gVΟZӉ+덓PחyVi)-*we2%p:fj>߾OWo>]~]~~A^F/>_()=uwlLS)b1L\%1sn383gnOi>,ӓn:sŖi+Ta^`E$UHK$cJ >bW:%ћ,N\N׵FUtl165ƦW**u=t;+y~d142=T ̎ęɊ- <;Tʹ^c)F_Y% ?s e C 7qה?U:R=T[OD.VjPȴWߑ2Oprxnoޤ/9P{r\b}Sp3$eiYj^obO$V(Y{2=Àۗ"c)JK{Y{*s>V^PZ[YX%"{ NJUtTkgI~Gb>&';1u>x ={:4k~6LfY ^2^Ŏmf4ئlQlv^p{f\K}>9>$ > Nؓ$X%> /k6?ooؔ'9s[Tg6+|"hkݮJ#J-icXW;I_Ty&$[֗mèT-=z9vcy0q۲zq36f>1HC(VXvwv\*|6N[86M2&煵5W盬@ LsGE-NƏ/tKt.՝0f#kξoJk5{l#eU6L>Pw2dl=y'L\bRxM;roeeo6B\>\˞aK'6L[[ef6㺓 &l"TK ~uѩ/~|g[Ed,OQuW o6xX{T8:qè ?O]O;'Kd+{Y:3y<\6ɈDE]L1i7Յy iIq<&/kYpxH29+$|P^$U*R Ye*oykozl9羛^3W›mH$Ul("lY{]ŊL2wkC[pBmO7LXrΝxcNdt+diTOƖ:5RRNrlv3k=S[I gd1ӚY]f 7 [5b0Fɻ)y'FqėwY <h9[-t4HpنASYEZLS(~t1)B(:0AY-fo|߷9&IJbuulQG W(5$Z$bxshHN;H;Uuqy-WWQpEyh)6l&I$A"lʬGBbw |/7shJqeJ**7TV3Z%TEMIJ_CI F9ߪ =/Y'\Ӷ֍fm{d ]"Ca l.q/ 2QSj{,V2Qa:f**k|QqL"U)sLʗ`ɂ`kvv;\RY|Շs^̿ڦ;{s65k!8i MhÏ]_v;r gfjjRGϷ,(2BY#fU;JNQxJcvsj&q'&hjI͖]"SpWH&#v(E1)?|.OK2mk9r8z^eߐTާ׫;W;wpO;po娙?e޵7h; vQOGi&g1аHQbe杳fr=x:U5L>4j͢J.qhtͲ `ʮ28n)*L1ЛӓպK[6Pmsw>k&e`/d};[h5U+䭟,lS=8mu};R}KDù2k)I,]/$a$c7rMlQz.u䦩u;UUA?:Ӷ-,6u8itLOl|#j| H٧N>ׯlGLz0yB壶R2.Zl:.DIt!U#5 b8ҟǮQmk߶[^['3뱎腝?L,m tU;`gn4O;c Km;%BGtc^,QHG+jk.1%⌃䝷Yޣ/zggtTa[rmr*y7 &Yl-(qZvrg8jIytav 5">ŻMu2k(MU*HǰXT4hetk.h&y׿郾 M hMY! -%%.f>>~9 Yp e^3YƑlɦ hnyoRpNˤMz)?nb#ѵ=s*7b^.-2.7STtȹۿ'$95#+gfirviX= [y5&&>NB: oabeݛaUֹjEeّVg𕹙gnY饪XBnMʹlQ1:N}*Ⱦ7(>9x)bq"UݚK[UQrH,ɶ]"nO^.Iu3n&ٸm%C·=Rv2eՊAK/X,[ay%^{7!aE j釆74i~eSQ]% Ѵδ6Y|c)$UG1T]8gO+erNBÚ۲xSʪPRfg;.{5T%\^UFv!Dee 3v #T"CuI;3j:fL#W-Ǣ"al5&u/h<$pܠc?՛^ 'vÒ$ڦ齳/:w*IL5?*DHK+LEE12R+37fi1{[zSgFĻQTv c*[=RI7fF2 9lk#$J:toޙ:NAkI-Ϋ"ڶaA!)iU<$ՎNxӝVǹm~D^UA8Ѻ9*?4Uj߽S?fZqǹuTbI v/IE%b^{scl{*h]ݧ^J7F%#=j:q !SM5nt uԂ*[(d9hʻsɑX͌yϮS cjpf̩~{ .okwc]vWej)TVUKE1y-F6}.k|){:pϥ sza{c;٦Ec4*NðK֘Qfy49JIVٌkex {c5|+5MXioҶ5EܔR: W_$ ?]/js<y?qsyi5DXaU:^ ȤNzWso{ HW!}2zBuQečnwI,E\ZZ-y(ȡGwl%xΉz0,͢6ֱXZk lG[se]56« yl2^@IJr칵 .=9>UőBX*mE#t=3Ghku]BpNXv:1Jau}β}NRalqg=7,zOWXq!Ex) 8j|PY*$(??M[ϊ[_暿ZSGȿ-e AC|8I[~Xt! V"F>rB[}|`G@rdq6|CRk!\\|db^$ r$l6+cWJAygf25W.3g8Dݘ1ϳ e}!c7iMlxęN`Gr]"f1s/Y/x} x=^oY7_2\]j,09 &Hؠ&Hb𻝾}=2bhQ^|lB1[T5(9pDKqc+.1w]$SG ~uOȹHFխh5`91aq9{qHqo^~TúgmnךS4-yr4,.H\?Ɯc9Ȯ^rȣ2>q\کsL PWOS#it2L1JJ93w:n~TH1g]iRӃbb*sEѡdCc&n{5š*cJsGO0qϋ]3vvϭO̟_H1b՘N&;_^<>щycG\:qhRrb={(?y|C;bt6QqcS1s6p\זlK|bN|^^sC͟  9^&~15IXg~#3#Llv5t\P]V;2X9d%YjP&wGM ɝnB\spw΅rqZ5^͝|C]F ݌ϐ^VtəO*sLgnz;ym=EE'bff}b;n:H[G_O_c&d3Iέ󚳩[`g.zo\ԵES=#NFp-%!Ӊi,1k*ݬ##((e;A_mS%y kNv!t3  I:H=K>-չ8c"X6IDzQ qr[[zYY\5U zSk -Tc՘RK1N3h#,xF˾#8o K-,&֤ꕛfTBNugoubpᬾHઝ3 S._BR7;L>>3Uu59NӶ덺N1K婒͟&],3s6L]cr۴kzEE:@]6sgU*>4MGQ|9T2j,ϯLns_P2u8dI[ϋ+2U62?wV`Ow{&rn̋CgW͏Ռ{U(x*^=T䊆cnϕ;IF[ ۝2].H^X_P+j' t|]ʻzpFobٷdKd;0 {sd_7Z'cA{Zzwlͧc{W&9-_'LdR1Ldɜ|}oX~т콕GK65j]F5YYɩ7nJDAw9Q1]]ۄR<|DDLheй&l1Æ˗.[VcYd+JR61Z&fb"XնdqZ.r)FfILe8CM̻l'|pV[t)bvS>kɸdl{i(Wz^Dopb#i6q qHRnXw9=fgyX=3_ܢj?ΣYԣPEvh<6ҲxW(%gv=knͿ O&TJ#U5TT9re$MÄYF)NZ})=y-12-_Zr?˻j}Ȭk1|m|Zl{k궍?o4:WG]*dÎñL5k^->zboM͚Ų"\:$1-{8.kԢGsŕ69TrTrURi77u~ae\YYBbZY3KDy\p.3{ kI4+N-lR2rCTEtNOغI:AWEt%t_?+E˓3cW$C1hlc $奆\}ܬ{9p^uZqi3&;vi:\lW/_,M5+nӛ&>k־,g&L[89p Cz-Dn+ԭZa*$ Մ{N+.qrgZCy&͒Qԭu/!l˱jFCrj˼:?DgW Qֺ7c9[q ;~˔Ep5 ڄlΡ_E9<܋R H8evRE݀&j -kT-Mi#oD] f#*UCwIOG`#8K&ETjc=-66xͧf+3'I9Yȑd \g])I=ʨ_qvc8{<`=̟K+kڊDOgy"ٖ!qM|ow1%&ʇ>GB牺L99\!Mk]c ɜ\{2~>k1˦6.Uep[n;,/b&tOFvv 3nB*|cFɶ+""HxI@N0k+ 9\<[䊻)(85YH0x,En#%Q%Cc86GOPhMbhNBң=/Ză l% 1 AJhhjU]Jr !u-撘!,:Z-ähfF2c+TEUc%U;A۶nc[bi9LC!˒ S S8 Sc9qgsbT,t46UCH$>Tz͚.O!es)\9 nx7 j4IqTX>1x͡q@FB(Fj^jJ:)6JowҿbsJǚnVO(q!6^Uy,*J[)1䛮A&*K[Y0#cوy];o?]qp4;%P'@POվO$Jm*Z_Y|r_Fz)/2txg`kN]'Vrb$T@Jh}eCnńl5 zBV+ 0m&Tc&{{sxA=?6wP. 'Z 15tÏu n\"]>cY鱫9['`wa4xA9 hF]PsgN!r{sVךacTqe~FAiYT%5y?fNE#3qRk 1H؟5T*LrL|)&&Zzw C'P9fs;1c11pg͉_t˔GL&lNW?y-[GqR(=(SY ^:qA4,JN:jM!q*،1Q'>D=%R":vݫ,,(ȼho>1zt8Qu[*DuۨIXJ Ώ 7)!d,y]<ъ Ʊ*{9ՅR2*Es9' +*-W=î !t怰my3KS]]';e.SrY|ZQFk苜`Mpb383gǭg+ C_)_U s# ]~ vaL.4+bvcـ8:'zʋhښm"ǵ豏'm +NΖ`-f]:YR"+e =h 3^Ӳ#'Ȓ򺎛* DXZ+)oW/(b1[{|kD?):Nzkvo sFN/[kkRvyi6޹kKS$)zx)s}쿊 -COaŏVs↤~9\XS_J+_s|k;wɩgWޫ~<9~uNxg~m5ˎ:4ۇm_z:;xKwϊ*= aTQ]P*5DD5vK]gg晩q gl8'4{|SUb6B(MrX[%Z|M7aڍ^hQ}X?@hcs2_xuGi6ud3)}pSrs$3c>G*LvYφ;Oy=>b&&'z=kq}OqAۮ:sF,BNh˂&LyGx=lZ8ßl~]}nQ5vJ>cM4rҳ\I!Zqn܊86JR&v;{1=Q}X?@hcs Z= x;ϷoE_LP랣>K^\X-8Ŋ~ŦXq[e 8<8H{RgS:]Ql+nU*_䩄\p?Ճ^?1,zZ_vF|=}>S~~{z{C7ۍ}=ΉW͓Ɠ},sSz,4)\]ccP~tYE`W=Q}X?@hcs#$SoR8۷,[l=Xqw3xΩZWSN}w&|cbcjW(mZ2$/YJxȳbyk̛yYֈĢL̽Q}X?@hcsT_VxP??X,TɊ[Ys1짨^w~:o:ez-ˇ-iU-ikkNcGA՞CEKI8kO;6eR*̫x#X䝾QIPx9ܼnٲϞќoSNCI_-m+w3ՠb[aE tL1jSn 0 am靷Ʋ,=24/34d .tg&1{ >5ծ7A2$t9E. DI;SM2)B.1cVǏ^o>n~~|EcA#-2ip֏ G<6m}JcSޘ-bÿ[ BR/|- CGi!UR 8J lW%zgvl<ݿT禆&b`K-Kd0Z[]]$%m&cIE,Ru7MJtMN~9=U޷YΝW2KsȝZu7$E[P!b(L>Q3%/j>/yg~cLK37 1rZ} 78zeŊkk߶ 0|yWҳLf-']bn]";6{[ܳpHH<4u,UAejD'unB$3͎ʛy6z)r&nhHH#$鼔7$C/ W{x Un9BSЂs=(E`W{ɒg\of{""f{Ƿ|EWuT\tR8f.l^Sٵ _6,X^؟[$巔Nuo*RWUuh'v2o]y.M(f8 fnK,HA*o+y%UT~wH frwbV9@L9 d< LM2?꿌c߯c1ccc>cXk+y߿ǴvW}gFMZlӑ ͓7&^c\w=r?Ճ^?195v1]wӽzff3Vsf>ŏ'V0]ݣ^5*k{?6+.jZ,Pweհ̰E_L33N-8E̙"UUhU&MSKu_aE`W=Q}X?@hcs-knݾc,g^gǡu.?OlzڿLz%[™z׊WorT Ҫ缢\%n"˨ss͜xXi믗bDwXyOWS:-b6zgZoSNZxd_ېCeU섶*кԔv+\ē}V9F1%ri4gHİT!&{̭YףY@W!"##X1b,6سA͐O"HB)qT_VxP??XՃ^?1<16}JڱOg{D)tf.MZW[m^ySs:+k"/jby&\7uRǬuwՃ^?0E`W}׼׷b{ov~T|+uuNgo/=YOvۂË&domöSi=GvC%C;vEIu0((YywEGRQ}X?@hcsT_VxP??X/ ORi?ɑG7eiGWniۊltGUb5ծKxkbukbjy+/ZK;?4Okk=;a?#*lQEo *ixjEks6ݩk|3e"*}m"ƛNi.幥fB2 dy--A46mNêH_L\g9S]W4){YFFU4UV>)X[n\#'N[eR'ztذf?St4Ui9j56/8)k>Zeu2k6%}dQuՃ^?0E`W[blyg/MQ3۷n;K_WMxv0tWT_6M\Sd⿯Z٦KEyL\ f9.$ ^]=z챶#uO8[4c byJ =:t-zɽSkMtj#+31ѱREk5j'a-B$FaS8ȡuceԳ2ޏgލgxixވ7 1Xsc\vLb>+ ߾k} `7ﵚ6BXGОğ'2{Xbs~ħ?$fЕMPt7BWN`)ܚ/L\om[C۴I]W`"m0vo6k,XɴrvrlrA5r8k)bgx|hw&B7"GOg1X"Yv㾊=-wI)%XzJXs5,1-,%ˌagG12;{1=3_57'9x=TRYvjERU[|yaҍp R*d0k^=\Km H.?d~s"'Bpjz*imM2]6$x9(@ ӜNBhkRq#<1 V2 3i͒3(5"sqKl\U1gn3gǹ[|q3v/Djq9 _QVu3')0nTqgnCDz@n7ﵚ6BX f͇Ж''Ibpğ'2߱)O A{Ys%|G~ħ?$fЕ qs-M4|3۷~!^e$Yh9;)H9AdVRU50Nl 2sBNDf{}&صZcɽa;(s-s )߮n|hYᎋ6Alm{fYZqk6)5:ֻU[;F8.ǥ9'ǮIBqw JjbC;MkOՉtKE6bL ygv=InqZj@HojtYom|i Y7#l-P#֦'^6>|:J[U:lא[ZI' ڽ-5&jI6N#$9q`\5-^xƏ1ݼjϐfE~5NԂ]XBKzs86UjRc/i^|$}6Gl]cGXnH wqp3;|btYFܭ^26|׸t&. Y`da]YeIF5>U&+K~TtIZwg7[%z"Ψ&i70WZs%[NjizʑΈ9$,QvX_E|{p2.OT䯻k`u[SLyl|cs(bW%:!6q[D/'ԋ[*)ne`sQcۑ9L4ddUPnՋkvR:U6)9bźeV>rnު'[6PKivKVOi=u:sۆY{qXq4mzbI[K.^=+-6 KZ-\,G|J@~}ɸjE>>ݮ[:gj.{&irx^^uba f6klJd+ڒ@ʃ0\%R~9 7_XK7&u}^sޖ|3Ä;2|g%/l<:t?CM餶=/zgg^RoOm-g#m4bԟثKO \9K aMfzto9x9S{wR9g ZkJEZ治%c <7VH9ul Y8_&h3zx8[3Vջ%Yuʠ_MRUR<2hpR/7Gn୎ s RɲPΗ]Ȭ7n%pu("2,*i$ cRɍc'S #O0rvR1oֵIXljdUcldTB61M_ <wz(ןmexN4R-aT\F8e#+a/FSkMRtպ["tNedow8e`gLv4xQ_l`#mT-~WCʢ,ilÈو.!)㚸U>L^n3C׾Y[VҶw&8nQiVN{gJA2 `GʴM-޳;ErN9zLo]$[f^b?Rn.HjK?TfҬ$B3e%TQ(}7LU+øab K7vG1ͣ-w&tTMs.cg^,t`c Zk^kMSJJVWg#/\df|SNWANfD'ru՚ZyGJ-dNT[ZV,lP1Yfn[;I'Q: LD5nszzHbcIV&6$t<-EHidAv6Ee5Ml|*Ȥ9w{QvVDel/+N̡}b¬)rRe&:ή+X6URYd RVCv- |@ͻeS+trrRfe >IrU+ҙ|W%(x+[z+6STTkٱb_Vdi tɤw~ꌤ$[#W,$CQ|dk6ܜb=$jɋ&ahͣTD5liHDHM21Z.Ւgj* qݢ{МT~b ?e_\jjJKfT%z@iyp6|t,x.y*JF۔{ HW `c斕lrţK*~!wHΪs}}vַ4yj5⠫PsR2MLrmv郴7ky΀s󁰶-,VgfX\{q4DLDF Jz4ŔvfF =%#$PD%j%b.%&EDƴO:"dln;Y4ێ4TNάdUQ#RdMrEq䉱ElYڎs7FTʘ)2cY[3ߧlOXkO;k݉hJnEڶ>(ԤJ}Sf(GɻIǂ:=ko*oWzeAՁ6^TN;r8U ]]R;X0: FIGc-$qۿ~0=j6Y3讂$3.q˨4T|ںSBKHz3/5T, LSGHï"l|~)#r č?cW;gc%mFrw{uq.`n* ![ط-pw/MΙc>SqG\o"d9QgFIG1\Yϯ_|Vظ9 rja,SsWy-*<֭#H؈m2I5H^Mi:9T߳];drlg/𧞽K+֎,uεܛԅGUTwxRSଖeڱQVX3ebw5SZ>/LAoMi;un@Cl=]=^P k)BoҒ{&H*W Ѳm!^ʉ stKx'4ElKP1l歘>gɽ'"<ŏPcM\˳;Pmu9kv].It*RƠVSh¢DLs$ ?:'翠^=N7^觡 x#Yߋ=#:QrjѽlON $zMzUTyOg?8W^E~3;yjS d$SeLLkwvA4f".d&=sLT.7w0&Y*Gq`9=Y⎻ṉ1S)2c\˨3W,c:͗.'Ia+:"=b%MFMG*e(LʍIcqHl1۟3~Y|sa%Nb ߾k} `B{X' I}c,Pt7BW}7J|BA^l _9y۹Ep)M݈gsRSUѿ`n:x"VOfk0e6-H~|=~5MM ʵ_ 6ӭ_dhbכ mM>JePuɔ5Z{ՅN$~OFX\‰8/8K/P^ՎrI6v٪\οh 8F[R=GU*6lN4v£Ig:{jxl]7#l(ʮR݋;i)6>_6Z.葌bNu{ŵZeǻ/l<[d=%㌐RU ٣S+U\2z'3ktii&';s[JG-*w-"⣌}LY&h W8yW1,poWkWʺB~X'ΤN̄&&S0Sd[71bkFZ\Zg v0ļS.{;{=/[v_go{{{?} nn'lf,rhy]5_Iǻ@E 飔NdATL!֣V=tf t*S4t~£1@Vبm\ÉRPϯ1N\L-J9I R9B>1`񋑩8POA ذ1gox&Ru(ij'Ifye?0QF<=-9Z,;u ]pܝ+vrDgcY5vD*6(&*H;F+yq \WЕXa3ԋщ%zڴf;fW2oF u$(uP懥_5c7|m(Xq)+,!$\"G \#.1Q'nI=(/{ݽ_?Cts.VmxK x4al3w)6{F^ʄ;ir2UO*a$*͔ F3Uo[3YX&5\e0=ͅVNqI0׫2¹Y)/dC8S)ҡD7t#4\zZHygK Xtըʡ!lp޼b+bpH1(c5:53q|_sKӛ^Kj;)8yٞ:jۮt4Jś2t+E9uk9NC,AX?y;8͏D/kZ.pޫ6\Sfcq3+.xW pB蔹[9g5+G65t6lvPE$ 6)V{Gg:`ԃ :ƞev_,hG 98N4Xv&* iv5XWRnH EȊ)&\4L"iB)B)q1c?`7ﵚ6BX f͇Ж''Ibpğ'2߱)O A{Ys%|G~ħ?$fЕ N+J9ټ/vƾY{㦟[/Hy9dS&ef 4RC&L㙴hك dŋ$j͓66@ݳtHDPA$R!L!qHڦVqwX$+Ū~1"Ľj#Ks/+`rRJe_HNUr6>rjA ɣDpݭjvͰVgEETJrb>G'l:#zU0Q%jP62Soii ): W=Q36~ 騊ɑdV!U%HUU5 ()r%9 qgzYtؖ'vۏ1cs2ޓ2n\= bqee&ES#]Uui]]u%1j]mNRk_%N15J:WY҈N9l|!۷o],j4Vy|ywK5b՚PQ[1lVhۢ6| RDR m:_Tn%L b3d-#cdɪI7li&Rc^6?xM2n;O`Oa'/;qkQؖY2R8aɜk,N}Fؚvaٶ덁mbX[JC◬Rh7dvd)EW|w2g)ON KO ,VwG#2DOb4譒 G)C$)K,JoګS-bda9,)J&Q)cscD5%,/dM]̥pE|y$ L\`!cp1c.\5IL$${HH8fɪ%JM")!1XG;AhBBFVwԻ· +j 7c1s`W ֔g9(ݾ%/Ki$+T^=Ew 7"K(Aόv!~PKˣ׭vU`+ș]R]"%T:]18a*{:i-%eh>1heXiL1!r'9˂#:^"&z.:nUe"%6dM7$GWL"$*9)b8)gTIq]iWxiSF..Yg.eUN`r&?xσt$b-#Z֣)zUhj*VD7B2 j"~H xm 78۹E4J߶4fض,tı"8|vwxTQ!,cTzVAPB@՘%YR5Zv-W`0`s$=vSMh~GGěVf5]yquP^Rr%iqcSu]'f=[XXWStI{R+Xr}8;|{%E=aHРݡ O֠'+ylY]2cɜܠF*WӒoit=%}SU ).+PṶ̈̌U v׫5(ZZ*YE05j(ȘI >:=fͪ)7l$E2&B`As,sf\Kؓ$X18ObO` Noؔ'9#bScJ >$Å9?|U H);VLY=Jk0xCOފf[975p֧zگ Ŋ剬ۖv3F,J8\M2I%) ]l*fڠijlJ֕f`G)1Uѭ YJ5ghdK K̀ic|=RgWy J݅U&]hIP*w β&CxsuH$ ,dDT \ &'Z )ͼ/V)^m10bsUWE4clcvnSmmCn ַt'V㲽\O'HYR]s[IEI6w&ѤG-W^[WyT+ixh9:S?Jj#$lyW#d~^P@r~5M:Za tj:r1yf#V){+ N,E[ĞJ=涃W~ߜ l4+Utίsy wH6vXXJ?V-rUL %NFκ<ޝVf3<}/GmyGp*eYÝ]5VWad9Ҭ$&sVR8OGN<QyΒ}E[FiW :r5R@Sb.g Hm+{<]DTIԴ^?)5оair_ t.-;^> irwkÚ޺"SJbmrUF uJO;e$hGy4vrրj]nkQR7 !ڥ*C(kō.eMt" ؐ|T{܆_3>[:advHx3vVmS^Л?zV؛ h{{Vҭ3Zg6­k0]TR1\!VΨݿnY2b!nVM,ꓸV Ɍm֏gld2Xrl_ ,7X^p1x#GZwgGSLЙ+lefdfLjjYhAIF/?38@8֗z_]ëW-iVb=3J1iIxP* !=DzlC )SZTݧGV>GmOBuSШعlxr(̳i0qS>|J7ۺ"v rZ&aR]O\1\S]whJ%)ٖ [ dztk6{IFpӚaL֨y]ís\vܜk~,%rn U 0ǃ͛W6:v&Vۨv䅎僔mT y$_w.#3 0LU]C+N,zvomURmeƽެUE"25fӻ&TlOE㊽*5F|nnkնffT)=+A YqvVlH@hכ't7|x7쇭+R߰9!dͲ={\֘?LE|Oj} +H:fp_V8ؘ7|dՖn_0=Pb e5C!9i*嫸Zf MJtmSlR_$J,I$*) ߁垃"ZY5-ɭ͚erS ,pO + PMy~(lInGn}]iE[ _TQIZn3Yk<ǐGTTruZVaر̼UnA{ c (J[gr~\ǴB_,6miIYѕ6t\W`V[i6Q3O.u:8ͫy;Ȅ3pR $:hm.s(ਗ਼N>a$BlY"UjUXOcn0Z%P݉3l1'Cfq5GCӱ6ЩFvM' 1$7B.2'p4Zq? PYu۰9K> 8arPDMimXr#7^׻)([=wt o^"__jh:4,8+G ./F<6ߜuyQrΫCrr&˴vS16FB=(5]U',R-]FjND!]=o_zβϘ)4=FMWhWaUU\3^HԗtԸz| ӃS7M"WKyٺ[Jf71/ݾ,K8{"RrՇ0Zx{Yi*>iz2^^sf#½l V J7IB=hvI()-3^/n>o[JsOk O`JWvwuY*>trXYYSk6 D MWlڳIހfu+?c^R-,p8W${?7?cw*jJO@}>9'1ok5ώl>=?Oe$ >OH: ͏+>%> /k6?o$<2/ӯye.)!>/ư#ҿ9:Z(I3ҿ9:Z(|:3q+GjkYD'YNkiQ׎g! uю3d勖骋ǸgAt.ױ;Ū,±s+:}i[S 8Qt׷YrIfjA)*Dlŝ&v @᫶^9zeozn1\lkN*hnөZ@yC%%dK${;0RIu}Qn:/WͿ6E8ֆUl ro*[~ҲN3CMLb!ZQ-[& !&ڞ=^iR%jqclxɬiv$EER(E.~ʯo&6"ʾ`\Z^>E)lw06Hm- N]ƣv䮕!JN]GxdWY5LEHB= pZi kjV \ਲ਼MV,? g գ Ca2w3xv]!^W`ړ bl[)fŲ &14\c> C.dYHogT ,3 {^HJV1w(%HhCd#{w]؝A)Tn}a/jPX$ΛI,nBcE"AB*$25x^Ї_SOf8T*~s44{_7{SdѥU B,V|mBJǗ 'V'G;pϦԬz'oK-P5?-]%T56PȌ-D]FxTܰaZrJ6"=))5#-82 82r(kwʔ}[<&UH.6o?*[3X aYOk2|IMvwq5!^C6 +ϐߗn5H󷈐K6C]nIcTW=]d,4ƱHL׿蚆)rb_׉=ͥ/]U0RQYFkuUDPcV̌|a0vEuh1u79#*';xˮFmǻ^Ώ}W`F]v%UYz$aUUfuYXYcOnK['<*wTwo+t$6&3(kύI>!ahodQ3)c` "t^enqO]36*v6ڔnJm]1֫l OW8b1yIC*nE|7at CTS.{EE!, 7S",騉*Cd0lg J̹vpu뽚n&?b(*u4E1R˷H=3h·n%v:^XȂz LE~9iw&Q2s6dʞB fu +rotgk} 1iĢ`ΠIBˌ"1_ yRYRAzyuJqhRP&l^_b}&Y i1*6y#l-#e 9ߠ3luyGoaxMX+$;Э17ÎL1@:d_i{fL!qgNMg&QBtV ܺNR.ǥVoHkV 4<,){]o`jMUŒRM I";:&r [&xUܥm<)n|*nS`a2^%VE bDqq\ǜ֕;#kj ! V㮡j*eA<4(L'HͿT)V} lrgYŷ|~ܸɥeý;wsկɶIX (ja$ʉ9sw"K'MZ\Zzݳn(qˈm:uM)yܓFq Q$ܺ8[C%S :I/{A@{q7B^uBJŎT8b:fU[;R؂-Ss!*%)96,s ٪W7#Mym娋qv.v5C̟AOz'?es Izo>;}!փk^KBǬ72.W[P/٧w)R7 bv< ]W3Nqk._^!^]%p{~:Am3/)"3Kv$㤛_Qg1C+w"O&. .>3g$?P=Üg0h_"^Q[O (Iǔ]4*^|c6Uy9>s lw" ɿ*x/O-+Hz1qs-T߮j'BHFqr#lceq01֮| L%,|'2c=ܭ1c%vg8Tf{;ݽZƁNt#iJ7`2b&eBVUpR R R1ٌv am!wL]-QM\0/Qdo*vǬls|,L?[Ux?/_րZkʨxIJ2ǭ,=QE5h9c91yr6kg7m'FĀ3~Y|sa%Nb ߾k} `B{X' I}c,Pt7BW}7J|BA^l _9Z- 鄹v5*YvJx&ew<ݵü4ПC12O25>W֫X]-ZYQ5Uڈ"(bnFW'2hL8ބ h}vVӪL,ҲuICafu K 3LJv5h<.4{c ټ1 y%NX))y.m].SP1yKLZHa^ѵ5"uN@²Ԫ00a("q8.TYcs(~hf=@R MzK^JUkj]RƴCAZGXE=yb:٨Q\g]BhJ,wyij%S^$1$)+9iZgjvI4:PRgrtX=_ԮP)U" !X\UEr%ZHNܙF3C8m=8ďRLF%|gqygӾXR)6*Iq=:ƏZ R)LSc)vg}l8ǭ r;έ!8pH:r)G:$MCW,1..l.zkI)w.Uqˈ^ N,!} ;nEm앯:Aʲ1g$\EιlrH\\Y[.jn$1.0RKc1cǭc1[+K=JeX6%##6ܚV.'8{k)[ f1/-iF;XGn6~s;sj;AM+jJ:lVnj[{gM50Tq\~B(V Un7_=8Npy㦮{ֿv ?Tsi4/\KX ",Stez2qF5b!Tc\!Té藺5pZj(Vvx^|ePptΚ8>qYMdmTm5_xunOV0/u3E77dU%"/$M+G L44ÌQ{~ܛ&{nibT[gM+ ĻjU:mj 0")Mگ{Ot_z;O CJv֔YU:}fPpqN\Ai'LVvuTkre}j V֖Y#9j鄋Llq*ECg U2"*b5\gP<]^|-,O(B'j#e.rn禎_OD~o.1bUaw_ؤbPC J&0Il6C*HԻ1:M*EBjrȅ.]b>r:sV+JK-kIZ~龠uqymeHnr4b:R'bZY]$]?3k4M4p6j !*tl(3٬2vi<,-v1U*#ZAlipߝ^Ou^f6G.|D7)&VNNj/d)#;`prQ2L~ 7O=_ul̢$?XdUEtKԊ5U,쐵GIEfb[W`zR ZFnH蘈[b$fndM$R~ݼweoۄVͳP&jX.o[cV4vj.؍Rr`U5g 0}lY=`F7%T[fN5II\VZ|z䚩"ԌR3_N5lEwNd鉱6vqjN6}bk8i' W5m>ȜIEǸʤhyn?mK6TJJGXcWr aBe#+h>,z#_xZ&IW=#e>.&aw(OƓMF Nhػ,tS/IfOB t*):2\sdYvl{Zu$ 1Pm_Ğ.Qu}㙖>=y 6sc+dMcMc9ǻ\K[N}Wk+ԩV9TBN߉ [K^ d4QbeW2Ylx]@(p[ǟ;a2GϨf.,T5\SbHh[8="LDzkמ 63]_`MKw;E$^arک1K ^Oj9t-/E}kJ$]fV`|Lc\ʪ|2re%_RZAÙ79]’Pg͜2zl Wm$6p])Y9U% dL!b8_}cٻ/d1XI*Xҥux#X8aMykLBFQ툑M$m>T$;X(8YvPL!۝SQudzIGsEH+e4RL1T\.\#w $kM'+^mBzcD;Ur7D\rW'|YClw܋Yz}+^uDdb*I:V^rrtŦ](6I,5`K0R1c1cǭc5>zх95iΝA]h D["BVM2«LӑrmQ"< ިnU?EG^Kgyc( ^` C8md}W-h‹ +DۇN.yR2)m/+4R0hePIuAF4TZPR yI)ZŚR^Y=V\L}$+G{أ!=] WߌڇE5j_o=%|NYu;g(Dac.ձx: ڏShu|sרMmTRt획f츇چv:unW#I'W:%=h,t3y4Sʂk7_jjoњw Zn_V}fHc^y`{a(Uq WFT$b I|q<:ihuóE l鋔 ^vOV`oOEW^1mE!B1<N|sqn[:WݞU,c+.ZR_j.2f"#U>7MK5z{.Eۦ%-6LYRmns!=1fʰSPImJfYluY/N]yn-StZ KmB߲mAe9 6ToAE? NZή u7lNfV n=%-˖MʆQ0vEuSS)v /PEvWݳ@ZÒ&3[%;Ql:H"MTU!L(~;lU46[謩ڗ_5NT͈Zt !c=Nbv)NEQUCVK&VV㶩@:=m7{&.4s{Td#ih9LI5Q8^Zy"MOr?N;,j cWkc6s6ZVAAer}+/QM]flU*|'{FrI&]'սvΗ[|c`E7@ʝ"dV_G_. tܼv.]HȵR)FmFǽɶz&_+li!+-(I #"( E+1 n t$/PuaL;j*+Mmk ^*Q%ܶU˔&6cGЉo%SidORo)Ь˳ N7kTu`Zp=ײ(s˪1vCy;mr>*Ys֢[-Ł22V?QLFu ٺMU^E;? *ۺ7T$n67U`T.Ԧrz<3p)&7ﵚ6BX f͇Ж''Ibpğ'2߱)O A{Ys%|G~ħ?$fЕJ&yg"+2E?=UtQdWj9RwTK>2͌dП]>h?,6!LMk6pm[-yFl$#MEN06^1Jr)NC%9 ).qs83`ӻOZ^omdk lD&#8*e:c@*O&ZuY!3(øt(a J"o }'jE:Tz277AfȤݳtAt"H$i"IM$)Hd)HB.1c ;]#J]vcW,Y2ss-5:o9dƠ;wc˃Nv9E`H4QҒKƽV=hf3vc9 x>|nq~ibJܶV8=]e K~6~O' F>%y$G_wO[dj^nTErbK4$;=~FvORnY;MRq '%ry4y͞hrwQ5݃]ltұT=ލ*wQpvT@ɷXFأ'A(輁sFoM)u'Y[dR0lЁx"Q!U۳d#|v#ۮtU8g%ZUڧyLLseo'opi bX1o\ȟ4ȼ ˺^'g0$s1 g)'8;[4?5w6-8`#;)7'QwZ]DS!{Ls鐄.3=|x%u7~,o:n֬Y<!&n̮R:Y>2^Vƅ]O+{Gel",S_pwVmfÎ;iglЎ(3 lw b E]I=jŢ+9pGO9<YÓ\yb])sa r~ͼ^8y_a*^6ٽZJVj1s7&DGƳf<& ]sqcƇ1vc)}1c[CP&{S.mj%y);Fq 2Vk,GLC 324P-zEb'I>'r9M/G1NCc)lD)ds836~i|Ikce.z͖/jx+4dSf#+ؤ>"x?#ý#j#qbX%Yk }b&Ik5HAz59c ]>Hmh4(4ƙ̓ڧE0I4yJ~Dҧ^I Q6xg)(##}2oZȊN>犖Z5N;S`b:qmNAVe$^/^X;J!˾NZH=wZk6|b73ߺVkլtv6OKU\, $.4zo]ھ.ʾk"ЛvuZzSZ֔)/fskQ9TbD8A*{':9G6ŭ5|0Eڛ&mmԼFy[aD7kͺL驃'EL~sS|707Y)9}E5a4ʻ݊>ի F۩TyIkNKyZ߭;\mӥvZ-Bڶϱ_[­} VԡFXm2cb \"yT'&8yT^kFSvk}w_]Dctt4GD3dݕEC0<|$TcqNl&2noD:rM(wNbQX-VVj㜻-Ț$m!^֪uhvȩqh5;qKs[ g.Zʱss3l sSe+Ts%_8c&E0tGn`CX0sQ7A-_eY¾oS4kܕVLə 5+3cM̔,4t-b|!GԔ߼e鵮ϠݠPĴO0j5_%9ZP)mPn%WL6׊*7ƭ㭓.MNr&l22-XRBZULۙ{`4h%Lʒ.}@<|";WҜ&cazx2mdPT4e󶱆yAf-w[`lXAmOhSnGjEZ5 U̵JM.j,k;.vpK^hI cu/C:qRˢ0Q~$'`4T܈C8v~Zk\<"eԥgc,66J1_%Sq.( eۺx&k)FB=u=kۚNQ1-b[!^9& Wm֗S*&T"y"ESM( jrRmtN{mHTwS6 Y^d##"aCZ7ZQn7r2_nmQX!HFIO5˥C#/%1&F(v4Mvd[=vVo_=76~kVnaRkȓ4?WvĖXtڬb@ >"<y)uڷ&@Ջ"Z[ΞfX}%%䩑;xʦ>Nl ] }k^/= :w\j#aG*6b *)LCHOOHVjA{|eg$kMC ߝGˎ7[zF2Ůo ZUxv5]8;g'0 Dܮ2l5 ako ]=\uIJ% n ήcksKU>D3 8G>v> џWo_9uOQ^>=m9]sPZdoiV-:EfM{j)%%DjzSa<䔿gȮLWa':w[K[+ЖO.Z}55 y( LC ,C!xH_eVtϭs5clinO\/Ǹ;GOWl1Nb%EGQΊ"1pIJCu\[Mڵ e%KOOᳶXc!+oΣ昏|vlvNNe|3@_珄GtZS3xYoI:dAOB OW3 ͵Y/Q[^Zjw1oȫ2ݺu:5z2NM z!0ąv[xS(uxܧȿ`]pKyr;C>sT*&fqZ*ö&LQqґocf^v> C=d8 cM]`2W$KsW5hgXF&]l̹pR)f&Trx0]qhl9{KSR/Lb/0K )ݬ FhHfOj}#L7=:q.ev9U}_Vۡ/vL6pMBWlQ6QegEV%,.yS);ϟpcbR~u܅\tʴí]U$6^F?$5pbae.AHwm|IT{~)T|󆈬\Y/%1OP>3ok5ώl> As,#ObO`=?Oe19bScJOH: ͏+'0u)IEi'7wtn;s`?h E׼f[zqBy%4,WVz'%ۼVW4[)2]:q ֌HlmfƐB=@ekZ#Z쯖Sp%6ɮEC^ g>I(Iں յ]mێ産;ɼZ.;5728ŗGrS'Oj6U:qzz$wݷ*ܪN蛼77G}Yך[PNZeQ%)l3N4$gZ)Q7Uvx.r^nrI<,ԩCc1uoLE}.Vimf.mnr3em U#*O]yxLSEDn).W+fC6:dv)JzХ)nNߞ"[:l%BeYvѢjl""ݻtHTAS)SIS)SI$R&B. cj2y8-.CT*m2lScjvـSU,YlQ2-QՋD9c $SS©EEs׃.|REpV ):͋ae"N*ivHx')u35l{|R~;Yf_^Z0N2eieKiY+&wt]!Yڵ-oYr"L3uKٸ5&J8oרY*<~/WJ7VƵ`ҴN kn \˫U1+"*] d|$$-ӞP FDFdzIX1jMjM7I4QL:Ir )?Q><~m1&ðԴiQJus}BfvQrbX'PO9FGf||0 p)k/(8{u=]-f4"ifؖ66RNf 3tr֜uE>Ɵu'ȑ~_zӁn(6ۓڲ׼缴ela6cR^^͉:s[(ꐪ]zKD;b#b}+⨊QݧJV(5wb;rp 8, Vd4˅"4#;\gM_9&KMj+x.*) j( 4ܟj-'efxٸճ++T&ݰz( e`v:qo]/R-S|Pq )%k. D!@̔ϋY KȞ͞[K煪[+si!&=`6 3%^L6BXx5Ifx˛tprsOBJ 0ǍE:/m)dHC`)QCT'ҧM8~Dv:*4)X.oS[<.RQK ((Ϗ0{|#/G8u:%FXc܄X,PIߓL#t"qtV liWZ|~_zӁn(C6uQGI8nѺ.fU×."-۷DQeYC4I2EUP"d)s`p/ԇZov7#g#/]Jp-l=6jU6O>Qf]#QhDUFdE_?Hf8gxRs*uiGp}fMl1oeGu$福ܓ*Y\$JU%wku+RsOp7NT>qva %aajdڮ;M6#b"` xR 7TMd$h`՗ݚ WƢFo){g'EnS+!pZxF~h o7WD.t;FJ%˶j%n1?iQf紖b5lxϖ!aʟn3pq;q<9=ƞbx4׏kgg̝QMz }D]ش誴q'](uK0\NI?bOA-*OEp^הUYl`3v?ęȤEB阸 Q P<"J$\Z%{1M{J"vTW•Yl;sb WYxm֔:ևj_= μʛ.ܢ8F[R5fM &mU'h hy({oW7z;j2V;gQ7BiZgsد64s®;yztDzW9'1ok5ώl>=?Oe$ >OH: ͏+>%> /k6?o~'!)r9LCrblg81s8qvh6OUAwsGj  a~Fִk9(پ7aLk$T]Ig 7"O"aW WhkOXZp{%9>Ʒ_kxPOQכjJ[}i-Ҷh6@kywnV͞,63ޜ0`'.)hWg;Hz{ڳDIRz{9Ds#<-?)CǺ/-4ںt3 "ҤZCq]2)\簸gB}3mK n:v "b(JĦqٵooU1V%YpR;#_wǪ(#dmuUt$`ka(3p)3ß{JSX'OLPͥ&[7XH+]:a-ՖB-R.5TO4bdLbM\72ʸWb\=/xג.[t)~ YRN^R2ʬ?s%"WR?pCe~߿3Mol:oij.k,m̮3k \Gn k;i%5Ut|Y5Qtgy3ozfwONYi?J]MQ4Ԅ U[odA+EMb'l89i|- [ MSacE3BJga(ܯ[M %8Zn<ѹQD1y% ]1YEgj -fA.MYeY M "&!t>VCUU鸶SZbnXˆͦלo:ο]7>S)ShTg^TX#Dk^QDb!ŁS(ɾ21VQ6_ϭ'*ٛٔ[] dyȣ6&ktuʻ0Xu#􆟋u# H{^cHFn/*$4n].it sl9hI+%r{ظþ6Ʒi}Stӓ 3j6Uy"/p$l GȝDҩ`l ~JźԭQ ''q҈9d ng%3*t'R5vQN-)=Oݏ ,<*qqq)o[Iܬ<8qhd6AVVku׍WnsyN"z fafIiGe\!9|M|iyt{uR* KVYҔwx[ 1Yoܫ5~'9i2ϓ ^Tu sJmZA3Ֆ;6.J30I Jc\Wt/=w/O*U4/AZX$m5STc YheV٤D}f™Jn:B"fK-6B)FjUZtnd1O7~\?N$$$n~^D!u]海[|[?"JFk;+ґH(i(̧Ϝ;l{2\Gk丷yگ%jiF5Y^̺J-[Y}Aô]:-;%2<{ȩh&匌lu>`2N~}X*:5ל+3wG_W[}WHҺk5ZR/Tb:.HJHQy)wʸvNI˗]@MʶuZeYU+CMlTc"-4li&B=9u c,٥NExc!ə^/dAֹ8 jQla&VLOT@6 3 ۼc`2 $9uxLvNdM'˘=鑩'=[#4+{_83WZ3fyـ:Zp?m_EiQLsZPqWZiHPQ${#)s$f=O3l=ҋz!1UWwM]?tvw-.wz-=%&?HG3Yy:\D*AʅL-swۼW-ڮ?ث#\E9BbJ"04j6Hee:ruL\ҐW:%waMkiʾJ9 _m+6 $zqQF#VG'_pS$9qMWeRI'^:6zgu = .Frqo]3pL2K1sٜSN_C'uߚ%tRH>)Tٟw7ujɢք`Ap[4߫mFqRYb'Axi+RH}M2S3U:K1rL:f~d}6ٲW1e./#(8JapD~ޮxOJ2oڇUq#L۩ 쑯*۞v'xwiBI"eK#FnmQXw5qc7uL^3Ѵ.wfN-V .04-Z=x=;&|۹YW"-"8%pU־{}-^ƁHJt>E=+m&ވyB Ujp9}Nm袏7Ys/vpGfi F%SZ+4׈isg4t@pzWnW|ٺHzעSނXc59Jb$_\n #^OW!ˡt5F5hrs+e`?lяMXe/># Bhu$Qw*}c?ebv¨|(͍GדZ[2;$S_6a]f_$&s%*aݓ#3wsneP?' b¦)XDĜrZ#+\ʊas5?Ùp F)bQ?K׶Q;iO',s:}9g?m+afVi%,ڪ\䪶x.PN63ٜ uӯYu3ցJOGʷjłRo1LdՍUVؘ0} gG|GL3e[}IZhXqVj=S˭-IDz$z[g&ό@b:S* aXհmwlGpISe kUC?F.vz1ٳ%R)*ٜ|OQx82Evc YU v';gdةt塢2x%Rv(|Lr _v;nHڂo P%+MdZKkYix2]m 3P@r\ W UxCծ|)_Qbԅ4wssxeYx'\H |]pb/;UY4 6pf+ٗIEc؋6O8vcQ|]-j]KaSI <~MXK"Xב˹n5;e*Ʌ2n.'T_6%=bڻ$pF`;s松&XpvvNN{m9 wTn<ش>s`^T֤QlCi;1hfD֐=f Ÿx`|q-TRrB^[wڎ^Se;fZ%ijM~+pk7ro}y+ٹޱ`~Y.}Z`WhkM#U "k*2T9H1b}l z"2>'^*ЊPZĢp޺{>mJSRi)aO <^0g7U\OH:F{m:9J7%HM}Ay%,ؗZ![)el,vQeYB$(L*JDL1P)B1QCE=֏׆MƠsW2 FӮ$T˔FUi`Nj䲖ԗ𨹽C=B8KZDq)Y|&ZZW"%TK+(JH4Y[֊X+_K/K8֬&^vÔem)5Y4Y2;8zqajU5ky'9<.&: ߾k} `7ﵚ6BXGОğ'2{Xbs~ħ?$fЕMPt7BWN` f͇Ж93~Y|sa%} I}c,''I'7J|BA^l _߱)O A{Ys%|qg91c9sc>1}܏WJݯ=>Z&~-J) Hɨ%96x j/Y^Ʃq,' ^l/Ğ3lIm-ǽ{k>Ԅ=vMZ<:of+5z2{lYehSf r_"iaYWEGV_JD9Lhs e3V)b!6CXWl(-'>ɲ]wzdj+UfL${5f-&4J^F9xW=cgee((DbkܤuЧoS;EBnr)FE7ϒY9 *"(ɑB˛rΜcyNUQf&EN]UU.u(d%!$"ܷz 5tiwkqƋt 6͂ï\^MDktR6fjBz%!d՗@^bs1wyX'" ۮQAy&Q 2J](S)?p7gf3\靭; xv£8C)T[O*9&d#u޿i YϾ>kf6*۽W,*@3[4_wtP=62W E[Q!<^LW 0L? 9{in9gݸ i~iAZmmۚ.Nf n-q5 bݮ-u<顼D9"L.-g'ˑ Vpʥ~ocAU|I:DaU2b:#{^Lj^ѷh/ES(9H'&詘9lRUݷU"_vvdwbTH4nZז.<պ.+6TI,)(ULD7eg2ԻFgV eRrm[e"fQDQEg5:%Hpl*tok5ώl> As,#ObO`=?Oe19bScJOH: ͏+'0UC`CR1͞g=.3c9l~RMtERY3{r^j$9{ 8.qv8Ϯ6%9myn`AlfuOif,vXj%pFfN[)<=!ʩrID1*TUSs&npo*{hg㜽cv֋dp H_vND3v>jr.b8b۽S^R" `R&VV!IMBJ\c1`KC:_=?xzΔ@Zf,^C_{2褚MSgf6cF鉮my6>˺kw3#d$$<ښ=sȮ6xm6a|%ӈ'u}Zq L5b=&}T҈=/\/tm^PFQ̂R=N哇'=WuR 5GMvv̕n~fbmH5Q׆w`l&Cyf "qW?m:hg]~O޵CX?ֿ>h]Hk|Ģ0z m:sY$"N_4)$8MYvUdlP/iqo8nw˹ݘKKɍcc&g3֭X[ZMWY% ;Ve&$E'jLQlNUbH*x'z^X4^kWP*\B!kN2A5}rFj?W`gi_o}ϱ"LjSGȡ_sek.a^U`2j>}b٪ 6sVv+o4ظmSjV.3vȷ\QRc)mS6q{^|As,sf\Kؓ$X18ObO` Noؔ'9#bScJ ~:jZhmYsNkK&Q'W*&XXm#UMF1u*FL.j[򩢴qpeV٥^gƨ+Dfї{tэcZryEF/\NyxүaKtLk]3TˤY ^וjV^ O96 t\> -`=d%lCVum>Wşb]&jbbjbD4.&elx?RMtEdȲ+**MDό9sJb837}Hzsb:OPz?+PrtIZ\cO1ݙSkRoKd}7/yGHuC7XX8[_Q6eJ6l勈 /z*}&WR1.ؼW/ a~3ZjZ3j;-_02*[]hwZĶ+o YywcQ ߾k} `7ﵚ6BXGОğ'2{Xbs~ħ?$fЕMPt7BWN` f͇Ж93~Y|sa%} I}c,''I'7J|BA^l _߱)O A{Ys%| ߾k} `7ﵚ6BXGОğ'2{Xbs~ħ?$fЕMPt7BWN` f͇Ж93~Y|sa%} I}c,''I'7J|BA^l _߱)O A{Ys%| ߾k} `7ﵚ6BXGОğ'2{Xbs~ħ?$fЕMPt7BWN` f͇Ж93~Y|sa%} I}c,''I'7J|C4/2 Y:Y;I! ཽ+F&Mvc8.3g8PlVq_gI`9tNUS5P2߶ɋ!1*"(*fܓ^2tQvuY sc䍖~X}|Ε1wGKM{'XT׽<-5h/`dS}R^T׽+˯O+{ +wks}ӱh ѯp<k#TԆ6!&,G~|`S}N#fS]駎DZlS@H&- 'b Ϫ>b ҰϪ>b Ұ>ƛ69%疏\k~)/J f>/ f>/J f>/J F>/J F>/ f>e aO,'<79|VS5Tv?0 Da32F "zƏ,~P|`3]UGcʇrGIpER(_7IxVS5PvQvVS )1XЀTg`|d:prص$pt89;NZte)hq@o'Ym|#_=~sH8<캼ǧ"Ǻ QJ> 3R[lؕ-IY]T;cwq`zc2 gIDŽe z\[hnxGVm.0/FSzt 79|bݹsvw:_Æ3l4ƭo[y.{>>^t:\y|a:}' wpL-Դ ) >;cf8(%z^88+6vhmrRk2 q`T>D h͞5 !KB&"^\juOSb•aFzshg+K&HQTI%y D7WEs&I.Yxc\2f4 7:)fe!hͣ~\hn9㛎n9㛎n9㛎n9㛎n9㛎n9㛎n9㛎n9㛎n9㛎n9㛎n9㛎n9㛎n9㛎n9㛎n9㛏߸NKP/s&℟W^ ^=/ DY&!ҏ-Gm\d쥣dNlEjhlX8bb2<q}l`M[$hAzԮz̀2s;TItC7;,,abA|)@0U%rq(&*g^Kwx1Fy!ZY.Nji#anGZgm$g6E(٭9:|+ROH9:fze qkpQȲ{w*<*\")L=MŠn-uOU.su)H (ULtω>p#&'F‡!E RT :i9SL*D"iAl"i\ٓLpH)cpK( "gͧR'J@ V4voɐ0;s](S`!Nq9}1y-&1t¬YKKѤ챑JgF1>fjl&6QDNr܃IbܧaUbJer&m%j*5ޔo^I¸#YW/F+څ_]c='V*1H13̓;ì@ә&=;vyϾR:WGVVVWYz*ʢǘqpo0jwW坓pDU1h XĖƥNE$i(dzM7Iç"zrӴ,9O~u>SLmW NMTx7wɠe>FͶwr dz]ՇgdPbأUj'&4\z[84+0CS)Ud`fl Rmܫfj+8,dxHRRN)& H.L$z 8zҕEXDny d' 2I'QnbhNHաw( 5byRe5AdY']&,t̲5${Exى7CxB9tXRNdYYT6<{AUԜh,pw=s 3pU<27Xi<,{Ƌ+`T7  Y2h6@*.gZxF-X@LRJoQ3ӧ86~`qk nRcIIY2|GI&tb w-!\ >`nZFٛ*E$%!(+7LR_̻^\$OúYyS $,ԕU |D@}"j4r*E5!Nղl}A|՜Í34' *jJgO'z:7ddl+^AČq"t@̌t J$՘:&YO; rD*BiH+$ v|ҳbi7Ѯc>REwj*Uá:QNȷ7]ӄP%eHmۦM})rI)ެMyLɜ3&s|ϓ9g>Lɜ3&s|ϓ9c,ҝ=1y$Y' ;D<1"bڬ)'$+}c DNC<0$ `L&v:.}?I9jfu^E57E)U"&e*dQ Bgj!3ڈLD&v;Q Bgj!3ڈLD&v;Q Bgj!3R=ZDŰ U3%cj"ѫqU%fۨM64+E"@u%}1< lߔpߔD$L'32{|x :d:R$k(ĉ4[>OC@@vp0`g08 q8D6lnlq n=pp]C`6~|M@1I6iB`Z'$}ܑZsqKYl+y?{EX6:4TrZLՊv'l̓aEB!'ߐv};֘ZujeڐjCjM{4}KдL4Ku%U6RӮ/zeQzP&4j(X+O4G6z|Mt[OVTȩ=:={2֝Wȕ*KuHjGJn}ߣ4S>ACu/M4kĽGݚnaIj$=Y&LN~L2DZ5L i\y:i>K-XOfVuN5&5Uy՘-ZŎh,Lӣв:ށTw!W}3YjLM_Ԛ 9ޞ}9Udg8ޒ>HDC&OII<~RNY쎠^:rgB=[w9eY@nd޾{$鄃n@ۭUa}aJ!#//0e5Pzؼl+ƳӬSܬ` é }XD,| VRRVRqļۏ27OooIw{ fZE&*QFQ2$s7.VvTE\8Xw VG ?v`RaEpi't@_eٓ ELֺ>dAOԅz>- &B 3 zH3,{Q$QQ²jW1΋&?Y6'ɸ2D0vcI(IF`6%5Fi- k3C꾛$O\b$IePi4,7ҏhzY-!=d:}޷۳~lOorB,Y \# :Hi);)2I鎌 Rӫڭ4m)Ւ0mpn[nE+ m4v#ӯ>XB֐n=QSF=%|kLjAEvI&Ʋ\-U hH^M4sxiŖ{&ԏӈOY6'7O"[M󶏁~lOooD0f؞8ބ0\ ]E"s\.q8E"s\.q8E"s\.q8E"s\.q8E"s\.q8E7z|Ub{|z7?!Vo͉虸&%uhgjWxz(4Y6'7Ljak^nЧҔ~A5Nxf,+7?!oJԐlZk֭Sq{_uf؞8އD=0ʩ$i6lpeJߛȇY6'7O~lOooC"YxŞ,g*=qzfN56e"w3tT,(#N?TiB^.5WPoDBBK>m`{/-i-#;#iꖝ+?7?!}L˭-NI- dkQ <|kB"bu/jD>_lw2Q -v!iStJuj=qzd=`WGI tzM-W}Vڎi=YrSLpO-mUH紋VcfԞ8އ@=>*=q=>*=q=>*=zfm6Fuͣ:ѝshιg\3m6Fuͣ:ѝshι\3m6Fuͣ:ӝshιg\3m6Fuͣ:ѝshιg\3m96Fuͣ:ѝshιg\3m6 F&*~\.p8 s\.p8 s\.p8 s\.p8 s\.p8 s\.p6&cuh&%wBqN3 ~8'?PgBqN3 ~8'PR]t#?ds0UDOVu|MP܀"X$ZWQyUÛʰ9ȓ^Aųj,JpnT"qAx-u].(푒4I &%aN>nkۂyȢb?z7 LB/CjbeN]b,&/ccccccccccccc4:I-℘dC:8gG 3tpΎ:8gG 3tp@0`fٶmfٶmfٶmf8޷r2p*˷^Ab~;<#'TLұu:ɖO~S37y|`1iƙ .?NKaOSd4*&m)9ZĬINb#:ⴘ2ZxLFXl-GT6}^Zo)+Ղ9U\H9(o)9 rf#E!A uԡ&d%鑗Qp#1QYp ]d:L%'JIJhқVPa֒RUNg)+HL8"ТRփGH}J?//WS049mc?+Xpܽv~4N}e_3F(rjc]'Ek+jpw7eS_󤄚Ց ʃupRy9&EB`WRW-komKJHRi+ .O4 G`v G`v G`v G`v G`v G`v G`wKOH_  !1"AQ2aq#056BPRr 3bt$4@CScpsu%DTv?HÍc#5āqq85? -kvRqsN:x V;RkThq!=w=G.!mC8֖՝*# RxI+wЩ'CJR*F6}jgʜ3m{!a7p^G)]Qx{"UZwsJ9e=c*6>ǎYotSKӧzQ<* jl הG#*աgWHCotRIU4`}R<֒t2z(E2\qS}fIrJݙ)J4t|Q`-.>ũФ6a9!IVtG鴷+d&4>´^mElyƢTGMEyyjsmknJp0ކdZy1Sݎdûư8pQg#4-_SPѺ{W"+"x%A^<;E0rѣx!i=}FRd/?m^0֖ wQPvLvIudvc9d*b'~ۺCg)sRF3Lm h,.52ѐDm&#>ZF3k!HS U2c:]nD7ڟ;yj6}Jxcv zvvƍ@SjB2o)X{|>ڟǚ=s*NH'#HFYֵEu I:M~->ˮĥ@㫼]q 4)G r\Yp+ lLl%M )kRP2I!mT2 (yȮEɘ<oXGЗm ==~$)-+J!*J8M9 /J#LҭVފ_1Ul0)8tX\0KJц^/U5Yĥ)Qm5hܸㅅHZE ^,8[K;T@S=,WVXHP4̉˒@C?kk˭%J u4lIN| ߌHy,+uU0R i.)c=f6jL"'P<=? IV\dHˉoyz~ku3z:0F>6yvgAe3v KN B&S'aN r*UƑvOYVdwӂp;N9ReȒq0nڛ>) 9 <+F@=@%J982g6H<ˈu I< 8Zcɓ%Wyvҧ"[j=s%<-i+J;R)ÛjCS{/Q-(KlanX|索 w5uPjs,Cc)*Q,IW9On^m򂔑w jsZq‚P -ѻ@'0@"m%\iR-_7+ȹ(\e?W]`p*5q«],#ô!tUnj&@sQ6N5I&tYB-r➾ChnKBKiܹx'6'^jPOiBgJ4vbnD~R"ޥN J;BU6V<s;4r峽H;xxLhyKO {ySLؒJq }cPۻ?9*qANSRqiKIr-ώ H*(OҢ=OanU#Ju).V:ryjbZ|u#;ˍ-Qi+53َg ~QĎ^s (JVHI=G58uķ* ӈ/6qSß )z(ӛѣrSaj<h8߷mʙG,9N մ— Yoz)Îʱ5{x$ :F{4iPZ=ߎgo-y4I?4Վ/өpcBo[UI77SE”6$A嵖 7Gg ۇ^N69GNmF^̏lUIkp3I{*L6Sʶz-W6!ҦHH5yvgĒu!hկUVK4I6鄫85'8Kۣ['(RmALhp+f(v;Q-cNO S\%ҎjYn_UZ Ma~HNēl2)FZS x+rAnuQߚM3=5!sGyҾ1&L YlqRXJZT-ņ:; 3t.5;*gONV\R:vѓАYRJ0,`SUS!)G8R%:ABzr^o{^8զKݒiG<`[\s[? G HB3g q@)].RrR xHqM8”W4 CbCjeOWHղ)&jR:wϢm:tZgpoWLE8rx,F["n~1`[Pz+ŘPj?UI zaƒa%]@}5UTdsTiG%Xm-Z?4n*<%na][/zbFiڷz IvK.R8Ԟں\aqm^6魬VxN'c[$É.4dB92;/%H)U櫌ڄuGi)WQ *hDw`/Yy+gws?Y*j\PR U[!ZU;|^2+yMC$cݗ06<%H ~H9$yZ: Jozui?wl8i޳g9*>S4r9@AhU3^oԱ"[uhpIp<*B˃ w@;R5ĈNst AtcNGPK`b+96m_޾xSwX'WJzRVzƤ'5Bt k#;E8-*RNs;:h :8q\[[oiu W;ÚFbԴJ#$u .oBa^,u+.,Js!Rގ)撜[6ox]e!juiBW:W%M- R'? +haXxW[܏ )a-n7W$"}!nN05uG%QڤYoW IjlSV[oFl匚ql)aԏ!9|aP' ؏੐*eVx*]m{RZP~j"TvLvD e,)IJN#A Eesz8(GMΩq J ONG1ixbfFJt%ҨFcV8{2q:ʉ FG-*[KPTlO6Th $hO)IQ@e)Οз+׊^%I.9GRSh]tPҴ@ʪz2Th2z'ʬdIr1(t]PCi$ .֓TZi(yz0O7󐬊SlɎ0EO\D[^1ےmjҥqIẗWx0~}II:PƥPR=T2 tS|ឪK, HԂNyѣImXO}ul7*4~<@6y`SR$IJiTAVv,AlOˡχU,s Fâ8}ug9y+%Nrϴء+s{㞜8C1c-y)t{g^@&ܢ[zsM9,*&[{x >î>mF^9zet$wY)s%sQ![ ٭FOjy~.K+wCz[b۩lB ZG?zɻt #Em i?:m)~jbךRxQ<@N^ 쭢El$Bބ޵9(8r(C0ԷdOR85 On(N[zۃ>r1g:, p[^9Z2Bu)%$}:O{ܪ~B1-WTi砤W*#og[٘rQ i<6Yd$Mm[ ǎI_U7(ɛ}(0U\y*8H%8S_?}앉&DJV8s[PsYcn{\ 9ƟOt XvǺh*Vu#ZZ,;%su!W)⅁#]vJ}$^-p<]]]I57Kva7iii0!<$dc?omIڈ݊ ȩ8JJp2%)n~}6x=@}O53Y@V5}]x8KlهYI-u8DžDz}{(e\ZJ^/_WUlw?vNohItۘGPwAKB[1ptk+ijWx6e-̐ơ學{k+ lYa cR'IWrM]hB6<&Ey ƻگ}0u%wÿ3繜GwA}tܒB.*;@jXlH8g{9bQl·La[/V֋{%+yKE4FRx uFOrچii/䆚a;%a9=gmtM]vbods*duE8BorvnТSc[O學YYu,Ntd )[d 0hK$㮻[.Ey4]rGӓinm3~ҮbJR|\y Z(oٯ=ӿ-6ګm %g ~HRn-L/zK8sϖ˸NtSIq)/9ӗ;s,r$<Q\k[mEӌNqhP ?]32嶭mڻBiG{C|7*ZH='?gWKi.}M(Îb/h{씌%r)ҁ؜voj/&9Z"[iQ3fJNtq+[JJ6WvkݘAG9S+Emopy*xwi1ĹZÒ[P=$S)>po;⼦FF#\{jYJ+@A.`I<{i;C{C{-n JZND}MÎb5tڍ%I\=5ť'+I88쫅Ѵ7eZJdfBI57 HS{Ϥ:vzOߒZU&es eSDy=_({Oɖ͚C[۾c}6ҷ+HΐFԯ57XoyIk?D)OD)OD)OD)OD)OD)OD)OD)OD)OD)OD)OD)OD)OD)OD)OD)OD)OD)OD)OD)OD)OY}P`c^UrvR4VI>Z7աzJCPJ S&V1RQR̆>Kإ-V_UPKFSn\S$E\QU1ld7YxđӇBy"[[mN)|x&nL@,$xi:7Վ.?zΞҕi%2+n0EJh|1FKϗz&^˟$ƧS פ4V:mS[:WzgO'Vb)irHb /Io^v?+y*,$Ac4ZNp) M2=4N!Ǻ],R2T+]xK=(=JT>K"{32Z=/jR#/aYƄ?ʜzDE#:O?gWqFp5aYǐhc\#u\Lj&v9V}8&l~nf aeUi0`4 A'sTp]crC3W'*) N*:|&ֳ?^+͚/_3+Feri1 F A\O4; NiO!Ak`etNJ)yk-[F"膉 Zt[1*z[VΖۥFe-.3XI3BU}عjܧ.ݒ8{l%Ny *mK I{BwFqmw9pМ%,0 Ӷ~$ȋN%,sLq*79ֈ"eP&-r pkDoC[G[R6?s,Lɹ]jF9S;^w]<h ǂ98*m?T=̡iJyEqEv"\4*K1[!Ft;{+cmɁ0O4|dwtmof~$Io:lkReڽܹla|'ol iݑA}Y.,m-m#T WrifsMb/tP3+7rbK"{N{OUw5o_c=_υcnB+uaM#Ɛxۭ)痤J8jĹ^"]ROX9'rwU{ryBI!X1RțOUw575qc*b i\lo2%C!C)1X1R4Ґf)P-V0$,%pyHS[ k( + %#y'Mm^pu-/Z!G@luD"{N{OUw5/i?}:MrO'\I$k}5>MrO'\I$k}5>MrO'\I$k}5>MrO'\I$k}5>MrO'\I$k}5>MrO'[OUw5/i?}:%?T=oC佧*w9Pvvx\ᡰJ !k1lA6%UE~}xH'IlVM۝8K II.}f"B| 56q+D;hl\|QC>Z͝vm:ЖL'˪[}ًe2 6Ps~lm߶6+qWnxq#e Rc%4R]2dFxۍ݂$-';LsWt!JP5omvqw{S<m?T=oCQ"+;9Pഐ >l2npI+Oh';gԉ ]d%ݪC%+Qh/Q@fٯuWO0sAPԅ$ϞUlu.5oJelxD8񂲮^_)t+/IRURr#%* Ez]۞E܇c K $4y5g&Շn], 9m[C.-jkHwxm.)* iX~C/7%ZjIlmN졸DLg$/SWl^뿥{Ϯ[>Wl^뿥{Ϯ[>Wl^뿥{ϭVVk}h<>}H'jS0yUE.6<'$p?GSՀ};M!ŻiPh'[\1z)P(q')py5!iuPiMGz=;ӧ2@?;yjqM2jOק--l 5w%/KWbmŽi}uz1h^ N(Txu!m`R.DE})CiRyB\ |Y HROQuWcʊDM{C /'UʹW*\rUʹW*\t+qYi.+@ R!gK-Ad|jx%܄8W?8ԸjPRuMۃr~v`Y8*^B^ jprq>绁KOY;h9W+E˗6;U]:wYp|Ϊ7q[u+'{dZ46ǘN(NA :I^IO +~ڐx*󟤚 ĸVt`vS}J5ԉeS[ox?jLqu899'Ȏ0(Ka(u]}&6bIHs Ir;NG) N/!aߥ-!1AQaqP 0@p`?!,5j.!Mp{dr~z3L'4#^ڼbc6~4E{&hy4u(5֋'0IF޷~[jԅ#e:DzT0@M_=6^WtK%l q6m Oj3jRػ&kQ-1hKFnJKƗ-YsyfsWhgo:D#DŽ G1Pؔͫ j eN/['Ljį+1z6 rGfZ.Nz ݢ Z!85TBIJixnѝ! #^ zgn`FNap+U:a_*p#"~Z*.݈ [E& #0#@Yk4/l<37fM$N>֊FD9z RӻW/3p%=a Y~/tC Ɯڌx'R11*ӌthiǹ6N?I\Bo1]/?^cbhQ. :-^m2q|U액ztFsK-{HlWV#SiD֜l L׭:w򇒴s>[@1aB< l v weZne^E`;&Ql`ӳ(/,<![]s}"w!{]Zo)1\T.h$6_jh_R )W+F/YAp~cgיhp⸀Ch׮ Z ]S,=:C2n m(pJ8% GQ(pJ8% GQ(pJ8% GQ(pJ8% GQ(pJ8% GQ(pJ8% GQ(pJ8% GQ(pJ8%)9Q>=f>-* mc<ͳ$|$ (mk楑#mΘ@R1>Z,UuιR7SϧŮD,`OSf.-{ڭ/H5 k|FX:KiyYPPIuZ&0+A_ӎ2qyP5 .X^**.B[ A.v,j]?:Z[k {ߕAMx5%v(pO!.UK` HSsV?}aV٬wuL!]WPʠrJ,SEUCWh4si2 4UMe5Kheң-LS]&X}bRm_\-Pۮ3-0w\As@5nԙ͢9.פi TJe v+^:wy|HQocYuh cUC #^2vjlaBn>N@L_f!.lr."ب&_(U@Nс!!OGPAk<И`7R|T7]PO)^䳤;0>ɝ(M](ZKHM WH F TYkU2XFxidó s#**P_5 56ߴr C8[YnJLm  dDLj/KDS4WDV!{k@ϹvF22ZrGyYY];?sf%3U.X<񘜉R0{]H{HcDhr$D>%b53ATCDLYUcFzS=z;g֍#|"#o;DM‚ \ˤWM-o uP(r0@ 9>jBV-˷ 8΂Q*5ayNaB?+f!P5&ٓUp&7{ e]%ܽwaliy83M5[z7]) Ώ8T2[*XQaMg$*.#+tq~(;熂K.<${ftϩGHLS.y-!{ ~y Uf(¢pz53mݷV+rE-EfVuuMa,-w[ \cW8kOq,6 >Ct,_9ueíOQ_o9AF`"#_ e2մ]>4\k/\]{DOB;,&Hcٓx|亭8#BdlSi(-/0o;鬹oJC|WKqo0e,K^`!`keZB圲@PT45"2l5 j>yIP2Y/qii.Dn/95mC0nm9MHH`'-`7C6tSMad,6 riZ/I1YkQv ^3xe$E+T01Y5Qc j--sU2jR{DSь?w5s)60ysQ-%ᳬ׶QwX8%:։A֕4qԇ1i:Sx > 6Z+ Ti' C?ןDx C,%^N \KF!P*VЩ([J*huq<٥B\ q(X.J)Nc)K+f`ݟ NVK@Y)ER!&֖,[hWI0r-}.dl:U AAHD)[rEqMD+b8A4{,'$+H0F,:BRd,0WD*j,kk" jZN:4 Tqak/>?Zx/Pyn::Śua~ xśq+;ǿ:w~%ݮokGaN ۥ%wA[]A; 6s,rKS,iyY̲1`^fq|Do;0OSb)YSF1pZ>բ%1U,ms 4w_-T4%).`\RCSg-\ؠ-WL|O\_hCmß$Xԩ\5cjYқl̳aCb"P׵ Ů@(K+ ifwN?3 .u%66u0"޹O4R:,K2j!޾y:F͹ƠD6^'2VW3ᅬtȊN2mMZ "w FJ3 A@ ]q*F5J]\)WZ(҈:\m(0m)4yiv*vp>kY]r]d`@ pxQ(2.FTpMt/X; #+4 TerD. :q2zheI*: m 8YhZ8^¡%܎ Wvpd4&ux"r-DrhF4.~r B䷕l(.W&bQԫYhl#lmx8`c3eyB 8l"<-!B5N|QYإ,$F\FdE;4nX=8*7RmU-;3zDa ^Rmcp= rYY/_]4gV;݂w ŻKBUMƊ0džՇCwJBwhҍ2ZࢳGD^ӺWS LLVDW !"bR+-`&X<ݷ"5j93udM^s#uau"(ֲ*YevC* w gŚ a{PjLmaw2f\peO :+VXK'αP>7ᮚ3oKIY{i|w3wKrvP]X-(ũ6-PP4P$ OSp8 ^0[Χ(UGy}TNÝֱu^F˒yx{uڠlpFq*ƺb6~Fohqv DrXE"oJwvQ|4ųw)gakr[EJ Ӿ%c&4Y zJN,q~$kA~Oѝ_?ںAo^Xmc|& b(t6O*Z_?Wt.࠷}-ZjիVZjիVZjիVZjիVZjիVZɩD6l9ܮ reg{Zw@Mi  ihQ2$롱=p\Qo)4iF\hYɵ -YQ\g-D4uDm0sEJ(u1M_J/1!C?4`5YcA/zfcC%k*eXD5 DԪ'sp VhP\e/y<⬀jߜohV7 ӹ>oJȠfwp/<}M'ꞃեX9_[{^ 4D=[h^s DS41=VVİiBl⚭ߣj ZSbFn*`R)т}M:B6bl:a(Q?HQBa-gA[btdTէգc x[`e ޭkndݞwz[W^~8\;J3vlĒemXD0@",\̢Jt9wkni*N"ALs"F@c3ؚFt<.Hc>y!׼}=A@u#SyIktzI;:ygOARv=j㸎|~X"D#m*/@n-1Ұ:ubqCNxKo9n&#sN,/iHGqH͞%YjCE l=ρBm7}:ޅ=3s=9S7Vdgia9Y?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?g?giB|;P GQ(pJ8% GQ(pJ8% GQ(pJ8% GQ(pJ8% GQ(pJ8% GS)>ZoB땦tox4ka^$|m)4P8 \J?SB7Dmڛ5.VЧ˂є̧C1I]\_ mh(u!̤Çv8TcDqHz8c7j]JO!3pP`a'f!oz~UFЧ[j^(ZoB땦)>2oBŸl 8LFWѵ*IuBfU@^"[ rfV_"Ew92KB0xh=h8n!%J>$7e:Q n$z21hjbrUсԪJQ_eli z )}E&9[cf`9G`%u'33`GACVZ&WuyeT7 P4nVLkEe}"~U4:օly u5CbnZ$-lۜz34ޅ= ,SJ kV!KM&|aA:bOZ+XFr\k+7ӀfCq[b8\4VW`^g5Q.=h_&3tfCm%+vpZT3di z֚K\5'ė8eƫW.Xh!ԋlPdLuXk޸c|'|'|'&zE[&(Z3-w9rt}(_GQ7(60sLJmBH gMf^QW8J6SUbaJRj(XVBE&`-ыYJFo! 9,4 *r %H-KaƝ&8],|}#ցauV na`!z%Ѫy<΄D}0i楥If H cL,¡QzFa-:c\1dyejxF7.gtdu`sNO?}Gԙ-zƆЮW@*^}Y.4>l ܏Goj TTr*I{_c=Z>)>)>)>)>)>)>)>)>)>)>)>)>)1Uk@;J&+cĒI$Am6IO*RRRRRRRRRRRRRRS'*J!Wqؖ/ЗvyѢ{zUc>͞H+~Q< Lu̶kM0wv"oaM 3*z3 F:S R1A{I^P}d kK;M,ii~R_&ΟhFfm!0Zjɫ&`?  $AH A   $AA$A@A @$@@   @@A?ID  啁,@UƊl@& H`M4  I$ 6! 0L$  I$@vX   $A v ;IH$ `L $B8 @@$AA IxIII $@R @HA$H$f_9$@@$$HH I$I$I$ց@$H I$ @H   H$I @$@$ $ @@@ FBI$I$I$I$I$ Y@ +]@$Ҏ4$@- $A U  @@$$ I@@  @$ $@ $H H  I$I@$   $I$I$I$I$I$I$MX ^!HCn5*A?D $@  @.!1APQaq @0pူ?fE5 RYk` ZTGxP_K>S b>gƒ=50525  4D?|nV>,Kwx=`H`A'?zW=87pW4\>ML}}׻œ;X;Wlb.1mv}_fM>,O[U`#ewW_QzݎIXL^SD~7Tup:((7bQ;%OY{PBxcy`aY|*_GRܝXJ֌޵ v+*;jR"s <!{GBva`7P VA5ɒ~ e:UJ.5pPff{Cɔ{$@n:J?ku~% u52șawHvw|ޟL95BuZ&&lZ.^1h|f-IoS%:6F# DRuoCR6[ל YNe9SNe9SNe9SNb̕ќzڛPhC8byG&QP!h D8pQpQD +ɒ02&Qz?o! 9^$0 7> )b nC{Hx[Ěf\!Έ" @! Q7A~n1x< \ݘPBk3/noL64Py0c#S7xAT?J fVA넇耆ypB=GbZJ%1$_p?כ訧XhvZ, *.0c3"ܒXKc <0kq5n0@FE5:ssn~Y7?]fusn~YOXc=B ӿ+ nnq9Dr=И%92]$$4#5T0 ^0)Pׁ@eX($N N &Ca͂}0ȀҒ]ô5Thz8 MNéB -A4)N :4GmNupVn| LE"D=Sg^ۨ@A$!{&^<(#XU@\cU/Q8}<Hq'^9HT@c;ؑ>~{V}fn>&n>&n>&-!1AQa0qP @`pѠ?ЌO eWp~ϳHa^,xWsb@9^RBUykcMine/*!~ܮR_5  1 F\sV|$S6L)@6B|ZVEʋۉgbDG$ pGO";uW5-v`n_=WzF0>jgvޤ˵f(Hܑ 9'@%RyF SOـd C#I^P hP9 c`V6I@.. /$ EfUf/QK[Ĉ"9S$xR6`E15UN␏|2A2*(UC4Y @6`*H4 /؀#l *3d*n+XB@ dM;\Ȩ)^(+ldܖAS@:`C *7r ,zpˆrݕUk.m:u د% plBEY \WTsZcr`+ѣ]Bl5Lΐ!AxƨG/0ox86[̑hp(B[ b$g+V K# clQL +wݢ$,eصm%3 +ġK CZ×1C,hJa>l]0а#8nZAD*73),\jCRAgJ<\^u50g ENu#q ) taaCOL*Ll xW{s+ a^ƪAm빫 @h?F"Փ(  x@GIF# Rj/:U9HD I5aS2о#͂*o@(䶵MV5w51*8s>dBcD\( H:J|%3 pNxA" 7AP+3n Pgıܫ϶@Uq' hj 6^넥hU+Է"Z`T98fHFqUqD.%*<1?Ʉ1D];H Mcϕ^ fP+[R;L/:BA,ʂtb`&#v4z m0P)/7O*T5WrڑlRG@c(\0ȅt |&J ڌ0҃Mh9bt\2V*^S|*vHSa{Vp<qqI{DFLJۺ.7caöX)9nL@ę+[u1 kNH8[ Y'` I9(b. SwdS&UQjmrrj^r!xND냗NG-Zdž&a]+4 * er ] 5qGHk# (r\N ls*ĝ>igS/X4 FgI0);L@KMt5YϬu0"<,r:'a"v0dzk>g={5MK0XJW?T@C?tKZcyZ'1"5OTJxD6Tq+EJT Drvf\]L%FzOmjc/ՒMY>P5p)!Sf!3Y72:8'p  D0kЧTq5@ȩZHDFa+ DD{ca8H.S9Dl4ǗcA.ET I4KvφktP:4h*SɁG8R-wf'UcQ$C :gI> Y=ݖWl :oSqHv>0^x(\ wsm]F%!]K3y=rN9Ǟv6_? k1u"wAW^pBm08@1ǐWf\\s`<r"b8wXB#_\vXa"SH倯4a xxJ]пfRLݢ;,:s;jq0ɴPv-X7 } bLuA!Eb9ŋ5!M6K]ikg*L80BMJ5:L$FX-Lj 3c^ Y@QdUa=1>Rþ7{a03g37i07@)`%-|S`VÜ1SS۲ǙXd:UZ VKQC X@iTP&! KD]޹dX<lq(C'\E9^mu v%-[8g%ⶽ54UVt۳HM&tnM.bIL6YHoF=EگH)m^j<\4b@*Ck!,&i?8TAZaC M1`3F6:Pj2 =p) yu*pυ{ 3+*ܭ r %IO{y4hQz4,uŒ4U  RLˋ.%qjּl,(نt@4&dz"`<xDڒ18;0@".݊c{AMY G x*CFu*G'4r0C 21|Egbmj&|ZD&j`3b%鋅(Ve00 [-w8BSV1 Ԣ <.Ml7=DJP=]]ʼ6*.wS&@A3LFcNm򊁠@ 6PanMB(/$PIi+$s5"AGBIHþn-^aa/xG&-KbTsIdڐ2+mey֚3 .!6ZD%2۔uKֵ710pbFur0n!!(ĢI$yoi'46 pV,s*5ؒ:68>3sD0d p<ˋrPI킚j %" 1K[H;XݲJ 2_Q8zG,P;zAW:/7E&*Lr>zo!DH8,MMz]ph"݃Eri#}6l=I[ `[h}f838Q$p0< Y|ϥ0 z-|Lnq BhV1{6u djB2h߯&;y9 BS*Tv~0XA~宒lU&@/D."B,“ Mp;͘c-4 JDG˾X!C72o!l .J,8GhBR+?%w-\܃.LAhzJ:ߩP*&˾qq@ccƦIa]M>t*S+psi_DXJ7?cI:-ulv"}pm!=0AwdXprdxPQn%TԳm4D[ؼ6DJ'];^_q z6|V(>`$PI 8fֶQ3PY$yؒ!"(8@UmyDp#' NԶ4b_Ȯ8lTط&ZMQƫYFf_@b[5$JN+&@ Q(ڨbU9` `~%0ttNCCDQwdrn դU8#Hp5[Bli%PPWU}at?mjDCB1a|;R83//!KVm qU">'G Cn~/Mw$CLbPr`p 9gE>'!b1>'Ϭ3π#]vӍc @5ۯw"Cn\IAb:UZH%XG(XmbB`fG„6)r)NN)VhEG!dQHA`%qaDjEͼ*(F*/ΰ濋UmNv` m젢-żk4M<[U`_;-ބ&lQK1m& LL?F"\+QH( 8-UXH`)8عGs6ZE׎q]nEPH+5ֶ!ޜRd0.!R!} Kkjix* V󚸗AimifBn`•mL Ҁ] &(i@lǐV0*o_3J߿1"|i]\ "!ѰQ+z)[ d#Z258c>R;B!mT.84G]`oD<(٬Dn(F4aGbg6@WETmQռ'cF$pJbC5rIIwHa\y)U ҆hqﺜ.Uo2 w0L#Aj%>-TcWo:`*kYmW'RIуg(Dlc1 !2H`ꢎ/]Lu3iD΂@1;~KB Ֆu  RުеRxq q@3 ʵ~ea)(ε_%YY=xL_l8d1B@%1@\cfH n@>p?ߜ A{B36(K!NW'u>]X}hV\Ա"a Jè[YTk@)0& 49q^Y7!'~/\b?a3؁Ě.)ZB 3TQG7Si?\~R4kߟ )3U= ,Pt.R)v;*= ؄wi1#?d BΞ[UVX5(+M&g^'RhFYL6HTT7  bAb7fc|`+eg@Wubldz:Kp 1x.wB.`@:>qʹ:v_Pp(o7;Kn/. g7dʒvv^sSTEn{2\}>zYk{fP* @܀.DϜGf0"H:-[5-<`0pR+9:@kNfy hW _NtbQF!Pc̤h v]/ EC(Ӡ@Ax]fnueW>"""""""""zo(T(r`!ZNOA} N?q9-aF1WE(G]p!JܥC{z{3`&DP"Mu8!d0EPB`@B&!@hb@R /RJu(W/;;dzѼQLk׌J78N^*f^W#+`sxc;Evp8F]zG=2 ` /q),[#Bɵ>طocaٮ HȦ` :G Aђ ')g_.\r˗.\r˗/T>۵0He'yPwfi|KS?9l_-. Xk8o=04(1Xđ&ohLP;$߭a^=))ȞZjoکhNAyhwR+ 5|zSofd α <}r 8qY((f@b-QL6v%")6h\Cq?\@S[7Ǯ6$H!Tz(\P  `g; #Q:r:Nz}I\}[ %]Eۆ/.$huR"?k-%gCj%͵u"OTh͍pgtglzO$IR<ۯ :#TЩlS`#w;-^ߣ6ЉvB[L h ! 1x3; L Ho͘!D_-}4ЮӠƻt$"uʰC z}&G>'ov1aI hL]z [cAY3W*\2Xh3:Y@vK"%3ؘ8fܸ3}Xd`*4L=(h9LB`` 6(S#v,* <,Ju12M@/RxܬuQAN=1DA3fh@'ЙYYq>X^qP&>Y4;Iq5jt_>{O|(-֝Z)7  D-w6=BCTzYYր@h(ʑ@PΡ?@n!Gr@4!?u`4jsx 81h}+GOံ K;#bwy@$qD[ӣD*3i5N ַ6iM`#Kp'N]{\1DH,$ґda9KN,cFV {hz&FMS usT`pkN"():M/_=+՛j6"c+;6\X-z_FH1j 5(e(C`!lр1LɪB5XA WE5{,b4) BJJ]4,0)8 8B¡CZ5Ԁ0` ǭv: Z!a2Uk$!W\w$ï@R Ꜭ/H Z̸EjF0d:O/F qa//C61p]Hͩ;~|%y0.{u&6ty1U@ۅ hGS$ƂęhDtp(3D/9RW6%o}by * vy4A7.H`:0JS 0E"࣠J&K6u 8Xm_=C DzЙf9H E3;[H*AiB`!aQVh#@ )mKCaKw1Ѩc+~ ҩT˯&F.̙+ Ƅ eIx @1;~o{'?p~}>w܏M`Z2D+jQe:su>\ +[]02doE (PB (PB (PB (PB (PB !@jA_)L}A84V@ A1uF%'JmƣTw^z޽2_Lu.QD"ɜv.ӪMǵ͋QWc9aD|R=YB$tRwP%? ']WX,=G? | xЁg\[zto/( *PYGf"5*|qOIKpdy þl0>t5GEƕZmIɀ?z+3Z>I; fdĪT.ںxpm?_)OF OpF@7'q{Dwk@+1m[)!ǖli}ha9)i`4 MA+C3[ s[5t iO K-, q(Bp~(KIu0f^À&@R L1P/Q` @ -֙g,epv+qR]Gg|qТ85N:49">شUT8HۀӳD[LBm,c`Sx.aHir{nAB^H9iB%C#2`U`OKml$;l`;N=VF֍U"}6SѺ=]Tyf~)Ώ t3~Z9IqlG)ڞX]i-NN}E\Ӷ{4c Hd4!"S`ZPTNT4 B,0o b Be# 8\01r6 ^)oxGCms~ ='I3~ ='I3~ ='I3~ ='I3~ ='I3~ ='I3~ ='I3~ ='I3~ ='I3~ ='I3~ BɨL4w찀\/jo>o^zׯ^w̲c c' wv'O@YU\]OvMvly&)=D7 :,aMjFG _1:yc8Ai"8DUWD+} cO/`v8Ӌ Beoo cӈ EP8 L7J.O `8VmtUbX/Ci0!|8`:u$Z]f=.>Ɗ:"_iX*N'}p:'V:=ENA) :i ~ ^JUL7j/]70h47GXSN%P|XZ Tq/Zz5H"UC>4No8ST $VyjaSs)m0~,c8ֱ;em5 G׳(}v1*㙇'*}@&e Sʽ_T??lFXq_^i[]~ x~DsI^4pwbK B#38m*TRJ*TRs}*8#|3NBA#s7OI$A# py O=?_ntfy-2.11.0/docs/static/img/android-screenshot-unifiedpush-settings.jpg000066400000000000000000002037741462047176100262470ustar00rootroot00000000000000JFIFHHC   C8  Ad/޶$dŲpFqpp}~[Qڞɶڙx}}C~EaM,*r񵌚_w⿡J zW}}GcSeNu)KH>8bezc+ӔFނuvq)mH\VБFvu@xT4^=~nlUv{~VUzz>=qz6?_q 8Ee^6SzƧS/K_EHH$HA p FmTx@=hy<7~uz~'3w >N6,R;m[:Zܭf~_.=߯J*zNn`Z~wcW8zU+ζLe|p30XY4׷kaN ө\կ/BÛ4 m˫˴iՌ[V2ܯcw\*w!mgF(L8jJ*ՙ3U`Mfѷ"Kbށ@HA A+bLpr@E~ZfW%kN%#՛4$RM%$]H$L& f`}rmj@B-Ф޻khmnmYۗ=BCQ8tsk]kA;f_OJW (rM~^1 dT .SDĴ-ҹ:KhPjQ c2"G->}@!d''>r<[&1#JayjKӚ ?>%9=rh`zLijMtG>MY#ĔsӒtMAZEENSs^fB(BLG̍ Xp`5 [+/?q&tdֱW.#Xżgȋk.,ӥJ)mijr@_<`bf2٫9;~G G/o/߮i#y95DTMaG@ Ua$"ؖ$Qy 0滘8G)#g8D{_F4n|6%NĂ60`bj ۛT5ўu,c2=~SNnM1t"-,FY&|D!*#BQ$rz$Mγ92J6$85DL'H5܀P@PXg`OH=0$uRVlW50P 1@p!457`%23Aqg~qdX~R˞fgL^sY`Q!}{6*pS>e;T<_g+kB jM|#| EkK጗)6$P aB۫r -vrڸo1y MTFu⁥#~IlXτV3Ec>XτV3Ec>XτV3Ec>XτV3Ec>XτV3Ec>XτV3Ec>XτV3Ec>XτV3Ec>XτV3Ec>XτV3Ec>XτV3Ec>XτV3Ec>XτV3Ec>XτV3Ec>XτV3Ecpy-n?ޚZJKEWF:Z˩HM@F䀜)go1Y+lПxCVr22cLً(Y 93mґYJr%w$hGW*iNY ?=|Ub/3Ǯ6î Qn4|\cՍ,;琡Hhv{mT j37U/s`]?@lÆʥo'QUZ[Zkyx:r {(}͵{uJ=&x5v*x D|*1Cnߊ4:y]s8]^v_gמ(CYIrs5>ZpCV&pE-nc+KX2p[ 4ܵż3GFۉbMih*25p\# doǼHj9}`U#Rε)xҝ§"CHfԍjR i[DJxpJd$SUزɐo)p҇*a.%S䪼YE|oTtq]co3 Ҫre3kUF+nWTp¤ a8 ߱;q|&3?J{>1SJRE'a Y,mlVd?M~JK|,JLcbLOiSsʫ|K/;ȳ1yF뿊F %`^qWYui-{L2Yb*ZIU2^0H=|ꨇڤ-P%1鼔ֵCp_,c }8wGs!ZJppkerXA‹0g OR8|䱵*Sppc$DƔv&[I`&cV{mW9mNC 2\p$)-iZN^M5 tDY[U8p>i3fXt+r"16 -V m3ӁmlXە+Hlp`W,U=u|qWWוƕ EXOTd*?[.)8ťxFRR U$debJ]QVnIRX,rS 3+`kfLDk9aWB#^|U]+*U?q !¸GYYVuegYYVuegYYVuegYYVuegYYVuegYYVuegYYVuegYYVuegYYVuegYYVuegYYVuegYYVuegYYVuegYYVuegYYVuegY_++JXCI`cąA%m^=K6!VgxDޢ(jXU k Mxu-!RUj7'096k Eԡ#/*x=W&i@o :P_17>Cxx,vʅ#iԈ U*L_i}]E`darRƂoג`$jt V\ )Z]O,Z5ߍ,ξbkmX^y3i:Pzӻf̵3vc|o-ݗVZ'alf 9Ig<ԵwN QV4P}AjhIrK'Xꌌdg6ջ[ѢќW sPU<֛Avh@e23 P !W~ARX8u1Q?PCe1R%1!sq_ۯƺ__ۯqۇ9Ƽkks~}}8ǯ:s z) 2u䵊}yA%/ \U$eS|@+UA=׏#h)I±㉫W,ɯwګn|khV'5Iis̐$8$Tȅ-ӏ E(X\qfX|^/)Rxڶ*{U7Lj\WS+W*xP_ylaf t꟝?qSO4,}0 vJ5naVᦩ[A{Gq_י}7x>bP;J$U_WF VWժ, #êlL7f|s pE]/μR[pD?CJ+bJxg6"Ѿ2&OӂyJ u*Wn 4j` $T.JL ^H /`s܅I\OUeVPdWlIA)<#LWRՄyUdD8 .4ShoTO+`$%[It5Xm[OBY~IŶm0eQt{dXStNjwNFr:A!y]Qw ;V_b|6w͝g|6w͝g|6w͝g|6w͝g|6w͝g|6w͝g|6w͝g|6w͝g|6w͝g|6w͝g|6w͝g|6w͝g|6w͝g|6w͝g|6w͝g|8m` i(pXXVʯ.Ypp}4eD4ٖ8n9^5X(xx^UbcR]\Vnu΍d0R{#r}]jg@P`3عMH!l/myn</k׍tOc Hd+!s+$o!o)w" P(~RI#]P#D!]LPݟ8(f^,BS!.X;JObfQo'?N8`PYFa4@Ӏ(*I_\5zd ]ba[*KʣUҁOmuAr]g=q!X)BA7Kn W;bس,;bس,;bس,;bس,;bس,;bس,;bس,;bس,;bس,;bس,;bس,;bس,;bس,;bس,;bس,iX4s8'09\lgC8`).4 Xn?}8y=6cHn`_ȐOaKwi(n(?r K?jq'Iё@!1SAQ"#2Pa RqBp$05? )b+]o@oBPWws}SDR[Q+Mwu}%6zr_Ҥl~Nro=L‰5z:Ԗmq6=blㄍu&ڏ0OwH /u@К,=R^x\Dֈ97s7z+gnM0$IA_ iVvb-GGShzR;0E†[L'8lr? FL?󩏪uX[%m:=QSSvl#P})ͩ6XwլvkVďC,y!n"D">S[Ho5faӤ)VR<ĻJkSm8òͭ|V#Z3~?l!sP lC[a{;_ Đ!iO LDE/j&̐P˲EX ѡds]8}AȔka[T @YQdv~@&Fk) MuRڬO BΫ[-2)6$xzZeaX܏[C!qmk ZLbmioG*l$yД L{+fl֤Nj8KYA6dtMIEE;0ql|uGa6B|=GFZ/YI}z ޷N`XOIu {q8 I5&##6HKŦD6;¤ED`dE] RxX~xb [ˆgZQ|a(v`QT:$αMv;BN`_yS;6(>S6k+C<~csy•CSJ3\UΤJqguW?G KKVP|jqh;I24-exް [9`-.XzH_~b4dny;S}b5T=9 YRz:s,4coE_5N#qGQ1ؿblJC$EM{!o1x\TҔr k^T:P?*6- R8&bn9%RQj^+%gHnhҷ,NX[',t:V+r厕brJܱ9cnXҷ,NX[',t:V+r厕brJܱ9cnXҷ,NX[',t:V+r厕brJܱ9cnXҷ,NX[',t:V+r厕brJܱ9cnXҷ,NX[',t:V+r厕brJܱ9cnXҷ,NX[',t:V+r厕brJܱ9cnXҷ,NX[',t:V+r厕brJܱ9cnXҷ,NX[',t:V?X2m0ĦƷ*eYXc%1bFYf+ JHy`iQqxX6qmL"h fٺ Jţ2lK#Wj,Nvv* Hs yd]+)>cƖ{K*+8SL9إt MJBmICLO`a:|)ݠJV $_J!$Í*(+>rd4F +bxKF041^}n=!$AQ 7UTD8紸fNxZ%%rO_3Qk9u]JZI4kgT%(:t"f#ċHf-Hv)vӍv6]ɜQՙIaZqePq SPYE7`-HJ8U;dZ4fRU8ke6f_5(V(Mo/dF |hY.6.RZQ6?fVԁo!FE]IZ .Get&m+#u˰EˀRvؕlӸmj݈ov b7&vTu:_!C_Y\_Ui>fRlLds]x%C`έ٫Z?q2TGK唪ޤe4IXׅ S8ԅqoTS8LJyBx±} zʑCk66;fR;FM39(\ʒ*!N\_ALJGi uȪeFa~bT8'_?`_:G޳ՇGfȰq$ jBHI7.He:zbg{ҥ yq)죜H'K)xBsX!ViPi!foYҥ̺-S4Er*N(-*sgІIGlA*'QX-M+!1APQ "20p@a?lc&Itte/b|xJu˯#'&uؕd|:QdRv#>d.':16o2 Z#DY>/ޚDW.Z%1NJDUx5s8tcTvW#OȅeKFXpc6cON$HRD4dcczQrFVĸ$7vɖ[,ٛ293f__#.*{zN2sT3e_U#$xЄō_ryw|Aӱf~ȽH98%0SKק m%/3F׼^ f/{F2R{J̑x$R~PŔY0[ !1"AQ234aq#5BR$0P @br%CSps`&6cuDTdv?H\HLJ@֝iϲSti; :R=!tzS9k~ 4NkO1AqB@Pܡ\HVr1\81pfiZ~j댇'?nO$})@4:lk0:|%ƈ23)5óz"h*Wc)|KuՅ#5}q{3Qں,6Թ!豵7"N>[dȓpqq2J>G㲶.L.Aa.8I54V`3)[ZqC#]nCC1[xg R4Q_< ٤OIfzCe + 8 !-vlz $v4{W“o8_Tho/.'Ynx}RViג`99J'x_tVݩJZI*mIǷ.ܡoi˒7BrsJ+XcG,9'yIqGv% _󭖹̏r:Rw/ahJHiЭmdt)8x@@mk֤{m>Dچ]Sc)fCb:q=;(ʚ$/!BH5wʭ{ VLJRRVV?DKGDUڿ{-X\[V]]1=::psrg.I1ݺRBQU1񭃹mL{{".TfW6pN nuQz2]H?#J3}ճ%ܖB Y6._mb7a_᫳ 6$v _ގ$$М*.yٚrq\㺵sBqSHPrGwձvڮ‘=KN +"GkWH%xOGJ N^5ⷸ7#Rn9洀0?D \&Cey-R]Ӗ[5dKyN1~\s%\GzS߹N]jRro5xz+I`\#SEer|gV"9dA ;8" :GDuY8YCns'-(sXr2 9u[+$ծ9L[.k'kVƿWi ,88v_ErF Cx_=+ҭImm.~W[ҌwK&c*QoFeԔ!){'Td6 JmlG TMdIm3íM\m-h'CN1}]g=vt: JR6og)ōsKbu~mr\- "Re\t@*ӴviՒAoVxѤǽ1pCuNEGk}@D$ 3W=f\MPU }oRŴݣ8*kۃx,Arm#'qRmWM&&4pGL^qF]l啫X6yZ7d$S[<3oѭ38+xvfx$B-p>twr>5yr52^$`򭴉nj%Am mͶgd<>鵤i uk^D%RQ+!JW!?.vf7z{n$lɲd#^$ {khirF~ΓvTo%n+Q?lm%騸@Vxuj \>}D}:Eu.Z:-:FR gz9ʓȞ@kLPSU}M 5*#vqQݫZص8 ' mg^Ky.nR@Xu?;gw+LA'y" 0@Z|i%\78[ nWדE2k#{e2[E z:˼"ۮvK]epb_IF]O}lw86e:Q5W,.l=ʍqrc֨GxGY'=uz}SVPbuNN-?J: eJYOƷPnJC ֡FqԭWE2WsOFvC-$·gն>u緊N"6?HRl8d)YVTi'XގͲD()iYoOi oXnnٵoŽ^ |瓝8Vv:Um8zc x̓(`(N@<^cl䟗Z:6,-P|%C|?p[Vb#Qȯ(v;1ڒͭ)R]R8+$͸ƾlPA#RÏٸO2Ĺ皒{,uplû7(\bϔRp7zS'VJxq1r[-IVI.:te/q_n{lvQlcK * y'J,Sܭ2XAN+9PW6eZ'Krkk29_/H¤+4#QF3r}ǭ< -%X魣K>+! 'Iq>p 5$rEo(#z\^q#‘S%8d??[#]6N#u:=𭦙o1k 'HJ>p:Rt+d6vm=Oބ:V4*ֻЭn!B0R{My-^f*ʒR e49W;ϣg'̽$/l)HU25J#[+Ͼ\YeCswF{K]7"JUQS84sϷiNU椞'CQ8:T8grx IPP9%VAqg aی9**Ftwͩ?p?qsaoɘPH? c. qFY.<)E-Xqn6zH_ 5oMq}[m“:Ǽ9Vm%b͉1 ҾogmOXb[1>R'sj{Mo3XR`'k!t[(%yIz+hKrL^z H>C}c7gu]ݡB\䧁xc: eƭDn(e^s* R7qm!uʷ;/pOnt0%@b!B!ŀd#9w ۤX㫢R#tB{QqC9ӎ|~w)FHCq u W qVFRt{*]q-Sևi#H̐<adEۮ[ސÑJH'#[uY!v zkwi#5OLŜRyW(&s]c9- ڮ=BUWlHCژ.^mwmnP ;xo]/qhpT*"nٮ,>Qғ'f:b8^u{ jRY[r<9khvYi3[)O$+ď vM%쭘BSrO=d;:*؁qR[ U\|mD117 )|>8ة; Q)Bd2V2KNʢ\m׆!LgxpG[.\eFFTkt-m<Uw83-똹p#;Go|j.>"/Tw xI'zH@ĞW;"s).y i4x)P`%ƞ;9u7Q᫒UNGƗ8޾U{1UJy/t˖0<̥#j%6딗{,)P9p;h\lR7e2Vy 2Gcɔއ_ʲAU_dtsq(VBTp]SS9oR7nԟe^e)(L Z"0Cmiy`ML^'vIqE(m*棒xazp[+ApF cesonRX:QQ 9wcEoh^o[n4@*jv [.">BhӜ5x\ĕ"[l#C-%dP{XFoxs>V@m^ekkbۦ=6E%TKg?hڹwTYͥćPړSIȖ͔S($a)Ea!lF3|~rlo{q%h,ÈR zÏݻ#뭻٭MR?#¼HqK%d'TQ&U]^ʪl =o;: Ig1W.9ҥoHekfb-m'V Worv!å#z:AJmTbR4xc*s}j\-L>ZGͻ(_;o6ju{nudJ:,,%jxXݦ"lA|4wV |;-M5MNϮ4ƥDC>mj~~KH\g8VӶAݻ8ӕ 84NyLFmճ,'B qj'8sbݺQngڞ9lݦ켤mf?ۋWH;Sv)um8}V!V@_xٹo4K+[~rAߙVeerx`p_xRxF8aj@)JqmIRuoRsm^= e#w>ϙ5N܇*vl$W݇: %N;Z7*8]Ǵmdž-}s1ܤ83F|yNЗPS>1GA[vO%Ɔ4T$VC;un\P@Fݭ[wBjS,mH'K)$p8X}w +wU>;*@^&պT(C\4-.i~?bF ,UӼ 3[RÎ!`r Q#56IR%B#jJS3oMϢ&8RB SCl3HU ~v\ۍ+ZhI~CMG8s%I Z:}d8i_p6_W lN4Ү={dݤGCB>p:Fq[l 5/HKjƔdiqWB.TqۘM:Rz HyfK{WDbw>CM x-9uGW m Y0ζ!Ku9W7_\ 0j:]˭8>.M IgP}Iքvᙷ,;n~@TmIq$pՒutc]Iݠ'WrE6#ȟ4WH8Wa;jarve&;#8 Ǜ1J,^܅kz"Rw84&~nNAyd*SM[`' )̦F^%`wU%u #>E|{+lLoB-ʷZI9ʴ\^ Ki*H?il:0'j#}'RePBd&H:5f}' 7+8zzčSPO_^5yLTsp8ʦk JY }Qn}26c-*D  j2b0MiRNܨn)˃1+\Rԅw?="Zd8#WBI["qPyA9)=⚁ *K +QQ'$I4:CG9TzL.q8ȸA aP~UGX%mjs=u{RHVը:(B/1xoJT5r5݇x xնʦ脪3ͻZ>ƌ/֜%une]I+(/:<4)@2e[+iȺEe7jAKN/9E;rF%2̂pX{p2 n WLze|k T[te GˌS^+8HҮ\yw}3BdVTC I>5;Kqi.Vz{u\-/İJ ZxW~wT[:xwpv; %dH>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^f#5AǞ*Ґdo@;|( 2x<&CHqąI nJq8mn'^3̎{v* ,סn Ѕw0.n_eqZr3Se=mKRR{qV۳m%iGy_juA VpP'd*Z^ 9QB,#^ ?VYiהذ^HXJLt?]e昹[?iSuH'^<6mI[qîhNyVQeGc2RSðOݮW.rz*kF%*mZ^RdP {oLJvE7A320 ϶x{{ jb&s,Y˨SkOArD do[mO1z34 -]Te-n:'*#$pCW F\\ 2t-U4 aAaϺ%0!c!U N SjShh cQQ,()h":XW8U-JAZ}MV0(^ܠ5\S(*R*8K5=n]!. jgN cۡE>ϗ9ƧV?Bi!iW>C›2ވ>szy}QH2tH渷J4Է8Jg! u;OW(2~vV}tX8d׻CE7[phK{*6(nKTKqIQ$5&1JqiFt\i2aIb\smP5'>gu SKF[+t ~DDa^jp$*.!֔2$MDMܩK8C{Q 0&4 x=ɲrH1m'G`:աa':h[rtkKA)~kkt+Ej!)I=!(NiNӯ QZkiqB7w}4ۄ(K{.wޝp qu"l5ŸULRO))HRn`wN(Ni,q?՝#[+6Z, {6EeYIxpp56[)^="AKe)JQ)<{1POF,^?F[EY& V#i48E/> =*shEEq:lT9dv}i,eZ ox$(F,+H 9{9VΙpflML6Ӻ G쭊e/ݤ>۴ AWUY?1)Peo!4lP\f0irc;+վȖMm-~pۑ[_iSM=ϒ%qҾO~8UScǹhuѷ@DupzP8EAe$V73<@.w`d\ʼn峹RF'x{<ўWhwLyRpdi9)wIj3Gec#LG==lai5czwud8'F!h`=T(e5g9Vu "KCͶSmln4Y%m~ipM1ë *ڞm 9_>#W=9t;*;(}waD%&a)j5%òuv͘ː-ziāU.\dOpSMflS-#EĥN>^lKR )rPPq?TJ&}IIyqiFʈ1KmukPH'ƭ([+٪A`Al{۟"$-ZS!S~7: i59::m8X@jGaʍj}6FCd9ryUBҌQRP[ѣEˉҎ*՜}uCȔXKʰ ܈qbYJFa=L6%~+m mZ'o۫!ă ǰ&K`4HVr>U(b|km%}S8_&TiWXNg]pڷo&tmmkKZJ¯dMf-nϊh$ 쭘B#/FAÒfXS4hkkQZj1`y) 8R5lJs7(>K:7*msjѴ'ECqChW2Fﭬ̖˶{n*YUY}W yH^U Zu -C~#~uN4J* * xur4ܐ˭nWp=ۅs}݌@+<{EMOC(9S{V`:毬Sn{y Om]nM<`)HG q՞\xUћsN 0p8<1nMA\C:T8ΞG]6fDӇxc9##uBض4: Db6sO%1giuJOLa5KӧB|e W;EZ䡖ԏ cSv8Q$n3(k$,u8pOyTW- qAIBxrOBo{.O3m14t&ژ\qݳceCyϼu ݢڻҢ8i[Npʘ~huIJܐwjp!:,:/ѵ:u<3OmsmSK q<p=vX{BqξeZIOWkɤqwuEW=i쉽c!:}e/`S6#o7%<_h1tK6lפ0 .i N}ƶbll\$HBeoomj㧬qK6/l)ӺOqWg(oI%)ԭ=H&r)RяƗg5}9%Kχn(X6˻NyV<@2lXe,>3ӀMIYcx5G`x)uilIE$%J~;E"p[,+;ˇO?ޯm 5*;\}]V;V\&YvM0m~DY9!􃠴ռY#5bTuscq Tݥr;6UlZ9 'jI^ [ӏq/QvtL%UqmrGh2%@-HXֺdkΝUyir,_r.B%eI_PӤ W5j|eg6dWxSY.,nlT! Qp+ NqM)eRIuΖNzD$^w kÎ'1^G=na芄uH{-!mSTҘBd)8y ^Cص'w^)eм V *H]hGfh|3my2.ܽw-)ޱCxT5Ƽ\8˚4ҀV y%y8pCz G'yWS'XӲGV]Zt (W[cv7o`T-f@NԔ(M`O*ۛEn/gr|ݙ[uBҲJJN;ʭ13"3i:e̩gEz^͸m:NVBCWwwWҏu4$wm͉ciZ]HuA+3;iX)Z2;V2#+ 'ﳕ":mlN4u]S›$XP0l! ĊU`acSb}6eΨTzxNj&9yYdIh3\Aт<o8i 4K`pݶ\J09⟺mrJYHu"!ܝCQ "Z `)W8Q.04ahWV-| GS9r<=Umvwyy .|$NWtk?Ze\`FV8SǺCmeJQAsw}9𝚏= O::w^?εl eGjeOEc;۩8?g?eYd[:5KCIQRǾCZWBx!gVxbbMBNYp/N |)kG (ƆqՄJZ#.>|')I8d5󫕱t:1{;{0ڤ%1!#wթlJ~)IV.N8A˩Rs>[ )%M?Ϸ9\RtkWyЌ؍* Q''vԶ̖F<}XrUAHOB8[AvaL jioý՝)uCDGH*+Jl񭱄v۔>Ӡr;Tmp†H9+P[c6M0G7uG($a '^cH\X-[޻-[_Xџyn/jSַ܅:ܴvd\RwJ)u?=yMrT8\ 9dN;JX'5<qVu gB7eTsΕm,ťQfw 99p6JTiP=~xq Bn–QS{Զ)j=-n̗䔷G%Sz'1 B'P+O#U-Nq"⭑gz՚$3d芴T$@VI@c"`%r&+mY #=մVۊY;lAO\;ۍ:0G[Q"lhi8Z lVq u m'{{%9#+VqW{ie*Aa@5`jgQV`j<T%F;zSq`$ ѫHY4 Xꥴ^v4jd*ϴ-{x]2[b1nU 5J%'1^Dnjuǚ[o.';[R"9rm8RWx5$ 0,EǤ%F !8%qm5\gF :z}T9O5㭍H O[7bʞtJ^YG&?rhkyٯxN+g.1w2*¶1At$J?^eHeۊmIU[⧐pඟW.Ls{quh:ZV Y}žUT>_1?6]&ٞ#y\yS_ˋ?Jܽ/Z8Ԭ[ LgbCnv,yVʷ*=K6>8w[aO '6)ʼ3k&*c#Hw[qY};sW$X! N9>sH?ƥ۰ʶfLZY GR)ƾZ.JSRn>sxu]M-;?98 Ȼ^ J9ʮvomwjVe#WhWnnDSd=+G:rW DJ49}ĆyķP=ڝ50.3_[Zsˈdzp͈G)ǷW&g9<걝)'k}ڱ[u;mhb4.;of'FS!^NtXyU\>{׭Aw@8'o^R.w;vLʟU )XB@:BNwbE؛H.wDYx lӧ[4d-Է!S-}lkB4Y߭h) (a rcLR>MXxR'_`1`raGaC-:'$G[V;ג;rb3x˷Iczito90{qƼXl߇6FnTRJPgG*٦m3NCeDj@^Xr:-j鎧JT `k WE훳-DqKZR,g$++ '|bx艂Uj*οʼCڋ(wMӳtCi8ɭ٭fznȊmyGY)Q'JǚA']=iy=[=*#Ҳz[vK%2%y\-*+;P]bq+ޠ$$6(ubt̴%<{V>:q[xhy3٩vEC;%;>)q^6!JٸtWdkyp][SMHV2}B kd\nomJKkV*}qU-EY ݣBp;8T1tD'2-u0;[<~$mFL|"3Ҋ=t69p9 9@W L:eN7jW+' z[= 1pQ4Z.-1fs9%Vj, 8ԕk*$P¯0b\q }N9u5fr~gT<\;m8.r^,k=wV;UfBS KDqR+rie󜌩-IsAVhƙgU%O!Ĝ{s͛rַ{N|ԩKz2\R?Y8Ocu{v>¿)g8<)M!iRLIq qu:6[{n5 oG乹aq|xi<t܅œ J O*'Ul),N6I?dQKI5*RRT\}j?趶e+ÞGm>F4(O_ْ~Ʌ9 iK2ޭwtzZ5ѝ$hV3rtaq -m+*St"+Rwf)wP# wdyԒ̫ێ5ץly=嚋ӭuK-OӸgN>~xmrcKIA*m,c[|b"Td-mns•s[Wgߗ,>5wCbZwVOS8 UtTɈ}is@5{zw]ZGSl~H}v!;7.\pcK<[3*TRmEu<*a뺷S;Zjj𢹈RѨQHQөCζ46$)*y)Z Tnqnq7eL8Q!hJ0BBiVq̯ǿ5pm :ܥ @* 6L [Υ5i};ydDzuG:x| eM8_[n=cI`U22?x*B쳹lHuƔ GjzNTI'FB.o+ ՟5dgp*Qr9C= CNr)귲&E#J}S %eFC<2 vGҮM6s1E|J|"b@iqO2~iJ8_)׼Վ9j} H?xc¡"ʑX(ov{)њmHJ?WH-e-C{ps AL =Oퟔ&MuOsrf1o C{ƟiGyƶm6\TI5ݧ|Ti#HU]NPW"9xض!&$Ҁn2Iq'&DOs"<ϕ"+n^V4s0s5x~S1=Iʣ"峲̾VCΕC͵j(dīÍ3\[ZBoP.S\r;쭲z ݸ)8BfmPRZ6oX:W"<YҬV8ejL0W^BΤ_j%D{% (% 'jz|- Rw9<ƣ!(HIVҎ<vc }!.)tIP G*ڴ;mLLfJR`ȫ.(5qB)RS 9*"1.B#-K-YՒk\eZڜTuюx[4d@wSeu uSÞqQ^xXu!\*DϚtm[q4LWYHp жƞ<96ʏ1a8)wz#S{~uoxνMש?:7G^z#S{~uoxνMש?:7G^z#S{~uoxνMש?:7G^z#S{~uoxνMש?:7G^z#S{~uoxνMש?:7G^z#S{~uoxνMש?:7G^z#S{~uoxνMש?:7G^z#S{~uoxνMש??m>ˮ6pY(>ږ9L[n^ 9ݯ}ϺI 4OhIטּK2u#?^Sn;(lD6ϴݹ:-nr@kasRfĜdsOw}yGk!=)JZ[75AލLNnˀ9Ed2-rz2I>Uy( Xq!+Mn8\7IP $(V)YXWNAWmmj.n:\ tɲn m:wcZ\Aj }g%CYN;Briݣ4S5%H:[S}缀9>{j4mKy u JOonKiZ3= m^t_J[:>8+)6KYIr)'=/v[K'8Mw(H $Y^YP%jiğ0El;uvj0>5al忖{[ ҷ3P{;pz[ͨa WbA{l-heĎΆm(:ù'kZ.&YVt5nȷ7{ty)ZtF W:^+'*mCcו-0GlD0ܧ\ Ncۊk{M9FG5|)eZYOw!Lv.n7)vj#OGE,`šJ$\>\O\Lv Ġ uHu2꒜,ޥn-T6˺\G{jrZn:t y!EKwӓ:k*9"6ܨJdzYg:PpFiJWg6UĖZ?R@9棃¡!Ϡ-9=Sŝ8$JӞW ߍ7pڔB3';$400#8ɤ!/4:Ϛ?)N[nOEZKsJX @O155;(gv뎕Oy[FSPY[a!A@w\=gi9\өEC>5d =? \پɲLFwqW𭒋7kpt%kxN@{q[7tsJq2R@O{*LwS:ߥI  5wIpOo}"*kHƐ# Wg(O?m#wqƒ)i N3'2ONJnӌ!ԫQ#XҒM's%lAOQZB?Y >5o!)ޥ;}>5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^?-R8 Cɗ P_•%1m<?M<$Db;[b>>@)P<vLj_1P#~#O]ס<dB^WD\q;R7NQ9RZD:02;<("L0ʼ#O!1'XӳK]#Z;Oyi,1+=Yҿ.!1AQaq 0P@p`?!Acs@qJ$dT A yן!٠hf$#.Z6(ZwGYd,5HC' A(?38$?U3DuJ육̵! L.QJ(Gip9˥=h5I/?}:-`: K4 ?_r-$70yRWET 8w彈)7@Y&u"9Xs'B{Un8KutैF Yl7<-55d&`FN tB(n5D!8@9;h#x)@,04* ʦX1%G ; /&T9;u[#3H~\'0AzŚE7~~XVCb Sݞ"ZT lN5= ȉ05oz4a7bM@h5bti-sV, id |ˀurۣ`XlZB/X |ctHSF wIDG4Xdo"IM TE%dLo ZiXdg}<5 uX@Pd<85 "Bjc81#l5^/04KQ$)#[,sG7^#0%^8T< #OdXIstnb{ QU֖/!GxIF$"qؙBDܘ;| 3< 3< 3< 3< 3< 3< 3< 3< 3< 3< 3< 3< 3< 3< 3<e\L,kMdwыabC,fJAFA7&3_ީV 9j5oƪ2/pĥuF 8 F2m^ĔknhU^La$wN~bq*-CaZ٪ؒ9_? I 3BI\0 ph4d|i81eNO;y2Gãӱ`g ݪO?kvنw!g h?maǐAC œ8De\ 3B^ m$۩7.Iȱ<ߊ`b*F# ^.هG `l8}E2â "+^yUTFs<24ZvzfB$b;ЛEsфтf~P$xzxZWK `?iEpR0ҁ2s誻Fg D &x4B 3rAwLbCF@Z𘈤LNef|9 '+0ig8qTL$ri\dlu3*!ulQ.v &:mx{ Ra&M>r-% I &2oիukfm_lRgxS6%z3YeX@"2'K?d__ pw"4Xtd=L ',0Bg;Wb#8LuȗQA[X /QK(ŊF;9,$0I`G( jŪ`e  fGY$#֑LQTBWR(W)"IrMkEyp0?H'g(bTR1hHqrgSKě2 |y 8K ^4L MH2X;fE<0լ%[J!Bw8+ [rX%Im&*`#6UiRʂl3)̀AV`~o5a茝an*jB9&dM>iXǷ7HJ !8# q4,$'0iƢcUSF202$BGP]@ 16@n+p` 3 HY]fDBP~bLM"0I=Z04$kUHvޛ3NIE5 gy봕N/uf&e!f[@I2{`:TH[L!"R襆$c I{Kl&8D `9~s SA 7:dPTS`^rF>r+F8< j&Ӭj aPN46PਃUsO_`|qAf|b4V x. lLe OG'},6Q{e0O`B?#=!L0}`x_p\Kk@yk_cε'8kke7*XMfe5mk,QQQ݈x8-Ee҄CYe+pv.QqF-x3nBU]4E.ph1#"8Qb0lO[bU ] ЙI0G ;"ZL5n 0L¢1mY#WR >I&Ұ1 6LB:^XTE &`G@&+nE'`0k*#0A z@عɛa@..F?*IZTTNi' I8 st[W&ixGk65H*#O9C9:O.XBip'7m#kbR#o8`RyOY-.:*+<Ί˭qNկ902H828V7 {`Y9ȑ[D>%V ESSx`&Bdస 2tȘIi[z#PA|6`Rf{,N^xRjPCq {o/RbņA5b52s޲FCHDٓzb+LN& ;Дu}_ )D1 9|"m>8͉i8fB%&*+Cky  wd4.y*18_l" zÃ5nNœjU{@Wd 0'r0"E9\0&+6sx֠0 \LzR8DE@(bqR3"dÇ$1+ 4/"XW83T5 6 Řg[oYШK#o˓(w0z|dj61 OJ .$0I+#ɏj!@Qp&0PRHujTFF<@OW]f3. Ҭy:'DDf?;Qo=zJ=_6[ys(Z8GҼF; aCC9_+Yb;4Ps?qZRd>Gђ6L.i-+/5><PHr'2zb$CIyl20CN91D"F-r#r EdV~r}/mS;GpR9YFbH 0nE@!,i21NS{Jk ̂aRJZIdSP"B+Il=VG8ׁx1Lc-A3ZT,$6}La70d GE8]M"R~AQ O_OvDc$j(vDXÞGSbH# &\?d`2Mˈ~(3I<mO -( :K "=xXaoA%a>?DcH&P,Ԃ3hM('RuC:\3= >rn4/ p"Y,,ty^_Y(˱ncǀr[ji|uc'pYV?Fa` &w-'Ј<ɘӠɗ(>]`DZvMY2)+ &86NYk y(ŇD5Qc*r<|!jp-9k4X 5M(m5y' dag\?-@{a90ocl] -xo86ASfb/H;n2:E$ø w\+xS@9ӼNW'-x :g#- =A/?L?"%mĂ&-ce$|)%np97 ٪rd"Geg fxKBy&: I8'e o@2oXbN]TL ̉8N/M!Q ѢpA2R^# HhcZ'˜R`%Pz*jOGlTc`9418I*i"ԩC3Puh'm7'Rb9T׳u4%~pO!#p@dnĠ9=@ 8c+\ãq@?EEǃzu/7X;y|pAi?6sfޱϠXhoKp<`fʘ EuwX1!ĥuk k(hxj VƇ5xĘThAK敏G8}cMth٤6#YQ䐡 b񂃯^d *2$- Oҭ c986.Ŵl~pTC}5~GA66VG 0`0x@:atA &}(_IE!/xI8EiK|_,p -MKG7FM؄"%pP51l$F(R!y<:PLkiMd0 &Ri?ڕQ(XhyŲ$U<͹Ķ84M% \3s,br3 @#îqM$d@!ێĶQAD7MɥNh P܉QH*br3@dOwLrGFN `^I p0V $ xDؗTU.$߭rn)',- 0d?zy`j U lrDC!nu <zňGE6I ΀dr ,PX/9b!b% m@>g0]#@7ec\%dpOÒΔMGXEIy54A@*'7=<|yl'؄?JWCp7 rץ$Ҋ apN2w9 S:kx! w'a ۞'p(19ebXL\r5#9Ͳ 8"ct( &0‡z$+kOd; \8$!&@$+![[Մ,:QϏXQP BG s3LF GXOdND?EB;+'!6hV9xH?u #Q4&5_BA%䘲bڪh ij4bjmSPĤ+u O *T>%D{;4 IْLI8?T."pf$qChfX7v644bd9!fI1$ x#LI9!2M`#kɻLJt~y; _U\' iW" B@K߱:XKCxH%L3]&G5QxE J cj,&<8"b( 0 faF:k"iBqyMʠ) LV&9ƸIMbmBFQTnPh   0u-aKR<\d!!2. zPHyPxǣ:a׶Z_C H <-q7'$ {X`qfFph%t6m*4J զT@de348& 3vZFA3{H VH""|K# p@?WCdG iK\F88t2^w%f" `9_8VegNrZ*VaX0!Aom2@lx:H!԰Qi*A2^IP[ɽħeH>[G%_V|#N8|gY5 M7B>ri`J7a_`0z`FM_4Ie:Tbkp4´La;Z<HPVld~6'&WId~W%9?j?*o6^H,rx6Wzo ht  #JqCub3-@y Ȏm#HI  K\5S&BZI$I$I$I$I$I$I$Immmmmmm`@A @@ A  @$A H@ @$@  HA H$@H H @H$ $ I$I$I$I$I$I$I$@?s ĩҐ$@$H$@@$A$AI$HH I$$  $H@$@ $  9$ I @$;IE$$@$A$H $$@ $$ $I$I$I$I$I$I$I$I r@z@A $@$ @H R$IA$H@H$I b @u  II @ HI$I$I$I$I$I$I$I$@  $-!1AQaqP 0p?Ʌ3*5)莄_&=!!45OK_+}M'^ZSO_}kΚ]@iUcZ]e l8cVrlkѰbLKm`T sa;;WFCՍ[uAɩTlq/E@LmAzFclM55zPSGT C## - k9S(ܶNasBN.mD(EaGk1Ҍv9[)Lj@8*u: A9)m u55aSN/z4rHU־ ?87"5B9j"+Uj,aU-CWj2J+˷p”/ǠA޽ڤv#XXHix͕ф0.kқW,v=Tm)zD:jѩwΆ-J uK? 9,(]Y"3Gu^,d.(bv&. * &}EV4IlʮAZ!Ɵԯ.ZZUq`cW)cozoPs\Բ썇뷼ci.o۱Z [qCU?x?8ECPyYїQζ5ݴ.PS Vvҏ aN32 7-ڍu_(a9HPOA׹G/ÞEB PMhS)?Bn+76ΆU:L/nƗ[M`KGcBfP]ѽ޻ y*%4QVʧħO< x)SO< x)SO< x)SO< x)SO< x)SO< x)SO< x)SO_+5 Ӿj^e ܠm<מ=7.1g|QVk +%}!,[vEu99yJn[!~h} )\$𵚫] NH<x׉yEH?]j+?,Ghh&zc}CE+J@?PAM+jZ<^A=H"6ZV)Iœjp^&4ZCAj ێȓQ8;EQ5P4 !G։?oL^&yضeB&WVgOd;paYf`B~헊, M{q@b=$ A@٭xTz*ΙrҝV6:ąVg"phܵDRc>4fvWT(t;eQ``\͛?L\c+HT-^vV>cX>hMѢLH .V6Z.tS ~>D5|zhOR`gQ`: ?%ƒsDӼ I[oCr M~0EFK5xx_5)MMc~U+ !`u1 cԆGeEO0 GR 0VaA(4:iQX?u+DT]Qܵ-fĤQ.U  #Y 1UX9 Ib *GS)(\k E6Fmj5  YGE g;MBR@&eR0y"CХcDc*P.H0F/6I K0mgul I[faiP~4.Ӵ;NӴ;NӴ;NӴ;NӴ;NӴ;NӴ;NӴ;NӴ;NӴ;NӴ;NӴ;NӴ;NӴ;NӴ;NEr^Db Y_ D8!*M2in^%1PO0N0R2T2"d@Q!O߸+/cHb2}٣ /wsr\2EmmvL9s]&>+{)SI+͍ryeno2EAr}UEJ@u3KXcTAG! Y| >_wZ7߻R peݲ1 ƢU%ڹԹ.!1AQaq 0P@p`?zd.SscaG>ajp\eʰ0 DO΁\ǣRk}1_>WH>s/`M>A|78Gbvp}/ okʮw3PI߀HR?E 2JW|) DvpCK)@IO 1"% 6 :A Z|i gP@R-c[4".{Z8+Z{mև-D²NbZ ^% Zs~׸mJ;&F,X:]c̄GM^l5Q7e16:eՍe1B!8$*LSm8Ap( Zk\0AQ!UU~M/H4؋($wid!DkB9Ph'pa陖zܭU@Fb]z|,7ő h?D*(b0Z8PPv 9 #`WM Pat`}@ht+*eΧ"W@Gp| l  bռzT[:(a/8 RiI}(L5 S(u5A0rM7)dσHT͌  X!z$nyE=Tơ^s%d ^AbKx%mnO+#Y:Er8JO"!XTQa7>`HY~w˅ 3l1ZmTAzM26Ǿf4_mfc(ia?E8r[Loj4={%qSiՑ>Vhq]U1_ ސrY,J<8H:\E64^ptV(;!K_+Tm4lJF%ģ 34;.]l%H5 6Vu! @s@5 Y Uff-ԑh H&Cd;Plvqx@j\.C^ac{A6 ͬ ރ+"T,VnMQ}hpeEm" ؛aP sKWfŊAt³@KJBsS]Ϩ4dLy97dtfZ R\q!{Bv;P^Zϧo ]yA uq^9 ƄUR/\(#2OfwK~G?#s9~G?#s9~G?#s9~G?#s9~G?#s9~G?#s9~G?#s9~G?#z3g_=z3g_=z3g_=z3g_=z3g_=z3g_=z3g_=z0BO!"B'GLXB5(هJ@|Q=!QBay+;K^糩ǩs4484K̓WZH?BDPyvbd.*)AF*\H@#Bb`:dnnoc–V؏$A5H]b,wfosK((U-r؏;;%!Sg[H,2u% ꆓKRbwLeeҶk$=yTwJ{耿o-qjDp]@UV ) P+t 7g)DZmAP.["YTkMT6o?ӯpD)uERTnrKLNwdg,-]$B)6|Ga4d Gs`1gGh~^"T pDq+DQFIKj0 kW#b!x;{\nZ4)F"7rZ.⬈5e[Im8_%.b늮iϋ2/_%KOG" ͊HC ,YquǑ/Ψ?ЬZBe05DBլ8$T xiWK эT%@ X^r2OnM2+LQ70wVu(vy?Jt9]~ЬS_@8vk y M|MD9: > UD{$[=ʶ$|ίΘWG6)74sI|hUEN UУy{E2jʇ1l(р4gOţQņ>`iC)hx*>&zI[jnOa%7)jqUNB0Qt%Uz>9J92҄W*Y'XS2f@)A[ $ݩj)T0V/̪T198 TE4z&fľGweJ`ncԁR" Nq!g _*L>Gێ0=u 4py8o`ݽlvAߝ\wW(q4G%VDi i`Uه\Uy^[֭ݒ;Dy޷1C~Iq;:Ӿ0ɄV[؆~.P-pm @Vxѹw@;ɼG)B8iwK2tEA.rQU1X`a2SXЕh8ہfPQȠCɩ/m$.A ,iŠOx@i¬|P<  @hB Zg){fYkC]C:FTi*a:>Gpr99kCWkX)G"4q. wR!IJ; #h]#) ȜuWM#"*b0͚0E,ņx@ƦF75n7M fʻ1-hxDy\GJZ ,>Y9CbqN͂y*T&13aV< iSo ]xRB=Ŷֵ +B % |X#t`I vG4myHے-ĭ7H 1c J(@cpK9B E1ѥ( \H]$܁%& b0j#CaTeuՈ3)N1k:[v*FZ;NBk:ez!gočZ(0]@@θ VuǪC*kZ{@ҚEBR8=i6"ۤ)0I*TKhu5Ѝͭ4t%%)#nRaIHP ;CXb$ 7bf6 }{9s "l$K܊8ͳ;TD\B1ot,AjlCC0Hm<(r]g,U ٌ.Ȅ5fǀ N&7r{8A[ RHSYCP!Qn59;k]pH":J4PSt(8=CtQӼ ѵ3蓯!Sf=7F,atą4 (KGQZ_D*,4M<\ttpڛ "1HQmŖG@|46Ml": 4hb-D6dYA@s8`A`h4yn9:2;gεo8PPO@T#g^K*Yޥ?e"p˟G müZ91kq )6̣r[DJ毙Y ~%1R6h$vhi&6f h&ِ,‰riR <7<< QA`H1g zX4qR ٘T4F^)!x8cr>B^;p+ho5yNU[9ԦɊ) =Z6bs^hb߼-3 \&!P6}tnחĨ0ۉ"Cbqkp hDg &n\Tp (9uh 4 *mQ ]%LXH!~GR1PrAJb.98' \،qYx1"||^/EbΨޱӺ<DJe1PSb=q3D H6P:rM#4{qPs)4adAB A丂"S  aC h[7>Q2<,]adIs]ڸ&a=>֌A+^^Sz<iV!"BKUY [".%1578K !. DuxAghhh &qj( i;i煅Vn"u˂ ֺeXv 4LE:_.5 Q9dpd5| `0ߨT[(lB, 2&y IڠbhK";o Q!U 5M0 n<*߀BNЌ%Ba<0rkOHlC "92(—d#edHLbR#,)Β"? v(Yj ewְɩ~ZJڋtNavg6i,Mں 0@d̀GGH0;zFW5sUPӆ[rd$".! bkvMHDQВP(Z `ɫKT7G[b]ۼRn]^Y\o)&vP7܀HKcG#wgg)ʟ-P ),07$]"W&* eJ nӊ]%pJkn9vY j- D"55c-vJ**EM⪨8RLM͘%eVVDhT΍jH^D 8v,8 Dw>to)Jf hu)(DP39`-m|{r&a8M3{HɯN%RWĘlXBsj |D2hPu ;GrCM.Pj$nL|҆ 5ݘ4 ܸZ 0#&Ha@j3NƚP4ގPJWSr_NVnxNlL>*&4v(JdA@9OhQXp|Zp37bj:LSnMeWL6YP ws霬|I6d!7#ưf`A5_(Ra_$ƄUڜ;a=z?3gG=z?3gG=z?3gG=z?3gG=z?3gG=z?3gG=z?3gG=z??^o#2ax7S`^+^Bntk\Atm*! >j$Fa8]ӄJej\SAW Ԥ FA/8&& @QC'K:\ $%a jK)aw4r0's@LرK"MLXt|vp(SRx?8۠gYIBl&v]42wȺSŻ+1@\bX`+ 8hLEP1Oso\֛4$#݃>å.+h ȡxC2$ĒSk(@9~]\)/$hx!{VNp3-Pl$]E FZC|Q=potډA2kea@5"QZ0QFH0o2@Hʒp 9;ѳ AWg  xRmhbxq{-S^gY)bLN!5l(CVzTB)UᆑāOHMOa&*r@#/Oc0FCe^ëSMPSG-[(Q̡: AAdmV(9'Pst:XjDh5gA?}qvH-~r,@냜/ ;ꐛ46J)"+94 R &82OTG4 ͔nB#ؘ.XU@X(6,pbKd]p^4!F䂺66Ζ+zZWH0 6PUF"$ham,ЅNK6#pI9**r<;D`xJӞCq. UTJr%_h!Be<(cY9dzWdISڸM{ H)엲.8<`ebIAoGz$KzG $ Qʎء3G0GSB(vcec*h!LsH ck)\wmc!JɁܣf hCh_;S PO֧~! !`E)^]`sq)܁+gI=7PlJ1!஛"H vA A&) ؤ`"Ss`P `hR7<)f 26RSwS چR1i&;ɰm ZҹlLTwY4~ j! a248Xf뱆]<؈+c8XaqO}WTL6D-tQRwAwV)Mav,r$ӛ?cK 5!aXsCo_AjAB@ Q{C},́.ԍa gEĐ#C &nzwuL-:V̢n\:Fֳڭ>TrQ 3X5gQ'QU@p !#.I, @8@*7Ro> Hᡙ6N8chj ]AP,'+v@&BBgBIV(8=EN1Ӌ*e,cjDAI9`C o:fPRQ0y$%-+(ra1ƽ+CF4D; Qj9mU豰lhvŀVX7I3*Ѕ v.HEK{L¥*Fu8yP 5d2qIu_I'AQlU/k!iֹ!#{d2Ї0w7r$%5M8|z9Łe@)8㶶rwO9s`=H\֫Q@?)q>~sΩ^i_KSw:oۧg_Z;!%t4B^N5*G|8k6zsNbsy W) 6L.@_mC~ńϙܻї!5rJontfy-2.11.0/docs/static/img/android-screenshot-unifiedpush-subscription.jpg000066400000000000000000001232341462047176100271230ustar00rootroot00000000000000JFIFHHC   C8   /??O>?@2_tiN.sďJAWʗ?j)}e{[ 6eNno Ć_yՕe3emu2f b,l+t#\^녪7xT=r| ߌB!K)ozdy^`uovҎH^zgu{x=p,"ÿm:_@Zp~oRXvdv$t'oxԬeً]U[=F]zeFRKn/y[cV3/a&E'=ޝfWm`9f V)fN} ? @ *~~"2ԽR|+l /bkd9Pw)rA96!, ; eݜ~P/6vU̵M6t;=5Ybkfꊹ#z.e){0[KWNO1=[МoG|_9AnUMo~.oUSVdTRC=-SsO5m¶L6py`¥yE%2|6Z5yvZ?cpj,+gf\g{8v9vc)2@X&<"/' ]G$!X ٓP}'+*J2d)mIAx3$TF֕If a) 2xW)u=%`GL^9DԹMP=NM)eMK,Ң&Ep~ nY"8 Yw 3FPb>)cN)b+t(Y'4)", l2#ZMA q0xN oQQx0퐢|bl%fgN.JWEf_n4Ob@4|nJ 4ǖar_Dm-cd 0L&FG ˑ^& j>[Ůjyu3gs3*qwSgΘ;2:'x#d@ڢzSJN#ku-B,cGI-2-`IQ"G9-2< i8P:Lu`p;4 %3}2$3$"f8|)׸AFvo?GȜ Oh0}bm<Ɔ-wم>O 3_.@\SЁs\T6MzdG^ɿv;`u/[r`YVsԏحmw$<o_j\"G>i~Yƈ{Rp}g#@kt{ІhvVâF2ppg!r &qӲE a%3 ""`,@'H>?cNp6aIYD85  016@P7p45A!8`j׮m\۟mj^dQlcd"m+oSyY6r5ͭ\igl+r+66Хļ.d,jϋ.)z8` !mg`(b)cjS cEQVHPp)'qkb04ʱOg3}?Wł6ybMJle"B3ήm}brSI٩@"KP0z)1C2[D\ʃڪY'&aVw!<C\xӗ9K ~DU.dU0QJQи,TX:hזI2Idž7eɒrѤLgٸ'$XA+^@{l`ڹsjͫW6m\ڹsjͫW6m\ڹsjͫW6m\ڹsjͫW6m\ڹsjͫW6m\ڹsjͫW6m\ڹsjͫW6m\ڹsjͫ#vDb"1]ȌWdF+#vDb"1]ȌWdF+#vDb"1]ȌWdF+#vDb"1]ȌWdF+#vDb"1]ȌWdF+#vDb"1]ȌWdF+#vDb"1]ȌWdF+#vDb"1 zM4MLOܕzXUA6<N$d]k6mv͢`v0HtRM1-'i :BEcgř)#G~9RW94y}mpM6 yOzcхO7@9t٪r 7Z$ۥd~M(k$!xt->dpO4qr=;,QmP u$b@lLOUJr.H8훤L.朳I#\]:8me,ȆHGd<&s \ c~[ibѨCO|q&UG7_ g|mf¿PIͦ$[=>aT[j~[ v*+BMs!(]dI;E;`Jrw/ @V?j'Zɼ;ʂwH2 h1PcVd&ͦҖa# L\r~Dʼn`>G0sc>S7E{!]v.KL%^IWUuT3]QAd/gu>&dxCzɩ%ߋˣsAM+6o[ι*d vMpW}w!:Үa)G=lbIBo5nvy'ںj cku'5M}Aƃ_ *c_yvyxGh?nݓ4h%zmo}feb`_jЯ&y̞EͩKE_!#ھ6l%}JsHFDcL#0' s==Mb>&kMI2s=#L6/5e%֐9BڜX> x ~h$((HᮝY$2 wjr%- 72Ng) ݆([fǶECT>Z.tGh$0\o&5QBt|GJ7֤xLyߦ) #2I2P?L,sC#~Pg/&/Hk}jvYsu x.|I1 W_?k2m򍊼a rw_QyG"Jw8ńkDK[-LⲡӸ)hԚ@Ͽi%eG D<1_W_fu.GWLWÔp9,_:}\G Sj0sTU4pEtVxa H(-Ú:ȮVYᇑ\XM, <$o0|AɳUCvV@Ƃ.mfLsb#C8fOd9Q.FT`C2P(M([vg{=Fl0 QFTU]S$&KIW 2Le+*bHʌTçB Ee[$MkE_Fۼ"5#ml0USdNjQ } ?aN@#躈fWf .ũA qRQ6`<>_<{q{O68SP^Νg@Į5#PDt̜B=*l3 n0rDLGTPO"kO#@en3KtS.S' &me,6Vu _ OwwtAI Nzwm"yˣx?j|ҏuqRzrKE,c|$klE%VBز/gqLΉCHFɧWx n pN2 6z6ҳƞH!!Rf !l6'iT;eJfcvưJ:WU*]TuRUJWU*]TuRUJWU*]TuRUJWU*]TuRUJWU*]TuRUJWU*]TuRUJWU*]TWպ6fuRUJqSɯi"G!*_G:|ٞ.7-f?0(g.,v/!#UX$OgwCJ٣Tl B1!S "AQq2a#P3@Br04R`pb?E҂a[%gl!D^>~ iG!]S+H|H#?Il(G7\g[ٍ`$+6}nDy\$$XXgjdGOOqFCʱ1eaX[Br_Z岶]of.?;z  eV4mWG1JR+NBF|K?®v7gL%q)ǍJ0SilkDYl'L5EL-U|GtuRծf 6*JJuF[}w@/5: %+'5]Ǧ|bO2 7V= .֍u8 QeϒKsoB:\|ՄIxTg[QsnK+8L.6ʚ KI67M qS9})z#GnVrްLG\_Y$u`k8n?mk)ByibJ]^BNŸUUXO%3 F孄bڀ"_X,?%jbd_ڡl=]D1gY<.&қ5Vǥb3aj^E4J^:iF1ؐ~􋲼7}K4K>Oΰ,9R+D kƱհU3DŽV3:;=GP9ԕ$7r1Oi\▃`{V1!8#L(ٝ:}VLmDm± j&x2>I]--~WTjXĤ)BMM)j@gF_ .__{Bc4T.8K*߀?*k.D\ğ MITa{Z!`3:7!B&eYS!IeХ1XN(/-Zf=\p+V#&+eAXLuX 3Tv() xIK6YN`T .1^XBNW-բ~PK[ֱ =cTrhimApyVNImk ij [7.d*.HrQNu3FX2p-)HٮA NZ0fJN@[{Z#en&Vmz'k13XLr!xoaR豿֔armoD̲F)I,?heQTd%\E=JeY$ҴZA/[.B|7j֎2ḃjoXG%֔Gmyѣi{i,co eXF )ShA& =<͇c Er.hTZKJ<8Uk jks\XZ:'-T ٢Y.5-Z\{?tקyTcR1nQ sfUiNC)qdi7K:rBԽ{6kpQfeD9畮5"S+Y\i,-D'/gO::Ju8HYM?9@K$ J7+}mTMjZSWް\Y UrxLr[@mJ%#!L2F=օkԼVKU?XX2 JuBmDߺ'=kOO/+r厕brJܱ9cnXҷ,NX[',t:V+r厕brJܱ9cnXҷ,NX[',t:V+r厕brJܱ9cnXҷ,NX[',t:V+r厕brJܱ9cnXҷ,NX[',t:V+r厕brJܱ9cnXҷ,NX[',t:V+r厕brJܱ9cnXҷ,NX[',t:V+r厕brJܱ9cnXҷ,NX[',t:V+r厕brJycnh"t, O9H9UN*7sLӪab, !1A"PQ02@ap`?rSir]",v$ʗ>HsS.ϣ!j$B=U)M"Ryl"|[lG ʃQ\}yFq 6~,M]XQSq_Ƥ'r*\[ZoJTT9[ VMiO"2Pj<3{ا;\Uy$[b5.F̧Rծ*$odQ{sݞq*#R̍g:#S{?HsRv'eI;M6)^e)%r6̭{8!!5$EEN.YS{5rNVsJ;j•Ŕo$8"‚OE.`($8Ɋ袑%P4(ՊϲfLə3&d̙2fLə3&d̙2fLə3&d̙2fLə3&d̙2fLə3&d̙2fLə3&d̙2fLə3&d̙2fLə3'D(/"$?(ϼRmޗ)ݨCIztBWYzuj]j]߿_Ϻ~U~u;=u'evzgQ"soxF䒮WX  !1"3AQ25aq #BR4@Pbr$06Cpst%S`ucv?wkykǜn M뇂R.NZYtylofZqM'PNOɻL>3Ɛ߻A#zۍ.!mB48PگVܯg(BTrpAo xqo2 ؉W]iH53ySUucmݘe/HS~&`nj=ĥ.u).RJKo 58}P.]V&X%zɈ);R8kmLD>=xL,Sؒb;"]΍^@Sp1PV K푧=VTǂʣ)!NH^+(Fa-j@tx3`̆Nm/|C/-BBw:bȇ%>snI#ʓdxN-%E* < Vh=&J͐iԥPϓdwѴe}U5KhZyFg#ěUf)r /ysh]B"YMF+Y<֑$I:H\}{dOTt[i%XpCʠ1*\I:J53R+Ui*~`nڼ*9ҹ/*ϏRY^͙LpF'̩Z. b\JN<lӡ'ggqRZMQpj{ąt.\[Nm13Eǜ#3^M˔U:qx?V8J*r5+`?@ci2ݔJ"2{iBfRT)6Vn+J)0xII? )Uvb%{7#12e9B6͝F冷AUZErJBorƒFRpG]~)ei)^+T(maC-% B‡f+T:d[.00Se~{UES W=Sx*QxCV\մ~cA*lϴ;j(TuoRv?MT i1dRij sm+d/VqޏI6i yAXGY6NNuX4opmK}Y8*kg.kǂ8UtF aOzcqb;W68Iqw8u/ R7 Rj*.P^x:9ĶҰl7c,+Hĉf$Dg9k :}םͭ(ɘ00nwc=9_. W ($ʇ) **lR$LRVVOmgf | k}D+ۃ&PN~*e›^ʕBdCTG:eFFpZ{.qDFKnakyJS?z!-JC_8<qȪ5؟n>WP<2HVb}J|[$^R `xa+BpGQsVN8Uُ'IŵHQvg:j9#I$8a Q* h'~ = +t51UX\6h}@gf2$e.VjU!J=ߔ WJR#y̼{U䟒h8RC88888888888888888888888888888883 z=LC|!A>Ǡctτ1:g3 z=LC|!A>Ǡctτ1:g3 z=LC|!A>Ǡctτ1:g3 z=LC|!A>Ǡctτ1:g3 z=LC|!A>Ǡctτ1:g3 z=LC|!A>Ǡctτ1:g3 z=LC|!A>Ǡctτ1:g3 z=LC|!A>?2W)4jV-iiq IPGTqPjPbF5{kM_ko -%ڍף䞬%ԕpAGt:I w++|ecܯJ4GAyIړ-IJe\((õ"u AJdi V<N*+<\e/g!)^drrUGj-؍IJ;-h6X;}X+#ѧy!}bR&K+lB'9ẽO8ɹ]BХ%7N[N^#)7d{`dt؟UqhYm0ե!IZ`lADŽOke)i:9'3̇NRS%iBoNprKQkQEat-s g*MMlRfE"m5d?3bi.mWYԄFKr1Rw`Zth:fN@ʔJj4:yeӫKH ;I\N)uU # \IHuuC'Tj#(PEF$PIB b.%Zu3}1`\PA#p!3\ж%ƔN d6TTI 3\ZRrNГ'~)sVsJ[D;U%(5OV'bJj''N2;c|13o,\TG0V6KmBmF"]c% _. W j:q5j$rSլH^+ٹƕ+kh֞a[iX;eÊw4U~Dn*\z(%f SqM,H*ƖܑpIRH\y:!*"0eMi5Kl,.mVÒiδIBK+Iٌl.N mvf*2'<r c!)P &>ctV*vWj؝P/ț0w JqOTLw\|a?]33V[5;:);SK7RJ@`5s?vy k\{A1ݔfZoh^ۏ*}pVROvc#5QS(q0%:YҙykSO Rj @hDLۅŎu;5;*Xl<*&Qa1E[-BZrHu mkaiZ9RH-FRik 5'vb%U4zE9%C:j;cu(i8RtR[vSHOV2茇'Ğg[J'uqkbNKٲғboۉk5y-(NaQd]I[EM))x,5ɬԢ:Sw-gBlG,5ؖ??2O*iaHil9nn|PvEI_JE1,WB[Km娢Ͽ T\dixpY*PnT:E঍u֝q!’dK+a:w6Mb2>,*3%• P8v߆)ܦZMRj<ŭ6#uG2Dϐ Ï71Lj1g![1UĥԣGj&*v̖%ō ;[@)笞ٿ"rw'\Mӏ~4wc3_r9Z#ਪ;OaB.gzHCbyox>uf=i!lԤ42BY:z*,Mo,I*Aw:U2F<W[Zy  $O52A/aL٥ߨ]}Wnf̍Rr$9Ҍ< jV;lWWVBRwpɴz=⋞R\;XRδ%Ѱ,\'im![4e>kN+Vʹq٬+qSJ cK^oJdt Z62t:9+z5!`h81ħ}L[B!>ܯS\*ݔzfl;C#P[Di_擌Fc"q[]8C;~8jGʹٵGCk#JdͅJ5.<]J}xUqaB{AB SLy6?TX}&Z6Gp\ˌr]rKqJB yf? |.Wn~V/ bK-sT[I ̉7#2~gVf$jE)%(r@6LNa`ҙypq  HiS `B-{SUV9P&Tmк8(zGײ4L'8qړbEنi٪ ͥRFJ̹^Uv:6l#:}\1W.y2cDoKMCk> 8"e5:AѶ+(tNRAHݏ .MS[k'<6GrA۪i.-ifUh(K($<ߌ*+AyJJM{pů!GWzϪ9pD^XVϵqDNM- >^C'\KOSeDcs~paϨ aKrZVT_zmUbdjl;! TuN/>W#HА}+Ǥ+ozB6TG."ǹ8b &S+cJ:Tj3JA~1֔lKZwj D":\2ڋK)V{f}&D47zBO!kMnRT)̾l԰9q2zƔey8ofڱ%TVi_~+P?ɢ`l:PP%NnK"Fi[PGfvD H%Klx5SR伩rXRJR~h׌Hb+]X]L^߇u ,*->j^&lyvҤKS)[a*P$nfչW\lM"vOn,6ajjaTS_}[rO )IŚBy@`:r6iu |yK@Ғf#r\7)'TS"r$/j!]e&QS[ƦiӡnvBR2L~wE۽qr뇔T%dž N*ǧ`,zz&Nwo]̨!#f3~]T >͉ >h]Z%e_M6!p'~&E^d9L0m[3ne>+12[kvM݊%}nPN˔h͵hKQKHߤo\×D O=:V(v|/չtrd"cU8FWHYO18ҟdeyťB8J=z+N5|F,!w_DMN;uzžߑGq'I .Ԥ,vԖ#8қ#m.l[iRo"oIpNeP)i\GwaՏWL u^D9i0HsdɜevkNfZQR>LJ`- T#U?nSAzTT+wPwucAMc1R nL8ҀlIv*ТjYg,\'Ěۻ=:<Ex\LW*҆${RU=I^w9oⳚsuq L9P y)関]X9WDOZL^<ͳI`oʔ? e9Fyz>p4ൕbzn͜X-4jct7:Wن2 R-m%jL︦٫M<.uNFD)dNuJbr{4 UYelꋌ#Uǫn519ZU])nZna+hR{GvTDvВnImJd6[)j%6eV+1w5&VJmՉ- diVř??,?]Nb/z$ܨ6BFK7cZv 2e$V T#M Rչ;7<i3T)+aZfօ׶H[KUj?@_K' dYS)ڒ&=^٬<`"]cK˕f r4]΍d[VPKOE 6+ 5H!P(Ck>JNZ,"ؐT`)*0VG-b!O׊E=j%O)̅"8&Z7@}Ee)lsF_20jl?dN*]sh4OYlnB:gh [RB+DtUuS)Y/Gf"flntpu?QVfz欦t#SS{ɭ۝F\ma\iXDf'R)Bf^ZhUOmm4> a)D,1 "1Hl"ō-Xk'9RjSE6QՏ>D⍝.FhĔZ'z n1oF*]:.a.:K)jRmd*<3&^OZV#XMkM͓Ǐ6)$md;zCIKբ޻bB=noQ9zHov(y&t*ɋQ^%I7X7+2dX&:_o[jrV¸֣+Uॴ1v݇Q"1Il쐄jQ?*ꭥ(y:F qЮ'˾0֗ R߅G^Iy]=g ucl6iP Qm8u#لgxRM.De~`NKAI^6ݞQmZ5s”>t g!KJI6Ҥf6U7/%7ЭbnmeJt Me_9%:^ MڐxQ!"QqG.ٷo$;yuf;4\现7c0ƙZnCVRo̪C-ɍgm…97~KZ^{ s0J&ժdhB=OqIMlxVT%CwTKnEu3t ;'ODm4^[)եVv(R=ZwJJJ<-'ILjRԭ%_f8z4'166bդhm8S$5#ʓ/r;۽[X=iqz6!*9n!T"t^NWjO'Qc~Vq\ 5i):oS%e[k(?IBBn?)]H[j*G0(:&ƗV,8}%;]gد‰^f-:,*&Rmy=En4 0iLVHRMy޼P9eEJ)fk_z'79Z4[uqJSG"D.G4)'={>f-k_ufsNqm$\v+-e[f. m;~C䟚nޏ<./1*ĈPTRZc2Sh>P}-k)i_]aJi1 E"׾(nҥ": #MAAM&q*EBrUVA)4&v #_f*veL>F3d޼B˖Ϙaqsv+y&vٖC9&ViP=Qvr41v[E=[y^tzת־fD6Go;￴aT'-FBaʴ9J!m`@ambjq8ѯWq|V|h%΍6M>9QAq,AMߊGR%^G< E݊Qrǐm 'dodWoZS ]K: Hmʎ-j*?iMUnjw$QipV{R)Ku:tu_9IIY?@$bEtieK5T"JGX0JG2(f'ٌ  G?qptVu?]c JaAl:֔Ut2NbGzKu9@nM "n+SԨw}~uܩϿSjRCWe c+Ug6[JYO;yr:M.ie5>9f#E6jM'~?h?"ӑ[!"tG)q:]r+~ub7H\GZI:Wb{=m )~u8~AkR9֟݅!iR7F0!y+G"EMxӁ—2v毿B{Ev-h+v+َl2 H

      :B%I"㫻aUi6|Ԥ$$[pǔ5c'g0FZiOfiq8K J'W}g.!1AQaq P0@p`?!,7PXd x.?B%vC􁙮-b ,Q_5d_ПqT; 1ED'r7nkԷ3i2X"X?8/Ht}2ӀMƘ/v%bq Z t8;ls,)Cd\o~fF  ?% yĮ]o˜d}<]`}w Ye;IG{*KPU/7(yL'ʞbb@oP==+%\q Hщ*Xl5~S=3F~c/Nb@߫rN8D9U&*:>tJ:>z:?$L?+P͙(\*2,& +waMvD:,a|>-Z?5;jtiK^'LIh3e0c0fTdSʻWB2^HUv,!Ǯ1oqr}7[WI70/мv\{/&U9yg3kNyCrS"=?f)pzL9 8p1洫6Gzp w(Cx`ocn%\mx]DžI[plL#,Q-l0%P얽۬|<-_$٭b,M`I_U*jiN.|SX/Wj,aGp[}L,cW-6݌5̖-Ш̉5X>T88~wmݫ{D?)( oW39qr~_]Awϵ>S},x@\}gyo1S}%sEMyfU j+&kN2Gz/l`2TKK>Xx8{O736/lʧ YqF.VVE3u"يUXwȔ Wz/75ws8^db'?z=OVywF|G1y<166Ij~Ej?b`=' `ck\wf ֌eDwo>'< Ox'< Ox'< Ox'< Ox'< Ox'< Ox'< Ox'<Nm FX_1roHS$}x?Ņ_y?}h` -OȘ0<'T8|+M~-k+0+( @W+lhcM3p ԬEkV- Ky7@,O|X̬؛g&ZrwHI8*gֿ6dղĐ/44o+hAei3^)l7חXn{`¼V$EB .A~FS ȑy@S (l-HI-\vVqVmaR:^_;> cW艔Pİj[Q-8èseM^`a;AԊ.~pug> :M?0o7 2kRfqPipj <.ZE 6BE@LCB6vT׀(*# H5g<Ԫ_Qi-eV2]g6:9jO Ί%sFiFp n`s>j@fQcCM˻]?ꪓkÔvs<>#CbTO_G  lRuA@ gD #؄dV ic TA5(@˦E2^ktŊy(VX^ Uh5^rТHn*DVRg(jРy\?i7L'b|՚mc2H~-@*T`/J}8Y}E _<[ɃƾLymYCZ794T_8(3Fĕшbzf޵ KBc:Aݞ3+;tx$dh !WF:y䡕GUSe Jr#EXX F&9+ h]N3o_ yfa׆:#('b=P4_B}xa> x#7UZv (>m` *)JTj'ioa@{?vL pC V ^0 @mY;3nkoB޾Znk2ΎJfܔ"'-4ӆ\TH0ia)(?4O H -y,)_Z|RT2.KUPC9k%Ĺ.뛒[ ^-C aE8ظDxp1'WF9^He2 p<TxRNr[K^7_ﮋ=F ,=gBQЌm.ZX˷FԎ(6ѕD-R0kM1"Eyo'a%-2؋(zǤtWjsVhՀK1n^'v8|:Fp YU*>g/mYZuwcgg 8?1nUajL% uUtrKz䌢61Jʉ T4W{ID7Tեʌ݉u zs&]+ vk7Jz9L95Ѫcux[T9]36qVhz{}љBL-Uno'IAM'cwˌcd;`ah/Y&pp+~Gn3Gid;Z]nE $0Y(0: -g"l+Feos/ޯ5ێ r {eq)z6_pL [LuH?Y( GAhHf܍ʃyB)S1plrZfj,qxd8|q*^HV\yg/Q T⸥# PHap,VqǪ}f؛P'A7Ur1m@iR]#Bgd_ɍ֠ ^0$DD'Hf@akt܆"lGOP@V`hĢԉEi`CT6RI`|*+8uL$΀f)DLI4*Y[4J1aq٠ Ŀz}qN.-5d:٘/ʊ ׮zTA@$ 4qґȥ=Mv*wNi~tͨDpYO0&Zy(Z/* hrZbQ B#C E)HLѩY!Ct#KE]%ڦ FrPH#3AUvAu(ΓKr5LF0KgқM EW&H EMZ7LD}H^tҕl@qڑSnNl@@^y-Q8!tK ,-j,!_bYE;3j_Zr$7C0U;>l7bfW $L5k,pV7\K}?qAz~0LB~3L 0֖ 0 BSJQAN驵\v8fcEcbτQ}*4K QT  #T M‚ gAEݞb` jX|ɁblB/%j eїZ`3pDM5Djr0Bp=CVL.XNg`5]߽KFH%ǩ@G;s Nz"d_Gah"wJ }ti Qm;49VGjˢydQ{m:d]D|H>{Dx@cF tLeVVD;ޗ2QJp*UW\ p*UW\ p*UW\ p*UW\ p*UW\ p*UW\ p*UW\ p*?WmcV(вjsDLJ_ GNV6~XnnkIĀUyp&Fb _)Ó})@BZ(@ܔޜ,y|HR'ϐ'}U`JJ޴H-k~)h `(Hu]߬гR kOEf=`%!a1A PQ0@`p?OdXeA̯Ǫ>oּT`7ܥ yxJF[#}4FT8*7&"B3p3-)%<ʴeE8'4jaQ^:ύum j0L-x-4.?QPL#~K@(3%Hô`30`S LI!;躀x*=ofqBƇLNa_LWlXx1ǁ~!6KhSgH4.DyRLdψ(J1D}@ /؜鉩 HqJ4DajC[_W,Uae *%a82'@[k@ q +gnnnnnnnnnnnnnnn yV$!LG^r%4c}>6ve2W^wqo媈g#ql^Ȏ1m_-!1AQa q@P0p`?B0P]o=2 eWJ\!_'8s3")ԃ8QX٣$IZ2| %"p8iU)~_)gJz `#z4Ϥ*zkúP-ϫPѰABA6*:n?> u1@0t/i?Dv'\V$N.ΆGuV.n:ag.mr]h*@RHPM݇ *[9_H2i@in"|{! fDAJ%Vissph!x** CN%)P@zuGNAPf,J.~2"k{HM8z$pG8;hi"գH4 -G ^>y[ *#_HȨAqB)E;Ŝ᷑D jqFm#3W)qơP!K b*דH6@ o|P-mV Tj|Yڝ&í\ɏ>\Jpr B* cTZ t !d,f?3ѢWJJ:;לDԣHL8FCSZFHadADtP#K[ZlmP` Hۚ, )ŧpp Q^h ] ẽNqrd~Q4R,͠'pN@Բnm-U!ْ9p$́U; wF1i0Jhi'ij9 e fgX K Z^\sU KD e)t5 09+pxm` =@7nFf%pMuj;ӌ]VX"1QDU"l ~@ ~; p1u ޑ9d8'l)/y oaA6b>SGm!bT `$D!ucIɛ{T=Lt,@cI׊8LAoBr%2~&PjqxH{&6A/S5"|ohn.M{P 0;ç}!>2EK!KpB*`h vS$>sF. -+R sF< 3DTR3@TGbF x$M6=䤷6B>۠FǏqHv ,Zr&hw bbSa))wSUɂ)9b6% exu*DMu'>UcJ>tsQԍU$RW'-Xm* H$}DŢbν 6sPNЂXR ߶߸dڍL# (l`Avu)>ZVް| g&W7"DrB)\NDGfbC Xr<%h'  BLNqD((_aS .%Q3 Mv(sEIAp| x"Qň*=.L򥆞C+VAՒaBkrdWuOcI*L0SX,c*"iTSbSaϢoR{&Ѓ-';Y\ =3{91{"Sόz!IT!1a"Hl}9FDP lo̞Br B,| ĥ6k2wa("B"-J9XP $~M~GtLH&*Wܐ ַsr)k?XA@Ԫ×@0aH ГV'}d*O/'Йlc-/3KBաo( {!W`dA@D t]{RE\GJ ?nT=REQrrh[]e_@7Kuf۳W޵]¡<޹=}))k78X֒ś5ۧbP2@"|apm0.E=QL,vvW;]iP G0@Np$8DP p$6-+͙i IC3{m=&-h[>fxRT:maS |nu<  */Ziw› _WNq|0] ݪUUU~<۳4LX Q4,JhU`|>y -~lu (; WLiR0Um^\_J,s5tu5Tj3Y 0E jsx=,ݰհ큀R 꿠z3$޳Mk?־$@ų`{a$"iw`-CW2w~iARq=QJiV%@ѓ{1֪M-j2VU@ Vaѳc{p0~D7:C9 D ԧ53[Dr8SY/yjF"DjM7H_I!@x:PԌp%Gp#8ؿM#J7ujLU7kJsGE),GS *C|'|;gY Vo=9 \6.Qڠ6| -?&co Ӽh*GjoM#n 㮛 cM#@tp4>Zpqkm\ $o_49å*hQqCο@I Z:ˑe٪"MbHƸWdK]A:j,r!1E\,yBoԂTeIϘa\ZRYz(4'iV t6 @c)Lgeƙpۣ^H KY\ZSe9BrI90R`;P'$>bi&Lݢga),+CQ0ViNR6IqDL:ұR0T7 Q5]mhqPKKpH/Je~z!zVi䀹6ټhLUnΟuiO?gk e q0J(B=tW60*OR R񻀔Yb˕@)IkleB>P7G5`PiV}%xHPY}m9hSG"SzPvrӧ"bR-}HFIGUPjUHfA8/Z ֿY$ t4R6c`;T,Z8T;F6IJL;CZ.%]~G_C D|%bFC8M#qe9hL܃kŠ&V ؅BjS=ւ7'P D-nc9<6ae@x.in!!hJ(:U0TQ(b̡7hr[2iZr; Fdqux.Фr>m4T4 nBW9I\qvjj`NNspI54mlEv`G'k`"jcI7v4B …ݽD)TU:pPR@w/E?wu_cQ@[OMbH`H8@[LƐ#ƏZ ;9H" 01\êW*(|^vt9bߵ$+.d;pXE~u$GYiXAI"WEAu:aʾn0 cȾ hLlk`-:Z;Q +DA-]GR>iDڏ@ft.6({z =s FlmI9K[F=0P`7{mI \( T V$Aq2s(F QCja +WN@_"Br3\Uؼ半Pta]p/`CM/bɎ4*"дO m^׺M+:~QZzԧi OdKJ~ykhJy-ޘ(_}DQ.UPSÉkCCu%Kka5m}jr4_.Os-z0n"(hX{H I#^vHQ( DZP=mhhqʷ0Ol~Z=0  &(T ?*?uttdg ;X u8B[zgXdm옘 a'|N;w$IgW?\녮<|83#cɞpQ䵳==*9`j]IYmJ]h^8$:k*ڡhzb 3!-QTߐs`h*[ )9*>$ #_xq97=> T ׭n(ʼni;CE˶iΤc@^ O0R00 55y޾{8g13??dq}!Ɲf.Z\Ô\tu'6zDLhA4 BT(J?t=2CJwM,V]/u;M7d]?p.2rtc.Q5a;B(GFK,W8nP;S 1_ dN8&4{+ޝL?!<}8bM av:ċPZ%NÆ.ö d܀ADaބUf}W(?:aVJf"jjq6Q9}%پBqER{JEPL!+bj&s'!OEZ\H/FwtyL>4/D3SgFQ+þ4J©Q%T;F~;\uTkO1Ԛ'GCS ·&"ݒgyҊ9*I,3s$PI- Bbԣ7?.y=j 69$h3B MInGX הv3M9h~Vg-c{"91A;@`m3ى@%1a>>J.>1O/Pоqv[KOS_M(>=vzLp|ẨMh (Ư(eSyYOfce;kJǕ < w^uiOYGW%ň2Rus~AvN&0F[jꏞ@e}d1w}c㭙 ozG ^SK+:8I+*R~R>ucMeQ7rJv8\vB.1K ߱In'>5(y;"糳`7=@`>{O\c/t>ʈ)B (tWNy{g%y5s=FF'۬)z~d 3U*E"eaJP bAJFGj,jeR>~͕䧖Cפ*ۆ~ y/\Y餡7 Ŋ"W@`4mmjH꞊CXq=ꡁnЕ4HqP[0U @'Sj⼶+6ZLr(brCCo<櫳?*9Fm !oACJks0'HhA]YApvXU{U,0ć2׆x\/+UhJrCuܔ9Gۙ>P'KHiǐVۮMVrLbƔ!˜>7|#F< _sGMx~߶/H.*8Ǎ۫}r%$E^IIqK%6|J~5TiΧCөט&Yё 8v1NsQ/|+}+ d'91![030ēŨ<{'+C4^wO8I~]?|-͂>q<_h18J6t-RHp=yMY \d{Bi]dsDX d%afU~X UO~pL,eK8p1iGjC֩Xmy+).M#N Sۄ5 :k~Vn}iM9^Dis//G#FQmwm.;f-f2yk+?2O1TpOfTzh +mn"eJgډ[۔8f9:ת#{Ezn͎((˸pژ U}1-qfa,]> &Ŕ\Sjlpb+Mȋp$kyXr2 x]9Z*GϪ鉏 9WPYuD4~{V7>l'?)lFBY+nYKLx9(c:XZ {& !i%|?0Dw0@MN&BVnw):.WGhݿ88O ==P]b+4lԢdxmX/oc rhaR K"p1J2.z~~Dۥ~k.6vXL{AqJH o$R-r!92}gw J|2vwe4̹C&[lJƇbmj)@}4Cq~dI>$uX ¦Z:l99 <^D._,@>fœAÄUA([kuAFʮ<r[%*O iެV}}f6oF\dC$G+OI(@J~p +cV+txN2dVf΁Ҹ#`tkC N\ K^'4g Uǵr e">RԵmfccl ` !z&XgUQt-fSv&_&X[o'0U 5u΁Ā:WeZG<[m6*nW Q+i@B 4a%h(y3VP6֤6fC?wx.!4G+f<9Ip`/BqtM!'C][ (IcohEk9ы/k@6GHD*ka4szQtXpD=#o՞,5(5g!6pPV]'}iZP{EP?{9r`8ds}ac̀YΥ+L%w `8 Os =sQep^]1()MnљE!) f1f!sBHhL3`_MS't)g613lF'``((JO 6+$w_hSa;qZ/@s7ICh`̾Iqmᇪ'\ ;?87rֻ>?+)ٸ4=n[«!Ɖ{G/3=^wEϳ-z-dz&lg!,i6 |݁Vϫ+VdN!9󈪪?3}+a4y3"U-['(vr ?c*ΆRgEp1c~BA@@hᵨB|Lm^WS-h˸{S ޹y&V+e 609bNc׵[f6(Z!zЬH҂j@>NOwڴ#4]lݨHOJ(M9٢8CtG0s0t$#q#M}`R0lg@: agZ)h n\8aj :RAT/zoy V{y-*c8bt#dt#wnpfӊۓm@b{NtiW0n>rʅ$mY|R)sr&[L2%N>WX\{iF #.Qm*"sKO9'J KCUȜEa~%41_?јt2WԏiH;A<VK_$;w{KQk44oqBAKn9TiY<^H}wde-KY~-iBgЖ'N&2Hceiw{,Uw(Am3I %SjhF Exϱe0 %<6EVկE  c5\he¥׼'Q["DȟR ? ?XHe(Wh5ASJTz 'TOS$1 ~DH#F"&3' CL svS{F ˗1㠙ڎO FfKxڊ5KIv1u />wh4j5-wX4 yFYUExӧ…{r~(Sl < d߼gi=M-'6T% @@hMe|Q䢘oMŋ G e<^dx,>YGZ5ExyɛyXđd 0`h,!tQ8 T+Vlj8/TSwD+j _j'geW203g1a+j)#vHI6H̶9W6uS#^ W {74?;MS({t 3LA"-@]g"X1JIag.o`091&9 4 WD lH(k K®rhY" W6Oħ$CsYv=NBEKYZR6E5q(ӾdٵRDS[={$&ׁeh&f?-!lbEaD7y]nɀX'a΃;?frA XsЂ**L*P\ wx:* f̂upz^N糽bײ=߁tq1#_,YobnlW#X̌. A*q?Zi ep4ke]4TF9]&*"824#VaXHAĀX Xėu@Lb] m5PÓ{?O #L 9#3Wbc)筬|mڛEe.>:0hl.1p<@ߖ<]Ş8XB&%$y_KCVZ5@BP-( j+(z@~ʣ/s)0Nj!{&@6C%nw{(\Cyv?BHCypg<( 2Uv ݲ3Z9t2DZrݐN`W~!y3j MxH`$#;iΆ5An @}cQ D¤`{bRWFNAK%dd^wChz&ՔBW$XzקS$~tWذL[w+;N .'YqeZ#QObgz'3hOYFdž}$1mEKF4wvM,7Ka#xSuUx!G^Tq٤RT3KȱH@pŶ)mu| Q0p 9gD8:+0W-:rHۍH=FDţ@0j9 }QN&WMKæzY#dN!Qꂖ*H(lQ/[n<ݖ"G#<bk)8]x,(_O>ްԞ J~*k{-]Vz:g1.rcnq6)Xt݋wl'?B3W8jGiNc&c2+Q1zCs)qмxӗv#iss%=06b>SAj!kjƅMүT+"6pJmJ o וG4̈́$ с*nW-{vhg (|ZiNa1|3o``vqo_ ,nqTyxE|=NFJMz?6#lL^ S5ro.)?O*Љbq˹̥Dߎ e\R fp$} ޓV#:n',+ʤR\h=ryf ذۦO42%+㕷}[I'Ф 14 /%(VJme]?(+GV7&Z~Mc-1ߗz'RV w}3f6+MgKRfE7 tˤ_{/dPkVмe tvSet GcE5N@}k<JN1]{oKj蜃,K`6D)4BQ|\J휘T!G S Dn&K"[ ̺"0.g ;9^o+ҧY"C9yf7,G7 = CAhe7h߻--nw:RsLQr]Q^IJx?f5*U] Ydv\˧Ot#a&1}혊c/5?A UFwFFe˞ Qϥ9#Fj3-a1!sd'-v C:J4}G J7 xHo! rOYܸ/r0l-0>}X׎ɀ }~ : uŰC\[,vΩ@lQ&%x/bkc{$6"n0;JEq=2ڵTëtpfF3nǔ cN(J+1Fۯp̏%QpH e8.׽Rz*#~m,ۓ/%'ś99+)' wVMƂAcp'v+Q ,mCK5KClHd琓Gτ4=S0p6MJCw?1~Sa/OxAݔ,`L&M(ej:AG9jZH@I.޸- 832(5I7"pꑟX7+Uk^]a̅QCFoc8)$)Tb9llt~O ~γѬ}JFFJRC~ZٿhtnMksX>Uʸ\Z=Gfۭp}?jCJ \MSf-B`FRj[BA䫗) qw "grxc(Nc/O9%Rmxzғ5huk.;R6(4I=]at,:oAb-_ {cc"Z>@uYfoLl0Ƙļ 0!gm%EemfIK_y'"0 ԉ>H/;fD>*120#0ۥ&+;ٗeln/Z.<J6RAw?iMcڎƆfvf~|jZԌ1Stש>Nj}ԀT̖S6K;Ac,) *Ms"9ul3G6QH %).T~hn9{&ItNHh e.(Sr f)CZtI.az7ZR{oW@~?7^P{ɩ);ii9Sm5_`ae4I G( -r:7 !`-_G=PaT X&pEZO|;Fs}rz gx?͵YB!٠Rb9g6+jw٘Cz QAbeP|^7BAX~}\A=nXFnbrfN}R;;^ݡ:.}*6v;$ q/}ޤWX VV_zaD"dg|v4ŎF~xc2.1,>;&{80=|BQiO9i!:0__dԷ7~(y:X/muɾI}3Ԓ팻ÞB61.@0ppT@Af=g?㊶>B0P㒶![_eb_2K\l8OSf'.?1t/}k?־_AwM%tJ֮> -ΪOF]2?K:-*+_|NuJ# 5\t2?5[tEd]];ȷYwܞ b)'V Dp$^'=|Нo )QC7#F#|%GpUH]K~RX~aj㍰CLT3"ͭ'sA[XR6S3셼 $ϘG->?(:Z+6nB9jhe謡FMjzchNѩE&/+`9`^xRfC AaAݡ*[crOY^_-(n)bE1"(r$Cm%h=o9d-s1`SIx$n/H0JI]UPI?.Wb55uΜe4p< o{5C^b-F=U5qbƓ]~S*3<`o2rt'=Eݺ{.l!$󩛚Sǵc0^*}Y0`mmq]>0$ m";b]+;ɯEgo*"eGyc|&U0rD]3_g(UZgIq.JQ XPR{ F~CE7Ipz_8vxdCZyXX$&Jdg-,[q 0+ nJጢicv-;><ptЛ 2@kHY) 7P^FvS}p3b1VP u`Ҵ-"ДYvEOp,6U^ɘZ'4|Ql9iLanA>N`Љu@Ngm+ FG]A-(-\K]VTlPr& ĕE^vܲ!> |g`Ԇ5߷Y(U}lu$OCmZN# epڍrD?sJ~ s>h\Z`2VbN=)q@A=aPd~7>=7$b~:OsbQ&ɬ%Ovgpwi0Y>=QEuO~Aa}2hzXMXz0 [B1+#?]^ž64pj0Q& {*%zs°? ,ɔZq|cGF.1θPt0G 0v֖$x>q/v}GL%eAbo\^FyVmXJI& ?dpRӮazq]h(%^n}CEMuȍ{ EshN7%ťݬdZ^V^6C7<=_Է:(8WowFWULx˴rϹf_'n>i] ៊L8MHvj%=2ŋ ; XՆ|+]((Ii@۲wAo`T򽐩wj4rƒ HJPxV1lhM.^P}l}"=V\}ׄI.?it05Љ}Q{Vga\G2rKf+a2me&F}I&"j٣hd$/ISJL[3rRv{ Uts,jL6ƄobD~._1y<7SO|}~o)mmT (Aٵ̯#T$ f1/>@̚nS`:qd58u|PTHOX`88'%. mYȽ)&߯HVɌ3 w@yY1_K$o@,z|FO{nBr"2FG/UTDEUQ(q}iUӘbՃ`ـ&vX8oL-ėI)\Jhe8vc9-wč E70mq#:ѹ<P10=D[v*H͕>oM#"YE]<ۻ -gmыC9ޮb[yGM3P!6{da*7pL׆#Qsj{&5e~mo# \a:{ oynK$"P>bՠ|6yaߍ4+FףXDn)xL`ȅJ)_bg6~& kAz-\"t=b(]~t_1bPr>kfϋ>hفκv>zDJm+[ȧ#&VђR]aػ{U͢jnIw1>8ਲǷFV}scO!e>g&NۆE~Ŀ0ⳕh3񴟷/p1٤`O=`r&H 4`'qB*2=trYx<-ݗը9 \N؃AH;U~Tp>m_1Y3(ˆ1vixǧhx8̲+^R,yz)$@{,\[)xUbJCm΄2I0_gmt}qTI j[`?׹9^թ9B*Į!dz CoQqePRb[x{s#ߓw T-9QtZ'CJA+~,WIU OzH?=w*rHJϐ[rbMUh$5!(p׆:ȅUP%&SfLiIv4ګ*IV[[!{Ri( F6ۊljsW ekX[SSWT3]Zꅳ^ú`V 7Xm<$i~)m}prήfl~zY/G| p(,N_l1VOz*In3yXWua`׍]x٤>o<*nS 3?M* AqMq\d}?`m۵w0k\heD/s)=^j[{=آFmGc;E9ź=Y=W%L< 3<[ ;}; i3wE-R-EGKXcD^ ևj^Ϟ-OO~2mF q^߫çҒlj+[Gv 6o(v[h jXuw$4+$&=&LB!HCYgPH;ӇUdM>lzM+12R{H%D#`;f^%XUl趓] _k>eLb v*&8Z6Λ= NwՅ 麡&|םLj߹IeNɘ&Wy2L+U5n๝|H-ç>^/ǘ{Q ,lSJ;H LF5gl"`#V8Y`#{ iox){L$˵+beҁ(O?xT"Ql%r?iH$kRG_:Ev8Z,/ZF)m-`U`$y ѾoѡN &EW sHlA@ޯnѷs ˃D3Sh>4ߞ5]Rg;ヤ֕6@Hp/oھy;TeHNA8E;*<:P\yl*F xxNyC\ׂuhBDZCJ}`!}, Zuۗ %O=NR@M'{]AIɀe_-Q5+>Ѧ'E6B;W|vƟmi}^(UׂOѻӴgaq?Ԃkt@ ,]/G䔂A}!Dj|gQ&B$'ُ/]/*2ǭ7C.y/SIfIrXZ?x)zjhU jUT[Ur,N sLxP^{S-CbtTԟO7hs6|m!ba 9[f弭*IwG(O4ys-B i>~̐pXzٹ7=d}uWMo8G8V4Chi nkVߋLIgBC:G?fa4 үC1M%2SJH@ޫ3O =qn|c[OL҂DD\ 1jv-PC p LK]=ltr-VDGh蛆{^ ic?$IC]٧>%8MBK*+48s?f,wV[l% Mk~aJƕ8e ˫/yD#Hʬ^=Ρ4 ӞJʅ07}rA7{ PP#n{ mud, z Z[,=H‹d"kXYrTL?}6/bP7`r˽"]ʫn*f1D įqHvlQ$4YaBQf+YZxzl5bzBPZJā^?V ^'L\n(47Wxzn~ ƠoqƿKi\u³Ι1α R2- Jd/RI8bZx(RE9$FJ2Q%n=}s9lcgϕYTᐘ:Ƹ@B4dEپ@[麗ZctE5E.n0rq ;a#cy=p){Fw膲ukf:BddDE1b6,HO@bb8K&qeJ3\W<:E*;F,(y1&ѩD=LKv:GA?2P Ha/TzZ%`q93:5Wq_[ƄªoWv *IUjs :FW TX.ȮQ c{HbFj#oIXzj̽7VKjN:E=Y1/XԆ0M,I_W 7+ IJOc(RvSlx@z{jn\'Ni&w AK!2d< %BIQ0ok 'r ) '|ڸnməM,L-O}imb >} <Ոk&bv-Ou8*='κ?{gVںgKNx=9F|<(Cb+9uj[y#[ "#ηCF J-uДͅ83SlR~\tyOS~wxżT'D TPs`ftl7ҝ^o5).j(>bU%4VЩlMbıgy"{ր$y` l,j&VxOx"OZIV Iu7')@_"ۊe:fimHt~Z7(^q8}a_wQB+psAΤnC366nbUHVhH÷SVEhD >DmS*/ `NwV]+n_Ay }_N 5{;kiL rn:tX(VG?F^@vAgh~K|⍕y {"Dz{_I?P698#)o,"?Kuddw0fUĻaQ\&g3lͯ/-\`"DEb3,;1դX@Ut Q CKNߞ<{Y;>lި X6id]4jC"B=P ո'{f@0S|z‹Yߙ xzlX_fbԞ,kQzI@?T;*A%ChX/vr|,w!L~ NeKY=M{07-Uy?x5=LӢT`f/tj_M8!YKTvМޭL?,#`x Nn '_< wBiv]7-F״ +iK! $1~+5zBLJͮhbĝԽϦQ WƣbA132)_,u}"@oWn9]1L@|j֫ ԩIg7cs@t Z {yZCs[8TݣDJ|P4¹ay+'%4ӽ<;#f/vQx"2|p3)lj<@ CL5~5ٜhuNO:Kls;q7^JnrU۹&z kl܌wsY,S>=IIǸHQyeUxlso"`iAY4FCxD]9ˢ.-geqQ[9HOI*p<"R*qF@B´oZҦ<<2윌 I@3v|xi36VGiyX3+!ɯ'#P|ĤP@]T3LT4ظlrx0?cP%R_>qIv# 5ӋRt3ߞu::ݔjU|vM]'&ú`M୚A=)u{yINa{cu9|f[T^3r5N~'!;eX^K,ʈ S9 &QXkZtؔBLDD/bUϫ0Z UZuTe?a&׸wSTtƖ04YXK($h3霸Qd:ތc1E9E7m~=iq*R8$u]ֆ9!<4D'`(5|F9ꚱBfց`4"tv{vbJ1T6# KjBNtk"M;lfg‹ũ:)65I~գF=ޫx!5RF 2Ȫ_c{ Ce%j|( ,1갱Iδ*͐ Nt I˾~> tO8d̢5!rP9h|4ČttΧ!<EJNGX>%8cu. Þ5G|q+}T_g.`lWD #AȉLKmx,lBFܧ hӼ,JxK';>Ac%|J1uQꃖ Uo1ZZ3 SfuzS~[(f&Inw.US-~\؎Q: VaFP=3g z52l-ݤ ɘsu/iƺ%Ii>?/u2D57$p[ɹ f:0̙_Nx]|ć%\`ԏx1gݍx %}hXQ*y3f^p"7:i.u}H7MkKEy pg3KbD`% RG]ted/?6٨1 G[(M=e_ϊJه*H4va#U+٣YBXTU Cހ I wnZ d\arWTTI5~]k"]c;|r[5c [%x8 գwٓgCP:'X!Qd$jE(ys[kwZ%FKXg{idb OOyQLIbrJ_ԂצJ㎰u&W gh!B ]R P@λ 疴`ّGLQnf.$0IVU}n5G &#{cJٺṟg֏7$.m4NAf0 @ cn׿z1eN *7m:ȣs_2.E` ~u9P`Kr_]s|bN$^0@UJ1 *zI\QGeQ@ {=;RZ9= ytxȁ7:Qۜ9 ޢ}ЅAe?히 *u]RLu7y !vok4R]kƱNunp(uP>VR i_\R}VeWM*y)4WB΢ 46 ܐ x޵ELSb)7fG;]O'qx;>5\FcjC@/!qTշϵ񐀌2;ѱtYu{+`U`f"lWwr|]3yO8NJ)˞C?{[d\7 iؐV5uYM!׏>gkZ0cB,gg.C)qf&kLB},Y:I1$NR;=$RXfX8x ,.~C`F g<`MCUXJa>Nȏ@%:..3رOQ_~8@(r=QlCE;RqUosv#=태V, XQHHqQC s[9MtKr bDYd2qL.*47rh+?)1ev[Q> E˽gkt݊xZCh 3mGoS/Q"j;ZQF.6ßpw+M2]O㍦CMYٗלB#`/ZcʋDn|Lj۩+J5jA b@̀ͥd %P+ÙkaY p&|^`0Eղ ބ\ˆD :<^2P~f^~4r{(H]Zlh}6_K?*穇XoIl?ET?`$Pedt|ޤK(&[o`Ȍ뗛+ d}HA:ҌN+6/%'A}HFmާzUMק` RK+%.ac kɔ Ra4V^J'N5d"~Q`ӓMTL"1kF3b5-n4riz ..>)qDj}c+'Aj|A=JuR0YG#vOql([!TG=O8¬|F^X{Y'D!N $HO/ߞ ޭz@ƌ.'҇k kke7{ )JnWTS Ͽ逖kS _TՓTq/}1Q"/;P.U{p78ev0pH0EAB4 pJ AEaJpe夠*I;i+G:R8$63snyr{b}֒T1cXNuv |?XWkH&gnÆql7@/ aa@N$C.-UP0m_4L@Y @zdlD- RTBՓ |tM XPhUvZ !$ED>p Xp_e&a-F8$x\Mln2R%,ѯ !~@9)B5UwR]^XHIh5M, RI-}QPdǷcobZ{4ٚTxvn?.4.] %bً,qn`v}K@!EQZED@+Uד)JiΗc񜭁i0~Vш\B*pJo]pE{%J E"7t)&ʔl7IL3ch dE^olƵ >̆oL/zLDrS^sb$\#[{p|kz~do%;݀ S~p\-;%pCtA) (FZK\]eK>f7ZU z/%Dy,: kЪ|TeX9sW]zmQ?ݨ:I9+7ujm:1Ò3i7_}_':̢X|Xf:k[(,w 6@C0@JT, /gU7\KlW[3GM(ӃՈc:cӇltq]f )%dzώ+Dd|jAU a6UM{H׳ b"C<6C{Man9qFpO~RBQ!GP讶fVPz8"]Cmkn4L6s]i3s,hn]UFz+uהּkз.tN"NgbX} }-K A:[#2u4Ij=[d(bX[ЍƹԺVyW{P@N蠭PP0vu-=wp6It# &D:ytcfŎ|PA#.寝f 2M^ :HSto<1F^sB{^ DP MkwNg]&N- meO4~+e}4{Zm]ֲ }$TG<qZq v+tw1>I*E) uQufX:wɵV/`UP>X+G0LUh;/_ZpCeNub鵞9mIщ/wA77Zy&z/3a`HW{^`vb|$ (k\mB0ܞǣж6g5VJǚҘ/9=_k.[ wS3:linr1 X\Ku[>WBO|$iĶ$@8ֻO[ׅ`*$q} "OiCs#f)>ԭVd=Q-:]ETTaˌlĵeKSy&3ݣW'UGW<&V۞>ʞQUx7 $=w^βE0(Mx@4"iҺXPܟz١(!3sMprw/x 0=bSeMܺw$[8Ԅ{m=Yca륍jykOՑ.1@Ȓ-575J|o|Cdڍ*bp}T~w9G!j'ט V*iAt 2l5 v~A=- )_7'EWR*#k%uzW8o嗷=?MT2gb-3!?[W?Jnx5ކ 1ium ׌({{)orqia}bxp# O OWTR~@B+=85ٲȯ/1D8fڎ@WY$CP5lfgթΠ1*M$;Af"տ*k.RmnɃ-8ϬϣH%y]oVyn7PFiC#I9e60ƾJ%{Φ;blFi{-8\?D!Gah60xs`88]BcTiEΥYBG$aSp[ҍV H_ؐ:xKtw4':ɠpG>J\ +vKÀ}ԣT &Vώ#HLMvrFy<Ω݄a_lni**\ڣvQeJ215b-B?r'ØO[*8y>ֱ#.^O2HHOd ;QYUBl(bt ĭTkR> =M狂"+fCL"F{^*U6I,6w7K?A#H!aK͘(f9@e 7}GԾ<MD},3hwy+rE]VAXrp&J`?Q# ád"$G&t(JlYdX9_ј/d-.bWV::pvQtY GJ"t"$RO/L =9"错&gNH3NT$0?+I\醋qDiSB&$!&F ^UV`yY">3vu '5o~~ cp!K,b"!% b@΋8ɝ3=䡗~SZ.%nA_dͱ :иHTд89v+ag2z[vwJ\#+#䙻/N4#ݵ+!z}M/>V!_krDPqP]ua͘p7xs*f7^X>'0ZmC-}P(hPjP5MehgŖ_M؊m0ЂS5('b)Bn3pU>Rg2 Z㚬Ku-Wfq{D,zBVA!vS% r]Fqֈ# n8 %6E9uyCK|)CiZ #Fྕ м謨M#8MZ-~ Z:=mM?6[d7\f1 EdӬ!&QX72vr' Cpu?R1'LSP!WSU ꆜu^L}i*hqrЄїXZGƥv@I' %mx]0OoA1_%ߋ@˃T=䋫^xgF0p.۟ule0P2 E >N݊ȎJ)ND]-P[たqp*('2m9N1mp@gB#o%Iq{yMRilT ~Un(g *"j[4krU^mUaF,̃1͕*|6 $} uvZS{ $_¢_Ў^i B ti#̒7:|Oqr0}YB.tK-[r.?\R)4QAl\!m&9/}D%ϤLq웊hVԷR3Ax 07!Z NgqƏ2tq4_1G;1fAcv4rGu^>vtqlݺ"imF>{*ߓ33OxmZbcq ~o6o&4tc; q*q./c]6L̏ڏVZg@%mlZ=XlzPǞo+ډ@"q6"'pO2gm/POP/ GO۫ݽXU*6b1g K2kA@l6쑚֢[?qnfm 췆8x8įā/)۩i8^}|͐DuM :`W\mOٝ[sUߓ&4m{jSCS@pAl_^Cad ٟ>UDʳK&u+S^]P+(mN~\*ho+ހHPjXL2`giNP*8omTTT9Ċݬ@I[So҂ȕ2& ~k)DV;=b[U{l+[1tBgrYJ=!Xo N@"^_8zhZ#TB[D|P-w!ĺܤG#G\ pgąC(@0w܈A=&1hsoJ`ٹ&aiHiš(d=TlLcj),Lz(1ŰZo- A"lGSjv x,Shϣ4 Snꮤ*zz j*9? wT1!V͛d_*4f>+X)2«6WG!Y?0t=āfv}!;jUBIL&  *οv0E eiXQ&Ii9#.3П/iiYn`^IV_Zxڪtvs=;=&APcWO5z zfnx:.JX;J M@ d6X"y^QQ>Rd:xX߶? MmxÏFeas]b 5`6n U:5k+ |ϵDK qHYCKɳq?gf.a$W}Z|KaKK?n6b)bqڋDUVW6W52n.Vtwc=O0aV<9< Ru^jT|]8\"R"epfbF6%TژfIQYw<5)M(\J { .~W)~0VO 2A]f6|φBs:sޤ]OFmU#뱈?4=ٖ|B>/X_E @ߐ*yC 5392'Ÿ`~zXUȍ }Y틻hg^۱`PF՞u MZҸd GR;#SGII";>Pmf'|'ud՟DvncaX:/tqHM5 WR({,jW<рY־C2~&{*Lq!`!`AC2^WkHvqyt/02E-z}Z*t)s5/z ȑNCZKNd=U=J-1@;(pd{H|n8(K$/6rGeݺ ;jŕ>?DxQ'o̠{dv'lR8"s T;n-{pi}>aT`V+&HClu*Ω &:S8[Rc?{5?5ǩe7hnEJIbqex^Kxf\_hLuirۗԲ5gƷ΢*B@lЅ)'B}:ßE *3\53;fys_Bа-$$2![+&_MԉR?h32i5y4A=j9Au$c+w# 8{[Qcn١g]jbr09m~ ;>] %3-sdw|r[Nؿ*of\P0OLJvZkƒ+f[lo U)6Ep(#A25bŽ?k%'f8y1 ?UDlz;qLsJm[r2$}SER>Ii ?O׉"cȝDt .@7Xj 447ϤfFʮԋs;;~GTy~ ؘ5G=hV}bBy2mz`i!cyl2#7nTTA<["lUcj)xo(-J vxÚ$"T24ӆTC*uHpJH_3]kE Z(?=SuOR7pIqøl LKo2Un\~BEUjӭLYӠV.ʳ _ 5#IU~}il1>gkK+%Gʜ$=/8_Y*6VA/s34ZD~ 2covVX`$GZSm֦ 4LQHR=4!O>O:2pOq{b*НM^,3܂,d7o+nwg$iE)> +q_68zJWvqվ{00punE`vt^7'wCK$T + 3IU2)}& ӓPAf~^U 9}`$v[ #W3lK91@V ˮ"Y#|ǍV'⎿!DwAnJkثݽM!4_A4xhZl ?m$AvF'FX8V6&d1^ ҁDeW'Rxf$ LqD\HGzI|PERtscT ~: y:nx:p#wfpyLg8/3"odjlae )< r:W;3kYWE"0UE|'¾OV]ntbb(6IoڅN߹gJ%n:q&4&HO[o@,yn@.|,T6m2[M+bt_gjI?)&DcgBo`&fȒbzdX RFSFa__EFol'$Y+~&zӻp5U6Q{ o+H0^|X'ஃ\dދcE^=oқAFd3.DDjY}N./+ \HT.( 8Є)ӕIh~8ݰ]"XH["M- s 8lꏫIVWG+2+j>p+N%:? 1,6U計" Ԙ {z#'X kΧ [pY$4GQ&xUFyI5cҨC~ې"8`\!k5ꤙx\m͘ *su>_K|+my.09Dt`P˖%YI> 6G, LUÙa6tvH3:oثtY"{ @ww)QWN)ϳ#jڹDVA-mYR4&:k ˍ"82}i\PIJpK_UH?qGZ J'OVBs9UZ\?Q_w@M:P j42ѕNX[N8_J4M" 2n|?ZG%R"P=/p\]G+MU0bWGzKpG*sȶ2n/S색N8u(@Px0Jd"ur+V._Dt$sŦMS>>埦F!̈RMHf{sP?? "?eatn5j4yqzf{IuϛQ.,pN ]y ; q۟Eէ4k!gg87gGN02lRLJp|DHo{jqVCVk/875FwERaxד=5q[qPDVbRSD'|ޘRSC%lEY( G-E#ec`AGp RUir,+%Qz O)L[AQi |夬HPA%OOFq;(3VZf@XgX^w#=:[ۧ<]Cկϑk'2$ŗ"ɭD*vƅ1ɛ!٧O 7Y)oMP^l=4nc rNMS`v{0|:%`ȾGN` ~+{qB;ʐ.wow6'n&]":0hE|yyWm~@) ":yY>V .99aeplb3\q˙Ay.1#t FjPd6o6  o =+Y3/iyUi'B #PfЫfl-0/ݚisvBf)`J{V̂u0OœTXJ]ز;bpE9!t:~4 ФdºN8]$hO;!oZUϠVyG6TD]vƺPh3t^?]mY R@8ZrL`?2vmV)Ԥ.Kv2?/Nji,pgo م*0(֜ #R[WUR#TS%MP~nN0rv3VE ,:u 8>!R^|%LT=N’W2 8мNpS ai\P؀Nm" Bt1oP2szǹ„v4t@4;$eA˕>LHHHWߩ@SM{@15th[P4d§U]HZD?mv̳5!W+=+a,5nUfvÑԣv6{IVx)MA%V~񽀺 * f1JR:A Ht4Ak)?GTP ;yI$375kFgFuL,vRWuN]_żf[Ԇ5Y tH5m'U.y_o7%;xu#,kAj3l#Og_tgtV(5̎K t2{dm '5/炇v wIU'!;q{E\~._;J]TUHLO 0$"yKl}E""Pdl?TP5ǷA+OjaԻkB Hw j+oۦ]W I5 ) e*ap4-̑ /)T`6aO(,5z7mvxQ\j#'!BQ9I-ŝ3w< %*Wgo\*Bųs+giUf9q' B;s3([dvrJuSlTrAh]IG% ԶXaua|ҋYcW/Әt+YNP{z$+1!aY@jyx]'hvi!o)EZ[؋*w}G'fٺYE7>uKUk`$4{U(oq}F,66 1r ^ .kYU UOq_57 Ņ|hsʰ.Xn rhsU5ߣx/m_ΔƗ PE.d)3k!W:V :ġq붟ƨ5"Lr'`';: 2JzR]ǀL}&1rW֍Gh' aON+0W~݇/jG.Pe=!hd06rsVH#@DU[nDYph8lI^A~s A^gK-}+ L'`kpxQ8ھ)R~Er-E3 Xbt[-Ofo@h׹x\_~,WEbXv)JՍ 6s5'h S?1G aOi3>s 7#?ظ!L1kY^*h_ P Aߞ{ӝJ',89IY{HڱQI4 nyu6f!f%C{C0w~%`f`V!(`37c;kS;'Alrq !ȉ|k%f=UyҘ[TqmZ"zNR@(Ez.@M#z!%?,'D|2`F$ipV]bY@*Qn(^WCGG}EF|x+r*B:®ݳW|q) >օQgV:\9G~i,/e}Sk W |};Ss'{=a1b o燺I[ԫ\9o ֠O1=+Vx,(;x`92;[4C}>9׼ OZbd5~l[QGJrz9< ]k 4a"ԏkC4#t@3퉼V {I*8ԓA㴿yh_kQkwev'K 5qF~-ڲ ;,|` vu?:6t. SΦB9R?M=Syf< Tw:]$3;HƃجfI7H - o 0(S@|ZlP,S2/)JFw6 JPf+I#6yаݺvU\-=W^'wn+(nTe-dHsAe3k@CPg2,zguh)-Zm2ƈMڋ1`A FJ Q{JzFg MN4Y(Z](6O΁,6l,zjvh2m&Xjb߅ +򉆉$틷w8Be$޹˰-07.\D}X:>c]BOA!z &dŽ&p6y @C6Nx2"&H@r ؐmR>z GQ\\L47suzu1=\xLsB}c#tKa{`;vL-о盁)6TIL޵.~*Loc˜s}:e#qa+8.׈^-7%4Pff6{Nk& 2uG]EOWp Jp%kI9vxsMIV% chkov8"q]=6ROӃ$<'o i@X]{; ]ĚޝZ[Ӗ;YdRmz`&Bn~ߥW]thUcVs\,8(q2vВ$:HHo2}xvkXzfüpe{~o+r>]ذ4 \ 'S>ԫ 's8Ξj~;O20c֋ _cUP\Y%.e3)zڰgSq7Y`QRJ!0S|3-N<^(kx^<l.U1L O LJT NKww!vk< IVm!c힒pJIQ_]_reji ZxX 2;X>бяվ]*0P7+| f1<ē*3jEBSxSlGurlB7\$bzumyK /gBPf7Qp-ph}u}r!J~ퟲ)-YEV}瓞.<}R'ǰ)g8guKyҁȗq"d(ۻĆSp0)cC})FF z4}=/8Uo^?ҡJ=Cǎilg.إEtr0/f]+2H&nu{ۻsUFQDzw!#ǹZ٭WrwI٢zF ( Cčӏ ٩VsB I;E/\'{4Ė?'[%q+hrpԙKdfJT0̠P)Ȃ=X'AN* _'PZO(U޲wk2&23?F&F^Z.`Ρ}&=Q.GTf=-3mtV04OdQJ. (S \W0fp&\Yx,Գ#G’ dX ܵ u1R3w H"O*~cYX¸U_'UNu]Z7o)TX6Ws:Gs< Gv6 |ܽ2w!^ /+`6 , ɡAᤵuۂ\D tbm=ܲ$QU'{M6DE71b gzr٪57K-*߶}faB7j^$JfB|?lPـ<5zؔ)~yL$~/Ns&XQ%{`(ХGӬN?:-n0N}cK{ER'L_PH͌Ĵ(Ӿl a[Vbs<>V3w% W/wunyK%WD+mʨˆ0 o͆*]NV3<40g4Lگtڣ11+ ,д~Aؚ[4Km6$,шuh 7;KkUb |Jud{xdE܆d}+Pgl76=*σ@KA-zbM$8:wk2ݦS9 ty 6@VCrBFy̨W};6"9܅0 Q|ΰVn׍gʌwpTO?):h#*^??/djr bRWFraBTYF!Nz+PN3Z->S7L!kݏ ?qܬ*/-X {ՓX]kv+TxKT2El pQq&ݲ a B>#2} %c rLjV_ɌRj2+JE{g:~c~C"SQ,P|8/O͏ Zu>! ,!=Q͵e׆' h"/ K!Ч[7\ЇyQdއA~%9w )ҍʣ%Ch `joMt/mM.}y6`Ѝ_3$S7(jrr:!ܬ\Qוv{ ?WjxuwOxOMP}ܤ᜘Q$O^4dL"d: UAI5y zx_ *=,5`9oE+}I6(}7 }@ @1c@|`kJD(udusbK,csJx!@B s܎ X^1XHw$Yo}~4_.F4B`S_Ҟ"\y27Úc9E h2,u"T@}a]Ɂf gb,o-vd|p3p' o>F%,*PߚC c%!T}?Qzy܄g M%PTi}C+ e>\{kTn%LL6 Qk qjɨ0pY!$3?b?^h,2ݹKR:-ҫ"]{˔G H;T[/\`cd?ԼOH"QeD=fY߄Y{ɉT`~*5s!cslNΔ7>ѭqx&×C8UӜz.1l䅀<:xBUnWc ;Y^E#ՂZiZV՞ɖK"SVvԒZPb;Lfjʶ([e7ЏnQK]Jgb }b:E.`VI$ߝ~\n٪tnq^Q5ߎ> *}hi!mU~ =gN,r@h|q 9`&5dSŵG,K곒;li4mX!1kukY_wTR\ֳqkT*B 7Gm{VZҮm ʭ9Pb~no;°d<.b/3yvtF/*}~4F#"^cl> r.%wc;Ut3 DXg!`fjMЧ@t V28+6h])0mJ;$dP\!J%K}[~:kDӒLKj2 U]4wƗߏx&@:t1m?d~iq*Τ&8_ڙ̐9{G\lZ,Lw1ґܥ D/ġp@<#@SI18ZbUt N"팶RvkA)ҏ{T0 \/\+·0s!lh@P&ePgj3LSPa1A cQ<#O.Ws‚#$r]v'NazufhjK͌,uTa R]sy,7Vz}# զnWdCj[,pFxzjvW<[l>xJB>x8x*~zGyMB rnm4 |V9@SnRRn^ ْewcAB%HVLr)Dq_jjG-Ƴk ٖQPe7E(!Gfh+ˈy#쌯wr]٭iBn=Hj CY儂$b FPז DJ{? rzZ:ЬHP;t4P>"e2q27o^Ĉ:Bptpqq<١nODO]w[tMh{,RQBڽ%ǙB#m4חO;?{{w Az@[f@䦥4B|p򆰧^bff m,=53H8;#N #Ħ"<~sE ,Bc |@~Cʚ}v?w_7NT%_}TUӰ' ncߔȞ ~n$MZߥYΉL@b5 ,OnvxX&~%e"A-BiivvU'(ON^NWT<lSj%"u$bc&R51sz k/E@"ą$Z'm(H-C'Ɣgpqׂ2`C۶( [h9 VfH=`Xa>Sp};q@,,4hCrt0|o#x.p~@t+lJ&eXDbਨgTՊPNޒ5Ƥ}LlZN`qfѬOЭ% CRrCQ_\iSu"&BKM߆UG;zOCMpJ r0_~Y+g`z߃/BrQJئmɤy/t7ԴG _60MeIVnaBC#A ޶3ܿƟ`]bTI!<[E*o/3̖?xޥHdd9cq~Н'Vְ}Mri.4Ҍ7H FwPtWYlht@5׵^E ҳA6Wbj6}"+;C6PI; eʫ`;\!4 @_1|՝!`jMШU8HYRs\ih7 9 #Nav.B\Y2-V;4h"xƒOM²f+<,U=2 x-%B⟆#aC=:SN´xG#;Tbkh$ j>f `34n|2XpY&DvdwxOD@~+iR g\6I!`!`kAI&S<viJ01D żt2/ 5F]"S菐KTiNaH,G_iUAN2jo(SO#̸uJoɦc8e۰yuhd@/֓P]݊mܡb^Ӻ1ZQzܮa75sU|U&;8kd?&;!1˜.#<Ϲ>qΜ_?. P^[vX[ER|G>ld.=,3n#"˪'>a kR1uvC جAu\ׁ!LH&,nth%lD|i>0|0 ܁r: f#g6-{;b]cďꙻA,1:mP!KKH%1+L(IY rr9\\8?3 A,d`cR-^ۥ$˟॑J{-g{X?~,hgaż)`v _ qk8L I-c嫷^u{ p|whp// 'Tvcն jhYW|-3T_78&ʨu={{Ԕ#'?; 0`BƱn*ѯԊXζ(}ǮvܤyG(Tۖ%OnGF_!U XݝIB]k8?cނ$_N *7y~J՗Gc RST9s\m@⛇cFDg;;ƬES*Ԭwc@-CTGF~fҏ+@OaaLXOmm5UQieg -;D(;D̹<1pQTqv'JkxC詤r<fp5 trs :KZ"+kots SB?iz,i*O3`(t!WXRuIDh"Jpd%u*_^ˆkneMV,줳vMc_n _Fno@)Az3oPNj8 ?v)])dr4 $}ΆQvX~5v2ON6ޑ7C|EoJ {&"ՒkI'! R]8 Q,z]-zX[b7*zyup#baX48`NEϭWbIr>SYG*,#uFpXpRX0_Q=x4A(Ɂ 渡DoHP C "}M4w|I Ccc'*L_OQa2xik#oonsgM"h}ߑ/m3\kei$YAolӏCZi6ސ$ˉ6}xˆGd hZ;-j4.?PAߞ*^Гj6kT6-6& 74"yaos%_#44 Qfˉo;~k0Pmp 1xXkY' FpO̮Y/к01] Mm xbq*:oK"TBGoI+IĸWzcA'b̭z' l!+#kCx]-WH`ʊB\laF吣i&E`>hA[K5.QDe[E'cvŏU:n2$Np:{꽝#oI=:|A3To o\T,7 //~j/˺e =AXo])B$P քB2ՏԈ\l`߇p(H\̑? k'%⾜M|8#-i̚$mK">{ 2٦:wM$&nDs nUNޮsFjjө{N`J@!`jMЧt"rTBbp, 9qarNH@h\<]F6  (g61@=R68KV:Z*jw^7O2l(D8H%`P>@PZf iѪIgպV3+Ĭ <%3CCs4~GD1"v0(mRD?WY/Mi׺A1!`!`AI&S<տ6_9B47S m,e;sHΑ_;ܴ%g~B:ͺdCu"&⧡s,P'δ(v2so!. "ҭ5*Ib~Lл`j`b;J@ApEflY8;eTA쐱E$ W UexSX aB$P(X /2R%/ٿ)/h?s9,$X P[1bZ"߭5R50lP{i{4q ^{>&!!e?·Ӟ,5crTM%[PwfKw6 .F)ޥܳHu9ZG$:5sTpgW2P[5iQL=MύޟSSZp2yy#@Yo?36(8Mb䖗ᄎ!}g.|yطo]J?2VC)%Gj)1m仫MXhCPf-XZPUgo 4GXҾYq|m]1o -utZ7㫣rM'|x-Dh\*GQk9QsŢlL O(lƽPp]hǰOSGV]Փdph+Z1ĝ*&G(^^uq`@0!s`&=2"t0EPKҋeKG1}gl7 *5e.:?Љ7B+s)uy`^(0+z.[0JrޤkzmG>E,΍uT́#Ǜ w5UU c[fP~jLDu_n(M`FPAO(^D%00$j6Z+4ݒgAv`1e|&^,IF&{[8#HC܆ dˎ"g H(ݢYA,4^IzhtR 2pJ߿GaYl_o㙔Mu&M8{΋4.Fe45Zԍ0meX}dkcv-G( kJ#d~TUDȘrSMMV {T2sYV 妾@Z5bALMG"ryW57$07$/#?J̬A/a[jpOXs iSI,62b l- uV#lGdH!|Y?< IqcKu"fO;q92q$!`!`jMЧ.[%'pkH MȂ{mWƞocrSXrhU}TB#/Ϝ8 &h䏀M?#RNAɬ6f׀tzСNbEB&R2Ld^ৡTnto9BHrB`WSj(k\I oK!`AI&S?PT(HD[ UhC_(eunCgIir DPdߑ܊A"ov7dfHձ&WI8Q$² |W yYbi8}/F_7&1zo<^_ ɶ=7XjCuZ'Rb 7O먏@H6/Y A˟\AR) AE$lMT°"sejz2{dJhoQ=62^AS1N2#d6Sw86(Nsɥ%gL4'$iR"ݍU)K < ,FabCy;_ vDY'lTJ摣L4RBw\cDN6,{T\eiofup fB"۾d/'89Qd$eɹ$%2KM n^wړg1{++̕w9`=1?)ߢ TEΜTRoP܌t 5#Fq?_]&do$Oji~s3WX#vl_fSv^W%\úW`t^4t>ޖp<۹z gMWgFo)6<` 6du8U&rF!ko&uV$e@YS+W}N?yp^zT<գ CG29csTKb7ڄr)ksQI^#4Cp6W:-R~HLN3\F #%SgigDߨ$G= e] nDHPi[ҷšGIۚ$O뢢 `|HA>hZIsW}V&r!]U駋 и4ǧc Z^22(GsUaf'E֌o,]XPӭ(@'ʚ4M{g4#'B.g43/>!`!`A E={~w4牤$})wSկsa8|N] FUV8qZ=R*4WYwF(*U$&LҽHDNAIݴx4fUX~`h5H^Cè+$*TrIխ`!=P/y.nogj3 *Qw }[צMШVuGuQN.\n A.Ѥ2y:k<uq*;楡!`,tMʄQٯP0(BtZu-!1(b3J:lL2W.oz9l֞F&f\NPZAӺPqhQKk|V@5u[]spl i/ԁ!`!`[.jM\c lcV2k(Ex+68~Uq1nܸ~Ѽ!`vA3IAhL0>&LLYR QjHQ2[[s=NmE$v?6ZYM78I~*8?谈j5οՍ^QXyb@ҦGK,zXwᙢi$ֻ;[ J4W,SiTf`ze(lJoƱ޷:ujv`DיRW]:`4x\.A:"+}ס}Ü}ȠZcx^Tl<&n;]-8_8BLUzvxMPz Xjj#+w+Z2dnJ O>jk4F#;+Eyt(AQe,3dA=#^\x!`!`kAQE-NmG^:\1r^塠&>ыJr= ! -iImC{6I:75T!`!`6ptM'@a S`-~VDu!`8rjM*=rZfqx `"!`!`AuIAlLL%~ Jߎ,M8xOZqRfxb6&? sh &xccl,;{!ujAqWGZ_hi9r<\ba,v eՃ-Alh$ن&kc({y1t>?2Z7XvByLݺ^xi#7so]3X'(qr0JԘoaQNVYp"\fdǀf6eo|+Rr%o%MDvcbD7 FIɺ~{;$)DdjP@P$ 0C R֑vTpxN/gZ]ŃzRRgxqlWbBsqn 4;-Sb^/~;htuT\klRZҌ8I{^ڏh-d\t!`ojMЧH 9!jhd> }qͧI=hFjzuZt*&{/`)!!`!`AI Re0#̽4Yͼ}3vk?|v1B xIlj2*m;C]BTXy8>D8# ?̢E!cGLyϵ'Akۛq05E)PjZe2I\kǦ5"*~*ZQ9c:=m댧"gW:r"-ʮ[1.Tn28c9잰ǀ,+;0̋2L PddʿHfî QMKz*lXD=S%+o+6L"&8'g/q,1es^INMG\k&fn@Bk@^I-{kHڮrKӬ0:L]I1_||E벳+LXOǏuZ^~p+2 7#7͢О=w]`8E-$ h^n1̓ZjY`7 YupX(P0JWjyF^[${p @GV&`<5_0MTQ8:15z1:nEg\鸷<$Y?nŏ=66zdz?JAoq!y=n^੝Gq$or !mV/ ٴ Bni0 a60Gy4PRG!>W& [K7 pasĚ" |۰b2Z)Lo>clx]Xh :}yG "Kw :cTg%{ɪhQ`H2% TWpbAq٢A쏍0AEym9$I~xe*@6) Vz.GֈK+5 +ם`GI(TSl=d7贉&ǒFB3Tҥ<`!`AI)7=1k#$yGp:uerv!C|1u$;Tk&S> Pglvq>ڡx@#Ciy2r UBz%2e=D~b zJEྪ;yz!+4H!v ^Lr,e6,1w]JK AfKHv2J!{hUտv u? Jot&%ٔ&5sB=xN Yd￸8ՆyUUe@Oyc7X!cPFLUdk>K%TzkBn p+ EbZWn2. 'GhC^ fiSLfWcߡʴ*a vĊ( =W6eB#Ja7q+ o$W*䮅z 8fr`ansX~3PB7h8u\Т+0w*hBk)bZݹbmAET')/$ڶ|V(9RXY\·Q)89g}p{ k׊o6mrDYeMuƄrH+pSU)T L4bt+6B8@,k 3ADՏK7:T}vNmB\%#+J_s?|z=c_wRk3Lܬo?MbYV ]@}i#KPG Ly s ~C$Ԣ-ʔmk$# !x 7[ejmIJR88q:2vK1HZS;ٺ@/ʶ匐l{ZW.^u3Ԇ&YC4fpvs#I;{<[EhBstFupTvj 'a-URfj/ٸ%9?$,L Sޒ\tHKm,N8eiEPׂ=?Y]= əܹpk1>da cYgu]88Z;,ĉ}p^E~Llj&@2+Ef'm5 iKeN&hj?fvѻcpTK{f HhtUAO&kێ!hjh"Z7B.{LhT4@OmZ+p))A1z5e nـk\t0b V"yݨyln8dSbC?x?ɉɛ{Hخ9[\X8[(ʅWߞEI$qaٟ0TIo$+É%^CvxKɡc*zg6|XdP^ YZ0n rhLzP]1X]TaM}]̓ɾyh}#?\\ |22rA|, ItL]TGQU#s^C-<,O4q߶am005[oUscYh(E Vꗤ/:P9X(h(܏EjzE:6Jmt~Y;ɄvUMj 2F"W)i~Û}D';W*P~_itx#6Ud~IdW9Rdm&gohJU7hcxdJ&7f ֑n5?cZƇ"(-8ݡ!.Z{SGg@m= XpSSQ,GT|IWtoSNw+?8E)\1lwOcM6K"sH}mtA%]+9>x{ {UMskѷ۔8WL͗uwRW&T&9f%1~Ln/_ 2^Q*]Ɲ%V{7LJGnO,h6:`rUV@\м@ơ\ )^T{tҡd UkdgvmNoE!ߏFO*beqdOQRlT ;u@Qp'pkZQۉgU˿ȭO"_`PCdsoᄫmƔĜk7&eeN*{n4DxXV]_Qx%YYj[vľضN͜Až&'P|hɻҧ(qhakCZz2YcNkNoЩ&Ce#"Z5LR'Jطhm<9\1䇡d*[\{lh[4`5L&r9j K mA4@& Г^8{2"OKŎx%t?Ht_U/3,&c\4zPPL&vц2#'Fs\ƈ,$'I埉4D$K7PN/!W9fkAVAy) ~+~jRZQ(b(L&h9W| Óϥ:)fU@\5[߃X>AZj+뙲qĠr+b&qwAXkuK0%Xy932. JѲg#3XB%J']D=h)R ]L6:+Svlb(8Hjk5t4ٷyUN_kFԼn<1וߪg|:#NA@jQUگr5iL9%SMFhӯܞfK+qޣ[-Er VTh^iaw^5IC͕0\8JI{Y q&mQѸ+/Wۤue6VUDyLՊ$ :prt֘K&?l@u5-VsХ Q{EaK@r iͥ6KMF@̿2 |z*_:!=cMm8PdžPt D PHEtiRտ6˸m&˶7CGm8KX-d32:|tőKA#C3rP*߇$>G5/0WgcC s$ xl+|~4"U;=+O5gcR4L#@FK^[(+a\Ïk(F9 YlsJkNzz\4EAj Xd41$O[᜵ͪ9@YAѨR:UYJap@պQQ3RmϼL+"Asp :`/g5d`DkA{lnxVmK*=PJ8B/d.\?5'wMW1-3hdL`,9{Dwn5(&Nr4E 3&~U$U&p52ۇ_~N^d "|H!:m»M&̍^0/3E/Yb$!i/2H=ێH5آ} \@o>tbOƭ=4JsoFxHk_A@!P)3Whnr͖a>nH[l a3,Q͵cJiLo\C~llKfe1m`jPOjwagm3H!~9=f RNJ1)E%̎[(zo/}sϮ !aAASN%$|D `޾QA9`{V RKy!`!`UAI&S?6>Hx '9=%yϩ56y0}#?g4 Ω~ H!1 6OVXW Bp mh J!<_[FTIpV[˗k9i*~ǚH XB`: %cbYG~dmv̱p+\ t.#V_W" )hi_HӃ?ܑLJP?TP_ܤPa-D1б߯<җ=^OjJL2~^{_se7)0__Fђ` Jvw#eLd!٧ HU"ۛKɝ ]5S-D~B$..Lq'rUhSʿ~@x_/&}u_0KFKL [T =JsBat[U>EҍsC͈ޒrG.4WuUtH349E4ˁ3ݥҴrnץ]7@ cE(!b -8<񲆝:T #s4 ΧF]8 m0T#L~,9XغEG`sȮSZY,A):e.>=c۲O.Ě_i)ymjx|uY$m sKPPպmR{g6" `je%9cKTh\Y48 TS줖@X0jkrtmJM3lf+ xb0Jj4/(,v;t6Bc!(sc2pᩡ]$Ek56쀼G f"hā )}Dό@"2*%RNE᜹4%zTsdr߫;. # wPac^$y1G|92i^@zT^**- tGVlaX4pcCe6D8(:wf2.;->%C8VZԒ| @ML6IEE3h@ %z* ʠsi]Bgyu%оK90{pvٛ].fR'a\n'c^&:(FN}{j]Ap΁yv#[ vצ:o R[zQ21Yv q?9B?4pyPr(@i*Ef>u)WǗ>JpŏMDfhҿ v+ԡ1}-cr:[А5>"wIPQ3 Gnخj AfK"_;*Gb-q}P6"`k NE#Nm}\CtO\ԻݘU2J-P=^Og3Tk)7ë :J]HdV"7 {vw?䨰54UY_G=># mjF/!m [[0]* IvgbyyY |`ˆ-'Qm5ENj僚 w09k&8u&:f`&%W5*UYM B}4Zo 2ݦ/1KշpBEGgmF aiM̆kPw' ^U@lU,S9)C/4Roi職"I8nyl6uBfz{| 4YB5y$I'QSl)ZtFek ~UX@1DH `ivAqDd9lzOAK$7%u$sX,JԦO\cHhG;@ 3(0gR}s9.ȕZJo"ě@CdvD'㉁o 0.9Q5e>sߧM}9ܷ?ȮhN'ܿ! zNO|>$,ΦR{Jc04#e}ۖ^hz0́jXَS]IytS W "8Y-thom{OZxkhߊB%F]<I~4&W44ܓH7[ ":wu^,D' m g&K|i?uK!R%ɚD"C 7RI*# &-lKlĀ((d3??')C>ކ G跞:c]GquD6h)BmFFrjN+/L1__HAjʗRֆtT7nS.dD*l|Crб/9ά'qNq*#Ƃ,E./.w[.\8, o O&M:'Jl%<]1-b FyB𐷲F5h1*H1|o9E]T 4+R*1>W{z/z s?evU^?Wϖsʖ]CI~Y )7+BQ="6Q>: SbռN|_.?nʢ?^]sW紇7E٭'SCSkxWy5JTΚKv͡SYṙ?{P $v J7</Cr=- \,] KٗQkΆ$x<۝8p)Oϥ{mmhIVVlk!wEII I /”'fuݸ1 ~[ǝ^|7Nnvv̾O(6a6r+E#XmP.MP詀ƿov$HVfyDnIK!\F}Gֺi-㩕sN̅n^#X<Ώg]2CF??wEjCv2CxeZNWhSɻ*̈́c'`'[*B ^5=C*#[{"TG}XX=- J84ly'?OA fe4g>q9 ֵ8k `GANonG]v[-_›wI;Į;KΝ-$uۣfǨ臞efU>L؍DO(WY!_|;'R+x0 ?5BmV]Ơ!,^Tb#H'O[;ڊOpGoū_)O[0a# 4Fߦu>.}j go~M~b/+DĂ 1ݍ$h|iexP΄ɴA#u|&/O^|:ZDzO _(v{[3 VLR4Dra%Zw^>HVIK?uY2ox6vV:_x '}KX.3dUT-hPB>6Dۅ`X} "7k%B_VFg>f8,R/8$n2S?_6C.@gc{,F6r]G<*  GjGoV8zӹS*qUm $>Y`FPo tǢwFBr:U]+kU? ( 54GzD6q@q`RwzGd|)y"ڭգwg;~~-1זL*13BUK$dH]d_xvSn"11 T5on.Xs_8*n@F4̈́35zj!MIY7Dr@t CQߡ֤KȐ(IMy3I|/-H TW= HR,q< fý|ײPXdvlh]UTQ BO"aTZY_hzw7Tt{oU\- #|.HIA~(5F.su'*KrdgK91wDPBB<&Je,qwMdl\N7N!9Ng 2-6ĮS3[bv']ÒنD *euO[8 Y!UJUxpT8S=ޫ %Z=+9mB[-9>#1Wz.K7 RMbW|Iixj͠x K*UU-߄[[|d'XyV TRNs 5؜=V[{~8Apbmv76pЈӁp=G wwuB@˗H>( `ݑ#vDL~qm0)\cW\Y"vl]ǬY10j-1@~djE*|]14< BTx뢩\Oٟ~PEmb3g&'Z?KC.Dtv- o@H'ۭ+%a_9wk rV)K_#$^a)!!M*-OP_@GP7Nul%!TH=waP|xou!YNE}qjhʧf:wP=2R۳PA{V%-NWZ$s5ebU|NwUn×,F^OPk-`W6>':9O,+B%;llCΓ/G:Pĵ&IxgfB}4D|wS݉Or3!E5 |_+0U`WBDծ)Sjwd֏Y;|Ù7@ʞ;?]'se!:oӽ}ϙ='YC ?wy-h>J3R[\V]oOKG}eXAK@s CB[5pд&tgcɓN;J&"Ìua׿"*k4{=mɡ,s :qjJ!@c2kV}|ޡ0 NsDњo_T'`\]Ho Pyڱ]"̐7/|ޢS ]Ӝ(%C[<BϜ}6*O#hlw)`֨^؂9(;ݥuӹlнnlqWT;  e!G,,@tnHB%>yN\wnfSL:v MBZ+?Z 71dATjL׈QCZ4DCJX79nL{aE~iڄ|6լw{{_th**Bn{"m%ܜV ŦeGs4;Rҁ0#_S^N L/)M#أBOPs]&OT2R>W {Ykca]ߒķ>w4U*)/2^aQn_26uLp3၃Y$X!6t+PdӷDʗRW~S^O|F ^ux?eWx{7.B'ֈ??1p]Ga;}:m9or5ׅsq;= k^:ٶ#ŠOVJ]4- 37{l1t6ڿG|S.w$2C.;SD12tQILQC//q 堄@$޵Ϥ#; GTk_ =`y5jp$<6 rE Q~%!cq#ޣ =J/*˕5#w2k{`Upyc<5ʸ7o45PW^k~346X c~9e9^)膞, ܅QW([a"񢀵c0 .nBX9a}b..^:5t \ћ. bdG% ';~uva-48S);8nK5R(vH+T*x3 ܧTۘ+FSzK]$~JDbrQ1&`#~!H ]؏2e mqj+Tal+uFPB)CA 7ǹ+;qXY $D.4RHrY (ҦMkZG_c9 gۃu:@8WeSN#ٟ%{r$Laݽ%I`BBJ/u+p ѯF)z"b*"?6=+&2FIƂstx^sQJq9)o3i4}j a JhB^DF Ic "gG/H64~e[_ y8 R·`#7w6&)6ikxo@oxƕ塔-D٣L9B/9zg<"*S15G.s:sO ȵy"v1> $NbXݱ:6aҋ iuCS%.=P1'OȜ$'q1zg ]&m =Un7 C9ϩis}aO;JGjF/3@6ʉU,uqᚶ}6tOL۸IPԫZ/ШWx @wOR"sQ_DKEXP5ǻDOb>-Ebr5o'',{gyM ˢҲ{7u3Ahi \>C}%uM@wH3Ap>ѓQl]W[v =;_遾{eu҅?zTN & A7%RQj @*T5t;~ӗ@'?62i:CH˞N>wTg:hct>[Cn  ٜHe+rޜD؅rS z=}-?ef4k"z5x2c}[C8MeG3`3ZYb/WI"i 9WO) sa,x_m-!'LT 1yjzf&Bn*m?6 dg1 |]1.Ƒ] 4c+;c[:B_?П)AeS,\2mo-Lȩߔ P;z/7fJ ^S4<:9虊 RQPCࢉ1 RsLeD; w-'_?mluz`+? L/CpOh ?KdǸݎCbf8_`3hQoJWx(ϬhgNE|(h$MrD4676%qL߃/rb]c_w8f*/1tS#>u]cw'͇$j^FGo؉c\zUKR1@\CiX\ ӝKjY?`Ȕ/n +cɕҳ7%BLai#_)!gsbM'E8,*ܲr %*|vp&,جʮ*0D(,&S8W-1muYt}DjZѨ#-tFWMCаu6ML^v#Twk]B)$ f… s zX;>u>_Ox*rWc9͔ݶe*84IJJ{/]ز^&2|oɈG1qI1ߤM |`++?`e~ Ey}u(aU㉺o#F273 oZț%x[cl ]%aRpxl<Ű,{Hq}لNjKe6|qR:usPvhI.q/&hv|.6.z +I&Xv&񆚘:K?HBg 3BՓfWi\"ʴ o/]rmM2Y|&QzD'oHKt/~4V-,',Wø|쓓LW$wΚDET}QC ?:(|MN*sW\nWͲ!⿝8Ut=5q״s{)QOӷr}w RN/ۂLd1 ̈~ :]qj{`n)mpncl-6GP@o~68)]y'$[܈<*)/!{L ;G5N\X$kґ%fP62?7HܧMSԌ m6ܯ'Ļ%;+ﰷ!Y,1S(S@=_o-HWKaR*4AZg~}9㺭tqj({]Vht=dG %[IP0_%v^_#`@ bѰvJlU+ݔ  V-e>W,|_+ PnOEp Ȱ_U&9kGs='@\V%kO/=]Ya!mv+(@B~,)Sx 9ߴQ6mhw~5ЏeA+Cd#V~ܞ٤"g!&Og|ica9ŏ p1@]:ڜIwYb\Ĥ#pvGj0#MܤKMeX0A٠"q>a0;wq5oH&ѰI_m~ ܠ'iY)}/XX? %o.gϤo$K;*i&MV*87]^nЇmpAv6^f, % OsGwy5Ub%WE^Rt|B Y^\dDM|}^HԔ>oy9xʥZ!(biAS/(P4TGNړ ?E6})ank2An[FA*,s I? 4U@ dڒצ_a-ey`άT|nsNiЀ[ČV n_/e^͒F]2gK#=V!rsJ5z~s{NA$6# ե\/CEӟWE2sQ }zd<qkV}i]UYp]b4Ԧ.bZZ~ƴ<,=IH>駶LeʏJSK#EV؊1JvI(fg## W.OzlxVIOӮW90%%bU5t`0c`>v vܵp`/*jj@Y\(<+?ݿñnq)R^N.ګTJfWO0GG*&MB2>kd`]^T0-Y8" Ui&a+O S%c|K֖L6 _vr;a̓2I§ x{c_>-8dB^6#Ge%1Uږ1(NQ,7)EPM矁\@t%z *_nSսLUrIqhG]BHX\HKL*hh,?Y~`KDdtSf|q[YEe.jw+@_78 CwZɿ9M%Q)LWu5ynkrq R '}0mZ%`1*i"[[?WZL):9_C@8rbI_iB+RKהg2,M~4u8r9O06̃Kob C*D:B1g_`xr6k_&$a571V6Dɪy,p~4ۢHR| AvoӽiTw'su} N Ή]Aszb1S-Cy5jÚ>KukX^jm|Q!`Ki/ n0TcɗC͟b /PǥBli1)&Qv$j=N@57nMjJ~YOյLYv,|10i*)#G:U<#CB~Q]yހGtGi.S@W'ɲ_ nea{G A2È?έi603ҝJ}}օ/ v M.cBxT\%E_8;3ٝ z̲O_6j* 2e'gBX3w Nɟt]/ʂ~?OZC#V M^lxݽ#ؠx/f[o."FQKz"xo51GzF *,V|mrZ Tc#m_X]Aeisr9F׌̈́=~O%[j1t15ٍSzF\]iGv)x ى뒚HUoS=u㱓moxhGeh@-Vg2\Ϊ8QُyZ )݉aJ +JଢK&57t139PoXY , ʗ'M6V 7bh*Vɫ%Ԭ\}CZ(K)+b^8Tsa U [OgqLj{|jdymP="X߂wgi87$daAPa^-{ ӂS4%nTfҫtɖ)RѲi|5|bXELTWsieAn:rmx-lH=wF34l䠬+ s*k5 {cN0ޭZ\~7PH7u7 oi'.pk"Qv̽uUw 2aG@dd"%WH?P! ,/HMdž6ţۍ~H ?2^cSnt]sKEPEcN'cbD(dWSm?[:vM'EZH:t_ZM yG~rwW Ȏ)—x!?$@y$Mסu9'%L{sg;9d[j~akǓ^"HV<mc`_̓Rl >TlJ UI ~SvR8%וߙ-lg2wU3a96^19~D,E?H2$ ù=a//y<!* 0ugvnh%x;s{L9[.4=邩 6HHOҴ/S[4/vINҒK`y-Z>߄ s{qi<ĵSwH 遑 (!S)I?[(XuBnU6g+M`mɷLB!1臆V" PE [z5G :REuAgz1ƫ,&H7顕^yXSvp"W~7[=x(bI3o. u_G%Q'p>q0]-|^m^FH؜g/e؎vg\HKA`g& NDz>y))@x VɖCs~oyv]&IF L  /O>ɧXnN,亣5{{+JE\c#%Ze61 RP |?Qߊ %aQ͇$q N#x~9mx |{6Ǒ5,@pC{20w/^3[ ݯ;V,LKnWMsvH(,("DQZIm`;Z GSem 40TZa'}:ٜWC~?}$w8USx@DkH`x;:LDr nFLVk SJGMkTѐ r¢Ч3N10<|f36_z.pR{#o^3lNm)я 5.2J-yn1KJʚRA .,~[mmY<M\Y^,tno֕5k'a[Qӹl\8'"M, gltI"0D(զdr%un+]B~+Jvr`<ڧ"Wjn7ҢA 懦5#tɿaaץmz̅S]2=^1Qe̊U"A*_;.b{u6 0n p5jAP&}SL s 1O"R!:S_͊!HLͲHz06WAx~j?]cN7^x )37}-_Ϋa1ez !&6C]̒La6nFW;.guޞβZ8#@ eH0; /'y qgg#8eQa-Ndn]{`A7O 0Lybm{LHq˂]:I0+}Zr\}Ż ӨجG Ԩ9%9U"| c\*0)CnVY Qj֛'u_|"& H;atZ ]bӘ(|`x,#Dw,wu3GH VI#}FncH**]d EPőV?cRhfv7.|V UX%px?.yȪJ7G5 D*ekt9&w1mHWX7աɖGas%E-vƜtFZL\G^+g+|.&($ W \oԃ%p29rd]^W,2M&FbVQU-?[?S Swnb3Z' 3V'N ])u9!~5T{t r!Bm΋5&$[^&Ahu# 4 ~*5y̫;Y4`H<WUH?nI[JYIH1)n+6x֛M7I X4>"[{"]:36K;ieEV Lxȳ>=d~_շ%p"og6K>菃lTd(z "&rٷTYЀxBVBKz/iNa\GB߿^u@W A{)XSգgwXнU#mENQ\sn$_\4smvS;b~酚S~*,D_I̚R$u,! iu<9k'M4>o, )EоfiyH/[H"֏gIFB52ڍ * U2irQD 'exz"+),r9ǧ 3^EÎ|{enSJE}Q2*/s Ӥۡƨd"P5RȯG0I"ސde%;ޱQy:8'q6X~k?V9MʨirMyGAڡpU_1?::>io}"nm@Z {K&#)w-PFxOBCʮ;|IѰ- M1UEQ;xċ@#8vBS#,喥1e"?muvIiIOmǻ?+|01ao0-TrZm%@7V E M!b|Yهg Rʸ}>gҧ-n ]U5x- ;xd: fMi6Wni{zcqD5]?bӫĉGN #ĴdfV8-Fw+Zo:πJCq xRW綾m .#s?BZs=Mrp!%L;"+S# T[$*0]ElT'&fe%|-'yPQirڸ7;K@1*R.E3E]|غbZPTט|"D)L6#/U*;h뫳KY~<;5^ xYi50`:X#G Oi܌qmhk9"?_h`;08kgEwS7nrլ "[(gBXuyhlԄA[ u[_q7A E`8w>]7J?vqmlwGww;1 ')uyȪ.#ю>bQt n6dρmDRJ)F3BMU=@W`?#m~:|$hu>ԱI1qoP  t.[?lj>Ye.7{5,ḠJ1B 8,rV4lq ydd$i~hMгty5by ^Ζ0s3)& lD.Q9Yv?OƼku ͉%oD*&93DJȩ$m6:HKw5ՇČ:Ydefd0l}ieI{zpO/D|9=CP/&ZY9_/tC)ߊ_]`*;PZu&FbAiĄT(ض$D)nݴQlK$؋+rVN MU0Ȃ8zKW[2鳍 /ۄ`y#,XP 2~o5m-׈* 6o9KV1 W LLIMVQI7gX I 0%wE B Uʨݼ~YR;HJSˇEoo#'5#14ABI 2#~V* w%0qy#aqr JP\c{xVlxH1ֳb+Dzz P'š.5A@BA ̟VH3DU-(ˋV_#2/,Hӆav"T}kϨzgnU֚M3i5K Ңv`͵~_3t*F:x=*,D8EDo@|;ṙOj_`+w)f/ M\n7?2O6vi٥iI%ӗntbxbӞ2NSTn`ƱL.ZB5?]Vl'*$Ju{pbknl*B3𮔗p?݅8BsXX |otz=/rq u?U c2=ӔgRƯ5@\ĞuQ{r¡W4qxKԆ^3!`lc Bz@l- & A@u'cD 1p~;j.p(T^6X S~ˆ 3MPQP_oJ5Ms4S[ܣn! byx@ )%U*M}%~& H^"q'! Х87Y+QFO:%{'ApR!Mk: )eN_ߞT~`1'mnIxU)EȍHܕ$R41ٺRQBoY]e }gcZ۵К3,U qJXB~ʷ V'p?FUD oXjgwG!l%jS쬛 H8n(G5:iY}HvnD @X#-?X"K=L&fZ@gD?PuiEy^zrt &agjhTt>{|t~B4yP8G-{~6gGWq=q"aD.UIG\ud&8gꈩ=-byض!1 7D5%7Zk8q{-gtj 7x0 KzG6ZB@ַZȶ^Kx2L4,D:O)tXDOV,Hs&{wQRtZ>L_ bY=+)t(UBJ:mmI.#HQACWmgLT#$ŌXXRӊhޔyk&]H4rI<$8PVgP\Ad*_,_c{x:|'Gb2g VWIKJn'[N[;#NԗW5ϽN($97,~ݿ/v3Ok~t? Mik8'+b S. 9ÖAA+񒝁7ݶx!f"j>@=PC~[͐t(y s{s? ]|b{xm1ʉ{7Gf NxiT >%bv&v Q/oC "-0vH.ԭ9ݽMsٓN]]Uq]Zڀ @C߆z8c7G\[ f~b"{Tǵ xzV\q_R3C'Z zxZ{Ez؇[#ۑP2ùYU8W0ks!v9d9ygWcay? %0OEaE d1,N$[<:6@}-,[)gldx\r*u 0:/GT!ZkAR5߆1g .(:epcܐ||%&jH%o-*uBKD7ͥDP_4.̖(c7;E{ei&4 Dr(*(#YJ>Jal Qr"*8xl$aZ;8jI, 6v W)$e4 B ?V2VۘZV@&ĞouL4FT%~!Kf=Ϯ)nW J.aL'l'.yx0]+12QCX{-zI݊YE+8CYHl$׼=?˪9l{UFl %(sD%"uAGN=ǐ9{q]yN~ <^]r;c->qW#ϛWHqLR "0l6>n@^nn_|@< V8xE/ 37)-F9kj*}S!12SP8oId:%.8<ը:KLfLI'f4ݢ42e?wǔ r&pͭ7Tze.gGnhK h)hiqv 1\q,mJ̒p`uhFaMI@K߮Si7^^Iɋ=#B>-u3x)X@T$ %p^"S(x m<kb*ٸ4!T/jH eX,>\X8#ųQ]G| 6XY~m|.'Vl. oP 3l0`..Wh7R?vaBj 9@\LH:׎\7 qk!>o&`4NN2QI y]!y X`,E3n?N$ll !msŻKYPT 6U&d~p,RFBJ<ɃQ=?PR›zL }  *_ IkmwQvmh>sWËY cxYI5`ƾ]DE0;d^fEAXNC de t,w&-pFiEx e6Bx/wNJd:Ga0do .?ϳAm:quG${uQT.Knߏ"QvO.P9?:z»Ѳc"e92B}ʼnoYqtݢ$?΀ "R{q)h t9VtOO!e}Za鍝}(cBtQsSyIcx>fE:@ɈiVm&i1g_ Xޓ t,CIROU'C.5ĿL(Z/"BƞB~`Svfa+.Cle$G^\}+K6;2)*Miu]E7x0ъ[l6kr:ͼ:"&'gg w;[zٚc`{+ty6((Rl {\&rIŜ Zg(ޤ{%L/AOC1kOe} AY>W \Nez(N8xFqc$"ØͶl8;g㤒KqЩgz ҙ Cs[rhT!/^h% ,)+1 lBz۹៌7/z؞͆Yf&v/, }.X3c;j;ކU[j.[m ,h?Qcp4컠At&Ӗ8+RZ&zгdqB<8%@}j )6Ҡ16ĹHs*!6CPELŹF*ʋyMtv={t+$D?{ä7?`[ħPҒ 20p'rS#ߎp~7"]$MJ[&b'E( duou+;C1Q@JŹ PI_ !ȍ0j;'`x#^}2t$)`DqUiʜ9D6~>u~}r`޹l2S/\mO3 Qd͎Kٸ+[{7NdOwƍl81O5Et=0꫔hs#¹Lɾ z5-D r'5 * djRPT jxWox~ڵ$bkQqn{d,kKhzE*:$[uAl0J6&S=MYmQoBfK ?F>vkpL%3'ѡ@Iw T0LDRǼ;[P=>>v" G1#pT['L|I1ͧr]kv0DqefXCdi X.qL %CXCylxOb v(\{!-GoF+@Ǭj cYk &W;7K*dG4S E+='CW%-Ξ-`qW(e'L޻2 鞚 1:$tਛ'~`Fb&I&bR3SO)#;w6SA:{sJ x ~VE`xI|ogDDa'Z#tCɉ98hY#l*#yKJeXa gpW` L 2Lpt}nlDeL%9gd eW(eVDE-b0{P5?؍@Jxujf"!K5 J!hgBLwyŬ4˯ѻIU|҈~%XmWPZǶ{juxNsKf - о|0GL x5-YCF_nimt[E\OFO9݆~)NXVABZ#iyM6 Zwb=qjΦ 0HoƴfsKLrϠ1K*0"c VÇ2iV2GPM3y=f?;bu˺MyMs1D!|pP峌І5;KJZOҸhh{v%8̻T,rUpk[b ;N llYC='DT"K碜Fe?Ⱦ*Hk#@~_nVw_Pp_cBF!JCեiڙVǍ' \ x<%/eqޑͮ75Gtb)fS꼬Ma XxIW9 '%G 2SXѹL7gj'dg .6 6q.ܚam9! Llxڥz$ۛ_S=-# uYr?GVQ ?d 2Է60J?;33W]t7Ů'Ҵଌ!ɍ8K42V& !uEmТ+ͧ *N߄]1 LU|-ȳe{0 s,+0I8ARdžItc, wU~BrRSɆ=NTq1f 96 YWʥ[;zP~p67twT?K<6/%c:8P7 P_.)N`rl ^oMT8*tK}b8M_)i*&/[Al_»#~L@~gov|]q2rt1ǛVx3QLХaҨx{F0=ٞ 5dX7֭~.I1 ;L6PT+WwV> O"Ms+&K`3bH`20Gg4Wѐ#Q.zdJ^ƛBUel a=D X"ݮBK+ZYgU^'%E&djO>5'aNiA'x4b#K"RҎˊ2 F슒PC/`Wo)MQL {7/as03:@qm{[U<1|WzGC &QiM@j[|5qb"U^`0M©!mĿ8Z1p ^[k?ʨYHs(BJj)5&tz8y4m3u"}U,할tFQ] c0LJ&سaC#WZ0^دi-OJvJ1xv++(pj)CXN|2ψ0J h7һ@춸6coQv,*2,ehGLzħL_ ()oC+&Pۥ7+bÌ} *W Hڳnu #P{@\P&=3f~umDUۻ8KQ{C ,Y$ Ō:ϽOrdo?0;cv\gT7!$vwTzs6xupQ34x[rPe.؅S ^M?~هYِ[MP.|e] NhZcE.OMt`bt(zgwY6E)p]B 8&NȜ xVG\ښ/EB'ils*Aq͇-b+w/YE~n0N$ i}+K48H= dM^XFwݡl` 17kUV^^SLJ*g}!.=JH(H fǪe-E@HsvA-1I_kN$[%2R2(kd]gك1p?lM,VO8ķVz4hLGGRw^MŁQrȑ<-Jgӭ(+BE7Qb1>( GZѻNOTf0gyoMAK-jE?u9D+/[uڣ]O/5W sүS5*gۈ(ͣ1מtP ِr]e-\Fq \5ܦHQzX74#wҔmG0j/g7MȵW_syt¸矧p==qmwc1_'7wƐ 8UW{DH #TU$ytQ~ިae/pbCƾ.pz"MNw4E3yIJeYFI$JWu,`=( HB| Dm\sK(Vyoro;!B>+Dp'Z|]3Ʊ'nZ{߆ZGݯBrRf|m֔RrAYC u`MLnhcyQ[h u""=xǠt\t B厺A.$ɋ ŧ" oMquBCFz+%Mw iz+s-IGtcXHX}-S۽:{w8gQ>Bn,&˭Z%㼁 R2Kç`mYm}ҳ {Z|v&oPE!47x!X3XJ|ӾeWO^mF-:tB&Uf:4kqAOqCO^SPto`ϫ% :dhVwVc+ ck/]޻.eSF-5B"p!+wm=0⾕Ym `j6^CmNapO%p:0ߢ-sرH1˱xqK$ eZ6 -ڑ/Hr܋ xԮ(ȭ>O3u0uwV,FOMH˺ q| ɼ{M"VkeЪZ`M߾\ )ܨңU {N!xhTv&eCZýaG)0)O'Hg <1QI9}R%M'ƚe'%Ģ ,E [Ȣ Y0f%{Zg 豊^:=FQɦ7j0; K'B/Kr!Q  tn"ffn,eTj_Z8'Y_ig 5r'|k;{\%M'mݓ^Iv÷ 8@ d@I|fvX9slמ )P3 "gjdy.H3r2+d܄>'@TaV146t2?0:l慄I~}Pk{~-C;Ÿndx 8k&U|1@6z3h&s pĉ8Q~Hϳhc>HnYI{dKkeG˲"<״swZhYE(zϬS&ce]E`Ɵ7!f=Su&5 , ;&!'|8WeP-L#|?$`RªxѕToؚlŸ.TIW̾R@PLs.R υR98te*Oa/–dgW=: CS}#a$]iybA?bQa +;I ͥQH ەhDYaE*uQ2Jp%@sy2 !94K(lX^,'6LՋnu`U "==@Z)F7!MA+T"Ytx0ZB"UO? 6$ߖS4uk1iZdTuq'XHQwǽ E4* nG:{{{l |>\˚c\)Yv g!Yߊ[k-k{2i!ǥgPYu/+r`UnHe=F>iSJ.SPՉ̦;ҕp;=FQu%+en.v:?[/N)9<aή#žd4 3s"jTf-tF[$yOP]oq>@bp3#F>ͳm|b?ï!Q'$Ĕ`\jĥ^[C6 }Vnqt QlЇ }݃h0noxo\=[Uy5Jfͮ:Iq'[_RհU /l<;)haz,{qG$#pR =Z|(f4%(aA4z,9R^0#ylx^ G,C+q7Lp{IoMHH\x9837M*VitO ^eV˼cWa?d VQs*OHb%xg p)oDY68꪿Ci&"9-.|}O#qvЉSWI=8@XY:B ) j&xw“ +`*NUZ~$>%Jf@׌1o-,ravψ*#=zP~gNN;6 ǃR\ %Fm$VPB#9}AYSA#>r|8LC%*ba~?9{")Z>Ƨo1뗓j5!J߳pY,WM'1yIWbbx-/<BIfya',g9.-x]N Ϡ N/?9OKY?Nf"3d>W}1l=uzXULPonnm rn!*¹\+ |1| 0ʡVK-!H4g=Qr^ShP(ZsHZ2po=1$XQ.@j͒J_$4o{=C7T>)|.gwMɌ(bQ`q`B 70cL8KK-,r9? _!j29 ܞe=$1DΕKUYIb),=tEQJ%Qh$3 qA'-O ?\Q!b =V@ƚ!!t!7l!dC'zKׂU q䅊k0A"yh!^ː5Xxg=8#|{ n14WUn/ Ϗxd#xЮ$*Y3>_*;@E5;=D3j~)?7ƺ (0xBL.hqmi֛J_N:jfRPieVb2_QdЯq\;6ݡ>nj;Svb7if'洺 U޶3H+pNnay{xC[#ӄ)a}6*Jqv9g5F;O(= -+XV}‘/ʟYiw<.t A9GO85wwv-pBSo>y1*WFoVو01)gj-p^7>KZt@ɟe ^_2Wubox"$Ύ懄\?Efr ۊ74j豣؂M5̮gB]Fig#i ~ڕvS(:LdsjYodW;H 7n-"ӌs hnB}4 .@RtΝ rz8 `i0QC{A}@a,H:uڍ/@Gv5ӵ'I'b148ʈGm77Uآq0]ieφ:gG`iQ9>PCW'+3@7G/@'RD /=8Cu-KGFI&P l Xf )J?;?nWTt_/ixhieے8M|<B(qYUоTi&[>lvȏ[tsJǖօ]; qF(EYmlɊrv|ɓT+Tc@R*13q?6!>$xMt ~ZF5ZxjwaIZGآ^HDe܆ oQ :P k BUwؑ%nDžySqv!R:j)cT͢`)8ǥ{4-܊>v#Y] OD+Wuh-ЪTVe{TܯB_8딥l!0`%v\Odwm|!{=]^*q3[j1 z# J*v:D lTVqL[WvoS>}}\ݍ{0FH*EнxvGvsy4qJc|q"E{pف& r8F R?DeC nј첅״hT.y8,i4 `vUe_:M тcڎIKa"ӎuסvƗ!yS#~t/)H?\D/[<Խђ@xyԷxۊ6+L5,EhI5i&'t!摒}@6DDۈfS9SM֊[R 3?>*tyD)2cxԴ~Ora 5Or֪bF.p)@2̾}Bepw Ԕ<x~|/Ij5HCbt{WZ?}@RꄰDy2p,BL}.ⷶ(kֿOk`w?[75?#hW T@BYDzFLW7ƇRLRSweO}F| >"hw#oE<8H&0 B9 \J=zfʪ} UE&v W@/qSNᣊDmbbx 8t"~lbjSwv.ĔSnxB<ïb_D`i ߝ,[S/lu8W{~j'5}i9rq_7NMFp̘MU]ZM9'yTk2)/xu J&Py8gaNa::<{kpo:z O2VIݗUv &pޖ`H:XpXe1d,WLM dzXv'lc>p%Xl0yK'%| d+6YxܿpIδ 55EL85^yi6>J-ᗈCfAzУ[lJ>/8 Npi?L3yI#Yg5xڧ5Ǐ2` >OWt[^lQ[eqgN0Ise^!k3OӳiE-20~膶8;F)%? ѫb`$D$q3l#׭㭆B}Io_VfX|~Luo dwJ33ڳw I[Q?|h^q/ Qϩ= Vݷ̰;\E17 h|?'_䨶:Տ 3ڢz=z0BPZ{}PNڵ9%Ca#!,=NjS-?5*$m}\nlCC忆RaG!uֿ+ C& c6|Vr9 zS/hź6Udxmz2°8DbW iw 5~bou+,@?)d e5L󘭂Q68rƏ2J^ܢrf#Tۍ=,8 rbXo٥Nh\| ߫-soNXn61Ҝ /nJ2%pКt숩F %T WR+4g2m8 \(QrkO}Xu!QoNG"]G\^ULg}ߕQj@<گPtcFAH}-[AuZKqUD#{ln~MOJ?1Y8c HX Z|lF (&4;1<؉Pv=~ YMC2sxc"S r\6xK昷ɅT >%&AiR8܊mbOq ']:~鉲'=4IS)^LJBHFlQ }P"-IsoP"b:n̖WF 3%42(+~:̰+7-?*+poBtz2bE `I'\45̧mzB;n"LnR&İu47:  ܄^Zq<5ܫ"gi#Mm|^=Bw'Hа0qM{Z׽xAE3SNʁ6GEfmSl&!^wV2A/³ :˒܌GFE^ş\p&[}Mz|% mF*q( 8eڏ~2l VΈqJ`_{MbV,FO;ؚJcmjoV:h,x!{2s36ҥM[نR"N4}19G FTҤju,ڸOZlN;6]K>q;CΒW"ODI"Y#JCS0ผޔh2_sWt3oKTHqSvJ(tGQ%DƋVcfrX~YJf9ZPZϕVVF#uƍl"R,֙§$9Ɨ bq"- F^z 4$XF.g3tܔioU?'>26&W%oJ%Yz8&2o8F;s5۹[o fNe0WyTHdo~HxWi|+&zrh",dP5o VHgP6Ҏ%gmLc*(jd=R+D>$wyp:+E<>}uccSQq2>ZV&%wk9B]h T #VÊ~s{G2d~R#L}@)Gd(Ʒ$hh)DL6C?0 [bm¾ Tl\*2}7t6ʣkU؅?oW~)yyZR=h/P3ޞ?i; F/s(ZƼtr1x9b0Jx~CLml) C{?1_$B,JZZInm$RJn9a٫:;hN&GĴ@~( Y#+)R9fNr-/+M:2u\AU.3c!qq3z"?mqȠ#(-<Ճo:VLQӧ9>? V`C1Ql"ѪO7 1٢nIb"}@<\G yJpP6)"p,URSm`k[o(v{|=:0O_ }7G8 y̧d/ZÎL*DENlt!oco jH+eGq}u9͓0-~mg%MY!`) .G#aėD8Z߰4/}e-b⒜RE&ñ){:t+Ђ:Dnt%'9C|cmȇbBsت &gAA'y] +{G=y[') ,5&:Fy!=LOOǛmb&Dlmu'4`_9U_xpUX\!]E(e~ x;MAp7wQ_eq3"@T\XhL| N1Of3tl_J(7z{ HBnH/CvVxu^wW[?s*w8z.8FRLk|vS>\i͐VExlClz}SF-yΔksFe%2*GԮ?g7B?$|WHcD,(oXgqk m4LM@Wd%٣>CxNN (D tM`sigEf#5Bށ9* u^3>-ʿpӱd-8!Ol?eUm4+IzsH BaU/$?/JN jL(<^u1Kyxx9?4pxް_ニq֌ʘ9deE4)#}Icg_& o{|N[rIS'Pf%ŋY͇pl˜j B8QÁŞQԢoԳ}tǡnt^s~cݫԡ+cKuv0 ,N Nc1d7BDolAؖ޴Sx,[&'sg,- {rӞBMvlFkt1ڝGu(ڷ>&;m[We >Xxȧ7I'0)Rٞ̒gnVi?]%ΉFjdryAGql,IJtUGrSϐořa9hQZ7#U#Eu֍ 0lNuLhs?LoxI/* >]fOPN#6wXB- gGh;z3OMɊA4cl4<٭0h}(&!Q`'v8;* qFrq^sWlz))Jީ!n ud+ub- ei0֞!PD׈ED͏G ^ DӤʈ<Ռj+s61jٺGYa@ࢇW>i@2.Zms+P`t?ȹpɗ\ MbyҜ[J݅exC MK)=Brh0aO[Zd_X})_T CGmw ?f|NԾc.$MXrNDx%o:V噪v"kaX; ē9ј$h"\Bw89wKѱ} ǪٳC+#D'$qm/>Wd5 j<0ui"eKk++=w7ۇx}+sZqF"7c4r6hCTe !eo":JKfTnEêh$f!an ?^Z+n-Gx|r@WCY* * &-aG:>0ʔUy5_G-mX7' ^.@ G&IBD[Q]_T[Lr5ۍu9g?׽B@~m՚+1W5vwWGc֡X+uxaPvw_e%ݦiz `z^?B2:hSfNҪ:"_܄=x PVɒ>3nmBvݭ=[ 9rmQHVx"+4fwK7 RZC|,r:m*{_Lrbzo80Z*i ʍPj:#uAaol 0AКF…rb\4!AGF&q-H/Fb0BZw_a{zBal M̦$8Y=3s|x3rn%ֶ.D57Kvk<lgiP 9SEg Q\{ށ#+a=uW% 2'I$i {Ssyq7@΍z[GnJ%*LS74}An^of1qRlUb܍9WXhhaq8DԪKWcn+C29S$Jҝ 'Ӻ˳ŠUCfj )>P 7hԣA;Za!/MJ\ޭ\'v)9ux@ 22PbcaΝ/<{?'{HA˷Zd^qRSKhΌ%,'['a³"6v, $iŞf{3=D 0cUE ?廛(aS#jcs~|=%+⫓RR ^$/I X SC?Ksxy+Z.[j 79w@]m)Ua ti029!DO܆aJ9J&pbOX@]zQisxnnT1(z1[xVw;DEiM!8,s:oXzR *1l:\AS!VQU<*sjuRCVcOдW>#Ւf_9J(l3i`(䒬DHɽ"^5T ?1o;f Kg?;V.+׿ɪ|l;??QUZVQɜ`ʒS]Fqֿ`ob\9 1r&.4HʒHL*3Y*[&li.AF!2hx~t]L:"vgpr]+[K~k/BT8ip)1pC ?F@z~z:%n6aMP $p*Y[l 9n] "ϒ` (2H/χͻC [y`=נKO]Xr'zk3b8[^_]ՙ ^.]?>WS2y@ "Z5{]HKŋtKy{wPY3MѱYߋfrj_₴B!K1{i!_ lپeT6Ge *⽾P#,v9= t[Y rqISqozUU^8bL):ʵNv<Cm}uO|;ZSnP&yS`(| ]Q}Z6XJ; zka:A-v dYwΑ,[W*5$ѪU9͙;ż~vpp3;z#ڈ2>5OL}!7 ]WEQLg?[@c(ffD.6^)фOeƓވL.>X1&OAT)EVECkWRXt PP>#YaI(snA|!ݞӃO vmGhZyL>߂ (Zw]jBJΩ-:q2 V?f,6^-Ďo]Yh(-51SfTX6<Br #R.-4堰OhNjct1.=+ B:_h)e%e/`˅T,uke=.jPi(CI[9cIy59Y]&iE6!`!`A]E=@ }@ /GhS.- lR;ib`.%[2Wf]"Ial;l"zVqR517#Z +Bॅ |)a{`i@vA$klh ѝlP疭{-p={$i8edPE#h)JJȖw}tz"M٣c4 14˜,S gCHw)AY҂ I.vǡ%,&z CkOFOPA̼cn3?ivuvmxZ4I?c'U kZ9!(t`)WAH#ٟ@ B}Y??JVS~R Ϙ{ԺFEY@ĘsE\kuj2zyQCWB>.)PN)'E8}9+qubޘitlyC[k1fAbRA.&ނ99DϹx82Bw.(+"fLtĖ L v$FXum5² V1b pQ>bey6G`X=Nz-PT{* #7Dk-΢{( F=kGJX?&m{YA!`|tM2@]^ ]QJK{,)2VqON ynLœ|bm58H/N{9E9ChB4f*7jR-x_M>qycHR'S,oZ0vKϼxL Pe.xfQZBZD Ā 3!/ԏ>x2.25G^d#d9e<.mRػ/nw-m]wl"U'G bߏ⿳O"R3)~qWPZ1{J(jl_uIlEo`v-1Ձh(\7u7ri ,1np1&Xq8;MÚTbYf1ϗxu6_lQ&tFd~unhU|חRAI.auْ[kĚ\”:O+k?T/.Nig5kf%/-gf:yĆ2by@ ЬJ eג IS RjZTK29\dKn4K \z2cn_os 8ҡ(IM\`~rPK cΧIx3pw_s8S׊(K=p_  &Ԃ#<,Oe_Vy6eEgl ^Bj)ͼV?½U@>Dbվt:5\4nOjMi7*)PPZ?GIe4e .IH#^qaUcϡ}OK/]W!C`qQU3,P,6=n&u$72=llZt⊣et j<rZ!`!`~jM%w|ax9Cqj)L7mqjs !]SFIRxݎEI ino&9!biRPkw5[Yold:J F4lɤ9UkC@è|͓&9- ~: Y@!`AcIAhLX9~˗Eڍ$Di;]hrM[zZ\lRY4Q|Gum!/q8}2ʼ$t@I z#zX7L_SDENå'Q\tWf~8صĘ· n3Fz]?geuOVv>h|HFHo:B*jiߏsߚՖԌ>۟sW+GIg-#ـ $I2L /b1*y;o]B/6F$od&?bZ@XZkxũxOQ[D+SO+4S&rl]n3NR7XbܑN ]hlpqR v6x({rzb7.* d%:y+aPtWOKryn6q )j`&2ݒ'))4a!`!`~AE- >~؟2QDt#c5 G\}O!8xNڝiK@8Yb< PӸ%y "kRzAdN^cuMExQ h!`!`EtML#E-gr@D@iV[`:$Bm!`NjM B RyPo" s#T X!`!`AIAlLY߸Ƌ6eYJ}gtYe4"Ƴ{1F۟v9zP/Y2Ջ- 6~i j߼?غ>ofb*'+&Ε0=ju`'j bU%`l +LyP|~r1f3[Mo L*j])JVvELYI^~D!ē].h |G_i 82X}wjch <"»BlJW$wik&cЮJmNK`茎OBAcVtRY?+?26FgK{8/Cfj5LgB~Η3w넀k,$y@*л,|Hag5HܭUV g?_+Pb̟lฃJ%iv:r-t#J`Z =mUgTh|RcOǪ'sF]",O;ƀ&@tpK}PஅmA } MY`tǹKA LCnB q0q`fT!`sA E- >@ZGN~G-ʘup\ɇLC/!=("H۩vр>C$p&**^W,>`c@!`!`J(tMʆq{m6mA y)tX;ʆ]vx 0!!`!`<*jMpjH`|#!`!A/IAlLY߸Ƌ6XqYJ}gtYe4"Ƴ{1F۟v9zP/Y/ 2mbZQcg ermB @*%ޮ#ɅG`7> 9voƞڳNΎ *ڃZ0]wczƐ5+EiʍB,jmZJKL Xx"sHs՞QRJf953 $o) !`!`VAME-ןUj&;e.@@3+b|r-,R hRj`!`CltMjQ"*_e (2* I!`!`?njMHp"L_r@@ hh )!`AsIAlLY:e\'ƙl&4F(Z*DQ%`ژXR*pl-;4 %V[JYˆ,YpiJ/SGt%1Dڄ;fD%)I5#lX|p0LX3Y ;f+7a߯?[4e0桗41 / : 2hMJ$)&(7!`!``AE-@"R:9)]pW`>@F@<5ɀT sH.@\+b!`!`CtM(gx@4e (2*!.*a!`@jMHp"L_r@@ h:$!`!`AIAlLY߸Ƌ?YPYʥ NSJBE=3N Tg7] B>iiPx0rdFSc_aeǾyȟ"mFE_܂uI5&ΰe># !`\AE-NWi ^$mS,`4!Igk e'myNڏ ZY,?!`!`EtML kw$4m0 }7"l\=@!`@jMHp"L_r@@ h((!`!`AIAlLY:Xq\'ƙl&~/=b@&D.!%ZЫmU^ B)]"EЉwRY5hkϨ94=[VTT0&V K {ӅtK !`!`YAE-ePcUR*@2emO)RgY) 55u!`A8tML kw$4m0 juP ,JcP!`!`?:jMHp"L_r@@ h((s!`A?IAlLY߸Ƌ6eYJ}gtYe4"Ƴ{1F۟v9zP/X;+8L(*t,kIxO%< 37d%ۗEu!`!`WA]E-NWi ^$mS,`4!I`I­ov@s!`B|tML kw$4m0 juP ,J H!`!`@~jMHp"L_r@@ h((!`AcIAlLY:Y\u!r#Itab |(;F4ÙOg>$wi*54bˆĸvҸ-5M MS7.px-9Mٛ9br*HH?h dCN?P{R2 O: O#Uzi!^}Z%(`ʬU0-乂=!`!`[AE-arZIm\n]$@ RC{9_Pm4?!`!`BtML kw$4m0 juP ,J I!`BjM; \_@0Kp0e!`!`AIAlLY߸Ƌ6XqYJ}gtYe4"Ƴ{1F۟v9zP/Y/ 4ASK"1|?m\(0Xd<!`WAE-NWi ^$mS,`4!I`I­ov@s!`!`BtML kw$4m0 juP ,J I!`@jMHp"L_r@@ h((!`!`rAIAlLY:,Ңl,>syb[m9Pҫol-<;v4Z94@hn j9'@ |!`!`XA E-NWi ^$mS,`4!I`I­ov@sp|!`B(tML kw$4m0 juP ,J I!`!`@*jMHp"L_r@@ h((!`rA/IAlLY߸Ƌ?YPYʥ1?bV]7BrDW֩P R Y`?=i|H-!`!`XAME-M PcUR*@2emO)RgY) 5!`BltML kw$4m0 juP ,J I!`!`@njMHp"L_r@@ h((!`yAsIAlLzu`5tR 0HQ(]# xOlh ~GS^nt㎀g>4bȜ̤I%kRL3.tQ:SB|t&䧓D"## mdNABR_Z,9vd+. Mkx\+-JM#]6*`r `RlIЕI Wsv30h*R]/ QY1]yCۂGy]is#`ra ?M PL%XWH)i:^xho~ Ms>Ig ׌-O ) JZztN?wrG-mn^m=>b*}yķ(77dQ~bȼJ:W>j&oGV=,7~n;7|kNh$E󩮲p32@4Mr%d⨝(9Z(&[6zμ2E\8vDȳ,׷gпHsɹ4Nъ_$DdL_ǥ?r$޹;[Ѹ*WOQ.(]6Pd"F<SAOAfHF&* j7+t_Z‹DgJ1E4h~T ؠZ|<;$f^ym!m w'%䪬`]/6!L*hvrILSpmU>h'6^_O ޝbΎ,,ƻE5eR,1Y ԬIǫ ? O䙐;gI)GuCJjڳr{&t}STkzb1pҲo] 9A#~1 iWbaQ;//m6u=[)CH Ju{WAfxlcAi]9f\ylҴ3=Q}1ܡd[LFccPO캣43x B=8R_^3i7'1Gxuٯ'v^lي6|[W)rه4en6ݝꪴf`9jHldN P{'9L#/N=m^AD DH;`?Q[xR~_$`1-Pr$ѩOk chD sFt]k%)63SGf8WO4(rJ'n}۷{zmL *K/BӅ(c>[!xl@0N7y+b9A[%y/4{e FxҎds^B1ź\hDSL !\;[<ՒvZ˸*v$meU@yS侹d$=;搋{6ڜ٬sǭR{;t귖z)PgڡK x-Bn2cG^ +;!L.E?y^X$hC7^>Qm}5tнh̨|E6\;v``vAwe٦ rTH%Ե H*ӘwU|cL I⋤UH)nHJo _gRU&U2Bi国N? #1Vs{bP˴ba*S),>*1Ml{݆k#nߖ_ڵNa]BqN:Rw3@S=D:Kdu -us&^lmu*PBUzcuκ7l^/*~q0Ƥ R($.4x\+WۺOG:}noGsnY1˿C Ӱ^ ߋ/¶'djF\}uR^³.ĥڪ^1O5]$ #d,4݊,ڟ7:xxK |q.3vpN>%_qWiS.mPQ[cۗ'HXlZ$K}t@X_[)ԙ)l0jLHmS{Q*#d&,=! B-D\~ӽwTT*8LzT3g1Z%`Ŕ1½dc.jYw9-TҍHdl3p0 W?ro2O*S,?u@^xB;N`BNٳʲA g4*9QO3K}eq_<MY)[jY ^xEɚϋ?oCIYֆ^E.9H:Nú"&UJ{3R|Bha%.cwsdS=)GǾ=Xh<(L<7?%q>¢Z+O6P^b1e7Cxq|Ej"tHfJTWf?ȗ^1R3n}_gm$S`@{qRnNw(])q?C\kҝ>-][+wύ m0VwZ*)Lq!@ct%O=O,# yLaSNIz  yM4ſt(>w6`ʶ $<&q{b RLfL#utY!(MMM l ©} $>&Za LDuufur9 ̺, kI1 V5o~zwijs,|j}렩uO(JR3p7/:ftS߾`v*Wnhι|g41Vk(_ƟpSBI]?(3gD]^ _GXC/:kBXUrݎP_2"w^dK@??J!'MɾD?#T̓fu&練VPַD |pVdi2l|{Ru( ]X:yU`m4}FɶE/v.^?tcŨҐzp+ǿI20;(nT+sNq Z |Y,+wվ.BL˶| {+sx,.y^ pQFQc!#f%IսƝ1[~ozXC &"VN>w>yՁΓ="R+·=_d^.zC#t-?lNq0 I93dćA^"k-٬}>7"3+&(הK7^HPz<@^_e=C` 1(q:䜰JB=0s]U.)@)5.r<}:O,q3J=/@ğ>8!AuͬIs}R7+ӑt G?" im$H*s>JuI]r Gr8k1;bH8}j/c" RUx}ස\"TyG Xc7 Z/j޶W X"i%u8?o^g\I .[-2}>&bka=뤡U,r[&ɴC{n_i@ujaKG`>@#'6<:9/)"]+%Zz(Ȳ~dȺc10wI X' ;d 7ݙ}chwJdͲXʷIJ膿[=O#i <#pDPvpdME]rYPeH'ÝQ2<P0n$h͞"X8n+̝mYʌi!idu4*! Fzs(λ}w.1sX^Kb.h#'/Mw|}'ZV⁡c'Re(]1>GwW1St:yXk^CoxKFhb7zT7 8o;_~J6M :lF]<ʽ{SCи: b R-[}^=G YrH;ST8I5#P,q.C[3:RÛ:kGrjy@:5dn-1Q9A4[?WG+;fhԣeGjBDiTGxqW5\ShX*oFBU B)eAF"T vkR˜?EVG{S6ȵ-^N1&iRKhOR$U;VtF $v%&':!.G:Bƪ9oW{\ E.$=LU)T6[HSږ TTJ~!&6`-#yW|uhr&GzZCzS{L-\&[74T) uh^| :mD;1@ՠ{#ӥenK_[i*SyyVj KcY heT+RS0cmp5h l[n5ȓ=CEBzjUDkë3$NQtV 4޼3G 7uC({ +[Jv!;[P]Fʺk<qyt2P#3 I:'+!x%joSỳSc۱aOBEEo9y$UM3=_M>$a,I T,Mfk QQ{VySKXM\CZ-)LJ@8>.oR61{A+Iͭ|-ĉX>?o]I)K7E%Š䕡'-H!RUV ~XĪuUx{CX'eFFrdhNEȲkH'U65 3f:B ,W?3isT޴ VhXw6u@8@5 0ΣP5GܿEͮ,hЫ .(VΚB~&VLcpH)n⮡LD[Vڇdg*ڂ,tx0n&.A)|DR{Ӷ+M!`!`CAI Re0QR:{J:/ݢ^>Ӵ!_ϳ%9MFHc@Իݍ l|p$|u ]B"Ic#T=(v(mΑ)Gbouq}"%' 9"56jYϫ2u6G$Mih6Ew`}Z7\ auU74UÅ86V M~"w:?h:4HI6N9E=>_ φqo2~QܛԎ3&ctĹ$%Rih88L+IF |xG޵5O风s#rS @iIF c3-Y|AbP)xkEM<}–,*JyPmm.*.O58" mv`Oވ:nC]֡-Sj1}D _%nH~Dcls `tjҲD;Ke4#T;|W898f@IQdX;5Xx.}'rö9枴!0N<C(xIgeomWuPg}ؐ]p[.1A}cWS.`{|D!Po i~Q36z>N[ν>Hۆh癜?O5 )dj'5}uY$u: 60@ q?R ļq ]X v<\UQz,JО@O`i#[ <>Fߛ-oyAe0sGL![N(2g~1SˑDc T7?,&1F! י\Z-,]K|yի!Iu\:zDb-;>iuaQ rKs$A6-ʊDC!O:t^+XU8/˖@t.q&bS*L6 (M:X9&ϵ!ƺB_K[}-$$jFhhĖ+)8XrsR\)르ĒN,2vchcW ? w9@3t!z!Xo0&Β20(=ymQV'1I:n߬ ,d"XԖsWpp`x+9vZtNP:. ]'UW@n4|vޏwGL5)m@UFMtm;%8˕8k(L@vL8./z9bPKҽ&Pی J0|b{'/Oth)lJ׻JMo P+産0q J'6%gXVi`1*ni'=*ҖϾ8Jh-}ad|[=AmD2 v4k[w9> *hOٴ"T  s0rldrOc-=_+ dڡԕ(C)$QO>>DiAj C6kI)PP:[5"4H˽HQltr"b/5W=׉g2C]$7?tm_zl>d;vMt[\IbgIV1]A ElMJ MfcM?HCt!@BGs=͉I#:`Ho&c,)<`yw 7HC ̈3Vޙfw򐳝jWeva%J ݛ/U`Ž %XOCE^(xt&cxNʨ"3{6Cv1s>FHc?~n1P'*R)&5t i:?ݧZLV8И9lmPjB ti4ܤ.ZWQ"řFsyh]3hFѬ۞D k&rOZm!)X%~F@&aaybau`疽i# \24ъ38zU ?S\BK^ctY^"ސa|zy/#uJ Yvl28S5nБͰ˔2v RJcf'_ m`-Z<>FnR>O% nST9DZ|ac+s_^9X!ZAzo\K} Fh` Ӹ# PYdsA)E)vK ~˦m K݄n׭$%t8 ,q=aMaU=RY15 Ac䥪oRJB[1zCh6֑Fފ`tfvI kZ3@tO֌T3(l|g,M:g4zheܧ]P( l^$uR=a[$`}J,!*o E9} )c5oTj<֡&a /KhxRPo 1a*2oL D .ƛ>l]~E p+7hϾL; .:,gH!~~MM&A0E}kVׂdL~ل#2(>:ߞ:Z&'ޗ ^T Z+ +#cL4fƓHS[m]%"tkID/ow'U ^Ѱ/[XSL)oz1Ek (l hX%T/NeGğ ~\ڿD;/'PJཿ<rE6*^i͍őy5/oa4 qO=ϜIXWS^L^4WHZ~=AFd𗵚ȆXKrnBsW1*q-i[U4.kUܮ|&m^(`|@T|q_\[?=&I%}n>ҍ,dD$81\o-J˴2o?B,a dpL<&QQCtM-.2uCګgb zqX_M_wWUoۼ4.X^Ѱrv&ZH,zbL8)AA0]HcכR-]0MTY Q'T| tJ[K)%пyy.ʵ! }HAocz; מf1n&ŒҧQX}! $ӥhĂxwrXI.?3iGc&`Lݔ ^!&Odt[zB:*{Z78wdk8? P]QZà m< CnO9dXV~Kb6lQ=g56wE"[ڀr@*]}jB@f3@Eec>ڸDiI>fXz%gvWZ"CKvC%5)OF0GQ;4ڤO|('7:8mPCA?#Am}Yэױa)MN<[(p&>ˆ̅:f5еp۶#go`E&uϷmA B ~p/p>&pY^_An+v)rو+aP!l(Žh=X{ {95My{]<퇉M8Ӡ3º׸+ё#]mCrC91$_cZav';̀a^mJQ*֬w7^@B2y4 B!:lcI 7թgjSp%\.H,.ktXǖxX*ߧ;e]lwSx؄ʄ,C:{mWUb{g2l_i=Q쒧&dg1z=HJ\} U1'!F]; +P Lz/jqn-|QB~M &&YhQSqj%Wi,# > qn I4*R [e50Nf %$ZI ay*6mn6\VՑ3 ə. ()L+8T껴H/13|e_|ELJ|6N2J|zk lA?*ݻe)dxGdrI=P; P3,.[b56q[P[(Ň7Y2t]m1u:q6 odBBvP*4"6X fLoNpjse2[ Ǣ~?&(~Ѯ' ”u{ cI#ܗ[ҙ=2JS4!g&z@f@d!IvB7؆Bl:YeDA6lUq[ pܻz }{UOS2|{N =X=~ZQ3r3n/.Q2YА\_[b`Rx:n`)yWkgtbN*V \/U`A~趄I1}P٤Ӥw:_)N #eNEƖ|\5y$|CB DZ{dUPmY2 Z u(Cn$>#EES|.L A9en WKƙZg𖎞nH6 nC0NhFFψ 5M5mաqW`hrwN$!aǚt= s58\8}1{Őu;g:- МQ#SҔ=IG'MߞƟu%RtT xæ$j E  *1V(-~pXWzź~$?,v<φASBK? xlW.vj8S^GgkbO%[]IִtIX{&$PVI.)ڼrKIB[gzwZ8v~}5NA$)gbZ{k#Ɍ|Z9"z}⡲ld*ljUn9)/m2 Lj]u䑰#+)ӥi: \--FXn[ `>rr`i6F֝GRTђ\ w!x16qa!ن-ki6062w.eCqQ,C #:YO1V>X;;N4֦yAcv? Y`)da$ctZ[\yvH8"4llBYBt{Qk:>mN A~4dS{q2Kӽ.敹bL!dAlq!㜠ՙlq:I#OU&$uh/3Cǯ,'@]ߤ \20;:ZܡKc[;7ir7AXz-h"}Q.r5O`Z(@+Db+FV;X7Pk!6M0UOc5 zk<%:(`qĂku7XZp_ZɔhbQEȪetaP3ܴᲲVPA2!Qr: C+v" 9 G3zf"pJ1̐ީ*֭Fe1#PhjbdPF_p#')!]oeP^Lޯu,K#Sǯfe5}*ѧ>u?uAGT&s@ȓ0mMG Z湳S^bVhޅp6T-a!RҲ든:"4nAσH.rY;xCp.lW1R"}83D.iM,D6g֧L_@8A fd/)7c'3 M ۨ^ !##vVNJhuYϑ7Iő` -B[y 3OtVEDo/tU@Ũ`9gzYuqF NO>̛UC=d"'Rb.iHDj/]l-P^vS[Uh#}q!yWZDnn&z$ы<Ʉ&G?M_L>䙴hVv&O\ \-ts%j KV$Vյш~k{īۀ;%=MoiwF;0w^o?ž(1{ (تiD$7wXI9$=67 þj%OIfڽQXݼV,v?ma $[Jn8C Mvw L 6dIXdF7nA0FewcGW &V[sAkZ9h?_uL^v&;Tс/De_ᔛnkm{]x}EIo#Ӆ5+ 7?׽9π.˽59Yw `Sń'Gʈ;uS㲜 'V}CNÙ}huuG IOI}84Qap9 s' u\^3'sQFBXO^6D1 2T,|)&YQD1-?I'/?htd"5/ڕ1Gu52 Ȧ,6/Ѡl:V1dO@mHM_}tV҃(ͫ1FvxyC!ȳ//6璺̦hx4+cl-R_]3wM70_L/-3$B1A5q$%Lc} ³QҊXcLx+R(0XU+X d+NcZMo\'yƫݦ~QTj6HJPUnе<[t.)!Iǫ9badD֍_0NrPƎ&E3hp~-;v4TP5#FphHb͖;ݭ 3kb9vJ?b?&]P]JwR%H,;väي+'ѼmĂ?32OQ !i!b_.4+.3g/ﰌpycO1*o$Aۙ Bm-#]y zQA-( Ě#;(Luއ]OnB K++ K QB'e|^9pt-2WL5?Ѯ ssT|>Y MTM5Tso8؅04FxI`q(vIwR.d]ҋbH`߼e+.5S;UuEwYK ¨QF o:ՃWqT֊n}ů pD+rps@?ϸi掠4H|_ Bjg&9]/_%`+[egjid /gefqAq?=C ! "z<;"s@>3.?\ 3m2rRnxv\YgF vkQW 5&em\\HDF0e=$u8tӱ&/sFk#ʌVZvưD*<8l[c娫LcKbfZL' a[*p!v PX1ǖ4W)'\[)DA:Y9&X1VLXJ[$ c}*b2N`=׶1O-VLFZp׹twS*UUl}t_M,w7 sLP\7F{y>C޸67dO1)+?-83^w.O -4)j[Ө ߬ o?< XE##^pLluox@MST 7Pg{TSgMY]k .9|-gz9-uY^TQ j<ˮ]["3?l؎eD +3(R|-6 wޡἴHP A{VЬ|'ƍ;|D"|&EGߠ'>sa?UAZڠYZ_ر ?0:c.4շB@g,\V)x]@V ޴>UBIZߚ+tgR1\+L^h? =W@薭w8j47c u:7?dLz|Q0蜳꡽di>= b*PKp{^rq&n vs^9.^V,Vn;e=9*]VMTz-y:^Y̖&l|>sӕZq1M~M^rh|[6oELDذՀa IFbKu-H\u<'շ8R%lS>+Wpt[CSwMOk^DFX$;)52L`P3Eo^]Uڱ3˧3`+rQ/goGAɎ+%}7ི>OX갵֔gPR#ǟT!<ZuLd[G:rULF@F83a53їR4sȍ`'׶) %1C n.}d}\hz嵾^nyq*q&jUMš_En٦a~ll3VswBҭZt ' -e‘XuyfwKg;!S7y1:KH0gr\>>Ҍ\k@ӝ\U=/S+/Q܂DG5`~eAe+"AoN-Vo!]ٞ VDՃC7@tJQ\GਸQ9u#nWkH GKg7I7qY|I)Yl^%]oZ67S;O5N5Z6:\e[HWo6g2 R!*AZ/P^(|+Ibf }.H1:JuKlڐ7fK+XaB.*m) EۿiQTM0etYx=7NHr/Nq?t.{SѤ *O7(6u'C59=ydv_D^ 2lI n6Ϟ >MbPl(UwD2o] 'Aّ3L[lXR Xr_;l\bI}Yjnz!z'.*1E89NMo&.Bʬbw4)ku^Wô(NUeyc:0i~^ÍM]Kx"*["E@gYL,` ϓg+U3+9vBfzWo)PNHaYbO aiwHšEݏsҤFcnwH^eSrbMb܃zS!6C(93+7IB=l|ZC5<(`x_Pː7Mǩ;C* ެ|"]j 1Bm[Ape"ri| zBг9sD) M߰b82$),%wpu2?m=}G- LF[VY甇WCosMy렗a (IJj+F((@aX@vC=1JӌishTtNmEdžx~jeug7t+2#JsP$]Yz(,_D\V񂳒'I$4@﯍LS";aUv Kj鶻!^y<: os޾#TE4.,(߽/|9jT S\ݳ@#3: 8,BzVXqqˆM[Q}aԕ0#ݞl4 g}{4Ƃ=oʯI$#%jhSNFi8n tOrxZz7?'WFfX]F>.:L,L|U,^%]^9:L_rh&.tf+E;&ՇW dt ~!mO1-jSlȚ~&!EǼ"0;DP]UxAXܴ'])Ê({Lӈb;۬mHG؜)IB,VZiDp[FG?"Ta4ύ~jaʖaeA$`x,nu`S]+G WSIZ'M8Ɏj&Cã)z+J<3vJ"D+M#G#$mD "L!C?@xyon/0DpeNW߭X FH$rNrakMi[fH^qBG?@qFM=wV+^ Ûoux+aiZ RuQLz2zmE/4Ab=׷׼Z=ʌ̯[ QEY iþzWn :bAqNy?LO 8DSWƿF{κeȾ#ML& V;Qg\Xpbmı,<˲16_1A!:yLj ?UECj>>/ңo8ͯ[}*@)pC$G1dc4N$70SF t"SJ2mɇkmus VѦW'{w˲π~ƥ\D^5qb9R=^0-*ֻ,cA3BޑDViM9ÂK΁,|cfBAh$k,:y^DҮfМ©0g>6Tc(6o) +"SY،bG2Co3oH9lJ528vɗ&2]ò΁BPC'hPx{5:' TޥB){]T\]3j{&7R~)O8B %X"NNMY  B*CxvetM.àC尝cӄ 5bY`?W8?ÑwMp~]pV4OQK,\'Z0#s/ COSM{|%/W2 g.ly)A Cxgp HjGfU QA [Yr|jz; EݰvoWV s@Д3o[3v tL*Jʤ尳xͫ#q>^y' P;VtsF%(}sW_&()vdZVu2`MBjm K4wk](᮫5Rva\=,Kq)ʅTٝ|g|VVmNo|BRI<,1U{w@Vo ޕؒ $ ՘ #53Lfд x a6O?cPm4?i0wzKU10aV6s9"8Go4jM0,x̣mJaᙣJMJ|xk3{FwF͎/^hͅJcGꈢǔ! YG;sHDg^frQu/6d2?% !f/wy=F@+S)$ _U;BF-J+PX)D۶Gb :Ք ]Ez*'oiVl)/@ b+ 2(>$#p CvXY.-c1IUeZ1;;3Yd"jkES ͕Iyny}&-g ^Ek-__uZߊ ĘἌî9*#O?'dcyHt;pl.4&ˍv UljV'F  !l푌kB+J7#o:x6Vb8cy jxe $2.)Q? qv Ϲ0+G0>x; `Lil.48ʌNJVyO(/\s!E{d+E 'lQ g}+Km%Z֭^}fW"Cu .A>V5hA?urbSlx ea3L9 :;F7. k{6T#83ɬV:AgwLB;)Kˉ/DFލBc'߇M:~U¨SYT4NO]|'fR @d']\8v;׾&ގ9.P*~Bϟ0#$:MSVb荽J&爄Fĕ!\꼠('[}v2v?pq'b0OwN1_?8rƛYd*}•Z@j`ztHb/Xu /{]]jo<ҏ\H1@!` 9jMЧnZ>3~5zBI8=}@K%olNFGϭby.AbUj*Wnjs+?<L%^ii';<ʦ'0Уmgv!hP%G!QWVEZ/1|mZʴ2JֽsĘ1c1c1c1c1c1c N1c1c1cpc1c1c1oWSƘ1c1c1cuQ&Lc1c1c11c1c1c6Lc1c1c1/#Lc1c1c1Lc1c1c1nq1c1c͌ӐGc+şZJB$h 8eM"hMu"WNOt[+RvH~;x6Y֣rR$A (jlD0[)SZ@hh$yJАv30DU'Oi?iN'm6֨ Mylec#]|T5Ы4$OtچERm6a}F66kBВanC;$lC\3g}h% |i7sA՝|R5+I€Yn@7i4Tm&R숃I3gE0ߠ&Ȩs/yꥮ'%Ml؎e|E>⣃U-ʨ(b@;󪠝V;K4c=[Q9s` "4Qk^0YZArG-:!awjㄓcvdeDrJnͮHpW2Y WTK8c[D ~x 2xӱ; Hep;4`X#'ʖt 9֪SaCv&]. $Of,Z֕ϸQ{9,͑iC J" 9Xw/֧s괘 pzF.IuESsm͔ 0~YSz]>%|.-5V98}-U_\%K:f5|3GVaD2pϡQf9h՜)Z]# )(0q얛 F+KMkP߈\FvUEQ1E$;޲{&Kۏ6'[amgAwj"g{^0f~|7|p]w"I>m::U*o4qWA W6Mt xP]!XVqOxx =I%V'oe[gde|ѕcʗ_!Ԑ#RYO{OLtӛw -JKоS0C=75<=y?9&ĕ L$!Y֑sWEjM{¼ dpwn&'U}V}_΁MsZSohc0Ro(/T ƈ#H^׸G9W\1JϨ7Glj}>;=C}#ܠ8O^q6>SzW:M"ݣa7F F\+5kTOLKyXrʕBCq,U9s怸=a՚`KLSZz܃|M H 4Lmփ w8NA:G}U!B4J} >.4~x$ZΗ͢@`WhtXMt(jy/*ͽa}]q/H1=OK0aKf蟧xz3A=Η\lD"MEM)9ʽdK пB>eщL=%9nE$;Gb6zΦA|R MLM:UL_6# Cϡh@ ɺf6!ԜSWOW-(f1褯|'ԋ_8 \螺_CqѨSG: ^ ؉U"y&$QQoʱX#Vs,= Q PM\Ɵv>0ֿ̗+gsyUgȚcF5@櫜F2?M& c\˴ CTRtxTje_ DY4V~ GW#c;'wE EC/-fmIoQc|iט,̋=2Kό-H$=/\*aߪ_ k73+FE( t=R X%3 D ~ )L@^錤Q:x缊gxhqܽrqBVMy*ÌL'% ]ˍ!Uz "3vG؜uFl2'TfB*<)AB_LNl%46& [Pr>.hKyYjvUK.atiT6Ö ^b|qx"o>ܳ>HX6$16m,ϾdPRd~94BuKh`7KV\ vvmt8s'[W`Njz>d?(:LJ@; b=u<;Nn2$فY&)iVʋ5 dAPS7f"cH>->_5}xm4c09+6PE?ey:N+|XB d|,}E@e\G|U^2;m-nt^7onr/sYum cOKn4fIߟsoGjVI~`~́#uJˀ{U7hH߀rjr)ctA4k1O9V0yšL!"زո3Y| K~au6{哲S Nøʑ7Xe`pqܤP*ybaz-XrFCWPWQem?-.5!myv뤂B[ms_+V1󂨂of_;ȍPK_H 6*G/QF2Z(Bq^ 4Fv0Bpw15q~}?ȫY--Y sk>v[$ * 5b¨t`A_aQ] 0bX}{dڠ_osMNv0{do%]{-gH/>QYIKO_E>XY myѾkRn)G^)!^`QR5jqz49%ї~y=@y ?I}6|qG첱L&BS::BTv1^] m󦮒X!տ. g1x%|`0)ʂL&C}jZh1V1Zbz_*KtQ>D9ЙVuXL 7Z7ڪUs˞=ν#`k|(2i6?N^ a[Iћ;B"T|p ¬f.Q:KT2]b$9'Omzu{;2딉*E(o|aS.(E`397 aZ_LIOb2kBLs2ԡgŮDqQ^nE> X/-cW1B[ $jʛVƈw0b Liql.[rV0ijCRQ"_u(GX JiXp,: NFĨbrM_gWm'ĞQr2ʩVB<'z+kS.ҡǺ;Wm /i`>蟛 ֩F=%2 ) jE୫vFz`]o kCA~1 ?읔H3ooxaSxEMHZbG`&,'q h7jk|"~>.d BC (%I#!L8;%1 ꍪZj2+< Ǥp9eZ Tza>t=i/]Al*|A0I~Lg)? ]Z$}c 4#D6~ƕZTaө4xs%LYrNflF(CH} /"V2c?m.9*f'I"ЁL*:.';ǞmVz僆ڤ xٝ٠>AtvQH񸩱Ѩ%V27M4U/or,؅NH<)>QbVUDAy'S1]:%-̩:hQ]mNMǼMy'IK_Πt|6F#Y?4R(>*L\e\2p@[q|}G o];QoCsvņ-.==V~^כ75S/+^T04Ӱ%jYnaMkg >"a(m]KWJȷQ ЊcZSa0t#pjb+}e,dE `G%ID~{E5c#}RJk5`! 5њ"SDqG[$ҭ3YʡW/e1` ik3~}m5 Oh_'ENN,g~ K0(Yk|i :Bdz,(G fJlX39\ӟ۝]zz#+; Q@-X2lG>.2Iaԛ1c&g2JAL շӎCui…GRp_js Nxd s@~i4*D)&BJ =_vӊ ɢ8r4~dN,2iM/sdPRb켜I'Eo3?eDnz9K1nubqTK/ӖW̫e;>rL[8҈\Z1$åx?҅ΫsW^W7nrHؿ#!@ztԩ=$:&T|>֌~N}?ByWQ*UqgӤ 'I'* Np1fZʝnIY'9e ZIUM5TMd,@y2vW܂#g*m8zgУm_"R}: `aA-+ KQTKD발5eQ:yзdQvdғF8E8h&U9a2˹]cD>ibF=쎨7%RC뙁(Xeސnp0 $HpO#^" hޘb=u$l䠎Cam|)5C/hA]17MhM.tܟ 4&)m!a(K [S6"̫cuqV 0@?YS:Q A#+ke!h46xp\WhZg|bMtrA˖2t^DId]랝Gou y@,6??[`Oɹyt_d2Xgѝ$\djieYr zp9Ŵg7o\M8r! ΜmZϛ=ݳLBcl|8X^R %pj^H, RO(Oow:OBꙮ՜aRǮ+ɒfЧX{ Qk<6#,uNU}Jhh?H()mĻTl狄|,%+ O/MC"O/ku t ޲ie<~25;{Ңt]nMN#k|mځǫoGE}DiuM2v6̩4x5x5!FrOK7KoS:E+iqkOrwRI+DV`>^ \PVq \( z2iRCа' Ljqy~ 'y 2k#D~m#̺*/ l'eHFF]]+3.);7OxU2qA%d$,kU /Uc+1(-4עPW F|wC&Ch^[npZ'=wȺ?M%?/H ?brд>PW ҅#X?ODcl1ÁS=@GG/`q^޾ŵA^;t-i@Va걁+jѣ뢑by.cyrqDj ʤQB r"݂A6l;[f{yY+qm3x@#Ԭζ^k4(AOObV"VI{LTs ӄz͕6 W^?Tω\\U&]"Q ?r 3J^;u\N UHR:5l+à U 3Y"A}N%x]Td&L PBF0_|Edғ 0NGeb%xez߱v, en &]ת;Oo5bP.K0q4TeK@&H3s5[74Prk7.'/1nsЄSt- 4r7dLfoclҩI_wAքGj?awW(ҵ n╠NCjcƶSmI|ccߝl0|$sN:KE7syJEFtaRF [`iȧKEsQVXE_Gb+ ̦=v-g2Bv +{u&cEhá }F &N 9 I%g9d5\̈́'zz1@/&žgwWCڔ}#UpUOKȄs}AϛIiF0th*W*,څ%2W^˺lK^)gks(^`~\7n\83ڨ/1BS8:rAZ$:9B*A GR€)b= L4s=>j(0w<bTi<[ڀr Y ;h()ћ7C8dA#՚;|VkcqK?Ǒb811p7er2Ifӑ'2:/ @{F-RBhP+}ҪTfhX!` AA]I&S<p*/|7pk٫!5^#9S3/? 3ٜJC^g\ ,uF=/$ɬc1]quUIsA1`c!QEA+|2߭3v9!XR`N=pI8ZA(zIV Jl_R`b}axp}+&"x^I|HpLxl0b۹KD0tu:T*[%h.2@i^~} |rU~\Zm;j(5F5ryZ=JNTM(}f*b;Q>"#sW{<'S~Ǡƕ9BQmrHg=]z ?$M]ѬbunveEiAL^$`w HFLmc;Nljv IW4{_)-ў&h!/qqlejʸJnڼ~In@z&ΥF<jWi_4_ j!dǙ:6FurYZfhPo 0HP+.5!f8"0w dPwT)@b?袭6Ֆ͆,CBnAxO"l=åj %N٧ xmͩxhk!S ViLҝ᷏ZcannzY5ڻCC溆%3E?hz@U =Oa=5pt⣚q߀{aMlP箟֕6# B/(54uj(Fth>I_<u56zPp۬WD8Edy">EtcU7ؖw dUyto (*&+?%;K s{s<-b\G/}~ǫ _S)mXrwS<|7{f; S3I QrKH6\_a^%BPOq=y|[H{sFhZL͹[RWc&#u  ^OsuRJV2ffyQi+YHHA܃i9Aۥ^6v)1}bRTi[`%n P^6 H l6Cң!5 @- I&nek;55ȁ ]W1u?K%GNmX $ֽw0@fc#nqWiH25K NtF.hAr`D|~yzw ~ et*wR"~wvjҧoC K^3N ɦT(f Zn [@`- zUH3ws;Kސh]lwSr?x:eى,,dDz+3tm_y-i^@V,P&1 2ʭ'DHeӓ0$ Ԅ:jb JL'_JJ*?Ϗ>9$MI~bShi_,)3'[l hbNg)@~%^MxiZ`O:su.6DZ7>.o(T( MV%rxv>.Ń^xp_;N>w43@];x}=L.Co JdNR$P4"-Tۚ?v,63@[$)[#I(WeV]n{ۄ}D"-X%_U=ʑ&LFIBq<ů}+S>@ZQD?]ce.՝EcH&~aǫ6 #S??%h[?ImGή24b*&:bא(vro͏BK,I)O'ZH-\z

      *2TvE\bA!`AaI&S7X̹GPOq5D7ђp% CLk=L!Ơ GpB021kMfWM H.ѳPО9Vv2&]iKECQ~HZ QPH=cGNr9o"ru,z̷ZsW IrvY 3(P0J >!/0c;烙i =*8~@^ 2ɔ"aw6쫔$J_^g4V1xB)p ,:$́X,W}l ϫ%"- (gsp쥶Zy3:%v묗?)hq8ȧYQQҽk u\ Ųafgj^^hM{j)ԕն}{|gLl̸( {9o+݊µC{a̕]Gs6k?۰gc n}Ea0qWe|*fzNVZnh$55]#7X_No>^_ڍF,!8^F!-$B\2:"tA uׇxބX .z Wϵ #c8O,V)S MgW Y&,)l ^I/|`VUpaXB:[mi=sU6Ξn#0XQk7ꕾ}? N#a- B'yz_ !`!`6AE=6vk( LJ *K]1oI f`%o f#pG?|ȶLD%+[gGQCdJAm,fCSLBn.?ȱ6m> "{KmRϒhJE>`W ;RV`|_P.^)k+:nLE`Q/DiI`|1i'RX')IO>ŐSpwmfrRǺQk; &MU3R-+hQL-ܘuWAHR.~^iMOh+r ŋ wLs)Yezқ `e[.\y%&ZA9.ԽRnٴE@mul_<2V8|\"3K2n.$b>nF=\pƹB@2vyA.h'޴B_ֺΓ\P}1Ea({*Y/ Ygpo;MD8 kins @QqCj""A[`zj 3^lJB WcmTĒ/f~pduҚ «AWxrX"ܮHl {*`ð)|.ÏbZAn8(mmAfMM(:2ݩ,lzַ&t.x& S]G=rr;Ҁ,{!FE.'7}W{!-?&"a(F<͏A{-kD&IN3hAp".knubD -7`S'$WH/+}G/- ma׳|0lIQ@P5 fXP&i!ԕOs3^*'UmҾr=vTnp+}`s~B>j#>V$@@,hBȜt!tG(m1އO3*@>yhO40+ނ9igPi nH] skkk7B[UWq'ޣm!Ȅ U?. jjF(KBn<)$%r羬/ұgY!FklEHN. .cڦLyly F+sz kB ;4KW3U> h8uĶ>_^\FyD@Al\JLZR)9oLu!~f%QcޠC?Kcôf71a4Ph箝ec*<}%aX@=tvSFncEHe/ǡ]'Nxy)|Մr 7X" '9+P_Ku/{&8]:IU%ܦ#0>A1f;n kHvH;J?!ذf~@3z,N0zd* p׬{?|g?GMlXsAJmSݛ?Hf1lY.w(@6d'!x¡+xZXIa{P<0SaP>T}vDёQ!5ؽ{ Rh@&=hHn/ 0q?~TLD*>9p'2jL^2g(N׀!`!`tMkr|| էSKSJ[IC4!~zHW.V|E4*#[CA6n/} w|DKJ٢w8~]֎CcJJt r',%,+}ZQ0,Ux,)~x05 pW!`YjM†dxK>$*`{@ag7&TBH%l$𗀂7qjfѮ 2 C8eA!`!`AIAlLYH .4kRUh[tH@tK0V/>8|\2ZU%pW>lBm_$Zs0n|{9RȥdmZt_T#ؽL~ 'ZA1{,fl:Ϟo|8oHY|NJ!J@=2'\vGL Ssw3B OJ|^ygāz: >v+9Ixn~NJ<9ozshl_Ӭo\^`~CS2FQ*?DdPAޕAg *cn'/9 j-Cnj']0*mu? k-vpk8$&B# ?@QO&y{[𧑜?IyJ sXEA#}wW O3%:D/^s_h{@ǠpMyO0ٝ EdO!`AE-/7.|39  ;e1a%L3(+NĢOֲp, W6D rP+E~oE:L>Q.DV!`!`g&tMBsPdN@+Sn/y"rY1̍DޠZHC1@c7^-yn8jF/0R+ ݆Ѐ6`!`!`Q(jM†dxLm"!`!`bAE-BoN"X N<.ZR vx ˼@V"pTI`H\q$=hx s5r;ӌɖr^ro!`\AE-/7.@l,@)hOr݉h݀EICp[8=6g1jm0 0!`!`<tMCd|`3>!`;jM†iE7 `wdf I!`!`AIAlLn”Iݲ[ [ߴ d/Fue('y tm_駯 74΀ o+,LΡ)Cl#Kh3-D=@^I*Ќ*~4F)GMx''H`.퐴Yh ª\g4GƤ.F~')d8=,^wЫR8'ݽ`M ,\ P9$[p{4u(lMCcSR~٘7t:*~ /rzIϏv$e:)8:rBChi԰`a0T]ُZ:/a7:SF{We&PKTSVjj,8%>6A$$˒D6=XF$cp}ÆOWG;Ř`$sw/QP̦8"dk F1:}cn $G&D+{ڬ![kF\CYV4'Q{M~D1y]_1.![G+)\h CՙZ[PeIgBnx!րXS{측%Kqo -Xn[AiRҖ1CwT޴q (]%s;S\ڬv"3,t%jݲQJK Υw>)6d(SC*s|2hǍV5dH%\׉qER`rekOZ۩ M۸  ,-'PNp)c,&7k\싋Oګ#_A}M|* 3_]wPڠȮKiZ>W @.!b2ƍԹ7a%YO3}EdڑS i4 .:N`1ӠcEqw1DrxǿhWMN4 ?S67 ]*Y?k~[%lU*Ul6AY E9KWphz>xmE@=!/R RfGL9 / Ok5c.&t׾qN:HC)$f>Dzwm&GB}Wl^ ./vs%p ^,ޠf2 D\HTX6)9w M> n,i. }[U* wVfd"Ya쾗od7'LоAtqh}LLr l7*sK]["sa#`PVIM_kiǡ<ZiݼIQ|@?Ylc J* :pkTߩRt'Wh3 QL\"rkXNg?*D0Br48,9NvW?wQW NN9bX̝a:R4ɞ^2?@`ZO-hDj\OZ?sq1hEdh̡qs:ܛvHpP{ xȪ6( 8}7ɸ"v??.5zy6q oKe7z7*L,;Kݪ8!l]h]D,MCǖ7GVKHv+`Hx_`+:Z(KVOv. b @UV~36ud􇶢eB+bM^ us& ~Ə6d1MV#.g黣BP^bLP[p! . WPlpCR^@E`hR P="4 Қ;m|1t/7:XSL:ܛD [c\MR{&-S9MXLâsDd!zrlwj*r C!U 5t$G!>Cjjj~3``\WpYih cc6}{rrFP9C?}yJ [)eon6v×De ]! ؗfc;!ryT 7U&@~GnU^FePC fo<o5hn'yHPQyăLxҤyD#3֍Whv.8mVR;`\foP۸ɠPKVGc!* ]b'cOy22Zg_@`}5y=D$9+!H K3kH mubX34\=ͤvYSFtp/AI2wZjcuAr͚a+'*XXh;"nqӤ#b=@"|xR6?ն8ZX/NWk00h }0`PPIdh|@9"HjwG!nU< F=X8OX(?Ȫ?֣Jkeo!b=W|-h^Z0>P>'i1gU f{o]DCt8[ ^ڦ,꜅G@w)LyXџmXqDK=k5p Ǡk֨#i'>i;V sZ7Tux}d'i }[$ )qǤ5@J#؎'=o֓tmn2P =w_RظJieTE[:t]3,'J`zT%L5/T|™Te@xAr?PzZھCl+)]7̾oY9qݯaohC ėC.=ěf[A_6 M- wO@SԫԢy:;KGqO#@CZViIK5L vفk>ntyLI;[K{ԽSiN?Hg;= u-E&<›`E fݛ/}etȏ=.Ѐmg£"pKa |66Rzwe8՞80wdjS$Dw պ#9 ,F6a*cŖٓS"km-(~Ѓ= |:l&ݎҶ窘"AT#:_fn=E%8 AZh 5Pg !}Q$ˣ~2 E.4͑g%4'ىE+t`lZ@4LѬz̓dWͫy5 +1At`V/"6`#>OOfŅ{ 4_t:5l#DY^rgL0os33SRC sҜZp?}Kgۈy3l)n3*sXu:hN;6n7:?wqo>FvTިIlC~qUM/q6gŕJb?o?*]%U} EϏ>V z.@%!1[Jy{H-f#Q bzuwƫ;wL[m 7>b+Zzth|"Qf}hti;NvZQ֍g/7Uv1B~a`Փ<,]8+:j&/n<5"e>i05d{b[4F1mSLΨA|idwi#{~Nq!B"zrd'({˓:; =\hkOoUϞHWU@cy^Cq~ X#M`|*8EX׿|4}xl^|td.nekjHkeov\D[Kǵp +pE_f&.Og(bhMS;(yEp \j+cz,RvI7X?,uN5 /#_A al(*YȚ@(͸Le.4_l:V-IL;Xᣙw( h8K*F%_msv23rZ8-n8i.l||$HWHŜtY$b [zJH4L˼m5=y"L (㳌g@ZaJߤ]FK-ϥ 9VR&cn$O GƸy[ Z =hCZ 0ȏ rm5X-x1.Ad?lKŋ-aR=˥JZ !-Wu u=ƣ:wɴFlf~(mM&v@׮>u\f@>ȋ:M|hk@tL)% CLgŠ̥P-==E@bX|웓Z* V;eV w>;$d%TᜓUW&"mvta31`àh+'^D g 7jr4`oE"3 [ wydǣ6 M:Я6vU d컘2`K:r:p(sPiQz1Vu:.* sB(Y@wvz Pՠxn%8{JCvXfХ;s %,}G2 UVoGѣ<,HIijpU&NE+K~ m G%U-~6B,rUԟ^05)vP'ؖj "Rnt]r7~z =.ۭ8Qw@sjq @$_I JDT-%5Z+Oi`ymWh{3O3ϑ \TSsI0gP̡#¤.dnn\jBr 1r:`g%tT.nDǛRp$` pN(?{88 :R6}5@kj4O],Y knwxua[Mcr?itgOxV7<龟: +}V0=cK,mu$/+TK!޸f _džeuUiE/n$/<}0ؿTuwM38GZw18mT)y~wx˃[ ŕBHш^XZuflC"( Ut$Ȫ(Ԛ9oMߺ/p j2ĝlcQ2|vfw b :MGe-^7%`B-Wo<U]B/,,a]rŅ$$$ޟ+8:aX ƔR0R~E#9u~C{g)VM[}sBS"|!N&NXeM\k/$20"-*FA̫0Ur&jo{ >B$$|J[J ۥE`KSmHRnxRp!MzVwrUѬrq &A;CaEr[j/UC‡llpTdD?js O3a X*_='fdy/Ɂp. SP`xBQukm/X'eRt{cfw-^&GBJO{5K)Ċ1 ;2-5 뭨[Q+R+k>TTpF;Rj25h kX~]`ateEbzF^Iz͉KlU_] ~ oo/K%f p!`]AE,:bѝѺg${dSB v̖jhwBQCޭ_Uɯ,?q V'VNjgո~%NV뼿nsz}8O{`6%֊H&i!@K}xJbOC״13;7FƝg]'PPoQT{+g{_9ȩ#&(^7;IIwq`X>`}g6Ƽܕ5=Sê2ԁ+aU!!`!`6tM3l]@-$?Չkۥ}!9(DDm` ؖe=b@3B;}(O 8܅,d;ʹu5aqxYU'OxEo3Clmm -1ԞHh~4T96(8H5 U!`A=IAlḼV}ourI_q  6ɾK^}RmFJ>20K3 &GMISҟfO7:UAGx##<)0F#oG2U^t>["FˌgaM3zsWJDźpc]_'@%'}l0=G%6 Qd ;[HXqE-\@}YH!+7Vt /%vdh!R3`C&,/RXXU#?HS%8||lWSNN0HW-8AE#8f4ppZ$RH7l:SvV 6?GȃQ1͟9l;2iл0U|5p;CʖXLJCQSVr95mҟMCJIo2􌿛cWEm~7 BTz<5E)41P|lb30tNxBTQuGlB=QAxព**^9'C#yJ@)IA yPcAc3< m=q[wos2OixK2/ |̇Uf7P Ho[B=͏}?sܰ;XyS5](> ަ^&NB{\eIT en,M9 ĸ"rG0INn&>1R\7JN?9dzMzE</95@a-F;@3Ofu0NG3p8ַY->J_kǏ@^ #gL6qu;6"mŗ%_n7՜_|@ &ӌ tL̮ŲL3U TD)ٱƦ0 y2YV AJ:bi!+jի& ik,heb*73[PktxôXtX 6'Pm_Q* 'Ռ&E]^1hWnv4!?sE񻙢N\`K& FL>t< ?H{m@D;[]6^Lw1,UYr~bkջZe X%A9Q42R,iuᖈ-ƾLC2 vAК/'T1qĠ!_!wwR~oz:SUv4Jw5Ǖo2؜|{nZl檪딲pqEz~%b^헆'0B0$j6w\%p^$gaCQY@2bEXч VGx+U)h4K% Ay* 6*-8nav) ]:P!`!`q|jM(R/%TU+ί(  c5j@WXaM,a \:;Eo>8yK5Tgvp|Tipcq!` AaIAlLZ8ŬY9(EO\Y *>$0Quk}[%SԄ Ѷx ޹۸|5GfE̓Ǥ{~`f (Lmy%}ҪTV|"Oèy7S'I~,gEs"L|նuZ< dF%qx&Ffۿ`C%Ia!5<Na=ݮ;c2:YCٺ{ҏ'6Hk%9_虵So|eCXyD3ł3jFI~LB+[A+,֟М/nQWEA. :f5-Y.3p!t*s'!~-@3/\1bS$cAPojU"mWHO1;IarD PT 5H05>@8N5}V/3e5xiL1{\PoC]zf٪7~UKe컠FGO풛/vĸxdCKM/!v"PHYP#وɥx Zq%LM vY%ϊFظ,wch:-EŖv~ΊUqtsp_hn4""瑕NJX+96Ηylf|Zǜ3r+quM^bȤ<פLV!+]h٢q]-gP>K7Әq``Ux8E> ).M9 䆂-wfCPQl|"`xjXZM!mje ڏLFiOTASNtaOt\ Th[O0뙂R1[ii}s=_0S}yZE c#cݪ 4ȒK:f8FR#_*_>#,w9r!XE o4~aڊӗv[Xwy{/PzufozWluad8Hru կGԤ~cKzpE7Jy|8a33%%NT#$A ֙YJ@wPMf;\tYSչ^Dݚ6TM(5 ;Ӕ xEc2;Bm]Fxɵ%ǖg؃[BzI.O"6 䂆Y.^V&35K}wkfTJwվh h8B痴;82 MYSƱ}8i31Aؽ!]j);[ߋn'H2zߌșelh^,$KviQG P|9` N٦7HP2> >aJzBHdz`)Ǻz<Eg^PrQɣI{4%z]߄&YjIYدJ7o\xQD/D=^oډb/zb)*U;܏&ק=DV;2EL y{n%ŃU].110@{RSg},`)[s5c!!8WCCAIAlLXzW_l%z]I4(ێKMbݫ; M)Lҧ}(&V$+Hl @.Xzkv Es:-Hu)*D;d^4w>6B[?(q UzJS"BAso9#!BPBR-U1(lEE D ʫ4]5ÀvBņgs//ć>Q+N:xLJF@;#2/u.%yh!@awˈį#gGKs %6~mCS PI(MJ8 T$gZ A^L$hqѯkxO@T9*d71/۱ جQFWJP#F #sֻv5{3@B[uȳ^l9jE*?:]1AƑ&Ӧ* g泎_#I42<7wSSҞǽ. `(O=+G86R(m>,\9^8mQ^cai/4 6iE6>(mK(ْ3rRE,ь 5*jNha=A8ѐ3zW u/٫ l:cD~2Ӫf ${GVb36@!swr`iD¦WTM,$%Քؙy2 P/++Ӧ ;=\ EAsx6k/!8J pcqą?(R+jɣhE*럗!jgB b.^EE8L0F'<^(/k:{f|( IJ *у7&EߑBJUi U6nWu%o9+H_O ޵v?g@饏͑0WI~1_N[c/5uѾVEL~:eq{[ j3`%]bZq"ߚH 4T]:W\1RWFg 5"NܔdP_dUXc-ЦILGOmמmTO'D ޠ"M<:8nj6!P XM]F>jcUIp{Toe8rI/˫% ~"z,҅Η8/ CLn9I@Li1&PPj׉0SprL*LNT/4G`|*_+n &IvQlNqRٗyչG'aaj8H@5z-oX+|IM+yߔqF'TH)UJM/bv&`P; iCw焣vD#C>w""P@VO)ө|/ xd8W8ImP.? D(2M]ae:W*b?v|>ռljIun\!B|+#bh><0 t*M j)V@Y CK/-8w8 .PD9|WsmZt|ɻA= 7~b{#Ԃ1 pբ#o-H.i\ґNpnjcK\%aNaFtUibݳ1En`0k}:Z깜f/ϡZP(''V9kw JM)H:{z0p %'n?prxhs%-H} n8{< f[>z|#yݠcܓ7E|3CiPG`uD0'36p1%ҾhCh`y!4xP0@W';v 3F[%jxRW?+',!߯Cur dvJXyuso^ʌQoyܔ:@VוCE5]{aU}QD$xqi`qpW:~;_e{Nv(_»y7wċf?7TZ;/:, 7ʎ签|r] A2>!b0oĎeP#ɴv6L$ L;.u27cH+yiBSXsȲx5Ķ8E p mt&|C78Y7,W!V"۩ETK:\j*!/O/a*hƂD.AoTDht CXb'Sm!{^c  h嚄 iq(r_cQx/pj:sQE[g@WeޗYIX6ꖊIGCսtQ݈-ζA mqbyڦJ|Z8=*^q P9Y+?9{սȟ#<~k7cV@q $ڻ'Hў}c0]׀aw,1cϫLy?Vc W 1~Lsg\Q6|"5ri㶕]eÜ=zQc_0#mv<Cp y{ GK"U&\%y j+14!J${)#&;02_[*9Ww66,Doa *slTIɹz9#vAW`\,4f٪]n4|@wҵ31`nU!QFSX.9ʹU$R_6cFgwcPЭV'K):T2bN-K.TT;*OP 2LԲv#a^BMQ@IJaϷr53;HXKy2~v8r -=u m"@sEEgN_CFaMNk`%^!i6ppYqIAmSR9̷z%ǭtMPQx0CTo^,fOţ~H:wi^ " D}Xq2jf? z)eWόy*Wҿ%v'4%=Q7XXW8};qXe FpxB[m0…,EFpp)fj a|CӸHzm'*͵́Ϧ`Z'Moњa*yg 5h sΧI\[d7\'MF}ۺ t"l*V1Lpjڌ9C)[t0%8+ rѠx%PHsū3x۪B2Qrp\+zc8ei(zv-&f;p7W?*tzNOΨyG *0<=jw&J݃7jYsLiU^ȻfyfbOժydZs]M4};|(—jNaJX = S&@4`>P7gxvȷnRqx<MC˙]M`u-E?M9w8iE@Uxԫo&ȳh)VN"OavIcspU&6b#qw= 7zL1$zVHY,$#3.(ճ ?XY~q_%1f 6xsu 3-d"S] } rys`RBm8Z26{+szPݐbs~0vO+fboQ}S_ 6t7 i']*7RYhָr=﯋P$Nki%|8$/|lH& O1frOwI9⿿, WywSf3/R'#<>)XРMzn\1a4])J8Sq@EM<ː GFWy{Xe.M_,bK% h q\>8XeVπkNHƉ/<(^{mOD7ZD'I <.=~G7G7 nIs2i(PF\OfNl䠆XY(P7L_tC. iIBBSiqkRmj6I*zL"t;>YqZP בUPȖ.ENilm;tJz1#r:JRA[-.n7=Ga?:rʌ$ e@>BrTo5ԯ@q5E8} J&ڼu`;5RE# (9d1"pŦo;)ὄwv[/Q+q!+PܤoJpY zNk1ЧTn"k`gsoXgB ^m@r/,5w:qV$7c[b.a^ҭCݵK3 p.9;u7hjL!C_W#u"uzopόAdA[x8ne?. p :K!FpV^E_BD%kĐRZRI˄<Ǩ%wj7^jTdO<iy$܂SE¶/Ξ́VHZL{e*${BC|@y^DNpOฟ.0_dʉ53ҍ= m2 NN>W]F`BW+'(Bۋ]zw*U31cHex0>rVʻh>I/5]qbpZfbi۵2Ð|hR2;A,RTz"q,{S/7ИIXA^_0?A`|nVXS@/+)Dͻ(^`XeY+I4$Jr82:oˬzZ7$)e`` 'F:UoT[VsA|Эl ,V$ |M)y xTƇۏS(fG'׀4v:rFݰ3rj }N6>/8Odߨ $@wĈI_1-zKg9P鋩afJNWbjĔ>t:Y` O?H ТÕUpIpN?=H|Jfz>|oj{M=YFVjw?}BkM:$ >=s:G-4 3exI_kC„'{kRMGF# q@ռ7c1rWϣzl<;Y8C9ax9nahCPF~;?6`o/ H0^\&b1~W :]|"k`7Sݔ ɒ$/g {*;ﵷʍI҇ڰ'`7e7B$1O޶wW3Qʴ$uy0\*(cAʓ|UGCVjO735\lrO+* 'C_#w}hi1mgUxrSBsITuD(lMS#>$bl(\M[uv7aluo5zjpD 7M^ %P3|_ޜ|b2p ~?R>є,?Sgye?Z{()4 䝽+"ޚ?T8ɼ%)ٌVDv%ȩE,1}Y>:sccQ` k)`AeH25oZ2yL}:Kun[d,G p hC#zm-N >2Åd(#KwhgWzls\:G[xg9T3 p}Q.CA puOGDmdjHFɾh`b;Rb2Y]waMxL%bn gt; ]B$e/6BA=AXgJt}Hr5pxBɄMwOد1M*VIvHZWouw-l+(r NInnK79C[D­\Ap Sޫ#rsןK"Mv6n3* u`/- yo|b:)bhwPwi Jb*5]&4{"RLg=8fQ"~tCM0`+'.:TcMKviw7tؐ*[iKTTXhk x6ǧl:6[*R!Fk~FwT$v̔aX#>8K4GzF;9}@ Cұ7an2'E@z)GBsyjabDm˴{bȾ+dL7nst5_(Y5:*s(<u{_y]/}d,Hmbk:3[w)A$LaOZ7wv\''I{\?0~δSsna8x`n89mc/goUwv.p@BQ- P!.{4kp`^gcrz%:!CLfZpA]numsL)B%m2S⦫Qd}n5Z#Xi.;=1qc/6-q]Hȃ5K!q;ŝ Ӑ.'G7>gʼnb.Qbmh[LRlrmc2\D ̲o!AVG .)~NzIN˭bUʉ"z[ω{.v $yU 6CA%"V;CE]b Ná[TMFgd9öA&)"s,^@:.sE o 8G]±f'Ϊ;G87`D) P;r01jjΎp?İR@P-O%:@[tOβQR!RL!JF[(F _nh)5[rɨ0 mw!9xvΪ!<mf|rjs"j6i6K~.D؟O<8U#!W jy@&tetŰBP}7 p!? DoV@ @~e^g=|G5xGRhGC4ܜĚ&8}IHH[.<7OrLsLj}8^ZNqRݯ =3٥剅4K(6z;I$Kb[m7(?{y:|H 8":A=㿪曁=;WrAGxQ\8#6ă(}0 cv>z9^0$]Zֆz`NKvc 8 w#)dQm6k+Ѧ_  a3. @Z7/]1y? tp>ho43j@%4#}yKd,֗;@T$ :eibhja#I7z^S?]}oŁLv6 Ҙ7l*^5& k#myk֒ nqb]XV⨗8ZSF' wbR`~iMNfo JmQ7cZ t%MYX_9J =b;2NL*!ƑR̔8&B0ThI> iݣI&6c>"d&~*bmcw:Β1lS0۩%0 He +ziՇ#,g:Mz z yx a'֫'4q'n1b H#Mzɓ#E6W7nM+ cMC__XˋmgF>;PJAxF0|tgr Z1z{$@f6OpnJ.-SX%N`@-. m`~9k2ASԼ~"ehrOsݔЕeiYvPP^@1?c5Tm5nt2Լ!9 #L=7ڄ mbWoԵC7fȀ")s̰ MPfK |Rq>bۓzp`wH^kLF-_4S!1PP?^M&~cY]5/"L ]W U>M!؈Ŗ(`cCԶr WyaR,ϮkC9=v)uEzڕk#Z4>sg!Z3LSaqIju{ܤGk.\8:#`E}K)r8>,Ψy&h-ښnWPmؑC}e/땼v1\'s4U'LGUՓvniK/i E;. Ty2&$<:@6l%H2N]5y:\3ΖVP 7?-Kӱp+݄24Bo9 ΢u60 @%3uǺI5BccR4;V<"SpG=za@L a ᮫aCBm ZM~Puޘ 6v(e!\|f BcW6B`vC,w 6mL3h<2$]'tvl? ,^R5rYQJ X~UO^6$Ff: /4Up`D+>5~9%J?IC{9IRnD(IW ̂eR75ZmU2B}\OJh0:K<$l!(IJ9|,$~MKT3*-3wJ^A`GcTÿq/7i~d5ׯRF YdLP.@~>]`J瞸 [uJpώ}XfSqS9'ZML)$/jzڭlОV&Z &.Àe<~E+7$oM1Nf4}jSuAl rͥ]4/cHo(,5낏PQ2, YI,7j͊Ky^NU1)N(ϧCp1).~EF&7aAPa0'&`57$Z.8s8H\jQ#0j>f,,+0 /hle=\gih兠|7 e \$pE<wmG޻RkS΃Z}n{`XN՜4|s4uvlϏx*{x㪝]$Q8@F)QAu&0 LdqrtL}Ej:ؐϸ [7\ &9RnH|$ yXL0. pBVª{R{*\uB:ŗj?٘Ԟ]/?lLGS źLJ4try< B[ c}4`%zןm20bQ5ߑd7`;KP^ՂMyGȍU֒1afÁ$~@&>,_ `NB,2Lwޚy(*E`ۻ `V7G>. 2g?/x(5ފJE׷} <&Ct9oݯ\pځ<[q_1@3qa/+`UR9?帥27l+@ګo|dx!VC!eRa5Spe6񲷬FF8r"l_8~^ j~"N3$xN)d[^P \9cm"E8C65 z0@J,]sE(yk`Nڭ09}a2 aF{޽FhnDZt="(7BΕ)a7z +MODr/&O/w|0~~ɰ~6 lO!Y )zN[P䡭_!&Ew]ͮy qkdX?V" \f$E~ذ iǫP䩄 f@cYu~鞒73YwzaD-*-.80b``q_(Q(P߶갸A21\Aʁ5Q4=Y_avw-\;s?D.YАvdy.rKp,`VJ@TjW#k\gJq>< uEs:![L `/WPe^f*?/=z}LN_hy|̭—z,7 @s+tgR? >5{2D뜹βtJ׶Pٝ')yf y><eW}3%h|`2p#s#^.c">`ם(gÎNPMc A՟>~<﹎5m'Q<ğooC7F-UM֨/hhsieg/-C.D Y.Ek  ;1S ΄\uEڊL<K`P_ LG}fEkFNhqI lʻna1WKcψm0Y E-,z >r$Qaxx_<ӒlE֐wFx^-H,#k#)ޖ `j2h}+KE\Zqg47>1a^kVH^!^u+> _ԔZ L+xV7ܶ|p`\˫06D4a#yJ#g*QX樞EKQnB.Umeor+]%peQe+aIഭ~ۄz;I,H9%gy3_9DW^!%L y`C-j\gp]Gn;VU8q[I\_N\ ۚW#8?Gؽ~r |JO%6f!!`@AI Re0QRIXiB@c,mZmEXӀ=|[C;/ scU3T%{16WPz\<+(F!k@[{`랫646.x S&~ni~H[V-Èr9|AKrnY?>QR4Tuf@&ig~AwnA2{0->ъel{ =q_p Vr7eY<fbT~VU Љ8a+ou]4|b%h*K~݃J Z´9~7ouhZ-jx\֋SHeT[>W)ڭ[gw=Ni*ⶄ: [Œ "䰋gb@FZZsk̄AP2a)B;vLc0c?pkG:)E0I?^a;mKoO.)*-=n6や1)J&`Rl9lkn- wڃ0r#4Fnj.VO :Wv'8цGr%pPģg4Sī'&/JҨjٹEs%ɋ<ܙ2tht>p/{M<8 RPBp/d8\쨓~!.`F^UoF02e s=$N(ٜn%񡫶j F\Փg^pF d=9o#ʩʯHղ1e6~\Rϖj6x@>(۫Qm&|LdTwMj;T~Hi CSkțO ̏A9${fG #o(n`WgĊQK~"[E=ibg/azԫIq)H}K9IJЊi@}4'aꤛ9l0/;܂Cv\wk^ i\5<@ő˻^"U`ڛ{!C*L]i[H&Vo_1P.O!=g}Xt sa^,r’ _egyЕk,UwL-ۦ^|gyϦaQڣȯȭ{cϵ7_#Yn ̀!Q=z>WۣJ4)%N4DvTκ/]k"/l[KʼnH{x*u`JVw` YR"Ȏir6NC? lu|2"p'bNtQLjCYk<IUhrOԡP(z-Y^P*u2= kY f/b=2eFݺH$G5|XkkAj P3B(̓jΪ9y'OVk9'ņ2" 6BY KVj̦ iȡP *QGCzJa찁1!d$6Q,[]GQ R6,&gHhƔw3c޽ܤY5Ə+<-5e%$"4[NH^~{>$7X8wJ?V@:|@v@=tp>3+ݓ} x;{O{e؏aU Jǚd?@l@{<1ȓ&^ pd:[+.H=D^>@3BzQfr2l[x; |Mo\KVcccv9"&PDScrD;7%WLԜS?CP) ([i#4SR,Ykuݒ9suI-[gPKǾ؈v }5؆w *q[X8خO tN9[9:H&'Tc*4:_F5UCyp]VRva ]!}PˍzX2r_[ LhsXULVi҆hnrSnj ģ/z:5 >r kWޤ]!9~KpK(O{)m~y}{Ǧ ]69R0>XYe/Tjz5sqOFZ/f IH88e{,h{%)7]bXhRM㚹2IZAdkz;zinͽ]`+lHS}xFuL$D9{|rBcVp.C }iF,΢";rb ] $>Փ3*93Ce>.V6q,'\V&º3Kh'm^*νeE+S(ɥ:'ԶU#=2@kS)- 7wHytbN+/H|ݑPd`78<,ʽk!Ύ7E O,ł:(+}YTI=p rP+5O֝*-H8Ji]M[XKVax 3HK,=&8<@ܔO}[[[͈Voޘ $ ?#-i1gY)e™vZ OwP D1/X6VNFhJ86 ;?s+ViJ =`",оR6=5QRzќ1׍J6Ԑ@e9>Goq$6bǑn>rrv'4GHhE1 (p;MJ78XݟCE)$Sg% FHVjI 18.! dR8AdN+-H6_+e8OTꅸrN7bNBf'Q2wUq-P!2KSf gW~uCT $t * X"4A5fA6BT+~|7=Ҿ3U<2*.{/ȸMC=N7?rMsSyr7@ާD*O5^-_&H%["._W{ȄnG.-!~Z#_Ch@!Yrr;WI4|wygİUY=9.[mU,an8W`nP$d]{@D6У= NOSUL+0'aeDb{*'vür:HPiӯVj톉uc2 go13h4\qD DtΡ״6 -sCЎA#fZu:c;0yFBI\;?PZL/cFxZ ]\E\+/rfᦙy9Avt#^Ok]Rىy#'{j[W$ΥluR#^6zZWNPS2]v()"`DJ(S4=NLCp;KLH2uT%Uz/Ś;_ "C1!x%|PcF$^oXwUݢkf{22zM2Oݕ1?a8v*Zi.J/-aU9 PޏkֽLޭct}_ ڗX8i')A#6JܼS0>ګdV,5w]s&bpr#& iLJoqҠb.蘋ӀA|4!%Kă=Os~6%oyq}tjRE(؄(b_PUgjr1w+dJ:ó3Lgf7iʿ̪j2tR]%J+Kz֒joG(~/|Oo{_wvm-ۯ8lUYT+1Z `fkESb^ (@g2O9*Ym>$x6LFΘ[ -G:"{*wBJ- [w;H8Ьf6w; cđn@dDafE`+غ*5SAƇci¨nTnŃ7,O9J&(_q#93OC VZ``& ?غ'2'/foؐ|ɹ:*G;OxR$ hպ~ 3S 8$J-`Af=pp) ɊFK Y XQZ`ĐfSv._* ,R<2@ evϔNS]ƁȢoB(ZD S>t(O XS@^RRQo0PͼABܼԿ"z( S9E .t1XϨmAm}g(zF;x*$BW*i;紥uj{~S_XҜ Wsܣ| .3q; ~q$F@63]pR@wimѥ#eFï׈0xg %,ML .GiY{*#[MpQe;Rm(>Yk8pxȶB>[L`@ O )7lqQ,ѳgjM0!@sQdꐕ,λQaZ5ͮ{=GpHl/^Mƌ?i) ՏaJ03R^ee#.e=Hk^WBhKA=F2"OKG2qRn4Oj$o֟`& I'i 3A$RDRzF6 #-1taAvcPt953ң9+eBy\g+t#,WG]$^ R4E,e?I7(m##]s)Q.X6ain|οv}x ?WWlK~v+hm)V-ݟ#BNX owb2qyԋw'2 zYcP͆Nh̐ϲi8S?R$@S I?IԄ#8p~$MpX:PPÍ}v;pՒ1>!q"0PFćxoxAVUF׿M(W,ћuy}J-]q"lG߮k 9,iQv; ,¬@WEEn@#`)#40vXt.NqhTy6r 97])e{#$Zkdl[kln.h{Gzq}$eʹ($kԍ%J]i))NÏsTzA,;Yjzg_ p})85**6Me8. ۯŵ8򽉌oM{(^.{, ?3QTu5JAU=\;I啈`?|% :.pKZeJ1 :mfO|H(W1ܪg ^ߨ*AYJ_8ĊzHЗߞ:k\Ǧx,K)W)q~pSh?tlRNMP20{l9w26{TU4nN\M-!`Աnm{Z>'KWbpfJz'8Y'&><ך)t7:*`'=%Tᲁ3LcGyעnYt| B1;D ^Ndn-=3iCMo]KgM 58#H֠H$W6T ɐQ+5nwӇa.9BP4,zu{vz'cWADUhh5Q{o=zۻR{ \-9ŷd?;v2Wd{ܬLI k6ÁDUtWu0WIgGzRi.0&K}.ψZ+U놳G?e/v2p1m_l5j_qwo*C1ϮrQUM/?og\"J:$7ObW% |Ss_ GOs X }VP#:4sǝ C%ث ֟ TI dKLCv N1:F1EyA>yp6qD G.的:IߣSKfe&(x^OJEgF-5\QYe/yi?KwlEJy.Kax}d쭵7kVƮJ5DWu_mpP^pY1Π-oӒn$].O9I@ kK@N RoJo30-&F^&u25Byd"3ul;&UقY-^e4F$ibںJ$2ґj+xw/KsV<Ӵ9 `Se:ǯdž~:3?ͩPءb)x̔d]h|{z_IWQt ӯ<]<Xrk1_XH[pC2]k ŅC(oD4r BM>w}a,iN"-pGUеu(s7G5n߁!_M d^B!m !,lEA%!hcyⱁ葨`XRdԓ5""cCYwԺҷ_I@{ya*eh%rA5UuTr-) B 8+X| Q}=xq:B,:"vd%u`r 0SFXaL2[c&|=)>Q68 AQWDE45Jo+r'xbI3<琮3qccJTOaFbd6D83gwkOD7t] jID?GjTRD;ajG9F(,t2fJE-P%F{}KtC[_S5JcHk3Sԍy.h>AG|Ÿ:\ndH:&آω>#`EvNM)J^mmoMzuaFLɖqc_Z"SRS;q\+ M;dE;Q;UX4("Spr +BR r^'J#L0Ta7fG5qtzd@_e8l{^9+5S0 Z%E&V} Cכn-7gC-m uPq\m~B?8(n> 701~..Ca+.r?7q5c o=rJ؇ȴJ5-=8`jZx_hHUqc}G9Au*DHbGVsV\kn`{ !pw3a#~fJwɡWX̂˜_Q"Џ<5 _~9G)ٱFN6@⁁@σbHOcqdzhGF{hDJiKet̢`QI(iKٖfvt52Og& K[ |P~+L<P}kz/?zSMǵ&OE5 {DLD@-)2 j*ɬ\C6g3gjfq ?D'7*:w@}dN?EXK- ['[+Ý߮hϳA 1 TK  VS0ȿxZFJ8DP 6it\WnZDC0Mkwcs7DF/igCi]՛E_ߗ#Ư18^ M-AŊٻqvqI+lTcq@} )_+u ğj7H]7 0fm/A^#%+91.S*T1AMzoM̫vjtWznKQ;by]oXbqZ)A x5h_HGeɛ\LgRFK gi 3'ub9Y ykx΢.{XpAb46@p.r;dMv6Ki| 5ƁE7; M9vèU|,2.7(ے/XA}汆5ǔcFG"UҕkZx+4v r9E .r|?s8 -tHb$尅t!C$@EW +-'6pFYsnWX?`VQ3tQod ɧӁ ecyiQ[. Rz*mL5`*!ea'=] e/iF0mk{s-~؜Vq&$Rq (=<&#xVaD]Q'gA:Yu},~D!Ӿ v9pDzͭڢjt0mP6E]>#,4t.! tW p%]؄Tg$3 *F 0п6j[IJ]]osӱ%ErK5fe יJ}*8y k R]coI2iB5lH뎣0GGp6o%OsN :QOnupfW2km" Q>rT̫^HIfF|3Gk==-yc~^S^p?ݠ"TɈltK 2-qoXZRpXH#i)!;{AbǹLfOy"={TI:- (.,[C;@2}mr&1Ϙpf8aGqԯ4`A(z2v}r"W3+էh1YpdDN`]_S>yI4#kL3~|YiƭlcDvex̦YY!ckL}2N̆M,aC:μkDqlM݋@C @c2>3g[o]uSn}v}"=;R[5eaGK*@ O R;Ɓҷ߽#zSLA0Q Q@M6kAj =h Db֟ژ1^8LhN-'TpZVb3+W+pV yrrL?ncܧ@|bT"^A@K⒜E?PH;1eNj 6L!Swr  f;wr ;6u`C~꥖BNxJ9onptB*1ws/P P[͖-O=+>A (Rm%6 erKaO69 ŭ{ϖ`IORj^w$8 b#sX\VIHX,j#%Щ [+yٺE(pf(]~r1Ƀ:D(o:|AXd! R` \ϊ,,e*놂qX/q:ǭo+vjَeQ^ ldžstЛ=(̑t/6ĥLV ʴEO}D0pTlElHȮaX;FW⸴j;_AzGb+\@oj(Gg%6bnɖe~|&᭻C}d?(M.*BqՍ7)o>5btI D0$xN2q7J: d021@"SqAl\K^"v6f[<ԕ9]ż!kLLy$˞hĕZӲЃ,uw^JI[[>%JnmpڥLM/ѓ}K|y 7YpNݚ /,@~DF@w e%ߎt{'x8IDѬ>V)]*1h!KȗZv"a+!5k[7Jyܤ\6 2A8m,DP%P`_-}I}Jjg+1ҙۗ(i"KE: RV&6  b}G[5BR>'Wq [ڗhKjܑ̈́|ch F3B1 ݕ*H{49 ET-GWBIu^䨿V5rLHs34NaяKT}ZhEdX4#][Rt?:\ƂD*HgY[Ka=%l^#ZARzCY]wC|QCu!n 5X׶un~D-@,|\3.o P=&v*)+qQ'n? \3nC5 +csK(2q?|+ϭ#y=xocjn $RqDִgOЕ J5 ^msKcg0%B,|Z:CUMS}<@tSܶELG%YG6 ¬հrnVٺud)+WP ND(ߟ~A7:isPR؀j ,{ MUk@]̻J;]UM9$VZ葰ippޙgzx4;ٶH!L8&ywc\ӣz9@a0戮MDC߃AHkEW؍՞P [(V!n 8} Bho&ZF/T'S^ie3OԉT&, .ytLk%=ffH GwboJzgܥlLpDQբ`P"%N+~%`{oU^z*A}DV #L1h疱k0B2]M9B9bR[[yJcͫ]< ?# sa7kU2U=n' 'H3+EOיܴ3/xI/63(JccyzRIo%]P˃!`AI!˽(0y޽L@:g )FGv=W#-ap,Hbzl;z!+L[,)hMnloh##_jpJcGH&CgyQZ뉽1UR1*"?ݝrmp:4N9.~kM'+qg":?kf-b&eE냒OI=iUe!|o$W\ND*8kK$zνvI)ύ/x(6Dg[D \GACJ1T,a(!q<2%ו[,]lXzOxVB{31R z字ƪsqToĬQ%<JU xlۄL~uY5!&j;4ZhΩ{6q$NKT! yY1CM]5\?S Wd߅N:%A:+Cwcx? _ahauUŔ.yv'D:3bj@)5dߴ|¥qut.N1.ŮӨNe@~%rM`6R |gIN CjEڹWyDrE*fH3 &0L1k2wBZmMʮ̦|X;k3IZ.}JGu쨭UjCy.P]L;ɷ;ƭp9~l's ?ü ,A)&yйEelWTX7hݵ:AePg,w٘n9q/W-:%z<#L{ e ?bD=F)|DHiBy"ݩJ`Whzo9<iJA9K3Z}v#WJscFMJݬ+9Y)"d (tY6[UMҿ> QzQa0SqrDs\vؙX2fcQu*iRd֖;EyPP4bf`Y瓔@#)4:7 %MʲDt[T[W3[{ɲ; fwcp0jN&ׄ6`A]й)+an] Pƃ1IJ_m~<!/Ԙ_Hӽ  iA_O!=Jdpe9~K,v]EphE$,ksɳFtA(:=n h<HsqaRX"O߰z/Z F& S_)΢ik⦢F(cj=2\d`("Ja"[>%B1e3\@IMpXV5zG!rܪ-t!kFFp=xj?]- E$ƉPU6@Ua :\!$O!]O*<(P5ί7B擗5`UB# m^zmx? Z-EG/W1Dl]mTG^Gqa.V6Zɲ#2ET{ =NlE< J dXVZY="];[i$b3떾8fZ(kPNZ]KzOR|S{gW`Z6닻GL><|/6y"$󧞈kZIkMd^Yb]%Sݕ@zI7 ,(Y_ e.1VfGTFH)*Fsh{p,/R74ɷTLnG~Ϗ`MLf1tvZ'/0SxUldhO(rPuS[~CI'MrXәTJ{JpMOh[r[XS8;Wqἢ'[fN)Zêst28" V v`A. 9ٍ 9& \8!> B Vn'rCN;+x fv5'+#z.l #d*z4ۋzw)ONW$3n,k1Gm}CY}F``K"q*m`e8Rfn1ATidz%;S[8~͕jb^:0[9ͻE:EbQZ9C.+'F#}@oaޯ6Dz)ZE%W#Nʔ{Yv`n9`M+ɰAFb ~tV,]Á*  )ɡ[yq~cd Ny35.t1MubOH"1W< N0 b3-s¾пxtv`*QjG+jغy9,fxj;fB%Jw6ݚW( 1ჿ'6a;N`/rBt7Ksrߐ}^yTyfy-O'hY*[B%ڛ#m -Aią4FE`Ɔ1K+s b_A2. ~L6~rړi|&h-5os3+CN/2u1Ayku h"7U^[%+緇@_^6GTdUߣYDH=FqW;)Kq|pzoʴbd*h%n\y[Qtԯ\gLMZ $'OJ$ye0Xt~dP!;;r[8oKmrjuAדO`D4V kN%G[-S5派dcƵ7;*4@7ʙEG6 'Wy)pR:j)oZ[l鳔yo.=/Ip2ن3%~ًU]HWj>RBzZZmagH}V/z6 p#0Mt(qQluBdhyPQ~k`ԕ^(krZ.%![Բ:cR~(*>`'w{֙r-J"XF{{SO^~C[V+Uc+—oh9֋A !}okrUېy S)=ؐc{%@Wu'Uqz6yU2MI)/w 56f+TnCVl_[z7F=0~3}h6|`pE*c=y@L?'S &MJ~q aBs̃6 2_mc [@$P{hY[L~xD4=QxWAJqʨZ&`p-'TjvG>J:N0q-];BqC‘h TBpMcmd8ʯw4`ʏU+p.r5ƠWaM1@-swLSܲ <$G,)&f- j:rt<dYu4!0l aJ)>Ks:Xip)A~GxpR\\WnV(V%ϿdSkE9Mawrhr|Ig/zPsaGv<iyiݕKV#]]wD!BdC>FxU A1C:>ܝO981Y*-3ή֋$Sp!GT6+QK8ȫCàDV<ӻ0K= ,[)}#/>ᚊz~F8Vf7UTyA\+ٕSȵUZhW LڦO> :q8=1qEuГ~5h#inQ37@vj58 b(jNe"1яnE2P*Kne:P8gUɜkVWF?s}_uYmSqD燄`[!ZmLv0@|T"+jI#9D*JXVx۽ǝu:֢0 KѶѢ8;x>uV4[~dfZne]X7Y3/ף9үdUkVΓvMℨP2>J۝dϙs)f! 8J\2zbX-'ty }'4e& S`pSY ?^Hv{wh70go,E7codw)צץ|XmlBG 0%Au}*f?#HdNnw1ncj!`!`AI&S?{7+2=| ۉ2Ch%SYHɿZ4bI=s TcJgpTݘ~>[s|dSB٨rNa̙_t $U]Z m(Iw|YpB2GJ/kIW7z."Kcw-6t/\n \]C $䈙^}GMa7J8P؆yt_TQ>K+_$%52/֭ a0qwPfHLlKPv.<-/$u|n)Bz B^Q^:XԘbz74{cb_,>7rFi](buVbԱ}jX%%"p; qx:zƏ"|m9{GGBਵ!(PU-;nI**C? -F+1=Sko;:̸pę vɘ;\H>Q(::dH--,0kJV2FIkWKl}U`kRFk\_:+dۈch&qA܋j0P0Õѭ75 8peܮ=e4SqF{w= wEy`y1^q!JM\IijI҉ۓݼ;~ybV>roX-mD54›zb:uF:Dz^1ȩ\,-ݺl'S`D_Oz\4fM=ׂ"r'w&H03 &$~"/{$zH1ZE㈪fTC-[!+׬G,ԑ${=+MyՍj,2rAlgjbX:ܸ[EdGamUoIM_ w$t`ddEa'n"kàXHھ7i  !lXO[~~WWƝKX仹dY2}~}]VZp;y)]B1N|o.`p(Y5u&ӥQ~ВB tET8cJ9mpO`L4$nˎYLdN#,Z{*>uĶ=wPh"k2"equm2(umV lno^U ,L >A!HS]EQ6'A U TA{oI NRH|Q04u2(.S*iOu \>t4mi&FJ-'m޼G_4 "u@H-O8ylWVR=ok͹]o-#ы5qPtKan`,%buq-j?w?{i!Kf);U˅,+WKɆ[Q' m~l 樛x T vN;ntX$]g0e=WP^;.EIvD- :* blS JnR{NgZSWbrZgk^F=R_$%S=-5¥g!Ƙ:yX; خ[ ƆaU%T@*A1Uf^75356rRUtsˬGoJ<՘˞ފB_^N#&@ q'ʛA((Ck1 4Ml6H_V<๲UaiVKFǵk 5$~wG#  [:Oe?KLF27d7!prx|J[{DqJ"d&/-'s6I 103ml@f}f7I<0e%j(0/W:s)IGAT=8PG(jƔ"df@|[ ̩9+QH%zŊYDd: wNpbճ |\>Ty vlMGsa 6<0ZxHj6X ƑmKOY{.7O"%R0=ז?xxI(:` Q Ml ѵBK˖(5I`nv$ y"tOz!" HPxyȋc T8{? jU3kyk959,S^0tQ1Au疆fTD s:JԬ˿7:PiQtT8n<(|=}M/#JQ<Րs*`)a+&0&iѐa% Cn49袃W;aϣL7wq,Y+3FL$EGC!`!`A'I&S?Kmi%:W)5CmG1y5OHC 7uz N*(bu!ߦuohZǬ/D)'4r C Up~L֫]Y`0\"Zy<-+i$ȴlmKm [F>>6?咸U:yu yJԥ|`6u;Vgo_t:?iyˢf`xl ϞՉZb8`2bR=ɉo*pY,J0eXQ:jhfHVqA|a0dRy_"ň]>_ +>zm*o;΁Uma4_hF<9N)C|a?* ThG5◱gI. v5@2ѷ)*&C{l;ҎJ`H&pޘl.f G@u:߰7%mR&8j$ Ӣ"g a\jGG`[%/T*hIx,:Nq3A=Ѭ ;ț1ebQH;6hhpwk)ek1y߻}N.DH^01~9li%u/1^Hq[C^"PwtX[+ Z2TC#TR匢^3;Qy Zk8혒}ggM@}HvR<;|QB*KuGexKlh_%~ypx)oWm 2`fK7oߓV`CUp,32Z$ڄgnY;,<0Lw+ m= ߖj "5lEC<&zqF}lq5蜎H~ZJVgÏA ۶0i1@Ӷ"V%oX9V;oi\3;\U]?L"HaO)MLˇtc0J1 (vX {@O%r@qT *g[!6TW xcL}Y=w~ўuy>ٳ['^*sPz h=Ō)uX?&zƨoRt+?ke#T~{]}(i#Y+Χ.kw>_k7-P Iz=:A&H-1MgBD;Unfݪ/+A.;&*]rz %F t/LN SڼrHGߨ ʎq"m|[ݐJ=KCHb>{6Ffs_$p}W-<e ?bƤly)p@ʝU.EZk#3k<ł7 Z/wh7̟RPR#A2o%ghV<,Btj%[0RCM~EM/x}-1L\ld.3"tOq}y"en02Eȷ3LRV/UOo2h{H9W_.5>E@˾ȑU x{:a(5D){𔤤C.XtZsgHJ=a!]׌&Z960`:]J E׺P xAc[5Ef[[f~g8Z=mx5?3S ٶ~v)C!ֿniMZYSǮ:~`]AwLfA?[OO.BgpIV݆ID7inrPDgק,N>/kUcWF)X:+Mh40;t:nӅ^ 8i7Z4 PHQ/'N A"g< JȽ΄rw j6&䊽Yl꫒*SI&=3WHUA#9(C8JE@ZE&45ۀD5@h2f I'F#p!8ZfIݞ_(CGi:d56e;`̏]; d.%/jz'%^[NS(7a,m\)Hv%w2ݕ̻>e. }rTKh),lޫ`W\Ƹ9WHug8᠔nP{vm !'K#ƔwJ!j}4Usa]'A'D}qr3iP<N$]21D-EN:j<ɲ%b;S(sBv:i}Gg t1$n`|b69zPbFR3j-7p~{9#EzMǢ K$qe/L0b:&F|aejRrR wo~[id |3 ¡뛁>umpͫNRP(Yk֟[rSJ@9ez6:}^^3n&ᗯDBYans^,(X m<uB,0;c(ۍs- 7-[^O2ש@b`|ZFZ Qd8f X:47my1oЍc7bȆdi﫽Ma 5ff ?>عR3&I)[:1ű⚿5t7\W*X xsR6~KukU5?PgvdWJ@ :Ͽ>˅x |W;vl-_RWkbN(h0QRopsk)8/<IBoS,WQG$w ƬX:nAmk=eMz 2 $s*D:D$`d"z|5ӫc}, OG HWW(3F@P*?^U. m#y]_nw6;Ru?crnO*[fpPO}W\q=|Uv)GS_K+@42y•VO?6,F;G22- G$>y+ u7k8FupuL4`R٪WKʹ4E̚Q!⚨[bLI%JHu9C "aeTq})(?ЅO-קYl/;hQKRAi\EY}eAZ]s痋弑9[|,):"e!eZX:2z*RBUX,fX2Eȑl[9Aba8lN 1w˔ZIL6x֥ejh[tCiTRaBdta9 0dUt4$ Ǩ,#3D!@fNR4 ^vn:h(TEAx)O\n? aEBޝvBsd%.sD=P.eyxS)Uu{2g`wԚ9vS6X>;sTlb*V`{&˰ٔet,"/eb+pۄS=.W.ìtcuw%_37ޱc̽ zc ~;5=pj)T19K9 .Yn(p&"BnMs,$IU@_ Q! AdP&@t.!3QL*Nnis̝!k+60bأD{L,jy卞嫖8>AwHO7%C'"=* QجjL]O0Q$pH˜[-^EB< }I}rʠW|;\d>TAin[SGR LЕp( 3?Ʊ*$rkg%IZ=/1n0t21r2U- TLI;)Ҫ#uɓ'Hc{',TV k9!P+R4eFO`,|УKHZyٺ>UNHCn@蛚wI=ZOu1Hb~Fwޜ&n8t c.8K/2*r|RX4GON pZ埖؄Y47WzdKq-7#0l.(VO;Y QBִ{8ROs,p$!Lu7'صvk(-HrK' Q=i\g;<jg:x뷼xMjG}t Isc*ѡiCWGZOX> `ܾ>'̜ uxof5ɢ$^X⼒ hHa4軫.0l%eu^F'`4ֻD^F gWmMEZq@), P$mY ,H~G{8cY~cm9Y+fI9=CXOhkSb0Hs >Po@fxX|M3^m[Tl8iq{o 1 #2E t-qFG!ï29J xCF;p9I&a&v>t[bjKl^gߦI%p,O$V<|n>F5qIN>. EYw R0I`S FiI@O8_Liu+Va J>X7f2'!`AJI&S?̻j<3x06nK]V@dkҞaw h3IPӨ( (o>?M'v'Eb>xЍ( ZaTyj]=O]ͅOg !Bu)@*O<\0=9=K-@nD~YЊ?.<5!䣮\Q2a!8 4Z-WⱻSB[\1jnܝUIҖ)yV}!{jOc6 k2! y>-۹fVH<'f\ 'M.0<4 {XoFiĀW/ҹ ~_U: {{Қ8u(Xr3cNJ9b]?94U-(v`˶痢SEP f ̼j$EGЏ NL+j(,̇5^\x.3S+׌pՁ\̂;aaqK<:Ý4u&Sp@ּM b g〯Dtܯ)̰ |Jv@s_փ,Y[ (.iK"񲽪BEN"L>莥;CdAȩT5H(N_o\Z:W@VRus :ϓ /^9؅-ihZ$*B/0($@r`3Ԙ+_IWi! H' OsZ'NU#މ6b>u q˽7s9IՈTF?DM%?S,YA;+'0`ɟ&*1ijS5xxMy[O=9[A }NݵE[ d~RS:Ngf~gǁ8>CBE \}'byãz_~18?%qS.g[`ͪnA _M {Rbgq$5oft&>_cťYwt#à ]$R}HY7;PS+(Zh\؆M} }䆲U%ؽk][JmUtLɓҽ‘!%w%G`k2*o8v9l?3&y9Tg77ҷ9%};ݞ ^Ja SpI7(fԚu>%=W:1+}=${e c0h:|EyKP[pΦҸM.q pјȴA8$9sz`PѨC ?AhJ읡:>OJi~>Z5ǽronJxWYC(;gKR\(;%<.(j?f  Q\UsжVslZΑ^%ˀL$xl+*$_Y,v[3ι}YxՊ+~zJ_c>kjh,N9. jNIW,z_Ґ6bH  @XX"SE3ʩs|C ]ifш7kNC9"rNS{zr0XkP" .Nxڧ!̟3Cƺ6R'7h䃌X UHABMidBm8;ܸ!$b~w(EqDI&`cu~~ALmu}[ {Ku kSLD>#?7&_f+G*GUUQbb7؇8#zӄB"zۡNBAc~E9|]tꊶcWF(婃֌CnӀlneѼkIpwiK$0EFq$(鈛!뤌=jOקLC J~/y$}~eՊ8O|t$g{#9^.e ȟ@IaQw7f6;XrjhʹFqZyO+J&uP3CurSJ~xYiMWXpg`K3XLG@ sGڍF7ha8^%4m "܆pIB\ͤJ Ny[g5&g,9Xu>`gCSΡ[ءs.N12aÁH`.Zc+!l/Z H7+@g]\bF4-cȜr6T@+.æws$6?(bm,h3@:ڷڕdPM^g-K% @E8p}<#}OTWW$ }J-|Ζh[KɎ@o0؋ +Jk'޳ݎvZkup= u 2چC݂R?qw "rb:.y-3$ڇG#&94ܧƿ@"]B8K}m^^YrV j#!.B@$noL|o~3B;(-giYxR=<#OsBron DCrm=P4,%Sx!lI\)6<{(ߙlxP3^B H`+x/]稼{LjpZn/(3bb\O=EWuc)^$D]`.!JCg"fD}C 0e9y~'wҦ&m'"oEUН%=\r!82 qIW!f)W' \d.)x?4B:6 ^;{K2nqo1wcDQOEFC=I}je)$R5$VLq1BB2}j=R;n4k9S*j|)=K:uj qnO%Khhk B8+g[沓!)`8MB|K.Weuӱ-Z1\oȞ6,)wp!@(#F{No2m!= {/3xׅH6JrbI%']4>oQghS~b$);cBt2+s{~Ck/NRrO$"!9pjU=94g[/ME&ioA-%ާmuqB,_ D2!køWJ(mP7<O>F'&:[!/Pv`Bn+}հx3)UI .t4e0E} A::%c7= msg2D }sBA?Zn^`\!*kفt' Dzl/~CGsks;,rjHo%*,s&51*]{r_#mqgB!!"A+TѪT\7åm'i.ؾOOE)TsDʟ-LLJ$,|^]1 y)U#+-SzNV!g>'p$*xoc`*DxҮ7lҾ^5-!m٨-ZT')?"FT1]33|埉ӐT2 r=Z ,F^,l@7Ԥ|.`mflxժ-5){JmX 68%(IՍia zӔÔ;è@\ HSJ?hBbK*FM(rva[߀/&ydvG"Gg% L5 5Pkԃ ~h^TPo pKՄ`"lT6ey |t(`@C9|l / Pm#~,r:$?(=/g`GK~ UEl!1 ,\(w?w^hGb[[=~9mBf ک˙@m9GN+Ű)%m ew-j_>`vlM-lM!`!`AhE=IAgRP 2~ IT^}0;0} ]Ot8ş~8FP~ܰ ]a_JԁcLSXUWp]#!6"0ygʫn~UKƐS$,链3ƄiuyXEvgO\>ɥ6Nz ,&T-W[ Wᙊ%)Ee }V"$1hƪ 1,UUw0Q0T?H=~:x4߉4#/荠Fljb~h22V陀mv1,OD`_oԞm 49Ldyy Iᔦ`SK Yq p@D|%TQIAðs9,,}k)Lm.Rgٻ`E.!`CjM,l+"Ǝy 8X y`*8wCaID5aneRm % ;){);\z2RHlhM8k`qVrj-~cONF$OmD7I,Қdf"XWDD?U@MjIW~1ş=M95?V4v^+HY%8V FSK;JCkcL^uS~R!K=\x6>-$7$] !`!`AIAhL)Gy){!~×>"SR(τt\EAw}ӬQE\~޼zv"|X|]jF%\ zW `t8y ءWg;yzacÖ~h@i?"Ͽ3HƊe +"g3_Ox BJ&QCU.e*J ؃LMn'Mk 3u#?X$}#c7FHa{bJ M湴3 zS VJg7;ƲVgRcُO c|G+R:)LYo } 6 ~.v'hlÆVr80NlPr[pXn-qlk\\ḣ3AFZ8kY(2 wqGL;T p8.:M0w_4C1D(qOoxuWa@!iBJK9A6 0xD%]ekJnJ ͏'s4@i+`-=>%-$y9: }| F%"NlCxi.Pp>@aVBUs܏]$Y0ZtG^7Qs"9"R(={.<EA([ls0 WaEȮD"`J^EkbV+Ȟ~p?Ѯ4װ*5N;G7!jOMA}*0Fۛ-XB1.+ A0$>=aE/ 0Q3bbg.5Ts :'1:#"![p̜|nmK3jb91c"4 턮#$NO-?JateU:S6PWH+&W6^Xpc"`Pǻ;٥ * /}-2LdF٭?Gяg-g@P%&qdTψWV~)dR~JrZb)[@L癥te2yp{/a7J#ȥK3 Е( J8Gm|g2p3L&M;_RoLlQX~]wmZ5),aV$,֤giQH )lRkf_ Xk2#ƭ 3#~b7J> $m BxŶv+w>O•G!`jMv\ K@@_4 ۭ\P<ɞ S8sSxqEGw S$JFІoWH0I#Rn_XHmM -Q"2'_l@QTc58S,7 {sd|DVx!ӜgX[Kͭ<t5y,ҿn <g۷%!kO]c)OK'Iqγ,N*4+?p$+虣5" Ҷb%!+buG]NȒ|5/ t!:'yƓ=ۑ ]}c.cc#E0*Yݥ:)}m9Y{t('AI1SrIlK8rZб_,y9j/*\3ͣo'~⫆1|i(=KV!4s'u5.iT,ƱLRf/k=h=LقS[>Z>e͇},[Mᥚ4zآ% 3d’MDxKE ϛԜmŹ{T/Y.!&5dHam._N{ r +ew2CXdY&*BCSb*e"[ ǚ0_wL_$H2^}~7OX#*>iAVOX`=hjh&e /6+\ (F! vr-_5vs lS2ǒ.`c_Rc D[RZV>{pP]^O>$=+򂴪吞H,lFNyu#j 'I34|"&[zr˯8x줳NFK[!MߍJV([ ,n+dCNLgFE1#-~ֽג ]ӻ7)0_l^/ | rD+)eӺJSE2,l] ,I9KMs6W{.`BKUx+ 0]H"Y]9rWGc1rP턲HuNVyE_b|k=AͩxBͧ\.|iӛAlrnwl˽y^~2>Õv!CuP!R*QYqŴ>ra5Jt`;4Ja9BR4^hw>\DʺVUfbkD/ 94\߉_eq1>r82 ւۢ88P$3&q/UKFisL; Z&Q$Bh:}vq*0%Gl ]F,s'hMD1f%qʹ–&lmsߣ=B~|CL0 i7)ֈXsw4*=xӌ!F^VPa@%;xLX؟I .~]9m5W8iPށg_c/g"=z^/3_yaɢXg;'S#7/&cӇˆW͏漠qtNC!}WOnxPǠXw˙z)U;lRw_Yѵ,h1,fDz9 d~ξAE%t:(q>FU B3Ga3V gA:U=jOLSo)B:RvuMKKD16즿.=$q8k7`@:pϡ(Ys9T%U./ 4_:1YP{sbqsEG^OlC] >BUʐ o5>h Ya=r@^28h^[c"O–҅Vһ{&VuaJTYɒ  ]<;u&4-ybbu>W48ylz 9^`tCP&&&jj^ 3pTI}olz'Kl=`'!$r9Ő|V_aJ7h,uM[dG b. =|҂s˻7II67fC_ODf•kf|iCY؄2ݝٜ S{wpz,FKv! Lމ|!XFm};Zˆ^N(ب)bFD`iʥ?)p(nyFxFg1*pH~dlԷ=)ԡE ti6Jz4yu1^` [G"\O3db\N_5$Z ˥Q+'v XPW1KXB짦H MOo ؚgp3 1ƒ)qUD:պǿVcmLCyڔ{B7j"g*O?V>oC LC4>ak}~er]*y#U)/ ŗa9 &fao^*1`0̑dֿ6MpqsX/WLJyrz~2V}ƞ~t *Ȋ67~ ^7{WU%I0Cҵ"Ǣ"N!0rbn^`Q7CUU2.ӄ/ث0뀧)L~ZH#WIGBi0>[8p)fr=^zZ&ҹ4?l=r3aQJJA5XŖ]9IɌ؊&x_B>)xtHA;+OU8IX}!/ AEx܆j;¬9ab.ձ 6 )ax3yO5[PWpGw;7:Օ\hSFh<>qi۝iobJ8uu2? RbEJ50*1gP,@o^=Yn>UJw Q^!b[XN&? =)> giMmVt~TF=ĽlɑᑲKnq T ~DaNPb` U{ .ߌF gOdQ}6fse4-.ӨP>WS̎j$w1Hahub.n>3.9rxbZj䖧 r`DpXM蘫Oc&:;,l[g@¾-xraYLs.>hec8*THtd3ZKGծߎc[X#P glUj> 7ےX2Iä ?A(d _O`jS^&Џ58UU)CC̉g*p!7[ ^1L)"U@N'JˬM- ݄_Fb;+1ETt:wu!`!`tMeB `#:+.U` lN3`eNP@ z!5젆lD"Z/#W*pVa>*nh`)w73p^D[@]VKē&fq{s-)H d'^goi0텪rqXAwYzf۴ i?i]ONxu+*2i6fXtOn {PN:UN @] ~ߧAk a}7rdU! AފK +HUYIQ-'.{eP>;RCv ]7N<[dldO8es3B>#;|^L씄VDr#jѶm N==؛)C3Ix2xJx10+bRmxpOy`q,߲(!`!`AE-`D]nv{P(D(% ` 2`;c^pu'Z7)uBj.zE"–B$"s{dn#OcC#J7 w!`H1tM"?tE+]tf=@ߵF |cP C@ !`!`:3jM} ^Zm=p!`OA8IAlLy. BEo4u49pt;ZAJ-B}CvR#0̎!΂\tjZg!-7^>\CĔrqf.4&S1x(?vr bGh.IkWajgKQ4{!`!`A|IAlLy. H{t3~e$Z>z!5젆lD"Zڜ .G풲pr]][,F@p ¦`TP5ch%PM1x/|O,M-mF!Y?B@=u%/r*L y}&"f 遻 bU1.kNvT6a*'M0dIűŔEKc*)]~ 1B _@C^UN_dyCUq\g+y73'3zCΨG"Xc[bDZY/YȖk N(5'f;]nFDs doEO.${%lļI.qC Eϑ^ OƏn7ifb Wn+?ΥRPBS9DH_sB=Gx&!!$ʃltԡ"\:>۶}w5.A  ϩ4y!`eAE-`DU΂ZI0pDS``udjoV{0s^o!=@`B@흔rb@ jfznvUJ!!`!`BtMU<9 ;$)?@䊨X2@C]V!`HjM; \_ޒzL^,Au* &#+!`!`-AIAlLy. BEo4u49pt;ZAJ-B}CvRP0ڄ%$YkypUS;`:MؘQچ[ؗp[Mv۾hMǡ9וErxLn>Q5YՑmV̹%v-mUP?pZ$oT =ȈAQ{]w`!SkJItb"O]Z_t@3[OB*pqC|'9 .7ZGÇ7F8и;,!``AE-`D}'={Vq |[Ӏ1VDgwƀWa @OC@H>}zaơHnMR,mXdw\)c[}~9g2B6E@a޿Ҷu5;ԜDs ˪+n^S0;4l]>:Ivp;Ħ$.JpժW֎a"*lc׫ZsM.ƷCHo^87p#TԦGz!5젆lD"ZOlO8UPS_n98Eiݎ,ޞn$Vecf# 6NunMU@DdhnՋwvZؕTsmt[Ask\Zp$XO R/E0\GqP), +_Ovq7?`XKDh-ˈY&a-7E 6e4TS݀9y腝.ヂ2;8.yMGS cZ R%|$LG6}֩xVވxH Hhٛvӽ#jjYbzEF*>=mY~78R 4.݅QvizD^h& A9Q,Ȃa<Q#mh+{6$ Z)Qߤe\[~S0CZ=0Os ~hk5ݽ:f0xK@wWR̆xԭ?@l i`!U'ۓP%hohTIHe15OoXvgOP܈95ak1[R(Pk;5'Q[[@zHJ=^W]JPsoG[n;y {V;cbؤGSUWĶ]Z}%h}j{MESOM6V썚Zls8 ^!Z\g8L1_y!{RW- `eθPDRvЎ_E7$t>C ZGL ˨1o^;u)ϔ;;źI ?A r,8zpK3گ(HwL.:˂m4ߐbMvu" :@|fIu#iJxf( l8bяSnYDM`i#ؔ@qIC {ڳW͹GCBUٮN!:*+㨸G|ȎehS.cC:VTq[E|As[%o$Bv. cwީ_?2㲭 xS1F; [3F>#}oI1<ԧ`phiv,[X6r=ؕ\:/<"q.o5:Rՠ̟. aKl?niƢ;]zn `eF Ds[.-ǭ11@$ oM,x #i޼^60K`yyߐ;n U%b4Cu~ma5|%4&9B cJN|b{%v6uptT#RRM "92br~cȘZL@V /vs7R'nH/%]yl(>X;5j_,OFaO ͟@u9\b׬4#P`li:ꁈsYʛ#~f:[izfMPO`u*W=tR:>G>X0P" j?cq>7]{fL~lċ }ޭUcÌ+NpɓnEmnǰT[i=2E`tXEi]hmSRӢ pF㝱G!`I!tMYL?[]H 8j(uՀ!`!`n#jMf$2ka6 f> m눅+EtU`!!)ot@` "UzbZb^WݤUk0}f IDnDܤcCn!풻3)kJA`oQj- =KyZ(! aL˯TGԿ:諸U070ɧɹmB) kS0 vKﱈZ˦w"9{wg)i%݊RAGsx[h}ƒwGVKϐR[g7!^߰"9|}*ͨ6UܗDg#*܋xmG υ>=s:,M}$[Mڣ\uDfM nD$@xϗ Ef r7VKoki'9ozR+nB8Ǹdהn8M$P@¢zQcDezALavc57.107.100B 8!`AFE-`Dx>n":IG K#+0 32LB̀(s 3 [}!jK[*lyH=|U]Kx!| ,107 X<sai/vgeŁ!`!`IetMU<9bOQd'7bh"0 xX o;_ʁ!`UgjM"t x dcF:28mIŪPr;S#p&fv!`!`AlIAlLy. H{t3~e$Z>z!5젆lD"Z/lO8UPS^c̖z[cec 鏧䢠R:jBbJ+<U+݁3 <%צƍDt6_^"]WD(ASGf@8Vҷ&"SZX|fTM$ɲD9\I{oU-#wGAk^IɠUJi昽li1oQtu!,G/|WzJz|XլCrb3OM@9fq=h4wx/ZcL42$k l ξ R S6@7RB1Yna A1ӈ;NWOs?J?5C"<&=.tӤXɎJ`:3Sx^8j)LJ4*є+zio\KAuxp+%ʾ]f EzS 6”}}mkPx8YEG0VHywwTY8wxt@O\51(vCZ->uRDXPYRw%s>Ƥڱ p TLБ:D8 !ṫ4='e "lq<^grh U _.0(z&A,V͋ ?'>2^hҭ`Rp @na% !`!`UtMU<9 K'lqˆl7SrH|Q $cJC8!`QjM"t ?QQ8@:$ĸ2w6%q~mqXggG5!`!`AIAlLy. BEo4u49pt;ZAJ-B}CvR#0ڄ%$YkypUS==ѬϘOg:S {C ڬ3P̄e^90>f9w3Maq%4WKljD𼺩\C5_0L )v3tr3}H|l==6=۱' Mj'<7ܻ-ePص.W[؂pY(m:+Q@qyK}1pɝ<CF?Hd' HDz "O) *tl뮋3_y*D53uRfZUgX."O|ΐFMa5 VVai,c)h"ҊGu_8 T@NH,qNᇱmqR}F@%P0'͛ }nLvGxT0LO;IhO(N32u' '(/G-Lٴ'hꝦ`:\VOlKf!7&Ln덫5Hy#/" \.01D袒GLQ {#POI,#~ĝdmjG XjEe/I)ܲűj5%ԫ =χC݌>56-0^f<2%OĤԃ 6nkst;C]%JJj%O%aK̭oBszM_)IRN$ G/t ܳ`H|($e8fsG)Ξnh+HUj4e3Ԅģ_(F< p u*'.|/5g| )8ub;+BVl~Z0.3M#|v=SѺ' %_!1@)Dq+ܓ,Q5v5+k6sD|X `?MKHy?G]E(SV8,u6A U1i `i^,LxH5{g BR5c%=Rv]9UIlМѿW*v ZcyY7Z=*ĄQ6-r9y!1^҈VBv ]16N>hog@td砺%@;8"d$mĜ=ro{[tA! /EPK@ 0^We>cO]cqS 5sz /~/6Bq!7R7ftޚqR އ>7I 38 /LϞ>d:Y~ݎf ޣ@VI,CO7]gHC;I×hnPm^Eη_w`lsK@|Y̤0~T[RN\c~-Ry7iq*;Oߝ#l0s9DC( !#M6[F΁9!`!`]AE-`D_޿D\v'o"7=c <-!a(dǶD@ֽw^mIUSSqnHN"$zsɹضĮloT{G됍75~Ձ&=%8 X7Mcyh~P/RnZa^2T$5!m3ҍkv4zQ{|] ,l| +-7丄ZfC`~w>;&OqvT34Ɋ?XzYE\T&QJ0%'YLX $M\WMH51!`tMȵ1s_5hIBW<5zc3(6`$QQf ESh`OQ瀮z"(hHT7'ǺWD=e@JrdvmQY{-S cH3!jD7ϤJ|ʢkx7)!`!`hjM"t 6.``Q8:䨀`" x I^5]1}&? sA&N45Z=SB!`GAIAlLy. H{t3~e$Z>z!5젆lD"Zڜ .G\1!_TaV@!NH-ڱ}ȫx&Cnkv+;5jXbn,! WL[.QG,8wͻug忚& 5P^ SuʏG Y[ni(@:X;\B1dlLA4U" w[c}V0"~o*/c3YX^'5&4ߘǢ>PLg` ³Cs D#ϸ'4PNl(=~pÓ~t1dS~\!\o:40]tsX 4?" 4p~COvSSɀ~0 즇 bħ^JK;-DE1\3Q:4ڳd oq6- Oc_k0x*w' >FXQIBQ&嵂fCGD ҖƢu|Mm#ؑ?dP/DX[Ĵ%m\_fuXh^~4lBlX:#KUv8SrQhi8^~X50\ʋ^*TRe*4P>ڶ[527 iK/To.hד<5jie;G z;,KF,.ef$nnh ~BG\vC7InAO.|ɸ|. UB;m2kbd=:6(3aΰ!s'Ə'Ƴ7nŇon#,*;᳝ʼn 1T3bxrx% %ۼӣa}~TMZ }8ǖ/"b#ka1]nkedDtG )E#)y*=U ̜P[(.vRyKl Vf~@o/'n·36NVWc~'ر.u  !!`!`AE-`D mҧ^hպe RȻr原^* &ųԣHl؍"#xtpJ)9B*:A57VJK£z:\L#7d&ݹ,VaKFz&=i!`q1tMU<9B@[@^ƴ*k[0ebz` }Xďv0J)ƣw!d=]X[!`!`K3jM"t uXpc@;+ u@Q6@ACJD=2F ad@!`aA8IAlLy. BEo4u49pt;ZAJ-B}CvRP0ڄ%$YkypUS=EĜ͠^y\FzE`>WH'Z9<;N!jd(,J3'PlW؎/.'a.0^;l &3N;!ǀC iR]hC]f7ni{gtPs@F M[l[%̪|hwX= EV2mxߌ!=_fU.[=W%D:g-\QI$c[g)<?OϢf w1=|D~ atA\^xml7M׺bFm^u\Ss8ן:=u+׿8s(5OJd? U; 2]}M@Km/S!_mFh) }Q (DMqFxY}!\ [!`!` AVE-`D_"qp4MPS\(yP@u!Z~[Jsj.=Chcx,鹿ϢDH]r I`oC) yKHC{ c0JoB4Y?U}<7:2KbM,+~} T̎~Jps'x}6PJ?}60=M08pR/FR!5&E760T3p^?ޚStF;f[;f,ӿjS:2Zz?4b ?Ѷ<\sSfN섳>sZLG'LWA-Y,MzIJ$N)N/JWDtbJ Ͽ^{}C6!`!`hutMU<9^9 9 w &@ + xH4+`X(!G`HFz2<*fE8诐2i g Q!`_wjM"t uX diz!5젆lD"ZOlO8UPQ葷QŰ\۩_Iэa8MQMӁ,IDɢp.oatٜ-HK3;s,6}melpwB=7u+Wҕ+`eSTо0VD~̪9> A3]W|10Q\# vi-HOoXg@2|rk/ kN1{/F:7gMHFՌihi [ȊC._ˡkծ"k5j6:gN!QBk9!ps%*Wx|.Xd }LFIP+od@#YzP^cFs]Ju/'p5 i9/C$?d5 )V(x -/E2"3lWtPh` !`!`PtMU<9^J@f 9"2 H 6 ?hُۘ` :sQ #%14rJsҿ=|ͮ.yḛ| }ޛkC |889ҳ6-rRk/+~V&R7su1-\_CŏpѪvqjZU͌&ǚٵ̗J8 Y5*8"v#76-z]z@ +kb#E`SS4$)P.86ϥ_PaU o.)yg2)%gp;!0+' y%HA[]n4<,#jp}~sQ{G{(|)b2J?Mb7̏)-{c2l.I>4c"ፘ4sq3C*ar&Fedb҉V!E]4zdN P"4#?SjB`(,^)B"MvjZS9B텞o+>>.>_=o;՘z4sVZ*XփW@|"BsIDXj(%& 2$&^t;@bm]̃Ex6'bXH7NM4E QɪnWr;@&ai%r0EuHgg*+5Bcdg|aP/7ɿjҥ7HG3Rz!5젆lD"Z/lO8UPS; Oq<$=wcOjj+?D<|٘n]'wen3X!RQoM~#S !221Sw;4TElGTwZc?$TtF֪$/ v_Z4_a|bέ4fU &aTbAD7 Q%Wh-KJ%+$.1[fTqF'^)zhe)\@~d71CEd%)sjĘ]4FM (E.oIV5]"aڠ2{zy3 Z'3i, @< }GJF eB\vΣI@FjZ\ՌԵqv9_!}xӎ>ўJn&׉+I:-YE?-* ^kt!R q7MVe  }A'vad#-ΠRa^<"l2P6UzYsG/aKL8=ð˰:s΍h9,m8Ƥ FRF1\^q2~MXIjσ'5`:s^twp+<+f6٣M4}:zJiG rպ0cTaiӅOWAAs> 4L)oC1,n-0Ѡ:ECվdQ(wp9ʻZoSN$PGXbW!o_3$l!Vӛm) m8 Iʉxѷ)6vJTlSu͈Ȩ|gt BZUBW҈M+]SSu7~^LECpPG*`CgNC?rJޅLT-޽׫)1o.!`!`AE-`DuW ĨKy lIx*|wDbo]2]he"EWp֘+n 5agH4*>s(?{YLq ^/5uIXjM"t uX `fBw@!`!`AIAlLy. BEo4u B|H fgyq0P_t⋳&Wi14/|du]KNYAܴuO4>CMO)+')39>nDqؓ=) xY)QLEe{f&I/'=A!`!`TAE-`D Kx,-a =O1z5Â8ƍ ycvͽФ l&!`>tM"?.Hী"B@T 0[@ 4&!`!`>jM"t uX `fب K!`9AIAlLy. H{t!fz+ZDJ1Hr}v@zA ROrf$K@ #fćOm2Uhٕg]\}0 0] XQㄙ ٌ14| {\8":ZҀF M, /̌gRwseu}|];չH*:#C+4:+5ʃzb: o[Y'!`!`}A|IAlLXkIu'1e HTX+t Vhzf>P[ݶOb0S]뫔_f_u+ڋ(|kL'#'r^7y~5/~#e!302DDd34{h\(ll~Iv:K7azE z@fP+EĞJD򅧝Wznְ(SJ gٲɉHG'9\ !:fcs=`dXGbfpݦz9q+Hu5ԊS*/?.8(X39b^ ` ,t "Nڮ́'*tL4]=^>m>oe" 1w"D d8PJ#6id +ٗ;S+BLsI@ԂZ"q8Uc?=ed̪I '7U}{]E|B4 VCcSQQYkc|d8q  R,Sp[X ,Nw`NhԘi.JAyS@#s˿`t ZYYN&`ES+<ЅBy@;R!`!`UtM"?.H@9 ;Z97_t`@8$]$!`=jM"t uX dzx @D!`!`AIAlLXPe7l"mN۪{먂M}nhk)m%˧$r5%/wo #|)*m :jau@Gk392^"2{B,d+ťN]"Ek_X4x!~* _l1bl<߲!`!`SAE-`D Kx,-a =p ͧt4#{+|J_9 *=!`:!tM"?.HB@ U!`!`<#jM"t uX `fHT!!`!`_A(IAlLXU79+<REf OSAV"ySG'#An6!`NAFE-`D Kx,-a =p ͧt4#{D@61]!`!`:etM"?.HB@ U!`<gjM"t uX `fHT !`!`{AlIAlL ~t,n`C,p~8ksč| |7&`  y&l^tG,)'|X학~!`TAE-M$.a¢a{VctGIZhxyZ@!j&t˨u!`!`:tM"?.HB@ U!`<jM"t uX `fHT !`!`AIAlLP|im8`%gGɣR/Bw=8x۱7rV)j&GWޠ'JM&1+-ŝTg+A͢20I/`=5A339frt#,E-u wMpDl4g% sLu]^j]N2E7}LUVCr4 g pA@@EKu@z侼a~&phqRǏ/_T/A83F<UoEFg0 Juauf^y*Cc deM{m['cASw/*4MC!T z&T:57:SiD;P:Dt %6)犯9:'S"ڃa--,'kK VƱx_,[Fa-ePlC?cX$cL$oU.Vziy{hLG;t'wmt'dя݊(F?cioJDY#D0\lbw_`4CԅrBzQ PN[݅پP;{Ǒ”=™s:m&-rnX1b  / 4FH"aǩW?-(gEz+U/5A >WUknz;F6b|ieTY4~yt٫|a cgO>qOҘȥxʕC3ly2',w+2R-kzMno{0~/R嫒LgC> I R7V~|@|c$:Z xBv4 \a5$D7b& Ąfg+l4ё3)~Jaڜa[gQC?y`fh֓F%4G̽*IKPpꪍV;V\\Vep^Heйt06PD{^'k:AG;ϊphU$HDHB!TBQ%V-ⴞ}wλ2M `;1, 2δvsTO{Ze.djeŭo~rך Y 8x ʅ=Ss*5$ǥZW`amZsuAah:cՕu\> >۷<ROD*Ha܄1թ 9D aZҒп.PʎBZdH̫>wMx++8 cFk (0UMIKb<3q,C_X ߱c;N h}Qf"DF@ȖseU|wP/HK7[7UP=}SJW2~[xʁc1b24TИY$ Vjnz,9걒01<@lt@+>T*l4b@7 P/؁f(e">F/} ?0 ] )Hҥ=}"2c6MAJ1Ik0VWowUL-ƵT<}*rnԤ *[mN4R1R6ŷ =cYgzQfr^GX B^Pf8SGuY/gr߸-Hï_Hg.GEv|8#-7ѵlBWQdQt;(~z۸]sONJ|H>_ C ;)&Mሬ#z6hx}6VgZ~7D'5_5pqǥ9JmnssZ| A&nF,QbP(>aHQNHzcabG@K3݀H\&|%yQ4X7!`!`AE/JtIE{N,/ΝBV+Fq6ҾQ<*P5OpI#"<ޥDIOǐ ?7=uBq>G+QO7'kD=,eyd31-J:q3 ouf;[+){⩿ܸYC/DPэMaSD ~gPPX}:+2:q*#)r?;qKY"l/7A2&WxVk-4^2YXT}qp@Ȟ!`ZtM,~nd2 f@7$PkQTr,+۬iP~DȘj[xaG?cI9E!Ұ!`!`jM&p:S` jّ@Ê7İQKO2>22B}7Q".XTo+rZcm,wkGՃZzgXK\-K%LE= !l^6 X*ј+@n2 9WhD {f>QhDlα1tc6øAc v "dJLtxsi&0"(E:A$}J1P"Puԑ8"x)/$l<ڗ=|L-MRXjBoUeA{7H n|t.\!1?Ra8T txRΡ*eA򃩐@8F:R!xɹs1})8?6jAםD'EAE V4/(f+:xlHlU .r.I9OSBDOޒ__n,ENXM8J_^:0lm 7B񪳍-1N$m7uښ&Um(?WAa_hWxfe[2lT4Kyl,j575&4~_eg-$"iIY n?mͅq4gq'hhcG =!&# 0GyKLM(8ȷy)Pf)Fvɉk$򤳕ל[ОϤQAʸ\2N368i<1UtEJd1e}6" "c_| HeӫuA%:WzW\IKѥcAhկmu!OKv0a`>nԫkT% 3*mzX 4G.8W"U6]ǭ}kQ%y$b dQfh\@؀/d p]qphZLU=]P 8PXE!o bdYP:_;S+^e4j}l%pAA묵.<<]FmYREd|gēbDW(מM焸 -?EC+m鰴],/꨹ %oZnp Uz7ɯ O/!l! ͚&z˹Uy?pѰYZ9?'ir=҇VIX5uWm2E֜giӐs#ҡڦ>}tIq<~&=4bq|)V̪){3J~-dcʉcxjؘ$571!QseOԁt9Y3Sp=mzԕBp&ƖfE]$xמN)m ,ЗM3K3q٭Q3K@$Nc^e)ct(<2aJó0dĸw*%7sBb^ʗ2-,jPl3*xPYH&剝m ~8G8:W)V3-{A+Җ"5$>8^#ضZ󝞛=ĩ3Z|DA8@SB/ibzwxgq&cTac&˼t VTN?(<><*`S(A,1撚k_&5%3n]&\Fdz_0 T4;,E{Hw#pwssL"0>&IsyaWg'~4L?aC.;\t㆕ 08#NqI'_չ$Ѣg%W!Y@~4[= Fb3FL\2{rL}D bW&/>&PO=7Po`}+"0XԿfI6NKXdG?hb!" ~\Cng!P'b Qܿi⸌)?R.q;S^)Ʒdhk߿@m$QdP^IzX uLՉi^cd؇,[닟2`=B-~##JHp1PB Ӹ^:BJob/we 8oFIO,3VOl]/jҨq!oFm19x({#ǨX Q.›K/ag`WyԮZ- AyP&9CL^| Y7Brh d3WԢ:`Ƈ6L;u{2T~tbV##nF&p:5aðƎ6ך7d+;>RrUN6)frdBXgU>zQd|A0/ǵjV8*-¤ 8yP~c`ag[a2w c] FXYCwAe!DE=JY"} B<ݽ`3P o0̑%`vT{0+O7l`t4 aGw7JG64X\:vKYl/veanϰ# [)c$'otX\DK8N<%xw%bD+闭p݆)e4=W@2r~c7ٗ~m+N~T:ۍd--~\.^+=y$S!rH3sdMSBp R>kexC e K+,Jf~Yk<*ޛ@0h>N Ip!a/h4+oDX %-p3$_]fٲPb୨At=` 7~6ڡC?PHKZ}YWd#͔8D?W;:xuDH2G1[8EߖoT2 .>#H-'qdlT ?#US*M{Öm2i4Kҳ=jJQ,nk^5QU~Ç B/WJ/٘aL:bv@Khz<ε0Ikjlz&"$J^ߡJ.-jDa /#~7˿n${e0f]2?B(@YbUx%o᥉f4?eXtZ)'OC5h"R5p2">EްWѲM ϪU?1m|Ϻk*`TftUV0! 9D`cfa }!0}к0,\ vwSg95Ax0xC_ES%9Eg-Dס^/w"E/jI&O;d@AcX"w(H2S0zÑ&J*YHRxG]Lx2gZNո^X_oHx3g0~&\E-A"T̤h8e~P%VX:hY}E]CgVv @$ 3βeDbko^ݶ]9z PnF8mLO ~D2硋WP'DUYn e:&1jŪ?SB+fтMXa8K"Y5˕f8^*Kuwۇ&(ˣlqZ,$[ qzR&(xoDFh^T(^3~w,}lv@pmrpzor?}T2{9!mj3mǠNM?9ЎK8[*ظx+۴IFseg&L*^XCR`g)IS$X[UO8𺧇VV,/FL3m tx (ԜD|!3,Voyu^x/^.4%%]`UܹɛX} Qo EGF:3$>ݥ%uycC> b!`!`AI Re0"X-Vf>isRsKOydLou{ݟЋ??ЄrE j$iSvyLq{ZMQyĪz ".{#ԝFem Uə9< f+*1WD<2e9Z;d>,YՈb spqјq]Wi[LSk']l 9sw3F{aVgnDo+>g1౵'%@*j+^fYOe`+e댴4@uAEY<)/` =1 +(>LNYj17 u\)dJ7ljrU 6.𗺩έǏW^+k^İsXaOw5ιuX,!6E6:~#H`p\$LIcެt G ф\ $|z#6r1E TR~u%Q$յ.r\β級@`4-'H `_,J ÝH>a`97o{wl% R.m( n -sf]E7iâRu5:gLg7I;툲Ö+L0ߑ3ş&UPۍg* G[ |zgo׋}C LʕZU#3@DUFԹGuz@^_sbY10j$,D$V M>ONakn<[䗔vXInD M)Kp֗6cHTvZST,e5K@qؓ޸d)cR`qRK_JLOUYTM߫GSwmOѢȗS]){F_&*SFSϣѬ`gcRk 8L3B\٥p?#qKok}=z434^v/Bs?-C3҆mFsm/,o˫Rw(9QƎA᧞I+\}9wlL qA{6E 7z JXy:7_X2*+^bVq~nȠJUk}}8z=u.m[WEWo&.&B.rݞ B@ꆕroбђ̑gx~Iaw3&O,=__J{КrrF-q5` &=Oo"i)T3&pw(;6F\Ct&5̪GnPfr7tYT4w%~w gr V u4f0b2齕A)PznBe٫5#,v7%*,M#\g,?i' oOa>:aW }0gI FjgNTmvH[IyM}bR[ ̒ϩrxCդ[ߓQqJ\X<7c '0Z7wf-[E)>A8;U &Yc LQڮe5 {J|Y'h"U0oRLcv SۺC%ӟ.F˄#pDP,>g @[R䀟,`l0Y#c|KSV` > 5ݱ2/~GH^D=8L#!; Gkdw3mOZ*OpBsRAR̄"@i5=-V(PFJG\, jv-{!.-5d4O}0tBkyⓚ3n7)uy yot?e>lyg|=ҒשFvw f%4 hM`*jk=9gy"=re* 2_DbD,;|U_xYc>`a'͚ Hvu vᔉ%W{zO!]Wa:ZηaYrPahJvhM}Ƌxf %/ LM/,MgMd}'t}syv~`L뷬n6rj"bCIx`'R*A:t}:֞ԾoL򯬗qґ^SFp|(2*-fc+ NďQt-k+IˈCh]#Q&FfTn`H2IZy>(и #H6 Ԋ6AaB\3YjGpr%vx((I]cŤFlͲppH3U Iv՚UP _/AXJmĕ;s*"yi3^mΧ ;9Qgq7q!l14@(QlA*5LND݀WiA[|R ^B+FvvI#$ԝ|3my T6|/=͌czOV֤@ff?дXnvŁ\bb?zL_Y@PϤ~2l6Ox(lA]g) ٽR<3RЮO3`MldSGvWw𩛄Fg$8Nw{3+´bJ$w;,oV Jc2*uƖ,zk\\>1٪ 6a+%i-^P\qF F¹.ʊӡTO',`[xs dĭ 0?llWNU28uG&K bO?jk6=鬚,>FTY̞"7[~1* 5bcXCƮDeoҷ/ tPnC@D^P &垃f:䥗/vk :3-l)H(x Oʬ4bWoߩ!fԭOFv* dq>Hi~)1.|0rYKqm#[ ,?H蹙v`_AqP$`{<|SռPi޷F mA45^g|s,gl6wkh!`A3IhJ{Դm܆PڑF:2rϡ" 2@6]F*vPFqNCh(n*?0R)bڿe"f.jayrhk1ZѬ e:NQe7!d+L!ɃIf9 {޶d|k]( VVpD#K$+Tu&\=Dǽ%WTQmv *giI ! 2%EWs`6 ]s7iL} a4ޯ%u7p{7qxW{M_ˏe&`6/qh |?Fթc;7 U(~~c/H@%+ r#SGy rI,&e_5ϚBZCorz!£]|@.S*b-ݭ2Wx-Z/V*=K"m+⸷j/U`4%jbp3QvZzlx}Kѥ YwJƳw/91j,gzN{IڴոGvo0VJ} `Sb,5mz7pҚL4k's#vΑ#v{#r!]G 䅒d b׶(auH(H%2 HFfř!Ѭ|BR`avp io 7ǘ }faq #7{= 7]T[ د2!"^|FՌ{\Jpc{L1qoE?Qf13Nr^J\ Gk1mz1N@VPƿ0` <L<&#x϶#1wehש;fERVVw*ۇ5 6{B%1Hly|7 %\'i9~ee#!a9K[_gpj0w)O4¶9_ʎhO ~}Mwrssw5Êi PKV49<(;TG岁r]1xRy(I50V,ooe~JTlxHKO}haYZ˱6iio6g2-_:oB= xk ldm@tu%!`QQ5>q^}cj{do ^|3Ϡk~(,Xg8kF kR.Mu.fwr⁇ha[ijEDz'Zfd8I!?i,>=8wlƒ??ctBP Qp!U|IIVnx9dlY1`pV ĭRzz'N>j F05f#҈>.҈.ͭ9ͥeg[Y :wl6r% sFލ:KYDžA|24m[+[}-nCGه澽IA'`~c|ttT,W6J>1,`fh[ ƛ⭰sԾEG2]3`/u 9o{"_s1Jl_"0Nb,3F[3k铕2U V.ҟ+nWz NFˇ?Q{$C/tl)$HG-h D6ө&3,gP>} ]M$icU'DC )6QFn(h 8nMo+,kXkX 9B}(@=edKJ㓱{^cPU1[N6ؖ9 {i`qS kraʣ׌s۱dmV\o,hOÞ<6U >8][f#&# Vɥ63_BQAi?B֣2 UE<%L/G&'[S%ؓϫ$ AWJ tR)'X^]|S:[  L7ω/Ũٗ!e~iu5ltf'e7Bj Y6o6 }6ҸElY:mL:S=C O#>G6K zTX*rpHNE3dI^/Ϙe}"̡VBW>TGIp/$<9|0C'-'xix?Be^4r';2>РΥχq,*@%. !_78Ҡ>*HS]@+]'6o)`YS8*6 mүVV/ɹ6+=h{@ Pi3XAZS,8W] \o, K.at?bJI&O\&b^FנץrTq!f) c Co l5c5ѻ)Pm'Fb]qVR2qmSDƐx ا &0 cH˅)R @ Gq!D!`!`ATI&S/Xq$L@UK Jq< ka!3g.4t𶦕󲙬(I!p;(b~sMu@mTe"F@Sh$k:c4Xsg/`GzSg%')'ٳYS9)50}ĜuH?eayt9n<̉:Y_7FŷDy)}3Q6ҩ"b- i쑤ڒDF)ibM9j^̩-0%l>c - %:A)D֊i>V>Yh> 8r (_;I: )=W4cje.gR^$?]}aY`rSl@?$ODLA &(_`~*6vv# HK5Zp8IM6/fN50_f1̂l"]>b|Q ҳ%v(hL%XcRPkD~8cE)F*:0‹6@ }|N˂ܹzz[HDL Ibl@9frV =V#N)+ݑ :Վ7 !|_8!<#d\6r!ոƓnTVi  ;y$/zUƏ vd03({H·<7lcÔ0I;F]rTi-#huí?F.x+oX0qq^Rncwe)Cqm+5 l2&pU6t{%r:+LP2' gxy Ἓdzq[YJ4 TMe'X9wQ=ş: nW( ²sLvn9ed<82twi<ؒ AP@2y㠙@9@|-',6z:x%6uj NA6JM˸}h8[c6ƴ)սW)b"e&gJ,e}pj!\gc9ny)b+fzS@3g1 ?⑍; 043˾O3UMƁcsQQcUI{@ @WŜu祕m'h(7B\ 'TJM+hU y[FP|f9N"Ⱦe~GX#h<+̭wUyE"[eS *_Н{3yU9SJ0`񱏳biժ癑ZBƭrhGM$ dwl2suAtKtsau%`.,[]]Ў$q:NQ|"A$m/ {m }#e&R]T0?`] g+F?\Dv^x$DZn'n=ZOF_MI\;yɛ߿+5pԕA> ɻtķ3P&vzܡ*{H7}Xa<3a3+4* 6's0xα6Ή^LcJaaIQu"Dȣ#F½ 6ge;}] tYnJơr%z}UG\z2l<d~{ kҀ hЎdgR&YV| <mلUˤaӤKn/&qlp/s@A~ uVY418tzQsN2P-^ GgQȡ?h# vx -5b-AwICR">9^1? M6* l3OC2uDv2"wvũ=Oy8#忓5Vj'c>āLdÝqh)q[C1E&ۡ x\IكrlLE3t+&d1PE yy0>15+`WㄡC_QjDm*Ni\WX#SBН8v\J`fh噀0G?G龊2mh1Ѝ.+0$X%ŷ J!xe4w:$t~\~[81,~3oږvoF \BdQG@pm݃`DE4i٤# [t /mXtUٿ\*?3l,ԴxFG<Vনfr~ROsa pVNɀtb6|AxH0νF2GmBN3V$7`2zAb tBTEvZN"uXpƿ3P v|+0=عp8L"eFP8(B1A4K1wGw2ONɚë́Df~\iZ!sǏV3r~:Sk%Ep/݁&AcWI/92Y A}hGƴBe Rj _ybrMn- \2GpK>ﳠo[(Bgq`uel )t]7''(A+&e=$ q18a㴗 =[T9{@U@jdLxϏ7(gua#^qepft Q$[Ѩƻ\BPS\ cdBVC!f=w .Scc/SNfWўeTϧĎc\+ iyܧcy4ɍN$ J itfTQnqwUѰʍLj.Ρm'#! fD+;>KN?$"A؛:?-`xвP.zK(WH<[)g JE>z=e?0lGvB 0_5C]c({IiG]tq ]V4$Od]R] mxPQO !֜44Z*"T1#nP= .!sXzdIUPPPuDVw`rިvu GXQdߴH>G:cIVg=߂MY1MT3ĺ-}=>!x"w63tZxuiPVt*W6yYW|B'䵣PiZwg%Lyhј^vm^oG6#>eb8c!ƚJy 9/O{$^xkAfߔ <+KbZ5 X̢Pu1WJo>݈z{h_wB=njW-"hIpl5 < R-5:XeO6Tjr4R s'xu3y`\vM-S<0z(61] 2{{f4 Oi9ACr,$ UiWX>E;2pEI\TLu@]o}+0N3c[.6G8Ϝo nBΨCk@="Nm7iUrvA"pS/;jS8Tm,Ǎl}>bĴ-w*Ǐȥ4ZJA9ji6HrZBx" xU̅ xb7Kf-ѾR* o~m`,P82W:\O%؎W 挏ȉj[7CL"$sKrWm7ǷN}{sԋܷ%axOhkE43ىJ:7t5yhі..@1b- We4KVx(𕁉7!G)"|Z֞= cu?ߣzQ>FiXqTan!X hZdf`mTtnnҿ  Ҵz }@3y慣&ru@Y5 !}Hbp wQO|_[Fώx mS.Uw #γ³_9}M3"/J-Uvt X㞰jJJ E(MJyݗߪE#E㶏Է+W ثNAVGh!8LFy~דpt3Q􉮗oѕhvlC\ͣB4 ?c΁c:v>"}!Ƨ{5ek%x*^BMaN!x6^+(QhE@I~V9C%.@C5%h~\Xt/ 2H٥Q Ru8Vu#T#PDr~^BNޕ>i55+t xR|/2C$Xj3h)E}H'`aK5}dRkޯ!>y!^zcmNEYL ^F^Ľs02aL:H6j#9|р"}z+JJ$;VGÙ !B.2n$W&H$2Ej+ol,rpExG2)(_-R vO9'&jx&,]2k3+OaNۻz38']7WAOS~eL)L{{zlpԏ)8/5V#]d~$z ! [:p=Ut(LB7u׎׌wry5rHZD>[l@@`d;'5a1m l ,& }̟޸-sOXrXG=pgDz] 7YQ E905+eDQZUZc@43+cBB+= /8 Vʬna@#h(5B`"5_>hH0qڨle~G %NX7@~e?[d>jFbH94|?aL S,E_< sQߔ;+!`!`%AuI&S/X% 59K,~Jve  ST5xgTEҨ+Yromo5|ֹ;!q&k{hdqr9'뭆k5Qk#c^q8jv.aVnʴf-p&~w{*U)^P\ lF*jn4JR4̒ G\; 6r"]MV fG_\! c1ݽNqzŬKN5?'l+qpd἖aOn.-b-c*pIkTxp/e0Z, ˂sb{.Z*CH1xow‚pʍ|]SHZy:}t*f3/@jeخR*"U4 #,MI:0B!ƾd]Ħ(ꄾCuoXT຺mڈ_X)x!5p1Gpx6B5LW^yOވݨAmS"gsUN)$'/l29˲z'e%;rxVdfGD# IĢb] V6a;RٳZ~ 3nhKK-Y[پ7 <h2PZ -dL*; n"LVQƘ`ߞXdض$yFШPUsHHԱs0z/V%¶~Y!XirIMr:V"iڲnqVo(PPvx<$PNDbBP'J>x8'8 ݲ i@3SykFK#BS)I6 ǮNΌ'Al7N 7>kžZ./V7fL'¡ް25>aDy|}|lɨܮ!]ܔG ;y9oOaHsp,KTCb'/eAx)$(Rb0&uqGEW?74ܬ>XE.%%\ʛynb Y1gVCBQC_T PSOKxݞXR`٨+O=JDŽr!v;UU >kп:4) Fgc'huG<筤rMUEIY=*#D[Ӹ (+%33,df?)iӁ!G 5 !+dh/;y>IP)'k@_;e0~@_9o~Z,i-: c:3 'Uhl>]3ͻffe˼RӧڣeK|:Fr sѐ"`K{~] (#}nLeˋIqV-I|P?1C\wkTaX[CvȽ@}&H: -b}In\<:~ZY\S'y>ڸLa)z{! gћXv U -z9n\arz`)ᔀ:{Z+ p̱K]}g/߿Sߎ'miclMx(MYHZkcņ(Yw;Ki^M>~eˈ~C|QBZΘ-ӏgך-ݹ9!8LGEwUX;ֈ*Nf΍i'Բarxѯ4:;S yHk%o}8ӞR+BGb[2l㕍G4" b>첅7 f=]Te^8y} ; TKgfcC=ߙfjU ?_rHIZSP3>py"͚7@c6Mv(|7?BŸYPU8\Z~6f|udʡN7 g#" UꋠZӣSm)h͎58P2۽kjf盞tvE'eaf-՜4yt> $~ HH gC:$!][r,[G@ W̻u3{UK[DÿgDE3?zN"*oyׁAeCŞ*ֈ5OӟޅsBS6S\#).0*^r+ï q@uA0c6W9\?Ŏ;MPQ mk/3 ?siB&b?;4<}~tĬgJI݇o͐:Yݣ>ǪS%@64NWSfq;!F$5(+\ٽViОMf\I8HH)DΦ]JUjqoLHMv\73}+ߡ`CXxNQzy1K07.h6dr H!p ` 08l8!t9͆Q%Ԭ9/ޱ,Œ4)FUcFE;S ((iۍ3 \ꃃ.v \ +=uO0}n,/2" y`B^B]PdnG΅^֨Umj ]knS.{=N:gnL#XQ]]s?^4)5F>L7IEceն$gj@^ǭX1 >ԻЙS~7IUhSJ^!YG}gg5^AP4j Nb[\ZGE]W'=4- -FnQN{@;fSц>4lVA4 EV)+^{\8xdO:)!k}ɱgeM_IM#{4/sڻY!8zC6_f$:BPiC(x'pJm@^t胝0[B1==@[ӡHe?`j]VK<)=ѷ -LlR1}t#nZG~>HK^T,w[TqYFe!  _:ë&ABȟ=|O_cqh#$ wq}*|IC"ڠecg;$Zo8G(:R91 j=`svUNjwȷU”H2"t1fIl}HǷ]'qڅIcАīQMGn C;=䍳xN}'XWs xVxb)TA:*הlk28gc!tp0aHLrY@40Y{% ;_SӼ(o̠,ðZg{D kg<0:y)u$Y7dBALKVn^ɕN!۔Ȑ B/3=q? j8~X EN}+/ʴEoe{`So֫;dn'Chlq-J5Ml\8 u〡{([pT{1V]p, 5` CPGL)OYLUkD+Q@13ㅐOMd1g$G'!ӥZ *?FoCG]k^TܗF;TV;V1ߕ,mC-UGdžm3~RDx e4NY,8ύ]ꧼ9mm؍reNED48Uڒzc$?NMw`*.dBISf,hܚ :*WSLV$E*]Qv蕪B6 Em`UA^hk]M !t!@5&!58B@"FбH9YR2QfR,"(ǹ;;Dl~81Y.nw(fK5H;uvCξoi͏& rz#>T7kqI0qQӾS$Iq:6<_f>x%0b*s,\9| fw{DK]F W`n—-yK Pz{zHqr9AoLGdT|(Mmq/&*a:7Rlyظl|DOpKC1#vR 95Y&Gx9l2r/zC92a5\qq@6zBN3Yb 6a;Db!+},2DK'NjL ?Uy$Ǐ+UE`U\&"  _҄k(!O˗+&t' xY-DYSŔS] 6BRIv3 Q(7J~.Bpwhpw5ЀUU8k.NFR{/Dt 𙪍{ sM1uJD\>w4qS~T>BdUƷX&$Jy $ȃ_.n߂ŭ[*UH+X4Kc#SCyg19]έ= jY A'F\-@E;;8)iG' M#J}Ȣթܦ!% UIpѕ6F  1z/pS>;|D08A#[ȡx%œO2%ܘub 7*1WUU}욃xAq$k 4fUd+M GM.QhyEPӹK;^@uN&@B^d6>/!9khh.oU@CryN=R,lPV nm.6~n$F2D:ɮ}Ull,_ğ$տ h2̹:`+ڄJ9"8ai[<2|B=c%k`6 (Xz]iڃ3ӑvn;ZƄO Cs 7ɕ 4M;h/bv>O2.>靶3Ёq-EZNBg@(Cx?apߔƃ>3ɖKHz*7>sp k+h\.Z-wr|Wnm#Rᚾ%VA4d+(?4KP:ѾA1{h *jx,3>FϾ[[b~Ss@.}aKGVJ0#Usۚ1d.e܂l ]4xr!҉--YB3v{kS9#-)`LE &7 (G>=n?l5ؕ&ni; ]]a+Uc tZ7-qu'?q2$ԝeU/R=;@w墓LI4:33Xn T:ùhb@?Jj/]$8}0<Qe.oSهߣ$[]J%J/y@C ڕBP oLk&`b9?O\0 -lY``8*P'*JawQnR պ7|uW MwV_55bbQ{ 2"J9Q$kU!~ǝ%t5 n\]Iq%PD|UlLJ-D \^аUV$|Wn&巨͉KEpu×zKi @!ث)d8ۿ0h75,Q)JݼLթEMZ~ IUK`S!gyc)]lfhb&7'_| *̿*껎]{ToߪYb6b=S&Р\:~M jJ~iI_\_ g[%@Cf_<}ێIh}YWL1Zǰ !`;R7x.̖ 5yG`VO-9c47 -@1u" KʂB@1`6dIg7mVN̦&G!`B#AI&S/X%D^Ooz@~դ2hdE_)\NN`N5?pۖLÎێb h.@OubBrd u%$ 5RSLۗrDG@ʮhW>ͨ32;p\I:5Ffyy*-5wR̓HLaQ8n5V$0EĦb*viez"TÕn'T1y+3Vo$a;k :FX"c)qrۛ1yj60,[n/:W7#0l}юF3n*ߗNu&Xi zϴ mMbx~TJ^.FjܯnD?@hVG@d3$&ĄF`=lz-'ac/+KX:cEfff.ɷnC_ƴ ˨߼P@L}ԇW^/&ydaId~5}+HD=ͧ7/ϳByʽZzd" 45ȕG>~ \^tiͽKԣݔ:\&`\ ~`}[<48q霋}D3R#PwmE粸ooO,@ Βٴy,r.9 _ bff;[eQ$‏%^Bm%cDڧ9}9`9X ˏa)E-oθH3g@\R*Nrq)zb,H3 8N>@J*H0'-ArlC 9BD?DT6ŷޮk e,~ENItt`}k!ߌ %_ɑݜKhjT~ : kUb\jGȱخCbxo-U6^KXJXXmS7@`a'(+ƶxtz[3ZE7-d 1oQIqۋReN֙?gk\Σ"ohGemV& 5& - aq\x|<<a$%T(p||+|w~Uokz5[H[ah >IJς"49L]Z0%L{o `$Ro¨'Uor~i'T/%zw&04$>+xmEd(R%_l֖@N=3uM Γ,_,\YMej"y#W,'|WTV0a#]@UO◑"|Thy6`$0̣BV$!X(Oƪ0VkN[#h뮵 {޶ v'$ kB{aIog Y<|ɝojLeR]0 cy0R~ KuJ;{gB_!RǞ. B1iV]ǣb}s+sl0:W҅sJ>Sou>LJ ^QzءnFqM)^Fa>/FIjI]mrhSRfKTn^NbU duy!j,s2XPQ>Ƹ8Rcq&ŰSms :PMrsѿлWx6hzVLJ|{<2U8es8)DYZh&RL&H Z%=\E_@Y)iFI ɹdTakԥE+pܟ{Xj4(絀s@1%4x&@J٧h|׽ '134 (K7]{eĩ~!LSr7MKHБb1+7喁ю2U!1|NHZ,{ Rʆ-' /=v>,i7i2[P]hA>7dj씢/ea݊-9a 5&q{4&#eTPwX_G/{p_<!O:HSUQ^vL"ڿ{7NT<ٕyBZ7bdXCq `C ) "֣l?;R \T46`lKuqʱ 6fII_(l,ny@sQqz ķ|l^1}1HTn#Us?[|D0gI Ķ5) 3|zҀ20h1q{?XJ"517 nsbc5z#0P00_-qKK" eszb -rYHpB$],90p>3Jo6"z̼Fg.h ,|/܅!>N?t^о2N}hnhvEY9w\a|J0-zD8mEn/!oGЧ} ~t2Gqo.r J2P5rqt'p_q_]*R\P䣉QFW6*Ht2Tc.V['p:Y. 6-m_&zC0b<ЋV^i[),-s:K:s.R/H;.P贍1fK¥wu)HK!אiBuߩE{67>nUAu~%1 3"_NO9aܘs*/ nfϬDsa[RքF)K.`!צN*'&bQ&Hr~Ȟ-21Кc YX-y-fm#P1Wg T4^k\H,_],1 cA<ե(j \[(6L= P bs3bd}r5Zh^6H/@^4'uvUXRTސ>0ABo库5ĦGʅ=t3sx+"Zw}D礯f).RRfAJ03=O,C|xP޹e&IU+`l$u 7YOx`=`@><@X7uc{z7@ prYEAs"ݤ .0UWb;nt-'.2˹ii`Pdw'1޴pA  G O ؃Gނǔe~7Z9m* x3_\Z>J|8}G!_qlU/j=ѪF!NlnjpGƣPVl%y|q}[ @F!mfxpml$ AI\ҬTat"mAԄzƆDս\] ] |^hz!a%$L|7Y/)'v D drxG~+ Qys~ E) {d p-1_ZGX0skoVѸL{@%V, M9LŷQ̋ē0ùz䴍jr&uթ98!Hk!;">,e4WwACZJR3yw&n["lO V)UŎcMxf^]!cMK TNTEOBN9& :@Hgc8=xHU56I@ls?5tDT6İ"Sb1p+CpDȷn̫xU9=T)QI xy~w3+b;0#A` y7W|"Oq ۀ:;Fj vߢgpqbskueZoy@r%Y{xm??["{#^^:S^n!לǖBWj[tr$we/՟vZv͜a!D>~h( RbMh"~2 m'3݀-oOsKh4Uq^b@3Zfc {,I"JK  HMr6ܵ,`%ØYMe0ؒV!!"f?"ח[I21 $yⰝ۵ ŻxylbijݛgЛ{Pf]!yt"lTU)5oOR. }`:%=_||dm9I]:6xtА#)$g _?Lјv{R1ҧ T+JW=[l~~s(tXw܈(<La$MTx:Kh$!hFXVyJ@Vb!\켱x*ƍ޸*ҐlBb߷mi&lS* PЈfjY|`hYmF3hhd`ߺȿ> G] @߾i &?̐Uu[Pm.rw'.vasNGPi/YB--c.Y*SԲr%W|[WJfG}xĀ S04{sf-&1袪y™wUXν ߢ_`5"y'W]7{1ɡ;$!&~0(t/wJy!pù6_ShɁo/S @Ҩ(Q,b׏jlDAUJ|궋ۓ@ tzr0284e l8k G_F:0e[CyH6#Yd"NO\C)B 1"Ӟ1bMZJK ֞Ӊm|7zLQ ߏE~4r"C4=ipmDlJ۬6=lcmnLVQWwy͏}KѴ>їӅ%G.DxVq2IWM5V9MX>_Ϫι@y |i~TY_3 8ߖ}A>UT 3=(o_ooLJ0W2- |z`rdG- ̮ /۬~D4t|j}mwq4žt“g=NJ qE( Upޣ!c~3]2\[NƎt<>i՟/=sU1(6ʜr1A_?s=C.o1r";Jf+[1[ υ5%E60(\Oq@R Hr:qI[aGNnΔ1yBV;B֯: dr WSS(UL ݣ{-2vsK3uۃ1H.hG`yI4'XӼry "{?]my:ZI̳E&&A#o$侍_i9l3ᒝݎ{iU fs|e٠RqMusLJ5PgЉ۬eJ[3.Xe>SDf15MqJ'? ˷b l%ҵL^Gm45( Jg[][ܘ RWI<#+} kOO0}(;cgѧxY|߬f֫W:e m(ᗫd?-_Z2hm _eچdqaQoWHf?l%ȔC 1vz-ܖvАjkGm=t".4KA<Ɠj:"$0qMTf d/2nXx7T{c9r$: 75wgDvQd1qol,=\syhѱݛ_ZSW}{ldhBa$W[ΏZeFqK^5o v32^Bȅ'w$VƒÍ|="M|Q=[KuN&k֞ 2b kk 8{GД-Mn8>?,qWDu|/H.0_qUե)rd77Ljl8p-!źяytGw |WAiTp13&Oy'{Qǟb,[:!ؐצz\nmI6hU2r[?fϑZcyA5FNMd*DVB=Dm q-Q.< ϧ**[{w~7y}w!d;/2ࡵ4lY\1;F Zh)}&vt(C@j{! (>M-X3)ֳrwr݋/>{vs@_̨rr%9Zu@%o{' Ä 18, T9|^P+6- !;K^~ }Ǵ>Wv8M0.)X H藢|kF/Eqt6H9X;U@Q/ }d 8kE@׏[RQ28bxwtBUYm(OH _wt?9?=FDSCŁX^H -F(-m+T߬+/jܠ& @b>BtӶ*Qa$3^dFhfw^1;}TŇ#<֪w{}mS 6?7LNE"kӤOrпHs.qy10~ّj\!Б'fZ.:Xh2$'8N+W_MW?c]I\eߑ/Jѓ(MrB@1zJk.qd#:R+QQǜc'9*|"@,'TJJVjA3%;|U ` ؿA3Gf;޶Ժ/~{$F#.\'ja6T^grOywU1x<ڋ<;zߕ +ܧ{˳P7hIB͒aE {Pa/avklҬ|զY׫1ă' 1'h"ӬOV0 kTcb^ )o\g .TJxͼuH"sA,=u.t^!`Y(F. KJ=ʙzcE ~'HyJ:z[t 0 ^@m51ki%Jӥ@{9 '@L~:J)TZǔ}zCiVJsHB-*MSh H{V4m^;7P*R{?IOY oO?C Z: 8dF pOK\aqb d5u( us(ólJ&5B^zso3kHfx*1;.ihWrTl9w[ES7+7`gH"Q+/~K ]-~!Mh{U“0QTs\T٣S&=5:6(A|{L}k!#дٹJWyW_v }3T[x'ujAz:L[4 g;w] G&1vs[a-K K+*d[՗Ͷ4*f_UPd_)PB;ч{%0r\$p߸707CUhhiRɸ#:@OھӞ+x{Pذd#CU~osT`LHnAPV3D!PJ&:n{/ϼ`*=|BcN@'y9^)?E9 y]+*."IA7?b9:|t[2THU<}>??(^OK 4(<+?DRCa ?d1FѨf >uZl<YDrB8AI0Q%Hre u*k`Z8EUћ~D[9E җxtq\\kr "K!몄xL_΃r[p!b1+-.b&xO=!bI:Q>!'p\U]`/ lź/CعcF-I@z=f ϧ'?I:(荓.7^yO3A6JsF^yj+3]^&Si,ݨrWsʣ Sj̱e03kIM(RgZـ|Rm(a4B KU-%̩7 0mҧONb䎦[,qHt- Ύ< g\`Џ~VTM ^<ŦdMSe}>h{ʞn`fK(MѡXGٞr@pu.WD_?  p<[ӴQ;3XWA(ŒV 0nl @X'm f f0O7aFP՜-DS;ʠHK4=( A)z G^ uQ=LѴW(0\@ob {M%׍8-/\C$GS01Q{pfxх}7C_]D8A3]֊}G{xTY`jaKI<3̿1<.a^@nLb;~urWPTq{"8 L$(F ߹ߚuc$9MTX\YnCthWat\_ov˕,{VL4:|75yQv1̽>Q-uR'cmJ3/ ;wZuBF-SL96o A f1( A#[Cq |Ou1w N[(5T]f?UXRm͂J܏&0D0E߰EHh *X 0Q24$)@oe29~fE!.r!wwX2W% h= J\/EIa _-i2{ ԫq)aY-k+Y_HKy->Uɬ谰 k's&p6H 6?GefTS®Z=!P\&,ƣj>)IYLpDV Һ #u&? 2)j,p_xnQ`nA|A?"[$Bjmv3t zhd>Q ɝA͐?P/$4AlNRGg˗U4T/^J+l* H- )HeXԃzƃ`Ӈ _7yK{CWK"JW6z#F#^^gtb<(l w!˄skRg.F{)P_ T*ڸzV07}:qcsRDZU7Z:nyӯ|=9rdLӠeXm+j A䬟/ƑLF&Ê0)iAbfl>2TU}: >Sr!OVgAo-|q{*F8ƸvX7IPHF `˲ϝ3fĵC nfj. P-g`#*- E56h,XB5!z +g? !.`R7z'H76ZUP.nAt\Qᜆ .CiV.gg>H-JI< "ݶ}Dn{M9N*W_tyjr~ys;^{ܒ { `$pQJ5/$&+@s2-ľc+`߄_>xC@*(<ߤ*dSPDᬺFޛ0fvɳ-[. 1-`:p~MhGfCt/se2SUշΝ_[xATfJz(!Nb^ /v(?i9'xY]jM딑B|Lذi\!{>QT8XsH:S؆߬f*MhΔ@wiĄ{dSQd\:-nJHa[o٤E+m 5JQe,y' v?k#vԣ @ŠӝТ4K˳|_q^3 `UHFx@۬n,.S@@NHg1$q} ԰S4HFi+NGbRhw:,d ;;gNC"icu&]+U!Tք`?!'5$=\5/ E|'(>e)GTU<,1wÿӿKvJ[F7 9+ebHX2j=%'}DewgVhK&- õ$M8R ZEiőK7m\K 6bA$T4$qa-3vN;J[Iz垥 h/ 2w[Q?Q9ˍ U оutid }ceM\#vrI#Raoa3`%($ӆI[ZΚ <U%hP52jG#{IU!9tTz`.~otqI&{1k3-&ހҸc O<*<3`4 @ }b>'ӮFB%f{s{ѽkD#0lg"z1q7 MItܵÔL݁60Ful&c\PhsZK,*Z0؁t|v⪦z),V^G XI_)2,Qԋ(LfrߑDY8pD$} H䛫Mj!WJZ*&GP ".a[iP]I8׸2`E=4L8{Ja\SpF>p?!(Ӧ/Gh]S5v!E6;|]Es~_D+K`H9Ըd:n 1TL\3Q,ȂU5cAT7:,idU898J 9},%+\6+zLQN>DL,{j.^dL[J'Hիmʭ"]|;*7N>Jg?(i(>m2/\ D0(p5ꋷʦwa-A]y"FH״Nr<]t } e}u((9lbM'ws9?='Lgh|qHͻD9b4Ѥ f ;t4^k6UB& B/qt{Z[I{Y@d޹n"PQ4!^0ᠻHXX*2#3uڃˡdp/-ؚ&¯R{uQ[}OIJ?Y4+sZ!\eUsA]mc IL҈}&?CeY[ZV',")bp*@W]@x8w񯭏;  S{gy{2\>hLJ[&nTz13fmObD\ǭ쬮gkvLavt&IE} fpZO6>^'О0rޫ"4=#j^0MV91rwH5~@ܹ0Pr<0|,S̬ Kܽ3xLU}Nk(\~biW LKwUVhWO]+aEvaw{)#o1{MEe8!mq !o1ȅb|2enx9)d/7!5n鵟7VMy6L˔>lCxțqՃC>SY61|͔EEv331}Yn i \Yh#]`$$l&c#k2{G8kc6d `<#xjѼ7ׂ~16Kl}pp񶲠~f͆vm=rg quF9.G[eT)kh]Q^ϥ;RfژQ^ h ˙["$٠OEM4qR <ۊo¡_sr8[P1*ӬRު_>8]9!)#<fHDTWb$DC"9Xj~omک`l b詨+|I>>2"|gvx$b7Yr @v.AB/nd_$^HMH٤c0G|zXmB8NG7? z_X`p' 7QduEZbRهtA*:lL&@ OpN U'JVqYuCad%cOn!QY;i|eWro tJl$PÞB0ن6.Z O'OQo}&H,[{*C]H DN]a4 wUnLK2MTjH̾7 ALc!쒴x]}#ok]7ʒ$+28 d;.ճX,RY*\?% LӘ*uTz?*\#M?-@1BB*%,,@- Yurӫ*?N{$0:>\euM 6@٧ѰNOGNhJ5)FGYz&Z%| 1u8{Fڄfi"sP?>dNf@/S:\x$G?CIvK"=EVȇ0.iAĺv1U PŋYDۍ3"7"ͬqg^%f@UTAJoYַG{U1 qM.`U2}t,#Aqep@zy#"\ ҋZQB4Yv)eg5M-%՘4U*ܕ0!`!``AI&So+_G?+l' i{ρc0XUpӄz\Wy>d.mYD|ޤqkM!e`_yZQGw^GZ|7(4W-bJ^GHYmçm󍷉v5ҎН`rK'W=*iZ=oY.(6#$juM_Ž@!#6 O-Lp-'Wl nvԧ9YNH^/:˗ɷ˰_` zi.W3c);r]i!HJi* ( -Kv1|G>^{D{_WyX{q Bw[on8|gs`[bә<Ywj>7JrJ!X)i-tRfiH{:!Kɩe=iEEJYw?D51"5*]s4АGH/Oop?*67IZx'];i[x.{JN4?e\8I^3]zozDNOsajJc[;%ƔƼE)e0Ŝ dxy/wW4D+u/BT⍊ |iB?Uk.xgȕY|lW\9jwC%=aE UۧC%<j?'-:@6vj\.im=Q=L(7/r$HzT܂ %A FK6@l5[!0`wB$؃3%M \z($32UKBp_5@ Y@ۙ]&dUۆǙLGOȒ{7;s$j2/qBH~h+vzLJK%0h,A g(|A!`!`=jMZ;:!#{\ZuFȨV`+ޟ-'U|fZemdؑS5#(x$W2hZ{DCJ(tVz(P2(mF|'(t?ȹ#n 29;B@ڭJ+Жc^ J<q ˮ$k@Ӝs礲:,[I)agLX;U/ݮY^޺)P7DPG[gA&Z'D8\CfAMŇyhX8rH-?"lY( w-8<-19(bBT}S=> LMhb*j#KD1w@Y)u(QwUkSvCziCRRICײ[p5cIjϩ_0X4]mbLi&xoE9dr[[I&i1'[LudHG` fz' %"+Ireb 2/G^)O:Pj'ʾ7~"8c:m(p,Ro UnƧ=XQ[aQIߎ]-ˉP GP3mlt MY8m3s$9Hb<5)B\@E~܀v@( +[b|[fJ}_OdQ_00"GXyYFvYy~yu'n3FXF;zRkshvSץm6Ԏ!`Aeݮu4I3!HueFaI]#zÔ1oD:oto~/Ya| (Qt0WfdHAؖ1NͭF585i P& lcsV2L,.Ni%W`N(lxd <\~C9mn:4FU>xkNXO)ionm(FN *u"Wkk-C6PyThK"`LKl3 ceb&REgG`.D+n[ZN#^mlH:]2Z'SHgwD?2n96 Y_ۀx~^'' =b,.NX#7?Fh =dqRCތOwMݴ&V U'pZjm9Im '_t,"Gvy#+ j?6?i9Ab<Y8͑NCLsI itm?[LQQ]4*>Fi|(`*\SYyI>/DP31GuD|ɡgھ֢M+PQsKuasq`y YS@gi˄ ~O^nܕ"2Cq~Y!|RVh'/j8 n*H?p/li$1H@>#%0q<kE0]ڪgIJ2^7z4:܊od)?IrXN9䎇Od\N87Rm3 "G,NtHO/$t-9L ħi%|ꅔ ǖo.t .ysXQ|,:A2Sh'v)^wO_cQk '~/7*VBr&n8[NK}ͳ^̂Ȕ]J36rʧ,W]YƩ"вX/9\ɬvc [}- Ճ;zK\" 7wA!T͋pó/I 睽ZՔc#[]B]#B h7z'#B\['xʖMxn](FdnCk5|_!c)Pke22w R5\˪Ҡ6}mɫ"}Gc`3!LII .J=m$B..Lް&P4eS˲\B]w eDè"vJ8Eeۑ+U:OC-s5gN_٠.wyVJ 0|p4FGӼL-9cHV -pCq~IqnQ ?Է|| nֲzzaKq|I&:es`-Oi2\it2ZjO*>W&1Cҷ35hvNQAh'6o@hd,C[HX/d @΍<6f6H']e\nm#pِ}+S;:K+۔ e~YzФ ;jIJRp.ЯV8wdi,O ;WEK⦿ʬݻXmEmcCƤ󨃐z=Ag"Չ`Gj~=+\z60}OȖ|wev:Oxc߇;6=>8T!WՏX>: zvBۣ")5m~mRtJgn@jdl;8O"g&ha`,eױ J/_ߝWdts>8v!n5 s.[5y]L[T;:@dqsLoK/qj=J[N{:rΏ-{|E)@+X3 sz;,~+Uhz&.FZ/RZJw}Ug7}lpzf6P_F N :a%$\9Aj֏'wm@EFo.TOT1UJ=+fv^6. 7 N~M3_aή(+<9rOK dcB)aHiKpD8ݻ]X{AZXO̱T(!Cq(%N,ˣQT Ǣu~9@YXC=  bYpD A{R у< s͸@ #vx5IɹDޏb|]1C\B;d&%M1J}eRvA-ͥ~U#',N0w*hU4^Gجa6+11oĄҐDxݫ 4l9q@=Qt2+ b94G 3 nX QY)Fжے9SLj26 dF3rJ֏;'Kc7KZyK[czyaSS%!}?ok.,FT_XWoļnJ"f@8I)E1]hΒ \~^լUbApW,ffq)`%:CGFؤ_։)=8Dž:]ٞ#К aԋT- `"I˻߸6emxqL6e8t :>r3%_$gTlI{FRNNʎ8 v5g'+*FnA1iM[˭IfS 6h R:" Hx?.,n 3v.^4C0l>Sl^wR>=|!0&oi 9ݿhb6d ͨ'ޣ.w15-u,OFPol%d9Fq>tpFPs@F2C%+{7.ek+W\qgv"a_x,}^WyCYFʖZpVFCBcDqh+‰KaODExpA7º0.tڂj7'1kɶ֣3dwg` vFQ!3{XEQrχOԐzSuv򭨤B@v9Wҝcvo#wT*fT'7ڻ|5ؘo4Grιcz_N{L;7ԑA 7+?FceW0ڕCC}ek4[~Hp*P/8['ʝݒDk3aHl[밸Scעmej+Ikc`)+O<36jAuެҶU<,]1TJ.V!,h^vIhUj@⛃Go#ӓ\~zV}oF8^ ]f nX_el15ms8읫B|Cc0C˓B]I[CCdj#e02`Gd5ݘFmo{*ULsT_q8׀St`e3 uZ)FtuݻQyT˕uZa5Tn5%#bw?៓_ $@|ǎd@9"(+dq*2}%:r5N45T@X>QiB1n4S3KA0HL#M5V%ud$ZtlLһl;hԢj7!r-3k$.`x@YN0֘*./ZPL?1QdMEiOrd1g(EcdzA+B<`AMI.llRᤀ7@P;gXѕ x@rcVB%jvɡ7,TJOEt' &t1.*Cliu2$86{aKi-A:e/bCdHt?Rxa_<3c/㩎z1)9ԢgLxSCOY#~$Qnߎ0)%t6d$ê%0Qϳ"x6֫}Er%` *~b/hBw&|{,kFގH@`)@qjk3ІJ_H*:ϛmFwjU?-bF?nS њo!6-| ~emgBv@-OAuL9Ρ,tIGԣ] b92|& ,mNl[m0I70?&¶okV=Z̼+`3zH-^œ? E>5;")1@8?ng۰z+wlE~+<\Vo1'H i;"ɌO Q5bb*[5 (]fzqʣB M횗*yn߂  Flޟc^tɒt<@VxwN)Gh$iu3˰a,8L*L;L#4;P$ӸE$H7VY{Ϸk&1j0§ExG@[i9M1'|C5 6‡>֩ؐUI.IpTM&#VSME:/E J*B!3MŧldsDe#NMg ]_GqZZg9dQ@'ӳpAb+vϸ$ ե e^3a&%y҃S FꮭگS ỹ"TQW}.)4] C0-WsADOiu-w7*,=RVO`Ȭ[VV x斟Or᪩ZFd&^5vjn-$^$HZQd=AY|=]Ѣ"f@6;A 痸hdK ?mMRqӔ>)b.H_Y|l/x\IPm"^g Z۶u@B(佒\)BI[L/Gע]sHhrɸAg)un8⳵p% ӻXH;E$p[`cֳǔi[9ra͘J}'"L62% ]:Eξ 7`t9+pY2# +Ln Lw6=\i C0JdWk"-zc/NYKS6M&K\iHff𱭯hiKL7)J^{[4S+ Qܱ٘o儧|lj^)qfK+~ ĺo+8#Dc0&+aX?TA[\}0&i?1U =$p5!q0l&vWSÉ38 #pβ9pF`v2a5:-`e# L} ˇcR"9#1oN= MПԟC`A5LjD>y%|ɋ rwRrZ8LACܩRKDU|$L[e 9x׍wևU|zn YS_l4`Mmʓtjd-m?`6_"% #~^̳a=b/ZAå`u=aTP шJy@hg:!aR^ۻwquK2 D _&[؛u3GUDcĥ[QxsvԜ hvCkߋM('Da^CiŕLn-CX7(vnCR{ی:YP_@XS\ z2}j괕Gdk $݃7]:؍\Rdnp!m3.HZ{Wyf`Vd772izp~]E5JMXMޠi*G`R2Æⓙ 4>% L_(.b(U{eMѰ;n?o%|@ZrvTA#ӹ@YlA \]VnHWxk)XG5YqlwЍ- waO6l::SL 8}O *ˌɆb, yE.w"Sm*PaaI{?F>>mYʻ^Ӟ-n̻F>>QLnF\wn8JQ] TM4uJizDcƑPN;%QN"V4hyv=t;-<"wj@"9?6lX^~lkevpڼ^f?( hW"ϥw<ً%~23g>]G(9 5,L\S.D }@ͥ=V*eu7'NXƧ(6͖^0߰TU^X.O  -eN?&tn~'IV@$lS"Mt"UGf^fX$/$"@ R2Cax*B6E,Ħ"KN8?^>Ӻ 9^HX=YVx'ŲÂ0+{YA9qMH׍uYt$!a?j zqCP|&G[DZN< L9x@GII>rszP/'7,N2쉉:v*8̢d C@Ңyв2>VL54`8{@QM"j@6fq KH XK{\(OBjP_ Xmc=ԸM-F,&l%>e!Fx׀|feZ0A7EYг#GbMhR0Y!i9luD1 jbn:Вr/LٶvԟQ, dk`?o ˲`!{^q_ ݽfW'i9-''w^NT`IaMqaC1v͜Kd]ΖH؂H2OѲv Ro]DP=ˠ}-{L#]Q[G*[rmfCNd ,)5~ Ci$g2`O,k<OV7Pmdˎ Xr1Z|$-)8H! wXRal: Y:@~?drOF(XXʆ]dZgtUPЎ,63[ڠGH|^g kuy3}8mq(dgE^=1*]\%q8TvB FT@%t9Uj?5 _go?{sWK\d):JyG-m{pX*vhՄ7g RSA|b]Zeaz[Iwj8`Y<ʣr`-4ו0;cOZuBi6 ~k:w4v0xv+ jbS ]z%W ML3&A>_}Fq&X!S7sW"6ޕA lxuAo.ADDG^"ߢXd6q|Fn.eB;SyaD( 9C"bny!ܓ}7~kץP"͈xCke¹+ΥnyҸ_@˾8DDc0_Wc1hBJگO*@Dƃ>#pY f}M T]/ }%hqd(Reˡ~$kΡ=zc P fh>jj@cڮfܪnNC*.J]@TbEގ=PoWr'%!>`̝SB]Tb/SoQ6 ꌙ`ȵ%dT]r1\b1a!h>`tv'㸊') a!z/܁@A| }PeFMqzN& bnD> kXmYRvxױ:,Cr2/f/gލ6(fzgAɃg 2kWP_6P'DK|e2Uh`KUr#LnD@ȇ@FnSe _5Q6nOX?-< -iEKy$:g,&[4d4C/Oئ)c};բ[lse++߫urP:6:@Œִ%Cƒ,W&]R$h)Tx ڽ"N"&6ﯕ.pga,e/]bP7 BZ/J[?^2uǬ4evjLͥ'[_5+9՜rrdEP[&'BxTSqX]%A7 jRY u8OF&a&K )[6dK\ɋ:)nOjv>PsE>É i2v!!ȑE[ZДb? 6 cdj$B[Drt'8(]~/IBj/3{aD-&p`H7fNx $[at 1'Æ@en?^TK=;؂fe/1˪TzwYEڟ U]14;^:/[Yb5ki;pO7c[EXxWD 6z)X#/ݍoR޺i1·; ,H´5_ɗU:, *+4G?|Q*&i #1E1ـa.x9 BN;ђT=tJ+h?#⹪gtЀ2\>R}eIn\UV".}ڿ`擘|.XڣpNw29ׁ^RT֠#gZ[, M̢0F|4ˇ]m '[[>q-ENHx[0^$DY9+WwfS:6e&͝¨M {0~j/s?nmVY"O"}FVw TGUPk`~hZL>K5֣1>ʡN5?#t02v UbժN"WС(W>gz ^##}V }P{R8(O:lJPQ' 8TQK?=@'_7&'亸 PB d"QsU0R,51Aڌ OI,7ԩ}Fɾ'JV 5 k j*L< XHC0Ay7|s*zQVupPq,òL >B&8D%P"vЙ)Ğq' *1Og0J/M+ [l@7< xuR5x,/_PJ2:I@~Ze[B f6zR9HYJe xF AL0{^6j-Fle;"hSVr.ϜLbzz~pGí%m Co/}~#rrB;W躹!6`s-\jz"@%2~z e:?.|4EG:⨛4B$>'ҟcŔΆ?9"0ʦXaqw&PaV.#)JӨ%SLE [LLqpQu,-xͰNOZ|垯8='$hܣa<0F~}]#_4?HYgQvR-PvQ9Xƫ˓z~Ԥ00!"aS ܓ$_SsF:i;}IG/}?k`p$^P8N`-tʇMEF ؍KرEsz_|LHEVĿf \osn2esz4OO3D4>+O9B#30 (Ds `%f"24[E-~(#.̠K +U`)φ kԁyD$gtN*/>UBg*}Ou,Dz (8>W'} P3BSMs x薠f>]kƽU[DyUʬ_mgoFyqzl13]`DUa(6K"B2/ le[Ǫt i^P@ 3K@qUTޯ}v ɬQ:0HgJ4uϯrsoujq+l@m'.0y04Y<XO*|̈K6Dx~Y)ՊV)Q LT3~oH#@@$ֽBSee~ÎЧyI(%W Oj澦­Ky(og2v[h4? >@j>` |(2 ׮)TgA.sZc>HZjIpS'Xz0m.ES oN5s^wn=af{ȁrA"ʉÙƓ<Z;_G$Z|t1H\ R}߿ ?Z@W yI%j_ W'Mvľ4W 31S)$nog +dkV*?(h3P)6PS7WP' a4,qVceBSfDZބ?ͫW&fsǡƣWf>%=}\UW:$!H*}b y W˘w ͤPxvTJp-[?>D7^H'$R9p^3?9½W(]=(r~mb {vK ũr{Hw\N|{$@TPye=z}C,npT2"Ξi>^XsP`MPi=" >8Ԃx m1R+%xh2~E%p׭mi Kob͍Y;:3+I@h`z)2["㝪h|~/pvF=Ou80{ubre<%f 9VnkPNV nn6c b#a6$)/ȯw120:06mCw*PڵmMNh9>m°]3EU|Y9TK- Vtf#_hRL60ۋOJrL:6Xk~@L豬 vBvg ݵH{ 8A؉Š [3`)@hNn`C5 f|7(;^>?)+ZgRDŽR`$іI9` {߷.xh_1C\X<__u%I&uԗ{%X=M5=UT=h\ݫ>}l4J ziGiBK=5ͥOgJ':RyZ j(x.OeDA0O¿8$=v C{1pRIJUϤk|^5*ũ>0_DB>lLIsK}eŁVXꍅd1?9yI)I/#ҸbV G&|u[Wc|ml@W\?ڦgA/;;1*T ӼKt4{2\#V YX?/sZCYbtP ( Ss+#zCby3kwmP^8^>T\qkAI5ݛI؉e #޿h"e"m;Վ*|7"oTLUj!u5vflQc~څ<NJ}W Mq ;rWtiP>NfF?$'8/+kU㪌u#5иp(PaY z:4 9d|hAHO\sd&ݨ-.XQ23}/}xLѪ&nWpJ5 ]e+~<>Ytz ԔeϾ<޸o@J 0Mcvʻ7(?26b粵8*/{ppG8ud(<˵sfcv.*N]oqI[޸ZR&ħ=mW?w(*5Pu(҄s_h1`P%[ٚyfm9XrҪ4uMibB6~!Dg!G;ײvF +{sO5mrOJK`@FB oc櫶p[:>ELX|Y/_A]͈-3[K?b<@gP:B4uB{F-ԦQPbα㝦EXe \^5V cFDi$Mb晽3\!C=qpt%!'f54 Z21*dڵmCNu|$GK،$Kځ"N)v47W6Tij; ' ;r>.Hv4 8IǁUp^e&B-R<*o ЬJynH]f߱LF֥/We-Ot, ke;Im8/_hw98{b ljw%됋s>s;./ݧul-Бd/T$ہs/yK^AO͜ʑ>GӗĩEVMɋ > U5)5>e+@8 *2Ο|I$&Oom9k{-۷2`+:(UT _\>S\SU]*ƍT'd &d\K?Uڭm_W6ĠfH^"7J=4?ɮ@F#FPN, 5E#/Kس׵c =#O^ 5t?dG5^x!vuZLHqQPvCowIf%XPc)IsQE D}#3cаyhSnV!3 9]9T~3nVjBω+~goo8وΨ+yFzGBֳa.R=I@$~|./KC`e"/Mۓk6 ;L1bB2GHK4 g9hݢ=X#4XǮF UO$} $;V/o׹U&-Ŋ4ރNR- D$& Ub~u<8eYmOYa Z&FPt]݉m7[ycٵm096c n6 G~1br`6uV:\&.zJV`A":'`zzʗd9Q\1}Lt'QG$e]̵"hSHh.J89p tA싁/WϼΒOG/RCv8$?8x̞  [6Y 8 k{C7hB!ܨ^*"7!ń+e5d'K>HfpDIڽځe,-^2# ~ ssk:W󦘀t,hq_$͗"pzeRPiNXSuuxNEJDN4;d 8j4sHy>*x =T&7o1jnHM]܇߃TɒQX# zlRxW\2,k\Lهd\Jή HP LIՃ2xmєبa+6Q&Y,sNC_&u4Ɣ1F@` [F{oUf>Z\C )D"9m&S^lD/cJN:%K)!xɴj:9q{µ(R䰰>&'r4=b$;Mu{U=Б~rLNmտMh_h;Mk+h],3ż(6;Ҵfg{ݶ= r*ϜŢai+LC=}{tFqÃvOvф%v_۫<PAk7`ES^ܺ5HkYaEHOkĎ9C£kƮzK] B.y=(et}m4+)8*3rM⠊t<2j䘺(WЌ9HN&}K*yH{< RCwnFbrriwgO7޲GO/,fCǪ@Ƒ1PUiߙ3BI =o)J٨r_xd&4Uy;/ fZ"wK;#)<6o콃#~ZC|3wU;y$ C2Zt`|d DU74{;tRc2 нC#LyZu V Dq[$K*_n5[ި5*QND$R#ޯ,G^FrFjJ|N+1chQei@8| {sZӢ , (k\^v$C]{,ԹUDUwQg6 )+󽢪,^]dR dJ2'q@KY%/Hb!OVJpbKr'hףΉ$%Ւn9b87rwV”MYЪ(Ѡ! Fx+0JME:g14`Iy#̅_bbpT*.+ZQ'¯@zlwո!*oA1:wNxI)EbfpKz嶿Qǎi o=R3^R@y el3;4[ L3?ѣ42xW`>yyDA(Ю3*ܔX<>jQNܧͧoJ!4֢K+YTT1>?L=&4Z~En>|>(YB0>*l;4v ?Wp|6MW7dJDٳ!qLuoGU+/C پ\n(=% tqF<SxZ?V*遜TM0;q&/R l>VsKd>OÏ*gѬIcBƃ{.%ݮTkJ,_™&)BFGgd"hکBրDL_\vڋt4زwfASL D*M1,?q@SRx10;a7+Dx8WH9wb4eUm9w-W \Rriry&..k L;Bb~R2R+tLWWbqg*eKTLq_*0J4$k0JMgS171Q[mI2Xy3$5xDLFu: дMe;e}}LS-%y툌L)-Wtt`Yy1ю^/*>Atגڜ|ictK:OѶ"(0ZZpM @~HmMkrt[ e5TtzFt/?e3lreu4wG oxcDdp~d Jj f @zd85|_&?p,)YDi$O|z,2 $|U O6 ;dk.@{pR VrB˰ }YG>5XN< iFd7T'zU^u5 z/E(D*]68 Evx <27k"!Vp| !k-̶ VKO*]YuKh$9ć^{dGJ(0iz/ ^L2O69IJcL+$Z\w8_`]UO:yIygcBs8)M1c,Ƙ6xVp'N%[ZiEϥAIt: F</%p&U Bv7@k} R.|RKbnb(g">Hq9O`,0'ͩAJX\I afptWBIP9B|r sr*}Pֹ=L&oA^(E^V\%zl7uGړZ`? Ӗ@jF7llS-uH j(beeЛ NfO*Y` =a=͖h)Ym^u4#g8?kV(GK %y݌]+ȄkS F~>Q8>gtHa%j?ҷJ@CK.˜(vqb\Fb,q!:-ۚ/5A$ tlJf@( i}B aԼz:O~睓wcG!STa^G69'M(F *Wyg.Z\bk׮鎝C:iS1@Lg]Tq3M2$g!ޑC9vO` 1î2wA=ERM>nw<%}j:0is$O*]tm^P@1NHȮOI twa;cl*v9Ļ Óv Wbr5#(ŝf>G]Y\%_EttT1VmF _oAυ~,Al\ٝOiv U~5PN KhzFZPVE< .ss>;DY jg~hFr&TQTzO B_IRZnqGk "N =7XQب%8ՊkJ+U9jRފk9>W` $?Zq8I9yc4d%NmlxiTn& GHaLi!Rf-ˣҜP. >-k9TF Duve,5LJFp߳P.kPnK褙F⤊es<չv|p4oSALɛGC<GpAs!hyk"X : ~`O.}"Ȟ! /{S_Yqڢ j\+mUS3?>AJ7`t`A`CL| q  >Mnb%r,7UݒaHibգt+|~.R^6 5 noYEى4e1Z5MT`z+Xfq~xs|y(]ʺ>G&B_^Lj)uɩM150}L{=/dzF"F 0bB 0G2NvcRs~? 76>V/|Q *X(˓+K`f'坺h]nԙJGiS@m$Vcm!ρG> AfQQ "S2o4QqgKHM*`u>NQ!/3X"ಆOe'6(~$]'_rHm'~w7kEXDՃPTE،eV#IϝX4oF@ dVdJH7yq4y|6P eToY*?NAӼsS:9p&$1:ԩ0]L T)K:R;ɈbeY(3 ':aZIe?H.փik2мt IAH?"kmyT/nJl:ַ"Mdqoˬ- }M;(m6l=e #= lkUK 6bٴ7]61fh#QhXraeNKЮ"toG'K>Nb^=Pﮑѕ)/Sƶ~e/hi-_;ȑ_ !~SW*k4uq9YdNzK̀[L[+aCֳrSìjɎ'Mge opof(y9"eo!wWEv*ӵo5Y`xmEZk*ĽX 6זLJ { )ԛT7{x\D I!LUR%c}hhFՂ0 I_׵ c3#!_SKKMǥ\zTT8 eR,ąEħx󵣫;VwXԢc:]ra;y3y봮y2N鰌H54}vʸ3 e@G),JxrrU$P_G'4kcQ'GּPų;ȕs ckKf5<4YBBxsh1/n\{Bx[bM3ZZlJ7IۡdW4%ajBSe׏{zHuG${]">Q4 dX*D") J[<;PxDi}^Ci'*,7IɺM`(G\:ym o?,_nηAFtlheL'{rdcRcX"$2Qmv≃owMcV[ 4v KoB"?jϟ6|UERͬjNQō10k3)ț$ `i]1i: ']4}KV9mȤ6K{XV}!Ѣ r-oSȚ\d9Hg2wy 0qo:WtoT!NBAdſ#u;JF$(ݚb ozSGJ kBS,^_(4[5|i,QC-8@6Ӌ)ZxKE>5$F}Hi 4SB1_m4MR]}mJ>Ɯ|mQcv*Du &t:Һ'1HYE>*ﲑPc I0 yPA^%ca=Za i^;[b{1|tHMCctӎZ u ̗!x:}}R"C Cs q6nFW=u_3HkIKSP0P&y.9%)xD푡Ι&=IENŭEk^}4Sz]YЇk*">j*[hh&͑Mwʗ%W._~HDt7WyQkHIIrbBB6&+en 3'~:PzݯBSb!j罽D{f8u Ha7/!X!4KoPeg)Dyfl K5r\ ܟnEs: LmH?^v"u'ZBG{^qvݭ\~QAqALz?){]b4=A>mHXF8>vT Qm:6e6d==b:o!nA(5I[$8R0B.IV]jꙪ៚^%t( <- ~y<OZDAs~Il7!bFeytLKy$m`/ՠf7nj=`n=vRO:gzC1W \ut {AilcޞhӶkLVJRwѸ(-K-af!}4\0=rԒ.Ƌk|ZRzJn0TɎU.8MJ#uf~ΥF__#u^\"*귃o \n|]qޞ8$fk=)TXQ,Im ^ZߦW ?XKh鞦 7/gfؙ!wjb `qAϩ>-S`-8l۵P&+ wXfp>n6!%k\Qb٫^5po % :r1cx XQOUjzSȎ1` >LuoL9w祷5ro*>h'c!.OCD[JyIL29Lz]$NӔ 攘?_>x!IF8=##(ARzocH7ZY2y+0S%#a7QQS %8IȈ 2 2ƺ*Kzǐ^E؀yAQr8".gԲqܵ@rY%="Mf5.: i-.nBF~`\Ki!Dm.Q $N [F$ 9tmO7Eb'su lf}%Iΰ3qu>N#%8о㵀ݩ`H 3LAh0Ă=X2s# Bfbr+N/( TpYRL9i.QWwBF2ylju8 3C(q*`-zN;qsE:Z`i0&;`"s+y&+4ek:B}뙨H >?98ǑD Wb ދԬjaa )'+f#ht|#$f!I^Qś.n[$C+lG@^EVIŀJofI oہ(q¦_tWIJdS5DmBzU8<@ sM?s)e(bZ|;Ս+Y>Zfl@9R Me@+"C0A |4ƾcW=vf/%a7ol70 ih:ue-W_Qasd80Pi)òeP9X+ʴ \]~F v97U3ɓ〟~|T,4+s@jw?u))"+&:otY/Gl׾t+WO}횛PtMx Ts[gN"cavj4_E^hԄwmLj/FQb)8DExpa TM=]56hNK:| c.!Apbl !2ndzU$7{&g#ga/]F:͠{xSP?^$iw~e[A,";p^6׉|ۢCҀ!0 <4tPNKp]Ju9ߠ"a0/Q0D_2Kw!2n3ҵQs$цK@LZq @&ZJ(g=|7, O7)} PYRļK'C9\ڬ*Pm^f4%gQ8N#~جN7p(d TyAK<:ʱVKp;|Ks[Sn^e6~ٽ@*p‡>'$bAYQw~;p,]CϮ=4;EJjT9 aZMH #sK/;Z9T Z.Hг{ { {R"M8 $@q,LMxĞyǥ)?,ɿ 0LUAr +-+zǿ*(@;J^tdyPRq^[?v7@jwxxufb0I'2ZkfQ>EW( ^{ee& k&"ҷvV|. $&Θ`.ކB5H8XӾ'MbI/ybhE浫D!0@[,4iOgߨG15-#@uTNEBF#!Z0| ?)c:C}<*44Ƨk"R> xm]" TNOyQI1{pK.}>,MoA@F RuGF2Cn|'ŝ/X4imHRMO3uY%͝8eëQ% 2anpE9#274ϙ6vlg2 Z-YzgeeQpn>`\_3d'g=MN|lʔCOg܉ZPDů pދow", Y Wʉ3S! ecZ[J/>}TD :ةwc3@%S8GX6ㅭV>NcUPd7.)\bkn9G^i>ue0gztΫ)q:1EY^w:sha8-\:,T7>Aw[#CyW7Iuߜ=-7'1qgtÎMʾvEc& ߽, ]4mIAj[\`s`K*FQٯZ`r*[jè$w?e@,((3j]ІZ?[]?zEtɍ r`90q/6B!5]ycY FLE"UXvS618АT`-ZiNmԘX ixq0%e87s8H ~Ȟ5jbK'>>}wF;qB?~EQ{T?IXXtXZ[T)vܷBӇB [lhD*`r]ފg) (O{Br|H d;/@3WjdS7;v3O9vM.%"Euj*FVXe*^pڂ:l?hw-%Xm‡ꊥE ~k'*~ ]]/ºCž&nSDtIpGǼ3,,6?Vm?}h|Ϟ2蝐zTdfGS˞ b9hISMH |4{mwoLan~ 1t鷪NwE)05f83S S魜d4v?`! t?_cQ2*݅vՋa4OM-%7 GܻKD24=?Ju >˶?L(ruX<%)F}5`(G*P^Yï9þ*f6Y 2˸'](OOvEǡ?AN@@_vX`i8q4GۗJzzX.y}sqdw/wM ?`f_ιkJDYޮԈ-ѫ¤Uj=u_ך]~9ΌNAϊ-Ac1,]$]yIGʦu}eH`8 ꂲ:gB0%FmJ вeJ+vD)c"0G9>SABb6]ݻs)wɁnɧvL6I+K(c x>TэfGmr} Ҩ_ vb-f;Fm'ey90& LŻ<-,eTJ;\uB:,_/a9ZM՘ ,&M߭ Lzs@ "@uŰ2l=,I'.TZrq+Z I!, C3c:≔zdCFkَMWR4 rNL\ri2l/V Lݵ ezU{{!SH@+G̛^_A$6L.Hkb -j^$YGITؼWڀJ> j[m &R%}UlZ3LRH\3cMɚ6 &Z,îÏg7E \Ǖʹ>.twX E>yŶ,$7ƜApyԼ/#vR=-)6!z҂=F9N%dR߽ \#W<*9$ .)a~ DgPuZ]\dR.Hu,YPD#WHs?4r\'X]iNv# \|/P!ڧF k䋪bU%jI)- J )nSw!xgtsR&m.|{ vSvV b'p>A"\P 9k Ӡy6wb,eٝAf%y0@&P @r<*x1mGT?P2gvXlsh,7Ht 2ȑ4Uhq&!`_{\t-HTX2X1ZO}&u p#[F/EV~2z;PX4H; u|t3(RN7(.fnG"+mz[ߜ`rwٺi |Ql|7{v ߤa2r}EDOsj0L~`wHށ 8Ź&mQ&36kk8@<-,36c?6N[Z➲],|}}qCAZ))੹aL_",T@jc)R))„79SHt k  ~z2+i""^tVSajHrh) ϵM!!nY3.V7[IfHU~NI3Ql3^pXļD Bx3`hrQS@b@kx[Qɼ"_MҸAZxâ BZHݏ֡nJXEw N4:gfE=ydԙi*IEhSa" Ιc_N&sB PP+ww=|h{lٝ3lC< jh!ȋa:+.X_RLޝ,:km?{䡇%jKDZ3:.,_ S_> c/vRbE f^f?tM ck3ZuٓO('E1lkG-䡻lEöYI\`{'Yo5=sTog,CDZW(=9W"Ļ⪸>y 3յn[Tꕵ)X ډ'GdXxDQ\0růj:?5ݛ}GYZ3UC `Dn0n9:pE0A9gZt[%2ԎP]ZG NGt7 H9/"nxY)6fغU~m)1~bowDE @,iVجR=͊&BimWlD,ݶi(hI!%0mHEG:s)~ _SVUq[Vh7N9̰f7iP*?QEhg亖0bKƈm/ڲN^{$ON6oO})T52j 7i* ]WOep Y3vQ$Y`VRh{J }ަD"6T4Brf?N)f݃3TdW.8 "a[g;3} <y1RZ-o⿊,ɡ 9Kµ*b5 0B~fNih/G攘׼mi hht7CxctÍ7&l T&f=8LH>XT(1Ealכ'*7:XQTdD]2ݪ|&I q׊5ty: Mn'#, 4?EfehWv }I.o&=VrNR6yN fಖmA.9培ӃQ 76Tk .&2Mn%^ݣLNmDXa0CC~,d/a(Vu@Ygau-Z` V:[]B6*jCsK`nu'>s{8Y}0l /U)>|2[ @2R(ȌGR:z>cK5PEtE³5P6?j$|^}xzó51MoyD䚓/c[`N3ʾ0vT!T@5$ }j=jV]Uz|Tp`)xe4$f]#_z8\mcZ[Bz,}zČ$kxbTKBfl͞ҌZ3aaݯ^ozIf u"Z[ۻ+w>J.߆mvn}NP= nA~%`ZDŽ| zMxp][ [ГBY/~ Avhig;[dvhdhӾLAxlF  ;C&ۉ(/ݰ3K)d ̹FSW{PXMĻ+r 9ln?H<0|g)JU+zY!:힗?F̴EEZb8{bCٺCwȡ Rɞdd͊)RY93PhA"O2*rL QTL]N~LIlZR)_P?8_ FWN٭Dz\)^?I5۝=*kUph#t˘nKI;5 ҡ@ɚo+Zt<`$(3y۽7u^~9YBW'EiY[)A`ꔢjNr~%Y=,?R Y̑3eJjv[nߨ1R_,+j<}Ф'^U t`>ܐW^1M$ؤ~;h{ƱQDgUGA#VH$ׇ"MB|1`y܁Sgn6Bh\  ':>\WL`mBUSW11imr22*("nto2y_Db]*X4ZL7+Q-:U1 6:KyLfi'TU x%cFbObj LR6A0~wP.'z軞d?eE~q+Cu/Cӌ# w[{Uu@D"Щ[sVc+n Fpg]܈EalWDZR@OAա|G(HT7\$EDW`WE /nkk|b4D\߶XM%5Ur!w's?ja F3FB@YK#΃.ģs$UZ<!&$7r^%n|UHI/= c5SIb@ptAŒF!fti)OI 2ԸDtqK+2)U{튬GUl37zCt{xaށߎ>e=GAkr vnS\KGYdKc؃C7aG3FU) 81Q 'af { /Q:N FC=BJ/|m~b9R2mrLMS,1㺩a'0VU;7QTFx _.m@#܊/DY3W f3UJ"~UyGUd ,D?"T|L/I܀o&/EtSox{ȏ >Lu.Y]K6_gZ*oE1dOwʎb@ʩ[pv{iG} PM 0 F{P*-sb$"ăm/'IIJ|Б^%"GxO>ݍ744f~͜Z/V zm0uT7<w5 )c\Pt?: tPd+M]@K#BNfn= pE `\[G7Tw BT(mF 1kML͉ΧEdO&TF;_F# cH7/W- - \ rl0Mx. oZG1y&ݙl %060D{V{S}YuW@̳?;//_x7t[}XJ{c.C2xf? SCHy],wG)mݲ)OB܅c,.@[[A fwMg$1z<;s$hcb7mP\%|; eyI4QR.LDSiCCd D89qVp?[)ڣ|"سk0rRؾZ4I1p$:fmXiOc~y^fiMBCYux qD+ SG5Rh9eKxk8z,e mLr@2y;?K5QO7l%B[?P>zz҆Id[ Y9dRj ;쳝θpoỶ4:7E~D2S;EKf3FQ?I+Þ$wbI8_P-֒e"ΉYmfj:St6r/c'lV<+*4GųX;\\7yiC팢/1V dp4=V"~\QFӮÍC)kaSZ+ɳE JȂ9Q<"_y!I#D뙭_ ]?SJ7*e4eiX&+0 3#w0#Mo 0#>;qf͏j~Լ-a iSrgN_)tcVzHc9Ȗ#l:*6rm-嶹г!~{{.lq/H; +wfq}qg*٫zy+[e`Pڅ>+Ӳ.ݩ۪-.x",[2tYobΗ(;a J8}I3|;MK#`ǔE7׺ftL^zh/Nb' n9 <ǥN*'Yr9\a[.d{gJQ%k(8k؄;ٜ7{VFZ[p~yHH+k\owTF<+B<i `P1X ʪόRy7D4aB(2M=೶[^ysV$sVGflCA\7+[j$ Ao 6LRۗϚHyAWn[d$[]Tm)ï}TC-.<"5kp:*zS@Bg^OgA?3 [aP.fZė̈́V#F˕kbXXQE{։# T"E'׿hV~3Q!ՠ"ڑm DV̉ͦ&7Xqkt8-[Ě|;!8 *+gz`8Hf?V쎖̦B 1z3jqo =דza͓&ņ4[9wz7}[\'o{-ItTqhsNS<$R((m#Ɣ+߮7:S y-1HaqVNCҶ+ɃY1?-r&:cHrx" 2@e_)9wECkbaSPv&6`\c\CV ?oU͞šl]HC8,gwa2W'ȡ=2[Eth5 ]].@42˸]D(L8j-d/_@G$+yE|\K$%OWbi\Js:V:(x^H_{_*]x%t(:xQh:PG"Pkr?/f3 Zee*l̋/={sQyV4.W̆aL+ih}+ge$V(GiaZI]Z/Oy9LVMޮSSFJFH'0_6dWUmq=Hvtw%'a Bi>3H/\''ZcF\B;O z0 4c^r\ū:B4|*PE1)#@V.UiRθ )U湾Cx@(AWʀ4U$k/Kcَo?K5͜Pg0ipt$EN'E%_U IRY#C.̞'`Hl-X)V ۑ64Y8xl?gQ]'{/E7`A_SN{鍾!q79H O|:-OXWч4. Zn1^ AozAFE/@pR7)+z.g+tK #LY{`avI`ObMY\*>_ɔ]RѽL.'X N-\͡8lL!qw*_fJx>!IZwGiT?Řy.̚s 鱞2o.6ѭhE,kӑKJ{>4G?eW:Z < 85\ݧ @/rqbc Cᔳ&15ez^YPsޑ^zJݧά[Yi?6j="Icee&UGKɌ: O^_ yBQ5_&RvX;#*f}N0|\`4. 2ʙHީt`M,*oǚ .GXBKt`ͼxy% z/ G'XgcoR0#nsyDtGKzpdBf  ygm˄\=gBv.Az$ e(&gI$)N | gDDsJ"..8/`6F }5͏O4{c&v0 s2*GO$i2i`|hY;/*KNVD$7K~+V"]yj+B VJxmpC"&B|]6 ţFJV+n;wZ ܣ5kD*jPv2PRD75ph mO΢vd^H1Z@:dk-;2m)yT䵦MsxubG'v# ]J׾Da*hTu$Ɠvk@ 2V qNn_Xy@w+^IjA$ \{PO)bdނ#a-! ?VJ񈜶C~1]M@6fWf#]HD&@3ξF#p$0(L%zfA]xne(iV}ў(/G3 $Q"B18rͺtd Ŭ] Z}wƮ sڍ2Sn(~3'[[eRL }W\s{]i]ڬ͋=H5#("e8&oHbCV4깔צ f&\O-WE?_-$ 0xe E663s,\ @ (KaX=^x<6W EPo_VHZU{ԱMWJH${6fX6F c VY!`\AE,^#kMxh/oTg.)l8`ۘy\fÅAP!`!`:tM,֔7* Hu1!`!`5jM s03!`AIAlLXEg{|O$?hcd(:I9&AIDJySڸ$ÈȰJ7?1TX|iLX@@弼J)BPxyڤpt"ăxl{:5;Rr40\5'SfV8 [-#`QLktHX$AAz1[ݡ@q7QqVGi!`!`SA E,F8 ΓnuiHm= 1kP9g)7}b!`4,tM:; &!`!`4.jM<ϡ6.`!`A3IAlLXQYLV?й gZf o)IR- ^M9S9A8rꍍ +m}18'lGFe&y:R5ƀ :BEnyY8,7;_a^bDҟ9`= TQGO,%jW}T?|Y&PB~4ӲgxsT<8+r l2ف!`!`RAQE,`g"S<ҠiҠ NxqRq!`!`6ptM:; &!`4rjM<ϡ6.`!`!`AwIAlLXEg{|O$?hcd(:I9&AIDJy0X #9x 䛵 kzFwdHt =VQ))Yp33@;4xr{`%6s̕CFehՠŚ2ݙlzwj?>zjP:oAx<% A8!!`OAE, ,Dۇ =KE!@bG({&9!`!`6tM jhj+ 0!`4jM<ϡ6.`!`!`BAIAlLXQYLV?й gZf o)IR- ^L[1T=rhq|򩞹diՓz'8:$~@ZjOZ؊!(ӕ}`ʀiS`\K;k>$݈Qjـpyw~JYvq}YbkZؙ{vkgs'̓#T bok-]#t [ٷ{&^Bg'7Enq-KQzbc'5%FQ'lu*`qܡ!`OAE,\g 8%3PTBIB@!`!`7tM]^ ـ!`!`4jM<ϡ6.`!`AIAlLXEg{|O$?hcd(:I9&AIDJyL|p0}ij^yEcQ=KJM`@mSOU2-3qv34M1XA"anT]C(CωL{M}soGfɥSi Yn 63#gD/B0!`!`KAE,\g  ~Kf1-!`4jM<ϡ6.`!`A#IAlLXQYLV?й gZf o)IR- ^LQL1T=rhqq򩞹diК'8:$~@Zj}d2M[Ȋz} bQI*N}n('!`!`KAAE,\g p`l<te!`!`7`tM:; &uʁ!`4bjM<ϡ6.`!`!`AgIAlLE!1~%CĖ4P"H:=}9 >sQ&|&3KylmLH{V|ࡂHβ|-y `OT+$|W0Bo@FͭUjURܒX9 .F4"|Ү!`LAE,#vFBiOmP!`!`4tM(gx@*<!`5jM(  \fU&!`!`AIAlLXQq͘ KƁN+ SZJy(ZPRܚP\Խ* Dᴏ >dm(a r5ȉ|P,^sUy@?g%!`!`IAE,#@ЇuV@"%*jT!`4tM(gx@*<!`!`4jM<ϡ6.`!`AIAlLXE[&'"LvL%@|gpĥ_s>EUں{le ;ѱ[! H  .&&T'-κy@12!`!`JA E,\g p`fdM1!`4,tM:; &!`!`4.jM<ϡ6.`!`A3IAlLXQq͚NaCGGҡuUTGݝëu+$0/G`|R5ޔNB' vc@ gCl`~ovȫ!`!`JAQE,\g p`fdM0!`!`4ptM:; &!`4rjM<ϡ6.`!`!`AwIAlLXE[aOHc0J 5F&dl"y{У 5Т4,&FcWӔ|+VPi)HN2{@a=Ϫ1Q!zꑁ!`KAE,\g h.1EVU!`!`4tM:; &!`4jM<ϡ6.`!`!`AIAlLXQ}pGO" u!NExzw6CIOy '>'!P } Ѵ#o3?$nl,D/y?JˏHS|\+]mPR~'qmlxͅk̛0H'Ql|8)Ӳ7bkaR6b s"c"=lH@JSUvH FtjȬpop[Ջ(W #)̞/^R SJX3~z9HƖ뫲Fv][W$1N- UoE6Xk2P?vr7DI<KlTv4tιYYr4Ly9$l=-%yXQpz1aNXxͤ6 aud'h^mL5ѡ<0YR ~z,b=GEs ;>TM9jFwWt YWJQ0$a~+تy;Dy|qO9igz3MD"N-Lst~nU|7L=<ى"] iX"/on.(A!G-[G¨0/'u@@_ rִaG+Ɨ7Mp]~z5`bF8f݁dr믺R;i:? W_'ۿ|K^w@2ƃt\C}xRd||NNWhGJaYɜcM-xfFuy1M`ҪBgo.H\bXcz/^g޿GQ_ pr݀t~M , F[s<5c |O$&6DG'dii9ҢNir]&!VJB'jKC ^@sK?2nEV9#u{`0**52|Nϵ DƋr%{l_6v|'I>JK 4%) m4N)!ICY J_$_Ś?No e"1*\#h9vqX}0x%O@4 gSD)d+|U6Yخl#ߠhnF. Kp:?]< gSg;qД1NJcr@Y#4|+򡐘|=.R|ݖC$SҕO [ lFN,9XTK=\޸W fpvwTWI7TUQ? 3A\D<0&7S `zOv֬;vw^<  W rt] eg !`!`AE,4{)AM ;B@LglS` &?ЖBy-vsSŝۘZYnyIJ߻uR΀ U`+#kjp?7kP>`v8PNM!`@tM;| Yu# 8H!`!`jMӠ&wtz6iǫO2$։k`.{Ňv N@d Q!`AIAlLXE[..G*k-3WS/foVٞj~nߴ&H `r֑S3AJ]{UTd>_@5hhc3wT|A/V &c Lrp" 嫈E( ;7NW{N3OODTy/WR6<]ЯǥK(܊%c, _/*8\Y0J7Yה^6uU{i6p=1I33en:oRcM#"DoZVgCiNdga$OV$ X*{'ܮK;]Rd1ZoLbu:Kzz9+acK)Mc|g67&IƔEw䘬M\pip@umc*8Q`|-<qњګ35MS+ #PQ} !VBC/S m]ѱюjM 3S0E҉!|&9>E۷['YmǬ (+8pS~}9$Az 34;Yw$oZ`qw?;\U3?L Q\6VϠxN$tvlcEtzsW CLetkC(um8a'` 0V㕩%%V)m/A5VmV "Qζ$0d9T?4LMa3ĵP HJ-2u^o=eBVAKL} sTƱRň1yf Yh=@?'Ǘ~2tҝ!xTpM&eP\>e j'VGoQHH풡%Uav ]zGl弔Kp< &f-h;D4N`mYJCt VLWNJ wįX!-*,$-dc.Oy î)x,^c](6#JG^*4,=F|1G\]17oޑdXP 駳b_kvzF{wqʫsvQ L?<5G Ak1| !qKߕrꌯDPh1hwvy|"5< !a}٬H:>U5S'1CSuHD"OhDׯqpqXdM9 `yO `wRʷ(Qs WjVKRDPEssp4#((@EiC j8'&2gK{]djci\&2[RW*YӧwO{tYgMV@(l Sc}֡v#_aF]XL-Ozw^DS:g"9ɋm%Bx] zH5X3rA;s[[J*>pDK li PFTPŧԣ<(3TD />}#-MmZ YNGg3nM,7w-<ܻGX 5RA.qiRzeh1_YyvXkqKoĕ& 31WRF :ͣs(P 6%n[YO\_:3 T^LP2SCb$%@TsK-@Cgz5u_J)QlwUnԍ@Q+~3},eBZD‹De۠އESZV' [W 5ގ|<сM^* >q2cH ay%5#m )WJTA$)2Lqx,+kN'U`)RDn=Cd-n>?6;Z#{3gAyEv)8FR}`K8A)0y&7f7Sͨ޸"g+P8vI|p\Js9,Z"8+nd^ eZETYYbä,k/1=p7L 'OV.{:m_]y";~e .[[ iv^Kp. i琺@ Ïi_A(9%0U@>ן^yG*(J$dҪ߲SIa/r-h#Ma^mr_ۿ`BxKIq'x"5&c.Y׮Mk#[<] GQu"L”|WQ<IoM4:鉂1H V)E)U㒎_#(+\3l})}>07%t~IS_ >҅p9 ` qZ05M OfdJ}aTH:BUboi_dI㩶 OI(l p-ХϗJy.8iR1lSE*cf}1#Cmw2Cp Β6;LUycn,XGm̽ҿo\#>.M3]s45V6$Bi<Lcl⍨T&}7A6撃oFcy^Z@>Ayq_Uߒv/oPsY;夲k$ ͙g09Y c]6Z\4OZHsԡJİػY7xi;zHE8mǧͪdl݇im7W &0ˤ#KfBIl) f#Yd+IK7u)[3 @+_Ig*Ԧ?xojz:!}_HWғ Qխ*ѹcJxn lR릎 5r+%5.)2k7~‘ \_\M_YMC'lf.s)Uh, \ ѵ2rJPUQ.|h Cʛ8cm Zeг>צ,DvlOa$B`F"_ಎ-d"5MyTΗ:8}9(!(jk3{R*P9$nH E'` jxh{N؎Af_f/MO* m`3M 8\H2K6$+?5߀_w6e??\4ϚXic2cщ9`]dSɂIbV&)~JQX%Xv\}9OP8!o~,Д3lیݗt /#qN355 !osN,?\F̩W 13Ҕa%Q5Xo[NhssQϠQn#||*u3ٹx_n1ͻG "|zCfjɑ.?"uTm9 ;0l5JW5wЁ*B{6A r=F3;n<]iÏ*B-wj9%}n|$٥J8_ȯ?q'_:NG_e G#yZxD+ޞN\XG(3|Ŏﶿ{WPVͰ0dյqZp:ƻ@ϠHVkK$=l0vki2wzlG\ D?iPx)7Zk}H>yպT;}A@2^Lײ䃛^u{CA?UʫYx҅[hd;;Gn uVeC`[4a//xONZVT\F\1-\FANiWMvܺ;D0f똾UiG)x&5Fcʀݴ ~ T lU>Es5 +ۻdؚo;{g\8 o͇O^xy^`M(q׭gP&V .TTQ"HhSϩW)e_]<: r$BG=u}4,nXvb8<#PMPmO?'#1RuذT]'pJ9my9sDy~B0m7G\Bw%`md;oUޗvO~l?iS4 3웞F`M>~"VzvXW78=˕h7= y5IN܆'1dl `q.=b̊*q'"ygSV{z` sգ.doZS ,}H{ny ʉ0|3/&CQ q%N]# [74lCa'K0䞂ݳR7:Yє ϊ>^`+tT[dta!QW` [m HaH2xC9[Hvmw .YXBWm@!U̐]baP"\,M pH77q&@,(H]0洗ѝ&ȺQ>KsskKbdTΟLb_ѫW9h^ʠ?+Z`H(nG 2Jן[ y3S//X`**T7MjެK6_{0|MX fE_E4UG"'l%/tK#Zwphoކ^f=88gLF| 2t]򏖀:8/pMlYH] [tw˂\pIk]/;rxY0+ZQVٲ4nh݇BÞIВ 19a5]HGy "$v~G!oN[(:P#HHh 7WcÓn{5㑒e&=kiY>KK5 +sd13(r'4uq/#2{vΈʋ::} ;V'?ӸIϻaŝhIAl\P.A)/PEBo^(v! e?c):+BP\kcGZ_}x}D]H72tFz^%F)M˭5h(n' g{=_^B~8] :oY0|.(ǧxI>|/ ޛG@oЩIp77XSCMxmCeW@DjސIiJ)L3x ~sEl52zXinMX3eقlşV/PkH_0T_S6- yxƂ_z.l ^x /.Lbd:"|o2hGXg7yM^&"- iὐSXۺjR *<]` 5XQV=8^!"j: -DZ j?a䉻PY[bd .ߘ*R*WXs8C􇊈{Og >R@Lp\>"Wo D"e/ʹknQ,tuLv5i"x2VA(k lQךf\{ؖg ҊdKWϣ3&(?[*R/SenѸsZAê7;f"|Q r-7AK0=D9wnc1whj< pARvD~W ,*=zg ::*mdkjl=YmF)%b X_#5Xu RtVpZCq ,b9q+tX ]4Q" RHs`/ g %ڪ:TrsOȰ`¡/I "y@Լ^!.KsJ6Ϫ<(PnQ!݂tw1@{BhJ.]ۉ϶UN3~鯣=aib&1nYʄ4h(L PQ!*j *pB n)ҔotϞsg5VJy" W0 :iδ^SM1dGN@һKaI#HYvxzG4Qh-tſ}<m!"Wq<c 1 kDRHavGum=X5wAxAľW4wOooQ'q=ܚE[<1â}ќ, JR "`nrPmۙ:hDf}y6ȃЈTmTB-db&i|4ľ<Ȍ04H) òțZ9PW?Xi>&, Ћ̨_ ;v.M$\D3VV5 qU cS5Q.p/2hޘ5p8@;iqK]G#72ޕǨڒ: 6pSo5R]Hp3',h[lgVv d OQՀ`/*pO6 )%Q~[-+>7S*!r+@Z8hq:MHPι2ba~,8q lK,h ( OagWF`W7)R Jĵ_5rF_"ܺiF? h4 ;?W#HRMc80/6[dDŽ,;nM jmdjtf͍Nr|!pX~[AB17|$7ngnxip_5V@ opm8=;L$K;{LЅW7RQ_#H,XQ.#.dO\z' b*XOeAƝtuuU!`RI>g +;FZ!2)rt\IGcԞٍyi+i ꨐoڎ&J+M#igxsFUz\H8*I>[[2.B|%"igN)P^P )3,eLg؇[@ohй1"Q#t'T,o԰VEiTxj#&5 noJ*-q4:)+|1+}.`\ر '"|DMcŁa͵hy˾d?GC[9`}yA.A{o;t ؕpG*"smTC\_~!Jh%=83oql\K>f7a6 ` zK#x*/ùQAHW֫(JI[ЛA;DAb;6݉D5xg&BZ׳?>qْ4A<>4@, [ISkHKw椾x%PN!2שIU QG{JyQ"|=ŠA Ô6;I%-<~ź`3N:)M(yx'`_/=1?b f[ɑѯ1WLKt)%F?qee`1]b_5_FPE9*"9`BBv>(]*i8VJqkՑWIYȑ=ng,c5FK4gX1ro6o_f5ferIL/轷1ιU4fLY*kh%̽7HagD\AʺN# YX)}+E%/Yù+3 U"I?{"pb` aIX¹9*z Xl 6< %c@rPfyEyՋU+~ypSJ_+K8KA6(³ߪx6vPߑ_f.zyW"hOxQt=<$vߒ0@7a8 }ND:zPOapJM7Hȑu駼y@dA1)Di~i\!`!`>jM?N:'".ĿWazAE`7/X<+M%~3yX/{.hal'Y!|Y=^\FUϢze| &nS" d@ !O⓻zo\ ejѦg7WQ\qk ;Bv9CpW毃h&9x1c 4f n^篢$rlPr^EfP4";ٷO:U#wS|Q̀!PrنK/f F6;QFܷeX_b[NJk息zX6!W~=!q1Tl pR`e~T&z.nٕJ4.}'9oPdcvLp?0Ĭdo1L]=o^+ Ϣ[Zn|{Vt xHtJТWL/ӠL}ҝ___Xs<ri82w֧a'@Nn,=d?Z\\{JȶN SV m8m?iA{{T~́4jZ[ b#˺V8܈ºLS? mr;!` A!IAlLL_hrgҰ66vi"Oyvbkз'B(u7dä́P;?bqzi(oOAO@Wş#)v@5jH` kf=T977X8 y?Imƺ_;/j vJhg.;P%Y%wo?E׭^vlړBJ :8 g C`wk穰%ڀ޵V&6Db ljh־d>V#rv(Ͱw<*p':[yUFP!1k;h-/U4=!:Ӏ!`!`@jM9hߝM%a~DOH$oIL+d!8nJ/!(K=-9q:aY1jEt&,[A4l)%}"?^j2Zz a5|~~;K]xG95^sS뾢[0:kZLH_IݎPA܂ѐLzm"A)ߘgzg|"=Lsx][Bhq-,A%nsh (uA[ÆN|mH70҇d;v&(>Pa-[/4L$4 꿵(^0XNm1+8E+]YLQ"h[6+A(_4flmuTۆgtijdҧ.rE ]\#ݏ1DO1f]Bk5gᆦ_f|=ycsDs^' VO/XCۼ?R"r*^HL[.*MGR59?{#!Dk /j>L OjA5>évg_|Q)4qΉXcqK8AU\8 WBbu^>ǥ{EaQ0ޗGqPNq`Fž|5[gkxev њ9ОJ_P-{ *x2[OU'9WXa }3Т+"xm~ r/@ t _Q_]H*H/u_8HWִ9m>~2.E#ǯ` iXVԺVI!7pBNa7UPao~gOEkYLx!t•J%ӎ:ҖYDEiK`}>ʣ4Dp=o1(~&soT{m 8>D`cBzúdU7Pe*ܩؿ݈$(Htǫө|?yb]*) ޿Tl' &˼,&,#M![Pӏ?f>Ё:!ɹ]/]eZ2HJqBǤB&)`m8Hh64PaVIiP i[`uyr QNao xv0P~^N Ĵ}`G*Q̖{/,[a䲽D*W#@u| kI[tGbB IRkX~>$.1J*kaoqK ;H^WlTWNZ篬"鬘EĪovon3J9 af?H|҉Ʌ B!4dq?zE!Y☰;pjHjI&S8'PILJvl qnF+hiĐch);v jFuwb*GcZ$S3I-*W2'3|<5+˕KUopw|n/'PV;sMTKI!; |\*9AIhVed f^ɛk<&+{o +MMx :d0C{`hG% A2X6?5L摞0ĕ9UK@6xb@+h ƺt,oSFНVoCo A0ׇ+Rj}$v߆f_"Kyp܄~QCβ9O2@bN5Ő~y<&o64V6 )肺OS3e"9&(r5K9TLSjA%]SZwf߲lf>#H }g~7]בMlxzȦHU;o:ޠ4)9ND4,Tlό5'MmD|ډ~F¼(2!3l_1[*bJ&1`[HXLueMfYj=[iaR0c : 趥'PIM>ZKI#nhCc3Ĕ>bY`P\t6n;={O&3M5miGnah!`_Z|v 60IAU=ъƖ::aZ>vVF?DXB(|+6@XϝàZ(WCSC( u~A!`AcE4M8 oDŲP»=f/8U`gRw%63\i>g@L9éK@"BXQ I'l[jk'V%5ѝ3AHWpA#tjׂc3X7!`!`|tMW tX-S7\n "^yhCjv6C21@_4ϦeϕEYJ!`8CÊS3L.ʰ)z 0o>[L y!`[jM*lϚ)^\jA32RzTeļgU@ A  `@!`!`OAIAhLXiy 0hd(@}92q&J|,w2EjUѡTʩM3T򶁇n lM©iM h&ˣ"$¶S|ѳE_fhiNxTMӯ 'DR"-.bAp~%Xhob}G 3׋E3V@`pBwK'iɊNMN I *5\ǦL9GPgfN nĹOj^4TaT:-}O}x}"CUB4 d? a!`fAE/h}M=%T@)8BbpPtf\Fz@$?\Q."&? )ŠA 1XIg<"!`!`AtMx>̰( "*+<@8&!`!`;jM<ㇼMF@$x#!`AIAlLXiy &yD+Ns>ѳ,DH\?yw"M#}"3Cڳ gQ 7 i+}"5"MS GF-KTB/@ۻ./msX>'*H/$—`.~ J~g֌dSC+!`!`MAE-8<%`x02,LCa 7mu9!`7 tM@\Z@ *ހZ1q!`!`7 jMWG 9-!`AIAlLq.`sFd?ߦGWnp^-FD iִAKdtFϩeu m䐀$׶*}ɲ9r@aqSgAQAsxd@ `s+$6w_ tWFՑjP e'-}tJ~=&˝f@b7bt^vӏSjǝ pJIS.m"F=.#w>5M2_3#{pi="3LL6 .RVe!`JAsE-8Q&Ma5_4@%MDp=@839@ `a=pA!`!`9tM@\b!`<jM44Z[txb 1h  y!`!`?AIAlL @yqH({Luс͂g^6o6bLFƷi1LWJ/#Q'[5 -Q؅G 0hJ25WtԈ\& 82]7O#,_kKRT]*A1rcu=>4rijrNC6%oeWS_zacj9Ո:avT**o/B0T %Pw5z +AvrKuoAc@]yH #w-: hÄ DŠ6ƵbP@!`MAE/h}MXRL[Uwj B˜ \Ӑ`!`!`;tM:bushy/i4`e!`!`7jM[KXL5 !`MAIAlLo9N3W\e k{ M)JyFv_5 +^T++,V}.ߗcL^* z@p1̅3v3F%7X xoR ,6tPA@ީo3V g4P!f36?àT#c/Ǿt2dդ5hC>t'->R}gΚXiPqҢwz{ɫ6QRs8 cRMr6󌍶J.% %`jlh'K?L[(}&U8>gAS򓴳UEʾ"T/)7.o'r|rM\Ԃ!Mv/r=a{&)U=Ҙ B^w /wT mVtsT*?F0] 39Xr؀Пd %SD~VI.rU3(*jT)X5fsFl]?@C`t`@!`!`YAE,j[Q _?ߐwdZQ͎sqGp,NhoX@XP.0î3Y!`vjM4c=ϣ`&3Ƕ#.]uppU^D朗{KI5!P B&&ZFH0O`p`7!`!`ZAIAlLX+\kԺ涫v׈Td鼿Jپhd䅫 y[g5 QGa'뎁/]T_<}BƱB=gͲXGߨ03$"̉K_2|sw['qߘ~ȧҗڞ)9fvQjuq?( PreI;ƚ`iMm-޶ m0=pغ^[j(s&˭Q 훉-Mٓy.mi^]~^2l{NiY{o[>V+Żo׸1i[2t$T-~l-k{V 拔vZ>oknIƍ^3Thܝә/PsGeW5nx wW0Bn%,> 2}e [Y)穯#l &2QѨ)o[s8=i\ ,qB-!` A?I Re0QRXE%+FPUHt2dyM8܇#ocš`W!ӺaWU Y~4DDtbS;Tֵ"V?gێy }Z<9Uݚ`IrFCH!art[Sb tvΈsz NS'Sh#aˠo*&@ ?]qn8ABr|M_^:g2oW YЇxH_%ab7vP›w*x aI;*l5ƍ9l& ݎw Y Jٙ+R~mot9A _nPhAK~ Mdz-X Il XJo NX?b\w;_ݟJo^=[q2}Aܚ9C wNyV)$ tJݪX1.f S UNP)å#<4GA@-]OVFq7wi`nyZTvs=W胾5|leoS)sQ2G_k>I`;8*d$ѓVkL r; oP|NPaMAaFp 5uo|,ʍ%Ҵ#Ԭ_Hs8ʸ7eqdr610mW%i e.w5\$VޘU$Vk+68 3op'%R <6;LhQŻnO$>[\.)(;;йZa&wRYʩR@p3JB~ӭ7/P =gG>蛐X |=V&?YLE7hN B]:3P"B|K =>ry^0Gq+ʆ> U7' lj盚ܽޥZnPr[> kJ+K&h9n"W@bqvR3;N9]ʱ< M>IQD=MɿSʧFkJڔGy"ޒ9;,XgFZ fJo:Lfw6 ]Bׯ$B,*jٺ)?A~<<,7&*^tblL!B'K DGu 2JТ%PLѤxӃET kqrcWC{ ڟ 7) "{| 3^0>Cg%Wŕ\nYFgGi\R?oD6#+W=h?Zv‘b 2rXIH(Xqag5+;2er/W2*rq߅!iV؍Q!rZHso^(5cG1bt܂d˫Ed tyAy0璋Bg7B@+}ORMoQԞ; ņj=Te@N[gz*tBj?`eX4{81N;vfkW':YB`3C4#oϑܽG!}gpF!]Q-ۉfvo<&0鉁!ʹ ΪH˼N9`|XIF2r25qtUc1BEC@zaIGºRV:nj[|؜c2S"HVJǸʿJg` 94 iI>p mLRDxI/AW'M'h_$Zxs2Hn-x<$'S΄>Cf"Օ\y<-AG hMAmCFC%q;EL2PǚD|YӪ;~nʹ"cU*4-)Ҩ~1X5m,U!51n0=׆(cE"ʆ;/Iȋ>(\ߙnXhҧ|<^B6,-m7Z!^[dc (ǮyvaQDeSddZzm"tQU" O4H$?Ҁit$Hl[6/mF^+sT%aőfW[pRm]!13eTH3\/ص7ˆ`EI#ŸvT>Uj,D |szQDBO 㚁+EnS8 ,W0$Z蠋PǾ,_hD%lV!ݜ$1iϑ 98uh7=7EvnM;T6ZG?Y9}?ut0Lbս ߽h콶TX sgъMWTm, SQ@TFz{ 72g#d~pf餲?M;b @\69](a3gIS"rtzk㑌v\_\|Wڈ΍Ԏ_iwc?Op@UHϧFB_f`F d@fAnL|1&\ʪ)Jh/dt3[:.<8֚>0L&dP(>IT SgjW@JU9ZF*+9)5 y۷Bg[pܙY+›1uV;mYhuo6[(sNhQU!5zlDWaQ]gmW닉sUǪ㬏 ȅy/ƆݷAZJZ<2~-?q1/U1-&ûGXFn~ok;'Aº>~5\=v-w7BxE+d)N=-K^Ba3]W^`Q[x gC V4jVOmKh1v=xWx] ti^ {?4xH*#ݴO,\.I}&ƨZ WFY@{5 fb,J#߻)2 ކqf&2 WID oxa&l8najQ&GC(+u2=P^2%4%7 ,||)sл_/ͨ]¸>ݰ V[4ӗ##>P71 "Gix,H7B |B x{P}Bq§ĉb,2*Z_~ 3@^]akEqcU3m1B4mt >DJ0k%/#[{DkĊTs$2WnY,)b./VuQ<莚 NTF$dNv1@?낹D}?0Ծ^unqaѓ$>cxA>Q1E#T#%{F 2 "Fa5ҩ*Z*i^I@Y3SiH0Rn0L64մdJǺʫFo}e]V b ;)7$x$pQl[*䝐G_k|r?jҳcdAx7fROy9xhiͭYmB̯[ @@\~{`Ȭ"WJۚ["93F'!-VϡJyQ*V|Fj[fa&l ׂ+?bUHvK5X% (Ž5V|Aem<|m˧HC.TZ5<M'͞NC+6n vxL>l\4v(W!`!`tMp4?5|8b= {dLd)q욐 f%E_մ'o9Χ2DT|}iR7*nDl)7VO֔_~9w6>%sk|cK`gB0>m-봪q ޓWx:agȤ.UMz@p!53$+C@Ų46݉,{@-ۇHV eTBjQhpB6EpJ 0dٍB kXJK-9Dx ͉hҲ6{'j>}Qbmڄ Ɣ>V().ソC}|?#tڞX[Lv^:ȍS*vvi4@!`jM1*^@!5O?:؁їE,K3Z' T=Fѐ"fn0e{e{z2ߙ([\dl?;ק.#PB5GW(oK!^=#5,T hp1:}MF*;Jnja118ts\0K539S5Ưp~N_!V)ev{o?6D*Qr-Kk,'-!*#X)ٍo꣍kSy†^p=CqnR|CR@'ׄ#Se@HIB*(])fwaYW/Iw?e)1\fGA>(h>!`!` AIAhL_>-Og+)U`^M؞W9n[H hǹN[Ƣ&$%÷J4LG5M"Tffx^"h&k+۾K J q{t٠a^Amw\=uc1~H3:9 f?J/r*4ӈ/@@Đw uwm$r|SGARz},8u.N aR !`SAE/TLm0 KHAoˊ e^l]y@Y<p!`!`JtM:\󕔱˴^8r"!`AjMu9.(} N!`!`AIAlL @r!\Wv3n4E<ǎts%6¹Ndh~ VW2ξݏi/4\ɻN§ [,HL5">@Yϱ3!`!`KAE- $}\5"A+@$!`>tMe䀟Jq!`!`= jM \s771!!`AIAlLLu;#_2!(|޺~"YUĹښA˫C jP:a|ǷrAs= Ahp'$}N@ PO"4}/*#(g}P&df1!LZ` eMwxř펈""n/7o)gGs~yL0G<. M'H`횲jE=&h(enK*Z..0\kM^sٙIv—Wxy+5%p ѷ;\9;peάՂ)10:Ǖ:o G#9|YԦGʂE?ʈ#s%HTJ۫{Éؤ~Ɂ䅧h[7kV{c̕gHCSxS)]jKl4V;nCj乞Ǐۨ< L,Zha_`I 4#ީ.FXa}yaklGxP(Hb|A+DJ;K61xn}v"?-/6fq+ʡ VKnzeyس~<'4ZIݻC`Bj룧})>)YdB&hQt L! @ˇ!]8y(SK~]_T{3Gn^ 2)D{G!_rxk?ŸRKֱb@J>cmcx\T39?'d^0{E{=-_L1p@G0Wm?*.mieZ7D}9\ k/Ϊƚvi^UTq݀F֦ۜM>WBqs[Yj>&KrCۿ !*6+C]_J(7z:m! i'<%"N Afnt^I[A݄8c/Y]a3şWhoo{AVL׎gc6nc˩D`Dkn~$OBFv :g' 4DQ~H>u!V?E:%W'Iݮ=``;IS< C1!)Ȭ_{7h^ x%_wYĀ ]>صR $x`Co;n<@ J;rW 2LWɈcx }apܠaE-7 !^MK4My3,蠯9+rZ6،@ӜIb$9bҶ95@/[G gFdqLKK'JU>Y}ʤ퟇Hn7쏋|QL9^B 6NYx걤KvMV=_ٚ0{˸ć|p79nh; ީ_;NRȻ: pyź LqV)+tWCMrh17ې<1nmMa%:\Yz͍{*8{?[v3M1O Q:-o/{ae(§<'mTOkhގ|Sx&QGRTēP ߉zPЪ *cvYKq3巶o4`\ŧNswJp^Xe"b̀Icԍƞ14 =dQ}taFPFAw&[LR O1D+%4b]7J[TB!2i;Hw3Ml&[q28osv6S 4Fڧ 4Л'@R ]"ꁼ"`KkC˅wU!DcXg{#`fx.өQFלe+:!x8T[h^4ia!Rglخ';; 5 jR`t{ԜkΎJ\Na3<KNz2R dp ,_rWU;0=`.34ʡydUlZڱK_ȉJI'Z5aYoA6>+VdZ3Ϛb9&s[ք<<8el 6ߠ۷gK?ܤC͔+n xA*>ReWqghp 0y6h j<›9z\}D8-"Ch?ڻ>l|E-3CdF0p.ƳC1A5\ى`FZk9{fܾ=w4l4$~v$:P7dZYOv)cuEтQZ ]1t ')T%W%vUyIJj0+J%sٌ`ћ&T}N2<8*r+2%|h Kߡ Z':XbF??yx=cUxh֮!?I=O;N&-믮CQW?.b*a|f:-w7,xiV|,,QMP,zRȒs(Oq٣|n;Iz.Ϯ߳*fL1yR~\Z-4T#-$W&E}-(՗'Y RvKPn_M[(Xɺ>j-ƨ:B`6 D_ΟDZ-WAѬZ'/)]5N gGe0dJlw*o@UTb5ɒb(_w=QOƲfK3}~PAu{{I֬-7a;g>Yyb`ymd.]e:ܺ\EIrĐy^F`VV/ax5h3tُ3OvSc0c%Ch!IHʹpҷv.-̯3m BIå=W͎p% I)rHSMdK,FY1I#n~zƅLMBQ;DW!}: Y3h!6UPIo ^6A*kD !::6M܊rsVTش5yɷhvCpk%5z4!a-,wz` 8#:i jH"<{481|uRcø8AnmEz(ENF%|%K/k9t 1:71WV^>*ڌE CyaH=E'HAG-͉6dѤ $A\1CR5˴⯮ @LA*^eǦ]P)hΧ"DFZ0j,y{nS$%e L^Y @PkD OT &7Dnn :"[ik) mۚi1j)c|> y["J#Xq#򃢍B~N 'yn`/ٛT\sYCTqllΧ@A4*; uؼ_\2'7|]$Hiis2+oi{;'SŦcGtyM i>bAb"^7Y8$ h¿B>霋{˹@<7i׳K*1=;Dkp-X4d-t=,ogIevg'AФK/Ǫw'.f/_4F.sF[ {dL* yKx7dXd;_h:% )`B ˟ޞLU㉪ʓ+FsޗS{tΔ #r% Vh䥮n#DyGtl4o8sCqMyZ@51)״$TTϵs7\&WiaJd/ D/Vcަmg`H`MfH&ҘVcrc%v

      &Qpڿrb&ZxlqWVSr҉}ߌ(oI (2;[BC.̍#oY̎oG93WQ-њH* S+2S% ~v{iUďD:u+[wʱ X?)#OO\'7Ƚ F2U)B t&(3WT/zLmC1] /5A`';+\lT`.l'#8n,M ;D#y`{er0Yx-p4YL;f(FA Q_D\uqI@bИBB8PA*Z4I=.uUZ/FШRVv"q rI%Rq ͧv'i䫱mޘO/w!nwS ڶ`<[Ai *Xp_xl P0p1V8z[:9UjC`Aߜȇ`iPIAE#Dqkh[ jy{ TG gшa0c{Y!ѐ 8l|ƥy& s6\k~d%x>WaGw)GoܸFwo {èX 26.Ɇ";*T}2Wu|Ua 7x{@+Ft4ڄv1TaL hɺ,hFƩ$ G:bɞ!q7^N8гa${٠p&6\{ejAk!g`9XD ?:PY6WX.#1:fppO9(+^j㡟+gwA(B3$YavJ8z`kPA]?>e Eא-__7UPR`n'05Qƴ{ߍHX9m:XKO\*̾2jO<UKMXRGap-EI٥L[K`qiB.Y= !`qLtM& +j @?x`.8%u%BG7lt!QñEM!h|֪,z8.$!`!`)NjM8 l7򗁖(zs?[]A.'kZ#ڥLϣ,'fpIfՒ#" .]ya+ylČ|;2Jr,4V=3ب#uOPL, P<\aQ D#WGw_b ?zk_vrIJv]9bUƉ9 8LQLGAWͪ$:I)aQ! :$Q)eCAK>:7f۔j[̞&!`!`ASIAlLi/m- ^ۓ ?5j~ ,`*-L(4?S -:Af(T[ W / LU ψWf \y J/f(6ST( zge[ʗg4OcZAlm`.8uU#eĩg:7$k"A\Ė7.`_&<ҭ*iֆ'•Xnt]p9;SxglZ+x?tζ|j=Ps }r3]ivb^e 7AEASB3; -&z9tkBL!^-1N@J߁'в H8L$NR/z3odflzscrSSYky0N(e+85bq)OJpR?$fF fjB"6J?WJB_W#rgA9w%|_dҎMyVJjcOb&^b٩>]$>d#B1+~C1_2,2(@ o?v be?{VbI#3]mN5|8MQ$U³,NqZ^7(-m-&%R4{ Zd^$[}oÚ뚎_5|O+)`ęfA5M(&a]7Gd( fzb$s@8_PC85>@s6\{kZn#GR$9zX`< N(sK HXBޗg}ul+Ss& h$W27L&.#&]O.j=+ s:W&!#m]5ie%^ G1ী/– {OSO~q:/EgӲ Xc]({T&fm>hnQ/+ר.]r~ᄉY) f=ex}X'Ai-[ Q$|{r \$JO0]v͹F i Xɰ蔖C,ܠGiFB!!`AqE-7`' @tuyHOKr*p~t*6Yÿ2J\ v@P@{2>  z''bY9Jo 7OIwW$5/Cw>Kjp|$0{? sb!`!`tM֗"lIJ&Pth7C(4Ԡ~e psV-Cn"rBa P7۠\$Vg _ϗaq5!`tjM%OJ u ).R+a8` ` \ ٦cH<.fF/mX\m|LVBm V[ X!`!`9AIAlL? SaS{U(ҫ®8J`VAM]j$)lz>ǸYx p(blt>e!@f݊^G .SCW(L)&}!A] Lқ;,Q٭6lcJuPیI.,ALj«R| Gę̲Y'ZqCz5*)6Xr7$fMu~y7I *Ük0S#RP7vo sډI-u'Q ri;OStHSt=uq63I[*.FcXeq}$#wu]2A583:2v(cCfn1DF*aH``׬+H,LU%3F a{-A6w{A1 8ޥGSZgQ:ͻ5Z ;{k6)ٞ%'jL.sGas 8_pF)e)+B1_ ,E{tĦS9^!ѻ+uZpOS 37@P.*vgbqs5~đj- uo3-iO |mO*NrADsRZah=a]R5xK TrLx[终Ps=}*,,7(t2{啹HUF , nIN(oJӧZFpwXqK[Vg|Sgm8aE!`{AE--4b%ⅻtȀ% X4ΌPMgߗ>Ia/ξ^)w1J pNs+30 fC`VFFka!`!`ZtM!@d-KBPѬX r8JAF(kZ%>jǂzk%Q!`!`RjMduCkhdH$""?7Wx\^8$[p ZA@rnp!`+AIAlL 1.'O` A`p~g)M&qd5NZ?FF:o@|Mh ׄ@@D뮽j^S 2y<XM`tUUj.m㬬^>ƀ6-7?AbX>6U axA (@PQF7IQ%=>9S&VZ)ؙKՓ/2?t&ϒKXvSKQބ̄߶a!`!`oAE-55j~Kk.ݎVd7N@1@lۡYBU%LE6 [ !`_tM7 ;KYQp /7ӟb"i 0ۈMP kS!`!`MjMDN8]\b୭+;PEIe)L?(!`AIAlLz4B<0$KsfJn@`[H1W0Pt.(w(R _>e[cf[*9B*H{Ε2\?AbI7ܬIywwD BI-gֈUZߧݑh2s ZY?{Ud`?7HAq6B[[L/| g'ӧd@G 9x` xA*IpA!`!`aAE--4b$@5Uo4zM s݊FI@xxI('B!(k|Ȥx;!`HtM ;ix7!nEjf.''!`!`F jM .~U hG6Mf`3!`AIAlLz4B<0$2SZߔ3Jtdd߯s+]|EG"y;Oʪі1U;`*bD~ <˂ܮ8Zmn.[)HPU6.vC3  §s!`!`^A-E--4b$@5Uo4BQ@+z0Z6Gy^FZ7I(ȭ!`ELtM ;PD=-53`M#7hJ0l!`!`ENjM .}E*Nih XOݭ#'!`!`ASIAlLz4궀j.tHgXh\5~:#ťX;Rul J'} G="&J.Go б@AV#X|!`aAqE--4b$@5Uo4zM s݊FI@xxI(4jۀ!`!`HtM ;ix7!nEjf.''!`FjM .~U hG6Mf`3!`!`.'AIAlL/GE5xD΂!)˃(,+\CO7mGzxjHv NIhI%vM˻0=ހܴk2gUzBM\+ŕFŨo:h9P rYQ,o͔x<[ .So`TїS}V !߂pa .pZT } ^꯸m\e궷$sOŭ)~ N.c=3-F8jk%]ZLd ss>@1c-cZ@2?mCg2#sU𔫬dFF]BH4tcKED#1`x^Fl?( :WMENB ۛl"6-B.Jf>w䊓iި~ _CxÕA(6 d|^K >Lm][E h" f{Ȩ4v-M:5]a7B'eS^{OF¨~& b*"բr&ga <:AH.4=.#ÚusO^SSP{}m] Fy"1)'0ԱM2-$%L⯌r嚦 "$"iqAA zᆕtVd#T[3~ rlz%f|hw!{|IC횘P-nL2r/_GkL:̩v޳6} e6?tTA5)RQYϦx.Spi֋z]sE4p1@.^:A?mJ6iins~K":b\n)U.aE+A/D2, 5Y;1^*[@NqDZ/k·M,hQ)(ɑyo-myA|38I`wC&ATRiĩ41UU]L ր L1᭖~?Hꇀ^;%Pl4f IXĉzZG94THdI &f52^D* cW U1V15ѱ4'rzazP)}Ljq}x@Y\CVOQK8U&˷6q_ rXWH, mQ9ZA)Vp&^O~^<>׮- k"g,He>4B Vt>mp$Wbdx?)M~ _<--9eM,Q̈́QR,(L=x8TAkAt>ܻ22Z؞8s7&:whUpr7GV-=DoĂkzF<^/ '@/Tl29eKPw Q+; +va0J>^' IJHheǽ^;qoPdbtsRm=2]H)[(M[j.יѲhg ,UŽ 2v+ܪLβXJaKcs΁Sދu^<C`M # d:M8IBe϶)i Ѳ;vGT! <3Oo/X$x2139mWEdUM#jWPF68^YE[VUbWiծ]v7gǛ}ݯ9W *`{M`Gq۲qřc|͊vjRXW%o;5O%nbU6Ɖ-z,f.XYՇAZӧva-NGnd~C D9z #*w˗}'Q7gn#U09k&'bTG.R;Rp9JnE"b ']Ctf8E胛B8/;d%pW'q ]"/oK HshJ_&c WZSi.^k( Þ̼ .Xvw*Pv?OA)yy7Aw2++8wȜKաP&pg*bΣo̲$HKv\SK'.a:0Hn@e~4g;DؙL:A4;$<~-3FRؠ5{RwF\:֢f.;@D[~TYȯı)rXC3ơ4kN.0 y~OK/Yo#瘱ʀ4޷}$c WBt5Qz`[u2 c]],ƙthg$ {dG_A'r7?UAMW<RӞSB]#= z)=&6+Nᇜiz/uÖ@~mHED9[.ZX߿#=ϕuQ.EW݈opR[Xo 9XM":7ZHB"|ǡ^rz3#m45@ j{FziPFso1;#(;ı3ҥN8wyȬiX^饟eT*"BGA,<"FĆh8p*mt􍇀`w53>;rUEa+ĤX.f䁾_ F>"'۟#$7:f|hkbRy>U5 'n>5O^UC\_RGk#1w&t#,3oy?DMa&ë`hImȆaWWie:"}^uy-Fdr(4gN {z(TjzօK"qeU&0heȑ$j@D$I/v^]n~pUzLpm࠾&u>V{lr1-4@^]w'ᾰ=r.4ZҤf,g {=݁2oBC,\huljoaOp=zLU x#L姶eY"VHۼ<(@ (&?KM ᛆ*~'čÝl 6Nc[= ޕtVy鳓q<OwVj⩇_)0,`ruUv= VSX4&P1>ʰ-zpĶڬ5߭w5`wH ?o}\KDݣÀ9ݟPr]Ex3A{f u f׳5Ywl p+݁Z.M>Mb}$ αӶ^fi851X𴄸oNM0C$~TXUl_a)?@SԟNQ|J Kt };"ąG)W}5?u PbEn30Og g`Ȇ"D"ב4="|+im}xG6dC VˢنpԆjh@LP5=Y9QxAI0%朽veTޒ ¡OaH.QD:n1Z|ýG:~Dś?Qx] ,F ^بTaa6NLuV1fe'V+mX`L6Vkl]"q)CPCH؋C=0 e@jz< ]' n*(SpaQ)/ZG72EP/ + 8Bd?♔(͖-T>a Ux"y5C%q*ki0*L^'l0Ȕx4139&F~bQj-jd%0vQVs%L5,Su{vU=:f@8T3 =z6n@1%*IYdxH90H?q GG'f/aI#ruW\o.(\00ȿ^H0+߱7' FJHr~EOZ@'Gml YmN"}'T;+ ]I& YDp0gb]bh= bގ{ׄ^d#m 9%!>9L{)/wb=u/Tˍtvú@']W2 & R`|]OxDŽ0cLcKރ@hRe) I*A}X}چ](%H4,os?^h@VGoU ugt>hzZ6qQXj4.T1ۮZ9<je43] (' 9}jЅ*_琡mt8?Rhrue4e(xyh&V ldlkj,cH":ϟ+V3`rs+KN*,c)q,0`}J}~uj7 _ Q,6U[\[ DTPɖw f"nad("&?M2M$3ɕݦ`O(ab󤸋ë0vv-o$ j.Gz:)LLCm'- #eSXp >"{D97}i?@}\8ϲ:rkK `Ԧ:*ѻɤqٓ ;_!t;ә͌ >RH1nT%]qJ"!HJ$z*>.jBTQQ5&0%kC~L6b=W:yw95!5`#S.ϔBJgJTw/͙|$,Ŏ ѹk=1Tpvf15 ~fD,V,Ozyfy hto;qx~ZO0\&JWj 0̃:MCy2¡(IBKf{I%&Ua&!ݣ_qD'˰o'f/Y^5oѦ~︐9c^/T+rSf88Dݧ} Z4QX+op+$Ph(*`vR͑O?_a &Q  Rq}$%XCoE8̪N[|6;4Ь-lmc!N7TPu`QPonJ LP{RjASTmlZ/f[~T/c=Nn udK3ҌD.䛯.@jv|d=RJ'ā!`{b|?m:ɝ5N/*.k0LJp0>t-2fņ2P4x`;تEm.{@kFZ0%F{KLO<Y@:3lUq2 tj&Q_y~s5*;Zowh5K$zMyHU_YU^X Ew *$anMӁ:kx,չ\݀'ʕLoS!OQdzWmf#p>yV0t˫\ܗ?ޞ8?~t"Iý0CP;yzR> |TysPM9ڐ+Y?[_D|bGe{Wum]NQC{B<rA 3ӇBŸ 4LOch:auQgQ)ΠOU*=xk/9BaT]/|~(U.:eI~᐀0Kս:,Nj|i^5Sszmgk7cNLW9*kF1(X;YlJ#UnW"O#AXBGݝܾ3:c&ipG yz4D0 +heӵF$6S zو[P@ biY$U/"yTc 1)) oFV*>]Gѽ? _̼~n nk~͙q{1d9k$: /,tPjbr~h4fs a/d&};G2nq{Bnjj/78#.S Ad'b5RGg*~'LD/vL/TgbZV(.N0%;94.wn!d@NcI8?ERp!GZo/e,BR+If<[?Ү.PM{5ۼΓSM$'}3rxLl9'xr [S%;620ˌ ,bfrb뇘LA |_Z0>đoi}Uێ^Î93xm}T= UtvOIanгvRW0hV댙~8-F- OGm.,$ S;h`&,]M^Tꅿ;it$"%Sspu<]Q`>H93_R0"f,3|b`Hd8pr+ *̟˫^bJv&|y?!. 㦗t ')9<=?sCj۞N` a$]4tqe9(Wi'R[6Ga8,ZEM; Ē> N"| ss0}r'%xz$ΉHQ8,.!W;?ݥBcw 4Oͮc8X]d~%/(#?9T&=xSʪN.8"ob4`$$[Tc#D! ,1K|]د>ȯt#M$6sW4ɅGku2;~' >N^ӶM"k0iRkcKՉT-PU6TM=ja_j7dׯӪW7 wKNpRlE+Ob=n"6{8̞*$q[N{#us-5iR&%y>\djazQ^LEBIxJ5Dk_^nԹ2lp>6g׷2sy(:!1y\Dz\wdh (+;߾)}%T%z_u,,*/XP;5@Fn\1g8 ,ys=Kjxcu cn=F97fBͳϦ'v!15 H#|Lf#}A\/ۼ$_u&6N{ӒRr 20HharF][/JTFO4߫&@3L̗Mt\k$OČ٨0z@MCU4r@n1m%'s!#uIW/ɝFEBx֤A.oUТ*O|kthK$ƨ&lAߧ(|YLUF^{=ȾdEHhC=~7B0iIu6F҈_=FZ68U[j]#Xu9r#åX&;$Xg*u}CBb~_US |YZf0 *.%±SiDs_%/Ԙ1-Q3qHo>'.4K۝kQp\ [|;ݘG (0ۑ=E(zF@p91~/UEAA8:WmC>? ,N5oע3crkm|@ ce '(L5¦t(HʥLu?\6IAv8z ߟg&5{<|H#Ǿb m4(B+Sk`׵E_žbE-a^]Lֺ6RT ȖA,2}+65 ~3SmkXv5d,5y@h JiKQLp,f5> !_ `s"7_`-RPf36( pJ>ۯ?cs !`IAE-//W3RZL0X¥U?dtmgO<A.¼Q,m+p 4Z=o)X7ՀQ< q4Zq'ZVehNZ6X^͂q HjC,[<1m-ʎeǼ,\١9(kUX 76ُzr|k# n2W;= u rd`𦫶:r6a-z`E1a!`!`ytM ;iz"^?i%ӂ+R2^ ^)Zby%2KBB>Vypj*q]Fn*Lk!`!`jMpmy:?lׁVqv]|3 PWsv?衁 pܤ҄x[8i򑔌؊Ӻ(2+D4s&8cA L`I15`B;" Xw9ځ _0veMO0 Y HK-J\p!`AIAlLFJ:n@dvaWuE^jS6AFTMH?X4a{ ә䔳AD4REH>*8^S ]ᜭ!N秃X lO;.A׫:LuD%2?1ž䳔tBi p =rFo) L~g+iϐB#Gq `ktuUS͍@??bif^2BKU9HmȈ`aRn0w ׼-qB]!vDxxVS5xe]})`W{ r7JE.wc:ؑ+;VmX^f} Win6(DꣽF+Z )@E0_n_eXK(0w]NJ|*LSn u7 C6ۛ2,>U{QQYO wɘ4_юd8&!cR;gK-oӱZ%|B2[) ؤT $ A8brx=L:,!.ΐ7e$ 4`fiIaq޶vPlPB|_ G.[:%vK@- \!卑'J>Cp4]13֡1PoAړl[g*YcK/aӑDLl模Y=m.~9v+7t۰G!*1G*x֗iY(kX/q+~"ՏSNl6RMa:S_5h^o3oVzIͯ9Sxl1#<Y @e ّ^0=̌/,;ɱy3"Q423Mn{lŃ>偳܍DUbv)t I([f[ P"ךEr "&|=C:|VxW9Ӑ_Y|Ĺq %# Y>G6\{/ut~TFdQȧmĈwjN<~uUOqʕ#Sm-wܱ"6\K hd"-T(oϸ%nBjD{";?ᜬ=f` r3 i75ٺ 6Р9ߍF*C/b #ʒ $A.S 5߫0UːCFM*fZwH i~C͎5$vGL|bThWZd2z볊[k6CH@,ϕ듄F @-{H\k5K濡a]hY9XUuY 䒸qh6Z3zܩJ/F<'`oSWeZtNsNZrQ|0|br~]f*ԮC&~I,fT8%מkk;՟ m12fD4wMM74K2KWa ma;u 껳WxQB;a /Ju Y9jDۘ8,.*uKփn?s gd<'}Kޣ\>E4[]eѝ#0 0p,\B>\=( ɝlA@7v'cͨ6:?]E703NH֘"YX&mPuHa^ڞUhfbsJg)GQH|r R<@ͱKޤYs/HfSw,B@&L { (IO4d50_~~d'DrEd`Q-k..H-3Ы >ln5*J_"\ qƪ+l 8_).DwadA#]45D06tq;zUE.L0AF='2 tRǕG"woNZcs:GWjSFeI.Elnb Dܘ|= ˭3uDUDor+j%P P"L2;!'*$'Sʷp,5_}uB.B32ߔ0/xWxafQ)q#Ody}#=c%CL8_De߰N?d;%/.XЕ'$_Ѿ+EJMtGqBO^hQ*P1g[qʛeᬛ%8Mg_;kR\"}e/Aj҆= @X]wXuJᇯ;u ڄύ|:q@44^: ^3`ݲLd\DKز^𽬑Aǭb"+P>K,I"H+4FM~bQeÙ^"IC No B`S[Ed+Tcg }ǴJ($4rfި#a,c"qؼSGDjpGn68&m1"jP2 s׉ k21Jر5GRUmBVJT[$ϱJ$=/9sNW[ELdwPZrsB;3Qޜ=Ih-eٛ'k'&7gL~f2}݋`f_Ǻyoo% y.sB _UC).Ot7kq.?Es(@)勄|M5YD::c \Uԅ4hzw=/a JfkAR/^m|{ѡMHj:s4)#w&jz[Lwa-/я@ 1i*0nO1xGktxLx2x h7LnDx2f}Z=[ ;VK_7}ԑN?֨D{QA9=ܬYM]>Ʒ ν1urejS{_tglԪΏSY\WR4׽w+:hvOSG1Wl wW~-_ V{8^rTD:RfϱC?h?DoQ:@䯹B&t"1)_ 벱a&Ue2MU$YgÙw)`i TPʙ՟H,sXò^qΘi[aAhmÈw ; \.Ap"Q~}ll?GqKߏp͏lT*ga帩M E8wSwCO|,8\:ȿ$Byzy3ł `䷐2]Mizf(60tĎHahqXĞ ~xGԜȦyqzܢ]Cku0u'$D'jb/Kָ$sJvFbëLMSL0»]#uFxbu(#{]s mRЦ!7 ҍ%PZp5ߩwcF۾D@(baL)eM-JTŭ'(z5$4YS_##4qt)b:bX7zbL`R RWKovZoui*=:b!X=9ġ只{U4_s:"}%;UBWn/$OYQ<12i\z?XNzӯ6:(It~$X/XH~u 0lGg<Fs"(zj*6bUby0LE0`aUW'Mo-olJqhx&jy`  b}A"TdUZ% .wnS ? CWgQItJҨ& 6@@\nS*&/]ݬA0B|PN]HǍSMEև؀M^bqolRQ 6 +JTR1!P6η_"K " 9| ٢,N%OH/F9ns)m QG|@?yY wz2o|u5'0#=5DDM"g3xH\rPy+BaJ5K475^>iC{g qJN+܏<re9*Șr>LRW><)|Ҕ'@<{*6Q2&~z $Xle!j؈ gWsZ{gGB(]0`멜a?]a b0rՐϘQUg@ߨe(L=ljuDm , g6 ՊP*U&$kguzڣm?*!:AnEO0r]>{nl[y+w YA >c3#MȆ>{0Rj-Ye.14lo9'gskub-كRq(=v:p0=&Q~3r PkIKN/_h tа gC4e G! M4rғd-kIpE8DN#׎?,.-8$cle'aY(5"?ڼMPӪ-Kԯmō],64:%jMzдቡo9}X>o_d2:3-65nY8d+j1i9|2H@~~p6-f'\/h0m9=sZ(vNC36;$V@w#4x)`VST;]i7 O Ȱl)gG^t;a#hoI@?!$h<|׫Hhc:+X'\GEWɞj9@isk:(8qi4vlLQ6*GvBCLBz5O_Ͷw^ab2mr(9OYP"3ƎH6puFO=OxѲtwFWsA |@Ƈl(d~j:dZf!v/aNvw!q~.n^'^ׁRl [ߍ~;m[M^ʝļF؎`ͻ%/$ H%d @eHU3/䞣 oܒw2{*gEeƍ7 by06b|m̮Kl;9N 5X&$κF^xt,FѮ݂j2<&ջ.$+Q2?]7g^sh#j-`⼱AIg.n}% 81/'dE񙮏ct$…jTx6QX<%_taA,W'T |]uQG x0|#eCyo}C4:\LhkIg0&W ֤WN;5aIKG%alxMV|j? xk.$(@,ytP)9VugiW)츉iD'>LO?1%0(0X΂' 'uhdcBe`A",Z$ X ']s8s} Z7o'$A1\eC&#.֯ȀI|v5aZqZ🋴iqꝳa%L̍Vw%wpZ^Wxa\ѯ[7 ֣ ɺÌ} B|l&up=`6Ƈ%]{j]%NP?K'wB.dr]QPS9[TY>̀k>o2}bj6Bًį^E|VrZYLH>,(y u2/oDJ`cԹ4cТl/ϲld.Lb)lCi֎)61+6nuAG[Yg;bƴFt]ѴOAKLT{pUiJƝ7f4pJhMl#RuJv(6i҃Ag/ϧ?RڡP+a!`!`AE--4b$@=@X. (1}]hy!Cd@|)9-ncnt1O8=R00η I@ Sz i!`vtM U"L@[lׁVq9G%˜ o,JrŸXhV=@fi~[x63th ŰHxH!`!`IjM .~UsހOh:WB(!`*AIAlLa{n {X/xxgv3 y$-S\%cBlc u/о@$'?(kH q owxd`:k7/|ه_'1 ;h{4mBM7=,j='KQtKlD<E?Qfy`_lrpYd]PU:QOvi"O~$L[EwFD9!^uWݍţʕ`3raH6ܯY$Q&Rr7!3GQ34?6dug=g8W|ոއ5l.%@B ucݗ,rY'bd/7 C#XW._ʨ|>F+ aA j549(u71M0,4ôK75D>>(Ls^S;OBIAR(߀q?D ȌF:H[!`!`bA-E--4b$@R-=zs6۰0;+VC?F^A-U8(ʀ ?$x@}@)!`!`HLtM ;PjvPAzL`n<5". 0!`INjM4ȍ!^rDh;@ ո#_1 P!`!`ASIAlL* ]^}`iok&E('i˵u% k Kz`%xן*eDR, F=WDn`VEvidpK;z 0 jq(h/P!?a혿hҚ=#nٟ9R+j0qލ( 78t6 8X »ZtxbSܺKnwGec;W?rrXR٪(LI2qaCѷ(Aw9] #M}/ 'P~"@-dnBFNꐈz V1\%]AoDLE:!K7puL= !`lAqE--4b$@%FlE) #CZ tt\R65m#@ ۨʚT@!`!`MtM iHv z[EwFD^!^uWݍ^']OABMR! j34ii*ZXU`ijJhvl*A-v>B0n<O`/Z.GC9/&p) v{pU6Ʋ\\@=DG#~CT%kJL9zo1i3fL nB'W#)3roKҌOf2"Xhr]`B}h(7Mɪ5n8Al`cdvmI!`iAE--4b$@B $\Ձ#_Z|\Fk/>㻊M]0 .vhV]ހ@@.Y!`!`MtM ;PD=-5O0I! 9Mc@!`!`FjM .}E*Nt[!Y?J- !`AIAlL* ]^}`iok&E('i˵u% k Kz`%xן*DR, F=WDx0xÇ9{4yIV\0ivQ?SѺc 3y?SW#Ԡ@k3)G 1V W[EwFD9!^uWݍţʕ`3raH6ܯY$Q@ҠB=hsLi 6xl?($ ŭ!`!`ZA=E--4b$@B $\Ձ"13nK@JM3nS9q 91I!`!`G\tM ;PD=-5OҀDͰʺ @ !`E^jM .}E*Nt[!$ ?&$!`!`bACIAlL* ]^}`iok&E('i˵u% k K>I׏6>l QI Vz;Avdon"b?V-P|"AP'뢇 vmq%Fڕ!֦Ill!RKG Jo_k$+\D,5Hc;EJStr(fu&G`κ\ xۛIfI!zmVR`HJ! 90zU l">V: UWZxf2Vɸl w%>^P#9!`aAaE--4b$@-ZETepFܸ:BX[ V" @W \`A7d]!`!`ItM 5Co$+A![QFrn87@cU!`JjM;-:5_~Y?e (!1to!`!`AIAlLa{XqƮ`;Xw˵-3%m߃bE^}S%#K>[EwFD^!^uWݍ^+>C+ژRSxY3R71 Eْ+@/>?˔Y̗-:^Ab!KK|ݧ@\X#+g##!`!`ZAE--4b$@B $\Ձ"13nK@JM3nS9q 91H!`GtM ;PD=-5OҀDͰʺ @ !`!`EjM .}E*Nt[!$ ?&$!`AIAlL* ]^}`iok&E('i˵u% k Kz`%xן*DR, F=WDx0xêUH-ԬQ@e ]-4\>GzscZ@ XŇA7CP*^ʄ܊D1!`!`_AE--4b$@Bk@"iA"M%OǠ& ׌=# T<.!`ItM ;ix7 BH1~1sXHj!`!`H jM .~U }o` n|FA΢@@m!`AIAlLa{XqƮ`;Xw˵-3%m߃bE^}S%#L>[EwFD9!^uWݍţʕ`3raH6ܯY$Q@ U /hsX}[ve0Y&o-L wTə!`!`[A-E--4b$@B $\Ձ"13nK8+ -߀u rQ!`!`ILtM ;PD=-5OҀDPrnpH!`ENjM .}E*Nt[#̀yu@!`!`lASIAlL* ]^}`iok&E('i˵u% k K,2hN*S0\Tm܊nq@t0`,n3$P)_GSB37Yp1wYܪch*>%EoaߩcÆ&8UQI)2\YM B5(O} ^GÿLʔNy0x$YuۿFkɦRkj[0CY ūIS.brEۼ,cEf 8@o%ԈxZ˦nMឦ!`dAqE--4b$@%FlE) #BWW `OԆG"?K,/}H}@&o!`!`OtM h0k߲R~,RR,n9ϾP*<u !`HjM .~U }o` n|FA΢@@m!`!`AIAlLa{XqƮ`;Xw˵-3%m߃bl@V[^XxBj+x6L;$Ƌ\-B,<0G/*ך^\g*%9]"y0/Oժ\͸JJykvBGHO@DbsZ)&!A!`!`]AE--4b$@;R=?4p}-i՜enR{T|/4C{6RE6hCVhN$ТHTVJUOur!`!`]AE--4b$@Bk@"iA"M:c+G U(jP~jK@ gF!`KtM ;ix7 BH3ŹjZeB2!`!`HjM .~U }o` n|FA΢@@m!`AIAlLa{XqƮ`;Xw˵ݾK |r Yh-N9t@]qy͑`9y %\l{eJ,m\Px66:6eu+Z4)f@"l4Pt:iKp؎Z[!`!`[A=E--4b$@B $\Ձ"13nK8+ -߀u rQ!`!`I\tM ;PD=-5OҀDPrnpI!`E^jM .}E*Nt[#̀yu@!`!`ACIAlL.ڡǿT(w˺~g٥Lf07~TW|nD FW*@@Њl?\`>yAo SYBD!`^AaE--4b$@Bk@"iA"M:.O@=G>q4>2!`!`KtM ;ix7 BH3ŹjZeB2!`GjM .~U }o`(TMr@!`!`dAIAlL%~1K^/_aM޾}}x%å{qkZr g4d#$ O~$X Vw˅3:̢d`g. 7hZRא:k}ohme\QJ ix:IU [Py ""C[]YGqbBRu M 7ܭ)/&dACs 4?*d{ G:q+<ӂȀx{ 7xLʃd9RwHfTO*w/VaDSdУ},rXcLƂoLCisMťOT!\?#RlllHc-JAӧMdгSuR0-MtO]ױ-jN9Vr(G@LWz W.?`Xע.NIY!6Z0.&Ua9ؔLFE▻T_obS*FL"P>21N 4,ܞ&βJU^߹,ikr.,A8:+΂oSa˨'vN4&]!zaPmMbg?M͗L/͐Ghp̣ƀXBXp5x1+D12+3^P(DӇYVwmVňhmQZ,!RtRct*2$p`!F/ڂ {0v\&B iQo-ŐSElkϑ:%G`k`$1ve:"]U/@|LKRB&rnOm|ޜn3;)hwX #jq:"7U;dp\ -/Iץ=d^pT89Aѧ>:*KJ87\|}:(E@mK (nU$/iƱLc.y)xYʸle/x7"H=h31*v]z?L򶏊t؎;y z?΋@S6^ƀ 6glLX5#bf4e^&`:o*ΎHV+_ ){kʿ;RZhԏ8M2#fRPmNq.J_6*68ݰt{oخor[9Lb*hlTmzW1$5/&ZN:r,'ݴT7ƿ^n4 Tbl_fnz4fs? Y+x\巨q 'QJ!ָ"pS;H5WUXHkC̖Oa+y֔Zqgj,mg-C\X|gY?#nϲo_9`ҽH#8vA6΅{LS'`h>RWT+/sfא0\EX\IJKI=g̽/Rk' Qfװ 4{r@lda+qgܶZbYYP"w,Z񊑤ak|_I=aC罛'6E=ORiϬl[n.YH gR 蛜LU +,܀,VS_j;$*)bhyԑւaOn恨f uϾc;OΛ_\dBzRaN!6ؚ(^r= m0o$G֩G%*k-yހr cR* [䓳 Dᇬ9wtRr|68g.<t݋+2 8sO)/؉DZn6wF֞ m M"> +M5rpLC5$;fmk^g(T%o~wXH=%}BO{(:߱ !)aQ2 3D5S 5a{iJĜ~|V wO HAD]/Jѵ$۞H)DI~Y~G";N1#^ĞAhAH)k}1;Vuz.V)$(Ŷ"}xvSɝf}rmͥ E~>D0'|z" Ɋ{LK0zp;B?ʭ1LY$5XB j)8L[:Hn[nh[|aR{S66W|s>%_8h`BR}AӦSfOن$Wl[q1Jo_LJ`Õ4KCC[)mOoІT1=e86|;Zcc%'־J%&n;{) (i ?ϫ h|bUe둯:c x9qp5!8kWk] `&[v:!e71T nAfްԱ?$ COhجzT[쉍Io|?>5#+Eͧj.JTj!_A\kiKo,$.w^`pf3Vžwl?]Qv%cBǓ|aF$Ђ!SY7o<@e'g[bNUaÌQbq\pН^{\y"%ʄ| ON޲z凼#fk^S)%.1~js0G qҕ-/  ;;8K/w Xnm!&pQHV 8ӉEA6^4#>)EEG#~->NҪɞ+6N E7rqn e*AibIV5> rZŶ5f(C3/>#O[<>QϦ(Çgը2"wuH#U "*wU\2A3{؋O 8P^ [*eú/3^,*'РW3e8y'ױԨ`2gofiJ7/qsF؛r=\/l{[m.~s:ٰN{DI F `M u i=/4Xopgdq6i9>ac]i|;NN_:( ._eM75J=+}Gy@-U'XQ`oχ36XG<K3v+(a|0g\!JSЉgAmeֶ@]n-|v$FD;@()V]x PٻL/vL$ ,$=BZa5+rҜCipdL, la($ 2{8 UJ wIVD{ !`!`AE-=1[ mx0<9TV+ ) EdQɗ.Q>j6:m ‘Ǖ߉h$ 5?jQI# _"y)]:fR+lytyohr')2ukok  HH ?|#O,PZeP3He!`tMX IDb7׺8(\Ē @0R,5,*?OnR|;("!`!`jM^&#ʻD2df*d^eF(ŀ WcB>{+ܻ{"\*"GjWi4pP,Ku@ XpWfaa35&a5S,\$ ̓L4Wo}bM}cUے@|68u>ATagnU!`AIAlLhC-13lH𿢝 5@^pk)F\1}.uzо1oJY  tň,|782ӿ)زigEB=eng5Qw`l/pSD´b XUu4E`FB7 T@{0 PWVY\q  "b .\yGB\8>R R`m]Yx~,F]|xv0U;<@=u9gT*}8C@DSQ^}cnMM׬eB uIОDW Tp1~ӢZ .,:/QZˏ8 [ : KQXUueO}j; ݆$ל'& :bNEʢwO}ɣtD80. ۑwɜ}Vgmn,e[B'y~ Q Zߝ ] $ >җoOQ 2$zMy"Jc%h^d*pq0@cC G<`wTssѼtvwu(}ʑ Q>#* ۱9 tM9~~;)R+0Veb[I.i7bzHŃ;]7 v0Zʁ_4e Fw2 b!`!`AE--4b$@u$"C#1z}W;>WmoJP9SK)Dx4ceS >6i`% E $լd!`ftM EPqw-41jthm+ڏ{UK. tó).J@[L>@y q!`!`U jM<&!R, (cJ?CV(p _t,@,>!`!`+AIAlLKs?*÷(+ϺdW 02mh`CvDGP1 H 0eBW~iE-B[CX a?vBc-/ڙLidZ!e_/|pC̦ؼ9dbQSVW?Af얃ݝ`. 3`%鲱"ު9 A$HVI_}b1?O Ԗ\½ţJ͉5Ksԋ9n<#qRY ۛs6i}R$߆;U0r a?w.u:p֥;vt `#%jbOe_cX"y+J&2}{NAx>s^Ec=ـ xr!`!`AIAlLz4BJAri(*^M-mu!`!`[AE--4b$@BqfD%zP&m n<` JA!`GtM ;w➞yhUO׀R @ n6 !`!`GjM .%lQtI`@\ɡ:P,!`AIAlLM1Ur@cT B12<CKB=;kmJW]3>Zz+܄VGql#56T0 JVA]vikǣ_N/4N 3/gE*\;L|IM UU׌=r_;nLy_ uUޫ CcH-&$!E.)_<5/oKJ \F9]O=+rS+(~7xy`o 0@O]~ӟ^DtГфpd J!f8{Pu? g}LMKLy"ivzwՒ6 NTd-LiM6ABMmEq{% y>2G?6-pJWxr--Qކ%-A*1CH37b1a.#ok2xzg=ۻsb;DJ@{gKop&ʤ@VyAՁ\ ~iy<<,z( RK4"R2ObݸA'6#Mqz6V-`.ņy끴c(5l6~~-$O8nh<1ԺEJgEd`zm ß4OJ5Lc[ى;.T~Q2u918poc08/@.F1v##m>0 JH0|s1_Y{Nm6K)kA\1l@p+W΅8:'|4L+_.'e1*Eil+6_:j'B;S=mN@Z>MD 1wf?ysp423xM:E_ѷ%lI!8ȑQ3#\]=4޼r@Ѝ7+m\spU©vC@Ŀ)ZoS87 &*a_ߵ@L*aSn9?;Sc\ .HҖVF<(lu v ڶ5(ݳQ8i2]pί(cŅWHADtmhfz /Ϻ٩G;NΞZ!,LL<^A~cJ{ߺZF;z43'Z $4Ѫ0)V/ASC[j=faua5&N DLzD(kTJx4/tzzW&/3'K |K:nrei$y g |M)G/MM3oBr7A+qVY]~9ɊH4-δ=m[[c]ʚ|_kpn(#mw `K: JT`D*HtbQ.cfo]9 o`RPB@!8%^|mSx0ˌx,G杼3BFހW/|zQeJ F~sp"= #<clFI}B$Wj'wY!7W77ʌ$ܢ&U!M$J"g ~nR:G̩W'aIN31I1Ai]giW1V3u`v =>8 f@vUB[Ω$z8$Vñ";TKPDbN/ D(,= %=T̿~'P1>N|:ᢵB"L+-oo՜SK^'4b؊&Mjcӹ睩Q 44`%)|Ū赽r_C#( ?/,)O!Sx8yZ6+: ?8: ABz< OBz l#dѠ8BRI+crto˅N@E'W.&J|^Q/3E!S;7}Tk8A>Ja{-CA^7&/oҢ:ҺA"2U^jgWQ˧qNE;ȀVec<#;|\^KTĪf76jKS_HH_}_M1f3age{<T0+ں̉˄N{w.=cp(XU\GvqӖξe]R 1mb=^VSE4>Νc^&ҵC8G\]ǧTB/Wr)R 8:{*64I7f 4b؜49Kcb}g %k`4c|p3XA'0)F'1HőР1 |T ЇL%/޶(]u kl d`6nSٸ VîMvI !'67VqUW)XY)N"!uiGZͦMc\WR@Qmi$4j Q5mTU$15Z?Iɨ@Ҝ(;c ^)`-= W( ^*I#7s$9,lH:~iӑrMveGPpỏ3?;Of,ɝ;kdЙrTJ*2%*#? /~ Z@1`!`!`hjM!Lfފ k?R@u{hqh!`e+M#1Ŝ/r_PՍFK2ݎO+P_>ЖbpvbX$bՀZcHi dJTh{]}̎I}cxLbgf8s Xv16+5QP2{0|ݘ)yrmozng8WE/ |]q\J}NAkL.@[(?L6gfFpyHO+4wZ#7J"Dz6QRVAx>d?%Tm5e |!Y=W/LQ6zyrlXÝ~42*Ev;0n߄P r-.<_R|8ҡp_=՛h5 >>Senڢ ~+. FvDPDkxCO{Mw ٵtR Y^$5hɑJY_iDc99]WvaB' J[٭JٚpyLECr^9֯<ڷ),r47Y5SmfNFYg4ՂgH[)Țw%Ͻj~YbFxf"'e q^uҷH  IqK 4ϝyF| amo4~)%eL~9 D@L+Vu ^Юե@h|iڪާPz kBQ@ B<3_ǿqZm?KWF|\;LŰiC^=[]MzɉÂ#1;sEo&>ft3&Bc-W%F9bUezJ>moAGL=HWdZrs!Z9}[}1QyySIA8N w"AUĤc/V#0 }:^$ף\E`rl:J\g"k26e(VJĉ'NZ 1m[ᎆT|rjL :;I#A}`Tr wni&`1# kM`\$z5֖i4"o4Hܚ5$=D)Fu3g$Z8C )rRv$\-ZZ8/I%瘈"輹ZkcU~ `Mzz Y*d)}[Ĕ^ѻ[:Cj^`h#?Drk Ԗx\XGU UnhZ웭V e癚O6$;V-T񤿧E7seE 6^hM_H۔NEZ_"2vD^4z(r8lV+C=<]NWLj0f'8geEuylU%0c $M02&4CyuO=ŸP.* 3?tڔ;be)И>'n y@qWIO!7{C;QgG,[ Z5H< CHMg K Wz(o)f:4:Xc#>y8̙pX.%C *N!>!s+V``ӱ<箮gӱ]i䄢(Ф37[ C}NMcKTeg@L$zʖ|V9];ƅqx94'p9@؎!%MnqtOeHE׏̸{~#<0;bRx*.~+5a+ڊXD7+HJvu|?TG⓵>=ʲO#O7YQȃ| &}%= 2쮁PUbY`V1[&B<s>ff캓`q27)mg\}͝ HçŋƟ1G׫Inz㻍7u<'0TGSӇoN"n OrFƫt{z0J8`|#n--_(tWS،:#riu@" _Gk"2NoM! MGԳS)uiO]2S`?/$,6GtlK5u﬐7t;JyRo{CRf?qq ̰,W]1ӱ:GGPԩ'i]JUF4?7>vx|Wp.rL8 zIz,sEngMA#b\.d[!2eN.&YIztQU,VuB@Wץ:I7ڄV N_Z6{sy hT{'ޘ:i3O/CLxUQF>J@sPh%n gqѝN:^jwkc\¿ibVe 8*H#Z5 pn$Xq6 4𓶚3Sf#R=7+pw6DBؐ,> d)7Sž(Tb䊲]w8&a襧e~1MY'jw-/ĕc Z]+I7Zv/9O$N0A0z=!`J{Q+| U`1įۿlEs,\dfx7֕qS*XMӕͅT/Y|Ŗ\aԢ5s$_t0삕A-⨷Ip> P}xGiw%r#.VG61Q#~4ZkIk1^\Qn|_ h%8Ը??o}\>ժt3o `H .访Ͳ " 0Hq1"EiD+lOwU]-D&X-8sL SHE#0YqFQK+mHD*S?2zΔο1X%so"j% ̍'G9EaS}gj]$56x͠Véa7z$5+LNxJA6tnOV 8I־GONK1LlI-IOQ9{46jxӜOہWG>=ACO2;i/gj2U򴶥L#~ S{t\FaTVc|YQg{)y/63JbɗBSF{ٛxe2S@x3=}~J?@,WEYLH v+` Odָ k0Ώ neOof0U {ֹ@Pt-D,1QAuW>=*s&5v\`^<{8U'A"Ͱ= :B&!/S{2Z ˩۝>؊ODEvR8_(l~@zyI[m/3s rv~?`/3 K?]?>.+z6#uh+;0;\[){<dhOQYqMP7j\F\kөj13AW*ث~zj8`#DD)*7$'ȘS560/`Om4^f׽rYT2NƆ׺&ΖWẑdgq>@*G/$G5vzYB$xUŞ0,qpY)k bg > x]O^xO~m0&ԷIw0Cs xy L2G,LC Uc9rI ;6վ="b{G>E'e)*Z*^_Srt^8`,Y\u&ʶw: C K .Ň,*p0ƋN0CIQ+Ec=6> cnLY1\Y&9K[f,̨DUƖzNo2ܰ[O@.RTz$0f#PT"1D@>h)̩QH r&SlW#+h#ߦ839T#4Y kQoҥ)HW'/"6˛'=ДCl8XuwAyE(l7 q5 /dn퍛jAVZ6j&ޑClnx1*W٠z!U>@Vi:OOђap$^R1qyz7n*><8nws U@}Ȯhe ޯ5 Ċ*|_E\咐%@֭ EP'K*ʖTߍi(#+榋qxNdOyP Y}ۛ,)a߈3B&QDC [^Mj?kai&HQ\tS 2N9bGժYf]x0_ã#EOzre(AsBcf߽$\,p$ur>fxI V}ui(.gJzqv+On>r,UQ8*9TC9o'c p =mM4+3s5Ĝǻ鐘n1$RϤF6ɖid7%rytu;L wMXÕqqX}3n⩷#J|@1Sk=u~2EZ2Su@ 6iԠS3 izra|6|\ݷ>Avz4`6SP~9ϷTAmQqHg>QwRr=^@R j <3722>?%TQT*5GN J0G&h=)aM#o4?9p>!Sov~4D>Fx{"b^(z&.p:-Ҩgi4C _$z?;{PW_uxjDU-1AG%` ĺڜ&Qu*tk~&w/?poʂ礔lǸ%=K <of>d b;N80\uvS?8@XzL4k%QiiN+J\ܺmOE5= kz0 NW' ywg6k 6}s C! ɢO_(j5]ޡ %PmfOKr/_%\k[#E)TT+?ezau* 3!`]JpNl|Ԟ`*^i㭤=nv Kǿ.)frbMD<֢(.7Ȧ} 0Rg w?LB Z?g͂|nb ўd/"@^%ȩe*B$)»lr6'Oܽ.es$BAݘJ@rCg vAe$;0 ?`Op|'/RH ha }wSKǙ|8r+N5yz~;)"@^0S2+ȝˡbZaX|@3d\`+=AKqGCY&)5c~Ru~Pd=%ӟ@eehݒ"ϷF-O-^tOQL VjӯYJ{P.Ά}$Hz3 zC0:QE-Ӟ}<`6 Эug;&H3U}DY+d]; 7e!= p(^FpH%%55FƳX|^C %F^R7 Y 9Z@"W9['>rc.Ah=ܺ5c @ZLAvESrqC\fuv΄T)[o߈Tk7;A&x"WE=ZѵU됁X5) 5![AouphaH>i~b!"@t`B*Yj~H,'2cc.#6ۄ/ZݩZЁ7c&H]fl:gɗ ӐkG2 (\@:z}l̑cʇݯ7LfD ӻOcD)8rAh`6 n}tgT} 4;id=ZAkòc+[ A#/GLAHFbwP!N> =ua*t%^/BHKU\nЎXRUR\ L1?!'eh ]$)UFI+\@PG!m^q [DP܋ t-)m'8L8 ᚌXa< =R8i_At&¸VJENu6nc棪ha_wdfyu5 Ys4zxSi q E- t~**T?@Gj(K Hx o`w;qPtfV\0gW7Ri}{[aftԐ "vδV~gje;D 1tɝ}M>vKʯ*GK{m+AGp""jy~d󱛸 qAH㇡e|P?)vx21Z!8=lx鳄}ٰD1ݑAy?aD>2 )^xQJxOho}S|6GV:DLnHOB5B! KH9Ju ,P #[k 6( o]-NfJ*K'Τ$ ,JSݲjYB!i`d,Qui~+5~u}LQtEkۭ>zDF$*`Z3Gڲ.ۊ~o s 3%xg'9lA'w{lFľ.{zq}4-ΗUJ 8koXCR`sl-yx둒'"LPY9l?9BXV?wb4V䕟%cwmAW)K}Պ7 LL`ۀ`U7v)!F7{|ko7}&A@Ll@t .u1N\>)4hp*YwAaҩ03t*Khx/k0um$q5mW4a[qr*TmZT>~Sùp&5?)rj +ߥБ>x ks.^Fny4`rx.DM}^g c>".nA[o19mC4nBƫ )|&uw`B̌K~L;e J|Sf&_ݒo=n;mK,dU1 [:z;16X z\I DL٩Vٗoأ:<7GVG?IG{-ʗdMH? |l؂VJ0/bb[h\UCG:3<}1af2u% nǜor,Pǥ ^0Yx`L^8K"F!} U#.!N] -TlZkZ 7,`H `G@)Mkc%[:8ev(fG<6r/Kª6 mRN""^)`QQ X9 ׶zy;ddׯ*9 QCMTWyy64u $AXVV~7:RkViM6@X&^pӉ^*C]ud# ?Z!_d:Y!];HiB:(6Wcӓpk>Lxg i.s( .vqp֮M yU:?J}|7E Uub\f=s5Ł*4)f鐕K[`-IES_¾OL̖&_3|_lj(I~&x SYLĖLjBn f8;vC6`=eJ#QIk8bo* ,:0vxY]im2Fni}yvܸ |rYꝈщVbm-iD#|9+d7M jwW?R'8 Aj? Z iGpܾd,vIgnfW^ Sik4Cc IA9=YOs\<:&6,#{ƚ "4B <{) zp[[Kr_[#+Z˦ԲWWnVNWoXXv$ᒌ^CAFЯ8[bq@V?9mZkQR $Jt߾50ѩ슭gys} o+t 1 :*@?9p喚:Z9wyG{գHN!bk~uQW~Q%(4wGuQy,Å%h N 밂ғ)l de3875WL4ȦQX)lW[|jվ)ʼ ,@nZZ yǖIDž $Զ`[+l w+(e Pyϣ6*W2`&Nz[__~+,e^Ou :2^.\~s3*Rnw_aM"v334b,*֥eY57S#n ]aq;oE;>f&itTmER6|3ƴ,xu(NN3*d1.QBz3 Hru]Fwءcq00n Wj1ֵL( G7e'B7[⏊Zgz(NuKZT i~V\wvUv+~QeN(;M6x|}(bɬg8~B;X}ġxKbz]xyǞCP[atp+L.n xbVzv7c̨ ]Lx<*a:gc}X#]>X~K2;0ᦎBNq(sh λgXEo1_W㸘םƊ D-] %Ec*#~e˲ 1Ώ]Lzja*hJ0Tr~ӣ|>tzȾϨMKGD=f~$}Α?XPyUjH'~}R:ue\22?o䴸'U̱cdC#*Ip.&,o@|Pc$nZ P.(4o3AaDzrzE rx5؜h}3EbOlC,\x.HI;͗dgHsa|͍;nILݛ1Ϣ> (>9v4kSe(I[ӇvvtK 5;*~6<:k.ڍd7>ѳ20)P"!{ slUYAkEĩ謁ɇǽk_/ CW1. =bw olF KSSGK\&ȇ5Mq+>%WcNF1}< wE96>>?z$4ghMY!Xi)Ha6 g_ؐ4L9&z AXaFR{,s*γMzn;܌J8 Byps&|cq-euB.:r=t6_!zTaxntXVRa"Ll 0 <1P_%I<&sP<*06A ɟƙݢno&qADiiC /v1i+B(t]+\,U*c+w;l/Ճbr#_WOky 3E@:4JVsdfl5{]"{VmkgFFAtHx.YbC֊Am y#3 E;Jb~*_-[>1=m:Qa`+0;&fLHD#F5F?km_z x>DIξ)92R&"p=5sF_i\0Q-]2+3k5I`3&i!#a4D˔ʺޥʖy$R~;ךq$tBiOêcjD3t'`LW/$Ư!&_Al54"9D2"/6`_~$ w;n>E_L\5=R}=Duœxq I* 9#U6w^zDִȶQ辚H),] A&>6ϑvs!:쥯 _% ԓD8K}ӈLC*\"wK{pzT4x5IZ>."{{ 1&pd܅|[zҪ7=:|O'bN-lhZs,- }b_ݜd\/ Ej{OxјN7QIQb]pNfyhxN㝠G*:ҢNz={qغn((c  _gK`ZzO蕌yar;ܐ^Xo1һT 1[ڝ ewiaIPClbDFJ\L0% kD/TB'( , e Arf8NR8HeńSԌ(kH޼$*=V_VpcVФ BUk[u D L rVC= ,"ZC?WqƈQ/m~<"uH8 -&w(y-[*v^i 'cw9@ ϯp ]2:yAQ,jϰ<'UV)fXEY$!&db1Qؓ|^c1M+#|av^q;71cDr~T}w_N֜a-i<3Iqs("y1T\eᙕYOi|{ƭs`1eكlKx.l4oHVLZ Ҙt#[/xN} pk YI+^"*VǝO#?sғ0y˭JbUkgUYLFwhݯIy QB J]Nfq5JRhy쩀.. t%H#pTz:,Q`L! :4n[9${YͨMgn ߣv-+JagO[ h$ } ekՏLQk>S:'7*=}1FuVLog~ Ӣ]j {)i^F7l+bqEV5M{ķVXm!Ӎ[6Sq@g-HݽwYSGaDžeT/4S,,^ϙry߶Z1Cw!_h[[f@5Piʵ҈yA?WCP)S\Т.gL3w۱`/l\ql}F*=Vp2Egs>}I%E׏j!Bk } ]X9U(/О '?{hdY%@0>hI7aӾ2_ؑq74S ao$GQw]-\1'f,ѻ`wÎ7\ku 8C֓}Dh1yibϰ(Y=p=ъI/Ky?U wɀhMŞ}HI=4*:bکqe ((/]_js$\?,qޭ+Z)G۔~wa T O'{s<JP[?x~{*1ѠTLuo.ڵa%p)zhHIEi/Y.nkCZ~q(O!5C{]CC#OPU&a*(ɩl$sq"w[wWI,!ZBs(vj{R6:3t˛>,hqB[A]ڇ-՗ok7#iَzv:TPtXܝHK˪PeF?,xwOAqc!h |_s[/6T`/FRk wXg[]ʞΩOL Hijvӆj\)]6h$Pah+fMIVl+\X\].}~rp]m5f 6X0}ƱwiIJ|rO J*=9`zVD"1"%u㕃j!Hɭv\|KLz7uvB0!*XT@o=9Z3QGP(AEK ;An>Y`ؒy55I7aibѢ7'h Xd!mʫwx,q;ǩJ #] G^?Oןz`2k[(I@0'pi( Մ%K{֑ oShC`@D"YBD^`H͙~Ӏ!91Y+Y|YhণL5vX8ʲ埳o%U0rTe'v$.-.i仈zjj5Uah$Ah<;헎" >V:oЊ95q*{>˜Nhd cG'P%8`%ۉ.Ƽ8s?:h{vsޘ8qj ϱ=׎r]qLBIWe¾/+,)`^Q#}5Z^o&" =0$z[d2li5ЈV $1yuA>>V&OۉYn!-=$|eGc&Ӧ |dXOV-ngtxMS:1PQ)Hz؋Uh0n ZU¼j_X^/;QFU5MOک"#0dH뮷H;iZ΃m]mUK1gasY$²Sԕ*]p)xژCv @HK?脙Iq1Xu, w̄FEFq3E{M({/Cl*h6'Xwt~Z?I/>QF#B; !W *߇;`5ӂ$GH<#C̭ŀaY/)KalqFV[ƼBc^[twt$fPrlf%+:kJdb_bC1=J%/dLSy&M7؟P=# ee۵BJ-Ma rغj. NUkږzuzBZtzj9.ujY%QTb"n]ϊ˫[08Ek @Yf^}nCAq& xI-ÂX{#ʅzU2SH]Oũ Il2$;[9ɸf 3\:l(3&PMŌ*u9cp=Bc|0 0*No\ Ue pZZp 9no9 8O ;8oPH5f IoA:_,ɯ9 n'k{&JJFnDT?pd<<4'pk XSyT 郋"h<\\p^qea\=7uG2c^dOGqJ$CmOy\*TX(2ε-Arlٞ(Cg$މW ,1c[RH)(&#&*(I+:/a4 _kJJַ+X|>xp[\s+rEAjFy xٶ-O1aݶa$ D2\7Ip=  I7" -9kMkM 4Hl DP]_}C'7jb[{C((81M9TZ,u8]/aQ9-^]ACcxB߮˪l`L`AyVvU՝vV|dL9Hbi9.F]ziBlf$  $X)pA8w|TQ7E X_!W#9DTC˵yB(/_hP:bM 4+QjckP+D i<EFc1Z@8kq5%N(Ay,esfK rgf(ٖ:S;VQjWt|Ғ-S 9.&j*15h T:Vp&DD}2?aFg Zk`riEsgKS?ңmE*$0cCo*M=, QgHTJx8\| ^9f[jk+ASn/\t,C+4¯MNqho}4|j֦0algDs2F/ מ,Wcc=M1o/k}ihX ޤ.ί㄄w;Hx=%|BIlo庑ܬjjx{Cx jo_+:!>Iy^68{ I ATjі]% 1Rn8&+%>o03^`)-tsZr`$%+ɺ{L_TQ*UlGLlYwZPD#_bHOT΂W k9tC{}p}0"ERwe]ǝmv@2ZЛ;˔h]1iohݍF4bB d=L hHޢ*1$IWl;!$Kf G+^;EE(A lϓ|m)1HNҞ0¹jpii7Ta&,m ^)H5sJ\X0cw~$3¦-x5Ru]gfv+ϚJIy:ͱԳ=@1GvcI^OUEy3ueǩ@ў^ܡl 9$~^?ANFdY2Ď=3/M_ yUT0ng]/1ous43d^,cO| +'/ %&F5ۀМk~693o{Id# w=&֘O ,qKT#mgVEHYC"N L <}$Ee}fU/+!h !GA-hrבaN_i,Ja7m +z ~h @T{DI://6Ck^l2&òA퐍dOmd"eƿ6MňXU^Bbt=KJC}Wlv5rrr pQU$mwp}=7Z9xV3K--)oh\`"dCNήjGĵ`MO *O Rrhݗ#(pܳk>O9Z*"[?v:}/CX:|ub3=!\[LIr|d+EWnYKC5wH!T`#/jDՄ%/(Ma4y1ڝAơl{8h eg=h%ʐ nܛ%"0 DF5d: 7Ci5L<s.785|!J&j]\v6 4&no ' ~'Ш }\Tˋ( xZF@:]|z\ab'͇D;6e-+e#9R y,uO~JR~ ;S},w-(b4폾 )Hl~zs[{)<`>n|QS`) FE0/[5g'$X{6 DSiu1(m2~A>iw|`HbA0$Wb'\}! " AZ7u' %'2^ ϳy~_@L %Uf-d5I_%bm(RsL`;U9JABAf@|IA'*@#Zdj;et|FbZCѧ_ݑ@7J&#FT܁~r˃nsS1^3!=FH=ѠkSy-sc&BKjS֓^Q.\yݝhmi-SKpx f2HÑ @O{W HoS3Ç#=TQP0 / lNm&{B3sG~ò*;pBXv9cMojVIv`9EebB="f/O׿ KE$Ldk~?3tPۢGXoB<o7_dMu&UΰLZeVA[uD 'IW11cʃ¾Aŧt r `G6Htnn~E A:[u@kq̲ bHݲ~e!VM!6h3DǼPj(+#Sՠ LߥѦp:P TjHk[E^%)I~IN <1RɟLuØ spߺ~ItQ-HS#Cw. o=HH}$ZP2bU ?7 qsKb9>R,p™rQ9A>@ XsOrv03B ){g(]}o6D@^=˱|/P^u!6fUH\>􁢲.f{B? S2 !MqWo"$־E [[yKr81 > SݰBcR4y34@xPM]cd,J)7:~0Р zWnG^طZgDunFN5&&Ut{}(\7Bܩ{!a CPh(MQF9}. 6!Q#'~ ui[Klx ĕ*YNhݙ3-h.S܍Yx2kw va×N+h6#8SH#YfclJ[pVܖиPzu]wW]֯?Bp`p,2IkŴ՜$ 4F 1`{*hr7nEsyS v WEM`c0pN]Wǥ˓-3\Cyxe+ޤQ aĭ,arR֖횓>[UYFL *K`վt <ԗ\<Zb^=~l{^Ƽn#erlf#*v4[_ C E>QR49t(ԗԎT nf@r;WfnP@_Vƃ4{oZ֤Q6yZWvLE*K%,?{BV!G裓NMBNG4QmU:gQH2r,Hs9PDLik$6-z+g :x35fv5fQ&DL>7JD<(Eq?3Bz`MkH!OiaIPiґiPk2Nz @j~CG؅_|\-ފVt|a ͷ~ +5,"9]SQs 'ݑ|.O2^P35*&M[w[tFWKD&aF٤%f2whesqAv5Ey&#}ϙc !p7}4 t9m6[+JV>6qЛ0ecR-t"F$w0ɢ\+:Ti^MXd e_&$\hZ:7zntr=^6JBrX;;\<f7p/`_#Sx>igAt#Oco ԾXnɽƧ[T kf/fmMhlR EtX(bxy;9LJhl3Q E*F^H( &1M]E#vP·[wTWr= ARkZw,qHZlJ6,v{M?I -}6M6RKC3olj hZ[mΐ|ϖq/C+1L!յ֐>%:-?qG#Q[V{b;_ Gug\R<;-Ӊ3@(CK^-[y: D*W4pI%p5NmRwjliAgN;E&6/\(HcC)5AH0S4ќ?#5vx&6r.)$6 мuv/l7nԏ7X݅`FЬ#柲~D>:jAбS:>O=Ug pyW k\aكWH]L/-=]HѾ7pi?+/_{DR 3`ys/utHzBzvg1}CJ>$wj~/vN-NkIE4|j27k-wj@0ey5jܭW_b<xo_ڧ*YddI> 8#3>iy?+ɥ]j]ݴ;5$knFU˛H.J_PO^!sqaltX:>KO%n]Q`M~%IeKAhT~7N>ĩR޸iBĀ=tU GF(!vInm|}mcPjȼTƢJ^`[ 珌.LjK3g=MrOn`=_MX;unIeW69E_ǀi.$v#ʙhËfդZ grOT _PXn⠛BFLzZv^"9J/Oas THt]vx1O& ā"9<՗p9BL--~ն5??%֖aDtĔB *aWqP9)In =Xaxt쯜GwRmYDY/pQq@7g?8і (oxԗt+"^xVD~m11( 63썌+)g ^]>ڋoqO>Y 6#&ot9@P̮Iš0O@695@$y㎩)ޞeHD^Mo#N*:9őy- qxM@Rwyv-:DPfUBd:,${~n̔#\raC1`sᘲ * :mB eءpXGĤDM SJ/)լOI'&HS7Tnغ'ٴc6wxLYO塾yF+vC=Ǹ[XdP]%p5Xr~vg?Q43zʻeC֮acy@ ^;SexZ"2ce<ÞIo]̿JQC%*`n'xe5PA(,caiUp^n:mkضObwdh m?\4rt$^p%kS0Ώn{-"<1ѵܜq韽Kt/M0SJ]4D%߭=hxM8rYIwҚ+8 )iTsZ*9` JUCe6&%fBܚ[1cʼnGsB{uh(HYL/{x~7vɞ/UdzpCvHZ[DzJ"íLъԩBAvmc}kWWZYU^ﳵ+ To݈B!4BUxK{^/V)]4\#ht6hV *"*Cm]#3,Q`~o]f$3q xܲYՑ\XJ4]35sw:Ϊn+ev$s-Zr;Ln="ӽ;̸B V 9wl)Rsw3;h %!c3K-_戃\dVa vhyP6u|\=#1{pe\}Yi~Ol5'LNKmAlIMrx%t-sF\=>ocIeO*No{"pv;G{Bb1yB"9*ER,-;.xl0@IT= lGN,)\5 naRD3;{Of=Ag vfM0 lä3FkI0<6;Kwv.ya;,h{5oxSȌ5Y E|b>얄.sUTPM'Fv)?8T]Dtٳy歝B' _U~%&G,3f Ovc4d[N/[Y?|ƍ{̃ 4!:6&7XrzITMn}]G3}jV֛nM^LǑ#WHINn]4-Omަ7?팵~u->Lwj=5˵} -)TY:FRzC˰2ZNzTpsP my/5LYժN D@樊r}"gp>RC_ȩqas֦uol<0T0eۆr Gq@m7s :8Nt&"Cd@j3[b .&ɴXeɐn-91:h)0ErpI)DiVGh>&⏮`7| dOX6gZ5,y̙_ S]0L|+YԫxO<ͯKKy?+,#b- "054db@5d^n.v<XK'Ib.ZddCƶ8t{qR| bzr]}H,yۘ9/BzC"/do×+fh ̵d{'_盤Zܵ"/_~? 2K'JJTal(jf9,֚28I#ҫ [&f{,1T:+WuzӁl9C> gU@V=T`WhvRIIEP 2Ll//"y[L6S'Qv( ^4HIË-ǹ׀pĪ@{4ᛧ).Q:u%҃AZᔹ}n8ǦŲ`ܙ=Cd%k`EwqVN%;WiDM93Wsc :0g$ xg]DP]Uwc>6޹'sex]0¼346KikzYa)n+s?mQ -j\_L!%gMőwiA3!;HI-1*"ccy~}3֜2>*͟xi'21C$XܹP$sx ՗;7-]=0I iEɒ+#B;TlA^fIb9 3Q/˜G!M4VwGgKyJ]W+x/u9ut88+(bJDf$tw9.#*#x;`_p0ҒROשj=}Kv|](sPmWEActFIEALOU 2xxNoې*1ŸIFy^ՅGS+۽u#pţ k ,N{ކ+rw6Lk^UM/XQC*nc;~~FϬ&*dn# 9lTS-Ng"(TmyC9My"9wsTi L2>gA0Id];_MxՃGinkoh?m _Hp]ZObQz_,ot7fSJ+g舚^jUܡ>Ndliu )L'Z":>-EjP)Gœ̼|e*sE4n%9s-aۧ˿M;r"l߽S+tƀ2zwb*gI7G%v1@S(F\~{9URXx~0Ϸ8%d,Qe ]]CK6<2ʖ_W\6)t(?Mb 3(rc/l;2 ț'vrŤ1wbB/ P\1[ޏ݀.19\RY5d-ɖ0{e!=یm{rJj^ _7_"ǠuyA hKF Yw㙡BڏI^3 ʂQxT:dTHjka7N인uϡkd~bW'v $fd\&HVlR&(,Ko>'_zN*)ZQ+3s孔CrD2Dn@eCëxӼ(9c$/* $)ivOP~8vAh3$ oոӔ˷`0="$TCJnH/0"EhPO_nM7zrI_bX3Lx:OR4-QZHHhpȊ.T.P G-8nC%W/t⬛!#.Qb1N]h}TaC>O03?TL%bnଊ/ +fF֥)8㈘n"$ĶUvQqM!M*/qg%z۞Y< MH EY/B.$R nuKR>t6pOX75 SQ!ÒeuM9j'qD uG#ݑ‡(.*1jZv;>;4o#@#03QdxR>^\P2d4Y\f/g[ȯ`X@;x>VRt{bЯhQ[k8JDN:` u_`2T9ՒR K[ϊtյ-*Y>ٝ@)<a"aS*`x/Bԗq gY u *_<taڈLDzDWǸB|MKH,B7(2D˖=DITk=N$W5SP'ңlg7ˤz`δ['h_k>ى&^-(AvCǫ͆@7?z9F}=9٣Z%Qh{1?jsCT>0^<8;ɾJtgaq)ɸD|Gp8/x$,H<o$?2ˁ윅9"YXz>ʏLPΆe;,#2Q۪eΛEA 펖pͫE,LbUL*/LDy6ތs͏l 1, ^K~lֈo o~vÍ،nا<2#-ҟ< Cu:>nXY{@.V:eX8iP ZLH}!K2=%}]'"v﷼VD 2kw^AB!qg: gW9܌@\X=+di<2ɡG8ķvͷzTKgQ-őeGLR !,b*F)ND77(]ђ`Lq46iw۞gtLij8&>Y h;ub  db[$hylWP7١V,@5vbWo]\t9K.s^0P4ʣwm׽ ~-,mo[ q]MzNN@@Kd,Z{Ru`}0s43r`KB`?P-8I~K^̵ằS61<{3UVi(>;1$eoAqje s$4\$EK/}_B}d{ J@FԿR;-6{y8&xSGx~`ȒPxSEB̄1UX/Qa[az+2q>}>f s0ɀ԰%Yw@12%nrKd>qm4b=+Ciם [7VD= ^t+ m#qӇ |% %`VVێ^!-J E|]OI%4/zd"mTĽ8 ,LLẀ|%nV78T^1rN땬to-^նoKl6V\a'|눸  UwwcDE*,3[6Og9sd4VzB㐿] Psg(BM)KW{-f[ =7)<_uިH%K=G[@Ɛo 8/ʺ ?.H@0]4s(ȩ6h1{09t!o1x؟$:j +f'7):o$hC9I}1"Qj k?p U=C JG^T-B{9wЩL}n/IKwxNQdr%H^MvχF@>ڣ/S&(BķZbkL6.0G +T40pE iʋ̧cCDxtQ'I7)mir KeP"b i g!vǟ5V ΤE%t$Si{sGR _H(4TZ80R!zB\*r2 09Pr{?+N_Cﳂ^zp '6Ut8&S&;ôܬ_s~TBy.YChXFVY,f_@Jٽ)LN^TPijV7xaei%òu |i7)S|hai~SmA>s+C$b?XtY:ﴪPaa|#]4{LRvuz0xZIzx(a^KmHr_vWQw`"SW2nԍ6T# ?pBYWE1c(= b,RҀJ>!TS2šE&R^*m XF08S@;`,ІA;,g&P ;㶲).QJNpqD%f`JðVaP(xI i!)+?NZ,Yқj$& ɶ՜^'fu#n_Ce/LQwxy}>4B_(`,~v{|5 m֊!/XSdJ 8vMr[_P(F!}m?SF֙)9~.M?'UјjȊr|vw>LiG}OVL"WB=4'Ocq"_ fm=$Yz9Cl 'N9..هE'DGXbSɜͱѾz%HC&U,uJ6SToHֱeF'6 …1IzB>N jS@IH3%%C3gI7A&sSi^ZfhQЅ2r"lk̐ 8G3;~sCaB SYBIQR4TEa*bxү:3P"ꤚVO4|bDZ ZA>;6E6A,u7Q8} {3^-|՘ і(*>§p  f,jҔca[5Pn xE!kZ__0'ubCS_sV~JzeXK"#L ~zjY#-d@SVDۉщWofTB]9ިp3S?Yq_g"#蝄!Sa7bZ wsl# mr͚|D=vK}aOihq:ܞ}uǢgȼ=Թ CܲqMw$D9 XP*^0d"l뚾.)SD\O x ׏^$# n0E.:,ee lLꆶC(;:|^)a ,Uz5I<&+[G(eu+OдˮP̖ "Q94toR}K#22mZЕMhWcz k3 99I#eZax+˳ Tb߿e!ţ6f4@y <.@ ,GZs.hfRZp^ ٠V"Au% %1[;| r.C2{!kΣ8XA|~ >H'󼭀Meo(r;8w3/3Gwmҭ5Ac?re8.LD'"Whn7^ "N@FFPccVXkp&+5Iq" c]I'{~WfMV]\j;oYB⃰J# _{f ?ս;i t:j ԭf,aH  hK!mGV*FR6,?mH`h`t+N릸(؁9a͜d&Gkp$H-EcfI]weB?甌NQHPnt3vr&8r%>1_H ZQu{  ¸zh]9,[1퉷.[:J&u0(w?(D/8G[ qcwy.=<^&&RG E4V\JBܵ7;yT5Sf,>D\RH׸"{ҎQ%{,›`5s/<ݸU'kKWiSOʇ*( މrXCI<`\zS4Ui~p)< JF[uߤ.׫fFΆ,=oKRzna9 Mguկh;r$k=["%~a`T=s#s^gB*kE7/=R~,< J)xmelt8 `vTuOfuɐh{*DfoyrwG*[IPtr NpSpқJx] ~Ri=]ҭ]'=^Qn8M)ʌ/d=~.Ԣ ^_!"{Y y+` NiPSMi XAG5ӌpax*|Vr63+ѠQ{R.\=x,,! `vmLk"SemmQI?>p4![kL`m_Mˢ:=K~4Ɔsk~YS<u7j*&Im@OKJn{P[t6- -l ƚWT[]]przdp?YUnUGӘGq԰ro,~y@3Q`q.1ci4mbQ '捌 i<*(-vGci궋j ) :. ־X2 'kT}j!8\5_pfڡę5V`Jn26krya/cj7kGqM]h|o@߰QwCb㡧մݯRYH(]n@sr'kxBūA1:~NHs٠tMӔ&~<'f;G]DW@)Q5AIsZY!{F{%OP2byfJKOrVg-2?3K֞>N=tPӮGw3g{z1Ae-(0k{|v "=5`1A3oSWM+L05ǥSgZ:Gt:*=N"@$sn~-}Y{&5cЭ9 @b}tlH6e1Wg7Nkx/#@d>|_&8>X_Cb*CܡmCfcj 2I>7|m+' f;n"ϝ[NuԯJ; qlrDSJȨkJ\-H܉r0pn? ZQ8Mwg?3XHF 6#cŞ*)+ڝC!K$1b"&ڪ*`|iѾ;8&H1v,Ų?~Z 5KxlԇY4ҏ:x0ù\=Ј% "5FsZTMXʾK-9F%hdh^- QPҏ^έmc 4%H:yv K8,~Z$"Q/*'TJ ߑRZ9C~DM F1~gj`}G$VnQ&bhLBlo_݁ 0Ѻd׿xu2otVťf Hp MNEQիnOx.B5q_q1I&l,'亷IVYBHy3+cʼ\W(%#d?=>c2oo//rJgf߄b`.EV!`!`_A$lG zCUBfcipmWϝkn"n @ZH'MӔۘÄH'nNoP0ۍ?H>-Ox*V)+߄(D>Zё `29G[o+r1=VDhiO8r!߷`rown7Cqti#H Aa6%F;bUCnU&/T ⋉OҚP؍K~g`&d qmЁH-=mL_58`w+A!`!`6ABxdkh(HUx0!`7atM MT@[!`!`4cjM0!!`AhIAhL̩(z}lb{̡ȖM`拲zH^Pm834X?C1gi̲fSo ذ%#NR;'(@)@ 0eb4PdtGC'2P;Mi<Cۀl ΀ا`!`!`5AE-&!`4tM0 !`!`4jM0!!`AIAlL)M[łl TL#AnN@vV\Nh'%kd4ʃskZ* @f |`sv܂e(<^J7%Ojgl4  OHr,R19Q!`!`5AE-&!`!`4tM0 !`4jM0!!`!`0AIAlL̩(z(BaJ+^T˂+ßԚ4pO n%_jdy?DR 3nqX9C: r}$B xI9Uէ`35xrYl{\Nq8+*,#m"#[Wd6Xz:k-u{TnM/j?ogGe)}5#]<1w^~!f_])buJ2z<ݠ /ypЖ@n,[!`7AE-*ڡNf\?!`!`4-tM0 !`6/jM424Q!`!`uA4IAlL)V޵qeL+YM_t lXpp(p$޵`;ۙp}%4H~rmkCptonAL ps& 7?񴢻n-p@ m2,ڝl]^^qh2E9:#g؆Q"~aXdn%G]#&]C) Jēd<U7# u5FwW?TexG\?HLiZ+%i aQKi"y*hGy&! |DQ=)0s :={}!`!`MARE-\+2LS"ˇy:*-%EN !`HqtMomC@$b5P* 4?< !`!`CsjMpBT'hT!`"AxIAlL̩(z(M []l~H"_yɚ"[-<|W||_-0f!p 8H$o5$R.A2 Tfr?`d0T5=(122D;r%~N]4WO^:MI)to1\k=P׏sD9JWp–KzQ)nFQ3 f(HT;t( 2jVU\Pz%NDn!ZZ,\9éc7 g@ҫ*sdqEαlpg-ޯ,u?\&/(2t:)7 3V{r2kXZgUR'|?}yk2>%ٶQq>{RXu\;C2 AmipVfx-=:v )jƔ?_) ~厠  xCJ<ڞӳNBLh~2WmQZ u ^P9xy)2Al'I>"T1` 0"o^G/R;ST–fͨe#}8kәvx0> +ݷwd*CY]&/tk+#a-?kaAjP?qp{N+#W&08`8aZ|lD+'"1U6A<.E$IY7m?zl[/mٳC앮и[*A=; _1ȟ"8=_ׂL;-S=rQV#Bs$1?Lűaa? @' MJFOs`MeP )}*g^^=.Ɨ. &nۣ|qln[ sJl:sjrI2L{lWYCqI`_k,3n\.PߔQY/u_IE jn=8Q{RgW}*6/3F) h?NQϾvb^*k^<˘!Ɯ2,u,⫓Qo%"],f@@"|[^җWaɘ&-tcDH/RfZBɅ6ɻv we[ Ct^Ci4A) Pᶭ@AlCJw#kw + zxb_92Ї,#D&\mo-w5h_r N5R -tVܼUKtj>o >ȡxsqm:u)y$E^bh]32AEt@RٕӻS,{MelY%p AF Z^{z]k5,LܒDvhxc:-yEʐ4tmw95+sR96[:TCpOR~[nZH~ugYbV.3r%rvHWǭʹ\hos* "kgͫs86>;q+'4GZF3"+jfB3˅JH(:V ϲq/T\S, ьַlr%ͫiĂBadn*~E~T3ő3Ԁ "Z n_1ڮh+}zߪKXam{*# XߜM6ɀ*#x~w7"tFO{ߢ33}'~hka'S ¸E8Ps5[mvwA/Sh}.jtny$ooF@S ȋOJGHG{5*p<-P-IRM'2f@I'8$X?||bn[Lv)a )1YL tF;FtbUg-SRc8'UqQ_v5 #I^x~#(H},4nkI}!7{TU. {E4+[`ͷ6e{_̲$~1G#H%oyRz&0-ZݞY Cea@TO$*(eOTe{ <Ԛ\ D &'yaV4zQ[s[̚F ø<@@Q BftPr@ezC"4ˆe_!m/B[s TJ}#xq+PS>wZ} Y"RcXWo,*U8Јv$l5E1Yo5iS굿x? /JLJZdSp0$Mza`Xv! 'zVr|;В-Grk(U1 `QtyM8"3W>(%4VG ; q~B?֊tgG0UfL9_Cse TRsnϡ!7P×Eǫ 1E{B/GTSώ 넊4l*82kQlZWo /B&(r> HN ;Geέ2rge;j7fG04"_$Z;שP=qde!Z7ĕ]4 $tWB8^hHSך?1M%X_2( ] l4[Ͽ('eS}]8;vGk6>$].[ ^D>WH@~ݪSpu uJOv,.+M=ɱIbVFp*eD:O)Yj]̀S2H<^iZ"\rӢ'qĈ\oڢ:NtD2t嗫 !,]QwsI\k1rHP{#$"ā9mmdk vܶ/icݧgC}bbfqw[υD ]>9SaJq%q{J|F*F,SEE~ɵ*s2"vS688i2Dn4 x&\YT,놬9^Ԍi?cV:_ͣhӔ9j4^x+]yf"zQjXL>:%l%w84RZ >}&C` Rq `^uu ۦƎ)_ZGs?L \t@E+V`m9hZKP-pm.#^6ҁR59:ޣiNJa[4?Odm8Ph$ٶs xIxlbr$;~M ^OpF nPA c@d%CpikǮi0łrD3F ρ􊹹B"æ_=jqM]4ư@8ܗ8 3& L]d'N+s`]0x;=@p )~{צxĶ~ry6eU&_lXU@Ė2+2K lz΍ *8>J$+ /OsX\%Qbrlv?_r4OE-TdrTLx9) +-ܛِiE]JLuOy&RJ4nYDRrZ:6x3HܷEhA Պʏ!_g͒3isd5dh~PO"1R.h0 bS:'5h" "C Z7ҕ TFGRE8?A *2-4v)/#DBM{YK>]ܾC0!n/8eueُw} ̛  px>q2WjPR9 3Ba`f cA.Gi%ܭ [@CchGsa7 `+}W#u9|NIqzЫt ɋ95RM˿tUp51Muğn {qϤb t&@Oő2D)z@ur%tnn ?{:fmai-.z?̡*qQ#x]'q"Qk{47!T/6l6%G\ =cKᵋ'Tei[E3Rՙ?VcˮH/sCr8A'8I!6PdEBZWP8]5v tha 2BS'{ck^/]A1r #M͍EO_)i!]"&8'H6x\~K$;\]v7$[C,B%B!~ Ն']bzؖOLu, } u) X]#n}W`\"1~5λK\8)V<&v *YJ LΩԠ,4OE终Q|h=[vI$'٬ˠNmGubFꋀh:'ḪAxJCan{DH¹z4<49ý~}Bc ³=yS0e6"ߠCPpKz==ºG[*Ո}Sӻ1.U y d+b)OQy]%K~+_ٲ۳Gx0BA AB  h4 DgQ 4m ,MP^O\t]0.ӭoíOaY%xZAT_~ ꑉ 6yuFt)sI%W8Gƨ {7^?HaC}qrAcj73IzL_74١ Zn[~pYw',DLe`٨⼂]i!OxeR =Hb 3-P ?D9n,ڹXK9lL=de]1x4~M]fV?2{z.huERJ0}|G'?|GM'gϠeuq6,~aOvW:ׁ9ixmJ索$ Isjd[!@ <ղm7Si=?J\<~= GL1:Ԫ\nI-0 (li?,Uz$!`!`aAE-HW)P&6J?81Kre U!`PtMU ~i|7v*J@@@!`!`5jML@J!`!`AIAlL)V޵qeL+X-E"7 .RJ|v\IӆzlN2SA!`!`4=tM0 !`4?jM0 !`!`A$IAlL)V޵qeL+X-E"7 .RJ|v-稹/FВ/1$O$x@irn8vOcEKB"8́umOrP!$o(4n39`J!`!`8ABE->2d<!`4atM0!!`!`4cjM^!`AhIAlLvň×SV#߸4+t >=/0l 3 lx&nލ単DTeNCq'ܸ,Lu|FYb6%Lzu{1]$@5aŃ G,|u# !`!`HAE-\x_Z=Ku#j{wuGWO 0.TFd/.ܕj)7^~5/^]lľN9K_IoLGJ|0K瞠H ^F$)c7ggk^L6ʱ@̆Uԋ+m4Ĭ kѽYǼxTঀti$!hD0Şk`ԺM 7Pnx/91bCdX|v=37w;sFczgWWDf% Вp8LܵI滙x?xP螺!{oe>,]>S.k 6c|沨e. V4 !ZDTN|exRvɘvDIo %"k񎈏~iSպmX]3MZUfU\jmzutUe˧0- ER owqHx1t~z^[ o 7 4aY>ӡbBUq]78͛g/Grԋ|0F7Y1!#m/WC{^7UmO/V9.`P>FF q{ѾP}!'oV[`I%L#e DLptR.Ɔv{Ƥ!={T/w˨ڻvȧ)I]Jn[.Y#tMnBMUO6CV7!ܦMKרyn#!r>;V)cFu7C ~7x0G"֗^[վV}N5[DDt]OD79#C I9n+DPćx .J6G>p_;cì đ+#0=ltlY`c*)[rv˥=&Ul|pBuC*9,wq=! b 4= ,ʊh[/ej1DB35qOGΰ +ӳ] EbL67u-71s-A ~C.^R #JY@m*m= rok@I.nHvi%:8iSxbd/3nBĽG=KVx]'uy࿬q[pC$^`\? Zmz=p{jQ)4*B: g0 w_x_(Wn_Wp2|H9jc\"3n%ê֩"?OT)(ZႎY4,NE g\ݼZv r؄2d؝@ \]! t-T2EZt_;^8IbHB}dϚ0-,I!E"q߾( ;X uWr"W"JCFWoVe>GcQ]3e|¡F ψS< P9z+\'p*7l&Qkz8kbP/]"il ;&OrĎ8XGmP. }E*L8aWq3gd;wfڦ^xKse?iPѵGJ'fԈ 8 s"#]&ʰ'MB+T;M E-j* .1 \_.kkUGt DYº'Jr`xpo0vۅlʠ,/@ dHx #/)rl?l$T&ns 8P Oo;? FЌTTۀIMFvqVr8Z60d导1;Cb3Sۍz(*FѬ X I & ĐDJh7Q"芽WoOtjZz lu ev<|s0x*]ؼc.Y$U<|Z"j 2ؤ99ngVJW #Cv史0POJꌝf?*)`*LPQI}UJ0pR?;MFv#8=4{j7zU!ڜxz~BրӂW 2!y@P[_}կ1RR<{= {G*^iǀ6y'R32Y17e;$ȔɀvQl6?yoף~F?ET&.Ts:^.n[Ye"t5%iys& ZxsP΋+`usEa 9vℍ-)P\X|- HU%zG(ǦW ҕVprl:2&Mb}s#.Pm =Nw* O{VHҲ,?ܩV5Y9Q\\[ n[g;%=g.=NUޚjgl׶H [dE#pqjcUH/g܅QY ?u7#<ʬJ+7A4++/ {4u4jl4c1]ViOY9Xn7XUcKX4rؔky)^$7zO/'67|yu bS5=Yْ (hN2P#q. 6Mky91;7 5I滊=i^p*N/PMJƟ h'cyAȤ#gLh.R_!/Eh>m^+e{3G%րIU/߂( ,i;|1M\c'd1\ 6U0$/QwzgM❹,9Il'ES=K&X Z?& s V5KvX}m"::x2A1v䨪'84N!5]ߙyX!EE\22IwДj>[ k N(H7NA?]1M+B}*;:&m}_[8pͲR8D)-"AӸt A||z9(Ya},b(Tw2ZZ50 r!bD"oI+`xG)sMBtZG3UbEˀ:k ;!`VAE- g*N"g6nT *=hpY!`!`M-tM4$q` *]%KmJ3\r]l!`6/jM;-:5#@ !`!`}A4IAlLfۈo&wŁ\~5AGFa`*7/Rw5=+wYpP|~S9[S1!`!`IARE-YE # V@zx@!`CqtM(":PA!`!`CsjM|]a@!( !`uAxIAlLvň×SV#܌HA6Q@sdZ~+ENm$(T(Aw1;YȐ7rTAwC5OU!`!`IAE-Y@ RCj!!`CtM(":PA!`!`CjM|]a@!( !`!`fAIAlLfۈo&wŁ\~r]#A6iח':Qགྷ^p ,+"Ɣk-Qj, Ow(x-o3od8VQ~G-3y$Jl `dB^\o9hYl9Woh~&ω>tz-dpIdV 24 GF5'r1Q~yaHŗG`؇R0W.-.n7ק#Nb:ہr͋zăIi?w3Ĩ46e+6[og- zh WTjUlpNY"7h'wȟ; nbd Ϩ#DžbFފB ^Vfv ]nY-Y un2&216to|/:=?2׃R0M 6+ޙX6jƮYQo@#n3[E/@J#3R3#4H2vزoxEKA{ 5D*і1S_kO7 ~ReD ~ؐ^^7%,&$drU/(hy.{Ms(jJ{8n|<^?Tf̽ESY`g38YӸݵz8T^WڐSŠ Reu&ci&B/t!3ijE^H8 1l!7j9 ;-¹ |9(Up'J^wvO7׺{ɲZ㱏eۥs06qj F89w6J°MCoB᛭ܧ_M3vݲ\wM G?$3 (hXT1QU`"oP}goTn@0LCad> p<pHӈjłڼp$_j/b3\E?ug{ 4&fW΍lJuT^Ff=ChЉ9L \-4MbL2b ĐrzJ0:{@0l_n"ALN<:R*}n!_|wxZPru)VHvm;nt÷˗0qյ7k#:P8 x*o\E5bur@\uYwl#cNȟZ\zz2Rl%ƥkpimdN6vܯiuZ`L=5 ) ZɑVϠ!7i}#X0 Ls7`r7 ˤ}Z VE z`/ 9}%B!@fS6y+ K@k[:o&:= D[dHr|\j窔R>AU+N@kLI2Mjs{DT.4pqLg ]>Y? 8 -u$QML,VsۇPHpp>Q\` گt[B 4JF;r%.EV|YDi}C@{CL\-cLiqSYPupQѳx~B?{YSw^$a]}-`)ן?ku`Z&%Hb;*8Z7j[ZeW\^NCJHbaN-3ƅ+U*rdvO=y9t[xh:N>?|{)mP5Pgj$wXMY GϸV@]3iV6`,{AKݯ1;t(?!A[ֻqTmu0|48@އLh=f&Okvv'[M8)r:QE* wŜm<9 7'#;.s侕D{S>s|s*|-cOzBd I _0e~܉jt ih)clTlQuyfb?qN?6P? E¢@Z=V3Mv )#C}\q$ -iJdZ@YEh>;W(6c%;+`W[[jH{L]q] ,7M0j:GuZ3BsUЦ\dKjI j…|5_ǰfIn;8Ao㶀V<`ߊ;&MkZFw6v5PtF 2*Z Nd'p W+o~$cZq`D&-1trdK'|Ծ g1Zbb"uçÉ$-,wTF#'Qc桇IRM'&%0(SpB}}-I/W ~FDl BTӄM<-y;;/0O+b.g8RzPhT Z "^H}kƐ!es'u|V0fQ.!x' gmd[&ErS䉸O\I} =ű*[o hmS@:ga!cMT;zQF)Zsr.tJM;9$ˎGMð][743MϏԀb+aQxv\pᙏh_i:λT0]QFӽԳ l*_賐窷41G MUg܄yn4q!$A<߽yyJSHewD! %;7 s;{:}4w3H缯,28ܮedE\ȱG2+Ak*G},Ld*P0]UqjUײ̃or0Rwة +hPWncқ#8&hATlZrQ"LK{WsNd#ҽ\VRM:~+ e;qkPs넮G v:;p3Y2@ᆣR|+>ziE89ݲH_z `#4D;Z7ayV6h[)iS]xl֣uRܔ UYA:EDʽM3n$S{J&@2,?YrzSQɡu,Aiff|5;^7ڡHLMO Zax[msNB9ho^׌>\N{7C]zћQ=cW@[ԛ7'/-RkŮ=Fޠ`+wbwwvL ӛzp'ei8Y2qܭGW7`{5\aAE޺1BTȅ1٪89T,O-P+rJ/,rݨFRz^F{Y_n:/ׯnJ)[Ȧ[^>@{ {krpWw|}3H>WV0>蓋!3錏n3^x&cZv0<6 N(!`ya q%ۏ8ٙ .\<'Sh=I7xf9Dɣl,˧ju{ *$G}8}$~Lhl;kBVҕ #q`H{fI_͓B$8_nPһS:Vdy3j!8kTBxHK9_RI&/S2yU鿅=*E}!Kĺ [&NwmE{>j`|u \Sm(h8 9+TTpmMc&_$Vz-*wJʋ^cFEiјCh~Roـ_u2 s]> h͆F0-hHN #g6lV[h4$7N& 51*`T:Au* O=o&Z jU Djpd?Cqډ[e\:^"D*mO7KAl3M1_nJAKnN^I̸+UZq?:||{qmƌ-*Gl)ϲpPeɢ-r:mDfcsyQrJK턀sOa;Ac.T{E/I\L]y,ӇUB8Ĵ#q9Kv2Of:I$LqS"uTm&F?o:x)@lZy"'9>Tbią%nM5µs3{{ xaLgX(ɤ!iK6 ;-R 37'فsoJ/ zD  ' *6lhiCA+Vi9'Y",쬆_DH *cjVnx,. E8?dox<)4IYUoo؞k#ɚ#[˥ })_a}mX96WMfkC`q&sW/wZ,%̥Μem'k =`I*{gώD218+qU[Dž \l_ŜN+n[# O.R'Pxj[{;@X yI:&+fHfp'hBux}T=9 ms;TWrƵqV'_tȹ6`k!ҕ~%Gp?J()%H =$H@n(za^Tށ 56e8QF֋BISS1ۃ˵f w47bnx*؜_G?azeHhז@xn# B 3N9.$-}ɶ;._̞*v斵.Σ(@' P+g>3eq8P}c}g )І:]$֪Alv}ɆY>'~SOTm6fPq PQxgR9|#Q'n &M ,9iT qlǡI]kUٿKv!43Fъ7>k(2sݿkQ~ <,;4JD_p6ѐC@JٺWʒB;)XB~u`1P@7$h y>H<7ya6p<,E)KB,2iR(LDPVşHG:ze`<REaݬBNny׳?f `[U<vw4ڱwU`6U8u!$hdaD HK6P`6KGs~oz8m qHd A(cLM*Dbjf} B8I^`.~IXn\zۍ M+-<7lWK0ٿrP!XV/%94fR?|C[Iux} nSNLQf5PXX:ҍ[-,eL"VOq")MB?qP)K 3䋇YY礅b?SP݊?#n`J18 tNԫAOdY/)}oh DLZ^++Jy@P1$0GSFBmXmd_r]) IjK/6ӹēpi̻kw4P5L, 6x?6:-QEOp \4U-`*^mZc<|V >#- N^H.6*Oشrv{&$=NN+-!@zId2%[ʮ%VFfg>JK7(R+آ"beQNWꓞzU/R2X>h0e6M 9_2"I}LBǷ´=7h'A$pUB~Oa U-F&n `f=Z*;2P؈k/c7ǀ 7YjCuR|]<:qܽW%mXD"_ qvN8k:9 a\sSAjYky.f[jּJBklY S;%bvLj%&SYvddXؾ&qv}P-pk"$JLp01}/cF3Ɖ; 4^-<م * mQXA IfH^!Ja'C#<U VAߤ{cӷϒ>yKljǨxzU{ RĒ ^5s$Ia^M >A"IKE[ه#EEF"Ŵ#vDzHi^.Aߍ|Zg,}ʬ?tFuOfdqP{3tMT$[ &u  q$f┼0U|?"yUKS7&kP7M{qRʖ? ]`U^C+Kƍ:SD10}ûAp']݉?w\ͫEfR!#hNZ%yl/WT>~G?A)ZkO> 0_'b%Gy1ʬ%xKE˨"dEύ?h8On}:c꼻f-hA%h:KMOaTaw3~b§g{`Fkq^Nk1a%dbXgC R= sbun; y`acېT?DTQ&_M=|bHTb0 +aY#prjd{Mk8]Ra,d5i!,LY^Rhcs<ڵU]T ;~~J-抋XЈiɓ>!R# $ ʭ4îϢM56ы ֊il &kxŪ^Rzhȅk+q$u6mmj(d(C`g *)K8q|#d3sRC媜{FJ2 qwoNqh2Ŝ7R]?+e^t㣙Q6/G۠![*$TS"r[S9_`mnӍ8b;J F)rĵ\`EMR,!i@\5!yc;I/m '&e#M0`اW׎X!vm׎_ ; 0v ^;!`h @R K!&.~ -ZeQ8U-YBՙ_Pbgn5[N4zEGQv Cul[ioTBdy-Ҝ&<|]RG&wP`Zic=p*RjULΛ!PH~:Q\4H2 bXd smf "Q(o|t%dx{O4..9K&Ъ$O%/G6&_ f&pM)FtZ:綋8vQoYގ)_s''޷Lh Sq6לdu/] ȋT3thׁѦ'*^CrR@?q9k[XT(sA w>!94"nK۝hit:(EdeZLrq XBk9ͦSr<__#Y쯛Yu3ق j8RtOE>/u` |ČDC GwORn<&5RDEȹ9GJqg*+`؝꼰nxӣ^ڕ@ Uɫ0_򶖚Y犈E 1; TbPauX53)]2dZ!VgK҂ZjھkOi}#$c0ЖCCaBCgRVhʑs 7$3$4M!{8^+%G1˳$pT$+^S ֗Gmw8L!>ڀޱjY2 lHOzuxqBplݓͨ^#4!"ʕ._w{kؽ^\r[h<p/ƳJǘp4'5$2DCDp,lbik vG|WLa'|p76谏@ u(KNQ9ig !YuPkM@R/Ā+D>B[f&@:r l3Fh9$(L&[9c%i!gu}\w( ZeBof=;X|ZRe'^Bg]Q/ ˆ=mܸ Rc1]Cw.Y#k .*1o荔z:+I<=Ϗnl^4|$ī?0D|t ]dI2)C6Q~@r%"ԜFCpRLsBhr&q:ZfΫu[eM{AyI,gps%05﹘ rXNǔ+Lݯw'刮\5LV^]zEg [$B둯"0xb:9_ ث*JlP@gTn0@50ireiۙZZ3`P.[1w (r3F{C*eɄX5j@lUw vMzU 3=w}`b˰dL"Ћ$(yЩ򦫺4'I~n $ 7ZO}{nCf-vi[ԉ%8 7i#԰e+8'ad2.zl>.N93S!]u琫r"+_)IØ;TIDmuem_Ewo4[!Dul1xdY{$p-l$f*ik?MP,0 WօaVH]HIì#n"kbq;;$O;?u"gn =x*r[wi.zx-dX1I\x\r\sTƜ[]/,Ġ3k}'x<$'2؍QtDhHx6K1jͯؼCCϒ;޿U^D*ȑg[1GwJ޵WW<[D~q{1 :[ {:?URb}|y<͏e)GJC7pnMi21ě0ڍ 8:CgeĞ}xx<8Sv_"JS_UقwVV82/Nogp?bȜolf($|!];3jr7n|JFt&R< .hzijsfqb:/Y)/%6YtؑXy2WZ _hJ+Lz<gʡvu/ T#3 ʚiwXOVq%AvS5Ea m fJ"B(_wRmx0}=#XL8,G`ǝH& Z%܍=-;4Z`BKlCT >rNS{ۇVB=P]IYl1B=OBK[2^ `miVpT* $hp jp@}(ouh@MFG6twE+ϵE`/߇M,1*r[[{h=H^wRH foF4LF:Xo?]3aCuX*a]Q԰Qk9!`jM6p!ir8ҕBk~V' _1/WaWxpXlvu7 Y-weCLծL4p守(t1!`!`KAI Re0#* 2eayZH16I(^`Ge䨆*s8ȗ~%G >ma.V%@~ 38WLO 22 =;~*P9]w0YuPP+{قΐa%l:܊܎[xETXg倇9({l P g@ʒ]2BP΋}Br)ic9MwFթ^2E}5*p\ j B{5Ut6([w1yWXߙR@S/g$ p#P.-5ٷ!`!`bA E4MWKQo_e,[0.[cʪmD~%;hdYZgcRXb@!`N_tMs5ja$?tg ABq!`!`HAjM`AP]$z!`AFIAhLvPL×SqitaV n Of@V"hJʩ'=40\fӑ,c,fÿاTP"l2;@gM;ht(tߋX &Ғf+(`(@Hݚ+ "W!`!`RAdE-DpR('@i' k~/H w2`T !`JtMhYe$k x [{q+]!`!`HjM4}t +!`AIAlLvn̋^'V1; &E\kPUw"$Pj`8YZ@k}ӏ%rNRs =P8y}jz}b\_Wf 4 8?a!`!`@AE-6 ۛ_ 0} E`'RhuA!`!`BtM4.Xev ϔ!`8jM4!`!`AIAlLf/'ΣΕ9I4$<"½7N4 xkrl^n{Xܨ^kfK|9v=(% 2R'st63PIg aH,>#lsgbs>H[H2; `\$ `.!`AAE-6 ۛ_ 0} E`'P߾M <`&!`!`9 tM4.Xev$!`< jM4^״T !`!`AIAlLPM ׫k;x~TM}̝O"F J ȎQO'(oע!q1 t,ygr=u|Ϡ/L?i5I+06l= ߧn_(N|_p*ԙP1(0@m42`Ǹ2\W!`!`EA0E-6 ۛ_ 0} E`'P y b!`:OtM4.Xev !`!`>QjM4@SK@!`AVIAlLkkf(527ZɾW䊂5' ͊~WMGz}bVn m:A3`!Qm &7{4E\1Ҵe!2у(zM~ݮƒ"cq%c|/z\F쨝|f;p)Gs='|(+:&=bX (]pJUy(Wx㠀ev୛我L0^d-K" wt:Q`4L#ᮤI!CNŕ{ȫeC*c‡L;D YDZ&C^s^? a!`!`XAtE-6 ۛ_ 0} E`'P E|p8j/j L7֙67!`;tM4.XevRkc 0e!`!`SjM4==5΍%ĭAN{Yx2i-W6a!`AIAlLLvn9- Z\\`2LI5P reZ5.|?! BO+4D(-= ^6 PI\,"R^uJ62+*I S0ξ$rmt M"M$J|kRm@frIڡٲ`9"IAZvBr}|{0$:.@P'5On(_9k`9UzFkЮR'@/cGë1~VV 9z _Ƹ-UEFbkI'V7T6VӪj)~(cAM+s;I\=&\Riz1Tf]+iH*ѫڿ)ƴyqGQv.^Z"bj2η~: հR;e0(5ES/}XG}ɾc2!hʚYPmM`.#r1.Hu\}v݁7_tjyOەs3 K  f|,eq\C }? _ 8p¼,Z"^3>U9K3܃ߡJȟE j &>R,6xͼnꉮMN}"m'}2jcbHU{">8'+7#$sڭ#mPq?˞669r W#OLA#{9L]6(/@&N8{arÄmK Y{iyž5oUHM!% IcɽGUg=]B@rb3nn2\ƦN:MN5ri#5aqedT倵KS^Sh֦>X@qu3\;ߝ֥g1pȴ{/YA FKMY}|Sv9N +N @3-Ծ-cʩf3KdU8 QK4+̌0.g4-!!1hݶH}1Xg9ztpXr^W-o3aϴo,cELhl{mm7Ͳg7؜7D0Dfen6!!` AIMQe9ն "i0M:f#o秎*7SC>`b DΓ$OĬ^`_>0x3@GT_q&z!A+jS~5KjNՆtW#ȠfeOg#a>$! V Hݷ9X99:q2`M7*Θm$l^C9v.] nY.a[*jrӞשsrz;ەZaU^kdKZ 3M`O%+1CγHybN8W+աn2خMtcL[%1%65D3&}6b wܵt:zb/K )̉q`C ~} ym?8y;z^^oiK<8-ka$H& ֋_w 3/*( ɠ p*'Sev^ɾk)][>Mֻ.#\a ɿ϶dEC9fFGX8=5Rg+ GfoM.L~gGhxxe ~ZyŎDW]u1<9̼ fk;֟K0hê˵s@d|^¤hCݐl-yN+/3*rH9GhN '3cC`ڡ7_ޮ3.v2Ǥ78~TB\in.k)j٦pP0ш4S]&0i:i[GNp4C7b!P3Ͼ 1@g<&Tg d% T(]N|#s9asT#'|~H(@3SRB[-st {_J,W\ȑ")Ʊ}Wj$(nt9B?$񳭿xY`)G\_VSS~B?v߄MM=F2c$2'/<ϻ])Eȡ*Пkm@9b8פvtob(e#:Y8SzM-2P'CmO8l{ǫߩyW.!؄֔C,QA3йL< E,ww܈YaZ)1`3WSJ{"l u+2L/YVUoV]GRQb{ &D1-0 3] n˒ڈK/($Ou9wZmFɉڐ3БswLŕ II $zeu =c\Tun>ft=v~LgAE|Uk/R,ÌQJ=()[wx"@x*3 ;5:+;!(KX8M[:hfF8YĊiؽx isy-HX(bo;iIYrXNBHS61BhxSab=4?3?ue75̷' #:ѐfy4ߙJDͻw8s! muuG a]RךD,*J|6 .Bb#oL*")Tb+lPQl+ދm-$pԻ"u!`!`jMmPҩg \}K\< ?ǘ^Xc,G{"Yc^A_4+j8 oN?I4 `}X8r>G"kić{qT:J-\% l!c?T&Ry 4 h #|6TrB}4g+*>m5' s?kw}s^UWax'6Gf;r-@`C_0(D],e!y[B Pc% JLTS g[>|LU e,JHzP'۲nWDҫz?tw灐0— yNi _X ²&LpĒƜ"K̈́Fet"'"c&P@Mh *c L.~ F,=hY5eu(b_ ~ri)H|zxtsɨð P, .IsGwi%M#-3=+1#ZrNw9V )X?3ΨbJn,KL WK^{xy/< ~+!,g"gBnaa⹭Tmx=^Უ ++&$ϒY a/8g Щ e֞ }q,j?.WtSt+fIn#c-?'*|ćuda(sXU8xd]pLz؊4BVN Jtyo@8`_]qshG~ӐJ}Ɗ|`*bG8 l22=RYʵ9nw;i|H!#q)G|amG@kM7s$pL>1Ps#y8EEO+ PPkv'1:~G,fq_w{("3%|<|z79j_gսՠv VIu J05NAߕW`G(2$vjczq6́4My幒1cYiQKI/ SBsLۅfݗ&S~Ebq86 9J8R+tcv*F)pU7Ć Rn]ʅ{2 S+jR }ÙY`N~Kx74k" f1z*?@ABT};sI,nړ.@d"s̄qy6KR-'+F?w!hpZ55tD%X|b e0OM-]_~')%9BSo}ˏ "y93ڐ)u_=RA"ߑ=1uTeqSvvqfQr=Œ@^!9JR jt@f"Md*>o܉:3[7 9Rǯ{-&x$9XB. řK_syp7j;uU և*~v>GI>R¬ɽӥ2ƠI!p3C>(uP[ 8>ZA Qq wTJH3~cm[0jqӪtGN 5~g4p5s$eضG`rv Vn'SC#d憌_;_(IRcΙ bpǜx1ЏHce(1  e%*|ނ!{AgU\;}e 1 b5QP- v. &J.Jϓ0sVrCF ЫEi# qS#m GOAE]qv Y󶣬_x=g.DE6K{ /Q\M* 6R\MrYrsΜha~OEojMY¬:WalyCް)튑!eJ;ITh O/6r0/im+KCMWKsԪs4rV2:S% 3`UOUn]{0j>:ZIٖ\~/qgFy[4?Cϛn[ZTAZ:ߠ_*pWIz8yVB1O*m%h7ڀwB1D#  _[qLI̾l"@z )`X$K%1ݪ{1Z)MUYV붶aTCIqhIaAgZv_~Nba2g1KMZ|5r^i#H(8]X(CX1 ?44vmX ?Gǻ yr;k%;gc[ ><;T1?;ǦmPƩ עP% j)6f\v+d FYўƳ%|y/_346}nČhDKcV?#Nf4,${CY_EJ~oaZabBpx1Cw=iT5^S[;&lt /2g2 |g I.U+L:zf~f;fݚz\PNTh̛5O׏ΞHpEnuVE3Q?+qi {xg O& dww5aa R6ҾŊ)Nj)=GلkdrZ;DءǙ¿h-gnu!`!`SAE=Y@3 &8Ðcx-docNo۔Ey{SFg$lC^~ G^>]J1Pĺ-)mxI:cG78o =62H X+-E&5ʗ,)|I_m97O|(E({rOiJU޵~'2Tp 4-*4nꋭܸfq4^sh b:v!`!`>jM,i  ;:856tYYZn\Y)s>FDN %Bm:*2+Af_QISh,<hE_KND!3eej\DM2fWtzQ}x>rF"_/Xko9Lp _8nW~X-4>ULZ/#iߏǖq]\^j^_AE_t_w*/໛ hŀ2"o?5IF鯏.u2>ya;Q hPPȿ_/< /m=%6PZ/^# 1yE:4T'yMA 5ݹ@Gp95PlUϛG$jj&:)5 ]x(;TnEAu V{0 j6}-d&*N[-ő<><_ ˿ 5D'YHՠ'&(ST <~bI6ͷͳU4ΐ dY.Ur  z'\X3BϽ.>r4A2R.1^60Du?3zzO no*m'xNF=)N&'gȊvLV$BίbH+/pr|';`c2s*f(qv#'N*?ߣ:ԺعWDnc[,77-js!vúmҖeyI7L!%{#˥($RF75 ͛|SOaFO1gՇRrEHu1,0Zj1\<Ʋ7? 5W?; _IUVڭ9H)M}Fkjj L KR\ c0|F8&~xbP5~%ph-m|h'-7cw7tFxXVH {#~% !/6G4~1۞0ob@'o0g 9 Zx4x<*y@$t!mUķesmL !rC'5/st| \";4]`/ JK<܃I (ں628A130!\!{Jwxeu; ϕ@!<8EYèW2 tI)?&fqM]?nR [{59{.5wwse}e~\1 į,? pAA0lr qu wʾłdAZis﹃Cp@nJ Ot؏`7p֥X_Om[(/'3pϾwoS_9<-dw.2DF\ЉvV3&Zszy]X;\K %ޡmϏ08q:L€d^/!w9Sڛe~*T{ȕg;Ύqn:j">lB{!'C%UjhaMίimE66O"6m|A ,EG9R UG[>= ]c%Aet [ l+w4hsWYL M q-יs-pI$##^ІuQ~nM6 n+p+Y|۔w [Z<ɑf`RƊ.?8Ǯ={îP t7%Ȁr(~*vtWt= NsFS"CΝν .tv!ڂMAؙ(piպu2ʁzrJe!8}S ӋW[\˺P5dNŏ1 C!Ќi|za_CC_G:&s/%U7>2G*T8`?l!,%cVAiNdU@#Q@2L֋*4MzC]-:I9°=37Q;uaUnvi;<Jw #hףMo/+B3佹" B>jj C+}*+inwb\sY6Z[y@Z'/P%sa2Yi}ݥϒ.h bo& 5X,=TOcPJY$~o쭏o^Y7ʌ7&Sk`%b5b K`*xr wT1vw0RXH$Y];eɟk9IJ ; +)З'4Ѥ@(%i`)S[R D"v}, )v>(oȬR֧x3 e18,ϟ# ? k/6{ʢC8eeۢ^*8g ͼJ\D7d`6.iKa?fywV0 +\w]̓NBNABj6\N'j͹sQc%N_n9f}#z%FiTgr6ɞ0 /`PT&Ԅl> W9/V,켙Q,Pc!Z)(f ?L:uuQH7cFyz d}әL*6f3"Lhǎ,}\"G1XῲeWyLȝQ E XSVQ8ٖ qt« UbsԶrNVJʗ@kHV8jX@8 _ hTw1,J8/{Q$oeéYWz|Z>JiȔ:yv wiHgD^0ď2˓ 2q7Yd+F$MXwY/1tȔ~Mx(b"QH<+r{yJ=K@VȔ:2 :KBEB$©H~ml7Ɍ괚]Z*S嚪%BF.,󛹆sfN;XX[k'X%x8i~N7 N6uBxa ǡB w!+a@ %mKT('r99R ;VM F3<}'A|ϠDԇAf&LV]&JJO^bfZǦ52.tpw%~՟|rBTMÍ`g8YG+՗[;<9Te"vбA^c=,bZx` yZpؖX (!Ac .M\ !` ACI Re0#F5)d`|+L e(\06#^tkPCQc5C;1tߐ@&~fu6Cm_ua'/#Li%$.,ˆ۫\2,dpހ |,C"SEٟ 쏉Ԁb];$7ͺLR1/:mO61vɝj E4ʈF^Āˎ܏HO|\OrlAR汗vk O9T|oCT lr 3?[QAijijyȧlN!Hb{ГQ' FRսC.SoY'998%h ES|^pr Қ\+Uv.l00pıE|ISWֳ/1~wAe]4 ATC+<=COu:7|j0q˄阘? :pGC.nNv3 e41ޑ .hD+܀Wɱ<(7䚵#n270 tjExg2pPoRs s (CL/g8d0JxQak5eUoG&82UkZxt ǣV^o~2hd AUKƛd)QKUx4޶`bZD2űH!ZQ]PӢ8qs6,\ڀD(MZ#C&Q֥p engx_%U,0Bu/}GU&T"n[Tٸ]G>J\"=Ce\/"fw5_a3Mt.6h#k r!cU rrCKWcNԾ|\Uby@Pڊt~B\+,}JK.ȧmI&,!R[-c*7<{eö4!.>WwJM/h?n .xq0]) }A %@$#V. jTI"B<9=ȊpͲP7.J4NN2TKW19I $JcPl$ 0{)3YHOPzٵۊd)A;@2|1U(s nz+{  XM *XQ_[I'`PMBv3]i^am_-LPr70ϱI0=3u[ň?wuTHp$MXڏ+^~M_t t%{OQV{1s>]\pe :Qz ny}%w 4kU8s^0e6B` cy0f $~tTNuI}g~T?*AC^+ʑ?bwʄ՘$* >˨Z̓&Y4(#Mg[h`ÄitL>5bkDo%`2ோdoGGPs|vchӖ#qĪzz){VTs tuvGjpX٬x TOm&fL>ިI=l#O Ű_V '6ܔOfrflJ= *c>HaҳA溭%/|5*h](Q˩;!`!`AaE4M@] =Sx͂|(3 SmPjr l(V.qDl5Tu Xז3a!Մ4~7cM!`?jM tSR2A@69!`!`3YAIAhLdG@~v0J9f֟/i5 I,dɘ&Hխ80˜}2`cM7ZmqZXc[șܔW6k&&L*@S:"i#b^Z,փ60Ͻqܵ,(/Qp'6^vĮ[2{ꓲy-D>3">ψ\E8l%t67ŻvHߛGYsBU4c8toC*Y";LSz3!wK6Mt& [ Zp|V-;BfiUM&2i'F\lcS/W[$"0A|oܼcϷ#C {@50M6Y1ϳ]<񥰹w,9 UJ5*LwEӝ>t X))vP(CBX^vQe۵ xc"~q[mmcn7 H<wRxxUQ GdH3NEO.*eύPIx'ekL3sh$i2gPsAv^z"IAХ AwI!G!mD}6J9֯v'O)R"4h="[^=~]%*^0Ϥ%ZP[|[-Yt/'7N XrlDIl?{ooV,8bC=ѹ$r͏nqB [Eꖡuj3 *uk2](WM{>Q,?Z-av5EjWHXa}}k OfHLak 9"BɆ;?8< e0 1S‘ZL5kgXQWcV2^1 *;̤僨;v̀}N+Mj5I"8/?.Ũ„4֞m)blY^l]p +܇۪FrJ$x%Dslӈ?sM+ W"A|R[X!o߁{Ҩݼ$CV)Y'gk"rY5h"*˭XzH@6;)a|;qn6ː)L9Ŀ_~#D0Ld`!;唭zOSu@2$MKU:gچlӳ>6)67aĥZ]SsیIzel^XG|{$ܖ=/>Lne]>2JoS+RknCaBZ[|vbhڊ”_j5>bg*JIN! NT-v̿v AbUdNow#kUR5Z:Rx;Vj~_(|!͉zJ|:{hn!uVi&)2 @?K5RLV/:!Ek#H64%x VOde7.ny 3:I~&gLt˂7y[Sʡ_M%Z>dxAH' \{yJ&6y!8GN>,e;$V4`t:5ht4x>riz tlk| vPV0ۢ)n<MH>CᭁGpb}]Gk\QGđ!/NL/mvٕV>̑ 롘\5R4' z6DWI UkS ~YWp`p/ BhY m͔2 _ 2c(Ҕ(g3hD[Wզu*14]nCA@ &DA};A9yz =Tju{i.1/1SX!O|>N F I(B>/8YqtiÏ7g"lBƄZγ|<}Y8EyV6 ב*#I~HҀoi9Z}y7$0 *٣ILMQO/ wUTud P0w'U? Q(KT>+@^fRPްK4)g#LJ?YD3I਷Vk[6F[]OpǪq od6n(C}jnY|$&E*u.=WgVA( AX;ջHcc{ ;;b#»bVՏ?yԽ`;}ƾ|tf=#[Vnc$xc=tqۜ9C bs=@򄹒([h.PC}0FF0%bTRT7}+53HFs[3|I#:F ъQ0śuceQ/:'֖s"=ƫJt_63Z[C6a Auc[N9PCkrOTX@&[m㸻QIŵ'>; #ZTl~#1tO>S0r ,??o#H,[++pv B|0Ip~5A/o ?42#l8!o6BA tYo0yNLN.IQgElv.ŒF568 wX=> Nl>_uA| @̐y@үB3I\i 񗜢dF5;Xa2 6_t9l+$+j?P4D=-D|AKjyC|^ %BbtN! LT=PߘLY1C 7v%f$/ 0Zgg?mY&KL-ٟI?H$fҁg$P1$-jlZj]'Aݷ̄-u\!)6sj)"`#UȞyN"Xaph҆R$ B|i &qA'$$l{u Sg&uSM@aCGx{MGDz=2DJ>퀼f؈RgN\ =YĊ0v$;͞ -?I5@6Sw#hgN.%N4l&C9Ȳi! pS.'U b7ip%<̥׌y&+{G:Dy f%X5rӘ`o9HkȰ|UjF};`y.K*9ڳ%GlOSi߱R`&S _GD|25).@Tm9|2$BM8- (87{xJ 5);Kk.Ƣcn&tт=/[;|~gTNe«iLgcQ't4<փ+.Q |] n[ໜmUL):OM?v}t/uL;0Q$e)h `i83$f=Fyֱ[ĖsEWqSҜXwC{j{9d_vC΁xЧPؼx| *HEWaX+%n5 ۓBܱQjc &\ۥa\/Џld.NDC8#n<[U;3hhkK e2C7FsD 465;AnNDt=Hbi]ځ\~V8w {?\Xs#"Ӥݼ\z>Csx1SҐЫAǍqd|=uN\sW:۾Ä%1y1KšT++ʸ|A$\:*~̍?2 2g˩T?&xEtPo*ybծXP BijΛ_-8ތwߧ0?[ HjJut`+L9]i_Kۻㅌ[ԍ䒛;W ;-=KށQíD4>1֞\\5!J2ⷧ +P/cHۿjF'hA@y6۳. ~rѽEQ]#Fq]ˬ q-7@oP8VYNPNwHZrмd8фeOAl+ 玞>+>\X)p82[Sl96#o@`q|gr|[zNPa\T;aDp OL~\9с[/L&H/oL\3@p60_I#d-N4D|%1}}88c"W" TZTY'ZMB*Mt} gƷkdarٍA m{ƦNqW[w~vcyyXk(1@jyuGb]wJe&?~sA%dXV{a><GrQ(Ц:y1Ԝhq7he^xd o-$1їgozDUʳO81u tϗgӑftqRsT G@qts.!UڲLf.hjNaIOfBՊ!C%0.VG96B9- K82FyR35^b==A@xлZ;ҀB]_3V F]6c~['y!~S+BQ U]PP>9˫ wu?|^[Hwbh6ټs,8S^$CU`dP#N)G@p6&z ;ӂ%d[_Gr'NA`> =sk[|&{A蒰 JQ@tt)k/ ^ xE-|$.=8&χRS`}vWVCOㆉ ek]CHW:̒. # ܙPn?]Z았V˕Զ\yo hFE<[tӡtFh /; 2S NZzŃK6Mʩ]I\/_Hsz6YةVmM)Rr7i(r3E~UU4tb{iB *UkOyg$iDjbg 3C`i>^PΦԺO,o0U-`%GIv+s[A欄PxŃԩp@)a٫ᕋRu, ܿGȗltmfw4h#Èč]AFߒUU]c?fO7| m-0+xTлn^"v^(pF,sIfKxrch']u""$t## Lܓ,qYbd"pTT6یΈTV?G0 Q0QfW?yMv*렬FQ.XIu J&F_BMRޘ( npy(v.xPn. LDD9*ע]7( zW3XNԝ1Hpe⪊uRcC<݈"n6G-AuN1? j:=9 n&_ؕ4+ebFng@X/q.8մ Ǘç*2Bʧ{|LNea ŐI˰Y4k㹱;<ƞ~RJQSþ^{W Č/&;K.<0݈h̊bHZmIڱs54Ao1{r«Ora8@TeK8R &(%D x[t &$ ~2|* o1JȰܨ 0VL׳_.`S0*yJm_UBxJk,U.-JnќF ÌAǕ ?8&f^fF?.-i_PxJicJ =M-etaVUEXk\ev~]ǐ /msun>Ca~^K61k r-k\P%J̶"ЗTfxjVƧ:vֶk0#73ۃ-=Y,23A{v@L)㓔&w!,fwzt^H [OYr]A)j@ VmeP/p;AT뀍#@)Ӊdi Mٿ!J͏G7l+нwI5{ܸLYE>+dU*XfU( 1-zwKU y+WOR%e=כ嬜E qYR7a. g~#&ql_0?fۺ^|J O2juIQ4} uc'+*X*0=̱L. $#K/pza<1lN*?i7@CVdQQ#0PeeL)MykGQiǘVeK6~n/YoYOš#m N֩eAG,4mΆB-}H;鑈Ѐ!&itoD M)?f1u]j#6fe;_<ۖA'+Ȱ|ܽCü'2;!p]1'-ҵYˑ ;@).3+EzsG7PW|hncQS%;9\x 4)YUXe/<ȖW,\Fx-_"䩰~3ڌ7ERev_znF}e^h`$4{?'^Pf PP"y<ٲDJWq)/dܘdȓkQa.KOp` 1{;ˣ:үohjWQnaU \S?ۄ1yok<@ցm{v;B+x bl3"qs*.=]jjJڗ\ُj`յ|t>/]ڳo`9m_=<(lx$ =>"# O) ~? 5Y,_OH|ǤM`ob&ǿyFˇ#?4{ -"i-9u4oL\Bk% Ĥ0?Ddw$Ҟ5"GߩFW\e2Qܭ#U2jR|$ .wcĮ&=HdÓo5ifL֎+`?5® ۑg(]bw[oƷ i?W. u!,_mKa0?@j\uk x1p3UwZHաd۠kt6׎]e\X wpYUPFꪔ)(|MCe,\e%J1h×yVZqjgzNA.{t&YCVv^IO:g-eo׿rkß6һ~MxTH7XD=tjr|?wE\Y(_پQ5c¤ҔJ%bYY*LHZ<(>W tĮubJoŘDnj?2 E,_ ,ngݲv+qegZ]<֋QytjLNIHL; `gEؿLF)WU2*]"8 d>%WWk+ @=5:d_+Ig&\qD }M`(F-u8VЀpxq2IR}I-[/[BBN2Fy7pH“"mrۧJc F׻~q6LvFՄ﨑Y%К:v~!A]!|;N~3@-f~BZ^|?LNG ̠NˢvG*5Ĕ!TN!*@:\M2"{|R+@Ԓ.fk}ۍs[FԿFBh/K%EZ %IFM Y@"C>2:2YKlG} q4 c)]B&^w<2ڝbHtI&ӽEJ8h~Tdم-R֦#-Ƶp~uCͣtqe Hu}JX~ `ox; OHtE)9h4Sxggxv=:-@O:$Ari2j+9ud&dI\p#xsm_:ҵ5gmv @h9Zmٍ~?sa1{X8}k0'(WA; Ve DžI^1c7NYKyC4s| 1b#7~v\Nra@jLˢA[{ڮ.\SPrtI] +Bl]p&Kዅ^^}t -܄өqI˃n|'h#9w]@vc.' eXpCf0^!`!`tM a`vKR!d;Α?Һ^Efmb~Y6%x`v`e(EuJ.ܠX+Μ]dfs4LQu[+/U^iFj@BUN,dDP`'So1Yzl~Au\Q: ւE3DF@,D HܶH^` JA?FDʾ*J puy!`!`FjM1i H1l$2u-LBb$b!`AIAlLi/2C“% #ZԉyP Jx SJirmw}إhfrPZ6,@ v%T]jxYoK;t_o{ $\RqTl#ԧiSĴ n5 1d#=qS ^k [;TE>:pY-~s<aqsl4`":?THU4()ZţЙb ץdQk"M'hd 5"|'k(?}R[Ξ9I' mbI|_R3-R]pPJH^o@wL/o6ѿBDKгZВxiTC𢜘G Nտ5e[YEq93no~EzzH;qI)37T=`F<5D_Lګ C{2AOӥ2Ǽ)@eda"GЍ#BEqдxv."խ"՟= \<\E -PR_'J5_Q㾄#qdJc]fɩ*sl^GrgySqz}$1nHp#9Їug&hy^! +/`ׯ2edCI,cLɅGC%0~q]15lVAN$jL^QOErЇZnj+N0׽oUoYJ*͖ UpYucVL6ݫU"t2m2_6,w||NT2_(Pt唖r~2t jck}߆ '2&n:#!}\lW8p:F`&EC6kX}PJUq>9.B=4I.FdAdS;."^E9mM4OٽxRcX2Q)Z$;ԛ:۲j2$ Qj 7I#[nHMۤ5zf cNꇌ} ]<ܺ UI$ 4~ytZ3b|oD8΁@Sɨ)1i{Q@G&㰭{J$)5-8]~E5ga.{е>,i~Pa'D|$&΁)g7Jc}DMǾwظ-s vGԎ} "v*^+^ DtəuTZ (݆E_``aM lcUbtl&d sf'gdNtKa A%H#Ae=]0rC:C^ <O)tI^1=]|!Q{%ƪ {aY1.*ːT 70;q:Y9'׉Q4͈mhƯMqIG>0v=&' R!|!!`!`AE/K,\!y襓Q p?\EA(+#)ݼ[ѱ"{].W"bAi(gSq7aJB YIQʨ0 QOˊtjkXOɊ_B? u;Wlyr͸"fn -ˑau D `,f8#Qπ*6!`tM"r@*Kݤk{,P[#hΟnꙣqof8}V.$EƎϸ=g,2qG{crq b~.'/eEɭ$fQl4K4 @`n}Ŧ!`!`O jMTJUjǽhg }i ;Ir@.@ wpH HlfJ!`0AIAlL߾[̘?_ܗXnmŒ3^94dm@gu h$}# wuM1*Ɵ7V 1"CP2 D\ܑY @loi 4+Bal12ָR9ۛM8agcjyW\^=ב>i ckX %(]N(<W:R \pqW eX)-ug}g/LyHΉ:b|).FPi珦(JˆȔ&YDµ.J>bMG2]Ĉ7.|7|ѸKQ H )b<\ި( "*E ʳhS﷐𱕲$Р!<ɐs :zջvWpL3 C0]!`!`A-E-rAxQO)Kp1ݟX< } fw C?Ȉ.>/6䩠̀zi͞[U P[* `9aWLP@JeWx!`LtM1]E/6XkXJb`Luw׻3HrG%7֢۴ZX z#IYKզj(0aXO7 Fa9)Xa^|X@X-%)w~9!`!`:NjMU @-v[b@x!`!`ASIAlLgicV36vh$# ^xe_! pƴQhO!$8k0t?tq^=cN82Ԩc7o);̹R? 9FMa,^7kq"=aX 4q-_hbd*lgg~}l+_owں򓤗\2=IQ u8X>giu?!0@a_ckAO,qt ܬ!G3JYZrI@M76y Li=O@<| >)խqxH8c_rCyܗg$32xP鞯) RvǞRW6&HXFrI} M~9;=ty#zӴ&r@#vmᦴ} #x$q~@o#zz M) H!`gAqE-*68%M׽J.= z}HMȺ>65L*BPO@Cp`b/>@\!`!`<tM\jZBh%l)b &H!`7jMB9{!`!`HAIAlL5g@qM2Ɋr6 I^5iƳh5L{J}.O7QKNC[cs{ ["HS-3h罃|͡-<_݌ cj{.|C)myA I8TI'h&=1= G49](ghv ڡtR懭 lkaJh̀p ː R$&| M V\t{1=aӵa2E_B8ֽog%f'ӬZ=Yკ5Z&cىFCHy9[cp1% =;;$p0RC^f"R qcNBl?]a@a@(7gd&N)ښgdO/lksL,GFfsI^PMrDuZ~gGvS݋h&f?q`)y5_/z\P4`R9 M@<@NuXNf mrG( .sb !`jAE--Y(%t /"Í6mh]oQWi-N$teM~v2 ա>L!`!`ItMTY@ @Qv8KI' H-@!`!`6jM>^c10 3PT!`AIAlL;GIɕ[X|l='zhB}Y'31m]۩ *`urv_Yp SCGwbcfhԦsvCa^ЯT(Dp#60pmrt%Q#yjC8h#@ʰ^F9.n!`!`KAE-*6^c10 h7!`AIAlLν:(] 7 T5l& ԽchIX^l@KjJdz\ Uf.%'~ o_h$M'-#'5jbx_%M01fW ΋;h^c10 h7!`!`ACIAlLν:]L ;5royWn]X^l@J`iJ9_6Wѧ/fZ_|zQ;8m˔gߤE Y_h!`FAaE-*6^c10 h7!`!`AIAlLν:() گGOߌCE &cNW`@@>MKG9uA| <{Y4}vȇ4b^9̼dz3jNA[ g[z"|p\>m^adiV5@r_b  @i;!`LAE-*6^ca2ɔ@8`!`KAIAlLν:;eeq|A;MG2_'tm;/we$%rNDEJ5KH9ˢ!=f,"͝tA‹cFk+Άcȕhvygy7Ku q[\GqкN= ,MQT;V vR|O Y/kO16-RIv\mBGZP} DCJÔpYS p 0ՓQ$ uq!`!`JAE-*6^c10 h7!`RAIAlLν:[m{󚂋f43"(Q!NBf,,Ao.`V]O3j`WSPn-#EAw W*Σ#MP ý>"SAq/VAۂmo7,SUfkvYߝdHuCaӴ1gTs,r66Pb_]<6 I1RN(s{VdEw7l{M :kBR"KX|,AlU֔Gb=D?e*]܆=X=` 8!`!`MA-E-*6^c10 h7!`!`ASIAlLν:q~?5nZqDwO ӄ0C=|/1l`p 7G`0o޽TzЬn;j1Z(@~yӮj@4%Y!`GAqE-*6^c10 h7!`!`AIAlLC8{ċ[{caabY0km3_Q"Vv/hG_ᱧL꺶Kܭ4I⸍y{WdY8|.> F@%QDV#|^c10 h7!`AIAlL< o#+Vz2x`0a .d,u] uz>0!wfM ‹8>bA1wq~la3n5Q|IoWk}½+rzS0OdTg@MN6DlJp !`!`JAE-*6^c10 h7!`AIAlLS]$; :ָ=ce&`8ToN 5g1yfj+UFrMDZU-56$zQ% lOͤ9Y@G}LlpvʚwLavc57.107.100B 8!`HA=E- X::Ma:hhڒ _xW@!`!`6\tM.`b!`4^jM t p !`!`ACIAlL̻/;΃e#Dy?Ώmw b8aIPQUpl,'Xp7j u@q0>B 3Ӱ?$Xy$5T;;`Dƪ!`IAaE-V# Oɡ/@sv֚~?AD@3 !!`!`6tM ?3Ľpx1C!`4jM t p D!`!`AIAlLSeޥ ׫&nͺoln(H@m;F_SܐO@gc$UTjʵ&^LLe 2ϊzk؁!`HAE-V# Oɡ/:f gE^~@EL (d$!`!`4tM ?3ĽpxO!`!`9jM u6Cj[mh@&!`AIAlLGmQc㏐)t  B u@!`5tM ?3Ľpx $w@!`!`] jMal)Eߊ:B $o1q'ul%P!7,hؕVRaKC$p (@.!`A IAlLL@*<Wen+.}p{@ȩr3mʳ`0ZZxKK;o:tX}2!Ÿ_H,cF[&7O ^iB{kLmm31v܇U.6m~p e8%Ѭ y8kJFVb.x48ON.b@QS3'a9.HqmUUɰznjʤ}m%?<Dqc52.TUfYjR/ $|hRCV)AjPvj;9ͬ*_MŠag9jX*~;@8~c*Ib&_ / jC&E O7dX;5F'p{-1E6P'%(|;><[ ;RoFPL ^$3R?}r:0FQ)%eي |P|ki1@{ܔѡf[V$oNk;Gx)gO} BCT;*ث2 Mww;D1!~:1X|v P;?W^K8݈=&|Sʲ l_rd0TS -3GUChsϡZt Ix0)"P`KmeY& o:,F,# rxs,&?E,\h "`@8yG Re&{F#SlU(?0W MQ Jl1ݖm5 c&)K)ךbzוuCfJ:$24 ~`]i}~b&-$* 6 $Ґ?d8Yռ% ̮?pE*B2?Eޥ:.-), e1.>(4](r""z1}%n^7ٗVm[q2;^\E4ѢoCnq aUjJMQZDb6ڏФ!lL'4[e;yC`.X%w~$^ݙ2sutdG]dT%0-cZw}@Z?-l5́}+Yތʸ n8$By@Nʲפvӱ٢@)O7/W rJL|sf8q&)6ɼKḿ qya;gsI6gK_3LqU8ev3O7/+%c%>*H; !GzwF͛T@9JCrec¶bKCJkK+]34KS(\7oj $]jsr?0B?d0~Gmm߂-^%J 'c儯"\`|Vʀ^j9W:ʫ"FZ{:WrG48-ĒȐŒ+:z4Qr,XtZDUr\KL2Etpc-F},<l(xѪ ..$JqCȿ?tQL&r? "4^$U6[ǔHyNHذ/s6_|1$j&#Q@Iް,ޅvݩnɠ@J^k4d#d_$,aȪ|fRe&pg+8f4uz.g ۫-Q$i,)qoOAZí〻_9yoީ/7G+!KBm A@L*rAvP?QfbA{^T{詝5 h71@ MFyT ^[Rifwf/#4ރrބ, cx!lm."\Ty6e{!"@nUֳgT9hRݓOJKG50lx&%Ԟn_oRcODHMMМ[nT3EuV*{3BF l+z7eP/_#տ uom M<Cϭ{%ࠅ:ŕr`;d#d֢Src1-hX^ Uq{N[ -`&&'XTyKud A^V0#9&{hdaPM9NoW䦚CuԜv/3|" vYVss^ Tc).qUvzygpT",%j:6JSq""i7L}Tg%y~̃Zj퍙L MQy4QRSPH,ׅ0Ne^~  QY y<0\ь&EMa3^044s^P `~T_6sG/ &mu؋nK`_lOعQu79[ԙrU)@z'>7[?Y2kkk +洄(݃^$׷g6/_3RZg"AD`Z d,@#14Վvn:'FkKa17a79ȑ \u2I#X?nմr[$ X,iW9ӰLw9\~rfvT.P嘷7@Ө,IdwTx!faCG6Ao{Q+eZG֌mͣ4[=igvq(Qch lisHwRG75"跶f^䧝ލD ^4%#dߋ`@r]6d q{VRy- &-6%"Ե~Ldyq"y?C-F,ˆH6>}P9&28Rc#CfteHމlVW;b]#}Q98?H{6%tz4MN՜lxrs.8}Z_INd}{hvN/;*(Q_ch{| 4v;9㫏VMtxMmn D7"®h>[%61M9M;.I}h+0Ͽzt$_4U8DTLE`\͡5KעDռ~3 ,~[6{ӏ:St֍B%;A ;J"?G{-U{SaiGzsfh=t-Z3> ϙՆC(+`N6OZ]|t = @^QΛmx,;ع+Uo`96%,E&8;*wEhD V<ɄRNB %&S 5'UN~pK}ߝ:bJO%Zuoelސ@ (3XzxczȣBk5ߨ9'hKrYzv Cy?\Ȥ  j~XVcn!3pD{;/X, +9?2w )ICMՉuHid2Ǫ"ryzAqX .aڎ5hcBty bjUh%X?Eꀭ3%,bb1E ̏l9mL}25m^4էawO=\?`aӷ{<+lzв׸c*@~")'@@I:FR4Hz؝ U _a'E >RN3Hf ~1W5+-Ր"QcɍozkmԕAa.|ntbnWTzPJ_SM3lATps%59q{`oLLc& Dߥ-w %Bj:Crki%/uoav_KўMMY]u us<*x_)6܁JL{]}peݓK4p*T RxȦ)p[F̽$ X0Qp[9ӸaaMfr@$J3m5Ò=Ok>+thާiՁ!`!`w,jMկ@܁> Svb3> 힄ԗJse9"ܓE|H|{NCvc ̞R04dk͙] &a!eȔfINQX]6E==Brr"Ӵ yqN[q$zlvKBز,r? $65ՠOx|bˁeU&zw,]i\?@_&C!վݵM# 'xqZ $}ڙ(C Shĥ!bM$n+,z"zO65urtwmpv;.]ki@fM$PwK}]5/g=R۳\* LzUJWd_]W7+(mCߡ;+ /:f2Xt l^ݼi҈㈧4zMGpm uO%vsgQd%%S_/FjzRtxHB9SH8qW`t,s+h/e,Оif^2,t_VsCnK)c©|ׇNl%I[6ptW暋:N:,NP./YMߢ֋{;J,UiyŊ3ŬysY )n®~[\vE 0in |^3;jfton}`3Q Y8=¥!GVwH8?2l:}= qD͛Jo; GQQXX )h CTAmӅx)yNEu pLQt1cz4lQ+}Ndk&?2f {8܊ u`)gt*-y;.OwZ"wpj^7&* qe,|Np8.rQ0R3:X&58.aƋ g$4vr| @: /zzɦ\=#b^<8 a)ƑI%qF=۷[ Xr/kIzSm,a%@a;1ʽ&X\Zf.mcs[uqFMzdR\  4NA{>tAwMEVKpC Y E]!`!`8A.I Re0#)GّwH_  z‡WIbbԲw,<*N_Dz*gw6-Ctri9]9tyHvQNaM\ᰚ܃oZ/k#hp΋gdžЯ~4?xIekvעoL_0Ih5If`mՑ,k.oxg1sٱ:-*V%yOMRͦ9 LQ پñMQK x# XF@4͊֊Hp؎) PWiu8^FaG`;Dav<<`JgH˞U̧hx!uQMazJ5SNafd(0ءo,c!CN5NQ$U >v,EJ=gHeX\;#Kt)8O~-_bCl(aIζ2WUyqCCw*n,Ԍ;I39i*F /X( 5K:LyrJ~ŐgҥG $/,Q =9wDOk:+7K/B:J S\1릤}}M$յV5q<klqxp=O:;㭕` xɘd띥4N'(s]-v,B|x9קzxMD&:b.)1 X0,I I~ L ]fc6I/%_xE5uS4EҀMh*h TVwDBb%.wZo/58MODz IQu];Qz!Cxmnꑏrp 5GI|{;~/NgAf^FL?3"0 k++t;~˗->GN&V$ 7 &zѻ2U+rdLʕuL{/xKːa\^w+tz="D}Q{KT6WvO9!q\2cj2&%24xik9/弚tXAuB+8Jc⋥})VDrgHն[N?aQ@5-l_U-EjQ2L )am 1-j#hu7(M.c/ʿ ?usqB*k'(ՙHgX6MB&9)bgWȧj`[oMj&"K0&8&G$ ͇hJhz@A [49u@AU+ ΟI["螋pcm\"KWĴoIo /m`kgVoQM4A0L"ϬݖPKq͒@8M6fD;!I-!d>#RƗ= +I%v!Q0wQ<%RjOp"Dߗx;r>Zj.2?}0s4*c`S^ 6T5ik'GԧI)VE|hԘA4/[@%ǚsyb{^ai[[vZA+`j>뼉2ljpV!S7S% w0mdWT!_`.VeP7FUCfų4:4ηvP,UA8^#́-% wVR&<=MMS՝K<3v/[_rIDYkĴ2&s,iW @[ <=JUv~80ջ%"~(0>@1waH?":4t>xzS =RtOnEdwHHQvZxJ gj>5lHXWLlP**mgRT;nUFU{$ !WF=n kp]oZ u5K793<%INE)M` @`3t>3D`4ZV>wa('µS#b^'-J1#͂6$pd~׏۫AH-32eتti̡y6 sk 9Krc8 ]h7fY%|`v.XU0$[}d氜b'7)'ݡyf|Jw:u@=Ϫa*khV35UIZX$Uo3yq@}NKb;()6(yvqhFyؓ:5@(Cxʻ?{bPa3JlUqd0=WhGf1©6XT  L.2<+nī^)_a*5Ŷf&x#pn1)} mZ.)aI8yT|'v=ckEFrHȰ?0] $;7o!o 4w.ہc(XŨ.^i%e].Fgs ,iY~JTPc0tUB_ʝn}_yfXCohw*Pr|*MWEf_J>Pvs;B{j݅kl6W/aܘB>MwXbv . мj2iTbQ],l[f'F|s4}R[6 N&NGףOs%}":xoɿy$U"@ )g{,_{&]LV7s;ʸ,6y .0m"?fߡҥ'yz}r]EA)-O'ڱ ܞPHliepUNU_M1Ʈ͐6v?T$,#*B yڻa@'؍:CFxfTp4pd!bM~# b#6qwA" ʿ, Yqgy1eUّ2d$bco:XM~[Uf_m! OIZ=0+u-yr73(gpnE9| GB`4LhtVtMuG)g6Q0ߺ@k0hs Bv#%$. O?yڴeAUЭ9X\[Gcfqo^rR/iæTƵBʞABxA"F>;)Nvr99VƾpL*r@B6#.t>6Oa] JH!ɦZx ʀ.V֋wP9 ñ7!y _ f8a,B-*ob%zJq#3QSqX̲bQՈ13#ajvC(s6W 7%|ʄsGSJo2V82a<&~*p5Jq%+f<>W΁~a,lF0.jCf9/Ra ~ܛW38@[w9qo9;Fj"!H×c] p);t?=X l<i -yGɪpG BC/[K&/Q#?DlpdEkbE ̸cYLka O|ρHx=򟐄ǃMԧ@?WĤ: A(P.I g;Z83˟C}˙D _1O4x`ܪ!" 6niyF.P{HgC7(O:jNKde.(!x |t!@ق TV0 e/SUޙ7!WlVACϸP +_s吶%8e*=f+ݤQV%f9}#4LkMfɋ` ;~I e|.%۝q,vPr ,W]I^yhv^:@l3J.MrcN{.Q a`qw5Qm$ZM/~^k9 V|Z/[-ˠL؍KB_%ƏQ7pZ$64#ޛUDU0q  љdTZNEh.le7Æ S>茉'vHg꿭r7|x2Wҗ$M$&UYVq17Uel& Ōy݃IuѶLnZf2NDg[=stXڭu3ܭlXB,4,1\ F"Ҹ=G=:˔EܘMV 29Rf_:E`~;|1ֹjèw[(71냵)5M=E+8#+YPbh7C׷_ e0$WŸ?FW]dxar)#?KN6U; ݽ; v@0d s"Vj!Jc, 4X'EJ5?ϙ:"Ş/dju0T3\ )3VpF kvPLQY"N?ܻ݃hV9Kl7f K?^Kv HrBt_.z+;*EQ >P%%Rp*ZfMJ)%j uz<-=wyvN~+!nas/N_u7W *U+TI.'wy^`05X񬆱s{?`ԣ`4+OdENq'#b4:{ "I싈0 Ѐ5YL1>R2=O<{I F&B"qptgқ[?^\F!\\ޘ.+pL.ALOYs( N{ a 4{UHq,+PaEpP1nYUb6G˳P#i7\& A0Κ }H0, w冔u$0P#0 S|&ZO?Ӎ tQ2cd#l-_*yZ0?I@f#):޳$& f6&PŮ5F3DG',b(EcCs(2o6׾ĻPp2qi cF(F߃]c.%žg|Gᄉ!tf^'~noՔ9X(aWP ɓ[\7nm>y ^qS6XӯVM!o.)O[*)[GT18e}ޑ˙Բ5ц͜-5hZ3#ҥp"u9Yf!_RP2ګ~+07lѵҲy̚!z j*$> M^Kr#a?|+' yZӉĩkt`ZD5,5WM+RAÖ8 Rbu$AHI )P6Fn"m48¥'9Eu1ʤ2ӯk1iʾ<0j91Byv>a4h(!ݪx?W6/uJABXj]Jxg+,/ NŤDUNAnCUI|:wIhnHVـGR)Li5%Di̥-k N>z[]BwEo4 ?Px~rAWXm[{%R\=}D3/ ՞.o*t !âE19XV|lBjx$)ȅEy7+9X0Nyi|ߍ_ ZT>!,\AD5˹iӍڶWrh,2諧^Tt{`C-) svdqtJ; o|aB:(g6>,QZ٩WrUz.d1钌.K[t$-8)xJ@܊oqXF2AP_Ea2ۦ!c`}+nDVV/m8QQ4lJ~3Xi <`H|Md KȭiIF4dX*˄JFnOg|msMrRP q _M=G Cu-n3xhJw˜]Ali%8I\zMJ0|F04 }[ϗ h!vz t,q?d32C(_8[_[:DxeDxpJf` w.{/0Fh'C,:Kj.%w6m_60eBOߝb{ &{I'=K4_VM}˲L17@Fʪ9qNS_^KˤQǖe!r'I4)]!fGQB%zW%Yn$UM 7Y#Mɜ"^w;8 wX[Z \ h HPy!: jT3[?:5ܖ 9=SD}$sSlW<ÊQ-lqZL$^x]P !N;۳/.,|XUo$hL;d p\X-5KeRoPV8!DqvԖ#5b0 a"1jc,&A;E\ҟq$=R% ڱ\}IB4c1sTFϼv$UҠ(Ӑ?#{ᚷ}sgDX c{kF.HFHl51fٵ+%)5nh#(IBc2^d@zSqHs&v̎v֭v~7edV+'<.F,<'90(h1tten.wJzz ZCx/`R2ɷ. HbAMuV 7^ Nk\v@^-eh/a6iP+`3?irz2DŽ_z!De ~FYޠ@\e :T%M#j+EYM<iYqa#`U,"ax|aW$Cz9wO1f Mw |A;tThl0{'O$Kapd.} ^es :~68A)dr%f>`uNE y) bRx"@ wB:;QXlI ఔ4`)Zaey̙ o%.e;J`Kxq$h"M^4Ci8Hk, 8v7Wd-X7ʀĶW<%|ae.&<3vEk^\ğBSo78m*mNxr0~1&; CQ&;ad`8CgBK:c<#dQk.J iaHnFC3ٍη, =$h:=e˾jOѪ?uos zAX/;AǼZW YU  ?U3rJ>NWM^jwh% D/ACĥ7,0yXLCuhGze ?n{q{ȫl#yX5Nr:Dn+i@0܈EaC.it_sL13)P  7 kp .:g|t J2i D`pzlKҷqB c-y wPծ >ѹO>DSunjڐTl4 gH@USKՍIwZ9;_9c^zn(tb+-B+<.cH۪=A/ y+ YiRA;"̕m vFfޛmWGJ~ȬnH ,M.w"-n,~GvEPTΥ޵3W9EPS>߃V4]Ւ Ӝ]VLcn+A]bI SSZYT82cULٚm2ۤ\o6D(}rzRU =Ydd.!"iyhqz`9~W ޮWQgӧvG.iN)ȋXct{,f{;cATݱ)![ӄ'pB ४,׼0?l1P,~V`egP[1ʓ <_V0_]}w`(<ơܜ-P(fmǕwp7 =24:?xV '\Y| -/ӑ[(4zpK@Q{aQ{PSFT3' uz" 1 ~1~ܼ΀A[fa'!rNzlmdyc úiXx%#okdxnOv=&=Hj }`w-(Gk,)q;OTh#Ty*X\ވY_⽺Wa2Bk"/{$.*/ksGo=mtHsYp@um4*ė6 : K KM4&|p=ɰ-”%#ģVeqe>λpHl(]g%3h^u6"_ǐ|qp6Ȃ9MSCb >lOA>WP-WQ-bN>?d$tkH.GG^\uinj8aP Hes+.ڮ 4^)>&n.{ߖ&nl.5Ly:'G)L.OoM^`?Jf5h0m'#2uPt4AJkQdIpED:lG>ݱ6W/!2NJm/]u"' X;gc f&B5$. 7IHbg݁Ub!0u9 W%k#$q7v=@L&h]TO?%0Yv~-KCӁ dkOM s&v^~}]mq ׳_YudIedZl`ZK8Y86#`ʉ@K6(1*>@&NYaw$Xq`vtMD\< &Rߡƙ5K U4&ypk4צIñ 9,:Kl%obuOo;Xi@(q49)V|B*h|>ж}*A\:FD"Ckrxfn,K $Rߎ涢`Ν %. 0oggdz%/F>l+A+yGu>CK48dۼu`|ھJ"r]F>1.!f}ת(]ȃm1I%$% 'XmN0mʓv3b4 0L*eOY 6"R%mwܱGf]zrm+K7X"Uz :,93F2Ý.#f$4M{P܊1iz#nȴi^Q<GŵڻQ]J1ȓD=*>03|k*:v>gV.khvO0DazºS KSxD3Rū >XBq8XP+3hf߈ދZI&S>T=8^L¨DԝӐQos[s/h{ܪQ75>8D.{DuHsnp]~o>SD%Jg S֓0l+5SK:d ⌬[=ةr^FV{%:NG#B_#b~wR%vIpqB~˲Az/ݟlsQE@1WN]$)M~e_ q7* Ch *K T&~٫3J+E{[85KfI(O, VجXEi{4맾& e&q>쒶|p[Q_Zo]e"Z?݆pC)@E2ۜ`OFt>#? xi燙[un9bH }VjvQgdL:x]*S_L % BMN~{4n]*4zinݟ`.u݆l-c2Bb. Uo4؉ Eh(O\g!XLsPmg//-E3;/b;sx@#vS50}1)"Ҡ_x}$'JA%Zy}ky9j,#w=G%spo:ӊ_$# yԊ7Z-\,$PQd }LuΊ3JCo-0ړl::<@X@lc hZD{ozQJ"bx'x(jLU刔I6SuT+ex(zLR D4\5 n%9At# 7HPumQbI)ǧW03yP͢NҀԛ~OdDxGh)L[epC9| ҵ5DYff$Wjչ3>q|aC/7ri:o>ZW|򲻪; u9 Q?Mߧ$;?uaKx~"BNqEˈ/:5|K~FWjxr,μ%h@]yܛe|X/gRÿ) _-Cc]W!.ff)ngN4=#06ݰ̗1xJM|o#Ƥ/hJE ;5pO]-tۓGH1JehOk31Vv!Q|ܧHpD=0uD78#gZd>3ww2n V#Ş%-,ѐN8W%ˈ9$hPU#mh.KTgf3x9IRʢ <> 0 S5!6wی|{rAEj ܏ J"w˥>I=1NwP'D0LєEi<^e頯ȾCMX|K٫|&_AesbZ3z8<=-n8&"fXV^ybVv):_Yœe֡|zPҠ!g,)tkVjҝ{<[!  =F53\u+]#H0 vU(v X_ԹыYcrӃ(?9s %Lmy|IbI ZŸ.X[ǼscP.- eir #f#r/F4#[bR m1!nI$4tFЌcLSk1k7{ %&] `ʦy9'3\T鍻vJ  @|T>5S`V3/h8M XONoLi6)xb\7$7gyb#\/AEvE?8]NulhWs"Ѝ3_אUE)οehu͸oHhDa])MtUdV q$ҞI.>|pV[#s8Cm&Dσ&AR7hLuBxc>wr6v[9‘Lef1%>Mq| jNgN+ bv)*gꀥ@ׅuY@P5F(T{}V%.Z RۑPO72xRE|5KvAȏ 河󄤆bY$D1*FP D<䥏,TO"H͎8OUaXkFL/+Б<=6- BZRؠvnO R%R<ٳOK!/vb*mC-;9~"Rv]l_8ak)Mv:!2)RGIjQW´:jзh͉5砺p 0"(y~Oa6[0*a_kWLܐ䉡o<&痷#ɹHY9ehkRݽoiO;`I7ShW @;$3A ~%tbe 9Y)i(!G[RJi I3,C KjԆ̥v9 TB;fXp:ذur% K4Tl>qRq+ڈYn7b^s8;@aLѦV{k^I) d^\s+}0F=^x;eOȱ>LDkjkx#*C-~iLNcsL hF|&`}xf~ dMWiI<%C#RᛷꍉC]D,$`<%CC:Oޒ'ݏo.+MϧF0&g-BtzG:!S0 X?|kŴJe vUS6F;>PZzIhK:JE&|/ X?tV9ʁѭkqABKMm9mNvfj?* 4 gI@n!W͋ Ŭ~+5uoKj {xdP)io!u8[us|ْN6Cdν~9^vjw^KeB~B_:N0GD܋pAz$^HAM"`p!'U3-GU_ oyk.hLZAF;U%oB)_.f;FWa 7tT!؊y x ժ߆GmPc8sHK_ߡJ jAo6%;6PwwMSĐ*ZsjSNeo} 1*w);B6!YoǎM z; ۯź*5/.̟>T2r’K|o*lLty9hJz:6?E("ԗecXy9Ui@&JqЁX"*z~(b1\^yC#]0efLP و0ï7, Jb&k{U hećs;bMmݳGXLW][X fCÅj #^Jwe|q>aêLtEΧ}wcSԣ.=A\PtG ceͦuGB}Cr=KN%ge4FC0)<=Õ1S徟/B'U z/RWK;t_m1#0bߗ>MNB0B3nFŻC6 gvbNJjne}Iܔ[o,e+H0[l&'2~OLo0io|t%ෟ qٙ][$+7(kXpo$3(i M$fbA:6*+ ;`G&Pc?E`ny&G>-f!Lq)oܫw~1h|y)\tsmBo \z|dGZ͋g` aXU {P&XO;m֙}mr\ Dd~ :|H9'1& *ؕЖcn @O}ꔋбZVz;lTݷW:(χah^KoN l$a3+u֜$ IWϦNCď`Mx<NCC.F†I\/*Ebu~cpM7q*ϊ}aSVO;mMBKTag@4OKٰ[U Wu3NK2N༤J}9uP{5F;zN1.#\S )0ĉDIӌA<,2 Uc0`ݡ&ՕJTnZI3~öyI7ϧ-.ґ0cÂA$ Nl4nFe{"Bbi#D;?Cjx$p|PA 6JL'+a;˭3,9.->Tq%[~YswYimNV/$lǑ 6l!@ܲRj&vafrk>$iSC,/$3׹*tVjH'ew5f-En_OPLoūwdƅuYeH|nFp,z6My28%Dhh.o+p ߎ ͩdB"RHy6qҪV_B0a"PZ`"9s W˿HXCF0iAq9lgb t`G 9"8:5 Q?X:$=q9h?IY18sP^! Mڞm 8/>KpwqQbP]`qIܠ(!:`unE]$H'bB^CJfXvn(9GzS0 6HV%PC 5[X#Zo C%Jo;FP{e N@ɼ -ID1^q$b`4T!\Xm7T,d`4m|/}=KL{5jqmhV`FJC5s-֡4?2' յ sCMݴ4 n%S)Ď` 8j_Z:ھíCbH]π9T7Pr!AO ¤dZ+|!=v-0ԵMceZ!ʯQi3qSfcEp~tgMbǫ,k!GIa Og,1}Ӹ0Ak5%(qWL~g1(x@QrD~㴏LD.b_Oپ t}VF?Og-MA6fpO?r/)jUe,6J֩&Ǧ>4+JOش!olѡ-Q/1<є&F4ۢ,U J`s$P!޽-ƞtD5i;[ْ4f ^:hZ&3ht%.`QbsjRC Yy(,۱E`LA6驘qa-9JаYF='\L\pwDF@S7zN'ҐȘڑM{(z!)mZ+Rb#X*7r?h5uυg,FNY=i@+B)?'Wr) :4X-VDx!`>@,8 9Td 0pC ވCllFIL??[IFXs5=7z,KJ۾ָ_ŕ>z'L3ƀ9[T)*P[/2aH .=Oc&#E C ]/8~TU[ Bڐ566ؑH2"VmZEÞB[E48⿸mvtߠO. w텐Vo&u3*dy*n!c[l'a:{mVֻMskeScZ|61-M﷌=MchMHpsnso5)e&.h&5UT ~;,뱾l cd>'HCK +o xsA4ː+}G6g ~.0~7 9O(Tktl2MvKk{[Jn$t '"$>PSsc]leICh_y檼9\`q D8>0Bm )Jm~ ٭pm.'BpJ8?pнOMl˒~DNFAҧb1Zzk]$a"m-G9wHmxQ1XDJ@8UyZ5GPmO`Nxlj30L:2N=¬3Fo0!M0l)ϗWahAUu$|?ua~+l0u@326.fgf!mm`ڋEF *:n̍P6gNds+gVY-C lxQ_s:<,-{uNhZ)6v" O#5ܳդ6c18"uChZk{ >t>C%Lj8 ~W.jj%T;qyܾȬF2wTN~奝c>.RbM-gG/ 2S`fdcs}oV4(2Tpz'~@֒7>}\"dXtD)Pͨ4f!:~ob;0·j'?8xʭX }uOaG:N6iqHRZ ޟ`b1xe8PI1V)ZwŘ:z!&Vfxsh+qi-tͅbE -mTKIv/Eе{`9: 8ԇڢgB~O& JU˧7B/JIE *D ۖo6͜6εNԙZa"`r}z[gZ/u wx $Qc5;aKrRhXfpˆQ G#϶D*g1_(|{PiF@nP+#!<t frٿ923qHFEsX %#. 8Cŀ:ͧX>wEw;n{`Xm䍅yǍ"<"x CCo%pe8ls atQu#ɠl@HNvg޹l5<0L7N2.\O tXO8 .{[D˩MP4ڵ0BJBr~S#gDbt)*nMj1mGU"Y\LmGYVduKUHk)T{w3EK.wq(Ae'cu^q[v~xt1#YT JhVr&4哩4l]յIPh t^Qh':>tX jz;H.s0-Rm1QmpiM2&z !c!y ٟ7UIAvb:hPza-.uZ #^ ^"(ya"!+6Xejl_yrũXa8 g Z{ ebtf 䮈=m ׿e:-mҺ;zoHpABm"F0!/!AN[YʈI( @!p뙒PN ԡwz:_'j帡ێ䡑ވ.G=Nasܸ9?wh# Sm$56nXr=[8Xpf8x(+v yl8h8,ܣ}ȃ/>?QkH/ne is4HjR)FX W^!}{W6;/&.*M=R>O)R)KqеLmgzur[g.JH(54}iYr$Ei2O8];)_nZ}V_A*piׯ:,SC9AJd[RrK$ڤVkT{aS(顡 [HsuQi@% ֪Z3PFd V_ctǒ*x@d)^!OcAč jaW,:;!Φ-nDD}{s#oM&|Ht Ƈŀ:ausfL`MaX cQ\<\^j|z1/ omt㟋L'N)Pѣ*HA>V>)1mɵ=zF -b (lN[#e/?P$lIټ/d'4̑%(F]7(W}~T@cLH G`%1>#Uz(UNB#6,{mNh8ǫ")eTwQoJ\<lo Õ T43e^ߊw~饇q&au/XT߅J)obO%&߱裰G}pf]0jQ'ĺz ЛC-~0R.k ̳/95Wq R7kqP3:mf LaU"A삌dYa+̰Ҩ xo!)Yh;/V1+.PVTx~0ҙD 0x껃}kK#(efUۅ-YR7@3?=Rt~H30=;@ ZF8~gOaHdijM8WnVq!C 5Y-z~PSXN4-+%M\ e㕭+o`zU)?s-fm,كׯWRЍNlbգ}B'U饩.9?򳡇bfx[ mW_ h}|sσJ$2sƓ|Jح$ׁq[;йkfyO"&_6RzJ[& `OH#¢W4I:>a=O)JxMO:f̷~xn4Kj|wJ 69D= >uSӤ+rMb(j5/T)nΛ:&?mf$鋆mÊJ<LkH˔$$_n9;cOiͼ7%(3x.IQہm B, 2[Q&lT1ٍsh]TžC={e ޲g3][y|kxTvj/Lg I,65H)V\aIg("IFm[& tO:?Z)OUȱN309ݧXp{|fm0cpQ!@R_F8P5uSI0pɋ`R)I V Y2/opz~d& ,!W|-CFg(`lT[mU4қ`* t8_ə*?"' *PxI|HDӖ]_ 6*#KdH8|vڨg甖ʗ7$DҫYCID` ::/F fo:~&k}7&1c#׌8~5EwLKrؤoG+miݧ(PpcS.PdnVz*u%V4VkBteދ7A4Xۍg&pǬ:p:C! 1EV0/7fVKz͏Dqw`(Or3S ;sٝm ϢWgiҾ$R3r7J& o z0yyrDn[DX#D)bu\u.YdsbRNs>~JZ6^=?:js0O!4~)٥![L 5R n\|I ][-CD^q%D_ k $ 5#VT{g nƩ$(u7Tۃ{RhsSw¾ {^SU3ƓOu,\yة84[x=4~LtTy+8ʉ;Xn ʇ|רVahT%gXˏƳaWYh^S2I,}!CI pxB[z?斓!QΐHaٚЙ=s7fո~xSvկ aE Um;.]J"{ ZL R2'iD!~Ke_6T"ıք|coUf0LLFH2 E/b0n#<)4;’!le.mXIu}L? J\ #8A|Kumk2vI@{%#03XpIZOw&QXuoCSy\3a+pNcqΉB^׃x!W~qq‡ 2n_p;jr ]\l9ȩmyi#Alifd[MxffCCVhSke+n)!xm8%6+_@+'QO;@phd> YYel3,'-hq:$7@pR>)%3(p_xqT>cKtC)ňn:%ADsPrI|팺]RkE C_%@Ģp2ysOfv𳀦if U\ӒqfjXy&u0̻PIQ(;$J2@{v;ॺ5f&5!_#GG>@vPM XNzqwppU. vsQ h̄,x ?\Xڔ8/GtL&)N<2~Q(q22pUgOvw"i֣?fS5" Aղrq}z]J9OxDo+cn!dկ@)߻ ĞA )WD͗(}Xfhغ`ӝ+2,?+d8X&cpH;/4@0D˗͡ʭs[0b0U_*"v=7Lӗ@om؂Hse,Vimg( Cק% 솬Ϲ-kAV" odz @Ԡq6W եD0|ol`(ٝbiZ8&nl6d4ɕX+]H4gX٬ Ci`[cP:rMq-ru"UU)#7K|H e֟YomYvl=#" ޵| -ׇ`oAM8#:JY6ڼ6" &Ҫ"XHn1U [e+mD\E3DN*袵Ð}4&MnIyѰ9L)A:2Sܞ>*[ 6UOX-x]]}]5T w*M7ӋswRMc9p&T";d UރHk' pLU,ʋ"+3 (A}gebg553dѪl޲ XtkJT|*2z˽CSCLZ([Mo.T!qS+N_/Nͮ&{ѵ;5tIC)^v"6k fKHa;#@MV]y4+v-6ea1^"F\![$D~~a˗L:1F?o'ixfIxy!nUaWСR AǍȶElEO.pP@+UO1)>| ݐ"v(d]fFrOt2i \Lʷ1L'dK!̯{~fo1·z;$,[EF V̖Ej=$ճ72\!AVIG 7*FEw_&p{Jcm]\O 9=yOU|SJH>VևBT&9&gY[\`g2Sh6uߩ~h&j͙Ҙ$r[IQ-hJQ\TT6_&)Bj6I~wP[tm%WRPKPM !'SܫN@c"]6?鐺{;!YGj_'϶PR6fh]9U3d%R>u@$/ƀͪ 21B@ȇy{cb%, F)pi0Mc̤ywhwuҔ81>G5z;gKj}AUa%'I:m ƒ8FLHRz;S Q8VwGLy)G8̞z-Cx8^RG _)k.O*N^N-LjtKYp짿)|9tmN8N:<뿋b>qnسHsZc75nt@@Lե~ty5%YX]8JE[q=4)+GhNR退UR?kuӶBOk"mь+ +`kaYǿ>ܡd܏SEl'iAGi.i:tL,re7e*V+LIq\JFȴoDڵwVV ɦpv 靫T6Ŕ/6= B܄4q\But]bJ.ҭF=WcXU'yUW=ZGeImZ_lu5S7_bQ+U4$3{aL5cq:_ˉ8B ^Lw@ ]rdYW*,x ӚD(X-X>:+G ^5XI „!#dcUxCbjT1C3zK2(z:;2lto[g6걐C.Y5?^Ɵm27yK~ç Jy ̊P.&N;]LhiFZ~wƸeLbgڤ2 &<6lBnx|ͮsjENt@1Bwb?].~W+*Ș8(NT?'`4 |n% p|3y=o/|4::c𠎯Qb!2e*'YLg6lsq\A;=So~x1ƣ eOs\zEɷ#6)/1Ϋ""l?2\`| К1̙ۂXiq?b|><.`Sq.f;Ġko2"K& ӈB8Nrԇ>¼$4ԍ@Gv!dn+`QA? wq$DPHq?s mTݻ4"T[汤u؇[48{,q= ^mi'l+00oXh 2yrYm*Pϲ4y+dz`AG A xuuƺI)+)} zbuxqn i>i&;'6u=ߦLQCO 4;:m!LyOIX+Zd_&%bXkPh͖;[~GN^/*Fq107Nzփ$P2&PjYjjƮ-UK k/WygپّI ۡ Qӝ파/x" շBT (8QU[7yzC핓"ʋKtPixK]]Z ^њ 0$l8尲B?Y".DgWTh}yTL BpFp5L􈮼1/~zv=:Xg0gXsintF'/@Wp=䰧gԌ]aY~2J5nzR_հnѯu7@뭓 R6Yz*$JT4UiuN-Bj.}Tz}4-`trkO?A;Jkv l_æ=dXRU9hi9hZtϓߤQ ;\`M,;As+ɧ{ls˜")N@$qwN4ds2-*S^aX=[뺜뾑3tkIO3bndCqvX5V)B~OP|rU=  k~U}&:(xRz}R<U'S~uA/Ikͅ^<*YfmذNKs>JSSP]#}nzF‘-Rڢj-4ږm<] Yi g `emJuX8³/#\O:,qR 䫣}\™ :k30c_!f׌@9G%;;C֛qu-eLnMc!J7u móa⻵XH16Ԫ븮iafQ& IZdk)OS(r1-5CXWhϼPҿ53hr >?1)2 VƇ}=Ff.F/Bq]T).9u 3pcDG &1 }n.<<(p!y/KvW\[\䴣9PEVr ]ӒGxu@,Cԟ$NY.9p0#װw(lz֌4}C%>WZ44&Z $Yt7ExPqBَ,1oS*hCB!1o b6vM^FD`j3LiLB\3C0V{*zxG)q 8 k Bs>cQQ:8DJ4Wea^cV8u rc[w Cb*j.?|3:/=6Ժ~gP$WP2oU. !k8e['~p2m;8ǡV(0Hc{޶JN,455eKD<>\ZΡvJ47lp5p\WRL2r!m%*Lf?N~^-g|ji?$2rTZLR&mՇLZ³.}e% ٺ I?.|d#WBvIR;^&dqӲ[lpcA .Ynhh^[̹]d*|h1ke#F~H<3ږ;Ⱦ4 ÆPB+f̥hY,M -9ep6{1K#mψ:t=yTnd 7q?*VNnؼ:p76٘8qfjѕ;zqL)VsWm_$BlVr8@(`2c'f*wI;nKsWDZ h(GC?V6\z/X:䏌{/- w@_b|g}ӊsReJ{z`ժ@јsFJ1}WT;tі^0X0t{C]]~q9Q^ iu 5z`װk Ue|}3En[*5#0y, "sjQo*le/o\mKG*c"i\U0Cǧ, EFSS藒>FO?)!:<(zn0s]V:E6(Z֖ʪN@jɵ0'Ǫ=vQ p (b=o'E pqRR$+ӓЬ7.>g3VJLlb h`tJ14NzG{-Tlm)_v2cYdЕDgѬ6Ec؏ǼbGDAצЛ%.?MSW:3/؅D<0~Ē;uHן !{E-&nA4ISw2JU a;PU:mZv~^P׶.p~5[<"i(8s O~qE﵇ͫZ->aFiәodXxw:eCDDeM%sbt-%@Qaon~:)rXQ!hC#31.S|^T3inCL#F7,ئ`L7@N絪>GX$,e+vYY\ Kjð^ =H{ϼ@k:4Z^G4hu,P 8LwPiޟ<V'G©ʱlo|}lzlx3$Ś~|Ff|4 Kwal/+hުPv^*J{fgJ^U{;'/+r}b Bv9\wm~//|ص! &}كNx[#\BE߂~ L&K79)2UǕxQRx=\Ku$xn`X@1dS5K[sUũJx2VŲ{u^vH8s+F*.#I u '7Hu27/X2K3b*R (M$i2WӉ-2gAuu3!zdOhCաPT$v*eVam8p4b oԣ/oDĝ)/:9M+ >Tv#,󻳌Y_[vkf.[7_::R&k,J!OIy|NWd@sP(հV-Eb~n>^ɖ%|FD{=$ӭu)=(ag/# q;ôjUs$h'Zrcd1:`p-*W)? 7$ CD  R{%6a|y~\ouRgqox>y ՞ꅛUQBe[X YN]G6H2{G6U@K Sq&NTQ-KJsxMMˋ K;$PP~9ϴmAjM& t%Ni"Noo8Ow'Xbrɉ0=k><ԻGX}s"2F>=WZ^7dEcfAFQ`O^V3rwܓ=#oÈuLEa, л,xزr9P>JVey'\s6ktI,":qVUn"{"? ᗪl >i$,D{BBrdRΎެiG6#|£;ek4={疰`e `$C15 !S[KV9k )(olL5 ~ u! oA"jQJΛ&^iZvwNZV mVBi#./$h Ѵdh3o=&HYӏ3&XS 3!Iô z#q^߶Xh㜛_y Jǣ x2Np&<{^Lj;1jq /~:uTmѨ)\?K!.0z-ODW= ^.wo_y@;價AAVtEhq/D&#'[0pIۙldxjʷX:3!3XE0fΗ5dszjeQ6Vl`n6@ќC hNBl2w7t@!%x\)+׹\lP~Ł$9 _ab6)ovCarkՒg.9%'@=8*2l'Hp^A옽.2{I6lBg܃ȆsD_<;ikzK-۬Y /Qu2KG-qSh] =c ~Q0'U'W iEf +RXmt F}]E7ÁRs1{ N IymlOE]#Lv'&|P)8^^zH#M{]9VP蒴g: wGF-[S!+1α 2Jr^&'쇴j`czE\TbmBn&pņYOOB_7|e.H LI8;< *K*'Il 3*r#{S됩uZz+.rKu@{=4%ʵstiwMMP5Ad'L )ߥ._(D|<юǞ,*p3@%c sȋC)Xh űoBh+2st>gI`z)Lia PfTgYO-e@h`g[cԃ{ Ǣe.|s.)]@\vipA/SBgHeIљF@nx;1r+!nH#芦}tA=-FM!gA*a*{B9?W6orHCuDSнPGY3شYzprqzQsi%n9v5!q6g[bGCX1@v.7Ta%5s:[lc û_*A" -çNc ;vfm ":mNz@2}٬ IB=J ^p9knSw@ F:ϒ1mF.o cEv@lK͇TEV 1Ödnj{ǽcEP*uU뫱€1ghPDh:|F[cG3( =< `GЇ X}R~;%H;֚)Ṗ|yѢl&dԴq$$Z-hB/ ř TZ0<ۊAaAP0J2ثP:99H$pӶ.ޡ֑}7r7Ԗ?"lJrͿiʲr&8VÝ+' 4b;c[oe *Ch>PI3%ݢt9&nM$#xNRPM2]7/*YۧSE$+2+ B^#ՖDks` ;<8H#I2wݳSjtPw痞 2#!^RAT:֙}s'QC{ '0M1*޲@WqG6"9Ye+mSwkzZN3?%9- _p}yqh5([;j8oG;̨! d~tLd:^ŝq.*F`eVcSQ@'3qX]E=ie-E {K[W)qInN485,ŀCݎ,BS 4K$b'&oCpt7a:hͻ\JlF hs$@GHˑW%RU],&0=7YGZ) /h0hb];9.*k=*sf(^H-$-N#2 5{"e C$\lMzr h@ /a 1('71L .(JgŜExdu/1(nj ܥEWhฏFS/]pZFخw)d&H&5xn'JMY*^Vjɸb67uy{UZNO } YOA[_!4e%LЦD yp`=}ԅ}QOHL,LVo?p=KJ2 2NjuWl$ ~A0VDx\ DurUD%Ʋ؜֙+@Z2D\i2o!ĎX`HʻQ?$2]ш1,<"|6$wrk}- 26v ~E6%D/%!2/O29|LR{CZt߷~G~Ѕ ( ] wed9dʼn7K཰5Cv M)tO{"cy*F/0WM-=8\K(4dOi%\Ӗ퐆7޶LVV8 G$s1*,]Ӈ5)3Q\tP"~Z{^/  ܢӹ߼M*],B&_ɶv? DBDcf*[@! f X1y@R<{c,xbe.٨M/ VE2VuHc.QG=%y*;rMV.[ ta(i2Ҫ9|cЀT{gEy.WezIeLUWRv wUqeES&4ͬpWf!dH;E|16 \2pȮx٠m\s6P6:L0I70-U3;PGyAA$)}ˀINk0s>Wβld!dVl g3.Ӫsj66kW,x1cWJw s!'S/ݕ"P{^"v!2w֛֝ gl]Cr_a9iU0p:GƞM7ܲiIʦ,2ӐIŧ;UXgƁrgtRT@TQoWU8F%z9 uH`%8Tc!G~[XIn5 8- bZ xV{-ycV\7Vl ,#I{GweKo!Wܳj5,ܣg3c.7PWܯ"j. ̾|c]FTeaVND%uyJŇH<8 fy f6[3jo['uc7BTgm'.|9V45 'R{GW2MGꗮt-rc" ͈lUeU.cEzQQսd|CG3+r/g ^XсOU,FA ᗊQ :rE?=(e+Po)[#ČPiz5qg*_2* {a+^aY'HiAo?uL 犙% |mWbm&ߠVciшSВk-TlGn_;Ѷ_Ė@KYz?ҤXGx'7`"G۔vaq7'z`;O b Ӻ@MP4F_LJ!aD %?X< nc )Ҝb⬱v8'Kuc,j!o-|lR8s-1Z`5j&S0bKrLGS[ׇ9"ˋ`32W@3Yk+tE]ᆆΣ8`34jI6D1W@xdLuדp0{Fa%KbѺ*EYv;ڥ[{/)>m+&I&mS&4.հ:Q{:`<v nt0Y՛`:r$9$q%hl1J:ӏ#ZO)k>?ߌ" u(VOXa.yRLx X/_ἠF6p擏3׬"-,d^E*v}ur2IK[%Ho玗}!}Bs eA 8E^$rݲށǹ3_])6筈L ԭY񯚣m>3h[P|`/d[v{%YZE:alF!TD:wC|hv#h0:mabmunu2|*$H)G?G#?c(_ W[ĦYĿ 3iGc9t/;v01]wsﳟgp8 tZd۾#$)Pos:Ls"◖a7lQ$g|-)XxreQ \7<җP06S?沛UpY.?2  ,Ӈ]koZ䝄,l?S>]P "lP6{؝l8ɔ8ɟQKVTL} 8@y3-4 S2'5Q[0hr1`Ч,A)ӱ!tҧ6FF) [x{@NeB1gc߷fMDpaHOWW)xSu^@:]j?iψ_;E)v ~s#0k% `[,2 i"#YБM- WINΔjY]4KQ F1`#dOIj6[P9hSEzI,7<ɋ  ?hoFudނd"1-ޤVWyED`tu]d%<Ȟv5wŷ%E괩`,c^KU^PtlTB{@]j]+ RH i%ѝx)QR-/-#cUұcw.CBc^-",x \Pbm +o0RLc ˽F'!!5V fD Q& f5h˫h"uGy[SR_3L0z@Z1bjKVI/#+Us Ny/}V ørag FP < `ijf1eh !%R}leo|Q*NUТ]`˞JZWXCOVGg\zAq¦39;ʵ|Jw`kE q!pz0яQLMAzyMb)>b=a5YWZ貼ߩW_!7,+/e8lW-83NV 'iw`wwˊȘF"տNRq!l? wbD=L.)4M4?b:D➯kBSOIIg}4Xm퐹$U8xH`;>CTS;rX+a%cJdq'#Yf1ܘcT4sRvfzK,xuV!!RivN i>NFuc42̭FLeyΊAg^D+:L Qo߰X ,t=4LyKi3c!eu0v[-"mpJb:n6iS:ԫ1;%{!> 𶎫P3 3$%;0҈ HQQhFw{8#-?EØv-<&z|F޿зo/ 36 t-LW .΃aIkF(K8D~NM+g ׿ R0gƇcfH3NzŦ&ERFЗw5?<4:'7 t,NCO߲`,rPp >^4PF`[%6WrMCXYufg%ON$h= dTt*We%@{[bCLJ/{'i;xlD+HdFk`u@Ns RZɿ0inF߬P* 0s'}(#[WIpM՞=qKw&ΰ9m*6e@ibhPn|4$$Ӧ?f<֒qd, 찍Kiq`˃Ʈ6 ֠ K 0ǏǮN B{6ԯ}E͎XcT1̾섂8dJ@cvy1 tBU" m jsd&^cLA|>1k!7[uS_eN tw=ld?E03Ħ 8{nm # tDLZ(h"7M c $z z@6yy2/}P; _ؽ XU7K_>(cDɏg'H1ͦOiڋ)\އb şRk ZY.Ft%MYwH85 y\4,qͧc!hc揹ZZ4tQ sK6G['egeu,΍;*&e܈[`Nnܳje. 8IA "vgNM+R2Fbs>}.'Z;2g0g_*Օ2Hӳ^$_+į%UNvHL+W@'ǥH{wT@!?R)S8Y<1PZFޛ!N3}˄R긓*_ŠlּEGB6 vssk=ˣk3aDVH|( 7l=](G.Ճ6]߿ lG-xtȧz;=qxt/ss]%{'GZDي6^|r6zN1 nFCu2ѴW Mkf#JA+{ZfE]\"xR!D5"*mO_< 4ssk0$HxpLVut'`>E/xj>^I|ಗ.˜Mg?WDo=f~w5顈~cU-p\߱ ZcƯ),ǏXE_.QQ) F> ۷d%Z/Unȕ3}$jz\bpaXwA}!F$u6"x)~@ ^L<u TB_imlsN+M,Հ40&fm8Że1Ix]2X5wjuԄـSe0i\Cե' /m.W(AĻl~AXsEӚGje.ʪIVs^;W[2Ⱥm@PH>g*UMB6CRăj$`3x"eyO|Y؃i+5C*8NQ/ C CjhG}2YoSOp,lI 2I='1}'"zYޣp-Ř%Z~"%RXFEȃF`DRiɲDϔ% ٭4H"Ǚs¸$^dʻ\C?V2x}>Ƅ1 CEɥR*1dm4(z] eᵹ[嬯.=d#~]>bo/~rlD m2WQ$ ;ƛ1қцBv{-+D ~)KI?X+>[҈Cbq%S5̼_@&o}2OfSg"FJ"}3-W:TT oj V}h+8ƾ K dgVETYU|yQT^GP=ЫbltI ongsjzaf7t3 U|,D [ܞ n̍ NY0<@F@[1q=,ýjawf0ZcT(х^Iˏ8g_2;]:^ʓC=YQa'wFM5VYpO"=qq\دEH5sJ@nUb㇞ad%a9"$*|2%,L'Y}٣$'4ovK#]:𔖀X،g` h_:&7Ddȟz|%Kihϩ7}X\˭z)3pEndy ;,G DI;1j9]-->9u2ЖN]r@N+e:Y<[LC= XǺ`~⼀X*J^%dµPGQG7m(_>3m2 &fg oHZIXN~J2YvveN'@J#y/llU}l vDJRE/Zd:`Satib$_OrSLoQ0ۂ.wzPݰM4Ǝm$9þ:g+'z,ߜjtL^:: o]!VT*Wz pvinǛX&T nߤ6ŭ*N]6MaJ~?ҊDk} #Q Uh_B{lyxfmI瘂(nK7)!*ю8Ɇdֈs[&T"o(X?9ba)( I,Rp*w>wa 0(:lRoؤx$3ֶY!}k2uDžh*8n콍9#Aps3s<2X]t0jzo Rb{-5L%J0mx=l] Se||@p$?J@O~[N~-WpGfs@rfWcҝOdUNx ؒ4p|,O6~bWWߺc:.'X'٘{{kz ϞO\P(H,.g,b:,rTU΋65@'` E%Lra\guyuy6\ZCwLHxL Ed]W<HsYwU.! iRm>64*}ʄ (i?M;aA"m9ֿY.k %4OeTrڟ~m+>X>Hx"klR`VT‹,Z>`?Ce,w N |Ұ%ӎT:}?ϊ7XJVCpZNzJA&CmHIzK!JMH/ݫch)59LS0>S$?VjE\Q+uĊ&M7ܜT+isZ7q7(&_莿Ze}0'ZQ>m`"sl9ш/+ 5oSl51~*Sc:H$MގsBKbK u%^;&e `{S#`=0uGrV AcuHx5i\Q|?uuWh.16'rHc#Kއv˾3Gek>&nYŐSЭIL>pqe?,3`P,QD#Lq UB'k\ EQCtHj@SaUᴬcP-3%:CvU4^=}dDL=CUz3>|9Fժq&[f42ngo[. {MLL+w2ٳz.nHw{\-8i4` . 9imk2es+^3@ܑq+bmqu]bZ4hoplf,4;=%g@w[ZA z+ h.H >/Q.h$ Ch.\ٓB6*5o7DCs'W:q;O~V{Ta$Ѧø~ILV} ЧH-IR(gn7?{x;g0L'Kܳ1eZverE78"J`MKK#w f:R si[1t6<ǒtrV.b}KmEn:#$}T˻ETY-dlYAc*v==9;TaমL_.WJ \k?~ضWf=E sk"-9f =HA|DՐP2FƭcHZe|&dБk lDx~h*c{RArW_4EEyhwuejMZڳV,U}L9ȳp&!BSڰ$V/RS{"=(v6%]vVw0,Fe@4Y_Jwx; $ fk!2p_&{ep{Sݛ2O<ɀ_gzI}jռh@׆nK!,!Mjw'+[n,=E0Ȑ%݋D~^q Н[enUz7`ec&ԚM:S8vYz S}i>fB)X(nISW?4g⺶[A:W5ؗqTjʛ\%nw$M'mWk W$~R l(gtRS5hjZ PIUQrAT٥G ;GSk& MMQՄ"|J:LMlR^/<7w!"&&-')ksP uQUb2fP{Q&`ʨlvCX6S<І4z2Y_h2p!]Rqe'oO^O\EKX mRZ?Hr'֮})Tnmg//0 Đ19Ҙ3bB_ךM,iT@m*43P}9{?v+fw'LH~rzTb޸ jBAkS^kЮ {aҀ(|% ӂ$-6ȥ% px{h\|ي0nBIخB?姎IkzamcU ep8NHfEg$J "QH)L}*^5!.rEٜ|f~Chԛ4lAqx$,P 'mJָPLrl6\s vܵi+@bBdg kYT1?VwPbSkpWJEB #bCh1z#j__8݊#|\{x!$LAnT>XU6X Zr+l<W< oI&V!1mQbg7VL$atfSgw>/`>[x|o 3h V ^qU={/!?F- *qpv|y V3qkkbR)EZ۫ ׼m&%q;g ;= H]%ZiJT28kMo*jXԃ`s:-mYCobgm+6מ҉ג9&dȯ~%;iy Mf&PgUftM3x{6M/&:x;w%&@ȒbxoZLWtՍ'+0 YHpÐU2MyKKꧤ{CBlnnzŅf@*(R%FS'doטDx|`alu%=.`0a)|/aڃَ m'qu­auo#,qk=[ H)QoH g%>@|` >{!`bAE=2a-J$4J\i%g)9 l&\hsEfDT->h7^DwyW8f4@t0tD=d ;x$үi:;~~Jj嵚ьI\U^ctHVmI;*Q2p_k3/YD)|Fˋ /%[yvτz*%޸m_ldAm4EEBnj .(2Cټ [l>;+3'IL8*>p#*ajvBxOh ո"'M]$B50zn2#L⇰A>}\wR#® jEO.tΕ] /8{2`[ۨFtաz'qc;qv鍐ŏw 6HCb'OG#RcaPv_ᚰALMWidH#*Y^rC r 8, (oW0nˑCAic(L˞vB+٭ndAPXf)_G:,}'& !OȞjtfUQy>mpNQ;ɽTڐ"mj/9Z^ȷP9Zdc[=C$+ɽPE9]fe7^n aȏ׮4zm@\rIxAkfKlZoX0=6*фtovmk}Z>fMFq_wfLD;"yMa)T.88-hy}ɤFRVK_!߿/,4[l"CHo.&<v <[6jd4Cav@@ηBp%*b^Ț5$.` RYh r >Tc\N40G "Y=(V*Α2i'\l)|C~GvBi0).E =h?K?\Yﶵy}%;DF:Z}]&aNOeb77W0%rd|mPx*l2Jvn ;g&~3Oz_6&AKΥ*B>n"!ĬYͺ-^)X OZu 9R7|>E"fa 8tF׍Ƨٜ`X,؁J>&; 4 ۵#P|e@ $I>s˓MVbTE g Eg &&xGNhSEb)^ߊD8 luAۺk==~]GqށF MJ6mbQlҶ$ћ&{%k}So )vrl_d${EE8a,; 3=˰WHOM(Lx$yOϺ8Ub*'z77-eX{"dur'6j!T Z{0o]I0*-0΢KD Zba'X%q2>w|.TRԗ&>@R`(S}ڱwh6NG^k@=ע`O8ulPd,\Rh#4YG"Vr̈́o!j 1JP/@ݕòkvS*q{.\sY})Kgae_k/{6d\9|vd#ٶW(+Aיa< Oue|ěm;jJ>HIB@jP u3 b̔j-! ݃f'j[ 0b QΰlRb4"/۸Nmn-34у&r7ŗ[{ϺZU$CNl8}FH㙗i{q<W>ܺl9 oCG uQ=xS }şgNz> Z;M%sx+%p%oyY8@m&@L@ jjXJn Gd[L-DcG 1$'8`'ህZ "Ud(OguJ7!`AE-2N.6]Ab# UmDKl(:-'7' $#bb.ykAq$xGq2B| YxKf%=D87ШGyzh%ج\A5OZрԷYS*H:D0)g6ُoxƠA8K[f +1zf+FnA]Q B0)!`!`tM< q#Oj@ToW=.3w2"BFZR QQ拴! x2J~_vge 3`(`n $STU0T x sTA!`!`jM @dP492znOB28m!x#bveL4KK&{扱a-28FPWM/Z.>Ç%f]Hw`!`AIAlL̻j?Pu3,|#(fZnAF?MCu 2rFg%@rɄr &JmNÕO.W"u;idS'2_F[@NH xR&j)Jm$6?wE0j WO%c6JgI*Hگ&pfV0~RGZm[*RZk;!'g*uřV||[< ROZBZR^;K_^Gd7}/fժ%ᱤ>C>D9R&յ 9+c#ELk j%Q rF}uxPc6Ѻ+% v}}YzV+˝qߔBlOtIKH98~I<%s! Qsc'N< }XuZBrDxFk_-&pom" Z {i74|헟ehe޼ H{\!QX-t|NrK@){K[#`^b[1 *eX[ƚaE*ǒym?2;|T a B<[Ѻ8Jzݣ5/٨Xg<)Gpydsd=̥YwTdJwP ]oS\"Oګ-'葴gۿMN.ڋALSh4ݛÏͲ<VcMLIHJe%IAŸـB[ La *@j}6\j;Vyp!$P!@*e1,bjT& "bZM$Xc*ґu\X;@#9QϚ'a&#"g554 Fv'L"嫞h-ƻ޺;zi!?ZJiܠ2I`[}Z C n=-F,ZPm T]oئs~kZI^!`!`AE-2N.C< /yC>jB! XM]otvR]ذv _}Z/ %S%hMFeu1kvu`L5$}S qy%{l˯$B ĤQ*, "!`8tM< 6PG 96!`Xϧcx4,PKL"$EE ʦH٥"__%3Fw~J$7sFp9`֪Uj( !`!`A:jM!`A?IAlL)Gӕm9ӂGٔ3!R8l95m`LI<7 _i"_m}'pR{ApC#,^E%orZ"# F.*os[%wYQ\Ha~¸ۻjm4~َ(XF׭x nU|B#a:$E8}qeGE֩_-⋿Ya 3H9P"+ h@oK:IQl3a\XSK{*դ̄l+0iQ8 gg U U-b/nˊȯg\:Be",VtÇ'FԀeF]GRh~2A*ԥF\/+2 *~ٰ͔۝򂸮I/bX9-iԨsT2$h@;:q;߷Fs.Չ,[<{jH YI\R߱x+~ <K& ahZ-zC5:y5qZۍ sU1obY c4w`ݸi(y9"ھf_Zi^N>n48)Ij#4P0+ýb)r(EHjc"l~EI9O@뿜B>DnVQK-mjӫ@A㥮[,>9rkJX0*Vy]@4&'L,n]S<#H>#u AS20D)`ROp >~f 1f)+嶋@/l\Nʢx3%g4;5:褋RQm@.(lz Xf&A!. 0YxTZ$Mq;E;V?ϮJSy+K=ت5rtLP KxIJ"l/qʷy4Q8{'H^"sMk/(JLw%t]Aц~mE.ʜPuY!4}_ՂC]LTlQFZq:DaPjحJ= g1R|@['%֠<#D2CRh6T1 }}n?2!`!`A]E-2N.%IUs\?`X}  7uCBT?3}UWx/[9W{mP|hk~˾u[㚀itځo~ k=zٵčmo3 N{܏./[MnS ~Ƞ!`!`|tM< (x8cRp&4rQYz ۴ު; c/}?]&_SWt[2@pYlӕ[V-@uQ12ztdj,Ã_wMw!`N~jMV$v|̾?9/wX5}$w5Tuv48wKZӎnKrrG`bTEw%xG[]+Uɶ% $ʰٙW0Cj"f$oMw+^/3@#"dH7jiVtgd{4#J{\N=*q(Hҩ=q\UY7uhz? .}Mc-THиtٳŹq0\zj͵}]Ts7-iXCl!MK0x3<ë[vN g><ΎMV-\4Ed \5UFӂvX$EMSBuYԭVMv,mw3U,Ek8t~)yfjf2]Ŀ~9[MgӰGb@10{=$N[)SX@AZ_0Yl0Svc۩D KIrBnR*߄PoLXrLܒ{]kHI*~E3=> yUQ>7jG ӓ~ rK_/TʩG%-8ītpix!m`?ZGE͟Db8a.aX졛׸h8_{P'/"- i2 ɬ:zrV;-;Eƍ˛@yViųDq$„'s= i-uc鷾^z+ʘx 퉜۲%&M r\S\^ewaZV1?i2 ML5Wu'HSMOQ!O~?/ikdv廜isF}ZY,UkRJƙU=V_RaR3Mӽ)206!Ψiޘߡ'`Y 02kxkpe3<3䦋n.J=!6OoƘ)ovߢ RSH;"޿i:Unu~= BU;QQc(W/$/6A8a)`Ɯ۷<p,;'E!`AE-2N.Dt`^aN$i< 2 ~`B<ںMZTx1U q.ƀ6.drgc?ԝb 7Ik,D,A!`!`StM<  Q@ p  tP!B~$n/kf&y.SxTuA 1Y%>"$3Dۚ%\9WG!.&@ћ kW[O6kwC9CYwѬK#ޓؖ|;ZbB^;ދPUY:Dkpcb$l׸wTcfHG2wsATt$#;YvO V>B|ݪGs'+^4Ljg0 'b7hyFxYۤJe<)qȈ7)yo#`/z4koaVIr 9U/\AVfMˊ۷ֆjL•8+-pvv1SE1HrX NoY ol"]NF`-H(ѩqEk#>MW/mL$w:bcUE4Wx+wyӝ }ʳjncHi_c7#NS4pTV1dC|z5ʔ^:9ab&-~@r)`Qm{,AmaA:)f %k_ =3})YoN8 !O-j{L\TDS*^;c %T. 3KZ z qR ӀY+zOuw<+9cPMˁa Xنۦp^JU.vM.l3H ,slEbc,B;"x팳v+s/TǸ?q-]55K9k`jq@grCi.&-xD$VGS^܋{?S DwUdw4L] )(܂BʶEB2ώ@Z^iuZ\}-<z0mPWvCv!إ=٪Ca!cRzB1 c+3x2\,,$5%ue#ȏ5kY^XL;^$ڢ O u_%zj9L" P|A=PwbP(B$4Kô%e 1Ts()SBd=uCR=|?Dipl?4+@lTvI -YZ:X^2j76wq?2[ȚG3f:P4&^Rbbm(=tHYR4/N0gnpn:M ,5W}4a"2EE`rH5M#&@OO'^Z/}f2匋Z2It̞V C5B_ddk# F(`'24/G#Kӧ $t3>L zR5g^UR O$Ժ3R;HhK| c-SEr!`!`AE-2N.Re#x5JdewFeQ2o=#F8$@Lp;{;mι_t2%q$f9i`/%:+bL|Ou4Kyc0e !0+̟q!l`8,tu{TrwwHYiHQ o;@UIvXbjnr .8E ?&;`RኔΦ݁:K-`=g2į @ 6L{ c_g-8}q ;1!`!`jM/E7]Zb}/&,c$*`UUe2d_14aL,:~;TeHj0 \DrU` V:`rސ.HG7-Zxȼ&”^p&#R3}bE;2AYE!]Kk20vΗŢ Msk*`%tQe{ߞC:0X8B-4|}xdT U P~忆v%^@TkNɘȧhB քDhz Z^paElHcKsn4ݭ󝀜)a`ymrm<{\9/o"#{]%EleqswU&͸}ڼ>uͼiQ@'nLBtݓ׍Mj6\ s8uD"TƾBrDj9C6! 7L'5:M R||+~%ewz*I ;Z0Oʳ=]~b D6E0]g;4 VM>E?Ah%W!|1Ҩ&^ދ񐻅ePYH*'M>wtȂSۤ?[W,RV,a5ȞY lfM+T,v5Pp&-V?f56VA,%LY%+uU)N^`?Fv%G+%ޝ )6Of]{ oCXG2aS,)0%oi>ϠE[Ƌ }׉ =xª3Pbgg5zHk#ꆩo e9((G[]%k9Ȁ[<1eŃ5d[(ASY+5qPH;dK|cq1Kd <36GMP;hG`bԔȶ`Ju0;X^RWxr=Y9Ã+0a7ogns@ܐ44Q* ˧.51wxwxOI;epo!h2Vyew7Vl =^=2p܂ DEI H@F|(u륅 &GH/[i6Dz9 JA1sD&t;Pka-aQ2TUUFR|k^׍8H7`;i-h34i[/Q q[ΜˊׯiFswEd>R-[D^ء=(6`J*\jS!`(tM< Fʈf3C nMiAuvQb8*9j9P1(&>)3Pex|]ȩ#?K?x\ ,CLjШZ[䐓kط1XIC[^OCkP 'Z+[An8WS-zُL%\ "/6H*fFg½WB)/]ƻfIMr]{)ݤ: V]awfE'=,oi]yT 0`DOA7CY$O\lH9Hs|??c",GFcrQ3_{&lx7d-= . j hbo( 2DO'J{NBktUwxu 9/Y_wrr̹'%%5{8O *Œokw&m5,cC'Z;DJs=/nɾiT" cW4k Z|,}bwZKIOW.?,mBF`Hl}gw02/H"CCM }-Vǭ|+Yd&Pl&G2KVk Lyٸ.*<Za~sٌTl\+/DVDaDlB9$Y-0tZw3,DW24Ō~ 2c|xᅥ`4I}~ftPB[6;*=Zb2jn_xEn~CB$z O#P2+gbS_Z02 S>O4l!礮5S"r#ewԒ-b'#|u73;LI0yyH#@j'x@'t߆B9;(Nk9Va`y\ FjyҎ6:Qj:75겝b9͉">xd!T@kE+rc=ƌ֢Μ|R2tDU_BJZ!!`!`AME-2N.d(%A! `NCYkiC8 胤it;IRGoKVEy׉a1AF*a.D=9`50L䐍N\dA4޼AF!8"̀V= ń,#6Ԩ5&WhE4%\&2'Q~tsɺ<}Z?e]b: {g3|>|{߇)>Sud3b˜3% S͏8Zِϼl{onG3|{ͧEnǃ`n=)_ra/FgfpґY  }ARK@*?qlk6 \pUleqwWmMD!ۖk=sSa:zRrUI\K6vj'l~E?i)\¹|~Y_E)kAɡ~1/UUcrJ ~b7QTBP];g`&dRD<* 0oSʤگZo~%蔡\XjF.d7y~pX"xigi(aYYx?5"mLҥgEXȖ^yhzU#~:=y[w{Q^y F~.5XK!~XM/h&1-MU@eJ3Zo+XuEuk Z1HZeN@QI1p`l.# 7i__2jPEH p:~i4 ,T9W N'ԕ?CW[YtP>ELDZiLؒ7i, ң$Xz4O"l+gFM3g(0=4@aԆ85MYKf?lcX>iGGK>yO㵫DTm`\9fYY 2HX KQեH3,}iR?jg2kykn Nhtg>`Ʋ V{慨K> B1KᲳɵ}KZp,6ˆH;6%ˋOe-bU^&zzO eph04H|==GYU*>b6+%Ⱥ8mَ;7S߬"4^>6 JCmtIDNϹkgVu{j2_ID|4*pXN%*`# s[`2U@*v/)d ]hbu+; 4Ɗދ7(?GW ;[n,u/K^vc OڛiW]]A':M;>o٩UW"^YY|k!'g2ƷcneYV m|'+ǒf#w K2;^ų#EI+mtdLs uܨF 9S]CI_9IK7ZXݽ9bG9TUI(TŠM HT}šJi=cKq+4hP",-%&Hl-ѩXy0hTh8wڽ{P8c_ޘꔫMp;৿]y.DӲdFW4,oorIF[.ͰӞN>]Uit&@۞jZIixVG/3 J<6ޙ#<˖iWR#ȴp73W8Xw|zvq۵lg "hBbuҿ+zMu<~ bot/:)D|kNm>N##2 B;UZ[JDĻOևQܼ;[sA}/ߐʍбK><*22W1sBԇ_ry[1gH'ҿ03.G}2 :J 6J4m%MașZ ȯFf {e1b~>LYq,37' }'_^S_ZBb :+~!sS_c &dh \T*erV< KDx'VZ 5NA_$t/6s] q1ze@lD^FiM3S)n|6ȧ=Ǵ(ějO7K$/[Kҹ]dK2~;R[\Omd[ 0}Z{slǠGV% G>b0JeƄPCox8#xsʊ NfC޴~-3jv::8HT5*񃝶D(zբ,j aˋY%]_v D;W]/ ^IvO!Ӛ$W%|\UټVy|XCD ?NTO* Ž`kLGU o<͜8j /5ISG˻AhVJc)tQ)X@30] Dڬ̅}-U~VTt Vߠdd{kV_|׍df܁;[n6v2y06~zLoXZ濎[tp8&zJ0I#<׶ݔj~#/, aמjB)0 w* y'|*b7ClKh!,Ely`nZe/Z4 Y%izan&9ʗ6أŬ9HD7K9u+dvNWxP#:F*~=sEUvNkR<DSUi>^qՃYZ 9@f'T{lU>-cl> j:SD WvL}U=t~#|-+q FWFm :VUjO H#qr5N'F%yhTN9DR!NqΉv͗ؓ^`!ٙ[y ҏ Grnx02x LQxűQz,U׉$ܮϨJnټzc}AV~F+^i=XF̌M&ӧ/A\Cԟ?B: 4!דb!e9\R halHY-H'kùd "-p$%f :ܿ)eN j0\~WCc бa~PXmlRGtO\va7O|V@!J1XFAjM^g |cV苎,,08C< J5;ΰ:Xu 7^vB[wqVm-"aΐTF&V+îIkXdaE]u(zu~]yu$Ey?=.MMYow 1M0܌^͂mU1PXg'kĄoK.'<-'Mݷ?[g,9LEa `ːȖ9I^^\Y eX9 M(w\x!r3a+H;Ʈf ލ*Xϩk 6v}Wc̴#qYϊX;x!VX+*kSn&|{RQİ6c:+;۰xڽfƭ׵| ֱ/@nE0 Htj<.DhKӾ6m0 TO/SB E.zMYdYaCU/,,25n͞= XGɠ=i]q> LP豞W(4tN<,q2(9~&nՔtf9:KJRkFdV l.͕[KB(xAMI\ɹn=LݽL`7rl47~䇽pӞf@P|sǂϥo8,_xY6Gx߈@R`?T#Zv- 0%1Apt̻m&ϛd'ǙgA;NcϨ1~+aՕ,KZcaq_f, f(јX*7<"IVsq85x*:GC1@4F%ny/`k2;޴FX?Jk[/Կe/u,m%8ʇTd0C4&(2p2qV^Q躩D畸| -Y&慐SgS^α6̸>@5Ϣ qtE$qȦK96[q'<.c yކo5 H xHQ'MMǑmF\Q,Y$)'(nc4fkĥĶ|xl,[e0ڳd4oU"ǭ t3hۻBqLO2*c?(1)3QNO~sjSA.;X"کyamk 5&݂6qz ÙޣGTc,êh @r1kќP@ Kf ԅ<|ǫ%EwY0O\'Hÿi D3utrUG.GњIw HO=F5ΗMߣJ3ڶf,nh8@SFGەwvb5KgMnăI- 7[;$9&'ד)a9.ZI܋tA?_V?!u-GsJ{Vj}cź5&lw̽Or<9ʤI\ivŸ zM΂0`Z"ȷ+'0e>tBL~՗6/X{-".Ø@^HKi4,U 5*N*~]! ElW3v&ȹށB`=~F[vA oIIy,شԚ%g8vRCȼE噅9 (X%'UI9{Yõ*upe4 1ؠJ„0!Mjcmi W:l7ͫ8\03.>3UIhbif.||]k-;>&̰k+y|=d'[%i%Y Dwn??-F\TQy!:DaDkH[S^. s^cs~l'l1mM0 :KNN:z ^5( lJ7n^E$Lrߵنaß2q9`kWRA8 /5 uwi{N;caoBt`hF|fGQ:&Mc%x)jlx,;! ^^ڕ3ZMeP Zdi܄^ĝ'?u4b䤕WjrJW9]yTv4d]H*]sQh1r`.+u@T6=o\IfõIـ2q1(-G]P~+;Gk\tlɊ-Ar͊ʐx ^`(߆rՌ&&b4jM,/ 5GQ20VR=@ 8 Hk}4)v ܵ !cM 1cI pQxC;%蓫>HG2Mxԋa~]zZta%w98U/onWp#JL߽|u3mzGjGB[$ -o/ұh{ƭ@EcwzQDۑ*oհ8ޯv ݙuP`]/>tݣ-q*y=C7J`"wNzi?QcU0N$Nr"Pqg2Zwb9lʦSwPYǰbCк5e}cl`Zn"xS2;آ}M$$0Z*Vo8??  l:01fU0_L=5tRakk(ުUFCmnQ!+3\?G-Ԝҁ}yJã[>#*E~:Sn[(EٛY$`s;Risx<D8@bdu9Q{o巯ՓQm,>O'oe9%Ljc0oσ ` a[q|1;b]ƅ;%_F%*@4z"ib`JPOI?/10K2Gr |A?Qš5Iuo+=_m b y#ANr|JUA:1=~)B!o@~[Y0P^?dO몞J4 V6ksT怩/& m|WP!X23[td"%w,~2oHv}< Tq4̂񳳀\^[?l'@ {Mbbt;Px$HqLW }˸|vN2J. M h W)R~ : d\ŸfRbI;RnfNSTrWFG%mFRRK[P0/=~3?QBJڢ蒴7ܝz>d0Ҁ4{&tO{oyӬ*iОUtfj(TSɭ| \ICtY j/2} ͩ.;\g"bPC&RlȶtTW2TsrR6#nH9= zIrWt5 0z)^c f_Kz =1ǵ B_d > i.C;&v_cݓ2OeϨ_7A"m':aU SxMm%~#SɃ(@(G⭩?3=Jpq9C\(nuWUѵ/a3˜pGK˃8FEMR]Z -ҵ~?}Ѝ`,)LRnUӭ֭n`?u Ԓj.14\${(Dͤ1׹(32|\KŵT;oOfO@xO`lyq[ Mph'tv\Lơ5 J)Ѽjf%uN͵c`Zm||I f6IX=+A9t[6Ts=ju+ͲvQ1,,> >dHb9WRO-D6Eݯ Y*]?YŸ2^"|`Ž0_E/G*/< `Nnvr[*n, бI4-yTs]ӞPe[/4;7HV7o(т/iUΧVi|ɯ|و8}}a{fMR)2+_]ek##{Ji^MIbȒc^JQb3PN˞؛Y!ItHWXPҲ Vi>k$VI:̐Ձ(}QHiSףcv7Tλ͵5]M3Me'S@WCo`WjhY&׀&-SCڡzѧiVG{nhtI&P4z_4ġ"ͮݸ^қm ]~1/3{OJ]!faWIGS )ҌFBx  t؋Ǻ%tTę`IU=y=|V7UgJ:t)MYi+:d՗fnq bX,0sYMѽP'wWX$-o (QQ9N=^,'E_{+ޯE:#oES4W%7E@,."k$ hwޱ(T%k+).g_ _InP<τLA0ö\>oTi)ZDMUM![ Q7s0is|>Zz!_ {^BDnnc`MaG9$).O4l4mЫ)j.'esCNH+J[gpv#4(dQ&\vB_ХK Q-(ݞ<*t=j1(T!\S9 +1ܶt߾&TDF[qN]gf6 s bo5&dqgnw؉hP.6eTGBgP.L.f>a*1Ť}S(4+8'w;քfhn;pCܗ?L8Azghc5~10ov&#-N;z+/de_{pՔVG !4[:Y||GVtngMnX2!tuBXD,0 "L]pH%R [|oJhGUr"83w86iwi҇NQz2dGt ~!j!Hė4X81^Pf_A7ocʚ ?'_(h+ w=1jpdn~83fرe bO@!m̉)1<ݚH ]V7"QFv~}#( hxED :>gbW}` AoKOLKL$ "1tXg`.", #M@4!~*zL)A+:ޒ -gRj$xTY=dO!ȗ=_j8'@Nfd+P[|1MmxU6mJА uZ.c m-ģ!zYnׄl~]ke2S0I)'gw Q4H]Xe߂+ SUп! U0/Ň¾ =Ae^JO݉LgᜒZ%f^jYm?8g;3<.Kh:bVZu riMnOFy7jLۙPz8 &9$l3}scJaHk,OU!P+e^Jl3o0f VUWCA1W(ˊSkmyhȒ_S8)Z鸣 ExĐb:r׭'*P50TDgq 'գ.깩dҽc#їS 1<9rxW 0A_;1rC ~9?s?aL BMVpS 4Գ`wO^ƞi h#7߁eQؒ"-yؒX_ 0NtQ'b\LL_O!$+^J<N @^<2Mj  b }6ŏc,ȮtRE( krogms->J =@ piD-P. 7ُ#8WfrOX~!MV-PeēsnF,&wQ+u5؁6 z.NWͨK+l`Q"'@'*c2!5j ==\-ke[-_XUՔ;n8% YVV4ښ0@l ) ^Yy/&zJ`OJF lTCQìL/+f4D_醽L+^3 ;X@""_Ǝ#CI۩|-L}ozUc{c}r.zޖ'jϰ@4\|tB\n!Nk>-wI" j[ycZ^4ՃyO˔ ;o)뱪KŠNlQ>k8= BlvWzI.Gi2VCUꆎ}'x&Anrڊ)W )mBf OZئ#gLa:5YɅH=$fwFέ9D!_y%ƵR ^,b1řէot'xߴvIQ FnI#VWNR:Mb$QqZqhb@83j$HrPe[H5I^[ƃf ]Gb230q`~jYڧSj`L}Oޯ&vS6m'oW>|9x& vo~O={rq/p^,VWz\{o\ Cޫ#לʺ}d6e-һ>P7DD3ew͞}ٷ~zrWeݯln̒A$S4~y8[fao o!C7WicrUbiah-UMT4[ .KuoJz .&QFʶ{f䉓-WjX\u`zQ@N.m~W]b,]lP`PMBO8{\0?4 w?gLUʮ'l耹/T {$Z6ux#]M?}ur?'-o羜>'趩mmhu4^2,/E3?S^0G1_)Eb_T1CkͼU1i/)eU#fÇ3ڰۆZ" BrMKI>#hns~h#Dw YpFOeZo+ ~0zNĴa@ϳBͿ $:ѱEV\_R 3tu|Let[6͈[rl'X$1-y\(Cc$D&&fnj ;lyVgoWQ>Ёtl/~akxkEFR ƴ~Աln#&ZmŌr'r, gM#-㥩 sgp[WQבչPcO )P ñ,qӵ`1+vi+g*jK~('If)Kԗ3UpH_l U?)vm`*yǘ/swڎt 787nґyU몦!@*\3xu}ϙL_I3_HW,:6m(DGzHe@;#ڦoڍQNakBQY/'JՈ> QKH:.Ru\GNJEnS2ޛy0R%WƅI ;72ޯ݀G2(1>ib2'6] :p4WxE۫eLΡB;ͳDAlW o&b|L8ˑlWPKLJ9b M D `bGf`'l-;ji%Wj)YpwEO&?*! Oyv,9'!hr)bljyxv{U\~܉e 6ओ'Eb z]0}*W"vgkA-\`dꉑr17}1=$d oKE~ڱJ'ȫS̐lLF=12I"o>O퍂$YW 6c-/-J>2Α):]HbxFӈk 6!&&8]rq -U9vo 44ihtT7|l`LsjO>n^ jkyk&Lr{U,F+]DiNf59R2>Iu4\+=AwJ#g|kA9<`-V55ۥ !C ;ՠ3 eL5a̳ hg 3p()N}}zjD,VcsJ#( Nk+ &PD]n.%V4'j穭!MJqCTz%۞|AÇXBU&T+Qyk&戢3hxpv.|"⹙kY| m z}mP:?0:?jwW%h3MI@[+xKS gUQ(r/-/'Wdw%ZkNĩ> I$YYмCtC/Sߎ-kc@9OIsHy"3'8e5XllPWg ͺ.e3XaitY\pR7@\ó $9Ж"B_B}n7cDvOY[yo:y4 ZN 9lSa8AxB<4+o1_;aV)>OL? jH@6m-!~- DW8IxUB+6[{geQv#OȪ}ݦ03:] ! :H5λ ͕o56r pBrQ2'TOqY^*𘈶HWQ57~ch"l-5 Cxi.Ig.`ozFb׎Qs/$@Ubkjk/=9hl(L{)M aB^<Dy8?Y]c'3\ޗD.uV>y7`9 |[@)H4KSP|4EvD._Nʞ4fcsv`!)ׁ4ۡ^L{8M62BY*X" Nm@ R 44kfPpm4g-Ezc3FF]bFDj[pO\OLL9=`UNi͊ӈ5nH\pX]2p'R(z(=F?ksIysN_, JFԝlM> n^Q@;=2h ;F#vWuҙDpN &pz8(g G]I*Z: 91E{# v2Ѐ]487RO1cRLV)ӛ}'\ZU oMMW. 0OI[u<4(ʻ8v~R3h KfJǿhwQy)*N$ ϱC9j;׶9`- < \c\&V1: xDϘ݅$r.}(!jbsVp$AVrKn`J]vK̀*"Po-eG7#w*VOP_<]v~ @3{7# _qlAH&w^ )_xr3D;% 16gsZeWE9$_zoWΤ0yJ^'O'x~2! S_[\[>!1gi@֌zKE3>JtMoLj)@f?6RN2tH;.Z̿@tpV6-ʼ$RM(hy{˴iT4/i {T ׅy|GFiVFŲ1/P":F]b7!VW3EdV١/Ys:.cF`-z\Bg?n4 &t;#] UH"[GYo%<+`AUQ,Y:Q6 ϒ8K,ї0\Fʕ_9F+p(0E H{R"v DBe giG{6l;&*tpj꼲TPKp/Ek u֤̿hxlSL)\{in9./TAim8šUt[d7Ƀ_+b˪s>CMLXܕ%[M Q0BMq7#f/9RKx}Ln%f?T%aB9XCAUҊogVf:sGP&ŇC=T]QP:zGk~ 8SH\̿:K2='XTK8qֈ!"K@sƢq n_^_IoDAQ 3vάK3Ҩrp ]\&uyMk#2>KpjZey +4SJru ˪,%OXE@C^U"v)*,&rvi]a%12c]ǻ0ir=Uyn2cJ۷Ph%p03AY)XZ~ii/WB1[?H'Uq(3ݾYa9Rj 3K")Dik]|juڿl^:otH[>I>-AI~{evrn "U/WF$Bb!q2 zFlMda 8Ѳ}0F59H%ɵty+ Orw7ۍJVƺ\=3IHGiX!~}&tU]&I Q5\wʞ_k&_6IAJb|G. ƕ-"e<93^L6|>ޱ]!!`AE-2N.w8O)hJL*_wLL,U@t뷂? ?n'X;oR/ ,,D}}id_t 4׫y- |p&,ƪ1Ԯv~-^9U͋#&[M13}{ Zpx}. .iu=UTEm,nu6xq*Ա6~,Ulɥ:j43;Q%!`!`tM< i23r};m %PE#kYA5`PgT\ٿիê[T;(gN`4xr JJ0xՍQ]?Zɭd|q3ݱUD!pҜs FH s\9'kWV!䞽-PWǨC Zi뾚`i؜f/x}!`zjMO N`ǫ}pV3 rDɢPE!=TgX" iùPqw`BxzxyLd$}&5jUFZ0|#mrL"F v-){~q|s XzO[@@(ʲԤ̖8D[/{0!84H@`__`qei&]^/c| N<Ѣn,º$[pϷk5\Y{%d4(_'&>Գߔ0[7WPS#}5L^gAd̊QΏf pQŨ\ 8E2{QbNwN}&me0L+OdpQTA8Ɂ *}CfR/l<<*|Xk~5̂[D3>,qs5 v`Ō߷I|v3,9gtq:Mcs{ʫχ Rz C᫲j+ 8Ztt:nyb iڿ=,0rŨ2c6VݗᬝSniɄP=h#DԂD+칹8͝ߚN]a7,VsK^Kn1iS'K[Sb36)gZģfM%ͯsɘna75ͤUQqsL8H dgh.AB& 0s~n#eїy=fӓFs5x%уHwъ]j$#J O[葼Cx*1A@!`!`AE-2N.6fV# ut;2Or( 6x~}z'c蚥U!vnS_q<崇c,)(V2>"NTʺ֔ȁBޡ)J7_9/]_/tQ*҄[Iki=8Emz ~0y, s=cDAKvfv72~~8;{~U бwa *Ob̟`cm`_We@ͬҲ7z _N J`(GHgBa腌|>}ƿ72ܤ![esny(V~fv 'ǚ; ZS7"Z-p!̊mgeʵHx&)3(ʩIVPl@syƄޓ_^ '+\^ kζ;Wq_Z0Pɧ*Pv}wn*˼/2]x*ƭ{#B5L1{$BzsPF!5ˋ/FֻV.M@b5xY| LVUc"yu7/xVZ5.ÏV>| /1bbvb?pt;#Ÿ r-wkMNk'8ڸpЪzud9VLJǵj&|<^#rmI G@SJɄnN\PO(ڶc1P+۾>;'ҽt|=w|g, FHDc|*qׯ1,c%np=\|Qd7|-%vgܦ@<UG}S ]{묒O p4s^A3C"M9ۀWoCơX-}g7xq_akhʃj7&uoW&hsfeR Фbu4NO["AFWE$-x)cn[w#PMNיNY$pѡ3c #$ցtDBj k߳HX%-td1I iTxuf6mFs'..kOcW% eH´$|J+P1-b͒@ ="x1%n~&j_ lݴ4!2Zvu{r!`!`AE-2N.(24F2g =z9omf&(y%|픾0 8ڜ*w$Ԋ@Ğ0zЀnc xn",Kl@4 ;VO7fG[➌Z2Ǟۄ@$f_#^ٔLD9G0#Wzw[|+ڒWI0ⱧLo[O9+DO-Z+~NbUyS07+zJ-*zBꉤ̘tJޞȁG{(`u/XN߈!xJ_"{?ʬu)&8a_dw!n'!E R`^^ ?\ ԴWx1Aѫbh;|e7~aiތ}wD둻h)! ]C5SkO* H#Vo ,qr19>7h{fzj!B;hxiwa&^j4i'>QWYR!9!"]`{ ?n,$m<_%]c]g&%v'b<WH#F<2q0G0p=; 3 @[?_SyFy)tVjNA+> ~v co7fѴ+oCaf*֦y˿FW z_Z{E _{)&dyn!!2%Q7/iVOlܷ2}K}Vt{tAӐ`nE,!rݝ>Op\>=ܗ p(8זYF ,-7X9Ey$u-c2 <IqLC>RPZI<5zigRN!pgh-jԳ~\+1 ZfDdg:Ux`k r =ʢjx;f^N?&Lt&mu¡|Tg0|(8E+vKC@˧rA4Z,1Oۻ"Y~ٓ5xܴH:<IpgI8{zY]aޥWmР8+d\\ [=TSH69_y"-.ނ$`R)&g:[M+S)FeQ2'%/׸yXs{yIBb=nSqi"4hh0ͻo[#D>Qv&/F 87i47*Wxq21=LΏF^}Q(&L2p`6jehcUXBF,9|apslf8ұN}z'*pj Qox|%膘wOFK^&o&'AtOfɠ(V aułP8k"ȧ9t[Nх8?FwP ^DtYU;w!gDf)RFFbF8vB#h,9%-񀈰ԘIl0GQ8ruBxHǠ+sZjXٸ^Zt0nz^s*u \ΩI'j@gazf=/+)*-UϹ|ƿؔa{(NW-N0L'qmo ޡƽupp1GɾakfY, Fsc $޳`Xr7-,.0#~t(N> ƌpV 7Ը_և N{nQX{@wY ]zYp\){G>$ƃxOtan?$W<2dq|$aW(Zcg_ab1[فa|,5jۋU!F7:I,6ĉn}(@apf4@2֨sABUaE[K[6BӘn7s{1HR#K>>/ jyR1 ( sR3ӫ+ J/A #SO@]=cŠWP4;l"[xMgc~;AU|󇶇R)H3iw:^HE4q<Vmy|9ɽ-,dp06 ͎&; &|KelC'G1 Yl5t|Xc*o >2Kkk~kMw'I#@\ȘiYQe抰ML3(7sT*(Sųo^87?DmFu\A8w+&8U<.cǂBx' :$Uct+96 Ⱎ>Oc⺟Q&/H|W ^)Q,97͹G@LP~8$.SA %?!pK⺪^V5n?3 :c\jQ[d].p!`"_ U5и@bsHb3lHa)0A|4I6HM9 %^*;Qu4x򟳎jK :E Zr *XB#qKA @2gLzßTBG )HC+}Rp[b[H s"N"6Iٙ,?ؑp"帛HR- 9,8Gz0J0;&Lvpł>NKIwKriQI&=xP4@4LDNI__ݒ\ }o^[_[Fīˀ Udb5s+H`C+*!*n⎻E]03.ѭs%vR7*ѶZwBf5pQzA{"-G+EȜkI i({ t=5c?آGd}4$ER ůݹD0oqSTg(YZC"S3uJإ47z?aNZ`IkqQ"hi@uF貔cԝO4 RܧRx+ y.16̗ϒyQhgqƅVPm}1óٞ >q; @Hۢ /?804uK>R0BV5iH\`iGνx.+Ȣ>t"`#i;_;jCiԖ7EL!cak¶Gz^;OLKX4kDFJY\HVTʓyMoqLX:.5sLsE-Rt\WU;ߝ!3Gp 5 ¦ $:@QwVs%gf2JZUo ?tC-l'[H%CP\E{4Y]fft6Uergr'Y)`N}qqЍ:6{0bԊެ..A'j|73/+Txf}$ZU"՛z-;!K&b۸H19|Ws٩K3:cD8+WƂ_@8Z{(ڴa׸|t`~MVaf62C8o$80fteS+ػL u,y2, ͑2[=B-ds@<IDIVX9Gz$J9D^}:`}V:4w𕦿kXv]bDR׏&:j\-:bG.ywI|[*PUjmϨ kիǮJ:A+yqPIʙKN C`ZOE=1`/i=HBaj*~s4(|#M9-kP @qQ\=h+266l7<7U0B`RTd-Z[V/ U_㴤txQR [?,ZX費fOQ ZB)5xۜBñ\SHWVA{lQ+{P So3bv.tS <|]0Pb?"k :xi黱#X*@Oe']#"OHAnCjiehW4>0^_Il=L3AhK B?%;{SBIБ+>KEN"A6a!o_AܶE=&}kySS@s)=zUi Oʮo2Y D$ʹD_՗e."j!vە!fh~Al$}@>6vI )g\TVHy <=䒊 9{]Fۅ aVN2,-s2A]˞=Yx &iS|"-]K@~Ei7^ *o.zh˚9 zs^F 9-ǐZ{+ VR/q 9m"?v-Ry=_~e-B)zG&\$8C =ڜ)}f.D.X3!匏 Yyю] 7.B/q@lo6٭!./&D)`a(q_ ODM I;4AבԿ SfmhA,,mxLD 2I dmMeo+0W8DCF=wd&.\d"kӍhvhԝE]j- \(zSp~&Hآ:8 1͋CNFhA  ##?LIIV=:YUt {xDڤƺhAfFH?? *KTz %pSpL(Fr1c b۸Mm%aBhua9^J m&"dI}/o't)@2E);8Ԑ.,Y"ڸ`ֺR=\ּg<0 0-o鼩]۾ '[îU:z >?R$cjf/}s u Uˠʸi@qrW4(W=-GU~D:ވ[Gv(J6!E(Slg6gw^`^l L!$/)4e_ DALuN Cڃs9CA~$ғ1v"WP*`"b[wXQAw<+~F:?43N$6c#%9vjþ,N#_&^>Y'}*7ih$U,[]]YfUcTԝ7Es5V2FWelGxUů4p)%z==B=%Iz&rgwcȯ#4P}wrIⓆEn |cI,ڞ4J%.$-Қ kZI[^h1`fY(9Cn8$lANeͿǮMF٩V wC/N9<Ϯ`ieNB]bG( P f9rUl( NPaxlRd^>m>h C()fkmwTm߸tQ8%Hkhip~d=-n7pN9[?M݂t-<R_4ǙVAnJA鏩mWۮes"5(_. 7YPIY80@;ی ZgRQ|qy6Ra[82"lbkcs^Qкf?dR'}B^`*Sjj3yd\߫AbHMA;BHFvr,'?˱[$#pEkt۲0Uh821Nh Z'93I 'p㩲M GąWp,LtyQ2DO])k@ݝs"#)YH7X ߯w9Eęlzݮ4% ݹ[V޳sM4%GR4)W2L&A Ee)t*QxtC]"' w =łWݭl/jhHtgTʉ dzo=(%\$"5`>YYs0fGo*Rv|1CV J 2R^>@H!P?zū0ݒˠ;`4rLI[ЖYX'C鞳ten#+ }ѵAг6f~"8K s 2`Ā*^i.HtDѺsՇ.'(n6Ԙ~է]'du"+5-co,taI~OZAUHTXm;;Q9y ~4&p݈}luClCa`H KwpuEBd3h6f8R+G\snAB^sZ,Ɩ9?* q_ѱAG*8c/=" Tkҭ32[ـiB=:?Q2t'o:JIp6v%V_Bmvӵ@6d+!sXI-I 'ThFJ?2ɫYQyv%3v%FnɔG g6LYW 9(Z&݈!'7<}dDRL7}Zv92b?k:VZ]7K0bz' qi=H)C(~f?A IpJVf>+z=P[ |,2.]K%ĚJ{ WWz@m% t::2F.NY;Ϙzq$Od, 즩2Kֽ{n,BZ =;(S:(i[0Gz30׍ !n}:}_GCDaAc6[<`͚}jÃi׈I{chAn1֏|O= VxDN:-^?$œ (6qOȩL@1`HZLK򙷻2a/sBJ(zd"v[|^3{.XQ=<4*v\ere۴4:e&|bHvޘG #VEKi^Uߢ[bqW=0uQꖰ34N/%?p`o2 wbޭSwr*|=`ss-2 f8W1 N8UNG; |X>Ж(sO®űeHbTZ-h@Uض&DP8&!0hPhNU}:,.3KΏ{zS=}Ny_٤{+Rp!ki'Q r M9ӹG}Z전\k ٙ*m^OȈDU}Dx>D*E}AO)g}.HF՟_ݢ>pMGG֦۔h={ b~[ýY"A\y;μjs !@(;Y57B ~м+H/|]|Yobk+ppj&ס.X!ۤ,;pL@Bz.|H/ցmIb ? 3Tˈ>)N,CFƘj }z.0RVujl HNEїJa gZ6e H9hEUrubJ % i,-k[*9NR~Ђ$ڙuҏ2yM7V&aEZm;ð]3~fmåFҗEEG:e-zy4(ap%]tP$,JD$enf!z;M3[6J.pt 0%x*~6c4j:S$b?9t\&C{obpw` SPnh&RdUӔc-9l'*CD͡G1݌>4/5p0, x-rJJS-`S9}:'pKNk\!o[>LBuT01j/qaF:8O1T9_0A:C,L2 ] M_?YQկcE bnfW?x ]:ng6`C$̃H`NxӞ( ]х,dxys͚EWw7(`]7D /zotY\'YgC)E77{tj"46WG7=o<KG|USy#QQ}4KD }y'cԯ8oLUq@| " 4sJUp*D|k0jj!;v "mSbF &g uu`6j.y ofd~'yφ2_7_Y4(*XXIN*gr[!׊a,T/q#&!t_PgX qAFC^X jIXD`3r%Ē?cR=X1H S]l!9SGmM~*xԳ DH?5Ѓ[g<^J}ZȥǝYǦ $27KsgAWԼ\2,eU*ωXUZ&.$ +eZ.2y"KPbL`@_Y/h85yOkJڒ&^u<.7uܕ{:ec?J6SuJIw +?jT9d\K+d%͢]//ǿ("2 sI{͝O3qq(m?W1o-;(07h25ց7DV}I{}TSת@*ηsNjG/#_27|1L8s'h&UZ9v>=ϊ45J570<'@DSոcPdɠ/VWVPm}{8(9W7ϠSmL] |~ ȏeQQG'qk^ Yk|+2Sz}9}?5B{8SaP}zE-,߉2ciǒ2{saǁxr,%ΨuЃKK"S% @dQ (6pZ+<@ Jjc5gØ#1G͛wlO|S%{0609to[R\oY5|ŲlpȏhL)v/GSt ۳/W+/?LB }bR-N=9ɩ]R0I ᫙=:` @gaQQƜs3$+TƷv*,Hf#B>D%sL@]d3G^ǩ f`56p++A)%$ KIڌOk'NV2l[ !IkxP7^[̴٫jMϯc=>Xy(xwߵ )BZUer 6X’nN#N=q5Ê ͗ckQ{zW-[1q&qMiPBv dԜ]AaՊ}K8-N4˗Oj]|`oȘz5? bozHg8V!P]L&ޅr:/B[+dcŽmP2:;`,۽FiE GxƑxU'91y=*R`1lH@M$txTY/˕8VS>ah ǞLi325-;$>B{ڔ(eu'41NӉe9cYd"9=1>Y'&y‘ +ŕf~5 <;E4'zw!Rf-v%tun`? b$(Rg\zRaVk!G7Oϭ8EVpBjYּ$W<4īM 6`?[UC))F4GB"'*6V~#0.?%2 W% KCޒ-YQ&Tff!:r;2_ȇzZª}϶aKt=[ @ܵd%SzLs8tj;&Mqm|bkQir!>,S/Ne6e cLj%+ {̈́8x zVyԴk !PHGF-n)^OT^YQ0B8U#E/3xeA}҂e?A #?7܈0@JI(0+1,~KRXͱz Q}PM3$_g5xC=?QC34/Ѕ!pWsOD fY`V+])"RY΀٭FKK*.y k@Dm]tC̸p0m,JOXRO[যTHU ^%>Rh fz(w=V!iJ!Q9AAp4RUJǬBs 4մ,R%Zî,W.HM2e;`{SɕDP |s,7Ҋ;2?R]Hg^=;F ɉx ;kOFKACX'#{ ɖL[0!HA#F<?}9Wc:}w 3ӁL=I>2^BfY&McSo˸cb,(wk>` cSx K@:,yT9P?*6: 2`^:;|̉;IUG}r@\C_\(jbk2+c<`lO^* .{on]3OXs.`Ț $H&Y!8 cT]-^X}ceDbMp}e3$.@Ċ];`_9@<6`09 \/Zϊh.r_R. *= Ϥz'^%5'.:"fz2pj:,WU961inKvXU40'I]_ZHŲ/V:~i8lN6hƢ5<ʗ:zs:m L ~wuN@Z`/>9R&;QݶUtW ?r @K {kD61&8kBco8ӄroˡg2TG]P_)1pe\>I?>:"=F ȂF1 NB b}=W0緍15|!XG&fb!z .=3#Ζv}.7IMt#gk b;MMq?-GCWtmN ׄ0)HwL"8Vq7ٴǡPņJ:S}'<A +6rIi6Iyn{$YFfRmƳ̯tn4d"޴j&ރ8FytvQg2pvěᰐ^+T&H "O`gu&f!#a"3v0,zͰYl?6+ŤXJC,ga$b(i{f)!87KԪ/+m=):`n&4%r3p3@jeF~!&EAR97ƁCo)j2xR9ޝ\}`kO!9k1[mogΰ|tS:or\xk2;b5rv:[V6|z]<̥L"n$}P` HE̺%a 3OKYXonʊ$=Ⱥ5#k[ˁX;Pӝ@ {2uy]߆0/%Kx!5TFzbޙ ֶ,lmlP-^ǯ+62`G2L*6ʡތ) *ql;BǬ, &3;j66[uҨCRLeHcewl&[6R [Bs@틙~}Y>69m4ԗ~Oe'6}cA| ?ҳ<]IX-V֨Ew6Iki)a GM/Uf /?Z:w3Ӡ2ȗ|/Ba:/-Wce•f'pk(iarpkկ TUAk6!ehbBQ`AɎ֙y8ο#琪cf[V~άpr5jv^şH-A(/c V>uKlG)w+UXjn9R=JU U3|HxUp*&,f Q}ʷ3jD_Xa)C`P+Hj5!O댴I?uAw/k\,.C#KYhL/DaeD5l}nbVJc1z2.V8"> "Ωx5'h~86 !Vx?DU@t:Yף!i;~~?? minuErJuS6JIa3ƢT/q[Q)*ٮ\`ErgX7W:T_'/yadvX+Z%0R/xbZo\dI>N^]%*t0};02%#okih;^tJpIZATw;ǔgH& RdlF"Ms3I9M˯z'4@"b{y2kkRjc#c3P|47'ďIW=z zjMʛwDB"35NTynjs۫+AzlVA]YTF]VDb$R77(:4EY'| A(cUOdC e7I~w{V,K}J`ۡN;&V"tn!ș ǁ+!h0+ .OF0} INUM0/׺-ɩݒY)?bn!QbL3,մf4|OPVS>߹, Cm`rFSA)cr7FV%)X7~0+V.XU^|7l*]2蕨i>T">,P>0N$4F tȈ5;1 ɬEBb -.H۠Y?ˈࢌ<4Z6حkqʦGk(23oXrSM]8!!H|GU1,Jн(,qfit_yX~,q(E: Tɖ]KVb#s5 c)e:HFf"N\﹌ "+\ C.9)!6wijU8Vq|=XX$%ztW/EE4V2 *Oܐ753RL `@#f =RM{._C-x2:<&G0D$vԹl (*HU]̤]tCaFȕ.lԦ^$o 48~AdTZ}D 'JmM<=5XKOna5 oa&`aO3v AT8fHr9zejt{F.hmfQC6~x`cDEU FgUm3'ΝXv[o *y1]>E· L8Ƚoƕ}&C,5au 1i_qPa=y^b/ FϷ}+LZ` NRR5A. d3<=C>V0ͽ2hm]60^%o1xKP-Uե"pEmS/HN=YơN(HC3^둝 s |&FNVm'56#L:f6ܖ4o0}FT3Jć:!`!`A]E-l W4YL-Jb ĀwPʜFK+*Ge}>ݎezm@O0k}A?@z`^:]agi4"d"0S2.q-b(U"/QZ1_FfK \+G2<ޮ+@Y&{K9'&aiᰄ A zC,?13f,#Ԋ7v=BfEbOj#k 99Afb>o̵/Qe2 ХЉ v1 ZL-^ |nٮ5HymMrK Wj ЃoDEx Yow dzz)+ [1J!.s!`!`6|tMՓ]$:]2&MY(RPC5̕exDD;|TJɰw;@8]Fi3,iOO5gO7]]ӥe!C)s?/KMiq=aS>Jssi HGx:"`DEb6fGgL)H!EH&+f>ܕR'RF@W?wNy m nbz` R7CCCCڲz!{jX4zEfWʞk_ySCՓ]\xI V& cҊ7%oNıQ4׌ɝ"fsB=jDFZXtMB*t-8Q*%<=Hf>CnWN3U(X8{[<oF =ЏDpՌ~H Ðo1H/r4gc,.g+ w} zZW^L#4j^Jb7Z(!Rmmhu6UxNS|!өՊ>(꓃gBScHתW~LcA xmqiڙٺkL>ce~p :8a\lB\Rۗ^ZRvƦ8s1.7X6} X3tD#fɘ#[2k?Np|o~}/Aq2:,Hs^2pQPh* FS d1[y46Wr}/lܼV t[GHE'BzP ?s#xQ a5$M]=9TU{h gVׯ9[s_u08aZmv9ѽ10g)M Ջ3nzaΈ@'5h|dni PȲm?=;US}vy7b|@`=8h.U?'Wč3KGfgMJq {v[>n#z]W:Db1?n;\ރ/&l \,"璍5OGpՁeHK\OOqQ0aR)}7 $W_Y!])-ing0Pn#[-πW9Ю:| qjk)g Ga%WIÕZcP!yUt"CVzJ}G&ti7 =N-Mыud4%4Fa_9kt.>]VUO@^/j(O@i_ۇ֊#N%duGsqpqvzՄWyzt ARfwc+fo*"&j={l8FNi[eS-/F{og WZ2pwMg3-[QYsn(Im tq[鹬ַK P`uu+c $ S%̎Z~98k}9vUi+7ΡX-L:]#/v:Ǖy\4׶lt|QUfQVNɼ:ڟ͞dTZ) eI H3~..y"z 35~Dx* Zw3GwYk_ $Q Az3!js+yT<s5Z9yb(Β.N4$ĕ^k첤Pn~uw!u= lE\8h 2HZ5ew{~$*(Рr3hҐ;81 z1EGI޺EP(DȹKQ7)Պ}ǖ 3Zd`Xw({l `vIVBwn}dec޿lc ө_ƴ4,f(/cC]jQ ؁3>QL-RP_t*`mHva=:Y]RX'4`r(1O b,a(,J֕2 AKvTu6f{@{涝*^G?ә$&M;yiݙ:xUpvI (2G5yr"˚(tX-W:BW%H4+'G:6kEp*0ۻ';%lYN{7SɌ<̭.Rc`W(OGIKmyɋ[C9@xD=Ç(b.*~N:7|^ar!^ 6H}Τ`~v݂kUWgXkW,`eF@'L:xtsf73K4MSOe281Z|5< Ny5a<*<{52uՒܞea͟+pGnd 蕸7J}4[+V w_qD~r'aT5?|Mɾ]׈R>Ĝ˓#QT(Na~ǔi 0 /W)hE17 \3}oY! -3#J2qcZ(D !!04 ~skC\?142m}ό\kwHL'5\:#K@_N-KE ܞN< Eb_"hخ'+_l^P JKӺ4C&+c){GF Y'H=KrwZiuwׁDmdWj<<r'"[-d}CZ3@!xk@gl7b*JC*ǻ GYh)q`XEg{Pİp&+G놲#o^ZtA2FF3r/&m՚~w谹C|-,znSV\>b4|:@R$K|{3ÒWVh~`RU=Go]NVfs6\=Ċvw8xL[H [m3jqAVM` m}u⠜2+ʓR'lRg *; }KY|%ǻcmc[%V87ko5wUKFEXQ'Bɐ8E^,p{_@֐ۑ7[~\ L19W,0/:͞J (7'|S7~?cnTQ2$ǑNy-aR9aa*PJ[LQ)Njք!V`*_~H^2`wM.\F+.+|w?J̠:3gӕ G׈q'aWF)TrC9 A:./V5YBI wex>&I{com6fM`,1.k @N!7vFCo;ޘl%g;)$MO J7L[6BI"ڬN88"-ALjkOQg2oĻ.6++иYuCΑv0]ZMQmӆj"|,AR[1pX$+ m&ZDa}րβAz3EtЯ&~7*ZZ T9o5SSA咳łI&Sw]1  4J(?YڈP8NԆ+hm~x5lSڑTRLP/f g4J;$Uo+wxL$W }F+[˙j#Vh7@?FPncH;fUmY [ל=9ZJ@.x(׷|l>dwt KFAѽ(\Дv~Y#,bl&+𹅫@ETWjmΆ`r 3 ?瘥xÅ{vTXYRF3=R-B ,/Qߐ8C$M )c"ޗgq{nx ?Mц0#^zPx?y2x+qVHa` XP^*vV0_D.yGh5!VsNP n /0^%᥌Op#ӬH-%ٺI:nuIz?Hƫa^W%jLM#ي 8"dAMw=7g"~#Y}t_ۋgNG]4XMC-J^sf"t2^~AOxֿ4ĺiݨ G y'mKxeny&^} ϙ>V+\.h`j.ň=e6^D=L<]gMylux?R](?=00r&x ,25AHNxh90"b=MsE8D*p@`3aL8+G +&f +9k3qPWsmާ[J]ۜ(|2g6T۲b/VP:52FFd~5,(`i۽Y'xc=hW~| pX?r"#YۙLTBשdɏ/\y`8-2Z*˼׆Uu.‰uY:X<|Bf}jm-NlP _Liy0[A%/[ A'ۗU޷J5RWRi9A!G} v 飲e峷vVusNݖiӬ)\T1d_: :b}/}n1+"&%ut-RJ3aSN9 H']x+uDUwm( Vs @.TϪ7~;F$ٴ$N%ܕ9?k0F rP?lZ%(l|BUz+ZN}diȒAKM&SAqA_fOmQkU֩ܜ|/ Bk2Mf1,2%Ro&8`rc]`hJ6L-o6lT{;lhSVխ?ޘl~V'(%k[ج<,`Ri=&#N}Rn0dfImkBNtjLտҝ,:j6$2 . YB1L]?}yke]r39:T+JZ)5z{ Z\"G6: Y~9HwbMiҌ qꃜYiD%70{fl^cAF`.A9Լ͵l`F]+:u>ϓ UO,,`߻սϒܮ@bsSj疢ƫ4Z$ M`ŐI]}XY] 6?[L]_րR2OCB|zJ 95ҩUp+-bŧ>oN{+*jE`6~6e4ݵľY 5NEAWX\Ié!h.w{wƴnaQ\֤4^32ĺ+q48-m4, AZ6fRCo mqԽ/K Z+Ppb*-A$TA`3-AbQrvkKd3r6ڗ$5Jq p}"1y]F]C^a<(2.Lqc![ELb i]f#]mMR@#3+ee{?8t5x`v}VM2$:Ν3PjV;CA+,\ Md Q3ʓDI'RvA"wרv@)%>@Ba|qZ4%Ictє hs5¤>'z>WKvvYW=6Cm$[ 7A9zջ#],פ89!_R%;̕RnjkN#ERf#q6Ѷ őLO U5*%\u:CТ] C;So?7^0rH{:j ?r'L^ʹ~~P- Tz^q 8P Pp)~'JJzZD9",Bw%ߨOe3zuX@ fUOf @+" 4w%j ƿc+ ey#v$=!ښhi5eA@Ƴ`W=نHӰΚ?`!"Az.kchxM>:, {gKHku*W)y{_}|o•ӧJBv>᜹qB=wIqxr#GD7QQzó~`ؔS}IU\n?h4οp5gĊ {Wеf"JwᑿiGyO/Û)s}ND pAۭt+B Ii`ٽgv a8G!#yB:ϩQU'x5+`!>X׫\z=LL"_Cm}@@><eU uՎQEl iG=>tM.?7qe)嘩'CZ)K7@x ?f&P< 1}H n#)p&j:PpK""6ވm.B&?}O UOaעr>̿ 鿩-tWW17M=MΕgPѐEa;V wnBƛ^b!~ł/s@49wgp(+Q,v}+IvuXnV+ %{K$6ﻮ+!/19uuiͬ9 0؂*ZDU0zF7~t_*tl[^ɢZܔ@oyw b`-'C b(cMPXdESo|neWWQg24"AfK|#Ûƹ@|6=rv7;yá0gHYRX HsH"ڴ|{b9Hߡu+|GIWalqC5av6*N \Z+TP]YߨpEl䢩d$73 DH#_rSm89@8]t#*@+ÊB~ʩח3L~ xS˶Qg_Z _euZ|%Ȕ;`|.sZn>u]$D3E3S8^<#A{zM{s~q@ItqR\B.9BnٗU5cI5̧!` `㇊aMJw0́`i);1bCDJt{BWDYY6)'~Iנm_+.WNVOwRAѫs}4gWauy݌j qt{?zޣ(>3ĭxfQ8:ﻡ2Ew4Xjme2b ( pS+UI&!C@Jbni$L$: B^$^T0gIj/*@Yvt72T SFZeT˒S,]WZ5~}i=u#JNi^Q4%fY6 CEKL6.Q`-o4쪷lf)f>H `($&K!|3/π`x?sp^XIVҭyDݑUz<۴ UG? `;Y7ŶduqH[ѳ®J>|{|yø |Vy0H=tF(͠l4HЉc_%2ǩg @h{k3p>yl= Y-@ }`Rqu`UAl#lj3Oجa:]* ZÆ@xOw'pM^lRuݦ5%Q~\բ?1kUH bF$/a2.O0%g{peŻ^%mߐ;%x##2 ꜭS}zzK Y)fCepؘz9oGȝjԒB_ A;_! dHFC^cŤ ]/{UMhľ:M-w& d8^9]r܁1` s:VD?sE"b$qF.;vREro[l ]88lIw#Tۡ/ZBoyVPz.ɵA> qz'%FUqL.Y״Q*-&# JJmuj\#r.ߔ5VOPG򫵅&ܶؤP3\qog%RcTaJ Tԑ6 "0ԓlP6dkjeRu6(0T"[<5>)I`%=fZ4QPMmstziv'#Kb sſ#U-NrGsn 4'EAJӦp3 =LJɳy/Hrj - $v7hCx 2^ osz"aTFx+^8b {˫ƟCZF;gvo 1$ `Vp2kL`(%N hX$h1ϯfhCV7V[;~.^QK{]t' 90j9 *B|H*HSWx^\rGv"{c / Y:}="io-Mɣ?ה}[q=Ixjr#g.\*8ZXZ% l3A}{Tؙu;8d{T^.bQ7FG4|6iHJN@$5Bf:Ê4EzSFi|24\Wϥ_^CrL.g#x5&WpȕRZp%2)8ʤ/j*y"KΆ 񅙂5p`A{_p*9VyV`ICltWrDigz9&-@ŒV*jS:%Fǝ@~κpޗ7֠栗Sbp6 ? 3&]{s? o|/Nz$ WC(yV|{;dft A0(J$kP!6/#{guWsdqP("O(5G[.5]W/3^NESo? vz'#l+l;dK*8?Q8C pɏ3ao [qq.فJG|R5W8($r޿J긷%+&/!P\b<(g;+y|1ѡ?N@V|jID䜰/}X>fn[ܴ~YŜE t" !sh}i-} b3PeCe5<ҍ4-5 ɊKkSWv.Xn,K[MttxQ=D#JF)dp0N *l=(Y8)kipƲQ[izO{ryez:L *!ʥ\:$@=?a:k:!Wh,[^r,fOa:5CoMk]?/q+D~=,x >x)chi_U![oq_[ZGUi_Y3 i-V%O0gyv yT$ݯWO%k(@c5# egR{O@#Lp>SqUU%šMLǞ(!1yt,W$Y[MPӍHE]c5c%:*cH[Ds y:Fb-ڄ>]8"|a2?w|ɢEJ׆vZGc]JK^çgq+A ԆJ^ZM 7SIB~Ds'76&y%+٘5&SmwBD$?#q}AN`Ɨ`B"ù 8gTlëH|ٕ' ޲n8(d xO &yۢG'S`pr|"(&; ih<=Qk}H@Fe3#Taç?X }DSǭ sY+/n('=iRp29 t-!>KD JKcA 򲶢2"t&yƻ2=g,Be:eо n~"8ik~L.G UGR&hGSހcnQ amOhk.P]EH \6Xk`I#TՆjMx,T7%6rѻՄpg3ΑpP 4R 7E6k=bR뭾Q -e~CP+mxz&<oCkы(XXVnLV523ed2*|6/DQ = Q;[}cwAҤ敜J`'[.e'IUPüvnd31JwN Ԓ+MAo4R)|F--6 oU& -6ޞR?:Z^6\).;,D[;UIjiP͐jed`:wɡ uK׽#M 1H k[y~uu#e " qzz%THMMJ+BVUWBl]gGi^=7bp }@HR;ҥP; @M.V?JZ^ +"&_WT 5rDs*d_F;xL76atkEhϽÇ OI v֩/ |&"81RGg/׍R?ZoǛ%om1sn=(3ohW.ځR~yDaI_`ZM-k:&\[ȬOexw\hwru0ȒM1\f"^Oy&仆RZ z)\nF\{dg"vRn>-|縂KhM!xjbw˂|HL}E%LKyxm4-]ю_WU3Z%`hXBАd߇hkWHGH{8.i8zƧ^+8Fϥ l( H/̝,n5> y`G3k|bhT.~%B+pVӳ:N}怄NcE^\}̬&,h% ^ٸY7Ucί烱"No lYKLLmts8#8{h7*X }.2V'݉}*e>!n^R5XyS7>2p/3ٶ6*$FljQ~|trynPW5~L05.y&aG XhPsȮ̊,,i/6r~_gPhY<1IFmޖ=jV5l/1:@l`@]Vr5hI̥f<%6e,Wgh'MCÛ 7 uH}%7;6T~[卵~z㛆56z>3;v/aKB"rq%ȥceYdH~p!un%zmsHDѭD"iӺ|kb.eZHT.U(chXڍF[O?*rǡ"aˡxn9]$א: 8ovB UT/w<7pܦH{OPMks@y\PiWBvn .KfΛL$el%~ -.%( so*dZ!WjguHv1Y#s#N .ˁ<:O,<;륡~) 3Zj xx/Cֳrndz#u'cm0olxrQH Ol9o5 l?$jhu!,AbhgDZWPNLQu{YqڪKx!i`\> DYy! rĤӒhK( mUQ_8=/-LՁ<.IZl 5tA1HUW}jۧ(Yme+:19l?y@ϱ7v;9aUm1<,RA$K SۜV }z66Q$HqKuHuӃsyJ\i2"j#ek'(;?N*Ob GZjc*u%Bkl 6U`N4\e߃5#: G2z&`HjiĊH,Wdg}՚Z2;2î kE:yڼIVk ś'*UN6'29G(q pD-%fXXĻ [_@ϗvjHSi{@v/?Wa>..uLmYVM Sg[ ;W,P'Zm]bV\kθ 6H'Cat O>w@fhSȹJ5 >K6d &[z=oS5H&q>Ĉ7mEӻy! fh>&Qmu1 h`Wi3Hݽ3ƳE/UKFA/pՔ rTѾړ6jvO&PaÓxrD/^qWϲxE=[ hRWboւ_YxNf;g,fѳAMF;?`̭H>&P S .-Xy6Zxi,.iI1ѫpeLA{1&2@Ѯa7m5&QQÆ_]moaH:j-5-lHIPB *4N7ĝyL6"[d (6jS80KO0p uSΦM"FX;3g|ks 5 3#-Te]B\Ȼ5sFycQn^+k2ũeJwh}mys.#ɉ.liM-[ݥ1`+0 +'3\ BAb2ZuoE)cG^z;*YCPeԔ# 躋`= UDEa*o~O7XӱE7DΩK"0D,̶b?Ov ҄ف@9cRiaVVW-ֺ/!mU~eV!JV'] 5,u\L*1h=JDw -ܲdO%oЕȏ1:*N{\X-۪˘ u|x#=- ؞Q^HF&Cⰹjnle D-7.wnUk ^$̥LVˉEx, pn41,T.=|(sQ,:IL߻)wȌ㉶ayje͵Q0%U[M9O-Փ:݈4DMi|`CKo|j.jU'z(.!pß!Z̧%QK, Y +v`5z6ʁV}wy{$)yhAI˝mHv:9IX4#o\ Txy^Z熚uܘrU [-ῇʿ)R+țjPG ]5%QGf=u!6quE͚8²q)'^$lS qk@sg9?|-wÍp!HEsW5|f-כpwm((4osxR>D:W ByܜrV>)aTnVcQ{m``W3Um"ͪ&r|) c'8#pEVRHD ƞ8 u1R6@6EpJ[m'xAi-h kWqxء4՚=1>p< 3C_"oR? d,<א)duc  ;,Є3E+*vBW iMW(ndӡ vc9ԙdgRcNnƫ!UW&uTw .#J|Vԯ| 1 KL!g.j z vTne SIF1@tNA΋z*n^=\N(Vʺ.ѧLޓm'G?b۳tdzx\VWy|셼o\S~/)GjZ·9`wc`u@hhScy`r@ OR8k'sD*v2xRWa/&Mc|{q">ȿCjY]YxbVueT;_{A\Tv07-?w̏j;Ii5Bb")8.ČԊ0l 屆=mUߴd ][ISD[Gw ayJpS!ۃtHI_B#\v%%نmƉln2"%XDQrPcv,yx*®TApc!آ^ҁ)..x=(3Av5^EMM +.fpJ0"/˓HHI>?&_VaVʸ33@ő~@u~;,eXXt*?pet'ɺf*ڕsͫ($=SճIQ9rn*B"J!l+80:HɷdS!$ SW}>:av< bk +[XQ^!,kt !/hr6;Kb[x=ؙ"l-:Ԛᶀ/jD=fBzv9sX@iCK%6dbyc]1!x6^C3}+9b*i#<ȼc^uXcqd{}@y\J_J 9 hGTJ$3y+7OȶkA3G/dNeAylE:#~Bb!ZnSs#<6C\}3rgų1yMF:bha`F1T]fmu" {Nו=@_[@M9랅!ru'UK&&|I oWRsxR AoH\9uծ`n>hi8*oP~ %Tf{VNOj*s-<2:FkH# /pB Ƅ]WeUH0ʶ2C$~8l5viIHNqF/>dᅉ0E)10>h2tv>ey!獋M =(tNh8Hb\ſɟ}P|"V77l@ {v-#*0ܷ2,,x5߬k G\X;c0O@?M)k@si.&pЪWSG|NFN*!R2[# j/{@J Lд飇8RU뤡#"qJl<8J%nQ)Na>4=z*BX'ٯ?ٕrd/LG}/\TN,nC-d821?~MJ|rIcTl q!oL~| OX1QbńA+21eCҮ tdJFff ,j\F ʊwZݳw  8i"JL=L|//1=NFQ^GWt& A4Ĩ欗i; /0n~/:M(Gˣ8Tsl<v'_$[Ց5+%cV!iXD GoK6դ< V-Y(cp{UaةѦ 'ܬԗH)na_'{0dd`^T@;nTFE52ظòħ8 Da=>dČݘi?q)y|Am֬h8zV,ckV}*ef ] عW.)۳bk8|8 gKApuˍ A')ȩʋcvWBP>km!`YAE/ʼJB(>GQ LmUJftmc!@30* A IxPz{5/D ZfS͢e\@X^P~@bܜ#p<2@Z;l0'6]^%LLg˴t<0̰;,VY7~RQ!j4B;򭮞 v"@ @]2l<˕=H -nuUhƱ5'<&n`ryqC~-j~?ސ+lR4yn,3a4chDAe;Ta8ř)iLH*Z]/y^9D!`!`tM؋_ 1 A!m)T:m78~_&^}*g?U#ЉiqEC Itkwo Ti٘Y~kIxdɂ$)GK..--./q|E> VL`'fIF7nU4Vupxzp7(.<3@j.heRTKKב:GiFߦK?Jw#vogyFV3C!`jM"Jm\рf=Go!j;Nvk1`;&2 QfaV` ֠ФF1vIu ]HbB~7x:鞈lOM0z)%SzmYgU{+= rS&08KT2mP2҂qer*{lV~-]/eYIX*,\!5$ATe5K$ZR̯[.+JO@%h#d "K T-~_ ]KMr/uarh!VbI= Z'V[͜/Gv^,A$77548Zܤ8 ێ‰mf3"a'`O\]^o6o̹%7&x/H߮Y ?cLlIjh4*d8JD l8Rhx#!&k;j=|Νs3ɵqA^EW{pb1)3ҋB5 ]&A=(Tk7\M zU|<涱j.K< zxݠ}LV;a^@9; ]f @K^7>5$OhEC#GNxg>>#:Fg b;V~-}5VIoM$%Uд\y_/MMd&9^j*F~ ؜eMx'v9S`fX&E^qEaS5/~4k|J {CڜV3O)͆Xt,)O9-xOM7;kl$CmX U2yAV`ܞ1Ga(ḓ֣)ec 9d( +(@.Gw94YSe< 0Y0I">s؍lDvm~DcJ`t>@~/R"&L '3)b,\ hin҄Bñ W7%:_l YX?+_[Cs1B%˼hمad4s<ԉ| f$w؊?n|Pa|{Y"tl<JYǁs裏Qd!BK FD>O&-VQ7YBR6 L܍]6PttYH\PGր_]L?`|a 1šbi=q#F/K5.SnK12y=>=h*Rm ~g/Rr)_}֏ IQ12Xf꨷PζE!`!`AE-"7D]Btʽ,PՆ5:=ޭ"YX!"7:1`|] /vT\bVhTQu.EZ>v7-v*"R(p&W_9כ:E_H+Ql#%J|(^H pㆂcː ;~%Gs('B?/;EltF;0DjxTaR;ЃlsB hzK1F,Ϩ,1||J_"6tQI}щȉ#\fK܆ߑTJGV2%6cWIeSY56{\ R @_uN&L!] uXTL hŶ49c\ƌ.{ik۝Ά Y,XPlt'Bb+J6b.Hr'[K:^3NSG(PKWꗃg̈́Yش(ZΉFρ܎Cw9.O"[?ipف-8^g"1gN޳kD<e}ڽIlڗGc PM)W,]'4m`2N6r+o)Xʰ/ߗk ^.ޣ:Xb H7<}_cZSR~0Vm|jv*Gu$ɕ%ِ$,2%fCPw31" Ȼ̫[cޡ $U cANwFyBU)8X.ag TA cZeΩ^Cb!`!`A E-2N.?@=BUD]T}IK P4B$Ԁ ۏ#zUg(4w4T7i0%68R_dhOХ;9 PY4ԳcWOCmKkXH< =}AW,<2 j$9kZ!`g(tM< Ӧ4pO-`/$rjYi:5zuN/IєPlM()M?_i9!`!`!`x*jM胟 9tw[=C6UfYOB SLɰ轹c@q!\835b8Pי3DT,9J-Ui]ڣQ R)CH0[6) jMe!%0ň7gV7.gbS K/Y= Lb=̅=xUS "^~JR i:TP^h2 ȜR f SA6DZG]@Ur"INXވs(VF: ]ߜg,.GwlnڜۏcdS:ع :鋚`~W =k<Ƈz;=BNY? Wgo ̽&Ůe1iLS?!`tAME-2N.fLW$@@0fGycaw\oTӡlκe}pe[pp'<נ!`!`EltM< >Ee !`\FFȈDj("JUh]!`BnjM8cۀ7K$W- о#^eoiWS`HS=N"ƚ]am 0 BQ[Ywrk ܪſʌqcm:{`IEɹ:hH$$cJkV/\F:6>'ԕȂ]k2njcf1R  LS⋴k57ܳIKrފc?;x QO}^xHZ΄%f !`!`NtM3 XPHMUK`M"[Lx6Kig]$ t9`D :q!`5jMm+Ѧ[Kw E <){]8EPy`>G3@|Oȥt1KfEOש-[, qm0Y%CLRe8pP"0lUЖbpvbX$bՀZcHi dJTh{S>5ꈼR\STV"aAoKO 9vzneZ܇qIhC'6ؘ8U=C5N@p.<_1~0ܽ?y5 @YTL 3rPJqvm ?9vΧ_np&8@uMѶϞlÅc_ޙ|tuXHt]W pJnT)XDQT+=sDȞ U֩PL/ sIul `Aw.3+'WᵊTNmi8$ӯ1Io٥`xT<we #lN\<ޜlнA_ ($E!iZ/6b%6 R r|h.J1ndyWPLtD1F"] p{?Xӊ? 7_{#pd?WP$g;8ʶ(e C24**K5tKFJ+ !B)1} IEFyJaykم([8(lf hwUIO3ߋBn >&9 vsKv%U`NƊ篱{J"$]ѥt6qvQT<6kM:!B$ڍO<:0Z$F.A sXP5J&$,>V+Nbq ye {ɧZ@!HIen~ȱn!{7혐Je}wcXMCYO9!eЯ~+Ÿuza8#zG%S,>]ZĤ(w&@o`Aͥvo0u*~ekDǨuǣo{ e~q+$cׯF {C&x3JaƮ,ȗUVe#`qƩ`74Yon9Ҭ+Pu .tit]A,om& {46\o&uwi9ȢiC;s|w?g8zS$ +/qXv?WUor&~aYэFYkhXUR^tؐ-Bbӹx034iNQb zB1\ƽT:h&lҁd7 kN&N*-j`e^$*ݩ!~6`i*&=-b*< IwKURvz -H{? oCpVV)z;j6<&o-cw bR}}3!iʯԣikH*DP(=lB!sqsǶ?F~'?"FDEpm8Dvv?d&:lJNAGFdwL IHL=6|@=s?cj^vjS WMZPe]x(UK*UTm޸#ۡcKvtEϗR Zf5^J`zTs # ?sn4ԍ ,*}sS~X?:|rɌ.U*Qclp*}d.Uy/qr8'B~"uD_Qd"'dlͰ׌U2e5:PZߡS*^bosI6˸,mX vM(ּY|LoȪ2*^OB Ȇ= mf!qPi>|T#mTÍuǝ"?:qŦg[̣5pif r2a4(if9+m-kؠ{sGZ$f&(>Cc9n@C z4Iu(;H1ٮdeYw2uHACπY1hL+L‚t:= |jdz 􏾢Ͱ!9TU)w`גN=tTL>M KZW~^QQ'WAC_"6 "Nڡc0.I2>p5op)L]eyXɛ1ҩ\lS`ا.O4qNf`ZYHs 5ykvNs6+ _%G, VeKͬHC^y%3= U8ԇ$n0tЕMBLJO/\0C5Ȍ hJFCOd=cX[Iu!T}3JhY9p}r vKSȚ P 8{'xzzeLq&;_|Ij5AuaJ KlXhw D;KEZup kvx"']QRWvP!!9 \)]5[Pyn^ۉNlqP[ƞdJ!2%IcTiL"C>QvUj\hcp4\ /v"S_2V5Eժ;`OkRbV- -8{\u-t4;XH&lJ:s amFB~sOF9TD@-dLA'/mlhn6l'7r87Ƶc#fOM}께cn切+BrOxIJM.3x#K$*j_:ȎnJumil8qP FaN(+jya}\1a8h XREa7 E)Ciutryݛ+>`3ioP$͇̅S׍9ږy:GJuv;!`ݿC*rc{ykbIn% Ӿن(~ʇ7G++xfzA~.JFvY_ؔVyZ#csbmWRkbc[)ȵnd鏒ptnB>pǡ C}=ᬨ 7y`DSmyLӞD^baZ./l-(%3J[:SL@C@hw~x#){\>%*@Quɭ؛=EԚӊbt+:C!5>A!Rt`+Gq])==){EkopqMF,+9$1BE(0q2&՟5RV֗;Ւ)"6 Ixtq8iwo/9Ѐؒ`2[ ->ylh2y^Oĥ05Մd):)7P,S,ʯLgQMm̈cfy5@Yephn-qNBū%C *Qتkɩ3%O(zM1$K{ied+Z@~m m܀eY=!" xdx,҉T÷ Ikw4y4!n2&,Dq~jW7TSC1ẞRx{ tW Ԛ QHwexfǂW^rF(hL$ᾞ'0?4aC:Q ~@7O4mlMfJ?}, PM+ )Bz8k:qcv3d)dlWVLy׎ i~61'1;=sz MzNџ,){ZMXk;bxYWޔ"|D~>E9BY+fH~ꥡo%) XZcvU=aZMwIrJHh2dOF߀?UMk mqFӹo&uZ8Ɲ!_O!2W - 5ČZJ% =r/02ӧ=YeD#V3mYjdyfaɂNeN;7kYɄ A7+8Oeb_'fq*r{4H9{7hd)N1:Kv..{)to͡Y LPǾ3g|;'l*RЅ}[4Y3jё$eSDNɛjiFfz$ZKJ)=w_+C?z >m<:ed}> 56g{@SjlrnzÙBPˢW#ZE 3\iA 8ڲ-TG*:o0f=gQ|+c(!_>$* Å}02UhYjeSe /_i!FH1egJMSqI%HA4Y6 ׷=ůs@1 LmMxA0Mn>7#񻨠 !K_o|h<&1j]cV!4+ӚIC$E2 !FF8K|Q>_ 1b :i>F2ψ+}/1YT V@$W0)!+ _]m Q\(VڑGeLNXx-u=(}\Ŭ%=JP\6OJq(Y) ڝ{_--lgwef﫩![KOCV<,,:w&<~&}#iZ݋ + ɨc3*K̿BEښRMUbσt ܱ D`P~^^)4KuMP>8!?ښKGz9֟Qz(ǵe R!?|-\>lĭzZWFFhźw-9S^%/%\dj"?KોI֩y) H/4* &"S]9 qU3.^9# 5/Ӱ#[vO+Na$3^m)kU ݡYlFx2m\ֳ]94ב`ƘeL.\Ɇy3#2!F~|ޛ]O\)9BkZ7uxm ݥV|3}B^C6ͧG["6ܡc:(8!gzHydOǐ*grF?XDRGQbݙ(NT49Y6v/ 3Eot+fpzbkk$6u[Aځr n{g3`&M51a?+UgXԑσ)g 2 4Rl; vMs*8l0E$$igJ1t2n؈:S`ziOfpH%k zh eg?T*p20kC2| _c3k@;X+hQ{J sW!|u^Ç_z9N.f.㸿QӨ8]5~1ئhq&9DW1`/3k mC[Z P#{H/{宲.-3!Av܀hQ^1֨u€)ѲlY#p[5ډ59V/0ԙڀfb?LP#PHF^ ~Њ^9.(gN syuC[;g'^apo`N4/[o( 6YrrdFMUHԔ1NM)#9*)XL聮Y􊲨Z[\ĴweBJM6a#Lw0G(H"׫d=l/|- -g̷Vlj%)\y%ov/4=dT~VHjO9ZQa5=d.!$n-&KayY5YT!Y-ͯgŋ 1cnc,}F%oO\߁m&fِX71c~'"iR c%'OH/晎N̾98U=iVb3ŰrH5'/u'j2֐hg.וwp3B3I[),&I4'DF'7k, `JU\]XdrzЕ$Vy?j 8g`{}DF^yUɏ)MwkN&q[9zbk =c'n;W:TKH9 J[iQ4{ 7p|dOo\;7 ߬u{L=MsZqҵ;)tG)$)W/|ƿxC`2w#GKTxМ/NC*^]!g"SͪKϔɸ]K}p) "@)+ rTH >hBbN,Xz!#Β J}0i$ C-'69UF{Tc/+&>Rof25TA&.1WzQ)DVfݸ\ͮ5(2sd#j"xFf`9k 7=?y ڐtwd_WtbZmE6IH$=UJGe1l&̽UO]3__"24/5mt#pl, *fIvCA*/tl"kj6f0~&+oO&( 9=+b4ax,: $1߱4ܷ4 e7&ndRXnirb8S,[ :$cϧA\`RsϷ?h3o':+ϝlz}x+H(U5Mb&VXg9Yҟ&TܺRT(PHLBrv~kDf'͚d~)`,#=xMªrlB|ڣ qsr.2Ż#YaPD ; hq M1,khgߖ/kE8s{ ` Cuәړ) R 1QGsEa7Zũ&-@|Pi L%|[XʀdU _OB<ָ^~fJ˾`}m5cI.cV] 8sǑG(|#3"n^콞sʖlLP4^P~BB `SX7D? |l1\UD-DL >&ڐo=cdiaGlݒJw1]#L0 `H P/yi޻ԈoW!-7~{jJh1׼!ϽWg1U6JYTߋ\͈Eug #FRy"vS v˶¥vV]9B|Mav``_.GG̹ߍ}`f:@17@B^,[y!|a!:9 ϗLLRLUkVFMMbB۱D&iմ_UÓhP6/e(ҩ]*muSpƭCn\y d0Ⓩ[nHxTOg׋ӆnen2R(@_@@X<[>;|_|vTALBNTK7kwlUqo!,nwj'nDHk{g{dH/]ц;OD6)Bs]ډzU ZlZΓajW N T–X|W*^L^;4oCK`.*JuY;uz$'NQdJ:lUO#`ɩ7=eBm!O5Ob,HėӒ&cD'~ 4[X>O^D$$fUz .@ /6MoGx7tcZai[KR3;1YA~!x9RO@_EtH1y4CJDdlҐQC0ﶒ(.q+lܽ^_ gB"$IK`:S9?kIP YXTxkٵP]!(+HsH Hrf-5M)2SI B!jBP~MajO~"5؅no7vI2(; UD4`j4 w Tԋւ26y˜ Hh`Y1\*p'nI'*Ď-m9oU.v0f[QC bit4,i1C\OtG̊ɡGd_.Ql>huYVږ]BْFb"Ybpn$>4$Ԏ EI <~i)`p<6ѥw+,lTS \*Lc Rj"R}ݿlP[mpq1vZ=+BT8/6⨯H]7AgMaT.Z_ t? /5U: k*jQo'MF?6#DNp\ƢC}P}8C w634sQy D[ 73yp5`T92->ߛmŴ!wKZŽSjc؝#+"s$d]Q!IKsY^?t8JIA5"e}u"R/&} ¯03y D+F0bx?ށ>C3GUg_*Ct?u'tk*O !lA$$f}(}XՙI͡>Ť|)f=p,+kb4WοV!04ٱ"9DDn$Hh ̘[^JU&)%e\1=`gcSy!R*8\qo=E\$WMT{W Z=`,I" 3:Ne'oam;,/'ώ}84T'1"e#Yx Ju :g_\ƦPFDqU-a`q .{;hofEF虹 [(,3/S{?b_$Z"r3x[m'̐X4Úntˮ} Ӝ3S^g5|, `(ڍonɪ  GA'2Np*+B ,Kɨ=}:h.lܷ>'= 6hG-o7r7~Ъ^M\;N')XOf}1㔐5$|H⧉.aqՑWk,vp3$/tꐨBHw飄p ;A\E bf6={qQqʽ+WPSENJNSی%~yoe\smb†\3(+jT@z#ڠPUCэɪ/.fC޻>UZ>w^dKc:@h$fMN?\Pg%huv.+0c:+#_OY3[34>I(cs/k5K4݇Pot>Z0Rf@q%(SV/\TGK-yu {k.Zآ0c&pO 5=.$"~sl`1ו>c㩜+ ╧2ΪX]irgX:C?p+P˸t^,׉sʤϣ봜6dT깙fx񓀣mMM߿Ku[$Y~ڿ ToHQhH㜧Ooa峜"S r{8ۓ_0ρXG4!#W'>B>h6̊6;%Xy Zj9hsoUjNgD~oN33K:֞o8=. ^qAF@hܶ3/ rfU*O5y]pjjFZ6:ZeN!|6G_2$A~2k.zaP|xjHBN^,_5GOԠY~pf+ם$'tp4gmé<9W?ę3t 4߁r `W~" 5xVHy&}E\޼}9qۨW>!$%]:eZ-]{ӀOYz\p.^l>O*x&M=θ!+ LӒc 7KsA9w ]AKiV/ 5S /x. 3Y9xC+v+DWE`Dж^_M1ik Y@D0pޡJȔ RN?{@*FMvϙOT;9SB:ys>Mkh{)lܺˤ@;I.!±R~@鉎]Pk%fūb/O,>'MTB Y$3LwOm2=Y8[$JD>$f:N/ÿPͱW4|D%/9;R |RIī ;xIl9ܖ"jMb>5WT$}MYfd9P~Rv;=kZN^E Imq5%(Lk WrTg11`FYwqp%~d9iUܬz6$-ME(vtďk#|h)F;g[umxDP=-6ND֟RKl YrTu 6/2rkS%SȪ5o\'6iYZ^"V 0k3{ "Pz9UlGX`7P!K:G0VOs,'&g|IV^?9Fܠfvߣ%p~f= hvIkbJpD"T=x=ڐlfɾUOf>Jz@=ZuĊrWϕ=';q2uދ 0#pv*:yl#8U :bVp{&en&)=@a]:ө> WTp)́Va eZiFtWB2̮ Ht8T\y^ͩTeUeW3K+d(-6v#W"˵w ]|;txq&@vuf|aPY0GǤ*\.D%*$@b3v %CBsR\7,j>Vp \ W6ވUU(J18hs.&Q/iY;|9^FU G.㡒b 4*ebU P jaL Π DFu)O0^ Љq"`( AW wox8dCоqZChg9tvmhvKdpPQT>!֚z@w-2@a ߥ>YSi:y? ECo 4,<65z3m_h/ l8\M _Ym;a&>U2sŷ ?,S1+Ny,j ɪx4J9>X~nQ@N`DKbڜ8fo PIe*fڥgm+xb) ? gHH)+ؕ@x/O;vc %m7AsQ7@&]#QdyZVEuu{t< tQݦ~g&崦5񀊎H>߄@ܺ PdZ< #}R?3Zb`M914[9tVMɳ_CTU3uMl!х4dbE{wJPN9 {Nuc,JQ3™$HdsTrI1Àw~B97C*cAȗfT򊠋N"tazs~[3B!0GIr@}*SK "V "TA}LVq{@,UCMOD7!l>Uu2(u_ Msȟ3#}՞Wz+Y1n_>.-Cl8;bˆwDiqh?;)ǡUd}Zjs ,,dl\5Dj{]?Gq\M83b4_]Mp`#O3N.ˡcᱶya& $77ftT@Qf/oNo9^Y?u46*Q1P^4[?,M>eC* q8h$;:k\p@T.hWJ%m!I AG x4[׃ti5isI}^^fS)϶Y R r\E łOHA{|>'pI:HY1W]*jn&o;_q(4gEO:cEк *h1Ñ[p~hhИ؍ذg(m6TWy lj/pc `s,$Z1N>JFmiIv{1?卺-AJxVWu5ҼYbJbּ:uK*Nr[ 2sq n#TJEoל(9a!{ ':ׁ `JmCE;em *V# ,q9nj%QE+qxDyvUf~sҾrMt=yȄT뤽IΣzW#nSd(+tԪ!RMLXbpˠoׅ# Nv zL$c ,bSiܽ`?7hQ\y+fTmufC3hwLnE]_TcQ2L-B! se~].FWw„?7;0%֨1u|7ҥTӉB cUR 2ZjQ@&G7*K)-"LTR&BNK}T9PK^EPЋPL~ĉݒl/4UUCYo!A~IPE3C*Ѿ=D:&cMuE\l'svbrE)o!`I @BHƦv^a)+áފVmRP'Vk~7x3-e_;+bƌ46ʴ)ywܓW5w˄jjF!xd A.-+0ſpQCElbz#"tA ڔr}7 h@$~e#솻c6]VonDSc\)llӂe[̺nGW{?ē{Jhv uJV,dOA2*֖-bV6|oC3x2рktl+MT#"IR7)+cX.ڨD1PFiޗ WQ+&+ۧ 2MZ ΧVjw/A=䦢ZR|X8"u{Ν;6Џxm;݃,/R֘G {{Crgt&NC*7*̧Xf^DvAu=tOh^[54io5Pכּ㻰 ^^w6]GGm/Q|)HUEy-Y;Oݾ.j-x/֢dr" : \jx3=qyœ_%a&C ,Bϑ% K-D|&\Q[-xY{Z$Mca>,`,i#FUs_h> rp E )wKX ٙ 7Π|rȃΡHH%HR< M4)ل̕,c ? F9qc_mdmtkm0XqoXZ+P9A 1S}4鬰3?ũFeo"H.`g-͵W^2d`ndd VNe?(Cٟ|5FY!|뜵\264Eg֐|Գ\wezl9OuN-ԷlHǭ m75ِaWũ0Yrec(TE lkSv3+ (UM?&]!q='ᡋνi' [=*;DG?1~-]PR%GZAeZ9ʠ65\t0'?Gp)3RwL@Faz VI JL [)y ?h݅sM5@xWLj?*"TNƌsʏ8du$,#_G9JטhfP/Uge!~cb1[4'B|:i]1qgYAGsj 1Oar$U=|j]mAK;N9`=ZDz} ʟg]9%ԯn H {2/h?v5B= ߖ}ɫET7ao"+&s ;ȗq8*9'SImãJVJکz-+k-M]AH$6| y.lsKyC G4jT(}Ƣv"J,Y_GOGCL11Lcr8@]rNH ]gNp-S V/{PnՓ .&[=g:$a,bu dM-z[.nle >7Uuz[T?UB %Rb {+wA̼3TLuKa]`s[ 2?lJH{u,{Ck˪Wܗj2/9Aiܟ3E([Ȍ(Qzb[KfzPx%,kYA̎詛i>DUuwͺlKk\_$İ11 7 | 0;dcT;:A R='ڼI~!pÝ!;A=AI .!uoM]r:ܫl3jVBIGN}n nY2+In>{ŀd]i (]}ƴ^h:8E8VI˭u5_4 (qZRC@<.?o8Qxr s@q"AgfBKMTo]lQ+T?eo8_ӐiB+lM|=ސt1k>f9g]z{%"cQ<|k ]wy+BiՆԬ$Rak,6ݮd (7w>oKb:\mƕ{mǡֶeR}v̋d)^({g~`}rdM$=Vߋ gvǀ${j-KJX f` OJivG) P2a+^`B*=_> fm15i}b( v완"Vҏm &^\%֍rXJ<ꑿh=+z2 p4}'BL^ϴiq3$Θ2r$RW ~ag ;T*q\~hȥIF8~"XٌGQt`vܼ~YY)C>k|۝M·[♅H#IbLJu9"IɦS[H=} 6cM bU!* j[4u !Mu~sھt(` qrHwFBeG|1]REZ( ,H%i 8I͌$Mh Ʉw4Dꋄ^LW ՟}q3+8eZ8 -YTnC>5r'ַ#vSG7) toUC歎̠/NmѨCQ2c|vKp|"$oWț(w8.څ?? J/ANLnՎ^βc/t-8OͭM 988aC!96}ihMMYl hm+]pڔX3b.@3IyѠ|xCF3Z] ifLi j@2eur~<-O~sŌV_k1_Bi;܍pb&wzcEy2kI)Xb%wX򸂹?^'hU1bےVΙx`P:Yۓ䳭^A4hmcw:N GB GGihZU](u2 & F9vv=+\qD9GWc$π,#.V:tx&IG W SA}' D\9aK/]3 ^ˠU>)T) Tj&|QWavb{he㊗bJmM"A%nzVφrYmF>;'3æ1VT]A*֑-@:ZzDjtev)yX?3Yzi&Vu8ؤ,ZwK Ɋ@_9^'(DX+ƾ,( ǐ@ԛad/D4?\kh|!tyq5l`@Dq_HV/]W/zoķsMo?09"e:QU86DZrK|UףR-Y>8M6^' R[:iBw`uALW]zt f d*8r^: }Y:J.\{ bЛM~uC_u\XoRg %f5?A3D~رl321@eqҳy4b4B\ہKlm}[tG'y.^'V:وH-2ޚ1C>ռBVj&j܂l>*kS$z 2f6?D}H,/s%\}~2R,5lwJu/1qA!OAIsc]>**rbSu8}ob|^aBt#Gn8a-{?!Fv)n"O!ZC uӂg$aM_Nç^CoE[V3<ú3uq+ibo\vB q=}:6u\?HAR6.NU cSR(_JaGʽ]R4 /p,Vܾ{cǝ3'ّnmMfE,J<#i~nwk1E<2+ǣb>i/之? GvR{-_#-ru t>2&2>_Z? [$޺*ӵz޵s3M|LG֓1(#8J30MͬR4D.hS K|ۆN_үŁs(XR"(Cv[=DOU"W|؜a0S@ܪ|Ͳ笉:r2z_ y'^ĈoVo6dqZMf7[cw؈qM+p_wz۴iڻCwT`O˂VH5 2!,eX3~g|,yF-gʟqNO)( ?[y/Ml {,m\*dS|TDӇ$j*<+^:QbPIfyVuDfU \S8p+!̢ ckE޿xGق]x71F/sZ;-]X,܈aW%/w:E!lӵBmגW&.G}^*"a06gh%2M;So)a+B2Q!EIr*6_Fun̐u?;Y.ׄZX32LW(]@WŃm<>ߙ_kUO!4/U,)Dk"f\}*W0AiYTwLڡ͡8ͱ.SR6MO?SEo`œ֩7rK(H|S"5jKjfsWR6Q{c|/1j\T4Q E^GC0,u* o1cr:3L\l!ʆћ1zz(Usg`K=PTc n9&i9Od%QPVh&<'[d.z`i/e=kkK |?yA :oсl~7"s O$B &afoϭP!yf) k)97,pw[Y| ?bN;0^bR7R6^->3W}kNKi 9Ilu1sSb\nsKa3}wȻLC7͉KA}Enː)HòY>",&I}u{>>RzI$Rz(> 1eC9losݙF)sWhSj16-SE|vqZΘoy3ٴMakWɒp\ ?-؉6]z͍Pi:iL0rluq6PM͌u _S#ױ]ӊ#!QdlJ M2HْVkTa5rZ-#h=J1_tA-] YJ.SGY}Bg:-zvSbҦq&sxU( N0!5bu,r}93=\0:snS Es7V:λ\}[ujhug2Aq mMG~Vx`R #}w=EmU<ݖ`փvQ7* (Ԇ~n󥃝{aDum"p5ar&i\l2>@G<#~yZ*+Mo(u"q'cY чLɷ^4|aZlLq[':醏,&ţQzb.&s țfkRLV^,"cJW ]F8yar Bך~ .;Fʒ[eQ=^p4aCc5CJ.MbC"v[:g9ye ޣYsWN4n̚NOf۳HؓKE?ZbϮ87S<-'Ά,c>T)4J{#BGRr,͟šoe (=(F]c0k{%Ka! urk7S7D8 pqr"qVџuV`1'a{{Ra&k)gxBq(׉1o %1KI^앹`T*;ߦ0+C&(`ؓTEqƟbӴ G$B́-[e[ ̀b_;zbf ć0i8smucޖrR(lMu Hn&Hd^"خ$J[ж}&.C/?LmF)o'C&K O۳0q$6݋RA%:YURY T -\zSAp ߰) -YZA2W=F`U ErƁf355#{@*PFMRh=Z` uv OriLW~@$9cd XVég>Sxu!{i,9{P t" '>B! huU} Ud9$Ƒʼ RD?#OI>y>VTi#bZ~ɗӪO]dWBvLL8z#QFh0LED<3N!4=MxTߦɐlQ|Y&Z52pOucм{TuZY&q0(~Wd:䄤WJۂB$9/mрfv ˴g^CiK}.հ,,ПQjw) 1 [%̴q)\ 2%\htE)޹f61PYި $&vι.m4'ĉ9٠ܓRnQ'tS\,Mt5aMZ/;zÂB +ϣgoRfv5됁3V ZҦ 71hSi{ wjMx ˘>3>H )Yv:$W L^R6_B&M!2A`>N h'(qx=Ccrޏ}a7#QŃEcX^5G6n8zAYT%e:c an.B@Y! aǤyb45R`iU7WiJn /xdGX5J?l;*V֚%Lj5W>buJH UG܆Wnh]\ %rwdxLG߬L,L˱>-+sd,r;V,)Ć*epd3N](H^KUvY@ՓyyuOܫfLb.T~ky܃ЎňV-$V\mjo=Le~B5Qm1%Ɂ 9A ''#qtD-˘HGT1Ҩ(̌J*F T%i4_]>Oe0<20O%e1iI}T*cӁm5m.ǘU>YTuu=+LT܃c\wQ05w"v8!aI!y6&4 ʭԻ-ud/𶌢6#m? }9plOIe.$'Zg UIjTW# }*c sc9fCp锏2䣸ᾭ4@{&m᜔ +|t7_W0BpZYs, tmR%-yQѭ~.Y'^AMm@z\"ZB9żϲ$butPV!-iO(dRoy|*<~͋ES*KGcg j\7'_T(:mڤaymxտOӡdOnnxC{'ILЗr_Qj3n!p(7GzDe]a<^ 7 OUan"{iZmW#t?^a(&&lsw;0:<cSrs{bZ\t:ch\ #2H?P߽&K f\sVeGkϫ->khj" ( pѓtD 3BuGr:bŴ A( Wֵ<`!u*@k}64:N_bC"nX\ՐhQBg{0 kC E(Pb%zyOoy,h0Qͣ8g:%y>E/Z\UFQT~|yYXJb-y5()l2F$!'?ʴsulrԈh=Ҟ~`~P@ "Ǯ{)[I)$䔋vϱ'081s*SFa 4wj>;GsikTxVQ&]d=lO)/e߁V>^T\l}i!]Y`%>=|?A-Ѭ/-PjpA}0HoY Yv_GG*;Z:vb6Z<Գ\T]i8Y3 a]Vena@R6y+1TPw߉+N;NxRK k]0e7;?'f (!d^$n8&뢉gF ,ux˗z99EyЛ]&OQ BpmxHx4Kbi3 屓H7)LĦS+1kһ7@)&qcƈ J@=$%).^x0AJVV_rPI̻TFdǍyVMmLqQ:= rkT^Ĕw],S֌O.ו.ZYw֚M{S dQJc?Z2+ۿ~&#!AqtSG=u+88 dT{s%] s:7 Iv z7~;Rj>d 4ٔ{݆/4EP.u@Fܟՙ$K|cx)} ;YkާDj$6qbSJuX;t78R1?Hu(AbgXhX+my6Iu\ j">`heFro+ʐbG9$[L\F%QE"+yI( Qa$Ef>$T ]# H"N9اEid@pɺToTSzRʤ p$R:%"ϒ_ԅov4 G͗w8h< !nQxD{ k6]}2]/xDQ#u2a?`i"z\ Qi,)m2p,x!'6!;tgk )ݹs_t)~x~. (B ${?aCbahG:!"?Yj%La `RI1 $?6!dx^D2mv % -@VBvW%qz ru,D[QL4)mF=48$)ֲrRd*yGNoeZ}df}egڿX¡^0z`콋u泊õ;'~3;a)^2}G|v/g <8;\E3DFմF xaQ)2 r٤j.f+Х׏/$]y%й5L㑩V*$TVg4Ri@T1Y[(BmYA"~dqw;/nXd^J!㶸"χ:%t%IV4x bX#tk ~cڏïZPMk+32š-ë':ɞ+|c *xUvGq`:enXIRtmhmn"Jb!e|&?A΅: N[_gYٴ @Amݓ ,]TwTtS",5NQUTy|n?gp ?|-۠i{ f:3qudJQV6L\Dii+&*AKf SK;7 ʨ(iZ鄢;FUvx9 `ŢŻU 55Ž LT Es_mtwz_Avì|_HrDgx~A1q6 Uo-AJ΁`SH[.,ޅB"LP<`gZ=`yGaMա]~G]AґϠ?m0%'g75t6U1t0Mۦe?*=#mFXa _ d\5Dk {ix|KZzݨV`'M2hrطOlJtg\(8XY¯mbw6zn\T~馃a4riv-=9 @6tV.|4 WěNT)Y6 qի\Upb;Fw0j'3!e M؎8G*>"H1A*7BԣqP6W k<;qu5$.}qf C)rC,}P# p`Q yYAY8Ȓl]?r+E*~f4@Zg-9 k8 g6oblή3d­A[xP;h *?Y2 ]-N3vM5ަpƵsI I9DI vmN9* yܐĖ Z!VVm=ZYfR } A#8fA>Lm33)QfzJE)47?sa+q5nP/?3hOw|xTr YB-2{N'TV+#JLz؜gt7[k)KR );啢w: `޽ >+D5mQ+r#d!yh Nsf<1cq%\x3SBs 犿X\Gfs4JAs" |Tۓ׌ ˯Sϻ9G=p9cP RV ~~VEZC\V}3Qu%mcR=o4p#ќ]'HAևfC1Ӌ3 .u/4^fZ$a"}yNdyAYY0u?C0Nrg'mމ"^MbӸc-gB,NOOnـs4bБKץt~i4C ]oJAsQqN v021׋/΂C^#>yRi '~#1#tGͤ[|1_9_R~]/*4fuME+Vm)-EړDCcܞ9]us/VA w+$_*COPHo:-KlCfdrlc v .4v&wV iԢ0^aу=ຖ/g#H*筛 [铠dA=a*Rj$f ܤ^>Js}>>vW>Tuqv!Ȝv%-D9e0yX# 4^ "/`cCJL`"!OP%؜H04>,e'=u ”eV[$2",3|1v'/[M)Av">ya59ֶG]Sz4_l@bb<_.羭\~L#}^i)qH(^e? c7=Ϻ,Ejtog|b4T8ʰRWs9 /$4RzÊ#TrBRgqf ~}Sv8y+)gˠ+_06C-6›3mnʧS: W"rM' 405EqW,j"GbuRjMnz߼q>W#?S jmԾ fSF &*fE cD-*( kv|k Mc 5dAwFKLOx'Y۞#v &3D(ɻ}='UeQ&\v&GWSM޺mkQ:ѹUߦPV1T6 ?A렷jgFd"{VLLk쑴 49wW[}QVLaUZ#n@9dB}\ޮοӫ&U*"#zsʍf `Lt< fРQY,PJi3vLAg>:6"_PQ&n"]NH#!Oب(mP ܏C ;<|TNr/s4zRNh xoJgJV`[FYMQZJM;͢5_<o5eݓ j$>C(d- s RޡNyOg់cƎQ@0&2v_ғm<\R#t1E+ƒ닺 #ey +zt/Di2'|SP6Ol_fɕQ:- 4hx=i{ Iዧa/Tr\s#TL~bm7 Twa,zZ pW]&Ty VC؋A0ATWZ\l._$&`.!b-Q4HR¬ JGMa$V ܶ廆#9G=0嬑u672Qffe\,e;~/TwrnyxUiP4e"tc R̟&sSHxv=b}O s 3̽\0sԎ9G2!Z9Ӌ\(x *duAÜ-z,q`lYaFRļR"(fDKF 7 ~k+&,I<2|k"$vx,c.Cpp^[3j2%f=l"=Ħu U׻Ums-?`휑KͪeGDzMA#6)Jϭā#%tZ-Y:vL) liIsF߾|DS<EצTB tMG5uTUǒȊ XYb_|dL F!qU,_EP}j15l.7 k1!C/Հk`4~+,mDPN_2""u^pr- +)2@ҚC2odU' #|{6r `bwf_@gb428>wQЎ@~Ou=p7~9\b9$w1Z"H_ =Mڢ 0t҂}AI,k9[LG -t3p6y+&EHZ |Ij\)@ F*IP@x!s[BZf? a#>%@U#Ϣa'>=d8,?R0"B 9!IcjYa>rVnoC (Xf/mw=xΌ@-nNj`VF'uG-uIPBQYp[&j L t<ʠn$"4kZ23(yVkJ2x}UoWe',ؔCJ b`S|@gWHXZgON{$au^ qK55\.o^UMuV迠bde o>`:~sγ-QT,>PJ!RNkG,.NNb9vhw9"y#E6_f%] U?<*4Mӣrd8>wӯ0D9ؚKd-BXo#n ,De?6`nU:3!K9<(uA&¢΃}͖{pt&#v+W-A5ʃ.>WJ?-gg gV:Ѷ_ EԠWR*+'>rf%ަmYuUr*5G:ru>z#,wreJJCyA猙W,t@m o"% 4E*GǛpΔ}EYdӺ]A\1;oL o":iGOԳFn!ZU",!EG<@4颮6B-/[܉=ʹE%$BgE:V&Inu!oF0r/ݵ$Ez2TTkY- 9D"!9Ѭ[@lگ;+=trA|-jޟ;`Y{Zv^mMZk*k~ |fCɣ#pC*qwaB8TL&TYFlKh^f#%3a9jYx E`l u[a#1tEiF߃9Mԃx:hr=:4.)_m#vصqaWn_:Q3MRTN6.Aa":%RVʧ?ʦin*M@}H,SИЕqJN5(Y8›sRD((g%9XߜO)v?7o֣ThI&1vhɐi 6`JyGo/DtY襢c oN0L\d. \aòRO0/.' c" c2;{dz}E,^!Q@b Yf3%I[AuҤ!6ٙ1J,0eVIBY6˴ݨ6NG8% *9K:v =EӫAe/8+4B0se`IWXβ]?|=MG, a[.jCմ0GcWBYxw:S 9lm(=zv;$u=ytNc|g bV}L;:8]y]kyJW*jŮ?SĂU?Y2VFpSkR,N2>-7fRA3WQUH(mer򱹠Ʈk,X1(8dIT&] SU#uY|[j?3ӵ ^Tjа%n2B((m%:,\^~e0MC `ڮEɚ/߯X`t`Q|R_QრOj@:i \g\pKuFڸ^ +J:y&7'K%_RCkz NoGytپW*,(b3z)0?Եе nhv> W@/T2kM ] 8%Z5YH~Z̆O]"f&$C`EH`op/\ b4zּv(l*B>SQ3vlV0&WZ~ڂ iU}=K{Nc1͛ t++ C<`^aW\b߼, ka v3 PCIc2e?DaWQDE5ߢ9&ª:v( /AZGʣlD)5.8>VVWc춊T)"N(oئQ?Z`4q=kϟ}">LOUIe]J#UweXSg NP v42]Fkek\X,dT^'UTݤ >c{WX\xڪsx-맲uo\DI,(DGWřJ&IOa$~%|*j J⩼0&!-ӯ|V 5#y]rq-_ 2gGy]U,T.pz7U cZi/$@EU]!Uſ}QKMY ;[awq8[ʄ_iLFs7%t}L 'cy_*YHB}?:ͿaޯhoڿHN/S]"߸#*pw]3'Sֈè~.=8^kܢs3m\&*$jT.}Nᇄl6G> t\N K2ݐvv*'sܝ軩> 2QB;]s#&^,CpE^\9V2 ,=pMjvK|)4p>մ/ϜvLBv8-z #br.S)xQ3@>V$9$yHw}f_,8c%MAÏBv4H)hCqrR]3xz˝|q8kؾܽimb- ,QNmc#e{QNB82H'QU_zi-DRm?\@ wT`zQ}l c tkW",Z"QI14,G-)3_񸆰wahzJjzH]t"ŲTv y"L3!K`Sh* wfůq\<13T&BqGN&2黖$ar%9sG >Y_mN1U9֡{6zs@%X8 RDN֟յտ"8fm9VZu: H #Σjd]7C]EB6-4VQlDI vkh(Ydwэ#q:gCP&5#ȿܬq` h$0dsؔhX"2Dh?+ƻQh96Q|Jt25ӫn4 v,[֜~@ҽ&Z w?/3=P=9s,:d՚,acӱ!&SYs\DWTq{2cθ Y&&zSPIH,oHZnoy$bmk>'agWH0aܬ=FkyyLMlpev䘁3+磛R%Zkt6cAk;0G(E]|LUW<.`I8_t]шhӥmع@4}yw:3Ab3W,mdR81 r2N]q [)/?=sNKc>CB 5ij +*.Fqg7qЯJKꛥ#_hOdz}m]oʰ:{p9Ȭ iUA 7(ˈlwFUKFڕQmIGj>4Ӄ\"Mgƭ_-|F=ً!zssDtl0fe]-[uVbS*QSUK tJqyX+`dWunّoX1^o#xzm T_( ( ?AKL3 / !`vWު#p5R B L }&l`]zQ&d,q-x LBxxɴ;"ݝZT+2`V= qD/[C[ <ꖼN8>1YlJC0s_p-'Erd:0?%MWN 7yĎl1%Gm̪:qr3L1]+f3nqQSVϾb]vF%+m#t?M^ 5\wVWzo_:#YN. Gv~b7|o* )\m)Pk=%}n>K{ȷF) ze~nY1q>OcENBD8#֦,"{V{^Ԧ(v YhCO4.^ ޑ'2P7< nXG '+ 36_Pݙa]dEYz`\ >v* 4EO "Xu^hC)eߡOMX^U&OBȔHxȲS@2!)e d&sߕ=.4`~@5Ǡ~q|H.쌰4>!/1gmCGט3 ʄХcUօr ݄9 h#nv[Т;09 V`Bei3#pbf4XRn.[ՄeAh~!cgk:bFaUsGeѵ1.~6H&Q& oQYOpdER)E##3ZMGzMsyCբCG,3,6N p؄ۖ9o ֐N7H?ءz c59_^YN=]us<[ytvw:^W]UxBunAc&ڻQ)gSo#jJy)gоÈ)8Aӑ,;KՒΞ0+4!I~i J%zQv8iyYMhQl7=`L-n^sOI/eKƭ.i:C07| J Ķ{ + ¥u஗>&@SCZAm+0uQa` ۢByg "wҏ|٢=;2Q̌zHXOc^-qZ=Р.k Ue1=IՔP{Z9;I8 ͚EW> ^|Ua*QϫU%[Gd8;L7Pkr"͟2h]sp |P\-h&ȕ'%\XKϙ%XU(A* *d~O]Cϭל:AaO5*& _xD&,糉r_V01y9rfJMŌhHa L(V.I|ž0#G-_\O\M?2O^5%J[yg3}k]-u}žs0Ee׼+G'x3#"wmJSvTI?b29YJ]iϐW*[*w2ëE=pVg'VԒ鼕u'Ә>yh%!!.wUiZ9GUD\UN|330tUh|f-ը A,5\wwb)Kit;RZXuX ݁+;?f8_@$.Ya6^ iweAD:zmGs:Viv, Xlr9 RG}v\UX,Fd3%ۿ3}6.I?xС_EocuZ`>ۼZWhr 1Bh҅Svx.nٝqrpXL`ߕXې}duFC%f_{ePT6vJ=bmerẆEߕHΧ9ﳋ; k*ίX:3 J ;Qd$F]õ" ŠT{ ] /΃?J,{\3LO dij #M]1%MrJ77Wl,h\"~?z팙#S> R;N!W߶Y|A FgXdgrȦoY6ΚɟM j%of=+)V$Qs|`1w;xPmQ֮FTL ~(fJƂi/ )Z>,(O<̾r 2'VS R --8@L'ۜpsV )xWUJwX,xK"hl4k-^rk[1IQC緪Yht{ Gpvvgfic13~coLAGd]y1F J0_tܕjaW9i+8fv0+b+;QߋKAXT9⧁Xո&)y7. Y3 Y[2f-.#icjBW(2 xlH S1 ( HCWl`&2NLB*^'1+H'霅e IC2S3rɬBZx ciEMݗsU|G2".¤KF7j=z1̓yyz 26W"q_<&j4V 6?7%EyiHqXu%nؿun7Nd5|z2d~xC-N`EjdWؗzGj'ъd0?||HH&Od<_Țɗp ӗjrUE|H6 sEIJlyo{Ks{ A";SLlYaR( GSىqm+k+ Oz:Zwhig X$ݡfv21-I4ՙ?f$Y!W6R#pb-2'KG' u:X&~ZNrSo~id%.ׯ3HhaҼR$Y1#Ʃj/ }6p>b ![^[ s 6\v}%[ӬSFdNGJ_hmLރe@ը1* y}ٙbk`^B[PD|LnIϊ fa$eT X nnhEQ~b2ӡWBl(b2vNS`ZUzɂ¸soڂKk(O8Ck9tŹxcL4?]<4t+C=-Kr7X[ChϘgV؀ y8BB9'tfUUu:cM)-=NEQ;W|` =/Ca=" /I"ێP Q?3^ Zi 0QH]7qHpO>R"7Dur8E;&̞#|2~\B1]cWyWkpx!C䱲5BΈ ROy`~"HiR֥#q ʶ[̯#i|QX)BRp(օHyq`nARpѲɿ\#Ҳ+zYr^l* : 2.@DKTiG:&yI4E@  ޡ< 9#\su\2őFr+8Um@AJ1tVIũ H)(ڛfX9lA7 nmA"J9:cPJݶ)OM|Zy'^Ɉg?@[gm8Զ#+4+>lPɦo)e> А_f襣*OJeT7l-mެ *y)lY G4nEeD#a%Kx\ˬ-!7Ns_1ɾjߑ#R3-zdjՙ@@oU|k3-/ sX c"x: Z'b0ePFݤ y >ŸNl>IsHC BŲqG3{Iۇ4)$}ew^S1.luM i^vT&D f;|W 5r7K})0naֵMq[ .Q.}xXXUdˇPvޫm!Fz]ȩnF6w(_bA%kq6UCӳvtg-+c I@v.q֭x~nk>(?[VGZvMp6axZw>[n5WVQȌb-%} xN;H>rxz T;ek_'oWZP .KDTKt|{fG MTz#:})w&l+Wz l#+8厤 oUd%߲7:Ҥ6- ݑv||;9gpH \IwJ;8 EDSq4+%VSʝ9} &á8Z\@eOiCǠDnz!;7J餗$J*&X)5%r:Q(!TT]XIԄLK #2vć>ց*d+`&@Wnt+`Q #baxJ܁yP WK_5y!W$$S'vkAR1OE"Y:듟mG3]NnqA-(!*$GgʢyBf_ 2WS<\cR#׎tdp"{ԥԸ|K)sCN10\;FX]`xJ,y0 {N9#)RAA s.nAbIMgDιBCja@yMr1Dݧ MB~Gs#(!> A{K֨(!upbwluo[.ZI~WV]ZÓȼO+wo8LZRG وΰ^'=*XрfS3]|a!,2#qR A 3x3* X;qx(uw{ReAY?D3)})/j{ykf? wn 9Z$ ˲ú5;Ě& ]f{t-3SV)(K?iԧ*Ɲ= VP6L8 2J]?Kۭ(`i\2e+5$Ȇ<anK~|h~,T_rS.z^!? gX\Gp)SOvȈ5c1L3 )s&c3NF 7\ڲd0wܮs?([<-Ĉk5\TK8++fN~2<#LFG|H ySx!a7[jmݶ-By9=m1_:`SzRT)r7ڃ-oV,dHo mF[q."kOX.8j))%_yTzxL%8!9FJͽ!JM@Y-<=1ٵ:"nѵb&usx巧2@$z}n.ٯ-IBv,iZ|o.Ya 0cq"G, h1}YOѾ*JR3 lv ZA)yxCv{ŅҟR݌x,:UL+UȲ#L.BMbtj dz2dLHLޅ"/4QO]˂ }6mM{YR%Y4yVQJJ#ͰE^l;9tq-CdPYs>9܁D7l&\FS  :o7`aܽCsMC[4fj]fZfzH=ziك4݇ boٸuͥR_䤑]*jpw<"cbA8YR6niY"!휄]YNJQs oZ54z?àKM3|? :A(bZL4#2uED,^O5t d`ae?tF!k xXh ՠXiq3Yښ`C|&m} g7"M_im='|ۭ[xE8S[B5~&eܞUӈsMֈLV~ӯV0 "(YD4:؂Qtiz@|#~ZroPو}; :#f<+aR˦1&g&Nxg9*\O|UH\cIgw#˵@d]r1P =orMFLjh)y(HKy:ªNq$V\%[p=)P8qA"iZ~ ' D:AKrQNv12mѽgMQ ~gDm'>oqGɥ1jĨ>Q8Ro̯mW6ɻhՂ$~UOQwjԃFKF'Y [f%j(ᅱ(P4_;l̈V?!6Q_;djeoTm RmMn6^UqdjoY湋f.jgPQPN ONN[ay0'Av3)C75v״̧fKœ-ݔRKm,p\k$3*c\~k`bLؓ^YCpvl[k/?697 im;$`"4BUqA#oqe7Ťu";yjQ6\Nzt={{~#MFb̎aW<ZsgQe[ w/n3J)M䴤k]j$(wPSKc!1!BUn3VB Ŀd( A58s.:8:VJS V==fl<g}rwV[w^Q'0l4U2؎@Ɯ)[OHǠjF;8|QVBv6y$JB-ֻ-a͵nQƋl)|W׿\/7!Zst6pGΜ"D2F]Eڽ.}aLuw Iؤ/vT}]}Hh Fb]Ͼ"?{5ǷgD8Eާ6lvwaLՍxUN,/Kl[`ƅ9D E! {6x\FUjg(ͱuϞD!20 \R2 5 FZ1ʃ X~iOW~^2+ Y5v){StMߌ=2>2jO F߄%XG~PBk,"W5 ݛ:d}ʤ)`*oE3 >Ȼa]XU=*`<||/CΕ@ 3J=y P\n992:`G X]鼢o`0-"_\ Ez_Z!0\.G N╓7Zة#zzkio=ӵY.m$K=ꧽ] J1j ܊i'-:?w Dۑ$eBk_1Q)#o]찓j*!#`v6w r 0^ul@xbiQw]謶NG&IS EuhEmB` 9vM+1U0L|OW|-"+~a75jʆӆ=oq!u<$ۻp,@J-q8 { Z8CC6U_`-d~!0lC$z Gb z+9%H=x6d (2#5'_3~03Ʉ>oe;}AL6'8649e)<u^4Nu4ڟU"FCcu1S%D6:a?;ɱaQa8G]˫0[>e& Smso "[Mis2~۸,e!|} >▻xkt2S&2qf$"j `>[IÐTa,kQy9M0`ͺ 0ǞaԞ[â3 $TrzZU}٫SmH8ezAsQ6Ν3RȂҩ!t O&_xp=Dcd" P` YAWKڞ ##ε_s@rʬ:!*ݗTHi0ہ+ԁg\lC$x5oadxt3Vtqn*C}rwc']!'l긮ƎwZwOZل&-?~XJ-2n9O\2C7&/yXin\Y ^64Rl}Ofn@"tޜI$ 磅0*D*bU]CH7W 8ZORC^G0:gc\!CŗiyV"*|6Lo5cUj"q?=ӿ BMk{^>1w]䍾mZk!CrLe(]G6u:eo~QkdVf[_Z{6O}o2?3 N[w>q[w/sw]`UCNc$T6"ۡ|.t5H:@S!7K wJ밿϶bE a@($:o3~ :"n{A9Ñ:r2ĹjbbR,rbg(p}TϐN+-FZVf?nyЀ[d5դÌ'S]R4aՆ^F B m8;/[s-*Q&a7Xx8m#lkUe3۳S}ؑSDoIv3Ety"?wT$?˩ÎE+pcpd-٤{Ai{JVԏ]$ӊ 8J6? JIgds!1C ƃC~! MFBZM!3c˖1 (5A tI pޛ Į;E搭v*wۊ(&_8?= D^vaX`w zc.KuUmǝUvg94":3”+&I 4ԓ$j/6 hI).]dk8`;p[V|3jT/d@`;U:\@ >=ޛ*\_R4C3L9jd@Fb R!P)t]?Z`b&𪺡ML?qK]k'!^\$ijiL<EVeuwbT0ҵmk _LRWu_ JZd KBNg!H:2GQ FƩzh1S7pJ٘}k7}ʃnw*llF71Dk+%/Q7UeBt q)

      'HCZhzqOf{!/v9`8NmKy&PS ox0}..ueIg:s\ f89:(5z]vx.̪x9P6B8ZEE֭ &Qъ.bL[(tȐhB-j=\>1 Xw.)6 Q}ݳO\9we򒂎:WCI4-?#[uw,]ZL!=8di2^,AIZR]]IQb9{d(vQsP{u/(%?y?*rxgr/Ŝ1}FpI!;v$ץZg''iјR( .cHhU=.- H=ϊ(rFhHK U9Wd/r.I ޠ)O&WrEr6h$5g0 # =O<=i$s˩cȭ (M;9`SM"`~0/9"w7_*2j'M vfrþ!+1csJ͗?{wwiҡ]X'MU[E ]gau:6+Sn&0E9bkhh{ ]سWzDKRpC y`Lao\ ʝq@Pg2zb+9'N Gs-U6ƥU\js WTHʝRaq(sEodAN` z^4Yjr&ӕr V;|i"3_EYA rUpIu`V|m;]\'g(i:R+&( vIooEHځ_tw*ک( Mb}pFH" uo*I|L_9_ՌBUNj[Y "2t ZKvv`dѢ2azA EE*6|gU$:Rv |g5y5_sAs [aGVxUB*igm_@7%|.n*}2  D>)uoqG=Q{2QvEA"ۭߍfl!f3uM_082P~+!~1GA_c͡3W!JCRYmk̲:@{V^ 2Iwtz$ urDt MbV~pq33ҫ$ði(uƷ:pl~g5,XHz~fUPC$7C9=T4u'OVݴ]=^a9&EΗ#bMmom02}YK>\fpvu$jZ<ʳLƄ P3}-"L.cɔB8׌漕"DfL*; fA?:y7[VO=5*\1^XD:cx8M7#+=}}zphMa͈w=n>m"~kFҘi<-te|tߓtT%e|$V%]8'8VD9mI+2gztOt$֧,5gNvBeڟB嵌pcsw4jgLJ] ;Ŭ}Y3ed~1Ń_5PC7׻qQ@V w0ukay#ƢwsBuL# & kB1_%#+|&nMSKJwpl'IT"/VYu@e!X=3SfDjW׶-}m4O+>ˬrŢx7p1tw\/ Z@suĝpjbq SL|#>:i<,yQ*[Oʠ{1zaw tY15;GpAQX-llR$نߧٹc:`yG,N@Hf2?ˣF/I/I| &\OQ՞][mޏMST+ Z qg)Ԁ\v/ ]/=Հ)'QuOAG[?ˠo E L3C_pF^%g-IDikGy@'HEín/fmҠF[21ㄠht+{Blphs:SI+!LX\l̃iފ&[YDHb ۧJ Ev&@y.ߑVT5ڋ[{݇? K[)E%蜛)dN5C>qBfIDlRؤ`L( Kw>\B$ns I1n唛Ej IYcEg8u B-.C&U9=k9hFbP)z2^*Oo:bʗYHà'D(c"Tfo--. `;Dj8U϶p(щ*5J?79~᳽Ӷσ!l3>MIrFU (p庩{>!+Wnrңc< 0Q&4bGbKʡF7Q5U #]`A3/Y틭Wor9 w4ɽ^ '7ԛCj3 6(E %X5+Bj,fka[e8NfhQ6S#1oM`[cgŊ 1F&@h1],R/bcWx:vPL #~>@J}Gc.DX b~#m;=6pȊ!q :wcuԜh MUfF j"Ϩs+ qK34#xg~T%Pm]=߮Z*v' R_OܶMQ_[7aEf/M#6is#'%muM}f&)1ْA߿єf'92/?m00^b|0,ɏa*dˌȣ%x&2уfᓻV}2 y|tƄ k^\yCD]I]!M q萪8Z$MfX@@ n@iDrd1xx]&ij/(n:ܡYT;Q G#%3fcwA1&Ǎs[ϴኆm7a\8V8Dn8FJVw\=z`bG(15z@IXF}Pb37X\^$$>5k!Ki3Ta‡%E;n PyO5K`zF4uOtzE̾J }'w:c"3Scæ',e|P Vnϙ Q`bӓ"B ,@XDdDxaݱQ `&WgJmpDfO Q Ll8a2?ܝĵ џ1c@9ouPǦq5~x:A\Br,8V(ّ>O]'ڒ 6THTʦ 쨎 ! mּDglo ]Ԥsn zK;:;Gi(}ٳq  ?yA%5Xl6 47* bu^Q'7&tW840l:x4sڟ0&ݱ)ct{AAkSP1 ,0AN#-$ s qB xM nWp`lȩjn%Jf7jpf-q5(ܺ;q~$ ѲYBrU޼tHDͷtAYMrh+GSы5Z8'5+Ӂyhg*NJ0 _쥝R +خ{5]@0N\L=V~ ך{Sq;DJӾ2)4x[~fa*wާk Kc xTƍ7RH_9/7mc#?f.exJ'l.%+YH7QBQ tm= 2x=tevl+kU&.FMZwJ!䒞ҿ[~WyҬxuڋQ"l*F[h|)eo(ގU?a'yZ{[A^t>N])D#Xz t8sV Cy3z"5N$ٽ@Uey|JK[<1)?~Rv8. aY뉊 ƙٸy!]ĊH?[:w(LQ m?M߳;P9_d}16wjS B|mW΄h=y| ;&$"ݣ$d;%\Q, ߾ODuXY0K_c;8xal>TÀ|ΚW̖c?jу=VܴW|H{zkOB3XN}L< p ȷR#cd=+KDe>'v͑7)qNljđ9"ok ¢Ց$iGM v?: S[\'oGf(4ټD%etfV0*6q^s@u%r_3B\ 3%"߾S5piKȼ߽rQHL16 3"Kha6Z|ŝ4c_~:YK3Ĉ}2Na8FtTb_H~t6lͮ|Zڷ.Gt@;Sx#'O fp"?Wb[3:8G::*/Yb2ͤ/Y 96)y:y-OcdaX0b^ {=ޙ;K7N|Xh`V#ك'%dÌB1{#!M>d9:;7Z2=fl#=&'+q-6SʢG(Gϭ~ǟ|=}=9FHe×j?$,[jڗe~?H:ﵤf.7R060>rd0_wIQź&,m`V3T-ꂵŐE4T[&1K{ }<砹bCSs{F>Z=nf+j#V-2+`uU|"vLH%Fo%XJ9agkiSnw:V0;Dvkjv9X0ģQZ.KrG_Jme\ 7溳4E⫸&ʛV,V@_-kҫ!-턀\m3O@\{)W|'t$PW[H6GGo3UJ ],ͣy :~1ڞ)c_#r~D+j,UKOۉV>E8emGB)OtDxw{_pcೳ6sR&>#n dM.iMwe ߰1$}==Q&$W~$ P+$:ⵅх&IHuChH'JGy+ #3V#"EjmSzPN;p3mfS`Ө#Wcf>2;X/0dvs?k:gHs&\Nυ5ؕ¢`^u9bf_8r 'mfBeFsjdcwq~e;G\iܾPBjNo'I24\B\|O9mNCi.RX%TΧo ~'Pj$F$o265.[xFU.RnpY8pb m'f 0}* u ]X; VURp4@uGHW@nBDPhdPz"ԍUBW+ai <o% хM0k6YyFk"}0uيb|qf;g)Խ/`X8?}>m*1|B&0]r(;+#[42m*kt zΝ`"AwؿM3QX ͔l#g,̛%v2RU#Vp'i\]㌉%>ߦ]-7k-iy eعc򳐹oWTpת;%T{se㠽/~6QEhYh湹; cЈD6s=Vuyp-F;\mQ+=M٢{Ͽ{R,!xs,ZNUĥyv]*g)+@,}f]44^k,o fXw\GӐ 8t1zm1%d/8 Ѱ\sx*ڜ]JL)1Bs#JZB Xa`%vuljˣjOb`R jh^Y"(=햣>9 KXzK<\+V =GrsݨFNM$iNp,IpxF `8Mn ~K'<5lO+HB(: /{"QWJGsI >fS wÓ xfObmyJ`hA]0*Ow֊P_ h *?HaiiwM5*=B]~|G5PG25ot_䯒W>ayFx߳5>kա-ԏa;}l˻FZ["?r/!SR>E&hƍPC-~a mZm?w7/_~Zei_>sI"@ +#/GU-8/<LXt # 幄n%[a J2`/z;&1I~`e4ڛ-.{BMڌ)xĚrEꨗKBZo_{.TW0Q,o%zXyK\LV@X" |̐0vz0j9R\ʼ/{)LȴljJY6:Lv2P/|5-!^ xK)cyʻC+p5L|G~)}ut#C JWV̋EJwk_%\6L=$~Wob@2[Ch0h,-k˜-k>_a'Hv1Ef;m޺^lpBOͤB'bo]\5U[.t~cqAjcG\Efbg`yȑE~B8{} .fȧzIVڪ!֥>7FE tU%ߍ|ۉ5 ?$NKV|{ښ-di  ?fF%Bb,h VBBB8^^a\EVW&krdGB7n?Qjb8vh:ҍ[:4sW'ZEԁX 7K=au_r4ռ?[wy"gkگ7^aCOof'rҳ(|CKeTr:jepN_V~RdL⁅MvWp?@m:6~^PNyj:F iO;u1gzw= f^)>Bke]mnVE@ua'ĉ]Β=-BKr{_JQ,6n[#9Ljd_6 *ޘvDY >Br ˁaZVȔZVb/^No#yӎJ^@h&woS-Xfmx"F:vS`13O>XVۨLYN$dtqI<||߽ʹ "&'J["|n*cRQX;2;hG}P/u%c| U{/g/K[FC*ߦ#;'MR&sQa[l@b$W7ЬC,?qNox.FWi'Hvf؛Aװek"ZC!iS];ɸOÒ[~Btf &vS&jEjEs~;E[ZK y|&p/3渜vU{JN!]^j֓D <" =A~ܢXn%Oq66[تѩc HT֞T-f9_%LlL ['?evj3d܁mt6&!Q`:!{O8JѝDD ߌ)Knxn yzX&ͦsE%&H?]:BǬ4KB=b?IgqZH@ ߣ^Uo~He{$z>RhB9ΕYux[^̈́=AfVuub#h v&Sړu IìօU ^˺ޡ-d~UJ1O81mzeіԮ=?`y,Cu% B)i.sc;8olzXAmiȹ^Œt;s3 ]0ঈ&3MU8%\CʴW(N%^$f%'.:MU ݌D4Ys=;MݫO:gRV>A&{v!t^r\aPQ#)m #ymQ<7nwA 6E,1MѷJ; ($Lw.U!g(I[u8ExؐO"`1E<`:U%ސ;< 2K@\;{HW ~ Jߥ&ꕘ6Tu;g&5vmudxTݵwjQ#5=",Y]/2,/hazSb( {b^"*ːkS6\"ؘ_<LO={h=K[^׵.M#G,Ocr½(5@`"+] #s*^U4yaē u'kJ`£mG@ZaJVާ}b1rQˀߜ2 ϊkIǃ.Zևfg=׀V̉!,ch}/䎎moP6kXss̎ *Z'xj.0Q352auN_378WIR o2NKWK؆7 9T$s:V)..m軛?]U^,"LyU?[NPp#}gqSA?N_a ϠQ˲Հɨ xihzCT0| Ou;c^YLqtLVn t{qet?3Q t/xu'Iޘ>ovڔD2+Sns)qCkRW0rh]Cf%!/ [pto-Z,a֨㡱MTU&Τn8z22SY7#^(JS? i;I03AV!_joɯI,K ]H0J5#$1N?*P?R'.K8?GuRݏ5@>Y!?J`I-Iڧ^2R=jT6yFE7nߎiA 6SH:.@}86>&|Vx?0t=;ϞҵY%鼣}XmM"Ϥ2 uVJ[Wvɢjm.;2ca-±bǺYY3([Xh`J>͍]]^_Q,'>_1W0EKʅ)K,}wBTl`_r`qEEļC79*1o+óI]гxKM+ u:IޣB+QȦ1NF׆ xWu;Uo}3LUBI'pNl~ف7"Lםgc n@$ɵ0aSd5%HaI0s\k/q ϖk&reχSHVFU{ٌ*8PنR69oxYLZރn#*isцyy4 į\,|C׷x;0nvQM?b!HhHsʔA-WSx) K|$h\1Y! WK5o[Opj̑DOBpzmF wnuj+ݔIGb1`t[_S1&G0`߲ɐrMoK!Aܒ"F, Mmt8||p_J^NJIɛ=9_`'S;Rr~>7 0BU?غFC,#4b=Ӽ9b.ՐW!&YvFC!RHz u?Pkzu= ܵym,(emHƝ!=z;F,{txkgOC5#mƾ_{i' ,4tp!uI>`@Ȇ;ť 3Z?-T8]nOս-άYd[ 5j9&п]`$]fP+і?i:0MF/K]:OzVCfחONHl݄%/j}O'WCE$[Ύ*!aR[3 =c`]VU6~F+-]S53W6/n|]0=qP/c |o]jce)^7(n˵idY3+1/1DE%&dz/uN `uV%:U0Qb^4\[f f<4'UbZٟ1{K_xivFg8ޞFZzX5@ދG#d_/Ќ9C`vo6S(Fv-bHi8Ϟx)Wfr<( ^2ԓH7<>u_I:Xߧz</Z,AHXipc}*QbSc8CT8_x:JP{ $P%G3<#Gf81;;?'PXXbIG ۛ#/ӲОEQ%ӄPj_aKnCm"PHVGr^^4^zh;U@6^c6Mh0D4xDzBfұS[hiuK&e:4]pak1k6"սBUﲝtJjb7=bj <M8]^w@}U+Wd˶c iMu;#Sdw0hѳIT^`+Z~0 F/{W($ oc?jÅ>ǖP:3+s񛂤5&"Tk~CjFjerݹGc 6Dΐv4!&fˆ׽T@~ଌ7-5nUGQf0Ze}>˰ND n ^/j=b O.5vB;< *Vp R}Z&N&ut6l%RS6}pC W*<_BqN ?4Tp;:5sw=G̪ *.Xk4(]!!gn9xD'C*Qtܡo}/RfPj(Yv'}N*QQ^1~(fvG]#ź {o%+-f暖ս2:xCb)q0M1)TZy#RB4ǰ eŀ> *AvZj=]BfR(ںFV8_ʧ:CڦD`'s` :#?r;lI'ϕ#dZÑMי&x ='ޤ8\;{"X2Gڻt '9BSUv@ =Iڴi"OܙR`(AymCE7h>>sൈ?؜"֏o\Xܶ4!`<]Nkw3I'a)Y:j(aPɥYp[~Ex[^XKC[wKxrUJwAFlݢ]>U^ڶN%W:Q~۸tŒk!<߃a9B5h wp zu(7O?{tRQk|w\qt(ս 'P7P4R3f`,LqǙi|}!z>L%㱢/Uj}HѬ(;_y ϊ~F{{vGpza~LP~HڏQXWe{՗M?#8©3fh(Y-c6o sZq ]щ9R8!GJwL ck:TC4Ym~eV)lk}{Yh# *Oi,nز08+9"9;.gQjP5w!{޼[YOk,`'EyUWF^#o2nT槟gOS(|Sa!ov[!"Ӟ=i|ao, *w.g@ԉO#Ogu15ޑ{(:Xdz }y?_fV׷ZgO[|HO]Y)}y{aF֠yEc6MڥR|8)&2 +uLp"cζU01 rA*Xjrq~im֢ `Ζz57 D_nQfjz^&SleR{ɦ0Qim< TyP"3:rN Jz3;3ۢϼ6Лօq rs0>#7Y~p%ؗ"H?t?J0,[Ua]#!0>-0)È 9Ss&Y+|nG44)aTeX_Wf{/4^L\dhvW yrzg83o;ƗP-=)7NL9"ʓ陣 ^C81>~~i4+&=qA z8S<+vShԀq+[0<.mՅ RD7)X4%iRoǧd WT9scͥ%.q|/PW;kX]O'L!|l稪̢`ST d(2 톽%;9yyhJpϞ1Bb)Fv?kj1[7eVn`:p{~pb/J+xӣQƖ0٠޽HMLRM H+صTkN~mywX?)53[@H&(I#GKJ'D_350 vS:v6~=#e=-z^pRlMtP,/S֪ZDbqϤ}~j{*Fx-}k(@%b_zOs%v'euctj'ob樍1v-3I>3q$p0OG`?fY=Yq|O[߾Xۯb2G9?`NHLB(/ X(!βiv IazNv "*N%TvXCdt{`Ћ]%@Ӧ!8;OpcTJch5I 7feFAR%zV8,P`{^=Zy=.Dl|YZD_6[?Wjcԍ:@fiQPLdU~10':BO g:PF$0&J#1~LGnn}ܾ$/LВx ľ&>,)ġ KꎰT+IwSW M^4=O#) }08!Ë*u,wpdzf!NO[3PZX?0DV{n-E6J1څT_a>eYҶu\<;V +H-'tB*#UI}b]NTUq>}\̱zr +.Xs{˝@[D3oӯևAtx__pL8nR#C*X&{fK?R~C'42U CTI]`66B:S9f. %;;3F$Y]*^T_g`M4`0aufdĠ?#Ĭ@kajƒT_e$Y$%~'kVf9V7k-`|/?ːo"b:b"JK!ԣ(i.֕/S%F{zJ\_*E)Fܰ?onA(tV?jA&ێ8gh !Xtbn7ҵw)? x^rГ6fSQ؊1 #9OvBqJ87_GLT8QKޝidd'kf\Ccc]r;V$(KWM f* =.C?T{3jFtg,HDJL=9rP#ݺGpz$o#;.ܗ{=,|sS~-H fa(ĈIHI'~۫e?*d@Qǚx}yyx8Dir=8( ,uk'UY_,8 b6OmIW^ZD j3cY̑51FtdEBK)ʵOaN j=w-oM{ >l]xFy*^āYEX׾ P+cm=Q蔲+?$BL&yoR>X?in㹴S>?:,vaٺ(gv!̎>R,&_)#JXȁRU< Fշ]'Vij"A%KT$A_ &\. Jc*?6O=^^(v|ֳؓi{Mυz-gukrST١:x8 N\M0EOםEgJ*/D6بS`45 nY VaOH\l;z|OG-@Amqʏ d{cF"1v/k7 fZYĿTGTp\mǤD*sZ.k΃{L$ 7Fwa;Iܖ@7v0*+$X4i6 -[/25 8PS9_Ym䧾 kai5[W)qr$TH:2)=8jㅄ,np>pb'UR(geM,2 E?F7Ot3;4!B="o[: 'A ` Ea&f2wJtOw3YQ0w)mUOjuLSrxW6~(dܿjFȽv}9 )"+90\gp_"V MT9|6"X!*>Ⱦ 0SLgyRd!:ApPL _2?g=Wbe={E%UnXvFd{M:FM e5/([)TTa3W}&*,Ս|bGTs?Uˋ*6Yq}=9keجei~jJ9ԍo{,G}8eu.lܟG&qRPD~/Gb. P7i 0. q {dʹN, oΈȂkŴ׸B q^Qn"/LҬU Jp KVpEeZs0&X Rjqr_Tŗ 6\/hLx }5*S-OQH4 nS&;G]*^:DKb9s|6zڼDUT>!ɪ0:4ZH +@+$8s2T7DWzpQ4ER{l`-} jJz_cǸovqI@KǝԇҼD(zIV Gt,ꄼOYo L7S%z`B^"yR9"fpE5# Ϙ#Pp,K*f5tq5;…L DrD\y'w'Q':aP.Ӛf@/"N]=^X8iTm6C]| "U7>{Lхh҉cog4jzɈB7(T*8t!g3q5Xp:D$a0Q58˨#ٟ=Gd0ҒxvObſa,s޾\_z>3Y E_]yH\űr'DHY&;kYj1Y1 T߯~+934Oi=U~x̸=\䲐H#˽|͕NjóK8=A IMAeGs=FW/?DoD0x~̿9RLݡ6Y1CF2i$ΐlG0hT랸!Q8xNf%tm-i*>xma$GY#b!N[Ɖ /W6C@KW-OmbG]2U%0Vٙ\TIÌK _p)+(FKĨS{m['{!4% UҲ8eB=Y窗M(FJY>:yW4k$BׅU䊬"{O~p{ =II8\9-wTMƕhB߁dG1׭cеt5 M/L"ó ر;͂M`yݚ~x}_>,Hs+Q/z2׭x+3C!&(FR_R]-tw -q~q/9gdaJbA:~?}N)S:fp-G1|[9xJ6Fo}KN@.VȒ-k:GrM=) I-~]b**U#}Gf892[ΒXQ2Jxt׼9jJ2c'ҁzYv-P4F9\_;oMX^],5Zp G|?;}E\cq%ȹ,<QUa:RZg{~?3TR?m'ɀi";;y}%l\ |H1.*,SbY]hE͂[6A֤@hḥAX,m`k䰡 MrT?>i_v5,P_usWx~ F,ݼ&~rN#FA(Ezb۹IntH0yfNP/ yx x`s}'dI qvg7&J9Z}]2ErgCz6hA"\k*`l+Noͱ2a5Ma<$sT ݢ;q& ETh.j L퐀i^H[ ZsRײ@UC(_CdJ, >\E%^-,S˴5]q)X?Q'}!ķmY.Z )i33ՃLBpѠ*赩 |ѽWt_ܴʭ&b>2@6J+b@leP Z$!EP<NeٙbX#2Qy; [GJ BKy a=37Yj\E 6,']L{)#HO Ir$֥̱Gf Ԁ~.1.yUw1:a|8)ʂHm]ƳGě?PVƋ.]p 10,\raaNLM["k观o54dcuX^gDLop"YB@G&`tD#G%CNcK=qb%tkuX[$2zxN4eВ%]F"%P$cx u;@;ƎX2 ڌ] ؆M!q u?AHdr *tLNoDY(ƌf;=_`#h<*%3v;ghmkDYSqyOh{X~ٷݕ7k h>HAud&der pjw@=; owE(٬粝9Sj !6=%j}[Mf!u+w)X᠔P.@Ab["2L&lK#今=g] d%f9>[d-R"Mq:~ pȴ8-;j=}X~'#kzefǡ3d8 gtB##ԅ5gd k}dG `EMcБ|8gmB(+'c~#s=!|ls7 €ogPkR5]"^6%|㵚uӐ D+_ɐYgc2oؒF6N(cNE2pXpfqv0f};3MYcoҁ=_]D۵G飋i͹skz$7'Եޅp\0AaHkFb4bIϵF\8[fib)~^ihd!:]#n^ep3\rh)Kge2{PFT I| "ԙu1i>9ruTsتaeφt f@RրC"m,9h`{T#7;:6WʔهgԚF]6as$6 n@9갓6 ǪWrr/Q0?dLyWs3B_kHwW` =׉-fۢ ! `c';eaG⽁9Hv@u F ln(Ү !9Za?f_߃wcj~mYM8 (rF"y@yPet'׬#d^V{0w/) M Q_c9$kI84SNP̎zw=4{r/E~"%xDpXvr}z2~r${,$h*KsS B*cm#ygnt\0tadM`\dB wvh dhui }{ = ӋA͌tGLM(%FHd(FP̹ 64̳kjJ<D 1G6j4KpN:zcJ[xثPyR-+%Қ@9ot[T7*pxG':>u Ccce'+#{Q#{` >R8߶9he#כֿe4r'˷#j`#o*MMũܗ^g6$yRܪ{tJqzSAJF0q7#P9diOW5 q'Ōn8Xfy?ޓjQNOr}^خlo*c7nDRqOd*-q6͍!d0@u#$%<@ FKhҳKN|'+Rq H>FG>yu܂kj:X]QJq *g2a/#H%3hak~@@С?E&.`dUQ3'a6s: |HJQzj*-w|oYQpS6lJ(< < c{if7{# *~ bos0?{T C2y?ȀU2BEdI{IZkj4g`o3٥5;-%ۘaxLTb;pFIv?Kc>pT(@Bv`#vX3=ٷO.i]5$p[vس̪HC0+ 4tiRR9P^M_O ЃFw Ku2G?p$6 [viC/s4G]u.AϏ5 Al$\i 3 "s̪g[(/ )Xj15H;Df={u&+?L5q8)ˁ27Yԁ&ZA/xǯn*t'}2yE-;:gBgfao'DM}X8CYWc U.d+%9ѺLtx8{EԂoI)G dm9bTѼniZzi|H+AՅ L@(Aa>. &V%ނ$62HG ] FƲEP캕eC{r!.-gRP_[ 9mJSdl+ l-X.M:H;g3H -nSc&)9|TmH͢zvXMa4C]qmB?Q<_sv"G4v?./&[(3{/@q>!8Fd _C"Iw1QCm;1A\=)=6͘s M~o9:io,Cf^Cղd."ȓA "F\O'~,v{%'c箧h@LQ!a ޟ50[ȶ`ʃFN=t;i`)J][HTwSS{[}j(!HR $l3迊uZo@0#h wMpT!^ lͭ94&K9,w-&ܱР(S=BY BL \砥p- PW& K0䦳+󁀅>bcn{Ί%<d{G%#Y6LF>4ʛyD&O{)W\q"޳'Kqɷ˂0L\Nޡ/lD" +doNK= m,Ӄ_Mp< S_sq)Bʐ\Ko6Ǟg&gbOx-5Ă8A9XC]zȼhFۘE0N CX`&.Jz^nhc/G2;`$ZAڽF?p@?>VO& }*Z!qE;R`UQ%І٪6K€oޝF9'o8&Fg,$SG3HGOc[@-DWď2.nzMPvueŚj빌KqDte.ðuǾd`5- 򻜮،DR3)HLdjBumRpyɤ ,[z\"~{v]nC^˄7xcÕ^uSN%\Q<1-_P*N_Oh&\^In *I޷\d",&kr+@'<~~b$bD^1?'ښ{/4ж0uAy$1AzQ~?:m*#InM r^"6vJkZK\rֽKL~j1(VOhha.e,&ev դہ@ `VMKK'[ (mB_!u+CĖv7i`+ѧl$S⩪926 LHnx<hvF+M#-r\ɲ-xJy݄E9`b_s>Nay_;)昪71l^[Dmx=etM~Mz,bfI~j=i亏i`է$GfpA{}/ڀ}7 6R/rR7hi3#3ORy,KR[ש% DWNq#DLiL%ۣx]H hhq6,Zs?Gd8k ڏ&3,XZ*wO0#.b["fT4S1_y@0?<1nAl|㭒gϒUT={e7xҕ;=uH3@[\.\PK[3f?8ԋ(>T DޚMKXa`35Tm|**0S+5漢ى9+6d7Zu(Z3f\Oͣ F3^zқ3 db1Pr?sg[61H^9 Evl[N=JQ{IrDTv%23UB3I6K: {GKjDξtڗy{59SxqKBZĆLz4fU!~mz(GIc8 Iq N^0i(F:GM@U^'E3S5e r~\w`6ZFGX!3iKm*6+bDI"Э45ҵa͑XvQMQ`;hA1 ڐzKzޜxaL C#'DHDe a,v`Μ텁zy-@+{3Ĺ6R5oKs8^0 ^W`;_T;e9aʘ2 [b PRȺM*mAcpu5NN, @^-k=3m[9nr|Ox1a |(3~8<!Ǿ]9ƊF_j^ b4Kgч Dץ{5څ1X©%m I9l(цUHFuqVL ϩvSi$sc_/O-˃zaq0vEHEU.eNl<k?.15.G#N* i{SlDЃW! `*;C0rP3>5_ȟj],b6U"6jc`3XoŊ+NzѰ}\"v @F [,q@ɚ/e߈`XOqqM'T>+XvH"sVb 6L0fq~ٻVC]$@M|SI5=i' nj]ifpg[c{<,"^~~o+05B%6h3K]*2B|N!Z1F25ʤ.鷾r]oi/64-Tθ{]ׯ?/WZ0mAx>_HnÒW"19>H:ģ/„u=CǀĈs2¹Χ#wppRSGb@jؿ7.=eiBb"+A~q0`0҆~REw=eMX8 r3!E`.x`uKvcV^xSJ9MTUQ6%3ԩ:@KwIab% F1٧S p28V]9ItW*!S,@=GBFh<\_js^Jlܫs\>'b>E._*x>]RhTΧg;\2\9.赔G @X%Nun9@'Y7NwZm_0S#‘PBhG4)0qKvzKBG(klcNy7Sąg*x>Y_ZZPrd)ˡr;+%R ̶wd *(z iOLJI1db'GYDXIŃYEJ;W õy5J9uo6"}sg߁ڻ=Vr o|D+`hԏzY zk!Ijf!*&Hj~̰V>Uym'Sj驓di0N>x~r\^wTn:̃u^r3J~ٗgRoaeXk2Hv#۱΂aKQtDOcSG#Hi|ّ95 5 "^@НXcmYJÖԋѪZ7'Gər/ZV SSnnXMѵj_vEN!2 PVom)@Epsp"#*UD _%6v7 ku ۴tv<XoѠtg9YR2+6e?6yޤ_uͽpe7wwlB8}RlvkUa} HγS@|{`]Sϋ]~G9iS㉠ǡG`(І i\t(.VWf9? lD sMoeGO-r/"y<e5v-~If~dIC !Th8pIYJUm뜑ҋ8Hs8}5.[DgV֍8* Pi8Ki:o_%Zc km=qf)Y*w_퇘_z5 S?:3;pDyh@ꈛnVsO04,P,`E8H*kJ+g#F3\;[~bDw4uB|XBjŸj]O;d3k.n>f4nF @sٸpıGG#C__ρ`vqOWKhw|6o*s[4c1wV232e(ĽT͗IdGpɰ@GW h2rNGIi3ÜJX ֓UBH.$zj6!E!i}k `{ڥ\G,m@<_uF~Բ O(`O%|~VGm[@ߣ&B%vq l[}y8C2$B_F}EATN_U.4׀%Ti9?otLf+Eo,U&0S@eoU+|x5}w`IjUzxa: g(ȋ/ndjYJI{4V6^}=ScMv l8wO rj{%UG4g6*m2aP$vl%hm)GX)7fS^Ց>&,K([HQn`@ĉ${Bf ŗ<|GkF"@jTi~uwon+Ũ;`,Af /`-G}U\qᨬ-1hPLАpk(6q`')؁hwT"TG| ؃>GaC@G03ljRzKYW>GSR/ϲ<ŊNʃmb2)%_C@YY -)> ̔ ';c¢Wu6#@ԡ:1KuUzRQȴ64}FlͶyswOlVDP(Q ;'6ܛ0cE nUdyeuLcigҪg\j= q94BO5y:Tl.cm[~g4tC\~ff3unjMe/_8A iDw,U`/v(LJ*IffÙ5઎,Eo`\|߷@a [B4}LY}n Go帊>Cs#LLj 2-~_@%'g@V(c9(ފNRzUKAu8^BCOhv"=Kv5x@1rѿ1jG,S_k4JpT4A[*&*oWr=s]}hTɖٹPPpUZ:=sFW#6+,8ՏQ|@޼?cvއbL2q{b={(#e=?ԭQV@2 ZrNyg3Yܥ_`бժe Z{!oSW״EWk..:o :*rK2l`oU~Uo.4 L+vINpCKXPJ7{!2"m V4lkIPA:l .˚d.%b~̷ٕR} [!ǭ *ݸ=â@x|kTՇ<ݱƙMjLIܕČ扵gᤊB:'oZŞC;_FIB{nXb!ju) D!}hh4)Ū!dGt?HdE"|#`@.!x+c*ۄ0z|qKR,yXmaaQW4!l\e>^(eE?goE#WI* jE0;Z8$(\LFҞ<>G/51/`rPd! P?l qaZS %5raSdF&ymzr 03Ո֦~je|-p zPv )=ӎbF5V|[~FDN R,UIb /ç]Kp5\m';" ~4 mg2hoRJRMܕ?_*)Xޭuԁ$69)Y9 L)/vb~p-ΎHh IBY k ALMiCzk04Ȧx|ETW6zbp AZ[n9!MYVMoc@ЉCu䊎%ƓYv{ä1~dָQI'yG Г1(6zb U}i͎^RG7UwkG7vL&s. vJ0j1Ssߌ,.gTH \䩯 ߮"ȝI'շ|9=mbY N+c('3u`, &cj- P-HL]1$Mc]&aZ X\xLnNlqQ)ů }v=~՚ o.QR9ۭ>٘cK; s" tDT}22ctHn`2g&2bjWrb,J7|YÐiVs vto.#8udg{ݙД K;}wB K1%}&!,$JK`k|@M(wLh_qD?{Icw)%~ ʄ|^aE?L-ߦa,^5 Y_~'UCl[e=1ioh"t]hk?3]Cg&ms YF:#eV|5y'`sUYpƪ ]̛^6,B)c(J_2Q4Ofc%kbʍ 2'TE ʭ;BM؆D%]K:n&>SM`91ƴ攪"mn͌7%?[1B}|8xl khtCLJ eStQb)LcMkJx>CvM1n)} ZwYR VEdQ|Cz,qoyIQIL+z~NDeub/x%ݱl=+D49]B%hT;QE-[y Hș]hKEaqY X.֫uRBPvg 6܎̆Hbg[[RS޼.pU~l533ڏ+yI7SEeuXRp8xnLO~TbصB]W^1 /kZ]2^ckC* 'BoiĎۆ% "Ӏ.6xt[: g+M2##qɴb&kYX F Qm?183i4#EqR8LJ |Q]>a.nLlyn YHX߆NU!~6a?O[L_ސ93k5O/S|RwoC`X$\kl\hJ3EhĬ(4$RuV6,+Cχ?BmJ>}h'pt\ yvA8YkFZ^uE_t@`A": 0Vk zuydA ?׆ {H^zs z3[-Hf79 s+0q5ZpHüI=RP5bRɃFaPω f-klٺHIP}7Z@u&˖~.(U66ZXlx8bffWG^\[L1 #1IN59 (Fʶ_Hܑyƒɐq;z ]pSt:6c%\|'q'y!BtѶ/V+j~B&{ٖB5+)0R[pÏvr; &:bʫVCGC-O165~1;+FD3ތ8Kx/e*+˞RR/oimw8BfddDz$KuZ0`σav| g˹~/*Zz5v Z{A"{sRĤ𧺐 vsXlO=W$]GN¹d! YBe>cT}&0GB D@Ѷ=$ k"gӚ-3= ij+fI^G)Ȍ{]:&B˂6Z!wbT+6!/D{+44 u"l7r,Z"U=tŚ=, wi$UJ,ED@"51;6e] /=<'Ȯ6xÎ?)t@}ai kvbh O%Ǭs7jW' gMik$cw_J2R2 r{W5j6۟QHD./].nնQf]Kuu^ hו cYaTZTkAisͩIFrWon}z겛j3 A*R&d_C>lM ^ s3gxI(kDE nzl&C\\m˺*אC_0}rle%:D*A Q0DbI 4dvD LuV``*zx Fgeь[U%3\Χ˃&=%No_Y 0uU]sva3qٿc.eq5P=llêPT Ԧg]dq'TύA!"oTOWa[YIWnQ7{<>^&sv8kEu^ X`IӋo"}ײ:$jAzX M[vN9p4ҷ4(@_je!x]x{׶;4̨54k[EU0˕sĸGP92 \T`؎@@k\M 'KǙʧÞi˒&o7hQXsEo~ Ꞝ2Õ =ȌmEʏ4]EYN8ʰC%eo_9#:;;lX5a=v "^Ҋ$3@#Fb&χ3[ߒP;E]xG+̎&r" i?N)h\fw)Dٽidpo:-B{~ ݸcCwUOH RJa;(HmSd9 7]3Wp^_ b(Ό} cP3Dp\ H]뉦ƂC%1e=bK`ck\/6Е'7 ϊ(m!ss_ރ.qM ,12i!.ƉOMKhȮN~+B$g߳܌4K+-mPvQa.ũ,DZrы~^ Y[\(Dmߢ!:>)lHx\T铊QqY+= @ƐIxJ<MV9ʧ5R!n:L`'p?1X6,HJ8wiQyT1_2{Ώ-n!@SLtVU;x+(#^2V[iY&|:=a[FsJsM-pHwٛV 4>07»8!ʔ&:6h5ž_ʬ)-4O{kT}]]>Sf2f#%RQ#~jZ6gP@J./,|=*1We%]cffEa8WP@n&"# ѵ"Y1V$Эm3[%"6k^mtZƏ(۝>U$pI8~}uzn;>7\L-sQMo/{sFO 6N`53ls4*MS!+~ݎ9+)مv߱[an k^cP5nrlj yvֲ5%c:~ъ>a:I !B·`iNX(Im ) U_ H9׺.O jE8h׆)D7 /UNlPXyEBaߧ۬jS h(TbF_G7jyES2Ӽ`C6S^HV`hJ~TKJ0ѧ+[nBfs-S io8,e.kp8bH(']aA^2ݑ.ol U0n;e5ޗ:ÇR8ϣbmc[~ Vx"@O!\"+PSop;YA2\5kri.e#y?VZf ~_A)k:ρO+iD8PФ?f`d-cfD+@>'aNȻkZ ;J"&l IvHtī0 G>މ(ޞo-˔p$>CDT[. 8,EKf<\>#60h?d}<8̑LB(vHo<7]Q%qTK: K}ū+\">߅GkZO `^(Y V1t(8>rwJŵL0.e 7{%>">5iXO۔ݩDC* buEx-rd\q%a;W`,q詫,h(Xkbn5ٻIS78ձ^rh5:sY1F6 G~s K-; 6Έd/I o)&f*ԪbQ9--yo;#qf]j3w:udv0|l/ufCrNb$׭C2=8:љj A$,ti9tUɗzbԍOI,eeJw;4y3Sa͎Q5nVzj%y*q֟.At䥐R;Q̨L#;t`e YjY-R>v j%H&F`&lg<'+vwX 6|{884W߉0icBFۛVkx60_l=hZ # ^hA؜{͗ulTL4}͆`Z`YGgqk#o3; hFdIJ4QRiMNL'l ?YX5i P Uo+:)S2q^gDv? BÒ7̖M;"Ԍ+Ա,{`${kNe80=>i&7Ms v[=LyLјFE['ӪJzNnhlH SC緛_cw͗,~2i^u92;SH=%jN9QrLqU$1V73㺧WdV Ԧ6(ٟ!ٯ}$Lz~pb8oШK1x_]^ۈ؍y0}: iowt$*؋?%FEO?70:Oዚk=\S %}q-)~ZY"mg\hrn(Kkj,o{gYc_j̏6Q%ޥR)`cꭙ㸻ԢVP3w敩m'HOW|+nJdUDl@C( ;p q|g)&%.:$_b89,I!6[[ {ľ$ _ejj[Z_QuV=^M9AlG/AHU`/ 0֘q򩨠dC!F,kd8,,|1f4Bk1PyBc%;wc:p QR6!klmyY;m̘b_,qӉeDB$D:&+eQt}%߃lCUSXt/ XR%Ƹ lakAR BT!ÍS#D\rT3s<~R]L/?Vq@J }42xz2ykBwGh b, }9oMR_ߊ !i" u׎e =>[Y>1깔yxM}]5[;?|,F鴖C\LvSϴ"cŁlo^h lԻs6jB78G^ոn"Pݔ5cvmM{w|B+}x) XJ d/KRn&&p-(K32S xrXOLE44Uׄs?niso.sIwZ%]oqiYBj@lV2 r>|?9cJnz ޕqs2{l*yPs _:p*s9|e`=it+ f+A Jr]Ϣj7$ j*eʔ% itb|EH0DL%cu0Pr ƣWnqҳRԈN '2?dN00*B":@xe?ƍgt23CƁZrf@A;v+^'X\g:Lnyx|3?:^ fl(::egUDQfuPb>crQ-y}匔25@CUb; !BLFۣkπ5xw+P<m ԨFR6b8{믐jsD^QzI@._Az.NP? :{q@@YBF>֓:|0}-H "gjD9Úa+_șɅ*;%H )k"qN ΙqF$L"3 È)Ľ8@|Kǩ1d,UVN3طl05i9컭Z\ȷWWod‰TO#.aMr큪k]W DGDR^wLp[zV^0: Okn㼇)bF]>umrmph)< A]hm+?l{CD ge%J/?[!V׽fiuћgӴ~keƁ<},}*ܔU`pm> Nq9\ExsoBE%mm۾7{׉g0&ffaz'/0uR7$3[ cKwWKKيKl{b?x vhtfƗk94mKl p60ݳA"$dSX a~YRflhÒb)#"Ӟg@z;dl1*øٺ*4ka7#T_:٠ſ˫& ls5%&._4?7BoH\_ؤn9I% ,rV=csz=2p_PR+6kJ:=IcËῦ3$_kt +!^}G%vO``_2.Gҿ&߂M=/' gt8ga9ɯ*>mUladž1dF;/wb]_ٓL` AX׶;IxZ!o̼}|J xu %/ )XeNK!d< 0^u349[k>; ,<'iP=Em2[nPaJf 56 ͥeĆ[sC?A`%׿Hsl`|ke4AW&Xj1i.%ۦjx >c\oq=̤[*,Ӭ!ݨ~ vNV o4:UТ[2H9]RF%qZ#RPSWc٫+ktbd!/!e]`>GxJp_"`Ə5r|744,ߝo ?F6uuGTH+%>-¤ë:y>-41TYyΑ2qTTHmx{r3(2 GV43':3F+!ؘ} ,Dܻ R]V_ f{ \MiH Y"frj 1F[ rqnIX 6[/SLx=%Iw~FV6.% ::zX@ I KңfTSaswx:F^4ӐqZ.3ZFl^*4 ѪV3g᫾)sJike’LnFuNlt]Br(lpLvb'浳YVuAU vwO tѲmȪtFD1/fߩV,rFafnH|G(|a2pPJn+wD= dꤿi n05BہKN]I[dGԨ1@Ed|H1{)\HKeYɖArtyLc&\xe8$ܵ&fhhc16i[$~>TEeOW Xhr,ǭ|7Wz^;3m4xPөfnz_ֲ|ZЬ0^׊fDp+Ʉ-c$yjK&a^m:uMO/kOg&|QKS#M\_ynP=}1"oD(jl&T%ó>Ɍy2A`|xb4ΗЙ@OyZd>0P:1x Rي b6*G: vk4"*nh4^(O/ęw),# ("GA7sy e9+ .Rdu2=vb+YЊ[0S ^qOOiʛB: pus}-Y+a5Wfܺ7xY}JԊ3Y;5&լ,GGMٺ|Dz9Sf-`n$2v,B0$;'ټ8kb&K Olt,O{*QSּ6:vpNOЋ0~ޜPn!kd0Mg(~0Z:=JPk, m4ط ψ98uc#!j,lK #ɮȭlbM s׬̌kŧxMw@5@t[A  z;V{LPc[᜙ݸ749LAHexԄv- ƿP3;}5 O~{~/>xnsZ6įTV g ձz5 vz"l>{R6P?WLQJ橖Ԙ}i̥pDCJZOr+oK L}P3zVs;޷4̄dEܻh5up,h;`U}$d4jeU7 r#blMl%u+gF*)o$ K/5\ ^; {. ]V}.Lk5|96,FvN٭B׬g8^TVVp%0*$mFOYbί6K8@VG.} xV74$wel3j.u敤 `Z<p&"TE"] f9'`tf24Ã*ٕ"jUl X5b D5~:&Mal(6H 'B0?/κxSdu TIyQC* ziNwZYv/wdMΡzLjҒƉ(ě,ƢAHdǦӓhCO.:&VlMhJ B "C ̓v)ƨ0I@W^E`ylf $ . .Չ^LB|Rgtӏ#|=^,^S"`|@2=HWMX&ؕP4a]oy9^kuȭEB7w+|n w{ޡ*(e]V s˾H^L*m $Mf-IuhI/uҕ7O!NR#rpқGGF|{=':BN\hhȟP(L|Rod8 O =6a>k Ck5kNTÎ+kҙm*2pA1^R[\!*Zô{^ITr-W#Iѣk ْPZ :u"S.\l荃 Q,lNN\ݦ:Z #׃8 %QYr"L\CziLtEQv7t)qHJQC#Rؐ1=▪۽,ih*.=ƀw^&D,C~W$TS{mV˸7RFJ4יDkX5A\!Bk 9HIBExRa,Q!tvLӡk0ş*nLQDKRHPTCmqã0%׭eD戣Fb L :) Q7y`WRL) f3+|E?ٰz?~ף;Cd,fM7fdj1:I]m߲9.ꄥhyhdLxf}1#/ 6)6pZ֙sJM(j8PZM}Y<_0)$.,5Ӳ7sjt+GB6nfSv<5J\QvL5˸3u/EfױuWCC@/saLTぎqTB+.Y=X) |1ᘇ!K~M*aPŏ˂ӒoTv8wsDP8érf!bu<仉.r--ێ]5Y_ sW݂XՂ'g/O\!NV IW 'M(hRo%Ҵ4Knzd Q 75 jUkO:bK8].p|Td(b0\ ZOJ5D; ?}4MGYM'ߜkd$#D0*jR|uR:Gb8GG- hteTPc55?Lg̹$Wk6| GbmîBktO\^C/O}_]$^Yc=-yXD"8>ݵڅtwZP<(+ !Vgĉ\+JKHC|;O3hs4d8[LlțL0=R6-*6!A>W6 ҩҍ^"X *G[0Ɛ 5zclpٱkѾ 4vEl{Tf ǿdauźu"rr|=sҀOU:꤂2`Џo7T"^ !n{)vK^iS ǤC^Ƣ@~yXܹjeq+VSf\=h$ukh[]K05vwȠaC4BR)>-:%.=t$Vkƈ׽gB64߉ 1z^hIv:߶Y] CBA|{J?Պl/<+iB ,JcS7 1exܩ+ɛ/^d.rZ!(lH<\2&V=L|c8DkvѽzL5CpB6s&{BtjNP)2Ӕ+H?`Й9I[l+ .Ga;TP]̝; iZh:bv:DXdOT"yl UWHIyȍj]JfcMM+5y\'I]x띕:j;WI*W3{`f!n1jڒTv0 z}b(Us"ljh_a%6Ԫvrj p11lFQmz؟4JsǴZ]߻M-do42g4;YyPBA:sk ݔޯ1 gaL +-& ltRtxؼ\W@8IB_J(BjM|Aێ"U 2d {ol\ݡvw Զ501$.hKeO'L:W8yQKf'|&ÓS-5m?6lS"+hO8[n_u!E34-ܞS祎e\wNd I8TNlj!ߐDZ(t-7UF"):Ƭ)/ߪ$94k!w=| COy)ػ@+kY YⳟT>I[ a/~nM6zDr/U)yC_ZqˏȹF?]&?WDws*X/݄#rh\Vb>m9 ņhC*(gxn7PKnp{fPkx?鍈Aߠ}gXӑVȎ{7TEO0ei C@1 |f 9}wհF;U#ƑVxlsxo*Aȝ{Htr̍,jumoﵿo(L-:h ,N'Ύ4m 쒔'n<E}}l0 ?] ,Pk㕂bp'oIԽ^d\sȰduNnCv@k\Yȇ7:K r4`Yzxg #h#+kARAX"^eL+AcJ-dfE_(d`-T]pjS,nL) } (NI)JY {cX(GM@ =]A]D}gxldјA r<9P^38GȂj@Na8.ѲoG&ȣޓ.H%=kualts u! !8O ڪ. KYm%p!(j,.oCbeʧ$|z=y/V^a%v겗dqYM>lҰ䉪)]=؋p7ioL)ש/Vh>ĻIA3hs4VŒ6I Fhj; )ثS6NrV3\ j(ٮ.P(oZ1.b%!PGSpMkn] ީ:[aFc% XY24-^|!ؗmr}g8C eHKE[X'U PEjNLfy?Yf{1X\kgPmiLQkk=sɧdGh&-`U,[q$p$yt s%k_HֺQO[D'zMÆwBV^j&2w8~r߄mO\3UBjίZG/~֯ᾣ6@l/܌D!U 8Y8\%M zhBiȂuo,ݬ$zoeYLH.hwUnI~X`tcʇ;eͬ||؎k/'P; 3 I \bVܮ*9)kD-=9@lr$P:O^0N\<`򳏒H  #MEgMZ;2JwQ BKcz2'!r,)> JU4D%?x4hW] jJ@%v."&4t̕9tẕvf/eىZVn_} 3 G=N.nE1l0B^ZAN.)ƓSMwtQ!j{L˧nlʙ=ULw+}x#O|ʕh#PB"葃"{#9N ,PMkz -@zwn xt<.L9a]?_ y)D|?tRnw܌n Д5xB*þ \|S<}pdb x8su\w,k7uhPj-{!yN ]%Q^Q@ W@~V3#R>l8& +_ x7-Y"~SoŮ=]Fv.yTļ>t8dh4$yWy \`Xa!mzEH'CݺG4\_d:(ý}}}j>wV/^A ܏-fjYU1i^ g6;Zc%%%GPH+;jJ<\ﭟn/\c?!Dd<v}.4:DyUlUB~X*rnw̻] ʔ R m1]rbSÀMS+fj˞ٛ8bD+ԉ!HQE6 FM}w@vv R1|9 `"ᙎGSK1}9B7qzM#(Fұm/AT􊔏q12̼gz40$B̜@4p qTЍ 'xuK \)$'Xg1g^x;1_$U$g?YVmب`yNI/y*D~!\ wXI飸4Tnyoyx0LRt <20ǤϓEhHv(v=K^@1Cu<1<1i3%E ;jm(ʢBK:MmH䍼* h&LfS(8><}r:[nߚnwJ(j0\t*J[5 2{ ~Sʵn4G3kBPwWpEݎ'fm ڻ$> pddOxXA}%ʑ Īp>ex<'DHdBr u_Hu uI_fɈcϴx}шJ&ԲVcG݅P qm~8-2@ʬ=zo.6H;K9-# n2pJ*r47T3i@%XײzPI^aμZĴ2$(ǢjpƽۊX\vwVXfa+|s׵c+ZPaTc.ԭEuOdQ:;#`d<I q.w)yD:"sDK-~< |Es_k0 s`3PGyr4eb0F r*sy՘J"1cM#9JZ \d$H_$MlP Ł]9zw^کah]2octm qkTa7'$ti`(mEaF ܝJF]? Ù0격Fk@\?ҁaaFyЎ&Mjm'33_['>Q偼l{gy\l|ؔ|nx3VǵnrfYgm3mFr GZl;L hEЇECg/~"2ޭpXLb{J5w/YV-ES Cہ@Xi)XzZXa~˚v6?eiSxYJ Yi:[oi~-Jb)nE#r|+LDf{vHnH]cE^-Pg:YfMeUlǮHɘ%FXw1y4 Į?@=~*-Чy,D] xpn0>ZmHd9[Yޡ8~-Ymvw|;ԍߘ _Q8a=Qu"ES6;)ƈ lݲOx:(ttQ҉v1.Q"<"9:7 -b:i!MP\PL]y,TE,-aѡP+13JĊbzF\`wJSD{/OIv~Eiv;;䧹 ^(z9Gxf0i\E9Bبd^}dQ_miK/<}/f8Uhb+OLgk4P)CzŵJcCIrՌmv%$b1ncwF vO̍dq+*FhÿJ}2d\z0L4"D-?W;;QT48 ϤKv{J٦cGiEVFx/nOg v"B͔LI-Lmn \MtoT +CO)M^Hp#Oe= @U>#Izϩ0D=N賿p'%Dj>oydEiVq\,F~ÜX^NLŇ :oοzGkY}[0TpZ}~3{PC6TIq'Y|s<>?{.Pd pӍ?Y2N(R>';mF z4ݣD3vcq  A=Ɉrjw6(ͱ,t3kXBeN•@}nz{%cj?Ϥƃu fHCˬaQrOjѦ3_\9f ۫.d^MW#e%l! <$,Jåsϥ GB!65PY[ ifvFJZ"sNvN7-,,䫼6̞ձXf 9ٰ9lE)T0Ug5:SM7y!`!`A$lG ~ 3PM:C; eͤY\ ȔY9+RPn~k~{D.PxހͦFWcE$kgl hY{Qɐ2ԾR,G`Be &/[OP'zr]=Km}#@ʪ(W9:ԗĖi#˔>NjM ۩RE(L 3 FJDvB;k]!/B'p.C#x[8?^vz$=!U]*].&ZrT ^\Kmz3U|Kozz[ S{L?Lm `Dqgߒ3@GY|y{ߛgct%O#Qsm0W#,-G-.̆a ,s!Q|+`̕duP/npL^VhENIGƒL)r0!`!`TABxNP >6[`.hqe~g]8 F`pzPUK/c!`>atMжQE!c}H` btq6 8!`!`?cjModQ <{po'6HWQ!`AhIAhL`+UP{HndŲ IRf 3oMC4yR N~@TL &x򉞭OGW )9paJ5F3þ7m\gWu\b0珽B$PY{|WbID\vDG !\RbȊR]۹+,3%w^zާ+#l0kiʝ5D)Xi v4&tS;p.i5p>r![xꆋA-muTƜ]gJ̑ <NJ䰘_lD2lޟBU4) vc2< S̆ͽ*\4.&dh Ԡ~ig4:h^U^rM{2 bg#_yQz1CJY_ɡ?,Gw{(y~iMp%JI\P*7ܽ1 5er,vY64gjҼ*ڭz*V@.TybtrSڲQT3ʽ2DU)&V\9u\griNr:碃0߈,]}2S\aP߄e}^eru#V.6|KyXeRzJ@N!o A-\{`: 3~Q,۞X /fkYIB6 zqɔpoSPQTryaBD~ze#SIy!\HK PWTQN)01JׯZ#0CJ{xJ[Zq78Zku0a!&P4S,$OGEGi.OX5!ST{9!Ia#Q3VfKOځ;?X. ך`@dl6B9 ( sң/tX16>R^Nr+|0kŬIKiۼoEG\2a+jf{ȈR 3`m|:Oј 薢~"cx4]}>R+źIɉz #` bטL-2*m|\KKptm+w2PUr!k?a@AO]3h0ǽ!qx4fN |g*dSXPh5Yz6U'> X,,zIՑT(uÚ 899q1g ZqvI7zlмjl^{JCz<N?Xmڐ, !7lUEAX$wjUg(h[=̟yVXp(at㻦>r]g}͍G=M)wHlm<; '.7.;EAt(d*>ͫyXGx:p95 M Ga卽J-77)S_3ȚȻ!u-&Yغ2Q!mS I_SWʳ qHb$_.nϓ@GLPј)Ǹ 1^Ы73汰WuޚW]Mk6 $Yg1 ƙSmX51mpb{rUpOu4mG! xL-bTk/EJpCkJ΅ hUR,Fر %o#ЀC4Y N l/t }PoS;"e- AW .whz;@84wt (0YR]5vj,}XzB` il>fAJթnsô!yTx -0I 7BBSy0)q9O ;D{F{P't~s)IFC7n, ew3ۋܽ$1w:s5r0oEnl#]ʇs\v^óm\zPH0/^&NZޓ)TpD\yG7ز=8pFRhp(#lVXK#K\;KRgN0۽ƬYjiX`5zzxET U(=4pm>#VC/ORDJ`L8w9nG XEX zm GL =;?_7jɊVV+AO;$;lXn-1 J ]p[ELJ7Wt"+(PM| ĦNԙVd=J)7p(aJ(-ؼ?Iҋ&"}w3yB%|'rV5"Vܾ ^8%3t1 79axwM(W1b# 49 O>zk"iG}sgr\я{jBsu>}ŅbYB>D71JQ<63 ˁ> <˖y%.#|qnVr;Pv9.˩ &n<EnA'87wE勲)|X'#~QϢẈWF#ƹg^ m~>M홖Sof!#{NOCԒRz]۷Tpz> A|r 9%"V^V­HB܅vkdDԦi2JX28u󃻠34֗w,JT_I gWAHgFw$ױ.0_ |Zo8c3S'u%k#kڣz1ו0=#?61|chn822= 1+WyhT7 " M$1I,םuNK+tHd-EPMnMxbҦξ`M nHJ9$r扻4Wj!2Ƣbv]x9f6"b @1" #kh kjǫFuhnMaK=/e!ZmiWz;b)6Ixdj T O*\ۄl@pg,hYB_:T͉Va!`YtMES0:#hB~+tv5 enVfY|* 8@}_ ϣ e K>AQ!`!`=jMG s<*j7VMMHUJ!`AIAlLoyN9XҒ ׼^PFg?b˂skqWmmcioomGQBDW3);rk ѪjL%938p'ɛU9ubi4#wĊbVYοj1vVIȲ4'gTaF-29{*w-ТQ+!`!`FAE-h`h `mt>`P& QH"J!`!`;tME*Qskf {,w!`9jM4#ej!`!`MAIAlLI8zfaay% T\Z2;uo~>]p6A&_mSJf9b0;*uŻC揊&:.Ūh&ܔ^ $JN9<*ϟ\ aSۙj`Ԃ}<,Npu긯ԶFAUYJAUsG0zac}Q|$)=e. k7I# 6;Mή'F.=]ԾxX}%jFi+P))"8CD$1pbhG9+[I[ß@jSyJAi$H6G] , 3`j/, $BdEi%u)֎%];q6=B Ke8x? GB!$KU+SK۴W} ֖**| Fy`",-[#UiRJ"`tbjt^m^Oر p3 Ҭ3u0YHB{G6Vn=t]O@=fCBX1$X w(RIl)ŁtJVA'RbőZd^ck;bUo\ =|6_z[#/H6PSD鷇W\ CV#'ɩ|C;Q/GRǵxCǕa5vBa(8xE u0łb{c i :Ok%`_KWr>}bP7U]lTt-8QZuՇP܃Cs]]\X(t-0-ǫFV:GRq0Cݐ;rS(°Fhuz ^ۅd.X 'oCeb_-}TxI@>R,g+t7cԎu%L69i j gS\?=nUv CJyV1k"mJD{ pluh`c 8x`adqf覙PB/n1#0[Åu=w2~^ ?hLҖe F!_ZLKS/Oe(6d2h9jcdIddϠ,`/Lr=?*l| F,Nm՞`XG[t=d[8f1{KJ.qEK;ϖ (ˈ0l›l-@NrѴUꃕǘ$Oհ0W~CQ?=Tݿ 9}NFE:[G:ztMH|mҌvtCZJn#G5Ai#hn̘eRFYX΀j*ΤvkQTN3=6|j~ wzƬbI]:qؘz`;`( *)=msy3%g3"E; B@/^2"0'qZn;Vy:+=k{ F 7ya7Qo+yA1G@n[z_AD]a39<7"$0 +LuQ#z~v@1Rc ;*c||/*VA7z>Q|p/OLoM;G3Hٝl&]ư $ fl٪| 2.9򨃞E7y/cNt!%|VA8>4.vש acY3pT֎'mF9Y1RUZpZ9;r@-gmdB>+];dj,d/qI.3B'K!q hx0d+N`S&? :WiWwJ*)eyHZsh  cMSxh_խq~wz-(A D}}؅*o8:Un،2EDӦ`3#[G\*JA#ԩ#gTFI"o ? ;&Th.B&'$[4tmC7N[ 1 hBӣܹ]R&!vi,-RPݷbojdt?,-KjH(ϗr '96%:GD*F&/˕6'sbr˴2jH:Qnv=aF8Ng1dž*,0<v(b-!ą+ނK0o1wٿ=Ah.Z$. F݅cMPriLOZjZjx#QLSd*vRE _ޜFµFTENeXϋXKAwt?;E"綖>~Z\olʩߨHZ/QͱfXGcwZumEP\%& ](c:0eA\ML]H#~BOu¨/w@+d$zT~jvfAƀ`Z^9k Uz9\]1姛|u6f>^2q K i9QFڔeF hVd ;I tƎ&j{ga|=bM> 2|y|# @Oh2aHYE5YәyX1-Pj pԂ좝NYr :ӻ"WxPwǧj LpzUN*/ YB3Di&pHZ7pJ`7Ju3hT8䬯Ϻ7O`U2cG}/({Hfg0!su BFijRϝwX!r %#;ک{ dB$F1ћ9J$tߕo%,_ɛi"/:ܜaI:%}+th!G0_w,_!YZn- ^OʱvAhGbm~+EzD!fԑNcEA٨l?d%b,L~&6!h`0:5$&=p0_n,Mk8xm]Y,SĨE'xÚsPRk#ɾXp3M3"`Bq'Tmax lkg9,аMxXۜQ eNg+cԠ@ԯ=^JFP%sxw<<f+5;Œ(ܺzbpUKnwW >3Ĩ`U|wJg%,tZ՞'jcg!}8+a6\뿿F>4:\`rLLj#,`D*q٧/۾) OxISUUA<ޒn3Z7)A8W;bR/`Z,\}J7kU>ekc йگe/0c%mqqC89֯Ylf  1wĄ)G%nZŦ5jg0> sKo_Tkul!F<ކj^K" FV24nuiFq2_fXB;O`Zqy)赞dx|ҧ"i%PAd6GxRYDW Oxʙyx&L+vTq!YjI?6j];3X9ZvѼnqClͩYWPyIPC"6zq oMl6XL$|!|u,[JWQcNixk$j5k-[^2$I;^w }= *\Ӓec!̓o(%[5(do zS 38\A'~ s]PV"W !Z3LHʚHZP\nϪr_8/z:-4dv*8cy\b_MOߘ|GlX$]FNAͮ'b->jM`«8 Lϕ kCk-q;c}:-K{ : I,I -H|pšopajy$wښ㯘͋QQb#g PR s)]Q't#(-.^ F( #le1f*ۓ #Z>9ߟZavr-Rw433'@I **Q\ a&LD1#Ub6C%BݛvV u(5Wp.FlN5kśBоu+~@ sZ0%dHH7*n2uzٿc0w{EpࣉofL}b9t 6fnz ӶM3C˔6:'f11mr&z7XB=tt>z0 (&7ZुL/JϪ̑g[ŽNP q Bml;=0ߋyeL11]f+2^H]=5NktotMӌML'kȊNxYP (%0箿z?Qn@i;y}+vX΍Uwmc__tщ5yǒ isMke-*-w!AaXX΄m@?LZ_CN=z)6ɏ$_B*vOgS})8Z Z8іuJtKk .l^ BWÅOՔ?kp.{ 2:7jWʀqp]_D+{iw܍>—"'aNjK%R\yƔ7Uq^n㎕agw ܾis]b/^_F.g52W> L\Jꏗur%{/z:hԌWv,l/F]FSh+3vCy*&6o^D6ZZ ֜J }xc(iHnMB: \h&X9vlYש/ڏjzN>R$9Fֻg->(NWyٷv;_wmæCM>lZmÄO Tġ< ij\fdDM$ܗNg-ɸz3,GtM?1Ns)l-@Q' svс dH1xwٵ{R1ӅxmM=l`n r6F1 +잌٤=ފ( 93F-=.U |N~/5jat‡Dc 3q9(?_lnC&mAԶ(!8EĘQ|x6P5%jp{\aqH3?)D=,6,%Ozv:>T$A& })T좣2Bj~GOـ MTUi)Z}wEU5yXe# F;"Qٲ2߂ws n*Y>L!r](tԷjQLL}dʀ&2X:2{JgoɉL ?jSbXTB~Nc&-K t#D BVC, -qbt\/6>Ўߩ,Gn`;l5.$+@fP9Ԛcvօ0߰ժ/ҳBd˪b,B0!L>ɖeMDdXj(v=N'D,5)1<|ʹʀ:&B/1t_( ɰr?8CBH#@*`$ %i#N+jΉ{+]aBd7.t߉!R -rZ 2D=t480Y^ͅo;1Iw/Olm?I)G&4l PS24yB,8AdkvEXq)^ͻV@NN㶊?3$:eiV^qĚ];z y5[*F(JWXmVR IIn,hg"pomP4͝4~;TXLZpf.0% 6]ϽuI?TDEݪIH ,ӾGA󰼤c@& {\m9јked'+C@)t^Y+QwI:*Ox7ǚos4pƋoɧQFQA;y`AEҚp-E$WhQ01XeV 3`}kС(J?VDTkn_W|\l?{Lq;M"q\*L %Ѻʪ0O- xhӥr6Z _ݨW¶pZ:3y14;N@Nv .{b<6hDekMU 0Ԩ]LJ*36v -.Va˝XlHzIP]-$s ozU=SWn4g) ]x,`lEe&n2>{ /e6DΐGl#*ő :RhMrK/ =r{&/xB&`ibQ6!LIL,wU֊55r-3Sh,LOc)%:ISyFS~<\p6G:9 C^Q 9jCg(2F)D&'h >}0gӘٝ=aka7.nh.O;tvړai%) cX>TC{F.H{rWQáE 9o7Cat#kU.pٵ?v]OB=QL1ԮN_N7*AF<.F~͍< KmXe|j]Dic4hY~=V:sxc`X!O5ߐlOyx:\sK@C/U̥jz#$Jd%t@?I%B`XCSm`=tN S2tb<11`y͓6m۩"k_}D;+HFڛuVXK;{W!^b,݈_;o\-Tz3QK+TD1-8~ZP$ ewE-B4k#J *(^ <"TgUe/@`f^ϝ/-#[e]L ء!5^/1%q^83]MdlTT@)y;67?ۺSRȇ]6],4 Ȁ94*1'~%n$ImgBlc_6p0p;xcJDnY3IP֥WR?R-}̝pj!)!@e+@Œ }[xӎ2pJP bfuCv Gv?QSPre7[wiiN5FiL6iw8# ϩD9F:6׮PfWʔglӓ}#mONnȺmJ/ȴ,W9f1Py4Mpࡹʩ %Յ-;ɦ7 Q*zkLTr ЋH@H D =T,TyN.+tT 4^!P`lSd% {/ڜa*[{\cSu&[CN/^H7$^{C0#\>ob@'0I{&ث oLcD2J$K;k(ݖ~p#h}Xj;m?[B>mBY*8[2u: ^I1bւEv  ^'%^ݺC4ZDiQO7v;$B KH29(&X3},\^ƛ j+=?`;Kh!C 2x^$ /V6SCѝ[ݍb7Oz!Fq> ǻ}&_ՏIQR$֢o*oEPZ%@F Z6$St7.*N:)H0C[1V@/K)Qgᓮ,=4=(>hc؏ 2׉@&C$VxY^*Ai\Ϸ}(ޣD6E/}F&ƅxQ7s0}zB$&(>:{HkfMĻcdV̂cI^3<{O#ܗB4}4ԉY?m@f fA力#ƌ0 4MHjBf=uRK~;qH6"i}**_:ȗ+"s+%*Y+7^1gyG{ge;NqR2tzKV m`+ַDwDCW-NHD!|FS+ 6 *:?ibFmOi Ih4$]HC ,("t?jI{#?_$-%4v6dwF #^K(*ER ΙwЈPQ 3X[@^MSYQ`EN D1S"=qۮ]17_EyHq~C1ȼ5> _,%!rW%Dx01f;qs첻qxϑ?Q[:{-qQTLQzc:C,<Ж|^ɣ15᯹KmK &Wn0Ocuúvh&6^|zv"-$8vj \ l\GA~v<^q Ǭ4g_Vү'H[б<9u8iUW/ bۋ|:B}gCsN7~*"J܂=8a|3sThD!bP-rya/@yXYi(.y<"a"F쁟?9K5F )YV`r LO!Ta~֭79bszg Y7NuA1Ư,b?DI$,Q.Czs73.=@1`GOϴ'١>vNAW6_U_[K+Tݢ30hܖðd';;s e3*|vnXg^>KD/#p*YEH:LϽ?RscFsw!xd'F:,*=([L]B!,pVnЈ"G1jn84Qք?D H8C^'^啂/H;vK/3R6ERo?yUņvGÞ(_QAҘ y͑K30mㄾ\f fI!:B;v PMsK7b0ˊ PjO|kB6g;UD>9TS!AFٓ;h7ʙVz(Fb⳪Q=1Ks l +[94:{0)HANnUx:) $lzG̦iƒB0Un)U䳓<6|"?rLYO-$pmKمL#=:_y%4WFQ-c ;ΦXGQ[x@@:Ǫ  H<66%C6X$Ac2M[\-G,rOK R))f "wE~Z:w>|r}MaGm*XB7kf/7 Mw8.io B]h9Vhо&ًei]ϙg\zSEP] _.Qfa4v%鐫xCPF%yZ <$3#B6|>S?]̽TO& q5f ⼙0̺d(юzYLCH-`sZ(Iu]hq᳜:NpB'I,R/6*Tπv,Xh'ѳz7 "Sa5ҲcvOVz(ȗ7+W0qV0ؘW̓7x 9nnK*[ev2,ѲV_aJ]D:4,%XBN)նGdri*ӑ^bxa)khqRak3F{Tf-\< d;S &/KOqH5 n%+nf"U!oO!?udKm؇`92d*?w?Axd,wˈYŵqerW) ؃t# D}bp19cf`C^IC6nU/E-*Yh&֚ϑF4# 'O\SN( {&s;lN) JK'a(ۦUXO P{\fGTWT7@NShzn#SGBɃЋrg/*Z/t6-lA2vw@Cz'W^KN2x/_NL6^AtmIKwgڄ}|q=եAC1r(ٱ++VkQ8kv,.1'4k[㗄|ֻIsGG: OwِrI erD]-l'~UG"@E?pü F^DܞRk=fT҃˫  Y)yaި WHXa!ݻpq {XRč>U}lhz3Yjh2rQٻw.l.7ZT:TzECɱ6ij{Y"U(|IV+글uXE`$=ꆽ 4|%,5[Egg[o cAij,G., hǔw[`t\! 208Wk0K@ub6*Ix\^ otOYjSmo ݮFÉӱJ~:CO s.٫Kz/s&RHT61b_'Ὺd"E!ICn7EtY鳖 cRaw{렷h}iS>$DYR2ڌx;;L-[;Qm ng.3 /Ti8s}-]Hr2?#:FO>/yq*x`}Hlԕl;V|&]}ЌdR4U-lFtiUv虪hn:>57θi5NW> ,~6;/.$V:e%sRŅ\fO!fТ&|hC _!,VZ 7wkYGr$^fXTWxe1Zn/^!(YJQhp2HQt0Di}wKG@vʔ?3kD2&X:6SsüMW<[ qQF~J_G7rq-AlHp*Mt;R+*H !EWzZT@Ll0SkCb(M>Cc$:ed.a1ܓ7z3wqA>ʾ猁Qd_ @Eۥ ](eQD")o#@{Yt3 nO &WY* IUJUV$':̹]~VT6L&.;]Kh鿚gȱ_6xWlE T.SWBpVvט7W=Uܳkw,Aŏ`$ $ckEpqjo5,ufkǭ =g%X֋`n]-EŁ7}]ݬϖ= Jjf!Y o`էK=s#+!ݷv j~?" 8 Z3g40F :/MГ .W2ޒ()6; yϱAc僿>𘜻5$ev>Cۿd^`!4ŀ=)Bmf:N-9/EB!`uAE-!sU:sv2/@zxjy B&tgNΨS(Q.جvγnA0P+tz !`!`:-tM8  8!!`/jM=S߳;#Dh~ڦXHߢA-I ;"HTܒE]F@;[ # c{!`!`A4IAlL;キm]~,2@K(Ȗ)lZIJu:9M>iQPRfA"A+=)f mG6ͯ}Oi=tbo972q"k"T旜˜Q)XRfvPl*2q1>7e۬JbieB"@y\T2'V|Ss[P,ԃKB0RKoB1@ٷ̓ U"$5:/%84j0l\Xm7XeʽBBXo]s%+qk CWmכxz9~t6,8ȍӜex̜̋}Y)o /S'z>bռ J-)}BZTl0覀!`!`^ARE-9Mˢ-?IݠTf̙Pp P.t;P5> K4 а9!`<qtMwn0( wE !`!`8sjM/2 =M\Fzq!`AxIAlLf`D.fkm"PFPΪ-CFcn.{6}ټ¼B,1ӏre.- e+5l(C%DyDhD*VS7(E(->SBhĊw)"mGs-r2ʀc5e X x!`!`VAE-5J Fƭ&3P;^: c1%%oՠd 9!`!`8jM/2 =M\Fzq!`!`AIAlLm t_"n, ̢A(vFu2ܼ9Nz}?HSG"yRicN4~X)-g6 6}yaM y§}C֒'6 t>{:ZpP{C~?j#~ Eq`,2l vBD0+ˋ,u/Ǫq٣uֺ4RGJO,V{u;@80RȽA.!`!`GAE-#c ?L@ b5$q7=  !`?tM;^u蝣ߘe lp]!`!`<jM m0˺nz}H !`!`AIAlLixHBπsQ'6WW5J ?XH/u(G([lt#rC]mj-`}gȱ{m W 8[W$ $"LS?!`;AE-𼞀x@vl*p!`!`:tM8  8 !`9jM4#ej!`!`AIAlLJk^#,b/xI ɳqn#ʰ?yJ/o'N-##73^ͿYJ}eC/8]1H}%h~Ĭ1o @i\:!`=AE-𼞁͝QF@ />=RMy!`!`:-tM8  8!!`9/jM4#ej!`!`A4IAlL;he(T9u)w /\ѽrr ?.4+a4  C؎+i∩Nu@^X`3d2?Z7}98Ccw1%A&MRG"$Q!`!`**\~yDvl malF;.4}~ >_B Ta5L/TlZb{#Q\[@y_"M47Qʧ5Mۧ:-X]%[xcO35KYev޾؀0uFVPaN*Y뀇3w  trhۏ }&Q^~2!`!`IAE-{Y6c3T>9kq!`:tM8  8!!`!`8jM =M\Fzq!`!`AIAlLmfW,xba! -B(˹KG`\۪&o㱀yqQ4I#e$#csq\kUO.y7{BG.:MJ_߱4H(D<6.CjA}-t䏼 Q|-~͙ o&ins!Z A-ׄhSGs,!aaXGd&Hv؆OOhš䫸mZZ<شMO 蓋g[R'Di9c-y QWf:ŦMxu4Ď/g}7N* 0:"MԲ`%.cE^qhSG78؏Ϸ6ᲅ1u/;q7dfdu-_#z5ݽ~<%LD=Lt m2ҏXukۉN:Ue<4dtշ kො(Rn;,-- l3M-8!p/V 2uIZfX=>߆cM7Cb7!`AE-t̑/d!N`h$π0|9I{OSt>Nj7\/bfeqa|6w#H M8*&>ͯKc/ XRa!`!`@tMtxO}Q zx)`u 0v!`EjM\ߧl3ߟa ߯ l!`!`AIAlLpatxtW%\2^SHq|y zu#kn=&vzyQP i5¡",j;eDV ;}7G6Q.No#afbK\ߩa^P,€:T厠+{/F5ŭ;%t8An=G!`WAE-^xP$̰G*#P,BK"=Q$,BzY5|`YP!`!`4=tMs !`!`4?jM0!!`A$IAlL֬r+o3+=Va;nvʤ\悥qL4'qEoF1S{5/<%5y{ S)*h+"|Hw++PFr>m5d"z*;9^8;Ӿ͏Y%֝tV LuHR dJW[!`!`TABE-OEx O`qo&@tp(a-@!`4atM0 !`!`4cjM0!!`AhIAlL.p5u'[;Q_BK;<2wǻFFe&;` +4ix&5+4{7b_oma<̵%G){Eݓkʿg{OZU~ª;0M!oRArezC=m`i#tFkKHmf`!`Lavc57.107.100B 8NAE-zV@5yqX/nJ~N,SU.@:!`4tM0!!`!`5jM9%(<`!`!`AIAlLfOQŊ%F1;y*Ș%8yŁsY |[?'YE>Ti4$TwUdNELNcWί=P=i ˢhXƴtպEo"1|a|V * ek3)5=,?%8]x5j#c0?}eLo3QߤE!`AE-zV@(~0=bn/FXBBsTx Uz^ vKKX/!<ۜkK/=#:)\[\b减ZvK|`C:=ӗr%bx˝GT2}5MImp"l5l4]GS%!`!`PtM]yF5C]Zj6?=j1Y@Bð!`jMDj*PF/] \4Mhp,WٞSjfUT]۪-%+fNjUX։ԦGRxt7`~ N- t%~!`!` 4AIAlLLZ4s|wiP4q@gM{*D/n(t߲{(GOB#@5IA6@v7Hr%KZ'"9"n=c(OSЧGЪ9u_ϩ ulcF#"?op#I-(ݢ^.} rn'zeZ~]kX1Rw6XΐM)R /[ehka}0/9P_#sd^9ܬ30=ކeP"܀Jm8ǙL}ϿFnO.!lsQZ.VJ{F|XkNd)kA/lKB!vQb=S -W0s_GK; ѵ?CN,u_`6gra~l!ȆP k[‘ފiUiX4%(L5BzORw+l}Fe~ȸl.ڶ0N`іz`߱+ D[,op{ςJyCkk\T؇PNG:<a=o> P"ajZ|SNSngݡ={>hXU.hԯZ : ?p76R7Dz3NENQ@l! c zO8 ((|߰5qȟ- [SХg-nHUK17Ɩ Zz *6cʲ>|Dy)S46m8sS4B7YZ,k,859Q6eT{eЧ>1I Q)GZzo?D:-\є0 U Ya@az?n0 ھN w IdzF[CmrRS$|WLMқ]6B%gd1J!Cv4ۊU NRGx+4}>wԨ-`]p jI;0d1.7<%! Mwk$.9H֕E8 +f<G9r@f>9+^}؁--` A%qKAdq,cMz#|6Ʈ9Kyʏw? u6}k*W.mj/|(6ɰE+'Z-G`S)3-UbS΁UHKguJv@~wVڱRx{}2/`5Y>UaXoRM4X @7"5܊/a5}y5Y6z >j䡶 (Ikh~ΟG AWa&b*wR$}0 z3&ugZ*]?űݴ!t޷x8,Koˣ!^0ҪthLRS q TykqsZj$i}tQ`=}B [M@z).TDFf/MV2ڥ|aNf测]+Fu 5a}cyFgI˲~ꅆ"lM$~jh)jB~ @ю]#z_,Q)wqE'B| 5 ^H#D>%qnLHC!|'1*,.4.G$kmU9LJE.*?\ts,Ĩ4Gsty非f }E,뤅q9Vƽx(pAd/dC Sj@j|ߊ~ %+ͰȞ;aCH9CGɳpkg+CysS{"0\bܝ<{3+>y'R<5?t}nрsJh~uQD"ebChcFG=7DxB @1URB0iTDBOV=>OT^mhdIwo(mL/Hz$6&<gUkW^Vmwki|a*#Q=Yy,r2hyL?aN>8gP&jA8Vc!3/8lJD'(ܝgz-`RY\r';7%m`R:s`!` jMIp&@J}\/#LAR)Zk~?GbӇդt޽yf6uS5BE*Yv\kLB0D &:mHyIfT-M-Ek`yR5s3@‡w_&AU&RH+d!z8%8}q zV "iTqF1i ➹B{F7Q|Ia!=Γu_Ӱ og&F_lBhهRZxz/W3`er1D;JQK[=8^=#b:HaJ,7g+_Th͋•ty7wCvhey$.~8n8xz8.Czn]>EDGW0U mg(Nf("BM& Ǟ G_.\ eO{B@/J(x#b' vL!e4EŴ  =(a}8:K.}fJHvXz9S3vSx)$QOrIPZ}!-mcO&*Kbq9O9嗣S9y`^|Z玂䒹#`%Kл~#f5jL~.e{FWyF Rsxș%)r^շ]#?'IMԙf?VS+YT+&Wsb\Wۏmeq"@mj@IkNJzr4di8H QQ0!:x5-*sF$OzXY(v.҃|bɷ5>,~LJq XI-Cf`,[-cnIs`AC!~zUȲB2uLIzWg;UJ1F8jOhl/n4ZwەxRHUSP灞P&ؕ-̰]w=DDG/ fbZXᤩ:7}Hл$S05oK#D]Z7y6cXR*ޱ5D~3>>0u$<)Zks?n}6280AVɁL,y]Qڰ b# {gU#ZY ]\xˀkYꬳa+,& 8OʂZ-iW1iƣ.Xe+O9s@QQ̢"qÂuԠ}|h# dm> |̟f J)wtv?+y HPXP`ScO-ɛbU" @ŝJ n6puXMbN;ГQ&3DFj.^_-;(99JNahp86Y| 0-S!zH)LV."=vn! ; =.'=J:Avה?~hhP?>N~—w.[A =MLqHPEG?goNINtK*᠌P@Ӗ\g[{"@,W~D\q2wcNu vp3Tqgpl"ao7 #.$JB|r.{>g>YVo__Yzͼ8)5`{z>h[M{=KRGrro}⮉@6ٳ]ٚj)dєfb m UT])sMk:q0(T3q7HhRk ~]Q,e&$[= ef6(K<5WҤAH?&m!ߚ=KHxI 1tOՓd_Mޏp׊o {͔ٷ $6 Ctv" %@~򿘍#H!|x/YųSg Y_ҀzMK KK9㐌-n_ToMߋ!`!`%A/E4M/r_ssz٨~utgxLq4,k,0))!Bᦤڷ|RRw1>6T7?H :wz024CC} zBZ-Q!LHȴ)7ʏ ʳaF4; gb߹ 8=-{pltYHn5Ҫ ^{'`;čմ(X5V]rN u"`F@Q r%xg=ZH;`G& e7e7U%4p ܦ !+撑t'w(=kCH8s;8X\ǪU092p1fl=T_Ugz2!F)>"Ƒ}%#7^K(l­ tK"{Okz |E,!I%9o* u蒝3I[@;60V3 3!`iPjMQ m= HhM]ye8S1zr~*f0 :)r+z(Qj2{K k+w gᤑ*U`-DBbE[=|2PK>2pROa.3A,*$FIp~>6;@>voMoRԵӜ7h"5W˓F 4H}WCY=}n3?+ZpV$"y%#NWH٣[\rP!+y=ڵi:m cyjun~1'#6LB|^?'g95r/*7;;@UjXDMܮaf 7x9l4ZL~.FaZ 4ţ~P -#7Fݶlґ -B"†q&hMCU]nG yh jNXNJ$0Zzr Ռ 3ޞO9Gx?h4vjج\yErp>R|*V*G`]nn.A(_%~C~pȠoMߙ@aiT $Ml\E y nmoOv>pPPAG-[L7xhxxf7I+wOjOXFjksE+,Ep%s!ttܷ_[sjcnf۲iՎYZ.;JvxSLޒU6`tFDDs:9zSŦg/@6%H% cgRF:vHbU >;8’ѥjGpH#%k~5NMt_LoW{tLj^p%cYGh [twX%!F I r/}o> t9ګiM4YwB;8>Oqob&ף>()D44W}b¸oPG) 3G"%ޔG}12t#/8JĬcuAS.?gB|J"js"zr~e}%=z,;_wj1{$3&\BeSdhz %~3r4H 22'%|뮠 n8@itHsVAb9/Qw$]N\{ I?4ՙ\!py^I!lPRB,:m.ܢrVb2)xYhXUsQrRb}ؽС 7VD^D]mYf(Q(ؘu+M4`JNm1f屺#{z]JB%z =KuvN"*|OI@︓Jzw0@&NJe>〤"!BHq aZb?d:m N*njFt.F=fhs= Ed+4b@GhGXy2sB.k:rrFif[Dl"$-ŗL>{f[T҇qe(l@3n<>*.9M8P{SJRiM_Ƀ 9, &X_0AV`#])Erf AZRJL\<@D#Ϝmz˵h{6XAl4c3J_-Eڌ^& =fT>l;xwդ ڞ$V#~USOpe9W 4-k98BDcEjYTaǟ⭕ ";`HXcV a!`AsE-zV@5+[b9MɥC`P:V5 bF¸haeal%K 6+y>^¥g|ю}f_JӃ!83+ÍJxZlOǽCzTV" tXhvTĕ)kNkCn!ySTe%xkL9Wd ,rZ)=@*Bl)Ո3rIe(:0q#1 CBڶF~Sd;NƖa*O=dQXawHs`j3S?hQ%^So1@9!d^=gP+~$z&gź0I( Y-r;/j˛yu G3\:P !!`!`tMo|U39deg0Y46]9(ݠIjvS2J2˧9S< >;⊤m B&'@eu+1xxᛏ"FMFR+;NH!`jMx=ёـsTQ=Fn_~%9ÝlW-S{CYa}}Ƭ }NTiI ȱP&ݹ?<޲v}2JToq 2!`!` AIAlLh dR{&IFd 'dF7ylvown8abjnq'L-oSj*` ;{?c gH Mũ74+b{_8?1{Z65 wg q ^鞧@{;58D#!Rqop?Szƫޒ7Vt|~ˋaP&0QYAUrL\}~EoDa&oӱvp6 %>U&" ?C'Ee b:e?0gnG$FMtno}5Z~!U"B<~Q@ZHP;l1Qq/m-|W-Jh[7խQ? †ٖt!Rrn&zO6"؅='{ jzQ hyqKl[E<u}`z&/#>!ÜlZSRV)7q,q!d:N̤Iñ^V#};їDkeQ) S ]V&B3H|t>EO{3݄/P>@_jedH#ņ)ZIO2PsyS)YoYX,n8vIyM͟}2 / ڧ.=O U"y!"yjO/U#]CDNr*USG(x)3.QĴWd70c#s&RY%Zs D]ba0dЩa]NWv>rdE~0pA+@-&KlN^7cC1znFsdVt4 s坬2)C4ڑ-t}k QXqI,afhZF(o_N8BPXA%Ő5ޭw "Uګ?^1a&+ivLs|fVK"^[ґA.8Į = >42:NǏ'<|NM|0ȇ] |Jm+q<&n7 2E(g% m,ta%T`SoY8A{)FY@Q49e?%N3ypꤕ?5  ^mej ۽8S&MA]Sm6Tݒm.ٲ`@)ͳп=㞽LK|= Tx Թ#ѧH:DX);v&i';&39ۖ=%UތGD8}j$RcDe3*%N3n%` }şCGa="4I{GTPT2w)FԓI|&_aXVJ:S#v6W@rۉqNn :&2,@os6?A*ۻ&>Ђ<7fPFZs<-UAVmxUœ>2Ԁ9/.hzPӲLɩkNykƖâ~d*mRV*)u"=8uaEOк@"^?_SJ ]W4ҵ*8zc-@)'/|ZjQ&"Lgotٻ*P;@]=᩻VzZSM zOk.te43w#r7}~= oSlp &Z5lMْ3(Ll7X *r]aw[zewzlА5fE*ldڨNtM6 .o5Ń]T\]0ItæJ0_vrR~5Ӥ(9a?Ő֓b5>C/ъ//zm@5n !`yAE-zV@5ueQ>ɒLuܬ67Bq?su&4JLe11%u}-/ncl% NTǥ(65RjC]S-=[4;!Wm֣YXBrZH.8[Cv?w J&&G+ ;SgP*'$HYŔp>o#n&p5ؼc kȵUGr"z|ܰQl&bŃk**$V粅{xbNHZJʈ[X2OZ9skƜ LD{0!`dAIAlLdG@~vy щ[g[Y;F.Fݰֈ{." Ws{%-Zt^ #۬JSpmsEM96p9= )S[B7@yE(`e8"ICwF'OCh̶ ~:K|U1Lcl$ bmÙ{d>^8ymxkG h:RtrQf kW4jԫi td1ǢgpgyGLpf|&\]c9A0hg]IRA?ZbSaU,TËY8[,Zz- ^[wӎCuP% 㛨"v{VvkJ:pR p0 "MӣMGiO*_@Ws'Df2{MBat&=o U+cgG%9vNQj~%_\jvTDjlG[.ꇻZMΝ U?MYzHvX:Y'/>L,|Cn JMXQlD_L]˧lػaP0/e@lc@cUd7^&{[+ݣH+X$̭{0ӧZ5vQ[BepJv,*i*i=6 Q;%uC%%VajAOTIH)*D׵ Es~gzK!q߰]t@cw0B>fv%l^2噪}-~լd4Ԡ-S~srͽ6JQ{V96h]B\TMZyPbbiOb~>tђ_Z! wyyx@b-:~=2WTV% %h]轐u Ʈ#Mu|—mXxBA%1!KS=RI o{{@ xw9s)sVkaO>3 ]='jr[7)8Y1lF> 0QXnUsjqIC }FS3=yoV7u}o֦T$WABQ(qy(68?s=TY~8Mz1⫞ [ٔPJ0>h@"15hnl w@;xQ#aYϷztZwԯW'F Itj.}%/E^@ ΕK* MY$<5;Ln8p?M_ڌ͝؅k>?|y}ۘ ۞|DEcB<Ӄ= *0֍.JT~p#ts]F]]v¸b5na.pD̎K,־[@\oWS˒j273}Ogm3hpQ+I+gs]F]/=~[KON`KS'Zp\"tg 7! 1D'16GOKB=zQ[$~ة|疸Jy-N|̡TfBsc]p.S Z"Xr_ c JƦ'r,ZE@XZ1;xAmpa&OW[>- ºEG"̕Z#J\1Uk偭 {j?U! *bC`-h5z{ĉYKݣËQ ]K\K,sóAo~VWO]LalI%ɣި8[ ȗ=x3H,O'K[ZAxHr5@߆hy!b6S5\ ò -iN{#>2%P)!Չe@ X(71_Ksӛ>/(tȗF]gz.<iiQ,iDG('>=\i+AL Bz0|cm. C1TS,1O 9 /F E/>O%j( m,ڱiuUU3 !AxAڲLPfhƒ|Q"1yƆ221vS hiHg1U;ig\?q fV6;(Tlud$tպ*\zƁ2.f>)v|9< l?9|}ړK |4($ CpwZ +7o2I[zj n>>c0RZ5,n"8$O]$S~ٞ&h:7,R(bn-^Vfը;{$ Jw~7f>a@U2-M$@)տ}E12 Sa^$Xc$ڌF[Q1{iKټDv˟.,ܯy՞z?gFfbb\Wphp (othآ S+Q! #_'wI_@ %z+ srLbi>$,L~8yjSWJV {KϴԖFtS~z[ V[y*xEN "v4Րfϴ85d3A䕲."/Zt%&Otxcʆ*&nxyL]ytJJ+ {Yڪ,t4)pweT麞HHLӶ}*QcM;΂i6.ǯ^ciԅ98 }$۸o}7P~8Lu9Jq(-jo߱Y##&`yoo?g!2mN uK!Bp>2j0G»oQ6dGpx^58FzX? jםfТCA2%ޝ^ ^bMP/\q>2Ѡ VYXЮBp=J׫N >tg ͮx0'bVRwh7ࢨDSy57L15G،ıP@c(#PBw]ޭP"X-G\(O;hgt.! ވ*M.IP{>dzбKqs湾aVv&s>?vBu/n[o!C[÷Lt`wp,@?aw,bq~.Xu }:#K_4Dޘ5}ՂϘ='Bj7u eڍ:}?c k!, ӝ U,OrR;>E|Sx{.(wqZ+$^?'MiwcGܡc\)ȠL8/eӎ|RYA ϥuP~TC4`mH񵊈>MpO:PANH jL~1-ߧF|Qub…?Hu :n|[qp7tMe;crz41t qF8s/ؤ+יG[ d_%'|Ҧȡ=5oA2*P(1\UI-׻ ;ڤbhX4ns';UFD^yHwZ3m&{yc-b%=mFAEj8g¹ag§<-D1޻:CHTLRu1 b'c]ٔd7h7H4>l[4DS5_4 @GFDm]̄99xxK6P9O,f,kQbxZG6T,,qh\?J0]~j"ʲ j/>Y!pLAoTukI2p 6>}O\v. -VӰeT tfCUE`zqŵ\ex}]mUpK:f$x, ;>䭥p8'^;M` x=6LSesǫɧ8V U AuS;?h~Z3H1]cX%qlJ`U*Y|\# -(#ZEq%I5r b据ropy 4ۿ*?kRE1͑ߊK0/ Nc`$48JL_7]-" 0v:Fz'wQ 8lC(lhu9\_#Aiw}U6aVO̼XxoiWA-4}I>15UD%69CU+%}3*A:gH//uCj?cN؁0lx΂ W{dϰXR^Qq;0^ $JmN*9 7֡2)j:]2EX3vbr腂~8]~hEtCiY3s? 1w9Tt1鬌 $XC; om/5gEtSϣfWM;]Kdaܠ0]>bg/ )|YW >Kp֮|9Z,'\r^DA?w{gLX-\Poù^^fUϼu;#>J4kwVT_.soom'W6 Q]]U\pVHۗ8)) :.l/xP#$x7J [k-y9?:! G넧LcoCq^ Bu>[;rራgju&qѥcȴe[ޏ:v~M/6p9j.K FsGHI;>*.}@[ŕymsPN 11FUaSX+UoA:6/ـUڥ0vRmة=اKJͧż *6lcG`|WTCf6H+x"3r);٦BCsra2ƮȱmB6Tf;&RF*0ǣÈHcY-( 2~0kcg=GPxpo5*P5{ҕK(gZWj)Kk-2pi!G$JP=e~~0=l ,o_eX}f2w ׀X/G&Ӊ)R;z#Vgyb-C48sHȕtdPɩ9p*ZzM'fiI.ۇ_Ld^ī#|6L7c͚Ofe]@u}\"I#BzPN4<-KOW0Ƕ~a>6,' ^HsT95Hn\tחߗ5 (^wjx^ yRڵV8ھƕ\[oJBI¾>իf!=C"Ȁ=MNsq} D)H[ڑo ^)2G:Ynt;u`rE2`y~z b!!%_orL2I5X2E_8dVB&_g%BOC Fn} Y @4L61(}}H.VZY.țqek`x?RM~Y,:OVo9S@)ϟ0GxzZ\9-lwXz ē2'{:[@ 3y!"SMV՟xvzwBm&TIg6"0Q%)hT$M8gXj+Z!@fЗi3vG|w!}~07pjgSPF V5'QnYG?1Yna@$gNfkNPh-8A[Z$1mEY z"e;*5A"%/] 5ҁ q@rҶh&*r  PR? a_6#`B8 ei1p$R _&kvڊ`T q(6;c@!C3D$.7W,{Wۉ].-t\ .mčYeтY;^)ΣHB*bVq)-1/4| }ّZy0+Ugz˸f?ATe LlH /\啘p~8V 9_󲩗;mx/,%^*Kȍ:aD A@nX"M'ph^P&;}MUT{ |E΃(۝唨2#ɲzp+ JeT ~|C|tt+r[pvugjtiPᆦcQgm 4LZw_ؖÚo9\"qճnA^W'r'ˊt9=cb]`ԑ4@98= 7z9%~;NJ9Dpy=L7mԊuYkNjۣ{~keރQ0A@7uo$)YDԌphRQ9=Iwܶ@MbpЃtN]HDn!פFB5ҙ ynLȞ|Ўg3ŧ"UuKֳyJ"Aq8ףxR΢|zBIk#$& ͣNrAbYs/7Y9`rК8fqu%7F;bDCKC|T˸\P W_ti- Z&VR粜Y[Y-p 1)X/ _> s#0)ĵV2<'^}KFZ2`*%7|\cf7E+8C`PDOqsA}&Դyu(6הfVvkaX{] Lu YH pH=ìSHj|W!oP!niIk ObێHaELb?e\wg{qϓUv)٣NՌya$/M,?;ΥY#4p*׽J e7U9CYz_LW!+0nЁҭN- !E0w$yedУߑS }C@%atKV`՟M}1ܮUjKqPۡ=rОR}f9nXEXU*VVuЖz@bv|>6S'^,V-iȓk΢&Xr)%ŘDj:f"8oC6ѝm#Z0-X"_;Wk4'pF\}hwHY+P@U!-{9qk}M;Gu|FųTb61怑{G2Tm|zF;ܞ"> @8鄂q Pm1,"?08)?P:+K _$! x@z-~c e^9jޥt,XN;**5t7#H޽]+5pݥךeC!pA<0ܪ1Jۡ5*z|MtU Hd׬?$@fxID^;Ҿjm `|ߑ{U^Fr7#_ŝjæjb x՘6j@F d >CPu%BK])7ƕ"3P̻R%UZeqwHHzoX("Z;0D 'e;#[4H2WhxeOq_7%o6 L\t˂iR,M)"ǯ<7f6"F>tcD/_,[=gw{L`G7J9dȜT=_"hWxua*իǒi{{~=Ħ$#&oeK[z>% -Ӄq-![X~41w-2&SZ8}ަ=O6o7{ޚFq R #oՏ9Yw؁ܟ.)OzZ`+~͍;um  p}dt?:^Kt}*RZQ0PpS~K.އbtCP-$,3"b6Z،} MxɅ`wε0ͻ7Yɬf.ve0cuvxw0,B&yÂ-=HIf/{ -7@Թbr]IsrkAKQb%%΋~бm ? V{pq2X*+_ &1@XN<ٲe3bM %0\}.D]K#*`۫h)byF5HY,Wr"vPZIٮfa588;beB霱A<.%gsC2v)G{H8%3#(>TvM|h1t&D(wRWCEf[Hkk>5 ^_aH@'=Pd50k7 RqKOmU>`{=F-mhĽcLlFz0)ܿtݏ m'%34!I"1/X_w 3汓ҙ'XMh%+o֠Er'?%!śj)ax<2;HE}}7b~5I9ԭ3eù 7Ϧ?/֠* !°l(f; }2^(fh{i&K$K̑Ho7S]g]UEp:ya\ey*,(ەP$bW0 wB( Di_(!LI;gZ0dEZהb<e>Rߊ54uYxW2ASSZ1vޤG b~TPc1 ;B"\t ɉe@(&*Ko8l:5urE؍sq?zo3J*U5f/g /H1szbƘ}M)*5i}3=\SMc7x(]ǚ :oT0wx` N;UR06Xbrsfӽb *Dڑ)ͦKSgtZIǴ[ơDjv:5cDBdڏ2νp3]K˾ڴ.=6cc'~:{ա"U3'r%^ئ:JVik C|¢]z]EXʦ Y2'P\Sq :oUP(H¾-U!ʙ:0y>S=⁨ך_܁S6pq B0. %Qgz^aj?"L]282HɭPefVZ l=΍0ٹ$M'L>ͲunwYrrMЛ WЊ{C0l~ Z> #/R;I#"U) ܝɟftθ­EHQ~D*59\'Bk :DQW۷Vp` Kn!;)mEoN685<m愠'Dߜ$ϋ ^RJozanݚǂBGfUY̶iثVZn'H/DWGׁhcBIC!: bЏ PÈذ(L|=0]8L4=3qp}=6 z9lJdЬ7/ 73lcQOf{+p.VVM!T61m`b40e{-c9fiz,FZ32y&NDDXi>JyG*ȏt CA~R Q >[uV^"WUY[r1\=pO&K@^[m˃"5.;c ۄ 82᪱4P56?fgˊ6xQGO?/ċ>_֊UP hxvq+G S㧟GaSSͬf=?AW䙍᥾<&1߳ ҡp9؏` &S@\~*? G@9^v+;Lg~K&dI`P0˜ G8:2٘`]^/M WVخ5T~Ixi{5?$*0`J)a-ViaYyR=-qO)^Qʟr%rRwDHR2lA;ⷣv%v;ݯ0ǹ IXګ|'ߛҽ1Y %ɛ|}+Ni(4>`fb0\AW2]Z~/|XA,#%Pv3[a8!Umnw( C{{K. p kO<.X3PMjD1b:S*V6f08[%kpG1Nm:)To2-6_e>\aZJCOtΞa3Qv5fKUC[.NҎ&*ksy]CiBϊG [k GnVޓ[Wurӵ*]|XPAkڼHqfK$3CC׭=z!j(t)Zz W7Wȋ@1yf@f5/R_g#ͥO'AlMg{5!x?Q3$EhK_4斈etoS%z4ÿؽ$V2^8 $I:bIzV<9,D%Exs"7hSm$+J֩y5USPRQmi̹6DY *a'ۅwhwQ}W#Y|5'Ĺ㤎ju8M[bX0y"e_LK# Fyٔ-X=&h(NA:~7Z.w{ӈf?nlzf6>˴ 2'y>++%T#X5vRK{ >J-$(,/#y(oN1Da*w2/.`:6(O)˂~ =tn:0'ר~_)^=9f|>$&Jt@EINZ>5 y\:тX'x9fP?!v{j ;'!=Aڀ3-1\;xaXz?ڛd|4gӻؙzwJ%G3C0b Hn| -I [Y]NJ"6]LLOC1Pe,ljiԳe* |gSIGs9aII  _Z e+`62(eai8]NrbMZ31kz.u (0Wx8W!ث(i^SrFa0avS>7T S?1wx(7wyv $&+b8_EA~HJ ]=ݢ@ˈuX&`M&$E=>? :]8b?dS.z+z@ZS~[E2k|\ɺeJtc:.nyIT`ֆP&@g.iT#]QVwojOq|ϰf o߿!Za0O*wK+y8\v`sWla7P 8Lyn<;!>0/T]K"Q9p_pdR0)'2`iHv 9`||^8,+O|S[oR[B6-I<2Pm'"FH yBRKOnq{5OM2N- #0JSsNZ%̾".k2*4Գ`{|kz(fIs%oͱRh[Eh5G a<ϥ(逦h'=tTfZNWEwaX\xw^Z[S:hU*v,̄q 3n~JLG< b`L',pދ4s\ֆ:eNPfp.0hrOo KlG/얡s8(#89SXV2@@``06f E۪yu#rm]o\iF˵8F*]n]91.W5pȝDU O-R`~ 2yAXC~#jnKr:ud4$3G]e6Q s@'qzbw{_@ka&k[zDћ!T.VzVTWOW\Kz&z &;C{Fː4PAWci+Ɇ;شnDL*H&!z3xgg-0x#(}_;x"V0*PwfA $\qkP5; [AS6o}>U }!Hbz9z2vJ+EW< L!4z^"00si D/3ݶkVAϡ|h5_*ۤkFXGQKv3Q |dG>'?$iE}.vFbXǟ_-A}W H6 l;scІ;_lu+PI5:o@𽊙SWH/%Mdet/t =;lPB޾\^ bt $dNC8DIaje !{*R:! fz91yvU77._ZQ4=LV!0Q0ڠ |քMǥ%2Ъ7ڽ;{c1<~TL%(zw bݕS-vyҏG4\ɭ:j(Jj[v:/t,"IH8]l&*lI#I;>V:6vm3&U1M$a!,(\oٗ )ÊE ?7I3ZwQ 6s-p <} Pt0~͈mNO/%s9j->y|96"ޛ5&qJLy%6TJh޸,㼨 ~6o{x\^(3?8݌(o\ x ١ꇎRC3r|Kwԣ6tnO֪Ȋ9 9_##ߖjynnewt)*(7:ԍ%H9|^E7e]8C/b*HOsQí ?F(A2G֫764kx %>cB3m88R1$1:I|Vl,8f50U\;L(Qn%[A}</ܩyb^-+Zn폁N,!bfYt0YˠtlE4B  |r.gfۥgL~Uz0]Q!n?ьf9 .yBlD"L49E:4:`UǢͪկ%ر 'oB_4b,v /p j9>?ii;l3PfPP2bԿ~S;D9Od1i3U-x-U~kc NsPjp:$TPE 6 ?!-12U;ez(}ID3޽s(Vp >-YŅ3mD+êa%(gBkAz/MYRU5I_°VIڠaL嵐m 괣C|_Pt'uu}=G .Y>F&d5E+]2jBj6">^㔠cSY"3.WȚG[[Ww32LU,P#O׷h'+_c ̀\hjZUr.VО]F }vUy;^&U+Qh,騺w{*mo!a)JHdquX;e3Dv3XIbc-M5bꍅc߃ғؙFE/ 2x<Mܥt٬0HSfZ2r Ztsw8,) `1$[}T: #{y Gao]Tl)l]XJx {5ߢikLdeCKaO*%SQ-;B1DڅCS.KpAl`-QOL`x!COɆ_*3d}ax9s- =!3 9,Ka da3ތ\i:v 0It*_šr?v و}u3=焥.+)0/ i8r-#갇͔Ū(gVeud\jLyhb*ImuVP!%x Э|5?0".#=iYEh""$ } 40O! 6%Qmk!t'$rǞVGeks ۬bf< x{+g6~,z沮ݚ6h5ơ_{`V&/t^Zm=U#$թi 2a#q֚FIbS|Al# r sD'y)(iy#9m]PYH%*|FV茿y ^.j~ kJx절BaڭРw9&t N7شNX~ #Y='9Ã}$L-˞Ӳb8R; 4qm=[ulk%N!^.JsGCW z&|v c9j8_pP+phcV_NJ5ozڧՔILY>JvPJ0q`EFM/iV H#:8ynU~LZ SPecI ő71g٤^Ͻxrc6 dD;9BXrW\2Yk?E@d WεFÅwW}T_7Y?C άgR Ӝ%[*aDzlklP@+l|B%pd4B+®lI~N0&|SLu `^eL7zW/Qn#1&?#OϝyPp&~+ -%# ?Q7ۉ*玿.S2X9jt۷"<2HW͆?~Z4j3'Bz0wtΓ4Cz˟f/__PZȺZNTCr]eƈu}B^Y L_8ž^l@86J¥˩XW؂Ĥ엒!X/;A@mg#*6nawvnM @ B&9H u>6`%zU&(ޠI˜ȵcM `&(tlkc sGjlߧu {z"vٺ yQ'ڇb?zA3sѷ 5NQu ̙=j囷~j$E7<02駡h ɕac7|؂{'ܾ=p*Gƒ$ؐsIVD3VZ"_UUb̐d&;'OxSkhiifnϿ r8#HT|7:i%Ο (G`E. BYr>Mcд,u4ں5kYc'\HiQ>Mf ~D3,.TAY`LXt=Y EhgҤ<=g3`:Q_!y-1B4 @FNdXs ҉_M5;+LhK7:V"n/83ڨgp/* `L1/^0W'aOv\eK˞^%B۷6p\֭7~c k_ - :BW>ɸ&֟H7GΉNZ(p+}.sbKz9w7s؊Mx[7SnMCA|eK#'P.D P+Zw>{r `h!ws{5E38ݬFӈd$Rf4k=nqT+T 5â2^m3X5m2U),˘6ݚqj,:OPD/77ĕiJB`p\f24= kQ"!R. iKm ;M~+X}F]DMT@$U[3'W`krc'JJ0AY@f@)@w.ȱL wqLAP#:0Iz߽ JZ.6> Ko59&:(i_!mF"UNG X)GZ.٭wΎ56*Y< ؛&o?2Xz-~Q^F?FwEl+`5-Z$c͸!7OD,n㳃 Kf mFɠN\xD}z`[@6wWeLKVi"iN"AnYgGQ,d)S~JJ\N@zHqp"Ri-ܑgc4"2Ouy\79"M uo!1$j|QHÞ[ B:RjDubgHGՔ/#ˋMC~ ZȔJ&u86 'Be)'Oة bVq!vYm!œO*6Wnc=17+fz[+Vuݼigy45Z[z@)J7`4biF+0y3<% z0RS[6h>9%pAHk]Vb!alku\`-nCNjfHܟO۠VDCDxH(sPEs? Y~sqFi;\c1]@k!`tMDT!v/1]z㱬pm/DjNV jIt< *u//Gz#KH\P}*#jgAJ{܍ls d}; }7.QS.c?o?lHU'?3[P=GcvqSE"v(Y`_"&ډKףzÝFSǙ%zlRL,C[8XS;O!u22HyB\{N-}unn'%"F%;Gٔ;X-BiFf}oJ?.`Vf dR~r@d`dZ,83F0ahex=wB\_|:A C.YtTCV&اI,:Τa 4ڼ긺>I'5 E`JHw!`!`jM)[bW kěx |@Pd:T( \,&g5>Qp,3;)n Yi3Y)&[ gM\B - !`AIAlLi/2QT(W81lF]IM*9+cf{y8뒴3ZF5"=í#3N5"z4'Ofk͆PoU`/(<.)CK@WI+XW Qꛦ6aGY}xWbY匪w{& ؔX6aȘ6Du̶W39M֋hۮE BY8mvۚ>Ė,oGNPzt/ oy750&jbPH^f>25CLOx!;v~`B6] .0-`DBQ Tm}a8P @lԣ'O#&J;g0y׽;.aۏzD}0]9# ۝!с$*w i*]Ih+t|;Jx=c_)UIpMx93f)MĒdz5_5=k̩mϓOZu[ q5Dj K3u+Fׁfx NVjG3Nw;lW^`U5>Zk˃䷑:*S-y{Wc'Ͻ=GoW./%A7'xpIHG+ y2,RD<2_ϡkOSmr!*wzgar\Ow&a|>v <% фnMM]<٥ie–@&c8A2);wt+F ~a,$VJ+l 3VcxڄSn R3.w;Sim_k{'mP^8͐޸_ވSC\) {ڻbZevDoO_ ijy "_0)EuiXGiy K+Z+o0+/"kK+Ƚ^&%_(jz/p 5fN{Ct~,V(oH E,ņ=!-1Ɍ"n$P -j/VdZأJ=<quXTK¼֮_{z,TXLizu'+^324 `ј@YW o(ljs=;l]nE,Ē^\*GLlXzd-}"NɌcFn8OhF1;v7|0agDr=j`fYFdCAVtpuwd>l@VfLeh^Ue|xre)?=k|eda{ RxY-iQd T6rN D4y8(U+o`}6]:%iW2HîA *4={hKG!!MO\+1/BPkAk]  WITe2 f Bx8ĽyQ~|9iYggl/Qp|DH| 6쭨7u~Jr?n CJl6 vMw"i$Hފ=% W#~U,`!ǀK7ޝ[zؽhnlT!ңU2s ީsP``UmЏmaw$n݋>9ŊmGf*쵇 7'c Nf~LO9 i3*))yb`o}=u>=ppʗ+%JMU=Js[L*gR6GSCj."XoA(S;,?-4G ȍl3OdJd08Ҫt/{6>Q tAcWf,6ڡͤ4Gvy*X 3jǍoChFx/'P>QG(}k*-lGdJ[! @UJv$g?tH mQӳoheP^e\s7zƑ2΂}ehL/@\[ L}`*vk}jc"P@0IIcSXdy͕H^^ѮfsvFt *Av50PT2G @6AԙE0Ͽ/ >?!4vӡ!]#kavcC;V烙lp*> M"M$)=,'`{s)~AR,8cLxge i>RRA٨:FKAwJy<_X}G}Ƀ{sܫݹ+Piwm(t-g),Rd/*8:^P㾎J4FM%O2=o9teL@#]EEhLI<6Xꥮr.'g~9ʦ(4陉ɵ#ǟ.qbW fL5˿v&)%,u-E`!`!`A?E/\D ?KdJwwNy?gO5 n߽Ņɤ6d>}ܢG pk ˂OQB 0BiHOwI8_&l!g ׳s1 tK RI1AE!`!`e^tMqCF͐X~-^ O!^ d"4FcR qZIt*cyȃa .z]ڪW%jo5s,X`(N&. VWL{¶|@%&4} 3+zAٜ1pfw/vyn.%A|* WqKN X#aol$r_+d/l 9|wE0q>LRI/(cR4>-lfIk'>_0P_%ZX=Ʀv^VOgy8<dTXlL$pܱ%O\1,6PΈo FS`+J_XGQc 5~gvK?>|Z;*<[Й,U}V2 4*IA„_D .<ӓV7$PK3:8Ba܄8T'gCѐ r?G`ZiQ4=:(ߣN󤌔YS%Mt {wY411{O:ʨ^ٵAH@خ*YgPwa+c}#&tt "椷@2DR8sX$kCc:n8^ ݌l 3n{Ͻ0o\zMqLAS.ŖRO;ICAu:YTb'ݣWh[~l)lcnQ5)^CiyYd}:26i\mdBs}Ժ,!Ke6qh[͔f>9bn6mEc`kSPOzPX!3 lXI&cY\hxҕ~|cO/2h&5N~4f1-Qtv'п`wo!Ѫ/8ۓ;Nm(rx甈DG䱑o>Q8|CDY Dӎ2ŸSlËHFN=We#f[7uMJM>]hC=; j @\^\P6QA6Ye'9u e a hg_E z* ]QX=9P $ !9S%B_ڽ^2m[00=Yt:r{< Z,x1SPyl=xbV\ϟd1B`+9i2xXc[xw!x$HgӧS[!pN&|>y>KDO@ GGFr_Ѫ4,[p{hT}Jۭ-ri9Xg)'E;i)|rrQTj8*R0#ڝ'<{IRK4Lc8vPe.G+ޏ>M$|v[ofgm B`)`Qse+iJ O^S>F%9X0`%\mqBbB/Ѷ`t]U6%s$BDWN*OU} FP (o%)ih ^ݱפkTbՃܝK+%a K!kSYb^qpo ićc׻m vB;LP#W̞ 'G1mOz!D`rHM,0ٲIUѧ^asF@C-'l=U5_C>øi|!`AcE- 80',AK~ׅPfx-Ƶr9r!/ 74;~i?'΢3PMrV~$d'~ÙڏWI)ή}z\ܘOO\nd~XH;+0L 42F4@zI\rBtӘtGy҇DW=U'drldy [ cbYsPl˺4q6a0!`!`tMB%ǪT9+<# Z|s$BH7^K-m,>spBQ'[ v3KL#m 8 la|وy I"=.zG y>k3QFZ%Jbt njHY/dd@6ޡ!`jMBЀ+:k4w#x8{p$&DFx9x EɁ/R0ۭPXcRvi7vRޠ9ܸaÉ| rh3KV\Y|61,~;Ch>6!=!`!`AIAlL) cr\*dYޯ"Hf}h~<+wwx/bM q>Qj*Y;:-``yZлyn5>&F^kp>2E •ӵ vs}aFYX8{׬E5~l Z)*7/mNPƖ)~8NAۼH(ˏ+X=&>-Tfߞ|]8@Ga^/icb2&;܌xIlC0}]+qEF{BOY:ﮜ*_F/6L.>!J}Z(8}>}_,/ZrJķ(l6e95B 該#goN*$KZ؝gxW)I)6锠,>7Xd֪yoA` 5?#'=9̜ gA 0͉tU0#tA[4$#cTCf%#_t}58h90%/,A8 R ~XQ a3$ӐԸT L .agVNf/PõR\/,(rm~E#!`xtM[4 !o4IBnOd`-{튐b`>rM%U+VV!#9lK Xnѷp!`!`EjM5 X &t$Xض Q#ρ!`AIAlL) cseܢ'Z~jQ c[ d*L\N&{YJ^ڲN{-aByFsa2K>* Z'\ops`?_2#ďY#[2I폓%nٸ%'+J-!'-lKX˛XzDP/+w(8S)rZ5:c+bTvyy 9t A;#80֝/n'k\w_/.1ωcCl5`Ţ.3jr{K?~F%D?2,0iy3DC!+Hv*0Mq?Q?dtJpKYl?RO+ȹk]}W ?syd.qCE z|syhc#3UUAC &1אayDeK3ɒڔ$ 2]pDQ8-Ze=Y>v[3! vI:<з>Ub 4R`짹7^dq@5LkZ; ELph30%Zd[( =ae'O{ X(G"+R6Xc#>;7G}R26}6= 4 Y17ç'bl7W SWܝFLρ`Ǟo UW)b\ IʑKB/ 89CdHw끒>aY!XR,wHhӟy}n)_5g5@d* ָi\9ZĈ'("ΠXUC|V' kGEYHsrܟ%Xv~8RV[k썑eZBV#c;o!-]pqCLҰj68|db֔GB칉xҦlvskQDYʑ!Xõo6^,2)s@ag[Z[!`!`}A/E-2+jsP W0PT>- ePgV`{vP%;.Ў=G(ٷNfgJoT~:j [A!`!`[NtMS')NSm $0P 4&b[zLwPؖXP m (@Ӏ!`?PjMhԢaO@9Eel|Ez 5!`!`CAUIAlL) cseܢ'Z~E7P\Ph{s4\zװB~p'f͊1B;9!*-{eĈfZqC1"F‡T`s XsC@Q.ԍҚf"j GRkdXn4p0CCS>aQKc]ӹ.[ɮJj!ٽ^io. e-1M O H;K6S|DYF",4Aqj &Km.}E{sQ]%d{?1NoEf\p[⇋θ#kzuZf@Xߞ8̈́m[Z,pRTl+޳:AfD]kVoΖ}*#ي v 󊲃[6룣\ ? ՐQW[.8!XMxRqBg9ֵia!`cAsE-2r)n9lB\F V'W|^(]Z߅8BD!v 艗;E ~lVez`2ji$ #:dNsYHdGDv?G2`|-H-I}f QA]msV ]%kRMiop 9iytMF䮻W!B{IUbA>;t3$ϖf.W)()j5Ž.AfoX6<(;Z\uB{Sׄ< kcAُ!^ux=*{/`J/(v}w'%qo^y}%p@5:( ] .joR^a9g-ᙹ(s)Y9((|"BֲXw Vox#[`Vk _/2VkDՐ<])#jP[=䡯HORqB|Wh61b(8xBQ\DKU=B+˾~FW@XAn]l,a)˫z&#v[#إOsol N(>9)V x^}J?5't{? %\p~4Q\lZa ⴐg!`!`mAE-2+jT#Ȝ+@hq!/d$giQ8sZZ5JJzei]X```@AWQ/ t,ؙq %iWkx;j`gJ/ B?llc>yH-}SxS,dX{|g<N_ D |mF@C(CCM3ԑ$/>`3j&h|g1ɓ8 A(k7(&r+ֹ׃A!6~o{"J+N|#oF$nj6ѐ%ќXU;j/vcĚZ uک.ad|L`H)x!Bfi*!,>>,h緁6P,>݁ƒ|!`!`QAE-2qMt=#tQ1uQ"P?.ƟʽPjGL -!`CtM4~Ƴ 8\]WtTPTUܱnL'ޓ!`!`<jMhԢaO@Y &B 5@p!`1AIAlL) cr\*ך4Ea\PɨkG^aR.%1*Kھ8j(4"+!*˦G F~SP /ܺ0;Ba++M>"k_" u XH6d#?9|gx‰ jBP-$,$F'@/^Q5?N_&\_ᰌs]GĢ(F8r᪅j0p`q\.;S?“͇͉8ݦpޡ[ ]f!p2iHSXփ pePQ:)iL^M#`P OhGׂ8䳉7Sbe :4*E -\~ҕ]u] G$\)ȰvVSGy*k2+{OɴoB9n5CHJ e!`!`A?E-2+j jMxՇ#`s@u2 ;(Y9/˿E`> 8}1CA aB,J0CZ;z*5\CV-"+dU nxG!`!`x^tM4Re"(`@B@.lХM2pxn:%)Xj$$o~kOgExJGQ~UB?T:<\_̩f܁# Jx!`P@jMhԢaO@V øO bHMS J@+w!`!`cAEIAlL) cseܢ'Z~E7P\Ph{s4\zױd a2v##(ZF&8\EkiV+2 +!O1 KC2 ,@gɩzOڡ|D`Amgm0@H s O b5j[oB2z看Hpcvh4]yڝAIqcr#YDPdG{wODv#,ƋZk }S2eA-}]Ҫ6Vۖ-b`NnT"\UK kEh]!@"Bf}CTo[p ZL/)^\455yꂱ69ϊ 6d69`=2*fzߐO3uBZRCO1dΉ4Ylz:Ypף*O40*sw{UX%@a4B=*vJ@ p96bh9v3`1. ,5hpjbR!Ӣ/_F=m\V-U:̢E/[y?U)Z6ik%K[z7x7R>m/O޽ G6-D~ȈÎ"'~n]-yœ0=k1tfx~;ZA8_WA7(iॵi?}!1wU 3b?xiҵ@BL7msHq&vs[quhg ZeplJbk|]&1 XTI G[پopݛ۠KdFVoy-Cbieړԋ7.I#~!ۡxb`b+%6rdm#|sjv5zV=JȣժK'gD騍iyFp .W-rŔffhB'3!mvo,F9ҷt4f5qSg}~5@8k}e~':,ԟw8Ύ0CJ\rzY~XiE%V#;F ݶHhSSS h 99!`AcE-2qMt?bM~.rhH4>iGK"U!zEW8{.Fp2dy.uyGjH:թ )ҙy\Np} Ik3JAƃ}j3"& {K|LxV'fZGGe^hw'! 'Υ9@!`!`tM:\CfT/e@,՜F8w -"S &\N㼦CJ('zxP>GN)܈JWj'+, uJk2F X>.qdyGn,Uh0T5޽!x+uZmW$t$ T%6բku$P!`jMͰ_O!sqQ32@+ ĴAdQp +H K~z'G'O/oCm||o~FNۂp w$nP;'߫V%L!`!`AIAlL) cr\*ך4Ea\PɨkG^ah \ŁmU8 +TBoM*J^2㇁ )`Y0x>Ar}x<w@{ ;@YIkCB.;7,t]@, H,HTcߡ^®-gsOiB\V_CE>s <,b|r @QmvGY|W sF[! 695hGZ3yOz741@Ei2c0'^ uN$o|XOM[, !GͲ6&A`ԦDO%AŒN(Дb O=_lJ-y9O;pBe ́\auUd.,q&!΃˷8],_ʄ(0ΦHC}!^@`?rK4ϓ_eęZ3zy ;,ƼL~A~EJ1,o<ݥn+DWV3d|Cv{A59ľM>&O!QJT_>c#](crau'>0@ H;z7Rph?CKCX.O`C=j(XTyQ↼SpJZ'΃^φ޹Qo* LTr^,wܣ/Y+S}\-ܪjLW)J|Ύ`gF8]'.Ve!`!`AE-2+j6_P3 P/|@&W 6SPE2֨ber4Ez/*wR @KLZq;:/}N0USH骿gQ iČ 'R ǖ> >!`utMylx1K/`[W%w0*X ePFGU R zIi%-nF6e ؛OI6 Y8ٺjV+дst{$D -YI.c<`ok4&T,ȕ݈Q]ߖ!U!"Qh[@sfJ&eAɗWՍZ& ykWRaHdzqF_ ev=cOTI'uvGԂE#|Q:12kİL#ǬW1؛t/I ͣYI"6 } jM|7/:߂̈́"@ jq!`!`AIAlL) cr\*ך4Ea\PɨkG^aR.%*Kھ8j(^mg˜pį*X)zrN.pu lԟ?fP{${` ~"Yx@;#A7mM\"TqG׭%.?gbCmE"\ZaĮ1Gc/x0@&?ZH4(Zz||P̴ī=eV ,;sJ@;>(51WM:z&7U]?F*q΃sʅ)|U :YUIT~`ߜf[2 exES" p ot31;}!`NA/E-2+j$W*&f]xB c@m{Q΀H4sΖ(Fcb!`!`;NtMylh2ol$$eAM@0!`<PjM|7/:߂" Y &B G!`!`AUIAlL) cseܢ'Z~E7P\Ph{s4\zױ5kh2V(UP+E%m φv_Y""3-m\w fDfSHKRql竔L:+{%DkVBhPY1?j (٦|xѐd9#57' X!c~>XdrP Asn%lծ&sqx8s-]=k؊5jɻgŻgl,og2!1ʨ0K@1< !ם+Ÿ؝S(+-+E]x8s(kLvf?Ue]VvLG}C_i !Kpҿh!fQBˑ}q"Bޠ3&Zk[^|ovԦ@n&o@FN5`A$PՈ9V񩊝f8 PpdjG8}Ù&\rs9|{ckVo<"@㌝}љ䃭Ce#%o&:U> aypd67jAԗhe1-vοͺ`݉W"Dw҄!`!`MAE-2+j$W*&f]xB c@~b`c5@L;y?aA!`>tMylh2C\uN{X85q!`!`;jM|7/:߂̈́xTI!`AIAlL) cseܢ'Z~E.y_ B܍N@/a9|$$@pʿ2~qgauu ȵS<&@ ضy3PA {Re$q>t毀bP2:`C5$NbXZ)j)lLwJq.p + BFԂY¤J)/,$n~QH㻻ԅ$I6VOFu ;l,IJDTy0x{1@jQ㪋58)ݯ~X8#NOp5/t?y Bgr4 HB&NKg`CY֯~,|AŁMl+*#NŠ\vˮIxʩ#P!`!`RAE-2qMt 83ǀAf X , %(0 !~m02 !`EtMylh2Hf4ӌ̀,\0 !`!`:jM|7/:߂̈́xT!`!`AIAlL) cr\*ך4E \cȾB܍GXid }2>$e )b03ǝSds^kdb>Idd@=VW {| n :(r!eG~dt7YyD:/ ;Y(噎 Ǡ0o qja-L/̺swnAim B7YӋMe[M@8ŢF:\d,j9sR:jP ȃi)͆NX_xQf)=i*I>Uao;%ra歿YxCq`7rpʹ!`SA?E-2+j$W*&f_+&Hkfe@~Z@$#0!`!`?^tMypLuV,v@\.  !`:@jM|7/:߂̈́xT!`!`AEIAlL) cseܢ'Z~)&n1t)ɞ$Rl"*V0{v~[!|끰_i|ά;Ր <+Esn@lQp.4 zyoGjͬz98+;|$&| aEDm3{¼]WFt*EXW,;ūl4WUwQ;͵+Ғ-?8~ƑTKq7Su+9OVU߅ͮbzyQd@D `Z&O}b!_XV1[,\<6cQ(r7dvF:îF̴)6M,HQh8ˏkKS['G|ѡxMLz*$~78!`!`"AIAlL) cr\*ךj$%"&1tKLy/_$lK><TFG?9zqa{?@23Q/7b_;Q+b%s+MXw u}Qa ưcǑ~&%~W<0zOP\D2*s` `Lo9"G?, rzwy (S .vrGGZi. YqiO0Evb4͹0'[vNj!;q5)aǧOMi Zf%4ŗ+H5D1ТtV0q5@$sH fVeLY.^9ı.VyУ!~HbYUvj:8(&,6v.h=QaZ9k_[s2Yem(z:W!`!`AE-2+j"84P_mb\x2 CZU]ʸd (?uN 9[p^ء+íۘ 9N@@q. ,{ؐ eq$ !`YtMA yD |U9zՁNt`9@\*'hqPWI눆9zxGj P(!`!`fjM=x\Iߤ*Ecv& >`1y2D? K ˨@T p0 t$;1a!`yAIAlL) cseܢ'Z~)&n1t)Z3>MI Q[3? ֔G4-P% )94+Pr߰*eFl(4D`z%_J䪋7)_ ޼RYমd \ic|fXh,llGěpt8zs\&ʗU>pÇۂdԉ{F,٠E^INrFͮ>7vy P#D ^9!1t֓)T$.OT[ {FT6 aY>9v7r Ax*!4Bgw*- r B]S㵕8]=#j $d?U &HGѻ( LU 2C.96KP ^CS{uZq :Kkey'osOg8+x=5yukxs-l&tܨsD~`} ^ۈ`b{(|`ͮ%Vˢ]8G;:) ,âс ]Lu]gֽ'`Iǃж0՟>8CϧG9TNz41~Va2&11YE |Ta&\}gI3lTteUIz/ ^hU&/-oȞgn6u5mvXoo~-cß$L2-ľ ;3U~"[I32{fglӕz+۠*ƀ6RYZi2uT$O"YgH-ܢe&*Gx^݊HYpö_/-v #E0HFџB.SČ.PcA+(' N`FU*|R"XB^և$K%jz/WҕT50gX2*{< #lZm*np"qέSpr W,ݼLOY%ɣts,K?+?K)^>7ɮwެmt+)]N$wx1y)R)>-n!A UDB&`2}taKV%xw׹muᮧ` pWy`Dֲi$Ȣ3kle$ `D=nn@La[;>u8ɋ/l=@x!@؝?kZI6#F%#GyRV6)s]vr,Z5,l#;Qx~(#DzKKuv5KSxːS鸞?PQڟ8G-M]y?q4C%mEs5NeeyВIA\Sokef J UqU(pYl^ؗ*úg'x&p) (a5n8?{[ [{Af(p|BE*ڤsv 0]n)+ݥ2S(<*l9K}slg,zftIڬ}XۓfGIv_4<(@2VQ#|هVkii'[KA{eҊp9Ob{-m@&VܪrpD91if[Rڤw BIXfR [CD5ė4A@J6Y4ƃs𱘱xgLJ-;٫i\GNZLQ s= `>U s$@kmV ,0zla@Hr/R`Y1A$˺PQKpx=w"*T$6EPB מ9ꪙ9oO43!B;wqCPM߲tvLmWx)fB4pX 'BLT?s c+c,N_jݜJQ?ϲc6A!jVJ͍ Mq.rʵu\C`KI ǁ)Y|IL=Pg dpvKn-a"0,h떺M@JƖeEUsǤ*笱ϯM~ڥiHNpzacM z)oq( q%jd7|vCkMA$ƐGe&'`j[ݕjXQj61"vυZ(tjz7*-}8X?ЇܞeObTH=97NbY8%Nk2Z\PŸa"(avoOCu 8$NVh`]={h(UΌPJnΪ[qآI}jV 7v"Lm1iuˍ6FB$uC&k`ӓA:\}j.,<6V(%ɍi^Buz~aeEM,rcy@sT̊V%%@8>lT,| ُTDqe דTn%.B8IR^c"@U ]5?REiIoHPeKh8㬊MEyؔ tvq*`([.-NEw1ӝ%! kQ!8)VG+d=wcɜszp!$|^; Zz0YM?`v2Zkb-;uѼ6V/԰lf3ylt>\iELm yY fu=ɀ rbLP;b9Xf tM&_dvwP7Z`m|QvZtaXǒsvwiMee5%I'cFHcD<_ߩ8]nk sÍoЯ)\z<֤o]G !`!`AE-2qMt, Ų9Z)C;Q*M&}AJ-)/GEx'NϮs_3►ѹ e'lÖp#G\Ĭr]4`;m|ۜf7oJ)Olg4m{ ' xא~wYaIr#?6K._ĩr#Xe@UKT[T|dI @6%i*ޯ95;`#_fHhy> c)fGa3M)jW'VRuavTZ+`<)o3(S #GŵBcW3dzOnMN2\0f=HCqV|;N2lo2 ?*"{-KPr+)i-ma/9:WzJHɸ$ʢe4^mv@0IGPyڎe@C#g(Ū4샫G @4RQ8Ntx.RV\^Ŵ ʖRۄדڼ@-p @p!`= tM?Eư`Q՘#|'M.Xp;)x$'fN /L0|2U]|{$G(>`ApU.I27xӒ'4\7;$c]wd _yULsb}KNѬUݑi_`odj>-ׂ>4걋vNB+.-OP~ZG v9_TpWA'&yBsB&{矃Ǜ=8tl'|Ѷ9nɔN! Gm` y'Yx Hh!`!` jM>؁Gڀr 4pK$leNgi(_JeVN\!XҮC!. ʀ5A:fOjYo~il 4(uAV_4; RZKRm'gY&;dz6M0( .&n<,!!ra ӽ,Xoc(jB^0Ls)ȱӎC-@ne xnzA GM@¤e!QFf۬=:IJ\pkz:\0k~"J$0%9Df‰o?*0Ipv"F /﹡3/N̦F厠0ؗDLo,"WnSIeFx8^j󭄶kX.ԅv-F2 yF?EF8%'HL}ozz@n|Vtq="xmEsI@bv@(dUͯɷ ^ ii .Eىh-zlxjJ2$ܭ 7_={mCh`_w~R ]G8 pݤ~S*?pF@r %`!`!`AIAlLvo:x| W~H7Q6^$s!DIt(& eۖzƟ'g6kxǴǖ E(EKB`721 @'x *0{0]I'FSI2zQRI֙Kq6Z-1pkªT`@"lR3j~qTRCo~ʞ_h)lp$AqM$4)x*އ%}8nRt"0I8YeL5GM}lcC9|صx`15[ YhPxcBU&ּԫ96SiCy M)(ڌ$GMyqrӰ.E">kt۞!7Dk 3H3񒬙 "FhKv]^ ?ܳ{v,Yr~e>D A)oUs/fYo~mCO}E 9;RDFnw;g*wS&2q ?s[(:l8[ݧ6V@N֨>RM%DX !sRvc&l7}L+Nw*grP,Gۍ{Q&h 4VP:Ѓ32ciBHYIo4Rr@2y+u9<c =Qح g[n6;Q+-4W9[Jz(4I8"woN$i zR=H/?9א&탅wΖ3RBs)Sק{?_KaA!^;I?3x6``[ld`8(CͬaTmn*]R߷`;8XЛ` ^z3TazL+Vwr44X4X+2\ (O/X&$t=U͡!`TA/E-2+ja0b 3s}RjiC Zʋӕ~ (eJHjRXׇsp]tE&z턓-@<_ ݗs]m\1n\nqi@kH/TNs%F6SFo 2Dk{PLr MX}\ PB+`PkeD ddRyuJ+򙦣.62fnt "L.m!`!`NtM:^,3"!I1@NL |=Cjb CWjk;8.IУCearK䛑$bc;neaaj +(y=;p*n߲J>#9=%ں@ @h1퓲 BMYEċb,) V"3P)!`PjM8L2q2fôC4%yKO.3hPu4g 1V~:L'znD 6i -"(qG jz1䦻ǐЇV@~4̛]S_˨x׼66FptՀz5Ap 8p2Y,ź,EJ!`!`AUIAlL) cseܢ'Z)&n**fCn^eF ci1Xxֺ-oɵ_r7;0F¹J6A/NZyRD's 7Y=Wl—eI2Z~q@>lw w/\ z]S i 1oKZ}U*-/fF'Lţ 0h t!1ۣǰmwc{[ juRڨU3u?. CPCKCR͆$J295ݠ hӨSx73C62֪ima1y F++UGiQ,4WI+2=}tB[c*fF{!V"ה, 1Ϟf4o&.Erݯ0}!`AsE-2qMtE+Hw>M= ׾ ^;]82ʀ3y5(([~YtXK7#vSC,5V rZ=9KG=}TptW23+ ((!`!`mtMy.zߙ91.E8ѪZ` j^`5~?bNH  y.4̥ {j`!`!`BjM@81]"+t5_ 6R@!`tAIAlL,Np  J8:} Y<}G,-2#w-B*͘ yW-8P˺WO)AT zϠOU:4NJ%7hf PPY!w倝<d32.vB̳IF9%]=H0/[-'9rkci|gS`mڗT.}̱삑[1_cmdF'v=޻\z`X[iBqF}&|!`!`aAE-2+j:>Z8"[pf1LU@wE* v˘21W YzOaHvPh@!`ItMCp(09 E|p#Gy (>a!`!`CjMFV8 p(,E*CA8'nWAw!`#}AIAlLL;Ys奯h JǪqp[BAZC Uwl-_Ab+.Gi.Tz4 QMbyA^tr$*pIA7޻:y@n2:l{;uէPsKsT3TӅM2@ \q詺]VwBavy(׷"CA0ǔ^8?S>yV<1DޟAxj9u)W8+N~5edT#c[zI8|5_;@MѥyA43`% 447]R}i۶Y5 "荃zQe9|TU>f^VWcq륢̷\Ibf,E}5·WWĸ[mkNd;݀ {mK8S_EtjFHq\@v^Ρ:٪ҏS4͛_>y4H̔Xg1^M3W6oYR -^27oxV8d3΄RNc?# '3$eE8RuF<0w7w1u,8H$4ALb>cAa $o41\g?*ǮZQ|pۧN}lʝ;+F}\],?qCa9,Kq!e>bR( SG{<@^V`:C^tkoVύ1J+BĴ&  b9t?m) WfNN+'.ga?r* pm)O1eb[` Fg?@[y<_r/$S"h}fkj,R#?˫俫#=fŤA#e0 R7!5bbU=K. hy|9$|x( CN[ü=6!r5`aW0 yx< ^%a{JPzBTRí}3o .~m|[kQB -%p^;vJcsΒĹB`G^-P7IY}kE܊ƮUmTY`^XkcuQ4$C*ȋS UGsKK>m@V Kr1`Pr=ώ/n \5owDzc=0iHCM*5|WQeub٪"2J`TJ Wj뜐ˬ^ o?,8&:EQo>vC̖֍PR7Pd\1#BZ/' Dա=si)QP^ZoMzask;vR#sW7\Q,k J%NvfB&wܙ.t2,Pgϧ+eУ|O8tX] $@Ëy}K'FCZBB}i>2dW}/xpjdp'Qf"X縆TwEjH7{iS @[B 76LԫAGCBI2r_RaHDe#WlcKR{ϠBڏJZ,#qH٠xϸB if%(Õ" ɝo#|nh~)sd;dV/ Yȡ,1+Xpi7,-\`jaڵj SRx^]0~[4kK$ci#{34w{Kr`8Itj`ZX ӮdӠ/w&oI^&,Day.~WBS|y7CqXQ?ǟwL0Wwc@{ncpE>Nݛ QʯQTrվ)QJ{G4^WLjޠN~4 ɔ6f=_:^ykD^z&,.)[^ц?_ͿԛfcGLS!ږROdXaD $lC͆OӬW.(/.%ՕANXKUH&-6R:"Xdfjz欤aB,SVƘ))02u˘OCbR4&i6$=<[0EqН&679!2ZtR8p0D"n-E k&KH&./Ml% Cr^ZBRFagn]1bWUljO &#G^K2,K!Q#%k1Fo,P~<('so(*plAoY-Z2Wsvr S2gj)a? -~:%8yQîPjo~%";D\saoH$۸ KÑGJ6C VVpY=Z$^ 5#R}V0{}պFoT`Ҏ K+ 7x}{Q5]0M`"{g_G$5g]? B~b,4wMb?$R D +`/ xqQ,}~k hfnLٻ# SZ9!crd>|Uu\Q7F, ,z7 ]Yn_oJf3z{ $i}Xh0e,][ PB?ce)72mP˭Bf4H-1Xi/h % zV\K.>ȗ ?CyeK9:\-eO?ҟ}蜭އ˛ PQZݼ)6r1>DwEIhJn*U8d<:TE8 z~ kpҝSDg=n)^m8S4Cjt#_rf"gѻ%a9 $He.rFO :Jl%p120h0j lX~ W cm "N0k]d2|9VĨ ظ4I6a曒)'&d >y{bgN`ljӌR8]KX{C]w Ac}LdPk; ~<crBh0ͭK y5:|3VX4!Wz!+odncPROt!3Lk$;o; 6 .tsZ03<%pVJIڟaʝx^'$ ޺ژW6+)?Iuӹ\dC3|:"|)d\k쓌}03 i<{TӶ1:ǂ !.|:l\fT?@6LTEeP3ٟ-_L({p8c:Ib^؁)4i ؐq(*$쇓:Yn'9U+ SGk6 QƇy'CvOq /Y7Qq++~$$I`38(|*$.H^ON&n=gN8"}u9{iRīZ>-4Gl}ɰ)ɮps7&W#臏ޜmc\}-Q1֧Kx"˸O3&>Y˦1c8a:-7!:Q);iY [uv]x"zLY؇' ;9ݜ~|Xeܳ,و#k qq?џ^s/SnUi+g* H_hoagc>z6t+%Iy\kѤ{w_.CiBİ"ZKkHdYmLKs~b&, VhEIqtXFB cpCROs0fOD SBzF{[!~dtRXұCk2v2̷};SE.R -5l^RbL[_5"s~g/?qL~Gρ0A# هSET\^#&kT>KuUnDy@ie ۪g;_suJd|̦̊>n`mL͕I־@2&0GyGh6t)DMVYΓlAR`g&l׎*w95/';i|Rj^!"'8~fXB /!)ۏS-S\(ڏ4؛*p*TL"ٵF/|IT0|bs̀AnIQ{?Әk%".u5= @0065orP&ҵKA }:mpz%ynݒseyM#4bKp u쀉<+PJR]Ѻf1_F~U]%k34jьڬBz1=AuTǥItM?s=w,b)$NlQT ]0Dm2|?nq& ImE6j'@Mw\%֗xǬːgK>a;a:~`͒&%:p*Y ^#:dEti=s&maWwD)c5Bu >>I3hy*6Vi*O9D#dO+*Pƶlb ΁5w5˟H|CdA gԇuc9[[Eh*NQj HG=ob)OLQ-w|~O_h}Jԫ"\n^ eo2]+pp7vɪT>2{Q+f 7+@Lڠ2_Rs7E\ #o}  7n~ފȲ~C D.>iLţEa BίnuNT9Uu2/HO gCF *y?ևM vI]n}J#~_ [ `U < )rH'qƠy m-G\ˎhu_D]{^[Ѵl[BO>xI/Gm`h36!3" CηExQΠ2y Ĕ\5|fѝ䪢vYS5ZĕXwK$^҄Ձ2{~PH1M57w"yΡo#qF6$ Qu ^ mď6إPLλ!R-d(TV7ۄaS|鄆U3eQ-;6MQSkOg,L"AZ {)玛}e W՝P.t$lspv68N&7]k?|>@n\-%ꉂ?](XT<F5?UKl$\ pK}Nx ;w輟ReE-/9sRNVt:TEVߏŅ߿SnTDqHݳ%z&"?UF^{(bos+C鍂olnF-w!SBUm_0v^-gjMN*Z!vR].\wi.{mcbe-GIr\NY{UHi jp2luHsSe$NNM?Ɗ'=(we$ BnZ,m #~@4LK;H>Ĉ.ڣ̴tx Lɯ~,m뾒ꡢ*x;E a_&jjtO,{\-E.4%N 2l5kVBf2sgGo'зtt#6]8U{<ˆnA/bN&QP^>2"/5N(j?bf~.:%OmPP.G4>Ѷ^s7j +FGbhm16NKP8N6Eɼ{m,6;Һ&m!x 7!!|fcBl NpN l& PmgXW̟a|R2Tr~d?@y0ԸPbe6o'UTmX{zjvxF[.F f><oA6蓅;˔;&*p1&BׄKz0@~VQvBFՖdb~e6xvo4-:^Mje!%ȿ1?-r s=R?,VcDK=Cs53[<`p}IJTmAy=vr[~ a>ftub_AHr֏D=P ܯ2tQ 9H@Hy㯽%i? 2>1s]Ԑ`;Ftt 0+S/tzI[g;2eV%ʦdgt⢟ ~mwSCނ`_б]*WlϙUnܑOPGuxfkzkr^p8 uOJh깨n'\V/ZyA?[T6*0 [_Z|meO)RpM1/߀;G=w|FKN }b]5/^(.pC3u[Z#>4G=he"'LL+ثMd_8ep<]VibSM~zJDx.bIr%íO˘< 0uQk7p:yGHuᝄK9btD`g?` zUIQy>1Yт"Ӏ@LG<0{hwikf:rm 6)ϯła`r,HJn}_}YVsǍB u=ǯbaڸ_(S篫`oғԶT- ZwTtʅ'1`XU:h*wP\z+AYtF$:pLb&O*O礳e j۽klZKTHG,VKƒ<ܓd2`s 4Xk/J=>}=lc!4[Ț@񪩧m.t"ɧ{L;MɃb俸kM l޾kM.;歉q9i'^F!,u|Ӳ[4 fnG\/3h62H dNT׎ffq8_~_FiWOèc/x&,b$AJ"ƺV<ǟXqY,g!\Sd7hR:ftt)FwkrW# #+JQZ V^!ܬGPO:cq$dɇ#@3@Ջ#?k.lR8 ͥ٦_&X8Zo? : W|rV#WkJ Jһ^6P楪k?2ʷJŮp,VP$q "cϾE;P*٧ߨ-Aמcz2aH/`,s,^.D*(E+@G:weulѳ R #Zo/ ͮwHpv 0GG&M`in:9^d͑{OEk曌|.\%'U#˂?S1<--B]WQ*TUnXYu.6Y9``r ti!hgV$h?׭Z ‹A?d.-+^u)p}$w/ycCᏠ}BUHωS°o~g|†vذWd/ylM ;Tl-dI%iAJ?/[ܮ@w%R9U z;-_XDm,U Ĩp&Ͼ.d)2Zl,o>ܟC<on67yh(9s1( e&euZ_CwŚrE 2F-sxm65t`qs1HbB*ح,NXWv}BТ mPAfђ[~W~ nGG?}¨AT6܊Z=HW )}gy7.j}{bOo危p1ǣ(!`=Bc_0 _{@Zd#mk|d+IѝBwH;|lEs6Ya`_xJG]w3P2\PJjHu֭oM'Ef yTB/CHZx%K{AA:^%);k93Hl)Mx>{\+Q^/iMx"tʍ4e>JGZ~KXN& Y(Y[\|"Msj;TuF5KWSV¡)J FQJ:*{-$j!&ǫcOے=arTG^/P"}Y2^6gȼ(y(ث5K77Z>*}@ITD[-& P>.l#0){ۻ0|1^{t̛i*s&|%iO&Fx_pdey}p(q*"|NVgI3 IH`KZ(}zNU㼴hL Ʒn샄۞O֚Pȝ|>+ V[.o^)t~aPSxhK"ƈ&ViS:0rɠ@:-off♪A菸w`.E@XI`4C7QȮc'NZ>Bp^ ~7L' ZЙZj?gQ⠹|66vf*e N6 XWdc!!*Z5 *2H ̪Ij7?*!u f^8nZK?̆Z1` ;%!,Hv(l75,l+pZ6Ù]KDsċIRWAI)J[ 09#9}YZ!! 4}Kd, `bFZBܟ]_pZ!Wqp{V&V9[&ΕX å1l=JxQ:6Ӌ8ZFY.w'JaGD0bdN#XIjٯ{껿vt" nP e.)ԌTY+ OȦ;6"G?F_ENU Ʉ34UR6hjoNM4H}*?F`5}6 "0cDxQxbw|#TZ1X1X-k7&ZdPH9|< H9"p7.a(RHxBG"nntb|ȍŮo|bItmhbQ^+w_ھ:'Ě 8Xg`߁z&gbCA#Aarɒ&p f P)4R"Fv[AR=zl7Ɵ;k[oY[©2ǡ+/%bU Wy!gMđChw29VJ|!KLk LW\, t=s)5iy!L2 Y5N>|B7Kkj Z3uصߜ(3L){#Oz$1cqŸ eWgNC99Y7 C*[䟙 b`Zd,+EK' +/}|a,% fz^úJE[.]T# x:dHˈtR!J;^KZI6+fTfߪQ"7˼_$KW|Tˮf۴熝.{pbn2uRNqL?m+3٫_n`yz=+,ihc=t@7OuC\wk%NHv,a2-E|FĬZmd AdSʟF/K,O>4ЯZ / Uƻ1-3r\CA蕷TyztJ.;]r]|@|U_] eOgJ2\Mt밭*QrxvrSi8A3>3&[ L6E.U sSby5T^n)rX̿[O{脠&rj`89Hn#O9Ҧrk2RPr)6a>f}-jK+˞@Lsܫw.Ps@gX'WΝIT՝D„ϰT&_!!wO΅ j:4/$:ҁ?ΠyeOQ< /{*L**[}|A)sj#-h!E-X W*IIl7ENx=w !"[SgW,д!N- QQ0&0*n3T`;ǽYHӹ{ԝ\: G@$RDh ;YMmt9V6cH*h$ѸfZ&Yu'qQ lX&pwIkH`ɑ}3|(amDYڑۑv}BtlF DTV==ͦ[Uus'*[~f jIKB(wKabetIآQ5vMl'i#:y-2 "KūjWIݦ_3oo15q(R]ZA1#,'N|Kmu ,m2WTN#>m/02Rk=ģG kVmt>%k&Nrd! ("(ȮgLשAW3~lSnot~ 0\hD-RO_3QkSEnXF$%(Q UT`顆ϙ@'>QCm5Tqēòr^K FaY{ Z; L: OfJXَ\|:S/ u]j?֘Vx5{-$˻kTzI%ȡD .`,kB/|!9tDCC4D}ó@Ќ?_MfWPr4<Ҧ)U{QщM220BU7s|FU/KJkQ\Z~EM>t _|˿HHBNabt碥P'c ޻ɒhr+'fk:j>0 c$& -'\~y|q;M?Irr1K|[X̂(WX ܮNfŬaC,`rҶA'ʻ<:>OmLPsZ}hO/.([j*?wK yi]e^0Kĥ`LQ]Кη֐ؕi1\T{Hh* WȩlҚ?LGKN.(B c}V5̷2]#ĬZh`!H?e’߫ԉrtt >LW,pCR|' 5$ lVQ † +#2\p𜜩s{DM(G 8QrfmMaZ"{j906/#r1tBh~Pe/| t CCG60Wmsr[yQ[pp^saõ|,.̰]S~_ܘ/V>Ɛϋh]Q@>M4˹2Xz\^`0bo3%¸Įx + iABο~C㮜RW;9/1#XCS^C9nXJ=ᆝ7#8(t+V!PeN'gv5DokeT?Q k]\Úw2/TpW:H͖Lեtvta!`!`2{:q9Ƌ53Rh?ysH{LgRҊUxp̚|Mm0h._tuTgp,*Ź֓|M/ۈڔ4) U&YJ$I 9bE_*4#D .U0mjyvAUΩ7^wfӦQ0gqR4p6VsrһNF1rCJåHM8=CpK "P' aC3~JBVl}L^a EtBz&̒V㐕 Ҥ[(\~!`/rSVDB2zCq+қx>jāWGI ?횽6qZM2P1 MÜ^Jj'^ihT!!eX];XYEZlFb*}07Mq~1PgH:҂Dvv%2əE"YbjÖHO3*f'$swGrNIFj2hbg Wu oue7&?Bvàc,yy?9W Uh$4Lde C4CTc4:)@l_6̾9tLl"%.L{%7rʺopԶW% (b,V ":VYZ}%u<<'+?+T6A4/eAAPl!H5iXńk.ѐg:xnF#!v:ꭄb?8FXӽ$mi_͆iJ=@a<\juk~GNF*t&Syxwum(6.),׍WmoWe]":Wp?N~|lCcIM0"T;"XHL6菑P F6~t3=?b -7 ,byr}Հ>one EX @ٜlՃ}gJsj]W#-A-.˨\ȗ硢l!mn-86"9F3Yη)yM/ӭ JнZ|{yThQ}tsh ލϪל1#R(%Ե Z+E Ie~ctas o4Yc Ơ( K6W fC qıAф B5NHC%>o[m3 +S @.f1%nPsƛ;i_aGXWҨ O8v5\%x49+Յ~[n#1@,baD\D8bI} _CyBmܴa|a.+F"9("q1DnYN0w([Vnq.X2l$B3"lO,ptBŘ^? Xx d[30]hd[V˲9ćp`W"ʐ5*C?{]w& \x"cj+%qVZ,;on"@V'C/JspnoӏNUИWi6:Ʉ95I!{I}s"o8 taQ.ܠ#|.j5MLj8 7xsml.<0J|Ds1:Džo\ql"~&#yڬ%W'UVӀholy #ktk >CI>>)5o U/{?"'9 H}+ڊql:neBP[FQ =Pu~W4˗RtWv@JӢ.F< F11msn9az&[H} 13KkhƯb{P'ew)+k6XT[^bmM2_GWVQv6zru!% )A)ZVW&m06hԡ(JFHet5S`-6%q9&r= 0h/35s }+ʋ/]}F2 /+8gۍcSJ),u/FtY!G7&InѹRf43bNyGVLk=*+_iR{Dnvґ=,USnl>!A)%I&VT4faˀp3RQZo3gU&(v)/~/K5DH Ml Wn@!;  :@Pu 1h(CVDe)<;Ջ8ЖL7H_T _6zI#GM+udT#GmktjRIi)-pIXjV}̎/srkZj"Vݐ^n:Ga/[WkGWvuԎ=::j ER l_Fi;C\"H8E/P:kTY1(b6mJpF}QIVF crڢg5;I߫̈́+5%]'fG\Ӂմޢ9GT]CpFl~{-%E:y!oH"_kɒ'S2@c ׯng@!ޭzg`"è6y f0Z xqRbIS!@Y E/u!Ɂ)rx S]qDø&%; 4)#KMٮE` -Y\'a#of$VlrRVƫUM~>qxPcuɌCNISi:sY%hKpuyݔrepl/ET7!9H,3ގh4zY='̏a՗iBi>7+aĦkitJ^!"Ow fg%5GrEzeV04 ԖE_px3 ?AX MK3 mCrv9?Wi)G%6; L-s*y;Ϗt4CqߒY6] ^E9?Vܨ+͂{7@(ahJ5.L (J}xw=z3ly-fb 0m!Y0fmXW#M8dq\el.aMs9U"#d꒪.uq~j˗QT*bºE>ũz߂~x} As~@Xb9DQ:b+l3KꞂ$*/-RT*!!B/Tq@$.l ' c]/ @M!3I :AX^b|hKsle5?hdo̔FMj=<٤h7*X)_UsI;O ȍ#ڊ;[ cVY_KӦGSed3w؂,mÌ=vhUnاM,-K~3Ìa?3qR6)EfJ ܜG@t篙m˓8)3e ([Zn>p%fc}qÖ& +Rr/$Η pb$.3c/ ?/=:MCM$7miƏժcp\ݜU} e6>N3 .Eӳy T1DLbhP_`jzdXQdwf%SGCvb(VV orO0 4$2ȧR`.yE9M,[h `|є 6 LE:WS/of̝~4QZ*i=lXZEګ`#bi6<_Q:f3'k=x18*dLP5f1H}w4{Յ$<ڪ?.\Whϝw  .ȝO^#p:enj܀bG" &{vM]G]g/\׵\`Y[32!Wƞeo(hxuGSxOxdvX}Dq8{X~ )) rڄz#%e>$3~ޠ@z3x!]DHsYI'x%ZYs9gi::½ukcU.L>]' 2 ϣMZ6S$n;* 9 lJކJaN#!/)԰8@Jӫtq1k,z<0 7 ƷsqU%+d _UߒuK$286SyeGq&gnZ~uI9FMܬz{6M X]P3x?CqSQ2fi0kJk_3jXAmτ9X͛&Y*o:bJj|`fëJ\99;/~eus>!S*YZ)ب1YEyoNowAz)ki|,H5/`eBɻ⓴7b:gs:ѵVfaބ GmxcQgABae-bТsoB/j3`삓so!IŲ\ \:yޮ S,7ѽ . "MXtcy\A%4۔;~v%MHUILg<]sbVshߩ{-aN` (C8h)7Ņ"uԩ#+ӷ 2)ݸk( W$ơ9xX >*=2FV {)bad&G xlee~g^H/3PLИF}o'|}|gMv8-rQ q@[ya/K%>t8NIO]]pFv[stb w)ļ F$*(9a`DcZW`x"K$~ z͡a[y%oE:3NM/i l]96f&@:.-Vpz?4\UFfͯ*@[E-"054RJϺrI#0=ߧŤO>9*|5Q {hcs-![;}^XZ_-I2Cr1y|mc P8UYLUH=N+n4:[фF!XݗAX7 &ƶ/IJCK zK콯ULӹr9 >]*Q|c9U9KhmxlE>[Pp @3#<iBz**4A)u)5c(_ !š bY9qsƑ_.rKd=j4)1&MB{!s&A8@J(=4%nu-h;߼QXB#XBb-˥uL19A "NPgNh0h{nd 9wmwHT{׽.Gs[L&?Dy+.QYn,'6=~<18D$llH3hi ~zwEͧ6 /]/rbƈ!ڸ)*]] NҞkp1?A1qXiR77%tPǺE륻 k񧂟kwat[/vV ,r҉&Vٌ\67~9N$.S|u՚gN?Wۆɽl\Ix3@zfyɶ6nf8=roAa^B/<,aICzԼAp6طqɹTރOxjA AC~'XdO1t8n$g.QWo-0hhC6)^G(=Q 7e*p^-00h@78)K$,ΕKB@7`-1fFB ,)@DHZgiFH iYv{X~6bh}YΥ?x滛PfAUL$RJ 0LuL6Cs3[QfRPmqU~O te.D[V0]?qeCѪR2FkRA$;D㾿q6ⶵ6 jjg+~ϝug)U9 7J [P6Ί(*2N8x>Y[P`$T< qHJ1ri$'Li]>YHE"Ν܆)" %ʚ |Et+Y-{%5G ~U̵6˗-N~o<6'=L;MN-b9dE^3BmX.́ "CaPށww+p|f@/'V7R&ce3 r(c^19poJ &aBvM+"fĸ½!ERT  O}]??5=j9Lnk;{V3Գ$ -haY..5Anh8ia֐:pϓM R x[ܳă. JaY/.|75yJ2RtMe-pp]C>V lЀE<_}rpsD@\1}X62'f6,HJexqYyeA `Y:2S:+ pU VL<0nF| (ϫ#VqU>'Raj / 9(_J- ykb} 3? 25+? e耦UFD3~Aݠr cݧr_?5XHTyBOLۜ Gf81,r_[A=źsSdgF9%>q +`nWH!TFC9E34j{0,) `9d0rG\sQ푿ǧ`Sixhe-ff=Cz_֝]ۉ0I+d_.Y[f`t{kc)BK&oV=KF{6G?_}W\wƢcƆUf۞h)@75Gd({}O3jT<֬6rN;MqiLK>T> \(=?I1^|#qk{3 ZΒ"[n369"J&7pA ?PM_ljuTvOL:W?d_T:2/|\iJGvV޿ 8(ہbbV`oCL<׿Ǽr|,n Sp]G %fHov<ȶryrF2H I蘨wxWgCA835s= G6{y*[K?gxO_H23OjeB-sׂw:^ oϥ⥖c juU] %u>'?\w sXQn1y6ǒB> %غNtw c'Z)M҈z&?K;aJ_o8_ Zf =nEMh&r̼ ˌ52O6x@ $ݺV%Ms|gO]J;^=un IliwCbOkJkyJh'lܿ2TH؈U€)0b#a-@ z tR!|ly@Kկ`Ѭ?OfTb" muvўe#ffjޔp_82 G[,Q͐pB M<(zVR]Gm1Vc >UC<M_ ˕J-# >x>7`Ur"_oNw3_#'[h+C>Sqxvx"%cl!p"j z>+=3AQlNOfCˁ3l=[lDlKB/=|J?^kYzDaJB{^}w"nݝy68J'M]0pB!BE̮ 7qomGtl } <ᐵc_ a:!g\؊&nS±LDcS%Lʪ3GLz^_Z2Wak*lvDm!>C$I:,"pg AG) =GB '~Su<}»h pJimJl.GLEN؈hzq[4ȭذk#?^#bp%B8 :)kfϖAo! 2 1x+9C?%['.83+_[ѲgOC" f,՛b.I3b_itWhi݌\)rlqL$%L.Y)etUugT]>*daYJQ:go0L4-_r|_9,"u F^\ܙ([9yN}G^XCW m%!V.mZ<z" Pg@)ƝMح!@'B5u6oAKEx~u4ne ,js\eHlͻ c33MN{BvVúMg8nGjlHEpXޘ@; #D0[EL (g]WӠ(lSM;"\b4{e!Ě#u {__4qWr0A27 +#盚[mN,nZ"e iUMZ=mSwT41e؊,9!@ $عų?}@AqXqP#ӎw<̴vw!*q$%?P s09XcGk/_{/qKky 1Ljl hH& ZtZ}&2O) Xt ZûIaHxHD1ݭ [-b(Џ@2*[-|l/ϴ`b:,& tnXs8drUaJ_E9[[د?RC:vo_9e{g/0ו}}0;|? o.Xl`P3Y,?I=W(74&7>``J:GMBx*DkgK%@ ͮh׷fE5G>jںqp}6 U yn]rN-5@R$I8Уa2V89ݢlg!%6S/N!e;F AʘIo8$ʦbd+. c=TjTr_`VQP%ic;rh.G6\iܽeKg9Ɵ Z^1 k"$|ggS|'Ž8=&<ϸ ϟƴL@Uw|u:uY6n,MO LTp F$po Q)=6KpZD8?|4%]Hy;\LpX&$`La|M"Y倲)ュnv^.g H~5!),r҃aSK TZ>$!_jm3PLl؅'o6֕!T?Rrͩf8RC="ۉE=)62v3Yǩg-cբ M^3q 5rPw\!t%tgݺݤev$M!'Pұ=%NR٩^6ؤS 1c31(Iwߞ^2wsB2s4nQ閤f1RH &bϚDOXck)kGMGoDBd1χH(Aijaѕ@qzJ@J uO9*@#2iUR-D„)jڤ \Ġ"0@@3k2!" F8qڴRv뱐'oŝHbTz>ɏbo:G'QAm(25v8V(b!aV5qOVJkpUXn-^`M2-rLĸgMBBya\N$^kRA:%JXfSsx0(WI@k0 D74 4!=i~ĉٺuBc?z^La&cg`!5Hlk:AMd8.Kۈ7=Fd+;1KDGt 4֘yRNt6kG%!'bQC fb&P`lI "D*UxZւ }lg asH:#|rݶR}L-ٍ+# U ydxd o`qK%݅L^] tCX/iYﵵ0mBzQ>[Ю}Y 7dֿ=qBS\lvf&nag:{Soʇu~ {3?at5b|e/9=!e"kg0Vͣ(Rs u tyR!27WΏwp\ȞBL6QK`H'U͟Zt`7+f^X +`OdiumЊ…PnB>3`9Bljm<w ٨s g`,lcK7=4FES*FӔaF@܋ٜ[dV@LH|NG"qdhV8m:Eh:(.+{YZ4xk¬LS]=Lr@_; ]P_deh DfP遺d^U킭uB}P*bt$u="_ ?u[ht%LJ٪ZEP1"ngC99mIu}WKkr->4SgQ09HFZ}5On]̼a'D<=[O/y:^\uYn{~ 2*IM4n1a{Syf:pGfZ{@v 3תvM} .я>,A@d>+I)Nl@X1D},eV-5N/sk֘0ۥ/3*ÙQZΰÚÆb癰Wbu6S[)/_bMKfNtbebwX;MYtF30!xNڹ{y/0/Ej14cZHZVPp߻*'ggG$ bVTDKWhɗ_  ?BRÉ P)҉"C(5:p_^-r=VDݛ$@ɼA Z튼 Wh-/eq~YGoQorJ>G=z(f[s/ Y#4ZpbK!:BnYTS 7C,ϴ _`!`!` =jMD @Uf6*xwlh^c#-|TsE[n-";ca-ޖBOP }4t*`0?2 #J* t ]M%>V Lׄ5Akgˀ]!Aɫr2S1fGU# #bWƔm‰ڌ[#mج\5)>~H7Ng3B3ok1f#"v3&cN\@Cy F= +R ǭ[91>Jh'B8qB]ȓ L͓"z7%gx^DGVBg?/Iw"h)؝*o7 NȤGrZէ|3j9qNۮjCa2V#mNkcq!K`c&*? cӧN2hzZ(75=Edgpk%ZP[J?\rFĸ3lWjO PI0Nc̒) F?(<ǔe']kD_DiƩPޙoE 2Ԭo+@Hf4a|R@ky\Ek'Be1Hhÿ0(Y\Vk&MXmB҅!IPkjdB6Br/DT(=42mxcG[AbY 8d4V&`bCjb\FkҪlu4& u^@΅|8.>1X.ހ_QJu(Q36nkFȣdV4{ :WA6CR4ӕ_\2v4C<&J̦k}E]m)an6ӷ\}<7o -%{}/Qګ Gʟ@wlGyv.LG=b]m>~(I//Eيs8yhf "[YpQeG/қ5Td׾N\p%) O7UE A꿬ϊ3Jo7z"[:.w$6]f%0µBբ%!j|@CN鹞Y5c(L oWyN^ME@ )*Caem@Pxf(t(x oIrd?%{E f!f{F $j߀Ol[Zˌ/e{lCJ#0CAۉ"b駇ҝqUt7fk8MA<:S6RyT 3)bČBNcf12n~w(>Da>鱥 1`YQl/99=AHi)aEG>8Zr@a&2~&U?4XWeaN񹚧>-\Z3غuI˶ Z7a~8`L/!L@ &]tFgg7H5'VJ$^E*ĤB&,+ TpCJh>wQ)<&GBA6;WNT#wbBpSlMk55gBv;[bGU@^q)3+oOZۊf- Y'Xa><#="RoLZ =ƻJu4ށ!쌉O0{fgk,X^q`.Z0.L*u+j߿<Ӆp -<#'N=yz:zu#naz +@ëʶnV CQ38nKc<'Nl˳KJI2F$$qS,%,ʈS7EQV0ҶqEA^;TY9cW0uKIsQ a`bg,=oQƭ(\4*egDy}%@vArƆ;:K4}QX GsiXΤs_b76 6Hp͔0^j ~;2Xq{O-Sw]yjZ% G_~o!+jQnWS G%jXis~&?oMnDoo~Z 0)gnǡYca(+G mBQ¿D.LvI|6AH` 92CuH'ybbe`*k-OVLzo:(}y{c|M}Sg/4YZęL|i@4xJSҏd'Tзф6"SM-_!}LuThk fNJP`mOb\./FW=uZp!H&GFt!5đNL8%3 hLf\#X브sF;=#:t=jKs"3ds?6 ͍ٗQ[X؊-\(aǧ_һ˩yfz2.mƥ!-@ uڲގs0Ʈ/ v>+K·^7\Bj,ahjk"(u$Nr}=/Zw@)ͅ6f>qgHV6ۡ<~HB\w\?z6_$;GIvGmc ,!}$`Đ'I^7ؾ^II:Lw ذ0"|s5'b@KQxD:Ӎba\2fx;zх~8_zPa"xcaD~=$O}MO_RbRZ)Wm/y‡Q'*8Y =Vmbk|,7U|ld\0G”JcQ <8 yƴ n3"@r.[QҠ~|{B[)dvGsTpf9g ?1jafuL ~k /8 t޽@k̷ չFOEb]oW: hWle$lf?pVU{ۜ "%zA+'g'uPB;8|r|" !Yk3~țym+}}XQ_䥧Uւ̹_O;HO a9je;Et98UC֊g.ykRݶc?'9y`#^yNj<"SiIȺỦB\_}/$𱎲 &qu_JbDr_tw3-4WHd}* h^쫇4`ےB9"6k>8ZLiw/lE|+GIޱ0jw5}hZKN{} mz*U,?g)rt L@c?a52p>| ]>O2l>>,D l2\UBk 9X$-;{uJ.h ^1* g),Yl_sysv'dvh1 젖A<7@ȓm$` 7M,;w],p|=[n`' 0N~ C(ι6U/5Q*[K6i@=.~2#$Za+"4!4'y{SH (FȐe+0_fN>5s{i^xteiJci <(6If8 =/b,lPN|k8fɽa ՟B8 JL;oUl|UE(`(E ӿz!# G'AM*7Mh3' g$. 'ؼ 9y_EwEI6/դ:- 鉇b3!4|+`cQVԦWm0-++g%=`O2ghuZR`b c׶zb 풾–UuҞvd\#si,s<\Fuem#WK>q$_08Q40 6{btzvȏ~Ȇ"ڦ7$:{K>3:"FG+LM8G1`26iv?cVcJqA6,Q3W7ʏ4uȣL%y ?eSN tc7T^ϧ1)0aĊAW@Flh. 'ǐ',$wɭ^ӥꬌ&~}c;Gmj= B(tHPAȐBgVaI3gEvp,ea5l2!e(SI,{ cұKŃu#{LB 5 |)Lq0}/}$s3c&֬t#Qr&;:\^E "+V{ZHiI GU4!>%֍}~ Z2#c@#u]Kb01Y&MHp>J22)Dz +?@<`uT[pD:TZ| B+__6(Z=KCcjc!Sk`l<$bgw'y!RKGUpm˚1!jO %g RֶK;m[TXiє^GETU.03q?F]Be"vNuiBwP`4:C7DQ窓/gnU4t;-Y)ک<۝B/8gaI!LK|;x1mN&<*:N5fÈ{᲼a"=h<Pm;ɣTjk?Bdf(\SJw"BOU3`0^v;ֽ ޝԥzSYS jwK M;)<0 >\6%^sQ?`{EvoHm+fQb_uPTt@MFe& #N>9w0ZPV8 ,j8Ϋ uN?zZNhE;q^iO~ؾ jdZvGA pUq08k? B7Qɑ FwZu< *1R1ĽgӪ`o$ *#iZ϶)l@LCaQL#ͪ8M_"LpDLr99ݽ~G*2siR3G`jF8N5 gn-ҋp(?P&#;h7%dzj7~,I?("/?B  5I߉zMM$r݃@/&A$7A?.t Sie /i*W{tg[W43;֖ku1F:+ bw~")Թ%X5PP}aED=q5,rϔDn/3 >J+-ڨ=ehEP?$r:@ n&24 EYTRjBli|QLt,!XMP"d퓎_@#z 3a|#<U9ˆ `Urx^*uL_*$*4߫N{3wp؏}iZ$Aq)e'9pR%uX7ob<'L*@Z y\2rZPȆB@lu𗴮Su[㄂Zc ߝRAO~;527Y<\9vLZ%sE-Ǎ 7*w4mXgh5S/M,Ӎ7~Y4陠_j4xIY$A@_}"KUٕxB@[ H|Aė #n0J@$;D+ي16gb@땄-3١bCѓ!>!;{ 6Ə7.dLc\FA~5̧[ ӿ(1/qs/)fƪg ѱ[IE'N精. ;b 7\>}%W? ()- Ygx"2v׮6Qt z)op3 3 #e(g!AI`IɍU|LTt ',k7Oˠy 7Vdx1=te-zGŔ!Hf`'Ax-]}җM:YYh%& ܼRLՋ mlA޲f!xe ~ܮ0t/B 4v))P7%Kqʕ@4&0*ޫtGy,ELSO8 c7~KIDҚ ^c]B2'-K\1069#Y<3\Dx94&&qˁ׋j$9$0DZU[C/ IH(d%MFhn>g.qdr^HYC¾| 7)W=BqT`!z"u?G$٤ w?p)ʷCɟQƂiRR颹J;L`AX27KPZL C|_wѥKY;[Ŝ%wo xtF F[x',|ׯ6:? 4HZ^N]#Aڦlx~~ A0WlOɣp;tWzՇ@rBZ*nP3"gJ.{VhI87I!΃WWxG5e߁[xZr{*M9O2B27_R{,;`Dfkw2 4ڈ)\XbCѱ@V9X,xϯbtN;7:LĆ4K__t {)" p Dl4sAeLcٿG1v}AOJhF+Jit~jnH 28|-ϡ{ |Z%7tl/HnUi<6. \^\Ёqg+FzĈ"ǘhHCPncs:! `uw7qajP\ fC"Cx G83wvvu|":%p낮 L 15aw+; MՑdl8G[_U밍bwH=&[Mfej+nTq"Þ2u-v:䏑Q0ZȀ<Z:[]4G*+'>U'ykbCR%!?ũK!dxǕ2f/{ܘ-_}@'w jNzͬiM;3aɵ X@!|Qc"\TN;sRm'x)$Z- . Z qBatCyTE9"C] ^勩7[')t^$`_~Ǵ$iUQf@, @CNy=yɷ Lca+O RLA@ R/) uQAҧ\g7䝘/"%poc G]C[qR>$K)Z3NwWex}N:_JFv?#0=|8Mĥ @sC+ajiO)#,2PUzE. <$l907Jh٤I!w ܗ=ꇢДs >6/M7GbC?kkX/ҒB?SN(]@u|) c^!upϻw}iȼ?CNbkJZHD)Z5Ы! %jݑ~.?7bܘ_2oR}Rb ԤT`{…٬m<ᔎ'(1=jwMBD<ǃ<^bgQmy`?i>8~!#ef·}V)Gf:ejń\Tvx30+GWqQ?zUث*0H )63ޝ -"u 2]3Gz*%U(oN*]3cB-4@n<8bǀ9{U#86TշcjnmY@2h(YqKv7o%lPw_g Q |uQKSabS B~t0^ނY{2 Ry 6y%z/Ջ?xiP4h{ш-߯5jFt)/'.9fAW:er K'|+z+;fS9GR ɖi,_٨/] 6YT6Bh+b}eJ84i#B P:WKD9X\pr@Ɍ$45e_lKi .@>/Q.>H!F1 :sݿq^T2Ikg k1ڑn4A)2‰z"m,, +]}1c͇g7("*a%}DNDJʦ4}[j0̘>ԋ4Tb, 'e/j̡UC دeWVJr]4yBHho/E0·X`i_|ƅ/H%_sXKi8[ޡ13Y-\eKRÏuF8WDlY? 7Ij~(nTsLѓc_`jXY?`52ʽ~ @'S0Y Ydld8na<͜M'Ԯ"K?"AoV0i<)Us%\/wMʐN>`yx LԠ))2e䆵}P=[ []>~W(ĵ֓^2Nh }cQi6e\j W=zƓ@4}i/Üu竏3 0U e?=dufIFLczt\Uf{&I|z@P=Ob#lqa?[}$^I:aş_hO>1locJt;SNz~JH?r' ,ǃiL k֨[2ĝ\ΣB2$ll~[Է`8+cƱUɰ;i;Bvġe ܴIuc!.s5~?IZ{α `n;f%lQY8#ơeBhu$0 1ji;ަgeꩁʷ>p./Gd!~^5 4 8TU2엢W{ڃldV6k9V8Գ諧29 Hx5+gZmevq%Z)]$4-5` aOڗ*uVW5 Ced!mLjW6kj>/7ZǼ]d//]zIN| _txC,ʜv:?vWĸ ~`ּfK P ~١Z {LRz*x9ΌREP^r8~$MKsCk>s(ic! LfutYx 7mnK`cy|r-[uO6Ö9HDR@(s>zAVx?hv{+ :c9c#(Oue}d KϞ8#?&bF0DzaSԚ).IJSG*ЅuJT.ҽ!Qdt6 v? S5rиWlCDL1~C~eϒ!QמwF za >+!Dh۴{3y#o G4D]'Tbu'.S-{w;/xF" s:^DH)ry MaiW E ҅qH'3=$U7̮#E:GS9J6;-S4gn1dž4tVlŐE BHF$BL|2rux;.7q//tŌ,^i:Ztj6auUL$X^Xv*6!t;ӥ..FhH10uI(Տq)/H?a"4Db$.-$.4$q ,xy@L7X{dXqӪyl25fCjpn%Z.fNwe.we, Z0<'*,@2d}[9P @Jm$}dҰk%b 6@93I"뙿^doSߞ@#Jh?#4<`}]ScQqL1 AT9L'(t|iLYd2Ⱥ= T7AU}=w+frB)̽h/I̽pt`:r"A1cJvMs+ J:w?D\"ޣ "iҮ #_&l{CE6VӺP{PP^G'2~,DX扡:nfGzad)SNiw[QZ'p`PT2^ںBJB4(G@hA"?]`#Wa[i@lv$^8( 'Wx+SJp@[ A/9 qzM YY6e=Z2Zi?LO =yY_8;Kyv^`1[ $KgO匫x<3'Pu:͎g9X-C$/LΟF1a RcV$dq>I$B"K'qFPg\ɫiY*msxQ!wц0 :А׽O{]})u.U/q<<"r*ob8@.6o12BL&jja=0\qvo>V2}48BG_DiY#07b.S~#n GU<dsXt$ĥTRVd</bG;3T_P=tŽ#eT&$nMNJ6(=!|#/zp@I)i^;c0w 4pؽg !%$C#'s6<~5k+nu16s`KכPܯ6qѕ&HfiFF`/_ I~5LObcX5ƍu|@DQ?O[ 4 US0z~1 _u0zI<.9Zi>GV7^xjpwᷬT.$ﴠ凫P5dyOx_>+&L?skwW{[,`M(\KvT]sxz-+웾ߒ6׃D z k_蛗I,Lil4(^"bmvUP@~m=y60 O1SI9s_g6'A]~#pP|][.!*QTVܘxLD d2;s߰jl<3'9!wO-uHIU>a>m d_dc$"LH`0i;FСq#z}RShBXhڪK \R.J>lGhMEpV̀iQlUpJrZ(zRPޟ4 kQ?ܗg /E>;"HXU'>+ߴn 6쀊<EPKvm | ؋c[α #!<0AʡWt&m;aأ{^o99*s2jƍuD:!:g!98{~NrD~R37ny(1c( wL8{;pFt"f}8R,i5u>θ'pNn倁!`!` A@E=2+i`A*]`PO?H~f_ :W]2G`NO5fOrKhU1h1ߏ37J0oR8d&9Vf@n7;kxpY|&DF;O2`adZ,ZSf)DjYHlLv0+>{41bG,w27'P봫eG1ʙa˒{P`TJ-A.5/xoV_LK#P}&Јg56^ܧndoҮEV*y xTvv03㷍l9yG8Aҥ#X)#Ǎ6V`Dlfz9[<q 5!*!ڑn1"wh>79).=^BV9g4ڌB VCL8o*ϱ#СNfp`'LѓSqh_lG ,ӱ/ΧDyu|IA3-.rGArXi~0~ hDZM`P5b Vժ ɧ :}D.Ŀv{T>|,¿HcCj {-'ـv‰{)sMG/dl!.PTP ]nȟ zBü/ZN#bSd܋<)^tӾO}AyCa<,2Ykk{ ꓁ŚeO)_`Ĉ|NY#uuVE:@qN8bU/vo+: W]ji+9c ߬\Zwmaz<00Si){A?s|?b "y@D<&W{BPa›[헗^A &i 4^&"oMr az)̪y⍲o-?9WIYqAAG-L3զ:1`e+`JS;Llh˯N3_Tϱ.m[\/7J3l`9PKS0'%SɅ1PZ* n`b9Q"wXޱ.:u13 f`EH4RQwdqJS]*+$X\8' y#LزGQXi޺&ڋ|{4@j_lj5d`>r Dfyk!PUI@Z\6ɠE+H(;҈Š'"Zkn?"u)e":㯜KV!@Y̐}FdrXjfcwz}CZ@>`9'QbCwMN \?}_kJ/E+0}J޳yt0"%7<!-Y o[9AR@DH$&$r*l9a+$E9n~''9|8[dd"##TV"9]2LJHj,&,YTzкj"/QݫuVXAQ8sE;괇vz )f!f7I%dV"K*/m#AQ"JMgrQ\#7MH֯u1V8=\`eu}K໥ouܑCh %^fyKieiZ.' Ӽz뇬*ɮ'&_dm< )?t;{_/5+چ,\+V3YA`8Yh{H. >?쵵$?_:%TpFڣ9w.mNʂ(>Snn:Eǩ.!ӷ=4柰RzaPp^ 3gm9n YWF؁[{^] @*8oEN/qjB9J@)|1; $ FXxLjwa~=⬵,Za?5d?ND?  I`/Wz{3Q{{X8Ƕ{~Og(xٍ z]|J!VQvt2.l:"@f9{ƘR++i2,FN7FdM]H7ˊfv carPg[_H;?I ?S  ,F#Dk󥋂'+޸BQXUSkVe*)Z@ #BN(P$a$~,&< /|[agڛm =3`#׵VNU (БpC`/;c6Dqo 7.HD*yO'J0xLT`?-:if þrW 0@&[*I~W!B x(_8_$\H3|n6Ҥ3;OZz=!4_–s .2~,'搻 qzͻZ:7(d3v~ĺ@֟O=cM&'*ʶ"dHr.ҐhUIj.>k+? P̐nm8؁[bR=Z/OPW7@Ù{ fc4PM./F{)s0cU8Dn]NW;3>H<"jUlw!zPkțM6ڽqǛ꧌׏ctBLq;0w!`tME-=)Op{tIo7Oۆ<2Ykꛃ@(~<68;C,3v6 'Ouu NlxJ RP@C?['M15ڤ-k1.C.@iueG]_,QIF1Pm v;D}8Tb|m9lM.&UrD|j_qHw}u dJm0ƹ:[U, X З **「f>#ri>]%3 c@B|H6e@q B6y Н+'Qb?%>Tq-y 2Yj(od [Mcu*+& 5ق&ie4bLvƎG= >iiĘ"jP=EE:]Q`CuI01<n~p¿wBd )8-W?Oұ`8mMm(S_s kVx /0nm)rؕ)yF ;KDXEѪb'l1GmC * ֒3ȢP .ee<oo猜!e dՀW=( ,g6yaC%lQX /B䨸uRp tM+<h2Eئ#!#2Px6ޞbc-%ߔ%_mcJz\~>"Yf^RE1Tڝ{oXJ J| ޲jL+&aѤ$92/VF6<ݺuCjn&0Fd9nsG1K+u ϻn {GH.#!&mts;tRͰ{Ehq;A<7a;ꃾ!+-k<>3  \ ؖT$ q*rWI^'wj1600222" G>EjH5-V;7.VD $>Rk%>zdMvl`쥢;{a*_mG[:f73wWm"fcByWqճ=wPc( aMDSd93GA›eP0v;HZ6LL|IkRߕK-(RuV@oRSyI&J(ݏ/ʊl{L+47s6sEeΪ.7h"ƹpXHZqfdNdCeC0j*ck*~pW?^j#2hg$"* Ѷ=x uA-r4n)G"*o63.%ov/Sg.ޣʪR6j|BLL k5DO 6 .,H) VHۭ&AlgZsOQ@JVf۶2/>+ c0KTˠ)>g8prԉ)}O@"ADzolS=c{ OχeJh>j+=Y#]iw`$kĔkQ {IY0dT?TΊHku%^T x*ɠbEEPa[ځdDٽFKz wBf=`n N˘WFϠ~KaWl%"|  0t^Wf\^-`BL MiPu,vW}k(y6p<8g%KbՙԊ:ց!`!`ajMI u1š)ZmFG R9ò /(=+6-'gQN R7m><95Ƙ7!De[0٠c3{!#qWVA<,k<8&|R8kM,DrsVH' Vx]y#ܿi. W:e"D6d/Tm.ȸR}jԅ+.Ye(qeWv #`rqcڪp4TڍA#'8~CqtX,0$_`(\5a(gu| k:EO%]s,Gs|P6ǻ#`yoZ, 21t ҂{v_5/4v{c|/7z+^cV**m!>g%vPd(JZw%p%I7c!8Eut*nf6ov1?LL[)ئ'Ds޺;Dj4'~1jnsKʩXhCƮ '6C_Kdz8/Jc<ht^O4>CO9\T̗4&$)(f?_?~+< p%t  nWA w[4@Zup"Ow^*p o~^iibVtN~SxJ\ BWSu4ܖa'R a\?l z\@ 2jթO(zFDoIޯ'W̸|M}N}KxAƽN(-d!7]2s1ËfӀ#O yk؇|unK6L%E)c·'+~t^J~Y }ww)?S-pn&~$Z"`8/I|Ѷٞ.5WÂYF {,o&%P%/(ED+R< e|H)?eg9;AOcFb _;(2;"Oe-_-1X )iALbX@^$~ De86>sٌr+1f'1M$p*\@w+1 ˿hy"tu78j NRA8Sq?_^`/e0bK6Ü5o$9weRn(.GHayqJ4ERkKQPڐo3f9Nʜ?vq]%'nc-%=dV[<>a_)i ߃ 5n~F=!Vw8 K+#.x*-:4hba/5WfϳDr`N!dَ8\HN|hٹҡ;;T&d1]Op==5ÇaJ o-Nd6LUÆrePE0]mb&:ڵV=/' RT\de@$7#zrप^,ʈ۴1, }\4Q hޓ{( cjb Gώ|h#bva/-JW t#ANj MV&2ЙZMib1VXbu\qX2QL%i̜P.5MsPȏ+h}L+Ǚ@ר L;H̍=exBc[:,@QT"-LNcV%! 7g/ EfSH!'j/ePTF6Yxz34M^ 4,ײZ&|Lc_m#gUjeߕ<Ն rrD \+%K[aU]*#fR۪>& *Pyy tܜ -ck(Bt'/:^Ӓ  @IX8lEBc%1- sHrkDC+7)M?I $z^""up WX/WKP,0>&Tkk/|s0! #Q1q(&AXƲ3pZ:LX%7ٔ@bRCDu5:Oj>"A;/iY`b&eLI`!`?]AeIAhL) csegS×[~u,.dZ<-f܀HntKFuY<ˆQ^u Km\SO%S(h 1r.;ać3 ~No֠~_&w"WpZy_/hh]5M3h>xY`<) Q iz/g3ƫKnj. ;{bȃ(z7Q6Ћ.'_6QL:^%ӱ ^aFqǂJʱM*PMܿ50bٴel/Y뻼N rS0[wגqUS`o).(tL\̩7vdrpS>S35d o[mqgy18^H*ﰰ,JuS:hy,#x6O?@SP>k,AP/Fa+R)|*&23}Ye3s[$99sqs3#=z7"т3``u{.Y̗Eu> PKhЃNܡ5hv⮚ԦBhRO~jKT=精Ή&/cl48BzRLim̔m! 59cz^L>qm1:ܭb@>q@DݲBa7ǹ9wy}BYjɊdPIb od*L{ʸaҙGAS3yCƾK7@ۻu9<۳p(KiTT4]f'~A\t WaVKEoy:[A_k Oo*2.7Ň_g'|Stulj;`ja (Lb.94C}m8b/蜇rbiIe"1hd匢7eDLJ7 DxS7O00 n59O4?l;̐nWpu =w mKoM0YUxx}6FlQ=Eg73\Z>֬,ƴ.6 1%_ՙMh%nX읬w[Rw.40]!dqM'. `4@I^%:{c=f;e#}=n2fG-`Q* A&&oK!Y b%Bt$HAyG1܌"0Cd=ٛest[#:D#DJ-&&&1Sw+4I_/ 37r1>K0%,BޒN zD$!U ح?[Y|V9#V;JD?|Vk.-'\`9v|:贤 ce:9=2!E&C6NI(7mX ɣDH *4/q^oyre,bը 9 +9&5n2k+dU8DbQMfG> P9PNU4Pa6+{=> dKZb*3h9ۖw?*(0T+j^YnMڤh^ wޓS+Ji=:in)Hz/ YI§<џ•;oZ6m`mS*}Ѿ۔d]DJ'߿\3Kp؜~8JyNAqG Ll߅^YeUq ~ g'`v6:(I) k3az%iQr8},PZO b YsGXMLԵ~Fj Wtnz47J%xX۩PV,#H57LIG0Ճ5J(_' (p(_LIg9SaM[8~z\S8 Npo"읱{ dWoG`)(uK2 =f(T6 ʚ-6tnO԰pz M֧ 6Ċ5'8}Sq׫^r#SSRtm'Ud-T3"TGŸSOm韂 BSlu޹0|urq?D+\9e~=JnjL$i.Ѱ aL!E< eXEs[y,ҷDKάBi˰u^>vޫ;ݑHzOaW?{wDIDË2$P{T?y^[cbGf7CL1;~xve0J*\/'P3b;N.G  G< N"g {uHKؠn !31Fȍlo˄qa%Oخ'f-R w\a.,Ym}O7:gPFJyЀ}Үo4WQIPԻ *n6V Oۓ ==b'( ܩ?J#iDqe~ QZcCyt=8apPy li&3+Gr\WXoI ļa"^⡞?Dp7֢-I!07sl$53:4>r20/.=l?ɖXfr98i.n4 q3su~*S'oH232XBƟ=`pg'4\`k= Bg*%bnrN*dzIkwqejJs$zX2j?ce /_|b)Fa8as>3+l9yɃ"%!$/ uo7;o{DC%Ho@S3uQ]R0gJ564_?栧|_ Дbicٹ> 'ߦd5W.⾕|g8UYiƞ@)˰p:HVK:/w㐏@hN0+E> -jcK !W4\ TucHe=1\ݧZ ?iТE#+\q?k5SؐVEFq:N#`eg؊P @ #I$nP/.$ϔ5<$RLN1{P8ˋ'Rè/7`(UiÕ/`h !3D1Y]{`xlLE cȊ('oN入"C%**vn}gJt5,0Z7-ny&Mݴ!Y랜6I4`ȡ=$ BphwR"?m)4QFLvYy͚)9Vxc2Zܿ}tLAwwxkwhŋ R/KgT Uom^=9χ$`-!GJ+ε/Ty-9x}1$U`ZhKMrYn^dluj3TQcŗ{|PM]ɤ8d\MZ4cY[s5&f#~{.G#=~4IP fu U#O_``5-lfg RtM8 6)7qMX[x(7-Z!aa=ƨo45%%Wgne9(C <Χ;kgN}lly tz*3g7q:K~5/od/Fs_3hߑotvPܕ;K"\? d.nq:/Ԣ*Ԫ:e _{FI,!-yeA[o B`di=}"*&R'k?Je~ TGY[:|;Cho3Cdϝ5(\)4HPK"&5؍ժunH2*u){9.bMPcpg^J ҆lX[4M$R9PܳX@W5ܾx`u _LWPm/ (vYix yFcs*6p-K",cd1?f, *#˝7Y8UZUs~FM0΂lv4(L˨3/d‰S(Hd1] :3 .r,U[Cy4$}2 RpyPuɏ)Q;FN*J85+9U/Z MwC_!JA#0<9,S“a/XtqO7%`t[@+j'=B.uiep"C'239l?=DCNb8X*X{YpѹuLbm-`df9 -Vte)@TvTN2"~ashN9;c>2"[>0dF$ ڎ6N|y:1Ozr4RXR aC'N-xޗšA.(nlOgωTQ=2y^:&eVѤ. ,99Y۔6tw-R#.[zZ @Tv)CMm 7%> +MQVdW VD0(N|E 8MwB8A":%꺢_-0wM5E!6Ɨ`l7{eڠyP˘mrlўI ґ;(g{wS!v WQJG/I0:<EQ#*"lNh &ݧC Ɏ6y36xyቹä$߷LޖD k'W}yk< `@ vyQ~g"Syn3YrH&BR.NxZYKo\sdٍϭ3QF:1\< ]^ռ>\od|b"@SM[`Nr$@#Dr(ɭq ڷGFcXy!8w-)(g􀙥wَ}d"nsۯm/_*NHoy+h@c=Ss81y$X pkC_M;XNZl/MuXjڃNT42 bj1;b{.^():iw׬[ 3+bCfk0Ia8  jmWz6i(:a8:* X$C#qI6ieqoU4"(y[Jٛg|qAwL"!>Ϯ48`3~+>QԴG@XIJ9ˌi"(ll ВpK݈oш|/1Pn|N*tEDp%"|k,pLN"19QubZܥ3eJ\7315kMs|9\7T!04]4 QC衇]:nMxgr;LUoI0јPo?'ߖ{}X%A\8<2LTlxbڀ.IdKU,Q澊Iѯ1~6Kw8iaNs:Jh,Q)bDհ7\}_ĘU6!%e5H/ƣe:敕)3GϾ=V갢ljL.} HJܭ:{Z˴RRNٯ+PkEɋ'1Tg(l T[-- IZ9tq>r,ߣ(7H>QԳ~+*R#Uyp p``Ke~|NnAnXbWxik2r գ)UfU,VJB˶xx쨘V#U~P:TKS}HRK?K@>z$M#a0 uϩM(r`$t[C:x݁ù7[z\ }*t)h)x ֞Յf جsUTUHx;4 9|p1@1`-KBͨiZ~`C C9A˟M Sd/)`iQ捓7ۊ90Pk`c=m+2h}MMnY͛5,_ցy-۳}׏6tHԏmZ-!qa읉J7]B((`:GT"m ܍_&R[Zh|0.ȓND=L9$JW9mz)E 4Pe ⧖KEK2bZfАXr\ 5Qd}-~}.Z4yp 3zBv <22{җ2,_OۮkhW:D|x1 j {(2߹]wcXmeK c5o2 ^a%h{燔2=^d905 tї4![`v]*׷qnt`~x%M#ji ! .MiG]t'/Tȉ2cDeKŊڢ=&\T]WZbҼ3EiU9?3Ј'[ g4o7FvqhvҙkEr)wet% i|ja`+Qı+zM.rz'Ɏ_v%yAL㎂h[usB27 ã|CȡM[.8Cl |إEy%Md_h` 8lm&Xϵ eih8PIbP{O~&e+LE|0r1WЭÖC)~`hۼ$`ĝ㰿; 1rsqZ&(oPZ9|_Ɖ$茜8OYͰ U&Pf=R;?G9ֻp!xmvL SQXvt^lBG]e֢XFq W~kdī&zfUH h.!*ٳAFɟڡ) p\ #Pߪ SqǩO]+0xpLĖ?_:h)6fD}מt4<6h\]#hFP'>@Hn<6U=0d[*rcPoZҝsDF7nN4ٺY>ogp#"W.V)t})#z4* @x4P@a6(S5P }8M-YW"ؤM4]){_'$72I5ޓbzY8YW.Ot/5tjl|7A_n}xKbA:c]4d=F]v{T@o,x`桶AҺ7;M4yFYoǔ-A&"wf))}dy':Ael6ڦ&8NY': 1yY\;+@5#)*Ϛ{S%\RT_/$RQYltfGUiq\3Mv;Sra6ik֩ 4Nd vr6WC9c4#/K,S骐sE*jo{9l : Htx_KSvNep(u:JlqU {N #_B2tUhѬu?@׌M|vaAs^ F9Ɵg6fwgMY~I5ߝsM0i,^{KZ+ѵad= @ZhCF7 iꞙ8r@(pC9.!>փ lGuz&J+yF5#NX&o1줎)%-"܉ﺿ.,vգG~̏[8"&:گT*aFt|xF.ϭZ 4Wl=t3+_t&R.4t֔@iY ^iM^AXM~ j 'ĭ-^ߠf3z_R@/w, `w~vk>(Cl3w_R{ܾ4ᒏ3pwfωZ,f"xofo>$S|%q''Ӥi Ԃ~gV\Z&b* czctx }L/MJׅNUB %lK ,.@^sϑ}oxW:etdTЊ|wKrz;RC1Dn9㟭gZX vʈ٠dO3 w]NKXNusP2OhsZ ohE7tQN\Ǫqd7.so#hhȇ[7$OVH9tRD{A&'!z0D7nd>w{ǡD0--rK "FU'r$:{gjAI$aWu(hzBU:E8Fw&t\_Υ0멅xW}}(jBAbqsT4M 2 };7(3f+ȸ^X5UYzJl# ƨ#[ʣ!8O `9_Vr p'_$k-y :Qtt"$!d~B_,?PP LF 1|]BsbLXi]Lݿ*ŁT[ȕo1 MqZݨ8GtCT?Eb3Kn& 8Ɏ}Q п_.%mOh۵ 8^\ } caׯVQwK„Tb2UWcMgR1 w&=^S*B5ÝduW[2q5` ,!Z ]{~Hއsnq[ Յ3PKD*}h`-+c'CR~7$#,΄d?Pa@iгSh{q!2eI;`9PeXU\Ky{Ю)q%'#?p[i$ǹAp-u{)aLoRqL )<j9z]>ӫ8D%Y]sg\>ŠL#vZwрȦYĊrO&p;p1`  Nz1I>mxENu`qrq5IØew(R\–q\uȎߧ @/!Zt6σXz/ڽ \u5H~&<75#ʦXK)ƐQ>xX7~Ҹ_a hJ.>\&ޟ6YO EeD`UdxO?IƊ@ bLж P][Z77 iX".f>|VSz Vlz䲈i\h3=#GX8)q|枪rmPj)<0niQweA>ZOJ +O8jÜdfH0Qij !ӑ7Y_ܤ؎52=Fu6EFNGˏC8ϩ>I&~3%ưwesET*eL*՚X>.MQ2H^a43L%Ih[XYRy6χqCQ%:ډ=_\Y 90Qdhj^Kp[^̇S9DI g?4&DATd'k^́sKL窧KcDxlP*Tbe3.-@r։'J(ql?^ҹ:*aDK\HȍPCPQAXQ].Ӂt=u h}]1Kl1n8A,}&-H'}^.HDtz¹P{8r@sY91[Hx !B2uAݭ+E <WL_8ɄŹl],LzFDO?L[=A|PbUi?IHvF/]w-aҔs_b6>M ;kcMDLNf]*܌ rb8)g" rH PpT-}բ BG#\ %C ,i'eq=4v X2( s,!m5ς@GrՄNP AmuQ`R Ⱦ1:%yXJRh%T;(!<N;/V TG#CXkKע*{vr,.ԣtT1 }kƱ!MsmZe 4hB,Lppe)2mGגd-yE|#J5>IfmIyRߺ֖:m5{e,WIҺ sНED}u /*Λ?s7;uCUM./ AUErx=WBhn!~a}(ᅂԔ y<ځa7o !\ᘻXG$YC<b|N{\ƃr`T] m P%+ S*\\5F=[^kP0ftW9xQY%6ḑ]>郔îAlRئ*"ϿyMw,[n r ڞ+{`m~?x))Zf!`!` AE-2qvHl.  pWuHZjpN-~HLhnycz"mAh9DiQѓn;2MA.a"䮲L]YJC+b)#L ~J rK熙702[6Q PR&d}y/r\wz0X e~n7FlOq\XAa7#|ܨR<@7 a',%' , MOp2ݷk*;!#bMĂ@F dwlB$ )Yb2楩aM:zT0=m \Ofn(ѥv mk,3^D4RVTYdEN g1U7>VMFIXm${0-"cah-%Jy43Ӆ69)]lgDn0+:k~_#@g` {πBA5b?Sz)%4QRxaeVm -MhD*.%Ԧ>K:eXpH̗2~h?jWP13Ls>CQB*f`<^w7qJS[S૦s$WnXjBFv,Q9& $QT=(3˕w ! U1!ے n1^:eI~؈]Kf#WSAwMLJUC!RzS,GqR=ޢ] D\Lݩ,Ws, !*ⲷ6Vvm*SM|lGG:Y c)1ml zg"c BK=C RdU1 z^7H J3v8rQ.Uu0g}D@ .u%hhEGҼ]V/G:]}B23S u!׈oO{[Ր4|TlQ+%Xe ]mkmj“m|peA i᭳ !ϝ|(/3AMg*&PW'$BcwBj|06% `v_];J,RuCO $LɯDJΦo>%$l"M!p<O>I5%$j/s#a0^(k76)G<: wt7y8[-H! k10JW%Wvf 9#wao=}6-e/T , ;7t򜶃߯gz99A4-JYYXk8@[9f?v$NL{]ka{J?YZa@cƎLӅ/Ls7.d(p35eN [5oT8$mïk8#dʁ;L #O>PaCL!^"#IPImI GI10?4?}l{Vk(SMEg Ծ]J'[6[F F"jɃ!33"["~׋!'96hu0?cfKG|$MLULM]ђqe@}VE tNͼ}y1ǰ:}UT|,>}-;K VF7 I1xԙ~P7l"ƋN7,gp!^F(&ؾ,J!dJ Vv| ]Y(Î$&ùoѽOw05@+x]-8H4<5e~$69jIh`3Үq<$?q|/g|PF8X7WViဓ1#OqպFaNj-1v7O:7C/# F{ڢF^ fmjQun{},鯴 ezb`,#$^Ě' .ع~+ _7g3.F37nep~*kxO9ħrj!?swGX2AuEQjrڜu5$Ҕt!!=+Kہ!`!`jM#Vxoa*'o].ӱ|~C'!]C>[Id-5J5b->#$Qq|"h횑'r29|sh_RQ [%c3u %,m!K¸ohTc-i>&D% }~um}l-ӹ9}CoZZ 5vLb)J YΉ;1w`'ΡI e*oh2Չqvxʍ_7E#6UAzEõ@Ӥм`BL g)ASBהuaڤ"`TJC͔UsŲ1U{8V+] Ul<gCz/YXJt %NT(^},@>LUЁ)8L%G `TNDX1j1t]e|{=jF&4qan|*t)X#Y˙^ 3Ί* X&a^%({сxsZ*=2ăͥ*^حi|ַ+(Zpo/W }ī <_u.ӌǨ5;uh|`0IOw(? CZAxu/q>S4FG[˳@UQ&;D V#SZ'5ʁ+; Ȅ/@$Ndk@<[֝KY!u]k!y R#z{b'CP*=M LOǠ!`1SAIAlLvnɰ~ł t(=%?)qT*]K\75Gn+TY*lKL11+үE > el3 e |A/*!ƭ|Pܬ:*8~(԰ O^o0׷ z20EEaTBm @x_ H:.sR9Bq1nSKb J Z%!-m\LOƠJMz~a2rt%2I+ߋ aPR*Sb[* ʨAVF"1|`g#2KyMrg ^~|m/F5F.Ms)kA:lCAQؔV{EkZ4 p#꺃;(3Ai6e".Ͱ_~-Ӥ)WG0՟KLsA(_*Um#$tDgUDLg69u./2!|vN)0Dh)[2r q"VQ&<6ӤdLE~Wdkw_k("En|. _;7b' ^gC7E=&ck <%LQft]YU3LNt~48drC9*CEkv!#ScL;y +QfJ(:%"%[MKFCM}I ރy);uXH+By҉ K')珍̵X ⏒1>r捄:g~4c"=f^D)<:H0@4ˮ`x?t10IńB eL㟙 YKڔ՜#B;D@B Qz@فECFǺuo4hJ-&Bao{z黊SX_>ĔxwG0)Z^eY>[WSnX>n"rN)/\>LJ [?I{s)Nզ;W)b汇ɨE!4<{N- )gq*1 $#A74=4-w?*Ia+P1upQiLfӗ{0ګ`2xb(y8E# ?x@DO{ptq㞱eR4ЬA6KSB{iW=JMGʩϞ=X^X81IVYka4LiW &!s"cO>Umh7*zVqJ)aRRHkdZj@˼ XrtjuV7gvĥa2-~;A;eK&!P'tHf||QWc ƣdˀxy'=1K{- MAQ%M5h`ކL Hµs~𼱜t2H?&Q1uqΙv n2íh$f(%X u\]ˮeLj:el1PcIG?%"{ָGvb#Nn_ FާdmDG"1_p[/ j0 qtڦx8c "y3Mץ|#lf#,i0Og%Hx>9mpeo1*bNiS ̷O!U@r'36׏s$b[c{{3љ]z:╌XFnOƿ lav brH"eFN NtWICm'UZ$s,1A ,Ǿ)APZ](i ׫VJ(LxehI5tJn21RJji63- ?q$A'񤐩@Oȉ.Bf(gߙsאh@vШk8RC+v@hFTJLQHȍ'/iq { %x=Y&I(ہ 1tr܌fh3+gYτV"Ogb_ gU V(@'3]н;t}N?9{~CN ."*eeVV\M]@g.lj{ Pz0 ˥8IZ+FGFzPȝqjw`ˁl5TDE)T:?bz^b.U]} !Avw؋DG`IX y'CdJ2Wbv]~.qC|Cs7TXS-gD G`2X] ۜ^_~7AaY~U+m>]* H,/s٥$RP:ӧw\,1sޥXi\ֵZe}.|C{oBѷvhv?ֵ$FC#D n;,odLU'(U'uwZɐ@41ikK:vr8F;.&nb#+i+/eGsu~<ٛh/e"F$B[.03V18$ԨvC"H,lrkAMDFn;?Vۛ;}JȭFjwݿ/`5c d'S60_Vpd[ې=<2!-y6b_49{b>cP5V iV&a~B*8 ݉0V \NCG2e-GUdHhQ`r}JMʆfJMA6)V;,_+j: n6poB/R $sd!r#-I`0:nq%=!ruD/}řozO?m?Ȋ'F W2; K,.O;wWT|adCøb![B#+BnkMS_Ȧ~p tFR_9hU:W_;mxi!#LED-,V:v /J:[@Cߝ2[*{T{GMf2V?c‘+9vRxe|~8Pjt4w(3W =wu!FZVm![8iSN H⃯e. m9DuS0$=(@ۥ8=툉CA,H$㇂mOġ,ޛw#;\QuO6L2"sâ\'aIJN%|%Y)B \|tO`<~1ДJr>RN g*XP;( |WTn[t$ "ThܸWOBgj羭*G khKTU T)QM,jc;Zx׫S\:?]p{1(INix~;`M;k-%-cڛc ~7`Ư`F띴g=k(lȑ3*fG^il.թס¡Kc#UG%ȫ|ғ~FK}Yn]cS9{K/}f-QUn{9:|(4z/DM_߁p)=;a0'6an}:C3EHhH0on@m($U'1[RC+0ɧ,*Esݲ7ٯZ?.nNm3f768xΌ[?=O4$1A%e#hS? 0^{}_Dt U7HSʪܘiz:U)т8T# N.b۲Ie_/0)F-eUs^~bHE>^0S"?Q'0ע 36`ff.jjd38:7Ք,$ ZR-7 _(oeX"3s "Tcl='$WC D/QJ%n`iK= !қra#')US]yR\|1CFUzaR阺@llntJ+~ǰUI\)p^/K|,1槎q|gױżx'Me?.J@PS` * wg9 Yc})F1F &6 JP$UPç75o$c8z@u};xW;&@^$ -"C6{6c4{UظO"?{'Cua`wxqJ9V%ۣQ+]hvU}7v\}';k㜔c^50j0RPԿng(ҿeqn !|E.s j asVb@UE@Û]>C Ka̰XtSL`Gƥ -ɗ*9k s=Ե Tv%U[Xw9]M g+gT/3sg9wYprAKD _Ӄw2, lDޯRcièP8'51J9 zsV`fftlFXQ@uLq&Jߤ@yw$έK _<ʨMЉlzpNpzGջ Bb4hkXs܃vDsEvkA_@?r^{( xA|PE1 _koޤKް ?NG]H5/*5U4 ە4G YȈ Xo?\BҘ(;BK/)#'{/ 4ěwxblHRh8N &͕Ec  ^RT,Fuh/f\cjxcEɒa<3 I9}z]Udzͧ*QϳNXeV¾5l3Pb+7qndfSۦO^gš@"ވ  Ҽ&>17U eObUTҖ KCN״ќ9ÇýK/X[ߵ^u)qނ^E"%'6M@F8QWt4h 2 E<_Cs폷BӾ$`:QzVL"[Ft!w*󀱯cHȥyʛy/Ss$ڀsDx!6Zr5O_ a|@"B#onCGj4}/ߕ2v()"iʑMوvn4G4K?^3Q)3:?#O|aw^A? ?"xi*xMZ\`2Նϭb瞹BX ۝ԡ@irg7`֊?7d38fy&oZ 鴳Q6* {o%|s'\CtyZbk6SJit~.Р n`V1b7Ch?Va?\Md(fd*cK,#l&x]\ú4M^ZSp7TW[Oj2*m=8EP+ߡ-u'|g5\KI(FD{ѝS0kO""w熎 "3F[aCoM*hG|&]/[fAٱE^IG"SFISYsG%x tŚxt!S,d1K14]|< pIf'ۇl-qDJSMzsX+O@K*,fCiGݔvg4^.i\s2$&T=ltTFaIz$G\u+63 ϓ>S'a3)Qju;^FnִAdz6Ȣ/W"f;O b8ӽ/(@5}U+(z |cM7o0ƴnReb9wH%ߠ%͙բ_/s]II(gK0雂#Xv`FC09˵R4TŤگ%|l5*lOeȀgW=zݖ_"ɪhH1Q`:>g4(LsJ RHޡ E=E6OY6+ *|Y+`/tņ cӸ'Л{tAS&Jg. K-ɦ XDܫ!LEx@~22sƱ]F~tϓ1OMf%:#j2]aDE ]x/41ޛ)#RS9a?G0_gׂ tF0}:g(,C&!M92/vn2,7hHE p2f,$x:a J&sj:ZFc@[z\&o~)\2~!n4XDjhagOXcPM^SH)`u +cPGu$ZSYz:nX9֚a9rx#E%eMev T~ 8T=.3$a/pfi5j᥇;tx A7 JZ~Q i7]qOkI b, Ѧ&2Q@,Km%h`˜p4K٭'_ jfBcUU`:<ٽ %S+[Q*"Ƥˠܬx߱X3}V$mk1gHsnI'ep޷t ;E_p$Fa$$3 y& 3G=YbHW+u珬Zj{Ë#k{A'~I<8[RA0bgYO%7gnvKlҟiCdl;y|_^Wyx.w}c ǼT+Q7aqz\%#Cf՗`, r2Hc FxhCMSc#Bt*Iƛ:jOX Y]yEnѤ1E5L۵˼C`-;Y˰{'{Lp)GJ4}|CV%7UbZx19IbOv+7k8#jViaG/:[otbhJV56sL:Rz~rzlR̐~ɒL΂oazL:~vyn{q4M/2d "i>'? [03eb^s䡼6FMD۵Gt1]df"lc 5JҦ6ܥwie`[|quW_,6/([4^ZHfeKoR{aQǵf}uOxேdmc'd~O` ~^'Ũ83K[R ,N{'<]Ti /$1l 0l1nnld0/ϚyM)pwu.C 2 /\n3(':m{ >ȐLSqRKըp³s"*]nR AiCǵx3Hv/7{6^;#Uzg<:bچ=.XX/2ry3Ś Y\x >0^{Vޢjq[= \ʱPzV,yV̞5w-)oauI(͛`eA]>Ptbҩ?r-"⛇v@w!5&@A;!BQm^ qp xȼ.i-aRGAhu`%*)12kԼ1"h;3ٌhkYf*T#ί{m5=fGo3<=K^i$ ms4l rxJ率pB? Cw{>k{sc4q*S f˩'V2O>uM:h8Z6w!ciO!d%:HFN̄մhS0wIjXNKw6,5EcT~cUj6 d`WWKwNBe񏯵z hvᲦt5ęDm YR"DHW/@:ufS.e BtP>?+cx e hXUe`$hwSU5yq߉TȕƳ ׊p 2*)꽉*XjTwPN^9We\>Ӈ)5 rr sZtUi)\MPwDt F}u+/rrD;>1[(۳ awF8B7X̅(i"vl!&x-)jB|;#3cv_(ܵG[KZ1C[X۸hlr3~-V&*܁k~@%\J?]sZVe& %cwBÕ1hB?\*g9}).`MދO._FnF=(w>/n$ŽlN RANhWك>3|O7O qf$g0mrȄƇ{Q[2$@5?,X *XZ ];!`!`AE-2+p h $*x6Njr5 ~EP"{{&ײFyrj Jw309"  QH*?!/)ήtV@۪91'Gqi+lF=2xD?O?QU=GfS)?]i6,m뿐fJu+[߰` b=ZlD-%7w5fʸ&E8-M$R aVtQܴGJ7Rj2nF*Wlb2&3uˬ1^ ^< 6Q߰$(N9 +1 75%(]QCDf4>Q}mj]!޲UζiP%cڐ -++dIBZǦ=ս3+{Ā θ8V[tf=~MGc&&q Mwf$Z r-;g`)gh;z_gH=&yTBcw+} <]r0/xC cg..y-;ľ!ع8PH()J0@Wr3#F927<[.Q?R 0UL2k+ X1+sG~]σ=-q9ٿ[(z:ʩŊWz Ÿ.~WfdEzX Nz,]``CAJ Q )):҆}XLZ펲N ;49zQ@" Y-버(ۣc/f?~ & BbK^8AE4)ff|;H9Ԁ ׵Χe~P&[6L쨩LoO_Z y81;/ߨYWUGE/lxuizX۝`UANVT>iomfA~#PE{ICD:Oci]v I) s;#Ṫ/(C [Bt#<l5q$$p>@{sſ&f#x;Ų6 zUJ2 ^#&S&d̠p~ƏtFŃ3ZG c㰆ԓJ bq8|],A`iqg~8R$YI-em[YB#nH#l銩 jS1ǬI.x~oчFqu8` 5ޔ+J[7Vq3 eӕ |ib)}FƟ!Lp OgfP *-6+ޫ T3ogbbRz= + exo]Ұ |dgQbR$6q 67@(SKؠX>[ ݦ-a#nIIE',Ir8Wru5*Mh)]8|DѨ®ɩP$!Re%:ϊuXB|mq{1 $>⬋u=';e\WV\Ŭ4c ӷg& 0K;ǭXM&k!WmB=J;|:]^Ƽ5Jz7{ɏeT_"!ūU޶Bt]#5^kNHTF]bT#^^Q}GѷkF[kWbM 6LƲ1y|L%CMtA)a܍߼|ٜaWv 0s=aς=2Tչ? :*(c4%l['ACHl͗eT-d?,*F栧D| ÕGA-$3HmquNDvQM KCykd^ ,B;,=:F7([Gz@!n?j]8 B"Z!,Inw ۫S9Sg.*BisVO݅{Yn}u+'~;lzH/Lq>ee0ZkFXT)H &웦<Ƃm,d; *~6QE<[q隠u\lP2UcajFϸ~W?RY&gV֦Z \[SĕDG{A[爣M7z{ G_Y:@ӫ|睘[բEB5=Ig WՁаpar@ p}yM`2vJ+$N`>0e&z2N)~"BSkYOk+(ţm^ݴKwͨݖ@4S,HWIDUNJps߬8SӁx^0-|hbg_1V{T$9ͽwu6 V\ @rKsiA s]p 4xPgiynնariȌbj@wj 'aϠݘDK _@3'׳7b`Eh:$i3]|m¶ C;{)&F`GE$ˡ1ZJ'UO,jF0<.6y!`!`jMa@ n :u.@XlOvLtDAu%a"W3a Oӑq3=2J-﷽#\& \]~}vω G{ t|v~"u^0&q'Z9yx<X*=0;Ys7XEG[R?x|7/e@(o!)y=77WJ3!KQc#LQ|O ؃?!`AIAlLLfF7~9;kiHb9 uF&7-9hW\"TbbL3wS{ "a!%>&2k6ױf TyJ[M@}hĺo@!"J@20e_}DT`M@ 1"U, u,?8g~_ӈP\M2.?\+4,H*QRG7 4TcnK[Ұ @i?]>̡5CP#:cl9 s"L Vhz_#E\0vU9hHm]$.pKw eiH@O39yT gds+ xieC %tŎ>#YD<Ed7Bw}hE-~ ౩Fh_CEفȫt'X%8NڝJ".uC *JfwXT"ccj6螻#13 E k-Zhg \b@f:9jg*m/ϼCM'hx:vqa`_w,ָ/,)qq4ͥ8g1[!MXY3c6K4@!z>")ؘ/} qQѕi±MHs24ƭqJ'evQ@ TrC VY7p)lurÆrv=[E10()p|K%Pm0]P.^GUl\X* q-D&8`aТ;!;5+?!{w@TTpjuņ7}rb?j~ܛ0o'aP! d#vRèYل 9jVIZLySZn9]]18SsgyB0Te( :Cs}hU}B+h;:Irm3ru''}.\,َL9Po]&֔k\UEOE䃤U\&`h1z_׽cmd#ҳ8P'm\p!Ԏ17俺gi_hl jԫ=]k=֧^N:eڒtLS:A0WkVڥ3PëU֚kmRw`Tʽ8uɪIqYh17Y>~X6 'xauewHԡ(֊J3ļ.Q9C{)D\@㻯g}/ Us|>e70Sa? a$"P@ӖJ AkCmoƈG{KtEa5Ą O- Ò\ {s5F (D@9KJLKX#5TQtܐa4vl褘) % .O/rЯ:Vd3w 8V0 d[$*-kE}p(Xv59cҙDrݹ`i 4m1PUv6#//)tF%`-$i% -S5OêIi 9ſk֓P`w}@;/GW @钒 ˆt< 9S l-)E.l:c J\$.wRe8H::\ DzHUc9gdT69F<]-\.3| #eև|;MsܸOf[4I}y<'/]~ AU7J E&rv[.há>,n: QQpǓK|gKmL63ROLT#Hj?23B_4MG}6IG*{ьT?G 7 Ac0dO7&*ǦB=Z]#{鬡BmFAO#,  =(`C1U] fׁ!`!` jM< xPU$˜/Hǰ+bFAVdCx܈\ Trf\ ip daA=qj5WEshO3C J cod:Y)P։6H3o7 @!`iA I Re0R) cr\Di![qpndT@׋&hz48jr߆ h:{{7/J_0:A%7 - SFxJl< bVs7<E0lv(y_4d%,˜9`~UZ_{A X懯)E7 S0Z$wM),a1`m_{YqB-q>oWAݳ`xIl[=<ˆD៕L''>m1cI1k%Un6 ѸW}ёԞFשr'}{j)4!ba|y n@zQGKpEעVЎxbγܓhDLp0"Y=dVe'|*!]vM +QJ%@] x(V]/93RZNؒ.#D,ѸO1KlчXHVv@o~YA P2\r 7Go?v &Z1y1OL=Qv6-P %0x,ZYl2|747e[Mq|wF8(^%;ǸpHDHǮqP;$^bBxB $詷%&8h"3'M(z{^#{iT պ^GR_o@2dOq Q63u0>C@fu~e3BC(dnϪZ]4AFd϶YV-d' 4 6ʿwWYCJv:+R#iYlU>֊K6yj¾Sxh-Sr7s05dUvI34Ԋْ/oA[-R$`r,cƦr̓:ǿ`XA44|%T7靃ՃDx7Pa`ёr6-WªfͳA^'zX;3/GX.=Q:=N.Ac D4!%}EwQ_g=9w닡o5ɦMߙ9M?p 9OWKY{o]vcp-R$ n(;- ĒV38leKyUeƱ)My m%Ꞃ_ [CP-FZ\Ҁ ?~TEj@^:kt>o 18ȦOۤѲMwbڀ<^WhЊ"t\ \fzn!Ne} ARb'$r1oR'i5a Xkؙ\ عRI `6ݚ'p9+2~`mZ΅PMKGᮍ@\ kSH0-3,*11Xn`1ٍVՆv|-bLCƞZ-S@0d=Z+-f'^u:wH%P8LA{FMBLCi_8~[r|" cSG# Qlq+R3 F Mww`H>"T%.UrrYd3Ӓuf|k 0{UL3dȅo[LB=P|0w ~1Z1Sۻe9R#R@-F^GW)=dRȞ P.ÛW:Gg(TMf+*ovW'ᇲ: #-WVtgs,)@z&ywUE`֌}J$ya0Tʼnp43 ,y^Z~W)ͣ\yf#(  !דΡL`qFlqtj|< 5h"]}~K:t|g¦C=%\>gر,s\j=Ǖ+$@HrWߺ[m]roGZ1$;v܂ijM%Y;W5-q.|mhJl`uQy!KNEb]+>w1ռ#UEA?\f`[LV*:r&+fѠm?^,>=vh׀Q`=)f5qH%*@Yˡ_F+)ub1`ZWs)t #DTFDMؕ=A=o 2]Sճ(qs; Eл35!kB$) Ntp?cz7HhwRexY(!0ӫbRlH=qÄ.-ڶw#2͚jrX@ҫMw'dلtq ci<Yܙp4˙HGDlc?-]Mj D4CLƠvj/>MY G WJ[օkPmɋJ]$AWjt}/.!:\oz>f,dDrX25 jA4#JoKMu2Nb'i`d5% YRH'N/?LhD&CtU:S@-. 7G; aŒm-e lQaDI.;I4V1{ţjW ?箂ƁdxX'j1ˑGUT ?b`~Gt.HĴGcOԛW*Y{Y0|Ӆ:g *)R =31BG0skh Oʯ(Le&Nrx3嬡ӰGzK RXTEUϭWD)tIJp]:I@N00]Bwv|2$CԮ0#<mxetRGꊔ e\u aB[.aAnV'?pΑa8j SPS@5 1놓m۷*ES^!*Q-]!3!.KշDKJ糆.}W޽ŞaVj ĠʲT#/ˎF8S "p9m\ ^L'qnn)뙻:KW4t瑲 |pT=;7օ+^*ܗ$p+ *ݭ+=آ;:TO8||}FQgiFoRtї0eq&{h4EB>\ă1R,MZ,? =bkU hMZs{Q=Uc|x>\84u{iR4iQH{]Rbs`!H:*H_-zD~(W5vyXi "I Iw AFŽbe<^Qi ކ}#&m( @&qt}bj}nWk>p@Y8U6cPHɉɍPrSx;(`SlQ۾g[J2O %EIĈXSY30kLVk w3$^/l *D?M1/a{; EVf0Z'Ĝ2-d4 `&np`0e>e.&YVnJ̏'q $QקrI!`!`,jM#R ˌeX37(-LQ[bsZ6qaႱahT|q[k&"`$Q'JY%"ܬi9ݎW7-mŸ- \!`!`A1I̩(zVkN=&r>J%Ķ#v,P `oE+.j|P!crJ)aW:cSc;A̒3qrLfwsʆ&eULdWgHM-Hw+1ҟIȊ't9ʉ5(qoztg.݊<1WғceV^.JUh뀧ye d;%una#매zxrrqڞA8Ԏ':yȨ2XQ^§m8 ΜohtS82S?=A#]oLC"&—ɀ~yӯ+KXܺ+0=XR>RE&vmu  Ns$&VCR0"!\TC KEd.R +MG *kh.O\Էu3j%@k-)z^W?Ǟt=Y$F0 eR/1Ģ#UY՛QrYf)$~謴[6˦ez$ ͅm;Jatw{칬Sw>FbOF83Ftjȅ=}K=V#W3\,F⎻V,|l6QVX/ΐJU} }m1G`E("]S+8q[|T+{N75EvL~x,#a'HI txYL( i!`!`JntMNA 5XDH|PCz-q@e!`FpjM4a9%rrp$P6#/ `ŀ!`!`,AuIAhLasָ T: %0tQ fdC 83FdAuBZ6M.uHIHr/4![H;6SCW +Bq>& [tZr1B'\PhYa?4_wḷU'{ ğaPl]kl`Xz!!;<Pʧ[-t^eVP7s!_/Ֆ],({r,Э_4GN֎{f[БiuS{AoBԭ'`R (^]7MmN{J-Е{CR)Y1"4r3C<=-c$ߗSU'4rhjn0||ͻY"^vBq9gq#q/2@*J Kq*n'x="?HșGa%Xgx/xO8n@n<^ץR4,xՅgӎu)3v@8Nt$IEi*J e9`) d#gR&ko3*c\$>1ML|BZδ{}Ԋ>=Yj}D˷ΫNW@ں3\p,RBVNaC.zÑYSǝwבJV&L&^;" ^L72 Hev[Jp{3 -;,`a⠝׵ٴ)j '@奪J/(Js*80qΛ.OI%njQJG;,٧ (ܙܱ< ?*=u !lKc/ﱮw[d ?4i; \ .BZF+WRGb=c QKhλsFת:O STh.aq'F?f+7=A|jnjᎵ[uq#f% 2߸V~=a-`b*r'iaU 3 D5N/-WYS3:aIU(<# Pn*e5׉H7޺XU5: m`AymI,mtZdsP}u]weUn` /WMpKCVt6R׏h5ڣ w@[imN~kTZSՑ pxqۯ.U޵`u8@?/ݼCѵMu&5I_}5!nf[b\ilYW)bvl_5~<%Ðeg}OGR猹겲'~|RUʵ#]=DXO$W#7RH9J-JYAƢMhOVUR$]o~GI0#&glOz(BRx.36w@rᅽ0h)ʕ( r5`y`&;!{fS_Kk] K4ڏlg:mBj,:@$4bt7Ƙqa_Ӧ; ZZȬlBn{<$ZJ`~`p~Y+cпM L0f}C;|tRKۅIҘ;$Jm/0Ws0X&w_m@^;N6SlNbZ+B1a*т =sM[LӃmsB1`@r.A8(y\Je 2?cG&8rv3%OHJ3ddZLsr")6<9!t@eJQ6$Wv\!M, "2]n)ʞ8VlWxAc3>GC|z^^ۋDcL$ޑ/Ay_DsvIc]/Op!)Q:UDu8eWT߀tx[pYO|_tV+co4Tڲ1xJ 2%*wt9%-^LŠ:}\#֐6 gf7ao?GeZDa0BAjI; %S>h:wt}+>vkڃT#e~r2!sN9EAk:~vuɝ#n|:,>76c&嬼ҕ`Bp򗆦Y ,qϯY#=3^Ȋ+@)K^_Pty6A p^hAh7JkAIJt50Qz\ Դ Xj(Q+FkXc4WFڏ0Zs~9-句ݩ\Tk@+!e=K=BZ^тM{\("I\]%`y)QPc(q;nPDFǁTL4'>:g@F|fg7c H ~ 4g~٣,W?"#5{8(LPQjS3hġdtV6NFI~2S0RRy2ԡgOs|#/sl}QaZaE]IFVt~䋘I s)@M;AjLH?J:O7-=6^j)`aP V 񏧱M/I*?U sΟ&=Kd`V~B u7󩂮h ߄mރ;n"q}[$S(&KOe]k鉅Vb秛Z;K$gr}֫37PVKeyRƹRjEz?5(=Sxe#>(S{v[jA 2K5)|e8C+suHRRXr,l _J3)_d&&d)6=ǩIW3cR+3qI{qXvS%@쟜X??J3|dA}G#`g ]"YΆb%ep2\!fj7*T[/6XqcbnJzSSyRz1P2Ջ9ifo8Cw3ȯ(Y{֓њwGcрD n֐'}ɠ!:cRH"[eS\Xj[g!T|y$7K&]g^VO%3,+* ]o&?7W{D@\cQV .%!XAݵ,:]lTĥՋexE[@C]9㪢DZx'$я󻖝#8CYqbZGϷm`NWEVYW,4f~?Vډq.#/\i -o3{q/hBqI`*tPV;0=:솏#UFƿ}Tshl\ shtJy-焜!D6z-͐I/f5ޣŮSdiȑFqd?M [|LRدseY'^+mn9ks>mroQԵRRt o=)Y,%`19>u@p M($cO`9殐 an<HJm7VUݶiznvW[UgͿjNr /J6Ur4UFc2gFY WЩgJn_QrH;bMH r=]r;pmEkס %#a&7FRbIZ?vYY4jSCݑAymkPߚ?_S#@hrWF&mlʧRQM}t~WeT vYϔ}LRUQ ;H鏶D`dCab<'O_q8  Lϖ &K~ o-bSOO.@n+s:.7y ~h;j%+ZJ & 'υql+G J*0,7s_ z%h czw@둵QJK0?F8{0(_@i)"X(Dљ իB`̛*x*#BirAdzJyI갫*|\:/F<>y H<#l-L ]iɶu Q޻@k8wPAN2PE4_I6n,đg﬍u| WRQ[tHȑ<U녹mKB`зzڞp,[}+E^볰wZ($erֽ$# @lEƦ> >4Zv0yOjo ڄZfG.H s ʊkfxh%l"nZA ]QcdaC|RE=$ J8u']eu$^c4A􉺳o]P@ 2COݯL;spndžF]ʪ lO6fM}O"Ƴ%рD@6*rKfv[1AʽCؔHAQKP1Sq3BŦ^I4/׉RUд0Ԫ(OD92i)_WVQxR_ˮҼoTՅt|IJ6 ԡij!]}Lc=ECpc);h ll  G n"nA"ϣzv'Z8*kC`]/Mat;gpikšqB:4廏x^ɋ,Kl@2T'H=6e7ޝǡgq7Xs'ݘU=+!њ*&Y LRYFNDP,̂5`B!`mE jcPں"mu%?쫀{"H@\Z9eH+>_laei#:N)2m"˥ŪJيn0.P(ׇ')SlBTG43=, ۦ}9H/\V -^zh\m"F΢ Q_U|-O֧߷;ba<ّxƷLw©ib>؉@v}(:0cV/X %,Mݕ;l [П3^WvZx};e^˖P0e;/X`.R`Ngjl2c&`"f4 @tuxxhT±_c5k.(ⰽCw+#{tI&jMb^1(Y1rہuCի`;Z\B ̀')/ sNY.{ R鵻;Ra!8$DjOU4۫vE`'!\5KiŅs%YgT*R싆C.֘*|. iey2RׂFzYiv#swh)Ť]x]du}u q\ NK) j#1mt6MEcGܬeCa[jLliF[0?qHC9m$p菄юiphX̌o; JO+ -$jxXOlO=aDL,*Z $ݶyBwPE@V*8v Xy4DD35׌ %'/KN?o X7C_[?nbtL_aJmkw'ևT3vo^N!n&+"HHdCE1#WG 'NPFXc/ӚfqA Z&Ӭ5.))nc`>5"g2Q3Lg0]{+ jԤE&D.C"tKc M)\m_@{luIߣc(d0f1s `7bJ \x%b0^+{x't{0Qw(2oVN|T %xxZ#jo\@a;'T!vp̈́_pΐHa11?`~5?2''Y7限LIHoū< jsX8Iu!Ti:Zްk y*o % xh2i+3; ߚV}g&VL+ٓzTVA u!ń}-SpT/t@pn[5rP:gaTDT[)* j,6D8j'p b1ωWO':}GEU{IPX$`Pꭀeiyy#Wp_+ŗnx,XtxKS4knSU$" UwI_x!+0Q~1e(op\],qoE'dN-J".H-CV!zcYsdc0H>j\q?=:tb%g6҂+h{fsRK~jٮTw?c|Kp8iI"Sព5#'/faovSK"=A-\`GXB*%asu8hFd^}qZ9=xt>߯$n>\TyFS5^"\70c Zm؀!hMf %|_+aσ@ޮ+Mz;{+1'E%w][#P֌? g觞YY2cNw5(H_-b?pJ#& yHD7$@O2NaFH hI2ܖbmq WSBqډ ?g2gH+ xx&>(6hmapŭ5་{n`GK&w쭉 1kҾqӖ֜z~:0̔E=0cq#M7X%5rbؕ=~8zSN,LS[dkܺmp?J@D݉+]LjxK>2B-Xa|dIdr$xo h-8{ bSɬiymQ6$&ʌ9L>13] #wQ A@zZ e9!%^CDIF䪩wM"oݔ]`u(YZhxnL3X!kU-0I]G^?psƘmdu.z_3S,{)dC ;4sB$5-B E`>̀׆B~<:CF 1O{B-v)eyW4Lgeѐԁzmh#ޡ="+HjIڸ.|bUrʗ[p"2Y̌e]v vsF,;jFP?Qb#3I*"g M}Iibc|02GABp>7K5@7=:L[}}i y"Ģ)98]V60/1e4*˽ŧs8սFgu\UrsZu967 :~veJ2XzH>]}0AVm+ A xtNץ,\h]Bf\ KVy׽RNL]f34 :3O2Ip7џ9-Y$L}fDƹ"ƽ-ݚ\baQK2(5ֺ40ȍx-Gc\kEi&^"Kc01˱cýkoox^}]w9PISRLk(s7,/M\ۓU ټ/TLI*kM`xx.1{ޚKڑ&OZ_>Ƚ!q$imn"LИyk\j<2[z|a( gteǏera>&N͢׏]~_$=roeͻBo9xo&Nj4{@X8MEt-uƍ$WNUKj͉K?4=BX6{ ' xv v6c)d)oB1rDQЄcvO(W:U^YiVs8yeQ/a'-M~ PsKNdb š/UN=S>NUF%|Ώc$Y *`X5&PsY AHY!`AE- ۀh3qP/M:$F 7EhZ74kR+ o {@kbeHvf z_u+b-f@/4!#z G։uaLdfA.n^<z51@m_ҍ6;lE-NKa{9R!F_*VLܖR"sgUh qĘϸ:\6gqgjImsOC뽲Xl*r2Dͪ琂|P.L6^"nGBV|Q$tǰze h+^E]NA YQFg XpBNOg)^-f>{K@@~1E#I3NOe'ݞ.ӓ鮦U󹔟 &x[`:],L>F}>9X~ں`r/<L?50AK-cز7HQ7űW|H( rE6x 0"JNoB7!`wAIAlLi/2Cꬌ7CRJ7QiVN"Uhȳ r1;8suݛQ ajUƴH @"a lnCN ɟTڀ"%9T2: h'€o57'+#f1FZ 'ɓ=9o&5د.GvCyJl̀{QZva5ه^27)~nc(Z ޴\?$_1UҮtڼ$MֵM'>|x"̩5JHJE΂;131YGqVDu8N#ZwO@ق~'g4a!C =[^8ʦ8zA(ɛ%:&yOhv;/@X&u'[V/$oLGICJnZE9[ >O Nwv@y;u^m'UZYhX6yC<Լæ(0yZ.Q>f_ʍmt h |i&wC rTEwE?^&ܿҿ%vPdKWjN\?nL6++X$ JUlJyY][?K`T1,REx<00Akx~݀j=nZrs:}KvSlzU(DkpDݥ=,O ֣jYZ01{6Ꟶ#ɝNgz*AH`=Ȝz~e/iO;ҳa j8 szZ<&I..#LX]NeeMIǰVd_FNdWDiKޓ8x &0EG0s65O- z6'?*]|gK݋IL8"tFmV-Rz<25Yp. Ǝ |߸Og_D:컝r@Fͬȕ=o,Xߗ @YI83]ih(@PGY ݆[KnqE& pceV'iٽ/Uoq'35w_`W OaxsP&WP G}ERD ă:&L% Eũ=ӂm $#Ho VPWYXX y95&J@d4/J]m`E!`!`yAE-8EG֏ q lBH䖓höI= N.+½4@8ι1Ԃrp`1#E3Fn8in@!`!`T:tMk# uP&~x# l \Gీ,D08Kas ̐WVa!`L0Wh:\N,\p]@XX z͛ !`!`A!IAlL) cseܢDO!đcULލ>5rcZhʡ`!W}ˮnP(pÀZ@he!66+d, E ҬeƏƔJyC.g! oy&aK?eI:6~Q#DlkC}VK28@o=Nٝ5o +M3G_(ڮ_vb>F3 X]#-{oR^J9ge?ϐR:WMqPH;Y~Z7WX!bu!~T2JӦ%^) 1E\2b3KikT;ӰV i,G ;j@DJyXjBaVp!`YA_E-2+i`hB* D49+O *ϯ E`;!3Y ɧH}0~?1!`!`A~tMʄKY1^c OW`tygwW`o!`;`jMH} sw>3648+!`!`2AeIAlL) cr\O 0Jin rwg./wYH39V4F*l+b'HITPC^Ɇr(ɟ @G 3%vjy%l}5XK18Q!Zor169n`&쨍Aӛ+Tخ"GLByYVV ӡ'ON~#->Wz:r;CDNaU̕P]͛\˫h&J9ڒ(cJ&FGGœf^!`SAE-2qIt"u - hcd4,'wzH#4`!`!`?tMwe`ק?}fDv6@=!!`!`:jMH} swJd H!`AIAlL) cseܢDO onEAZqCIRFaRݮ<[O:2օ Bd@Bvܳ1ŎrK~Ca*`^l-v} >2&]3:f@'u@e{Ȑjbu9gB$>c/JYy!`!`OAE-2+i`hAµu/fw~Rߠ8 9%t{oj!{!`;tMwe`ק? zL` r!`!`9jMH} swr PmLavc57.107.100B 82AIAlL) s1J(? AS2ۯ{ɟ[P ]Pۂ]M%~R1gܥ-*2hi<"Ao~V0WDKni#}֮b|ww5slc5[$:{hY<udt05׍UeȐpT[N d aRtӞu*>jbUq/YUR>N/!;k FNzT*}AC c!`!`NA E-2qIt L} 3 #`$/ v xdJ\1& !`!`;*tMwe`ק? zL` r!`;,jMH} sw=p\@!`!`A1IAlLb4:(C9, 뛳k}j6pL\{XFuot-e܇m_SסDmῧ$mQ ֈFladΝFQሕh &"E:~5`/Hd!`!`@ntMwe`ק?HQ¤ y !`:pjMH} sw6B7(E;@ !`!`AuIAlLVT'cnb #3B&ɉUA]˥Qu~`O(95 HG~TqK5]o>.%Tmīm K{)$* ׈@(43^>;__#rZUE6]jD}}(h!`MAE-2qIt"u -4DD67 [ =$w!`!`;tMwe`ק? zL` r!`!`9jMH} swr Pl!`:AIAlLX)vS&2)Q2cB`Ł Ûhܷ+HlR`4"xK{=i}}2WX&x(=Daz= HB*n d _&-[SSh_.F@S}03 Nc%SoO7;Ĵ_g@ Ѵ~HJ߱k1rSPeI6/:&P\ٷu{u OXinZ6;]%iڈx@kBU!`!`QAE-V$&=h69(n?g'+d .S#x0;P!`>tM:\hFq(J@AS:!`!`9jMH} swr Pm!`e# ˭]O6 q s5s))r>*sl$. ,#V YUS\,0-e7< u A3Pza#v 6GދƟw4Yt\}/`ܷſaUzɲ КX B]'mO1#.<%wf 8p$p}~NPs9dxh྄ZCЩ62h'Im Jߒ̽)-c|GE1| 'f$sxvQVLA.ĵ$.cH]SFdOpR<#jO@݀rVTShYkͤD] b!JP֏ ;0a t9 i 3CIW}^nrzON)dǓ<s|m8FAY~L4t.% Jo %7 {erAu3'N¯xP Kz+$'3u yYwOV!7fq[L۬2Ysyf=5TM`e(1;7xDjZjnI?16EŖ7PG¿G9ч\-Xd+[cUI#SVj.)t %ˉ<5b^~Uv+q5qo쁇7?4@x7> K8 r"k9Li@#]l2 bi^BFgU]Y_Ka 5i 4nO㉇4o׽_qkc-~_W}mkLv(i^8؀^d q]c~[#7SpCp}JfY&)`A$(m_zW=Hm¹9(q5*0' jt#*+=y_M8G֩2K i;jW -6_"O;VS {+\spʀJrGNXSZFD{ M'ICvj6kec,TS,Wn֫4hȿS7@ܬ5ݖ"^"e/K[CD&atWmA\KjP"(yiР.c")`LdD  iHLA>gR%gcV f`2.ITl<{}"[\{cYz:51YLs:&hWq]ET@zC#3Ji9YgcFKTq$TA][Dmv ]z0`5S6Я.uqżDnɝlc9Y9ޤ*zShG-^^J~"d1`$qsk8!,=~&3qN^t]*n*1g1YJi- 'N6jI|)S"tlq,x!;}XU8Af>&Ȣɗ_4nL R'oR#]MwO}*EoDg2yEQr[!O#i@_,Žyw8\݉!))A~LƸt; 2>}׷ ":%UD*6O֩37b]: :OmQWB ͎IxB UƦ‹mD>01JVڥwP6x_BrrúM6w.eWEq^(*%=k, -rJ}J ~BƙOӚiwnI]Y9q] L%QS^c?,N3uW}AW 0U{Bvﺿ ԼJE^ Yɇxd9=כ+Ώ׻'%C/Kɡ+qL#WQFV4Xjsm_|7eloϓ)?׿ߒ!?WO0> ^,PyhĀZ۱wϡ'Ȑ$HlCR+Yt幠2+<XbC!H)?EtJCayq-4WKk?07BęY)Ey3)1L'‰LGBՏd!|`t D.:N8{Q#- R睗:y[(ǘ ύIeұ,:ns阛&1.'n(fE N8;;T|Je$[rE3ߛQ^7R"p"o)lǙk% ZZiX> 㴴@:t{ U.zS4AY5VowzH6_ʹ4 :.CsĄJz)va@ﴪ%+dJ=}Kb/aP6yMRM.B'Q-4 *\4M)j o U%OBR)G dBu8"'n͙q&ã<0;-ZcR,h ۅOOxeW5)eUaUF]"r  E.n翠N&TpZE\vmk^(~][pX>r݅RDF/eQn?'xK$w#PQ[5XSx-PM*ZR&[(!R\EH=][0"G3W /2`Wlޛ˿4"JٻH+yޣ)NTPK3,_jΦn;զ-8/o舆L}[1Ak4)'mf&3 m=JLCuvWx(O~.H%jT>N\K=Se\If ]GS< MՃ@МrQAlWD)Vott౅m) 4+r!^ۀjd \ƾEBmӬ#&P w(!D`~  30X ~(̢GhҮTτ0FؘaWNe?sq9'6YvoF Uo=T{#,{b>LKwլ-46+4F)㇞^{l͇kGqe!&tyh#ʟ$~7/b El|h)bPh}<"xPPF{&zɛߕ|c2ۆC:;=L<q*SϏ*"AQUybwMQEfEM7W}td꛹t߮C*UPүNeXR2ЧMzٌ3FLժ%*[dYc`0vDYuˌ˴ i5^GR'B_~T~=ZS/?k><i'X|}KFPo]+ `I r:*o"aGj,Ņhǟth͖ g]_#(ݯ #dj~sb6cZ1hg" #^ "w~a~{ G[V>Ȝ`֭#G_Æ3e΋S {S{<#$KGl֊y =WWи`qҶD`A"ŦFթ DNj* Vmd2kpg8yyacQkGs9b|:Ӝ^B\{6+%Ǔ.XeJqr: ǯ[趒DмϯI2 1x2k#G_z\Ad/`]5e7JGD9Sh~w`#@貹0EY{Oyz3|JB$|SQdVt7BфixI?O(pyhB9ӹ矢jt 4e;h,ORя,ޑ cR;4:G8 ?ygq*+{lzPr/qu?ڋb DBs87Sgx֭ HK e$C9uΎsCc*aQ<{GKev}|Kg]۴dkCtkJh?( =48Yz5efpfldC0jg"`m>5"'U)&ɧ7[C^:Íih n\hkWZϺjAڭcjc^uk>;ppmͷ(Zpj. .,Be3p=rGf(ଗ=׃HâRWJ(B^|hڝ6`[o8MYi|V´ D6tC˻0D.~CAŲO¥{n{+rTi3{?ZN~ x\}mQA3U[r &Fﲵ)%o4+ݔPOc_Na,eO͑ Y&b_ FV?ۼH%FCԥ:#J~Ą]+nNnu?أL&%0xrv@}Ldg|kkP\A`}3aȎyuUEBsLΠif a#&eTwb:_g8Rs ̋[Z"R6q'"@C2Z_ቆ|%ɨ7i }ok*҆Ԁͪiϐnbŀ\_*ᙛ88c܄BELP ]KAC6[w) :~[[?Q}Gx`SyB9!$iFq ~OV={lx:_x+Ej5}+V?k%k1,ӤDevo>u9^[U*qUAyd׶2(%#Wzg3%SEv2=͝oҳt'p[ *"@,$S+Fc7BǺ.Q7LL76wкNUɿ=x@+hOk:LJ}5`*}O]DN#D#U0-u Ak]Hn%nRcAC5#s/ !FXN_.yWFPIٞ*ixLyٟ`)i- `O<@Y"ea?Hl_HdW,C6'q,7߇3|{a9$DޅEfXhؖͤ rqž1eI n2QJU9 ֝cwqDnt?MB!h/sЪ=nw0=WA%5퓍a#Ci u*wBB?K@U@1k4UO@T1AKO{|^ ?z{[.!o\%ŨE]SOoFjtqoJ&suko[tgBu@q@"/'a--8n1h}uI=TKE/.VtOIĖ.Owj`~/pD63v37|"'zX%0j~L3o6 /vwqn|v]#33yg\: jN8k# 22Ѕܲ#ƞ?d%].P_ LfjSMa#]N5ZGDC6bµhCP!-5Is_BCZBFW]'kuW&4, K%^>||Y\/N-Ph:4ۿՃ<=BylAf|̹+ji˩ [,5Q? x݀'^^(q'Φ14Uchf*ʸ+4;[R} /m $,VTBt_d ::ub^X*J!Z!C+7'D]ܺU`zuaoCî&d]^3 od+xyۜ d 9 SQKF_7e99x| tv`VDJ:|R3HW<~ i4LZo32lrKn{̙1 1&NU3jK.s<|H醭ۊ[cռ8DTK5v8=k R9f5"$rBL}S{7 yb@Q:0Sz#}U;aFLTr 8#"i=/ؚlCYD3;S>c)]b+_h+W~z *08"j#p\ڌl|f:gW5^:?PƽA59n6D+ϯ:ڻyFE82&{J,܁Eqf~i҅{A6pnp-f4;&'{jGF,yg LT'.؆Z%Z{dCrJUubwj.4PM[o$#mz*8Ub `_1y31"%Helu"[;E}l~s&%2Jc^?c$lrR!%$O9Ka uMt9*X#K'vTor_7MlĿepUA:}XBAydaLG"i)+ת)QKhk T5wy`KƊ Q!4CVE0.;6J5úvK~w_  {ӟ I41K¥4"9D;o |#ߘ_tmo-/*зRANe;/Q2^pBD#k;\#\GXCA} #F#(EvC>SXo!f;<*슼zv͵-lNA= ).U'$ʿ҄!pl`A¨ Wgtm;J%oN;lذ>I8ؑ 8m aɩƺ\"O#$ 8f-k(gr( !LNjNB&m?[]tBTkj>,miBb*csh:se`&T=Y)3|v5ؚY1#18.]ʨC@:f1|`=wQC ^mh Aѧ>#'r?&y<<asAJj7?s#+ =J~̭n'].B=%\~\Y5_\,yq3"5RSϷ%L2ֿ+ ͩ4V( 6ܿ; U]VDw4QW ,}'櫅!++Y `Nnǫ!T\mo{ 62D4RhSٯꉮ@4ιWl_A"~THb2a;uaK*G;j!J:OÎ[ɞopC?"ީf:Mۋy:nkd 34T\4VgB!GCi#aC9* 5/Fׂ9]^/-*#b{,Id"P٪^F}::cv;NR-ANN$.ҭtkXg$rr n0bi|B&R-ԋ '\ BFݢ`6l,8T8RPNt/vQk3QB {~truq }y'T?>Ԑ|TnMy2qul"L!X| i; t GX*<g{ xi@|]:qt, 0^UOnuݫu1>0Qe'ы*ב%~Eoγ kbNtYa|,3.-E۴OZUǼWpn*w~y|QC&((<@;^upԆGިЮEUmӫVRqϤe|Kʁ6$RZ_%XFVJX^^wG`x*@wa8?:5Ss}ujh%[k!6DcMkl}3ү-lz0?czS]0l_~zSbjAQїZev^(u04Ct  5qkYQ*xUW;#X}+$ nͪtdq^6n=t9F7=!(!;"+ uja;qKa9[NJ2/Ï.IF.z0{Uåf6-?BmUa$˾<?$+( 7VEUdG2[*rSɭ %5;}N)˹i\مYMl߉ׄ!:NߕDv-ïEٱ!CP u4omYŒmMّ̍_JL |%OoK,3M JtF\.2+n@{h46SiE5z;"ܑK¤]Ln' \+uEAO\. xiF./_J@Ĺ3EHld>%nzik===!aeITi5=)>J׹1fQVj[mZN[() ItK{:Ӯk!<0%R[#)o^N1u+h&*Sh SYK/j5kƢD4*JMdβum70 @R*!ۙ]"_Ko@%v/l>Α-S|$UC|a ^cTG+*TD a+Zl\Nm XkBH UD@uiPWZ F\'9pĽ턶X ܀Tٟj8Nmر@V b1T64Q@$ ;vJ ms=WaCOM% xTw-կ} K`!sX {>05{m O`^yjuu/+_ k6i XɽV. >WJ6a ED ` (+рT6R]%V,f$@Y{SVwp_o-è(}#η3; ^JѴ0pxHxO=_D֥_ŋ*ԃ1}wX,]15;+ņsU)!0ɦ~NVkQg%q6bD=7a Lfj*QPhZ9: rsAIĶ 'jH{R )B@/tyE q@ Q.8NʞnG) "{yUYW+}ki"oI'8eQ`'AGher߸Vܡ{ۄ^)0ØẈ8y#Qj.>fs7em$\]BCK;lbv(ŠY8[|o?kz׏엗"5WtFMru╜n'͈Cou7@*t˿򋦀c8ӻ䫻()j*d!Hq2, Q." r/~Q=T#0y.]ίE 6G"Vo#4=bK{jf/壷u1vMz#n1ץMҝm*h `SW3RK08Sw[ _6H&Lp"hJڑ`yۿ6SdC>ö=7r7 ~]p?p"Xs;=< {9G.'C,3j)pv9">OI "-ϑ9!`ABL:X.MX`uP0Z,K *E9(yip$%(ޛeܒdRj{ǫ5hG/'=Ajl+Z5pJk k.i]JI=RvFk=ʼY-U g%ǯ6N]H.Xd+;Y.R5oYXzxŜ@WuD.ígk4" PLzt&",=*-2X$G$B/DaIT;?(*^ZB q|w/TK A!2lO%[\&qP 7[>XI`Gx pt~4 C"s_dY}Rq;aӂBoN].wHV^5$ ݚ6T'RR&PVΆ2@' đ<`6l%xQS[!Ct #;rvKE0,ЃNFـG yޖo:RvsJߪ9΀wYoR)V v.L&jN{o)Cnͯ/1^:76ȧ{UTԽ D9ťwu`09!s>~lxz߂Qo9j:4,x’30)Ƥ;)+z)lڗͽ_]R.LA#Ç.v MM_|!TUVle] RI9KQ+Rĵ)+v8;BE(I12mOR )*'x VӢ I$v|s30[a8b\1);':o2$ Ve ~X6FESD"ESb( wsT c ]>ѽ G?V@Ii>rV#%<57}mڃK(y]sr)6$oJ)lWiНVXyp̑_۳уqRYa% pb{SArC:ԥgҭ_USzEfM , /ބDHTxTc';piӖitF@Ic_MɆؙ7rRMy7q͐LAqXPIA}?3! l܅=_hZ-uRɿMU\TsJMW[ [ gT(BZҗv 4 綳|\7 R|f&^Q]eOj[ e+m4Cế!a/ɡ.AYejYr*gk 﫷ZŋOE4jL4*.`paHS6ߤn+j[Z?Y~6h;MS*9d )wRP2AXƹ)\V]mm׫qf/) Ϻ--y8$r5LqȂ(E-MJ[☊ud^sZ-xb&|Bgrw#=Wn %c1=%pu\-RVi@0w&BXɳ6 mYe$>Y#੬FwJߎGkT<"mpI\N\f2]cWT7AꦭU_,f.+g{#75Su`Zlp+DӂYh"K8ݜp?1 QH@MD&u2[ү4udj3:_w0Zn?Iܞnz˻Wz#(z+$0\)L8qUXuڴ'I:Ƿ4W@:!Hָt*r zf[ytl/ XwoI^ 8P23}i l#[]лZ_>rޓ x$F~8H}`Xŋ415T^гWե(uF[ƻ&hQ2lH !GjBӻ gsWWf\-k\x[ښ=73,` NѹQ9=ORL 3>X8 &F!Gڝ(lW` ? pycoM@ EL۞Ǣf"Y],%2#[(|NtwD=\c? ,>J|(`G_E9u`ۺ(v$F8u~VoSit^󛆘$Td=e@̽CƎw@gh;}|K5БI#̽?7 a s&oޙzreئXB 2 Phڨ!q(j^D[rܯI &j&>q½L|ͤ,{Z6⇄W:E iX-P /Z'-?u_ 1YXsvHCnZͦRɦb]?2-O)4vu TqP,ʇih F[haV($8tC"1v=$<|ߚwұ8}0~fnl 7MLy ?y~rOIaV5?e+ݔH>-pPؾܲ'A?[|:,J%Hѡ/Po5Kkc؛)0tr] J䊁 kO$LtV%uh?C&*d T 8<ǯgBV!B"G8g8d] cc{dl5N?֛[y A6k/.KH|H]+^?RضfI;pc(P.yibMt =79FVnnI1Y8J-,`]P'7tUL~t4]蓵ߕ׼ t+3[\[~·ѵ*7iuԃur!gkCp}B>2[!S dJ)^ Z>˅cW1ȚE?6 ?m=a9mtuJڛ?Mڰ35)9de롑d ̂ԯ~ #8P dg@ꀐ!?d!3>f&GⲗpA^VhhϋG*+_sϯ&$? d=Ply @2)?ljfTRq;T@Mio@,9,q:/&t"1wbWq?umVN3j7cr Tkuۜ1ٝ3u {qZEg^Rdk1W*[ɌP:wHBDʅ]SKk,/p&|)9Mq~D ~!?ɜ8Z%ȶ}Sei:ǫN’^(u+BZP*wlp?NEHwxr<$8 Iad;4,gGs@CľL#Gfp-Nz,ScSpF=-(K$긣Ug vgUqxz@+;qtoϑNN-I|^jȹXꂆ<<|Y7*&P!o*[ۚ.}[rGXg}V/w)k<.@v+?ވ l(,,6TmiLw-\Q܆?mgQ h.<:g񔣾$U] ṡw,FN (lWmhൌ#*d7Fnt.VAk?R `GaP2u|?5q L(D }SHX$ub{_>4 yrI9AADk\izMt=צxr]p]ܝ@wa\5f*$8KsuiRIORYE4B0moPml*WpDȲO3:ha5ë rHjtLk/)ArWJvo FFS԰ђ-: 'O$֘W(Pq%H˕F E6.ZW/ i;! >Qi~k#Dgx1iok6ag#jYlN9Wa;=FYAQ{,mjjrzXL .(`?l"ϤߺG!xo_qX͐1׆qv_ȞG 2b %EScUJp˟[d'(ۗD ڤm}ZQ1u& GkkEj`dv=^EUIxyA3#®" R\EZm)m9 ξs?anQ1L`Y*x\xd:[#Fcobp:@C0놔NjIMߤG~?H[?ȌY q4:#,^tѵ&#Go?e4+c.le$\aW5zOmI`q! z9*\ɦ뒻Hn>2RQ(!9cJv֦gtF R"Ok/1i:Bk\EJ zLxL<97UXqKHk}òbįA=U䩃0ZanMu_O 6nWBU+iX|2$E*E_ۡotbРVLbJ/+-h88̯P@9iGU=Dnn)?ݷWD[tx",OP@ìD <`$VB%t^~cLkdXXj Iٵ/&"Pp ܼLBvo%qm"!~ tGs>U)B|쓼8ZFj":zj:^ R%Z0Zaܒ >Y:ZP z"ǗDvZ83?êLZԜX|G1V@~y;aOLZ;20iQD1#~֮ޚͱ+O뵯r (PӕXEeja*Uf+;64c]8%S_x@0s OwHjԦ7w2Pf*Ek IJu.޽y'i#Wi7L Ip+4<xU*UE19U~z~){LV»1 ~3ٓ Ǝ+,!:@s3glLMĞ JK-I_etjbi'$bd:{I`~^P/!ܻz5KW}#ӧN;Z_UKr3'VG-3};Jx+(_сٓIiӤH.[9Jf@G&Xv$Z0*EBBNupz,&/Mѻ$Hg :WeTئTcge$Pv#z|+}DtQb@6&|+3I%4pjY sZ4§}'֋Zs3 b2w0 (c4} cKQgTZ=ԱB^L`M|؅nhR0gz ki!h뭅1Q<UʏUhz]Fi`~$y%@A(ܼ $Z=ʩ>CGs0SOʴ|kP ћ0mrDEw|5e\5x ;Z.JnjG(mDA8k1&yN :Ɲ >agTދ5sLeꆸvoh Fa9cO+1:CV^nb7[Xf3e': \Ae<%5F@ɱiA8 xo5 \5/*S-L1URJas)q5cI$%?>V&'8O+T}3%O}^,Q>*bLV>l"99"h{0Qh`yݽ~iO5-uMa,WL>qH)xSC9^;PgQ6yiEpl47J!8VG%Qhb3vb4ʐ;<45 ErFп{poPN.K`bù^:׋xfbQۖES~:NDcT,mT2MZOz]x-wMYಅԗ+4Qwd@ŠK*IV#z)įRsR:Ҝk3WTa C |94䴈 : I4fl4:o*~@ Y-#׻Jt~W=phƑuxkƩ'rn@w5dI>kz+3W)tk)cA-Dr/BƣJKX#g_D9ŏoo~& ogF,K"({^;2=v9h{x㤇ۂWXR17F6%X+>7f`\LBIC}Ft^ G؟qOn[$jЪ״ʱYz 4(fzG2\%M|gQS\F4WSϮA o= m 6,k)YOղBg/+Et#RftHebeviC]T/ ~s8ޕ{>t+%a # kZc/p_vPL*ݺmjeOqɜ+H*}tNZ>kUiɂQ36,8{$͕^Yec9s'Ԙr\N?\U*Sxr:/jjp[bGtMY<~99 ~oxPnrpB](+w5ޠ?/5g>51g=?33hNdž*ż/MGKZiAj:@l,uX<v@ ~duvW~ըAxuqf=/<>x| 7V}ވòn[T$7w853ôM%Jk//~-'s9'j1ԂsI*(jE. RPD7-נY-xI]ap 4yDuHcL`(}$t5>R~VT zzD}+k:^ ג],&%139`'GROa}[cޙX*i[kJcgYFbc)`. , n1d~F[aHHKL¼T Y]zn }6@ ^R}`){H#o8pF~}<ӪAAr'Q5 V]вk#y,@$ tnPv2ZUjS\];T"1ڻj9fD#JdUe5.뿚\ R;' JF^xrH }PޓSҴ 2tQ7`1=(ž'oߗKwpZ],bᕺiZM}ԹEqf'#d[*1}  h-֭>wqxe!WHvV}J6mw,b\_,fF5X %Cr} c 1جB\͌9MI,ZSoϝؽ \`u\mW=  0 BV]yh(Ѕ8hhv""({kU- N0PlƦZt(oޓ<&9:]TM+950'``piMuX ;J{>^\|!6cOJo5+̗=AqBT['|w4 ~˘裣. )er> *zSޢ[t$܆JIb{\̞I|rŕ^9\ـ!̓mPc6~9l6O>؟i0Em4쳇Aaխ̤jaYvy CENw|&l&w!L|VA)Of}=xo $O0&p/ H1cXY̵iWR}GPA>&{M>hHq=_kE}ow'5վ&мN@f0ssu MH}P@%r%+t!0e9ٵ5R[7;pA9hBYr[ z0N@AhiR2,#ܼsN#~&De <-BqH٫ (!끸}5L 3qW&EZf+'MSOzdH S#ddx=5]82jbP;a浜ҺMt|/vV#us0+BTr}Q'&wDM3e!`1ol~\yEDQrCzQgĘ^Y7 wne3MZ|jeJuv8;vp̄,W+v^FB}6KcG ^Dk|ᦗ(j*OWBb-) exy*Ҵ3%Ut`,1u2?dB[z9Ef-Sc *p8MN"_G3Ij$VXýv1,Z 3A P"ˀ1+Hນ <0r2{i`5VwzFF/A. 1o\F/-n*K WSi[b.֬u򵫖O[).g,J+DžMߌPykbi`BVbpW~0(3{ Lvj6l} )S]\e4e :{X}Uh#JTh#R e|6g}9>q^G֊oB&]"kc]@]n qbmSI{ӍrX+ĝ?]ƿSK]r+CQts\"}j=aWr+S_MeGOR,PnTpbW{A.U{`ԠzBѨPeTRi<,T-"> 2 'L bFpX߁/Տ/ N~Ri(Cn?yrُYhȺz4l5Lד+ FMh(B=;b|ۖxzxw#%6ezg淠WkLaޤTCAQ:Dq_ۃL  g*퀫\^h~v4\0%J(nNޓ*15|oyC-C!hCIPrh@3bjGHt22W7J߰b LV [&$qdAy)pwM;4b[v!MnvWͺ~!ҘqڀN^<g-BonkP&!bQKW(9sN.!@0!rLijKǺӓt?EbN5׆rV E/Vs%1zs[Zzc^ /9Q i2gC0nxiG 0=!Ea@nilefǡ}^' Ĉg \f':ث},Bu\x7 &ԁ9ƴiټUȏI{~lτ;YPtᖼlyd7/#AyY)tvr\tQ< VR!_`NNsTIkK:2@Q̪P wr gV-NJ[eo|v flD%r;u̥!ǔ+z|i:_/2ԋ+d^8CUfGWTHN>N_7 kD_olEdFQls9}>A^|0h| f7!f/@ŞaYG`TzWextSM I~\Ks`4Ӭ;MXpKumjE \:ZIY^d L+x iȔd.˟w+]JlM坊E{fb\e.6OE^g=11UJF)qQj~qB4{ُNgp?Fs .A~gcdvƱ>iwZBUF iE}@w3c$ϔ7 @%.K,&&{6Y!t[/x{'+5!Y8$ǭn@ ::> xxO,m.ݟJ #1aD{Ǡ1oT{{8ZG`9w6'pJچ|R/ `Lh4Jۋ@zWb+Z!;k + XkGf&e"?Jmm},+S;LCBf\*~j2l3wHM5ڱRv؃T=`ZSđ➂iC׿];,& GWpUv}JÊ {/rvAO>5lU`roMiŴ&;GVflNG+:І+S2sC#[rܛ &Sj(sY益`aت]Aj"Q[ϰ X?^O#e@usB1l&yt))W٩ k2٩ jB[MS)yY\Hi/eA&g).+L/ܟGf̊Nm?i֐̌۶U߶*!EtXܭdKQIw<;$r!duJ`[Mi)xo]CaB<ϥ\/3#J1@(E' 0 {ğXf]JU*l. ci[XY ꧕歲Hб 9 P)$`_cDv,i:ɌuVޤۂvY1(.![VRf ^/ /@q>jw;=vSgD"Gi]3OU~[3>`1۴9+NT9*j;g^3hrv).9Gn帬dD'̵j^LuN0X3&n)pgHV-`'P2%8 N1^gײ5 4)$X^\g-+Z>')1 )ǾXJsiq|pW)i5v6w-,m$6fFHE rWO| qCC)U<b;#uPlUA6ter.EPB8fI?Ltl '(0G9&IztX_i /4PG_XtTPX-&p!; Du}eMI3OћYUv_`c 1mͰ1H3]o29e mrK 7FP@?ȥ1[+8OZߍf9{pff#HŜ=L`GwUĶĵmmE5:TK {q:YAћ8q'VՒp•C)jmwI}:\vB4"dx ݒP,Y?b85Ո;( =^^%LnIk:ĊN;n̡RȿWt1,bG&cx]Gٲ7;# ض2-R6Lm'FVWs(aHuihR^>;0x\QXgs0R]ZDDK2{'qbI4CD.IRޞÄ&[ZUA“OL9B?}~d VU&4q `)lo4n "¶HSBVN1F 5NM$]=06p Ә߱F\ӟQBn jr^*]^p ;>Nj8"+k6l(A]8 H'zsL>ZCKҊ_78֢$5̏f7-Z8.Mbpmkr;1eb#NpJ9 flYU+O(XE^Z:b=ӏ혟AJoK45 l8j a+s);F!_ 4tI=V(E͗7lP[ٯ% bz)cO}Kg9 ĿuE*ی7mgL7[~wKʋA\H_'<&S,ȗ ޫ%V?~*U[SxeG h®%{|Q~Y; Md(< !PcX@%Gglq;Tk}w@[|D!2}?+Zܯg* |Da9-'ЄdF±6d}uMX¤HOm,BՐc_'FSYqs rWYJ+Als"v>;X[i8]n2^D 76S}hWe d-X}s9[s[ϔP|LDi<'"Ԝsk䳓V*yOɀgذ|Te'ΝScp%bճD9 \ܧ{p܄quGT Y/>`WZs*F: VqT'7CU55b2Mg# o#޼ȅ0719m$'wT}c`/2zQSދ)Zd8?rfC.hqԵ {V ɦ@I jc38d{k{z0J7'2o Vl_ߨ<@']ɢ /Kz hXQ6]̦e5ɪ|ԉ  MzUO-ș PtW7 dZsa@V~#}id"a4(ːC K4E4l~åO˝orvY0)#lORLjχ(dK17n{hjudV`yU=}dȞCq>"\L*ūhsJWE쓫 ;-el. &pPTqXq%WO̮ŜH5@v0o ԭaT(ߪHu}9Á=96i2P׳i|L‰Q#1 a%eKm8QۚF%.SE)E HhZW10NrQY¯|S##Rww0Edګ:W9 a~uo4 9غܻFRAacO #JgD EyEkHo7!͐b K#70~zCPFc|6Ba+Ɗ~]هw-;/-߂s `]gU::jΐU@U]/j%~j蜥סqrz;Q' OTm_ƣ>dciN5j ;qI@0bT56ufr-K̴}:xVx Gs3JMG OhqsI'0ʟ uH'((h jQjIkf~zw(~j~'0|6u]ʄqȍY bdXbȬ}vق#1(k|kv^}}gӻQFZ jBzo9(803]! 45g,oT0n_xuPuoDVH[q3:_PXwأ`2i;`Ğ|V9I }\ȻRM퇅PnIO*a=d.uV н?RN79OA.sc&f@%;ƢH}Hde>oajhΎUXwOCµ >k|eHN[ߍ [xj'i;Mr{ugg&ĸN~ju¯kD =O&NWc s"hF@)&,7ά(U-V-rؘsޟ@vS,4koO2vX\TNjKWy庾g|LWu# ETڜ.P% /+[} =:lzQ"WHj_8NqB{)mq,, Jl")U<Մ0R=xaCl,8: Ђ\p np7`^cD 'MqW0T} yo:,åKV :&6r̂ˬhF+b6Q0(D)a7kpP)џ?*.1(+0gz'V]F|BzӦ눢d=] NRImQ/}}YfnF+;$P[n%7u?a+K׳F j\ϡ&M8'ViK>ll107jA@]"o5 {Bc?9'Hp> 쵳h|!X.Fi lZSoHH k Or5L;VIVew?!)41*O wXQ "qǓ;.`ɒy?. 1_^8˚Q/ н7 9Bs9ߛBćg&~P20|~mJ䥱31- qUZUOMsORA;0TSBqK*N{؛eexዄT, ÎM0}a%,(NO_nG&ϱʦ6:P1i[CY`ۿ#BߞkyGQ<#!»:S?ކOlgC랝 !E-o֠<K %a=]X=붰jKuN[kЛsq\||mbH˃rJk>&x~AΈMc¦=YMV%A"rA(-ise2P/-\@\VJ޻mڋ'fw"8RuO茍 $  W)}W VRf8h2pJ.٘qAȏ!O hWC ,7Vu]`]j3ev=s SYOӞ<%u` |@,-.sɃ2# ,2NwZ ,|=lb )< ,N)XJ. D3rLߗVqey;=x>Y)pYIn&J5')`Sn7 %9A:'#IPEME4Di[O55јJ(K @5BOH## V8AH'n`Ȳ\6oTkmPIlP:7ݓ `S'󰑜W~qz/[h9ajvhܓ/V5XߓZHxvh*Mlkwj|r>yvq^qw90hHx-xB5{kQs sq"C#{CK`JtLGY8nJ25@. ?ŗu%6Yu\JV/{x|7@Ώd&د𯇉Ppzpgwf;OH՚9&ƈ F߷^NssMCpyelC2`:f46R0նrabHYg-A'>h;qU ]޾"-1{Sa E&AkP6`oIuû y&wmo-EuN sLe:ygkp\bmzt6"g`D;,]Fy=F(ʻ P&DS"ˆ]Ar&ӳut:P9 nCHd@e* do|;=M,5R_U\ CK~1zLQ\B=8aP˅9? AֈaV%Э,ަ{.өP}A.B;O6dwt~Uxy&&hE<;BB 4&[v~b6)iFkh|hg@C/B _ $iHX^\'soD]шB 0=F>ڱ#]XH|[@Z yKM @,xVk 6]L6bb;,M|Rpp!O). 8(4HoF^7esj|Cr%n.pV 3Z;ab̜W^;'ͲvlܕJȢJ!,uH o՟1=9lM_`jX7X)mI)ß~V9¢Zv)C0*8!ވN@77XN0̌qﶷbPt(f00*]^,qZe35ڹYbge^?6l8%sk3XU5g⺾\R G~9Q]E12EaPxӅa ICzҶ1(  y 1L9ծd4=]1 =L|c%ʘkT8!9 a?G{J4wniO~׻ M0kfY7yX<͙ u:!H8uz=?]DG[=ԯa'73.͠A;g:hMە d=/x!EXE}/Z]x U6bkw!k?╈ rxz072V'mR7 }zL0߭N@//c KTNϠ'WR?SyEq.(^P$p%6aEaSͧZn7"ePpv/= ۽]I!]jiWS ~?[k8\SvB̋va}ִY'K!a=D\H=e<ɘ>E'Rp}%}%AB L{FCji;@A[HK-g9Gj[/CV%[]5XԘ<< GvPvzh2Ain#lDK-КkNw 8Ѷkh Ŏ̥@ԧGI%82luaڢzo#E2X/hpc|ѥjK=~\8Q–ptbg&R>Kx&anɯb^GV(Wi8N ,MCE ׉@N̒',3tOpjqެkI^xxDO?lnvI!H!@;1OC@{/I:?6D;b\RmOiJKc{oDۺ؀ַ#^SA`Q,'"BRLkpUR4<1O T٪ߖ9Ћӌqs1 H΅̠)3Wj [v|}:v=fa>wiR'pEo᭽.7Ep{y|f{CB΋_lœ-c|py~hW8l;3sfضSmywIsH_o{f / Ɛ눝-N8+kXK|0Ky`>]L@ +#5B"uKFNXeɡAH6a}z[*dl?%v4 ,I 㦭@=LABFȼ?!ϾU8F)U[09ChΈf2^I|,*bBs`YiG] ('=N)]$-7} ;tr Vygyyf"<)퐯?R~e'YCGt]>V$&oKuVEa.AM:fY =* )Yo'7Keu]6 Ku)/ݛw#qѯ;y9q XNYGZT뽿ժ<,6G}y/BS k\d-xU V ~7IiZvaSמ_W lP ٓlTi|+?;5;%'oeh?<w΁&w I(|PA@F'\ݙaǪUK|Ĭj@8 Yw#x,}#~W4n'8~f)EDí]ʗĤtMbQWO&UUȑy6oF1eK͕7,w*lpQKQH's"̂X✺(VHc٥~)6k>S=%aHS <B?,=Y[z=~a58 NOBx~wR"] E/%J^?KaB؂#!HLdl06,cy$$-guE<(Wj-ذ&0Em7Ɇ%},F״bo@ߛWT iM(ld ʔ @:2iYϪhMH^30{#*gjRlphUx d34%Ry46իAi~Dጹ\lH[ߤYh i;l$')CǛ7=-Z]?,IMN+dԎ6iCk[8ONPp }O}4Y'::~YrCy Y(}WC*x2SӪ?0%TYޒIp)T(Vt38(ڣ~s[n{BY'UҒrI*73,5y؞'*2-gw(?R8P[hg`*F  xhlZ;,EmkimW4`"9_nwlQ;psDF)jyO9G'OsW!!]*z$v~r&4=[g?i Tl^VF#pd9[a':=(+"X ]kĪDnJfjHaĜ`3U,G@ҷQUnAP$ȗ]GL]MPRr`hK )l~H<~"BGofbA$8<9z3x}Gպ`Ő[NOMݕ:j1/nhwB"R#&)E ӁI5slcQۛJbA &w8J{8&b֐7lc 8}퍏z8Usc3D,;PF)Upv<ӽ5(0P}$EO(#'d6Ʉ cp( _EZt&6^)̈H.,J@qfQ(+b Գ̹ VX},U0.-ڝ`@CM9bܠo$OjF=[yZW{1 g*$4F|TqY^F~.(['OPۉzcsW?Tv}W~ʭ 7)U{Gmuͼq%=`OwS}C,P_m/2ڝъ\6kFP$!6V?.)aH^u$J甼习|.}sq<@DnvUVQvs/ kTּ3`ߢ>PKfzpfK>eknl"-IQ@k?lI[þ-D z6m o^9P]8/?B"<MA(gm3iDF0E|×o\c1A:sٕ&8cgTf@?U8sLcdP>LޙC}FI_IRSuԴiȾj2<jXܥcO0z2qŠP)+>2/[ ˝'8uRyzO2>\UV>]>uR#G/qEa)}~C޴p achŝ$WkG | eCmqA_P9x-Ԥ=_B{Qn@̫EԺ獿Z/wi65& (u^˿| Qwx⪐JጁKUp_p[EW*9e[3{ڋ*N1ZOgU,+TW|f.~v)u3T}s{@s;C* SM0gܛ}H~S?$Nip,$i%;} Ay].c< K)i\ዥAWJdם9lN,|yYFo4ں̆zˊ`y> F7rTWrb\+WC9.kVb V./qI(ǐ-ݹJ`k/N_iGU{U*tKVp7qw{!RV4q Q#Qrow' b:%AFR#jv>q$wԆ:ÆT1 [u2B>IܻOKE`dc43iZ %hdǔ4>8ʻx;/2_:4IȄƶ}Dԝ2ȕp?@~WUW>T3GW^ e7ݠGj{dG*D9vqWX|qb}6bfq}0"qzhƚ"A,2gV, ݢx))J3%wL5Ά?0QpB?yT7dCrߗ"C8_LsE5u x я ztK0.p.)ZOSsț_tl)kdlTZ(aBҬSXzh]&Y*u©w/_ 8؍E.cnT2bDhUjGާXFM@!niM3=ITU8FG#9}o@ MВ}@#;%]Nq ~f0o~Vr(WR{ cO3'`bou^Nj4О|>VXVߵ!Ay~ 9UKㅁjp"POaUVT %J@o$q骾ՑAQ,зW<, rՠ8N^킺42wxCRtF# w<i);Qixj}TmĻN)_G8q-y g-9\Zܠ>HV ި%2>qKHǰuVqBK$ﺔt" XNK-.B>Y8:ꤡMm}OܼeR[ko7M\Q}Aǂ 1n><#s}B 3:R |/&Tňwd2 nmNXDH6"TTY@g<q=DzH^1sǻ۵I28vtzwb4ӳзYsh/ {}nKnDpBJ }ՎrA{^X9y[7~YoQ"Fr\s)`MT1-g1U񌈢fv[GG%ǰ\9QZoV7H`7"&HIj$?m7%3 R9+Z;]GUl"v1$iS~ڎyj›1{jd^&2 `17b^t92uxwO b O<9sgHe]t K tTȎl= RrAqɺznJ@(_uzw `d>7v)"Л|LtDJxx`eU!qP {60c8-n' [*מ7tGѮ-~a?1f'ߓNT I糄8ǎphȷIGl$]e=Uլs3wxFrf,.߰ WHO;fA%&%MNG4'#{7b蟗k- \, ޕ]fN ܐC 1h,>,1u@<6,1%O>Cw[5ŸF¦A䩂Dyc,%>Þ];H/rW7+`ߵz,l 8R@a(9FEF{,εZ0"d)vX.chJ{Ь/ӝT?Y(S>b!#ivs^X?%]*խZD,,(2XKEX>EhhQnK>h ̱*Z sn(."MX fl_cI +k.S`cZW.Z ?̜?NTLlVUxOvG7E\!C͘je6Enq3"K-)_ t& u:4?9_[.$cOņOIsgTcsΐoSP9H` / qIe!z2nͶGHE6PJMF[C7ʫ^DQu 29mA ּy)5Ͽ`vBFn)ѓ!D+m ?d$ j5ZXIjW+k,FWtiAX y$ } pY`է+sv*Ei &>$=5ci,$?ℶXPFNR;pIyİP0Ƽt#`, iirR.M&~##T{|?)S|AE5 ;ܼ#r5gZ!k0wReyj/&^-QV9V6 ^XZfUqc3Ǵs,b%v?u)N"VU-Y Lπ*"2,_5L!~yKBy.hfyn%JH[[{T*xc)ҩc E{vZ=Z'ewJ}],dAg'> Կe8=\е̴MXM߭j%uy,#9аf  Cw3UBM( sߝ" Ej.lB5-ͽF\d|<5VN;B *y`Yzlk 8^WXX y &xu1Xr;1Jp\&ɞ;s659nt҄ ]!~5ZH8ex0Q$4%q :t.O^ hRj>D^YiocT_>*?2[&9 aiD80Awq-| [nM C.kg zeAnB~/JFȫ$&Y~_XO4q.hEΐ˚6ϣ Vnqugi/?? oUm a Ae-(H1\Yv(XʦL@Qk.P/[\иG!Nnmf?"5 [4$%AY3/7(SHN۩}^i6cÙ77Oclwәx'Gv+ryt28xpS7MnK~J_y'=NἜ  494*7ܓGZϱ?̐2 #-s58{|U&xj(E4=aBrLqYLq.59ͼ!h9gtKn/-)6 Cc/Oނepx}rVɴ&g6a 7O4aFn 7;u ]j<锘r.0eؐii7;iKq7Ke}fH% e%a;?L>eGkn}oye^mHzpc}F%\/6ɞF< ݧ?ɂ%GGBKw^z.D< &e]h2UoS摸?=l$q 4$( NmFe#t2Yˁ=[ndgpqͺ'SOu nWpfSOS]'K>CסTٜ{A (R9?-bul+L|Gs(ZU0ᢔ-gKP.{, V/zV>Jo2Q.O/wFm8+fڇdћƗ!s[t++=A9F#3? 3~ A0K{:i[@w*ްvFf<"w-[Wzӊ3Qp71= H1Yt:sM;F ZxT.dm?ݣs4pWK].m3Mdy%YEhG|;&|D=f`R.M2gL&bY}f _ y}ģ!^zLInߣ;6\ zt 'EI1'IWǀ4l}^ E9"< ߀0ha:އ1IRAHtUaD(J-)`Rg;vwha^DiR֓>DߛD/}P5f׶z!sg#0vb{tNVKĢf*c:PwtKE޽ rv \ӵ!fNz65Qe*fqWi,5EEdZZm{AX\!8oMG2X٫tI<ü$\6JD0:|ӻHW@6ר-XC~,uMB>D;TJb܀۳]Rm @puR雼7Q.fA.Yۿ2Di܍hx.{J1f=@c)po1aiON_ԢWl$vJp9B9f;t)J jy+UFf-PJTP2{!. 6.!K{NF-MXAk*P ^W5;e_wa/?.''sNSՇ61{[."K>5=Ixo'{Y,U7ע 7oN=1= f@\{_hDN Sa SM䦀4&WaY+B[#QQ< V+A>E {\D2,ψ5w)FJr > ec",ܘ_stL.eoٿXD2nD=`y 4 :6oOWti 8 W895,b`ю!f\bŦ %) (OQiP0 y4᰼bu]P b/BEl05#)N`ܼi3N' o-V[ar*}"0\1uVHGnu&f Yn#/K}M; WOMC@#Y)F"&-H'O1AcX^'btJGx< jv#L:t3w⪍5o|3V gTK7RoBjf^?lu7Q&43}7-%5 B!fޞt?A:@!!x!_FR;X.udۓ];,C|HLVARn-6djHWQ/>Q8a{* F4ii'PF\*`E Gh17a J=ܼm`ĕxI9R7";شJ'{ -O홍qc+<}^%IeW-KU~c߿Z}.գ8[8}^8#ȡPCv2X3-cDӷTņ,=m Z2='Uk:&x:dBwF'0,- 33c1zˬQMPkjr46^?=lw-]5mS;]^;%u%ݬv2k/Vv wlT 9^>`Y@͇Nkp~8gQa3 Eu@-RqQ䜺^ch#M;L5E4gh "'v){2zT&7$hof*TъB*t+j8Q=,؄z%nY48idi׆,1jD Ņ81LM[%V- |+ ە#+rJ{m@.=u]!G Dv2,OnM=iPS_agr`@(Xup7,y92VN;"'gMpf 7 QR0KuK+?j dR{h5Tco\Jh Rf6f4Ib@jIh {eh]VSxL*΂Б}%dښ>=0 v&:X٥h[$9+4o= Ȟ.=HyX0'[L9. ftI֌~#&bebˋVBN9.\l/R)VȦ-8\|MJȿ8{j([f,%Wx2Y?!*]k( {LC{=o'dGETEaUCpw[{$[NfY1=xkV7 Eit1Q!I!k|kMND6 E~18 L P0dXwuF?paw.zZ|.LsPI U2N>bޯ O\hD|/6RHscY=*!x0WQWa~ zg!`Ћidn K;s;q*/VmQY~ͦe$= ,4<]}jWK]$=i+uayÀ+FWD?謴r4PdG5*#+G|a,Lwnte+́WZsQ f۟!qν$Y<iך*zU5Z m/=ёʙ8}тytCD{BEq˕̠ixvD滬'@30ˠ0JG3GZ8Bp8So|Ixz9iPѧul߽x>fff>=@~`x_B@R 9:2KD~CƉ&կ:M4|SbTAvgn~PWs#z˪T {~{bOsn/ VhbQk*+cA72ӌy ; 2):+Npo^> o>xЎ1<-a׼wZ6${ɜv!~S?~13ڢݺOsg VL4x!Nf) v I٥\,H :^W|l.&T}q,VƚT޸,G1:wpn cZn.\+6B) Ub|YkuXڢdGV>DAb)OsNnwGYGFkN *\ v3ɃUH%n-éG9#`WRPbɹ'f2 ¡F7%:}d5>-p*E+9zęqDt:44<{ 1sa>p:aPdl2/u4n$3m!]MGtYӆ1(M205#u2=h=$3ØM=/!oy C܃ndnp g7˸ Y~ChO fA2 ^ @hid' sܕx tP\`AAFF0x^5'0[* =* _Qcǥ9X/iެuܐ`0Io>?*,{cf◳PM>BIiO,\7>Nq Ǡ!W +VrɌjU jݻS:1jkb)u6z^N:3xQC&oDV *zMlk{G dQw/9Kd\Bۼ,+)8 +Qn5."4ϠM8mP͋@>3a QsO {dҒ[$=H! [voZ^˾ &3OeXN y8{IH_dr_%g._qe+\HXz=c bJ6 $L@U);mrꝃX\xUVFگ흴GdpD9۱v=vY6s.9O ozoz Vߜ㣐S2zHZV3t@kF%کA%׾lTz"$H) iQDڢ[_aXFšV[1?aַYgxd5P vA %Oe9ST!{ 8Ý/ $J{g}$^^BgW1l>UKڻ6Y0Nk5hu!4HeC KX;m4:\2m|-`>\va Dhc EǴvY("ŵ`KE]ޙ.[Ϥ_ME&B8 0ER׺"?؍9H(?C_) h-R9j IFYM޺1i:yeTm1ins0ϟG`(fbҠ[J;HOcA&miWd8 m”$$xU5o`|jԀR5j ~dT.٩g5P+#K{!g5hi<~kG19_o&x FrSDo7H=\&^F^+ď+9>ה̚ RE  'NR7p=tě oDȱ8߼".)cyܐds[7tIj ŋW?wqr@y1+rgp1VGfpL^7`,/lUk:_{# c99b%%C+s@uAYg[0Eߴ$'B_s/Z*l_@Ў;[94VIyfY( -6u3#QPexʸn4@ABGL{ _ҥtTfZOC7y'lF(mX/=[_ׂ`i̊w)rgg!DCY %zkENU}w®蘻P7>:d?EP^51vҬTjUaP  k]'omOOG"C)JfnXv+rK7bgL>*_]{B\ 8wM\N\.#hL#w؄˿$pYӧ=] 8Z]pElu&m| }a ӄ?nQWJްtR%SDŽxM@1'Id ilcq/D;Q5^:ɓ|/ZUnԄ~+J#[ m&aiK)[وqhBNM˛h: C>fJQb38ǽ(X*)Akn 4#x2B/4Zzkgk9W L?K}8]A$.vw$MEgBCv"^Pz9hǻCYԺ˄6DGL3I_M^|G==K$7Փ8([qD̎xKr q?)ǫh& NS;w \b\PIFx_ڋ\exwC yܾ0t-fmIÎ)l _&|-PL!]NXphY_Ծw!LM܁fPi%"ϛEyVr8m%_ED=Uf7 TD{|$6삈~P3~/H?Ҫ@WڙoVBF-[ȡ7_=dS7c՗d)Wl,F^c;WI}zeXΚY+lm`s*)"”I5_̡wHLg9s,:Wg .&i|SS'"=xMeq=BȞ0W3&rӖqQ{MO&/==B $;txYsFkP%A+v#!8w>k2?9;ҠXϮoV02mugcLqb(X}R9>0 TC^Wa2{Yp Emjn632y!0ՠ~pGqR';EoI6uJ)ܰiEgND zOFK2LuԴm2 7a"_ |DbFsRzl۴0ͱws@)G=mb҃DQ]ĝv" fbta]/fHוh,Lj!I 9q|̲tB}qWhCl[= -JT<ը^(Ke$1^ҳZl-ZکaK?ʼ&0q嚃ixNeTM+GV" \VnXd;y<](`9L`E*:E<ަƟ%3?%:Ⱥ4xڠ(ç|ߥ.,S5l[a |Fԣ>#wFdk9& \%;IC,L˚]WqP^:bXi Nj̃9a/I þVkC &"4xNGq+%̝%&RSM "4/^Do6S:Q"&Bu*&Uh·Г*oS!&}CgNPCiׄ%s"pNKjAR>xI UBgEL{Sˋ"}}F%:eyPN@*JR#cGE/M0 Իf%XX_&[85;w'|45'ZY*u/ Sma8k3xĽ*2?`Aל~Z;L,eٲl*+iq?"H6ά8*uĐd꠱6!,ՐFATnSo|]v|9!0>emw8?!xRmvN7O%0UZ};5ibyƍ;zFH ̞[ȝ 8ؕ$嘛xym$* b0);X4 ߊ|anN3 b;xQlѠkTʥcf߳LW>&h/S6 .RlndU < 1.`x`ҁwZH$>mwYsyT V8EbsM?sAdfQD[z>Dxz]r MEJBSٕ2Y)5ӧL@P9&N+%ݛ!ydS9YnKf;廝:ۢEGzWwl '|ǰZ?fne+f?/kGŸ^rT1Q0@q|?Š_"cHg[bH.; Wu_[:1dEqmmCl+h&#n'<)JTG|ZI auBVlS1L#@Wk2ZgLˊqa }!]x,I_- A}ЌT sK3_* ;Qn EzYz;$ GB>=[9B ,ޏ  X!J tcrzV25{AmBeҎ{`g>W}{uf쟕D A{CAHypQ^UWuO=/*W:psnuA*\n"=BiLi{Wfِ@Dp(}90[AܸC<8޺>GG,FFJ /U*j$o:7Lcz!t\e^ fQhm,عJ8v7և]VQ N}+^e]:nX1/J=MҘ_4"N]"<.MRkx@ڛp O2iZ|3?_J H&]OyatrU\&UaN!#S?+}"oLB&BɁ*z hGuq͉-evR-gnGL֨>cmB*@i0iʨAEMXk7qZ#2sȹgr]g쥔=80@)l,7ܸUcP@5T dFxɪ~B\B(~3.VA5{?ETyK (j3-˳d韹 x\+C7}e`k^Md'5l ObUqyDE^X|&#C7%tj[ˢm<*\\GIuCrZ2F1Cg"zr^!lK4=eL _%X_@|HyasGڇ(*ӲׅoBW8Lj Go%$깐zwE;)q/~Sھb""\=fbi>𺟀$GpUG=lS|nٖwd#"@炴:30,Gq-]#̍1u8@ib0рG}fU!2wDDA0)cZPU{(@goK.USJ^MEy/)+x0]~=[-ǔٯW7sTSqxLEL19A.dBcҀtIZ{s:9:e(.S k].mT VuS׮&n# ՙ:N#;7hCds \LDXd]TCD|JK7xO̸h=ml8.cnF´wvSS\~CQw@C4G}&Q FZZ}!QF?= ?TZn%^}<촣j-p WBM{a{8~tN{EQIzX}F^ %X==j%$dL( pݤP*vruǢ =tMF?HbJf8 ;saN g>IT i$jTrÔS1м=K^ -B\+Nyn$* ~Vf<>[9CT2Y-;:;G]_`q՚J>U0qyBc`C Xl_OK-À9] kچ[`,&"X#ӱ\vV=ҞlѼe+}z+@ Lf]~- Aۣ^ǾGcp0l-Km#7`A, AC}9R5g#"x|Fc#~uffB߼#f|D悊/x⋍'A.Y!?y6eLrkȂgk E%fZ~!g:9ԍ(ED{74Ş w+f@l7]g,o^ ,xïհ&S Mt2 (q?GH Mo ӆɶ EDo9Nov1|\Rw"!dG{"ȹ OQ CWhުKV$fg%4pN# JTLԒ\zT}PA 뚍l70j9Zb-gc&B~w^H5M5ߢ&k[V(38o^MhH %H H\T! iJ<}dLb i |~0e)=\! j-f=K֞0AX({ChldދZ>" ɠ7 Cl* Mq*@K) F~dPdk3 k!8/VҒp۠{N ÖA7Z XMgDXQStvwi*S|gd,/2"񩋄=ϺT/Лk&s6/̼V1SiOzlVx ! 9ýU2S7fEylsLRrA0T&ė6SQCm n^.ZID[&0;pL4r @#)biohbWċ4B²N_&Y1t3#V9d]iǧ;H3B2 "V?KEW4 J%KԸ[qAGqKRH"=^ni"VC& h*rzu.dDos:e)yB]_ >nҫt3I/HX¾fkR^-EˎlOj8/TaN] bHc[}oGTqU0.􅜺\qR(T}V/|wQZyXק5?x)X(,+Z>8vODXcћiy8xUq9(C #E=waY 2 a*%q [*ΗUX%Ŵ/.TM3E#"ꚢ˒bR=Yi-@(C*A3FZY YD/Mt|o׉Mu~ˡ:0$2ˮB.|Fn Ѩj8M領[&Sd$&'!ub MUq{瑈v/ŴD7D@y*[1@?p▴\N ~zoEo wb׎Gڟ-'Ln7_w>>RR{V2FLN_7vx\M ?1̂r r0@xgoi¹´:Eo3JL>nWsՍNM 6_"/:aY=-NRHelMtў>ܿA';."+I*A}>gi @gnkr7DV<2mO?pbU{ʗf o3'izo@PrIvf43QWnTvyOcJيJtB=.O/Q2mV;WXl )%h0w4nU% i@,Jޏ'uu4 y\Δ)?6BSn o xLXk=zFh\|bLn*GOHI .t@-o>vD@5ډ9YubSB~J[Ԛ p* ڿ5 B R !eA^鱼:)I4pBmuc!\/HX,9neԝ_b63^N8ɗ2 !^Œ8A8gVaƇG0/JH7\ @ܕk:b[pՆjH/;V}Eo)M8j.K3s8'-?KËʹ|JdV- :sZ=r9|XnYUS1\Ъ0ҹ; q4f ?xն0C`;Vforn7a!x`@֌33QJ'^$:f=l|Jwm~zfw*NV{lRaí@j@.zp~8%Au3SakShE Q1CD>n2gr%gڲ#];-$'\cYW6"iVkL3c!:XbЛtw4HQO/GhZ䘱 2jxֶHцWaN4rViCbV#ߤ 5X M ynYgRp{nNHg=Yd|Vs~FHy4:٢|?:~eyۉ,WVm|Zȅ{Ħ;Xb=5[-*OY?xʷ Ǯ +%ӫׅ\qY *9|BrGsizr+ĉ+h!/ImG5"'ciΠ٣xloBt4\0ivi l@DiHH+<[ņf *ǤC^ئ,2հSǖ@(IO2OP!h{]@͙,6eT5^7C6s^*G++uyvD2u#C%8a7Y/jAAdZZ1m,k)8 N_WrnoFeD11gL``t!Heq3nRhk˭Rtx 2*Zs$UfkyhF̵9$2ڽ6ͥ(Iq_l|s"$ghNb_; ?8I-2-4]D/+ԘmyUqWw8911#e,}ixb?)wIIuɥrT5r{gl1`^%mske?4wnDi1?O|ѠW]ÞώpqD}q2]\cG\»AsbCSj><6-}Z#' cb=3l3IE ܍AQ@ $e1@?kR8=.0"ND4|$r"ۭr:]arZO"~gC&!4Ӷ%zUɛC*d_1=4jTGsIDJ^ sP,c -HȘ=Qs"hUy1QAj;%O˖;52_ЛMvGpP 2q㷘W=4sr"6>рhTԥ""ݞ-r<+P(ߌ`^yJ?4`~yV[`wWT { d9q%Ź^ڰcvh BMlc[W6#>h5A⮏]MG:^놭ɒ$~BN;L*w)PQ_ WrǮآ2YʵER$ef I7 ID O^^#"-eqf2'O7u܁!Bo+] %N8x#)88T!;-WKO'x}=-`i ?2p8?jaFvǯdt;uA17K$@z ez ȸga6ӕcnmh[LҀ})3Vq ?x d0RG[ Ќ{t nq^ z5A`]Im`Yw60Ww ЅDhL.ǞOSR/*vqw3gH7ف'y#c!Ã5r̡iӱm搝ʼng6 W39 ~)ΥqJZ-q.G|ZqADWCX'hTاFUVlAgiHsHWV_MFppOu.H8˘xtQx(SIkr@yc?pi  jJ;ѪIi1uc_\6lɡԳgsH29#U,l /- ȃZəo z(<=Y"o- oH w\!Cp*}P|}Fd$Lj͸(S%5TvD2ll5N:, IHi0H'jA9W[wR٬~yjO+H+zp}fc|H|}[擏}X5F7^B`n2O{_={Cu > O/bZX$~Xppu_Jέ  Qn/`[R%\B֋c?/| ȝ>em@c{ɥt\J.N g؋ DŽpKF#$),Cty\(CbI'̿}DO0Sl R:Ff<\ l_LL6ֻ/]V2؉=r:,o{۟鸎vߪRD*x>(quːdEXg_jjNČ9ҵ t*64]gVZwpenQJWFo V@*,\?4BI89{O)bDaw7.҅#' g ufd_lB{;C1 Z6';z{S,]9.m4vQKcmc{E?EUL =ܴGtB6mt0bj?U4P8 !~C  ~aM`WF>{e[w*",.[w$ʵ86J(_a 8tY80JѬ+7 %D5 RN1ZS]VL1E0 a͕fMz;MfTg)7_ A8nKZTQ.:A2Z yhꫭ .sT9.-.#YXŽ/UJHpIERJcG:^H7Eب J0OщϛPSjhʗXgC=0UۻJzn ݜT˹ܺb$dhQp޶$G?5j>˜_"Ӗ5:sXNRl_Zc6Wo2Ȃ c4ϬWBNRDKri IW%O/B]xr@政RS.Yխyuhy90 Vm$@PnDBSaoei ,ȉQj͡0 2 gD"U0ΨM Fcv؋|!r zMإK-l$n|5ݡq{s_r*k#kO&6˃M /0Cax[ddg-x;*ZiZAb2$ecDMP8)R2<$mCsUt0\u)45RS+j+S߷&*'KV|rf-*S+o Ȣ tNqN6$yVBh.]Gc븰t_vEh>(WՊ'kv=Z)󥽣(ȺS9YtUs~BjT:/eG^=͛_>%a'直4!*MyBڶבWCVE-vb`#_3/dSQS)`UV!'Ȑ|MB_tX4ضSx܌p'Aj=:6O.'NٷhKm rJy@,qB pמs 5WQq&φ.3_X0q;.x! Izޑ"Ž@k (N[KIј 9Ŀ.?QUPw}U\F @0uT)$\WgtֱW~qIǫǾO!+]`R>frEsQ!"1:bIxY#.pJ5" P?Nr_f^ C`V]!p^As'Ҳī6̛Qɖֱr*'W% s_`\iYÉ̴-nc7 F;E=O7tR|cūY;Wk94[77j1cjLԳkT_ ;KaL7죪b)Wb)ȣ_rۙsYЖϘx/9E➥_H$k}+> 5' Wl xʝR[8:JɄbnVZ=,S3>L0*fDТ;x`Vq.?me[qMvu۷Lͱ!)_a2ⷃ Q% Ĕ@Mt2 `ũ+пkvoOcK.`RieuC|inh D+Rj/2%"*U$ȖG #H[_#n=zjܴB0ASx+DԏO"[T䳿Aw-8㱏j t$橘Ņ=j6|#3Q ~:)Q>vڿ[b Dm}יҘ"a5 ~I\ۛh[;N"@δzhû#`" EEك,aU3"M$uC#z[i'ଁxӨ]tHw1Dbib%A-7Xݳo/$ U۪t3-6m-Ylݢ`֑~ꏂ4b._f۵Aj~2[HE}>@N+%#+ZHIѿUbUW. F3ܟsЛv5"-x2IK fvܻ߿e;DxN;?>:DL/7MFgH}֓]gZڋ,VDj<ֆxM/kw;Qc<"$(G/T y}CDa~f/>A,&s5^A={9bUv$I><P+4+se_f'%Q#T+_ymbI0) J`x;٭=5m:}5:;>2 )h1~Tok*oad(}LQ2ʔ3A).1dmr|oC(wáBz݀SSw#:Fql;XW)-VTErZ~v҄c܎m,F@j9c:)!c cC!ϾM%.IvR'7+uI2+<Ѱ13V=__2U-UusΒQ$?q"қ ^5xZݖUQ8mYiߨ9V,L0&5hXn]>WGTC?vl%*(eMkjM}$Ten̔ڗz$>.4Nx9j#Zl%#j ;77VXA%rYs, hq;ʫ */KԯAZa>$*:S% >!Q+D$;(Vf TE1ΜnOﻇ,}"o{բsc=O`2Byȋ+zLr "73t@qxΫ%#ضb"~ .(MWfW5׎ҍ֫f%@)%fi{欕L1R66{fӹ("nJ95iUhT ʚ$(t~vCnZ+cGF`ppҐq|ݚ0-]4t*u_"(E\vg$$H҇Jr啾Y/Z%$TP0I5}hc2{&˓G)7d~$L=TQe;>m^$J w ˑE7&W`-d`‘UQKF ǰLdqN%c|,9 |䃑;sŏ^шx -ρh_^waOiXLЯb9`rbS7aQ8gEN( bSx:*&,ΆM60]XV|F3Hyh)kPEjJ*eM8N!4Ugr C?FN a=VKʲ}[~ u<+@M l_.bAօ&Tm49d9]`g(_KJ-q=څLi`sHwd{,^JV;#<'.( |N"hgkZeƽ=djAk]^.x A8Vr{Ȏ|Ts76ڦ:VPhc/2; - \coR߅?bJ0i:{5TK<H3#mLg ßtf@茁D&?jN49e wC=RAO@R{'gڜ9iiC-瑜̆8SZO̺#SY6 u 7~ 36vi"?#-Wu#4@?,Qj9[2j 9%dzHh6Ky_"gB/ʆ#_$]m~?:CvWHhT\`b"Uo^+;AnU .f98[xK tɄZ{lDi ~Tm/pB;%s{bF6zqw4"׆͍&L4V݇!YE߱m#-_o3]] Ƨ#xY,XU޾c>_pZh]_PM]tfH_-Yp;z QXHBA;mlȺh?<$﫵4 Draymb.܍4+%[2Bѻ׉^_$:rWeqtfc j/b_?c<=4|<1Fr,؄p4Cbh#crC#H>&ZwF' U!jŊj"B^}_Gg"[D]p#$ϲVA4WZbWlJf{!d'_:M.$A@%w ՉEmV;!+'Psa x oxB`ÒxVBw-'z&6ŅR/9KHK}_~ PիJ[V\bVR~%Emt&zd-v>R[ &}c,NB|0W0NT罱~}zz@Fy1{Z_ŏ>Ȋ͋={?fo ?sprpz"n[33_m'((/I7JEARoR% GfBw !qJ0[49r6UvþIVfxg:? Gzy^ZcN<:lVh_ۯײnDzWL%gkؘDHUCB7 ^OC[in>?q"em'#vJ51j`L5YX'CFN:]Ȱɺ5TFsi~y/y^XF*Q.:pN -R !4z &șʫ{b" )'ڟsPVI-?tejd4/lck b.h"_$CN+UG87~e 7'3ZYszs}}Ȑyt8D;؜6`x ) j7T^Ó?\H0! 8М\u25aq7291Dל&QKBM13.`1WHC*9$4>\U2ӛY YtNWR?7ݴ?w} ې#"sOX!"157\7iIySt1mkQ7YW.D|m-'VLVy q5}Ez7s'bT@K5|p`s|P0Vw"M"~yu 3orƛZ$n66UBjDNMߜY :tFm eeɄ.0EYn-M&;Z3e7 `R9>gVkgLzU@Hwf4ֆ@]J2Kuz?SuuAM:IM:9M%!# FC QHeTj9"j-2xTnVW{&F/޼-ڎ)`G U.}h!h}"UEO8`!؈瘨d\*|v*Q/~$4R2HDC_D A1Bx:srsL"6k/^ՙ`uiŰrG.9*SRwjS[]] aJ&>8Y5%lkY┧0zM;*ظ_`Dž Fcz?5hɧr eJQBv6p^nfy=AR22-3dtlTӟM!gBn 5Ma`dVg):i+}^͑Tcpl{hUb8%ALNV[zaF_ hz)3d1~ p Ai7B̓*җȟDH/ yAq;zV!hӱ̓/!q4v;ؼE;2_0vɉ-* lxEH0O 4T[-]E|hZ5-fj Zc;\kD[ӳVtΒ!Q~VefG P=^\//}k@CYe)@%(~sú0vX_R NLNИolL/(!Tz7&Fۻ],_eR]?FGHF+HUlZg–Fž%\FĴeA!N\vkJp(wL12N6 &, -ЩArhm  e6lq5:c5ba$ 9di6'L 2b\1t䥚tL~ꑄ,+-\ &^ESlk#&%_?-N`ʪmgr/8pD5a2oS =| Wol\_õbxND1.y@?hb g2jj49z!u\yBmW';XP4B ՕH|CtU{ )͘212Gm,q&y)53r>04Ju'~b6A۔rFH6^9O ΙԂPܖ~0F;j(o[$6?c;y7 d\F2H FIB]ŭ Lr=F=4O9sb5tt!|JES~$>~+Vsu9`Ӹ|!Mg7-I d !>9dG%*SD4cjgz\Kf,Zy.wSNy1ʍ X/KDi~+X1@I%d<4JsKbgR5_qfB]QI|rH)Ű5_yw/?FV q@ncs哣ѲĎ$rT"4Q(,o_uxQrPH^RqEc0+ћD@WyeZWTأщMǴkKqI(oC 4VO~[K(ApAM%)Fk| ^B`(jL)Jbj%%2pONl.@i1B'&QCu(?M-<D 3uP)d@ɪ7$F G,wQ=Goܝ(W,z4Oo2EfbeC&K_͒,+N7c.]I!Mk[n+nֈeۗq!zp[Dr:uYz[G08)JJ2?idAe'E ΜyT,F&gq-՜ #ԇrp/@ ޖr{`0=7vkj|ϼX%7drRt5sڃa7\;``\;ZPeys F\7#DZ @'|%U@nU?$U(U"]N2X?g;ҥ՞BD8 byͬ7ş$B&7OqLU*;pD[ PNU c <44F*scDW UsS;MZ f߸րR%hP: *4 vmV,dW!Ns,;xBuL5Դ9k, mdd);ZYf0JYF&nw, \jv'$|jsѓXŮpޠad1-X[0V8-K }JCr5i'7azu{i?z}#I6*8 'BhӐ>sǧ,T3,fiD]NV!WI)W\`Eo샏{7W^V ٦ B?!f+z؂T}d@ WD2h'>.*kOǀHXxɼziY`@$o-h %:o;))'-[@U mf u6HE1#J\%ܤ 4)!N5Vo*FZeKj~2 EQt;',AYx+6+Le)* sa@y ]x 7yZ} $:74<9m72d fP$eJqcO2[2Jo!zNPܥ;f?ڞ^oPwWYppڼEaZ8kXN8H=!ڍGKE'kAEQPIk]ܴ;,>d ttB`3i|Y5EMuSijj0">ĉbuQ78Gyv6,+YrFaRO(d=D:O?)|pĠxTuo5vׁґ>@`D8$Lm3 Sa*:AWtj~43+R?/W!#H& :n7 aɒ [|8%64e-F2bڨr5+-Vo[s@l*-u߮AEVwT91烙UtGʊz\> ۬1ML/7;4 L-%E%9 ktfXB~Sɥf)+TX^ctfMTm76]fɖ-=Yt8|S8zAY@Bi}g Grc!y3|902 ;5(Y!)i!CS`#áJ^#B?PYk0wWhixc}X JqÕf2$J)8Q3 ad-Tf^UVZyÕx+w(E;;"mU>Jϛ;)cz禍r4wAP.l[T`:27}j  MB+f Tiof1Oj蔣ɿ;aSRH`귷( N J̶E_=`qB[oY; ,ˀFeaUKgT5w#6Ns>#ZͻGiTչ/*^}\F2j[9V WQQYgsc9< "lab>sI#d+ٴRkETtܣ8ț2tWU9;. w&lcc1tV :ZruiISY~Kڞ˃SG{0D/xZ0,`~e+0ޝu: FWmXg$&ZWY !,Sɭ#N(_Y[W͕v}AXT~B34a"rʚ 89%(\{醬lNW fˍ4p_֚Ot'ApI3EgSmO!{hrfLBl>R@˓,sC9h!R]7ł_Wo/|+QZ?A9ΘYnHbƢ1ƈ}2(q:7 ճ:~qeIC2!FB]5nS @Fr(bݪcT?eH:j\kFXLQMj6cҨhc6͓ʹ|РlEZjW7şTςꢅB0H;FM)"M鈯'BA^DЭȩ&S̛W bi¶S\Men?ůZynY *blSc֪I!q]Vkx4[!'➁@4 5o' Mbb1kMÀzdV}=Ʋ}F-\ibY’q(8&Ҳ(Go;pbI7Y$ͥ:Ph5(5t.t@;?s-LKNfM!ִ\sCv4((-ʌbwJ'}ekU6 R_/a,A8 M eC`O &"09PLΪҧ$!vM krH 'k'ɝ4iS2r::6w$0LKVD`V0hBS?m^eGj5x _sNzxY>Z?_3=[wYq"BSJݫћcDTϢ>}O࿓aCŗޘCCÄ e!7#!'rËgVy29i[r)6SzOX7aK} Չf1=%͇7liDq{+@iIO/9dQh[ 𮨙d%HNg 29;ZnQ_*8Gϖg^#]3ϊHd Z;_$ܾ_N5hb ir4wRW=:iq@yLŨ:˜%]BB|o&AKBL}OM䄪R*P2;Bk+r]~Az < }>:3`$z|ıw A&OA'5mA2Wh8^n*-MOb. d+:Ac_4No> B Xp#wRi +T|zJ#n>?)f'?$I1y"Khc =fPWp[ZEg~hd֨N75`)"7^[u𵋺^#)cpҩ\)]Ch 15vu@c/PǖJ"u- ݿ`x&ިs^={pzWs*x.MMs%M )(X)~oj9j1~EDŽ.2.#wg"twoGbO.Nw7A,ĬQпnNK裗hdziBv(@s^UC R "k?̢T uo eHB?ӮzɸNl̹.1‘t{cDї1xN#PYO_&-AۉC:0!$G_;dhG=47:zj(a& 5"Xyzz NOd T 1j@vJL-lۍXC?s)]dDAQ7cM'ch2”ߏ%,woQ0 ;#B0I,f\v WiRpT{"P4e9O @xH;q>iRz+mBGGBR'8Y&:I=Q E^聇|_^[+N y kbOXo$Km/~FvA܅O;`1/0QcK:Futh [xs4}Snfd=1TYv^bƝ~vG)j~ ˘{jWRN3(%-deBWHjFb&<㙟`m%"Vqi\B^9h9-+KQPd'-i@R:Ywj4b(հ=݋CRҟ j%h1IP"6;×[-8LWF+".7gK@^][ Cúz (gӲӟ9~D2 fd#a 7ӞJ 7 mؓgu wW#?2>|husZ,A~jf8e@/,Ax*9ɘN3nq{SI2憡~GC>SqvjkP-T%ƌPESeDuA賝bIpջW <ܫ}9%xuc>5d / / r 1J1hvM(G 4"jcG<ҡm^+|i'k43cY`,Wfdi_%Voy|P^"Y}13;j3 4AZ]xT2.2fA)D2XLfkn k} +=;.D~ul,"Hqp"_yA2D+oj-S|1dk< @CIe n'1ihB1sbDd4 qoܵ  &d6ٽ!:+:pKɻk.[#⋹C  9~uiF hA[o."͕8w{+nq^pC '@,͂Od[탁@eMGgS*zU5")qAIGwz R3Ï0ޔ涜`Gi[5lX5懶}@ !Sr:S̜@n d|˔{gcTVXnn% ;`?gk\0|Xy3j-xKC %'S[ۯ h`~##4P=RGVDf}`P?ޕ_ݗYj;vŲKmGU|և1ي_LW^>5ۚ΀m^ihj0Yl{$ Bg•k.p{8oM^jKB0(g9D\N?XF|6"ػoOٓLŖ%0|^x æz H:P^q^y%c%lƥSS56wKI%!/Ҽ({zV?RAmis>A^͹>QܷtJx9mgsZmyh/yt}[bb19]QPEe ȅId#󩞻P#Eu{rcTљpu@ZF jbֶ]oTVͨo7n2?|P$SC%+EN"ˬb>+dl=O'jK]oe.# eMŴ$[\8QPJ/1q_@)ZVL~eS(Os%}-g~,-#5p@s }t.#O  }B)?.)atP~.sA\ V^V g UNȾ}q\Į_(JvOD[(A` >d*73y`essc(|3ӳ Huk(ZaqJʆ9`ъ}F/I+iM˭/Ơw'xhc6 5}6ey߄,b9#l<F &zՌVfgݚV}H$Uj?\xτV'9ibԡBq0 D{f&&tٸ!<®7D])hSXGho *|[[y!kUvG4FŔa4̀r2ξu/nͶ ݧdLA!4uN9+'k 0^꿂tDQV*г^1œ yBEhe\pDBvZSMe }R< +"2#: q%Y)9nr6|&>,`'!UB^ql=VT睊q8zL`[p+BMÁʉYd#Wmz\5HC7 }TͣU7lRNh?1ckοh'dx<8T#F9|lD+=0v$qJ>}&Q N1|,~[&JKF3ͮr5rbՐDfW -0;3ɯ~4;/?z?wmq\zu|$.D/y!YSi/> 3"Cm+%լ@[s?3GY(}dHy9M F gMP?v(R:E#Zc/ݑ V? UIoKY'1+@2S2D&,RPbw>LjaELYS\htuK))NJ]}润Qq{4*2mX3IiiQ+CěmB:_7';O}*. 8F!@ss'I P P'(z"J(eqTZxq>A¡^eS]wrg{@V80{!.?JCq+K.ru̓|:t$JaT0_ gte'3c-,'\>Џܧ)kR`K1{ZbOc JlBSxxe[ ^w\"V}B\)^4i싩r{ׂs+ U!0wɉyń 殠]vv~set']\T({$hAmt))Kb_V?`G28!.3“9sLv-f1HZ{QUS.gv{/{}P~,ܞ5Jof'Əý[L"$&`fh^*άRgw9b/я!f FME6$0l;:pytX8qg,ܭ1ҙ;6̄Zxb~:s0^ؓ>"uN|gv6 CIy/*R(K,%e~Ux)0}v:zBt䡟,:uCU4A6QXqA5Iu/%7I쎈0ݝ.WW;9ĘtgvvFJ^_OLmŀ"2ȏ 2;#@$lbђQL 0K7'@r/ ӣ!QqPg:{Vv,_J*N-Rt &~7\կZá@>O'Ohߞ z>BF ({kPJ%}vI( hTkbr} rB&;Koh3 k)Q xS ];mWw5D tBy 62Pc/P(t(eutmos]/oX h2iFL x1qsnN1{ K9ҹ%sm%IX^vL d̆$_靯j%"q^%>?.?pxRtPCIuyRPڍXׯXފj¡!^'J#/Ggvǔ>IO2Ĕf~/UW 4E N`A)$ Nşӂv}㐕l2L JZ]b:p_&!lY&ldN9' əsou ^%-j#\;<%񃻌Ax0DZʤ [bIe˝J,Ixĭ/m.Q#>7'ξ#;tdҷx !v_hCըGBkC~b!b\Y![xٓDQ$;D"Xdž(;]Bh#Ac>|6=5@eSRIg& N\_>*K&ږR'鶄1<$׬sQ]vl|(bKg9f@ *,勦W.Ӷ6GksAo!SeBVg88r뭿kY rɎO*Nlla0\ק+9:\vXOK-&΀Ke wݘsSqMٺIX"h`QV3F ծ0#y?1ZAUvj.X-%gMf4Q1C6ޙawe,g^TOxiVlJUDu&0(FBai-D/B&L.Hٶ`GA`-BK;UVjX>aY@G)U$r 0Yؕ0Ս(D#8|K0p 4BA%9 E[) `f;5?#ixuɋ.]}n"c,3`BoਓGNZ@8ʵ ؏6JtH?M y4RS bH[eXxϬ(d#+&ԜZ"Ucdh;%[)ޏ* + ::V$ϋ14P}vJ4Y\0 "Y9:6WH`{(&a6{nenBNYY3|[IWk>w)* '=ϛN8=sQB jo[8;&әd_^hsdU]OB2 Ǿfs1?44oqASaxͿm-P8{Wp5;|jƸ4amD2Jgi39hTgL^.vQ_0ANM-fSجɲm|Ye=8XQᝃ&eL kd -Qũ湟 oJzu 3`f#xC2ll{mAN,Y[s􋷧ScIlZ?AP/!3BXY[w~j\@4]V;G1b*.BP=aU|NOPEF!H32w/ԋe4xU{ R^aN  좷8 }9z ll:YeOڂ?VWWNp%!VIbQ+L۴ U.Zt%#LՈY$@H+4'[ˆhTKj]Gbɗkbf 9 *Ξ:DDL].\rP$pZ"KB,<Y!b5&.9;.VN߶G[2hQ{|~68DzB~ & ɕ{u'} ҭ{!y(HJ W 6G!D_V}v7^1OQ/kSÔ?[v4j`bbKFrZE>tg{XOs?+2wjQ꼽\unN?;xn,Ƀt؍G3'Dyho8@I{D05~j=BwղrI ]+I)8t;vͱ<ֵUGaVu{>a`cQ6W4I|Wxg' Mq- :9')1%&נVue-Uߙm ^6J4& ktp5V4{ق1sqܻlJ⤅X2=LYMHĶ>%Þvq6'$p_-XD5Mq0/FB0hb )P vXe,Ɯt5yDnrdQ {ed ^@wj43 YR0F@2sio'Oz0HE3FFrNHϸ`^e >`Rr8cv+Ve7'M ĥT>`Yban28:Șdb點'J?в)?HᛱP!#1fI] lGLR]rA(m>2T2xܿ5~3974U Ʒ}J&DT#40muxG%IF'|5dN31g&êg!]S?&U~aa gƂ3=t^A=1nyv+qkIoƵ*`~#ݡI"iYh+[X6 ov8ߥ8S=|BӾ>dJ;FH'%j=DG0. 6}G޼6Əʵ]tUIo=@quԶ&rB/cpRb$`n5u#Ke^za2Nfbfd^GKT8.?'ǝ?hL#y̓dc\ِFC-ͳSg"e})UN 49 ǻN )\6n=@ϰ6ٵEa1{A[RC^7x ݶv-]cPU7s4bhYǟj v[fFFQݞ~+,v+6q-:-Fm$AC_8'M߱r9%M@N 3_,q|Dm@fy6 .֛yKXo6q)(B0G5y O%p+ 1&l}=qDG7 :֣_5\Sw1PBBp"WTG!bͪтF+2k:C=/\pƧ#VҚIZ1:Y[j_rH73#YM`M}xEP~{oLB<"k[@-#L6fVmN!}?[.LyL+׈4 ŷٷ?)c1;eh\Mj~@O߫bpL*q&ioaM􎼥ja6r?ؚp:yL„gzzy;/⠓rӔ}X1!\R I|ᅲgr mҿj k8 @fz7>>rT.4͈9 @w9Z%L qЮ0{M z :6r&үbxjWwUrM4jȴYυ`% x>{Z fBBij(GayppSǶGZ{\M2)S8&Iq{I;!- LV U<x%e[fC:?ut^@jC ^%ڎ-ؕc\o ewyV'yU`y8reQƇiYk/*|ooWډA- ѽY,̦ZAʞ@DsWkv0R a7yl})xUs~Fjqz(ܒ#0'yؤYY8=;v@oSS;%(Q;7j̮MAUe}p!Kɻ&4Tي6C/rM$21fK\uCz6$TZuf`࠴)SxJԍk~#Tth:yqx|ёg?FMCaձTiW#)YkF?2_2,S)+3=[vUhp>9r&A<1CΦۓg jV[O\ VAXdfs %GIf\ Ŗ._kb3u뛾S'\ӺtXtsPz0$Mfߵ's ;y.)= Mmh9Uef2(+"PRD% pKѤVEhrOӷ V"3$V-n!, Shx%Uz 3nCC~z?O/>(p{hzf E" =uoqĭΝ35"nQ%[mSL >wS5=,ҍ3Dحd;N]{;̝u;%}e#7";OXdh={+|".X}>zK\}nP/4 P% |U&! sz}ߠNo )HsSDtv]BqmgGkGf(JjM[c|7~jġɨ{z.?ME hOhcH}2U ڊFhTbPiKR"2b,Qf(?,0n? #繴HmtJբ8>"K1z}tR+[hO4Y.~]Wr5q'2=\7 HD/IKf!= \u}?ġˋM5(z-C)2P/"83S ťvv}4~>M1D7(20GJw(Zl$C=r %΍giD,>C-Z*S9>m.̌Cy+W x|T :RގVaWQ<Ɛ s56wzc{ [U#?f_S:e+~SΟ.eI&Y`h +lb}ae"L|I?aYYe47E܆`OA?̝P j:r0-YI @ J}k,yAls+%ZuǷ_ s:¼ٶ=1} d$ń"Er"RD圾`DפIF|{aS$}OըAA\ HmD.2鱵X1p|Ƿy(P }T=Hp+"ŋ$]^B"Lcئ>X4 M)6.kyO5~® ~cz*AQ}|z;,JlҀ"<ь exmB&b{ywq΅ž?!Nz 0S{;7M"Z"mҌA".]f@P潈M՜jF ~ʐ(!/B8.MxNX"UyN4w5ظ5B@ebWTS+g30P3Z8槛Dp-/ lV[+8+0 ״Nn(-CHf$=d@9NVWkbxr4â`sg{pmI0yG\dp>+l$3U?⩖ht6]xDWIMZc.o 0q)@Ee`ޛ6 jEZM`C`Y:t 7L6Ԅ\9cjl4빜O+e2evVugtwfi]0's6U:^vm!u(J8™(RW-d=8NMhȮʎ\_)\rh4P\Gy|7[ujW.Fk::@q*G Ntm&? ۸Qf2#oqDY3I-"@ZΏyDSwY<9~:b>WT)Ůe䩋p騤?(DӇ &ע{!YMO)NϓS8艴oEvpF1)]У_"FذA$W5h6\ c_"`B'P YϣdyRo4/UƼovEz I'HG0#d U7t|L*` IK\?.+X%Mݼ*ߑC}zunl7͗TUef LdP7%VZْԉD:EoJ)sKx;ߊ#5q=S;7Rș)=Y\d ʋ$bDt(C+JC#ގ2?:T^n(R'ʅ!(*OjZ)I1Vmv&scubdlg8IURa~ PqQ E)=a:L'G'hc.DgSpr^c[e^G-䡘SPK]9;0ǀtIfC%0U gŦm o20Xl)xגJ" NW:\; $g:]\vs7 `ʙ wiJf{H*a LA/!M_EY9>u v/CT=4<寇DX4l.Ձ!ckJBw{I@z5SU HnyP&!OǐUO" ҼPq~g±zBD3n mU.ʖn..č[\];t ;y52B ɳsw?8{o$)wu5R/.By#Ȕd&zɕ+ 7wW`%5nC*-Jh}OGRŨ9&{8"nZĽߟxITkP+Khi`_Xpp"5g=A[8t[{֔ԥ4|$!# lrHha`?ʄmK V^WWQTc#~JuI@"’eք"z(l#V| udXݓxaÍx RA3ڿ$x9&]a6qQZ S oֶ8]!dt&5I6%.%Px[,\DRET8t~pP]9#EW+;{q>7kV*K }lL>b,N`}L3-AnPtaAh8ftL7|!Ie[ yCI6),Qz8>߈; =.C#BƱ.?- jKq8lr5l_>PP}Maa[D`jqahq~msŒM8RS-7./B 1(쇔x!jҿGg[.ם=@omL?^+ M%`9 >ؼGLL5^Fer_~Eo8d%/Fbk6;B%`U"ֿb8,d7uxԙD5~syr򇳒1ڄ~ȋG]ϥp-26Nn}̈́ITNx-[b&gM9546+ttm!R2Mwa9x*^KLDW<&s 1᭓q8J uG쮡F0.풮\̴<`\?"30 pe9e~c!C3t0$6l\Wk1eyYq )^F`㘚GUf:;tV_ u9~%l%`ErL7%GZrc B#As B /OtLr Iϵae)>7i 5} C"n{H j:d*֮ՓWM 70p!|z`s^Ts?1U {Z68rHe) VplJ, Y|ᨳ 2ՋE(*n&F :2hX$ >|wc3r"K $ߠ*l?|> "Y7fA]6JPk%)J5| $O6(xP#'&s&!i^Sɂ0ӱh> esaa^x;Oԍ|z|{. ㍢ 0&o;Z;؛g-5>z>uWېC't (&7fxqM))r SDu4fm]!*\##%(/v١˾ %dTQhl[N \Y"9} z0<6)eJ`|!τ: TkN$\ʖ~‰R93T5.M7 o8Q?~3el;.tVoY^_I&F5)GhpbWSSY ʩ$R YZӘ` v7C*Iݏ]s]LRO熪9^NbhlF.n,X}FK?Svf" <p<ryԴij*q@ q&*rlUJ-V|8x&?$BOvl(5^cvJTvb3e_eԌv=@}ӇYN0wlvIH՝c=c4=J~ƗXAz}5f ߆eZ=^cZgxb핟cz򭘹Tz~sӇ`I@MzW\U9/5+>$tc$))qO~Y`WbY{-+.GzsW̤|XLM訴 Nu5F%g[[A 0O`АN)c滋D7)"T@i!S@9qլ@@mIiȦ5zhæTACщcHL䆣 Ny'mع446I9`n!3)lS\!2B Ak,Iᾁ2U_*qV/>Yx3||#yb7kSɛ`rҢǚYp0V˃ŕ|#6v4d#&àh'%[VZ7?!Brv42Wঢ়' [=0eK.#>$kG5зbF˖Iǻ1OشЮþA ~ϕ,h(1~2* ^< /$ Ԓ'ē%:G|Ƴf$4y 6dn/PN Va࠳Wl' ȡwXIY T j~,RD8}u+/J2oۈFji . 0t]U_7^#/l=Q,=zZ=ʊO[ßsʾ7rƊO g= O$zH *Jd[\Ƕby8/jV]Ն[n7ơdefŜG>v_` ;vKҾ/Bic<p0= KOYEOtLkū2fH!y10p{e[!GcCQ=K 8]`A KY W*ԯ!,>cYk_W])ԅ՚-Bm[kOܯP?DŽ)Ð<,VN7ks G0=wow '"v1_<YrfK/S_a~d611y3{= 3=#P Ax|BfJadwȝgں72 qZۙ2z,]*KRB_'M /qn[E݇6۲/~137#ΜE7;`3&DR-nkrfVă;zhخnOF߂ 2C?G v={',p7I:%@6԰G4}LHu-0w Y~5 2my02o8jJqmCp+qU>e;mfQEHz?ȟvFR\ԅY4/i\z[aca0k僚5!vs(AZ>J sP%7Fu7GҭKn0.ē1N3jv7]sI=zLuO Gӂ5,#T˱P1پa7y(f*{K ;p,rbmƒA =zԎd& 4iʦ>{I[h7Oh0=\^_)$fË6Fe0唹E릳\JdI*A(iݾn y ֟cI X#Zzh!i ~Ir /葢\;: E$^V0+KXDOClb@:du$D2UyYIh?sL&bljv"< kxd7$fZ^YEVaJ+D *.$q.ߍ8mf6T`+Jj,bh˲ 4{]Vg<#Nn>ޗغ}R1)Y$a#A]}yNyT &KL2z=fko'-9{z{iin !ߖ |%ƭ՞L+=GB0 Ŕ 1\1~lzMZf0:_/1}&p>v~%dK…vRp{.nDd,YJ9^ DLM0K ]>D;b'ΨhRWgo*o1Ӊ-902wqV&q1)P؊]yMpk89,?FWOzwY=TM^i瓗4#qn{Q^9 [75 eߎ2_NGPjU;Zhٔw6x~,| pAՓ Göt~O=4WB|}k@Hgena t9 q/հɍmy>\/UA.,.|,)Kb24`ōpN$u`3a 1a9A$jܼwё$I^B}PtƼj9h: g-5Qh^Q4/`+rt#x g 7ㄾ@y F7AW ;ُd|;^cԼ(0BwZ@o9E"A9z<}~<)Zǚӷȳy"]&ܔ6V_XV,\۾n5=T (c$OZ)J 3\͊MsiJ>"vT|,$.t̯ 6oJQZcN`KV)fEvvh] $̳&>TTBozMuIJÙdg&[YPԀH^~oM/ڊKP8n I.N;[SƯsxݴh@㥤=LvY;byCq\Wi7FEsBzY&@6h8ZA2==3 S7eBEH6fv9?e3S` eMWcXچNDbZ&t_L4NBBDP%~b#oVbs!9y_ƥVV?&ׁ] \ih0 o5[9UG9dgŏni Y|>śf;t[^A$[y|?D~o~u#zq^6M[~6{EHC|kĤp-6xd(vnVFX$OƹϠp>1!ہI HqW8,ǧ x5I3*J=+7py{)\@yzU`V9ZrMeʹax0]].j!:MmKWeXl\nW/:/F}:U,3즸f5LPC/1ܵb$SeDECc+lN#OiBOCjnɲW09f8lzez1uIBQ!.}=;&?N#lCلЯ9">@C/.0CZZz!r W<#tY}q NrMIMRUMW:9Ycp 8AnY@Fd Hڸ-kSdv$r ^fm22.zÓM†g;16*{KfRSȏhUQȲ֩#ڎ lӈdtcPķx:2 "DtƼ'OxOӌrAdņ xp8Vp8̣@<vbӧ ˺aB("Zk]8x/+ w B$e`8l_e2!j%Jcw=n3Vbuc &b DךkQ 6dz%Y?AJ"0 fGT)'>^~'iSYqA̬L]&2ow;@C,=o 1So{'i VMg"kp}oO Xc&M%M|" m7q-ѲYwfehNpgo> Lm:ζҒ~t)ʀRBG$TH;ռ$ď#JJe2ONI;QAV!7ՁtF/\ØpPǽ2b3sŘ5IS3yjkCv]XmF7ȷ }Ye*ͦ%\xC̐SlgO)\Z1l$=5pU0L 3,Jv,n#6KVYNGKemXMkb2p>rw f̃s}F1$(r?c  uz L!~VNoˋ Y y)d+P#cLRzU>ڴM٭PAl -VI?7zn˗{={ζobHckοC&kܚ 변 8q2wH%oߍoBg:1DzߦH?bZT6~iS{ԧB@;QFu6vŇZc(ԊÆ7mӞץRxeȉ-]*awA т{NB~r2 w&@GG/ɱ1oб@ RkL_/'M#43/4Ofpku3`"x Aؖ?c"ko>ub֯]7REǣRk*ve fsKGA8 4'5ۡvkbu^B!Vpg1-WfA< h @ "(.ł*2׃FfϥsX2=3YU|RR8|-ldѣ?B&4G`5~cdt:dajY{,t9`9]SR8p9 +t=J2E}7~a|%5ĀKhQbd%P(&!tXR?"i>fZڗQlM$Lj0Ǩx2*(a[^>P"wnJ<%ݺc{ACEd.,0VJ[#imSWk)v :w X]H-\eɗ٦F iHyԛҔRi@FK/d@:=)<;\ 9BD#[x|B$E yk?HpPsHzɝmEsŏ?(g\·=gY~R|[ e*Qkq"6_',ZM_d$7Es2bUH7&g$+O<l' m6T,i.qITD.w VfmUuv$7X9eb{&-Ѳw҈),z:sAT1, 3Sy&Is"TqI]dNAqX펽yW,m9e&UĹC$|p7##+~PS6$O&J'weWX Jn<+`±-tvo6"xPouaĶwhE&YF!ŞwI[I!o-1͛aeczy\&lS*4℠CT*7 ̿ΑE!ePZ_hxۺ" TC>Oɱ%ʘun9rC߅7[䉃Rk"f :œ/AW) ob:u9W@K0;OfF&ܪKbÂ␰!f[Qp er d[.\C%x" 05c_Lњ]_HD /'WQpb,a*?D#PbK}Ȱ^ᨑQjrY_ET#"b6aI)ߚ~V/l#k j:>dDD;ȧX9:n*{et3gE)-FPjHJYmD&óPm *%swΚ\HHґ5_MUKBXZ32q7 Ep9"ib"`7?ۀqE{.s!>[, {5րpz iEpy5Io׌[G׌Ҙe+:/3v#Rc,m|:"W-0gѵ"Å@% GQj;cN(3b mTXݼvNd3m[sT$)gp$:__ V%az:o0&az?p{v\_:?K-G8Qx"3/T*9~` i2E!L(V&ua~쨜!j(Ax|ތR̚ABP;kD]IM(MWM3;Ky Fﮯ ROxCA£kQB.r}gs)uʂCH{ljxf޼@wɜ9Z-@[Z2 z(xKaI.+Z5G_6:e8rו8}Y ЬclȍI0dC`2S\ j⣴րZ~ a']~B\G~뾴;t`И*>=wۢ׺qa, VSՍ4'pci*^nB7>xr }]$M^-GA(jgs51~ӏr@WUD +~=XZH5UIcx5\$) )4k-4magХF"li+|!!`!`KAE-+46żea@xѠd>!lFyM#:}!`7tMә#e@]!`!`;jMrϡk@ bw @ !`!`@AIAlL <~8-*!`>AE-<*x/xMdG * G 9!`!`4tMp;@!`4jMrϡU!`!`?AIAlL  PHʁ!`]kUvc>f?@`@?au0u g>G@G QL>SdH@iFL1dUVMrMY YUalKuOe lclTIM\P?I|UCcEBXBB=qICyFUqYAW?@W>@cR>@X>@^#%B'dAESmGA?`>9W88V:8S:8FS;8O88O;8P89M88N88N88O88D V " _SjE?Q;;K=;1N=@CQ?;Q]z^ jWNEOBA*u-x=^V/scQlNMjMJiLIeLJbIIeLJ.+M} zM.kPKgNIdMJdNJ`fLMpQKsmQJbML^KIfeMN^KIcML_MIphSLaMIaOL_MIbOKhjY/|eQiQL_KKlc:;89889884;8:yQLG"eT9MGG<88<88LIGLGG,ZQ:MGGyMGGjMGGEMOfRLVNLDF<E=@I>B\?W W C3]JS4>k@;LnM:O<9N<9J:9P:@ON<9VQ>9K:9J:9N>9L:8M:8L8=l9a{85TyfERWC uh<QS~LsRKD:O[I]k|?xIF]xR98U<<L@XBCn]AJ?=My>b@<ZI<@<=?>=r?>=KC@?>=A>=@==*M><DI[88X88R89T 8b)my } di|INHS_CGgF?UqYEXUG@5|Tgyn|FBR?@`THSQB?VI>WC>oa[&]j}AXqFxeMG#^( < 4 ?a 1WmNJ, ,H{sk}XP]E?6WC>S?=6R??ZD>Q?=>UB=LD=O;?DB88C@8stco09xA/åCKջۭ[FI? c'gZwlj<z'?7܋7޺Z>OZe$v6q$tXv*tdMS]`2u1 N$'0vˣPGq"4bTd4TH'pHCMf'&; i!12 O W[tUl $t%%y%,,-C-/0'0012622334@456H669:M::>>?]?@e@A ASABZBBCYCCDGDE0EtENOP>Q/nѷTUcSܠ2ޞ'(s+kZaS3LpE3wK'+ibU"~'*z46=C<DDDFOFGG[H5HHIIJJ`JKL8L{LNNmNNQVQR?VbcgAikmm<nSno o[opLpp>w Sk_fCiv35Na9Qpt!7*C~(Xg:  0  |  '  ^  p4o*yQe@S=:p \Xr345q6Q9w:::=!=>>q?e?@C@ABBZBQVQ/vm.\!_ *   &,-L--.//`/0X001"122c23o344i55i56 H;HHI>IJJqJKCKKL<LMMRMbPHpP;eRŀȼs$s    2 $ % &M & * +z , ,U .J . / /N 1 2 2s 2 3 3 4* 4i 5H 5 5 6) 6 7 7T 7 8i 8 9 9Q : ; ;H ; < =@ = = >} > ? ?Y @ @^ @ @ A B Ba B CQ C C D- D E1 Eq E F G GJ G JL J K Kj cG j R Tv V V _y `_ a a h i| j jZ oi p& p q u v v w> m  > b +  ^ AC B D Dn & ,  p  & w  { W ;  c J $  % ' l ??.lC]$ia)r X'j  !=!$-$%%\&V&''?((p(()*.*r*-d.5./4;r>!LOR7Y[s\%\fh>iGjV"n>.<R&-n.z &   M  _y[| !Z!"S%%%&&'(;((*+<++-I--.3/0X00223536667`9:%::IM NmRYZx\d]L__`6`bbqbc-:BK(.prR*,d--3q445 78g89!:; ;k;<=U==>?1?|?AAqABBCBCCDDEEEFG-G{G4wJ1{KT=trak\tkhd@$edtselstjSmdia mdhdU-hdlrsounSoundHandlerS`minfsmhd$dinfdref url S$stbljstsdZmp4a6esds%@Vstts6)stscu     "#$%&'()+,-./02345679:;<=>?@BCDEFGIJKLMNOPRSTUVWYZ[\]^`abcdefgijklmnpqrstuvwyz{|}~     !#$%&'()*,-./013456789:<=>?@ACDEFGHJKLMNOPQSTUVWXZ[\]^_`acdefghjklmnoqrstuvwxz{|}~     !"#$&'()*+-./012456789:;=>?@ABDEFGHIJKMNOPQRTUVWXY[\]^_`abdefghiklmnopqrtuvwxy{|}~      !"#$%'()*+,./012345789:;<>?@ABCDEGHIJKLNOPQRSUVWXYZ[\^_`abcefghijklnopqrsuvwxyz|}~stsz6stco!l5)Ù=?ԺկۧO:=9 W'gNw`d0n911ޮT2ITYzj*|khRjnXG {S]~Z&i{%H$p˝JAk".bHd(N<!dB7A`!s{5]+, C KOhI` $h% %m%,,-7-/00|012*2{23344456B669:A::>{>?W?@Y@AAMABTBBCSCCD;DE$EnENOP2Q)mѱNO]ֶGܚ,ޒ!geNUG'@d?-k?cVI"x'*t461C6CDDFIFG GUH)HHIIJJZJKL,LuLN NaNNQJQR3Vbcyg;ikgm0nMnooOopFpp2kMeYZ7 ]j'|/ByU3Edh+$=x"Ra4w *  v  !  R  j.csE_4G14dVRf345e6K9k: :{:==>>e?_?@+@AABNBQJQt)ja(VY  {  ,-F--.//Z/0R001122W23c34 4]5 5]55H5HHI2IJJeJK7KKL0LLMLM\ JBjD/YL tȰmg    , $ % &A & * +t + ,I .D . / /B 1 2 2g 2 3 3 4 4c 5< 5 5 6 6 7 7N 7 8c 8 8 9K : : ;< ; < =: =~ = >w > ? ?M @ @R @ @ A B BU B C3 C C D! D E% Ek E F F G> G J@ J J Kd c; j  Q Tj V V _s `S ` a h iv j jT o] p p q u v v w2 } g   8 z V  R A7 B D Db  &  d  k u Q 5 w  ] >  |    f 3} 9(wf7 Wc[#fLd  !1!y$'$%%P&P&&'9((j(()*(*f*-^.)./(;l>LOR+Y[g\\fh2i;jPh2(0F t!b"t    G SmOv !T!"M$%%&'(/(z(*+0++-=--.-/0R00223/3s6667T9:::I{MNaQYZl\^]@_ _`*`|abkbc-:BK"ڹjlL*,X--3e44578[89:;;e;<=I==>?+?p?AAeAABC6CCDDE9EFG'GoG(q>%u?sgpdrollsbgproll6budtaZmeta!hdlrmdirappl-ilst%toodataLavf57.83.100ntfy-2.11.0/docs/static/img/badge-appstore.png000066400000000000000000000134421462047176100211650ustar00rootroot00000000000000PNG  IHDR.|bKGD pHYs  tIME 5({rIDATx[yTWֿェfifEEň *DKf233Ɍ+Ƭ$dQ'dL1%AePtdSlGIQf=}zu_ջ" h2glZ,I2ۧtgΜ76nݲUQ%왳fyIZ~}}]KO/fff͚5c6l%[Om{/۷o߱'-G#I///(ncnjzz$%%O嗝8K.99i*+ L_(%ZECiYiUUU@@@I^͍V)%|re5J~5eeegaxᢌojrtt'J !XuuJ{K4{֬_}Ȳ,ڬ? ?6mڊ%GxDĄ s`Ғҩ S^%7BnJ,((HIIPG<!1 |ZmBBOEyܹszG}$#jElbGq]?ed)jkEцRJ(s{{qSvbm۶UVVTf hkwwsVggg_|9%%e.O&>E!!N*---..IMI]ifj _x_=+edo]]͛o`BQ3 FJJrUU%8&q<y^_^-}K-^Q|8yŧSN[777yjXMMͯyӽUUU7'" Ҍ‚szi=ccTVw7otz~͚5'O~]v?׭mi1 8jd=:ښ'BSRN|VRGsG9WyDh2!ʔ2$@rF#!(RQ$gƍ(RdYa!$I7oR? c<&,+cqrtX,@iu؈+Vt#]Pފ 3zeIkSPQcd"t Jn);s`7 8ł1%# J)QJ"L&nEs%@ӾQ&)}wlz}W&:;z%̔Y؁;~+[|G{|e55wvCDAOŤ{NEN80jJeߵ4?PwFOS[l*Jއ>>x^~UU/].)+@r̐p)RFFVG窪klٺrJJJΝ !ORSBEӷ6??jFau|~!aUUU99;GU[W{%JaU(vk!ޙ[=oWߙS{ox`0$$L 9hP4"VɇCBMKKCUV]-(**zt꣔q]eexڵsn _ߛŐ,+_/Z zv"---k׮urpǯrv:lthiiYeڡ;$]!S`L&ӔSm?yM qqc"&%% *l6#?wΜ^{%O/Gʒ'Ozg/Z|& "R`;׫kkk˵kN2Ƿ#gV9:9_}sDmg=[o!biIe{lګ-]񂗷«h67o޲jժ~]˗0aK+W Y0|}P)4xٳf;03gDdW7W"bFFF``76q!Q-X 7G1===?2P.*j`nD\v]qBLt"%Ijll,..޳gOhH(Uj>F{22>4T*IRԩ0 JD,--;jN^Pgfd"ԩeK!s8^Wڟ|ў}͟?_>RU3f 4555666$8r}v㆕19|oY;ool2.];{?ͽ0volz#JkXX… 3FqJgrh4ǎͽɲZXX5`,˔Rv\\4119GF 5b߇ܹsJ”bS\R˗wqq6m<3ϜIa 3fddf*IqQdԤo<|Ym%%Ŷvw۶l̳ν|}|,YW~zYzޓOފeHH0zͦLGioh@⢨$NA)E!CN8Y&LFt?DИ=r>~xޥ-3qd\dO 7m2MPV`h%(4F!bhHe`` Inܸ;o"Fy3g' `KP3^sV&釲$$D~û7޽KHwcu$X>g>ydDO8pѣȒ/Oʊ ޿prJ5L<رcPyA=x`XiIIInk׮~ RB$,32&ڔbx䑁N͌1Y@i[}SbqP;|پꪎ ah''Gf{Tw'888ر挙?Q bm]݄:қ/|͑o G@O"V}*AV;"b”)@X縺a}"VWW/YfFBBB^^"λrpt޺OuV땕;wtwFă_Tb^?dPŒn/wrk׬mii96ci=<Ϟ9&}S_Z1x1tFJPbb`@Do666 ˗.WTT(D<,eϱcǬ7YYmmmEmmmUj.{zZ:"Z,‚ytٽ{sJPsʘYf3&"gT#bUE8^[R\4aFTTT(eSZZ˗eI%y!];;tosK׭Y(TjǡCc?|ڵy< 7meU333Fʕ/tVk &b%>R9^IJh0,Kss-[\o;[oР$7vq߾FI͛@X܈s猭Fz>)--4(nIȑoZ l4aÆwKKݠ|a3^PwDQ [HYTT *(~5Wv57%\ZrE Ӆ&O )t]JQ`h\ IEJEq EP\4$u]{>q/m,t-Dd@~יTqrJF4[nW!dݡ2x"^+.)]tǘ-6%1fv25r/&~<$ !CP2:Jͮ6Bb; OLHOy*$QtttliiL!'Obc2^y3///Y9BV[UYefynŜ qAOVe 9~W?SG qqzz>/224T(I<_T$I AA11OEu~(9f̘ѣy(!#,m~[XpukŢvp9~„ɓ&B4ϞK6 VЇ!Q ^AUhcɈ#0sLc80}tL&08q`4E766ԩSB9$$h(H$(..`WXQYY &L@]]Ç`D!ăOpF鑵E7`xK@ү|nn.v ooo\pZ"11::?#99'ND\\蜏=RRRN|ט8q"P(DYYYضmWZ? Yf!11ϣ .h>EkB_1zBiV*L&M/^H$ByݻwӰ0m^TەUTh4^x}v VWWӽ{ҕ+WEt̙xS҂ RGȸfGMo~$jz &Ahnο{3fg}&  `ҥ`R[num۶:c޼y `ѢE8{,tCDy3 Ǘ*|-PKPPz:*e"2V![N:<ؽ{7`˖-H$ ay޺l2̙3nC{Fe4-_JAT΃axĢ3LƁXBAX JJJ#;;!<<`f7):::t"=]v_qiڵ8z蟊h3”IF)Q؄&Ւh$קb׈"gAN7;ܯ]vAVcÆ  İaDrt:0yd|"[ZZpi= Ξ=7ntk)rs#0= 5߷QYAm1ig'nך ƍvZtuuaٲe8p7I566 ;hǎoڟJ3`Æ CXXYzwa͚5(--\Xre̅ /[jaĝ0B&>FbW1<Ɖ.Ҿ.SP?) VR<-9YJ/$ysSh!`pٰ,,_l6BOG'W{븎l1DpF3h WP>F| &p!D %((D(H'xj 9GJQ/iii2e xL&Czz$ >={pƬF,#2+ PiEoi1M* k}Yرc?~h~***cs;$ڍaK-C}!hDgytk=Zit29TQajiƠl0qQyرv\vF>??_XHf{G7[__PʺuD$SO=I^׃7!c8x ρgY@*TQx<^PB @`HNNDGG ѬX_UU#j@]][/ȀFALL E˥9̳~xyyaӦM}f5kjj*0c 7h7Sg~@"\Jh-(P[].H}}UY1:ՌիWcժU67?1,rqqșS ,Z [l5m4!233G9^F.\?pAL<$[\Y/!RHh੍*&qr<@xDSPCנ/i<{ڸUlc/ܞr=I`_(LFH gπT7v7@(F HcQ:75̜9sDesxhjj{yy~ft)x(W@2⠌,0;F<0|w7:TP_# ˎJ‡~qn8q;Gk~[ʡ"iW_4o-u|VZ;(h4P+X TA /(^GR0 "@yJ6bv5YD+Wȑ#P^^vj41e닄y"##+ʰo>'ObΜ9XbM[o%ÇO0CX|9 <ػw/+jMCgN (}z6gt%Q1TZCw bpʛy^vF#u 8"IT:΅  !<==a0xb_ޮ\[[ d|N1u ڴd*mᣠ#WL_Cpg؈j;= JDq~ò-''=]2FDDΡ>TyFL7ӮI CՏhطAǧJM.,E<& 橪- dB}}+HRoPո뮻ユ&h4"((*Jt}GhU HLkPr%eY8TTTֱz!d29V>|ئ7ɰlg3p)GRj`ᆫٳn`FcY||{Fǃe2@7޸+0uTf1 )''=+n6l0|s}JqdqqqxAy?--%*#,///@\.p17nR˲iii6X\NIENDB`ntfy-2.11.0/docs/static/img/badge-googleplay.png000066400000000000000000000073441462047176100214760ustar00rootroot00000000000000PNG  IHDR.;wIDATxt%+'m۶qhl۶m8̋m念WON߫K]_ g7$۾}УG^ټy B$I[n9xݻwr1AMNIЏ]Y"Z@hd=AKE~<MM%B$AC IC4`BXԇ)C"Y*6`ВT] }0q%*Il1, `-6LkXRDmM"Hmbu>Q%K$_9Asܽ{_ݪ Z3ԩ}%ѳhlB~dK8dSyA -OJroh p#TsQ͚5 2竀6Mx:EaFnݻyGG6vo2Y1@sa `Gu\ 7ˈr9vG*Yɍ"YӦMe ;2$-6Zp(NhTșnL&%;$C4H4J TM|UTeRt&҇WY9?Fzm9Bc381cd`q:=1h3<#ɹV-<餓b%N*!ITJTJ}GbReUU3~ˤ ; 4h,Z1pʢsdz)}0~jH*ձQAͬ_~ 9眓5g\|4>G K?h 2Ȑ԰@;7L2BbFIv{Z T["i2Og,s!W-:~*ˆ2>A~]~|9%d K2K29;pM7E8.cM0bn]]  -]X2,﫦$ST*J*^/mnz . кaNe kl!}qO7ք<AdR( -R!? YH[06~!1ogB}BAx"&ϼ߻N:h[l'}4jl3F*7,ȰNrof ^X>ؕAFa8 ׵/g-1-(Ȅc2J_kB$9{Wv,u/cVԲAX23JwdXϐed]QG;)v'ۙi6AZ xu2HBtA.7pw-!:|.$"bB`s}ĥb,,J3z4dKM`OTR9҄uUroҺa7nm}kk.\ Y=udy. Y~Ft3ͽ]k.KN9ҫ=$uZ:snyokr$kԧnLo(VG?ZhA$ 2pQ{\Md(u@9pVw?neeO.gWA.LӢM:cmۯE5T=ڍ$b##ݭ$v+]WyīIENDB`ntfy-2.11.0/docs/static/img/cdio-setup.jpg000066400000000000000000004655311462047176100203520ustar00rootroot00000000000000JFIFHHExifII*bj(1 r2iHHGIMP 2.10.342023:10:28 19:03:09 http://ns.adobe.com/xap/1.0/ ICC_PROFILElcms0mntrRGB XYZ   "acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBC     C   Q  ~p~F~~ȕ֒E$[bᤩ]XY\Q: gZ)wYыbU )XSRi]lmҀ9z+-Qt5xU,M%~n5(v '2?7>w=1揢Oрη.snkp>~WSG6^YsS9^:t˯w\uwP.oU zhgVzPk>2]õ˧q{s*rףG7.}2ϥӫcdcUzc.{]y]:9θ<{z*= nδymk~Tv$~Xt<ꏗOяɏΏG25˗J-=硍nnkYFQ;*9ONe(q!vZR]eҔȊbRT\u,P5uƫ3ΣyĨ.fo*N\.Kt#i-Zξumf[3ʔO G)G+-w0AMk7{곍ݹB k:ٝcz?/v7sߋ6纺:Ll/C^?~{g.?|~;ފ@^=Q;n^n6HYR՟!ͫ^.yVP8zk&K"YQ*RY +3璠b+q90B,?pe]Uo>O-==5kd^qolr:N'>nzmfYݛWmrzfn]=vr>^_E_GXJz$˧y>~<dz׹UV.8_ǃǷ?lsw՟Kx\sRIWj}1}Wߟ_o|~ng;ߍb9q{F)mctb>^7g:r.z-{*]a5j9(R8cKY:.5_KS·GsϽ]&Iukϑ QOSks379S::3_[Ռr"WSo?Dd)d(K!K$K'뼿bs9`q\HXWe5l,,-o*z/`\VX a|׫[ B B6`^ RQ* %K"Q5Sw_V|8K4J{Dd)d(K!K$D?[⸐Eb (k9a@B>Q,TE.P,A ڂl!Bu%?;gg 45.@J%K$DQ?Qn+`Ċa~?WJYRT~pb~V*O@#נLv|K|}ok fn1gxv`Dd)AS(1blD|8kJJ"ƹ.+6_m{~?'|l]ymλ8gp,j;r (,ޮהp\ʎ8gp9cxsw+ݯQ*ʔJ ?l/71XG}Wx?OԾC8?~~O =QwzMPW^vz.^/5=ן^/w^:oON{ 綺u^@yWұ8=ho/TTVB~bs9!q\mϑnG;?MǨ+Yjk͓=LsuV0a1ΌDJڊ2mmLt۬nMk:vAEIrLG}zJ%d(VWg,LmbPW?!}^>5[/O89}48'y 8G:KۖX1:xvcaD(ƹ8,.$[}WeXÿ[=8yNf:{^qX~._5x/'pt꽀JR7sA Ű}'gޱj,FMublu,:,YfPt꽅TJL~A9!aq1X W_.҉{d[2ȗ !ayb,.+}Wz%Htw'.tn9~nӝzK8SYr9 Eêyiw-}f>z|vzϨ΀S./OQ2)da}B9`qXX\koH*g[ny#)g:}9[)]MgFg]6ŠrS,zE⥖:Ή5p\@S./_LQ*Y&RyT.++}1cމx)O/{ʵVe(ZC syzq"V\H鏐KALxwO~*Q2TT{"ơyn$,.5+}[z% ]nyx~G>q۝ n6u׬X^w7_=[y;qչ3sӥ=~gљK* !J?b~W-q>Hpjt#F2ǭN}.vnWoK;[U{nk}9yMtu6nkcX|lENxϥkc^y_:];{GϹCÿߡug.5Nos\/_<txy\ooz݋{~jN{;;;yc<\ξM뻟J}t|%c޼9luv.l:qS+6Z\)Nz.g_B}M[ΌjͲƧO:sNڸ.\\-$^͹FN:ٳӝ]v[j6G>:c-ʻRwz'x^7*WzczkގӍmK_G,@W&6syz1~pmK6sZ^jwM J5YY -G6β򥣬ePέ١/RF^)%bU^k3uY}tӝuvw<͚s&72KeLT]b~\Wolx>%6z9iCS XoNydʳە}9S~nfc/Jyp7:x: J[Ϋ/Go=ݽgsW:S\B/egG>5DsN˝2SsUӎxoo>*PQ,ċq!q"_7;YcA]uo µFZ`f`j/&+aW1x}sw*۲ZF\.7qU& \VuF[c;~]6kdnԩ,no-8Ƶ+vxNLYf뫩f6Twb^m3ti֘شˑJF6X9ݬSj,M@}dӣ[b7tOKvK y1-~÷=!~^ͺ^Zzc_T5&}".nJuN_Bϓ:޶tf㩯N~x~{RoNʙ-z}X>x~FX֝8u*\cMXϻyKv7oxzn*mg:vrk=}g k/cYwsWntŌn豯3ʾV\ZcX[7[1h5띛yt.{ަyz][yq1xgn\/z{8;6ws`goC{+qX"\LWύy[9κ.9u>2e\Q8Mfo:9&x˞uŜr- A@lDgdϼ;9F+7]`;5޾Θst^:?7>&}bB9"V\V+`` P?7>&}Bż~\H\V* W~_~q({O?s䰹+sqK/ 9|>qg?N$,VW_uysӾ;Ͻ^iNDo~[m[]h<|߷U/82J|1֗_6>t˫^\~@~ `bgۥ_?|Vw.fje\jTe5 W|Ys^a6c:jWAuVe7;3fuӮv1گ_?C>S8~q98N]|wϟP/O 2;_Ӯz~zZω{syhyo_7?t~_O}E0556@ 03`!1#$4P"2p%M\//!gjWj1l^L u[lh+} n 0SWd lv 8h +8FD!噑ه̑J8L ~C&2oJ`6 0q@h,o-MQRf+49Y:{``k@`í_GsC# =O, ݯh]]`\#Poacn뗼(0 Hd}潞 l:86_Z߁n]G~^#5Mz&W ^%YB^jP^dA/S>vEWM. ޣz, JB.Dbk# }u8Fq\\7骶@ M~G<_l+$l8s֣qUޢ0;N Q-,%8];f7{m+(AN7 B$9gF"U6/@#RJSܖG'ήYRKzLlu;J1ǕևSTAOsACڟIlj8quL@Z0*v_lkݘxmQ\/BTzIzNwt-LUj';ځRlaR=1#:p9U Uka̪SM!1V)L).&"iX2"+; T,@zcGHh pðӀUXtaWI%:aXNg4&uP . ȈV5:l~U܎2-SCQ8%U#x/Wp L9UOMr}=NףDp>GpĞF?t|MoƎp' x~$q93<|˖1W<\sU1SK]vp) 6!`p!cu=d,K=d,K=k[r圹g.Y˖r圹g.Y˖r囎Ky˞r眹.y˞r眹.y˞r眹.y˞r%,O9STKP7Zεt)HX3?(.2ˬFtNo[!w3 .FfQH2fk.FZ "xk!L=S+ $I|l10{kɊcWwt ׷>;xs~*EV9Pݢg3`eaJ Oc5s ?s ?s ?RUwjϒ1 ( !5a`23p AQH&It9&@ P8.[XX#PC=اݠawgmT˰bǡ]Oے-h-0%҆(Ulk!(ٝtVA raFBQcoQ\[q#X>ؒ~4"ȉ`=GUZU8涁ܭZ%u,QquΣ`ƪj'L+5mkSoEꏍaq'鶿cgsgM:E-mn#+6a2ϸEϣr4[E9$jx?"-6zوdG3b]"ذmF50Nlho faVu.35ݻxT-ٳj՘o lճZlf̍va۴e +d:,rOj01e pepA4>]Bfj~vlK2-M𵫙Р+$RpQ窅"ZuJIUv4D:zk|@r,S2~ߺ7 XOk_?e7>vc.\xʹ*+0x¹狫.xNL g(xjg&xJf!SOjDYz޽>IzeeU;WhjF^ZÆlF­~YK7ClM}+ 8u &Hp͉.gSZه,W6+ f;٬ڦ^0i8qoU\e|}7_+˻Р^"Tjd]o vkj ͪۀb걦$J?e88Jٝ(n 67IT*w26ƛDKi mgAUi]-^ŊY\F?sY.oe]Fd`=*&jjePrJdAg4V*(Z++Ç.ޯ,5.9_MOʱbtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLtLIw#/e6ʼ/7t40JԅdFSe*4\TIr WZ6ޝ^eY 󼺛qۻxEc.+#U qӟoQk-O3~z_nc|?w>ޣ8]gzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzu]D~z뜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.9ˎr㜸.1sS^nc7r_Ez6kq^sՓE o lpҊä;\Z->)5xZMgV3>w96 <w;qY=iJ@,u[5= Fwd/vk `Vk%b =DqDՀ6>A f+s^F{+h"\W q*+ F=~^͍"". Zܗ{Y/qnf(^Em`RF,lא-Ii+<ݒ_P݈= A+%radK%9m5M8CVld cGR^9 rWлb2X)|xϷN\wb0e&DE%RS a,30ME'2I&KrEhIvȪpgpWe,@`U5 劍vLahG)HIx/iOj$n jc,{5j}h)(+OR]Z2MzO$ɴ"C[MlNpFQj2+P!^֘8e:|ufS1Ұ&J&PAvai$$Bx],)aQ'RUJ2m0C0hRb"N:Is SaTخUWPU ``.C$d., h]!º&D BF¼M՘wEFrjk Rnj>z|Zr -=><ظHv#kߐwE%5wE;+#"CwjFю9e͖F '(@y W+J5ÿ;-٤ڳݨ"-@CL2Kh &/ w`im(mp 9~F܉X}oam#-1`g'JhV@^=s_CV b 7 K7f1mV2]]Lm-.{ѰWWJ*Bn$pH Zag-l ;&dvхbKqw.ڈHAjy+UǮJ4dt(-,^ /^Q];}0@|8ϷF\wglf?bsJ( ~g QԒF=89HcV&,+o^Ic-o*4um MRtl3ПA^6S^&! dtU됆MYH&d R~TO Ռ9W0`${JL<@\,B!ziJ,67_V #| Ԇc1"Fd:({VqZdFi:r h Zl`6Y^EUѪ F%t4:v8ζӞMu[]q9 q*l[H>)j/t%`*ls4f&g^}ȕa@9I긢nPBʒUiRF"*G}3UhTϳE%21}9(`7=MЋ:s47>|w.\;1XavFu` + [yhO- CNVb 4bCTpWI+ˁ@ R/bݪ.Cmy0k_T95u X{$[QՒ[1[Qb|دu|!Uz: }S]]2"EmYmՃ$ N\Zfd`faY/˸&[׮VqӟoO򌹦 HN[}Kd%ԣCzb,,, XJ'k)5Bk|4 U9Y:҄F}16#}ѤSWTUbهX`GblWhu^+M#b.pJL|j3cbX6ԚlrVuaBW@6cL,ng:,A@힅eHʡjN5ۍ9Ve:;kU "r5u]]&k\Ref"k$2 2'};(`s)uin|]VgSh ZeX2 dmL귷VK]n^.\T,Wh]+o/_l>qG ͂/WX}n_s_db+50Y.̙l%fՂ\.qk{8Yj6w%:[q cN6LA`lVkz[p-oGY/8Lk%=X/5s\y`R6+}vKgJ-+JX,WXhJ@qsl Vk Z]Jb6K}}Jxkq1^q2ծt[Cެ l0vS2VKC7pZYD_F\w'-ZЁ2RiQS!ieƂ.E]. g -cx(äebIќd vPM:$BH3ĪHR ֔vCPa)2U"~EKhI]2NyD"+ё@5iREYb[jW("G}10&dXMdQ_od%y &bk)Ȑf喽x-RLfP핔'ZDF¼1JZe Qk #juC2#΍Uz;M4$֢`KǑaT3LFDnsi__k([ؠ͔O33hqVv}ϹoC-Ã_' 3(#MwbØG6$V`JV+a@1t3`+CY. aHdcfܢ [.U]Z tCok~V46c'˚nLmƱkg0ַ+5,e/?7\3T-1xۖ?IgN+1j$D}mjyaOb,8EJ۪<ޚ̎]]Q ^+FuVl2y46\S u0,bCճΰp !۬1& Kج*deWyZvL-qb~TCP݀t&案$eH\iCN 1b%jSqbAY}rQ6QڨQ.S|q=jWv*hdPz%։`,&E9(le;(Z{R ]I]nCv0Qgl$Qvlf4V'*pqX Ai1YKmbU]i=On`Fo4\b[v+ڰ_x#@B#o^k_+9ds٬k=ֵ͎o|.i E j s2EԞ=p9Oح_[-"*i 쭏jPzZ>'ey6ϋM*c7F4ِJ u*F"FcMfSdPb _2i%s2'u/{5gY{5gY!p9E7~Ooν/ < < < <ЌJѹ˸ż-qo;y[X7,gż7&O < < < <ȏ]3*~oZ,66!E\Q bV I5!CyMV %F08=7+~+SjqiqAHdޔKk$$2Ё qB *= 0E7djY_Ngrq7q7)!|{vrz$RO9 9u|޸{%-}s(EFAs>I}y3V~](ߦ]K=GMKG.ME_w88 :&IuqQ~#5ݹ 8k̔u-v3)LgnS;r۔ܦv3)LgnS;r۔GQP} 3C<} 3C<} 0!"K]LgnS;r۔ܦv3)LgnS;r۔ܦv0JE7pKc7sJ{' }9o z4^$֬?ᯧ?Q~OM!1AQa"2Tq3R @BS`#0Pbcr4Cpd5D? B/ Ą/H݊N/0?`ݏ~9`݊9 7cqZִn 7cB6 v?dݏ*]JS9 &HHwz1Tp=p`U7;f'@%zg1O `k>U8>*ƴ&X3ٞ>*m8Cc?|VO³7ʧԏԝ>Iړ?O7@Kc D|jGRtl;'qG8"-5wzu!hJveyq6 GاjhL7I?DMu=*i%?:›/sOn쟉i) sSF6qGw 4kp3SO9M> 4Kp3-SOio{9M>r}4K{i-o)[SOio{yE>}K{)7S-o([QOiosyE>}K{)QOr}S-iohK{G([9E>)QOr}S-iohK{G([9E>){?_E}E>og{?O[z}}^k跳_Eק->o_zO[z}޿}^k路_Eק->o_zO[z}ޯ}ϧ-?O[>ky*Ҵ+EZ*V;%f.Ѝ=F?VJUd*PT%APTAPTA؂* * * *6!APTAPTAPTB lPBt+'Bt+'BUd%APTAQ+->t9uτ'^~_НO3݌7ES1竣 *b@>-0~a/09OkKnh85MQ !&, J,!D]lEcHHE(qV 7\Qw*a8#ϱž6d+X V '?jvmaq3+67RkygV0=IY5JCv?b)l9~+RT 7_R͗aTqwXYQdKv'űpqP:Ǫm6֜OMI Mi(k 'S%bFu iBtTvUc4uP\`hfDTn~,8Ml.ᤪ?LT3Qpd]&- /<hh8])׹Ti:&) cMlmBt~!ފ a:pLk @'T[pSYB lAS8Sl:,=¥Iբ[~_#)FUMlXYt k#;Or&֝f=&~ҭ&34=HqgXmցҍptsf2qB_۟!ӂmG0CQ\NLS0sVVmjQK[#QUQ)sN'j8ލG:'2$(UsDڎmZ$BkLpד)M䭱).`h=m[c[c%BN{2q([*397YZq3 Fm"P$\q8bVk(;΋ħ;̭ "dا7dxD8RmZΠYk~\bӭ`AЬr+F~p@Gٕ3pLc~߹}6ZJZJZJ)i+pRV৤OI[u#R4i+pV᧤OI[=%n*zJT+{i+qSV⧤OI[[[Vb܌ҷ#b܌[r1nV-OI[rnV-Ź3b[s1nf-չڷ;Vj[sm [CVչڷ;BijZijڂڂڂڂڂ3PBnTRJ?g0f~sm?g0%L2L[$wzN`*#6O֝sM^&熜˵SFp BU kXf{ic?hYM87M#u7@L v4:e-g{?g0/~Տn=Pl}1}3*FoKcM> Ti 4]Κb7PE#O]f6^bEGDw#"h㩱KiyPEHf!: J PEHf!>EHM"]I[yE)Q{К=?/z/*=b|> uxN;Pn?x 9k',ۏ2aeLTCo'ufV`S[hAHFSqw_Zfk -}pQ5N1yí;.N}p[ou 0l鎴2m9dcn6)0֜ gOSf֛L<}#ߪfI遤:E~a'5"ՆbS Llu{M oCNOPVt|\+gQ0sE[D;{Rv@X0 ,3qU:0FŁGB.S*ԃ@H+R/}dp6M"Q2bFމM0!*)SdPt|\*-:p>~s ) TH[ӑ|S, `7oZ5lfbecrBg2  5=\d(bf QqQAX'oώ{Y3geen7΢9{YиCh(ppCk:`,s'p[f?x 9o:"r J%wAL j0օSxEB( 0p~- !/H0ևQ&5)Dh'߽ic+Fɲ볩kTpS=Vn}I NF(敆:'A)8p:B̍uO|#wW#p>wJIG3~}&u,1aqik>)4fBSTnOԠFt8@!M?g0up oB ׶=G] :GЧ H]x6u&l2:e3u$42Sk_pZ (m.S#-wlv<F>:! cDu;Bo4CF}GwgZwrB7 }XqM6Mioίz5 cjoQjoЛt{MѦ! g> 96qC೘~g>9lt+SLѰns*5hh7FZ&MmZЀ.0!GqC3l;/YE8`ߝ w1XDڣHI̫7N|hiQnv>=PbJvP4Ls\ {SMXU:n|S.VW㓩T-3jáS=ʏYaAFoϊֳδFVhYbejXYD(ppDMMB;O >7(|&s ]4 :A} Sh#OPnh'R+63R ϏnUN+@>^ZN'n?7zg?NIֈ?;(WVK",0ĪW(MO4h'Nzx6sSö̂3*`Slctsr}GǸ{lFŧ O:ֆЧ H\>+54kUXNs?Eh 'p^(g^øS;3ߍe;<ҍ(gU&ձpHt&jg?OD>hks q賍M>7(|&tx?Y}o0gO >7(|&t>y:\q .8aΗ}o7:\q? `2GNuiZ9>:j[0CIMXxst).=XuTKS+[jFHC)5ًCPʰjt[K9ܛ$J`^M/'7pP>H_xCgSǿ5ex r7:Tu:mALN OXe.:bE;6Vgʍ-5nD8-N͹Ӣ1[s<6*mό+wfr08 ånVC Sڍ t SڢZ>tJt>etNJg1͊4:qn\Hnsj /0oF\l\ZۧA>u f&7ON&N'YM{ϝnOډ ΅էI O=ʩj7k-7m|.Netz|y{i8@p#cNNUY7zx_/OuijOFz<çN 0=<ˋ\sO.oJKg0ƌu_Y#㜠hi}ihNϯO7fKi}I8`0*JMpz>x "xRl֛A ~guJ4jêbx7_#:ͩ_3VxH6qcgֶ,&xW꼞*5i9-.Ϧ t]}%cj 'djOlPzTmp1=y9e1|ε[%s)7:LZZa JA ld'R*g=l{\. _ݛBF6ټ51&tj6d/ )6h!>;Xm'Q-@t4^rsi_&@[CݔHwHT֥bl7]q&S f@X>"3wO+*mG3BB3E@=hdl4 :5,S>0| kx?ti&0`sOOki'\2FT-4T?mxIU9 =J*m690pY%̟%}'Sc:xƣ2Ǻꍵo>G'~Uqt\<%/.$^@EJhgLI :L/7(eLATTki['~:KjEę̲z)>ӳI>Ȉjo|,&uN0 tǢJP "> }|~(x>EtQlD Xt\q? ac82l~tUct'TctJjߡ[Y"Ty`̛P9h̎1 $i^xJNwYXXV+#v(݊7Fz64 1ޠy~ VkY֯]n݊7b27,'WF;'BZ+ mf0!4pJJ7+<,Vbt,аYG"ؔ/XjX4lDB m:tlh;Vx7O2uf}o7تm")fOJ"Ό*jjcEeg>̃ѩh>ԩӳVďѨR@D҃ǝ&M %,O>%Fӎ~|ظi/D4kaSTt_N|c`ƨux.3 >A׵ L:?> !gOR{\S6|SޚZjI sőz|VB<#k\GץqI=eNTwGR|x񣧯W](i?,x+0G<ǔ#yvNkY' ;FIZ7HG<:z׾uS@:L(2Lp9:|ӯ|ӸV܏8jN3ԅ'PZ!ezx`Lõ(q@çX=ɢޥ,DjSJ#v+ Ԣ . iĬJލ!gliԿ vp`zlkQ|)Qn1}o74 Գc5ĪTy7e4T֋;#Ԓc9PZ^A]wzs]Ԧp,@@@Tws-'1MƏxq^kGsSL*`Oh .ow'_=:GV۝*;4*t*\Ns}n o2&ZC1ZHг,z%̌޾iD"~( ߎ3$(v.> CuAFG73S[_?Dob,pSa֜l<28 i!fG/ NL3,yjQ kGk G>GᷛV)ЋgP uH1ܝVDm6ВSfОuhMu {_NɸwϢ @ͥV8́YFN6~Q0RZu 4Z>2ǚH`̲ &˚KXA7:tZ>2ǚc"ܚ-ިs]!3(QpG G;Bw$;XF]Isy'j=g .|QuBuxG:cA)ז|^rrcѡi-߹0mSr&kot On`%ZpB u!~ n/C:l<dq~R61$ ހ\3,ҍViFv Ѝѭ}yF3,VbP־ìc1Gi, Jnzmk@""yf/U0Z0SI-hPB@̍γ̳Jc5 JA+9c28ɯko==G=fQoD.ȋO_N8ow^NmoXBC1!)~tޝō>Zv>1#Kc?F{=})k&y!0\qFx 8=M~#4z "O !>1BU f׿6wW7V1{h !ph>ONKs](L ֩dIͯRnMNkEgФm=Vi)R}6#GHk4n)+^3gVƲ'/57=fsSlG)2x{Y'E>qfL:,8?cd뱷Tbnw ڵ+l}sz5dI؃_f܍jnx~bzڴemӱ4}]sᱶ:ŌeuFx#T,klkN귯$;Ϫ޼>zO>N귯$;Ϫ޼>zO>Nm&`y02AnLP[',u2AnLP[',u2AnLP[',u2AnLP['(Ҧe:/ D{@nC\M wrfKIGK !1AQ"aqRT 23@4B`b#0PSrpC$5D?CBeQtmFQȣUD]R֤JQJjµko|+YMBeدԅv#U=]j ԅv{]Y w. ,RNk%fjD(vPyϊ<M)(eRg ,tSqUօ(`9yNNs*HCQ-d(/n<PKiT_f>(gog]on 7 J^%\0|5{Btl< Grgܿ*/,U|םV1!J' ܋98ьX)J|{AhT%7#R65;6YD9[?t1=J SUzgJ7OS;n*6k~=88-ROof7TO[rfR-8z]um2Q5覅@kBE^STƵh*Uҽ]$ n*|3p: Ъk9!SCpV=RWp KjV;NIn#mff} BHEާX8!SCpWp6D4$(ֶ֮#pԧ$*hnSB$k StY^m'egQyNsx;+;vVw'7YNo'egQ9N΢hE;+:͢vVuD/6Y^m'egQyN΢hE;+:͢vVuD/6Y^m'egQyN΢hE;+:͢vVuD/6Y^m'egQyN΢hE;+:͢vVuD/6Y^m'eg1yNbh;+9͢vVsD,/6Y^m'ag1yNbh; 9͢vsD,76Ynm'ag1Ncsh; 9͢vsD,76Ynm'ag1Ncsh; 9͢vsD,76Ynm'ag1N#shF; 8͢vqD,76Ynm'agN#shF; 8͢vqD,76Ynm'ag1Ncsh; 9͢vsD,76Ynm'ag1Ncsh; 9͢vsD,76Ynm'ag1Ncsh; 9͢vsD,76Ynm'ag1Ncsh; 9͢vsD,76Ynm'ag1Ncsh; 9͢vsD,76Ynm'ag1yNcsh; 9͢vsD,/6Y^m'ag1yN^Vн~g2 Y<˜S aL)0 ˜S aL)0Ÿ˜S aL)0˜S aL)08&˜S aL)0˜S aL)0˜S caL)H)0˜TS aL)08LxBֳ<ֳ<ֳ<ֳ<ֳ<ֳ<ֳ<ֳ<ֳ<ֳ<ֳ<ֳ<ֳ<֛k0˜S aL}/6#0Cu&ɤ4X@ 2l~&:7L&zĻcobu6}顨DVZ#qa?K损Fm@eq@ xlslF{p`b5o,ssvpNp`q(DiV!2f8fY!ƺ\ke?U lŜCB$ ,t@Zw W,)T<YR3-22 s* -<|Iٰ+ٰ+ٰ+ٰ+ٰ+ٰ+ٰ?6$NTȪ\3@;Z.p֜^DiPu2x ^Ul `bqܜKK<2RJd+&8 G;֐)ɆGztGimIItqs:MX\ն F SZsc]ZzLiA6xh{K 1h4Y諽 nbS][&ҋ\kYOzkNUAUW)Mi uU0]b%"&Dp.-Nq^\5Ҙ[GeO4N)3!-ǂ7'grNG\SuCtk:kkQIs˅@TT#I{vf]qDޠDރ n;eXTF_P&>%ޯe*q^CZGi9Ê-[`{?shG޷]cx D-eDΖűr.)[m+u$kF8HYq6VֻE s \񕉦U i'>tqQIZVo#oXZ%m3\Se$mqBE :Q\S%FHAvmil&4&o)0ѡr&1\S*,&d'Bc Nc^$lmdN ,\S%FIk,p5^`JR\K%)." ik& BY 0BD,D  rF a"!0%jX,(1.Eugb0Sa1`.)hJ5'AcLca5QԯT^U޸֋ .ڸ)kNיA2՗ޯ$}HYqM%* 6֢f^O޵r--H qT.S?w"qGIԍ"I)X0`uj0Xneȍe "Ϧ}>%ޯ&Vg0 YLϢ`}D,&g0 >YLϢ`}D,&g0 QEg0 ?YL`,.gp ?Y\"(#J+ p p p p p p p p p p p p p ?Y\.=g0 ?YL`!(((((((((#E pQo< wFdC ?wQYS'u?wQYS'u?wQYS'u?wQYS'u?wQYS'u?wQYS'u?wQYR?Ð5}ֺQt&ACkAoRh.!9, m({ Ϲ4͐YpF\O%.n͇Z r6N9Rݵ8OB@⠚P]>ehٷނp-{؝*Li\k 'Lo uc&0Պ !;) ѽV=\$dS ˀ xk47-27QiX%5{l:u( ):q_qugN |' ˆH=W)F n !Æd|\f:p#NA5 ncM6ŕiA|Sl(X} 4qO QiޝJm{mhxs"Kv'#L/?wD"J>[̫~ڔɴe+MDU9UZfU몼7#V9ku2!sE#FzY iζK/qM0Qk6%|/k\{_">K/q^ȹ{E|.^佯r%|,8rEd?ho7v!C}]k "[mis*h޳䲜$S%9e8QZZ9VwM @LxsV"/ti.RW$   &,a5= Q2Mӥ+?ho?v)gOm6e?h;~:;Q%9Vz=nO.%W}$EOӌNltO}]i㍷NRjE8|S@#ҝ/l5tT,}.EhMaν"6J q.`6m´>4u[%ZVQwXDֲ_µPۈ h䀣(n jNq0bor&qg/P٦a l '8=Fޟ(╴+PtN. Dem!TI<ȦCg4§#EO:5(hԇt!?tQ[F}?&L.ҪDzQkUМkx&Lw,+DCc[ 2}^s5OOA2+۟?y(џ$C2Pb ֭NWj5:^3WNWUFk*ftCF*+F:aׄ*3Ti PRJ1WQY)\V+^zI3@ߊA3:WUFk(|JsMwI*:VDYXjWҽ7D﨏]6n%*d';En:[-`n?.[92NDӥ!pZEks > ;-O\O7FZ? p ѣKtKvt*G@!PJ@6zN>m-u.'KtӴ;zTtV7\g wG_ho?v"C}]ky﨏]3Ⱦ{}]kyo?v"wG_=5Ozbz}lG%HwXKsaeuU#>]{moDFNNglYN#":BvKF P>,wf+ 4^F hdV:\&GFstˀWw;FEIJHVk jNјDi]V}[$ B k>TO;#-ZRYZAfgF[ĺYZTeK:rX#xm klYZEGi iL_͢-溁aCR" [ULȩDs)9&PۍŚŤ[+6wسW{UrH4j|z2hWJl7=ff.kkͫ7H2U=M dI"^ 4WXEAO;%DiNR+OAEƇ7J9<@dzj9,Phz $7B2r)Ľt,ȕ)N9f7,-uY )$J͋6"eb~E,khdL겥1uTjPD[nK^),W-MGךɝXiK]# %*A7$Kf6 -"2XuYVpEi,VZ5tEVD.!^&|#>ਝ~ )ָԎW #T%ᾙut֨ ˫g[dX cChGٵʩ<SK Wչgta&d'1aD|ITT*0h:et]آh[Grm-]Nn= 1;t&]ȝ"Jnc)Y11{Rĥ6+꒍ `KgRD:S]:}'e0H]V dPDjO.,(6'X5.64P1ZD;hO&TΤcBXTgV5ΥCs 'BiґB4 ʩ x';ẈC@:R5,JB}bRL-;[3WM7ΜTסd;u FllG+cFP6N!^/l(C^Cĝk/4ܥ|S9Rbc,'g-RܢE0Y#]IGB,fɟ py]S>3^[ÊK*QcBD׺(C#QNK鉗a:L,48AvU%FdV:F|] Z:Tgӱ64)Ê]] #?\s%!ȗID8Ӷ'ł])cd "fɉѡ=4YwQ&RXli P r9Nk' FS=_@ RsxU2;D6()DӲrsuzl(ll'5 }tjq^)d'ĝ֢S8ޟ oB8dE)Fj2*7 E7Hk' ЬL+\*ԴA:SV ]WXB4+F ;O5Z\ܥFV[}vH*Wv!bV!\jZ;djkB) UVʍhTN&pZbSR аhWRvp]ȸr]5h\ӌѨIbE{(V}[%z5Vr. hVCS2/W}D܁(JPt7DR>Jt"!P=ɵWJʨwJlr. Qi!d#X,MӢRlZJQD@ZeQ22a B(,H؅v!]WbnSj 5F$Q2VMa5܍FEcj:"eASE7Hv/ZtZ  C& ƵTiUhڜKZJ|dUj:H_]>+2BRK|#>NMqKMRZ)( &gDa).kcE.?U6 n8PmJ 1>?Nm>LOZZXO "GcKZf=XPe fG$>&%eJյa?Uy.VID+䉝-rO.*nElI_'k*s6=(T/&dXB⥢}_WlfZoJmT5ʨO}Sj7' CN-cwzmNor#$31KkC^>hU-G+ӇnV$ۥDҦEsQHkFz۸(ƇHˮ`p%tkQ 6i35<61qoPB,o P-ioU^K'yǸ(d65ogT^ NHV6 (oH4Ϫ$]bM ≜܈|H6BZPĂ",$Vׁ|&:p>~uGTU DʨϧL0J3H<{t@7D\;LCM;onI$m?m@t׏KQmMvKLœe1a_?~M6$F IDuY#^!\+LUeXV(jrE7_+ML-hYHl+m%9+&०}TOHi#՞hVd\!\zSڅսkZЬ^>&Mq3"?~Dq nJ0Vʜ#:6觋!(|%/I^d%:V4 Sche BaZ'iL.(ܜqhcI6ș6i‰!>m(q@i4k؅vmWO c޷ՈKd䬘^>jB;pHrʨ6'j>S>\'FKBy>R6MR7VF޾-mSj-8$AO :<$'WivEҦ|]V\fPoNas֟׳ՒQM'b;S7&UBu [_ܝ)ɶ~!_qk NYJrVg8%fp9+3YJrVg8%fp9*48`q0!q0!q0!q0!q0!q0!q0!K'չK'չq0!e$A8%fp9+3YJrVg8%fp9+3YJrT|KDi FC;8+x!崥k}:7uw䚱ܸǗ4k*$G4\'ތWo#5u<;z1Ze!.5!|23(XiG%q.gtӣQu`rEXoB!{iLآҢX>h=u&E.2i}\2(-Ozj1\ɓ#=_ҿq-׉PNZv(oq}jMӨOqΟISPTToퟆc匁UFn2ގ-*cMQlʥAr-A*cEql%%Epe$gL)RF :Hi3\[GW!57_Y\Ku4l@ΰ\%%AJKf m h*"R\[%).-AC!ظ`ӦƳ 9'l/3 {TʇbC+>#yG,?)gK3<]4O ڼ5c)[Y]BIK\4Qp2 rH1d^7f"ն3F"2ݵeǎznEm\ È2 \&8Y)v\s&RP?A[#KMQ^M{)Cse񢍫8݉^wUO'u^RQ֍z VV2b ;pkJI|֐Y\c: [x oWNvJ6AU6Pe7SI<^)C=~Κ;+7_>S[wޭG<ۅinwupLge5Htſ+YFbpJmFɀH9gM4K촻71.~mxI48Om,o]8#uSd>KS 'vKS6Qڼ1IJs#G*z_bK[xXH~pZ0ĢHHuk蠅-Ir?tV`b>[W6:Hg_I.?4dׂƩ@KIjXƵzڼ,*!oS"0&q2#}tkfbr.uWe䏲`b/$[]GF6;;oW֎IM.OOڭK÷ᅁmoaIVpwo֚5ҶHN՚LADžj&y\9a~֩O1<WEh?Wr o'k@Wg4u !oju:SX3tcQ1Li3θ+$$#jaףFk@_¢T ^ Qk*R$Ywa44i ,gn:77 x*DvݍifSx}\A}Mox?I( <2ZBŹ7aW dT>ޣzHHboZm=nʛz l|bswl yex#2M풴Y&Kk@,ׅyom$䬦̧M3K>b 5dTz44r$e4ð@XLZEmL[)kukOɄF\*)3 \D>-j.SI&6o4ڕ~T^ &*wMnd-zLHH_}:T|0ZR g"#wib6lI+#dgS'yLku r(B:7auF+pjA.SM2冀 tnjK6GvIlcS}&]vUQi&ݴ")lîd)i&t؝w't4چNfչ&$oi$w #66꧓7WdK.R,Z#ތ[Irgo,(1$6?Ss KtT,č-QNI @^$r1Z"r) $2ulP4ɷW]n={%V$,rmFNnd74GCu klIp\S0nN^Ϊ=CVM oRyYG6S<}&MSؘݽ_躿躿躿گwף^}z>wף^}z>wף^cSwטƧ5?1}yO;j~^cS:wי#Χu?3G}yO;>^gQ:wי|#֣5G}yG;j>^kQZwך|#֣7?;ؽ^s/}y^n~7?bכ{?b2~d\/}s'^Mؽ̛{7b6nl݋\ٻv/}sf^ؽ͛{7lW}^7}^/^/^/^/W^/^/^/^/^/^/^/^/^/^/^/^/^7}^7}^7}^7}^{7lW}^{7lW}^{7l݋\ٻv/}sf^ؽ͛{7b6nl݋\ٻv/}sf^ؽ͛{7b6nyYe)ȷמ|Kگ^{U/kj% yWĿ=5_"C|@ }RBBH'dj֨`wۅkkkkk{+{+{+~M{+{+{+{+{+{+{+{+{+x#ܦ7)5n7es\cvW1+ݕn7es\cvW1+ݕn7es\cvW1+ݕn7es\cvW1+ݕn7es{~@ˠԲDߪWе7꾅U-_jo} W~Z_BߪWе7꾅U-_j},Я\nRkݕn7es\0~PsXqO?ٻY(ITr"_Ug*qPjm.E_/_WO1}տ5CN2>ѤܛR"X~Y/7>Kvg4rq? P%whh Xq`T/!vڃ앃eb\}T?TeX?ߐDV1Mkk7pd&('nGoT.I+TKnSHьW omDmϓR?!=%TLZU[مRN) ./m}ex;b--D#_ɦ'Oy^gcͽyar`6I>|h{ӱxEʕ~Fw`囀<KɨRb =?XR#n%\5* VPXh V|7}Ut ΗoW-*:_^gK~y/Q} JM sz(s22oµoɉ+{vMh*ܡɹ!R6m"6`!ZAe&{(|+L!Eu޵z&aF\-M4b9!y9^ @h&֔:T-›38qt@ xсM=u? m"~I]"ՑREgZ#:ebf5Q$|. AǓHL9PXjҫ0 u% vq+שͧpu֖m4a)ZA:tR=VhR),##p ﳺ_5]w<#~HZeTV8Xduk7*bc*D@Z<'ZI[m`L%P4=DCX}GH ẤԓI^r;xFh#P2['I,QYnp i,yNnWwҬ?;[j9_gxJWl.ˉ_M*#:B#9;*X867Z9Vd}C3>Qu{T"2|dF<>DOxDvml#]i>]ȢF[5^g&@ܑ~#Eax3 :c7vZE#@8ةm<6sxe+ 5AQsn6Ċ6GcxctvE4VG)K<Ұm~ڐ3_3vҐâ~8+k/) ,/O&|rEN]V9V"h򹰶Q(Ƭ_.HX\Ƥi$EXpDw)]}g) a@(->A=wMY!SŶ|EWRO (BYWǪ#Wz䁱_cv;4բ~Hu0T{U2#򇳇E L5IWnH_`;j~z-Rk_-GCDtr7 ^%k-s|zFGd";F8ߏMx׉&,rDžk&yMX 1Zxi2^},B$8ED ~h t]׻}F[_TtՄw}۾F/!1o~dգ8o:ϗwW>^\{GusϛwWwWwWwWwU̓CwWwWwWwWwWwWwWwWwWwWwP;]G;O;O;O;O;OC9?;OC9?;C;?;;?;>!^wQ󺏈wW|Cu;uyG;>!^wQ󺏈wW|Cu;uyGĽuW|K^wQ/u ͪ6U5uW|K^wQ/uyGĽuW|K^wQ/uyG;>!^wQ󺏈wW|Cu;uyG;>!ELڛy{=\2H`-[=5u;uyG;>!^wQ󺏈wW|Cu=5__מ|Kگ^{U/kj% yWĿ=5>)'ianp_i?TgY|~qR"ӣ!Zp2閿4Le /-8i~kK__Zp2閿4Le /-Xk~]g}ƓK|x}LKrI+ ૹɃ_G^gs ^ mJ0j/%M<ϳT&>f 2 ]76Ws!iw~]j'M>ڶӢl9?qT̓bIẵ̺]JjtmV`=Uh7RUKaі76aɬ?8~~ϓK.,60f֓5Rxع#OyCi6qR_1J>C8[m"EPͫA^7iE[(Fpxc r%2Q31{{7WehO2D6ׯC9Vaɩt9 0nE6U K^4{9pScQ|!/'?#@F޺<>f1F,E.˯.NG,o,0&+2Qxfb9 afޒ_R#KiN4mR+mId upxT;5Ӕ;wg/γ+_µY2;E1][|?~i?Tgx/6KE4 CSwעN/&,)?mzCSwסN?^u;}z%'}iC: uY|~qJ}=g}Ɠ)|y*[oYt=A}G7S/KtC+  Nj5{{}.K"VP-ڙ)!x51Tq&m0P$N8YPYS5&Qī.!NSVMDI>M>w +|xN|?uC/LQ֓7C,Bo5=AQkڦn;x&bN,~>+_P:M2o&M۶km-8}8:%f>QeQ$#Whf]|n+U;>Z/sNrx@x06&K]zM'YPI)!_v$tQ1kkؼG%Lq_W^LpevHNK՗/Ս&fdcߣkZ1 |E'I>t j.'Y%b1^j+!":=LhIy[Mx H4ǪSxJ\uv#M(b*nk\xW<#qMG+G7]v|Ġ#^ yta٤64jg0(>EãB6# kGW(6 |^,"R\JUyvlu}3[{[dOdἏ]T0iPٙ=W]43);n+A4Q\/D?Wp͐:Dɉ 4&xj" y k åmi;^WpCxhC ՠ\ԤOo]VSg|A5272I% ]Mtz]p5daUxSEh)fgNdtenQi iڍe_}&IC~􍗃 ڵjVH˰NGfydYY2%ǏW|~qJ}&S;׵z'句ĜRL#L j9$ic9]5$~%ru 1mqVًK i*n#Pd$$I$b;0RxE `*`|r=TQr"*4NHI2aguTs9~޺xArntH Gh| y?gU Ciam@zcvNF6B% 9"KY$UQc9${1)eK x"yWz3%}S _DfӴ:Xag E xuԥzv2bo]/inZf6h*9ΪHDMʶ-|%'XR7/GiaJnc@{:VF p9~޺(GH 0`Xm쭜kN|5ǰ;nIolexAe2[4B[sxE|f,j:acKC>ݤaQxBIrX#Bx?ԧDж fU;+G>EFu4XBe GtTq`RɌtV=OB/9ꐬo%,A'x]¢H%xê%0Ƒ$x*Z׋iuL 4[^Tq[6 ı1YC ŘIÙWD9VP-]LB+St2#n5>zatճeўjvҫ$*Y/)&]j3lRtT.mWm#NܻX@Ka _:hJWOp{QTudEsV ,*#zDyz%DK+b{ XƞvEs7P[ʪ֐Ъiwz# rcCR՞ڒyKf-4 i /^vóiYx*ϐS}^16UBB5eSBSMڭ;.)nwUj,yµb ؎Qp챷]xΟRtҲlۓJ|i,B7rco]k1ZgMG`܎p+K< Wi+ h]bGSkmF|Ԟ)no*Gpgb0K(n4>L$ÓưpàdPV`,oZ)oG6*.*<_7)$_KcUa*ȱI"{iLp1 iJoTZ/S͂Θ8jxP,AN\1}@h1[a en+UvLɸ'I,̮r;4E<9<ij@]y?{߼TL&ZH%2X"0YsvkI֜e\6[o fKszVmةUجE9n}[]D6Ul[~<~YfӤ͔&HO\M \7{SBOV zjXqdq+˲|ꩧpJDϓz^ z1RyK5!Fl|) d3^ \52hV/kHF;'x7E&4[iS Iї=;'yn^1FhH_[ViXׅ6j~!ū1H"SWY18$ /G i{^ɓLFҜCXuW&צƼ綉l8)&>5`'ZHx:6e7^uf25G­$WH }7FcG>L&&N8To4:TM.&^4`rrI1+A}]o"A+;O|#/m*N!LZs7{9^SC9^n0֨hci"1]86VŏjB2 {)D0Si$vݍ4*IfnPenXo@uKC'\hb/΍#OPD8$ka]hRgȢv碽0 ^~L?W{^/uza0 ^~L?W{^/uza0 ^~L?W{^/uza0 ^~L?W{^/uza0 ^~L?W{^/uza0 ^~L?W{^/uza0 ^~L?W{^/uza0 ^~L?W{^/uza0 ^~L?W{^/uza0 ^~L?W{^/uza0 ^~L?W{^/uza0 ^~L?W{^/uza0 ^~L?W{^/uza0 ^~L?W{ջX~g~&>G>H-I*,xׄ$(iK#yKEj&BIwZ-d u -7P֦x4Rgm{ޟQ7%QraGS7)KT 4U9k) y@Xn:hD]z8tzKǣC2Gel_~ZN{ׂ5дf$ bz.lv6'-&t}e|i KJf;=xTcQO&vjr>U.$%ᴌهї1y֚6ѓFppOE(Io>͐.UiQE P;m,*@F`9WU G>HxhRgoS!~ߓW|~qJ}$?{Ojc4_Oi~M_}Ƌ)|??oɫ?8~>ϒ=5/ԧDz[Kklz%hPg.>E|yїZ"*.7w8rVacrY5xQ3JX! Kzq:%L d Bu=TC>T{jdlC) gl-]V.BO$VLb"wqJL.\-uo~TR6.lIqχΫD$)N[ bA͵hmB0l&xVa[YFn/n"/Ɍ>&ɻ6KI&ު \אܯf,B$6y)co`.. ZK!s'6I5qR$W0MVm{'w^Ir@$iF}l$SFFn1i,$؞8~K BKQM`㯢Rev!Dh㺓k८=ն x/Unv zGr;`A" \ܟnՉ~=?8~>h6M~OO(C jYYbl|yK#Ƌn-`}Ŭ/?kgmN2k}j#V@kJX̖mM v&gj]Y!_OMHKJDWBGm9vR[Ǖ6:9URnTH6ztÒK]:G^{ޣ2O}4B=ZMԋZ'9#x6و'zHJY.%gTQe4.S7^\v;0nM--w5;ٺŎ=&H#f# wi#MYPEߍJi\ג=ue2Y] EKe֎L,޽ )|t"kt>1*/ѾX,Wna~:xе$֩;+.*7oŦRGmQ-eYe_Z;*;Bٯ_X&e 'v@;vh#{,!^BF-¤Oڢqae [Ty&Y%!*8L3ϴ $R83WFĕQռ2N6 Y$\Ycvj &If:r' e}ţd#F TǕr?pdؔ{52tT`A5Vrf$ {)L,l7.~E3t[o&0ozUy#Vn4pi ﭐhK;3|xhةHs87C9 Ij.d*bC)e6&`XܚU<1\xhyƖ_ۃ, q5=˿쭣 xwQd228EUzI3ȨcϔM4O{z觊9T"ȧHG+)4: T50smNcĤr`ZFI8Yͅ$c~coelm1`X/B3 T'' 99u˲+<-/a]4h>A#-`Bfy/am̊OOmL/Ny7hQu~JlIG"(i6{B&ϻ Sf ֢ɓ{A \IzXAӝe'mw8I =IDdmc.ёTzFW 6bԲf.W J%qC {BXXDI؂ ;ء>$ 7$ͶX6#.*MȽ%P͊6zhw~4ѽP-7%@U$㺄*#V鼥\JG'[8le*mB"!I,m|씊l VR{JXx6jBfpG;Ԁg4?OA _ [`b)kբ@Zz=$7W`>[cYq94gOp[VHhEiE o;w0bMg1}lh'zMj#Aj~g0,\"^SCnO.F $Tx5|NBI\~4BoqբJ E8^[y([R<`c=xau0gmrR" [v_ڿMI$}&ʼnnTIXA{+GUt0ZG>`cQ07Ɗ&O<{n'w]+S3E]d'/_8mh$EfhIK6f"}jvMPre4+b} 7L ڈ6vR>v3_NLւ;aᅮԅ=cwM,:)Fc~eBq+a頛#tZA߅]&|#Z1E |/ί1a.rb$zGX3]42e&kt^Ҿ5XeږXW9;E,4Nk tVB%Y/"+J5!څ(iotx$YJ"YZ4Z*xtׅs8 K @:+[l5*9Թsvqn &,9O 2^Hmg$߀kڶ HHXo?:aIk6F$Yqas`n?}x FpfY$}|W0V7X[Nn&lZi_OkBclH?vrf#eXh|uEjPq.aee,K)H0f|dVkELVm`Ë6%UtK1(E/wxEʱٮ:wcVȫoUK&HKX^Yyڈqk oTqʅS c y,"ԥfo[&~C Rx7 5xhG[CoBZW+ep;6DSYR0,rUIz*|Ed/;BA[,׶6[uFfE\ٺ6V5'|o¶W_qUR6bzZxm$*ICxU!BOe*]N&V { =4,BHWwXg8d!kђ[ƙnV j{CƶOR2A6dЕJȾ]]L"ջ}2PbmI"\([w^)-{PÌPRݯBۺSx" 6l}tq^!Asae'JGWq٣FK-)ENX"rB7u[㕭KYL|-{*h8f,ޫgm~p׵2U‡ ۹P. ihUTdrFb%oܧ n\$,)V_%رT xѕ_ɋB*RE#q6H#Y)պ6+꥓ʶڧDyQ[O#+гLCջ}.snNlB[ϔrzӾШALNK}$/ɌF$' \*[w^&C]6Xo佶;wٗ7[,Yc|N7 aOv; Ih6M~OO "Qb=<,#ơS8[M|(Rj_q^8ϫVjƨ0cƵ:tm@L'Cibd w7zMvː% P$鷮e,#dre ^֯DU6%mZ$#)5$6sT6M(;M0Q>5o"mʿEWܜmrxۑƒbyh d˓ursy7nڠ(oqDž#$hz4/gǽ)E<eĎ;K,@s e#U~4dhB 0zce`,E7э:t^gILY"LูKZk5/T3\fsg+dF^z2Hب̅@lJAL VZs#|Wuƶ9k_bĎIM"2[K'wemkuۤT*"E8/QyO:J$S%KPpliI{\ [w^rN9'umˢ͙PHAynsRO589`nd-Oh"| (wU38؜n4X96l,VB[w_GbG$}-^i]k'FWe*l~ͳ\܏U+HXC-Eq靈ϖwul29]{Ĝ\*o]2;إOl#)PH"7W)n7$ze[n+LJhr% S#l=*N<:j#pA~VrMMG&]gsmivɀAuHAPB)< /c|GV,7 ^ղϕ/!+"RK[EmWilceBr^!I@ckB6$2AQ]~ݺl#d{(3k8B6_j'duݕϷW&EoaC$]5=?$,G W㼎GBoLvF8an=7K; I}NWz+hJs>Zݜ;aP MȼJoβZs,W@`幓!b7&q,l{*gG#vW9~mL `_8ڋxא˸߉+K `"A43"}&c @j=L^FћlZēidxe. {8{Zt}95q:= mjb xkRζZD$,|Ij2-T+bG^,j24Dj-~멙4n$dُ?X@qZ/e` [ejYt@&gwAZ-8[pڴDY^PKrqZfoRb;^idxe. {8{Zx݌ 7qL6;2Ķ!~R@&[cSK*K( .Ҙz4F26?ExHsD[N$S˨/ռԅaCňˑ7߿증0'(oUxKT&;gEījy&;F" rkR'Yl'(8[QuWu"l&Y.;X֥͛2NZNPp+}FkzZ [t Ń Sn-i#%&= #Uv-p>p?Z '>Y.z/V^1d8֒I"6;Fi E[(vH_!`otrmvx;uM2$qXiT%eܷ&5뿈VhQגV5oQbKX\.G}iNiG dn4DI-V5,[Q ծ!"7yeM-D*_"Fsb/e,Rlpuj^l؜A];ٚ'Py'xLȸ[5EryfP#P*P:M#ެDq漕 ӻȿnK_ ~HKnoջiI>hGJ6`h`]ŧZ`Qf֜˒]kYxX;,9 XEa-'(H7z=68cm:F3QDUY'y#ƛ]C,!+]F<MFG!&le#w&R0x6M{,N[Ex1INr\ \jC^OR L-k5)eQ1qv㻯wZ|ߢ5}D-`zX< I\v;0nS»ЁR74`^uǮ"6eIm.Z{q4x8JKMOAGQ-Ri^69 8/r8kVY$ծ-*wUL,7_a$%<榉J0${Z]6{T F9I| ek.!林mrX oV;ecS~q Ef;b/nѝ y8ŇUDc'bp{+URIVIrC֛GEiyB>S6#Q4dd,(+o Αak29QVNհ!WE~>TͶqߡT|eg_e^^t)B}GG@։$PwS%nOR>W{bwRs)m{S)mP61| lJ5 c;ōǍg&aL#@b!Ӂ6}3A$M76@a,|vl HK|o_bە}x4N]AQAk[M4TQrmS<62"gB.:dǕp Y[ܻ6UV[M؞D 8X%B@ ͹1#Bm(ǐ.Gd+R4 29;vALu/$j[]& P I,f}浱ec2[~#˔\JF#yl\$$b1#5u)X[ۨT&I\mi1[i<`6E;}ڒ?dif5 rimjuQ ´p48x 7$mɦH(r_m)h%(1|1 tZSD[q;Mu=>;g oSNIԬz04q$`N騥m<G>n-6K$;~| ojsc7uJWK*HBf2yW=&l/>mzԲ%g87$?eEs{z>8>W\pW\pQFPx8>ɜ|lE+E?^Q{E?^Q{E?^Q{E?^Pm" ﰽ2ץM*o5S}!J zTHjS5kjjZ*o5&V$٧B+E?^Q{E?^Q{E?^Q{E?^%};D?f8E!tW_p|}dP9"͉BA[k9F[B wA.I8x–r[;eEYHw+Qɾ{n3aZw*TEvbۭ-ld/Wv8Ql\}ܛ|# zM*NG1u5iT/J2`H+n*#佝Aknc5؂GR 4jr$8PƮ4*V%Un9\uT ÁsL.;StwopOUmc|2mF>VroI#^5;TQَLI÷uzrfc~,|n ˜{t{Z>a ~'?_mϓE]x+V/>E 'm\dmBQ\w[s6=W2Mr 3 o<(.-ʑƘm\K =y7WY!ހ~ whr}GW  W%=bTկ5o庲8nnA6aÔh؝Yf~[i2fFxb6Gʿ+(ﭗḞ9ѽi/'?_#[XGbFEz,?F+a1^ъX~WbEz,?F+a1^ъX~V XuQ'N=Ey>wט^c}y>wט^c}y>wH"Y<u^ъX~WbEz,?F+a1^ъX~WbEz,?F*‘[Q 9~2OpB p1#F :IK3t5$(V ryj:k5hR[mMI ԄX&<!%\:œmj/`c :K f  p5<Sa~K⹳ &@>>IEde8 :c%?ρF՞Tր;JYswkjx+h~oSX4C_pJzz@.'9ԳXg ԚΖϴ =hY.|kͮ[{/"is J⺪KgFr4 -0%Vsp\+6? [gy>cWXfb eǛ Ix S: TUA>DeQW|.jB<3b.>Vy1FBfOj;m@l=y~ z0Ol዆6/!k{CD&lU0%sUH9ވpFmAd7U)tezhj ⦁8q`9@anm9~ A5^s' 0bǃL^whZt/\"PMWR,04#j4b, ҂Kq⻥=ҽ(?;1!'T }@(i")m`vN{y7-IlXsWhab'+M 3( 5@yJQkQMpq9.e(lmbڲ}F$7~B͈V0VVE!H]>Rpbo1rer-5 k2BVK(sO*鮐=UJq3`Dw@lr:T[g`z@;\#keQ.{ב9ђ[tB*ߥ̭RF:qS?*ke2ƒ斃pm_>Hջ8jtwPV}0Wri`G)/֪_R$lj+&2sKK(^|9`hWȭ{ y. 4j7BZ@^򼸿XN E+=r. Kڬ)z$-{׭P ۻvOr޽zv'4`ݺjݻb+W*Dɲe˞8`?#?X?ggqC?3 C?1LS1L[<O<Ot]GtUGQAGAGA78p˗.\reX/X_,||_~/_ |_|&_e7~1|Eb?M7\>/+ 4iREb\~WW_W_W)ׅP*  {Aڂ>vEuʴ[县J/ͩ'''''|4kOdf?¥)sbw<Z국k~~?vOݧ{%,~?`~?`~?hO'~?xT {O'Y,~?dO'Yd~?hO#˲ZO~'Ͽ߉|>}>O~'Ͽ߉wdOxdv'D~?h. xZfKTjovwy}!`j+,&bixvkQб OOX9.Co$#GH?`%+7paU!Jf wO?:w#c>Zfr~dh k}W! ]^!MtzQŔ7$X|쥁DY`)Tz Kx,e ( ``j/ a[`pe Ziq_N`R%&1+ި׬X Y֟- о^SZ9ueXc #ez-J237'rz sGF,k+F)X [\3#I?%cdl\X-2Vr55$l+9 @QgۨTpnc߅|0j姛JX ҟ W8^F v^X6 m^fjNGe0Ψ Evk(*׎QP[; z$E|zKp #Ίp yEQ ZqUNccpSGv yX &l V`O)Ȧ#;o*@ƫw*K\`}*hcX+^ekI 8+Ry}j[߭V|D蹎EQMzOX(fPf!h=GH!Oz?Kfd>t-L W{5DvWrW{O,XrLus#`C'p}7YG늫ԏ!*%K>@2UhPldP4-x]zpGɁp'޵)mg2sKW igޥ=uͨ*񇊕;j6J`em:rߣjyg~Ğ`G`|9ɝj .hw?ȿ~8gۣuyO>/_G?nÇ*$I%o/~?7n#s_/|K>%ω~gĿ3_/|K>%0 Fǟ,W$ ;υZkfc1K奕:KNW̫i\V&h;.p ]ߜ% |SKe v2p:mN ecEn\U1P !qri*h[ 8prH4q; +d"!l$JrYoO A5pػLEʀjʗo@wYMجSBvT|t_Y8M%orƺYjLڳ%&E|/.,~ Te׀h@t-c(A=%#6mfDA'XawS.#>1AA1+Qb,xo+hp x.ܸ3+U٨'k*b[vdsT߼an*Iv[]j8GM-/ [C2Ѕ2gQ"%Lၮ]GV/R2Z-s0+l.TZUR (04rϲ^nA`q$ %h8gNK-Hh5֫kiݎ)>K^e鹨][a,v+RWx/bdKc-3E|_??mX_M JDs   Hr.%^E~~S#~Ϝe) tf ڴ+BGbРw Ƅ Ԉz|h\~K0U=g/N)D=+^Dn`A)VR w]Ѧ)X|q+dǔPBK+W26e{"UyfŊ5fK vRU A1usdr\!C!Y+h]@+CK]"ұD9ـRRs}ιfπ35^rɴG, iɘ yhL,oRЭraS,b*VL%65 }@mEV{JĂM-E_ .}{h7'xד s"u`ar]-Eؕ(z]>'3^7UriQj m/؋lv1*.mg#n`yA$NcJiZm*xU~!SPoPXЎ3 ?tyq 5ToF*o^eUjŻ$U3&.sv){5 u_1TۈUf 5i[\>%G{ Ni@)o'BC)Drfs50A `)Wֱ0yK`jUi0|yvae@^zTQSk b)XR.tmEZQ'J. mՋl'Q d7Lyx&Uau/֗q0SzzV޸@*FS6^a9񼞲 /hr _:|UMd` [L9:ұ/zjżƛ\1NLBm\Qe :3 CƑjo&'R xۆ2]iڼ\F[? *V;P0ӄNNTY s7,8hҽrWsp9ZY=ՇZ: >y=\_C]P0d~Ş·ӷ"lT`B̫lC\ Wz܀E6P,ʶ為!U5vXRU%id0 ;ܩRrm3@l1 ҴJ)flfޡ۴#\ℭd՝Pq;=}b RDo?+NfR#b^eCj^]gP/T6A璭Y ϼ Z8X'KZlڼvirQ6Rc8'`|^q'Ss hwjHjɷ ƣJү*(A B5qZ蹘eh _~C/+>c/Ҿ1ji*\5'Y%m`[ wTž3X;i.[Ry-e۩]G\{HEhu.[^\@'zX[]a.uB*\ժ_D+ߏt _<'Gr}]Vq 5>tDil kKa lԗYM²M,E'6wHT,.%e ,~>b}gӇ:gk`$D̤\gAҼ?{Gf[ B)7 J1|/όͱ(4;5'N O3*qh}ɏH~cmcfWR X{ƔIq97YS[1/6% .s^z"`5* ӁKBÕS3}-U1+eݘFgH)$~ |Қm$H"D$H"D$H"D$H"D$H"D$H"D$H"D$H"D$H"D$H"D$H"D$H"D$H"D$HBppS"W~K@luwL=K8Uɀm=e3B#"NV`=&Y/q(~Ag#[;OuC ,8֢3s{C4 Y\&=q\e%8cV&& lM"r#CCn%紩׷)̲"ϴ0K-"np̰GdniQRTVyѣA /.HM@fIXwNܩJ꫇j6q9{=?rA-v]Kncd,T\JUVf ,}eB}-՝Z2Nꅫ8U/FdgpLSù^rgrԃ2ece5&J]Jҳ|D3el~\/IB6 ε{'^Pl{:#&s7˞n,35H{q M ) cTQQ28mA+޵xAs(HQm~~Bq-&1T,!C5gq[n5\Y_dX> Wc zbQ)<51W~ XIi)XӃqV^uRi(]^&qR8aEbf[NeĮѭ*c$FXmVlT5h%sHenneE U-:^E>/|/_ptq|?EOc~ |WO&}eWb|O_.7O;+ Gt |___~[ޘaVNRS)ԔJu%:INRS)ԔJu%:INRS)ԔJu%:INRS)ԔJu%:INRS)ԔJu%:INRS)ԔJu%:INRS)ԔJu%:INRS)ԔJu%:INRS)ԔJu%:INRS)ԔJu%:INRS)ԔJu%:INRS)ԔJu%:INRS)ԔJu%:INRS)ԇ6*9FbUuo{|_D)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)J[o +r/ύ>ĠBCc +Qe\,M隄-*S7rxWFOSZ*f!Y^ u_]ӗn|~unLSXc{4,ZVZz2ՂЙɠMmX]a6l^ۆ+wNtn}N",mzVxp==Q-;LӤf6LAF}ToM4QrVoR`4aVq;%O*+m%RvvThÜآoэGo`%.((yN bGopb;5m@Z'DӜbd3UTՇoAZ=s_- FP/׬=\ȼ‚`ۣ%бo^˪ɱ1v9G-2Âcz~rQ+G`YwM[o$p>7xTIEaܖSjʵbk1=3 Zⱽ̔&408\u:eSJPqkWYDhcEͼ1>Φ^EH* qX-iA TwiZvԿۋѯ . AdG(&¶{ ]Qc  A98ůcbrlP:B>9۔joAu̷z g&ppq MZf cAi`›*N;@@Tc Qͧg O;D/syRRmJ0Ga4CFB1sU*kMPlAʘZ6 tv}Q ZeTn%cEޏWþaJ`{lB5.KpʳGOkn9f#%bJ׬3+^t, " Xryǃrw.G0p>s 1 b8%mrp[dW%.ی[*X-Ux`Mb)CݵYԯQj7 zS\^bqr]:Oi CKB衚R``ѪafW.TeUs2gE*tA:48Dyrثz2;llݰ)]/PJ^@pC$s"-1<\;*'Nے1aZl}yP6႗kmZ`W$]i-;:VeqffjF-lOPFV&9B+3vœ>p+.ty@u2Nle7 pQ_T-cYW{=f8Kx^-TlmܷUc y](y!mkk]Qג2I+W!9ۻUpǒSXiU/4 T 7w3>Z0Tŋ\+.yHڏZw[xL6Pt@ ]w-)Y`Q F4;xo6kI(yw=]}[df;%4s.ty@u0e7A`(=7) UoE3x̽=KR۹ֵ`% v(v?!@s#bW7\D r3~怪R8t7Enx+P`ra{KUn6Jtqʹ#P M:l.]D3_m t0^NzѦ(f6t*gF4rkg?jҾ?+jB΄욂7+x Us~ FėaatjQ]o{dڦ( \;pM1_(f7, @]FlTgT1v<+"(FAvmhהkF(/YAmEV27y60K>(8yY^LYXBUt]Eؑc,i7Ju\}pNЕ:PV 6nU`f⧀Z=\N uغhҥ[7+ia{šDMg"96 & pvnv&c"e[ d%S;}49HD  EAhVd{?drSIvSDǥ Tc[Vk}(E}uPk3[amȔM+mԤA.(w Q8wѽ ʼZPPwԪ+ƫ?F~X[kq YQK_4]b#(W5"y#Ch@IMZ5zUf`oJc[ʐp7"ݠjӰ3Yb}Q<:ಕ0B젨ұC{liʄo 2 h(sE͖!Ӏ -+,dJ[ rD9wBr4wILLZQ4߀vUsWFh1pS`h6U5U^\kс\#=,-ҜB yU-POu>Ry0곌jIՋͫoUWUͪoe5S<(X/pBǮ \? i:wE+6,߸أOٌ%7(q1D7X1 R<7*͜D\ˠ{d:0iՅ-7N'3!hXP $1/SR\ݻ =Y鞳ZQ1Aw~IV+l:<86ͺ+QRVz%.5vYxVaG0MfR6TP/2F-zF5q]}X}@0VwՋkG&˵|2ZU`&:W}?+/WþaW-( aʀY<^^ql' -ԉmun[s0LY&l?0ͺfhb _x0)ioªD9Uj)Φ'cUŞNb~i}Ȇ.7R7\ÇcRiy٩^CT)uP q쀖Lm_P"QWtэTrU00 0a]`,# Ȗ i(Skȸ(kFLJ5)FB[^KŒP 愽ykUy.ìz50x /fQFXQl8GgE alOL"Q l>)_^gEWs¶z{-s"PtQK:_c^P=8ECtkG[Qp0BUpъ_JX1S%)e|5c7/:W1t/RsҨD*tbK@]-lD-P!Wtj+a-ѢjK \qCXVI!C4]fq W!\&Kz:ˋ芡.)(YHVæf*-afU\YwqU|./=CJX+ym"*W!QλR WvFL]gŁZ^qdSXPwf9uyfnB݆y8UJ\kT'r?P;Z,J0b1ɛUz6&h)\GL ! YXۈc ȍV)k"N '9[5 f*s2\:O>l;Jڽ(ܡТi۬9zM9EEmeʝ˵ܱU 7a^ŵL3Pԭ (y҆ХWXVk#npzCTh_rqSZDQD9aN 0 ꮷ|n*[-35ڦ^*g軮Nw~IbA2n½2\W^@UUDȃw&hL;x AD*]*Sc*w 9;@uIbDPPwf3aGNL*~*ȼZEٍ8Tm Hh5( ,iE:"iإA <wQHQ,V I¼TN"PDPР{ͭټjGRU>uSeES'è|Jb&5o:׶[ u"[tvk[/lub*!|g>DLJse3j0fC̽~>+j k칮N11x6,S>YBh=bJS]IuЇ\ymmGnR!Cp@ %SgFY G2A[^^4.[׬ <0IQwd`(xac@&WUjYEYUo͙:44(Z^m8JoN;IUn1y5K5"qr], ҭ|M=!sHS7UP f8=q'i@2bgo9wA){9*myU>sbT90wfNPuYRRo9}@G]F%RbQvۜG|, ҭxLzP8uPou ݨJG2Ԭ,RwVkN7E:(uES 0e/Xx+V)X5{c`tD6mel Lb=1b;_9!v^8Lnuϼ6%ZMLv\KqڨPΩҼKHWuM, QGe{D8\S+V\hئɮr#L)vI 6w88XT9X9Ww쫯xhklVމ|bHE#\ƣ$ M¨룬r ɼn[d+fTa-@˰ʪS./YUS5!pӸjg=DxհSr#W|q~9xˡnazndYQ[vsLIZ3*N(UKɫCt8ʢ5抈rX8yk,)w-z3zeS=S6ON'JNC(.i[m-VD㑽v'N]=k[AQ*sJ -K%̧M טźia`ZJn( mԁE!;&=ka{~`:Sї7^\+ sipO5 :r{lZZw"+M&T9.C@'R9j2J#Mh ]Ah Q؍8{O2Bl 0j/1JFDzZљIRqo{yqewh]Bm7`.8cGRfeq@EkԶ}B)VK?8Ϥp@ 6Kg4qk!S^L(]+PWzʎ10餃[3vl>(@Xw rҵحSBkWyBiz.{V3YϤDQ]N=H.ɝ>ZT=ϣZi+PjoBEIH_azBҳz<:1_q͛KUpb&G4nZJµAYihLbk8}3 hmg)"V}rS5KBIP2j0ߨRyCEqS+ )qn[w8rbYUXmaK1x> }(~lr;[cAm驭W/"zԪԏGyu&T$.&Ӗ}KWbe2x/Uj s5϶b ߲h}>Ze; UV @P )fFnPU^=nS&F (jeEi%cL~ɔ@tA7|[K7y6c3,998&΢r{g30\mf 5P0FqshޡnS M\6E)9C87tr |`@myQAYO6j 7e%KVb60 mS)"ۦQp<@nfَSU4BqrytW0d}ݢW3/0quRrGmN4 VƳɍ@Kp{Rij5n DFԼkPiVXV״uJl05+7|@H?֯̀OIL1|( Q_+ K-K>C͘|ӻ/Di!Af@<x Q.VrUg$4k]nU&r>q2j%1EpUo V=#@]Yu^cUNM SRh7*E2^zrWjw#*%!-e J{\#*Fحa*Iv F. 2½ xWl)M>cZ7jPW2_gymJ)}Fj\fw}CQБ5*먑OjdG6śP^΁|]`}XlYkx}LŔn_ <ڸS6 G/_xubܕ͌:z(1<vUYgAK%ϒg3俘95?,ߴϼ>J=Oqqqq9P[WN>7Lȍo_L`CRgu) ./0W|!h:K&'"t< ((!4J+0='2Su*dg3wuf@@QnׯYl+ e1wlg:iHWVr TbAPQ13 ʣ LŵT pьn.K Cb燤'`.d+!+aAM7g3ӉVn5dۭ7&.UU?iL7eQhg &IYhS U:ufEePޒ|O_b y9hSDTDB4bPaln@]^~{˱Dj ѽv2%tK%XF~FJK\SFxY|,NU1NjD2!jڝNt,RHl7&$RUY96K+RG L<w`;̛ؿ( 8.[. @b]缱[B`|P %ѕVXנ:]Tne&pSJQM'-fAC]#gN|+KzӡXϐ~'俉_/|>K%O'俉_/|>A%0 qqgm/|>K%O'俉_/|>K%O'俈JX6.>qkN 39Ք`|*my>? I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$AHkzy$I$I$I$k' ÒHIc AI$ø6jjI$I$I$I8i$z!)A$F2H?ԤeI A$@$WMI$I$I$I$!2IAYe$C Y$ @I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I#~$I{dK@M %oHm$mmi$$TN_>kC347L0aq~o:]ER?.5CSML?k͝k70#!2-GEɼtM^9] /;vo>2¿찔&4xwͩT#Rާ.X=e+Je$,nׇ{6_t9J@oI$!h_tUhr+C3[Hu@d$I ^)wā1,h#u耎Y2 ^[/dxBaCDT!/>_"wub_bd!ˎlc̄Mv^y(EyȄG_lW,"N%@RZr4I$I-=c|FZ,0Rrϵ80Cɸ$)%OI$I$ٱ*%Q sL5i$I$I$I$I$I$I$I$I$I$I$I$I$I$I ^I$I$I$I$I$I$I$I$I$I$I$I$dI$~nLz{=A$&褒I$I$I$I$I$I$I$I$} Ŀ/Ձ^֌rI$I$I$I$I$I$I$I$H] GvW1ڒI$I$I$I$I$I$I$I$I$I$I$I$IܒI&9nQ$I$I$I$I$I$I$I$I$I$I$I$I$I$I5.j?$I$& $I$H݂I$I$I$I$I$I$I$I$))Epo;/.$I$I$I$I$I$I$I$`@E{TّC@69I$I$I$I$I$I$I$I0_%>oZ\\^k$ oxr$I$I$I$I$I$|icJ**ABP0 \sLI$I$I$I$I$Fs2a7$I$I$I$I$I$I$I$I$I$I$I$I$I$I!JI |I$I$I$I$I$I$I$I$I$I$I$I$I$I$)&*d~JdR a2I$I$I$I$I$I$I$I$I$I$I$HT%*74Edj$I$I$I$I$I$I$I$I$I$I$I$J]ĴR~+ $I$I$I$I$I$I$I$I$I$I$I$I( Ay?) $nH_ m0 &I$I$I$I$I$I$I$I$I\v!+T#rY$IQ$I$I$I$I$I$I$I$I$JMsROII$I$I$I$I$I$I$I$I$I$I$I$I$A%%)Ik4I$I$I$I$I$I$I$I$I$I$I$I$I$I $$<@$I$I$I$I$I$I$I$I$I$I$I$I$I$HDgд`I$I$I$I$I$I$I$I$I$I$I$I$I$H$++[ 0 $I$I$I$I$I$I$I$I$I$I$I$I$I$w&I$I$I$I$I$I$I$I$I$I$I$I$I$ =ޙlI$I$I$I$I$I$I$I$I$I$I$I$I$IR_)'HONM~ >{ I$I$I$I$I$I$I$I$I$I$I$I$I$@%}kɒ_9ؤy׍8r8 skiУ hiĒ֗Y/47?Ol aoAOp+ ]"TFcbo#+u4hI?o$I߀Nן[$7&S;* $I$I$I$I$m9Hwj38 %n>Nq&c(Ok,6y$G@&lqoi~2vUFQbEyE"뮘L-2 zI&`2wUd) aBV@l0r fܚ3A$I$I$I$>9 LA'2sTIϪ,:k 9y$I$I$I$HVZnd}!Z$I$I$I$I$HܒI$I$I$I$L G:/tx%0Ev$I$I$I$I$I$I$I$I$;G$ $I$$I$I$I$I$I$I$I$I$I$I$I^RI$I$kI$HI$I$I$I$I$I$I$I$#Ny~`H+aF9|1 I$I$I$I$I$I$I$I$@߶w`B)$I$I$I$I$I$I$I$I ̒I$I$I$I$I$I$I$I$ʹ@I$I$I$I$I$I$I$I$I$I$I$I$I$I$Hk8$I$I$I$I$I$I$I$I$I$I$I$I$I$I$,!1AQaq 0@`Pp?\R3Nҿ/4ϕui|p֍ԒVQd1B(2 Hg-i֤Xg}) MuMz>T[)_Xb ҤVP(F&-Zԏwu,9suU$jAPfMc8(rT*I9Vq]6A֛L:b\|EY+OD>+OD>+ϊsX>+#H>+@>+CP>+cH>+ϊ3L>+ϊST>+OST>+OLӾ++Z־+oS+?C+?K+o_++++++++++++++++++++++~+~+~+~<(E F5QiHB%Q*NtOxx<O<O<<?<<<O<#'Ixxx3<)R@axxs?<<< 8G~;4٘͹ Y3V kZ**pqWqWqWqT<\U\U\U\U\U\U\UJ2x \U\\\\\RڥKjmRڥKomRڡڥKjKjKjjjo*yW:U \-p\U\U\U#'TTTax9P(@zxB|@%b6HĪ$Q[ ɝ\L xuk< cT$??3GmF_1i'gZdžA.,-"8OR(zVe' U=)'1ǽ \Rڏ9[őKAAb=ID'S'l,N>( x^j3E#SҨaxcNvעȲ3BiFoB'±YYLO6/Z5k "g[}*"8:M_tF r2N(fA(o G>􌌹 fzBT!8's! `e+x6A v2ȁC` K@OCAAB1.V|g[a4T&7ڬ`2 &J@b !)4cYXYl[N&"^!`oLa" *@46>xb)CQeE款FXq։Ul1!z'.CRl+M'* "M>:KLAóJ) H[:PI1hZ]ӄfEʤYFٗnDêC 1Da1F2 j,m[Ԭ:1ot-E%b.`ڦ57RIms,܀QfHRd0M)U ZHBGDcpQJD /2J5<4VwRkR{>صc2#kƤn,̢%%nNc~Aօt/ t^A\]-!p1ϑN^h"]Xt6BIӚg1$huizqX|~KGzA;(v4n,=HͼҤubWW]iX`^LuIא Bδ* duкp@:Lutj::ʃ@kCͶa fΡ@ȗVKQ#:XbuLؙ:JG]_)*;64%W:D؍6?>q>Y=Jyt)D`:ՙtfYg}zpǖX| TܐعɇXdF#e":3j[L `I']N9/V%EJ}WRԻ0I}OOjbMַCQD,Iڃ tvRWTh/[w6/Ԉ{&]UXшqXƇQrGz`9FDmJ0(4G ,[ki3dHR=yRsbL4.Hf8,*"6'4`+~Ch|Sr |W_>+~p|W@3⾁_`gr=>+\Oz|W;\O}>+w_O}>+>+GO}>+g⹟O}>+GO}>+wO}>+WO~wjWW%Gj~gj~gjkFkVZkv_VO#QT* TU:NbqG}*jjjGan0<rHtö9M<ѧ2[ n@2}/{R2o7(ʐ$:^/ބI(,) fNA0W5f9fvHS'~=m4Ђh 4fzMY^@kRaO2)S:uzBN̾!x\,gillL P x<31ϕnVԈ+6?wY{QHFْHSs8B+ݞ&7D~̒@F ED]"ju(h]%=] 2#Lb^,8H! A:._5l][Vd(ӡص%oHtldN}ūp$@aԇ[}خp#PaS)s{3Aՠ3bhvlΗ&"ћђk7^^(\bb-2娰ηt6ZEI57҇VϺ{& shE'ab&5v]Cmތ|wFߚbtUg;)cφ<)*JD45%IRT%IRT%7GxAxwlx_,Z:Ӓ'BsfRj"rG"qҋ舞1>7+PÙɏdžv>\wXd>6Į\1.NdDWW\OqALTw2P=)4ʇI&MbFDŽQV4mZ/>Vzя -1VE=ը2#uY*b=C%} doJ,~+iYΣpjxy+,:ڇbt8$2k0SPHinB_[:a 9ŹJ'cYtx5)u~J/*ŦNe3=dڝyY4ݸ^/F54V`Iv҅NBR2 Y?CsMa]m"l+ٿLZK#{ VqLZ:DÍʘ̽<cg'agǃ}C@s y𳀐S tK\ܿp`!yrqLk0uԊ'GA-w34_Bq yQzlbO%?qEgnָ>/Fq??6<1k%ЧcXٴC~4$]ѝr9 3u7.T$&x7Dɶ@ s$:x[L.bm(LzD z}A}ܩP\O} D=m&e5wC{mr$a>'<qdx'>cXl5qxtҷA[JnTY,qާ5%IK[pW4-rs<:mR֠aɽA=LyR)SWmk!#RֶC@?lQcńw S$tXzj63͓0Bfׂ[qڛz:j˱12B1h*q(l$"QaDh7!$ OI:Zκucy2d^# "okPtK%| 45=Xr$\V BV:Xg2DB2 v4-ƹP\=b%Ͱ8nR mXEf(_uZujۿԫuɺj!fơ5x.:|8N97՝5mk .c[^cvya1  ' D5d<_i'-1}jkwx-,AWaLJKv[ә84N[Oxw)cX<#j 1%D3Nzs gɈ׵猠ZsP{h.۔ rT\^#?GGcg͏?d<tMcgt<?I:y?i:xJ?GOҽyܞ@i!Oǭ8oC2mD]$8gAN bL@%da;@ IķL1EIbʇm4729JBN :})c0Ȉ#V7H'Z $i3n"R" | ^2b36+&pyy%CKs1Gjۙ2Fmݎ#95k~25Ǯ'ijQֱiߊ Ju, eR磭4ԓq_N֒tRO3JP.s=>@cp9lڬٶm^H씈0kx׿[OhIK(;׊RwOG"o$Ռ(K׶-\m̚4J&@ `[@@t!'N_JMf1exDȌ#A0R ]pt3]L^pMYvJ#dfINEz`o$BHT 6$$D b͆mmhԘƑD( MɓR-Y7ɠC"95 0+$D0\ Z .,ԋR1,EK e@0.mfgzoHTY"Ӏ%EEJ,1 3 hc6$#9Je i( IxU,٢Q P*)vr1|-҂\sh !I6DLCłp[EELa˭ lQ2Z%Äz9 %^@X%dQbBҒdFI)@ uLlݱK3d-tؗJ|.ɩFI(,f D $aI##pY)!Ud9g,* b&Xǎ `2Hv  `` rH"]̭L!$.d/1 p:/8b(mPb ] p([d#pu%-wGA, ʘ`* d9 94eDE&ֆ*p3 CJIjj %m P@wS{o?{7KHZ@XO1t1M"ODww&n1@; 3q ɱV-*T3\q*I.JT~D A Y1m)A20C@#$&a57ZX6r8:bRn02$I0dff-u8lDtj|LYHLZf(A3m8+޾$1W2gH'o Zƕ6Hng)Kq[X,w:Ew׭Tl%f/C+9XCq)8%%\5ow"sRv#2>@>PՉhF9 9% ٫Їf1rzB@ j@ܤ./-0J%AKqR7 E. ;53W)P<=KRpN DH,,IKFAnȀTKJ\seJ9(0&w՛G@|m!hPPL-ˣ-^`( ,J 0ژlɲ MW^lڑM*'ݾÈbtNI6P6\4&"S#40ы"\܈AF.,5(# s" $XhVPaY1:΄*Ô.KJ&3 .l; mqۿ{SH7*0.sRXKtHhZrz &" %g 1˭@EĭN8y ;x8e]2h@ӂF(!&x\IvU(8_B tD$3* eіf.s7Llx!&B, lbD@D1'΁FxhTH a` ¤ [01yKZM0)6d&$e#yRH uf\,"{ P1W3CA*#LhD nFHdd[Y`'k>m{Qx>BпzOP'~&p(OI%='4OjzpAT8ʲ;:Լ$,aIak]%ӬB!.A'oA"ЗwY`zN:cE;&xIjՅ4x[ބaůzSd+B3ze9A3ڬu^kd47fT7v֋1=HEDj]*'Ν~p߇j`G*UqWbϳzϖy"/`*Oj#V;l5rkacVV(f/Y#TO?& 5'SNh$]yDe<gfcR ;ی|m>(+=gV}VgIaOϾ,N,2ԒGF;m}ڮU;p٩p1'-J Om9-NzGz:D1 |V'ސTwE06^ i`m=Xa:+g$8{]UE0bSWKȞ5!:[Yb;Bu` dtfj(^_J2ՙLz~7 XV+c ޛS(k!v~Am^H(y0$rd __))esEؽBEDxXGZQìIUbji7]CDla(̓>3Ѝ1W!a= #sI\sDd{4c!x^{mK'Ogԟ1CA:*8t=ڬl.r ?SDdχҽb䠸wXҎ0R "%)5NDBfDD5Q UGjf%L txk.r5*D $6&tVw)9X:8j& _u4$C~SFSq;wbђND<{T1Օ= Ԙ^ƾ5RLwEmvܿJ.1ޭ5:֋lAv1D c|3c>SxZWzKU8ԭbb /J ~(/ecxuLJ;v=+#N'vO`;gYzt2$َu7."['|T7Rfv#󢥲wBԵ]C8zc~Ԡ9I1DFX8PuBOvͨL9 1=v:ײ8LFJg_^xR҃x'P1P!>rv_>O!&D!d#<M@lfԒDLzGBK^kdBٱރmfK~{f&@eϽMi9#SL֨żV%rN,`1LQ]&nLbYW"/y5p!5Ǧ❬|c)]䇰I=yޯIvݢi/yԉ̘ f{,{͢4N63rrXpL-zzs Mɵ̞3[bTm#!aJzJdм[]gWtGԑ'9"=Q LC"z!Ou[ʴ &Ck4鎚~)#@J7Mo(gܤNԮ v&#7%ʹ5^ K~){و7hrڥwgzwF:HS'Jl{7v3M:ҟZ`9Qq4@"RE!: %oM kHH#v/S[/( QA)XGY&In+|m4Zw%6*ۤڮXKkyiVpOEn@~YԞ׿0# w?Aym [q& Gb_F.Em٫ݔOmwҔОrZ.ŚRwvjCyjǐy /J~ɵf>:L_.ռ `zNkTGx9==q;NRN&g{wۭc)Q-X28ũQ*eb<fԐµ8ٵXWh秝ZU9轌6[`ܟ2'LYם=<%t%M{hHۦwzmfǜc59qRN&e4׌t39Xh eQ95wbMi7#(!IG(A)$9Y}-Ў"YI a$h3"]b9D bv D7jH3IF"Ȗp$b#C2HA#4(i HxapKA.2N~hD oo b'9Ϝ~iBj{cKh;1KQʻ>kNcmqI3CtLD0tؽ(+zo{/\N&jsq>v$!'^3Zz :6*Ȟ3C>|ʐcSQ_7ȶ]m.Xo!WvRO2IҔv7fp1(%#ډ Aqo})6az](Zztw&2G{ڄPEc$mґkHGp\S0o23G$^iHqԀqEaeޙ$!ĚSUjBԃ|.uJz" ؃J"wW⿝; 2P,FZ8]mѽ8OEvY8s Xq2n؋;t'wJp._[>'j`"Lo(ֺdu%R+ON^`<Y H G ܦ`ۼu `E"^ނB&"xv!dk(ZŊqBH ׻6-x.ImMe8HI! fLx&vv n^{mN ;Kn5j&.5HUrP8ӼAz>4LH۬:ՏvPIxWy2Z-m40:{'YX1C͵o8ug-Iιh'$|7I*ۣ?zd󀫁.&Ip}<~iJ>\j f}rh:y6UᨗyK(RY7&-@AAZI#Ww#`h``WoZޑ/~EZ ]^IzWCvFx@QleТ̺]x)SWF6'7zR%6NՅ5^x'ODu`zb($.s,JKN]3դUzZ't)@<8t#d sXN^wtvD#ܡlC1j߷Z3OM R{omh 2 jmV<픨7P_Jk[ 'g>IP6#yRG=9v=Q,,ߎ]Tv}'zFH&\ÊPng^]ϗ#؞#y[57i/^#7I^հN3xԳ(ut=)DJ, 9fjI{dcւ~y׌LM^l49zYCӾӉ⡉Tg4wAO~+ta^ _ǻj:"\֧k$VgJ B|F ;@^2rB A<✹kƳ{NDu~B%^Ӕ蜔 )ɩk]d3;Z&(k|7[+HndBCwE0~|T<Ɣ NG^=`#FF`cX- ],cz^yk,ȞzTSo1kzX|2&Df3ɎtZy C'{Tb]E0və:Lк!:$${4 P$z%lMԤ_*5])?4=4gI؏Uj,1VƱ;5/;ӂN% o&V^c:Q؁<2>EhާRyd90t1-sc_֥qf2KzvB[}-!ֵB_Xdјv7hRΓ'umўUI&b.8)cBj)PՎ J"3È3fh6ͫ NK|}a&tgf7jL. % ѷC*mWu%h#w5$юzPF8|5anPvP V=q+zNCf =jۻՙq;O5v::;;=jT'eQ:gnR3>leOmrT$uleB-X[6$^I"wkkRB) 9IH`s'1VgGvVWC.Mɟ)VUvaұc 2PX^U֎)zÖz vNԗ H{%8[)eo1Mk#\q_ei獫=gDBz1(t^Lc{m,kkb!B2QHA f[$71xDl vfP 9 :Q$m*iwv  BҔL,GM[S_'@<:yPyMH{*Z2~OGZCPM/Eb/6a"ǜ\lƔI[,Ma[oPхZ9$շHĈcJwF:HS'J({#.8Rَ> / b?ǁW{xkXŖ}?AAAAB.${ewdz W?5O}_D?5O _D6uL![   HF,M4j6붇Ϸ $0ir%!$ " IB$z-8ŰݸL-e XJ=1Dv Ak:)!K-=9`!i2P,| \ꄝB ȴb유%\8$d^b9*F@͒3h2!Dndbh"cM7mb+ތ5&IK7su2 ᡺ "YY[aiu,8N1^ @)8ȝbH`VE5Fr^0ʩ8-1lKxg Ŧz7ҋA"I *$/H`O }X֨IH ;OoCPXԨLrtu%$8msoxͷ6uȠQ}jV&j-6 ,}ְ3|3<{==;H ,R/4X {c3AI!$hr 1. SP$<%CA"م9&H2E1oռЈu"ǐ[j2m@&V3]/ goA\؛[TQ@"eĘL. 57fEȟ^" '⾉~+蟊'⾉~+蟊'⾉~+蟊'⾉~*Ae=?AA@4*eо}_DW?O}_DW?O}_DW?O}_DW?*g{3= -|`V"o*VuOGKnǛA,!1AQaqё@ `0Pp? 7ҏ3=t8לzXXzv [, ǘC .Z P סlk@)cҋ;\S=(&njX)1B,3PQvF(LkV:~0{oWbʄ&PKZQvϦ})ԍD%9MI)CnV\"+Zkc1vJÔ-"fXfa@U*Mgҁq$K)ՙ{ИRf3~'Z[t1t zZҮwgnz ~jF9hǡVmDI޳7J xzUX"3 ԁ,:Li$ KsjP#1*Яh1/uI >oDYF肴L/ vgؘ ʷ^Z42l7EP:bjHY@A;WwP"Tw;/PT76Sm3$GR!zmD#5ՁCN3B[:!ĬF)%:!;ND:LnZ@=G\}jTr})ީ( Ȼ>zC֜iԽDҗg"'x^ަylO|I-N4ݖ@D{7CUt E3b'.fa#~bM>X}?퟊CIWh2&O@{(wBB:#NȈ) Q™iZhI=jPMK+wKaPA#mSB *௪#V-tjuz> Uit$ ˫M`gW਷@8\ai&=+>ف\Y܀7j d_H􊒍~1;3Hԕf:|D~Wa͚6ԭF߷։.xۉ*46yzP^\_tXҒ#41[&{VC jtH#VJ)mҴio'~W_EyezՅj"T8CNybiN+"=}K,mi_\:ޅB poѡߌufQyK;~*f[eXX{ZЈmjz֒"޵÷M&CBםh$0@~Z _}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}g̉7Dھ_X|>k5G{'s wXf#r&TkL1i늺H|k++PsW5sW%rW5sW5sP?Zjjjjjjj!뚹랹뚹+랹kr+J+jjj澁澁澁澁澁澁澁澁澁澁澁澁澁昄GC-sW5sW5sW5diJ|z Vut9nKbiEv#p2KJ#bOfiB4a)v; ܊ ,/W\{1?͟MIml:v#@%If'zTȟ!s }K">PF'O^j2jbh~"ɸzI$q"OI/>z?*@*fH70P[-?E p p2m ۙ46"p8la,Lq V<)'‡ MD;钥tlk$$k2ם2(+]ĉ=$@$gD"C}_hxA lYxI I$YbĐ6 $V}{T$Ę4ܿ0 47[RéJAstL9%D9ME4o#a`GL9(|՗,NL((CV 90f%1I{OI{E L3ԇV2VstLkuN ~K LB-.zT_ED&d1,Tz(RX.N2 «s01%JD0\^5%"6ƺ4ffM#m8֒J1kLc\ biL awDRM.3 +0Na](Ǝ ~z_%M栖 w:VbF6,Z^ W$w*A4ov֋!}|?`/N&k:LNqj@@rkg3D-c#Iܱx(J ,$].$7iE@w6*o|Z %{chj$IJC*kDtf}b\Nu>f5&r9f#^_ɑ|ܹF[Yf{MD7o sE@s-?oXO w&898n1*IPٌawI@d<`]He-c*ɴ`1̽PC1k?ļ'rKkћX,|soIݿPޡ_iBԘ:1?M>m:i.dZU_0"ݲЪR0QLɅrS,H+ |?\!{P<)ϗցE7cio@ q)3[hlbs]oLZ==;"61t(=UX8h^T+݈u,c+cU\LCB<[,ݿ[߼+ 7YG1 uX+?PMw_|>k5}澁_@`4澡_P|>k5G}#澑_HH5G}#澑_H|>k5}c澱_X|>k4=}#澑_H|>k5}C澡_P|>k5}澁_@|>jj=EO|>k5}澁_@|>k5}C澡_P|Ұ4y;C}#澑_H|>k5ROA_P|>k5}c澡_Hͅ=b$!_~+/~ܿrW__~+/~ܿKRE|_/g q0j ƎAkDvɇo@K1)xKW;26֬uݻ*`-2vQ[j&A8:@Mm!րM ͇LL$ZZgY "X֘ICn1qJa&nЉ'# #nW^ِ2tg1QUNοE;@[ ֽ%%F?4[[T9)p1kDR̈́*}z.d@]k8q3=XR`dL#FPgYCW1sjl·LzU$,z-ʗKLB!dZō7JU~0g,bY1({ ކ)[?oNpz_z2__$#p-b(DO3( /nMgVR tKPqEL) E욲K!5x3ztShiI{dn94"v=SBAvYL"p"K$l"ܢhLݮA] 14A#t嬄`|?ic/C4) fCO뮕TaG.뮺ɪ5Dt>?7GJ4)@ mQnb#]3z>,gҁ0-z7^ cJ=*0^W`P j7nt\&ᇟ@reLZx+]/3K&42,@JuӮ ӃHJXpMGR6SgeeЀT7b1z7%|ffZ*h~Ŵ.D0,YhAdg# SۛhM̳ŢÊuU@#~CA ܘp̯5p9s%t@aI%`G)бL.6t.tDrѡsSb.IQI6gxM5``&Iy'dj_JS#p 40w$r N7Hlh C\ TDhW%=MpJTfИM69@37;ƄhD-X! `!")v,P C΂`9)t>uSwq;kiud6^zd !/~w_gHD>m*ؤ<.S)&jnOW=wMcb9]i8%zi 9ZuXrO4$˝NW:ÒvbcIr&pIymas@ fJJZ@P36N_ZdmڀXwTOJ+8  [5G$IZ0q+Kȉ' z,!aht4$oε Y,i.X֬UPE f63mWԍɧ\vۧWQ/V>_&r`4*1ڸ@1qzTvkYrO}+D[k5}:fP X[xV6oSs=Ŧh'N"oA"id#EvȯA7aZ9* ^-;Y,@p}ƒ1\{L( 66ͩ:(mꦔFXi oWn 2ח~[c?zz#ꦊ _U.z:Hn8D5 26hGD'ڣ6ԓZkT95ihws}$ՙ^]bٰb}"2ùz0pG[华S"{\³6acnfJ1+ EUJ&Hv8X(wahK}94H/b?(wHݷI~ H3E=JDo#ųS r771/{ Y7E-iޡig٬7ڠ\2ltMu :Ol͚b:Pۙ !t]7"2ùz0pG[华S"{\³6acnfԊ,b-}L/~wFJ'ZB2A֤Ō[CyޠzqրĈ}!Rb x눦qtv{]`]䵝-jGBu?fg`N;M_tARԅ}oQ@VN>W"z|7UM[+iqJT23{K^=S{zs_I=+,0 _&IjePq/Q!$$58v}rVr=-"'m2aMg.Ο*,jc|)`}A>k`Nh-cՃޕ#oߙ71"(l?u%Ԅ])6'-.w(B|3+w)-؂ !h {^/)5pcNS# =ev$LC<'2y)r8@~}hlp}ʀP;'IHhScI `V+xN%ɷ)6T:G`: ]/~w,GsfS6[)UdcҀtwin=(T vڭ7vwօe6hĬi.^&Ҩy.:# : JDHJ4:V6k ߙ7gIwhT}ӣ ڕ7{^F'Y7e¼*T6Mf2LviÆ r16-1  hME9C8cwwB^Hekb KH-w8bz#̈Fi׋_5$tC3 R4Q +Z>=ϩ8! fZ;M-dcbw*u3Z~/ү4%t0+ EZ[FtM@q&2+gl]܊,T]ɴG擥ȫ"ia)&OIALEȉ $[kwk,7Ճ^& Hsr.sv/[} İnd :_"E:k#X"ƟOj^&=Q3h\+;vT=ٻ4L/ ܑF`ZYiu[%ͣnuu8¯vM,tRѪaW.]X2غؖIH3ɣS>HC6,Q&e|̄%2 iLއGc3nϗ3n?Y_fc;n?q_\?|rϣ)k7Ymgf!ޒX`t0e)^bf9kMl`Rs֓kM[05V* MMsjDGQ$NJXLlN .{(D&z$T/s)qc Qcŧ|_oUՈ%{ lO% nHB<ƌm(`I3RFwyava4B/[$ŧzFYvPcDYamB@{8BSkut3*/ZiZPqٛDӑI9 `33 d̈\rKQ&`C0HL7֟$,;P Nk`o NDMđ9%ȶkkE3lPP+1I<JXMFE V:, P ^,zfC('BT"!zlV2Ie)@CO٩H!IκF:aоĤU!AS (T`VJUY{DBK4ƩII}3HKX[4͓ {/ v R[HK8KD 4RJ9WZpE9.@vQaᇊ` p PX ,p?_;ٕ2HxzCm0ECSIr 2Bcuqdy\kD^sԡKfX i:bg3hP<\[^&3j##ƴr;!=!CHjCamV(9Etn|ZIVA6ۋ]:qJGb_%&[Q9@՟bW:-K-8dLBWϮ,PC3&48!j!]'Q߮k^9 ?ԗ7j5zWӥ1&:,=x7;[t@$]9XMMqГ9BCPDA+ w-Xvbo5f䟟Nj%fbXd+6R.] %\e7!  Ne @ fG(L,[`B5!Vl#JH,JcfldYfY@1ڤMpnێٹ3d XŬ,DtV ̣Mu8oeTփ ,.\[ 2@fs`GDW )w/ DkD eLb Sg2KCdYҌ V)7$:EHk 8Yl-х X`JLJ& d-L2)ANAPACEwN"-GȀ1L-1 7D e 6E@jB6"4FFlҺNifU n[R,KBLV89jw.pqT`({Hx*aKh6Xi Y J  y~Ĉmc lN@E5q|EMb!5Q8@Hn1Vd.H֊-dK2dxZad"$*%. 톴uL g50+F iѓSⱂ@tjM@ B2v[t_ dL,"QIK`p __H3D1~]iPPI@2WJNuc% }TH1 TTRI'S~ OEkơ68%e o}Qū^)mcLtKÞ߀rUu''l'micUmƻQrJ5`2`^4ꆵc=x6lkַQ#vشo6J}Рp.ޑHe&<#l[ޡec +.Q*Bx6lkִ#( cr&t')~JX0/jŰYߵ] ';;uͫ"*vafU=,!\/3=ͳBf5y:ĺN&/lcܡb:Ιbܡb:Ι^V RaAC=1CM^)Xoڋl=zsَ'>/G#r{14&wۯ YO1Yc54>c䫩d(tjlj+ZcͩnqYjGOf({ڄXOm1M$XOF^~&iczPpysJ!AӉtOWDclV*7uᭅYJW@!MVP 1qlv$ ߜe[F^f5{fromzs25х5Z oȿ#R:$dѵtMXv'^ ш+MOF#q^+Hų}7Bͺٶ$؊iO_1)*J >ѳ@c1?qInd_4v$K#eo~(d% z)ؼ%̐$f1PnEdqeLH'2'r*XFRD^n,f֦`cyj,R{ 0wށ.}(7?#ܻ5ixȞ[щ D@$ mucY6ua^yԻvj0qbc#L0$ Z#Z8i8@ Cf8T. 9i;bs< {)YU7L#:Lu"JyL u^ -fLيw2w1m@n-7ji#*56%cIKck\t,9e$LJ Xu MVISȸQQy^TCb$ޒ]u#u*Y wm慷; BOTOi7Zp_@*f㋺Ζ1؃`{k59p'Ѷ/Yhr֜Tg)GIjgߨ3&ᓈ}d'Zׂ{]@]=Zd6TvQ1)1`ZIX]dj{'9S>|=zը{5hm 7ޛgM["FKn3n*P)G夦!bFq{ n1ˈH_ NӋnĹ5 ;Dr3Ȇc$K4pvOzLFд<y-O|C ^ƿf6xqsF:ܤz YXcXN1bڇN{ۙ$/>n[ő~`+ՒCdb7-I.,ۑnk5E}"xkjFՑ|Ah zl^ǩՇ,Γqoc ̤"uj'W>w/[; _H'-kޓ(wg%{Sf]>ҦMtvl̰Z03|?q-]@ړ rcDZߵǮ* PFCpk,K5RQz^:9!.%WPNۯ-am*,:4'%El2r'Ӝ;KH[t38ڭWP#skO:Gfjޒ%t'E\`Kݢ/m Z y86Iŗn?h:K4E$y'3`IufI#0;.(J#(xmo%u׫ fku5754 ؞nhQ=o)J̬i.b'Ǭ49mN[`2&3^{cx !~4N-lHzi`r-$fbM'b6[dUJؘj.jl͒2Ld)'$Υ ^{7(eFڔv~3Q@ 6MVJ 7q&CQRl[ۣjág{ټ[zHp;O5 .<;&u}қgaqAE%?#RCBor2S!ҾwxoU6oO~W (27tiÒ{ mk=r 6g$Fi3,5L;6t{j5Ta}6A\ei(CݖOLrzD8 >Mn!ޤzE (o2 9p0 ?XDՈj2JyDzQfƾYta7E&fT1ARemg7U}ZN:M̷mdC-ptHg Ď[7ҧ ־}fӭM{*XsrzeP0Bq NK*ޤ4F/Vq˵uEG[NH:PΩ[Fgn~׵ջ=LƦ){R%+|6 aH'B(t5MĴz >/*G[LJ(fNx֦KSGP"&}J,8oEWc Jo5@L蒂Sa{D^͈x.4VE2# H` tah.MW(6`lL`5Hέk˵j˙;.U8DQɚ ,6/ހ]gY慸9z٠i~WR;4Q{_<&7 1ZG1ݶ_7堛 Q;6C,1늂&e):19G+Mzln^N%qi@_GkIxv f\tz=Qb]âvؗx\t)rx\[!݈r⡉޴=< " % =siSiN|D[zfՎu4GlRb :UD^q_D~z?n뷽aDHp:5k nJm1qPR򾁂de7 bKxT6K>G|7hG7id;\ D:@ϣѦ.:7."c/G>C7붜WZZHeqbIfe7Ծ@@͛Y=JKi:sGu旻[ 7ɚ=N|U꞊|%^zt'^-I}c B< dKj߹F#mRRȟ˾bu 8$|Py=;&gU')ͺO d/0JRY6n{x|m O=lc 69"I]n&x⋊i*/vtmYfVm vzPJ7%Vjج%zR˸5 @59Tad :Hr)%Fl[J ?_6HMC1I#6FM:1]߽ &}K\kWDun Fx[cҮ@/Al;Ѕމ@`.$No҃#B{GfN&[T1zlKxfxJ;I[E&fX-V+ kF29pӌf4Yt=;WY$8 YjK!/acq6?0KÙ+-oG&&"J(v#yRBV~qZhaCk3E,k6:1|#QmX\ʂز4N :5uXrt o}5-A!&v+CIgsCIA+inv,׶ :(lxjk1Ը"zPщۊhnWo(z779(pXBJhcv i}i<[5 Jk-VuH0q;mqfݔ<6cS2%7gM.oFcCZL͢D]) 6#puS ZI,$F&Jdz,%5|R:gK4 u=?u Z Bоk/ Bоk/ Bоk/ BоiVX}Q⾨_Tx\I vxIZ4EoSb':Pe6LИYFQ]5VfЌ,U潃&gXX9ŔA~c^һZr2Z.01̑S0ɢ5kPBaEVEănt֣˘pCXS}2g\!oX >֐DڒU50C[.]iȆ"3<[#^v'楍4?:мm~oR3~iNPh x 9kIdnkBr֡#ZQMLJl{cs{x٩!3mAq\,ͱyf|V9tb5rD=l_4R@OW4 _z!sS11jIh MƛPlpgzŪ6tZqRM-=)uwj}U4,NJDb4tFӅ*Bv[^/B?k5O}_t|Ҕ{~_k5O}_t|>k5O9WTl.U|w]t(ǫV\[>,!1AQa q`0@Pp?$Y9%M (ݲTv> 2aDr8!tpBtiliꘕݘ/}8sβl|%"fXJX8 $]LrW^"VU @oܖNsriG||NVq@oZ# zG/bO9T(B6^L\UP)Ơv=SsM"x7T`ZyDfh0R@L2$Ygj:7r :6)PްCZQ>x\)5O'U+JbOg"48iNS^B.,SBF52TnУS3J2pz1l% kYڳ\VcNT79N3GN%I6Ik | +OYcϏP5IAQ?\PX37&O!Dg*#0\Ɔƒ;%JSX.Xn>7S4xOa聳B ߳[ĝ:c{1aJ [ BA^c#6 Py ] "[2%qB&t?B)4*q+CfVEr$(nrb4z &+DbsjSv]Kg=?j[07cy홠@0#E@ZgV ~=ȸVdp45(6XJKYq0@Xr h0 ш4Ѐ>J'Xa"MYw0S0T%5fv~"XxHuj3ݓIks8d a> N]enlXdyӂJLs8d b]ک0WQ(a[aU 3|;Wۻ p&!>VLPRcDvh ɛc$jyA-uGC{$7 p?8? B&~AD<9lATgT63({YE E֢YzA|j ibZhRM" D%]Ѯi'Oz4c'nb'q^z790 ?}UߊRx/{do"PhS/}I8\-tdiE4*M  CҫAzيH$N~ٜbș@u ص 'tp Vl>عWе EWF@Zq}a:'7%^W\Z'DnTv& hqT&0j2m$vV Q&t?8 Ǎ$@^""$ !1)B"a*d,S(l͚LZ :jl&D҄{2ݡJ)q> (.kPŇ,N>8*H(,I$ӱL '/77Ck= @;!VFCcƵrhPhȁuD'b6#6>^˰}V!jg_p[zK3?%HJ @9"KEc8H]0( hOFʰ* a($R}_iqh3`ڒiDy&%^9Bqo$`CKH:jE* J.&zn>|>|~4p 5ŋ,_Aqqqqbŋ,qqqqqb \\\\X}Aqŋ\_Aqŋ \Xzz}zz}z踸ㅋ8\\\\pŋ.../AqcqqqqÅ..8\\\pqbŋ>=C=C>=C=C=L=C DQH4`@"D.-z .../\\\\p \_Aqqqq ..8\\\_AqqqqnAAc}h*@XB*GP{5p/F긾./_Exſqg_E8).?1cQ*6?,اv> s,s0j(UIIb<00 %C} 7/FPWOLS8QNK[\b,\IE;yԸ T"b\\Z*xGf.?3͐ h8aodaF[) [c(N\\\\_"6YRXW&rT<ŕCA' N snzH0`m1-h](7kiֹV0`ΉtGËT`wXC =gs&Zc1r`o@_Ey.6I D s#J:~L)K8O6SjñnRF89T+^pldWV; A(cC=f>kÇ)x"9Aϸ~:Íޠ4p"̏W w\uABCAhkA]pRB{=9QR~P=C0KqIjXHJ$1 X:0삯IߗS*р 5WN@ELK 箛9:LlM6dipqybaFDHBL[I,(i5X|$P`xa1klA )8l5= !u=^QZp "[Xpn[W./b#(lM " E^KΦ1iJ$1ÐX.!t2@Հ0 &>$6٫Wy4MSE 8ա4 >0%yN1\-TI1V c@QTGG(Q_BGsO/Z;PP&BP'< {0urIaP( )VkI2Ԉӣt6&#f#:8:u (maҙkW)i4 *]a1V i7l..nMao dqbȽ!Lp[ ƋXy1y[ 䔦j"-4!0u~88Ŀ+H ӹuH8ćMOGKi70xT&^ fh'nQ@pN p J}.R )6J'W7쏰xk)ѹ:f9 t,qM x.ÁUbl\CT]2.}j S(^f ;`lI#FC" tM6#ekG#@`:{ɪq} MQYYN 4 uZBhxs ޤDD B4 {I$[A9l}\IHďY[o0M-ˑt[Cy&3]cn&oTǽ* 5Ws+LEҀ6͕;fuVQꐡ)@v.&U*3$sQ^G'@- Gs DQIaQ!dMbSpt=Qs|Y<k L Z F(8n!,nQǴ_G(\|.!2Iv%*t5pz'5 sM[8GHj[S|3V[J$u=V,93BB7RXV*SUŋ E$߃zlB /!#E.w#)]EQEP^71k'&PX3sD=Cz \\XqP}qb ..> ;8 T8W.hňP)@iMs%` r m0kEC|8IPw$,[Ԝ*,?L:Ta;PP AT-%ɼK3cXv}=x@E }.ǂ#/(*D18.I%$'! 1B$[2p .R' cDhGKGE)Hz@z8]bŸm`L@łʀzt1H ;]pCC r׫G 4OKނ&oJ\S(#) a: `hMK;Ä=O/InFjl?*E`x\iß/Z^k-– ZHpJqR\ :{GZ$Z 9K ] j2Yt:4 zۃŽ=ui"oipp4ZlL7K,PXPVr9u{[8hwۋ&na)ܘr09[{wMwlTg=lwY,ulkłR?C Bװ"i;LjѰ Db)U@gzw) ŷ cidH+1RÛ,*fЦBsXAj@,`%R3oKÃ(;w:2A'fwQJ5|;TOpbU)[= SAаh?˄pg-fX<@lכ?+VB -=0PS3sڵёZ&tv щT5X{Pq5-(, r1A󈟫"ŭJf>F"g/9w5LN$ϜxS@T܉xAg!ߣ @'3=Cb .,\\^MkfHMK RK֧.V*邻%+m !y{c7 bB`IOqZzamFBEeWK [1: ir ZH9ӶD$ PA}JCf R7Xj!"+>1Ҵ.fB vDb]2b#d#h%,7gTmD$D:NJD5pF@c}pԬHĕL4c|(F‹&\56/0K) 䑫IvPm߰pv4FtFFJڭvAi;I[C4UZMģZ"~]Quc :ǂtX$AZcTP$Ҹ.VJQitͦbs'>+7G 甌lv'ECƍnO-aѨ Ka*auZ**yi P N%}.DVEmR"8rfj&R vc@ڐ7Eܨ xymM-L5xV-N f ŁkA&uƵfSNPȪ XԐ*;:GILyƔB{ NCT\4ז@xvh+FewF€F'00bSQ@raZG4O80P_Aqz J(ǘp {\E, f47U B + YmND@^ۭb@Sq5 ՝P<ĺ_ w]WI՛^tO|E&щўèg 2k^Go--$I5j2 !GE|v?Tnۮ1"o邊vHmycXr* ڡLjy/f`2]*ԗ|gT,ݐmӶ5c{hU+SH7XlU*;/y^0d"[u&B{b)U7 ΐ vSUCW5Ggu=%5E Ch` w[<Momy^rсQYɏ# IA E@ :>B;/2:Uנe|zzXz l[=C&..+...,۴+tDTIC^Ft ErPFGYņ>N aF/.m0IB0h1/O $ {8.O"T7N )P1Qp\|JsupUd 5c7xCx@x}Aq+](=9Tua;5ᡤR%`يݩ*]"j#h`-h":)qD*D"e8fZU@Hzzl\\\\pbB*# x#sv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۱*B}'+ j$=C=Cqqu..,\\\_Zd##!N2vMU>ah. %,\pSA@0@FO9]',ŪPP֨J|SD.EhJPNF}k!Rm!SS݀ HL#f3nH O-&)Bv# $] VMl.fIPP\\ы_Aqf./7(C@ VįhQknVbrs%2h6*[@JLxC0K v;IqZfAy=OPXqqq}G忳~d/qqq#ٿ@\L= = = =EŬX}Y`z.,\Xqqo#ٿPXC=CbŸ#ٿHXC=C...} ,?faS>}\Y,?fAa=OS\\]z ͗PN?8ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg`ozla";_TL= =qqk_Aqqqq g3L&|> ςg3L&|> ςg3L&|> ςg3L&|> ςg3L&|> ςg3L&|> ςg3L&|> ςg3L&|> ςg3L&|> ςg3L&|> ςg3L&|> ςg3L&|> ςg3L&|> ςg3L&`ꉇ./yw{z;}v]%ub# am6 y{ADbF-lႨ)P ډAJMMu-1uw-͠yqeiUsi1c@*>p; *o\񌦈!"@ Y \B奠 R$ x5$pXT\0A"&[-kHo49ZHZ*k(L+ v4:ƣ >J8A@:^ݏQPTruG[Z1Ѹ"F346TJg*;}#J:P4\UV*| V+`-MX"=J]VҪآ=Q e6H4$9ޜSt+T6%;֡At:F-ܘi1kJJ 1 L1' Be|S\$@;<):8u@Fhޱ̬*W] nc$ k)cff̯GM|`XQL  QߘMۊ%䛓!tlMMAKu񀂔E cYEy34MtXa Ř6o&C ޞBQv"[aa=1sVT 6AXm8'\G/ujV  T44zTRXPBVi+AhpBQ>@J9 >wi]<66 ccG'm\Pu1I($ˆkM&R УP "{I91cao p3U@",BVuNFV81"ML- PN$X+#vBnt rKQIyV,@֑Almm@xbȵE{,jsͺEF+btV|@%k[1EH*vgzyHp\ۀҔ ( WQ/K e HfT"P b\ݬA#}K,^\p}x~<]7чש4"9I ` '*c&yyCF" DoEb;&@v%Ћ^̿ "lw 8R!6$h~P/-(l HM40VZ^B90lj٬q֣Fb5Vfv$FEФ ESbxɬشչEC(R[0[o+ S|1$͉SL0Oy*Map&b^y0x yZ4\{ mNjPs Z'ȱZ{ RIVyqxZxZY&B͊;vM&!xbFTqYveDX-U(9Z0*!VA;^x- H'kcBF*WJ8ǖ5xeu.L)Ø5ڏSe|ljjU%TpQ eR}N H, yFr5 ~090>sm͔02ƖDmW yB y߬Qsw5@Գ8ED y޴x ݎZJU |Еy):ǯZ1S{AuCq-Sas殉@X 7⎽)sFIuTWGxR59 VC'YX`$o)޿M5xf?I8}p*0*ms-1S ;#a\Mw0Γ/FpX%?, aۈr"`)4|94*,pM/)o'aMiR\ v2f$SS{Ú LD^cyLꀳm^.mS8<`mE"s  }ف$[Jb<$3xPeIhwdSq}#t-_c LPT &٦w*E͔  o4. :VfxTGƏ7.-h|)mt?:4U]ѺuvH"Bp3s%d^@@MZa9 :ab&th9K(mA@4z ;Y^U(kllx)yEú8zˣ76ka AqT*mJ+SqA ŻRhba%+cL]7@F`n \')751n{4(Sx)yEú8{^ؠoV⢂Y 86@Q_{}-y`7RmBK㕂RB,iۓ>|3H_k%WU+wn?BP"#WXli91[b@|GCLbƀYQfP2 >0J.p؄wRð$  ND p 9JAмZZQ^%oP l@DJtOv6+6bCf=DZ̑EJ(H9-oqNƔ:r ]% i)(Gg⪙(ATH~ٯPAĴ Fn,#Z8 &r{lMۛ !-nqbU' 0S^;E"A 8$ݦ6 S x+cv O|)EӁZ(j1fAPCϸk^\}U U4B*-ufC! +ZUkxpF+!ZhDWj62"T#R;vlAca P.iͯ%pSo JޱeIrܯX:BcmANF*96:ofkHEPjcGML,Ty)+!Me5 >DhZH*Z!B MTAR -\\p~<]7љ*ѧ5eiSFl ,#&1zh:b4=a8T3d~6!O/z.67^xrY8E$Ф™?dl𒴃aMCA,ŦB Ztp%[^c.] {SA]W <D.+v8 V3O 1VD NQdz91{s^ɦ9A2bcI0Ys*y"tY0,#e8SrBF*Г@BQ/=`1e.1慧j,IA䍹\;DHcC rgX'-2ೇ,9gl ١}3I/AS%ݗ Y׆]Pӗ(uGEt5|ŧg. @BJ sΚJ9Bo{NĽɼ(%{@*RDI 2p (lusӭsokr@{LLAV̽s;$7HJ'2oc97JS06E;s*:)քE*۪"+y2b!/Drx# PdL4|b:cÏёw]:Ҍu7Jmcj5G0ӭ!rD Y=5߮K{ߑ"7"7aD YQ0,E 'JhV6߬灨[cF.@kw: vr& KoM 57 5&js@w/\dD;k6;ҍwb=Hǃx@ 2 h#fD"!5oL3fҔiR5 /u"pK~I oS ǘ63ɯYSŋ./NkQyxZa8]"gslars u&إ}[UMҚTqCC`n^S'"]P&'@K$&U!HN^6½&naP`E Ml@̃f6/3@*VJL\f >}YU!1|lIPx#_դhmQ@"P:2a@| se6#xЛFQKeQGCn"(΂QėE> r1VMv1eLjs T7m^3L@KN_(ұa}G% f"-t;21#`U,CVK;cbƺ,l69Yc쩳7t{)9ԷԀ;5JFXV";dfUB`E(q7ź`a\lUzUxÄUf9 M +тFMy7m R)7.Mu+T4cD42f4B؋WM|.:Q* TEeH:ǛQR@>6">#tM4@ի CAM&?U& =6y@:^ݏQPTq64 Uٞ9|lSɖY:ޒt{\` 0Ns o-#͊1[]%Ph{KO71UTr/ ؅)KKG,7 9X(H8}tX":6b:Trh:QL1i';I=!CnfqAKFYׇg攜-cx&IPT*ȸMQVDZdNDM ElH.WH ;xg{8x"wxtFCJ KuI*Wjym])"Xqzkf(k} 0f堾 z='zVRRLIȏWǂ@ v [UR M= %n@9(u 6#xR6#aR*:w'w;bh=dF#iM`#J@=OʜyȾ^k7T0&¿F]soQ 6oxP+_0ZѡROsW=P߮_ ]X@ȝDzqCWӕCFmAs\\QvÍj?u1!Ag`8\: Ei]oYұ*GzM덙2U)%u`FO9̢p(;!HxU,&j4ng"+ښ PV]r&Np}Bkc\JŖ-t ECRd&17Bl@Ip-*w{5&9; TBViHC*jPt1pCTX!5 M =Gq7V F;賤^"Rh tN.F@$R`ƌDj"p#r0KAH*P#=,?Q?PW_b>(&Qoָqq}|~<]7ЃNbccV]טӏ4iGjXq"y2v:A>gXmfnZ}rZGbܻ?J d]4VaƇyTY_.uQ"H:{9QhjԫhUeaFMA0By`[4{,)8]s"-{rELFWXxt9<# V9^W57G(qx ʆ.n{גf%{ r$;n-نVi o]|3']Pg=*A4132X:4)‘T ETAtb̊PDaz'/9xQAG}Ʃvi/BOa9o@<x0[NFr9# ^ୁ/:]WqLLARC@m'ATO'9[s `Mm6qJ^0 φsn?KZOl tqqq}ŋ7ւ()C8880uHIHGP $x?hZB*Rm xljYUeg;qqq z$\)mqqk..8\\ S,l=?%woѼm䫰 `6ktiQc=s#d6=g[&];*[ǁnSG8o%*]IN&4mӹh; $QITI{LhPUfQ/|} %@<< \m mԆ>PqS Ji#grF,Q< kqE1̍E%r<=x4|~^-ZWxuSWHHsDO*GKR&`4!R@bFXW)C҉1 b@ [HR{ko Z$P [d5AzHUt(k*/`)Kn4b/{϶oa.<.GB" ֆ(D:e %brVq[Kh:rZh&ƑLoP-v.0t1.knüYʊ"v(1wfȓbnTUC3fBFR0R!6- o>\w;ǠL5*mR%*yjjnő:UֲG #8KS<%Um$ I Qk@9C8ֽ .*ף {'$&b? R ()} 31Rd^Shy@S5HShvJ\0Ӵ5#2+x3$殃W_+\hx{4/vT˼E9p5-k7ޝ_RB\χOe&[F!kaF ䷦b!oM]9c^@8'E#I `w*}|#G8-hɳW_(z !Hɰ}OzS"e"[ lc慱~x܂V0g"?ak#xGaj\476%=-M{8۔ս|_(6'Z! v._KHRHW뇢;,]w{&2>#X%=#O<:h̘;@#  IŹq0`\dbTIi/'Sȗ" Ѵ26X@Đ_#K+Թ'38-_cMDCL+PsKHȨӻUz[~8*>N"&䒷k(AD_鰹˸mjӧ@YJ=2s&ԅM2rfA~M2嶸LAqTc3:1O%u')Z[ҵ!Pѭͧ9ͭͷ&@H!`X~̸0I{\7ߨD8i;23Q? g=ׁ=d@ǼhDDM ?Q'Ftcx(I?ʈ%0Gֱ̰0/g<'%dȚV5D]ED1h:& H?OX/˔G 8H#CKN7x\k懭ab#6+8'aթd ZF|Pis,*@FfO?+.M1 \>A_aS,Zig!]6MAqI' =Zf0n︂zn֢:i?FԎ~,&{~*a;!}nTmTL}i'{EX0i}pZ^"4Mǡvw\cdS^ѡ[R MJ1@$WG'F>OjwJ o GaVi͐ S6R Iy|D TQhGZb-P޾1,_p|`Α{[mKVMUN&M(~/7`9B9R[$ `{9pP޼rkxVIQէ՗VTɨw wE_?BGyIF=.{4X\L“)t~K_`]ܝ[]KX\^L ֈdn\-ڈƁs͕=)%hsmn>CIBg lM(,3mkYhyzZjtx-Ą a(U,[KވcLLapXiђ퇝\c&|.ӕn *j›lq_yg¤LwlmWmF#'"(:*Đ4 ˧a%4Tf]|u&^pˣ^Z;B)iwbge:P @Uf궃럯c, 1bk@w*Wq{pKSI\Q;W.Lt_gp*kf;Ĭf N# P%30Z}U.}lAeU84_oʛ6qC +޿z#MzKqqlˢ ,(OxɁj[K@m!J9|#^E~,5t;6Ϫf$L tG5*EkyIgJfu<'TKo(,P=68}C,g==\ ^[ X𿠸6i+(eHgl+bQwruFܿC]Z/Vg$ D5XE(P/WS@/?"tsOp#7f։!a\_a?Ec{1jkЂusT^=W9EB.4=;RIg?c~b%2p, a0&}~Nq_ZK{G| )*RO򗵻eN`<{S1`8?19?deDgDIBc}q@v{!?*Wd}L:nxx ƌg%_:nDo j6Zډi ٴ/vvbk& ,H$K WDIq*߹+j!u|ɿF:v^ &*tfqSiTE`_װ@ u&m߉S,=^7.)nŭ;5vŋBx2xΐeF QR'bY{_+ vZ(ִxLRp6pO@ &@4{Vile40leU?|}{$9eptj8˹}r/τ¹)ZPYbT[ 0ȕ|FA|qF)DŽu:yoP#I,Yjf(J$g1Nc7J F0B||NA$7 B~nňr0}zanR,)VǛE!ON5C ѩ/2fTJ&wݷ2Te8קPAXc)'g'Q=4RIyPNʬ+C Yz3Z%&P2RUg:\Ws$Uy">_FCoAv(# 4Y}}4J,7B~x-jI7 @UV =˔W6?(mZ;!DjB{q2P9"ݿPvİ (IV`@ق+-BUs'WXpvC$H0اne]ߪofa8&% Frn?AЌvW涢M[ӼO'4% oBd2JY);3DRq\Owd}~G]"' yKmͳ}¿&agcFP&C}cI]0Ow pzyVm;zQXaYVl2R4Kf5MY`"G*S-^"`JQԉ]({k; 1#C^ڌ ;e%եƋi,2=DQp6G\g8qױ;^fNh:? %,ELV٫g~2\Ik#EfNs(ׇu_]0niJ~c}$̙Rk33E(}ܙT1L$,Ã$Il;O㨟mc 56 , Ufe&Z'^f*T26m_N[5`.IbF3fn=%4 *bq p&M4߷B|VTYοԱCq5.P!@nL=B՚D9cq!i&%>ؒ$X:(Tj3 cU ߷L̶:RM7w;ÄNHkFPB}erXDUxGx wʐ#k0rRA*$:W9BIm7&QZ\Ćs duK)4FnX~J,jJlY  Z,@ai8X:P^Iӗ4xf*E*釦T:x(kԨ|D= g*]rNL,UD Sfz}ú:ܮ!}'$S4z/9 |X.jE?{m"v~pjK܅Rh_/p/QZYފnPcF Ujb4sr ԁԠ5dy-4dH7 QŽR/{iL9I׆FD.i[[8dC.pSoul뿿ބfWEU5t{s^fq†[@d?0Ettowi<&QT'm %$J6{kءJiu¾`Uo'J()XZe!;T)Ď\c=E33Ow?yR^W͍hF:_uzy0N:ƼYIH+ͿЅ9 ж;.W;W=0Ԍ/lLȍNF4 ͐TѢlF+Xf՝D(f%6Ҫv,'5P~ES/pD«}5n @? #,$: ˻{ϋГj:cjh"㯃*fϐOx!$+0dY[Æ{k|Gh4+?+ƲN)s0 %~$N~}4LmpGhĩi tD4z?eFy}s%T!,Nt N)2WT= ޳7OD,SG.1YNp3V ZnЋR4_)ںAZ:6VeE?݆B?QgI3EHhO:Z^x5{ş},;Ϯ´R7kq{ٔ,Lَu J+'@fT7ߔPW.2r\ ʷjVy5Ly ) #+7?jPZ4|D.eĘgJ8Ӡg30[߷(]nZkXhJygl D6:kLvu~hjh㋊Ι3tػ&VkQ\҄O4((~L qiXzx/[ςػ_!1/bx9@EӤlfWrq{9?y^, d8( M>;-.U"zzmZ)mPh $^?A &A|3:++:rLB'vP\MjebOlWNH͕~X-_Rߑ)2:ˁpW#5z,)脋\мGj9;,D~2uL'ѧF&]-v[=K#h!oU9i8t>mۅΉi}a*6XelkP즻C$ KAV#lBoRE$'^kIPy徠 [Q N3qH] l`=Y{nͱkWḒImdWWHbx!XXWjAf<~!䚡vZ W\6E=!\RT$gc MՅ伌:EDcAI#9@P.tTGPt=ԻVM^)rZ=h.ձ[Rfrߵ˞Un] `椷qTT',1[U/ɿ{L)SX8%krm~.P ˓G&,'}P>ɑc)bDܘ2<4KhVyҮX~=c0Rg$v?(ވo_J򞵭RpN LvBꉛN e ZՄ_ziYp@=ht;1O /4'qf@Amrk&2rbJKl@gz /΅?jпQ'NnN93wϜKzH5T0տ,.ޢ#FMoK"#Մ mhWrmTOGy؈Kdt gӾ!>{?.Rg]?l륑!GKMৢB߿ނs8VN?aM(l0.U抲<ݕ4IkY%(Sa!JAr.FvkRiܗ Fl:O)AN}7)̬|痩x0Ju^(!~[*EpgU}6.e; CՀH}6y9;_v߈UT[F#XE#WȎR !7˩z?CٜD~ "̦4$Wopg8%&ב'GF2\+y6S?J_ Q,r7w@`"#Ѻ㏬7A]tZ#YUЧfr'UBٗyo܉_)"|Uk,IT:eX8Enϣ]U4gȤ\ǥ/p,HzN+Rָ)GTnLik}2ܯRSfͱ\uE4~GsLIR. 6W K ]uCveƮc(xxsng} Osn f3p7 .LLzd w(k9SMphQq)t1^%l}=bg*Sx<İ9;X$g#K@#+YУF/09AT~.[)ۼ-گ(1jZ >— F!J&1ݔ tk!a}!_~C=Q:ˁC_@v|X, Rɓa3lwlż-r=(\}Ǩ[L0+plQ.͑;LLDDKFvx: ]phU4f>u$];N<*WvT6-WؼTl'CU7jN ^>`!NÊI-,hu;=H#yVZh҄. (o—/j aB4'YZ㭛7= %tisHq )l!Ւ+җ6gټAL/8"'n}Ww.Ъl;!(>T/dR <Ŕz :H@|pL I=Zl"aE݀+(K.Zu bk )xwG@[r3\ā!Wm_ &j'}zJ})꿅5E0Be;`Ū:'#p 9 -W? izPD;^Vy?(iz2xH#9 -:[pA(̨[,&y|gI&2ϼ§@B(xh_QPF-ᬂv~ؽ]ˠsť3яh g4LJɂnZgbxz׮i$x VH/ĶIxW MG|jĖ3_V"mhQM)ms Sd滻@6QX!q9~[5 (%U5FNSJ_ Nr^[v* Eö'4L _PX5G`@[RzI9/_ᐹthyD uktzӬnچh${uLvHn@٫I . w/[beYJ]lP2&z$F R"U5"c@:N͙s}&ouKqty-efxF8O\7s!"!؄L3n"т5(2:ndgC0+М`ɲ-CwV=/G7-NMAmcu3Wod~ݬ9Mȃ$}8$6*-#!Bu[5o^ڤy~l%~1{-v}َőMmZqիhBP׹usqOŌ!:A2 qg ꣏}Zs HU Ɵ(BsbrU?L]/dٹDD%9#G<V4#!K7pyf3k cW,Z I!ҭDjTF/1۹F٤%%@VWIv5~wn&W-ɨZyYCȦ|bډ4AQdݏ.AYM-"CUt-W[,CN嘏NȎVeUsƸ$ߊg/RFꮄf5WPV7jLgG2~?d~@m2$_QwLi6lc<1߱zđGY.rYQ"xr-4^ܓ;ZUa4E2nybԹy|9(:CWurRky'UN]QK8j3#tZIkgь1f"Y?[lrW[+tIa)! ,To !.FKpm1L0uy`ʥ\M '][P W(9!ȜSڑ}G+8j!jb*bcZB>1nCl[X[  ύ_Ԥ KsUS dJϻlpH jtOtlDMoRsT]j!=Xh9v:HAY-S_mOxQG[,"XŝpNRz“\6znA[lCm,\$cB(g; c䠭w͍hyEJOr)}H}齝3$a>Ftkn" @5 2k\PEGKp=/M!,uDM Ռgc w6,$QGynJLs#NR19 zV4/8twm~ۢ`h${o@ +aMɴj6KNf Ĺ14جM;%HfA/f +.@䅅kȽ--v[ /cW; ztulm:6f] 7MhG5%W4m0r/x5<T&g䊚%y- 8jEQYu!py;#|lW0mu[*[܈oFVVvF+NXr/&3iCʹRNΤ^#ʙlUB ʯo(GF 1*WB d'B5OվwsƜddf~]@RQ}yCez8 $,)%5Vʓ''(*xi,D_Sf!* h~ fzafP,VKN8Ohwfe/,',O9j|9wVn)`T/(BxJ};Õ/|Kqvb\0==eէnr}݇;dWئlSt|[υc?}QWs?J.rlX'X13x ZT:ј֒:8.\z\$nyeƪ`R@[Tp׏aCJK`2py]lznPݜk8{2lŬ&"7D[f^;& ׀ɩu1Eya*̦XB˿kJVhz4*FA.PvSWq) I},Ԫ)2x,(qYk^sArM/qGcuAD-RΦFQʂm;LV_6ڏn2'{y4YYũᥔj-vǟ0H\2N|(pIٞ0' %N\'][qud溈-K`&^'X%WV5nvп9@[AVܿ}Z]6KJ$fKi*β\mE:^j# r#Stb.OܢzeHE~x1%(BPwxޖ'R=hrŤiǤ6"s[9_\ p1ow5S&Fy΄B ԋno\_kn-{ ]0nIϚ-"2~O_헡0HGaRS^OÈ,5brތ[Ug0MԞJ3ΑovOif>"`r}e񸢓fe/B=yW߰x_<&ȜHr(Lor6'hҹlĤj)bK} 8—:$ 2x;osi41 Vl.tRߐ$!V]*MeqB{1)we&{(^s(Ig}Ș݂<# !.hN}CIꠓ\#̷ĶCMBIx/^O{Wo82Mx|Q ',Wzxv1>8%0Q}` QtU-Dj(^$*ޕ_չ[pS9N?Cz$bXJd\QC87e\fVw`xZZFoތ. >wslCR`hCKVDoW8!4c^0wGtӺr> Yb.zָCbQ \ hBW{R`s\Ox^F5%Hv[UU 5d:uʞ/j4{la7ϫKr`tndG n*7Ą߆Lh#k&Q;&;O] Vʋk8NX[Nvu4i|nV Q®SS<0CKhWa5Zaf­,<,!$4(M-=>]t֍al"y}<Rb;<ԡ1TS2dɹn_H? q3CVBKmp*[79obfyI 5a="Ҡ9GIH*G_dZ2֗]WK9'LʮIxpف@g9HqJ9'!R*knbղ4| 5u^c۔&`6/[iFvļ,VǝpSƉ9Xesϭn'k/1 pLn857,l8#sIpر(G (ͶE+LݡɌi~r7#^&&oޖR"zDZB1]&F$#)[W}$vkcݴj/I7Į5{163n'D|:H3HXTs*⵸\cZk45E#{g9NC϶BԚ6`e=\ڷv0^8 $KAIL>:{0jZR"2 i Q: VU/$6Dc~wΞΪw\bB?{HY?7N3&<c!lޯKܞ4_${ɩ.lVj QN"HAWQ xP`.d |zW )ϏHҞ>6V7m?|Ȗ? *E)`x(Y:ܓIm# ?0L/rs|w-5H@,V۬YSg;V9 *`qY6/{! L!Pql7FΧaDN:0kd2}npr w2;z4yA2.Xκvt|aC}\ DR,V$*xhl^KƑb꩜,aIAap:z2C1?r}<],e%y$(s$d >' Q3ieF_D}I98`{/߶>ʼn97EBC*D<;g82ds7bG:&YLUF=7 ȋer%tr.au,Ozw+eӸF^u+ӘGẓΧY(U")u1`f=*hu rQpS ST̪e^b#ƌ 8nv56їtK\U.ahmm=Ͽ:l%ues?0\@\>nʍ,V⽛ W[ ]Ktys66‡l?WPߤ3B^=I4lt= U#zL<^GŃGHS\gO@;1^YNqwc6ۦsǥ2 ;xp^;Ѭ/Kc<,niD:F͓G_9NTBekʆ|X\k" R1Li5M5׵ s\gQҽ2t5tl< U& 0b&8 }S_e(X1) jmc!cjZ҅oq3j$P}DlܖӯCWUT2 j 9TؑeLi$[Z?`P{(v.3&Y߶"tCH i<.h{m;(?wBhL4[;qx})4vGVevL;P*nsLbcKplf!9/Mxq#jcc^+7QcAM B7y9aor~iI=/ x;4 Mfg08KlmCY1V,.(}1`~ = gw~@By(D4ͻ́HY݂a {c. ]=+jVmC CV=ɖAX&*f"aDjV*xylL##7ڡ*?3`v<4)i9෸0GjĘ5ZCzK]b ezg$FZ&\ Gˏ F%["̸k?vs5FΏ f)L#T%ֲ%em>R)IlWf\bƤ~'z7{-f0(gp=įUHզn`C(n50]J]xѵ[!@QAyy:1k)D(\)X9-Ń_ dOR۳ɭ^gj*iJ"Vԟ0l@Dc7KE,"Or]G<؆ujr(NVgS~,}>88 #^2I\_h}iwªΣ>hg) ۗc,A2ݖz&leQ)X@NS#gkxv +5{1Wa uwu ,MKrGh2[;ٌ臜w"YT2G(z`+M ^Zo;]Ӣ DCI0L ![ ;m7h9>}$/]60… p#;` yXgvvJAs2$ 6W%d̗4!|'~ ɤ=rH*#O廉Jxg@::V_9qW7l|"H?:k3pJt9}c'rwmW- >_%vdgg%T!Af`p )GʐV!6ˍi#ZޛO@ TV ڦh(gI7 } zI(QAvQ`}o>sv_$2s>;vEnനӆS/*Ovi'rXAMtAaĚRcNV Ŭ:G{xΛ?swMA鶡KU9.F)yEcibdl+JwvLn3{\!sUg-k%a8 |!Ćou H{l (- YT/G**hDВ~WҕA^tp/6!Yw=P I9+/UHO "]ߵRE# f褜/]4ߒ694t ]a/I*j$bNc'@i[x+rXk0t%OrIH\"#ob^C=`5/|m}r8 o\JtlLP-qW*鈟LV},=ɡ RF;Q Ʋln.V7V,.w{E,eۥ\gS$t&G跊b ǂ[e=DkڌVBHɎpTei5@{2P>gV ?!J`]!óR *,ĐP$b{xY!|>ѪC6Cɬ%jw6`-iŻt sg?5Qo=dvG%9 rO(z֕EH?߭G`DW^R>UZN@7 ,QiCGFCK_|Yɽr&椠AT* o\dz}~ P JU åtrwO&gs+ & r))l=%y ɍLIi^SD^[~(ӳg:.FQW?t /DsQݳ-+6d'ًuYŠn+yƃq}ޑO䛑l2Ǿj}I`Ne!ۅs_)KFوM@fV/%ƌFYX1QvnItJH-fm)%([l4(!~{ER,AձUv׏ZK|^ADp=XcEW0dx;0?]d0Ko`^?`3EvoR7BB$ ؙ#z _?i/pmп~BGEm}{MEZ|QXFM^a\qVs}v;Ʀ@I 'AQ">m }GpIpr/tL]NjP%6.&:Mu CEkQbVGc@J q]X(L!˨h€CNiۊ҆<&,0g Z.h]`OX 6ZN#ezZGc&'&G6Y>nD 8fMXz"(WǣxML}K@}f98r\%V􂗑wÞ6K1Gę~+91(MmH/>u4e q6\ѪUi`LgH;Zg@#RWLGR]Q&\H3`R:P8QJ[WZ)rd&_>wzsTT=JǜtoFmRAH)hxwETWŲmΙ,OVF:@FKxp>* NU{J/T/#Xڐ6x0~"mfAeoSȷ 'Pgޡ}p7߻M@UsiuZDs?֒;JỜG+sw2e}/[z2_KHU3 P'7z-,%2ݙz }B`MOGs" )~6A cXynn},Xi-[ \If.OLjι/K޸/tDlgsOp2[?GFx'%KBL t K38}hu-T*_QL7iT UUjH .[NΒ1i`qK3ײ*J ޱ/֙`+pnv/Q¡։#ߺ|' n~,!-y0T 81n=Z+.aIN61byxO˃axVuXc2W/ )±K9o؄XMDJ1@@<& '? a mI 0"Hf߮_#Eydǡ"fGHKK*(|:nv`1FEpJ{j{Ǘ3AO%vz )Aܝ0Lpx-z``Oi&)cYh޴]Gf] DJ+a/^W3 >#^Ɲ-ej7O&-MRs& ~TBP53'P@oqIz .cmъi7HQ<Z$WغA**ID/ C$j>RK| Mqy|*|CDB.g ϑ~l]0K01ߔ!rO0keBQwY)Oz 09EL8z2䰉=h|%{9@Jn3VhG϶ӥe_&WҜH$dV~Ώ>p@p:F *@+%~굔J#yAf4Qe/ o2k.PXZTxDP|/oh@`M ( zOlpNww߁\pt™zj+3_bf:bNBL~? ǔhJCL؞[,APEZ"k ݬ鞔o,Es;/sw"^-y} i7Jٙ>rRY+:Bԝc, 8`Nٞ24r:0޶(Mﵙ C~1 6{64WqeB8-D̐,yÛ>BL0v^iKV8c)8PmSyӀ91 }LV+.dڽb .yE 5Oq@t 1eH:0Nr>,~^ӣS0iOK@_ދv2a;ႌ2Me"E!Ru#߯PqV/|plfbNrcbz_@X'lP ˢx3L;ԇ}sjh^%82(ܘ#⴬v?7I ]bUZ?$,ў?hq1- WT<9ȶid#-BkS^O"./ ,W30 ˵㏨c#̽n=hJ?/MhSо EQli @68+iIW $!`Z2iP' gx8x/Q&N4&Xe^ 5{L@`y}fS1,xS03^%Έ[5_XC:_5C8H˶ъisy]I@݈' =37T{o;n |( H11#?2`JQ:[J=d}RV;0Wwb]3n?* u@y"psoD{S9@8xknk QQ\m36dx]W*RCk p@q3ߴf\w3p4՘ࡕɕ6"͊xlw &j Ҫ3Zn paYqx)Ltu s-[eWjM*!t\?#WY>[ͩPhnH||H #L3d>RU߬RAFbCpyѦAT''sչx !Y9%I޻T\Tdz^jaw[x`{AjBd(RW`K5I^%\ UFhOx X5sWͺާa_vZvǰ4n Q׊bheaa&/+\4qs"te q fO܊J#Hg͑c&Oe^dYFUlO0dv],f#f%Eeӡ zQ5Fl {`曞`^qv^"5O[橎`復nQ).r;3G[bz&Xe +4q;8+ m-P˞ g>;$`my@tH˘JM-# o vvg½TVYsv:DJmӣA 8%k=H$!'UՕ 0Cv:mypG`kZDJ ):@lQ )p xYf{{әB+RjIuj?`cҗ"~)$x]N{Dp[Hr?L[^7Ml}v$z/wZ"ѴJ9jl_H{d)-0Jѱ@fԨꎁiǰ; w+dI+z 8CYrJ }_r2=[M}Fۡ^JEQ0/uW}鶝s|:$غ.O4e58N;k 䢗).n3bWgnl<4^+T]`|**1cGTjZkw )nOnRf>ڮaZ$ԡNF j^?5}]H`B0dHCZ ]c }Ž UCOyҠ92惂;i{6zNA% l9tuDwdk/u1f91i~Os61MG@%cs<Ώ!߮lmϻ^2Fwco/IN&">YnZ}M5[#R?w#2i=x'j)p()dϪՎ>Ā8&͋h-(-d>E~y9^dqzl5h+cws+GQB gZV3pmܟɟ9 v6d+EMaxG;IEЦ^9t^/ kdSw7~>G%ucp*uI_V<-.@8oC,%loh  J35LanE\'%eV~ |( )L6]w,f6Ad&W2Lf-_&#G-/Y b>_QqEdv,\f YUj{ퟸBPS`ܛv0Q-UԸ0b!!VWHs>r-x_HvQ%GĠ F7Lq;!HOFgndc ⊂~':J6^k/>ayN*Y:Ƥhst{3 a}bgIDTB:z7 h`@7z[p[Ұ?/,wRpJq@ԟڻN6?s;W39!\=m7v4T7]կ"/=۴S5ix\XKQM4s\k/7NN߃@G+w S>~WM8*59A5=<-*) %dCc8v2HaӬ%< &v#-hq65u-)v6k|C 4k${0ZF6Z&CP a[!N%EyWQ8;C1gm^7 $ud^3?(Xԥөbř^B8Yp 6_4aOp׮0N V:FL%O樅郎}YvS Ǜ,i$ 7̷ Ґ`K%py@)YYˮDtYU,%Jj6Xly7|$&hB4BAGȍ}qUV<İ?$'Bo,XQ E.ìi:SjZ~Q?SvpW36LZW) e_acXJ AcNpoV=a8ܣȞ7aQ-o y\@7MwhH36xG1]i詬!FS (i [ Ĥ J7r%\wX(K5]yBh6ܗw 7Zbǀ 7kSlO38qMhN@](a?Ëz .|`8q +wSOY.߆$/'V ݪ] Bfi>Ql6趛iG!bBSo,d^OeTɿ9V'swFB=tkk)2lZ#uRkuiw P"!eG˭,~U-iT}țvp"t;?e6}Hz~(L%0<_)Oz1[X*a z?8.XUKl .[wu<@LV͹vl7?!.oI3DnmhA4 # tqhxƁ *(k Dplt ~U@ =覮hOF;IɹNB/ 3hPJrzXYM6z{;QcIMHg>Ѯ_!$ R"|#q4apRPcY1?Ă6.4y[>Rt:շC(2;C)< "a_A&~ ;UX;Ai>=/xƴڤu& ` ꏲC׊VW&F掖dR;w C]e«=;5pEs{V 1yY QZlߺ#{6Q/57;{%\k6mU[5HWCu'X֮=-ڠk]\!`֮ؕt za> y`(%y~՜7G1bcl/;Q.ɿ;a @Ϊua]q!!S![8 *ED꧰OZ ͱX/l+9ܓ}̬T<.,.ªfiatbqw*, T@5Z[G4P{j?a{deyM{% %+ 'ȕ7*fCS7w^?|[=A ەےrHqc$஫8s?[;J0?R ?Y~,G \=J́\ȍ4D&(̶ A\^Ma3 @y [:ip>t->nte+}<ܠY/Qlae{Q6'(GjU{Wv:rj+jlY`w9-]FSa_޲@aq}=U5tzL#frl&~mcqhz?jB:H#28NĚz[Bc*6f},!,Ҍ(JǃkRuaa#9V'4Ż_qi9P4-X~zk_Px:Wv 3iiR5` 0ۻräԦIvBj EO׵2w3=E>NoIβ!ePW5P|pIcui-O3P(Ĕ'oαf|u"_cWo֗&ВVl$="qi{MGW(*3Nϳ[%dgו{K0[ fC }?Sx( ^F 6ڡ*IjwNW!M!x'q7enNMS %6k~DggK5` eV;~yJԻnћ7caMso|̲) _%{!r*QA9 Y{m^[ 'HfyL+7br\e`= /D8`V1l1׵rWa}pzk =2{gkiS;sFO)H۩FP]qs>~+EӴ4cF'm`5ng'$ Yd{VյAiA?\5 >ODiM8A ˍPW2 iݔ üy>Bj?nca++?f@ž7 辔Ĉx,bnslk s\u} œQ"@+@JSw/߉UXgu2;blRqغbSJ,8*ع]>4Sڽ^\CVx#/}fQJW, hHDCLr@+jrm;,"YR9gM%D;m -Fބ2GJXImU(I]XajA4hDհOA ػUaDTI`>ᦠeO%|J$sΓ_G}iTdMXYX512xi>fL$c~S%<=a_y_YKe!ٌӆ,8]3)pr{YVUKGi+6H}tJ lsEỖW]NDpo :F@0Ω!ˑO\R]Ԭ|E+:-9_q|Iܞvϝb*KZK(X fJU#APb?O )dɄ TtVHf &@&25ʹKIR@8j%Lĩa5WŇI%3r.%ój 6(/%o"yw.550=5cs~]s#K; sT)-(3Z!TO1R9 \c uG̹UQvK^}8Yb0Yl!ҾzqsM S< O W@ְ\BC[k1ZD`+=USغ*|󵔍^zmD@)Pb7lo6j:KjL"Hᇲ0uwʰ Oα]#Ԭ^'~y LP2=׺ǂtҧH5GlB-l2#FAew˲$\vgz!-J1m|Ko JoN!N[Mf{%'?CGX-juёV ia$=Q3ks%ʅO.q6&~BjuMefܠĜf U qq{<Vsȃ9h`d&gMc􁻛νpC`SrmW @^,Q* vPW+=fe'} h^Bf9@oJj/ڨf]/m>ϛ6^s[Ŧcgh0~߯+36J 7#݋ Wvx{c#A!_v ꅏ`@bY{ʗQ1B[>񹲌$jq%g'yC^HHZ\ѡKGR|(BʚT yl-_FE귳+?ٙɱ ^JgiŐ z1cvی='u m\»@X[ T}(7$NgׅWBJЁQtBǍr 1eT%uOo«FAfAњ?ZX9= "KK]l {y us| !qO>D_Wz;$e`Wm+87(jJP٨HJFC-mVf^-ǁchs1?}|c9rPvU2m̾|);eO_m+z=)UxPpk;|kA}ib^U$VD Ty 7Z5<7o8vE:3سBo]4TZZ$oV >h,NlZl85Qmx[c8kYF".Z/S9pߑiHs<?&Z5^utqKv!753wzQc+mF'͒ WYvJCu# sb_+-seomwV#TFV/{$*qL"(KE}/:Y;eѲX$>TЕ@W#nFg3#Ma53%uz&'bjJj8⿫Pw?ۗP4JWW k}LBL? `Y᲏+hXo4K*hF`eDXJM݈F\BFdg?͓V7nN`e()t\?q l3A`K֗:튀PAz¬#Kkdb% 6Kf.N bU^GUs&AGQ˚؊mYYc#0Ӧpȴ}G/0ɧ˓.=?˫=AI3''?{~Л^dCs<<'+/2VR0 '7TҤFɬ[CoO&'v̯] [c^+S@F2rϗlܽ#V1ҡjnd=wOQ UJ%@ՑZ+꾼w`=G2bVkycFu#,JgcX^ NF&am~ }7 3ja&Ğ_(Z[Nۣ΍uպ,=P~r쉆E(WgSǭlo46WJuJC!(1ܙ+>K]Zq|rщXKX|-rIGz<קlv4^%*(Klz$}T$pUr7ZzR2:ry.لk]9Ȥ_7|Rǚe#v%aldc(҉*/?6{=,wZkXRzdžZOhs~e\'t~ ǕJw {*,f%b5V@jhfAY,89tTv8Q4 ,}ɜn7@ @qtY0Rt^oĶ"W**D;N:v1a<׍'n [|}Pժ:kS6RnXu8@r2ס"j8 *-3XfΠ=/t X W㯲Zd8;dӛ]{QGg<5"fjc^7g*U~ W/Z5FɔPF0=]:XE(`4o"y*wXgiV4# G'8/>6DMg66.{'> t/YY*W}@L3Ѡw?2'YA-xqm8D#VJ0y']04 RQ$iv)Pd様/;*?p0nlU( .F%XC NU"*#~",/nE߬)sDt%so3go638[Bq{Ft] G#;cPl[){. f$Ȏ៶MqyLp〿6;lf͑ 7YU8v>svFĶa^(=:ӅNbT5rYGr 8JP2.Vmbpp'^ QSA&RqH(?8-F铼_ qTV]B0SA1ڻ6i|%.HQzv`ׯ`8Y Z࡛fy[E 7KIQ9~)]Yy1kr)<ghF`~H}QPH/)i 'ι(v}JDLEVtv ;NӊB<|aU1F)8=\<\BUm @CŸ#{8d)h\D5?`|]O%&X;oc n95^ZbX+xL:يO[[6c00Vj[q-bw~ca\h2]4j*|~ Bfۻ7TVh3狪·Y!)Y(OfmsAF,^l!ym郛S;8#WBJsy;,3By/[3P߉kfz؊~&qtzl+I,_f#YO: 5tE"{xQ&qE YEar[ED9bܼBǣݳFs/ÃX:}/18qA"5D:v|q7]NN62OM^F"b6 #;%=w˩ϐn1Z[6&o HeKA_#W֢a lT ߘpJknKEigD0]ub| T}'ԟH:\K̵gZ6 8j"^P̰hybGŸ苇MW/v}- <;'DkܝԊobڃ2L(dҬPMsvv+^❉tĚSc/@2p1A*NVAy&A6?uf"UE,ip7rE}٫?pnJ uս;Ϛ>j/sZ^AxY 5t|?\ȪqV^\E-R5ala`W&L.ho!dMou~Y:oc[WX'OsQ2 :i0ph>S =Y"PqeD/Q_qHgikh 1>3TdZK]Ss 8|#&Hhh9@͖`|b%A&צ̃UxaZS$LmQc;Om9%D'DFhn8kP2Ǝ}z^H\K/(LǪzZCu40W o̷;ET.Ocρ T LGU4 3&/m$HIUbHAǾu#:}:! mDžuӁD,j:nN*g6lw)\TxA{>>4y_mUH[Վ;zn$Q  ?uN?47٤J&*j?<&>Μ6 Z&l|u0Vv|pÈ$C#ѳ32Zߏ/y/De ɬ4<ɸ 4Ueʘ87`lN M |I:zM ofcj,k?_~-9!>"!9as6J(7MM o .߃wW57վ&NJa'%@e+}aF8:v#B=bʇeH]Hj ټ0&He§HerY,U7%y]鞍TI.,'Wu҅tyQeo9ʿi!g 3kA W Xt|8m(p RS#wyʁexNhi|ϾH..#Ȩj9y$ Bbwx{V'לMuWRN!صWl1Ǐ~?*Gj;Ҕ<(J̤9W^D<k12«~]4dFuIӖ׶2Hu>!9moA{`~-Br "^ң?;p9mEfX+ hl^j`]XT$hC+jݟ)SfE|'pU^ħM(E\ @JQ;ժt9v1| 1kJ%A4v?XYS&uhytIM ]!X ~PgcH7[X39.[SK RzVN @1HY3ɊhU*),I=?~PQM@v0LX'"ó]'J\Ւtگʭعϻ֘/,wz+5C|`*i)*V|1u\}i'B|n7ሤ=oUg-j)Op"ةڂ{DolOw*TJdy8{컠qh 9˸؛in*ϩum^vR.t%FyP豯jx|J(Y ]xF: 3?u,+plᦩ W]raI퓈\T J8Xj}*9 ǽ~ʦfrzŬ\@0TZ̅+1#@H+ƌVi5|FqR1"Xpa#>b~cS A!<"LX s`:΀qk[RΒO!yM6uH >,sv^f8 {`\еIBzg!69| -ZoWk=X0Ew Gn}e 8SL*dש?Pя@n ; ADVB$xagX5Diah {ǤͽAAPDJ9jTʱd^y@]S"@Y퉀wpn%bSHcWo._:$_>UhkPXU10hڹk E}肈(@[XbK`5fN4l9 Ima|{;'~D趏:Jmώ+?>`KӘ#&5]Ǐ69XYI! ZGdEW!+x_Lc6CZެ WihIO䲡261/nz07X9_7V8Xr^N8-mUHUvcl1h$]rI_HPxʪ+ r9(N(^k쳂Y1ٔB~11p(,%pU*Z>r\xT[5_~w) WUxVT_7z {km09"d&L j&wٖ=8)`o\ @afcOSPS|`B a `XOtIDulRh2as(|y;GM364Cqƍ5T:$*-=JJs_5\ ^CaS][DgG2CH YoZ5~OF>O#tbE0XʒO9}"sajky|t*$clq'iA3+åu撝WHFDCS`0ߖ,qG95ܘ]Cgp / mFk.u(4gWթB  5^*yuz,kVyRσQ(<नV=(&!e6e'#iu[]XǩuxvR#S]eA$lFvNsˇFET@i+,` W.%EM1u0K5.$2np0cBJN>Ŷ'M[FyyKlAtgN@utc P9FڻѬ}ZJFfyLMp;5gsW KwABr5Wv3iSrr|14e$"+"0{]FEYiaza~3UWh7=Q/4Bk>O^#cNHY}`]= &'-d$ғb]Xv$LںET{[f4:XBT0 -rmⅳ 5z0炭 .^pznD [ u-P!pږni!9 ۀG+n&;8eWŦ֌`q{A;Lhq]G/5p_9uyat?Hպ5'{&K^v5`zc=fT01n8VDy&ƕȧ?nyH!JW`٬aOJ¾)BI!Aac--XIb>qOKt{)MYŒg a[)xQt16q C&sY9V c+{@$16ŘfG4 {N3X}edLaו' wfMnWKsM, &l_Cf}w~U+ԛrtvE8xސ6b䮅| S/\Q!9-ݩtw]a/Lg5|r4 ;ZfktH4t<Ա:,">uzO BS*s 澹h.i^U mR>8lq/ t>tDZ[E/acJ ,!ѥ,6Vd{H):/~u( [WFie~LL[[h߀CeeM$2xFa"9EOUh~x?uZÿ =hL.eUb6.`.e13ڮLY?eҡENȽɐ*Q |*48 rW #8jh~A S@l<߳8#ߐ# ƦQD2Rs|o SNV8ncluU dǕʃ~d0 98#@dbἨ6'ORB]&V3 /]+ʿL1mb\^ sz;4B 5|D28oZ>/1pYvTT~Ҁ n+IJ]ބg0Os6-qێ( #w.i5|'ybUm"17'<V(J0Aq-rRN&])&F;.8>%𮜱:BcsYQj"kM̍x&! 1̰n9Wt+ByE"T QҺ`#)LGIEp()_W;Qr,f; : m:䎇3uL|;trj/ؘkŚlj|QO2xӾ#kDUWOܧj3yE+gu^ #f7Cor[N}-~|L #<(yJ-j-X_l3UPCYwD멊" 5zz|K}5W$_!H9O}L IDHkxU?`6Ó"%C ^bb͎w%d`b؍װGq߭# R{rEx=E<9i3AC2°rcqf5'yF|0=]CC“1}H~Bܡ#2N'OEH{3Rf9`={r.i l>"u-B%hO톕׿WT dBFcxt"༔8F67޺GMX3 @s(B $ (ޡ<W!\*2ҪߒZ{xKN^try/d@ 2sLJّ سTJ Vἠtϣ;mL|Ԁw}{}8?X"qLav+J/q-"Κ{A{M 87ش(d6#PeDMyBi26'sߡ'a 4ofa.l>fPp&(h+'!ኗz 7"3j6,/q(ctĕ칁Y+*b>QYO\|ÆL8 Ԇ8?n{G^T8`X zXN C|/Z1tF'K?s*mb|yk\gDP?艋_A(&ԲJ7|WJ6yŶxB%B? 0y:\q> t\M?QoO?h)A]k \&`=8G*+~ܮMSn,r˚B3YS^**9r8]=CC2aɤ]ߞXjq"fs8*PiBm+k;2wCQ'ړh_JD`2^@d_/pr=eJo q`%+Ř$lK9oq]0 bWl0mIo8U+q+J# %_A~ˠGhOyʹxY%hc7|3lVY6Y ,)mNL,3GmQ26Dg+uJ+G{*@7I^ItuqS"EY ":Cuoa]zKѐKL?Lӳ B+=R g wQv ]@KFm=J]q|:ňi)/7&;A$U.OAWwZ@kZw0i/{KݲLavc57.107.100B 8ABxVsER/Wee廢D[0CyS,RJA9"*OAO/LN uhT?W]:-~WD:I>."qqZɖ?tnGT klė֍2&h5FvVh/.d,D :Ɋ9Mh\YC3<%cƵ4I5qGm9F#N< [I=YJf$/VmF^R좲`_wch- ya_9SE`NuDFbjܖ3bAX%~V.šXF5uOiv愘K$uuwUtD{|7&@*]v5op+3@5ɔ7' ϰ G)YsnW{w:D KPgxټL|(l4"4. ,>hr`<^UhT\N׊ƘA!`!` atW2.};"ZQMlVļSՉA!Tgz $̇rkAG.0$h\`AǙQw9LYٌ["|r" q-f}Umċ |H8FP2R둉"^?@P~+ K]C*Uh!T #U 8Oܾq& #Ȇ^]"0܎*,;oqjGњp!`!`qcjWļlR-JR@(q2ZܹaZ7! {pJ|)u#ⶌ9]wĈ ɷ,y_ρ!` AhIAhLO~tcN鏞qŐt:;O`O!ʐN(^_wc;:&PԬ32] B JZ$3[|'o0yU~LP.f7GzD0ZPP}}L|;4˯|Lr}yR7*FaF=|s&X ]E<鯰$`ʻk,xx\(@NZٞ~*}G#R7$(2EwSͅ\LEF:?CQIMe SI؅7e#pS\a>]U dDz$xh¶F1?(L~T ھwnq?s҅C4 NQ(jD+/R[Pꖀ%\DMu8Sy!Wp,︲TWX~1I*;Qsjf__bdZڏ$R\.LTQ@=X\Y/XնSws&ECBP^um`϶a[/pO5eX:(%*+c|.Um+WkRqϗ[e )Z<=[YVb?lՙj\HR],(z½ X٧A?&((M # ^\|AN#MfI^BD3 ob e 9kO4!gA-! nR37RRs3ED k˪"Z󯿌a#1ZT-gW+@ߪeo3DAλz:)Neʾ;~l˪u_oq2F㢛'W*9 5 :lr0.G-jx•<䁶!5. ɠw9[v︷6{f00d- ü.a&)Q߻jhқ;?Mp;鉊⨋<ۺgԙ[C%F;1ajS+ң27/uԶQ_ g*ztsF0BMlz2[^LiGW=pM B=iYl$btn}E) Ǝ i82*Jf@ 8D{%rOk}AfK$T I).=:SuMF%N's+ZIc„AdJF& Hz%^DhAƓj :ă"=ْe[!2XZytzdWuAzf\W[!nV[RS@/)2eDIUz4H/cCܶm71G Xmyv2 +}: E6{ۚ"qr(Ez;k8*m\WWtU7׈5$B@;Vq |ĠJZw`6|W&"i$økJӯ7o!Vs2a A'׳en)?"}A <6SVNuHJ8@%N>(F:&@(4םB(O5!ɇgWXe5Ђ@%QhiXas tXJZ ZR|MTJ t<+sdT#DǙ HzP p؝^LPh⮮^;oj@ WO}RN?cwJ{pT  l~y| +)LSm+믶};d7P4.C}EɗqӚD;/ LCֈZX L/ 8 4nSpޠcqUN\<{[YPe} 6%iNs9| SjÞLWn^b隭oo!`!`%AE->nmU%c"\|"@8'u3BXR{mN}ęڛ&*Dz7D¶Q1C0d!H։p@T ;^?5~lȠFqu&&d!ia<:"5onAe7$BG0B'sQj;)Aܟ(ErEyɂOU~g,6>ʊ`m'ڋ]Vsf;.jl]PϧZrc?NOw7ּ֞;ɺ{<w> #u!`tW39LSj;@ߖj,BgXiŲCЭA8Js $ K@dU7fZ[\}_aިES{NoK5V S_!`!`=jW@(ڮh@o1j !`cAIAlLOHZW?-9o[RKcӬK8ԏ .gL :zdGi1cܳ.D5ٲXV/C@h$g1&Bc5m?UZ~ojĴXKUa@oRT2>frnO.,R*PQnή=!<%aАK&%rVd+bLpa~]R0R[H!Ez? w4񧖣6IT,)d9]}ebk;#apxW/W")y(ӡJ^j1%/ڔdtLC`/<ٴIo UZZ=]skh!n4 'u5h'+)IPH[v~]C|4!TpYBh?÷^ىEkW0?dgƧv!h 0fvVc_B)+ܶZ]^y Jۙ@-[` %fUGc9e7jbɒxP/I|@#/󑜧qs^yХ~_"ZhBm!z͆80,gNKZܔc< 49sgh.%[35W[`UƢFc+/)/]Bp%1HL`'1Bw;^,7ٶGsa}mƝB*x(#D^3*QW=CnxY7l`jx/{t}t\zqs ?h0>%%C~QMiakQMc.}DOV ^QX_/va{1t9 ģ|3~,6 ocQ!&6wOw_<~`_4,I*Vq.dΣ7WPa_V%#Z9ͭ  7Zb:*d~qQJ控fnm1y{H 5 B5$ꈮF]Ɓe-Q} Sްx9͝(O߈J C F6d-0T (G=yF8[ʽ?:hFQת[=)K"p?/"UMae]U 7jp̦-tv%r* GT$O$R;b$Sns."]~hSB,* DB%MFƏgJv" wYws1!-?Y'8| $:o5#J->7wyKK}xctf*j-H0H%/;;sYz , ZóyoхM8ʜN={cMEvڮ0L]"ѴדPG?/؈MWt݁z˂Fn>V>:=İ^Qv -B>QF*/5,7+\#):ӱ#fBp% "(\F[]SO O{:\u ;GfnGJeeWeZ=Q2*na}C| !`!`AE-<&o:D&N7wSx%cMIsO2"#E $(),ª_mAʵn=@ỳq6L4I_w}_:6?Jwy#!`AjWڪs0 e@B~|TYU}5#2҃xxfj^g6XV^82%Ϝ"dKa !|[[?R}f8 cۼ`L}[΄H0Y'8@CCڹ7 ai(rmd!r~8a,gBO"*]0#ٛ~ D:tb ,I:I,TnW@z|Ѐr'(-M]%yƏy$ vdHVْcKBKaEqxAs;0~/ֹWlyE(P1=wAK3//ZGe41MPcRq)ZOf2>9 Ԇq. HNhy(lfhGTk kx)]a ~;/Ìziۇjkͻ!8M!}di-`-6e!X(8[Ry&mƳ7SS˵hMO0Bܝ%t6A͋&Ÿ%XҰLWB#ApQ-ƧCTTO>@/#@65?GHPFzzHI"fБ%̤6##߼}I_[Z\@~Ni͊ l!0uӮzR_U{*Q8)9 f47FHLT.U$k16WPvx^nN|S_\_ȅd؊KJ \qh[&S;@+[Wnq[Kh`FyC< \yd1+{ӳ+mW?P5X9wټ pʙ +EK ˾șg[]I֏5~öeLa}%EYs$|a3(lRSw_վZmENځ% II1%Iq=.ecWdă՚vP|e?ԧ5N@8NI( 4O&R(:9љIM06Ͼ#/l} [kF+7y~~'Y?/։4\ZGo*1\!VS\]Y@iqw%5+fse~vJa,0#K)Klg|T3jъDU,B#P>~(qSMP|#2#SR]qiM<+ β=љs!+`{,YHt]u]~k=@[}-ou0n3]?׋d,bTJJOd8|dW^kCkT Yzk&j|1P,sF/{VAqb>b&M`dv!k[RU-A+S4NR[QMֺ914[jFe)J97yȎЍfis-/;?=8Xoѫ_؝i3#?k=Qk=pfB"lD'Th$RxIU>>']-h,!Ңlg'qQcRJ\ d!yrt!`!`ARE-JZ fv׹ Ƅp^;x'-< "ߡzsjyrK\!aw+}Egx/!^4te^(yv"-b "*y[2&C y*d=ϯr)2yh!`>qtW"\2ǝG#CU]@-@j4!`!`<sjW@#c_X6 0|116`!`AxIAlLOHXV'E! Ӻ ='h[v%xhÑ܁N>uƆɛ{ A7j!l:nLdoBDsLCgf}uNSK߅G9ڿ"yuu7 d{jM NLbY|X1AUK>#r#xt)bBq٦7ulc{W,k16gOuʥJBX`׺P7J nQ[D^Ҙu3n& `\Y}놳R1@ԫY:|&?o/$&}:B=1$mQ/VQ^9"X~j%NDE_3ո*dQ%%Y]&gԍȮY9G+<_MȊ,##F4sɄ~]mqIf c,;s;)ւ/*[OZ%I2Gbv1΂ wWNlt)$Nk츰߆ϔ.5nR&5/T;[cpo`*od-{*Mr"t7ncJ}HeR{XM9aK4k74[?v䝉=(Q;?ϡ]jE\*xzhbO{Ac&dasa]/A2sð|uˮ!Po)b9D>؊#Av:L؂}k(Zv~A )hlulyg" ˜PAmnT7X`f0lt?A飁؟0vb. t?N5 R:n|HjsÇP`Kgs^!# Ln րgI!`!`AE-JQvX4|+$,|8`3@)r 1H @OO A/Y3ﲯEi0w)+Əkm?"4xM͓Nmao@ b >uqMzN#vX0OJ\_NEV ud̴ădɒ~c>,!NH.q~n^"ME^:3FZ'Ɇx߱Pb/YPBdLÅ*v\zsTq?"t~aQ3$-ϦsMʹYX1(tmdz"I"]3lX; no 2X0b./22''uLH{@?'^-@/utQọ\]sbӯK874{m8zPBt 3fW k!"h6}xŠ*ZC/lW$dWɱ´Q)e 7{ ֥NgZnB%k ;Y\޿CGnd!`!`AE-J޼ (z 4"#eAD3p>.}Pyz e̿З"`LG| EHD PR&*Z(gu_!`!`9tW"\2ǝř"Š Hr !`;jW@#c'-f`MA5!!`!`AIAlLOHXV'E! Ӻ ='h[v%xhÑ܁N>5F艄r }-v7f 2[@ȡt#=D|1BsˈKUs9]e餩Agm@0-Vj_y>ӡRPt H',M*;S ViLm%UJlBn#svF }/R0/߶%/5w٣ 2q 9ywx#ɛ^pıĻ\Ms}^8M@Y?-ɸwL"+:^r}ݤP8T*fqғ8΃jg 6(7H"]?;:a@I2Zڼc0iUL%hz(}E+ s9=B^x应gXx`_6Ll5,:z䝄ic i[g׽N;Dl,6޴^=պ!ԟ7$9MqPViY"sA-*T3ŌLw@{( VTqKSO̦hbϓPF#qv}ޢ;l=Lת@t#;03cliS? |/dMcy1] nLխ')4ne!`!`A=tW*'Lv8$8X`0)pz!`9?jW@#c'-f`Q*;!`!`A$IAlLOHZj_/,VwӾgial}0{ҵN>vu0OJ\_NEV uPd̴d S&K3TNWl3S=jZqSOѩg@H)p6pĝ/ thZN߃uSy DT[)#Y* qXQMXwKHq̓)@U<(dVtMz8OHgkʼ:m#aMlZPñloahWuKϾ(ձ\L2oFIW̦mF#~x'pvX` 'Z)%VFٗ'F);*qPI2qhb2CT|VX]qit0ɿ4N @P\ќLob1,?Kz65T29M7Ia62|ۅcacԆzgntikˍ/>a˙.ж@ƭ|%Y,Te_]dS͹=ݫwC䖖H>{KNXs^n6ZUγ$4DNC]ħehX3P ZvhON( lzx7ulF$Wh^_@Q]P4Pd t{w#?7)<Ճjup:U}*z@qH9܃v _Azo=fHК)"1^7e9}Qfvn)ux2|Vf{0fxL^q[_$Td*QQ()cك-̰ r|kzГX?.s"huW-DC0e9+1kT@, mTX.3GjQ]c*UhU/$n.Xzi BQ.Sk!gSz|PD E.74g"J&!`!`ABE-J޼ ({i3xVR;'S,wGWh98#W-{zgd^v< pWL~A)"zd7 4u 41-h9Fd0'!`FatW)y'֠(3k0^@\@!`!`;cjW7>Gg P H`A!`WAhIAlLOHXV'E! Ӻ ='h[v%xhÑ܁N>X13-B$Y>/vAE8w(=#Re98 C[Xrՠ>z^zrԀsI:jh2ֹw +e 2(]f#O6q[ 549g19*)F:RgYLQu^?0LU/- O|u| #ZEi"7QHŒZg$O|G*L uUteP\6rz~f6g<;3 ڔ1"ueu\5D'7FrŢ02 Mu"7tX*/@=E-8g=`&cj+vh1,$&^!`EtW'9'LO<@h0)vPBb 2BB22  s*!`!`EjW2w> y Y AFj`|3%H +V!`AIAlLOHZj_/,VwӾgial}0{ҵN>z5F QTY2o 64@YŴK똖 `ρ0mBܓwǙve4%߳3 f1 NF}FA-R@Sg6{]bUS G8{eh}Zrq(i4 AAb޽i0Sd^Tc=5|d+6 r8fBݏ'O 愽JR(b0ܜ\IVRyJowmۄ >WAAiM {/pm&)8ѶLTk ca^OJ84n=1sY<X4)v. 75L&[{Q Z cc(Ekh3#ZgoJ?6R3r,M <71us0!/7l!TퟣkSQB^M# gKQ9g$TT"QNb@](d_p*ev3wmUkyT/!FdGhV XakbsRѱR7%Tr$\`C[~ L:a$2:vC_ۨSܺY80hzƂ;)qON߬F+v4R&DXMi9)r_:4/e.f;Vfcې[.[ݔd\ʏQF ] D`KiA W+Ig#tF IDy =94$So߼ E齋l:pH"<QQn` B1iJi`xlРG䄖:A* H+>gYT/`/zB 0-1(7\/`d{9Twqs*9ÏP-xCǽVeɈOmкƓ@)1!&Vkxcn&;n(qUYЅٻ vT:) e,w^CÙq2[ Nx)R2renf/ <7B(2 8-lJ)sFYeE+Uu13-B$Y>/vAE8w(=#Rm9ea=*ĒHߨ`^$sS~r}eP0ܱB.DSI,XrV=?Me$=d?AI)'Ŏ[UL=$|WۻVtxLJТY]޳qᯉ&  `'/҄Fq_V54zR%Ȥ1)W rIiʇxa :}}KYӦЦzߥs[BYV[{!!˞O([H.`ivDϓ w)_޽w4k7XIʰpW5ϲ9~[" 8>_}+6aސZD:hdr3 q3l;{m'+Q^X D4Ym^9FWpM(sz<tXc S!m^/-BZC` @KTYrc,h6=w2(fTqB0("2Le\s L)9XOHE$lq=ww:7), ar4(Ti2/)z{?ZTbO؋¾+>ZK5lɋtHȠrGWM>tS ~ |j|pj?gp)XDkPx9ičN=!`AE-JQvX3{p(q@@zBx9}tPoSVcZ ciеХ;A ֓+0}4ZfuH"bf7it=!`!`;-tW&hպi9?pQ]d1!`9/jW@#cPp+#!=Z!`!`HA4IAlLOHZj_/,VwӾgial}0{ҵN>vX0OJ\_NEV uPd̴d S&K3TNSеPeoaD?G c'8k+ z{.+'Zɻ/t\Pxj BA^d[lV aC.?(t-qo&̃zM(i$!KEQ )Յg%xvrPp֦P2qSSqQ-fP}MWr,xf8$hUn7|jfؐHx5 4c CzA@i(lyp10nNo%c$J Ψʰl1#%"rM3+S{MTr[Jh1MB3g<`"5s"aH(UQCu`/Cml&ܘ3k{iI\G#GyŴ>T>n13z(g:mVK7"&,4LٵO*-r,t>;X:m"}FSt1f! [+UFb%L(!`!`ARE-J޼ ( +ib9 ~R R] SeБ;sh (qxoAf XUԀ1x/ | a~. 7q#Rс!`:qtW"\2ǝ (% B!`!`;sjW@#c)AjHB*`!`AxIAlLOHXV'E! Ӻ ='h[v%xhÑ܁N>5F艄r }-v7f 2[@ȡt#=D|1P"sˈKUs9]e餩Agm@0-Vf/N)_j-ӛP 3#a^Oz[c5<3u)SqOGf?q`<׳=N{'NPo&BooORuG"7Ok)/,)ʿKfô8MMy۽DGZ۳0 3:@PB<L1wqŧk)C@?c n؊!^ 6hf^Uߚ.j.pW(KAϊhD[Zv6䋾ELI=YWV!!"T DqQo"А9?;jh'=4_~qՉֆԈGSyy/zSrc^˘ܲ ciD\r7ۄ"H@Erk;,5R q!5!<|8DŽPp~x`M Q;.#Ot4bgM^#VZ lAf#{mU8I$>is}Nq0B zᨃHQVӕ'9]L'H ky}B`Y320͠Mnlct~o>6)o5TJT [;ՆiY9v`{Z)z}urZ@p8VqOrêbE!`!`AE-JQvX40;?˷%eKHNTyi='ykK.Qx?gIBo:?S˝܉H~h+a[P<ð@H{π4 S:Bf !`9tW"\2ǝ (% ZK!`!`AjW$@@xD,Ω}}DtKY&oHƀT !`!`AIAlLOHZj_/,VwӾgial}0{ҵN>vu0OJ\_NEV ud̴d S&K3TNb[ l2Vlyϫ}Ud9(9(s:  l_Ar.# 25^t=$N!q3ammDG+"- s64U̚T!3uWRxem乐L|= alp,COidt  riBu:QhF`ZkB$f $YspHDTqݒĎj )0%ݠNj6H#H7σOՓM\x&ݦ[:\.arFh@M@,n0Ξ܇p <+bU".:V+~@ǘ W9G>>dJ{59.^ $Ex !$TAГ<E%oMRׇb;AD ej7:ըuz*ӽ&lb}H+"}P ,TBG</U[߉ϭ~gw%WbhuVORg NBJw*dvzx&wIpR۴NH~8(qg8xN|L &VF?aިݘF;x S(+}6=%, .o|KR' \OgG !'B0U͹5!`AE-J޼ (EXaߑK7q!`!`=tWLuŽ7Uۨ^mM+`!`FjW#@@xDg!bMKڛ| Xl@b_! 0oA!1!`!`AIAlLOHXV'E! Ӻ ='h[v%xhÑ܁N>X13-B$Y>/vAE8w(=#RloMy^KiYdQ(qI yP6_`D~V٤șN𓋣svX^REq-WeY+ܥZ;wo형vrwϽ?JPg.Ou%y$%tV}QiLN:],87SQ!yݼ jeA}o+c/N%b?)rUH#O'؎z݋#y=@ϩǐ<JGDy5,7Wo],yJ 2؈@SHD=鄃αM$hpn9m $řeynEz^z>B۹(qDр{+[!߀ԯXr2v^Rqtxbnl!- Dtx'N(ڄb_>8dh9 0rM9\eK _h@BJŴKMיeMd"{Av%;^§{Hh0ktud3^M|a'O7/L++g R,!ֆ8(PY4_amHv0S )_":=+?lo)_h|y>ܡ/鷳os,p9=~Ř]-4qM9>+jZM9bC&#ܦ9{U8*x ' Y5r<4Ce>Wv6 3=UB M0-Hu10-uɱҷyX"2ȋmIGcá+ q=h~ŵjaPy<\4% @O(qE)Yy1C-:)] zJ$  &OU+ ͤiiX+J 2#/?W(%A5f0j !\1pj:eL(tfiAMbɅ]ii兙 9L0VE F-ֹ;~\$dWqugK x--s Qz`rRVoA !`AE-JQvX4w)0"L9irP+w =7v /[x[&g*g!0dF] 2e@s]g}M!`!`:=tW"B-JDdX H !`C?jW!@@x +O}S fQ3@c0z5F QTY2o 64@ZK똖 `ρ0mI!$;EcMڱڛ+O NK`;n&.o 1p|[Ld2ϛ8tШ`zDE̢.gGe晰ʩ[lo$IzoNc.Usx\ղ! a1G-u6ze%M9IkX4bd*<z Jxo$#^0cC~(Fo;p [u2qA1vR"\KD#mêyș$iG$'SRx0Jko/#,8WaOW&bmfb~СI%$bʡϒan 2fbw>h8:IńUХmnE( gq]n r(sJcTXRQI#kԔ kmCo8ϒW8 ^ ɷrjWW8Tgfa!?)nc:"b_ߘr+*h*bmIm-4&o~UFx&/96*}{5Wh&=K$VP+gڔQXbd8PA#D[Meb y 5 6 5"Awj] :.gG׷-@ H!`!`;cjWp  )`Y*D@ !`AhIAlLOHXV'E! Ӻ ='h[v%xhÑ܁N>u13-B$Y>/vAE8w(=#Re9vX0OJ\_NEV ud̴qç(iܚjg$ji9RYځfx鿼R;1>^Eh[}v)^FO@9{0)͌Ėz";P ܃a0S'$`=${3}a/Rb^!:C7?lV[e3Sam|/7<^Ls)7cthJJ%:Tn~ȇΓk(bPLvK&(\⯦$O{5 BGʬwL3G%s8z[?w 'I{ЉiOO3 $|{"E+xvC x*C ['~G+`T+&q"_Y T҅y&DFdAni_B*R9ziY&;PfN_&RC͉oYorxm<}rie(3A^m-lCF[#u< ÖrP⒑[vL|tE>mɠ'NjN NIl0ngP`6 -m NEn6a0ꂠ| ZXWh{WurA" ЬKzM%#^Pb5PP}6ssd %ۗ 5iS'ښ=W&5rǺpgbڊZ#37ppd-)*U#rs_!`AE-J޼ (HӖ{gJZ/ `m5EqCGXD{%!UbF,vYyRძδ@dpbMBԄ1x/ }b~F.z"FWqoRP!`!`:tW4X 9B-JDdXs$`9 N!`;jWdc] z]t/`!`!`eAIAlLOHXV'E! Ӻ ='h[v%xhÑ܁N>5F艄r }-v7f 2[@ȡt#=D|1BsˈKU 6t% IPHDّ.5yW?d//w[t7E(T.X̪2wVg E4ԑ p&7}SZ],JZG5 W$zť!kը&~Jư(1I`҉},v|ȁqОb性ьm&>YҴhp5 |^MUŬier~Q`ΔHNT#ID4'rm3[rMzWXv-ha[Yd| :~] eRHd=DYO<+6V͊Z<ٴk?(MjT݇&r^(6&SnL )˶bwegɭ9Zջ@N X8$UrW1#]t_w:H^"X-;mtUMF=mV洈S=5h:s-nĥjgw.I^-h:%$۠lC}LZ<Mw]f |ڪG}9w=n#EK XROsJ|};CD.K#J&jϤNրV!XےcE؀rDm0Tm"4 {1g.ēqz`mld-RZVAgWP~`]F5M"+k'd8St5t#4>Җ!(eRsb~)n̨ᰣ-sۿ76IPԟ\>}exvӟ)$pn lj"pf~G6Z6 #;Q56+DqtU] 4YP͊m.A#ĝS%5R{eE[] @o6u]=̔j_(E߷a)̴ޏRH_UU!`AE-JQvX4ftPӅlA}nW(O_;= 1${pvXY*|<VrA  |h 4;E=(sF@~C>Wj`|4dѕ!`!`@-tW 4` ] Th*t2? cA]1!`8/jWdc] z]tH@t!`!`A4IAlLGmlt m\1^Fᇼ;` ͏#r9?e?6+sw*s.ig/,[k/2 ; oOrj'YiBߒRkx=$SYۃIdbf|,)[:>#6LM坿k;]@76Ź$#+_y%)3ZJأ27 %=O銘+3u-+L $]"|fF}ߥ_: #"T 2uՏ|_iπMvR{_U* {Yaa*ӌ)FUsأ\azFUIjqz;:߼V޹+C>'<*]}!D*a=(LdīDL';z0]'TɛW`H&݉2nʪ+N=BL\e[M#ߙdNVi <ȷGXQpNEm{/=բO Ϣ@O8NUϕ`/B2YY`SQ--Ҥkmj!rM×Gړ$2 {Gړ<'܁sV`3T ()Noս5k@_zC-N(;e[ ޻>GpQ$Wz.3`0R2W}QGumge cĎJJ@"㒾!T|{-d7X\Hɼr< b69B/oO,AX`৑?_GAUVĩ;ر2{WvzadƝ|=gХL"]R0.5iַjJGu !^N0~ڡtS!`!`AE-fJ1 " WuO:R>dCۓ.j3n *0 =p 0{!Íz=1m"< r`%Ԩ]U @"NBHAЪ2wf9GMs̳,|%MDz1`Bĕ!`ItWqABC" 0 ,\QP|!`!`EjW^ sy AViNUo@ l<#x!`!`VAIAlLL# 6 էRK1̋;2DQE }^* 'fGƕcW{?F'MՂId P[r3VZ(Ѷs{sҠzJ VwDXgx2 {gm}٠vyidm!,7kڥ(}2oJ:4Ui,sV3}p*oq(ucO Җ:A;5iiѿ*)3S+h*f9Mւ~HM j ӥcZ-r.CY]%.69b Y`ZPı9c," *-_ yš1;ydn}K/}V M'q^E \ 0x%rO4*|mwo> k "_J*wobM4 ?|H8<ڳ"uk{%*QzBfk ,U2t %loaaz|*2G]qaE0DOؘqꏎS41ZIT6 X,h@g|f=O۱>3-tb't[FMqpiwd+ȊHh=B 14Hϸ[ -O"X mqq@c,s@'oX?Q&:o6TܞyJ|#gsʆ&cHQp0;zr$xUHYo殯4MCz= rئ+" ͳPO" &DjԈ z]=f5*.d+lƸB"M+vI0ߋ|B~ mׅy_֮1h4iVgڀr0W(DA91:o[ {cOya(4ܯچ6G*/ V=\9`0wE|S6 ~4pm{3߱d/}-}3Ks=2+諟ɮo%_}a\ ,0"~bm) Hp6?{m₁[5FmNEaWa-ᵌǥ=-γ3edWУCRʙf3L#@tF88NPCT ໓04?5,%5%A܏;w"~FBHI~$#74 JGf]'\sA8h#x>V}b '1dL> ?t%E \N7[ޓeU8B.t,+<4ǓmqL@1,y{ hf|)rj~9f\?Zh2!`jW4.SJO9NԍLK%!oHt,$mzAi$߻GBGO\Vr /rk7mdY2!"ˀ@* Ld !PŃjn{IdmYku!`!`FAI Re0!"omu=1AN FqVOdEIYdfhI]>}0Z0P-.NIsϹX8fFE d*]|VF>\sV'FDHOx+q'._XJzmU#"}ȕqTXガHL4 έ%Q.jKdP **1?;6!Eꯒ嚃E}ǾN1@bêJG{ a{9ىᅚ sYowkQ@v8|BEKo^4$;R&u`@q@m'kV qqj_NdO!2^<|ȳTS3HmdI>>׻eYV "xdo^UAA eo{F;K˛7 -\|rNl;fs'XHVEWF&ƁcX5WQ0[TaCգZ212!YzNMlR\sU'>$[LlZ ?NKC!%[)#E MHm].R[`B[O飠ބ_w>wĄgRb848fcFCX谂!`AE4M<rpڐxNCV8C4TMY HLH3JBj/l-ZJ ս!u@V3=ܢ &Pl`ESHQ'Fc4e{K"0oFB|@#k5K]TRpd~hǎ#A8 {n¹&FxjjT!`!`EtWJObTzC7*5A-  TyX ʁ!`DjW (?p]6Z;xc@h$* j"@ !`!`zAIAhLGwo?7W:ɭ֊O Ƚ\ew|rDV#  p¢ }Ehu3^pQ`tpM쫜\/z<#1/1M4J`f׼楳x6vj R1ՒSl1gpa-vw"рj#??|Ѻ͈cx/@;o|7/aS."˝|33QϺ5ӎIyr=t2]J2a{Ue4f^Ͻv{~n>BT9"cH+c\U`~u<#sݜ\}>Կ%'<Ϳa2C(5̾4M9Ab&¾Sg^CS-aZ%\E?Rܶ !r/svϿ 3D%J2)V #I1U|D$N_}G%Dz0!̯>&h>e~sy^ԀQt,7@0v鉝`<9z"6p£߂ʮå_RZ;p IUULLu79y}˹4VuzƝfL_d !`!`A E-J޼ (? 96pao&p( R<%3Zi@ & ` a6zxĝ_믁2, 0 j—Eʠ;X}]Z!z_|x 3T`!`E_tWnғkg#  @~Io dQAt!`!`?AjW F|TDSz !`OAFIAlLޥѾٕ5L tU5 ְq)T䡀w4|e1vr8cSܥkď%UJsr,!b~q'~p+Rz$ea16ҫKn>tlQeSoJw|, rT0|@9kbA'"?ҵDÔe; u7\w2H79..a i8'-RX֟|fhDݤ/ƨsUTsш鼸bMKa>!#)EZpnPһW^5\Dn-dk y.6 2p)?GcDGB4P/ ? `A r,hp" }!1(EH{DWi"R˽dsiQK91R n?kJ Qv%՞ 벴_ U!`!`AdE-J޼ RBG\C"J@Y}(gx+ѬuͩI6d^|:kN JH=Eu u;@ 4#6O9|+f p Vgh /¹T Y4HW-Df^X0j 9]/_ɂʅVŰSCI7:m2aD8 ~kK&f yas ZE>12۩,t * SU[ t,~\_=MydŃ9ͳOw^ 8wԦkr5W7mj!X 6U×4rR!W:2%Iy"ヵ"Ciudg "1kj|$5D;ƕWuԠZWjSgPG > ho5о>c-#udzpZ(]/4l@%w#eͯTIf?lfXx˜N:ynz,#;$Fc kK3& CdF`4 ]·69ͫ[X~oK1נb!0/<"۹Hy3WYCΏI][nXc?*CVdWEoYMELp7`m?f. LC+|g\D=sHcӡ!`AE-J޼ RAކ byI8bQBXم@`'W>3%>E7啼}$e]% p 2mJj6o2έo8駡MTEo11]@E!`!`= tW"  AZ `v,!`: jWdc̨ H  q!`!`AIAlL HS3"ZL3TbHV6fy-Җ:$T&GlYvlS fp~A 5MsjH W0@Oa{BřKGHЍ :+Zud)lqw{?HF^֤,o bU,7#vOFE_ݔ%ļIlgeL"q{.t[hNAT_+Bkk68J!kݐ5O ROkBN"ٚl3œIc4:'dA HvJzħD3iٖűM.~}*Hm{@L}VU:xYЗ_CKjv 'ic 5I|L~Z,TZZ~#L{ t~Hf!]>]q;n%I }&ˆw]O:{> YͶ˔mDG.u+ͼyYA(*yΊ'ZaM<}_wJdiLO6 EȎT7Tt܎r,_'m!;XreᲔ+ꢻ'f;:Mm'm__R)ܮLۢ"}+;y%FLkً>e\B(^TiVMK@K>@A+"E{ Zj$-.: -Vc/eOvr,s-( `gF2Eḩv y_L*S :;bS}%3EڃV8|߁ϳtʢ>%yni0Qw*YJJV_1Urނ fSBݏr$:B΂ 8wrn=ÏcL GL[(L='`#SMU(F Pt{ ?T<5 B)>L+{](<9+p ]AVͻ*4BZK{"G<3i rTeZO_Jm &n|ڀ̂*N]I>tq9OiרW݋@9 -,lmׁR]ʝt `~Q7FٗrzEXP}2gz3܎A@.Jq3Vz_F9`UUv^G#pW2?V!`!`A0E-J޼ed5J;LEҢ#94ҋ> -6=D42xI,=":C4֕`C<@?J6!a<_*&ҁL*# ѱ0ҁn B"'meՒ!`HOtW @1 .v%J8@o(@|?ʁoN!`!`FQjWdcF9U՗}$:GC{!`AVIAlL JF تBPs1} wMDc ;.ANHtǰ+)aцĺ@/ .?Յx14t̒ Wu^#or#Y=/BN [.E(m;1'QNDV8:%fZLE;B; "1'y27ߟ&_]ySÁ7Ї:!U9rbV fG5馦|bfFzD~zQܬߣ~j ̔qe*q3)bec~)'tV۠l1}pgIi;c%pI.f"GI~|%9Ku |vlk+UiA&tn*zO5qK4׍;_s wUSFDI[4lf @- MeS}(~k^zyTslwJ:!}+8|M\m@!`!`AtE-J޼ѐh^QT;2NywY`MOQ,qJ5\hp5Fz򑨶o8B` 0[L Y(d/ͿcB>`{,ရdvy >Nb4!`@tW"T8X`xB@Ղ~jЀ.@s!`!`<jWdc̨>~x5p@!`E/AIAlLOzka@~Th7DW63z ROF/򫨖ȵ=s3L|KوêbAX7;ѥXEEµ{d9 N 4PwiD֗Zg-I(g+=3!NIVWKz)8RUP nwBpkcdreDMd KG?'{^F|wk I뛮Q`MS]D+$*56&gZڃ Ǒ9TJؔJ xTNL5hs{QډwY+2m͓0sr2% *G5=`Bt%~0}+{wԨ9tMzQs|)c6;f|џ~Fy'/bpބFF]jKWA4&فo?b51N:穂ZXE)d̸kActGjQqN]_"Q|Ar%aw5yt=:j& ;og+صIl\2btEKCm; ,˷ 5wS⫈#qN5ǥZHR:xȏ0ZX97Z-sUlpPSq0f@k[ëv `9I')-WJFYUWڔDw%ni8dCχM[4}5[+#ފ,fr$r-9]]R;na^4e`Q%"#wVQx~U6wS8j!(, D xȣ#R0U-yɴuTXmVf rNH\!{88wdV_%y Nj`{q & V&E>>p|?;osĹ@<=Eap #~Xtw4ԛbxx db`Y>kV$:#2#>܀ |pgd+ b(X;Nǜg}VٔC%բ&86GɩNT5h_bAwpviyD Cb<'Nd-{ v]݁\cvsnq br:F;~벙>acNCMb.E5 .:P t6Q DejӬ^ڎWA۬m MT)Y?3_4&)M ԕ{;f,[Ȕq U3;G`,k1Op^]?\M9~ N~>2 V pb~X3u J^Ua}5+ngJ.`u:]I_8Kecy(0Td Ed-ܬWE߃]˒_mKTL*jγ`K8K+XN"\LϜFyT S Xpu/MrFYHܴs0t-BKF "8UzOqϗZGX*Œ-hlu̸`p&CVmEJXlEX\y<8[Ә66P]͊;^Cs ?LO)tN WvxUAMU}CQIJVg׋f硤X H9ܮN^;[:.?rq@ l(7&QoEt+, J Jr΅wRm$.,M_tp9].m4\.ZFƋVjڶ۔kbNzx:xqUf71Y}q~ ȢZs#snbm|ILb8o=3Op"l'zXn۴ 9#N=2V &=bъ,,̸DR^2ft֤0'TrKs4!wEXɐӺ4 v !ӊrr5nO&}R̸@7ݘ]͂- A1"$c䎚(=I'NUR`a*iizAu0k8߂L{~n,07"E6ŷQEcI 5YS<,0`*fjxYax7 (uYC'v%b`&HL-ߙ)L2^ ѣflPoQt#3~n0E\xԩ!0aXdM v>:;dq&mQ2!y6f τQe` ^B_*d=]ȺF &r-%5!파nBǸdix7-@obW&> !ehLlfAխTh7eQxЌ yMKZ0Gܘ\(ߥ~uփCrI Q^j{%y!(̡O%}0ǤB7{MXTPǴl8Z8?qZk]qP52"{XCV9yS-hFԼ IWaT~/,XR/QL%^#fyeCm!Τ1&}^h}?6gIS 9\k S[p-U~LJmgnI{_TpnobXxg0VFY?On=u1{w-W*%$kF>´Ufɺx)&(yE)WM$T;O2M 7L! jVW7s;7 ez\עW>@ca] i#%d8=&&5 K;/CF5b"j,'`kȡtP؎ZqԭO䑪~L)_ޥx5犖vɗV;/:C+6W WڠI s1]UO\EiF>Y!'+qwA/ *YAcnąwfש+K7*F7Ĉ/6-7V&V^ӜzR,,PR2g M%E<龖DaS(M:pWt1sq#B kmd f R>kmv:}"S˸-ͨ2P|3L4'wxRh<(Ѓ 6&"G9UUdZE XM Ar)蛁%4׸ZFi_Ptmf0!܉AVIpJgB֞Rv#8_4t?"A:A{49MWtۗAEjG`ǶơҔw2ƒ`G4cN>ǟ 7`%_Ei k!;P(+h쮷]q <0H4G$pj⏹Wo&k^ě*x*B^9<;UW &|\=hOj弉Q$FzADʋ^ïKj{pG-CCNF]{Ky K#&=zTGI[̀`Q>r[n5br b)-wDRv;2 Mb(_=r;L^[%F0L_C0] 'gD̄NRK guCSm.y4 (P\r&rw c ާxdfRr`f=Jze63=\ͯ N9?ZZQΒ}~l/T,R]~,\hLSiH<"jsV3vU:!Eo8TMiTtIkB'!]c{o:Z5WcX#%+N68c#Q$TP9yG)6:6)J; Gǐdǘy:· g*q:HL/ ;3m#7~C׼]/G'pF^7@%㭼wU֍lFD܏jfEʹ3ǪVPƹ>Iحyzcُ*Ct6%ʶUVm uA }S4%f`b!INf]K;Fh93꠴a`ƹ?zxG ܖ!BHʲĀ݁ԐD}+͂yOU/tmL WYrI+t&ҭZCc"GR+AK}^ԼgSb'P♊ӱ)]KաjW>>9 o%\Adh}ZʗRUB"RWVF&7[yQ2 長]7_2DewɎe7cՆ܃NgLO(X۩54{[WݪkfijbF;cޫw0BǫJ%EkdʷƟM5OutyڃHCdLm!W?D3uwLMc']՘/#,bz8_0p"'WhZ'DvK115OKg~/E'2"ow tٜ?59AGc I&߲y0_Kğ kUͼÀ.k[IGh}*A\8%iʤI(ܩa 㒑q Y#{>?n|!CUGz~N~_ rX<Ѓ\Iđ79((kYh#JG@(uuu+GAxt=0c]ˮ!c,+>{ieCP~s:7|>)A(&U+ED uWT& G;HAQ<;5q$ ǿf限`$ |%uQ8P>k>]x-Ysc]_ N+bV߲ot%8̫AwBfI&OGJ90ءn g]Ke;a'AP>ա 3ϡi!Ŀw8g ҥ^xd.fB{d.xpE^^<>vr `(ϹhPyq2%5g+6چhHUm6d{ 䰷%2)p2NӠZv,M)eUY B) G2v`6ȑw8W0Md@";u_K6=o^2 Ƈ.DH~1mף Ʋ/mթխ iU@ ]MzJ U:`,i.Hm\6Bȗi2BvC ~O⡵b2o̬rDnQK=s34t0}Y/F\y)`K0\W7˻ƌPLI=IǸQr%Pkw #FNPyjϓ|BE3Wc1r4-Iq3&F*UlXGdj,"q,[ICk"^{ g.ub rz>3Б`U(kMstƙx@y(`@>V9IAkϊOr~DٛPk f K'IztgzԁЎ< jn6^"nQi"}nf?:0flOL^ˏ +GA#HY-/Ei #CZ6| OOW/ 뙝؃EE EP!Z'^S%l^Xu}KOU4py<$)Ӣ3}$',kk&R@ a3?Ccpj 7Fƌqp597h>h~lU7KqLm`r&O{Fv)E)6ݴS )Y¬wШ[27tʒT<^BW<}C2æxa~FZ,)^h!.'z z_("[Q=JNNGI/2n{=%hgޘ/"^I ܛ( (- Hgj nv&s"%NIςE/%wz܍ JxuE6?<e:Ugme>W{ri) ^i&ˊ u:6ۻ1 U0Bi3uWG|h-ejR8~!`ZLDfk|(: tAjA-LB ̩m1I\{PfӶ6XB~wdj pdHW^]yhrpZ^r~wumUgyo! f:vv+\H Ջ 0Kk}Oy6 !DN zJ }gwgPQ€{ sLUg!uzb{K^C2~24M"ak5{Gć-0j J <@Da`}k7 . /E*NͿ}IJ5!]u8dŀKHtd?B\+=@ 1~}NkKUyx)6ܓЛM?0]]]+$ůʾfw-j/P=VQI!]aP޽i'o/skD>50I4EUbJwf?Ը3hа2/? KXf䫤ӛN҂FM@`YL AS׾D,FiTgw^ ݐ|.ZIc~bʜT*y1VK7^*RӮu9Q\Ż Jkz$j^UJ6XhR1xӧpg\m"gvv tԦ`^w;JaJβ6/(UH/ q(Bv9lFPGf* ԫ {Q:#jih:P!=jCo)l>9 <(lID*:X+#moܲlf\>Gg8v;tQ^.>RMVc5AhFUت=118 7N(WwH[l)eVW* n s#$aҝMɓ #6ΰqBǞ|Q פ~-kPzۜ9LX+/Ѱ۞M>4 mD2XLI7Vϫ Q݊[SM0'm,MFn.Gw^wf$@ykotKʊ0 Ĝޝ.o 9?`# -#U'x3Z{Ww6/%'W;<^CRgYBSJ#mL2VnUs=$A5a-iLǡ/-?[[*eʦ9僞3 aBÈw~#6wfgVusaMp,tC1G[CYIƠjH:nE Zl7;Xξn0ʜ+bK_y=hr[dE/EڳjUGv*kvSjJ3en0YF'emn&uCqY00ӓ X F-}XS'ԐUTFz Bs;#2@E ܇@GezPW# 3KE'$E$YIr SMF v{N_G83nc\0mJ_,L}xDCގ%.5 NCz[\[֘Z¯) 7y Yq.'ә4PI1ruɇG=07 ѥXdŨJ35_KCN߀m{09?:/Ob{3 0E Ľq/$)1_'rca63ȗqzQcrv*_+5hpD\6Y,|-7BbDi}pj(IMhqҰ]Mq ,vTfsWpL&"!h3>uύX țM@3K"pzYk z?܆ C肇4訊¨CcJn<$6_%rK,7 ϑn #Ύo-wSpuݍˏvh bv?{(]?p ״,7Wy7qéwػ.nP,K<%{K[mXK/#xv*#Ha?u# kh `&M+ď;c(zhկ;h+^JFiNyT5A,a_`.RnKG%SX|dYn~ɀuo8jyg^Nr|֦&Ş $,IdsDif }/^ @B3>ԥ0;7b85~~ ~Iy^_9k󤑭ހ Mu^ dEy*-Om2 hjV<ӻL<{P"9,~Vnm&6d% *`{9b/]YbiWJ0gأ(y@EHm }+;!@ CH=g, ws 'aMA Yx3XYYsL^-%%nm X)kտm9Ʈis/İGگ(r*$k)X1;SSLzON4)Y\TZɴWAMTB+@OnNwTR$7 "Z]Ioα$}U &_YKg:==0aڐy>X *}ŋ8 ёJ@sd"c bvC#GEW9yٌU@iqHT߄W|B<{Wrd:PyRi(|^X"& qx' TǍMQqD +x&*T)M Ape!:]M{\frM{Kn3-A> L#A DL J@CsUx<>>:M d\i Mg{ŞN6 ~USM!YS6jǐpj+x *-;뿵Dv"D8.ܶ1ԴEs/s;X 83epg m煹m Rm l7ᮌ =/qD/% b:ʊ #/ rwsj"^1:9׻m2YU'Hg|uț/L^y⡳;)BR(zxs[xQUf_,(t#Y>PD> &c뜬Ĉ K<2D.]I$("07h.NgeG(NeCR++@tv?=OW{9ѷp2EPAѡd> {sO)Y^UwN+&2BO]#]rG5v0oFCuDokߙQB,:Þ{ *8hQ렾zx3Z{y@= g6m ~ f (xb2V9ı.p}KŪY-k"1X?&} u3&WJꄉ=C&fzox]6iH B߹ݴo{NW~3۵#H,^ƿ9kFMԑ)O `r핵vNiC# % qlUP2@ i!0JMT[ =]|=M.́tɹpHj$v ~DL5YD2T*n6δ5HI84) WaNH38:* cꈅýj%))8+;>m\ ],vlʖ( |2w3 }%f̯Ko(y(_@rTk{U%|ni×&d8)Ĺa-IdBq*ϰDƘU3:un Oǔu&˗Lͺ*e6}\?wRMY?~`r3t [ /WL+[HNW $jاױl+H AΪD=z EfnVşqS9;,:0R9j6 P}VWj\iWѲ]2:զ Y 7R:`׃O4; Xnc+v`r+F $%_Yᛷfc Hq>| R:kbdۤ`VbjQ'@G9!s<,i6cL<$t\yIk{kgSJB\`RfTx^%p*/^U\)nh=~{Gvӏ "iVCìW:NH[ :-5I oi+7L >Q>oAAɸ&.sgB^{h#/}sS[?(ȥ-fM,QEˆ8B5Kn|%/!`xwna)Z߫ĥ~:m,nDMVoW 3h>>򐱄*h^JnE[++fY<DڎWj ^9WccoEgOd^QFZes['pI8^&L>H'S1hő A'z(e!o (o_"M&Y=`"Jo"bׂiwć?%\,:¬X?' '?;R:H7J1^z)j@)R4mQ?!2.vpV<^9 9f}K:I* B4>Y~Eq}ˬDo6 2G|'?` ^ȍy=U9vQͣYfP69|{xE`"1("^{3 F4(BZ/:=sX%%,)+AWhжOݭ`mE`GJx^v022dګ0 ԡ<9i2ѲlmzלlXjb'ZX'd3@p h6ӤH/;zo>d%[73N6c$g$7d"xw:yvK?W }3?Q{JF;$&vFEAGOaH.-@;!}k1>T"zVx2ɗ>6 ?&UC%{}:m-MY#PqwIo܅!=sLX [ܺz䬸NgvC-ns)iUj@[4s}dx|g5ixmpoګdAҨIaPX(7NQ zbbG5cG{*S#*7J"\M-u e_ ׎蚷MHQ tmRJU1%L҆ө80Iң`&*:ؙ6T4|dv/u^z)).\lj{P/:TKu`ԶGV""yӱҪcJ]);/^ЄD<h2 cUĢMW˲*G;a'mqtrd$Ԃ T[fchW BH`pH!e\JlONd+0\{} $7߹K;P<'k%1HKt@w,?_Na7`#1ʌif؂ Q~awX:q{Pvs.8HI{Wi=dx?!~j387UP.В׺;\:"4&}N'yە99GQha@YUT8;7?ͪM&vޚdKўaJx%vGQA1m|4(5 ssCӫql0cTfwxDKiV߷ZoH)kd{s|#`XU-⋛dpv\^9=9Ǹ ӯF.^%K|JrȁP/RnFos t~7lE79`rLG2/UU͝SI5vtTsJͬr9-?=R3cbcАΦJw %at2" qu,/O-qnmIw#zV|73w<0t>+ \W ('̣U~dvruݦMF=Dc7!`!`AE-8e}xM;U<.cDW[(Wxp"{8>86',Nͪv~Hj,5|UO-1n']ʳɍ1 wËz_j  +q,N#szn((K|=]b"oh2(Xp1HzՎT {黝3 zZ|}^*TSBjN?U;W\W8Ek[@J!k[.ٳ/C_'dwR_0=|L9ay"\x 0Tv+_rs!`!`tWA$k'lj > 5ZEHN@tcv+ f-_IyRƝ!?9]RN67Ƙjn 8x -bXF<7lv; tcI2IɝXtn?NVĤ:zqsQ 0ÛwmRPyQ`Ԥ6C T.ὗ8BNlL3BS<%lBgۡ')ľft71U4WDv\%C{r> %) o-5r*s@QԸlR*o/ H{/5 | VNQ0sF,փ$ϭI5CtT#=x+{V7qz= X,#˪4N[h"J`gydIpt(89 :8i% ?.lioW-9 }&]9Ay%i$ ^-98ZB28!`jY$fObgth!b\8xK$8lM_>U_EG~Ͳ{ PHC2rJǚ}ĭmR맴,W&NsCdY1#H0hg`,;6UOOiRS)T?E@p]~u6sЀ"i\9-\~E,hqsk&-*JJ9^8'!`!`AIAlLOz¿WX `W%2;m$g ²N&Ӭsz1oHd_,ǝ8\ean }_Չi9eWz}kDV}l^Z ,H? s ?I||'%I'f>.lΔϴqtb {_@p; $Z #T7rJsӬ0}E+1ʇ*P\&mO:Pu;ǯ^IO._y=P^J;[QgLo:Ezm69-y}h3kySOחv2a=㌍ObP7,]SuzBB*oO6$:\=Oy!*#G[!Z-2p ]%hI@l 9vdm0˒Ԝf7^J\ E<B %_HSGowf`$dKHFHy0êpE><)Ym4 p-.ScWAb8wY >/ao-5FmՀl $r)֬ĝ)~: "TIS[16щPn7>1j+^QN֋m'U-DHsZ_M fg$2]1;SBZ مâ0o&Z!ӄ jY q?w"ۻBb -xW~XCYVL 4=oc.Mur1ߟr>[ _p!JaxJfUe=Roꐼ&* bڏvnP讝 KMMEs0=&^"j.? &)BI59Q0(< >;+G#E.y` <Ϡ#i K;lzRumɃ{I )ܝ2'z}|zy郫00h^A @Ƒ)h(GlI&i.ǀsd9FGZH|TDsЌdɕ]KbL{^vvMq#\*qBO|&Յ[B»Y'PUygӽ[fv@[)Jڌyw M̵ak ֧\W IX%xJ<ORĉIIُCi6 YUT6-s-7&pCBFEUӠ疥ZgvcDH^F~]b^Mi{w>ފmeǠrA(Κ$5Tu|.h4<,'\53J ;J8 ~FtpocDo,jojr[jRga7wN|nB jɞ[C(B޼n #rPmnvi3ZxNJjg;w8V?=ٛ[$i QEU f;yr//j='+DbM,)>g9W

      .f,Q-wѝ cȕMOi42-آLA~|`9ܮ m%#&ESQ,V#UD*7O]M+AF`b!K޻CYD1WgSf?Ujv4A~[e`C$R ,^1'|Z~EvR m9%h6B378y. A+؆91Ҋ؝h^)q/uFNP.Hsh;gHy3_;W=3R!۬1`QumJǂy-c-*)jӹj,_j}=@:"BR:6ݛ d<7Poz v!Pkbu9.J>iziNp6E񪅧2b k.% s@J'Ȓg.$cI ֬Jپ1&J]&ulz,;/5æ&#";tؓXu N_W)wdi:YdZj"[O?El/aT떏Uғ?OHڀ>ӏy!(, 'n:=Lk1Q5+XF$GrE+RO[f d_CnMݽߓZ""iddʓi_OT;t#Y^X;guۼ~*b;R4|qx^ÇM"7T~UJ٦[x !dWQS]q@ʁw #JpO9E1 <5;Nv=/X`;/MTQFLeq1ܔЪDHlQ"V|k}<8T0aAռS,'QzD`qeyTԑpxi r6v@`cʷT=$9/W{{8j4Ln>. W9XuuE/jE|%VNU{ Oۅ})~0Wf8 H9JA,t^,7e KXy%".PANkiN"6uDQ9|o`=rj"C1[A-h~EuiD-5[N=JsG:[Hv bO ]!ieߙ߮au>1Nh[WRlMQo-zHg8BZ0L:8$=v }AY% p 08 `Tw8:x+1;$JS~b=xk =,~19֤*=V!`AE,I<1(#l PmO#L9_³bZ).93[Xֶ?Zws9( 1 zZUX0SG$w$l"4~"):Bi%ndGLƛo(7Hp;-OŠ UsO]6:6 CaRE Xueg/v:PiB 61*;Y4HKWIa$tVd`#zRoStֵ^F\LT2 !~m[ł٧*&eڌvDy:Ls"_h]*f{N8Ch FCE_'DT%|H"LBEE;k%*ÖsiwtEkɶ%"o!`!`tKK& (zȠdř.5dB1HkB0U[֬kvMIFDK,[x囆CP6,jϵp}Хp?|9KA=>q'丨.7滗G_ VI}LReZ{zUc{"y, г^ _426U 6(^&T`4-kZk:]LR,ӏTNN_:s9!`jZU@[| ᬩi8ROsQrb8'hIQ6ijZo8ʊ?ۨR9_gK@4BG{V:AA/G5X 'Z4.x%xm pbwͣ,\ !`!`AIAlLOz¿}}ۗrR|@48lx{hE{lAߴIXQ?9S%8#K n#h y,R] nZ*׵U#\U FADLiHTHB 6^H$o1&k&hg$ȣO_jْ'['bИ%~УY<==m/4^+z?jab^H1z<sh<ҫ[L3jzZKvyq=l"8HʛCug@,`0RĒ=룱{D{!NMkI7 ϲ0BoLt )(yw/p9;"1#c$!:&S'27; 5Ċ߼2KEnրu 5 $,"U4`^^etqwiizzk"w9:ƌޝUc׺o% upC-ЭĒhQff;E".2p7F-xEW@qϸ٨viG2WP̕tl5>V668:GFvX.>o%Xd۸'kO[wFN,&P+W?@j?Θ#MKU^g3oQͅ>i:$K8i̡uGqI%;\+#\Y/יL-f,9mlOyƜ &]N !ӸF$4]c#%?u;ۘN_Ο1%Z/lG`Z"9j-m+(?ow6?k ^xjӇXБ#)~1oMȳ[r.T?Mh8:$ч߶oi7Č?UϢ{ w1:c8+W'o$3wKޓ6G nV4Fe0Gz-4u-Dxf7@nqbJmnvᆊfR p_dT;ɓ[jO(rWU({/ybfZf>LMp A~z2TI t|y$.0 K]SFDyXBVt7oX+838}Xv'դyҬ٧Phc`!"JY4ߑ}#t2 ITgN@U䠰K'L?+D'îϫ%&ld%M]`.s=ijJ<77 f2ARD=meM#ZJH:>,njKJem 4M(,o[?fpx !D|?S[_oW*h.B 2OZ9/oLCAGN廀oǫhGzR4b`"7›XKP>ω.;Ă]--U~q Wɼ˦-Zw8x 6-cGzP'XAfQ ^"Oh &ꝼj5#?I+0#ux>5 Ma6^s7aArp}%ۏ5`.,B*s"ͫp@JaqϑZ Ʌ4c $Yrx7Ov}3plCYZGl)qEYx7u7rBakͱ:izc Kl7n-MXKa 3nG#q58lDcDYW7IO!Fxr9Յu~(cHbM=ǩpMqz{Pz*tNT5KJVi%&>/r-a5Ul5~(gt@jQ>A[ K/R|#ghuk;tPߑ=f|8eu$d{ts ܹ@JK( %Mb D?gQwѵtpu{Cd1f] %.)q.l3b^{iL_\lI{Mrf K,R'v`ўށ m g?ejbCҤmalژjrtaB_toً ԇe+EwS`vy_3QRzJ^WQgf2]n7Sכf(T+ü8ME}3sXpFWik|StT*C~ti$ُv GIN!:\[\@J);RK5V`%AYZ5JJe9-g2"*t"Xv CtkohyNzl^ LS:Z:QH -F1Xq)eb zLty hV#R(}\>qy`3qeKR60B93roTYrpDֲS.kӾgvY!o>7gifaOQ7D藫^S_{ bO΃Z&ݼ; i%Eu7> wy0}&Ku 8=2ƅ-NzF 쟎6(N%u$"=ɏƟX `FqtH@ I%i+*T nЃkr9lHj2C}(8C*+C~|sJCG3`̩l5TvNn7CkSX)R`Z{Mj1_03wk-, xϴ?EB!`!`AdE,3u=V`7J' hP:e7AAlZzQ5+:跳egX %*@0@ -(+0Wc.NPnC-x4]{҆6J.KHDOmӔu&}85'[[$ư3߈(8gF 0H6 !`ct=c!J։ "KcȰFr8 /{it=G6pCpx=j2S:h.Wҷ= z "<2`Hł&W|dHBŵx])#,% *@| G2!`!`YAIAlLOz¿}y>bjpl}ҺOeOsR^NȤ4GI4Bn{׎ &OFa ? wXk7<5A>iU`uEkXu$d@`| j^J^kzυvU0PQ 88\M$` b#C1ca~yL!@FRI)@nl|T݌;K6I%ǮC+g#<]^,soUajgwTc;P | &V$IL73%Tag/.>x bքE=MB tkDj 8MZ6jx:`[XV%>;:>8Z[MNy"ķWQqh!Ħ;u雀ե2x_"R +wh\`e)s(- j1Qm{op=NP&vE+yC([<{7\yw7AIr-pSB?XLt .3Ba~'tq<4/Х4Ir(Җܥ ^Cr \n/D'T:,⁍}2Q$P+}0*"IeZ }1A.uVnpUݩEX #ƀ#$Es=y{Ma&XN~+ KKe^wyI 9cwZ2]8G xn^Ȋ ~֡"L$Cl=gZA?YR&KEO0ѹ&)e?3ɥ€@>Yg=0sgc$8ns8uhD ' ί7&:k݁g3T6IWq!`AE,3uIM "YơD1o.Oo! 9:.q/,E0Wd'LH.ҀVqAZa!膄5L@]U-1bSSb6Hyش TP!||V|1E,!`!`Ut=c}O5Jre ۀs0^'6R:+l>psY) /}DFsV!`Wj=>= z "L8>Q\ ЌND,RxY6 Y!`!`AIAlLOz4:WR`K4E$cRڇI.iֳTMRݥ{C2IYc5;_l1h!Mi*cÌW,/~P%M 4ީ]doLT ZnnRr|T'Sw^9_8Ax\ኯ\ٲ!uI-r{r2J?3fMLۢ/,lACJ04_ox0hب,0R3X `k2kcB6횮s2,s7gDMhA{#5y j~pUoTc4Ssa-foxxc9J):|M\#դ[ bhwP%їdG4$ZT Sxғk?k9݆=]ˡ=|$=%b8HV9_L{#hyqye)'L{zR({+3\UC-I4gAxI7 oNBсG@9Q:@z&8(xovPJkp^NC޹\j#ZbuG"QR)ڹp^r;Wϗg jOjn4!/cop^ Jm;8gIۿWi{IBq̼[ad+|l$%N<OB1a 5ܸ]@>bt$YDC ʔfb  JijYbi@J~/M*zM68 B\Jp)R&Es}o㽗e՘!`!`g t=c`p:DY9w .܂B H%@܇{*xln Is@0]jJ j##|MA!`R j=>= z "<2b6#r !]k(!Tf( S&%#$!`!`D[AIAlLOz¿}yD猺lЮKzaybx DvCtA[>[s !ݮJs6<9* 8AH(7\NۦfxԼ4V";xְa 1JDRe]TLIlou%3ڱL`uz9٪nƿZn?r&gs&➡^w ʖ,QހxA5Vԕ5~^s(cJf`9V1'/@l'SRlA`їN0n4$46(j31~79mg']jTx׆l G4<3B?`8FHUNu |?X- 3Vm$i]|Y2f_0qhWسe|V"(iӥ4`@󈈉Zȁ?AY+NTg~u{FOlZqXd1tRQy@&;%Ta[Ji~¢[?|-qXuRETuPvbH';֩fKr{"UD*3Ƀ v"gɋ%m>mjwQ@._4bF,m#T6[< !L(Hj ]>~# \`ٻCYE N%\BLJb,atxAç,Rn0:%Ŕ4|BE-xR9͒d!~cŜ&}UX;!B3` %y~!G eg0!\}Pܻ\+搘S)0I$\:JW~4ca mQV#>.P1InP`*K*IB+A,|k ~,r! xo1P>c_Qlw<~[7f9Q>j[,!b$cm˖7P peӛRZCJ$=Rrߒ1hu^hݔkʣp\ܭwdyP#Z9K4bG݁.k@LΘ؁Qam#n@(GHܲԇs EcjUj 7ή4}qJiX<1JNȵ@ֽA :{+@$Me\]O(]Œa"9&J~ ؍e@4` F_W)3a] \pl}Ad RBB:qDPl;M+~߯wVXd(+u$lFx1 -E,Q7F"lQڀ_-"*C $J(cz/NP%2>xMT Kc2Mwpݯ"P3;.}  P،P \,Ea7 jM._uDICyv]AVGsm0CM1Z;'mPD챙.\E<.RKAaߢ9ޫ6V\g+pe䀔;JNE.ɪh2xtrM@}'|SC`ͼB~l8sͪddI)rX[HbW9r Zx#+0Jb7tHWtL Ջ6&:$ =W޽xX,U&U $6u})Cw>z-NLXd^XqPBm夎҈oPyKh3Z88JysKS7RKn9ǚgxvl)5qĐAJNG@ wGqyXT0c(~햝dkRyM$+ ?ssu7 cOg/ }bxR`v`Q.(nY#F%hwi^ZsR2D^Pg*0Ghw0=*JMr{&9Anƕ 0iWfl$n]s0;{yT1cfG|86{O 1cHE&l]WG;{bP:U1fijPB5D3\_NlH CE pQF`uɃJ0 |w2zi,+{m*woK&!dM Wɋ6ۋ0ہ3t}ѴN^_t%fCoC /21SQ|v{ѫܿ! ܎1C5o}%U%˽Es9h=$σߘZ1߯qj̝H/IAۄvRd4LyD߿D+DK(zZBmS2ah!Ӹ7]!(S(>-ƙ(xR^v#eO}:Yc}]%&bD֜s"Dp1 0rAd6nkKɬcRE sWc>s|~rJVM  ),)UhQoթ]ЕE"-©kqrjLwTR]ڻsyL"?N LϔBS]]9MGzUęҁƿhF:nބ%t <>'EǍ3ABi 6a|p ȡ-fʙULU$GL%?px̥Ӷ 7kъlO}VٔuDp*ϼǤHANP_L9hZ?;?Rߧf$fʍL7PXA q-YfjJ;iq"1U#Y NP[rtY_4dv\`ʚ$(A3 Nׄ{աVB 5'}ϣoW?U8W?<(/,`hy.Wd^(ZZuM4:CU52jXDՈLQr^_BbWelODekӽwd,%Ixm*Jy׊%6uub8c2j}i%qWXW BU젩m^[[cA;/dl`U͈>o0 m+*v#'kKv|/{Z+mt Cu^T-K3Z51v#|7t7`OrC7K۽tnmd@MԀ*!Α-Ί,H@R#㵊="a}4Ed])L.0{Ǧr Xc?(#;!"_!WL$[p8EùleWg͗>%':~4>U[M2G$`yP ?])OxUPf2;3n_GjnwK㷄JEW2K}3s7_$۰!Ը?__/幀f%$d3 {pT).V(Ԇ.t&=wMos_/n*jt` m𥿔하(M ߶ `LfM⹡‡YУ-)bJXK΍|.a7溤ϩջWo3*nQI]TlSI3\,r.#6#%HgL bmUQcp ^\ИhʏEj7 ZP|x؃l 4dpP`V4hTj Q$U:bK2DjA.4̿JjvU⊑U%H`YL0/tp&maR w˟NZ3~t8%W_#1HN L9Ǿ} LW1%Uڽ(dUm=06*WXE\t!seW a@{N<_\"Sb tUIf"z.p4 X$ybUQS߬8~nwe$_zUiPr "nmg.Q^7Оh:7~1;ӏUqG䎩L\3sOU;5.ef[qsBހ5k!r(*X`A' `z$ twڡÙrXFkIѯJo[=ڮ}x9:M7BFiʒ$GV6嘌;I !xgty;DŠ r%yb3;P>vCH/.tbo Y8r n7,C?-S자=,G(7!@^]1q|]b+Q"P:.IٮvVTC` zf^HMj[qy<@[Q} GG+2Su\X4eKRLUpa3XJEvl+NI݇Hdj 'RDrYX CZrXCKBa(ltSiUO|e@UiE .*'{Ɏоe掆"J踸AGv+/ehȾ^/lyתs2jF+hiD G}ȏFy ݊cSWC7x 7ļKVj!̽STF!UsRu)[ߜ.p[iyz%Y]Ҕeݹ>(h+U?o\-f!m'A"t )_X?g&w_x.EV4QpDs@`E!if;9F?l3A;t&#3oA_YyG;-R= DE)D#DD!9 ?$$XhƩrTT?k-FWE/m> H2wc*B/T% r 5EFW,:W\NBh48FGXt aOjMSpk{92C jEy5W~qt I_QQ5~\t(ѥ.Z|8ŇQ->ˇ8C Ʈf/b/@EDn< 3#bOe>( 3Α՝>eHԯ_`lrp3L12#,4eF޴01i&*zVW~Ah*`l ;kY5.Ϧa; r ȨB} YdX\@ BDCpnCy^WQHLQ/ & &II󁵶vCqdBnS[Wx;i~<?+ xzI+$}WJK8Ag3#Û,L]D61ofruWT2@lnF4n˯-FXYlqIW| ) kzpk#AN7[9rFUgc07:|mNdIc#҃%vR}t,e-8Dï1]RFqe^YgGlMSH-S&wͣ抋aC}{g)Qj>ۭ~:Cc} b6IO{^ JQB~?壏+׋ 2@JT3";]m=#d,]xj\oIgth'CňK8XJk &2|ځ._o`VEK\bG `bj|P(P֡b[o;ƥt&!^gl`9-XlWtФx$yf~|/K}޲N-mk}$*:.Cnɝ@G~ sƄåu t\z9#{h"Ю_i *"zg80UfN˽.Ӆyst|v&{fO+"5x r;{)tvCԿ5E*j u۬[zq|Щ! Q}&J>[U{gT(,d5/^w#?}6&]P+b\5lk`b{uDpq4V]4#)eV99pȋ Ji}\[K)푷o>Vj{Qg@IPɾv={u^D3<1@,lBR緍MQ؍PB-H<_x(#R!fpNy>l'81'y;EZjJ j&"A]_=c೨QZj 9m[ܠ7w<+5~&VOgd y%FGuJ&8X>>EMYc:S?~}2h㗘R[ 5\\sJK{RTN޾->5L9r:,MmmH) 7&qa\5/v'06N rH_ /B`.dIa,s~}V/hĒH%yWN;$1JUnЮpXW?thGbfK xfD9ۃRT(kDOo;xV$g]nۢ-t~qPp'nqn=ȳ'I3 v6n釩3 R 8M1EޗUKTpBoͷ ~ ީ^Y4F^}r,rODӡmRyF'^f g%L {t&>Vh+|Sշ=4B5y`KL 0NL2DhN?5s$>>P i.렔Q(Rؓ?I%u(W̊]#w3)K'.d(Kt C!\:xM-$tEϦK1p~SU,Bj@Gi";Ɣj'$!r[%%l".43彮jEɍ^ż vUm[H-,93&~NU4O7O $c1gKi Q4u MĿgRzeR ճx՗m̻hİsJP5j^8tJ~l= ]%/Pdm(G&sx=U~+8~FLA%Pŏ[/č6\<˞%LP[ɹ cqPYgX@“.I=&ԁCV qbdfߘS`NcPKd+A :e#wٕ/{@0 ;^Hy܁Hǿ1kM!6f~c ุ'^n@*A 90Wo:^2 T/ƙpe"Ȣ˜k~~cxK~gWX+;VdC85e6ʧ`M|Xc.#HSq̷_clo!.\ߪSv2џg)OcRN!rG $?&8悦. GjQ]ؙ = ń.cJ {0vyR׺-9yW5_ŠXo4K:M+`ddj5 'y3> 'K|I<|z1G 7c 9m ulebd x{t}? FS"N "e_ Xj)/0O;lUr`>n:ډ!?=XwPXj9=@طհGL{y1de. K&J UDʽN>ˬnQ.|(D">rn /JYud46!(aLo 'E"r^נfo2co_gBވ@צpU6P !d0a4`3w_ $ Ɲs-$t !\H'(iUg'sޢU.tCuƯw#6-y:gifl Z\Wi88jt"̊Kg7 i";RR@1ZAB*x6ڝN3Fz[yT 23k#{8=ld2I;Q9o w]5׃r:JKe=9l 1u^YqtZ;׶^,v&Sޒӓz.]9H3z-RʋTJ12jCYՙ+Q#1yDe N P/ : N">[U#=쯹 jA$bh& cjմ*.&bC0w$Ovr,=*ÖD[eWR~8 ׅ"bZE]X\rLCx k5lHMbI}Oqs.k;@ R}@=bd0 3HRٟ_  t|FxHeYcmDV; 5CuKV{r>RG_nGLik{O KDRvM) lL7-srCkvܬ #SLjy%rľk꫷YB-Zi4-z5zf`,AA%b¯a4DSIP7*dQzm錳C߽lJ<V9"Թi0YvB]:dSԩUSY5KOAsvFOWEn>w9k=O [!'l0Q`r8 Rv6#Pq4~FXn\O4xB͕FfmF^ 2dAi+g~^\d9`77?b*lRG6 q`3#lL"\? JxK"[d;P#bH!FZoT"7\G3m=4/CB5_[R$0GpAW[I i|\sJֹW" BSbhVS+סv(K7;36Qec:fz#*- ʺ88lJ5@gGzeQvN}Zˠ '.okb\q:-<Ϯ_3dmK#yrߋhtG-صlwU?!2N%[:_N4 HN VuaMxѡ],?h2$MOoɾ6a7-` 3-*(Ed[!)*qlk)I ]圽(&RW [,tEߔE,F}V9Hٻ\Sz m3!+rHmJ. psLTEnDFGOǚ >b > Ϧ6dXqJ`]uÂr0/L̿:M!划;|@ů<nx @ l)qXS[bc4 Pb_tڋp7лA[sgʒ91!DeR >v)jhž LtN+BN uyzZ:<\nWppo-Fqg@eJC-_5dGRr&Ia̪ *Yq):ȄoYXi)v`޸v0.d)"%:zl@r=ƮzziTy*JFpGjΊ6ߪ3} 602Q զgX?'>@47㎶fĈǵljU />KFtr U42w&Fӭ0Rn,`߶e_^":[g4.5^&Ȼhvt'rFd ҹ=%/kp[-*PzD)Fj (wO L6PSJ[%*qXZ( NF6=aZHPW>5rfgmUl4JpW6&C_-≷ԇq[uuIWD/ŧ B.Sj-]k%X\*-OOimbQj rם>GKDpRTD“E,JK,,xi,V T :7j3Җ"-~6;(vZ!C^̽J &A.[a>{Ϻ/†2{+rof$<xNwB:gBx| eL )IY[z@#S`Td0 ВȾ4 LZ&1ܯ\ΔsǯR^(݃qKKs2oN!ө(jԕ;; #5j~}.}l I geg^h4ŜĒD c 1`3J#\<曄ەow+fKy s &&=dvn7˒.A20]a$LZI(o)F:+Z/FfQlj ZY%DY8Y[+G@J֐L#x]S:=!F > !A8_ )WD:n7uvlM2",9PR@Ba(ɶ֙S8e4G!rFM#T.`Hpk.+~|;Ռ.ЛUd~|==2\ udW%|zbɊ~MаHHYnr0L'g7[gXLʦ%Sf@lފ{+tO艵M, eC+mb/3{!s+6vNCm؜&s-ýh=jkMý~J:B9!7.}STUpI8xdFC4.`^Sӓy3as1TdՑ&"nj˭Qo[k Чg"wK I!`fhUHJm]+G7{;n\W:˛,ʻ=1e{2 ,K8.0I{F~ ^?)2'@RԊU?q <ЧXiԖlz,$ Ԥhb Ss!eSl5J!](Qhp=סo6BS8 ?A>ݓ*wi {DqQ ?V.+]K@Ea(D\Mv>s61mSjWrl<=]klbĢuG|!`AVIAlLOzD.]}7$/Mh9MR僨fPL(T+*o09wCDŽvf%ǚ_Fd mέ>aRu`'WGꆯ{}YYEJ[-݈\vvܾ7fJuJx]+M81oG  GXyퟵ!CC 4~am8u]Ћ[8f#\\H`Dj$n}uTpuZ̒O*0w|L^('c۴46K 0n!/3%j6t }np2=I +>b >¥E} @m猗|p$ 9VA?Ĝm=h!q_5z4d)>wJXBfVj6 8}Xjv2\tjE}A40GӛF@@or"9ڑH#8g:ſD>Y$.86(28Sj؉ C/6 `8^X>r4+$ w,!q } 21'*jj[4^\(h722'12aw`̦2aB{ȴH[x 8}8÷ ܓ K {ZlZY-eG￙uToyPU.al|\" \6 j2<3.sσ٤1h*lS ,*<eHxz3!xm A1(׮Kus݇͟!+԰y4ʂ\ZӬ5QGᾙ">NљQ{˷(LTZ%sB.\ #Dht^ZvixjGKLn\Scf.м* aDXc.A&1<>^IړL4[%r/;_6wCeM5z)>L`˟b^Y¹zsWXTJcCW;u.W IM'/NQ[!/yPt#_ @jV|$|)V~zW.n].ٷxiA1xj6@LΤO(pעVFx֘[noqUXa..f+öV,.0lkQ/lJX8}o`m 9V‘]r-t#I@t.]QtVI.2 cId5DfMA`H8+Fru`0ɏZ.³So jJ W fjc&qnvR6{?*cd֪tS3S"wA|RT'~~LL]| l' 8A6ܙ:rX࿺~r%H<V'hTS)ƦUVr)/NaBM.3If!_D [jBتPif_@rj7._vE%[ϕ?[5)VKu4Ƽ㓒:)n^uV!;=PE|HʴӸpdrۯ5=KQs|ٱuE>@9әک.dAKԬ[M;Pgk{ּce˳@J$bԣР1룶IH7J,yBWm)R7H@g XH.N|=y c?b56V5sMhy5`a]]M475cKXų4xO)$:vn, <ƤHhbvaZ cQsea[?fз`$L e_7IqAф%Vs3ǿz'|q ~. V8Xr>,~ny채cw',6y6CBk"E䜀 ›8 /ќܼ5}=y/{"wv} Jk9i]|Ve 'ˉ˔\m)|[AyIoaV-p9K44(GJ{}-lB63I)qF:\lͳ\4| /qۮe&46wX֠ꁻAe(嫝Ѓq2Ldi,>(OewSt<r]&9%'zQIw, 5ZT:ٜ݇5l*æ7gߗPRdt{S b%g 4H+h 4 ~+;;c -]kdfoN-v 8:Լz~#L[KгmHb䍀 ,$.]G/}wlmtb( )zH%>Yɞ1s(VV*˿#]â+ Tbm, uWkO 9xDQޱFҵ#[5\:ײ!_va66JpĦ+`OQ5~Қ*5;Z =r?nL qOFXr{3{?!Y&o?Y#~=c;;4Nc Qs c9B S3c7 sW#7NmYQS]JI]8X 2/rl7+iM)'gzjr*tCFkYWi63i!ZPd;ͤ$$=d,|>Ry"xUf&$ʻ?vt SC Pl{6p@g!Ձ\Mo-ZMm4?al5/x7tNw,3΂>ۚJ AAo,eTԘ2+>28@zbe|[W,5X հ_"^֓sv`h!\・$߮$f`gҡoMLgplQ]G ߠL.`=c1,o}5zf,+VeʟӾ)ք{ڎ3ӵ +q-?_u78Lh4J"MwIj8nLQ!`!`|AtE,39 0  3+jyj Y?-<༒i+(gF;!jEW#z`DmX^+248I[XMnʝ@Clkh6J:q dMZS0͒>^ mﶻr]Q} ",樕2ft. HxI[dn]&t^2L_;­QN =ІP'SRts#~|C@\dv[#|'AՀޏn֕҆s;8v3' a*2x47sX\9w*Z RI0Sr~4S̀o{Su(bv/sX>;h4f!`t_r0-bRJZHY]I~ߞBZ~D-E09f[&;  Pu\NH cAXL a1nbNLb癱EmYA\/',498ZBO3D4*_Th^7@G4 A`d )s=F6ι/lE9!`!`j:u66 Gm'5mQbG$t;654[IsYH ϭ au! ՘_e,Lax7D$+K#]!suش!`!`AIAlLOz¿}yD.]կfYe/8A95Lk+rp5G'`#vJ|YV_DG7\ YϬשTf1xurЋJrϺXO,R ZLJg&DۀG9ܓhA,RytEJ9Aߜܜ4<4+$Glކ:ݥg# ?bʛ~!(e_@DW|aSg5tIc{W %u,ێq ,fi6M*ыvlj{; o;vT;rp ;zkuLȰ=fR,VLP. a@TֹgQa)d]jáGgÞ3 z/J2Ɩ}oeu>N"zR͊,Xp uW4S+Ӳ FwLQ*WPoHP[F:ѾNRGg}0r&͛OjA}Q 1|{#_ɀOؐWD/T} f?(G-F"O?Ҷ}=,K('7L,scʒ)E\ *8U73\ &D&<}Q4l^Y>5x,{2ݔ~&o =|)cCwk'~i \qQ}y\ws/VgM4_)T~k[xr3ep!$#GwX辐3Xg ݁)*U:EM̙wv48k)gBƫ}~!e@؟Lj9#M7uU[T! "i؆|K=,m4WaOLߧY22vTKR[ՅY\ǩCK︁>]i*+gq/Yb,y,)WYWhsmP?j.e>6ݣ\+v*%˦?(o'~/1͵+61NfDozO:1"e$iYז2jt-X*JL2zN( ^?9*^-VZƹsk[RW[94lSg`0x8uk`x<g*` @G#J$vݥ露_iNH"1`iTiO96-Y`JGԪFo,}X+&}\EuNy.넧)m;pG,3 ];gan ?onȴ9Wщc= @*ap2Ԝ[bswMVU1]WZ[߽g6o6HD#l̳gXp'OhJizNm&4rwĵ2^RUoT٪ ԈX<فBwH[ni^%8uVf1MjX׀Z,%b!2wJ* ܆9B2pׯʰޒC8j,$^;_pD=D21rО ^N (sRU`i::scsbS_ȗ$* a7FBj[µ?FKxScJhCW_ n!kmԔRȵ1 D%zr%K'2_D`\hᄨ *ox(W ?P5|&AK޴˨W1J lbch!`!`-AIAlLOzD.]}7$9,J}N45ReO *v,*k(VU|r-"?2bg"(c%l6`%D~%Н)WpsQf!,rs;IC8c!umS¥(M,(e3]jb$ޙYqߌhʁ,`, >cG)զ&$^=Z ۇYfe(aDlǕlKIv{+qv v{ގ3ܗҤ^]Wg1b?n“F7zSDս$Kt^)H&\L&y;#c) (-)߮^> N0U9 Ȩi#7q8 Q/@)鶱zW~ r$DBI.Hsŕ)}#ME# 5v!SȜ}%`ZeOm ~=NX+^i&`?RN*ޖ҄M%b|Y##Jr\`rXrFbFuIGfl+R<4]DfC I [3w|Vʏ.]iQ{7#xcV== RM ~UvRȠ:#h8|v|TkE׺M#TA#w5kj>&?!ԕs2 W:6b)\ .6?-hGi xM~ ;Hʿx%51@x2rE E HͧW]36Ɯʹi8dZm?Mp*]~g?.Ń MM߆zgű=RBxoPY۫ EZ?=||f𝖟[I^3T0q"cJ6c'q%|'.I.p{uB^G?6J#r[zg<^y}/#jyxZ$=5KսV{*c=PPq?~H%֌qr׏׾OM:%i\^*$W}=Y!`AE,3RP*vR6t΂ei4c<-9<_8n^|]S`r*aUQ[;ReU#lgYE >F Y%mb a3cۭtfj:sE|?BG }$(-]LL,d}Qދ>R0<Cߕ^+i!`!`at vczU"7tW@hxeHzH3E$Dd8Bn@@j7)`P鹋`U/:'e!,o!`Jjx8sUhZ@JM Ӏ%`. Rv!`!`AIAlLOz¿}yD.]կ7$9,,fr贍e9QBώ:spTV/y,__)yj8WD$5Q-ӱ5t0lg:=B Tٍ5` j@I%VZ CU5pњ A ߌiyʠ/WCMvc~|M6qp4 _g~K$,O҃^4&S5ptxhb/R5x5a0{p7*m'F Nl"r̜| 2gmNTNǚf3<)OTdȗ!,z$&%i ZR u5h  yG\1=Bl}ҜboePdo35ϫf$8N++"HTf7h;>JRRG 5ZZоو NZh"VOg<"d`JⅻiXSfD7@?H5夛 g~ԙ$<';149yݻ(y93Bt.A`}qS&0`(5pڑagv;t"uPid'P䉶bNZrzVX4pU;N_CZ?Tsp_x_F9>ܬ+eILnL,T)sOV (Ԝd~{۰[{g\ÿ+]D +d-:Uc\ńL]>l.x?sdk {m 0DVΨ}f8*="D'aC2ϫi뎆*;H6Y-g|O9mh7bJd1 UA /rO" ŀɃӼr.cſO!`Q_tkWAk@J@ X 9(!6(aW+%a*R mZaЪWRW!`!`FAjx9je,7|2fkpf' !`AFIAlLOzD.]}7$9,J}N4G6+ٝMJ`G#P */(u/8v"WB'M6p_C*O~S SJA|NtӍL"vh-1cXz3sJt>Be8-B^aL𔗮9NyֻPHQgІ5 %_ϼ~qr_tnjhQn͸'R$'닔*ns@xAN\MeqUIk"pٵ(&K ⺼\+{.bFÑWE-.e:Хͪߠz/2ǥC G"µp~#=,&G=ii.lTA'}b0Ie yߛGh6xJEYd10?'h!!I]&{Ui &ΔBm.Ka2*l;Jg0իd_cN7C 6FMܭAp x]0'g ܃G՘RAąLA3$bHkCҽs9 * # #g'b5oC;y>dQ1`7 0 o@O9Z|wn>p|ԫqkԐQٚQ쮫oIp6uI-kWnNX7ZqJX9BgQt\mĩ>4 #%-Nze5;2ѢQueY{oF['jNv k60ۖyVu9y5,?ʪYTAӑ'DĺcP,TZQWWs96IdZ=a@ gUKd4[=t^Ғ$O][L eR%*)-zshxO^S hmƖ+H~^-:@];cRM|<U]SjTR]/!h) ڊX⠻5҂+&x J!`!`B t^@ 4T0  H |!a!`!`I jx Qu}*/@B;d Ԩ!!`AIAlLL'z¿}yD<AaF?#n! sbX$@uLTQI;I -Rc9I_ W8jJ"wtА` (=6 ,!\R'EEF)#^yC*'J V|6hsC)Z}7ϛ.)m [+s6uUD@iL(W` UXqԈz\ر6&ݬv‹P4cyhmLVe?X6y^,'ӎ`LםC4=Nr+.P~͝1yሇ]EռOh,5$B_ʨf#-+ 6b0m- 39'CzY.5 /eZ:rcD4C;<9^m/Ml=i.Ƅ5_oD PwCS$v(巩3+`w,'#_m;DgE7~C?[NbĤH#)>!7dp:ٝeFFꤛprp5tp9Z)ez!ErP&wT({ŏUWA 5v?π̥8UstڊY^b7^xgpoRѠ UŕU;!`!`/jnzQk:6Jt3Ⱥ $/6XK_)p5>7kC4 /\@_&*,=AO|)M`Tf$sY27N1V5C,HP.p f)O[zgs+槭^0.GX Mc*ƴ$N4)4&7*W7Jԝ~؇IOMN%=U}!%۷%ri!*H{}:~yrrS|_E&WR6:=bt7 \5=@4{c^Y@ o?bGzN0\RSM I\$kO>f#] n­(~;E<1_| |cJ'k?D\ɖfr)-*8s3E6{H=A}] .wwi¦mV)KE ISbZfGt.HG ِUpGv@?~8=?2h Zav~8b`C󚽫BWHv\1P`Dbb"Q4X'Џ\1]'f+^ɢ4eI vfE0Yʠ,{P,dL0#ZNjIQ]F`2DeLuZ:c}Ia#k,;=D`tY% E-e2"qS5~GL뻡;Eomӯ r;F*viHIB1]V'5NTgC/SYQ8} bfY!g; [yv^ =IiBtMq9gQ<1čڑ.W*4]uhpiskK?̵l{J?R=/>a?M$1Cp}oDU1|d>0&-w#j;E֋{~K6 3w[l2:#"%e[g( tf@|_=2!ߍ'E%/ȫKR|z|O( DF-)CBdF5?QU,Ϟv@%,BZ)إ7‡nӡ)-7FZٞL7af>;Ƿɳ4~= -*{ >f*D&aFh$jOL}tT{s&|D<}meD9dx!`!`ARE4L3R"5"ŸWXT1iV1D.P9j@}oEE2$S9hvbXqZ2{i1\6hK~`gOwH1; 8S%S<_)T\ds'@$z!`Uqt^@ 4T0 wG 3vh'd#*ʅQ1T@y*;@JdEQl08$ A4(Db% >b\h_Ƀ,vx>vm}]*5lHԧrHtb$fIpCOBΓ?';.t[Pf &AA;k$V_1.F f \@ OŚYԛᗆ0fZp];u~Qw~kY?)1M9"30e]GUWLɁ>w CچE5\GS -Q~|c1ФƳhc;VU 34{q"יmMtyC o M=FBQDlX9@XfF;zBVxwkZQ쌖Wp"O)v>qdr=H̎CPQL5}G|,l>ZA'X+@zBtt+ h*HEŋq݋܍cP%~ E4 ;&K9T+9 Lt=ˤ  O2ov9:(I|N:.X kƢ E?>- *PzD1P9[j3u:8h!`!`AE,3R"5"ŸWXH{&؎R<7̈`50lYE4YA0Xm8 P IA4o;^3BUGjͬ[; q/"C1a5; \cВj 1NƟZ-cOyQ !`!`Pt^@ 4T0:w% ۑܒ¨|*c|)hFA6H@ 0`́!`Ejx| w U*^K_?@!`!`AIAlLOz4:~ɲa$W1;"DbK·Y'yթ4e >HGdis@i77Йu؆ϙWMa3z;^ ̤O ]zw,~yK@[P&өi}cnO]7zbkSF9+*QԕWXb0z3~tS9uS'oʁԜ1V#N>p="4D0jޮD=Bu!Zj=kUO#]lWmNuDc<8$lY) riNRaP[­.1~cc ᤂQѐ#n))-c:ӕG] |ɨ/ `$xS#q^S/lM`c'-);o0 V!? &n-#{WާF[8;b|]m`o AsT#s4}GԸĞ1fAr04܁?7R9 KoJI2427&?; x G_5@Yc)l(7l,Jswoo ~Z oxok4T:!t,R++yIJZ+C $ v!GټkZb+1_Mwh\dkp]W2&zpҋ)gv74 ƛ"٧3`1l˲\ǢR(kXhb  '"0-@ڔ@$&s$?z gE9Z D1Ov'wYFg_lf!z J,A <nN0Qk%lWqKT4Zn e6z ؤg:z7PwY1Zߚ:ɷ8_^1=θn5'N:OzqWa}4Uł%':jpKsNfy~Vܭ6n%RQRr7Wkj]ڭ?R X8@dR!`AE,3R"5"ŸWXH{&؎R<7Q50_C{BoL lK\&HF,R= !`CjxcPs*&! 01a!`!`AIAlLOz¿}:)`9Rh ;Jў{IGT|YJ#x[~D<Z$]!`2O nq+ g1}5 s]sFLMsḅەr?@|t", Jk31,}&Y$7G0ڤK !95ct аI/?i)aW-tᾰѐՙ݋gHUNP;6V6b8˦[UL3pڎI+\{Uǰϑ<F٦:*]('g$le)ku"iaPNnZtq p-U"A ?~p!<ھDQHaN@wh.?fto*^scb;n38kjyAΫ\rAu"' Ke7F7էaA=1!`!`ABE,3R"5"ŸWXH{VSȒd`1E&g"H,}uM<&ro}8V>dY =?AA!s,T8rA& L`1V.hFNm>u{] )e~r`ԁ!`Cat^@ 4Tv  8DB9 oU5^fJ@P[!`!`Ecjx*`WhuX*`"Yb&~!`AhIAlLOz¿}:)`9Rh ;)4 j"cJZ1ŭƚx9]*c04>{'PӚ<C$tAhk2'y.A8gC<H6$'bJ~ Ek|锆{BmsPlM;#'sI\KC\]Ty]F11B@1PnEy-*APqY x/F^:yə%Wi \@sMiBDRMKK&L:5@[Nt\v~׆FE v9O\zowHr9XQfDʾLyHk2jz7rh8h)!`!`AE,3R"5"ŸWXH{WDjfi{I!@&S ^A(:]I\m9>LmWW56Y;D/jEZh#ר2 ,z''ׂ)mkl8; Rn 1!`!`Ht^@ 4T0Lj5&ՉA0Bm p 8X@!`DjxT 'r@HA*`v@)`hր$ !`!`AIAlLOz4:~ɲa$W1;"DbK·YVلҀja&v 8x^ɲJ1~H(۬|2 Vh50Y xw䅥k<%ƬEsBF:"X|5D |'{EDpr[~is '[*yjR3Ι[uc]U7AYηGN'v(ʤǬp)(-G[^fN”^-b@X} 9Hfן bG{:XUɬ?5Ld#7GY?TkB`tأb>xFbuJQTӽ75xEH0_gv'4a?e6tHntoNq&[D/5*#QJcaAcx45xtR9& t! 6m C^8OU{PH2ú[)>U.sQDb<G/'-KR40Mx+D̏d0[@yEn-HE?` X׃ȣ-k:TzŸ;Ԉ_đh2j~܉ '{GE>-n閬̷ 83و+uG5M[57 },QƩ5BG))ɇ˓ Vs> -Lu` ;]ȿxX%6V9ح8YrHLq%\+;s0{H,m}ݑ/Oyp_Ȗ%ϣ_{*i&)"i~ڬO|Q6X>(xM39zIF>ф@9%\b'm/~03}H ԪA:\ \[XlۺméS hE߾`gE]ÿW㺾|z;Ωqo)vE9uq O#![FWqр!`AE,3R"5"ŸWXH{VHSf}3'9y/{S^Yjv1e :\AT&_,jf ^ܶ]Hg^ yZ 1y1Ovih$f}Rz7/PfB (]!`!`Bt^@ 4] P P.0^;`4 `Ԁ!`Ijx$:D L,2)`@ H"!`!`,AIAlLOz¿}:)`9Rh ;)mi0 Q"ȝ.[dǑ>0Eogc } /Ch,|}~Y |&a@Ʊ$e|Ae8U!z<.GvEB\˄pb=N@e#O'r';s$~WV6$w-<w@<}"9LW4oXL'r3̘0JU?0b oj(~{&s0EKj񷀦h;@sؙbuƿ8•f{slp:3  d?~" ̺H.p\1 %ew(OqT +|~El? 9u>J::{8 *e4@~@־Eaӗڨjd"ĪZ ojhJ/uHߞb^~ϴ*OŜ0SԒ4SA[:&>MCFGcxdnsdKWlq2~!`!`AE,3R"5"ŸWXH{&؎R<7̈`50_C{BoL,T-g`ww $i/Xru Ax.7pHY^5J컑B.2!`B-t^@ 4T0 `]P M ?!`!`A/jxF@ a@o"  _݀zm!`A4IAlLOz4:~ɲa$W1;"DbK·YVل҄OnЌ_5Gt#j9Brʙ7F_+mu^nLȱ̙1|~f,ey‘4u6Ü"LT o m!UCLvo~L{<~ϧR^Rഗ?@nH'lɷ\2ivI1pyU@?A;. ]ok/:i|\kGI|v2(b$u-Mq-+͂\E&N8_`0T5 Opi(KX_'&^5dۆAE}^hA'mI>ٛc^Hס,QcN0 eyy1,[< dtS'plE;TÐ3ejQp0A >/>p OMNKkSyx5AdfIG&h^ς)0$ 4\(pY2'#q,9n@ 3[Ji p5*VDTqs6:rpKW@GlLx֬^@ui 54}(OD m~;%g1X"8ыx3 *2-]ϴS}iVn5Jxgu{7jPՖ?/zNc͉"Epaӿށdg4FW`@Kge/ QIco-ۑ=\vWb}{}D.9iAO5 ^]~ B`{=RD*lF$8^GR=!uWGL8y<5^#"wh!&lvOyF!`!`ARE,3R"5"ŸWXb֪NH9 [9oiWC8k4#z$Id ڌrRLki~E*p͚vtmbDٽ-jlК@Bow0KUYV -=FH0@!`Iqt^@ 4T02 !N6k G@ ` n9J% |!`!`Csjxy $% _Xހ!`!`NAxIAlLOz¿}:)`9Rh ;)c-:1-j뻕2!QAU m!KV_S:Cx0e4hOC/,濕xT~]״ҁΉ4PUxbD"E$-{-Ĺ".QL~HeN3|Lв ̾doN l<*7"* Nd^Aŕf 5X{\[鹲n-ZTwinFxܻH y|0,ge4d="+NL~iW)jLQ 1>NȐYQ?lB&Zg#!t|8bV=g:<QMW\oS~;((%MLJFE${u+,P78mPKpTӸn\* υ'. Kvmv}sw]-Щ#osϖc|]ylKGQ :wct).p3+GU+EVf,s+YnߨhjbcWDnZ C x`s了:np{$':Q_՚`17Yՠ `Sh_3X@e!_Ԧw8v"6RC!F26 {AG!pJSqP ! |C}M Qu`C!`AE,3R"5"ŸWXH{&؎R<7̈`50_C{BoL,T-gt8˹<b糾B[`'Ÿ*}@A3# HP8H" Ƣ8)Ykh5 q8!`!`Et^@ 4T0 .^|i h b!`Ojx4 c|XKf( uiQ2R,UMqe ːaӸ| .bEl&y#Y_ԉ4v ʳѫ0c"~3LB &E'7aQ$^$@4ad,Ё.Gn- Ԫpi9PB_4w4 +P:gEIũ(B|j5H[1G8s Ccfx)Ӎq/~j\dlܙԬ+'Vqѭ-=cJ k6 y3)l}VG2w`vHdk?0˺LAWZ]睗>):Z\ӎςv1r`9.X4 xmX cE)x^O$71= rRݴĴ?Wp OdѫU7-n,ᨐܓztTA}),$Oc\2Hv֛` '!`AE,3R"5"ŸWXH{&؎R<7Q50_C{BoL,T-g`w/EG1x̤4hM =Ei5B}KI XZJ s>3-*;u B" !`!`Ft^@ 4T0%mN 73@J@h24€& P!`Cjx#HBhha/o(@T8@PO!`!`|AIAlLOz¿}:)`9Rh ;%VVmg7`K33j|냃)U;>߰e|\<x? QG!Ҷm_n! EI KMׁZW]uFL1 3Q86t f6L?mP7x{{[ 33 pJ J2]lǵ]z߉DxMT4h ͵4Ȳc$κ!β(MK^c8X^gYoa}K&h9?؏p'JݶT?cUjX]5.0# ˒טװa;tt-r$YlMVƈTF՜;}E~wiܾ//|@*Q@z/D2b`]@%){1r"þs60P#ԥr#jj=?T fYpϚAމo#W {"Nfݭx:hm(9y _^lX@s,M, |k)d 5ȂeajΡz|~1J ɞ"[IQKř>I>Qq u;Cxo&n%s^M:M !`!`AE,3R"5"ŸWXH{&؎R<7̈`50_C{BoL,T-g`Meng_>,uSNo#rͻ(1t'F7{FUm6D`1#`% !`F=t^@ 4T0-8 J0A4I`' $9BP2 q!`!`A?jxF@ \@kj +PR,!`A$IAlLOz4:~ɲa$W1;"DbK·YZP#TPz? ӫU `>үdHhLhXRK:,pWݣI0W)r𚲲gilM{Xf64yDq16vvIr+*t_Z 5JĪ- [29_c;):z`{Fظ݂ĢQwW*<)>wH^_C&٥ z$J3UfR- bQ=,y&ݒ#NܸS`m䃛!l)x1mP;C0901iq\U?lq O ]h,݅8ٔUi4HM*9,kTk^`8J*C\0ut!$^,;I{?^C?iE{3,Wil#P=z3́fiw [kE4gUAc!pܛs4_Q.^`y# 6+jHy?T>8[s_9R|߿RdutHDS>Zod7)?#|\p 5r2wy\11}`5H* Sǧֳ(\F4*a͈mZ4TbW9M#]~BOΆ&D{G1w%'%U`q[}O 2a.w*{(po׆ju# _̊(mxKli^96+QkKkFJSd/- f 7%9j A g3}IOSo,`~@ʈ׭R<_wPɢ"'͇ހ r+M`4^^6oxZ&t!4"LRIk-f6IDN!`!`ABE,3R\"uĀIhԘ/H K/Lq cDr}5cز@6`S6\PI~>!f7gڡ)cm7Zڿ4?:c@ /+i~\Cy֒{3at E.BIfF6Rʸ֌a߿pnfQ_ӄ>Ġk6\9dD[nELǻSR4#5ZyGe; 2=.UeR|B Ƽ+%IvYjJX}J*Ӎ*#P;DI @d{F.*m5ff~yZRe2!`( D3{\V :XDPYS;^|{Uzto8Ynz'@!w|6e;iV$|'Ux*#YB.+(1A=~ئପrW *4f ÷'=j/jWY9Jt&=ĠEjoOy6gHPEJzϯ泖Z_>^.Gv#pX8Euoq[}=QzuR0]nhMNt^}r\[ V jd=(_̷[$8| V,&+ʽő>Yu!`AE,3RP}*l+{1 .{l/yj6J u-:w*-!xR~CRhcQ߶q}+ ,֒irT\. !Eepܪ }S1#(K1%(@!`!`LtY0Pt\@ ѹwvXZnezPx1b!`BjYۤ:w<`[}V!  Ad!`!`AIAlLOz4:~ɲa$W1;"DbK·Y-y_2^{hā=,]q"v</& {'9OM6뵈~PvA;|h]bMς2X@wp F^ (dD_SNyz}B☒rvALMBE?kLST+~s؅& AT"-N !W"fHGKSsWIqݸ{[LVlIz4w]{E 3݄k0Ogo3Ks|.* blS0,B4vҭ*(aƥxD'wPpe;Ůڼ\HKq,Fycvom~5k; ?|Pun]^ n /N"݈@< 5|jwH_|xɑ>?P5uA6):c$LS 8FphOUp:Jk Rvi2sveId=s}ņy w3>%=fjb$&;Ds' %6HyQFT:uZ@Ik%cqIHMƿFH~C=vbŐ|cd; vzξ9Ɏixm!{ѥ#A[?`}G@U6_P–#S:8juLSw?Y.z,[UND <ʺmױ05!b,!q!G'1h2$br.,fZZư#%(ǻ!`AE,3R/j̭B'TX|ZI\|&5i#tA[EAJ]qŦ7 {&R-IRt8 $ͦ3@JC_ѩ`Iiag?<}#K2!`!`DtBp$1q^  hJt! !`Gjx? ,0rC܁r zx}@|$o0@!`!`:AIAlLOz¿} ^j4fi"PB~Y%)fGδ*O΁]Hkۼ2Ip ކb>Y¤{v8=GF X  o|)w({P]{g;0twmn^+2H6q0>0FaVѾyپMg:qtE%)A6~@ݜvv4_`"f$򑫛Gz~fɨ&JM~,[z/]5Uyb\%w> <)y3rPTx?  hV~. Jlm$x|e1.hck1zVΉvK5mj ɺ =3n"}NIJh 3pϵV4h[ V,jk [fe [вײR3Eb(0%V68;0ڣh C9jA*{f$CA^sܘ<g-!f_[X#q܈.}5lpTrrj$Jf -+{\Z/cN=Y8Nf\Fj))X !j!9vHQ$'i^bF$m{h0(zh.MkǰgD(FGQf+l\l\}Z? !l0NZG n'M"G7͐B:ed=c< ~3da1v@NxjK)3j}~ʀPjQ]q@әP;x _H9`=E,ɖ_G(1n.Oxy<,фֺg֭DGL@V-v]R s >xՈNtx _]u8ոL"<; M$ b8uĂV)8!W(3aUpn 7[w*# KSeoeZY~63jK _'U2y:`dM!;F }h%g8J6B8Iw0nu>}4u'% 6AAvxbs< {p1`I % 䞁tds-}+ nE/Օ`nX3"ܠ\5vnLw%ՔSR0uI3T.TabE!,/##ؾS{&^XP>8XנT ^ORӐ(;J.>6KYj.E\3VFt5 2yٮ2'pf4ֈn6NUi5ƹ-/ 7 gUpL7`pӥ`vV'=xxl `D#h^3vNKoENn.W5M']8Ү 6F _"#r5-;K/ ZȪŋh%įF$n12ے8sRi?pM|غY4vәgפ 'DOJ"#fR.~~D .6ϰyY'aveoSG}P\C$O?,43);87s o3\^,o+~MG'cEO;5a1С RkzKZH< BQgV))ÎiCh{)Dk1PU|oxU㪎0FGWz)vw5G5Q ieÕ ^":3*$`'HS 4W'Qcx9 #e̦!nЂ?FW&gI;keڕ5^I.ϒj8I kuH dGJD> ~_= \"{ ݜ F&z<l{3i6uW)n\NX-8J:;ױ$fV4RxIFBt-XUޡɝ^+XPpJklE>,>l^}jv9vBV^:x?nkPXzP4|N.牺u^`5nV.*U%ڳ-TQN YzyG['()j셙wb#2Th|l{쨞#EVq(I:pNuAM?1;CFqQp:ƽ"'"V )s 7ux$+IKV{~o*6Lj2zXb'^||Bm1Ec2AVm˒W6H˫ ߾ILJ uNAMw܄uO>=j5=—^ GC:~jy뇔3/cwzZ%"C$3ל`H!Oǜ"+*YEj:JL]o^ҞP CS섦INF%`_cVd4yp8Uu:zK,^ V^žZ4)))j.pk'Ʋ3Dy^RȜWюkynCqzŇX-džCpvY'ZI#65= sA>Ikf2<5IkVH(O3ŽF>wjˍ.~pYX;MH,ǩt2zGZ) 4\?  `[: {ZLבO#!ՀƬUGT= u).ԄGת@81tV(rdo]܄,hC~vӝkTP0#z:(FS>/m1E9O)n6~pb<&-s5w3 *zqY*İٓDlJ*3W?3]o!Qb݊x:jn7c|j%Y@or˿ ȣٸs@%lq4JJUKCr$3NY&=Fx.`r#2ms3Kky3K%g&W=R@Ta,3'_0t&Ӽh;T;{ayoioB &^"Fφ>߹M6_s?b_ϛvn9Pd,S0Ng?^9$0Φ#j7[)PKPE?{e5_^)|/fz׎쵩Ȓ=TGH nPat%XOW='w7鈖`/ ~g7çGe&%lFg4膿z\ȝVOlqg԰!Y{܎RI4g_elIXTIP.$Ir6wh\?wfk6P M_mK"dau%(\[]M[VKp}%g&d>:{еQ [%:ar!+;xf,`P%3EۂXb㛻̯?s̼2' qwZWC?TaD~KdA:tWKȝ$.`āJ9kYR6,KT:9@[EaďNwK4F}ldy(7n׷ew\M&.^^{5]ʧWUb ],PؿpD&}]CROf>]wIr)Pc8\I%r8ǣvh`Y|=WnH2sL9ća.mnj"A7v4zmdqbQ<鶯p휊avK?nx).ladtzjf A's?zHiT>çG6e`ZbyIc~5zCx묰6^-R"h#^9c*6nGu=bٷqV7snv(Ss5Preeh&8YhH=9xs-8J? 1 Oɀ[|QNFvhU6&뎒!iV}V ~6쑇XWcYDw/9xRtkVbðڶx W+B*EMK$Ggĭ6Q(o\iu{ {G\(>@YR*"|.Ԙ}\ki6ŴFIHcl̿Rn!߱i U1sx7{Hm͗!J9GFk=6{vgj.0Piȼv:*ts[ZÝ o=!;3y6ԁ+GJAѹ7A4 U!Wd"|Q)s`|:F"Z9AL*pA/#o#Օ/'f0QY JkM"K,> `)fٱdm sɺ*e/%"9} j\5-kQrМrAJ%A߄$J`9S2׍gXqrIcrؤҏзW1JfS|b=8)$Pz^)/cu{m)VA+6'`ݶg&cdH\͖ڰNx 6PˊkPʲ]#GtbuŲ'3VO dhrfHvE2QO5-;*U@Yx<<ι1>2(>'v 2K_G&߷0n<԰ɝRGD%y׋:z4heho,^,Cn _^oP}#PJcM%ǂxKu < 1@= ΏP^Nn"3}֢-}EZa|02[pTa0 g"&($ DZ;>B1'<Ō<G,( r4R؈I*o>v  4 Xc1i' BNC;gn؟TOI/`U큿"NN C"Ԝ? L;5V$9;=թOV8b;epzBGC^@q,'!6R &S(nX}Ѧ{”=5mh2syNenգ4ܽ-⛳44& RK9Ծ=B)sQ#JGG+ R>*f{]jBh qѥjb=ֺ*k WԠ ;΀f?J3yh*;_×]LH֏ U 0AR,z2<` AyL0lT 6QqK' ?(8ϲ5R~C3y Ų/z5\!6&J r#O=tްi{0{LYdm>v pKLWOYF8#ky`(`*L Qnס-5vx!eFI>W)sk_mf5)˟f0 3 pQrܻmsmSE3.qv ƙ 77#5r5tC 6r1ʘZQk +(|0%JEvg_Hllr>0 #29v\3,6T ^<e\/D_/l̃,X SZ Mlxe Y[ ȋԈ2Jb9id@f c& Ox"UCXJXNȎB'$9"yu ^ 0u4OMX5w_UN4zMF!,>͆w2o*0?"\δ~,.!հ%x'ՄrT'ȲD>wf]gijBD~,Um䶍;w\.AI3\$߱$C^}bܶVgU)ƁBs?o>7X!$d슡|:c[W[-h[u' B'ٰE~""WA; ߌ!˭`B ;D7⹡Sn!T =%Ș:l;BNLG~. w;Mi豣n/ޙ4cs Ed?@1Tay#FjxL0z/8eO] iQT-Sf@1$L@:]rx`t ފwT 6oWsn֐G=Wre~gJqOq/}8 A$ǡqd|~҄H D! Iy_c1wqn JtD $kjgZOހ3I=/A:Orh3 3|иL[ʗfߢn|Hw&Bp K,Oz]"a7MrPÙ#hsMzd-ǟ_-}NjS_Fq]o`4ٕ;]S-Df. f=x N FIxLG3 y-v 5~%NĘI"e3.~Ǥ¶7o\,1O;$TBZ'iD<:Yt`v}MHJ_Sۂ62@E_CϯYiQ삥,R  ZE RӅfmO\,DLŲ [ iH▎HLs`U- xIژHf{܏ PE0uO{?zHiyͰ]FxY&x}K9uǜyaZ&5R8zy|LhdٿwwpJȔ1/_㡕K%Ud-YR ٞD! :JNgՀJ=vXO=}Da O{8Hx-T#ZFUr[r̜EYdk9>vu?f)̀ bvxsĕl#~ӫXNjϊmw\05Brt/eo8fF)E>P?naӏ*4{#UX}?S`*=B?z7UatU"gijb֒k&h5TFC@~I_ h;bk bFhwΗ%!] g $Zmf#]x*Iop&u)n=QlΩ`8#Yc]<.ޘB^:HV2P弬q+e#b`W)(;M|>gExxkS豰 L+ %g|up:/`Ϥ`\7&sl:ۥV/fI>͟YE7)u.^?ꊌrU[*%[^ZU}U=.c< e b.["/5T t.X8M{=KZ/~q~Kpw.S/zVvpA1b{𑪌ԩBiK(deN]Z|ak!+9,q3ڤm-~$$m_a>3KR_\.bD5ʿF^H L 0&# #u'|ԏC>$kJ2NO(lL&d^/jVnlr47bAj'm,7chK= 4юgv2@-Y⩖.<{3l7(+݉Þ<6&u纑}uÖQsz*S]@a O@ 2:ߋ{?WMiGg\s#m `h;==n"_6,V XH?`\Ɠ`vM9H\2|UC9ɀ(I!\,kw~xeXˎ ޟ1'kOZ;k ޫY(+%Qκ`Ek-Q08M$~*DUq|1Q<'<G!R*3x6"!RZ͍wa!AD)#8}DOH]/S}>g1]Ga#IDծk)R~̪ۤ\Γrƅ]8wǗ[J8}Q},QLI]PS]?CMڰ-WґY8\{Y"rSVuد@Hd1URi:z)#C,'Yz4.9ʝjh d*N:$M«$JEvZ(-NMk#ft[`$oc?ƑW J#pٻ]z)Lg#A 6 cj~%mDpU"fJĎ-EY=ъràbl9Ni - %xbS%(a$G4Wc }LJ@ Xv5x-/|ΐZzBW'NF=Y`]" tm"dB"?"lpebA`:&bq?O7)嬃SB2=kqvѠB#YoVd&X\MQE F]x`Si\(v9+H:sWA!^]W<< =:%rn g *vڏ2 p;OӋڇ-4w+F JN!$ ulgbx>R0:p4A 8'x2ΧKIՉ(sAwߤF.x#-J)#,P xS+q AQEߵ+.c<ګi)Atn&;=K@Dd"tiBEQiHH%V->x)NVl[TvzDpqTnk=|37|(s\4kB5BR Yz1~ ˷=G$۠zqϗGBa$uƌzRwi^T6$tCحU]h 7X,vs 2z_y5+u#@ 8$Z:rS,Ҵ>N+^+vTk3D=V.+p:F NVZ]$ 2,g8hv:57k}-g,SPH[^&/=yRpF/'eA%@ȟ37y^iWOz O@.vvfP<%?ʾR K' \5Gb78d>gI Q&Wv`q0LU, &*=iӝz ;P q6KK;ITLIAQ~ JV= ,fAզ͆7RK,XXXFΕ53`C쵵`:/8D8:jnPb !v|f 4bI2U_zT9vY?y-Fܛơ j6Z]5\Yԉ lJBTZmRmctq-cuvqrsm2UDa~X>E<:4'9J}^@ B%DI” ~je6S92=a>yN:v: a<@ۉPl5 ;l+gpơ6$=)31@S1_֏r܃`ͨ;<@-t+&Wi)ʆ}yN--!˘Q0eh] Qtq0N$_*+xCLwʇ oqMyo> 唚#h&ӳwD:E5dljˆQ] I31uDuλCE& |Аt ~koZR¢D"PE_| y٥hA`[xl0NHrվ)s̢֓3;E5H/xT$y}vji3kȎY"/pK2_@Kf'70'uiq) g#9LV gsɂ!x.(+u=]+:n1ONz N7de}R=g *y.`vpk4.2lɚpm6]%nK+tIzPwi׆W/ESy V2B-et B&u^)5uMf4G.  o(ߥZ3la$]RwRK1wکxḁh<0r(yѕT( DCM3}3Żџ}Kߤ3rY GX|zdc~TÁ[RN2q 6-(+@Ewk7v7Ѥ9wZ@ӱ78 WM"zE$){Xg$fSH9d3јF`ߞdr;o{uduQ$Bg[qda0 F&eYlL5VR%@f}6$ۣdO\D;>~V|xzv!2bJ%60LЭݝUC- \==z[槼8/YLdgN+d:R`Y~ #{ʍjB=a:Ɖh~"ݜ\_ث=25**S)4dy YB&.78.ףE,O3 3+3m!`!`AE,3 GW.&QQe DKB=+`<ɿSLt@},2ϳ\PFg&1hjpcC^$4Xp6<= K:Odj/1d|"^m?IB:]]w+z YQ!]pJ| ͂T| Aq@t:N_5ޫ_S, oItt{Y&3?Ev*u3=KvvP"&k-Cr"*=7kd&t*U4Hc$J7L_ j5zUVт5.]V;`L8 ( چŁYNtS ՍsOlFU>4Na.I.b؜ 6=HgE߹o7s8h MSɄtlo >=یY[=v..%?4;`SIYO"V ||w şIg$H]Շþ[Z$ ;DOϴ(z[-xys!zXkpe*azP-H]a"@1U:;48;sneq!`-t@S&p 2$>\|ړr bѳ+j[ a5$z{8,6r0MDay:xHD rqqX~PtwB_wR2TG ėi]Revh_[yЋ]jKԒ9k>;NӮPsEmD| ˧ X_ 'շKE uAB/71!`!`B/j)Ł3(縆uu)$}GDfq "kwKZ9eai>+B& auRycCSD/+Ny:ڊkyU7H8A5DbBMNlp%s9!3a ]h%}8s7,! YwtbP^: ו0ZIS0DKUÍghL/S' JLrH;^CV] zk܋LНa:$k$~JU!fm,mmX"wr5LA"UnvUۋTB̙F/.**ݐ\/}B!:U BoEm K<}kvn!@ʐ4ھ&C7`U:ƋWRK*Iռ:5Ϝ:#^@%{[q!`A4IAlLOzHukg:ŠOS/汐P;RHq.c F98V@::&P6@T.|HPvb3S q_5L-!uCDXF>I#\ޮ(R2Zw Jw}1%׍Å-9(tCM?߆nsyWtpv?I|5,ޝbM9C&:Q@MQRg-,{kw*:8E9<$e *W$bvW jsCV vXR2ϓG5"(}|,!B ٍ݉Yz\١5+a[cT?r^0Uf,&( 4 oq29Y8)!80^ej5u)8<1B!e^?(f1e]: k<ޭoҋDC{smzm^=$Ev;_@/j`ĉ1mkwUKRcdJYZll#՝"96'GI '_`:"[UV58l'U|v.Gv?%&78i_SҠzXZgzE}YËt[FV$~h~ 8UJ6eɲ|. %KFfnVVR^Q-7=tw ØMM?/(}-'a yߙDŽ40^G,Q.l t$i>,Nw ԏj%&C9᩶ wɂxuc D.5r$Ti,f㱽m@P,S )7lcg[#rpGy{\5tFLRKG Kp$a`D rw h[&Ÿbm4i".3ex+'ld#E~'J:$m 7Ht 8}d~997P`>wTS`3*.CFQt$p#@RM;ЍhOvedK<}52o,߭W†\wVK+  eq4vl|X1'?; e#h\k 1C?s|>$SAo/rs?]zBi4K90ߠ++]"b{LQ &V}zGiq#=g9E0ɝ7fQ0 _. ̿AޮdQ8v.vK[*_ WmuXsJRp+xXӦu%[I I!: Lkx|ϫn_B蔖xs;ha?eijbsI6 J+W3mb[oC} *~_n 7KDQ~%-*LFAWI7g)#4GLl ԩ2BDJ'H* $ muf)Ȫ`vo뭸MĂ}36WQBXvZ( 榚.;꟏8録H\IYX/_^Bm>Iuod9=KGQأLxvI^x$A^ e:R!hU-c;V}PdR5s~_'J D( J7 ] Kׇ0@ E/Udw^dy DIN#Y2 P-*Բrxd*H ye~Kĉen[Rخ1r\S T{N$,l_|@a[&rxZLVF W5Q59-EUoj6BarR\ Mou(t:SL;s'舦!*AEo'=lg%yѡc]o] /db#h>qLUZ]1 2meɉmwIF>ɸ~1ԕ>d;~6R}zF"rhv Hr ETL qhn؃r&I^F,\:On40f!/X̳i $qEBlrE?; hHj{tέ"E2#G&:CTg,ncv@˚+Q>>3cUn۰Xq&Hcd+kTiO*O>uOF}2*;l=LE!#6MqTvx7 )ܹi?AyF!PgG4L4HAwcPy.]5,V;:uZ/c@vۤm>Z_W(SavxdgY(@*>f;CQÎXMC6(L;<י,; Bp@, |q0a@_x|=E%/8f<"%pf9ghCf*?7@/eьʪ^s@RhƑ4T%\h_'!`Cb7kF;k@c.i{|4)R^f@iz!  6& λ\ 2{IUk(9(E2Tzw<=Y_ IMG÷婊e\&ajҹ?Omo?5arFZNE<'uUZv9>9։J;xWK;MFX4Ny !E= ]*1ip9V:ł2l6qSANCE1oʁ/FB2m-X"bBDwʗL~TVؗբ#,ڥ`qRb"#~-/B* <23K|l&jb}MOBJPXa!`qtqPDkO&+jge6ak wd~# z}h]XVd%{Puȩ-Kզ`t*u2֒c`=O +3\/5u.C # ug"c I싟:)hUVpj*/ˍ~ ;e[Tp#TE-OH뼘A_m} 1Xo%u")24,d*z7yPGU@>0B/@'{}'TU,s}{"^MBl+!B౞8s51~>s+ v/ݢA-{"qGg et5`kCA^9l"i rSwF3l|=$zxk ;1/&0fڸӉzSEIDU8OEh,IB'/9/(ym!/o|;-o:b1%+c(JL.>,Xa)\⟑c;yAܭd ?B|^sP ⅛?4"eB1,!ȺOWʞ)NG!~w'[ԣ l󄸽ҷ7*i^"먲!aإ*#qqƉuT!+~SjstׁzTܞKdW_יKlF! Z<Y¢ٸ!GLU$Sy%=x|ř|wy̴VOm?5^gIQvEہo}nrZۡuVPu%LkZ;~OG){bo;V4q B KLL-qjo`ʉBB)™Nο/YKՌıH3}>L.\ih02(H{܅`{/d*FT1?<ʃBYlRkߋnA}'5_dfR#q^Z!Ζ_&MhLi0!u|GX3/u8D;mELFӃ׬| y#ه2,rkbXtԮg( l9ߴZU41P&b#3VyJ#C}}wS@9e=oU,2J : ?`w+h>* X'޴]̦>ъh`%I"b}!McѠO[Q&^".|S%R0_{z--qX݅R=n6gh>Dڛa",(8.PN-+.ㅢ. Ipsg80y0F?i'$:n}4Fa'qG㴋r@@ĕg}'%˻§'q.ct@wBmVbRWu >!|W`;uW\8$2K 6ɦAw9'ukf$s xv*˔k$,RG;O&/sl~?΄ݟ+ јSCaK>N7vk n+4 ݛ"JY5hML/d3~;\;oN3Æ|C9wҺ'a'أȟ q';dp[+ ]TR{-87D3:QN–/amâMn2=4f*a=𒲩%;˪l.lkL׏;v?}ZtJǔb}Tmgb;q 6mrD \Z\_ n49 F?PH]Qr'm=\p r0|vMFtPdΠJiRZr=cg%w]]jC9ҷv8g=I6#tFT/!p6WSI T }*~+TI#}&ݞ'ހP_~QvgLb=FhLbKD?acL`7cbycjOE$ oH i!eP-o@!`Ae )G30y+OuV3eoTK.M= h#2kB*SN{5)E~FYꝎ9QlP淂=/Yx=**%0; ĹʏXCұp9]0]-cF',ݧCytAJ,<{P}F-s5b1q߀jy H #[3"hU1~FWj,\"B ¨Ӝ0r{㥍CpbZkwu>Nμr}r?_BÇ8}e;)UnR ڲX0E4T/d,jeIpuMU?YoL ⰛdVMW?O{LG} RGAŞLxghrP1=Rq_RJ,,7$xPziSׇ&Ψ?d'w p)ϪGt%nPQR31C8bi\< 'd^Fjy/2FC|D~q؈u]kɷk+/y[ S.^58}(ykm".*t:I עOi!VE, ʴn*y P}CNt@Ri pns%2*5VB){jX{]Nx*<" 7 >F=UmEg L3z(PDWu qˡc\g"[ _F:g6mvƆn2#]4qwQ-+T%q {N.6jGwy耟 a]*JY5 Vhdaw(*j{V,޼X#nmX& q˹->sm c<ͳ~b4/oX+_zd-8P+%Xlpt|FNOƦW?2{Oʀd1uvVO˵WrHt8!R'j%$w¤u gGP m靜Vn'O :>\txOA[* heCēKәϙzI1bY! SZ% ⳩lt_']ա~$!b;(ZO%r{E=QOej_nTh/4QlzWeZ94n,mip&#t$dڃMG[/id7bC 5U{y؁3&gEp xdb ` WZgߝ7i/-mi_a;E"CUudAҹ``xI"Zz_Gk#`5IP,E) (?!Fm3&\;ƨv']udG Uj' pP\1NnUumc)X Wo{e@ƺ[8 "x} w1+ǘؐ þ]L-!`Z\Po⫷[t74dW]4&z4ERL ^)9L @-sz t7Hn?@mKۭ,v<-Tui3O,J-']]9(,^mSD祍xZ}\=8SY}<ڐOMXo\XҰں}oˣEZN/'߸KWC[+y+~tVs{)xN.jVG(~]3c,ԴyewB8)ԕ~;c6ă1aNyyv1/\Th2 zpd@+ExXe ^(bOnVUӱ4ֈlSc];zc ʇCgN?ɐ]CXJA d? r bL᭴uجj Yg4t3++OCDW\~+QFpq밷J&gWEYhY= iddaZ5r/ Z4#nWu8>hdoUZA8+.8[x]8olg%]Z++b/ke/o`Y Z>=hH`qҷZ`  `~ze%u8V~ ns/Þ+E&9[g Tr|wM:=|=y_f4xUh0s^!ʟ%'!IΌl5tZoe%=_;ֽz8plZFj oW'fUk.^$y0U%z,幇^j8>U#[\Oba>l;E-Qo8S9g!ҳ/Euo\; bӦvc-v ȯoDsP$uͮWŻbC2d5Y R)r~j t'/;D9Y Jt^upNDZ!Jʤ~OJtbTܘ.>ov}^u} M}5$ q_  2AL07J 4sj D'96+ߌ_J>JQۗ|} 9u#CO qexl_>~֎ٓT4("2b3|ꂸj&:V _];(J~I <䠭=feԦsYқ#Ȅ擭 mܖI8Ƥ[}z^&]MЪ>rWfj!r +vV)1/͎2̪Cov"0~C)Z "Έw7#ljkC*xw'vsUE C=:2%Bq{ǀkGz;8_WǕ!,9a,YTKU#]ڸ0N$KE4hsk+e3ڴ(R |^G-_I:G| cnrrJ4uJ !7vc{)H tf]Cuq9(j<u#{as-()|`Z;vYHoUQ_u^*{D auņH7}i͛~1jyq:0 C7[s4\07N|BU h~r~ZPl]fi1 XEűfm%ОBXp`Io>`-kU(8;ĵqovO7I`2rz |"U 5ک4+b.^x.~/A$D3Qc#Ooˀ3`O5_ }l KA\V:_mRxcd#/L0)Þ]On8Hh? mB~WPv[&:>wˇKcIYon}=^b6OD]m.pQk ?.%.Mz$Y#͢BIB c;xB',Ԃ ȣ,]Kv*O1"}ou+^U (ڥm^jBgɹWI]M*A%AiָVǏfg;SGd|k8@sCYk4Ǿa3˧]|"|ov4쳔y89YR^}Mq8 A4mE5&[goc)M֪?fiӳ_!΍Щw 'qs 懘Dn|k+_ںȣFŧNgoaŒ[5J蘠9b1x`'2jqؒbk̪Q RPn5(\n>_-o&7piX~"ʂX^H1<:~N@eΚ |TE1F;SNsmH<V8T\\Ò|X+y\' "J}ޟ DT7fğZM.t|Ѳ;5ν)a!>[H{xtt\=Ƽl$z:!Cھ=Q#c//4' ncٵr Nb= NVX U9c$s2a}i)R&1i/պHVJGKDQM^!G"7kQƕ})I&-(J͜Voh*-9[Y;lrɰب uEpxM+ (kCsFlF@Ɯ0 Ku"ԉ Žbю:FdX$eK۽GA(#Etg Q|(?| H;YnR쎺k+ 9IKu™-DW, 85;Y|򿈹vСxNw!}$},khA:OBi5~q *m*3n'\' 1R8Vѝ;U>p Oه e%4*l&{ڷ0szCo( }*zF_O^R߇lHNяRnd+\ f5+SqSF__I9d[hU܊:ܘFϣبw!> GJA_Ĩ˓p" )KU3SvEch$BObWLEf:xVAFבZb5-x_CÌ_  nQMi~3ޱoP}FbWɔҼՊ$TSjk{dEjrkZsl )k3]I(r9;Hߜy5ˇ*|ҥjS:rZsضl~߂0=D_!\:g, CjIR2,wQymv[w6MK,!/ʮ> i7ۊ-dLOG;./UAɎ(AGFɒGeЬ*sӧ )8Q 沛6V5-2;LrTZb%VƎ:A1eqEC jDgN c0$ %0(eȌZt$ 5!#CnpD`x4SMK|]oeQɆV1m!% ~ oS >)f yYsRf^s|u{ib^% w&P(^0w%M.ֈ֑K$}"LFhhUMSVW HO-O\W-DMSE1Yژx(4%gI 촱=*Њ|ɵ.W9IWk \|23r27'6#jB!Q3㗰~0x-1Ț(Qw5*TO>vr9;G޲ܒe754 /C}=7m5S!c/FP4059Fy,Bxk\4EE;Y M_9<|"8 '"塠ΠĈ ksχe{- -Uڀ%㈨NmMS,#nc\bxa3y=+~&2M?4J}cnY~ `YeZki5a +[E|[bI([PBwoPl |eg Oé:Ժh{s"+5`Hӡþ JMz'×dg_[uQ;4M BAiFAw#m 'xrl$3?reLH0aک@Sƾi4pP(`nEIg >I,Hif-Y*ÞQJx@PBܩ7D YNT){#HZIFp$3ٝu 4 l VV\Yt mx"lmdq QNz!Ӛ * az>N˙1n\`E*jBg)G.ZWx[w |k[*1YŜ 2gyM24 JI2ӓmeE3lGa.Ղ8[F6KK8}RtGBQ7c9碬\DZVE)J(,.C(O[C @;4YaTp^ІGX3$P]<>/zsQoM@¦ lŷFڢK@rǹj5m*E4p2E>@!HC-x쳪 3I#4r|+w)-'Jg?^5F=eaD{hc.6~vJ}Fxd5+ajNK:P3, 'oOt2CR阊۬a(wSvRԟpxdl}ZA._pWSΘ۳&_W,f'v) HE;GآcF oK'ޥqAZJSiskQ/c-B~\J Mn)1F8II?,KvvF'4S *@vreaap F̀6EQY3r35B|ELm ;;/)/PF ~YbJ:r%:eP[!^b$S&jhVViqpCTl9}Y||,~1qe:ꦶN,`k<GiajRHt쌒:ŷBQ= 4K'`|EnmaNX%@7.nE] 8h3dRx?)hXs{n>F(֩I,R"a퍎AEPtORȘ,YoA JP[U@azAӵ˫k2!kpijRQ6 r IER6s :;Tt{ݿ-X]l!%P7~\T/yAo}+Vd؇C)I;*^l Rr6Qȡ\![dlsȼScxM5}@0Fv)E;E\xe17s 3SJSɫmF8_npwuw8o72+p7Una81!CpI( N'p4 6 <۹/s HVҹD'#W%#Zd<+vLV2ZKfL>Z/c*%<4$(8.QX]j&meۛm%*> Z`"Ș}6 RD'~V:/겭9B\+cT[[a43r:;S"V|ob j/&տp>s.6_N2{/G|'j93]D瓻7L"K>6:RRP_>$XxʏLkN$gZ21DND~"8𣹶WCJ! .0 WSMG1pzoSC4\#ߜDPw%.q%UN3J.uUK"v]-+eAOl|>2# Q7T*Y!'N.kN5߻ Cۛ"츸ۮ."e/εp > L bs9XIPqew൚&bZ6e|w c bHBFJYFܐ192oi;C 31RO5:AiM{JW*3#:'2W"O;qu9#&꫃ Gk}h{98zŁ 6K6Cy mnI["eg%7-SgJ}ULKn"o]@<HÑ1JS ʣg{L@#Rb𻪑 b7 %yʺ$DGƫ\)f GR՘,CT;jplm҃'yn6)1<Ƽ\1>x=[sңs8Ug Z FI٣_@wf1"SGեeL2 t$b ^}fDtY C"nM(M,c[N6<&٠qؓʺgz61Ey*rZP,7nֲ5d nFV"r^e;.4iF8]O<׺͈-]>pTTypBRvBDň7/w:#  X{O(x8$ N4ʀ hЮX_Wp6 7 I7Aq!ߌN6 )?D[,41$XBghmS=Uf5Ql{6Zr4!(=i5vm Чpu*CzЪM QKmRzh5ȱmu\{2w9'!ov0]E FOK5`na{ D } (cUOYWG cx1'zŗ)BJM« -M `p {+ {7F2T{@MII%EvLJgؕ,)Y{up_$ f31(SKbm8 [ޔL᠘B2p/@f٤fKgx؏cCHfN9 v72lgb9p<ȕ^ ؽ,@%-!eD,8*F4/}b3.L>88JӿJѽ$Ђ <u]̝ nmClvA1+R&! j(C77ȯ<]/LO}̧]+*V]XbھxWdN(6_Pv:ƛs~&>KYͳQ qJ*]tz:RH1C_O:bTZR}Q+tLdF 3O#q+KdؔCp0z0=HԗSC2&4t%vBAn0薈)>) E֩X;I' 3Qz6AjXMhڠ3֋Mz0V o[m_|"U"6.MrĺhZ{ePӘu%ҸonQ~$W՞SS`ʾ3?;9)Z1q Gϩ I\Ē^Lh0rκO2M]]ecnRIu:^} M1Y! ῲp&e$0d)Eœ>iHdP&c9Wޚ_d{&pU4\DV}#|'~AaMT I=<\1ܶ=P]%7wSIJv0WlSz[" _M f͡OE@4( Ռ؇^:i.~['nz1MvJfMXpM)j6f}:FFG7=a奬:? q2WȠr-]gUv0?_GI-dCAV!kė-D!qmrn kW4&Fgvf9l&`\-Np2?j 4m7ѠZoqZOMU`Y5IpJhӸxc6mId%vzPF ><N,Z;T }U!!c蛥Bj΀aĞ$޹/>):9=R@ym5)|/E@^KQs$/'@y pXZ?d9)|^W@ITu^K.=9͏$1tL&K7>ޯ]4|%qx˜-#p;&bqehqPĆQc1r\@/%J+. &=6MC4IWۙJ~A:D|hw_FLzoh @`wTY>ZN)>FcBj>e]By&?@p40h ,YCx^w$Sn ](ZԚћ)Q8yH3B خ7֎Bے^&6CÀG a!.ZTj, MGD6aY*eRIیf}kޥZ  AXR)t3;K} Žqp8uZڞwU&ZGJ:>8!*1S+NG' %jc;#bC{AjX)|ve_-25|L5^ FZR:';7DԽ]Vv@V{)z(fPyE4H͋S&g׺cRM.:ۇaS) TYWU*TYn/1R- >"em#: z a6E-tSg0cH1nZP%VLΈX6,o!,>bw+)jB0*=Tl*RwShU='{אedR^%‰Cŋ\/NiuW7LX+uاu1"$񺢑T7U/ȋwX]q<7Hs޹4>6sojm ob"]H/o[~ (TgB6xǯA}xِkt Y}ipҶ3%¯+F=0&\Aw@">g!;<48P x]<}Bn][t |ab~2"jb׽q.ëSa+$ws{B⤃z^0 $Y9gg:1\/[J;܀ n=ϖ[F /cZ6Xy )AN&MCL9QU5]%aN_;BeտQy .RQ`"#˞ڟO6_Vg;1GOtE/i3-3+@Q"ubD􊽲y[:j'*bx6ÞQP)S^) \IXPjQ1".<#O#e+^:`mCTbirY`,EN@Y|Ĩ\G i\KiAes6r׮E-c@طx,8hK6xܱ[W'0+sn' 'UD(Bx%j})]}eĈ *~^䘓bF_+c15kq@-z*{w7rtu.Pe_ci8\rI]]coSQkp?1)j0 m߶Q,KZ DKg\Ƣֳ@3CrSve#nH08K$xs{jU;ۂn[(2:t4zv' ѧ=/ܖG&ZxE,&TqM iVb 4XӪa!bRXH0gWaq\}d ¼W>-tīŅ*JK^+N#OmtS.me+yMOUhξU*\+@0bv(@rd,MO:+(%gQ昽f$wftIIy65AoP$h25p8< #Xzy#U*,+^"XnV nvYtdx)x7ZLO~nFTmSF7n=_&_Xz|UzL=\qPW7vtJf"J 6D,/`nSwjŵQK횉_̇INCuBw@]'ElliⶦXlyqyC((`Q$?֩g@i[ވ*1K *k1n\E#YA`UM섟V m$=G6CK\3  "]`3g?וJ^ b0UlgIWVGGuMP}YTtpZP F8ߓ֗<gB٢)hlWB>M6+ k->}:-\~5>m[ͬwd;.6 {7븚5*ե|lNKC'80Xs #}>݃4߲m*Ul۶ * 8yLoxK .u|M^ېjB.BMJv@{0@C'̢t~-S9 &{Y<,/Qm8,Pqn u]9*][aRjZkj%ud D=I؏xKO q b+K/?jc?XC/Bwnf,NQCLA A> I%hJ N 6u>3FVE MAir36?-G3&<2Mt&Z'&sm%^ 5-?r$Un+ 'U!inRNӳ!Q8qĉLT oyJtMqZFqO eU7!԰6oedC+Rܩ%qv R[rA {@.ϓuc~%gzAkGu3pO@;mZsW{CJ@\"}$!=&c䵆3Rwʱ4)R٦:2ېǰ+y\Xh=sWq'trE03ѭTu"P ˂>z ۣ2g?57PF]qΟO+i'z5Z >fGbEd|d>k6uH ZvŶoO-`})w^DZjo&]mf1F^u|y_[C!b^]Qg-0|u=(j,v9Mnέ)>G 'O;IPГ$ Y8o9kEW5j|Ҹe!+lɦHKI %<(z)FemrÁtZ}vi<~Ғ짒wiN[] Gg{*anR=n^HS\yO ?mp< s(.TL;ŰtϿdyqA Di V&x%V6vw((gx^0@/]7ү $819<-Osc~"v]WtӤJe^q.KZEhf6ҀC5[&; TK_!Sy/9ff1,'LO7)FfLP FM)p9pJXbb.#\jX) }qio0O3lE:P P']ӒAK[9vuM8hƹ܇Gj7m{2kZТlMƅtS8<ab-CZD$wZ{KM;鲦)|{1]~-ۚ!v{\73PC~'ًO7'/a},>)ט9 wT)/Bb+}]e*D"c! (PcN+ 0ڮ(wWR ?ѷZ 0YSxGRtbb(Yu->9h+h]n ~zzx='‰[ Bmx*YSO$eW/0<䊽?'jmТYB${ ߠciMh`s%TQRMW~ٟxV,̫qʓxR+I5v׶2@ ER]OXnxɛJS.Il_ǰ?A#ڊIi2F{c"!%l6"7ߌܐxM7C^T&ߴJ|0kŽ8\li(`A;Œʿ )7#"9g'Gة~n2a+H̜TFgZ Y}R?L{9l0 I~Z:t:3w\ׁ^︨QINA2ַ RL< s}kD:~DȈX2ʆkF-k b8Ҍp 5HO.h@6u@8CQ3\x%^{}FN>ckOпK.b֥hXZ[(ZF &`[,q6* *6kT>JJXH:;S^@$["Oޒb̳Gk᩵v4VN ?^x/ SF&Z޺Nl/mfp"DYabbD]ɗ?YDh*'IP["4x^z =j]N,TcFJJSzLtY56nR&|}h"9!gm$E9q0p xHl (C5v!?kBG`U2;yh&AU;GƝiUoԸ؅/Xkf H4nVWdf } 7P*P>eAJ ʪQ߇#uLb:65QXnJ=!]2^7iir^Hrk`V=R $2`/kT|͂nM9@a2h3#jЊ.olM_#N^G 2zò0}p$v dœ2߹ G(i/ h2  섒ud'%<~`}g1}Rg&d{oD)2TNrq{E7Dc ʿv{btqRkiUY#m-T&}Dv$C ȗYE6g4 Ȅ`P=ԗhYXU"wǍF񋵏Ka +3G*^&9[!-?Oi M3@f$9DAy d䠫@%& ׍ٖϴ€'D|-.WV0p.%4*"'q'f]әI*0$52o̓0YPHE:qf#4郠k0Pҵ{5 ;iYK1F+0y۶iG|-] v P*7&kړQAc(E"}'#ZT&V\^s0:KOrfS8v$8Ֆ/!W [9e%`*Ĭl*V:~ZZF[޼>x6! @\Hnj%qeA4򄤶b[پgXoh?=ܧ gvy=n뗂A!/53HR޾DiPIR&\u>vMmѩe#&D;2a$1fReE0Ɔvx&:qKxugјC%gV.|M;bop,ЕוbwF- [r6l"0@p}^-FL2Ja)PEwa >MgZhCN""#ŷ7G`i)E"߻ 6׊󍻆b 0*xfj,'i 9-,ḿ ÒVF#"]H(W8#aP1Z΢( ^_o]U|?M Ŵ' Eݚ`dՈ^ny-Ll 'I=4x[!`Ayy+ClZ,kvZnOX(CU8$w@iZ@L79$@;"nnh!Fsamĸ0sD10-]_L%293eHE`2ZòMrlR#w:1q@sSb|sʈ"O{rY@3* p{>6O0<2"CS*y;0"0rJuG6?yyrܻ>u[$o9W欩2NpN. . *f$Շg3Yq=^gi0cyG'S'_1R%홄>J1!_z ԥ ̩rKd4Va^B$cV=:ل ]E6*cp=NQxwS[2-x].'QO hNc> 3,ry=reߢO@Zᖕky#x!0mXjwq78 |*$g+Ѿ$3SYmn򮀖ܯiƂz{ؼ" ?,>uZۗP=Na%8[KS>3EVuU?إD Q]}3+~` gT64ƭPᑻoX,hwVm|%^ >DGuqua/kEk{<PeDO_fi70mʭ>;X2缳։N;U"1?C^RfЫyaZ{.E:ɸO:s`E~eվR/Jƒ{ODF40c"9)5G8c4\)]Y.Tbua.l]&0O /t~sD&ߞuM#gּPomfKr='B)c?^Y؀LF>[9~hޅA׬Uc|o!6zn[;Eq10ï3cNJ|bD"Qhv|ƒuǯ $uTLe}L;m)ɀ:nc5?D @N4HKgA9lGr@N`aS'JR}@ 1_-2wRIIpvsYܝi4.L>\ҷʽh,XWz5Phxu(B%-[jO"Cb7Hwd~ RTOf-lXnŝsuo.&yn"Z$zm$,:tCFd7^}&KSl6(;+1Hxj,!2оfySu;NÃ0SeUE,`_NSWS`mXwo՛z^b{BU7PioRG4TZ;ʠ0>̿R}Dc~et]6x\'(=> 2OH)ˣtc"cDFƩ0jހw&y {VHH4O)e+a']}{A09^QNV2A3|]/"mܨU&hjLF.jIg}?6DFuhnUO UcYD&a C*N.˧-*=c@-XZe#;9+&ϣ|Rģ*i Ky{>%0F ~8ig XԠFQMfzUBc=?վ Լ@sC;c,&of6+9xRmL4SjLAn߫ov i1yZ~$mEqd<9㼯t Vd3f#׬G xYp? NA9BSR+[IS۲<\&t*_#Ȃ|l)64\ؾ\ت>>JoԘ["jc5/꺤 =}̭L3(+GMSrO$iǯu{k %SIj׳C#!>QJMK-6D0\]%g&o|X8[SEd}QeX UJJ(Yi&&QD" w@]Ys]qBHv]?8K)OSG0)Y7m5@rϦL0 qAAơZ 4dӶw)ϡ/VFg B/Ap\Nj?1A:ΝJ CX #toj\sOR<Ր ˮ?hV۽Ƿյˁu% c=]" v1ݺ)C[.Ȥ4 ۇf >B 8| %ÁL?E 4?P±j9\ l|μi} :ӭfDVua*mߊ&u݅w4ɂkm&mG$?=5|.I2,m_ پГi"To#V =`>'U#)d@*G6ϙe׈cBBVcBb]!ٞ$̝u\VmhH5L+ފsyZoT&2?7bF2mitK YEDiK"[&ezYcWŏ`? $R|[&H7 a^uq;tq'.>Q0Ac7o?5[^vmAW:+LYː@ᰭv5||Lnxn>cZjt"%PV 5dEC'ŘJBF[a,f 'wj' k%l  ]!`˿ `gХ@T)%]΂*A|YPRPnU52SI{ 'sdK{;Zg"&1e1(&+IV5eq$*o/%OzC-uHt'vk+vS+ij-'VH0[`yFՋ#,gLjYǫzh%,0Qp帇[n_.<՗$O`tZ&HG@h[ E$.zʟwlC:oY73uLfΕu*xxVj3=@ՠχkh9cg6x`9_ǵ:>Kd7$3 s+ڪsM Xᄖ@zl%1vLGVyQFD'\yA}7ia9݇--Io\]VSDC78}IFL`gGjHt$u LcY[L ͇( Iȭy65t> 0Q_ 7*lLGZH3nd Jq:)]mVylbj)8+P0&2I {􆵬OGʲsP`,ܡ3+SipK93Ly#u{%;_ ΅G|n4 ! ؘ!=p %Jez${A5ycBŚ&)E$ͦfe-i/nxNԃx\RXB&3whq9hgÆ@&ԉb?N"&il#{þ>m5LJ=+җk^*L:%/{5+j@ &ʎDڨJ )}hqxpt42AsDUܧHGaLyV l/I74y4%K~pHnh}ݼ%hfd6GA" oZ>qpߢEQdG#Y <4If+C5D1W.] N'Ɐ[6KE5!>p38u'ͥ_/p): hmRܙp`Y2z5VȑŔvXݽNиzUEF̡:[y`Q󮒈^X 8nN7lu=5D.0 3fT3wj*d/VA' G_6F=-\.NZ/e_Y".f.T?6.kheP_OGD%9M#̃kL*Mfm]lqP>1:?Ɠ ²0c0=K%cW~KU|R.EFF[E;B+8RjG@b庨ထl3]3k XlIV=LF"1op=c=:o2ͅ*5]Cd/;9ХtL9_Ƃ@)6uۂH gQk]ou-0&l9EYQ γx(\DMœ\E0ki\ry{M^NxJ8x61(boGY4Ĭg~_IaV<_\dW{+” WI5'+kW#T"rJԼ#)G(#԰Aw'>w5ANB }GdU""gsU{EC ЬKXJcs*bpm-D8p\rj[riVV޷ۚ=C& UAFzabUz}Q~}GD:m!fXiosT"kRΤ៙? >)[Tr&%׾K7UGr+; A3CpupdOuKǵZh@-Ihq {3<=!&#ː˩3zj݌ض TS]5wOc _`} `K-웵[+|Ʉ6j.2FhF3+WF`6d7L+rE8%W!;%.P@KBC!d!oT_='#!>A )U*-7)TE@3ߘqiuGc1z( ٯN|y&ƌbqsƾ;6  me'-~ MkSׂ\/d^g>?qh)d 56ĸNc5Ul(:)5@f[|(C+,$Mz6H6NY4pO}Gp2rrT`%'4ܓr6꾮uۦRd rnYt qv*}rL{q6&V1 {А\mZгy{=ʭx^0zpd^wBNe/&VznlOXh(W5qcaٺ*|xQVct ?Qj8 2^i.ڢ-bc5YPhO;F+jFo޷^$U˼w -en,`$9 0Z5^r<ږkẁ1bsDŽ ȳDdNC]a4{_N /3cEpp3ȺLNJ"E[p+O8TS#?zWK2߬s/e\u exv| {&F"Cn, ܰgkTۉӣHiy o)#/u:cc(= L-kd٤D0KV_݆lV6C|1~,G'=jŵ;N{uK#˯򘐁5:8U*OtO;\f oZ37ܫ݂TdC1\Q0YpA76i8rmGak0a'MP0(lNpUЌ;6p*I&@Q̷Vuud WN9GK]CQUf3k{hP )֌$e= 3bp,岵f:fZSuaNd:YhbzĹ1lnx-c,Z0Dx1C+k_ytGAQ{v B2UmjQ7fǘbX/nUY{VŀEsYc~* .+),4,˳SXxS !K:uk4tuBkM6dwyp~U2O 6ߕT-N73W3Di |aZY\Zjt֑=:yat Z~AdWi:X;x_o'~m-uWa9hJ !ya٨At-U!)hZ˘Tb8 q5E̎J ŒRo-"ٚJ""-͔_$( )ꔳBs5|_ZdaDD ;yļ|?e eyvQцDOLNY) Js0 @5G_a9c }g(:OR۸7#^_IO}U@Bn$@i)4%I3hId=ƿ%^Q >;jtptzhPnE|(t#q1t'WHZ"66:kz?RP׏5@ nE+a$Ѷ'cH/@yɒ{ii1Lc }͆CxLde귱cԥ+u5rU`囃@ALĄb^D4M뙁UT>NbS:mZiPqw7/f#QP·{(E3 9["la;W5Ozb(FHSF<7Zt@B+6q*|DAARwW$-Wb'q:(r 21ԊGZdU;K) w9}x,$4lRoj1CIuS<\@HNB*karEmV5 oͨG,9έa;}1Ҹ1 '뇅q G"NH\ipߧfU4ErGC^!ZII +KP_[i洗\8:yf2nGGv 1-h 674β)&҆`]+*s&Q7L˜lٴ@Eaw[tKgan moH "}LfܻY6`e `~6(oE4c49T{o+;kPrdyi^LD(O 1!tʑ(yess5 'wJ,BUi.QO~ k\xM<^[N_μ"4J0iC7uZˎKE}"hz`W0\4ūzд7o+e#~  EPۈ!ۂhP5Fnc6Uu_{hy v=Ws q3ߠ?5J 9}2+"VCSBhJ,$ ~s(sᗓMW.w =N()̯{CH&FipOzaY# JđuFƘ,*Q%?Hv?SgF1RxkOW)ϙE iܑɟ}[o1/|j$kJ$FJW/ )1z&u ƏJ&=gMq=wRLScυ 𗽥YDE5ǽsM.;~fн hoV|R|fb̐?òC\XhX:~;d㝻+"9CEy{Ě*0;l5߇Օ6s*x<:@(U <.0/a蘁s/'G#թ |-"lmZN(w=6"t_'`'~g-?aXh}x{WtG 8@B!M=Ӄ<+R8pxE$)ό$"p*N q ];ObV[+r&B$ K%2V?pCb7U2E1-lįf/r_@ 3 vΩ4)MRg%`L*E7Zezڰ #y;Gɝ\+(6Eɖ UJ5k *#el]֢d}%M}Y7ȘOhgʬ `xXlt2l֗i8uVk*uF<vdV3߇jA *āT@=yNQ6?Q"X7tagsQ],řB_qpQD| PLJx<2=g/ ofjctt>8#m4(:!딜c[qAT/u*EjJZG Ҹ̥C?0ދkJ>brCe-}Ԝ&הg#Xa< ~8C`3Φ*_Ps̜e'Z\@",A /\6a\,0#A(u8Fd3P1xoZpXU>Hl?sߨPl.Mד'b^0,ԅA 2Q ~h& jST|MWzʖ'83|]ɰ0}$(IVoƒ}G*D=H2oLǁ%ݐ?L<:JT,mʪ71lMڰ|7v+|)+5tCꦑ}CNbҐ=W@C&I =~yCeRmp<^6](sCOObfuX0WZK|"^.&i;,z)iRr@BdJe7^P8Wb[Ӟ:s\uv T|vm*JÜsK?N;< Uk:)3YO}囤 |ҥG?vĹ6_A=cgҝ4l_M8ǣouL D7E7-tuZ&g`=;waKa^ /HOQ6&&\4Thr2^$(8kGOԦS6ש?hų`=x &{6MSy–MRZ =gơLK1Wv"T6 >"`1Dy[#ݵSQ62V/XTk˒+\ci7Sl{loة@=Ƴ &7M`T|܏1^=PS&T^C7\ZNk x1WQ}x5i8jl^z7:P.MSRd+ETjP&E4b`EL69Ofu.ws_ zN"Hќz$'}tEyó (фt-FUoV"4ЎֳP0߳2->W 58?F e iӈsPJÀ8obg'̂ 4>x 0F:CHF(7'(Zt lC18AQll@n1d͉k^VT9kU˵OY [߂M4/A(Կ@zpZc |ޏa$h],lu:%補K=f|['%UG.eq.@K$7pu4+w VF@,ڀK`Mȭ:^|]2nsoH@h8 ~x/I Wqy>m;_5\kg^LC_T)L?:+Yթ`t QO[@*'-MYRucX)d&}1W5Y#]t{sd?ЫDX b1ןXH@aDrzxtXytC&(#?a TWJQ d )4I}Kuoʞ(J6ݣ*_թG ^9Ք BG&ѐ6*94Y{Ra6%{wr/~a{RlcbCGsDvG{՛dAd^mxmLP!Ը(c2$"NdNFhddY{^y8.xRtt5tJ&NFLe\'x+_(917K,NJd`i(-WVN2#r[ 8T%r7✅mPt~9& @ Y1AJ<=Q"͎vhemVNrEO[vT;o[@X\Z̵ RIQ?]Z.#x~Ϸ\ ff7 WQ懟#.oV{Yew q/f pͯ{@9~%R eqn軇I]f ֐uMD|,PfͷV~OedA$ |gێ_L^>ߢ2>- eeQ`ghP'ugm"֪U즍BƄ1xFbc2n~]JVG闬=KY0p0n{r\N+l+zT2s<30-zIwWJGڒtI.Euv 2 kI57`#E|ޞf6KY/ūJ,{9 1; /:p V'SS ruu~4%i,x7y} ȉOo?[&I6 Gw.qYꅖ_n1^#wɵYkW վ*eThULʼ]0cZƽW`l.(A(H2rR̂uקSA$kʌR۰/ \7X,d|$C>}i=P* W'U봫#BY@o]??!DQYOŽAz;0IpY_ x ^M6rBxR`IEnWOU[}Owc'Y(9¿Gj(_(՝u2ftD1֐6{2Z+hRG(Iڌ{HCko ~We0 ȏ?d7r2Cu ʅg8{`2NXug<6rEO"GIb{e /My9Kz=͕O6hGhOOV}LWAgh*ր > +Q`y hzvBlkgP˺oag8]Ăaq>+Q%&+2C 4UdkfCeGʨ xoMhYs}Q9EͨdΓ!l8ǜŚ:)svSa WY.C!0Yz vt{ߣz'aXC L\tV ,:GqderH&5O?ߟVu*ѨI\PF$\~{E94*ᅛ &9.D9Z%r 26⃹I[.1KP0[^~4Z2G3R+v H3yݧ\svVl ; wM.:W"s:F7] QjK|T٭6=0 A>2y@~tT.kӉ\GV_[gԵ\vS. }0C-1yoڵf VIeəvQ yIf^xőp7?k^R<}1au74ُb~,NҶԞ+A$ Y&I֊-e)#,sW`~Ҿ\bc~+k&jDC'uV]rT0ǁ$` y0Юtm) P«UƷRN㶙Fg](ap17_ef5}5w&Vqw1EY񐛄eڼ47~Х딑>lzZn_=Ś5-/tlς4&ڜ9_Zoi[y>Qr蜧"yQ}x㈥lbSq΢SKRw==~] nAUdx 3GBR$WoAB!Ð\"a x"O&k,O|9rfwcׄ\XD1LHК3R5|\R M>'-n;E}!-iFfG#iKQJ72)b/n73m3|!YuottDMxm'xAsuK!5QBbӑb9>5Ѝ1} !ʹ!vM˛.(Fgv_NmR2w;0P' [kKHbmxyd*4]x~㦲獯*N4ӹӧ؃R~@D@RFfmX0[%RZҋp9kw?ItkQ1M;aV}k$2a / xXwRV6{.o!,7 EU'hMq Þ#gsNI*vU6p LjDw-ZDf X3 :Ep]qL@5Ɠt9xPM`{ ۓ$Ť@/,G{F;vFV@"ZM($$?e7RgT$#Fa،lI@j K\:+AJEB 4}DeIC"@L1mvNf߸w!)GT"@jOpOj ;:OOIĎv\n;Qo'.fb5tubܼ.p +FHD󦐍˹lm,;X4C^v͢ҕR8U10ǣW\>f&{?1n hm̒ omNoOgX?MH͕NpE0 CmPEEVwK7 W7p>}=/ wrqO)mF?_:5^~3\]:Jy)غ _ fz\' ^û)A-`[ɾnV w|>K+p/ȹi1Kt@#9v f%`D?,BrrxLnzɻoX*Ҹ<0.Eʤ*g #e6I(9.GIkAњ "-ZG[.cf{ 9P^+k: &U-Er~Q\յ!aZ Fޠk=bb䭛 "rF#h=x8= $Dk0kW 4%r tn'}X_` yR|b>zV-+[AT|`g2ۡgѢξN mETcamNM_l6[lw/a#elp3zP MfIbb7RAr9pe=yϛRcGD+hz;VxQPA9(dڲۖ !nϝH2I Iϕop"[|7G͉⡅2_}5jy"Wh8t"4,\l$];񄐫W@W-X"ړBC_g٢f ~WT[cM4+1aC k.QOY'n1mԡZ^{xq?[ bI2ץZ sn$j-r%0ۋTf%L8bg摟crv}6I tIOyq6C?2Nq>>[F&r>zD1ɟuM׺*6B:=r) w wh|kRĽhWv}G ճ !^@2zI)\rD<lsL);Iծm:Snߺ0W RF?Ÿ:Q¿<Sl :뭊osUȅ;[!ќB]}9~c/\IE<'^-YsZ\!H"VdIoQE׮oOS'ϪDݹP b`|`]kpbwL]N/C[QE57X\Q׸[$N,ՅMǓrJ+EZ? C| l\()ӹVtd'}sϘ-P25z;ƬlUY + 0Sm Ԓ <1LYyr'HE5: $]/҃E<$>=Zb~.ΧJ_i_Dٌp/Hp3]B, B&*;_˛wv]3vvtO_Z`?iIfKO%{*sڝcO"$2髰d3&~r*)͹']ڔidTWGr[Tq2S܆kJB|j!F{߱RjHcڢ|zWRw :j$(K4^I5Y Z>sa#iO?YHKT`$ 1ƼL@^i c@Ӏ7?;%G1x_!/O)XY؏Ա®gfT`5Ih*OR̼:ᅛ]W4p0| .܋w5T#qPg*+wU=B,طu棘Lp|G|͇Z%EsA6Ô%ɢ=u7Cfp5Ucq܎)5%@l@' I#LT0%yDlP[|n>]JRr5]ȇnFY/B:AhyLP! z^gh`ǮvW!4tVV* d2Z=R ª+xi*VyVJJN'&C}S_q٘b6[=uᥱӭc STޕL'tA)n`s!.K=a >Õ1\BaךM:\{I`Ef5`5t:V3 Eg+U&ܽk`>*fx#`;O?!̕zb-ŎIؿ(6뮋O^4'6əoiˍ ]-X *ĠshoQKX߾᩾%PMv؆e9x7a߄90$e=rׯVܸ`KMYMvlf#Q>\g &\g؏9/{}cg2`_LzqgKMC(|ٮ"z3>9 㼺͡znJja)βXYQ$0/"H R<(~DA%eلFi2e||i6D37^? >bsq/KW:vyCϢU_Ԇ@O=0}kPC<79&douFV{dƾ:Ƀ2@g؁^X@:K V!*4kѫrEM60'M mT GkF wK;Rl֒(sK܉q y%<|ۑ dTc +E-lgbeh:D՚yPn,bQ~֫=%{jK̀jϸ[~sær25l [*nRG'G@{n_Ve?\6a>qߚ'Hn)ULWY(@MR%)0>)pg?w%9ٴ. 4+EFD9cYp8j3_$Go֖GŲe}-_ gR`bWl1MTa/VƒyQ І %Q᠅!6$.p+sMwWbCWQKgx&Yuo[(ۯifޤ`IIg b(zPFV5cu+7g #xCݒNMHfM6!#,ռd':q|lُ~^g5-TD毼*}ߩJ+ 1d&^uYH=eBG(<9ҥ1zrUOvhJ᤺nIX*wyE;~P_DB g2Nw_ 9m) VRTS%6aCPk4| cwlkf-FvLgg_liZSA\oJvlli`z550b9yuQMA;y3a՗|H w{3If:W&a  +;$TjZ#D!(B6HThCxsV}7 9}G_%;.s 0-!IhFݾJ|(3mj Jk 1Vn s .lU^P  6ub"$/~W;i " L$}I!ҖuZ0՗]#gF![Rڶ~kgEG9jy{.-rl%=Bഅgy,NDTu05m4{Ku (jz|7U" P6% SQ0 ^U\mzdBk7qm \Dt}d^TxG2 .eoMnu~Ьi'$$64~A^I_:6| ,rG+-OFz-)#I[`akDFbC#_=NGhq`N}?QF#L_%'sD?㼡pFdX4.h{Nm垱RMpM4f81xCH39줠5/3#*w=C#9O֘ɯ5ؤ#E8CL,"*gdH Żς5#Q>IJ'$Azi) TT륶44g9~^#^_S(lu\t>R2Ԟ $5fe|آeRT|rzVZ08a-$*X9hw.YR,)}~mⴊճI|_7oPd\x JP+_ttP{ѧ Xg]1( L'3P DWZ F~lHlwOf1vC"0J".M  ˳G=-t}/ ~w7Wm6d$FdLq3y07߽H]K,ōx{%<ĺM:H# J6RZ䥽]1ѹfh$\f.|S sPиz2a^:e拄;:#E&Rӌ, !Ny_βwo,A( [oߚsv¨a.sPV2@u6R9f BX\ٙT#W$nO)ɥKKӧa^x{{*6US TS0ƚ{)=h @x2<04!k Xh WSӌXnkXQ!]2YsSVϧ{yx+[N:%W߯=- Jऎao X+n*ک5I|L_x =;jh*VM\Z>W̽ŠÓ?OZb"͟e?m[<:A#Mj >g0m CXqI+1}4o7;d `5YK̿حu @'춆'u$E9=YWwK=2P^!ؓZ ߰׳l5Ϛ ~Ee*dGC=t@ VgY5Ms:V2OlPdO0dvc3ܦ #$=7ß@Q9Ct[RշLqGPE[9!l8B:DK}1 ׸ɯq+meEe&gso5ć茁ƓgG)fӿV SXDDvc\cr,&6mګUxn֟5H&̕c/p^;GL:c )i+ 1J79Hp/ Օ&*OYJ~ߕinKBJb!FZI,Fxmw Hy,?S<3I;!et6WKN.lR\xZMY=1fFe=:3GuȡߣmקoGP0B)Znԋk;H֟ NZ/ni6#I$\IbU 6vn6fDkv%-Ex@[f3"z@GOVS}}!/q{i1RP|w3Ns__![34Lhҡ~b2KGK+ 1F}_opc-vg~ 0UzklB5G\?-?'e+.Q g-U.Px IN6뉅 {b iP/{,j!JEGԖA3v5yU;٨ Gw!QN8>+%QQx bȎ]@ۂ '1P[ %0BGj(RȭmJM"d?P;Xbش9|v>uO-RX7_Epу}5Po^#4gn q{*3}OSrׂcNvZb:J|jK@۝xN<3ԁZ7&!>|,e]2xLI+ n$$%}@)-gd&ʙxcuz RS@NgZE澗;:jA93^WTDd!h݀~R|%phq-!yU~_\-ץ Ae;U]1|RXk-ԍo?NY!m:W[ ̵}`DKުCwm,Nn0UF!w8WZe Cy6+dE$+7/$w!%92GW}=W0;mP@⭁ [G/\_msl$9hkqTSXn}>%X{x0w?&6#u6Jt &x-fk+е{9= H!vjv&dGUs 2F AU+Afq;y\-Y:9}H"i1갚 N]h3( YsRY"юsQ꒕pcY͠ԡB70v +E]mBAqZX4\WYַ>lOn;W\TE>t,+u#ä>ت*GZȦ3wЛs=_ ~Lj{Q̣\-.PR5̾ʟ;3ppդ5ぁ`1ϳ_x j.@>8&xw"= t5_&R2|3]Y-(Qꜫ8pgqkYqIR#=<wǵ" ޑ-0g}t9^YfefH/}Yh%ѐ*bu*S@/rJ*qpegC|mM(ĻQ %r(/TBi؋:d4277~ 淀^:f2nO̶`}&4m ׉5 [5%yǹ1>EapAm9-M0l\n/[_vvQjd ;e$Q\t( DH<< ]ba%]#G({UK8lS`>Ywsq1_dxETfkH BˍEЫvpiS?ݦs[vTDk gVksGAƺlbhD޲F8$zU;X4NrWI U~C.7|;Uad;^D]ѼQ@bLg(y l]`5[Sjwd<@vǏ}ˮ! KG 5T#qټY#53q&W.abUNg}갽.Rv%A?L7gVӄʐ@&BȦA1@SF$8ht -MQ 'j$R $q2x"p;WZho=_GXuۼŲqi\^ÚXBiI)O|t_NOVl._ws kdZ†!F{(=i}a*]ҔPO~ On6_ظwH3'7qxc^]d47P=- +[)Mx9TQat.ZBw=X:e4kUTU+x>4 Gc_hif">Rx_MݷCm u6^{iI:~`I#C3u l1;Lһ9^ g(P#1%'7K*+LhrFxL z-!ur_Vs.@>c"ÎC?"QK5'Ƀ2iUT^u2zMsvP=,aHQw)HG6DL$ @Ha QY .#9 4֑RnW'{7#7/5sN< DѲhBZ t L/fUVqZ$Rqla<-h|_ي05ϡ= {emJewl)9l ڬg(bVωA4K&ST̅=O%K"{?UWP7A7A豅gG!Օ. -0E[9qd zXTɅ%ZtH꼢Z%"dQՕoqw鏅K⇃O-H6%639Vl46 %aK'{=_&W, ~C~0u1|QxO_;ˮd^*7|dP?D.Lj2=Zi YYw/„Wmh' ܌w:ɣ(\&! BG|@dye{$>Jd$1cߣ$9йvÖNN%/`]Sk'RfEǍG,S/8c8zZ/ۿJxHBYq`tuBiO,FfM}Oh8 8Sx0mEH| ǞG:f*xz,|MW} 0W PRøs>3utߒud=fj0K\Fz J`0C5>5գQ ) jON-G*9_&e޻Ϝhu^Vqq'm?WkJ6!F f>Smߒ 1Z~**B1Q .^.y{] N8Vu7*m@F&OPν=Q$p(N2|*2Dz"gJ 6uB! Ír'-̛?0E7NlRT{sb^Q`Čy]qY&{{:߆x8b0- Mލ]V4'LS f|qSςg?S)_6wjw dKB$x:jL+Bata((?;wA/Rs9rp6YYbyWgy}9HP픩SPu:2`lElJ:{PݛxDy]Dvo{8;t&bHH"9aO(ɜ o #z*a_r8ɏFjofmބW}^"t=Ʈ(S3~=$Q0WoX.Y55_Ti:9&:΢76YElP6"m$ꏓ2T޳;*g;3â n}! ?"^ž Վb*Ls$LFԂ䍡 (&1Z5-0l( YJRU:'P`.8O/?kLX67+ VI5|5mW7E_NT*S{e;D([(󣅮UBB&Zċ$M](F==t&-1J{Zf uV{@Gv3A V^0YUqOR ͽ>'`> Ma9apl9rz\y)')oY᧢t3Iw#IN&d/4Kc7.@}: CRN)ά K}V k&2tp40fs-jSnDAG]$'ap`uW8+W>KƤQR/ ZFLEvLL(=~y<% ˬ Wgca# \61Oѥr~A=]\9 WpG-YEXH,C1GG lL3_eP9m,)Lg> d%i6?eq0J\KuC)ߜ,+ (ihT\7X3UF3~eCR +5:Ѭr1Di^_m|]. yOf\28([&t*hjmlmZcy+]C4t%2;3O#3=YZs#mKE*)/#ϯٚW@CWv-E hhaW$]Q ue\q3+ІW%A3f'zB[5kמ-CZERĚt [_v`X?]d.muxKN0Q檮{b\<u.Tn\Or˫=~U#җECXar;XSr^U(v |.9mg:{>.u:LO~ol3`!Ɠ*Ph|8|Pl頶 -gٮkOMv})S}Bt;< s`&ݖQB-)Q6)?DK^p6gZu+_K4#H8j>m+?#IM"c<Պ\0]uz: \uO_D4͏^)Ճ( ]ecѡofkr%,ES45&69 Dl>ryLf-8']{Gr͉F~K P&^B[\ϳuPMj[b*$lO(m %"ˇ4:_iH ."ʫM:%:YpM*)²ߵJpǔٱ>עe"ҏMl ;kA`"0UI5;ˇ@!`7X:<9q8r?ӨKMv7W}&OJsSb#YٺP |yZQK^F$.TuQ>r3ހ ˣ mgBjep%#+ = .HBG0:caM6˳1pf,?NغiZms:pN:htX怛[ma E-d8D-7qc&vİ,e5Qكb_84aa*h"~M _xQ碻C;fTxö+*䏟ڦjMG+H3]eδr|}4SUأI{jƘɅؼ-"V8r1"x&i* ezwŢ]NMcpbhwV/>p.R׎Ff6"ڢaB$LY4s!왙Jn)c/':F>{J|c>~4:O~wك"jx)liL<}F>q"wk1 4L[S%iFuqgwk߈Kg$D%5 *USza'mc+xQ[t=|݂+N[a@;|W1&?dkl0;O9 D2=؁+[V'1.l2RXLѿSj$*%[U?l#-( Dž^rhkA=3ܕ"bkWP D=,cGQZ%_|W:wEBV=LoXs~NN/Axfl#$b Cыqn/?ݺs2θD)_/7OqM[zӀV+* 'C_DeGn !_YCn4Ve% 4>;x ts': Zk6t=bK) +%>ם NSSE@:~C#->BcME>q3ZR#ㄡhWt;iJa1PJUldjtWApį.Nc)^#IJ&MZH-[64-Bg1 6pu>>k$=R[gl GIa89),f B=E`Q]tፔ)i_(%jk S;5wBr !T4.0#AǏ\)k+YTφ&ҤnW.B;|a~%Xb'JSK.Jŝ3d'KF#~uS!3doA%7heu/lJX8Dls}L* <=P.GLB; ņF"K"g+_[y*|8:Т=杹 ~t?Ҙ^䀒<|M <xG2^6wy !9˟h ۊ):b\42&|HZdZ#nײÉrx7?7'xMF x=tEi9W߳"8DsO#%^s j-3j1Gɔt9at] +jF V ^=j+BNtd9 `y~~__y`0PΪyڝK7¤/'oij: ?yhzvX1̶6cu?bX)l,Unurb9$K M5)3#>zߠzZJ}0>BKA\GMAz2ߨ7sz,q)GgrʎX Uqdp6c%QrVuk3H׾h<%yI|aoIWPNm^j*i2|& Z4}Lb)C-Z xCEђK=8]a>[|Q'DnOu5~ǔ{Wy Yш&,F"'57$ P0:^j߿Q|8j,c{_6)͟^K9|2\"=xvCk{LBNe CAgUl i(_(#93 1B$ɣ8ڗ;H[zu_s@ZcFyVP| F7i{'O=0q`5ׁlIĶctH٥C$0j)C]?(PJDh?fe|,6 __;Gg.`ۮPeaZ85egsp|";'ǥK |j11ac&!v+Gd娗`Ҵ)/nވ+}X>L[ilc^ ^ޫܰO҄t@)b5ChSY rqj̊;zx^BrN׻_O.kTΣ{*Nl^BxIu/2Y@LAϔĚk^@+JDS :Zp#Da*ZJQ|E̦l^c՝>(Xv#NNƲQeg8|Apښž+S $).ky1?5 `E}n<,mXiɡ׃$-t5"ylk %:=r@>+Lu|G Y ~1-n!'b *csR2(u M̴f<޽\ 9VͰyzH B 5 !}dn8 -_BBd.w balM5v=Jgڎ 6%DCK$N1ZlY6ԁ1:^mďvL]O v(TN%^,ߨKxg£n!|inrbJ[h2b#*MRHuS7_訽i K..\3<b)_@бVHTy-Rh 5YMݲN''wX9)eĮjR_mbhjVi 089)RvoE7y=ЙM QiRB)ċ`  é?Le] GZVBna3 x!jU u:c}Ֆ;m ^ ڥ1F&&/xi>͊t 0΃-msrDc,U '1) .t9 H o1ZI84eU27 LLu<mqrA mY+IqI}lHE D6#dֿG98 rYt 8aȔ]67rW3-_zEtL6`f@Gdp[(n: <.O.96`vo1co_0ߘ:;/nKKy)-SֱjADm`ti8y{5oʩskh^I% 5x\&<Wq%b2Mq(LvK@#طIqA^t^5IY%B12S{Tu`I ;>`>7hBǂv:R<<6VyIfD ~gU)f7 b>ui;B,TEs o#?OXQF?W6N^童!$i]oD G}i+ '7co{߀e:lS`䮂zhj oXޅT3B_u\\j0ZL㓀N߸Fl2."cC]&EMsj0wsd/-.spg,foZѤ$QXYFP\S-<= NP!Jd%MйB}d9x&8yTxiQLwaZX\4Q")?WD.Ŵ|WAT8B <&w</&BQ uWX4H,}!ohк/z9d@2I۠__1p@cyn"x9TfδvQPTЅXMqzeSDvEX؈ I:=]ʐ?߷~,p'v~+ Q~Z>:V8$D6-06Т <}>*B蘆gm Q$d~5޴m|@O.QciPNnPUT]Mk(K+uWA/7oc1z=(Sj):0Ё2Ky{jbzU1L2^1ѱ;aU7[Э;9]R.`Jt9!ۡ.U nG}do~fRgA̛lz yϪrhk=Kӟ\O@KEyx]tl 26Xuj2G~pyLz ]E#z'Us͔0i7 |vZ>WwLqFQs iw+g}uN]!aq{*UhcxM`dW*cXw&`öOH>J-i2KgRHt O#F [)5fhe9OzÐDzW%A0K:C^4?U")fr!q AN렊pJt -Cmז*E vl" 7"5/R-HiM5u VIlOOKр/\ DX^8t9| Ȣ'$}9 *H6hCFc㉽8Uʍ$DjRNaxѳ00h9ghk:ELj5:_.m~H0ݟ1wЧJ y#IJsȖ`ǂ}z_ ︹KI.EҲHpY)6FASaFa z4;6rR0-u6fɱ![9:kSo^K]…PND\<7kt*lWun'Dd;3N!~@#ЩHƑ-YVD>,Y;[x#X7,ݫ~errY72@q/#'z,7-l1fU֒?2 Q#5e,^MIk'xEcN:>Yy} ͩr9OaM¨v`dsJWTA+NU]^T6.g).шۖ>]dʜ'!_DѶNMqXV޺Le1+& ̇#$|.?_;`5wn EX@Շ Id1خwx;*Lh2B=N}R$J"~ެ\'iADBhm~v'[d Zo[]LmXݚXSrDz>]D'֦/Cf&j4 j5D1wk)i S4T7aK<-gzCy"ʺu*d0LT10 ]ŕ߼AřQN"CBJ}Al C[-k-3=гZWՃ$l2{tHk-zGsqC2Svא͵6ۻ>e3Q<1-J:WyG&ay~~WjjcSW:H ճwǐ3V}26Qdw' R7C \w-ۦ nݛ&Y-yBfʙvp9|#G&|0fg+6iDJj q{$5K,fO=L/Cw\9gϾ?̢gD{"d?V?T2 l,}IJcsm\8UV.trL7~1qS̻p{5I9䇲g˲Fw TFɲu*f?|a?:u-Ӑ hH(}9i V7Ⱥ=E2`'%t+0;:9 RQ`2.`Zq)>Z.񌹓{{ja~v[S8a5;Do\gOeQosѝCdZ(|Eă rMg Ig\VuSn.|\_PݘcY_G!(1T_Z(wKb/*U.-)vpHHxkA 4 ˶[idA>Sع tkac *%j29_Tɰ لdzN9lkO #Rr@,ic2rz$cʔz8,w4xmg.P1ץ ~Jwԝou[5?՚ 0TƮ^ݣlP6K8f.\ɈcQޅTyL$4S=мaHʂ*[6vpIaW > ̝9tkʘtRK8!O^> o&~T--Ҩ0ۗz"+sxIt?{i2,kawGzG\pM4?{M\h~@_)*@-=) ۿ4LxbkN zE-%a[q Bcǧ0H!K9z3:䰶q\y(<3}Eц\ n2Q X%y?#?9( OAɺQ{"W=[|@ʭta@}hٌR -?Qa1hPR" _y"؃@^u踴ijU\?sх {_[QYB҃]ۓai&~ZفsO3ߛy㮻&q8[;'?zT|d$^)N[eb &]3b0x+H{K?r7ʵA x r]V p+:!/(]QGT]GŲO3md76/ 29<2)Yl`7ƣc[0aaE XWFHuKrUmDVh[_BŒ4Ԓ-ݎZ Ầѭ"CKC37-XQRWMjYS阏 ! ߵLW9%2cl1,DQUvͅ氋q53\mYlM܍/sS̠ <F]r$LNɚH5C&Wꣴ%JG75`ȧJm?my'ΰM]f|b"3G^1pl-߀])eNi CVĜpm ߢSD6BEW̆5gZgWjkRmiX`úK`?1V,#Aʏ$uɕNSpJ/h(0yjaПe iNFGh*7DMp+Ab.Ub+B/&Ս!'zHІ񷖥 W²6 kFKtDȇZ)V/8gFnzMb?Wr7Ў/fxX̒ϕ-~17639COv5:@sip}ChhX Kf4R:lxƽ%h[5sM&( r39 PKDrp NGcY27g*ty5=C Wc_>fk\)i]vЇ8gb<ˢvEȍ\3B8,SL9¨##ͣ/+d $g@iSGIjphЄpnTZrP6T8y#Bp 8!QvS'5 i9)<Œ=omK7-ѨEeܾ]rLoe]ڋ* ΣAvhs p1:ؓ.Mɾ*`rfT D6c.=4pN=s݋aH2{K~akzWs~8+@}ݷG_ulx 삺z-[Q,kh42#nb/*b/ܽj})}y4vbm_k+CIJyb61*rN. $"I ]2_\ڕyAm%].8vboE@pXSw$ )l›c{ܘMD) NJI)z\و̼5~.Z(g|(E|uOlǪ! 5$ EYeĈ߱dY֨@\r wnb$D~8T$_#;0˪v@kѦ.%j+[.Ʉ(-עma}[jEQ/<z] >E"JniZ خ:v ? ϕq)~Qmet|tXڗK`P2"jġrؕ,-xxkwe&Ќgtͯ.+WBjx,~NVGhaI@w15WNc.[q0m4 wV[ʇWmOiW&⋼Wk6b^>3V;J|4#6T7b29"b046A`ț=q^a(@ߺη?&]8fseUy!\@rUEX42Vm>br%rYj|?(TN r#/)o&=iڳw)x+6[i<8'-TVe軪2y!̵l6Ju˳$JQ;Oqpi`E½I^Rol=1u Ŕ7 LB#jfhB_ z4${67fAvj3m`,A-d_s Q T:X̧*F,<4/Ng`cdp? ̽ގ ;G% ]ߛ*,F2 ,Qkhǖ3;Zu$%{=|^KT98憂-DH͘$53˭f3 BgW<nuFz|z@j C= _&[3i; 7}sMty {I`DO[RUtEr$ك}c'!UF{=~Ʀ$K&Vˠ4cpdqqCwب&-EKLcx4ř qy8Mf㯠:^*Uwb'<|Zq ͟jȧ#@M#aˏ>vcsR4<ݼ9nW* Y+b]"(wGC|ۀLIiij?ˢ):4,h:6)l(|ksMPOg2h}ݵL &2z{bOR|{:s,:nitZzL-P/6J8\:b+BdNѢI׋WI;2ync!{%&}e_1Pܕv`m_LyRTeR* S:e{-e/g$s?TjZAxWduW OoS \/`|\#R'~09}n@Ԇ$fL\IVEDs9LCe2K=,fO5hTh$[nd%Q.=7ML } i7dc`+|q!sgǑ/2a|%pϼ~(GLi-{q2Wi3X)!CvQj0ED|8ꡏ qS9 7shxtE2=vHݷ럨oW"j̚G1~Gms"0(\'dxr3&"Pj{ƎpMQ}:͖]&ՇcA-RIuHn|o7M9CO|uS .N]mE! 9dl&Q& GӨskѾMO[T2);Y7? ]u̇ęw ~!*;TppJx*> %0:skRc7uS٬ ? xж1ШC:24.DWTi[Z#`%y`vhJ,%^4^H=N-H-Nl{_k_]^ynmƤҦ]C1RSIt_ݏ}; [HfqeZP³ Akn+Fsclδs"k||76jx1 hq\P =U* t\u+Ki)0Ψ]YÎ Ha'd5X[Aj{4-}|6w|?% ^*ZiPAT:zڹ/lUF֦c}wQ^h(Z.S^N aT5pI+]tH;Q*T9K̳)WT3U*ф:\FqN( `!dX)7S]Ͻj( kb'exlg#.1]2+v-̿Ѐ6FC&3ⱤBzT>Jp|Mw:FJ`bTٛ֬ oaE5`(hAP5TU$"AI}tiY}|os*y =c `h.-VM͠3n:eWRQ#]Unܙa,ŽUc)<'&=<.MN"֘P 붧v.Gыw4OhZ'֦ٮu~CUH-$Pn!҃0 {ʙ0@[{ir ^} akzħZ6z"RWY[wS"VR ;#틥 CIZ,jlA؏jT ~lA>@ .# #X5?he-OgIN۠&F. ʺf(Oe *8 Ug''MFMܹ&Սq{t'-*.H.R5fЩ"άR6G; ޘck.?7iq "e7?-!(D,S|)؈3ɸ2ag}NTj^Ȯ3L RðuPp޽$QIBm.x΋UF5%ʹЧƵBDLx_GS ڏz1Ӑ8)^TLy#ЅTiO{:ə< ?y{CTpf~ּeAqwu7Ć]Q-> 7%sԠw.+#"xOJ>mN[x}NI!s: aճn^*|9gULo\;tX~n&)]2@9.:(Qm rG%S-0_STZUN)b7`\iS`+0U \0'$C;^ʙ]T&)'nzGZNoV Fݩg\pex~ MyCAY^l;ߍ@֯Fr!3ԓ S"B;6v$֙ю /;54k ~5VK e(nndH ؠc`)?UW맊ثqK?]S9]Ӌ!'9gobd ;ݩ-`VVu*[7:wڭ>T4ewaup֔3M*.4]i|OXL˖Ϧ?HZu,p(z@ jcxNLFGRLC@sC=  B~~yj̯3w5.X:;#. z\p2(o Y,:swΰ}:D#%!-''q2-NmVƦX*;6o7ɹK|XΗjSW3mx$e#>L?R>.n/Iy0pf,զb@ԟ5!aAD$Z6}~-7Sm3MAL1)˫+w6wNp2Q;wFuXkFH"Q\2IxxaM&3@J•CƎІ4 J\H&~tLrQMQwU.VABXN?XpdU{7zq! m;tіYaP M| tj z sQ9& {nP*~,EʂO*ܩ28u KNj]=܀x.$M)MfQS  ̨o:F秃D,G*`HM>!vzv,YDCӃ[YdFG.Rt };І1/G9C*˙Yq;V2bnMP™a@X%CqNe~}oyݙӼQYEmO!$~10J@S`;9@sbpDZGU-z] - ݷԺ{M<~FHwyPC G.(du?ӒiύP\㈸DvXۛӋ[7Rw`V6rE⮾ ʅp+b? $L C0Tr$AoMBٱkX78UR ! `VB NUf2tSS[UK"dA;y( fNn-o#XXhvsDΩZ yz#m'G ]:HxfYd$,!"XQhtS^)jBj"iߓ>K=XhjP4ki`y?cJdVvtoP!N>[iuF,dh![Iǀ堾W \_Bx# @KM•~MT6t&Ќ͓Tn6dM'$4f8 L$EJb^d19y cIj-D1.!}eOKZʯ>O@;Q5Rz<p# ;w%g.A@SATooʑS9g_oRs@pDZ98C`7%/J^%1_~X[UA\*bxv&__]aউOm5êU|̙\ˈU.n:~le"6/Qc_kXoyl~A+P?XB۷E~5_uw!S_c:óA%X6W~2߯u/f /6Aƌ9706%%7;(ztMĺWBx% M8_,{e! BhOA1}6d\f9%x^PhF3T_B31x:3[ƨ JDH/(ad$|fkī☗HI? `lAK$҆A1e(d))iEQmPD`d^]6!)@{(hjKET([r# fɚ*A3\VT`dHvƅڧl·^[MIM/$No`a9ˀ dVtdM'dc,(!Tb Hn_^'t@ѤY^#8l?Ǵ,S0|#i8+^Y| PTbwkpn0"-^aGpg* Dw'1k?r_{d)M;Z:`*ɖa sf9m<َ:!x r"‹p4)|lnT(U*L׌=b-e }\b>,Cn lX)Yŝހw~]3i|-y'>$"WE;¶v3q_Fʞ:L~oWD>uv0醰{ymH"2z{418z@b-Wr ݃lqI!x ipL~ڥ& 31Y4z#WpAD$r}ZVL}L C3!JB.<Эo''(aLI91^%}Vo~ha>ˣnldqnxZso]:"J^ڝU7[#4^dx<((zSk0`;h?y+QϷ\ h:0W~tb|zؚQ? K!dW=,+AzΝuekmG6ߡ$0ʤ-C!9^(:+U)Кؤ$blRc /QlFpVeqI𧊡 D,زA5/nߥq3Y7AB2ՕCP g/ x|44"ZV;SH濶)o#9iu $׬ CgdF!fY: PtAXmE-Y˱:ΊUp>r#0L@M++. Lm/aDTQ7;|S)iлɂC~{҈WwPyy$:gMa=!`!`4A$lBI 9nXLsxAm'/Xk]onCc7}uR®n6 u 2kaqtC@Qg罷sТaw=Hw(8zf4 -5AǚA`b1s̊$^"{n{G'% ~=*vZ|d1b.'rGO,q&w,bzr:D8{IsZhtKsUlv gD;cq»;7O^SIb!*!ѡ<Ǒ Liq{$#t^wqa-US=%Qqy<3 sQ>ʌLS4}J-]՜!`!`ABxMK0.yBhYH4J~A1O dXRȉ 6OIܥPh0jM3 Y`f14—;VUB ĨM'kL"4Qu {v!%RN 2sMEWN? 1*RjGȹS[?,v8 11Y!`hat2^&'FdN!}Lmr lR4dpo IF( 1}>R` 'tϽ 4mp#lZB?!`!`6cj -õA,`o!`AhIAhLO:PBW=07'ǵ[ atB# i/L%`}ƕJ@scW%KŤ]^q, zbœӁ5?߻D0ьڍ$ZmV_!BᐚK]S.@(A|Gqpzh- Vma#[VKMR]5fTdn׌4Kq!~7NS,?gY0K&7#RKQ|;m%-r ""yR2?ł!z7y[cj /x2͈^!`!`AE,vSP$&"  3B=[k_yIIBqI/'ojو3i?qH 30"1©&rRiu!`5t0 b<F!`!`?j3%~Ճ(&54 k `!`lAIAlLO:BT=07([ atB h`/LYG(Cs?漉* q+=>rV&kSb Xm_Ǻ765)Abn fYw_%,޽XV*#@\0jne˧OHtz"LC3=QJ3ds7X!jo|q*h^#"p y*}EW=e ~-I1,MX^Fh:rH9$딀ӕ'<-cHd֞DSS)u<6.M a@%;u} zXMn}a;{pط!`!`tAE,vSP$&"  3B/.ݻ+*wN, iΆjX,~f?@f[0wh"$^cA:4!`!`9t&ֈ# w!`<j%zXPR#t!`!`AIAlLOP ݁A@;>VH8WҦ!lRFj\e&nfbl!5% 5N͈p,'RkI9{.?`νKἐƜt +F?("ߺ ]QZɥM_dvԻYw[V_Y[y2=!`qAE,vSP$&"  3AR*-!⫦L~LW@6zQP5gۡ J. 5啭6@Rjs6D&_>`!`!`3-t0 !`2/j*n'@!`!`A4IAlLOP݁AHCaV)!8W46aAH^\p]N%6w!졎rE4۹ʡd]׆ oͭ9 &vS6H e0!"fYEPURz)35D+^Fd.,-!`!`ajW2ln}9,Rt#܃])?T:e~ hqt=Qr\ҁzRƥHmZ^B3\5dZ$&HդDp=53fʻ>b )x9/ eJ4CL*doĸ7l+sTbPa14")wq^R ы}RW½`szĕԳFzsjPc-hƩs4/6I⬒PB_D? #ЏnIIm/E;PRf hHQܚH>\  k~AWx"}Ci= =Pr녦֐ h;)+!`!`~AE4LvSP$&"  3AsTI0 8smT͛`P}<C{YWbJ灡Qs46U U-`6 !`AtJV.K|!"x 1%Ҝ5\h!`!`3j*n'@3nP D@N!`!`vAIAhLOP 9> 4&$;cZE,jG~U qf ?W?Y\||N8 d/9`ڝ6hȬ5[A` jvaHM$UsB {>Z:l3# >Nc| ).*a"LE?ލy騘VxHܤ'5JmoPy"#7X7ebe" z)SDwc7C5  Ѡ+0f)h%Eɛ?Xen?J*VG+["U2AHΔO{FAaJ MmI!`sAE,vSP$&"  3AZsۚ [252E%@˘8v ۑbis6ۡE@I< )\!`!`4t>_p/!`@j6I@N FG7Eh?:7!`!`AIAlLO we7񱫒)+?['@hx䅵j/ !W= sf2d:H?5]<2#xKZitwϯJ Zh6:Pqe ZJ~m;)Oр?[ꐴ n0+_Z:KCwqN4/\b/2").O jtӵy7>m4N[2(^77]zb33qǝ9_/#wJ CMc֍ߔ5_ۄm@pܾ{*W6YAGH7Tyz0L>U}em8uĔh0. ~,Yy?G6VpS3K= !`yA E,vSP$&"  3ARMme^3 ߼R"X $SP;? fSā1Yޅ.hM**\f!`!`3_t0 Q!`!`<Aj74CP ݰ)P!`IADIAlLL'5q6x1тFÔRp݈h< Ul}yCMŃHIb.ZRY{&AP.]P*;v=3Ix2.~T+ZԆ s#F4 CH"ev9OU(ȅEc1J?R5ݙu@F#֨ (+L#ޞ*~ۄ%Pwea+D[ 3c-èVQ;luwځ;P2Awۉ B?JweEnSϟ&lO4~Pӧށ5^?8eS$ *0qK%I sgP6Q$nq:yzѱ*ؗvz?m`  67>F\1{O=I[XpGHu_.u,O({~i f(ucd[>*I*1D%Q!`!`Ycj,-;@` 2kR Rzj4nҕ=,e.fPɻ*ޫCҖmRx0DDQFb~A֜{>= oi55 p&?] |UV׺|-4t/ JV{] -q22I+tzH4cWKb q7tN;XAmHZ#?s*Л ͿWcr2?KGt`OzzɻgDR%7!`!`aj<(R_@{C]i L @ǙrP9ϲ5˜$c@}]#4 A~ۆ TDvpNz @p^f飭>1Up~bkFǴe=FٙȖ@t6u@"[݌=fɳ61߆mYXՖf0g`Wvy=߰$$y!V$"HcH=ϐbOZLx {IX.䤣62,ym:L,]qϜ){Dm"K*t7^d~N $/B,˿z\8ߙޒEzP{]!`!`vAE<vSP$&"  3A}pCr\HU'e!蚷: mH(6‰[h9$ {.{͚wr 0$_!`!`?t 7ƉḌ|8!`2j*n'@!`!`hAIAhLO5\iGw@IFxﯷ}${!{(!2VTZ\ĒN,rf^ FލnQ2CxmXuc '$W)Յ++g.$٧((2i 6LJᶢGd )Hhk ZD+]mDL Œm:I^[+S7?z>R oDFk] 3,Q2Cp9 єa@V6h`fyQ~9p6AFS¸mN\ma!`vAE,vSlƸF}x@NA W̶B^; iH -<6VxXfၻ*jW2ڼk^P[c5X A:*_#WL/эu}*~R#/PBuͭ=YA hLR"6mLlZo^'cLgnMuVF z>7Vuu}o~K` a_3(U3-?v[_a;yK9#;56axˌwn9xIpLD+`MbWnhEx+ K7ꈊW<$jG!V cְT B҆mb+aqJ~ h,q9]Ⱥ:Ly* +pq`$13d#O6} `ǜ-!Ѕ^{E O/=ۍ@ib&u+%|9\L89E=c*-O=U*c߂ȦqMB yg1Q Gq]RglPi~9<Fh5M-GT(~CAȜ:IF:8 X~T[F_!)zQy{B K3(hsvR@J ]qd۲&;;&D}* ʌW&'=M@ۈ:c5_*o(&ȷQ5~7D`0ԌcjFH1@ K5pob^bl.Q~ED @@vݢ,fp̺kˢBRcD (גŎR6 ٥wX{w֮{.(۾pC#qK"bKy|v'T˫ >'OJij*;oϑCebLWN] A<f t*>QRŊGovt&}+d!rDVbBSGmt-ƏRU` iC(75>wjUZ *E/cc>ٗS6˦gNyVlct7_EpDlG]m$/.qwWmBSRyu)A(a|.M?)Iv7Ԭ}0kH2NN} wRxUȠ|n%xQ2_"k=A)ĄEh!/\9TFrFcT]>FЛ[Lϝ4fk}cA"6y(]ٛ k#MIxlUktG!u]6 Qs4K'9y˗uȚʶTBZ+@F8bWՄi0ƷL;֢̆3%@.>TR قow&TcrSb,q>KFUi>pФ-,BXuʔpO|VOɘWn A~+fmN(|.p78rmo4-w 4ὡXM{|OR}\ g16r2ĪQܣhkKGk|=ߨd;uQ߆t&Nf"xgS)34 7LŁ;|1Y fX5R3XlA1J)FKSil"yL"zP^U ea\nsyj:u·GfM'33!F1r֬Za7ѢVbd몟 Qd-;AEz.[5uY(P2[p͜Z-4DqVlI\,בS-][{(_og. 4 +^\eM8i|ØI6wmjWrTx]g!*TDKT\cV䙈{)SDY.K(p|݀>2<4ЦbGZs]Ѡ(kGy=2PIZgߦ~-Z2{]HM2$`щZeS4Ө< YZZ9x0s7^CuqZtG#;PH] 7fՀ gaIUR<68%}Hkyl6(yP֖aVUoG=PY&aV:iF,OZRXpQ2=^cROϬ3Ks"=2u) TmէBpZMY 9b$|4X V2#^,A 0߄f.aK@ȷje\)BPۮ%A}~o0 U( P~Կ!`AVI5\ G ĤnZZc"4T; +ݿA~|9)~U];Jf4D#/`}?T/u 4{$_N;B]hIcyqZgXߝAW6EjƐ`?!5i ODžajԥ kR4m]?iKU&PЩgQ˵xsm0g!O :ln_gumfɄk.P-eY>7V*[I8BĔh]{V0X(Mb'&gDo=C \ds˭ C93a.U# zɺ>>xa(=K sǭ;1{OԬ Pg {J ȩ0N x'3o7P`raKwfE~ |%m̯Ce/R}>8v)1236_Wwe٥z஄'}_ugq@H!J&1}~ٰDh sԣ: `.^릉v~j_:Đ16Rx`$lɋgPDuդ.e(ct&iՖ|<8zUx@t&/RVu7':Vz$`cƴRRSxhzYdcWȵzA%n0,Rױ]Y𸆩hd!bfQ0O#3*ŋ,XޡRq mSt= !t9~KW9/lQOןȺ^pRGήE{k>g(z>/.j!T\c< $j!EҖPrZ Jޱb.تc} , kS~~0j5)ޗxn`@Q'nIYuit8C>N1KVj"U#ʜͰE巭yUÃ<|dz Nt&7R(j<48ؾ#[ +)7']n:o=lu6C+K92- 2w>QRx$#\=; )Ԧ7$VzYuKv1s#O`8_jQ9cLV@x8<'6H{txqv&%* KFhlm-U”WpaA- u,Yt}S,{P ..ch( L_WBd4M.TV̹*+7秶ת=E"dY!fR*,V2Cnjq!i\{dS?:3 X:y||D8Nʄ,5a[UA9_"vfkW&{:eؾq%qy""]-LP6H"d2I_EW9 t9Jb>@k =dzNL0'W+#9/{xbM]?Xp2rnCn-*"՜5?lurBߩXyP2x3ow}ek-O]e;؄+l]n zBQl\0Co8,/Tr*xsE;v ޏ!@Ta@b-*03GuO:}-UR0pxgYQ`Szm޵΂:>R'Lg7 P(B+C; (^q-lQ ,~ -DhDI6b/8 $6wd/@c/N{*zJCıky=L i! ͙]$ (Qb5穐M2>^{[N !rQlyOKצM{Kv =E(K;7}޵O o.UK[ǿώSڑ\T$)̵QH;zbn3sZ[cMg n2NTM;[/:UԱّ L+bS7-FYS$l%2R%K@+[;?L䉃ާj,CNؤY9Pl\i"v#`WC5۪ז/}5 *~L!Ռ ^ݏr6š[XmlF,ؿ+<"pmڳz=ܚIJXi}I>d*KDW"oY~4\j]zkXfL.>XxSnTF"ҸgNL<0*^zTO9?#[ܲ (& tX^E)ocBpaseͰG&?cx3_Q^Vs|EŽΤdO{u]Huțt!ܲl8G~@<4F_/ϱvK-bKIdG8@ێtFљҁHΝV V4p$Ukd3`d)%1wa)W0.(wAÇO3M-M][{FpnY5ms_JZx؈@7f V(0X Jq|,Lޥ\*73V9zj*8ǖ́:-yƞ}7/ we?lc)C?); upxHT{4.ǙoZǹbu<ܦTqβ8nNaCbM0Ҹ 8Igһŗ,%9cusJ%TQI8$4rl1&8g|`12). QAtc* DW Œ *{^26 jo3Uj/ 5I=~#OކzvXYIg5YTTTrGqr9 Z0k,Ga|PEvH}R<8Q u)7LTI(R1%+1ADe|ɶ԰x$ 6[=^ed;.:)?}Z~&L^"LNWC!`!`UAtE<:pD}D@ZQ.eg)[,$KcÂ55eҰ1 (1܋'DD 2-BT10qWtbˈG!x9Y FE|k҂jw(_{;[0~1swcGq[݈Dt#$'O>sLt9}V%FItObVNR `rr0y$pnIR0Xr+ _u+߿;!ư0óC((z`\nrx}g+\S*W/a 2!`tgtXK^T5x~FIWvI \t1NaI#9`Yy&dpQfv 5*("-+QӜ{F21jB6bs/󈈛m79۟X7\ƐҢQE+IWn2[}WK;F" 1nxj LN'i0Z0Bѥa̙?𣡃k1Aϗ,C\Bs ;烆z+*~.P'k;uDF/rd]Ԛ*+^lK1nCQ3'K QnT:+1Qz6W%"3M|jm0ʆ5I(ˬ3@ 4N ; k@Q^K:[Oy’TH6&ŷuaJF$}m9ۣP>u(s'aK1 k(1$%p2Ѿo:Ƿࣧ4d>1.,GMVaBfR|s۩󰜽*/Tt%5:rf{]B gx垬0)Aկj5O[(iPerPJ=z[ 4PLR!̇֌Q3ʅ0PCD mɑauʆ' Cb ڣdA& 6VTĢH-ŭz t-k9)&n-Q4*o)+P,:yYkE]~[JHN<˄v~sjC?׏.7I]MؚDS-9{qB&PΛc˕}j=ZBw7x-Gc͕"-Zji5_(}q}_v®Ѭ'16cH}hcC"MnAZ:SXWBTX-_ǗQZkـt8\c  achDd?VCF٥T:9¥7&L̲IIh oJz !`!`AE,*;,!'1JW`tD9V`sݸ #[ =P!ѹM_{B?M(ٽZ.>?/Mb|$L촱mn t?ὝA+B.0{0D=͢oN[A=g kHq4˄pښi{P9\Gq=JW=!`!`UtwJL)6$4'N@jA\3.F91$4pP;+ePNN$xS,!`Dj=H@ `a/ fMF^!`!`AIAlLO5\ G Ĥ wRsyg$c59z8Jżlŋ_35nR'"G(,"MlLcy'S>`.CwVNzWn (>B׭bqڒP0VUf,>^ѻIdنi:ksEy+ɛ9Ij$30>ݚlTh4Sq>+6j~ݢ W2ڇWQoS ِ)kYW ;(ɋz z`GBwH+HBWa8F͂P2h5 ɣ eo4Z|TcaS#J>Bky+ޔE}/.-SȰ7Y%t:zM̀Xj^s8*)YI[YЂUБogX;%{ }cli҄, $ч)XH׽x~MJSnLWBe6z(LeRBGv8FXȏM`jH5աDTJ}DU?,*^nvg~nɥJ@]B J K8u#.\+{VmgReCp*z0ݠVj6cϘ=/< DdƦ Z1# GF| |ݳ MZ+$TU!S@w6>N55BrRY1Jpebfkͥw/vGf@|78!5ݥE󗡋<_[MHA) ȕW3<:v$6as[^EW+l?" 81\ 3`=l%MCG=)K\iiЕ' lx :G"d{DtJ u $hk RMz6zml;`GXVqac'띮=qS܎,!5M5+o{_qG ( fObCh?h9a7B 'qfjM.T)ȥ^Qzm'N/z?]I/'7N&0қAjFt-u^6lot{R#z ZPd| n [|\ߤnIXtGKU. ՃzRZ/0M5'ҏVJ`M`JL)'K={0&>tb1TS&"ERQ@foRZe'hma܋.7ݩ=QC.A+7| PNHF1_Dl:RA~vxb+-yf'`F@bf2#`{}Y avB/8Y$(cyU Fx15vfɿ-L@UFeƝl2ZosUQmZH`+5fA 9*"XfxCW5@w=X1v[Yh9vlS7AiҁnbsO\jvPA6?Sr/ja%exRVdg鯸;R?^=LLaMF%cцF|p =(,G2\(_;%㥘l3;1ĉt{Q5jeU>5bxcJPjw5[\` P?~r7%l [$neNxVԴ ̘KDY}v0YNBߌ8"*v%AW-oĽ WU*Eթap7_gDz 0Lk`q0P rQZ>F9:n&Լ/Hl~AIz;~$`OŊޖMt227UzTAg#l!O%9=Qȷz fEɵAsd,9'n]dŊTU nHr娭Z  #[Һ̖Q^KⰨ@R Pw]JpT((9$vx)_ǹUa%w$H"s|@z lp=ꐃ>rCƃ[8sj7Q ] n]wUmW19? E#e̡7CCLA{Ŏk&d4uۦ9w` 1 2/W8JgW x.gqI[-S?u{`K1 {gl&Kd\yδ32w^KtĴ,^S)u$|RzNc ykbw84 b'Hux]2t׆> ljъQX 6c[I[1NfI\u,(fPNM(x>Gk2XSܗ 9MoM+B%ck eZ-Ê <2 /|+I+\$溔|'9Dxl 4*d􂵥d7a2yUEɠJ-P#~0d dڬm3jhl-\!ovmz͈u92XXm? k}4Zyh1y]J2yČt)tX2vB[KF?juSr߀8$*8o)SΣUzZ:­P}#"Pd', \wĽ֨9V4eƦrg!fZXe"l3EEg{ #j 4Vss(z\dGplCb]Cl>B?QOWckOQ0wqn[ܽƿ4 S Qh %ÓJ@owm%ŚfN$rbl Z~V )8sg**ѼNk RANJjpbeNۑOqi/(Yu@E) >Ni62(ISΙ.qIUPuRپEl˅.Q}|f}KżUkQHErʊPݿNNOtGBk?V9]dqhIVRxpbwr$Cسi@kk×Ȣ呌leZ9*N ηCc\co7T7ۅ|π쑏{y=gWi_JV߶"H-(#&1ޑtA0X)6-`CHѿ KIc핛0SkM aElv,鰋ɂ/1c"n2A~vR`<, *vlpёsP8f)  ;}(H̀0E_Wa] ط};vErDF=?3TYnNtH K0O06[2 :Jgb&6ۖUxV3_<ǰ CӢ "I86ZQTyɀ*zI`v,bxnۙM|H٘Я7]%s\d^6ݪ%e\oɌȽȰ96'0ʙ!+?=/k4d'wM;b >^-͑j"/+|xdOcFWֳ?cgʖ`T[A8X5\"kp6}g6hcQ=գc8(y\sFo#C\Q<ƅZ33$ğX3H^R罺AuFM?X}5VNXRqK:ԩiߒ81Sr'viJzHlю 5kYYn@Bz x,CT37֢hx^~j+ԆcgQc1Ears4FEsguAR+ Ol5QTedSNZRA) !^ v|VjXu~%W 0ȹL;[C^GfE'P ֡*Ȏcf*z?H냗_Eżw;?=׃rMH;k[}TKIk3p(QPrf%]] ֎TZf(ƾqC&{cqcu4y' /DGH6k7q,3u%~X5g/5j=P8 tzO6Ii#YuAxC't(RKb䫎;U鬈`'sG]')eŭo@˖}!6xv1 )/$=-Tp 0 h8 \݄eLJR!d آe{BRՏ$'<pM#/[2qqFx%J`fj.y$BZUuy/tw' Al,.,ف~Bi 5Td*7À'A8TcrcA8nʌ.IPG$ 's|Saxѓ]qA:@EHW.뼌- uZЎ3瞺/aR'.|Ȕ]8_*q!?ZjuLk=g 1竟OK0#?2VĊ 2ɮ=t^_+7jդtun6%f*]a'DzD&Atx#r4veĉgciSo^֐FR-q},[%bFMH_F_6;sJ3uBXp8ZB${K;QݔY2r>I-?]jajS|yn$ơz3?FqZld9Q y_89#MR 8z'JѩG0.3pP(Tʋ7? 㼻2y:PӚX@χ&Z HaѼ mt&K2R/oc~`o";,g[(R24MOL, ]\6> /($8+%(W7ܿİ}2jV'fv +6:'oѪ0oHƌ M{`#ڟr-֫&r #/Bאh92ˢixn (8kpMCc1)8t딧 9C*K $! ˵UfFA1H$FMKD]DKȱ0 |j=ؔ ͫg"]ƅg0Er枲Q}whÝ)7\J]sXxZġ<Yx_Ah}VD7 oi^=IFp`O% xq g#cY椭1"@B*c%*?"-]OkkkRZЃ]6$/di2 q!kFg;\;L10{Un|w>*/IMsڞ UK6½ vfCB.X0[\H3<ΐ1շ,@"^->p,Wl\fAcꅔ23l%?y=u4֎~~&F̔wNÔˡd$$bxxJn뺌Zo3y]_݋m=ŵI,yAbe=gBhm{W y7)7e_2y7$67͊EWcRW#;W-f5)}ך]?,3%dhTy ]|bֱ`iEC8!@iŨ $=-[ &ܡY~;fs7݆יϼ"#0#s ,mi75jhIK[9{eNiZ~UfYj@2cnH~p~m 4Oq%SS?̢RZ>pw&<ʒT12OjDo"P L] *E/2x!mGW&\>Ħ rNxAz6GPC*&txH_dr!Ul;-v\s?Wk!(|_W4ÐJ&AS='@^<>D-{qq_)k-(ru;(F(a;{}T2'4q:)3&%TsTPS>2]8]P>GP :b]&Rje:qiɪR\s>ogn9cna>_= 74$obC\u13ā;/uēMiO^e}4 9t >,^H*gDfj짰jGN8 &XYOJEU-ui@= "%A8xФWLdyުuHA0u8DžFr{ʞYfFx7+?Zg'I:3'a$ g ]ߔ&b¼ydJw^̯+X/%B}CQ#.賓Sզ~"F_+MOA*6pqι!%+귻0#k)mAI -KCf1[lIyS\ܢvevS"=`OO,k?7IB+wEqp2ErPWueX~Ѹ젍ةV|"*&\?n=We7F7ܘgn0XGڨ֫׭e^Ecܞ]J~0g {]@I40 ?1*uDJ0hnƻJ4}FXR5cQ؜5ae!|3 򐠅B,2oLފ] 71m}@"{@"lb,(Pa;Hj0>f#X᪶ȾLb.{,njWĮW&-+ 2CG 0=41C\j%-8m H[Qn<o%Vq¯0Mڪ̂ylvF*?{Zn~P_j7VZDm)? >jaي0TB/t@^UK//9$ Eɲ,$la$C:Pߨb۪($x'Ԉ*|` h- B`M[c f:zOU<$#rk<1Iz2I[ "i=Λ&"n<RG>ĭwRJe!}.XQP[b +9*1qȸF$<zM@|:`d$Zl.6P!.H> YںB8[}V˻jlR %3}|rUNw!ȾRpT&7O N垾6| XB* Ӆ fU" I Jwj1dvqr* Ұ]Xt TYpyu[!㲰%䫓KO͵L]nW@_;F{JԵ/4f-"7J뢿#D7}z.(v&>\ué1k0DLRPt dq p >aEj֋_=b?~|`6-i;N ~B/F 8sxݸB([94Xd.F9L,OC+&-9^|UXpl,jbxU2-)5܂\3}Z7'@a:}={x8]wL~^0ZL.3r\xC0cD{b:Wt{PSW#"mA'+̜՜%QSB2ſpf@aDHiw(=t&dpT(ilM4S܍ͬKy^QUؗ/.I-[$*01X2WY %"z[&p[R%AM>f׫k~HxI}<+lfDZ0 :tQWu@?I>1 kS<цp-?h$\2FiF}Cy\jV[js$HZJh>4Dmkנp*Ht0D|Ϡ̹yVV{AC4n$JSoޑ~pWr![=!-fN_*[!,,ېntRڭ#?Ã汣[,=R_ (S}r5g3t{[ZO6?8yɖD ^}\Yd㕈W%vERࢺEIV滉T27lNĿ *^7D{^ܦ ÛYFRY2'ȍѰ5H( ƒFm$0qORQ@/ͪݕCWU@}MNf#ؒ[VWC7E.ES9z},2*TckrCfkBG'uݪ[_mZM?NZԤ* SyϹ((p,[iY4(Zˁ8Kҕ<vx>4w 7̖ir w;tD5vU{Lef/ F #п'%(JhM~nLt~Ik鋳8HԽ~oRX`ا_sZbߏ+ɪ!]uvy{84%QӯHg6=ӱĔ@Mb)dci48`zGpe*1Qo2 9 V*$ AtO(߲&N8ꤩ Mh:v2Dyh Ah. i7{Elh NkY%&9fcم*c/p.<{_Q > Vӽ fiHݘ1i%$^18 l{FveȦc]`dE z#%cv*KiןCmbngQ ,`R:MDK”ȗAXL$yApY6fAV)[%+Idm vVѤ+$Bzj]A]t!' D${{QC3g|Ԧe+%EF׵m,阎@k^h$YLR״xi{>UÀrߺ%?ug jlL\OpBL8pv'8n2 ʗҧ2_a_ [g)Y tNou+toF&X,&?8k!)(xqJ)'duO]qW03Vf@Je<}dyDB+\rM2OOnnK/ΥRm)TIڻPSn{W(:UM.!! d)xe Ká1lEF8bAA>*krm-J;k+~FOԓ^g"(SvKxʺ^\ xK|ub"?EQ. 9D/jDYb*Lֹ$ϼdZ-ŀ9=8ks[yMKByжyʩgj}.:rkɺx4Ūml5)n"H :X%myggHlR\?L!ϚN:ڛk ~j`گ,ϒ \[.q)&: |b4~w.dvH|ӗ~5Dm9Tn8ɒ +1j2#ҋH)>g4/sE%&Ӂw-'ub8I t=DlXpE.9f`z뀀UP98Fq-JBD "V'0** Y<ߪYgWvJC4VX)}w~y>EBs ;QyT~-P] 0͑бw 3ySgt{Sa2m> g>qhvȦmJ_$H}~=m^+ݣ(zk+InG I?U5T AY:(U|@ Xa&ivXF O|I%5C˪~Ap;2?GgP_nGļ욶򉑒i?,@Rk** uCq*Ԩj}&^sm5x^# DaB e9~L:VR_Od@^$<[{0R{$GduOͩvorCrE9!O ?,{ 2oK#( <w$R!ل[.HF-S3vmIb>G O}lY,'DLD)kW#l>imh;9yn$W ogPn*O*:?cX.!5o5z2osԮ t{J{pE"?\)iϑ̑(o9V5-#4#*oqOh;Ian8im4_M{ UϘ6}ַpA*EN6X[䋸۬g QrdSƗU=Aʳ M>,~nt0Mx㍼)i1! qEƢb7fqd x?2wCP1`Y1֗2P'pPT`ig^MdO*es!/O5 cKo-6T ƭSA~f$XjtfW<;dHw2 0efͳ7qga1}.}DUy|vzj~fM#@3$7l vDz:e$>UyA4 6$tA! gfٞEb/JH t-_n7p씭7H,%;GG8'_bP(%2o|!z1 6+> {po1CBe.~@oTta1>H?;K;lkWgxUL/b!w99zLL<8GUNSN s["y;c>X-:]h^=~[[7@[.8}?SM@~;` jEģ'G)'tM-Y aZFɱ3a |G2PeUR7JJ?dW+zP ݐ 4ʋs 7UӪ#6aNadC,mђYJ8jơvD73ӘozI.>Tf5Fe@wxP]y'+;٥*w6{58B@Ics'LSeJԶ)Xh::W߼_~ޏ&B`Rnb }pia,FҠecO }e:q*5 lE4̫s`=ʠD0xQ*rE-XmBD+wCƭBgu+=-'56{ 'MfPԛX^5S/q|7} i۞]Ϲ+_iYpՉGk]hkZl|$}'ȰD8p҂18G4KLMmAJIY ˌ.g~L=hg[pu^|v=[C"Wj%@ԴלyMT=)04!@Dܖřfw֧M+u+AfRj.mV#-ΚkgzI#ӦB**Wΰ5G?Iro4t!536W̬2M_V186Q$eknG|T"Rh E̖Ԑ kOPKJZt{L,l? C͉0d8Df"79P;"ُG")3\n\~T*Iյޙq w2טQ{aoLBsÿP sxfBk!L6T@ ̡1tCjq:i+ 5)ʈ'pB\ftnByT=NN޶v/ir-U-!rpѨF?޼1#Xw}䃓g*_ILlPO+c" .%F9&~y57)0*M#1'ơA=]Nx?vd4z^#OG=$.B IXMNCܷO̴ǴѠ+*sd w;mz@HC~9M]VH#TLz]rE'qyI1̰12}[mF%9ayt_Z>X!J?z";ISt;sR%٠' !jIJgv|xv wJ jTf5;?&F8gLG$Vt8j9 6^#B- -]9:r{ߍh&1kXg|9-~QxtQS(Sw`B쪭 z94=^*5^]ʁQe}M0rr74o'~'WM֫1 ,0o;C>@.]\ .8J=MuEe ,a ze4IX zŚ?j([EeKJB63eQbÔ*>~s{':ë)=,"WO`ď[g ?(:9~2D05?i򔙟bY1ncG*%ګwK,51fRB,_f>UMJ`۝OS 9%CZ6!'Fc}=bw`Xmxv-=S`]J=֣OŎ3b'.\|FʞJmA孾ŠxЌР /Y܊hKi8wDƎW+ !SdYpoBʞmD3?'UȰSh Bź/nVT4Gub.5jiuOqy}\!=oIӇX]d P^yxo>$;ZpFqyV 8!+R/i'rX|r0ks2@:ݰbO\$~Y)yC2A(M*͂mJ^/u-k+kY:&>Wo;OY͈Y,QV g"^ݭ|f)+Rnq!z&q8-8pOܢvA/a3~V>dPE0bv<2Uqۺ뺇DIs_Z zyV'NA姩r3۬ yXDbх!Eo̒zZ .SE,e}qI:35_@4 RqEfba9Zv6>Qa\lf:>'0u-:#' g|ÃzHu%ϟm7l."x*jކkgKW&N;ۜEN,0nY Гu.nAR _ՋJ\q փ7/֮8!N]c,fRqC (C(PR3p2VRhuuxc~,V!Ab:[=ERb>e uH"&^+QQ{lj+Ҽ~rZ\{)LCstL|vfqntuyh4X18YEd U@C(yhk}LSIҴhvvE!D*(!uem0CfU%t''cR1#k,xtB7$Xjh ai5}5o-k1%W'T(<syneD0#Z 3PZOV,Mr%Rl<"zŒ!nk  I\tCZu?P4[WJO-Pm@q6<ìq].Þy@gXm˵D?zԑh0)BQ5Peski^ڧATx >X';qBJlfB2[zz7F84DOG!"a/Ʃ%]ZPudq:v4ʭ};{ ۀwa3iz Ђ:`.kz3ew pJRJ4Wz>5%nhbsV]r.qT^v;'n:_ (;ߛmk{\aau7V& !YդfLJuh{NZar#!'tII#P6иsD*x)aڂ(4 ~VV  $H3t.V>]= j!2TP|HH7}0L ה„V COy=-[R=h׸M>"?\8 - 5i } ^9a;}sV@mTTt^ڈ_eh~ Σ/C|/^ÜfV-eͥDi?oYK[y?So2䫬 *2X*W5f=S_=\ڡԓVpzl.a މҧ‘J_0SkPQ|ťDSH  #N[[< PP6AA>OJNq (>FʑxR^[ə45NԩME@Surxb5_ wd nhd$ĭ6,nCXAȨK0&i<h2úUZSVOtd6[7={2ss;F#+ b/ 4ZWhSx?Sigb4뷢H}vjXO=1yvvP>~2Jʾ7fN[0g,1 k+.a%s#(5s"܏LJF5c_Kc(hT3Bq%0ʵ+۫D!p1M`Yhn57\"S16^g C!.Οz>KǰZtsr"mw|9+ 0ܗ<ߢ焽* 3]Kbvl9|X4]d š;Bǫ1У(X6(@ǪK%s83gSq%W3NԼ{1"Ѐ24-}oPړ/X UQ^fPQ.'>1n`ZTֲYزNxq7F&8V>5t)\E?AU/:[ Ed{-g!1Te/Ѵ뢵`HFvDzF )0z/5c* nĿ<_6!p2G|S}M!nLQ ܤFm2Ҙ A2UCǝf*qů= \}?֚|ѿx<koEP)&cy^Iҫў֨쏈wL,hbݻSWo6jZMTݓ `V$6Uz~Hg4{MB{{ 0ڽ`TEBm{ ?iCߐ ( UY6FZU U?\='\W~!Y#"vȫʴJ}(Ιzv yHPc:6w*|>OLJ;Ery$ =/x{hA%` k7Mv́R_<ǀǐrIf"fAQ=S>̗. pm"y7O -8lTM hciiHW6+B匐؈f[Nw~-8%f4y (gEKyLlKKh6 o,Q)aO4f9V@xҚD^YyV{T gwʎ%_i : Z8 fai盁0Jo{Wc`#t%G0%5@usx)Yn~Ňǡb7cmo9ñlOƽzi +Tˠ23EgT)A4ʽ #rUi,;x>N#]_ N\0li<8F.8.89PtږE/Or)%>uGeJ{7 1D4LMc /fߜ ݲkr'f;,T8eDdТ̮26hw$?$yHC x4#{G2>Cy z1&)^C]tߙwI`+>f42J'{WnoIc؞{?[E1 FD]';cF-t.eU=6'zVi*L%*Tܝ@zb8t,_q^!aLb/ ΕۨD#`l)oR %Z4;OkJfi *``\= b=OXPMd ؆jw>J.h ϰ& aB[0^x11[q]nHW4d}n~1hGØV& Lfp$GzS_ |udOX0>G6rPzKdhwl']e*~6,GK<0<4Rqi,$uâ/ kBof' sV^Nu|Lyswf BŇa9KӯOdTv2!K+2ֱpR!HGHnJ<]Rw03<3҇Fq6b֦͎DyXEr%Brvx(Fx ͧs͸tgslw髉 8`h\;\QT`g,)REelc#c4gn} _W$C0n::?;Cqogt` ŝ> yֿ~ wk/H/R9 jlV3r>7;dA#AV̟yI * xnwNx2{Qi#^E|TX,Oop 3d4+jpIY= tt\p,O\K3Q_f9̓@5d9w෰ǏT}KBv/7bʑWpK>òH 1Du|Lit/ xNmӠ!pF+Y2v+7.&Tbf#ecsU}vMAseH*r ߻%K聀obLEIMן^NK캇J3BS~۽ޮFNq v_)hYf DGz/);!BXj(3ݠ߁+\iTGnpC`6,>+$m&%fSiXgW%>*LaLg%UaQ^uZmIy:D#"0j哟3r T^XmU'-.G kh6=g5h2t}==rÎ#Ez |ZGMFUd_Y00d"к%FWzKWmb':i9B\ )b)7!2ͫ:ב[mb:撦HjHp~AtiFviޯlxj41!JpGEA+w*9/R*F꽆n_3ޘm;`hx4K}R\z@8h>F8:Mv+@=o8Ҥy&w3v.$ up#AQ|.؉=6hm, I0^u9tE2Em9Lo h"Z(/ J278&vuS^li✣aξ!0=ꊷڅ&AO=Pݟ` FcCp*pXw(dH0~U}M vتZ0p*ǾMKO`BIOQ{cx/DPTzEOʀjcS<@~W\rݦ#Jf5rlʹ =ɌBǸVCyYj|*.8uo{uŮ;36 ǠihaZY"89>_ c=@+fIm?ayUt+% ,:ȫT.7W\wIN9S+ľAlˏ5j>M<7auHj jy6vnk_<-}9}|3KmIoJaM Q`Lm BRC&KUΫ9J TL~AÑ>;R+{Eeeܝk5$? 9Nx.I0lE' 3n\0pylo@VMC0}/dH-U<'4ڈ]LY5 2X1,%yJ!xlJL5zI+yEHل_*|G30 z%׍_,bW*H%5 @ 2[m~N)OR2[0YA2y+ 7VӀJBJs%ԕ*U≼Ҕ2֨]4yu.|=S(f(97ۆ=yx;<[?\CM*{S.?vkFX=VER7Y 2{9eI<<;P jo )K|֠5#ЫǷrO"?Ҽmonj߬"U&rg?_?"HQ8.$@o%]ᅩf<P!ok(3`TiCKb1S>ZnLcv|m`<>xr=>!W?ju㈅N*/A qԿv6 PbFgc(uS( ܾ>#¶8G xBS[1a|Pmkrh o:gZ4;zl(T N%)^]D<q7^L2)Au;޷)UQ蝥Zf9$Ϙe-ʡYa5 D)J&OX`S6,?ZPɻC;)stnDE2:H&{mPydi`"5Wːld]Ch [=^,F4AA!:ܿ/@loE3 =je~q iֈaf9ɿZ[LƧ~ug̟21N]WV)c/%DNSnuJW 7 b .z?k}#=;Ј>B[YpQ!?$r&AEC5桠)/u;O,GS_o%LN/FP=Ž֮$n}!Rmf'#;V"JqRʣ3zq&Q< >)NIC┕waNck=Ib/*߲o+A/|fiL WD{E17˩p.?LFM}$S$TV,Mg5@KT(t[DdBx Fx2`wGWDJ,zZ`?`Zatك-άe#([i|Ƒ׮!%Ԗ[A}QTjk輌7/7bJQJ<__/rXR_ |-OOQlYz ;^8H`Q8y)B݈ zX*$2)1v)i 0hI\@u+Xxa ?4S[yT ,npԨhX`B9uI{=T#fDgc ^ ŗWxBAshhYH쪲a^`kpz#tn ЙZ_F5?Âjۈ 8#Z 2젒m91;gyRF+Q@ >7 {(l bIӇsYg$U􈎧:.yV/pv4O+hR ~|ٕ瘅{4,Pp]|V}G*z(4F\9N〆ț7[ImDºP*[促S5k#/S 1dWk`=1W2!{hj&=2 Iy+8L%Ȏ~ -JE 9No7\}:N cAw |5٣9P H2 ["TV7Z}YC j" E`UY\.>OztHZs69idey4D<<<gjeN8ʍi{), |/k|5f}F w1rG. -K/z?{ cWKbSբl%TXS{[.1 ]:iM3W9j 6 ê^K_(X(f9R*M$[~1 bB`΍1vga2>k[BFLj[]l Xl2x셈uZ J~0^"Q!Շiqw/kyp!FRr@bxO Eɡ0=k{ +Ms 4et8"Ac#'Hb^cI(o t Ĩ%=jcBLHH+6FpCRk?o~e/˨'sܾ5'xZ;Xb?LBYҪ}s,7ItsZ_"۫YV^i/ =^%n4"$:ҳ8S}^ haQ3 Wt*E ?jO4@siP7ny"b@=xLO?}?ݾk=&{9oݼIJ% YwJ uk5)SsL@>t,#[>RoR&DLn`|٫0c$gYyֲ^F@ M4So|E+sM%#Tʥ1"rcc_fS5'嚤?IR>K:dlS4.úL[1y`JaM( :=~?4$b"Z;wk#_ q>>%q%HQ@1Of8zKx_Nk^) @bI_͇~Q%=A(#iqjx>ݿj4 %h(`8#-xN. Q.%"b87&bC:iԔӮq$3Srvx.v̀KG趞'REGtya"%&O@دh!_$c*qT?@$Y,5@qD(șx,$cԐ)~܊WJuKzA\U<_~cNGa-n]?]޴kR@F*zbvy1Ka%"~HO[].'[jѶanX*8V<+v{!IJJ5P]XS6RS @V$6#;ZG?N4?8fN7^&"c`Vؑ%nWǡBw )ʓSsi?%88( ؚ/z.~Um%_J`$``4D0Fohg Phѱ-ܓc˙&+M a.8 |vzSX ˰QHr n/9A}F-vo.`AAG9Z:~Sӝ`?]a[7\tW4-.t<޵4H>p0{{:;Z~4>,$]O"%@\ML(B2DPs)mv2udhl_#D$,+8ޡ:ZR[\"P_^!ϭr6&P]te*YRem]%Gb۝E/d\(?2'J 'Fa)f<2A{XBŁdϧ 3!@|;xHgV ȫSp!X,`(Kt2\)+X `sŠ+oQ]{, Nc&m~ OrDH\q)|&޽kC0w $%܏Jpq7yZ? ̎YLIUn3<B)˅Grڵ-$&0)'ؒ/vSGz E$$ξu3.[>?gtZuf2eZGu@ j~$e1`'(ASpwao.llX٩eb`wk^hDK_/ v᳂}޿.mЉZCq v $YD!/`[+&7J;8+&y=UmL5X؛_0On=ar_Mk~ LpJ%y%5ƌyH7B,|5͜aӌ Bp9fehlOuod{-eLM#~7~b~ksحg^KS992N_ t+D>rN ~s0MRuI@+.`s?aj,k$RBZ7ӥ¥F9x=XKG#+Ļ)$xs3{Z-'aybtZsMS{LHƾП*_k`lIN([:9 IIZ.@[J;aMуw Ɠ N@DQ2" ON#0&ΨL+*B$FSMsH鲍eWE[3Srro}7\AכDrd /TkWoկ_1v.X^'{8ďD:1B纃e=C##e@FN/s ^Oj'!@|s:'v(7|o8] {nnDѳ .LQׅe'mCqp%JONZo=dd,Nd4K~/rFats7u"NQq(tf]k-/ֺ~qj?:)ZwI#|,!aA(P@m[ [^|8G{,u4uqp,AhJe-Fxh/7e{Jvvj&Cu\,zl-=¢Rn@oݧ=X 0@uw/:ǎY^}lubXzXM>jtE1s킁564+n=C#GG( .&FjjFٞVıKFn@-IMdLR5uO;Ž$8ݲ"VtUf :901%BBTmr\Qm֫V?-[,ۥ0YY{e0K#}kJ,df@%^vRy/!퐲M GXʰO;Ν3%=qe!T&cNC*1Ь{%%"r Ća%GN CV٬@#zE&&-k9܃5M1/&V +,ڙI6#/=`Z1SZ}x[Geu랬 `qK DtZ;ׁ V:ߗ?uߵlbʂT6EڢmA'}*1홍 ~/z;AK*gAn]Phc< PxA7 9Ձ2C dƭaZ7eKl6=eAi }:FRͪP3Uc6Rj@P?uФ]wz=ky'U7˓z%s njZV1 ĘS2,}^^}qy NNW]j*u[jEj!dr[x9,4lW@eƾO$M(#fDnin*"N!`2AE,*;FDnr6k2Ht:;[-?h,u,Z={q<} -b@BBY%f0~\ӣJo\9HS0W #dtxـU9Ig ww-ARj%YF c$_koXҜmm[DT\m..ADw&kk7 C<%'AƧGPQYYt E`sf<-(qȄPJxChȭw\UeL<#2`t!`!`t]bx1q9%F,t2}F{ e}*+<_xة4۩6 v4!z.R2Ҳf; p a-D5(:L{X } \'+U4yj =Cx%V@eYZ)!`uj=1)0|@0^p?&82}`ݮ!qr8F6?j&| ub;3 hȾ_/ ӆHҮGe]!`!`AIAlLO5q\i,k x[xg+`9mX`蹳SI0q t 6tg˳tS}DBEX$05G8Sv! 'bhqmVj~`~K/Ձ'+ t;K_ +#~FYLs,ԁn7ՓߞȎ׆CZ$ FXEʆ4n^n& ߔ K4_08R 5; ۔A$9Z>rQjj@)WwX萊,d<Х 6mMźT_yZiiNOY&ՍAYD?PoVF^e>R<1=pi 9 +7UhAxKǝI{i8aj"wxWɚ2Ha,ڻ6 x8r#"9[2~0#b \H嶱J8"K1z=ݳ_#)̾?; n'Eybwyˑ$W7}Spʰ]2LmtOeOa+T% 5!Qz&-pAQ<%@tee nWqʌ!{Wаn4W0Ch.2G2@%;K"@wHxЃ(`u\Ƥ4,k\r5L>vEvkPga H !8zxy:?Z|8^'AlpҶ#z_9%.{p ę"V~ .!feF#N{ Cp^q FyLVk^YWAA8|&:I$~|`foV$vne1U XSP zJ=^ne*Ii*#xܪl~ Nw>(Ticҁe4% |cisx[r2&%\=S>iXNJZ> HR㒁+^7SZ:8'#@4aV1/ZLxͼfA3]E] a}2%y\Hi!`A E,*ѦK"#16x.`U͏WeVCLJx 兏hgWMmDKSz󛐧]Z:,[z(.g t8&J_Z+ M_6 @K$8넘RaQ:)L%޽o^!`!`i_t=RQN (潳MRa$^af'͢$.}ot4KrRa% X b*! !`!`EAj=1)0|@0x|umֆ@°k;(c"@4zQ!`)AFIAlLO5\ G Ĥ wRsyg$c59m@ SgƳ|5y:’3' G:%gҳ|6UC$\Fխ(Լ6-Lٮ -tfɟx">0v8ʅbTEd3 I[s-`_@0AT # *O=As;}jlric]-@d c ap"=\ehXnL}.M p!񅻟-R7Ó@RY9Pむy^F>"eN$®tTy)EfaI{G@oawk[ńEhPٻɭ0Peg. *,Xf*EQւN{%i)= V\Ӛ_a =ia`Vgz3CJCPc'4z9N&dkROqo*g#-:uo{`*gwL.f2nE=xۺGG(lIA agQk #ڭJ 5o*I5c\Hzjs@tx73?ݕ3hʀqqf&Hmi@n= n,oVQI3kg!p_\ E A"UBsAg>^"PW I*0%qIꁙk3QV۰,IJ0w !`!`AdE,*ѦE=xhP ?t][c@ tψSq(,aZ1r3Ť/E):y eѪoKY8yTE 'r <`" :T"cmF) vSn!`Et=RQ/` VJ@F@"PCYaDE!`!`Ij=1)0|@0f2L@Vj/`2&Q[$M.\0!`AIAlLO5q\i,k x[x-T>zx)$LHKdufEr1$*Jrh,A{~Έ|fRH`xI+bh;\MX\ՎVa`,F]v[_!zm/'3hp8X;ڿof:Ja![Lbıw23T,m m}i 2)=9Eb|ԃֺg#LJm#q?q@-sy72Hv.q gvK+P> qz8-#oEpMKB jQP5ٖC -A:W$$@XNj3c5ٔm)dcS$NSaFL# >*i. 1$Nc XCDGSj3brf&|usC!دyǾ^P}`6*b$6!`!`AE,*ѦE=xhP5NL`0m³=': KBm POi916Jc C[upGr1] hڲV\m#^eL *N?e5WFYWhlOkybvpk ŝ3$A wXvOs:zfZ#zJD9ÛT1ñd0pA@P?'[=: ۱!(Xe4CDeux"64V\dӶ]9RHNY?cCJi04ZbxM c?Qg5ޤCRZ+/\eXn!XE*o` ˍ3d,'l!s&oTԨlԍ,~8AȃJ?"ɯ-?|!7ͮ8_`xD ҹ!`sAE,*gH> A'e/Ӏ es2 ǁ x,р21`r/E;~#&PoP4{Σ ,YdP8!`!`A t=SR5%p:Uy!`@ j=1)0|@0 F@d* @XM8!`Lavc57.107.100B 8AIAlLO5q\i,k x[x-T=e%e|Vq4Y_PveqAn}nZ@˝cio ~xj7r18M 1q`p"'bIe $.=oCewF[d6+ᲯʮzAw{Mhlbړh Pye\_7&%X;4cGL#R5}qp!IʅsJo,"پ8ʑEȎ„ {]@(Q꩷B_T:FXE/Tz$}q$sBCŹ_7uv=13^AZGLBzw(*1J-Y +r׻-,!b."4Bm\W⸫`+P  *J8`+fҤr\y MPhݾ9Aځ O} .x~!`!`uA0E,*ѦE9+HD " |6nJ"pe1H@Kn'8:i4Da2q@8HA=~ ЗIڥ 9!`?Ot=RQL@/EHBDp!`!`?Qj=1)0LcP@9 @az)@!`AVIAlLO5\ G Ĥ wRs.3 YND}U(MH@{u *(}wj0>f 50Íj/<`K%,Upp_t{ %,̓iT<|Ӊ gle tn D-&%t+*WjŠql,'SvFcv\ 2+OeL% >z7q] Ş6!`2-a}K@2"hbCd=-ȍpT:Ǘ[ɖˑXODqa1ˠ Oݝ, '>]t;#a􂑂((UG1+-..{,67$,i87hMψ~ ';Zu呑bFy=/DA^!`!`}AtE,*ѦE9+ j x._03uleH9D /?03eҒ %?kk"HC^r \ !`?t=RQm)o9!q*<o# dO  !P!`!`>j=1)0LcP@' h! 0 TT%!`AIAlLO5q\i,k x[x-T=e%faʙZՕj89T~+nlԳKYwb*r1_! B!ZƣPm0F¡nYt7"*My[R\^[fAZ[MҲI{^gmXDT񗶹wO'TO=8vA9]K%(߲w ?9*iF=ݲ3ͺ%N00AtI΁n%DQ45c>IXlJ̫zf ~t '_x⇍tt;5Gyl#Cx?^MZou(l@|r՝},o..B_ l='W3R-B,Lrf$A㤬;Qo_#b DHi] ^1Q& ԰vKP'r2{,u[k \b7:!`!`{AE,*ѦE9+ j x-c4tmsJCx.\ [@VV<Թx#Yk []W xIG+mQ [Tb!`!`Dt=RQm)o9  DjM] H%UGr@!`@j=1)0LcP@9 @ot\€t!`!`AIAlLO5\ G Ĥ wRs.3 YND}ŒU9SLGĄ.@w4̖ Bt)&^W~؊\U( Ǵ9oaS 8jņ`>a܊LHU@H'+HvBZ x=a4=$ZĭsG/EǧW&VB]No0wE( qs4c#3DtV΂>w*H:V0 gO<"'vX,򀥖R1B<%r-D"*)]M +6;R@x"~Y t6<:q ǾFww`?RfrUϯ1Zb,.1W9&YM; ʆ7,rl7‡yD!`zAE,*[\1pՋ89@am_k%| 69hߨNu?KbKP Ph<=Td`4_3AEO8l3!`!`AtuH<?45BHoP X+Dt{!`Aj=1)0LcP@9 @ot\€}!`!`AIAlLO5q\i,Zt9ݲ@(ll_/wqHtw g̛\Vty%ph@%KM8HNHEߌw޴ *M"ŅiZmj6 eAbm#ã4JO__a;$T|Uuer@@JXi"b$ Yfo{)^Z5|dIF'VMeh+Ecؖ]!`A_t=RQm*2)R6s/Z;N`ww`f!`!`@Aj=1)0LcP@' h! 0MKYA!`LAFIAlLO5\ Gڇ$9s6݄ЉˀsUn立ኂ L(cBߵM.@0;Ipl@x(-ApFWN8-ނC~س.jC`j7kD[ zU@<!p Y}*_aZ!-A ^ӌ{_HUwgfe)ɳA> XOMx0$I< nWl?XV Ymᅜ,mgvVhgUx Ӑa2[\j8m? A!`!`sAdE,*%| y y.@|: wh_sB@PR#Ch"5UĖfRCWygRzI &梄xWz!`Bt=RQn1 .Ih| d0ʀ!`!`@j=1)0LcP@' h! 0(KJ/LYA!`GAIAlLO5q\i,Zt9ue =ºO苂;lh"ͪ0d]zU F;PԤ4šK-;X6 >(fuXbӏbXi]0 s UȌ.' k`LIL'zc'~>&aC %Xڒyށ2B1O( l`֟2?(Iyr <oבLiT5>X'ݓeNrJg&G>ui@dg*t⟱]Ȥӫsw't!`!`zAE,*ѦE9+ j x-c4tmsJ@`FW\4Nt;J}m Nm"`ޟL%E O#/ʼnGT7vT?!`!`@t=RQm)o9  h^ X0BW5!`Gj=1)0LcP@' lI*M#Et_ J8z!`!`]AIAlLOOKDaHbSPn@Hs/69D]ѐlX#\ҎN!kYȧP1R欠{ Q8C]bxd.GNſ᪋ Am{&I>":lB'D?{% U@`K+CZP/ɹr%݅VK:IUZ2i漎)8yaQ-s$1 [[8IUiavfjT׃~SDd2lqVW(]β*<4$ ([Ō6e ZtmNtHP7.|tC4s¯eG#-2i 2Oنi#"5Xv-dbo?,SꋋMžv"HXGѩ37ﰑvaL(x)~8bhB,7X{N00dHnzoyXD`K,wkPO˧Y 0QwRY_r4W)dz伐)X-x+?cBDUG׹!m&CbI,"#pܐ"L .Sbꭈ0iyIO7?^wbMAO`b%I>ߖNMrOg>%JHJBU0ZȺ,H~jy^\kg>AUdWxɏUz;<ByB;z}}SDjETv=^ׇ6c0'.^8~~rć*VxR2[;"%̨ޠ o-g{*c֓t2a4;M7fL-z,R1n+[3Ǯۺ[4mRI%W1=bXTv~#)aĨiXRS=`+̠awȣ 6#Va3Qw=1߁}TV]6Y,(C%jui^ Ό+ !FO(ӣ2Z &[coiS |Y}0"Y L\h/ *"mIcqi ٔDmWi~f(MvX#ב*5w+ogW127*OŇI5粲js`V̟Fu\*azb킄,$X]^gڳdT3NSS`F=f9ZILnى59 ;fϬy!B*A?\Pjev/4"X7Zide8,pxc@q0J@վJqBnYoΉ'3L ?ճv<؄jZM7ͽ:A4V9J޺AP9vx(]O{u#n eU$[ׇCy߱gA56p^KT7 *չ A9ǭ==aM*'- f;gI֣B6ϺòSMVDCO9?"Twp࡬ϯm+uzwCqn]:eUR+嬳^LZDlEiQ䛛hk{zte7%eI YS[XOv7$O*4o*Ra]Vy]> *3}W V܀vfX +<|G8sA)Ve@-5Yf/wFXNcZ^`Pr'O6Tvzu4 K"򘚃k4~F/z7oZlo`;z+O|wʼnB@iOpZvIxAH^0&C[-*/s֓<A/zo7lslЂF &Sϝ$9`tZwm"ZSkK UuHa9D>vqOu{!,wMi,c{5X2=:uP9O E2=NCO(%$aװ~_o *ZCZn+ևٲ6?$Jk*wu+b瞱$=Mh}WĜjq3D4{ˣcqA%GP]Kl&. a.BkTEm{SE}usq7w"C<יaN.WO,6V̾)wUҕJl,Nub~?*x"!k4UVnC*lO7X2d6r5ƽJoTX+F=/[K W:&4n%Am[ u oK+ Xлybny:eFEVu?e Io>bsr2`WָX6vŋFw]!F>hFm\̽D4JĿ$m;]>sJ2u 9dQSm3EZl[sO5Jۘɻe̢21RtMJ,b?+W{ $`cm*b TF}߃{Ӎ)d:A+ִ5G f`D# (8o@{g:%+{/sDSؽV7giS 8:(_¸]1Za6LL˓Qd\#?j x>.'J-hkgs=J{􅌉Yo;eQP Ab0n(ԕrA0_W0UONѫ.Oց_Wa77".Ɠ>Ȕ wM~rKB{{ =X% t7VK0o% 1I;U7cڣ \ӞQ?wʄD\h:Xq=1yo()DA w-xv.TT:M>!U 3nꢞriGlMjN-:)^ HgS!{g_ ؝;9]!y|klV)j•E_@sq\ 6 v ,?NdqZJeA)S&"P" QC|2N6CeIܵtl߇Q(IL bqi4]؊5ʳӛ Vb]:Q~^/=EmݞPjڟ"$wzq@!s QTsɿn=9.J@:YlY熺ѺLѱwer0ݤdϯD!.$ɭe1.?{FI)Teߚ^qN&mcC޳+/NO|;#V:f`f*ILF($M!vUBwdx&Lyg lΨ&cGEiI9C;uKvWZ^栬AXcwi1Q)[R', "[?.A'M]SvwppSLFAiŰ&𡖙0z* o|kR܌ F ܳ =!2oUP#ss&DI0֍CϵW߼5S9f`V_KfviQw Z{?yk8-E׾"̔G0܇ZBp4eo2B$$U_8 }UdHNGCf+R7K,(ړgЬ'[8+Wi2IV %6{rjdLZ3HJuRP #(I>pܸji H@BNjM.v%cp OC?OY|5W8ZIˉ%7;MtHV]V{3 ž 9)  iyDA!E>GxA ؙ<'( 0|ӄUNc;Cţ,%K6ƾW:hb@w':a%SceC9ӱ7ͽ z[h>5usу~Ò=yj4Nv\ř5lkɺU|,I k0J q_  E\4*4 }%bo#z 26DϨxq薋Ds#: UgmlT&gqG2,DW@5邳&+ku5#<)b* 6Q|w FX#蹷qBf[N:cdћVY\,C%ǃ^>䛵\msbZD?5xb]=|q! Io{Qc}Ȕ\l!JLȕCkRJD{!>#d# LcubҠ ?u$&C7~n!bUD `Zlp2 xdy8A |0_L瑜nE?]`;caYE{{Js4*X\8с+Zblrw?d}7M:v`0j $AKrf; e/T%273*RYICƧJ˭8H27%/^*l{.0q&-t G6w?)w-$w0<'šKT${uJ<ʾI[hN/I`/38}(x<򇅌$7Tٝ/9, p|}dGc IqDKO#\@ m'uYP] `v$*m{WpH>,ʺgCkyӰ} u xSS(Pn:=I8.P@AқE}X{NSO󫋯GrWvdE@NɟT5JjDTU<0?f}ćO|tRӥb f;vW~1]"R'hxzȈZ>qzPW4% cYH{5_0_2uTl;xWO@C.9=ug ͞ 4^зXImS< N P;}(YF/-F ո'rn{R5<=Q½s--In#v^"x$@FB1p .!ZޢS-ڙ'jif&~׌< %CQ ļ. f6n9I};X[;n6DU۬ULbLl#^`tlX!#ȳWQIጁ, #ser $\V[n Wm[LL 9<*/EH|'X8Nц.)Nquv\N/GЪFkDկᖌz 2㧒>u֟l"-+E*<~AoM*Hv_#솵:Jfi̱g-W,1]6i=,Bu!tO5YSn hׯ&*f\;5ZS1ܚMOK1E+^n.Sl#Y4̻Zk-ezh 0cJe/f뾠bK~,~ΥJbvlruD>4oɤ*]-'lȽ?0#a,ᇌ*l=̳$47+hJ,/!ۍCH)L$ ؓC3-_X\P͕[1ocG5{Y'^*%Sݱh\ݜ!oni1׷tr >xx#\ VpsMzCMlѺО4n8ª4(.~rT1bVH fSQ[fzj/?ZL;u%{k:_1qozsAOٍKeFOp>d ʵ zt+燣f:ϣZGʛcwFF+ ֪0I/\.}:-$O>Vc|B,LX;eA8Ʒͬ9l+sKz䒆6\#zxk Ifd~Bo C[؂Ė.9x< D6%6^k] {~=Ku+/p7tl2[2zofmjjv1M"%$BH>-+"ɕ8RBCfvxB'*35XXإ[ C/n&8~{[ BY$Xw݊h Ru -es']ˋ%$<Ǡ?Ƭfui^^M>yFj{gmXݲHWaŮMOX)l.xϯMrwu^%y.ym{R ؾq7x̒P K1 Ϩ"g(f5_Y*8(ym*rsڗjN #Z!=!.!Jw@I)?<P6fо{ծ)h])楦EN1s?<u ȝ wKE,>F^m􃿝+w= >5[~^4哗U]T#`)Y?dy@ӎ(7`Qxؕv­fQEHK*sOhCeZQA?BG9z%%!Ǟ 3< tH#6Y'|@P(WWuC>_lUx ҷ(CUU|G 1[匹q)a=F 60oA8b`CF?pa~*8s1:'>7hў`*@MUD#f/>P m S2olT%0ǘ5KE_9tO[Vh`ox^*F&Nw,SF/'ogs-Ÿe1l'~n-)]KB4H(6lvDtu ]Q,dmR3FΧ@)f^s?wU[-5rQS 1~GwygDE"թc?GӳҀ; םG MYm o9K^_a[k$,Z'3H6޷p3Rڪ$e;pkQ[)'.Jn|DdMqiΌ,=e&~g~[=ژ#I܄"HfKp^u64;)1$^Ճ\C)MSlk[rUB6Eņ߹t&vnju1 ,VryLml0pGOȸ14QG r "ёZZNoi97[sRɲou3/f3<鉼޺@A. u^\ȕRo)90t?vvzɫ>d3:6mS" %'C$w!E[uFLRnZ:w%O1=H2},SYĂ Easz9?MS :TIZEx  vCNNDj#jH/n "zzYBA}o!r!inxE-C/`Aۢ@ Z3qE*͊Δ.u'4>wxatK:#XhiJ0XSYH͔q3|}D|Bv7&WU~ 逥'-X4]  8mR؏wsјbFŜ ǮΊMl~D*.бN!QYicϵ9Lr)AjWz/N vθ!Xն'ڡQ^U+^6'⅃Fu]&;>:_2.C^gZWp3H#o$EP%1kኁ;Júx^# \/˱r2^"H|ƄIUm([&} SM2(9 (s ^^Zԃ!S}\9yp7vPnrAOa~9`8iAxix\+ߚ 钒7uk¦ACF)!dfPv!h +p2W-aͪsMHLPT`i4eұU~[d8~fZҘ~%8gs:>7M p'`l kQ]s~M2+[諞&^͉vç?ߞn)LpǡV ]e]H pi6#ZUh4!1C{;]g%_αV06J">`(rG {RaaԻhDY})5Q*\@As]?|x\֠=u=(>nzZ9'?]1zo" cb' ~A.m8 !n9,wB;j7|3eڈo5Ӝaז920|R򻭤-h⥤D&l 7p2=^Nd ǜO>Q^)aWx?e*FOgE`)v ;@mBzj4~ӊMI˕@uP2Ka{c '7 ޕ_o\1>>WUEΗG%r3?0ܧja g..LٹT%`xcq[w7'y1h|ddK}Gy5wcXw{eq1-?w=-lxԦ㗸/<)tG:T%3WcO*R 6jKB^Ci}[d,]0fL: %" `~H^P L̲Ҟ L[ 9]W:)[SWq6S;Y8aV xo zI$SOm\O0l 2IuMٮ AFgM%.{*:iqHpMp&s*H9{i0BwlYKP?9S#vRGEr%xx@GqneN-2 .mr)ƭ]81;Lmd=[&FrH[SQ~.PX BRɁ33eV+@T/ Jh8[O-c>Ks,pݙMVx2[֓ϝQ)jBƎaA fC3<[krw5TO;Ĩ`\kA4 A9, )fYMG.BB퉌r5HΥtIP A- cߢi#ބ œ|(E]~<׸Awa31џe`K5/| ! {@RӢ5}G#˖jsI/f蝻E=f>CvkmhPOlﮣe':1y8Ov;4WږNPFҸBמMbUrbK. o ~^Yҕ!Džf˜`×{KԢ4kk vd=%oQ0W?ktrzQyY`2!x922{ zDZbMH՞oJP6 n^8p+#KϾs9XWL0hdE%v x4ڎG P Â'!R+o^HHjȻڠQATVZPj޵٫(ޜnZt̚Ydzb[A ;@UQ&> 5\q٧C uiL1vR@Nl^ (@̭a G{fV m[x[1_MЬz8ּ:F<~z NP z1ljRHbnJwwX0&οO7?&C`+u:p?\-zjM|;`- aÚ//CºKYT(ӨP/JwAd"_^ek)0i?V Ԗg\ O)#ovT\ |ؖo/2?I[,Q)O|~NЭqnfLl4cS=i<4|-ITe;]1%̪:9Δ~EzkLBOUݻ,ՙ.Σ#1dĮsEP;o'ɞP]ýE ")9DSSnv "@j(LFL%JX*̙}R}2?hf=|x/ӱ SKP#8 LL&AdtabmYjӣs,d }dۻ | kY}yI-9] UU阅h/鑂߅U/r4M-K;q',:c RL1묻ʏ2W/I$ RLj?ZԨ pb ٨'[u+ ާZ]GWi6/ˁw0#ALahkVg,PKdԄCMvhSQЇ%Lmrc*7ZpY@gKGU+C[աtگiOw;!6SsTi.;{a}I;LQol%Y;Are3@[T . fBT@R vN}poGdL[`?Ye;Q˰ppxڤJ#])b2.W==݃RW?I 1T"$=<(%}ҧQ"+ϩLߣw$*XV!"x4NP5$9En9jRb3{0:Ƕ9_,S06SN ӧWEK!q"&QEV,շ'kG> {%v]U n1d;l\3JMl*e=|20`jBhU@^86?&NF}TQџ^$U\:HOrxфtwY'?pJExH8+4=XEb]q;O{ܦPIīڋ0s}֟K.8^dG%>Vժo8ZA{k)[Xq^Y Y[~zL6gAZhB f)ҕ&+^ADPTlBsȡU@>GD7TUR!oM'pZ*!>- fKY`6Z}c†ɧoZW*-Rdm>.[@| *A1(r ^eu8@'"|MW+R5;vU"UOmQ"9^'l 1M@e(*B+Bف\<=*2KhƥBS5u .x &TA;akS&vy"y~H!vokp * NMoQfGLÿĶ.o{JK6 V R 7S062nP?\ǚ_gɺ5IwZyR ?f S٩ /lMiaf,PmɿO!G'h!%i=5^Å`~!I($YL|r̸"m#٪̉yPC\?|K$8- #wv`Z sA J]fEҐ/`x,"z.$mgވߩ4'}b%s鈁|!%L0\"jYS]^UH /lCmE@=%3 oy3R$GgPypVrqO!odo0\)'pgyEh}2FT{@pcA@ozb`x"fty 8u8XHf.bJ)ߪHY_/m9ŏ\RO'Gu[ib5Vc/>+Q+r=?ٲ <$]ܥqRh}f{0Mc׹ųK|S:<gٴzD<6 . M Rݶɮ[ .m#%Bz'6QU+Xz( !$W] tn̋Ӹ^@ɜ Z[߈,uN Y׿ $yvx'*n}φ/nGԶ]KuqԳ/`BU{56*l@_.h/VW/\h}]5o@q;NQ2N}糷ʋ5=ǟ-H<P!=㣇Gn bkŤ1-2? Z.M|܅d捪J;ONKز*?XB=qZz\~% Ld[)z:>O0S "\C:^V˄J Va.e`6U5Ц&yr+4ABX39=1\ 3n>v%?{@T) \\`,EΤO?{ 8{&p}Q4&^2k~xr qWt0)Qef*U^&"z102>n`@^ [nѮ\6dHZ0y\\:bJxJZ *pW=:ZP`"x0W?'5mcr~-pި zSG0P6|c ș0BTelz1dJ%RR7>'~ >24t ݕw>LKwI|H{FkRVw<1:%02HDha.*9ҨĿ'? S5nDsͮ:Z6AVYT`mVG/:b?xү\Mf }^c /̡ [SRV?mv/Հ` U|+c؅ a4otdxs,yjCn9[^1 T龺L[__(QLvY/0)y.@y9ˎKo^W0i0\JʣphU?PAyn6o[_4 Q70 A|(՗mV-@>7ˊ>#yOnޖ3@ByHUP~w$ʝ60%uƅ^ *HzJK6okϼM;Ntt`LQԎU(U?ջ#Z9 mĵ N*Ǜ a۩Yqw1 wSj u&7 =V%P\vHe/ԝ_;AG^r3tZo-͊`3,7ϔבZ{~_+#SY>q㪒$=<8#Mo4l蠤I]CI0c>pVOa N%IyXQҥx2pI9nHHNZdc!i(cvT?4ηzJ^!Rjpe1%ZZ/+ZE )ik2;5f;ito=C'%+vl%gȜ{Y4ɖݷ̑vH:=D;'eYqt7UbMZY='2?9 3W"qܛ6~AHs#9 ZQx'C ^SihK֯Ǖhvn!$xq,5 CHM*FnHuI.a4H]/]XK!v`q(h"LXKCN%_;e)mݦ maܥ+ov HeA爉-p;Vg: Jj'\i./$]@jXCut\RDg5aJSTowQm8(V)"DޚĈ믔}wP8 )J֕?M!x:_N.9ݝKnE$a$d{lӪAF4j<|zj?nIhe;9^.3> l! Ha{ yo7ć#3 ,,hehn3 LuO0raU6CS5Rّ_ U; Gkz b󆟏tĎK.\ Jm1/]`3M2+*e'"<$|3^ jB+4o.'Թs4J3Uc2zϷ-꯾z olqSQp?kL] \-]) 2x!Z>enW5k@B5"Fⵁ]Bm{2w^$1v>JmL(kgp(vA.>N-t_ܿ>{&9?뿱:ûǶ9͢aSg:R[:P/X:'*?̚~/x eRmK2]Z sm*MO ](0M`j~w"IL+mܻ f8 Vfc9rv=w "_AEc6+HlA,o#?mHpѽ1ފVx=zLVd_?UP dXcn Z{H9q˗R3Ef7!IrR&GymdvʬTT7vm^qTEU!&͏(*LʹhT@+= H 莳诏w?&?P]TGCq+̲j:m֌~s }[/qVȑ 6L#HBk`=:-i.Ef4_'q a3ZImx_?(4ٯ:e;1V>ָ=|čGpƽGdcgeFVu?< GoI`_nBcP%V񝚾 `'K(#4+,=bY#Vz q Q8_`L8F?% X#0˵Yyԫx-6jCǺhxAI / =xѦMA 1UƎ3=}kWEI/,'~p2ChR-ifHԸd ! Ana0L 9O>?5=Y~t.ྴeNzꄎzZ=񜭸>][侅*X @ɂ04G|9rUd@KMN~ToVŌTI,I Ӗ5m"k q/D8"PܷRvЊǾ?Ɋg ``n,Asد{ZkeCY~fMiԶZE֡^_+E#db"~Yj i4]XNNv91\:^خC dꗴME۪tI^yn@39o%e`,DXec>JVr ),!F+ #]b#飴vgC,ِ:yvS#ӝpخ=D.E`&RvA8w<\=o؊Hu9xKUbjAn 㛚E"^*(WcAPRj~@xl{?-?9IW{&UĠv݆:ƛ#lʂ6MlNTvCt]悭'֎nLwFtU= @;m0p-_SVlʴM-Xi}Vv+5, %Z>Omֿ *fT4્5o*^H>wĨ+9Wx<^oJjg*%..BQWnLݭrr`'~V2kb[+?ݏh/cYD@|ff6#Υ'5b@~F@QՊc;cZm\+(4T]}}Sid~I% 9p9p{nDf;;g8#8Kizu'Z0e@x/DM=R=J(i$j"~!!m Heo}F14`nȡd"W[\@֚?ri@_bip)w\@9 @wr2 {Ǻcn'(^,$̏ʺB"tM)8Q\=PB Qhw,xhԍGdHSg {wJ9o˃'ɍjfP`IWCکi@-o )iLLKրO",I~S> Xć.LTʏ7d{Lo;a'/u&L.>dGk$ 9 v#ѻ\pCz46?HhvvS_н_'BUFO1O<$U6Z_`NJWհǷuGÎwհ5\w+[s~051@O7Y]Z@r}- hw#.4VwоW9ŵGIBWt8^!^w, +g%*#A<'$VVi NvJiҬhww}gRBmuZ ic@"6;ioZ9Ms=k<>LD d 50L6$2 pj ~M &T ݥS%/yl?STx h0?e?RD)Z66vJhfմEuyJL3 BT}!@,ir#Cb,4UE3CO}"y 2LLgF.=RmĤC6i < [DɌ}[O%KB X.brtڤRK_Mz@N+t\^kvߋt'puA;Ɲ>"NT=*JG"1k`?pf.amʼ~)9W^QNkE (W |&j?o(0};0juʊK= mf{U #'XO) o\4$>x @"!zG6 Beuʎk$e]QBuNJs|cO2|WC 6 #e9@# [NqPjiW?TVi ~Vݮ}G?Daӽ"Cಏ d`?"/!`AE, @EoH 3\s'˓kٝ&^CU 8k_rHKUE36 0BSrM9U%lӾ.R>|go|D$?y?OHߪNhDdG. ]ix??%QPKF(٣2,k5t{}5 Å^SFݞɾ fAM$)\"@fum >dLw\",aWf15̄u.yäCγu}􋭍Ct+t|Z6$H$,т@iI5릮L[½Lxձ9M&!h@\e{ I>t~$ A2j+5}0)%_)7c ? Nd O'H<Ś7톧L:q8Ku׼vbf=3s2N :j-*ϡL/1{*+؏#>HR{.IJrrea%i5zQ>8I)mz "'47ߠ(DQ64|.>u*G4蕨BI\:fS E%{^!EBo$&!'%ʃI_(ZʭD[Hy{E 4!`!`CAIAlLO9< !Z|pQ!܇uSuX2I$G5eP(+jUp={8`)X}VJv 6n̸Ur:aee'T6AMG>֖eUL:,bgVK Ro8s df[wfU=)zE jYU.@wCLyJ:- O.[)-sA(X=jоS0+aSfLe<#1k+FJHI/_`kQΆĐNGg-8⯗]}}M"KL ɋ6 #혨.m/qJæAҙƖ!hבŒot:19) U(]FMB 6 C1YL -(M1ȉi'Ȋ#D\z.ϼ N&*"Bzf6s} "ގ8Y& c mow=Iqʛb3HPS [id:G$ֿٰ )idy@7hG5%<L7EΦ~K(alT&0-  Ƕcmj't`&dp澫HW#キwHOq=ZQw s䖇*.EOzesɮ es VXϴO4;Ujٲe}8g&Md]LxM6( JpIŐ3+oo2%pB!Cc+4{ s9;TR#c!:ͅ|?զreGꆼ8m=J$H3Q] ~D> #c1P!Ea^`R۾Nb"3ZfrOe0@5^R#k lm)4?aa0 b׹9T閱,D8G6;c,Ǜ%qf2ꮸM0rMN*n0nrޯp؅sBU:c2LIPT _\>M_;5Hnֻlչsswy*Pڹ - ٸ(Ho%qFIN~Xj+TdCf"yUl WG@拨OʴJW!6醪ZڃرH~ԩjlKTDAUܖDMw قKJgPw`͵FglfI fBaὓqf2a*4A>O$#a u$:@ SyE]~ǧ^P lWfEגՒBTU3M~'+lYtVusM70Z^|:WPnI?<*8iaY E/DMۚO8 |>iChMt ܺ IT̐ie8U9?i(u~J>kZg |BQ] >`AA7I=\Jblo;O*θ,f ;%f4oj 2Ii@fR/P#zNj'۵ևj ĥ8kҋC:c>&1g;0r Cjfn+ WKI]-{"p> @%cY3*A9d@v8 z ~f9QM#7jZ6W]yrUrz$}}-2r#`2)/ݦ uy2dY T~MVQǗ*~N?Ӓ̤vvrdKgq:cR.~hϸ2Bx ^Fs*ZGMq:\ $dB>]aGxQ{'W]DT``{lQ”Lt3 <`]*Ѻy;IuO0:( d5cZ@;Y;&D}2aÄ^H혬oix`2 ;(lr"%_ċR l_۰E#%9:DD.+NWbZ@+CfdT.pjMXz؀PX![7xňK: FL#,͜&UwG \C`BbkqvJBq?r\3nڏs3 ][V+߮oN[S^:yc9@x#+Svt6T6 1ɶA\> 3 r%7Yj!l)f~}JZ]n6+1D|# =}HNrC4kBOWۉ[M0^s]LjѬP@8Hل,l˷5)@O1^G؈\KKy eH1!OK.MX'MA6^6ۅ9|. 4qNHm<9JB_-NA`5[TʛA=vhcsXJo`Vb./_aô]/jK/j:%%~cB L$:/ppDuN1ϦM!վ&X(Ds$"\5pql9?緎O^VRT੺ĀNBؑ *Gt2ǢY&T&A=Q/P)r+qkS{gq"D-W\M E,ɰ6 n%PWmnS~CE-3 >`Dp#E+lLUn8IV+v=$3D G7 run-mY4rz,2ϺeYS39 =ot`zqdx$TX+L(T7-A!4JF1)z3RTDG@fp& A++3b\]Ygث 6^Թ{z?wh~90 G8!i(Ang)OI8=N}~ä ;ihl'TDd lv,aBxMm5xB.Kq/3;ky$m!CEN[%gcLtv{## T+_T1l Z3j= x!`!`A0E,!!9j qOme!e˿ U33y("(D`0XıkMTdݟkazp4e|'#hm\XW!֧1zPsK=`&#jSUVy#PCYӑuNY:liESW󪽚,eGQ*8oY/WV''C$YgLY]K u901wy*Sيs=B0(;e#PT+6tRhrq||>ПHT$ ͂W&Ÿz2AھƝ5"ʅt|eDoņ߸=y0nW4@e:ӾM::aRd щg<p4DٯC~$Ss4&3qgBDkʍJ @Ž)")I -/s)!`7OtK[:?EYQxPl$aE% R. r'19p^drW9(v2t!) %96&Bmf~Qшr=F|n䇢fL5KsL Hbgm;}{_87 y$ ej|KikY4Tnea)}]66RLF] >2ȡ,>Qvν#Ft! UOԊUP$\H˱ř |+?z?wXIW󯦢@!`!`QjcYK =4j0 *-^ 9&hhԀ(I.TVI ycvf@0عK5vEt&%Z>JA%pHU1B|N!`AVIAlLOGubiŶOLWQLDJ 9ĨaMة# \)+a}F{ihB8_mvT@*uռrʁ֘ N6#ŀ& \]09>u͎& Tnng|Q\yPF,KX'- Q( ]x(wK N|mKe0K4*f8nK/ai'mSbDMo)$ʼ]iŝlٟsE9]Ҽ{eу2]p%CJ{& AG`Q>I 7H4@6kN tlKu\چQmW_?(/~Bx$΁Ogt?@K^r$`OO ^0C,F @Vu%|=G|'P_F>?4h{gIk >,tG&W .vyZ `=F2B'"*]} NHdfʡNUotAEc!gv*ff =~Ű*ue1b3H&EbV'Sw6~kT ;Y`IzNYPU7o^K]qŒ7OnxwA;{$jn wc^8vxM`Y(Uh ?PORC'ΩTpÎ906nvo+z)bGH"DTjd<4VpBrөz.>:#A;n̚=0 Uck։D]yp>DOs˦B]ۛ_T]ɋ Gk&q}'Mp=\1fYHLS۝W&d6uo@SwJwF6`{2K&R7曎TBh%ƴmnP-͛S۵AcxfDM/%Taoml~֠@{Pr|s<:m<ӗ(D )lxhPkdj Jm+ s^y7חGF`6+RØau%$u*@k\|#xHJ .jCSQ DWJ̐+: ̥UZ"v0_8 !{ޝUh 3eA1ӛiN~Қ ƀ.]kYRm D_EG'T"zE>n#{Иz@*ު3# uʨr }K(7,;BEn2v ˕k+k՜Y U,׶W6)444Dm[ƠH!^V*Vkq"+--b]})͵X]iYj#U;n ,6nk$!8 4.%s@1V˜|NNzm|6(w#!FﷆL1\0xM6 |;!`!`AtE,fGMfRp(燹R+2F fi5cFl)193R@3tvdKF l^Jvv't-+ܩQ \lP@݁GZDãDsWj$9Zk{SEݣck h{>T' ]( >2瀋WR>kG[XIxDUGw.oVb򇈃.64 ]d\{P+(9m09x!`td: h!`-p0'r7 ‰Eyk}FUhX~F.0ZVp3߇M jF}t|Z@'{1%|㕤 c_:c5{=%j8kQ\1ѡ!`!`_jde.K'M  F@DM"zv'H2f55 0,ͻ;+wl PBwpp ['~VX"EjgcGB/ݛ1p6ck_ Ke3Rڴ &b#"$']EA"G{5-WTsr: ت(/wvr5M]`@};)e`}֘+T,˥iC{9F4ǻ(/_v|2션5Pq? _"~}#EC+e4?UDg_E*>((YcDg*1 V# Ug)߫ЋmO01Il! RiC[1}x dG\Lz % "lZfnf"R#Eu!`Vj0Mz(`B@/4 +)m|,H, ZCΌ"(р \@!`!`AIAlLO-v%mxŔ,2\7_RSʈk(@W\zBOǟVv b؆&c/%$%Iґgf)^XwѨs/%P>voA`&*Uא\^ eD 'H;xEdhJa\HcbC@DZK"hGk 'r?Uwj/؋JoCj6xKn2vm{R/I[J҅G h:FJ{ &s:Yy!(1HIvC12k^]y3Մ)5d&0p>T` XBC[م-=r ^sạx"LF /Lz4u]wXRͳ?|CC]il21\VJ~FbZ.96zzGܑP9z?d 'a=/WB/%A9C:?/fX]U:K )!oNC`l"fŌ.!:Om /Jy &I蜆_ڪj.a".xY99DLumzB㴏ۤ:t٢ˏ!`AE,6MD/t"錭>D%}G[n! P-!'}I7 jY gSk ܴd)tSGf'__β7.IXKQAF䐑e+*1hE!`!`\t$sЫ4a3*Ϊچ`PmbEOHkepDSC $ؘP N#!`Nj0HjpX8(qUxv/GkFٍ(6eoPubYJBqo^R{}\3pvoMjwtn!D+?a3gW:' $aM$_a#$/q̐a&qLgώBR n(;}ikz[4-DX:'il ?w5jvn!P4H W<+eL̪, mr aRL\71# e8+I&uךytt H/?;f0[,cg[&ZMj|bՔIg8U;?^Æd)*.! }[?idT*,%cD^Bv]F KX[7?iY4~ɲ,C|څY$п\TFOk{k~_R$+cI.> Ǿf.G;!3@3F@!`!`A E,t98Wc8qGpilb!w4 m㮕Ɏ(Q4U1i9!1m3U 'm `>>fgy_  oBgP"<`^Y!`H_thVRR1R# g- ;jR& X'  0%@/!`!`@Ajh]N2F' Xw/Nh!`{AFIAlLO-v%mxŔ,2\7_R)˜گftDM-͵&Z|ƜF֮g?KE1*HZqG{E{fP$eڗ 6%yUik6 ^/WI-Gx[\`Er;|C4aH`MBUߔIx h>LJ0DҢ'9&I#!`GthVRRWtL4JD@^,z!`!`=jh]N2F'! ZT!`!`UAIAlLO-v&mx-??Qqˮ3G=-;F(֠gFeq*MWrڅgƨ̊I/lVLH#,O $ 'X,gs&2`Y ƅqߓ yi\Q5m'ԼBp!4ll+d߸!ȟجgJ:eO͍*AieLzcxX7$˳D4F;^!н0r=T%*ޠ - ת`-kYș<\*͐z>p& iKĬ* ת:'r(+RoCrl e)F?x4e𢶷7 P7rn[ Av!1 Xd«."&eĕ֣ M^]] 5yNyL5?rQ'nKb(5Yl|3$'y }nd5\xRő֕tXV[5!O1́yOxRc6wi(p :-P`̝^慸}l)c?5ˎm}:(!`nAE,t98Wc8qGp pm؀ŃM@2k0U`%D@/ #6%,5@~\cK"v@kMY,DC _!`!`DthVRRWtLu1]980z@M x@!`>jh]N2F'! ZT_!`!`AIAlLO-v%mxŔ,2\7_R)˜گftDM-͵&Z|ƜF֮g?KE1*HZqGS5n2g]:FB*Ȃ˝1 @C/a*=ѯ=CF\4L+mcճ}KƝ^ـ GaU'ʍ+B͇By42}gzE+P!J[ŀ~A/Gg᨜fH<Er^]A%~r|0~jFs,DPBUMFdArVJ4R BOp#ۖcQ !%cX :r|Z"CAS~p;1W.U;*6֓k^ !ۼ@cx` ,1 ШoxQLOTi&sqhJ99Ŷ 9v1z[(*A_\MN c_s,ԍ!`sAE,t98Wc8qGp pm؀ŃM@2k0U`P *:cd佀~lZRhco;" ;m!`!`G thVRRWtL4<:H{SPd*ʁ!`D jh]N2F'C$N! m9 &`!`!`iAIAlLO-v&mx-??Qqˮ3G=-;F(֠gFeq*MWrڅg{0-W꧋_2=ceFjfNm]>\*j@vi9񕰹oErCC 8̍s:;M\b,Ic)/I%5_lmMϼ`xJp;zkan3UV/0sӢ/fM6\3QQ-.19{pK |sMnh9V7_XDb=i+d?+2G$/v@@Ʃy¤TzWY=Ky6q`dNOvagie&'^Qx/3A>svKX |g Kpx7,5T3bgfq~eIXӖF{A( j?I=<; A2.,ftgP5fv:+Ie!u$%:ϯ?Mhŏrmz:u^@JwCgfM )wլrkZVs!`!`tA0E,t98Wc8qGp pm؀ŃM@2k0U`P *!:z#| H-nÖOdC`o}5+`!`BOthVRRWtL4HP  l!`!`CQjh]N2F'seނ˘`O;~w3C!`AVIAlLO-v%mxŔ,2\7_R)˜گftDM-͵&Z|ƜF֮g?KE1*HZqG&CͰhhB`^Bc>Y}σ:XR6&x^GDah`v[!+N}&`E[-d+-M!Ex= ̋K=5in/T@wCZWvgt:Nze}f7:{ʐaT_`FVUZdw޼x-U2\fBa*\⪲а r.G#񢌘Mb@I0 'ix|<]!wt1.WHc٬Mj@G1_=?ǪB O6 {0hN]5++*`R;u* 7nY* kDt֐O5'Iމ<!`!`kAtE,t98Wc8qGp pm؀ŃM@2k0U`P *_,;`& 5KeLұS}@x DC!`DthVRRWtL47Rz@M`A!`!`>jh]N2F'@@@@` !`!`AIAlLO-v&mx-??Qqˮ3G=-;F(֠gFeq*MWrڅ}S4njaU;2.1-K` 0ܫ Үl yT_] ݶnˆ2z<E;Т,їc|?T I5`d'As/֖ i_:z '4Ϥ]g0!OƏ˂ߗn#qƙ9c0!Z|Q!-,elep;k@懮[zʀgt<,t|yIt;uʧţ 1?3ʴ\$yȱ#wu&`A:[Xp|۳CAỶ25M#DJ0^+yEN4]25QPoY_|!`kAE,t98Wc8qGp pm؀ŃM@2k0U`P *_,;`& 5KeLұS}@x DC!`!`DthVRRWtL47Rz@M`@!`>jh]N2F'@@@@` !`!`OAIAlLOGlSV圃 vibMۅz["~BrY&ҝ.V Pϳ@hSbH_[Ff1 پ$kT7uXSogݞitC< /;rˢ*ܪ {ad'f] Pg 2h,Zwu} ˒\"uܛAm: 58 afcM>Vq[ڱe+˙ptĆ^o l\< HFjZ2A7 S{r>G4܀fo!tI+!`-e*=/j1כg`*>rDٿV9u" ߕ45`N>kSp6DC* ŢbAnehy;_n% C1ܠZ~AĂ6AJGeezTF)z fxĞżXF*A 9c%{`uDIׅ834=x1pFdɲl7 __xk !8:4i @{t+Pݾ5As\q!`rAE,t98Wc8qGpFMy%[pz@-c`jh]N2F'@@@@` !`9AIAlLOGlo VRF_cjMJ7Ix⫝wC [o9 l.7&=u\x*Po+ZʭWCsdkpU ewXhi[n\nDX1ϭ,[㦁95Uoڼ쌬cdr L\zv}44`Em{OZlr[/<~/~ !a,AZi!Q zSv C01 g>@.299z._pgxj;ᔗxr ,ke OZz~x 8 ܀%l ؜*=JV凯i+Vo*08 qx+8WÚZUx+.8纠-G9v_vMЄ w K\nns[1@9{5Lj34$26m{hOtH PSaA޹vddބ C<lntS` mTR#6]Iou ?KMt س -3!`!`kA E,t98Wc8qGpOD Y`nPXd}^P0FӲ(@:A}gSF2tQ$U=1PD !`D_thVRRWtL47Rz@Mp@!`!`>Ajh]N2F'@@@@` !`0AFIAlLGp;zwBPYB>ړ ңR(f}wDBK}P$x,u! $\~ysƂ{|́3ZT*5Ww)avnl"Qu4lo6]Fjx4w&Ms~x|SGr $uXv@寑ƙ|\]s_0n7{D)O>'kYƏLf^4 V, ,( #^+d8mC&ՓY,*no>1\d5͂x.s`ܲj߳O5qnLR[b6SQ)0).Ι1ˏ2>΁в878=FÜIawvU^ֹnh|W ?7v=d?zkjvpE'6z$*EIXڇ@ @;X.SD,\x*#qIyX:S  kIW]R4n_ܤ?qT Fa~ !`!`nAdE,t98Wc8qhS_p(a pHZCP ̀ EM8y! n 6Cl BTEݫ( 9G!`EthVRRWtL47Rz@!`!`?jh]N2a. XTPP!`!`AIAlLG"i#M\dzXAZ_X.PXcs b j TorW(?4*9M 9|0y[V- gfmCT8~[-i-\;Sx>ΪWqe1H%)3|V,vMH0;t_FæBh4lEnĔ%rJh`,?U*"&}ل p o.tIz8BfOcx d0t6&nX b쏹|zs5Zc,YU&ċ=npTD/ (k8/!!xBC]Dd=X!c4TYM.~I*zxAM/k Y> f 2@WS $0JG&jў!`lAE,t98Wc8qGpOD Y`nPXd}^P0FӲ(@:A}gSF); X؀xK#>ց!`!`GthVRRWtL47p=@^6|!`Ajh]N2F'@@cf 9B@O!`!`AIAlLG3)ؚ xQUh_-޷q$5+"~,lonB]|[$Ho[~!6sg_':8ɫ޺qr ![Y,tFZF:fADAOOx<:e/8w<:pf,&UV[FO9]B!7p*_^Y3BOg”ǵ(Gby&m7;A*,Tiaռfl{oEyE|b6p72I6؛ރpe@abВ9o֜&^n0C96~IzSR4kZgHp&gMۯc?_&뢳QN.!3 /(;&u:ݮ!!`lAE,t98Wc8qGuA JFl*[  {t:P7xP.>-B'( PVT!!`!`A thVRR Z=, ! .7-A.`!`!`C jhgRc@+oPUDD@^o!`fAIAlL@j]q(C9l% |w%l#/!W|BFa횉_P$ ( \/eILޠ6Fhs'AQ*N g;HDN+^NNDx>wCǺ3s@ N>QI0_С5TK丈. .fUjrNpxNfE!zx-ە+)f2&[ /~qc彿|ݘs|u:$t0~jc@'I pNw|莥=1oxst'ܛ U: yP+\0U58!`!`oA0E,t98Wc8qGu?Ұ^-6b;c,>`2Trfpl jN " (TINaXCnND$!`DOthVRRWtL4oIb $ XRX@ 8!`!`>Qjh]N2F'@@@@` !`AVIAlLXOC9g7 8c|eg(E *VC*Y S[mKܪ:ŀ_qԪ̌|K!Cc4Iʶo 9_j~%;"kI\܊L}h͚P1Th*ޥ{d #phF0*xNCzWB߂!`!`kAtE,t98Wc8qGpOD Y`nPXd}^P0FӲ(@:A}gSq(h'G1V:{}ZKM!`EthVRRWtL47Rz@MWHq!`!`>jh]N2F'@@@@` !`!`AIAlLXLݲ=&X.>2UҘ Zh|Kie-<'S )AR;0GC[ԏT(J5:t}8@v0ὯcsKmRY5F !9|Qn&C*w48@fΓh#8ϱ!`lAE,t98Wc8qGpOD Y`nPXdh78 0zP2a-g$_`/ہCc}Ϗ#"u+9j?!`!`DthVRRWtL47Rz@M`@!`>jh]N2F'@@@@` !`!`oAIAlL @`uFkb؏~viu=W"\ gש$ Ȑ:_r|Thb`5>K A!`qAE,t98Wc8qGpOD Y`nPXd}^P0FӲ(@:A}gSq(h'G*D$KBVJKhH!`!`EthVRRWtL47Rz@k@q!`!`@jh]N2F'@@@A@&!`VAIAlL!v3@y\d /Hd%4<Sߓ$RV@!`!`kA?E-Ŧ=4gcX* Bh=O:/iVXɘz6aƛ&wcUA!}!`>@jhawx! @w5ﷀ!`!`!`!`Dmoovlmvhd9@trak\tkhd9@0$edtselst9|mdia mdhdu0U-hdlrvideVideoHandler'minfvmhd$dinfdref url stblstsdavc10HH1avcCd(gd(@]D<`Xh"paspsttsstss ctts       (stscstszi u )AgcEQ=DB@@;=?E=J?[IID<x?=L>?=EAJ>GC?@Ct>?iD<D?MIZJIH~ICSMIUA@MA>LJ"D@E3"`@gY]Y[kVD_vw{d1eNUJZKaKErFMYLaTIRGFGGILHFM0FEMGRISJGJEGQPFHK:F b]A8l:9Cpx=@u76z76eE7zw8D}7@M]#ezC6lzA:DYpYH6ymI-IMHAwEDyCCCBHD~EE{EDPwFDK~DK]G;"c2fZ`RLDvKAYrHBwKHmxFGoHBoHBSvIB=oHB4rICpKEpEGjsHBoIBpHBsuIDZoBstco0ѫWT[l 2{nH#f[Q `  X A==#{  P $%A%%*+?++01.1r16S67M7;&e&/01N12sAuvFvvyyyz{||`|}s}~1~s65 x:VY!dfX0}7 hҼghij[ofp>pqt?tu/ux#xyyU{x{|F|~+z8gWf %|PB5Y $ k tS !N!"%&X&&)**X*---.0(001P34G4467c78:::;=w=>N>@ATAAD0DDELG*GGHHJJJK!LMMdMNOOeOPdPQ.Q|QRvRSS{S%trak\tkhd9@$edtselst9%emdia mdhd U-hdlrsounSoundHandler%minfsmhd$dinfdref url $stbljstsdZmp4a6esds%@Vstts(stsc     "#$%&'()+,-./02345679:;<=>?@BCDEFGIJKLMNOPRSTUVWYZ[\]^`abcdefgijklmnpqrstuvwyz{|}~     !#$%&'()*,-./013456789:<=>?@ACDEFGHJKLMNOPQSTUVWXZ[\]^_`acdefghjklmnoqrstuvwxz{|}~ stszstcoѓӴQH}U`,ohBy`UK T  L ;17yo  D $%;%~%*+3++01"1l16G67A7;B>@ANAAD$DDE@G$GGH<JJwJKLM MXMNO OYOP^PQ(QpQRjRSSoST2sgpdrollsbgprollbudtaZmeta!hdlrmdirappl-ilst%toodataLavf57.83.100ntfy-2.11.0/docs/static/img/cli-subscribe-video-2.webm000066400000000000000000006572571462047176100224510ustar00rootroot00000000000000EߣBwebmBBSg^MtMSIfSMSTkSSCpSMSSkS^$STgSIfa*ױB@D@𪪧MGStreamer matroskamux version 1.14.5WAGStreamer Matroska muxerDa .x"TkG>ׁsňRJ#ツ@SnVideo V_VP8Cuz 0*?+Y_dr,^Ny[Pȉ.%nN׹mϓu1?/O~񿨿y۷kw_ o/U{~)CzOP{܏_˿<5K?~F{P=oׯS:__>|ߖ>/^q_~ @|w/f5U@?ϿţuE[O?ʿ>o|կ?BÔ9G]u]u]u\ :{o&yT^5"k])UAq@QxCs\2.L[{N}}}}|h&?t(y^@n JP5* <߹`w+j 6mGW}UYI;\$M~{گd~k/EݿJNj#FC;a1Pym^U)!i/AnRJi+>]GIv=Rװ{Jr-ţr2CÅ؆IC|HyBC(,*~C׿_jhnߴZwTMyR0A}i6K}a[ۊ 2qʽZI쐵S jQx@Jt>=Xk\.$X }5S׫ïW^^e/`"=!L#F Bąu׫îige`T yެ|yu5>?Xbņ*1!^\CDȶbCVZS#kG\-67Ž^M@#2MP(1~~PT]2t6.ї3d'0x6dUTT Ie̠sͱ̃g$&=N]pU/)=d/]K,"{Ai׾:^*{Ã?KFz^>A͛r,r 5ۨZ~=sG[H<:OXm6v/*.,d6 J聽|a\ 272ÒsP L#}-t&$DJ^;GL6epi+Ua*KϩPz:"u~CHDJ8 [QOjJ6a|"nk9[iiA~EooW Ǎ.۾&QGjW#=eA)[yV73|"`Rf˙γQzر6A5u4뮺Vˤ3OK߃Xhg.y]x#q/fWGLSBה3Ӛ5M\Qm̂@eY5$;,&u,Y5,#T]j c\Fԓdvk?˯?z@c[z%D>My+>DK-Cb[!_o|fLxBp (#Qa׫ïW]]vu)%=4{Z D#a!o4H7[}ZTNSI1%8h\.[:M/JEۚ]$Kܩ* ĢZ|DKCtz_6tF ɵѴ; 5y@ix9ZŠU2aK5 c,>#yhHҴmO2p8rRT`5t5ſ8^&888WkH57| ?oh&E?FeT:=`ȊI(rEh~l_%o&0k(PUҘo]p jedO#=|'708c(Ѵ.$'U=e!B_E\ޙ\DkFwȪ<*dR-IL`XIGZh.'i 'FhnQ:}|lq~*HohvKW 'xq6=D (KD6?Ȱ%1ddϬjo| O7f ŋhUW]K_ھi-1`z#.'i UϮeanS X[ G[z7b`{^Pu1hAy -W:Ԗ5.4q=Hn:}+t':$I 4b Oݚ_I*0Ӧ_^&gŝى[:JzՒ_`O=sѴ[-@ Z}zsPVF:k6@G /JދF 7+;QtVw oQ5CtzRMJYwD_ Qi: ɻ`K33)edK*`l W/"ƭs:q/!M2;5~Xp)O0gue }nWaAfWǻ1@֦45WtP8']nvʸ=A95^VN*ZB>A7+KR ">m'xRϑ)wj>P"J!ʠ.cFKOYt=A(;=ͯLL|{G)JiK(Z[Zwo!zsD>94|؍J;rkgt s y0EO 8I6\9PK~feZ|馬$5w#J:Y3^˅92_C̬nr^9zAI"yO*;T3FaR^%W6ԌH&MtϜ`wg,:DIr3?HJd[}f0ocUEZCG#bFhf0is4T~aR_ZnC)p0@, -z$8a!Xml.g?S9Oz! & DC{)%;8,=*Y3zPǨ0g5lk9qH2+OmA *BR0y lw'h+d#7&7(6IMBL=%Dըnpc’0[eLWݥz+7jjY1 jD~FӱfeMk"GS`e<rCM>4ۈeDdjfɧ&GJ_U 4v8bF ^@Ƌ)>g!d3 c8Bߕ3;Ŭ'?sgn^uY 2;bdy2sy QKeksLF|H]#'nMֿPp}F硞[W~WX1֕xa?s|ܸ ' 13$tìJcPO2dNEyL/" >4c8Y"m4A,*[}k0tqC3+o"лGI7ZޚPaDp M#=dg1sxOkb~`PIxzޔ76u[ >6M~ xJ~}yh;%c-HˌXjܳ: 119D+!aT,*,`D p Gb}12 @yb`K׈޾^'6mK@ j9eCWyoW7 BZD y(w}NmSɪD`;!$.bYN37YX+ >\7:g)cECDgff1fsxH qhrc)[NZR+,i{wV e_t[͸20pɑ"Mǩq[W6g2(~v$A-W6Qު%lӧLقU79Z\3&㣋z"~p}'Pː%9GVr(8q+$%[PIf\6q !`q.K: T9Cuic1nʫ#z۸ յE.Iё7L8 L\~AHx>H?ØT%;6=`Jy풂8(٠piI~`#E|-W:]_h<96*UN؎ |`=88lR}RzFSoZ̭CZHpr„`O%?^ࢶ1K ?vG8&^ '" H]fo_4ʘrsqsqPRwbWXDh@6l NPLfW4O; &~W*a`*̺w/؟DnEQl)ч lV)&EWӑn!dzdەk-&9⣱ w;Fkx:NsíʽG.ZF[2VT QK+BjH;q!F! x;~!F@*'gv65~.AEd/&PMy=Ux}}yU$.`d؉:&WZXzraTL[UQdf7l9"vʟ{4:u ~4 '=Y5zR "ʡ³ܭyQJZ6O??7u1%R;8c1yl?0s6Wyqs_ky2`Kf6Fw ִjn蠵E`/a,Nv{-luɒZD]C{K|õ AZ5@bpbWcqŞEt'rt)[Ip~f$`O'}FȞ-x\~7*jy*SHO!%'XA5rîj  UJҘ|HG6kF'S#-n2"Rny*X \z`(& r1ABX.΁E m`:GWH@Y- f]`^4bmK |UZsv q,K8L/9C(s_ M{~]TkϜtoڱ;& 'ݓyx;)BfrXdc$KJ2йYru\]Us )^@&,SzMЌ=КOa/aJ~X zg԰Iq2tI?>Cc<{]FN/9"5b9te60=9~iE7|!ܗxy. X:J&#*X'cOl@fh!~*%v+fC_5C{^"IC> >]fR-^@꥟OO4si77WSPB t@TZ+_1S׀w^3%ة" s=0߃)]>15uwp(MD[Z-ikŊw:;nc @#0_dG &#p$-^kL$ԟ+bw[@q_6@`-P>a6d%W֎xd5!ATaYCþVJjJYZC0Q#5P`Vؚm Q ?UM[bO# I1փKJWn  G^d,t\` l|9|=!( mڏrBנgSĹ/b!vJin =.ğZ &x5XoeQS>Sx~TtZ 6uޟޟm; Jk~>Ԕ l^?`.P*P}%t 8p qḷrv-u6V  kIJ %L G#9\:REޟގt^ p/AW >~NrMO/Z갌Jи @`RX~bm~'Eml<3yb͵ag}UO/ o{`e4r]Ց4:^Nd|`U[ԹD[{gm 'B@M)!زgweA\+Qİ>XɤG߰RU`c`Da9~?\q$xP|kE`@FBY 8 ZphiGR R ӒĪ'T ]^ r 3> awPXIv"as,xH "hz!g&'XYt #81iex`0UbL0@U1PZ89;ZNH!AD N_a#{ ir5}ݱ)B{41>xj,,g2;tPl/|3ɠbSq1P'8?͊c;zCp p42<z7F d MtY -H4&]8%?p_({ 2*b6TXL7cbBp m x.۞֝ ߠ-p.q]>*r{1&E>6_Q4W/$9 7<]mF< O w<$ tmkus҈'Jc  TzQ{<% 0Ov/\'Pe:(ޕ6->T/ʍ}ޏr{cW a +?vdذpXCN~)^Zk8:HqxCKJi{DMVqTzE f ÞD] ^. hF\#R tބ`  @Yi/ ;0{$eP?pEÄɂ7|Ph6 7+`,0r~v~[M)6` -iAi + y1X#=GK*&5.R6C&M2\etO>əR2sni?P<H~`A HF,m{s (,0 DDs6k0۟ &e ͈= "2Dul @_?c2[`ڐ`svcRf4n8@ $;{,TᜦbD+ Yd8)qt $36ٷW] ;0fVcAŁ rS@g sj:=/[깙d:`ٍMv.ssF R1=U;B匐mTK;x:QՑsʰ*|^&ͨ}a(X,0#TkL.^U[44E$|PLmEᠡpL?7wRࢊyi)XL/!V-5 x|50pqK!WvۼMc?*|3gg=rn4 =<>G@8#. ryyk( ssȕpIК5RҠˤ IrvW(XWP!l`s(y{`\+`+le &EJVt -`rtsܼJ@u,N 9 >U%Q daNJl]öw #LJ\Ff/(y[hI?G5 ǻO2t{Dž%/ (O?BQ\zC%(d` V%C+dפa& 9*=~9ێ+-4<Z;ɦGՃoqϑ8H{BX[;q~clxF@c-N͘!ZrE4/T;}e$ɒ?@yeţLSi&,)Q)eF,xPri[@dFsG ϚzGڤj4u pY_ژ05q2'~JW'*jLOuFo*T +䊺QY; \{A9U9iyZbe9&H5_%ld1 ̀:p#m~Ck 秕=-7AI'Dw%2F}]&WuGzwM'6 (ѼDztw!KfוK'ͽu䎺2*ikr#Q9$^2Gxj8Zt[~)^CHx52ՇXM;hˡ ]> ,\vNzCXݷ׀]o"+`#b9A p!I&:rHdiqByy% 7<"L<&и&Iͣ@D[c:e,ٚ52-"55,JW޻_]N.lN.qK\X]u#&u(P?Rm ,cUJdwڐث"^F_2U=~;q'J?sn7nsqGǬ;N51?Rer$H,NWȭ\t"ie5rxz:7gKXƒ%!R-jYO0b+b@*WU6J2|&0lu!J *W!i,.M:nDDBuT<@e9;Y؝#)f-U!)"mtr.G? >,L', (e~EbYsDH mm%R0em@c`H_[$xi&.p@0a0( 7),1X.A T갂 n|TzD?p[êhA8, #Dwzǿ4W]bd<" "Z!L)H }wn0I~ԿҀP!U~C<$[<C LNj~//'S-ˤ7A0Ygsuh< {rD+d5)2V-ғN?x9iMFA5=< 5g:щGwhydJxatHp|w8 s7w;٥:\|sߥ8"gUT/WCڣ$_F +Եꦯºz{ݝBw]F. of1؆QhcK f 68hk(쬊$<p3Mǩtiy/pASbL -y|;Mԥ\u/!^X'6vOy|)N-ֽIv!J>v`u>= TC,NglD{<0/|A h$y #q?ۓ82d+h%cTkveb^ `!mZ@@; 4wz0'@BۊW0 *D3U@ދn g@,qv'@+ 1ط3zt@ )|d(r1 jb I !E B Ks@jt@/W{1$* 4dkJa+\(@YL~ +R|[NΨhWQmj! td1FqxZ/hD-x- {xWjҲ^2u_fX|hmu52Jq  * +@ d$$!uM*]/k@ڦ༟[i2|uH($d>AHXTI%R]n(jy@ &I>O&<Ɂ Sw?KCt ȱ3\?a/)"B- XՇ /lҠS %` MH5MZ1:n)E|,8xkq̜/o/_2#bOMB Ė*. 9dɲ3a8S'L|FUugj/ީDC^YTaQOR:h]u=zw43TJx~eȜ#0+һ-MG;'3sޫ}Aa"F! o؆lGSTU|%hQrOVj}oqvƘCM55> rH@0$T'PFlfˤ8%ے`9Yl=s PDv|]0(WC6W~f?2wT2MϽіJD2K@c.[nL8_xZ&7?S ߊ* J@_;2 M` J'ux&CGfitei1l/GQf6wRH̫0! [ լEAG@ڻ&ǹrDfS8!ABF[Z! s bڤ O9ْ~q֩җ1bNvlG,|桿49-yt~jD̝&@.<}S-S2+=Iw-5σL1|/t!!hk'R%T= ?b! "EpNc@ bsV bTd:A7pfz0m#wh=nN]ʷy^[dz2"Ylt?(|M&;-W;z5qQEg 8/oLvݗ퍏_-_Wk-22{+L';djIAkfC4ր1M;NAޣagە6So4k"1 `SQ6c7\< j;pSmI urvO*#yL#aT Vk ;'wx"`L"bIAFHfE pW(G n}((2v;\`@/@vBc /u N ybl ]@Jae zQ; w`AH'lF'k [0q/!P<@92v"@d`mP $3t*db *_@%V MD%\_Hd-@[( :'o&盄jJ*V&{ %teGZ(/K|@ 0_ +&ه0zHp@$B-mtüMzH>OwȠ)=>P(V) Jê1ȶD3Yz] fi5%B5GcIKoK(cB`f݅ߙT5s"?F$7WǞtMCYn]tYLE=ت8̅jQ>REF&D3V4O 6kE,}~].'DAz3UIhl!SB>@b  ֡-RX*g`T(Jԗ&B=n<`J&0Ac 6?uW mcv F/b.K ] 7cŇO F4Q,YfZX&Q16O!l8[P_ieNd}[{0]CAo3].D5) D?_T_|LPqU+{O 1{o5Ty{S hy{9d\ p r8*(yҫqL\<ְnex4d@5ј\EWje+ͺOT$7|]re@ǣ$[9"λ)3@Y*e;KhrM$?yH/SU eK[sSnLfڞab M1?#~%^D!"4P SuN\ {.ë=FT)E,ufI}@"pi= BsQ XLTPVlB|Llo鲍vгʎ̝*aw"@d'bҪP'8A &J~áe4㲪#Fq_Uٸk%">M"[Tvr|>X^yho!A con>s6I{UEk-ҔTۻd[ԭzsdll' Z'rƱM m&v:X0GMD$|*VWF԰pB\!.Y8z@ sXp#R0Idh$ ~X2ɝ!=\ǰI*>ffF%^.L"Ht#xL w ֖~UA lU|K0Y> 7ởd/HYA  j1{ʕ A֯k7sMؑ0Z}k3Na_,g=:ѩ,$W6B0X-oPMW\?KD)qB`=t2M䃽"3nVݭ"Λ(.KB՗WXj{dX'q32(Xa_$j?kpʅp<.$N{LpLLxM^Oe0fxwPeVNQz}+7W>tj lFO12"1ܒSsĎAQZ@;. C^NJc]Dl -^v3¼ u <?3Wm/ mpp;aiQ*2p U\KBTe N$F"TJ,&tІGct\P *J@DP3-]Τw""TUB4|h[@dt߁QZa5GEʣACFfȢzY^$g{ ;£@`wNZmFb$'hb'}hT"F= IHVG>Qr]BJe*q+#T/IO➉";ͺ^)NKECvc`ZUb_&J8Kz;鿹1< X=F;uh2_(O!I#JcQM-?`uX<&}3O!N< k' d/ gBhP~   ?/- ᄗ"W (O ,0TnŨ l\sRX1{5K`%BN\Q N r#-!alc0n\3M+]Pܟ>K1uG<8@jXt-c5@)&2iHv =z5B@ I6 2hyD=y@ӦA3h|`SI<*aD3)HS+CG[lH 6O7kqİ aPPuvvР 1ZUva)19Bm`{ePj$בLDφb: DaViX6@V{\Kkܠ&UwY9:dao*vwD뚤=@CIes79; .6n~U<Q?p"@Jx,ɟ8qΑ@b3Bw0` I"uZhpa\ϩ-=kw1;<#ȝlMY7Avbt۳@Y~ގyʫǻa侌mҙHcY Bțv({p\v|;{B'G|mU]TEE#/${Ӆu Cw\' B Bs/Biح/,@E[ Oň}aA+ f`8wd9{%2ͣ4Rilo~eoZJ,ALv} 38ŕ,u$H6R/\LogtQogo]Z{61vj )ựyqVmdṗI])#˥,DrtqكW qG70k0a]4]yyMS%mjNbMNl :BMY+FbQFM¾5ޅ}`5V]Y,?*z=ruZ%u"~8OezlgD@s>w&K$1UqX & DLq#u  ܷ{\ 0}H΀Js@\8pp'@ TS@Ji˄z@`8u0_ kﯷq&D > p>j4ZV+6 R5h$ QIkl[֠[7W]Fy J-V2fe *[bBC@oHp/3&L}O*H"vdx.@'l $&YctRIlTQ?v @Ϛ0@FS% z0F z~---x Bj^Z2?C0‰f [!߶ki7oX`wYfb&X apMA'A1WY~ )JyiuI٦هXXҋ!$BxBt>5(!ʯ`b* ceߖEOW޾~jcy˼H%y yb|¶(R©) QB15Mb QnraBlSM_~9&´:92Kr臾Wn.po^9U_20vk%CP Zfx@:ڗH2RD1h :pT .rh5\<$xl ˞=eZݯ.R.SU11}Nlѝ]rQ= tD 37@._Ēr`1)߲# LR;lXHyi"bР$E}9b좧iEVnq;&rK@D6MoU2)=fT ؘk#hD8.g(NܵO<{n{U<| ?( w+6@w$1ñe0ևxalD@Vah>fۍ1 s N8'ƾ#_Df-]5n[8SW7#VtQ c YozX{)tX>ϵ0- ,!_+B6:nU~]Yy}1 WCn4d6Q`U3GG8;QU'BFC?K- H_ڼةdIC|~2ʺvpc3~0Fqgϲ &Tj84 _JddYo;Iq֣R9`Uzg-M+Wf ІǨ[>pCwD<ڏY"Gk.&ͅ4 d?4z~[ }1ǫTGCW~\OS^clazw[!&V}B缍/fC&ٝ:'.ؾ>h.K[QDYI=OBxpLaG.We!zrxc^ FqϿ)fHmt< .!o) [l@Ϫ;#s\jJDZZ%g\HQ'QA7 0(y!C>O))o6a tKҼ3-ą];"}#5s']X@P4Vg fpkî kvw7Z,!!:'0W8x.͹#&"q3 d7ýdfz>sb7)40.j_/Q7r "_E8ֱHDmWps 3`BwܯBm<(P{@ّ F\T͹'?/ `WUc]fE=Ƴ0Ł4Ʀխ6rg'rI@y"oEs}77!ORމc_Nbk>c[1)8'Rv>wjj͹,9%z좱 1NVy8^yX[w(Sn(=@m[`5j k*ڢW2h?@<"mYRq!`S1 zIJ3GF$*muBekpVDo=TӋnZݞ.5yuٹFQ1CIP5"Ya <E=7 !0A Zz"OE7(W H6gcGӎ|! wm|f a>.:\۩1+ T#h0)v԰)j; 8( :@ -e 8`EE|GjХ𭇩k | 0;!Ge[-*w+6Y|F~"@ =@H@$#.&*sICj{9p?^R 0@h'p[.`M==q'3H'|@g xnWv H_ J<^H,@ip|@M$]=Vڈ ` g}pVnm_*S?ʇ{xd TД1@ncVg؝m~3 'MJID ƾ3㣘:\BNbNެ6xetK (ϖ7pEQ &4# DapV J2 NhQvD VLfJ: 8+/" MXwLV5?; ~>P_ &m|tk@bzbStҊnf_j"v`Fa~Σ|ݠ+顖@`J@;|91Q`0lq8ݖCToQNF5U`ݲ{?@IPĪ4m@# bngdo88VjeA@N#rwJhqȃ`csž]mT@ڎqgEٶ'H }f@X[y`"f?U0 L=Ț+RMx2*6X"\[dB܀ D ],–H * }|GB 3)F jVَJ@ GRs|Qz2 r`/^4QP]bjV$ f20L/ꀊZ"Iov`gtr&N\:{"E& Z.I8/H68Y%@E5_ xzF#^q ؠ6$ k`o~9RnsEV1.b dv[Q|#.2Aph@v) j$J2A3 73-(gh 73a`㛔В$RD?u`{.} :Z:BuRTl" 7,3٠F0S \׊ӹ,Ćs~-q/ս<ʑ]8ċH0p " a\" ezPwA$rVL|v.%Vܦ^}:srQn T_0ȎC `s^ V -*_?j)mjqԐ"ht "8DƫN<%<(p1m.d>DW}Lsi{Ѽ}exJ,݃;苷bBur o*Ah\^(p}4"U8l2q~e@kaP?^#9dDU d)ƬWWyyˁG VWvE0"_E֣Ei=@EE5t"-ZQFs%bU_e/h'-t @ L DH"x ?U8}eH-RRq42λ04fݰE9a1? WITi$FIH@b@:Rrex!Ik{Y$=-q h_wV2TNO瓈BgSVw4]roiY=x2$d ;> +@ d⦏) ?2./(Q2 KQVR~ LUpY+.?huXZr }o?_t[8f /2ၞU[j8]Ȧ&{uS;q@7L=`LKU<\ JئRpuo >%l`p=HXTW):+:R璎 1B(h FI֖, ^mBɶ@]w߯0:&z~ Ksw#E"|T2>Ax7Q`.pu6p|( ?},LHgN2urlcu~%{kf_/NRՌcO/wo,gW)p/@3_ K+t@WI@.ewOZ'k@IMGbQH2@1 gC4OhV?0eS\ ]䑰GkH Fs>@J˖FARF%F2o$ӕ߻FxY)WPG:ՒNe/0-t$||ap^HGH0ZqfWzk.)#AA%sGBcFy,h)S-=P \QY}L a\T$ ς`% $ AUKEPg3&RD梀@wxףZ@X&SDnI _G2`P].aCa#`DpqB EYWe@X&,^m4 u{yRkA݅RݴV}3\0&#*ok :]Ðn8`=<&#!j ]1UCP; P %N{䡉nwX)<~S T']N  x&qOP7T@݆^v<>&/t9O/P)f|O&e%痙@J4>A]E7}ꧩ+Q_ m!ezBΔS5~K]x[]c؁. H/U48_%Y\DuŒ $ ZT@9Paz"j fL$i߆r,dQH}N0K3{,oUxk 'V>Y uY.K%^#r[Rkrj7J'8SgW7B3vp Loka~k0ryo8c.jexCsrx%6 txfD5xfY˝-r -R8p Ȳ:5xY{XArr"AoW2 lavtX24nRyG@z<*b1C*B)eba'wh(bݙnYjOrC mT:jՃ`'(NC^Q{h^jWCS~iStI?*cU8\b.`|sx2EbRdʥdW< Ea6i3FA4cVP@ { EFE2"4sJMc4! b{Gc HD*g;V \#S9TNU097?t,cX(m B='% %#uJ}h, 4}[ [sBqoCH3tЊFc@- [/rA8= bUG@ F̭}E?*y`ևA4o;LEyl`g ˆ'R.(C)5:+EyܠCpWFCt԰tUg]_RDc/P@ S,_2ui!qٝQNn΀4E{P@ȻxAAU3^S;4?.m|z@'xbXn#UzVi{f/RSO2ē >Z)O Z@߳zYЁͥ)&SfP7 Z}  Xky%W =S:KoL 39Q:Gt$N ͳgCM6fZdBi?>wlmLWT`cFG,WHL4aӏ)l! 'Xw_Υ?3@&UE*5'uY.6lGl8U>S*iXIp]Q'gj0Eֆ+۾qgOwћ 2 QTPԶ8A+HE\ÅM pLkc/{U 'daS';Hdx$4>S )@ 4>*x~X1T: NxU CBoכǂB2M6G X7Y9m5I(4mWȖ8k-!hpLR|FBcj$:Ym(@wA*vbrGTپ rϋ[ 8"?C,#\(W@=^{&φ4: `7$.T9CͥrIȼ`±2 ξG$>:Liy882B]qgL~4~!d` IXޯbb[c{qR3%~$.,q멐uV#'^GKO[ӏY '& gR+n-u=1s596 ʝ;Ƿ9#/ϰJነjGF4aTuRsbJ]ҋ7)n'y8w]UV£9ji+5SD[)WY)pVTՁ"9Η,BkNo]R2wHjEh BTsP MYG =ſRn9"`'k AJۥ@+AJseؠ!( |tCY3UIn"Br9t)rkJ[!]Ui6h29ӒűT^].'\jja8oj'pэOW"Uqk9r!+2y @w@i,>ypz"R|ss=ݮOˉA24<݌2B(u` B_ FOX TD:xݫ{n81%& ,_U9r(8@<[9l Q}hgH|J3/&21d̜dO۔;z圾ggEK=}LPëb*/,bKƨ҂\B{*"f6U82_:4aH_8 j}'`6Rhʪ6F8zjV/:1ۅ pj 0LJWϡ 9}6|u\_%Zյ?=wqE#,OmFA܉eBPjع* @)+Y6N+]5=}4тdAZ}%d'lVm{?&PB}+j ?1} ΃[f:c E( @ >h-$ h"7܀`p@/L=\7v@ilg$͔F`p4-EI >#\Nglt j&ӊN@-;fl1gβ> G{BI‰\撩$o`Ǖ݂eѲ N^ Dy ФZڏm^?fbB :Ge+7Oϧ'kHR\I]+tсV%RAXF3AH Єt_]T yVѾķX1|>"aLT `pG:& u3,%MK.j`Ugdƅl@ DYJpN&/D'UlYa [vsqa+FHzBDK"QZH8VmX:vȞX8&4#U&<(L^F1D{:.V[,>Lr0fd|db'xK_JG!B_tOtu`sl(զ4h(b2F]xRs壀G9}M`"ų @Qпb"΀'0PxwY>*x$@+\.Q ħPQX0ю`R%э7W6ׁbIHGB H}Y`~HX)~uM mL9}AgS5'q%ptaeu7TQ;fXygԠ` u%#:R Cdcecb$<#VzF@`NA>uR'0V*e7i8 z`t `5N!ZRe M8yv!*m{li+nEsɷ,(Ll>GQu92@`965J ];2*WJH:Iݫ0:h=hY|q"Қ!5+ jKICZZ.fCNM!~m= bw 0Q>K䚽LlcJЕ M_ۦAܪw),gπp_" ՠ7` ,q(@sL@DZ(f(/PʊBW'y!&:680SBd,(5j+ '|ҕӈ^b OmeNpSSGB4fb;j^ۆs߁eoJ@VȓfNeB_,WQ72O8XVF~+_N NrḦ7я>b~ ~ @'hY cttL/Ёթ~8v㪐md]b\٩d5fܰLF$8Lc^<3Y,mx*>d&y@BfH3 &zd'&O3,|*K]vn=f@aUH3 ,o]cJE<ڽ\㒏& ^ L.~0WFL`C[.Y^$S<%2x>&1SB?籃4x&XI= Ncu7R1DD`l٫r6V[09)+ B(1{>x pTUx"_DG@,L.#Sg',ćꮰqD5)*IWYυR̶5nreol)O"o?7gD춄PEMs 'mO@aVq"FXȞZa8g8aiBƴ`bWMJ^|Hj_q bqmU@`$NXcl(l9A>+``{a qV Bjr3c ``l*FH ix5`.M|OV ,f=#F:j;[$I.zO gp% K !bBj LcI+)pjnJH[$Dx3}H 4(2d q-@p0  1G16` ! $0K)  3[xHAv5Z#0=OJi,kGNپ?}@Xo`T;L>ta,p(JhEgVi٘X Z%1ئbLR  }$ }S;B1 {=A?ۀ`[׳=If:1EH>e*CRP ; LP@L3{rJ$0Q.F5!|%*H=YJvd I<YB3_0@g<Ҩܮh"Fk c8״o*l)n[#/mfwmhHl9V-hK_kՆ(ΜՀ]YSBƸ"ѼWF6rl_ήITKVR;jMH ;m6Ҡ^Ó<ꔅA^U2NnKG%` vÃ8ͷJE Vbri {keFVWŽ$ձLnYJ q)񕐚hT型wHU/u.k]\q>x\=U'_U\Iq(Vh{cI)CR_2LI,GqeKH~,ή󫾭P\ȹ.OMW92trẟbHKp_㳸xyU5M `hgc)j4 %`{QQ~DܔDi9+#Au`rA9gıf]źCv鐋Oy*Nb"C%h.DW1b<%?r%`Y'XC_!hƉ5%<Ɠ"0$%-9)MMm&M4UX;{v# y-hsss䢊΅S~yⲏHs?Ja8iz-:uBW3~Eb>}gp!OVאeA#ų +) RP *X2;֣cÛ k7ҰG(*feH3a+]Sa_y3k>CZ"eꑟewC *4 [^6M>Dx-pPЙWv0--v]K*mu2)i& !] lQp…S{+@䡄:Չ ߫ezr߼\ 2VWټq)~&73 _m1NG͙8B8yf{\XAFGOl'dKbA؈s?k Qv q X/t3- oKd{-Ov?k҅T-xB?k   [ QvM X/t3oc߸5uǕ ~/ǐ-1Qv X/t3oc߸5uǕ ~/ǐ-1QvQ `a`?"x_VyZAh~u}>u'C??gq{zwP`AgQ K*ԖC7pc[p+` |w =||~ 5`iC+* _,#/_| ɛԧ?Nc:4j2;nv"O?ɣwZHS=;5 K‘]&S6m~IPaf_ТAIDJ0foD(3^̘`8Tx),]@4f3U*c=hZEK/`?e6{;Y?$X X/ ~ 5`[8ʂp`OR _ X/ ~ 5`[8ʂp`OR _Aq1l';/ߘ)t)6{V''`)釡snꪁi6A`[?t2* _<_!K5`[cp4=i 4s:ӂCHiGpTK'=1$t+r^84|,1 Ho*39m.HWYfDt[oQsZ`о+nfMӤdF@,3g\d@ 1 X/G{]C Y|q?-1_yPZ _y X߸/pR$ljSޥY',_M>N[0'+aR+*qHʻ-5lKk*nw?wYһ]OqWl؉_C?FAӢ~EAihрc X/ ~ 5`[8ʂp`OR _A  X/ ?fGB!5aZv8GX}$V^gS~?AQYrf D@_ ~3z̗Imz+&(0[ieaUQ 4o:/l??k x]qAk߸0'q)c ~ }:FMb/!SR!s)\Op=QMB}|oTT1^,.e4gJd~@Pr$VjAM !rx◤K6R G/2a ڞ2!X#eFAVeFRR[o.#!v,/2 ׆CTox0t+l,Dd^fP.O\CZn! ʂqRHn;J̌auU_GQq+ X/ ~ 5`[8ʂp`OR _m X/ ~ 5`[8ʂp`OR _ `a`"#?-1@o* _<_!K5`[c@ X/O׬R4LU@ _?t3+* _jҿ/Y֗p$`=lтzI#oKr*X94 j<\npKj0_! J7HZ_&p3і}5.IJq咴G)n; EG!&oPFDԯ  5 [zK,AhqX/" /`$GhѺ^$An۽j;'b o (]qAk߸0'q)c ~ }8\[NfBŶn]4bs`=]f(qo7$NT.p׬D~I]lDU^Gڜi6^(a`j7g )BZ ԑW|7Eah 1i6brϯhȅ(P(#'8ρJHC>y)ݩm^ r7',!3I ]*k"7$6Bd@ׁ X/ N]>ea^q߸/ _?ĉ%C?h-1@K}uڳkZ"{ qU >K% rOnUwQܷ@z Z#x=Ï{[c7@KQ 8  u'z @nd |ǟ;~  K1%oc&HLr"Mxe!1ҏ4Ci?/,1} 5%S `a`"#?-1@o* _<_!K5`[c X/ ~ 5`[8ʃp`OS _AA Er[V -ܛ@7oaL ;V85{cN _&v cuJ _4OM:AgPgXPlN XEtehKZ@Z_yJN4Ϻu2~@ס gg-I]`Rvi5:L?{̴ 9'd!Eջ MW3t}ͭ#!>K;Moz!;5k"a3Z_{(R%YU X/ ~ 5`[8ʂp`OR _A~ X/gnٳPmon#٨A;wK 5`[ <-`[<,@od L{"Wt{􇡕^=j'^?'{EYꄲG mYS؃ϼIC9bmkv80CѬx-=m3kJRhM#+N$#}OY^Q(sDcΤ'@׻xqL3EѸGNG&n.{ҹL-`3AT'owe.0b.t-Vȗ X/ ~ 5`[8ʂp`OR _  X/ ~ 5`[8ʂp`OR _Ab `Qhڴhȇ o̢~cخcܾІ[PvY`ePPczc#ߘ5K=-cL) #n $4 sݟIXy4МJ#, 2;DQ؅69`]4.W3Q薃WM? /#+iG,};3P X/ ~ 5`[8ʂp`OR _BE pu/*ed7"޾@w^ uYA4Q aɯNևǸblIB/yHfpnd3eN#fu7UjC4ĺ3RD\̄bsS-/z"$Ѳ?˭g%5r-fo)SW*!I1Y ǃ[zKʗ o+Y E';>}2l!W[b4SѣTD/G*Z ( X/ ~ 5`[8ʂp`OR _ k `a`"#?-1@o* _<_!K5`[cA  X/mL3x+S.h>ovV@?cWT-xB?k }JU͆LsqκxQ TmfSyr!}K kAmkBѾ: P<1|FZNҎ/:NɊlQLζ#eY1 2ݪpX`B! ~ \.~[3@'Lp4A qX/j-ueW}q_mN*d<}r'̺VNW8ʴ~ _.o_p_>R}6ɾV̗|qI NDIk]G.1wfW]6&vQAʉf v?U}W3mc)WfCPEYumO^GMFS X/ ~ 5`[8ʂp`OR _ X/ ~ 5`[8ʂp`OR _@ X/XʨPV?k _p_ʂp`OR _jj̎"\,ў ҺV{P*[r몺 X/ ~ 5`[8ʂp`OR _] X/ ~ 5`[8ʂp`OR _ X/ ~ 5`[8ʂp`OR _ X/ ~ 5`[8ʂp`OR _%q `a`"#??zG~_w G(K K-1@lh X/ ~ 5`[8ʃp`OS _ X/ ~ 5`[8ʂp`OR _ X/ ~ 5`[8ʂp`OR _0 X/ ~ 5`[8ʂp`OR _A+sQ ڴ%@ og w0?|Uoi?-* ~Qc ~ }YH-STgEфn(ʑӫڍs,7R"x"~o5TK5턐P1-R JvFT$,NA4+ET~3:ڏ΍d:aдV3LkQ2_"o/@cI-:ZĴ X/ ~ 5`[8ʂp`OR _ X/ ~ 5`[8ʂp`OR _A[; =YYrfȀDcggUBpY*AW+\ʥFr ?q? ʂp`OR _%P[vASBا)EBOG^\SLT!XǴ, k3lI3J%6шi.G s)QL+ZNiCAiysH҄rcrCH͹1q`J-B€mK'Hݻod$;Pxt"qZxj{/Ype 4} X/ ~ 5`[8ʂp`OR _@Q X/ C섞@ Y?k _pko`p?OZ ~ 5NWXREv-DSE7}[i`OP%lG+#L9\JYpK VA 9LN^mW@ЀA}Q`kjӕ@1w[5\Ƌ07i շ). }4g{ݽ?k x]qAk߸0'q)c ~ }l:G/s|R|+J_'zr5N{h}7&7yARK rIŵia1V4*/yFq19A1**oJ5ckY+B(VG6/O>=fa^߉\i7+8?6USMjzdk $CKJY4FW $aoɇ! Ř}er#w1q̫σ(p}@h25 \ۓDT[~dYؕ'j`(=G]&fv:A)q8~}" /_(XUgX:Y7՚k'`d -7t3ocb* _<_!K5`[c}~tA^b~ F]$/Y58:/K~s_Z~ə.ʃ頠Qnb몓_DCP:~tk܎I >ˎތ L wB=5a4n+Hv!?HK_  X/ ~ 5`[8ʂp`OR _AP-_L/Tnsʡŝ.V es,*+!rocb* _<_!K5`[cezڃ[LrAYdGD"R?Qie |Oa;j >GLFnb^T>-'q+;!K|;"`u㩿: J;'?ȁ [޾z/6n<'γ/3  X/ ~ 5`[8ʂp`OR _ X/ ~ 5`[8ʂp`OR _ X/ ~ 5`[8ʂp`OR _[ X/ ~ 5`[8ʂp`OR _ X/ ~ 5`[8ʂp`OR _A& `a`"#?ZYt)ŀ<qFoc˯<-`[<,@o=o!1>Vg׎q=쥨Pd9HYe=RaϬeo1@MhMwIE &Fo{\{km ] &JHtXFk~.VXט+%s:L[Wk.H塮HuμAB  ?_t-6_˧<t8٨4|+U7ܽ_p_ʂp`OR _כF uX⣫󘉞O?L"o5;G:$#)JXHowϳ28ϯі3TEQ/xM@;&4Ngn#]껭lJEK{lLj)Rɝu oKtN@.h, Y@zZ%.VTq N=87'°- X/ ~ 5`[8ʂp`OR _A_p @?_`C7o*Yض>B_ +lE.Px55/J-1@f.o_p_> S_Mͭyz{h{/l3=KeԱ'CW寧fRu,Е|_=B(HZOR3gz )jLS986 #WdR埽sf (u\&ᒶHk*u>m|)>@Ԁfs`@GRY (;"IܩOv|A*E|u!QdDW؆Pf%~*CcP+3rK lv,upgٹ6{b`yU/MjO8 X/ ~ 5`[8ʂp`OR _{ X/ ~ 5`[8ʂp`OR _@q m7 36\C -C.ZlȮ"/۽R&@oq%C?q1@>OWA˯ RUݣ5Xb/LIexx,nӱئƖ*d8!C߉2#*nVU8Z$I-p1z*-] :!!c4d^tz}f+TQH%!aE'aW@`ΒZގ% kF 'j+I*YDk ;G g+d8Ud@LөQ \k^C_Ʉ\xn 5 E4KgߴbK" \o}I "H TsE%U> I  X/ ~ 5`[8ʂp`OR _+ X/ ~ 5`[8ʂp`OR _m X/ ~ 5`[8ʂp`OR _A ~}" /_㮉%0gCyȆv$BySv ~T-xB?k Ӷ82a`o@3Cuͮ"뢲c ز!,pzYy@Nڦq8:A=5xh/ PaQy5j.PhE+*ӪʟQR}:aAW3,y[W܍f:2{j lxә$f3ь;W>ނBF&ZM @@MY\{  X/ ~ 5`[8ʂp`OR _5 X/ ~ 5`[8ʂp`OR _@x `URkmb+5`[c߸57Cd~'CWp_? FAbT] N)_eM2MSO@J\0 X/ ~ 5`[8ʃp`OS _ X/ ~ 5`[8ʂp`OR _A@ lT"#? "Qw%rlTb5 H3`[?ć?q@wC _yvr2`Ÿ;, *%n߄-ܠS'Pb])~[~3n;$DLN60e!(~N-5BXo#n@9h:7xiJ# KE X/ ~ 5`[8ʂp`OR _ X/ ~ 5`[8ʂp`OR _  X/ ~ 5`[8ʂp`OR _ K X/ ~ 5`[8ʂp`OR _ X/ ~ 5`[8ʂp`OR _ X/ ~ 5`[8ʂp`OR _@! X/ ]}zᅫAk_1soca}`\b?_1xT;;wb,uz +~D >X(dz%!f"Culj!U䆣kn*-N$PLKe0^\n`wlG2.F:|E__wa}VQף_dw>~sם+];Y ?pO/>?ho`=?i~?]8}UM@ڢ%{E1Zt^EPNz2~֖@2qS"<EJD o KQ[i齎mߏxB,DڌE\zE!jOp^sbwoI^te.):ۅۀm wY(r{U; {ۤ0W76`?{ qEE +#sZ/ B] -eF{U;]B9ZpNVKOHP$H=ji6Vgn]2@2R*@ʿ3`#mEm wȟ7y|JJajr^F[ W{::f;nxr"j(m\KjgBqrUC$4B6t6u[W C:~?ڤq~td}&=ŖKZWT@1%Tjo ~vRk޼~.m{2MԨj0y=bi$]m=#zAn%V/D oӱԕ@vتM54c -uql` Yob%*1pXfJ=5CsEcuXze&Q[jT@ڢ rd#8bМP,,QR ,g.%<%p/o1UKif KZQ[Kܷl>mFkh&AI׃+_AC$^TfL#"k"?j)1P}.%ޣ$4B6fc4gWs(Q_t5 cGsθmԲ>x%]<(攓 !@O$HA_ѥXMO Rdra y0K{J[ߒbY~^d>!smz ?#,W2Ri+!Ŋ=+z "4N_Y^܎#LAa6+IY !P|'ER(G<{,Zm2,'K6+IUko7\bG*&JIQd VC%-lV^$Xwt4JLz}DMJ, hݤJ[ߐح%d31b'z?"ؓv_ 599Jϻi+!v)o~C<;l7G7HX]*ٿ*˄[VD_c>(eV av/#Ez5)ڎ t[VC<^C wpC%?= O&1-$x$j`Q;k ̀}Q}'-Z-i+3#}d_|0չl߅^hHH"4b-Z-i+"q_+"q&kt>n{e446g? IY {23>kOl 5&eWR5D{ܭ]K7]? KgMhN$e26pik7q5` !1(|շq. @Ҁ)HGaILͽtAe8$VB_D"7R/6m[=+hf;rkxj|_ ln x]s}e>n暦?ݥc\;0lLQ[)uM@yjzTp'/*.B$P9lJwK{1bYʆq-u='f3 5h: P.>(ُ̘ʿ+@۩ߣ УGkYh3*NeBӭEY p#Po d6 'ijb9ܤh5 HA7IH}vL5W5%1$Rh%dxZHLctj")i(@>;&Qf9=N^%=G+bh=Տ#]PţZ`y5@Śsn;<&ϝxF?)8T%]KB a*bEc\%QVLk1ӚP=ά"?lB@ =B?*~78*pO摇l@y_-cW5\@]A 0޺'EJє,[jL^Di}Xnl3n`^g6TAgxPNANԁf !|Jlf^@j?Qh@"RGk<ɫe,~؇ҳRW=mɾJ5@' VEL/l-.Jrv8#p2 F'|W `?xo[$\mOW=eߧm|faJpi8`ւ/w]` 0?/C9BY3+/vV:#=ZsEP((rTޕTH,D`0P;̵ (JK4z򀭹j51K< wF},3ݧ0QOzPmc&U&F5W:0ǟ k[x ؙ'}@[_s,i`)Z̟qL"{NJ  2 yoX@ t `1AOcEsa&w3w,G#+ dkt_6 +@[B1_ )8:ܡ;U&@av gy J$ nT͛gaVT +/17)qFLq <57S|*hJF?(ypO#{8b!+Қ0fġc8dPā/UN?')Ig( xS'[q:#'  +lI);:wd䡠 4鯺hAFH l|"^<Dr( p($d[M?|r6'jduN{2Pm a ZMR v#&0Hy UORAK{6V_Px !Nv3FLL .qķhg.,A½$ ,u)CJfη_W ?] Bf0([G8]c0@Σz`(&D_2efP;h90t ۞Lbv-!fܘ.R0E{8j fd@-XOXk&mՖ2¤.AaF%;"tHu<= Z'@PS9RVcu'b0g6-R_SI0=][%4cB**,hF6k))XTmo@d|` NdgP9Ul`_֪5ሟ C I&L{xLԳ}cyVU+h7VSȉkTאۀ2=D98~k,lЁ DKj~< _ͿەoT>CfP_Jũ{¦6v-1a4@ ul3b2X1bv^?mx,p%ڻnѮg{dGmͭU _!_M)T ~ᓔ t*[m3l.b҅~li,'u"VP~7Fijmr"qQDXv^8:nEO5sUG6oܚPklQHHG$CqmT ǡ\i u quYG3^Vp&9_:I{,ۊ`S`$nVNJL;дtYLdۜÖ1^@4K Cðߪbgv u]q{)G .&=Z=FœRpBזa?(qp[sf'eҧ4"_>;f;3_[=a:&C=*8g=J2hY2o%N掴3ZaP~d艸«ڷ= +"m0#XKae Kʁ,o @|A":;\n t1ROmd/N?j /.nDE.q sep[nxSﰚǬ^*Wڷ8P|(LBS 5ı.6Դ< o DkpU&="t9JD*=D N}yaT#$ȞI7I8ue増d7[2u.7(z~K*P &7CЏ oYLJXɺ/n l\?eZIO4G#'34FVօsJjhַ)' m^uk2XUqvyRxaʽ[* ´q|aE{c~m'ױKK6/N-W>:tRXxrpdhefEҕp u6m(tʎ;8[^uWf\YyM&'y IxYcV)݇٥֋QX;}I|;?]m .}?YE e/ ('4ҳp%ɪ_#PBgu5x~Q'@4g؉kIǜ+PZej{l4om/8M \wS|`'R`0kDoJH7jQRrz!c@t`eT| O^r\e*b6` Ui@-8ꜳG :K $?Gt!Ix9 #N*VA !:V=颍:šjK4Y Ѵ(_+-Vh} <'1_8l Ġ7e]}qu-HR]jMlX$9HY.O8'm ]@d|&feإ`h;h( !@#r*DۄPf鱓@pמi@,Z(6j_TPtEt\VC%kh*h"@Ҟ~d@ȰQ@ HS ֭)dUEhI3!J"+Ezrq f p[`sM:FX=` HCQAͿY)m`YK1b! iOπp#4 6BXDU,h0K]r*Wi$͞S3v?^GPpw"^c`pqɻ2KA( OTn_:E.J@/0!7'#/w\)- 7iGTL9Xp@ۏ:3|.,oݝ pH(#0lKoȝ|~dcnp @E~[mȒBys|#v]A&fUU|^2n 7HyzP)F_^Q&)IP-PT߄"x2s}} 6OTt9Pq -\dـzh 00ad1@Ê?,7ኃ+0#W e^"8F~qC0n 'd@૖ u,j6Lh-)ڐDb]5k{㨲=A5 483.(i@kR탽$:8O #V?g~H)M`e0dYqv`Nk@HxUNsE?  { p( p*%>3\1S:@D"Q 2&(rM5(r(}l{EJ< bl<Z.Ά]vЏjWs G?"\p70RrtqmZ2&~rj~n0d8'~ x0YyL./_=o] AWk0͒CRr՘7N5X\WHSzUkMBKXgl[KYҌኰ!^ [vs 9ZYHe+'Sm&QqzGzyU @%""T0%I|~̦dJ@6HIWJIb4D39a͎1`ދPDd3ڂ.rq;ϱF Zpҕ-Xᏸp~E;`àND$5V3Z,8#B\.P_@1@i~Ps49cWVTh_߭l8)N*R)G*-[6PGg >&f,- %)MSa e,J?k˦z\ָk1C[耗/b5-Ch K puGjv I^g-5I!vDx $ d1`B/#aq@ Mn8ωa%Q|g׬4+?Ap"WQ~f(PJf/@M+faYW@2tm{;GFu{<ѱR'3s u\T `?SgOo7-]4"{lO^rG~s{ =?Mz6F`,63C= #j,Ҳ11r{|X(=QQ`` e* A\3נ'v#UA @7Є.1FGu^DXsǝE0@L3؎/%Fo#BlX4G't2 3!"<ܨiyIZ4$UvIUğLJE-:k F8hX$6C_|`+l*d0ٙ %I~~?hsPJ?¶ liܐRVV-kЁ}8I*XЅAR @R$"KA,rgCr2 rLTjf;HB°.2^0 IB%H;Š -B΃^mc zj\R`fXLD "Xz1\%ޘrpVxˀ|uh-V+f4SVss|l{ބ R2 ɯ5-\Uq&p'hGۻ=4tٻ75.NB& Yv+Z֖CF xBljatp nEe4m4*  M'_xq¥?cϿ`7=#M#>7)$oe??Jj#q)Yәkm?+h_xJo{N]XR̂о$rzMSGM vVA=@N[" 'lw ?mP`& dw`Et#K@Iny;r=T2(=\D@r#U0c^qCSG A#:^/D.' #8w7cR&iS]{\q%Pmpr Ȟ+†mpTY@r zt*RÇ<,&]zd{/ďd/2vf؍V>g14UnXxTsC#"89U3&ugZ#LCHՖq)*d:-"rȶU9128B3/V;V|.a0U76%/7R*͓ I 'MT8VpvAZam6FGH\y jpa늴J y曧nFDyW@C, oG̯a^E$؆K\ a\x`vĪL'fSxS+\k0Q9b4RwzfI'k8.KW>CTGb ߰;(%@0 QY{)DEaR#qU_G Lѧ#nR 5)BqD`B4QwX/`ԋAK#ҚK}G?S(B;`(G*aM^s"qŠ 䍫 m _i$sVHwS\""M\)by- wtv(;8G=W7L6Zj3ĮTE уG7mĠ() m ud֊GSM voBDKJtܑE,~- FU a,',[S l t'oDV/A7"=wH@Ei{,;$g'U_akn "LR255IQ.gBG_|> F9u՘)`C XonqeoɹEQ[Be̯/% EEjDxo>2KӚE}D_ 9E]D#K4]k<0{ߥ{)j0H4<1` ܰ|Z1sACx=O\+ա~ǥ5 =dA5^=7 Ф4وF7P,Ef,m+Ѕ0RT?[X(/",ѻ0P.I#R*P}rE1̪g_}9gnX0_Iؗ>ƿJEo 0EYI^1m3> ˺{F~r c[ H~_={J2`rL<2 w8gp: C؏$F /5҉0tfn!0cIn{C|y@ h -?YpMҪQ;٧7qa1}ɓځ%gafWmd ͲgC +abhƙPhh6#o!*p*=^BN; 6Pu6b6o3 e2E6,m\<дx!}q-CÓJwt%s'5Ei)T ſHm m%8m(bWU, sRƈڏ]냔tḅ$?l~Obmr.9UJRHABú, 8B*驖C >Ghҽx aeO}T"-h *U|VH exQXM3OćݨjG](ςrr*Jh]$,M?Nam8giё\GLjԁvhӶ"Lj;YE1BQi;:D|^n'3n!beuѥD=3;RW46Y>9tZ(B W)I*7 ju" CK̥5#RE QEYȥzϳo rUsE=b->)[$YX?F5uO~'nC@L*W}P Ø|0oidˋy&bKSa훺14/i~Vn/BčhWTO…z==tMhS;`Ed_8TTe# -)He%෇/x'm߾]SUv&5!c~v)+Fd3ƍ1JDѴ>=ц3c;.jXO}mDu9,sZ-qĚHuߢ)-Cb979/pb #s->bt"96ƅ+ܓi&P4$֊SuTE˦sFu=P\qps!c"_A ivd$6 acH;¶~_?cG\Z)qPP$8*ה21f{Ĺ9()fP>ASsiTz*O WR qRU,G'=}`*NHn<"48,H}!A=b0ӊrH9}`i!t?;|\A\Hl$vAŸਏ ފqm10^=$F>n4W䍬3xƒd|ͱFVQ%Է n T!%뙻,w(OV'lǃo9N@(@ Ud,(Z@o (Zo:$L1~,;%ǻp4p"wZ?! ɻTBw]4@@PtCxO\lU3,6 `vj%s(5=D .y'1戓)QD_r ,=&Jc4uI@^~f)^=02| CQmJ"tUw҄Mx4ݧ[89kh<{)Rd( =| gS )1Yqe>|=e=h؀DiR`Q*oȭ/6DIz=LDaͦJr:e8^ d~@Vx=BS"td[*k6lt6]',[l >P=6 _ ,^J?C@s  z1D@ юɢy!- a3z0YHLE !}D^ G0Sw FrY!˕AWW5H7MK(kHFcB%# ʭ:L%M 7PŒFmKC'/O,U;d*%bY~⬉Y%'ԫ ]?3 )B39AeFǹt`cQ;H_ѱ&HPaP!S,-AKGw22:PٱO#`?:<T1z$D!7$1~@ǁ/}46BF4x H @nA}1^u-UH Uw]0@'}zAs\n#bW)Xr- EPC#~%~zVep ONRmL a%U< `Hi$b ltmsӛ֫^@*܏M޽SvIq=H_eR/29q >HJZv&k4״f\>Yn5z*X,Mmݷ039MZOA5 D&v;5lxVn>'e@kkf7m ޟ=Hg-RP;更$PuvX2ܖ|T/:"Cm@QbzO;F2[ ],} Mq}xY\k/Hh)w9EVXcs&rW bL7rnb:o}'ӅE'E|F H*X= \e9+]@tt4yP*0ٰ,/{@z5%61e'y+:+^h?Ca1ҸhE^BZ%KSZ9ކ$<y@+@` q"=b  (7 -aQҙ$ŐS3' OʹZ,NBP츦YN2 *83OjV |\i6HgABSC&Lh8u %óR~ƙJ%s3g0J#b?L1YQms"7pn{irPw,,#rX|PYؿ#P-bQ pa^ Ӗ3/4q@=%m*X& 8 ,jb\hp՞i7Sp`kQЬvOF:!;ՒRD|qcԜx-\N%SZ1rx=514&39x_DR&xf:i 0)Rמz׽O4e0矊95ń BxV4uhd4E@`۫Aվ̩-+R1"ҭCkmmlLnQ[̖<my 3fvhPF-x]W9h Xv2dTK%Nge)DL{ޱ(ծq&$KCwW D"s[=X̐$ =B}O#kCRD1p+# *^mat*Ex';jyM6cڄI; 65$J;%^8q_9<+̣A 氏Q7j[oxĽ> ZnaG0ZPHS)"B UhA6XW}5z S呰D.PpiPa~T`m.'7,k0 QTb88Bį:*V]+} B+D1$ŸZ{94ʀ"kAg &羰*;^m  CD1B!RC'lY|לzhGs%h_;ls[д!؀OsMe]+%s| =ļS ^q4ezXh,{1k81fO>qY%d MwJHAZڬԶDQaq])">m~gV #Y 1N{2@In9: RxcLp#s7XU/A<<@laQx )]]g|d4g`. ( 4$̀7e\;OuՈ`y+aX&ҒO i@|%PGAJN2Ǻ2!uKXCХVX L~+Ęk0B@ϙ#5{M]"U\r#L{4nj5wfì%Y}y`]We%JVJ}~a|2mD(Đж!am.[S˩?=Y7?Ӷ*~ِ%y6&,FX[G/f?0aYOp6,) V3K[;i̓0M']!ґܶ)Ó@,wйҷXU,*(S;3q'M׭Lp@T sPkׄ*+@3V"43lڮXW<=Uǃm;:Uz#y( 9a'+W樧4gQKo2|>,A]+ua(; 4uAEGMb$C6HQ:9]ED ਄B$MoȚfN?h@?^.1p^eΜ،d}3^U-R(~Ra:MÕ+h/8h[eN>V1C/9`v5> TѷJ4Á b&xE#k؇}]7]d#,cM1ĨhH//tR` "Q2^f)>@- -Q)p5KNףgX *}DN)ztʪպV9$ILT QĘBkqBAg&L'f(S@84!U:gPV­TϹV.od }]m{ 5#O],3?͗FH9e1۫RBUs .Un(VTʗ'ԱWېGf2ͽug(`E C b,KTg5޻FvD QЗlav-}YрA.U1BM,F/|!4$%:%TR5F!sӝ3DC]Ѓ*y$:+4ODŽF.Ӭ3wcqe} P\%5LHTq|:HFg*j+k̓:Xj`Z)>{(4e6.J o<_b`R >F@AosQZΤk/3b8YC( y;rҰ Hp-yx&{2YaqIL0ʘ cOO QLJ&Ed@l-Wn!J€eڤ`^sf'QSm&[ `~iB4Ɛ*~o~1ɮn&@ !$D?@grp]ixҰ/[~"dɱ~0!tiQ<}%yR7D3H.:S﫛*oswփYa3PEmq+"?5}]@v8awႻF8FhL&5N_ŖKZm-Jb !x".}XrtΨKC[a&R<# Z^` Yޠ._%]{Ȧl«@aIx`4.-h*C 7ɠ u|}] KmkC@T%4lD:2KaOD4 hij&E2:4zHxBew jy.XHM_.0[ֹ RWw4dC,HS+S($|;ė@-+`w:xr)l>k`"|@e5g*uu)m_ vʟ0~{s`B [zEqdxjv~:O#17$)(FD.?˂kfF4tlGR| ֽӔ2°=d +ABK~$)EwYߚhȅ x9( ґ@}^ow -v0SE0.ߞjlX- s7XEIxɭ6 p#1 a% d4rM֝A!HUI34-Ǭw2?wP{$M?6:)i#tvh@4/߶H3qMk̲ʝـT#7jx՘T D8倮װ@."KS dP[ _]-^y,>pc,K})mSUS\v |Dj~sd[ XVLpGu&uƚ?RQ2,o2n{ȒBٴl;~L(Y8%< ;#=/i-jv*\HNd=y<~ѥ "-y8:wD,O^ԟW? T/ր<$+o=Bo)(3Q~1!'iSsZn>(xV`ǁ,C< vbIk6s@%!+kˆܾ `9n@O0-`*׍!3Vh ͷiVQ$Q!D6 )JMMkr۷g& ` N{ۉS{G5&مt9NA=xwed.;f|FUn6U(:6]`7BYלRq@)ǖߨ q\ ˻uUf`'-yl|^t;0j}Yp X4=8g+, t (ȗ(<e%#J(>țb{5f= srfrd TQo{3ׯM`VئW%Βҿ(:0qʩ® tk}P+?$# @5x@n< >/ $›ִdB)VȰβL2>X/_I!o3@TXc-Ǽ,߀$r4đGI&uw/ d8T+fۿx⣟|6bF ''GS$o/hw)K윌AQ//yLiM{* G+ $kgu4ͤ\֍c%@ge0HAMy.+6dq@w̩hߺ!UN#!\\݂Pa--iN-▨6%El_$;W 54jZbǂܶaWOvroFhОǫjGHkK+%ڈAZϦ*; knuY4hWZȠDܤ3V,Q7dxo+ߒ(`! B0%.YcG8"S*ʍ P `TCfx2r*fsBTTRhzĭ;P°{8t#O.9yתÇufjKp@0(WOЧ)4)u8O9 ĩ9 ɼT726[dDdwJ/vA2ڑq\;4/N/4z\ O41 @-uFFg׬?^N0]DP˦}y$ǧ)1RL#XH˖sq^5CBb8K޽}0 iLst;$+NZ}bF7XtΌؾѓE `JI$:&lpu]yľgo{q9&tGDGmjM&p:i݁q/R0&Z( 5&E}j%sVnAx#z,HTBG\YL 3C/-4?ȎepW޵co˿,-8Z,o.Gz QJa8"d:۳OH/َԚAʠp[Vcq]JR `s[;DYx ge#hd-/*JJ(^:ly?;_Zk|Ľ:WxU!,EV.;IoVY'Ѫ$s>thp;(L[1Ѝ|c ܷA h@ѭ7N\x(Hy-N P8:oa82qL42{*ʲU,K.c DP8~Ed/ywf}Kf6-Z>"XAhmr^ص7fSSEejn)8ek)ejJ4 7#&:ȌйH"R$ *=[2b1S܁(lB@?(qsw/"B 8豙8ӔX%(-樉Ȳ$Js|ksWrtrޮ #9ٱf}97U҂p ̨Ga >_# K*ʲCBvב5KW .ToMN?)GBYge.w2f%[C}cR`*3B0ι; aoLw.]ӵxɼf+rmyr1X[j4]z!5B~+(I 4[ heDO @HV$'ೳ4\q}D:'FFaP,,p2T.Vzpcow!Krk $u1? ڙA_"+CsQ .jtVS:nMq.Z9R/f?zt-[Sijet$F4>bKF"-F>4%{c SbU#{ߺdHW_\ rJ$7V`=κ)|.:BqN51J Z*"j 1"YBB`Fm&M'0"3 ywZHPEqs-HV)VSR9r#jZ}H$$8t9̒4#lRNb|/ `O*zPm'{Ue8xK4׀?tEx1T vSAW_>$k0KYi*hiu5@C@@g'eJր`ɋ#h(EEX"M3Ԩdx%G5a2y>V;]IZbhQtGdmXiKݺϠq](|?,3& ,S̎ղ;I^^m ?1vwicە YhLH R%[MӀ*UP  ѦVmB+2*fLt 域M%u14ˀ/<[&GH# gQW.?f!qn٬seTǪD Er롍&Yg XbI[!吗 Է$s ^ߚ$oQgtwA%@3QvdqnrM*SP.Uߡ(Gz6!?kjTC_|"@|txNf v1dbn>.q%OT¾X,%3i3U'#KZ4Z/Vٽg: b lo_Y5E>!{Ncouiڠ8+AmbK;ϔ1vxN's+߇#vZ @M3gk(DFwU;f?1)e C>}L>.9KzK?,󼇑6#K܆&YLq&rZHXX C]q.*W\jWm֤"UPdUbT_ݭahsMs|epLVO쫽#˕ ]f(|+DTCF&d a,X#h.8Lh$jBfj2we$n[>`*~Ix[|.u_' M|dHNܬTܠ'=ͯKE/ xS oFB4V_S-CFN2S=EX7q|ЯMȻ4v82TZi"R$Cx@7%ff${Cfy:] YsHa$WOJ,x/09[Z$=m}4<7j&|BEmQۥpg֢`5an4HݨCa4fRmп\n%czhm{4ju%tKN78 ko6Tf$(^:x/$d02+A7FǣQ1@0'x m Mw~infW@{_o; a%]Gz"0 1e!d`/3<+BV6F%VEMݍ,$Be L;3-0L5Z[|n$ ʛ_/pNZlx5T3KSgS}u̐t3WaC#9ٳ R3[sSAgߐ-t @j  ^hJ`S "_r]ӞƒX2#oQWjn%gN~a@O:rqs_]^5Zpn"ш =="/c~Jg/I8'FjP0"Wt};_ |-d$rJ @2,q )8 la;]~ir%v-e2նCJ<ĵb}+4 }P^BE+74׍ YHjGS;Ec\@2D]<0]R(89΍g,`+PYz2L6EjR7WQKTBM>N6ЮR(w+Y_`JU! ؑ9c\7M'ܾ%N[ ÊrhffgLؘa@焒7plh9x 1fҷꥠΤ@܎PV%T$v?ˏUt̵kal65dl+҂Ff4uK>*ĪkBzcK1@R |r\Y{(m1SINW8xLXtw~HU]7?\P_M=$((XUH`/ۯ;_ Q+Z#@!'}5T&|+)*@Hƨl 49 H~2 QQ ä7v52)@%?=wAU`wkǀ_I1ӟM;"] U^.8qK@'P>>g|ˉ!XI,JksLʪl'%$*L;U꒣1/$P &u+{Vdr"WE_XPXl:rhƟp cqΟu=E_q=mk0"J@:UE<>w6%j8m9Z2= )  첨3"ǧ׌@`r ߛa&l\8WV j`Uf{ }& ."'x*bO#6W*.Hҥ,pi5 ]" 5}|USd\!=5mw7"k(ة%2Jq:žc-A\{TY(X}hwUz@%v"Vv7aSi;Žu걝E&R+*U)lP?' qaMH6Ul%Op F a\&Y6 svq9")YY>V.p@yfq>DTAvb9Ux-eq1NL@}S >;envQ!Px-dWG[dmrl1Lڦ.&Qo/%r{l*ԁ M&,nvR҈bp$TX/tA["]odssGs_N#*5HGs)ρP77|HV/h058wDY3fnnc!P5\$N[',X~bWvv ql,]+ɶYY"xO $(L4"upqЀ, PݙT p h\YPM ڏ gf #(Xq@yrfKkk `0"(ohTm if8,Z!Lp9e0 `BN_ahD+y=}o  b /״ڶBMO`vQ P#2N[^+GE2X(9[Z\]zj\:bz|j8bo3SuH_@!ReMhZ!( ^*ט@8*h8;f2AAKN+W6E hn!x}.P[WKE8BD8B{VRƈ0iǞ b 3l&f `, ByՕ\h"r9沂];Dl0-!L#962  yŀvѶPˑll&jIi{r4Knf/B+*&bwB8njQ8J,*8(*z%Pr8K"6$SΪZJUsW3df;Ny-jXF#}_ јʲ[=*!{ П㈹ RY2Xs\,mMbY6mUCpֹ+*>T"[Azc~hg14D8cMa%rKV%w36 H4]7=\(WgX`N0zW"' PN?X#xrY@Np~p~{`%Oarܨ / ]F|xUKNa)k_a1'8A$*gTw gRdNU!eɳqH+_IMG눺bL5$?sʐ5G{^)F~}Na1-ҲԞ< v_aھ<0] xuB2iY>b53-͖UiGBe| cM* 04v˺"DܾOgޢYǑ%ԹaO!um!c}&6Frۖh-esx!¯U0(wO%>eY^Z#za}@ E[sw2fo'>iR@TJaT`O@A6V|xh34nPZ ;5$1\sy`#(v~(3aP&)^,i0@7Seەz:tM?[aMݑYazp&($iL>AG!$?@`K*Y25QÊ4qltJXb*fO"*,v}NE!GA>D Td(6G?cܦU*`4 OQ)Z 醭y۹Ov]mIJz·T.wHT?-gKѧLɮ`JQӶm ;COs0Uwu.jj"1$lsv`["C ^"՞ۂU#PKkj/t_W,]tT4 }vQ췦nR!߰`~UښX$fhƁ!|X 9 ~wX#Uj# f:CwlqzT_;AӀzQVlJ9Atw7|'dcgcw`o$ ?~2ٖP𸆷ƚli*<F)M@[UQSQ#r~A\?YѥLgw W;T1/PZuĿSNwSS" Ĉ23Ys;̄Hh :w͊ fcl9Ԥf|d `;naL**z?9MqکjLBsUCia`U$R6/5/1G^Ҕ>Rd(yVӅw[>9NuL\e{RXZ ];@.v܌ixd0ixmqx#G㝢rU8$`?,p4J/ay?WfZW 2@w׀L3Km4=}s6+5LiG3TW#S:CD`e>c57o%r(z"@ո(#/ TA׍:U*e6睩qrl3J"7ÄJŰktNC Hj wnz\<u6;ă}|@܁ X/ 9 697`9_/і3x]9֬f/l /hwj+7!> {.u@`ы +EX@*AG D &# Ai1p/ P7{"FvO_7̆]p*/ ѲY.4rӀd]y. saoK1M`V9H1G]E^my*PU柱0 A@(PM W( jYـkm7{5Λzk 6p1mNa bbb, Xrna ip}e  _8֌0a 6pkA :r3[3@ Q>q֣QƌUY YM[](_ 6k4f]WVJF5%O6xڟ(סZqذFѽR1R8|iM~o>w|ćyl hn8\M}Ss@_@r  iZXuz^3XM X/ ~ iW?hW9Kko\?W'/o?# %?o~R_&iI?N#b }sM)\l~@= 'UӺ#x:=2-engUX!=)0@ ݜ A!ǚ*GV^@=k3%6\+~ߪH;`C[áݰxeN{6XT[4:U"hm">h)o|%QX01f#pظY4 @'D؁ǩ=yOhkqSyuSyuQE:IE:IE:IE8 c<lVr}qGD݂X޺ͮw aBv_sUz%q^ vm1Cw+FZ. OKUwRk 3f9BuyM`K}n TE*=rXwϣ嬴BNQDAtω:fQMr`̓!$$a56C^Jd _tXBfW''D< AUxknG QU-Gm8q^wn@!OiHHΞ‰E3T}6k~Ky875 dԓ{naYgq`xǃYt-#UBw&K&ҧsM0>Ḿe"y [}.1nwx't;#9fRSbIX25ތy<2ƹU(P6MwcP.(Ζ~>h_=M3/r ,FZ v IÒgz 0uyhz\_ӤF{ XQ\ GeY9=W,'Faptm⍔'?a3ipX}~G0eJDp 3XM-\4ØllkȈA &e:dz~w l4k./$tmowz&(ZNF!_3km҃ )[52~[=Q*=z ä&Iyc`[V P&b-eGscN*=?,?`0RYi>'kzگtdCqTKЈe"X ^iEOCsߝjOODgr'k|߲$6׉<|:s(&Φ ^'0Ђf&i Mh06/:?2G ;#=ZN\TBO餜2< [F~7枘cSt1O PL\Tng%NJ5sꋋ_>+SiAH2n0#]#rIIl}!%9E /I&x]=cBG ` ogIxa^]\yovz-Қ(~vߘu8%|?%z3 i YZЫ'Id6ʝj!mXs0J 0J_ĸjΐDP5%rNezL[V =aCpJ=#vuvb TTr3@+FOfv%6FvA*,܂b}a@J_N9NFor_AQN7оY1Qa.LdJؗ)v"<L#>5l Zw.V(I}Q3Hg˜;h#P>e9xi\{H5qEQm&S|u 'iY"k\@ *,4|tGa/fFFñ$%xhvO%e{ۺa3ó?w]ftg_ERڟ(p̐89tԜ9A΂BdC;Kl):W>DſUQj?xB5h$ٞM^P޶߻JG0٣}OQQ^nIgPHi1PG|01^Z+pf~CJ/_.!u[} #f#>9NGZ>~ƌjo?RT(ӴM@'6q|[+t+DMWYg.ElZ O BElP]6 .Zդ 1,S#TM@@Q uuu"72߻Ͷԑ1r qbBEoq"?k \( _?k h* 1 N(O0 jDCIUR\x*#j =0p@C0x>M=1n0,_SLk/-nR a#zy& X/ _?k >_p_?-@+ `a`"#?5c _w ~ 5`KOm1 X/31VcQfd4mfe4Znf4b(qHh4͆h݌hZiE@@1 X/31VcQfd4mfe4Znf4b(qHh4͆h݌hZiE@@@ X/$+ +[ O;9kCAl6SEfcF*lvp 84mfe4Znf4bvg4 [ C+b)󳤅O]/XY-~$+jS (bQ}BEC\pK<'CLj'c: ~j AσgW WBJ{Xj|z+WF 6v$N$z%b.A@|+caJNuEK:r"fP+p <[Ⲇa?ダU޹x%Pqg7ض/")+!!\3I x+"mW6m)4. O':~>$ va:YM;&TRq'E?{դQ ` ȸ{S~KT K<:b=KW&0#j6b 0dؙ,1_4eEiA uEKu@Iyk.GK{"n&4HcYw:=A\K< ?fiݓ*$}09B @nwsQ0Ê8?,nJ t*`vxd?Qj( d*`:`FMUz 1O͈M#QP?H:g hv# فJ+0opvq# ٜBsA.ITj~av"-6O^xke ᶎ's$WZAZ@x(s"}{1{@`BlWn:8o{4܂sJd3y1 mc=hdtz"xu 8=rn{KJc,|3D> T[PX!HRV,ZN=Z"R\LX%2=f؋Iqa 'dqf lڱ~D2T_Gn'6BbU 3^i=CbsAA!YL!v뎦wT%_Kλlbmӭ_r`gރzяZL1A@- K~oNY<#5?\;0w/+?xY-PG.sv**Z990h%XIBQHK8\,qKaPO$=MKOpv{ׅ j[.7-:& %$F+;͘PB1zh@XkŜգJz|P GV;)+F~c`׷2L E=iZF0W:*@pp+S6$`!l5?3bpҾ HWu(UEumK% Ce ʹ>1gp$xqB) Tհ a @E$]&|6)QP{YP\c%6$ X>"c+s3돣f@JGwſnKWIY0-pOMW! -ϵ g^]d{Q!7úQ+,\m k 84Y x4W.{ ?bM`)Äg3I(2)F0<2a[{Eχq1vÎ=N,4h÷j\jBxH\mD0 #`Y%,54CQ508kJ@_508kJ@_508kJ@_508kJ@_508kJ@_@Br*k0K_R =cQ,#Jp35o VQfG"! 5ՒW;g Vݟ k#-l~PKD&YR?^lؾ76qHh0H X*m*Yfmw03izh(x4M!1e?Uvbu"E7揳Dg 0"Rp~ #ԣtڎo[(p91Eg ZR 0^8i1Eg ZR 0^8i1Eg \r,IEg \r5 s Eɋu{l3d@ t([ 606<@Dz ]zk?ڽeg=huƀp'(Q(..qG~MYvSTB#=NSﻏ). #[Cy )4ipik0K85*$7'`NzUie *NN˄ ߲"bkn|nVǕpV%ݍi}-4*;F|y^I5ۀ4 B/ *Tk.z <3)&hI@Ą2.dE' ^u%#m*l~{tL( ^¸^ ZF;RAz6L O0GU LO xO# ]IMGܧ= =w  hb*CPԼl ?ILG}#P cL<B PK cy5u`ЯHPd&Ѕ׫ͤxǯYQX$` I$&W7%8$ˑ>J?LBQ<&!CKn$XYr8+JIRB"rPz N+xv̈9.%u@5HpĐ΅ÏT>E\jɘxetJ)KIȤp49?O?3]-/a 4|]*FzN=D200KV Yh/!J,  B9Kt(~37*#8Gr!K欥o7쿱L6 }%%jd( hL4-oI̚-td+pQH M'x YE+%Fa)(fDR4YU}{;e0 \f ]k1`Rٙ3WsE"ٹZ (+0C<] ]r."21L逎2楹8 Q! 8}eP'EƎeGK=^H^ꕀsڿ LHeM[;NSW q@/Pzجi@gKf@!׻ 8PI(  x:;H $k(/T=l@7avLt?fqc_?*{>w'T%8,`t>9kLBV§a,7C(١EV 1~BNd e|r"5of^`\C 9^ǞH"F3fʘç\i)͒:vg/=XU{دž@9VR7`TՃ3xW|it3ig`6|dS0L$zfaS  Oι @3@Txjt|h&y< t ,rpx ;e\v\0NQz6-دIkM.̧Iw2Eך\-\йwX!eK?p'umvVSg1 Dؤ/=ȡ[.˲LE>1ֈ-}]04W+_6 Ԅiptdbg<,%~TL3P}80l3 uå*ܞ Xvd"לX 6I\'̏oݤ* VnS;PS!xxpG'wp3nb={}GWòo" ?"K]2v$]cגS >?0-@~xBF ۠'*T;ZPMKFxeǠ+Ch%^3JGvQs1r0A47h+UʳўD#Tڱ}@'JM`iIՀŽv,_xs5-*gf/hI"2 5JH(rFAY\2k_i8wp4B5ڃ5\2Qʦ%U{ӣaHwĮh_R1|<{m D?OweJ\D Ft hkC M:9hix0z!}ꦝڵk6)r,4:^50?Gv'S \8$e,WiS,7*fmuF7U+fzmL`mj~Ľ(`7$7(^p}|, q0}rO)g":I@.L9/s;tr@mSa hbnb2* #I`+ՐXHs+ 8P@T,ui>u!(z?.)]s196&FZ݃Ϡv-&&t94-2ȋ.w0tShR<" 9.MhS{/]yvZ*P\?Ӈ%@cqfqlݠsQ8pcU87ꟁha Q{,~YC'5:'A#/*ؠ#^D"8u(cHH  .B%KI#qBs}HdIYqAByS|G$qoEZYIeX< ΏI3qNG"8#%7٨hp p‡ D5۹eq& V`0v~仜ۤ]>+RLs ǫ K9Xd\󬛬;! B&ء߻ݦؼ\,F9a'} u'j&t9}mb:sn0QE wPGZf}-z3RGyM"(yT.M\vzbB -Dv;ޞ(;@! y|tO; ] x'Jn6\2P3$_I腶Su@f-E@f\oƿG=KF t_Ȱ\f|ihQXl#dmRϑ$@e ]5ր@\&I ։Zء/v2vB,|08kfI3qMr#Y@X &nٓÉ9I3(d4Ng$#wY cu G(N8G\p,mVcKzI>+RLtI OkEmu ^SnXC,i5Oe]x| Qzx6#TQM2qlaR >k`%`Ws$ $ήÙBP @ך`3Yr8L&v΃?[{o;/ڔއRglD~p-B o߄}ta֌'gk*8~őӀ/c@Z#0A%M9A0b:x h6&ĭuy3}N Q-}/#*RIx}f.l\\%mE]Ͼ@NKbġ,@ ` ^0)W\@~ [ `7 =+_IoxH &EA#TtXn@k>'(2a}Rl(5Z!S ?9 n'M"61;х.6D_J`A[)=Ncl Pn`x& "7101̂*G0җ)^fUL[ݗR Q鵸ʼX?\r>aE, ~ƛt2+.80cw7e\)O-֣:UhQ{cO(b53 lX ;N+H!5}R@vEauib YH?IyhBn.g 5 RNP`}Y\BԮ D@֥EȊ!UWse9_A\v5L\uePo.8XsWBc Ԓpm0_qEk-ms/湈VIk3CB%{IݒwZ9; ~eyL/\馶;"%6? %v^Sڽ'.V\`hni.42rPOGgjE.^*,ޓqP p[꺧2fLBQg4S,ELNX `B>pnn}?nX`.13֖DB ee]wBM:Gټ5tMK~4GYϜE♔P?UP0F<ұHqBZtC^e"5g 4e)R㰩_蚜@M-CCwJ\ #÷S;FYc[VR/f/exo{?XH_);rq(ċnU\{}OjG\k$%Puit(ʿO } ħJ[:rK,;sxZ#Q/VC2}y@ʿ09\)cx$7a B3ހD٠ ʬ?~a`,6mJC 7$EqrF!æʱqyYFƙF}:UJ1F/i!DYu+kVv=U3SW+MkT[|lLNp}I{3`iVͦAsz@3V~4 mL f"n˜sh'aћ@+ 37,e"pS︩0̫ɛ;HU4_WJI4\gؽld4TU,R37vW@sдun+%K#FfZVؾSTU W R 'Q\WP mSgs3}Jz54ܭL4G mމ 낮b6x 5Xc@[;EjB6F&TĘx :4U؎XsLL@b F~8 =9M ku7; |~nM Ry8lTTwcc2PxՂ~(d',t9zrÌl6ʩ5=B |P 9cD1g@P? 7@1(M31UQdh ܀ʋB]'ؽCM{CJ9)-ɳ zBګhܳ잿28AE5+ZJո S*JBeBR猂ZNx*mjV3vB;矈HU ġAB7nwS:]A2ntUx-~݊rbkƑh9J]*(,!%$sLR`&vabl8XR"b;778o}`{A3,~axFx/O6F&h=p RPy2Ӟ3;"*_u.fss,"]6ۙx=t|{c:߰/L1U'%o] I뀖ZK  j0 Ǟt$pVDLa|#+iNDWw!d]B\ P~]b?В'0E8WxZh9 zlps#'m-d-m9 U[mP$mal aҠPw1lnqD@ ?(˹: C|Ӓ Ůl6'Ωl[,FçB^xl/V.򕡃0f]f='*S 2Ey4&iM0)޼Ԟ˃Є FErfKBlYOK֞h_6<< 9?L4#qXF6d ]%T@va"Aa9wcyp\/&pbOǂ!W:F<*/e (,#*T9  :{ˉg;v\% s+pf[ ӢDdl\[ ݼ.ЪG8a˂7ub :@ s\@S.œ1B  <ExE9oa3 7$@P8e7Bie:,R''.O퍈 EiZ7+;PЀBs.үH VLl[ b?@F.P8тySpJt'O!}˷.ۜ%`lF*eT)p<%H(/bB`6݇|t􃽉h^ )U1'x}P7Eň[r#̊Ds!"#]sy2QptLıęk# vH:M@P@j8-~2 h-a<CX0ܸ$0g@"! mQcԿNX9N8Ԑ^"tI@:b1O2r-EPx H=I-[ e4ߔZd`f})G`3>y b@5D8O}ΒP,Ckg76./OӸ H\q ;f)l^Wqmo;Gg}f4C)h5O!jLM|^8mԾdYAY@;jTݶ8zyX\Zf?џ^j?fl|%,8j@6G"+P оz 8 #eI. -i1kIZLAbX3K-M&-i0w& 4s`o "b)7g#)`p*Вd shfao8u 'i\9Z b=2OA&Fz_++5BWϊPQ6XH$$?nHyNE_<5ү !ˊak~V[ 2B᮷a_5.k*O2~ 1rdmRቓ WBc{3M9N͇ۉMU#uTgڠ>Jj79d"bU9W-$$)JAב6_=3*R`mWZ&R~HHM)0 ЍWS%;8ֻqf$|u@ b%T@ϡꉗGlWNIU=DKBhYnXNl*0EEA`]^ Jl m2T0Z[5"ik.(sFzhi#4=B_>1m5SO >:;x73M1Oo4~}HnS}TLǮt=]( {`ݏ y^r֨S2H (=A|OGn=o j CX?j)|y{?/c /2O9- 7T@ @ `a`"#?.'K`[cʡ? ~ _? p\KX/31VcQfd4mfe4ZnL(lvsJ,솃MlQƌU X/@ P*T~^5mmm_޽_AQ'> X/@ P*T~^5mmm_޽_AQ'> X/@ P*T~^5mmm_޽_AQ'>U X/@ P*T~^5mmm_޽_AQ'>  H7$8t(~*?[_mmbVu{~"lcf!I"|V<h5pmgo=~^=H"4rT6A+2 ` X/@ P*T~^5mmm_޽_AQ'> `a`ߠ" D k}Vl)yyEEk)و"v%<k[FXBcrNA  ? і3EZS Z iiifUI_4&H> D@8'_@lcf#{CcKhڛKڙ]ljd 8d>UEm0.9> x6DpfR yWx.1B`=ꋘpt81 J<u-+ppK_M{/vɑ}E0lj  ( X/@ P*T~^5mmm_޽_AQ'>ځ kdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ A dX/31VcQfd4mV1/Ɩzm :mG!rE)PTlR 4Znf4bvg4~h4͆h݌hJ-=1܎/:#|\m&}4@vi5?8d*J把R 7W&_G{DOi>Kħ ǭ/\ [ځ dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ 3dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ @ u dh1CF~`݌hZiE> ZުkM.}6SEfcF*lvsJ,솃MlQ@7I(p/DK\iD}OEm 2p;P웒p q? _ Q dX/31VcQfd4mZ D%kCAl6SEfcF*lvsJ,솃Mk2@A5 dڈ3 fcF*lvsJ,senXϊU]e\{-?i0 ګ~ i j5ъҋ5!k6O r$&H?&8 1];<ÌK7O·6N1J({Kϟ^j-ഒvdc$DXuyf?tm|[]p6ot3avR.fl-:0l)&&ؽHZt߁ =dX/31VcQfd4m[ ъҋ5!k6)kv31k;9k`2@A Q `xcϚ2@ƌUY G >>CAl6SEfcF*lvsJ,솃MlQh mwcت kdSWuF.##Q#@i6l* q{@ #7fYHB)6DKhvWȲhtS>80^[Inr? Siv|m1FmX))|^j;@H m^|`iWzʣٱ<!AdG7e*1DoF>P3W\!Ζ:5h@ D*)(I-@  dX/dx"q~ _p_?-1@o !  1.c󟊇{v1%#U8a R3b-ǂ!@@ Q dmcN,@6;9kCAl6SEߴNk@TFEts YM[](_ 6a G`%"\O>@)TxJB_ ځ HdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ @ dC]]р"lhZiEiq̉SAVy#nf4bvg4~h4͆h݌hZP+,XxbD0!:[(MeX;rFIJS 6b` ZamiǗr)[|?&Lg,NNTLRC0WFݬpo\>~,[40bqMɰ+XM\WAthXDv?MSR`,f 0"@ z0|?]@q dX#N,D vc31VcQfd3">)K\Ӵ15@>:WCAl6SEfcF*lvsJ,솃MlGc(ĉ;Yc#q;D>'ayxBDVZK&jɩ-jwG B;Ycl>hN_`5tA(Z; l$l±ma CIYb8`߁dX/31VcQfd4m^ iEi j5ъҋ5!k4Aځ%dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ @hQ dX/31VcQfd4m^Y@<>Poɪ~ $eϻ4kv31k;9kCAl6SEfcF*jI -(E/aŘC%@ dX/CXLϣR ? G_p_?-1@o ~ } F%d9k6, bc iaQ;x;ؠ?}ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ @܁0 dC]]р"lhZiEi}鉾-#3Js*~o+:](_ 6a-Fc31VcD އwzO&p&)4ѷܽDhH\"MHuW0xY@\o[+J콸4G?Ji|&I-^1UŤ%HvjQaځsdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ AdX/ ~ +(`Tr`od91]= n(#bh@ Sbs= ~ _?k,+p4= Ìzq}"oXGS&hj!j4!eGUfL%){"rR7Tų c#»wjnPo ~u P@J`[(߁dX/31VcQfd4m` h݌hZiEi j5ъ@As; `k'ߜ"| nd4mfe4ZneP /0ծY YM[](_!}E#II(v ΀t|AK҉7t:5x.{8"O2G ?Yϵi|>K 4p^5Pk#ܿ3 ~28KFDCF Te<[LLʅ?R"@|ju`!0,,V֞"HJx# q(z2N%N_d%`3$6oFDh/ CY9Oi0ځ}dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ @E dD+]]р"lhZiEig?qR+X;t ΦDal6SEfcF*lvsJ,솃MlQ6T"0gOm001ʹy}Mٌ ˊ_&Iȅ7ӡ*7+X`ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ A dcMND G5`[c읥ka^/ԥƵk3GB} 4״][F?k _p_?9@Z:72$m7,e$1] " JuкU:J~L;O"bbŶG[%_פ|vtø]GO-m}|tW-˼6YkCAl6SEfcF*lvsJ,솃MŏBp2046q^՘u  #6+ dX/r60oc߸/ _?k _oeJ@Q dX/TfcF*lvsJ,솃MlQƌUY YM[/A1`hBώ@6;9kCAl6SEϾ|nq^,FY%9j @@UH$@30 &_ j5ъҋ5!k6)kv2 ď AؽhE/t]*vg_kZPk F1 VtmDcG0pqOqӽED̂|F-C/woġ{[)o4iNU6R 4A0cpk%0z,S|&rE4ňZ/%_t"~#bpP8m({}I5RMa6 :m<7m;#.H:1p(3ӄn6e _ E\' ΰbD`)D='h@Ё[ dX/31VcQfd4mbd#GY`ZtӐ.&-M j5ъҋ5!k6)kv22^d$9Rs9v]mB7V}@sJǼfȈ6 [hY goһ[g5$=TrVďyV8 ށ dX/31VcQfd4mfiEi j5ъҋ5!k40ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ#dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځedX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ-dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ @p dX/31VcQfd4mbYEQX%{f6SEfcF*lvsJ,솃MlQtdn\d,KI}=俦ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ @q `a`"lhZiEi}](_ 6a-Fc31VcQfV(kְcId炖:(K1Gu ߂}p_~ eM^a ɬEҶ37L@ȁ8 d ?  ocICT7hdZ@]g-1@o }@45f)_:|-]:C-2)0Jl;huIt 5u2髜bpɉ%Bv+{1 dX/yn|rmfe4Znf4bvg4~h4͆h݌hZiEi`!Bdn(Rjce~@Q dX/ ~ {J|nxfP:q?-1@oz!v0hzXmd -1SځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ Cq dX/31VcQfd4m~p|1-.9{ъҋ5!k6)kv31k:ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ @Q dX/31VcQfd4md:p,џ~u;h@z{۲ 6a-Fc31VcQfd4mfe0UX"gpU)3ԁgm?K/ӱbeVD4ǞĺO0%/Ļ (* .uc*1N*WU@vU5sd.\ǡoU7wՙ%>tca,fНL3u.,J<0~ $wfɤPUxtJdpATp*'~w%qqr>~bgQk ,PrUʲqC@ dX/31VcQfd4mf§*(i j5ъҋ5!k6)ku B` fJתJL]zq` FMlQƌU,cD,>/"ee u kh7 BW 0Ԓ *tũVwWh_ 6a-Fc31VcQfd4mf$/4܊=vA[+6;6ȥ"e)>q z|pVިE)!%Xs&?w/m;"}ssO.?ZRo!L; )[#^vA˕w(w8\R '5% qv8P5 YQL^DT9/X?/7'h9s䉖TL+d2qnj@B0Aw:j[bV$M.bK3Qt iX* sZZ\W {3$>p@h@=V V0q}b鐾{ ST+U@}V4@KmrBw-aN0o 3P쏏 A-9n<<}D4^;K $xLReVd͓Ki9ߟE*UMgf;nf1=Kj5lځXdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ E $d fȾי'SO= oTrV=fzȁ C|"*SnN`xo,]CN(Yl>>zAz@0Et d ZAn"`:ܽK\F9kӛkkfa7\gz5z_ ShhW R7[~av_Eo--tL+W@ >g׾Tז5+6<2j E&y&P7,Ҏ h8b_ܭoX@Sj3OXp[@u@wk=SpABY.'3kChz&͓I3Y\QkYWXH`']e95:<-Ϊk@8xWʦ+|L>Dh nJ8`@eRkN,o8a4[,nnI@[8@Pmuxa E_5dC)A*0J`/f,bsB08&viԃHG &t'+|I'gB)ј(̓ a@BR",mp+7GSeP|t3@ `ܠK8ec/_p!,}{jN4Z`cpp2cXVГGVF:tiMiH tKóP!+ 9miWf؅\a`Y/!oa^\Kx`kР?8›Ey?GF`?U?s5yћ;ϴ^DgҀ KT.@c dX/hn>sqq?P 2-1@o ~ "FqVtSځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ+dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ em d HlN_/| hǧm_ҿX#?>q~9}0` oU㗵^\6LO4O>!0'C_FL`)̓إVʶڣ*;סKSyC7# N{@=rA?D#888tUyyt~@޴G:&#i|G8Μd _P?@>ص^jy0 a;U;h$݂!尛t,y P~9A^ (n2&_L|>`$`qd[P糲K @ &՚,3%"f݉z8˜8QACwd@jvk؂+Zzp D` eI6¥Aw}i+d:߈_кWh8|OwL'LI;ǾЅ@b4==" @{$;[DD6bGTk԰[{k٤/厄0eh|)lS<A#2bkw'!Ckoz(ȱA"8(G_!occU D D@ k"uR(pv?G1PzؓIznwe'5)THy%[A "-+b!bT]\~`8ElkCK+n{|x ;lJ ^3vW&5zA>-ƨ bd=p$;{WrOFp؍ZJ!b`$|6ނI Э(Z}  v1(il~egZ$i C C|ϖWnI'lp;`~E Ld܁ B79+j0-dYS&6?W7a >&h1#í@QA.zJ&ᙫ0} Yif}+U-A[|HG&В=.|h3h(l "*W'P cKPt_` 뵁WIx)=+/Ӻ0Mma@zAP7Ft>d2;l ]<  JJ2t]Oh1֥{IǏIA'!,\8x3 !@qR9RRa;(Pb*]ZQ_-x4g朤5̡&G0V#i*(]?fc`z[fo1DUr98 jX}ZdbI@bV-f BOteJz( H2#ԓ²:C t [phK8et q | kwsp|$)]3>yV\<']oYVC8 8r/FG@@QSn`W|P_%"/9˕l*_jl,Dq0P*(D^嬈Laz3~]BR=Z|CY,g7L%߀u&veペv;Ts<#bd 6"#'cǨZm8اStViUȞch&M{qt}5Pz~>wTā֖_ Rx 4G-'ڹkq?PAAT;MrJy~EN3I/5!Ts/=ϖtPDŝxV?aʺtBtzg)5z B>- PFB,iؚDگ^nA[7ϖKǠ@ t:ulS+I&SH؄5# uo$0UIk'`xB#]n€Sv&{MS9RD/Y;DX_=yjt 9IFb"nol.|Ɏgv]}e0,-ЌzA`uuH;G"}4XFwG],1vkh8{3tv+ \ON9뭝I]2xb8-̅H I[W~SW(kn!-f {NTD[iVcXCN\d&@@"0{^KR#.h.VmZ{c/.Os$?0hHY>@jض0N r'W`:&/.EW$NoW($vJO_cI[o縅5 NF aTVcq$^ 3 d햦9K ze^QjeQQڨ{jRDPwn.!MT<=jCl‘Z{>ZQs}f_8+cGMg Fߌddi%”.:M0gzF*+MEQqK#P#wjr90|Ʀ!,| }ƞ )c!HdV\CtTGcS"ux1.}@|:sؑX3wuG A [g]ٓ )ŸG/.)5W9P:@ /NϰG!lp;.N8I`AvI3L!e9ݓhS[jqXTe?"ͷFC۹p%Hټ ʁ)0u(}>5|s'};uDt}e~(o|%j5jDՐ?1ADd)lѓ$NF-kbK$L:on~L0rc2Tj,0UHu6^+DӚV]n3P9LSd[l!ِI+a鉰%z󸧎bTTo/\;|- %ZPgTtLeDt#pP3·OꗬY`po i -yՔPI[ѺrM#, -BrҀUQ//|"jP:Y:[Si wϘҬ@ ~*` ;`$ mɛ` Xs@(n^xZgQӁB% ?JHG J@u5}d^+n1{hKSIG[ 1 x`+o#1 n{1H00@c`+աg"ς_ 4ip=^#!L%ƹGw ֧5eD*k"[onqU`Ǚkbz1 s!mN}:#A҃ah3$a q~<·)!Cu6&mǏ_~ƭ#̀Ec+G^BGd;'VڷcFp @e` ƚئϝ{a2Ƞ)b7t h3|joVr?L(Ign{&2i.J?yI- `K;%L'(-j4T 3hr8(`z(| dnj@]{|XZO|V=.AmHmyȄ"~@\ 5>߉vA(Wamdhc ܽpg*ydAW4l#~6Ijj8֊)^& N?|nvoPޫٽA( L@c!s0%B@ ]Ɯ,LAOT>m |X@+D:DkBuD Y1s~$Phq$.9Cf屮ݳ[+iLˍ}%`t㬉 K!*q!AnGt Fh/@ KYܰ9* cc@/VQW_jLjݘ&J~ME;?*$90`>AH"'/'+'/#/c!O?q< /u^ry9RRzd˪STd:%@ɰ@P@Q+BźESK ԧXA 9E#ðDpO 'HAtJ\C*[:FJD_AYB0HlBKnUi(R^7r|dxbap#!WcL1mكW)\ sCBI`N<""z54!TLǚ[Ǐ?pxA% t0{!36S?ʅ}N0L v:7O'{LQ)Tw,h U\P=UZd]%ĺ_π>("͒/&z4+'3MK< p j&\ H{J=v`183oA:Ff4w%@,ҖW%xMs%>n+~! 2͍X;*0r Ȼ:3*&oEǜh3Bܧgtm*u)(>g"kbh\섶]vך~>7/3^3EδĸbnfWRN'?Z,q2֗)ĞρaYQ´0EWLdi?;V-IJ}'{&b9gOʘҹ*]ѐv??>?BtR=;(k6:Yf?C՞*#kP<@{ lZ[?amwن$)j*Ǖ(YgH\ۄ2 Q!H̲ؑ j7A}:XOkiM; vĥ`' e&~]ږ!\ q\rCh} / ݽA;/Ng<+ jlś=DϛM 63fk'`UViVvR57J[ *5`@:2 SP?0N[ tWx ~vx5)C{cJj.A5o$qOt/qϐkXmj/956 vdJ\~_+9o)J@%iHs/J`ϐxgz#y1S> bF"ᰌOȍE6c$ NE N¯l>EFXlƜ_D}3ȍ([-6Y"X~Fc}{? Y$ lN`$>LYH4jTm#q5qӖ QϦ P"/B@G37`ϊjϻ;D<|. zK߅&tn+ͿIeDR$d ο.J[YR* oNz9zw@>!G R&& 𑡣Ծ$!pePyp[EGP!`-'5"ݮgcݥ"@C %.͒pN"`MA`\[jo5cJAvDaVHT@ )I؀|Zc/ȅZcB{g1_s7+ni3dR4]mHZ-%$P+nymA:%l"5-->..PJ}{J!t@Y2_=D\Q3֥[oIP5m.M[@uÌؕPnL:DҲc;,lp@3;A@R}wL)YͨQwOL3_!+]}@|`ir8x.aԟ~({rᅲ4MCɳ8rNsS3?NTсPRTRW*Fn8-[gT㍼=9m~Tm5ڣJ TR4@b ]Þ3l}Vs72s27F| lr!)'':iXM&VI +8C5ܔ x:N޺#A(5o%~w (BYFGɵK=~vE~̬* elUkuUjfPnbnC1Al2h{LYNLC2 ( 7os,r=I<+ @8xOJ"~ H@ -#8%OaxfHWF<#߈CVR{ HKua8Y ZLO;΃s`KgNdP;̵IJ-g[m޻,:$#&T@2?l>Ib@JM?!ņ:H*C b9u4=D=jm|(!k|mn'w<*qP̩نXjS̓a  `$QWx ܊P.>٣\he5wSߠ;?ؿ\n.N?{3wxn+@= ޟa7HP"x[<- g¡5 g:/RXAS/*oT$AS.%jPM *p7*}zWlr Ǐ]Ŝ;qۥy1Y6&)=L?U>n?ןKSϥ۩dXJI_"&X% LJhs:@!BoH8KMR0pI3F D :Pߓ& Tw-e/~za7$ey}NtXeR鐂eU/bRRo ~6MR]x `mq"-[CxHa@Ogk-0S:ZDYǜՒCoKWez'堲t0h`U-8rG(#ca W&KC E@g:">0fz w&剄ıBsWV2 MdZ$ajŁ\#2`^ O @[c.3˔|7&QaY,Of'{<+rTk'kRK>Ѭn~,oZ?/z< IX i\)^ܲGr6ۨdCF@ f_DPռ쉊2Fi[Sc*ϣH`d +xaaBGۃ.TEK勔~ϘĐOz".t hA^BXsȆ`(YTXjP0om_@6/yA0ʊe `!AkEu3PUP91v€-|)-kE Rɀ "'q5<xmgF0 `T| o\9/3] #%IZEū'lxyjD~`:(k#@^Xk"hmCP W xL qM"$wG2?iuhvRcFZYN=)(&6PHP$*X) ph?.7`LY^ f'XN S+ /*ՉWK#t:"||.ݚv&l| h۵eeh Vwl[ɄGhJ+MuƑZ-?LU _' tʘuRQVXf^Gaos{ FUB#p$sRT1ogh0.W嘥Bz H&%щ֡YjfxVrPÈLv`040GU1Cl+*}ƒn<euMVy+@ka9ӹݟ~VX%&aC0@O#"7]o;$Z{q Ǖ P7OpEpU?[;ef4`rxQX so8~{=~ByPgnV&x)},d -xGqHӬp#OlV\QBny$xe`WqA@ą\7fyzhu7ukl 公_?@"t/$P F|!YHqcH坩\3q[%J.?],Μr]/@"Ȗ! q|ςx:1d-n9aD9[v ھ 8ƸWN_@@}Q]hEVX< Ux8|Zphe@*poNlL Iߣ#uMz(0^x@Hdz,ukQ/1 DRVE?68NS@OU&XI[ ) õ Cvӡwkd YV2\|}ꠘwN:06.2&PՔRH6_X9"d1ޒox6 À\<cYiǢ&E 3[;!clr ډ&LZƓG[YC*092TS03ߡ^fԵ3}yhYfCaOb.J)(#?ڈhTkk9a3K<aSjڽ{5f*ҲbL{X-;s% A)&+WDPK^l $i;"C0#cEk!PZvo4u8n^h c*4ǷL0 t0Jƪt9qmFƓI *T,rU. )M 5!Z (mR7g>T0YFܙAjCx,W3 nIJOfLUa/r&mb0P CsoG$3 l{0_ '5WH DA|{ @mdSwDV|$*ܔp`FR~Z(db x`2G"FBJ(au 7@@QH<=C. k/my, އ 8Ea/ETaeq;޺^kJԪeoi%HP_D^3(?~XT&dX+zB-Zy]hpi2PV"gm܂ZxTH+zPW'؈QaFIW%ʹvSl4OCx|2#t= ͪ,K1 /Dl7.-j(8eo0ԇޖІIG56m?􇑉딻WzRyU੬Rb7^7;~P@b0!D2i@?$4WN|$tFlus3.ô\q=Hz`4p$ kkq ԇ<+1k"j)@(62@r$`Ivd7`O7ڐ%eOβ<4 FB%=ۧr4zHߩB%XdhXBH5E?7#gn*\GnIOV2$VcIoRUN uUZJh=uES̠c|LR?įXV NBI@ Z.ڗ4).3XT, J"^PzD@SRHgu8"ClYd,Ўd`5]e_&@ G5SGvz{`.AwV-S0)(/!+3v-g; 7'}n^Ȅi^iTL=vpOGGADAN8  .5%b9ke͓`:"}5ɐ9b9]JⲠ}]zOg{}E,`\ B~VO!iMز=ތk iLPtwsr?ֱ)v*A6=>67 iUgjĝ':7!P۬SwܳCUsReTZ,NN-@u,]!zts(_uё[)hadTxTbE,qkG#yPXUFgTd?W'? .?ɯ|v?n~}y}?^>(U_Oޔd/rgwP_b~wD?~_O [W|  ˢ⯛@f8S})iPhFA(%F\4Q66PFMN&*n ?ke* HjWMbb4zgȅY `* `kȆK}?YmN-TKpGo T3ȝG,o42eBk% 2#]$G @($ofojIM,*W,݌/i^ԭSF5$8C84R89Xr)6ܖu[D_x6+%VR:AׄEWc)TCؒ!ّ9hgoT_gso\uH l' jǜa!rWz"@`5^1=p-@FO3P@Gsezv+{tn G|Yy,{M?yD;?)j6܈s{ D;'ƗXǧ eF@Ky2om/9%KoZ\tQbkXo woWgwMk0}]e 5jǣ21ѺEywKX^5MccAMbl^0űyH i&ctv}ӗF 5?(%]`D 0BUh zg&L1hK߭r8ʅ_-^[&#ݏ>ē*$"H6sބS xhj <#RpqM}z/w(+&~Xe;uM;\dc!wU Ob .j G?*àhaf|ZE&%֒A8@7֊E}I=[ CsK}Nmf7HQvat˵kUaˍD>~W5]yƤqEv|:{!݉뢇O] h; %I=RN^̹QFV4F ?=rNi_[UHnbV"p,ML-(r hRHwՇqq~r?iѦxWmlr;E^4|M}dM략:g K`)b%}&OYHYvJ YGM> 4խ=XlRB/LRc0:5c6X*JBk[hmae0@8*ȜǸ{#eI q 0jaqM kw"B5+ *pM )P4p]UxN/Z6TG称 U` 7TE7bt@r澮hOb_eDԬGS}L<#]LDUDp?Y跧ev&Ki>tQɥhOiBo,H.S}wc2v8(8]W =N5]7S]`y}#҅3QސHe ?kW.f{א]c gcђUMZf s  JaS f]"aI:᯴[CnFJs.ԣ>+:JaN F@3_s^TW $DJ!'[ O8L%0c>D)Ҝ&_C"{c{.dɝ4x[)O7y[^^\ݒ{{!a߀H_0lFSXeh#ztnuTb$2S2iT@QNH}.xy#R-@4le ~2* -} "px B8.;pQ|G߼B=5h3FD_)m< 2NeG)|dn@U'2-3 ߅(^؝ D[g`Iopt(R~^%-1|>@<7%a.@"%-1:6`9g DPYevٗ>_ <?nI=.Ʀ1w( 'u)H΢wtXy~˻{H^' V&c;xt %0}Ċ@q6h }4GM05=}y~&_2jTAY& <9IH9/UسgcZJI eiXg Yz_SPePXaHͳlx]I"9CI e"4PCDy)b( IߧM:EZHm`uTWޔw4@TB.ZSI9q %, v' tunK0j1#Pza!>if|H#>!iN{>y&nMGF ¤KX%4aϨTjhi$j&/OZZh۩(; afkm~e|'yW(k꽰xGn&.A;Z8tZΡ`s2^d:ͪ\ ]>UPkaX Pv"逈?'> ,AE0-G,^Cm#\h ?䶀7/@)L@rDbcY9 @#EBM<Zj2KG&] 9B hPXpZ9`f M85]#ӴT~~ NϽm喵bԝ͢J>YEJŷ]xO]!mMbXBcWD}=X Q=vodHG+_2bl;;Zg< )p4aWǾ>7"<7}{^UC5Cc}l]mvR$;20-I8@O@k#șQ4rX5&l~=[󽡶ksg5q򱼉.? gto}xс*k]]OVOM#a#]ₑ*I:?xYeϴ ݪlN"q'IFEvE[G1EXnyd\[}C}D 1 1=f TtCELl$́m)N9|$]΀tJ֘O'6J\D8/ZQ 1oosBlBVXZ++<3dͫ E@~D *<4|Ns9 %//wp˯Az)?`a+:I1hYءJfbr_ՑNa.?ǡaJM%6ՖE̘B_ca!-N9ݤQ ΘleT%q|!ֺF  xptNKu-|g&y*RYtmh:aj#.9Ow(WIҿ8aj8?*3جTB/lM92 _wr-E4 (BZ`׃rX9lț# Sed;߯}32{H;'83F OP:`w`7mbڍ\a σ_"-$ DKA%A 2oԔK-p͸,7jy&{E Pv=r9OfIJ YTV k/xy@Q5k@c?m`J#V8g0pvB\Pz5_UY,ot&L h=d(ѓc pφe 2/i#IKKM. :#yqaR?^Z sjpY0d':D!!c}E"!Nw t2SJR:yfj?FҺ^g*Tc^HL4 :4ntm 0 ᤉn:xq=?53BcuV+ {/q^Vpɸ:/+Vg9)=$yjLsE5ۅmۼS Ns.m)6s)otܧ鯈S˪cӮDӆFWy[ԩxuۍtﳫK3*LE"J|j&]U=T݀8syQ|Xx~.xѼ"iDeVmEG085.Mq5[Qu&d49 ϑW8>-H4~i}BCF-lU#P9dCN,fTA'&1 64ÜVFԼzwqQvCb6 I'YdQLuSnF T\\UqN-/Q鮜ԁ=|Iۥ9k/Ou\Z kgܿ4nQs12?'.W}I[SS0xXlSv\Ґʱ3D@nY[n_V:L,= &3gc4ނe;oJzRΨRT#^2N1^ۍ)lFt 'O6喇^o벯'|!wfH>/\PWu3evF>"ć!X9&J6¸wt& [3HPVrwWDSjܱҦ΢*28fa D"R m=˽뵒(̭␡Yg2-DKC#b<+*_:)%}"XTN9g悵Be-#X/((Kٞˡ˟H)4:iQm@.gOK$)tu[2tdQ1l{}E??eҎe~Ą;H !1f׈  bϐ&H N7 Iw2r=%`8~hF(@lLz_Vn:?؀1E,_(r:EA0#/Y@pgw#b,[YWeQmgnj0?R 9LZPX 6Oc9Y#.yF*,?K@">ς!Vyĩ '$CpB`;L-t8e!Ԥ8!) a"taR%A/`2zpYR rϠxmZl!%\$ avsCxz&V(p  :ҢH>w`, 8D&@ MZu6ָd80Kˀp2t[] -3 f〲kd 1U]<,P8eB?FuЅ|p1a]On)k'G]!ߠrhz)%fjn? Ќ/GS p:G)o”nQ<pOg֚ 3p%լ#=b_j+zd,3 6tmvO3+8-g<3vRP܌r Ƅhx[ϐv񁙃J36<"o\ l۫yp_<N-s3OG2L{zX ĺn/B.5D?+ͫa`n܅AHhn=!9|Fi՝hW u%+F o-AYž 8`rҀUuE~)VрCXFNJD+g% ;kXɰ(!^ÐI (O#p(K`  ( K8 uQR($M: ' 3v] ځS d8aZumZy-? ̍D+M,]mx>Qkzy5 u;()[dPcfP1*dPZ3cx$ -m@2 RdQ gLmJ-Ik,5.t=t2 XQ"+Gk{ KS^Kl{^KSل%wm]unR0蚔gM@{6LS,l;隯3An7sIHֻz.1t:&#w26C@!>IӊΎ; ^m%!/2N2rZARf)G#5S# GJOҀȪI8"9c``gQ] "wỈ\M9:J?tdX\!ioJ@UE3Tu&B#^:W27j6avU,FuxV,ЦƨX j \+y:(C̏R.@{ctìH9]aU)E0j/N7}Hy7U\,~v ~G7<%? <aJBr nMך}kݚcsܯرZ~هdEUiw6s[ 3XU;@C㌷ep{X$LA-w&ņ~{Ɨm*.~ٵ2BT]=F|s y) CCY5e@+grUu@~]UؗIreVx y Z&4$ifxyi/:p:Vp B//ŋ0,S[h*ߝbb2 DŽ@<,m;Q!C@^eލS"8AAi.>.|F}b-m)tCC %lƟ.+SܑvO_2f-P6tD6) .K^PIY x?:4 R|"WZF#"W0d#4]² J;6pX8"jJ@ZGD  Y!&(| <3#Cѫ"ޤp7JoP"f9ݒ 4jEg'Aр+[UtG#Knin05 sg bƚ0 ujh._fBYbqE\\[D~1 8s(wFah`cV!C95 $7vw#㒘ݜ<P@#-6'J6͎y% 6lFV,VyL HHkӢk; /Ρ8PD+C}%9v&7oTY g% 3Ip82#%(vV/OOt.C\ `h2J*!dDe+\.:B4Qh$ CFo@;5v/d/P( Y\qa{KIZ {UQth&I*%`PL M|N.)G0gR;brĻߖ"m(zk#7*oˇ`҂@1ik̏`BU-ZߠkK؎~ '`Dcv=sS'6'XKJgse(>Wr8nTrF% e{Ѥe4L<5-s$c3H *Ka@wEeaL2 b+QΕtOmPn~8hMI@@(':ew H&C*ʹi+R6 :4?? HA`uv 0C`>`Bg-/a ^^T;XR"]# _bLϢҭ2>ry>t$=X}2-t  >$^1IFHb%(;ZC| GtS CrB} l-9`4 ( mTb"lOf=Uu{f>wh T(Zx7<H2!dOM<{TL_UIJt3VɣEs/WTLA被wP͕_6wgWþTD+M j̀"4Ϻ̽AWո#Zw*GZ.'wpĻ- Լjva䷗ <:%$" &"é*? R6 /|Nk_nN*倰 71T?*@t BǏv vX0F+?ঃ60pI|a-//'Dv6sx5 E^Yޓѥκ-ӿ7) N5h]$-Go-Zԩ3r畔ζF^avg*R>ȥi(w0SyJAbJBx;h[nn%]g g߳CL/W--Zx_3Y%,j-PV4ȘP]r#&ټAhxsCq ܻVtxq9q{bӠTҿL0 k\^ M52I 9+ .!N0;J(za/w czzL7RSyV5ˠIa8ON+ag,08j2"eoÇ7}i!حʔi*R DfsOgy%|eC߆ ѧ[+JzԎk hT lEbQ+5yt-{w1$5|uAyxF, {Ը!dˢŞߙ?YO{NWnv-ׅ{נVq#Ü΋@3^^r~>q֮fo-'$3( e D tf5טUp ] B;0zCoxԴ|NM MDqH2գm!ß1~}ꋼ*jV¾  Au+ 54$tu̻4iVBO10o`]dL=g.kWɃamva(q|Yyt/! SFD; `Uo7 !|unpIpXG8/ wB75 Wγþ^T'dC$~gk>ߖ"uB5-/z+H8/3L*jgvF0>"۲d{j O ˛I̓q16_d?'ܶC}CF3-`3)clJ>^_Qi\'A,_@.<~{ xGH=ӣF~63˿S4Ґ*+v_8@~T`ybѤRq4pj2yW1p敜Ϲc!;JlY)d:@#@5!ȻDX7N5D.{ʠl,F.pVCŧG=_),@J\J>I(gAXܶ0OT X`8@0^mh6'&ꁔ*R@DmwJDSP.jZrT2YYF2RyP<!Ȧa.A8{ܐO٢$m|X9MpJ[mfda7@gu I)zrПChz@ Ǎ?i&ɷ)c'a_Bp,` }<S<Ŷ>P+87p&*V]k{!ݚz|8Mc,C*?p>43B )7?/YE:[ڐPkb{. urAgY)vhڴP=s8a+P\X#_FwJ_O&?uo!5NI%?Yl@DX֦(F_$%9ւ[?*ScJb&EX>'|)2XJËٵyt5E̤%?,|4Ҍ]m9SDKDe1@ǥO1zG aQfxK5#%PQ`:^@(,QWΏ_?HzmDF` @xkWs% ߯;xa&C'[|錎dbߜ1c5%|Ob1TC6Zlk@arbDeOT[|s)/h? ɦX1`s#"p%_vRŒq0rWsߐoN]9ʯK?.QDGWfV9J"|CPybVbm:{t$!)le $<픒r]*If?&sũc>ѹ a7Q* HބA /QTD#Kp+vz3n|N %擱Pm0e. }EEiզH}&<27jKgaz@f'4d7PRz Azg}F!,?( c%4C8%m%K x5e 31x(Q5$> 6ON- %?qUfZvOË䊞+mi'PЋQ{ꑒ4 Auf]&Zbm*+?q8-19>яmg7}ǑelP0Lޏ){R`"uv,Mꨆ2"U$lCbǶYCӕ Q#x$*m@]YyyߴoJ=%hUʝ 74jq>\ׁ |99$Mo2r8HݛCe0&g2/-1fVu: i2ܧnPAICEX&1.d:ԞRBߔS3aEV4Ge ^Г@E1:bYu,AWvšb W {TηF&I*EXXA?}YKQ S*&*kiET"8C 0D 욟Z'=G9zL2:Mo c(`X+MĽO.y-iy5bқO c뎺{\#vO;GuNd(f} pGa\8EdeZ3cV҅/r-S*5m]MV{:1I˿ QU,2>npYy*K4zuaWͫBypn_sϪW klZ뎱ZQmr׷="D|a TP에Nb.SIɬa6ZUmL$_w7SCT ͳG*/ | 1~ y`=,]:9+,JEpQN[V%wK?&s 5HN2PE^qk " 5}BDO?8/#Ѡ9~φ`mo!8ŀw?BvJ]^\U|0.:>w/eV]2/an)]KM;!!Zvq _͆q4S8\<;>09 jCc03o`tlb9\o>av=iou\"K %Zm! hXtF/b̎C,EZ!.a^Hdp<Dť@n~2٨-RXM (nrc??[p˅yPWL`[ĎfQV0Htëw QL1+_?4,o{B$|@Lo!M%;&1[ě(,f f1ߢk):H̓ (IkByD:M N2 `G$I?*aN([Q?'[a:._>o~ nA9,eX`$6n:@ x0̀# ߆:*x볦`@U!fa8pe R zu_YKN_ 7rӑ' (cTW0.@3iAy`+8MpK\{P]$@)a$[-6KL.qeTv {:zY  &0 1 yO<~!~7#Q N?]i Oq- 3/B>W;Fϖߋq`}]SRu; \nn|Kd=8 ckIl&8WjCǣ(5Rmh'; [3_${,WnG7=7z[1s9>4-?i:7@Pu x>!,ՔJ"Bly ?6ُZM̚ekO]&jcVO;j}w!EwjC" OeEP^{J8P,)vX# ls [+IQ"S(S9r5̿UB~!5*wrFNXW˶u. |y` 9⏨<9K\uȉf \߂/X\5@ `49Z**8I)Pr0IPsBE'LAyЁV[K0(Y6!\0)`W +NONӜq`"n^U:`% DڊQs;~ǀZxV2Ls* <~5_[kէԩPA=2lj -O`  ѐ;6yq ٢0J-7]ۅ,L@@/0~ ȉ܀*dP]2htP6J\>9 NM@.̴9h>90`b^!-h1W:{;ry/z5&]"XIkT7u}(QpvAUUgVT77#D[ly:zn=NU>x,( V3| ?P@ŃՉa;Gn7&/# oćOzl ğ 'XЖEo>@JC(,}Iqe#r~mҩp980X<D{u`3Ip$h=-*jO F60l s7L]tvP|@ i'Q ݷd9@ w,dD!T#2P٪̉'##QZġl|aj4t?ѯR#t"YNxX+%*\ рcCY.g H8Ґ 5nAqoܟI~A` p_=զ}qQ!8> JN=diHiT<6@ʳm% Y}um+9uzXQO&.y Ƒ@› M)8TH?P+ #%LJ? g@>QSD],C1m d~84u$?Y3rE{cgت?Xnp&]gn񠩥v#(!No~ DM@ # nQ! J?l hŜ3XwOmx RMa,jM!rlHmx RM!-)I6&yFV"$:4L#6-J4PǑ {L2umu1c &0L`-A2-H`,ai5}o6AVD_-b:&8x+s'yÃ`,.U@U@ Hop_ Gcyk:ɱW0e}Zzӡހ@; |>M&c(5bU1EI]Dg25.1dSA!Vhѩ"\^%e|٥Xl8. RDw !07pĪ$GTHK*XPt$Eʤz"t[jc-BV| -u&Ť:W]ȪU@[&AWyKm qT3LNfz΢ ps_yգ3-=x`tY Js]=;ʠv1ƪ a|'SWpvJ+"ldq9۵ZMJ-m^X=oyRsw8s"Rޱ$OpO!XZӧ)3RBEy-.ϿX1glѦ $XZ> @}9|RGTQb B3,SdXj1Հx t%qJ9HUjt{Z0ܲ,؀piDi` X6gEZޕuH8D{~Sd95 vZ %*eZ7("Iii_~ Yl G>E>v$80Y#ОuN@? ݴ#0m[X`I$9!yLJJձv0U'3i@fX m ;c.T6Lt xTЀ }-"6jLa1P (P|:arjԡoPD ckIF@7+--:ϳ'(LP~+%`hZ݇봵K5L?rlVdPR?$66@oX[c$oO x9=@uHNQb  eQ:E+=`cN$ ݏ܄-a5kp# f5בT@_{)8 q䅀QPbp,BNGHF.Dp CfaT `Fur]w= 1YTS '34Y i  o~`,`+p ^{ʀ x: G 1@RX4ǀ++ {r?1ˠn%ڀڂ@H`F`氉q?|xy^&">јϢZvbi?ex`iC `0sv{*q⪶f6 KŸvXD|i5v%E0M( &J5Uqt>,( ,B oIFC}⸮+j,#:γӠ b"3,N 4 GLh&WދY|:0+_q'4C4<5:e|d'Qab7-攗 VFn~'ђچoa$ǦWDZO[6!n"i[AҩN7P{ Qt0 C/, Pi / -0@̫ VH̳I? 0H]F*\r 9P1P&2R$m=nP$ER"[eZ惥ĬzrXkZ_c(?Py׶["'"ҫS4jac(dWqCfvV?$REKW #śh%b7yi݆@.TukM "I mh%'>Fӂ9)W5˜8,ZT> d?WKj]0@ c8\VQ"_kUc( ~Jgr22rz%$C(4Q'tBee8(&] Nb:\Jq ?t<+ྨj0ߜG[Нx{hzA O1c PEh|r8R/`ws<RSDt$5?s`$-y{W^=!(ΚrYoCYBGyzR܁,2q}Qji_:q4Z~;Z y1ZK- G`Kp3Ƥ$L.P`BFCysi H,Jk9T^ py#.9 ifg⁉#I2M2N-FJ:vtk 5 "^]dRQ)b]?؛@/+MYȪ.dgs!F3 á|߯d|00P X0 løe\Ah4d"y% gH/#HEFN.C`n0`R1D)0iC3#G>@MpiF.@ {EIb3L0@✰и#X[v A@KN;@T.-o 2\ ',8Ac8zŤISz:(minl{a,ѢGLH9@a,"pUK `%. ?TB 2b`lVѥAG,ZU@BRj( ]>P+SPsy$%meG0 ^tG;L $ GM ܇10b><+< | sJPHv(OH9ǔ݂J.< g jZR f4>84dp#cJHهoq@,@ACQv}e!0,B* ]!_Aju4_ :0ˡ8]\į@C@TѪ'" iB`/bl<3Eĵ(*,w`Oc {e;L=X3\_ h#JxllN %9?X|<g*I@N j6f=@k<@ + b0$k)[V$ Pyf d&^;v(&@k8B :X#'WP.e t ([iHp8~(C,Չ?v9\(,LTsGA.≿tHTC;iȤAZ@H3p(:ـlKL6|t<. ܗڡ 6 oq'm3 HZY΁tyM:05И"'XX?"l% Sb'cI @2j$ q|N\F<À[(V^v]i(<0ǪC`<R?Ue$-Š`4Uz l70QD#3:K$h@t fZ>K8pqLa L4Gd24A`| DFѽ7 *<e'/)s>D VjLIH ӀӲ/O B~%7&)Šؠwp$hX &wЀC<WT;9ɪQ.v=,@ h\l' ޾{I"+%'N]x˓PCڍEOT R0)>c OSpLb\(4q%Fei2&?UۺVj*8 GKtʌ(%/|&[gĨr[Yoʕ2)G`.a*ݚx:L_7lnq^ohp@JIY?A[̝+\N\o Z,EM*ac'`WKpFHgөrl\*1U2T唗XȔ&&v[^ Iԁ(iHQ^j=E&WU@%U?Dw*l( $_ f]< $٢d#fǩO Y/g].oKؙءm a7[VKy1_|[,[%ֆ Ľ;<5aZc uM1:l2:w!ARbԕ7_&`r#iwyNL*t|^5NHA=@3KG_ۥ}B&FG cRd3v#61htن*HڿBAC{Y[ b~<+fDD#Ji5ou_%*rSA?fSEͰ3@8ҊJ9!oi5Y[ [2R XO;5RΞgkjef݉qQAϑbyDD Sw޾LZuF{1rm-|C;I"bvȭqpYNej(ߗIXh .J(a]"$9;\.1~=@]ggf$~]B#I"')%F/9 7UG#H+(|Ate0WD7] g)Վj= @,ɿ]oXY=G\i̻) jiB )3%}ڰIIJʐb\l]o>a a}M*F.2&z燎B8ՙ/뀬qe 4jor|1{̀2XD9 ta4#y*cѡ>_hxnGۛ Ipx^l d>PCoѢ{r |Pa $>J@F lC9-x}Gʖb)CNa1h}0 fI$RX0?Nɲ.[|E$~cu>oPِ; @Z ?!49q=,ZFݻ~ zXshTDvdDEyX~ZrF}"?&5jh܋= =_"nV(+jXNs'ʄ+!@ CtJ\zԤAY/0m@Ds@"CU:˅iiDRv^{Z ǐ[%cFl(~&@ Cm,tuy}X8el[êUJnd`Whs EcqfDʫ_=:45FElBnƽuSٮie6%\C9X2~.z %5}p(˺O'FwF\\Hu\ȣg_Ŭ85]Fn-ZKd73L#8*ec*VgUYIAq -n\yj Kj 4]"a^28DWrABM]"#t?e'_vO@&]2%)_],jx^6EPPCBݬ1G~<% jjjfU0?2eq ASi.*"Hn h8j?c D%ǿP'} O.8*N_-~RQ'N*  {:Ɲ/YB̄5Ƙ~mK.\1_@lkCĻ'A!԰[NVkU7sAˆ!bsTeGɈЬ'z2Ԑ僇!>D*se3?E' gՔ'tt =D6{E=w?P5iZjBh6 ;8yM{{$@, =X6zNCĴ$Y 29;y2/9_iOv_g` ֖tz8MS;r=;ɤã[i*GdkcNuP)w.Euێ B/|yK=[RcMҳ, XYNi ?$a뾪CMu'+<7|Q~i`{L.d,ڨ5|Q n$1I>KP; ҃uѸg" -W#>g׋uyfz}/7!@ D EPRk%YDn+v׵i REX(s5pzc*jPiХi\ڦZ*3aK2AFFo>8% %ђ>`u0 Lb|\Y&u?RDXjBf}<Vن~\hO"lmF 7Ȼ5K)DQ:dYTb A`2(K-ado#XgM"1Zj*SwYsOf2f nd#pI 5ZAhh1gdCpVE2~V^ aDtIk˥Ce<ص2g,.wە(ѯlm$:ݕ}6/"EC57Nlo&I_c)0Bl+"YӮ&pXɤq=KȞt?I~ N h> ,YE]P'0{?Bͮ G5pELdd@-[t'qNEyBt%Ca E"LҕM7,? aéTNN+*OԟeȴT .^jޤ$@IZ5闦h#' Ԋfr6'=^Iք EP[g;Y{jU-13{`LtWgZظR^2<) x܉ p ސ`7@-:DX=ڱP_ zĞI줍DkD1JIM K(h4m>(- zKZz5!(&. oLbwKA0xPIPN@}4  u 2_ E߹VI!GU=ϒ'V>*DSl' ٦'Zp,5vǴV%p._\ lh߱NilKY' "Da@8spF ?AbYT=Ӏ!Il3HM@XB c~dK$"6=k& - >7W򔅆fBaιI>?8I&څ1 l#d~QeLHcq0 ,j v&axٗjDI&wf¹7@pw_<\3L\9‹ <`/DTQi^Zpr.z}5*xyu ȦL t:EqtyT'lZYn@(;FF`pH"@录x%l[ӆnb~]Q Wb-oԣj("4lVqC)Рh.q+#R+&~`d +QKܕNocѐOk݆zp a ~C3.e46X p̑V#@&ddF?"`H׀gA/*d}s!b`y% w5ߎkV-1Yk7/5ۄ#ʿmъܾBgR A˚ʴOsAv#G)k>AHt髉7Årn '@u(DF2⍐1|hc<qe,֥\jHZ^fí7%Rpn/aN:^ 7dݨ;}忕WA߉h=y$f+O䉃9./6-[g9AYCm;^'`œihO6vj>&ve3T?p(F\TC=} VAт(/dĀ1c& YmE!gXmMND:bKq;>tLkx/ O DY765Jq˩uNhHUQ:p;r-$e= cn#h_րBܰ#!B,? ,Kv)YzUg Le͚4e͵XG)WӻAw?u.)NeX3qQw Zj]ްNn :qH"!T} UW2t1zy}sQ A$DC0Y80Up|#oݯw4oW}t#lHivŗ 4+6I@VHvS)vD`8Yyh *Ȓ|.WCK-+O g *.e:f 렮jAH;&幊?kaZ¨l wc]z//f2:lop H^ɦ57MʷHZN(J2m)ڮ`NPB4Hӻal[+p5TthB8EK`#%QJ8֏rN eTcO`w-FԿҤbz̡$%vƊ>N5.R*v-ҲlZ*\ USM>*etF8&6?d$d4E0OV\S%ui|gv/]I~ƪy'AVIPՁv*}@m!w;ވYjo7 `F{+kRb_4ɂo݉f  u:eH,dT{xm6# ӠC܎ov d-MϏgkaG 9Oc/wHp;L$ł(yʕ~P3`c虧L|'H-k@""ʺ$0=c{"opJ#E@pNXYGa2$>d'M`ڣZ] 3oxѵr^B% !x+Oҟ:=$x3^* $~8da MxբJTʨ 8*nғ%S:^@a Xv!S1Wl1:#)6]s=|圌ۜg_2|}#xKaˬ J&Cs !DйfCP~eBg ̢Yȭ1&& G)Cr.h"q oZ& YE[Q' {i *qrfNqLp@XbsLTM#3iƳa;CGsv>+ D(Y{v=!, FIbPZZU~XCc&۾5O}IXn66ܛh=u&8_: P$u-i`'c^a ?k #׮ϳDؼw > _C ,e!LMW*gNԙ6LJ^2==D-|`YOQ\Om' .l@7yN X%|)*m KIQRqZflsAlS|U/=G%'wJ=_YN1X3:0CONVh&X fK(]?& 3u=QtDK bggz~pyUvP-SViƎ U/j9͋P#)e8\ ;rO!8XLx;9J| n EX.p= ]ex?s{Ѣrj%4Gdn A yg\3,M5\A0gq0-eFݞJ? ěUg֕EJC˻%-] [O cChxQǙΡܫh!K "#v5oQ% ճ֘CHoވؕX 1W홼I& rn{.-N秕ĭ \K!1AZN<|kk-d(MAG'H"[] r i 2x !O)\Ez?\yS*m!־ Ɏklˍ=Zf9GmrQ=J>2/ڌ00 VN*X iHM5_o *B%~` 5I\%Q$wXf o]fK&>ߍë-V m_{g@Vs̒fGcHRY:UYjI"nIᦸ dfT'EOL!n"vcy cS 4Ԝ;S_F{1 POD}[G2Ҫh&3$NDӲ p!åAӮ?94 ' a"aTpj ѧ϶X'ߑ+v,<^xD*O4 kݨ#t(HB I8Y/ h `vsj#X!mAb"/[edRGbo H 8f*/ F!XyʆYx?I_3%P)(9>!Ɛ8 @bK@]P@"o>!gW{͆d!x0 -`_Y*եL%0f)#/x`⟃˛oufqJߐU {8ڰ_ 4B6*h\JhЇ@=sT!y6 sj9T˳('@5!#4`_\< ̳jLH;0 i[W :p!cw%j8&@a}Qm*s[/l%ZNqea=}-(AwIN6ːCYU}].i1X_]@RLJc>Չ\A+li@?(:;D~^S3F`ͶNYWqG4{?Д:C 9Ѩ+JEz奅wzrǰC T)25`V *1 O.,q-NBYu&=70/!fӌ3Z1N7vI͜rnNO\WSlX[\ǝUzW}p! P@ǚ z.mR  C_nY|d.CXˈeF\cѭOW5*}{B{m"I>osvvj[ c-怽/sS5@='2%̠ PS9&ۦ+F3! {DŬ%B KBȃ"!0~BRB@J8!ÁV# Lb k6b&o~WP}lX[,m~jv6'H(ɍgKšm6r>Bf}O`>8K݀a@Rx\7I:f$VAWVށy[0PD]Z!qo33VĬ0&FU:L & wcv@;ʬlQպQB$4gCls4ĭ X I \eOTLB廪#6|sQՙ:_o 9tkm-w$Jl(xG|! [|}*D4Sc3sИ`qe4_iq17]#`Vڎy& a t &sD;PK 2GUv'5p$d :"P*:xXթ?\ly&`W1؟Yz @b0j UjGj ,Sr8xU2<4ݹ+ZH -¼^ctFH 4As z7]"[6COTpz aP}#Y$!fPa({(xI|Qe*Y#n^6(i5 to1Najyޱ }06Mya[iɻGZ֟aC@9}O(0ξ3G.S uk@7ҤlKgDVZ(1S1J @ 7E&קV ԫUG<ڢEp+hL*qO_ƌȋ偀'8Jv9p'JFs.ЉIb534mx{ZiI[@S[tfҝ*g}D~7<U|KlPJox!,%dm`'ީ `ev#_wPHTEg|`Bߝʁ:A Q<+tfoGjC-5l2q|B{R$``v8;Grl [Ad8:{V'[ ;Eu_;qӎ&;0 $ Ӹ 6!` 4T5Co7h`O+:pexRmec)z%jłQ8x+3M]u|ǚ-I5Cͼ/ =>Gc& tpz _Mi1p/(c G5b7gCJaF*@rC3gu*B MѵG#HڅVN{z{7j1}fQ|HnwE@B+af)ژo3s#ODD\.aq:39Ok~WpiJ=pѣɕ5{pÎB"'oPlU HG7M9(XWyR.q"-p%p]>.zO` vW_Yl\9WEXNL.kNdls%FОx$o(J*3NK,VcNvQG o=~Ix[;Qxd -]^`ӷϟ] p҂$7V߃X:E{1̽c ʷixbb,h2:P^*Zr-N ITxѧ: EFJX~;9{̧pOM W0oH1RӚXi7{\**S|+_&Ec6YyMcFf,x#!>VFA?[`Pά&!+5?̘<T]p9pۙl1C_P+Z=sILXA%N!-}~M$IʂGx6BǨ҆r8^gI/xAl;w?,/^ڡɜ޴AgQe=iՆًKEd?wo+A0s]]X`մe+M5ca1ӓ}~q_9 `6zK֛^K, kgӐO"]&iQiuTџޖ}{#bj;[Vsfp\},DifG: OFP SUf]0X~>@ bޛ;,AuTa8}F;nIPյ%@-c6N{ҷǧ<EdY9!W7U%K_,@ĦC:XtdN5LOvDs5 gL!Ȇ}&H#ldcLdi~1tTe=`872Ui ! OH/Al#`*/ֹnW鷮EXЉu:@E(8X~(`k6ĿCKbDٔ[eT A(V1.w%c_ܺ. &LPIF]# ֻ (NFRקV=dDl=N/'16u.!LE V5FBfp̓ ^l0P9.,`RVEU]t PQI)s0qP@tdNj1pp@~xHtdF; vL?kѭKt4@m>kp-SVl=3v{ZB~?ޟ}K~V5Jq#{TAY=ȷүS5dFZ?+Vc8xGsoe2@rruuf7Ʉ>WGqވw\`FK ӛfj^nͭ |_lqQu&P4y sQ րRԺ21 s'Ezng+\3ו?2,6?1,ij7qgؚ>v- $h=o1@wY's5rД'pƢॏ:tJ>ӪL֬20y1q*WWV J/9 9zi/n` %Yl\rz=!NA:0_=Vnz oJִ\UfMC䖁{@PQ7ѕacS6 pQ `&R",J+x/Ϗxgثaϭ`_l Ɗ5PEff[=G!2Z,Ɓ'&6I5|vioF,kVc%enZ+O`ROqRB2tV_'e:VM,*K)\u]@r6Q!%:"Tˋ:w|ܯ<"!;VS . X.Nz2hJ3U{ɼM "}~`[mvM*p8FlwRf5g´}$ےU, `POO?\RuPׅ!ϗ h~-\|Mnz.`mCW7dSy75$3R@)m 44B]bExI5]s*@—gF_$P:<*&`SMKBr+#E7~tK'嫜ܸIa gn3UQ3a:d%N!UŠAƃUN|Orي~YzLdkx$ӖTF_oNl1R.lA5h)Ӕ#Nyp\.3qHI 1#8$HR=<:LK\`(,rF3dBmMr $SMgȞ2h 1H%,CB6}9XI&u}.u}-FD/lUDoDc0OH_jl̯Wk&7 KlNaX0xrԛ V,@eڽ0ɾڭ*_AW W6Nn$,lnQQ_ACwAGbխ)ga!wlVeAS,^P?ٽ .Ϯ-DuC)p}rE8 A2;IJ䎗BrRE2pbQZ\й_j5,_IJH)a>JVMJ Skpgj mRĩxȁy.4AxdKepKPf߅-[ذgTƿptdW-1ңHYH(RXRg5)Q@93o[,vX V[忟žx?zsCDH<;,x1X6L~piXus@&F3 X[Yzй,bBB"ӽLt@'QspT&,!4t+:p,uE} k\ ?1(ZXs*%Ip P"lؚY6HWOa֬LOin);mF)h(h}"]̠Y^IHc*袹 J<][zteEsݴȮaYu@W&$< $: C> T7mX${T `-Sr`q9Qs0(KS_LmqQzĉ| #9@c2突#XNG+Zb;M6](aNpQ"AVCn'[ci:h":HXѤ*Zz?$5'FU8 = uQLTҠ %PH|Z"db@*|J`@0&}mW%ɰsW³pEg4n@O%'VV=k SC#:8qαXq}X;ABvj g 7,N ~PܗHjKA-W8Q$x !J=Y` C[(AOEpJ,A`&l;М0H;3|pR:: H [ȐgCg4]Bl7h^{eȑLniYG 4Ǽ927,q?XephqTcP ^ ;~`XyD>(7_pݬCz4'#DZ&,hRA,yч :m'#g   9O_[F[wEc4Ǡe<ٮ,5?= TD<}L1Zgy5H@˯ 6ȇoČ|ג6OVϩ ?hQ@jk{ j~HV 7_) ,PA";0 R/Rrv!Ȩc9 sUm>s5r.MLM@vz jaoo(^GSFXu_h.4p.̶%ϻ@&8YI`뎋*?DD.1K]D#㘄k7nR0:GV+7فFLcrU_=1{9 |B[ʑ!HWwyP kp|Ks4"'V\gW:lq%zbB=Y ߀Vv zI!De}k4\&%u;"P q?D+/T07;#: YԵ_98ÅʝI[%rMD`XAxȉK4+"flLIb+ #_($G0d-P uӪ>)t>,=KA8/E'JX;s獆l 6x_2SM TΥ$ >Au?D#c,ƇG6Qra\G<ԎA)vӯq@=q޿w}A:׵kY@l}ߦZKCS 8T@N = iOVp|*ORlJ0=3bN_fV;pt@xA-]"S%U 6.%X6Rr.WyJ:ObK`=.jpY:LxFK*@ԠϹl.51\qꢌ Ϸ8%-be{֖ p 2rG*DZ'(4 &mq:7  LA4WЛ!ʹ@!:%3GO$P},@%c6<$gv*A~l=ϸ8?H>K @ j( ^pŽ9@da)ba cȃyMk`T: 8%$aC>ǒ^S ~Xoϭ 2\ o;f|I(zL^Hɇɢ&wDc_#sp+@leHSms0 :;cG42&{Pϐ4wT|{"Fe %H;D,Un ZPMn3pkB4Eߊ:vs2hka8ijiRi< &*&Cc 0_@?Ř-gʹ`I90F>p6fpm&}o70!6Q11ձvlTrΎkbo%n WxKݫ)ر] E:c>N{RVHYyF/."Xơ(:Lc,㜪T]K|G+XpMw; ,ݾ!(EG7:C|Ņ BBC4 CHP }^"u.?f]"2*uJ:Jb0B2B 5BKHt(۲k֩@piMzΦ{ѮAF=ZLXebNDFpl46i&5Gs z=a\]VOdN k!((O&(]ShX={c Cne EEyj1z&||oΡ6{5"R P@FZؿ< D罺0 M '5&V:xPb2Se{ Y V.>pt`/ZUZ nj`Hٔȍ M˖-KI[ݮpݳc@K422IFC R] : x#;M< 2ZEh yˀBv'lk@U~.9Cn\^[*-|K6c(`b#m/+O@LA1tLb y @n]8@f;AU4% mvcAauIѮB%Sk($+;TsB6[d]f`.#_`5J ZJfNFU-Z;IZoI]C 3YpDx d@.`%s!\\8<MThQ96P0| {7ڗ# oFĎ+<+߱.d zrWB:g> :&|[(xAY0$BԆ94 R2M"I5nH KDb݄ ? :XBGjp#98Tyl5`uHu\(Eqn}3d W UNp\ w}9}C$p?ްb!9p;)(t嫅L8wHb r ?a,Hw˷r&fdmNI0`¹θ 1{|:JP Щ?%P I_A+b`}ށQ dX/ ~ 5`1@o ~V3X dX/ _pa C÷!a?k$XځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ @ dX/..@$h4͆h݌hZiEi j5ъҋ5!*7¡Y}/GcyÁe'/e݁ 1 dX/J숀IY YM[](_ 6a-Fc31VcPځcdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ  d\<<@߯;_p_?:?k _ P)Qv1-C<4pځ+dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ A@m`1r#FJ(c[O\l8PRHo?{E![y(?xI3pNn/q5A=ē0hbj (Ta =HSOO}=v<)j@iXǀɀ3lPRBBspKM_PuBK D ߮Bd S<fƀ1{lK?[Z9իc5i-P*!Lm<ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ݁1 dX/ ~ 5`[HA߯;_p_?ځ5dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځxdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ@dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ށQ dX/ ~ 5`[ HМgp?-1@o@ dX/vi}LR"> ~ 5`[c߸/ _?k' /W@\'m>ldZLWFv>wWVaz  A߁dX/  -Fc31VcQfd4mfe4Znf4bvg4~h4͆hp@ʁK `a`|@"7lإISJJtJZUJꇷ91ڛSjmMqJAH7T>1OЉqDULĚOД*`(S p6pMAdx^ Imr*|mLZ h|h 1T6ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځUdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ށQ dX/ ~ 5`[ HМgp?-1@oځ dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ `dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ  ( `a`ߠ" ]"ylE 6x쒂@l!͡$$_<^;:"Cȅpv$NHځ kdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ @ Q dX/qB4@`nnf4bvg4~h4͆h݌hZiEi j5' km>!Ij ] C;|ȿ"xI@?qځ dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ށ 3Q dX/ ~ 5`[ HМgp?-1@oځ udX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ =dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ @  `a`ߠ"]`*יTZsg(+[jd [!Zʲ<J+KhڛRE^qem"!$=[D:wE""p[{cDD]p/:b1 NPKUځ HdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ށ Q dX/ ~ 5`[ HМgp?-1@oځ dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځSdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ @Q d\Y׫D vc31VcQfd4mfe4Z`Zo"31VcQfd4mfe4Zn% s8?c Dȟ/q=O @;b[/ߟSv6'@ dX/{G@/{9- 5`[c߸/ _ (  gW]{ϐ 74,.yj2Q|b@߁]dX/  -Fc31VcQfd4mfe4Znf4bvg4~h4͆h[ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ @ cpey t'C^f~G75QjB͞;$m-lk*pĒQ][Fڒ/j/l?y!$Ӻ)"`Rsۼ{x'9u/0|L+ {c&'PAhsځ%dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځhdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ Ḱ1=d4aȏ/bo_A?i{G>g%sƿw~NnǘPjRJUX7~RJϿiIp ~Qx;C`00o'l~H6\":PX! X"kH[HD Q p5Ƥ-X"!h! ~[o~ dv >Cɸ+E"l "ŻoA7UGcҴjE~] `H=A. } ʆdEߥlOkm;¬VpU7\u]ުkF8Kv&y=*!pdLPdKͤ܃nXCxCE>17N+ynDRƤ_ qQ00pNA3"هS BtB AA@|?>=<,:8bb *vHJ#{Npls[S[dXU$K'ǰ (dVj0i*5N=ǔ!_jlrdG.-pP z q"r宑^c#]BXџՎ2Ά`݉Ɂ0Kݸ *.h!d :@pb.7S%eM߮|=->Ֆ(8BL5D1AlNtP!'ojj$ү N$֛$?zD )?;yo ;z +[4jrb 9)VB5v09.` %s\E|lN."+5ZgpӼBs~r 0cb 3}R `_NC@Ri0dj\ֹMv35c-"8F9SyBBqyԘ`5+'ΘAΞ{Y &ԾJaqF/͏"/!Mč'Zu E9 5# G?&+"8H7$XBnT ƞvv.X!vK~+˧8 ^*+]F4_M,Rn#a@Oa6vxg{4'44i:ŚQ>e !P>O ~ѩV  : q@3b_`e`I4}<5mRhfh#ZB(zhFK`)Hp~[!sQ<Wrc0ARl`%JDjf- pnMXEk΀+(Ujns9 *3;pHx/)?&bRKH ͣ/ؔCWwqـR+Kf +n]׳\ŋ\۽]Tq?pJ4i ~{a^-S5~Da^, qB-ʫ\e@ȖW{ $ `R`@ |` Qn@- G"?OځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځEdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځ dX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځPdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ ځdX/31VcQfd4mfe4Znf4bvg4~h4͆h݌hZ SkWX!U޻BRTntfy-2.11.0/docs/static/img/cli-subscribe-video-3.webm000066400000000000000000044771131462047176100224450ustar00rootroot00000000000000EߣBwebmBBSg~#MtMSIfSMSTkSSCpSMSSkS|STgSIfa*ױB@D@xUUTMGStreamer matroskamux version 1.14.5WAGStreamer Matroska muxerDa /mTkG>ׁsňG3.lZA#ツ@SnVideo ֺV_VP8Cu p*p6E1ufagk$\%~'[<خS z/~?~e ??ie ?_q]C;Ͻ_I5s_dG_qX_2w"Hsք5xU5#;EwNϻ2ZIeъBЃfOmI7}RM;į)hl Ed ѮZhq.*t YV)A SH*ԮL1-uNmZjn!x! /BXNo:>^NQ!ߡx|9 _*s1K7A7Dkv:[l#ȭ.^Hc&Ц' YV)~-p*¨Ш3@ǃZ(سYU)8))yx30|@Vfh+5wvJmq dތsWwlr!~ t` Cz}6%8G+sZ[a2ԦC,hksWkI8cfXQ1-xYB^RyΨoy9KIbN9M45iSw@Lut:48s@u `p'x&ʹwE~~w | UJP4p1RU|S"KZ:պ.ɝ :ʅN\΅5n@>rgBE7DB+h.inE+'ū'KJg~ܓK[2mRl1u>w[_#&H蓭WX+{9}xdݮ1&!rL|>-@8}f)vK }]RB~bQWf;{*χbA)ʹJD-HM.d2v#N7Dx{^>uGH3p{W~6sɪkZh`d A.XF_R^]2RZT1cq`%& i~xKG.`!0{ C:Ke'iY99 DuO_ӍlB[ՠ &\-u펠7 -M( _j!N'1A|7(ƙ_ai{].UaJU?eO{A;S$fMl&(JC<>ū*.I  /P XB:oF40i9@sk_q2FN|/xY l+Ylm)._?UݫO g Qѥ+7yL^*VI.OKh7(sMbѭj{ ID9s!W^*VoJPޯxsLHOkU}rEp24,ֹ1ڐGܵmޑnPAKVE[ w{'a S eSDTyr!Df]V{.دĵWj|ܺW"ٝ0>*䑢b+_i~tڳ~ 63H)e{[[TNoomb z:߁l ^̰ !鯊]'rnc.lyVŻEk :4Gd'o%wȩ-e6i&\`4r`gB:j#ڽ{ʛCoȴfl:Z՞4 Ȍ*f(-'61qKh"`ѫϨC\@?2!Qhl Avɝ @>rXv.弳擯~iBzn}M8D*oobJl|ML6Y$YFհ?ow{πN6dg>!K\G [x40ugn<݊{r*F`YFB[T+qmS$ ReDB4!b+KMg98JWehA4+J-do"c)S0>I Nt7:?NWɻv.g;5c=4qNEH ? 7UHM\)EL#}zuCjuidŒ^?Dg呏bO9Edׁ~SR30d=|" 5_S$5T)ziKh2$^{~1ɐ9!c;k pv~`U, ? Q0skJ@a[vbɮ0乼>&I5[ڜ1FC,|1JCQ׈h=*bJڽ<ݓWu?:[CQm898[ &𾯋j o43ȿ!Pm31ø Oe.Ag0 dR{Y qR3”,aXNɅ&G YO {2IJʘVF{ 3|+ײr*F`YRj qR3ðG,L-$xDFɤH5g11/aS}b Z)EL8gJ-d1hc)8i:TSQ,}CT,;EF$Mr %i qR3”[T~b&E4\FpS!'2BN/Oh:*F`YRj qR3”[Td)k5zz{OYz :/"7'1 \7'!W]ǟɀ5V #DcBv4 Ͽ06j`{m 4pCI/Tc0tƅMhv4%CS^ŽX\-lt~K{6N&7tOCrT9؉Fwq Һ]@TU6Ug0e!1ݙYްؑls7i13p]JX8.L?0l 6* VO׻|a8Ar_O{q?)0@ :zYRmCqZ>忖$VqJUAʄb@%ϒbP/vK)?dqUG;$A$KFaIu^&HTIGF yދ5f įp.mE mlNx :_hih]c6ߖqGkԢ,)6z7}|D0d+ zԦ%*MpS vԷ!GN_l9/do}xQBS@FN|ٲn):G; u*Ɉzh΍|>eAxTݾK2PzQEɇH{;@kZ(^U("*Ȇ^bѯ7l2_}\ }6vr H`k7]lFrv:==Ur ǃS:z7UBh,N~O2TbD Ic 1cQ[OT[l E$4a¥Sou=E;ݨƋrho=iTR#piUgh)A#=u);1akA3¢j8m5)"(FA=vldn -wpZD\?i44P%Fv)>pʅk"XC7~X?d2Tgn]`$k3rPE4|j8a@5g(%FܼGuOv~v\vhGkKB@P(MOz M?\P`'8/}졆EO=9!t&;y?xy゜'7Jߓ}|>H/yY/_Љ⩳ҏݢ~@b?vY68bVێ;V ss>Kr Mؑ46QrU rŋ]l'ք-7r#-=)h2?u H^)eCLO&3*Bj,I|-ASF,,CzKMackaH[\|cT\(WNBY@^6*FE#$i4;*jV5r!0%,ϖZ@;&J5(=eաd)kybwgx@pj@d4G@Hf%+!)yO*Y#DȚэfչ Ì5x-ݓ_rxdlm܏Z@ew[)G碼l^uD+ J =Q jcPw)?K+Y2U|hI/ .IE?yh^L5a"`W_mpمAMsID( Խ0ցu QvMMpTIPsSqOMr].D8%ŷBCPԓP&*"|CJ )h7H1,A@ c0GRǞ+ƌ]pN u|}er[ 9tH) W|,xמQGBi0d1A)D w8uu.};{#7;D9QG0vZ 7De/!L; ˶awAyihF+ܐh`ey")^I&Sv)@ @:cZ2ly)a>(NGT ZlU/wi3R -Hys$w ܖnႳWN;E#uG12J1E%@f.Ɔxh@2I} HAq35pIF ?<; 9u]xdK, 0"? ߫K*ԟNCSoF02&㠍Ml4^r 3ÜSGN ֹ'ʹjF=vh,Zf$Jw8|֕xn4ei; ":=7K,9fԟ7Qs [JVhY,a7+1&cVRn=D C%Ms_AZe l4_!g?=˻$. q8_)UOԎo]W(}Z:\A~žQp@׮[LN~p*~"cl_&NC歹g0plmN> W,㦑aTxmƧ!*c;p8մ44%[dT+iJlqjOQw#pzD)=Ě4H~V=I`x/f;o|Q]|L]r5,륖`_HQ[_ 4TWxוp-_zT>1IB;znY*i5ya(8U⁑X|~rJ$LW|%m0\RT4t0Ӏ_h^%lH\G`NOu(&13qk$.pBI7̰$`*/ӳ @P,(U 8o ~oyWoͻmki*=bMM 2g!]8%|9qeV"H9Ci`J.nKl]?b(- ò6:²g7Ն~,5Ɗ]Y=y}ou$,½";#x R?lYJR" _O [{p*hXS1& X!+ r dq(,tz!(ep:0ߌea XzS88,.p *ԸvMr@q@8k8SIi/J7goWu9K3n$ND|w)c۫dӿͫ"DU֗eԫv-ox}t]DЖX=HKgD/¥AP=i1$T\\p4fRwt;c9qy9ZHBQ A[D1r/+MqZs,I|ƪ Vv3?ά~OSBKa\+#$3e'U)JϠn1i Nm+\@(b 9 R$13TQv5,W QI(@_Y`@<"ҴE064@vPdL>W( hhC,b*B"' Ah ^eEDoD *QN1il@]-P[.!PX>e k[h 64TJ0ř̵ _,Z,\2SNSS "m }/ +S_DmA)!ʯ؞ٶNaK0P5^\X VJԎ !SDUH VĜ t޶hC-M \[HH6P0 jkMA9u&д sbojIzvU:e%'Ι ) 4vtd0)9 a|-oT\Lg-?sFr2{Y (ƷLo\qge:\jw1Al8ւ#[@sT^Pk@rBUnH K Axbښ58Pt tŇ[1mW+/dATc?Sx9N$+22-*#QNN;0QSs[Wc?xmP pX0~ w_іcmؽO c@_hʝ_.ou!ø i0Y3@ S5 V{aQaL@ i\ؖ/m0PRgH?d%Twb({b #m䵡vFO Ei{^C  ͹v2P,^ҲG|]vl}e`Zh*g{TT wҿ0$cOI㻾gx,xѶmcT!vF{: hOTNWs%nO:K$˳(>(ާ'¨"Q@_//KaE%kd\>46]gΎuu \C >rբNž5!$)j8rpoyXJpK{X&hUOLН-ڿ: fYh&" 39VE|*~TI A lNp꾌eG& aLg^aHu3E@~B\VτO^9 Dڇ:GyL`b;2 Qork)X3I8Y:ם5\s (Pc؇Xߐ]qЎ8m(ӑt3o>)<@>e*F.#etɉX+2ѰEڨO&s5d1#5)~QjSkh-IvSe xeo#H#- \H)zL~ um;3Չ1Gi 80i5ev. Oٓ;w4-6?&^W6r ^Zfj,󚳵_svWK3qcW+` G@p2=i/-5a.TϾj2F44Ad967 ,!RVnӐMuh$F䈔jTp9& "AXVsjl ̀VtZ]1l%8,& P2etE񈤿ܭ3A^dJ9>;(+<2(~jYAGVMe*QX: NӢ-`<",%ͫRVqcbcմwQR M^PǪ+Ol5CsXlV(ۺϲEXUl} D 'CyJ8;cKԸUR}P'(P&̸|"S'9oǽth{؁fвf1S8Cwg"m[6h Z茺ˤ?ƕNHvɯ:#c.4gƱxp듩hbP2Xp{$@HE| ucl@/qwJ74cE$gB,t|y`m~@&1# q:n"R@*v 'P s{q|kY@ su@o-?4 -'"u4Ø "pwa-_o&RzFw\& ~3נ6j :6dW.r& ܰ K1TLȟn MnSu0nh/ >CHv-Oh$4ACZ|+M :(S+ x%ɐ/g}aYwTp$ Th}(bx'{ xS G^y?/ =N:co64ȊWS: y`“:U2݁&8<&BLN4r /U}12uo _hqz睂#'I؟VuP ↏`9F7Y^ku JUf)w v tƊsnr;,4?QK ,B>y@nIaKU$\ Bv;z sT.sny@ gL,QO_GJfnbG6zo m9_͉/@O7ND녻uB5~/ӖR, Li4B!3xJc`04?@:k"* s`W0CUuS&" ulLVC NZCe@n .%x7&<`+bjwWqy#O{3F-,դ8d9-q@{#l0ݫwpaUORyPѮy2`@&ɕI:Or.2K$[o ~]l=XB:Q  o S(+"Kzٗ/蛄FmG4/{j4*8oȕYSO[ymH~x7.LѭycȲ&ZJ* p66ɢCsT8s= lI7oz;=[N1cpyP8^0ˀ?X_h˶.0eߎ@rkTv iK076`6D *z} 4TAD X DHcɧȁ]Y$&;*CGUSxoC)q@sju@:ؒ>C`49`6|6r<_ k7<W,&nI 66c@YG߾2C(\@aqS.ѽ2q;g GNldggԗn;VYH uNRQtM 0NtnMR3p5aE)jL(ޚIoG^]*W- zPTRh\9!8m,%B*L! ~~~S? L#Vgh?k2^74ll@-t6:s\f2&œowrД(*h e˾jr,bP\-(LK'- %?C:|cB<30 hb`Y@*`P%_Bxwg4 hxp$OP-$b iD}Fݽ홆6b;GC8UhJs5DJ({aD!Fgx)br['$Œe8z%|⬢RaKO#vkPmnM{cem9QEe@,ma蟮NPʵ?L7H/hyn>j*qM~^:f&?J/}T58mXg Q8 F{2ج=UHŤOSXU[ !" %X@Z]V&"rK_J-V螞 'Q/pVZk.|ʋT6Ay/Rv`pLL?@W8,(Jµ28%e DL͉sC[G4wglCЁ Y[C@^E;ƘZm$V娯k@}v Ig m]% ֙_Lґn(hxؠ kEck,48%@ߪoN[{mD)O9!X[NE`LZ)0e|7pAĀ55KJLʁMhrkXT&=܌hmJ4bA\I /W^.D0"@4r0L.QvyA(Q}Z6acsa cF(blC'T(3z ɘIk@;NK #P 43f, 14q$$o ch  8߶@JL 9z uT vNmN9~7ggB` JmDt/.XJ5FAW9a0 :{ Z^.H}[諀5 "HkI;gq cKCO8xN" 5P<)CY@j֐CX?(fI4KEI(~P4Z>ZR ;͌UߺP8wX;c!ILUUr2-qK[b@O'p`x+)[.` иC\?P$M'3҈dwNlxv$g 肚k` 2яv4ʯekVԦ>4زaXށJ+YbgYރ&:3>6 i]@2a WzGxx=7LUM' :44@Z⡂ff^fv@0ҕ~ 6#G90  Jr, 9TN[@XM]h.U{_'ztn `V&{fn!p;A5R%AW#N[`_gy708ϮI]f'W7Iռ< F)'>+rs 1Wkȥp?;=@ \PTTXd[T.\L26@x&A"z{o~4_"q-awH ] UN$U@ QS:eQR` H:P9q >{ p)X,>W \Z`~M8/zn`BQ@t#z,CӀ-tÈmŀr$@ư'~_ 8"@_['vLT+XYS|fYTsudVWg Es` 6滀r^!hf^gPP7VMlmF!Q+(-ŰUyj%FRsUNC:7<kg*X"I)N/L=AWn b! 0OS,iOd ͋x (4`(i/@ӽb 姊|V9z/Kk= qJ+ f~HTπ3jI_ác@~*,Y<)XP?&KW}|<`q_~VkId.4@h"e]1S08#8!3DS&ޱ~XpK&ny6/x4*9ǮӴ`$N8fKV2@?dJ01"@Mʳ`}۪0z]zѻސ<\\₼*@"Ec<rgg-9(+u|xl Hf;[GH!RsMnõMqA8hUI Ay_;z|0-@w'd扜_E~;7d'%5LG1"vkaSfT_&6MV 6PWWZH#CׇI3 ˸ "AG/;ɿUʔ>wATƿO jS:+[[>U8 v$ *X@a(0=H!1S2HΑ1졤ZnֿaaJBuJ|' 5}iG,6Ѡ7}OI=$xZE|y@ Do(WBu!G ߆RZB3"h a3Yi FR1)qY:*{'R Hh|} 1)itqN JNqe ]~,Vvp[F5) U&QPH0%Pl(> !5kM!#ܞgNNC~w,|";+(mMSRQVY -'eN fB(1>jÞ)J! `3V;>J5{^noӷ%V0.j^|- .5*S9'|6ɕvcF/S`]MM=aod*!/: c bWJlii!$/.8vKʓ|yGM=QSJ[?Xh;3[z=2py"z' 1gfOM:zX;J$G_ wC>@2LlrїHa۟Zü*"+?b)%^kENNfL>G1GjJ9$6|;oS!YO!MD<\&y&ˎdEK]sM4L4Bq 8ۏ:ju?amFR!Qv{mb@ΪA; -vs=|{'D ?4s!MW#LuE׷z,"3 `49,BՋV:\"&hڤR*dU ~`0eeLls(Z3 ؜!0潘N,#Lv\]Qe21 Ji,u[/ZAU4vI ZlF=*AK۹Nsޯlcφ{ t8*r䩪P Ȃvly d J{庳+01R!ɂ1C~I㿚>$%ղx"|DD{ŗ3C"qxhv;yu[x KZA# ە@xln0{ c@A=]n P$!5)|VG09Xrq!  /  ¯vsl),uAJP ulb0 Dv[`߃@m c f)15Q`dR,d{p, (k/VI#H#pzO<$HJ q-@~]p 8qyv}S<i,1-)BXD#6 <'!}pwdNU=G6X doR `U?%feԷ5kv FIOe(( H|*0 ap1g4D[6~KV&q0%C8AOos ;lE@5g;l(9~<㋿I>۹,mNe5 26]vl7AKJŲܾv0küvj'ğ4}@፾H̞nAfNÇ$O:A)oXR=|L%Im~nʮ9nRDP 1RV#c \ߖvA?R/OFaͤ!/y8XG F"[tf?=^2lHI.uJP0mʳ1 x;ԘO@vG! lrK杙oW*Fpyfҁ[R~@e\'4Q-{ F3QE~aMr2/_uF򭴝Ź":߈x1FP\}Q YU0c[آbF>Jz]Xd֊s|  N!./ijPp9 oOGbzovm@>H6"gZgKv6oTᗌ)1@Y)܍U-&>7RwUG Py  [ʯXCm*c9M!ml ~du8wKdmv~6z!(y9'*<d0 LV/m^fNB#I, 4c"S6:ԃHB =nyKbV2/*T4P8dAomȩuDàf=(/v+{9ȀfPV@{u% Bú++XNſ'tÌ#!-=]$YK f%Xۍ&v0D&jX`mVj@hg]ʑ p)2]-e/D[߂P.T 23ɀ `Ii0!c`\Dx8Bg@d .^`H@L<_ IXkt%ӴoЊ|Pg|`cC F  P-De ˀB&x#&u q6(& AAlDg-# Bɰ'@Z. Z$Xp%!p8M\)"?|m84eSR~_`ypkS)\2(,׎Bߑrf[)Z3q IL&),ϫ\G2 @/h$Jn[9Jls\4BPn lx00! h5L%F(=XkR1ͲxbK Wgf%*#jtkbKfV8|@ŝ:7ߠCeƒ`N\"+|'ĖDcX Mw(k˂(TܥHA/=A "/D79  I$>s G $)'yUx HjO>xyWO(Uu'k'd;ƕ#AI*]h$P @L'^+@H)#R7"PyK(JT~"3twS}싏p#Gg^a4bQ>hzZ!urx]z`nh= ᦸF&YzIf {@ gPZ `,,b6 M;`f="?⒬W.gmR4D8;,~A3ƢHܝe͵өVtn/$.T*`/=Xt03$=wf(HUzBE_ bArM/6i& h>'Z1"S@CosW"rSks@"ff\^;|&Z)H"qy.Yt >$(5(sڦNec:#SHUC*vDOc,rr@,PQŀB%ҝX(;CTȉ e4 V%6oKvt;q]Up^t% JLנ6 Yp B^.+6|14v {&u*NwARZ+~`vHZ *:Wb!X`3 Ÿ0׹ b %G@|Κx<KЀ.~2C @ Xp(dFV"Mh߃6M%Mp&B,8!i@ E p'wOմdqDu6[X r8 `>L|&"# ً_H>D˼'d"h u·w_Sd`X?>CHsṅq.%Fn0v>^Z}?2 Ѫ}k+F[YIE YR;n XAO>%X#=E(EQ>/(G+Lz Ba^$%YiT\H|sʝOzqe??9o0\_<$<7p 3l_5SExDoA LbCWY3v8q2xAsj WZ",P*DxX`qBծ- ëFrf?)W,B Y`{c]eيU|C|`?BB .R 3Aھ n:Ea. ދ¶~C1rԒv9Z_o5ɋ qoh,$1",y>d5&wl ?Y>gE9nV۹CZ\=!L_aOd.LE.g̅єIzMM̴왛0CLi} 'L-yM%(2btL ~%aM9KВ%ߟI Skz!qC{^Kw%'0 }{C7p&44S`1Kظf#6 g#+@t9iHU[{ =qs\Aٌ$QW%p^[EC]9Nl%Y0,@Av C`-jTGn읐o ~ ac(Ebu*1Xq@?l4mQR NCK$~L,N$_4xUTK "͛#¨JCDd஼@ޕ ;~ll7lƪgqYBRa~M_$R&i򳆗1W]  \di5 *Ej3C*X]gsj8q6I-/$ n'ڐ% Kw `(.4= hznP--ix̤UVS#u'hxM_䟜,M"3$?.$4Ö-npԆH1ˌ`^W(dYٸ0ud[Pokt?3iC oHm we`uYخ 4WX&PA$dp\N<=ds Ft>G_$q"}\m`vVrC@}|UNEf/vb٧Srj36_ ?"GdLZ^w)!m&<q 3(JB_>Ԇv*Sa;$y$7FNb./8-&LGVp<6>;L?NϺDu{p@ZyҐU|Ac8+Y$i°!$ D&tGV#l׳DYw*#cfMv2 gw3mb8O%A @aFX_jV%2boFz,Tj̷譶)Pᨐ I3|h t.($$Ѹ 9Y'j"5j_"e/j\7`2flB nAB𲊽4nb =zJOS3n"z&,Ʈ:\)SXB]őD!3(ĺfzamc0K\Z{bf<',Q{涮h>ڥ]sO&cnҥi!]J_<[%!n01f;̌e{#F-F3N6ujPՌ,5R. =sDbTo?d)k?]21wRsFPq@?}7t_Պ X#& PkKoE(DQ=g[ uy JE}+)pAduj|ŐhI]5gdG3/{),uS8R<= ӑ"t.U8a4<.܉dSm"Ah1WgOêC5g$q۪!i:AG\K9e/ < [mYxHF?7V&dF}c`/4 ` }#[E<7x}NӫրDsk/M2oAJ`4tѻ&)2gУ\||}-B?b;%ơj-֔ 'ak\ * Cך`~mW!*}B" .4ʈX &B%m]~ ]u@}SV[%O9RBz2_D 6߂aQSCHIO0=c#4`Xlg6^:P uE r y@H(ɡ7٨ N#[l>Z:Fb0'P[ PK3\CБd@S*9E 7*E=\*Ԛ=CqNR\-vTS;t2ߥO <ރ y-&OF X{I^ZڨAk]3Ԃ@,x)>z}F!ojkL Bpԗ&մ{i=ޯl0CPhY&vK +y@l N[o%eǢiOi&@.V}7b.2C?*W~1U-< aiZ 0Yᇹ6?(+H1A;Gm0&Ax NT[Na ˴Q:ARc8f~9;:FV0pԥ}(͛ FMW!ujG+&F, =v @@15@1:E:Qa c+ tF7.& `t)tPMz~Uˀ$M/#& 1`wqTǙ*8<d16U"4ِ K)LЪmW `J/dv\#` %>r TA. ӽ ]`[A"`n.:D]v4v"PJyC+Z'8p,R@}  A</>W` $ yxq6}*Jɳ`rc 2 06,8I Hcf<:q.`72'rġx1 ,_mc5u?8,~"G%؆dA{ 8(SmL 2 (\AJp.8eyIvV)PUK{{#Sg$PA^~qOBgWޘgDhDX(pe.Ɓ`OVsalW Єvb 4. >H"wUi.鰜:9gNyeլPW,K|t$k*t|OwXo)'wn#{S>Td=q?M4moB~I#js\S<^O GM|w+uPRkYq@ F RRf2sʼn ߥ53JD$GAfn?(B pgQK\+Wa ra_${ǎ#5/ERDs}ut# )q#_0Ezή3`LۀNv@ZdɅcQ=0>t{yxː*ٙF)s0"N x R,R;ցy>pˀ;݊!)Y2AN 44x8}3m9p u .fY0pH؆ jbPWGUMG$9ˮGb`Մ*_* kmKNuס(Z@y|f0 h4*x8sCfDz1p^Zs Pt[`C[A"Dk%KJdiB- L:p iŠ<"Ua@z0`|'Rf⥧TG9О>>>K~8W0Zi™ շ~4q c^ܔu62jpBGy"z^F(շ K N=ˏ ާX7\G'|W2Hm8>4EgCrY/˦`Ac]'Dqo'(:"H!9n䅼a~= EAnY$H9&j<jԳ/}ﺎNoGomp){RDj5?5Q>&Lzu϶]bނQ'99'[lD41^2Z^E?<^Is-Օ{= zb\ft uY!d_xNP.Ak_E#ĠR` wIH v%었 D )Ies6vHbo6?[0/HĠ/IƑ4!@~s@$ W)zPXgJϥ<6ϥsa״1mXZzpNVZ˰ ؀u{#$e K#ռSsC|A5<%,icٲM ɑle8C_(BaPb`%#4N: C!@*)}a=ҚL 1z4 B`xAR^][4zDi;GMl)( 7#:,&ux`_fYgANX)tspH q<)F[bs4z݋ȅ]^ow2! )|BI\5gkj^ %(vh[t궠ʱmZG w+_NKF Kʉ%#Rqo֒,Xg Z @l*4#鵲R* K8<q^%Q`' 0k@ xae'p*` X0HC󬵍:À4&[QP'E2 `oԉYboƾC L S(^EYLTQΤw Wm7ɰ8H!Gw8_k7ۨLƖ"FV`H9󽢅&`P*n09ɲJJZWG͡EJ|/@w߀-7 A6RDpA4RXX߀H)@ `;,q'?Qi@hKUD p)q2wX4#O$@МaDDx^FN;V.',BTw;,#1t?$r}V#}nb+Š$ǗDRcj/Ӫ֠`Q[rmѶ:2~屜 BM/a lJaz%o<,%uʶ ̲mhW?ePNxM c?ؒS>>>棞WPk1pm8eG U J̌(  y02C\wRqN"Kp5B@@O  @?ul$ K'\=U ߩJRa 8 8 6'$$P I@>\^Ƀk3.ui*~2:7 fL 'X$Q݆p,2\[_2 m0hU$8j:>.SPvigNxi X#<4Nɣ7w@ļ\^N[E6sĴ5O> l |'ۉ/٫Ȓo9{AN5bzIB@T;\*`(W!%Z@&=^gQ`RIO}aE*95s Y~W6\`>77J98 KH_Z-pilqpk\2A!L&K~&˩"KC&?(#nBFJZQf9"d̳SYxƖ~\ w`H51^?\s3SJ%Rgs"׈a!o<-.Vp1V=*-_{y"=#k^!`+ L:r.4o-YXL("~7. L !xDx@s|yVρ@z)ւV?[.AɾCA, ._[}S㡺7 I|EӪU7zp\IGg4t le:7 2#F{(&f5cl}D!I~騹iL:WeCrϐ95`NW+V3ge S%w``N{M9|pvlU[Wjg4آ${4k]ۑ;Y@HĜ a= ܲ%S?fKLsD9֐Jg2[3eZf" jKֶXGDKGT JND(|~$=XzϒQ9 ȐF&#5%BㆂNӣ>J9. 0v_"Brဍ42Aƀ=禦ޮOP>R*T^Wqr߀;)/f@dzh١(Р@E+U}]NGq1d {J&T /ވr´(jJVM-QP-}qk[AmUC[tz1K)swm{"8Gk 4BEf=|[ɞ_OE4C=c<:HEkBT˘c)7TO!D4'pk䴑~d&qITӀHQlJl̅`IsNPhSX^wԑ;FZXg48Z}fj~YjsPNӌDDMUQ./$H۠+6(sdːhـ_~lǐ`{$ F:t*>c3:x,-Ejbϖ7#>DY/1O t;:TGcgYF`< k%Wl.$?|>DaEOQE?R,GN8OFi~)H0qw(t#8?1HD3_wgN=G?xQ;}4D;My.mK'}ݎ(Apph.>zr[6m-<Ƕ='þ&v -Cm  h> >CD"0Dar8P@o M^`/C][AD?4,O ){A/!˗ RN)x]z 06Z*;U=Uv pfˤQKHa `M\#?ruc9>DvdYpsuWXrAMk6OˁR =&UFOe,&ֿ0@J* ޒ0u?L9\iV.qQ[|`'Be [Cy8m$ ,!Zy(ObN@ ,@L$Vц9cH̰n؛ 8x)NfXsuOn ж2Pk#v }Kj=^)v{^&SUP_%#z&OèWq)?QT؂=Ɖrb0HD w!JR2i1=U9/[XwxzC7@CqX//F|#% hv&]Xp @?Əl baƕU>"'έ](toe9uɐĺk6s[cyXV(l &A6$y/#~5.mj j(,CZ $)o=I'@X/@ "wk%_0y7E9&|F}{GE{ @*}D_} _ٰ${B^N}pS X/5V_ 7u?Ρq`m?_pS X/5V_ 7u?Ρq`m?_pS@Mq X/5V_ @ +mG;?6\upo@6'`_ pD7= X/5V_ 7u?Ρq`m?_pS `a`"X6ދ P^po.?:_ 7u}@0/@pS X/5oV 7u5?Ρ`m?_pSX X/ 5<8PN_&po@6L'`_pS X/ 5<8PN_&po@6L'`_pS X/ 5<8PN_&po@6L'`_pS X/ 5<8PN_&po@6L'`_pSOcQ= e}1n3w,<}x~~!dd|:|?CWk|wG]cX?w?[E ?rAJJ7?O_`oKI{UL|V?;~@cDvdO-pvaVa(w6xP ?;ݺ-Dy` Pce[`k4sjw+c)nq~@7nBݹDݖJ$8zO4 }c t-(B@3Uf- YOl,?Mu ' >7T?ca .pۿ@=A? a Γ@>8觨 @ ˺u Côv;?g-Ѯa;}.ֺGgvSo{O$Իx-ŵn  TZ9 U]+QWZۈ臷ēF4[P4"g!/+IB.{TMMuTvs[<`XW⭀~ 7#f5`_r`O\:b$&nf*gXzM4\BWAL05 ںN ] $H@|/:gOIɡ^?F9`~ 0;kG; Qn7~ߎW. xC jñc6ts&Z[OLJG2ߓңa1VT=89e:N#ʅ īnLFJS|&J9..mM4HffMܐ|.MJN ;nV)tZղ ̣ʑLX?gulē|rHgT~^cz)V#W(|j!S#DXlz+*Ao.AceS^a?q]VŽw氎طĎߕ4W4#?TJJ7]z'Z:pqX9H>繰ޕy_/,w &҃=/!-GͩI? ?/ ;imF!hi.Z?y:es!1S/YAP-pWo^k_v̰}F?-9j;F)LQ? d&jgty:P7&C߭`SMЩM\n?x "_ (cou|l9gO B>zOd6fpU@؃_e:N/&lfvaVE6_ .0CN>"XkX}$B c"bצ{4R&RCN@p%B>9?l_ ?|TgO`B g#@Nkn~$#p{`Iĸɴryt"Y*Y-r w䖍oPOMfbw@&&"LG ux{=D~%ctp4KqVwFEo @l 3~Vobyy!UsͰ$̾dVGy3|ní4M`#T*Of;f\}s-6G|Qj5\bܹ, Zf`nfg+utaS4{9CaR 7 [40y[D%c#߄5femƁOn-W$.qvi=/?86kny6 V4 ҆=h\"yeV* 9D*AChtF83$fDɟ zU8M6zFC³'ύr|OlVGo3 ? ePF3 1? G]PGwccIB%7+naɀ7K]Z-p 3wlX7!Uдx*$,C /<FɍR" _qȜ8q~2`nQԍBQqQY&j-xfmȹuZɸP%A32Dm0[>Gv}[w ZZZl~UD7['m_AcaEVDPx<&WA<6~wR{%i8hX"]x(5bCFYo)-Ph^QUhd왡C:y.ǨUP,l:'rI>z43QMQ)szFC#0ԺPd=cj_Hl_s#C(X~ doRP.Wj<3tj, DV_uc`vOR#o,&ˀc0kAK/( Ν7Mź7 N<c)Op$ ӑp' eӻι/zB~{*n=3TI|e 3֜5 Ii?2:P6F?tnƣa>8 'y GQNrbyЅA!KƬunLΖ WVr-m'Nڲ3)(%, =P14IcHKZG+Id|3GEq1M[י@謧K^D^]78uZ+ߦ YiNkhRxy3"G?dXVL thT+x rNv~>">IzxkzpMTC6Ƞ=  ؂|D mKs$R@z^`K]=% Q@!FDN|8Rk3p~+]7CMҜ},{xZqYo3ٖ'ࣚ3iKz:4B@"RhGS\?̂yؒ;|Z HFv;\{&cH uclK_=شt{Vک-iV8E;:`~A %Q g٧L0 *Rn lNk!1qqػ{; pv~")Șf!x^VDN/@$@1 X/ؠ5?}oǿa_EtkKh62?_ @+1 X/ؠ5?}oǿa_EtkKh62?_ @m1 X/ؠ5?}oǿa_EtkKh62?_  `a`"+X6ދ P^po.?:_ 7uԐOS X/JoV 7u5?Ρ`mޤ~8 S5 X/JV_ 7u?Ρq`mޤ~8 Sx X/JV_ 7u?Ρq`mޤ~8 S@ X/Ju07}6LiuW?_q$ q?:@xU6*0%&|0Xh C:ELoE! X/JV_`m o 8:_zIuS@ X/JV_ 7u?Ρq`mޤ~8 S X/JV_ 7u?Ρq`mޤ~8 S X/JV_ 7u?Ρq`mޤ~8 S X/JV_ 7u?Ρq`mޤ~8 SK X/JV_ 7u?Ρq`mޤ~8 S@`3#ѯ̋LFclxu$́ (pao Pb R!`m o 8q]0/@Y7@[ c@ O@ mUpx# A@/H-$<믲A@(i H bRPG0 IߕOh~ 5I UE Ccݡ^MTH5F?ј_/MnUX4@(n'^CRIy62 dV"p!0_@H}!n,!@|I268@q+w=)'jXWZYB1B4eq"61FzEA64HI'z,LCN\ <BT@+ŔyzȻ(B plMܖA+;7p xWi 6d{Wf?x12I_O" ߔE/ PVʨec1b x@wGٵHi (ps)" eg)D~A~( ,<zE`E.`@S0w u;[r$ŁN @WT)3pHLje4n?YFI %9%hFWQQ(lw d fYVL˿T9ؖm㺣Gd6-?b5r@pGF)mqcr^ϛm|\*]jY=TQkъ+K F3܎A5}(s˘[riQ6a!6 cq31N<2EN3BȱȬF8g'jp=C$sCC W؛sU{CZ 2aKOw.*h?m3 $} PbT>h ' (gG18A%o)@W`>TMl/P8KpZ`Ț뿇U1a }`/OaVn(% [`B@+l~SWQ́x3P4ȧW׈UEWeXG4O_dVܘ| $FXYwNb.PMk$7)VK}2u#HC.U++QY4AL\?&v4Q,Ҟ'i#'R(>@m[⟌([Vاð 235o]7|Ģt] RviҖE"^S+cM;V8 / l  ]GV@ Z; <siUua 0 V&16,ْb0YUC$FzY )gU{AVK? wm`s":X_(S$;ۓЖ\TN4_Tt-QF>umj%muP{"Eyc5y1{tTH#a KVܯ? W?جt>"#0ݑ1l`4ya!e7Zqsb9̦BEz>L<s Vq/{)9ɿ 8^0Po,_,^-T!9hy~WX(w`>A[իFF<sHW6oUx6}HTi~;f +S#zק>~ =~J ]HUVkQO90`,T6ų莭Ue AH)]'G}? =E 勁:mNlXm:/GJp=7;B@_f'~p== v}棇74s%ە!N.t:6JG2bF+!@ ss=DT?9"䐟5 C1ʏF7 ͮzfq}p`o2 xvK`V@ЙCDî GK_IF|h9)=Cq-Chc`)ƱLĹؽ$/k}[YmTlNU d=.iſjБէ~o^^ٚ\g AǛ߁䂝q/>m:9F#@|߯R8tន [H[Fs50^D$Ik$y!Z @ Dt+#x(V'գWڦr6*)Зk#S)S;p캹 Q1: gBI1m  =kHQvWTr3u"2`<+%>(\>$E E:)#ؠQ&ztTB*@d/OB̞W8UP 8y\{p' g6A)\o? ދ˫upjT68WOt}l6~I"1J!N@hKI鈨ī`ٟm&󘪣jՄDT)X36&!\JluKBݢll3ݝfԷZ(z.o5%%E"fuvxtR 9k[KP`yA jKR:9bk`/#$~pv|^`kYgKn`^4!R,|<3ܼƕ [`B>77r.81~@屠^hܤJ [650"К u8"#PuDYF}lU R}rQ፫uع < ) =y 8&Tm$^FIsHqvC(C1t2> Y9409X?Hݏж{>?():\)őٖPd]VŻHy2f2b4b@R05,c0|y9w}=3E]|E򂻉6)7A|M! seXϋ%$0fplz*F8`e}@:A;`"~`$h R~@Dth& ޽aQS/6Td\`-U` Й) ф('ë nBT: `,/-k`bHVڧL؄,^֢ڱ?>Ř`?>j^ho:]'ph0P&fT\ m;<$PL邝3*/\A%9-<Q+ *3u?{v'Zd h%zY0i8KOy UHzh+HNRsdud1if]]Ju3iٝ&<JŎSt4ܛf@Y&35x9w6p%":WL>ӅM Dy)3W#eT $^N+'/";;>(\1)>V@z~BVe@kypt(9dRfWIkejk6B+->۔ۖA*z!oE/Io/`QN]{PsYR.$}|/4OsyÒP?֒@d=b$С+))K):@[Ii=ݖ3>;]m[]#*؀ \\5) 2E)<b.^(l*{:M`Zj&Q+:moxyC@5`Uҧbaנ7k Mjv a0"ZqoN u v54dޚ7h^|r9+VYU=[et/$,|d .Ӹa7v). Rik]H  O2U۰OHs8Yl[63y39\U&f>/Ƽ"KYr|=ͧ/\^tjJ kxKQ/A~zuXCSM_4-ETI>4H+YLn:m͛)R, j::Rƃ SRѸVW`*{[wLj3\1# ZQbtgXQ ^9Q6'ãɇ&H9MNՔB^p:>fs VzO_$##mR^T$`lK\Ds`DPtט_k ^Klz0OnTX'*SDBp~Ll;nDs;_IKb^Χ=+C 98ݽ\_Pm7"]lkT#x:eVa>^L@ol?m;>O\ոV~f}ԱVW >,& K08 .T0.,ˌch6XCxDkHK4O P NJ ]xB3R({rTahbdx߬eYJ?|d Φ q1'%>' [vBKqbsN"*ì^;~F؟Ah;)a#hR%\RjÏ&w8)m[ ࢁ u8$:s `_?H |Ϸ!_ _gQec>'?) ?NK?헹7u~~`g'CopkL7K???}ُG~?lqq'od?~NpJ ͨM(N_?EACZ}Ҏ:suEuBJ:ˤ#eBXc)jmpӒ 3Wt:{+mX/z}l(֖b3^œn,~7ь~MoDk 2JEE*"h@~& 5XE_S>P#LP"+X;i+-ڋ [Q)Vv@K49*s:>{ʣ_sOpM=>n7$0;߃ [`?5Jmg>vL79MNꦇW)a=U-<_(n}DP)SOƔa'&<Jȵl.(ʞT? ;'}be¦Rdp=Dte2/j '$4Rje4x(b֢ 2zڍ_=rHD$$n7㐵+W_溕& (Wr03)tGO#B,H[ 0;旜00~˕콯m֨s*xžf:#zSrf+SˀTuGS<BÛ `=q솏Ib@n3QL˼kT)q| Gm+a"6$Wb.8 UqB_t%8ˡ'fQ)%wn.9~QӟU"r˻<,~F_{ v1o4 Xn \Q憭Mߕ,oڄD'55,pDIC>xp.+)"6g1@ \Y*s'4`^cN@xN쓙8!DŽ v}je+cf ebv (SO/S~7;.*]o_('C^(@8(J j,zxHR2ǗMHpPC"o6ӼVץm%{˹̡Ǿ5 pW[fPjL!k5n[ج%)z`<~"ɆM G8ss TofeqPP;&m܈sBFoۥfU&;_0#L>tq䓦˂5 sik"Q MG %ȱ8FοnLl ̮Wfp9u{V`Ơh:pPgK(4v@:`Y.@]@Ҕɂv,kD6Y{O$&]Q%/^" \[GEwc)K#a ۡ7 9}pג4V]k:ڲ? lֿ:bڍ?/M)߿h$Z _&?w^%ێ##I}(" Y+ hL!As?0*n,v`T#>YrX7兄u6yp 2ktf>Q m_$$CP^DK9X B@Sq7ƧJ;xb?LqDu1pBOݝN]OK NA*Q`nԢ6A7QĂ{6[AUU%m'0>[bmcWֽ7 ^`!ө6zpT+N`0dӆuP<iQ+v2@n}`|$,/<[inI98p H2rÃ}JUdNU2.r(qAjiQ[>B<`, B͹5anH Ot&a܆lD"ƢRko fyǂc. {jO!Nfw1ב{(9P6$$Cԙ༐Y{~~t hku,I!yC,hF8Z*f:ĿN|51M.T'<~[}?cbEGP,lgTȞ ~Ä %>|%=_RN/5KteѠooK XZф|Gy L M"õ# 6?Vq7y[gS%ֆj7 kU`dVf^m4:%U0(LPV#t$u+1>}:ԈOVޡAlΙ$Sw ('J_,FJ` xb+^ E-@T:ɳuC,LEPyuC1uCuu>:tT:ĪT:}P8q-<<Se&RiK(ޣ ),-=g-y1dm?f|l"XY-NHdpNt*0 >`&(!ߝ/h#NQ{4Q` )< {K o3gQf=CZށa"ꐚvrS@K.d WIuA^~™"(d w'QJX*bZ+sQ7B/dfw^bMݢ+g]oXL5`9uxq޶#HV g1WV@9JTcv:A*6>/gٮp^.*n~븝D 23Ch*t1i(.`6/8Gj 24wQ!Aq-XUֺ{ C!<$A'H guj#Z֓13O mxbl%k UrqV8$H :06cq:(^&ٚɇ#lޞM-F-]GTE逓ZbkĪ/zT;8"9L@,EZ O@s9ohNfϿoB9mcWڽw؁`bߍ³G.ԁ("N̺(m:oH7&rY4iS_ai~)pf59KJ*4u-5Qo'[8\ݬX.A8/]X5 :ǵ)&ٮ]>(wVԄ>` ۥ9G^DLb!S*OV־qq)Tk>tK~Ds(G3+Q ^5<߈tysG~Q9Ri+prE͒Nt %kl^b*Y\phG[X́M*Sk yꇯT6O _N kmza֥"n~ГFtbAe]| aL}E_ |U_;kTqkqhBtR(Yc"lSZ޺&}M[7>xu{гg_6"={Gq#o?)ؖuS '/ p8O̞2H .eH!sUt~s]Uq d V.<ũr(,evM1,Ec:Y ݡwv,\G[£Փt\ .\޽TJvpkW99Ţ!Oֆ3C ?,6͕X& x)!,6/@rM؉AG֙?qT)!=욃 @5+tQgt`0VyF"`OA4X{ݿu?P w]Xդds)SFN2l۪a ¤q(SAmbܙͪj𵶀(-9ۚ3 K_(38nƤ89XAXex ވ:]S9%OV$;FPQFBn98if}GYtleJ=: Iim5o6֡K.zp&EhV&dsf^nVߋ̉|CL^CQdnfA݂䛷?>: kt|Rb!&hZ\,_ͼq?)#5qĵD]YDj[@!Cѕǝ`u.9 6/˃w@ŚM,M; MPGrn R{A3oC)-g#@1NBtBx\P.h0wW}+ŰNu~^ Sbq'0ۜw4:q-P$`~3W pGA N02wu@-,JO\,@n5L5#Aſ^d.p2[Mĝ:_Z4c($ ak=ˑ\=Mo,}CNpd|0%x#/S8CƬR)3HeHM'nE6MIxhF 3y Z7GZBrN-.-hV[L ;-x@Y/ r{5'8##4p Y+M;W]w#?G ?x>tAorCU%!ƙjK;}\46? ^Q5 \ ,ع<!w%SjXO&ItغEs-uڶ;W`l>/q{$FkcdF_Sϕ4r|կj k}$T&.pxT"yd+ T{7jp"lAlNibDBL)}U.~&G,lNNp/2 $bYw2\&4:%d=iA8d5{dO\Q7wZl`.~Az/}PeםWӛ.ӊ4`;/C $(qGjQV{NYw_px~7% G8 &8|U `&N3%Im"#!oR74ey k(Rf xJT/۬INe9"0L3!hMXJY1'<G*03kNBʀmT7jdD#R4L, q0o h{܀.U[lCN{YnVUb65`#a~g/ЬI2 |FLn<`ͅ8%bDד yjo%>'$6qu!.d(i: 0֌hxgicpP٦8pxWd~Uq6 O(e5V=yhTU;0r!DV]a/p#;Wl_PMAyŏ"f(2hTW2⿷9ɻcJ)ϊqeS h%B);%C JȽ=dNzRLtU;${\e]H>>]"ԁø}`% bsJ{%xhA+预=_<=A;Vb'5e7d'S'8PŰ"_ 80Hb}vL)rMIFHTRҰ ZrH#? "ť7eaބc h+OX+Pl3Oc=gԘ4.`7j0ۄ7B$uڋIG-ã_%M }Wo;1Fe/CŽZc.j%slKn# 0]4uV5sx/(J(E|ͩU B8c.O2ܷf̩Uaƪ(l8_䗇z Cw)8D 22;sL406 N4 {Fo'^t>oq-40$cU=oup yYse_^; &ش9(̏&x$>9ʉX(d< %F=}h\D+6o8+̝lZ Dʼƽ<ʞ?Rn _[aw`l)B h~59텎4KYCdQZ?S bI:NmQAvy9 'Aaˆvj62z_Uxv4i#;ȼr:rE Oz6O~wD1ALCBm8zVkH?5/MV_wPH8 }QӺWCަ!F۾K 8s+JWOő~4RAƶg{۬x@*]f-dArex,-v(03 |Nxq.i2^_Zg $ڣwJ7$m͔i(:W,Fq8xk ; {=A161Hk>)Hs_9 H8Z~T&nK1Ip%nf]~\;[ZU*| v%u6!PJ T[π 800m$걸"\1/ Ϝ3'lfʘ_,- .0F2-aAw6q )Zh q=O/ݑ-^B]K0T|$^A^+X4-K; Py`̋rJGPURꮌWbySO\ 6"AcXĖOYԮ4!qAZ$kF^@T،Zԫ^gq}{!PQpQoy#iAZͩA'41o Oti8gIM5C8D.=TZӫ߭#)%x*! =\f~nVAV9<4pV0M`Zt |j `UMr_f-  &yD4\N)@NxIKs]d`lu[u!fuKLb:gf R&ܮ6$ p&JHP3(`aG#b&BG gMth# #2I9)za #JW `u 19LP`y<Gh  [# wҸS:`69`y` o8N7`oI2{GY6Ze͟U)jL}DqM,IZYK$/R` 4L#rb'1'Qp6ɈOi(Q[@ 'A꥟BpC x ) yP*I Nv *O s:))YJgOc:,J rǎ)1`&k-y: a`*pЛ? W![IFU`U#JGd&c?H7KY>j^DCH,24PSLlv`ٿ0 =zCB5`u}xH/R,94 ^*: sתbP2Ye'By08|(V U A M+(w*4םcQlD!y@_@Kk;ڌ@ 81N;j" f=~6bsDi[r_8 6s}abxY>@K:-Ub!kN^ LVhxQ=_ä5$ Q{T|T ɗ-:;0#xj"rD|ݣݤI=BDu?M,CUM aƕS0خ& 'YM_IuKQRpUg tr(DmM "&hwֲ`JiKR.(P<KZ=桧B2L/q$ynte٣B#[qIOt=qGǷ:;TkQ8Eov=V0\e&a.? 91}21VRb[\ݱ [Q=v0,ouYռH3|TI$q^]M&lӜfl㷨sɠڽ73 qc%PX}xywkPד\pM"XI |J"p{ ЎI(TJD+K6C˵B^WT:I(ajTf\!rһҬhݗ,]zm @ZV.Y mr%/t\; OROe6؀ φ&4!T:zӜ/iv~CXpNf2$(Ow48@%dS[ +MmZ*|+t/?vކP\T:*Z {!YN;tpfYuѱa%UY 9?5<%Ƈ]"T@fK  g-wd,8VNۛclXDW#Oc-B?f"yq@.lÊ uKUn5c:vಹ0&aHD >qs؞$ĊTJJ}'r/)+v~`ĹՁGm< '!nvWؒ p%#-Bt>h2D܇4e"2敟i&JMcT r@Z?u'jd{4]%"#Fm[؍1F-pͤNjA[ڜ E}HW~Q,̛ f[jV0uzYe=O0^5JK>}\sa-}_pfsLu nk۵A 0Z eo/)ɦ6uK*e.b}m_[MsU= ^7DҳI{-AS˰B r@;jWt%99Ep=Nm_ΡG7#d<򳹃\{r߄45Іs*MϽCPړv0g-+-=D0D\:DV0N3z|xP}.w fd_- $.[I~t " &w^%TT,Y|HX ԯ#;Ujq(GsDΊ 3S/'9_fɻ\2tqQƩ/ǐ L+0{+)> Ɵl| VQΚmCt+F.5~2ӢIJPJ{X /讥]buf#lf\m\f*-9ݦ&A$ ۉ蘼s#@R.ICU~Vr|hK  rp5򀵮4uU>a@ll~+y5[1rJckE7AJSť(un ɃJ} 匟RZkP;b '@SL( PULѬ왩YUCtz@9!~@1@ '|@:ii,K 񻪀mzD8 LL3u$ 'TE x x7X 11XJ<}nD;m! (/{/#"rʙ W79l;TmClǡ@LjY>6pto" ' &si=(W&~ZJ9n߄lj7qPHkZ'ʵ?QA,J|)›{'pTcl&Yk4dҊ(AvPɿ9yM8ioYp.lNYwdm$sjK?|rMq{vƇy',fdrEUx( Q:M~)G7dQ)]ɸ#NF{ E|΃7NtyN&2®됫 .{NTf5PJ;Z c=dBy1R aSم~@(80i_m5jԃmpiƬN 8m.u5=vH08|O9rAdDkSn@Ւxs'|Zzz?N$xW0f :3Hgp)뻴:ÞÖM'W*Xھ>o mVLuDnXpt ws;K=׫4gs/FJrLzp*UW'(8^_6L~xIs&N(84x.R݀^¥2x =S;c>n 1~i FpCb$O]$72H o-Qa exfЇ~c2#C7 |YJ*ddK'h4oJHCҏ]fFf ^&O:] 8D+q$f7}g7ha$Ƕ8Rv v 圛yȟDטp^@Q:N"@ !kX t8ӫR )h gU9YJjRmlX }2C [`6)&QNWVWEm T`dWA??R,J !{On8K䌇.*xtN8xTҊ|>HеL1Z?<"<RGf`{c~9&`xO.$=ETI][W[zɘT̙"\:J5Hs001 X}wȱ e7}<'|`fP4ݲ}QQZfcr")P&T~ 7̴>c$1etk\>&eDc3` D줘شF\z=&X{$ g2≤`Yf{_Ouwϑ~hbښqA(ݎnjeI$<)sΎ;<P|=$٦_;arKEE^~K wi=V w{Dic9Jm-r #]Wцf29,Ju쐬џ |g`،ܞ+ k7dPN@}'P*>Hq}|.TxH~ݹ!2SliF#!q k'XX[fE52<`#L[.hWٮ^µ́ AレXO:,ĦviglS( 8,@B y4 p:;;AjrS͟2o_}NuAʳȱ8L3#eDq}<z:Ed11aOkt*_tCM~>z` 3 T o{AªJ|h 1ʁ1]-Ϲ&aA_dYxitꍐ kFNOgb"yL?@&Dd?!)`Qr q |\|=-IiNE(2G;:_P-~p̶H`;1oxIWEwiq43g\Ma>w :@BxOZ9ً[Ƥl TquOPx{.?<*"!X~#셤v$ABvШ[ex~K@?2 &kEUB̤28\|KD*°mV]]3}-pTI[WkRkk"M~۞= mŎr}YyKC+8ThmNvkMsB9;Ai. WY3^P+PL?,: 옓Ui19>ݻ pP-VM )n]՞E`q~ɍW ?e?1w.e珞“\g>'qFsȖU*,*^G3ϊ򊡒ݥ|~AEM0b%TQoxlV Nfi瓚tkZdԬ,o} -}v.2#ax0 s'~aٖx PN &'&C#Uah3"#mP @~ٿ+U[KʯV#/3qB+ ӽ2b2˟zXdL~=vX.ULGt݈0"H`(9mPBG$B^6 Bz/ggڔ }!u|TgŮeZp):m;ԌC@0k: "5P>max&Ɍ8"u i7v>j[rh vH( SȰ*{[t=.=H$])ּt9.E8?OR#bn=`շ{2TWAQ܄\Πf$9\Kp -Yy{գIUPRnN!1E|yח^huYE`yPfL'@+ V|fBP]=kC_I"5 0)Ulإ"&*Pz 5j K4ni:Z$TpF(X +jFf2n}guv?hzbc1 %X߱GݎTP:2{I~Y'NTZLwO^ ci2yhZ=!Fa"VpX'87TG[0ň]N;F;73S`chp|X7}vƤl iucl|+.]W!OPSo9Ml˒6@!dWlUFAg΅ATy@0k*2b/+,GY\ q ۀOv"2Ki8*87q-j92n d sR!K u>ݻU@ h(ѡtp,&\$ [u`"@ C@/cbl)9&YeKdij¶rgtD,,.z| Mqc]01@!ֲ VFظY*!ꞝfC!LI&@PGч́ GAǪtz͚LTT " elm+/6ii6 4;!Z&DizSLPn{A3=2~EN86\I"kkj6tTB "$^ݨ`~u1ݮ~o=UVlf۠v@>TVP[Df|ڗj 5 0Bt=:wRLP7(ٮG'Gqbt=8[3@q 82BxmaÇūz n[k*׀ Kl\ۨa9⁀I|@tEdZ mP\fAX1-s@ PD$XjiہGcwhjf'+`5 8L>b 8T`?֥ dIPo%~X]fKB`+eFRa35x` ŌSg#_zqן)d? z+pYW]a$@: QnaWQ*)@i-6-t;H6`vP^T n%C@I95͵vરd/Wډ#_?%V.@o1UЗ2;+ ܫ$E4)פ5[LniЬO3W {VDŘZ'Z t'7g4N/Ky}_еLյכ(-|޼*:uDD:ʾ!5vG # ر(,]Zki[)ޕ"4lEY=5o^urVƫ1&v1V7AA-W9j4WHglb-Lo;=ު~EǟԻz8L!lB@~aN L^-\_[hz^߆ܽHs$x2J!hW 7o=D\AzW G#ҳGB5DP^B$٘C R@TuO(қـUFb(23dG_Lzbim2wh|,iԑcd[<#ujRg`3 }x3>dsb9&ojIZ!n@uCD95 ֘'^R Hqsq%q%qi"%4w@E ( TfVs| 8~Vs;[9~$XiʴEPRNSi;ۦd8׺Ҡ хPc,=;G3v}0A*cP/‚)՗?К&E6={NτH@Y@"8ʣG+Ƿ+ au1}w!lm8ࣶb"`+ /eքpSɶ` Q3*qPo|_랾98c&h8N;̍7K <{w&细 )yMDzܴ@:r8yrZy(b @|θABW%o0Dsl}kqOkʤ0J >31 Nuc(cֺ˯b f>҄@'U/0 qK#Â&Id%uEQP%DfQylDd[Uc{ X̶]exa2 qo`2h4u{TN $yջxBv VX#Q.>nW*Nq㩌yF冊1k>K-Gr@bKo$lJ"p9^ޛk@%++O˸Etѿ@~C-J*D/>5:Kͺ\KE\SQ;6T.wn(f8Ǐ0Ot=룑0Y9fsŘu͜[Y/0hP[V9-WDм0,HbzmNH$jXSޝ]%PsЎXtWg5sRp+-3BB;ΖVXL@UbanM[o!UB $lƦ_! "-=XwC&EMUHht؇t/?{UQ;厏MdGAdÈ"cWK|(.xڼiN"N/dlVa-~;y"\XԧR1H}(Vcs&PY17JDž5MT'0@~\\YN~ͅSͲ 琣LXd<"QZ'!d8hz`mI ( W>(`=ԋxk1J^ϗaLX-Q{ YDQo4Km۱Sރ'XItN[Uˋ-QjDǝhe57M IUGu"1VyX(n{jN~u"?B"k[HM{-(`!N*GXX8u@_b^'tX 8ԂY*/3Wh@hGӹԵ˼{1מnC(pJl ӻ/ w֊f@g{f-`+Y0R]D H{2^żtu ?%QXHs$`8ui2Kbg#?ыY/BBk ,w{꽞ʚ-:}Y"ye.U^< t|pA!Qq&m_{q<,T=_= ijɶ8*R!U `}wK4oo?mi#ŕ|NYXD! tDfC+0dcoدJ@Omypp,9XR +?|0ݧǘH8V$L*Nx 2QIZ7?B|sV?%"0#u@ʡfCig#F.6Uqa@l\- xLsH࡮pT po4 ʷTa>b>sPc~΅8; = ʥ_Wnu/|s:iLgSC,)+jx6JL'sO2B?za:5cӝ[/q{,- ^7tQ[9=5\9Uueo5fæS$2U#|qfFZO!ȃkH7Y K%I4+/J<j\tǑ*IP(M[Q<ǣfyP{bR?:|HqӁ 1mX*[y[eIja|S(2N(lBwNUǐH͡R.J~ϛ ȓɀG̯ +x;0yTS51]Xonh/U0a0>yU1j{rAۑ1c𠝄eHE9lUWc6az=!%LGK?N7ECeYEID cW H}Y<=@j>n )|u {DtV~F>6C-W&UoGȥ)'}`ʌ $9$ViS/\ >skqʲ=> 6$ (}Z-}Oн6z"yGmX|GJPxNj>cKi 8Q75P*-z*qc{Ezt@HPkPH3٭J\Sq6P1sH+ZcrϱVԂCvcc_J)m|'!p7V+te4 *xJ幻x#`f/b$?HU>Ì:˚jr0$RAi&r܈ 6=OrP (>lopW|6>johԖym]Z`9EG?#}6%EoTTDfް&t܍49;6I,` ;^BNPҒ~Q΍52%ڰ) $&( Lz2\{ HJP@pg/Crw`(%npؑ4 ( @~QܵHR%3Ž<SOF7[\`?Եi>ǀ)Ϳ?W,_GBXy- `Bh dXG' )KN^E2ɋT@zvI'@x>|ݩJQ*{=(yv 9DV ~>ILMrQyZ0mPl)"$`#СTAa&=eW)mAs m׋s_r>~".BFv{`0n$X/' y mAB,_GB\p}8e[@o' p\t/5{[DvĐBjQ=꽔%G/ ->}ڛ 5P@{j4 ;m!^}%)OvT`U8LV/ۇ `G3HYF59ѬĘ^Lr q%h꿫PkŠOz8Fn$Ggs=^"T"ôij┊UL @UxCx{bN ^@J<Ħ,1->#R9 )ͶĩC."03Dfbf xJȜ3̳٣a[iUK4zI\JQ#j͐6 ͥ*ɕ~tX4oQH_VvxD8Ӽ}Tv4i\uŷw,\^d$9ENz}zeIHpGJp%,wwHR+G|:h.S( ?>}#|[G}7AL-Sqmxe͢{.CicbZw ihC&wiS|޵<"4^vOc)/g!hnRd"79۷YwJC|Ɖ\SW*G;45Z<") A"AjMjgp,c9< aէ< <]7T H,#H& &8(n'q&ҙ ,]pkET_!gIґùysq ns9n+f|i|۽Ts :fS 5(Vv@wJ\?PK=ɭX;K @ 'ܽE:n}iA[s/6.ReCT< }`2)1Y΍EbT2O0ao.U `[R5a1qH:tx])=je0~r|y^Iq΅Tyl JQ8e|_ȅκ3, |BbF27qJ0@d /65ًw"E⧼+xEYT]3k0o鮲!F]O?E]M=P4'LAhqRGͤ8X|4JhR"5q`uHlnUPA(82M(6XxX^s_:wqe?@JS2g X4ձK JR:aIRhZ۴+XW%mGdg@|ک$U ԫFt$of߂KB j^ -눃{>?ʴZ.ϳ8rVJlż5j3րqw.=|8;]hJZGzi%UMiFCs(e㯀_Gd2m;46z >RܛGD)n"ӕ$.$̉WG5|WP ^=U >9̱%0vwiekF cG&Sl{zxRD8-׃'0,~5'Z4Rc\ Mhj+AyIaRzcg}?4U~k͞ozLmԇ)E?IMWn" c F_f;, Ч }A{b;Ƌ^NL5']Ƽ#{ϯ˿M'2HH@\\fX xM!Fʩ^wYo:b]5|FTץwɠ%DK$R8B("F0 pћ׶m]ӟP%:r7kCC}-Q×P$YN{a_s9> nj(,u .҃htb1#La &(Ҍ.mCFK^`Ƞf^AmzUg+A~C-Lp@8g a hY+ATa'#LYwmܗӡ(y>$ 42! ҿ ^]B;/EH[Ul7?)7ܠ  @GAɒOzE-"fso>yVh[vZtM ֦"j| vSvG$b+U(篶8μS<foKKpwqOH)i,V7p쳄A|~7,#U'] H!qKa>TUdm/7x"|UJ𷀮Yu!ǂP퟽uωiR<5PC[03Q-G>A] p@M ]E: ot9毘`t9Gk$\I* q.$SEDPLM0+k NG,JQb4( _mb{9Y|\HU)RjpG,Jc!%?w7Pk(!ޘa 4"TUSv" a)̎i@74~o{ZPڈ@%*oCt b:yRP;:U0ذA57; L:WkN ̊4#ΥdaB̕GGv#M\isMPwaӶ,5?uc^&b+n@%͸uK078j?@s#Zwp5p\a`sޑcZ>~@%E.cImʃelYə:rd!Re!~} O[&Հf5o+JdwX$F܈ȗ KC A(Hj|(;Jp':xFm=% i?~BYE|l9 ZXw\G.,zN@I@ Xέ{ f}>XQG& VE@ŒjQVE?Aiy,`t[N'5R6Y? Ta҃DjlƺB 6B9HRA4!G,5oo%e#f]CbB X;ZJX 0$kX>l 0]=OiveUQE @6@sGf9$X;* N"Og"E0X1F.pN~IG ?'45\cɴCBm-j )V n0М쇅z70hJ"?S"= *$?m] [d;.OvDzAB|ef(, ,>i`뱀㜍LcE47RJnR?M`09>WFQx 1!hSG ȅ\r딳  7aa| 1$]8 -h7Ul&~`|l[@ fW*]@4|$g_h5@Fj_p]}rE &@nv^uZ1T! shY;3F:i>_<}f)20*QVņksyKm+>t>Nx4T@z5ҡho$@xhT q/PlװtgƁ&.Ju|&~a;RC+xD 0p׵ۉ#p閟N1L^**Q 7U%(X W _g{zG@X (N݈jca~8y8NM>S X3 ȞnaQ" =b3߉it@@@^2QVd:p̀ua{| 7D^K Mwg SΒs;MDx΋uo[![jKI]ﭨYkl~=\}xk}%ےӲ3DB J6HXӆA y8H%+q:w6dtK\K{adIv&/TqS`hm*{^`dPA9yE ˫ggUۿƬƎQ%_%R&r)'u$]Q4 ڡ=BȑEÐI.#|W +=B׼8xx-P!s z mG8MgrD Fih&wuL<]X8gH1!pqAD֎{y6pp]Ӏ­ >̧H"K&! ~%ԝ,%h]G4ɼ2qW9L {kdfW'1Q8S&!u)̀GDz2=7x<l[395gry{Ff}Lw|Jk:ƈ+_O fhk8 _*(I`,U9sF]ĜFHA:ŸApZJ)mY_{@v *5:*Hi󶱀n hrhL)NdC~m6Hi&曀* _JM3Cz 9ܦHp1 ¢8,|86xpv{\;1%,(%C3>9P X  V ֗`{%(h;GDaK ᚢ$c'e\ΟĒi׮74Rp n5 ofʾƔ*t 8 6t̰0YȗXvp~K4Ҭ#پHO*RQ 9uXVhϒ Ql8uLЕ/0wI0 <qc{ o.@ 1_tU֪%-?E GِDMAzogmt~(Ʀ,UrlP⡲K[n3x~66I< ]y6'pQ!\Yʌ;C!u,377MS¦=JD'd&hu<@ ~.a _|ɠY|^DTgl@ ?Ctñ1H,v)y{䱃fZM+P&KAI<|}ٞH^ YRaepHX& tZ&)/7wؑdHX?p  !^_c3IdLc;I8ǹwb*-fq 3g_ Ck?hBBg@:&uh &G݅[.}TRF%p8T=źe_^P IY ',>B!){<]k蜗ٓ MhyFb'(ϯVGZKm P b ᑝÁc!A(!Q&EjB v㤗RG%A?4ײE8Ü=hC?+l mG`Uޑ+ƺW:ͭfMOE85u!˻j7i'q.lVq'N ^ >_'(ocՑb_*%7Ҭ6Tjl׀cط[7쟏BBH@+zN_2_FvL^mɸQ ߺ KQ'VM1# ,Y@"#![~ҿsn;Ŷr蠖W s3{1ư3Bdsk}o0Da2: x +jƟ5#c ` iN0D PrƶL/X-4PKߒ~'MURm(~PsN!1 9MBV rȲb  #*@TkWn2m9KiV,ENѿ6YVո:}dо6W5)50@L Q@Wt LsKVJm{+U~M$F:IBiG_`ĕ#!^cKQ@t*(^|(JFXI1T!|x~BNm2~X\`I2}f|"6moǾq=46ZTmp_AH%X+/./؋)9Y1p!ii@<$iX6=6^HsK Ut@H!;l[®Af\}=Ո(V8{Ɲ-ЀR(柴I@,'i0;bȨgJT*Eb'yBږv0XW-¼.JtPp<7MX5%R`-*F+'^KZ;j]ݔ zT$.Krrڷ@9"mBDDbIV>}49a{t@Ҫ`Zt&xgt4:Y86o9@cw|??AܘS.h@|0DO($jg>> G v jr!,+.S]81@JRpadžQa,%<@ԋu5Yㇱ}Gn,T6kM_>ѻyKV1$rxbPVTpBuqwȝY`P^`dq23@]X +XQ簶L/Pm[ϬenS3L r1vΕtqfhA]|HWޑ4 .}&8#o0tL#hlOwJԖmUDR;i6';MU4܅PD\e|);Y/VeVu@;/ZR٧/AG|}'Hs=X FtB?fYT2-g.g 9󽵰ǀ#MIsE`\+ ;;io,}Yчt ѳn - 0ÿGȈi(8 8m|B@cW=E/l;`zY+D X>o DBn?Bv)Wr@2 Gykt)*o:٬Nd`e칃,hRb`En69>_ݜⱝ;9hugqr" +CPaA:gcP X;mz~S`E"4jrvOώqz  5˶U9+9RwQIZ%*AM,ǘUlS=HQ'p!ψu' M3-2;,C[|3w}GeM0!~SV׿&$X'o`}wUU1 W 靂% w@zSͳ:Φ,|UŰ(;Er梌2̌BHpV\$'D#3]/&22hgJu/qmCT~2Z?䋸@@es*)_zEo\%;Ϣ k ̽E;=U[|JAPO$N 1qH9AӍI|> RE8 ҿlxZh`G UՍd}8QJ!H^aabye9a=͌=ո'_r_=˄)# P{@%1=t%b˝y@ӎ5yLC+&IZtzŒd Oē> ., /&~IdD|3[z?9gf8ȃ<%qt}@ $xl_ 3$6s˶YZqGm-SB FӶ`c: eCFRUEb_NBVGYJ,QxGci9iN NT?2{0EVld̡:";1Pi1rJO^>p| 6Ts}ǘ[ ٽ@v\wF-߄#Og(/xPF!);|*?]I(_LI{];tllRiRAQ eݭBD/A!mS_ؽpK6XM4mH${+K~ ,DiE6tK 袘ͦFzŭ@*\AQkg#";%2V_U4aVU\ o zeF>|^rjiDuFKF{v!*)}Yښz; Jc[K^V%x; E5q~&cK k55e La," 8Ilpn%lKōD>zнB$\\8r_z* 3iSQ] $`'D-?`ֶe&>ߝfCܵq[u}l$ +5|niC2q(Spv>2/R O5g%d!N1OH k'Q`Aniﰗ=V]I"4&}ss;E率M7)ZΣLS "|(Dx{rJmgoG"a{e NJ3NMJ _vT}Mad3#MPqK}p"-gkr}O=+6O!`!s]!TONeagIx@Ýh ð)(ƺj9R>kjW fpQKQjA(3hy.h!͑L[L`n- 7rv ;aX 1k ]X7Q lщB *+M/q$dv$Y *ɚY/|=JY.MR;XvaG>mlS俯Qjm$¸P@9EvsBŕ]'HxgFmyD!\~^/v4?]xΩ8t`VHډCB)}OSцx[㆘CC5(N^kxD@~ ]K&ߜ7$%sv'o͖ށ tꈤe:Hۚz69$2h*⁏&^3:pʃcZDʼ~94E"EOacD1v32ujJWjlO6cx>aDP3 _욮Q$,JS4`l;0cM?\AbTy:0on<7sם 7<Dll< : kX7 ڤ̤- =#EDu]H1cAq 7?EebB&PgxQ* Z0,.F=cLL[iTs T_iM|\b4|O8)VXR4,ޢ̅B=6N&kVBcGH~'i?. ͕Zzxp\`{Ĥ4ЏiV?M&UzKAtR򽽐tWM~?K04vD8?gcpmw.(֓dEInldL.LB#P [Y@%s=9}i[, c -,LElltHq8{6\RI4a !?]ek2Jk/9RnG^8=P) Ԯ+Q!zAJJh8d wsuXwh3?/ Tx0q$qJ,#`J=0,Q}br0C&W O+gT{ózZ_1E !\74" 5K b,ar&2EID @|-h)F7gZ ZK~DPAśg')!2\L=DeaAH#XOӆ3ܞa4~ <{r5&VxĚ_7)aݹp{ԗzw[ѕ#9z(4pN>8:([]nd=.q9O.j֌WCV /`#Hڗ{QOX~Xdztl胯0EHR4$biX]5a]IRB $94dfxMyLZ"u=4+S4ڪ*X^Q8 3&X4/&zlTMŲ(1_0qۮI{ϙ]Ts70[N8v%CG b86B8nxh*EBo8grB9ݡ6ocŝ#?mvjZ\Z'$5IlۏD_Or0Dxz0>U1}:$+#H\2-d@z_L0Tc5tsifsC 7s>Oi)<|lWoŋ,G6!d,tBL}w]jtlPoٺQ׸?˻?hK(bSAe#WZ(h_?V6l0 +I܁oDz^?}(藮K 0USysީK@ &K\w#s]\1<*?hׅ&VЀ[[閾חp,B8B$}!P*(^Igzlpzk"O[NZ5%N#u ތ=vGڀ &cf]Y}]4 2Ώi`;25.y(q%1@d ] ;A8}>0ꄎ,[*i&,~RN7Td(=>Oh@@]#!!b#Qɩw!cR]4T} o _9-YBAbH+SWA8;s-^)~,xHR}+V4Pe4 SE@L9[a0ŀZ6w?C3BJ7Meຸv:}ikJ`OP V!:Q0!qAuv e+ `Oa^k9Ķi >qƜfAZbВˊ֙+P ',5Jjab›NٍMr;4%! 0٣:>{zp883j0KP 6' ·Ǡҋa+~(jl& ߚs}5 AQq' ـm8LI8egdxit CRea[?K ?p*9bleS7y1 U@F9 r;Q BM}SLEEanI5ƍ2%oE=и-=t)  ȝ@@YԮ\;a5zT/K3Hq2Hcv@*{\QJ0>=/o HH娧ԏ4}3)~f H/z (~8Jbe- P7~iX$o2H`m˷ fLkj\(⊕a!n6sDK#HEb6#&>|<,2V^ إhkm#sy$kX(K"l=PΏ*')"wdՋ[jM,թM>j,wtECFZ-KL0UV|B 9 mpJzbMDPԦ_}!U3= KPDEa=93?L& mIR^VoY5gLZt,/Q UWqm!t~ r9 (1O 2MdϽq u$~ˮzg a,8;%Q\'9N5C?Fсz'(nNK`>M}ۉB 㒚EYa Qu[B2(H,c yqh$^GE\ZWGT{F *]K[ܿ ج`U R3057ު"2O:7W{YU j$]*, mIikN|Ux'oYC&08^ĒRt*boRa_F nrcx$t\.+c=oBç~f\Nz[TqIB4K?SajOBtQ\˨o$ hA0F,G%WqӋ8B(=/IE1z|xH("9*}!6+X %|{; H}Fq7a\y+ER7F4-&:– \nB J+3@ken0AŽ+"#Bpd6cm~8 4zд^拼nEu+oYZO~)!|Q'[+Ihz*i{rjvg- ]|*`91ڱJ GΝT~_w&CXo5AAzϙalr3؟*Fg% -sݒwý$]o=06<fsyuuB{l4_) FvX20iX6c?} O4{5=$VbBA̼0 e.q`Q8J&KƧ\~Z}V9b$DA1AĴe׵<8G IbÞUI6(F0$шq.4kCc.nw;J},pZV^3LpNǽUdE{i&Eߺ+Ro5}e &K `}ow5U Wh1.3pP뢫=cN8%\y:Ň?\ 6_RQ&L~ӣIȃYA6SP{sM aw̷4LXedz+((KY{gҏ?- 92QS5x-?f8]}]CS^Hb,:T ʈB_ftZQ +vQ֊jo< zK[6"$ޤoѽWȎ.XRr݀.X|i}Qc(Lp}Epl*8Ȧx]vVOQ7w5_07V@%<(ZДN@T3O j|wbhԌֹĮ'HM QW+H% :ueaz:Rp8Ê~.$2d%RsHAUz{B"xj^4¨%/ ޝX|HY gyǀ:w )ȰwŊBeRZwc鳘-h'Z8IqNT`qd+8vwp^0b,o]1LИ0l.yNoph5d-*g\Suu%#Ċcƙ[ev|/lF|bԽ'cgoaLUj]='>p%o2+ (H6c2'8 h.<6o\1ŮcbhSZ4D&˹D!LqYwqjJt 8Iz'VAux#\CGߪ׵ le6pu6] ƥ>P3&B@\F&7-G :)]WUD๜ZDFQmЍ+˳CEHP0 =i| GKfEEQ0#e=ؘq"ZTݵwR֜ͼrLt~3gАQw B4|~Z(TeaPZy<ǩ| tg鱀>9L$쓡tnqSrb^bT@M;מ-+ӿ3;;ӈa ܄`܌S놃 8BN:`}zZ3rEmQ.;h^[j5 s 2Jfp̣%p=hVyܱbUz`IyPy(1sL)RI>w}b3=6~UqMڒlxfHB OZjJ|`Հ|i?72N[`/>C9ˆ˟Sl0F&e" n-KaK`վp,npC݄ZI ýu(zd@E:h˼ * Ɇ #.@y^[ǻJAC{DB`*D~n.ߨ9'C,U=- ?C[S^Z2\T`gGe;(o?P֞%/U2P+Fx%uАru<@w.ggU mUq󷍈Oڑ?Ut7Omw#cJ"ġYl `6W!UDZࠍ 1q(IV n\//o:8'xaCAWJԨS|+ѐ3'W;nWqRə BLu?PΜP߸ v4s7N}N,a4UeGy=1ʫEP971ZE];gżm(,^MfՁU=BSP x|NӺi.2T_yqe(t`?KE^\ݺ+/MFIUlzlթƓ l(È4U*P: b f9%(BH[I?[zP@;q9-n5>xNs hftK>^JNg\dy?(_G*.8/T2e>u?b ]@To(j†*8t֮7dZ"| +h#&ܱ%2*93<E @!o~~5T M`BK"g//GQ5J_WkT6jPް{q´!RaP4ڠ&X}󆪁]ۏ*nep$7 mH94h/],R!º,@ ;2moU‹::W%pehJQnXth;^rǺt96 _ >8($sU/5d ,O+Z Vk 3 jh$ax 5FvVKͪ1Vu[ka` )2R1VUp(DĉB_F&3j6H/͡,4?i #)/ DXAgi/q:l1GO eլYH[~c5\7Y ]4Rb td-N}[5\'ZK7 ƯT@4j|&ۢ< 8!bx ToSlh#|INƄ NUǖ u f@ ߮dl:YJ@C)s+)TN o&쇦uGc }Ml./! r,d}#Ti nR2s/;VCRAE{. Vu / nvq`^ qX/EͥZ{8TcW=e] ~@؍v!1(]w2rP@|O~tkrٰ\VM4sac1žg`Sh 6g&<X>^wӀ{!&ߋͧQN+y*aD1r!t0>/Ua2TmXmCWV9;+i jت&1 wX3ݨ$4" ͓c܎LǁDP<=~)0cqd&fSI5Cs@>$`JG<x, t !jyY ]H W\$)-fN! e%4Bj)[ )[ -P0~9VD\Mc;V_u%} +ЭjRn0s`vp jC2hZ~&"Q+ɧC93I3ӝ ;l)'nC: )-F[TH%/Ә.2Q({X&pWG)6RZƋ#m}6aQ6G $N"jp (~Z7Ȯ1_ -:kmj_o @;Y5mfנzhx;gg0V13+>Ě['݆"nWl{ӞGa 8R[>"njNG$yfߟ!A :=-@2y"OX~gA^{i@@^ܻ( wKbqO,ݶ7t/h9 1Tfm"Wuo-FR4$!ߝ]o*Cȩv(y;N|,L\66iGrC-Aٽ5"ɑ#;o8ށ YtpրtY# 6ft T.EE=@O,bTY,Z{Ʉ"8Bg^ViXƮ$3=Uow}O+ #2\ ZDՠ1ۀp`>NUr`,{&h𼤼T*Rhq ,x>RggX܍րAB 4 o:)i6RA xUم+5~7"-QLPIɪ!N0ux&'4n,N.%Oԕ˺f= 9ow Nh ك@L\6{f6$;xZ-DT0,)Ϟeu?sat`k~I Ԏ{97f]A`f'(#TW&-P1'sE jL0|tғԱ_E@bߪ{ Xwe1y"u*S !jP{=X0Y`c]UA|ż~)w ( ھJ wL׸#aeG#$zlk\  LL?0!FN=a.u&Dt3 r0&9k\)5HPsy2L> C;Rsi aF4 knf:f.e)6ω1rē69EA T ӂ# o;p +@HG y ^SШ;Jg(#z ks65_E) !ڝ΀Rg{n_d;&hJ`>{qs'us2rT[½4}8$ErPZJ2W"lR[]c -GE\CoXRn8[Hx9@{rc!c4`Dic]/%U-3m'6`zsJ1dfZY/֌?ܴڠRX# ey,EPYR%eN/[ rЯ>X/ڹ2ef<:`3t9̀p3i6\%( J9{zG:c o'~`ACt9gAS>-V]1Kw0 ~8x2ĩE!xycN&@u4z`cLF$A-jniM+Faر@ vִ6C@IfI O5%$ YAiI@X3#yP K P!]A@+Ij heeb)L*i3ogR $c 9ǼǠw?T=PP.6~8%o_ 0qAE68JЖؾBe[Nd5>)3w'uE&rSb2ZqSK@{' < dfМ߇` g&Zt$)ǁX,^>G/Ztɡ(`3N-ň;jh@p,P4hFL; ͯMs5BgVye-,\8U@ '"<}4E(@ )E(SAdŀ.i[;װceV5I鶅i1TH%iX;QnNWRIr+ )(/mVPHx(M tL*1"zU}<>n >0~t6+a%z@ 'yH`me9T% AezF4"%B_/sbB `l3HEKN0p]E*I7±j5>i̖pDJ+%k{Ӌ@lI \_@bdۆm | Rxza jMg(aMB:tPʛ%c`Yu1t4SCq۳Q)f[zr똌\;Q6hM. fQ (3Gi` Q)}k;T@s{5D{j WR6u+tCt QKs`MSQbH5CEmF~+8W#`   q-<JvELu_7sKkg''ϧGҿ_ wu+?/_k<!=~+Z=޷aW麟>>Hzk['_ݾ?}t~4?8i |&@㼮 /yV,mXZ隊HG]ĕLiP8Q)_o?nI %1} 5T=S{l׋) \|ɄgNq~\C\ʟ2^y)䟭\,TqT΃q=%_3(m |Ktq@EY ߢO<Cz[c0&  O&2$/0E8-GqX,hF\NPW.̽f B6DUoxg ;#Ϯac|28k52c{Ѝ \)c"}/C=Wmħ'$P^dfw0Yh]]EųvKRFϰOg1L ʓ Hm͈_,KKR8ݤɷAmR ٺCs]e'V|P=Sx6^j)i$P_wA?FRC(sZ賓YThA]_r>A-3[u?$v瓵L%J$*iU=4J5ጣf|qbR6"td&Pѕ2cQ&<&kX;2-Hg$dIcӂB:7aR7PݒY[pL2'\ ApO8-d @!2Ei+>wQp, 7:,&źj"90%en g^M "ȓyNΊFޣhWjI[ +:x x̣c^7Үv:DXI#36 G.S,jH=,X @85@Z7(ɴ3!@@#DPF'^!{hQY&kZ0<Q{])"bm|V N_7iUTUU_87 UQUQy$[; '`km9)/7)az:L0і0§$?]%iSz,~Iad$ijDޓJ=Xq$HjA2Ђy-Q׎.#VcpY][+V V=,QAc0 j!,푭Ne%>ƽ[}&vs-r3Ӏ;7H L 8-iNwWDvG+".<$@-x=EFHtOAm(Q˗$Gdy<ϖf\'sFvz[GD݁{gM2bd-93t~NApzf|*ˡ`6(@]MY,brս8\禖5*Et" +kmk ==ߺac05FDЮuۍԳ%#rw'')PD-~a&8[>U8EZ&n? J1V< ,Xy4JN0@irRt;mнiwlW_o2nPa6g6IW"r0ğ z?>OȨU#? ҹ6u=S Q;4IxOh T-QqyT9'NdoQ\kPl㘅4O^σۄc3S1KGۢ}3R@'y ŭobH+/)@!~(8wf.苶^*: 2nYGPʡ pK|TJ%kz䝽:E7`+B0]3QT e]V'}n?m%0g-,|RR. ^(1\|mĝ+5O W6o)) sLOhӰ9@?]Q*znhZ1׆Jh SW@e,*;*DiUtC^ U+ /ӗY۫#EX3z!?"Թ2fMN5`j[F.ǔ-@i/usV&D:{=B ^+L>C3)Fz-  q,6O٬5%;ܙw3Ĵz_8ZyDsI[m({yD(LxjCAdJv4+׭LԼݙdQ,-G@!Ҿ-wbSXzӧŽOUoMq ~|*bpP`~|>!q_`a짃g SL "Rjz7$嶨 ?/BDk85 \?0.Lg%evЩқkwåCچؖL NfۇXP 1GlJr#byC6'A/Q.؝ڵiDbb]+vxm4|Q1o ezu⇵CrbcTiTݢ:A)$;HH ^iJNE80:9cdm'Pr5[5; u,) 5r>pWnDwsɇn@*`2UMerfMFq Z } jJh!Hf!z_†jO+'Bei %waTʢ`Osz65[G~jbz { Ъ%}D(!ĥhJngfwח2RR1bs馴D ; xNnr$$l(ؚ/XRa^[(Pulw+1םDziy0yrMTh;ttRT9SbBoRKU Yzqu'GPNؼT zѽ$U@*l?`2c,{Ie]n(aB977+6XF 1<8xBߗP©K~Ϝ!pKu3a2+IG]oQB9ٔ`5KB1;#s[>R!45biѤT?zDTRaO xƵe" FAW>DVd t缇 xL3T1 jY4~n6/OՁHNXBvⴒ6~U lrhQuy^+.?Dz54(<Que4D6X1!@Ɠ?}*I8NGnO9Q6b$LV`vd~D¤k_VQ/6sԭD=:l\S%?D!$`6Uܣ V-ggG$B,Qb9uIR&<YZOь}$fBΈ6Rѡ4/0p$QKr ɷs3%A?&]LP`]q7 UйP (r]ڟ; <Gʜj_T9_Fgo5]3"3b,rQ@&K $I2q昸v#s>S e [#'XGr;݀_ "[R&]"7P > D |x~=E,؜% dbp.2bwÉ--pkl )̕P81w='_r@!-`k!J>b7z촋Kll+gmGxj톬ܒD-uԽC| y;®Zst5OFsY1bTTO턖O}g@I0tC@y#!=ϸ+G9<ʰ"mRѰ9XX7mb!uD3]*+!Sڣtv'"iOn-(kͮۢ|1?_u27]M5S:&^ W:w+L #|~K# C^"LRߟR\癡Ʋ_m&~ۿ/;@M]=i6eFG\i%z/.np@;@IV=fhDSm: $ U'DSBE?cx_1h *gZcb`zHσ1A ѳ)5%`nyr'=. @ ޹.0P DS(;~p(ob 1JD.܀ūz_BKIvP$;FtmUnhCKt.G,o#1s\9L*p 6vxx 2.KVt&G ~ޯ $0'o' ]FkڔԦK4+b?ݽ0 P,f9d*2B4&V:RQt198^tYCά"Q_¸?ۀ SX I=̀ vo_VaLؔ 56*j삌` F*4Fv;uPR4 RGUL؃鈋 1 w0h4qՃv-h@ T#@[ Hz2f`R-ff*YJR;%zDIc u n`};#s5.IJh :!UK /4(]!k'RPo޺32'*'Gʝ5f<_ 4(<>y` l .Ź0 مV6nT #`hnim,9uԜ-5׀-`ȋnDFjSD6TX582S`PhbFԩM&hXzȻr:jꆆ!kZ;Aubƀި1L BvFxy0"-#nPA- pd*ȪW\dIdR|T}&~w8INK%_3/ںnkn4sp+Ho<1p炡PBbt=\qCw{e-6KRRNrU; I` U=}=)x' 1E}VҎqZY,}-δɔn wq1?o&oUŠ$7AuzCx6]DT/Kq |x3~o T%%qIf."t1Z.K|.8Z5:_9E `PNCs.1qOR|\2u.Iy|2al[&k#lvtMĿ i{b;^[I;&kuj,PdqTBo<{dR8Z7tϤl]QFb5Z`6 a8ɀru@&vH"M_ z,<]ld? zR26(1ƒ9Rwi"H{B-E$m 8QU^:}Sc}0e?17/ޖQXLnנ5nk{@|TReKqA*oa%x _LӧcJހӛi (E[sHGB~ 45qYOr͞V0{=)`Gx3,k;fez-l ?)uQs #'y!]hF.ZִZN}y]b{#j J€LA!*"@ |$H KS<8/9IU8Gx3J #(Pz`~Þtu&s~#)y\itru f"Yj4/XcdV:ѰgkU>d hE\#,$d*J 70|>Yo%S!y:SC?bbpo V-o@2ΤV%pZ3NYգNőj#F8ݢc .vti~w \)vm$n.Į\N(y?$뿎 L8EƵ-Up:j՞+BM,9y$?k#_b| Zt giE%Y gj)RE"٣5Xܙ3~(v׊LtP [DSj SZb*AqgwS `Y,:5=1COvj3[~= u)VW@Du^rPT\ܑf6/3xwC:ݡbz3y өb%,꟫zŞX9g ?" yPW:}!#b CA C\x` O@u1p N;51f:דCw!OhVKJ8;n; g=+u:{ P YO G  !PN EYa+uBZfyO /grY1BfȮ8u@)opL/;wqP976#~*!>Јؗ2\r~I_P }Ѷ0NZ3;m PjKfFA;4*Yo}sV+}79PXsYp01{6A{ %;^NowBX:ďߦ`RMeD̙ ,0KR7F;-ν'^s7a,BEi ࣺwY7MS8o ATi}t էB[ I6^L&JӘBS.}:(nK m~QwՀ V![O<$_RfޯF(!"½~T>9`@W4htBb*΅3@A3tkZE@sݲq[PB"j_3~K;[[ɠ .x]@pJ9.% ZxJ^ŕl{!O4!]4+N EG;Cp kdMj́KË[>U'3ȸ3Ķ:UmWC /ݥ4@)\E5$}z5Mg6vU:*9=hG\(Ȅ`e T|+#5u @;"w*௑}{N#|XQ*q-?NhSpwaIIuA:gቚZ/Y_c  12*6 Afc9tgkE[cyn* RVoxe[8,d6O @L5t^44=ct`B?z=91h0Xvճ#>wJSb^cc.6NM3'[:p+M[E9f"]-Ĝ#/VJ<$tXUrMygi $8 3b7 F1ꬬj.&썾`=S87T_#n~a);l km&Qjڳ #,&> DD' = 3߼48l4 ,BHJ OGp]< NCg-Y6Q`Aia.$S?:@B/-L<BZJD [,dsEjDs̢>^ 0)>Bh\4 !Өz0{Ig{6ԅ~`C`jPbd*&.V'|_'XD,@Je YJ7"8 U;f0JQ^, `b DsOqpCk劀IC𻫠F-ޡ=zʉk6u))_-뿣4k” Qϭo; GT9 _rsz*#NGy\uU+ %i>,ݹl-tʂְPS]n9 /6sC*m.PP\TZ."yMn뇶ܘ3pAJ3N:K p?sIJ^A %PC9۬fÃSKpChG!9QଔW0`WT :NPr!?}|_D= ~A|1tB3V/@ pxߝ9˘XG`2ITH0*)[Mľj5 ;zbX/Ʃvi#${&vI{CyDeS@ saOǺ뫕վ|HaSg'כIe&,aՓ >`CkτNŸmOJ0H51̧9%&:⏋"͡<H0~ ۃV ~p|+_x-l߇^F@ KXMGE%@+Nt3Y.\2YKR˽lDd0pSJQ[K-X$T*$D0,tTj&} @Pލlҋ9K~t*ؤ@S87$.X$9zYdj]1wrhs$]faԂxh-u)N?=uW kOd)l›u1Ka`e&'}zI@Q3 B Q7\>J\qft6 D`1"-(]Ӆ@0Ɲ[34%.R'r[hmD?܊ RHDz n(Z/E]OU|xƴOcDF1:'#"of <+6ڭn\D[9y6a2 @Go՜0Hr}XP#QY(Kƛn\?+/#3Κ4A {$[j0Իp(g!(cd.F8g+VˍLjRW -C7-m@=(1vvzZSN1t!wW> כkWe:NN{"]HȒozꎻ;vXGG @ Yv k›>ױ=Fo1dXJ}0Pnrby4`ӫn҇bՎduanxd*=7iU|t twg;E2Q,'(AS+8H`j}(ba<ͫuQ!&PO40U*};*f`6k^FVP KOɂ|W7=kJ_dPp?2;M2ݢ}xnfZgdy\>J'/_FSP[~ekSe/>: c8iv,G~457u+`-Nol4ðɣ1#lF1`k5-+&O@ijg%/w|#t(FfD^bA((RrY>[qCFhӜ#.wfVptaNRgsH&IHxSx,a(?r įh`vT{ Bt v h$Q(k<[l].$kK ;܀^)) 2X<7Qq 86zBfh׫yUt, ΢JZnYqՋ;* ,)n;Lv*2q}W5ʅKίV}"5{ %>zQBUڄI#yk7n _0&Fv̓p0 ->8vi>m;CB%L0x%/4ޕaۼSy='ۇ ǐl'k* 8(Y Ռ=XBOIϗe?^҅a;0~ǎ;zc"vj8 Z/~  P:̰ꬮv}n8gx>G1* Qxh4o s&.R yϊ nRȦ>#{9)'[lydZ@~դV n4uZ8p7$)ukQVoˠL U {J ݌wu[d L~eu7@m[fKZ!RJ4SB&avؔ* - #^ќq.{$DO9ƭv((dd~g"ꂯp o@. >QN.dgfa,F'YΫ( m!9aTQja>t]Q1<]bpғmi o(*$oxspΞ-G_@T0sϤ-No|f0sV3ᵀ:q +r`Ldˮ%=,"1h;(~'/9e?jRZ49RИ[PϽ@c҉ֈɓgKuW~U ^ $^=%Da)$𧑨M?BP:K|E4Z$lg`h|0,z0-wH;%$s86Rs.$Qdaav K*οurcUE W$}aUOաۃTqu51*Z>*8iHjFX*WI~j[R!;zT Qa05tj#u]/d<#R& <9.ižNO5XmNjΰ3PnȇK-z!xy %N] ۹ Dg2K 1=.Vf|y>B8umrb;U'ecR +:@?5-4* 'DGy1}WB5 ]G;?>W]VX=j3HZclf\i B⚆R?Y:1ѭe-h·*(աsuh96Ԕ))kXB"M0ѵ%XS[bW UOʝ3֑͘VٸA :8V\I"A pڱjH&Ɏ*dN݉R.v댾 %4BJ=g3s٣T]P:ΩE,qBYڠ&@@b +RVP9G,G6|eA.0߃}ˋVܪf-5MN@cxh;@͇hm h m.M7/#`1w F3[ ,SMlD**痜: ;>J3ag>RSmUz D5'zMBOA(Sk.[ɗO# ?6{x]0K?"$#\`:1 yE} ([(݋~LXP{u46wC) ؍<@T0'Z0e\+ ]C0܅qa>:zN_;ou`pŝЀ=e@49^Ul!)cR(;H+F\D z7d: 4%[NpsJ޹:c֏QL ݃206W^?EH7^4=30&YTP}[w[DSq0 :{"~#tkR)xTAFvqG~}E!@_b#d&Hc@'#n_}K k>?C !1[(h >Kmp&r j0ٺnyJVs<`{ ƕu@K"e)D;9]m|O\Yiڬj̏ZɤU&$AC;g|@aDM_Ѝ! cS̔ŋ8/x5GoFOVDĝB[H>Jм/#>)A>0Xx2>s 9|VJoZtÓJKĿӏIoK_4mf,ޢ )P/Y upΨ3x*{M,EFكf) JoO÷Uܗo䘹6`f;Pu2 ?]AlJU5#M"uĆ~&*q> onr!.NoMf3&@̀X^pA 8d&H*4Ⱦ%,b5bnm s^X"̻*^3AܚoiW)A/Pq/zr3@Dtפc3G hlFN8HՖy!ZS=d`M9}ˈzn@[CI'NRVzϪ$@lF,?%:+P BeHNnE!i9bM )jP|JƕUaw9 >.ڠqB7Ϲ}9X!ԣ OXV6Q&!1p EPAD` ׍\@%]xoA[pۤJ5:K` ԝ/ZU+f\FzT4mV3^,AjxsMପtY5K|bdѿybF:E:ĹwvtT"N~wc+.vُ(TmP}i}ꙎsQ/jO(5rZxYRH7<Quwb$ Y~Bk lZYGdt>ZjsƎ8.VboEar}L"SW۱1^ԝwsZJˁG_"޿R 1/@KXU4]dԯ"6 of/(AMQlhZϺHi[Q,kdsa.mQ ~j WNÝHەʘq`G)XZ1e3 usՅc1e[|ۨwOf4|#akJ+: گ_}jfz-?mI &Ǡ #w*Vڙbl}|Q_(—'6e#(8}w Nix 0Պ!{|;$F|c߫U4NWnםc@);fUb-N~6ra1 sv m%Y^Cϓ-?j @$z{jջ {)K;cbz,]8|"[qSjwd>kT[`*&V9ZQRJmIIuwLd.sHkSqJ8x3{ NdѦP&M?V7rnMs @l&K\MEW>BsQ-l$HSV |su41E2Ȋq﷙`xؗ듕u Z-o$B29bܺ5ʿhZk-{~BOFQ:ah OLIdA/$?){aV#yN_c"WG󣣞bco .SvqS [^:%1 R9U-.NtZKf/ Xcסd3XE]W [6V@o^PB`0(҅ءJX@1TMH1i,f\XӱM!Xαo=t*+,,wymi$ʩۈc)w..>hv2' 7`!F:]~yroUUcDpDm#$|78h͹s@N<3Q(BIbJs\4l&K\;P6x7~+ށvt MZ#擘)!hWn ᄦ"ؼ`7Xbܙz ڀ-9sl'1DTKkHu:2ٵ%'|:rT 9ٲ3w JɠG)fS"T3|h;1!z<qߙUT%>g @Ԍ(o=D,]PZ5DzbcvgmI2Z448Wth(H`9O+N]+>w)ݛX1sn< \Yl&ߑ?XN$Ugyg81CU8|3@v}y䓑e.WiZѴf +*e^V1&ky#Ֆ3~&Z/j*#/T]0Pd2T1;Ȯ~rR yX&Jx3,wL+$l[gĈp (MZ{XII B/y'<5~{ws C8T Cy2*3j>n*S%Z( D*Xǃ½ņ}w>?:l u ^( @ $n* &gzl[u);qW` ~+$÷Ҧ's3,i1323 \r55 pxZrCx/(+s]@7+3|@xbǜc㨐Ch;:pc+dW/_r ՞vt ",abP`@J˨--X_  YEB UfxT99= Q=v|.=4hzCޡBw6qv+QJ$c0Xנ d:WiJꃆHI?Y~wC& :2Ü" 8EP)&׸|4^B">:O8?٫| Ԫ4.p;a;y`\" /.Gg@rr߼^c-TXoVֆvrnבC-G)/`YFbm{/Oؙ?y! arl.L6vf G5_6(#HH$.ZL&'7V$H{NJ:ాJK}`\b~1e z( X(ԧ֍?tcDɍ\*Dž_]eS0-..34ܠ|,4O4hl>3hL1(-zԯQ߆#!޳w ?5%zi]Ds!hQ-E%4VPBKh?B3D3EX~|8D-q <>A"яmUFVP0#YŘYǀ:)aŜTlFe#:4Ċzx.Zs':!fEc3P\sB?mTF(sNٱCpxYz?(ڔ &/QAD0⺺;~9 ꡝcVP"Y 3Y0Q F쥝-.F̘TX\YG[^)x`k[yK#VjnOƋDMNq|4蕡pM]$f(ڼԋ>'+Aؘ vǠRo dFy hSޑf3Sl R52./kQJVх2gw C)7X|tRWz Fr5JW2Iڋ@/PHp9E2/k|u+l' 54Vض 5XaQ;4RCf/tKH0na.HfvdP-U>0L$cWݴpxk FFga1-U- 3z f@t1 Hټ`kQ&!gr-1 ppZ/-2au7CyjuW߄`.^,Q|>~{ŭeV?#uZ7`7rڶUJ[]핪$ZH2J{Y(54-ٌN%i-CMB$ $JQvSzG͝TzmzY28Jpu i/]]].{6tb.4Y=VwI˩ypLG _իr%Q'P\8d*90zKt՜Z UI+z^/E'(7wWm+[b.GT),&ƴw̆޿PtJdJ>'(C2?l=3dy ѷ3qniXAI}6i}(p+vr'w/q@]6ԟ+;߿'`E^` W Hf]@=(!uuYPºVl@\Mqdse2>Xjiw<8Wu8^>J\&&gV ywHtJ KtIɮ9~#ł'w# Wgq_¿`׎\FJ0üCZ!6jj-Ŀa784so/cr 18p.NC :mq=mYɴ=ҪsZԗmJx86gZֱ:܅VY)1 _?yC&Z@^balA X@-^x֨Hy'_zPsG)@Eo$eqͤLkʌ, $Ðye>yrnsit52={VK]lPʧQ #oƏQI:pBsmtj! GD q7oUܿϲ2pXhQsOcv=-d\-U%Lÿ8 ̂lU0iIR|ϸ>o/(HS!JBpkUBaihp52%!Qd[$B4E-D/~= P)=t_&Ķ2H@zSUx՞(%_=ނ,bmII'=v4 h[.t-0K+"^U2ҠEgpz<}/ R 'Q lU0~.:+j(p '(6|6&kůIX~c"EFa@Gԯ^IPP9ZܿP9Ҩ@EűV\@ǵ\kJ ,ql:XZA{ >d߆U_%hc%!lju 'P c؂FDztMΩ{+A!rPO@+Q$w*BW@@"Ie|"mMǜ5 {NsYCP ܟAK|BvO4"dkO qۓCg 1Ze e4/K/ÕSĵi`Gx.֩+y ?4OfuAץV ]!c|Xub7>bWUpCz郭9h&+1C0?8qě} =VH]Y1tN2X5Y_ztځH iD- P͏QE1t&}O*a)?nF}qTc3UZVq0j[:U9EK= "}ތ*ii!*~#ْ!r/GZD17$]$׌τVk"iJtK9t @:[?i` G2GWE}K#1uZBAW J0oҘ-lW};# pFl9ԯb)P?"x,W\:t‘Q'k <ḱ7NLD!C~ ug<|Sʠ!)S$Y=^XMQH|CEktvʏʹfE 7[;~$@AM,8r=_|b#8vRmۓ5Y ^ [$EɿP|`LHjԁ"D/*]y2WG |6O 9EM^}!k(d> EPշh-SNoykCR΅5w:N=&޼+am ^٭ Y2jB)q¦Fc%ż] ,*Jߛq>]pmS:Dy8{7%\?b }4iҜZ&Q*$]3^Ke% ] TaIvL VJO=N-PV)RbO*@Gi&×(‰ޘ&?[QT1`R^Zޥ(Qwk4[Vkc8r<:&P|3᝜79M?]7[bFJ#%EtUQH(;Y^7 ̘<ev[YMĿ,)R@eh6L!3{%LHۋe|Lč&J[3+EAȅ)fi$>S; yI4%~D9{!ì{gy*nsoo+u ֔񵕯w O#[\)撣i1v&r&Q_NH @TKdR& : -DJH.F_P"jY, x`3H[JaP; \W}Y}Ň]9  &pV/| g _'&}M& K#g(c\Mt,}xc*䤷̗- %~@*`&<l/ ckIs+p.XӔ 1qxσf˴*BAkHBDMћUbHY fwuA&6s 4p4XD;T(x 6HS·Rta|;SˏR$m2^z~j5yiׄ<95HX[reA!ќgŒ_̆c(?FL6:Hp̲NpLյ+#@ +wi#*eG܂řmd'Mw.l`'Z!=I| Z3#Ah#WYH<ƓFn5ּLF(.$u)Up7Q^|wv/(C-0'p)۫ ᯭze}yx4 ndf8H r# \0dxoD,TK E#G !v'1:|.lICԹgiz1};aW qwrIr Tu;+{c>" bX'ꗑ8/|Սk≥ 5n*|R Y7\mDŽ(^ckY`aᷙIrubJOZ<3#H.]J9(ؿ 93*CNŰcn1WKg;*@pw?%H;܋HfNr @>fˑ ޠFk x{Qqo_=\/0g[4P0SZr9D qRe7t RYl?>s d/gZCv#:$͹"l3AtEGKx u*o1+PaehC߰7qC *h[^O%"`V.'%QAh`JH V3  fC>itzt&V¹x}s;ݾYi"0xP p%"Yh9i?eb@n_d=e":b?TcHvWk+[,iBw2-M=iMlQA9!Fy캢\DWizhxp r%ʶSB^Zkxvbj߽X4o X?F\9w>zkZ)n1E4j aUU_E<UP08@?=3,$(Hx `.;zxt `1HC7uڀo5Loaq_KYCX!T[KW=(eFKP `"6@Ujf+7[(>_@n~9 /%4z,̔H>ݔ9\z]1Э h%Yʩ] Ȁ7덽ǖL`i—nZdv%q wCUOzUHʫv&-`uKi2).6( Hc9-cOfo{9,Z/2pZbWVbyT swZRL3+U>EueVj~\')ITDB"FYHPOyDظ# 3YrK`! J1,gԉ$Qֽ_@pu8  %Q5{ -Ew1RqT; {V(jf[JMro[6ҫnq<䉼DC^xg, }Up09,+xv>L7|b- N0LC;xL# @6*19gZ͵ E!W*dUIj11h$bPSc'$N ,8|{,d)~sNwIvJwZ#^ϵs,u9p;b>LL<Q6,lR{2zJJUYC$ w.ACc3>42!,2kO+:n΀ܕ(bCDpU@vG?]ܽj:ޑ絔 YDÓn%r q05gI`1.Ͱ/@a47&ZC $gEdfb}pFd` F`*@}3dngh@Ҿ |nn@trI[;|+wb/HozpDq%|9c5FR@/->tM&„tBScPy 0TU\pT*&Q\A)XXpyP>r206fX`(%6`R$CjJ \$FEp$aGFvP :xhv3G@ oDECAO-y)=,\.e 0߅ Oz #U/).? )zܞݩ抱%/kS?(d4,^Nj$Nqy=;Wn _+ @o RiEbik ]o*3MAbV|bJHnJE̒ )yhtBQ@8sİդ9F~[& Z q4ف*ԮX*7#(o ^^$E;4W\x@VZ{7'c5rY[pdZuQ.:=vH #{J*,JЯ&^$EN9=|9?^Nih۴a@d_4(-t'UCN0p_k3ǿ7޹oK1ym$\0%5)Hv0GϺ}q>9#4?qj=8g㰣Bws D^-:s.sp7BupC1.{i3V:BOe-ZdAt >۷R, E6(蚛!kmeЗI *3#iz'@vAX &$}P^-8n9!'*Ro$jڇcсʦoΖjP+Dg Veyz|W(rq8BWˆ': k8"17@BVd30{ٜaC!;Y q99p zW8y@5H){^ql& I| b&^QqxY[5\k&,VJ$#A<ۜ}Y"j02n\XyͭEԟ2jql0Dt'$?{FEb)ws%WJ]aC2s6Kq`C9D ["tOl:9n./yPLZX"T;I˹ '#gO歹Q"ݑѰ%x^q 7mتgq tM_d{z,YjQO=YP1]KZNOiZwN8|v<,"0] K3(!ֵé0 YГW7R_E7e}TEfx垎vEE`j)H>a>.|+1 o h ȩ #><0O؆5cG5m^N/gzk9hd I+|o^2+rXh$wː-antGhlw%(-y BR`;ʳox;7J*`W~2$PzV ?_!h0 15ɋD7S}tۊ*)=(/Y/E # (@3 z ˀnX ʟ,(| A\UYAV~G3 @uQqJ3Ѓx;=!;vb{191u@ xx ٠ VN ?[al|{kÂ\tHkJŸŢE 3fu^"3cOayl,bF5 #7@lȪh/)eGtSHȮ-6/KYij,( .S{ d=>$4=,C0*iGዼ€`kzЛ¬ +Ֆ|h Вw؏m-wgmwΡ4ʼnۊ<>વE!kAvEyJ@ 5/ZGmj Xc6tխ0<%~||Q-,g*,Z,nAfY(T2T9:q!E9!_\)T~B:n?)IO)`j<РT0oim\%18婶_>+sleۢdK21U6 P24Zu`4:_J7|䨖FKqEKpg&}dޤ:) ޗ?SPH`3L$V8٧f?, s:~)=SkQWq7h 7εaYW *`ڨPV.c8@Z _W( x^ڨȝ?CɽXzC2Oz]=233;*XN3~E=nU +i`tKTx'V:8a软(S*-Y#4CV"wr\Ѝ tiЀ*I^.|E5 YNhTNws60aT?EUeJdau^[/Fnq29|= PdŸ)VLK] #bVrkT] |`ºH9܂RͦZa@skђ׎ۈ_j`x#\6#|7Zi?SޑX.0l0XQR=51U[ LZSE cdEDr[d%w{iN}C'.J.] SNGP;C*iuQkٴq.@,#NA+)V.nhfVHGx?@,# k#)FX A)$e  BAa_p\V^2vxJvM18R>Jw%La6`a1HD\l¿p9I8hԯ:_ex@M}ca m?t` Ȏ!z1W/ kqNei#Wa7ަw)?$ S[ ;HJwYaI?D3eAn` ʮIqYS/Y!`?;팅X16Sw$v ,?9 KOu/EH\}6h>STpvZm ' m%fD%-[vS13^'BF5XN`9ԺPbJHԃQŘH(ɝaefK4$N׋a@H`s,j\{SN Lb}kN{aSDӖVp% C½BH%1ZA=b MW:YgarIVwqqt7n3})|B%7jiIp95/.96^0 ya4A:L0ٺ1,^*Y% FNa}KC e/^9;>,L+{09` : ;L'RF<|0'70g)ʐֱ|@R@@2i; teV@;uDܠi!Lo fe +}Ζf@V{_3Vik(;p1{!HLE>th.i`7Q &}Ly_rܑf$ :lOM_ϳw,ͰOδ.+Ǵ)n v#\L%|j-uZ) ' } %;#Y,qot]h¾B#Cc_3ҽ3lH^GXf=ۘˢ?f(SnbMk[RO[19bϤ?ZLǠ 8Q q=I~$=go԰% CNud&eJu#ϒ4:@ 6 IJ#AD) -'`Cc{yQR[;ޞ(w! ;FðN`r(up]I~j"-DN5!4UWV ]M~`xR4Nօb0ls`$F}u31Bd&a X/JA`x_ǿ'q?:_ 7uzIuF = X/J }+9%!z`m?_ ?_F X/JA_ 7u?_oT@ ?CF X/JA_ 7u?_oT@ ?CF  X/JA_ 7u?_oT@ ?CF H `a`"+?n/_ 7upo@6D0/@S X/JoA 7u5?_oTH ?CFA. Q}Dh7ƽVj@7p/2.~_ @i(c ߀o@sq@6L/`L ?Cg7`4[F|p~#Ww G()fLzW1,̠3[j@?gUŲKiL;X%]~dI9P|F~nopUwݺ۴ʚ貄mOmC w3$ r( X/ Jq?:_ :56@~8 FS X/ Jq?:_ :56@~8 F X/ Jq?:_ :56@~8 F X/ Jq?:_ :56@~8 F X/ Jq?:_ :56@~8 FA]Q $8?3WHcd) @"b^z?؟_=8!q?жaBIua+t;n8.Jb(\G zDKFK4RH'Ѳ3_ oHƝ[Cԇ=n߃#0C @1{}q e)L$ hp -s4BZK4Ao%@FlB X/pJ1@P_?_~8 FlB `a`"+?n/_ 7upo@=:OS% X/JoC>Cf?3_ 7upo@=:OShq X/JC`myz`m?_'!Ѐ~8 SAЁF+i@GEC>b7`Ƣ24oǿ6`m܃ ^a3>O¥L\  ~rL@ ?CQv-<1mT L"YѼ^%L2`F֚j4*D %aCpD7 ` ~~@WWa&Dou&2'ʘObg7:r8w+զfcߓ %v[y \\pƘA='Eϊb2;jQۅFq DS4O+<q}ڠQֺDQ&e-zAQ{?_ mp5kq X/JC`myz`m?_'!Ѐ~8 S0q X/JC`myz`m?_'!Ѐ~8 Ssq X/JC`myz`m?_'!Ѐ~8 Sq X/JC`myz`m?_'!Ѐ~8 Sq X/JC`myz`m?_'!Ѐ~8 S;q X/JC`myz`m?_'!Ѐ~8 S}q X/JC`myz`m?_'!Ѐ~8 S `a`"+?11o-o 8XBIuSq X/JoC`my`m?_+!А~8 S@Eq X/e/<[\V> X%9 {q?:_ :6`n+?N0/@0[j[D5@\o\h+O| ~PK? Sq X/JC`myz`m?_'!Ѐ~8 Sq X/JC`myz`m?_'!Ѐ~8 S q X/JC`myz`m?_'!Ѐ~8 SPq X/JC`myz`m?_'!Ѐ~8 Sq X/JC`myz`m?_'!Ѐ~8 Sq X/JC`myz`m?_'!Ѐ~8 S@&?M:2@ #!+|@2d6pz={ ekV7o 8q?:d?N0/@JϞt@Q;-WA$ O +Z&wQ f~EFֵmSYLz&V3KIgdKSp X/J! " 6`mK ztOSq X/JC`myz`m?_'!Ѐ~8 Sq X/JC`myz`m?_'!Ѐ~8 S8q X/JC`myz`m?_'!Ѐ~8 S{ `a`"+?n/_ 7upo@=:OSq X/JoC`my`m?_+!А~8 Sq X/JC`myz`m?_'!Ѐ~8 SCq X/JC`myz`m?_'!Ѐ~8 Sq X/JC`myz`m?_'!Ѐ~8 S X/J! " 6`mK ztOSAց b ӣ-PБ }j8t~ghHq?:_ 7uwAX9?:PXR`KDxEQ$ q?:@|)7樊,:aD|aր )p5Gz)@S%!ЈBYS">0&:1B'Hr hP"9;ylhmy @^ Txn?$`Nr ׵RϯLCG "l=(y_EN# 書O^2 :k1~F _A@SMq X/JC`myz`m?_'!Ѐ~8 Sq X/JC`myz`m?_'!Ѐ~8 Sq X/JC`myz`m?_'!Ѐ~8 SBYXMںsh)T?oxKeipM^ϚZpo=f06f/~9}G[O؁jq?:_ 7u1?.TzTʩA"UYSãwaAGjsRbbO"=z"ߴ5U#)2=Fx3r?M3NSd6YpYZBC نPk_J}j^Iu5rBZTݹ_c$ -~k铗 ]~s}A~coT_?|PﭟaO?=q]O䷪?/ /M?OO}OMoPg_|2&y';鿹Lzqm+įh9 ?//Q?^;}qg_lG?c/_a/ooVw(_1o#~dR|jrgFC~ e .P*ϷΕ59Fc8Lns4}:_=30OC4%id+-y˺[#jiMM=ЎC$`i+4S"^ ymbanؖ 9SAm.WR*9_Pv=3Z4΃"?nt[}&'1%YʂHR+N QQoH6-pP* ?1~5ܩ' ۮr>;>|wpG`J0O!u0YB\$1VE?gfοdnUŇ.}Ze@gZ%7ӑrN- Rp]fDurxCKΑ[ʔas>UDqO3/BژK384؄r-8xE4E171wƶprs|Sܰa/I{{U(OˊOg1jؿ8Si͎֗wP]61hVƏ̪_F93_C R9.zd] _eGR@ 5 I܆ϫd%ޜ81ِ܁,y5ZukRiZm]o# h[α%i[dwg6PߝQ(" 7ē%:{ݗfOk -[\\s\ϯ7H9Ct_JFkw|-$JWN&S!q8`(TE9 DNNYax+qt`HݐAm~o Wً#d&6qh2% F~,/6HSқ (t>ޝpEÜ`+ a*QwS$\GqW/$z{FtaUAPF`"JIըtYD#q2~'}cD 'hS͐y{&7V3CeK\/1o.lXt7U3 ˜fJ8gxf2VF!H4U&+Q*@!p$63JNA"3[|+J` Uh*7(NTtpGx1i.8$HL)yEH~%wϦഃ.ԷOm KuӀɎtc+"\W yh%*r!xӁL2dA FlI͆RG׿2=&<60~e ~."K,5#r;`Օ * ߳< '/'6Cy &`;WM?~0}Mβ^ςFO_pƉĂ?ImmT(kA/uӁ8bb,+A>^hPHKB[lz=Clt^tqiK$U:q*6"S7tMu3'kp8=*ٌFd>822z{S):+38$ozG-TEX˖=m+ɤ4YEڬ ' ~um)\\27es/ 3N8 a/:ö;JGDX~У<؟l[ or ꨆ14y(dHמqߵ,?!XtNr W ⏆*TkC ,Ѣ'MKto)㣨%S}o ڡ{1h]*۰rt4Ȏr{m$p屭9wo$U" kyhVmlf`\\hz`j]`glXas4 x L;:10O*kjMab~T= (Ҍ8 fA%R\@v}#fkAO3a3CI|wS<!Q3%62 RVf +@# ^a*^űTvy3GJkexX;nr AI%j}-3`_'3I>H[YԹ OUSa~tK;pgֺ=FH2s0֤uf`|l!7&d_AO;~wL7\[dh=Ӏr7@9/Z QϿbz#5ɸ-f`܊H'qKumڧ#aDZ{hHϚ!]pq!G1>k#E܂?ujGQ} !,cˑ`#PG}ޒd93{!ǴVZtA~!13w'sBZ8|ȟF}tO$Xh 8M74GCVjV7Α*MS 2ʔfu*c|ʬdJoV%i0q6n1Êq`2n^R4[IJ<п#dwU0%|lM wjOgF0w {ño%!F+.m:e~Рo+3kWXZ\?K֌&OtUti :QH;@Gq ح+@G_*9ıi{3]e;APlQnQcH0}dݛ+'"}RIvݶ̠x8K]VP|>_3]WU EXwUoc` =]۫V= ΜTGU+KH)LvKJr(8mO5T F3ISH0$(Tp~!!~B"`x(F<go3?N˒Fcs9CwI4KC1f>nQ[ug{,•>@c2v9YW3*&7UN>vZߌD%*=Kmv$W7wS}69G6U @W6\9{>Aar>;BjmؤU^,>,b%K P'opqM) %=KֳwކyA7ubwfm{X8\]^B^ֶ))ȳ*6쫧{mZCRm'[lZJ`l)Җ pn)_#)oڮ DkߍZv9dHfܕypܜ֗Hh@ &^؃ͨ'IrH1ӿ/:'''VVdrO8Q.qv/9h@zʁ~Xa: .k 2ї?^GrOUimTUCeYi7,'RAV6;6C20Ɓ=Q?b^j  j&Lv",7݊NB%*7п);ŒPڭm%&":^MypPǏoBWI|vԀq䠤CI+d( fyd"Qn =hb#OQJ7V j̾5rJ)i"b,I|X ۲ߺ1Bi,QYC`߽q#B 0&o  O4w>M=hxgh04B[%~`gXDHl:d,N*0Rz^3ݭG_hAYKfR-)ـG_Ƹy}FX~f2j^Ox^f+J ys 9yGѭ 桉u,ZCbia#\ Pt80% >$nɆc!{ St8#)JgwiHq1F%M:!GMjGl x# &0*Hc@26`;q L8fNg6*Γ1_ Oj>]AIr7Pqorys3[96H|1!.fx;peBI=JZ>`_ .RR^PC 5] Ί[ʦxAP-1r>^"~Kđ]9Ó`~ٗfJ]⥕(b3!YH gOvUb MkcE` Qꪳ^3bcD7IA&Kk["GٟIh0RY8^NhXY`sShPl0%*˗R1~` @\"ܦTO|~t\w0M]jMwߺdVk֘` pWÚFFx^ @uMzsٰ6/~lwQ 4I | h7~ڌ1VZ!qmrJ'@ 4M 4l OPYZ@`# YPPLjF>4Kw5f }XݑkT2mǝl0{!O2RM`1!Ljb ~Eh넪ėpTyK 4H=¸$ϴPr}hW`i\4 qʁ-5+nu 5^TA :2丁*ZiW.E>˵9h |GZP=";&fk`'h9m38#  VJHI1Lqs^г*ZMRTAOp`jXr:||Ig9,+pmkIol7U߁c>D<%/v &+*u-=F:޴&BkY Jk!͜v|.?LBN;nTVw-w9sRia2v\^ f2o6ΉQ2miXcx}Ax&{ۿ,Rx93 .0sE"FqDp/a-c fU$[.:fu l@ p"$|Kd3S͝ڒ3c*k1%P$D1}ˋ3ꅔXث`#7sYƣC(?YN8L4(^ UΕG2eg`ߧ:]ʾۨO9O+ ")M}j 7e^BP.:A+M"ܱpCeyh%m&i48^*@L@Tv(fS*L\ޢNsMˮB)0ʁDdǔJ2E _`7VCFZM*&Ψ(ih@eAMoCnk<1'#P ]ׅnS 4 Z"^5Tidqr,,܊z>>V9uϱ9yfNo&޻S-HZ da[7n7e %A߽Kx4Uk !×o؎Syz{*X0WUL3[ ab-&e}N#ػյBxP̰u.L}(7̈́WhrWV6c8dj D] q(K` pȨ(w;GP(e"tp_)o JЬ+Ƴȑ sZn7 *l6N?tc)5(2JR8 WI}즕oWZ4 Ibxib48#̶Y@KYJbɽ@jō%|wE*r3@kZXCcAs)Aw(x,_">9\*@wE з~Dg]Jf D^ G#!jWcDM^,QkH"lY‡XAa^é `"}.%L5)0l|@O;,HؤmhG{eXʦ0e48޼xiQ`*Vj'WҴiHW/SO0NiJ0b@D@.C NFЮ ffuDCv:wVɡ.Oz%Hvj:ijiY$K ֌g%Aw+*3AV8E^Hw S<=2<;PM%TGH`<6}ϿIӍA?0O>36=P.0++^7DMw ʛqPYlEM7@B>Q&'8rO tַ|ab"r< ~]XoZ2E^KaUQHC~$'OIR9؟ENĥ'RD`Q 3%< QGq j]̫M 0^#k:.# ]ز-W{뙢lD X0oe>BC"v^ :ڈyX2A񞖸)Bg5KiS(FsT e +B<;j&y#x.VIOI*a,,mOįԸ*Zcs ,}֍ {D1[$ܮ߫ac>3VZIFhZd!nC~i5_Qtj#wDqM1 ?eP4@\O BcYю ~ 4ER&Aǜ=q>&q N04\4]ͨ?M~|[f, ٗl5vC軷|QK.mfya q <ᢓc 1J==q9 <gT>>r N /߻2HJ|"13^`Äc|ytP58/~@-]eyh]lR~ -((9 \aZ@EH_:B :y:wG th%fG & q Wx ز&L+n@ 7HN+ahr(#` ʑ)tUX+˕O8`jZC%cqҮB acLV6@;, r{4"EM BP۬gHRM0A#B !8P GIUBõv-܆\f@ݗpϥZR2r{2Z}Hh ,L79$ L_?(A"$w3 pa*P87̠.xB@P'XXhQ,س89#P3FDquF3h|̈́htɰ,i +*n !R Arǖ~Qzpq+=ͫO j qj<Q&mnK]K|E4EjQ xTY5U% mՇ('q0% ǔncL}ގ #Xسě&:Su]V㰐QkS:2G%xW}cEiCFe+}8uH˵A7:$o&ҷ:820p=XS&j>EQa_-Xgk(Ic4m&݅}V1h Z*ZߠL+vۮ-d ]sڥGkmP$΂b^LM~t3Q ݱ#㦯/^o|L P<U A -C{%0Vgkeg\-X[Q30ڠ_Yԕ\*< ?c\ӑ鸗pFZo%_`M|G\ Yz}np :=ʴ's,G5xIZziePqHRܡv.B0.,  fTvx J~RqC_!gjccz^,f:;!A/Lƴ8@{Aކ'^ 벭La텪ϒO@NZM|P *+\VNC~8XU9G6<6fLB&Amw`U /A@jB)-tπ3$ !~P)Zk%Y00@ j18DHQ9aU[% ?>23IyzPNKM˒C!bvyc8Bx^3]3Pjl t u>A'2j-$pĤg|?Tڕ 4OrJf :wj'x _n5T(YIĀ[<ZiVyTN[ QJb&"\FVyku=g1VitbL/+E\pbTgޛ;tmM) BPt?/;% Z$ EDmS@0'}\p -@h o/28LFBgO>~''^$ ꘰%" @r<m&mHqDͯ&A~*bD=@#4g `}>K͇T8` .(=EV rlj08אA GIg+@l>D+`%_ &@#P,0\ߍH+*,2EE ;%@Bn Yy~Qƫ;{A!؀T)lP զ/ JKf윻[@$<]l'u@oe0(V-@N,EM բjs ^vm Y>&C ^!2hҀZ $"3}l:[FW 6`ˀEڈڙI4 F`+;X@ ']j Շl*?,b@t3(d@c@'KVl-)>K5TD79ı5pMj uĽYSI@&,)Q4$\Rm)|vXτd U/!KNiKc@[}=ȅX(@ @j"+1A# K1;m$s8$!S0<+3 }P`4};hE& H%t OJzm2Lã Q|2(؀IU*` -9_y(+0h`hSS֍oecņ$N 8< %rxp/'2. (w /eTaqsF]` 8:ŧ>htmh0yd ȧܒ|ȥpaGF@ xODd4#OS6Dx  ?] `O?ÁyVv~$]i$AF +<~&`@[ 0fމd~k@(FZ7h+ۂK~䎡|FāϿq]A)W}g S7M %9:Z.C|397g"1M .xdMZ0:'Po8lI}!-SȻhOP8$Dk -o<>sdM:+4xCy`ã4&j̺dE`:,Hw'%B X7Sѥ xG^.=5a=fwr\4`RW6B4 -h˛\rܶ!";K%B@!d¾/CVӫfۓ6$*l噰YF S CGhbu`_>/fXL~* a㦾VY'9JgۛW;ZŸY31=Ff`*r (bvud`Ԋ ~ub!Ǿ>v]RD 'T :}xsN{QoU怗a׻LK?'YoB"w`;p.ݗrH]bn5xB{12vN0 G-Ú}_lzhTÁߌcԈITL~܌@5ڰ6ۯ ݒ'ꩂ+(2)"Y)d6" ZwF^X.FIE`AxS >"ceh"@ U1:#`qSgx;w+ωk@7t\:@Q+=K:'uM wbx:A]Y50vM@ k/v t=JBB@F}%kL'IZZO.̴,8e!3^b{jE0~^uȐl5iP^.ԯ9Cq:dJOn' A b4t Lb Nt,% o$#t 8kO@;uE^}ԩ Q4Ĩ ԰* 4-p=D &|dh!Cw$Bуw޻jٰ !P:RU'& 2,|頶on]=KVuU l=kX|'?h/ˣiu)14FE;~Q'&J)l#RUYtS :s@}MRz/)-5?h_Z*N~aPkYdqJ@we!HB|0COJezeP [.#glC .Q0[7U`'y~oS2fQ})Zvi s*VvtHzBK9E1TWUWl6Ff]m =2 Fp w_Ȯ<::`%7 Xb7$e > |F5㨨ĐBhjEH]& 9is#l@if*932)^YJkD 0,!C4wڕ0dh3,|Z*A&>P# ը}f89+Dd* /O&.OQd}+HND_ŎrWH9T C!1^d2z HMD4vX1&)geFuO0,Wn $t"8lj6 |C'9V!7!z_URDiV&zl|.0B ǃL`Ӝr-;_GW |v,aӂz#Gp'7a1{iߛpֶ adUW( [P#f%d/,Pob:=E3X$={&ʄ9>:W0:K+J ⻞ Ё-vH/ yCяToyv/5SFodJE (o) &fNt  c )F956A*=U%W`n` {^ux-wT{!Հ$KuQ7wi@|&2 %ZIu@ : ٸ),V8mUl.F@ ̄ ܈?K@ Bh& ]@ $@?}`\;s h8s6!F)B >{q{tcF\T%㥰h8YR_R7piAҹ[7 ")l +uTHϜE򸷱Ħ'k=G3g@yx-ʈP:Б浑z[ h+w|PN1 Zϋs ㋝-,1(׌l<448qg4mB/|6O :U_T}p`//b\jݶowPpw*!l*B5 tHYw=*YNvbo+ 3viOgMy8Z9LrC&d,X1G֕=6^3a$K\2䘩@u݋g^ۍL$ i2&En@@WG|@\{'pb! 0@@N4nUl jS6<J' 6>>p' s"wKs'5K2 t-%zw =iN+UN]Ru;ѣA|8iT)x*#pAeNsá+11wEb!}+UeQ)B]/C_ ҊWdo _Zk߉DtA=aL_܈X A)z=~ ĔHBw9k\,j؏^*%@kL#MQ tQ7V..&֏"K%0yED3gmO-;ȉ*%;S_-3|E,uv7Ȓv'U_gkUͺꬃ]wrreІ}K q2 Y Sόiߋ %@ 鞍$q8ZagL'},/FA`-qL!uDQ xBa i85/ti}md:B,̴LԅX[){cPf'f ڟGZ"uC5Z6ݽI ٴi A]+hH op0sԡfUaZ]5<'5T@=tEz#xnEPeO7?O L]w.e cMQ6 zI8\\s펇QdoHg010UB0Wq LEd i?8B@ 1Uvldl[*4C[)8A."ۦF.c -7 ah\ƨs@?C۞D6G3p{^3A2@RLAxMWoI@Ai&J_l{ dž1L#QD^ D RPx/Z將f) "Jp{,cGA % dG*:b~gҫݘrnX:=jܫMǃEr W~./.(K8}nE@0I& fܺ8Hr@̴B^^De\ң/u +Ӻ~#M3RP DZ}!3GMR-L %+U^f& x<-c=LkfҠ.vȲ4@ab~Ms-<@TνWܛ@.X AC="A.OQ gy5`!QߝmqҀ > \7A ɟK@t7Y9;@[<x>( * KCϿU~8Vs<$ & L"Ֆc)\Iڎ;M|VЁʀgmpj% -,#PJ!_Anl M/ĀR4nt\9ؘ8j!yaVj1Д݉~DZ|H q2qZ+o@U %./A TjK/SDL!|D81Cj`"i Jx@b/{hiƦ$:#l$ȹrC]̫ :- b>O46a",`N81A&59b b[/b[<.{3vx:LB2gq"L9Ǡ\^>9ZJ \ޘD3x"PE] E41RYCM^R_7LU*P#C V Mac&wR ~U. )}.`_ιrZ Xӳl)a@zO ֲGG[rK[Em8G!` +Zt,hrusMi >֓-1C5DEVlI?iCZ 31&2zͧ~Qb,h eKDq/c{ٚiOXVh:RB`(B w5%Jm[~ l1_!nKE$aŀxtOrb>ߣ# f>׳p>Csh7xRݑ1_"m[IЗut'zlW1h X`ȹ#s(9o MR)nrdߖ's J̐I ]9sH<9_A.׻U$9l@[IwA+x֟@Nlu@SM_ʯz=/ @t ;0>g?^վ]$Zpi.@5<(ĒÔ%()t.'36YsT1+@+&FX؄(% J Q`h70~<0 Sy  o䟚@B+ Kmpގ7a/  <i SYVY!K1Wn^FʗܟސA+~NG,4Ц_XX#wWyT%_*hB5kr@,$ܭcЕ3*Ő `R׹X+gowD=fwSnLZɱH&*;~t=K(:A<]#)JS" ^}ԂEq}69!96-}><3DsFMpɴGwf+ C8@,A6dIz!-Gd:HKz?-;4h́"ѕQ*^r& 4B ʑ|=qr3}M˕03%Q{<g? f)ͱZ /@ LaŹG0Yw]08;lkKN(o6 ]3)G\0֖ S[4U?]h}p$}dI21qDKE\ o-&V)$OzμT}@%; awf*S pp+[u) _UA1.^!:һ۰ X0h"ͬFܔnKmO%d 9h:qE@&_f1 +[BWL60(#Wh8FQ=AXChDdUjk. h 0J]lM+ߙySU#u<]zA'kPE^*OgO }`\9m^ 0AIȠ4SءPּQzOH*y 5$="~d$ :c xC?D : A>|PJ+W o`''zO%kd@5^)ѨZ޷)I`m* ƿW8VRPQ/'Vu핳T?- :5;>[pU0;*QHy' \r!R@8:u  26+(~򊒝fK XWj[JIJ\4=k{MPk&2\( 2>-OWHʀ+s2x@/t4v} c+T38/ܽ5~fҲpSoR)l2 0 ; 0-/@N1 g<N(pt& R{ɄBܺA' jHFlo*"qZ }pP @$A+uF =*&?VE"*=%mzn1h߿x Pܪd%)0샠5%S^3@QoOj;q/'TR"ۃB(FY uw{H!+XĚƲkO~F,Jkg Tx{V t?5[PcSIlzhj2ʛAZpI[ өgk VnJ6C\coP(XF`\惼h1LptS0@?pD}d^av.v݋F&-銍 ʚNj{Duti;j[b1RJ^xOrr%*U 'P7Wol 㝫Nɒ;YN([~K|?RX=RΘ) A%.% +*|SA2!qu4|O.GsU =u+ԕwƦ5J"I"_PDE pu Ի%` r5lÜd.%Tݟ"e>$aڛ%n~d:ʾ Vmwn, cbFSid징tRMbq1{y IuOoN&D:|P43K@+\"عF8Jl~z7 L! Nj!ϵV;pP#eƒaB"*xHE\q&X`DV@GxS# 0 ouFr\8 #!d6vS*? % q:*|eȌS /~w".R?[i-h-K)juJU$2EJqMM'*dĤp"0 D' t2b῵KljLЍEKV9娯ŜdVBGj(AP9E=3OwNYOTo ىjO WyY'RˈlEh0"ft pvRq~o]= ~޺O*4`k08$:1MlNj*4鷒Jjm@oFrE+TQ%/Hr}ܭa&ՃR>@a"Ύ_SP,'Δ  pW9o=w;/,XG Uaյ%Iݴ ¡Y@I2]{A,K92d#(`:* f i0@,3s <#@r@gآX@%PJ.M@U/kA=cJ7#ǡ<2Kb,"8mu< R%uH?x/RdugxiJjb7T9EY7vRjU./p`FehUq5|nFvB0簺2Bn-1 D^$ $eBJ\0~+-\m4paWXH3lьLx"@* v 4pM$y_6=ɀB1q𦃅; 07l ~ 63+/ڼ=*m_h* 5=x|-lsӬWG  SRD4P1VF"(ZV*~c Du7?3Yl&\aA߰cQc#XX3c5.lmn (P~ÃKF@cS,>ub @@E-ȓxv.W{^" Srӕ%툝>֍q$ y6=.Wh%w(_\_=x~= ØGeJ$^7gR=&ӦhW<o5<$.q}anh*/ڷVLo3l p{%4yEpjc\b-Sfk@^;&sؼ1N2~Kh^(*HR;;Ȕs,FU]p Act!62^!B@,d#nls6 h n7KS!գ5;ȃ3,DU* Bߦ䋓j);O֢).F  1WN'_-uոL-/buqyO~XSC*d{U P8MHve/eJ;!+ 8"T_ Av2-KZJdyO adVe$ɘ6;D'P@& wWcxrn/aGCDJ~45|O8A@׵ƞV/r [1rwRnЕaJJ/KM+A:; YhT/=$sb`Fb M`;W`1j#Nz:4{-55oM *1@Ҡ F<Y2N*CRl\6D@e,f~`sصޟI`1b75M7eQJ7_,8>̰K |q4vnflMuDC^mH1 5$"zx/!߫^2gG" 67tuoC3׬tZL(Tj'{+@N%?x[X]aUڄI1S就0N=@Ծ?[F) /tbH$| 0tn_T LT+  Soioƣ+b+ ~IfHS%Z9:Lװ(uQEd+mb2n)=ڎ ˄hm0 jzF\uKַh4 tPn,-X_@O% ,n4 q0` U[Z q}2m7bU8(E(~ Gh WIN`TUumRC캐.g Rʅ4wCjafE-|Մ[@a.#b`#U`(xCv^tIUu !@Y/c?{4%e=` G^0`Da+@ЅJ.-yHnȲU9xU}Dad2Zbſ Po;a AM }`AJg@5 ,@&@y +t[2GXb 0 ##G0AnT$݈b9bzoxMpPj&FUga@8)܍@r$#n aM0`d;jLm @K`&u5$gG Sy3/ iyW$q(Intdv2 h(<`q<F`gp/XSP jr094fAR<<6 \ A 9::@θ=M|9a &ϊl# Qdcov4n92p$K,pw`Srk[dɺ+af M8K(+Jg9S13SP>D6&X ˮq3 @# %PavʀQBU痉.H!$j `d :"?P 6@@ B P$USp Ge Edl(HBB7Ƥ:T uR3w=dmR>D*0b2St9+:jJe+""D<jx xx )j_…FCK0SYH@0~0iH%f2 R*7{U@B,X 0D&Ss@ ɗ](@/{+,&Jcuۃ`~Cv$i..Ѣ%\ꐎgZjip }M;4"rR[Kh7_`_PP}[W`!]o<ECwZ !#!tmBX9W$vo9^2ɨ 4<ݢB'l˻CH`TU;{pɓtI͞[ַ<|ed N!yY 5<79 *jE,L̷=$/8q :y ,9pB6@ANb@$@QIWɟud,2ˈw.Ehp hh4Zyn)@ mn 4uA@P=w(`u2>pN=k@ެEPyATQert*D0]KJN::?lԿ N}&vibZT0 ef$CQ%` U̔}c6 }0u4QCiRMyHiKiM/%,h\^' Yaa߆^sjb${@ 9"`s7FϾŰY?R6+{?y+; F5A9M.qi-H3 6QmJ[e\p=/ ʸ 7mj"8t]ؔݫ?;u8KM9B҂ _!OU LHrtB=vN+9eA jkDu~^˰/;' ,P,W ^po'esnCx.+ջLH,E"uŗhHKydBPxI J=P׫Hp- ?aԖG3O&"91rӘv8 (f *e>_햜 0!` 7 $^/NXD4@ s~:5)uչ{rT~s);= j"034C(f4'FX3t, @L;;"bPFA`kڊ"~2:wUi&NF0*3&CT3&ILǁњs0h,cN cRT+N;L-OaeDyL,yߏx% d= SԞQS Rf2LVp)=|a0Rc2}h'L;UYStW-282〛CsPBA}㠽Xz)LWwoW$MF,gzv0?\@l]_VN9R'$=f ~Mq@=+.i >&hu7ƤWP"=zСwB @A\>4@Xk\80[80*VI 9zk_/ yM,~E%a;צp[=BAl< Q?kE{L(BG'X)55+snctf_UY D;#jl8,#k D(ә]tp(v;+lgc"N +laRff8ec£1tanSκIغ)!Xf};گass68  XYцdj/LNl`{=ӈ`2i Ў;{I_/XMϨtJLLwde9tW5O0 p_ o@] )0 %4@ 1И 8$]@-.+N ~tF+2hHs֋~PR"yϢ(麣z{fA%z=xESLO93f|pc*pKFII G'+_6\„m%f$i,Jܰt!]KibLL !v啯;pDE.ClA'\Pm1k~koa["ZM%Hc\qUPX7%|d*x6t: w&Gx+`>EREp+`qjݑV9 '_l`N\ʬ^adT@AM ;)xL}W.YMJϐ(*$M(݈FGN"wmXRkrR-n`ldms<[e4({DQ8Ic|.|-X8H/!k ^`zGlJh!4ER'Ր"NN 1-*ZғtPAg 8^$^jT.e9j2>jSC8a3df p *MM*YWhn. \iFBPIAʗڴCbW';Wมʃ@!Hm7@ R<#zMLDq><ѹ"pRE [3,I{ɬ6|N@.xm}#0p:EPYƷWmOM`|!>C8O h@:i2@Ƥz һ$ZӮ`Lܠ!TTdž?C%c/P5<3J+mHY5WCr`ѱopHunX4)V@Ǝ8D78wb2^PT[æ U)CtCZIYtܰq`) .wRȀ k $n\@=j%Lh2VkE,p㬕 c, )쨧h`:+MY0~r,d^x-f W@Fۜ*R蛶|RH*Q:w^QW^P9*^& NBM]@ t߹ kp`zDJP. >[$́3t!Hϧ@@ y ::\270Q  cWhEz#@ *c]ݷ*-J( 6"ZnS^ ٍPFˎ#Hp%tK%@YNsO7T?|s;WfpEYp= ̙5_Hf?'m/MPcECH@LX|r&ԝh~/[ >[VTxMRr`?pEiY%dPM%,{n[K|@'^;:ǖ 47JuH X,8l:5DAT[Wq[8V&Ժp$uZ-r $n2-D1 k (j;ȈLJk]b~q(Pæ3(2 `#,@JPܜrsK~%@5)+5UX05OrЀydZ~&iuci_wBѷ$`(2~]ZEfo7IR4X̸FQ$\ r#BuFå)`zJ9ozMQLY#A$o;[BrY}CXXhu@Ӭ~?8'`bxnZ)i(m#yܷr?h& `Dq*Po0ݤ ,r@s+qW*]*)]H%%Rll O=7Q{k")@`,W*? В㛒6ʹ@UEzʞt>nM%;:G%lP[`fPm-f0;-]Zu21o" Y{Nvbn^pn-pC7}`XըgT@ uDP5prr腍l.TZZ$@QS8~ÊXVc dM*C:V ZK,Lpea+QC"*7m:"RR k R o P-0OYx?0 <CQ:#_ (n4pw C`Ydt TD7d!R N,>X)0 /x)@ z*36MD`58+ZDLPIT*.l~^?EmM,nN pP* (檽c;s ZR D!z Vc}X=-7h{SG_z+o+K/h7k=[bҜ_{NoK|:]u*.k3E٧T7L")HtR(27LV@ ^qdZ" a{)y=/)ys$d5Y}A߁2n)yN1X+B i$eᨍw"DTu)xs Vd:XX7 e/YVhou&GvC0}Eƿ,CPK&E6\lkxs>% K4zHɸ%8ǀE%LrIӞ:P,K {Qxd/RKp땹m+r2mǃd +N]1ue#U^S@rLyҌ#|$Rjr!yۜ-ōYjvƠn)jn?  1i!E+L+-UN?\r܌hn@*G\JXT~B& n9v/Ov'׽VOHMJ-_H^yח[OI幃ˬ9[_)dG!@ vȠl>bB`w5Ę̒+hI-P!5>\@˝uX^ B2~)u"e 1pf&'$(B3a/51=h᭐KaTc${XRwe*䦱?8qdNc|V8UXt+{1Xv2tvM/!@WkuJ{<̡V}Ah;Z!P-_0wgI ,tL>PM4\}I=;p݁{&D.'by֯,=\|/NV{`|:옱gjT7:,q=-FZ 0Gc4X&x`6ST")H#i9Jpgm!n WcPkCsbh]DBIoF[c3.GoHNIsQm!~JsGW1 Q` +nwo k3ɰ/TdepJ֝Q[2x̊Od4_ĕ|ux >u4atˇ5.HJ[ϗD>}-U6bڕJ-$a_t@j%)@ʩF ,F&Y7T4P(r:6XFշ%:3Md+wAtQW|P>H>Ic-<{ꟶPm>(cmwB Xl!iQ>Lj&Lyun~^Na7ȶ~B;{aXN ,fɇ+Y(|MUy hB H|SڄŁ<>$X`wz4T5@59$Mw`rߥFZ/LlOev 'gyB}EJ|)?1MM%}e\.7EQNC\]0*+rZ5~|DH\:|wV> έ^vaqaTOQS9#36̑_X+ md/)݊= PTi1Gcz9\Ia;p 2Jr>@t/;;n?bzDK83&s),q,bv1^c;}!U$+RTZ Ȁi0vÜ~y%YY6Sz8qugФ|o $bIK kaDLjߢ-GFަ8{o ݎ:1l}-ejD; C5W}} ,$8 ub`!-B%GݖK}3Y#tnf!VƁ#W5rBDEr'D2d_2aF"k6vOp<$Uͽ'L(7d57n`U唯6E79|nTMdx'\"?}J+ҽrЏDǦQ\{m )?u &f!O;i (w . A,|1*ϙs1܅G͉dwY^J\L ؝*yYx`- k(%y gBg><ÏTyUnz6la{ I3zo~?agޢ MBT,؋Qx=:lb<9aS`m3$YUEWK\D(ȨęYl_qAJɰ NL@+J WE(xz N䰵t2eLV8^paHz$U-iji2YWNR8جÄj&sG͇d6jgesDZI+ aqWg k~O[q5oc6~#=%YXEÁ4j/@ұ$xq?   +aQ] KiPNKE$b"FCaܒ#8XҽiGNT\mQҽ)BnF5‹aCsCSm(˗ 6r4&G }jt\rTs]VJfv :[ Ykw)9Ec2lYʁ_Kb>! XMh;d gكGksEC|w6mz=qYMKcmۢ 9T'xlߑ;RǡJT@FEMDr{ @%JS ''[So.wIkU3oR9b. \j3bvk]*aIZIj .UPQ;*t6c#ʩ%D3qN k|1UP|Ѭ0@=G}T'sV?cع/Ȃ 0+y y&%WQ mu<4] ) ڲppqYU2OdVXc˧,}W6{Mj~8w{ZFN@cM^R0;]%*PqM5ͨg%҈c0zE4FE6:ȹqS.r;KJAX 1g #Zz15&c:Dx:Du/%x6ujB| M=׼rH҅Й&OfCt`1gHjUPWV"d,#jq z~u"/ 7Idq(> q KRȕ\r,AٙѪD"oPL:f-RIy@gXnXMA9`@*n tȪc$st?lA(B!2M}b2onfY!\z0'gr n 6i3 9P?"w6lŝ €ȱ8(`fFQUW-{Ta(RrZZ_]1S;T 9zB"v0&!2DO@@ ؄Lp! I 7 dJA8@H;".` _$'P|3],F @mkXx!>Z S^U 0fe0z 3)<#0%DT`8Ȍ%8I2]'t#<^#y.ԏ7-A RR턨6&΂!v{sb8F5y"4l&GPUTӥ)ҚaAg|T`/mb-'8Z`š?ՋEq>k\R3w} XeAeGW`Bq qLA,,;a{Юayկhim[DvTA g SٌےtF-5VokМ7 σpn'F~ Ax踬P~ {<)1ÞV UXe/ l i%|:A+&ݠ\XUbe ,,HB%;gcǶOC^wt@$}m9ԉLXFQt JpDxб@,oc}аkmWQ/Z" 9݇ ;W'?1N~cE!]D<eA󐖟60Hӕ!=9RB!±>T"4۞G0Ś_9xEm *-8&le@Ȟ_e&A-Bd&A-Bdd`Tq{~;_CJL [䱮Qt\j¨Y!#<^hF<ŠAwቴI+{e'[]'*Bzr'*B *Un4WG)UO0p`jQAx CwH5>.NJ hiC a`$JUPUQ7i;& 6\^uKqV[<݂@.LY5$Q&7hkK"^X8,LPYv>3;b08^&_}O+ɀ7jjH50=]*۶#pݥ }=ɡȈq '1•d{D#u b A.,FkW/%[CRö+$U͢n/x 3$*t$nIarO{AAo x:#`uuU21-=`PS[`42@f#̀rZ5@7 $ܛ ;RG~FqI .;qG&^~l%J.hPẀƵ md/@$H!eV\E֩F ɐ10:$ƻ$]tR;(ѴOf(VEγ7KbEB۔RiUϷ]"gAlii s"$^C,O½(ﶨp1jDnaL1 1*MǦfѰ2Apd?'mwvH3XR$FSS>,8knZĚ͎#SآCv㛸l$/g)=6{q d-#vme%h}X^옽>3^ZE0Drz>@?s752R{A^&oa/=VDVŀÞ(W*N^5eq9oa40).RVݺf81s;+g &@ZDR,z]b[ ^PXmooEvyjC</Cnjm,1fBovRuwwT@:ųMpP;Jx#X(jBg/Hhxo0UY_Sko^Yȓ(../BC]G=Nkf2&5V>6O7&߯ӓoྌ^ rAAb _֕)`e#T:$ۋg"N"41 Cu3P  %%)-C/n ۮnpRq>$,]xO~mAHij{#QٔDރ^Qa i p>% HnYٴܯ0._*7e-ɂ沽P* }gkp=ú0d/3: {^\2;xfs#(ѐ\( Bt ,҅-dL[g3h|M? >St+bL%Ǥ!T9(75XԯΞ!T (K(NGMG.'wĨ)8~+rbFl\#M"IePT 1 !_gC֠ꔸ˴F٧#QZ} J,/ ^8,HY{6(sfPʢ6g6jė)t)ܛX^JPD L0@ #=DH ?~61;: &5jBPn 0kmn.C@q$ GfNE"A= p;xǾQ+W3(X!YDguε 2ҖFHJڿ84_R@$__L)s iEHt*~< 5,Yͺg7wYԛx+2`|#wr*LۖT8c{ Rrկ:Dְc'Ui约ґkM(8vw\wbDi?8a$ZRχ:P9xWHAPVrH8cbء,=xy'\Xko 4]vm!?e==SuAd58=nuZ~yX’Fg4IGW}` >**' ^O G{xh-rʒ8t)G!H˹0.FH5L wٷ(yfTYN)v ^\荰y2h \58 La,nK$|1kDgcs2bӞbF3T85bVjHRmhVP8o"!1lv g[ (ދ1ۗܮ̃BW: E {Y.jK(fbP[bK͍J [GWpl8֘ .ZzSX#_q;Z{&.o;LɢM5QIhšq/Vxy'xQ,Lͅ(z;Dz /QPdGBrm,lElVsCUxj "C郺=y@nLBƼ^sLӦ~LyΡ(e2b~_%OvaW~}!-5:|dmoҎLyV?)4 +"7==[}١g< c7/RAdH@ aFQRbV儷ɠl)l`fMmZU腺'qU|(wɢDy/1A10~2>Z]cY޲1֛ePq]Y{AjwXIBŗLDR_ߝVSk#3A-f&t}"p[^\*!) 0P93~e/́>\D=4tCp(('Rf\C@$ Nɞ(RǶB>=.(m5IFHYʆYSE* bVE\ݝ a:`_/LbUU,gug*)QYQmSQrsLiFl)?$(k m}q(Cpl9@SO8{5fx%~@mC}wMoE+M;,Y}eO~]ؗوv$X?iS;GT0M~Z8\+νvq܂ݪTkdY,]MC!"ojEs9Fvb̟1"p[:$H!i̽)D 6Z ) 1nC QU)TBnz"Eh!)l3 t}R8x|x?QVg}.8*nZ Ey4b\BeB7j)x7ùXA?٢!_+(;o4)0kHVKRVAh=FO6 "T]tBr9_M3l ^'uHפfUF9s?_ڿՀ ݿF(D@axn3B>Y HRGo&a#sHIhil h\ f^qV 5f'"%1I)H=k2g ;Lld:H{ڀLXC4 |]4SH. h @*8D(`YʜSSܗej/^B*RF@W$$h?MrJP$e/t:0$;,*a@ue(bA%o_#`yHYA$L`h@+yCp {40`8)/eNp#A@uy<ˆ*@*pfP3~:4G-Cp8p2K`HSa['8sP:1F2L~@bM.ȉs }7)=9<# Ba Sq5vIFEmoҬ hX"vA3H.rMUe Meɽo YiLZK.M}Su%nNrb$\ x,I3.."k10u,-7#,KFKRFp;sқ,ꤙ=dMi[}\c#X! ~+|(R|Q(ƐC<<*EwG}_*&}^USr>5yuyPU%,mc= 0eɠk:89z5b۝lhbƸ27D?=mwR#gDsW"FhVWWg{1jj#&o̖ Av,bk-^aD SA(&iA=t!f.b۳MG{*Pؿ?ĖR l ܕ  FI8C/!13Իs< G٫tIr&"Ik 2< #R̡@tNdC'_%|r } <qGe cyc%C4"ϛ3vfAg>XtKaMyZFp7P6ܹzy6z.- >iXm\O|\7^PhgoӜr_p ;:t ;# 'tq:aG|X&I_[ .zǣw2[ft<yg|Pܥ{ْau#EXkE."fɦ5!nAE0 4Z|S pa+ p4%񆘾xl!(q:'նTBnBiKH|(4nb G*>6 թ<`f/Km.Q\3OspQO`lT6* .LW^<7r~xH $Y }TQ1t ]x #8u9)t1|FUJ.4_^%ѻ矖\r8RdV콇ikv33@2wIjGs !VF"jwHc9  hnQM8~M$MS=Xva,@SĆ;,@JsmðƖ%07@kE9z k/U!Yӹ>t;ah5 hKY5 G ۲pDtUǹ2ːAKp+0.Jy\G]*&=mm뉎ЗGJ袑&(ͽ?-D&͢:gUwOu&qϔ K wg}Q: p컦_}9\vVϰo [=_e+whlPґP܌K<ʔUYKl5/i ˽(W0YiCJ4!ȣSFXC`q?Tb[ d$Y`5 _x ^x& ^ZJfn< _B_x `f4%NRJ߃{5 i.8XכrKS~$%y ۳'qfad4i*}.ʲJ3؃VAڂfX ,C6weVU[^R 3TL1{k kknȐPx)%P%z&oQ8Ֆ&qwjVo`-G3vwt,`DcO!T1o P3Cje<ҟ6BA|+Ph)\ ህy 7b޻t "{׬w}'PɀJn@ 9P$nAK+jlYR ЃQ8齠o 0-L, AoOhVaևg[<ݎT{=F*&l>ӳ.2S&$jv,f2̒ZS> >{S^Roe x}&T'wҠ_3]r@l>~Z^N XN&7&[_!7[2}~VVwMSPa$)). =cU)jO7fKmZw3] % Z(h0h-@UJK2'NWGQcLZl1CF@md*Tq$ݺ.}l)PN}w(#9(~ ye'v>yIAwX:睑b/0kJ!>(Ui-ދLAp Xq Ϗ{k/Eɯ0;kI 7+{]lA3[U~A8p-q.ǎޑhޜ QeYZ>AtΜ; c (i]?Yf - [pzrvV!T# 8$c$0Mb>QןhYJ<*`s>%hV8 >pDιsHJ*`( UgeSF*Gn?z"7Pyo]Q[>܀!ڦ$ ]!y{?J퐛!Kob/Uo[#uEn !ʫW)wׯؑF]/-0%/Xr|3jPIV1T +SI TI!<·7q%.5E>+v8qw>H9f\_a` EÅQ{I\0 F4fï5kΡAyl. JHoiOz#߭߆>M'c/kJRZ2ȷRH1\U. `7!џνYނHj#쀋)(MkwS?"f̿c=caf.D%0[p`IUq@v:J'zR|燼ztRZz$&h #8נ+r(d{uD</X=4nǼ~KU?DNOMH4[C{]w"pN!\boEP^|v .9]2JCE+VIU wyLSɜKa7k{ֲ*G>g=kÜ4ûs_0"-v{^ϛ1N@ OFBDQ;x#V=b"GCWɡ`֭n6:ơQ-؉3{`&hWC "+4nE.UKjj̾5dDԊ[E3`(ݢ4$,&r){~`"|mp.. T3EȾY/Fq.Z,n1A~P*QK0QKlG~ Sm"c\9ē1k-(h1VI8ݯHW)zl=p-xR J5,r 9[>kiTI@۹!j_*&1뻐 tgfȔ I{NVpGvA$2g&C/ XbP2|¶ 9O^]Y!QU<"^pD r !ӘgM]|Df5Z>B@/a (N l [ `%TWB& {Sj N|ILp  _&RןL9`/AF!yD24/\ z/7[ 3n"]R̅7"bj\@#N0(lJ as&G5"!,Du,ux~0ClTTZT%^A}83[Pʤ5\.(%rA]bjM'gd擥Z40xf g!{ffD!ögxcZ~";1x.C,[ Z n%y՝=&lkp ϑh=]0\ׇ: ǢH m?G`oUuUT"="@6ֈNd qaJe9M .NZ-@=G*TK46#\d>@#0]+éXǕ!"]=DUox} q3ހ v !vPx3؀(fnrBڞ3 @ib!d2+1VWE(< _9J,}-r yB. E j,Si)!#ËL@Vnz`܈ (6,z,vPz@HgиI6y-:]PBhākFڧHZ2o@C\fVԕp$>LbLM#44GZ w#`H]+?:iQ.({zI[ѲΠT8|xo< f= UߠXgYuή-GvǃAtn"ԑJj:xW1DXk $ó[bF1Q`h *,ޠ^ঞ 8_[5KC JIGsq(0 ˂_GsqF azhmWا=IZHQil#\ 9* ݤT$t:bbF4AALmxtQhGϝ@dgHy}*=pmQЧ`C#dNnn s$w< ұ9C~=t+ `|˼Kڷ+q!W?R}knFLE'_9~ X֨<v&xHE&%/Sfm!#WTs:{capɄcg5OqAVCI90y )q];?:mADq)&S %ì(IӎGx` Zc ~D*OI єGv =t?r//k!U #*PTLԬ u h dfD o_ _Ee$IY?G,CV?=B$Ԍ`* H[6@P8p|q@Oo3ӊ@;rNˠ*õQw]¬c,^ w[r ƈEgxyf998/X?5 TwZ䄁 \rV}eڮH[Ls%F, qZqSۚr$B~%7PP_?;뱖4 AäM nU%q|i_8Q\91-69c1A8?>cã{cz'g{ B0Zs$@K n|eATM/A-Z%vH`<-NAwf8hi31Se@h0pD'JqP)r fa@I)]P.!  ]8H 9Qgx%` :]\J0dg7#dspHb Q7 C@roH3FS1 @g..k@÷(fiBxX d5̿ b,Q3ƴk4LS/V`P ⟼ٙA'C!/i[`^hC ѕ,BO!',H@>7m}tiB" %"/[n Q{҅' h%2,o?GٝM VwKMUO~u)4 Lƫ@XT8 4DDA9hX!_@2/̌Ľ ( Y5bIQPSp=,sM Ob*ʀufA}LӜ;X%XXڰ4 ?aά ~ 9H)]?yLY8JԦ,k.E%AHnJ0\ᐘ,0Wˈoڤ#R"΂KհIlJuFk~< 9Z)ֶu\Cd,S85bzX*4I\C6-0A+fvЍVW5q qil~I 6|Jv_b_A~TWeBXUWW}ך밷sΨҖy"jF!.@dѾb/$W\8rBg$?~$ l/o9Z7 ȻPP7š< 5"oI hB%ݥ/ު*M :ܰZvzGwq d&^BQ7x.:RP])zw1k/+ 뚼6jΆ5DCC\u/N D- J2恩c^ K)>Anr+_WG%}u"zMb|8 h69![@'ee6nqUU{1]? O&4@YUs{AUY(HB̓I8Ge$# 3M)vī@0fE@Im'Xzw!sԭپ>m+<u]Mr:gUa&9_7>90 @u2YNCTܴȻ*.oop Gʖ?}߹ <#j|IK/o Ram[sAJ~*i-Ø}H8$e:d0"V ` @Ќ9@ V< lp*ύH5(>'LjH/tVgV]C PKN#״ ",' TkQ@ =`T)!N7;Lq +p8XFrwrf:JqRju sjrEqQ]MK=@a\ M)k:P,(!CyаPأ[9 X$I歷( qL 2=͉BR%Qg~m(wٴF"33=\rou}v#ج-|~7g9T==%3"#La֤XgW[-@.aMvĹs3hDn3_EH13HB~2l v޴bL@rh-`@S]0q/RLm6~z`!qtZPcߙw z}0:ujx:NN` Μ-.ѢZ$%7<.19nfЧ8pgnb(x.6|rKV2KnMxA'y=³0"כ`ֱ.cIj+i$=4$Ft@nw[=!c|cgg~X1%t2pa6m{M o20p{8%0 F #i}J!Ҋ 2 q*=( S)Oszĉb5苋qS?<-Ff~&&J:0Ej~XvΙ CzNm^̵71q.쳶 %ωRD'_J~j1T) 5[ MM(tlWFWW(erPqPf턒fK*vd8<êx0sd20v[~4W1v %O)_Lv>78I2+*KM~+ 4$nu!E=xdV(yI pfoP7*D./| wBܖc/k Ց$@$ehث-QDweGA瓓.aĩM97TpM{qGwhʩŅ>0gho,7&c?FvcU+^砘8z/n>KOui_qŃ9E#<3'nYeUk(gj xT h%rCLJ%h.C_H9l`c7s4i<Wx,=O;p~3 O&dCpۡ| ~f&@\P1|T(y2ɦb` Stʳ}қD9>aI@"s2Qq4F) _z(xhkG[z ZG:J8Dh:5𗑮c/H4CV6;u/>x@#A'Ut bktRe |R "6Ai?9ZL1= 9.!YP#{)G'*`)z:;PK4'% :oqV.Qݖj 仙U^%IާؑgC37ac9Ik>]j0Q(7h<u7\OP\+똡*kin/.h4qL2-$.? Fq؜_%rhZhŨJMj2);Laq{\@ӥW-E !3b\#$#sb#1\-7]) >+)SFH $;աWoɗcܚ =.(NN: 5IOP3/!6W4d7M dHfD/cD9-J|A(›Kޔi>eᚳKeQ=,DRsT`dPQ&!_0(E.rFx #ᠵwT8$ H[}Zsb4QuO]r9w[(昶@{Pu ςYg 0+<Ջ聱T|,|V09o)\E[:ʈ7 ә=iTtyB|[- Y3JBs@-MZRYlW3V㶈` {Z]ʃՈ@.3B]^hNw}NW͵^bx`;^oN@kgt|`mTO;vA+p$j6\g N \ k*|KE`1W4kfMf3.C4B1P򁢀|ⴋ8V@Lw`Ⱦ z&`<.&EP LP He`@_^)Z@tD}ΉzҔò)€yKdY#(Yx‰x$ߐ03'N@>~*lTvHJg&J m\y`5~ΜVc}@Mr0NlҶZnܧ@`ojt21²)[%Q㋐)9c4h@9HR` i! ha_kev` FΒؕ剱8qZAiH`F|7Mҙ Dv.7YG2q R)fOV>8G~FsF4!; >ل7} !g&庍bf6(:tǢY! (&IiěDJ`й 7v}`#v &< ݓtЎb%R* n 'htx*b=nfPǓw UpH Ȗ}TXv9@I9l ?0򃍢`4C ly4< pt2GA \t>.1@%}(4nsƤX< :rlT>\ W|&ߏScb؜H @@'Wг{J>v# >p_`?rJ85NJzrZ ;,]ʝIpN3<+5|=%#yD'[t{fdp2tCz}2F#6$px ؍MO=;OWfn90YEU88Ii@K]fX[ a[䀏'Y1K/J}Fe(xA|򿄇vvdjE(S\`nRau0 pjvT'b'Hk1_WY423- 6JN`_9ʭ5S8lXҨ$q5b{Fiwhԡw_WrGo%gXsֹiI@G@9]U|Ο,GLWרf0`L(=hw<2s/T]i0$#ecڄǓ? e= yVJ_~+cv.6 \)4 A9"K «Vrh颰]Mv6-[9*m\lI#e:vОo¦Vah4 OI@?M0vh2[߈]&)Pe4jH2DDJJ M{,w%AzwclbMX05b]JҺeԐ |08~ƀTc@^_MSnU o3sߑ4Ѱ;Zi{ |7* YLװUI-\X= MxNٛrDiݬ(pe&zϿ=wf~O9Tn|NCʪxjlEFԲ<4?Rbֽ)Gpn&8N9^ݛ<ϦZ@=Gt#S1{I ʰbc:(T_ cdF&W_6:Ԃ<[-UNqB2y 04̀rL8H?V<7Vp*OM4_"|&2f">74fbeϔvYqUnp!v=fWU l35 3y [- l$kj< i猷.\QRMvO\'VKMa",JdRZt*;6o( p@=Ahʈݘz7&Bk}<o.rTVZpz@ :sR3@`umqUN{(k䁐Al1UHf3@q߻*";{'M]@!I5LwB!]P%3M\xinn!K 2gƸgÜ]y!#W+x.'=HV1-7{)AWBi8)nTNI^kڌQHn[$,1;[92?{m^#;ZTYHAu Oa>r;M v4 T[r"JKlx&b"-uVm=*K'k[Xa!lz= J{)6ʨB{oimӗLG83lZysT0Ul'a*>+eEîr!S [`I4dXme `pҕ+fdpOf*rBZT:Jr~g.)^ăsĸ$v >=|**zpw͋Nl:i{!qG Vs0m۴<,m~5@FvٽV|uzmknSRv=$0kLe}]NЂ §xqע]>3s#$$:]SɄW:۴XXRf8ѐ_?+h kU"ۨo(]g!n8FV7mS\VnE)3RF;=:׬Y4AD6 KVQ `\\ `(}2C5V37"u5O&Jz1/vC}IF3XƷr9"ǔء̭:DϣI; AZ6i`>IW)2HH@",;hJL5r d [%-ZLjm`9UC"pUx(Ff 1IZt=gߍ[Hʤ)[4_k53e|,led*co'e =ހ(iҜ.;sUY]^_"u}|nhGrhp՗`@$1b4hʖ׃1ͽuG3, B-DIa)A[O5ÅAuz3"|Uώ^Ǝb́)A@K=G硢(]Y L7:W;@kJ۴(iq;k\aCV s\Kg^D' @uR Oo xp0O! b"] /ݦlb8`pCSnx0$: -pXp("/{o!_TSԚ</I7^qw5.Fz0Kw'&"h錌 L::pR%%|S3̛4 yʮ͐5SfX -#hLhG(SkM.6 =Eq(slrEi1mpt;zPŇ+'$Z<2a.%`Oz,p`9<O?ҭBϺIc5Hd,* 3`g/jdt|䷠h ocZ0m: }W<dz eˋݮT3/i+Zо4Dvhyvqh܄ϱ{/O$'4Q+6'HM&AM]'pO>+O Zpx+I[gpP[kB4?<].)nwq 9{P70ET}?4.4 Q~`zh al:ξ0_mCre qx)'OU-J5VHǁ.^Sϝ?2s!yi+ @1[Ik>#F ﱃ(~w̐+[}WMRVZ)Κ^RVF Oo@\ج}#ZXqɃa!D%C+.!Nm_b̘G =*eAv4)ji,.ˀaD+`j"D67۷O :c_ub Mt .UO7vOv6$ *)B! G؉X mf Ϯ:{oDk4h -Q7)I t, KiF?\n`۽==-M΁ )}2;9fN le<mjJEp qQcDH{\b<~6j@QXFvy!y^s~k">)>~FwNsɟf!k'&nA\/"}J- sL,$zWIjwr-']8 x&fx-qY_cAPN;ޛvQRm+ڲ&~L+Xޮ,&A24wA#)sc^l5dK+N0Zs.pc-30JF/^_12Uc~rOcyE{:^Ph\V&TP0 rU蒽=TAo jVLҭ& Pi ڡ1vtqi%եm1?me4s Z`7az%QyP |@ uFq2:,hƤJ=ЩB!9)iJ@30*kɝt`WP4 /&3u4eu5mx8E=BKbYLmQ!ܤ.p !,BDAP<`1m9IsaBP򁢉BҺyl4;ŔWtP9E\^ O{فg32L04xvǿrѲ4QN?:_L5"4hC;#zkOO^&ƕnIAXԻ"32~-Y2RUv!,T䲺69 tDA^t;#[:.ћævp @@/(,"_@ ;@ژ~rRK  wC.O4fk"j溃|@w^z} P3b aA"E pRlY 2"er0u@BM9v ~ީGq͒Y'|CTR-c֡mETgvиH 5#2vPg: $-R=I @0%;0U G )F!n3B##1QhK3Əv YضM'cNhS!y-aElB" J7F^+Ǎ<qF&MU3zN2Df? +Q,Blh4f^P2 0@lh`+ r%L ,Mѫ`ɏv^ XÀ r?UD%ZEhIӝ"(! Ozhk,ajfDKAp-p;{ e=[1H.E@r'[1*4hXjJE{)}ܖ1 2@o fڮ./u?v(or\B1~eq2\Ew-ޛZ #qF@b~PyPP[!I‹4 EZ^>*GchjP±/e/G]*e L Q{mI@Ss9KAJ"|qď}~3ŝdřo%4#,@ ru{m 3c/8 F FckOŷ0:57htd\,/U&2MgB\)˰"7BPng@q c?SR2T( <݊am|,PiF]W C ~#ɾ[_Ѥ>u-! ҵSTg&͌]ᩱ@HNrm r;FYB7SjP$ P_)VEa ?Ј9@n Lܡ2%{}֡dXRՓ#Vr| {=!B,-8b)`8Q#<(8 En)%DŽ?PAv |nQ% 9i%U3 cd Y*Vse2$ގCh$ۜx,C; ݐAtm -N:q$;F;]AK00E }snӄ8ÀyGU$ԁdy@IKB'wkeyT 00EQX?gx յN*iF$Sݼܓg?"1t5-|u>\f*} TQq8?I-P9}:$f DYIC&O,Hr+\o/ 3l… F7 2bTV-6! [JoHDb~O$F3ٝFʀ:Yd⯡߆yҳoƹX1&٦$J !䎪~OeMbx&?7#s;kN)lll^ZvGpN0p.yQN F|SP"SDq+|6; W|J}X 0E33 0?W@`>S X0nն*(2AyوJd/5Yޜr'azfEY^ft.rK@p :8W;Ow$se[P=(立 (~P@ƚБV5r74D!\%9./<7"p Ȃ ?,/mf!`Zx[)uFĻ[B0-F$V^C% -!NGD@lg @7a<&F5Aȓϱqczoe ٦9b A;@]J%+E T aH ݓ.ǛzEGID%LoIBY27 \M,! Qw>#ȯc2&,˕/f3Poy0H&&Y`zZ$Zj,Bx9Чa`H\x*՜ @ kT @iyKCzK${*!n9 >`@p! ?@ oAp 1fU%=xT-HR܉ \P.@|PZlB ]?)r77OHuwkE` J.Q<% Ro 1pn.w oǮTXEB*HSMX`J<[GW! Ə V`tzz9;`) 4.]13g)k=晸3t癆7I8ǥxM1m"-4a4q5#;W OҤjh9O \ ؙWK:Fm;\K`SE m*dO4V^#3+;e^{H> ]3GU>n\y&]X@z`D9exnxxԤ)eu/n+G]ovSVHCwy5lR N{B2 |$!~R"4$*x.*af̎0+$X=!ЏqM剉C(͘0 |  . wj *D^ D1 c&v"{|̺'m+Dw (J?T}u[;vhJ~h0PYYkc ޷aJоy$W@#͠Lx~ 7}옠締χ>'"a߃);q2(~#$NC睂̗b$>E AU9''2n5,b.7(CM!03ȯk8MʬRYmg23vMw22 `^yz\q 4B̅"l L`f&)N>sSxonh>9~s$Qnwy*p5̲bП -K7X/Z_ԛ' @ArJ6<ͣ@\-+WV=a:.[  `Y-B)] 5tA:0`3T +(Ei*N5KzF_H/U^9o*Vv0kNͥ@g49A\v xca'VDA=P*-\,D쏩IyQQ္B[o3g-pY+ k7~;U s{_@&i\]p`70vvuӢzo0G8lKc@)%s߃C8bG2⇀jC"X@)MjvI<[Y`jNo+7rè+^.wԺ\67p !1*斄2@h**Q47aZ 0 §O4E:4\U11-J-cb4¬@ ANO$]u^o CZ>)$}ŗ+MvAڌFxbgEB6HЕ5=&dn(5$ʏeqxrq0vd?J\ΗT)3b/@aHEl^'XR  )ታil1[^Ypӝ9ٵ;ެ;Y*R.[2S ej8><@Œ1{e"_- 9%03ڛMjv&wЍ0GL\6 &5`&W2u;Aw>pnnj 0`l]lFUd$5gm G%xqךթs$dp3̼ߙPOU- @E'g%]E&H_S$ wշUCm݉0!!LX<[WaTbQ( 0L v#4<ѐVwA槦 ڵH&ix_/GD(҅ˌ ֫AcwZ-Ui˖F&ä hx3Y= `<:UZsN6G ܑۛb,)gUp4Uks2,31G>.'HD~3:Nm}7fQiS?"vH,I. . /k .E'Urh 0b|Bq&,nnO%BkEd!F1gfDŽr=V!A,l6pg$^ ހV<AV]*ȼ/,U- XWkLR,KQ0|@)'@2pR]v㢀 .vw0IF'H(|cPwGc @LE 1zak|štV\s%nrش9Jq`Q*1ݲ\ymv) ]9@W 1it _ܛlm05x>"G($4qb6cXXJ!mOnPg/L8rJmHʷAU\;XW5J@D ӡwĨ@!uU%zLfp<:I=#'kr(,@Ms&V@+ 1pZ-tI f+hFJѳ3_G>wӌd|,0.,/Ps-g%C`#L|T^ !;(A҉AΘP Bx*F*ug 4ӀmBt-N\YGl@! {[xm<Ғ.;- 2v&@'J gUԗ+ _|W;Kj&U`64DBn~^WkOIlZVtdYW%ND%s2:^=)`_^+QBZw7f-D}q_ rmz&79R1~pl/g6 Sak _Y:"pmi9ԥ0 %rϛ,rU|+ 2=0^CM>#&p߀(vߤk;hC2ob+y<^VP_W)9^MGiWV8=rʼn1ںyYo??Z*@9C@khſc}&41\VX.R`{0V͛8pAͿc( [_Ph`j.g_1iO ч.amfl@ U&\7~>ձl T!)ʎHVX$K!uVӋ 02º&ւQH[RV]ʟ+Rl3oB`d ohۀ)s[(?ID.3`Ԡe@,qDHG+l.o߁ ; y7W˨5EMv%{?  A20V$z{ Hظ0~Bڔ(m(N״61g:gUit A<1AOqY{涍t @WRCA#%w=1\[*Nj⒨ɜs]ˊe>0Uc/9YR _"#҇=i!~ө鰑/0r( Qz2-vD`/e2jJq k"D~PGKG~zR&ɴ0'O}ry i8U֡8 @=6PA)6Tl*p+X]uIM dG T]bO1VJ߷VK/`ۈu~8p@~a"kcɠԏ gﱌ@HiRVު~=~(R! C X26~Ŋs>F]A؟>dnIOb47ļtp 8€:iJJ9'f( 0n ,_S^ԗv/nзYf.2T\m@ "4<1 RșԎD^")3]KK@ppXy! E1PODB ^[]JG@%sy m$9s$ C 4R2҉z21be9ش\zCd$aHAA\ -p :\krU= @xb-ko\2LEx,le$Bk٬~s̕kc~ZZ,bMƀ xGd0b*Iq cNJR$jQ+;`Z~xhQ.(e X -KsiU{+~P) X,`fZǵ ~p>SD J,ϯ \m vCxUL =0=a'kF'Vt}=@'sE{$byfmAZRāɀ1#q\ GɾRsT~K؈3!ck).+ ݾ#/,<pck1s@G /$TFqp %zzd؝qp%%!C> ÐL"˨c4{YGh zNs΄mYdmPØ _;Y8!DI̘r 7`#'IJqWK8vW%h[{\yԿcY~Umj2ԱѸ ǃ(c-ߞ5tPVtDC\ H\k@~TTSGN+'ex$ &8=&!3cʢW# PfbВ A=782Wl+39@9b8.wsyCDȖ;E3D*4Qb کm > "QionuHdàL?ҍD4,2Wg6WҘh+\ָ>S]XZ OXts:z@ @|V"w!q E 3 ѷ@gwqD{p6юVFX zBEڊ 'jv; ѭ*6-`2%XF+]Ƣ\r+@]e1˪ϗOP@[㍍[if`@%INt{+zL_k\`i~'ANMpupN8J\#IbclmGha50|Zl2pEA|\pӕN5K[G^AuQ_wq_ܟ@; 7ZX $p/u"dg6#ѥI &q PFRDAbqe*d%ԆM% e8ǰR/\i<#ݟs!S*? aKQ6%!&7i=5.3'Z6ggU?Jf&)r(wڦUY$T%L{nn`z /T*4V3ܥ4r@ 'O,lƓC9}mA"C|`b03sF:ODt ªD2v2hK` .OFᇁ4>sܿ ؽ+3=$Z-# Veh褤qfƥM{}Uɠ]a+P5g;*oo(ÒN!)$ <09莻UY ݯZqNɁOF骬2=% c2>BjϠ%61Ax "Jb;ʵ0z`_0ȏ2&Y. e!ωUxWHk+gۚjsd\ CҨ$љNzMr[wg5뤮9zANv ,c9GB]`k _(fDgGJg?l+(Jl`I=`[!e]t&mZ4˝z :]pA;# _Nɤ(ǎJlv/ ;Wt >]Asĵy_EBd[4 s̪6l H{n%dI"dL9l J( lJ%eca<^[;KRY,WB35g%QJ3*1 =&7Jk{2>LZ 'MNeEKmClMb[XھU#HM_~-C~iXs`{+ \}L( E90e8{"a'.Z1 ;AW2쭀=p.#eBK@V XC)@ f 4Rv@Ok>zпOc9QțWߗҵn?+ 8H Y/fA!j˽^ | !0s Hx j}Cy;Fgqst+}^VJB~{ETj ~H<<].B-\^={gu2j,~ c(l&8n yףcY&Ͻ%fwlɣ{D>WzyL r/ \0ϱf$vyK'y2ڔyIR bliYg& LO(N`^@[ȂN:B@jbl&4ιڅD/$ P_9X#C߀B9(qA E P|a!EDB`ꅙ[)lgv\I[  DbP`;M{ )l@\= dyUI?L5B  jBNeO ՀLzg'3DyW% ʑ =mG&6tcD .hJP.83)B_ex==r2W/Җ߅pD}ϕ%^ 7˜6@bP1$(h0YtXc@D5e@.:}e tre2gɐpIH,DPD4 Ui"m>J]AĒx^kDw :ɭ5Xc3'ԉep~ Bf(I5#1ng oY/jki$lBĀp>E,'otQKXs9O#.Z쑭b,C09uL@c8W}Zu$6xټW5&{CQL,U[1CӋxyZ(B 82Q,fh˘RT4cer~o)_KVx\%s{${8礨6  / g3:X&{_vPLh$*4=4` JB62LFf9Df/32K=ֲ,tw6y})'_<q ѱ1! ?q-wYˈtN Qz- Smk O=1 fZ,vuTH[6NPGO4I7*TX7);)IY*{5N9 Ld}GWx18Ac0} G5ҀTeYS/ĐY(\%"Qd1߄A )̊l{V`YHc4 ~ܭ#v[7P >{/xG fmqL!f‹g~D@OcH峱 !Z@rx; wsU#f"63Xդ:SpC* 0~ | %WfUHK19[;ia(@3W`jUZBd -!Cu+YHVzך0cY =VTI~Нq3r 1dcd]uH'Ȉ=l!FH QKcc\K^@4õQV°맫Maϓ)-bH+>{U,1K291_g0S76L+_smnbiS^BBC~^uLBa\I "y >P٠)P zM" vN@d 5OY,>otT $xJǹz}b|n6c݇zf52u_*j.cjVOV 'DA=p @0lCNYYjԮP,Ls9^ f˂M}ϔ8Gy~`b/NCUp'"n[IGSJ!RW\i bԘ>lRQU*+bQM%waI+6R/uYVXCE+yHRppeo8=Md_gd`#l¹WpLQ1wx+0QҐ{e\>~V*DC>TIT֏R{/c."'m$icbЍ фmAʌOy"v ᣄ`/@~@sGb*'O !Nh;_ Ɏ!m{bO 9kL;ݑJUʭ0K~wMCBk28$rh||c^$8.; ӏ"Y*r8fC-2eX߭m1Qt q'Po21,ԈPvoZ62j.v@h7~E]Sjy'OK:822@ME=ɳHHknπoP̡N٤3O*$ޚ2x^d|I$Yȥfz ,.= #yoCl &'xʪ5'LeaO'˄f 8TՊH 9XЀ3B&̆Ppk2BXrX˾ )t@qδK#b#72o{>8A?fj=bSckۮ|dc=PEhe7Ggqf0yФvveFO!(yW ZFaY%9RPDmj G3AYtoDe=kb-x4s%6聟*9Bs3U@82,2GIf[ȏIH> i:hI'zLifյwproKPiŽdJik~E^.v+6^c[HsnLጓQ]w$C{ ߞVY}xh`{!Q&R-L(L)u| Sȥ$h_eDMPCD"XMY?Az ͉`ģFZ[8 U&1$l?6ǗYXKB@r0d [:zHTHnj4mϚ] r1ѹ󞱹ZIQoʊ`ю6QWu5ex R$$gHW ~e( 4Lź .)(_ m'X~ p-4( 1p!+ C)Ɗ{ԇՖCLW =֎KAO''-b]{8Ji%7x*d yp^34q'Bp9>a#ZiQ7cu u|j *n*/vĒe9ݜ~j}'y$J{A.ȧu{JT!x`ds9؉[RjԝCh1?B^r^&$w|Mfx<%jiC+@Y@3ϕIj{zH)1nd/w8t< VwyiUm2)hC2;H6MhdT^+N[ZKQBfS~c0L ]0M0`kISՆ@8A}h= rv)^矮5ba#MԽo(xaXH ״\}V~uҙ35 !b6й M/@2@l42,\Wxɑ"/@7 NӕN;5JH 11ej2m=Q]Z;:i-;M"(_K8O#bfZG6 'ʂOB  F!;-[zRsӈ5r 0dz!d,VEHc]sYb *Ԏ$@җl5fދ9󡤟l fvP$`a˺1۞@y6"Mg4zL4GYLpoVƮ [ J+z 0\kb|rИ>H赙N1K GiU \8*91'l`ȼ =`N^x0z 4Mm`EJ! `&0rzV>S\ DeD-b3~MdTn2G؀kVt;հ1@N+K `ƪӵv &`$>dv19% [R20"Y`΢AI8l>>H9NL2 lrJa#&杩q:|e&E/η8_)+Hv@\E X;UD k'۾I :8v`΁Xf[bPy?`* Zi"`!>Ips}Ȕo(?N<m *~=dX(.LH j81 9#KT;5/QyaβܦE\mPӝ2~% ^;j<ۛpo@9A:6mq}ӫsʍչn3U(He~T\cKhŦb" ) nUs&n9$חo:s>+xt. W6JD($MX'9sz_my)jKOtL! ?B2*~^ljX T- ʭ[^*ʒmPPqj8.ÍC%+H@xFNNHl{(v#h G$*4&HúZ]vzhKJݮG(a%Y 'AHX5 .wSRu  h7Q {N iSɎ#v$ӷn Gql>(p@Wl%i4 (~7ٜyR|Ϭijxr xWM }`. ;O<"cllq4{9!dk{x"gK O ?c??!N[cA1Sʏu7RPWʴj|a(Q]:E3]?^bzƿIנ2YzO y3{al9_TO.Ph؁匏̖XP˿*!u$ Yy+Q#Kcdl$a\fk8z}uO(uݘ{Bm|Ř* DFʉgcajqF` l?ƈ6O@aZĀ G9$6JNd p,OV łK~f=`+Ʀf=N5iH#l.bRc@Es,#4H,5inbw-pP4T<"@]()PQX8M07s?uo-Rqf1 F52wDP)޾a2,-[xGwHk6ǯ`T{` kxQR@5k;n1KRBX o2}i!B~Kw\NnD"O)_^9uo5:ɳ')Ɲ6M`?<@'t%E!m`䛘8M;OwhKnD}HαKoHebBތ/PY p;ty2o}<A+pcĻȂ h{itrfsl`\\єg>PyfUKrC2xy/pH ,H@A/:J1D'1- *UigVf3V}Пu/rkPŵB((@@gyp.7oꝮ8}^w 2vXZ=@uN-^؄&L|{ݯ,#żP7 Q>zߙ4K^ mpWxq[Pၓфd=yk h~ Gͳ(ksP[/֘(AuVFr7eh~k Ò>` + h,*N8 6%>/gPN@c&!)L?qhw_ȠFބ< ,-JVC :lS;$ĝl C@ʣBzMW R&zN2 WD5Gʁ㘿&q$< VN]ӍP$qyF^ $G`m\1-|k>gOoKYSeގy9* )<ͩڑo;XA y!3{_)C@ rmj  PuTn^! >-#eh^!X">KkOBe| ,BG3DXzuB,P_@~AOY]ϕ%_.nĺCДp|@k+h=4@fK Z_pABýtK*=~tC'REu {96,!eBA4r(g+7(/d}3@3@vfxq@ TQ)0{ ?c:>5Gz=x "޻Z9IơZ1ʨ;[` D@6:?u+)Ogm4гXqM6t(#$ε B(^J\AM诟JD 6ScN/ IŁ\qUcEc5D[N $raI WD{3 V'19m;  ڎ PN8TVy(B#ǂMY iTV4` xWgpP!SĪX#S0f*0_#.F +Es #tR?CX^fTD+n10UIlpFwSy L$;空;iG F W;ƚ( Uh@ՎZv_AY.< lNvr+:`V mXiRP&i lטw8l,'ѣsޥT;GkQD!P 6݁cF>tDRͰjAw!y >1Xed'ϕoqRIoWp2P|dlķQ>v"U: wA^{C(++LÍxe~),? {Df^FXqKSԸDz AG ? ?f Iv`8pl"bS\ MZ@2Rg #:x@>u,V k1ė1ZSs~tݩY(!\f 縼mL#DPZ0j B&BQ<鍷m3|0H`]CA g}-3K[rjwlS A+-6 R1]`HoJC6\MTȐmZ3賽 $%c0jʊ&C S!+m nETV.MQ](=X+^^~]ж58OT,_@JV)Tl HR ^6_@0q;͢m\+pfcl~ʕ̫ L":9uZ`7Su_l ÷?Aakl3bk`3y݉?ilh?'|*OdWt'=C$%[Ϸ|m'xDnK(Zں-{XÞ3שkAXhql8{rpa 2y!.56RD v@PQ8"^~MB($V3k=I[@N D=bTtJ%IMFkJ@C.IMFt ik-9XS,_];HX**KWJ@zz|\sNXT%xU;0?YlV+ʮxzUp6MB^RG*CTtLj6hIr-vv&^"DGbP5@Hh@ i.u!dP$ ͘!"z#"BttQ*D>t>hUgC#krsj=#!Ž<[fAˀ8.;uӄ 2CM{+EHcr#)vh 0-D a|yf)'L8y*N}0ͺ.F7Ȁ= xu J@ ӗcH"Ix g閲qBP )ǀ2b@Ndw(+)2Ķkv-pAeg5$0Ct} +GFǀ3v^~JIQ ,or|/\D>ɶd$Wz$`A+`s@$xh4k@9Oo`sxį:S(?BkpG%f"!W@IoxVo8XcjIvBtnò咯 t^GPNV~C]^|x5|qSDFt;nˆ3 WQNB|o`@J}2!Leero5D/zZ"0.zٟof'؆&"x[͝E` Xpc*ږ:sjmW(Vʓ2}[t`( t 8癁92Px,4Bn!1 ؼR:Йw퐋E P3r2%;q+L:I| sGh&X'XKfR3YīМf1~߁S=@79C]&d^SP?I'F|48C1apwɑ|zbCʼDJCH$a꡸܋ [w;A/r+" rY-s+jw pIt7DQJ2 ߪFr2yi]8J^R,98ر-(iQ &Zd8lqRL*2 IYmԆgI6,)΍.3@FǴ$Q]VD5 Xc(,#5w"KyM}aP,أd<;B` Rp&NC˝k't(Q\Fv /W&IŖG7/ɱMn ܩQ8Z hbuZugc9u0/̕OR;Dhdt?÷S7_A ph<<%M]c( Pր>|gzK7Bs}E//G,l՟zd*3\ߖec!G;< 7a̐."$`kB¡VGAd"T6D0dX;;>uXN=Bv:Sg15CٿUtcױfiKSǂuN9et9ph(؀e SB/ O8~ p&Ʌ=9,cHN}|*1`YU=/ I@ {N fN\Ԇ)$ :f(#=z ƀO\uy+zŖSVLfb #AwQvw~Bh)?Qu Nw& 4\C@0/TR QGP5fL/F^8/Z#ymPپPf)/‰`ǻ/bGbıuRW`H;=@GY@ |sև IdYJ2ڊ42>0Eptok9z_JKo}XV}N oólܘug3Z/N^ʼnB uh:TکT" zK4 +8n|rD[n?lG Jq4443ȷN'7,,}/C4`1~ #,Llq$<<[6*}v6VFlՈ=(1MyKgt̅$QH-G,Nv psB#˩i k| >& \n{}AMLov~p-sƴ06|]ΫtaUz6+)'YY7V>*.OʪuS-A_nޟ[NBIȐm/v?=.,shNE)^* lIƏx 3eHWJo0Fޓx_p"|jśx`҃M1yD솂Y A)_>|J,,, »,BIzrce2OAU` [C2":E 2 M5\1Y <ˆ'\X lr~z=.^BBA9h >ܳNxہPF<"MN)D Cy#Q@}lJSٚOFh =[Ab[ vQLL0 aO " mX3 jxU(S֠A_D`-pW !aDzk`ZB ۂ IAM1 } έ+xHiE@ #7O?:0&n|paKј9"3|xhU%Y1h87lH332rv CD8M.RN" H-#~bw! p>~{?\%+/mAӡ_\^(XZ*br/~FUD%@ĉOv(#3Yr*I\ivЃc4q}23fMp[El`|%* QG@YwuZcb4iղzFLt0C?!W P'H?6}S/9awh0W>CB`V  FB-@()#KGɝF #J]* Nq !֩E~|aq%:(\no 6}e8.SnL͢]Aݼ}E&O|;QG9hI<~QI.yX'\_Vq-ϧX mNrCcZZs'C%'Pl!E2a[cs>VLtj8 %Ә5_ܳCjan>AjX*5%{ؑ } WePq{ʧ; v- V>2:68!L [߸{/DE@gnmg+Ft[]d:f0E:P*bblF&38Ku*j&20GyHg# O31t3 NJE q3yWA|(k8 BFUe+jb70A $x[zPL{0b_&up{޽\k. lZ59^ af'&hʑ*ؓ%s33 Y^ +Ru Қ*U=&]#\&P̺ WrVA_z+Ӭf>[9cҪE|02ԲOGn(Q|4ݙ'#i(W[FSGmbli3r:o,9I(Jv0 k>_ zX&c,gYm\/vs@ q~ߴS"q,֕m?7z$d_ȢH7#ɬaZRm?t\1ǮBYڦ?pY  &#E2j umݮr-3k3#Ifwxm*G^GY.8x*0u{n&KiW]\zk 17pYq6^؃ y"ZH98F01;́v͹\~^ĺ|s ݾ!Q%_6DTis>#G.}uAf~@v!ow$qOܦ9CJ| Aym/z?Bm {G<]?[}B N[l NP5,*`V EW ;DƠ rctP%$Ŧ'@ F@:h$+R{:%Nveq` T? 5 #={,xh@ )H"Q2yiyӘK5x}uƀ.sDx$Pk*3ת#(nv+(A=JNs5-f LFf  '4!>To5,[vvEzkIf-OgMt htYƥ#vO+*@hW;I!%CβG-m_aS1 w" fƑvy!H 0/RKgZ˾?`RÀ,5QN7s.y _Ғ=BH Ws_knjR<|dwr[!Kw \L8N5:.Dóg[uPx[isR\ NFj46MUk\9B~|@M׀ \( LVN kh+!`Sa.0+_L: j7KD%96Զٓ"T4j*T0 ]UM#xl Y3ACƋ䬚Iv-1\N8k-- Fey!KVMK1M{(+%9IHn3NC_=*E\9A%ZdYIFO$h":q;$[ox=*$30UMԅ=ɡF6P޼U@&TA;p,wf[U0hd7e"w!(۠1 @iF$1.DY0{yI9l_ϋ{=`W#m75ߠCaX{@l=T܍B# B'}oWt;8=͍423 Qݠ'{ZޮT4 Nd`)Yːav9!sbG1gˀaS7}5tp?4DdR=@my9Eh"y0k5FR{( /t<*Y9/LeBe$7>gŎG{AфB/N=i 0p]ЋAu~ BIv.3E8ç-cfHJ|.N8C07G#|? uɓ`ǰԵsrPcWрtu].]R]bZ?i>NPi3o!vI$S kM.$&ƍ F\ 'A<'\[y6/3Z¯D_:%ρ ߛghelE/ /#Ylo7RƋ&gl#PNH_d.M7ޥh<_< j[F^iOɕHf-Qo}ᜤAv|_>XK?MQ1I*=,׬M9H"lՅR# FJ[Ho^'s/9 D.g+ktz=1;<c@q9Nu7p1G}BP dGz (r;Y{,k("S i9=SJ8)ë K(Q^[a(O:y "R< TzzlBYHw,>a'%N$?S&,p9n~'t*k,*ܾIW2M H AR幔IkrTr0@C@\ ?(%=Զs5$F]tgDg {'ə.kEjXI3j|y(G$NOl`*cp2WU^2w1 3.-2b(S8qďߚ/_|*0X\M|PC-LJ๸1A4DCo΋=H>ٷQ݂ lp)'Y̘ϔ҄Á~N\$ ,Ӛieg\W_3_sK\e zEO,peΕ$dك&.9\veƎ],mVN#<'[Iz&0P1MJ [O$Mɀ, Z@I/{_>7[wƘ0AC<1XRT6|J|cW4i }R;*>6(N BQ?GD[!o% U^.Gp5oT4ت*@>PlCSЊt!@m?~(PY =U`NVH,M|rFx\PxfT!X(\"lp^+]vhp*]WZo,JӉ m2i* u7Xc`_tXT-q$_|Ę9NP5?@(Ш"-D,k2@f7r*dr4y(e $gd ?" !53a$G&"8|Diѝ2j^|d`{-WLxMY0?NDUͬ9#C jP?l'=m+mmZ%W={Ay2AmF }.Vh,v͜0 yչǐ.CҺ"h|DeL誠BZ :\@|PLبb/*=m)X NLF} Y-U,2\awtޞʉglN$35W4R0 a刋*]J/-.(5ؘ{h@/ s%f8uEHS'lj29PׯV1>[Ah !Mv+!RdWCoJ~If)EhqjAOzܕd";3IxUrxz =[C 6Um1(Λ?ȆAhX;}KB~B"zNj<+.@;ٺ]8ev_u,O˶ :G#ѤԶ΅3jq _ӗDž{]@?= ^Z.H, ?~ 2(@w nH^k>z">7'dgZ3:sp x>y}{INwqRmjGTرJJ|/Kg/W,P\`/aD >=}zvrMwJǛΞFb6Xu3@2(^)Za$s55OFGbi™眓_6HfsO!0"?,h$%>".yjd8rZL!5-UK `Ӎ-7F]p-t h]bV=X(\Wg_ /ߚ-@#2>% a#f`P((ր9K؝sE^<-V6!Y}* ׳C3_b;V~K9H6Rԉ@$[  J]z;G- V%IӀ mߍƄlfX׬ 0eM|mW3`inMɰ ^hJuC iz#\̂j#76T/ \ԁtşE@HMwn3Έ@# WC(wNM(5zFNp~Й:5xN'O?uQW݀ ؾЉH  3@Xul1(P98HZ}p7&;++L:mKW'}LzOnؖ7d!Dih I+p&TmkPTz{D?xATJ@ie+!jt CNt͓m4 G/&83S@H7X0x*K)&}?B,ܻ3@8Xؖkex)r˯xYzJ%WƍvӖEj &:DG`~ล6` 􁼑S&-GF.l@ Qr\dݹRwvbq)@&@ gl(w+u3*di3|byLd<ø՜^?Z OרA U痳D;x׃̾RX[vtlLȥFǼ^zzu Yałnl=>.c&oF#ᲨM Dw>aU@-% bܭK43;1)9XԞ)bI} gB,,,98t* 1]{TJ}b?ˆ0G mޒ -2ݭ .k.`9϶ZexEٗ-d4õVzG[p6%@zp%,#k,D~ހF.}I֚\;x}/aݝ_iSj#Hw$8,$Oib7%[3ܬ}Lt%d(pHq)p~gtp+F^ SU0}@w]C/wBpN_mʹ: &,orD+6S箈D/' *㾓\XPWna${KufyĢU R # 'XLyVqP-ןظ4)3GH> Nכ0tX\X6cOZ>X@0>$1㿋| R(~z:AoyYuTr ~fh2|:M`˸CY!Mm$j=y]9 daC:=4GD|Ye$m)BTtOT$)xPi:dG+]TOX݃Эj'Q)oO`Wݺ*潼qp0Q>x6(v?21a=TYao乖,:Z;k/ʖ~sl`nꏞx }*O+'@` q ||~ܩ?ǠZ<"Bؙ{=@3]J?Z1fl^3"-  Uxw'Bƀ2!QjL,JB\T/4{Dn3׬З*YZߏe^+|%Yzbu/jFG^@Ȥї@Dǒwo=Ln_ha&L{8z@#xcdv5r ]k 'i b? DZ\JPJjՂЃsһk>GQ%q!D?s?V,_Zp K(7q\M? 깁(wF;e7d,s@ T |M}cS\,vy.9G1Ҡޫ4&cyYfk@"Dv}9k;@ĽTrAo9x ,)M& 5EvtqϠ{d uUp!CT5Ν'w!cY'nzC#)vG! @>E$V&T<&lj |c{C{j} w20zOVX~1.ɠpŻ-tbN❄ x5uW@WGAL@cBCPQT ^H*.reo B$)3I3@_2F_>#Q" O^*8d R\Ĺ)e!~#^VMlSZu4p ֢g `QX g)Uf0E @:8nl؃56 :dSp4lNF^\ZG@M 'JZ оxnij,!G ѤD ZH%m8@0 z Q4E~-su h l9j"xr]q D"4m(!6Z4`1yRA! #f]4}/t&?+0"1C"ڷqe>$t!Sʊ5(L:)`goZMy=N뿀^A&T ,:w׋&6.TKBppw\CsKzyB vMaz 0ROЏ9# ;Ie1PJA$LNr{bűg* ڻjsu~7^u+F<lpx3iW0(c3, KNPo\K` H-,-ۭ"|s7T@8Q  eM}c|c @D¨#/h%C`žd 'TȀ8".@ z@%Rm"V Q*] )l@|( &@?Cdl#t~i}p@ Jd3[_zS >`;xB~q 1]M7|oĝ7╏ęjqQ̛˚Ii '̇>| 288L`Z6hKD>=CU8EJ ?@?G&P]E0UI/-UYAXG7"%;|%ڿ*)9$Q WG]Xcli=_eiZyC̴\rN"GrU?ML`b^jt/"oT,c|RPyp:0XV\|9@ހ@b@p 3KZ O ]8 (P*w'jǀ֊6}!}!R -+JxJ86Tv`z8X "Ȁ;%Ǥ /`04Y1mZv)8ԽhJ3Fy$WM4{`CO,yB{,@&BY*A HfZv{xqW?q)\Z%`HP94 ` . ;iZc9a=Q};[db`&X蘁CеG8hҊ~tO97V4Ձ<&K6QV̊?'u/)sEmҚwoq]):{dImgp18 *F\S08B$Dqې ?Rg'r'\:j7!ցl<8Dpn `J>E1r*, N 򄎴!exd6`ಋ9*VÏ(N1LEK]oWhF`5/HBA^3%^U0gdh"PE)'N$J|d$&{nX$Wq>URXc10 \`;L R {.~o.Ll眜z⏦kbr#`Tғzh[`>5˺|ք̯Y]M"quPXEU10:=?=eKXVj&Z^sHi!!L$7h<8  u-Desmvr>1hBJ6ޙԪB\o}vS& To,.lkc1WYIJNɚ<Ì:0Ŏ6`R ,|*U"1#:.!,=Fe,qeqʶpC$WTeq;]ؙBtPTqyHca %s: ,ڛ5 ',0buVF L$x4!l5z' %sG_(gcZ\,r_ɽ<  {go>8V?fjQ > ;-nND! g#B rd,@XۡLX@X/@ dphcpZPQm~}oaQϷ+)J,&{.~DvOd[g]>a=2E'*=hy-.Φ@l!0: X/;d5[)U͜hF0Qlvd5Z!Vk6s[iF3Mڍlf59 0sZMq X/;d5[)U͜hF0Qlvd5[)ٍfkv]Zm(i;QlƳg50A$Ql|׫D.F.TZhHzN 6cYlƳg5A-~ь6c4 Vk6cYݠmhJ1mle51nt,0 }[I;ls ]~+|g_onh|<܋. 0oqگLe9'RU W}wۨ͊N5 S=hE"m3 2,,i;l*q'$j4ddA%L}`EULDUb=G$@BCLwi7JVIz[ax/$܌@V[订e9u1pk:qި=n}p(Sfc%@x  $8?5@ t~|ΫY_Ӱ)?_o 8q]y)Q%>ϳ OkDKY >6uZjPr"!29hR6%w蟅aGԅ;U7?Sܓs K.<<\|%@f X/7o6`m?_A/,6{0 X/7o6`m?_A/,6{0@ X/7o6`m?_A/,6{0 X/7o6`m?_A/,6{0Q `a`" څ_So 8q?@K? 0 X/7o6`m?_AO06{0K X/7o6g~`_`ma_Ӡx<0 X/7o6`m?_A/,6{0 X/7o6`m?_A/,6{0 X/7o6`m?_A/,6{0U X/7o6`m?_A/,6{0 X/7o6`m?_A/,6{0 X/7o6`m?_A/,6{0  X/7o6`m?_A/,6{0@ `q X/LH5 @ ,6[Oq?:_ 7upo@6N &M cZu5[l!Z?h]-q6SQŧXwe(],&/15jYHYo M*$G۷d `a`" څ_S٘`m4g0  X/7o6`m?_AO06{0 ( X/7o6`m?_A/,6{0 k X/7o6`m?_A/,6{0 Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx 3Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx uQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx dX/7o 8 N?_( =Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx  `a`"P9uq`k_1q2?oǿfWo -2# A d H8@>?_9d?| WO؁?_6_5JwםV}3oJ:Zc @1=Fe4nf-y@?YX_`b`.H{ݲ8_fv#jp4هA?*% Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ā H d  @30? $}SL{s_=8q?:_ 7upo@)6m5+jWo.AHC*O҅y^͞+>28LHCՆq}RaYSAq QdiJut狌"6`ms=WOc2k܍oǿqe:OEODT`?d%^3?m^Q.dV1Aa[Ül<ղI[ObQq3 /zuگp@;ڰϒ}C!826ަi@3[ ,i LAQxtӘ!GL̥j~?i=Ɣ9WDbQ gq^0xp<liAN` )#Q@!8A@|GN Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxSQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA`] `!ol3Sd@;Ik(*?_3`g zG`mv46@ SqhR %!u ;h|'t*/C}.)L.iP5u;x.2 9YL,T21蹖95)ۋ )RxhPEҟQY.2v3yHsCQ #AD9R*H`G, :Ul Ӧn?ƨX1A l"01 dX/7o 8qAAAoǿ?_Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx%Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxhQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@0 dX/f&g u-upo@6`m?_' ''CETThtHݥ)Ng33k>8sQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx1 dX/7o 8qA11oǿ?_@; `a`"ځ q?:_ 7?_=856{Ooǿs`Ԅ3oj!MG'tL7H RAd}Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxEQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxPq dX/;d5[)ٍfkv]Zm(ix+bA3E1Ҍfc!Mfk6s[iF3M״32|)1 dX/7o 8qA11oǿ?_Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA-Q`߽Gu]Pz(?ݽK"mNbo 8MǿX ?f{q?:@t-&" ~e=d/Pg<@b\.sk;,hr(}lFX>n;~bk\/Ǎ]WR3 f_oaEpUyHZkBw}CʹÈE2\"Y]_[Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx#Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxeQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(ixHA3E1Ҍfc!Mfk6s[iF3M״e,@A-Qd ;`{TIMJ_RL=Jߦ/PU U jk pQAn<8B+ڐÀ!Ht8` @@@! I=e8{ Cap3 v ;jpNH6ژڙ)G{uh`?~ p7IME3l`U"/-6HWM 0Y 0Y΀ =.pj8%H F0"U0Ph +`9`pQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA1 s+Uoq?:_ 70@6# 3ЫT LS)ZP@A:jƋ%8% % *P-`L@$,>Щ1E 6&>_k2f]q6A6T4|L]@`08Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx{Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxAd H8?>]@IsEk܃q@6`m^w)1vmw_K\3;?m= 7u8J@TR'=o@Zl-iz ĘW#dhS!Rd8'SC HfW_^jX@[ܕxC dX/w`iF3Mڍlf59 vkaFjSY͜hF0QjeQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxMQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA)1 `a`"f3_ 7upo@6cXյ C?Ÿ @Rd-=bCBtp4bº54̧|e;r!(nuXm̃o+my>VA Tq @&/]N1/i(XRv@d\XPڙ gT%1! BGQcd ?se9y_%=M<+C5 {F84ՈWWqVp$ІDYߐ;fj_%Կ@Ζ @OY$AB\jC4ԙe727Ks@5X}JW?;P{ύFg+ Nĭ8ggP/> tjE@K. Qdחo"+b'j[.I۾@2Wd,3jT*ԾZuT(AȻN#>BL)lۓ\7Dih%לIRnA.,5/I~uETŶkr0fju'5 8}?wd>!<;%wؙ$:tRHpV^51t n{E}n;&IjM',`OνFE/J4,j^UUYxi/|;*fb8 <<<<SO o0gD+'^ꁥszS%qsQwkqٮMe>PJPg~e_ *>Jk[:'R-]W<V-p+u'`a u@u$~9P*?] |Lsƌ]alcXfZ9*dΈxXjzGb3H U +AN3 muw6 As-GVI, "q*N പ;]u@q  q|ehL&+v=u>;["ӘR0NM2u*[; ڄFT-&}X{DGU-s槆>É4=(L)AN `Zoc%-*l#+v'O,d f`γȤ:+"mgwC({`8;4Y p$'и PT!@/}qj|6\W v*sl#6OftA^a[~j>z$S'nHEo!ʂ1!*J75FC6WXb.)>S LUt)(>MEy BxHrז* kפ$1N`2May@Cnݨ˲|<#$"U6P!iэ;dTԭjKB@GYQFSPoHZӐnRpXYÓNW'Ha507/pBNbE=Js-Q8t|Y=#, ڑj<:.VhHowLG֧~הkDᫍeH `9dS2hnrƜHȋOg? ,$ʹQ4;*6`F6I\zcIXZ.^mn[*i`򸨛$,̧3?hU+tއ30:)x_x/DSh@"Hf~;e *FRe0Uͨ\P>& o^Ljjoy^pu]r|?xFˌ-?gJɿy"q65 ? _)Te?V].8Q9LM判 yXGnָ?HVUT䥚314Ƌv:z)IC=83铰L>8ѭ &¹Q~)v]ǙLC<\$ gxBMwTն{[?"`*Jh98=qy&}fL3"qPbUh EїJ~TMlFP92qڅS4IEa_ƊMF5.͋~U_w~`f"IxopPD6Z9۾R _f#5`t qV?@\sE}!ۯ .`Cx(e `WAqCU*M@p ;*rcX) 4_">.IYr%+Dح)R lˋx&$PP^O_G<"fJ2@\ȁ^ w^e^w9v(AjHRCcv-Ӓ1!9/'9^k\=1#STfQ|s.Z18$w^.74!tH睧3}gT!E]`HQUN= դzs`\2#<-t]/X#9Sɹ90w̮չHDH Rw.^S B?9#{?]TN'Zn,MI aKh-)ND$PZ61^|~$tjNv.i3lʷ<;>RBJU\̾d&j #<[@VQ80HnR@yMx@XdT>Օ@;d5[%?g>>?'}g:>p4MZײZS\+!Mf3ݠmBD-<<ٍfkv]Zm(i;QlxJ sy):@X@ d* h6}~yLO:*,߀_Gib_c ;Qo;^d5[)ٍfkv]Zm(i;Q` F71 dX/;d5[)[Nn^+F0Qlvu$Fjqlh5E1Ҍfc!Mfk57 dX/;d5[)[Uac;Lf59 voXVk6cYߞlƳg5A-~ь6c4 Vk6c<c dX/;d5[)[Uac;Lf59 voXVk6cYߞlƳg5A-~ь6c4 Vk6c< dX/;d5[)?Ve51nozm(i;{G5A-~ь6c4 Vk6cYx& dX/tn0(0Ƴg6p|eO^hJ1mlka߱zݠmhJ1mle51nh+ dX/;d5[)[[DyqiF3Mڍ fc!cYݠmhJ1mle51m dX/;d5[)[Uac;HCU͘lh7yь6c4=ݠmhJ1mle51nLɁA{o68Kugbg4?:yTWf5(,Ë}?Ã?_?s&Wgl@t'SnNeۥzr?Qa32O <'xO r㴴SKN`-eSC੊| bmaJtPW|8EP<^6N>[:< HzŐb+DW Mu'thF7gH>=N=K0}Z@vH c@OxpEnyަ〴.\ 3-AWJK|ك <r([h("6{[Z95@z+hm79|!o ]F#^jzlm7UJ>5Rj;@fP} Y@d 1<^oȹ5]bbs &"WyљCZZ; gzm&u$shG|j xRa>#YKn]NiOV]ܰ͸W?Ł (ũx»xXxa8@nWʯb #Z5-\øQr*}7Z+Nr.DAY} l&-$``&D I4+,0G`*q`F Uո(>4Am6"B{ Gr.(VCs c<HY1 @[a\BP`3{ITN .q~oFlY\! xHaԦ{".tB N;ŇJ`uJdSۀL *ܱxm,nPeU89:CYj~$/]97f%7uێǪ0.I3'mMH6Hۂ+! YcnnR2|qguZ<}hK*V8]DmIF/m:oKt c+:8LTd!(@b5Z!͑oIY7UY_誯 ղo1SzĔi k[F\Vz# `fOoK,6EرG2Q  cg ꪈ@ddmn9|~> p@:%i]g\MxxXq= 3$2!f=,!|Fc%Q)Psƞ6+-? ߄=D8.Ѧ-&Uh joעa@~jDhNz-_5p)rsVD,`{(}.t>UuLyh북u7xq1PeAzWmNj$}j#,̆KX3)eF[vԸ/V"KpIVt\މq,Fh Z+]5AqD&#v[XC Y /dNB_j0_. ̔(%XVeaTYjZ nuʍŤ-ӔPT!g?iUҶ;((l*;{D @z7Pz!Иn=VZNCAF#_vVᦏ߃siեR"N7͠MWzYyp aNwB'tO[rvag@M+]5r]:}i ce|w\&dɍ&=X8HQ \̍0;3]o}, Hb2U "Ć$1#0}ߵĆ$1,1cB<݇@|Xt!/& Ḁ*6 }eZ9- pK%M8J;%-E EnI$>ig=@bTڬ˸-\ l75#׊㝎WR‰AYT2s1vr* <-1ۏJb#[$ j" lF=g7 ?=`ؿG+pᙀV.ړ9o`d\{dr=j5B|-_.TXQh[х9Yi٬Hch2b [AхܘU|59Ab24o7L ŠQ㇊H^z}cRHM+ԥl#ئ"K Eg0> Q?:<_H{'͉ӣڅŗ+Tv\36cԘ+Dv ZɺF>;^@/@L 6 <`o+Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx5Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ d<g6W˓D [Fh߀42zD0[VfiF3Mڍlf59 vkaFjSY͜`[~@E ˻ XLϗ_@,J 2y/}"#edF`3[Ez`ik0SnFT{@Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@d@ˍ$@@i;Q7`9(Wrj8PQNgab,⌮m(i;QlƳg5A-~ь6c4 Vk6cYݠmhP-!KnZXZ xŹ.h79o]2)IG.:[%rK!7 eӻq\@7uW,9t%ȪQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ d^fssƒ Kc4 0cVE{Aa3]&Ѻlf59 vkaFjSY͜hF0QlvH!Yuw4JW6 zA E6Qaq݂`2YG=dhi@C>AE K `߈wMof>|hȃ` wq?:_ 7v46{OoǿhrV73ĕWbA_m4ʮ9@DM"" 6Rv7й* 7Onl *置T@߉ք9U s$(LWVL-QL@,K8ey,eeW_~φ 8@n)UBo< Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA3 Qd xσpWV\ 2hY} zymg_c 3yo s3˅+ɚ3j'JiF3Mڍlf59 vkaFjSY͜h ݓXˁ0| 7ۏ)`~v Ykы]W0=MjOp> U$ c83|RK_7Ԕq#2e chPW7YM*󑗧0R#%0ҀZ SH7,@Ci{!Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxCuBl**Gx]?$ mpO<2+n} lk?W/+?Vo¿@o:?s#t/Wߔ^oӒE[{~~A}{G['ܿ;OF[4oz8#HB!B!B9b.,2 恦@> k vv{>F^}X #Et)5e5{{{`wmKDahJpr N)H΢{jyĚ ^G=j}C{%ƭ c?{9no&4aRĉ$1l=b כό*Dr~[aZ(oस[ˑ>4GF+<.oҌ \lc6(u~(#zlK5x 0Po8*"OvCg-ɭk(oHG.ΔkX7|XO h~ {r G'5]) 4N.m ZաZաZաZ k.F =N~1c1c0E30D!ԭStY)H?59aZkiD-ær-Fվ͋ <\7o6Fܸk;@q1>YG ^DRay"Hcރ5 7 @y)An4t~!B!B jYM&wÄj$ڛ;A,eh6?.oY`Mxf< I-KP6K/{ߑRMeW@}NP,nm)ʦ)Ijc VR JQC*{[XRfW^{ rEUYcde=u2U *R)JR)JRUzYFO9dt> B_-kVֵnkZWgiE4 :"ȭrm$9;!L4-]?#MKR4ȴxsIsv9BSM i5lK{D&ǖιnBḼHX n@YK0޲O]0 4. BlZ`VNooB]ܞ[4읎SY^A5Ҩj3=tvN ]HH#Qa}z> gs$sIIs[7ޡ'cEc VoMsnvN?S3333495}8xA.h]wN?S3333333M_[*>^6&PD;IH ,ksv9BBw ,b˴1 R|*OBFjc-1C1C1C1C1꺆)'pPuB&:YfX)Vc׎YFDCxgVe〣Gb.ss;b}ojMhp^e &jAY'53 K2y&D3è6Læp Q1hxKKUl&Y23"s+v _.k5q0%RE6uwzӶ{m:WrhR[v_<ݼ(%dLja:yxV!gSPBcBǩL6K4_s"Ͷn0*saI?du ,ȴ)x$vIR |s6!V iۗ187j ԀA 2Ǐ.*O6RD6ETUf>@$.\l0#]bVJ]PJ$2=R=~7;obftAW.kz$uQf#FpA((wM>pŽGLu\{/O=uHa[.iKǔ'/m6YrP_[hU͋T]mi_G1K2~c2]i39+CAY(q]am4kS`)֏sUx~)˂UA;>怎'eT)YLʲʼn;DyҎAirmsBk6;I HxOw@AΝ |TR,cJ/,QybirKPAf#F 0;Ə hˌL1O!R)R3#hdE޴\]V,Î.< d `j5 gB`}0:;"oAD\W!jΝ< 0nj Dg1.5}"z`v꾥n˓„6HNa$`)u 0INsqjZo >,:K@Q.Hu]ՒYT{@`2Wȅ ,;A~<ni;)01?ؕG{mRh{90:v~N1Z}jc֟݅JTҢh $3Q(B`(K@ZF C3#t7V rܖ)&bLsI/ef@ ζX .D l.ƣ T(yX@ÓП|#>~3o9꿂$<%SX@$U|c_ .M#!tK@D]T)B`h2Yg(1b-s=w[2Exn`s<ϿZ7i ղx)َ˘!B52]3*0P+U@VpDv"h'*n\d˂J.omT$Bڴr2I+:<^od)NJn)o+Т"!_+ r]:k TDr#0k8BL 6N Ii[_V,ʓ>{ mhuU~ʦ[OJTy& ބ4*!E:sr%`_Zr\U!F>AerJ\t%@+ ƽ4=@kw0L柤HIMӗb bt}ɝ`ýk$Clq]J["ڈ{f3L2X^uH!m8+ҩ( q3twcfG6N DC$zZ'  BŧH.MsS'wm sbCg iUP( -0 aA&c;F!$0ze b{ ]AF ,:A'wU $cR$.u `G^w/BU.C;+o ۡL)[!V2̀J.,I|#Dp>y|pZ\( q"lAR`H%8HK,L @ n s}  .ӯ dDM^& c8o@66z>3Ħ(\FL=t | ߍOhkR{rHv$9, EV^n`+`!5, i=m ~^h|dz06 L1{1?/7 Xx?D"F#ٙO R*~pZ`zx8` 0Ap Z\*xm/|9h@!  @'AO%u`!0L'!X$἟@-=+zyzM[ =lN? LD/cԾi{8 1Nl70Nd& }@5 GQ0g LͺhXH/,ĀGxKH!;P ^oa fMI ڔ0bۄ['s& ՠLCi,8.7 7c(W c 0~@e7qSS_5J,'fL;PO}gN+K` l$gπ(K4Y;_A@@#ENP"0݀5 U@̘3D@DpFw 3aA~@*pԵ~*uZQoW-J F6@ OrCEP1*( C`d,O1w줤GJZ+Ԑ" Nmv0G[ܿ/mmU1攘j=]IO}F€^߸/7ĝHe%"\p?պ ]&V.,=5v(oL ͕pqf lk]絧1JOi ؑ6 ǐq@{'pe#@oP GgrݿbVŔА@3Lv? /62pQ"0'Jou |VT8ݎD+~5 r80jRe:h Ϣ ^@ʔGJ($İֽT'(&sV)0Vj(8*JIizoӾ/sYW9h;N}BX:l:b Ay9>R n" ܎cC(tJOnK(a,03`JTKNy;:3@ &@14}OAż`/Q9{@8&g{@()TV$ٽDa}\`tfxp~ `s~` L!ġx, c^:~>xƙ.1Txp4 "ÊBՔ=lNL\^6`|2 Afג@ ;XE0t.C#3`|9 `~a YJ"Yz׆ B[4J }n@=e,3bj@W`bEP 71j ih 2Ʃ D~D$^L8{-VבAog3ed&k(]NZɾg N@@a$JkbA4uEpCIk&Lm\~:d @]-éh6MvK|\p4}^BL#?m0pW"u( -3.S!TMf%H +`r* Lx.:CּQI]KC*I{'YQͿEYP,+HK_w6}Qz9@O|b,&EK83hU'x@3l0m8",{4ELJQ2&/0;DI`g K & @-yYȿ <tp y H} @ I3N-)<+ov'`%X\Ґt6 =X/A,Ef^c*9coLՂ)CQ ({ l:0FnR C6H53B.R5! ZC yp /ݣGZ$ y UYAsIY2#UPNjyGI_3k;oVX)Ki\V#:*Z5fЯ=q: mviXY48x{LTC/1R׬0P^A}F4>Z)@Wf|S*lߠaNYiѸqz4q7=+gYėdBd t b]Cߩϕ3a lS 0 v'.$ ]^?"n꽿b_T,Bʨ3ۼjNyNW`A:%~.NU')a7B,A#2}@"7i׭5# q1ij|঳kIV:^߼s÷Jwv4,;_ tԏDM(",E &$p NA%<4=hMC$*\Q)]@K#yrܓZDyxFr y<%eN|łYd匏f+pj0aru4.ף jG^ڝyf]myȋ-& E58$ݳsQ1X%-Us e¶%#B؟( =RN#wdb7v@ ˠKycT/581oE<h鴂ha iWϺ!&JCt1Kh5eQ[׀Ō ?1@.-I2L0!P0t")vPrLH mHXܐiNg1UaR0Zhp"km! 4e>M0 ZH!d  p~ fR44ux3<`Jn(hG ǀBJK Hр< g͏Z)ytVh(!,3 9 Hڮvp?ȭLAGаՀczY 9 8kXVJjN!!hhdf"VJK[  }4/lV! ?|E@ F@<P-(k`i OH tvȴH>CD,IP>_Qsv0Ifp3DsnqY"vF@[['c4vVf687KX# !0/pdJ "vˉL/-Q1^t8&Wn׳vO48PX.om&5 Lf}%!WQ 6RxH"pmM@ k~@c6 ]ld7c5UjW_y.`}QX6S.pCj!#2}}@r?B2:K_!eIh%z` QEg8;t 6i`_*h)@ 72~^J p0("`@+?ǫ QuD":*AH Q=]ɽw[I1b3h-* %pj1aGj͗$=PDeŹ`(s`?saM|[7˓ l@0g[r~ Dٿ?Z8D f% KL:zZ暈F?ye _KtG3C'R:Mdm]gae잃SН *,t8 Ol=^ =g"w98$| .]0k w]:ZeJ/uk!Xc?Cű6w#MBȪqCZ.["a?_I|nT d} 1 k-gkgd*&|:*,# %Gْ=QCQa d}2Zk' 0ߜT/iR?똾};}מNp۴>o{/tGA$gSS.l{u`9A\5\H^sDWm$Jgk@Gih5km l5qJ翞 $κZx kd̯+"$Vw)E=qg=崙6i=9fQMADc$9׾b I]&6=XL^Ċ!ɤsf^LD@tO9D m׿ YdR? XfH* Xm3KQ$tBܲ 9ŬvXZXP`@W@+[ۓx'SpvL#%i UA_apY8,g"h@w`3Iڀgmt%BG, Ɓ03!PAzDoG>4*2QYT Ah X=SOSځ/C6\$T:'BҾRABt BTs)^rL%|'hK6rֲ'@xBj6v$V3"KE§jh]'R7q0p| 0ۘBYL! U[ m= ,2|y$j 0?gn<PT5?\l22֐F²j2S`a(̗IJIooJ{@p3ĀT`Z92\o0 IR*7bկ c 0r%3>@7`(~~>@I|/@TOEP*H%`G:,So 3H`H@>@A4Yke8X'@H `T5:`Oh(QF[@0t,.s#dž Es"YH"3reF`  HJnq`&lf. H!ll o!=-F@nr<d|\C$ 6<%` P 耚c@,˼ *pդai ,|h6F/(. v Lmdoeb!iP ` c`ل̇ƅAQw^ >2 v!Z%ߗHg BD(C#觀;|2XP&d'hLDo"}M8#@p? ^lN\53% (F/),r$\lمK^Њ)<ԚDgm3ê(I]u-B zq3T תpAׂX^] % ӈ.T~:.vtCSGFs[@!`(JxO`1epu*_ ZBPȷx2% %qutֲ E0U>}5| 7YZx@b (l(}X+\y>P330Rz\Kp [X+#@t{qߙZaC MV?\W.q 7 @|ue$ 8+oC 8la!se v+, ڨ < 9l-UO0v`PL6NWbǂ-=ȵK,(| T)@( 1&@@L4 XO'd: &gH 8 Pe2E#`80DXNT![ɘWK^<g!0fI|^HIg\1ĿOb6B'.DȞbUZ5h䍪lzT8@k__Ml#Y4=ch62) 6iwUVzhbMG?P>ʆ_d50VHhKpPO/FbxSL*\śKqBժg:?/[5Xyhcr*,J.pf5g0R;$Έ)"VDt,dwJh@*L,<j$VP Ї thrB L'0.v65> eY6Hlq6>;DK*O;I!F !.{AQT#( 0 sraT&"@G ]? (yaIG-d\ ` Ox@l3E@K ;Ͱ TQAOT(ny` ŻAD"|ԈC"DڑŒ7@Lua B(F Qą Sa殝l-8o/GFEX@rl'67(f(Sr[f`\%/\4NA(@*pg@A B m()l "l@lmJ u Za7hі & ]nXzVc?#L;|/3 ,Šځ's|pDՌnbV^b>*bX\gh (v4/L?:(-P=%m}uM}ƨ>* \Y-#),^"$a˵`/$t4l$4r'79 H,x,ӄg\ ~v\;Z0O,@pDCNܒo\3HduyP؎Hzq-%_pV i= rѵCZ,#ׁܱB B$(ILHh`&d3e3 W* ) i4cxW!?M` @W b&!, T;1U<~ u7 :~0iB1v K QS@ͷ +4v2,pK6x܄ J 6@d2 yc&Á%$"8#4:?n<@&@\=Z@#/6f Z$`S3 ݁iN }{(ˈo jc+>Rv"PuP UZea9P 6Rs {DUtL^P@2 @ % ibҎ GOB$F <ߣ?J[,B`R,#r#pw[8E@@gYf( Ҹ_<;)``4FSPgfs t΃6:Bwq d ܸ3=zwS,!q .-ᶯlot|) T+^Z*|Vא)\3*Xp&V)9;Mr\H(6e;G7A@||[^H/n-<}a5>^by*䗢N3UԌ63Ɗit=(ϖ1ÑE^4]qImiO2ڳJ*$ T[chx} N¬B=.ԄE2 p  Gpsv2,l n; )ǂӨ/I[@ǫ+@`$vO5ۀK8XSa٦(bk l{ej4T 8(-f8TW]n[O2_)-g€ӟa.)JHW|j\]h?#Op qȬ pq Jqd%sL5,4@v03ȠdZU & `&@A"Qd .h5͘D @`~iqŀ@ qd Uu5Fd (cCoYn0,@"ŁyXR‚y HKDt?CKBr:>q_] ~u;;M} Н]cv6gC4'A@s>ݒpGɲ>>u%;zG젅É\{C ⽀@ dX/@4s !Xg 75]؈A`mupo@_rIv}Og09Xi2 !1=`~zq*n;0\%?IC}nL&Yn>4wy3zFz@ OP(__{{=WkxW?_ܳ/[/o7_'~g ۿo_1O.=ͦkZ=PcsބҼ%SJ/0.p˘8Ne (Bm13{\S1`m,C ԔNp.ĉU 0˴ ޷{5vϥN- Bд.| MqNG!*{S mhZhUI/RR>Њ-J \;ɗEюjQjQjQjQjQg kY!$tmJ1\ '̕eE,f?;moR[ zYv dz(}9%cVXA)*CxCڏd:kS;%S+x4@2ؕ8l9ώP?g6Cxs)nd[$'Ω(> G I pY| ԭžL`˃:U50wD?'vpVW7Ș=ܦZ%\ͼSQ @^_҉ţ ٸ644rI2"NpQJ o=cSqs*ӱ`]e3 RLݘ,Y J1v ) Q9>q齫"B !lgثsjzkwoG1}rfblu=$F@&BX.2Hû4LgeAK[k"խ޺WNRL{xyzu|A,H'W.]H1_,65 a>T,KAØn:O1QyP<$Z &rX(aLOſ'߀.qɂ [؂39 4XF`[V9$7([:\^G`8B,+c@3Rggl-N KwJ_t`viP]B =?pZ֪>DF@RW[3cX4Y˭/|u uꮶ*'LRRrlʠ6ѹ&p1B!j[Q|`#` m|XV+_QA"ef:J2hw ,TJ:P!^V$^٩b-*S'Kk )n*]L E!ogi`92\es<]-0X~V# u VWD.rHϮ$G3tŠ" T*pQke!(U`]1̞ZV0bV+Q9SzJ[6W' 2A= vVjm}I9%pbzJ1K2¸.j3s2:Aoj댜H2Q[:ޟߵv'wikYbwW: ?"Š;̝NA KN$Łvbp(ęiБ r3gmX'6qT]lܽ. wˁ( pCon|LBCB?òROwk\%BAeF1G-l9Ѿwv0XZy/cy^EQ,9X#^Hښc}fAynIE' +֬DDGvlNb*eKT(ȣ$4 ~f0HyŬ6kSB{gi I q!WWCN_& K՝ѧ 9vy|hj;-98>啜mX0b,Q_Uo ܼzT#nNE0IFK .4/[=vc!na]k1X\aieyYLq)ㆥw Be345UTCE[4m<)=fcDM'7aɮJlN#\( H;5>čpO#\( H;5>čpO#\( H;5>d Zvy–E.-"F'P̚k@478R~ɨ:Ή+ppBIz5Op-\{  9 zP!yC.@ b$oᒡWl@8 F*Δ $v]RWdAW*n،9:I34EH@f"X&( =@Y]EMP6:L)@ >kyl‚sN U XRAcNL{h$G*S#yMZ  2zcK!* t8#pi¬'|w}@u*rpf nS~w%=b9Ei14ODM\`rSz-#KRMS5\wYbVQ3Nj O\8"8y/*&A-Q,GiSp'i֠kP=.J kV6WHS"}nt+`E?j_}Jښy+z ~=ى}=\qoCg8b\ʚDtΩ2b0@ 6/فHsowg̓XH yN#*l&-:Y;n>!^3cc[:[@i"Jc9PF,Syq}%kpa8]\|{Z䈍X!?#9诮b}뱩a%:^"C7kR9]!;#ZKNKNLx#-NqѢ>˲̴{rkl+῾ 8;Ep?cDsAv bfltCƷ6)/$EҜMp V0SYLzA^(kRV L5(1wDJ &U`J=@%FGY:>̘zk')H TO]G'kOs~.:L,~ j0dBs0 $pe6_dp,|A| xXh"vt>Ն鰃Z+q1EcڢّQȄt @>id$0gNp",u7QY퉛nJC`J EJDxsE`PKe]">[ SD0e#_B @D@^BF\Tס xཻLcjBs@7l^.JL>@<]b|KL\e &FP, O&XhKt1 ف2+$~7j- h>K@|NHB 7P |C0 9fP% ]C/<`9|z(q4t0' Lc򁱪6s%^]&ODJ`E p H>9ZXS,~e0'@@]U; A gԲ&"@:FLR IBP9tq<-5DVtE^7r ʞ"p X?/ N)K/EJ)fτU6Y9UΔP얊H0|mkuYniY~ Vէt6% #k] ƦFÅ/iH)Z̏,uIl(>Th K ~` ^UU6g <@cƣc?:LG7eb~?㡠 AlU?Zȭ]n{xZ#El.k9z ,8kP*eT;eD QjHڙ/ޔ DX'L&F]z ,Jne9ȡX=Fc7k5vCFmɐ#wwE0wsߍr˪ bdJw=<<'+$H/0v0 _|ZF(Dm(Ǹ#d2m WbdPeS=@A^u.P2DЕc@GS1*g}Bgޙ;IȱDT|M}p.Kv:;cUwz@*6v48ZRL=X |y@IiU,h}B 5p`qӞMPP /M0ɘҤIQ{(ހI VGM7`T}qŭNxhxھ ٷN -R7E }(~ۿ``4=QrXGƜ$-Daaac2Ξ[ <J j8^.(A@<}. / V`>>MnϔvYE-G}|5Ģ 1q7kY?KfAA|@'S$3jYxIV57$a&`cadq4N>Y`yH^gƊ6ǺmQ֍t罈M q}zʴ 'M\4+t8[{:KyQpA fn o+vk مw*G b˴- 7NgtOxYJ\NC=&GVRt=+-VZ8G tl{RSPSY_'O, Z?G @:VG:|^%32 xV`>[r.@e⭜.@+pS䀬Z @8aAĚ82PY^H YfbDz8ɥ L݀pmDt40%qib@idPͽc9cy4&?0F d( i+0A)qHJԄ?0F+KA`2Rf] E~|L~aAQ 1|#iBR-Nlf'Ï7T>8Ä:OH- SBVΠ!<dSQWN(i)&}^D.S UEgbmxZ/ɯr-,Հ6kRP7ץ @ V-l9YX gb3[0V|V-l9YX [? k y>ՖZ V[Ǔh-YoOey>ՖZ V[Ǔh-YoO D,>vhZpxM̢6(- [4!.F_1=aG B< Œ3pd<5\_=2Xi{T;JW$@z@H*uidD ZW!^8fyo( ݆ `XtԿP]Uh7 :PJJľ4wñsb("P86HTlh{=bdqx,.?h2$<T%!*urB@LQ GπXO ! WCD@Qr군z81^KG40\(.e`vIXTK7TK>/t y9p@20]N$'ۓa\5A-cfC=%QFI_73i`=}hf 1Ysko0@ Ri{m(]\ Zp;  }'e9_G)g sկ̫rj5Z` 0g([3*E0)S<L`/[+:Dc-vLӋ2.= N@ 7n&G01ˏ?},p>~;kݥ,{薡'ae0@{bU@AXjHl JX7#Xiثc])+U p}Y%)pg6 QY@3 ~LQ2/SW;MɊE&\(.8QS8<\eMk \}w: {P# $`]x&!dz &qKȧjnG#Px?y2  _OI`oFvRe|y&yMg5/, R_ =$ x ( r '"9MK>vI"P'?(|<>7p%҃4YlF=VUU\4M<9`78ғ !N /ʀA6Ӏц²b@{i@dpo&"Z9<4X,wNJCA~=ҵNżN!'Z3XԐgAw$# my.b/1[/Jуwd|At 0wN@V5PCPN)F4A*=g`Oc`|@l6jB.yX=h`Ȱ ZȳEUf!5;VE&h B3A[/V.ΚWA+5"H]oHME˶'i3D ,b ,6dtCQj!,//Dzߢ  ўV"} RA˯6u&fv+$VBa7h@a?ol20;V P hjx1-р2 ]}7w9$)"] ?×itމϳǯd'^c^T $@ߎxQ@Pi6/ke3;T, mF/EKr7Bgh 'sܝ_%Mt 85Sx 5Rzv@^zf9mjѨW؆6Z O‘':!d~zBD:K l`Ӝ G< :^S_MY`Kq1P*f`%QI 1D=(Hu q8Hk\b/j @lіs{Dl5mpkE0J0j+ګ&@yTc^O}Θ8v#[ϔQD-hר#uF.v }pp0uج$0 dw\6$MoZҨa0J#fAΜѯJM!!4 ~6DGA-xf^VEDSwdL$B@2{Ų<ƫQa8pI .+P4՞iWEʊ՞uS|‰\k[/mh9sE+P-\q@ǒKB.am z,*TW9I¸YߖsPNAʯ).BFXf\ֈƒAL}FŇJC/V+δ.iM|d1K賋|KAghLP7:\r&7˂ AkS = !bFq >?W{4nQ-]E'\#v{{@]ȈS>04=SZ{^3B-.{dlFjg&kP0 P` Aר;?pG#U heL&(΋U7?moNT7\Az=ԹPP gr>Ɉ8!Y 6o,^nqZc^i~﷫;}i<, 28xfQ+rF#| غQD cNbB1bWMH=aY.}%Y1<婕ם N5TONQ{*Q߄y֔s. BtAL )6QF Ub98™i58wH>> Q5B.lh[|$Q*ӀɮP2Ԣ.!\R" İ.iqL70xll^'(*niܲ׺Dw5ƥg\ u\2vUD[tC hD4}w&E. u`T: NHS8}p @ y zBJh3}[X (:",I8:cOqa/J'Gyu׭yu$IŨmY=+ )XoWs ב* j&) Hk >G(C`2D;Vq,\N)\]LHP oPCBEQUF2^оD. 5Cx{E|hAc𴾧p?惖`]EϹ$OZXw{| "oc"ȿ7t OR׈`ddFaMYD ڜhB$ 6sl!TБ.u${X&d*3e )>ԸWj(NBָ7Zk9G٘V0Oʇ>XqMX[>NH1m}Yo linG!7"/"Xzh`)La@pTF`^H*NZl7oQdMRg?z'!Z-} n688}p-KCgDO ?b A!(WH`V{5#?K@vIt Л9躸#)F8#u#/!0D!kYpl%z-yiɧ,7 L7rf5)A&n@<܀o u!p\y y&n@7@8c09ճ~]&İyАd"d9եoq y CC"U-zS _~]"8L܀3-xfʓfؗ&Cj(0a3 /#X9c#Fseg/yjK\ΉnkY~Ά@E'-",;(@MZCWFr߼.)ݯ2eKAM]!%-CS' /my7;l%e,|9g^XD ry{FP1`ꭋ8),+>qRV4fr磨.OI7\ֲգ3#G @#g  &G _N3҂ NՆЃ‵@1 N 5S.>xeb@;]Nnc J8<n/ @WpGT$N)Lj9*9V[-c^q"!|= 7 Oc ݯOzlenȰ3|@ԧY#z@\?йhȑCMSTc ^ 1Ϋ@BX@ {i#@lH.fyJ-bJ N O]p+@fC_ pKk+@im!4X0RG}Sy1)-јzޅiI2kL M)[C*íOe3Ɂ?鋙'hEBm 7 0-EV` ߅P' srGA@Nb@? m`!PL=L2_s@@ 1yl@'}WȰѰEt_x{=/:6h1 IsVd L 1D5 B8.($-B(H4m a186%Ew'`cTMM fe&T֚o5)KQA|γ'' _@򇁘HVڠf-&>ոº2zXeW 4rv$Դ~6dr]xB?VA NEʫk-۬JDCQXB{J莙{Kҍ+ !R尦јhz/J);X& 1룝g 6^t %BmLq:"+|1Prp~P)JT[ZܤG >d0FcM+Q~xb `]{z};+J=TQ<1L`}jؐ4*Q)4-4M! |LM)o-vb UAy zh n1nd-9)7>'w!;9V'" @o @稲pi`Pjz ֡ZH^ 82E݉=5OrMĭyp/-bʨ#ĮFk3V Myb4ډ'K ,^U'(XQë{Ijviƭпgz\t S쪬ffi1N#in/Q;duh);'D~xd0Τ}3LPA=!F3+9lܙn{O6QZ(@\I97cE hny}B76͠Њ5 ~CzsYKQUZ |?MIv>Fg6Ho(P oO4D#*hzȻq{(NaxϤA5'22mcuUL"&};MOD :Mx]?q"v]Wآ2)2iiQ䕂¦dw$O Rn/:6Vds/:!Nz/4١Q( 䨾RˡFY@5Rrǥ0U/#@NV%Rd\6@Lٸԑ> 8-Ix]ZX^5 ;KYAQ@GgnF`O6`g~pj)\微->;OS'գۀ#8H}P;% ֚-G^f`x1lXPr&= pl`!)-mu`22T0v*(h-%9@0DzzE8&jv0=s@ `*]=8yܵE7D@e5s^0DI0Ӿ<8m?!FNp:H2w}zL(!]_Ӆ&?W# H8QO7S "@Z(гZ Г5YƲKO"W=}VRnHMx@,v<DI6Z6#lJd@G`Cwn;Tl)-,=X h4QOPZKyR:yfDY]'1 !5j n~^$6bX9 GvNZw_~0p2 hMaRhCЈi&:5eQμR/ݰT{yr-N@g,#@ egj.!%-cB@- P(Z1ű7ɅF+%V!tJ1z\dH NJ&Q03c(u EliL+,40)4A@j{~ֽQ!^1r忺Tu/~~8h|8@ׂmIHn=FBnI¯$5g&2 v|#M!?(p{xtrX%"U X!$<@KѤJ)z^eWVl^NVMi C R\VW'e0e, @l\gR b=5x&75b_ 8wQڷK)qs%wW w866A V@g'9ϲvw6 TH@ rlǞᮄ4B9^SA@rǟ]O\=keD^?sa"MO b%[KCPAmjy/λU0WkN!yp"yUHKké[)@\(҄7|6JMstPΙ-~EM`I}{d}_du%:#毝P~؈ ׊-`Wq SZ$3YZ^,"XFJbiTO"d|Ȁ O?:mcHFb^n}'LRQEa;v=+أ re)`[Ft =!ҔEO5pbFL fB3MgO}H1Y#0PGj " Q`V?IG@P C3.#]Y-ʜ[hM!.@ ! eY -`U:^]Qzf$Ex=Š٥v!zcF<^!GLWߠzKG`H7'lD~(Lh}| EFTN%9q bv:c_xM?}Cc:h`n {G-;oNg,$~@ zc&4͛0(^>)) M`m9,"(}](R$K"9I1!X @ oOVh6@Xj4T3_WD?vv0*Y[VW38U=d6`Dnupo@6`m91d8?|FD,#{F|T! U?u8>iрấQwX2Q}='Z֋SS왁1[ߪfx ;Vs(龀%pQ1㿲Dab$^Q dX/7o 8q?;xqEH?_/xsm dX/7o 8q?:_ 7upo@6{  Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ρc dm׫D>C:1)%riSXfc!Mfk6s[iF3Mڍlf59 vkaFjSY9L\%@T)=A+4O^w~1ԫ0 !tP(HwOAc]RQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx+Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxAm1`V۶=e Όt| &tVʗ<45dU=N ^حt#,dd&JT52eLbZ%PQ*mQUDΪeQUR`\Q+m|sdJpt,=#Jl"P{II5,y!:_4; h{Z#tڇ&I0.J4eo۾Q0Ƥ@ dX/   Vk6c[|?-W~z2ȋ;mhJ1mle51nk_c 6j6CU͘lh5.W q dX/;d5[)ٍfɆm(i;QlƳg5A-~ь6c4 Vk6cYݠmhW5Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@@ dX/7o M־xW1 &~?_o 8q?:_ + #2@IQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@Q dX/7o Kw=/ސo 8q?:_ 7upo  xz;0Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxAK`P&[VgD, aa_;X+瓟.;#]Y?zlϴ]?Y.m7^npt]FyOu﯒ ۰D~g iUL5˗ G5aqwU ';ۥ,cKv΅Ѥ {m͟-gն|iLP@ q+1ݛ{TLS2 f@@ցdX/;d5[)ٍP ZtMsHhL BHP k_c 6j6CU͘lh5E1Ҍfc!Mfk6s[;5h',NK@^vPG޿|o0pcKȣ<#|22z!G?c@@ȁ1dcD !Mfjw2nilTA2!Au;!Mfk6s[iF3Mڍlf59 vka0>ʭox[BϦNzL|(_fhFU'Xe`^: @ՁQ dbND poqxg1m: 1{veŸUq dX/;d5[)ٍfhF0Qlvd5[)ٍfkv]Zm(i;QlƳg5@qd8W"Cݠms& q,lF몁(>U+LYݠmhJ1mle51nk_c 6j6CUhs&>J|$X:h=PuhtL4?>^|BBA7{A) Nqz5F7tB􉸱0ϑlח/ݓMM1шq dX/;d5[)ٍfcK6s[iF3Mڍlf59 vkaFjSYpC Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx `Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA (`gojv"!od垷ۼ}tm{zhMFY߶O^}{_oOQ*egW f?(8-\>2uLI8`):̴fDGqo v?KSL)m KsLc @]a;&(4Ӱ  GtV19 y'Zrw4  tZ.Wl{p?np>yF!p3h.U.m7SE h0OfuX .+yV7@Ic !T,Z`=) . kQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ҁ d=@0z_ E<mp5Of蜨ߓ =8q?:_ 7upo@@Pa\&Mi;3ʚ@:kSaK\@Tzx6G_G>nb?x)@A# 3dc+.Nl<˪OF0Qf箠pHUYޒ#+]/b`~fc!Mfk6s[iF3Mڍlf59 vka r(HMn<0KzdI ;Y : TEY _LקZ0_)m|oA뽽?7}yϮ? yS+=좸K5dX@L;"JJhix0N)0aNqp|9l}Z*wM :V[{z~(ͼFjN`% Tb1sf3 5Ѐ ɛ8I< $'kߴD\MdeJ:V+˸ }\PQ2? 0n zpi%M,S~%$%'UimKsH"G;؄s{ 6B IwV'aíӢaq1,;V(A2jRw R#sZ.r%|Bi|Yif'VQu{ϱm& ,# 6R HQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA d=_1eZr Kc4 \D(p}ףӱe3Mڍlf59 vkaFjSY͜hF0Q@{j]DL9gfA? ?Dt,s_rBs/Ʒ, 1cjY2uKqH@nj_K B9OjF\?EkEUt"x.#y祬Z[ q dX/;d5[)ٍf̣IF3Mڍlf59 vkaFjSY͜hF0Q@Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxSQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ dX/fvrV@PJrCk_c 6j6CU͘lh5E1Ҍfc!Mfk6s[b,.أC4tq*݊nU'  ]TOD]Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ dX/7o @^}_^o 8q?:_ 7upV]UB3 8&)\ v-/'A `uva7JmT=oxJ&;]?YF7{{~o|?}:]Y@V{?EpkݾȰ3s ۓf4n:jPߕV DaJ5QqjnąD-fǒzyw mlL |C/ pw< cegm/`gU."9?M-Yui X E8%%d u"ϫ-?@.aU3[g^{-zڹQd (XuἀoۖkrTq}sM+| 0ےK֞8zIּ?LP*^㍝A:(cm/MfqaoTzؾUr@ 3*"R󜙖d0r͙C -fq #I`HRD8vcG 3~g  ߠ41 C7 ?6~ 17L 6  /tܬ*9C-;|$Ϝn&A_~'1AOkϻ^1ve 5wə@ɍ`0AKt,>CRW>yEV@f`wmji)f8@8^KEkQ֊p`Ad48D^p;kfLUB7"u7xa REO#PMK: G!іhHdu2->M73~nICSEC9G`΀@́Q d JtgO,̷rc>AG@  K͜hF0Qlvd5[)ٍfkv]Zm(i;QlƳg5A;IvE7lkш: zpl #T.%5ۅ?H尖Xr,QsKEQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxZ   dcT2MG/ⷔ3y}W=5H6=~5=1u0s﷏x_} 0)4fғl&Ǟ1hKNu< SY}-ИkriL:s= kE g K~wGt~}6 Lnƺ/~6 2\QG_zFzK*9'=|!fv&>^AY"͈&GY{Gfњ 2j\ƚMø5|qG! ߰9$c1fl@: :Y>s}(ꘊc_n=sKUqg*e>]0B=X0G֔"F,^w 7pmTf5ځZV7CV &>nzn!'IZ@[ j$p^(a7"20zKB_- c]?+gx1Atz! =by븇x◑nX`QOĂ1l~ؕĒW ѩKTFǽ*(),!$bjT?%4Q^i1ApfN\83m.]AmD?!W{]=H 4)H@$S f H=h}=H fzƐC—ԞsC:;5b.L G+;-&}A&RI|eEh'YZ-3~[vm9q?V8|+W;g>]=j{lm)ѻ#]*f:&lAs!;pAkv4t_>WQҎ.ìmJ8OZ܀M(>:܀HVìqZ*; FBv@qApTSŭPjh_B`:PBWJFBMؘOYnA\Mt^6͛vVLCW$I`|'7 =h-jLOeFT>pq(f53+fbbɱ!^(^$VZIve {i J>o sgǮDE3EZ;'xPTZ3OpR~qɾj;%Q~~eUO¡ɱ nW򄯉׵F Zvoŭ&J )QQbc^ Go,کEĜmI V3X0W1ٵSV: gch` ~/yj27eZ~` ԇ#DCvӲ؁x;% lܑwh6zmDELzsZufv*\v|`vڨjۧDGf;~8{ Y-Q{y}ݢt%ot(p> Lz@DA+ͱȓP AJSmsT}3A'e1!2~@n)DA*zbSf̋Dc1~#Ҏ:'e(SIR/7S.Ip<@T[?QL,Co Wt K=?`ky ieS$p'V"O<)KNJvҠJn8NU% m#]Ǐ6/bZB}:k9Py>0UTmo,5UߐYkX'ČҬ@ߠ cqQE`zrZ?W9 n ]0!"39  O4@@.=B{ppa’ Wi< *~ ҢG -g QU0w&1\n(_(u^RT >8Om4z-WbN\6Eh5Ωg!O@one"* mm@`3^|!uWMMۀs Ս#O/JrLc(9EA6X8Kp;``p=b3?deaco] ܅mf@:*>Ώ4V^c;5Oӿ6@"8L|笲HܼdU\N g2 b{zl (ih\MСȹFx1Mr!ֶ_ G7{H.8 j ?mTTG*$  Ȃ.R/!j0VEx-Cd@ >{t)%@%P(Nɋ~Oo{ PW/p&2@ (j4š2 Z?X8 |V,0<i'd@f,Tȣ~TҧHv0Ϩq^rL2t0$z0`- ΐV]gqr P EXM"P4sk@v MLH0@Z?T'0J_%{c $P폚@`1@EaNO L5Shsb R|4B|lp˧bs-I1Ҩ7:b0YU7S >;/Т/B*ˑ:"i `ɛS.ƠZkZF n2U1f Z%hU3<c;Jӟ-\T}쵨@3_S !΂,µ*WćV\?`*w v/K]laL4_ } H 3A8 :4HF^aDa=[ϵ O[=Fڇ%Rs0?y xwt1f7]-^$%Ob1RR7O OAT ZԐ}2i.-7<.iX%QĄDBr0@n F,j F[sd`48"}UҠ`Ўդ,AY N"vKܜrn0`lLxO_@Uti6σy:.ײ@$'4`ij| 0̀`F&8_ 0`$InwÜT!E"?,`mD 6$Qd8k?|5(@T…`c?M' +q':nmGhڈEz/jgz/?0~Ou]KX*1LR,1QX I`E{H<\Hc~6~Zڜ(I^.KY.="G < i:>l+i_tqԴ,yiTQ@q,6/p=H_\N@Ҙ&k-B97{R}2iܖ ?L vՐD=8CPT0zB7|X=AͧSyjQga^.@>HC8H7l>kp5e1)S vE݀03a{6`vi4gS;L]Jvt@C.Tn?mK 8arw~JÖ ԗdcEWP&JՀ%k\p$+Fg?0'@3"lA$tYX p#e Df=~3sT T0,< 9c,׍H@Qx) L}0@#Oۀ.3`!Mۖ0 B#)nӀ~B!08hځ`z"&ӽ罈$ DMIC|I#d-ݦXq,AL`8y7zbh|`g16s`$ V͖(K}@f"l!Po`MQwJ 8oM)C87\YY/L[ PATш1譳,ૅV D%F0n`CnƩW<'5 BojAfi7o7itp> _@+۰֎Pu 8~oOw_G@'>~B_0|Re=fM¼j@XzNbuQuAS,L*HgZ.z|UCG?= fls=qeÞAςhUĂtfBW{P좩A D.#f}x52:8Oz+H.%bP-,.b 0݂h@*LdNL  @̋+F1,4PT\UTG60S=xOKqU@A~0%y,mWb-ἰМ99l&Cc=` )@X?dDl7gH 1Ml>m@Lz8P5P4݅+b"V! 5a@ҩ[k$&߁/d[M$IR"#XPۄ(P"HЭzU|} 6`r6=^7ĉnn35{'t _wƋ#n P0܎1mbn1K+U+||1 TX3s$jobmZj(Ro͎4H3ӑ?+~?,rp3+t6r)j]@0-K,BD@Ts|CdpsP1g) 'GuG?4r##\Xf-:W9ODA&ù 2%,T2 $p~;CUþyZ PfDo1\;\cnA_#x^OM." жـ[@7w I ut B$/V4l[{h nx@ = &//P  dC%cKpbPŀ̡7 XhCQԛ.@}A,!t;AP dmYFV\Ӱ򿿰 x,`Q!*4 !!!@CQRǢ%3u^yH0$ CdT'F0PJxv @v?_#kG>CnXy_7p;' y/2a>?Z*)2BKC ` B `^nWz 0c(Ve((WiW,FN0 pypS3 Z$a 0پ  _ҀcCxq|d?€nX#pz@ \ (Cw %%W_uXW | @Q dX/7o3_ 8}¯MK4@=@6`mNๅH? %8 Q dX/7o o 9Cxq?:_ 7Ɣ,Wq dX/;d5[)H6j6CU͘lh5E1Ҍfc!Mfk6s[iF3MڍX [q dX/;d5[)H6j6CU͘lh5E1Ҍfc!Mfk6s[iF3MڍXWU~cxܘa_Gv {^OTmA_uoL7XW0wzo:y06uiq,x +Ҝ"a&<0F)&0 VEJM pH1 GQ$)6fJkJ l*AhX(FUXNb#}O%Ln~B[F0}C2XRk'OGMQ] ³mGĂ]M6L;t9:`(&@F -%~O 4h d5#fepO6 q,Z@/{ỈQ!5PQ0+_#>/WR5.۔>*5UUfKBr"uppl A0Q~?IE<Нe۔V5hCHnKkSĻ,S` c'H KlI%y7%g]:D{7.a=rI\(wLZ'a퇷mx曂EjO<(حNMmȐ)Hzk@N(hѿ4Z(-a?Xl̏BNFq_SRRDβfRLb*z}xCybo/P:ҭm=|\y[E[ߛjP} ```@3S~h [s_x"x4 SqwAp,jI{PZ 2^hbD@,@I@#ƀL2 <'8[}7* y&YP}k2pE`!pXX ST*C#Rdx;-+ey;܎~] :/@RK0:;\ШTH{js#|d2.9- wai H@_ "C9)< *e4&n5lѶA`]I]]rE q*5-yL6)3K}S*d2Z1402ĢDr=.as H6 a]p[z3=Ͱu'Ҍh aP'f1[H&/t8z_/O' <^ҧ?8!,iR'"|7>2/k ˽}Ln#jiO% 9L22 n3,Z $nRy$ PC?벽h(䁧BIX52@'&lxOf0?uBLO ;7 <'&Hpm HX@,px;n[x%f  c0Z5p Bwe`Ex"%\4Fvaf/U7dMf15A442Gyv6{mE0@S1Q2(RP|i 9Rm6aaH=[>:3ӃʝKp W(,HP($! ұ now8Һ3!$ڔ 85cLrW@ m8k!t$`c$ӰFH7}Cm#cGB0 "[N;Fz?0R+mEJpr%>t"3e漴..6R pK6 jTgLAq֫ # b@ohU7x O(L2rM«acoxˀ8ƤMڍͦ us+ 4FuS@h.@tnoF c?eBm4h m('yyǍ/z:UTDqur!}*'ݔy=V'_J f 3#]ḧ́qcL' %[~`@*Xq `.Xq1z螀>>wFf.ρZs WVHx+dx.vXPBro`("b$i9~͹raG<8@F7gl9|GFOPy V‹Ϭy@ Xmzz-w6 \E51=A>l-ݗ S㶄 mBO(4d7#Y`\>8.@ G8ɐ} Ȉ.I?(8i 5Y߅QQQ?F"{8@譆CӨ}})17WoFܥ̀QxQ{B?JPZ/P CZ \k?71PZ7:#d@<.pn6 ϊ0" "#`)Ǩ\< s.?ky࠸)$ /l<1j'LPT b pP#e>\mcB'L+=0q^J y J0^W7J7B h "[[T+(hFO'HӂQ}^H# `t;jc?D?q$4vp^g@n8܆c Y/[oΎJԍ#r Sdz_`'8Ȑ6Zqjٍv'GPs=_! 1T p_Djru1aDJTJT{!8;RW <]pW+^3́rG$rG$dS5ΰ+ ?9#9#^ VH<@"xrG$r]1:`Ui ~c`*WoRo("r nĝhr~ "j :w5 2dU](j Z)*lȿĄ4͕0*0ׄJy Or=g@5<Wy]l_ A@Z|?`7p 8H}dOj+|VS| //b\%J8p$(5׬*)"ec<#.[aI'΀ 11z2-=%Zo{aV @8..HE  =(!\FVJF8^xLE{Ӆˈ (=Q0, L@ ?v,:(<o'C`Z઀IA_ 0P H =oX<`D:@;R͎Ed,z&@po7L*v > /@S@WX>5~>#x~oXO0Ԁ& t_h4MW +P8`re?8 o j zڭ/IHHϻEص  x9TY Nhr5]Pbǀ 8.l`:X``"xyÈL5N;L=d,xۣ1w?c%v'eK};Q(x7<$R3m[/ހTNH޽1xP_j j j$ YO{G%>g-zZK./J*BaINlDqp>T0~y~a(@i(-L<;3c8\>hr#Lq dX/7o 8rP S?:_ 7upoJMaq dX/;d5[)ٍfkv]Zm(nF0Qlvd5[)ٍfkv]Zm(i;Q`A db ϛD [FjSY͜hzy?ydjd8Ynk_c 6j6CU͘lh5E1ҊUSRV\ـFjjWp??#1 e€F羞)ng= ` [{SȨP c dX/7o 8qEH?_o 8ߨA1dX/C@[1nk_c 6j6CRLuAJWKoVQO4:%mb.?_p&R͘lh5E1Ҍfc!Mfk6s[4LML- GLerI ē)"P3 m1<OkH.ꭀ|ÉadN첸G<̄,yBu).C%^k|jL dX/7o 8qEH?_o 8ߨ+Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxmQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ dX/;d5[)ٍfkv]Zm(i7 F0jo/EJ1mle51nk_c 6j6CU\ 6TM 8Me%A` o!ug>}wgϼ *@&| }pcfw~A[E>ۼ}1zNHbg<fs'hc`'mg yC_ Y=CXkrXf{hSE]T\ո Mj #u(!J vG26e(.o5e@Cˆ˾lLmJcԸAWBLPTn,VZ:mI|j)M1n9L1U_*k)O*L ciئhZ 0XX5Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxAxQdjզXD!`miF}?++po@6`m=%X7psF!r}oIөA;EEt{G82:naV$?Ilmc_`~k ` Q}[Eb͠@1 dmϛ12D0,@0L!6*7y=bhq?:_ $@6`m l·u`4LAsN [2>YQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA@ dD ]]р"@lf59 vka@yӜIS`}Pwh&}Rlf59 vkaFjSY͜F:L (I 41"l5Vê<G|?TvXhg+DUk{$k~3tw |XaO5>(IBPKs͡\X<h dX/7o 8q <o 8q?:_ PQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ dX/;d5[)ٍfkv]Zm(iS4} B@yD=QjLUaX>1nk_c 6j6CU͘lh5E@dx㮪?.Sox몏˔H@P?qakqf۩ޢΧ03#}Ÿ ͋p z얫^ wK,PT) K dX/7o 8qEH?_o 8ߨ Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA `ӿ͕$lb`kG->ww޺=pϞ/}'ц*Ww뽽?:Lsj'({ѯ>e"ڂ6-%b6G_^IBvidAfiSv@=J{j7(Za p Gx"&#YnL.Nd2:?%o$8= NID]j@vM++HgM8C@K4x6ހv֍Vz%"p-\;@H ǒ3b,^-=oR%J@ce0<=VyhO"lw$q΀@!dX/;d5[)ٍfkv]Zm(i[-.xjЌ!14taFjSY͜hF0Qlvd20z9@G2^1TSeP` I˫zXݎioLr™QqMyՐcZNCuE"dw<*AXD@ԫe[4u_P>kt}eQw??>?}?P~7ך~y~^_xWן|T`}^b9!r1)U[D($ oT|,t7*>NDr[{Ѐ?a" #fe%K'[(q=&Jnܼ#M8Ovhm 5X;$P6|=[$xZ49|ޒP4{*NqA鵨c})COr6}.F:h&?b?6vm!Ƥ8Ӳfh{{dHQ~#c3>H|jXV52*؞+ɏ/F1[c$vJF!tXoT|>?S&$\/, W"ObIfH2~x*4d9*TIJ8{ wD`[77'bN*Egv_&qZФ<S 0e9ڼ]U6|Ҏ߀9$4Xn\o4K9zjƂmvO <-Ma9A]zn<;`:zP;/x}lQžZ3oMM.tOAHJH\&+sߜwEώ*z^ ڤ?2/߀[H80ۅg{b6Ѡ})AŊnUX*^8W 瀹ZM QfTfd":gAv~wAN=l1,k&te ?sfQk-`>g=9GWUnAI :'$w7Nd`m sw@ܪk";C}GǷɳ1NVx(GkjX$ _pCN)E](&O$)̀)hugNky(vQ.hϰrHh+e6C_K"aw!҄N]p=$@O7.$E^>O']:g([d|$kDIckz,K[)aDkreRʸXcYTXIvhQP"ٔc6J+j"}[*W[<ÒE ~Xm_J?lj㬘U N`x>QPb%d֝+mm"·B7UlB :FADPex[ӗ+nUgEk+8Aõm6|bPLc Ƃ-UY6*@zkb:UVtZoMUY~6ujsan!h~S5aoMUYk!}#C*(j*Qd衊㉵:-CFBc{l7㉵:-BEWpS ;$kiVtZ:+>I_j&望Әn!MѤh*:-BEUm"΋j4"~yN/lQx\z\j4ikFO֍IDC[.FٲRaCD4/WԢA>cK#Wrsa}tq$pC5&(O|QQM|%osxڻJG8I?DŚxگq&{„a-KTZPӱfޖGb% (_ULPHa/b2q&y0H~'76\,i?/Ԩp@N|Io qA9`%RcFOtH5kC?"rwx je{ƨx.uv(?):8>[5DYwn]A%Vz#0@iRXW΂c9;5GVϴ]f7խB)9Yr;+>9wO^W\yl[}d[ڪ8Xb+)|i"eH<n36{'5vsKdhsYj8~"PC 0cyT FmWs5{l$͌BOƼ~SP4nbS8=uzGqyaW#|UZ3]K*$xv  K'< v{a|ӫ,E0vB|9^|^GXoe;=OM dˢ7$M?`E\_l}bNcN7l6bHPNUЗ(o*U5`T#'~ɣY).Nq̛X-:vob[}Ntя#=x,k^/Nqe@aCeԫ~q»|qnu/3ո,rrƠm.\  cۃjDӰaOP(-v"[`tw|x( zطm(!C~)(ETaiamFNEb_)$x/1{^|ӰzJ!>"g!u'tRʧb_MvqDjA c~lNꄶ `NcaS~r'9 o3TT[;_iSH@@3ق?%^*(qtazqL".8譑8kyn_v{c9`J!0u-J)o#azg2QaDMut<V$$:OZcKɭPr~xdnAg-0}/t?!2qH ( l;} &=):# B@alQ=`:Cd`ڎh@LC9phbW\ļG8X 6N4M,+B(/"#g _-ꐿz9CX`—zcxZTP?@a{sd"cĐ"@dO.N=5y @&m߶B†u)m#]EiTPS! -@<+ @sWLѸO-K$c7_A9 Mv[<S~ *ج:1=ŚVem84M Zm1³mWծm8gs[bǿfku!l;rpSņ6uu`,VZ-mg񴗳 uic܃9 {f@#a mI*,@˄["bWϵַe;FҶ5=ʖֻ"MJ+K"Dƚ`|}ͥiv~)V[]C(w"xSMt/.ʹ`R߷fgKn|f=r΁.F\C߼W_/gJ/*~(J6D)RzUnl u%%PV0`f.액# .ݸF‹P%5A>wdS&.'="x.ؔEt"1/>WRbk GpFRq].%wGϝH7kpZ{N|%7Q=;!P%ʥ6}cOSo[ aKw/D@-G:djf!ptYUn`'{Sna0{Jg{!#U,W EV>U^, X,!uDmR 4`}pU"O% ^\~zQty+7SFXa}dv8Ϗ,VG0 {|c$Bw%Tlo)e[Q 5,n$Bx'hO;bnD5fɂHqaImZbo^2a<[ԋ2$N\`%:BsyAQpOɆ4XCUP3r$g,X[,^/LffZx|2qE!M F&3q?rÁ1'w;d;Of gnvP-G#i]$"C;v% C_l0S`hDX6p}-;eZj/Bl-U:{+HvCPQ laKm#_sH~+ 66_!p׀-AD!+P% JAVS(kf+2.&QbL0Հ_Th%g *.`I G3&`G_@mU_0 ոp 2eH؜pXQ>Q |͞{ ,stx JkZ>` jI,~!0*c:if]z/3ܯl* 0[yUh1 / vfBil{\@/@F33 sL& PllAKV&PQ3 dD ޝ# ̈́`P(7`ZujvfniRhJE?NwGPU&@J[BeKM@hH y`ƌTxݙGAa &@y@D{d.қc+\C{U 1'o/X1,%"t+O <;DOp+&vq>W5ihUyf.!1A1PQu{8-ɘs*q=n!$+ 0#n|7 @#d[)'Y/bΧd+oh~^ga+qJ8xe  sh:u`ƀ`AӀC;*'#Usܸ J gz#X)fvڜTX"!-d-bbZL⭔ӹLi16 {upM @"E_\p‰`\ykǣ%@"|E^ Ws-);)ujr_̳3E90wy/>Vqs.,0ؗSSxīJbdTTҼ 3v $Ͻ4-l98 g5zA@d`y*1 % $&c %z<<x ,9 A Vɮg>i㸗HȊ'GQG=Xt@5_Ȑ0񜴕c]לIL d҅ Pi@c*8Iz:_RGB zM*i8 7-t- -m;:ߤ2>BB'$)$#jS;Jn@/*dwnzQ0OU. &S9i–tH@2hJ[Z'`B)3Z CcvB13˷9 {T 240˴ ])O~H,t0koɼ_d@1x!7"oi;UaqX|U#Ur=!h@8<L3yIzsPl @ PVR9-f'@% v2e޿u@rBp idOms6"g- #:l VbQgFO% J5.I]nO8 W<o;F7p" +cLgK?`y/`pvDetP(\7=*%+huL,80 LkKe΃k D@,"n0 @7  =R0 {L0yqp!Ơݪ b^`'4f`1( a?:L#[D¢}S qAt \:D*) 'L2ZIa^%j`nU-?aP;nA>L1G hngrU2>LF:go*P v`Z譁8g@B$RPc09EBDph RnqQ"\xSb=*edn ` VᯭӺAph Ÿ,t 9lr+RQ1(B<)Ev@$ K@Gp!F"nјP k&,9{ڛL?'U`R7&b o񀢗31i%&%  [Rрl<.:-FYd۵7a24v9Xnct"gFuk'ʓp' u.76BgջČx%#F+%]~"pa)R BǨ.h]F*)]h( aƓsR#Ō'jɾV"jd)& Iݟ+c3Zj65̇ BJAp $8MTymJB7Ӏj2v,i Gw8m)p .)@Bːxtr*Fv|,C*%FK^'p8q{Z nvBWw!Aծz t / Y_/貗NJ{܂lQAϫI\vW(h*PE0s?+oğRl1({B*:mch?AR~Z91Q$ʊ^%EY w)aA:,=%ӍT/nG"BY9='MC(e $7]?ZIthyk`\+߹kicUv1d$\y0,)"w:g+ a63zd*My?LK3As y&)}ɹɮ5p:S) `:̼娾Dk!B_1k~,rh"3`:{ET?^ 'rSL@'9>_?<zk>]`2ГFݾ*ʌ6.3!=qঠ8&Kޖr?wD6#VmԸj{~./5% 40D+Kv0øxEh FcDШwbaqҚQ/X%` )z 1,?#ߣVk&@On1s%]2%MoV 48@*b`m@ jm렝$U &49e D3Y* %  q Y!:/crb  03`Ērz"˕s_ݩ LۚӾjD "O*I{3@I_U3_ZlhH[Ta ܒUd GHSD{Q a +\/Em6V5xmzuf=C1ѤTLx\T?,##})ofo`^߭~җPA,:G1Cp s9)-:䋜ʀP.jg:o~B;i;2!䜍DˀgjjAv?q@j F9. #Ոn ܠ>3}+G*~Z|TŶe%g۠>9~ NQ-PFʤ/OdVڝK&qp;G/|μjy̵uMbU 7J7dvاߖ-֥² HkRv+ ݩ*wYtZYKWu|+V]DJ_Rl7w''2ΜfG،D-z2!Ίth ^drI'5djf ]h[tOgA˚0.iHl@2" 48kX8:z1aJtrô2#P{Yp:t%)OFsI,/P9  })PqG,CZsq;tGtE1sv]fp:FaCz\ n}#H4@8z|hA|u.R^6$Dz=ju>1x!/ 0: ǀ)px mHH-)2tO{5 s.^=xp FycPE.33;{٤'ty}ʌ CK ;C., bBbQXp+zNzxP.銈6,σj:ɋÈ#u !5^ndچ'oaՀt!AJxkDatγ x@I&֡ӋGz-3AU@AkAaqVRP7`yfx1 $@ t 6ߓ۞qA< .mWe|~|89 UcEANDX0ņ +6 @U1&{A"^.O5?LXtDSSmzBS)r{H0f,AX3P$'X R >@,Y[CcOSZmF+ڌ<\)yt0s=VjT^(}.[H 7߀Q7ƾMSr`$:nA{*E&M|&iwW 5Y* IKYh;dz啣,xm 0^0zUr}1RY>r73t@]g } >z?Y#^2K<; ĸ]A_ ة $3)SCAlis:3] 6A`wܧ6{FV;h [: Tq`ﰷ1pv,4o FYUPО+ .O+ >Hk⨪}ZS[7~du=Gd 8 >ZRT@W@J.jn%A a#)lB؉o2oI>˵[<0L? "edᕄ1բ`j!$.H6,~B2t6q:𛠾!:_'#f|-Ar hOk,#(jH$Ȱ=e fY+y@<1Z7vj!F$,6IHCL(7 Hp>4CώY.a[AJC,4By5xi7cg>ޛH293Tȏph`u ABF>0ҽ34A0.OЌZ-xT:*Su@]X5y * H$XP(ހa"P텲ٻDR͡tCnz Ⰺ O5.04lKӬ2@+Aʈki<ҙ ʶVeˌA[&5و[P/up[u-G5'׮SHڮ6_Ljs[92Be*D$-[$M Q45dXF Vq@;E:To%n}2)tu+ p2|A`;" AA[WO$BpMc1k>;7I`ɔ5?+iKx6TS`/;hSH'N~ c/ݢ cB9Z!k6|3SO FE`d`WۛyfgϜW2Yϗ> COVxKWɯp{7 0GTn؈>3 z@D,3XO PxeV0yIYϷ1?8BvY ódܛB# K@  E գꡣ;nY"`7¶&02fb0'p.gXW Ͻ h/M\ jW0XG4hjT FF`Y GHU@@$؞i5I,``=hp# JS;ʌq9}f2R0IA(X+l9wl :  A FWqSܺ+IΘc}p@À2%b>@ "sp0唀A\ؗ(\s$  n:@l7"Ԁ^_)" e/ 7D`! %fT~ջT |vC 6_ ]@ܧV4$+ z$Ej#ZFk^6Lm"Z Qoyryn"HKP5j{؃D9a.@#[ cw%p͠{@`KL06M=@{,\U|VԆː0yE.{ o5j :`%PbpI_  AM`"@b/e%B8۟s]9\iZې>Cpg#C%>8u(ۀCW('XF*sfbJ\m^ŒNAh#*DK@ /[i Rva^_[X;za~#xm1ğY6t%W4XT UC1k duxč<, ^8Y:F?2^6*?RcWgK;ξ$oOG{/L5-];,AcWGL ytΒizN1/W1^@kZzzZ^ V22!}LIۍsP6>pBffLHxq8@ZهBtM/v3pW (  ,áhr;!;##RTjX7&ς xǚ('ӊk:ʤgPy~0Eγ _Do,ҽ,_1LkJyMA1o"|."&̵[烔:~_.%MgH}4*ڀo:ƩmxVu"%ߘ_9Bۦ#Gg ʱxR@)iδbZ,ք5rkK##EK5V:֕LZWyFk6{:K5zĩ M- f˟#fGU9,A`IL1&hdBh2~)I 1Q228YdFCn%#~"_ypXb.1P.>GxwRy3U:>D3•AmhŲ9b7PwGW(bmkD^n [-MHAK4yt+%S%Vp<9. : s֧0Ui?3D6vMn5x$EsK_Xa{v "m2d>C3@!w(tPX_ǧ+ҀiNw:P-J%SH.Ҁ:M`o{ RgNԶ|G q@[cXx> [0 P*Ũz@DRP4@-@KqjkGGpajq<&XD-~ p1ĖCaPHI.#(% dEc6)e֪n?\o`媧L#_!5Ȇ0lGJٺgYd*^?cLN 6`ѢBCǣ|XMi\5h: ùMp+*uqh!TYYF2, [zֻIU!ZL |"@#Jk&ZLm44NNlKWP! > `05I96uo5 F)ghX1G z2]@*7EU*yBC4y@(  NFvU$Phx @G=}UC&2JQ$ "XAHp: 1lXnAv*ocL\]P /:`GʲQj' A`Gz,%@Ȱ;f X]h9P8@)HҢPj]f pJ6 Tm A"@` )UsB8JG#m Ig5i>@xWؽ`dMm6#aeX ^. Iޫ<W \_fB®G(ߒDp #@$b 02X !E\i@`JwA쇎5 |`O@@NpHH9h #@~]WS ؎W}v:!A@ %Umx%Xcd]ꀍ@YzG0XKT\" 5xegiax.qS-x/0d9Z:M$_4Pvt5Pw+JSхXB)-0~/,Np˝Kټq & 1ya m87rn~u:<]F I&dNWA^)|{5`-.$:8D| qy+z q@Q\J͚ Q4hCH3UbD%@`@W0t`gѪ Pp@j"8E7M BG].5%%@[x0 @qxBQB3 xWHS#ܿmPle}W똢aQ\4Ɂ̧߉ !@7 ATw7Z YmFt(.mvh-]\ H-~ukLFGopZr-Z ,{R['xH^ J_ @+q `lG]Sڲ}S@EN>a瀾b 0nY`nnbعjz[0~2a $a@+gnw1LX>\*_tHa}o5&ytFfܞ}_87#ƱiǦ¤ݑ#GJκoo}ukFMp8 X|ѭ.-r#̠֭]_A$LOʛ Ri38H Vٱa=xUZȂ NT侌+@X2ZjzٙYagP[B,lB@@H< Hn#« qHTkP^pzlEepػo ip i_5RBJP%V1#\i@y0?*nZ x'/Rހt `[ (\L2@gs.'@gH**5VlZ` SqT( [AMBB(bPF9_gO|}Tkwh =֍UJŋ`o2$L3ʛ' ґx3]< B5'c !~pbҀd-fi,0m.( %4^1b<90a@?d7TAtT{( +d2Oup~+y(]Br?+0:pS%PNYêQ4hn "xtx@0P9&$6CaU$P.)f/P;bm00Ћt?q9CbBA'{%3YTՐv; N6QЭ:)a ׻&@t9cj `iŨ/   t G6@ K3LI8"k >3K&@ύ_y h'<4oGB #5(5M Gq=r =>10vK"(JC>J l+f1&<؀DFK w,RV,Js` B8Ű%M;rcǤꘓP @Eq,<sP!8 ÀTdРi92Ie5}oleD )֫o(-ظ0L.`h@C=CGI 3( _pt&,Fl'0XFӽp٨ 0`E"i_',(Z\ɠ'T2NX 4ң x%Pjt z2$kxp8U+d3'@w.w RԀjL-]DI)LUH?O?V)i2S* cHj@7@*@f5kD e\cȀzx4 @<`S3irPSBM"$_cS yBO, a&X ywd HCQ"dORU0!wM~Bppvt">(}*&#RFG!RBROl)oB*!SLF""+kՠ2d8$9bk>>D'hViqD[E)=)S??i@^d)uH ׀ݟ?p%o?M@ OB!T57 *VA ")H3,ӣf) lݿl{ O\s(̥k^{}$ 8TfxQ@4@+h/'m$& i2TD*U%]V0KGvHpP""@@ .A" mLաc'Q3K ;zbD8a vׯnD|F! f؀2 v2* @@t`&Mig5 0 @s0T@ `ft%7"c (5 P-G䮹.6LM Dp&@ | 3p a@ ;q? 0@(!R02T@m4ZQ(%[ }8"XQ R ȁ "Fk?RX%& a 0 @)xɋ!^#-I@iրAZde C!ȺB#~%ngLaPBӽ}#BgM&B8AeB_-`89^#\w屢&!} @(D Qt:C:C@(D Q@Tx L k1 lfĈ9%YrEZh>=,DyuESb@0 Ԩ`=(p*$@@~x)ZV$`ќ a?< nJ2 p}Q2UGqbI}BAM$T)A   dX/ oǿz`m=%UEou?ߌsQ~_i9l8ŸKq?:`0/ Ġp^ Bv`0z=CN|y}LDL-`8 @Q"ʜqwnk7徻yU5]{%"y P>EBH n; .2'= PuQ#-@M dX/}*=XS?C?_3 y0/ Ġp^mH;~6.5u 4Pv ?>,D/KIuy6ȶV"r `/|@dA\1dZ>@(l'0rCτ  ^xMqDHΩ r4X|]M;7xH :}S Н]Mzޱ72s,ƌ\6(xڎY3}7 X D?F 4O?}32X|HS[@PBPJ18= xWɚvPF4_f'cŝ|VʔrQ5ڡ]{F+т=ȶuD/lQ* *i:wvoЫgM? HjqylKS8InSK>l;. Woniux}UoƟA_H ww~7Oޜ~?ډCJs=?x5t]̏_jK0f(xăHI]26r=%w,ZX6A4>񇘩\{'hj+v7zaIp&6.l/#E=q99E)eu >:;b} _Q#V/Y9cJFkXmfG'}CnvBfdnc:bȷc§GF0T?c m݀q֠?=,Y5<4}j&Kj|!O(J#KBjVN;Un)T@heZ)F$-lW͝Y))͇˘yFiv(bvgAeR"6VvƈXC iȃZ{W+'PC MS:'N> <^+#'sS:K*b9TF"6Q3 ' '*Kʝ^VYtSr%'3QX۔ dQH'cln/&8 %52 5m( GW3?,5j p?T7%L`p4cYuj;2~B-M"\NM(̣p%`FOǤV5f[!^+\q;get,.+nY/"[n4\-⚚$Oý6s.5[^y(TVb$qgsm@ KќaU[ZZ}=@B|@ ׬b!AB!yBeU@|K@mN@ b% v'<<^rg'Y lb CT4;İ`'-dbA7Tm)W:e)-'|!wB^Ë[{-(>"ucc2Ι5åO:5kobZ y( ٚLju h.j8hp o7ZU8Je(!8(pp B}1Qb)v#d]lA:e2ݤ=hmS-6N# u*Jyr,.p|NIg8YcZ@kofP10 G 0!p8!wa*Av<ʟ?8:fL _ f`7n7hst`Fw ՠ=G6@0>7"_=z\|̣Fw01VH@EtoPֶ)Sh{N;dD%3^AzL >V:C+T߼ճEp3+h 'ʳ6mtZI0AySW^oj%P;yH 3M]9dKLƼ`g9Rsq wi[pkm(;}Y)΢BT#ύYbw+vR^s: g>xVc! ,"uEnv.iT篼$HW~4ĸM` 6 \H+p8]uhO>e3fUf||z k(C;f[mv3 c$1@>3΀MPs~?!䤙y|@q:ɒ-R &"޳/ָal5gaNa^Gվy$q8nl8vz1G.LR~ rdS}3tNkF.:i#B:ϾuWٷ ƱýXlK[W>,^z!⑄jBUkV3CNs F* e \9jw"2l2Me+ kWk1];.v6M wIK|Amo7cA-0l[mND#:ѲU1mjm%sނDc:?B*-w`QYˇ9 PCGT"`r/!n@q;M4m>U/Scaۭ.b}dF!sl07G'ggӶePMY I)o. Z+7bdEm:0çz Ⱶ`>PZ,6>Rzq"b؞LPG:u`:6fDGGd0ʦŨRYU9XB| ]OUvM]9%.;d^%p|^͕NV"~g.aΜzGL]ȟBjy[RZD&[fXˆ7R̼|\ӽܩ(ز". P_@M. `* N* x 60zP,]`8Z sN-]>@⣈g@`3 <@Ԁ^O(?L =\Ktg$J%Q4@ y,)/t%JN,Yws%JMnLuIk@ &O b12\' 7׼װ9zWɯtUHl4"f3 M#s_B ei|lÊXfGFI\$f$ LxJ0GuCrjwNk~=h2xe >y0$d>""TLZ= g*w~/uxivys>}H1/:8!b#ػ:8N{ Ԋ&*1[E0<;H ݍ r̈ӵX xJAekax]rA_*~ Pʣh Hp4$dV+[:YǣhxK6F*#"w`cMc4# ?4.y=~HH=DEF@ ɾp ,p*">!!oשFxLj X^N;fc;!Zo/'@W``,P 29E -o*.4G >\(@"!*\m\2tFEs@L99oaXj@ >lj:_/X,A[##(#x+ցvLhiuH581VxeM~STĂA5L \[BAa,rA;uX*Q  ;6 %sU:th~&qy%αWC?4? enB8O~C'HUAVW"QU=ٲ^g=*TbS IFrtT8w Q* "!sJgC4NFmzuZ36U(ؾߘv >kvCe)eTVwac/fHnd6^ x[*8_ ^uR:~8uFP9^z`Vxp2yS9J9d=eiʤ!0֜8Eή+W5aٞ%b[~Qبjξ^'6(zV.ftV ;s,X(J( FN Eu,hȁk3Y :fQWL|\ gŀI$R\bck]Z+^I (@~u!alr{!1Z)Kv` ppǠy/n'{|EB˩`KFU<"Aɶr,aNGߡc7mC.;6yA5k REtgDbL-X灼(Z$D L4X=our8 $jQZU oynA;j$vMOKN:U(9깵r+>& `v? %vMT(@&X@r)EZ`(7 .Em7}@vR tL[hSĎj6$΢XиLǑ |2ƛK@ m75 öGh@W3U {} GGz"l/AԇkaY`s & @ dp dU0-@RKQ ݀)EuWR(nz0IQp.TdCCj|K (PL݀` Uo Hݜ lwXK y.ː)!>%8jW4Vb`>4>> c%-H <\tOxhΠ+(~yTk$9h[꿣jDdst>H5dߒˤV[$>i>Y|]q0^(L4}.i@0X_LJ*g~!u8)Oh:cA^z݀>WW;geQ,d r `:؄7 N6L"lШ 8^8m4Yzt,{Iܷ(h߀}(00ze[bۃ514o{qsiHHn/{ B{)нx gep@p>iX \,d9gN0vi[nWx<IV,\="<,샰|%SytS]C1ImWAz}!.W/37y:' v'pX΀$_L#f#@Pߟu[/,gSCQ;LAe?HIFcD`@n  fzCOC(Zxa3d@71>_ Z(wj/;W[ ( (m_jb@.$/I` :|hs =ւ"C&OX (hNd,~nE@$Lݡwy2:Th'7뮐q2Vyi BF*l_O a`q!7Iq_# FTijd Vh.agj U3́c0 LfGFPh@C';] G]-*IG^/=N62&L`ZT*.#>DdoPbC g:M ǧ1 bxY˘қsnw{QBm-)/,ŕ'>Vv6 t 2 9[ݲ᬴*& #~!&k&:Q!n0WNՅTAs2g nkwl,%?ǻq1؃_SPrJ2 0 an$?*p%0&C00.$dan *aHoC) (w_f Gm>V&bQktQaQ\!\0tg'ä3>*m* [:A8Jꄡ ΦlΘnH}ښ[0+v'4K#.Hi )|:kI$Q2u[fΡ (ZsMcI3+އ6c* Bq #42_F(5kk̈>T :L-]e?ϜeXu5 eduK" "PF6V_{Jb)LR֢,JPKP*ZBY$70>:?"EUqnG AR{ŜV+0|#_İp-M&%h=S!?tTb~fIιq.(MԓZnZpxPqDТ9X5bdrlݒ $kɾs4zkhliʗk亃4g1Àrs|k:׳} @w{`+/ cf_ ֝P NN<)XL<| AphJPdCH$ =컉b[RXnǑ(Csp tؕrAd!Iy^JAyq_Wy!SQXpl ,S% xu96!wp-W~Y/8jK>d紗/R]ؗO{ߊ!"GĶ5ef01}6 "V9D tlcɀhF`oмCk]x`@<!M# vn(-h7?ll,Ov S_ E޽@ xM>W|49rXZ]20h➠8aK >$$ ܠ @U;A@+1U8c ?@:3$2 jhbXr[,Be 88O{c'1b6!3EәF~wűNoe2ޖDVt@2+X!4S:utLQ[ *e1!$dMIra8cZC\ `&#F a8>rXϰ/SLia+B'! k~E2lBY(fy(lyӉd&~ ·zu,n=g'"Sp͎CjF~! ;d@ ^qKO{90(Eǝs '0{i4؁G#f=kHa`(( 0@ #{cd.w!RN~hUl/D(qeH{(ra>O Pbf<>FsPU5T%gRӌb$wo8zlz( Xgaۿ#| ,Kty˖) i͂f7gт#b3Jshp3 pbDG!qQί3f4^ֆ}K$tM^RKk 'Pj2&d$ӑB$6 SDP- (/jZVK)Q@ܽ@D1B W#0jK.u?lFK"63 jHdꌳ;p)=bhJVy*/Ɵ8 'Xn}A%n7~7s^ $D\dRǿ=RUe eSb,Xm0QCpVIz|w#EB59v}W<^VG64o߀GXL-Rݐr)H~[>֧'17xgѐ,XiQ#**`by _H*XLSR}o ǀI-tx h؍aP Wsy\[~@\ea1?K> q] Jpx^%B*J 0jPGUgm}dw!"Tp##20H~)DNU@` Okf!3T} C]jưiJM`s!@;`@$Dʈ,q P r9r@@TzmҭHAq~EdBW*T>!H(sAJ@,  C8⯁ V.%¹!21YYTIJК*1PFE>*1BLC@EsjGH` #baιHG.ZJ M{O%TLT ҴhHCM{Vd8Y(S^0iꉊ:, QNA){o@35SB,I5B!| ܲ Z «i {xkW9 ˡ覽ꉊ ,Hʲ@n*]9B:d"9CJ}BHt\jӾuӔR$aK %%В*]8KOuRG{z`5ӛd{3[O{A YVB6[GiEnAטFf䠺1D3ÐXM =EyP `c6/9E+?:oVbg#r~Z,8Pځfq  :|hHaPQ$({Xb, 0D9vgНZThe|ʵ#^d1`TC* @ʱNmb %4Okݠ4}:ǚL μŽ8 @`EWV  KFhO{"TsP1ꢥ[q)JNCmQ+e~E1p`8V+F]J~񐲱^@eS;FHYLkXqU@CH6џՊ9^Tu@}xS@f\}K, _E4c1?'L^b!tw{CT#׀V_d4fHaXyBr9{S:]'jTe0\-,0 C+:d+J[K5Q `_FZ$ْ4ׁ*p_Rz@zT G\9,.zAL aWaz^   LcMVrFH( {$_qLg1 09MQ@m]qX#v1RhinԤ=PjԹMksΰ[HbȖ6HS4ԕjÎAXoNG>lXzb~y\Pq!%+NűV۔Tc/qa3f ي|B[A=PL N 15 f)]V*'7!qƹ~@a D B1,jyP$W0 <+g/ ,UI27|an=1(T$J|h $B`oS`B3$i;7u£3ŵ"'8- nnvP5N:*V <2ٻ d0y_5Z]=@¬2sOP\(=H㪓88."E:zP\hZ-u$s!h\"1BQ MUo`(P_?up6hO8@DJm [0%c6g2D\,a#@dA`RjLR1D4E(Y7bCmvS,i5mZds(?8:<J%jLϏɝ.<}+0Ȩl6D_kZ+MQqLk7U෫%!g=lUT gum%Leh(ݬʙe eV޻p1:3߻{ND5-7JsUk$FV8>?J`Sx~BC% VQ68FHx.=Ȧ8ks;nH+2LEcA3K#$Mt7L.T'XG$ Ͼf|3萋L3}oTaRb^uC[YjW2*:ORz%i.'}h~#N:"Q;AW0ybs?%ٺrj1 ?R,8fmoRR 5*ث}g3Q]jц`Bհͦ pU}D%sׅ$KfdeVۉ_*sXP! ʇgi,*<$DCsI;~NTSYZURviO7U )ـI(z`=-HᖰPg ͤ'9HpoOϷ}'8ɽPpVؿ荥MDDA%qx\".6:oIţpcrW 9-^\zY:2O#(P _He(CI\+%Hڏ܊^̆G.8\>#P0M8baҵ6ZFߟZS諀D 3Q={7sdz"_Bt-,O.A5G=;+cuz %mZފuP B! Sn3֪AWM6WƒU8ԲxG6Ҩ fpQF@Z8qZs,QlLxsH<@T.`,ala};!K&L;0o%V 4W1zP`$03`&lUYc); C. Jft|x6GlS HWkfҼ:4x8`u塴rNޯ39q:HA$PzTR qJ#=k( "/ Dj}# }K[*\/y@co xp3{z*8 &cb7%׬P!.Ղ$ U.9xFv1C35d@c"vu$4^|3@Jq@@Ab^KjuDhҌf$&a8q @L]CLYyp ۉ |d" RgH\pB9% Z,d ^h`_^ 9AƺMLM`c2x7cbBWhu'T;{17숽bLouŗMp(--H ' Wl  XhZ\#ڮI綾D9zl$@DpK*Ɩv};0\0!5; ~ۢԉ`lwbv_'6#Mqq'2g0ԣ}vWmpcdG@ˏ }OM@JDV1TyN5WYJD2x{pP95 _l;@/IHt4dḇ/dL!,@UaB`kܰ琊"l"6xw B`ܼl6I/Qw`Ƭ2Y?{c 8}#K6_Q燝iA5gvmW2*hlU57n0R8񠶲D6^V$%ͷzY1CIe#뀌 бwb[/q P7'1SAj)K-XWꦥ#j::ђAj?m~?ª@0"I 40 d;! 9[oFs=H?"D~5D @o ae(6\ Iz|& eVuY+ To8zXAe D)q5gRbB"~^1 & *=~lXo]t SqI$K7=*^dOsd$7$O &ǹr@5p$+ 41Vx!@8: 3Y > !5ar5ǰ#Ԯ/Us!} j. 26#)O5pG6TTwD6( 6a}hfHεAF\_gM-[^@RP-&8T,it7&L0 "Ө4 X|ݑb5$d7)I_DN#Ni^k]8&\tر$.Ǩ dX/7o 8q?:_ 7urHC`mț3@XQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxcQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ dX/   Vk6cYݠmhJ1\C;!?Q[Tx*m(i;QlƳg5A-~ь6c4Հ oM5ǒࣀ dX/;d5[)ٍfkv]Zm(k_c 6j6CU͘lh5E1Ҍfc@+d:c[e%H@0z_ 7upoPqA;x"Kݍi@?`m*ZW5H4S[ʟ~60QXN+Wh=d Hl ʐ]w|箖_:Iy]OsÁm`atRL Op/j>_ۡ&Dg75@Mɽ:rUרï=Av[_C p0';@A<5dlMFxDf4V҈BA7q@67غ+u| &nou ²-*p5ioA`mupo@6@&D1w@MyCc}Ft;ixR@ $x7hG'Smy*YgCHɿ&c-:jdׇi6F@[7,n?jg4jFH?U@ǁx1 dX/7o 8q.Ӷ}Ee1䙕17 6{q?:_ 7u~5ދF$̟{<NVOdo0\qU.]0E6նv@R=9b?Ջ+h f&@Nqm1Kps˜&r.7ZȥF9SJJ#h:yݳ\'w?*d .24o.B/ Y(,Ⱥ*Ye粇06c䰓ԝ8#`\ۧ 87NJ\^G5R f'cAT// !1-.$XyUFcobM5H%3;PQX8ކ"@߁ dX/7o 8q0)ϸ V[P@;說o 8q?14\pquWֶ.2O F2< Ato\MK ~Kݙm_ҜB\@dX/ lƳg5A-~ь6c4 R1cH(bMG$Be7w 7K5E1Ҍfc!Mfk6s[iF3 r*s[V"9w#:\#zEqzYzC.? x0@1dX/1?`m,^bsyMk>qc0~p )}wig`m @E)֪Y@胓Pry#U?;+Vy?i;J>a,{瘴@dP[{$%.*+49p@ l ]`$ qUq dX/;d5[)ٍfkv]Zm(i3F0Qlvd5[)ٍfkv]Zm(i;Q`@dCupo@6ڐ8 !/Q٫YUZ%  "_=8q?:_ +.+6ܚL ̪2k~ (1^: :E[[BPՈDu1ԯfRd40dI1A;Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ǁ  d HJCD@b»H@2p\`? q?:_ 7upo@6`m6+%4")ֽM :/ysV(xx>1Y^4x TQ<@ `Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@  dX/;d5[)ٍfkv]Zm(iTgx}nd0[ c!Mfk6s[iF3Mڍlf59Au,{vtXH7{aj/xD:ʀA (`a`ߠ" ZH-Rv;7m-m|mP$<4"Izm^@HBb@·DfvOU+A* %+1*!(<|'Zc-w:Å"q5TVϪ KT3evwVᐌG g ӂ D^` nAzHFn+Cnf'GڥhH9t}9{PTL ,۸ iz\J˺@10t)Rӳ̖F_vD97.쳀'`#w<LW?D: 9{U!:z8pxs7 :5)4VxXلķOf*lzx M4 a k dX/7o 8q?!@6`m Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ dB//] vjSY͜hF0Qi;6 7,KO vkaFjSY͜hF0ؠA_`wd-zSvn('?&SS=~A9RZt|W@ 3Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx uQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ d 8%͜hF0Qlvd5P{v\=iyZY:Db^5X #}K Ƥ k(jB ,:Ǹ>V>,@ρ QdX/;d5[)ٍfkv]Zm(i+ %dž5W/K"6h2q`{W, ֖m(i;QlƳg5A-~ь6c4Հ*e_ڥ|y˓l8Sx_Ngmz#\V'h@#T@ = dX/7o 8qL<[<KDٓ [/Fw?_<o ppBGt~ř"$k(4  dX/;d5[)ٍfkv]Zm(iY{9FjSY͜hF0Qlvd5[)ٌ@Ɂ dX/;d5[)ٍfkv]Zm(i*l .`v|rE-hF0Qlvd5[)ٍfkv]Z=,:q LIC_N%ȧ?@!.iCoqo 6|IeA q`0#Ƒ3e\ƌg>!0#fB%㱴%mݮöqߡ8e|pto^^^ *9x0j?+_3C~/8_u~fѯa`o_lbZ׶cd5[)ٍfkv]Zm(i;QlƳg4*bў(/r~ +%gB Vk6cYݠmhJ1mle51`d$Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@]q du%5@@i;QlƳg5A-~iqC/쐓/iF3Mڍlf59 vka@Fȕp_? O?REd6,W5Cp~Y?ˍPRmpyw'#[gއP'U*nN?V7Ʃ,>Pi!@F*q dX/;d5[)ٍfkv]Zm(i1Ҍfc!Mfk6s[iF3MڍlhA4Q`a`" 0I3t b?6;7u0eXP';?8}@@SvȖѶGvyH6Bb?6#y2[$52'lI= .v;Nwp㓲f 2tWkM K6t0!T\E0h|@Ytrv.r}YjS*h+4.qwDk-u Io)0dc5 ўa%Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxhQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ہq dX/7o 8q;[!IVRe',#`m?03QIW92`ΟhrAT4|)yun ۦs- oQ'o)"6my\* =L@ dX/vd ?'׹?`m?_eq yBp/ .I~{U|b~O%l)06"2SbQ#S*A0dX/ ?_W7}t^TcN݊U* ?Omj#oau#3a^ZbKu0M&EI Ko}^IV ɮ%1/SK,@YmHjS.(i?6` 4NcBgf,VT/LcH?{MQ': nЪ_Xgq bV}sh@Pn@5fq'.U)bY;8aiI9rrojQDYSX>O2 dWHpJ<͏ C8(>zsl%ـ/͍)}Agă%LAjb @܁[dX/;d5[)ٍfkv]Zm(i~31 ̻~(VK]G`^FjSY͜hF0Qlvd5[)ր(vO] ~@@ hV}y7hO>|X1 >U>s!6\*AA`uv㢌0D"Y=%m|mͭ6*{h `0=DŽ{h,okmmld+f$ {idL&i(M6v2B~[ǰh ^LO+Ekv},öQF]<{_U +j9tUᡴz ` t_?'nz^8'N 8,s1_֑ O# 7 KCh ycdnbx?, E $RgZb ;H. U荌*šf( ol+1_ٿn5\TɃ[3jona95>d*Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ށ#dDD]]" 7upo{Qo$t/ 1el+o 8q?:_ 7b#i/l"vCN#M0G :2MEuhVXVkӞe dX/7o 8q?:_ 7upo@6xVy+Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@1dX/7o 8q>އɁTٻ;(á߶@6`m"ZrM3@d<" c]|0- dX/7o 8q?:_ 7upo@67 ,pQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@8 dX/;d5[)ٍfkv]Zm(i~(LLzLh5E1Ҍfc!Mfk6s[ oDԝN/k_4"-Nw@(AG{1`3;>fT]j="XK!Xնv@R=9CD\AK!љOm ‹a#[#Y ى:Y m-lrwh2EA$f$d cIp0a$]"#AI90860` WGzՠ`6œGmy V8 *U A ŲswVTLؽmm;aZ+$;` A@ ${[^Bf؀EHA٬o'C@@Ł1 dk$ϛDiS!Јc,6W8 7ӳlvd5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk5: _rϲHpھ 8uɟقmߢ9F60*X]V4|9 dX/7o 8q?:_ 7upo@67 ,A Cdիfè"-lvd5[)ٍfkv]Z~N E Hݴ1سp~B+i1Ҍfc!Mfk6s[iF3M & Kjo+odCqI@d &HFtI"똄Db HHDz6^̗u0\kS?1 X`T`@΁ dX/7o 8q>]6S)G뾊HP^`m?_++LJ[ 7"8qsj-pvdz G<}d?Eq1}܈ a*4 OS` dX/7o 8q?:_ 7upo@6xU Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxMQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ʁQdX/;d5[)ٍfkv]Zm(i~5e-z9ybN ~D" h7֎i;QlƳg5A-~ь6c4 Vk5;?@fYOo؄:W/CVm,d>Vl/P dX/7o 8q?:_ 7upo@67 ,AX`a`ߠ"<@ `#Ya"XK!Xնv@R=9CD\AK)؞r x8(a0뇯^HBb@·DfKj; \Z PI/yY"di3x\d *wԷU9U E?A ګ>L'0U>8S AIu3fc+ҹ1kSעHu aD,,"b@WKKIDgij흿C~,M dM["Fe#*EKFN@YC\`T nJTQAA+>(U. p7c&SMsS; 7 SX1d` )Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx dX/7o 8q?:_ 7upo@67 ,G 14d???Goۥ?>^ /ԯ}bM{/?_3#O6Ti TCQ>xz;5G!_SG΁{AuA{7 Zr=ݏx~.U&f95@euM[ۘO_`A\pBqkol a ʇ@,ǍVU^C$.Έ/)njg v$¯e7݅k+W]$3ftEQϿ(i,Х޿ܘBLF@ro7k3:[Z\Em-{6!^ 5 :2@|]".I6'q~HZטe iXhmpZ*(>A+SZPT+%aj }B 0hVt;֡Ϲy;+wM=h7i-*)xr|Ӽ&K'UsJu+Sa ɁXpQV!w'Erz;w/G_9ڈ羬a^G$KMiiڻyJ=B&QuBVmhQL+ M$dOE0GsyUܽ9 ?~E0Ѧ"hvG5ݰ0:b O &@Y8 HXjz.W\VovOd2fWi?6`w1LvMO ApӻDС>`!PZkZ("NiΤڀ*L%o5ޮfĚ1p;mÎ9) 09)$HezH6s,@A 4`ʘaYm5jh/(C,d?z$H0bH5#(.ʹGkYuֱY牀C"$0qr-?T!·M^GnE-` T:eW8oQ 8 ~{-sxQĥ!N \萒1A1@Yݮb@~pxƈ<3L@RbdrwyM ,%i6}Z:hrEԂP03s]z_+`ul3GJ>L}C,e|ƒIN!pF[F_@.@s![vb^*{QՀ;ի-aZ!9d[HSaYP JWn]?\=B!HHҟqݷ]Ƈ]u6P/9e8vPec|͓6059s;Ø>^ėP 0P4D@ p+g}HӉ.J{@xBkKey{"BY[jS|pR ? rٌBTQr3MѾ^4rd䪂Ucvƻu.ݨ.b`X,X, eb`X,X, iDmmn8qȭjGRU]cL8^gqʱC8?J:/Vvz3Լ*Ldk:_+`;'BO#ZԼBGy=D|ThY /N9@7 뎑5IBA7UT{4&p)KɃcf J;*+'[""G9VLU-27ZKAzud-sOѠ_菱ƈ<ձ\wGƒR;ewNNיDk `O Ra=̌ oesqD\`W#x$}I R8 8ֿ-r4!]G&{}%0\0|ggY桐6 T쀡ɦ{خB|)zF78]Egkfkүl8RqƁ6)a#rP(N[Kh^("s$ IiC8>4 pu}W9dG>@  n?sS%wo :gS)n;fKK`e.K{pPe+l=,Ԟiu*Q_`3<f nB6?K>C$t_hdz=]1RR>1c- 0xWmO,QLT:-(5 Dр+E3c߶0lHt DrD9 `[[{X3PGY`ob'WZP<8sd Xp-PUVSFݹ_nƷm۬fav}:]n7m۩vAv]+ݸWn{ۦ6v}gCPǀcCGTG96Y0Otm\` +W{%v\WnW9`e֖XዽgDӬ%*-q-+C w$2:{ >cj_ UO6:kM#J㵐pi2P$qsDg=JmlD{L C { voP´Af3geFC5qKO"e3k6Pmy' &h7;epVe\i*عAyUIIT^]^8i9mE2\uWبhx( >vGO}Fn >Ej{5TFWuÆXBP1P*-X AgԍjVN;on+,otY|ȧñrҟ[kŬLFo˳91g6WXwŗ֛@:Qr-F_-m0/ I1%#B I0Ռ2rk?{S/yN/39TFkv.w^B[n 9غ8̌a\pvB^@(p vY8K8MfQ~ҘCmBP?CfY/dJ#RRvoԃ̷xួ h9d/^䔈vd{,Qn`7dE%`hM /{}?l˥Fpfā`c9f:cJmRfԼHk=ޫܲ nƓ/b oT t_/t#?OѢ'@_.̚w/L\L>E-K;x:ګz"T0 (Mx\[Ń U:)!C38gH!2*6#="\& iFmC,z_#- J:\FrqXUW 6atWP+@t]FH>M8/+Quw# GPS?|ZWt3O!#lD9f˾~2` d;VU's/hu#2nr}.#S%c٥ a߼6{A><|zU͝\/Ce1$tJ_a; JdKg.CMe$vn^pF`-`˹u4"`Fm%6^K[ˏQ2;N! elCTjLxtԓh<\%=IA 䏣<L _B?w0=BZ|6#-UsV%(!e_kO) DGaj|A i{ FXiܸ8 ^9RؒIL) zw4aɫ@V5Hqړ;.0 Ue!}]?ؼɥ(dKkv8W͖; 4&GQ[ƬY {eK߻gTZKP>Œ_w&vIiiۛDǧ%ݷZd(ǭ=i/AvFe8c54uV͉6$!LSEkbɆ9[H-Q80jbhg}u_b{J,L_>9w߀Wo]GLUJHxW6}P*zH7N@yJĕU6*-Zfxcc+`BߪRc}o(v=Z#gN ih̤OK;wljđVbk1 VP^X]M;Ѷ{}G/A:@7׉Fl:H},+@bQ'hݔsCqxe5_yEiU:U2m: i${&NDʠ81Nޕ}4@1>2m j-hTu ,L߉W8KQvgv5Z{HleSG`ٵR))ﺄ]P{6jr:-C_\O deLڗ|W 6ޔɎ$a)BFJZHb†(AE&wŬ4!>j>E~̾(#YokP+LZ^=>Â7<-¬^4 i=°paRk@(MKX52u[ v*wm6$0C2Ѐ<ڿ l^1H`: ź/LW{ܚ^.oGf-#{'hTCCTөmؓu^ҏd\1^gƢ6g$|H#r `oOÿxaaq$2%"󣔌9+!M_ϔ9WjyHf&S7_iۭ/Ct<5[QZI% bm-( ^~YTKjqM읩PS-F0K)W8P؅?4&W,AC_>g2Uy5&u|U Oޥx幃d</z$`/Yk툗G A͖(J;7TP^+Upёcbv ,jLJͱ\&o*@`LN1@'kVM1 utz3jRR>tlU_[cOIfberMrKg@  @G 1fZj P5m-v5VAQ#sR#$\Mp>V~Ջfi!AFHVB+?ó|vxh#hLjε A4C2%*L}Q;~K8W`1RskRP-kQ艫;&kyGmFxGr=M[-xRZpd!m `2`fJ>0Qʢy]Ub[W˪doE(rP;Hҏ$YO|  _= /x,W)soXي >wGZmkP=WGu`v*|𙬛a7͗ &D%,|BWG xJ7aWaCOԜ0zږI 2_at(l9Q;'ww>'B3_hMHr%ۇkRHk1-dU4l4Bf13*3 Ѝm1n* +i-_H!w5qqǡ^>-׿Z6Bi@bu|n$[IKdFUV[!v'6f4:#Wvt#z ,ETXn͆X^H5uc r<GnA: d.ˮ^;CS|t0?ɪd|m Chƙ?S?rvLJ"~" n;*cS#j=S Q,Fh$"4'oC ƌ g鹌Q~Bx~ds 4m ?3U|q*޴E^:߰mPvF=" ;Zm T^z4;ۤS4neuyEBAa rߚ&d&H^e]D +؇st IZ%p#pe"v'm*|.c~ډ^YlSp8$cl/u:ԝPɽ$#d~#H[d塜D}ȽoR '2 +[=C*YSxĘ)?_mKTJ 4֮hf/<`E|:϶BGy7t'?0(QhgQOMm_Q!& hsT}BU@µgx_ߑbN%E$yo0eMR'Ό$XzO+!LbLr/9A9[FD=ܳRH3"B}>*Nx \z'{p =g(8^ExA/5>N/Rk|c]P܃8.~je %N`@Ox/h}M>B$`l`_|~zժxNGc(w-)ۡzgB3n A5c84R*m.Mc(s?L>0swz˪8&uqbmZ"A 5eZz֭΄'úWLz£AD{ t`$~&# 93H"8^3jKd~ًյ9Ka 8*p[CPR;ڠ1A&٤u\\-/otʬoV5bs2SuG4z!^I.'3=q8`PdIŅlp9 6n!8Í_D/Q3l eb89oC⎨P\7Fۤ3Pӊʤ7ؤ^ғmpdj'譄d;` fȝ΢)$qBKmص|RGO5^`bJDv{|Xc:[\?oUŰ5/up߅A 6'*Oʼn|CJckNCl#S nL A9MCWPlHmw9>Jb҈3H8|r UKTVP6>8 V1uvG{(% (Db(1w9H R.b|F"%VzgU';gk(3o}IKCn#p؄9oi-]C&%`MxPkfǷ:FPv>yX&8],4S4ϝ$yYJ!pO ~LGR5 R`l{m/:"gͺM ++'3~Ⱦ:dM0|`C"H,&y,#$.Lꔼvhe 1P$Ef1(n9M(cDnMRc< u8-FuO}QO<} GɨZgvbJ8nHء?)2uݲj]\0t` zi؈ wSSeseMX  [XbfSixkh&I$'+c gpz.sw =]I6s!sl'GsC6{!ׯZpII{apQCIJCx_W4@G#:?v捥J" r90E/z^[NjS<*FLU ծLd-ΏKi=ƧN{rbZ`\bcםts趧$i9]uÇ),c,nS:%?պ&u0=RҠh1.1{;0$o#4Q†OpXq"溷FQtcRPm+au,ftl~l4lU0d4kIzSaظ7Ɓ.Хܿ mV|2~<#uBՄi n KJp xG;\6#]ٖY9F;$؝!j\"KoP * G/ꗠyX)']tBge@1?ɽCX(|Yl= kŏfݠ$j wlu3H$'Y- Z@,:T_^^J%^)pL&I\2]G-]C1A5p ԜzvOMVdxCnو VZ6dϢ3`ɲq1իgt}hobS?rCDm{+|4 @[QS@PDCv$TJX7UT1FmO~"8$: j} +FG%.0ۢ< 7Н1P~B7+:~)t.s?`̅+$8cJr^gW)c22=O\eJ[xd_ Rh q'omك}Ƀ7754_X,_h5 }k >#@QY̷$1wmᲇ ߤ!;jrC^Cιǀ-^2gJ =Ӗ@:#؝]IB ugܬ,GB%Xߵ´i8<~1[@!S+(Ȯ1_MwNm[IfjA@( tux̳rj9Ѧ΁ICac[5)u\T4@Ky;-E9&ľ9MgLPz{rNxOd0P pqNHJeoUv$ż˝ן ]x\∖S.ܲH hȩ|:Bn4caʕS-0SbcXQq(l*K =-XؤV랩d5.a.}N_T-@%:_圷|w-'DŽop) `!@ uM%%bV7HU_r2hDa !ol/${(o|zwS4\a"Qeƭ գ?fT4ǯ/$Fg\H]-$&ko8*\@O "+ظ Ó_1x/i`Hh7F+0Z%W9 =׮ s6zE.޲Qz]  X@P 5! ֖R0rPS~o}n1<}( k]:LFz(A&nt2nC Ew+o;wcj%ߩカ7Ag"r--oH/Ԟ5ƅ:`Zh-ڐ>zZdOvѨg98Ojz<$+4{$xy* T30̤}&-%Y8GQ4ۈףgCx`WM満@5Gv Nje$tdG*w!yxw-\\6Nsjw/ZϖA/Brwܫ;@!L`XSXC0hMΒf>(r͞Q0^0V}<:͍ǰ"Y9,> 5D=#NnIO*^Pޔ5$8W٧ȅ|_ E}CJ /sr2!:;D?&U0'bYY:S>HqNeeh-` fp59EP"P U ÄE38EK}]z^T<͟3p@!Ln]?lZz|L 퇧ge& ŨFȲ,K! pn z] n.I6DiGzo-|/[sh ս)y(!N}~ ˬi){E1{Rkݞ,ƁDsz >F)k.x8vT<@+*`ļX':i~9}'+AMT =vwK_ mާċMIĖH ^葎E+b}c|w|vocO" Œ})5?Fn+Ch4EҊ 3eP3tdӋڗ66k@; TPұKB ؾm+ےc3? {1&(Uo ,XMy@XN*A,@jFʺ 'rp,JbL![4&0N5缾OQ$Ló:exRXzʠF7L& ٠y[O84&Yj42&ԐP*G"l@!rRl 1 ,@1"R: >E>D#4cIh&`8׶,@rt `blN e@UOzT!?@|.O 汲@ dX/ 6p3.ZcuW! q?:_ 7upp+y!7*##LsgwΘz&rzz?@wˇ`#|b?_xg +1\&SH R^I#mgi [eCD*$cK7.^ks ,ꝞIaW{ 'Gƈ XpET=mi[k<&W7S ?ö́w~M9?$f|Π%^WC<*V8ᬵlɏ-N~Fz%cI2A"TK(A צMWn),ݸ7ůYn)`B?nLzX2ɜ܁%6DDn]u}-צψ "584y̫0sDU5Tξqm!KlHU EOms$͑l牒 HȻx*&ڇ^#w)fa Rmwqg6lWY1Q= L`ix *' ܠUNVl rx- Y*?А*ned `LnKp3z Go|N"FxaOP̂luV0Bb6p'ޘgc`!5ce=Ll&f|DjA6!fkzA'.8ek\hHWX:?Vmch]apktZC/S5YY䌄b$/#O/`><7L2-{1\ 5Q1?/:D8|U+#"4=+$$9%ga?ڝ#O*R dѰM?iqL \ߕ.. ptVtLWziڑ:NfJþw ؊9p TaL(ٕW :ȕ|)ߍ!L܁JRve,yi ll{ߨMZWG Bɬ_/d7s@b> g;4; KIlD,ccKKR:U ח"vϝ:ƺRt5vz#h?<-c `@Ps ߱}I|s<ӡQ! 3*"U'גWYp (ตdk~FY.Drm7R%V xl9լ\~B}qZ)R;[]v ;68sϵ$+z "w%-Pܼ:- T+; +kx=1E㟟^7KQBhY.u(/C3{sN}h :4L E˜v蜪6 ;8X;1|ΥcX: gj7i#NNLC!P4A8l<]{q!$k2\(Z*Y3 'tЎQ2n "cp8:aٵcv!?m9.cT(+RDi1ڽbH'>#|K9*BYuLSX7Yv2Cck$>FM` :XD`1ɘJ)y<3#Ьp {l|-;&ˡ%dld璄I?+{~GmҖ8!ML]#59:LH"(Ȑit^6/k:QK7o͑5 j4GY4 ; %$6r3Q+F Fן+BBuQ)oJh!uۅ̧dum1oq3@y,-Pηhfch4)$I&ɭXN;HdD#7rYQT0OܔF$^ʸVEji˨aʹjR;Z n#lMn?f^{㲰tޱ;lz]]ıM57D(l.NQ#X. (׶]ܵB;*:% |UxVp(c>Pa5#z5ۇ)22ꍹrDm| (H!q=9t+7Ib#y] Yy"n.Lb=z3G_vUfS y$k|=` 9)Ura8k~֢>vT :roz֯68'7zcmSD-O0lc]:&eWHD"7`)RbGBg N<#hZ"44oOET*8a Kn#Vuw&:$c}X~ ҹBA_rWx9ʖk7Z΅IgK F39JOKys˺aA7'U,DnXV]V^5t˸+Cmpn1.L ]ˏ7ZcMh 1gj QkKg2ӍU ~;{Byjȅ8t %Րe>Sac:}u:QKžC;%Ì[;#(p6Lz96XC֍Z+A.H;+rŌ0l!p ۮ«(O}3Y(+ܷgmm#)WBEsO>5s`Jo@0+ۿH~Xr( X_9f'}y*863^zg;ǃK'+a~T2lxQSm&os-jpο NhK7f(x7ζ.株@~!A{RX/}+Gl7$ e!~t/R+M?l}cd/zER9 n${\9s#ʡOqBrd?DS):V ޤp}Η@l'd T [i}t #@ĄKGbˉjrzAhaK N ?;]"cDVQ'DA4/3k$`87FwZu^Bp"ct]!,iPuh 2&Υ2$z' xUl=}Sq6=?ђ(LR!;D.V$@z.k’x9 bm&p)e:})@hX3ZtL.(#wQB)GrV¬l7%3s(:f!Gt61qI 2;e1T/ǫjP"#wXYsmf )&` Gc`-ҩM8cJ  +.kԁJ*8kwCP&_&lF\E&DbS J, {fȗ:JD%2UEMe` (ܺ|<>-a@ãpBxuKXbTv^0_q(nWFJSӜn\3K'(æ LؔVo @84μiK鞹yI˘uj[6}41lh6aFVFGXBAG4|Z_Ixor[M }Tf" &A f\aORb{Y#;WgC+HSzi)& Jgjɚn'&6Bл;ME#@I;_ , &E8`pT y-z#`<25'k0(/BAuM(S2dnFٙ*ZdNd"ޯcBp5R ^'+q5p-GC0_BR(pci( $f,yK }n&Wt!zwH/C C1WpƠ@|3f Jy]qgH!sReޣ(q*Ln. m*@JT"݀@ІɅ' =bFM~vš =X+%1D>˰vtJ#@ w/)fP;:' z21Zt֔ /(;f5Y&&˲ /2ADJO,rҊ k&Rd_@RkBwnJ 股ά2 `!JeW4+aƮN& J ~/PlI@\j`lpYԬ Zˠ?-v9 & 5xe ]A*J }t@EJ{/$@T^i'4LljSfW1OD@{_-'wם01RZ}M\!oP"9d>(6PjqJ 'G@2'*)BOw\* *˶j2T*qB5FRT Db :쿞GdhM#doJA!S!D Ǵt4`<0?|M6x+FU3ӓ %D-Uac|;ZY8zKhѵCϲvS!TJQXݶm5S1E3Tl1>x`X٨a6 ۣfʆ)禕sXeOXzIKz+tNix/>\p*LC#.b:۾qA)& Ϻ$k~Oǿ\Q WŞ+YfQ֍ۺAkƃ;Ob* FnTGEu[41kWuJ+/\+ny|Ēք (Y Rp{X' Tԋ)402_Q9o^L y?p7$+_Ժ4!ԃhG@Gikr7d1sΎ *ݼx1e^u-s'c2- ޭ-RC-gR'yHBF:#!`:x@`]aTevUHe |ˍK04!`OmFC+tK(!uCi\ؔ1 e+] 1j!Gqk,![ ٝVJ2{[ԱVL7/[ʞ j}%Q"8ع|ѹ@ k][R@EUO(0oGd_ &L3O/IGK9{J䨞lR]hFҒ`i1]9Vb|ʽ h$ " 8g0jfH$3Kfq]9@: ;5Hq9YJ|4Ӏ+)g8X0B¶nXY}N4@EA #m xMr@k2*AWBtҼrPq[x5v.]60 7@p; QTbmiމ,ؚ<`O@9ٚGH!{8ŵ+q1F(Tax@h I_:Vc"v.1"\.@' <`Sh S`!{V=Oh '?CBV<$w3pE@1b-d;!W.;fAum8o*L7@0٨o9NXhj5V)yC 'n+LcTyJ-d wyL"xH(0 4WGHkJx1 dX/7o 8q2po@6`m*b|Q dX/7o 8 z__=8]6`m? dX/7o 8 W`mupo@6`m@ dX/7o 8 W`mupo@6`m dX/7o 8 W`mupo@6`m dX/7o 8 W`mupo@6`m  dX/7o 8 W`mupo@6`m K dX/7o 8 W`mupo@6`mA( d D'6SmZl@3dzWj]JD@h3RC?bo/q@}7dΤǿ?`mN?Nqέ]Hx6iiG/.rݧc˦y=xO㨒 +4Wh3Eq+̀Ї=k+3gidItl:uKv(FjQA3P~! [= EUOc `^#nhSomFMU<s/q`\Ft Clpu*qW2#LF9 !Zbqwǧ}qKMm%q+-l@lxõ*G3'U4]J$ojuUa8B {&X}Cq9lBadWN'_곹Y3A8sxgm:vV nxO&MDU94`jrXٔ,goa;} d.\w(7:|1qhMz9@>({c*[essut~q? sJs ^m,+]|G߉./pHÍ!/m0A1a k&;y coXB J/thCBЇE0Ϯ?A/lZ:͈V(}',2jjXi=b/3j_pSkd\p*(̻%8 K알6w UHmJ?YA 0J St\ws}rk~1%"w[Y@e;= Y1X"Uӑ4̝5ˡh[:69S>kU3`Sһ. CG {r* <}s_4!ѠPmM1sO l\"BBe¯blWѹnpK#\T~Z>Xi K&GL(b:ajdUNEoL8;l)QpXCB ~ o!j؇Tv/,]ofӰ(W}0uYd(;tc"y&̠.@@eb5$TGΛw4EH54g{!)902kHthPB씧1|b?I(qUH(zC}_#ipWN9UGUOUF28w e.; BŌTOӱmk}Z,j0ӯ)wiBZYc4Whk Wx9O򖍜";`pϩPEeX M}n^z7RV"|;b*`%( EJdEcZxLùB%zs!thCKMl6(+&-[]g4E_wB#kI)+i c]U_*ͭ-(yٮY{)j2cfvܳ5HmJ<Һg6Ebаܓ., ;cd ěRcRCsx< jrVEv*X,m!2n-ڊ 5Yzx~=~+Av$k}x .9ʢ$hhd`x?;~7~nق%FBq3J^neeq, f _y:hcƕ,7eB[*5f2D;x#$&*/a LaIH岣OYkb[4{ʩaAZ\\z-L;G!s1lX(8u5 ɖ?1@8Y*́:њg02pemn(SѯmSUrȠOmh jlcX][e~eipp{Ow|^`O& @V=:c#9Nk(."\]eQKu>$f' zV_7GFf5aE.GPa#d#*FrgQnvEUy HgRx޼79o0ּUle"L|-goo@w/$..>Lv;Ep:gRxy%}[Y@biT(SpPAG3YOFA3 I+O}&p+սO2{5.lv5.3ov J"0 5Y0 }uPӚk9#W(of YC28w YS8w9[{R[ #ŋۈ҆}!s?)k0dOq@@Uơޞ -7EpT$q#/9l2=(SٛhF$e̬ ̪ғRd&A6۫F3f6߂9#|. A>/*dS ? w3,,2v?2֏8:dȝ)}x(v:9X2\{}E<{ _4o 4`oG wՔ9ǚix1PL#,[S]a|?2n)4ؐ]7-ܑߏ^@]~ee9$\"h!s+I?2gYO-tMt;Tr'^nX5NVS8w+)iudqfQ-@Cť6_K??ʘ$ꟹ,#uF47ŭQҦbQ^[^+c &Wbl+H-bߴ+ +Bv aUI}ÉKi;\8 wB\y!wr,duc׸-㒂c, ,HW]6A\#R`gJ}j?6>Wp '.p˼K){V3pN;L̬XN] P~/b+D)A/IG?MbU%CZQн[4px>nCh.sW4\j8U'\Gͥfчn7`;b½m<,vbn}+]*Ɏ`vX=J<%CW&G"Ip=J͎|c 崉fG(}G.3ܵx! q9/w@aj+#%&Wv"Eh^..9ej(5/֍~iɒOGܧ˨ܛ,Z*tuT{Hm>Gi?~Xq:Zģz>)xԟ2^P-X;&6>rnD6l*g:5 t!=`,X#ꦆְzz5sӁ|bQ19fzF4j!?ksG7DD*hU9Z\Y[.<#&,`}#|8S{}bpZV-$r u$QXwu5p)`ΜVmcqN3}#kz)pLQ-EjXvdmcŌ ܏yW&8B.MQika llB d*="̇y)UE}!Et QD9Ce㏍(f3bG {V/]OJd*$0HBs9Z2!t08)4(&%]s [6;-K;|.? &Z3ɀr@ ) f0<, Yn$42AWʹd<7Gy YK>!fϬ E& cQ -is;ddHW[UNI||AW3I֔O@]bMTfzXىN0X ` )Zw;B Q}M{oDJsL"FbP\> d҃So7K@$ p'7ʍ>ف6&Al)$Ǚ]O oq%_2? ^D,e+mln,}<>5ħf'REϱd6 .], [Cid:YGrVi.̰0ⅅP벱etJ"mZ;rq5nZ<R ˿sAA8 B-Ƴ@`CgI | S, lʽK(DuD)_JA01DrʺEZ  _WU6{06Ⱦ8dKv |) nۀZG-3Uںdړ$PlP Zx NN(WƱ ҹ}P`IRR"s[*@8l> כջ O7ZsFy6$hQcnb6[4#7Ѳ [_uŇU"'J: &dē]3;YK4h;2VhǓwcNv8nWyLkrx*ӌ4m$V.UEqVDt]t]ݝI@ Ň,a f@/#EܽN;Dfƪr컈gNߊXDI;w3/_ǕTRFHد%ՙ0"$ q28C^Cxk >El]!]5o8I@Ԃ-To%S%df6ł$Uetю Qe6VHԈsfQQ2"ҟ V5͵Er3;̔:b.f/N"](vɲ3QBt{5SItݷ^]ɻnݜ|nA nŀ[оx^D錗oḟ\C-O/˖YAh-xKtԮGG"2R:xcFjG2ҕ;3d T1zBY xNh;,lNU(SFџȍ !c-0צ},E4KRR?"CWO벘}AQoy Jp..DM/ʏ]=Ln|*5MX]@6T"_a" gp([@ _/T|#Pk@d:Q#Tz8Wr2UjvŃ i kY7}'PBkM0K؛SoPg@"o) ^(J[=1`h* eAW;C+՗ sO8 Hׁ,]@K{tE)|ĊrMpFsC%J!@<`$J 5Ř @:{π `XJ̩2 @'nRY%o˩R3Ү ! ~`yQ${OT,ovYԼ7&nW8fĀ ?Q_Uf+!7C/;1{~^`“-oҴdKܕp័a@0 EX@5#lyE>c#%Yj&Wg\g\.YR?ձ歚xIN.dREc,?:784PM]M9p-;bqj UlY(">.Q*upo5I!C^yAͷܼOsu&_s豘Y†- ΈY%ro:2sˁ3F]Xӥpxj(`g#abxJ>+Yɕܿ'46c@pyDQ"'6/y: ֏ W,Be!R*oWp wŢwU; 2wEd1KCveD* vœYfԅq9fzalN_0Ov\E"iQ3ƛ ]p"(Xݍjn~b3աHWS~%OZ|01}k}{#arͰ;K|-O,)>#x2?ό[hI7[<͒c[ȂUjT`m`@,%PO e~Lm u&;/mߟe!u]oX_7a 76DA 9An"9yq?4; Ff2#i7sIg'd~7ѣEљV4ۍ oRƲ%0l^Q"6(7Pt1qUyJ?;3]܆eQ QL"P'fǃ;$J<,(2mqCcz)QvTi~ ʶr25 wI0~lc;3W|Bm Lq "(ZA?)P 'D`_58U7 NG&&< +/2maߚA9) ߞ(.#>!6fkWB~q]Xi_gUl'x!|?kGL[V 0v09sFjPJ 1Ո Ԝ1B5VG* OᳲZP9師DaA#4; E0~ bQUwAPE*T/ E遶s,̕[?Vr%rqyu5NB[XÜs/?1j,2Q< :rZ'J[_Ck̏ l뾶Mֆ  ; (}yT8P&u$ѝ"1^6!GOClzA/Swe&pپY1vEvm+nJػ~u`e׵itJ|6I2eS[M쉈3VxMgX al;_;%IG_ ?VUJy'%k3k ׻]isz3i-Lkh7ֿ2{Ed$ ;?-sTFG#k{Z$ XCo/?5dV"#<*w 7nATaԨ?xpA. z pd %v>Lsh~ N+Nv!0`F~@ӗ 6(W]5 h4|J66^9v[]a(8,G#s+iR61J*ZTŖ7HĿVFZ% gWl6Q|1בYrN=~1*dĝ&xHk</420m4@r4WgSȵ \8iikZݘF%79s!,9|vc\l €[N@{9;g} 'DOaZc8zxPQTԃӑE|]8*6IÄg +e/VJD;_K_N#NR&.$d]X"Z-8d}жt'wH Z7cI%(Y#E>TM/b8!:0O7Cy*T2`w a`̆5,La)U}3#*))b[ fs)~`} [ .p+`S5 #@;+Q!D?(qȘ(Df]h92$wՅL:GN=- >dbySfpac-K)c GnlLe5]$īMb^{~7΂BF$0g'RXM[;DٝF. <U+<"z'j9[O.Xr.uuQU,2|!}䛞rzUU6oDM^J ^UGl`py f k#5TVz:3>itZL6s82.01<$IbPdL62* j>Bغ~\v c9|o#cr2V7Ԅ#dHh}Up4ɘ`5N_u1Շ!NLEZct?}c#\){~rxq 7ֱBwlp241[Qy_Gtl){N)@&"i*L,TKĿ\V2$n %(-@F h/•2@'L 78)MxWFЧi-5(W$Q|-X$_X;h26xDx)0a 40?>M_)oZX$5o@n?2[k ^\bqk7M h  ۔Bl 0aKhZ+v q@aΛjR\=4h( ?!HPOz8 Rm t1W_p"=Ic-RjӀ'"AʬEЁԢ6Sb2V;2+͆ZD@.9MxwT1BP;$T\%=_NWtP$w@@9 >z$bBc^!k`*qj BN_tzB՘TXD:pKhB*cp[P:$Ow  %t0nt]!|@ V P^PPd#~1a?<i˂֖s]a No"1(l@&@K"7 *p"))ݎ )|18@ P e6$\I,>@eC1EB'(I@1^ ?fbDҥ`rIj|v 4F-GZ LP95[ F]mˎʀ&e{I1rtŒ8n4_zs:,1y)Lrؖ]T(`@Ԁ0 %)}mkհB<75$B ӕ)[t)8'o9fs|z߈dK XOzWs@X%hX|[12mvu 55(6 (Fa{E UP/ bzs@7^FX"[a ocpnM(lI9u(,~2Jy+E1b DO7C, |; loX` j'v9!*7PFRs"ZkK\z+(/[R!48A= jvG*E|>GXdefrttLFKJ82} y3=!P8j9J[K%3_ U8cꋰj0`Py=Nr=Y{ܗ֙xe5+%tǕe7<uM׾uIAܷ RPr> RgP=3xk=8y|&~VW7Lݧx f-ᇹ@#Iɪl}.7g'sG?|']DPNB>Q(;uHyjQs t,B+C9NGoQ4eQxZD #ܾ1X tbUk'*` LBl%|eGDx+eg<UEEHc& Z5-3iݳF|Md؜ QJЎ!Ͱsy;cy mM]V/ډn =3<ؑ#: Fj },J& pH" ruIlPWHg660Iɂ< N)pX독 ȉHaC?Fl=5ۃdoFb[q}=1K;q5c~ba ,+ bH!G *Z-]wT6"[ѕʏ+ƟT?jD)z*5,u,Q;z :$|,!'×ZOh3؈&ɔ8˸0\Ӯ2Ytq08 fvYp MJHN )Ǫ"?t46\Z#ݷF49[mhCU b%!OZ  Nl)K~-[#O$586$9X-0n@T ~ 4Ą/"d+ْDVofg]!fzjE6/a@DHRZ;6a[k7R-Pn"Z=$lZaKL6ԽrDr [e90=>3yOY+ .r7UkWh.#U@GQP @-+ SO)N4{:7֐k㦵^c ZcE9k="'e<`xohϙ&%sj |.û\0k5cr1RT{;?Y~վx-\A<)\֩7UG"bFsxs@Q[D7_~, Qà~\!1bb3_D^M4R5Ng->Y+h!?9Z }':xZGpm糊вZ(Yig}) N"wj˳,ŧ[W QC[+H4OUSӎ@_YSiڽe՜E( :ª:D2M9[zhǖ'YK^IrŶ?#GV#F_}MGPu'RAڃ(* NRu8nQFB0*b3@i3d "h.iAnae];Rc㪔DrB2&D נ$sn;qƍقS9ҩstyH8Y]?'GŴ#t&!8qHX.TS Z:3?2F[AHcnYz$Fy٫FDE9&"λJ/ sδprϠ=āD<$j*"'\c FUgΌ* m$lɬư*~"gN/+bq\:錊HR+ %bⲀ)gfC'(E!=VO."'&8#/F[ztļn j!rE@2O3Y7Ơv_{^珐V_}c<21o[.YH z N[kDԍcbm9 X{6he8LP% Tg3t3zRJ[Ln-yI=@qvѥ .Bܬy"+W L?ۯe/,I+e< \F^A)vɊoKL'-ph}l?;$22BjI5,n)z)8p/5_(;@Iz}0/9 Kug{1>g}#/tWYT`F[b~[c]0*!d]V:Ky=(i!IdV'_LAQڲS&^\/ @iI)7CV Xe۟(X i"H%Rz9gMi9w]7 @Hk~{ODYIA ]u;DADKzdK.Afԉk:o`c/RVT7lYjێq"]տ ^LB2pha4liUԓ[W?,2JdՅ҇(#YںvfY<% Q .g,˨K;I)} 6D@DRP#[l`+i8Yl D<5 ^})Kv`4&+` Vtb- #q~<xL)<; h}paGXph bxPZ+\)n8S#1"(@<{Me+e X3=;D>v` cihscH/RNE@_e[@w& aݖЛW\_p9`4Pي*<J ش8 ph2WH hng70jEP\0L"E"X8A5X#6<))>Z7>J ͢< '=y.'%1߰%! u<] U)y4j=no*Fjh{.P?25w<'D5]rI}d-(J~8,mYp8& )m@+":@N :d q-I Go/Q72fs|@ ݌*Yf__PK 3Յ'@[Ile07aCdA0{/t\`oDHe`T(oK Q o/݆ GiDݮ  b(cmyۚ_9#J~`4qW_*H΀J1hAK* I!s\)` oPuh Z?|z `cQހ"@!)DYEe\@Aɀ[fpRQ,ʟMzcLDX(Q?Ԑ@ ipEh^b:61okEP{eG k)-G J~_9b]Nȓ|L͂y}cjc+U{Kt&B\誎9]}ɌB+N0C%q3& VN@3AqA@_h!%{QI1;\"zSnʪw9e C-%JƂM6e^TrItc98'I[%0BPDO'y1XMq_?; *2I3=P8:Ŷ _nH~=/*/X8 Ti `z{" \z΅vCbIT6!3S @??DMA\L, >ǻv\'iD3 {Zܤxsm#^]Ozcge?wW TO8T5St/3NE 0IJ|B'I+q`N8.8|ȋ \> )Kk*0jFH7 ~<G(nv˲x!##~[Pxу RSx[oj,p\1Vuo/HvnҎnʠmd?RB9sn@KWkk Q0{&<9MM40@%\b"g8`:9m>+G(Og|+H8lN #U@i5ntZ֍r3ᵀ|g@ prcW@Y L6dїf K:ߎ4hBGTiI~@` 9E:*CGlS fTC$.͞pot`,Xh+$ *ȝ/a]a" $'Y,Oɋr+RRpu*o 7_L8t@N?ǜT0O9{* P;*eeƨJP8( _~(c~@"WQ]gGJow|8tU4MΔ-8/Aq 0Z$"T02PO%3mkꓕ7/ {P7]m|_T‘1'+[o0s,G!C&ԴYzd7_),[.c)us/hsL48A$C!MҒjC4)DzLԓӗ~ }Ŏl8Die~GH:>vҌbЎcT;I} >]'vZ Dv/&Vx`<1|qV$bQM՜0zٔK$փǼLԝ6r3ܵeLLX\w MO o21/yH[}*_kE%$wRĤE(59ʴz(6Kum~J)>G~'QPo1Gu)x6|j/,q:+\>z÷N|;Y3U6x?ZK ";"4vsrN"$fGPwwEl?{L}uC=mWTNȰBCQ{YBH6ɇEk~`Ғˏq,a1ćಚ77zR%@1uO ~O>/}.8I)=}ːBֈ޲P&>b>9``^B)_Xf SX˔/sBEQ2E,u"י@>JbVu W$ $c}r)ݔOu2ZA>NަMPlQ M(vl}ii{T+շW16j!pL_oSAgҫ 9UӣSGrq Rc} 8j #niT+VHsA_!+B,zadWoW¹h&kA*z1G}m:7Z}·2j 9)׾aO13**ybdIE;ߴY,/`fUC~HVn+*Đ rVxj@K1o"@0LI%{LNmˉˣ˼r(*N3W'̅)F$V ?\p+߫SQ>VpJj+er.5L_2I;osmypL iaY4_VzvNEh^X&4q񂌂Q~Oy1U B+ hYi~#CO@QݓT0t}VͅJ]Z-BO פ.ޣ{5zEJ1o&Nsv&Lo5.tmmgpۀF64,^4 mH?G]:.ٻwJgݮrʃaknyn:#bdy(*P^r"vA:d]\fҹj :gLڈlqXlbʢp=I/^D„%wAf'oNwhqd7m̍K65!~id3v n&e<{Mn&OEE(0@nR@g`Yy.nllTY:vry.4 Z Py*zz,+,H?`rGHy6S]ۀ @#h-GgbJ(L[ ` ( ; 8R1Y  ?zB>rh/2;1 !]<6QRe Up+E$`ؓ\U~7œpLmAT4˯ p*%G>ǻDwK>!(>xi-4݀hFMzlCv}fJ+͠05s |ǥ` $MX[ D*~.1M 9Cxg E%+.6h:+a{suOg-3_l$ )up?p\ιF@绋\&?;V` {=R_Ϥ%7ב S5 ˅-E+1m',p-@~'W޹o4^tSl*x N.X6fv/X9l'3  )4:{@ .HgDC\i~GX_>ʡ#3bP["rm6[" 4"ۇf>d\ECp'`;nX)NifVpN^r}3Ij0=4Y1HKTW}G@Z/L@1:Lg,r1i FR}:o5l| cD4\ưx w@Q| @̀ ~M\(``!!po ؓH@Qdexbw%{h?bijT>dL#J[0g E;*i&签5`0dlU *U9b[sp@"o 0&iSO`a+R%ӆټ8k4&ڤsm{'z!t0t8FyA,1 v'K5e!xI1/afc(G@Y>_F.u  Y: '7,UMw;ծB!qR{\8m߷Ƴ8kPIHP7`6~" ǯLVz\1' H@qmz2> Ri'NG$+K0vqӽ'@Wl `<VOtI[jȳE'z v)ccT!ژ$Nr寁 ` @P-( 0_b L;X;y;ZIQ4CfH%!a$h6ȴ~P~ώ!`"uwD G+E`,3 pt3D;h^$$ $慦Go@.4zt@ fYB37J)$B0 *PU&&#} L7r@aAK1N) Ayx Zһ&;ZR?0{X$x I\ k(zVQ@LG?@: J4,0:EUIAh@Ȑ)A">p AKS;DQ7e#u eGUCrBE1Tkҙx`:TI`^q1ʁ-`N 6z-h?~[<Nu@3@(4 Jy?Zf:xL~SN5@ ]6O QvuΚnJdA^N .ncD/tP#" O!Jrr0e…0TP#q-~7а~ e,HI{!A xgH[ oDPL*ʗ)ZՁgCj@3(u? .B8/ѫnCᰧrhr{NvHX: !1Ш -yp&[ToAJnڸ 1$wh}.!j4kx^6E`(S9թcbRt씥F3pmuoɁݓ-ٓnM@ԩ0;HJLQK( VѵiXCF/&v)RD}HDW$cܼ`rZYPTa7Ȇl҉%wAbS@睩7oU0=9?Lrگ$ )7,L5朏Do O4lf,u?yryĉsD$%v<$slW+R*#Bt|szDMk qVȮRQ9JA茋rT+2==*ORXdIrpL< 2ۡ[x/W?(J_ w 0DZ%UU bp 'y}h[[wsC lmgƥfWd$)+>l;ZU u!3aHdt& A8d) WKN-DuyW ƹM yHK_'W`fMqZ16A3I"":|0@ge33S 4, }=Vh.-E@*$ f{nx xcGBU_d3 mH7N28Cs6_q<Nňa2Bd5LZی4w+Kٍ%җ7|M?ˬ}*kD\rJS} 1;E!Ab/"s7ں{yX-MHRx4F ^[:BJޢDvqƟZ?E?G HnuFfn IW߽rmrà"~lFd2(?S'4ae֠h`ƴt(Nl'L@Zf{Z>વg(>v~]p񐈅z@lHvLSA֕GgLHrcg@O'T;eR:֭?0<)_m E4O :V@x:?>5~J']-CÝcO[mLSh]Ц55 l ÁXր Y(Bc'#c>*@EodݿU@A#Z\'RE&Pՠ=mq̇ sD@dS?9]2e%﬜-v;ϭhar7 afU]7YlPI7x[2O3_F`$Jw&ZB[+7(R [2oa }d[xKLYL$NT`cXY:RX/X]2Y~2ƣQȧ?ڱrL~-^X'3:aY7J$ۯBh00/c@ ]`Vzs͍oáv_Ģ} 4 Sc.4'܉I7 _X3*0r [eQw\>wwAGBdXB%Ƽe^?&lMңUXxzUOޮO8'K{jCIjh:,un[1^o%Lj-tʚ(R#r0Hz>';ok!P>Mݾt0.XsӁ(&PZ# fN H s6%@+`i|0  \)@UP$GD(tp0&8]6rnXQ Oy@ `T_9w4Ot\eE Ta4JpPW{{L(.<B&XP@df O O Z  3 Wjb6^'>> w eXM )~I4@e P6l&VzK !@:H|$oZ`,\A.B vKGq7N1b\CTa[6(=b^OxZ$ѓ@440H~@:C OTBAzXrٰ(-6h9<)`H  оn| Ld6<@?o\j\ ,' Z2gQO!ыfX~gԁ2x2Sh%.\9VUgx>Xa|uH G| q0Rc& 2?݁ 9Ԁo`OԀ'Y7vMʗT a. C.lbI8ӟ]3 KZ/XfW 0Т(-`W1X?F` WxPMz|1aKP#k,ؒn݁(`!·FS$aOx&?lWm?;_0\~<\뇿rāֳh{GMD&ɏkQ)SAq)SA9o@ -Tzfޙr2d.Wl+(L^ze + v"yT|ѳ,iOAg"wцK?_*,B$\G&ɲl&ɲl&ɲ\m.;_6ǭ!)%VSͣD=pɆ/ 6Sw9I,b~tV`";J}m7n^㯢Abn,9Bd7U=PbO)אdAl*նHtI3cQ5(DFX#H|x;ù0[xeF@3Pt5[َ= H ѵTh^ ",",1GKX\ k*(P u8#0K݀i_vO8p49X`T-N3^lmu"9FIT$F-s ˜h*z b:|8؞ /*ȁ040$v1+%_hQ "'1\M`2:upzgOчTs!a.|y\G r/WrL/|q<-H,հzH u#~[HWPd&# S+qSeVz _F|D^w15sF4fcD0~b hiB]`idhێXY1ʴQT >& u(78GX35C<$Qv Bצ,0Y%g79B ^&pXʡj#B /А ;AVŔ@ u-jAk,[a[(0@*) ku=P7 VENZh@hDvu ]F u`7N@zho6`zN 4*0 f tEH8< <@'`WM` K`8\aJ@ qMF`[XL&Y&&7p#Bgt rz泪v7@oԛ\ &/Kw h! e PcGiQh>b~שMo<6K=ĉ7<(no]ZƴTzD| }"MTekd}+/^|{SL9$ dA FQ(gJZQ2+\72CsG -;H2vtCgyգHgs `݈b 06(9d'״$.ʻ.:寤0wˣ+B $N!1Fs[g.aS!ZFo BB;"1q;W=y]S#IgaJ֎ _%#ҫ|L?iBbJd @O vD Yky2Ӄ`Ɂݧ;]j(uɪ!1EAP<U09./]u3N H V!1|rbuzM[ 0G|*hL)Τ& h<fPx 0 -G_p;Ұ 0[wF6pIg @ 4! zq 4B ?D$1V@gOpD ho=P@W @ cYIHh:aD  UYp`xxF 4yvAradB_s`YZ<}TA }cDPH@ d(ɬ5|?p:0݂:_>@2#MFPT\$&pօX`.H]B4k@`1Ź"Uq@|iP|Ek* Ϯ)R6 ,B(qL<N ĂѸ[v(>>VOu9z@O^@*3@dۀ j  @tA1dMHg.0, 8m<Бz@DrKdixy]YOr@7`8 R:ƏsF] Al!ܐl:|W@}jkn@CQ,bJl .&.m\߁i&wc `~}94iq(aO@ +`khɶqQ)(M'{gw'CU8@@A14SyN3 T`[MsDq H4!hH͙Gt?KV ϕ:)#F*!Q{lwEG:촭ob\/l&UlzХWO71 RJ #qJL1t4xdŇ /[]^ٻPVOGBQ%MX9"Y葝́,BEJgхG](Tacj%\2b<,pS3&"A[Qbt63'#۸5zgM̬utk7-`Qk`^W'dM}Ft |Ðe@T¹&"bـ(&L ;g>b)h{I@-æxu򍳌kL4e5OF8p DLy?( }EFt  174'WhT@ 52$N4!D Ljߐ2Ғ18TZʩH5BlDx$6%V#DE  $#I#_( vZ$" O4h)/C ,iD+}mk8`.IM.d׻BjxJ ĠW% 8ue HIJG঄F'z):$|@JMr$[~Ti@= h 3k69[eɐ:b@!iQm#Nu]!Z=ΧcY|??˲!ZLi_(Hkd!b7, /(2 .W9c@!.vU^ tژL =B̀"wfZX-:J( $ X#1u$w&˥`dπ͑(*h Pɜ@PJ/ ph$A ͈fb\B]S|h:5dKW -&,)L3rԴ[Y C-B@[KM;SÔ1]n(%*?`|$ R#&0]%Ih`-@ 5zIoPD[PA؁7tQyqӗ8գSU}Qqp~'7CibH! /w~ZVb`_h^҄h=kFW6Ɛk&QۓwY(vUJ;˦ ǥtl 66V>=#N{AHZ^  :,g%g/uh@>̚!3wT =*1kL450X&zX eH Ij?åR W&]>!MBQu6chG#J1|>^~DXPFc˫>A -ym]u|<R"bNx +? Uɫ,*Pm0aR(R"(E,@"1=HLeI9!%ha u s*U ,%SZ% ['?kzeБE$- a0EIB @ "XT,@L.NRX$YE7J 0A^(. 2>U/aސq6Đ]-xS 1@(P(J 'ڌ\tm-: c#hPH 'k$ e `B[`_jdmޑIbq^`krsaq@_սi5 >l]@\:&836⊢; _)i` ͅ]-j;OM,IPRm yD),~ `.65_F ?@T#P+hH 0Z!6t !cbsKLݠT/Bp=U]1;!AMqa- X7@/$";9sX?+I Lce{()l BL]h w==nJ'-=aIAD L/i18(H e0DPa `* QM H 8H% @Katf-rfx!IT1rPRHp&Q6Jn &B@' buP<(*8id:ݛ*}PVtqK##Pw~ 5#m;O_r$~Q%BF,`viFb]np+ߏ&M?zG1ב(#1w* `^93* Fc+q/?M?6ikj6]jsm4mFK2D ҎsB%s (qyZu).4[8r":L@ii"ثI`Pbp;28'$.Hk@갇Chwu! TびTɹ}AkzxL\1fqQ̞Sl^ }O=A'lotqe$х2? Mn* N>6<5w Z6*0ڱwW#H$qqgv CH ùU lfYg#E+?0#L +#?ec (XӬo.u i8S@/D*ex9b?g  s-GI$Kd'3ZX QֳC/I+L CT,@ d/!@qhN}(`K `n#b5cJ41LXv< D$.% cT= Н]cv6gC4'A@s>AȵŒ @3ewzpkfmaMvE߀Pz@mײJ5Xh<pţ釺Hxjx *X7T4BݬVȚQM1 dX/7o 8\ ! _=8q?:_'`< dX/7o 8\ hB85_o 8'` xez4r~P^}WI<8ȟ?} g~v#_ź{$bu@qx-v|,tXP2W8M%dWp6ʋ4@#Mju Zwk@ĠA zR#ÆEН/TOPvjnְ4SÕʍh?@LU %,>|ٖYck{466>/<`<$3B`_3A-}ñҰ^AGZ;]zNL lcU!sm s04B<*jcgV |-D1βHJ3Zky6]IDt%LcB.9ʠzK46+u9FXH*Q3e%EB>.Fq"\[f=|y?22Cu *iq)Ox9%QMHflg"b)Q$g]$ï%R$oFAJK ʄމf6aDnQ lgH*LqOhâ՞+Vz̞:1)H(`RsqH|L[#6=_1bBqG"Lӫj@ld$9L ƿtika`ΰ Pџ<)/..'@M%} e[ 1NZj-g4MCNr0l  h'<߇oy<_ yv\FBE|J6ީy}bAANEaʌ]:s#l+"rCzgVȈzv*2Mk@"=LkBV4|qýf`Ly =Je;"L73[W\Ymj) %u#'n;ڭ=GYTI<2 u#> k}[]`f.GZt:y҈@cf ~0"n`%@%R;Q`HC PO` Y2B1p'?Ojbmk]+&E(BF` ՚+iY!qwFfq !`ALX`LNp.x{yw(-W#վ~GƟI.pү26y;ÍvJ M.1"|w˖&,dk|jWMߺ$Tyϴ ޘlyuCF ®TNkk@H=nvV!0yEU?Aȁ XZI谓<@`O!ff0PG٘$*Jb'Y36 ɨmqY2d%v _3A@ `̅}:t8q|gO}v[_- NTk^* t{# -=. *f|B8~1,] (]Ta\ڳ .sw9ʂ"~KMW) EX>ShbSTu39 I6b0SGv\+e&ÂD{"/ȓs3'^Clz;Wu.㪍.sX % 0) !EP&0| p-{AÀJyv%'$ }*'ߚd 0|"c<@866 bm$~gW#q#̋WR D 6Gک9_H1 N&aeM.Ģ? 4,a_y#<@&]bCIB{{U{2 \ˈ!gX1LltTЀ)@Tһx4ü ֈvb[\D]fIF l z-Ŏ ibh1 |kj6r=<]S(no}z6O-z_FR'B{^8:ZT2yki^$գaDq*YN4D-fIZ,}wAP O;QL< & ƌ6hN,\$h;Pa7ndتɡq/riŃVhF 3@7?>ET=ύnW_~ 0E ?tbSDywn-v#wB92oO 2Dy+ʓimFX'a;^].,by |h!A]DOTM0HQ Pt |PN'EE{y0}ZK>:yP $&KOZާA\ltct}qQ n)`:٬֓R@~s0zӖ@BQlg|XCCqFO1C”>0M&3}6Ȯ >iGL5P5@A IKHJKCV}ųXP.T}!Q,JsZ'JD_hIʔZt-E%s+m dLQZ3d?Z$Fwu}RH[j`4ԿL Ntx+/I=וì^NO-XF99 3=3RaXcVA~;C[IZN0EZxNcªB&+D?\E WALLSɌ. ZTU ._*Vp7 V Dc]ȰuΪKR|gwxOuYt'_26@ g o _ aWIf+1A͖L;<-窿c6ӄ@< {df gĖ/rsaI4s| Q)&7ʾf܃a$0ŹCYꐻȂiƵB% FQ%iWD" i~B+VR#4wˤ QuB ܺi/FQx0@ ~ +#W6{Qm~5 -?JNLqXL-p<([_J1"~n)`_<\A3 筶}ht *`}KbKbJ ʧbZJkg]>&Z$:C^gQ ׍0ywpb^qa V1.Gpi7'ީ6V~Ih97na;KQA 1] r;FXu:@Is{ v|ws_z{k.;v2-* PP ,]{XCH@Nl"9To[=mj>`|~x3`R!K H/ t?o&7I:=Et$qiXdMPb: t+0?T[ >}E6p~?b|8݀0# a/cB {頃Ԣ٫y@o,^Z9=Ro6!i@^5KG?.xn5G?@wTydtm6^ƘeF|^z!ve ~0 vS !| p 'dO{SL5Z-Wą.=>'Ž ˫U/[ ?B%\'@8{`rq.dPԴ%ZDua3H{xkv/,`vו@DL6 dw~\&opMcCz4 WCA]2YDd~Â)]|%#PE8 -m{ ҽʏ;yV}G"Jj?O ÷h;?. [<{3co73x?h@Ž߱~Qٜ%d% Ad]jka$< L_:QX˟wSKg;_(5tXQ >l .@`||CDy rj {bp;P^/ ;LOLOLWfJmRxB! ,)ۂG6=TG ~O4RRs`"mDs[,Z5>W5 y#[L.Mr#ȼPAYBc:iւ+alM^^r/S$dLEeP6KCԀte 4)yr5(Qe*\[@C㫄au,{^n1&6oư:1tW|C`46͆a &,5 @[ @ _2(um4`!z)۞ڐfOg)Syh2^C&2~|:8Dj x1j>kӅ=`Ő.$$Rg:Zw؀bt9:Wڙ~fS@F#1xCuvoS/f \Z2 `E/?P Crx(M D` xAI+}$C vo&V SEo$X!-U/ho]2 Ta]oVAr$-~ *Rp b}Ys[XB]I$Αڵρ7_FkE4NB_oSՐƥkNawR~G[w*/X.%IfP1sZC2k6[Z0DPi^#VUS'dAspbp l'[ȡfd\8WYO׏a . aNPT`}w# "07g-M1;"ZF=@TIS9[+4AHPa c頂=2hFh b)oh$ci6rL⯳$0H(tݥ0އN~&V8@WlcCK`gʟaUήhUmtŝ3o1hhcھaHTci}O|'  pg(!XIRلoew=aٞvb 6LcNP8?a 0c 4Y頄,F^ñ&bqq!tЭjo׳?+ /l:?PKthF[vle 39|\>2~0ܞ=lյ ƼklC &)Z7(6kNcupHD%GJNE  BQMۘ 2.TPqFb1m˲H6 ZR2 3O1KY_|3aȘr9e@~xEֿ}@I7F9 _ oY@.Y / UW7ή(SM6@n=aة߹q/z7] [le)TX n1DoAl#lj X/ sO|d<SkȜ0 $'9Ia?!< *.cU8@~+F-Le F֜2%>kqC1ze#фHzVsFa8E!ȳ:;Rc2*W8eGgEݹ"pWHwFVMLԛ𵈾 ZFxp*9+rV hPF_Jۻ͕\}űɑg%*5 uۼF0JH(nsA˯9~8{iX6ʜ,#,\4wb[ޛ]Ѝ~[{ti-mV.KKF |TKuJT"xk^^mXUޜ T*4MB[X&,drP\jl9ыeAŰ߃"Bl C`2cULXg:~j@{Y[kcMlZ705 #x5I1W>ڥjQy$b@QxZ,?i|vB7H*m+@ιB5-$:7&# 9C AdA/V&he7ѝA't$(Pi@4 __F˕eUZfϒʜŁ?r @p,wڣ[~["yǷxʱDyV@^a'ȕB!POMC|Bh/mtdo)0:;mE5SǚP@PD%&2ޟ :3rP[F#D[bLzqlO UXqo+C⁠$KG|'|1!s̀h+E){y~ɘ-zS0-$g`a 1-:+6"Eq4!/Cێ6eL y6 = B!F000AQdIE@8i>ƿ?SO?0k h_bC/eeg`v]6_a"S*LBsUmc&B;YzU> !E!eSF֑6 8˲b@uvO!q@ps=p(]cQ&Lc*'v+3 9gՂ_P#.PxΌ{(ZaA X5,.0/h`+wR=#.M!>` ` jp;r1[| l7IOzsI lll#qg=.!rZS) %\zߚ|~"$MW`{ZSU`U57!Ni( Wn35HoȬ1Wtr1`ee,tO=?k%;$-mg؛GpjW`Wi)UNyH/~MB/ a_%'ŒgZjh>.~fףS)ξP B-ю];극ZN^]hþxpLPxɧDDjpUmĥшYE߄MW8e]&41"n) [[{[h9H)m*jtP9|Ž6E  U] hkCHHС 'h!@y2 P11 %A3(֣݋"ˊ2 "-mT3ui;~%lQ4&B ۾̹jۘ 6P*9jJnhZ4i@- ;&n%T5kߖ?,x AAx({} (fnxHK5&$[h*b&-oA뼒e>yd285vnw @X\ xm:6п=l7_ #F>X4+Krik- H嬋˴cpcf84*݈E>}g Y32 a.,`.D*Hzta lM%G#˺oM()Q&A] nqɎ7%)\Q*"Oӿ!oC|T16V{)5m߇'H#c7X?Tp, ιn(h 8sj;t*N`jKrT-EǣF i,d^D}aRSo{J8/gI[DLl;zti6?-VjJ3z<} Sa (?h9`᱗sbrNwSXYRֶP bBb7/'}I0T ~tM==ků Y ( ʜ`-&\z6pyL)hr|&!["0#7gA%)N# c$NYYBnkmQM[$@(bmcߚ+Lg6G Z&|r}yjGɡqiъͥdHrh%&Yk* xY*\hc80:͇AlDH+Zu՗K5CwЎg}KcO O&(I-Sc Y__y,W()0kT@Gl] PF&-NlhΒ7J_S @\ҥ9zl4 |0 ]*Z[rw2>; `Vu[)߮gQSM"VA5zL5O74Bfn0,-QT"xoI"$0ZXd m̀s2@72(Ia B# 'dY,Q,>U;rvgB 'SH @  x( y X(boH۟Gxt riePfkK2i& IVø]0N&հ|'eІ]0N10U9X'h`53$8ilJ4E!ZJ)F3H&ZH瞃UL P$Jަ`\Z31;=ԀRLCt5BU m:l1\+WRnw0[&@xI(ƺ P'yB) Ι(ou =` 7@< %q=ZlYX@쨩7,':-X5d&PVoPbcǼB R VkW8jf4fa dTC,N*Zs/4=9~ @25(Aj HmY|+5(Bzq _5ת7E `ݩx !Q(sq#d!xj1TcpA9Tᘅ!4Y 4?JDq3 ^mtVBヘ @*nEQG&J<1Yـ` ?'Sμ3덟D&Wr{D7Vf .;#p >Z4̶- PXդ)~:umm9LJQRO9|2յ)V2bɺ mB.d(krrG3F.pK;k43 D І! C mm&-q,cXy6j@<\* |jF!#* B  a\ qRF=PvH`"NЀb1P%qQ92-U{As~Bs$(HӤF`"(UǞzŃT`B aU(Z`!A샘 \Z#P9adc.P{ASZ Yu5gA9j)xS d24 _ χ|D¸V7vC7mwB!gXdV!<1Ԅ%c\LBy\Cwl57H\Dn;8k"p%1wm7hXIx,w+-<=Xw<(`0 fFE?c6d(vL""z[џ88ADH (|X68),yzyAB9"vX#.k |[ˁC!.x InJO_0@S}ĆA\"ogc1 ɯt_2$DAR3+wM 52CxOg&йB*jZ&aI0>H(L`h@6<Pak>x16Uo:Wl17fvAxi (yC`6J'Rl+B,J8dVU|.`Ӈ|hQ"=Oa2ls;r[bō7LuNi,+Pk]~agU;FylVQs&DGUz|<2KihUv0gh|LtgB8|{tAjI8`J6@/Mz6)4,m-@i˔[{D.HQhz7*-hoB/D:\DS|2#{N:eztVYXɢkx¹8+x\ªz}AZG /| ysx |RV͌~G<ԅՠ%`Z]Bzaфq$zľ- dǴ5;ͯaZ!]KQ2/JR }PBshA6zo"Iѵ\PLb `7wItKJ l7/cif@U D)sFW&KQj"IJZ IT$F;Js6bmg j,mxQG(030C: ѴQtQjh  aqXה B͋zd1ru ǀpۺu1( YTsId8E3~gS V$ٯȚǻx(Օ{c 7)|ʳ,;A*% : p+Rö1+OXpA41a6 {%l`Ye*5߭.VB60G̏'DHܿ~TY M(wz ~yFG`> /ꮟڴ@Ax"<$& %}x 4ng 8N,:O/:߾{'T(,FG 7@D( _phuܒz頇lKBg%' txYKA:Uke⋏_$2U"dRϯPySNZyI: JN*h=Sv;Є4a8\U{[nB.Ů@DG}pG @e- f% J͐ڔRDh}@M3D͐"5,&'A^m/z # p'>40 nx:‚K'{ y"#~[yP{ͤ<֟@Њ~&Lqje_|l^qRP9)E|4`XDiNDlPz7J@LQhL@4c81e`֠h.B %ƭW]fHd{Ŷ~5G$Uܫ%@(,Iwp* O52<0oe#tlcc7k*ō_| 2u { _I-ImH4?%T8̞}ȵ;'.4qzӷ{E_x0AS'k>ʜ~,{vz˛_sߙo`h # X{>?I/^2₹xa>)Xs; ]1bO@ UШu*~(4%;:^v3D@LNYږ0Úp?g!r\.k@ytQpIXTEZY}}T0;d_T@@fmvDAL0S^E+|&5^{\hˢ|\1r'Gg7` _֕xs=0+'ɉd%:LCbcVD=V p2-17$g7`ʹ=2 <4$CR7oGq P,A+TA}/ BJlԜA[qƞ|o~R;E`j {H8 ?!Ůlca>(X.u7! T{7797GSV&N O r޺3_<#u(]"H2nduvCšEK\3h_ d@,Krkv1# 1L|5ї͙vv&Ӯ+vf1 \CŶnzdO§2@ dY>D8_ߙ]eن]x4q=)֎񍄸CW}]ْЍpP˳$u2i݅RL7 F]h- ق*Yp $]8 G()bV &Vn?V-H|@'DP*,E eـD]ƧnaRr_!1^I0=r߹n-zY]:πv3_F@RBQ/-~Y b˴ڷ׃Қ.e\ua^]-(ׄV&茁o*dZ\@EבCLw+q.Bee-S?l4F/7 @)4)b73q\1ɴR[ѹ 0(MHr vZ1hoPI,젼6XszM:uX1f8d}(fXXElWL̳Èf.t%J}H ax_yqݽŗJ5h&2P3 MYҭ,2Fp c$s$t#0ᡉw"_F0~}(^4'$):R?SS ʯ۠"*()\-b"N& ә`|`-ow$etz.Mg(hc5lB3j8`(T֗S h 8f-UXj*{72TClr@׋؉V# ;صj.`Ƥ~1 c X*)C' y6 H2PNrClߩ{9BocxћWn4::—bZb#v  daɈI!ljZ@[(j]@AemQ|+@#?s`H3fDǟ :1g p5bkC!]}RY>*ty5 x>Ad[ |?3F8 9B_PZqĂ(D_ At-@5} ssmOw&2Ds2L36ІC,2g`{efX9=6>xW@Z/ Bg_kg`f[۲۲8 3 "Td?\@l< C Vh,dTy+@F("` EF( vTfZ7ց ID$h?Ipx[kgi.DН oy e(IwG\=cʋ+J#Hmd +D!=]wz0 @m`RI?H>]L}ΐ~9SXŘØXDڂ8a^ѩx(@%T̀꣔I>{0Nπ^l&Ybq״0r4d;*ˣEvD$q35@(m;D' V>P9!p)ځh=ԽIGUWBPKIxy& n BX *k4_8@:ַfyPYiSsws9u KQl[}x&o+庝i` u'X rV;[/&~[oQt/䀒frMFHο@)0Q"Oe=ӱ&biw2Xc؋p ߌm0 uO:q BᘛHrF?Qw´fXe'H!bl?B_2~ ǸH2@Q\P>u3=eAڀpDE. <+L&<쐚R b (.as% 3؇4.߈ <@\\PQ D~CʀlfH9by-Wo@ژ1lF1̰ αrei;YA[?gܫ"F6-K&E;Jx!D M^O`Pz t}he1ySZ%7PXf!`ZI>F߯:8hð6A׊~GGld60BdOKODE,a}o`G2w%5{J* 6W!]H6*/h~82~8Q¯N. qD~!Ԣ ]? (K  `HzȀG}SiT?CS%_C'6ECOXMH2U==D`UN秠.cST>)1IzDn ŮD[t6`l$)/T6Pa$|-]Y&Fg"b4# mNA/g`c#F(sUk(X>G3_gP93HѿBf>E`mvy!IX?d;2_T/ɊŸ_HW1ljTZK0Sa3op=p% "5)oNCz@y/ַ@laP\sJr6t, ]сw1"{:~:"Unw* ̧4|ʎ|( OܾUl#:RpL\!`5F;upZxm-F{n@K|M.3 lz4aFZs }ka(9VE-s ELټZ>h M,hR BNx1.'*LyᙔTÊC҆K1Ρ VΨV<{6A7=RYkR ,"7̶Q{Mu*RkO3ejDcDzh,<9@%e\BZ/౛{.u!)ڈT ;`u46Xz 7q}u@XraY7G5BFVK8J$$xh~Wԍb  D3<<*_Q0HjNE>Y-O^Y1@ea? 6{Q ,ix8"`~ph:`ς"-g9) }0d»;+ E62[eȵ|OV>UeMK x`cFBaA.@) S C>d#0tcozgaӋMT"&8G!J6 ԩr19rg cpt$趒2/X#gҰ٦G5#PВ5lA!;RsŁJ`Eko+gc+HhXSzoAFр74Yi/yX-Ҥ{ T5r2d#^-JƀaJF~U@L|` p- p=٠;ܰEG 0wvzsx^$@-&-p.nGl`4Ɛ ?R -H;@ @ ī# Xjp8y9?^n*#@8߃lۗX]yBۑ ZZnTV&/":bEYAF[8Gݶ lMMR%*2J pHyKq;eō8ŧ Ab(rS#@}+ӷ*HY4 OUH0 ˎ~4v;MznҝD=c0{ 7 ނ()iܱtI}bJn( ZQwO{9EaIDD拞UL\C-'.@Dh[vb2`:8zH?8XIPԭ(>~;+}z/F{=yғqbuW~ZE>::vo}1g!!v@*` }{Ӝ2) TI铳Kx_5 W;ӌ@.mU{VkѮ^l8h္UCHw`~i~ћz)uATiq ṱ\KԋEd1{jϪ/_2C@F(.vh?N'`E;aq/&sR pXgӢ;+¯efWo.Ļ#+TxQ 'FEiPίZZxO@}$-b=8iX@@aLCDXޑ:&o65i1XV`0"{|̣r \e`Ye1Χ ;ֲ| șL8g^Bvq4\nK&oւ+bJxtj_>OZ!x"& Ct2m<[|$9q!{UC  -2jY;d(@#MOY"6IJ9%:rpb(d^P M/Dyڄg4QԠmQ `?< 8*i rھm3R@1eh΋fv;2x$ʜQ5i6*ZZ-| 5[-E\D[-$jqK/ny:P];v(E!j@")Ti'.AW#@_"56#X!UP"P]mck(;*Cm<őX@w?+Kg{[(dͺA3_:pH3Gpz#e ujȀWnnQߢ20˯D\hzaDz"a~9 AhJ̹vnaՅs.?gӥ{WvW&Ӧ. dS@-C ~{#a H/ 6HDp!"ZXNx߈ɸJSGlA^r5'@[ ,vmVV\똡ԭTvav,}}kqM+pŤ=]7b74 Y5&ZJojfLd<+@%Cb?ni2^8 +i׭PPGVMN1j DH#gpz ?eRT|' i`Ex.e@"^H(ko e5{CXᏛ7p"N8 !Пm(@k)S@9 1>9@$4yl$UW"!_+iNu]ߝ@P XO@dJ%8a7Q&bx Je᧘ @D`1@ID ր jmT(F08 Cc&!@G4')+$;-5_b'‘%|8Fu7H{HcN$K" 2 uh!bD iW@DP`_gLc&(p8SUBH_\ {P20nxgnaڻlC`-A k &'`6l,dr-T@$ jIcq> 6O$JDĶ nF3O85^[<8e tL #(_9 $O fh8GL5r'gй-EhjY:M?5z7p&*Ĕw-/7h Ƌ :qч{x"e S@.:mE>SA94EٷoY#CAaB4 µJ2.DE cTvgtAl!Ф#5֡Q &aqyCޤO7= u_5)PzI }pcc+ZPɫba֙8D$55iNljeU0 󵅺-- p2"$0-'d+|BwD/EBd4 Na̶؟֡\rGwҼM@KfEXR L!dE0 ߎs%RELu3j@Rf-!  dX/7o 8q?:_ 7upoϸu@X dX/fX/Լ9ݢȀ@Iunɓ׹?`m T 6{q?:_ 7u $1FFBOsF>]F*͎k3b0Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxcQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx1 dX/7o 8q?:__zGpo@6`mX S }HH+Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxAm1s+UP|Ax2IS'*}*,f)jSӕ'17#Єj)3*oQ`zaJTNE2bu,Y}X"'u<}.+J4pWc&YdZ(ÐHkp뎞>g@D*^IJWyggf8L!Pmg@g)-<janR 4c&.fAw45v-plV[9x?^}Vjt`,ldXh0%?X)8-ϛ#p dX/7o 8q?:_ 7upo@6( Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx5Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ dX/7o 8q?:`Fpo@6`mXQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ dT*Օ@f?]f59 vkaFjSY͜hF0Qlvd5[)ٍfkv]}A`[@>COݹ r@܁K`! )2#7ঋȀ~cۊCvt'eL2 e%:2;7m-m|mͭ^FMHͺ:\#T$K10#ܬuݱc92]yeZ\"K'MQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxUQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx dX/7o 8q?:`Fpo@6`mXQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx `Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ ( `a`@" 1Zn +b#YҦ% x GFaj N$(A +h f#cc]c{VPA#{8VdWjG6 kQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ d PHH8?3!&-U ko?_o23o 8q?:_ +! uG US?y9nSBn~CK>wPoz 3 dX/w`iF3Mڍlf59 vkaFjSY͜hF0Qj.ʰ uq dX/m 6j6CU͘lh5E1Ҍfc!Mfk6s[iF3Mڍlf3 q dX/m 6j6CU͘lh5E1Ҍfc!Mfk6s[iF3Mڍlf3 q dX/m 6j6CU͘lh5E1Ҍfc!Mfk6s[iF3Mڍlf3 =q dX/m 6j6CU͘lh5E1Ҍfc!Mfk6s[iF3Mڍlf3 q dX/m 6j6CU͘lh5E1Ҍfc!Mfk6s[iF3Mڍlf3 q dX/m 6j6CU͘lh5E1Ҍfc!Mfk6s[iF3Mڍlf3@  `a`ߠ"`3\CK#Dۋղ)H6g ͨ=mDr(#\hTKm{^A/xr x#=% >jG{We=PZRg;! ީǴ @@ @"`p2P`w @"3aj†@;h 0 a]}DnAH>Dr(#\hT\hT  G#p^JU=V À@|y 19`j0Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxsQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx;Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx}Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxAQ`+#u飺$ܪ]6 CjY>F2!{K?aB$W+Wiu |ThD =4i  *&/7 G-H S͠LH h0<α0UNTu:`w%MȁfbCAI+CTNigTl&2ڶqZۻyq~Iя?&0T{M:DxKa֊Y;`l)SsKoH#w㸥>:`BmBx;G; ^u?riڽQ dX/;d5[)ٍfkv]Zm(iWB5!Mfk6s[iF3Mڍlf59EQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxPQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx[ dX/7o 8rX2/o 8q?:_ 7@`a`ߠ" W'Q6l r@R=8kokmmld+f:3Mt(BhbH # ߀i8J=1Eʹ9MIs0Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA8dbByz@6`mnRfLL'F);\™ ~`m?_P Ě\("P*@3TIUZI@@?NOK6t6҃GUm*@UR=A~{q`]N#~" |)A&XF dS lPz_={豈V턎mld+f#cņKjyQcs&jNǒ V?&}GWǑTLU5P!qPQ ډf/K|qOm.0fj ]7ې^WBB1tK|>w|54pb`!+cdd EtK˯7,OuL;C.n-rw`,7x$@~O!Ѝfl@0@ w#h*@pH |TVYi.6A qdX/;d5[)ٍfkv]Zm(i7cMk`QN 툈 WքGɝGVwWLԂ sPu͘lh5E1Ҍfc!Mfk6s[ .tOwHn6E &r{. yn J i%` 'LH?M6샟cѱG|9Oo/{XW1Y8gcb&?&iC04'䜂MLJ b8Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxcQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx+ dX/7o 8qCXn*p }`m?pmQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@5 `a`ߠ" 1n,Z~M[ B-m|cfpڃm|$QL =U\WR}h_@ȰGAD ͶFVYO',Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@d` -fƽR @ o 8tG%5_U٦{@6`m0~yQ6lӌΉxV$u[,{YUes)[o\2m ; +d[~ʕĚeh.9~Kw[ =w͙{u1E\@Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ d`՜~~ Ri lƳg5A-~ь6c4 L|c0@[N-7$Kl˃U>FjSY͜hF0Qlvd5[)ٍfh/!S&?{c'P5 *&C枒)t2~ y*E nm劏 lҜz8l{=IQ@~p KQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA dltsƀ"-lvd5[)ٍfkv]ZHEKzAq[JQy*q>Ҏd V)^_ؘ Vk6cYݠmhJ1mle51GA#6H5yW~;r>{[b(`4JfVpm Z|݃rKYvI`W7oeP8|=eb"; ]x w[)kuA!`URh ;74jC6l r@R=8d;mh(jc 0ٲ >GPz}oI"\z0ZeB†Gi%52q/!g KsT`?PHj7xꅚ"m>4·-.h7K7mަց%BhKgNlB򞺺GXց-[r=pѭ~:t'FXZ [n+뺠".̱KˑQ`[8@S)NLJM] <ܷ*:eZdjnLVv!C42*jW}$W}"ug0 |Յ 6b|+\@3d+]OʛJٮ5X.?nj SFfknZj*FbB6{*_M6ؐ/xM~iJQ%ցy@({gO6<g;"[ nSBv^DF5s ``)Uri 7s<_ge*<O[ "bv:y9$/j,1X/'+ 9bS ĭA]E;($O[ KQjE?{(vdȑ&?_[ G%M2MHRžӉu_a/P28_{)X9N /ա0碨:3B+\ EJ!(o?2d ,EƄ3v"rx0H(#;a; :ތ9L;E2FVxEhd΢2yFzC"ׂcx)W7 J@Y0Edr!{) Thj7!Ԅ/.s#S4ZC6W7 8m֔%̥\k2ηS"Gҏߜל%xw'KEFMmssq| dKJcjPHR7#CRróus~pA&Epn<PݷNHQSj8mҪGvxXS5 ۾Ƃ3zGSp9f᷃}䣡ruuߑΜ%ȑʫ$75ʅ`S"GҐq]'o3q7 :ouahf%xMk8]xX搑#$2NP tPu"Lè]nou >osn/2@fT5H[[|r E7 JpJ*a:dIz,_$}0{BGPpKU 렷ʰo{'bЖ)v1S_>%8m+eHnMXt~PQg|o|Q*ȑw k Hep^0T@DLPQ:/*ȑw 0髞SP;ٱrGݗ&W 6W7 3 kͮsO%N4*(R}!o&Jm6!mM)%6#ћF#hbD%ַp;|:ØMaVpa_c| 7$"!7)[}Δ$Z|*|#O(.qEN- Y+m냀W v\O0hͩ.Rf3+vTp{osN] 00G 2TL\ڒ2[;t _ť`8"P~o灎d] *i,Hhf3@Dtqךuy{f ;'ⷿM߄E K:2 .ꙫ5ڰyK6Q3$\wͰ x7niy}ԹƼe@ʲlKQX-՜z WdJ c!ENѥ" b h-j]BgUܪʺwhd04g"F05[ޟ4,3unDvun]KPeءL])fԠ> 5cV%7{ی=&}j&BQfT]ǧqAIRe}ET#'n.$- mVzzHrhY`:'L]V p8ega  0=s08` h5L[x6.g "#pJA{1)6TH ?hyiF|D Q0XZ."qu0a2X4Un  TQ2z ky}zɅ\S|3huY[Cg!Rx\w3tgotd f52S=r C `x|8 1|9"Okb Aef\dԢmK7+u0 ؉q!ar F}E ۚZަ6Rn,@N1xuhK }G/AQOՄ1\dY]]gWmIN%-he0L߀9~s,]Հ߰Z$Xu9F}%6"-Ji=Q}mS{.~iSCOT|R I* /8 n)*E2@$2KGUMDѦwA |v'm9Heǡ8oi3hF"F(kMP^!FՇ^8zWV5"Ǡ".v "'/d?oGa{.Rg|8#>~jrMbbCoʜ4 ʦ2uX\ݝ~@`-L:%Fq@! &F c+kҳ\a!䑊s4mVV>ݣk-_+eNwMv$ x p],rd$V֩RyV%!l?tB!_\ yv?AdddFAV`QСwIzPVG&< ,ahffE(|L n zdf`*eX;*D 0O3`HV¹? FJ Z Sg9"M&o3,g$A},K(ej_H0uࡸx*A p-2{`Z  x&v2π-8`[@Da6%b]DIA=`< p!Min~'&y .do@E[yGM oH@>D"Wѓ'/r^ [uW@$W@Ҡ *  4ω hO nt gAl e']4 TxYي5-eL:LwPM)$1:ya2lHM$%A[]j>diΏ5TOc?!`8`ja(<>Sz@D\H&Z[|M#!E@-]P7zݒt,e&bƐ #w Of;ͷ*"NÁ&uVqXlZ{=U9$.`(@ hU+f+xDx d{:,@@H ƓSޙ3T S'w@g+p!E7Z sj@!| jwC#%|dxhS~z&Y; Ǎ! 7?^BYZz4EZ<\z&QSXqNњ-чF梐}@Z'AGIJH4" xT XչL -fg`&bi[0`I-~5ߏ#w$|H@v~'W>+f.kRΕ?~ ]&Y1l=&A<'8f7k [wM4ahYq .PKAo2*2$@O@3IVp^l=/h SűPC7OW'd˫A'P R x0; ]Z@-nAsTbŝEY ?Ԋr ]4}Pľ +kez^MsVҬ ܀}n:܏jbxCPne4 \sYIbSp;jZpġ;_>6dSDTA"Pd`AjbRo等tjxyٰoQC [\U[5)4>`*GbVf|Ğz!Clioљ2:e ZɨЖ E;<+'QLjQʀh SmnV)0EtiȘ%WxAѸ%`{cXԑz,*Z&So.Ft@27yasf:Iݮo錜^ \ثOI%x?fF$N%P[VZ,5FŃ=tL/T'Fj`&* Ț38.؇AhO UH&򿙭i|CU3\b˫ 2ERt$$"譇hQTJLGS|V`љET}ԓ>ifRPϵ!f{ox+5kD0LdfZxMB+@=8|lbp5/QIP"=OM{%(ű _ı5\/!`.?:^d x`-UI`\)PE ;W$Lڋk%>|:$}:Pch`f 3` 8g; =mGr`U{b(6G1@do 8%ei1y|OioH,ygɰ}p`VOiPz4r%et$+&)؀CggZY!iԖ(d9r i^%~&)j,ZL71v)E ?SU}Ev~eڠ42ʌSwSޡmkHh_@ c Bջ*{GyHN[XOK;xj>ߠ/Hz'b𙬑2PQ?D\TlDg皪ϣ{81@͸MeVteP' ,l+RyGφv&bрٶ8o|EB(=Hy,v'Vd"+nA%EC҃xaYOf EMxzܷ3W yI/>8TK^ vz]WǂCՓKkv@NdDsU]Xv2H`bs LRjXMp=aEb`z=vAqit 8Uz9z4{Lj?NOTz;yC fPJFP'gs ;]U2Fc@ޥ }jePj25/՟F]؝B1spRR(ţعTo}SF/(+tc SKBoBjw`L3=׃@j%c](:P/v `$D@CPG._T\ZHX,̀jO2l`HF wO0zoqO@d"`<9z#9|(~\D_K)o $I󻧜!1& 8E^6٬\5^kf**BVI% ,-=J<ܖV }?8"Ж.C'8otU Sl 1@+7ݭ "1'| (*AAbF(R+ItgAZ8mp*6c{X}3:^eVZAmԨ-@G*8~Q׈'݆[ a! h>@,T"*}D| =h0 ]}c'`Rł(DfI@(irdoR &qйb _@P[佴FAu6L`?\sEs` M( J 1ݙr|h7:+6BbkmӕP,&S}s}DLV _IdB?Lk wH6H%&PTJ) GLF:RkL NHXdO=þiSc!Yb2W i~UP; +ugúF0/ ?t@P\ ;K˸fpURQE 5-/Y6]Nj2X)  P}dLGMc)<}]4Tb HP5+@xjm0'[с:eS_ Ȁ 0zptNTP=:ʥAL ݘf>hg@!K6PQ"{ M@bHKw׋hc`B/,2L7|&JDuQ"B;q !TC u"-D_|πNm h`'0[ f6Rb5AYb@@E*%ybh!IaF鍺seڛ5SH¨l`2#.ވ'n iVB(H61z5+C/X>4; ]@AH6) J RTH$Hˣ>XJseGb+ʬ+i\rێ5(B*>M99\x<z-UͮU"5zspl%Av8\01(цi,J,d@1`"Y$hVZ#۟ߠ +N؎e 8`F7.lg|wN ^a0 |P4L])Y8|G UHr!; 2WFFnzO[2&ƮH7h;vNtazGq `,MaSHr'v!Ü]XFLn x6#2^]v898bQ5"HH PNЉQPtA|ɸs{{ -5zė='+U+]C C=+;`y2,2W&Q}p}PT-3\BSI6Cyi,sLH{uf/j, zy^bl6"f *v(P9{w^'"pMV+}ȧMkyTR7S|6lLjnno;5P(uи(߁U4k'fdL-p-b2ٽ1m#WOÂv P 0خVO"as:̖!*E~mG-1}F.8`ij?~/GDőFQmP͞R2pP >)>rC X *CE|!L,dT{j*h, A>QdEYbH''<"^g.b?IФlw-&RG۟p]0,e1Bmɢ9DE4W8ʝ ^ H=_)DG TөV$q6$ :y񎐆- ǭsalS$B'H?75(x X&#Hn79xkaᲠ9rK95VK|k]Wx824H,/=+5~[9T1a9\}Zs' ,%ΉFiz -YWL8 wԭ3b0I,=cΨBziHF1]n0FRGVoh@8N_`P @IG;ZlwPaՍ=3#\ -]H-Ue~J жTgnCR0|'I]:Z?ݍp3 Fl74fYB>vHc~A aog+i*_= 2muFIkLBW"MQfۿhI*NHZw.OX0r ;pl]}}k W69K ~t/0>h#A< i1!+o'V`k5lb .[;;x dW4Vx `25KA8 N""EEZ_< V-i!#e%Gم[ϜX^rF(pZ2#p'$3S1CIO{8iw!i{ h0QtV#׀ʸ !TB;Fڈ:^ `KaKIb~%P۶#HI\b~X.;5lmNrY]$ Cd/p)M=:)OqAn.Z#0 GtKL j-°'CFA?!i@pXTI>X/><" u26$1G6j(Ο7\S)YFXsכꂀ1 hM~@Ty]gpj<Pk='^|~0lp yԎb烂tIjR(ABgQ,]Wp'V>A{߮t{ uِ̞ˆrCwsgWP$gHDa2@Ǒ z s.5QeN@΀ PtK,wxƧe0e W*|+L gpaXFRT$mPkl:@zBH{y>3]U+/.cPT1OdB`lC /  fW*|殀6=0+N ( J )X^ rf903r>sL7|wh i,dpsh`[:1ZhA d(0S,3_-1 "1ap+HAj3Cs M) DrGhfH( )@n(ǠB܁(+ ڎ6@7G~5ʀ"^t1RnG n.&eatIQ$GvufƐ1@?x|@$B6@4UP%2S$B6iΥR$ˆPҤJHaB;"0:kf~zPx3qs >ܡfЭīg+~ibgqNG쒭@Y^42B0/#PL/akY;Lφ};iY<ƹ^6 #W-@orRC&9BvB7WGU^ 0}~U>ēf]XBSrȒu0qK-Xj@%š%c!B{b݄F j#0X 8m؛7zʘƱ}*?⩼3/D9"Qh $G;pmK wG3VԝW 2Gf.wVzhT-]M Y>4/w٭ eл^բA@D4THo6U[HRlfZai}3c[3n: uqcړiJ,=9ʊ%(uLp {_|7'G* G]DyNu $C'`>P 4$~)k `"^*ֶaTiRS-B}}jpl=O6 -8rຄtJ̸~p MM3Vs9L(-0ؽ&%:9-e0JϙqIADh`ژw"I Fe-4;I@AfHӄo{걸4*"?xL XL $6RUpKM'aXkNP: eg.ɍBn7X˸5 6}XzZWo> ,D?d('g?a [L*J0b l`m Iۑ_c˰,0Lh Yd s`bp0݇17 ^eOӠ  c *|- {Ǹq8u̘M!tHE Ccxv^M!I @~ Y,Ч1ۃ}9 8=e`.s}3[;(N1L `P vDD>d;̓Bȝkl,[etƮ(Ά \3W>*WqK''wkX83RD /Gڬ%\^I6ALx3 >:enÁh1g3ojz,1v:'*O\y<4w0 |G]2fEx]P @ ؠG: YZ[ ^l8qG!s@$t yhgj;t'7.uu!:>u&(Uǐ0X.0ˀ2^ihy[d0.^Q  O̓[X/{r7|jEoТW\(M?j\oAj Up*d^JG TCP zK<9- fǒ|g8'}<\<:E}&\W)6|Yb\ :AdEzG8 uvnLI _dPjL[QVeb^@'B,"4dm{UZԝ2^<+bX'FG#QX *@Vp)lUE|!ؽmI&Opu8RW{YP@ U/\߈րlzv.|ҙ6RC6 4 :"qP%. G'69 JL'+Z r['wr4ސusD4;TDG'`Y Qj>A!SASt$9[M8р*o; b% `L"lfe7*r(J'aW@ 쯧nI`g I.;]0OoN`K&D&8[ "A`N×VKyo XLW8VVYb= a囫 @-ûu, BPkHPp3FKpzFRmWh2*u{@ 9!+&6P1a>&s H0`>0$5N`rQ`z@I WMpLV? wOhp%kJ`W)C1bdVo ? 2ESgC}Z6?}؉h(8>f$`LZ!- O෦?u˷6E/Hj,9ܲngŠj MN_%{PQ/~r(~&O2"aǻ٠д1GP@- AK~YxI}{!b)$>_cI( 8Cq2JjV"aG0hXy BCduxKٴ-3e0'yʽJ$rg&t—4LM?99BŘ*k 2{Ӓ(+ ]LZ$'Y!b`iJur/)b-tLvdSΖ"pqkk u 1ZP-IG_&Q-@KY  _e 1}\,\9:TS~ޔQIQƾ%( d fXZ @9 @R(H/Rm\9bRKGDse-q ʻ7WT ?HŃ,{} ;bJrw4(@F9x6dJ5H_0NTͿY01"T `{?d@ 00 & <dn$X s BHh]% "ھ;>:R/TK,;#.|ÁZYվL!kW(EmڞgB[@qٯuzAtbN%D6 :|?Bhon`n\|i D`}N`Wyړ ̰(ASoȷY hYz}xw,CB (t<&xG#ƥɣ(L g&JÓIDm9!V* yl~nFW\@t¸)7L@^](AKj" &PDe"hx ]`r#dՓ)emo \,r.A?y8AY{S{z$[8LRcJJ `J+iCqhp@P'upb>Qz0v ȰW:l-xЕ &_w `+49"z-LS<{؁)1|eu#0'. U *܍OɁRP:-ir v} Ƀ!4,A8D|U \z.lqP/-} m ?pdmkhTPq`$O#9  !`D*B?zF "2@ڱ UZ8(p7@kXHXKP@vH ֔ ͐<(}BҰc, 0rLI**rh( s b7(;QB' >}@I@(~l@J`90^ˁb قa9'. 6p`D' )}v`/yvޒax3}̄$t8A 0Ѐm4@$~U sps[DAKQ =naGT#W쳆8@X#d l] IC#c ⵜ EҼ_@@Q̂6|Ҍ`Rw;m\=LhN!@08n=0-8 ru|iP-ŁX Z{?u  H #?]`3Z lѪҀI8'n;ӆY)} 4"; (Wh/@т&eNƝC`E<.!- 9LIţv(7$c(6kڔhu^/^ $AOu+`Ywv@HotHs=$$N! `b||U$0XݓD NC @ GCav b7|+(klUp{|/L ` ,1" g/@pi_!5Bnڝm'|;iQ`R$ ~>b$@+~JHvUU\SL h&sG?\:3Ǒ#^TϘEXq[Kjdr8*kmnqD^]w-qQ.iəCQM<_A!h50xpNKDD=uxR_lBQ=dp0n3!Q }^N8E C)é;抿׆d?>#rU2)W*j(@ HmA. .c~9zh:x ͪ4 CT@ $kr N@Cn=L^ɐ  ;YlWφ } kT7&^uU H^ӭV@7 Qk'lfasN *hNoȐQc8`Xpiya`9"i'hrp{t )4W62og'S/ Ӡf9V3;%i [@}&ɖyqEcJ`;ฎ> ;ʮuCkhꩄK+U⥌$~ @+( I"7;(v(-I@W'p cHG/ͯ.X"19}>g0.ce*'HxlB$ Aa[XB\q!^ny$;Pf+V-x.J@ SKſkQ~j#8`aG0| Oq }D ''o\ZXE[Ft&THH`glB3xYC 12ʃWtN,[ ҹ;J!0>䍠uS[()?fx@ XQ^B4+m dKpUΙ*"3,;eD#a0vp(=(\F\fu| [DrIZbF!'D-z20i) 6$&{@]@0A(`[$aIxO2ѼSI("aHa*.X=i0S4+Bhz@ C@K:a0n (HMX6(ᇉ'yE^& @ LL7W'pfnFN&0@.:n@xD܀+" Bnp7.r_碹$< x&Pyy/{\ 0j(z00$T2'0EOŏem'LXi bĐ0p ?@) uU! v*:O 4:c% UYQC54B A P3 ɯfoղM ?E (ELvaS|_@c9@jfMb z/@Tc *b yp ).$(5\ ࠛ 4 H ^:1!:jq($V#-$ĩF4y}UKKe01*ǰ'Yr)!pn'ћ b, pXXD`%z8Z.]GTaR,S U; -4'÷R w`0{wwED@-!y=™5`trEp= !a S-4l>uaND#% wmXXP= Z~;Ŕ` cvs0 @g@5pd \$dM7i"V 170cݭH`nj2b@V@0 f `1 ,q0@6jȌ2@*ح&Zwc:`ǘ4T̆0S{:h2j) 5G$.#>j> 2oPmknuZQKx)dLp׽G|L19lH$7E\JNju%'2X[qΔ!S0h)kʉ  t 0*nh:;``N٫h  /`0oqc :J& bX( dkH߱D }4= LڧJv#(kY@P`yg {*R^L~!n6`JPP*Gf@)XGR6 Ep(btn_>E xxh `A&܀NU¹xiX`н"HX90>Fx Ц~` L! pCԁ$ d}:/-W{|lVUhBPUږrP_7KHbs7=XG @ll#1+DDDL\DG >dP0n[oQzEQ|AKS k`.gMQH%B$ȸƃql~Un0wZq:kY09h%ŭ@:1+Aic-)z2&E*.7xϮ7NU7v%3R/-)Ժ[Bu/@;^989e{=yaP\T4QыjX^ "wylLx 1I sPvw`lM63 8.MyusL2@!FX/00ːxc?P@3'y'| B@j!\J݀gSYP|y8p$(zQYh%Iv{XiaC p'y&[ ̜#"1NjC8'A@s>ݍe0,ӭҙg&l/d0 &E0оq@vz |A+(@;@ MJ k  .tMsvp).//o L~f!u4;f6Ve*G$zs?*W\#}a,c^|AH qdkϛ12D+Mi \W`izfq?Ȯv=9^/+-7?n'Wba{ _o 8n$+ 43%l)`*h쇺aO=h־1mCZ@RpJVcK#p.Ya۱N5G Cv凂+nMxLk@4Ů*6iBĐ|;&)P}/ B ArMd u5JaÂ0X5 7O$ UOG suZ5ȵ!8Gq- ,E;׳$AfP`QbɕS(D Q@(D Q@( 0D rȁAn̈ȁ#=2 aR RBBx$I f6@H`$E S"&@hN'R+9 @ˠPRpjFc Dj'bcrB_ hH "]?Ax:8bw@A\fYY<0p?krDwo%0f`AdX/7o 8{sgwr]|ⅈnxXa߃" 誠M_`msE ;D9Mo9@G*|!klE隺kY9[!YE%&p~/b]wU;*E@3/o tۄOzF Qqz"D^m`oazDK#@Ͻj}QENo8Q?SFFK?Y_G~Y?z_ wn`?=~?Kx_t~o'?=oW???nR5ŧ&7^2=% akVՑ}Z Qց%fη ΙPR)jW9<'<(k P~Gbj0$L%REɜ+e]Z=Z zhhEQ& rZP,jNߏÖA[G=x#VOhTPy_\p jRP dc_Z1+ɽCKIpr lhif[U @6ز̶|2z|,%v; m,` [iꘞD*`. cxU.`6– jdžaWk/(k*Z('MȞ=nZk%C$Ly n* @` *PDwn{uDHids[e$^]ߌ"1r9Dɋzag&,b]ɀ##k#aNʑSERPLvFe#ɻuYr- ZLo Ƌ6(p}r!~:r7nadhvfͣ,,g-v3Oz,^lF >9K $ԠIdIJͪ y5om(y6iBIV SE2y; By7Ef1$I6}n*ޤUه|Ի awc+4͕ڐMڕ 1~!%\` TӌKU~5(}p ^q^I/_!)FĀNB&#6(ӹ&ɴGײ^un͎KV9^H g0VŦ#_F IG8Ps=ʈ2gq:`,e2 A?1I!/G329MkH Y-jd4Xli`ղ|BM6ty9:M}DKXH'_ >_DkKۦÊ݈J&SP֑MIKf hlhKjD!Cق ,jWhG)Q5\ʄ!>%JGj4D J{c (ﴛKh ݶc^Ϲ.;Gna0c#ڔ]]`MtD_,RԹߞ'0){ P#z1|a6nlKZl87`{qW*o[ W $5=&^o:iP6x4!yqWSnZ[.NٕKXJlE+1l?6ȥh&\o /ϥ?rHf̵{tz‰p4'{0P I"#uDLSu#mT{+6 .M ʢ)YΈhÖ"w{B 7ϖ ꟼ ;Hhcg?ށ)mLp?1Ae3CvLUXw,M|D.EͶ" eCp"*$a Pj NGB XwqPOQa 9F)*k]4.l4b`u- As!:p$GYa %F昽g 1Q%ۆ[,[Ibzr 'U |e$aG:׃^?y9KG$ҕsP;0# -K KW#ĵ F^18lm\ꩥH5ޒh|; S%rH+s}%PK)I`b[(d~ϯ>,2W,̇r_$Jw!nBu8Gefi!]s2 ;*$^ 7 ďO^I@2;v)hMK%3-%fb1/UA,'o+B"`ԕ &JtKAI?@QpdT$Ӂ` vVI8tiuy֩I$vX8g@NLUY%*e`ʩx$ _dG-21@6wXVy_ųBu,`yy*@&J@Kz{l!ha<'R& uד 0`(]`eSrͅJGxS6ں7|xrW DY zEElCw&؇f-<{b)5TXQ6emPâFʈC^6m'˫0+Yū zD!BJ8R t5"زP|H֫L!iZKlEG-Zw{PLe{ հ{m[ԭ=>9eaV؆A>xL ]k}YW$C!lIi|a,/)Vqӧ$wf D Ks"\ <)y @܄PjLN)A/mc;KePOq'.pG D)pMo}ZQMc%:wekbٚ:!Nꐂ9`"_- j<"V>#Т2eq N`QCDcdXu(tYssdQ31-!=?dJߛG'"6b(3.ok z';s @dZC1LOzmvYVΐOk#fSȰ) ykigH5\vx;pg֑ K 'HV=;̾p!.0K'qMTDKs!&XSjhFyɠA&I^[d Ǚ|OT/ne,f3_,Ny` F,nvx5kR<@k@e0XUi@)FV"}l=>k9kiP=>7͉,@RhXRcp䱀}OJ(K"H4[4g3ʣC[rjd|p m6H>l pz @m # L ֽL'F7[IO6;Ծ_h,VkyЭ!xN 9$`%պOyM޴%ؼhhbp0[@rldz06J<=PiqV\c]lI@Et^wEse"54p TW 0Z#E"=?eP<"޼ -:U|ߝ(Tn-g [cF3{14ưf*l_jحj2 sa6M|΀SԷ QtNAhWT'O5'% œ[)~c3^'J@X" v{K|`f̾:Q̟0sJ@JyM$/g:L/8m|8 y"x CAK7 v6@ù c>"$ߔOo&_UǖF" LA/HsR %B\<b ӚA Pݗl2*P +Q$FD_zX8 QgEz3!_D]?r^P|7w7J]&agʉ5ioY2SW $p'OJPA;ջ j_]ҝ Cm2:0\2Yn423W<) @XaP/@]Phr=)X\Hl/QH;~ͪT ố7T;̜9unL+(>_ kVڄ$B0^h`cnwS( KBrrp%~}=`XJd ! L/E1}C0xo֧E*$G:8s ɋ2}D,A{@c_AG¹" ͘&+ ㊍woУ[ȏ@KpKѠ$۫4ַj4]Q0AXI Zm~;0e}B Z\8FT첕b=$ueg@6("@ [{OQ%$@)2{Ѧ ]4ѐ` Rm1 cƑJPJb˹]^$[@QxJcf2:7sE !RĎ`ѽ9$ќ'|{c䷏{K }KkaPmv8J)ϱ0#XߍH0|WС|*5Bµ\Dh1u$qM yTfsqk31ebInj |]zۥo<.3CiL`-G04ɾiֱg}tBw) 6lziv&g};!S]`+ #=퉨f%rE( }4BS)M.ܝ uFjzGL!ejq ['Gl i>a* pYҗhF$j[Hb|_r!B Q(˳9L ߌT}tMr2N xHCEǍ5A '[/Tf$gXnj Ċܘu+Z imQ MK2f>C? 9^[ٶNL/İGVXa[qcAr8`O6z!kcb5bAйZ]4`_g$]Q& !m}/ &&?-IaxoYUw$b=~2w\XB/[ML`ݍ!XTYq oN=\n8kJLymcR6f!'i/{!S/jQ+6 z5$^&P|9bi8]Ԟ(^ rm}*S[v>:E 1GfVm7.;eq B2{7<{\^ZB]mFgUU:U~f*xS7ٞI)T)̒p9ey1dlIW0E2\#SX |*ja9dz;MQB,c50Q+'#29tg>b2$ft% )7G ʪWL*o#^NŚ" b1l{Ä́d}Ic0Yp½Pr ~(DX}9q@k!zg8ꠝIW贿0V6Y|o$Y%hRN2EHaH0(TWLH.oQʨwmy,! OA ͢(5\66lVo\إn]ޮH-`A,b?3`EGB DA4Pa]d٣L֭.Ġ>WÉ@l^.C rك0 |Ht'7 g|pL)(9M{41v:wك.=ZR3ܢ9@D>xXa X`^MjJ lA-(@ o7X\eIhT'P$: Ǡ|z@;$u@\^x`)c> D Gh_vr6mAqR%N2ܮ2vȎ>a,B82lE>HggLŸM! !sGsUiӗH e&΁E81+~i/K@&2^ ,{ ƫnO`s.AY%X0c F搄 vq Y̢[+e #{ ^LNѭteUZ4.]A|0!>$Čv+"HSuJBN)asg6YexM8z٘ Ji 9yq bSjIgqP}QM!THoW!٫$AhB@JLU|cwDEޮyUL9QMv=& [B:/L|UsgQUtL^l D#r'4rE2`:vbP ]\mBͬo;.J@ hSȍBȋEM0H 2̅0a @)IrIjʾ%"+`1$W&S%K @(f]T+xfaP _kwBhtsQIg9£<\L=L / k6NПc#Q)0:Rd 6epL#o~@# %1$P[7Æ\ͺBbΌ B$Qa5á dB?._` Y 1H(/`JVcč06SȊ'x5APճF<CO0A%g $ڤ2bGnDuZ%fD.X=Z (FTrh)Z>]WtB](KdYKJ#YN |!͈*8BJzQRRpu0Z]xp58<F jZ`([V:$PBvg/X \36ziyG< fb$f''L &JL.qN(Rұfn[ 0_ )ݝk՘Q0Y,).=ҽZp0l0"%niIPQ|$X8;eYytp0.@<~'IVE psS!{%_*?+eF ;%Rg187XH_è/aLGTx/Ra q!`@iA@STIWX%I* +"_w`7o(E0=j4Ak,h.Ϯ]-^*'ZO `f2PvR֧(l73 ?4J``haY [ G{LHVĮss+3 1[z(dL 043S\!㼍 X~`mAEmn`3dM |%&L2J>>hFwOz,Uu}(>+ hJ~?E>cZ`m; $J )$ME\u^f!¤>n!exQ1br:(&]ns679\Nu l*n^ x|> QltYE6ȵG@ ʲ824z ݨjȕUY|H%`ׁP{ؕw MEj!a!b@]QXu$:'F͈]` [p#~5 {6K2LFa~4+?etzUӆ'+MYo)`!CwNDS*9`A6=U=5TAŜ & ̏۱k>z{pq = 9~߮cl#`\M .c֝0k2ny?!3틄pq: )xP 3b?O L>fSԂZ8"{f!0x Ѓ)BƎ7f.L>66#ugd\"8>/ۓo^=Yc]weD&tڷHNME7VOnrKXApގ)h#S448HĮ a%FvXJ5PIr3daf+ּ쏈&aGd+uڢrB;">YpyD#u?4%&_!L"z̃Y`m3u9|3<6Pl&7ua` n?^ϏQ2BvЍǔ[X=ϝwy.x0g~G LF@qJR ΄zafdPT&GJN}P+(]v>KvI_O(\h#spboHB%8DGrX 0pHj";@8DTb c,Q\n]X5.Z.&}\M1-t:KDUq;3d@VZc6# H{}A#R5ғٹCUL"mr5 d y[<2 % j8H01pZD4?>n[/LnWpe{Wsyk"/9% D 4ո,|29`~Vt^ͭ}ke2m[{~x 4~̏AZl3e =5@8ڵmtun IXC@u|0#`&Z7>|'M)gq$ر}\ 2WQ_( Sգ[>DE."! ;{+˂Ikx11 vgj@; ReVw$ "Uɴp =Ry E$CKCe (bH+E18,oWps@{!h M$`@bɔǽ:@RQ`5 -" rWroM׃ʿM4D/#͓x{ 0c!{+fEeY;ߓHԳjvKI*"i([5R ~X _=>NHDAuv@ΖpN_ȡ.94(e"g*1B\ޱ{ @R @#!`86crYc$\X4J@(h]r {pWCMD |ha$)'Ȕ%Yÿ@]]2B REj>l,7LzxQWd+'t1,Dy4Ʌ}PPj!;u#xv,LX93@ʅp5W@[8SvnQ&\hvDS n!M^BPCI :!ik?( йgY # 1` v7 7%I `8~0%;<q˂vtb-ҽKy7==B^\V(@16"v $7e#F6BAIʊ)PLZ}P5m%VX$!LdsEp}89%{b>(*l QZa5A^"'^ R89@ӕ T"} - oLH\5 wEiڄ8-D 2RO)oRHc|GUP0"+tW}Rgf'YE^3C(2R2U3򞆶vœ%V/zkArx#Ugpjg*&APt> N  @kM~d&ʽ" +a0 ZD3#JUl #_%Vlj@u&)#YXNdSGe4u`ӝ̹p>'a]3h s^֬LP* O/ ji0}$n"$@E Ѝ:vpIș]z FIMp-f=/ŤBa D ScTd;M;=4j`vY@@zhÈ H%ƪVPR۠cB۲A0kmB(L;[Ęr筆 h,I s(SտA\GV ̕ X24dCb  Pas{QA"r%4+~.-k7Hi4s* Ʋ3 iFW(*`L^}Ձf~MN%I,I/.FsȢhu\&+'dѽ$bE|YOgCk{G4zC@:`r Q!8Nqi@ C,[wkRwF}.SN 81[ è#$:P=ʦCy?3@$ȟ@5:x Z>rGB3v0dz$?H\ ]ڠ;^|wf6PY5 W7|%$hjbI + 17 ty4M+(*נ_iQ n)]yZȾRWH0#{FXl7M.3(Z"r.Ss=%Q dX/7o 8q?:_ 7upo[_@݁X1dX/ ?_K"X#o*ϓ$ʂY6`n;upo 18Ik5ݮo@vϟ?|K[r*fJYoU9G~ i&Œs'[Y \5tQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@Łq dX/;d5[)ٍfkv]Zm(i{e^k6|6-`alX]&)ٍfkv]Zm(i;QlƳg5A4F \տmO~A p[,}03@B4*ۈ'Hq.4hjz(% rs Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxcQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxAd= =(rU   Vk6cYݠmhJ1^t( MㆷW8=+ieޯ}NZiF3Mڍlf59 vka0O%< #K_.?!?$ 輠4lpNR'~hT!qoem蜟z R PQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx+Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxAmQ`a`|"ZU:PuaAqUBb\WK6H 7}֚R?(=tzOҀ(~U5S*Sj=wk P1T}A&#Fڼ| xWS]0 j ,O<}"~I^KUzZY:`0NR%7i\+_2LF˄o@`;@ zsbu3?f6FSM>+H {b`pV(DiK0*[r%S[у[s1 #Nh Nʼn~o×W}(XYZo0ܧ}M POհPʡfip\4<:tOԷF (7_ M CgtZQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@܁ dX/f] mCd`'s ۱}{-76j6CU͘lh5E1Ҍfc!Mfk6s[iF3MڍlhAuvf [w4wdh~e5;Ap Ʃax]٭r]@>;zF"FH5 d H$8?q?:_ 7upo@6`mޅp^@x1 dX/;d5[)ٍfkv]Zm(iucF>%QlƳg5A-~ь6c4 Vk6cY lﺀUx2Ǐ_ 1 dX/7o 8q?ziqcq@6`mޅp1 dX/7o 8q?ziqcq@6`m@1 dX/7o 8q?ziqcq@6`m@Q d $8@>?_j?~ ]'*A?IzoC`mupo@6@,T~.I/Sz{@Zز~Z-S@ dX/;d5[)ٍfkv]Zm(ihfc!Mfk6s[iF3Mڍlf5I*Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA0K`.,)YZ\8 YH[!,{qz2;7m=h1$@$e }^]YvdT6ْC*?[V mM{$;zDD@*ES!S0xP`m?LeH? !_)/V%UfH | 䋎d6*j[N/({.,kUGEB u"IgB_@@oDmVW dX/7o 8q?:_ 7upo@6摗Add:^uH@0z_ 7upo)(}*1(nVK1|\r嵶IfaAe~@jfL\Lq@6 `tu,v?)-GHv"]BXx+!9%Us.lΨietn5?.s RpQT%?ҝеER߆ oj`QwYB XM5@hH(I ߭FR5&Dg +zHʍUQ dX/7o 8q.@C3q@6`m1w_  @@ dX/7o 8q27qWq7R׭t +D盎?7upo@6Oit%"  @۳ 3 xht 9UU@1 dX/f64!qd@ $s1^po@6`m?_\ GkidR!(k363h  dX/7o 8q?:_ 7upo@6摗 `Q dX/7o 8q4%X/MN_=8q?:@ dX/7o 8q?:_ 7upo@6摗A 1dg" `m?Ư|DroV,G?7;A宾\>}k{_=8q?:_ ƃ.`6L %c,y9=Y5h |N}=w)P &忀"ϖ#4J}?\6 8 c̟APGI 8*{̀aA (`o͇uz` sLm-oMmͭl߆6@[ȨqG:bݮlPȦKhw?l7a,_luW֪P$bJN ;Ng5=CkXcȸcmX^KRe}=Ɖ%̫,r{~׈U#hh񃊜GO}VmO58܈sy\2J (eGi "`K {6 9կ#Fu]Y[lZ9Y$9(MQx+/7dy, AEKs(reޡ>]BT/dlt> %jEm/!{ȢC5Ow"(s\+"J:'}DBA kd !?:_ 7uahџS6=m`ԠS#Mmk ΄#76+s_=8q?:__`68 B:JuCt a23_:N)A,-R`Dr tbU7_ٸ. _Qۨh[1A[j }gϐTVt8(ܓ4@ Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ف Q dX/;d5[)ٍfkv]Zm(iO9X2~,n)31nk_c 6j6CU͘lh5E`,<8)CD{D S(6̸{ ,X Rh:hu]Ƙ2r I1gH/n6!7Kf 3 dX/7o 8q?:_ 7upo@6v uQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ = dX/;d5[)ٍfkv]Zm(i+͍fgCOƓ$R-ӷ}D1Ҍfc!Mfk6s[iF3MڍX,pܠ)/?Ȫ Q@@AD㈄HbKKH Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ q dX/e|""._GgAb_ 7upo@6`mGe"mt >E&c xpAa `o͇iκłXu[} mݮ$`0f8ejLGv$Av;[lk"9:ŶR##2 }_f  QE|HkjWP0 qY@em[=0f1acM2U^z}hd"ar AF`2;vzr@6"OPN@ H1 dX/;d5[)ٍfkv]Zm(i3x$~;nl ^ɑlf59 vkaFjSY͜ ZQlvd5[)ٍfkv]Zm(i;Q1E*jᖳi5u|^nCITbq#pf>Hp1hPA1dY  o 8~Z@d&et~ H |'J?_}U1C=qaf7?qZ)3)B]PU (~P @u./}uS͇KaagUҶk:&c%^3ηq aD}&A]dX/b %q?:_ 7u{6ƔKH"9]u#?_o 8 7^݀/)?k `#a"=o:eJ4r3uW`슳+Te (|^tS>)ɫM7Lf>F(eOu[s@Q dX/bgpo@6qi>bo 8q?:_ 7(UB1`Vu]]1"!& O#[#Y~'e#_#{[l$tVIʲ=`/={hD{`yfll$skdk![1 g<$skk7 [YfP I%“Ϧuqp)6e.t% >􍝺;V"QBab<5`Ud== $-me*ldL& YG5Ã"֩ )#6zdl#p u @>13u{ƁN1a22rνĺ4CgA ( *`-N>_@N'@>7-FѱG ,{ڻ3^v[,Q'<iZdq=z R M§LK9@%q dX/bgpo@64{Ţupo@6`m'w?q&$ IJҦ83@hQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA;Qdl~EWnt`fvbKD/E' Vk6cYݠmh4>軔@3SC=]Zm(i;QlƳg5A-~ь6P..FJgu t3iF?F˖ > ,*.p'1V\@YzƂn" 濌 o}Z,Z-^(?{%ŲpmKx $ĄPf Dn/)s OZ9C6prȠ1 dX/;P o 8q?:_ 7upoΆW8A0d96}~" 6{q?:_ 7Vf+FNߍ?_o 85^/ʐP?X0^Xhy0AqJ0O,:W/ҪX"cVmxJ nd#KyL֘S~Eq&<5w8)s1 dX/7o 8q;//=o 8r*) Aq dX/;d5[)ٍfkv]Zm(i9#%1Ҍfc!Mfk6s[iF3MڍX@)GQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ہ; dX/;d5[)ٍfkv]Zm(i~{ţX\BZ~5ڕh5E1Ҍfc!Mfk6s[O^jIcv')cşs|#ˀ~s` ˜(k_X#<4pt7} dX/7o 8q?:_ 7upo@6,Aq`Iuv㢌a`?/({idK^u[gdZ u ٥-Cݮll{l,c5 dvl5i&!额~Dc/H8`q;J7 _IM v\QL$}b:@"dB'9qIQbbKi )uIҡ0ƠK *Mqzc _㇛?EIz;JQmY"2 /śT.l\ЪP` . YZXr0ŏS 0OY=xx1eW}:2'nJ=6 5}` -nCQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxEQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxP dX/;d5[)ٍfkv]Zm(i{ĊY4hzMfk6s[iF3Mڍlf59 &qBAp @ dD%]]F]"v@ .Ϩ\¡ ?_o 8q?:_9 M #[D8xq{»/ `J텘Vː. m2uvpQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx[Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@܁`a`ߠ"|!K!YЋH -C/ͥ Wm1%mWCK"a3Mt<`JդP禊v=P"4i(Ru)rJ=QRHz["PbJFAAu !R¾HdAkZ(0фyߔQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx#Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxeQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxFG+d ]_bzhϴǽTe_wm?~1xzҿ)&j9 M̜#"1/"8Ս(Ќ/\w.Wt]6CjeNpw<A"LP)'Ʈw]`|P,K':: O6|6nCɗOGY_#߾-t0*W:̵WŃCBiƓ>^M۟DM=E,Hf3=@[~kB~nNa(eL]LELb4+@vיRwt Ɛ э 9ynlf>~{::/.lV=|xJi_u*"tuBo*: v.A͵bo8I*?C~0'?; 9ݴG)V~Gv$xD{[q?3H[,qU|Jy]~%9 PlU(N^aC4w3;Cx#RB-&|*N eTΜ{̹ hw#ہqO9% G9%oA_io} :7_I݂{~娆JpC6ˠp UDlMW@8No퇊1`-H^Ƚ]N0,}֞g2`v0lQzmCUH9@,@9n 2&Ɩ,Oߝqkj6[2>]fYBOXh7eӛ"TaW!^hc %[@ aEbQ3xWEeِ:q٧?[tgYׅٗr-c / 7̀A^Ι?  %ALQ0..?@5W|Mi@{@}t^  %$g3{H'+@l'վ+&CZx3 ~^&mj-[tpUL+6" w @3̯'Vw.7FH| -tE}40>[XnPzJ¶,wꦢ~9641ʣptP'ACr0t&1H '|"_O`^E+@) `G_ UzP3vd%;kuC=čaiD 2"s 9(LD] (48#(MJc2$g"|GyVpgW&MI3-A@$Fs+y+E~U0Zv?Ijxӗ >X+ 8L^b Nvx2Yּ _-8AR 7?D@ dX/7o 8q@0.~b;?_o 8b&!A!@ `ya5-сd'bsD{_Q^:c#?nhzyko{_^*gܗ_e~qrm)gg/7Oҧ~>5 G_|8!ZQ|25=x.tccac5#3裸I$I$I$HI$I$I$I0TR+R֢"I5DJEjQ[k9u)W ‘5cօ'iJ"Sr%,OLKUXS9V_mڨ[2pjh%jxCJ^N!Snz9! +] s8JH#ޞ.dpfՌt/7lL[4s@ O@>w XE=QtdqarV..h c ͯM;=}p3aUZE=>Ͳ)sSе f  '$_ t9 hh`s莈<~ghV }`0PpWB 2#AzAmppfEV6]Wv~M7`d6KΝRm*r܃ S/#cK 8ZEz--@©i /#ӂB f,,2*4#d ر#ޏ4 kDP\/`G\*.[/&$g}S)C THt&V5qZ^}}yhn< px;lKR=!N;Upth2!d~?5'Rw(7AȞ͞\f st9tXàC[ ٘~4AD9:,a!-E&`RwPׄ]Υ bMTlaTbkq{x "]3QR#8A em35@]lAZ%OP `#~xō'͍__]sDĵZKYMO߅]9]N!9Y_C:HGyG2' K`ÝtM־IV( -굪ӑq-LKDϴ>.rJ; cҬfPTu2$p X(\1r0Q۹\B)~XˣvGUIU)\wA%x!y/4 W{ _Iv<0O̓%ͭ0Je* 3r)I>W0*NEJ/Y@7h#=+V{Bn{&Ǫu-ൽX ~ŝEH+Ȩ8:sP8$ڠ\5fa\ ? )^-e⋞3 ZN $'/b@ W _̒[*z&* w b+(ёW2n.酫Ej@[8,xP@׶5;KH4Ep \j P bԫD;2=rRޠ hy-놓D#nĢ*%؃tu@ԿNr^B5hXNi ߒ] oșkA+bS ff̏:D'.I${ۤx"xo 5/FLñE:]G^WU',qRU#&S?H̾;TFjJ-gP=ʬ(Tg5 q]rmJQri3H:8ŲP7u2<8H&1$DWMH_Õ_6#H4;ݢ+ c3\?y2A{olvp4v>TfI&{Cpa dݣEn$V8dD0!fxo LZaBdj:YZG7dqIĿ-ĝN7vH] #^yV1&NYv"R=S)6!{dvgz!Cx!7;t{ʚ10p᷏lƻDlڠX,0)M㤙1e\{;cak^JPS .I"d:qi bamB*0 v܉ħ랔gQҦ lX~%@F3(* 45vHˢ᝱P#tSQ8*z,}p!i >n}\;ΐ=\_ۚ ' 2Оw`bAe&. ܺV9)!$UmߘtyDt#ˍk t5˝ 6E2Xbjdv3,(JT꫶c״۹?WZ?@I->P{$+id8 [75*̔fSƍ|n$iye A]Yo.kJq?|jkGb>ZnID@&m0*&/jV8/YBb ?Wf bBx$RH4sF`/Xb^Ag趂@N|  ZMe@IEz#{'*:|65ޢGbX,TvsΈ@'|Z (h?0Z+\"r qF)4 w;Ia/h빇 /ǽD9ҭ*\dloC|rd?8+>48o+9P]m7"S=1T58MK/tmh!P L͔85UW;+-ÿNJ&]QJJ|`ؿ VJ,RBIQ"OOzjV(. u, /PH!3BAL.ۅ)a/1 &)?PDIi@5}7ML\']<ѸO?ElXD ='T^{O>޻B1%S1'&MӺ^Ft 89*ŏ>،QLk'yc ')}WTa6Ac7(,R'nӣcG,.M;>*3P@hR;]4{B߈9Y8F `m `% 2. ҢR2Vt?l8-Y 8$˵30ɇK@Xeh\uUb`S0FOьlzĆU[|cƪ v4ѧ2!:z_P M<6/gu؋UH nECOdGf#͋E ?nԿ#Usxc=֟{ʅn} ⇗ h$*mWsv@r" "wD B#݄]?,w)p*%d[puzz&5X+ TDXq  @߷"ͽ5 ⬐j0lR'lܨr/Y[1G *CBPWm`v JCC V7|@AF+ L7r I KMoEH!z.:@ x=(<&G0 \X` 4=jO&廗ɣٹI]S:j^9Mcg$]+|LW1k'dYɎNd4z"]$S#UX_>e|rK2(6neOP)kzGY 铽36 6&@Tx^ǭ q/$vRH$x w؄SbdsX'%RWZfP,$2,(%r->-Z=;FzICw"v^bGaw5UpNT@j{/fC0]oIϹ+0Cڂwĺdl8{nmfH\VMaPG|)9˗A qjra?Xi]˱i(Q ж~0P\y@YyG to[ bJ["mN!BKtu-@bu< f8^A.FK\,@y? ƉU#% HO<@GL\~VPeN%dͳ$/@Y߁&'"e'Ne11%٣ZIafPaOFDN/)ښ? {}N'7qaG5*TBݶ}4Z`-N-0j}Ym _yf(AƐ%cؽl&m _@Apn)[86<8$Z#M۟NxS`x.-|,.ϑ56I#:4vATogvOeZw 4Fy^=^s}Gb k(OF5tXOgG8ȒW9NozAJy@,#zɳEHダw/2XmK `4{:Z=oIy!55K$5]: %ɘ-nՌ AçLW + ݵǁS`/#i4f3g&`wƑVjHS֑u;rX^,MkQ3ߔh둼DYl(d49X>wc | :"oޒ^^6/bI|Y0V+B-0זtFC:oHc) ktiQKfgy ;  +)y8tͩ20iK9 T[rFEQOF:WRB܅" Zܖ~Tpt4 C7~ȧ"7LK>恜Yp;j ȨRX s" ^+,RN\N72o@s*PY<-@z }P|ܦ__J fYorJHJؽ-;eE/4B  Ʈtn@dhpH~o \Ob&M#թEPܩ/! H i_ "M6'fL #9+˹R+Ap1d s۠αo8| J['?ts1.7LԓVV16J$/Wm!ep>VO18B|BD)WLlRHvT!{ʌ}eLDzK97]3pQ! 9pQL ɉ4dN:mpcQ5TDBp(e(`G*s!QG"VB;|껾&W\uSR{tB[R͉J!2OT9'"^F)1ez`)-4PyM)MSCsc 2ou<05˰O ںY\u _H͒\-+C J;=3Dv`em4|"ivTWZFwsPc/*>e]+qƱO0=WbH#:TiI 03=4vh>N=s7pȀ̊Eie05UgB.=  (WtӆZ, _KW5=/R@h1B]#{y|fjCGVfkSwtMA[MCAJ?DB%_ tcne⊃ [RlGqð!Wxj[_MC+R7Mw'owitYAʚU~cSdb{.B)FXзPRto5t{ )O^ ʖo)Csl695o OJ0$& kb9oЄchKM Sgݰ2w;ltSngACI`Ke{n_ŴmW5'o~p}ξ oB&j:̺93J&hx`@,%~yA1 q@d`/{NX ?cLl؝(Ua4.ںy,8>i*W*0y޼WBO%y ^B0pC0ue;}I % :#&#gΙ%잫t~K#0ujoEؤyІ:KYЫZ(}$mK@VH[v)óX y3>sqmh\]Ϻ'ZuQO ϋPX9QA(49Rl㒲:y$E V7޶_}!7!B{[Ί2>z 'SDhLIJ3S^24VN 2 ,Iov* cݢvwh7Y|[|ſ,s;B;gU\O3a)y?Gp7 Υ v6f]T|@bPʩl,V?ؐ(w-H#!*&K*Sf|Nyv$77=،ljni<6 Vs*@"8w͗tI~0y)01AsQ|^l~(_$`^GB @{J?¯KQS:n,>3@wP^y)|oƓlvsuXq埲{˸u=.UPsgo"ѪC!$RimMH㽴o/?zY5V._!s6_gHål#> `1~ X!R$ŀ@ˢxC~ɡS<`O0h_ i< _4Eda1uK(29-:.C겂Ku q2*ƮP|H (*`]CLlJoHd8e>F~ܞ$KJ*X γ@G l 0vI.}&ҳ+][xg HPaH'Y7 K,ӮJ,P^J @馏5ݞDeqٿnnL[AC0$ C:cvQ݄36f:%5zݜ&Zec{3i jʧ0TijlLL L87 'Ăj<׺YHk y*8<:*3+vne !p|Z2a_cSGv g7:X#;ɷPS%dvq j/Sd(xd32x65+ us=&I͈<_:7MS<3R3n 0?\}L" }-b`n.Wpd!>Wtu{Hhū_COjI R_|1om' 0$Tc|ܐ5å@O6*Ei+'AU#"]͈GU'\ ܵsi)? +,M:Bے Ǖͼ*FSY1J*=u ].}8|2a TkA`DYD!*=zU/t-FM?H5h mp传  -X`@Df,OZx3(4(1-Vٹ`1Va amZ悠"FJ|rEd;S~"ϯH@%M8F*'ƪ@50hp} ICtkIuhu sV~n>3A ݻȆz5rmH>x `2L.e 5:@h,hJ 1.7YSL@TKc~KzK!RPp..}`TSdiGD)lςg>9w:@ nts3x'S&eB͠'v٧.-3cp[LN~-oP_qq_w4CQyB"NWa`qȸ>=^ sȹ(5ʺUeUu@Omԃwi!(f녅_AIiH8h`(H RpA?`EdB*4p8_Y|rJ!C+rmB FIyBc2*Y`}>@ /Y][?]vJ5,ai\1p̋4>[,/e Pou4Ih"r@HEޙBlؼ.-2EB:>@@6>dC0` S| &"tC 8g\[o0G>g6G,8+Sª9¥grpP$Vl;Q1~c^XxGqqA}^`X14H˜|eYZD<6u4aj`D՛t5a s<')%Eg`U0m@qܷm9)π|y^{{w`Y|gӼO(Kur$GҙM!1 8 oBT؎s{ 4'Hhzb)(BO&TEfLJ=HiA(Ig ˺J^gb o04 X"pD:8vxI˩ h (~(4 &;5'xG H`cP~CRܻ/iy;,nPsHLs@HjRŹU87]oLr-$B]$h ιm%D(TZ9z\ ꀵJЂP\L"ЖNہ +gWaH h HZ9JSR>  !k/Y{,` yHճa8pP9<}!,G 1,bELĊ1T]ؑ-j3D{Ö̔iE~.%J!!y>HrEפ0<@jʑYbS[h-'7M:?6{ XFƬ &?!"z~KB8E/+O kˆEmn%P`"'*jKz$57`CP(15rݽ dX/7o 8q{? o 8q?q dX/7o 8q@*F m7_}?_΅_C dX/7o 8q? ǿ?_Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxMQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@X{@+U~m;+KYǷc#]c{VփrDAihz~+[#~+,%mWCK"a3Mt<`JդP禊v=PS N Z=2:&Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@c d HH8?3]2D^lK}{s_=8q?:_ 7upo@)0Nxl^U5jˇ:?5"yZ*lAVS dX/7o 8q?:_ 7upo@6,Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx+Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxmQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx dX/;d5[)ٍfkv]Zm(i;Qk@?: = vkaFjSY͜hQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@5`a`ߠ"@搰!,{qz2;7m=h1$@$f6D7G6zY m-FW&$ڄ5=4SȐbʘ Z¿wkZ6$_&@0)XrH xQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx  dX/7o 8q?:`Fpo@6`mX@ K dX/A󏛠p >E^Cuÿ?`m?_%  ބ>02@f8奁frMn dX/7o 8q?:_ 7upo@6, Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@!`a`ߠ"B] ݝ bYǷc#]c{VփrDAihiKiyG+_#{[l$sk0ںAThmrjMC[sE;(\)"2ĒZCpKnŗmY 3$](\fN_W.CuK ;y c/*"wlx@y_=Q?/?"#G4 __mewO>~s_sr1 ?ܿvz_7oG/_Je??x=o??|O?~|A5??>woe?FmW+گWYN+ fpIr;RPjqb0zO˖; n:vymW+گW<~je:>>™..30YK! al2x]ʉWY"1zSi̽ EMa%+Ce PИZ0RUy^_-%]+[DqUys)~I*O<:Yu:sq?v {rC[/5WS|4H+{xM9`Paz%'4աC:\t??n}oqJbGAp>B6dFtB]6];j _S>L>̢ ;Ja (YqͲI% :6yѡLiyKޕI;<|ݰQuk>H]Po)=Kts"ަ\V7ݔ|#Up 'BL'ci|X(w[ qOLe}wWŶXNAv]QuaW;+:<4paκ&;yRI'd h3 2X>}Gլ2?t.rG"3MJ_p)54oB R'+dvWE/r^O -춨H{xֈƑ7)c=G _A^i"I[ g 5fW>f18rej~Iat!9vW8'$b܆a]b%ءc"hO7gW;Tm[΃nhM, =g7GR%&D픋XFhϢzi'L]o8P9D$TcGߴ}+v{CZJhm%f_%5[߱'vzsi+o?XBc1sܢCݧ Gg 4G@B'+5/dXN}%o)Wc?^+UQ=Dܰۄ8Mʦt(!֣J5@5ܫj9gƊ@9|thVµ x ·\x S/޴I:]"YOAoAn_R96!8f"x@; 654 s54]K#-w^P(TЙϴ&V. Ss)E:Nzf)zجY4W(5f<.֨TڡY[j"f vu3Hf2z?,ۇV7Gy6%"#6fT)]TK}(p] KwQM;NF3^4s9rc *5c.XmM'}R? ?̟uY%3*GKϓզ6-. ;'Pb2}t/M8\@b+(hv@h0/i 8PvA-eK,#l7d_'j0"3?+Sr N3ºM<1zo~S&%htan[>}̦@7%Kz+kѪX] a7&;-ɦqX$h4%2ւӴ- NT,!m# qAV_4P6^(x6}uNLn7[ Jel?N ӣkhThKUh.`it;}. 3ۄ~t΋΀>9 gHy`f݈ RfH)f#Bۄ71PM]'@8Aܬ2K,o:%rSYwr7;95#rG+7 iPclފB)6SㅈInݠw" ,0~wg.k0eD``CKh@OL݉xä7;Zm|km#<ǪRTHIas=: Z%1+d" ~6 Y}8t!n7nca qZ`Oɺo=z 0ѕv4` N zWo%fAuCpRT2414 yWtDrBҀ9 u&pT`Nu-?He`FBaS4EZe:`''_H !IS1*: -"@Bov+vy?$cpF+[SiG%`gHc :L~g ƀF2>g}<" PZ(L`ƚ ΀( &~sxw.u ]v0ؙ0L5~lF6@߄\4Sbc\@)@ŃgU!h6F%j .yY;=) Pd&ƱUwvjG u%XbLjN *;3:m,Yʠ '.ɢ&pQT ^Ō%^oIλ)IIA\b7!'m뼤Jcʍsh/:챓)J%PPjk^UWe Sd۪$4}bN@5nc1oYQ/ݣPewF;L=AGkNkdO,ٶͻb$\3S87|֓#a7-j$v)ly2(#qXf_M>[Z^ :RJ4|R}1PzUR#(V 1h 2>Xi ֐tj(&l9+}f2C&g ךȁrȊ'+r~n֏P r1@ Ώ5 sĝ>ʣb.KbE"2:MdݪH =eX@+`L(NnF In"&W6Ոm9vk @C3meܔL 0{#Ƅ则`Gf/z'[E]A/WU$ 7+;4 6Ȇ[Mc "-4-mVLض^!AbW _r_כ:W=hj8ihXOqڼK [AӨGn>  Y@C59Cf+b' QSV*P=;IMTsu&nj/w7J+QpabKC?wA3ϛ2w5AvFp͔>#-e"%W/`㧒ًb$=/, 'WN[:YEw% vaKQ-&,Ht$$2MfX85ٌ%Ȯ$e{w̙ȓRyK%]a;SL rޙcF6i5sirr} ewӡV`T̲ gAm 8\I5iJvDwWL =pwa4b@h!|9Xtۀ}6ڌUF ` R~R. gPI@AhT@öD$p5$U(zYNuI[fb@͖ wWP$Oj:Gܿ/knWBeZgQ>fJ,1pO)>RG .D:]oIٚq'%($hqbv)b>I]W~H"Â,٥{Ht+V6PF^۰;C9I{l2=JHQ <ՈS"l K~c6_OTSmAnÄw{ ~tnjv59BFq6]<ɥk&B 4o}s,qUX#+WrV+ilG İr^>D)v~1ql,%`vqy$N[s&;)ˊ ͪ ̻_mG'N~j@|NH*6Y}6%ξt}}$}f6v!`LM~Z#\nsZ?&`m ҈-H%se7ophڞş5W⨦ܨ{˞t xz_53h αR eX`m#?ͽ_@xٴgqbrWC*_O"W̓9ɿk{ iъp8. h9 U"`qEMUb{kQvq\de;տ9%NϼU"!Bx{k´mB !m %{N\DZ l*1mY%.gуD$J>0L`!4M2bC] lȮ֗ T$D&%fhH ^v2)Ge5r|!ى;X#m^ $luKs:Qz^ӭ{>&iWD:7Z,*B9%ͦHu.&2nJM6\YhoΌPcpF$2-z!@=L6VR$#j:vnfJ(Idm+ݫ҅d2-^4.6,<1+#+iH%t|_yٞ8@f+CXYnL7A 0t.sη'޺ipz6ĭXTB/VlsnRv(c2ܼv+F*lP@*K gb8\D9"X8#@ -C抇a"d"AE\:ʶӮ>ՄڋIzsHem)CUhyZAg2NHG7hAi7BjN @l(MiKinQn:d+Mዒ 4`䰹nAHs_ەstoJ$)$i`p~FptO;wkK{Hd_Ct3u~K5D!،PޢEݬ.@1_xn~d^Hu{J(.-]5 ΎCP [:@w,GCZpLwuA7Y:ӳ%u8h+Lzt(w&7O<;̝(?V9@S\hvFX\~/ J{D͂_j{T(|M{2.UE{G0B[E>dHΐp3QIkS=R /:hӴ٥%yq(N,ƕk({8Edݢ.sՐJD( 6qE氱Eq"1S-C 1 +eK&leVqZng.lc~v>\Yp!ʅZ}F&ꌵB@pT`IٛXF;B2R?tM XKP!D _ \6-=-F݃=.q%lY?"YQa jHi Nj?Uz`4uJ9BN2dZ%z{YؿN6*G[ѐ oGtc2Wm=E o/1EtVg0\ޑ=M=nu(yRחLOtILFs?9l#/8`ӦEڃlJvD,g +`4no*\uv&/qjq~z흁O%C܅;2h=Z05s;`}OzDN!/.+F;/0@^Ykn%qw!-ע82G2̂!Sɮ;mՁ[bZLT1tf^K> fz6/}.AUYv~xF&|I6DzNoMQs:N3 :D f|C@T̕ 6E@aIP,JAZvE"@`H8Dt 1hХKu0 `t PIhhS7 |\/æ`ʆEsTA(xI6@P@R>Q@ i+u .@8Lpo +- ud qKUp =[$(TFW YB(xL@Sn'@! bNJ*A9V2t|\DiH4.5 J(3Ĩc~fPPay)(  2޻(:IkO@FSB sC^f.4X(]YgƟ kR&x&EhIp5vh w"}0p٨eDO,T&pNZ-"?79i.l""Ms[IմxN {pHI9na`ҁ a2@(jK)#qAGM`NRSivN%&% Tyܫ4{G4i8IQ(PV#:w'ׁ `H(<Wvvk=$#@&gDn=9.S؜t1>*WI 0Iޱ-Qih.~p&'IrIN(5Q tj*LV^G@Q 'e3OvZh­fs>a+Ɛ-=@aP`$ЗKE4l}/otuj5]98S*֍-?DG"WP~ w, i(gDr('a " *xh `I"wYPS@SSPZ](-q׍1QK)'opSec8`숤0գ,:>d 98BA3AN Ef,M,4m`Of{{^cp$5~:A̠&X,f 3Ksu r/W,Z}G3Vkr3dmWEB2Z2̻EV %:S'du@QDmv+PM@q: `}(rdCJ sp+y B;GTL qb^Š'7% 3EYF@<>VX@6H:Y5M|Fx8fDO8m>ՌbNu1Oε!Z]X+fr_B\99@@mT D2йvGj+mn?U3 gsٛ S3L]Mۧx8Ttɿ3Gp `j'1WNͲa~&ik]~R']`;Q*?\oB\* 7B9SWqe@w"b&ԯI 8zWZ)xx^螺 WK}^nFSY*hQkI˘1<ΒȘ fUAж.zca@LJIe:2K!ΜY-7ڠzsNSbqR8uN9w-}C#QP=!q LюE?Ao Z0DlkV},_.grjd&뢟ONc@m6XRիb RE1ɑ]qylVwvB$FmR! )pu6_FxD6FpϵEi/1 !K)x&`ɰ6$F$tƘԟMmGʵ۰xt.N@ a-  杊$ !bOkPPӠ; ?̎Be@2wvQmGj̷vyZ[dR'iZK\Aw" e]'ݷWeIPM~<ZM47`@J/V4)~u ƃOGs嬨BbwfLٖ lN27ГHaI#T *0L%m8s%IT,p` ׁBh d "SB䍽o7ޯoR:?EXEуsJtCK`/)~\C*e 2A 5T1魾.q8^qt&앑E.L V/O)sa›Q0T>paA>փJuhs'V{R{kQƃqwad/=|+AR䞀8N po/DHt^dm/DbMCq]+ҎB< U$1xvyȃ4æoƅuQnQyphX3gfe܋X?xFp?d!Da.妰@y*Gj H]afp8f"Y Da0J%L@_a $$B@:Ԅ ^c%fЛrah"l\,0i} G,5ɌR` 7֘ow獮y3p~K]F?ѾTeΓ/y 8kw4Q8nO1 Id`n['@pGh۵w@5(Õ㜠_ | !hKOϾt=%9(2,x{Ja 1i H+ᑳk@_6};lr\XVF>.Id%~qO_^Epyy'y MrRyO[5*q{JAm|ȝ8"Bn˪N. 5 >iAV"tA)#>`逦r.c46>apak? coeq}QؔQB6N$0vw,BHdrB;(؆Q7Z|K\]ϘSmeplufkI]<ӇE**mK[TlZi~2]oIؽ2Qn"ȍ "C@+ Sp}8q3bX,Rу`ΉҜlN(bݱ oP ;F׼]֖Lr%((-7ﮒbUߧ@ #AC'P>6 ?L1n0@CV?S`7p~i" x%hMOFm'uOZtv\K5(YQa=IOO@ywᧃ @YHdF@}v a(0Xh(ٰ+`.l^ © 7iƭ^A\\Qy,f2M0Pf[ڃC} &f8VPH& >CjX54nQhOS*G{v5G$S?~F5^.D@Iy@ݴ98oթdVj^ۼ #]z86T: ;^_RSTKNqsCW㶖;$0BJ8(; )凡/ ;U<|/sԺtִq>&ܑr&ϚyF$ZMexOXTل{8Q!?4֪>8OEbv9WpF/qO4h(kg,kx5&ʑCEź'#sI>+lO(КgIQj:5߯}C-T̓uuwJWh;R*C`WWP&!: ǔ ڝ3.#kkux;dVO1as˭$.:*^rIM/^5u4MV^{!yhpOp i:<Yq7"z)*ijGɋj@! :tDE 032 ֊u\Fx0 v"`o\ af"AҖg( U2P/E2Y،e 10z[@ R >4Iv|o`'zĄ+B kV@ OAPFN.Ԁ%CN(U13cR Sz;bjU5 My  boLa_^`_lԕ󈅐@N*NS* ؑ 6`>U0JH[>lPK,cңE.ɋ*='x:zQ ,*#8Z, L>#(8+kRI+apڽIX;A0\s`hmp,;u HHHi HTqLcV``zhF݂H垠K heGj功li'onS0PuipML )|N P~>DA70U2 dv1^YZPHdjAlD(,j ޢVR#A+ a`` hQ.Sf4P :YO ^SA/ [B@'c$낯D߀37dӒTYOm@nv D -@=@ zB|F[ʯ vp+AF( .#@K!Vv$!q@DEMoPz8yWV#*it^ UD02%e(7F4#c~ ]P Ag 11Gˬϵl0F٩h8й .꣩KѦjB8a(E=n_5 /t \(0`olw$#-gTQUgx։Z0!qj!W[j>=? Π ud)KFB :}AP-,+ :m)Ohо'oQ`ⓨ?b+lmv/5E y VsUxŋR2.;ņ(0|rGȋ{'sJpB]e "GMJ @a\g>knm>" ևpCOy4cUZSD l^mH4ȼuڄ-QNL<^8݄$]V_fkK>(/@sVe* r051kQa xtd"ǖŠ핓Z$ Ahc1(ɸ&3p"FmC@?q.ڽx7MnͥXtԜ Wv€^lc5ijq4k*5فIfZ^4, 9kf'k R: 9G5VpDK o _D0Um!sXZcpH>0F[bR|/2DE%ai(wFŖ/Y.!p=f[#=t ޿%xh Gf!2l8xRqn܇{\sXfh8QKÆ~6ͺB.] lv'ȚeS\}2/k`瘮iIan"K[9 B:znѻ0ML-?|R a;wZ`!ZZlOB,}`7|eX,.in+-*(T ~n1K'LenngP: %E,G*H?M@.A";dUZhZ$E$SOqfS=GikX}/E@+';bJBt:?@ KU-QA)ve]S`n*T))0!ZwL.4}gI_ bqC`㼆SsG hs ݟ$:s@u *;6ق!olwQ;P9>KTQwV7nvTÃ[Xqc76rs~`h{8nv^G J- UYeG1&`.1#iA#T/,vc"NQի_B@-8r_|w=R+3 ~oe6]b0v~jIhơ\Hr P/eF¼{$Lh~fz5^}B?;۩#Tn\˨6uiwWzB0D"26V hj*WVn< !^W|00Ƥ'80+j9Qf`gAw-Z%XQ51[` J \;0NL(BtTyXPYI^4+l)̢)H6qfM*`b_2gRϻ"ÿ)f@@t@x@y4 ݘ.X9SFpV,FZyFrj0͘!8V.Yjk]r|B̒s:֤LUJΎpt$Z&x.T&#(XRӇ1ߓHSQ:/BiG-K5 ?P픎z_{~ &x6],n! i6E\{M~+$v]79AqtsFyFY/lF&?;rөOfyrOǩ7ЀmG^M@vvW3+*N3`DFg@؂aIpY;;cГ#%bv| ʟ߿Bbv=ڭ)t-s[>B4;9qIuS2B'8`lך0XwHM;v; &n煷ޅෙV(m0x<sG@3Xkes#WZ둴  K@T&u|1UXyi#-`(>-b6SިB9<1d0yǀͺ`{$AnHchC!tY2nރ62b=51t^4Me64{0KS:َÅ߉s{Zjǥ)o1LmL,: ɟΆ~=֟v7($ؠ4o~5b6^pJUQWd]+*Ϸ\X~هA~;˪@ Uc9ofiӬ[6 /rP;KmU ܲdȨ$? D8~H@7'g {hD:I&;A_ +Wx8M97F6N.l-(ob=Ua鐳A99fG9@N_hElFvTޓ MHq* 7RťIQԜn (M] S+`[bQeC:Ie)_)"{GKnP2z8~&~Y,FGgͶ8ZNiP kEϨQvqX.c|B5~O3V jM26]Pb}#\!7㍸fQgo톒KCuQݘ,R!W"0DvDțZ(|]j?26;on$KWFq$#k(ERȆփ-U+L'sX9g9((r')ة'm2S1#-pݲ_nC`Sts!#7gY)RJQA jDi*@UN  YAe:9JRf;FU+ϲ% GFN*Oy7j<| mzjt1{-Ls+qjr@?EL4gX;-ْ8Cq{cؓCFX``Ep pePh##ʂ !u:h3w c4avXr,Ti"*uA~eBdnAl3c2tF2Dj+H?`'vIGpC+haIw#"ڕ /N$Ώvlj{kOsc%\4gt0*6LIZUcG7@"[-w^!yBXH ty| i疡bzR@/1ؠ7ZHB6Lr7ҔNN If< ku4馋L`A7~+p Th@Ztf)<(}pF30Se%oapP@4qMr}7co𩆭.z"B|H*kKV\)QW nRp]MXczy ?@z-xqР<:@` @)UT@jvHiS'эJ>H @6M6 /Aw2SzW;֐y|<]7_|S7xI{xaf fBHM8U]Ư:9'r!]@`i 8|P\s8"Ýphpk>4%%MVMqB TVUonT6}`((KÎ8pP(.K0)b/0A0⿸Y{9{X Sؗ\ . ÿfa6UYJ,2?dot }v@dϜ^<U#[>>z֩2TQn"ytvh. $?#[ 9݂K~0tO!!J3 mWDPNS_Y  Rd0~vHWtmX{CPXhA& V@9[FṽՌyFn/@ Vq/$ ["1S2B"&Hq]1bA IAfGUlUrMS2!w #ܞ8 >LECq: +~)K B} T#h~܈!KhHt-Hp>R>u7װ-}\Lv Xd^#, <Nj6 7:J=&-($i:R+}QT2`-Pc@ltun20D7/gz;oAk@֦Lx(iuJPG( ^9 Ǒ(.z^z\d![SwLJiA6lvKp`旍:Q[62FWMуF^ȵ# 1r_RN[EoγP,7m@mY: zK+Ժb g7;/@"BYu6hVGH[V8||hAw"7^Q ">~ `%{׋+^!y~[6QA)"Zwsxi:x欰UNzS{*G޴@͏}* {5Jh-)iQ`[gN4z6kC !У'Q76oZl\q%n 5~AHZdy >TN ` @l@v%3N^@ +˴g\H[z=|ByD@%"{#pŸ(w _|a}/qj)! s"[\4G28Rg<¢ZoDy+pZR-Vň!RwGu IKk?9"LSH6x7!=9}E$e<{տFM;@8@蕼DVlaf8C``z|J [^B.X>S0_ γ'4M7-TJS҈r?`VHb\Vo%HPqDٵӡS%d'QDmXUwTW=&ܻu~ d x/ڈ. , /-1RG^I0NlgM|玄^\JbAEHBbqɻD 4{{VweC^D xJٵΐK#:Du@;^߈_D$82R򐬤:}>lVpi%9Я¸JS}(Ĵ,I%]%@k.liXGE/5f7I7P oFN>vJ h[>6Eee.%V#aȸ%7|⾳m1͕(@,@RUՙL)V\i.~b"#MFuTv \=-E d>Կ3X?B@L`GzcqsP۹f_e҄s6w[Z:!ze O:|oRWb>QbGF[@>W}릅,R ChC]bG_~}0{:dԹ# Õ~ѝ@P adhhO@1=8P;ܱy5V&Iy¨_.6/cԖX#6Ϣvd7w fF\|?ԛܨ6EMBD/WշH{~Е!2ڷh C<o$[q>؏\1B2\Nw0,/CiRIY[)50"hmWtIz2L]I1n ѺRɋ>$sWH%þUCMAQMGKܙ <#=,GdcƠROTYl,yw .Y&vƦkvX*AY1{t̴>6K5 NLY>#b$aW I>'>0W654ބ @pE8U\qà2[$ _wtq@Rae@p-jCۈv& x`h}7bCTTu֑ >PV5E$ z{ax^<!K{t+M[BZ BE dM4Mk=cy 1(l5"Ƌ,E*eQP:U2xGOelk@fפ潩%0qZÀfbHȋ6eGȋWbC>$ (yn#iOȴ}uqOq<4-͊x\BIUʂ28}崃Wo.O};T78z/ӆPl* 3Mpo|0^>"lҏm 9H@zSVhW2&?ۗt.D`kM11Hr|ht)IR:d `(Â((Z]>n6R[%` }*@` `a o[@ i%;WpfqŪX /B)KvgPm٦8C e ߃[Gs ޽h=Zԙ@$0#t} EV$C.!IxQҶ4ó3]@ @2+do@Ja$!xe/52L,KށEs휢p P0 q20H{ fŹAdm6 fg7 lRJQߏnIM+&@ `{rXr 6Y}E`d~䭱Xn|*}uEz4`Vދb(Ә7X6M qpO%lFKjN+<2䁔(@)=5X@0f.9(3UܲXI:J8 |g.F_vCidIT! f/q[%c[o˘:շfL/0R{WlĈ 7[zi_ !K4x4ìL#r4)f0YU,dž[&j򯃥-\jKW22 us-3] nFA^ [s.XrҸ / |[LFz>cWk$?](`E5%cw# KhdwE!}=@s@cXeU,' |!rX Cf2P,~Uge QGW7 ɤZPO._@vw[zx4EcZO[*g݂f@cHa"Z#D*}ˎ5}_@S4VFJz e0h!a6yaM;Г`8 00w^hx f+`00/a%R $@f,/!u] S:ʜ34F/\I6N?O*2g-eHm{bj > | ]QYdQ,2C፶4҇A>ęEVAoJcՂd4?hSѴhc@TisGWTSif= d `A3R ; n3!VC|"SSUG '"c>D%bZ7{wlMMegDbyB[<Q(`_\קsX\(A;o\I:xp8@X<40cby{RGr"ĀK) YpgOĽ@(ZDTt 59-zAdҸ7`n '#u Q(];@i#*% @\J\֔~%t =M\R Sk% *ցUSwѧ-(ȼLKZ2RkYw02-'-TLST!3mpPAb!:X'Vu`fC;X3  rgjEgXBog@@}c+EpoNZ~)Q# p/0*]F =!Fu9 D%.ٔZ|A@ZB<&J wc9 wք%TXTN$ZY=A!M F+b6cӯ1REɌ/}QFkX4fMp#H^꤈8Wf AMDi ~C3vFGcNIMfOH<*`! :2#F Ć| [xӞ ]hK"&o1#~D7#ƐrPUKBm8N}Qpd3"쏌H=Ym7/O9u) o͈0Rװco Mdձa)UI Cw̉{M)qi9>~R|[ `lGJ^@RRXQ[Bb\"h<9K3}Jvozj Cei݋#Օ'R~씬ШǕ[چ$f0@]cpgF.&_m]+ ƄQcLT|Nc1*Aꮔ. [[~pb༸J+3`ϐ?'( ޸^\?xxg2~)`(BC (wމf OoZla:UIՆldڔv9#"g7D`DdM?j跧 Cfovѡ@ |vlYn(Ct>4{.@ a!ƿYՏ},*hLufUf:FNěd(6zMfiWK*ѧƒ0xvG9$lŢ 6^RD8)vGL0"СKk<]0l?{`oJjr 9_phS ͡Ӧ I-<]KJSS)% YEiuGS9|N|>V8?/&S#O '[p*,س|h/T%2x&-.H#C4W Mk.a@ -D!ɞAu o@R= 9I!췺  "+j YlPF <~;R5 ] ۋ d3( "@t*`ě%Y3\ap`Dc-* u/0 \zQovDK٣[PR]X@F!Ncp*/TG Ӿ>;B%q0<X-\4 |YK5<( bpl ?x8Nc#o`%U|AɟGMl0f rq"{؀p;B|D@5P)!p7t6~/@#.k8W ~h sTHMKMsA<Ј).3vc(%4I#^U9,^鏶 ߁HJpè gbX-vaK& oi陉#Wb̔S\ %ak! F=̿4֓X=VH`}@\xPgT.PSNh?vE'>I *ȄvOLva KEO5xIJʁEm?iS"B(4$b4F6-+mU&Ԅgl#f~ƫa6|" Y0ZZ4$\BkqbzPփЈ6kwǁȏQ"U}f!񞺥uA_&RPd). C"IU#ZzL fb^PIT$42+tcn<$%>sg;%Iv0j-FDzOUda:9󀃼VyU+`#^p@:&eB6I.dbőKTR`ެg$M3(i#Fjg:#%aD;ޖaOgt]lr a2-5Õݮ2||o?ds/f@$cУ kmHCk0g߻ř\o DPдbtlޭCɂ`|rĠ<]`HZx @٥\qhPZ-e BѼi: '|8r$y ŀD"7wJ!x|x"rE+F!L.u߸`j9[J|n6yza;ApYY O?@a.@ -xt0)0%`-@Π@|ۿGq݁n@0[]١s ?2bhupɁ ,QXpG;ǎq9y5c Җ,WjLm{1s|@L ( 0w8Ea IcqkMeI4X.oZ+J7k D x螄0 ]E"@dĤ7ƷGO[6|O (~07$W^rY@= =Hh 䨰Z߀ Ox P0HF("0H(; pجYx,P6&V>?闪%P@KLP*G|!E~R\"<xMlPq a }"OᵫPD L x;UHx@GP |./6M1lQ%Ӎ` Hzp)' @gH|NĦ X $'h< @ _`\^4}88DyYAltCv0`j `#B ->^'I!1d Rh7 AtϰNECC]gx#npҚ*@ $eNR|h $'>T dܯRÜ_υ&prFf4ycy%6N6\LK;e`#=+Fob"HJE- py1 }.鎶1 bhe%Y<ū@p_[Ȭ7 Z/K~G0IP1FQAlY@6ߡ&h'AaO|mrȹ' }f#+&PyYpжe ʃ`@9?40ЖP y&c`p,`0O( `UŎoG@Dj+J ; 1E^Q-QHhy[}Co7@ d. ` iӥ'ы4 ;!70(͑2@ 7KHcXo[ h&4V+t3IVT{F./Q@m!mTJN@ Ra,A)%fV#+ N-+Q%0 q q|fm"nhSR#x 3!@5@vB \NXM~GckRqA,2fCR Eb,6\QJE8OOݟjEŰ*`(H '/ϲ @^/݉"~[R Czx4X;<꒒TsHap4v "hK#]lv_I?άBYpGQ̼1"~fBdZRazv(X)B R?@h썄%CVSSyE( I PG?c8@.?yP6E^1Q+(d-` A/ 8#7C2?z s)iv\ @+Kp6 ]:,@Q4f FdIӴ Fā0>Z{@LplMY)`6{+1]T@oT@$dp,@D-S "vb+p%' 1X >8 .0r F04XVH>$%fFdY&oӯh p}y_b ۍE@Hd% <q@/tn&uAZ03-` @LF&@GO EI@h#l aA W N b[!0m@ÁeOY.brP PL@@ [ G*6U(i5(@ À% 7VB0  Q `5= <`S{I h x/:$\zqz-"h_@Ty@EzhWo55&.ZOyǸ#M,k<.yLM clG)!h`CRX.ITi# T @r`$cXgDF P~`s RtZdH./ـ t[u eXw"LWDEe̦[^Nkm{qaZnbncv_{TѯI!.aBuKM!Z\ ' e(H֕l H_F Lð^&jX==ADv O0Ђ,Cxƨ&@dGsNs 8 Ǣ4#M$֑h%djĚ~(p4 ^bJelMHop+S>uH  W]Ƃ Mxf[{_9Q)e?!Ttڀ7`{+ٝ 'L 2 'ŦH0t;=C&A@ yQ0^( ğc*9aAgC|i$fa221'#i0G@q~وOXA.W eMԣh? `7 e`Sp MMT0PtHYĦ#a&|&J 0.*Ɣ-y Z ) NSigX`nV>r#Lput 9*sg=@Xe"tt>@[%j)9R`tl `Omj* vꝆhw`X,߹ĄG&Ptzc´ojXFXk:JA"] I@AC䅕0[W/43j2gp[* Dk0u<&F. dCLvg^׆|eW[>.CIwk5aycC} H%"˸0|16P$ơ,A)ȒD'ʳEJAxm$+04>H`A%[pPPf`0F Wߢ{nM4RI"HD$z4)HVY2MCJ+%J@jE$L{8E$$UYx#wDTu̦df;YFzˬҷg|k(5oC55m2Zʌfpok%xBB2)&ԪXSIVb"+CBl:zs@@>3V@01QKnCD m{/eͥqTt0(6xpTH CRU_`XŚ']P! (E"Xaz#\Pݠ$iDBdxǩx>!R݀T ?c7U_~d$' >0Krk! A- CG( ĢJ#@ 2@H _Qmӂ_W`D>HY'@; #h4`u7G:#01  B $JZvjLBX C4`ģldy4$^eX6>D ,Hb(%@E} kuD90 NU1=lŠb #5"ܱt([" 1Հ*2t [N} +pP] xx 2#c^ 4s<-~8+p8 =iL `hWFАo8wWp+^tP9^ ௄;ȸ1/| ^Ex{ WWH軙ȸ#@Wp+^ 2*8+]! !,@DB6{ HΰWpFtJ~1 X@&%P>XnQH<h 7Y|gHXBnVSp u  @ՠ>M<@, 6Ohv&'' nҫ@ QQ nixBq8q:R  M@0l=S d3'KzcUDet xBljgb{XE!^^׎&wId&zQXQ+ a+tv5:.`XYǁ 1.RxI&5؏X"($gTg"e9UO`- @k),"F3g!QIƻ,|!,@y:΋ ~oXʰE\0;K`9l,i@ jfj F( R0B# 0L%9sd6|qXLAA7(\*d5Td[\~{XP0ؚ6{@.+B I>K+̳E2ps @M dX/7o 6C>g3 ?op,a`-3 6{q?:_ 7  0"u!@f@ V] > dX/7o 8\ H?q@6`nw'` q z\P,O*$? }ef)_}[: tb=@ҹ30 #};^t<z!P,AtwX_ۿ~|K|?߯=W#_>_} ??;i?}[?|Oj>;ۿv_ T">}n/ &|<<᠟Ngưɢ 0 0 0 0 0 0 ]Sgxn F7'`kfMO> /iýݦ뚧C!5IZ|?_ Ch>>e̻'1Lyǫ[Br 9[f yV;B37[HGW?$Bng/56},;cO'@ Ly(Z*0 zA]zb1 5K/2JG@ Lqkq 1GaB?]1:G򐜥} O7|KAyxD[7#EϠV˘'@8ob#[yt"aGN_; 4g/t$KL{%}ds`G >f Zgi!rN43ug1 `* gზrKd,I$M`ubWŁpKoFJHF15m밀KA$/g>MLQSPGHs`rk"7yT;>+S|\T%ۘp j ,mK-moE0!ݓ,Hc#8tSl7]si<霃qkKD]9Mʵo Vgj|Uг-ϥ.i+BHV 3 {I y K?mǏ GA ɸnܼctjxSš%) (w>;x1i":)Ȱ(7I*^Pzq(O%ۧ7g5[SѿDuM.RwAJ8,j>-ؔg@8HOt^]ZTw+RArVx טfr fS]^ePD)K ֝uJFd͆qJHønwPp4=6|87A_R; W%WZZVxg1M(nLE?iZ;HFw(ٖ-5s =x÷s9dc.9זRmЮjnlDAKh1%] GDŊO܍"?!t *jٷݔnU: 6k2mu8r?O,o5'TsE &Xߋ9αZI :~ˡ>xm樰ҵ(r\g:6:},:%]0d"Hvi_Cd^`B:N>ǁ!Qlf n0 (3I vz܇]x7"Ai>}ߔXA;kF)6n6B4$ ߾श%ןӻDV)a,S71MJ|DON\IĢ%,  07,`c9,,V6Dw@+ uO!}Oה#9=˖{ִ,բdGd}Ȍ~pBxYw,*j7&rJ)n1覆 JAذ8vNs:Uy _6Ub RPrܚ|u^Q`{ ",O{t&I+m{78fmсtOY2Xr[{iCY{%s? QE{ z/=U`ou/r,⾬O'+TȨ)"tiTYx}׏kVd$Pg<-OKe. n_GFC`ofOfI붤 zKѺj#G:zLMj!m $ca8[+ Uw_5CR9 ruƞZfLxSFش:fpCHVy?٤BEswȣy7DSޑ&^ߗK fOA QJIVuOw6P{H/Pm; i•x]U+݇xf=L=Nc Vb0bZix:QNmu\P   PN{g[IrPĉ*%@.0PnT #P?xQQ%@.0PnT #P?xQQ%@.0PnT #P?x@j"2Ȁq@{ E1*e! fC>eƁe%eyRt8@!@{`D`ҨE{.)C%n%- ΰI3$'2TU=@go)^YD9t)' Y!Drᙀ"}kEgs8W,ho8cn/qGUn^j  BArGwoByu$SYGD9sȁ"_E_ Gd܈P <,qa7Xq3.r @!RY F/`E/UXSU@S݄BZ6$:.0` Ή5g;/eΒi9<Qhb NE1^":WgQ7o♂c)2Zzr:)♻gN`#VZ4jsSYZn=$,ޤ + ,`rr@ Հs6 T\wrɒzxkXaF|SRLԐ o}@?6{||_(PM Ԁ5P]UFҰV" v/Y}6;WmU)&\4$i^@HZ cw2[ .6r_BI}eAzNaG4IjW2~H־H^26-= kZ3*U3Rq܎*_a_#v Ko ~t5\U⧮I'Iw;ZA;u #B);`N&{,i}/K ˃:8%oD&V鹚|Co0FwO/LI$4=b/T{Yk\mV2Nf@7T|\-[ChWI5}ovOySfz<2iS5*?0D!^PFh*R 7͘5p\Hꚿk `gc_g:hz_zAjʸ%/sNDۘa`IEOͦG(o+ϭc׬GaTYv`mh seWO$\h JD2(³FQ#I VjH@.i\oʢLܙ쌍M _pWGMS5t~c_r0[keiFN%a}W~qw- J,{n|@|&h\Ĉ cC0W# {'Tizuf0k$ڻ{uH] )F*c'SgL~a#1ijҤ9}lF̭2( }WX7v/#_MYݐTs0%Đ^I2 9 l$?%K$ݠJ}si)of:('bDx,Hڠ&)k @ ߆(Q@)p*/ջԆJAOPh @DEUF @V@L# * CxP@llp`&:PԶ,FP%+)@XPmi4?PсS-H9rv̮P#!_1,Q& Ofʬ7~@A 1:dʠvPBՑBo 'or#M@cN?vSϹP8C1Z iQW|S߫rE_pt.bKlEYݨuXٿNZGKĔ98f9 88s{֢9 ƶج-G/Bd.هćL$%Miu=õT)kbUlQ&#\GAƶ ZGef 3&n( 4s=À_6>#\}0P9 UI&6 M^Ex3}Zh:ǍrN_N;eޖ_clM%G\kJz.`q)ʟτba:ői5+lB"'+)\ ia^S̹y+Oi3vm6`\Z hQ"g;vqp9yc>f !}[2IC'RO+msTL]DGpie@w4n^:8g0v3=kqZ2_vͬE- T2D -MK0B-[S^h+1'(7zi`^ y,&Ƿn h{A{Tz!0\"? ? 6Zya0YGKe +/ZY0awW+x=4xP&E.p^||(p@)Jqٽ1HZd3 %B!О)9iT,I # hՍsY`a Sˆ-HWh'|hU@L21<X+mD@1X_QT#k6&6e6[E|JS M|Qq]/I{v",Ǵ$V7oF{5)jX5{P ^(=5?s[$X} xـͨ2φˎe7 5K'E' u>K:/f\iug\J-QE|U2za8jOmn׼o杼΄2\(KL*#bFR[Hz"FgߑrZxfw }w"Q?u/ Fh,UYO=T^|iEj Qٽ $Xj5O$q oOO aI݇ѹXAy*\ ).L;O49ctxf1:nQdu:=1q]&Gj|֩SLM8jCd__CGuyaOZCY|LZ0g.q);mڴXOxy]EDm~oc&$*pzh>}34Â1`Mf2{mJ2Hse!(kS9yCGF<:jBHi=4Nɲ,_Agz%hK:J \`v޺j=@߆pRPNϧZ~1꽠3J{zn#:f6s'j37>ܫQ,DvImvH/ifL|_eqy kÏ337G( +l8ЀuhmY.k!є_(,:Įe_U0Ͱ1p5ۙ>%)Uf/v#:YX9J]>ldj)9"Nfev",QATfnGG7bEnU uy5ۯ&ve`>Ԁi X\-W)XQE :wF>.^@)˔Y۝>iw+_]p-wdyNCO94P1֐FU4H4u {ciT_"6;HvqrYR51gTW 0˱c&p,#4,x5J5_lo&*xAK|\t7o:Ԃ uI?>]Z8'hAꀠ.d:[xk ,lJ:8 _kM_/+JB ÄphQjUZx\֚K81`۽{ځ £ʠ$mK|֠H貇 im CXHn:wpUP 0[71eL~dhOYjr,5F9m}Uh"IoOy-Yi&= ty]zm~ "N\-ޡs]'9#!l܏дhDUھR;zNNsZ(@fklHlH]`LZxHMJ(\,t?w_*` z[¼8_1{\,H24 C hоJqnP o1&iq~=meb~YaEkr3!cV:g\P\t8>u%za ($R nKtM)?"ta? .ԆIg/Xxą!uh#*h"e} uի-Җ>?NŚv$K3P4IU p`&юF^-`:.Bs)=g ,fG҇6}!&Б#Tw 1tZ8Ϻ4@ۀ1ot5_Y酗 ?vDɸ28%p\;4’I⎴zqEwي?OsUh/>vLH$8YqBiF }+fPh.d n@՜T6+f0"K%JTHPM5!_9fXx >wH*\ k W;N0I+]KM ]7;g "#BcrV6-|D_Ҵ#źR)vm UP1 WhI)97Lx'; Uyώ(`ТCFE_æ"| JRB}!Gc]́S44`8q2F@4[_d>>*Lj@>i4ї3R瞯+j}>][ٳcH|Ļ{#ޏ8"^lN0%Ga"F!`LBExIG0xŢ[m.!j@Ìl6TIUdH` ax_JW*N|Y'AV> @+Rgʭ t |cw$\s$ a[iȊZH yf+C :L-!0^ǭ Ux  ZDvOV=vm) 7ق?znSB]A.7 efy Ie)J[BH@%u`'qH XKTX*3A`8_}`PNtI> %A3 'jzWGΜq3[d(+c>!c v4ihZul'c*_},\­O$aj7)E(h &T?ccuߚr[mKkM>gKeB@¹a$7&Ͻhyf7peS2F(lNgzjm`?`O|Eڔ`91t{>W`?\}ɋꤦ%< oI+O~/?H ߕ̅?as(AOQHhǔ)l8Rl䬿C*wh?5́?qW%^}[rthT?eSECB!MLa><`'$np'̸MHq`7*d]%AϚ,,pК~8C|2(<58m[Iu/~7z##ώPRG8_6Lb=hj[#/ f:;|i'ͥo_R2Uz H0?d%d̍wUct|xK)&5](aj[(kC1YN*aWXV]vL_W"hM6¶yl%Y0m772^I(a`ZW[Cޮ1%I':qCrQ]2DUH;T mf81[EY pf;Y$߬e D x)dSbs2,* &I5Pc %HXdW3Ddc-C(=]nU[U`i*Ȥp`c  X{A OiL%Rs5#,)qr}ٿxA}smoTwep ?& zoa friSXtNW vY|$D|B~S9 GWGX],ˮ0vʆ;zAmB &BF콽HU*Ё[۔n$+\Wj(d۩߷ԢZq<&Ở c9w΋ adqh DbO~Ux pFVRsKzG Z~+MZl<9QCD"ڻFQ?W(!!d \>|0bv1BNP]@|P9TBRG-jJ (TRUӴ})bS(?jppq9xC3cky^`2c &Y * 4|+^KKFiPqt n#l4IG4P[#iMCH(*;lYmLĢ8˅`ý@ V1*b-_٦?(Br4Yi! ~|! awڞ*A9U%6Y߁X@$¦1Rnb ^ 5`E/K6p^te2_~~W< t#7O| .;Xz|T4Tt \a`E(Unz~| 9rSſ(B 5l<0lbLLf48Фdӝڭjon$$\{j3?صŸ$ёIҭFNoQ#׋kh7P0e{Ue:$.y3FWqt^k /麥sǀtZX'$b۞/ _{K=ocj!v;|Kt;rueNDpt TFחI`-j΀Ng/ڴS|CE>!Ifw\,aKX%jww9<zBME9+ @LvS#e_PnZͭӼ▽˕, 1JzI7G`4XqV6ےB]O\zK՗xt4o SD$fCgqDVf/4ӮTbxwr}1K` j4!Xn(kK Q;ȑUM, 40u /sRFCM;ĝV|QB.Rc-SN}[9qiq@Y09n`Pi- duj4"ƬO< Œx @F@**DV9#䀬A8m\J",%^5NiFTi!BvߎdLNnEirE#bX#Vw$a-{!;q=ꀇ‘>Q6~[,r-* S0ңTxIw%?97KV#p?؞9 ܌x똙Rx]K{ rVվ2 _!`GLۻ3G3JyBgC. a01 4KPmRb.i É5bEU+mtvÜ8֫Ѝ$)RGA;av| ^R c3`GKfUy ()G.֢į)ZMɁCc-d]` zp@:Nf1ZK~GCiGndxOwCWvTZFD+s^X~ȵ1˗๖pQ,VLC X't &u4-Z8=V\Y@^•+"2X og1 3@A-#2M.#&ЏhÀ3tiM`mGrX'%X;"y,mr@,[@ Y"`>3D(ށ3bF KN lp&5@ HB n#<$0Vn|Ke@ubQ!~t l)Y6/;5LJ(+ AU?l$)3 ?R&f~ci܂0#me &`xN)n>k(\D ͪ]c$bd. g\Gm!fg~ )4 vPԧ*Ecق!D? 3ӵcm;j͉E6UׁV1ϒ]!> A ` &`exk5l䖮KP-%Tp[9vid'=_*dgg@ڛ$S܌TZɮW\%c\٤.B8.185ĊhCo_: {d@/֝/ټG/ʉA@@RQI"X]u (v uxpey0&&e ^ s*7 3(U}$t+Fc\P OPRIBL+ΰs8dz3ivhqd/6d>B(]o6$$z.rRp -oi' RǾv2GĒen=X73SO!⅖l>9tvIC_ hkm9E A$m$x1bhIZX;EgĔ-a` 0CLUU(_q^K}ES;Әh Cʜʐ,f*rU)$N@Ж?%)lq*eO%T+f>Mu$-a kGdd 4?W (y C~swK<z0b|Y`nr<@rɜ? 0PwAҸ@j4dD((21)] 4ЦNr5&%& Iqw@>442(B䓠I6QJmտcր$~2BUR\n%58\?q_ZRNQ%tA;.cg `ϫ:CZUqHpZW kD` 7A#bD" ӎ(f{+.ӴZIGe+pE`s L=Ӟ IJ=TuqRpa}&M'ە\}&<MxlY2ĸ0+|^%$(̤ 0Isw'{E!j$& ݔOe}˜8r 24Ck1%+j):l@6}61A oXhb|L(7UwR҄gZ\*#ʒS윍9\򝤎Ҧdx'q֚Wҟ5S'1Y{zB"}Ƀ&o>q봐Ce@Oy&EpU brxkg6al7 uswYv YR*Zo SyIGW!cA>孴F|mweC"luf#K:G@H|P3'fL՘n%DX D5ά511zY_c38L["#IY+ ]7N y~"i9>֯ׯO2{P;Rb.e(DyBꑆ<+"sM )=UBR|DMLJ+\94e*aF," WD1BjAߚr džz`Xv,;4OHQY YJ\'TwŒ6Z?uM~~% =zLe&_HZԥ~'V>ʼˡWq*itWr%ΥMhOOd,Sl&)![BP[ՋР( $IP=4 #cPtEhPAH^wtk~0CJ% j[@PKȯ&xyVk|?"""aYgmgCHKxgR PR 2 7cM6z+=,NDDX%c˷4jn-h7PBC`FX!JkcCbixtEs9!YOӷ0x[ i: m f/|BsG(&"18"{yYdU* /f%\eKɛ6;b T5vP6{grz[a.3+>ݹE~B o}~,xblX?owH|qW@"]BOVa/*1vnyoMfgBQkkzExK?(<*j5DHNwck@xuY}IhdE6$h4hvh9SK^Q<T ` ;UJ⊆KF i _p)Xrk:h ~5> Gn] _?:uW0p Q-"( @A;%k/%l.S kTY#@.;Pln.2 .l{2=W*ndZg%X'CDT J@)z6E 4=Bw%`.<OX"lOe%;޷]썉W mܮJ X@i#Q-Nsg,|.vV=`Y N(`od+!:٩Run-!h"pHwf$(_~Eg[9[#{v] Zqr#'Bv#D)FsG[6~NϜ#yIFZdJ@~T@|O5,bF362J{HL GQk% SS#6fZPx@Uٽooi&hڈM3u>XEk3ih?$ZVc4o=.GJL1®h@{0pǏ4妴[XC<1'kп"b@|'DI:iJ6Ӱ6}9n dYฤ+RiƬm9+=1gD4ڃٴ/ GC.Lz]zoa(xl4U_evkd۵cj{?ʽKCKI,CG/63s ԗn$(xbQTpnjG1xq2oi^0B'1cጔu sɪ77#SOaڡj2+һt lR[}V0QA"̋n'&*4sʡlݐgҭF# ʁ5o "ò/JAhɈ0)f˭)3<"Vd3$JLǸSb@6?3yVŁdu`ҟߛ=:9b0y8ϸ-d`U`̊9tVL`[L uNK"P76]h:0/0dEVDX&-;14~3@ڲ0 S)s.E˲~VM4&}*<>P%lԆ9 4u-)lM|e?pcGǹD = ]!ѶYp:V hk/]p|oTLиџ*{m8ifSG7_Nn]d5-~ꚨ ɼ}TfߢShZ$$8ud"gy@*PDP.`+*JY" j2Z)xY 53⸷W (FDF(F<xV9p>(l&?6r`'`^TF5`dW0d3zY^w@sn#t^uM7lys4|9a7lw{.@*)'c0Bru jNq { O 6jN?+/]\E=͠<Q!0yz]w8J!}~5B}J; %7Bq#r{=f84߰p <m nԠCxIjA,Q 5-rodӭ*j6GOTb $$`PI]A1HizK% # U9fdGX9%Hjи.~건W^y(+#foGI-肗|1( O@u ǀx9΂ŀx\9⅒ssh\S gAAL<`[p5mAA]f101Op2_/PY5Pk%K|^f*ef# '8̈"BxT/eCx-[rx6R(:ۂʼn#n!\}/q:Tg(TsYw@>v (:b KGTA< #1cmHN,{xs1E>2A,LZ@.`?*K @abMzڀB1| #9҉F Uy!sS#y<ؐKj %Bi@ 1߹qz.GНjhĹ.J৻'z}kZ7\F} R -^ 9GO^*gFZ~`VcmD=ek/Ttzb@RXM v"໓p1~f1OH UB%/l0 }N ` y} nqUxt n:'1ޞG eGy6S2 o|+սDܱk< k@#@L+4N1&GȤPo!1;1g}H Ki a80 PXm>t1Pr@hZ G94 U161yBM,(qHGA# # j1#( >>ha(H- V|pEp $t/.4D 8܏o0xs ![ 69r 7Cj2LHWr%)uɤ]']4w51%]7pr#Eʲ\DPM8 VTR~Z΀<CG.$܂Zԉ쮗UU@y ͠LAT7J\Vis{xl%&I|3u@exY5B`k  ?]t@>~:pi.@AhJGD[1ݤНq-l`_ @rxtB\-*HLsSSX~YsV.Q48XKg~ǙƐa LX]t3@<ځqˠT߬\AtF*9\rArmJ ]*6m5>FѬac(} |@6):x4IcMHt`%rԄϖ"oabN3(o`0@UÜ;PdP50Q!G69HkB,[M.𒂥I|˰Kp;X~fk \-J=P k"d6viNftGkoix64J$ 7l%QsH+\qy 25"sp:ɔ2dӐ|X:Q0$$1rۨKW)URN]Pꈃ^C9C&[AlW 8Gr@9Õ9CN+N2:VPH@YQVFs(& VdW_1#r* ~_1KYp E{߄# r8r㥓4ƣ*|Bί;F}]NLt$,:gPZ΢8{U*[&k0{TRϺ쎷8܈Ce?@5xֿ=* ,%I -G?30κިR|T->Ymk~}94ػaTYE)]PȚCr㗳 U'LH1d0 meν\#k٦@琼C:1pB$8S :=gbF,$*j) ;>Y:L S?g#BLJ6hkaL3'k~w; pzSc`OpoδZV-8eT Qv|2<t:8̑ U UR.?W K}'k 41%N$)7 ~eXdmU1U L }oE+6ma5\_H _Y zzZcj-ZۛJ-ljyym"9r*5Yݻg7ydZp(i~V@ BU &un!xyVcͦ_ȄY>O&,^B7}+F,(>I(\Qҧ/ fx.Ǖ!\A/=]X0y/qҼvKLgbOl 5b(u'%.>s j#D IF8a-6[ _!@oLzF 3^/r 8H? Tr?0[BMg:^nnV*)VR®[uDv" "btBðMT6YSNXs+/6oY3Df0MZ wߞqΙ*;#@2 ,zH *8VXh_Nl-b́f@&PCh E0@8 @ ;'! jYvxNqt~ E:S/RrBh4B*b? $]~Luǃ";Vл`q wƈ{ pv"|$NdgG@R8ME[1@ё0E h_bZM)+̶wp!a}8$?@D;ANh O=uS,AwBU v(f>m*r_h̄i~e1~dʐ5ՑA. d>{~l$3">̕ yV5r>M{ ;`/v#N{6`ݨtWM+tR_~4T}(xtZ]\hS7E^8ܤ7Py 0s +a3-T!c|*ب:3tc?mv =v:\- s~}&;q2ֈT1A/y.fml$cǦnʊcEP1izr'pwXV2Vh5=K0 /gˣZ%#rxbԇ݉ey/2m`@*CPI:~m ʶ!_3kc`v_ưxt4P+Zhݜ%:+N&RxBEXC`c|V6ބc/ IQ%?V8@@ Efj5ڳQm ,?0_/݂'r ٹP@XA|ݖ(w'wr̻䧯 ICq‡bJ Ag7?S W?Ab+' )2Ϋ>y0!G'4H J!AyI@g%M#aaMLJ$$YN;GY~H>0ThW~`] ꗾz. 'Q<7;ncc9p`ӋS7қA>h Eew#hX\K 3~81RGI^R4֩ߝlx-nnY)7e7:7 MgDB '4}UIK_֥ BL<&wEW25(&hE)sT}iRLܚ]\`#TBύqҁ z1FdoPy".%<w$> !#ф3? $S3$M`c^ m8m~ņbpf-B !0z[;ŧfqo7(HFyȮSGOwUg $cޕ'Նע,wz/IbBN< ő&`!]ߎ=^/_ȆqߎYcM^Y;R(!;Z)ADV-2!*k(aXGV4(/p^HvٳlzBPM`_8{{kjצ ?@YD"WMo1w=Q9]JTzD"Wn1Ub!-j!3%vH( xOg#ebdzC68kh W|#^T%*`R#4EȁABOM7΁#zvm$`==0ƞG_VaZ4V杼`n:o >)* N{KxXAP(ruAN]< zZi90H}~Ԥ`J6a;$5R ְ\Po" 1@kOD b]jŹ98v&<[ и9H"0$?yGX%"}]CC@Bt^ B@5% ie%"R(GBc5C^!I>8[ IY607̹XF9v+%>8- qeNw^wL%>OCIFN$$}) RGOk*Hw/6 "VS;!p8(b e200({up7B` ,˃,P%%J6`ʘPtf)f^</) g-&33ݎCѬ @3M8%IPH; $)f7Oв?8O M/bFey -V+mU#e @}H#ՠ6XU& {EښO#,S'SECIEU\D*cLC4 )㮹ؒNBhB( qONk9շ#!Q_ BUY|84"W@?l.hB&bOf? ?9cAooF>{@ސoJ #kʈWkZYpmE)BQ&ĥSelxOצ|7\~ii(II37AF3\O#@ *~ dX/7o 8q?:_ 7upoϸu@X1dX/IvȖ=7E3 YrsJqmG8y6cZ(ډ6Fݮll{kokmmld+gͿ:S\$Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ dmϛDh{6g9p?D]֠ ΄59 vkaFjSY͜hF0Qlvd5[)ٍfkv]Z4 μGa8g_¥:BԻbA`!kW  1 dX/7o 91/?upo@6\q@c1 dX/7o 8q?:__zGpo@6`mX[ lpn X@q dX/;d5[)ٍfkv]Zm(i;Q4d5[)ٍfkv]Zm(i;Qlx 1 dX/7o 91/?upo@6\q+Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxCmQ"{W\4XO Tjr&}h=Țqr&\Dh>ڪMR S3lL4+PlN'kpk4懿[3ܣ7.G7rz?#u {hpcsMӰF/]< nQ>!.]w-W[.Ϸ|]ѝd!CPn6l36Cvem!u1wI>|`?In+ndZB:qC#ϧ.=Ř<ĕtQ_O:L&TyزtUK)uf^L;U!qIrGDsXKLiuA _ +<@0fzpm1$t{O9ͤޜe@iW q /q]6hY"c?{+Ө`K m @wYSkߐzrV" p{tZXRH¯J+Gax,κaPWuj~f`#Y*x01-bPt5!Ou[?J@L`N%e:;d\O'{޺x81?8pSH~ _>ӉѾ?-gy@O괮$#(Ӛmxq {^GqhDR;XV:VpxNA]`L]8Ѣg dX/7o 8 3@6`m?_C,-@@Qdb ϛ1c 8y? o 8 |@'&A^Z6n-o 8q?:_ 7Wp H@˓@la<3nd5q dX/;d5[)ٍfkv]Zm(i;QƓlvd5[)ٍfkv]Zm(i;Q`L@݁xdX/7o 8q?:_鞜O0&U+}cF^SVhZu`m?pDf%x. ϫdWpeڐczYwO0̕U.E5 dX/7o 8q?:_ 7upo@6Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA&@qd[Zx%p |o 8p_za36+ B2UaHS 9`m  ql0¥_ͯͰ',>i7B風}3ӹ_XGl)bvKgd^@<|)QǮIyx%kkχ:зRuAQ dX/ِ7o 8 Y upo0 `mupo@6=49?@1 dX/MT@$6wv]Zm(i;QlƳg5A-~ь6c4 Vk6cYݠmh@c̬vFq[Gu|+G~݌aI"j?ɵ '&B!⓪M11 dX/7o 8 0 ?_o 8q?J4AK`;>c?bF͌H@aRX^BgJTsJO٨eW 5O}:gJLʡTLʡTL2U3^z S ѫ5q&\-,.Q>vG]N3K}3#w.֮f\b72?Oo\ Ha}<S+߹M)c!@"\tF=6tr9w/ܪ׷\+)b,00ͅi01S@L $+96*DS30HNghy(}bL"؀ ehۡg<!v.<ݕ ]˘\Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxUQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@1 dX/;d5[)ٍfkv]Zm(i;Q1Z- ݔNԔc4 Vk6cYݠmhJ1m,{|@TR2 v  dX/7o 8q?:_ 7upo@6u `Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA (Q{c@ @eb;! (@ H1&(@7JQjD+>lP$h}T+f#cca8v;DB&cL{[l$skdp7A $ZDdOhy>BR*MTk1@0|#PMkj&?] +-2u0kxe]h>5YRI/5^#Y3Ks._a\瀣 kQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA* Qd\9P"fl&) wo FZ3F8StmhJ1mle51nk_c 6j6CU͘lh5E1Ҍf8u) SЗ&z`o?,~g3YjЄwbz2>ʵqmOX**cȽ &f oOX;|~mI&˥ 1G >=@ ؀]uEB۷xsxEs77P@  d8 VRT?=9?:_ 7+e??_o@+ 8Ja(p9(-J8>6St%U d|VEVrZ^$颥m|p<~H66وP[#Y و+0ںAThXɫI6 mN$k@X4%SбL 9@6ԿTu:T9CV'X}(W؅T&W^A-xǛs,[Лp-RfJSFM!3/B$[<&n,;4)La]?F]>` `DGr] xR?E'qrxN Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx dX/7o 8q?:_ 7upo@6]Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ d< BD|@`mG̐ a!t~#Mǿ?_\גG[U>SwW ,P(I֬7iz(hEx%W @`AqzjC1XD?X/ZF 6(cuP4>k%L66و8{Kj; [)Dkm7/lСܸQU|T_& /d(`;7AK$u¨Pb~3 -(ʩ4'/`Q4yL P"km3%/Iԡ 0fԻuo{ַ;4E) Ӡcne~EIO@%q dX/7o 8q?:_<=w doq@6P 1hi{;8 hQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@Q dX/;d5[)ٍfkv]Zm(i;Q '"Rκ tم9d5[)ٍfkv]Zm(i;Qk@ф, ~( j`@=m)޺>(|@QdX/7o 8 /@6Y;\S>䓊۽VG깾V{q?:_ 7uJ8v0?;#Yu` mq0،2SAxH0Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@s1 dX/7o 8q?:_d Tmve>q@6Y?cʀhHh`UQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ dX/;d5[)ٍfkv]Zm(i;Qe@\ r1ڍlf59 vkaFeE awS*u.t9X;q dX/;d5[)ٍfkv]Zm(i;QAmle51nk_c 6j6C,=@}dX/f(`(Âo=mq?:_ 7}A>m9> @J'{;[Hq?:_ 7b.=io[ihzJYؠ BT@u* @9wLmM Lӧ3HB3 pmq^~ tsT<ϟBçp!bKGyAmgQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxAEdX/7o 8q?:__'I7le51nk_c 6j6CU͘lh5E1Ҍfc!Mfg$ p*Ti`c͵tQ&|>IO0EAQbؤ-5u dX/7o 8 /@6`m?_Y Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@΁- d ϔïC?_~V:y5՝yoǿ?_`%E38cHU\H~~ax(86^@828Np[Xzr晀ahp @ρpd $8@>?_<upo@Waf~B&},}_l?_xScp 2+ ~:j:<1d;/x vZ,bt8# ?+uT@\ dX/7o 8 /@6`m?_Y A q d p W*@3Mڍlf59 vkaOM&saFusܹ%A-~ь6c4 Vk6cYݠma xZWU˄42',z9!~3/Y|Zpv2_YtgT=BvUʶ~"/8^3ag'7b Aو[-ʇ@8 dX/7o 8 /@6S5=4*c/~Yhֻq@6٠S P-nRQdg߄xE[HU@H-XQA{1`.+y,b j,g"*!YGYj+mxjN*Xll-.q8wb()Ȧڶ5ȘLim] *4\,ndդPHĈN56A8t.,\$:MGV;({/Zz)=PƗVN?@2qPoAZfkì: @5?9H{b_2_2G~'v}43Tסʂ).Py6`-ꐈGW6Ǩ O\S{ p^-ѫ9e3|,s.$>'_r7q/ç|C-6`]`!42z @Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxCQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxq dX/;d5[)ٍfkv]Zm(i;Qf>[Fi;QlƳg5A-~ь6c4 KW Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@́Md:ڴ?em8Ya ~}&pcۍ޿7upo@6`m?p8Y՝ٖ߿ƭǸŧ_g{0G^fq<iJ Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ɁX`a`ߠ",.|VEVrZ^$颥m|p<~H66وq\퍎u|CK"a3MtdJH]0k@gUǿIF nfTBԜ6Iԟӄ`.FѹIU$^n, /IQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@dGW vjSY͜hF0Qlvd5ߧbv g&& IE+:@SFg5A-~ь6c4 Vk6cYxz;Vݳ(8_^JJz*huZOncгZvɍ%ĕZ$Tx/?@+QdX/;d5[)ٍfkv]Zm(i;QV?Vi dj+iֽ$cux~ь6c4 Vk6cYݠmhJ(&9;?/~V( .RSJҕT3C.pU p! ?Om dX/7o 8 3@6? o 8c @q dX/7o 8q?:_"@OU݄&[86`Dupo@6tλu[(R/X4H,+ϛ1 dX/7o 8q?:_ i1]yto 8q?:_B5q`O*b`gjjҸ"JӄvkXkZ-l楍CߞX,KVѶG{㗗,$as~q׈h#Y^hۓs~@&:l.+QXH3وV/l#%|[(.S\D (f_{3.?h^ va D^ a 9mtz(Nd}ø]kle \{g`@T,:ճCv|cƈP.,p `lG_UGsL0ƌfoA_raߵ0/|oHHy0B#7 ,x~ă[\*{hA<)z)P a93SI|A `UO-qZ:7-r@4E i, HK#s_U^ߥ쌷 Ǻ\ c1kF'>2 >EX,u8ˎhij+fяW5N` Gdx3:KC*HqqO%ߝ<>F@0~EM~PmL^ ZIAXpnxiimle51nk_c 6j6C, \[|@j^}Kg|BMxP?ohf^:{)fKK_{)Z'»d dOL@Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx KQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ dX/7o 8q?:_W2@OQ}XgfoOoǿ?_H9x,),<`1Kg%Wz dX/7o 8 /@6`m?_Y @!`a`ߠ" 1ndYeg%JN*Xll-QδXնv@d{idL&iG.y72jMC[sӉ$yZD%1&< hM,O X0K H2{r7cϽyDn)i J5a$j%\,Ǔ}@@0CuUK j0@*"peb2h]/x%o}3n_5Os*QϿڿP>lyz@y_,{أ?ݿڏ$^>?7hAǂOIP_{{7?g?){܏_d_?u=_nGS?9?o?u=o? Ͽo*d!݋tp16azأ`c:` X.Fs[cr4Jk!iu]}邳@7kHIg>K;XΦw [[dwll&ەV{E7o"A_Mu6 k\3ɤF{Ne!\О 'uUO-h(KDc[{{9PiТ-5҂Q64J*d I⨶Z[C}VlT^QŞR7҄0Qb<BxH-3K+-h Uߙȿg4A/TJ[÷^heg;g&W* \b #5iй`~M\ *B[ rÓi>bw4H=O[ e \* Ы%(ms_.(?9lɑ(=שw-iG2?V</_Oؓ6ik3DŽXO5?s;5IʠZ9v9֓U'ER U 73[crOp#PpJ\j2sWs-͈Rv<Kq;,^[wًIjk'А_cv˩\#]8//v:tzsX1D@ֻRy{C2NN o1Lf*/3Y3DjHi0|qBzٗbtCJXp6C5B BE5s "ɩMvIu>LyJXP>p[E/ dW*dɿPn1בᔜUtnt.t4Y! gV 0V쨻30 jld~)'kOt V%[W(pO_=S-LZjd:4k@x6iׄ`C`SPutqC9¿ؚ%[@FbU"Nx]tPx2O?< SYvNj L:=1q8l F*`}8HbT63wSkt*n? kqŴ >~AZ7~w͆:MFZ3`&ʘ9W2b-蚪v&vHFS 7Pg(JgߙGЁ _AL;BaI<}戳_qz[}2̗" aY2N+W\Omj@2=C!臗)f5*~0_@J;IZW3ט Ȍ&]T02Ŭ̀f )G(t`x'y@^`7d䜼`ǹfUu]'U}&SH~ܡڦж<8 nW^0zlq .Xc$FCZ(8-0dtojI[1%?L[lDj;4n7tЧ f>5p$1/"xS&o,jW< r nF Q)% xe+bP(Յ%%uX >]V .8UYbdCKk KQ=E&o{U58ZI .醽NUjh;jV?pJ-Zq8_Cr ݝiEb~ϳ>M2J-3}oGjr\HK (z4}mDtLH͌cF\l P',%)DͨSO #ukL^j"oC#FFidDOˆj=~FD0Wc!9fS >"%$aٓw'Qmڻ]Tf ơMl!&mb#V燱FzaMOo|_z՚J}ZςUVt}͘!.< '[[6Jq(QĻ q֌#P$! ۷S7md2`Ɋ>U"9nuoL /oi?CTh_'햇]5+4J/Q!{%/o+IPzC{(dZݦ`K%liSN-e{Y@{Q2nex`:~(r&QN8w2 Qx#a9Aa -J.I|R_0B>6;Muk+bמ*/K%I|RuBcV1*%hĔ@*2 |R_)/K%%g=*Hκ+˲%%I|R_)/K/N4 lG[g<)j3eA_oɼHYL4Һ6LfJ 9:<8p`Շ;T#p. ʮ@PZ4Sа+p !RPڥx} dȒK[rZ *۴z]!n}M=Ⱦ*4xy {0`'9˵=4}Bo5NAB1Kn'L~@upNvO iHre1ؗe=-C sR4B6ޖ&.jF#(U UfҴrWl](jӽ&N)Ԡ6 b`0ڿw{g:[\<:15vfÃDr~2~p㋲CG @O'*TKtLHWo,P~ c`a }y^φAq۟6)loT>fh`rs2k! CDVqc~R'DYq1_L@iSɜqPT>",C_Qu`O-jشh# lINJ"X:7:&{m`#]3.y:^&~;NownU Ppi9yx>N?ӻ]F#m|#8&o::73:5rJ|c{eb [>L{[Yd6῱^BPˀHL9%V!<6rMROܷJq4.{`ueŬZ?c =7Ss2I^u"[y1`<ik1xm˦HlI Xf0] }\7Rqx1#J,IjSxYG;W\@{ 1;>G,V9&! Uh`$XowsD'<z1o `dp~ 1jSEnc0B*Vl8$8Ih¥gכ,bqQK* p^Z Mi=f gQwX8~cj :uSG_aqنKGc*V_c)z&1Z}r@k / d2eX1w!f!ѝk + 1p$MQ`@j*IF{N}ڛg:q~KW+\CTD|Jv\F ީ{2C/=N@.@-Lk]o(*Hp19{J~?,hO0c?@H@n3&gȑ" aWS,,s"$m}In`~˱/cB]LGkd7´i 7mY OLvh=` FJ<*^ 1my#{\d?k,/.LPEZ K/^ɠJV"JuU#-~ҏ)@ _ v#Q'z4`lGd>څ 46ocr~#LR.oW:`S(;c~@_5#vCmt#|y/Aу{+`m><^^X:xˑفVϴ:Lb[Rgsj<,qH!|'`\Qh2GiwKeH{c`.-@n#04vQj!9}. | F8H{>xH"ꪙB9g0`Yo?3}yJ"uSa*" u6Or$z}%`c ݦ/μl$|}?Alg='Gyq]xPjl}Yܯ`3 aQP`} HC qsA4)xmJO7 s <2H`e.]T?#*ORnr0GQR01U ݙ$/qSm`lE5 Ed~@;J_  ;NJU/ݪ@eZ{]@8਼l\EKŖE unAwϜq=up`R5D4s@8Y^%P:pTKIᓪ\VVr:o9KޅOLL†Ê4LWwc0YuA>mY:ܾ6%ښk9™p3 ڦ1$yzk'kD (jnbYjE5?j‹9ѪՑ|{Pw ,"v^#?4ZjkJl: #a3=nxsdskjiL\7R,imUpUtF$!;|D L Bf# \@ .[ PC4q OK^caT(^mkhYbOSՑ41˦˳BF=@ XȃBueH n={OVc&3 )&V|F:U:|Fywlgk><< r HbU_\)"yKR:w \}EGb5Ul8VY#C7ݺ< .#p$hШ"cB|*/[+k{Vc+㮿Y8/hGM xd b.\H;K+uG|SU/kL fl\(D^p)KxS s&#D8UE?ڼ+x0`q l{$&_tRÑ) }cdn῏ J_V^5ߓC$s[Ftr9wUa.EgIo)狴 nZ,7 (&_;@B>yo8dFɲ)/d6}*ԛ2) z˜k1Ls(kTDWg֍@F  9Wn P=>MBF+ǀUTG |5m!Ll0HzuE8XwJoᓪ\U A$3LXhZ.L DdnʹVdwDxKLE4fꬽ噪2Rgt/ {Zm":999¾-@F?pgc=fyCg0qRS:I'mBd?:מKpBDGd|vQy$ܙI6d/Fo^ȫ13ܫ,&h;^u@iUsj\6*@c?v6J@,Ѩ\LUBE!G[(NA)IrVF@K04\qrgTM%zm;O@krapycRo+xm3O̢S2<T h*}wTOtݴq̙]< Fr6aAf PnihB Gls@Egz+t&L.*]֥OCstDr>Ddu3bq聆XUج *qER$B?#(>ݠJ AW $z/0AJ1{8 |HRl˙怲:hB*e,ih6i =m!JfNitN)@ʡ0CD{)rr#OQ2krSj+Xs.ziyIAV{d#0hp#`Y8R.g{!H7JIKʀ6ZO-rxQYv66zV-1>`Ӿ+F/ ex3sV|B*9 Xx㆗֯;. S33]q&@ɩz;I.dh jd~lr,oxNqZޮRLIܿ34{՞֦0O2CX&Z[mE(`q[:rQy&`'v1{^rjکx-4ΕEs Ȟ懢 &YtŌxŔ`'v qjϊL=wkP/lݢqS_{C_vSb%֯(*9QWjBOj"E@]qRmIc$2';p%3 ͛"W)˿b_X/(gf߿3U 9C >b_Hx K]9Y5MF1V c.Km,s޵M\mM 赨߮):kz.z3T6wrG _s##ݘ̪os1O.EuBF햔z[Mӌ;8P@K'baM![V-+2Rv- cmWq/5?|ƨ\ﶣzd*,MYc#`lGg=e[-[ u/OyqKWȝ?*7),cwg 84CUbCs.C0b#LgyD;'~(g@#a!(8GV~PbGmrGC6t0 3g0r{Ngx5gs'%O;?B$C8~y$Mj8nՓWlGxLiT1=XAj?rQ1K(x|Q$KK}IcV'M+gT;G:-JoI޴Ȱc z9z b9#mlvBoM"1;UL K}uJE 9A4kǩnYBؑ^CgfQ"J~i*EPlѻ:fQg ȹ2aM\~F$T~NeM ! j!dԀ+k4%r`DHҀ@ oOm^V{ d(`amI@U BY݂fI};"#ɓX"8֠8`(@*vKpYh ֛_K9 LE$Ԩ?̀ r`ZgmdP{L6 pVph'R3@&E mMW@ckIM$T^#*d&15W׌*0$8E|Ut _Djl`'~P|:Ѽ('.8! 8x0t(` *@8M AC  +%0"T1 QI[F & .T+_ `F ,YɤB SŇL=!@grX !T@$ KI P*96<@Dj   aσSa)A3t_~fͰA@H{H @q$ G9J09܍b |[9 4߃;eKqMj-\h|".Te$>kQI4>%[29828#`8&, M#qjhHIq6!%}rL 9$o3Ic:GshIəT*ڳ[N`i4gFH;)c2|2B3!V6o6Q ΎxgJ`S9r94,;eHI]=Bk5No1lɀNÖz=l߱IF=> L4hp_BN}J<$J]~EdɰhY9X lE_4XG;S)?\C5QPou&E 7)naV%e3!PSLކĄ4aмwT%'ۈS2x *H@\H\K;2VZhCnn h{-lv7+&C פ4# ˖_њG?u$T_oF`IΑL }zz1EEWRJ s^mq]Wu26vIY?p`aZ3\ر6URjߧ2( SFFü5_kͷ#+ % )d(nWw"@.E0__*yщHnjs@JR+%KM1trf%l@͕uG˒煲<p8^˳p|ҒĂpoET`;AfG1T/<j禲 lvYfEP"06%hFwțgY|>@$h!c1~0oI`ѝs9e%Ȱ#؃V]+@NBY곋.s-_Sfނ󋄬uoL=25-ê1].,w bSyz}lB,³*kDp}b$|qIC;Bϗa1- c `a m#7.W඗@Yt\LoX(@i@[3/efof3@5Z! -x ,Mo ATYC ɘz'h`lk~?P*x4HNH@QZ@k ݳ CEd5.S~hl c0/`ּ(x[' BkN!di+Iqc  K$awkuW ǎ'Mqޯ#5Axj2yI9˨xi*P7 iS`fJL`p|+dK07KfHA;nЋ3--~{(i7犃Ep%lE'y-.gO ? |.`1a8J@`ZGΜcaoZ 2*Cp<9hO_Tп0'< eʠBoO Du1wo)Qu%~gY]@Y{11J)@ =2PU4NjQ; wYBB?Ʊ5CqhT 䑓:)XۿryvUDD4=+OdQSpx1^?fàynU^ )cyBb (%C4B 6xc<0 Y0G4K 8Lb&_m,-6,z,i {%~B@hJJ{q9ExsX=`xYK?Fvy8eC8+e gXZՏC\E xIֽQeI5 E-wtϥ7` ۯxq]OWSrJfsB"@qaq]rB|9^RgұN0 5h&+m-mdkWk[&$9[ؼ75r"-ǝp]fc_a`cSߜ}CϵwDO9$R$Q?{)$)(m;62-{>ڔEn~fBg~R% DN{XX|/5#iEy([̫רG>|6_g/ {n>`s-]HBA\紥^,x, KV,=i6r)Aػ*B XJ VpJD'0aL#W\KԈb;)'6_>\W61ҿsV1$ycO{~@Im }QEM \U! /NI ~{@S궸}Up3'q@Cm8 /fNK@5=4jh7{>.Aه$vAi\cA yB g!,h=JTwd^ [6@?[>dǫ1T ܖ;Y+゚%`ePF*7Q' | zddԎb9w {53jت$''0a;)<2Ѩ4OѺG02uLH׸>u98{Jjd?}8ųbdB,y)3sx[/s)䭎܄sa ňLH 0Fُ(x).owq@D I^8&/3 ZDXu ?@!ӄ}Upp|Q dH:Nޜ!Me!'" YrşPd jh&~toL7`R@@`bpߛ7^Ppd 21'eDy2>E` ee Ci}}Ǥ0ep#m4X3a@'6 )crbTє'P =`Z@ S\V @Hk@Xf 0x8LCiNI'`#plmcNY@*@r 15RF‚P'=M %2K!5HY1n}CfˮM Gf=Ϡ&x !3='bVXn@x#Ӏ b&Ajp f!jO EȷbeFotSЙI҂ #]O dt̊)A8$ l2mG=/PmQ'88`V@!g2+#8QKhĐ|wumy+5lPhri31$c+BS1agdtk!_u%?  @ w P ҃biayc,X$V>?gA|mgBy]ݖ!mbO@d 4 M@1"A4*@2Bx&+ d <PdQ dYՂײ@y:`BCAB8`i-wT/MOOTqn5eI܅]PQG2,+HWv&D[{1!1ѼI9A*ZS!RR]H ;V{i mRbrd~0T2CW'Y 4j_X,Co{E`%^rtz\t}jɫ#9ږ+*x$ir;Y8d.!xs]F齎y_ @՞>p5Ec^qu݂ld(гE^&k2n5~r6L=0}.-dNepw~ Ӛ&Kg]@7mĮ㑈6 Q&^㈏T!؋Æ}Nod/+6G.Nq2L\ӰPT&Mȕ-f}n>ex??Nf,Af}|sLPl(~s!L*'w?':w8ӛ[0^m|7z{ @_3*6IC #g<< T`<# PwLBL9벓Qmz/AQϳi¹X K ]քXdTl0pAJ_IMMI $o!iaũ@"aр #p(,g 5 .ZB]?,lxZ'{֥ #zgz+Q7 ӣ+2ygx2R >nCխ'b"-)0Xyx4x2,1Z,NF0@; k%8k":@RI"΀`p6"J%2->M1V]nplG4?+07o"Q:r5i<. %<==]@ulH o&H4B`V\(f| fM2?v7X ?xQ>YWσ_4K 0kih V@̣ś.QHj;~@+ cHSUe:{z_|/vw_ @; H4>0@ %e>z΀5{藌 r((1P-7#YEh9QP9(8$!mx*PEk/jK[_ B2 @챑.3Z`G /`j|ʣ 4dr@x 'аʀ§-Ȋ&Wm, kzűu{ٵ4c2rSΗeuJ~:8@ @-&+A9(\F>m*3:}KҐq S`e\N:[Z:y9e%Iag8k3`K*Qj7x+0{4ʥMq#~o|U'x0N}i@2}-e4 (vz$罈xȵ3xLeQ@013ub{L ɸXK+*q\ba! _rwDd-l6\;̊/TRlQWEA`+W?xyWKFuex'ZJQtN;"~}\`J)Hb$tRIV:^f Vzf_9:QJbDzŪ qUېpXuE_hahwc27jC˕(}F`Cأ$oR '?QJ,P]Mg -/2FEv7ʐT^b hh~Fyi M}ss1ڎ(%8\UnB8TlUofͯUe3ll#5\c ChHGS EgayAVVa. N)iQ֣wASwmcx/:bZKzN'cnvuǨkTMSLe> ςnZű?>{_hzUPW!ْܞ5-$o,#w@.xywg,h0>mP|M=[T8&!˾r  ݝCgzdKڍvcCD? i+lߖ /^|i'QNIY)&TwU {#; q2.JLS+)m[ڂ~ri |QBW,I;©H _ 3P=2>xuSazبʷluy{;B5P*po]j+(-:WRb|9صuHh?RPꇮ1a[874Ay@hj{(J?Lݿ z64o[5D R6::˫TA b]5V,5s#K+` nk~#1@̺26h9ltMПpNeFXP6P 5y:h7$㥎c'*Hnb셶x("M4 p k@VЈ%V(eo]j- mFzDVPP2+ϟBKܟ`)A u"E ^ +X!Rq[Z8ԿVV>%PKRkx4Łӯ)06.0t0 [`BE^` )G!Ȋ:X`1 nj"` `AzpPFKXa\^ U-'GK{ˡb_$m:V@}?`jH $(l)żX   @86CJ eLѢVI:*J@07VoLjqp:$SJ(9b LN5T( L ܏Tkt<@[r-Lk L9hBfA`!1dm rZ>W ǀoBPcDĜ<:!'A'D1K˚fywwZFT8?A+ 2@i Eq9hYVV Q~#ؤZLmRV5ܬwc`\ 9Æc>66d&^S70x9+| sPBbȈ` "`[E xӞ ڨWNB16G%iQD8@PW[aB*H@]ABwIzGjs:m F gWFةµ}x\oԲJۀٌ&Fr 5ƀ> PW : k,Zt B "zo1#Fi͜A$;P}Mjxtj :V ' .Bm%~:>HAMP, CeSڎ#o'D<% ksCi"zL*t ;$cGƹÅl ׬YZ'-a: 6 7Ņ!tdBGS6|ӡ^H(H _uZ tGe0Q`L tJ4D aVh àfWB!{v]g*brgfzZ}Ȼ25XB0 UgD@MǞ{k:W KE*mP]56yǫr8--({%x>_H*L -[4` >wepNIM))`)oiKar[q@d6<wIC~3T`gnNUqXJx,!-:>Q \ё#dK8tls|8V¤r_U`*)x{ 3ju` ڥؐ~A b/;>ov*+ňɞ̧J T~&7gjAab G ѡ#~%6~)PGAx}1^@kLa ik( }nHIy?A@$mzM}Kե̿ # s>̺?gpYsB-5bB 5%:^Do 6beݛ9- .*8SHb.G%Pd>EUgOmgڲm\!;!YIARSLkfɃdrRv묾5*u X.Ӊ"~$> " Q@*#DxtF^ '@6q$}@ *3L^@@ ,:N](Jځ A=I^W J-BC^ nG!P9m| d;z5\ci%m Gk?@4i[?!$[h=9 d ˊ#L?A`OXBSl81;'8.f%0ϗ _BeہO - hq,NNTdh0Bvk:9#~h`uax@@(}G& D]ŻQ@3e0;V[ 4 1Oji R3EJHNA^1'YЕF3 )pn<=4۫Ch:|#1ڧK[/ZnF!7gT߄6GN6݌z @@Y]{dpSi}XS$aZC!ԧ 8sB8!? %ZD{(!z~=g"Q2~G4rcB':nsI,ufylfco+Y { (9I؅eABmMZ|C N?8dg]X.UU4ߡ\B>ڝLa{^+Q0Ay&Gj@SXdnK~!,)"{m1* G;nd |,vה0(ȹ=9 'H0wgeޫf"kZ2C]XĆ_g{[~Cxs~h B: xg1^2u SP.(cf!Tƴc0oqnGj`h"z#SU֪ 2{Q@)_{E${S_LHi"n{ C$)g Va4+y Z{%A7S "yƍuQ(`1A-LSzӯa'>/a'?F=q1($A k5ԕ ہ]IwaYfku3CmbA c[zu{:Uhu)Y.nG@T'!aU"YїxVU/BpHĂ@Th&4X:(D!h(xX29}\GcR7wNZ}ds#G =lpEZǚ. W*}uFTF=fB!X Ό@t ?t*Yf5 & sRczXh mIr=%&ɯ*θk}9 \&͑0#ojse㊥g#\vX)uPљL uwGrMnVh+ymbKf%o ?Ru5iG¬tޘ0YL@3t:=w{@ذp.L;/$ؚ6 gc͖)9E6%Sp"[E΅ Ct/.4TMD,?Qj8XꎀhqMK(I5LQSz@ :.bDE;M7ONIt1Rm֐b"46B݉hȣ٘svBgX:UACO, t 8xG&;E։9vhp߫J T'oVsK`YϘ(S-*matA0Y%0@n4ä:9NHtXScM$p%VDn>2/GAk]V?" -O2PKzIPG'wEIV+j0F4,yN`IPcF)"d?7{d.w HSKdrZ㛤d&}5:$)N*&ԗM*vg2Aln3 r -s3!òY)[G ~+󳴿bpp&z9@O21mWOT޽!tI!\9{c>+$֑RJv QIʜ͸I/e޼~8rWeYz%?NCGexm\+QްUw1AѾ_TABj!, Lb;][θZV5 3KZaI[ ¡sp'e/J@ˤ#oG9d$ǎ p^yFM`I ^O:~ډUcWdӴI[J@{/O&gݨE5O&QDCl\^y:N5pUHw[Ppd%3ڐL"ڵWTwzhR,y %_~3es!tw\U(K ʠH-eB^0/w~ՋX} \<κ21N(ԇ6ld𨺀LS0' CxH\L0efܽg(4XF+ LH|k,;ÆX>KHTu!%\]1g{2#E}4N$bf@FޑDfsҩt#miOਬ-29F' av*h546`@5ޏ60bE0vnA=)  #l@'߀&Z/YjS@`OE$Xl/ eL4B#dx1xaOC1odEY$9wn-D{c?,kO/tôHw?{LO[/ۤF69qln[悆K`ДPUISLcD"t.qtm*cQJ; ҹ.WckmO衝*Ap1b7gL\O8y.qtp !ijQwL;jFARD᢫=iJRF\sҔqHZkR/;Аԫg+5MaL;.K*iF;"VZLg/iBIp+TE y&c)ԡN)gDYjSR$G've$Qn)Ґ뚍g,?xȑUh:;ƽQaw3[ U(E}يJ-h֋}geX&$q1^$PRqGM)J> Ԋֵ~)JQ*)IcZGxj˒lekZ//0dV`Ó1SPNE-Eۢj[2%&}-l\v.L<ρdTT-&g)id.KsQ)GU%2]"M=XeqO/62:W<|O}AMq犧KL:u>0Vm`i8—/5 :OЦZ-ޚ 3<.w >Bh{$w#L;.d Ц{Yr Mt~~ y?ی&TpU%`J}d}R s}àhLX{PJ\.R@/7- Sh` jwe` =m7Ir̘\ } ;ȥc@`E\vӰ M+]SNY'Eԗh[&2(x=$K@ c,(u&r0#^YL+" Cʬ[b0\ O۟dǴV!ɫHYiҮ%8uPX@6;|)jE?ͶAt3AbkBX!x̀ 4 %u$vK@ 8? Orb DPKm;"04ǀtzȼw _ 0Ux9҆x x/k۲{H, 8/eB 9RT' t3@/%FP{{3Mo3u4z?Ȁ dZlV׵z=̶P?U&ŗc? i>} L%M5cu3fE~0F><#H U!!MW źOqwȁwxU (C9H,+=A)0Vs!nmJʊ0t4&vJx$dbqP-ګϽ p#0r[<1BbS ߄F>xzT96[% >n@A`wb(,  $~;C<{T? n؀LL! ,~ɗ c  nOwẀU-(Y68ч(}Q`$m@ Hzf/!֠@<3Xro&i ZKg0ut7Gp`VWC N#M$ 9nq,]ui`W}k(9$ X,"#UG;]7iImh0+ m"ҙ5,@Bp> `BJp ^@6V Q/,O-@0`fiy@ bf0!xwBW{7:0|'1NO@ !C[2IP&ydlD (C}Q2i؅A`0, a=PLz\YvZ"zxVpfԜ] :7Z 0_HI 덡)7h?Lf/nx5 $ͽ)"Va 1BAUJ2G'R,k3GR.o1,qJEv`Rf`%QlC?Bw ;'=kNT}఍l FHAٲӄ0jo@%F2 qWMZ9i\ Ւm]["fQgwtҌ 4Ox!)v N-=QTN 2cx,X@ Fs7BWZ ]$~PJ_0JV<96/|*brPQquHܮ盏ZhU M[f0۠P!!cUY¹ V8%] Ճ\ip͸̖~X{Mo|ۊ}H!h(o.x)T ϹvҒ+ έCTqvsӰ|!z MJXZ/ <{Sp30 #  m^fm)$dސ8YE:c*=7gYI zJh,ٰ({ @,ԗPm%2HbLFgX,7I 0"Q<wnmtc B2ƅ:aP!$8kǐ}7C2/bMTuMO ;+8pGUTkdT% RA9~rTPx Ah 6 ]aw[IA$0@Er> B0/pNb6jSt*K GX/ ` zE/@bf|2Tlou $E$_$hYw, ~s |3Dp ŕ_6O1 QDkܣ[1CV".RPRm>DV`َC5q0>qd_1w'  Ȁ Ҡ Pn +g>E>Tpj0f;m @F #YPc5S7"nR:S[uf`*y㾝'o,ÀH&9D$/J}g"8|lc|\@='U8`fyb 80 4=nѰb|Lhp@nA8^y C ^j}" 'PZ  @i/@)N X~ޟ zL]0RVסmtFN?#+W ꑊ *U#Ĥ_"%"Vkr|ўoe6DUd ,.#J%Ԓc+,^q"?`#^U#3wvcwLPx>o~,;҃☫kO3@ S'RFf "Z/U(pGw(/0䡟„XR쪜}d:&!E2ՁzmD;_[EA?`xAI+xBE2`{]P'*1+l @Ozr0 P dL8W,5Ou2@MR8,kbwh7l!-g[Jm**HJ@*O`tXP?: tyyo@l]W`Up 6x#`3x:;* 4g7"&` )ΞdGn*g&+ >^`4Շ $ TUbP5wpsw.2` ⌼ PSQyj(xKeu Au!6J^cwB…uAi;⁌y ذH-lAZβ);f#G9mc]p<+@V"0(L[ r ⌢ؕ^5!>lBNN(=)E Vadca:4,>)§FUkH(@ [Gm0A4lh\_I4,9q#r` `F AA5 ? / X*6NFn-\f*>U+Ae ¨٨i@aЏ 8}1PKK31l*S]@à+ޤ— R "W론|z.ŬiĆԀhMY" ך[~ hFv^>tgH@dI/@ UAIld :{BJ2W4>L(TB "Y׀R*Zh/$= @FAOZ P[>jKX0;h ;q&IuQ$)3ʨ0 p+|&YA'&ؓ/ + 1X&B-0\ڠՒ4 }IBCa#Ĭ p@~Jsŀvp(;aWZ=]$7̐P:*53NŬX0xX1 Nl)&6k SfS I5p,s& vn&Cw7x7<m.hZ~LQ$glV##dt@QL%@1%mD.Wf=1`A~"A_ )z$2@tnPIJx)s !S3V [7Z+{tVFyVOÀ2:D˄ Xİa_$O{Uq@{+;wA}mx_Hi q KZ#DW#ă|%tFwl4q7kEN;*!FNE()x'MU /t<5@p&$/2gS|<#ȷࣔ853 s(n73|pc0'g*Gb @]’2%h`z6}%.?@Bp%1, ; T2ZT7`"Lxv"@ .aPD#[<$[1XdA Dx $c_@!%:k `b hfh2e$ \x  >& Ϟ#F ?wیe<`l``A# 1>|4``;ی,@wی5 ɴl rC6ltۏ0XC#  @qll1nH s^"B@ &>`f#Tn$x{@nF7.) *Xz-; ʼn\Qq @ w l V8vn@  aw; h%5݀c>0n֡2gz7\ZZ_ *0^P7E/_@8yŹ@@"@@H0`w`[bF$ =(e1}}:z`v 7's %ymrf_Q^ i֕z !4@X+9Z`v Bzd"2xFye}KLI(؂X傟Ъ2v_1)XT=>%]<2`dOP|=_G㫗OU8ڠi*G3cmoSCi!I]GV*XKM=]bli{e{^;P4ڥ؞.v}QoذO"@_\3`&"?HC7^AVX=Dz{fw'# V#Tk)dbwş80>lW {GDWJC$@M dX/0_ 7goǿ+C>?2y__ 7upo@7; 3x(+ i@1d ?[ @ o 8W V!Rl8uf6v >.q?:_ 7uppid1aM@bP|O2ΰ!hUhgIziOFm+,'o)fؗ<*D/~x" pp y zP,Зfwޑo#og{Y|龂8le/=f_a r; /^祏?:w wwo~__GʟٿĿOg??{޿=ezGo4';Sv1߳݃GO{9"}CB Dw*sˁ-hTwt*͏l+hJ1/+*`ַGu7Mց~ |r5#?M)[Rh:8Lꄸg`)ǭx} 3(o?-@&oI9we .sL#Jk)ܷ ;jZs~^Lwq[]@0YD 9f*OPv 00Z*ꩠ$~Yzs%.gAM猾q_2Yq>O-jo6}S71hWq]Lbmh> ڔғ.A4ZD}PXW2e#0u\Z%~[p^ƺ^݀{d+lZKUa"dnvĩzvOFDOYcm, 1]b('`EFjȾ]p>qALs$2Yт&C]5T~/y%Ņr?_˫ٺqI3D./E*Z1n@ 2xRw8U*h[Cj)4y1ړjfX1aDE.ٙʕ7$rekT.^}X^̄EX!krzlY&리+K19eㄣ?U۾[,򮮚WO;(o"b3#Xhd ˆ;9"W|tP O` GL ?۰pl O` GL ?۰pl O` GL ?۰pl O` GL ?۰pl O` GL )IJKD":#H ( #mv B]p^FUKW&z 8&ʗ?`<0> ' a?Po<_hIÀC,niOsgŌ 7Fa[HHh9zόAhEH"A~ (&0~O9ABԈ͇.#jJ9-+2QrHeo_c9* FdSH,T(*s&"@50`T-`:Fv*uަoQƐG"|g Ղ#%QBD7kiBK޹w-~qJ{% -)@I`Klb(n–/5"O<n`i 6%im>/DM{1 o֛JptJ. 9D5(ft<3 6&SC#GK#$ѺRі O G/KKvhiƎ' M+7$kSҏ#}>XlZGg v )@ Kx1[Fy8+4g} >HѥZissBa޲df8ZMJJv ȟ c*TvYZw/_X?nO5, WZn+=:@S oe;n^KEϭ6ߜ.֙jT_)uj"ntCd|dSD] LTQ Ji.5;hNGڠQ``rgp%iVtqUWLe9d"Yu;Ӱ.Ij]^}a< 4+f@gTW&ԱY!K\>@sEJ8r I/lp(E9c̕>!o8A00uPF}aVG΃$3Cu@*A  yT",;"c.f$y-HnօSoqd͛-7fyu$$KSi:3q.ىvxΠ 8+PLL51OqH/"g$R2C<(ipG |$߭Ehtϒ. |Q%WwzݒȊ;IՃZ@ 57g-_M8t h_-`\wa![t9jD>ێ@&[Xnkp1Gĕ)|xվ"L*>ýS2C *G^{,G0C37]@VW$yg{EP~%TXә7x-%@N Cݳa>7g%/O8$CӠdk q )E=gmN[0QtV;/"pY>u cX܀B(})Sr߻zk HLs ^ 5#^f2@:j5i <R' R& fy6 <DJ%0 7< 3p~\<1m"&Z  k;hSꇟA|`4L @LH[l@E$D0c1&#?ſ؝eQEvMJTT$ y=L.(Nv Lg0Z^^ES㖼SPr#\:S0 q×4`sDm vˠf& L1 0#(=E`/278K33U}5,LdzxmI_AX5 xvAYU-1*+xvv]% ̕#Gas7{ry=CI')LYkp8伻>v7I=yAwt[%w Y@zAUn pKWE=.qs ϼay~^z[ă L<+pM֗4$P9(A(3/a)|M$Kb"BN0S<jWI=-zJVǧmlnÝ BHZwc#9x͎pLJ9uarΐ:&`;pscP>;2ax+r+4 YdGxeWVN`1osH. .zuUPU jHc&QxE@uoc5n%JC;-UPu A27Sk&U9S`LAB~^ֈ`]19g/!y׬BA?,AۣKp1S8xMrC.-ʚ@`DQŮCb5+$+ SnK?`h2ܔe6sf3.z^!@.AzcyGx;H ~ˈ|Srqyg#z6J-ҽ~ԅg]K^/Ay£9sEk/ժ$v}pj xM7 C+mPX?!D dWFqGqcrx?ҟmp]zO0bt^rMp$xʘi(i1EwAJkj~[_O00 ,w &jwiz]Y?0%e #6ʑg|AA ?.EkGS42FFЗFʢ9֢́+\4Zyk){@Y5XX1J1aDإ#?A/jM|y({IƔ3wUb_ۓlב ;jkYC&h 1sFs A^o0;G6""eZTt6`A|0=3hYmsDj-R}TzAD:¹ư>tcNg7$ȁ$=_n' | S=`T9)9mM+j7 ɡd$$@j6Fl&b<7qb/ sRWoƠ?d7Ѷ( B_w%o ڈ?QZdi悂 &f? ZϟVpRʺ(Tbgݞ{*㒢eoA*pU:~Wq]Z |?L WIZ,):ro%@Us7#:|7S%נ'2TEf"|Fx_YRJyJg\xE/ȼ%P9rYah*N̻#R2|pna;lq.'"E1iCVɉݹ s53CiuWoU (jAWҌVh: pS7YSrG ~Xs ?eF)aBs ֝MWX msA}SB!zɈ>lzv-;;r8 iKHiY 1ذ]9茯H"r9ߥVڙ%eBO ^=߾'P64-"g{z,s<>]C_*ӟ.\n%URq ׽.2#qt3q)21 bU%T6茱"1ieeđRX3p>txx!7Z%aK{rY%K_j?s㝪E?H06=S}%y=sjyԗNz=**^ P'M ܆Hb=@[(XS 0(p9(5JOY5͢Fˁ 0"HV j*Ġ`< 3: "B|4T1}@oH!my|pzR@?8`zDqsz:ĻPHuߔ`$xcLnoCp͝{р{688  <{z@ T`: R+7AIoS.!x iկ 7Iȋ`@=J`̋W@ >G$Ux,!*ʫ;CFTw igu # }3>lN@>YORxZ8fJ7!|?/%gHnqŠK)NypQU@Um|RVX9v]0¿ `# P !¤@P]JNԙQuΎXYifT8$ p95暮]eppu1˨YZ6;cj- UF B2@YyzѨD<$B 9*N6RSnPabJq)5#2832JCE/;>*%x6byAkrPPcqX(ثOx 1ŀ, 6RnZu *TgbBpB,ܼ S]Sd}4c6I] +XΜɊ2 =.ǒdgě%p ts9pwX@M׼z ;݅[t`paQ@S>= D`<L[`qklVppqΧ۝Hp\<Gc 1hbk-3,ÿ] H0Bm O r>XI?fW6E{.sEQא$Ӆ@)琐Pz{&l&* ,qX4#~׃G&@ r~ [iXr$hQ( D#D k 'QЮ2} Z]2i$TFwF AJ?+ }rG )hb#E@9p* PÂrN3͝vaR!c/`'t3P-R/I$!P@>J<`3kSXմIZϓZqnMӆ^qCj7P|LkCisDT]Q.Ł fզ<wʺ'fI pq:_*GpԩEfvQs۲IKoP)ԕnYA/Hǔ Riz?J`ThKDnهY* x,:_ R H@hߜ@XAk^M8!ڴ __ \fEQ0 Id(T5u=\0Y;?P-t!8{ؽg+sᏨ;;>:@S,Ed%O@=2OD RW"X}[O9?'(--#|q?PH`B<0Po/ 1 xÃ=# ޺ZЩ}aÍ'u/|j o %xJ6!0dc, MIbW$wG//0p [9Lzdg !/D z C!}Wwۨ^w-WD(;re;kT¿zzr0w9$2'u^Wk"AA@:|jlj|Q@R$DG:TrF2߳UkGpFcb!"?Oҝ@BӥH>N2D!hPEn(\\ގt8~+ dž=hލ YeDsq󵉈zavd?߹ a ||1 nCgn*uKj(X&-w S$b6)M1)kL lȀ(uPwl8nz$ojdEAiT@ݍuc³gj@sL{2ZKl6Q>.p*-pJ|K.knYFEE!&#z9HԞdzXd  H3ZIHI"RKz@KXЕjDvpAP?x܀'&h 6uUwӿo ~1U!Z+MzGlb ܇mec1Ib%~5^o&3I]wA̳ȯ ;6#2?n -MI C<C^&<Nl>:oEO 1`v;¬T`\;|N6ZU5OՓ1Ezdc}KNpY^ZVpmcI?e,Y"^C8_\ͺ dAA`̌`hBGVR^ V9&qNW!Djޞh*^OqƔ?~mm` kޭ7'ldӑ4ޛprq'hd+@t<!KqSʑ?n0< T+r׮Î*hZ 2S$Cˏ$!<*(nG62*^6 ` h$V QEúcx3 RÚ֌^RVadd L'{Y EX@8SI5ֽe3|[S4+i4?q8 \슀&V H˚,:\q"}A".u/`T^np$ua< J"ǓYe5MG6d @%QBM.P=.B[Ǵ]' 9A:!9K'"o^< HH!mLF-#9bS#z_{DSgO5j~@~L/ә_Z..|i{bJjČ|2Q},|7a~UD0?ݷw_m5Q'_,&c4\-v#PAOY{>h2Afٲ.o ˤ v8>}r]fI; 8g2֊UuK1qIMH 30V<3w]C_/I|3~ 6_k s+ @G^n$vqzr&jp"ۨ!3` IbTNp;ЮBmy@IG R)nLR30?Kf>'g(Uѻ0Z!J-EaBurS'J֎/YGh#E~ke&xB}X 4\;%x脶%%7QNoY764wggb/svUGSqPB7Wy &l?:'%)_4&S#ݛQӘS4XxpyV !Pؚ97ȄphLܠԐr7 Z#=PT Kjfb@)MXLH 2BEGFC$D^\`9 KPF"Y^+z{vaYwh:gcҤӱG Tƭf|h C,7#jZ~ >YF:*ۀwWGw']jw-`u`8T U8r5״m0۶l4"L6E'g )Q|kȦn>\%MudQ H]p7A5`-2 ϶tW&LZz,sRlĀ3Dlo?KE<*| Q1b !K ~ q}|%mK߻#?")98X zy%z2& $*$/EnۄFVg1nC #W,$N/jb:=Xo <#vFŽN9yh.tE%:ob)Ԏ#"HNM u>g2N:.+n=fh֙.H!ŗ J-)`eK`Æ.h@[1B7!fz4/n&&M4%?N', +M`C#0d!H@IU9taB\"Qx$I% h?ʟtDErV檻T$tIC}} P3ײhD.㹒uջiR}#2ֲ)NM /f0i|-]P1B  Ҁ(@=0㇎@%- i.@-'9@X[WASA3dJRT/8b& +Ru8x!Bf/Bs Jg{5{or(28LP4 y! fC$e@*&D { QK_8f@ i!䆿U%,D IEoP$k}*ȓ7=cY:/C5-qrN7<$<{@6 !YN\ fpEf΍ZeJA'xXgPq4#[%9wEFąz7Uәi־ ENB_U/Ϥ3f1"*EsSX Q8P$"LS<gӏ0B`7@/ѷ5o bwWvlTgRԷUPoTBrJx8W! hڮR\n ? U-{QQwNƳ4| HS!G _0lAڱ *F]@v&R843̚ud)FKAZ&I77h g}V!TnyiaH*r PFήmg> S/Ai |,jI7zNK]fg{ l Hind_GNǥUdH@]Jҭ@&HO1M`"Vx^<t1R!#]6Hd1#f-Hm0+]G֋FJ0@G IL (M +js! ]wG'q6Y. x&Njf]u?r󎧵|vDp5\(yIb<+  x<橶5%LpQN`E6/ { jox0rEp !DxIF7T|~U@rG B MӖ%:t;  L~ZB[~ "%?>&ImIy0o?wdv7# y€)hei ߯-< FX\Fxw q`!['{X3'SDRrcNwmj}3=7?I=wll*@M>yh):Hh޾4 ,6IhVtPQک(Q- [ 52;qZ32;WKm: 1PU LL?P@Bȅo`9K 4=$zPB\اxe& %;9ӌB ~F?hr]8"uBC9ǟNX@:Eq|d @0B)J٦p@ c&sDX0,#ɿT J8/zU2iȀ {**#=#!q1￈2wxR h-=C0YdDX\kdAR`[S!md2H~TQM!3w$8&1xYÌa9YK[rE3C"o 1-SAQ=Ʉ:154k!%`}<_qn)Xk 4Yq`.m] v̻\LqWh_?@PsWtUA /VJ4 XaJqIӾ!`Cn 3l_ORZfF(HPCe|9N^8B}|k fz;;%{$ɗsp\FD؋9rT]z:Tfd$D]w䧌LV>m֯ Uh*_cRnB2ΦEHI΄# {ΗO6 H*hh6oZi B@gf;{PbϊaG#-fRs"uwGxĤ϶˨|Edb@PmpXmH>W&IJKPЊ!4h 59kS݉ER,emy8f^Y5J/y+Ik6b~s}s@TS#cQ&52V[z8>')鳺FG'␣I־4E` |}k߿TBp wPe%e>T_!`$io /6,v#"is< [K)Z#g$t'[佤 41 I/lD/1E:Aꑄ %i?k{+٘sNoI\\A&aB*Pv?|pλ'~Qϭt;I=5?R9f7<R3zPPC|ˋ=+an@4 ]tJeݼ$!r;rߣYV=dD80".& PT*#Kw 7 CUK;_ma.60ȌJRg`UFϴr1AQ#\ȥ"%P6ջЁI޻?@onx Hfpu P G9R ]_*x0Jk|Wi@Ui4gqp L 5M 'C ¸ZiSޱ'^zC&ݜ@e۴W4+_sbv i|?@#ưvGG܄[H0 Zň9H-nC:PE.\f]oO%+4KDe32 ~fktC]NizLyQdV' 4 @!&1G15UO8 XZ s}>8LtELO2=H+!!YtαK']^[y)o0'd! &ۀmY;"a9>6M t U(OpdD 78@VL[ Q4p@| 1*6-p?K9@1ރQ!.n "Z J@&2;N f#ABB40 mA= 3,^Cp 3|@w8M x `8VQq$^`pvKM@{ z7uIӒ4hFaK[ɚ74=XѪ>E*N)A]- mEiO D*|q@`J~A[HΊiGC_n`g H;!hD`nNU1SJY};m?c@4*=CÀ_VVZ[GF~,!f=Q+歸k0gC6GHkuT-D^A0f8%NԂ\m<4ir5n" [#FrM2i)QڄV?4EekWM"΃rۯaWnOKd2yEɅ,NCߴzC~4@2dbL˻Bި(`pG#%;懯 `@`/)$6o^%|EW=:ŤY( ߘ:ä|u@.M|T3 Ҭ3-B՛a_Ft,4p3PωC>%-#e)Oy2=M{\=Lie4q.ČP\;h nV肀a)ܛt4~9v"(;4DӗXhM M4Wk.VwZ?M=6is4wPʹv F`QWcRg `0MUXWpRDް|JFwL9F}<;/4#s2.3~6ݴ Y&@P~`]Z[+]hT#W7j U(5g1pgġbk85}_cr=* 5&測z1d`ZΎ1όV 6Gg,h3߆\[;5~mU u3;1]5CL _vyf?.8U&= E7BAV;QXEc Q ϭoD;ܮªp `(ɣ ec9sw0ԑ]EY|J(gĠ) GHD5p'.#f>CR9sPωG9[ OfNZ:%5wKಃ>vK❈a۝Ʋ{9B 0>9оhy-)4c!ebnr>g8 `J^WɌctk#*aUs0{Hm“/h:W$[T[zQV^q{>1Z"N5hIL3="PԄbejHlXĢ*qX.@r: Y鈌[#4qHnhg)fe !8^C Zk kmX̯Mq_Z% `dB^pMᴎܵ\iof%zqAl9wN dY ݑ5g-I`M@Ҽo{"%0Ұ|"*D]\D|"_'{MZ}怠tw!I7zH [jtx ycu&c>֧Mћ! J/A]qA!b2ߐgӳJc}6$_>Ӣj~ӍI DI]w&,)H X`O$u:TO |ds/zb[ '\n?y{NI^`h*8`5#ӷOl.C.*gtMWvI{*=P cƼF7`͋!fTyPQ4h JNk t[0rױ`Jc֌ #Z_th}{k(va6`4ާ yCr3sh[!i,~ S|b 5jA#:MG V"k~3OZ9l*=P|py3m chWV=2" ^fI91W}+ ::Aݠb"dkzX۬A8yiYz65^ɗTUwgo03kC6 EEg`m~yuX?j}$p0ط":& s~N$]v4 sOI* , RUQ?pKE%I?[8 5K8b.!]3r@{DЁ&5NKt\CIe?qT=s*"YE'2B+xo_waoh7cj 3&4ɬ5'@aˀT7/@_ER P54Fd~˰<#]?(ݮWO"# Z2o7I ROwA=^ D爩ڮj4"PPu?ߨ }IVP꧑b 2iABBB8,9x>0ibJUKPn@faW <8k@edѠ> ،26B&ɛFIRY̫8BBcN}dV VE05QR #(ע-̛@̾*>HyA{(]hWulfa" &jZ13<# ^+%`D7ŭێp6~ ,6 ur 3FJ/Qx حQ 0ǟZQ {zbvdgr"sWFT\/l@> ~?. xqm.tx1| ^$u+7vF&]knZ|p ov>QMnR 5$!'蠖 n32DP UA(,tK@ |cSUGM2,7ԣ(&>C=CK ۖ)0NԨ͉`&)X[G+nI`e%X!] {}0iHceޯs*3@7#]zM/wH ccEH seL@^mT(ի65X3'|$+J"hA ,/ϻ{=]%ؠ*Lp*%9nsb{;fi|<2E(=ɱхa$3 @" b47\=_C,A 8 QGPd)Ż/,7,r0 \%SȀ*h#Ҏx[a y&\UP\D8S.r9? @5*zw@ "-=L\ o@LIaM.UIp5ɵy+BXRȓypQ{ldك#I[6%<Jn29DM58Z(Up@;Q+jX.5Klq$@:JOa@jDL#ƀJ-w=EJΖT[1XK'!]NSҮ_̭P1KHx$0jJ9<@,5X_FRXJbL!m{$Ui$ @)#0vYQ IX:p' A\CrX9`֣RE*ȐL8tQ(!$?!Ay&dh&ZԻs[nnq03 retR7w<FӍ=q{|tsYNptmRb⌉'\ CB},K,/OKY8r3 տ9v2RkJ&*3߮Ś,IɴtJg'6Eb}A"6B[v (݋HYR#o E+%E+4@ %O"sR,\`g#<`FkFCƒӈW Y/M׽Ivj7$IV3bBtc.DÛu[to.R4Fs*+'ٌLր RhdƜ|+s{OOD >72e눭]piF@P 1Y@+@SFv1RjE<彠 =a PXHv8,ho"{?M=}p"{bSܳ_{  `۶'*"4k>-K0{^dT B҃:OH-ԶBŝ?(sKԓt^"Wnπpl RO(c7 P ށ&hK0Q傽*B?1X7@霗_+LØ,DG[u`^E刳&--=4vꆥ;*AjiXBz56@ HlJU!7Pħ/ ,iayTpJorXP>=ݱ) "Sj+s5:c+*===.c܌ح9∱e&eɽ@w]`ReӚim-!ŠGr;B*eJ6!ּ Ɏؕ|GWSP}^jV4iqδ_SES߄BGde;aKOvCMdUΤi7 Z9>7CaVDNPh RA]1V c8}xPi(E4eZڏ > LhFgdsJ 3)\} EZ~Uo{C\,3j^bPyD~0 A*3޳PE߃F hS;0K!x"f'Q=%A(n2@q aqeTxp_udO1}Q .4`['9xv85 no*{a_9V+TNpluC%;6_CF@#$7e t A5QEʼm؜NUeOYHg,.w zJ5"HAԔ/A4nU]4oV3ceufM!Wn @BvS$1>чS;B5>#Vl=+0{Ѻ)k@`KW os<@ N^m 8ݤM۵1o.-Q3@"߅O,EyM_:॔*INONGT?oNF1qpl` ̤_a(dY2`yT*ΡR b9J&Y}ֈ(Vg=dj[lF()ӫ[x2%Mu| PoK /˵ܵp|Zpc  m>S'i+`XfE= ^wWR.p)} ޓem0yX+AFǠ x4TO r)L[)@l?d6qFd gs7>6 ҸY^H8?,OڍeQDc32 |?},>z7RD"V 쨔$*<=Ɇ!#`y)DIc#BÙ+c[:@s*ncNI(e.>DDKb(r){Wl 2x'hTacom/}C ZK-!E%79$dĭy܎wp%jvvĀP9b!" i;I 3 Xz?QyrUa0]SgdC#%dt}?H=m(s~ &{7E ^$mWB&a'\nXWG4AETY0K)r%C<rLMLmCLׂKSK7́jy $bԇ::9Ԓ,7GișL~ zK@#w,"q+=QVkp:5X;tt`ɮ'@ӣrWBt,,UnP`; UkZW "&kVSZr5dm"'Gmf_QyO#|`}1)f΂3{^5uf@Ey՗꺧цX(6n0V+:52@aZ[ %;~Zėr|E>$l RvQlK? KRqXUi=+dP}ߟ4ZޭTx;l %LF-B麽)G~zkXnJ>C#\gվȔ1oîkߌ3r#h11:$ +|{StwL6;vV=P7Cy҂ݕ. +yeFΠD˴1Ywu6<% m!SUi7!Ӭ4q*{pɓ*R^|ju: EE7K( ~(tؠ,a|ρ`n'M: Y0VPL9AE17);,N0 Ύ -_%$B4+v CrzЙ~q^ @0YV+BaM279ꊲ6K+O2 0Yrej*yÅs*.g˱_E!@ܢ^kUO.z-/HCАYR؁m:gI@!h>iRO QAeU#yͥ"" Ĵ"iCԇF0+Aǃ'069zWldREZ~/߀"\d 9I&<#@уrnjwhE2M~LnTC~ 9A@n`^Q 14 "bn"06ukwR 3@;}P:$AX^0D|&*X 0VA;?>pD=T|;z/2FAjXr'C7g[ p7u>|QՕF*MEkDTx, " HRȦW퀅WG׈f†xT_&tr*w!}b*6@7N.;w*Ƙc[#E' ޻0~ܗ#zUWS\ `Ct}"z5ycE8+| gb4H}Ùza JjqkQ 1l]JeEȤ3M#%i w)}T胵A U I"s%+|kv΁NGk0Ua0[ HFB X<;_ Li%1%zFZP瀚*i;Qf [xXoݘ.lP VAv~FA>~gIڣdFxtwl[mX(zZŞ,qe2\1Q:JW93[b"Rd,#$0"&Md6!\/A| Cg;9X)R0| Gj\Wg:&νbv%X 53 QQ,0dQN2BTW܉Cw}1/?F-1D"seXj?"ti N6z"~&o " "/璀W7 h|h*kyy DZf(_Hgah(:3O.T[ *  A)r#`mWŜD R@+j&-jTH'Ggg^ۤ#A)adl29 9 J,E0u*kd<]2T=4r&3$pGD(IъКE5 ?x~H0VךOȎ!EXrCCQ|LQM {t $Rl!E+G`=byno9`Hj.((! [UAL#6Q,aiM@nshOAa:I!p eVB=aQHX4:AXS0 $o3D4x^8PY5:؄0㮸5@B|W!m>Q/PapuN Ād@2#Jyv[IstOk*Nx8-5 hG@ݨ9 G}9M dX/7o 8q?:_ 7upoϸWA=Xd91˓56D poy?%z/Ĭ/J&G:uYO/ބj@×Ț q@6>h^ȡ"_[?H{ l=XN 5 tK"  JFTR#F\Aoo/kPş~}6߼'`l$ .9Y<`"4 +ׇ}%ui* V0q dX/;d5[)ٍfkv]Zm(i;Qc5A-~ь6c4 Vk6cYݠm Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@cqds׫"Q   Vk6cYݠmhJ1mlMdVPƠEKbEy;2vm(i;QlƳg5A-~ь6("*bL@>1h?bK.Kw7P̟?S"?EʂCNKPia |KTA eK({ @qdX/7o 8 f_p/@6ގ &,2+@~ F짷71;{po@6`mE?x"dwhHVi ?UUϰ̝<_ ^9UPD{ gqH% hlU\KpE$q dX/;d5[)ٍfkv]Zm(i;Qa51nk_c 6j6CU͘ll@݁+d:he+?upp84233<Ƹ5 =Խ+|h$`mzHEt8z[- NKb \" /6{@|ߠ9l݈1| JD(vn @CSmQbPSsIrl&T璀 ]}}f2Y'duN΅H|tCB'BB鎰L?>m+k1O/kU;@nmGh:PG]ʝAJ&tWS'Gh\6πDMmcd cMSl;qcj5R娕B:^ 'C?[}j0 ǒۥjP~ d9LA}c@9{\<t_#!t888ow@P 13r3!@@ PGz)H SVC5.`a` itPQW}O Lm͎@jE|#h͡^-mK@93|VT`X_`bx!bohhXR.@)rVV hA@W81KqԀ`t@{$'.`}P_;*Cz=g|XO3F:Q=YO"^#E}y+#zqGO6^ujzm9q0 ˆ(YÊlkh Pa@$`Ni7.77/aizCۖӶ%}G?_lA𲯻7I-FϠqFkքDo8ڃsl<9]l`2J˜@dmqf$*U_6=b@ځ1dlϚdKX926 O .6:smC`mupoH@_zz !/=N??`m+blKvV#l "sWT] r nR,$G뚄RUΨp?_q dX/8AFjSY͜hF0Qlvd5[)ٍfkv]Zm(i;Q`@5d< ߕ"" oǿ?YwTzZybkY`m?_}aԃG9Xo a~{7C8h ]?ƛ?@;-7ݗ!­OІGŶ=.8t>@ o vg͍&2xQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@QdX/;d5[)ٍfkv]Zm(i;Q_hֈ0XGLO/L1lRi^-~ь6c4 Vk6cYݠma81҅Oq{4 ; `åjifCgﺼmf>} ><XI&H\ͨ73l@~1U<#CO0F/E` dX/7o 8 7o 9Q`m@@q dX/;d5[)ٍfkv]Zm(i;QrE9 vkaFjSY͜@q dX/;d5[)ٍfkv]Zm(i;Q_*~}ɏ`!/'lI]Zm(i;QlƳg5A- Jpx  w.$*^08Њ_oq dX/;d5[)ٍfkv]Zm(i;QrE9 vkaFjSY͜q dX/;d5[)ٍfkv]Zm(i;QrE9 vkaFjSY͜BK`u߀8TV;^B S*TlP YUuj)Hz`XXS*ZVu1yAӇ;HҞ;(y@2y`)L̞'|ܰ 4j GY>9%A"XHXh`:z)bՁ=_`cSʊ)\ftAtMl?iI0nMI {Ujx҅ yoHf׆du W8;&V{#C89%N1S``?@89,<9wqg1B( P7kLO,β_[Ut?ٴ-;UX,4|hk¡0eZ-@\’)gc@BC~0u0d6ڻyRXEbQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx dX/7o 8 7o 8q?:_ 7uQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@UqdX/   Vk6cYݠmhJ1ml',?##vƞj7V&e-vss2Y"H1`j6CU͘lh5E1Ҍfc! 9Ƃ wS67 w(]o`C30<sRS?@q dX/ٝ]6DKzU~66upo@6ooǿ?_`+ >|խ;eXhڂg@j83w:`@zPs"Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx `Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ށ (q`a`"Atƪ KU\VOV%U bPTj+&eYSǠT*DHU pjSrjPTԲpJU襡61hQ5퇔}\򕝥-n>9[2L{TQW*&>ma6!mKV)(T k1 dX/7o 8q?:_g4ѯ a?_` dX/7o 8 7o 8q?:_ 7uIb q4 d uPc{ /A~/ic#v 4^(P_3z>xܿP<O_8'r=?6VjMϚT00?g#TzޢK:/|ξuxaix> T[Tz|ot_.ӿ,60b[0y9+އcQn?`pg8'Z~t`#O=ۢۋ[nFH,Y\ӂe3@ZBgnst_7Hl6vHS`柌}j`¥fh+5GFt@a,uag;}}Gvj_WC޾v/\@ sC1v.UKz_S,<@X]q[$WOKٿ)f w ( ^@ƅԄ;ZB@~`n P4ۢ dO00!Y\a% 7t2A0: H}w:cԇ8FӂbG`e6!YbEm܂r*̪T`0y?/f>"͇*(oe9M`5@ &Z 6[!9P4-1yހuG5t̯p ^wpN`vǡM<6HA~ B.A%yzwLh M?ew&?[0] ,o0C~MlN]$<|ڃ #%C:,PWz ? K5}0@ DKvS!/D y\z3:rM]ǰBMH xD -!=Lj[N*wT6E={j8])6IeF\]k#v9?&gUL)+^ttR[Jg .iSp8  fxpF|"ODP"?)>llA8`XHPi(D)T̂H堊&>&.*p-0տ-̱ SGw) 7 v*눯Ag;H)83 mTI<'+F/ -w85&?(ƥ+B f'lw6>H@ Agϙw]M:" :vN =>&\`7@P @ Z4d1dƔˑN6gn 1>,s8t KsRJÃ0|J`h.u3̂Y`0XoO7Y>0kA xZ0~ xTv5 $ׄC^kA \'nF 1OfX!__mt < <@y|$Jk}?MJ*y$o ?) hmX5Q ΥJ\QH`` ^|&31}MQqq,s*^O>uh|][[|Dl{ g%9Y}X^P [:b9~ew@~mGVBa"e_QK$PV&v03KwY*t3Q/^eIgO;)yc|LJ14X$g)HzY.N0;Betي4 n$0gPW/cI<(7p v^3y QnX6Bu+x7+sƣGB/CۤgXi 9 /Ijui)w>D+dݐ.8YCcn]y'EK!{KG%EpU'2ky4as ĸPg~c. u:-`@)FrJu:-6UJUj: (NE -EX@ Shv+ u:-aNEج )X;:b@S`VtZ,X@Enb/1p=ֳP-x,@-@Y`g޿SG5>Aks zw)_4PO!* FNSݾŒ_7F)xt6[XGZ0\A݀҃T0YMxw ¨"xCS?XnݲbkX8aϦH< Ł&S P2[ZĀ<'qBU9Y&Ҡƒ.[ IS5YY0yZZ`lJmW@"^Шmr]8ĉQe'ܜ ]rk[D&\wppR~HRd+Nv ^B>q7aG'\fgM+&^@W.VokJɠj!~_@v.`r".㎷o[*-4'v8[G/sRKOM|@,Mx Y)Aj۫.}J/xGnnwXk/]nX*P`IO3ߔE' ? AL䨭*|)4F)JpvZHn;%EiVQ%@-9^ 6sQdx"M{t0!i֮6g7/moh\KdO8IA!9~M{0IiPa(,HR#mbTPHȠRȵ id),$  yOX^a e` ` p e.ZΔ)h(@؄uSOĆ9讠]70#Ua7qÕ@}1Rôώw&VCŴ\c[v'1ӧ!*XD2N8b@ 0 j,0j)cGg}CƵ,27>4|K:|n#.2MDZ,ȉuXLI@0qC>#l@]z L*=P/̸bb;Nw@q߂%[Yˊ)";X閻}юkvo< 6]K+y}׾&UtB̶[}?J7정\ H9 U81[lTTє ^!5 =5Beq&.v^܎N[跾 x)jtZEhtw¾ F(Ghfg]jn7k(<5h*jaX@ \d0 9{ c(w<⺎F [@cWRRP'YyJ؀ t`A "qMUrJ)[ȼ_")4HO)u [' "'DEq*bfB yi6=ux{\~  |jvlr\ѱ%ߚwmos,vECHga$9s J3Ȫu.A4ԯ0~GbB-(! + pX@ QX  "X@n -tX )XEtZ,@ NEs"hX@ eg+@u:,V Seb@\2+9YX ̧Ea`[ܿ?Ӣ;}UX1spVns3}aFEQA )%QlMBk&c`Ka(j |[cyEzPx`^+&1 hfq@S>"Z 2͹@P>sPX@VM ?6v%'n crB4|>U9ȧ[Z풊)qJx~MR_$$s#`#t OSP~,N;;^1ʹ{eqZ?`00t*LpTHk-,!_Q6gp4M*&|HBVl6⟨h(kv~fG" U#>`Z&JI𡗹)Z=%! zX t +|3`Q= pSh D^:Ѐ'P Uc^QfW$\i=0,lB1l:{ 4R_J.{p'DXz H=٘$|D,Ox #yM@bSTkP. o9:GT`w?K )8W9+!ʹYM6O+*b@z)Oiy'` NPLQ1E2E "!`FȈX!b,B ,ChȈX!qrfv\(PB&… (PB 2kA55YР"X0` 0` 0`BDWRΈW(AV7bcgBd ! 'E:#"y}HCHtΑGXf<:IO_./q8cNgq/' 'oZMIIJCZi#c*8)1` +V,<6&1cϰc!w;^P+}#uۤettZem"puD&WUr2rU=H e 8~SV*V09i@p8 (ߌyo@P\.Xq=K@@8   ȤyWS;$\s5=axWŗMp"9] N`8\'ADs x}iz})e8G``k^M`@8 GN@7@ ̀IH &߾pP?X r,`?=pP `  zGA |dA@H-2 prh=*P2 J$a4 [,#3W@S3 I,, @.W>@%@ݺP_i"^Y7T?xqհG1k|fE>_V?ız4%'Na8(!ʥW"Wu`n<)LUHuV*נop=1<bׯ|̠ {-.Cl^UPE:qaFǀ?u ְ 6*QX|@U"aCK+D 10 d_ݧgңf2?0n}Sl48clɱ:T*nW718#lFLcL'{[zRL ' 2`\P EhM6E9Ə?<7'Jv;dc lB19PB!͈zAl@,{ХjsbWU=cv; gt$ Rop,T?J9ٮR,˱Ypoǚ/?@ȏAkf{E,>פ2&bԑ-T"Fz ~#}IwGQEqeQP6EDane/Az-oڗo?g[? | `@_ @U=( XNP4 p@Ɯ@1XB9`hd cֵ"9`P  `A@8 Ni u8&@c0=!p.+Iʀ=\8`P $@?c<0nxeX>ȼ  {B'  d /s5`k2@azk2[11ts9 t[\oǵ[J2[ѷ5?p5Om$I+͑&m=oڪJ*iO[1e/n/qgpdqP_3Eq_'?oa?g s]**P\ Ga =T * pH7 P `#@a@8"x8"x B<@qCDI$elT/J@cT8F_ A =d=0]ѣ3T`l l'S^k.LdLdNyLd݁uO=~T_秖P/_ENC鏞7<{>w/|"OȴJ-Byi~~A{U2>Fϟ[>ww뽽?79"D erY?q<(-I-'G/g V*= `U }9PTiT2a`pA: 1d 'x+#Ȁ Cd(9aƟ={h={amȯ3 Yrsʚ[%턎mld+f#ce, eMdxEl[ȫq][4n9{|m,c_#{[l$skdk![1ڶ'[ 8Uh4Twi= O( <V 8ut}ϣ\s-S9_Q^jgtyuGUkvlGݺ^u2ߙ`(GVj^nui"'tGxZ:qb&ZeZbb][Dr(EIFMjx·%o4]`%9,@d5lj;.#|.luO;v c<_xݫ)p)+z7@"iV.DB"@TaငS~)=WvPbk.h PloFvv"m^3M{P%L!DVl?t"+mCK cmյ?aǶ; lmgcpɒ:cUcJ\N)c;\;;+Khe O\@RzвMLS,ێ۔V\Ulg k4YTsza@tan F'I2 r(slT#>m@x'w)(D3L /Єc" ]]Epx)?7a* նf5Y!qqkzJox5÷ǯ{EYUP T6{t-Ysr$PXp.p ,@ :'YfbIa[D?ŭ6HX;]`"Ulv(VV 9fr c*B*9Yv,a:$K%S&15-$0BzB:\JlT맹KPf#, 7$I pvc&_ gC@k\~h6@.q* )!n1Wu_!scɀh!Ę: =Z{Lȳz)( xـ&'JKKڂ ْTnH0,6w]In*8S MM/W&\$2Q` WW,wR JSeЧEf25VXn@,6a#rzu!n8~"X{ޕ(P/Ʃ@l|n3 )hAWIӢn4HF`gc5\ lDB:N -%s r wjx|ĥ$lhvxA U!"4O0kh(K֯gak"9>M-*-ٶ"CwN4yp0bX(3hF„BO!b") #xsV/PqL ]HH 4tܰȵ ƗW4 A1ƀxpf1 4cSX=n8:@@L al@`ar44HA 0䋠$+S}ei_ژ/*(tbiH5g k0 $@BٙEy.AlW $I$ i[Wԡs=gֱXm`*2+` (ˋf_GG8"`` nJ@ړ0MMKC0S8MyƦVB0 $ї 誙/@in70]-%hΙ_V &g-j?^ɾH( +[Ӈ 3%F70 -ط.qzRXP+@xM;pҋWa9 n&RF:H 6lN[TB3,6(D-7Lv^UE]L`ߠ ɱ`=Y`rK!_Bc_j| / R̨`>N(E;$^6BKAL@9RW x_uAixvP*ob͠mp`'W pѼrΠݮԙ]L#*T Y@@7݁, M`_J 4@^\\nd7<ވ05vA4"YbHW}1^10g%5x-sa@de#@×p l]z^_]6a, `@́("r\``L'Gt&mσ>T-4nV\!>xee B|'5p2X'[0@'õaв ^ܭn880-܃xppgq d`80 h5pp`d `3+TЁjosnk2G1p ܇dav`$ ["nOtCcNug(p݈ ³ +o JE -(LCuP@19lyP@(02 ؀3ȸ-~OI: ۠M.GO`77Y,Xo/+{B "FE6.,ATG*v@s-1#\rnc.b*2 ofP(E.15  Y 6 ) z-w!k\>Q2&3)F8KS4oKZ4ic[b󃵪tYY̲ :Om!V>ɥfQש\ATGP 6 F51Tb HTchj@3 yZ5/эJK`I5*8цF| 3Kiɖ7eɃ71D[fǽu]~؆/ 2ֱ}L V)(pR.SkQ`r1ޠU~s *_΃m!Vm$.<4[BύIpgx=CpRIA:ܰAh06βViQ"F$L]QA|@ܬO-#8d!pH20K/2_/ a%T> A%PGg<j- a)_C;!, rPD~*>RA*/Gi&{>'XZ - X=TkXK6% }SIT V&hph->HL<") W>j5E6BL@Lx/(Cg@L#m~x7*AP|Hu+PLU[4FP8x!:NY/#؂@eΓ&nJnFd'zS?0L )Fs 3fBEq6 p 0]38!倉 ge3# Xv= qZQ|com\CMO\-ydq[|H^-#0pp&/XH$@SXzoQ D>[*Y̤S/Ja1|E7f(Hg[L=P)G0!eVfٕ$qi(']bLT%UNScTHGs!W,= Z T `L%0a- :C@5鬔0 @S$C82X?9|b^M;.~,Р vZ<۬g:n6$aڢ@|I:JɅ(?@ H dX/@ K[. Ig|p &&Zb[?뽽?8 i{C !}{>7{{~o|?}-*~  1 dX/P@ #||Zpro?\^g|o߾_~'a#_С&6}y;iܛn Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxSQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@] d  όD [FjSY͜hF0Qlvd5+!%!Mfk6s[iF3M #0P]E~M3VQ^} vJq|c7\1 dX/7^H!R 8q?@1q@6ANQ{=gdݡȀ]RJ*@|˿z}ۻV @u}FaJjot>V|_,ß!Gɀ_ oȾ?{{ `A~  t FxGwY-oc 33C+x+#> "|z.-[@YUK+@L{gH$ ɧ;aqM <7}!189H` A !H<ܤ#CT!t:-3%Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@āhq d JF*$=;" s4rCoy)b&Ո5v{q?:_ 7^po@6`R3 }qgr Ļ/ LĦzYZkE:@)I7)p̜!p@@dX/@!y(q\\WzEU@nwxJTLMTʢTڮURRB5]ov['` UM5OTbUPf&U eQ*mQxhET`Q dX/@ CKFng]?0Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxsQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx dX/7o 8q?:_ 8BhFz`m? Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx;Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx}Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@`a`!Ӏ RɮbaiG i֢YӁ' Vͫ*BkkZ|ͶŢ@ԲBTJTjjdMCHp)ZY j)HJĪTLMTʢTڣTNEOAFQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx[Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@`Ӗ0N2|$(VDy  )hE4vCcѴDf!ԓ2"ҩH4A ?8ш@F)98e.imu %gJ,v0J3tAb*iѻ;P#ú%h dX/8@p/ @6v2 XG_o 8#Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxe dX/7o 8q?:_ 8BhFz`m? Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx-Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxpQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx8 dX/~aM1H~PiF3Mڍlf59 vkaFjSY͜hF0ؠh4h\`@Ɓ{`jhhv"р L[*X~!D@M p$iĻ^p 7@XB] NϵjY\nqǹu$0(@qD+01  p,߸"*^@\C!y>JiچJV(A6 (c,'Zj  dX/b T~Ad_|g?@23o 8q?11 dX/8 5[? o 8q?:_ 7u~C dX/8y? o 8q?:_ 7uQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxMQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@X1`a`@! W@ƌ4ŶDy7?.-m~4F$h*+C>Ɩ1c}6>B ,VG `Y=ʼnhX4u$- y( QKΑ14 qkZ"AeR)GBcƫ@HՁ1+ dln ΗmGF U[&|OgSP v"D9+Ib%`.,(8v `AA")vR2L$"Jg $PDZ -+q8Z -\p+q(% @GCJh4E%P4΍JvVǠ$ɀ,ɠf3=hZ-^ZI$# OpPꞕ4OTZN*USҦIURCzTҩ=Qj8]T~uOJU'-TKSJrH!=.`H$ NIVE0IA ?@8H M?$ @H$`xH$ r0=,A 6H$^ H$ q1H$=,A #  @)A H 08j@>gz @_i `eP|$2n OP{F_w6y\%i`? c< uM5\v*lCNmG=pa3'ӆ V]ɂL*L`o\=]6  8@0d @|4 % * * * 77$:1 d E0*@P i4 @-Zh HI= d$}w;}Sd@ޙB MVrAL&-1:爍kZֵkZֵkZֵkZֵN$Ϋ* 5b"SLS!IC!?Go׋JzA6[|5сn]- 4\ p*9gg\&(PD/^%g<ǏC(㹤 *b"U7E k #S/pDpD* qHh# :[H8p?QA1C r|/ܲd[a2FNR [gs_-ւRaIN2š(M$>IV &kbr3+TPlqrq$6!g/ò|5 I@{ptP|$&B \( Sh>zoÑ|/ '{ṇaw>~![%N2|"HV/ l4`J P܉XFǍoݰ F< ـoC&g[uX4$O ^3m+HgcYQQE霉"@fאg,nk'@#,0 ?o8 ؁(|^ X&z5D$H ~6@wR@>Oo7irhvb#,0 <=h DZ3 O`zfsHɍҜ0VJ h* q4^{*qٙI Rhpq4{FL)>9;vQU&Jc,&OJ%j:s jԀIR}y.U#4vʆ 0OCzVS"cC(Pl4 |kOGgm 1NP[cCu]"r%B #JeOcy]@i  C}L@  #[9 r|\ΆA d:j@ y ;!zpT1Xnj||-d1]kf ! PfߡhQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx1 dX/7o 90_f/o 8q?:_ 7u+Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxm1 dX/7o 91__=8q?:_ 7upo@Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx dX/7o 9_?_o 8q?:@E5,ke>895շp὏:kD]Rr;ߩ-D(\MH`8J?Caߞye>qpd!Zj;d:[@Kߞp!lTO{ˬ\moТ6o}kl޼KurS (0(4/w4ˁ@@xh5dT8Q=RZ_lH'c{0 ]x*Qހ ^cьEuw+lx#%yavTSWAh]\- #eלLjеڊ6#("(-$*9t'-YPqR @3jY0AP?`5Ԋ>euX%JLBg*9P${֋`>Ɂup GNTJB8bZl$ڝ iDcTn0cּmiqKhY=Fc-@4ೂ,@_}!< L=TfQFlapy0JwF0^V$'a? J טE0=i.םO~S[alI$sF"Ar!timI;ш&" F >JJ9a` 7bp2 wgDlB|Xd fihr%⫠_ _Mа4Nd U-6IΪBSnKsMm,"@j?c:j\*isie4 B!Z,yAU@O0YY܈, .@7J j'Ձ0<.1 pjR2)+8H l-^(1wl$RNv]΢V`UpӒf҅x5lWƬB} why2@f:$Cڑi<`v -ò( "zZ{c>og{bg>o -] 0+@R7r)F[ KT`?29|nS@ nض0LH%&*q8 8.,mI/FW [YZr$}} %]jecH6<&l2@ I :$$>[x dX/;d5[)ٍfkv]Zm(nw j6CU͘lh5E1Ҍfc!Mfk5@dX/vH0TڣTN.r}8p*Wzx[8pyxd"*L*TڣTNEOV%U bePjUuR*}R*U3*SU2;E( dX/7o 8/?_o 8q?:@@Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ q d (O(F2$i* _ u{s_=8q?:_ 7upo@)/uz=>xTтR%95n.Bok |4tB^ <@ K dX/?,s#ZJ,~6֕g]?Y}Okϻ^O>h Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@܁ `a`" Ցw :;12Uǒ?f]uR>헃hW%UWePjUuR*}R+4)FWRBTPE- ET/ I;W ְ"9-r#7yiij^@ᄣK - /$TOZ!q dX/7o 9#jA? o 8q?:_ 8;Cu  @*u^d n_f|\_,|c܎ֈ(D|I!{/bfw䯯2O=揙oyo~w^,^Ưg?_SX/A}G/?_=%??`??O{G G;??ZwPCa9=i~NOr; <4W8L?y'խ X~y0 AF ɞTz\C| tX5 Kr{=MBokXX,z? S`o~fMnPi@ wȖMz/WSR"R{!=fU,*`#SoVb9h+.|i\4}#[;“#ȟ$ DiMZ#Z'fCWr75?RGA/TD)=ȐxN~KС]!P[ĮYۥ}`[ly Xf\/Ore\`?7նH$KSPbkrFjno{jUထZKZ-uч-$%rǧ;'K w2*:u8̇nvJX߹Jl!tcizS U8-=ȨN 9ܹMBImu'tHlw'/$S7PRK] E^;Em+oSv,Ԡ $s0l''c-/WkGߡQ0fS;iR@\Ѥ$=5mumu)ɶ:y砙QE_kathq]Pu'Mvdos-pKnL >8z/jDrLljZ_qm0@nt@C%3_8rTqyjUMCΟrgo u4&$Ic9,^C%FQFtHم H'/*vYn^QZX*UYs##rqzz-aJʣäV^{.=J= "D ꜰ(.۝KO,ܑbM^զS"{^X<㩀Sv\a;r;\@K@S"{㎦ >0t=% BX8 Dwrazq`"$O~`9slJDHhUS"}F#7 Qb'T"$O~`'0!Pd_ynDEE1gyKEg{L"D"{lICĤ§."&\u0'0ߘ5_Z_<܀m9Z|"$O~`'0~w`Һ@w SH'""D"{ []:e+T-R?ěoJOr$?ǻ-yĤ"C}K$Z[bz")W4;fLw L?|J_R/1"US j6фm䟢5=|J?\x'TzNz/%yL3au0!:?+ugu\-2K)U&<2~<40gܻ\]\bW"Hd$PVP(S0ZCR9 ;/T B |,%` U3YNd>i|Jzki Td~\A .IAg.S8||LBB7-"! ;B o"‚kPgk#{=0+x8kˎ52Zg;Bw;XU|Š} 'o>jH+d!7x n-S<,30⠗2d+_DHVX~ >4r"*i.ILmy3=mI{p !u-JpGq}&b2)qG 2`dW@L; lf#Sqa\8 w$Q.YC J+Nj݅z@X hTNIlɹHbiwR;%kz1uMBG@J7\N28X2I@Rsf$LQg0,K%X+NL >Xw6iTP@ J89vU@pw 6[znjC.Ftj+@tr+Hx|F>"-+xŬIfQ w4kZ4^XPXҹ-6/D]^-ɷ6 ]-'J8{rn67)n8;es5nx?.!?fCg;sce2^` q-'qK2&V[EMaЏOKNI_LʙR\s +poLd˓E^͠St];HAkWփ-Ă:ɰ'WH{A a [0Ad{9w4OD5CWwR0vߍL)du/00aa @nخyJ8ݺAЕNSlUOWb5u\0-7. Dkq,>X-Aєpu'/ۅGIƝB('kxsh?Ϗ^%cex_깦M1T@ G={f'yD)$LQ%[}3N 5*d]]E018ؠPŝGʆ,p30S9_kW3U"rjЂ o<'`SPNHp Yc+ܭ(3:qb]5Mq5h>۳`}q0-\Ij_PLajCVxzD6|lރfGZkV8{-BB`tr7f"7asDLb).?)WA, <3^zh5@ @"<)E-"m`,-^3 :!C `<QPun:p (mzFd70]}Jy&V~@AY[_=rCx 1LKcf\<89(-Z iHeOUG; "I:0 CbrwkP#\,.ZG[:(jh:hAkϑ`  GBG1#ei'Js:|{?@\z3sp܉OG=Y5nN bls _pZTj}lgYγ7S0<x==ܯ0 b9} IBg:"{n$0?g(D02pS$PFj)Y5 m}6:$)i"< [@@hw.-?7{@5lF@GHF>+el P€ 'u/!P'8Zڹ1GR1@%p ʁ ,7XK[Vbrb'vmbm2W)Y,Lf ءqSW D,a eap i< `XyTW0 ^" 1Ik682 U8Xs6 VLC$F"`a<0 \ 4u_2rT:@/ lzD\W*!5aaP3)%-D@XOW )(cp㹬-Nx Ȁ SgKTF@O\  ,Ӟ9@@sBzH0&IPmm\ * SJ(H ʂ{)&\zKkD[EČ Gpʂ# ӿiIG@ ԁДK D'@@<͜B7OQ<`i(62]jaovuAVnDp€`G#N afI3%K~*v{H:dc7L)ޙ PVMc)~;c ?O_7DD(P)wjwr0%3ޝ1!JBg3O"xf>(/9Hȓ / p)lPB+ۖ]ax!5-:'_$dd\U)"`0*C7"B{wmFZ)Dveݷ Ў>7%)Wլ8Ҡ-RF/_ $・%UyoepМY>+KsDM}aFsy//TtM'$6QIKOAS)I%#A}!Lt aJͷ1FK  E nDC7STzVO&dDD;l;,ѹٹF< 7L˪ o3c ^z)sm}MqVYݜPkR)X ͸~h˰Ir؞)*ڑ U%|b(jerb gf:VLL`EcN}Doz o ;)|AL |#NX?,\PHH Svj9T:8qblN9smoCGV?S!dX+Tړ)>H;O[݉0N[86ԕ*Llb|2}ؘBGɖ b|,Tf~iTsc')Oƒm 0595=c?sb@h+ SJ3N!rPzddrMG˃zD@% ?bcf1,؛·i:hO8#eϖ3q {:< IfJ?Am߼HM%3oJf+`~t7(BȔ w7gp=HgϞvbRypƕa"xo(`o'P}P2n3Ȓ+%.C〇` {1c!l Лa>,;1XR-hT(u8{]/hGBM]: Utl- \P=Ā ԧo BeF.yВb$a n uD*wءȒ6w2ݟWQZzГ-ɘ Iulsg/Mz=#S]DN>DNh؀vDR*;xrġ!'W;rz^S5!ѧ7F|iM`$XФXYpIRg7ieӜK܋wQn Is=D)G+FAN3qDg H0J~nv^V>TRWIIJCG΃OX` #h-3c]jv (6NN +<~Og`ս2G'M"|Mh%\A%K )xF}Q1VS/o&zSw۠([r64qʰTO'+ٸH^TG]:vk/RY@˭lp#4mMV+.׊eW=y1:O[hH,Y8dkHkFeRGȹOftĉ U!#d UNw?AG L6.ϫZd-ȂQ 1lO>U0<{T ̘nWkM (a,'1*$[(Ra7l/wl !Ҧ(@\`ڛ(Uԡx#FY@wl'0]1# f!pxр0Dc@-D(Z ]+B^B>Y0(B8Wv8U"2!N3*p `43_r׉TM3\0Ҥ"0`JT{?w_wyHFȀH <0 Z}ϬAdYUBW`K@ ee~#Rru@B>BNil Z t R(zɰ|NA 0֤O@J @) ߇>A*YX#tD| A'VUr wA k<qއD\,{_$hab1!# z ;賙7VŒP@@4lckBȞ TT&@! 8M ! HۦACZ?[Ѐ!kb s!X, 煃e!PM6+·I09`L(ReO$}*^/ bxV;F .7!gԌ[aBSo5G IxA%GORN嘌F` g-̚f>lάCrxaϒSgA3uR2؈^,~#Ԉ)'i-QuP)B& 0ٕ>E9gvWRvkxU-&@ &^҇xbjxрGf{+p&jּ pJz$1A4 d@&@( @ L(h HL6%7`1w2 zh~0_: ipPb%bk\9=]-m Suȗ'`I䴔;rbrayScON 5JFy):'IMr\[PIB` avcf>$<^^]O'e@˂5ŌGP H/bGԆ9 +o~2mbDE$ 0@8GITHƟ\($'\P:"@?N>"qF~NiTÙEh,1Zl tJc)D߀+!8}R(TR5%#`9l NIqiۺQ"; =AI{`eby+RHOĠUJ<#p49׍`EaOu=ӱ"s+ Чy{q$Bc5$.r͸~1-ؕw05f?$5\f57S\3?[Hu]9{\: @eev$aH?X^qm֎/@ 5=HZv&/Mm'G6w( R{iiG`psEk-`q& .F߻HIG4&#Ck} _Fzb@@9XIGOWuCw-SOI&Wd*3a-Q&K>Tb xdq[-c0f(I31]aʠShōPK{.\/$R qlƢĬ0},A>=lgʾtv{de?r`* w5lXQ"H7ٓE|6lajr)T"BBS"ɺ'A#,gNPIdre2򾾨Yy q8ݘqq{eC aPwYcwPΨ`fn,6Q5`E F2=Q,,o_ aI}U-]ԥ4 τoJ1B61xK- lD Dh){^.fEڎU{eC=mG1ELѽTs [a{Sgo#LjFdoH?uǵ' nO i$ipSvRs(ro +$$7O*F \DHPC7 LMͷ"-iMA]HD~@r & Sͅ@6TKݖ.J'X`~@^{'VhF۶ˠ *0,Pq€ @%%vy̴}$[V`U10{BX2*|oj&ILUBdyXEfBIےV9!twVRH@zqEx$X3g!YO=o8_/U 34"A>Qmy} =dcծz\qFޤYZ36GTu[nS2zU39`GK]h!J5YxxP @M;$aD,z-L {/%OAd ʏ%P\ EvB@+tMJċB0H R;Ko I Gs)Kv~~  ?58$n[7p4tFOH Fw t4 `9PgҴfyx`>R;^S"6 da_E 6*i1жI|\qrJˏZۣWO  X"'OE . 9xBp" @Ut@-.y#WQ_:+`M|X_dR%r XJ$2<SepFb'ہ9L88%QER^8 @ 0aЂkf+kmЂb К (f#2f@ `r9e1D%:zP %'|:5(* g0S\HGg e 8G43Sx ٗkiϪ~ik#Er D@jQ.ի]ᮟOkoC`YB3G `]Bami ?fNACOJ60ys"IA¢G&\e@f vD_iqg9е3C 5S70mw8@WJvm6D_9 Gho@~/nai/mTC' hm\Su:VI!xE F-NM= Ө& JqMfFmn *:7ZR&Jϸi]X}ǰ!+$gP{C\g؟o$#  {6FQB@ax 'V -FgIPrGq:39  NlH\j*vdoeG*e#;FV1B^:qe9p?Rȅ7U_2$۹(`bJIh͔@tgG]9>SOA._d`ܾVMH?6xgOa&fHZ'Vyhy $%Oہ(Q([ނY$dL@ E9. gBiRP,  I8.ƽ}Ʃ;ީQc(†P3Ι\>qk| @ 6̔4b:&ŕ 6>^@/8/(hWW@D鯥8" u{uvJ $'(.H@$:IvuxNۀ[߶2JT>Fos8 1 c)^0\>s?Zxu-g. rB6(x焀 t#Qd9x(Q B7 K`?[9F|P4@1ޤLCxf<IEIL[ILrШCuvc4b\$"6cSIOϗNM )!poYqڗ- v V~~J:^OBQi2 $~#ijBRf@fVLX9k \1r4l*0 d%O.yռnpF۪5;މ RY'#. #s݀3\j bqF ?6a*`ôhQ Rp%p*ҁK-0 BX:Ell.`?!B@"@zYpK`,ނnS!T1`9Rb~,ve`^|&M֙Hp h P@ `df#J;' @2$xH3HS:ftl 7 ` +FacFA gV1;`P ,P Е]t4pA 9h0FZӘ`Ȩps =sӵSd6e6e?`(4//W[//)O*xvLέD &Gۂ[[w3(h?p QG5~4L9XqJxmJOLrPs9"6UEY ` {v,6 D4b5V"HX &8EZy>`~iDUpeЀ.{~ENB"rEZ4x`fj*hx(ڸv((@K 3IEoD^ 5bEo]Arl/#ߦy1r-La<9E`*5s)f@A̦b;S1!r!qLs)r6p.6~cXؘՏהVl{ފ_XXl^jDJC9C9C9?\#ƳǎejL@8<ȑLdfZ{/rʺ|/-F1x_ތ^ZOB rrc<O{=H0!knQ w;5nh/øŻz6at]F.wP՜f@~w I{Y~arv&uP"vmn%Gg'J̀+`/?hKG- l8$RAʁőyn04O=ãOmB+D8CsO88=6I1B`A40s Fv1@y>LNѺ WA%q8II @j ^o&㯪(<<9&&1,d SD[xdlà FaMY@@p]'heEZYuGQ1r3:3l 9۹]:[A5/=f(լv>cp 1P#:)>yMÚ8_{8%|OS hY0^3Om(LQ% V+ETs,23((잸L+&q@>z P/{THOFc@(CxlB( 9@AJ}=Y E-au|55@_>8!MqOfk4cp)#8xQ? XzLZ3֠?׹͊]*!WF/K<^z}e]!cȼ0#N~-u,+s8P(YDR6bocxs}I@]`D`0/@pRtKOt~Iොa_Rm=^l`tPlfB\MQHۇ҈ 섀'HE}߃.0F\&P "B"%4pR@'a@d36W~ hF>G2NЋ`Y HIkW,/2M50:EU;y4 v,*`=CHMi"`B ­5 0e2E`110E͚rR?28H0?cTyKSAp/s  ĀuG%AÌ Ժ ^5d xz2}3Bq@yuaK`LbMQ~   (P ""@Y8ʠtKCh tkS@%0Ej @ZP<h8X|` @<j A +P<h2O pL|h, J E$~x @0F" x{ǽ @ 0"C/1Da8:wEz@7 PRC;Ɇ+1Q u \~D(I{uts~g[.W'AC&)Bs7! M,YNu$ޚQ.]0LP;$םO.L%a_,LixAPA:9 @ ;!M2?| `a,{5Ӑ⎩d%uA|צ!yAi?B,uD\82ࣀ;*P1ĬwpdF8R7b '3Vw+( p1-N+ 2 f>m9`LDPYzM4fsaK"00: _*gS(Z-vyCPL) LQ  h>5 'd@#5HS3@ h8 (#7z`4'q8% pc ؐ)x+ - f>@?3WGPdltBqd4Xmo a*;,Tb ~1E2aUOc14 DP\DMe( &\!` cMn.(e>=0"^QˬA# `' $(E!@;FQ(RBTp{(9=XcEvv0 X4uU|cM?mVGhE͒$X, j}wÿ` kCoS)*vpt(mΉM|b.|`aFk@ L z lυg0¨0 _Ae\IV8;CT'IB#:yjYb0zRB RĐJ@?C\d<41# d:tk&l=%fsY{0 !PE 9N;6d1dtQ{צgq)ZA >@!pH2L0\91V~iM7hٕ\$D|)O;zd3 #Ӵ&PVk@Kr n.WS|0>@HpϠ2@6`zxh}*d'z mSO|)$dq(}p`/x2ezk~@Rfd-8c2~Qh]HrEfI+1YMiQ3("MZ1 l=%Z $D /ȰMClXlr+pH Ҏ/&.a-1aG&۲tHu— .N}2e0PF VyxaPc@fC'%$R+1Y?@: *&HqwTPGcK0ִ;9,J}]zyfb[ FH4i9dDYTgaGF蝸kɀbMX2=@ z@CLc^7x-DDDx8x #w5&'Htϟh" uW!63g zD!d$PtnRʋ&4]Baj xq=%۠ Suw 8ep ɀ`<)V5TS`74 0U[+Oy?uLy<~1z7g^+@ pIH */X8zׁ`hKSW LPHf0?BbuS&bRl&b+#l7IxM#2 Gz_ 9Q7c`>rO(a]ePҧ.X0HWzw4}Ggv$f\@@ N "j@\Mp;eCG]Y"O@G~ oE씣.Ƣ` QtM '﵉ Y3N p攙9>(sxhq%gc h%"m2Ya $5;YͳHn@ @AIceMq*$(}R[ݧ`8EC_cvq369$1@O@(8,?0!V"EB~'Taq5I ;f^sJ? [%dQmrXq i&dJdUp @"bEC2>U #$-vy +#Zpo6>ľ01Jc "y07h7U?{ GҠqyl@AsY-0֯5Wbh| 52pu0hb)`mIw[F٭wYcq:vc-쎂+w"*8o1xk3 n4$gU i ,W``F"΀]@H^ Bjڮ0sY40/ r[4Iesnl߀סh Z6/ FoD6?MӂК#@A $2|Hb6*bM_꛵h.H9 55&f`9B{@)W`RoL%<{C: Կp ў뀤[ Q@M|@P9zByUC wtpBCb @2 oUE&X-ځ洰 *D" dAnʍ(E"o`RD1*%xDHW$}of`&-B$tw Dž%PHIg v""""#A"#A""4yVG#GR"%/O 52J|#h|B=uc"#zhGGZ??7J?Glw##}T~DcT~(gЏ1bggtalqĬԻP^Cn5tGpTzǕNfqg\0K)(xU*T&5C€#pB u. .ۮ@Th R}@/@ ,p0ȿ%%l[gi< GZ+" INdK r2o:IxYR s8jiW0 /K`x43QiR `t%@@AqFQ8 ,vճ[v8| MCZ{@^'"B$~7 :8`@l%2%@bro$ 'z.  %QȽ Ko PC\tD ' KÆlJ2&pf.р@0p( 3:n$B֓IH H w z@t`Ay^W%O;. 2`B,h.s?Z 5LP0f;@y 5-eXc?NR}/<3` T[`=6^ XU d,n#PmrUO%*DAs d1h uyPN`+ X!H5 @y- }ǡ4;+nQnhВlI5aوoM`cx:mM` _'lM88WzNq@ d ?_`C(Y @@ϰ y` 7ê+?_o 82#|=B:]Nah/x 4wiӀ1B‚Eh L<uA+M d ?J \7`mppr!@ (fP3}uEp-ƫv^ᖝǔ:`F }gS Qr1?:_ 7upo@6@?`( 5@pЕ.ᜀwE X%*(㣴b'3]fYsAm'79!+oߎ>t=M_a{mG=}?z?= <7 ]?}+zٿoV?_q'H7WPG2q?Y<3?9sV% sZ5<'S#8'qSPfo_ƼFg ]ʚ^~mfS5esAG1K J{jKfC5vI^=*5mo=T}?Lr!{# NmenP1"228P q}*.n 8s&-\d߸ha{fږ9wMLX x:^;~֚\ԱwGyGwi}y`lŸA9{Ja LG$V[mpH8`6:S@h 2.ǡWK.[2/MdLHdd@pT]Oa$5gLƋ4) fP4I7mp'|/p.(E&}%<]a-vS+`Ԋ&9\EGz;ˉ]AprQ p*7J +l=Hz₱7BI}w)l2V1^ϟv=&ixN.|Zq%+ց8p,!$1QG_jfO0aY4=Rn4YC FCaY8cW4Uѭ-CXD%*$!AKqCf*$TFj8~TCn\.^簮r .`KXZ:0Dbǩc{dps9ɼLeeA3!m+Y2b{ o`x0&,=`gq SsO3[;F*|͐쳝{am 0(gV% 9_71Ҋ5à7 BɂRijX!CPd"؍e˟vl5}ʋ?G uU"F@&X!ti~TibϒnDF G)$G:Eu6s.[l 6ܡ[/ 2G[jR0Uh3,+aܚ߱&#'?y!(luZZNt%ۓ::BNÏ6DYo0F($Nlb>!VeTMIT4r0 ;Iu'tR r^h2E91akEɼEgP{Q{~/&c0N'@DS,C/}Q)RFo?r`ߢ"'F#[JQзx[W2y%X }:u:"s"Z8h#ְ L"ôP}D*uH@XgKQٸ<|/w}2Ch01II5fͨN5m𢝚?qurYA~8U ̈|<)c[vEVeL+:y BPq-:˳ksgjc0w][~E&&őn,3טT@sVيx0!ڊGftvٞx07Ny1@4ՠ 5{\S!!*BAlJq.-{H&ٗGVܲ؍``N hy@7@&QU #Q ik( }8tCݷ@Gbc9,y*w,CtLܙeҠ}0VP˭5% ʢM-r-|Mq K0xqWL9)Y$Joŋn1\ nSU5ڥyЪ0`"a|Nᗡ#`(; ]6900ފ+' H(stZ|@)Y5S=AtXK{yR\>[gkr;wL 6t=issܾ4uduž'a3P'n)!B! ZWJ:"dpKpNUƵsl2%e E#P-Qڸl^]K9 *[AxLǁ.o$$] 0ƅ94mB |q ?f`0^LKaU-k!AJ]LF:!jZqCsILh!d+1o"&PRRip%Xd YŇ)*6+3 )d 'CY]V')u: !G[{p_߉#07g|*LPˏàT3@g=X{ Mz.(,FDciNycB6Cӓ-AA<Wg>DNfL|&mqWp_ ޭ\)jȎ`OwPkOsے[*Uju:gM~pF]1ғ mUdĴẒX`HS3W9\!RΧn2mgEh;娕dm[#54CpJ)l,T\ E3Ss+$69u3bUVY# <+>} 0\]>U5K d"HA@E6am"`ʡ E#0R&ZkKHt RZD16ˡ% aixO|(҄sg@?.BK+;>L!%|ʹ/GU-C70X=X9X4\Ɇ9K>4FW4#/q/jAJyT=;C h@KD(!Go*^Ip`?: ⳑ@]Oؕ`y,3 )ږLƗ P!'T<\w-R]FFrm2Oܕ)Uӈ>($ui $$IB P u#O)YJyFӻK䡪a_m?~~*2 kPi|MWkPFK5P>u6&*KuA3 3 M z+yrs]]%wcH0Bro@.FmrqVOQקMWJlm/mqq[?A^X56ƀV3ҫBYI2j$5rK3F)*ݪJ5P g4THkD;2h(6,f/AVU eee@ |y-Oh--do  X!^@[sZ`@ÀD6 (-;Lz>q-yO@xX^j99<˗ƨ +s_<>"9^@P?kZ8\zfKy.q<>y| ag^w>i5)=+Ѯ `:Q.Nh #W,i,O㘱l tVp _C,WXDA20#8WkmbFYO{Zq,XDwX:a MIqx(Ž0V##"F@~pB\LH1* $&1a)9dtF ΚuꌉfG#!  pz N _~Įߌ 0#/Ը +H| nF,HňR̨#u㰣5w(8A)Bz#%P+=$bHhƸp '<&$AfޞIۑw$)A +\!ҊhcZ&h0eHkCK8k m1{7i1ЖO1t`5g4Z>P @[6(OZg^t OltQO)JAmcdEavl@Ҕ~@zm R!{dKά0@!{c!'UGڐ(d7ԎF?Jvqh,c'?JF7bI+W9 MAbw+:..e@X k 5SѱuqHU 5=`![ `Y_/ o4IAXnT7mix؈x+7H蝌ΠUDc"TG _e CvS_aGOR5s6 nn;~3W{v1^8Tk@w#JAY\8}=6ǀ**·rZ=Fao #kêV~XE}<ũҡ bY S鰵[bk/Ch0wH_Xgۅ,u*,,/B.Wp Ob\GFbp{y.-E~9&ois,U1†;@ZԘ˥!!U]_m#J)@p\r\hD=%$c7^ ؈1xVr" pJ_@))u 5@0q#%VLHQE _/\_茴-^_`}΅&]}8vAĸﲙ x.n`CxzKa4L$*U!S.a9HZx{r3QP鞻}Q6VɴiDSd+W jI@kc~lWaơzT q#":^FL6Ѹ`e ܄Fz̫(1h.M+OHJH߃'I Ο繁 ^lͩgQpX5;;TSkDp; d 3s cD7Ap&iХ:]m𪗾r5Js@jW dvuCTVh$ +uuqC pO吵2ԷmHs:e\؆3O܇6dꤱ$?_u  C}f a40Dz3#rI3αAe+_p۩'y$2őQ߼ɋX& .R?նYU<۷Y5x(ъs4U+! EpB`SI(md(eRj k[D!Fr/7N~`fA άc~/i&;S=;G21ide =?~҇S}W~RJqY.FD#%@3 4B5j;ڸC(m&Uth52vjΖa@cWo({L1CC/nC o>a 'z6} kN {7))9!*|gw]w$"hu^1ʚ*@$ޘ?}ee*XPCguC쐔 e`}OhD~oM3a a@ Vzaj|{[0yΪjh܁{O Y H pr\MGjA$41X >dK>`tjR tV1Ufi]%gHbW䆸4(ˆ<3SV``>9z_2HcٌeX G[J" u_z=`-cQQ6hgH '!l ~^ `tƜG'NN[*@n|.bXi#rKwNe>2^JPqltmF[JJ֊0 7oX46)3?r-/h k0|.AD0zx)Eݧ. ] H<\>A%kl_ [iRo] jURFNR`v{l J^ QGav+QDB*(@D!P QXIAxJ?VYK[<*?f$'?mD_*KiG k)x?Hm oToK.yZ=P PEu Ӑk{QA h} 󠮍at%9 Lň p?Gv9 BϵhʑXcEv66(?,R*?of{c  h,>\4jbdk RZ;DAE?60eT  WE$"i*g}5$lA1 |^*#~B*"L? ^.puaK`I&񶧝KiI!%Sf;#1AVբ!j*9B*+NBpZIZȠ7E4Epd#|{Ls,koQN?J ZS'.v.]}*D.u/r.1#8BdW%C9 r9J Ț{r\vVJ }rnقZSSrS$XE#6fxts0эy7[M‚wG7gЀ-*c#^J.@ "jԲǀՅ(q!1 `jflAhu/Hhj\籹&~w&0*ZU;[@ EeŘtK]c4&`H|p2n5ZA2Ri|畃+Aa4AB@zE2<^_.),h8 w& n8\X+ @ A 1}YXȀpX +^ m\`[Kĉ"oCOPE6D++tqѦpNh>1 : [2#ij#`uv :"f,x: 1lF 5$4P&xj 3U`-c(U@Hň"uf&;|D@771@@u YV0Il/& p[ɼHx+@ngS@Dtx $ޛE0. rސK> 9{"z[dBR]40+c\=kg@ +‹ ̝ʴzrJ7]Pb>ap'u;@`h),@V=fbMDf\7fީz4]~+D1Ve֕ Dhk0*\#ɠ 85`bS#J:@v k6 W!YD%-"n3ts ][J}$R"-eM5yɬ3 zUKI"14PSj J^u`X+`4= -PE\xSz"M7~HÜ_49 DyĄۀ&sy5Pl=)&ygAu( k,BPZp_L1ـio$zh#U'49Teb'_ZI?FOHE9kkz BO] NrKi؇HZʩi? @7T^%hCp8ӛaW gT@:H 78-8ME8jT=m) a8Bj;0Qq`_T&G؝62p. gQJ?t~w& ]WWĬκ'kpUxͫ0IDU-/<a wP MZj=/jt8<k7;[vPA/Fp `;b#:`y(@NAgN^ mwKAJK֒ʂ;@ mj>2<pfD(ty ȅ>(h Q.@yJo6:7Uo3rULGi^qCa-4t`ckjmxŕ,KYͺ k7 ^7%"[i]UuopD2Ax7MQk^vc/GM9IaOH4d.pE ɼC_ RԺ{)r.*݀xe7?s 8 t[('[?DC_8̫s Yar+4\=2i9ĢUYCvqL:3 ֌M˭.0D6dܻb\v<7#H^ [症r1" ܃ahCESsTe|:~2 dک(!b]B[q,mIC*C|qP&) m{ 프=U2LwvI0hLߏ.]b{8?QR3le+?vǺva3\@8$\#xqA>[#S!߫1pʃ7d^R;N|6hyf":@fvCʔw$"(,;gJJL7NVJ^h*C;RoH u\TߑU* &z8z~Y{n qL*:\J 5#,Mm#bI u$wkU2l#+}FZ~;:O \Ӫ*]t$~&$rEv8HEc:m\zZuVgva=Tlճ*0,mk"qHYWF2UPvUC8$,zP pvXu`f9 Ǿ'#GxПM>[R廛nzj)g\ ;tM3DYҿA j^H5'}a )6 E x ̄[dֈ1/!}ڕ9Y'((2y`I "hRwh IͧR["z${F bP< NnU~Ti8XB`6<0 ԄB佮 hSp*\kq?ub\łS?B@ PX/=Ơ`5ՠq="Xr, 6p{0% XOBa= U  U3-̬P඿"b\l}о)Ҡ!5jb@`B[T |O+t5weA@+9y) W\$l wuFs0hXc@w[UIƝ} 1E uN`ޓY Ho,$AԬ *J uU]i= wVA:*|:d԰سePUfr#JBﴸE VaI`R+" `70 [3Nejt?Ʀ Cٿ c@e2X R> -j@Z]]2 E|H%!iPyݴ2 dc5 V<߀2yo| l^ hPDag iO@^+/ ?$9Wv~w~ثaDiS@AAͱYYDۊ-. XX9L޻< ^|(iPFΩpvAY'DȩiD@tTyԒ]$5OP` s %? :L\&% t6@܎gQwxp _ƌKxaR 0[;}cC:_3a-vnsq o'Tꤍ}7ݜ'`mH&V߇g_3 K58KhiքXB~D; q5wA2<d13d0@6mGUgaaaU`'eS'KΡ=+ 2>ODY^jIDQ\;mH?^rpX6FzVVUj0 lyP9 6X [TOWՠ&r1=(Tc*؜7yZR$ϳB~Dg6?]ۼ }2`鬟2Cڧk 0d>\O4bGe*G(.ŀz6 .}R 4x%1cEkz(_n8@ǿ ;< ݝŤ3zob 8w+ĖC@w5 $Kloyd2VV Fۼwx A^_}&As/WU)j`!2jNʺ`-ꅛ\X@YZvBAsk!28 emfM B 9YceN+ߩC]] {Fsg:N (Stc_Ǵu9T_!%q9'& cTԈWbQtӱ" 3D<񉴇1Z4I"da;l;hp.;s&L4(R1\`܀JH( 3 OYR gUCpQ>CHuwx wS%u 7 y?Q<<-cv+{^Man<M!V:nCA"$YԽ0#(y-_D ]S Qx>єNκc PEI)`r^z'P2vd2/Te99ŐpgL!12$gԀx%򬜈B ڙQ,Ŋ>h .ebE h&܀'@t+T)&n P nݳ inp/9rP._i!/>ABJ70s9FHѺ +ʇp11{jFa(|'YFVmW`[8d=~@=}WAΐ pnj>eEjP֤FW`*6'(Hy?. ^.^eTgOM :a#ނV `}CğpSBL|U/ZӮE14OU!ՈIpS(W[xIb2m KC;$Wc0cgKzR2*, -QK5*,#,iy>A yiHL$*4~Hv2#%6XTFTH@[?>ZAL(hHY6S@m@@[&0-#- غF-psu/K m@8q~ E!ic !< mֽE_q@x)cvK_ގ Cl9+8,2dfȡ /嬟k&`̤Й434Z-b0%h6rH#r8ooL,NQ#6O ]nuOg#vh)kTI>%c1y<77*h|;y[;1T]9@ ۮoˡ/c![b&L% oPN 7H[Tt{AOl*G2f}+T%VGP|͡'6j~;}Q?ʓe@*ߤNt7=klfbБޗ;p CuH*rsdԆƵL:ڀ`/QnO%ǵUT+lK`Gw bddd+ɩ~2(P_D +dCnj3&$@T9cno P1!eUGX`.$ S _ Ri"ONN` V DCHrz{ECzp渵j(WMZ "b,>Z/Mdut UC|Bx'vLw ٢.j ?ۋ$.U"$ &4J&8T$7 !4Ƀg^pe.AB!= =yvn17And8 (VbuH,ձ4+ICA6oz,2؋oXVoTؙ{P(ҹlӶ4,L[Qf *|, 3`Y2Tc &ܿ1yJUZ-npPLo% 8:xʪ_TBPk/uX.v /2N/~pd4>HIR'żQ`X*qs{ j:aYH:r ͌/-mBG|i;)i&EY2vZ`-* SXC2rāOh;v B{5P D@EN{By6._9 #@JR*`yMM [mnt Yv@  EJQ! e #2T`@4Pno!M:Ml䌕/S-- !u 6-=i\"X2 ? q8~f-)G5Ah#y0Ce9P Cݖ !4. 6hOW'8'a<#Xi"@8JK/2D/,gPgh S|׃[72?@9_FBxV@dV]p~)q% A@́tQ2_g#a0y~ђ`hojC\O-W+ۚ桹%ѿy/R&#>:;mopЦwm@ *| 4NPKpSM`! o#+XE+iF5րP/j`G  #g^D3?2JRt^@ 'Ţ/^}J~OS|gRT;d'bJGN kP q#N>S\qIKٶ%M B:9nXz3͟6B8AeZ皆"Y9DD^&z*& 5 _E 3u '0+ s,~_zjeo~P`=GA!'8 DxDP&BiQ2Qaq;D[LĭMJZpPMl&IS7S2G,qޮOqYaHh*S+bJV-*f|G+O 5y:6 mS. S4gEF>j߀AwO60 .&[j @i(WYp2VdX j wq#x ElX@q;:aK{"E`8p=P(QSbB3g@ 4D TO΍*Sa-.+戀πlG@LP  X Chھx`UZD9{@Nq/E/U+b"pa`o 6{ԲǤ .3(0.YFL8U-W2Q>A1p@T"̐PJ:zG&b 6-qRǿ Ir "Cqc9A:KlUDܼa[π6KIs’&ҌOokl!1O!b4D  SFx.0FE J"EJ0JU X/ j l3x~QO"iK&Z4 L #R884CMW)4vL!`">};=1 yAmuWE[ 3݋րND :׶Y4A /E@N2iCjIFLJטC:aR݄e"]8M jV.~m[m04*u?@P4Y?N w{喐RDÌ!- (A?^;WpcЇ&t8n #zLq]sq C"9@+,ffDBTY2ؐq dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6c,F1mPA8Xdl.BK.f"v(ݧJK\_=8q X}\3dlд xCĬVx\qC`mupo@6E4 =K'o#"m׋ }3/5@C_B?yKZ fSYw=a}"6c3q)"jTD&{MHDԌWɲf9}¨Um :)K){sSۧVMR=FJS@?4=E H-_бz L.f>[xH~{puo [~`a#E>p Y9N@ dX/7o 8q?:_ 7upo@6.,@ d H$8?3/TU߈mpo@6`m?_`)Gqky1oG__%oUpxRtQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA dX/;d5[)ٍfkv]Zm(iSuS2Z2ܪ~2dRɐUʑ\eCM'k4.4lSY͜hF0Qlvd5[)ٍfkvD?({;?`x 0K,Ru~]b;1N9Qs(ٜ5_u!Q= ÄǵdL&=2/Eywxp1ÁKQ`,;AA6R@ fkmͭmwQ8 m)b\&$V؋j]@yN8L+l$skdk![5ksilV?Pu >Ib(m,(0 zU:oWX[=ɖ$(2Ca>HY{]<p`:j݉~B)6x4kM8dz* 2iZڨ%&A2SYJcgbɠ|hנvq _TQi0PΡ!Xs"eTɺƆQPҴ6vK;ϖg2}]-@ m'@O >b,(Gr2 0F*ۂ/rN5h\Ug Djbt˵N1V'Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ dX/7o 8qLK(*(}s=?_o 8JE0əߐ;5<:j$DQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxUQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@d<ut"-lvd5[)ٍfkv]Zx  ؍v$2G_C?83m(i;QlƳg5A-~ь6c4 63/'y%2F$ƌsm4y^T 8iC b5'R˶HC_>xL߹R@< Q dX/7o 8q!޻8@6`mpkA `dX/;d5[)ٍfkv]Zm(icRq46`u y*{ :Uڕ/TaFjSY͜hF0Qlvd24"@ɋWCWUω59ђٿޖ xp[(D^c~c?ˠpX '~dV꽕JlWJ q`#90(  dX/7o 8q$3?:_ 7upo@8ܻt@ dk]9 6j6CU͘lh5EZK|Qot; p;ʩn0+D>m>'k6cYݠmhJ1mle51nk<P,}ރL3`=OfAFsVCu}9+Oy^"LbB TiJ!R^`>hR@i "Aj (` 8m*b?6;7x碯($ȵJϗm$G;GvJ1Rv;P fIE6i&!>1Rǀf0қn3aFq-e .3nt pVJb^^U'!w0GLaۤ#nu|MWX؃# N%l?L.'oJ#-+KW{P^! /oMfn-/q߀c?@"}_1d U=,[Þ/=>w'MWޏ~O/?O? 7f O7_?'M;/^?j5 {җ_>ӿ}=+k}a)՛M{z^ߵ=hín໰٦뫶8zчZ݉w`[$5!!Ԇ3<<6xc6SR2`H؆.ik_&kчEr9sxQUG\% yb+CFvsP~]L;h/`GF мEz3^r1gfr݀gF>z cɥŇ܅! I[Єrr78+-^)^noz7>LWG]]WZPp>z l v 0{õ.vLɵZXA4D_mƂ6Qn}=Wrtc#h~b(p~5~-*)!ElNrN:wƁwdY4tHgBy ̧E}EWuEV;@A[Wr &+Cق޿{`^ ?w rsJ ?=;75W OKJ A-#M  vQW'7Up\G҉ ݬ7MV"84=/oK|7Νb3՘I O^LdrGԡ`Pk$clL>:6vve ! _.,~zzEwϻ [è&w 1ج'\Nq|EOyIZpx/HF ]W^xsj6/ LkDP^64[[F0+^!< Wi] ̭QZmϞi+6\ױ݉0E"%B@&r~*D6rgOY#%dUyq6atPbjsLϐL9p 4v2Oe D|5竇Ci1#\5Rѝ&6pIԱ@ad 9>"hb+H%. lճ 3˙[z޺@&L[@82xvڐw9&2A% w\2 54!fN$LY Z,'ZMs,hY{ zyY4`R:n d\Lr5jZw\0d 3H, ҒΌ A|.`@[8Tt_֧GDhʱ9P|"aƊj71FII}U$ xKs6S ۻbyӵXbîWZ H hy`llJ Nަ<ðҰcC^DN;Ce +t8A QP@ڻigv>c|$κ**56]W>M/LbI `/vyGd7]> =Gy.]!(G^:X,Z<> {E2GmEvEE5Ă c Qn A5EΚMjG̋asQ&}z);݋,v Lܸ|K(:߹sNw"^/= 2^4VcxV۠FTg׶2֫wz#9!vibaėw6t;6g11xp 2^^ta* 'OrS ٹ(ItI940[d_>wR:+A@;ԑXIiv͠F[eɒ)5|lS.f5~L.>4H#<{M~&o@DӂFh񳸏E2.jwDȱٛNhWGk$K"x _#.D0$s]s)2\!{!Vy!U=̅Y"Dh&^WEu%LHZ;5b]wg%]oC3B…xaeaCW0[oT]Ő۹x6ANwysβx% bC5'ٱ/e'`6EXz<֑"G|\[-뺐 Bkb yN)lt92V"$yTN ~7-cvVCr- 5-rQqI: ki}u&PI_zs"yFM]](Eǡǔ|fX.:{Myp/N(jJ/,"OKƐ$Q^d:O_vGO ) 1pB❟g,c\7TYk !|cTIJ]嫵S?z*/ 1L4J/g9Ą/rfuܣHр!W>lqOYgWvmƉHC4Yb?n󀘯v"x&{4]g_B4yܧbjdGɦ=[ʼU (Vp'`ڻpDOm%=xg `g)ϲv)|au<Ȅ1914ܱ$ b:ء*W`4 guJ(H1uuD(Nlr)s&MO>1ho3% q7m‘aGd^t`ix;P_;)ks'}ǒZŁ-}zQb,f#b==at=,/w6.oÕSq{K!|ݙ|uSi>yԿ :HaʌrXVy@Ju&r4$H}y&8& .ԱfOkxIou% a\J$&r\NXK mJY?$z2eslZ)hG+moUE;'Ơht :ƻoT f{8Dz3z,e7Ke A"[?Mr(> .1)BFH7`i`e/hc~-F66:x-whWN1>K?,|FR`fd 55hgc_֡ƋQ97!{OΓ7f1 Q:SP:٫JXMSBS(8Fف̦%48xt/+ l._<qT a) E9Eچ 5ңS!⡻0[5ۮ[V| JZJа\a6{0"is0֫Btrg"'k\up)i& H&]p~+)357^eU:O Xvt>U"S,۞f ]rFrl p,*^pI,EHI``^e|\$X +,}tkeFTI;_ujb7C`m(9 ՅGBmީc'6\q)a &܅zqxPAlSr\wbjQxhvu3홪#:VI ׉@?y(&Fzdf]lLrOFi˙pkfY+`!+7A3}DN1aj:oBW*Qt۰yk˘|ZG#<@H^4[gʕٿV Pnv}Z(:3?_/ }*-Dnl?\lfR؏6R?OK7[[8C\DŽ*ySX]SRmob_C͖p}Pu^ L\X#qu9D%}Hp7crw~ `9Z^# \-(k N)j"c@ep[I3yp< ,Nyl1*uxsmt&^1A&* pHF/=vj> Ӥa#ջs4"3 Η{DkЧZy@~$-x`]$pTG֍d"ܡb].kK'ݵeu,*"Uy]z|t8y|>4sulqT<ǭP =ب,B_գ'Br:Bm(/20"p Q-̾ʫ(maRero]ZJ &Ix݇@"g*}`As9, \}SmVĜd]2|dNlZ TP+=ՙ(L2|Q.!NLtňmQl oe!jY]t$"jʑP aRo]Yg`kg-@4{Y\NOIX躐eR4 otiJd*Z ـ`DO#{38)0$&XĒKzC*²4Ď|,u}y^V_x{K*ՍSI3fWPyuS~QV2 <5hN~|]9ݴ #3_~-8WoP^(cGzΕ^<|De$' v-1*K}fr0LR}&Tr4-4lX"I'd <&G׭nJ~1oXQ]eTБԘkfޞQQĘo?oa!}s C9A>Ґ˷nyfdPtJ@덍^rm[ ~b4#dl 9.qIbr+ru~+K)1#xU蜚8abzlLXW%WCA;׼2ӳ]$tp["0Ug u(RyFjJrJW@WJ@Wfn"%B,.t^ԲzJRIߚ cIϜj 6;Ԡ.,8jëz?~ 1J(Id_q9=g+'9ki$k4UM-ey#.y̞p ԛ94̾^Ic@_T|V56E(W?}Eeť 242d$@$\EIXfqK/Ҁ w,Zݻn- A1dRMqجWU~*b_#< wm@O1K_/ҷt! H%!Ψ 0Cc" @PA !;D{p??c3?_9mz9!.)^ 5o8p`%`P [ܵ?#I1(LKe0X7@ k@NUmzi몕,Z`.۰e,S}f ;\K\f9@Bluk"x*(@Y]A`m=$Awn| x97v 䀲] dX/7o 91q?C#{s_=8q?:fW dX/7o 8q?:_ 7upo@6.,T,w2MPjKnVD7Lw縧6.p1'7?i_]/;hIPp(d{ @YIH-[vOچd!j4K5WII֫&wCc>U3 fq^@Pe'>XwOU4xZ!`ַ qP Hr.g.a!vm |& C`א&|N+[ѱ i@\ޔ[^אM&:b!Q u$]NREBrU䑎>I 6$w{u7{]oؚ'20 , jg3^OFzo!DER$4ܜRO49]LnFQГzn-C/iàq3Qo W)9$ +":W[̛`cl%u]I@ˌé3]HS,[u=R8|#돟ΰ޿s=uMܧ*(9E(2YEoe vLjz7a$7NGVm_ʃe^ᏆMYaQO"?C3L?ڶm4^~2p2 joC3 6[67eȀ_ȋVD: oj?sfq-ϝciOD9`\}E)ZB3A~FC ׷օW S > z'M^^ yƖu6YYs., tRy*_'sCX7?y[2e\H^%IՌV^! ԩ"i.:!9:[ym&*Ģ˻<#LWtB~oϘA?to/YtȽ+;dzGB ؖl1I lY"ٌ|Xfp%$3lTr*[0HnfmcAy-V0%ӮKBZy)xHŵGw5J'7Q V[ Ԍ,F6,ltj>ZP$qkg-ֱW‰U YyM # O#e>4 R ifͪtĎ !`)@kE/MY#hL%x*T°.)7Q _Ǵ. "xLB493.F00@v~P#t|\JMg_9Ge "[9ZhB'ZiQ~hG:oI;\﷑<П>h'yoc5ֳ @!+YW8 _0!Υ{o;CLm* +8YotRm}]Yt-u lG-XAoNǴ|3!UXu͘\2!|j-b4t0+{K.՝viSxc91 K次ϥ-l5UZ["NV1H^h/$߳°R }8flfWH($ KPg@)_zO?2(%:]=U&26ܬ n$C[B⥉ٕҮ9o]"]CY,@+!`B% )GN{Yl?c_pBj$\<JA]m:YD]_nL4iyo9'ꈼ2dee*6a9|P=鬟u#z"Z_M iH29N /jC#%8ޯq>ԹP]̵ m#B0ȪNjk eoj-_\ؔwLW:> 重*\$=R}@ʹWc)m #ظ.݃ox{;voC (~JvH`AVo 'XfhZH8T &/ N͟2;hP$WYKƟo" 5DfmU_RrZRoMGͣ]J:\2J31Zⵋ d_f"莗 u+2RtfQ~rl=wk$M692*0J=GNg(J[L_Z_pk( TcT,s)>W!QхA)=15deԆ KH;=cnjt-32='ڔ2Y%Tr!u#LulQ5`za7 "S-QIsw8=x7s/~E)?P˹b}1YEr ]WХ)̵ϵ0G"})@@\&Ae,zY:aGsŎ9@ feX`=@]$dI^XAަm' .~@N$.[4Jr` f#Fߌbw ᘏw>,;vEbQd/6H7#6T?RJJApU$#yML5tnWSY%gHj΍J\oL!jGKÿSK# @u}U͜h&)(D}^:pqv}3_;5Jt"DҌ0ۢB 4y\@Fo#9`M'M~mxꏁGrpDS߃ /`tB l`5eh  @^s.R%Tҗ߾88a ikU8_̌8g^'>uƭf£aG.гD .Vr?a]. ~3'E:q+\H!6*Wj JtӇXm k(eb]Z.O+QU)ӈ\<>x̃3j۠Yjo`ܧ-`6MJ0{ ,c` XOH䈯?޶I9WjGtn;Àb#:l:0Z3nh +Z eAĺVD [Kd {[ r_laI6]9,sya WƤĚ+}a]Ֆ4)PY}T-!e9?73Vh(Y__xa; A{i]A[T Z!~v {U}B[zgߨLs' 99ntkK/߷^_ѠY{ؐU{ؐ^ԍUuW=5W'AT0f۠dյm[Vյm[[]g¾b75"cI-) 7;_HP#1a{IU,䢜N5&tp<[ojWtX+|gKkEejGYKV3zqXHC t^e}>osj {ؐUw$I!Cy7siE/`1Z5Ow-)Il#S*~*K@ $' E.=B3'DR:*-*L%A2܁6_ ZR]VUER|7Q4;#d)s  $ZW'Ѱ#/c1c8x I 2`0V9\k:[]E(Ҹ{{ms:[]E/3I#VgAt^@0W yAcB]nLl.7&6I oDn9,{p6#"ZBq@E ~Li!:80GI,Ѹ }XK#KsC˄ .zVs#囱"`q,ƕjvNN>;B45ӂq]k@s5ą{$yRIxd.O[AtD rMW6jHg[^ßa̒p/<Ǐj'7J BΏF[^{VE4|B+&`擞c;k8̀H2l1Z$٠lQ0l(_e>+:7z| 85Off} th9w0 \Q/lzꯩssH"Vѽ yqci֬ v[/v+p)I>$qk]R޽|m6ՃJKKEGϥ?v+F%rcd0]J܈6a{Ț y'Baq CTA9LBcH#Rct|+JUC<Dr.ëf"W{S._CLvG*3Us+et%\T:^WfكH(8I}  n|J=$!;Oj<[< }Y-:Iv=~YnpGsJB ^E7>I cyOv!pQT&Ǝ V9jy(u+pP OڡSHv?dS4 }v]s}iqT2 Ssh5v0ᲘCѐnwR' _@<m ~%[SiTگH?m$pL1˳NR%&/]a kأGvO& ~ (C[ccW4 26\ERئlR$-Wia RVtL]"6vH9N^IC5HږO'q/9FoD(C/6A/(E )=р@p1 VVf)lvFqL`']L-cAkRjME"ddҒE5fRZ!Џq%|.qT38h{jޠ &-ezFo7w`Nt \x+a3/h~ڈN2( Ʉo+p 3|!և%kT8J Eƀɣ# ?@YIq |iYAwC",5h,d,P z +dl  E])0` \:<`9zkAw9BHEوMzN|sBk!?=e?6,>8/4 B Q}+ @eYցw! O&]x&=?rzy M+\eh UK%1!։Ӂ2 }@RtJ{FCcl/Nrҝ4 ] @Uq3ftj.,uIEuz r100<qfGr jY։,/ٺQEͧR_c#W)aWǙЇ*y0G_w:{`PV,*ĩ֐7u @hR;sZ+*<̇.UBu*FX#_aVqߝ{RH!iDWϪi|K if߀mX uqq0- ^z"t%8 c.bn 9` 9kY9BEgslF1T~)hl h@ "'KBP, BB,b}B&PlyXϰĠmTP%3g_="%y ,@(e"& *vxncjhK 'XI,X.UC'XIl4JTOJ 1MXω;ձ 8JH(װ#;XI,?n dA }ZLyeCu:-z-a&<}6Pߐ]Lj 2qXe g I`'k-w0O0¾˃/c(72$^ IQߛ o@$y*cc̔S &DǓ p !C@)cf~ |6\ MCW8V1a<̀ k kU_2r( `y 0 Hߒz;O/Q)Q/q\Xi V٫<;5 nEPj͠O.֩K"WC>VC|:)Gm1eoP]Oۤh1 V<D3Y-nCh d5+13@LzZ*\˱  ロ:c\}ْPVp/oos:// 䈽Ȧ)s G pWmQrM.,X`[—Zq:Ė$vL贁9/ujhc R <1?5-PX!/tYy̆EرPÙ+(hu $цI*2hePybϽK'[*N~X&¶*fOoJK `* =1}gpܲǝ /S7W7wЯZHrtZ@/=_D0=իLOh1,I9PL/rXC@W+muΛ bC/^}`p pL\Fg=*DH ʴ Uh`~ JN/f7 [YDE ^yjY qݐ,@ V`)R;@ = *2%o|ng*0)nT`&!UubDNg3R)(Eq+'E&!i]>GU .8NJeކ!Rċ+ 6,2+V & jQT_!ߊEJNR@5.j1İ\f/q MᲷ>Eː qA :VLktx, D}Gp~?ϒamGrȀBerF)hH`Hi=`.8n,Ǟ)BOЄ`&]kva9H SRAG`qϢ)vƆ΍!k-O0eǃ׏ uhJ @(P6|8 .`@E5 d{:!"%ZCJ-dQP909j*'!<00s\#ŲxI8ud +@  += QD42*Mrtrr}`I9<@c-ԧ E>2+M@IJI(G +@ *J?&T$`@0qFꂁ 8#$`@^JM?߂gY;[`$hb7:JeLV^揿D%yZ?5$ .;wsB &TU `Ə1 K+B Ђ +B Ђ +B Ђ 36hM Ϡ"o1Mtb}˨xst@i @_@\Ϗop+KV}' ]6m;Z}hb@28@%yl5^ Fv\Ѓ;N*KmEAf$s0AẠ Hf(30(-.Z>=t_*;=0qCg;Wh$<za٪ a]#f 7?`x dv$s9|za˶VQ? 'wmds,}RX2DL崧HO׻m9F)txԚRjMI5&ԚRkC+  gso d3/$7&^CzEqcdt<$ qm) 7"Wqu8"U%=:}Lkc  3Er{o]y#=p+h5h &i97@Z^`kPsSY+* _bSH`Gh3Oo*Tj"TWP(8Ȏ$:X0{i_5XBBAl*虣 fgSp͑%Ūj} uz|V*_ t&'o<ʻtK/+% t|>.n1;RuH%p-6TUgNÿ̒jw2a\^Mjaz)8S*UTēEgR+7y s^GT*'~vH"x'ҟĎǑ3/9I_kC(_:o9AoZ3Q6g.w_ƴЖX}oyԑ߸b HR| LmFZ`6Xn1^JR3vZJ^qH@0Jc&4[LHuIc7d6`Hz+̪4/')r#Ld.rcgXSq޸A b+#9Ac X9(ɦ@B1tlK]:iލ1d9s]+d) U2Q2˞(Td=$)E h2]CC$0@5KljI0̴ǹ5u'.jW."jޒ#p[X`8Fb>)(JP:x4s87?|n_P p;\9wof3Iz1{ǁM͉B x/+X/{EP}lTTHbD`xXasIw( ETAVƨϮIؤ;܍+XsX`q2Rz 5.Q `Łm j6LUi]~꟩6=,S0Xh2<ɱ2ŚP@%tH"@ 05"7U]"Ū8V게܌Ě{-Kb[YNu}Ma'U!xC8|y}X?PEtt$ԩ}= b>F=E0:51R}Rٝ_[H7e)|^T@Ff V;qB&v0@jzqn IAuKh2C 4Y6*_e*Ֆޝ_UO|ߘ4oYhBRo(Ԡ]XR v0`  lE .'eSjT竔r) Nyq}@ A3] NJE).ܚ( `ix무Pul!zKOl==H} :y=wI?:H#IXMM˾?:H#IX~@PvJi2SCa!3b$ғaF+'zi@;69m#)i1n ΔQF:, `X`|+bMRgO qZ|l̊62-U;#Kp&%I'Q(\):(E)}vBƮ  7&XO P/G_Cq3Fs Ks_ _c!s򍂖P,9cXA@0` );;UZCm@¬DZ up\u,'N!6 xlR!}J]>_rc^@P$[ånUHSh6vxh@ڣgW:n  L8}1CysL0M *Ut +4\děpz2못m%L@{,, ;e1 c;+G䡈FSlOy]YTqK8M% aDѵ hw=kT|L򆧆-sc#!E`e~a皋he0 OK3xQڽ ;0 _;OIdv?рP  =7_h#|8R=$"FCPg}cAjjdF M+Ě`(%co ,#S| =+wPXBGAesx2iBe @8< =M)_9` `)0@M\$R#@Y2>jD):`XZF'O!p:[A-'B!iB#i~Ъ{(E 뀚Pik~Z;9,mۭ$`(0 ONV.H s6U߹.R;"  R^+F[bDE To!H8E~ڒwJҚO)"M;<Qk9ƻA^ j.7d-+$wnM_F'aaNnϜ}B5c(fvP ҒCC\sxU![- ;c~3oE(z6>]`߰GJ,9#>4^rFmzJ`@\Y0[Ϗ)8GrS|'uj@A`Vg_p-ȶ Y^Vv$L mylD[1wfQDEQ|_вrA9dF$|cIE_Fglrɂ(Fw* GK(SQўMTzoʵ3x0)qbNHSעMwΣ ,A87GI&{d+UXnWvT:ߴ4Bi- |F40 PD$ 6x"S $`yhT V!A'wpS9*k _7L)qJ4@TF-!/(q'| H"0%Hvˣ[T(k5xW;̉P?QSVD1*h~^\DqwX:B#aKgs.@^(U qj90 L֐j61VjYo #I+&-bV{$sU+#ba`āyA@ 2(χ0V{/֧̖0 FBˬEjwY!n5 ^~;/n ar4AcT 9aI[-mxsm3KR w휫"~Q+9?84IѮW'O[âו{1`^oڨSty;-?u52Ut5!S I\aɂQM"}wh @onRPYNt("z*%@b 1a&c$Ldc  >U oԲea|4ZN.ќzI|dZe;(p<͒u#&QL= z( ,B=@ Q]!&>H k)bc 7j$C̘I|~ⓀT#32[=<:FOiǧy !:@“na#!,L?AwtH ]P_aD RbE A)_#V+—D&ê5iՋlTyV Ә [ѝoRO3Bp犍p€:_/)i"`8GG)O˞ p1wlUS"d[i4{]c{V,c_#{[cY,̠{qJj*j}Nl@]w̺l#@!v$`*Wx<)~ˁ0 dX/7o 8q?:`Fpo@6`mXQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ށ#Q dl\ϛ1Ro̟5Ua.{ '?aupo@6`m@"szI`հ)GHB/3Y5יðwa63ZC m\Imky)wIJz|: eQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@1 d [c^T lfcM4rIs656C!ZtX?@ʁ dX/7o 9r_~H<!hbUр[s_=8q?:_ 7un^3p7Y5s7\t{!j?c,c^,Ggs`:؈ t C7hq|A?q: iy4SM^#8'~@A XA8`kg&<d@:AYa"Lm-llC ,"䁗AX]W6FJG6FMtj驀a;) U{)"] )df%V 7v+_[٪0ۄVyP(I)J,KƄ_H ٿ'G3_t@ƏNn\@@ف{qdX/?P/ tPi#XggH%+x o 8q?:_ 788[JKZN7/ԁGV$d^}y7e@6`m? ɧ4;\XC dX/7o 8!4 R;!?_o 8 dX/;d5[)ٍfkv'PSY͜hF0Qlvd5[)ٍfkv]Zm(i;$ dX/;d5[)ٍfkv' k_c 6j6CU͘lh5E1Ҍfc!Mfg@ 1 dX/rrg؀@IsGPſ7u `mupo@6`m8jugTBeSM dX/7o 8_=8 }&'6{q?:_ 7uq dX/;d5[)ٍfkvsiF3Mڍlf59 vkaFjSY͜q dX/;d5[)ٍfkvsiF3Mڍlf59 vkaFjSY͜@`a`ߠ"@ ͊gWkokmml 8+KIUc@[A ,.K[Z+[#Y xca#[#]ںAD֒mBۚoQ+,x RCm_R1[PHy.A,l'$E7*‰\5Qyh"֎WYLǖu8!||8(.խ R),nD`\X1 d4 bG󟹿08_~CŽ"?" s~B@l}O߫jx~W'M~QTwGfFz$I$I$JJVfq57C?!x=&2`cCIH4]Æ쎠Q)0CDj| Fj_|8o=Rx#LW@J\.1uU.QgE9:F@N4>О*0!RzR%7 Q}mPyLlDv"T[xQo%E_>"T[QolD"`ZA7<H8F翍oPι[-=g pAk\0 ʩ?p8D٨ `?wPι[];0vf[ ib1-@eFCw'>u1w̓(c:z,I&peWAX\l&t7gF5Fpf#|e&M vmny8OntQUl?NCz)*d᪆\.Lv>Ů"Ӑu&P2=+S[^QƻjwlUz1ڭ7w1Q0g]kTvF[ǛeYO Y kYw' ;&?bWI=l_]m4d8TS5ޅ%UFX_%9 W\IXu-3Ccn ۳(T^8}W \A ­*ިHj/`;Cͩ+yD4p1،qHSN8"D}G>]1nc{OU! jB>KxJw3N8ݍ~WWn1OҠ_B^8$dDD _>.rN!SsH&Sp:\pbkqr/4JDz]&[(c2Gi[$X;LOTթ !.#&:Y^%_ۤ@ʨw9U5{)^Lq'u[AYF Vch$x ofkTwaE8Q:ghs8gQ V{n#lINuMOà5H;4q|M H3"5A !K-DnS7NX!d[/ #C}cMLL4eA!.ȅA ,E\72H^-p D4-,L<iò+vA*.NXѼG M-:LWȎpn*0v@2\+I$9e{IfQog/A@*r'KaPoNZʬnpfrhřyhmfʃ?]# "bx\@8x:,)5hDY~P\E$ՍpTf(rq* (}Z(HC] -mF|;o~%}H$O)HV q;1#o韫0\I+QU8 /L#J E{W$wXj@@ ;P9jGm!m -OlAš Ʊǰ L2Wg'B EoR| k>d@ ${f\ 鯺Ԧ=H0͙wG+[0(8{x޻U|(N>~Th\7eX(s?ь?@>cHpyӨdVleZw;td󯍝kIduЈ%_*G$ܡfv  C  .1uqvҒ;tqHaH N -1$Ū¤R7}@?.[1,W5ri&C/Jkk|GcFof-t2`~sU&6L2Y6/}D"x}Psltߓ@D-6c0*@{`Wun޴㌿Uz`ef% Kpg~Mr,4RP8wo-p FUeWw@ ;3nMVF G,-ʜhn9$6?>y)_ML4Jt֪0F(.F"k9Urxz;-=اm.zD@ wཆkIc|lY*5հ>-:6̱W AI@FR1ԝKXdD[O(Lz*A2a^I |@ Z" K">7T(LndqbՀ sSU!F81aL_'?SnT`b !%a ߜ(;eJ_)_g@H7Q!ۄĤ`<t<RNT$Yc+.:$ pbҰ΄ڱvsL(5 : MvgѠqq~@G"`mHheqf6j! ¸.=<Ό EA@WJ46  D@~5ReNmw0 O\߀owX($D[x@p.Y͉ 2qXXd /p e/ԘVl`SXK|!?@-i'P.РzCV+h,P0E:.{BGV6aSωh~'!k$.x@luQ#k`t%x6x)EZ,tuN2Ws~#`1ee @~b" tDC"Dkܠ!T-/  {GP'{ -ȑo|BM0It$?7_XrCPDZHeib$YX"RނRw "ڹu Jօx62,YfRd gɮK #! ք0+JiU+?*?@|H*`V}+->cF81 T;=dcjH<4SK֡k3Fx\0^YeGGO:9̨t[dB"Ҁ#QB)8i{3~#D_'^YjbPI_uh.#ʤn@_A|ҕv|Bq٢I7; pA^e}FWXs hƫƐX\ӭx6ttFZa%G;U@LUDvboYr d,!4: c*|pmbJJD]19%iɴ.Oa\2\AA݆VI;$qN~,͐ 0.Jk*^@~YU9B΀ͦn-`2"#asv*΀l [`z2gz8mno%AcǹB`? x&*y~"cc= ,R3vvk%E@D;u*poxݪ)bL -k63ggEϰ1@_& ,Jxf~:򃑗 $@=%#!+ `pemr,~$`R\_dD#׎9D?T>0dQ* Ψ˞Q,DfBTـA5]HQkٜM~+ɅhQ>&H󿄨Fn56,wͥ16i)'2YR3#xjh|\;+ E R"]idGhsT,Qܘe m>`xPe+pkPW@CK3|7S j` P$-`,08^QdMwie(<KY.АDByn @c[/XX /Ѭqt @%E 6ME,2!//[|ڀ x KMZ z'xR{e)&@ mB1Bgi dlGo@>Xn%:2Bmqi0 v+aF 6 @r|]h:d`+ wB(@c@`H H`_U09n,bc@T+vR, ע)U&KphNG)Mn  v'UĽy-^YU#&{P555'`\+oɡu4}M|<Ѱ*ex!"q(C5 /Xy@w}Ӏ1#YLyP5 iǰڢqMJHODͪ\&6Suz P We8-|yW@ z Gv<,hc@pZBw.;Mn"y1*t9h'@6}G0Y"sI', 4:P4.N tZ6kȇ,5`wk>%hLE VP"w68*c't`R"k< 4{O`(û( +vҩ028ՔS,SKsDl!C,rI |߸jv *7Pw)pg|Kh@f$%ERJ0,WBc>{F Z3p e[M 'Pڕ]\` w e2>x^K$ rufmӛC9ƒ]kM91˦xCٌܑB}@:`i>pA & #Ɛ `ה6,pXTG *tQDB&8xΨBjBIi/6I0[B tׁ0&|>FuRz4>vpZ-"yKFx`& /!y1A88u v#5$^+0eamx37jQTDR|)Xĩ;9ѷTd& tӝ%@vU D ڣѭRI(g%Wub{2΍5!GlR#aʷ;#7z0K{kQ^(,p#S Zz]! M}Lp)0%O*1i^=@ ^'SDu ܈Z?G^;U$6xlNէπ4;3 V!/q0 )0yN~,@p.)Dd}8Mc^)Yx݋yI*=ϣC 19|C_.4MS3K`) S<-#IXCS:ПBgeRZ01VZHH3ZŜ2_ENp {Ao004p ֻFF+ٖfX-orlVh{) } y_R$J;+GXN * yu60ȀDAӕsu /( *+% XڄtXQ.܅ zY {@SA dd 36Vht]WmgQdɍhftPu6YmWEmʑ8)g|r ƺ_ɂRb@`!܁Kh_i0:6 l$'@,3jگ^m̸Wc̦M3ފXz($NՇ>-%ӟu/D9c6p?߀1@@17LzdB5Q|S7Qv d"TZӏo|VFΉe>sIzſ^e2_ttc.7a_ HN.Rx5ml2^{W^_~^+/ș~ek ?o^Anb/,\=,1P8HpH AwB>qmxW_mqHD4پg@_G}0} =@OvXжlKAZR| eKk椏 M2}%#O* nl@W;ZtӧN:tӧN:tQXAx*Rf+x*H0rmIp]%:wQɵ&bQɴ*cF:_rmIrm^BP',^jLx/^hE-c*{Z 9q~JoRa?%7//K8ǎHԙ^ G&ԙ?7a^h\HǸyζ%jLx/^j@#F&bQɵ&b[z W?{d9`ѝt=;G7l%^"q; pr M(N㚀w 4qM!v]W9G*C(,UFpwX3r 5B7|\=n2Y# \R!lK꓁Mz"H.[ʯ2+8|`qVyl{ۘS$jjd eI^"o"(Мr _r AN k0"Ч!+8t/txj)jd S>Pw>$Cz@I6ّXꓰ@YQ>-C鄥%9Vp_EdYbfJn9qhIҥZz׻[j@.׺;^{W^_~^+/ș~ek33@7[kݮ>SHK7GPCf_\9(vp0`) bS@z3p#0 ` bS@z0r5 :$%+ز,ˣ` F!4D[u sU 1 %LȾb~030'd*`@qW}4DC]V_=πCF`z.()ъ`P@}߸7led[ E*dn~S96yˆD,uހRcNTغ*~ln#5!qlNp/><OzH42 ڍ~h>Ĭ]]vxMc$ [DYDfŠdp"x(xc a屗l^KÈd9&>U']L%c-{^=V`U%W'!A- p40!sE @bzr= ֠N/#ŸViQ(}iz H sE5?wF!~1r3Q DdpOdw|W5+)HC0wt0#C)ol(,$bCnUU)8 v( ۍLvÂJ10 N5y4&.%<Äs`Mhz6:3dC 6EȲ2OƯ O%w L4oB֕ ,`'Tl:geˤ`AI'}; p[#̠~̨Bv.x/u2S$M t1/Ru[5&p*! j~C|Am[9X b9AY0f <8`S"5]e&$?-ׇNPڟdxA X -`=Dz`.#]Qd~4 r#'>p/֏BC>9@$MDbÀ{ vFX!34#As^g|:薃`Z{EksFL0h Gdm` <ͳm*:D|xxQ -Nu/!iI&tqDM%(_J ʳ%B*PEt48@ ڳWӐi~>`ez[#l2Ѯ]NA$ t=Fҟ`C)-#B lQ 9P]@]AGIg1 9+>[Z Im\ ?J!0fS$*bٻV&DUʌPh/@^@ zp4*{8P/¯"p~BHs߁y!7GUyɘ|"M{0o06 2nސ͡y:f҃DD8r"MP1Bi,dŘKP^ jҫ\?2l}GAT@- H´~RJ3)m: ^ 8ChBG<١Ӿ<ȭѻئߎa/>P@'=^ I: '@~nEQcb* qm2JWx--@:򄸆>pm,` E mİQ |\V_8~DAU+>5IxjIpOG[hT[YQǣ*@U;akS]ostEXc,iGh'3VH'RM?0\O|hĿ{?Jk05J5h>!MFCR/۟1$  QOvku\\ û XW]0ɢ!HHT= 0(QS7[x)@ۤu9@Rp9H ⢸~bMPU;7%Ž Kn8 T`A 1d/4| SkSjN( W|-0^`&/Ր6{4f^ZH0jZ7PON}Si{@V4(Ybx ~MX1a /k; q9 x"3c qSKF$:cSB[6 R*2<[ ܒ`@ bv8n@=@ `^@7P>T였5P0@kb@(. e0&: q@)@c dX/ ps_Bc4zr\{]8SbOM`3oơHeK`m?p %t@UQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA+ dX/7o 8υcH7BPp'~{d,`m?_~S-6+{e Ov_'ZMk#S? Fw%zdπg,-yk)B)z,K duˇ;*`i599=Csvpx@mq djl͕@B/~ ́(^ {4 6 o 8]@ -3d(ۑto@1 dX/;d5[)ٍfkd׆iFBuZ&h_bb:Mڍlf55A( 4c?c 6j6CU͘l^+ 'E_ٶ>~mX5ҾH\+5  o eagI枝wp-vX}[8H@M;i5-v׆2C,,GP1㜕L2w>׏f> cA_{:[}X7UXt//C1Ї~9 Aɺi7|=Ҥp\U }M苅02|- Y]9byOٽ^hWoQ  Z-p0A(}+JҴ+2:JWYcWH)>OgOPooY<'G6H,`C>b5™8g@Vqh]PX]mG6\VC-2 %"?*+ۊV$VS9FZE 7!qR l׫ç,>ʖ[ ֆ4,9,ة\IÒϺ?TRտ&4nNs䭇(-w-%gsH{fg*H|KE+uԹλY_禐Z[x9D' MCshH*2+]R^z1h[WYKIq#X'u,J<Avaݛ!pvQ tn‡T牪IzAZ0{sゥd2e&Yp4iiR 6idtZݕlC-{,b޹UHX0 Unv[6G }Cs{ !K< Hx㕇+jݝ\/Nw*vS{% G,@=Hޣ'֡ewLy,j}P*:܎ê̷D%n !!;D֤ٓ'NvNbn7)HAoNKe . 3`$7S1,Ncbx ݝht)K6Z( 5xp"~+ ?SDvBHɑt!-+B%\(+ʷ؟\@1 [4@ ws9*O#£ܥd[אVXt`vepd T";ȅ r 6 TxSLB|^9@A%7p!G᝴LCЄxoa$B2 v:lO JyT -Van֓I"_:gpPKUT/ӵ C@ ÒVO*r$$|A{@ IM g#y͘a:iP joDPH@E*)Ǩ–V]QGje x9(=wٟa/r2@p_O Ыr*}8 dt-*P^nn $QS@~b6'ZykNd,NuC\:i 7MJ@ؿyB#L(@eoHoZ~nvHKL 鉏 /N}Y ^yBS`!00WdR,w3̑>lQ"糀y>Q~R7< |!jDz;'0_`# \}@[ $.+% \.k;D0mqRGOxvADy뤫o9|AvQ˚|gln \hU Y\ mC%0*-]d^XT.0MNb̀}4'aj/i |Kk T8Tڽ`"NWa Sߍws$ZA^% H}4R lnG7rInrz^PxP6֣# &J [ʠC,l0 BgdN&"Q}933%bPLـI<͇<ᨱ)]{aK@$ڿa8$G$r7kBcoe rl+ݑ(:27݋ [e`^}^:̱PQ;XE2-pG[(b ;ގ,R#.-%OIe*a<,)XcjfIX0xہJ4`}>&D m8a..]ׁ >-w:4RaOSQ' }ox 3 C Qƙ9 W~XU̐Z(0vNx88f>4aO ,ZS;  V:D=P7x%g vInDBM`0 pʱ؎ȿY:_Ex?fwYWP y)Q6t~qT'.. >۪{Gwt0ʔں={PxP7W{hh5gd_Ό{oWqOJA|%56i:A92u,O!kdjCjpռ:\^ .\\G~[]oo r'R٥SZve|p) D ~ zOH,~6wPF/:*Qt J94@Էv6 $\ {(ԃIWmE.l@"K] ap P!iĹZpp$@е  Xu"0lVϥ괷 `”砝S(s kڈ`jMR`f>3oQ5\E eh ri?V#t_IOčRP&oX^ /դrz ^t}vu-T7W4}q^4y\k 2WŀɶA p y_ۇq}@uL/:4'0TP`UUSv+'G-3z Ss#] +|z|ĝ r o` BfB3: @`[2$h8{!ARIY۠";$g`(qZ)ă UV=(׿PD _,GGLmف)[!"H@2Hx( @wF iQV^Q@^ HpQt'Mj3ow5q^Q@^ Hp#%]%G0. (ogRjc4"@9NrDm ~$m, PL$HGaJd \" `cL'!$I@ Ra>cFxE8 /dMPJ l(62 ( 9ad Kkx) fĽ}NjTYDkQ5o7:̠/2P>;d Y$J8XJ6Zx @DVu@n \|JdEwb S_]#*"Bg8)Kc`l:,6Z\ 6 ף71=1]Qrk,C @$P 7Bi,!FW$@ޚNԈDnnSjb{˱@9@ %hP JS%Bbr(T "z  FiC >{搼XG7sA@CT.s6T6a n^4<MmpN}O . EЌt,Y`+Ei`W5 t }}U<鉞+o d;!hҐֵp:1ݖ @MM61ETO`;P%E  nN .y a;oy,j!~fL?y$9nFod΂mt%}Ss@fB;~0ǥDX͙(N㱦 ҋ5^0\/Mb\cѦTQCubBc-ɒ4R!$&?` S0` iwXއ^E*\T *m[@xŷz zbU,Bo&}bс\PRNx.M|_Oʺuw >hP,]~akrDLPF S , B rLC*P%+LW+F"*Q〠'2\|=hT.ZAbji#lV\vs`rV$`0cT]@4 2L n0@ 2vW.My@D]("Ti[YBhpbCeTAhl,d$  2` b`;>#]-d}_Qph;qVvЧ<@oͩZ:7z lqts1,Yiː84L9*@>@ t"s{`ZkL8D-Zp e~\Pq u\{HyEv % .P \ o`$V5.|K!C(;2QG$%p-:Pc-3N&QW A8?L \ oWAyE@ 1C._ci E@CxFSNTA+]$g,TqAK,BN\D[$  mTP&̂BA*/O hqv <6@ +ݘ'r@jͳ2CpWX<;QB=xݻĽm q z!:!'B;ӕ^7vyq "TPV7%1 |!omdX&u=DN૓!!.C]%5ns K <'9+&B'zh-3iABw6. *@K.0~wp;A2gT* .\6V>`x V2!P-i ^]Rm A60VP3}#e8DNGUNXR r=/|4A` eHnM^+.Ư1&<8 Mo @,n~J@g`B7O~M2yk *B6 0 0VZLXK˖C Hly~&Q'r jh2L-&jJtOߏ5&Җ\gLhSON'n<=`=` p\ӀwƝ2$.jj 7$x`=7i[45 dX/ ory`mD3O5{,~?_ox1 dX/7o 8^<Foǿ?}  dX/7o 8q?:_ 7upo@6AuQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx KQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxC !` |}RG0ePj# @y:<N8ʺ퍰? z/f%?&StVJS5#.Z_ܕ Xxv޻%2`;&k(Mc8l'Xsa`aD Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@!Q dX/ ?_!}+ϰɮkY'W?oǿ?_,Ip7/r;Ic KA6)|qȉ9Zڢe-`hCu, Tp+*+aMW(H: 0kou~6LyrOv O~| ~zVw`_=nl?t=?~I{i|_z/^(3__迼ڙ 'e/Q>]?On~?~f7eGdPM~^칥]?Q[jKDmˋc@`rPeT5ϽƑfO!4 |9;I %(D;-D o KQ[j~}aES?FhSN#=߼w;}'nsvJ%ݚC/|^Nд6[p-q. %.S3TdGO n4Hdԋܔ 킆Oo#g4%u1:oWP ?\_q#mEp^,>g>&骄mR71BtJméUtv87c?ucՅ)fFڊ>p="wGqkMB}+7܎IWOT@ڢY[$B V8U*صxϩ5۾ԢZ)43AcxU%[%Ө=L h( 1QL/p7y@繌QVN*)դbS\`Oa8&ؘZnDb~+=7{W6>l.ynk=}?hcR xsxg)re{  KQ[jg|]\tc^xxq}0 E`Ihd\94#M6!AzoUί[ y]IK#Eh;c ]ʨ\M[kre@㛭GN )zpتG%-g*  >Qn/S4#j^0Ry#=ȝ余);Z抱3L?V/!fPY6E1a^IPuMpT@6,Whqؐ ЦA;:rO>ilk&8#0(;i?7mºH LaeD{|]#reI$ [{ܡ϶` DPgsK̜`lu(v 5u`ȩjeS6**)4RpDhͧO d%_b'٨`: ΨPۗ/i.ɶ!(eC6';pvA}-ǁ6 !2 c cg/TDW0f.W/XR$6+IY Z% w߉ ېm(函i+fd!%9YPKMڶKghr씷!"*jͲz龫e_)}!n]bҲxgdcY=0"&WlQk F?tUtkX9 XNQ S~L#6sgF|WkWsCᵪ]7?L;"ĵ!C;ߐ3ĩeKw]uVn qNڙ9a\L9U`FV cHd ^\bf*gmAIz>~EO.zeRFwgCp' E5a5d *89C#)XWvl؈M6>p"!9zVƂۣ,Hᛏ@J%ci5h{岨 䥽 >OC=Y7Ո3aEfi~fFwmq. YGlq> sPkT#hΒq*!53yϬBk3 9+UZ $sr: oArWpTK(b݉ N8K` Md7cSޞNU@|HngU쳘Q .2tqU>˞\hvö}Qfz}6WQ!k1^.?郴AHe1i6`D^Ilaf5{]BE&c[V%{;]abz<>u?n$Qy83 "Ӿ%)@v.3矑c]O(jG9@b^X5鈎X%RNT>aG3N 6\y+I?^|1R(ts"XJe[Yr9fj2/ZJR$-?5@ )#@jy-,>/.tHw|' i=\ X[dNÈ oP\Zw^'-; K3p/;@ S086 ;ȚDQ$ys "Cq#bMCP3X$]"W<%]J>n 1]M&Ko>lbX9LJ(q7tNop,SPMрhy zoC3k4,܆KR1$[ GHN|c|  U$ c=Fs}QY7š$ h 1G>!?A؆ 6aX*GP<5AxE/Uwш[_QfQ^0W"D]`̘HA;([l/fsn-#vJ# [+d'@4(%Ķuj@%A\Ú@nN^Wͽ.!' t&j0p"Ƞwm1P]Gc=wb 1"2zq@J2`# csR uiWAp8";< ƅ^"jIhlcNU^ cDbLbkTDzԟ,>cM, GyBbke,-F^0K_;4v@i!xH aWq~)x^.t^=1恐.:2ԄM5q3F~o- W#c[ԁ.}-{Ҟr»+}+;O `$> MVw.9_xdi!mgJ>M,fTa˘Yӡuß$5if&"8Il%%cGлbH|+1aS[ ʐp, 3wL>t%%o<|a Nh0ե%rϴ}uF(KӚl m-O޺θݢ'K?_ԯ^%ߡwO~301c-/(Owۗ>P>oAemA me7]x)0]b}ⷉ`dW%c0ԫtޥx!9onE@h::Hk kȘ[Kr`IJ_-$7-[\nQ,V7' [7wSRv^ sV[(S;_ÇrF| pξǷ>h, p9:f'mO`z &d-XDAb3I`K_R^HK%aIBb-Q"?NR~;<%{cN+nϼk._< K /BK#?ZV^ 1J0L 4-L4d—I 0Vr+rV9N^y)c^&z$PKz( '.,JJ. E.e*CCѱNf!l" m Sҩp9a\>F6 HM$ dW5A\x}i2pB]}-oInU"P< Oj ]Pym+i #MTm"7k Lo^(NN~>@ Ѐo6윅``;n)4thvyuʸ{Y>F' X# iq@pf5 d(I0`*ڐP y<9+=EE_j4'l+DKm>+ a. G N/׶zwc^̟9䐣7PU~:0TaM" H  P3G}~a{qXmK8rtl AXࣧ  Č 6K'I,.k ~[ ,L Cft8D17ڬ=Z 726uX\2 i7{-2\ҭҡ<cj6:laOt aA XtCޖ .q&1 ZᄐFc)pv&k-E<:u)?k7#LJxTM)/-YY[!=d&fɏNUT[b 6 )9$\6;4C[xwD9E#e$S aMJwV[]d&k-1CYÍUt}45rLM;EGm d!tC0, % U'uP /%*8?0XuS&GDrDcHN"g`9kS_ORJ3>*e=+Qta<܇pXȯXW/K rq46YYݞzy/)@CޒV ȍ#"7W~i#MpxLr!iP*Ч^SQ ISBLӞi͡b8R4+RBJL@=*n2g{K1N.7P._ X+$P|L &=p6;\{ut %+,L/a@&  Kp&r.B! { `$K :>}5n]<[ip>c"Ա$JSwJ˥^?v 7+jwgDvz%VRz&e^7soHnEo C!~9@a,HHrW=)lj(`6%6KR>+()w6( *ʘ\',} $4ޅ2 H ;(ĿZ{u'Z@X#SG?{w\$ԯ\o=^swtsݚe!=죅S^ ثҝCj0Fͷ-6ԎV9>>C 6^4'͇acOc?#dfG򷿢<.lW~6+3A9ñm\PEoϊ5`͠A:Iu\/2M.d;W7nb8:k[bw+;]5P|&Ո>qRzۤv[p=$*4!>>ei_ !so&7kR*芠ٶ乫Vnx ShUx]FFEj#*GaWRq+ ^3UՃ y?srjD= pZ= Bt$d.jêXOP d 'lWDW W@bn37, /FwӬb@IX0ZmH!ɀ6ߗOEUY(˳=H @ au: 0R 4 N @b +!N%X LWN5!z8߀ Ҟ^gdxP[qRlXۢ4sԻ7i@RR 3I;NWhbp9  7 M.xSn&!ÐL)5֦[#92XҬ9> @@+I ` Py|g \-,Aog!2>YR` c*G6Z#~W È*Кx_/`1a( 6$@نG J,&`Yll2$1L!j WV͌ZqHsL`23'ӆhZ0%8hP$tFzZR'|xѐU# ?%À5kX u Mssg~x!$\x@aQ h`0dewT+m@$<eaXWI͏oe:6#o l{j%nip`g\@}+gKR1Is-A}NjD720 qNZ>G zw%Hfqb0o-B_q1+=>V)<- ]=E" 3VcHwaH q6`{ Q&A#B}@$aׯHpfS%^l>٨p魳,Nb)uG^yFoHLI^z'hn _S-rf$W!$/6h ?b;W>W8@ڧ 2OALMST7]U{! )Ϋ b-R:sb@&ruZks H!xmSNBiѓ~ܑg@zΝUB;QE=@^XEL?eGmI M U՟-@RƶP od0rtH2~ \+ﲣO焌86\+N{,ޗR9Wй(#L{0J "R YY /Q ~5pJHi E7e76ʋ Q5%ϥ*]+lCݻp\ba6!) vdxb-03rjjnT|#R*ś񸽘~jHk_`I@$~ , y|Ja J]q^FW.̞f)W?N̲:Wr2m#Ղ%J@ڜĸLZѱXQp>/,x#x P]gη5[I O {RpNG -'1ާ@,#&68. fQyMA{\8J}wll>~B~We#**J m1 {W쌠y(z\:s喘> y"(9=5ʣsrD$bŻB)7:!%SQ7B6Ճfs طE$ #YJ "%768v–7 ;qD +j Wʫa;1YDTCd4qߒz⾟Fr/4jy$TƯPF ztg&G#Pӵ6H Zgky.g#VbW"5IG@UEʝj 9 n˂b7fbn瘩HAlKΪdCaU*Bh,IHX1BǁncDh^͡L}l# }.(")<;/&a≆Qйk|_A'I SطnZd@/< ퟸ0@ۨWsQ%S+FӏxGS{)&.(2{@d^TRزǨq'@EiΤwU-+.]0 =dR&5jL%QrȫtD,ݟ8rO(2#=ljj")fQ-'/M3_ %b":hlY0^[29"e^Z{!SD( +HZɦ7ɀ[ ` A9!R` hsn`-$*d; _B/`AXY@2* ?2,`q:T@I%*E~Bn_!eۊfqO&@ P iocAVTUv>s00n\bib=lj7sրsƖC*  ~sr$@#U&9\݆F՚h$x&%3ށiy᎐]xt.;aXt{ @vS~(ɀp;p' Sƿ' pb(*QXN%  ;` \xk&UZq8X`:1~H?0&a: z*+ ^~eu 4>XVmedlZE.N%~!C&J(]gm6W/._yF.VR~pm|y) @Qu ~mHJm h: m4xt5@>cɍBt7@xMe6*d5r(*@l0Wޒ[v|eٳ3"w %\kRMu %wf5x ӀCI@3`Da@O9DxfJ'8DByמ)6@*t 6W)ݣëUF8 ylCyѦr/rW!WIKwoˆ"n-4H0R& 6K %k7ѥ;.+@d0_)D1W %ۇOsE7NY+|- ߑu 6I$W*J`-I'rg:/JDJ1x"ݲ$ Q'Yjc`PZ U-0wA*“w5h|E5 9c7[p"cBM@rbՕ| mo T1 7T1F!0MX, *zLذ8Ͻk-?`dci9w8U{Z'LʭPzpŁ4(F`@~YTw:@RmP#^pF&v^{ JWAj'Kyb@xټާE dhFy<)ڒN(PW67pkwMP&S0qo儞!(h#M1k3rip䧱C^\1 P0hO6JcMF  Xf.p- Yr0LEf Su`]zIBLVBX m.[]D1Zp!*\%maSȁ1O5&2] 08#<m~,톮18 H|ʧx:#10{pwyF ?"[vKNV);͕D朷&KLE{(RKr2w鲌A~Lpd/TwdEHBj 帚s5V(ç97Ne9cVYp%o~bv֧TH( 2;K`1!gdR&Do&wԱK {$AZ&i4EKygݥ1)Q+`Ϡ0mdRn$ X:+f (SXoOfbu-(0 ((@ ɭv|I r<,N2وB Е  8nWbQX&ioml PD(Z: fhQ?=~%'OF6[-ݞ&c)łp{7W) e8 _c)#_ *CGjg"ۂmqK9UU;QyHT2G (w\puf"5XXlEݷMƌ`E}@܅p`8_usm2']J^/uI$2|Q Ҁr ! vp~noj FDzbRiI*3}(j, 'jAAU$c)>?jFݭ zyꀑ.+Q+b&$LK q(/1 9+Զ,q@J'WUi~8 eĝV ]Qѐh,uBVxUI4m0DMuk 2D\67U&WwU z1(X[yz]1Ou@{sIq!䛗CpOϩS~"rZ/wDE /WE9}*p`Κ$]d!tr0ߠPH5 採LnF T 21l5XF˱MV@ik8`wN IhRhH NUwH*nDAc?P.ˤ]XbrWpR ' iGs~u(=?E)k"<8OOĕ(g2dK(xT^@&SjmtoͣFeBރ#ι^@x˙Hk č 5GeoHzfVb3Ze3yr >-Gf<:"h R߫ ^* a7񘌃bdeV:,BJzc\JaL69]'ifRˮzeY(K2؝& ҧ¢Ag8L<*[*1;TqK"i ]J+ 9b=ʇc!vk+Sq @E@X:Ru=gY"`BnE5i ܧ@\8Lwd (o^Y0 y6P 3u7 3X@s`d1jh#f@^N1DgQю7gxX [w`I,24@ ? vBa0F `yl@q\,j.×Wω@) ?'+Kl?' aUP  oG`*06ᘔ7ma Jh mQ@U@L_@·Q[5G\3O])Uׁy!)+DUP: Ǜ :tZ%ЮxLPZp]PΝݭaG^$ (3 O*Bx)nEKLej`_W] (@:ŗ|)v3Iŀfvr}<<*:5l-,nz=g#SO~mk,9?Ͼ aKXC@ JYaG>l󖆘ݵq)*"&'_ugElJL\t11w}c?v [!W7؃@>(V/r .oۤSiiID<VėoL\Tp:5^Țx$3[Cӷ P]QbQI>z@؈GL4 )0RM~Mt"$e  v%jxY7|(\Tl>TjaoSDm@6 ؟<;NVjS*a,%]>9DU#/oŁxi Pt8hegt W+GuD^'&% Wq78$<6" _DC(0@7z`6^v*ٙ^{Pa NN=`e becqsT;0MG>a^I()'pKTYၻig푬zP7\IiaDF0\Eo^@I~;[4Vyϸu ̊8C!TX"o&)$TErd!Sw)75^Kh A r~e+m5S&p9ӓvjy [~E IU>CU}?Fd59Mtex@͓9䣩WQ!4Y3p*y: A\eh& XR $6P(?&"^]D.P0 @1`aApd `/:m=k>: .kPtf+0>l3ϬYbS@J6(C訖-xX1~b.jO5FzM~;` ]H+JYp+:Lt/?+]%KBKU0n&j(6FQ.`%}2+%9n!8@G2ԝ$"-Fikڒ\2 |lw<^%!P9[R\#;ўעg%&_12 *'k%۲9;gD]NX"H竐˳' 4db p Y]wd,*NU?F ̹ڟD b2_\ |xaS IePGI ))a ^\NCɤ@<`ꬠ-G: &2!e"'&2m <h\;a .d;ٶ,δb $UBXQ( ZՈEI( :h Hu^9Ť6W p[&9Ӯ- Se~p1ߞ5K9 [ S&6ؚ*R(P^=d̾ku"5*@$V[]{kPB֗}!tC=8b/!α`͋ڌM+ixG q|י͎EƷۘ!f|)U6&X'~6F(,x#fMxgY=P+-p@kU dbtZUJc1\;j@hj'lB@h|#/ĒS$ 2Uoi-p$[)B|Z:fBz}. !t&A}ԀE&BX g.Gpȕ `,FH9QC J1xK SP6:75 ,s،OrǀAE2OJTӽ`0[q؏|k |<`i%shN@p ln \g&ÚIn& dЩ ^40Hmp @!vfC>v1 1z5bNM< @GӍ_ ~Dy ̈́S!Q#%03N! =Xy:`ʤc%;.PX[5EcDX3WarH"$ %AAtw$.$aTU0}Y,[$C}(0z+Gqp~2K(Ҁ[·wK.N! ֧ 9Np\A!HvOF]j0!7\"F9)(4%`CP^ 5? YDΫU3Ht'Јߥ-me?=FЌ¥4/@-_0 5[T4Twp"dJ15Z]UZj*BK&ur+'] qxmp.F@ON/!PrcSg^Y Pa3<(GZxwq&E<%H L> @ +22ã@ jO*@[!/"P#JyK&%6gЏ{aSF>qqo B#)D0  72)Owʆ: p(0%bk0C~=~n{_0̶.)P=TB4T 0 j -<17y߃IßDކJP/bc"c9RŽ=advAr@d"ɂz^ӄ*W(.6 ܷUE>3RόSX}Lgxd'zi^:S*퉊)5<+3]Ħ>8c(W&wxMO A!멡W^LI[0ðpo}D[4(-Ġ0d]k9ײ@jq7G;WK#GNsn!%fk-ùNblcUfOL ׌Bj-h*n&#)%k܀1; %1D"@LGAW}Q~EkOyw h|&JOW:5V{E(h1TN^Ą>npF5PEօz(Y4fInⅻȬEC9kJDdς?!؋Yfզό-׸ϊ џ񑬋\SBgIzܠGfu蓕 Jv{^ |B ظ~ ZG܀ ?3|f#:]nQ1ݵ4Uhݝ]l^-P'ކ"S̀/ YjI[sO-lڼ&krmZ7V/004_qFԖ@.ꌬK.H4EI=f=0 t:tn=j% (ap]#<9 b` z+VqX<qw@qx P\l aOɠb9!gSĵHOQp0 L~`Sr<9`%BФ2'_P`swb'YI&̓";* 0IBh< ]l)c+n'jD ϸEۏ/sx&Jo3 PCH"Bvsh a Ay2*+؁RGst LUú:&Y!u/]dR `CֵP$b@Ĺpႎ '0?6F;@CixRED>5=M[ b5C@o_;rOaդ h$[à|I˔BNb`(%;`A"P(^UcTHԔ^Zc4CW""Q3@wT E%_4݀y;!l5IpB``s!xL2RE' qr$` )_6 * p/BuH.E"ckcOrn:'gfNFIyT{Z"EeKf:/nnw"?3"FmzYd? q=!Ke0X +fɀ'sq}IߗjwɒAU#v$5I˚ҩDD J@qP BMz1SXԅG *sfk`"kEOX&+p;WIdY봿l˴nPUY|+1@haA)4Fir2Ig2gJФ )0 djzqg+ȗ40e**$MBOj2mp!?FOo6l @GPwۊ<갦` CUP>1¨"ֹ 2â4!0 Bsvð<0XrL [&6UHO!j.u@L,Ž;7K!@|j"Uol)9'*+"^4lZȏs %I<^I8(VJ>šLI< 0e<@$02C@ˢ + tIxxЮ_!p7(( ttft8,"` P̾X:oEP@`A 0fZDtZ(xA1O"@4V.* yB)<BBja"֛CQiX0cW`茀M_&*6. k@ׂhq81Ā`761zGN<@ƀKyBEyB ct}H=)F^YX V3 ".@`6PJ@peYc<"H+u3 ~T d #A^' U ^cF/@桄#L gtc! mओ] $-?NpBW`ހ>@ xbn :A @ }`@+mUv$Fpt0 5*thY#z\RS$|2CnM3UyJ$Gt) FMzA ,BLxh/S "DkRFs ʰ^e^٦+,@XvBhl%p>omMn`T)[4bJrK0kȀ u MNE`nd˸ HEbB`j ޯԘ):)y@)`ăM8<¦`t#5͂*@lyV*@2~ZI[[Pp.H]:xS4Ma`,?_D|N0 &`,_139 `'BSZ@lX5w( M-nga4(p. A'~;~ @v 8GpFW~5P :xl8M+ IA=p :⹃dL@c!A!@wazp$k(!] &VRfp !67~ yg E'Ԓ/~pG kh ʓ b-P!yz-B8J/0{`<2R@:gZ.n@E-(ÁpGF <ufc/HL[<-D[%A@^jw[@Q78Z_`Z!]Dwڀ2 *ѥĻгX!tаz^gYN^I(]ߢ cs PH{ܳ>.Esa6h(|T4d(nFL/4<HB8`63d!9IͦP@ V׀{hdl C$;tFܱ>=Y{n]h@τ J`L\gc@ T;[dx+@4B# S`8\{_]IytP: ΁3wer䄬vl8Lz*'Th!WXTz\ˀl 7OT_΍ mЀ#7:%&5栎d:A@7Ltj Bkߖ p׉oG`:Dj0|&`}O/(G701_/{`] Ud<HfRNYըxP^9x""><>!Lxf.$^UOh;1Pm`@zZ mC9 $ƀqE;.#K@"T@602qle6+0=A|OE`At L) ?G!cnYRbgX`(ܡX FxVAAZV6 i@ *wע@P6d am{.4ORLD 8;p9l1 &;|/@MDwzu@k0:,e2q*5VLfЀ>2;+E`6xnb,%\/{\`t!t qЋhE b9B^wz8ܢfX j i4 [>9=mHj`.aJbg  3Y )|(S BG"5?SsssoX])#_ËT)6Z%uF pF{ ' 0`&\esb/vHlīp`1{&%(%j6][ f> 8b8r @9_t j5\xd{S uDi(tа\< ,H!qa@< ΀ 2 XX N]]+ ,! ^1JI_\d6LǹY9lM-&s'u,(@&Ȩt,st4 68@X:?AoR,2  L*ڿ0F.dv8HJ𔈣j.D>b_ol\AH"7Q]qS6X$Hu{2>BxVDt-\ȁ*^ED7MmHE(O.Vc&H$NsŦG+b`JND#5W<5?NG$`d:F9e% ]}(`frJV|9˹(," զę.}c"|S"=D]+%҇S܄X0?"39D{7AP8wz~e#BZS:c +ʦ)Ń mg a>*([284.-h*dJ@ ҽw&m)O%93.2NDɡ}ɂk9xSs_G@6$8BZLf3F-/#kn]q"]ˆOɭ8L f&|IKG z !JVa%Qv!8L=I"N4eԠ~d & N&t10?ހcNLވрUH}zSp@\$L5p(PTCZD@%0KA+  rltJ:YHW0 x ]s@ $% [8FOU<٤TW&m6y&Ws@vb暣Ox^X,Sb {`+ $h*00,D"@  9}R n&/< $Xn:]&; ^@DX mߘ _7*!@_,>@p&p kŀwX( 3j5J/ m@}/$Su:t 6@N@ )96bPH}F5pp€-cr=ˀ pRR/q 5"`_`@?PAdX FyA!.)` {@,V-0Uo@oA1/fkR3>PN?2),_ ޿+a/9tC}*CQwyS 2RCCTxDP+:G0!~?`8Sy-USGkڿ Hc c#>@wB< p"cB @?:,k$w@Ax Qd@ juJB@=RO[S)Ջ|LCV%L (eA6cHy.79|_Ow$>ֹͣBw4 9|-8?/ކ[h3'Qw@*+hRTA@)@F<WbgqҀ | wbՐ>&v@-":͠,P' h6G 9@j֢IiYc6J/ܟ9 @'#iͅ Qt1Edd,?Dz@`mR.btYοXw8{2BNM d18, PDֆ 3HL(R(ӨB(B! a XB!er:KA :1nTi*Td]8蠀Px+EY! M O(z2q 3te ܇oB K/A Q]Ax fIQ3袰#J=#:ZS. f༎S4=`|iBt(:R@Z )ЖI@0n4<2, j]y«J^[. Pld-916tV3)zoK@?/52Ɵ?/ߟ<3w?GOM?6ߣ}$Ǻ(O6 kN# p) 4cpaIEQCAv -ePՋejf}V0 re0c,xwT]co߉EOyTR,X:76+-h%@g/lLRAhQFL~׭mauW Wʁ5PJtA-Bz hWJz'Cz8\ K7`$gjꨘ",Q:!U9S Q uLZIZ3DA>V.0dB!Brz9g)t{'7o N+i )uOgԶ]^٦O! 6%&!ι$uy)kgĆ+L~eQp V 7Jc̡=bOo"vY]5nCƂ=tZ^M4oBU"g>dDE䌠n(+b;A@@ܯ-C0o-- K$H{rOgU&KrT,!RdQy.sP'Y/|GӟJR_ !Z4-%6rCXƣ (d1vu{ϥkgg,6vЗn?v ghi^֎̌O !km5dw%I,ˣU$N?+wgq5RBPk f%.t'e;0!hwK:5%ZIB_ Jm̉ F*Ii;- r`˴4\X0'O)=n#VCxg@e F/5JSõ)IPo(&Mm?7bHIGcdLmmv4/$l]o[؅><Q* zNH/GN[XZM뱥ީ' $f&D4MҀA1d6#9fH|BM\Ip0WtPw>/`EwM r~A6"0dWULYY`%%jA'89gմo:*(M!f1KM0C pri垠1ŠHbkiF(FW{Mu'U|] >Qt^rIfa o%K^{ȫ`rku.o eI`-4qlmsNղ8L*G+?C{Q/WiZytT&O¢l( 4@4是JӍXNۦa_ y5ܫ$GL_gr-x*[zqbo%!w6&ԺcV{5e-Ok/F%EMݘ..s6_GnN/437-ì7UZ|qz] .,I1>d%>n'ʝhYRA< \QK^ί] p*+ [Ob%(\4h=-XFnL ĪYּ ` _FQጯO*U¿E|\uTRpf7T?f 9c=. -avt(/ f(=wZcAӓ}:0k@oaMQ$ Kp|WL]fZ1g;쨍tv&J:j3M0l7C'&DUؕ9q8Q߷n!Č6c.0`S#LhE.gw3Xȯ]&a5AF d5$M/*S<=JaDoyKTp+QQQ̣E}1 HMk\:x CRVLX+uj!FyeK W{>mD⿓wHR: >iV-l?ݜX7;vQ]Yqo{"fr[}W쌕IMxJ\l  ߘTfVܩpebsBDxmpFÑL[)&8cwڊ&WEPe=JOYZ`͸NoM/ca.5wHdY<ں$6ӧeF~_Z)מh/>=m}SZ kݱ 6?t97<#CgHd5*`,2-A]?p}0k-M;kwDpYWm@8}G a(|]6 Asq`ɋ:mgD(lC`JXz!"j {m6L:X!U v^-^⚵@L+ _ q6M:{!磜%,⚵݈0pAm棘QrGVۜyg_v)`8I2q9s*=RP 1bUGM`qK N8*fOP9C& ,U%8!סT<j ^ +GCbkxǨ> I@K:n6n(e^ip+݈H,@L@W+'Peq%Id#2ݵMl|d I@$TlT2zb9HV+N7DDols;ծ\\ by npLJ#BJH\bbG^V Oldü7Եƪ`I$T2c*EP#,`uN͒kH8@8* ϗ=x/D-?xhuq JT;F  -`[?7?+ P6v(ZFJ$'pҴ6(A`Rq;MD)xSg:`a6SX%0T)ᭈ*9u_mqkدzYY0~Iy_%{F0¦:5p$u4j Pe:\g abQd@"0J@?.&>>p 6Ĥ?OͿPel7`̑ʶILW$qkCa/ў-ֹGCONOFK^*ڨpo 1yK(,!AzqUW7!{= }K؃:.͘. t"4F 5Y-W-D`2 6az#Pe#!I0O*Nc%i@t>Im1oFuXQƄ["aՀLvV\0j=W;b[]\]4mo.9CDi/|rؚ_5CvSx0X6)eH3Zݞw4FyLgJJ^P`5]X3! uk{;',:e :ވ@U1IؙުW9O]ِ9ZoSg.sY*` (KUty(lT|F6K;5Vdaǚe?-#n<^ :W:0Y\PJyqҢ𳀭%!ZNNnyduR$[z32-STSPEۀm ;])s1c>!' 'P<f;㩥Ů4epN+:b"_ޤW喘+0 ~D!] JxhYXj08O)}XwKeM8Wc 8,.K0S@ |8#cE 怖Pa [͇:7*x n&1h Q)pW2f w Ѐ @35///K/ppP/U]___.m+-o)8Y3*{H@ +-9?B=@VߕST! e*ux"m>m?ʗ? bt +\qԹޗ1!R*)`29<]zdj@-t2gl@Bldߝz >zU):fWqoTmI`45$ EIi> o&T^;$3cEB$#yljUxDMH E\'Nv8ANm#i`})~-CW `r6fmayV  C+؇i@V5bָ0yJveZ|R*Jt Xܒd\cDnvjs{;6K@=^ Z%:R |^)z_#(`MF̞c,Yx7e#xcZܒSWINPB4c+ǷO`o8`73)%Ç2xoJ+1GcAq6xy^ҺI쥀A8."6!AʒG 5Jsa|%HV PŎ'8: <3X/!=D:l])g[JKt^Qߩ,UZ(V% KpFJy XF;m]jlc``8 I^lτb,F=%cON)8и:D M㧌Q\$S.XJx޿aNv¶ydxƃeL'~`QJ:x? s٣؉ xf(Hi372հ::dQfHU ҩƯ!|! Ǹ4*J{])==';1g*0iza轪` 9f,a-H`8P%t5i ؿҢNoc){:JL3 ޸+ UMOyZI_ S9V{2k7y'tZ_nXu֍Zr[$m3ָ9kd4ThЪGy5~"q]r4Ȅ$PU472 .?U*}YII>+h V+JXQa[g͜>?@ʿ^ ohƺwt1'6b}c X2S3#]_JpO8f6]&#D Dxwrܻ? %h2`ĝ3^msS;=KH:~ct8}nbg@žF2t;p=X mQ)K7-H%r؊L!O"eٞL^ SÆf-)8%u|͔f;U44.eA{rլnt"&R"  =ᴞƹy>Lor`})^.PTdL~]#?W{X̄FQy((KTHg*4jrRC7Q<@nu &µG|c ]kgSp_n/=p,KEĂ8r~ӅkzSx,rJY&OM,+V.MtL9ƕqGBS̀*_' gyĄ;<^D9ܞTWh?HieW)sV 84S)9/yp):{3K:߮Ę#[8Sȹpp!;鹂j, ǔ$Kܡf6Bi DE.JJ!ؖ8yGxSFP*Jxr\GaNrg'];R<I}^&xؒ9R'?l88qa&pMW bۃ8-,Փ|[iEFLk1/9??^r9 >Be/c]vc\"8 TETWCsF-<"+$Hp 3߅ A?DJ>N 4,R_% hO @]rvqN'2p'eh!i sT ]Iz:N3f1`*9?.IXM0!@ Ck~4&V|xOJx DeDmE'T*5BBV[Jx1UG]3h# dsbvb Enp%SAS&B!r@# GX0c  1P@?]bXBGb! R:0&mҏ@?4꠳߮sl"b@0|F 8l1-ⴎPLWLrNuePƾXsQ G@4@F2CưJRDRwFۂ@*> g¤1$ VMGFI [@π3yGH'`ws}r;|B(d'DG|Y[7ll@3 5|h/XA3|PkeX1dkD$P^ aK"7ejAkŶ fH'@2iɰn Dt((l0k6 ]"Cd ZW36QWH(4X Za JAM OuA,af&܌Naޟ)!:fuDžtUԳ Ҽrށl&Ks&_p p׀hk+|FC-s%C]56RSV%iܠƼ>@Q"@.Imsd TdNIYjyI5ҹD 4Pit=7c(3hi @l9ŏDdtx$ Х M6%0S/F# xъq*dW0u#> 3OiCXsgt^G.;p>b3ӿC0 ̬i{7Br;xOoAaf@kQvMC~`(nU؟ V+%H L~0_EBk@84ǣG:gv/l6x%0iE0@œ$Q 8,GR~qq D KVA9*fO |u-XbT7`bYs+V9?H7D2w$o: {6.xBIzbGR%NJ32qp @tL kź<`؏VL9-;9&e/Yp9-|ua #p'29 zߊJQ Ehao\/{<J TѬXaE {w^JUj?sIjGG{dnqT؄V4h fاmr!: U&–~)4H6c̀@' L27sRkq@Ncݺ oF 3'G $=\bAVGR9B t,Q7bY%w,R먍F!,g9(da_Xeg@!^GmL( ]n]dAsxޑBރo"5޹Bo &!?'๩R;x%A8`U^Sl>l<NZ!Q֜ _ı@6 G5- f^(F{(bmք.9@XWmpttz_Lp6v  ?4J+ՃD* mAߨ6`6,b%\pD>fu`LbQ3= ת"^9dp8=E}pa[!rP{Ș5ۢz=-Kt&;Ȣ>M)IN[14[5\@ðqF0sB.H>c\ _7,0$#`Kbl}}U1Q/CRHokxD@91Ӿ3K#*P8  Sz5g5J^#y3X >EAdWF/;kߧG훊EvJyT@ jeD/bPQc-_5`8k1$qV\#X LH3phn!0>]`ltv " SdqKnoh^\S-9Fm(!k'PAi)1 4KA̟V^aw: uS@%9 mm (|RG:,ʐ;x˓%bEUB'<"〥}2: \&$ BL5BsX -+ʼnf(Ǯd2mOch *X؀ O0#ճEf:oGAd )HR< <Ж}灀H pG|(J_n{%S}xn >xBeY$8lgzeZOST*Do XJmg؀ 9BIL+ nJh4 NvW}a֛\>Wi`i3O4MIʄ8!.sPv+S ^M[7:޺*0 `uakZg"wX d)2pA#"o jW@닺e}JKB[jN~Oެm]KdtIYZ.+ޯ_`q%Z3'|@xɇ'm,t {=Ax{qD;nHx `\I{p,Wӈ&~x0mV``?\thêIK[L Gl^M>F@d+Q\t|X1fYhBm/N3\+zQ.p8߂9shI]pCAlC+jʁx 0Yj@6ֹ@vH>7&~sq hC[R@}hCkӁɚAپ:?n?MN r"J) rjaЅ"Ì@@ 4W`;%C@f䮺uP|nA-X˫P0HUDh> Ká'ǝ\ zho>)1V/UfU nLШ y kAؕ"R@d\Ea3ۼ%O1;$8HpvRW/r]"ۈXQk+`'~O`_~G=P9KEN5WY˪}5y?_ rJ- !94adEf=, 8 ` ` &yIu ŇD)r۰!YIt{( .*F{,L AT /]f {a=߀= J 6XmdȜQJ8>lw׏9>֑rtiކa2G=t808&J.k > f@C`+QFߦÀ2E8,_()b҇D&ydܛTIT>!d/b]h.tgB|pP:s7E:(x@4B X^<2c[Ȇs!kM{Vls$r ;y* 5+2)#QW8VX!V!]`Qr$>dw^>!Z`bqKjC"qZAkMH`<ĔJ[qv /Yat$zw1.5k Y 8BgeaŜ>SUDQH$0%7P0$@ ȣ:Ø\@ߔ¾bB{~UK[fW`* ERdwX?2GElx$>ZJAF&0A]2bxA 9@~Q()3$zTpmvb )aB[$0f |% b",0/l S( p-ݤՂ=GfgBt_s @i@i-YNjɠKMל3 xFqrUP| 7]2z㰙>NI1λԁJ<{P@VTL?<_(cc ѱH7Z`Zl-pIe<9.%T iR/0\m 6PRxnx--R.m[hsbƐY bv-g0Di+D,K$w]v;xmL" YFm9azynrT Nj!*w{x]E 7+S-P@s>7}$$#\3}jb`56 RB-TX)F7C+@["ϩBBhYIb>r7kvϔ(&T h>dI&hP+E'D~ >::q y-jmif^zuBDa_"vm` x1ȽUK[Gد=?R|o]֨JbZشԯe]v(I&}n,hS`jGo& ~8x(yVQ +18 +B@GޚP95Q=> Mlk/ll3č`Bױ]~žIB$7th[x,/Ir5QnK1$abG5{Naڀ sd@Ȕ%0c6ߡ".M_7> Hf*ISs6`C0fs"6kaWJFC Abn ZN.4m=H^fQ7Խƺzn]9%}g">֪U5/OcvE0<}S5MNl79}VrI^"D<#Er9Eڜ2~:0!(ɏu&c#QIP{\+[BZRj`հBssGRAvޅD,gܸ2{Co8UpbjlNgLu'w@ N>.b7xVն, a/ ^m: 7WrRp }mU2?Cתv,)V4ݠދz-/3XYGk 0ZaRi49Nf;mܫ7қ#>sFp cC@;A2,E'<jfۀT>>*X_b-eg)n7c~p\P+ m&ZG871FeQpd9<̒*6 Yww8ZG{@*J$oa`&` *5̀ |\i*ԙnblc %"1ʬ/O:MC¬7+? T 'Zh5ؾr"O5VD1.J`bUB޸r1%0S*gMU }S ;íyi)]p+O,ВHo"ǫ}xMEj6@<|)\XKZI"g]4y- JAtX-:gw. >eK[!tѧW >$BwBJda.6gg&@Ҁ@O/cYi[I0Z\ǭ*96/=~Nb pR825]4ۼTWԽ0 : tqڀwtvm0o X9+Z;y {preH!sk>>ZڌCipqZKM|}`M. s-ɄU0mu/G6(O1E6ڥ`%]@*zN\zego$\[7jqZw- @T"X+E T-23>Z ffلۢ}RY+ȎRx8˨ #üI[졭.$KnrpPl?<ӘA.clhw" .ˊ!p!" @F jn62:hHt I,j8iӋXn=a~ KIs{znhB7G=$- 'f]2,dՕ}Xo:sxADq@Xf> aw@':w }圂r` ,aH7eƓ &]kK{dc ЂR2A`DŽ2,\pQDr`7@TH; % J /U*zEBt] Ĥ HwrhaWo)wlkSu:z ;-&fxx>ycKB);H ܃0RIt?%;3~! MXu B?ЛHAޒ"s].ITϨ['#:G+Iɤ:L&Fa`6 ÛbY`xt?fM©MH Tm\* P=!`eA:Hȩ+o4 HvEǺp[ٻhn);},GH}_-柢| U!NtNZc=ڳ}xlH O~ I; _8ASl%5GQë4x!@$We1`~n3o`'011?2t OnUݻO[&cO"|y'æ#P9C^lXFFC9oVeFa"TJWW^lBcN9tM ,&w53ab߉@mG א$wRTXCv-  G" `x] '`a@hك}UGl"SSZ~-V(Y87bLfNЋ.LMg)p+.v *.x&ۖYuI^.BK\hPF  oɏlA1TA:#Ûm43*]aY`-O`Q OxJL8=mU: W + D(MIw1 1਀6٭D pNʄb\t , }z1$s,gwy'D> ZPKZăf6N7@/5/|ڡs !2hPA ->i4&4@YX\+{؀2 qJf9ۉ~<{V^xH Swpoo}# +$W:"I,ZwÜfsMLEz08Q@:4~1XQz[+ހ ys(ػF7 *n7B[!5*g?Ć@Od 7WT3)Zr}LF[r0/+VhPsu`S9&Q.BZz R4:ߪKX\y 2R'h dsp&U{* Lhn  $0 ҃ܭx Îp bJ~V\TxG<qÜ4 OF8Ի*+|.)3__@@xӐBʹ ]/;&΁޶cpr 3Kn(+ ѾZC<'Ba6a5Yp,K,+LVAfSphMϰHgF7M6=.i ~U};[0!1soLPν3:bIhwy~w1f`l74;s`a]ze$>`;p} :Xrx -`?ǨBZxk$Gߺ' ˉ%/HU lfY%|U/n  mZ-bя9b<4Fo熀!i(PYNk !*APft,⢊O߂r} AH Dbe 12ť/7l1jT,*2BCCnAT2db~`@`UW@ L:nKg)iW*\=8yDE1#-4=Oa]: T;>zM&信!ІIldcs"[`4)r䴛6ϖqwG  vގH>Šjpz/(UPQy!7x!:MU|Z߽ĚaOst-:r2Y%[i?vy% <δJ)6ĵ% O0!$~KEsI`?"C]2kz|=:Y/ؓPp;s9 jidXN!&& ꒰$k @p)j.c.SpƤ,%X:c5 1Q2~;k+ J Λn_\AʼIѣLSYݼ/Boi$Ή{:174J2#&b*&ҷh1\h7"qI){,Ҕ MQ[vT~G~ _2># qw!g^]iLˁd9K qƥA ѡ{䀶*+亙tL@!= hi^ũ&~`f{j%T(#)%xQpV"K شЁU_@: 9q6]h瀀Y|,a WTd^K-q[v!o*/'εZvPF)@9IoL nQI{p`fyʐP_%zp < #38dS8lPpotJS* LN0p>B0SC;˱.˽ N/Gv*0+YjWjDeɨRQ8iQv龹:@R F]9ƀ_;D6^>3-#9@y` G-P xQz/LU`ѸxFNQZ&a[Vɘݤ{BVqifHbrn>xFn .c|bl]z/zҲsJKA&fX)aAr(XξI }T0EX|uhQIB)n3gcfőP2`Fd;t”Y,/f.N3 |U`5si pʱNs%6-IFD=l71ĀzNGJĞ5 6A6Nol٦M.b*lmG6H_?'.V-X(l6!Yj`|ǜt2ac@fä4gDsf;a ~|C# vå+U.T@|V1ѝ͘K7290W]FZ?c6 :#1ncOdr`" ]TR hYXl:@FtGlkV֦fW` Y+֯NIx= ݎ’}bY@Vҵ ̴x0A[mqޘA,lS7m*~Y([å8Gv.Jںa\ PMnk\b]3ڰ?hthGco$]zK/ePn|G͞W::x*{.Y_0Ɠj?6 }0DхT'wBv\`- D3!MPa {vqh)[/&\@?*-2=MBBGșu_СVG~d߃ |z ZrYp)ijpbQ?ba6xAX҃Zؚ'Տq纲9̎; պ!'[k=>lJ@%&g. fTS!7_pQl$uNFFZm*0-dATԌ1w3 >g},pIC%tg5:d_']8c@5քK* -X UfjsZ@ -6f F!'(D'eiDd4Hkv3pL\x1^5/ *(71 $U|9$<.`<20cҭ*ҨyaL0ӤV $384Y6Yy]@uM@鳢 T$BUR/2mbcj6J2`Lt(rd_7@†K_P!lkjo(uI@<'D\'tM1\fى$H\V 13 ]#\ v4TyPd vmͮfmһB~3au/yfkz0n5|W`BYi@ omn2yR(D4F"bGVړ NyA0Ux7P5Po r69P+. ʃF?*@.a8\c rt׊`%(: PhM fG4"ve] $-P4f#tw=4Sވ !EcYP&*,](OZ&.v6+pFOx D (oYc-?3";PQ j\i@j fиXT [?{U["I? Xbp`5߂8 ٙ!@ 4dp'i MtJ'զ42S.|`-{aWVƦhcgbD}>= rrb0@ܦMY۫{4yX_b0nfX.aΑ>c 5@:}gu\ M0g1C@E{%d g4%À=o ;AݨÍrWv;[jʂAKހ -$"\qASCavٸp?Q#7q hb²5fOh7`"/J~!"Tx4Tx`܌&[}X[9 ec̷r?8 (7!'T7P .Ոv/f * b LM _cRI$<#NOT,[_ P& /-,@e`= Y^8,#rJ 6(bʺb"4>r\Q\ 3 ,'.F\ L."t \'N A΋_^ȉ"Ǧ$€ d4y} Be&"SA Iԩ9yLZsհ'KPf \ $4 98Ft]z@g!;KdB0kC<۱4T1_Qpum<GWpa >-,yG3kPe =a&Rr;Pk;,0Rg~S+<rM醠VXuƨ+lfj* =ut1z?Cp6mf‰< yv6gps/'M ΙT(HBDzptu@t;X fsE6l@ojH>C<.,5,n] (A-p)R Kx}Zyڼ͐F‚!}"=T` +%TCpX (z> $nX)1컃"z^I͵Xðnј/0ap.O20eyl" z,UBIA" $ZpަBSv>b1E0\*-J_n FR@Щu݃znKwx-d(b-A~'--|[ J'h0hCm oTы=@s"ݰqs'g63EO$y vC]Dl ]AD@U$QM]iݼf -x M5PxM#f#׈9yQUWAWzlgOaF g0_lb'?phD24Vb*|O;Q#Α;fLG,%E 3|j gbnƤ;0& c@ *`EA$DpN8˶8m@{Ez=QP dX/7o 8q?;c7upo@6?p@AuXd*6oHƽ\T@CU͘lh5E1ҌfmяN;06SӷXOv~P4W7 FlNU'1-I׊4jN{wKL ]_ ?"~Q dX/7o 8q?:3 3o 8 !<~` dX/7o 8q?:_ 7upo@6w dX/7o 8q?:_ 7upo@6wc dX/7o 8q?hC`m?_<~% dX/7o 8q?:_ 7upo@6w dX/7o 8q?r%??_R;8S+ dX/7o 8q?:_ 7upo@6wBmqcVIw3{nA^}}Vf)J-0'UM+c*c8\x!@[o#^TQ{Hn%~8͑rT2r8y2]ӵ$QK|[fz 9(r^? ;j%$ *Y S -? e^߬Ll`|+NX'3\ O9 G1٦|op~a|Wu Fg},J-1Bv;~)>CZ0Q{/Ӛmv{u4vBr@&qj1\fMK,mba,b@2 /M"b'siK3I)ֶ]L.0o1 AF8X ~*0P2kGtca}ϚK"U&sCsu DxPII2(H.^^,P-\w;aŅQF=LoP?7k G̯{:+"|F+x>R*3xqhœ<WNۀtӌb 3xK䨄&1 |FJ >umU^ P]%( Zc ^x:s-z<pwQ@ dX/7o 8q?:_ 7upoxϯA_Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx5Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@Ձx dX/;d5[)ٍfkv]Zm(ikle Nc,`kl6h5E1Ҍfc!Mfk6s[bG-O,Ꮟe|l%єL4Hj;wQcn7K0ɱ:L-ppث~g趝\0Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@@q dX/7o 8q?j~gU/u #Y`m? 3EDCǞm!A%q dX/;d5[)ٍfkv]Zm(i;eZQlvd5[)ٍfkv]Zm(i;Q` dX/;d5[)ٍfkv]Zm(i$g&Mfk6s[iF3Mڍlf59q dX/;d5[)ٍfkv]Zm(i;eZQlvd5[)ٍfkv]Zm(i;Q`AWK`a`" 0a7l%Xնv@R=8<IQPS {ij)o4<X9!%kCnW†Z&47 ʇxMy"yAd,/W2]f9aũ1 w^KoksV$){d]u%#3 +ʀmΫ!P %(@®t@l"PC HQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@Uq d3̭H8rQ٨W}6 h9Hvd5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cY, zrqKEh?w; ll$X&Xjm'"1d dX/7o 8q?:_ 7upo@6, dX/7o 8q?:_ 7upo@6,  dX/7o 8q?:_ 7upo@6, ` dX/7o 8q?:_ 7upo@6, dX/7o 8q?:_ 7upo@6, dX/7o 8q?:_ 7upo@6,A (`h ps͍}!򥵳ZP\(|g0yH66وX,-  mD7bFN 8@` 35iz/\?6;:S&cMjQEA=Q.۠,c"l,Ct&2`AkmԈ񙽫Pm2s@Ƭ AI$zB.o{6XWsh3k5)P[JnFXW Oc fI$!nTZuJن/ A dX/7o 8O Zn=ZLy<`m?_c@ZV{0.~kE&H(EkO!8DwO+f3X%zj_ReRpT2SdA65&;owT5+Se@ف d8kkՔ"6`s`0'J]9bsq~}?_uW23 𐰓н +̠rg. ˞}Ł뒹3"a,s)"V#e_=r 31 dX/7o 8by̺O?L&oc`m?gB!@ u dX/7o 8Fgpn?%M$IVԗ_=8q?:_ 8ThٴOSJ{aP @( dX/7o 88D%_o 8q?@ dX/7o 8_ب`m?_΅_@ȁ =1dX/]5 Qǃ=Apxum˥x]~_=8q?:_ 77X/cg.C bYhud&T9h 8# yyWF\D@ 1 dX/6?_^>Ie8_o 8q?:_ 7=?HAULA qd<(Q+Uoq?:)i0 4xJ܉J4*jHA.?7upo@6`mM߄zncÈS|pܖ%ogP7ժQ`ݠvx]*, 7pt4or$W'h}ȋ>*k2 ȅ,YJ&[KQs-?{8?tYA `_Y?++.Fκ9iK`F[A +h f$ |pisOw<(WʻNPB D-m ӔUYYF%F՜-m|zOp6D:ڙL֒mDHn%-TT/߹c!js]GD }KS> 98%Ӎ~crbPb~ }\=rFQ&<gǜMs4Ē1L|t;vMj' 0TqY~9Jc,qy(1_sOl/[ &Ʈhޠ y]5eg X H dX/7o 8q?:_ 7upo@6, dX/7o 8q?:_ 7upo@6, dX/7o 8Y`t7upo@6`m Ѧ#Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@S dX/7o 8q񢏄f.A`m?_٦S+ aN/oKFz@1 dX/7o 8FZB+įq@6`mi@s^: =E\ӥSWc0@ dX/7o 8jƻi^[s_=8q?:_ 7wƔ8M dX/7o 8!_=8q?:_ 7uK] dX/7o 8q?:_ 7upo@6, dX/7o 8q?:_ 7upo@6,@Ł1`Rޜ&Bd|ȦڶGㇷ8<f"59 vkaFj}2~qnh5E1Ҍfc!Mfk6s[b9zWt $KCxB$?QJh[M8N,Y}{6Hr<&B@2֋I2ߞ3Yh dX/7o 8q?:_~<?_ Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx0Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxsQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ dX/X7o 8t Z+p9m|F8upo@6`R+ɹT{F'MRNV _Y8Dky8,+-IQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx;Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx}Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA`hg~̫שtD?b{LɘMm-dy]F|Uˌݮ#I| 9Il$skdk![1'ԋbdSim[gd fCi!'6َtUsim^550bhܿ~w)8HiGn j=D(A_ 5鵽0]2ʷֶġuwrOjv~x=lik:Oqp~AoҾx" *}QKDvx]죈ؕ__tkp ̶^xl aGKng;m-ՠ%lZe7?(!;F؟O_.\̟YH!a+Y+=#9(i:-Ao"g8/gd'&o7 Hx_]}96}nc[_y~w0gާSo7oڿ~}y)yz(z(z(֠aҔҔ()I)JQJR7JRҔ&n)t (֭&>dBL7ACG䷅ɓL+9abEecR»BdУ"}ԍ<БI?0\FSh/$I쐻h[,'qԩC/%DVR$ sfx<2)1bW{&ǟRǫGBMϟހ?p(jvǨLS^hN8E,:aX`D fRC+YF*0#I^ݽpPI  EjpH{?6DLFPѢASOKP6 <Kb9x"xOBDl8W̓8J3ʃ4%.AhA \RDKP!B2){s9s;{ZֵkZֵs˧Ga4&'.\r˗.\rXl!J1 {ҼzUkZֵ0?߲(`,̝3Ԡv Vŷ1|iJjՑ@G JÝŏטKg/wV )i(ݛ UWrzq80fTz0ty/@{ @C?:[YPw-v g9F,煉5ٹןv7q$H]a8;zJ׸"P E]iI7hޤmٸ+|"cfQ"Q?yn' Yu &Xhnlϙlg7"C=l )aKTXﱉ˛7coηvX`hکm#93ݻ{M @V dr(/f,'_q `08a@k\ ?Gg>=0Ἵ͛?!as6s0>lz/MݰD,y&yBgQ%_r+bſD`@/UO'{v@^_aAů`;7QKG9heU7=1cl]>d1vTbRu/[xM|v@*CKq=}BmfȥEb F ap˜uClևlG5>0m]-OW59Cf"sŀI.aQ(yF6]V7mxxScv;gqݥ@ECvݨs1)O@K_HGmp@(;IX\zwe,j,1ݝ>ϛqrv FPp{66 YPf#ђ0?o;Z Q!F/MFLJR>zRҔ(|)I3)JPJRgJRҔ$Δ)C)JI)JRJR:R ުVT cipAOډTV![% C$,$MCDo2  80Jo@) ;% 8_^疢B-} $i|]ޒHN~ۅ:MY /A(;߳Fl {ZP=Oul+ɰ==ֺ\{MHc*o 87TkEII=99,N﨏Cݼ%-=E?f:鄠7{L1h磞*u-ڲc pv* fm1˾ :)e,oQU/*Iڕh"QGu'zE+ҭqa ~l!D|nQH^/Uy3=%8Ju\ w48E]ۨ00kï@sޖj K ʈ]ht\&r8wMĤ!ڌU"$-ea"q0Wа~ojWظ>hr:E^:9B>vōs`O`? l!yCDȗ9Դ+Rj:mK$)O 6x.6x/sφbWO|MBMs߇' !G+}=\bף8ɋ pgHAoĸurME.3e@S=lQIL(>Ot.2%]#Rn!; ٩CAڷ́nMr խy"E/'X@gŸ qt?%hɡ~30Q< B waxΖ8%ש%_ TψQ ׅU(k**\CgٓJ=/`AƎI=S3Fs4+)(EʻOR7]8*Jtw9x@(X{2l :!Iꊄٿ*AuϪ= 箞=7 G)_s61ʿyS94s Q51)a_2$T @D^7Ȑ刽2޿qj󝏾e;4Re`V}0mPI@}bٕ& x`"tӈ xkx;3?@B=-塈x x m'/Zm["hBĥJ ^V_ȨE%D%^_sm eM YO ݊'iDKy:-q  qV  Vg>x|3r]}06-xK F05np hCj+'`=`PM̀km۽)gP>/^8b;h , 0H_Qe o,:a;q.'R7Z&aNWj^TAeLWrgu˘+ D8eid!hqUгrv ,%C}LHH<z^ȀR[#&!4T[ v(~X?T<M3DX}8&B 2W%JܵCU2~V`Q"~{kv+Ѩ W;z'u(=rӽ,|bش_ñ5kǮ;Hi)'p%w۪9SES #Jα;ܴ O\/ݝ!#MuvF=_P첗 6;)n?Z܌SvO?~!K!ɣsq >t{ Os[ ĐsNq^ ۱ g~joEvwLҡK޿8}kdVu,C6;丈.U]/p@ĭ%:oF3hgׇ&LmEF@`?2hB?[nF'HB=po"vV>M`h\%ϗ ;rw DJVU1\z7S2Cg#m:5y8,kΚB+ l|`[o~(zVrP\V8SmKGƾw&buVOb,8lmlņgthשwܞkI2wz_.9v/>u+g?ϥ78bYHM%p8g rF>#PS?j*jK<Mc}Wѳb/b)p|o3>)n +_[uybp( 1@؝hl]2xŸˀEp-')RݤH2yS{6Q b\Bh ?QX{I<7S #hm?X? EKZ(2\r-s:&[<6vӦLC壗YXa,ؠnmJ>rz63W ʉN=o3ڞ<ٽ넅K9d0H,@^sVϥRMN(Bn;pP1uvʣC'G dGxZ;@YITd1){^@Ҙg%An`E!i78-;Z1k-ZdQb9 a@Fy5Ms=ZlhgH-a/,J ЙpwӀnB떑Pqcg+e63UsCUs\i9A^1&L7):Ziq|2#CސSAU(k,B$o?(&)z؞5ZqVlל)͵GNkb@#4i;-9,1+ C,=ŒH5Xߥǚ'piS(N1G\8?X EIj{-܅pD\9Gn߿^K'caZ{NފQSdža .hRXk'<'>8qi.GG8!x IL?73b#Ȋ.e mzφ̟2 >fj%KdҸ(kFP1@ < @@xb_tN&Cjzµ,@6q.a@  U @dS {G 0~3(OR t:? :t<={$ϑKPɝ$*; dL{Zd/$H/`B2@5؈DIEF O$Lˀ ^wj;Ƞ7[xM]<2Rg{DUQ ظހ M{yq߿Csi0u`S&~c4ˉ 0 Ht,}D"P!;4W *c;!GV9Pڇа}GM);(`@ɶ:L}ub59}^3?x&nvj( =lZSo3t˹)~:r?/[nL[?^3r#Bé[UOb 2,ĐqU{-~M_HU? uOb%٧d`=[)+a  F#+_&ZʲcÄQ*bpBOFKa /t4sd&T^LDy*\1@Y,T} a裠ݠU$iҔ)n4s1%nm`-a;|  Mv`L7ROw0hƞEu9 ¥r%y)'0F_ t75֜33>ՐJ? 56AŞrfWp,?T x-NX.ʍ +⨶HB8 ~TqkXR2@/38<>LHQ׬@s@hC/PтCxe@/S,T8S TejUjT3jff9ZLJ*JC& |q(lSҋG$w cӤYqg-K@$.j pЩ 'W29 h*7mrZ9X'9WKL^teIadymٯCdԨEd1rw/;Իgi !b0?е~ }ìq_WyG\iP0 Lx\hUG1"6 ψ;<)`$v{HoœK_,F.IbnW^\YXiqRLZ/o׋넥`8e֚"M*IwpLH8r^2@C>8_ui2?֋c$:a`t"#P ƭu(ߘ =B+c;;O金W!FdL JjL>\MIqyGրQk3ޖdSϜDqǐ̄E*&yhUxM{>#Hwjgdq] E "Pܥlys*%$e:uC&k$P,=+$`&ՎԙQ} >r x#!lLٳ3[Voz[W|~FA伔+֮v9^\'wFA2QJ/MAa?04d o P*PɟɰOZ5nޝ$"T QxtV>0FT9xmf3 _'\0kE &½祠 Ǐ 3_s @ǭ9A<Uy.C3؟βÝ v]Vr?ϹG6oɻ[ao8Jh>{K<̱>׶ak#&`.&PLa搸 bb>~:'~$I48Zd~J;?ްu5;\ci@3l,vAe_"ZPup&ȵ}Cd(+qǐ \g~ \h@m5 6[)ruwxA`&Lt؆@_ @w6~ X,н`E7pOpHYp H5:"GdsRZ@T*8r5!!(@P4% Z*^"%EX@. V牀(~A V <D-f,@%+4ʞ5 I@h OXb 5FL'^ E d 0fZ+}}(~ޕr_so^ :=\7s|e}{. )Py6v6%phlJ_6;o2?wߍm3}$tU[UO`jpĒ`s ; `Yk5uDCdS ]6D>6(+˝ԋsJ<^h7=\~4Iky𩦘T888ӛɬd/ zٳ&d̙" zp|s^ pm2Geɜg Wy/uqkfh}iݳP@ 2(f 9o{n].f1T (g ry)bJ6uLkRLq׫GT5v)P 88l-6Jd=>ρ VR.~wpГ @8ĵl8FsK/ڔ⪪qW?}| ĵ;d039x܅gY Ӵ#9V! "QPz.ލr9m-sVr|F[>*@ @iCb?_?udwS:&jx{,:@HDn21sOs vXEX,8=d[O/t1F,@С \*W!l@dofP%w` j,9-vt|*}3Y<$4Xj`LmH 8J..V2J`8XB+'~$WSxF_ ɮ5Ex}GVN(BOlq8`s/o^ b0/SgEJ,*\W^OeG: Y*XF}1l9 +qDv7ue77Z1zcgU-G1'VXŻLbY;tlhm]ڹ\Iy :)$bS3-ԵLt_VC_ƫE>n2ШqdHO?ض ?̕k.Y}nr")}{%ˣ>bUo 1@yd"E@3@-y~ReVv,ԿLO'kX2%CI_%ZB >"n)&u׹Ui{qAF;㔋VыFNEOXX&s ^{̘U󂿂X_fm sY/XQȥ䡟 bC q7m~RecTU"}2O/xr>/pyW}n*v@ЌdJ\'jY)o^ glO,~5suPKJ.Rz~G{%t|A"J`TuI:)K LU&XB&к?sÂh*=[جgRP?7T {Os :pǵ3&_)e_^&dLJN4@Hbn2䱚#U'4jV97TuS^Ic㟪cy0ue 1<2^tWɲ-Nk(jٷA7þg|[dFdQ/~VN"f#Y;wDz%AƁC *6 Sr-|xR?Kb~J4}ez0 nww!LM0(c5YeseĖorFT0]ՈtNjnJ_+H6oHɡ^t{08g=FzaYX\u5Xf[:u&Qe 9ƴM(̦:i};~BjtԕY\Ertt]VAPsPְeq70`!yb+byuP c`9܇|r+ ='4{9T;{c;^)gҘ؜PPQ_X$;Su_{R`y+n\+p *g8=!4Tr}%P?>}2n;aku 3 Tc]kYhv,\2Lw.#jka<{JSme=BFkIS}bue5z^0W|`*SGk%v9N``?-"ߙ\ވ]a&޺y!2 Rf/6-ؑB5cVܔ@- l2خ px`+%EQ4vIO+JC5s;< q5JP 85D)nTmgWw⊍8C``5j U,m2b C8A ` ^)ع0 (?f(\-]cL-ۄV0 n^:iTK 0Xs| J"QN`r@5o'rX U@`8RwcP 0A`#n=}jy82]r빩uC~6>p3sh,X w M {͐:4Pjk̆vtvyt[9bVgsR 5@N? @-D <˥35LA±#4V6=4dЯZ'@}$S8˄Dy w. 2?M^g[eO%S}O^1U5hqrZ 1&SXf P*'u ?xII}{ثsa S/\9D7jU\cɇS7g..CN5Ĕ5FI9>xO)Cchk)vV @7 }{@'NX/?Ϧ%ypzb O EELjG*/.3GQge]C\njJewKmZЊ{f j#-dS[<*f-}= gbLUZ SGI]&B~\ 1퉫"bnMF?`&W kSdF4rz7,ʞ%7覑,HnjFtw=ۏOx3=#)\kJ cLO7G`^<'^W302A'(Ƙ) aB+u Wܓ3I0W5/.A YWm[*QG|7X2X,*$3$#|^'S8 F LjfCr=R)j#uB& nL܈PY=Kx$vH%#up<(y1+0;{%H|IĝT8^{hL#&6> UmW$EK/-s@kOn|l(p/})ArFea ӿ,>DOVN`kjGxh.'@dTt?恫yy͉@^e!?A䷰BL5}4_Ԧ>tJ[3t0> 3"<{ncC? P2Gz-}(,ٰzz`@²gyf7vUR*VZ=t@\X ȣ cC퉯@3 \`544< \^xݣۣyOs*{?x# <8N3&7")FfPᶾˏ+O?OTj(rq<ֆ&eCd6Wse>!T$;EE1B<g/XmqBGJP:걬`XYFCrЛ#mp4>|ch=s4եkW.?V#kH>r@o vE @eK-i&NrMhR+@V)5FS0}sN0bhKoR/QsOٻ.OëÍX~Za('McX[-E@!(/*·ոqV !睎%4k3M W&zJ)S@~^LAb&C,5ϊ8V4a!Z\_@*>?2jw 5(9?2c j*Ύ s@_J`@pB8 l!7")>CϬ5 pɨ!6Sm_ ͦ ,:=J8Em=3r&KG)\"3 l ާ`vD{lzƃD ?m Ͳq2]}FEiB)o2B#NqDEϚg@rl{]~h5pOaP% KB뉍{P`|\P\k|R=dhUM ldq^= pd{.5{ßqi@g%T幓%Z;OͶ%$,Д :4'Cv;RQ5ޑ^F|N#~Y4oDqLvǹDUb8G x5/j:FKJ :f|K = nD\3Z`H^d/l V(&3T=ba$Mߩn ?43 Ln pTUo(wڏAbR-t)`VCɪd:m#Va[#J랈;dWjR$ E@urc) $mڟ݀g0^00~t85niTF ,g[%.`: ӲzI .RS&rJNOnW"4\dUÒ%y,MAY@>vGXېT_>Ys #[ɰy-Pw#iN. cBk}Uve24lq,PG~M$ꬵQKό}N B ,~oy ;.@c2m2bH,XQ@!)=Z=4NL/x)y L8l'slK26ΐZ3f$/*pX,HH0F)er&Z ?] kiP8DW 3b(ApJِ` KqMdz-9Up~ : 1"/' ز՘k7 ?ք|y| j`B!D"/?ѿ7ޟCwtAYh%Qg~ YjfsK>@ԭ`K$q`/a\*8-s:d,\x×r ,++$?𸐟TAy:bֶRg /x?*`녠`P#fH@C4_' KaAPۗCKZֵ"*^ t~XUO.E(@ZL6jkb+ $%GYmL$`[- 4RspH(p[H$D84@nٻeHY#p4 D1#$qd7dH3_78`[h!uiCHCI;|t)ݰ:)'"'6ooSvzNZ‚!I`: &[j4 N;tZYJYX*a_bwg:ʮ~4z.[Fmx G?!ejZO-вd^B!jU;F GMa]R(Uv,;+$͖-`0B7pzz%T;.-S5:)O>V6 ݀杞y?~h:DTKUmHYR_`mM X"sWgz~:-ryt᭘S+˾Y$$ZpmWW{ JPDwU8Y9k:9CF0#CT x'f`A|ּyfURO i&!P]zئ$CD8qEIPjhmU>=n10)PEH+e`eg=Z#> 7پHA=-d"}Έ7]Oaj"IG6M^EQqȁ6~AmXurȔL)9+ܧ!ip]5.z,A 4yz;*韄iE < {< JO]` @#?` @A??Ղ P!j P!^oZCڪ~ rYzR`ļZ@$TB؈?,{IZ;ևh heW'S DZ0'~Ly&NXNs0E*O1c12 _ky#KWHd#;}yӤlFdޣḉtg?Z@Lx4b) Glp5K'MaNPʗWqi$v5/E iDW(yRu4҂ء η()hg )~ltf%u 53anҊ^1蟤C:{#s:͢kl?_b ce^AD_hU 覔Yb|U!`M&V72K΀ߊzWulކ'+Q"/Ƹ, QŪE F9fQ# ͊HV^c/bpiJ !B; &z4-yKmt J;`P4w0U.Τ(p'-M8j3 2hԿ h$1 4o(y0ړͧx9[A ЮA/_vL'Ī@Є8PX;Hi%F )n9!rqQ 4$9i7<)h w;P²kьɚS)lPy~tX ,;3`rY^R3iP(ˁOIRe]5_ZcBMt=q9ǁ%MGXA| NX2lng!j2ADmhG@g؀]{fSXuG ͵HU{ۘ3,kHZ)D; 6eطEUc&?P`NQ:|`'w#c*&.G@N]N/rwl' #TF"*} 6@P dX/7o 8CM3T 恛!<o 8q?:@|-(S`*Hl1 dX/;d5[)ٍfk@lƳg5AhJ1mle51nk_c 6d W$ dX/7o 8 /sq@6`m?p@Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx[Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxYQKzhx/?m6!GSX5>3K/_f;_cc]1߸WwoQJc0^ʼvm>`#@xhX~"h@ `@RC!jmа"dǏ^XQ(!]_уa3^BH:pHD ``"7^]2Ig 8$V*#EC QS@{|أb!j/C⊊="tELNC"aP~FN4 xUj}8\tm@{iˇH `gi_ THrJHE]}hsCVf[ Pڀ Xv5O O{\T01F ^lOzʁVR6ٲ5@m `CR@ QK@.Sxz.@|hC];dz=,OqJ@:(EUm&E]4nXqa0&&h=P~{6SI "FO?[>"2󷎋Gt~`A_ z[ѻ;YeTdo*߅TiDΐr$xbl}J%*N$NXXV 4ʜBr1ځ+>qUjJ S MqA`ʤU}I#P,sFXGwɎr$ [}Sp;6ˢHT*d n\Ť!md/D#\vHbBD-dD[*. 1/8Her.z8xAERZ*ZQdR@Xq`B&E т}DC` p]dTp]cxCipFig|ǘD}0Ӵ5dK.`fHCs1M(Ԉ.nrz~!eZ? Ul:O\c;jG=, Sߌ pO>tkO]|hjz^z iGV3 dU:N{E Vv:$4i%L> GV@p`C4m4WAe"s7efkaKܞ$`5"ƌJu.O]? FNM5rohQi+`w;h`Mq%/?/]s={f2 Z"W\5=ThKL?- 23.nrENC6opZxC\|I~*x=ϺXM^({grhJ[6ue^ ѦHZvs̪Sņ2(yAڹP8]D4_ڪlXIF޴f2¿ ~.ĂrlעxV=:4{seV(c{ PĎ)5Mg$D6OԔw=xԠ<|$ȊbƄSxxIS50q@e~&@mؕhZٓKvG,QGbNiZ;|w%!}6/fW3=Wf~۩Hc液~NBa(fɈ6vOW wT@ha/~Fb94Yv.\“y?7逸%O+?R:*Pg)Ybas%ObN#fEО ԁxpB~2@"("b*p󾬭b,rJ2ZI<&1 ]L7d ss4dE&LYg 0vU udA6Dɭ`"l}+,De6t[-OyLIN~]=Ycu]h8Psdk%lM* i"fN'jK,`#:r}zލje"`}K;.T*M`ӆA*ABgb /PySu.EkJo[B#>D, 3\N'u|.!!HR=C@4b?3l%Ljlxx Ƅ* rMI[(8Fql tV;Θwșu"h=mN9PR[kO$ kèuqg(D,;`iܾn&SJ˕?6\a3B (cX8a6YQʃptIWp^h3B,"^:^Jcd(:ʑ- **Bj1'Ghb ;5(p#Fݍ|/4Ⱥ_{F .$sdǔ~1=i;KS@ko WE*n&yf$'=BbU/ :'GmcG6ḁ+\Oړ~Q F< x?^%H,U-'|Kkⱏ{ yi[k_Cg5,k b'upC pH !9 J8uٶA= e ޙ'b7(,Y8!R?UuleFB3jүF8^ru[ =eqUn[q}.FxV`# *H;Лf;*`B+HXHZY{q:0\=:Mv.J6KF@FAPВbQa =ᠲ^1/jIp|Uo7!GNռ\@y;T#f0Y#K)3$=#*>j"@W BT81P @!ϫG=.,e['r! _0`f1^RCv[Gi` 'EL[xS7OH5-lS dF7$r% K!NQoGܸ_pxf'EE~1CLl.wCQtgPw^{kت8$G4gvYd%}5Ig-Πvcf\ď,_+A.ks˗%@u(oQo G ?tɥ$UGdM[8}–yT*YC>–tYJ~ x6A~<0goٮA@%_\ ]hB/65Ā!N(ws]8VԦq^="{ܹQ5RLa #6, /6۶I%7wщQ=Z ƀ~F0D-%bN\]WO a^*`AR>pL+y;VّϨ.3 HBn}R-#x=N c g9ǖ_B.GJ,弓gNa IԱ 0٨~3 >A>.^/_2|PԹy5{oAv򼤙F\CՂNM y(V|(ѴU +qE d@Kv;XG^H =*Eo g{U|U"3b6>[Ms2}7{{~o|?}w׻?0, VY\>x]9煓(ĆSVx7T;3 4-bA ZVt*`@eq d^ր5i2`po@6^oH ڄq?:_ 7uٺ4"r? yܲ ?\܆a RF $MfE& mǶ@ dX/7o 8q?:_28uٟjlo 8n?F:bI15< UgrZ= x dX/7o 8o?_bz_Huy7X$0v`miן- dX/7o 8q?:_ 7upo@6,p dX/7o 8q?:_ 7upo@6, dX/7o 8q?:_ 7upo@6,GqC did'_a<]A}S6~}?ٯvK۴VId9@AD!Iy"! u q l" (f"]wtD q§k'6\b:Jp{m.S_geI,aش YF#7ǂ*HͨeD<=99Y׭q0Ɂ;)`9qִvx~>}PKt zU"Q< NI#U!H{\ʐ^e)Z-b+!Դj;Tz -`\P@SJ/e@`CiN #dU9PCO)'ĩΘQz39Sc@\(#7GьF <9!Y"EKG`*4bSFPdXhrWC}+};AʈB3zHS`1 c`Xξ ^1)R ,\$|X]>qaIyH@j|@X pRi )s-0D<1B (<D_XDA 1DdT1. nJ&仠KTMjK{XEMa8-ՂWo) w6ƌtHܦ ̪ZЎlcTs D~iNzsS@ ;XTi 6`r#>0R nTB @;'㞜,48v@ rQOWd{a<6[~ f)uv]8HE"S`E y8V?85_- @c3-;|XObG(mWA!6&񟻿w0k@0`bWajb0[2e ϓd7TI;h!D =P:\Omq5z=7@=>DP;Z:%rT ρPA9aCnlZ Y ilm@ eO;:)UPsgrѯ?)?,ݎjNHVQd0"NMhÀxNc k@b:1Xe #@@-\N@<)@BpH``|Sˀ>ab\xy>~HȡE__wJ4tv?{8H̀À B c6!6LeX= #At+ .0w@o P8dy-}3e{ Gv܏}ng?JtAלOT]l[UTK+mhJIe>i*|_~ *uBCX9\|>~" DccmZ_dBo>!|DV%HZ|SRFWk0os3s9g3TfY/882yυ:sZ)Z\0XUÜʙ( *Mfb5"6!bHl?gv\&B:@?0[jsiOؼ~壊nzTB3 P"~qy \E~M6\[ӫbxv]S㠝\@y><&E Q5Aw=ad=@s%BAǻ@fDo`ݱ W)4 Z'>|D N Wvӎ,Èp}yV5{CB:4=G`xjZFRfQC\1 #sX*J]l}$9fшxK]חW /P5`};ȏ,k0 h_7@pqnJWKbR\pk J}!6;#$*{M(r2@\r>Kz+2oqB ;3{{3 xȻB]wZo3IvpÌæU/fyےCt> 㩤 ʮFX&] 3pg2lDX` T+_,FߟyҷfDkOPr̟--O. D5D@a%#1_jm4,=MJVd`@2w@{Tς6@p?m(88gG`iGj \]ab>(il]@ r~@q7eWr7[2 E# (oFp{l@>-W_R(yWfuUlk\E8T&G .t!$_v #"ETNmp1(hb t%V7@ 93`=V8Oe#P7r3*x%P/R? <7U*MY^RKݔY@rO V/Z"Ŏ%1x k= X2 fE93'[h# P@[m:!@F)0#%H1)u:UA[fePe8b::jSB]p{pt Fp? LJ @ XVR ҕPa܌vhvr*VH4C )d:t92! p'x?aϭ?K&;EL%ԹVmX]A;>B3WdJp;IUމV@2; Ɵ|G~%!mTLm>ԵgCFBVg/▴6vU2E`\tC!jm8 r,.L@KJS4ZI 8*< Kt/uY#R.f ] 0F[59\9u*Ҭ2P*V5 _n$7s3OR;D !RVQʗ;tn5(Lyz&\%^P`F@M`XCHt A6`Gh;2hwh e}P%  } %ܗskI3'ѫU om0q\M> V d1 b)|࿀h 5Yp tb3 @@0X0~]*H@* P0n`¾+ 2#g@sБ;6@:IFHc3.1C0 HD@@H4S *t F@* mCsXOE`q>7q |wTwASӇR?.7]H&Q>G5wu*nRHpy! "ܠ2D$",n-܁  Uju@i@pi *,Of  pp*I8lq0Yc8Ȓpr)t$,BR*/[s=/Zf" (À;:A&;a6QАt`?$!@a 0,VO`.-΂N†t6.ڣzYUNЗp {ha85Qgޅ3GUK Ϛ_&Ҵ01⠛$djדvh,L(5 dX/7o 8ο{q?:_ 7upo@6xQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx dX/;d5[)ٍfkv]Zm(n|a56j6CU͘lh5E1Ҍfc!L@Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@q dX/fp1{+8&U;͜hF0Qlvd5[)ٍfkv]Zm(i;QlƳg5A-~ e=mj(\OC5iDwҮ"0@Y  dX/7o 8`m?_*@ K d.V(4@~_ 7,Po`m"IoTﻍ#0J0p@EX(簶ZpY dX/7o 9@z1Nq?:_ 7upo@6ցBAv 1`a`@"@9^uݶ#|Yv>t Gv`ҿ!+,.vDYz4~ fA-񹌊m-ll{kokuB&#d e#Љ}I,[ĠB>J#X{E:·a Rܲ=Zs4ũ5$RNgAaǡlO `A?l|v1_xxAm.h"e=5^ؠFYXSh6lȽ*[Vv_;C[) Eдxn%<RԾ\ zSXUդ#! dX/7o 8u`m?_Cu_IMU @*ZUD@ԧg\[,o܎ֈ*D?|ӿ~{F;/`[{/_^b~w3}C?C[;?wşol?y_zzJ?"~MkAGvSwoCOgBz: X5 Kr{ x4\ O恦d>m]Ϲ\ |4^L::;q;?DX5 Kr{=?H$J"c-cW` a>;cEV\44͆Qa; nily 623?xM85|lN9I X#ڀr$}˷}GAo x =.3XYv7>{2,ZK}+(h,l1tok||*CtV%'Q>em(.QSǴ/ӟא3.#ݞtOH$KSPڻ&i{v9 VS9-VEkm-jFض7H=;@, xȨdX2u}A*c~3~)юuL)TPK"a8&r5 '=}ԝҳ?!SNJN AI-v&!xIZSG=MړRJ6\oQSP''_E~G>aLJMerkSsFҶwյ׫,&ڇ瞂fE} q9wiA47푼U*&Us}8I9a6Gz|M9"$w ,{=MBÕWSP&5mG@|NsaԑO޻kYTI x `o<`3o^fs5vbL$͸D3:)E=MBԦ'6ypWɊB&H ||K2ZX8p #K]$O~U hi>jE:9iH#G9\r>~̀詰wF wo>`'0ߘDj>DHxP8u\ts0ߘD8EN+-29Ύ`'[ԐOKr:-agMp"'W-qof{ODB`:[+3]r:!-&eWLފ_%#-\hEn/xG0s>vEtZ|ö8I#;2ն[;bn]bU$O~`J=I5݂oyf`xmr}ev?ur $܎ 3MHu>&!-G8(f{뭬y ^+;ފ.T8[B\S.J[0ݘ\2lWi3>F_ȿd&F[p'L_Y8ǁqf^H//\t%L*NE$0:sF'\w. W#ު}X)hQ%gO){ESgL_ę1xCxMTa _}=YlwX"(4c@>-%¶3 v`xDi# `?{s÷RVclhec;/0ё$YtA@|3jG@)T0@la@NmtuRY.XkVB^>p#S @.BהPln@k,5sw8Cu=eN`L_$bR@H^gɆ". (Gz)Q?#pg]7~0'~#7s2{h J =`ω(O_@N+IF"8MDBaD8Rr/\Df1nI9<Ɨ{Q@~{n|S(2 iP㵕 k:;(9P^"7XVLmYg<ὀj'־ -ᅵu_r;Rh{wiTy%+]`̢na nDKx8)QͲ@;t ~\qvXoVǫi.;>՚` Cͣ.ƺnG .~FH 6s0?O[gCK17K4A+^Ȃ1Q P *{ܑ/C@NAnQ юjq(1odUyؚ 3A_F;_j\*&ftG7r2{=4bDm-. 7yYƷE"cxká^mw.W4ԟ{Z}>]٫ҵ37>fW-&#*5m8X5=jky>{J$詩G;,H)xdWQuh zX0+x?zS1jhw lz]/dM{ŵl`{2*z]. ~t/LDE0̠3_AV0U!T T ۧ" Gk I(cM-/%Vd2 i( OXh6X٤ˠ,f︯eBs.D3 ?M)v,yP'Ƞz9,:$FS1>/?@j9^֎@")e!xz !0RW: /M$d ET)jma@𠸋PTH2;3-)JFX,AfFίȣK7a!A *^(aQ abH?r}㥓lz/[1@ѱi*j8琹O1GYn>Ѳ,O_ys}%gS~ XNj#y^7oP m3F<$B0 PB|X9Ԑg0י m`s q,J/JcF!t*լymLnw^EqvY!) ߮Ӯ>a.|"IMNM@ _»t&]8%nV R"vDnyQ N17@.0@ΌaWKTAkRPJ-k[VjhP ߞ0S.P`f@?84|qʀ6*Go **z`cLțB!qę8КeS,(`0`6`KSn:Mz׼<@ݜ {gR5(hKP$20w_h)AX3v/v]$I3zJxXDg4 I< J?\W@} 0~@`nA!}JvytscG|Ow4P4h; lp+odj> cPP2 HcT @`4Az8Z%=eS^!`8vV思{aqĒ,@`` 1Jx@-22 p'@R8;Q;dzwЇֻ*Dz[f:qw|d /1 ՒF#DK.j/:d%qd $zZ@ 1۫w~hrsl@:t}DWquJ I`y55# Yt ($B^"@Xflp~! .Y4ᥠRy@-dsB$YZҎ޶( p^)>@ GafF958Nt ?KF2L;lmgJ0 `- 3o=7Z@=$Kc0zdHe Cgjp Z4ӎ#QrLua¤%80^_7_(4Ei0'@~NNKlJf>'صRE}ȭRwExL L>&a ݀[lsģI+J>4|{$~9l[zv1 ! 2gd0 *,4 DOĩώJ13 ?&>Hd\܏#l#|MuE5˂K<:V B S^U$·kzgXĊ%Y'8- {ʡDl3#ڂtdtatmgQ"E_*_VUȀ %t-_'ss3hP쿻vA; `3(hK&@cnH >4g+ܑɄt}٠Ɛ­hH(n 7fF%ӻw7e-#XIinalVz J9+ ~? 灉*1^@V(or<ˊ:XѦƌyxȹ ڀӯ]BЌ,P?;>+,jc"^sө*A.ޭi| _pDw wJ6"BV*IhhY{\DiC]FQc&p+GqPa%Yfk2gvúYjJ{y^Muv|f[0"' ,#:-I4 t\ffK/b(h-et_2Z@:?9М 3ifF|7r 9T\b ?w}0܅ TfVTs9G3tW^KP}HJS6|uNˉ7PP e[8'pO0~Iȸ?s胬 )RH" {@Fdf!D yqy K:RHr[uʗixyp6|0jQ3/ۇN'EE s .v\WYOwL!3OUt1\zk>vPT${p]ԮbD_aS oO,4 y3MR,fDI)eQ]ŧ1ў릭B=~om`ꏴUi7Ke%)'9Ar??b5fI6XAT&y侎,WnʓN&F~e&.5z0IE?KzSh@G7A DtAkղaǶˢμ.id`9auxCjfJmcX.z,IP~E*^tIpA_ \wװS^4U`F /@f  NBaĔ ֘R eBMX"E}O{ Xi!2 'cpU@t BIi&cPn(HP#VlKAkga(`8G#J} Gv%}鑳 o<Џ4+>iisZ[ H+ixƑي=_Tlxf7Bg X;C(v 5[˳>RcN87NҩJZ)@$G@8Pz+3.?%M'@L@tNד{$uKu-Z;2, EvL 1Э0  AW5L'ֵ9QעlT:l8s1PPcłMӻ@Wꦴ`{")vGv*pib[hx+7 {vY=¸`>oVr>- [iNH` $;WwANJ/4h8`fa@C6C nX%td7$IIį(4Xegjk Z$1$pa L!k T@0ր) |@MA8Z#PD7ra7$l vQ$!ʘ[X2M 9_(w ~`;uk L-PFH6 ?iن6>ΞE8gǻ?ltu*hAٰ刭\Ε7bgRܠ@I\k,-\| ͧ.6 72:YNZVPPr-Eh_d1gzsTӚcKkUm2˃e, wsbQLWohGB#iMiBlP稳(j+MHR R /W&գ9‚'"58ZȜkU|OTc}e 2l<Ŷ eJg]ܧ6R  aa^~.i$k~O7 wϣWyjAzg!-ͽ\OMwض8#k~aAi[X4EHAt0TpM:pX>\*Ne}N|ppz̭ c_4 {Nj Uc߆cO<@N3LP\M(yڶdWutCسӞ |/|ٿ4E}!8pd BtY 2,sNj(KXd="O?}G߰Vv<~蟺*Ok{Υ@=-fhqҖt9v3w G޴J2vlarNIE|ۀt  ̈~h_ tQl]Os7@)|%"{ȧrnΖ@ k4Ea(F EjgNYI+J0Y'ƅ'~ā] )}ycl׆"Bh0az3h&3 T43D'4 [_s2ƍJ`% v7R60X6B}ʸGw(*$.Wx׋ʡi1) u9YG˴Pb].Kgt @M;(PPHkySCDHPZ|* O3Q.v G\T 57MM\`3|R4`BD ӱ Z$3؏`sK%A'/?T+@I\,k$Tyy1gf@ʃa:hasxYp>U]N,MW:ӟ0ë* \m3JF5~)%w%/9S/1 ՑsRH]_bZtYKX 'bf)|8?; vLҧOwЏHu  BmZ0QYP_eCTn=&" `ˤ0Lt|Xır_돳Wjpy}}A?~-D&zcc 6 h!atȾM H2=-pMܬ(;xpO{;U׏^%œ@XÀ#.p FтS>v{ Vw㦁DlK0Q$[D>E(9l 5$@\n,@:%7#^^2U{/!5#sԙ 0"&2%MWO1ا 8~ Ѡ ;[eIkwI0CT)7 y8b= _@eE|P@;\m2W!Oa]v;.k pncq ah ꄰ\> QDe \XdMN'$;`7|r!1;S|8B Dv:^\Fi` .8왖jғCY@y%qdt6sS7.EDBbhXH eX>}Gⶀ@$fF@l9`[{8V,|ld.#!CCFKoJXr:MRPK8肺`xll6J$À0H)';x A "a']% ( ZɋcBJ@FO3@AJfc 3>ʆaW&0 :e9A oHF]eP ta'p;X !@,1wdg$pu l IN+T7|ZP0&!$i^5f@7ÀA pIJt@$LC&G#+ <1+R=В11Ȁ a =ierjbi?D8Mf3(n}Շ.-1n,Mvu9&@t%HY.ԯ#Z|Ŏz@[^'84-#WI{M`Co+׮fױ=$i/0H G]+Ra hB>1!be"(HS |퀇c_{0Eg<@I<oFAqbtl4c&YW{ZB"h`61QU!;i/-]dIQnm:n4-M"XD-=A*Y_͓ra S8[ n\[ u+w0[HA+-m(>2 Ŋ3@0Ҵyw>m8`dXy&;c0L#\єsԊPKœ)dk~_AR klK&U93!\hW.܋HܰbQrJA1XH}t$XS8dӃT=f# dG(*D8,#-OqD X$N{JZiYGc6t﯌} >?18GZR ^Б/߆G:#Ɛ3A]H < IDBf (}%¤j l"'(,AhLpk  (Y1 Z h/QdPAOTG[ՠ"/,k:` "fC@A<&i0!*BW:Ea@OOe|P @!0U R)9!vuZ3$a Q@<*@ &mcZЄ;X>orH};AIRv\^\"nzs~y!Yu]T)r^Tw3Zjk.6x*ՅU]d='NpWHx'j"si{ ө~VeS!@ Htd8(՝2K_\s</i|-W5 qFWs޲GOR GW8nF93r`/%Z~bwCQ ʼ35 .*sڇ I@*r y 7(&) m0 Z2` BmP Wg0Bs0w $ J.rDr@ Cs@31[Iń|Ă z X'\ _ o >'^AfkPcP6M|h@ <=xU U|Ӆ#09#A_ 7z=bfВOr(s*y_~$FR:ͪ%w [ίw岀i: 8A`rrQ*A@8t>Հ@!i"B.1 ~rB|:=eDPGU* "n2i%bf3kj@`f2I0 `vـ6`+SQM`=?'xw.NF !'UB.v%'1 {Į@88d1 r+D8XCldj~91ɘţeeC3 &cfO6u}_W Pbb1E{rw8 ",Knf)]3kK<c+]$g1s1s1s1Ug{vhQkI`DES u ˆ#|wF@']M3*g U4\<$fP TXfAg!a`yFV Pl%2W4O;qdef ϔ1kM  cͥ IgBԘ7Qn.u0TWg+D<u'g[$o(Xei\ʸs<`w}6J|s ,di(;iK^\P8p9aK?a*m)@@.y}"fdkZ 5A ɿe1ʿP  # # %`o xDɰtP$!l<9<8 Tݳ-/VU$2j @ s.)U"Jl"z?i!M,S4Cɩ*o!qTOG Z䉀{`60P?%Z@BuRZF̐@+"@S* tl")c42X;d-%0H.Lat/ho3Gw|; 0F [VjbܱǨLo\F*`=*Lgy{`Ta /sl0:8L#J dx] 1̢x Pϋt#\ˀ!kD=CfD%OEw o`V} Dx!]e TϺ3[HvPܴ^eWIq)\Fh<p>Mq 1 @",[dېg-%: ] fS8,pF`m74k㭅!Wd K11' Ri8(\^K !5I"w+0YG@$ r> 03&> ,0L @#;$8L @ƺrJ٠`=t @+[-xтU4 E,Q77@ /r!{c Uk`vNUw@Dz> d) *q,f`4qB0@3mW M` N@JXB0.I&L#l݀q8H+HlcXX^G$OqˈIqe'`\=]kA1udLwQp?#X~ c,AK=><̀ \lDsqL ( fyx 2@ $i@Rl-<@~{<"3/ae8n庖*XP-`Sb)06L9 Az[x*Dr@,*Ϥ* F+ _@>w4^/&KT5 Ϥ)[ _:ɐTUe'yO<cpp} *NɊ;@% - , `ixN@yŀQ; p`tk Ӱ 8]D de=hMVLu^퉰ohҳN 0 np\q.758\sXōZD #ӧ]B| 3D@%W^} 9@J Zdk-G #@mT3GxT1 :Dw@7k a@Ɩj+00Vt 4# kf؝w)vPճ*\P@B޵D5oM E 0Py}4H[NHT=bZWa$Pg`}_ U@"vD,ݜ*ITKK9'd| }K/8lt@nx B>A# r78oSG >99Ai&# '5HHZ7>h-?g`EpWmfMѰ@?詊p*0GaCf61`i';bxGS\l1I'jSB#;Q@qw*5O} èˏ>xD!֬p 9@pKJ>uL+Igҭ@rҏuwՉy:g %>%`>;t°4R 1%!   ! P!&` -|| yPX ALyO?2u`^`Gp`Wd25y؂CсgX x0Ā+ K \܌ 4H7`=!v<#" tM G@/D*0rp@@>&zȕLPY䵀!:~aKr¢SD@ih)q-{c/k\& ʴQn#s WAE5`}d7*rX:,]`y3Q @6b; *`^"X7t A{p @hBD$# dpIYN"mJC"BڒV`""*0h#\3[wȬveM;;HDpE!Q8G"&ٳPHQA) ڶ >0OJ|~# FIB!uSq'vHM$D( c##}T(+36z=ŏ?Gu-n{ڊQݨǽ&F]bʇ2MI7ԭ c1eR:#/7M6X@+P\z=~BW;4U ꍰpuD`O`%* P |Ja#& TX@/HpCB٠3t}<op : W9 o@h7BʃY X C \ϐ@@lc 4 ΠG 3(9 ^eԄ?/gHØsjpF86@ `Nk uѰ DԊ_ BQ.Qz."@.,6 Xci] `)`)ho$efo- @#qY q5 c. Bnת>kцFy^Cd y:\ H@>` GJ0lbV)xz1#CHVT`c;,*a", 1X )1&ANвh$#C%1A@3K(El-Jx1[D ?գpv@`PXcYP~'z~Z`X<"Hm 19P0*1F/ѢO<BW󒒤NA8dހ u5JИ E*B5DdMn yCe)+x4̋! 9P(6Ec=쳫a¾X^&n 5]WXٔ5]WXnF\Vb7fPuSux$~*lq%,$ g\`|zx0)*lܸW5!fpԄo.a s<;v =D z7P5{! `)<`%Syc6a*@ !-L zA dp/eC0 A BReэ2EQ:dXA )"$IŢ.i塌r_WOOx*8asD:w # +9ID"k}JޘXfIF4r2|~=EZO0 @&Kş[Ŀ L!n, :ڲH0k!O, @2? ݸI'>G?b9r;=CP ̆Q;;V9=_M.kXaop&p"J~{3=o $s4[Q ( Iʯ- iSG95@M1dX/`0AZlF i8? Q\ r6{q?:_ 7v^? @ ē|඘(nKR,ē|ZhXv YFH76"N dX/7o 8gr}8+?_o 8]'m( R Qyݦ*[_~_v{xzxԚ)h_%vkR,g<U.reWfAm=G6,QĶPdR Z$DoZъlir/)zhӕk!V(f|#iCDN̆>c K Xi@psFӀLM`bH㊏c*pNFT@1 Nu)O$9:Wb9 evtWn(dન~ծR%@뽧$]ȅ(3e[30( -k|.M~?<~[9s ,8(0LΕ.7 Xei?pF<z ә`nqM6' XWPbdEEd+{|4tf#za:}Gb#&Y+1m0^w)3[ԑgdt{A)I!\r~SU؂V>,&Է|a w8R~6"K͗d?> 851M ؋p,Hf;,m ;bO0%wHp|g]v֮ -'q֗ Y6ˁi*jD׎oaYϜ7S9-Rڨ(zS[?|F߹jFB#>@uV򦨱ngZG[ide+ `m JR4ZRhPvA@7"_+-̱r":4-A(C7ܒPYly\};hښWoKP(b[?,fWK)o{_{Bꄓnu%;ҩR6Rhi8",Q1s` ,b]|Ӓ !+o(čgI ^ Q!|pZ L&8/nRV놐LY 5Bp[/-zGqf+;nˋ門Px$04[ CFz&L+Z# KK5O(5vpg,q mΚ_3x-(AKYOض4# rO6^VS61beT6[чzImc l p猌DT{"%A<hm3\ŻӅ#Y A *Q8GU0&u p%sӗZ^~LasX #ǣyۍo ueA `:*žny'3#]-+fUR) (|0b6ɱblXр!2? J'g)D|"e[gEMI.Kl#7BvK+c/# aATXqgW:x rۻLq_0?k%~-Jh@9ff ]-fsD@ϯmxwB!`c,θ%JFр߇}$,9S"Mp]R]lrAp1N4(s{"xdp&V<(GӪH|øaYW\]^&Zܸp%(sW<c8! KZ"λ lI :?rXU_Dl:q^pZ2P!bY)MXT*W8#PAf?CL"xX Nzb Pl].AQA^Gvx @XV?Z5ye;Zjx\Jm) g )u'uk&ЅrBB[~5t~!J3?p+&C,pֲ tx%?ءk,Ļ 7MّxZO!E~۴Ohqv<Lj]*4ʞFUom}zN;qPLVR\u)ݫ28eBHKcMLG*ݨNl`S֜SjYڹˋl!RN7KO)̢Q[ ޒ|UOtX[J_7I)0Ip l%\Ϗ جG!_@Ֆx<,c" 1+ܟ.KL85`}%.-'$Hlr ~-+z ̀ \B@ 8c@l!n @=x'ŔnA?"L ~e, @x] 0xo`t `c5\8sZ@@ +kl$fp[S(hQSU4Sb0k<6T.jDiJQ([cb{n+ Tq3606Ce,,r$}6| 2c7PR6OWo≱kU{lMδ'=bgV% + mJnھ Mـ 8(k6U՞QXnILn".! D{}2 Fe[RZ7Ulv# G[,?]4W~4r^;<?PaXRZȣѴdQȣ%s$:`ye0;5(@C԰9iAS|lK u:}-9jVfBSME2P=b S%Yײ6<'d4@`y66QvNp&T-4 }6Ae: !xo+XO`ⴘ!Á૫i{"o*&i+C@_WFkǡWÔ $iux G+`4#4d4w#-\8?5W5\*ʶ p,6Ԁ j׃ 5U#02 .Kyjueoz 'Q;'Q3$'AM(QI@S&jso\< <ۓڙ[>;8 ׍PoW$PB7d.9Epҋ&n cMrf!8][g A$ QjcA1 Rt_\ZPd ̍kڿ D%},vY-}Qw {0fҹ[IYgKRLQYMRq.%vI!5g{~"\T ߹(QTR.=F67H|M!=lBlʏSò>t!@[`)vT7E !re $].Ow1e1CEۣ~`0_Qt]mn y0RͶ[91+H iW6yц' c-n;3#ZJ>S`#ٜe <m%d>Sc 2.X-7@Zb`%5iXlɎŚB{hiSO͆!=ѕC*O(qSy;*?Rb!@1Jv1 x}zlJ9gW@v9?{f/cǴW#@BL c\_I"n."UB,J5`2d$I; wvY(U(fVEkjw[s|cT} $ڴxT>k`-u\j'xAcStXTjjc4.G%VrCS2Co!p" .7kء/ۀ1D)%S0[sy<QáKQA=?\k vߪBf5ɒ9< qsh3r[#)6({, pHHf#թpD |KD"}<3^2D+P2#I+KVX4ݢ1ƒfa > b Z|*s|=_PhΨΟLfm:T߯"z_Ϣ ]?HHضQENQ*g?}ag] u:W#lUlT)k9UndiYR*zXt*o)k0d j8u!?p=V.Im5i `pSv& "jVwH_EV[*fhTS+nP7mNb@qG肯0v !}tpVNU~Ak;YK!f"HPt9vphdB'xVYaRdj,/71YyQh&4؀Yd Ł+Z'4O5E6JH Z(rfLPc}<ģ'Ē{foC?aP@1{_ }Lſ,gB"ɀ6໸@MD0G^DDh<?ڀJYzXoYT3bOVDzt'_(A]< {HLgZ9qIIغ n9@!!nʏTC؊d5{p&o%6Y|'TN;9' lSئ(j~fy3>)e$V-t -pSԘhsTūHaoA"/JHcFO:CY CVJ.T o_Jj?Ah(Lq*Fom]޻:&<' 21ˑ բ 1 M/d! ROay9NpUi.!>ɼtInEq[n!!`i_P>tR 嗎&dEX:8o#.\fzkAFZ]D a7oܿ ylWT05:/ I1A E*ҹC| +gE$=#1]4 L2\ӚwӃ;*vHr7 ڧ_IўŊRپ//@I= Usy7a-sPQU\3ѿM1\"Y/^[3ZF ^6wCs@A>xc/$̱>moGzD hQΰt19ngi.+ZO] N` 7?X5H^8l&b4(B[\@@> (7)_>5J;R%ylgKl!~n uwPo3 rѢU}r wjHx# x2(\ Oܽ)LH1Sc`xkjؾ^B"켹  ͎&CS}ŽחI<ƍ\#Hf "0WȀfV'$f4B@`˒\ɣ$׾  t\oP:ܗSHwgVf?|@uUsma;ȤFF l@/Ӧ3=WvO5q4B= Z{f$N*_DNyAyRJaLpT9R;Yp Tv<ҢcN/#`pLI=#{m 9(1(ֹvo1t5,O0piyf;[=u2{iz=pCҌnG+`0l-EpVVr}k=WCQI`2Aj]GPIi ɂp>ĻDwCU`fSe#e DL;:x֥YB'``WIFJ[ei祇$.6pRaD>.&}xf XLL0h_,&f]&iLHRVdVwLgmR6tN֑v:@$ՠ ݩ`چ8̏ص4A=֭.c8rcՎfMv>6#@ c T@ 8vel 8Qټlm ̃Uiȓiqs2whM )a&DB|Vwodxd2XgDˣ2KVڥ}lL|MfM!Tv I"/9 l]:L.Uk|38+eRƹ!XRE(WғmVЈ0\D8o =˥M,䣼R+/S ڳM0շmu{NZO9i`u! Lnmw?`E6 wƁfaS.a4짳u_M;6cT11bb" !0{>Q\pղo7N}a+_mFXm.mDHu'Fъ.PsJv wպAR˶ vG")F5@!q?+q=\l8?^ d xA*&(B* dCLͽ"UM`/5R0%+@F2! 1xhrE Dst)b,@h0L-R @5~W.wkt9l 9#G~HDkϛAFXm}@)) _&4 ϧ%߹ j#K3Δz`+@R9yNKhyCd3fԥ[44R` ϐko ;I)0Z\&sU j@R AjW.q 6`gKQ3p9X 8[b@3N_ʌ,-u_t.Հb1 ]cxqܷ&k^@"4 D& !*`KJT"*WX*< ;X`X8zxڲwN܀@u hk^!8DxWB>NXQ8q?)Q4;ϸ|!%bljVxmzy`1Wi< ms3LpofLC=  0i^ uzY/H:omT6K Z StW1L`&|QEyƒy`/P q>eŬJ*S=p><ՀCV<@ kJ+pcxu2%7ɍPFXf@'am=sZ6pѻ /+UrvY YCEI.UOR`}3CZ 4F+δ>K]!Y/3y@MQe5,.Kif# "܉睼&0f EiȖ1b071TQg0*V*sDo[Zp9I~V(7@ #w-7׌j+11oQq4kV5 c}Sj SIFd)o<X"ɜnPm/D>I?ofhp"޷x?`qE !UWsl:Zd_oHmtb{$&a9W~-SB[XaUlTTWoFj-P< Dje7ufvtOml\*Fsi3UJȵMj5W;Oz'{MBt>l[tg͓& x-FP ;xWCotwI 7 *%&CTGMlAClSzSyBp GMhC ؍oJvvvLHXYGړէZ%qh)A踺߇k 9j:si'>K|^g/_O`sJ;VEt ZL>ڽoIl\-jnhYT*R>lk3ϛkm NƔ\3ܼY{=}P :qJ"Tְ;eegD xAxf`.{)xj)~̤#|uݕj 4KkL8ΞKzɶ:Qv17 b𙋗֮A? &t?TB'j&Lx9&qk{ W$Pnf- ĭa;k1Ml@k:z]^PЎ˫%Q dW/ʌ_ y9t πV@C@ol@I, Iv vDɽT g}ZZ8"E+2Q$k8gYnpk4_Ӕޭ F7頿1jiV@>̩7|@TS$<:{AWM[>>]EqKMw#%dοLJ#ˆ*#&DUqeE*N־_ S@/cxs< gܡl|}elk&{V vBxH]/Jxj@Aշ*xdf*fW6̍O@(BZ]דnj+;J<|Hx~XJ\>2;mT;+FΎn`!`#`7j'᧮ 迓Z@0a4K@>3zUX"r?5.!IH/<;^- T'/NK^B)2j;I)QR*{]"ؐMƳ%RjOc$Sl Y6= U '@m'8ݍI=1uuW@ `Q3 )?l3i0u_u:ͬwɥJ x/L0 F2Uǽ1@#)2ɡ+s<>ŬH Pf43Z׀_q˃|KD8MDZ@W]f}n( z(Br .o% ycw ; 3 ;ʘ u.t 4Cc1,&L0YNpG"N'Ii%ez_S.Iw"pDBBl.vs”l.1^tx(<"9p"zh<$ "zh`vG$>R܀JW 0Z9!=Ŕ΅9 SڕbW{[C( 5灿_UMl5{lG9 ˴s,L{vh,XBI,)aw/J  Pá{ P &~'x"\Otj{KTV d)AUJa.P9P%GHVvhTmQjj{YPq\92aWA1^{+!? tr| Hq 5q_g?F7ņi!bJT'?<^0 !X_ e F(~|_CDR^'e92Aخb WK$H"ٹqãApmkHMԤJYtg-{Cxu<nG#j 27oŘA.JI{^cy!'d xl6 T`h::0!7O+ÕK O4OǠfVˬٰ<3 P(t%Lߴˀ }$sͪuTb"#6mxZL }`9.|KM`k{4ǁ0R9^Б^aw:IaAO.mBXR,S"PhT<l&@?<rת`є9 yJsפ PFz0ks(cNXo:?>cwDQp@4$ƀ߾V2 mA0 bb K[ K >@\ |"òq)1*`H3&,6gTJ9hMqեm}êؐ#|TU,[.dYiz<ʥY䧌jVl'"BS񂙇5MGٵTġ52(~]$<҃iWԈ2J=Lg#(Oѕ ']N2K ?D }0v,w{x<f 5tL\dHQc`r^hYas|.I%VLz DE WI*q0ɳeh-#@Mg>3-QX92(Sk*PGȄy @ɑ>WY(@zOـ92"m{1@d;_~?xTg \$lA%ժ*jac/$6{t77#w`,F>"-9h)zsei@ΛDʅ`˰8pYխ0[b2?x(I=10"s454Lg@ ,DcgAW`ɮ-xO^Ԏ|`,8n+0jmAl"" dG==6VRo"_|u7TQQH  嗢0c&ylKdUl{F7Cc z:MNc%iKSN_Id14e~~X5cXLu#:3ZN~~]h &Sb\d&ms])ɰb4@=B(s*Ʒ@~m ok2 XÍp[5(V~+R~IX ȺYf5sV&3=mxey2O(!Ϭ` (`E Lo*{"rSa1BP.c9r>JL돗YV|UQ6@ $ (mcGywo^C? hńa:})%ͣH@ k=Js 7 Y`rjyIǭƁ3YtS< ;)V*<r\X=,m8[“Ɏ?jՀfBeR@n6)ZjnIGVw12ac#q@ho>^U\C2H! UlK*@4Ll2 ug!SV\ ^YN @c>l'hl90d\nFqSmM\wveJar]j`u%`02?]V7>:Tb//4w3 @ (*ǀپK^-y`Ch֛ g-tʻI-`Sw9 .!K !UbWfzrgĤ~)@%(紞|}F>rSf&,5M#QHx=}vyM bY+:TaTE#tl6qaV+ uMUNmZN *ug6ˬGXtR'1b\eTn@l'3%G>,Ʀr/px @4|gRUZ}@VSv.dP[nӶ/X[z,_Mv?aI+bXBOT,kK T<# Wlm@%vbQ7͡Z%)Dm"4I в^9C[D;:2 aԀ7^ ݉RFT(P +`S/ P`8\@6Y@Ɖ=DJ@F@`1xF}[ϋ@ -@(C  2BNCO _mdA4[ׅ$Blt߀%jסF"xy$h+$Y D/Dc| ZSdmh PD'0?*~;- 3yPhQ4% k=`%6eg6*iI\GI\5U!ƫM/< @,O}vi(NuHI0 8 lke K@[H= 0Pex振5nLKS=VPdCTgB E`Я$^m7M5mXT"YV $s9xS.SՂ@ h <˚𤞽T P=D\xXE`Ǯd.g?hb8GpLJ@JǠH&#$a<GCL0gJR@fx7|D8cF]%&*۬È>M`;&]h8[eagߺNO |+s+AGN0C0  H* ZѫGJR}tq|,ZZ)&ހVHhF"U`eέDi >^4g>rCPd)^BYdī_!DR,\!+D},4 @[AILm?`ABnGLU`*X{Kc#1γ e6uM:jD@MVF814vG-! 5ˉc&nQnr4\$ͳQ}m{)ŭ<ݶv9FyǺbU'EW!{`xG R!$\^_+(fb 3Sbz^~Q-6 FDB'|,8 쏿9zd2}o]1^Z!bt'.KIcZ/`&ZgBBG@JS(XYla%/v|b!?'HܣVYy ' B Jan]8H۰ݸ j6`Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ՁXQdX/ˢ321@]ml46y? : 'r@z#-0.P~Qf?`mM"-0p7tai u|zAd D=6hȄY^$Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxcQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@Ɂ dlcD !Mfk6s[iF3J>ǡH+ ]SKS,4@ZݠmhJ1mle51nk_c p)CU+:v.@ 8%}d38@ "bޭ00`? @+d:`racYݠmhJ1ml>?3ތ&/fȯgN \Svx=)Z81Ҍfc!Mfk6s[iF3Mڍ0m1( - &Zx?6wd73+`ĶaKV!P(qmb ˡڰBށm`E\ps\@S_V׭ffU1849;y=$f?co؝12 %zzh&sC_Uw̝;#}WV}qJ[$݌]lȪkd `Y^ڒ2̪nPV&Ⲁ#eXYSDLM޿g25),V{v@>4.pt-x3K6QˈL_b_qϰQ -˒/`npx`P ;j}*Y&`)̀ ܷO VaEp$P㇌03V> P wK prZԼlngFHYD@Id@pGwNژ_0軦)}fNS`zOIv 6Q6k`7a2|v>|~.?_>IDp'9Ɛ#m F=;-Q%À\ 1 cZDj8;x;sܤү sRfpp-^ ېa,Vx0fJ7`~ {N7j\3_G!$&F'iNi%E! hQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx dX/7o 8q?:_ 7upo@6.,5Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxAdX/;d5[)ٍfkv]Zm(i[X\u8<-#=C] xWgg[nhT<6 i 9ݠmhJ1mle51nk_c 3gKVr:7zܶ,fֈ()[6C;Mu#7^ '[˽!|{3]nkOM|a٬@:(@ֳZ4ɐ8 Ƀ=~WS dX/7o 8 A!6{q?:_ 7upo@6@ā@QdmϚdD/V$T;H?R,#YDUS`m?_" p"FQ~л"D1(Jr37  >@g @dX/[ @6/u_9֏Tg=wK*ԑ;ߦ y\ϖ?_o 8xG0+xV=\O|?5%\/ɭ+ڳ"Bl*}i)wFQtç4@/DT@Јm(9I6c; R7k 3xEQ?(ྨ@5NwGѹRğ"@`d^\=ۇl]ӧ"} o 838Eka,,hٱqB (Q`fe/tD/@n{7%ǤkCM6_ B0lbרpZ2&wG6FQVu Gm7}P8,RbhPxj@_0GVۨt)9*'v ͧ-ux[1핏;]c~}iϺuXͯX@Rbm~5kl&^:HJMڙ_m&Z GD/׊c1P IXi.1fZ\!|֠)@$Hk75DW&hez \'A>O'J["aİr)0p?p6OZ@4ٿ?>=7*Szn(邟c0p)3D+@J @_ ,9Օ]pvAZR|K(N{y?CCpx!ȮJ+lR+.h- kQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxA qdb Ϛ D!`mo]pcN +^#1d!PtS_=8q?:_ ƀT$tĔ(Gk8 *jhPA#ǀEZ3Y$,2m00  ͟>d@c@ dX/7o 8 A!6{q?:_ 7upo@6 3Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx uQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@Ɓ dX/q?`mNM0%-.|M^2q@6`m&D5 X|˰@$`;V Kv I8  dX/7o 8 A!6{q?:_ 7upo@E1w` =Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ 1dX/7o 8 A!6{)ZflZ߄MUF"F+O:ָ?`mr=p@]hV%~Rt4=wķ1Y"@D9k}~^t[dO03+B:yȗJ.]Ae@ dX/7o 8q2<#@liN TMy7Փ_51q?:_ 7upoE )#6,ŸP%e ΋i[#^5 &lip"6|i-H^A `a`ߠ" 0ܭAO!,{kotXE^QCIk>11WA-B@:avن@'dڶLA_%2t=&4[WH#ȖՌd[V mVEUgl,r@$L9Pg&)گFnʚYg2OuņUz@)'_)َ~Ow9b+@UfpL:27]vPI> ♜30^ќVJa+4s] A , n` ``P)M';̃L,J}i |n= 6˒A6 HdX/7o 8q4{Rl62Sqvp(kY|'{?7upo@6F\ O ]2&EX: x '(R_5dtrz@t: ﱨ>B9  [;:[l7i':xL a=A:}@dC zHU$A 1dX/7o 8 A!6{O3f bp/y< !,kRXWKq?:_ 7un]X, 7*O2| {ҾI~5G}=|r2Bd" h>JAvݭ0|h>y?ɝ&P&ٌ BSeU q dX/;d5[)ٍfkv]Zm(i3E1Ҍfc!Mfk6s[iF3MڍX@ d =VV"S5 J@- f59 vkaFjSY͜hF0Qlvd5[)ٍfkv]Z@9Koo?{P*f:D{i904Xcɯ[3^^S dX/7o 8 A!6{q?:_ 7upo@8ܻQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx]Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@1 dX/7o 8q5} v._`m?_(}Z x) ((K[#Lf iA>`a`؀"=$QXHYl}^2nk#4A9ce ʢVGͭS 3"K/-#$ eAv5ya,Dl=M1:ECx)H ɍ8jr+iP@zTƬ$#S-uT-Xcch9qݾ(u;^YF0PGLO+{d7Z\P8(-݀=OqY # 0%l-<%kfZ]%Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxh dX/7o 8q?:_ 7upo@6.,@1 d<  ?_uPXe@d|o 8q?:_ @/Qx}x Jo`ۋ(an.cs!D\Q&d 5}K̗_Kwnt˴y1+% 3&eэ21/J`Y>4Қ\b=~L(ZgCV6@NrŒ V6JGf-5b vI ?Ψ\٭aH)YCm| 9!F8Ǐ 3E@2{7ֿ) h,l@|80+v?s1#,L3$ˣd9hc>_21/J`ZO+XbBߛ q^S'f<.r :CJA %xh{ELD;,$&pVc> \n#) 7Q #̑̌АYH Ϟ4fYnydHIoW/@b3䙢 %+.' q48K7sbFX22Ynr 2\ s}w"$@;ϳ@- K5"Z(!TEš*pL|ʭ6cM}pZq6ǴL D~%S{?lPRnG@=t`T)jB[ D\k" ,#IWT{t>!2 )^?' ]Aw`gxm6x3CvD;G!?ut ^ i4.rƿ|)jz 9}-{ 5"⻑էyj ^A*F~B.{Ϩ-K,DRhN $ˋ.RAqJ6j t-и?KUV-#gs,#/ou f -gS[M}H튔5OlI y1V ܾqa%ڳÒԦD1C卌Znx*7]ɍܟ((&c2v,{[k/4 n?8ůa [fQġW~`wNP1[ NGV~90 K|x3XFO ų!?@5< v.A ;e,KcY OΌksXv8$ j4p  ,}4:rћՀ X)srl#FK܊u<\ Q|=f3TSݠ_L/WlF}cԟE,#*[ϩn)B4ΒUKFch]S2v `>@t@O )rC w2c47ǁzK ă]n^8Hl*q4on>R dQĊ.,πAǗ;oAl25N?}Mc`Aσ')< ჾHTIOfj=h]/jX 0鸵^gr2~1BC[X*,O[MܚMw>f[H Jjdhx4S@_4]@u<(r)hRArrC;MUc FT/z6j-#gya~1$x> ~n͟3Đ܃jQ1oc7>U?.O6@^`+%[Kh#B=XgoHeâ@BC`O tc~\~LDH֗,eV?$X!6Z]u_>bV|XZ)#\"Q,N|;z>8b0[h"h[v;)8%q" \R]T*UG+j2MbHGo  ^1M WŞzh=GGCRRAw<бa'rky+B2`H;* 7/V6q=-H鿕ʈlpZ&>/BB!l(-.esnAr*%TOQ1,6o`Wl)kjǩԅ9y$|Xil}ЫF]ED+a{[̡pc7YoRT]߫Ht26(͇.L7֠Z*C .` ڕy ☂mp RPyAYi_f]Ӭ,=v.X o e]_sT c`iKe֪4[4#|xk"yѠuW](F8&Ϊ0]ɬHYͣL)xf-WDt}["sd9Q2;~D4ٮ9ÉWj-p6@%w2Ol {siemA$xg\rZP%q aL,n{4az> {(\@<+JnQe7~I*0ȓW.XTc!',TMp;ioWAJA&y:3,##b]*_oQS @{rO|M?~GF %Ydf #qD7.[SI X40|h=dJ&Q\԰MM|3s9w v/֔^rz]sbNY\% u֤}hLwdksyЍ)"f1wWJ:DZmEJzTRHDk%=[V'Dӥo`ǿe[ vj.9 6vg2n>xx>tY* 1%L9pRzL ܬcZ\`WNcXxрn%MhYY%sN͘MʁL,HD p;AavRnj[-z0yӌrJ7`Mf.7k Vc?8 Fpä,3|ݒP~:h'FDL΂G嚷O:H5E"EjStNṳ`,Q5 .yI4XbA˞X.ݛ,Nʒɷ`5:M4N}&%7iA/HA[&G-Px޻gp"&< -u3OK]b?0ڦٝ2e"ly+^J?Aˏ,t:e\ oF0Fx rA-Sר% u&-pkn̼5Bh1&7q6fAg 8*-eC}Ŋ~ ѩIoxSI4wNN%.ҿ4XIc 1 b ^ R7/8mN|{Zm_f;KlK51@HbVeFłA_ټPۤaVN/7,z;yn7, /CJ*\e[~OE;xIܰi"֖.i{ V&~)TVDHsV9zS+űIfL>z5ʒÀF@ń$VVA#w]yau$rsGh0s|v)|^.*5sx|rHIi s'> >ߪL7dKUФDtY9I^c$핡 {9CY'2BN"jND_8JJ4biӇ{3`عqg\^hSx[~`z.qB>܇gO|_m]wѢI29X bKm( Apq@`0SKLS_$ %Ŭ`hBy]CXpwa2~(E7: A9rAU?/CXH:iSDZv#A+~7z,Y.{Ѯ`c6A٭^5ǀ+0Y;>.Ceok^$W̗lya &>G}k3H9͸&Ù_O1a&] ;Jk9 WJˬ/lKq^"@:`"f{R&u(1]C$dA YjGajPWٻ~mxN9tyc*JΰJ-S6EJ/,qxGysh򚁑FVi[wb!#2D7S pk3УaT[g p㍂} ~]X5K=[쮙 0ERH܏^7Dy^%:=5X ո6)YƗc&+(灮/kr[Wt2@H.|yz7dC(֡i R_vQ@HL/h5BcԢ\d 7g?[^)LUMJQ RwL>pWQ;0ܕG̯& /n(4wGyB\q@eH7 34S,g_K 6i-^h?Qr&͏af`] З7v=&B1Qt~D怜@Wޟ^ G v*teomOM۳ց ˀ'@bOJ{O{Drr'ߋ 4 4EP0;,r0~WxK?=8;o tc&gݳ #gO@|za?|C/1L 𶗰&] X-3T|%lc,fhɼ:Gm*Eqä [B”pnZ~`[`Hnp9nnDP0C(,!n1FX9/i+A7\{[4:P^N\ nˆ; (By?c:H-*!0`oe7H_"QN_ LUW 3''Jc8-MVe ~4 ,-R96z[?Þm?ZT܃gS^UˋW![{߂Y@9&ो.~~.9&/XEٱ=^Ph05q`+&T-@ @,ɳK{ de\* (1 fWtSoX0eHT.TTr薲^v(-[Ix`O CpH- N%=ミ.~8 Y?'߀G` ŮȢ!T.qLlGT@^)2*-5}pW`>gtHhـ~+_tT;Mz Z(*yqοRA0*"q r0l I5FcCX0R%5}ņ`rt>.vlŨ(<VtY줾$?$lus(-l4n3O%K;7|"ro'.ѹ5Gx~ohvwzMiwh@U?X?}$(}CJU}A+>) 0HCP j|gCsjkU6~;蛴ʩ!+x~vr,[8#b􃁩;njYt2VOU.k/\-9a+ՍC=89?~K΀l $HNS((ľP34(  # ZǬZ&oҹnzV.V R5!1J *WX_3q Cl"+BTGbŞ%U{/7%cRm1fGp[?6;7<X=0$/*,E?C"bA)CL˩,l2+ٗ܂ }c6~"|0JA? ,H6of[SzН`1șrqj  ҲS'@Af)m꽇GƲ{p wBb+N)9BU!CHr\ :J}M1 J%&eIpjF0ذ8ol 'ߎ50< H7a3KaT,H6tu[򚓿zPsսzL2u=?ѐ| 6V=~ʳnuӰ#Г(|4%\U($^J ?2)3 o 9H1'PwSRᬈ'܈8Ae_p :p>J1`F^WZ10\$Xt*yؽXh^ ćG|fYg<9‚; .tzxΘ🮁*19Hm`!9"h,<9 $`pԢp@"PK 87B]k]ōY0.ݩ_v4|\/c<^t?)f@ p 5Y~A[l#Y"yf`K􈤟A_ R5 }ɸ">tU1ꀓl6b+}q:tbMS +,3I*H_7(KR`t8^VP2Fgv ד4tW]4M@ إz6M,81X\d$Ր& 7𤾇oĖK[.9YAXUON/#úl=[zCcb[]acMJH\ɄuK)}a>㽞B3Gy!T?`Ѵ h^lk-qC5(( E1kyF | ljqTLi,6ȇ9wu{j{p{I-6]r#L~<*<{88w8wJ3t$[ C 4C~=wX@P1QN\g !М@2$ 2Qg_Ն"qf%P{ҜDyx?őGO 0D<i"B9AMzR|;~ ]`kr'WK^"Y9th~(-rգ1 ]H`SAa3K`x]@a. Ct0~/Rqp̅ X<tذ ~~3 $Yt n\*1,+b;˓,Y.ǽX%u|mu-l&w,YD1A@,D;b@V j=h y&{L7aZ € @Kq}*a^s=glsyD:M9ZlfG0IJۄbR=ۿj@D[fX>e$s{aXWz陜m%0υC6Ftr~/Vv!,¹a;6 \ ڝ;"ObZ  f4d|8Y5p P߿uě὾ޡ.(,h|;R0h0ʹ]$ J#v؛6+'&!X^N!-R#p V);A΄IXEBq}lϾպ,.硰ȟ뮒NUtk(FK&ǃxvB^t!\%`FCѽ$?C'(Bi"" @QA~>'E1}#`[8 'eD{8V$B)e'~Tm՛+`I*$N,QCIC/5Ԅ*9M;K)0 a:K#}ڣ51' `e_V.M]_ KmT UXUa"QjPjFM[խqJ|B-(oȏ|s과>ÕU] `cks.Up g zl B E:k.`#:NC DR%9x:4^P)V ʋ!'zj }+{6P"x˛"jde򢅰W30 ,u-è}"!Cm mOR&xA_dT=Dm&&(TXf!LD??j+*)> ,K !l12_0F47\}Mѭyr|qg +^aUTb2^]}zDx,  -JR8$P ;#WXDukI%P+$D Ә.^X^MBv1(2GxoU+ǐ4c=Y)N7v".{oǪ8gMC-_^8T\'W /yA , Z|"z˨B#&&4 `tG;ч9TD4X@pu~A^qy4@qx/UKp~baDsCYA_d _lg@+ . }MBnMV G $52]5cS4J9l7Vբ g{vԖ <3tN(u fQ$8v-9T y!˨37G%O}~Y(k`-lO*@5[KD% X$m _Fu 2o̧y"ΌtGFJ96<|WP3r`^ CR$?%%sku݊\p6PMeA~x0kc\ (N5:U&e'R )LJ{Ry* X>`]-[PH+P,V#C ylȃs 1=QCRb<i''0S"odAWKIzQzנYf]4S+EGy\ 'K#\ A >z%:3"x(ef &C`?$sWVմI athEѺ 7G^ ZRY1TXvQ fqt ʂج 0!W "*Q` V/ )(8tҍ9+}Csdgȹ5k>~D3Q22faIgvّ.@!ϞTU<->wm.+;D(B!Q"ZQ!!)!3Ō|TL̟XRBB*! ! ?!HB&K8M ^ D'n2CBH-^{qzX2eɰ߹yO=rdV1`PXwb*D g ӂ ~W=ȁjfI|o@#/x!C@JhHn04@`8; ; .bM-(,A,@q0`ZFk<7v"J`mE4O03$P!2,\!Ԡ;HE]C"$mG0z;(e *Zx%DYB"H ><@3)EuS(S HԠPy@"@D PHkPF09D8 y<4';8<J xS0wNtBF;*,K>(`00d@Q d $8@>?_!{ xg, @B$o?_o 81w` M` 7h:[@&\| @v G @ dX/w," |ߦN5A-~ь6c4 Vk6cYݠmhJ1mle51nk_c * ;HТN|p5{k&|ٹg)v@0'h;Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx}Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxe6>t>>9Ս?^e:\noL C3tG㳷Jx/>\Y(yxwq/}ڿoW簾S2USgG(Rδ-DJȠcMsK̪1iIN&)FU?&_KQ4fl\%SBMsħ [$dŨQ@: U{ !3Ere *oFxu_,n_^ED5P0%܉mn^d&9)$s}|xIg3i}䉟GҒix9=I5y @E!S4R+Q4fl\Ä|bN(9rrD7/ %H`*Do5"m+wms[%ԇ5--#mCՄo젛j-#T˄gVk+ 'PQ*C—r8 FaS^9b:,9kP{Ne@-jo . M%uQי v47dWoQ^1l0k;1Fdȡ'z[8uWJ6+q\#DUMDMyt~,\UrJ.+Qh /-ba. ثW* a(:hl}9)wpLj7i_gF[d/=.B@_un[d)zhu =Z;x[ ׹B:W_] 3# $ n@iym2PbZƳ 1WEDD\ IDZMr@},6Xp-@"7kĕ~_\B9 y91w ١uFvZא10&+;V%zUxw.˃Jd?Qů8۾@ $g[t7+oo^%tԲ6cMC1ǝX݅?/ >D""& ?0`h8xB\я5anp"lCS>bY,p:op8mT::ŬsN^66+%EB{ 6+ߎA@U /%*B^ ؤm+s$-L>;@<|5x"lԐ W)Z"6@.Ja#1nBo3ADɐ,^2>D4jY6QH[l$/b7Mr)2ufki-'s|Īnd eaTIJ鄇EAAKLO-rH_ǚy57n;-n@e"wIIܪr9+ƍfܒVNdNwQ :9l z')U#G hwWHf<^KԻE. Ǭp32eJ%&FF-6 .b 9P8fP`y ;9GC#SIhin!&8,9?x*f|+FopNXK@Ysۃ%ƺʒ S4u6ku!'ʩ=ǧ6LC܊YT㾮6b8l'G.XQtQk )T`# -vڢYUsw1ƀKF&3:܍AvBhgq?{$,ZaA=3І29$zZ /r?hCRZH^[('/%9YmTp7úqA(?1_|Yhvc2ƝLr35׾HaF} yW1Y;rb-Կs,hXc"=Lܡ$Qs $eN][jq-)ֆI;q7>nLlfP$("pwI^Q11Wvr$`3JDFbYX/H*PMDq>!*;iܤs7%Z a 69eTl*ѥp1 (%O~}r^Bo)XsX7Й]ƍBQ"o 0Ur 2Ծq_̽]O8B]`svM j] #4 ='PdgT i1;kt:@!jBTUQ2CW σC64 gy)M(HM iՃEg(ܽ6:gE|:|yfIWϽ8DfS#PRoŞ]tZ#~ߊ-Մ;:r\n}U')nhH`?Er3kS_|Ne6 "[4@[)lQCCWDv%2H~wM4GhynntXlm?vϞ;4ވ2b_(@@0a1nf@84JPP ' _lpŘ0bP Ne|gsMiJku1oDw`jDB΃*Hj/wZfӯjp#Ks?Gʆ(zBTRB0B3 nݦK  $˅ v"C->VBNlQ؟{8DF)t(n-ps%=<.; $'e5) lr)~F< j]2UHXt!P|uӛu]3`O܀;@Ic^an юc䍐Hٮ`P5Fk` d_YHO^-kw+O&E6k=P\(eba5kJ $]'8(;8= *@W<Dvji h8)4SVrY4|ТȺq8-SO!Z&;U' ח93'-+sm`n_-hmx@ 'J Yf@q)OkS(lJwU5Vwj4$dHŲB<5 (훖,젇O˸ސE9Ǥ.yvs2 `p!SاM+Lf BucjI!3E3%T;S2&Z VJ_go\'&B|N-6TBA|_H:wL6B.soOqt3,lb!mPH X.CR;(?t772O\\@Pe4,D LȐ-T"(#dJg-A2eC5'{{R|wœ'x :w¢:s 6y8 Ю88':"zt #t!8[qG s5٥CwF30GVtܣ(#8u_q7@F6|H{.+q+ ]z2%Z}PqCJ pdü\FMm0D!+~)?X Rg%/)Ԧ)ǥb63: D@ \KeaXB/O(ڬȚ΋ѩK-e"YcΡsuw2:I;b"akux?4pdQϠdLa]V0ouTg]G'IleecW7 o/Vd.-2?.燚^jzL"4Z΢3pۆ5[i&QijXd~`<~TafGi,]E]9r@:>nIJQA3*{N W`cJPw\7X[[Ad".V<kmV0?]!w7 ) ~W7W_oyCPV{tpx"|^ƠpI4Pc&Ive ~5U›u.2@&_kB k3"0ڱl A],&H$EsV}_N0u7mUl+ՈB;.w׉j'5э.0'B 7R˗߅pD=,ЅO"1?Ջ] *lqLk`hPehg ~HRMv@qJeKZ)Bj@h,BCCsi UȖM,{zCX I1&˩K"jʟ儦€UBgtPT0 R0䍦)9u.!}-@Z S]j1{pۀ45wo0W vjܺ4!{i6da<1 z\]ĘFoBev1KktRTuˇB-0E6 @-|3ⅰ PU4_RW@+/1X$@oTǀA"P&hޢs`*d'Gx5[߀E~+b7Yj8f m-dkY\r9"Ff> "X+d^PjN7ZN/"$ZZڀ/>DO?,|8,B)ͨ9H'rR vPsm#eh)@Nk2c1JQs!ܠWc㤇c4 h9!*gnH ;F/U`E֦a@hPҞV!`KbQr Jt:??ht 0v_3RK)Yۡ6p,XY*;q¼-}em]u5fzWPzt5<ƕI@QD-""n}~ SETD;HHW-z)9QzёF^JL^C IZ`K~ob _P' n3zhh(Aɜ Ž*+Ӄ0Z&+_5%rcE$YWI/#{L[Z ,讹x4fD1bwsa%{Iwh4 ht2,UuSf|~lC:kD '9(eƨ+lmIScHar^cb&Wҿ2P#7=AffVtPX_Hc U=jJ*Ez+{ 0 xkd7ZI{}"?Vu-C+Tӥ) h^hiC}ݫR+q:>FACo <<9ݙBL຃αz) nem%R%-?N.Nf$PCYM;S6D$Fi]&h6WH!PEc%͞`5`74ujOe[!ƮzWKB5FeFTlg,@.oOuG~jbp>Ďa߂cta})JHO('P&[̐R/ [4^@TJD>t%@(Sa.[ WwHߛat |$7BAiR<2J@NQGzQ! z8.]Ks)i9hMÙA "Nqj ̤"f]JھfJ k7+(Cص P qrǞ:pTmKL@,n$Xҁ!  C츀ǨQz0rT.>;!xA&%OpxQ3*z)Ī/Jr1/oAx^*I4 +4@F)/ЯHbzG`(÷ 9]*cB8A)`̾g9óhuFG1is -:(#豷Dp ݠ7nj532܍HBpͨW %Ă3o`~|:H؈?OjGPSaf/L|+$~ \7aLݝe ==Ssi@zhtp X;R祉N UhcC'\  *`@ V2?" ~[^lұCIঁȈSˆCrgy,D[ߨDU#3^/+)4>; x@J(6h`![L()%BL<Ր1^Z/-}@ QxMQΛ"OQIx3jfJYPA=SlETz%(`)=lϔP\+mjKln}T5RD8E_xmㆯXxB! nv,lxB .G0κtiiLZ `-@0Y|)&WGE+/wLUSnvӱ4D#U# Lkv dX/7o 8 Jpgp/@6V~?_KpE1 dX/@ #|{}{ps "E.}I_oO>n-Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/ 7o 8 A UA'q?:_ 7upo@6 Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxP1 dX/7o 87@I@?:_ 7upo@6`mQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx1 dX/7o 87@I@?:_ 7upo@6`mQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx[Q dX/7o 87@I@?:_ 7d_q?:_ 7upVAz5|pV7hB5 HD}(оӂ>f}OV1"mL\xϤ@i4"@c%oT3&VH$F)G>ƌ4TKSI3Z7"^$g@d4E&uxUـ+V{h@u=N/-:7#JC9dVQ̘/ `(p&C!?m[JْOJ?]?Nm VP84IyQ1gK CD>[Qmny-%ƨA6E/`? a0hx@d sKתT̗f~L샯-PvekХupo@6~U>h<?_恗@  'EXe[?"bJg*}eG3dX`^ T_X~k/|ֱ :^o'-:KThbhņ]|]@@# dX/7o 8 AL Po 8/^K|lagoǿpdR+'[-T=YT_U7<y;2C~]beJo2@e d=YYrfȀ7o 8q?:_@ ӤF cp_=8q?:_Pٚ 60)w_xv!}kTa@-4l%P@ d=YrfȀ7o 8__Ƌw{Pn8q?:_ 75#iׯ3P5U?(@OK<ȥ@ dlc)  y? ?dHުy Ρq`m?  j1n{d+8bk{:%G@:N-%؀}t> T@݁- d (է+,D!`mBP?:_ 7~,`mupo@6&A!cNfiB|ſa~䃁ކOK(x$sn58ve57vkZ—$k{{skX|N&u^# n@@p dX/?`mUIBfѕwΏ{?_o 8'Z۠)y&J{g>a֫O=53L ˰_jT Û%@ dX/7o 8 A~(_ڟ\=3+4x>R?`m.,@AC[z bZ1;@flL `ά`s??D? *@m3@B ,zf$#e_@d?n1.fhC?_=GdAWL7[&8E/f/_=8q?:_ 7.7 #l3wFw81׎_oTʃKJ6 *@~88 _ڢ-CGnpyf6A8d^@^^" 7_%|uԾ|gtirhδO8?_oip1K FrҖEZǟ}pTYmk@0wlI1i04ډ(np;<'t&B<_0YpqM6~ ?h1;|xРD@U еG. a{'DoF__؄AXTj L/SP2դ9e O p|ƻн0'ɨmG$56 FˀSoW&5_~J>؉&@K]E&~˒6ꘁ-/ytJ@ dX/7o 8׀^r3gC`mupo@6摘eXz: %|YWq%K-V-أ4u mNlΏLm/DH-_B&;>D> {d cQ KP0I5qw.JBL`c(Qd1*VxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx1 dX/7o 8/`m _ 7upo@6Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ dX/7o 8__o 8q?:_ PQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx dX/7o 8__o 8q?:_ P Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@ K d $8@>?_zV ;J`bPZ QD}?_o -6>z%Hq*0r}KEA\xKG>Ha NO5#o~W9F}3j{!i3؝3Flt[(յݨ͸,@ dX/7o 8/ `m?_o ` dX/7o 8__o 8q?:_ P@! `a`ߠ" 0ܭAO!,{kotX636ZDDPh$e(.tVrٙ:Y m-Khi&!ȰL~Cu1n_U r9pR*w)d1iwR6Fc_^9mz9O͗?@=NSp}o{ C^~WǾO{S!oWnt?v|aݏ򾡿faZ'S_/Ek7r7?og~C߻?/?=og~އ6thCB'mh](dן.n0,U5^}XbP_7>;vk^S:h39F w=Ni.&a];[#`]mEݳ'Ѱz2+(d8R=68 9ʣcuJ E`FouxIiM-5TDeֵ,ލ6m*QWZ ;j*| -PȖj2Qy.PY2C1;W֕o0U>]-mYf.gtK0HpPve@iZxF dFKjsVo +9zGny6ϋc?a;؁e{s"$f j@m)Vx_G,we,S/D[X{ݻ 47n(ځ6#||c!thCB"?i{r8= -Ӌ|HR\l$NhW<m!,h[v@oY dMsʌ!v;DJ@J sSj= u㬀r!@ ˝*Oܭ:lq vJ x(cG>PWU|Eq`M}rɮ);\["E6\u[䰆X0`KHeaڋ/UF:4!ѡLD/0v Ⱦ텑ELGi K,C{clyo6yr*4MX?;Wk.,Y$mf*Լ1N0迯 l)f RyAϬiNw>3H$t8.q YāYtLA.wAG=8PNO>oy с0ks@ ҀuW{t$xj=ŗU^ r8(\nv4Zd,A8 7{ K0~{`:D-yMb']Ĝ4H?zhČk:4 z%9x?6wr}7NrNUB4&I65Ʌrc&Y/8 pZ_&>7,ǿ<؎i-fW#c)yW9_70?3msSd;Ȥ-~e>s]$u(kc*˔# lZ+kztf<o\xIyV;_4%%k.!,t@wt KYg;@M-I}!s?o)4S# 4RMq'!e_'xAX2@[2y0!M^a*?T>dĵE-\&Pޯ΀iMgz;>??JkGV0,Na'qHrG>jߚG/w\晠rօL?2iG ?%U{@ħu.J"Igp=+͚vVm"=X$_4 ZHFI 63BTAUY~*aƎE.S#}2'إkNH'*-?A1K )Y&O._3̬'8IK˦|#e\CC$Vn??rGJD9q#ől2~$YNH3ģ;Rvœ+[2VS8w+)Pr5S@Q; *k_Vvp`gq`US Hx#*_|4Py{!LID3i2 `B H_ >tL}5ǂĩ9?`-brԃ( aLXX2;<6ǯqd[/U%K}]mG%S_ѫ^s9hhzq I8s̩p3]r]j}ƍ$EwBrd:dJdTo-C%PuUɥZXdKMZϴ\c)qϪlrVB94ю~XU\jWy1MaPI*_d<^5PYZZ:GR0͕m!'a%HC7TyL֭( Jx8Bѽ9εVS*M$oLlWYtkmv9O;/=߁9bHZ1t&7DXOׂc=:ϣzdI+ϥ?k&V϶I/}J7%7:kA{-j1-||m5V; I]cU h``Z5#ܾ MWuP=N6$M.ˢbbLhe0I"偐@@>Tz@ ;&mO/c(Kyϐ6}z;)L9ErǀوQD6CH}K+G ?>rs[YY} O DyIgV]&EYULKht70nKG~٬ xG0s_.s91ݽ2sk>:vJ)4Ÿxư*&v/eL'%vFq|1@÷c岲q5@&0 ׍&\fOq@vri|TG@vbضf ,nBc+dD0 |%x^ =$6zo=W\&/ F"Â%шρqLBoydvG.sPI\Iv· uQ#:`aa#tiɌvw# a:' M/M.znd,rNm6APsq(.Dxn4}yfc*t6Vp%W8\W2&w%mأ3"cgy2x)^*q!LА|`ǩXU,HjyGW^~d7ڀU09U:7|%Y,{?<0 1AZ":yBZ$OsPU'APVj}n~ s_TwDteuO1aB4%!D[)Ѯ~i 64o[%]D5|RВ!i/ci$@,+i*R{v5~SA{5j E\ kR@M+^Ice.hO*:7L#62Y*;Ѷ:X`~8Sg )XEX w;GlZg3}c!WDTLGT˧~:QZJTc,kv{K{ p@7.l2gj8R0nƈt@Ze z2z-6? e OD3e*}ɭF Zw6w[ kdi>= hC8{Dk t2`I"yϱkFʭN|Jʪt+I(f%cgxlZٵXkniET,lm :=% D V=E# m'm?{Qeawmli27e AY/@`#=31k! Gq?D]8MLD8T[a@#gE(nܯ,>uc6oBeuܭc]59#1aR&o.NH+dPYjD -T^GELF08%1٘&E3B1HQfC% ǿ:(%rۤtOcp3iVb*xkT26tpGmY>4~uOB"# BץKA 'h`X)M Q &E2]nOꜦ >d-@8 S4\)Ą+:sٗNXp6eReib= B8[Z -vJڿSi(Uq #d}'|:ك#ţ#yDIZ-U:U e%o\ yCZ2{HMO$\҅Fů]yC0"W^rt~(r{(=CzcǬ|l>oZR!KwI4 w {hWϬUWHsDg(xƗrOcصvHi-UwZ*G؋JE1iSP+j#&Q-# Qg&x:pZD$md :[nOKQɯk>B ICaUE_1y*Z|NVɭ0KO(Ǘ40U'Ll"e=xhp91hDu)V8ah+ sKoZZ.tcr(@P8wycCtF0Uq^-wxI| }KqH@e? WVT*# ˔ctM7X'7(c7<^ŅWWz[agzk:02Irg<A_V"1YţT 񬗸LN2@k5 >,p14KX[~hp.f2Y 0Bw䨘j4dW0*8@. NY 6Qqp]{pQSUO.xPP.8iz'$mWUHWed`=N==hsG>mpUZ1lv߈x3m^o~z4X:ٙ{[¾<]vnq1g@e0)cqW`MmĪ Nno{=qk\fyeE7.> vlLp ( k΀D`x"AG"Z%iFKe%l1p♁-w̹;}F 0/bVNvU`Z;(')]& xH߮mNZq_ĝdDK`@lªҨ$]wg#1JޣXH5jqg4oZa`7dƒJ +D0 NuΥ?"%S/<"!T^] 6Ti0rI+y-hcUU,-BVH2ƀ &CE;HǗCH!P#7u#$+7xF&} "cn~ F?>&  4m @R  $OM@rB.bm`d%۠*T9 FvHaڑa;XNC ڧȠ MmR_qc00QDb&VN ˋ/cŻnLnc0˥6 HGv)(&Ɠ&-BHbEs#\7:"tR.)%@ZK9,Qh+їފBָz52 ZGUᕃ-ȷB ?:2'c׌N% 5±C3 5QpYo< C9='IOd„/F!W| 8qJv#g3]fds$3ª.ɵ%a bmK:0v* '4Xnc-Hxn/TD徍VMD @XV"@0Q 7Ghre$J.r|5Q8& 8*[_CX!-&W6Zsq"jyN${-] ύ[n50-Nul3}55԰'25iFeok=fC]AyU$X>y.q- ,P;*ߖn+ a$$)ȳxFxPHŧjvWmζ`' ]w`G M~YbÌE}% @^T /:/:h-<gW8[ gqKbɒޱm90q]W G*w{* !`_Y=dv 8=yy dh{ &hϱdnAM<^,Gl6=y8f y1J^6˒6:uπU6%]W?@ y@G#i l8Sx v `9iQ4N+Vk ^6o|q}Kr./,`ܮ@]4{imh!ze/j\'pQ(ȴR88Ct(qLco[DQDAh!0ɉxcEB'-6{@WB]T zk+5U߄Į{zSjpR!t$5L8UU8gm}0籉S Ï-sR[(3֤+2Ba8(<ń cZgUs{b8.SJW Q}`E4 x|yH4m#Ut$te׷X2TT?^eQaL]h7}AQ2TVrmVMW +VO"X(Fu'm`V|C}D0yˆxiBnPeԁt̚a)1+:*:S`2exW\ij7ɨa= <'Z#b8Aa7LeE[:@A$EL̅sﱪ?&Qdf[ Q0Ou2y1<$ª'>)|v(&S<$k&W Է"@ș? ?,3~4¹s@ 0x!B1a ybyQhL Rk#I6sx$=L } B1@us@UEK R550ܝɷɬ={J7Hn뙠 CIHF뿞7Pi~S a$-"M]j?ԯ:ֵU*[7FƥBosH=(AD 2nZNvCN)L1rht!9S_0ӓ]g9P,o\Jt=mBXj]K%~xnHfjtYjTF"㨛ijP@gFpz-oFgj\!U$]ɚhV215l-lGzGg.<tCzذPe|QҴIK*(WPnǜ[5k1}ty2@:)=+|g"bQ 9orh Z)ݙZ.9  dv?'og7~Bly!RYj9\tvɟ]=HĿ %(LVK$XYPl[qׂ!%%7Ĵm" tDa |,6v v%J}ufdA瞘%Ec>Li[^h=W5 K0 wB+4-qt阩AӪM bҎ\X`yѐi1ڂ:wj=ϓJuOIи4Z:c|[q6URy:X".m)?]ҵTcw%P# q>0A5 u^7)cAϘU}6 'ć(|q<jqJT ShqB3@YRY֖LD2iJ#D8R-PV|65|qm-_a1bߚbDDH(Y=ZYuёSjfʂ.#1Ay ɕl6Ǒ!؁<\d5cz]V#rDb-D܏Lv k~7v \]RsTȼi牳j\qM?W+zr}rFPpAcl9/DjxgQHL63,翆ʙ7 JH^ݳq$<(hxn&ڮqN,S}8kKi0<.N<9oFum2 IE+:lj|=̀4M09n ۦd De ^ HS7b!~҅t}qxՊ^3@u<`R, PdglUQЃYHhxEF -o@ 15F 1 /WP߸#f S6QV3kp<1@= 8H`Eqs9&oNDi:0ˋ jDt1H 5?0]8ngS= 5 6>wE6@pBˊZF5K0S;sP4!H` h8NfwpIrԪͮ::x2R` V[rai7ü`;NbH_VuO 3?!@H(f.ӃF CG`Ets}3AR`6='@P0뇮vr"9aa\(_rX|{7)_tR 0l˭oM8<:-`51YujztF@xg)N IEwE `L` b$ANƌF馏y?󄳡YxFXWD?U5w@\:@G(! 6YQm0>*ߥm0٠ AGhNf[s@1j !5Ž+=@5p ߚT@CAZ#8&oodpW\qnfevMIv#c(\rug{RXJVD/Ku=RP>>>Tt}ob0 X>= ɉ` Yà +Q\.^ yyAP3`b~ A@)C{uB09yWJh}% Р(4״M Nԅ=2U>W<*сc]]]u JJLE}u$}6O0ɑEol7Zow5 LT9ڦz]hɭŜNwwAÜ 5lW>dIb;GDׯWE\"x3km0 eulP]gMS/D7M6X^E^2Df*  oHI l>xPpI ̃{@;ü.:d0|6/6KɪF v_[^5e#1K'SPR"O7Eݹm揓p3h$2)*.|)~XP@j\҈7(<+2 ΤGf NB+>VDCo=}r5|!3 Hx Kڜ4#r ē<R oh3iq%I7VNpPͽ  ڛd~kA_= \h3By %za{Bz?vtr9$c#SiR]5-,xq_`2oągQnBe nXF"\3M#G_6=4[dZPѺ_ĥy6R YjL*tpTɽJ{0'dNP*NU2G =v G2&efPv;`{鉱EJ V#qw؁{I,"AO: 2٦ųKK2 UJ1c4ˆPxm ,G"᳁'O\Z_ MtT"Ot0 w| tUy`%][\<40 *[mGvo'sZT70bH8PcA< ~'Ҭf/ŞL VA'k@;o9ţ\@pUSQhN8ado"<2`݃hv|R*#-f| Buߥ= BAm+drdpFPА,-I!|\|qH&36R3[jVs v$Sec^5V\8z.5tW sxƇɦguXј5UHTM"zj`[w ]KL0"&Vf1\)V'WJ O]݃4$D  H%7ʗ(9q϶33 4M  !ٝlh5[|Vj}̙=baB 3KW5:;eA1|;#ҽ ܨͺ \)Τ;*sW+qé1Τ64>K-9-}(oR"sjH"3+6DpjZB U9F٫7QZF ߺ@iMZ/BC=cIX^Tg"D=O`A:O? KSgK*W(p@ CLhbS7ٌ?2KQ*(* Ca QɁӯ5 D 3`>|>@"c& "8H܇* 7԰K-L) R(:dVlj7( H/cSCt-zpz ܴrN iY""}a_ԡ5E e鎉t-򸲞Gct Z,úd]Ap@`"I7,Ef1zo\Lqe5^&$Ăh*;` wO|W}gO309k%&2>MܹqOXx.4o~~t^OrXS/(#t)dSFq=è Ie_l2RK5:k%(mTҏN$ fl&Ca]V9Yu2ݓ"vg>'w2~EN3d8U"AY 5~M|Bƣkqd} .ѯ@XfP( >AL4QA{Qo{me@&c#M2wbs`}v˼sAWSPLV/i^YK2oOm)_i 9ڽ>52|B G iQп  F807Z^Ū`)m9S[,B`pN/o E* Is 4Ok(lĩ O4u .hWȶ0aZ(N Q@V 捽|x[C#`_3C0CR"c AC7$|g>T#VQ"dx:4Q,q,&3*''~:뺔|N}@*ݒ L  S^c$8Otp@7R9OO{4ǯ>< IL7p o0;#@M $(* OA֖ZXK` S.(E(+\~ iuSJ"U`TV\ǀ>VNLI1jlV{RW='pjF8 $I*Yv}@k%raY/hwl   Yd %C |`(1| *@,@B P.z̀?2iTS#pcs+R?-X%=]hn%8'Sb]9<b&zfۉlFl;k-[uZm@ȹV ˚=2 !U4cd\EQ(`B 1٭&*ø^aN #Y0ka:zvĨjXm&f$;2Uzu;Ap3qCQiDO6 hZ,cE mcG R; -엪ڲ/L#Nb K I<ԫC*d;dFI* -r!T!r GO$*)θ\YJO\VGjd@$h/H{<@y1W^S>M)5#td4WDWTNs%[[S.݀^m. Ko?K)ķ,B?`e[z{}xFIU  2f?Th2+k9qJ?os(p~PA*ȊrXWm6g#d1ؘY ERak/:R*!=3 rxӼ?Ũߣf^3yFnw O@׵d] Q2d7`|$֌1lZo&VJg huB҄e 7[Bqg3ih_D0 w@57K 0K`# 9Kޔc )ߴbaɧ޼) /Eǎa\ַ&b@>ATP삈BPk z=sC7:d:`vNMYoۆr duмs>|8=Y>bߨ1u^ yTR䏕]w l6 ֌do W Fh=ԀUɤnoi\^-KK}?o ~:s\^5Ye!7@u-V._WJ@7?sTPbixGCP ğ OSlW0q1oXh, Kڃ 44 +Wv\|~f38|Vpok(xCYo/; ն4%CtGB2:a7 \"A8<&PdنiddA(зpTqS vՇ ˖@aʉb]]`׿׷:^R5c:kA] d"-WbMgAe e6Ʒ&!lu0RN*bomqǠׅ5rrQ1MZZlJ+ĮZG6=Xݓp-6?.~uPܯ3 6*#5](|q.=X!vIǛ۴CkaҖN1;uiU }5:cpid=LW|%8_B?󴯷(Kӂc`Dm\/1Bj*t` OCڊ̈́@☗K={&MA${}l`ww@}$ r麀ĚTY0hY>07X{|C*Vrt ?pk;K \TWizs*}L5#Zr:o[Pj(, ? K2w'RFH -,r㣝Jq3B d.קA >Q&o`:J RCN N=#釅 nV,wn07ə zRmrHs@Vi]nÄAP8/V~"Mr3p`РYw6&UjLŰ\XiQ.R$!ߛ-`Jj J#Qo d[5;6]9RH*UV9G/Wa qf?B1o̪&?VFl#cWN{_ńKq9gzK1fd.ܐ5n Quz^-P9"Y !&PXXpzON (xp&GZEgTP0]JtWU0L j$ޟu$8H:jkkhQ.Ql_ 866e8e:!.,aCkVh0I: ցdF E+4b] B.^eb0C<pB@/ ΆMwj7?Z6HJPE WطM"c hFDKvRIDK0fOι~mݾv7H .O~F}ײq!qhZ]qnU:ܰx[>y >?hl J}xtqU5khqn|9&b%364 dMcϑVe ` Dujil.?hsҶמMK]kxRXndriyG=(F &y_3j"]rd"."㥗M %V[QgюQ!cOY;ĂweGhM5&Taa@It@K`fN]G{UU0j#wP8|s +Hu{s+ 1&7& ϯ:3VQ]5q}EVGJ=Խ"qZ KQ4NUc֦H{>W % 㐂Ye =,?t)f;("%5)b'a7 Ӫ_p)^ X2[:Z)ĦtP`"Vuw>"xkw/z bq,ݔ8I_ǂ1`^"VXMB(@Og4/~^7/:Dj٥^OD)]olP#@r@W 3A:!a&V("67dHe>E πSْ}ܪP(q`aۘ\)@: זͭ% @fA7'" 0 YbYt㫽P:w-tK&@DΐgHi8JN̕mI*[97{-߂o(!jA=;ޟ fV֑Uc 62yͮÛ-ȶ`48vzy0m9=h 8èAfPC6 Sjčogah٧2,XKFöTawR@d ijPUF6^jZg (b= ة42Y\sb2pJ|E7m<vM?:Хel)쬰t8C rA<;@KLy7=>[(Ha.i y.<ږ8^d/LpNBjT)rP@R4sW`{03$aVNwy7<M>_4iS*FAPa?e$ra +qi#[1`1"߰y@tMeHx߮qvqn:p|?]'9K( 4QoEB+|yz8SЅ@[D@y%y)d- 5`RZoOvJSuu ,u@gƒy<_Kx)t6R Д|$"]Dc1vi18uA`؋+X1Tʀ=.0p@@}_It%0x2=S"ZKH9g B@a?1$FLCw8>!wƺU2yZi8'SKOiQ]32p`r s@ak t_'u]eP؉0BN7yB&%G Ul_KH4EVޘʔ霠yC$/@E2lBo#M6хJ3 M@Z%hC_9p.FZ$Ԯ=DJ/xT)d=n9f2{iƻbdI%;Z QJĿHZ۔Tepԫ:uhc!|AX@9D?,t +'Cj/:p$*PHEyM T,<2& yozewf)G\bI >ݞ-l"9,4@MPWjZX:Aym@BAmsхI\] 8jp%?3!}->i+ FX0+0#=mVtw(%B%Bwo>M&3L{0!Lep ) Rf6VWKC.aD #^a9BӀY |ͻ10J&L},Q0K}Bzbf̀BH:3OnE< ߲% QlB 0r[iJQ3#?~aw&vI?5:Y۴{$+!cagর|x"D3JQ@񜘘F0+ ZhV*=Ĵsf5YE*PNbr~c:֤вH1M* F B5pZ _Oͻ??U֛ܿSLА.#f]{W_n]s7eBy8>ZY[#2᪥bd |c_QW0h[4dG @Db &qh:W+-s#aE=& ʺ4j @C@R dH#*lx N 40 &$щi8FhF(n3jNO]d;p2^yع-xh| :Ou ՔL) $`r\D= `XS^tvV $#6p6,W"pr^#RZn9<҈\֊Q!1H(*%bODQ [CKɡTE8F?njyf(4ǪyIwA+<> A=AO4NpL}MGoCݚ6Zre׀YzLSaUmaY1I֎BzbN񏍎*ke ӾD'O6]^hSWt; Ƚ[R9؈:#6 =#n]n9@"Tyz±=` &q(dW@6Aҳ cG`g-u3dP`eBA!a@z}0s;Cb8HGx4{) =4^8~E{j|g^(:eEH<&fj4ՙFT-~i;@<@s. V}~թf\Ma:IxhUo< UcfЖP'Oo j[x.G\ؘ2W8\8=Q.:!`%FKa ђY|@VRyh 3*un> }f59wChk{ 8b1h1#82q&(Rʨܦ:8S gD @.J~=[ dLJkӐY\C-hl!{,5ݼɽ+ꆾ'Ώ0 4Oxv'eW0phec0:L2`ڴ @j҆'D`2f^tӹsݯ PYKFD_Y>EP l Ըx '\g%Pƥl."sDSƸ D@{7Af%fAQ;e{Y\/xD.!' U 8~r4먓2ՖIX(8ioՏpuO썮]i ];+o%& R@L<< ̸jh`r'0Ķ WxoA%~vho/<,HE,2a6u%;|<)poXJI Dh߷YjBaYHmtPi#|t%Z `n+ D*V 8N\# x65^+*h@P9h)=oA{\Ϟ a x-soitāv >|!$j&E8pQ""0@D@3A0YG( AH v(9r'NH|ε!Fͩ @#n ְ@rs|0@Sd@h OvX5eE T,!td JN@1@~@jd+1#5`#g2$dd7iRŔ09;2& f1 A8:x T3sX7"2\V8%LҤiuPР!@vp¢F@N[m@(qB(qP~#I#@b i̚29Jqk| |dԔ6P B 0- 2)  k"JJ`<,:@֙H$خ-hiDgjR} $9\NOE>vˆ>PO|P qނ0rAŪ@BLI (׀xl\x1v ="`Lz16/#EE, CGsj#`- rMTFѠ5KhIf E  q}(VZ7QPHd}Cod:io oYd3#'bLU}`?ǀ\Gz6?\lto0!Cd)ʯ~^~=6ɏJky@\?|$ Q&G!1`) cq04Cfk6tmx`υ9T+R–k.VHVUtdՑHH,P&OFuF2yF Nj;^<_ xDjœ|m_/4΄߯1/K3_e Ny/ G%ӓ /s){1|wpPMʜʝh13H.:F뽞ZRbڷ|V.ێ4vk(*=Яa]B+aa˙_,&q h30*+ **Yqs¸}^7䢶sf 1;7ax``{,DߧsAMGk9sB+}aݯ!DTfsael\ ^(ؐ ȿ ZneC6 mJ-lʡvX 8"EA>q[Ighl bt% vpH뜀H_Sd{(˴ۇVC!'՟DCl`U3ơqCBAæ )LL ռ@=@U(" L,Ps  ȡ,?ۋ  O~ {!fS  2:4<)!a;r@7L u%=mzZSmP>M@0?=@z+y /KCg KnK PE0^ 4 P?ܿ6coi^  K:x.&qQ+Bdt6>m u,BG7po2p~&#H Ly|{J󞿘F[鉑,JKH;R `/, Z֧X`*} }t8BۈҞqK71ʯ9eV, )|{)#u'/:dGzd0 h$L@g)" KPCҀ'µDJֹsQsii¯oMYJlְe@M`]aC~!K ;Q7۵ TYmФ۠/D@CbC. *S? 'd =' (: N;! *܁rJ!zY@E|$8|s(j3d8j<'LTm8o L) 7_0u؁AQ@D撕G9&#? w V "鐅p1 x{{].9r`-kx|~\b\9IDBTI,-;x'14эNx: Cآ#|PP#H˝D:v eu? u ["H!Q=ZT>H_. ӐY:H#5P P+Rp%?#"`P ZJOE2@=@-㸖P\= ID}P @;BRͬ K;m= Hut ]9f Zρg7v4ADڲ5$4՟[Kk+[HtׂI\pmU^.z0  qiHm!< 9@; qR9PSPOқ[qy>5TA0X8xÔ{t*meqڮ0Rqm‰ո. B4m]!9ؒ-m>~@Mo~O~6LO=olKfaŵV/ob,nHup: 2z +3&Gp HO;sAW[Oa͕$;`Ww @ Z! g[!(K(( vggɼ'S1R >G hJy%q!Jqo:n`&~$bD/SHF@#Hdd`A":KlyLD-JVIA (E$ڮ5Q8A@?] GQ G*=G`ڑn%jKdLn^U8q< Y`1T<_#Kn+?m0h p (P"[ONod{C[I@Zst[zG>!UڠB) -t"zq6G [6ttYLml?d@dcM(ӿ7G㐇 =WJ`B@8(}-'TFo~nNW!?͝OL%#$gwp@ [2фLi|] )Z}h,N d: -0*&? Պrb@TW |0V9(B^@bqy4kdX)P@p@!g@!`;B0!p P u9JD hY*8p9,@-D8 @Hl(lBEj@䧔Y %Ie ?t<6' sV jy*P;À0r ofO~ nM G \/479h o8%\GmvX|tkĕ`6("mo@ EBL@nK_@v -`"ZURTPt3`$-0̀2w&E@Xnf &%651<ܼ.`q7A` Ձ@9x|^AgCJ,^%x?qfDK@+&9I*d D Fa3 `0P0[4bRn 6 cT ֩O@ijX8:iz@P,x2 M,XrǶ.yݜǔ ̫ M qX^sX"э)c+з].t5&G.`ƻ@fv5KL=RS毉][]皡 $i3jǡtDC~ #%=)Vky5zQb~P^zg9_jXM'_詌`WvDgZp ږyAP! OހxA np.J'_K zI)AB`@͞rdɀfM&<,,oe.^EĦS)l Y2V})ל PΉjw|P@&Q*1{L4' aE8~w޼ ȡ+A n?B; L1Kт|ּD 3VfΡ:!؈Em k?3_|Wzc]u@tn-$D]wgnpԀ +nq@.tpW*2`BjJfrAf\ lGQ?^0(@a|;H5x\3T DXTCrh0nCg=&`D4ހX0ǑH[b < s0Ɂhs1V/U^"OX%,HM&~5SL Uހ ی(@BA=H8#6xmt6%W$P D ZT1IN_7JWM#lpML/`[T2ԍ  01`>(ct8< 2 wkDY&1|)|@LEx|ÙC& b+S澿0͘z41@2$89tz|4i)۷AWj/0ar&M:^3D` C2R5߭ .;$B#9AtT V1B` 3t/Nc5C % @Fu dZ`w qy U#wp%S`D`AS  e0'9B <k׻4 @`W Ombɤ@hFt#@Q XuyW@fۀǓ0yE&! v󔩻D, t+@A2HzI kB4TԹ@Pr78ːjA@ @."19k# i!/`H8@cMu^UΚwgA9 Kq:gcDiI(cSĔmO  OZ}>_!up Qjֹ ,+w"ŶMJ p&=3X;.%^P:X ;"AIY] ᠔"x9J̡ @tʞ614gDE"x~3i\,GIzNĕDҀ|`k]#tTȜ{ %Tk{D |2 ݔXM ~VM{bw?v}m` 2HO`|˚^h߾  vD; lКꬖ`T UBcm8L0RQPPP\ `\Kt nA:xg@g4̈́ Q +B(%Yt`9@1 P`5"`!8$3z@<@F5sAg_. 4 AvO,3LPJ?5C t9| o%A#)z*Nv(&(BUj!b ! PLB^ N h@{<:&v*.H`EIROdVc19+`5 ((( 9&;J₀2hph9UHOořݨ@Px eV`A`<p(9I14p)t҅DV,`'x6: GG { u1j0az嘭p2 ꏣ]L(6?ܔ~ @]!nP\U.x,,p0BJ6$amOhqa *}KFKXHqHnHʁ:0 7h A]`s`WHL%D?ҿp6E3O f  RLVGpM@PIQ@0ׂx<[NGdT ( 0=gH`2gbPihh9lH 8 GXcG(#@%> X @@J"P:9sD6PPI@8Udm $ă5B(-׽@4B%ƳhdjMO@\S`P)7h@wv` @ p&ܴ'd" @9@  8& &+#l`R1Il"H@d 9|@p^6rXW^B~VdZŒnUC1bw8݃,:Q}ل,DG

      1 0`Hϕ=U<Op7ɼ f\aKѠ(&yJڻ ZhĎaAÔL OX5-o axP9 ֱ%  ,1>~N6Hq!{ Y'ER":!qPSilu,ńD3<s @ ~P_}xե2\#@kE@ sr=z  Cu"4 @4,;=v0z;IE` h Cm2f?'D@1"LPL_θVv+ Ő9%&jKH1ϑU'/.˨au>e@V i3@;7}J01Nh{!n'x"@lv"X  (gYH@gph3?rbJ؁ tQN5+bZ &IyLY0r "r[iRrG$(AIĝ * YPrHg5唊qF3zY-[,NYDdc"8F.A1cP ]HUQH34pmd͏@7uz* $feF ;@XvlDDh2¬nIu%dBʀl.[LA N&6[ɫ}p_3p1P hT.-^3 e@;)`gkKv'h{Þf,=QŻ@].p]yy>@g_  }oxߨu@/qnmQ$#/H-,*[hX|;2ewf]sP }jfhgGRѝ!€wO \Ll |[/q 2[Zpi My9 Ҁ󫟺oP,XZ~VhA(e@҄fbvR %G(BE!cXe^jl&5 "B <g0Ė:7e;i͛کvjTb$MB;y0X'99ɤ J f 90MKGeܐ 7; ̰SXbDY9|Ij90mbI8(&@X<ϩh&wZ3K>UBru(l@ ,wOP о``p|_W[P/0)lÀ8KΜ0҇W0H= /`!L4@#|/ 0OI`$X ٢2FDc&&F6 p h 0'%j2Ft,dhe$JVBu-RPFXZ$Oe'!jo 5.D#it7bE<ȌP o?t+ӺGM,Icj6'D$X\f"TD[EK{ġҼ.W\ ժxY.$IDz,ZVuRhn}LDڸ88ox%dthSD HDžVp GAI|Jt@lU2 oE\ W9K|[\d(FQ ֗Ƹv4?M-y=FhcICyT wP^bPF|dH+9 `>Ic€=t-,(I)#S+9`/ 35uTH,*#T7فxx ך2$Ptpn+ue9X^$#i_e8 _<`t;`nA{D4*\2x=c$2ipAP!e $e`9>ld8@D(j =Y[Z̀O^^Α@9]j@uFw@t]{i pH4y@hZlDg6_ݲA_"zk k^AAe:;~O?#`L%Ps ALḱ B!n?Ujm$b9` Tpva@荰 op-8#MAHd/€h8P` Nk|9   t+ :)FD+  p |qʋ!,Yzkx0I  5 EpȦa8U(Hx/lc0 6_(l-%@DYCV*@֟9x{gdrL6Њ+r( t%Y# =pX  3nh3A:;Ϡ#7S?ܷDѠ!- ;Տ`7נ L /L[i+x L@.ZhLp&fF,0iiI,Ld4!O%8 + R^ ]d:B * a @&M!DT`&9)9dH3^ <7W,P6p *}@3C "C dfb&wFy|]2!@%9VX*nt\x*r1 IuisTxrA)dō="#Q9Ii$,3ڈ'ʷ#;:黂~ (Dh/f"6$;3{ H(!KQ!Y{b칮vyaw{Ӈy| wݪ^=or;ێvxjvkKFɁ%c wh@aM[nO@(΅v QQIM J^QE`?sN力9aONAHZШ=Jn CܟXSd0K2R.(&'Er~0G. ´_\Ƞ:thJ-M娇! &q_}O5ZxbQV `$?%fE!҉?[FJ1r%RVsH|>x|j( R6؃V֌Vv+wxo n] Zح`CuF?YȫHHIV?q]5%q9uʜO|9<E -YGMZcXU1 &@Oɨ*80|nUZYcc<`CC+&@`8yfwӉ W! =8rO&| %d9PȵNǥXHwsb12N 6@sNJf;O})j.@advW|H*3to9yv{F2#YIˌGi<.&j+BRf'*FT0p\\06lE71.S :xV_7FAX%9C%.k5E"d|őfg jL8V\"dïYY,yvܬvX.-slP"pDwdܣD/z4v}j@TNhDE7:;BR6V :S?%IGl0V|ku3y,fn4շWpmېN _;̃2weR Q"+ ֊E?S2 t4*ZBwdkĭGqdH` Ț9̉+ =k! "[ȥՙY ` c'0 ={iC~s&;mG!-Jn,wy{g1ԗ!zޢO2qؽ>ɽ7g׆xmqHT!w2` ,Tz)"PpA >T g ?eR0a)>|wg&}(w2h%txԱw0ĸ'4BUݓ ^b~ydd_m㫻WrU(oLQ#qzxGԔƼ14oYP-}gF,5RQ$$p%8FҗijN Uҹ_ |{3wzcZy(NR8w Pr4s7M]`t%DO@"RoqHJD«7nhTBRuֶwU2/qĆȓWux%yxoL.NUٵoD}  ͐d&&1 $On,SDr"klxA'7oD'2|fOݑ׍O'[[i:P,N £FyΘ!P/oqVܰW-dب%"32UX$ϾkSԉL@=EՖmz*S!Y^*II*VsfUrgӐ8ZL ZP-0:ImE5.}4(m󕡫m!ܨ5S8:ZQAx bBh֟-WbPCfm W{dvBBQ) _ ʉhuPF;p=w <2T@4lD+ɏUxڑU>`' $[<$pbYʠq'VՃm)I9ٹ*B- /@bY0?>OEV /6 z {#}lǂI|vȰHњ:X~yޱLȢk65dNCASb6fI;=  |722Jf؃ 6 No2$p1~_x 'qB η4(s&b/= :B@,!`;)"/ڻ鴑ro),|XhRB/|܋[hu}mG?/ n_JỴٱd;$QK %#6OJYVM`y{o@mrM,R`h[T]( M(` )6pCЈG!}a"RwL9lKv[d"\bg. gH1c[{dy'|jK"8hҫ:+mz=#-ǓtxkԶg˘#߸ |(Z;:DIN2>4fC8b '>N4Pj-|TsRupa^f0S_EBo pl- `A@Tt@` @>`L@//.SPh)Ko<3p jc3˻cY)!C*P!`g2HfJ`]Z)$9FE~^ f4QS%`O{@ /R`/{й ٔpzC=ԾI!g^^i"[8/Fw; ngi!R5GCگݪ iCRVow3Q_լ ,1w:AjϷ > I#n-P,›Ƅ&wI2bSJu,K!x +npݙt dLo:pE.25#򆔵j 8})ɸ\ .G]FrOo;7 {Dch3띴ϯq"r+e{^kB)7pd&.4V o  ms^7qaC#RjzhҠN bḐ>ì~~%G隄98 7*w_wQOewA=$Tm=`G0+ tS:<tw$ٝ~ Ѭ܁n#xyXLgBI41^3`Go-I@jpŁA^"0O,;g-J4Plj0^L|~^?^OE wNH~xQf% 3~I:qir|hQ9HJNT[82nNKCddz-P#)tIVxm[ `1G wvVy-zBD`2Cf7Bp9!R"S_ꮿVK C-̲_Hh)U{ ߿SRSR| *JFh!\} ^"r`jhHqm"/Rȩs;n/zx'{Ο<-`):NB1^)p6KReqjNw#zݝ Hl} IYe]-aE*aUk O)刲 #9yJNnPXS= i,l>! 4^&E88,N[F@#n7?/ t籙eBRIJ 9!.7݀ Y) H--y1 YwMDwNOm"ObOF`4F'OkknJ|/]D[Edz]>~W ̓N5~DA N0 P'RW@`!ҕF"lg~HRӽ5:wꧬ̅GgTAQ2mP(}wDBEoɺsK[#R{ AmV<:2nRڝU_5PXB_mT+NVS &xCIJA8# #'/}/g+Q@&78S5$ P D@ʝ/1`"! !Om^0+)A:C!t$G=`BR9=専5V]SRz恱ct&lV9NSqcVsjz88ӳCb ss>Fx"V٘b)Ё 2A*_y1f۰3*J*ğ=*x 4  kw:B Jᆐrg.N\GPq;|\VlsG;n( uˁ'.@b ~γ''5.$-3g g  9%Yhˀd-N8m~ #_g_Bz>k n\,aR^4wegp uQKpOa"߯ Q⋾rD]cŇ;s`) g d*zmx@3 @ zZ|I~.3 (RX[AR= H%uyc77zm"iq:# Z8EjaQ`3$~<xtS[T(wң!tT&UZ8hz&[XCT@r5;CϘ?=rꎼt8#{Ql-OvUb?aqJ'%7 c7'Wl>}L}~ˤf$&ÏA a0l92:kN(j5=K/ Enw[?} PvnQCA/>7[CjUH(Ah[y 2HzݓVQA@O8f]N"2bI8*TN٭~݊<8ʖR S͒\[M{rZs,O!Qtj*`&|>.QkL) !z5%\L׷x<&W;2bRZ8u~6FSEbOMTkVU⸈\&^ sRS{u?((y"HoE-"(K:@Zf9ȌÅ1z)lTlR }z2HU[7I_F;_څǞ`⦼>sfN!;uTq<ْ9z{ @vPhd_1@BjLCIP0Unv\Ѩ^q1$R(wU)dEўÜE SX6Hݰ^HH[ႇ.!1rŴƨxUof~lʐ*ٱ[@^J4sƺN6'<̣{sKQK6@O!b 2┠k?*GJkh; =]{xZXdNV҂eo7@)$jTF^gisIqRTƝ}tP'Z>?-LC0 pE.ZQHl?޳ \㟩%tq(EQQ]U}҄J$C3U2 sVfF۸7/g㨋YTW4Ap^MG)Btuf1#ȩt%[Y|!#wh:tzڲݩVa3+;L9: p!$lm׵zD-m8aF1jFJ{yCvZ_hêuU>JC]_3.E["IzPˏdDc?+6!-Cx$4P>Tj+ ֱQ!_ rͼfn,76| Ӑ)Pj,n&~:ek_mq0)8Ӑp vzQ9J-b+&+.TWZ׽<Ѹ-) NoVfg y~M|ǻ$ZXnr{B @dOh |Uf%H஁napj+ I`%Wcfqw| g n2lɂ~z߷qhef@[Gh뀮i\hRлH0xZ龤N9YvAUޑRG-[^lt`J}WDjr l3ggXl\:fY|_-r[x7$hUXg&[:t,  \ݐh0z#2\M, %9g1& $ƷUVjL.nٓ{uZmQ|304dnzVɕZՍiq5&3FFLL/#]/qkeaF(ޛludKsԚk" W5xX-ǃPl4Jym8Xh yJ16L'EQz@CF +G}:qNdx"^+HоU*riy륰v/Dͣ /$) t3pmH \q^p~Rlm7[B飡[HZ ]{QbrU_^AT(]v瓐"< ͆ ҌBخaO!DΆYeS.gޮ.vX8-L+u Hem_OO ߩ͚SQoC3aLahJ1ԥG7{bBr}AkުYR"oOa1mHtLtF_x7ug`%dOUjz0ؤ +Ţڌ0*nXI3>Ph[b2AP9-Wڐc9c1Q'! u-`?<+.ZKw .1[DQZյ՘?3T[Z¥F_AOf0Ur$x "]M\CjNN!s< ]s\Ilu V8JPsM͋.}-N$Z9#Ι:+U~A30Ӌ(Йf\la/r )p)R!3q8Jέ ϐ sfpr~- ^Zm &8\>|eC O eАu@m2 `` ^c̓}I*F g&:E"p8bLˌ٘Nq6T6wV=f^RJ'2ɘݦlfU.O"oծ1QDP4Y@J7_̠t([)K 4oj}t0\8oM83v@].d8 G^rP 4"h&s}\}\}\Eb``^ςz\R 6< y9h&ymdƞH 7E5z)-&}Ĺ!MRiV71-یʘ ATBo%jWIOX@h5ox0O\"s @qOZg@%V4G as"3) .8T1:n Ym0fA)0'ARdpJfu7@e*N 3o -&6 v'Mصx4OnF" ǹx:pLul膈u+ddnd5${; AՄa-€EI"N+1j2Vv ˋj(cy;z1mG[~):˭K*)`M2KjYQzu?H+sk?7E3E,k 6b1Rr%UkPQ2`9s1F06S:¦i@]u(HJ)89K3 0 4?3#5pȁjM bugXjDρ(NsJ 2o}8YjVa)N["8lk6_=I,Zr|r` JɷWF+!S$f67 P_$҅},  el:r偣i:pvpNHpJpY7jAԈF 8z6[T#ňrNJGՍ6ЏoN5'U2Fl43qaTt 6Ym求=M8Dt|w9 )es7q K*; x4Kl@{` ;7|M=.MJR/kR^0;.<ޛZFL >B@*{29RE؁ H«(P"͠@ XKh$Jb|{ʼPU1ǍL9Z"m@4T ymxo^8?%W;iz\% SGQh-50Nk\\H 9_94Nltk~<'s=4& /;]pb֬Wن@Q!io@Rf݄B Z|T,2\Fx:ֲhD:Nk|8Dƴ `X ]kYIRCV21ɽDG93/@I?Q d8`[JX,qn@ie6(,y|tX7NKDOUxitŏ5 NZ7U\$?0#5 av1@ @hXǦC{Ь@ i{䭊^2Zʪ{߽(4'` n !N 1 <QPyv6<.SǙz2 Q4"F7NN4>I07*@ev` w#SDZ\)Ha]J\3!~pQa3.8O.DZίKh nV{m Hk~ذdXJVjEp?@%M?[ӔKhOEhmYL]6fb7Д2ZHf*zhp_Cv YCj5WmDX|eH0PJ_z7LS|fy/a8T}h_\a[-*]pn?lS|Yj9aGвb. )YHM$w7u2O _lTMy_$$<dʚM<p_ݻo e$9LrK+#5YJ*X^A[z($Ha//XyX!)Ό_\d ]̲6ܐ2+ u?iI(~0Np YWQiQ9\칂`i0ש)ɾ[&DY "e?ϋw:$OeR?`wd&*{#ȿ!=yA -"7,0*ٳo` ٱ~wvW!O",b :cv[xK/eY} 7iH;`b&A}Pʲv7G*#f_Ɓm{S;l948Zc-,_qSXؗ|gfFqfB$ "CȚy~)o,R%U>H`yeUY UELg1F(RL@ٷFPP$=O:sj"!pdNvbEʖۖXXaHkXc͂{LjJ:Gľu&Hˆ)+qM^u+CFǁy'w9Bŷ'oP rmY>y89L)6.l4@/.%-X<B<} t%Է»LdlDp; IQcg $$[y;́ }\P3I½SIT@T\@  l| l-#({ϑ X?ʩzVV׫7Mi&>δ?y^BP:H b?Ea6^^$΁LO湺D UX60w<-_UEU:l%)pGE I=bL|`JcS$Ek3 NxH p0.J]ˬ#F\M'G] GJ_@L0 58 _*V@&Q ZbU^&%Oߵ/p,#mGg54Ջr ӚG9[ @ܑxw醸,2 } V@HQ]K:"cr}4T0 ;AH) A @`Aꨂl@fo  =V  5.bPW&LیQ\98;6PȭM?o)JLaclr؁/I~S2:9Vn-1ȸf ;ձ. sfRM$=U-(Q[\V;?ܵHYhzun~1$-ɗ5m nm*yֹԄw@U\́Ba/tQSTL-謁$5Ziջ%A|:9Ĺ-NlA99رEY $D G҄` s 럀׀a"Pe3@oOh@A <cz ;GlGz!ģȆܖ6Lq`ԁLP۳;]F 4#(%6:hY+f,mĬ[ U&w}꜓ܿs3J_݀Y[-c=Zo(}aa;Al_cڗPubC+Qo @&-(,V4 Z F1h" 2֐ *̈́] ܯH%x!pwh@ԛ R33`o&{FqWbnχX bW}5%զ$$JALa2Wfx/0-V`[#Cfa Q0`S@u<Q$B}T}[T6o r!q6O.1g?OyݐE󜝦B> '0ʼ+^ 0&$B4ћuqsA_ _pr-4s}~URhb!] dluۣxH"% .'m3H lFVȶ"tV0m23~Gt(0FC;*qӉ gA2eT- x5|;E`k`d^h2EFEO_f⺦"5IKz4wOha#u3'.]Yu- &g^E:.uW_0RgӔ-ka7rޫ20M0K y_ ָ:,\nDsi mv탧VcVL"DZ#⁺ިVDέg$A?n|XgH]HS;uZvz[TJGL~-R wO n㏆Z~lPkXح܉ՄCR[AC!L=8T}i/2,  >Ou%;&;@[)LhU5vel@,X]~4y|@.uOxt0"@'&{+s- X_&`jlFX VYdqQøɄ#Cb~y y XIG3;}}e`R hhU-АJ8T ,ȉ+ F59EĎtaNM:49p5T UbLg8wBD6!t&*-|S *V̠)QCkLĆ$`_k]^x{&:aC*.pU(wm(^N5|팿2 -t}uJ= C$ zޯV1q0|C_>;BW:д;80a5c>V /4X@X.#d̮aр( o:ÉW9 g[9 Bs0 $?M aE1 P׀-#[4 9ZH"^yx=Ϡ6N1' " Yƪ_Wp-l}ZU3 pşX;NX<C-In]@@RBs:s&(4OJxO $Iv@ <sl~SL!@uߔՀ.p>n_dxs'#EUrX@- 4 oZIXWyN5Y_8587)0 I 6Ҥqb; AX˜+l[P/- @X(?Pw΍9GEwL@Mc01Oqȭm{n*ZG,M[4b-Sðe4P" !6) s`2% _/&1KF ?zqكaY.(|OX]MwjY팓rAP\@71fbʙy10)d g{/4./zcܫ#Į%*4\Hnc[C; POh&@#)%_u=RHjT!۷ z V|p}^;_UjW~Y|s@G!2)+mHqȅl߽6:Uw\@ AT:>ZQ p&,`Ab1M@.sj$> @gdRSW jRMf=$ǢEG/iwmȵw Uwۗ;m׷"b; ;tuڔ@U}{ܨb?ڜX ]bl78݅=܏p._9h'oP'B.&!/KU1eN?)k),,x$+3'Iğݎ[њ~FwHji#Fz ]/|; ` f,|{/δ"Ȭi]q|;ˌt ʦF|yJŸ(p8P{Uz/  i2oh-B?YB*2UK6DA[%I|_p w!pFwl@SS e>LvHM5X+%`tcڮ{YA\(EPsN>Ixj .R:dp!Tk(WT$ra7 X½r$4 aEQ<Ka@Ci bV50wxn?f8_ ^7aq.ل2tZ9BoS㝦kl_K1 @#Ϸrx k[Z k +.GT=\%^e`>Xp#F;)J V͜Q{kZW ޢ45)[]v LqB&/j^=N\hh=1? +C ^N) [H~L9[;ĩjUdJbm9x6S/;cϑk˸@}8 eAPf@<&y~T b!0_|T6BSeP# xUJŸ4^\= I""lFuM/LE[&ozQӝQgJQ0TFBVs-:ظɒ'  a+Z$&IN4ˋQqÎTΰ_،rqAI Դ:?d؀k*ξIpq=#K7ً{EaXO*M < ,vQ3"@ `+Px{CNwyM}n#'=y 1٣s;/ެip{l _|p/FFhg!+;6]+KvVJQ]RNDy&+fd)Hc+R{`79%'Rv)/d6Vب jR/H(4Xbȓׁm #(ȭېSfiO[J&s8|Xe>vupnp4H!k2;ᢏvMB(%zdah= Rw|ui? / (m&Z$k=Uyd X:1@  0Kи ZHA~nTZ| 1k~U~yɪt4\>g街4eH@עi-h ?bn^*^{d سHLAZ.Pk*@|;CK$X N|h 4 Ri1B<  J@R0 ո`I,xRbT2Ãr89Ff?sj~5mwbZTLJH )gӑ!jncEx_\`N' >=| 2D@9|rSn*I;_c)Z.b:8_j<H B?E΁:H.qFz(%$(- C xg[q$ !tJm&'6'JkPV<*tWjՕzV(S>6cKwuA" ցaV{$WWq PzP.E{ @t,-2zZ[iA c.VLFq,b6y??ϠZ:"%pqS,来K!SMWpA40.A!@e] o P)o\8`B%e`$H5Snkd&IK V|rlI"lA%T?'hh'P?' qd$ %l85ixOЧal cvz$C1EHG{XgTjPcDQ!U 5`.eLn~gIn#Tf7z@H=|=8IxƨlGjrB$* xPD]RM YNxąQ!T 4}['|cۣlZV@*XFVZ9ʲ(B.j]'3` Ԥǀ2zQE?3ЋΚ?~<|FRN30`5cɼ m<)M:Wé]PSBvyi0#^4K1e=͋3a @B BB$*[m;%7s@#ӡU ܰ^K@d*奼e@M)-zvNsg²,hHPDK<]elp o'qND4w[KnGp)KfDTbMVrla{ s0>l%#D׽ "5U>Vk\zQ=BDep!EY*.ض13VT ֳ0ƞ*3=186wh'Ey$=,z E *jk 0:)fH7T`ꅻӔܙ$/v;RNDޚ n^SǠΠ0hq9on" a\?%0h=Ce]c@vx2>U iԔ3 {Jn9~@녘_5nl4J>#h+9JREl^`I·ei1Z*ູ˷2@ bS_>]Nag` 4䮭1h϶aE jTmގD%?& Rus⃉r"-uu[+lb. ܈>~LFJ2z@"/]0瘌AW֓ 56ji~Ӊ*C¬@X&oG79`H,6xr&wIMn[yT~˂ݖ+|( p µZOwrȅn@?'\e3R cykcUed l#P+WI$EZ&ˎ2F2Ѭ#&/1Ny|C?/o.;f&v>UY{\K` @RB nH.%ZYd$m)T ;?,Eg#,H @+K_)׃z]g)a,11"!e1n#ars !p@ ?12HuGLkp٠CI-B2;R~5D6+ ;z~ۥyKUF 0/efd܅'V$ [uըG1u,E<+ 6"1l;V\\8jZM!Ҿ5"P>cuh* lMEklq9)D9grU`(G G\`"j sh &- 4ܠX=0nRZH2p v ,]F5g(?~Q}40C5AߊQqH2#X |{CGN Qf];B6E$ЦCImOEKg HnY]MS+2I&N۶C!@@ !s:D4sǓMmX؄ĺUQv[i|`ܯݏdw{ ,['i1[N4 ƟG . v>N]39e Xh$H@2dWOxiU:t 2< T;8iSƶͫ Om~3x\ 'q*d_ $ @4sL09 ũ"ɀ[uwѳ?b_(j5jL#ʆ|H0)\,DbmD8fQs'F >m KHjaQR*\*.A-#.ul>mdoƭrL7{ ҋADH=o WLnhAH F_"ֺ@q0"e2PL&B3m 47`]KFnpm}[ IK͖[FUnE*5 .-d08ʺO: *!uaCW XTdq|cgMUzjD5#\&m{Ѓ??Fe ;+h|.ƿ1]NPh]d% }J5E ڎk8(6P| 2ME 㰀A,jSn=]۵^]X"K` iVo#V۴ T/JDKʚ$wQMLl<(ԑ;H مBe)D n5Xo=tS`l8 R@5UGkGaiݞ6&X!a( O0 ,gv`3w느(y qop![?89/ i~ICô@DPY)(SР<瀊AŰ#@@ȴ z9JO6)w@= cFSY?"NpZҐpWOaTW4Pڝ%r7\Cqoi%]7ӎL4pX'{&0DmNH/I0E{#rB2_kR`h56œ_ {M)?X'cyLӳGIQ:32~Z AfE HO<ّiN a)uy sf 4L,/j'9Hޕpb^*LV4n1ڰxɒUG 8q"'b;6EdõOF2pq!E:ir?maʹ}MP?_$t Û3wh1pkJwusfnҢd0 bQ~/-@ -l`Bdj '\#%?! ''e'K\L,I`^o"DJFle2H{A@ Jx ߑEnHᗣ?pWD `%x@~]Sr-EA ]FyuxS_!yӤOIJb<,=}0|iC}aJFz֪VL2 4X+V*4؜R _? ! ^W!Ki?Y&t~ BL !Bkpxlwtͦ&:t%XI09[z1skbV`LCCFA {} Ϧ@>!aѕ yUzrs2'5 A7q Ҥa5UM&m#=%L HH.k#s%Mp`y0F@C#˅Qeޑhcl=zN!`Lbs Ps0b~c?eN^ԦئM3y=g&WI(v[?#j? S)e$m4m&,oE+~'bNTph<,Otq=[ =_ TZP&X!<5;e n1TsqB픪{!LAO6[ڙn=;ƧWWTֵYZرHUߍ_X'o裠 h@@CA5+$'u+faJ+ DGL"ŷ&XxT?h`n(d%ϗKF]"п_ >!6N+ \s k뵤< :^ciɰf5M7Fx+ϖ^S!Wpŧ Vl1g30oTI&1&5LEȠoFF&! J{rxX8H6 9@ fI0!8g~s r>QGӾ/] p^kSXJLWlsiE$pe+,ennvm(,3 ON瘺 2Cg/U^)ASPoSJN htIxDό5I:LaÑRa)_Lx?cn ?'aY;/Zi}154oJDo #N8AXHYHP"/ r sYljdЖU XRg,P:;4${O? hKUUq"FǴ@s~yu1#G0B66q <nI鎙xǁ]ϼ vweWir#KdA`x,^x`QUx("6]h+9Ek;&oa/G}(yqVQ$h]޷F$Z##s*֗EDdȤXK&/n`r%bSQIxHJZє[4g]ēkV@I'GPM4% ECx|j[ȁv`H,L).}7@? 0\M[h-fBkB!b Eɩ`FZIvU#:ʫ:,'` 7¾aWs jhGꎥ F܅VO%:Xx݀ ߹|Z̫YH1C~e Jq/d ]ACeBpS֞ ` tG>ri{ Xe+wM570t5RvҧSvpAϔJ.㐖4#3ˣ8Ӣe<#ZxWPJ π4@JX }YO\eXT!"gOdoU@)G 9pR1X-TA@YFMq {}:v +,ŰC*HM JLn֞2{6vvpm>0xKTDh8`.ApS ߩ3s,íhVXPVP! ȗc_ ^zl]ѧ$`΍:4<ȩNSi$)KrD,#> 4ϡnzpq `ykmjSydqf^8-@CL#r\԰etF\(4j"A{Yq$B1|k$a8NT`U:]Tu5[T;qr(Hm*X(cјH;gitgRETD:?ڠl Ւ6cK(.uj/ZEa.HR79zF'/Oʗjf7"`+xB+@<700mJ&Աz:z`=ƨLbñ|px!D@\׫fyp#56%JJ 'd(߻(Gc4v"ZơhtfmQjb([iaHv*|@-U,u')p "c.꬀L @,GI`L:~ 䃞Eqͨ&w*/`(M Wj(0ACJY/wq6Ş-Su`f}&HY,\0ݖJ#oƮ eY +q+Ko}o!7(ɟU*kRw+PW8jU(jX{v;ghRM!" x=C括Y0V1J~` nm^` r1t*ƂB3z5&rL:\ ;)K@ ?N3>j[6L*"\N ld򹮇*u/ 6I}("N+{0k-$s%LgX2p53'=$)NzU pHPD]2n;qpg`ZY Rq΂V,?ie^,\ +‘쌺⦊ ڊ$ɚ+c`@wQ/ν@Y`#v:fL 5 {=aVPr,IZDksPb ]3Θ|JM L \rWetC!'Q-c]a'(+Whxnv>Oo0m)(ǻD ] [^ ND3e!*am4 ¬37$00$5y߸7 xԧ4~^WNd>,B6F4/0(Jo,1<95 8 ;E#smtxu@Ee4Bc{ `JUj|6~'C!<@M0 NRx=lȁѤOLNP d3 @6C .NA0vz;:z~ :n*)k@G&yR6HB|CzH-πȑ Yp=c2 ܁n"uNgxNGp$ U/V<)+A{rs@TQv#@(@f(Xsh' /nt QĚ6EC*gpd,<#k6wSK<\gR w+Q'88~DaS`?NJ;2)tJrmD{+⡼ +SZ\ZECD/!jո\m@]ʁ" +$ۀM / ɨ~-: EH;" F)U O'kݻ_]vvAΣze\s7[ 2"N3v *@,XGu’u8fUA5oǤW8pQIl=Ӯ8`9p2l RG-&s Ճ1%iFkX8As*p`fC4` A8iE_` RVA'jNv!"0* n=ɳBI4:;h a1-e>#-lZ([0N} "6VJ2 4-$:= 3W"[] S ԜK7zNDOˏ2B1o"iI1Eǖng{}(T1NLۘR''\2VY7Ҭh~t_/ @SPUkL)3EmEO oe*i,Ե> :*uE^WlwDaHX'sF'`x,9]mowOV,89e#Wf4*bZ]w@lvGL\ ւSZg`T!%G)L…c$E НC]Ih R,`-@5vwD {} KwϏF4 Τ p?UIo"y54yշݟchoo{/ # p?By YHK[6|>Pm1۵> pnuf<\ڬ _ %I8_Zc/ Y0")"T /ȴN E`Ԛs%l/ c48(*4c#IUA . F[)`ڭ {6ttide:~p2 H4:_6!l;'kddIУ(%?/ƛu ͌4@?!+rtrRu<#ST*3h@Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@Xq d8׫)*D!`m094`7/{q?:Hoy/?_o `) P_yH?H{ yH?)DVm~MIaJLQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx1 dX/7o 8FFrupo@6`m Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxc1 dX/7o 8FFrupo@6`mQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@Q d:Ye%H@0z_ 7FFru!4sKvx' L=9? o 8/TLFޣWC/v_@+q dmϛ o}qD}Q6Y͜hF0Qlvd5[)ٍfkv]Zm(i;QlƳg5A( m~{Eaђ#?5>?5K6 JIG9Cm bCS)i}BڮkvJ}dIOUϛ pxy[:Ē=w87$}Ԫڹvdz\Ccܓ) 4u]rv6dz\=yv4z3c| Ϝe u?N!zd&y=i?$Z. .v%qU-> Ź L?Xڝ9>Żg!.``x94y|=CvIܟGg;.BB?-O@ t0Hg 6b=a8e'ݡ=^.E 4t6@$H)t@_pE&S Yx}Qh܀Bv@XЏal]18P`^|7B*<tV@@(#J(1EuK1G IeK\ 륒j f P@L\;V8u 5x\F8lpаCk.ٵ5 EyDh Aɷ(%/T+m2pʠڕ8;fP23nARx'W kP>$p Ts%p@Řv~Dܘ'4lBH .kd;_4> mCR;4P. $ 塸]@?-x#Z'dF jn@* i[H _2!"n s3 "_mlr(<o/w, q `<*@"@q; 0)[iQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx5Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@Q dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYxQ dX/;d5[)ٍfkv]Zm(i;QlƳg5A-~ь6c4 Vk6cYx@K`5A#q s@b`? $%N;R ձBBaT*!Uj}U$uʢ%M5OTS*So?hܼiLL=>cADFH[bdȐKK<=cF̛LGݹȐJJ<ACEHJƊFG~89?XEF}7~89:ABCDDEFGDCDE{5}7~89:;;<=>?@ABCCz3{{6}7~89:;;<=>?@ABA|z3{{5}7~89:;<<=>?@拞?|( @ ARCDEFFGGHHIIJJJKKLLMMNNNMKT. @CDDEEFFGGHHIIJJJKKLLMMNNOOME ABCCDDEEFFGGHHIIJJJKKLLMMNNOOM?PABCCCDDEEFFGGHHIIJJJKKLLMMNNOOMR?ABBCCDDDEEFFGGHHIIJJJKKLLMMNNON@닞AABBDFFEEEEFFGGHHIIJJJKKLLMMNNN퉜?@AAB˗ʕhQLIHHHIIJJKKLLMMMLLLMMNM?@@AAܸ֯ǎÅąņƆƆƇLJLJLjȈɈɈɈxWPLLMMN??@@Aɖ_NLLMM>??@@‰ڸ_ʘצRLLLM>>??@ٷABDEFGHJKLMNOQRSяTKKLL=>>??ٷ@BCDEFHI_vvwxxRRΈTKKKL==>>?ط?JmCDEGHҡVQ͇TJJKK<==>>ض?SbEFGÃSP̆SJJJK<<==>׶>JزXFGIJKLMNPˆSIJJJ<<<==׶=>CUFHIJKLMOʅRIIJJ;;<<=ֵ<=>G˜YFGHIJKMNɅRHIIJ;;;<<ִ;?ѦHEFGHIJLMȄQHHII:;;;<Գ:OصWACDEFGHJKLȃQGHHI::;;;Գ9M`>?@BCDEFGIJKǃPGGHH9::;;Ӳ8:;<=>@ABCDEGHIJƂOFGGH99::;;;<=>?ABCDEFHIJKΗMFFGG~899::NŊHEFFG~8~899::nϟIEEEFF}7~8~899::=FHHIIJJKKKLLMMNNJDCDDEEF|6}7~8~899::;;;<<==>>??@@AABBCCCDDEE{6|7}7~8~899::;;;<<==>>??@@AABBCCCDDD{4|6|7}7~8~899::;;;<<==>>??@@AABBCCCDBx3Jz5|6|7}7~8~899::;;;<<==>>??@@AABBCCC?Ly4{6|6|7}7~8~899::;;;<<==>>??@@AABBBAf y4z5|6|7}7~8~899::;;;<<==>>??@@AAAA3 z3Kz4{6|6}7~8~899::;;<<<==>>????ꋝ??L(0` 8 <.B{C‘DEFFFFGGGHHHIIIJJJJKKKLLLMMMNNNNMŸKH1L :ABᐣCDEEEFFFFGGGHHHIIIJJJKKKLLLMMMMNNNONN梶MG 9AȏBCDDDEEEFFFGGGHHHIIIJJJJKKKLLLMMMMNNNOONM̠H#9AŽBCCCDDDEEEEFFFGGGHHHIIIJJJJKKKLLLMMMNNNOOOMΟG *@BBCCCCDDDEEEFFFFGGGHHHIIIJJJKKKLLLMMMNNNOOONNL 7 A㍟ABBCCCCDDDEEEFFFGGGHHHIIIJJJJKKKLLLMMMNNNOOOO堶M.>j@ABBBCCCDDDDEEEFFFFGGGHHHIIIJJJJKKKLLLMMMNNNONLx?AAABBBCCDDDDEEEEFFFFGGGHHHIIIJJJKKKLLLMMMNNNNOM>鋝@AAABBCEGHGEEEEEEFFFGGGHHHIIIJJJJKKKLLLMMMNNNNM쉜>@@AAABXpaVOKJHFFFFGGGHHHHIIIJJJKKKKLLLLLMMMNNM@@@@AAA^۷̚y]QONNOOOOPPPQQQRRRSSSSRQOMLLMMMMNN??@@@AAO֭֬֬֬׬ججححح٭٭٭٭٭٭ڭڭڭ٬ҚrXRNLLMMMMN???@@@AGՠ^RLLLLMMM????@@@B۹ݾֱњWNLLLMMM>>???@@AشËGQfǐ˘̘͙͙ΚϚЛЛќҜӝӝԝԝ՞՟֟ןؠ١cPLLLLMM>>>???@AشŠABBDDEFGGHIJKKLMNNOPQRRSfsQKKKLLL>>>>???AشŠAABCDDFFGHIIJKLLMNOPPQRSayQKKKLLL=>>>>??@ش@AACCDEFFGHIV̑ϖϖϖЖїҗҖTQR`yQKKKKLL===>>>?@ش?@HYFCDEEGGHhYQQ`yQJJJKKK===>>>>@ش?@^ʘZDDEFGGhYPQ_yQJJJKKK<===>>>?״>?^ɔLEFFGUʐ͕͕̔ΕϖЗЕRPP^xPJJJJKK<<<===>?״>>YwPFFGHIIJKLMMNOP^xPIIJJJJ<<<===>?״=>Apص޽qHGGHIJJKLMNNO]xPIIIJJJ<<<<===?׵==>?FdۼٳMFGHIIJKLLMNO]wOIIIJJJ;;;<<<=>׵<==>?D_ڶLFFGHHIJKKLMN\wOHHIIIJ;;;<<<=>׵<<=?_˝ҦJEFFGHHJJKLMM\wOHHHIII;;;;<<<>׵;??@ABCCDEFFGHIJJKYvMGGGHHH99:::;;<ֵ~89;<;<=>>@@ABCCDEEFGHIJJYuLFFGGGH999:::;<ֵ~899:;<==>?@@ABCDDEFGGHIJYtLFFFGGG999:::;;Υָ?;<<>>?@AABCCEEFGHHIJKLLtdJFFFGGG~88999:::jRGEFFFFG~8~88999::>ɞnIEEEEFFF~8~8~8999:::BڵdHDDEEEFFF}7}7~8~88999:::BMNOOPPPQQQRRRRRRSSSTTTUURGECDDDEEEFF}7}7}7~8~88999:::;;<<<===>>>????@@@AAABBBCCCCCDDDEEEF|5}7}7~8~8~8999:::;;;;<<<===>>>????@@@AAABBBCCCCDDDEEEz6|7|7}7}7~8~88999:::;;;;<<<===>>>???@@@AAABBBCCCCDDDECy5|6|7}7}7}7~8~88999:::;;;<<<===>>>>???@@@AAABBBCCCCDDDBz0^z5|6|7}7}7~8~8~8999:::;;;;<<<===>>>>???@@@AAABBBCCCCDC@nz/z4{5|6|7|7}7}7~8~88999:::;;;;<<<===>>>???@@@AAABBBCCCCCܒ?(ff3z3y4{6|6|7}7}7}7~8~88999:::;;;<<<===>>>>???@@@AAABBBCCBA?y0y3{6{6|6|7}7}7~8~8~8999:::;;;;<<<===>>>>???@@@AAABBBBAÅ7u'y4z4{5|6|7|7}7}7~8~88999:::;;;;<<<===>>>???@@@AAAAA@=n,x3z4z5|6|7}7}7}7~8~88999:::;;;<<<===>>>>???@@@A@Aߍ>4f3v-x1]z5{5{5}7}7~8~8~8999:::;;;<<<<===>>>???@>?抜?>b43ntfy-2.11.0/docs/static/img/foreground-service.png000066400000000000000000001154111462047176100220770ustar00rootroot00000000000000PNG  IHDR*bKGD pHYs  tIME  Tq| IDATxw|el6 %RDE@ R=AYgAOC<Sˉw4jX&DZH;?Ž[IHB>׋)g4hdسgN:=kVڵ0 RRRtС|˦Er8^ari߾}JMM0]xᅪZ znݻWiiii***J]t+ri]TTT9yĉڵk5qƪ^z۷Oǎ$95h@ժU)4tEFF*&&&+˥ӧO[eبQ# (oկ϶,e0n0`fW˪L9r$d9{rJJJ jժի+22RC999:~:$4~M-Z;pOPvm*""B'OСCr:}٣MLW$YYYڹs/WXXXsJ*ZU܏N:e0TR%UT),?WhmGV|0 ةRuIEEE)::%@0c87*/{64Xe$_ff\.Wm`n4+TqA4*6IzzظqgXX*U*U(11Qa(77WGQݺu杞n".trʊ*:~UVa|05iDn[aaa!#;;[nz\Z)eE)Sk2t\a p.덅GTY,xozOOOO׉'nS%1TQj/ #99ٚ^F U^gZJծ]jU:u3%%Z^5 %3X='NPLLUm ؟)CyB% V~.C_VKugimPW, --͚Ott<GUTZ.:u*=D:0)74PlwMֻ2V%7ʻ=AٳZj VZRXXyBEiYn,vn'(nQQ=.pE{yluY4[dPn4:tH;vw}ÇpXDFq [/աCqy61 Np1mٲE˖-ӯZ8s:Dv^ݻYf"˥{?ʕ+ VpaBC`Aǎկ_?5lؐ(e5ٳG ,7|S,-l6x:dիWC=֭[ss\ڴiO4wg+lKnz쩁*667 T͞=[˗/š0u/|l'g w}UJ $@U\Y[Vյa vosw`{8 6L:t  #tW^V^{5+4K!z{'uUW P UW]#F R`Fn :Tm۶e/PةCZ'xZ$agEnn^uЁ=@q6w tA{n\.OL=zgϞ@az=z*H"wXzu 8P0Hxxjժ$ T5(Y*5j衇ηŀXǎ;+D u1 vO+~),, S~m" ݺuSF(I7Vnݬa%߬ Vz á^zY@LӔa֋.B5nܘ<Ҹqc]tEAFiv뮓88NS.+5B -[8Ox-[o .@qqq 0k׮ 'V:T>^whbcc)Ic(-cQQQ>}"X+z7M0 CN<,i8rt{8yg 8(`Ga<h'T7!og @(ق(˫ P@U2 cJb]C-T 8+W2MӔak}RSSըQCqqqTR,!B+ޕ˒v.KִiӴb mZ:W:u*w,6{ʅl$Ikְafk=۲f >\ժUӔ)SԴiӠ[bx l۩S4o<5lذL8[fFM:UM4B{P5|MqF[N4|4no/,XTjժUACGjȑVpwk׮u\R͛7/T彴𔋤ς XWBK/CSJC>:>>dE0 ;v;..+ʥ eqGPTޕ-Zh풤JHHPZuyJMMUnnUBe0NYuޓ'OĉXEEEz~ǎSzzUF&-v?N:vrrrTVB+WZj1Bssرy>|X&LP,^v>c-_\:hӧ}3l0믒d!IwuՉ/K.DO3gΔ$=j۶$i…>}$Vna2 Cn&Ioe˖IL 0j…7o֯_NtEwy^3h799YKr=$X.277W/}+~~Q<Ȏ; 6G,ZHV{ァVZ=.ϟѣG3))ISLѼy4uThтO#"Dј1ct}I&L6m(66HM_}U+@h޼~a]| מ={4k,^Z֭?3fX~ir?uTYFa7Tjd5jT:tI~L/M6IyEFFJ֭k{n~i+@h߾^5lPaaaںu*11Qoj֬g?GtP^TfMiݺuzu)Mi*77W?$iȐ!j߾o>_͛'j̙?zJTvm 6LZRxxj:px ͞=[|" D( Z ҬYtM2E =uiƌ6m5jH\sy}G{iK/zmllέ[Z,`/>>^6me˖i咤nA/ϭ^xڷoo]IIIzWutѣ^xg .@_|KfϞ;0 ]ve>bf@ǿ￟O~ڰa}k?7|S_|5.ӵ^o];vІ k.5m裏'NϺtAGܹsg}[DP<\2DՓif͚Bwߵ3fL_4|p?c @JiK`ԨQ}9Hy>\i嗝믿^}Q޽.gϞV˂:[!g}'@,;**J {nގ-[H?}'Ӳz D(a~ɏѣ&LF#))I_|$K.> ?F9 ]/!׾}?4MxDzKHHPռysՁg<^{5MS=cǴ{nm߾]۷o׶m|:|t݅ MKBڵkkԨQ_"I?~>;$Hv̳~Ee˖2MS:jΝ;u}%OE9׿;vX)..˷M6߳gVFFF短>)5kƧBaÆ>|UO5`Iի5x`YFǎӉ'yf3yz衇ηaÆDi;oT$I3gԓO>M6)99Y֗_~_K.$ <ا[V-tM~E`m޼Y6l 8PK,0MS_.۷o%m~.tqk?V*r[y+(xb߿_'N5o\[nΝ;{n=֭NuUnb)Qƌ-\g?yhѢN곟;~rʣ>CiܹڸqCy1PΕ S9ir:=zuOz~\^z%++oԨF?P 9MjڴijҤ~(nn7..N5b5j(u۷״iOu!..N^=q7nk|ңI&!˥0eTre O_ExxƏW^yź]w>=|(bwa)-ۭ\͝;RǑ#Gt1ZjW^6uIƪ~֐B==##CSffU Xeb\Uz.~r\)~*N:zTreխ[WќLʴ(<<\ap0ֲ4׵! /Dp:r8y|z/0UдT/l9'Re eQ +ZE0R/jy:&,j⿿e6g ZK D(fDE+%]9>:2+*J _g;EQˈ@Y]qP[gr8깄B` !Bl!D"[-B` !Bl!D"[-B` !Bl!D"[-B` !Bl!D8Morvey4M9<[)5`1MS4e$HgD';#0M3/DH-8(`!Bl!D"[-B` !Bl!D"[-B` !Bl!D"[-B`bnq^Vbyd(4v*V~oP0z5W@ayʆ 'Uq5JC22U]UB7(!wT^/{$p!Cym*~ $:D0 C.I%8c^r0jB9dx9G!B+iWqDp2]RHMwm/EKrǡ(r; *d`JrI:~\O䜖iHF)t`rϲ%:'߮0xn[Ї J?99YIII2MSqqq p8;Թ$4{dg S˭0KQABa*) 2֫[E W (}#W>DM#}W2e M7ݤ\E4eIwܡロJWGoqќL} - տt”~Zr2UVM&,(HG˵k.}իzQy9rDKtO Ir\ھ}{@:tHFwHHHЎ;$If}W.I ?XaM8Q뮳X[K.O?+ XKʻ=K/B}.KUҼoSFfUYY}H`\2%{l9VG%*AЩS'̙3o>k7nlFmڴ 1!!AnMkذ5ۍ7ިKJVZ4Dמct堮]!C?=9FY"*sXC8ͻ@LeKx`oݬ\Tͬ)[r+&T˔aT~}>jMpΝ;J*[a/K.PƕӖ7Vm%}{feg*ەWj}ODDnIRRR6m$Ir\Zp ԯ_3J$%pIQnya53;/.pI:~\^\dR[iHې-{@T9\P:>}Hnݪӧ<4W\)Iھ}#I۷/g!" {O!#а*#,8~UMte&QiDuc+tKnSnSթέ)3'Ss-Pn)QF)66V맟~i߁.L_~Qrrr|neܹ3g!Oߊa雇Kj"I%ʿC^U*יnu?ׇ+ʐ[Ur%YDdzϳ4kԨQzꩧdƎ+uNa0`~g떆?\?AqqqPN˖o~a7A~_)(IgUTI҉斜nK/UsBλT ޽{wIy#!υ+blYIz7a+D"J>[6Rf:[("F驧aѨQ#iӦi۶mڹsRSSz?q߾}Uz} (s$9 f2$:;柕~:êTۭzZ5ɐVT<%eTJk*G[)-]zQ3 ]Vs>Ӛ5k |m5ydO>ܹs%I|暳 5t颈4M;h D(v6[a =s[~:r/v+ޯuqrIn0PԢґTIթ.m BQ;N=쳺r~aYf1cyܹ3.3_IU>}4w\EGGꫯBs2g!6 -a S2#2L)̔yCqψτCa[Ca3Nq|]umNL-YXa[6zH xΝk׮BϣYfڶm[{zΝpB۷O'OT5T~}wZ{4M 0@Pܒv)40 Vp`%ۭK4Sf0V(`!wCᖡ>0yiztt> EH:u$Y_UڴV:TH !_DD4iRݾ}~={r!B 3ʹy…Q&uifiSE;*2 wGզaS9%]Xs C ʚ>Hi^zj׮g"bx )Hm͚钦UR"lӫ6UmkIZ-S Q(1n[| 0C)22BRbJAryU= ϼܓ{OÃq́>Hl٢۷0 hB BeRd!kgKLL'|b{FCS3Djn'YYAfT~%$$رcՕW^+6631fni@[_=H9 ߡO"K:S 8ހ!DK2 V 0a~ h p l!D"[-B` !Bl!D"[-B` !Bl!D"[-B` !Bl!D"[-B` !Bl!D"[-B` !Bl!D"[-B` !'D0  4M vrN<|8h` !䜠s~c)JF /" z̅928񙅊ps܆.*"ϕ`Բ]2 Ci'Y<د.K:XVjj222MENH穤lTD0b_gdd(55UYYY;=gE^nkǏ׼yd}MbccYyv_|O9j*-]T_}RSS vuUW骫W\ ."xKKKSbbEF]eddhʔ)Z|ԩ!C]v-pienݺU?verq쿎\؟z7bŊ|3O:vڥ#G :;v_~ѿo_ ;[bbnV4h"]zEٳ5m4k[nժUJ> >k4O9>#""v[lի9'α9shڴi2 :V\ _߯} *=XB\4n{8%%EElu߾}:z8::Z͚5+\aY0k,s׫F:q"##vٳqZZUjU-_ϼRRRtر6D(K޽{l3JMM yꫯNS jРN8$ϒn*Oe|r &{3lw*%CzwmڴQz*(bcٚ2eU0`&O\&/_E-`oݼ[\q\O?gZ׮]oRJZ)O֭[^zچx}t y/r9pW0wYl9\\6g>^jΜ9>عsg=jذa@qF]ve|f)G{ڷo9U/s 뮻N~U^]/RP.6nw^ ¾N%߿ o&[eXu9 LII~Q{'hPҕ;vyW^EڟwĹY{/yP\#;S淌lU߷y+^qó*Je18(L !B1W v]ՅdqV NY.ÒTIOO}֭{N ;Pa]Ʌٝkr.ʼ0Ti|ԲWτ`ݬ_.B5j=_r<>[ J"lQ\)eU( 0-,,8+e,re88@$ףSFF >/>xʲ4uqK)r. PhĖ-[Z+Wo='zjmذAwVZZUn]jJ]vU} '|ǏK6m3D{dؠpi}Zf٣4ժUK7VԱcGU\9.ZHGw]5RFFK}tiիWO Zjh'h V֭7n }Wꫯ \nA5k/Ю]8iF={TӦMua-^碼gϞ4}'2 C)))>4M͝;W5j԰^?p|?~\֭Ӻu~%''F_ڵkkg^,_\.۷o.L[lѼyuVEDDWΝ ls"8j۶c{JyYF6lÇuIլYS͚5SvԹsg9N[^f-Pe_^{4iǏkժUZv8lǫCի6QW/#GZjKԥKu!l٢[/q~9Zn뮻Xγc_Ҵn:kyz}>Dž?7n>ӷnݪ=6l`}?x~y^tEҥ$i۶mZn\dd y}:tN<5jyj߾:u?oV[nUrrrssUfM]veꪫ`Qv ]ȯEŋO8.ׯo}լYVK`111zQ\@bqir2MS999;wnڈ^zϴ yhO>D#F0[|yЋ 瞳*.!CTo6}w^+W / xʕ+5qD%&&ܞK.D>ڷotnM>}j֬ѣG_~ :XM<9d[;e\I6mjժgyF۷o/r+cƌW_}WөCUVz&NhXٳgO;o̙_~YG yaÆ;ᩧl=~t:5rH׽ m7-(Yq4iҤeYSNiڴi:ujٲeK?^Z7D3g&MÇ[CՠAl믿J*gnKݺuk)!!A?~|@qO>íms[g}~g_~eyֺuku]Ӌ/XP}\oK~;.['Нwp\,袋|gyw?b?IG$͟?_Æ ^נA}!ˠs3.L&L۶m}Y}y:tرcբE"eԤI|IkwPρ`ߡ=<ƍSJJJA#<{LQQQ!%(tpHEN~y :Tǎ+i4dȐ!&?c = {G_uexO[x瞐?R^ߏq)''ֶϜ9S>`@}rRR}Qm۶M7@cƌ  [A(BYJpq~f mK/T;Vƍ y< u{~G;!}7IyI :TS} IDATL)py[l 8Ǽ[NrK{[[ 4H7o.1PngWޟ;{ ,5Fjjj˳ӦM?paK l^۸q&L+R7|jժGjZv+4}t :TR^Gu6lؠ~ɺ0hҤZq*U|`M0gZZԫW/*))Ie4b-\0Ο?GסCf ,͘1CJ ”q]VNXرck.鑑޽jժCiժUՎ;ꗚ({r{1 CWjլi>[oL 7ܠڵkѣZtմ:useˣ7p1PE)ٳgOSVVOo/_nM4QΝUJ%&&jҥ>? *>>}ʻjժG>Ӊ'| . hy.](66V+LNNM7ݤ m۶Ж-[|*C.m?ۊv;vv3oZzu[gFm)޽{_WxxnMcǎլY/~[ӟGyzj](֭[o[/Cgӧƍsk֭2 CG{,=Xssg>-.\[M( sR5ʪ j„ >˗kŊ>իyY>q>Ԯ][cƌ$ڵKs,_޽[}ӧ{9/FcT<`VnF]wuY233:d+`ǑǦM;ѣu4-޴i~aWo($^B # HTŇ M JKJ E$A $BBH|w~{wے>׋ٻm̙3gNIJJš5k0eq+VLzeCExxfALL ƍkVV$Iرc/ ]e;vرc%w^Cxg zi'׮]sڮY;QFi~۴iC;H/elXccƍشi[>!bNgpMj4;w.J(mۢH"'vcmٳgq%o͚53M4]FEɛ:ovm~^F L*:jI!Z<BBB[wm9ףXdggk~0K,[oJgL򮖫r#yۓmuGC$5+ D/O|Wciii4/Wꡳ})3,\dY6 %VmUۥ\[nǡOSӜ!̠A!0eҥKChڴ)6l0lh .\w|Ts9;_4Jj'}E'ќS.U .]=f5o>ҩtyYYYQŋ`*UʮKeϟY9孜w$o{yttl;[gJzM-pUΝ;gVꡢVܕ:fٖ`͛7cǎ!&&׮]Crrh3{:uš5k4t縨W_5ko8|ߓ9N1:*Vt(U},6ywxT,MeLJ/'e+9Gkc$oWVꀺ[ݵWrFiRTk{9 xbdv^LKKøq0w\BѡCt;w!jrGԋ@z]s=5D1ƌ#| ӧ1w\CB&AAAǨQo?޽{q ux7_~١3dvNqx饗!Ww@BCCs쪃oubh/6E껊/)3G u)()2[YѝbŊi:x._/{HNNt 2+#V(^&VB_Vm'ݑ`f꘣w駟bǎ"-x7ХKo`ڵ'v/vQ‡J:y<.eGo CN#BaKN_ח(Q:uBN0uT\xv²eː(>{6C(]n߾C::7,75 qqqus3e˖Ȱ<;;[3f[y!7ӧ_ǏGffͶFVU}9..)))Fza#T?^fvGUܾ}+W{{l# YjyE1,w&ر#:vhc$$$k>F~ZD!羞ΠnXidpE\p.\0c6C]¡CªMV۾*Unݺu(-:.f4jהvYt&:ֿ7((͚5M>7쀑:j>rQYB! "XC;v:iiibg/Ws;̡>|:W$ٳxs!66̟ymL͛7Yz qt ڵ_~E3TX$ >fqA$I mժU7,|G/ 4Ь[y˲l(zuV͛nm+zЙbӕkvShկ__1Ņ>PzjmdQ9o%nÆ ӤQy11t} rѻ%U +Wt!>|8*T`ڦMGbw#F/-["00dEiӦ6Z5#GG֭Zj:u֭[k._ǏǠAPF ػw/>3Rs=M6!88uq]֦S2bn0j(h߾]y7iP+{Ƨ~ K9r$q,YW\m۰aÆ|E2el52 Ŧ+>|0>jJ+իM4hƎ+ŋԱ#G􇅅!88X:_Gy alݺ&ʈ39*9r .4lХKCk]^yB~al#!D=ݨW["᭷ AIpqLJJqdYƴil k-[ ˖-|Qٳ1dW]v~QQٳUP:$TR9s&F٦?[P!2d.]k/ŋmHKٲe1{lbŊwaD}:{,&Mdw'$%K`Ŧ+WgF@@[tҘ9s&^x.cE/,:^,YD%IzaVfҥcW_9V-wyC[ aҤIv1p@tMc„ 4iSJJ z-Ki2ad&G^H~Ϛ5 ؁K kt멶Wc~P B<}&s`+_j׮O>p넄1p@լYS 5#$$_~|^0sL;^sxw^נAt%OZzuYu1tHP|6 d5k>1VԌ93g4r\zu|6/]-o.Pf[f͚eu5_ jXv uY_%IBhh(֬Ycm7;ȿY3Cc>>ZO>3fü5jcƌv!dff:-GWVU|}֮]oc(AiBDF Fjή7nHL<ժU3Xb2dn݊#F:( &M@ |Xx1Zjeة @~yf<쳆+bU,SG#"":tyfҥ+`ըZM\fzUF DDD`֬YhРa'N:1ctWWOwTviӦ {⋚Q=ꫯkݲ-44Pj֭+`oG ߭Bפֿ'귣z@S!g꙳]_:Wou믿nZTt=oR/M$Il0TP&MիSOiޑ?nXxqhT]5]WuWI&c|b BW8Pe999e6T\ '2.^W"==~~~(UVB 9THMMEѢEbQ/VfVޯ~y/4&&&"!!oFɒ%*{99r$8`HM@juٻ2%~ d}9R ovQ=kҤIiGMw˫'OO 0}=)?W9J+SМym !HYXѕDW2+{s5sTՑ#NڑS-2,X]vaȐ!Xt)5>oyN^orN3eH^OuVs9[eY?3彩Xz@v4,7sg>wsMv^ tgq&Y&apBH5;Xxr]8qO>M6Epp0RRRpAjΗ,Y֭simEW$w꙾lYrS׼s>3!!rGxIrv; KGN:;w.O,٪].-Zr&lQ:qnRvtij]- O *BPwwNOLp5O ۿDEEO>vTpa 6 h֬d_3Yܯ'^93|[_Wpa<쳖Y^A w$Oeo>OްS!HA&99'bbb*U aaahذ!ʕ+/Px]|$dɒU5jeiB!NBH̺ B!- !>u fB! 0* B!0@N;?x!B > "vn!9B!B!B!`BKȲl3ʇ~!B 6~!W0Q?B!D B!B%D B!B%D B!B%D B!B%D B!B%D B!B%D B!B% \AeBge%?ui"oǯeH$Md߾}e˖Ŵik IDAT('$IRxQJ*kȽRs^؆D̛7OO:˗7M>̈́о B̙3v8~Ptiҝ;wp1qzA˗_C$ԫWβAܵk:zs6+2Ydff<QrM_b#AOzz杯a:]_>:uc=o! "cܼy Çnj3zƖ-[0ydqh"H4tmǏ֭#< .7D`Ao~܏Y=$6UB;}7BDhذ!7VZF}6-[&6mnݺQ+#5Ǘ.]/:lG&%%;K* ߹O8KIlӨQ#xw9):oC[ ]e=}#ܧA3f kdeeV\wyҽ&LM :rg5k-Z`hҤ NFgC~ѣGH Auܹs۷ȑ#(QDum;]FƍK[zaUѣG_~%ڵk۽/%%˗/]tA-8/xT~g AJŋcڵy&~+uzA$w+}~hSr_1˳ /_=ń_(5C2e+޳qF +N ɟꚭ#]dIKƽ\1A_lf~$ Jb! ;B Xlٲ7n8_6IIIQ=||t8ܳg=(,?J37~˯lv]^[OzoۀRp+(ׯ֬YӧOaҥFlݺu~:[:L23riii_~ڵk(UV͛e˖vIʲÇѣrʡGv ѣGq!H@m9?طo;dff\rWZl&Mh"zy8q+dYF н{w$''/xTTI^OVVvލ}ɓ@ PfMj ͚5~g={#66III(^8BBBШQ#t*T08r䈥2 J(aXf999_gƍ(_<ԩۣA.(Q*Ud_{{bb"~8p HJJB2ePNh-[4$I(W%]IJJ7|#էO*UR`HuEv휒ZCLL ܹ+",, -[SG_رcN8WlٲxѶm[4mm'oARRdYFbb}$IR :vhܣ>{+ݱJڏ?.jժС 66?O$$$ kF֭Ѻuk_QtB  c=fΖױyfqo|Z˗ɗy}rW6(uSO…a~p1ܹǏǵk m힧j[-Iz%K.\;vk~i-Z7$ W\w}'~߿?/nX?h@mڦK.!$$K.մt~ -ީQZWtҨZ*Zh-ZDvG̃>-Z ;;سgN:7nB S:t`wjI\j>QlYჴhт#a#ʲ,#'',I|/waر`mڴ M4\st)))p3swڅ9s 66ѯ\2&MdfO>yXnOYѨQ#DFFѸv̙H|oZjωmڴo_~'N)??{8~i:v숙3g"$$ٰÇ1m4Œ3?sذa,&ME\?VTӎiii?>>3Sٳ'Ǝ3{֭uQ3d߿a=߿?Νkxnݘ={fEp#;7ydtcv^o};#e˖a_:v{O3{:t..Xu>{w}˖-4C;wa>=a??OO,o߾B:?WϟիW^mCvLPe;w۷oUVCj*_;e)ny#[l+YcbbbеkW+3tP[tb"ڵ gƩSqŞ5u;cذa1ckjpב^ .DZZӬY3roJ7ݻ7s_A\׮]#v׮][n1x`ܰayXK 4iD,^p >C;jd$]c>%=l0@2eвeKmʕt${9\pꫯ4 g˖-xq 04nXܹF•+WC ɓ'}UTAf*sf͚ X*+k\#GίF%XϚ5k0}t;UT?t~srr0g̚5K@ ?ˋ]( 銽20:*U81W2ozPfM4iK+zzersLիWk+VL8EEE'6l5عJ*g\pƍ9wpǾګoW^ke˖zTR%َ;0uTSԶK.W축ڵk" *Uv?S/OI,7'%j"x{6qd-k/+>}Ar#o߮qT?uI9ojժsN G>3`Ŏ6RJ GEժUuII˪U0c dgge>@eY M$ D~fua/3p@g  _ի|/-W^] CCChqҥKrݺuŹ}ŵ / ?~\ȯ溨(gȫW?qJ\߻wo䑕%>\BBBY.]jcKq]ݺu7omddнG}TNOOwَ۸7ntdǫW=5Uƌ#>|Xό 9::Zݻ溈훑`|#]#N^~ y-ڼysP˗/ W۷uSO=e4L6M˖-C:u4Ͱ0,\P3a̙"n ;}ߵkCQWXN:i{b>pwnիW~}_>6oތ'm2;u$}6fΜ):f8jBЦM,ZHQ7me b޼y \SZ5̟?Z[.UVOѺuk\$ǃܹsQV-[ѢEѩS'|_ۣ|}}k%Xvk#O#;tR< h6v*WG5lk׮E=f4h˖-C*U4uHOzzv 6F'N(Cg:mߠA]={Db,c6UVZׯo#0ru~F.96+AIbij ζ'hԨУ7o7muҥ s5TFuZE lRK}=ӧz K.5C qhO :/FFD,T7o>L .MAscǎĉ$|g|H ;=V^~ea|ۇ}ܹsXrfbucUdIL>t$I|Ϯ]\9Bb0k,|||0aWb߾}6e)pw)RDWqvP2W5j U$fpٳQrefuQq$C___L0A<ʕ+Bt4((ȡvMHOmۆ;w4ߩ]\9M)Ω󭟪3i$Qߓlj:ܱF9sօ@Kͯ`L8ѮNt]Y}Gԯ޽{t)t~Ȳ,G~kcgu@?Jٸ5aĉ;m=m, ꧾbŊ}DN9ѵjqtR|"ݺukMdY /yzc8kÇXnnj;뇈DDD.~nb47o}C=znߊ<3 L萟٥<)RDܹs4kͱsN㏚2F )ϬZ拈3sٝآE ܹ;wo_[l2vҢE qi+V%f<ZkV.]*R8pC=ի(˓UzΨzi;wՁH:uPNZ׮]9e3ۥ~'lY=0N:b{b3URE8ڏQwFܣ#ymc3co}3gyF:4=__,{~9#{-[ --&׮]!сz{:=֭Ц* I%Vsܹs; 6?Y;S%rʉQNf<裚]vH웺-:t%Dqw0!>" #;x KqnvufhUwiFsu`i5A\u8JKKCU%IBf'44THNNv*@ eNܹsq kPF Lޒw)CeY[~Fx)̙3GW>JJ[niF9{w^ٳ{1cu;1G#Xveiiiؽ{ͪ*?~7oi}6<(7o<_̔윂z йsl#}&J6"M6Eʕq_^ziF K{[ɳ>H zչo/ꯖGV9sDK==RIɓ'&IFѣG|s{Lh {@*W^xF™3gpq>|۶mCbb"dYFTT<5k]\I+(CUc/ i7ʯ2PGZZho %IVQ멾|n߾p!"IM4vFv*F$zغuW1sY~B=5=Sn[7uxn)*p~y'|R,? zR3.ʲ[z=f}w؁N:!;;[3A="ޞzˎނp6e(A+V aA=$ ;OKhAzfHX2e}pA8p@́۷Hѐ[_o>>VѹUu[猿7ȑ#F9̻~J* Ъ~Y" 0p`$ ݺuǛ6m4NWoΝm:ZeZedddɲӧO[n222luB iV/^~==#66> j׮ڵk~ݲeK{rVa9IIIb>iii;:uJU_3Zl:$K.x۶m󐐐6mڈVc ܸqÒ CM4ibꕴzju^vډ-[8iee<8""²SީS'ke_tbyȮL'U ٩SPV-a?) ^uq^Oypz۠~Ro{y~y uO?᧟~۷?3?"/'I+w؁۷YbS~bǕ]WF Y9I١~0i# hݺu <ਁQ}hl޼Y?36ׇvMNNƪUΣǁ6FK,8_~|ٸq#,YpU\Y:n)!gΜ1,3L- .O?{Mddk iea~Nx``F=zٴijN?Q]VfqtEN}dkSVtÆ z$߿_|ǜ^t{e>}4>_ETTYmWddvdl;IBBBee!Imd`UCJ}rK6/l7Y{Yݵbۛ6m*;**Jt8[jpKO][n#""6mhFYy[|[|رcgGGG#**ʡ=Uĉ8|rϑ*dΚݻwLw2ɧ.͛7] r01BO:Uڐ>|'N={DmYvmͰ ͛6^sܡC?۷o1 1c-[i}BӦMѳgOqk~Ċ+0uT|F]hQ 2Dϝ;4L[jj*F!88ئkx,X+V~m< &c3;Wm״iLu"++ +Vkfj+NѰaCcW/'gl82`˖-—e?<, 6DϞ=uƍ3x#26n܈y[FƍGHIIaOu(]4RRR-,vx eѢE1|p$ QQQ8|0`$%%᯿ _wY ШO?rA$Q6\v .]B>}УGm-Ioz~9[gt .˓YVWSO=YSO[n1} G @ٲe[nii2epMDGG#22RVZѷo_-Z@ҥ~ ;wURGvv۳o'OƑ#G3gΠ{0`ׯE"!!۶mCttW^ɕ2!AK/^}En۶mغuQG/^e˚>sĈ8tvIp,^5jo߾/8DXx1ƍ'{b޽",PBx-b2lJ.իWc„ ":o>Hy͚5ࡇ۸+Y$-[W_}C oSnpgFVLl->}`,shܸ1&MXL2mFI;~x:t&tWgpp0VX^xgΜAJJXh{)S`ԨQn9Vɓ'mvPPuDQtĉسg$I¾}D]ߧS#W+V`Ĉq$I–-[DF˗/믿rU|||0zhL6 $+n483;uVa(vm\ʕ˵6@{uvYeWp~صV/?O:8FyW\ҥK5q69RK J?CL>ݡm(UG'tKZjiӦ]~'E}v.OgYٿu#bx TXchTU;iӦ6v̧]6:t˗oi*T˗ Vv2Anݺ+W[Nj!xNgp@RGaҥhٲa$qx_ 880"Ef̘a8ܫB 7n6n܈ x$:t@DDfhwo3ϠQF⚝;w"==iˈraժUXdXKW^:6: +Wի;N:6ɲ@ 6 [lSO=e:,3 ˗/Tf 6<t۷/йsgk0h lٲE fkAY0 xgE~-,, | LY_Fћ͛7c.u<1Y/C}H"2+W(?+VM4w}jvgݻwo|رnO?7|SLRҮ̫(3Bo}#Blٲn/Oz()4()Ufz oqu:ꑲݧ+v8q"V^{暀 2|̝+#D-??? QQQ>!ĻHeYFNNʢ5O˫˗qeXb(_ˎmff&Ξ=k׮%KDhh(|}}foܸ8!00!!!67r}~^Dܼy~~~([,TB UFw&$$HMMEBPdITVMlhUopQfJBmArEG_/"55R|\鴒_ puxV͜Mgd<8!~~~񁏏O "3f+'2?jr#IOv!_y+2f:ܵؐܖPPO3܁A{ Ma^ɳ,˨]6j׮M B!v@B!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BB!BMϏR!B!B$IeY?!B!B &@NNM<@DP" c}B!B! } @ QdY$IHOO!B!tH$24AqvE!B!\vp%u>!B!R0t>a p}B!B!``kf:/::u@!B!gȲLDGGk $ I^D: B!B3$IBbb"^jQ@$_!B!r_,#Ի3`Ν{BB!B!;wumvgPN:u O!B!ӧO&3Fؾ};)AB!B!> ;;۷opHjJ>B!B!`q563؜ATT233)IB!B!(ʠ`ţz4¾}pJB!B)طo&x`DПPnç~DJB!B)$&&bʕNgP=(_~6l;w(YB!B!qlذׯ_7 x@?A?#m!B!Bvv6mۆt-i V¾} 2%M!B!Ȳ}aժUG! -Btt4M!B!DGGcѢE}4CTS sݻCB!B!999ؽ{7Ν+꾿Ql@~oT+ ''p.QhQT^~~~,B!B!$~J,(`DP.Ȳl@P:tIII^:/ B!B)Xf "## ___ M dwDeT,_NN?''Kƈ#ЬY3[J>@A!B!k8ӧ' ))fu "_˖-ѫW/iQB!B!$w 9997|L]0ډQ`RAHPݮ];taaa(T&B!Bq٬SNaصk&h[8'D0 $dggc}p!;;<:v숆 bŊ B!BNff&qQرO֌nkqwvev""""""L>-"<C#ov 扈țuAhpupQw_s6(x""""""* ]zzJL """"""b=*8)p-gNDDDDDDL=-^xWr(v3ϵKeeeHLLD׮] {i=YDQDii)Ұc۷ϩ ] zuH.uh]k#O>)DDDDDDTA/za8V sߑ_/x"@92;vdNDDDDDD^O>رnLkkS[rtڕ9X(@7ϛ +qQ@DDDDDD^%..~;{fzz:uDDDDDDD Քrj|Eħ+h7+8cZFZGt;,ZGDDDDDDIbP[/`^S`։qdʋ1מ[yWr`DDDDDDDh;gُ?w:IA߷x$:Uh ;SfNm -LDDDDDDDL65wY=:ݮQ+VoڀUtRNDDDDDD[^[?>aQeb[[qzogNDDDDDDT9v""""""JA;v"""""""bNDDDDDDerш*Se'<啈ڹ +  yy ׈GG9Nk&-,DDDǗIPɬl#Xrf{Ϟ=QZ5fXYY=mz/""""wQoRYY^}U6m0pMl]H DDDDD ڽ[VVRSSWqBBB04h-Z@LLL Av) رcv؁Bm> |}}ʇ ؉*?kqe1h'P6 sN|عs}4m?8JՠRl V>?&M$˗#55KyʿK1h"""ʉ:p|A>>Ld=z?ֺukDGGV0Uwr(ԩsDDDd&&&iNݺuŋ?ZBTTŶi/˗/ǂ t9r$f͚OR>}?.]qZbի{ M5~xdeeaݺuEڵvUNNvlva̙r̅興vY4 0̛7;wPAƍ/ɓZ}CǎѦM6c"""⭷Bqq1G9ܙ]\/Lc""">=l ̝;WۻqqqXp!ׯoYA0{lE'*>x%r6UN 7KKKvZ߆ $5kZ(سg<'z½坞p-X.*W;#Lsٳ 8P mҥ nvGNTA+*fe]LCi;1Sy咈)gE^Ȍٰ0={ġCo۶ SL-F򐓓2{l2JKKq-ʿ\.E999o"44/Baa!PZ5$&&ʿi+s8Ϸ:r8Jk.ܹϨ! 05:R|Vjժ#FXwƎ;er kF=ЫW/tA;6u9&M*Q ,ZH>l07u|^ReeeGXX̙ NϞ=u;y>V/G믿nxhҤ/?HIIo&&&K^o?Ğ={LFĉQZ5'O>|c5ԫW?</"֬Ycx3Srv!C78>矛.ؒ+V`СMvu9??H}koB޽{u#TTT>Æ 3K+ :Th:9SnԩS1~xg>7n`ر#زe q\ro}yv_رc5ztO<۽VFR=FDDt3nT>C8vUڵk3f ϟy\m}nݺuV0`wz!((nBVV~Y7o޴|II LכZ.??SNťK4ݻ7 x9ׯرcXjht.*.lT˗/c„ v6m0|p4k ժU/nܸ'N~͛5y7ߠy]/aaahԨ|||p: yEQgggc_{[[o5kXlEj“O>:F7n_kʣ2220m4,Z{>q)`ɚΝ;VBBB ]ZZ_~YwfAdd$]"::y&233sNZJ9r&MŋݲF: `Μ94P[tPvH^:^V>z(&NhfHW_ۂ1|ps=Uq5?رcxn:y@YKueȑzLz3$""b^!oOj:u  /aÆ!,,hwO_5]=ʗ{0ٳ'ƍ_[ljedd`ѢE2ec\j9>sL 6Lh^:`ŊxW4ߝ5k+YAVFFfoG}TrѰaCW~+r\Ms Ę1cпY6zEM4y{cڴiزeߌQŊaXFG)SjժVFƍ1p@|mwi>} jJs QҹsgMgk|rΟ}_Gtt&5hs|I[>o>,\?uHQ8ft mC ԩSG0dݻ/2.\`saٲe;vC Gz(x70bM]$c}O?1DDD8=BCC[oYH ?A=0|9wGwF^j]YfXxcQsK.YqZoz 7Nm1m4g5BϾ}tG}]5JuHֽ{w|شi׫VZXr%&OxMC[oO=ۼys|vg ԨQCcM=3gj駟53#FI4#ie|;s ~m9shUիclyر9snK,;w,"G:RͰW<ASIǎcDDD #:vO?MJ٘={6z{ K.EjjݑGz™QVe688}j֬i1c DOJ(ʀݞ#Gʫ+z6dN!CFڷo^xA9i \ޕȬ`̟?111>7|ScR]:vɓ'No;1cƠN:VN>z4)kz[l 5hog`hҤ&gZl5l*3/O.USy.g6ɋ/hzL;h1??۶mX^TcҾ<)c0z1h/w;wڵkѾ}{ۻw/O޽{cOpQ ton8N:shuc=9+WӺՋ ׯ6bk׮mߺxu8{ܡp7^Ͻ]vhٲ%Zh!ȱEEtNW^]vi~[ZQuEBBնWʳ-myms7 Eu{#,(j޵SOAݻwtDzG^giց4ERoުkѢ DDDĠ…c̘1زe ,X;T\zo `-A;]t<{jk5((HwD t_jYTTyŖ xǰvZ>iaeҵWS^{3I\yD@ow!AII:u犎;jozWN/))twA.Mv$DDDȁ{NrkIi!]cW#Fc޾.;T`` z~Ü9s0h 3Fb| IDAT3gc6zKP66lO<3>uٳgcnp%(5JUy盙k׮i$44YYYYi^cg\ #kȼEzz:]tP_5 Giڴ+qGWp ""=^$22 pMݻXnnFE̞=88m _嵗K-  p1QeD/Њ}]#?j^7PTo*AnfjAE8O{TMr{8֭[Lj>{I@^zaΜ9صk&M`Ο?k֬1_o=_GTś _FOaa!n݊7|FNob޽-84IcI@!tEPPfҵWr:3v6Vz1ըQ-٦~7tp%5JwuGgw_]o] """b~5Ԯ]?<~G 8Ъ&}.zhu%x֛'11=x Wѵkװxb>K~zw;sJ3Vof_QFa˖-1j(GO"""} eԩSNuolRwr"w5doVZZff͚n=Fl'Nď?'n:׬)G癞tgz(KԬYSwUޗ.]yzz}5뗞~իW8**t[R:AN8}u,s:1h8u`K.YwhJF!fWB5ͿZ,.դIcruMH̜9mڴ͛u3,,LwNoD)Xq!M#qƺr ݫ98tUT1c0~xAÇ ӱcǎ5c=:[_~4hZnm)q;5^I ?%ł_~͛7;NoI;j~rr2z!v}yu`tذafj|.]~FyѣV@YYaYp5]ٳj۠AЪU+6&ڴLP/N&" k._oKEM }ʕ+70Ւ^eSCrE|jM7n`ĉ4iĉzrK:ׯ뮦 IIImk׮5=7nĒ%K_/%Kl^Co kokt{ tPy>լYjq>3ciʱkf?*1!DƍvNUdG/h,thԨSpa%KX x]^ROcf)1:aÆl81h/׿4oL}~/88< X۵kfn:gK.͛7Ok׻&EEE?}GtrWy1,XԪU ~~~())ŋ5ްЮ];$''͛r.++ƍqET^QQQVeXE_?>z-MFpp0>SM8uu6kׯ(*++Æ jժ!::Z=ߖ`,ܺu +V@QQj֬H...1}tZJs|7ojgʱ ̴YYc@|ڴiڵkx$";իuߤR[37SOYA*nG-[춸Vq^{5ł5jF())AVV&kH͞= {7n ˍ_c3 T9W+..](}8pf{TT >}tʹMty&Ǝ}~.!!5?nݺcǎN: ,Y$Sϝ;|Zhu8xBO< ^z%MG2}6l97:J b֬YVF_;^+Wh«M>Frh]-[3Lhh(Zh5k8|< a;,[ ӦM3̳իWGVVbccsN:tHW׬Y 6D5p5>}ZzÝMjR^V4ѣG[=֠Ë/o޼i5E2e Ǝkpoüy󐙙?)wߍ/&LK4ݮG3gN/U]zQ(E۶mxbL0/_|ҥKr:uH ~ݻT|M,Xwϝ;si1M0\g15zLM])v{U%ؽ]N|}}1flذ?+>SX~B#SLkU7 -Z/t]6jԨ> 6>|}}_bqqŋgگzcǎXfË>Y,L:sETTï˫W.]I&Yj0:oR^{`y3uS^#uXd ƍg8ĝ#""CppmzꩧqF<#6E{/fϞ+We˖wѭ%$-[H(QFaӦM=zp{1uTر'NDzt;-cҥIc͘1c͕sj۶-fϞ 6辶25pEQ\ؽΔO>+V#4Qpo#99ԫܹV[-zӓԪU ʕ+裏J*6 ҥKxb4jȣj:tڵkm.h6 f*ΖcҥO4UTO>M6ifm `زezL0ӫLjƽϴW<9s.\kא___ $$5kD\\Ti"%%q, /2v5?~bQ[.4ibP;/"-- 7oDNNJJJ􏍍_=w̗.]BZZ._[nAE4iwD9](k/)((@ZZΟ?WP^2:: 4@LLۯ3Ν;yZ|hh(bbbTG^AARSSq\zEEECXXbccoSA24r , QV-@/ t0z]ZgByR=xU>Z*ԩM8H8}U=;#"ۋ<Π:w>HT򝽠wE""b㽜#Zتl @6ɓWߙΛ=DDDà5ƍV3[lRE=ou|(tEDDĠR6x̬b|!ҳ"ҖEޟ&(=oy$yeA;mIrlz.=wJqwP^ bJDDĠA !9iX .4vQemdkLᅥ}ee-TWHX@N$`"kCFLs?ϋe8NDD!|Ny)N'"""Wqz<_~UTav""dXG1!vbp<1h'"" ]oa:DDDĠ[=^E0ODDD ډ*cPODDD ډA;1h'""""""bNDDDDDDD ډv"""""""bNDDDDDDĠ1h'"""""""DDDDDDD ډA;1h'""""""bNDDDDDDD ډv"""""""bNDDDDDDĠ1h'"""""""핓(L"""b[/A7@ |{vbp &b=J{1h۩ ؐ$b=Z^ev*\?*/7a*!GA~~>֮]+W^d˜(C)\b,No A(DĠ7R?ޭU+E'p9Ԯ]͛7g 䉼Mii):$k׮L;zݼySNX&1hč[{_xT4HOOǢEsgѰaCf""8 Oy"bN^YVVǛ A妠/_]NX,\*ϽlmZve=ϊIoe<vrWbJUYѦԩStwgppp9  ..iii[.FMxoƅ;OG1cNE4fem0S塲]wVV\EQěoP2<u=6oηCsp群x񉊨nb^d37nܐիsҸpuGgy kj˳"w-gFʣH:oQatܶ#W woȣ(϶a]Pjx"r;V=f;;K=vW]^iWm7LlHц;z\=>y*߸zSufWt>8V=y+S9nfT}1s =Ǖ/UsR<Wꭊh]+GÓ>ճ >}("44ZB~~>ȑ# !ɓ'"TZQQQG \Ifdd -- MBEdffرc8<_ԬY񈏏Z\1qqqhܸB^^_4k̡2r)?~YYY5]F/PƍQ^=ׯ'N0,wuVjj_򔛛@*((1,Zn-ˡ`>p IDATWnϞ= .5kcJOOӧUTA۶m ]qq1N:e:V=y ==nBHHbbb`~pQ~=}4?P㤲L+ۍ52G}s.{-$''OII?>kƗ_~ 3gGFFHO?MbРA6!{ym۶hܸ1~'l۶MSNahڴ)~a~׈P۰a۷o/ΜwRR"""w;wF>}o%9R|||Я_?{Ve@}f닾}j#33("""BBaHII{>;v@tͰ^=~8֯_LSyʨ.v|aƍ_tmЦMt-QMR='꼠g||>[6+C.HG}+LJ rG&zjj*o@͚5ѢE _l2PfM9r_n `X~?トYMCqu4kLbϷj$%%("99?#JKKшBII ڸ#{OƧ~7n"""???Bɓ())AFsrrh"pPPի(ǞǏv^\t GWYm8>|9nݺ%oBjP\\"+W -- -ZIgv8CCCq)ٳG(..j]rW\AV ;YE[g?St"_"bӦM/w=(ז-[ӭϝ;AL4E*U)-w~i9M.^(mQ1c q0HI۶mm֑ؼya)ݳ=KX >}\{[ri|w6E:ݻwWxԫwu؀[ӫw}Ə4J1c +WhIOI=Æ ZjxGШQ#y 8~8A/Ff͚YMA֭Z̕=F(8q"z͛#..N3R\\5k={/~a)V>>>Lj#zmMwDݺu3ϠurcuQEzVk֬q:?+ p1"U:u-# 6-#);vLN3<֭[㡇CIjjnP~Zj6l7n,oS8Zx.QuAHffLL,)Q6ճF# ;֑Ϝl޼Ywǎ[]4k cǎEllS ͯ#F@:ut:uh^m͚5CÆ @yDQDVW)2˯r^Vב:u[GJʩz,)`wety:r.Æ ӜKƍ1b{Aܚ?Ku r ؕT;zשS'yۚ5k#ǝ5Jy駟ٮQS~#oSQqԨQN٦Mluct/SQ:@9;K*7=UrJP9A{% 8z(Ӏ }yyyV5 ѯ_?}VR} [:uFi!C ӺJ*J!=olSx9??{ð0ס2)o999WnRS!gFԯ_s;ɳҾDQY|}}ѹsg\iRaa!9QѬY3< 5i5#'Hg˧(8rܡ޽{!!!V7wr~ۯQ~;' b3 aРAX,W:2kѣ֑W߳zae̞\V>}M:uF0{) *U͟ʎCu+^zUw{k~qUhS[ [yCդt>V3d[wٿW:{9qfvuлwo㋍uK;ɕ+DVyIP9(+DUúuޥKW 4lJϧNB&M>Çcǎhr… (**GZUL:թڵ3|V}oD)jkFZ!=ܣYU]*6mS SRRлwobLLT KSbmgez")) ׯ(\BCC.#iiiHHH*w:CE!^R%CI:$$$ȝ+gΜA6m4Al__<Y0 44UESud`` :w֑ΔOef0DqcA4U˯ڵkvݫ矍`U֑(jHtHqug%&&ʋQNO>=(R~2z\z"OQMOu'Uƍ㥗^2ʎ<"[HLL|QVߍl?8ر699G/MFlINʍG^˫}HĠ(((GDQ4, VQYYYzL93M4o\n93j4BBB+Ǡ*#gffbƍ֭U_yC5H,eϮzD)..Ɖ'\6##v_rŢFg~ ̈@VV]Y̓̾yx"DQą RN `h򐲡.6l@=t_cT{N'iLTVVfU0}||РAѣ(--ř3g\֩SViPPPQOK]hF@b`l`c'ɹospLrmlv91" ЊZZFhSu{{gzF#3zzZޢrJIG3>Yrcpꓑ!N)ܖl9zjr"2CUMMMMr&͒CexIc'!r DK?7oTмxE'Gem~ks]]]LZXvuuI@؝H 8Nq;fjj*ϟ/Ξ= .`Μ9:u*RRRYrOy}}=ZZZ`000 Ugg ST~UUKG[zNAZτqqq4 _Zqr)w\X1pE]c͈bbbFl6#Ák׮y",,LR 9.w}qLȸ8CudOOM\%lٲ)he!_tPF*&ݕtRB)/"O@TR/RښWߓq }OO<<;.l_O-vIͯ&Iw?9k[폫qOo,C< 2HW*\& f&x!We(9Z@fR(6SGJep:! XA83ߖ-̷pf]EA:zLb VB~~>JKKQRRBzn'N'`Zn:3ҳ\~)d̙3<رc49gҠ_mXwUg=drή4F Dvvef@1 I0LXz5 pQY4%={~-,XDΌ0AEE؈)SyTTTPSL& ^Q+NՓ+ժk&M.'R;@ߥ|D?U9<#)BzBHu;e!~zLЎϛ7ar.%#/I''_#bD@(7&ᤗ?rGVX>N!Fpp˭bDח(Q m&IW%5q0FqLOg)$i^ΊQs\g˗r̙31j <ł+Wbʕw-UY)))G__nܸaL&xp1**>I SLAGGN:p^!:R 7Gv<]CWI&.S;IH'c{ddc[ܒĦBWB)gu\!^ "71!-1?*0TﴵݻuXHH-1c_G(MT? ˑI Է ]]]Ng^8Eš0hQu%1 څ.!! Zذaq! _|^{5e`jb>]nm dl9Yv]aUϞ;'P^^&z %3UVV>_bǎlnn..\A477#((---  իXf ziX,U1s& ץCKT)f3u:8S\P;;;83e2jbӦM ,Vm0gM 軗éomgtשX,"S+hjl=&#CnZ=bg <ӊc@X@Ʉ$xGCC#2&SLQU | n߾d08Õ+Wp1K*z SSSGO.|qq19B[x1wpp0-ZDꫯ*A?~\_oӧO?͆CHኅ'&O,ip8pi߿ǎáC駟*^Ѐݻw3"~v!^iWrH.1 1 -ÚJMMUONm|J:LS<+H9N͙3ez'1ؿd0 7xa#:])p/--XkB9HV<E} ~>|/;̙3,#ޑN0oO RRRr];12hLa?ӷF|t4O?v#'mDtVBcc#000>Bdd$P]]:ؓqF`V+Nvܼy7nܠ`Ŋ8úuЀv `twwڵku-cN{.]Jܹs6 >233( /^e-]v[ 穂1}t (++RHp҄?6mBKK s^\\\DEEaddt6'$$ .+>744މ͐sDlڴIkٌXttty|'(((@dd$89L8 Hff&Ý󈍍U# ,s(>#deeie˖6ʲX,-'TSoD.M8%{՛))#88Æ P__͆w}Viii Bgg'JKKс@J$xwi0^Ct'c{ppPdxGrr26nܨzV=668vR<ϻԑN:#\%6f ghfټ ¶]0|w455C5}qS[ϑvn:u*fٌ͚!]zǕp׋~Mmm_oRoz)2?Z$%ட& xWw^̪Q^ضm+'OiFlٌ۷}mb>mmmٳg%]~=/_T^xx8oߎݻwYٚQ+!s)fvxصkqPYYt͛EZZZ.,]Ν;gTUUxEMi;!!wiwW_ugɓ'c۶m9Ê+p#lY'VjEvv6d1B8S]UUE(ǡWy0)K놔% y֭.ĉa6 aZeo 8q"# : ==/]銋ëoYb8x[1+WJ'Dncy*L.mMؽ{yH$-6KX dm\[zzzh[fΜ餧E'}-UZ^z {:555a֭4O\}0Z`65sDͯ/;v۶mk>i<<\!pܹ˷lHvzuu55LIII.gYL&̙3III~իW㩧rCfzb`۶m@OO-(,XwT7m[tV@Rfdd$͛0l6ƀa֭={aaa3g, d ł uVg1k,SEK<|;MiuuuaŢt UTTtZHLLD,f3.]g}VY1jiiUVj#""D 2&MBdd$D[bbb#wLjБ2F100d1cl6*ZƀRە>KzƓ\uvvҭk֬GL+WjjRNYw8 ///CCChmm@L۶mCzz:^J uF8}@/B$Ƥ؞;wA;gٲe"H维Y?ږ8Ѷ^RO^Gbhnz*qTwѨR;.qh]+G~kyf쭷G~6LO?)$ӾF &W;ǜkYWA.vŘ!ݍA9]OݻaҤIx7zzzىa"66ԥ\n0BBBf>1L Cll,MRIu!ABBByv]]]q0abbbƕ988QQQnDkkOr 2n EEgg'<#C Ett}z!7✸OcDFFj֑Fߧz"66Vw"LWO?kOO088HeM$jG&cOilKK A@@@ xp-a__H ZZZNEirNaAWWzzzdu;]yvC &bmό?wfa``@..c^`Ɇ{=uO ή.fxnXHwHۢ{V{Lwo0n7?0/1"jayxeQPy236\~%K8|􃿎92QU$fpgΛ:FsYXGU‡Y1'5Yy6:u < .d}G0 .˟VI)fNFzNFG.0t=xG)e (XxX vQf`````0Φ2301Ɔl300000#[@00````````> fe```````````A;c`vjjjp%@DD6n8n200> ǁy]111L ,hgu/󎞞\|:.pж$&&N wm'OFUwv_ȕ?窎6 o߆fnGPP"##11zؔM]CJwǤIvz! p8pʕ+YvsRt1‘;FE7ߜ5iF/U|xRi򇾐 WVss3?ׯӶI+V` iNnti}W555/ o`ԩ~c|'X>Nd#W0hj{@kk+JX)7_~ʙy"OOgcq.gS^&4qHIIqDimUo -3gâͤ~Q\\_~^J}/Q1>l6n ,hh[AZ_WN?y9ܿ~+:ct8I--iN)ĝ}5]'?@8xǯk1O_:u8nV[W2>K=zN DDD`hh(++CMM 8Css3>kHHH0)儍/t?Xk%͝-jԩSQ[[4dee5<} ,he ?Q'ߛ[0O72l0b-x]%Pxx@[ZOz* yjSO=… Q^^ػw/~d2in0Z7A6d_8#GEChh(^u#,,cX29p]6΂v{hm 88أ:'㤧OWӨu,&|FO 9KJ%#ǭ7Յ>~Zxdv2rss+ 00<ϣgΜOkmx!r'qc+M8vwXk3vJxt^< PuvXOYrcʙ~7r Us9L2?8|Y{uܩ{!Aà=}'[)g`㽄fbbb hmm͛7͆`$&&bB@@ͨƝ;wݍDFF"%%HOOWݻwq-pX̜9<֭[Fkk+zzzDdgg#--MFGGQWW7oADD&Nӧ#==]"t8DUUZZZ022($&&bڴip[^|:V$ s B9Ȱ6 !!!HJJBVV W ehp8Ae!;?"M4 ϼ;TUU֭[hmmnGhh(3g"**-Gu\!99YYY1cfc;44ZGLL NL9~%θVaddUUUĽ{0<< ٌdeeQkݺ(ǥHL4 ӦMɓ5Aee%\@Fܾ}:|kJ﫭ESS8C@@.\i˗aq۲#qmTTTDrr2ՙPZZ^ٳoqjU{w۷yk_Zܻw}}} q'=22j֢UwYKrmƷ~K?/_\׻-ZSNaddv7np?BjըfC__1qDdff"33S'Fss 2ep8zJ/@'\TLTߚTVV:N0ɘ9sd=r{zzPUU%}DDS*H &`Μ9իWQ]] ł^z^+󨭭Q5M+ܹׯs9ZZZS4m43477;r!;;O?4uҥKN$8r@5Ɖ'DI9555׿$C9c$Ca?~\Qr!ꫯ( h7|SՁٿ?ZZZdbL&[/֝I҂8BQQdgb֬YBJ|嗢B|ƺu`ZHU_}OܝD]zK7np⒚c*x<X:& (-ZyҥKvJ$+1va'rW֯_9sI100Ç… r***ܹsOoE}}=Ν;/3gT 9CSSMZZjn$?|^G444N"ezLHmph֬Y%bqq1wBc޽+M>̚5eNƍ:?5h͛aXT‘#G7(<<, b0 s}g^e˖:h///3YyłaRhkkÜ9sd=͆/߅cHHHPTMMM.YP\\LgM&f3lƟ'j0CCC崽]]]qJ.D>o]U8 0mmmENNDj%%%pܤI0k,j2 Ecc#Ο?OȈ)ʐl2$Ap(C8q&G֭[,!&&III ϣM(++q0ap9q!qէpڵ v~g6Dp#SYYL&Nү\kW9HmK9pGV|AkWW|I믤ce`Eƴ/^T +h ݻq!!!lnnFSS000ca„ 566 x婾ݻy&m[nE|'H]]>l6:6 7M&沌͛7iZ,]Vv;vK,MDH'?l6cddDҗ<8~8>11 z W\ӝ8gjjjܲ+9.=qu` _[nH|>a:;;UadxYgee9M }#Ʉ7nI\~QtR'[ևKt<~J'ܔyKK jkkEf…d8Ád%YU{Nwcv8Xz5f̘PGEuu5uN4;*\eǺuDpڵk8x q};jܹxǰh"$$$ CCCu ӧq`ƌXf &M Ν;(**mr -Zɓ';{j*;СChooGss3 s;wRݻo_3rv<{޽{nːٻ~ ׯ_3gdXVV`ppN2e{< IDAT9-~``kڴiشi38r^ 믑-8Ns"33өj8p~իiѣGw%Dt>Bjj*^u̙3:HMMC%g.6LxW#Y D^^6oL rx NG/ͤ}o( W~nÇix <䓢l:u*SDTWbɪEuV9rzJ}ۛ\㐕;v ++n8xD+G+Z;n +'{)"HIIO~]999:u[Ѥ>شi4#Gdpddq- OPXXH?/X@VϚ5 oRRR X{fYCCC1w\tQiiiHMMEA999"U5bʕ+Ql2 )S $l5{'ѹRንYNd' ֭[!υ"??~VaZZf WԜwnȠɄ%K.O>00==;&w\޸q9n:>ibolX,x'U'y\se4?\w!xwⓐdE[+7Qjnq@-hr vyE}I8ǫqUzɆ+' )1JOy+`"#5k^KB^v>-_zhWMmٲ\R]g}V8vlSGx 155UJeee"}TDFF&͍Y]>ĉ,$`'~<ϋVU ͛'Dn{MHH, Uld@xw!!!43===N/--T*7<͛ԙ0%ɒ~Dϼ*666f*CP: WU'^߿á8y4l\$''ˎ !r+Bgb….%K_x0|rsFm_v߅7JANH%\hoo@+XVQG_n|]]Rxqw%K/qpw̟?&̸8(IDQŀeQ,᪞]"҉K!guї;$ᩒy .Tyё Q!ʆssTTT8qF rH{.sb֬Yt򲦦iuZ^Osii)îdO#TBL4ɐA1+ׇ$ZPIT5 ,PL(̽q (Pa,OV$L8*W2>>^ k9*4hjjBWc3LԨh2Ts<ض᫯O9X-W]z24qE,Zf{{;V1৔O֤W8 ^*\Y2e]}6JRVP_Jmt (8QQQxwdž '޽N^Ej*r~zoyj6m I"`%{bI}LN0/dedD+ʕk kU ,hGA%ʘG^;300Q[-}J%Hv:;$ 8Ovĉ+*Q2PLi1|X`=wY\xVSLAJJm"=C@N@mRԸ<)n+.c7/^`Μ9ĤI49M:UQN.\jU-˛8Nb'V. d UpEKRO#8j>W]FSZ^x"xG||&>nZ,8qBqq.nZ ;8~(Qz,F˻l7ɓ'5 %hmSNWLrmˤNZ8-FgaR-7c ǡ0C)N:[ ː^ڏ,0g`A;ŕ+W駟ҙà ̜9IIId[_ eϴJR]'[}-@̜9ɈW+,,n׵lL&VZyʕ+())%>N8Ǐ#//֭8VGIQsJYqU\Rs%Ʉ3g"11\r^Cii]K ЗF$$$jbÆ (//ǡCߏ.|x|֏r:]]]P-)N|Q7pIkqȃ/;v-+;;Ǐz*6mڄv;ݷ-]nDEEV42bH?AJ^^6l؀2>skꨧzJNܝpm"hllDzzm›IΥ9tnߤ Q[oWWzfrq'Th8fYʭ;B 2!C}M%}]```3`Ι3G?bV}R ze ASdjŦMDm&6 EGG~s玦 3L4pz^DGG1Ksr+r//'6[p%00PG ݻ:Zm4?|R[``K,)79QFkGzz:L1;$6TUU:Io40>fX,U,;;;j6J_MDtt;D.' X>ACk5$$9*@]$1rd֦y n?o~oT)7)QZxϞ=~t& QRoWI;Ȇ;\RKt=ʃ~]]][8z+²IB)kڴi4 ΝK $+B-7+šol6~X y^ WK*B{%i1${=c}}}N7 H144k׮$##쳒ՒvuuQ=9_}qSjHx5O( |qS5EEE-C2 w555"X .\=23N=8NҧUZB=ct+^),Ó+rGiy*LMMKGVdh,XɓZߥŋ4[>p%.$ZyIRS!++KӕSZ'Ed%|1+Z\\mmhΜ9Laߵ]~_Rr ?>&'|"mvaQmEWYdr}ZbE`p!+{˓nOV;DۇR:8p?C]P;ZZZ|f)rAIJRì=XhW_^ʬǏSl6;J\MLL)ۧx^CCv-rbL"[<cǎRM8eIeVVV={ĉn];&DPP}YдPVV&;ۋ/}.//Oxc)| VW_.^I 1xޠE zJWd z=zTu ݿ_؃ܸ?z(N>WTT/{1IL3=P>,..Ƒ#GDe%BڇRy>$<%8NRݶo>;v pz&--M3i߾};lFFFPXX(;#Ç;wѤ]Dt=Ο?O>YYYHIIA@@QVV&RnD) J|Eoڴ ---hnn(>c٘0aFFFсK.!!!"CqqqX}'(((@dd$8TIBdq:::dHl6#66VS{tRTVVΝ;lxlf /^7xǓO>鳙bW]jQWW|EVV"""0004Þ7*^}cXDk.̟?_OΝ=77QQQ"t{1,X[qiٲe<Dgg'.\ :+vZْD ndL e{n1+Vڄ3q֭[:vl6{Ezz:ՅWMӸ ҥKQXX6۷o#??}}}{.^*\P :<… JZ|9T plڵNu\l***p]M:JV?dŠ+<_rr2v؁>1c L0hkk͛7E|vv6ynpwtݺuhhh@{{;?HIIApp0q5^)QCMMMDqqȆ POuww{2= pU444(!5;$-;228|0JJJłAO޻w!$$D4QE 6vxwaZF+Wrwu ,hg >>/>cWVV:m ͛NdW =L15sNݻ&ګV\)MHHw]U;8-+V36 'Nq)_/b׮]tKhee%E 3<#ڞԤڞ8twwӕUi{۷ctբ555 ds=t~N]ڮW^y{aYYdkضmrHB(Vٳ[w#&Mr{BB8CUU>JtXX.S I`2ٳ ݥ! 9S!W<߯ <ڵk3_~i8pepl2Sى'N8饄VΌ^>ISSXX^~eC+z#HZt۴iosMv9E.]k׮|M+6[,裏ֆ={VoׯeM8{njp9hzjٲe}6n޼ DcHؿ7o1D@Mݻ---p"}(Dd@ D8ߔP*>ԣ۴ºaǎ_JR3ؾ};<9q/61ѫ3gď~#:uB0gXIII[_͛7Σ5j{dd$v؁k׮ŋ],((E.qgap88vha(ݡ,]q[vv6+WDT\~òZgl/_ƹsdPcѢEn},7*Vq+.\5iii(((@~~ΝkYt;q[ IDATpeY@̞=+WlƁ\Ʉ_~ϟǙ3gFEEaXxhOM7Oq.ӷ~+rsZܔӦMCMM """DG<4ۿ\Rٳ={6͛GoV0jzVϋVX&cɒ%$=… g1;wΝCKKʭ&^~e;wgΜq!^x9YDDD ??8y$E>((x'\N`mod/g;dɂx>"88xE]6)n%?OPTTz 8L&̞=?8PTTt+p gZZ+\}k.&7aׇcxx!!!e HR^l6 &L@ttS#?88VڇqqqC}}}hooА ݑhfCww70,DhhjJeo󴿿&?2e x ۶mA,7IWX`c ADxl'{}9 < /ܺu ӟ]jQmOwؒG~< OƟujG|9f7nZɱ1d3>VZ-h-1֛X{]*0Tlr|Ti%{kk+l6N`#׿?GqrOr|7s~~pV}U'Y2X\<h{o?r N woU`xttT̨K2ҺENzݾzmJԺmؗw=%+CvաfugvW 555Xd 222AҖ̙33fY$83J oɨ1 ^i_zr+oy/`XrJ`^ ,hg00h`g|c3c!_w&{(--ŧ~}FF͛H!44^Յ;w`Ϟ=ɻ /8H09Otæ*~t^ﱶFO{c2Η +F!((VҥKNhmg````𚓓m۶^W %%o&VXAϨm ڵksNv#`3YΠlb̙툊Œ3`Zٶ?&L zjܹswޅfĉ1yd]`X3cǎsJ 88SLaw20000RcA l{<OG |Jf7X@0dv ,Pe`````` lK7300[EUo |Xu\]b```A;f]g$@qJnZ9 ܁@__rbg vCLx;g7cN~<`Y8|Q5ׯ_Gmm-b`ʔ)ԩS=nA̸v]hhhK*((00\Y͆N9==]WV`u;I`Ndh.<ϣj/՟۰l Bdd$@˶{.ݻ~8b„ HIIA||<dgd xK86|BaljoƤI:lN2uSS>1Ot@WW._L>82,xς30<"?ͦ`GVV( QSS{Ҁ7z:tw_+V rn~!))IS9###_N?!եّe`%455(//W|_TTVX  ((Hs?uvv믿Fqq1b?aʕv'N _~bʔ)Lc ~ojj_?222d7l6]`` p8FkjjC߯\~N\000Gq5\zӧOǖ-[vEizj=ܿ+FoE; Wkא%O>8}4+?ǥK}vƺAEEvލ>+B xblذA׮-[Z[[T]# c a0GV^Y{ 5@PfT'2Ϝ9C –-[ p ">d````A;#瑛+DEEq?:fS& 6mR nܸI0w\2###5#;;[999N+#B7oDOOO#G믿߅#??:::PVVZVm>ko]]SمcѢE ~ܻwŨ|787n שRRRtJ˄L[[{=WBCC5al1eL:HKKÌ3Xʎ#)222D2>}s###tf'`2q߇T<_ת}8eܺu 'Ofg`y|ս?dW $!baQDVA@*+b7ooo^ZkRzA], %ld# ,O}~3̳%O6_/^9ϙ3̙sA;]ڳDwț>ƬP>khhP3>>>sXbۖiKN nYO;ຫѳ5`IiW0a\zGӞe̙3 <خo„ 9##=ϟG]]DQ'̙'''1uTѣG'Vnݺ%'$$Dgq,Ə/]XX {ڱnMjzC}eM@`޽\љmm@n !҉ta:ԕADomO^\'9x;+((@^^xԨQFaa!3;AԄdff 555@@@"## 777J#??TMHNNnW%LGUU233 :xzz"$$D^iaa!233qM   @tt4hv;EEE0က~bddd...FLL bbbmB-$&&ᅦ(fFSlG{<{@^^677)SW)ǏÇ҂:\rɪJ'AP@41v6;w $$;ʴI'8N:ggg:ldggΝ;F\TTQ=מ";;(ŋ ???,]ls5\v %%%hnn뇘DDDgZkFk랖\v (..V-::Z5^pyqrr2rѣ-. h0&?9r[ZZpu\~hjjnڭ)gR9m8SNOj#sLݹsGulJscHˤi jjdee!''G.߿XjoݺJCSԾ ׺7 c`` fT+++jT-&O999(..F]]\]]p 6-l)=v?ߕehhh@jjn noF~lc*9x\)?pU޽[5҉'3f=o޼o("66Am7+h~S[[N8}iÇ1h ,X]555ؽ{7Ν;+WwaȐ!7oٻ ߗh:t4 8~8bcch"ս]I)dgM5/^})?EQDEE=EEE[:<==1|py@VV1)gQQZ[[:9իW'gL |={\i)g5jn^R%&&qP_yĠ_ܾ}[+GAhj^^oߎBue$<<<֫WJJJ̖3g"11uq-+hѪ>+--Uk.U9Ҝ"3g4]emHEu<+Oߎ?}"o6rHDEEʣviWkc~~>l"NR{Y8::bƌ0a].HX[-IWT`Ȑ!r{6P;/u=`DDDJ^QYYjTRRR矫b󓿯7nÇ-^eNE޽|1ƠA%977}QYb0駟ʍ(@TTڵk_jղ-زeA󃣣+W`]r%[;ZZZM]ML5 rgq4[6tpp0۷oB>},geeK/]^^ӧO[BCCn/Ֆ T);6zNyjƍ8rǠ _ H ޵x"?˝Aзo_]UW|Jz-Ս;wTՍFe0nnޓ?XҦgddoQڬJs*H۲$==]jʴKGvA|dݯ k!ce燁pݰajKasOW9mr<1Z[{n}-Y%Y:ھ^_򘓓kת4h҂]va޽fomho*IW{eej=wdܸqp̞=[7A5镏 d,lٲEL||Co[_S/))C䎼=9Cqa@]]QZoܸM6GyD.;mmmQVV"۷ .4[7J,Սظq#^}U%i)ڊll߾(,,46sJNouHFF\]#'Z[[m۶Lۓvqࠪ}Q :_:vdggrG};o h͚5kqP[#>>oXv[o ISL-WVszm̙31l0ŋ\R<rw9SuV{f|~:DQD߾}džl޼h̝;W7F9r2dH[˿ yמuE~K'˕m+@inn֝Z:1b+m&?NJJҥKb,^ƍ۾}jXow~=j8"## / 00(Ν;d3W^(prrŠ+J#ϝ?ު2aaaXr% aaaxg WoVZZ**F^8+*gF|{MUZZOHanJm#쌅 ʒ>!!hX6_ǏEF8::"**ʪ|RQOLLO;::",, ˖-SF ͅ-IIIr9V3jwءjǑQfk?R}*GAIm9:u*f̘a߹sh{nn<#VX8U6~B+0֜z}3kr_|d_DyZؓ%{'UtňeWG˿z;g{=44JKvƄĠGEBBʕ+/__ӻw&--M0s=.5D3f̀A@}}j2t1 ?lr>>>xGURee%1p@=Z'!!A5URg .4yoꊯrtW֭[厭3mZ())kܽo۵' MSiwiXNХwzXr(?>}nW泶 dPv;hQ^B;ItPب̼e#T#<KTjlUڭ΢e+qw/{RoUkߐ!C{n}mk,m\y0齥o4lvԢy]=3߉A}NJwIw(fՙi IEEBӧ峪zkG&-zՖ.QQRR7nhhhPQhfɓM7:KMOg~OvvFeS:,)S:cYo{HI'`L ^A>|8Jdgg#--M5mII >s̜9SLueee|BYi˅v?Z:cb>[:9Ԯc]\h);6[$ÞaT7)+*h[U9Dvݞur{~ҭ(R.6+**`6ޚ:K]uU0rHycǎ!%%Dhh(c)3߉A}BY%$$ 0gy_~~-8z(jkkUأ!`ȖKQfs:- \|Y޷t])gqZ[[mΗRoQ?>׿;///QQQRFK 677ucU9,^W,J?яl˔IkZ7IG&TynKILL'ȐvxSf,҈ArLY "?rlIW+I&aԩr=۫whF???|p̜9W{mיeRۖ477۴\4,K:1x`#vQPP}˔ \̽j9DK1x`899(L9_m^Ԩ&ꊠM;ŪRKY7jOZu(9s&Q3!!! )_{HsiH{,ǦN>cmY= =h{zz`;ERg}E߾}Yf!==۷oW]ٵk{9Qߩ7oܐ_477#;;[5FjI7oZ7oirrrBpp*ʫ]dj™b*rTTTM m77,֑XX[٪*=Tr93fmKwnPP> .شJKKquvf*yx޽{{sGGGN,XS}NNN&;ON2,((PUԍ1}}}Uނ{Q][[\;9s???Nj_^+gmǰvt k㓒[:˚z@,SضLqrrBRRΝ+oիF ޫwbN aȑtfA5s̮|$>>hxrQEE6~xUXb0o㭷o-AEPcKZZZ&()lriKߩ',,KD9LYfꄇ7N~|I[8 h.9CձH&$$i<{USWޗ,zk-RFAP Fs4 x뭷RݨR:TMFFjh4òJ{g[{n_\ٳχ(A@@يMr!TڀW9|TEdgg3fсn/\ Eg[*no e-zPcA0vX'쉓SuOHHPW(mT}. t1BEQԭ:RjwwwՎjU;1h]eAnu1i$͛u?شiU,}OppB޷oRVeeeX~}gV S %ڸqv{#?7a{Wd{UZUUUؾ};Cffj3<|(++;8ҽ9IaW(bĈػwvvƂ JKKvZvjjj;vPILLMY vZddd777ѣo:|pGs];PQQwX生)((W_}e{P6p@ >\-[T'imm͛7cؾ}ՍeeeF'Fi)-mIimRڶl" ZWW'jc,6zǀ6_m֩Zr,kӑ[h(iאs齦ʱ6^6l>2 رc6^ۚ667 ^x֭C]]#((CE߾}䄦&f{7k֬n#=r}ƍ5j Əo{mT);0sd?" 7nę3ggϞEII A+ƍ;n0zh 0...0 tQݨ;wVi;w|6Su:KZ\\ݫ0Re>J{||<|}}M櫲uS톲766Z^Ϟ=dY}Y e 3sLrm/]$$n?n8>}ڦ6^bjX5uEGG˫]ڞ'V'Mk׮͛0 裏aÆMMM(//ӧQUU%OOٻwu~9A{gyL/_M6o,""O=ji!ƍ媡ђ 9RuuAVXuΝ;hhhcnjQ1sLLz /{ʕ+𖆷c޼y1ʃ>.L[;F2 6ܰb |Wr=w%<~'KN,ꫯpuLW틧z  0XׯGii)qQ;2m̦-((K,M5W 7]}dmڥﴔ]yJWR{W_իEQ^kiDD,Y:~;ruvcj㥴*}6^(m׶,k{{XlKx4W899a…V]UvyŝA;i:yD[ןˑӧO#++==z4-#˗ɓ8z=a>>>=z4&L۷oۭsӯ_?^NhDL8Q<ŪUpսq!III2e ,7/_Ƽy@;ʞLmj*\|gΜ-7NNNFrr2bccmZ^:(W^y.\@jj#\%!!Adm"88˗/Gvv6._ltE]x1B#{A6zhb߾}}=cHOOǩSs#F0Z߻+=///{W/w^q^vǙPo-KmذhQG/iz pqqj[Ν;#ѧO=򤼼hnn+飻NS]]777uɚͽQ}}=***{+wEEE°jժ^uַը3RLVVVV>ǧ566ⱮTUU*s]Q ///PWW'WPP\]]uTzC(`)ݽYQPP\\\l䑭w"6e ՝u2M;  K{,YDwN*KUfSE Ahqfu'00Pw,m%gѮN\wqww7ϰ䠼 `ԨQnPۛ(ͷ]tP8^-KuyS,ْά왯 >;2rܞXs7:2 Ism_=yh2-MrkDd#\xQ>hk7Ru[zGڂk3ݽkYCr' }ykπuNHqq<o& WߟADDD1h---EY'zn苈'=QcԨQ$"""""߉,.Q ǒ%Kxw"J(g9 Dll,jkkメC")) ...("""""߉w<쳪{Y-"""""bz"zCnw"='"""""߉1h'"""""""d1h>"""""{|%A@VVΞ= ٳ1DDDDDD ک'ƹs BCC!DDDDDD8e"y/;v^ mZ AC=;yBnPms ^ Lm Xs~Og˶!'#"""""dW xm XGk`W̉A;`++DDDDDĠzdޙArg\UUq""""""o֭[ 22("++ ׮]CII cذafq3h### 'kjjBvv6PVVxxx Q.BdggJcAA n҂ׯ(..FKK ѯ_?DGGcРABODDDDD ɼ"|7|ضm_ EQDzz:;L83f̀U܌СCr,]±c'|fuU޽EEEA'3f ))Id(ߝh:tTR?aÆ'4bǎ(,,4z-==Dll,͛???B"""""G ܳ[XX˗/pitGGQ| EEEHOO'Of9p(..m`Æ j___C444'''DDD/**BZZA7p u4III&/@MM\߾}fJKKx'""""vٺuMmbnܸHHHɓ ƍسgϟGTTg IDAT8)۷/MC ---(,,޽{ @NN"##-[{r>ܺu ,tDDDDDkq"o߾rv5sAmmm㠠 اO8::PYYZnڣׯ[< @-ODDDDDĠl& mmmؕ]2@P744k6urr***uuu&^KKI:tv3K.GDDDDDԛpx| z٦Rn[ڦ8;;+ַ7-y:>"""""+=HSS''Uplopqq1~j۱ktR'Ӳ4vJEEDQ |}};=]4ix}o~~>KqRRi[lAjjV|ؼy3ߏ;vn3-- 6m$h? OOOի|L2#hhh~ U9s;{DܹsQTTBș3ggϞEII A+ƍgbɩK󛈈A{X:tHMM}-[֥˔aشi222ܽ,Y]6S'V\/hkkCffѨ)=}SO=mF`0:0}tDFFȑ#r)]vvvȑ#1uT;+@ˑSN!331j($''맛K)g3xp% ++=~~~=z4Əor)pDGG#331b (X?/Zli_ lynÆ lƞ;w6mbkըDSSh&yw`@cc#\\\ ???e'l5550 hhhGGGjkk`\]]Y %Kbo֋uYZ/݋ݑ|鈴4w 7oӾ;xκmzҕ_4mڴ[#QQQ`: !!!}A;РۖKi;^cc#Μ9i3O|O<۷o k*A=T0&=ߙ%LZ}eL_kЦA<ѽ){- ]Lv[_i3qg ;\"W^AW-5Оm];]4(//GUU<==>_[[[nnnnA~};SiGP^^J>>>&̖}eyr0 hnn7tvo[dffbhnnƷ~={СChiiQ}nј?>fϞ OOOk8x n݊Ĝ9sxb 0@7].\￯/~ DGG[ZZZ+Q~~ѢEHOOGFFXBxڴix-˗w^޽7n0z}ĈxG1{l .._,?444`׮]ؽ{7=j~s̙3d?O?T~7Vfquuĉ1gL><% / .п|Xf x7o>Ç~u᭷̙3aÆ(//;v, NĮ]t\%뉉\EE?>38<֬YիWcpqq1yA_4UTT!ɓ7|fwuu{'j̝oSN466鉉ヒDDDDDE=e˖;pwtױrJܹsyyyXpK3uxuu5VZe$ 777,ZHΝ;ĉǣGu?oxA;wrJ9`Fjkk[o`{u<3F9v^|Eٽ?K,QQ*3O>$>+]ߗ2e O~HIIW_} 6W\Aaa!Xd bccZdeeaǎ_iӦaڵk׮ʕ+3DQĞ={T͝;b7o~;g?>=555xp%&M? r 6oެc{V,|%;!! ,鉊 `۶m?XnRVrssrJ{DQz)L8prrBII N{{1>P쎎yۣG~Y];wF;!nnn~(1c^xg?S88qpYikko}!<<k׮СCUĉ`^W\(śo 6DuR@׿U7`DDDw5 v`ĉo]W_}'NT=b^GGG,\P;wW[=e)m{=.\P z 794?O3Ϩ7@YYM?vi |hhmmnGQ5k>rرc<5_7tPL2GFei)W:u}ׯ_W]ף̙cvs[9޻qFsSNł ,~V'?QDko=+WGJT߸qϟyS',`ӦM^~e<P8p VZm'""""bNVm6'11QEGG#))ɪFDD[nѪ(2[TT|Юa֭㶶6V}(/z~ݺu&(/֤]zO~~|]z'#o#fOtD~T۵  om;+']/hv/}֞vꭅ ,P=wCA@HH;-`Z6%(gΜQ= ޖҞ9r<_{KX8NL6MΝ;qeAmZ3VZ;w6Ǐ55AUAv'NMMMXtoŊF+vꅆ :srr??HC j : )S۰aDQTmZZZg[tՓryjj*N<>`Att4FJr@K._'NZZZCA;z fA!!!IWEQxsKeTϯ_gϞU 775/U-\l?܌?P\XX*n>xꩧTϭ]֪{[[[vZyXӽbԩfzGGGkL~F 'M3f޳zj]v׿^{  2+cEE^ydee|_SS{=:tHs̙3U#hF|z YXӽxzAlPPz?9[dffʕ+HMM5 _ 犋`;pܹz^{M#G⥗^9._ åKpաs=/)NNNG}777*+ 2׮]Cuu5>#|Gf/"?voT'"rrrt09jz^i'I&] ϟ?dj.\t`(bСX~=&Ol6p֦eѢE_ '>~o~ڵ ƍca&""""? K܆ )@7pa֬YqGW_},**µkP[[ WWWz7n@EE  d.tj.,O.^HLLI KSrqq1y Љ3O*}tOyoUAtW~WW&"""""bN=PEEj(ԩSzk&nc`LDDDDD کOPQQ!?^hQ ѽ~z|zC 19k|O {wUu}de !" HʪVnR~[i]\@  * [E̽?df2 $z>y$&s=}sek`' +--< ۶UXX+W"Wӛ$.῱; 1cF~w4^  !жm'?~j;^hTAiرZ|߯=zsUW]U9s%\|\C#@h?aBr86 pϧ'|R xN袋h5v;Q;COt7Se7~r8!\Çט1cYXwy3gΤ@HBL}]>Mix|uexX"zq\I 52:)..mNJI4:׽!cӦM:s8-[&\fՅxijOBw$!a2DfSki[-T0 B;Ј% 5Gx;,E~^:kږ_]z4ᱸG<<=0= GIcsݘ[}ޓ-!u'nj:vb}]`g0<4fӎBee̙ jݺuڷo7o$o^Ǐׁ4}tھ}v3f9L1mw]C U۶mW vZUTTcǎ:4rvm.**Ҍ3TPP;vۼenO4IIo*n)eX>z] r׋Y^~0 TPPZ=tw /o$eeeV+WJy{qnڵk~VFF~a}5Th"'?њ5kK/wuiϞ=/^x!Ǝٳg:uZI 7ܠzJ>z表?7NSLQ۶m.=ܣ/"{k„ mȑ?~eq-hʔ)qiРAZhxOlNy-Z[}Y9rƎ\Ǐj;>OujK.~O<.]ĽQm.))Qݵw^Iһᆱ.(:N2E&M$ :T/ŋ뮻jk&x %{_9kx4i .ȑ#BM5|p}\?I/LM6MN飳>[ko.2ڵǎ;vlT`Ո#t]vsرce˖?wݚ4iRT`ڵzK&MJZ&SL_;us9G]vu_۲e&N~A[n ]vTuA0M`z |}9wo5t۾m7N{qklp oV9k,믿> >Q@}!Iw}!|*--$=Z֭͛pB}5~xo}Q͙3'2/^ oQ7ntRܹSgv{׬Y HW$Kvޭyw5m45o\w5;g:S5m4k֭:t萖-[QFE?0̟?/\W۵dmݺU֭u]7O9 ZlYԿ߿_@@@@'ONM_|^y啄4zphѢ믿dɒ ׯ׊+5kϟSֺ}&L'x}^Jtz5ahB|͜9Sݻw G>o}ĉ1cU} /kw}ۨx}$IZpa q͋ ]ti@h %QƍݟN:}_FF~{>_wvY=P ἵن[gI&SOMW\qE0 6$]3<Ν; (-ZG^{-㜜Mxϴa߷o^|jH)Q=ۦxdyg7֦|Qm;^=OӨmYVm;IxكÔ9,6Gz馛~b۶^uxs#4 1ܟ7mshÆ ڰaC0+?vmn/n"ɫ$wީq]|Zt.]ՓOͣ?p@ ~4D"sK/?yQ-Z?yTK\38COّv[Y#E^ Tl9dffܶGնcŶ-[&6m{8p`uw%DA!{ի*05)_{SO=i,))qKNfMA2W|***3mۮu?fMrT\\>>N.”>7 ƍ!mo6G-$Ç׸xhSyt^uՐmO ۷?|IRQQQͶm]iPxN;:K&Mr'/)Sh 4h ի۷GdΝ;}\"Q۷/*dԴxCׯ_>H֭ӎ;T\\[V=%vHmۢ$rdr)ouq^@aTOT ˭KێWmoS]w}նzs;To?_yKS?B;s"C]tу>(߯Ciʔ)n95qD]q 2?õ^>>'|w*((=5mlչsgtzcQQχshM&jۓ'ONضaxͱNҶkSo3ӟlIN{Ν;Ϋv!)@C`xQp7vwYw+=ӧO26nܨ?8p暸8ͮ1uT > ꪫ^?O_)ϰ{;: ȹZ. !}ᩊ}{C^lHOOն#iNu_L:tpQWTTŋBjӎ mG݃~]Mc{| P^^~_{W_}UV?֬YTXX(ə꣏>ܹsuKr\Dt[SKvZxn/{Wmڴ=vݠZυ+))QfR ϽMEVVzGyD6l3vءx}„ zڻu5d~…I?36F^Loy޼yzk)SC&2 C'|[^[@|F(ܟϟW_}5i[`N~m% _sa7tSJzeն?Z!mۑ.Y{S=ZrJ?B;{ǝm޽KTPPyҥ7n6m￿WUlԑ:guvCkqя~iӦ]O߯?Ϛ4iqƹ?YZ;C=zBK~{q[>?@3qDq*׮]t=ӰaRʨz;zfgg뮻r]m7^ҥKJm;m\x^ۧ}Iru81T^^f͚.L~_6mҘ1c4d]xܹ$i׮]*((q|zW}=hZr 5|p1B^z:uRm޼Y'O|.?ui͚5ks+PNTVV-[_|!Ij֬!&Ppw詧Rii$+И1c4h |>mܸQj܀9H% ^mײe˴h"k̘1ꪫ4f檸X ,Ћ/nw~c%,Ν;gϞ'[nQvdfAH/POXϝ;wvsyQ~_ޫm?3Qv6?Z~V^@ Pmoj۩ls]^/j_  72NJMqE] ;t{U-[e˖%|=:'''Gu룏> ?~gffgѣ6mhΜ9傂zݻN)K&LsjܹQ|׿yW^$}u -Z믿nx̙9sfe:TӦMS~i{uKrI0nܸza՜9st 7e[ϑ飗_~9ZNNfΜkVK,mgee駟ѣmڴٳnswޚ6m  ׯ_? :o&|lbS?zyy۔ CՒ%KK/U.2^xᅚ>}.\7ǖi5{l=߿mٲ~ӟjժU ?NһᆱӧkĈqשS'-ZtA`ܸqZtiԐ駟jҤIQo,agnZof̘L$gXɓ5o޼jóя~'xڣw[ ڵ;3%pc4g=S߿: O?T^{mҋmɶ9wm{N"oHZvt뭷BQPk/|\fޞ=zooT=;8jpmٲEn޽ZlyDڹs:4nZ={Tzzz\rvޭBꤓNRݕVe~mܸQ%%%jѢusΏoV;wլY3o>ϡCn:E:SԢEMG_B}:xҔ=zmMeǟk&nXD?;w+cܠ:ƕ&04>JCsV%[vM֩S'u)v9ڵK8lnZC 9`w4t!h֬Y[ s}EMnܣٶ6h( ?EY4ㆇ6Ŀ.V6ReP!XMM.r~}K& rm8kRev=E{9QLM+\}ʡXG taÆBQ1nܸFý߇ K/45@= ܇ +Vh***jT=''GϏagX.O999=zt[/fK';OH 7Rx xB; B;v@h B;v@hvB; @hv@hB; B;v@h B;v@hvV7F IDATB; @hvB; B;v@h B;v@hv@-١chNx;/Jdu\gln4)/_li`vqXmNHaHG"'Aْ OfԫD[<2.ègZi0%R9v1$Kf:ZϏ)73x"{_rq7?8r8uTg]ҒdȖmv$vj}MO:뻦uqcL#}8j9q1ͬvvzL~ierHt29@H.䜔Y'I`h^1#:,Ď5\VIM+4:2UL>L-h#Vvr=v2 ջGzQ)/VD]ˆ!_ITFMpۛ!Ka& ӱ4F`n"_7ωo;#uھ,3r0/7_0dI'Y'Y$gun$ )Ɍ'3f-YLYKpDZ |- v\ ;ƍ*:|PTfZ33խSgI-ܓ^hOضY++nګs'I҃rG*=aK[:Sgf5WZIjVP,6峤N9եm76L7}CtAe,+[y;ԼjLI>I/ضdRmܱUASLClن)V:s<1/,I{k2ϒNS̪scR}mޱMťUQQ,jԼjI72I/vm,ܦJK UAtѥG'AI_٩=}'C w%z ŒaՆ:4eg]\eQ{my;eMڲ}KBjLݻtU<03ܲ3C> x:=;~&:j1QH[w%evUz -۰df~f|e+7'GҚ]4LTv_ԓǖ:U^Iq?+|+ܮJӬv7e(--MijIRZTz{l $TJj#^])-ɨ@h@aIk>ѫÇ4'VTZiԫu{|bPg, i][e)`J% ?P:1j:qrGzaJ}LYZҀn=[~,CRZ Ϫtt#t^.kQ$c:==T,c8؆dUkIc.Rʈ +FLr>{yZ>]^K:[ᖻ5,TܮǞJ>lVV}w\-:t; 5Mi0"Bb2m-YJ~vzru\Ո!gcٗ]m/i/U1eږz?ykh^t6 ![1 HZWMdyMYfUдm;Öڷns8Sc͔AU*%m);VRV3lcJ7 ]0\]yuHVly OvfDZ1g;]?yaX<6ئ?8E%^CP'mK͛k4j9٪$ycFĖyPAz*I344G^q? c#s u%ms !sF ɖ/Xq!|䫝;ЋOkix|zҙ]z?@p'$/iwe})}{M}LÐanOeT//sbn5IuqJZ٧:`Z*:'ek麵:JiȌ]RTIs>ݺI֭E rװ^e^S=`lÔ.!{vKؔn{%+*xrf t5ʔMнTJ}ʽF/t! %m)h'*Kv~CgN:#>+$-X((X ˽cPakUܠIC%^C>Si{/,{ {0LymYei U?*L[PeH5?"]vNNUcKZJ=3:`Uu^{ rrY*K|XVnUgtwXx1#ޝ.ǖhZ]nbƜ1q,vI)>pOJiNj4hyn85QJ|1U5Edϼ$U~is ɶdf+;_;՜4~u9˩!#%#KRaG_ [\-pՔ0“"7f7{q@ҶCݿwNt c[?f҃ YT?__Q8d 6SgxKI,_ YTndJUft2v[qf?6 C~S*z׵/X.R`:rLq2!yf%lsTiNר2bk9| ϒN]% 8uܔЬܱSE$dMCY. k cʶml^iv%ٖJGV>E䯱i^Nj F^҄'<%mÈ峜veTW*윷ʒڧB[)iWkN~3U m)3Tv-+#雭/[_qWvFǤ̀вI Z2$<ymkT-ܰFc4U䳪+|%\̩*z}B=>E]dH1!r2N]6 XE\FDf۶L[!WzRmp |_S_ҖTuqeKN}:S**ЎO5{b4%'GFO C~~`޾]tOh-c*h5s'v®-[zW+q1'3$_S_8\iAK][%#F{yZ3"t*32 W^R{-eh=# m*/v 7nR058C.o i*9=[J5s5⬡^^ͻ݅BMKlݿO=Ƒèbp/xUHym ١{+**c^-YR> T(`5=w@hLWHM/䙯EQggn:(MdiӮmh~*=_={Q8^N{ۯPNZN߿`<8.}z,]2ViJ>__R{=3q,VPWP]۴sowahoQV_u,xgvषD^<39]]mںg*+s}zvorӐ3gv9EF3hQc;;ef,N'A9`,[϶nVy==hSO]oTI3L8MvQ]tFS=iai{oח_41!E+W(1ɞ-[axNk6Rb[R45J} tr'4ՀV,֪mm+=hܾWߨQCN20襇_Ra4hioW]Wِ{ɽ4MWz%˵\4s{%?ߋnTnnza"y mi=ZJ7ȝ,n;3m7<5%>K MP#.֓3_RUn Stju62+V萿R~sMZ-_ >/Tyz7T(`}S]rڠjn8O3̀Ǥ4ulUGuc>aذ81#;K>T.<;>soTO |^7[cO6#.D>b4 #~>v"9UGqKZvuhRҒV)5Lܣh5ۤǴ#Q@T"#w(iVmt#CY2$gIʔtn^o]p`y-K 1]zK={9$-X񉂦 uJ.򄇋{=p'pZINVTuJBz,JIo|Prs_Wj\}ZEi+SRsIgw: >ZJjj& u)rr,#[Ntl]=c,InjS,[sahUcK|%j7$WWuZА6nۚpq'Fۼət\nKl)4QfJmeIʖ4qԥj a}a5zymۮv =!qv9NՈACX5?PZ8fٔr;uoBg;szms_EEھWr"zB3BeٶJn| 34M-۩iD_`Z}c׮W4I mZݥeNHZr̅jzִL:py ƒeҧɯ JZK-+Q0,5M.wNn%{l-\\ၢFmfS b0c>͜?[u8jWkNϢǒuZ.³ُz<4J?Uı?ɵT`7fܡ-un>$b^I24ʪ *o)ͲpgeI/aXHSN]䵜̖!:%?X*HNG<ǾjL{B 杢,sLZvQm >Y isPp;{q2akϫ7OPvx;)'Ȟ3aax+LCOzA.<7]'n;#Ӑ4ŝ6,=B0rOZFlD։3e#x(YV}^^wk[6LջwtNO6t<[==hiǖmRh&tP҂KȽ4 ު:E%hզ ڳOm-Oox6WzNqYir៶dҩ$OV2 ,K[8}př WLIYΝSn=G=<˹W%߻@鴿,y "ByM=5W-egfUr+3+#ow_yOِ3j~)`:;RmȌAIk6?4Zk[jfzcVĬ f8[3 => ]kSxH|O 37ʮZKNh|nIjBtJnʎ(vr)#g?^E% 'tnX~ Pufm  ICk WT@>XT=z2pm5\Sj\Ag?:Lvݣa7g#ZA5OYm;7LIwOVEeeN/-i<^fTCmr\#{l,:kզJSUzX,농u1VF~:onaȮE,i⍬ '`V@[vl[GN~Ϊjl20 UIAIekʫUJ,eXF;\EJՏ*Yjǎ0h.9r[X0]2ԭCaD?C^DZ!D[ǰxf- m eCۓꏪ _He2.?([Ͼ1]%䑼̠4aN9#F2 1T."d=#r;$9,ʝ^3괩eV3|8']k= H/X6lKagvO{ln S%Vh&'%el8-_ W,m7MU^|mqzue Z5 +Q,kj,cqo fFUom٪  OĽǣO7~EE5>-= w2/ a5c{hժ.6R3>ARԢշ:L wژJAWgXiԦ݅ǿ BZC,Y%Uu&+ˮtVҘV'GtHpz[)7i={jʖ7Fv[Ri=n9{׍噉Tcᗴ*׬ys0%vhݬԱ P)C-<҆=ozdF좃=zGsXsa.3`KVaό{0 7 k>XT軘 99x?B;TVVe+===pʨ^!ג.m](gʴ--s@7Kvf*xG>>XTWRtٮ:4-g·IWUl z V?ҽW__B*ʝ$)#==n)}2Tq-\ /[̑ײɵɬ LMI׎$鍅Uufiҧ۶h7ݲvfWv^p3",/)/e2Փ᪑Vh8xjKQxM\ 6gjoY,fJ7zDc=EKC^%~HA˔2 zhFWZя}ezuΓ\\ SL?t$$$0ۡ=I\kܓ57uZn ie3}S:uQwds sޑi;'w֦U6"z߫m+gvk]=b3e#-YZ+cUm%Vkv2'6L٦4kEOhh#t2DW! I7XO1KQϣJV T敶e7iMz75{hjگէ$ۨDVZ7:Ѕ_n: 3t!pln2 Sg>NMy}r5v)?{U2݋^ipVnۤ}Sw.= O؍X0L|NF4ʛQRJϚl_ rTn+0M=:A O?rG)v^aRWtp[|,Cgou˝6 U$GtCT=^F p:mW?9!•2f=4t@{?!KIZW^7SpǪT佛5%m IDAT]'9lHi+oY3Ul[‹ w'su0lcHROݙ:a #"|z_ܶjwFxA2U1ugjoBS /{P)TYd|TVČu@fFjk;m"2t)TVvxG H5>w>8ìP=_שwjzġ-ҰU5۪Ԃu{ U!Gێ.om i˾Zk>|jn_>S Pq~~-Ry`%w}Au|U2M+µ+2O-ڶ37Tzc"g'DFO;M:Q =s8`('>63)ӧ_ L :w@w8fxZ+gцm[U(hJV.  _gGvYr?;S&]9Aq kZ{}%3o[{xӽiNOmȖ@Ĥ_GU'>r]Qn-$]gFviQ\rǐߔ,-%t߿w]ҡL#}Ǯ}0E,[Jںtzn##Cerf[¢έ0K6:ewVy΅=#>ҼfӶ!C:>kə/(2@x%>O;+?QQԻ}.m;ʮcvzVղ Ca_sK8Vu|tk$+㈋'e7W7-9>@[]Y^(M ;km<Ғ7kn-soeR5h߿Eܯ )ۻ =~HF%Y,s+C;;ص&In]&.;rM,Nkc%!1:%9!$$$:~?w)}9ZտPa A{Ir;fNyScT$hd$)J:rXl™d)x\zM^F!כG=;r vFnՆ-Dh/dzDjh?+:N*E emغt CYeq|~pRK\F/+hAKMl(LN_; }Pn WL(q+sFEj޵\>t䀺\G9xG|7Fն.`*Zf:I[35wv:N'hCk`8nʨq%{X>.<-`Uм{L ¾]kߞjoӣshe)봫dBm>?ϦVn\yϔ17cG4{̄h8?bSz',3p B;LFyS}aW^#?r*YCϮױ6I\_:oDX8ݓ[݃ODk[INK{HGՍح(>Ʃ7ܤ~e݃ZsUJN>~X=o4;/\7}Q/()Pٸ^;Z+lś>qV-X\2)%h *oʅɏݎk *>D& 3_K?F{] -ߋB{:Utбqtx\L}YGܳ`V Y?<|ci;t@sFMH0'*n&DOo8KwƷZ:ae_m/u#8gN/H5}J2r<_N8[+.h`Hu9_ $-i 5ŃoGJnܠK?BARaeS-g35KT&ĕZ6Qc e#A'bOdlf(`Jo>#V5\,̴O=S]]Viy3[Yt^FFʚ@n{A7/LwxG+iլt ;t:2kxQ )gh} \)u蠎e[ԐQr%PZpcu݊UZYbL3P=iXP P:i9z G{d'3Lъ;li_Áhȑ}+]n_1K,HJj2,[ǿRU|}Wa'fѺW__{? Fi3}o<|HyjpS$c- zn*8ᤓ~䏋#W]Ԛ<'տߣ@_Gul-yQ7j35A:r; Hʁ$a@ps$]|о:Vn!ݦafbU[&|ͽ\KRؕv߻(=Ad|iJ(w8;jlh;j1ZeYW*ݸrרI u=%ĦMwy=*Y ۶=ӿrvۭSԞp%gjmˌ%}75긟Q?;ZnWޣ#ZΣbrC Ig-+?oNҡN\%i[򯱁4qh/q$z=y #^eW3rN9u=;-:U4|}]$??6p9uy AXHlۜ_i}lv7577WvUbI&'Ν)%6?OSVR1T:džM,Xn59vT~1jj:do o0L%B+Tl$͝xf=Y/QkOjՂŚRӘ:+tN)I>rNRc s.=tϰFnoɑdd}I<wJz^?<OٯEu?AkWx\yׯVk vE {Itz;UJmXe-tgk{CO?Όejr\-%'b.WNU= OŤcv =< JO[vM>؆7+io*(챣o炏͒]QKo'ɓ.ië[!?HgwX2.?XZ?VǟNT&I~/M0)1e|2ʇ?yyJMvۛ5q;afM?vw~zV}bMTs-sAw3QşUq(\nUjU겁|Qu)+کvB;{1G"W=lt <ΞXboT~'@{8C땯:$WFwu?8VImVI'%/ځ.Vz$T;*/--&ϲ}\#+#_ gy_eSՕQkqg}>;7uk^C?C1RjyE[M(\kԶ]ȋ\shʸq4&J뇑ˑ~t*/}j<g '-375@=enY}jsC}D}>kjHJT>寽:%ĩ肹DsW^L]9\eW5wxՍNǪ=:{JeԖݯɳL{IX'Pzm'HF&색vq('{yx۶IGYkCw3РlV^ڡC'˵@5A#覔 %=/lLk=_\Tt$s?^ݡ ;VϿSܢh58eӽp/߼F)kÉzrJZz,]uRݾImUcڻZ =o|BM4E fuavVy瀺RS`tOn'-qxߺ)cҟ^s}S},=2ct%Xy%K7{lFҚ+ՎW_ mk~!'3J1dҎaPX|&B-gs^L_juuE{kђ9k/tA54Q_V1v>r>nm7D)mj81:nvmؾUF |'l5 1n]LﮞٺIno7uVMO]:q'.Һw-Vjl.Ksv5RuΟ8]?Blzy}*9tz6yM]ʳVǃخgm xZ/ߥQ}Xx& o/-Oҽ/MnhҗVP0Vzi+JOK5EЫė+OI'|/\Бz&Cds+jxg5mآϘ?X}Wjs[/_?t@{ٟ_3R.چk.+]hnX{J5Ta+g^;ݳ2(t}_5/Bf΍G+v=I4ܥOjVֆݮ}ίAݸbi3Zrιj¥ٺ2V0dg%s&8n5󗄽 JT4Hi*٭_$Fn :I W}XїAw]Fv< CW5㚵VYCτ;ZW}^Xsdu^/_6uGESgDeއ_9ijgޡ,I5>yf $ Y۽O{DTA!탍 >k++%K3m+:ѫĕ՜f]Sd|5D߶yjrѺ .`M^zY}j|=er6||srLG7n‡2s%;oEwT2U #+ײ%K3mk:֣LM Y:<]Z>{^- %]\Wy 'Nw-5^Ƭ/׷_En鉗!3f=[K[z]#ᰃ&.Kk˟#I+_a:pB4qYZp.[\kFt'6K4nϋ0jטM1͟sϞ2ݓ^frh=zvNve@kqZh\\2=y%K3X[عlr]2{A>攨< $D7>j}MAhR?NӛEnh)9_}P_٩.(zI3VWm.辇~u]z0':M4md-3WKgSS4G%ИR/V}5~X1㈖AyAͿ1w$~pV{e [ٯ;-֦:hה T+'"|Jv~C|&>S׎g9~A4srAaXpht!{w?Ж^WR@H_*z[0MvPZD $5`̄3[)- ĭE5iWD$ƅnPŭxc+,D*_g^֠VwJTtC+:MJF/o*3=+=gMrnS"\ ҩ,սt\5ˋXV_c#L?fBNbǦ}Jߒ㶃"AΨڨ|Eo+918qiă~0OCM6}@["å) Ԗ?non4:/ti\sle7}9U  X v1: me52J B;v@h B; @hvB; @hv@hIDATB;H (qchv`vƧ0LC;xFrB;3=3y3- Sv B;@>C1f21d! A piɰC=0|˘v!ڈv`XNYu'Kk߸q#g`X)̪qPOD׿5g`XYvmǍgDt1FVGս8V{WG:Vj8 .o/XƍeԩS.g `ȴkw{Ͷ~W^[*;3(ux/~/oZo\*D'Zk p+,r;[I% Մj~FE;(V0iI oqLfʹʝJZ·Uh/Ӻ6Nk]/,k"0U2}p^*e0>!닽\J9}X/j=]XXQ.\e.֫ ѥ~Kv:zjYPƩxZ7vRcܓ]Uܬ%Wb\@%$ _{uJ`VrMjvZz Dk;,Uͬ,Ww'_;(ѕߗuJu<7 b 쥖#}|[-Ŷ[yL:T e]v<:dK_R+W+.|K4']8yzrku.tv wXDv*)R) 0< v֞u+[ǽrU>b+kH ^MRܲk,VjRJ* [@O/aN^7ep@NV‚˔Tړ;  n_v[niINw!/W+=T^mCs݁*Jd௴xhtYYoqź>ڡ}0{_+\Ir3}YMFן @HO} @V ՄR/bڗzmfOG޴CQ0v5 dL\ P AZ[Ҡ]*[\6dʁh/כ܍X *^kJ**i7듙Օz}mC{r5cY 0ᾯ=-;X;_jbU%O:!%5cC`u]/}]ޭ8z<ի纕}&_j]o2GuηW°`rQP꽕@Aіww dX6m*l-tEXtCreation TimeMon 20 Mar 2023 02:05:16 PM EDTtn IDATxwx{v75ZB-iJAD~`G_ E7M^HG`%@`..̜df9g _`w< {xA A /8^p xA A /8^p xA A /8^p xA <<<ձc]`,STuh*U@j5wYvw/Wz=W;vcGp wl۱c 0D&پ, PU.>~_))ɷ9mڶu cnw'a&z%If&c*PGQQ-ԧrvvLa{bǟ$uaܹzZj@'l=<<5kR-JCd'WMe^^8qr!!d_YEaßm x+I֮],[z$|eK,$ի úԗdҦM'I8 .\L Q4ҵ.]…gG2V^c|=:hc}oߞ{-EWCtE {r {驧+11Q$iJJJTReB;;\EFT֯ɲ}!_Zȑ_ȫ=0=+Yn/I:uu8u$?оl͚UJLLTxxE{ *Iꦏ]d5j8}$KRRg#ƍfjs?aLfݬע,~?F;w/߱cf̘*''gջ<:89%E۶mdR*Is͒$EDV$LfUXYVk6ox>Yc/^TD*pgz'tIҳϾ[iIYnkFMJJڵ+ոq3խ[_gOVdRJ"''o 84~R OO/{%c7nVʅW$5jT2VD$XeׯUYUk֮3fLSdDUEF\lܵs cʗw9=džEV`,=w$)8(m /^ƍ^݆={W#''gXT$I^_|wnN͊ae)l,iu`FFTՅ onmܸNmڴSy9]n/$͛?[3/籿Kч}v.I]FI2SK҆kuEFVK;Mvz'r2NYx1=~z`m߾;vD'OPɒeõv YVmڼ^mڴSDD5ET"IZ3x7F|'ᮔ>4&&FA޽5׉ dٴ` jrvvR:UV]%$$huا4-' ۛLfϴFnV[TbdBB G+_mÆ2 Cݻbц$I7ojUj5UBei޿s^ܙ5C-e+ܕT}^_Thh)999+((X]ԻdL3cɒQV^$.iժrw3_&IzO?ygjMS׮=U!oHHa y}W]n~Imj(JnnnڸOYw|fXTi!jٲZli oG_s-[6|y]~e23OTL7n5ȑ _RRWiZا~F{LF?Vrr E֭5+2lyFb:~Mשl0Ig>7LCi޼:q⸒StYj7rm4-_Dt…kg~1@۶mqnV&NW_{N6o+cǎ^A6- oڴ>kW~úw&/v;/8^p xA A /8^p xA A /8^p ,9En-A> g*5-U JJJѦ;%:p\^zGPu7q{#9 x]\\顤$%&&iG f{zHRBGzG8pipD:ܜfGnqquwSRRҔ$WwloCrRsu9w:Z^Qk1[(RZZZ-Dਲ[su9w:Z^$i夆Q80Gq{Evk#q " A /8^p xA #4"Ӥ[uPy-L{ө 5rEy1eqdUį_P?#YTXM:F1縯9MMcmc]zc~;EO[A")omHR4Ejۦ}5EW5_i 4I2 C5koPg@q^6"EiKo^5jkAgps"#fƗ՟}||[dDU{0wM)xeko9F^m6(#޴=ux{M6Ҕj fMS6^+:w$d2C=ս[o=ԋz;.Aȩ[6hUVKzQKHVZkW)5-5ӾrIu^V+t҉o?w*WU˴pѼ|m{d2p,}z=x }N:i_>x0n6Esocow ^͋WL*],H5/G/o~ά]ҧ]h}ʿ0\T06ެœӤt{rLEէrIdxTToh@5-VGw.3nUAR%eё3ӷ-Uն[7^N=l=Y~Q8f=vZ;ɻNݔwJj_ǪZ  U"SǮ -QR...:p`L?׭ΰ C*VyNMM4W@@Ν;E20ŊWGBJJMMu8ժe}Ϊ[A }AU\y?OY^{G:i$?@UkCN95}TI&O[7מU^`V-۪U˶3;6e$)lwra2Lڿ~4N[n#ԡ}g+о+OGhE*QpC_h 3poQ1_b%jhIU;ձCJLLPA$IQMZ}N*R_Øu[,CM5U@@bbkee%&&Hfs͟+00H'NӔih|>Jۗ}Uz-yyz5͙;þNv+c1[TN:!ܕ~tiI>z{^z헵n hؠ/_>rP~Y֯䤮]VMYR?^$L0[*lhݚXm۾%C~)RT 7ֲKY$[}k)!!Ak֮ԏ?}K2|>7wpo` 922tYG/<\VgNԹ\_]HO53l DvPu\M]27U{1yVgu>-=]Z^|~@C{OI?VQWӕY!ŷW:TMN Uݫ`B*RoۢSO^s>ժЛ!E4s0g땗T۵o{kʴZrjתL21ܹ3uQիP>Ru^|ٽ:AP}3/ ҇|*յzJ͚j׬;vɫ ZtytѺW4lDR4Y1z筑j0JK,?|3OiCNf՚9I_J*VDe˄i9>s  [oPz2LJŋ8q9zD!!x4y~0F^^zwUL>#1aX-_D7ӈ? +CZxf͙.Ij\O?V~k͚*W8GSW^zKݻ҉5_{.uhY,BCKiap$IO {^m[˲ /O/}h5oR7oԤ~Qjj<>SR-8ԴTm۾E ha vܹTXX<:DV/U08Dj׮g_gaҹۭo T/ /WA#Tk9>c .ʕ"3١}g -M_ß~Q..2m:o}(߄!;vvſ oE6#YWr1HM:j4KKmSTK:9[^nU$9/ҩKF?]3:ƒ$FoKg,ӉP.UcZ*{*֏wT$MYsp$ǎg 4q8͙7ݻ[=J 5Ν;]@}zױGӏ{. 5Ҍܵ{>b;""ۻbUFժYWgL7ߍ$M$=5y5jei޿Ѓ=O? H&MOF}yv~:t@USG1+ިaҴl٢, ."jʥ{LW;i}fJKMS4ol[0KO?%I3fNQ ՚+3Lu|{퓤Z&|}$ȊKU^C%giȭԾ+|ީ^yFI'Ukԉ}:;h2\ԬZ$iG#M[6hbr8)Q rV^._޵/ճ]-k~/ ֐'Ց#$IK,7V={#͛?K4y9 &McKeG'WVutQmݺIK.Ԯ~G_0G}꯵kWIUzěm"&0d4hP_z>s5jhjy}$:}R/RR4 >|g ^݆ZbI]?;{3*ezg_=k~+ؼR_^Rv£ó5GLU!0;cxStJաQu)ĿkU:x^bm__Kޯ].fx$Kz@Z-ߝ"W7tBVW"JZ$s*U.]IJܥKvWfh޿5nOJLHPpկHM$yzzIFVbтs2Lx|u@pW/_bԴT{$ɧ$V:9sgױ,MQ5(11A;jrr8sMKd2~ƒҧt/Q6m^o|39Z5W~PڱckRھm=ܕZz|||Ud ۬Y2fS=@ێ -):zk٩}W/IWVYEVa4beݒaCQT`!ܹCօn͛pOQ$eq%iWa$]kWK%Kf5kUbbBgkhSէ_WY<=pg>N9 yQ0Fqqj~}gze"'m۾9#,9۶H~WßzQ5kԖw-[XW,fJ*6]I:~l>|+C7V+I^FT")-བྷ^$-U1Gk+>w |vQ$3=t V[z2@=O}j'CV%K˧}=㵥*?7 ZVI CQ@>&:37eKTOC2<55&S}5kn{uooo\n?ݖ.]>Q(͜6Ly雳W^{VC+%%E7շ鵮ܸrܙL\Լ+Ҭoۿ uy")}vEj# Lkn˫w^ 4L ˴L,-3fNZwZ IDAT?>މ5uD͙73o2x}N6~^yEl\ǜ~y6||szwE^[>|P__~ZQMZC2mwљ]9Vt9}HŪ~FjҸl6v٥|m׺jzz_ӿ++ffھýf}͙gTj9 6[dZWyRRd;ٌJSOiķaE%U\uS-6STw&e~zgvڬ;*.%LAw30w.vq;~T+UQPPN>iHŊ'ܹz7Tx>֭_D)c&&6/ O+I0jW  ْa<}lݨ*F R%n =t rqqQReTNC{4dz݇+#3+53:XfVY!o +6۩}JMMOcv;!!Ez"E/վ+Ǣ5oLLJjդkoӖ]֐OSxg@v]9 0L3\<28(X{6bc_f!o^[)\Tժ;]oUFm-[Nd^Ϝ1kp\; |^$_Q*^7sguAUTEE /.*&6Fnj֨!=@jۊ]?m.]_;HzS +VB?$f%;1_HHa޽~v1U @ێSNjEyP䥍+[| V-$mgŊP ?vp66l\'WWW5oʾbϾO*ɔcKkcO̮hؠ$+7`_>UTEE\x*UѣG}իg?߶VܯߧOMꪠ ŋUpQM\6gmn,){ #xq]Vj͉P r|`,;uUv=>)-^@;w|X QJj7F|=hy_UPI Αaj4Fep/|GOէW5kRw/_QE?\Ծ5ױV^!gE5n`΍/;pZa| MJNNkpoYv6m^Q-]Rj0JL IkZrԤq34ÌQW8ii>rau)ծUW%jdZs}l 1:t@,PT1ھcTdi(ghYMܯ:>z{c-Y@!5j)ɤǤ┐*TtY-RLR⡪W=CHR9#;kᢹZjBD%ݻT>"#j޿jrIٿ?;xq};2E<i㬏=JwѠnUWg&}&9=7^[xNS&5CF9 }9qJUN4ꅋ:أkQ?q]~v|{5Q=;ti>N 3m޺QmZSeNh)JJy{LkUumzěާ9:{:u[F?6ӥl6zs5n5(!!^6o~OuI=03P6Pjjf͙CIIIZz5ONΝ;nMt9Sٽڴz^#ǍI'Orx?M=ܳPhܹCwl/GhGPQjתxmٲIgLզNq:}oA]<,ͦ}$[+8]Q-Է@$믝;4~=O|M畯=Ԥq3Ucd?F)14y4L c;{-Z 11zճU!//o8y\|7>;An-8O>={v)*U!٢sji/ ժ7zIC?Ȉj*Yf] hع];vlU>#GOh5uzG_լYG-ZV\l/qRjj)wl /hZEըO׶[rz?E 7~kYCֲ{}zp0|I ŋq7:wt֥pd٩w9:;j򊫫&O[7מ=Z^ xA ^Զ] pA /8^p xA A /8^p xA A /8^p xA A /8^p ,㣠P?xINRⓕsKJ^c1$7RA yO|MϤiש4R[bbAJjb.%t4֪gt0|H.ƒ*o!glәK69ݧӔf%]Y*dV y8JNbm:p:{GP,!&$*9=ѷ C^U|dqu5-MtbU҅2[P7y-r6 [:}ڗ4ۭgqR9Wuv"alJΦhgEIM%TMn~r)՚K:}ᘎ?Knw7oɢ"> )PL^bqUrj.&dQsRow7Ma RX hRR%J{zguh4/>B#Qu6Jyne>4)wWp v5fJ\?K#VK-nXOߡKiQ{ydR҈+-|M_NQWzAHeΆ^n>]=yɛHXYCEge]Rl;Ec6&#yvn9Z:[|]lRifCjYY9Nq'9]ꏿӆ$fCEgupQYӏM듴x} y'u_&m=)ے۶d%qqy˫p!FWjrO?k6eJ^͡TV,__(۽? ,_VU)LYV}: ΋e7u\oRP%[4VHzEM?+JMLu0O:FֿcR$.Z?;yqlQWj nYg;Ekb Kοe\Ϳz Vŝs'ҭ fO k\}dz?Wn x{_8BGí W,^Yj*VN![ZMZ,.*T!gi{oNl9nыsHMUչ%m7#<8B}<@B^[y`[acPmPGjqwkFjyNxH5*JB:p6ݩiJz G\pr619 q6T\2Whש-Zo6J6n^wNs&Jh;t,/-cS͡T(p=TĭV]5oE HjꤑmU43xz9M=Ȕ/աMKs<̎ ] wC}]Al_ICj@-W}.Q.MTbj7[w޻ΕչI+sahrLLT%Ģ*!=M-OdW3n{*vpݠ< +cm\ҾdK,8B|3,حBK er7O\T{GW3{0Z\UCk:lĉ3 IjY @/TA0[7H}(>?OUaO@a **//ʹzѯ'úw7y-^MnOE5xfgzZ!U:KwUETUB60L*P iwunEΥ+ TSJarUVM'潾@)M|4T;'y8聽{5l3xzzTɯ#U:_y:(m^Iy喇Zu֍-lټ' 㪗ɜdN߾I)'tQ.@r2Kr}eTOErw!fnzkk7sWr? Q;EjWS~=dq]M0;;b (u}䋗Y٧-i+ryE.wj-7?|on)ZOk\m*PpDmz yqOs2 ^:>zG ?[.~z|F(m6 Q/? >S{oޗtqwT9wxGU 9Kk/t_z*r{I O3@Q5_}TtZ2b)/\Zvw7Cop׃oI{vT܅jK] 0)*W=tt>Z}j[.ZRҟMzCւ^&V_ХqbZ:`I:p.MlOIMtvo,& {6g_C빪 ;Oi߹4dojd)h7 sw6:һذF%D%11&P("Uz]eg~%Ngp=3;sdek8M1ȹ66} 0 ! :6 1AI˻qO}5m@`B9`Kם%YkzB 5ʢCc" `(#y4o)N|zmb etT ,-v"R$KP ?B?4非R 'ə@HmPc2& ]!?0E$)Vltz.qR&DXU&zlEH* 3 J%,P:鳐|+r >:?C ]0:!! ,(G ڶ24ƥ%Jd/yXbLj̐(àO@HȾ}R(W&މO"H F#`q }q1>q5iТiDPe$U g]**99pG.}:-К4PAy{SU?{{/0iH൶5BEsgi3Fa-, b |N5+xMn(z rx}y'C+ۓQEct64x.4f(|N1|6ԭފŞ LvB11G",. Po)H>F|ShBWb<;CBR[R ,oGV/WbIV[Ѯ 1"ܑ+\)e&fm-la$|pĈ&\KE 楋 2¹ r1ߤu;))XTwq?2FK b/Ĕ$JYp rN†E`NEB 4wI_ JƃqNĜa76QV {[Bp*˼}Ř_D!:aWFv}<$`j*wC :X&=۟WήCeǹK0Ȉ‘cT5c81k` `; qY6i2'[P A17!VǕ fEȅnGXMc'a҃ V #@]v g7>ݼk[ϣ- g @ϯ;2Qlf=m|lf= סt'2o}c9'0~ rnBKshک:P@rtiqBSwfabL5-X2!X`݊g`\4&xt.;=J׺J|tui>&=͉wX <>y<3Ub{~tovb=囉DZ`QVҶbLKO|?d"9Ϻ?tP| 2@dߐ> CzŁ{1}MntrWi rgOhcTȺ+ !qȫ J”["!Ԭ=Z411Y+Zע۫ JŮ 0#1XEYo#m)q(n*1cXW(ku:KV݋aL+sTo4'\!uu|c熑Zl+Dq?'>k8p`%oQ+s[]AqL݋axL(+qmڎux݋驩G+} Jh$A٤¬<3"{kؿ?s]@T@(^ ]=<{'?_+^Lwu-1XDI $2LR/w/²SC9$3eqoUS"q͂{qDK=<DlZp_UϽ6+9sB4rp_yTBMABak943Â![>AW_p;^F哐ֿ4k@g{Wf8rЦふZ<^N/_f1"@4m6љY< etwsȕ-~6M:T:u'ynyN8jÿ!aqo?;; 0=ELt*'-LHlWe&8>ސR>rbf}gmXE%*"'k[sD}Hƽ^ ~ 4c'>6) xAb_uD 4$E";)+a}أq>6f5v:Dpb-58w>bʲx IdLQEXfs Ǥ(fPZPFJ  {DD I#ץl?]U]GOap F xDľ}B㙵[qna5rdAK}CۼB&Gk}>=nņS_>J;~v\l_H Nuk~pshqxlbHBzE ti[K֡[5RSU/ R"@ltbΣUh# CꏍcܻO _dLϽ[OܻP\hD[oem=(x/ .(?@Z52sKXp ;~Rq_1C 1dن-.l kO=亿>h@ޫ'ad$ǡɊUnԇ<-Q0Ȋr#CwAܟvN4r5%B P?D_x!LBJ_~t*"ږ6tUT<^#Dr=R J#["k¨G!A0J Jt֙年Yxw[HSc"4~ƠŎ^6eF牆# Yۆٍb^TDTG75Z\&-ai1 $ |6$GF.vy/6({ȱ{o`qqÉnľ \JK.-p6Dg2Jz~n'򿩸ֳ87k&|{ @ۃ*}liǪDZέK[p3vR65vqm:wYcJhq1 FgLiXw-x=rQZ}kٌ3u|e76mr}g ?_֢oD(dZ8sPA!ʸb/O ʁަ8|igЇъK%㕁5rBH݆.w/PeA,kzN@کK0iQetUݨG"b"b4Ql8TmXф(me'}gލPR۝1,m?Y,%TF* ㉅>:┫E8;rLN ?z\bn7rD?My'єG@bw(orKOZ$:`oٳdZ#@BPC88/8j:^MQ ۧB I:'}SV›8/( $;,I ]%\||Q>x!S((6^ # o/q~0%F{'t:#)PN~ VedY 9Դӗ/BֲAMw-@#iS0g#`Oǎ}>`BUcmnT1Q_ދkA0*õs ¬+ LnD`şa\Yl}},ށL,ps gG n.ZJ*RK؈tb{`.Svw?e~wrDhy4/ JN ;1 e`2\d69319eBAG)|»Y{w 3~wt!+2 ,b_н[ʧvDrڡ#GYSuzQܒ)I>J-@q;r b_w|'#G18R)I" "D@,dcӎ+65z&+JdBfz ν+L@pf4WcuVZ1yY3Z~D!vezjŰH[0AICvEE2)"27AI@(ª7@хz4v^N$/^)3 ş(s%@_GU 0ݿ^=|>órbDX]+c!r3~Ԇ0# |\Ȃb9z;v B7$JrR<{)BAϩ{BKpU ͽ>=7_݂Cn@86ֆsEaFTqwôE6m/C>ֳ7ܻuw%Ho:r#6ۋU\cPrbBC>, OluK)dPF"apL|ȄػgDgb]ܺ=Ui} HE xy<YWr@:_!<+4ފ'}A"-+%ט8WGH "K"TD(Sdȫo 8VwyL._61RNvJTa{?ORq({Woa]CGz%bLo̭ [[tzr` PEs~\HT\QDVAV!(9I݃f!?v8Df) 3P6G{4ZG]Ӥ Y2 q% RF+ ך<Ya5#p  B(#}uG>D/#1%b& ʰgūF%0#w)+Hu,$oǹ}J>igbj7@-*o;;e(C#</ƝwErD6:*}Fd{ 'VWB7ܻc"nzsdN3*Ka0}b dAA1 opߟB9"jNPWyjh a#ܯ:,3,-86?n\(NH7lvJ-`8pKp$mލdG1bާܵy7:p1B""20m<IՐ 4xIӂuRt Q97qڣrnBa3З0} ##y'_xoGs7)a[rAĤ5x\lwy0 QB^0+ TuLܹfR7r`M=86CLE|Rj ~ LN/=+Q qKdq<ѷ.Ē׭p63 IǼknNcp\ l7^9c"=T@"XA"u&Rn3'MoT`#9X|z(jxs{]v\qR8/3-6"y IDATČ7^Mx19G\:ثA޻\G+ȹ6N;kp0Ts,8S^x{=>9GFea } CW_A\ $@8AmZ٭˱i`/Ƥņr5/0'HXK}<5e xP CDL,b1"| L.YXby0R>-vias>yA e`}_1WХw?:{QEoew^A WT2qxU*|\ё{H>ѽ{ɽkEݺTebh׊XM v'ZD p~26kPW6tu!T)Ț iFػcnɷzE7#AӑέKܱaoOT񖻰 G$~(n/|/ c߹IY\]af[Ѧe!)IqR^͙J\~Ww X_l2$; ?KzPʷF_ Y&NŶ]7y<`B89fi)E_CL-0P#lD:NP8b_m=h)\S0kQa8}ѹBPKuJbuR(W>uݕq{BfJ0^ƢS{wZ|,ʼط:TyFa=8:mjn9{Q#HɚQ8槝"]gPoFhryY;t%|k}F[imi[1 }|N?z.ܣ&`@n]3ؾ=G0%$BÓKQVyX>IܘΚ ><_ qK}KSLm(j&n$8G =|4@r5F  gtUYTЈe݋6+nHz gsk;pvflzq KDmՊM;P}ZnbA_c3ZJpvfu2nO?|dNDc>{ Lz1d2NYC{_CBx:* 7Gho^kav@(Hg A*;,1nğcS!p3'JxV" VKBČ] ":|reѥ6 6tYܽ@ݡ6 \w-zx, "oD!<'NP<4|3~q.ν~}INx7ľ+\Q ^aC0A&Pn_3Jd-qDZޭ_{j4̙(y;ڐF#<"qAУf3|YKS|&˭+H´f%x.u?8*R(yXw92h'1XsL,ݽaW;!FWuq}֭[X0LP#Ww]$0n ofAGs.|'E; Fh*\06 *A}TQ#.9F^<w ̃]xP(,XV?Mw礪+:f:T qd,F=ʰ8Q݅6шј<ǽʟqwS0T([qB]k k hpX}ހ¸ '93Ĥ4n]b݁CuķuC)gbval zo1? [ (^̫ '"$5F7`˻=Gp~N'uwG"dgzΌ^;ڴ, LM ѥ-16^"/:,RRPWM[4q\)-'5AhBOuz\>Xb0|u>UT"GȻSb(ԗk^RsR(W27GŘTb_I'klj(UIR9^Nvj,ݎ'kᣤ> 2>.U*`՞Ab<$Xv%?Y}n;/0w =D'Nǘ)|z ?%X/ܻQUs D|p WHDRNj[{݌ Yc`88>S ٳ?PwOϽL[]wk2R>0a];:7ǡ!O*0OZt6;ec(n]:ZZ2_(WkיdI03;@Q +PWG1ݵ띝ޤÁ_,g01AC5!sH ޺[/ڴv,Fv]!|v(o+; yE(n#F"WW+^:K`3?Ҡ.fR<)|ׯoX i5B!jtFdkEƴ^}iW7sIш`[3n"y\ "} AIda٦}kPtᵸ GՌ8]wњ3"9#J1xU&=TBe_૵zgF#B\nb#UATMex8F DG Ql˟>jO 玏Vlx j*NE(1w euX-+!D7 qAIㄌ7f߉@y0V}kLx<;u(%맍Lq ZdX;#4mS=on`ӏ0ֲu,fi*Rɛ]Ʊ{!+ܻ 08ȶ`WꁃCP}gaVOD$}-Tݥ :tšpw~rBqy{@Mm,f~ #6ۀƯcO qqum/VrdИX,]E/'ʐEvܻ P{WO S[VA͹&mqoFJ saxo-;my#(Ө! o!śBj Oso"τft:؉s}yO%yQ0#_ ~zXS`aq7Z~ FqV]ag19P|OOu_!۟I:O i響G{ܻ`qYxܿŻ]dt+ 'cb''oMv[x_3+2c~o== QjEُ1{9}_Őpczk:.y$Nۮ MڎJJpkXt2 qއ豹s8ǰ[< rj| 9kcYk}OopTۃn'CFv2p7\LQ*n\y^1|,ft; LP|P ]h;Q9}SИfJ kGOqwPEx:{s@ǥP(־Fٍi9}1㰳;9o"RKZ?\(ށjUvħ{($[0)${pw;Jq-.TĒRJd;p;e`sF3h|@(gH LogasYޘbn, ~b-^K8d# 3Rbla4#L^%,0o]0͏:Tw뙝m^ YՙݿeF 2T,:l+΢ I@Q35ŔH2:/h-*!r(Ck%?wJH9GXq,n -CܤqZB8'gA)~W/NM'3\a²(18?T# A S g ;tU" aa6@h4Nk|=CQxP(ޡ)(z4#nMWGc;Bo缆ؠDbSσ]hD/ -3Yu#8V:tݻ{O$ TJAcNYC~yq|jRyfDcG0h/0x&xcw|YÄXL@Bl2\^&&Dݲu̪2&ݻ]-s`FY3*>ۊ#nDm3RČ M,F 6/24_er|R3uA03RhxW_u0]0-ٳ)<ǥB̭‡_ٜh)1#o#>wqk,S(W \i?Z3n+ ;Ͻx ՝e^?HRf+H #gntn9fe͚S/9gg<.=cu n,cFc9Cq ysSy6+9uvB1-gH7noܵ$/H&E5c]O9܅h>qʥ[`k@Iq3%251v !~5EdEN}v-epU;xah@i FL_*263m3 \`HIl[-ʫ\wr&wyeѳ~ޓ1;~n[ni8ob9QV[,b%Hł;*re)O C ༇v|M|Rk~]"DsjAp/ﱻ‚øe^]&+j̩$ >E Ak3ƙ3-6DyO"ic~f<1EƩԃ* IDATK&_Oλ)nɒ`I.Yc kV!9,*0w`GFWD Hj osh)Ēoyb7?tWTâ7@~s^]3'#~2ynb3.c Ӯ,yIkQ qYK P= a\PR@>NmJ BDb|D u&"7hP`"4ifp[a[sׅJRbSQCy`A)⭄#6vSB7!ivD/_uiqA?ADNhS_+4 Km(pZOaQ{SO,{۫;B|ܒ{/]&㾉;^ͅM UG]cr0rkE0 O&t=:UUY fv!MLCjIݵӨwqY8ϽۃUe{wU=[_,Hw h( 8y0‡ġ;i] =d!0X໻DbG`FUkW'-ăxf%Ooa1ne ,pƌ6t '7 "SgIu”+͆}JNpj,PceQcS*{, ?<en6Z)/5g{}1vnrMubwmh\W\݋`pjEEDo #P"헷Iqp)ttɟDezF/ɳÈnFT8")Aϖs쮰`vwwCBRc&>iB]9),-CdU6|pd?`c7#Joɒ 3R3bG~;AĊTgoEz}mZҫT!mEAD;|u±v~_M<lxs;-Й'c76ICP)۴ӮD)C1/ϣ)^R M-pDAiPEG8jĎ^)tW)1nUt$"7a4jU$!n8 _|AZPeSs4Z[K$!8%ɩ*DOn? e(YrFzmVЁco:m.a2%6םMӎr,΋ab fCpGh4 Zz׍jdD eGjAEnPDػ`]hQT{z>}딺;/nf-ȉA'cg>3s_Hݳ:nI/Ű1DY~>Q!d-jz|옢CwjG&7(kvU&w; D,Dv.X(^ҵ|_:u ҥ?D5:\;P^&(b<ː\[ M^qkӊ#su:|a_&IՂi6R|=I~R-r[|k)~C^VU::NR|j͘hժEW.M'ɬ Kz4n S@)OHH>U׉|aXZ{n}40 |4TG +)A)1!]/oR&($I◯9q7wf'kC&0}=Lzm IvŦ8@+CNKpoqI84 ik~JJ6Ŧ8aRP7>V׷81z>JĈ4[ ޭ5jE^4JA~;MNqä&R֬7NU74n i j2e3TEoDC$YeW2{=L5nJ1Ƴ*UK^:Π>J<XR%*{͒-&5vUV~$U3W;i& ^FWF9' JZjNÞg!տMo7YKWP-]%ȥ>$áN0<^=uHj4Qq3X銺8[B=UҜ{WOݮNAK֮G1&8VZ]=t^UhqtY wy-ݳ{9tpjzNU#9lV[ 9gkî}3FڻK@ܩw;ugAӕ`SrZ|=URfڣ|-ѻg6h1UwvL{"ֱC$xn)/ޫݠqm&7y(rJW R`m9Z}0FnƣwoiN6Ÿ:<\\n7_A[WQ&e{r7ijM}HqLkZ驮?|'kRoM+ҷQƷ(JܓiVmGÉTߐR2]%*r̒gNőCɤ`wJnz'.۬-KS?i|il1~G0zw΍?zɞLӤT؜#M/Ҙ9sq}֦ct&9tD?PfSw)y'?MwŮE)zu~Rs{&ڝ;~OTlk7-[ } ?mV=Z)QNj;*B+56Nk\_iMB:#n3%mz~M,t$jpNojZU2ȿ) u|r؋ei]'}#--߇[ݓ/ЈҒo=@3zpmC?XvQ4М=ͪwn3 ˤ89Oן?יX{h7W?>@'ѻ]ѻgmIF^ƞ_ǑkHj_p8vּ5Q>µMפi_WOZq%w3-8)gLIzxjR&E1[,C/@<́6;1QOHr7svkղ}@"/h7j)-1Kx?uF@-)aĊuZ;>rJmLS4?bߐoCIpxDYzMBڮ X\&7\$C'mc+B)m7LV|!G~p`Q?I~[L5H8Ь̖B@.Mr;͉5xdMɋutFUTG TW!1]=2kkDzJ*xqΣwcڻ9ޝ}®4ZӪZGu* Ñ;iں"RI\^tCJORu_3/穒9׮->d,Z}s"Ʈa,]4T +Xvt;MvZv\t4ڮ&Zp7TZ[PWdת隼3MYoҸdOЎ&yԾʷh*erIkr.=k6܎=rؘS-3~"/SUu3+1Q:y.^ ר\yk=_?kXpyu+YJLbkMB~:S)sn+؋uOr  uJT]51StpImųnN#h_4T),gZvP™EV7fC\<|snMU:eBdH(*'c"ɲT1WZL@G%׮ӛ:baGl8,>YLA -,Ͽ+$J{]nvYSJMT̩]8$Fdޜ<|TZB+d>^@^u W9nWU^Hu]4qvm՚{wI9 'o%ԱS;&{}E__$==]6-Y%ԹS7~ (! WZv7%$$HW#|ȳ3$I/o߬eqSuIԓϫv3GMF|C={/GkΜ󸹹A 藺 XҴs6o:zHr֮]OCܧ[ni(///={V _Mn+w {X=zjWmVyxxjq#g՗?;""WݭQӧƍEDƍ|>zUJ58qTIII9d27ՓO>*Uܹ٬оGխ[߹o ٧ߩM<={v*$$D<||}gnl$͝1S1L&;@ܣF3ֻ\vɆΓ+K 4)rp=Ś2=z+prW/_Du]K֭tOHڵ_xՙuss~֩_rf?$鑇TU113@UVnY:^7F-ZvXJ!!蘨Bئh.JK,]\OwΜyͷfܹZl'Ot*U*DVk,oڴN қox|i;QΛ7SZQ6c'%JjMwgAl43/wGСJXTV]y{{kھ}K ^)c ڰq]GG_SO=mێVRRz EDβ?~#Iԩ||U\XC{5 pz *bh7,מ3gbc4p]Zu-_XSNn/PxLA8w!y+5xE/F1 IDAT"H ./"H ./"H ./"H ./"{}}nvLaW-])X,: @.b,ţ16/JzyyOEEZnfY~d8pc1Ax$^*%Ui)׻Hl6,}} mb,y#P< c-l6[1UkDp7{FbgIMQ ױlX!P< cIX#0¿l%UiK'nc0 @p ZMLg@ P<Kj o<P b,^xc(X@Qr @ P<V V-ۨIlǯJKK+3fwۀ;TtE?3*c73OO/7fm߱M7/scš>>pfwIO3<=Wd$nvfY^ޒ$";/1P\b2,^@~JJN*cRR5c4̊*scũH&IVUd }> lVBBdM|X2xxx $K#[&x6nK~;Y,k 3*Tg|AgN kwqn߮[VRR.P~\$bMgE=Mk>1p-ɢc I2I?xcj̥9 МK5aװt޻\z废\cF}~iJ 4|?NS'-pyz5gRU\5}xY-WN[n,r̮]Joi?tKv݂W{ɌGӦS@>n͙T/;U4>F<\zn$wM0K61|-Zk̥t].!3s^}bPX'>;1E6 f45gRk1큁A5}6Y&I-[єuC _#$$T~*1l_Y(JE=vN<^sXRSR4.luE9wWrs+TaZlO% .F]Ж-գGJ]mٺIMyyzz{n3L EG^9> }b,Bj-_$IԱk;,777-_DCoo0wժМK n c:7B?>\[N\XLge\%ա}g\[\<#rssVu޽HV.|gojݪw)M1׌Sp8yV*[u* 뇟/~t[. p"W}VDyVUrrr:d$~-Ϙ jڕڰam&tϰEWpڊ4[F-UVs6scʸ(yzzoW5kլ5jĉcN۱C6NUTE)))ڼebb{GiӖSs7f͞}|||5dphJKU|B֯_?'U⥩%bJc_m`#?~9sgHʘ.;Q.=RZQQtBM:!KЩSy@ujוdıھ}K~r‹O^Pu cq<ީ^}Vq{[鎻*74|'wwۭ_!4pWoUj $CW;vSppb~ske~O=լQKZ|~,O``[?@'O״rUdlmt{URU跱?X+5nLII:~w+==նMGYVm۾Y#{e1?BоV^$2/cAw؃jѼKS;o/嚝;uӀR*XRsvW={ڹ~PzTj %$kᢹ0,i7jJҶM{Ȏm^ oMEsA-e,:@iii2e&z #q>&IWnT!mڵ{O'9g24h] O!:~⨾k *{ܷf:~խSOfY{֟*4ooM4G;wn<-{j)ﳜjzTr5EE]5mWgB&4{ukx?#ot,y~?6GlԄ-3oӻWVC:# Kዾ /eTN}:|&L]w8)W.L}@ujS``E%zȹ$b'nUK5pjۦ,]VtYթSOG8k}u&NCR6$}5vڵj=NrssSDaMv,[f}C Su_ҊK sϕm]zjU!,Tݻ[AgטWef֮[ic߷>_n6rӬi և2윙KmfHuםCեS7Vll֬]?'u3~V^^^vy{y:p`zWKƞ)>t츟|}?:bIe:|HNI֒e Ufը^+˶}p8T82L?qV^Νkԇ_80zر/__~NGꑇԀd2>mcھ}M/|YK5i\֯y3Ԫe}Ы+oiؐuQ:~_#_|ݹOazOUrM:AN+Uf\WOO{:xp+=;/qm]jղΛ֨IxW -mOK3{NUZCfLѶm-=[۷o)*=ݪ'.zYw~^k_'i՚jѼ>[+[>K|||sh-s5ԻWM.*&&ZkXʹ.]AAA#B,+ze˩YZvbbcl33)#;A=3l?q,fM[wFϹ?"kUM'7S@@,[F}Uskڌ)Q>,OFlvĴ[o'铔n?|9,ԭkOuhI˖-֎[Uv=YoϏݫ=O^z}zYG~#(E߆όuj%5k4U;oR%IJQ_U˶Zab5t\n6K/c.ğ+]Js͔`O@[7G|Z5kk5gʖ-w:]ugzAI4}d b-صK繗e4wL5lDsZlT^6N-YPsʵ|Fӟݵ|8qSmԪe[͚=M?$i&g_V=Uf:|@ ni,OOOMw[IWPvr4"WдS-Zۣc3Chִbccsnr82L$&MC+V.$͝;S?~?Nwv5w]CUtaڌҧaCdZue+S'%I W_gy3}E=>~stLw{մ ߫"ϟ+=ZF Xw7jᢹ&jջW_M:^%4t:sJMͨ6n\w{X||^^^/orm޲A~:v,o~&ϩNzv^-c)..Vk׭R]ULYEF$ڻL&Λ>1H2ϑCsM:9Qͦ{W5պީgOpaۣ{}E%$;#O+55U/h͚4le$p?@?sM铮";yl387nVvT͚lb}?TJZo} 1Eh=L&^~yȱ%Q(w?ڽCfYSMԑ#my fk3ԱCWM22;lGըQS Tl\uym6V^̎sÇʖnS[hyZxsۣ?%_}9rt#Ok5Y]z3IR} o\ϕ#mM[HFN]ܶc*URj2|f.\8gonv6r1.|L11YVڪyZjFÇ]wQ^}pgv7Ww~iG_iؐ;3LQp3;svت*?cΞ=驹~irwwײvi{[JVU6$]xA1jղS3fM՞=; cX4-^@ʅi OˇIZRE,pbhɲ_Z$_0Yvoo-_5(Qw9TRժҩ\Ceo5l8Crt"gK*55U61|C(00H/{.*0Q~-[Ul\v%iP5UT*UԎۜDI:}攡8|/+dy]6NޫnۜkrW2v_Zh-Y=kZeդq3ݵx,;̙jѼU9GN}Bο]A&KMr\Ҝy32A_RFGn:qHj#1C2njMJT[kj|MFrssT3jnEY~.U*XիԎ[, u~5jD&prWL˯dZ%Kd2-ƞE,q,qj]?Fcrs͕)+ Ƣ h]>3ܵ=2gΜ=:_pἦMJjjղ]g Dp3Z"Nk߾$RʪRmLfH1*88DUV];L V)00HիeYe o\+}Eu]e˖Ӿ}{p<%\ZJHeGJJyq?7k|ѢykIW9Ú7_~,}:}TF)>"UTxsR&գGϘ[{WsڼeUMfcǞ={չ2?A]wj-/…2eTJ:siq:U}WV߲..m8>z[w5L<$)!!AK-и?~R)_j*d2G(q:&ݖؘ_V\|ڷ.p3'gcRH^5*///ρAIsV``s(ybgg}(,n`{#{,00HW}YX2cߨ WmpʗRR27qUf9%Jde$v-޽)c)?'`Яc~v#1C2ӤIs=Tm:'Mʨ3fx1kjkfݡ}gu q%__?%%%+Wl\lO, 0x< _TzzϦ˞ӤcrfȈccQQ6|yO===#OsnRBBN<&rٳse"vXTX:v՜3Աct͙Msb4X2PR+]>fwW~\gϙ.///Ϙ36msV #)>fwm#0 Qr8gLqqqW#&&Za+3EQ݇t\46m^ u*SƎ9&q: .[^$ۯKիT65  #2OmЃkz |u)Sy$(QRnnnYXK*Ͽ3g^TFкnj(QRkU[h;nӘq9O1%J*>ʻt録f(͜Xw쓙!YסX7T#9IHW_oL+WUM4t}?ЃR޼W/zu>)OOό\Nu3 .PI+]ܫ}aQPPfsBqX j[pp,ΤSoX2Ht%:1cyg';ϭe!Syc2)*^zY<_6M{SO_adC!!YboPP)LFgZ:,KIBC[6Kk!Y޻o+cu;+_>Lժ|ݺ2Gpyyyi}||5|{vЌYSufy{{thCɔ}}|BT!V.SjؠTSe#xy-Z4OCߧ -_$7bb5a8 FJ֭vҥ2*u[ݺ3Z)d_jxg]r8U:rG,@&Ovm;٧GvxQ[j uWkUly?Wգ[ol6mظֹo^}T~-^2_&Iݻ$Y2pSǮTN9ZfZf""K6n\А{ShHic.qڹ\ZEV֯VhhuMIIYMJJ4n5jbJ:qTvm;ԩ:~⨡d8wm^?-Z2_ϟSj5ձC>rйҘ?WTK/Pu)U}q߾jѼ*UjRkǮmZڴnsjŒޫ}a4mA?Ԯ"պU[U\U#ݮ9aOF}5kWD#\IImlߤv2LyN- 1FX,-]H sHp8yƩ<1͊U(lZժf}*2-=_jͺ *:)銵kjɲJMIQU->c֭_]8WLV[מϴa:թ]We˔|112>ի{.F]TUly͘9)rSgc$&^Bܮ;+ ߣZ58j(Jዦ Ï_靷G>Ӓ dխkOi{vez9dz#?2 F~$uvysJMMUkيڷoOF}ikШj$tKeʔӟsu[0$$T RXXEm޲A%ցJKh [D^}EџkI!+2,]N<WMk҅Zam߬n]{* @UUթcWEDւ+|) @ݺj񾐌?SU0ξ~~2-Ecmw)͚\ <Ւ +JjϜ -[N]Ԯ;I={w\YծUWvRtI}7TRRRu&+[^mtPm%4kt}tqխS_uRr5k4z=g6BXEjVMv*nN[lԡK Y"#QSmQ*jm:yVt)8qL5jRvԨaS]x^VZzԻW_ />Νsnr3i᧯/!!^OSj5հA맟UrT\&OtլQ[-[֏?ĤD *Uj;:{s"#:׭ݫJi¤%e<@ej׶BCJkQJNNL 6)~IMժ5X2P-[Q˖m/Gzi=SNرUZ]-Vhhi˷ɤZ5hYN{;3:x0cʦMn Rx>*ZF6GxFհ Ա[{<'F #X%UV/;&JtleAYR+@EpP6*2 {iGMK~|mr~Idf</⥗ڼe#ey'2rd[ß=jQv}R~_|K;f`yZ_Zv%hIp}={._n**X #0 ̘1@Ͽ_x{Qqwɜqz37 رc/_8tmºkxM[8̳9~Iyޤ3?we;:zT.Țرsе9986e:ӦΠ/s>Ņ*Ns 3᫪*YaÆ3w|&Lx/=xwj۷B,08|^Od?})ɑα^D6tc=1Vveh8`nFeױqS>UU[G2oމLʛLii1?x7+W-oHm:1&wrEW OL2?cdzefO-tegㆮwWJ෷V^lٺ#r2yIIɼ~,h,3;g>D7wײW2l+qyܵvڿR]yOq}d`89+ )]ߙ1}"<"mR]]E8n]%_+x O} &x]5׸׳e˦8W8p|9vƯoY~ġhFJr U~EK4ğX E/7 ?*W,{Rcnj޻޿ɻ#sqWyS_G2vEhևb9Y3巷{wi-=ҿD"z>~w9/]Ҡq.jŻce1 ~۝3=q8/`:H<4NJtNEDd pz^7zboӣYd57wWo`Zͷ^`0(}n5x1<?2h(.&s )س?|lqK@s3 dcnj'(Ǝ-w)"}Bh7EDdcEDd+""3ԢYDDgtwfcmSXDDghcEDDDDDjg%""34NJ ͱ""""""ҟt @"""=@sH+""""""M7EDDzX9VDDDDDDnY"""=CsH+""""""xXDDghcEDDDDD?\U$""34NJ ͱ""""""5xg9VDDghVCH+""34NJ@qY ͱ"""=Cs $GCDDd+""34NJ@rT-EDDDDDDDDDDDDD)' xEDDDDDDDDDDDDD """"""""""""""^~BH?WDDDDDDDDDDDDDP+"""""""""""""O(' xEDDDDDDDDDDDDD """"""""""""""^~BH?WDDDDDDDDDDDDD0ǻFG~ vɗ  Fe?`L8+JYZ&NKIZj:[m=DqqQE_O; IJKxɿzUW^Ì3ijn+D,kτ 3rE{ydݚ{DDDDDDDDDD1 f&+33%ͯ`mky7 ?'o$F#SL^|~#/jr3Iu[1"kC~Nf37F1>+|sk ?be\wO;vB/jNJw}w}FBBv=e)IIIX,xgb4j*&o^~O>FN?,xG(.)ͷ_lܯ\{޽p8OV1etL&kbֲ{.Ll!o$mBccPp:51Yfe~??ԃϒWDD\zscޟ9$ce%INIjRYUL4FyEC221dgRP~]_h ++h4AUue}jjHOh"-5OD"TVU`w8q X xEDD1_lظ<O-X` ;b1:!F0p`0nP݁`n cz}hhSDDDDDDDDDDMH?y~Z \ O~f+O,#cv^`tcd$oL F\.WEDDDDDDDDD.@DDDޥ_'ְ`ATVU` sH&z6;Pl11ʪ bU d4F0wn(5Ռ>~6$+F#Ւ9$}d"==GcccV`8gfNfydڰX-xk`;pr% .׸np8ޥ&3X4.zxJDDDDDD' 3"""`Otq+o:7mู'07x6mH$&mV{wlb63{\m"{vf̘OVa0HMKgL8xam} w&, 3g,3vdbl6fLɶm[F#g,th!f? q7l6V+.8NADB  xC^P(RzM4h4>t"""T,Ɵ_Ѱ 6t8?PQYN4+W~w{rI_~ @8nڵgλo򝫾G,%ˮ`. [)+-Gs^DFz&_HK?/7qK}Či39so7 xEDD?G"a Fa^ vqgQQY=[nZWuoK.TmwO `_x̏&+'xWxtYy)|9s)**eml xEDDbνb1vM?D"||yɿX,FeUwn#az~rs$""""""""""c Q+"""""""""""""O(' xEDDDDDDDDDDDDD """"""""""""""^Vx"Ce`4k,N3SKނQx#""""""2`̻tܓL>>Eӌ`2~=[XX\^0.eH] 1' 91]0̄s`4D+{>.`q [j)vN ldgKWRrܜv\.BJ&o(NK /`KXx{=RZV^ӻ8Ȟ+y cw[ 4tbWDDdJȩ?#GSF"""=d‚Qy.EDD[[{B:-μv<վ[j|xtУYsG7㏰y;np-%=kܓSݍIK$wi""" RF$rML,+`q1HĢJuEDDzif'EDDzitkO*XRJm~=7L}a)9nN3[zd?=G}x"f͚ ǟijgOZDDzYҰRsl~u7@M JɚJ"""ifsp(6./`q EĴTWDD-Ef{]qvµTlZ_ԣi=;;G4݊H4 4WxEbgyc0Y.MDDDPDNq6[c ;_nJ]8h;Qvіx"""}ZwG8_Wt=~ 66SN<[^p'22e' PY_DDAa}GDD/K)?+5ݻ7 G~YDD1;ťqDDDz{So?+p R\^r\zb1z]nEDMk)X|a  !EA%߷Z7e\@Ӿ uEDDᳲ(Y[2DDs8܊*mki,O*k׮d|;k9IC83ػ1I5S3tK=$d0DBZ+""$O•l,}s= uEDD ̈Y|tx"""]PP\D >d땀vI, .9dt:q?bz;یF#nIגlcXXGqnc4p8.Op\DK38NPKig $pa0h(0$$(ZZE9N_ ɝ1lIHt;)fz=^^ovfgf98,g㛉"|aSdMeKp6=͑MP&%рg7ϊ ZGv~='ݍF#P:+ocZ;456ƻ>p`4x]J Cx^B;m$1,8r%dO`S(YMu~!WߺGLab˫>3lsI##cF444WDDd8̌=uygƑl`oͯvwMD# tEDDWYhKK闺iXo=kjPXWW^݊H{H WQ5-YSI pe1Z^9iXF] Lc0f"""!yx"'x&Cl~u7M-$&$b¡Cw IDATgi6S4ޥI7UX+Qx<^wHKM_|bOVDDNSeҲpMS 'D+'g‚Q}j k֮{Jgۦ21|43Qa]""Xfƞ2 g™bxUE뜽}ŴbWDD`)9n^yiK*GH$<<ѓ0;SXumX˜Gp-"ĢvQ=MHKo&ih>|/y2PO :-""DҰNLY. :?[^MF 抈 icK;T]HjW xsl'\w ߿Ʋx#";;7u4 +{\fc4CR%XUo4+%p3qgE*X6!/ """SނQ6n['>.SϝxBz>-m(nfݳh(iDDD(LނѬ]%ޥtc7a-fy:9ׯdȐLvÏ¢ .Y_njr~~s̾|rm%%'KDzSJ{@=عͣ{={ ;SO9=kλoc,8l^|_z徻߰?;ǎ?.iSW_B}}=?r_S !y6MM PZZȑ9\˸w=j,""q44; lyc5;+lRGf .WJ2$ hllp_WZ:A[[w1;~& zxλT5o4 _F&N¹_Ǟxl6;Ɩs)9gdffJEEYÑ0df-df =`E#]1gu9v9rpR+ x{Pb/<540<,3-^I#2EdɚpȰ3jyDO!sR*U] VV01dRPx#Hqwj{2>a33)ͯ!ղ]=3ahb ; yC|Kţ>dcذa=~ucm/ٗ}ᑄݥrk a'u[DۄHqK]J2yN&3o~a| ptmLjjzNawvиmLmtWHF$: sAH<(!&I&,.hu Y~G'x+"H46Y!/Bj7H"ßٻ_AŖZ(gn>{(Ǹ'fdK;(XCKG if1CXȆ>q-`C8H`ۛ{^O}a>%|֌k}i{Omo`mj,"43qlxi࿮ܵt #G^u~q[|z }Xl3!!mc1ώIHHx?~<$4GkʧC6@W$nk{3G3o(\O?vo2`w[w&!١fq쵚DD2'QNUla,*w}7wǓ6* kس111Myr3kx0 DPi?fWAW?f:?%Tj` NJU坔o9 wöt`%ۈٙĹVKT[6ZR痷`!Oow)=.SX¢=#>?=F}}=:\"!+3}sbee9٘L&"﫲Ynu)uاj%55TT34{h1Y~~tt9;x?s[oIMM~ L&Gwl7~~wCf'e}/f)#Ohs6=S@\̺vBݥtu e+?nwoޭ>P]Eq{=^nxQ!6:- yBx}L<{tFL'z?P3ٍ؜,!NH˜jj/@U]߆O}Q)nMBY~5#fgRUm" m,iƑjo. 1{䑉n SZǦw\?=+Hsg'0Iqc0^isC>geQ*etֲ9%͐j,"KJYhKKQ2Lf nF?wVkJɒZJ u' |oMƞ`%!ɗ|um#uTHTtwߟ|RŒ~BQuõtܗ諾d7Iq3bV&ݻ6ޥt&Bސ6QikZjI+~|Tj֭_KUU%Ͽ OeFyIdz5B/oC446pշauع ;e&~~-<#$$$rjz5?,֫M駝ůoY|1}-K[t]iK:| %v0q⯦Sa[}M[+ s=j___h51(7af9:~(DY~u#%X9D#Qٺw|;Ec736c;٫""r>WuZ:]i_KáڮM`,eU/Vtjkرb;_Ž{:n0=q1[fN1d#=PUhXG?'XȝC`?9FDD3SIM,(kȞm8|S-%Fsٳ_ Fpge"$ex"#fJ__Ȝ!@sh8> ¼y2WWfJKFc:q90 mbKHvfdP=xoU+""rqƭ쩳/;O&;װurk{BoCXx93OvϿU/<_ <#s?h{Y3e̘qӛ^r 3cv%WKdqz8f;]2'{Ұx""}XނQO%cW?Db?73Lh6ks[yiYNf\4f&"4`pM-"l3{q CfDݞ.91% Ż.iV'7qUS!?l y'RʧK,_DDf1sF0qg0 XGi_[/EIp͵W|涮tT{ɣӶ?? ޥ|.KTzxλT?/jmuz]5p^dONg:,R $ O$TBs?44c0#NނQ ;&[O43 #:-,(ߘvH0GZn^>횯 %*}0\~]& w4>q9Q~9CIrqw>.@SR[@9@Wh+*Qy rOƼhsU"oNDDDcF37)[_uH: hh!ixh3;͌O=E!l$c\ NƦwQu;]j#voiIYoj{FڇolZ_n-Y!Sp(rIMb ;tM]9Ls3)^.˯fÓ;)XUo"@]v<Ng[sE"ONDDDz xS_}TEb4WxIL$<>V=J/󮙎3A#O N^=(X\pD.in,maGUtfbUS4^<5Gw ,cp01Ȧf'2l}oŰ71ܫPU=jȝ~jvs'rjP \}w;g>1`ٲ%y9k\^䎣EO?۷a2?D.ufCl\80L,['}?i\u5̘>&^{KM&&LZHQukz+1Ŝ0d|*FӾ@wC5\:kr$ˎ"@_V̉Y0+Ļ~3p^),oQ=>\aԼ&= Xf HL&TzY᯷{0@-;;ri iI8Sh2嵂#yG$ƈ[[Y#ن;Ťsrigi)!2M$2ƧPBŦ xz=w~ ~}m~n1-,Z~Z$ͯ`y{>~rϹ_mF#SLv/ǯ~{nx E=qJ6-U^ZT'sbdf9YXVaO`q9jR"47ǻ>edef_`0S痿X,駝EC}= 6 ο;x+fsr!o:6=0N3x՗q8\y<нlظn1c[ u?ZHccEl6.<z5,3'x*e,zqjj9g˽sܞG_3̹r C~w5hX!|yXDSc]Iq_WAgqǻD\iA{t's(;l}X41+Ձl` d|\+A]~IiXD[B7%k+)XRJci 3/g􆺼-SH6Ǿftm&Fͦbs ML<;rDt$]0SʭjG9r_p߿ F)Slۢ(+W.ƟɌl%o$1pb+ Q[[ݻ2y%%MĶ[hll  >JFMeUcnjg ߸D4Q!Nr [/oa#Wt}.>Q> IDATehk*PS]G:BސB^AK]."5 8Sm{U1kXn3#(5;0;MLZ.C'c0ijFgYiG+ Sib7R#+Ta{EZݶmĜ+h  B5DRGZ.3oDb(ჴ9/nb,l. Z?rN6uU44`4g2@_ C4 ֓ܫee|2jPLHe͢-xj?}Yø[%`6>&QV^ 9)Ájjbe;8 #7 ;FTVh$-=jjHOBuM5iTjL$ÉHc97 g&yx"[kYH>z?@2a;fHb+By j,2 kH| w'uZlxq.Ϯ)ZUΉ࣒ͤϵ6PƒbTnemȹ]V5ҭoꧯk64Wxo445r7 48̘,Cqlݖjalle‚$f8- xY.nkLci 92rN[j;fqJ6 wXȋ~ ¶[yǀ`Á bAv{  6;55Pp͆׻q[-FCk=֫\D!Nb2Y1 Om3_d43 nť6cuնYd1;ߵtpi,2v[go-FJKz!=MdMNS+3Ό'0rn6u{)\^N4`;F'k |*`0JH~ Z .WX,F bb0p9]x1N8N0v #."2$ qr&5%rVww2Sřj~G$Ro}Q3AO4vz=aN,3P͌:~aW'f9 zD=xM#fg-NLPBK ?sNJK ;;}` sH&z6;Pl11ʪ bU d4 Fٻf7hjF a?vDwՕDjj>d2j Ncc0txfӅo>}nV Ղnw)pW\.WP`0+sڙxH&$a4 cx|:Yq;qM1ۍ =/^kkU`;Srťx}L`<Yjxu"BifܡLtrGgyǖAT*Lcx$Aמ^]=ߊ j!NFf'1R4Z54Rl#J%66lyN/ az5}cgyzm  X}r{  >^]?le.@;XūаmA*MFm#6y|䎳xϻpI a15|i|/n#MR$It:T]U;93Yģij5zUwL&'bSdO]-:+NW^"LҸo/`ҕl}]T*άlfϪD"A;"6;N%+F"kڇNao=+Wʳt:``֐J{>N Z5}'^'.)lQAT4Pcj Wj6q' и)gT*% bd9Sl}|dq}v?証K\#sz"le{#BifD4򑟯W.{<*2K옳LS:H(8P{Y^1i9mrԽԄΤCg`I( ^YI<gKoނlJ$ w!"^s U2 mfg{~hۃ>9.Fgѡ7 x+זR{&-apī 8Mk ;טaT*u{[[ƬYtz/7w yMbzhjNJ'7/ :K. ^ϖHR%q9NVí}D"vUmgoc={zo^#?9..|)oՄ}t{߿5ϏI*b|{z=v-\{W pwpo~FMMWյc{}]|ꓟtR[[?>Pb>:&4 7şw`/p\ůpۭ?OO}m7?󟻖K.75u !F5̊Χ`ij`;E!}!#2WɭrmPBB1fNKߍF/ry Ys흰D4=HVzOv8"G$ZE l.3Y30;MD F?!v|G[lU,kj6h=dW8Й%K)=5ouë3~/Τk|!Ov bC<]{ʧW߾G':^QWWÐ4u\L&yy\(Q/<~ DnڐkS5.p^.B}st)eGqb?oW9ҲYɥo!BLcS*헌j}UMFE*FpY'z+B؆)Ӏ`gMZpy.z]Ӡ1;d ~l.jcaIl =R0fMwE6&v =Quqԧ3EOُV`աRHJO'Gz6pBq< s\[ԎZ];WE+,bەrtoټj^}މޚ3^ !b,Mɀ7J[{Ī&T"a4MV8"L*"|q,GQ$mnu3kus Nǎv Fz"{#Xr̘j+l6J)Qq9ftf-V"^wu/]ݳ?@,QbgXhMn[D,I2~E J@Ql7*,;]6N(B!FʒmbgS,VV UO t$BFZ27Z4Xty.};%!f4B!x/)H(Iz}h fe- 1HFD,Aaž(7QMVд =~r+dN(fxD6gB ,"_%x|>ZZ:{2h ځw4W9B!c6JWPk.w}U;Z3V1sHKij.s y"i,)^B1l;]i@ 0[bU5D7:hm3$}(VۍC.Fa~*/,#$}lzIGӽKL*ז378 5S0eas9Et7x0: 6yI ѢQ܅ά5:v1}o9̣-MJ2:k{YY:i,bX%T-#k}> twBq2KR;-zO{81]C wB1$dJF:Y4}J"g^&˯?We̿xpHēc;)KxEQl'HѵsDŽ#{_f@G[3@gx4Aw8ӹEUS^h%Q&<B1hj 0om9shj` mZ_9B髿%iN '7Z4ЛreV'@gRrV[{"BFI(L 09 #Zo0P~F;>^DtAgW*uVp /Ѯ}zP{ИeEٔϾ mԽ4l[PwP;G$cV9MR~*>\Vgw(b*2;,b.e t4olFĠB1Ji>^~+q\[F*nB1$FڦYP3 toۂ;BD< !ƗάpwPWwtb8k˩{DoE!3И%ť\̛'gNi %=sSD=ޖ s=Go!5DŽ%ˈ5N,YGi(rY!1Kg3AanCa.@2")bj\[F+BDoED5 qkˈyi"BlL@G p(sscyi!K c44z5l#ao# <,l_1xn; o,GkАJPl}~:vu3kuݍj[t,/ho 8X0N i0uG vQ 3Fm͙Fv=~,B 0p0M>=TBAgR15;W2KT-A!BL1 xORqL*9^(|+0xƠi]sҩt_WSy,xMӈO-ŖgdkzȚA)j?354ml#M:)]O4RAllu*^K VWn2wEp؆ëѫQFB1Sitjr;\[k~֠ ϶kansb*љ\5C >PM%1B]l*^!ҙ{lA!BLq xU*^p g>n:T. 'K`?|F`E3U{ _kYa4֠hףblu` Zk QÂgP4:l`EΤ]wљꎐ3793הa M ,;W!)LsJ qc8-[ܼmh*0W1}t:;㭿wB Čߚy=;&z+B!.]/^}[`f3fy }mjv;T4j4q-,s}]&wa&y6 I5srIu:F ^7ǘ ؜v䠽s 58𺛹k(]^G( IDATiVA(vsFr,C1 O÷G!:D0>F#j4f8Z'X ֊>DŽ.ah2qں/̧bC7fT gGcXH&(g*͎l&xp82jҩ Pp8+6=FhY..gػ`"NR{1L}G5G٪6e70v~O]ANf]u_UЛtu qju\g {Qڻb0 txަC$)a"Btf-+\1AC] yLYjܛOB!t4u82~Q[ҒrҤؿtFEs G_"$✕AYfgU{?6LL0eFRF,ƂI(ID^'N$f3f G`g_[PĒmnʚcFU ~f-bQI)ı8˞S㣙TE(4O[N:M|UJH%-ӚѮr*/(C?T=`ǣu󑌧uGxa6O\!WԋKB^1殴e=ť\T['gZsig".ҼiJⓟ ]#nP=Au)'"DyyѿN'PZRu_s36=毁B14rrqǸ ԓN#p 'm{)3i\/=ϗM(IA3hхkpwxD. (:5ڗ3,k3 19xҪ@a_,'ci0Qu<&0;'WbtH(ZKFQ"(ٳ\l. ޖd,I2!>>%™L4*-WC(l*f6$bSku0renm }n̏syg7_&W_{rj.Rn|WW\~%kϿ_S_~{\7=4-߹q827L$ylC@_|ۏ7_wE pӷwoqBc4'e)ZRdoV;"b]n["8z$B%?z7޻C^1ݕkhZpoIӴ ''}@{'>K/?ǿ^~{x .@qǯ7w;;~}z2ŋqw=wq׿œO=F"g{r'>ͭ?:B!ı0`agPH*n0CBIis د&bS{G|ބ0RzZ>͛Gzk09C Zu2ku:ÀG7B2"oQ6{_;p7R4ЕPOAo֡PWL!vN~L<枮;$3_7z߼*BLJ畲C-Ȯ'iJD JeBRT!ykziEN #8T8܋x_pdb0p.Rim=*M,;l˕߷&Ar󩩭ƕW+=~F =ݣsB!wj-ձc) NrAaǓ$=CTDcϋM,T%QBoo$4z `硪Feƒm}pXb۶N6_>O&?Zf)&%{vMZIflYim(FY&B=Q4z @% 1>G,@AKX–,N qnFT 1IzW‚4?<iB= tbd9Si)6VfzB]3k^o|}隯Nx'0LB \Ed2 /Q3oLOE.`v(z !3k)VB]]>K\˷o];Z{%9l/ǢXkzq߾U_^¢+pb)^W co??`息{<%JA~!>ߡN}y<[.\h45yl۶y`“:^{v s(Qޡf󠯅Cþ6^ά 9D 3gu̽pPp8< "ӡơ=7A<ƟJl#9zr`oDSS s\Zi+1`Xhu+xIQrph<s3dL߶Q&>:"+;ls2$輸̘&z{滘ζ9O_eWHΒJ~HB^!FZY7pY.Z@Gl/ F]!̱`"nyῲi,^o}n ޽rj.Rn|WW\~%kϿ_S_~{\7=4-߹q827L$ylC@_|ۏ7_wE pӷwoc6;)Fu\z\R+ylmL{%%|??/[{wбd2A]qY,RT~j^=8/D2λt8Y0!/wlO~WǨo`ǎyj}NyYI2roOd53놙{3a^Lwj,j/dovLU%̱ Nr=khnѫf&cI(MN=JDx|dșIh<"2~%Q5XLBqRbRo|~F6_sXPݷy~JԨDvvF qs z hn6޽G@W1m]+x/?@Ss#N'W\~@{'>K/?ǿ^~{x .@qǯ7w;;~}z2ŋq{{'zD" .=())O|[c&D"4*UbJљpNV5vxݔ<rcrFKkvKȰ;xg寓H\suܵZP]SŷoV~:?]^׳\vkT[y^-4/Bq\$czBFȟJӄRIF9Z=wP?oGgP{h{lH*rtQ xu&-"&xQꎠcdh8ѻ;Zz/ڞOSvf^1/&'.C m/o<$FnBJۋ*XaS B Ko1aA3;ҵO:ʳ!PPP1kUU;hGh,Zxx:fæXxs*julz(x<쮮beײt2k]͛7a0SAMm5K/ o H4bi,FMՅ1%t iLkk>++W}hd]~>Uw;g?}5_+44[o$ ѿj7b0زpogw}v Oc rM|گ_/]]]W3a-!bw QahѫCJ:M[,jk樜SYe]X0%ȼ{rB+ph\VYx6'n#9Cq*b0쥳բ]BTO/E6|фb`0<k>^O7X5.W~ߚ:H&hǕOMm5^9زsh4p;fs.fu#^/ф"lw-!2zkw%Ф=xGyG]ۯۯyUVcw7;ӣ&ltߍ[!&B΀TZ+嫮] >3Z"μeT  S< ~P_;B!FVB]]>_{j^1)YrLҞY!Sc@RsmETE  Ҡ`,5۹k:&GePΛ ՗/փΨ3~`g}qpno6vtQ-fϋM4N,xbhR4(8QrLxD<2wWL^&3;"n\ O$Xi󢯇LӜZQbrm+ %@y߇zRɾD ^'ebxW/߾^Oo~F(h߇az}.j F#ÞjUׄ^=j|^/ ^ܷobEZWL>-]+홅B1H;;JVZ2!GRIvFhU*\:=TŤVs-[ gO sgGk„2bK!imrz#\o7uC-zӭ~X4g=)#>|N"Wk8WE&_ߺ]at5zѝTNv g`WeWVٹ F=u6 6=Ω p,cϷ{ջ&@K'J3Z'kљg|$E\^JK(bZa'f4"wC~*afs ^SZ"F2JNGkP>ܻMghXwt4P qt SL% rPAEJKw{yn`+aMc IDATO}6p˭7{ͪ;?峟/]7 z~ѿj7b0زpogw}v Oc rM|گ_/]]]W;8? uEpNLT{vLNB!4 xUnuFi*Yz5**feIAKD:=l L&Ig&c#:Xj $?;P9覒i"^e B߯Ŀ_ykzuz!ix~x!>叏znuMg ܷ33PъJW`7ѩEax}kzȭtxEFTg2@w0UmS&&|QjhWXFzw:Z\dժ3I%BQT*gگ1{VYn}W]_=swPāTZZ[-:Zk9ZVh:KVUWօhJ ${w $!$7{%x[X9tf̼twPTZ0-\pꂋy{H%sӍf2gΑs-`bj5fK_%xK|z~r?!D" W׿l\E8憛!/7s>H$ʛoJ"77=>t/:.T*F-BIL8.H0Jov %B!^;ya~l^!gUP¤`^Š/F}Vp #k^ۨ\v_bwim="ÑfWQR1"4RkwSOM5 UFJ5!=Wq"!MQfB|@w9# 2sJd8ȞN*^A΢ųc!Gr-]nKBk[HgŜj '5jY]piR l{c'5_iwK; %FͲ n?i3U!i^V6񡻙&cU'x{AR xUB{Xu<4=s6*Հ-lI6w,]++QT<}~_C@RO>@}C-v[jG?'ē춻ηkd>t/|J_&Oaw.M-b\ۥ`0SDӲE4x?O 33S~c_y Z0DMN=go_B!F+#G71 yŠҙ-ĸYl]#FO+^jZ&{:5*}qyo sxپ. h #k~9T4&ժT,(|OmGTkӞyuHϳ/oom*5):Pי;&v*k7֪uja*^ZF?_,\!> ec˵fOO#wV5_5ci𓜗5|H1@!O/HP_ XZÝ-v\WdAk3k.Y>6핻煖zQO4Ju8xJEf9aO{PSP*F2jt*5߰hUONTK P{3?7@Q9+=Y&+[nUjuU-[F*A`%ASS΂K sj=; >JY֨HO"k!wjU If 铓1tnl$9PJm[S2 eXUNқXu*rQָn|tS/4nv%LV6IRk9!)U;Uzb.tӂc,LJ B8I#IjyaX}PQQJbI?dMb1j5Y|k8u5&RS0Lz{cq8zqTj23q bdffVIȤuDFF&i8:F0l6\1Դ py E)[YEF;WX*uB!bU-G0ya>W Q|^DoER'&Xف5wp 1x>ܞZ&LjS+Hչ=Ԟ]86seDձTeԹANV*AANHJ7%FF>}`#aB94*w-4W(82 c+H,rm!o5aQIY/ERX4NKջbhgCw3坩G.?9'=_L4hPT=~kŤpUNMGlدU<8P7񸣶#0dsORkysQ` T6~~IOә9j4ZK{QT|c7z[1M|{Cx@DoCB7R!B QqDo;l{kAVߚj B{vMg[깣`*?Kh՜Ô,uF˝LyNǀ%ag\s_ F7m!kZ*FTPd1";?z| V=Z_s+Lƒa:9YK8| 易jԬjqRqSo01le׉7V=Z?MK_+L4+!{So, 5YMSE#\=򠟭/Qz_Df~U@F3Mub;J49:--Bw\.홻xS XK y14CUl{(J۫)KesP(^XRX`0j^' ]c BAtW$T*,f >c5fP('<*LVkfL\G4*n$h c[!BUv/CizWf< !b4%o)8^.wQ1`̝ՇC󸸥H ]$Ӳyiټڌo g#gyuAX kO>r܎U*YلBA\.'AE ݺg, qF2ѨD|-*5r'Xf w9` ɖa'LvVNFCFF&`2!ܩ7?l* s sț֠!Rn?2v^ob1\N1*j640B6ޖ+?JVB!ň x*?OŨV炩|n'i9yx TpkA! J=ѩTkIwWЏ`yQy:w:WHr({4ǖt`נ1Qy=M;ZQ5C$ RAR堟#U?UZß DdC~iWE,_d䑪ahzxMVj iʜ|T\SLdDFK2Ay]Tw [SB!0}IqF|:>)Jû;{򠟊p=ɓp1:nF()يe .}{NJJmU]6ÏYgCZZ۷7ü9tZ-W^q>剧8/[qۯmur9r~LUU%|^J}i严ETMWv8AwX.B!b?euTܳa/b~!ޚY2 !b41I# -}3ob1V8ir^F>_Uu𶅻1n*o6cU}NWQl x8l#*`K Hi&"O` k*_ZrihF=Tee;8uM<l;DQ>x%}5P'/z7o6u۞Ah"~OGE4d&+M0xZz|._,ʋ- CYV̝5ç'"ϼ.˛Qd#Mm!ѩɝAWt[7 z¸$B!iګx'/̗NHgֲE(-!B #6?pڪx|lcG-(o cTm"o?aZ*[ɛ5|h30IdP.ct縩N>R*l{a7}lV¬Ѱ׊VMv+vYYE:wFF[C٬vTK{f1$Tjt#OⰅU5ZSKsEk'B!`tYEly t7/W(;B!:#:x|LW;>hDog Eb$ei̠ sɞF񛻨mŁ\Fx9kI}wsG{UNgR<WOlUU*uB!FUf6%,>YN0RpT5 !B!5^;w4Bb))[-AJkut#)V5S^2h9𹷕}WU+Ro(|y`,FsD׏2䞆ܘwM08;NԛX6AmRsXkecC$eךZ8h)պB!u,(&/g36l;*Oݐ!B )u7 7w4ByOLEIi;mGV { Ge3[M4*jj0M1iV5W#U k.Jp_nU'+Z|ӚF1w3 y5^hd04s'd!!p.DţqB1L-qO!fCs 1LNq R/ގB!Đ ^ѫH<Ύ-~ȝJS2Qz.kf%zObJ]Bf0r`Ӌ;ػPix?SZXBiG9n(͗ |79o8іNN <@A ܒ_:Z=B1-<>i&:=c9p6R?!QK== {Iclhd#!B!'8pv, IziVg+[Nom;V[l{}'J7S=xUhtj22ZH;X f4:ʃgQxeWbLw[ P7oBQϦ\'MC'̍y-F( WB#TeiؗOvDZ wB1I+<穦HSF%̇$1NoeN2RpT6-ZqU{vD? &v_I%rLKTpwl)iuR>)H!#4MIХ:N ron*CAQAC16(e=8nlR!ƚQ| wB1I+g^WGk Ƞ"^[GR?JݦF''l{}g74G~`pD~WH̳B!JRkYz.fu\~ g#J|oQ+Cr:f6%,buҮy I`h$6<[!B$|(ްE)2Yx͕ 5^Zά%Swmj~kS5&L1Z(ewXBB!JRk9+=s34?^ 򀽒 A?1i,F%-ؗcEs]ynŪDoGqypTE B!gޔT~{5=rCAcktʈZ˧zAwS2e4W!b44ss'}]=n"R+5O^/(3k)Z<eUl6l !! x>]*v c3E'-+tˤpSabQl3;]!BCQh07ͭWBG [H]1M63 !#ѐhd(#5f9Ia-RsF~3chwʞ}2W!ÚU'i9Gް_ߩ RIe!ĘsXlNʒ{r:iJsK:ܟv&w <^]x)^}#7hᆫHII˯!|s@[|mwzG<=̚9뮾x %%[}NyS9=|z|wm>q5;`u۶5پiMUĽl[_Sc [1X{WwaOco &9[0QU;z3:ִޞzǺ^?mMqw6w<'25͘-掏q]njj͆FNNh"Tj$z[ e4Q5LDoeX0[,D#QBC LL0[y#JEOm xƢ!}*Vv t-f&/g3`(Z<a=#>q:BAr^Ovv.ht붜\6ncgwyn^OZZ:v{44ԓeMNv.PIOf3fm~ۆJZZzB{0F> O~EZ4Zv7 q-ن+)ag7M+h0[)~iy8F_){R *ܻpKKݎnfdLؑ>DoGFq(a2DoE"y:)-{[{l,BˢL0y wkv;d(PoY!Duk640B6՚ą_̊W^ i%?e酿w_h {-%OTc5;uC ;_Юvc !F xŀpEjA PbǢR]#BFnɟ}\5'UQ[[ᖋBPYb_>R'Xt\&-kݔj} .nӱŗN˯`0y<ϝw^ƟnP(;΋˟q[ /'/l۶yU 6z^BE^1 8J.>Sǯ(~BD^1 (U )-ӌv}ޒL*  xB@gɜnjvk=.P]JÞ0++A4 *vq~KFz&U WUM>kŜrn..E^ʵWͷX]s#?p))\q5D#юX,Vn.VY3p7rdra|ks$=Hn͆FVtH+B1$ҨI1 ,HJ!]}w3HB!Đ>0e9Xuqcu)uqTJ+FɓUΝedgyyo[̘~8O/xVO3qشy#wuO>S (-"f:.< Ï]ͫ-'QX|p]f yϹbiu%=8ݵl"#3#[B!$&EH1HR4ZȞ9UjiQG5veBXJͷ PB!P&o873MϽ.n)&@,ʮPOLq#ňD^Vm5-fawlݧ1H^^S ju|aOɶ1HJ˶sĜ#).|: S )^dgog?hʨ!ss$xG#þB!:FqG̼Jn`AJF 7T1d4ۘmJ}ǙTj͝9rpc5BJ TB!'Ogw9YnυZqF^uy^E @,pHbٵk'5MZj*K~Sy RRR14oפ7547;]cs q~!nRܳf+e=_˱z=iimPO^n^59ٹBA\.'=1͘-.&VLKK cadw ~?3g?s+I 7EيZ223[3@}~ߟ=!bI+/0h7 FZ#VgI~VUjșRMu+ឆ<\^ƨpBR*FN>7o:7{ҠX@q@wBMVe2\/w:? 0RA1 cGmp8D,#5%۶oRJ/=rKD#;X)i̘>'z7m3!99#(>(J26mo,XK/?O< ɖ2>a@c  #_%,{aXUi| NUnw_sB!DbI+7š1ɠRs5SS)x8œg^g͌ygz]۠iT=􉧅'%Sng4xhyy6zΝcFVs6>d& aWTES?d``jjYj_-_[PVӻw||]:w%'/݁3j #ybnƬ|F:@[s]ףkߧ>B!UԲ1&9vtlp=T,B!HW\u60N m(Ao < Qr]o"V`DA0q 1bzXS]ƧB\+bxߡR)6/6λo<q EQ?̜'0~2{_t:Ӧ<ȈrأOg? &jrsL=֮[Va-).)d9=&ֿfQL ױ͋E;s ]_ ):wMWB!WÙgIZ%iLf-c1j \sE3ʩ.G& !B\/+2pwo9NEU_MwALq{#7\>(j]B\E^MvPsп;wo=xسg/<jFGb|s_{/"!!Prhϊ NȢ$ Iݗc4N)Oѭk7JJѽ;^nС` F#:m<^ aT QTUWpx<(GPZVҬoNEe9ᑔN9mn7%&gQԌs%N;rrB!Hr !;%Yѷ#yC4'B!H ⪫q;)pH2p/P-Rs4wNYnT.>Wq=Pa0ihh=zqш`y8 F#* _ۋ`0R0 Tmtz=g/Eմ_^f|P8/u|N!iӲv;:W B!^UN-F3E3L #1ßIfc%1JR2֜jB!!^qչ^^/&[hL`f[]?N ^7W)W>o!ȋnE;{IRaX 6 ^t:6l͆n5ARa6ihl]dn.6ߎJ`6}^iT*t&e|pDbnBם-n^\r+Bq]Z@CS{q/n$3i(RVn5iH׍q]_ʮ۾!B=n6Zzd.ohpckk*M T^=%荄kY)B"JJRnQ]]MotCmm6 z)++%2" xPT wCyE:7ǠDYY  "}mj5XmVjj.>]"d^!gU8o&aT\W&oJf+Bqh.MlѲ6+w4}]үmx<6l\{eU3[G˯b%QT\@VV&ރdbu466~~z=vp"8i Ŕ)j2\.'nۿfcy쑧پs 3xMjc];S\O_ABj}z]A!B\DC]bd6-&늳%]!BkxE(w:8e2:0.'P!@ZKKˎ㡻dSAj k+uB+S]]+?#u7%żvh*J=xPӏ_@}C=/}V?{Zͮۙ~^~+/ںZV+M#q x_G=&;E?0-dTNgTǼ^/o~v׹n6_odƜOf2瓙}RRZ_Knrz8e"i[jTtx<"XΙfdQM)V률+B!D jMu#q\Wל"q\Wt&mS d]!BkxE)w9(ph0%8'"z< 1QY>+|m*]N*]NLׄnz# Fҭdg@!_U ^q^G8Nq7^*Ngo-B!uDTVSram]:s_h2czn ŢhSP.| :^v5TdᅘnVt-U OE3~ir%lL*:-`^ج[vee1j+-S+ !BlIZ%FEGfo+ }o+Bq}h5.-uL;~7BRt Vk;]̽3щ確GU 7y,<eya`茤4ԱQLF"g0aY5B|j ..WWmAnB!ע3E3}^@ZB!R%6WTxw^iwV{ hy*<)QdXXsjqXy,<0.z#=&fBo=nVzsB!uij:RB! ^q˴5-!i^o{ө aBp +\[Iw#py=_GSq J VהIk@J( ?%9^ /B!&]!Bq>)kZ1kCL‚ޥf$) ?N=wH֡W]lwj.5Z>*guM9.'.gm$EPQrG8B!B!B!IW\6rvYVU&HhLBURv>T M<x)/BxJ\EvJr}os~W!B!B!B)k^NJC-Fd&L dNY606(bwHRh 8l7oRPh tŠ(n[*SV[q[#.<2"W!B!B!Bxu!adBp;#WQOOټg"[|/U%F5L)nic9JjQ!41R6֠( Vb[BF !B!B!B+ ^q]s8nk٭|X+:lUÄ ᖀRMS)$x,<.zr𜑾!-#e0“l8~). BQ+444B!B!B!~A q=5Ը]:)s9#:0*+y(4FuƃuU\ƺ ^P|zˋV["b !B!B!B%^qݨqȴK6jㅘnӍSv+䲦KO\vUVbY!B!B!B) qEe1{kPT9]dįB!B!B!Mxtg=zQRRٽggkw+ķv^8 B!B!ץsW~Lu>?ݻwn !--^y5N8,+W-K~٭B!B!BqQfWY?KxWOkB!Djw]㩭_+X~5Pkv+B!B!B\Ըfw)(c^޻&BHxcֳxa뗄ZnͮB!B!B LĎۚ=c6KBnU BYxb).)KAAZ!B!B!@Tt,Ņ+(`0,׭B\Zv$HCCCv;*h0ٽB!B!Bь`ີ`4^N+'*veڡώ__}w u.U 6N1%/`[[k!B!B!6{#:c9튷A蔶/QSS77v7ڪ _Z-.)"&&J"**Fuu%_g20M^666{T*:=juOm+F\PgiZ/.w z<O{J`0Pxi\/Hccc{<w-s\ؽVNg{Bs~6nwMYx,:;ǘ?ǘ?ǘERr IDAT6{,:*ʮ[C{&hSjՈcnۙ  {ǭc_+nFŢ/.&q G *?hy E!(8vۇFa0ûG.h4.X,\.DMPP~Y@P M`0;MѠp8+mFmq͟uz=Nn ?F.E^ѡ̦}5cqcqc׃CRy(8#oT2P]]nO7o7oh֯$2".]21z,_.^К !B!B!vJ"""[w;s瘻{ׄBiomm-xHHä{7c[[!B!B!j/-7S&??+G !-ҪS4>΋F!B!B!h,^|B!wf4v:-t:Qܪލpv-a|jZxj]˅>fg(9Wt< ccc5n5n5+!zXuQrn]޻С8ޅn.t(VwA?~Y|m_>+:Fh111_7o7oh5xB!B!B!B\=RB!B!B!BkxB!B!B!!^!B!B!B!Fh{ZJ"44'7 i>;j^=ygҥl8%kp=Nwla~VXx|'QUYɊUKYf9^MbZMyx$CqI1W,a}f4#DDD~Ev qjڽ/,&..iSQ__Ϻ Yz66Ƀo߅'X"{G~m۷̷qnLL,wQrq֬[IuuM~L|?+}8V%&aٳ7,^}t:1wI=% <~xBLwCD]m-˖Ɏ[@3q=^C8Kɓ',o( {}xBHݗiSdjYl۶oRTm 3h22әN<{?FN~ѣǠرs /j5&NixBV\#ӟ摷ټy ΥRTLw*O&0 )5=**}'`q=߰>nYڤ( x쑧HNL]]-7a҅ZNG<2Ibc8/sȡKn7<<>mlz ηݺ'+bZlhsFCb|GIHA~~.˖]|}Lf4S 4$C),YYnDx$wy7cn*غuW.&[NyCdlܴ?ZoƔۉt~C\xXvsϾd.ԩ3a`[Yv%7&i@&O޽PT\e_g.*!obitOAn^._.^@J~|c10ͤ% κG^Lt?S]SŒ ٽ{ MqcᮻȾ{Yjg cnOg,Yӟ>HIVxBoB}CERDFD~ygs*ϙ|li1;jul5ʪ6)f5'} Xj&00GyGٴy= Σ9wiL{gr<'<3 6úXh~l2eĈ[zCVO2mʃ]#?I\l<̚>)8ς>bo5+|ܿk%f1c.mic>̩-zͫ$hyMf(z0Lh4%551w#6&Rw'|Ysq#OsaŢsMfM}n?ov1ի{ 4$? l6+ELwN04߅Aye9zZ5JNIj5'أO|焆r瘻LmZF[Gyٱk%4rc aG{GJHHGÑ8kbfFFS#ÆLMM5EŅFDD2Lx844IN#SgΟMZ1 A鋇n޽0i4jd, 1 Kɬ II4q*yy9cˆPO~~.*ɓgXv%.{B{ ӟt0wJJsXN'99x<;a CoMkX+{g^}זyg6t$&S9ddH\l'|:o6yLw \hp;lܴE93ÇBVV/={fuFF|;Q1]m/aaz3q<+ˉ(0̈́0|mwτ)L??ɊK2FovNb}}w3m0Ldf\0t:=K\`?ߵc<39No'O`mc C(By}L&Fzf7)ҵK7K;-7F\l<SйsWz||4}{xlV+9'[5޽#//O~[5 CoSٰq W,!.6oxVuul3((qc'4` soEa(//0ddjÆqr( _,А0n2 JKKQػ/ҎzEsyDx$M}`枾 摷b1[8$&MFqq!s?a[l~\ndS8~<|``[Jӿ+V-cU$K(**vll'ijkk7ux{0e tV/gU$ Dn/Ȼ{j oh$ 23ӱZ3?#dΛEQa!'GyyŅǷv'L̚u+Xt!ݺ&0ldfQ{:|m$"jEñoj\%>}߾DEFgվs\C=&߅}7ʜ}Exrk=#ӟDR.^lIQh4RS_ȟW>_0?9۷o75wbV: 9rOJk!斐615$s]/9%_y3os%9%)U*AA!Iˇ3CvvS1w,FJ^Q).)fٜ:+ٳw3ٷVER#oӹ8| L. h:zCTT4}6YYعU1 h47ph0ػ/9H lĮ]۸;PՄ1x ? LcڕQMD%::}n*v΁{Yb1&nDR)xs;̶ٰq-%n$00>dї~5kWː!7V}mU*}=STt:t:z&ʺ n-wDEO~x^VZFZQVcǎзO"8( SYYɚu+I8% )(ȧOA.۷ א5+PTtFRzkfȐ߰#GzrK)hKb]lڼ#GSr=o;kTVVֿ}ιH4R6lZKzQoXͮ;ڥA!@&g>/jn={v}?GGѻw_F#:uf@d}%Pj >C߾BRq8#w_N:_-yy9x=g #I gwIM=7Y$'`0`0难S5 Lėo^Nn]3ZMB$% Mz1gw;v_)G],^ԩ3FcS d&zFv,\mfľ\. ilشR1fj5QQ;#GSYr)GfTVV0lʠKwa݆f`0н[,,]ciGذq-_DFFZ!3|}X 5!*Ih8|J^Gm}`0njRRqZvJN})i@XfXlrNҷOBBB[-fZaȐ),*d5dd/>>}LDD]عsCY+ 111Zz i8[b 1/1ѱDGҿ_۶m9| ODD$]:wmЭ;eeNXp68"6l\KFFkׯd$$ (00}'wnam?lw 0`@\_ˡԃ̝ה#$'K,ks&7f)|oΝ͠C99N>c8q7; zLMIr }-22|9`0[=^Y,tp~馩GS;3;|qc'PSSYRPǚ+Xv9?ݷшVޛM~R_gѳG"t,9i*'Op>7Vݒ4fXa |0m7vBK{}(< |Q՘Mf9=11qN[b1z\u{HNDjj / Fu}{dŗs( 7k|M _%++={w1k>z͵=&:̥-z̧-%5-꺮 ^r~/((,8^JVWDٷa'{EQBBByx_h%Mjj 2rۧz{F]] 6GSX,tܥ-C3f8M[WWKFfAcɑ}T)u펢($&嵿C{t!= ; It%++Iqq!5tжaaX8y--+!7/p"""}m٣7yL4` xdh4j"""z=HlL'BC\vyT_(<

      36|ݟ'OP]SELt,p4JM=Ȃ=u(3}T$z g~""D@@ }$.6B(++7Xv;wJ=;;oU٘4CM {^xo_b [M^[[Mz1$E0YYTV>oP5tOZiby^rryS\R|3d4Pip+/z0N.LέL["`?ʟ^}k0II9t~QS[MzQZ!dz2h:MwV~g;cf۱s%nכ @j|o}uuGfA 87Yov٣W{ZKҘ̜c_{ˎ]4hqiMWr},v]_gsfFnIo`MF×k}f73t">NE̤QQdS<tM7 g˶n&zF~D⏹_35Vږ_6YAF31K;AQԄSVvv>MIIF lV+k֮`έM|SAӅݲR#h46['۩",}Ffhu:zZNbPYuv==FUU9& Byyk׭$%@</Ug?D6:C6*jPOppH0Mh:jkk|y^q:]Mɣ_{>i:>V#p9`2[h5Bo:F}R,PQPljP0TT{>}?09Kec414UjF#AA8N{< ;bsN1|UTTaaӴr}}-uul߱={wP__KhH86 le奘tZpqݔW` D^mRkUQWWxߟ왟'0s׳aZv;Qbw9uQQ(BDd4eNn7%ńERwD踼^/>oAtPߚZf:K1MXfͺ|oZ`jjM9nw8&4$ )ԃjRPOHpXl0MNlJpPlFjf3&^` IDAT[ѣ rQ]}vF6+A& z#uugs}Cc=vVlV4ͦx gQ44SXT=|8P\TdlPWWl)ʪ Z-v;V=UU  ֽL>,}."w%E444P[Wٳw' ucڰٚҲ,smhXߴn B9|e<*ʊ ֗+(#**6c)..jȘyZ;@Qqy#2cxd|̋ng׮|՗\wK>y6nZk>K)--iv)6p( \̷TIGLߥwgf<'s2L`;1ѱc.mic>̩-zͫg5R$^]hZny+INOg0xzq8짧f6R]]Ųh4i<r0 G<^/N]G)F`N׃Fp8hجgx<8j5:V\ ̀v>ǃ^CV͞x<ߴA֠R) iMЭkwzIaa)--f5X,h:.m@^h46{|Ό.oZB&4ĠV ^-[7~*ZB>;S9MJIF4uZ7+\.j5VlVhԶtWFS[[͑|W,8 .:Nt:ZAcw\ƁVУgL&NѴT}M& O?C4Z F֬]ko0Z/`ow87oh;R-c6y(tʫ#*EAxNnz8T^o9h.zrޠGQԨ5fEm\:OQ+(ErǍ۔sj5jEfol:=y䝾id2p8gܞz=J|MRNz^R9_Nճ7:œv?4N>j4ZqCv(* ZfhgڴV _;o8NEK={/٠2 ^qDy݂*deM;i?R"iR <49'防bkff&+CF27p5r C֖K , fKCtL&& nnnmm״4L.&^LwPbccصg}<=fKjXkIwwwT2;fխ㱷7wyw/Fdr9ߑe{xx|[ٷ1I!!7V-Ҫe}|5/O/זXb`=OOOoOAm<6>}3{m1s㕵3ץ 9{{˱cGv.-ؼ6fO3ǶZ|L~ nF}ً| Wn<]H.iiQH73 o֭_$$?8&f~~ߊnϘo Olv4𺸸PZ- g_|d-339K ޾Yeʹb樤4xzzq|,s4йxyyhH.6e?7 ,i291LxzzcȰO{QFٌh^j vb` #= S2M&}’NFF&JZznԬYOOk^Nzz:ii|>앯nnM5Ӛ" %Gbl{' 11lކNmYldht2>v0`XQ FFzK 1k)/e1]0d"==ˋtWts$*,_}}JfʈcXxA2fs*&M>>bs:b1frpss^݆tr'_O>esՊŒg4M՚5_VtK8fmtJzZZ..&<=rdͰ5"gYhX0]HHwXdrh-.gdcI`4`rqł-F\q539ꊋɔ4?edi%[,5fl݃uc̼Ҳ-]pq1<0FffΘ`tb*]I&dfb Ó>|i݁$9%]v8k8<<>.ət+V{ s3ot;s쐐P^zuV+֯ן!F0q$z^Oo;&<.&~ٟigdbS|ۿх1+/u+Y K=OvrLu{\'k~y#HexYdw~v5hBCK_sqq!((.\`Mi4 &&` DG##=c w5Dǜ1 4 d-=݉bdM[nn+Vd1 L4.`4 dww<8>auWWWIII. #ii)X!ٗA&b&1)GCdf6B`1٘dr!..RSSw|}|INN")9)k[X,$$갬'nnn_`jp]ߩ[RR" .F >X33HLHfZ cSggw1ۦN _MU.ؖrHHL`vi#3JRR 0Lxy{;߯i$Sn\]]Ydk׭bm|5R*:9|񺤗U*qqpb׏ě.4o֊gމA'\ --(viGWw$!..{w;t Dh fM9u)HΤ{ز/~l嚛=ם{.-xIn^{]t0Ԯ),p?Έ8Il;&7):{[1S=Wn^@@@ >$vlfO?8ND5lfsss~Fb~T\NDdBCKbVF-9vMQ~%"STiLnX2)))$9|7x)r!Rf֭g_jjo^ٽ{'ᕫP,԰A#V+iF`0PLYߛ7/ OII䩓ԭjDjRl~cF Cjj*'N~WFdž 888}$[?[MɜS qDSRe{@*U '..3gNw!DVaOspP%JqQV+ 4?]Ill,f* )AP`?JBBu&O3vww'5lom桀pyׅvVݫ/,QQyf}޽73]JxתV΅ Ћ|nXox gLuk\/k~syٍ tJ G1g[,fbЧW?OU6oߑ}FLL4""qVѣ[/Μ9EВ o(dK 9%zuRnCQFm˖-@ľB餧S~#UA\ykDXr)Z;@"ӚIvwPbe qY#23#v:uFbb!tr'ii.KZZPL97nXW:{N{]97775jFXRX,fZjGYv%'Oܹ3[˖t֮[j̙|'8yLۚNcPbe6hLRr"+Ӿ}G8u٧zY6*D-SoȮ]; zdffb0@)Q2Ts*uRz""NV_uIۿy0 $&%иQ3*THrr2 7EVl;vn%>AA4oWWW<u͍#11~l6{>jjЦU;Μ=MXҌ9UkVc,IIN}Cf-*BCKGZ3X'{^6%i*))fw i۶nO:ntΟꌈɓDZfZ )A6|ճeڕaUGzhղ-+V¡ ,@XII4i҂zurկ;v<=Ю#n\оA,\< FDΝ;ْJajَĤʔ.K]9˲Kl\ k!>5YӖl߾a7M7#(( ڷHppkׯ̙Ӝ>}Vcquu%"g|ͩӧ=zSNL굨UIԨ^m?7n6t2кu{TMoK-^hҸ9AŃX,tؕ2˲~>HzZMrV*__?ћ*UD􌉍&` $$ӢyJ*MJJ2M7izv yV<ӻqql ,5kڒd""Br3A`\m b<8y ł`sX320 ?IJ?Å q/W-ڐH`@q ޽e7|;:tԩY17gN.Uq\ cF= kرsk~>eM~wFΨ㈏gYDRZM[=sҌ ;4 h4ԓ/Rx_OWJFF:ǎc@p95m: :>ˡ... w(Ǐ˛|gN1Y#jZhۦG\ <8nlS7g4DG1sB43jxu>-RGN\N`ٲuێʹiݞg]X,f\]HLLdnt;sT EfdJ*qfd0idff^rћvsmYy橗5{Ǐ?$%%APP7NLLML;'3l"*5kgٽ6(blcǿ㩳ib*(^vK_!o1P,Bb=R...ԪUW'㽄x^ Z&Ç\?q־`r!mk 1i$eHҌ>5jw>%,_YkgPR8JxUΞ;%mryzxҰaHHp(aO? SǮt7ٜZL{ 4!1)+煗]CFruuAFs)]G`Oye7ꋿJӣ]nՖ4~[^axQOWIT9/krx5lИ޽RRN:?ߛS+W]YӖxyyqa-ߛ7^qtiJ/ 7">gѹtԝ{PXwla}xhDe"t0w b<ɇ}٩U B )}{kww769s4a7ٺu3K]BJLr 4ڵa%9 IDATYrH`>N|||ٱs_~ QgǗG<@&-Z3Xۯ̚=GO]1Qݯc 7776ibYl +W.#\3\׽{%d)Dg9l۾ro3㻩We˔Ξ}hִ%)VayzuЧw?ëq),M8P 7]}P"OcOض}}j .7ngVg[mg*ӫu'.<?דN:u솯[͜fqؑMov>ce"bcc:~v?_?"#oqhc ;ug^^1#G]o mZw͕ 1{wW껠[l˖/7.-S!VͺX,f\?r`{@.=bVScc4+._Ygw:/c OUxO/ޓO?ʞ2c ;!*WBttgL?]s F.=pssgM|31Ghذ K7̱fV-2dBXt3y7oFk:}l5ky]հAc~9>CDvΰ!#,W[Pا ÆxO/?Սh&9*vڏ-['{1srssc(Wu}HQt կ+nԓ/Luzzҋ<72-jUqDDL.&~;_Gy-d9bRM,?_jԨ ,/ݝ>I;_S(W'/ޗϠ[;oIQb*((=bQ|۷@  MaӏYاx[;~8iiiͩNy_j-Skħ(W<_~ NbJ?b,>޾|;>|Sv}Nj/?ũ' t {];^;wީ}α5)Smuԍ?O7aֿHMu\YڷȀ;~xa\AzF:֭ڲjrL.&5m-d *7Sg1dx?ΟD|ǒPzMxF?0~-kv* k8|Pa-mڥ'_.a8r0=;`Eb\Ӿ{b]|F""r=|}|i٢ ɱcG8rɷ\€Ξ;Î T L\yΞ;sMƞ˯?3eddP,ڵuh 9ɧ|>)B֮[ۇD7dre_y/)11J luzۥ,Z_233W}"Ƅ }Omb;}zF:EDc?3_gg&sf̜ /G&-0\ן|̀`߁tz'~~DFOlѼ5JXX)Μ=üYۯ5l)],1.[l>٣7ŊpQ8_VI[}l}wtLZuaY_,z1?TZMy"f8>#J~կ0 u_s\F8/ӧ/>d_"^Kl߱Zyt“ """;wT2:7ӿύz;ž=.~^~us-[.pGk{n~;U״onrKcnSg3:tDrw.p=A;i{G'Ѡ~c|LK/F@@ O?;O<7S^~ӾaԱ_>8`mܨO< Șv׌w gϿ,d>l4+UyV> FիWԤqsssz8?nmӁ}5<ԋx{y{S<8O=;ǟ|Ȕoar[hFx3b!YÆ4 'udIyG^-:;wٲo^}-JСCFR|&=='!1cm>~>~srwnƼtMyh4o g[SvJcK-3n(}Fi^72^|/h+SWIYöŋ*d/ҴI =}g&Dtt4gf:Ƚ<[,0F&>>g;8cLj1Y={g&2tx?.\c'31߿S^~1<ԬY~7~W?%`4 F :u3\DɺWӪe;k&M[vݪ+wKy`A#f3!!%Lbbx*3j_Bpֿu->U^^^ޛ/K7G+Ww~|ia [͞=7:`:|i|خkoD]/`k8fƗSj׬K]=\s ym[d׬NII拯kjy g03sL`#!p/@D~x\]]_!믾˄cIMMuJ9^ E?PJ%.Fvg%WVj2 k&^0?t lO-رc[=z3{&m̖-]E&>1ޞ0-S9*ukקTҔ+[\sRR8Y{{j|9߽57 ke 4ҥ;5cnnnL纻{-.Z<}*ض} ^)>v_2VZcX@ ]LrRplrޟ+ow@""WBNYd>^jَ&?cJiؠ1?̜ɫL&9}?'{wtk9{ֶznQz,XG7]sFЙ[~SOe+AF wC (Y"j<qp{ b;vn]ێNjՙk."rϹgiެ+V.uv:sZgTXOO#))J ٗ$p&>Ee˔d2oc߻w7;vqxGF`4朐Rpoڑ#8rPׯlH<̎(wRp{Elr;&&کzW9]Kz(m⥊q G]*--ȶ[9}. 7?_vK90`j83#j卷^aeZۏ˯^݆ԩ]Q#qoLzCcOȹN;1b}4jԔڵ1zJ>ܒ}t]ˆ1QW\#,u 7mԩ 8ܩu];ᆮ""ŠW`İ1WRpbbٵ{'%Kr`EK1oޏ9>|-.ioXKFͨ].bչGsk5DZ/w[~-/W7^[b-mjֱO!x%Ζsw2 JQg}5)lc׮_EVmYv%MWWu֕ڻ[|΋[ܮ{ dKwr^'ɱ"##nzU_-ty|fT<==/%4:S.|>ƻ .|O3ysuWWW\\L"%%?K<I6},]cǏiͤV:5@.=پsO$"r?%BKu+ULrm%9L~#ڵMXټelY2TV+*>;O:+ϰmfvmBDݨ kƍ}ae:V+iY덱1  $ޟuԷ- +M܅8VY5+}Z^~u+-]fub6E^W9|ks(ծ]7S!"r}ndTBbn.Sb8Wr:Hz&(((F#+T&/%6t=fչGsǏBlekÙԬiK?0:%k7BVlΖsk׮PP^H܎}u暋ˆk׭_hRSSص3[]&6P]tP$u8ƛ2áÑW?/Lr5%KQz-ij^>=d|uZ~GYpö5kms̛sd"خs9b,%KNz<=ʗM?\Tם{ <*+TfI9P 2Z5Pd)!!mw9sOt+%h߮#yN@ך)Ͽ,jڔwh٢ 5עg<=EV\j[s+\IQ}>]}aa/DbBlo]*U  jŗf̨ymۘLl߾)`f7_£߯G⅗".<7mCL IDAT?Qp؂ֶm6 FGpP11|?k'Ӌ_=Wj&xyʳL0O>sQgvTVé}V+/4cobtqa=<Ӌ%((;x 2Y""T|zÇf'&*ǹ۷T 9 <ĉcLybo¸w?h4k^~٫?tJ}9x7^dXʶs1Kn̙<Ⓦ9zqI~u>|JHmDEȑCevQLzQF˝=z[61u411_yp߀!|=S hn --^xa6ͷ_;۵L :BCKħpuueֿYx5o,y>O<4.|t9/?>x'9{ }[Աs\sպu1| k]}~k3ͼ?Z6o'SLd|$''zJe?sQ6IIIf⣓H{?;~aME<0!bcczꧬYe?3:&yѣl955kW2cT֯;[팯yѧx>_|L5>l6Ϙ8aAAD<3?{s0{(>#κZZ0EIHL'b0>>={~ςsWRT1:7d(Bbb|A-Ǐ'3D"""Sy\L9F|̞3#ED+m|ŇlܸOED$_%:+"""""""Օ?kcʥF:wNPP}i$jgz OkSޡg^}*"""նMx}BCKOO/F?OEDD}GUqn6wJIM)"(i XTrDzE@KZHo{YXIy{9ggf;3"j_TV}EJU*"r2:@xik$\g4ҹ;[aDmMW-ST~Uə3gOגY"mkCG9y8Ud¸IY]OkcmmG'Ph1DᅴcTbbTgxٶ;Wc}ǿ4m0 tNKqquҩ;^,]'?u_7_!))Ǐdٟ޷LTRx󱝻Ѭ#jцDDDr{KqwFӰANDDxjC c{ζE ǓOqY^{E<٭waܵe~ɤ|_c}'z衚JHP\}o))]3<?`ؾc+?;<H>loHŊUL:::1o6oӵsy%ʗHSRF#S8q/ ];]|:7y'St9:vyԢK\Sy3y_;;;z#[KTT$nĔi?oHh׶=ڶg괟;mN1 ^X@q?ۋ+W2ڶXӧ͛K(^$ɴpso/@: pqq…,[˖/6XןV-G7>d @Mqrrbm̜5-`m< ʗDD;w,fqrhy>;Et1ѥsw*WįƲuۖ[.<܊NQx)طӦʅ se6tԍb%HLLС:BBgjGE/Zl1qd /oP|%#Yn5̜JJlt"V0_Sp6OOqw:[C^|p1~;vwboKͷqmN K.]!/ʪ5H?\Ս_|GGZy?L x]r 6e-5mO;wz73fu4lЄ/>y{0~wlц]3w ՟@~WTF 7=Yk?8R*^- }84IWX]zlb9B9=J,m.]gq+㈈pN…йT(_V-۰y?䮵q\u^y266@J.C zfͼgqh%nPDD~ڒWíRRRqͼuoS޳oG`I֬Y@XOf-XvEu̜SZ; pq(uS-"fuxyw0?;r۲/ }/ |5.\ `ӦL?}Sn;w^}Ӄz5:}!})22Ǝ6_^L&'J;r2V^f.wk a߈ ~xis}֭[OoXz胿!|:[tb-} `e"7\.;ִŚ>uws>><# zenޒ,WwYj)'c,_bvK|0k6yJr>4nN{jO\WSDLz)ߜȃΞO?9xkch*Wƕ+aY:Yuw׎N@Ó>}rׇ1ܶm3}8<ϧhOVڵӓc_sxvIڑ7J&E_tΎ暗]z_8yѠ~caث#iղ WIViŋ/``;5`h׶q;ϛACiҨOzim/_-y=v*^ qq{Y ÓcѯkTM':s콞]zOz1~S .. hvYܧNz$2*|,1)8W88:ҩC7^44e3"á,xxxdԤqsJ.˒ k],fW+[x˨W! 4aep3 VZfizA4{{AF;wGgY8c؀y"w 5jԦFy]MщzuPHk֮',Z}([<7'"2^#Ԩ^ @j51 ^ [A/6X&'ҰA67#=Ν^˶ ֞2eqQkLdT${6 `ݳe˖7,&m۶Xۧk֖k[,Uaԫۀ֮]i>ƊKV:uԷH8t}96m0^kd"rK-6<(!1n...y ֯@sBӋ&aooϴdc< ݺ)ԪY[-׮Hٻԫ'Nx,[#Gqn L">L&k^EZ^&'NAF,_E[V-PFm$m Dٲٵ{=$dE G2fU;Uv=Zhâ,>)_"!Q?߬ٿAW\xoxrss|̽i>6mSݳWei7,6}6  III̙7#99;t~ WߚnNY~lڼzu5Lk)s2 LXIVeޭ7<=K}Km,\4ץ40nLKcdpvvW&sTk766(6yd2qL77k3vvvEEGf:{z?xzz̼K Ad6I[ӌW7"22"ӌa_nRS,e]X>HNN&..XFv}`weyLl$mHP z戹v>>Ď[iؠ Q_Xvq'xy\ ?gVʕcIJJGdf֜*U4{~k`0X쿛+ݷF KؕD]Ml\Ey/OoL&іDnޒKhl?w7L&S?SW\}Kv;~<͚>¦hެ~ux93`JJJuf|2*W/̿HH'jz9__?s666xyzzCӔd^d\7ߎI(Y45EQ2ʶ}wzmƀO%r|}2/tmkٙ7~5=~rXۧQho[_TT^^F/>>ݸ5-o$oLVƳsǗD TvҘ3wsΠPTT^=Ґa^Į;.㙔{a/lq]Ƴzc p>=n7Xqm泰Ooϭk 9ҥRnCm'̃wqNԩ]??^c8XFr7--wGәԱLž6u} 5#&*ﱸwF,GiܨUV7o%J`^ϐȼ qLU?~)WS\)2*Qn|Wvorx9xH~a] IDAT®\ \\\xy#GQ\E<=HMML&m"hHk-!2*@Uǚ7kqG}C.tEkKOpr^7kʩ,Q:ӹ%JQjuk_6hիW <``\m;| >޾ (n75i}wnRSS3}[ethDGZ >|>'Oߧcǟh)eJT,̐kղ IV=: Ͻ`ҥ߰,r_ Ϥ%.x3Clkܻ7yd%-$-52QR˚XY\F ?T%?3s"Fx?-7Ii k`007HMMͷ^̙`oo#+([|C.g_ 2/ñGXeʖ-Ϙcxoo)Zhc>VHZ=ˡݷZ5onA/s3꽏'W(_ksiئHIMɮ=->'h4aeZhCѢ,Yk+ܬlpȡlNDDAZq5r;Ήvr. z xuXf-x֎f(]lm61;+~~΄/'$SnCTEsF®\% ء+MbӖVͺ\j-PnC}g4V-ˋUgZ ƚV:+WJpL0JI;wK.@xy0^ÇZumVL_vYk\ϥЋ(6nZObb9PW?f [jrBC/RLy7knDVk422?fN2a$6nZ7[%U󾾳Lqf;BJ\HY HMMQ D,psloشyy16׏P;w&));f{]`IbbYJ%>sԭS*qzNJؖ7g.uIE9r~~<ڪ-lݖ|-~? }8>+HKKU6|_7Uh(\t57u#kc/_3pY<>ACY73|=\]x͟Ne:J8zE/puu<~}иQS=% >;%5mO̝AXe:vJ.=IIIf2d!m^:ƍy3cT2ǼK}xyKkD||Z, f-kbgq>z5 m<іS'73؛kb7+{c媥DY~~3_\X*ZzƍߍVǍRSS ϯ- xR@-Vؽg9{EF|c̏nKB3wFK n֒spj͸:'-_!ԮG'0wLe†ӱ}W֯_iܬxfN)omX F1WTD;w!>~D߾}~ŕ}uUrUV7(n݌f/a߾ݼ;jD^W֫G_C5>ΕˡV3VDE,[< sɔ)]]_+['3/2" xzxK*f͚>v>qbb(;%~ݏhP1C^y3g_PTqq+S9+y{GS5jBI.=Xv""gᢹ} .y.]dsMrəJ$ŋx]DDDQ\w:о 2i"[V]jԨͯS~PrW$PFGf21r]I"""ٚ:gN%W+[CU)F&'N*HP\72w^Oۃ7wÞ=;iߩU^WCDn%EDD-,""""%EDDDDDJ ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^B ^\Tzz ss-vjz paDDDDD GW?z :dYN1L6#q >%xsh+/7pq?\WWWvvvy]|=౵3qO<quuj3..89;u5 777̃sxy{c4o^WAW>n3-QwyP#_ R_YO}e=WS_ޙ;e:nsXG#""""""""wI:2+]71U=3+^ 6ۼɍ$|AZj .NmP٦彊VFw.V(\ΡIN͇֞PfW s%#&qfb*5L6#gz\<r Fp5,6^DDDDPfxDţ$jXwpQbK.mcOl.SzG*5{72$E{})-h5h!;TI\y.kIO J.gL`%|Տ4˔.ǧg4oXDDDk6.>|D9r^xn66F;э?RVWl.SQTj>[isDAxdq-^q^2 B,WQx阋WtB%1*6>+U,myxiegh\;yP45agv 1*-^lugDZZ*z~sۭĸX ^;)'N7^bʥ;TX%GbC1kzyGmEDDD~~`V؈e+6~$ڟWrػ# kwI_tr#`O:ڷc\JY1b5wT?{Z<;is|lII(}g-EhV4b/=8-""""!p,*6}m9{`)ju̾?IM(P/\lڴ$lv<蛸է4~"&ˈ_A0Plٺ|,--۶֛c1j>gJ3wnN`cx-""""9sfbj>>ɝYWG_3Xj{5#h\]é3hLse f҆$a<ܼ%CƎO,>Nm7ɶwW ;2u{Afg[~շ2K@F8wh9s&9,hq"""#/VL&B. OOï\?(xykVZrO."""r?XzLݞm9o!i)IE^8w b#ΙgzOibckL@G9l˩ ހr>lX||ݮ/hlu'~>5`s$>읽(d΄napt#*cAO9::k _bbܭϒĊUKZEDDDAfSV7wɲ-PVW;63Z'59sW@j2qҖȐC9S{ٌ|ww^y9-|:K.كKxĞ%dYUDi8K)x j P&مXx[?uDDDHH`0@bBF[> 7aOHJ~DHFww"#*yG'G L3Dp҃Ã8*7uUr;W.ZU6F}0oA~5j3rb 666ԭӀ_{Ͽ͞n>gg'4]?!ړu=\U'1{@NNΘL&*w+I$%%uU 7wwIIcOOF_%-gۛ._몈Xڸ87b1=uä)lgj"))+bY/az+멯Jbkhfdb4l، `2Qæ#""""OEEEGyoz? (PwwlllxyK.JEyyK}bbҫOe28qoZ.^䙁=Λy3eEDDDDZҶ|cK%66l#..$YKlz+멯JD%EDDDDDDDgL~Ff:K,Q+o_ 0Ly\[)+""Ty++""<WIwƼGJ‰ȽT""b+!/ 0 y]ɧ32D!%)+(""""+*v'RƧ""""""""bV7a"IOJ`66o[R/ H6Lmh\8ۻuDDDD>{0NzަXaX؋HrrϙWIIL%9>S ;Gym=jjGN1*+"""Wpqpj"#/PH ^B ^ߍH &4Tapu63x휌2[#Zy1. #<(+r^$~OgoG\s%w7Q̝KG04exEDD$.dJ`٭ h0J5M68ۻڷr6kbL+QQ?{u$`;k {M>#sOtWLj,/УG>K<Ĭ5<(g9??bb-GEG"""" Yg'~Fȅx5}9_HXe:vnD=DF3b3n IDATPN8@ٲy/ع 3꽏+Ǐ>/^W^z-_|o:"nV 6?˜y3XzgϝalZ1wpN_FYOz+yӁm .":eJ`$b18"ՋJ`EY,i !0*` X8) )UI{Hl 8HڵgiV1 0̠rX(&SLz1T?޳?e{f:볕CBxZrJ*7o0IMM߭]n`Mo"%5t['J """eO{9[`0ܳ9w\2/eHsR o/gQ}+QkQf {u$DDl\EDLsՍ<<>E,+_nnꆋ+/XugϞ WWnL!´}=F[J,:z͊nTX 糏3ELsܬG>ZȈi]Χ'QcH" `d&뤨#.v\ $5)Wlq ` !.q: .7HKN\m_ @R\*U;hkWq7Cbq&nC[lD&L ٺ=;8w |;>~G>d899麄28{52Nww5 N (LQ#8~( +{7|F}J nF*VJj,Xy{JK4<|xptYP3xIK54ˁE=uS,a"*閾oBz+SbVp/gLZJwjCx!.U҃ X0\ ܲlH^W0i)c1ғT͛%ˏҬi VZJ|B|K湹qmɼx(N||ݩ]fMsÒeZ>u>tؕ/}k#"""tԝ+WۖwFs%2Slqnʴpvvf Μ &a$&&fywY6C_yߦ]gWy/s}u#) GG'&~mr өc7~9wޗz)wvh QbHMΜXH{Q,ivp%ttīyf7/ƒzkg\ӯ > qaD&hyw@>DjNɿ(=PY1}'11{gY;L>[QWF '1m\m3TiAĖ&u!ekPhd6έoB&T.E"P3ҹ_Pc <KܰhlF'~_p)lfC}59$ |kmE  tZz`ʍi0i֢SC^(ToxۯV#ŗR^QJeddܵT*HMIcpV6- ?+**l61qVM:'M;δ}wwǶ[XCOAAWEH6=oz^ׄ3'hyecRi )WqoM^w3NuKŏ/of0yylڼq޽g&=-[7ϛ:e;w&h4Z3v{z*#<YaCGuۦr:39ZwWq:>Q I̐r- Md+eA+Tn&nH4:6*DgFH圿_^ˇ<.s1)RC|ޮE^m vV> KHк6ψ'sr *14  Bgi:+2RT~?v9{,~ ~:l6.wo56+W]q-*:p,..d wCgM낙>O>JEe9_z}m_m^ZE&nM偝ofEQoܹZffi@s2Ȥ@޷Ţ  )A̛?u"H_mv04X0;g09\|s'yC>\`

      'R|1:TVVDȢɰpy17=Htr#&8~Ds\ǫ\·"BBxhvw]V7d; FϞe,)_}؇ q& *h+!>((*[U17<^$mLT5szA2=DlJs>۲g7n9%,ԗQuشn7K-.b&( 鮳'!h5_Ęz#~ޜvj-\jWubPF| O暫9JO<%#9$jR2Y5v@L8E۽73+ȸQ k ˞OP-yWL}-ufřX!;*S\<x VPGs5x3$4~AILB=Qu #6z7G?FW[PF )G, `+6 tRcܐ:*jfjwC- ;rHx.QķBT<&w$O@WUGv4#}_z p@$I2Csl{Lm(ꗬ['!_ϻo w<=*y#MBηf3j<9S#F.;{J=mjH+XS˿V;۠p@J8:S8< 3AD#'*(fٹ:n"M> d'j1V6;Us\{]mה _"C=Cdy p}ʅ7gS!.y"KD]W$B ߕ`@L"f˧QE rH5wt@E[=ϛzKy{E*A{ҢRȤ:WSgT1L3X&A皋67H+L0yo2ajp _zrۄ9 ^}$R#XG7AV> F(1w=OrI Vzb%aD} IDATՄۘ,<Η!.-uoT>o|/oG6|`)֑}DWp EQ " +C}  Sk~.ܲ轶?ԥϯ]/DSr;\$8bQtecQ`RHr )>7JݲƁ2l?\1i;;'H!(Q"D*z**\~|) -%&84$=9fdxE,Dī*(nm5j~'7*-ݪpzy(E=xN{iOrc*Wa DfJWBәM>޹>P8Dt ېcڏ lx6G*tE9':' Vޢip:iDZ2͞b.(@FA, X܀I<%H ,(qUM,W aqR#ʏ6jKX=95F]ڙ(˽y 1W].}I=u3ѕlU5ܸ7ѕG;W%""""Jt p]Rd;W u`""""+DW15a`0 sp]|DX")m""""b+"P8; GpQc<DDDDDD"""""""JxAtZϙʾ޼DDDDt%"""""""JxAt|^o""""+GpQcDDDDDDD """"""%<8(1ADDDDDDD """""""Jx pQcDDDDDDD """"""%<8(1ADDDDDDD """""""Jx pQcDDDDDDD """"""%<8(1ADDDDDDD """""""Jxf[Y """"""fp0ADDDDDDDM8T(@o"""""""HJ1P QgBi)(Zb  l6 """"""%&"""""""JX ,ЎHup (>od@zPAxFpz#Qogf`DDDDDDD """"""%<GpQ"""""""JxADDDDDDD #8(1ADDDDDDD """""""Jx pQcDDDDDDD """"""%<8(1ADDDDDDD """""""Jx pQcDDDDDDD """"""%<8(1ADDDDDDD """""""Jx pQcDDDDDDD """"""%<8(1ADDDDDDD """""""Jx pQcDDDDDDD """"""%<8(1ADDDDDDD """""""Jx pQcDDDtQs{/`:B_EL^=DDD #8( p&)]"G8#5:Q""";U;DDt"""""""Jx p\%8PX&sגe1sx(D7HA<F}DDDW( A'^Ļ^nt5wXc=qpeD07DOoʈkĻzn{̿jCD#,.E$7ކ +WSǯ`S?7(OwiȑBDDfL2ڽv;>cy󐕕C]yMP,ͧWOc}$I96\PZU~ ;-OcV `6:KI4 ŊLgY%""n pTVVB$@zz:3MMMhjj^2WVۿgA^^^L:{,dY6$$''#==) .ٳhjjBRRQXX|BYY .9˅jTWWM;,D\YUUlo߾(((@vvv܏̙3>T"effo߾!t:q9X 994hRSSpf!'''2fss3Ng[EQp٘Gatdeep uuupHJJBFFܠu8w\\Y~~>l6[A`O>(,,.v5%Ȍ 8_o.'$7 "Hf:D&0s& XL"h@':DDt53wٳ;vcҥa?t:?N㏣(vڅ7FG}+WDsss{DQcƌرc{M;a8t9Tϑd̙31gΜ:ؽ{7Z[[ǽv{nlܸ---A7~x̟?999a˒M6P Yꫯ ŋ1sL˲;wbAfa̙={v\ZJKK O,emΝ;)))Ao)`(Xp!̙c/b˖-()) ;w.FӉHgfmn`ƍeM݇Hb\3f`ܹAˑػ~w/hdTp8xg?CZm5.X28M(`%Inw?nzO~9; 7p{xiT֡@FZr QC0e_7`18N8Y!y98U^^QZ#3'JPwz غu+n݊ &[nAVVU1x뭷`ۃ7ۍ-[ԩSя~onnƱcPRRgt=0ra͚5ؿ` 8x N<|Æ as:Xv66c);ϴGw~W^ p1<Ý( N>+V1_SND>}BnLfrߦvŽ&Ǐǻヒٳg[oaƌXhL&Sg<7Ffӧc„ ׯf3.]G⫯nʕ+ӟ!v۴X,hiiѶ)IRmFYlkk~QFAQK}@B޿>3gbĉZ ǏOee%{=}:tL&vաDoo߾ [ol6n Gɓ'4iREQ֭.[x}ꍾ655ւ٘?>lxͫknT44Ƨ_簣 QQ &Zh7[;v4{5#q/+r"FKB$QS7{|?`8j"t3 ;AE>E7gdV؟_-SgwB6 ""8@vv6233 QQ]]6qs hMMtuedذaA;N/UꃂFuѿǿG:߫(5WUF巫wOh 9 <) $+jRR1|"|x y۷/xmՀp}1L3繢. gȑ#C>K{x <쳘3gObxF1׃`Ǝ]M5_$5H=zp?CuGMM ZZZ&S pQȑ#Xxa:EQ|' :L^H'Nĉ$IHOOG1b :4h m%m9j"-- 5jܑeG(O۶môiӐrϓDfff:hooצ >EEEa;FAPWWlԨQA }Ñ?xeknn$IZ)777g듺ܫ.ئuIjv?WZZ#G_~5kl6(iYefH*AX)c N]]?ᶩ`嶧ͩDU]Dv1/O>+ ##:P \ҥKk_@aR<@ oYEgVǯKvם?ykmί~CG*`e-jpRQqߵa~L;3ꗌ'""8.77)))Z㷺0q$IS(ٌ=;wDKK jjj|%Ƣ:]Qr|G8|:7bXxq"o&qlܸŸ馛z~ĉn:HvaرA+y:wyN7e;vp8~1l޼C]w,^YK4tFkA'55gw$ӭkrr디 Cndmm-V\6L>CΙ(HOO3d?_";;sb6G-cjH؄+cє[ Ωc}rUSS4(lƓO>HvTG?}.꯹(-*cǎm?Y{M0[0qyrHɄ`Pd.k/n"7»|? 2|HIl7Y? en6aKͳtl<<+>- p2">ڴS t,1׆d¨Q~m5\0RΝ:"cǎfCQQv ?x( W ::dxw/6 Zȑ#x"-[q_\$a͚58pl6RRRpE-W@uuu'LKK5\ÇCQ9sƍ3nyonn.p-ta\x>hg}[l/55ړr+x EN?E/M+ G #٦q&a NAWҥK$ 6 !Go7롟l ?`IMMÕHʭq6[nllĮ]| X>(ި\蚫祫woA"a:+qx׷=XnzGm@C;|0ՎN,,p௿ ni0b2lqzzH#= XLq7NVHE9VQ hĥ &DGΔdm%/A""b _Cj˹?si5jԨǏh, %.'4WQQUVi'Oon?DCCΟ?/w}qm_ IDAT߾][OL2gFnn6ɓ/P[[SNx+,,ġC@;R=O~Fr֯_sǸw^l۶M;w7x#M5eYFnwO>i韜ZֈΉ)4e)lhX:&%%%Z RGaa!F'O"55U{w544;كtcڴi {Ժsΰ2x`XRRR IHXmOu>"5>#b}Uǡ& UQe&sI?Z`q&w* YZ!^U/XQt -ä(L% ymv.Kµ2bb(p \)[d(#7Gt@aTLWiDDD0w)8Na6)Fff&  8qv=`S=_p|L&9w^~eݻ1}%g~zp 7; `XV3Ɵ'TUUx/@}g</^0DKDNNN{9T3p@1h8p@kN:0~'Mu܏=:Pߣ_n0o {&uՏ`:ujЧbϓJ͹"MvU"gϞs s\XfbҤI0aB+nWM4( ̙3gطo>Sn(>6LJ쯼{Y3[}3NyNaOjWPA|-JJJi&<#ϟׂ>}:&Lq2H_o)j v~#  37G嗀;/:Av;$7$QlAgN6n'@j _b͋/r\HvIt:*иu ^/مi+((@rr2۵ު*}#G.t:qq`I8U}8N-SWv:::PVVuN(x 2< tnA,Oa湹XhQʝǏkzq)spq3jƌĊ+ ڰo>LOJJ n7nOSIocĉXhQ$ıx$, 999^ 6kCO<1j\.ZҥKe9φhWs\HE9@7H//ugvj6l؀]v,Cy#---7zW_}]vA$''x5HLK8mر(..֒ݻ7䲰'>;v 6lnQWWpXޣB iӦa̙l(..Fqq1p):tg$\]]?a…>:~Wؽ{7ON)2c)]]7@*֮Š6XdnQDՊ/g{VV<xsT$I^<4{"Hq:撐rA+>[gGg7L&W[-" 1% ɤ=aprssQUUA0n8'#F={ Μ9~A$->Si&4P 7CΆeff$4TK:@ L X$a֕pˉ}7;v`Æ Z9Ug};vƍwͮl)SGmm-ZZZy!"rrrѣGchhh@uu5v܉sԁWˈ`޿1EM:[n}]CmO>2e LF`֭p\֭C>}0qĘ7Ϳb?ºGhU~wmCYrvk&MyC(' = 8]WU(n 2X1KE}N$\0)2:.6nTDc@n.Uwns~räPF:cV+F5.Yϯo闋=yQ;ҙ>IUFImFژӏlP~6ت p,777y)v5SS5dBQUߧR-A(Xti@6[D0_^^SN~[n^">VsDB]F>SH/ kkp0|<>?<ӝ<ބ;XYwϷdD\wM%2-gPh}= ̀ /݅?U`߼;~?XR`6bf?¢.\jS1k{Ϫ& E7$-q ""caÆرc' Uf6틂;wG$Iw5vt=ӆIFCIOOAq\AU;b]s?E~g:u:ΨI'JiFqQT'4-++Vo=N>;یG)))ɧ8ΐ>wMMMhhh@^^^6_520_"mWGrή&(,VWWcʕy.y5Ɗ+ IE.]G;dfmujP%2ާʘ(1ۺ:-lOҤ^rmtd X:aÆl6k… 6.Kdު^peZ$WQoߝ/teR ֙PHMME[[[Mp&33}і#5oS̄('߿gφǎmaQ؈z mmmf7qͨ|466bŊZ={vThW_逸 ;?Iw]]y$''I ˲ϴXG="ǡXMMv3Sۚx{2---ذaVf͚vTz fu7ғ9"7fM7uRP}9^2Pwn ӢQ/R+Z^yWD҅z8Hr`QM".$%CLn ,JǜW`l 90s痆5 rX,s3hnėGnx2aRdI9""*t[_JJzz܊ TVVj)70fݻ^m)CA"$%%%ygφd(=zz׮]&UQ]8655ᥗ^‹/^z) cw***> оjF"N_4+WŋSL nmƣhp8G]]]yk$''hii ?Ԁ*֥b2( Μ9qS6ͰZnxϭ͙UBšzA^e2tmmz=嗑S]v;ln f3''"=YglZ:.&'-p:1Ҏ_c}ՀpY]cclQ?uln,`r 2`s˘tL<A?X])_~>>?VU넗0jԨ>:ߧN¾}ݻa#oM0g{'N١ܲeKԁk.]V{_qq1Əoy*++ӮM<~„ ZDK*liDAرc~>` 8PΝ;Cel߾]{=iҤ5vUǡ;v,㎠e=oS=wyOAtn5wrضmg>S%:Cw},///Q2 dSE+c8)mSnmmvGs>|V?êPݮ:*.Q].Fz㍴!Șx>݈;JT=,>_z?,%{0ɒYqlBUj o͛`fUaQ#Q Q ׀9A ܍ `(h ld!+D!&ɘP8 ޅw16ƎJ!C5l }:Xk׮5yxF[|Xv-K|!C Yv0c˅c!WTltu[[=˗~^XXŋ=C Aqq5k'AB' I&i?_s( JJJn:g3f̈=c Syfݻ7`eYƆ pqgSLUT$ZNÇ{TBIIvZ-lQQ,Ybti4RZ 6l$sZgpشiSJ;j>VX,kAk.lٲp{`޽>KdΙ3'h-ܱ3gj7oތ}J+cVͽ{7]nc d-\P|?=ruV0u*O4QZo%K䅉^ÕP?Q{-$֮ |* ԂYFłTGĂYo5HKR `Bܲ}L{'HCmr*&)6?_"Z8X#oEQ釗a!H2̊@hyj0+n)nŅː6;>75B/ߞQcM}-"n6ԠnJJJ0n8ddd@$466bϞ=ZfaڴiZB mmmhnn~;L8X,hjjw}FL&42[[h$Iŋwyg@UvΟ?ϓ9 ,ٳgЀz7_AbDYY7o^ 'OÇVBii)F(//>3w\ƭsNƍql SNՂ6SAЖT_o+W^L&̝;7syyy~O? `8|0ѧOȲ .DZzhرchu0a9nnnÇQVV}nĉ,>/Ĝ9sZ{pA2~i6ؤIPZZGaU^x[H,;`3nTVVjyt͂ 0uTߋxWVVӦM… Nt5?{G+c -cq+c(bҥXzuD6mF~NZZZ@y:t(o_|.\Y~{Q"{~gz__2{<ˑ~?U{icHw$ "ڬV4[țv? 0HI,P@"`6V0??%/4"IDpq'HL܉ c-p4܂Ed~0ɞc 7#^j p #FhѣGY1cLj#"8tvܩ _>}zq IDATRظq#3Jl6c7 bD3<)) YYYDaa! €!ʑRڵ+<)y߿?|IܹSoL&L03g "Ms4 ?%yvY_6v!{ف҃8p"|?<>F xx 7o;Mހq1ADDDK(rnOPlCvxn@(- .>D>2j]z@ ""OQ1B6I) """"""DDDD9#8 DDDWyD>pG=52" """ """"""+%""""""DDDDDDD """"""%<8(1ADDDDDDD """""""Jx pQcDDDDDDD """"""%<8(1ADDDDDDD """""""Jx pQEQB&JT,DDDDDDCP#""""""g;WRRgjz 4W('(NzI0vX?~\ /_׼jDDDDDDD8lقsB-A^^ʐ+G #5Gzj pmQBPG?[ūGp466bРAhooݒ%Kj*^9J(ĉ}~DDDDDD#ƝOիWܹsr8m(zEIog}~aLۍtxxmONo =EtEzH,""""+ه͛??bh[|9nwTۍ=;*&'JhH$BGYQTT +]WtwtR&@BR #̽sܐ}ޯ/3sgΜs96nrQrkt˴t_Yj_NKψ9s'R6/n9}ԔsRƮ`AA%ݱcx֬YôiӰa@JJ Ο?C=stա߇P馔mSeڪ*磼ԩ5 Q\\ |||fGwVw666owב{)]PZfk8ra(++;|}}㣨Jܽ{pttDvShZ-ZݻwQQQzxxxȶinJ[VV"TVV^^^ t璒h&ٳKVNNQiM"  fEձ`NNN1؞={kfVZ1ؒ%KXll,3f e׮]p{טYXxx8OXaaa}l̘1¿'N(wڵ{?c?s clo0wwwISRR>;''ocݺucI f-bW\?)k^^"1؍7ؒ%KXHH޳\\\̙3ٶmۘJg%KH" ڵcIDyIك)ﱱ믿n-ZHRc׳7I&1{{{ 6}wBT*۵k8q}XXX̲Qlu˶>h4gm0`?rrr|gذa8yxxS={zC9{裏XncʞcccMڳ!8fΜɶoj5#  %XU㧟~ yᷪ*+JKK~%8}4bocSNBP :T={(O>ܻ`߽{7;}4 mojj{'{agK.e*M:Ur]VVUWW>@17zh7Bee AS ~ΤIU>hKʼpr {G!**Je'OVt'۲eYf,[%]3NNNlŊL( TjkkOÒӧO3<Ν; pa|Pu ɓ' &0 st!33SR.?~vےko.9ܹ3,=0a'۸qO"88(..ƩSwߡV"9s 99P̟?{*++7"))IN:!-- il/_J%+[&kDRaܸq8z… ۣgΜ"ɵׯǬYds=T*;ǎkVg6G_tR^@^ၚܾ}ի%GDDҥKpuu53b{Ӛ|!|eNAAVŋ̪jhүӧ"{{۵kvm𞴴4-\c_e}%3>11Ho.ddd։'))I@w?n7oTgeeee׳ozرCz_/^lPr3֭̕[%ٱCQNN4h^ΉV)ҥKz3Ga=9\ҨTWW}JkvhZnҞd+sY{6&+Vg   VjKd]l亥K6;1|VWWg<$o֭ǼyXmm#ԉM1??EDDMEʒ}\@&xZkg̘7Em6f#11}]NjfEsd+W7ݥXK,17nՐڑW%׽ Fh_~YrߤIkJÞ  f$$$ 11Q8ի'{ĉ%ǫVB}}}O>gSOI_v֭IoF9֮]+9~1yd +$|=//Xcǎ5ɓ'Ktݻ8qℒL²eLNӅTŋ ڒh7NҥKltKN0}t,ϝ;gzK6//'NիW%#G4knݺa̙lʕ+-Z3g$SN5i3]wA23lȞu6 _b=|LAA>n.?񏰱ZgqqN)^uxzz_߫W/yq믿wwwEfgg4xW?O>Xj=s̑;r"Xp!<<<=GNuځJ#""GiNNu͑D1եZOr?>֭[uaڵ:t"ݱtϟGMMoԨQکfeeѣрb,)s˜  aD cKoٳgKmڴIkbX B 9m c u7鹼S%?^r={*+tΔRtuLY3ޒ(nn,??ZV/P)-qٳIيQ*h +Vѣņ5` 0d=z+_\Y0HU|=?uxG-WϟG=9c .\M,KAA}2C¹c",,hqqqgt͸w^ct5q f!8F ='%%ErcRN;v(ٳk ޽; tVI͸lc>|Y6hLby1~x>| FKcCUU𦳕n=k?))){ l7gY"AA0m1Yf,}:u*{pJ{J=XnsAiqMqrr2^um 6TVVZ);uedRcje+'3i&ܱcp1㩧!C0p@tɤw]]Ν;ӧOʕ+HNNF~~lpG))2htQNAAPęسg0wttĘ1c9e|rJ³) b2qv7t^7ə3g.KUU, hˈڜ%P"[S0%U>L[^^ |s<ӈGʕ+[|1ƺutRa홿^מ_,!ssmϒLAAP"ܹSrܧO$$$t*9CmmD$$$7@HރJ_UU%9vqqigWUUBn@S7U,3GKqtuȔ7U@cO?ӧOvIKKG}>?8y;|pgt&77ӧOٳge1 i4ܺu,YYʞ"sK3AAAZCVcʕs.\@\\\ܶmdaYS9kuHr3d膩mS2-9CEoIJU*O]IJo߾Xf GqAIǏx|rN?K[`رDxp%I.,,D@@ @bϦfy_  Ǚ3gp :k֬_aGZvIv?lSj___o/}&a *uu>88gƳ> Jt$%%a߾}z[U^شi-udd(lٲfLٳޞ---s  ioٲŢN$ܿ$~~~-ꮭmry/:\*7@l^zömې'|RO?5IJ߷o^Xbʕ+erl* ޞ-pd7AA8Z ر/_FRRY}]I9$rE(%eԩSujn}%ǏoKVh*aaaXn%wev*_d˒Q}A,Jْ2g5˞ɦ  c?jjj޽{cMO>݋[n!,,M [r, S"^>~ANKKCJJ zeb>ѣqw Huԛ+[qגDxM^{ sΕ.,ڵk3PXX(k׮-Ö9AAAgp9w֭?Mv###1bɹ _r|Mh #9gΌY4իޗ˗]Nsg00{aƍ-;tr;u$9VT|j5ي?vq׮]-b s  x(9g\w߬2gϞ-9^jcb펟;v( qظq x$_|LWUUW_}5zKW_}%+WDdd$mfutt h.4֌lkl#"" vС 6d1=]n&_>og(_l$&&ʕ+&˿|2^{5rg>sٔ͵爈lݺMAAXOCwvE\\:wl5E\\7omB|  9?X9ᗠ0ưqF̘1f.ᩧBTTpNRglgK~~>|I$$$,gڴizSۧNj)?̛72e ===3o~oL6MoҴiLʶAmUUA 㐗^z FOIIҥK%ƍg|~0`qc֭1blҞ~i=j̞=[bϺk͵窪*L:*  rJ99]5F@@yɹ͛7?4ǿA1ɘ1c$}ᇘ4iߏ,dddŋXz5ٳgKr< gIΥb3g ##8u׿gϞ8|Yqqqի%ZL0=>"T*###WСCd_===1rVs@@t"97o|8NJY?x=駒s׮]àA{DFFN<)#G̒+VZ%皚̋RPVV&<&&F  ?4XIIE޽{^EEEzM>]rիߴZg|{OnIJJb...gq/9`hN,[Lq=111z粲>ԩSg`>>>ɓM S4E>#;wnu(>>^R˗K}{UN`&e۾}-c}M*/… V~YY6lN6M{C>4{8N  7u/95k|||,Rȑ#%eՙߜ#-E޽sN)+V{g$J¿[$K1uTY5cǎI#sРA8uئ IDAT f5ė_~r%F=q^`S裏*ヒ-0ŀpa%60,^,[.a1d~!֯_J'&&SSy˖-g%  PC pܻwO/SOY|777̙3Grn͚5mN t-Zdq+k׮apvvV`X2? /^ٳ :F#Gݻ?PHDD9;wbɰӻÚ5kp mm[___:tHMtw2exxD!C`͚58~"rٳgXtVG 6ɓݻ6A5Kۇعs'֭['{=c ...xq=?H۴i2מݍ!]O>gbx{˜]&  ksP]]CDD%%%@QQZ-||| B8)--EvɆ_}TTTڵCXXNrCJJ ***₀nnnk[7v*؁V*cqTTTFnݚ=)+{qL֭,.sY o< 7oăy{{=   Z=ai 2iG[n[RR+;99 VdRu5fAAKTZc[qZڡdIr9رc[jI=1G.IThRumNfPjϺK   )Y[9l GRR_˗SYYޱC̑eIksKsKo2dR0o<$%%5ٞ`zѝbN  9Xs~/_[j'c K,w} &رc&:,\9///%5hY 9@j+W{6fӼ=ߺuK8׮];=+dAAA uaOƧ~ qgQFa…z6jNvZ}ԡa%QF_իWh4{ߟ:  hU~W͇1EMO(DDD8s 3g;CALAA@,g8h4ƒ%KVZ7;?3u(AX=/^jڬ{ɞ  kD`!==VڵkQZZjc⭷¨Q IKKêUn:ܿ,{-  kD᝚z$''ҥKBAAHz;(CDG}}=lKyѣ/AAauPh+c  AAAAyhX    <    C    <    C    <    C    <    C    <    C    <    C    <    C    <    C    <    C    <    C    <    C    <    C    <    C    <    C    <    C    <    CV1F@A}AAXhE8`QЃ    yAAi0͆p h +NA-uAAhAAmAAį     <  ¡i7$ۦhOAѦ.xbѣCCA  5q]j;/88&)++Cyy9Ƅ:uh4|p Dǎacccq]ձr444XLtgic!''YɍMIuu5PTThZ899#͵+00M*1Zmn}z2T*8::9mm}[Ϣg#   p#11ΝӧO7yOCCϟ]|^xGc ݻwܹsorllذA]"##e2#wSL5sqyEEE8x RRRdjkkCbĈpuum򐒒K. .]±c$rוEtt4ƌ___^zaرk]}ޮ]pW_EǎMwUO(++&(('ND.]`iIsuL"??t8lܸM8ĉt42BCC1rHա-jS-B@@Yict=jnW^3f Xu=bAZľgw ߧq8;lA8̧cǎ8<cy&Zuv)*HHH@NNNLCCoߎdz*222sϡK.FܱcL[n,z뵩r>#G޽{XbfΜh۷n:AhpfZׯcͨ1999Xv- xY*JY ۷oGRR$@+>Wb|نUr#Jբ0iB58@TZiAA 5~ IALzz:?!++K=$$UlS K8"QQQ)c 555(--ŵkr 1sL9rY2lܸQp|}}; UUU~::za֭x`kk+[7Z[n!99W\VU-/ n 2񁝝*++ÇCR6lo)4/S˴̺:lذo<==-bOUUUa߾}z)r$ѳgO 2~~~je/7oCSm)++Æ tSNptt4cs΅l:&0l8DFFȒ{F\]]1dtEmm-,s`cc &ĉ!-- nӷo_׻b[)ECvqw)=zd@-e߭Z h(}ݻPUUOC{;ֶ1Qv  |}})LwGZZ8''eee2xO~~8((,'˒A5ҥ *[CC^`+%Xsرco͓ ܝP|+W_~e~7֫spi۷]0m4=Сpj9sqqqzA&%e:;;Kd gϞE\\AY6GCmm$(xI=ХKYh4طo^~eSXrrQs^]BBB$:f@}(ERa׮]B&88=쬃POgΜA׮] c=f0qn)[:uumh ]=ܹs%z䄘殺z3rP hɧ}y/8@AAX-B<A݅Dk'q=ǡSNMΫЬqGc888X`J֭[ No`MsIsD8..WɎ;Jrӥ666`}oٳgϟ?/U ~fk׮1bP$hZ/| @(/ҁׯŋ8ݺu $Gjj;};vl]0m4wvv /cr4GꄿduіLO=%1b/СC nX"o7Tv/_]=7n޻oR=j n_ @ꁚ &N}7n *ѱl$T?kZ@AA2cLHq222ޛ-3#Ю];̞=[H/7kJ[b-nݺ}V^$111xWh"1B/12PWW'bbIsN"reږ!t6[ʙ޽{4.EgaH]&6x`,aȐ!7PTz:fzu*6l,X?Oz:fi޽{Wk`` :t>^>ǡ@$ir ٍ|JbгE9=?J7t}}컵n0-R(tÃ?"i8»6oNNuuFKA hC< nu0}Fzz:***'J_Z-222cS7j5n޼7n* #}~@~~>j~QYY7o"++ 娩*,, ]vm@P{uk߾=<<EmC΀=(AA@=z@RRcC=}w֢GEE aaax"csl޽{dlڴIqrrBII jkkCZZñcDŽ m%ۢ;#۷❬`λ9m5Fj*y_.#*0(st@; ]xo̩A66[`uwC3mVï8ÅP7v! x388C@@Q__F wДLPسg 'xNNNf/C8x"Ġ!䮿q` ^-}2F,}Zsq#$"6~m߂/bи$?@aaa i34t]QQ! &!%iK̵oD۸SCI1<T2ڢ~{hngy@p w0gd19 :½A#7ѷl@Au*s+%۷~o)sߺK+quNKI dr x=~)>7h azU ujɠʕ+ߦ_sukM8&m IDAT sss%_ 9M2,vR  y`mhDU*2˅ i>>hmLJJ;w ^[ZZ{Jkgggst)b:fz^z &Mˉ/ˑ(Ikc(ѯ1[4WJP|]sv,iI~/uvpG  /Cnڔ%%MR$/^qc([tصk10su}'GTۣcϥAauصփt"Ir9x`7񶏺ۏvA؅%-- cƌ{@In g,.??pvv]iGQI?"'иF<33S(_<[Xx Օ9N/ؐkVݻ۷G|||٣Ls(g6O-[0sLYDYYYضmJJJY(#czj"ih抯r(IHioo!Co߾HOO˗qu[ĉG=ӟ6"7slQn7%os۪'qQ^๷zvR70v>Cqzհa \!|=O4OL1!}^u6xήAA@%ƍjJµk4vHLLDAAJKK%,`8OYYdZyFFl~JjjjǽR"KNV__/`'Y_]K!7A s:З[jraa3fΜ 77&!29#f͚%[jw^A_&L`J6[[[L8| T*JJJ#** BZ~WXX222:kRY L9֠ccС899O>ӧp-"--MyQQV^8 [c`K. 2dzǘGMoi\v狧׬mMu9RSqYU]Y6`WiLLD_@_nLDjo #7ˍsqn,ۆA8~%((h4FII ڷo<Ձ1={.exG(5|||Vq-d؎;h*NH(.e]5g l)O. '%;(;ˍ8ޘ3xm%4qQxƌgs e20k,(mS2Һg͙3k֬,1~Ǥe˖5 nkl qT> /6c-DFGii)p)!~xyywmMbӧExW]g5ž_иm3XcAi\RT_lGJ_ ڰV ;W}=غ <9puiLJj8֧A5j$y8ݻ1 ԩ0㗳 N,Fcriʱ;2,8n۷'6ǖxڼ)wؑ{JJ$%(\PMwyy9q7i!y,ZC K?:u@s:4i&cL[WcqSU'?t7J' 'Oʕ+oG-s=Ljr*~頩o4]Ւm4@čH_w<:U@iQinn|)t{]/'PZ8pU5 ZʣǰY.X9sur~'3 f ίq=TTTÆew(**2/!aAіu+**a\a qz^'Cm3f$555-)..Z9޻w6l3C iy=_^(366V(9˅x4 jjjx^_uBCϴK_#N$1g(5U~dee!##1m mL't;;;AKJJ٤-JfG1)cLYҾ/kpCո`z|9R_GPok2{{T8-*[ <ka0`Z+8/{}\ՍY\5`cb[:9F#AKlm<1pvn%`8?#㏑ wUcĻZwx16  V ^[ ]w@0Ɛr@v1 u._l.]‘#Gdo[n͛z'NȞo_cb۶mB.|?q8IOBBB춳bJ-((AAABϟ7xVٳg>}X]~:lڴI跨(L<٨7I&ITMKꬥrlڴIHbl4OvIvkpB1K- @n?p3Xi2"KEn{h 8Y¾8@٠E.(DߣǷB܀MAVZ6܁c޽( D#mm8ָ AA#]Snݺ8f)N:I۷#99Yo4 N<۷СCعs^y;vDddpm64cĹs׳jaʕؾ}ߟx ܱcG۷r:H۴iGW^ 8ppnСQbbbk?_~EV#GH2ߪTVcǎBbذ0L2Ev9en߾dtUl޼GQxXqj5p1?bʔ)Fgoplٲ`[8c=&;v Sza4[׉xAb KvUJӧ~᷾}ۻU"A333-fb=b *ݧ*NUJ\Hƥ_8LO/х 1~`p pvmA'8almg! _G?3g4T h4<i4'qB?ݻw`?=x BWGGG${aܸqQ\\?Dpp0PQQW =Zoy~"˖-[a+Wpmb_-5ѣr劤ݻv2AIG, 42 aÆ\0bĈf9撖gϢBД/3f@``r_~HMMEZZ8Sc˭W8}P;V8ܹs<Xf |}}___ۣHMMf@`` &`#gm7зo_]eL:9;6=e ` #w*1ݺ^A[_gm)6`- DDǷߡǍƠFDrxAA1nnn Enn.Z-A@@ 9\]]1o:-I6H%T(, rkłg9PTA"BO(n|~lv2-)yg>u~~#< rp{  C={æ ɓD*pRaQQQGbϞ=}ꪫ0l0PΝ;'-[~3QwѮ];lٲ!@j ~ &h۶-bccѩS't:u٩bTTx9r{KՓ7)) ?8c[!, 8#F)ꆻz>}:>ݻw#//圴49=zhy .}r[G:uꄞ={ӈĕW^(#zOg Ѯ];$%%SNѣKzͩSԣ>}:9>f/wq+n7׵o3gę3gRZ0W^y%zᵸ%O]7|6+꯿<{ҏE=8XVrp+%ľ,V5W4CAAT8֊5fd-uuuF}}=xGTTrQ^^pǻ}kϛjM5j0LPHLLmqgoBMM L&Qi}9Eh4rLײDDD|ow}rRyj0 PՈyJS>?y?v׵qHA$pkje-| Շp-{OD=٩ATAAAAvTAAvƞ'Tp      C+8 <-=ie      C+8 h!AA\     Z=*p0ƨ   h4*pp\-%q    BvJs+~p{'CAAA-F`Ѫ   QBF/8ǵ^C@\(   hQ!mC!   /͝\dee& AEĉ``9%22  r. IDATaB-1VΜ9;3{qDQ }L^^.]ŋثt{ wu4:%+G϶GwG}DDAAH3JAaȑP(`AR|ox2JUElqyGQVV6ޔQAj*ݰ[6AYR$ARfoE!rNW8Y簿&0kPSXc)kp<Bǥ]׃/ifL&.\_~٫p߿w/^O?s@ަ!u^kZ"-.em۷oq9[S% YCw޸ki, gWcEP`úu`0< qnz"dA`&AAx0xme(p`L࿃gV1*DFMӫ풀ⓣ&w!?z̞=ݻ1l01bD@*Ih/-g M6ڷoO[3uk2ԩ^$AD˂o)i۶-D0ƠP(l>WcX-< DQtcI~͟B!Cгg yALI"&n8 <U8Xx$8M4(Hh "&&bBl7D(A("Z0+.Bm|wI%c M&O6ZܰR[[;j]6jPZ4X>|8 $y6iN ZԾ$nA .T*O>U*%7a?hpCV;]^M&Em冭!j(#"`0J%D^  0 L>L& |Xg:\8(LF?w(h )VRRR6zڵXh{ 8gܹsbɲo9CYYx tӨhj@ܳ 7** WɓRݻwNJ+0y5ؚrB}Cy%AAVZx1¶",,L۸;CB n a9f[.0-7 g(;P@P(-[S KAU*Z0QBDβr (jk"{o3:8 Apۤ7x#JKK%?ArrOiCl-6j4zDa %Ji":O"#""бcG{7QZZ*7o9MZԀŋ69УGI'../2V~ǀ mݚ&1|w{ڏf3V/oD_Nc@ }AAaC+M4~7 vo&0  * jP*>MFŖ0\}_?a" PHfYU>E܀* |DD4K(qyHЂ9&p⨔^[Cy)D},I/Ï?O>DotoFO6/^(|AC>O>@eeK~-.]j~hC1BTWWaaaAǎfٌ@Ѡ{b|MCV:$KAAd9 -٘ j"EEE!11ѭ#`RRRrt:$$$ %%mlj2PVVJzƢM6h۶m@ڦ%%%FAvFJ2L(,,8x Tz zm۶Ejjm,AA!,p 4mڴc J%"qEJ]]-T#,, hӦ |"a~ZZ~wLF\:hK %Z԰"8@SB |2ZD`/Ct`%2pF#UHK p]xGe/Z61m}ղǺu&kt;::7tV\钆`@EEgɄ~ ~-6mڄϻI۶mq7cʔ)] "粬[|K[}c{᯿_`yu:+"z67|=d9mۆ7n]TNk>^z%۷OxzW0tPu;`͒}^j˺:y睒ǦMӧ{V\;wt)7c W\qƏ)SA}FTWWcٲeog4}t<#6ԁ07n܈kCqq9Cŭފ{]t9_~+WĪUP__pߏJÞ={\i;0`õތe˖8^c0ͶxǸq܎˩}kjjdӵkW̘1V  BT6lml}sn=ϟGMM A4`@mm-ڵkxĠk׮8qD#J[ Fp ` "x0J3qVv( cU^Y6@  Łl@|"l 4rQSO@>1cƴ'{ȑ#^;1.bcc% Yg0vXf3-Z.Fs8x x {Σ={`Ϟ=?>^|EZUPP'xuVlݺ_|/_~ ;vp9W^y=S裏xٷoWυ x|wܹxꩧzڵ gFvv\AG푐` Ipp^p9TUUy=1 G]].\C{Z'fZa0"\eCVUJ0BLR*`B-O"tj6H99 BP3Sa̅ h"IqC* rzʒ-رc.)^l>|XR{111M:f3}Q +K,Ν;/{qơ?~<ڵk߲e &Mv3:/";%K <<\BzؿWioݺ~;N:guY <^k+}طoυҾ/xbl?޶˛C$ ݻ|bzj6Ic F/^t7A@ee%? L&h4t]v-"V^F}us硨DQJS@A!n&Q~8 B c| 'OB)P*R h &p}u5J(D-I̾N<'|R~3RSS1vXlڴd¸qo`֬YmEgɓo> 2kSOɊ*Qp'p.?L<'222luնm[L2_}ǎCNN%dum9IS׿e7WI N8[o>-;2~ze\J}vr-+W<7 ..NVp3:u*8 {&58xjoƜ7^Ft>yzZKS  ZCǎ!mg6[M(J@ ~MMCPшdgg;(//ٳg<N>}`>~RzI~VADUa>Tfh8B (oٞT]!@,JK.q)%>,̜& Hj((ȇSBLxp DN ^Q[cU%"P7l`9sd' ,UW]?,)pXEgy#`ҤIӧO毼<4 > 8w~Y[d[}Hަ`+//wŗr>زeC&N()pXE gZ5kH>Wڵk#F4e';طEtt4~aAR!''K,[p1|| ,G0(++Ã>kw.\ &`ܸq.-]AԲCIeeźC`>}`Ĉ.E*%w?~Ky|&+AAiM<#))IdVE}}=L&DQM[DlBlѣGq-'+**B5o^ ]E98 8 ݪ P>HFtNs`aPֳ7G\ t wJ+Dq`fֲzc \2>ClٲEQF}<9w`'N<'O~>qfnv̜9= 1w\aذaɓ'dY!ڋ=*<ŋ7ˑ4YCޚoo[jmwmۚ5kp\`/_Gʖs۶mrZwFYvdm6ɾ:cƌFuUVI)))8p~mw}6mϟ={ %%E2E I_:=ur2e v܉"\x_),XO<5k֠{gp.y\~K/޽{cŊEii)N8>2= rx.x;^B}_yZ?.AAi* Ѳ8`4m+:xRq0oKKKqYF.󨪪7iD0Y 3x&ƒ㕀BOAQhPy$ŒPxP#wD_yP(/Q8(y`u$/+jfYYY;w1FO>w9DGz¹98|?l+F~rKЌ]V:v%mn0|L4Irݻ{ZW3IIIPըz=c̖ 7܀vڹm9޽RXi%** {/>#zYnJJJ\ʳsNgɭLnģ>j iloХK?!)ڝ >S-)))5jz-|d{\qX~=/=۴i>}O>0asa߾}عs'Z~P^^.ycӦM6_ 1$$$W^0an&dggߕ=c7W^}۷;vph_kya_k?oLy hq9/WEF&lj"@^^Flj4c ~}~ɰEDSI1m} KXˊ !HcEHLB5#AѱZ0t*Ibb-AڗvKXA`ЕuZ H0{le`,pnww@`s=u۶mmۆݻc޼y{$W54CEΝ]ONNv1bX##H=z?}zeFc)T9o6[Ngvڅ':|~zsv튫ɟrmȾ=FYf/:_Opk>Z833:ts̑}*Ν;1|plذ!(TF(((@^^p94WSy\8Q_oHR{ F3,,!Ԯ}{{ Sy-815Jϟ>}W]uΝ]vŸ` *uU Tt:YGr}?ʎW^8{(f8qb"pyyJqrAAWpX ^C~٧BFqZ퓁Nq:1T]f6ApwU؉>RY(_@, )Ǣ '.Eq8(y#b(F \#$FNYY~aٺD׮]b…xvZ,[ vx]yy9&N7bWYY6oތ;v ++ kU1o^y뭷7t˱~[I98}ŕW^٤† oCD*+x7o@RèQ0rH :aaa͋W]"6l@NN۴j(++='==VʶPiߚDDDȞ AA-Xb4m+4|1\췷XN:жm[DEEXw@ܞDJp"YdgDQ DfqʜE@[ 9AQQx/^5?!upУ7eaEaP[̲5, f3`|j=N>2afaԩ6mZPݫW/|>_1k,̚5 999_駟z,o$x߿)wee%233[oF v9322лwo8q֭[1|p0ưzj~?}t[䗦cǎ/pw`0>M&6md{+ٳgcƌ֭[@Oƈr+i8x}ڵs[)nX^ȍ)1[8TڷIII>  8z=$#HpȴRt:p: %%E65XtܹC1f@E9LUUPgfRNAZE_QqmTK&%& DQUXfz5g/ 0ȅ c:l VVnѣ1{lXBr|w~ „ lDӧ"##m墅4'ڦڡRe/L1~xIСC8y$o.yСC%#55Æ ݻwMd& ޽{zjWI2} Y+BEj1\q233u~3[tAьD!?? EEE!**&** Fjj͹ @jj*RSSc[ ӧO:vbeһ" XY0AD N<zh8L& ,PRJQtؾ5af@EcBnj @¼F F0&oAD+ cC[>/qH3g5 v})lذA_uUꪫ<L_^2jǖ-[PSS#[{=#>{/^ut: lw}WX t9 !CHFرc֮]+yݴiZV̘1{/ߏm۶aͲ`ӦMx}-_ݖ_ [=֭"O\\YEEEC{܍?Ыj+E1]AD R={帧79ַ#jm۶h`q Cjj˪CČo8{O+lRRR[mɜ N Cu%fE:`#DFxX~>ՈP0kpTGar$0(B/m Q{"Z"($ lɒ%.3mԻwo̟?E w+~ V7Ϸ & 7n/_.y~z-4nf,Y$$W[)('q>}tRݻW2/ƍkqyddd ##< p!l޼K,AqqdY>#<3~iӦsaڶm+{ӫ3wψ6m>}Gn%υPi_ȑWy h(#(//w;qFAvPZZjk1ycРA>ݷfZ[Λ@$gOjkQSZ &031@DDE0k(=qD"L8P"E@8AC׃ٯeC"!lDb cǎᩧ=駟:L"[Bwwv,go8=f4l1}fҦM݅FDRR+kIǑJmsk7qmIۻw/֬YUF\^ǏwlnT x23)) u.}^kQVCAD+88p٧uHIIA푐XDGG#::С:wl3@ OE&977?Ŝbm-j %Ll0zE8W[[Zp"1p~::588m=/0C@ )}رCMT pT*Ȟ{#//*L9rD޽{#>>bajO?5h+r=#)|Zgm۶ʼn'lǏlj'O?5g=} pB/eIZް[={6>6UUUxGp뭷bٲe;g m^]]z+ L|\n8zݔ)SB}WwCAD`Q6wjjjpQddd4 8 6/Fχq!f3F#c0N0-f3 ըA4ְ*1ζò <#*:C%6{&~<PWUcyd-^d0WTe3h{/({<==K.;z</ߑ)2e߾}0`q7={D\\xGMM ;/R6\.L>qqڷo/{|޼y9s>vڴi:b6ѳgOIh44iRSSQ\\ 6ŋnӜ3gWX|9M&yѻwoy5 gQ28?K9 gǹάX"([Tex]?\ <޽;"""PVV7> s:j(pp}᫯8z==n|+ fϞlXѼ 5kqNe˖TEEE-af/l*J⋲-}_SLq+pT*p RG^{ ۷oEg߾}z<5&= VZ'Ceee@V1 +EEE۟yIg?8[:TCy<8(/@yYDDp"scfFE(-*yH3CDY@(vcit0 $2 _u,ZH'{ HgΜiK$-7}g̘Sj,r:37x[_w}C]6')))XjK )#˖-sy/]tʕ+}Vaɗl[oŪUhsN~z\q.k4\]tL w̙x/R`ƴbŊi_o㌜?  B@,ۇFK ={^ApAxYt&zj q"؟ښZ(-.CEY%j**QUVR/@Q~Z8fG\җLZQ Ā; dݭs&c90k,:tH3YYY&"j,]Tr=+Yǯyyy.[Vxb }WxRjL 8Fs[n fe„ 78.%]'No#G׻vСC%kk׮EFFWi7-m`/Z%K<^}.y„ XjUȴzZw! 1ǏcUN]c0Vqd2AnbϞ=}U50())ЫT{WXjPa4TGQ%:*L&hy0Z{I}J GLĥ ` %Ez7ĉx0j(餦c_` bƍ6ǘΨT*L>٘1cm a[JFPN|Rεkzu_9#::EHh t7nį'z|}M7믿FŤImڴliӦ:uV ضm~'L6ͭO̜9۷omN*}bĀ$ի>3TFr0湠T*Ƌ\hd\7'N s=tЁfA ,NFH9'** #FW_viwK9FADDdެ6V6mŋ]DFFC^9e8?͋ hZXp\r5(!4g0Hv pYCՂ1(DGGsرc%%%8v<Я_?ɉzkS\\rJ=u0ac?-^o[MHH@^])hZ;v %%%GBB$NBEE*++!ݻ#22ǏDJJ iҥx%?s uz4^}CNNNCAD3 Γ шM6a۶m;9a7Zs  8l6cϞ=M7݄F^g0T*T*m†slǏcժU0>|wF]]J N BZ#6 ?#55D 1@Auu5~i{30}t-rW/N>9s栢N[o%nj3\~x yJAAG3TrG#GDΝmpL&zdlFee%ۇ,aeٛyP^^n %8-ƀaj$p\&Vؽ{7F#rssl2hK.w5 r5kmKu~zp 曑 J"l޼?lZ=z~Ԛ  8T*"""!G?3z4 ::sr-$l{J Lڵ+Zpg d‰'XT*e Ayy9PRR*TUUZt (Ҩ!gx#o@y/g|m1c`ǎx衇pAi;ӳgO,\cǎח|  BHట4cԨQÇV V(JjQ  F#Ad`dq>ouާ}=z4:tHe:vEEc#v=g2s3I ܉Xt)Nj 2S'ݻcعsk0gL6 mڴ>OADK8' qqqӧOGAAك qqqhӦ zꅁ"==**  ݁P5TZ+ Dh#"xV6=#AAbZ+ ȸ%7AAA_7:)WcnνE\Hb6hJA*?P! cu91rIqC0  ڢTK3V:upCAD+H! fR/W]%T& ~#  Z\VpAAAڡ}AAAAzH    CAAAA8   hAAAAD    Z=$pAAA! cA9 B Zj {S{^AD X0q(oAA1#[A {Pʇw&hc(A_& 9DzND+Ì~":u ZCHJJje2Lv.-- aaaDt&5̤&OF]]]Hր\ZW|,`>ZkDp뮻>ZuʐloΟ?Tjp"}ΞsSbŊc9~zv{+WtPˡOѸ!8!@lAw^%^z._ Cz/oһp~?eeeHLLDBB0d\y6#|^ݷ{xg1uTDFFu.Фhߎ4hLbokjjls@o{48L|W^٣G<3{EL^|9x ۷ȑ#8}ǎNv IDAT8|0}#M(ilzd2aM3č C1OBis~{>}fرciDxL޿缼<涊2eee9|m5y'IVpm77 "(%o& ?8>S'&&Jv F=5vWZZWy'8saΜ9~=0`0ɓ'm:u)SSGxٲe+V8C||y ‹/n111eǏ__}_\\)S`֭3mۜBwg|ɵ`Ν;b:M:|='|?ޔ?yw's~}%|Ν[Rsr:wrm۶^͝8àA0w\3 'N૯r;M<۶m F)P`M9s&Ν;~ ɘ7oRϜ9ϟ}wX(b~T@4hXbIb '{AcoDc/!FKRwvny==evfmXv#b`1)6QƟh`ɒ%(U*a"ۘ8q"Wv~z)RD2MYfEh۶-ј2e -Zd7eKGSuv5rۃθA3QښekN\Z-Agz,o/u1`d.FNn„ {j|'IN17B aƌ1c|MKم:7K a .য়~"1mې]*U +V@…U۬Y3,_PŋիvkPٱ0:z=i['#˧F̌Pڑ%HoyK{,9CM@6Dc$RA8bƦ:]p?#A-ؾ};;.]+V nN|,^QQQdAK #[mS8V0x`dggs1yd N( F͚5{sq7Xtmޛ 17k jg:#M ^ uP#{xluw2=߉kw`ԪU<ՙ6b|o=Zwk(Fr`` ś PHVN*xٲe=_fZ?WڈutqqAN]<~AwŖx!RRRwww/^VœZ۝/^իW@RTkָ|qqqHJJB+Jř') x)RSS///-ZJ999x)`6QX1.]h6/^p{/^nnnNasQ,<\NNKϟ#_|􄧧, Y^~xI-ε322S<...(VuWRRgCwww@ʃ3o,ŃLFwg_BL6-WN,jԨY|;I`||<^| :hVGҫ;99HMMd;CΰtLje999EjjwWXj^ڃw|Z|ၲeEp1k,ѠA(߫WI8\:*T )ɓ'a8pqqqkFУG{5ػw/ߏ;w"550f D-еkWt T,O?D80ƍG}+VZ/_r<"vS2dqرcѨQ#bb&M`њd֭زe 8 z駟"88Vˏ>c͚5ذa_N:u X[na Çgnnnh߾=$ѣqeL&fNhٲ%Qߠ <.Nرiiis5:a2#** f& )))ZjE8۷h`)Pg4 vZBXx{{cǎ4h *?^JjExx86n܈͛73???}A%ߖ-[{nN<<<вeKEB,,juɖ-_-ѽr۷tn;͜9S;5l|'о5:تU+-ZPݖߘL&#sӱvdΜ9_ܹ3c]t:rQ̞=  n>}6lx}gkqQ/\*TEIP&ΝM6~CbbVc˖-صk 0͚OHH`*V~~!KU∴0}d21fͲ;III̵k׈lL79z?~ڵ&r 2˖-c^~:H?VG*UGݺu#ٳ cJ.-ݫW6lH<߻w:͚5H;tPw;wLfƍL TѣI&͛7 Ý;wM4iUy1ƍc\]]U׼ysƍ$d2I?~aӢ7E',@7n8{" m޼9suCeǢ|cbb4B#l6lի櫯RU?___̙3둓ìX)Tj7nܘr$k駟ۀ5kJw{# ;խ[Wwꊔ洛vZ}'|'~|'kN|XtssS-1*[[ 팜=Tkgmf̙i_UvAM*ﬥ,5k&Ojj*wf/v?] > 9p@B]\\K.NoGHHeLL 3FU#}9C3[`Af'Z0]v)#Gdʕ+*T`_C`ƍӥKϞ=c7o93WQRr,ul)߽{T[oлc7-sЮ];]Gh̙ômVS<==ey|dgg3Æ L?ahM&EOw{/{ }'WW\;)1,Aɛ%ӿ5=jrubԨQ;x7uT"mÆ u ?[.%OwawNsNͶX[ˋ ]p%*;wʕ+{gFj9EtɎ;bÇѥKlܸe˖u:lWȑ#ѢE  8{,,X@L9s&ѫW/Sx۵kdbAмys.'Oĉ?>w[ff&uSN޿Dx,o…8 p"$$(\0^xh[8Ν;ѣ?sΡG[F)O<uV$75\N322н{w9r߭[7tʕ9r .6»{.qib:#гgO.`ԨQ;w|.+o, į :1rH|wD;v Iрadff#r8{f3L"_~%gl>ƌѥdɒ0`ԩbŊ!55QQQXb޽˥y9ƏWSLŋ{͛7ǀ޽{غu+֬Yý3 ϟo-|9>G -rtŇR^ èq=&L-[,z/9` >bYw;$U?ɓ'tE0`Tb˗O,{-пvFȋ /uTT.]ĵkakwn7d[}gRs0|@Z{_:t(W%J`)^CU]$o,={={tdD%*jCQe˖LVVk"''O%#K,aJm۶Fs>lqG:u4Lrr(Rj6ׯ_slח|l7n`>"BۨQ#&;;[Ϙcǎɦs dff4/RfպEәڵk/Vg4/_/*رc=<>>QR3Y򥧧KSwQtL@A2'ٓ'O,ʜ^Ό%-/uѣG"m6Y: >x5d"]PPS8XDFF:ZKtSFگt9߯_Nwz렜,ؒvFC*OpB"ͧ~j ljIs )dNQ6XZJk֬R?8p@/>>^1ǏKF?w}ǏvQcǎJ߿ɨ‘ɓ'.9sÆ Se+VȤ6n5"c{85j:HqU9rDYhҤ(GСC΀%~zYNN0O='|h׮SljuBkǔ_7) @רQC2׵kWdN}iNn&A*UYzdGD &Ⱦ+ci䐏'OkJv[gn Zn/7|k:w:xfIi9TC[В^}CKEGf͚_A]|ӧ;G.3QB6m}si={:SѻeJ ҢE~2'ş{9WBvFᗢ #kR<d2iNHHp-+VHBؒ#FȾs?DRrlkiZld=ѾS.]ׯ_[ p;|'|'ktl63<}tVFkza$&&d鏍%ՕsxCoUwvdC^JĬYNCd2"o6°aÐƯ#6C| lܸ-Btt4AxL<'Oƀ0f/_^2UV+,[ ͛7G-]6j׮mijƍS]6___ 6lVyB,KFoTe6m`߾}ms]F\nݺl|_r^Z5?x7<<\W~_"ݰ|RN(ZkhPjU4Wq-#y{{N:Vm&[9Ȧݝx$+JYR233ᑧ] |3 H%͛ɔk6˟??BBBо}{o$|'ktd2`"ꠚV#VJ>I&++KNݻwlj'M6a̘1>y$ǎQdIˤZYX9Q0LR )GT:a!jS)(9[.\cǎ-Z2e8Qvwwǐ!Cp%;v _5J(!UPJXBwgsȑ#xM߾x"qݠANExbgm@+s#hs'kX 9͚5#N'ڡSʋ5jHӷ1apYdffF{n趖!Thʃ4H̩j;*?~:''&c44K}݅e~ uèKN .D2e.ENlV>FNj딑T:fzcۨ MvFX>z|t!jvWo=ʢF)JgQ:Ʉ;x_ ((H<׬Y(R>S`hڴ)6mӧ#<<#L|z*͛'rʬEPPwM6q?'NL2ر#իڵkɏUSn16R:HLLDBζ# {-KӋ//Taf4BU>P'|}}u0!g#Ҁ-lׯERSS 2͒6G^(!233_Ӹ|2.]'Ot#hl2S;t)WI&|k׮a޼y 0 ,;waaa:( ^;[VuT!˔)]r5j%&&bܵ6mZkNw>~8ʔ)N:~]6ʕ+(ߎ5 7v-0Lx%̝!+VĴi >;j)X 7nƍcܸq8r͛GL}ѣuUPti̙3(G`,Xv [FZ:;߄"wy'\G0 )"z\[;H\-Z԰zxxv9sƦ罹*> Y>VDbŜJh`R]`e[$dffbݺu:ucGapk/TbE}'fƏÇc޼y8ua,X2e;@hh&z-:>~ؐd.]L:s ѹ޽ڏ|aʕ(S fϞM<{jѾ3"##֭ôihF:KAM .-[OOON{tլl۶-;-[;n8H-(TfϞWhL<uAfJ֋+6&316LzXaC`DUﴴ4W^4ߨNUꄵOy_je@n, gqO>!Cd@TX*UBJPBJsY|C6ΰR*Q"?c IDATXjo r:5ko9DFN5jڵk1uTYߙ-ɓ'qIDIyE px&լY?P1ڞdnܸ1իWsڵK֣ AHHqu\xǎ;w׬Y/_bӦM"al5-T^FׅGepGFʼn~ q.%1|, Xg8 XM$98:L>nTR[n} |'^z=FR ͝;wbҤI6DpCjB;`С0zhϟ7={=ի .0HɏZT̘1îF6vXb +.]*2fNM׳* $''/$~7o޴-[$U zw]\\PjU۷o۷ѡC❭[?ѸtDԮݴD[6Dz'T֔MءsRwz8lA  g[_* eNvol2ުUDN ]oa}{Zə/_}&In&&;ϯ] d,]TQakRG>mJ裏9rxm۶wJquu|gڮ]xwˉ{SLh0eM&\]]Mݻwv|1#*T@hh(UF߳gMΟ?SхGTJv vq]n]׀ӆr5{k;z.ѳ|r g YgBu7 Lիnݺp mmS/)iԩ[^Nr44w$!y|u+)[+,<ٌ۷s|||P~\e*T׋|X 횵 p G0tPBX4i.5yȥqssCZ{fwp[h .]oI9lRkl .#F^*JŦ?~8T/++ ͚5~Z2$ 2/\6,z,UV%]|"'>CرcVj2Aӳ|rxqKXh޼9-[U'hOז6-ԣΝ3ٯGaذaĽ&MN5%;[j(%WrvFr`,7"22n҇X^P;KAwmeyx2Xٌoqqqcɒ%x뭷toq$_ڴiC_nH9z(q>߼ys~R]{ pD^ /^?q%*j܄~ [qTTرCnR{.6oL/[Vf+W,rׯ_[ZTZU4CVmLpkZhɤH'mۦI'=酜NXkϔhR}k\͆vڥxdž={oY8p@WN>ON<&vEVHܛ?>\699CUooFE_x1o|ޮZ 20 |wON<~X?tB;E9Ṉ2'dnZF~u.w_[ p%2DFFF%y%|jZz Q:=탖@֭['̙1=н{ww9R|')|bH >\X^_uw"_EŊE3|> 6lH<۰a &Fm,\T)^.\+W7:ÃBN슛7o2 ļ~ofqqqD~06w\Q> 6$+lfxzz===˖̔+Wv׮]ϟ[LwˋHn:w322u6ibiiḭaÈ4.3uFfE)ĉ-߆ 777QCʦܹ}̂ dffΜ)JtRd4%%'\~]6Mll,ӸqcXʹ4<1XLfڴiD9sǢr?^6]>K:a2w7nN=x$eRSS&s,KH +V vM򽤤$裏x_~lٲ)R$߿o5-ysL&CnOe {NsQ,}|߉zNr:YM&Eտ6uTcg%d2SٱcgӦMe}g___վ3K˗/3ŋW;UvaݻNj_7wwẃݏ>|hzѢE1e##z!#FݻXx1w̙3hذ!6l.] 00KFBgϞڵkزe ?.ycsي)9sCn݊'Obhݺ5ʖ-E"##ǟYf}#r#6:qիQFaÆ(S ϏO̙3;w.s6x⪎v5f U^-[$L8;:aiQcǎE@@^z,ѾjiPX1#>>gΜҥKUd2p_ѢE B֭#Fp2g6gYK,IvJK;'N={jQfM#-- ׯ_͛-n䚘___r?" ֺגF-'Yz^ViڴiUV}'{9#|0wZ*J*777dddHN:ϛ7e˖lB4L8{,j׮YQA[kٙ:u`QW7n`ӦM6>}]m{?u5:s' }w}|g#vwsV%y6ljժ"EHT=Xy8h :&HE;waffOn\K?=G͘1ryzz2b>7oJn[FMY\x)Tծ];C*-1a7s x4H׶m[[r4RD?,,)YUɜ:uJ~'O8|Zu/gN(BӧOKҀ_9z˜B;L$QFi׭[7(ٞ={6i$nUIw{Μ}wRzNz`|^;YtVƖ:]Zeg2$>V^]Rl;̥߾},VX|f{l:E"ߛ1"g2~h֬:aaaYf1իW嗟pBŋVP^jܿ%`Æ cnݺ0 }˘f&!!8q"0L^|ݻ7S`AIhтٿ?oHMavʹoߞquu>Yv-.qqq̀$ѻwojt_NE٬HZ#2o>n;v4|5LL&44$ 4|2fԩ;*TP%#讦}_w;?9K.Y7zGl(!!!7j,9{38X{R4ڮf/_NW8Q؋_ !!^BBҥK|pqq;"%%xQX1TXq=Eff&yxyy߰rrrx$''H"(Y$%O20 }6a2PX1/_eʔ1$$ܾ}ϟ?GJJ (mӷ=z( JBʕQpaϒ< kGpZMdܺu2w-<}iS~q]$''@(Q*W Z5z-F/g;=wXw8Ty8)9Z1fժUիW5©SBgi }g777xzzRJ(V?i(yCj;ϟ'p,_\t:$ jGwUVx68(((((((((((t$qϱb >{*- ]t̙3so߾h=c,\3g(X %Mp$0/_ė_~ɝq9dff̚57(((tAAAAAAAAAAAaPH?ON EAA  C`D~ ǏD 4AAAAAAAAAAAa\]]0<+VDfЧOԩSBW%*ȟ??%a \|FaT+38(((((((((((((((r=  \ࠠ 0y&A%m"n%b2PPP<ƒvDg4B(/7ne:%QXhmds)*و&z-\l\v L&T\*CC=zg+ܹ4t(Y$<d20 m/h[[ntPv8<"""CH"E۶mQl<ن%$$ѣG,X+WAAA "LJr3ٳg(Qq/&&&6R:ݻw͛+V`o<], Δ甯o0SLf Mĉ{^^^ؼy3^xh\~XRPp$ cpu 4ӧ_|&>܎;o>,\ I>W@#Ԯ]j6R*M6=:pYYY8y$lق~ 999+UQQQ'mٲM6%ϟe% 7oLÙvirM_VVΜ9IM,Q?گ_5k`2$$$$ <<vݻw 4/&O|)>} 66{A2e0a;ګLO>ņ kKu~#eg)իWk.^111NQ޽{#&&&[hDFF 47a]oP_8 7r֤߰\PV{Tj|+WN4bɯo0}tرƍ#O6 5j"m0c ̘1#Oe={ ;;m۶{=5;޻w/GwWWWmVvIQ~C^E))) (\0*T {QV9qqquF^~p=82Z/7&-tq=GmHZeő4kOK^>{:0uoٳhҤ 'OEH5k={TRNo{@v3џO=zRћ:`۶mxh@^/iRRqhѢX7)}T˗!ijxW[[`>nrrrC"33DmC-'o kG80Fˏ:zxx`ҥ[.7u?::[lA߾}U9B;W&Քdeeŋ2*GM޾};ǟrʡQFn6S<{L J߷Tٌx!:/<۾};-`_tCBBAѢEE|zѮ];T^=O-=U^^^(V,}KjdŶX}uDz{8"y8W8]6l׉ѩS' 8}Mlذx! ۷Gvо}{h'Qll,֭[~ nէK.ӧV 5kN89k׮EҥE駟Ǎ>/~W^W,..[lݻ%w~=ze˖su>>>ޮuBCC~z<|)fy xEV`ٌӧOcÆ ?/zvСz聲eJ:G˗디޶jՊ+MIZj={E" IDAT_V,oe`U!?FTa^mz>|8͛ǥ[p!BBBdw?r̙]WP-RՁceuxʽol5_|9s&g@jj*VZjРAx뭷tA;vĠA$m5#l{n:ўNmN$%%[nD̓zoܸVZ:u&^VCw-F ƤI=z(fϞ]… 5*>֒k֬m=cʕ8r!rˢm B;vXPDƍc̘1VǕ+WEGΙ3GΝ;#33ׯ_?t҅6)( عs'ST)oҤI̓'ODcbb,a6a/_2ƍc\]]U׼ysƍi&Kۮ̔)SK.ijK~[n{{a˜ҥKKqU7rrr+V0nnnhiܸ1eof2dy[͛6ɪzȪ5x1ӵkWEzYlkѷT7nlٌk..?F ..NT0vPo]tI;v6iD19YYUKqŊӯ_?Q~۷oםGBzl߾ROk6-TGQj/4sDƍn޼YSzmzRzmg/KׯvRMZw_5MT/ ҅BְaC"޽{Uu֬YD!CXK[|/_3g_%>>phcƍtsV5 LU9j}޽{a+Wj6| S^='N^vH 6LR?///&""B,gy++_c;dggˎ?^nLNNl7l XjEZ[Rcǎ%WmDDF{1LLb l۶vÇ[[.ۛIIIMsEQ@J̙I(ʛ2 GMzȏ6s²._և~ *j:uDl Qщ'ڍgʢEHMpSxqUW_}E7w\Utkժ?4zW%^rEsbgpeZ|7"jb~:XiKTla#8c ڵk|_:NA 8$!e<-5,Z!\?*y&S`AՎ̀T ɩdbڵkHkk˨s È(R,ϴ8,*?%Y快&pBQf^ لMo;'FTK%]%ԩSk׮-M~llHUիWtw}WK6Қ^^pUkUұmZ N qY#oWT;),YK.&5K8-oСѾ}{ԨQ#U@ɄZx_# HѣGEرcĽaÆ6 ֆ쫯uHN4Nj %ӑѻoV -xH3?ӧ""",/,#焨Udxo|mngγ믿,??^FFRRRbKC~r#Xz;&R0 4dUn/KzsNۗxޭ[7,X8To b͚5QN4w޵ڦjAjtCU'v9r>;qݮ];MtTV-ԭ[U+_Zjh`?/O+B <[ ߭ilCxx8f3qD?݇ѣGD -Z)(( !AݺuuU|;Ν9S^=T2eʈىCj!fff9aD#q>>>xk_ٝzG/TV%Zl7oڵkVZ6Je IcMFg(Mo#ǨPV/_-Zڵk[ѣGѭ[7^6mrJm3_ذawݿQ~R2#P!ojtRjl*mۖ pL&lٲ_~,#!>>z5"ktbt` ߭UF$9`8NA(?i&=ZrƟpZǎQdI򚂂ݗ}6kLۺQy5jHS>g"33b'I&rQAFFRSS4ddd*d"ykD'K o詆r,M?Ǒ#G+9Ujy0 2339YKKK8JTf-z9sg9X [d Ltt4:5iׯW< Joݻ["AJf^JM!oW^^&eSڏ*UA\pܸqCY{TW>]]]˾FEEqmAZiA,ն;gK$?kepBY0vGZF;oݺE\_x)Gt- ZT"~J*V7<w%I=Ĺs˗/ҥKx䉨|Puy)V|~ZFG:kݻwǦM{Ǐ퍎;~]67Qo]xqqqM}aoɍHMMcyY裏PV-+WN !tϟ/_wyN8ݻL2>yn6͛K%HDZZ~z"8|0*W,zoϞ=ĵpmt֭"e_ٶثϭC:uBz8"6{t333qY9sFmA=dL2ڵ+?-+OLL$*THSt E p$&& ^hQxwцKZKxyyqIIIDγp 3##:u*=zk#--ZԪ:)MKK#xG} d /_>Z eʔٳg=‚ `΁ԩZnmqލ9aL\"6Y[V&O,ܹsdK0 bp3BmZ:Hω-[`ȑ;M6EJ$i, .t޽#j?@UzֶӦMÇ YVK.Dcƍ3f LE8{G(Z%r{g(!tss3xL&iAVVȁ>Dll,7o!C AJ{VjiLVk+"{ɪ}PB_>}~#::'OF:uдiS矆7rƧP*T`({.q-5nSΗ޽{f͚ʪp۱l2lܸnεdŽ;HdI' ooob)_ ay{IЫW/MeCƍn_dRm1Sit` -*gRmq^R؂O>/^H#9{" `PP8v!S רG KzkSM&T=11-[$6uuuŐ!CЦMTRڧOJn$UB  5RE?Dٲem]9Y+Ȣ^P5j`ڵ:u*;CСC)bHlK:ѵkWرKsTT־}駟j hQU(j -G ;K!ӦMѣG-ݒr$-v;z  HLl߾{ICAA8+F\KZQD !Cp@z5 #n:F3fM*Um6 iQX13 $P_xqoCBBtp0;©&a%7BBBlܸqطovItD֬Y4l޼YrgpklfΜI8TضmC13:uнZjPV_/bعs'Q5k˗شijY-]4,Y 4;w8Էo_;vLm= ;C螑M$;:.ڼy3HIIm۸;w,VC:<i_dZ(թtҲ?SZ[e$f̘AUT֭[- 0HmL:t@8e*gϞqz4- 7voVh5zƦp kcog!99˖-#ZjsD Ca+- 󊍍՝npcJ>-QkFn\\\޽{cǎ}6ضmhp[q& Xt)qۤUVB!?|ڵK=(q-tЁxw֭e GժUQdI]x?`ر;ׯoٲ%?/ZS{T~<<<sq66,, ܳ.]Lw##r2Қ_mQ#7Z*gX[kDJJ -[F[jb[lmvƲxg }G&߬3>ڵkGPPvZ0kdGl5l6'N9 G@YDjj*1nݺM#ӧege s&|Xl___:;;yc!7K0jX6-?6l 8p ԩc=_ɪΖ ,Ys˗6w:+Wrsׯ_J6)P^~ @߾}oaHLL䦪A)P>VX][Kwd hj[ܺu sży0w\:tHuZKQWe i Y;(h/TZhoܸ &iӆ()(<믿ʕ+iM8o[ŋ~]r%߿$I]ys>9 CP}ew*uֹ999ċ  6zh@78q5gϞeW]u5̙3^3/w9_׳O>D:Gf3ӟ8?gcǺ}Z%Kzz˵ӦMc.rp8gqqqA/V ly+[oU됯[ 䒮[o566.??\;S29pb VD:o菶.裏vҶ#wyM}}=۴i6%%,_M6\{! = IDAT5(m믿/G7lr{fee1Rގ?KԶ6ve<_!:!p+B1>>+U)J}رcɓ'CZR]wwwSV&m-š.5kք4<_|ŐO:YG8駟ZwA`k׮HbŊN;jg***e=s~B>oA]K8/ңHHH`O>$۽{7+))al׮]lʕW^^oǏ_:fZYss3+..fWf'OHѣG?\\{'w}''77=S,99k~Bm`~e edd믿f`;wdVbӧO6ȑ#>lW\vJKK]6111<(xeW_O(t#lٲ'dcUUUd2Fv!sy \FŚ}>'33 &7Ǐ#G+꛼L8з;vDAH]Ҹo>Zt'// DZ{t/뮻W_W񓙙Ɏ;p[@3]moowX%Kɟf W^>'ouuu,::ZU:]␵AJu_Ϋ@ !{(Wo'o}K(A#\ m<=; 3e/_Ϟ=n}gԩS}7d3fc4ptt|Ă {Q&G=z@D8gGY`߿w~RSS}}ٮ]>o[w(b®ʠӷxb ֭[>{H6@nn.KKK{rlɏ={6usr?IIIu<{zss{uXMD+'W_2GG?˖-c555]6i謮&''+Ҽ TWW{6mkkkT. ˁP A\`۽@T9gΜW\\b::#l_?`>ضꫯ,r8.crrr0p}qގѣG=2}&O"P8bfeeՕ+Wv8 6p(Y7_~ehj.]Z[[ԩS;V^;Mb v&{F 3[YUU5pAɼ͙3'd6CfO=T@}饗ҥKY[[6mZ:uO uQW;`Ԛ5kXLLLPyaΝc&Lz/oZ}%~YV6sLsѷsαƮ֟^z㺍7vÛ.\aw@p5k=ɝzfuu5a0둖#G"666`}kiiATTTHM)UUU(,,DKKKPi*l8uxGff&xk6v\<$c+ ##;F^۠PCss3JJJ {O-1CE߾}#,qo, z}ĵUb^***PZZҾX шb !!)))=ztEr@L8Q+Į]j@0p뀼iz%=l8::mmmPTac9u1ʥDH_C:Ɉ ´ %*fÊ+b deetMkk+QZZ*}j*XJAA=؈Ç`aOH@"5+WěoyaΝ~X,կ~bի-ZD%  D_&i]wE!0 !`x555kC!//Oj ſ;w.yϽ^{-   zшXߞ|IpvX,8v8r@ӡw3f rrr0j(ņH  >V+nV޽[9Ýwމ.D8   .p8\NdC!w&eb 0ExjyX.0h vmZw|'bGn8wyq)##Ŷm}2331fF& 8zә3=’_WRfv(-jctȜ3[ DyN)( kd+ny)RWA-bA_x/x#Bp.! 5pqTRR܊ i$܊oc:th =|@ۥ]jkk]JTW}ynyy9l6}?~xeeehnnV/3f`ŊxGpUW!%%#mlvbo2vX鸥+Uy7/4ܹS2 4˖-S4nExӇb0C줣NG?۷/ Waԩw555y=3uqqqE1b]ɓ'M%ΞloՆ/nxi&/Th֡}(#&&}СC ;<9rߘHHH& ~wR_rwoM^Vk'??'N@rr2OsHKK qyuؿ?… .'F QTTd̘1Cq;Ѯ҇Vt1;8"P\)B#>} >>k]1P:ݍhJ/0 P1Aj5j$̾n|7V댛قku*Z0eB\IɀZOŹB؝vCAA\z8TWW+8l6JV#==F¾}`0P[[ܹs0$Wr|ᇨ1fx>1l6|سgEEEرcpxgee?ndBYYƍӧO㣏>$_RXX;v`̘1X`߉ سg,ϝ'OohѢJ;wŨm2%o߾hiiqhhhP^wY%]żw|nݺ=&&F1/&0Ƽn=y Mݷ]v׼t> qqqijHCeHgcJRLXRfnJ\GqbEouO_mFOF^L IDATZfco@xT*LOp  QNO ;= |v+xuk`'c΃";] rX6c:Jz _~FU9cp  .yJˆ#pQ0PUU#GzWYY 0n8DGGcС[ڊ E8 ܻ;{>} :: ϟǽދ8[}s]Bk)Mll,FBI JrJIIqhjjjm@ga.KMM^S1>}VsH̤MS{$&&JoM&uW0X'%..44w|`Kn0anG[[f3Z-]&Q̋{^sa 6 Z:)vJyg؈cԩ͟]w_yY{og=6ܷxӗZzJ>)WuE}{P]qskW kU;o_[;Y0@`8hZs!Op+Sj1ج<s O[A%oѣ m ΩS&Y~pY-7eeOƆ 'M뮻Á2|hllDuu5oߎoYqPgIƜ̜9}ܒKJJ_x]OdddHxE9$-[ 5558|dkSLP غu+jkkm _!:::](.ցucl6|^4]L P'##Æ CII bbbnh^IJ~'huuuسg]FGG#''3f@^9:`帟(Jq!`0HիƏ)S ))&^򚙙 1|GhkkÕW^)-]D9w{ FE3憷=7)GzN„Ƅ3/,E3FF†/V t;T1 v;~ z &-VRR6C23RcFAD88eeeX,ۋ411 Byy9a2<\i\&)2qB:u*,X&TRaXl^~ep`ʔ).i8ؾ}W\ zf3f իW߀=[,W^y8?ƍٳg<233qW_ESSp!=R>|&_|''r pRh;alGՆᅬ݅EO<QZG;:  !V ÁZddd Ϟ= 㐞.y QP^^ÁgϺxiRRiHBBztL0yyy8)Nٳ cccqM7_Wm*6V0`9 0@x %H1{l{8GkP$vd"Kl$}{]Uyk`#W^.MMMqC ;;iiilD~~dp{뭷_^󒔔ԡ%'2-%qqq08{TvׯZz9t~JJ }Q6mٳg/_ -- YYY:t(.!JP=|3,89=6؀:{m|H2[fs@#86u7W>Z5шx*A@łJl{7fL1`R6Tp9  86lDeIyy|:EԩS.i8ϗ&iW\q.JdggK5N8u ߎ/vYJޓvHv!+|c YYY5Jr:v$)Sx)@dffJߝ={VUr6A0p1l)j>&.(@˧R͆7eĉ^ϗ''N=TVTTwށhD{{;oߎo=kw7D喝81sL̘1%/& G~*y˖-4h8=E߾}_Ν;*Qmm->s2m4L0-$Oow5to3-h#  N /c":;RMw2σ. FpDZҧO̟?߯6C)LHA,%%%y~vv6nfE#h"YǡgϞ]Xr%jkka6NiӦ!>>^h4Ø9sfx ?XNI&GQqF|?bPѺo(Sl3H )8&y7!jE`95Q8ƨ['snq %g2o؈?Gl}D 6hz6m]L̺p2pA8% yl6?~s{t1cp!֢IZRQQs\\\bQf ۥ{[[mO KV$ON\$n-*Nݷ%6lG'&  ꫯ݅t:-[3JOGiB{^n6yqh̝;׫)Ι3gqʐVfJK;ƍCVVȑ#;Q2eJA"++ YYYhiiAII qq)-Xz5Ν+ŽlaPog QNz=.]t  ؑ‹(߼mFh!* ( ftnl̜q:s*uub,y?<oނD16bmvl7/   3>J@[[ЧOTUUIAƏ8Q:t(:$5p8PZZ*#7C8|7AOe$vB#'$$@RyΝ;˽6|w`6vfؙI r8w^رC:^t)w#.QF,E&L3g}. Wcɑ 0 ~et{BBrrr&v=2l'ֲ͈X8<]h*cP|fd>s.GZc+_~A0}-%lV w`2;czDi3Ï0ɧЯ*cPnj:=>8J  }M=d~#ɠm8"n TNrY>Z J\uyՋdԩSX~t|M7Mhw'r-++K0o4F)q8|Xym (NyY+P[ZZ~ӟ7\.w̙o+Z x{j$>Ǘ(ӽ͈$% T<4S!Ɂvdfz YC@͆Eضd1͚a8Į.]ҏ綱  !GAr>|O7ѣG& 555h #D@nLN,p<={RZ*9ej>k?oϟ?5ΝOLL JjѬY0uԈOuu5֮]+$/!ׯ:w_:# HHHpѹ5.w>rӧQ\\ R!C@VK;q˖t k׮fp_ضU +5}Ө;`qo/Ч݌xl*xhvD툷Pg8y0&߹i+~hMQq  0ѫt +8K.KLL^G{{4ї/e 8$''QEUO Je@P<'>>཮em-x'$$?--MJh4lI^te555wߕfƌHe;vSQQ'NHǣF/qK\{*V$ݻuVVVXL^郡CJ۶m 8sYZRp]ʒ|g1b!-rIgg.";`n*Qضd 4!:G: zżowM cyRC-YӇk`9  |*NǍn7bi{ 8ei&;vLqp8k.lڴ _~%>C4 8aӦM˿\͆/ep?F#obX`e<\Áo7oTr{y2pA|ҳM`8:Ç'_5~E#XG!;ؼyd<6ln喠b-绫䓟 6믿vيXnc(..yAǍp7=CR\9uuuذa1--M 1#MB;;wx0زeOZX8üyrk'NxrlŶmۤ&MrhwoF. Q-_b%S &=tPr-;kl OgQ6a˼9(۸[ېގ((T8l( f1b@|<0w`<+ǢN4tvѧ'|d PP\c  G PPے ,Xp1n8p &ZVzK4///hDKK aĉȀFAss3=&T*- ܻw8Yhnn`P:OL=(Zx)>>vMMM8xܗ̙3gΠ x饗0yd#** (++4k,IL3ƐBI.6l@AAF //}ꫯFFFFXU;v //e#1.r_SWWuظոꪫE H^cq,\:ZZZPWW^z SLAzz:Aٳg~)bBBΝ5/k׮"55s~ ؾ};?'W^ 8xnwiO!##_K~b͚5hooG]]~mFB޽h%9|zjUɳH^z= CPuQL\>h3A`~|lmj10CVqqj ܹHI4綱<wjyg7#'Q{7RMf٭oP{0> yM % 2p TTTH J$''#--M"6**c111KoJJJ\ӧ,Yxһwo,_oرcҒJo[l`:1gop444wZZ?sC)bLL ᅠxbA^/_w}Ν1|\y+Hs뭷bӦMR\"+f J*귈7Be$|H=R^JKK~HIIwߍիWEPW^뮻3/O)/ڬ@wj1cT*>S8TVVs_)=ùs|.QoJ2x_|W > 7nn&RCwP/Xx1>)FQgbm\EVʁ3?D;ϣUVSg=LuέceΫμj J +yض 54!fA݆N\x  K8]eG_VN ^)pll,n`(--vpeaԩQȈ 8c>|XzK 8?\s ;vx5pMNCRRA!##CrQ4ЩQ7RSSÇ=T*L0ӧO#MrXl g{e9W^yK̀pӆR>6lJJJ.ϻo}Ń>ݻwc߾}KK1ydL6n#EMPJw; ȋZƘ1c0cƌxuUT,_8~Vرc--7 V'1x+pmEwF3fVfQT*d\6{DuT0&'cO zMN M * IDAT;z3<4…3}:*V}E j522~܎  c7 ljL&466b@ӡW^.A"e|` FvQQQݻ7L6͆h$&&z5tF=SN8G@Cv͆Fjz;A@ss3bbb:T5az=z5tpFQQQA#mO'b]j>buBp΀vϰal$ݶ:pAA9_i_ |/Td= 0~j5   . xX c8N@ u jZQQQFEARx  ШLɆ ADWp.|ZSşA6ʎv6G:FQc pQa?8 ΀v -FX,V085WPuUxc.J$]' t 3D٠:G1N{ѕC`8S) J7@͏ vq8)Y1袴EV σ H %* 5G H3Cbp+ M'an.Dtb 8c2hhnFDPxCs`aj@">.:7 {&$8 ! R"&Kqf?: t:*i!ZӄspN& & hjn`ܸpT .Lsޏc?.Oqc^xCي&44.D4(Vvl\  i~p+P}P/pR9h 3|0hhnAA49Ł 8eʓaw07 zeeկHN  K_`T㈋5AUg<#&G ߂ǥ*-[`lA}S3 8;p.i<݈6ь!8 V4!W"jbQBVUUAǃyMRZZ6INbѣGnut GӑdO}C<@Fcn:&M-5  =XTן\"\H6 8&AJo1|wx!FCZ^9>?ƍ ^GũS<ӧOGjj*@?< ~i}g!##DD`7PJ%PA#$ hFSc8<9)( R Ml 8EGWt0.1MhEBrW~ Lr㱷-c] =`h7B@(*ɓ'q7+/eO?A{_?qC+^+BB"R$z~{8X f1FhvA1Tp F瀆oB}QX .{n*0Lp0g, qq:;xq&؏R'σSa/ `l0bulzsT^۵k O b3p(cX#NnF\0[0G5m`\1DGq`h*&0ֽ;0v3LVV+(w TXm 4ѿ.zv pƸD:F#7t^O? g(0 AуS%)ITDECC80bmv$'&_[zAA53Hh$9u°a0`:t/^y<8&l:ԔӞ#AD*;+`˶bF<; ,xw~rP_ 2:i)6TeVw @;ܦt氫.|mDAR9Vm7Ns"'99Vɓӹٳ'>~<89='pAF-lHMաypa.R&z6^K@H!nB`䚥"4ܹhe&120Q䌔*8h2I#mt:8ܫ7^O?fhӦ 'p"~DEh-;v6G;؝m`uv]-[bM24Ndkaˆz8I>ؖ\}v]M|fƸ<[ ",L Ԡb:Nk&&&rp8%-|憄Ei$H 0VCu$|S8'H)bԡepwKkGpFߔ {@Ƚëϲr}x17h{ +иgisA"6 :׻D1c#B)s|/33Gɓ1j($$$ >xm͚5O=8W]v?}l6jX ,ի=W_}5y晰ĉx|r{]2d^yHJJ +\łk믿Ɨ_~?؀0a? )ܯo񆗟AЫW/,XDK_Ç=͟?O>$zbxʔ):u׵;aXfMWi&[+V+|Ə;ݻw+ܽ{׵=z`ڴi5kڶmdF6qj˖-XbE: vǪUn:l޼YV'h4bѸ[1qĈ Rk׮Ŗ-['%%aԨQQ!";_>dY >S]۷oWg;v,nv\vea # ?ptChgƪv!|ۍC_Wtnܸ1n2rW~[תtR,]eÉS Q59;)k]Tr^KTt5QSՉhh h+i!4tU4tPvm)kdɹĢI,Bb0r@gOHd?HDDb|B$"IgJDY+g <ǩƣN~-pg)~+(R+,3VPBoZPw"NPv^!e҉ lIE\bӦMa^{-Ν֏?Hw}7H .0CyҸ{n4h1Ƃ+W\qܹ[~|^P}!`&MW!Cx; 5ӟJ… h4 wРAllܸV|A*((e~GvfϞx_Q]]#d vddd}ÇӘ1cBh4 /@EUfl߾0Luܙv'qǼڳg]y{X,odR 19P^<8|={Genӂ `0%w-x tC^v;w۷Gj 뮻ݘ1cFQ.sܙfE] tXJ0zt-;vZ/R8']TlPRpd-)EH>3 сD`eDA6L1iHMr,5o'|/ Ƙ0DTJ{kֆ\C"!^=\eb 5kgZr 0a/_`ɒ%2d~駰s߾}:t(VXD:qƋ/ٳg!?ƍ 5j<,/Z_=N:ѻwox]]R9N7oƈ#_fCC~iw}X,ٵkƎcǎLٳ3f $uƒ%K0x)mŭjXV̜9?0_)lSNûlqHN>r >C{If曐յ@=9~wp8-VDE`5d0Lu"Dr@ !B$ZA #DQ0 -s@ rHQN(Du0\8X+l r8PTT]?'Ѐݻ꫆O>LwѸmX,س{7ݍڪjdddqW %%!oq/9}]H)kkk1glذAkbڴiQo޽{1hР鉴3%>PXyBNԡ|v(}<ѣ=z4n݊Ν; -//ǣ>F ln֭[q7z ﵥK"55 .T'Nɩ -MDG}}QH%xo'NTMCklHOՀ`#g rB`dQtDN$'!0'# 8! 8:j" ޸!mJ )Պݻw? l=vm߆Eo֡oNEEEXϿL^.~>|K>,Z0ѻaᖱa믿ѣGfR o߾O;`PwΜ9E1.Hp̙3~goO>Gy$||eee(**ƍ1l0{Ϟ=,XQXXe[%d0$Yyd/32ХK8p/L2ݻf\2w}7責`ɓ'2tO7@R~v@5ERd,1(c6-l]:t>~1o?c!o>w^ k7yp8Z0uDb6C'jO &+I<3縂gҡGЫ.!Ci4δK(oȞ73/' #(kD눨ʞB#))ْrcѼFGeӃH9ucȑtFҌB?r,ZTq,t|K”׍#kNɳnygJNhNF}Qs2 &OL_^~3f(ۥKqZJ5?@;Cɨ;STT;0@|GTO?U}۶mSnRuct >]0'ґBO<mܸ:Dǎ]vӧ=aTUULvؑrss;{ŁRyys_}j|?׽j@v/EQy>+gv3fPtإKl15k֨o+:ڬ!C(>3l0 !TrM7)K/Q^^y IDATy7ptCT6`FSZ![v#4nذ!4F+c,`PQQW*+%YUdOA${Jq'9i9>8nB),Ϳ ft"@0)"hH4h!gk[Xc$Z53FZ@Q|ݎH"}=} pxkƆlIk5srrPTX)gk0\a۬丶VD>p+`Hk+Z5?QB5zhtQoC An~ԩWZ5m-Ryg*WC'NDFF***)mٹdx_|:t(x ~׶oߎKϞ=f\r%M{dAһ>@Q.`ʕ)ċ/ wرc1yd|g~׾;\s5euҶ^u\>O|Qg0^ P4f( ?T)q.U%$$+~wp`ڵr-袋TuLhݻwex뭷Ÿa0sL*ܹs1zh7oެK/ŨQ=n8EǶmD-VErAF@A Q"'\ؑdCDOoG/;d*+khPg:Wd̵1bjcԸ+RLZ?).=Ø!C1M(ǁd,hIm(w㽄bllf zׯx;wٳC={6K^Xn⵱cbΜ9644`ƍ '.Պ/ ?~\u;)) _|Œ1/ف0`@2Pr+(O++rY#Fx|9uJ̚5 F€fRۂ6Vǂ@1bĈkǰX_CC#rF54Z, Jl6+]=y^rFᜟ/*QYpF4&qȩe@^ hK6" l`@~HtCqI8~6-m|v`.1@j4}56*m1@#hpݼ:׌6ue2Mш6.G D@Nf-ATJO8Pާ 6m¶m۰o>EǤ,3޽{+>e+T4p|8 ^X Ս@uo:U8!D "DIF4!C ׹ -EQ^t1] 4fqDc*~A`0bm ˼!l6j %%kօV:ؾ}{v"7LةH`%-eX.c=P%"TUU7/v|d33:kN%N:)>"[JSnn.f̘*~J#?<ܙգZo^kR5G>o^z饰u7BQi} #Z(2JJ|СC8tPe! t~!n`wyto3gĴip>}o5-j 'uyEӞIiTңPPd,͏XRXCr>4'-lX v(AS(L@EQȵF+ 9)<uF"4`LL9: B'ؑjG}Igk8 5:t숁W kyaHkm% ˖-Ν;!qQ޸lt:0McQ{g&oNQfGf~ȑ#1wܘ7֌ 9KmiKKKl)X,K9rdP?etffٳE/Ks뮻=\H:.jiohhP 'pt>8B)[I"ͨˊĸqe˖Kxcܹӧl6>yJcF$K*#-H۳@hLW*5OhQPd/RC4-l0EY>꫑\AI3k]AFvXE@$ c0d{"U6$%PU[CHn$ArHDY ?Dz8~:\a豸_h:lػgfu8}].{^!)5 ޝ BtTzopEiHLpitZ }p6/iرczСCѧO$%%y~{뭷#v>P_$#j=?,y橮Ѿ裏Ff{ׄgֲKo;UUU7n\P⋽|2j4a|W86 eViG$yhvK *ܹ9x v̛7{ŪUTh#HtCє_KEIW>̦$h#'8@o{@2HtqL@0(I6h): 0v/a$ke5HMҢ(lж\8"2r8QqߵGLvvGAAw꫇/ސiЪa2,_׳ m;ǝwL%}c維Z3k1`@$&%)G,  ˍ^Ae:JqJѽ{wk`)DށR2P*..V]F4AV^K;5HaA y-62)))ɝ,iJ',l^Z+TUUHzUIV >}:Nc˖-ؼyqO)o/2s5`FՠL7Զn p.M@> |ҩ:ٕd.P[/s87pD0g0R $&8Qch!0Vp"AG@p`JM'`vR!ADގ:M)A۴]u68 Q{ѾS'y"nfI@yf>0 :8u%En".ͩI 00tp\y80Z^"yN`$ڔw-~-$MhfYu+ѣGcŞjxkHk0mVu}i 4(^Ç5Vci9u~{7L{Ǝ{K"@z/d> %Jc%Gȇ|+hPBx   A0gTWWشi/^E^`x≀F?\ F}x֭[@~Ű {Ue_ cǎ~H\˰iW^Ӭyzȑu6R}ӧꌚ{^{ q8Zbݻ7hq꫊qʊ<.IVd2kży󐕕 &(yuu59%/D ن,@ΆC-sXhŊ!JHDa늚>FK(r:h[ݻwQqX겟l^k#kAZfBC ײc@'`d!Q(: h}C \1rBCvlЉ(/,2Lkc ft4 3{*qisbA Qx6RSSq7*^ǪUB k媞'LslRRRzMEN-ˉJȱX4\F/eP\\5k֨^+[T ۶mzW}ovqP,`q!rcڳg֮]_^ $-- ?U9Ν/8CPP I}uCI9]~iv#X}N}#իBՕh`~He˖=50p6JQ^3<`暅AeEwW97h]0;^B+lkf^@ъ@m!F}{ Fr#|ig`a*+}gj&X1T3f=gƎ;uVϴy%F$ԈjO: [|gȯmذA5իW*O Gd-Cl޼ɝN<ʹ뮻?ry#O[ff&:v_wu#G( R~.ZH1n)PeP_ dM6;V^:d\(w*'N-h/y~/n.Ż$!|uEG믿V wQƣm?#bY/+ަM"cr8ιm]FӨ.9$]=Zg9]%x/F!.-0%yY5C9lzLDCQ6uEtC!3( w.ƨqGo~Ci9K(eh$2IƸFl._Çٳyf塴yyyزe z!\{I# _:tz>\pBL4)h ŋӦMS M'|sE~~>NN?O{q4Y__?tVs7{3e,_Y믿⡇?j0X|~}~qcʔ)~qH4d孷\wui9p^{5ŝuڗX Egp9x`vmq+? i0-fJi|n}H%]o*ܹsUuEih4\|@p̙&9A͊lDΓTKtT a=r\s =@ ѱD.l|ϡx9ҝ7#H\ODetG" L/Stl~-(+,9J(N垡G<\G<Vzk;J J跂O ta' )'ʪNDbKɒ%x&c$)T I&)>7dv;u]5Hw}7=StR.]ӬYc#m۶ 9|EC* /zoCCCL\bÆ AӗI}%4/ҷl2?WUUky[SSCC)۷);;222>߱cG߿?F{SRRh׮]~qL>=h=,-_~yuQ(:;uTzC|P1ŋ}wޔNGG(ݛ233U10l:%\BFQ%Y1c 6mD;w5kЬYH)ψ##!T!t#'joi Tp>#D~*+|HLL }phdpM3`,E(ݍ}%:;@N-hgb߄zY0HNp:EEm9NY]@ -)3 HinX!2/)~V{<,8h4hZ q-DQtOt'-H;dNDdH6s Sr,0edggc޼y!y +d7jxꩧT744`ҥa}Ua Ǐ~aa! J 5_|Zմȷil  EgMW#%Ot|ZΟ?_uR8+<&"83z> h}[TTm ~ylݺO~O?~uEÏrP#V[ƺ|u]U EiT1 3cQ%]m"m?PA*+_^Kp8b]׼T0DkR h,70i) gz`^? o)FSiOEvڡHOrRub0wTOТ]f:L TKRd$$&B鐐1ɵJLe D2^vm3] Gc;w#Rt:|̀~9j s@m]wE91cFػ|t:)ځ>}TۖбQtϝ;_#3==_5.yҘ`n +W 8w[׮]7`~u|I2N="U~AUcJ귻LJ$+Z^w_|ڷo.^_d 7u@nIJ$]oڴi!iCCvoV>>ۺWNm?Ǐ+VDj2c,$rx'5s8vlh IDATQo!]SDxm:;&d"*٧KWPfLdSWxи!"8`J"$jJ돀X׌Hq -ň.!#>:A :A]MT \wS4A`$}ڦ}f: :˸DAO?]vEIkg?ƓO>x-77Wajj*>䓐MOOիqwG糑z=x ,XaF-[`ĈX9Y +z+~ᇰ;;vƍʕ+C`0`ٲe !!uV`:x-##+W̙36-[ Zׅ\cxB8ֲ"Oe]]vk YǦM:wuZ7=zR qITǣ"·ɓ']/z=/_*{|&tsޠTqy:~ Uﺘ. PguR8~o^":HO_ bᠥ_7 n<Zxtuϝ{Ptd.\AD%DdOB$"Bg|rpECF{/*r8kg#I=A׸уf͚E;w +UB)-~-;VuԩS=kw:_9uuupBٳ߉~Μ9CDD_|}nM5={ G}}}L}pRPP@ͣAmF+V RPʐ7 B5kД)Sd2\=}tںukXK=+뮻(++}vƍuvڴitQE1bسg=Ծ}{p.bzW(CҥKHi WWDQDzzzP] T~r8HMMENBÕP/s8N0Q|SGG3 (:uCQP+N03LR,~t,Erֽ O:g"cD(5= }u[ 53{L@Á4 ́(Ӡf ӑaDI vPY]^!ro+RS" @sT~p;_򺥾gKx/i|<ۢl9'z!>ۢ0Y,؍$ z@DYt] BΉ$]:Y 03t(Eߋ-Be8@ A+d ǸC? WDѳQ$]o8SY (ziCY]=NsVJql34Mm7tp^;|{@:A$_KyZ+{a:9|w>ūnhJiNEC7np8n ";Z ̒Lp@AN_QT<<с)Sĭg; LB)~ 9u(tu eswţHסwW}"1tbBξ\f;`o`j! T֙a# nŏch$R-BԜK|4 G #U, .I|`aj/ywPjԌwEA< lR,TG͑@Xp8-mm' EM/0%BDS't̂mt0^ N0+ y0!{R|HEs wa"KQS:==  ϶v ;D4X0ҡB?"cp8 LtH^Gَz2'`dPl/Jkcxơ60mij:@s/hyڔG_ . ⭫ 7n2jB$H3PbC*XdR-p|-q8NS 38,Ʌ Ғ 0BрGRr>Bp/^N1=۹2eN xdڄ&Bu(7a@bwoDBEev` &3D"jC FTWKhbj.= ];}o8p8i0jEآo9PAER纯Q {boO}iL\k82.H@"]sdJ:uuup 6@-RMi(+-I60ƐSj2`Bp8ᜋ!*XUlzV(9uDl0H˸{:nBqq4/Ep89iyñzopDyp89w#pf0qq&mp89hR_J9XpF | p84Qp8p8w p8p8p8p8np8p8p8p8np8p8p8p8np8p8i6p8N!v)xp8Kui6c,p8Pڏxg5m=XEc_0Zp8֔p8DG4 08oܸWxߒ)|9;p8'2xÉD2 WZr=/`|:u uuuN:]v͚2{ j򴵧8zo}^ÉU r&Naƌڦj*vm#Gbͭ&O[{9ri뷼<\pӟΫ<6Gf_}UȝG^L&)))\z9m<nǢEqFk>(.2N 8ػw/Μ99+Q&e,L4)I&[oEN=suGWλxi=|'x=۶mÇq<[JykN\(+ÁiӦ!;;O?yBs{?#99 Ht2}vGZ6>@*/sۧg}[aa!6mڄGZTY͗}}VV~|i b K,{/ V5558y$6m䧴7nğ'|gj-<!YVl߾iّ5=h$k jJYUKs=իѹsgl[sMT>MKR񖷦X>H}&&&b?~u\.Xe$%o;/D~]kx''d᫯Z"?ǫ]ھjSS F1`{ߚ4[>*Ryea͚5ٳoɚvvnǎ6UyKFH];M9u7rpۜSS$}c=UWU8j(aqEwNFI&Q@@(NWX Z~=m޼Yqu___ ɓ'jC{=JJJ⯿{jذ!/O#{ϖ<1wޡT^Q1(<<ܦ>\Yp[Je1a3f - VkRzzo4fzCgf)3bzWneW?i-{m>[27zhz 9gPRRBz4h;wpp/0~"K2o<ͣ`?7XB'O QdZWʕ+zjvk?iܸq4uTԩ1>Yr%5k̪#iqaZn[NdX,j׮M[GZOyyydܸq~s63f(>;wec5jԐY,6:t(Ç֫W/x v)>+WpM֭[mذAW=dee~jޅa9+))Q sȑ+͛7OS}yxxh OZ_ZHeeel[sN<;MIII_~ bǎӕ{8zpy[O?&~:7nmAnժp.ǂ D_ٍ֭7ٳgY5 k`@DlҤI)۷O?)zJKK٬Y4Aևz?~\s\bӓm۶MS;~UTTW3u1._:vh,;6ovtp8'OfŦ;8>3+m۷gW^e,] >\W<~~~6f:8*[M6Tkذ6Bf#O򤤏%5}tTaMY[/>Un?;:4/21tW+̶` X,.4i(۷o}Μ9vh,9үI[u~ ?D4k~mO(:8bj4 ]Bn޼IM4M`MӤ)/Ըqc*))?+..ÇݻEiܺLڽ{7EDDٓGjR ذam6ſ p@~lz.\@ѴrJѳ۷DϜ9CO>$ݾ}WV-z駟QeffR\\-[Lt$ݻW\qdeeS<==i̙*cϞ=_طouU5=uk.:WZZJX7xHAnݢҲedS׬YC=\N.]wD׫S4`tL?TNtƎK7nTR٭[7:u*=CYYYo>ZvljdHHܹSuJĉ䯹=7nL/у4h@tIZ|9?^θqhٴi=߿?iz6$$D&oeeefUWNٔ`UZ'3fPǎWSF(OJȤOk֬< G/ܹsEK8}䮕1?? `H?,\j%-qц EͩnݺУ[ "gyF/̤۷SttjX/_, O( .\jXgاDDԧO]hod^X,Ive˖QYY2ʜ^Jʜ~:M6ϓ:tz?J1113Gv u˗viu޽ԿY{|v#=epq]e$s 4P9Gd?{'{o[8~td 7d+KTEEE[4ֹsg4*Z$gֹs k3J,Qe0؅ X@@(A٬aeرf|R2 -MCR#Xm)Ni|뭷.{Ƴj*M^{M͛VED=k60lig̘W^yEdȎ9HNXbb9{,WlzR믢缽mcgϞe4:.4~xѳ322_~EY÷L f5ٕ%mڴ裏MJK/Fv횬Ny$4x,8rEyԓ~#P"b#F,OHjS۶mEqip#Q]eMeXL+ =Z%Ǖ5##33nZ`#3ҷm6C|[codqF5gP(s|uM7D-ZHW\FڏZd2/z@%Q/^}(:8l::vĂda:tH3f}W5UZZ*Nѕ:8}]y;uTѳÆ luٳ;v\}T޽{Eem5=R… 5qҥwg͚exK,3tN%"66Vl***diO*%|GJ:eM?|pMNJuӫKWJ_̙M6p 95kmh-5!ݻwkr)zү C؆r5=z?Oa$9]p,tKˇ)!ҍ ǏiO'۵k.3ʰwHW_U'=hO qi.ݻw #GֹsgӲ %|tX6mڰ|UNZ8`Q\G֜}i,[+ WQ\,~w5~:]tN8A7nӧc=FhŋW^a߾}VX!K/iJW5hڴi{5jɎQGu={pYG]矊]vDΝ+V[gXחy߈*//giիű{nC֚>|߀l1&Z"㯈.\1ei>|1bqتCk/9޴ݻwZxbK/DQQQO&2w59zL̙i suA8=io"󁁁5J^*o&ر(µZhk]YԆkjC1ֆ*A``f96lյ.Ν;Wq %0ZaalRYh-kes9ڻwYf)%D.]4=z)z vUe$j6 $"z4s0?\9O6Mo۶t钬lpfϞM>>>tlYfiN=,:ԩZ0oW* nb/X@C*3VOȌ4Gt) 4]wޝVu]gffRyyltffm۶(z:W_}UԾ}{C::ܹ6R˟bQ|DIJJѷo_z5۲eK5kߠX,ut8z)]qhB$Jq:tHYm4W:dqSΝ)--Rhh9B޽&e6[l79#ĉ4o<նڻe ի'\ףQ(t3P==mݻw׆IGƛUE24颖:wGtN3 @(ic;#}RׯƄz %v^ͧ&Z@(sD$9fЦ˕Aaah3fZk'M$l[t_F؏zzvH#T4iBO<)'ml: ʹ窤ڴiC׿hȐ!V;yL!#HHHF1:a!=9aȐ!+ԫW/Ql GZ_})6F֗KJJD_Ӕ!<1F}髯_m :$"uȅ5fN۷ogy}]۷/լYӡ4;|gzOC'x7F-;P:O7kkp~g&=SQhT޺uKeHz4[iaʽ̯͜BrChXlFu LkK]sVR3FF J,9wunĈN ֭[+9;Yc駟Rfͬfۏh5:8 `ߙV;q[ǂ hܹiS!Μ9#S7xC)M,((0:-Ո8.]$ߡCٳȰ~Ȑٳ57~f֗{QBBɓ')99233Ekw˗/ʕ+šEoΜ9#^ϗ#hĉn:^\\ő?=Իwo޽;ĜY8уwp0uߙeժU+"ˣ \q6#G*F`M(p5I.)))55RRR4F:Ȥ)O%AAAFe!=،Y``9+}W^5ݮpgϊT#iHe^Yfz6ۂƍرc~ VeQYḙ[R+kIqp|Զm[տGEEQLL {rH8pu_B 顇r Dx9|YV4\Gs:!!S\RRBW?ڗPB/<|deeg-iq׶.''GG=:VnwޕݫVEFFRӦMiҥ]v-[F˖-ѣGСC[nPG-nbۋrwPʨ_BԬY3ZdL#""(""Ty_\\LQQQ6ԞF9Ȥ)Op_KöM>~սH;jWUGRnj2\zl/_{zzҠA4՝ADb z饗zlTcUa V{ʰ;pP~ڜjՊbbbxغu+ĈY EJe7n!Pp |ڵ SGAAy/,,Tl$֛ҳJeO_r&L@ ʶΝ;)^ Z@{:.5ɏ0.[qJЈyyyђ%KhĉAWV|.--.\H .?ECᛍt@3LmLJv^^^ӄ tܹsX׮]wh)G\}Alff\~]]===e}jqq:aXD6b!ooot?gO]v{AkHLs&7o]w҅_ɓ()w1:zpd 87Zف*%={{֮]ߛ7o_u&P'_f S+5nZzhZV}i1 ;wРA(==A 6ڵkGM4իpMjҤ ){:///QiݬϑMuhg{1Zj}K;w;wʾ8ٳC?g3l>k28p@gZ>#Uʒ; ]RdЕ* ry`` 曢{}ͩR^ɢ+b ѵts+5jdhr7ߊXpüiӦk)-q;Dz_iIi\x5jԠN:ԩSiƍt95jhO7f͚^HM+K/97zxxh>*QF ر#/gϞTy\^^ 5Q(ݔQyWeZZU-G&fԭHv-}~eTR]HIOؿҗ#;=eӦMC4\ Zktg1wޡ?&NH(nKVOm1r*<넄JKK;vsgkz2ի:66Μ9cyZXuUtGݻwy>>ھ}h::WNFıcQ9H.J:',; l7|#xpСԿEg^:u_^x'6oF+C2(}-}3 _Ϣw{Y)5y֩SxJG62Y3cԣG]}Z&9}W{pԭ[0]BRA>qT?g(%ˆ2f/ʫTϤ#u򦦦Rzz::\Zlgel۶m6k׮nW|jբŋ׿+;wZn])6jUsrpɓ'eY՜AuJN5w,W_}矫>ߩS'j׮׺k9wiӆ,'2_ZZJ_|.ZF W ;u$g_#9SkDӄRqFrLGqqqTZZ*8:t@|X8lűg>%cBxƈ4o_?1Ҷ:͛KKKe囑ax8}Qo+M˪e4&&&t1FR ƘfyT~ئ}4{>Ĺ2vKG h޼y"M+ FZhΜ90жm4I:tݼk\y̚5K։Hot!ѽӧ[Wi*+X kժEEkQ;;vRSSmARR  ̙3E/^L׮]\'"zgyU5HOEiPCIk4O_UҎbڵsƭ9Gp_*ivF!hK`Zt_M/_Nݛ6miբE6pB[h!;w[&a< 7GVG>vlN?~^um^yr}Zh^˖-ee/U}[VO֣0C8_/ɓ6ˣW_}UW{,O63lʂ3gˮ+jI{'-6222U%[l R9V&'O96sωWXwT؏ldЕfJz8c &''|iͣ=[^^F-zߟ=zj?,>fڮ_ΈHT$/a|RC.]2oooQ͛WTT3Yxj\Ųߟegg[-Yfi޼9u8BBBXNN8n߾mz*\^^kٲqY-'N_z!{Wvz𗘘h󽲲2Eݷ1cڵ+;uU93gHw&L zvʕӸ|rѻ&LP}~閣Ϫɣ5uk߾(;tռ\rOQ._lӞ0Sj-N+>-..f=z0ĮP韜a)\PPLh9ݲe 6m{ٞ={ʀ,X Jǐ!C333yxx+#{zq.VTTq6 IDATK_BCCuβuug up0XTT,O:|}}eL:İ7o\vb ֽ{wѳ,99m\/zFlΜ9СCƍ]vİɓ''YQQM`<Ν; 6SN$va]5eWݺuUK/.\xbY\\ٓO>q$q{.x"[v-ڵyq'ӧOkc۶mV?, q>`f׮]cEEE,;;;v}vڱ\ T ***dΝ;7)%`suݻVuO>27{ٍ7Xaa!|2۴i =߳gOVRR*PF>9rDU'6Th.^޽۰6TM|}}￯(O *OQufwUuQ[G]F111ڿ?;{,;s ۷o{YU{%$$h+{>Z;?YviH(\ݺu ]vɞOIIq :9qDQ/]6VQ輲g*Kzl4-;v쐕 ~OU]5sí%%%2ի;QFV '۷oj`T֢E !88effjN… e^X^PxָqcSK/yyyo߾1~xٗ_~f|J_~uFFסTN>ǎ9b5߰aC8Rq:U, _@@;si+88C*zҟ+jC6T֭[5;vZٳg G^hE4~")VBn|x2-m3HeJ$ G셆 j*GdN'dޓW_9n߾]'2-ߺu,l,`a]9~:~pB>3eLPiP)TBr vZzJ`Nwsp0ؙ3gXXXrxe۷YΝi4)jƙfff!Ch6 ϟ߿/K~(KR7o̚7o~Zl:P VƧNZJeEx׬Y#s"uLG~I2kźtbN={VZӧOM'Rƍ}@_&?6m۶kw{E֭[Qڵu룵~vںˤ2ʢ3gЭ[ϏZjE͚5s;t 3.\LΦRC|{'\mgggSFFݼy,H\҅ z#*=thU۽ ֭[ڽ7oNtɡ;|AAAN=펦'T8d=}j56:|ԳAV5D[bl52|5{Ux+wj-KkTr(--3gRrr.((ߢ{'[e]s2^p TkX95[Μ%ٕFyk*F!3Vӝw2È~ɬ<;2֯CZ|T%3T+k`d;zg(..fX%%%oйs{קg}Vw}!ըjj_O?$ \{QJJ %&&ҥK(33aÆԡC֭5hT ڞMw=H` ` p׾ sl`p~NzMPdʚl8`&Z@5Њp}5قQ l Wv-6p{88=ppƘ!y(1Fm}:.1èWj%_4Eav (Uufwڨ{po¬K;80vnaw喨ҭ[(??WN@5k֬幠U@07ni//ɓi6ӧOLz…ԣG繽.Ο?OfϞ=l34~xѽSzÇkBK,:h*R;v,y;v,4[frJz7XQtt4EGGS~(""TիWaߪK[ll,ܹߴiSMd{ aTԓN:QRRݾ}ׯ_?ǏӖ-[DKh){p(97h4sL***RunHٻw/PRRj|!!!c)AbM6ݻwmwaaY+{+1F4m4QY㈍]?Զm[h6]p!}ע{hJKK+WٳgiΝ4c soߦ{NУG(++K5-1qرCtleݢ>}ؕk׮y~Eeee)sh9O7ɓ')%%E5OO<ѣGiѢEdXҥKiǎ4vX $jݺ5 8"##iڵ0hשSeq - ٳG05#''-ZPǎU,dҥ}v>͚5b ]yѣ 1==] fp+*f3foMժ'g+믢k̄0@^8CDGGSiij?.5jU^]5\m۶)>[F ~ Ǻu먢j]3DD~Gp+8 7nڵKa,o_zn޼[ADtU}9rDt=`YUСCE'OTK70abLl2z!***O?~auQQ#>>t !vAO 8())8Z`5ZjETvmZ?.Q믿f3$&&͛7_>w kaG!ooo&Sg=3)6mJǏeOܹ#[ըVз~K[itE*))qx///5j}%:}{֭[QE36os8 ӪDqq<+kZѫ0'.\Jsp\r @ ]vMj۶-kݺ J}8***hÆ {BgbᗫիWxnܸA 9ʕ+j5|~۵k;\JuZZ%''Hhxx8R);wPXX>>4e=ΡaXDp[*駟RZZݱcGJII/BCC) W.{\餓ݻwHtDj۶mSNw4iBÆ !tx{{SϞ=m9== Zlg'*"lё#G&OLuԑm Nwp7|#|rj߾wmbX,gc&t ""ڴiر#G߲e ݹsv9|pQu ѷ~+)˳5V`jѢ?==u"wH~\ ;8ڵ+˴, Wtȑ#ty)(T|?$$II 8p_NG% 8~,=zTh:A<<#3=F)J*Τ ":vL'%%k&{EEtOH)))aaaV 󑕕E˖-&ܣCƍ򜒒X>{III4k,lXdl߾6mTgSqݻw'oooѽYfɖqԯ_?Ζ;UѶm[=3'VУGY_{5r<̳CU۔)SOuV>}:K1aa`4|ѽ͛ӬY[nCFׯbQ'%%Q׮]mQQQ6_t)Liy~ǩnݺTXXH?ҁTҚg#F/"L]tQ}/66~iѽܹ34KQ2"={6Q||<CM0nJEEE+Wh[,zgd!ChJshh^xx8yyyQ⭷ޢ={3_/TTT;yEEEɖHO4F>}dKLر#qGjٓח6l@֜Ӛ5k<<<%܀{ݺuر#lْwС @ǏJ-[؝gaN%EE'i2i$p{zEDx"]pÃ7nLm۶zUɂf͚ԨQ#j׮WEEu҅NS^ǎ)11<==Q)5P#un{.͞=.^H3/ZjRޮ6n(,,$*b-[ywQP$.Թ… q+* TcA#GSvv6iӆ~i:u*у`Q7GiIOyy9U^m*S E` p{y9IDAT88=pp큃np{88=pp큃np{88=pp큃np{i2yIENDB`ntfy-2.11.0/docs/static/img/priority-notification.png000066400000000000000000010340501462047176100226340ustar00rootroot00000000000000PNG  IHDR8w˂bKGD pHYs  tIME 1KO= IDATxksɮ-"%˲v~=wf>=q'&νpۖ%0ʬ"e%Ū| ThZ&_ 0mvmo@oUU޻GD *^01scZ g9fs?a\wHn=)r'>)ɯmJDqu[V֓!6HX̿v +ވܯwM՜ZmOWzb/#]>LRb}qw g=Y~߯ 4[ȾX,n MяN]ډ{*o7^%"U;^p[kC xJ8j*~sM}1͟1@Pbp{^^CfOΎ_OsW3JuVt9>^{|p9ޥXṸ%f{=LSf/FhvKXan.l9Umf=W֙d0\尕gOci:wﭳkɏ_9bёbK#߷Wnf.\ŗpsi7[8/xt0[wӿ8 5|FY~s'ѹǞ9qcٻQZ Y+5ǠAڿsk]kug^[zmT3cy3쫖34u}j'Pc<c{c/+vO})v~ }giA2Mc3H#riF (!y6"w9-/GyE'悑3}2}b pחe< V$9TfnyY[-eXcg|a63}z  b-XN$H{fsBEx(zpc/|F[ҕY`Ѿw̰AWܵi><J X;Z _/~"E2\vߑ>od1;mw?ϣ$3㱰Wso~iړ%2zvJyNAdKYQ 0|  Ȗ2Qɍ^`ДvLv.g(T],|n QUoTY̿t~'K(VFyk,yqھ-Kk2ֺ7|o&{긖9~^Cf,M4ۺ'GW2G\?5`;g]m,Ol43 $g:w鉔5Lڸ* j ߵˮIp<~TkגyB91뙇sx[|~so[p[n5u7摣 gQBCB' KxCF)q+.Ps/b\Bzic&i>0,w|nXS:hcHFv:(٣on,/vE=`i@eSv7pEA^3mYTe=5KQyR> sdf)g$U]|:y@JCVUN.7o2`(ZÜ^PpPJQ5>a n$g*.ʪ&{/wATU~E]mY%ӗۃKg< lpTm{FZqIVnMNX/nJ_S_Je쒗qq8ρT;?\ \})A=g~HN?zM >x"ƟKA#rI\ց ,TYV `.@icڟ){:-J}~ cy9{5^9)/~vN9y-U@e.jJ:IYѕAZ*qέCS]Nm{"A>Eh;}Kl%Y Hw[ Fo 9_ʡ՞8Nx&DDQZJE2H9g]N6h!\Z ҆b{fB3EWfaQ ZNhvje`c9a=5"#Rw*A`C{F 0C02̑PD+^Ze8CE`F!Lʀ׬!v+.$ڗfZ8ik\>#:NR^uPkiTHW3 >~3#0y2ױw80st/)$l&,p*#TάTE)x[|GRoiL^ ={|Vґ"Rῖܖ;a^9ִ`<=F<`*~.jg$`o1˓#=]XB)O^c^^|KAu^>V`xޱš~ysRU5f l)Mwff+jϖNCA>]$K4ƹ{\_.84?Q2l2,֢RG.g]Aͯ5Dž5$e!'Z2.km# iW=4 79;8n k sv 6g ?E;T'@B<Ч b6_'lSi6bt{Mr`W0qkBKY^%$2ZR)*[[gu+ ~*[8z%Fbѓ<:0z8O*H4 /:X?UZJ/ [FN1k>@qtG1Tb^̤G 2c{G=,Lק &ox?݆Hwz)T;_^Wmn{O4+)ss9)lxQZdKgH lUS>zn7v`9M"Ȁqe%tڂV7|7;x]p_o<2ǀqKxuKp4@l$0 9odLV+9[t^jկp39Gg܇B,/ɈdSU[-\ח<_ϗ!1{R+wJ3O3O_]7umؚ~Iq@MD[`*b2[IxTScrP.TO-{W[p1*[.9+ȴ4}t5X(F 5+UmN_gHwej݁wd)3虺D[{O(;ERczn;>\?ӥ%Xn^'`\vτ-c0- {Fhr dVbvk>>Z3RpVZc9V.Sbʡzdu`V{,Xz' Z\UcrN_]1 u80E ]ّj2h tΠ5oD!8̒ 딩 4]5U0?bivܖU_1 e>47.k#Kd/2eyq(+GFpom-'U'@W+(8_TڅDM`0! zu*`J>tk:1]MkMBOt>n`8եZm5%%}ZM֬V*x.-U;cXF\SkӦBvueͩSXA9K4<@anm rcS[xl`kSҷm婢i84SQ2y`K풮\V8\N=y_et*4Ou}KMx1g9^VٽT S-o2WQeM@g\K RcQv-51egeV3gKz}.s~ L5֭Oښ(ɱ Ƴ[k;  1*bEJ4;A*URq lJ#V'˦n)lϔ1-Ϲ9Z%seRUCW]1 pzw%g@弖3RT'FǭCTf^tG1NA`2@ 쟏}P> \P?ӈRsύ3sϹzFtQHG"`K[P?Z[@N}6gR9m:`Q}r{X3T=TV[Á4-M S{i[!6cb~~s̘j?565ehv8b[D'LJf<(f{\r{2d -kXUmwd_"ǷX`yֽZP?8?- kc@2ݧikenZ^o;uhV<ŷ~0wLcMF :;++%cΙkYM]@Vjw#4;Dd]@Fj+s6KlOJ:ۿ$~꫕a)5)}RY$d ^ݡ~红1c/EO)ݚ :W{&X>wkZBͧf+Sar B9˜;W>V--]>v%hQr5Mu.Ӹ}^2eʶ5qR4; `eIW:`TwQQn3f {%&qFf y֭G}_" qni)@E#[|l1grN;r^Nss[iOR# T5v_h8/yi= {V9ingi tTv3V-qe{1Ey\zR+ٜ%}=22&;NĬ]wZ (@mYn̳Qz%*wevX IŸyN"r{<=Y {ݺ|ʹz _dΧzgGϥn_{]c$ EŸ#7D.YLlI85^^=j:bs_y֝biAB n׹HG ZWF|ߧevhe>zn/mmUYx|4g;*0"IY`SW`[5gxK_qjpu ts~8Z,G"HZ <Q 41 !V$4LOFRⓜl)tOLhZNq4OmeLؙRudy^2V PC.t!fa?cXO32gEZsjגٕ E1KG( _"bR4榴/XoT| b KL8'T(yju;e-h\O[+kF[ M4hwkdMR^ tȑ0TY) ɥց%mV'XN ptV\q4N.5mW:h=cvI.1{O=GN*Ydc4`HweaE݊jQ u.p'tFGn;-Gӳ% HB[ mԮJlO`?փf4$P:,0_yZm/r`{`xO,"2sǟ^*E<5jgöڥ%M 9|5L-ƕum|I\3U h_Op^ks9Y)<`K~)jVHSLj2@euU_I)/O;?]S&R۸~܏B2TpIckv*E\>AK/Giǚ#vhhW| M1ye/sQPSR>i s%פ z 93JKxTHȤcEm뇄uh 34R`\|݅na*ϴN;OXG\; )ϏK>Z ^PWGg}~B!(Q[G[ ] 0֏ޤzr\GxQ(=#P\cs#j5{esjջYc:^;WAsrpc[^ :|){.v۩NYQ)VDб)pVJQ5I<j:Q;iWH"97bwHhȺ(hdȀo8lF?v>1R&7Zu|ՙ' +5]S3fZlJ[}6kvE_5aGkNW֕Z%Ik)@9έ(5^apg@}e@.A=wO }Ikl[k̚ t>ǝ{l%3.]LZ'v1)m^{ԦsJR/ߔ)0u!y]u7{:kNYMh iQ^9筱]ދdZ1B+&5qW[`ؤs v:9\cw5{iJFQ~C{eҭJ#e(UeyNVV^c꒶e{kQml8'6TpiBAy>hXpJ٦w]=OA[;6.Z IDATg,#T{T,u&Ȝ׉fHt/VJo?kUrMhe){1]c!5Nڲwj8\~Rd9bX@U2Dϣ/p%xz&Z-JjDF{Ɖ떂EOcB.~:OehbK#C GyX +3iԔ=LCF8ϝZ9SCK3 Fϲ,kK ?t5Qt5<@}knb7''fYV G?p!qŹ~ܹoI`Ϣ뿼η6m9oVqїy ڑQ䧳HњJ+F$|I6",4]#)arytT4SvyXJ"u?Zyҳ޳2f֦k':]MX9h ~vM$Šg/J?NQDlFVUJrAric|YB41DQ~Z[RN[fJUa ~,ߦ\c9-ԟQTt&׳?s=Qv5a=-f #0i afȬwS9.3g wJl΋(-=Y7{[@a$j 64d5t{3;d'>,T Kˮ]ٯWϹ]t)s}vz"6tk,Z/sǴKR@njt\W Vj_xqT:cvkBvߚA9#ր : t(P雜 3Gccc>gp|qJk+ƺ }3۪?ݽoֳP"㏍`G (F,hUa)ֶQB~ \_?sXk[Ҫ헹\cugKhKPEJP>[tv~:Ŷ0x'|㮝I󟿹u'5[J4>5 XJL{84?'o]Rwl:48.@bЎ]B0+ԲF!jy ve92]@#N;HxmnyWgtd$e~"SVM֘Y<復_}:/EznaXs-Qs!P0&eא3^EFF(Hh-@oO8Q?{ܵSKiik]ӄ`dax/Kνd6`p9Edu[A|8PtdBǤ,ʇ } /i136p#nFˠU $G\'.ۭ姢KI6YPSMڨ1 {~,n:áMmQF .gcC IC!,+{~2-:;Yk}ϓYx6 6c-CcnXw;ڜʔ12JxJ5n)U[3`o60n>]tcqβI\pN:ѹ@\Z>m ͘+!Uz+?̔]-`w,1 R?+|’lI>%4uXη1K%""QQ+Kbz2TKwgÎiK,n3qCM} 6lD9:h/X lIxm'9g ӮuY8]S anq_8m sL*߆y `j1smj!g ex܁ooaƚVǎ̚.h{ṷ^{Mgl_KܝĢ S\27*LT]z-c gQ`\>cfeV:5=P^5is`cQS|kwSȻ: 3"ў+Yѯؑ_T9\{#2])hf}C]s=3|>oҽ^9ne-k~Q63԰{]˝nt@NT͟L.k'qfW)9b0{2hX 5֌v_VF[  |:g!1$ܿg"n8)`1Ri&6%ZAurjMoldƜr xPeW1|s^Rz.k^Q뷘sdD:wDʸӞtgS>k/h\BBO2}NB[R6}6+c<{m aH]o<ׇ/);HdƫXH.6qIIU?]F|1%5FE젦CԠȹqMƊ^N|u2D.'JfbtK7~Xg4xS}Y~Bi+j]/kZ-w ]=I9f-g-3ԊVm7Z:q` Mnb[YWlywOLw?R5Z˜ m\yV?RW@kq9 Re(zIfcPdtm`o&dzVhKOc3ՖbgC$-뜽iQ5Yo9לc׊kEǁ"QUBC$mM-;-A}G,b(+`m|,=6kAr?Z6eJnV(.#(kO\ߜ1qTvp\Pgp|Ku8).m|gљ|5Pvxfc8CS\p+UifVq99ǢUUTdUEJ[]$CrH#@Qt(VMcK$tR܋G;Rd*=}3k~1Ub&L`bб2Jj9lI"EfjJ=sU!W'5 ׳p˛ӮTM^L5"$/ƐiWN컮UZ2JAoR JLwyFCh; 8QyД 2Js+Q˞׭:kKVT|Fg|tq߫H=/6[A pX>-[ "~^ K5g;V "\]t&(k]}wZZCZ4w{v$"gд캴"?;P A$PsSd-@}]e@ \=NAb)jɏbRÈ P70ҘOno+X)349 c?S1<`} ,QgV$<.wdj0w xUֺ,t'@{:J եsc5 agw6ә|+Єi _ڂqʹ*U.zj_);)vi aOѴ L_{q^+wuI#3WyT0XU}8u:SgA,lp`j<+uXw?s)uUX &x=yAk\VtaK}u:W2amǫzܹ -E %:0 myvoزUfD>N/;ύq{!%*`60QzB5>[W F|;Ķa]|RΑIuԶӻGZZx.nv˵*q;}! Ǭڼ | "{pz2q̎!1%TiYܵT$0O ֞-ro^CXkUuZ^sF]r=+>j6* \MJ 9{eYB)*Kp\;gBO5/Dԍ&4 ֑YύpZ^1- @A7NOH}Jc̗F*Zin&uH+3D&KNY}OuS)eOGgƽSeEC_Og%q /5m^џ4߭`_!@@ƣC;- z~U Gz1^Kı;t̀(bM:+ ~7\`>5=7&DKM.I0r̙4rђx*V*dN)$E@$h_;d;3;ifz:&*4 A/qQB\'}EF'jk).@w2}KVމy$3YI&&AQIiy)o|^*[B<)P0ؔ.+pް@}YBZ@}:gk$[pyHOKe4ߛw,ˀ..~j)_N?Ì(z8 4.%`/%*HD[Ja'ײKP?& g1gOzX\l;Zs_ ׁKߜ.gN]зFBM9T i&l-Ag0pE{.p(%- Em:teWsT̗̒XƵڭTuB(!3>:,'Z%VS}Jj%tXa[Sڽ}}YaZS>h-aQC`J}Ts%eF\g4,+~OKo h4Դ\R>k{d,N2,-08v3>O5Iݖ8yV(bB}ڲI֫=&-DDd+ qa/.\F*&O3zl o@ւx2PM(: d-i8(9Î,k",ԍkjO;Y4"Iyt);uNqY0L(VG5,OkI?Y j ah"hVsݴU3YШ'1/ *[q %y̞b2dwG=We(?̀:u)&8iH,qZK%BƯ pe,©NtJS;I*4HR7Fh{ n: > /u}@*Ωp6 d4VmP>Ja`d2:Sf-ߏ!0Cʿy4-OsAw6Qb&cʪrV?+0Kdv)$;'DZ-|Z88RE@е{ZZY"+y`".p: 2- ͙"4gԺXrL}ڶ?%J 6 %%/ND䴘>bU'OgE#%<0kJ>.9vF-4sNT7\H&A $a7u~ǦR~׹medA b*Vp2.h:il[R<rk[wK貳|m͉u՘>k'V 7ǣ[#ߵD/6 =W!oծaV+s1zke{C-hm #fnȔT )K ),RTSXDÎcwh)h6`I``tKL~8Y:{]ح;]'%E<&%,)!/}d?dO8UT&UVCLnDb꺒b֕yDq4Dœw9ҵ #B=}ɾTqXV'RLtYletw@( 0N6Lj?frSi ÝghdYb:_Zkr0"$ J/%*ֈ*y-+܈HrHjfV%ƽ׹CF攎ݍs]cw/9kt{ܒF˾&Zێ=5^լ)K*Yם 5[q%GsL-"1"=-" \QEyD*JZz=:f@er[Fi/ʙP_m2rdPІ5gʐW4JkveCɀ9[V$EqY.Jn K7׻iܔ=1zc j5d,NM?C(v!7JI_+|'Fh~0硽~xr6~><2 P'OɆ\[xX ̑O͓]IAҞEǨZSZn؜E%bIU<7̷)N!y0/:EkƦWm [G2k"vs'6 &ٲ )WϏ54\)Cl\)#~DǛ#S$:>[1b@!_d A=xǙT?LT-l > 8):EE z&#GaU s_uO5ׂ0gDv͹ùi # 8>$`FލtgVa-:$u F`FU1g\.~ނ|S0N`w`q+S'鎧)c(b #kډ!v\283֒_Il @[.9Lp3SbyRٹZC~Άaʻz0jZLô+V@F?\A2EY4iHPv9J [mVc膏v& pP>r,ӹƜ P{K6񚆅Hjܹ(0f(A#"$wIލ(ʐ$jcn% (R ?QX|.!,_0יrL ĐTUw,uUJ6BC^ɶ8XjmE@@1 08%կoqߛ>LZ|IفTIultt癮wp 5#t {-Et(u[Ԯ-'edꏧc}Yd=o!† FM4᛭gAM zU\:_R_|g(%*Saq\y8O8* MҐƀLMTf4 fBQJdhYMm3V̴5bNJ6P~g 1G؝)ѬMhY-G;V:jwXN"f׾8>F\@P_V8N[df%MJAsy1vQ5i]12sCch+;|n]M/.ȎZD>)[9KvA#0F %*P*\6+ W,ARv" sXsN6.7ƶj);VhMg*@^9DRp4fGa0Taml$8ib^pb K@O%*mxn)r9Q{IKV萵:@j;/ɤ-_&se-y}i_u>ͮ9Mv0օt njFfSD[7_Ww #BNbb4a\eH}KahlV;SaR`\6J:!P7KU"+/NUnZp);a"( D9"'eP:ɴ23.JpYYxLgH{f.iL. &U]LM^ I>d3𬐠^Jԫsk~.;ݧi} H\HvhҶRF'dj$TxvQX  1 J5wKg` 0]Qe)<3zD|pJV81\*Ff;%"r3c`Ș:a"IRm& E7ָMv'<t"s[ZWgyA)AiV<)u fEe#/"y0$s-s{UmH g2$fq +hetaD82(60sFg.0SZƺ2Z1-c )1yPʩi@^$%2FJ${Ƹ^Si3 /Z`&wIl{'brǓپGdխyg6Y`DH󗛐a6oR̕[S1gvSwCeh}-b|O)?wN}v{hF\-XR hA9X@֥)e)F8x]қH1-CQ/I_ lC0 (R :Qr:.EFp8u¡Y @ދϩ f'B!);wLTz6A_!ڰZ=PGe4ZajGkBߧ * 4oUz|@p%+Lj ܓm&Q03#g;?٘B6( &eD3[$@Lɼ% $$ E33wu7ؿuP˲J{4f@L(F)pXwA41VU(Tl|4EgJZG D ϡiџ Z9WE TS^U7#=JlR˜"X%r aMΛVG #Y43Zj `o$ ]g~=ׂ` 12b( vB554GEW&Ɲ(/ ) %ƨXpHx0_sYKE>; Q:YsZ0X[\PN?T`&{iw WޢEYCX[Ƞ7JOsM   rJghpdX Ixr|8Z=&|p5~HI>8OwN5,` CƨIۇX"`92f_RqM;0 " s~0@<`|_0}4Bɪi]a[k`pgE*ғZgH0F %:eX]!GFVbg5.ɒGy Gj~S*f?3v?8˻"9F oH=+ЬG(,U/',Q; n-|}%4ʄ8]Ic^43$IE%OQ<˳٬HWʘLHx}O ؿzOsLjJslj^g[j#0`Abñ,>gJ(QcؘC0&t@2u:87w # 1 ڃҦ-Ab@_ ADW+]]4Tߵ@2\#wPyҘQ5Â{:_4-Kf*2Q^ JY )Ͳhi:BqB"]A~ 5ɞb^t C:9bWsH84 G\d5| _3Tg By^(@:i?`=*HDq}{|gQ:->y~nƤ-L/E A"+=vW?u&HB.+Cu$Ƥ^88#lX-F`[\߼Br} *Wo]G>'c eAa @ix$@k+hLN'A1Eg8a|-Eh!]tJACtןeawx#޿+v'?S@Z䠥e9.nLtH-XC!i:=zuOݭ]++!Λu;zO{:X Yyzwo?`7\u0'|3FcLzٚ,Wj8&lPf h9}(1ۊ='灈 ^esz 1 |$/H|Q);[)Z |K4>E 80*=p88&^*kW] 6"gsW bodz NIX eoPyHT Q7Hm@:΀4[|W+m Ϩr>H{iW%}.(ҿfŪK8웮Sl`Qt=^Vnݎr}u7oAWoUۿgw/xq|/DDA_by|+2^p+r %dY x@_|rn=5I4 X&ggcwq>>7zoJ0Jn^߼/.*}z0}(.u^l_ 9+^CG/.K _;S8<|ׯ.ϸ}l~o>`篛~eq\&-t׻\;\./2PA;{ |׏??@A2-}ZQ݁P)99v?a~ Wyxq{Gp}[~_>Ϙk3X|19~=spWE4oi5F Dѳ(X>qc"`l[i CiŎ؝_};%Q+08$J(DĎk%VTo;t7[50/ Z1-"YEƦQx^~J8#//` :<[ģxGL{_p #=hDpҢQ ׯaspGxz;ͽ׷x㟣@x'gI I$먣ϴt{gM r?9m]m]r Ѧ*5M/ ܧu\s2c _3 xA)#R3.!c^ۯjz뷠+?EÂòƌdp5H|g>8?R9:IKe*U\bktiui޽{r7rC|J}d~Z% }]>Iv ܬI'ALZWAmZ2NhCCl:E"YNu:~H<cePpίZxMv$~^fxp_>:'[9!azu?v?W˧_xNI¼ %q׻/t@7G|ðp!ϸoLTD#4sլ<]`PgØBjG!PWf #Owq]_< ~< 2XYaQB!H&„#SGĈyHU]bFv_ Zp܏ }K^s|%ML=<0; n3j[>3 Jx^ !^\K==>}w~F R7? ǨEcYVoF4iCq<>oؿɀ;Yq8/+%Ȳ;Jk 0.W#U7o?&;("t$"P,|7?^5IKE"K:$JwBWxß?|eV!51ijt]GCwNvA_TbFs8/$4HqoMv{N~Wo!#^AD㿢ȫL~DKc3ܾ'g}oOƨtpɻORxsVmN1YklJS 08UvwaK=蹶EnSeMwLz%U7nAhdz9DD7pR6G a=@+iI&lѾ+wwΝ8NW׷c}ݰI7Ma@lk3FpGp&~i\Z oo̕ѕFKP IQsә3HzV6P#tm8+kn W@S|qL%LsLyms;Jx>Ͼf__\&%OZHFd+xu?vv DRYt i(Ǐ9%>Htm~ÞvPܝ@_?q n7Wn pZk+ #L'(Ï88K8=~\ W~Ͽ;Pe*̙ c6NZXH׹(jIJ'2ͪ2w>ؕNӮSZ]C.AZ C :|O%Y]XdvLy`\HN}? 2ښb t[$ wм$D=<7(ӬЁɻhxC{4}~z3nAqu} q}mEz"noo@A2ǿ¯9co=@/d>#^4H_͛?n4ϞtaXuUԙghdUԼyE`f 60D&\!DџY&<;D@яnKk@jLSg$K YjfS;C'`Z~g E-,Ъ)[Ky9fv;o:3BسCM4^P kpW.Vw]U S(xY?B|_O)A:?Wi|zzpv֢&P @ ׃#U#)iT5>g NkF8 WopA:BƯ=Fw&*a`@!`I#~x->wp!2]ZM91e0!8ࣼ8ueLA Ư=·$vVhcCP9jlJҕ“Yen ߦ s!]viKg7?' D^I'!՞mݏ;Ps B8?72ݟh xprϝxǿ˿0@/ od|gkoǟo<~Bgrz0OJ~u;~;+Dbo͏NiX+W΢YibC԰ ]:X;'#jM%[&ni|&!7I~ cu 63h2G,kԇ]_ ue90{p[ C1v03z/X 8qm ͙֘p`È׷/F"2+ኙteP{'B炾PD`+~aqNKsZmdr6YcHLF)k`r) TqXSlqsv0\}}䙭+ÕT؊/Pﮱ>p]>-諅9ѾّgG0F/oA`Q)F&jT&Deh0 ðx5_v78|O+Fj |׷?#h|x>=wؽD5-ieĕ~$ \ٖ&K-@lo[|7KxSne%Iݏ .&Lci/7NtWo>_U30,M;㧿ǿ;%[iSIbZ$X/ P_b!O[7T}/?WN׍SLH ppc Lwz?o~JN 4s3bzRQrP(̃9a*hajI4?&7+~_;v]6&DF'듏8#)7-`wN]{bFl+ ms =nre7.)&☎_ێeg>8кM 7qL.o=Q2;~!=Jf_ \xC`Zs%,&?OC! 0ى]&\=`""W 'pH-\S3&Ij+Ե9sb6XGU _o'A y|_\}#)>_>1}3s{8 ~!J3fN J#`X$~A* Gʾ_({8PtgaCKJhK͵cH2پE+ F}z۬V-(cG $ahDܾsP5̼^ӠFFk~o,Q#/Jk;*lT~zq*3j`~bnt$!?Z=E*"0S)!f{ ÏPc4v X 6`t)OZ9ɥ,18(dm \v@=k4Mrj`t>fVXb'z*_^F4nh&w,' >`m RnjL> %МinT6$ zS<Znݾ=S$=ω5+nHf1U ĀYb9?96shy fg ZW2 'fv~_rD|ȀXf !>[7kx3WzU$աu^xݔ'Ibn1N T"; M|kwJ)JahKz tϮ'geEQ y9BS&m"{V M/bV+@Ak a_\ex!С;lnu>^p1]ov~ˊOņ:fOܥaA 6;>kض dpL rj◺/Ӕ^[_urnHi؞ImZd+4(h kr)ps#.׳qzPځik`XzecahE9Dqf00Vf,"[aqvQn-gpfY,秨&!,9F4e "ә.:?d m& ]}km2?ʵ󫘋",xik08m;@5D^aK33xoCpZ[ڧ6kxQh`if\28`20Z9_f Zώ11LpvviPO Ks%` lLelC֋k5Yi Ry7w'2` &Kq1qˋ3oỉF-lIQffdF mTyq5Fj-~{6IeLgY+(5h؝Xt]cob}k( k[#fZ1b{τL;ʇFJf3 ]$&: xP*0(CTS @7k6/7*=⛞ %m5&  :9?[꽲E .F&Pzma uC7]>BYpuc@Y˧ёΧ:&<*jԘL0x_VR p!ʗ_>0"³@aVADWyR[ Y.7/905e+Rj+"SaD[dnגlI[u('/[xxp sTxs_V!$UOсuN$,I0MSk}GR2bHybM/wH!K<^4islykY`BM1hk-ǮAPa;_?S` JZ?Mc9>ZdA-j ̏nO VzۥKnwA!4'/p;Ӥ|D,l*z +MOJL@0}k Ppz7"EJ >J RJX ^M8$q [3g{otcks7 SY7CiRW9<9^5ICW53!maC(kLIQ20.O0@`c0< hrs!E.". ,ƈ&Qh]7h6#xҢ7\ٸ+. K0y KN[8ra$LѹI9 ܡ-?KG&÷gzI$^Z!ܕ1{a>t <wMx>SxݩK^dc%0nbck<;lv -3h!&h=9zz='Y alnmxC2Vehm cvqA2H,"!F>EXL! t[ 8=z99?{F!F*&6b7)H?aOxyOzmge3]CT!mO ЭPz:c4v?SOw0EUecCk 6*l!~S𜵣BzCLM-B"Pd(%03>#ljTkXEJU#΍}/Uv`Pd԰հW)/iOqp"E<^ }PvVYJànTu54KmWf {DcWJxVNٲƝ^tǃA 곉A@’$|bSO@u'(˪"K _d 5]CLw"У 6vP{&\k`,Q{Zfr.;4ַw} )g'ola+>b~0ZE@C;,'v%#}֚6xdMۅ`wmmQ-/pz Z ^3GBQ੥}s3E.abbC?3:S(7a"EY? ~7lz)%"ҷP`KM$qx6J鐱,8"B_ТU1#R#!=#0 7RN'l!vz[F^S8Zb/p!1Y ۻվm^aR3wUvjTMS<]1}R4=:^/Tx* =Ŷ1Ls9^\8SoY.\(5<=T"+T< Ƞ]pzKeKO@̈ٴWSB=٬\ xǸw Px054O0gN"'48@xI2K^Ho`r#0 Jr Y爝(D+ۺ'OWd;4 l2G$L&7nMys :8gKƶ)Dp30 "oq>7oz=׶ihxq)zZ8kp>P@,=XkpC/NdWb%9g͹T2Irӆ[kaFAyv&Bz#AlOhX@R7<(StbLuـ>6t|i{J2t/amI7$^nܥwaGdq4}P]l%H/QyԗF=@mP5 i >}v|mo^ oY5S8='X_MCB1Vaȁ#w4@Mc0ɤN^ظA3i,h2ZҗHD7}~%k<*,iXrG\M}JeA!@3FʰP!#ga}MqixAtEd."ե IDAT̉Ҙ|S-Ul(a{"t,>`>ń'JjҡhOz${`/pz(he͆m8_@Hk9w*9 `WP!}wdN3Ӻ!m=Ih4HG(o&hl>FxɫQ٣o"8V&~r>=(h+c@Tޫc-XLa3R4T5Fޔ:@e ` 8甎ab@!%yY ~a_(lkRrF."0mv;hg"JЀ@7pޭO?7/"0GO:`/k9:{ 8w1 /3wof)E"9+A0$2,d_;q`9ڍ*rUugeX?]$lsKytLIEO9`P!IUyTLd.* l}"#5@-,Ϗ|l |p4(d>/ppm ?.=qLU,}u*N>}Pڕ5=Q@5'g^\ a=bEI9ܰxstWsҥ6!vfvB*I-t+]KG^^CHA0dzjAX9X3"r"5tTAۜBQpE] x E6 h@UU!֕gNm ϵu*UruKʤ۰( d p מ)O=HE9G:nY(od!S{r䯛1RPu ~NRJ\&b$H: S(/Y{&e C )\wD~"b뗆Y-mbA<| StHќ%$63sSBDX=+ܘYzGR .َnUݝ[R9 gsA6\ˌ#hqƋ*XGO'FY ClA;mB@Wqvf.edv^VdFm)%y} p?ɓb"Q΢l`?=9s BY57d`_.@3Ѷc(i6 &dE1m{=M6$;УuAdӳ@ x뛻8?jaͫ&6voMٵmVu FIRwO"eQXv5T=^>fS̎j\"Xd;%z)uhiF䞩k|6]bҁJ!wD`QUU/NBs<)&8{?yߛrf-[F הSvH`L EqיLNL :B{?|( 9 <[(3_3&s[<LeɗK@l{ŶX܉$]gP/Y\X,zЮ >^.El"1:}?te;ϝ@獕ͧ%c(s`(Z@6+}0 fP E#θ^{]QigZ'3lPL̕C癁 TM0YrqryL2Ω~B('!#;HB3 `8;pF#@CQF]7ͼȄǺʔ 2u%x$W粤]L}79{:8)rai͢C2").b ?´q"="CC]|R0VΕw5˦n*?:^<\lB9KA}ǻk:^_7`_FfYqcnvA&1u|U5Pl#g@ g^nYfyrɍ;;{LDݍ]s7rʒIkz"Ubqh . h#/$9\Aِ<_Gt]O|`8(;typ@ /Y(Ltqp R,VCk l]9wxuAxGAkXO1@M7К%QthsN!6vLbi!vkjԣ5 J*=fyteן]h-K_/ʦ)dAPLp̒Ke0QhN&gf U/sB*D^vP`A *^>c 0 @KX`9Tx7:& rNXf`Jfͽ}ܦbѨX1OVG@Wa|"dэB۶~m[/RkZHb>; tlba/NO802h]T\˜&S~4. r0n޾#bG7Y~`7dy;+;ex6zp(aCP )RQK>)`N1j PtgX'훛`6w #蠝Dcea6PcTO.Nq.O{]>wƭ*2G_̳%g|\ tgjE#*[xHdTSd峦,Lʦ |"w/.}|oH{(=DdU`/SHyLP.}$VDƟېTϐUg%9l;%200ɊIJѓB"(6<Q`K,.BWL.) PdK( :M>yC0 K3`^< ,-ry 3('b {.skq %i׶p.|<(rCpVilo=w^Y bZO.H:Rr$ yOhB gqw: ׮eҺkݞU0M??ˊE{o7G]طjNxY(ǂM-=63 /&Rz{3lI[wwCbq~ (0=1hɠ6+e(llыY5N:A`eZ+mfXd:24/  t\ 5ca2YHu5 r6nuDx:$sK皭z~jԒ,C!66 M.g\,JT͒b"{.S7bS.sXM$Porx;TR\pepRYcx?MA },D@eEtԴJLTwUDc%S5wb#+;iM; `lY9@P)*sIVaK/%\6h;O6z3vW1ZK 5smᇸuu&ON9_1@= b]gL0 NV lŹlܜ 16oh<LJ/P566w0r>ɋ/!bkwGϟ]-AM{+Oor ݼ TX8,Ɲ mgiߋMf1Yʔf )/bm&@6@G{gC7!=['WܼqK svOAq g=d9 1VNJUP}6o..x3拶S7HIxB,1,`֫*?X/k3%q1xxQk-Zk>#79N=ȂIlKoCl~ӵݯ;$ELKUc7@s~+mBoH˹36L(hs@ROpf[mVK4 5Uϼ`jSJAu6G%z:U Nm8Bl}nY\UȒfo=Xӭ'JlRyg8&m2sJ^Er. y"S5`} lE7" pqw9m`%@鐰hUAQ,UD 91s>!a*KME늀&9zf0m4ͦt,&/8"-M /WFkh c\/iMSp#qtlu_KILx9*@ lm'FXLh~6uŨPA\bM9/3׊lr(.gލ>(྄& ١&'d}NYNoN »Cx;X CyYEdlpԕ&k\I69Z܎? HgS :yDE'JXd-FXGx幒S Wr 5s k;8| XqnPgy6Wz`tm& /:ƎAMf4x "xؿ/Zct3/;/w疉=$$ҵ`k}0֠b;-t.3Gej((OCbKC$0@6ch?,VxjTHvtRɊbH_:פgPh9Z@ b Q0MPnO .O{PZLb4ݨW8s#"i[z c՘mɊ@up|- *2龮b9Z`{)00 &V !)fz<">,sT;.OZcMܙ-0lp50h 5L>9 Lo`,O5<|_;@ ;n}[w{6>cFCl>޷ 2qkrgcqJ$eVJ6Ұp׀211}X}Z2.)Tp@jEqfL%s!Ű \-u !f\ivmJXk1N*Bхt˕ N%e:9?XLr lv=ԨGS[.hEB!QN&^ "oif*P]TxQ|>NZJ%JR_=HJ7ϮTj؊i D^0Â͆oMi@.Rĉu5qB}l~5|)AA0eC>?sCMə wnQ̕e䋕ۘ?Ej*LH+KJr@Bna-}C>Sx SlTjaWr`C$+Jj@ ^F#a8Uhr2?c&y)#i"ߛ9?ݵlh09hd]mlnE``%C$:? ?Q>9#Q VХ7qwq~Zfx~~ݻܤKh?5M9;cS{%bT(uaJ1ͅ%3UX^9 L Ph <(%3 Ccs66vjYxzQ]c-_WwRc3DotHURT*KtLvO׷AU/cSAt۸(vy?-X'mВo^o7|_O+ "YecU$fv8 LJlPmfL욎sY i;DxJƴP`砀e3-;Wx1*_`e='ٴNFxݟbt?_A]HX>%yhlǯA-d eno˽>62cx-)|AksaC1 [7OBl ,ibMu.ޯ~ n$^1'clݼ 0M-a^ ITp|yeZ -)ֻ%^7o,&mE`V!%swd1`0J0xnO}1&,q)=d}co3/ ]&:DDM(Nk]̜'mkh%ظQ|*<,c:ܟa-z@P#]] wA:ö3 6 kkOT\>0t%"_ v9G=Pc4ـ v AeCeD!V`6د_v%+Rs$ct)0m^hrFNbd2"$!N Hɘ,KƊa:$ELP#j3=e&uܸ%6MK(܋"a/&&tX'#q4)$Xi[8<eD̍qoo`|\i~xo`qXїB }>F5raf GOv* ZGqݛU\ǨDbJصCH|}G5UOf(_'fi`5?Z?dt0,Khg *?Ka6>oqkI-le+TȽ],.P`&bf9w]c4 HB'z2q*{%Rzc ZU~cS*ض];`C@ak_ܤ!FP1U*(DL7 n\4b8MslmƇcb4.*b(#*0Řw_ōwc[[xc>}gϿw|6 y<ݯq (,=(M.9B w_<1zF076֊m[ho/%\X+`Q?`n\VO +VFa91ݾ/cιP; zySt،+h0Z #&@{1X)ƣ1}I|" #Gw$ X>&3  8CV5~ ~>)j40;[Tk۬֞gW]Lhk;6E8 0pDVxY2lR}שK28D$J~0?;Otl FONxfH2 ɠ RФ?mNjHM.DNc-qr[I@g@?4"C=Kf`.Y STD ,/8:|WBD8.ظٝ*GOp=LR98riq6&[:ӭ hȜ0tHLG%nCL)7A1?]ˆhm F C#l>}1Rcm6Ξ|H8sk{<99?ƨ`&|`H-&I"QfMTL⓯"5A ;tˤغO>@% |QMA½_I&*=e:̀>zj<;gfppfvb̺!i^ 7SGh0?;%;=S>ض½7CDkP^ք2&XG{.0Zu|f]ۂ-Tz8ߜG$@˜&<~ﱾw_gg򚼄?ˏ~ƭ4kAb592 }>g\HPp{'C#7s#xHIFP1isgř`"JᇿvVwk V<GO4#޻?;XcB`HFTF_%BB"ٵU~ "h!713=y;3gƭ{kW8;(0.:+{ko=?BypZFhw.ݾv ri4gn|N>& :eآfxa%3L[Uʥ8o6'E.Ԅt$/T>'Wcj/7I Qh2h{= %UZU\yMʧxE}ضA۶dgNHn1F]/2)z7Go}~]Jb )ր^ixmjh]]m< EA4黓_gބa1ȍFC!f$ Isx_@:,Z߯ҐV\RUtю(r@eYyDD!YMybIdm:aMuHU"BkmZM/:^9~3loMJ^#RW,3&Zض-qAthͅhN̺(gJYІ5Kdaͱ]v$>UJhCD|<e b FO9 E2[EBF-X!X&@2Wݬal"y9y PSWv[' &XO)t=jk7x?gL7oO_gAyb߇{{qZ%k٣ ݑ}@+ ~zhu}n,O `gN%]e)BAv2Ȉ8?{=xuq4>3Nahټ?rk9V[YC ??`utRla{JZ0O?½Gk4n pXLh[J:+ ܽҞNIRƪ(tߥ_:`_}tO} "ۯįou>H2Gb7K~(;9z̀Rؿ m,Ϗ0`NΏk#us Q5d ހ8HCṲ3kU֋l)8z-RC]w0ꌉZ[@8,9)j' Ow/^9@>1f F@4y|OIʴ\^H~1E]m5P$Y*@O|:T~ HQw3HwoÄH _$bd'화QC&lPyd%4b0֙{K`CUq_GnM&gmnb.k֓I\*JGHr䫈\ʸ`hhӹ] E&f! ȍS?ב$ S VG0v.*cT\D3n lׇ"urSZBauHľ{'Wn4lT7Jo%@ %-8wGQ߀R fuqi͗_,+}J!-!gU)wݮ K[k1q?/Cq$;~ ƙNj"4+ ;;70?>]. Zy 307 0~4 n=;BQ?/@S}9D@Ш ּbJPj~S|М{v齆]5r)yJu=BU,k>TgM,;+/ JQ"V-L|7?`l>zGEQ"}@[Bmnχp{_fVM%BUfwog9>۷[mm3}\3xGf2\qHUkU)xϵC; ):=AFL{&Ht DF_.]n_s]ƛ/fn!ԃ LU[*'y'x 8>ƥ+7X)yhcJ/Kt2 F*{h'c{.΍lmJSZVޝ1·=>o^0r-=k,Z>bReKݓQ>1g2UuBS8>7߾Uo 1+OAy"g"KgyϣQV[57~}i_M ]s$o;H'% _QJ8'fhٞ鏾u|w~|~ _<>-;߀;*ڰI{9|SEA=W_RǞy@$>2gr8ebߧAF[{[FjB+|vfÌٺ pP:UOg-tu2d ɜँ&m[MitHQ LO8[!gTXWNzPؕ`"5R29~6($r+ķ-oK >n{2 {vaac[ߺm ΂Y_'q7q|q{r ]Bی|(;osjfOqr0]|+/$=5DP#k6E$)1g&sn3,fƐmYeldhܟ6f6ژg|2'5B9NtyҚS8sqL9㟡AHwe2uZ]B%TU38 APAx_CO=^1^}e. .]zLg޼ׯc' @QJ3鷾iZ`xɧkZ/֍wܺ8"j&Di=%0aQTi]6ߊڢLTb#CA >'./λozEBkcH}Qwf3}\PE9:ŋqm (;\0.\w߽\qfZ{ S'G5ρI|.u?Du־6y']+r O< ^7`'f-݅˸SV|޸c&CmP=dl`, DĘԾ\5 deo8I(TEE__cQƇ?/rl-\LsKů_?>oqw/>?Pp\.} .h5ƺ3KK1'#?`+J^1@!3ZQh=B/8}{3OApcC5si"`Se2,3KUƽ}?.Z,+߃l6E뽷ﻤiXu zBXY9=S=lfO~6:0 ( 4iDᣱԀ9w譢͆s&`iDψ کs֊[ÏšP7Պ&b\X/Bܨ̄M h!FH dww{j,e w y-6x, qFY. z}te|rS;k#!ޠ(7X؍۟`0tJIg26BZJOEZJ1FC+h'=7凝OP_ES0[Qq߾C$2ƪupVTڠPMKHUkpU+tqf~KK ɍ^kThmp z#*nߺ{.٣g$\x'~۞P+^7ފC0㙧kwZ,7?7ï=wq~=sJ֧~"IZ%1G"(Sjg`*)D;+;_k ҍřݠܤQ`7nRX jxk:1/\j%6y]O]i}CW'`K:2L+(= ._ԩ}Hb:#=szAa`!X(lLV{[x?ݛm.hAX+5n $jܺ9}MnuvH`Mdi<0NfL֏~ت=^{xW+O9{teP$j:Y*>*_'?xC D^錙CAD1LX?A5EĔۤ^h'??au7#e /﷮1O+?i`r235%iJ@jCFzrr9=wz-wRC \zJķ7WW7"cHc)i.Vr ^o3͇k! 'j=I4%[kmX60@{$}aР)eD{NH.6ݻVa^!K!7E8456?s=0_-53A9…PRC`@Zv ƊeO{FaFi[7p:ݼ0C߽nI/,smܹsr,uno\Up ܺ}[~Jb~T)d IXFkQO̩ ztw! S1>RixɊ&W2.;T2iϓ5"no'+LGmАEЊ5N{&Hq֖ ŧ2m8qѮK]5VmelkIE3?ޗ%4xP14MNy%l3?tܗ;3Aغ+/}^;7olbA;ݼ~ ڗQTqt"~?ܽy7~> vӺdO6{?O?'zO~W".EL5gpz?t,tJlIzIT[{d .>[xgqá]FfԨuܗF`+"B!VTH[̯} 1zq|UD;\x1$"(<ʻ1J{/˥F6sqh"?xr3h[= cOTM)+eY oG[Gk{f+eN?:2ǨQ+36_ƕGģ@ߍ/y ,Hcԁu]k_Wa߇k7@8Ƨ3XxnPD:?R'"(8a]ŶeiK$@<=.k Hi):Z:GPQtq SR<'O<,?oRNuqj.<t{ AXP"ec]㠳8wc?0ypɒo߹W_~ wo^DZ t2yډ E>l0E+/;:}qǚxG߇޽ĚqNr?\ΚARJ$iL I1:}? ;Ov}j>!+ bn{%Q7V -:y{8BBOm'&9쓓:i'$ŏX5<48 k6 ]:D ew|t<К ֿca@G5۷n@嶹ol~#s&7-39Df|RպhG}LAIL&68'[jΆU /\jnܾ :+TϚ!dH[ rۯy|&?"]x0h`GG'{>1pW㑣4Bs8PF i}R'jl"i c`!+J??׌Yu تy ǷvRdeX 59z#,齒XTlKre=0M)Ӡ)W$OtͭGP7c<W8s!kTU۽ LUZ0uUHŸWƕpkcF0F WWhlyU\owD58n>D1l);|os݆. NSKЩ@OJHظI.P(3C/yz>zDr9k?T.mO8dg ji#[g_/rbj{eݏ-Jy]pfqx6)g!ดq*RkpA"dE6$,)~ mTUN?Yty]II}tU{>Q)7~n 뒼8\t*pwoS'|҆x 3 \)Cq5#ҋ&R+ %Q@Ӻx8QIĊg vh6ݢqϟT9E"9 sobD=4$#^H[*MŨDGE}ܜ.{4 g7ĝ[7QD&[yI<я;s͆_7.8>>[ FVJ>52Q3qKanrr7~?%#%PYPt1G=mqt/!8{- L]Jw~ucR󜐾k-/Z:rr wq|鑶.G 1v.Kp-vG.]r5G`:j!1Gln1;3zH0xcþb]!PIe&%qiŝ7<\x\.x3h;J#YF|tװMb?| _|&  U|ttϠwoe3Gg3i675vX>;?w[qt/-w& g/QәԆ lr|ƆUE8>ּn T\@oUvLN $nҌO]f6n_R6Lu3Osb7=\$m﫧%}-#H}m@غIуm Aٸ+|~̑({E)j^}}Eو)"Mx Mgn60YVNZ¼)Pv]M^O ߟkxe(pIC`Z~B/V9sި`m2hZтWî4s7ol ZlE&ֈNLS)2$bJpg\;x10V{Z+ tU5C#&̨јFk7 yLfdXH>V :{O4)R3>L'S6ַ=4~O13VTl'~ @;\y9_Uc;'w5,'{{{/xƇ?I|;[oK?_Gkoz5@Q\9^ iJd8opq9.\x'ACXP2m;EhS Nxnh kM.Pv;( Λ?W1/=ԧ …_ }Ivjp_E<•G>?{Df*jh=._<Dj$mU6d(>?s/|n8 qJͿlԸ3}ݓ] Do6xa3Gx7~=-eniծdOy:/0d^R[mQVVj@N0Hnc:}( 4X5v~QqF+qp#/]*QwehUBV'M-QlC'XשkLh?} "u BΫ/nrzΌ̓f9%/o<.巍=_rV~@@ 3vvn289ߙgu M!.PY t8 I7S|W=%w;o=8>Λ/wQ <̧GYw7) ?+/xl+*?|/'>}STqp(GV`R {3 ZzD.^-ۯkx_Ǖǟ6N vΝm#O)ƦL֟K))~s;Q6'uoc>K|V@qg/xp||Dё;8qȮ䝷g` :ڵJkZ@?e]-^S+#(*NnmuJ ޽S|W@R-@泆j kty.bɧw >jajO{ʛbߓ1u Z=PEЊA)~h3}Ex}MJU3c:j2q+6rh+WYW͞8ҙ*.].dg8knb c -b PuC%a8{=욤oe\~P)[]Z7+/%`F_gf[Ǟ ɡv }@G^]o4 + `>/!!/AW rX;ȷ"'f:cT%,UvMy{fHFPm90SQOl8":=_oLGB]cXps0*%VQ 5`9]'ZC}x"?z~?~ϟAEV#cj4:ː@lJŶf:^8{h76T^Tnٌ͋s0jΓy 㶥Fg|jt` 2M ޕiH,Q h &^Ia$L"#qr4Y>I^ jױbX <cF BP%93@̬gfAӉ267Y{+yeGus4 E{\?p첞ƌ`%vf)I+hD]d ʯtt(Խ6G=A&)Fl|fa|ŹL~Jbo+gGVľQ%ss$tY!|Zaބa0;FXQDvuoE|SFVXO[d` qʛ !$`ӣF=<7lj Mmv|>֭ 1=>7zMx" աfκVஸ*6'@t@R2f)`4oZ9 >q N]=^@6!%̌0i/L2<ڞJ/&.+ֆMs;Ӻ{hw'Mu}*6flX}x\s9$j FJNg7*F˕hL^HOu7t|›$ .'~IVgsaVdus4~fdF:Fbt\)<2Ԍs\@d(9X:Pl(ԮB3:t-Ʋ C Z=iL0--Ɂ [ؔ:Iug숱'{МAbަܙ"33ԲSmn4'ihΧ!xvf.:6bB,lOu, =$%~Oٱrpz mLMf}4&&bL_&~& VﭮaLnVׄg^`Xf|uD Sv1O`T sS*;AT3f8?S: l%PPwH&u>6ٙ=J{0mq{-%In"ϕv쉩;8Cқ F@TH~曒Zd2&7i߱u3&aH۪s.#k1$Lwc ^V}/PET "dT'luk>N-iϺ)*0zb]JwבJ`f$o*Lx/QiyB">TY(:%72OIY~/d@),xa~C@N {e^[S7gׂٽW yJjp/Oq6aHün1SOK y~s[;8<9c}= z`'becgb'ìyOqnl\(="Lv5vXk^ [ 0L;s9]`j2L3Ab4}8OiFcO)ѱzm:m'3foךbiYdun&Ӿ60 ؍k|٦/jD}=5+X h׉ƺ{:SaZ\$Ҙ.!`ʵo̴LMۂZ˨_F25.mT4Uk^M^+EגȪIG`HKiYƴN[squ@0P4( fPx+|XE L"1^0KUJ~gf `&0ڐlцYz`1溂^^Jv]k5 $@%M19~v5MgL,E:QCrVl <{tIߓ5sŌbѶ^ئC pٗhw`=2:(4f G>Wf <5㊁==-)gi6̨\g'O:'i!9q'K0f4|9Rw?J9X;n%Jn3=S:YRbMҡI^7rM}񩵵ף$y +&ҡ\3@'{O1[|?XANt|}Eh|__z^D<a:u8Gouʫ^o-c(9d\ԍY bf*{̔5 +nIQ^nX\>D?+!5fb2$V̳aӽnFl&J LtDٙ{îω`҃ž I))uhmlƗ3#1={`t RȣSS )opjs'-;">?X?}ڏ %K躔utWޣM 2R30 Zc 0&5QW59gQʌBd,uIo Z\Yj%Α^Ii}~gLE;< _5_J[H$H)_9e"@m_^\:T ,a5@o4aHy֏y)Ň6(vv]+@jJ 3[CeU_wθ^4^ƪaB25??x=e"lq.." EߊP9d 0:7ZeLEi?ϚKgA~zRɪ -$/%5R7 %1)RvblɽbB>(dI\UF묐SSC=~s>~j`@= A71K'UkUFl G&P,n;Fx w5s9F@CjG*ץ~#gV{H-&bLO_u:Vl?MO Of `H{悪 %ŘLg,:A6 :[& Xʔ`[G+H x=`M~6 n#at9q-/jfjTzm4sFf,~hZa44I$N[ڰA.avCx,ެ%׿ gid2cOAl%2M3:e$ lHP[ gvkB{0h~ MY=5 65x)#nI6> YM@[֦gxTJE{B l[[y3q4YSl=hMZ\8ҨتXХ,zd۔&G z%ǚFi@ ԡЖ!H 55kHRޟθcsB0dƳEh`˃jI.DkU \p cfpi߆IIqIS|&\jC؆+ xdڙv}p8|ȟ% |Je"޸]79c)>:L()ݯ;)KD[{ô]$cEY"QCzj,wOtS ژ7i&tXؑr0:ZQA 8բD}֩V ujmH:p2Bt^si{ j,q8@FdZjb3S"?l9O!$tŖOpĩqCOJ@(sDj(rϧv ,1X)F֘fR3G+yD d[GkRއ72kfۡfOFi-MUa`7dE/Ex<=MF{o-Dk(rxt {cLq=t=*^|kk okT,J eLp!x@;!Q`MC' -C=LTK0,4}݄nLt5u/b~)Yi] GUh$∢q7"[DcNµ~ތ2J1mPuDcc85ԨnD(hjKAmprn@}K `Q"YOLf *MjSYTcү"q4$JF`bԶd;b*E1Vmؾ^Omt/2zvu1zt0'*DiJ$l1DmUd~1{ '<@p]Ϸ 1͜7fT_S1A ^3"`I}(|",H~?T7oY;K|jZ,^+ +Zʗx j»Q4s%KLB~>ZcC8CӤ=l_JkRvp*s/)ϰfdl&A@s24wgJljt}}u+QSn ; tI\oDʻ1 "]U.%,0zZ\&QbPO{Ҧ>j`밪X "׻zR7LY6Sdaȑl>0?tk=I3 yM:[{鍺{?C2Sc<4/,N+CV7(x^l!P363$ (92I +f1%|+* ;&Q4cjfHTm  6Zfn8t(jq 5x8of_Hpcp |L u4t|Siψ;}gxy}JT)3>t~@>g0G jߑ$3[rPњ~|cjcAgIh1l㽖umi @4rF @OP1;tFQbjnh-'p_"ELJa#ZJ{эEgPËzRN8f-jJμqCa3lL .PH[Gî}GĭPGs:jH<(Մut 9 E_ jgӾ꒤I6 k-`Eu` M) R%,y;h1uM:%(fcE,FpsdoN64qX- H#ghЕVV`I@A&h9SB"=D$ޒ-2vŻrIB4Lh . *$+OX%OJ Sn&1鎳&dLϻLhf#{kFIgRK NN؛ Й/k]"ijdEI(1A^ƀ.$Ax 8LUhJ1޹]gV_ IDATߏG%0T&>;)l?ӼgƅOI[hvuoƨ0ZB3U9=ꦲ> lg ,)$@hkUDȿvYR91Im!+b{ mΔoi #FԢ$rd3J0 U ϧ:J8(3 2M(t1tTdr6]4vW='K8Mq"Өԅ6ٶOw<&ƺB$;f%){:RPkm2LoD:o\l pi=b%y-vzbl(1POp#6S Y l #=]qh(hsrCTԆ;;cɰ3ƺi|98JGF)H2v:g91ȋ3^ZB*R2Xyiչd4) kumUQq臬${27e5&f~f~HGv j51:~m`=)/dl|f H';eרLoM&z)n3✮ǴJ]a{zN&8$6(wϽo#P=Jb9/4j4βs^Xf,[$x0d̲_NJ&3)ٳW_(vz:#U}%pJmY yySϽ&H + C<ϋDg[[9^k XC,b/ 02d^18HhPY@CeNX9@EV]2У^ꇚq+H<%zi)j$MpHoXu49e ,T%> _k6P |I|(jQH(mRM5nD k-l3+I~$"] u:kOC)7wT[jiMΓ]Ow*_i|7\bH^ >Aj^H}*WR&;!5guRkMRcCK4|:5ZXtGzgr l6q2Hj.2a3˵sPgxF1Lfw0I>ܙYl4}ʬZkD4qkt%/(@|wkj9}C:eDg):pOj{`vͫQȀ`(9D3G=J<3 Sl쪯t6p;_˘>1=!(Vn{0yTLK,%b䙣_L77l;Qu3mZiĮ}56YFk_uS;nv[;Cbn gCUĊȩukp3SsD#yy7i_pu` *ĘH`M iՐ ;K,M/;MAdG}~v!dZ{F&q!ێlɠ"ήp-wglR&;l͢hE۽Z4K=-\@\%[S q}*$LAN 1lJң8$2j`iSPQv'B1Y!6&Y=m0mRJӀF vQHS2@S߻ui?OJorj;$ޔ/DE,ӏGKTp%pјf ={ܲkdE~ԤJb'F<it?fCTg4E&4kQǭxX66r(3kCQI ? Je`Rb-q=d{En~hDb!́Q` t6fQ獍%YWvsFsrg;F4cBS׽/C,(x(?ƽH)u' KmC>Fo'vE3 phTk~(1NR7fS/Pjx3%̜\xv7AN 33|rLmBtH8C_VqfmBZV.:vXKfҐ*%6=|Y}]0GD4U9Ar\jXaFQpWOd']F`?Xvuu ~*{2 ""T3+cc$.ЁELE D' _(LSHckd4ѡ[*n*]XnO'kiQJ)1!.( @ _gh=j0@ED1YěHlc]Ɍ "-(IbuiۗbR - $Q9c-j8+dJT'a 13XZDi3D]֐Nn3Y}@KNސ5bcM,[,f`Jo=3idw} H]K$[lOHS ;~,hu3 Lg0XpkL& /5Qϖ1taG$1")\7=,lyF=?{Nr"U(@}Al̏HӠ> uĩ5dM0fU-f@"9)Ko T5-wx?|@[ H͈OY)I "Yli##lunO`KթA$MHHJpyNK@LE$Rkb$tl{Qu4w4(MKpz׾:M/'CUBM;2Ԛt,K ԦoOgDM{:gY:{#3A0y7.{<̂+TI<H $ &.ln5;~((IyBi7.;@mHbZ3L)"d(;@sd3~#\Qx>)%mxk)2JoT(Ȏy띍,a~ Kg#a?:)̀ 4VY7MƉhv9 *X%|nzBU.]qhFD%Y\Je%;Uuaob1% g-qH:Iu=! n$,c󯱏8UsiHX%4@)ҿ \WMtz.jpo3S6@<|L9&܃ci͈g5ޠ7C<5JM28k.*gƠ ܅g!W*t))@b?گmJiLͽMi@ܹGz-kZtFahB02Hο:itc[C$a =-}"O9ۿ/엁),'&T(ˆQFS.5iƃy멷(\ׇ;mZ H%ӤIhtdܨ֨#&q)&(׈)Ųjj4&8RQ4@ϥ#U?QM֌KVO|>J)>jb*gƄ(ńyl `AgP?U%MVtkLb[.!*ptєduCtm0I&ilr]j VGVu|_Ix&Όhf"fxޒmQmxeV@070o0 165Ĝ'*w:=s2_^d7KqVg|v3sP 1"LOL=91\_6)Y9YE'pĨ|`ر=iP\ЈiRd)(gԈr*SDZgbz BQg3pi!{UEپ]wMY뙾 6ROjg:D;oSGZ"-e"ƖY<#ȒX`J"cB-e` ťbE)󠃒QT2(Krf TR2/Ҕ ZM:]349jEL%(ݨ&ϛuHozjP<"-+ѳ +R@&C*' ߗ2 2{L82H4gBtdbgb7xmP!mo׀N` 4tIR։'·ِ?^{5<9hU_;3bd~06Rd@=8t=1LC S'*$h5{P^18 jIjZ2וشDuBia;M5/H.;// Iyd= =qISw t]wB+b3gH_cSMCZcͪp_.X ˖_1u#e^w % 3vZ, +ƢTԐ2c螱1n~ꆚ^iMԽYԛ)(I]}!C=HN#h gD +/adL95Yaf6lg^,Y{4l̐Y_QScۼW1xM;}㞦ge d0 FmR;Wɷ 4&l5j e?f\J06fE!X`nwYirzpxu? ew$9ȓ6b+7wYX{їzػצ=82Ř4?7y%`Эx|3vS$z*a  5զ6<윺4:CÊr7AEEy9 xȚnUmڰ Hs9*V꿙B9* 7E4δh3sDOa Tä%CWD35 ~i2ҝצv;7vIEpE3b!0'"LMa.kxv\s/@35O{מ[:tӶc$s$$܂"Y$BH|@BB "Hq".R.KBĽ׬ì|wsNtjYjԨ1PmSbtUQ1ֵs\ |%2V6(z(3H* 0xaL3 {רip{+t@= ®W19ATbj5Jl&:-Y EݺOϤKGŮyz``edN!Vkm$Rp$DܹC;ûK[-Jd8=%qpkf\GTtDY /!6ցgwqP?g4Wt`qۋi]Ο;TH_; VĬaϘ5 *vۀT4JfG:LpgT c3fbq MF!8JN=7DGYYۈe$kdd8H*Ǩ(/W!eTQ5n:-x`:kơ&.JAceȟ ׯ@ZjC]5OʙDPu$$Dߌ w*$/Py701*7TvKY~IIO55Ε"`1 qܟ4рut:9 aZXxk>oŚ=w1p+XR)`L^t| }K' Yzf7g6lf6uAn^n 67$H.0 ΰkKL$+τn̾^t{BP$NtxΈZ' wB7Lv7O@"~uvq-c{N L4*K8`܎MYmfrJeq: T=K<-!:v!8T8i/rRg"FTCPs;V d4PW8Eay&=F/1zt?TTn<’nc̕m8%)Ld}NkVv&`CĺBT7H 1` c x*3ٽ@ '겠w`1\Y rbhyi0@~f:%܀@bY5;-9#IkHnWa?iԹ~FQəF}JZ @i|&4֘]FSUZ IDAT 0Gʮ >N)u  GM$x/>\{A]v, L+(13WGbLc O^ɰޛD/A# x31Fv`e؈L%>32UiTg*z NOh=V26|ޜX0nj^%TBg/ff:0|0 U 4C&FkG+' R!ʚS+Ocsr"6F ŀ!u*B@2JpUAyRʵ=4F>XUB$(I@sEphA& 1%ͽ@Ek5g_9u5)3Vu 73rvv`"w $K$#x +Yڸ{< \tXd lAA.4ӅΔ;D"y_.WfC38ol(g\Vګ^Ǧpo"L4jUm17x~!'9xdk=ih3HQp$N- iڀZӗ:`D;^s霟E֐؃|<^ eB*_.6ʨe8~3 iP*%XgY-PZIkĘ&v Ydpc d\IZX35T(nf̲m++ 5/4y~IWEȘ+'B>UC6nTlb)Vtb+G4分O${&9u=khP>0oJf U0 uIY ̡0Ѳ-4ۓEzpyv Xb޷.S)8UQ061!)awYpnz~>vzLxsp0`m6dJ) _ -G`u\Н4 5>[$=sX-j=xNSfc5C 7-%I"^+}N@c M1vRw=Ii,Sd<}fZ&O 2d- FWVZ[F XkUhI,q\Ɓ+S7$,m˞7H}ВE%55p5'ۡr ug,R؉K&XzAf?w1-0Acš1ph+kRYG9KnybjՑ;n#^Ձ X95}X:C/t#~ -.@T`*}jD}[Mׯߑ좩Z;#˲14pMh|-@7SQR5TOdG+ᖓvAR2V`LoH2ΥƳcSG {4W\.)F>WYxv>U#Q9]h8i$1g]bGϱe]}(zK 9?m___[y 5i.^۬Oni 0+s j.0% !3|Sn!ؘo.2\-b!%o-^Ykٴ*vgPPApP$ת{4:Ce9˱iw{+c%@0-&t" IeΥ []k H b(ӛbuIY)1ڂ0TdQTg]4E]õ=LTO_7۸B!1zs oԘ 蠟<Ǽ…'M=w+SܥØz"3lQ$͸!*`h1`'QeOݓb ׮1` s?lIǵGbK}> l)XlT-euLo؁* 0mywM|D\'GnQvv!MW͐TA$7fA=ld}4 #];q' vםýVkQxh{ձΪ,hMcm˨rZ-)Duu\{hc PTg X$|ߐw;V] )x->`D*oh \ʱoCܸp(6t1>~w*pFo,^q*l o'.q'?ܸ^o|k6]*2')#57@Nb.tŁPX?fE܄x:x δN, F j\89¸>Y@C.[=~2n+kz8HP2VP7_Us &$F'>&\+F`\=Cx S;pO9)vYeLoҀ1F8?"I!A܁˟b;u_ "t,bĢq]c:t,/k-7FOF ml$5d]"ۨe4 D?Df{Yl9-.Xh nGǻ$zyVH4nA #2=RH o 8ekJQ͛"] Ɨ8䐵 kº'Rl>X},?Æ;uoOkD^^+Ӏ?7{۰]]B,!Y:">!ME A=:whp$\xH$~C5,ZW=LϾݬ !>Ew#% CqsY}4e% JfpbdEgٌ+ypEZYi] )h3i ʳK-<_% >Kn$4Ẳƹ'5^, i̧d(st%l-u*}nrq;AHZFHUKݍWJ`.[K./JHQmiK_EP=fVFio@05Ɛ\LPVx`cTb..KSb~fΜ;M 5XݠQ44!AT bjN4'`9X4:p{XUBIrHVH*ʷĀ*Ff =^x*8KRZ">su#R{1 }q  u _.LaWX6z FA z&f#z}}NR\fg|XmI,Y+Qk<,z;2ue[-Ȼu235U\3CcE3'IŁs@PTEzYdr$մB!2s%๬kYݰNm<,pgsg,xq1N6Z:ĭ+sba|c1,Th(eт34qj n4p1l$5l)pv%pDz0O6+FT7tLYYy;!>ݑWV>],ˆJ9@ eBGN8s-y 5j냓a rֵ+ǎawϜi$* i kTg(yUuЯx}HˑY&'Ӫy:QY2-`J=׷e$[e3#[o˸x:o_^7{M1/dHdXSE<3mSziB??k]PQD euN3pXEHMqP*>48x9ȼzX'R~ĸ%*Ja. djQJ`n\ lj̮lEi.UN61(̾A[5"Ime9OrMP(0pS@יy#wxH&FMeR=Y,)F 䢺FOJ(12@ raH%x\, Ъ$cKЎDi D8G0DUE- T`1ɬq,n_'B$R=q#K|0:D1ҫc*`n +usWv K$!t[41c0zfc,8Y&04 cyTX#)6EuS;6 TG8# ^3&#pv ɹ.bc!T6GZN\3Xq$L\X뗧wl]fT}l5jxÇE`CYwQ0.̐g빻Px *CUD\ZNOs@pȀqF| -6jxY\Y>6Q|S[ jx{f^Em t뤊l~73f =hJ6 aǕ43cPĎI>?a"%_-iCLHTiK"Bi\@GnDM6bBguHкz!eNJP2SˑKYK@kv1\!2޿鲘K3!0 2/h9L%OwWIH%ε=89]'+Ldz3H'LbLX;4rWg`20iQbfzhŒ)Y [\ @uYl#"ZMaQgߏ T;jו19&Rp]:o/:Wa۸ w(EgiZKbgdc5V))iY=ᡬ  ,BkpqA}h3C@+bpC\nK("jb]bH` '3u&`x$, a2V:`bC;9]4u d4Yk"*kv B5J=}<4!(*k05<)u0Il0l.b9 cݗFaźxIR1FaYYWozs\:cDPz_{1Bv;9"XjYkҊz]\[iL^&jV][l¤vwdEko^hIkpVV㡞 Aޭ[WoY#,˷ymИqCmpyZx~}.ln(>w>j"0dh~}?d FDpd?\rN%Yb<^ZaPMr Y3ܨn$ElV~sRK}pM Ċ[V$R7"W r-Uhqzϒ뺩2$jK#B᪙{V@3\{nhhvݘYz2mX3A(\ Kn2Cezx`xg3as<>P Ul*O)X@4&PH6k<#; :Tyf·@^@a>{"˷uT?{S 3GU.tk`J\{9:Xxdsޡf\`@iP wڪk #fZ 2ŵ;.6$`,E0QDg <<  BWs_Qm>~Ξ%Βv9M&Vш"k\&jauПǻz-{ CJvRAw2Zx7[z.bLPDMF=~v|Br c-$iou&}lׅmBJ%T) F َk.^Kc-eY^"\Ó%bŚ3IrwǶR]wGrYGx&2H`i:p * Mi1P4 O^""L K_~N%ɨ@v/:$:>Z&|%4D5r:^ XW\3" >"XXhkQ-z_O-*c8F](uLRhe*w0 (@blJ਍I$i2x(34duQNC_mcm2 Zk9L'f1a{c!8HBt(}1 z .&t$\LF;ԩ4m rXy¬"uge<7-NWcf|9dUؾ#,w_C#(|I^:\ۓef O"0, bujh׵Į dv}9ӌ`JV*OH8s6 QiAy]*BSdK 7RGuHx\<+!`sZ}Z4²U IDAT"2!PZ|Sy&i%K oHNy!܁`qf>LH:*rgL3 QX+ rZ}lvEuN=ocƼLw%cM~aG&:-ح}f  F-)YIFm$T;pF蜹3w.ڽפicQFݐn3^cѸH=_fPB$ 45Yx75ސ[{wC#™EwTawvP/ᾌ Gj)A_i)[IHbgWì4笟?TJ3JceM˸=sq`+I6mCؑjg8;$k2TXqlsjaBX}S(ܸ!eϩn"W91.C](tY}` NvU̵؅dWхp8Avq.o4Jm)yu Gag۟o0:[ tvU vc}zc fǥ9SN^ȑz}sVY#^ـQLKv|~ں לk)Y¯Sg6.BiDvʚjX>Ǹ(N lnA}pk\~~Yݚr3:wTیp-1o'qtOc dZE)o[OaqT3M "VR?5?TX*܁uӄ%vt䂎BӁ],vH*B( i ?=Ddl;FkݍĨ#A5,Àg! T ohRه>>%>xH YA#3$Agbxk&9QS6`|,iE@P UX {@)TQB.#4+6vms@n^_^,|EV`Saw6/qctuȏT*fJ|qfPz ;YRx*SwsцECjGvE"!M*lhv#FV 6u4 ZhȒڒ}RZ!3dpg1>}R/vC@zN5eS.wĵwܵ..6Ǝa]sf$/Xa+m3jQzy4 :\sox2lbN>70\d(t3Ҙ6:jmId. =̯Qkal|q9!onc{۵#IM CpO}"@o`d`#o|{YlБvJc`͏ѡ7ظiZry XVq-X,v\DP{wzi@Xj6EV}ी360Q1^#D64(5%K"\16qu`0X tK=Xx RqM%ݮ5:ﯷr(  * @.ev!*>OtRR}P,߿;59B>e5f^" u0 0ͦ685ѢR/c"]K$ tXQt^N1;K3 X O Ґ׊X߻NYڱ?*J^1V}DCfOcb }gPa GW}SAȍ}fP8H Znr7>t.}.Rfv*6T`>z`9! 0h3wQgJmk)\-6`C_q{?6Ȕ$MB`>W0G?=is.a?afx(S1*Uf,[LBSL->Fbzs(Dejb m:bm{X;C\?Gi4,X EԎH䛎! &׬0J>X^U)ӇAbEޟU?oI;{$[h#@YK]#u^)U֞zyW I_//x]Ӌ$|a} ƟJfLs}uKIc^un PWV`^"<˾qn#I7S`k5p j4+ =H39=<1 _3]qKp]/GDc`:B7֠Ž'`Wr~[ӯ֣k}lu2.;y3g9ݿҢS~'qsUxx"{9QIgCژȯ4-xMc4Z.;oT&Ɍ_5{O\v!=FV󷠑N9֞g}yw=3򋛵\Z;x8R'bxrY"jGmw}=~*b>;Zbx7xaXI90_UĉfgZ`LE ѧm[,WY֡-[pi"/yW$­bܰa*Q誱.h8mnH86H]?i1gF6wx]{ dΩ0x)xN1XXŸYvXdjkńXYu޳Dw ><`g 8>Cl7]-l}ibx9?z{%'kT%%1MWnaS@Gt !Zֹ䖛 sXd#$D1 |S}m3a&9Q6RLk|uz6WNbs+ؑ˶ج9k\LCogJ{W6ׅS2-# wWEqQy3! /}lOWl#5(s;SHgM0Cmn?ʬSB`]-%aTfclc触 H2ZGd z>Pm𨰡nZhvќFtkg K8n>md2؂UߞF `p&AtW[p0.z/l&(`'" '^E@ܝٵljRA~VַRN.S9g}-Nm\BY#oXXb׫}b-9ejԝ/0z'Gngkݺʉ(gttyߏLc&n삲z6IHh5"' r1-0(+ϷoxY'PƬyQxF99dB{Pp$l[VjT7 f`L|tF9tAJdwj5 j'tx[wHghEjJcY=ަ Jl֙~@"a5o4d y0gh jw qb$$D0!ǂױLv51b%ջt"b8/81STժLWM~ӺBGq}%k9c\W_syC.a w20Um6}x @ҿq(~[I=pi /:S%g$kB=PϏ\6!kAˁSj%7:2&w95+`4x4r s{XQk#V,x+8'b^g+iyDHf8J dIo+"SLP0cIHR}#[Q{rG37mcډ粳8z''2L,B~u6`/onb 5Jklhp6>qsяq·*> rY@i\@WP:Uػp'̎w |÷ c7 ?*/ޒQзx|s!AJ4߾nJwv5#^irqy>sN!3m8@+ctdg$^ FW@Vw~K&z@PN6 =x';eq+FT):\^^߅a]2ny}&5Ut3k uk*4iNL]m뜁0eQ/]"#^S2{x)ZZOX } rkFp֫XI*l;ƀ:k4 TK"&V'$t(!g1 3l#ZV,a*!4BV'Ҙ91\wnu'P&Oap SC%E|,f#1x<P5a@+&&b U^,- r;LgՄl3Kv58;K|z ÛTW1/ͼap;=-Tw]D5W$ ef`uʌ""q0*w;D:Q{=)ߔ xfz CXPw WHb@/b`i c(@7YQ'nTGB+fU}w\-β fϦϹ/D _qʄs9 כyq8~Gtn9WƟKtFH`ߓ=r S.iJF&}YY:O=᫬͞Һ@5W_G꼢 YR֘,,Ѭl]a<ђ<1)X@c[( $Yc; ({eՠ+8țp YJϢuo[3CsD 1X׵C5L]3Depœa >ws6JéLkQ>2ikQ剒̀%$}3Sic\Y&jycP1@jnb ?էf7sQ^qATkh_Y{WߙW?~Us>pћbeܻﱤl&'5*'g w΋YNpD.HkIdn޹`ӔEcNu8>űks$OC(92/ *k0A:+{C bd 5b~P, ?qz!|Ӊ%e3іUQ#O4)1xNGc}Z^'{-0vg`5O+\q*#)k5 EL rUwKd vDS_'v H,Pǽ|9 3 Aar1EKp|]%F";ߛnĨXq/I)F Ktȯ6Xr> -$Z" JTqXY>>KtqH;E&Lyϣ]D2  n_lnG&@<|q݋%DGqqR~h8iqF4w/ D:}$ぺGFll) K7;Xs87N5g=t1ҩtwJ9QC qaMB.YP嚮ALS8_Z:xu_cL< ƠYuIȸ4۱hrG} fƀ9< K#~t7up;$h;-"Δ]Gmzlc &g'!?>.,/KWЀυ|6;o{|>!ߗ%6nw@pnS> IDATf_{ P%k8H};:4hQAz;o+E= OAk$Z7:;M=x/ʕR90 v{h QʔDFx".iCf^]4^J gq kxucf"?/:lDb[&uX1}^$51a3pX)SBفÈyP%@.`'N+|$֙OI`Ҭ@bVR\H;f2W&.1#oՒ ɜo :vqnǸO%v$ڀ!FNy1!&(Zf.Pw\TzF2UT! kF݊PJC&u4K$D;K9â3DH¯Zpu|>Մpx!a bd1ĠW!QpP:7@c`DFH!s= vV(=s^Ţ`ƚN??}},~ɐ#].LgSGu7&N &FV$6/ E[6 ŜU5w, ˳Πup !G=ST?oހZs ̔n)ϥ$k;Gm=Fڲp04:kK>f*I['bc-@}!=[`E<ٙCe<@0CMVAZD6wOH=@bzM[vL4hϞ|.6|a6#,RZj.tcZljW'{|y醹 eCٽֺ)qmAݻ\ AƮ%4$#񦧖W..աf.HkM^bmp8ֶ_,rZp" d}v@2gAֶYY]RÃk0HcAcE6?03@Tƨsr5Y:ƙf*N/#A=NDv fx.K),OWĚJ>p鰾Nވ&oD$[p08+_ 6t&:WRbZk6o#:?-0]Eizz' >h֕f%', hORSbd*%z &͕V0zw#rjKpI#' *ivh",V<ؿkÈ-ۣ>8^>RGzq YH& |XH!nj p[N u!}]vo˦G ZՅeLF5$ԇ_/ f~fm c;,ln,gUKj?\q$(\~6Zޘ^3(cj, ( .f.z}0c\AH-^|7;̴7ϴǪ;1uO#,^OvLm٧2&bӞ/s x 4[W3}^vȆ/&c"2]g,XģK!P+Qy4\.b|eD~D 8Yݖ`p.afhc3"_7F_ mG̷ЀċNQ"Q2d \!Gt~8.6DjԜrr](K{+Gj}NnIvzB-=W1O1if̉GRW؜t#d9_}\HmUt6ƌ}N1]w= vzYr{U3}Q f\`gA0@/ɋ@8'`T-Fx^s@giX`$ڤ]P&1UAnF; (3X)yX;ـD\~ ô ]$G(f fQXZ $Y0 ن-FZ]1KU,kq;qᮒ!\!QEK Z!-ݱ3.p:]xG)1#8- ON҇4ɖ\ p3'Js>e 1 PBy/`xu9pgս\8l(Ii`✋2O? >Q/h1 "H >d*^pab:Pa $Fܱ#Xm+dL|&LbK7ޔ`3K2G<ݵc b"̨6&u$Zpl5ZXL#*̲DFgYlquϟ~1éD kw,ƆO V(lG5^rSHxK\y/@ qwtM}cڲ]Y |z ٴ0LÄK^B60}Y*טאmmݻ 1hDe o|+ݞWTY7ϻݏe{||odE'/~`w?s0\ľ}zDZyڗ/'α7~@xv}ν$7x}g_w[Z8^_Q{ww}鍼ڔӹsxO;~uczcү3ze5[Ӹ:P-;=>/yBo{~f{?N獺S?!o6o]w`~gSŰUD&`xoGB9 o?˻go6a p7@y6g{Z}'Ea1}?Έ;O|޸\P>#W<]ˁE_{?%Mw?{O)(dKfr:|+ 4ט8NX_KX 3y (*~'g|"@{|? c}{g[\=߁mZ.ױx~>yدF7f|cƼ];6ܻ}Rn~ISQ&5}!Wn Ђ)6 Ϳ_MO`겦vHinlLǭ_;^{8@mbT#BV3^4;`c^]>Q-~{Qtt|};7)px=_iBy~+xlzf/[E<7.*od՝??U)OS dt{^WyGW7w`\(>J0M4Hho6*hwd#k~;QѰ<]!)e%?vd6 M) !~G ؀pPanSiA%..N$iʢ1Tp5+5~KJ6=x{_> :-ս̄0Hr Wq s@jc]M1Oq2HÀ^6[!CH(1oe EԒ߃_?_|=ip[rw濂-R>;%>T}%1IJխ&5Q~o 1#?[(H)]Fn __0Yfc_7_/eiO! 715u PaMPd.ֺf5On؋> >Bv"x6gVzc2~K_!>󎎎oC}_~lD1i &,50A0;I*ICa£RBPhGظ߳D( 18) $A ~~_`nDIGGGGGGGGGGGGGǷX5#1' c`H`R&\⣀@#h,X*]K3Cl}SXF^/dyJ)ED>Lw{wttttttttttttttDb@_Ÿ̟cD13"OlL` ;Y\'t(Ig_7/W*(?/476::::::::::::::~*HS? 1߅ 09gqg0籯I\ \D1-!±AkXA: T0#`@Η߇_c<s J vttttttttttttt|[±?crcO `AZ3p`hLwb%"Xn@hrS&e8drAPolXg ~˿.FGGGGGGGGGGGGGO> ~L`@Q (ioUǸNlE1475PoDY@CPғ ew~i ^@?g  @( r6G"pŜO3*@\,^Wt6}]33 |wG?U豓 7Xq4/Br?D~H?$Ꞔ0eM03db .zfd=Y!"d@T |{?ưDZW\T 0}aWOpizN `3`o27 X+(p',z; Gko95ipg'_~bJ3;^'V!\T 8ieprQ/;o^ _5`nL,H0y&B*n)>~}`~X=+mq}}0G &>&c.\e4w⢯ K//ʨ4k;l?͹~@x" !LwxMX8HGy-/w' !QRU a ) dYS!xSn6}3KGGGGGGGGGGGGGGV,:@AbBtcA %a@D`_hH(3a*ay11PA56& @@<5\, a[{?Ț+03 $"AEEEq42m@uttttttttttttt!pb2 , dl iB8 G`f \P3 @x>gqL썶}xWSdlG|q#/D:*xk4DD"Qh/0kH8 D`]Xbb{0X9L3vY@5C%_( w!Ujt&LBD޶=kl\˖3Dfntttttttttttttt}O8 !US &ddA `Q{7LQ7=pjT@0!:":J %X踊>x&^;;:::::::::::::::p 0q% bZd :T̎)Eoq TAхh8P56묽{BҠGGGGGGGGGGGGGGG1Dd(p* M$C! B7 & lc*FEyٿՌVlٻ.`+)A@k%L<'Odc p82q_莎%r0l D7ڡDAwO/0ё#9L0Ad km0\^?P_⎎o:{>ʋ{lGGGGGGGGGGGGGGGGyO6P遀`N+!2jZf+K_E}}?{9/=?4M'L44"q*:::::::::::::::j,b $ 1+r:^\GGGGGGGGGGGGGGGǻ+"qGA^7Ecu  ~}#*{87  EB=l[J!@/)x DDd $\ IDATFW c%TvDEB;:::::::::::::: D@D5e"SFްˬ}p4>7ed@AH3a)m +Yq+Y=;N"}ꙝd l@ g8|g<1rN3USS0 (Y8~t 3ˆz ;]UvUO!\ mȂsN)Vq_D2A ,>(u+sp$P@P<lXHXQ(V D@@@@@@@@@@@@@@ޕsP{CK)dx=o)X-4%+Q*bw8>j#S@@@@@@@@@@@@@(CAaw[tH)&Q,;L\ײhba akh ~UwȦu®i! \hSԬ)VݓTL.(ƿsJBV1h,aj$(F@=JlGGcc#rTppI<7R?JJPS L'[9!`GI6vu^Nl[l2 3'LC@@@@@ 7Pb D(P],R\$K' TSX>F#`D@ r( 0ѹ0eSEYy%rEAxh- T **+QU[*6&-c{wFϜ@CM~UU )_)W>Jз"$ $Ru?5gQ[x+Ҵ/ @#?"=UV @a8!3"@z.M}^**JYrz,]9G'AU]-@r! hwx{n}3/ bػwKc޼yطoFqGq[LAEL>KD!IJW 0@A(:&c@uB **2`79 APco(/݌\nBC!'36"`hJɉ*jT$D 3"0BĴpT =EJ+ʎ;P]]oa1-كr}[$ 6Llyf|'L߿ԭ>,>SnèQm_nڴ VҟԗoXj-d-Pm`ml 4t*4! $),jQ5쁖ޓq7A-Pi҂*?QOXbކqL/YD3CZENj[Qw%,0ZYy<x/"s*ZFja>(SW^yo}g⥗^ŋ׷{/P;xk:6Xh^x]uVEVVVhMkGk{t'K^Z3xhWGjAvtlp@φBU q8d8I/(   4Q둓%~u! (. Hb3h$DߧuIA)mRLя̴v7u!E]Sk߾}(++ӷ333#amnk,hR (++s$8їNc֨{OG;Ck9ؒ赱M,ׯUKtWF@@@@=@ UIRˆp%'B/)`Pe($Ă4uC}뜮g 7Xx`2!Yv R23$0xRHK)CU-:š+76iv[ -V$q=/uK (U+B X[WtO>$ںikNWx/^gyF߾K%uLrrܘ1cKwI'[n;me%k ŪN %عh"<쳦je7N?SI}>#S[Zy(yRЋy5|@$*\g ZTIByb,8:5@!?m7maİ"uRRNQzx r GøE2BqBX3Vj$e~9Ti^U:[ne9眃 Gnn..">x-)Z8/۫9ml$Hz$ۅ*͊L@@@@@ yT׷)չ*VSZm aLkn&54[~@=k"(EN>D}C*X+v#Np L:; HK#pIu8R N#18"<|@+)WjǨ, *! 1MyStlC?ǏO}9._Ȟ,G{ȶJ1D$ݿgr%ڴ)؎P3PVL5dJ@2[X\/e}l=TpFdgʐ8;̃/X>҉QB]6R Ac2/?h߹ A6㹱cwN"-"5$M]2֢dƪlYOew_YoVDM[뼜>-ܴD&#Pqs!)o6XӇקV]/II\XwPBDބw's,)# ,sO$pN |Xկ~^z_|+ٳ^ݺuȑ#q磠 6b =[lݺeee(((qꩧbĈjj$ePYYo:Ç7n^}USYgy&z Xdvwƍ2viEq#///bj*Y zѣGCNN:UUU믿ƺupA!??ݻwǨQ0vبrJ߿_=z4 -[`ٲeغu+<:~-[oIKK~j;8GUW]Qihh5kvZݻUUU(,,DϞ=q'SOEZZc|>^W޽{Ѐݻc̘18󐛛1o AOȑ#(۷k֬ PZZ=z4ƎlVڵk~zyyyeEzЀ k׮ž}b/;?gTUU!++ ݺu1~xt=3d-kÆ صk]bȐ!j "ڹ*wK,AUU! @\c["NjkkQHuxG=[@@@@@%pq-# TBUJszL֍/%Z#n( J 8|d5"@8Sb<8EiRR(iZ%P\9`0MX0`*}BMGRtSj"V.l|>}{3}vӱ6l1o<}̞=Io\tV?;w/cx0fG۷cƌX~Ǽy0gΜ9q￷+Woƌc+VE/y1hժUAÐ!CkhhwRDPʊrA}]-h;3G]b0݈JL2[lqݖܰZx=!Q/2nᆈe^{-+cvލ뮻.L1Ç6lH[oL\?ض 뮻ϛʱsۺu+~a͚5544;p$7زemY/;Q) ӟ,Xo2n۵,w_˚6"kDa{hMdzXd/ , 7܀]vE\iuqzc7"c@e8L*YA98U ($pH@| ͒+g}#ouL_K )ހ $0pST7(@JD9@TW )0Ǝm\ 5eYu);v,@]&V2831|H+=pi[09{ァouY(**BII ֭[|x׿5bvmhllԟ \uU۷/w7&3g… vFf7 ߴi[>}t B222Yz5cҥ vZx^]K/-_?Ӿ,{ܹ39?X79c?1_|m[ZcC϶>>jzf 0qDСCOt|:u*/_BSY`3gDqqi^^8 deea׮]Xn8&w(b .T׿+W4۷/Ǝ ܹ9ӟ˗ȶ,ιkeeffbǎ1YHh&L~SYs >^z) qX_m?OqQ1bDXY֭ӏYje6f,˶&k)MT?ql;pg4Y'|bZGV52?ԭbS]G1W0aq}#-F駟lS'jlh$ `>DŽ$L?^[+YX$(K%0ƒ^I{J5 E{ap΂ JSP]F(<و.dakM_#8РcX^Z|`ذaAT 555xQ[W%-,Wg 6bԣ1ƍٳѽ{w}!{/c/_Gy$67D`3f >͛7c8䓓V[nEOcz:>`D%ߨs95kI淾gϞ0 .fB~~{ŬYL")4ш .s zѣGlĈؽ{wc1yd"2`̘1#̜ؒ94={馛O?Pޒ+:u?MsWbe˖-{uք;Ϙ1C'9߸q#,X`"I>\wu&Bjƍ馛tJ+{2HwZ{]Y*?ǔ\z$)SuVpMe|n-Zd꫉'b: 0k,z[_lŋsύX_|r}s=&E;YKD7lیСC$vra̙q^&M?\DZȑ#Q ؒ@ e?UTb5HR ƙWB4CbxBFCURGNVCVF=`JT(d~Eceŏ 9Y>XJdTi^0s?~^P(OJ~A?>GD/VS4`WkpT!6T   y`|Z{t5g0޽{ehkMJׯ'Љy <O?4Letwu!Ȭm~>O۷/{1R999xG1p@^{-{7oϟ /r ~_o߾ %?qx0w\ -BmmݥK0rCkiӦ&K"#93gDffy4h{9RX#yMrb;mҤIìm-]䶤_eС:ɨ]{ɒ%.\hꯢ"̞=a)Z[35_n"$2[n1zcqp嗇ZYF466 XVYZXe-imu}wytޤI>~gw}:-FrilkK4;c@5b!ziͶ5Eͨ"ID@hL*8P_Nµ@q!#=-\sQ#++A3pP"#T*p l˥jQ(9xH%'dPZZC6 򽺺[cδOmm5ј71 m&Mr\idƅ_~6l?\smy$O4+//oCfZ4inbU^?0Y1zMoo Z)S-+s!Kq&.]7xôo&}eۦ3~ݻUUUX-eee/Mmvۺ@Ϟ=1jԨ;^97IYYYsY6h  &JV6aWE]Xĉu#GeɲF3 PIKKZp!}]c,\BPVVf[Ϣ"xwRn/ IDATzʰz&ɚX )꬞%6x}M40qs8DUml1"nqZ U TV]QtWBɎ"PPKs? JX%hx(+ل*Q]UeD@8Gj `p0pi.H)+ւAHr<8RdH57Tw jTrgY3"+x,28ai]Dprіa#a}ihhmQ0*N}0Kc^K>l#hٝӭ[7Gٲ2e1w.rr~:tȴoюג$ Ç7۷o;{3zGU"ZE;ve^"%%7q,c)kgl؎Nv-E#L,x `ܸqHMMSJ1rȈD,9x dggc4k.GL"d/m۶, wǎethr${I{ǖhuk_tdH`c)&#ԘP5uҜƭ 9NF͐;UG  PP0y$pbAAI)Oq%`"=5لnkg+yZ\. ^0G!+Νh]h "ùaC-ipuRͤJDGڢ֭͛}vZW)"69(?oٳ't񜼼6U)l4"@_!'.j)HO ƂPJ P>dg09rCY158$Piiih`ȐjRV|>:w vsƪOWAaHIIA޽Ubǔr5NJy,o~zxWφY*44h.L$ڛS]V8纥E4tDpssP"eldZoDZ 'K-X\1-NNcڴi&J,\ .w.r\tE_4W>}8pe-V9DGnݿVWx݀:>.NdcpѵkW~" 8=CZA1\';KbzAQD)@azCԏę,* ,'!:4VBNF>%5 8SO jPR ")̔@L)ߙi?$d7*įr=#@Zz:Fr2@*;O>8~g-?|{Ȏ^=w .0.I#e,׶;~;x0rc8묳0aL01GkXHFjh2hdD 0k2ow}״ 'kC'Rh~oS-@n89QΝI+ g>rmBvލ'xs^{5S^ D*+VrzaY7VIڵbך26[TkKB4ٍ&h~RP %DhzXpC MΦN>e(+ހ@"솙DNE]IKw"7%J R(7 Kr\8\]Ljv+}Ɵ 9lވrfcřgݻB/eiʕ#wd|k.TT"+3Gǣ7.RV͸&,rFd_Ƨ~ogddĉ̕x 'aMHrZ<%LZ{x]ٳMm|WK.ZU?10(޺j&hx7<TVSꜚj:/-- rK\Xjҥ Nn | /SwjǬYP]]nYeE- NiַN%} =F9v(cvX[@@@@@ >eA fqy㜃P;S>)ʺ՜{!و J To~+:àpCs$y 2 eA0Bd&Ti-ۈ4BH *2NI_σ,ˠB$@P0KoBiwځ={vq1W"1J)\.`ezo Wc hr4_d ,03g.&+MUM$~`'~ڵeY֭[Mddԩ C c{cc#&W䜇?Ce=}V3^97.vgvޭS*ָ{$^277״W_}uBafeeg?8x >s|466*9Nl)dMyMYʼkLǼm_vmKu]ITlذ<.\s .¸˺L||/qbΝ$Io[Sy/"6l`K@̛7۶mkve$TV7 ӹ׿P\\l[?ve-X jYo,K/jGA?SU_XXX'|;v0VPPj5 ?,E*cǎ&m_92dHXFxb}&~iGڮ-_pao[TK)А2uLqJ4g9)/}$>wΝQ1y iX^:J˨)nJx @CGN:>|~\.$yԎ/e)n 䠬``Pݏ?ы;w3c1Ĩn:9 %!?'&ӧi$GϞ=pBbjŊغu+jkkQ\\M6W^}d֬Yao`صk}ꩧYeg1袋LsssxbS*5k ==شiΝ_|1 >۴/ j*dee!`k֬ K/6[޽{MA"KJJ 2n7vǣ^Xiر9rdtLի~۷O" "##>… 1sL1l0{pݦ6\r)u1c2+~'Z߮7ވr6qDl۶ 7o3ի6n܈;lڴIRX]]۷=܃+WĤIL1z%KqAct6l?ŋ?R_:!`͘;w.^z饰 :Ԟ}ʕ+u7z|gʂBMM lق9s୷23g4=ieiʣZaeqMeqѫW/lڴ$"8g}fꯢ"|7nχu֡;wFJJ cعs'}Q50sLc9,cǎxʺZcccTY[hQ;vX%I7&IvޭmͽMdP߶.|rb[Bǖwy'%R3gNv  ^$D>JAAJK0ԐM!٨h0e;a 3  4=QB~uv~P4"=  %2OA7{K TqEx\ r2@bNE h;n@ %+Id~%`a=Q6e1jaANCYNT@h"a$p-ZӧEh? ~-7er;uTr-eʲ掰`/ƴiLUq+캿otx ;땝;wsq,7zt=ছnjV;iɓ'ۺ8յxhpBo6ygɒ%:uj᭷-?x J[H2e Mg:ږ2G:H`DsMMA\~8LV]Sϳ7e}۶m ]tAee=?Øm.nPuSib[!d{ 0%+(K8ӷ gpK< _|:xiAEs4|==/gxnR_@*$d"?/i:4fqցHGdU&GU TO rQc!7K4zCe]W_}5<s$7K/4,ՠ5tIadM$IܹsQTTd jWފGm@ hTHYgϞm,Ԯ~{kfKnMdM%Cst oZ΍Gƒ>>.Ҙ?zkxmM#KY`ԨQx²Q8Νkr;.N:$ƌ ; KII1cMfzX 1 ի,Y~C -gG$C"G%:j.]o`8m#-- ]v{=\s5S4N2ZgϞxG׿5U9:u*^|E[3hrbܸqXbn4w⭷½kZ8;裺9=7l_6ma,.ro'{[o3fv;;Z]7BqxZ]y~61-oFı駟6=bI@IƔ´.*V勃0Pv ᡵ ̺W:B\Qc0˲1gr;ABTFC\-@e`Y*:<.Pߨ6'(-+SQh:C pPS.O@c2R=tI M9Q[[ PTTU8E>}"*ePWW={iiiҥ)nSP__]v֭)aK+%%%(++C]]222PPP]&\H $())ѳ[cEzzze|2d"ˀÇGB:ʄ 812!2(G 1y98 9YLKT@-Cȴ@d>GGb<Njߎtp jϹ  L'8BKz`B>2q?2R}A@ Iv~[!UKRdJ1ntR x\28 ,ʹC \#>PxƚJ#pU/BQ V_qؙօl"iۛinkOOERw%7Q$Eu IDATWd=G qF9WC@@@@@=rB52}5+'7xMHj6PΈnt@8OMl|x%، <e5@&3d%TMT52:e{pN8~9AWI5k\D\!'3 d]PRXvK..ARȄ sH,r8;~Q!ㆋPӽě)?wC9S 9]*$-(D+ljH"-iZ_ƺE"b7h}9lKnaɼD*M)/oM#  JB88A4ER#<8TϹE(:WEcH0B{w@5%۰w a\=0to ԅRSHÓv`. Է722P_^9ܔ"+3i"((!zhιhO9j,+W7B}7۹28P2)9U0(t ~@.? ^@@@@@@@@@@@@ NT!58`s 4RK8$Ȋ%ƅ (=<nUwLBZp1 &8:Raf)~BmHsΉR#/`uD<ڀC?j.!bC@@@@@@@@@@@@ >XTE 'j&%釱l6BH,΅0$X 0`Ε\R0WULXpAa 8bu?PgC@@@@@@@@@@@@Ir+c1$a5Iѕ9#! ",8"t!涕dvگMybhPgߵ1C >jva$4Vc#qAF r ;H%:X@@m-|;kݺuXh3fHjBPZZ'|R{AΝz[X3:u$d=ކwqz!_uu5fϞoryP0p0İ# BbC_9NsWQ#PPhT4?Ȩս%6w֍ 6@Ǥ"##]v* A#GҥKNH9֯_O<&Lz5;lz_BV@ e˖7xPLڡi}Lz_¡CӧO&b?9.[ ̓bB\Aa>+sPs,82-zo0ѐ9jNɍVLDIImmd˅SO=1adff Ym({[ӟ~GiZLJ8nu NZO_~x'N8|$C=-NHA9(% kPRC , MCö1 DSA^WF~caĈBr19bǎСC[.qQ2 RS֮ŭ&Z{tIãJpX~-z㤓N珖z&yTa XZ o {珁A"T_*˲ p :XvsQFs<&`xP__׋{Ӆ7C<k,233믣 -[c@~撡` ط j… Î[hn'2/$k\-mu&K>K! VC!*S N c20N!M,'m&¬)b/=En7.bSd]v>kqAiDO$z qMdBrssM-c7!SRZ"lZ<7q4M6 8P_[[/U+v 0-U߶<ڽĽrNljA[BL%zBձX#B$ɝby^G4!4=23:B0qD >\_Y.^$ f!:dBso2Z$k>(ZܛӱGcqM IGSn![KCpmEkouZb~]v.ŋTb%磶?y4YmK:gZX10L24C#DtbZ18,P&}u?v 1tgq֯_ι)p~?V^ ۷oCΝѯ_?vi5jTDz˖-o{7|5k`۶m(//Gaa!뇳: Æ 3 ,oŪUw^>|8p ƍ#GlMЀk׮޽{Q^^'|2N;4Ge˖ s=ֶo񆞊{8sbnS׋Ν;1iSm۶a͚5شiJJJPXXANfii)֬Y%%%D~~> SN9rJ́?{g'Eq_ ,rêD@Q0/ h"DEEcx("*A G{C`9vkg9/3S]]O?;vz)BtY_}VZm۶J*[.Zl VΝ;QfM4k yyyh޼yFZjfΜŋFJдiSo:tȂv؁I&W^VZ6+nyJ$c϶Uߧm۶ܹsj*ر't8㌄}<4h.]5f͚5غu+W m۶)rfrMaɒ%9s&-[[N駟N:%u&Kz>/Bɠl'NĶm H&Xa^C~gl۶-z{iP,ٳ|yZjaӦM;w.~Gz)[!R^,˖-×_~ 8餓p饗bΝ2e N:xovI_?οh"|'X|9n݊5kOGǎM`֭K.'|rJװrJ|'`=V)J??K,Mp 'x֞ڽ{E/GCϳpB,YpEnݺtR?TV z*uw믿64_~e˖Ah4k&C'd¯r^桻T+9HG)mM#&mhE CJ dǂ1@v[Pj?L<>`ԩSy ,?e˖.N]t#<_{}ߎzs Æ CJ?⡇¼yBٳgO<#Zj>{l92b^z{н{z%{z'jS74~9&LHx\N0b4l0FĶmxggϞ' mڴȑ#q)Irg')- /Lm[<f1 |:t(ڄ EaذaXbE1999{6^͛tӖH. }hlÄ 0d 7܀k> > 0s*T}~~>.gq^PYÓO>5jڵkѩS'sܹsQ^=qM1ny|27k֬AΝSW &`BOK;ϖvwi:DD0xĶڻw/z)[~;."ԩSq'1"5_~3mKҜ?5Dsȑ#=7L_ӕW^z.@^^^JRTTQFDiӦiӦu9uT~fnx< ^z%!C?1pN=z4vzD}̢)\D:ࡇwh4˗ ֭xݻvO< 17x)s calUc?>\uUINCV 3gM7݄-[ 0{lrrr7{9\W_}hVB`ҤI1bDs0`g[V-nu12~z 826 ɓѷo6u/.3g7ߜR&bӦMk1aSիGNPfMM_n@J#GGl&7n6mڠf͚FSpB\yXti𼑠s9ԍpB}ںukӶZ^W_}~~0_~}i-8G}O?thWk<ʍsEnnlIJIӜq 7x'lƆϺuJ=6Yx1 `n(6lhko`*tqw^ :ԳSʕ*? 6( l&a-O\ِC9?idOӝcݲSy>kB7C=5ٿ?^ͮ+WF3^PP}~̹AAau7mףDkH%r{JG"Li~ :4N|O~ruܸq8p@j[~ #񅅅Zʕ}q޽2d{=rʨ_ĉqwbڵ)uPVv8YfaСIWXXkǏ7鵧sΞgܹǽ>_| o֭5kӧ'ߧ~js߭9spcÆ 7icHԮA~X- % ˂"@HXdBG*!\1<6m6m /iEq"ZZBZBZZWO~\5~\5VV,V,/-KKM]2_2|7БFv(77rss_Oxb<~ti BW68p̙C:u2 :4~9FN˗/X,FDD{O?.2qwu]G/6ݻ+k=ׁ3o<ͥFQnn.z뭴tRSG"˗w)/??s-mS,X,F/c\w6n86mԨQ\C,ь3LS~~>5owwSN\5jz9|֭) .]v5:wXVm$]vQN5ߟVX9ftwx?{вqXV"J#zlWXbEȄ{.77?ҷ~k4||KǏ,sҤIqL^^ٿ?-^9nq^s̺u2:fiɀnte ze{~?~~EiF> Fym;Nӑew]|oXNS_w=xfϞ=4c ڵk\e'kvܙt ,֐dn#zw;f{=Ov-aϭ.ɰ.+ҨQ#:iKsMd}iv½E:k`P&"hmiݺ5=GѼyhƌiDDcƌIӧO]/:ؿuPmwߥHv/͵=_xᅡvM~&4eM4m-4mm4e4[hc7Ӵn&+j]P+ ҽAFhҤIo\pA\[ݻ#F0O'xc9Q\9t=ə[? <4ib4ɕ*UBNꫯzl޼gy&^z%h_Bicƌ<;wn7uѣ^|Eq:6i< gd͛fݲ,D"sÈ#RnS!D\W_}ٳgPcǎŅ^GQtݘ'AOonL~; Zjc"ڶm7|\O?I IDAT;#V^WTVmXDU⩧Bƍ=JÆ 1j(i{/c͚5hԨQI?ֲu岨Ȍ ޽{hܸ1}Y|F6^@˖-|+Wm۶o3<3`޽IƵhwnZ˗/-Z`̘1l= 1 hyr 8߿?yuY}ڢE gy KHiYv=7ngy7UVi:O7Gm_s5x'=rSR%\xxwТEuVtL !BҜ_g!nWdQF#?Ot-5gȑi_~u9;~ !pWx,-B޽)YA}iYV½E{3<ܙgI&a֭ڵk4=9 =~袋o{*^zɳjKi^?.ujT\DsYgrT0 O?4pw}Hf}w^#ЫW/)c6mZh{Zun Vw'TcL`~*W={NL:jժoB{1۷o7]3nSi&lذZBVpUW%_ѭ[7DQS1|)ęEO6~~st23fx{ -Zx"իmڴ1,/__ٳgǹ:Os=󗕓c;@&&~׊dӧO|0a{ǘeJ:u0t9}&ȑ#=d7UVEϞ=MQ6$&O~ S6n:u{ %ݧZ MTΙuԁ3χt4iӦaZ :k֬~8yNDu=y2Ҟ?Ȝ|ڴi_rwʌ^Ct]K;oܮJh\rI¶wߝy䑴?[l.nߓ&MJjdtL iP$'t}Ѥs_~yedJdhy׊?ŋسgf̘aYf믿6mۡCaUg TܹiGc~ޓJ!(ąY:{/WTㅺ˰ITYJ A$`uw~{[oaȑKqb&*O<(((0]}&HF^+v,{\2ZlP^h҉'OLxUz)Nwmȭ <•W^cIU\_ M~P|vyTr+t|w&Ol꫓FNֶk׮5O !ڵk3gO>ԩSz긲8sL̜9SL)&#Tqq5xFƆ[H 'tN8iP6mଳJ1?dO(2e=^k֬r7Bt-#9}QTT ׶mRuQQg.[ә'{iժUR٩Ywy.t[Z`\ LbջwЇ={4>\}աDe/If) X"6e{Oێf9X mY`۶gҙ"srrЦMܹӧOG, < 6l0YYZhQU۷oʕ+cϞ=ػw/ϟ䞻ReYc 2S:n*:c Ay(@Ze*RaX'["I" <1so?f_F^^^BXtg}꟨ ;J(7^~物{F!"A7GLemꞨRiS7;w !J5j7aժUXp!V\Bڵ {9X2 !89S-+(ŞmSW7~ymٲ%k7nwn榴iٲ%*t^øqpe]vh޼)˯)k6nYl ]\36t9eI |wy4[m:n8e>@Ѷm[ yfT /G#[C4tt YD7\>ז-[2DfRiҞ?Ogdk-l♇5jdM}v?˝OP|y߿/ƒ%Kpg]{o!Lj&HY[޶m " \Cr?wkς jժGEѢE |wشiV\idڮ]dE;wGBdUVW\w}D3gzνo>E'|ś/elqL@*q;QyZ#qmBw @n dT~`D*Nѵk׸k׮];̂o߾?QJpt)qʗ/ZjT;wxk#EoѢExg_$\"vΤ,]ێ3&4gP yB3ԩ^xmcϞ=7n ذaC]vC/GAڵ/"#ղؽ{gnLvbѤc,pom;.hDnu2'Foz*'p/^O?tLq۷oG, \iYDӝ3S#,AkV2WL wd2e4zK&kH&k ;gk9;ņO?5mh"<".X-Z(8( YV-tsԩSKoƔz.;PÇ72h"Jv;:-F, BRm J+,'%=#KwU* Q4Di=2Hy HF_ W^y0zhGtn$ȟTo`ܮ/ᮃ=?&'AecȐ!999 ФIԨQExضa>ӛA۶=ח>SQn +_7&M+&u A+)999qsC:Sɲ[-EEEtɭpRZ+YkP&7=?<!$ӶXbEF˗/7iDXbVXoߎs[nqO|PRre;M$u,diFɓڳuքsOQzul߾f¾}cS:t耓N:T}ڶmu\׮]Cѻwo6?ƅ^۶=)d4S"Q|DqC4dq$C'?$Qm R* (\N 9EBD- G{ZjnO? INYQbR?MNe$sc}֦6mڔҍ֭[cSvĕj4(DiZ?4Oz쉡C&Mvի{۶m[fLzeY8Sqꩧ{6lOz;wDaa!_O?BF;v`ƍ GSרQl1 4hQv%,tY=СC1c #Oa2hH"%h~P!S}Z~[z{֭[.6l0g"~W-[x6a.كe˖bŊXr%}M 4@6mpBL: pgf9'"t(8LÇcݺu&y֭Ѹqc9d‚{DXR=2c%,KcD,H"XD ,% mXF "":Vv؁G3͢k.꫁թSdz6[A7 ,hʯ[g#;ޜ;'''pRIլ/6vpCwK/4ί=ծ]u1&כ^e0 P>*nݺYWT\\ln|޽;|AO?cTVPyÇ{]VYPn]O@tƆ{Sqi%ElH+nr-Lsrr<&pfs~weOH~YNup̖,VNO d{_UT^M658ߵHoƓY]vqADXf -[WPzزfL=vYpƆEƒC,rnRԲVZ`Y,3A( ȰHLY!a輤 Hg:o?x~k+W]t1ǍwH@x !pƏ6_tEΩZ+W`)y_Sw/v:-%MY (:s\䙖FK%~[j6mMI&(,,L{w4nT0MUOYe dwy "̞=۔Oݜvi&oa\Aa-=~xcرcʇVp8AFH"ʯ[s@BeXeHdXY d?!EB)EFAR B8;RJ뮻)SxL4g}6za:G~~~ *..+aÆ>l]2 3a7iTuСi[ <ؼѣ'{c_jUO]z}ٳy?lذ'5;v, ѣG{!//W^ηi& >/RYg幆bݺu7~!z)u]WV=oNOYNVV֭ҶZ^GÇ{RJ߿yOb…2g׿z4쉙_ u7i2aСԷM{'y>X,+OrO}֭=>Eo><3x7[Hw}d,رcq}y2TҞ߿ZlR]CZ^υZ=ϰ޿1m4 2= 矍Bbhq D};җ 2?ߤlӞ<@bxꫯƕ{.[W&ȣ88p`܂!СCx^m[@ںH?s%Ki&>PV-a7n@D4hP&+k޽XnƍyB {rlloիWaLXv-JtڵDC9s9~[T_q2{bnd*I?ׯG޽",>u~y;CY,ݺuCpcݘ?>&L`oڴi<ƺu)AI4e_m۶zBѪU+TP6l@~~>֭[h4jJ'*ʕ+?%T;mynР:wl\&O%nW-ZI/[f#NO`l۶ 6mB޽qeUVX"6n܈Y&p`!3q.H؞Я_M5{细 z\'t5kvPgϞ5k/۷ozU3G-Nѣ&k7+FJ*x1d̚5h3DQik׮c[oO?]v^ ퟡCoNDCtYA {:m-ڶZjx1h tj޼y&E *`ȑqQV^z%}ݞϟbŊxC8zs\&Ae>l<mҤ .BK(((}zI'a̘1*S:Dd hW0y2ɒmrsssaY4M6E^^ƌOO>dOe<3D'UTرc1x`#ӦM3,iӦҥKR9 tiԨƎo;vFQ3Ç zx=g}fId"50UVFkH:fe]>FM7db{=EcRٳ'fϞmb <5an{n w_\{)lw|fO<SL1YBDQ<#)+ccTlM5͚5CZ_r%qti֬N;4Pk׮q.9Zc$_|qBlu&dO BJ`YT˻X2@BiEfCq6&;C mmA v BZ5t:t0}Y7.f͚x7 /pժU ĸq2Ĝ7<^~e8|UhժFw}7<< ?p\+5k믿^x!FקVZ뮻M0a {1yd\}՞3g h'NСCqꩧɠ.wҤI[ʨ:'-ݶ~ ='M&[o/Uɓ=~իz =)Kam\(((HXV\uUxGPzu܆"F̷j O`O۷7 e4}9qĤOk2h F@TIwsA~~>ꪸ~/Wz聂Xa ҩc2qVzlSrgw///ǏwDk;qО½T)?\*vI!"OLjʕ+w]W*n޼7oƮ]Prex߸ٳ+V}PjUrIel޼;wDr4[w؁5k`Ϟ=8RfׯǶm۰w^TZ 6(@f6Vk jشi6oތ={|8аaøt*WUqYe%AL0C "mٲؽ{7U d,e(.͜䗁? 4( ڭC>ݼy36mdnРTo*mg\C*UШQ#SN&윩ȩr|rΝ;n:ڵ wի `)ZsM*}}6l/^.7jժ^ziRbƍ^zJ~l@ryعs'֯__UVE8ߴiG6gԫWSY^{PjլM&ٮ?W^Xx1rrr0o޼ٶŒ:h"^ *_8DXY H Cj ,ґ,H8DR%)Iz"mT)t̍e ؐ1[#%-+= A${*?T7j:` ݱĿoXqT~,+98+Qҭo"e2uumGC}W&S4ŷ~7GܷtRcѻwo5'CPv %DPd) "Sp8jb-I)!ID)X, v  @2 A6,AN\ e7 H@v HR`g8 ]ߦl:^nH헃%7e%|%>R>ܿ<h |qJs;PǎYqXO2va%a; T$Dd˳U#)%l' "Jp"YPIAb $muvu 0 sLtc6o&n5 b{; ZWV\i֮]̃3[I9i`#*\rA(J"vJ!,( $J2ABTRV ҉aK{aax1 0~\wލW^y_| s95j@,ի(өS'\tEܰG@,Ν;`=dO[QR%nb@@APn*NW=-(6la.+BkD~"H객Jڀ$2  Ŗ)haLQpZ<$`0ŠϪVc[nAaa!,YA%,sQB30G{>oӦ t ART=LPPiaT>Y~RC2,˂RȆp+t\UJT,r5I's,2 0F9Gs߆*eɄ͛cĉԨZ* z 'p7QvZs= *>0,D0*qUqg* &u5kG}S52als'bذa;d,]RF8ѪU#*u*\ 6DΝ}v|ԩwJ*uaiuĊxXA%)IA\zRl耣lX6dcXsHMEƔcy_H0 0 0 0,r>{IT;`8*R8ƈPQ7,@9icq6@ YZcr*-} T[p l90 0aaaR9'(#3q HNe,*$ņn'% cp'ֆ 9n,tReQݡpl0 0k#0 s~<$h4Q ~oa9V")%bK BņIB [ـ 1 [eS$%dL .>bqpQaaaa44TTrĊCJUĐR+, WEYDzI; 4JPQ,+ 1b#c rJlD,Q (aaaa5c(77 !X:(Al" X>c>TaԱ ȆcHʚ")lHm [ՁGaaa9!F:e, !t:>eYJ $ ~$"B$aI@ʘʦBP1mB֦BR 8AF!T CaaaaUp Pu!Q$@ZaQ18,rCjl)6lY /Wi+ņqE UaaaamNbaCu)7cCUQ҉8'iSCVG-S:@FAv1TR \WH8\zaaaaiJRJPb-ض|f;II8KDžEa;}$ L ^"8*Ά )cB$] Rid䐐F١~gsaaaa`D(/H2 ',XԱATQ1',93 cȶ"C@A$D҃l[E6%۔eK' $aaaac a|'ㆢk5PM%T oIˊd( H(iSH(C]lʲCDʅEڐ ۖMaaaac@( C#eZ;@ez+ ]\S`CJ{ (fBTdQjHi" "sb,eKaaa9VQr\M"(3luʂCB"(è@@(1*XhXH2 ۼli+PqLU6iRBH$eO"\eaaaaRk"$늊'R H"D&@JI!c1PV16YVc!m=Eu 8 mul0 0 0 02&+^2aKZH+A `E-,  Jc!KmA2dSQ($cNX!lGbK ,%0 0 0 0T^,2c<D‚I(D(qY% sePEG D1*vRڀIE*늴J+rCT 0 0 0 0 s,"9S"hDj#B5  VI )Nɢ LJEJ+m?I%" ftfRiah}cTXVh0 0 0 0 F+1BqI!"'ކ B8e- ΠCN\(6H(儐6,Vq5ʚbI*C co -SɘtȒJ0 0 0 01V\؟Q pi 튢ZVIy pF$A*Ɔ)k ) c`@.U"U0Q۶ }kaaa9p,dAQ JI>#s F,C:NTqQ8)_E$ ,J6.S1:,DrC@J' B@@&a-w20 0 0 X,cḧ( 1Gp@D xDXR тpҿJ!H*  H )EAƊUVaaaaFΖ*q9.J>#Z 0B): Y*{ Ž)k)At%áIUJAQG]w*0 0 0 +!4;)@)9oLPRcQEri!"Dɖl" *li#",HmglDԂQ :VX+=`-0 0 0 0H* ea X$L 8)dݺe!wN;`EHZB@R:)am VnHmlXNTHP@lO:+8aaaQI` aɞ"(tWr؟{w jlD $c$a  bjh439kaaa9)@Z e'd{>SUXH:iae RAߒI [JBB86`:(Dl* 0 0 0 C|&Fe~԰H@-I BX*Q," ,;DT&!U)[+:$ uT:eX (ς0 0 0 0 CG%+Qx J$,noRAD#PAH Q [ mHsBeqa;%RTyolXF(~\>2 0 0 0 aJ Z!׆_%p`?@HRAh$&UFXp@8N-B@H|,Pi_ ՄH} v7mB p RW\8`aaac@nwHHD<:2)ʰBࢮB( w e!B`O@TXYbj )yc Aؽs@1Ա 0 0 0 s`cX0 h.|GdOBX#"HNAlIUB [\A@teU!"X"?k 40 0 0 0 B1ˀB^!5H1p^4nKKjņt+4%c!D;  P1oX؀]Taaah"avlgX: +)a"lhE_ w`(Gs!"ʂv2(Dq%,[*Ń΄hLlUz O$X~lXc`aaa`p]b`۶˒Û7mɜ3h,-ņpҺl@HD-K@A(CtLTXwJ#y vSa%0 0 0 $p폰dLy~ "Lq%+%E-- Bj"Nv!ȸXcpN^_])KTR 1ط ~X `?X0 0 0 0G;@1o9bvC ,6*= ɕQE%7QXЖ#ubq~ ) M\t"%f#*j9wJɱjBWaaaaL,^[ғUKX@*C@H4 ?&PʂC( @-7 $, MP( IDAT܊ GAرi /b0 0 0 HbرܺQ%p,3GJD%5! 6F$+mšJY}o ^*JpdAHB .'!ݩ\d`zUbT@`6@l0 0 0 0G0b (V!ņ GiXHUE[X%&?Vhp+1{oҹjɆ ߂ـ, laaaa S*ƺ.[qAÈI LXc(!"*% !TNI%R9^ w !,""0z@B:7-c R/gUP*8:kƈa&I :fD_o/_OGGP_e-{mW'sGSXp?PWJ{|x*?1qpC^xth)\μpiC=_ѾK5HIN Xp㚢3(B@MHX#blTeΐDe\a oXA0[gNL*Y7Zs"wm΃*V@D!ED䕼?@'@ (A(cĎJ[\gs9U>Ԛkus~ik%7" __z_&sa&Mka(c< >PU7 x,Q #i8ꦤ"FLQDP*Hj 90ʉ12يp!+P)A*>M%25vzy_zG/}~}^;ȷ9|ױ}X~3NC>Ko'DLEW/Ư2}8@ Ocb1O0lEPb'DN3&ٌHq~"?yd%u1Ծ9"HH14)??-~m@~Ozïwz_oS;7?Ư/q96@RQx@i@`PHaGאj3Ҁ*ԡU 0)`VEm23dNc@`e@Q=?O34@ P(_ zQ/~?uHɺS -c`L/OAL }* ` u +D"`ut` xX n`jGͮq,>M|.|7,a'TxP?{?]zwSz_z/;~ ?$>9Ac@dBMGВ[H1agCfc7 %xV<~"Z .! (I (H17į?2G*WF?|ߴ,_g}c>6;>g>w}k_M?O6$$/>_k7:?%OXUW >qlp C  &ϕe.mL^7?齿bmz_[O{?_[A;o/\?O_}'hzg(}-_O?S= G}3ϯO} _iȼyG}g@)~W.%Anoow~? ÂQ27P(' aV'*ie @Pc!rf~;\5I!FWP7HLS*l)*b<.MI^@ c# _&̟_/q3?:)rt|`THֿ/F>_rSԥyl¢=Kү}XޟE=\)W?S>N^Oy|L j} >^O|Lb[Io߳ ֮G5s/_oﯮ7?Ot8P/y*]-F`*'ҋz}Χ׫>}x/~:_>Z|㷖}Fu~1³ ]ٛ?4lʧfiɕ'U˺ק_O?!~~18~0<\ : 'XO5WVmMn aq!+Z֋69[1OmamNOS⹯[9Cۘxqt3G[f##cGZ~g3a{~Wb3kCF#mj}Oy#{<1ӁS&j?8 6f^Ľْ*xf*giTeaPso_欹ދ9>*rJkU)OkbP9ƚztkUp8|7{)=lr&q@ s1c5sN1SƑ}5HS}[]öb`_Gm}N;4SD$7Fu9?NQ?ֻWMu7GqV2 y} ˞,2 rz?WdH)v=P[#ozjsُ͹N |-Lb90[C1סZhoF Zb]6^G"LnalCQ>Ym3U1z}oUv&NH]wQPuP7:wX((rYwHz\]Nt$P}=(sKZX+3k~<þoxlyEd&!`'?G@l<88x0 SEd,%[g}L?NT8&vRWYE@%ƆS/q~a>*`&8O,Z/,coY8gn8uXrN>A,$}(ȍP7m>YPTr'i (\"@E! Mf*Dm>bT1'( ZX=~S|1 H0u)CazNдe0t ypCn,ZAI3'R7E26*~o.Hj_OqfT@3;lY}Rh%% V2 8Pou[O|,d#0/5b`(f}"c "` VCkm$b7YXnFIaCHٯv8 Bx+YFåW`9n&hF - ǜv`+hu@i@9 ovơ) ~?ZG`cBį=u TʉmITc1t$!LڛytP?0~*?!rBޫnJb}Ҋ9]ڡ;<2P>CRv,y.&lET,2 k2o-pnH^/ĺ4;za@wZ$XmL3PdR1ԁػnT[EgʌM}+SF%(\^mh/v0]fCXc"OcC7@u5P "Y7ӯq!? 2CH1|i> od |7XBI,idsƶ0:k }mD3imϽPVs/*x^o,S֞1!Qn\Z3XM~bq%54^$ԍ\j5*H'WwJ[R$^cdK?s)g=XI1AQ`,Gux! }=e_Ell@_fMh H`0 kpp8P ']xXz@~RGDNsx86Fk Piu>o;Sb)(r$|8{$On|>ebH nH*MMԘG_HK 9'={a^x(06ʆ$P/DDFMZȩ;-Dg/:MqPĦb emҒL ]LA"(A'6w{WCI=;@kc4֐wuA5TQ [ 88N0pPV@NlOF-H5lJ66$SvS( : @~PhrP6&^H;**RDo^ ɔ,]9/XDs$#?,DGUs'QR`m @A#{|x9jdS;:30ۑ!֪aP1}05@牧b&ױȴ)`γ3V,̩2|5=WEt}`+ּD"Pid8p$A% C0O+=mު?7[EtZwTHrcVdbfS52ɢ}t戺nSX)vjll|svqHTvoDO#WG6؁f3EPÄ <bZCj q`'Adc_X2]7/;*JI[:g$}8ƉGWLӚ -zeA ~vtSЮ8*'XXq6*RbA,~5@U2FFimäu fF+i%3 9VF9DSr,ȴ_Tɶ!vif؁hYya&K"r QdgL)8OcM^nHIS(>qQv$˘oH> KoYxcasSc-~ |fr)rE2L5Z(* V̹̍ n3IK= ԥF3VITn=z'@5mҕte/*dR%A, LGɓX}Nv}^1U=0v `Fծ9jca 6g@BοeL#LԹ]jޞ''/xVu IDATx@w#u"LlS2j e\2gf95gc7>_{_gxq$8:m׺95q:15hp)7jltD}{k%"\?rMЕye}^&Qs̨=W/rkRAi j?eZ#ƤvBqwoS ke) Sww28|ľLWec=Ԙ!.}d}ݬ8}ۣs65F6 =Igvhh;UF_7%Ű&&=Y?> v?{6{oa "v|x#L8eh^@N̩qX=@Dm)4`Ď&_%uԂ9{\'ס" ;r3q@IS}[QMo)N i<0,L =R,cɎ)M  }k7;h5N5;q 66KgtfrCĉC> ú&qƣKoc'du2c_-)8ʘB|%J~{(t7%$}<ر1'dAbfpQ-7F(ZPL7x$hCAEL ] 3 V[EŠuc(X*PT@ `(3&TF(]ݛQD|hM4|,`@DGf2T MIFr>hٹ8YУ sjCNSיĜn*HM8(bi.U!~:̀:ab;)i 'eL mwOBLB]Is WEpxR\Q@kxeH@MN eYBʦkHIT u.o|G'MI so )#s\e:SF7օ(dz`<@jZ7AnjqA]g-up"Z~Oz 6 h+MBL=F{ֵS㺺Rg$ٺ`<*O+-{&X&Dbs:KC[1T>vw-D\sp6ӵ "[Z[lk$zLMw)wx$h a+0'L"8=j $+v0{n3 3byiBu­;TK{.&R ~Pwb~Wӯ >sv=r/`gR2CwY_LJ:mP dSmݍgWqV>jˣ͓`FeJ4`IYt?j#Xf]Y44Aud*ɼՙR޻M6͓L7kB\r,K36praLj`O PfBJwCR% ~))Pf*~wai`6E5YҠEjǴr`{3K47]ekC=\Ma M/]!y%v%t~B Ъ-U"3J)d4āh;G7[[ڜw1|4mTz֢mm!h397PCr:cP֓v!i2F{ / 5Ph<4Ӂ98c@f3u)Rk1QQ3>I㲈k^")(x[OTdFaPT1EJ ,$`‹RdTl4b wv=7GDu~mnDN*L4 (:)-,uL>)$+M[1cݍF8T 80 ,:VњrʫwkpYRO!vFIdUf4XC1<S^u;uqZ/Pq0xg9'ə=^:YQu솹^F26 a`́Ap=)26 {]z߸G<n(W TtcǺ1TR|zkݙ\li,"zM1ϼ׼`s1tkN|Vir{:tMۻaK 5>#m.zuP5;h?ؤy0rPOLNd{Qkî$}L dMjށ t eNZqF0I to05Kg8D 2"6PX%ҙE+\]Ӫ-m3A8Is3U͔i$>1fP~HAÛ(rV߲90h.rx[ܭ9.yϦkrn0SR~u4XR Wcs&Ë륆"%?0䕙t mo;(_grXr"nC!j2vz+9FeͲ@̨a}n r;{49i5|%ƗgdZfOI$&dvd65DAyNEEDFW.9 |-c (Ut į4֮ʂvvN)UbD#} 7# .މѨwH1 U+Eg%)N4Is";ZUg4NԌ`9[ԊVQp:=(bK; <=޶-ElJ( 7#] cD^s% Ђ߹ŵ%R1\(kZ"hA.G%)ڌ6ٮY:yZp6'zm^- 9bQV ,qrϏ1^aNWgs\Z  q!G<<&Py5" StF酎^gS)~6oc'`R,2 ͤm^9q9mOv)% :nx:'kR; nqc\`|z=m#|]Zy3fd!H&QgNz!2[ZQiϐz=T8x.q[@&QU1$JQ8/Uȕ.vtQuj|w?za]K *7P~ xٕe5ARc=q3 P|tt;t*Pj7Ḙ.oL7K)Dtt[8o^؅ }t0=c}A8pk` ϢeCsө#M<;vk^Ʒd=žFv>O Ϛ 9mǚr|hY)A>!73-iKwå~0@|NyeBsMٍT'IiIE{8J8R$IR}Dl*ތ2-ƉJ2mcliX`T, b!~a.H_ 0b>AAK,'ɪr&GtT2LxxmdJosy.4RnPON01a\ vXËq><(8VNJH{8GʃN>m/hTr` `Nz ҢM;~[ڗ-p4y-bRkd X+;)$9&QO#M'KW;?S{7:ƶwa4JqY=:4Q(,tbND Rh=g$K:qW0'z=b{k3 BJ:^/X{NӀ\)HpK77&X4` lQ.\Unv=}W4S6 ̖ K=Hen|#!9 @UVԾ$w]Wq #{icy{/l; c ۸/^=WkBwgy kGnzڴ8 ,yERrsOf4iŃ7Õ^%g\:/ׯ'q2vn֥/38' c QQ(Qs4/h4iB6i\<7b.׈HVA3 և1N qA ?m5iW~OA1ޜOyX1vܫvs.[:**7R͟l{7:f|"?8`Bna!W ?=zixa1{iO/A'OIzefF+|n=d*ANj,.5ҌBٚmD04"&\ ʳKVeʙ9SƁw΃()P[[0_jAZUᬉ,n5;`8^6%Chт8VN]jAL`:i:8@6GX=f1u5^(/q7)A>a443$%i*^ N4}8X*S\L3NpQOН s%Ì޸ڳ9X#{mlҶ<'i4) OFj^qؠ]24g+ab>d1 %CB IDATƾ@3댜v5iІQgt_2Xv9Z4`͚̓=iM}1:R? p±hu@j#,18#-m3SR\E dH(0TɜM0" 6!j!d̙åLKcu7G.:)M:rmb@i-Fo!(c=O{s*NSϧ)8\v#"Ԁ4,51`ᒩH/9;E@edFʼnu7n|+tN1CX/4d6wsmOqpk2δ%05'pX,rBC*݂;`F2"3KKJuH%u>(. [ `(%qD͢&18"NDI;]2ݛ ߀}!#%̌:qE`Vc 0e@?:JcD04U3ןq_cRSB1֩ESqg1?q`G&<ܠ߼74'CsϹ/ϝ@fhe㪍oۃHnի Б|5q7;Y |幐⤝S:BZ&09&PH>4-`q"ٙ6Uf)8җ1bkI7[r;|"W"Db``ϒ1z!FI1< 5ӗf(=vTKlڻ~P*-sW&~fxmp};XpҾѱg9Zw3(opz"rĔ1D4 @/A*J2)t@!^Gn Z$f9r^1,+sJז"#f`l _;?#47ڰ傳& -(sV`:#PPk̕a%AZ:<ӟ:BmQJWs?R$7<{&VkL# }j:3h_IO-]AhMIR@=Hj$׬LlZdOyjYz.dwdMH>̶W L iP1L5-pl̏ݿ>> ornHĎo~P^`b3{I<0+(>jF,ы!XKBW.K9wo1M]ia_m1@4Pm-"(S}wYs&KbiZZ79ޫ݁Hn\,78K#ߗ+Xvm,ߌqnɚ8jxhsp.ڼO\cur䶛3zh>$f63iJ*ti*PDx_Gsp+okvrgmv!. }ﵦ5Kx`l ! )="j7|l }?!?[A=d ^X=i@3iƪӽqYjf&w 3ݳ`ZLlx(8+ʤltZ9 p)):Zy €y2pC\SDիwB'ݺu8K8ea76fLg/HgĻf$y;K$~)/7͌e7.$D-G--f i%WuOSr*dA _NVɅZt~h~"V8O*"HD'u98vRSl X".Ȏ6F"J7bi;$L9FWPF/D(tNv6 uu4:1; |)8XWZ-Ԙ#{qOW{ג =jz^|vc:',<31(tLgpፈˊnwל~,s:QpɜnWi;v`^dE@b'St iiT 'dඨBXW[[q9rzhF™b~4w`9TaIycC^YXw{H4,EߊSS1<%e3T5.Ⱂ>WQѓ.0Cĩtout*[Z*CK!Uj9;zGZN UE1&66r{؉B}q=BLm.c4rNbۙgjCof8lHKݧӻm^,-#ۏR/):MfHYSE}mZrkHct1FJ3IMNzj߃K#J($rA1 )qY({X7I)5 \eLo3N7ZDues3j?QSlߙґ.=usz;x9C丒8tVKoh $ 4X#~L80(gJxL?.ިP`DJ݁\z5hfV:Wx^p0;,t{w~Nde"L9=9k+ʽz:bI둪󚡖sIj|C7?A-*[s,Q:k ?~~ϔ Lxx{BI LFɯ턱Uq`#"~vJa :sڿw:pPy5Uiܵ9̳<9ϋ }׈ xiAO܋!4BupW²jb#ZutI ևY6Qh{t"ZqP䧧hChZTUb%#źʍzpԫrnuݻWӭ7|g\zViZ#h<$iE'*R/+Eaq]5Tqo+NTFTĄ$@sq^5{I\CzI%E{4NRF4ywfƶ}[l 5PW䭣nz,akq0GONo䦿bw>"<%.MOk\(NֈgJXʐ8dgdcV4#`FSLS>iI)S&Ω1ҕp:ڡhn!^MGQrWϗ%ޓ?7 L+9(00Ȼ)*I  q@O:wk0bhfsؽ|bO``=$ﶃp@[zIcP^.oRh썄gitK7),  =:T- ͯ)bS P{X3c̠c܈$],3lj'%Kvi<3d'p \^zVz Dh}ˇ6RnMO[`x#qMCtߋê3qL0:F6202;^wlZYxrd j#`x!=j@2;@BJꆅr>6 WS-5E2[DaS4 -yLCMǓDdgckHj |"ȿ(n/dsW|t{(Oi]B]=:%+K!QX^פ >Qz^S^chGw"EKI[Ȏ<8Oh{|\yfƁH}/l@ ¸Rd4:H%d48Y3 s{3آI<ȓRyf\gZ }hvo>n Ltt=݈n|}/+c>;pQ UR4|jpĞn)=Vk usQw7rgҶ \ebTLUʂ8:!Gqb3RcD繭-8 ZRr^x"pY9ӒO9k/89hc5һ[J¢1١m~ΕEv>jǸz4,@zw_"e-2S?}[[q&4ąqj;To W(Kh_|/ޟI+i8;klُ k{z\gold(zxW pbOKr "x>`&4*j"aN' ѰÚ܀쁸e߈zH|&{myҐt;7ecu_{̓>^v3\̊o٤o3|{^^v~}0ӘQ_2Hzca>BLAb$nsreK@gȋ0{2|cjqzW򋹤]qʦ▩Q0ş;z)YPTL2s*>Z ul]JE /Iy|;9 rHrOnZ\Ś p7h鰱FqI+ey1nAG7ufiSvvv:`䳐m-/&\FD:1 [oӢۦV>c4S0Stcy,)34;9 J氓.R;% p(etKoقFU7Ǻ.Ϡ6quT %tf^Im|u}KfNqAE2^0[كUgc Lit+O  3]0uyjw{GݫĨ~G7#ZT 1&q0226'Lk6%kj嫫y-ȏ ;4| >Bzes% QŔW.fbn)b+wҧjdq6e=9CDgU[{ 2n:|R~ Oz3td'o~3C1^ v`di37dRyJ֦RvO(yq%U k(KL" l&}Xt3 9ϩ8gtNSӥ鷱uUũ#Io)7c.MvXu\9ψk*JQ?K0~۱:XRa6͑`<5\צ:1*:~U;_Yt$+$$Saӡ~N:s+E *{x\zybD|7+P&Ul#V^J(WK׹ybdo=028y8NQg#cX$Fgx6oY EzCVϪ00k@".~Fvk`_bCw{"ݻv:>渰>]}JGSζ?E 嵑ugc\n:T IDAT2/ï؉;#K2_RJi1_4oGi;5Kn֥:%i{yov~kC]aQ)3}.mU_vDeaQ[ֱ=U9P(J*nAg'M gmjA@İR!*Hl1Xd/]ht>uzw0*oB,#R.ĘصE,rf?$ˢ mTl$SOiYnHńOJwsEZ<`-ceRA3#pr*3VG <5b6 <">&hyOY\)k.HejSA עa[r4Bn(ㇳPƓ@ :QҞ;酡2U6^.sM,mmψإҠR|}=<@ ecR# .5#r2AQu *Ͱ+IVu1kc9Ԣ$ ISu@^P}fP3eCpc`h{!H^9hH@RD;:LFzOQBY6 ?Bj]dL&R0NcBZsI nD!P`&Ғ 9%d4Lj].l,jn?o3{ӲKtk2Ҿa1P쾩*Tת <|(ɚ0 @/d#كA+%49e:wlhQWimr+ns>9\ %!t=@Vku96ںO+cNeq uK0z%m5MT`l̅ZB%>Oڗ.qZ`ĴvYRq-S-L88[Fm{)?y2s'1}tXD%Lep cLJ<P120, hTvrcM~1lϳw s~.NX_@~W||gfGV?H wsͺ]`м%aLV!z[,jD] 2,e:Hý~3~EѣA{9C,lWf8Hʚ4f{\dlPׁ{>Ŀ! +QQ7iD#mBz~ZO4<8jRc@6V1ˀz@lrY}WvaM)Sdq[k9~^OXwή撢Pd4?*قg#I> .2I팆~6S ]AyLŏlTޓi3 R(Et4q"}rZ?؊ xtxcW{,>a~{SlB+j f~L*,é|xۓHOIpEX3{T5^b}k9gL A <̹`YёE=[}yf3x 0Ehvy)gb^eO?{:+;0/:%Tμ)+;vd7#u#ҩ9N/ƽzckd{ݼ{qZG 1z/>k ;1(^wMW/$JMY `DGM&8xў!go) !q n(a1,G6`QmcCAC n9PeE2ߧ/ev4[g}$u`J݄ίɨequ5qP"46ф-MeRu126L2(3_XAуk!2zc-p鈲J%-7zļ0=.N ;|mb~/pD:7R bfzo4+`"x>Re{tņxߋI Sh2O]Xiid[VNeR:Ӻ̘U%I8&(ǰ@-Pċ 0$d2& 黎c {`KU't-Zl Ʋ1yqx#46D Fb~7w%BВUO^ŇܝE$ʔf|sNxHG1^,8sB.$mv=~} O$ 3N`d䵘sl/!@jdJˎ=&9ͤnE$gUl ڥ0Ҵ۲ uezI `{[gC$hW A#iDՆѢHbd^6s׷z,FPy ֫36r@A "TM9J,dgGEҧCdCIM03# w~sxέ,RpcΩE;~ x4A<:4`5 JZ3*sFgչl]f331$ Q܁3ɛEWscl GkuO,Hb8@~G彑ϊlItE.Ixnoxw.aO{x2Ep~9TiDz̽ LRX">c]STƎ;d[|#>l&;tPPefn*|/Xn45J-!ͮoGЁA6M= )J3Ί͟]0q3W( o>s#f'qN Ŏ 7?ԟcIgp=#>sb:X\B.puϿ*|⭨4kB#uZ,LըfgQ/!BoW橇Ni 5-ˁJ %s-rFߛ5Ϩa!еIL<&W+nSԍ)F% C^ 1;6?hL m b^N}C6g|$(ѕy1 MzWP,;ԡ,ḛy)eaotOi2 (-4z-U'03'{k{N>< q6(ؚ1iiD`ϧ7S"F*;H/?iA5ޯix 7ə"vRtLPzrx\F?:]b>s7bs]]ZE1ApTd䍠M"[}vgc6}~}Ϙ#`76lI(HhLy_/۷ԟ}o\?Y;8~=b@m}$ڛ~?D=vINߏ9GPdSXyŒS̱' YPnқe*ze7ZMb0waVV kOn<4/5 Ш.I!/kn{&j46 ڀa$6 H` eq,qےQ̻7,Г-a˵]ѠF{e"~y14fFY?x|0w.h"/i&) c4+Н.<m_E 4IeIqv3`dKb@Veb@[$ZaV RXItK8 |OF"_0IG.^GA@U`е.I)8 )\ok'e)ER.{G lX kaY;'E #mrb P}Ec!i ˄;@ϣt챳bR`ӴD7.O5139x:C] 8WXHkn,b9ݽ/MݖAfCM6.L9Y@2/ vNR5m=el{ʧΆb{Ip;p=ҳj\RsW/(hF0mţ|]1sk %:;E[PSJuJeHcCd f⬱ĜK+6q_$׈gUm866Os=ØFEjKhCe}Bh 1dd%l2)cW䥌{ܙ? ,8* du-3Kw{f׌Ԕ 1OFߥ1wsꁿg3EF0n0|2%x,wRK/oX}cmzMHWо^7/5.}ñG$+ `)`׹oF\k=A LD4=9uߥWnaүa|l+ȥͬYDI9TG=In'ɽ tV lL8ө7K$Rx["8 آJA,|L^9 =2vD$iLΨDank7V)A$J"L;HzU06{f7f6406y!'٥!$">ɰaN7Ǽ *X2;Ɔ˃~JCs.@b"P.g~„M OK|9fPYKQY&WXz?W`[R" ެ9}$Yi!WaH00Ǎ/L;%ɐ$=F#v]}@J}Z]Y* U-zOwV^w)ʟp vB^9R  = |c=%YϪyWOaH=B;905do>CXH0- |zhf$xQG- N^=mPvoTC炛-b&A#ZyPܣas AAs Nmb4=uUkXNIOm'4mO,<"ս&8CFNګ>,TqL+9-^X\dU?V^#,Jx8\xX} n6O5PcV{58}PaQ7}ʅ)6 $&V8#Dqd°֦MCѮ~h"HW4H2HvLR9e!J&=iMmS1JHQ/i:8FtNopd" HM׺LwĽ':3~ŧų'`-8%3#R61 gXaER r\<SoZzxR{kɸ9t-gT w?xe2V ,ec?L ELyaK j IDATaܾW!>Ƿg͐aw9/<^ e U.^X2yf ZMYA~fG̞Aѐ[UpZt[^79*OLgaVt|Pz z1c @<|45 ʕBT&8%zT<ŞRkM/Q$v`xű u<a|\0Ož&!̖đ%y sƎZQ%MaN8&EXAᒵK# [1y9BV/;eBHtiK#&.1`9@ kEPz,m"cJf]kb@NZ>( MC9fT vWϧ:4 #Qrl%A5N);JMc[JBc d_ߡgIsrp^ vZPߴͣs1j7M10J*|CX~O\SVeD ;(R:Z:r[Tg, >ymTX4"2V 2EM/Go31pV:ACC<$Xv-\c}m68gas Ъ gyL hkPuTI*5tdE,Ƴgc> -M/gh8 oE1{ˌAu +,Zja&|[[-n9~L!_j4BG8c0 B c_9rp)1 =*.%xrL Ιb'BnV2$#3"32Hޛ(ԣ#>g1O37iBiTҫWVԠtA }LxE qO0kgyl8XF*-}/' | $ A6N9k xº՚< '{%&3 )@ֺ0Zէ9}dll&㍛ӁK+Q¼-{G.ϩ2)u^-_"? Csݙ^|4;)>~]W63MJ&{|yx_X7I!/qO"5 l)}.mG,tO+{/xՕ ?nÊW9*o;s /@P5;~C*#oJ3 0 ;yZZ+sÔ& LjK|[dn0#N/0<8y<!RѲL1OK"!1@CE)b%]1(G=$ -Ψe9Iaߧ"549l?k~+)3Ep}Z_-f`\jS%^R4 II NUQLeQ`ru3ܥ-i zMGQP4 {q1&/آXS vթs VĐ5)ƃdANW6usgX3'dLRKٸ de0'Y d)osi:bq(FbZ|..N̘cNdiɖS&Fе!tO hF1ʄKNzqhl:ğ;SfG_efp4m&›ݳsJDfX\O Rzr8 Εtz T>>ynkG&U‘Ľtb$PrY<W[7x2>{V։9nIq^lT]G}2Ntx_i2'mmo1ɬ؏8<^7>p6;ST6SX|.곽Iވ:A@2UZ:G: qSAjd) q"ϰb݆M`^W)Cs$04] $- xáߣWtkB x?A5/3!|"39F)d ,(Sdrx{ ;c'k, `Co*KtFv/̍-pCN3븾/@6ݣ 4Y"*W(vVs_u}^[WVσ< |>xcy11GOQk#XCа8` 3~-Hdǰ4>@j?_ m6Eg22˦".C@cA(PZ"AZW'0~Le(=\ ь }CR4ڟ:7BeiH5hL9źJ4!R"=jxf7z?KG]SZJ_w._֨:D0P|O精jo@Qsg|'hn7C^VwWO2hŵGu3,~J\N+l\_M;OYid54lQ |\ԻBS4۳Ld:juk#mR԰lz)B~@niMe`iƋa~u6?*c, 1BEԊtsld欗h(V,i,_SWyh2@u$Hniij}6m}2\IikN@3:$p00(`o(Qi~G޽jo :aXٲE"$jIAkqPq}==PRegt@ΏY&E@b$FȠA9.rgs\&IqM'D@frߥ1s)`@Nߚ)]qU)^uJz!)mRs}?!l p׫F6ef"ofվ֍2 }1̢FH6̾M03y4s _vbkgS_BW f=BbYMlg mgbl8*-N>t iй R 5y̹_ KԩHk9zeIԤy=01 <sMGqN")K [^5~8Jmq~ə`h7זqܛ{ ꙯gk 7{:ךdaIc7\B8ik%$ž|i?l@fټ^/O1OşCB1G +7'<4` Q. s l8cua"@EuL{Vza:6E_%7@ be!Lh%\D`&59ТA&3~A8 kQMk:|RЍ(?f0i""aӆ/Ӹ:ZJj6s{|236HɊi!/֝ql %]ӕ2.8!`tJK+nlLh-tpj_Rʚ2pMHgz4kν%شͻ t*|oTA!5:hly"uCF  R=d* )әh]~ECC{d¸Iʒq4W0=YFOR'K3(P:q+Rj+5F&4ƀJC2(]Véh{+Ԥ\x ZXkϰZ18%b`'`RX -@$ GMH絚E1I(M48r( u%ʽl` X$1{qك rxq̸a9`P#?H6}'k#Ŀd^򞕓Hw$ vsl {Om]`D4 Š'I όv I0yY)3fZCpǞWMGd޼@4ZalgH yͫ(,!I7MܡpdlIxLDDytH0c8i+paܤe(L~t0fLIi dy[ J :V5Ź^`T7M\&s  8r?ȠE ȯQW`&>(/  /X;%)MWS>伃7;(: M[٫z0>\&x'W\E2-nQP]x095.//r2x|y0Y $ 1odpW >|uX@޼<ҜPӁda0_\ç[҉("Nց@ѵI F,&>B8oawVHOVs-%]ǠlJ9\9 `A6mgVOmb,'AXX3!y_qY+A9M0sN 3u- 妏׽˺s8EU>jM$ M _ozrn7:8416FHDbxBɬt߷r7PdSu1jY?@ \17,{&Oi$u*jI\IWχq X [s-}WmohrG4!Ǧ#I#hD:d&Ϋx=Ogsm`c&q զ/[}v1n!pIj89LZOy6_B[k3p.1&tzRY#IȜYrqKͿSF/LQ_'3-3}d޿IAܘ}T׫ ue2[x34D1ܸ~| cR'r1_?E}dx |i- Y(iRu &G)+oHEFzin xTfCc_h0BMqZ7dCwꢬ@LzslL9s_)C82 ,)^ ]#ʄaMAxLV.\Ы?Ktn L 3ma&@a:~߸M.{#6XDcqh6?bG1M M 1a\ipԞ U27 [*-$)\gSvWynd%'2YH$&(0TX`!@N5M$ 6@9]/BL#DJE %3ʥ,jhLO(^чLCTaL\eQZ ,AzVԘ["Zc`Pcbޛ,t/M^7&0Wi" xBSA9ei }GcJT=B q$! zJtpY:M|7Gਦ^$ `dX|]ZXl#(sr1}{]4>0_jtw+ڴ֝^׍T> 6TbXθpYJgTi8#sPfI3- BO^7@ƒuȃq)\e],1*FݖPIzTTCȹ=&xF! Ɛڤ&_뤷|  ~ʨwy^I3"5͔B]K{7?mgiigY|uRMr};@w͉zewzZ]1T|^WL#j^t&,YINH7Z>fʶnsBiߌaYڥ 5Yc?4Mb=*y߲&q- ^Qs)a%59Q@<sZyaJ0267tSKMT>)XKJڹw pMs|.<cE6eeK6B\YG( )$ilOjs$zM~x=N/S Le}.' Qa4IM-)ې,xrV5HyMx3})Agu'FD#/(44EKicoƭDiOo9`kkԓZS5wmt0IٛE{jΛ(*^5u`U3焧L#)`TR3܍ IDAT؈L;v0Ql Wz/K3C5;>4`]4PRkWreo5%5ֿƴh5 B1=fFdmzZI {LXl`axtS# ,xjB( ntئ^XQv>uƄS?!&1'A2l,Pr5%ݞ$T KciXu'3e+Tq7> =e-u]s.9xz0[߽.0ǙWy_ #E*^xIp)?ǙEҽ{ƛOKg}>{l)bIFO>GX h! BkW8*c`La}$؇ݯ1jYdrHijS[9sNl+9,!F-DJI|g=$s݋nIH@U'ӌd}\1p6}@k% } Jr}&VlDze@N"FPpYd cС~0;BcϘje FvP+a 2aEҁg&p i 4Xq10728yTṰrz4guCz`Y`U `UcL&0| P(wAycfΔ MEbwaT${e>R)2rT:ZZ xK%0r_Ún NAIѺʿ.w g$TyPa>s(X"XYGp]+rM(znܰ>w'45hzZT< $"S-Z%wp"U^((C =՟^x:c'odO_{l*5F ȏ!>4f^@`(|4wU?hl@€A 0,9>Q)7>WiȴjM"bcfZc:gl}OӍZHR rߧٔ ˒MP@Jv ?д(_nR=,w9›,hEE. N,?ki1-1 ɭQ$"Bl/tAud -˾?b^)37zQ'qe 37͓@noi•|Cãp C9 YN"ѦjPS9Q'bv>k^Ppf] (o nNnռ:}:bHwDe@J[4"CL8;5<%-`@8Lk;拭ڦ"-e 9`.TCP՝)&R;l8L/?@׵M#/G( m/ cL~QvG˵| ''.9Ѧ͜gZRkAD)1lXK lh)B>d$r=AD`{~3cQTgmzCbbW=F1 K{ak?3Pnt)W АcN 3[KEASSSyMa&əM]beXn,Z$Mڨ`υ7n=7 k/)1f4Wk7mu)@)_V&Bs{T |g)$ׁZ|vYdK0^g9X>ۇ3;@k C O֐?#;Kzjl9'MWSZ}rea+s㖲x6أk_{XPGMMD US(n{UUއx kb,f 0yymiU_0 <72GMsB7:3D2 &i辪ŝӤS \=!KQ7h&׵V^\Pdaͥ>B1$|]1([lz*:MĘ,U_'cd1 j lh5e_&H1 ga-@|M/:;J|\ƱILu5LM`dcW:dF=Qh=53 3 4dZ5,+DlǮ6[%F`Lu#OL"<\YLCrBAȭfoIbS9lO!D$"ENtJf/6bsJ't[8XaF07uD`g?3n|p'dƘ33!)KCր@$]1z%KWn429_@P3ƌ)O2bMo͝K Zq>gjTQ)O?'mh,afnƪфQF|p#9h+'A38mI*M{f@`N~; 3IBxF6EX+/mZb@oQ t_g36}SL8EOrzV!!DNIyF*t :`MiYWo8e'n~l@"TZҳk 0s. 2>TH`T?8( L@\ͱݗAe)%壙6Y8QA{Q7쇜H#YyGça^?ZY]EN{L $'GfM- }qc?{'Zb5kmz,[QRQfI$+`x)d4&UkT(9]1+\c4uۘNϹ:ܑMyWT MfԴ& lZP+~4bJIKqQqc=H$I`߭12DqH%132=K>:g\͠ewAɅ}/11 C"!X0 p9׿o@ y2:5mR"Xid) ȼQXF7ňt YGwi9FIݽ%Vora~8IH|>݇ jq]ʚ) GhtIF6RH%S|w:̽͟_k5S {|Y%MtGn@c +ټ%}ZvLRht]W_k^ NL \'|`Ft3Õ 7\?% ,"NvOC_/zQg>7jBp֩?&gǤ-Mïl.+~+Rrd_䭉gX=6&xc P&^~Z;Gp[w͎%c>Y3;Xj"֋g]å:"a,W,9hZtz!x*>C6ƎBľ*֑HnZzEb1t_@P000{/>-q#t[rъ 4a9Y+lG]>e 9UFaVevQ1F.@B8c=ǔSUH/~ lfth Y7'cd NlOJWie+\KzCAuif.m`_Q6F CI X3\Ýq:0x` {abIj[骏x_X2̒rR *'Rwj,l`4u]*wَI޼C!̙C) &L[l"Aw?lP˅  >:5)]RXeu$PQe.d[",<4RCm e-θIp=#쳄4?;z/.m|%8^mC +C9|rZ򌍾M]w&)"W٫<ϐ"4g ρLy" 9%k}IrEgkD2EUo e` سJQJ׀/f,z hN$+%&<Ӛ>A"a\LQX|,shCrS|(~Trl,SO+A!S`]+z=7PFZ`Ry){ /O4JJ`4ه&N|o|?sNzr\댠$l,:u+@o (`#Ms|񋗁O1c[XTn¢Mw,VFC1AWj_yRW@y^#z mIXPalVpOOcOGq)<upcl=0h><.}sTeFԮ9ap5HCFшXmQoyEKɚĒMDޓk~$ռ/9 d =M3`d3-CB!y|nxK1L{4^_I.Vͽ¿s%J.r2N1^SU4O֫~MLwVI7 <Dc#Av6XM`A,7'`9R z0B(ʸNn̪{Ue\+CKrޯyS=X#?2^-1%ٯ옐l/Bn`gܰa !XGH-&QL@|] Ws,5tݽ舭(.I"`@6ƝFͅ+chRF[ dG\ڈ)Fف]2l /3>af%f+><C)lT CYq}(1c@dY s:t&"#D6b18F`QE0@TJJu(~Ra- {xBLgZv5׳̆F FfX_`phTt}%ubvI)7j9WKT,FI1,6pVܵ-zo˰x}2OC 5'Y\`DƩFAm]B|=kTol̓}a~Bl^ 8665t~hӯ.i^TBU.DpMM{5tGf>cORUnf]jg!pƑ< pE2WsGt-b"%Ä́&C /$QD\6<0UɚoP18X c s6MXS*WF(7‹MhSc M*xl"q>[{B1ܵ$&$zov)섔k¡JZMA]"&oJ9;NkL̼;brcܚ/ d6 c[š{آkFӹAY;{c+PϞDCE~z{p]^fpH/}[ 1m(@xc8 oT}bxC|+5Đjݛ>KKCD7 {LHMT*YW0j;?R}}@1Z藭IB]l`fZ 67u%|3Vf 9{H]Q-lZ T; LJ'Yўxln{ʡY9#-eDMF "`V1/gx`0J?1R:(`p;ۮx$>4ܣadir >4& aeӌOA]bbؽ-n%G]O,Q`phhu9KD*bɄ5բO@k v5XŊ,32q\Z7pluX ,'K@}RPʺuBO'O!ӱav8yYx ¶N眍ɦ @X07e؉E'RDо76Lɤ7FJFxY(S"3d)ЮC7E\_TfU]3balswV/#DN(H8 ><ⵀ њk~/X iz{1PS,k9+ IDAT'Eī*liWͫ(a5us #2 S_fXdz-;n`S}:9 McIlE6{cq jvթ.,3%|f*AG&|0}:`] ċXCZ(ݨꞆ‹uJh[ߧ:yH=_A??oT,9sZ5izn{ "N9xNo}_w?&I@1  ^1n26گr5х}ʸI;sUs*%1N[xeukK+R{sn|oXLB=ONƮ !],Cݏ#e_7#ax~#t)U;KX̎}aΠڿuoAqtߠ+7q Z(VƮ+8Mc"KsXwz!ka|OC=|m,Q&;xO @a :x% )5șJh9yJ{GG)qxmE6Fx M_//Xb&d턅~K(jTrpP̀/K%wՔ1ΎP`c`E&Мҥ4d"" r1q*F>|ZZhntFDe?4 R Q& CFJ t 9&KzA-#&sfZt~˿( gnc6DKi5j@GiX(ϭB'fw}-ӰnRϺf)t/xf}WJ8 GchS^D׋_Oω܍`p4P `f=_&((ƆH*@ Bf 9JX3r/ӦEF lpIQ0{~Fl/yķX \~KFeEKΖ?h_Үd0lIR224zpmr?>(xIs{X&1ž5p?N Md!lT CR[tN9-iMB'Ť2>0aӮ-Nsӫ3 o* 5領Q LoU`_z@s ,Z" aM"K.((wFgcm+#{ji `sus\/#,Kʴ#4#SSR ZQƤb] e*6XQnܟ2&(qfʿ74bʂLke8ݔ '97p^4K.RBmU&jRH6L`=:{7H0}o1Ś 8$ 'P&Xbo{R%!WsaI"Ŧ=?W%]9Zs|cփ6tdvmBbMK; vSN|X;` p h\t8޳(ԸIJj{Z k&̛'W@&D+|xPekwfEj/vnMvoQ'`²d?y ѢjixiF35|xj=hVf`1/ ia%&hi'9e4NL;@|b q-|f1ψaD3$U\/Hnk |Q&M`ANZM.5PdKXB*/F z봉:3DRaqT_L0 ZT)2DJLK1#f \,LO3#GqD",S/ΒP03GYnf~rտ@xL'-2 \ɐr uмlaEp"ΜzU<$U&1 "2͌T 4 F+fLe&yɉ{(trH^_R&gLt2' $SqS,![erϟxɶ>$ >4HVe^ t)*;Y@p)[t3`],W >\P·lΤ0h(CG)(:$:>5Q\ْH:86` "-v(<"&]Ǚ+ףG 5:0YF) lkDzbp-70W02,[g0g`c/4 ?P Dv7OK&!Ą-@g @Kj13Oާb?@xh\UuJQY V&`r1]MKk,coN'i2p7`fzHL /,R4\׃Q?LF'IE)rwAgReMP:$?KK0p_Y#'!k57|"G2}nafnnZ$#M< Oj&;H 2GӡH=P~ϙ~=x`3 ^ J Ѕ:(}rE{1F5޼MngsZco,-h;EZ\7i goY'LI]ws9M،Fa{*N)@N-? qzjLMa&ݣfaS߫%v)|۞(Pɵ9*pDGI/40mI/ݓi2 Xٗw]YzgnlNϔ `\R VL23x4#y|2yF)2O:%gc! lWG#C&- =ƀϧsh`>1W:uWjo&+1fJ%35mi_cʚKRډov49iGO E7I Lz' GT9>bi7)pbmD͉6aJj=|dvB[ϰ1wI5lyV @C$?1o,k<7(}mL:ZPNvw4taf~uf{'6(UV#VY2 Da\;Yq nf$ aVڱ,&!4ou@~ ȍp[C1< A`3hTg5/ )MI0k&96$}8τߠ{z[\F6E2wa2mR&\4IF^q9?u|1fNEtHYӷFqWmM[?3JY4wNbu&֜RjNՖj$K'̉ VvR `f؍~RK$in]Nf AYt`[( @t/46 sb>7ălޤcYa !#MIuX=hq>5~n>kAf_C'VE (M~)ZxSK/lIW^0(72h33HMΩu& 4:+pH.:R>zbMK\ـO*-?0Y*VXzS nj;9n\7E.@Q\yܬ드epTt }]<}PK@D"8с 5 Bo`agMƅQ` ZC@.qU2,(Lgui|ZtR+iXh?[) GͧLYLHj!ttPK=`=A[z(jaդ_"3!L_sLt"A3kYMBDHCGq24>Dp Иi<.ƿẸK60!%R63 eM {j sg5S ,5EhD;'\_ @͐dTBK4ljeX8eJ~LgR1/tU5w/Lol"\^԰.a-ݱ\cWR/Cǫ/;{xANu C֯{75ƒVv-||6$ƿ}V9N,)lEHnHU)4 k PC\QG85.\ZeKr{X98o3=z@&ia$^$QÀD>e"$'DtLm*S"o<Es=*ԯD'5לFwT22Y'`Kje擈g S9w3ep2cN^!PgӢ"Ace)\YeuR] T/TL**+(\KY/S"d!N^0ۈv6^yb ǽ+aFr*b8 Q4뙸:X<ϫKTqv:3 £' #vjWZUtU yJq9$ƞ8F6ߙK@"E{[jQ]2FI]1G6ҚGv/QUm&*H[*v>)g3j?1>1HE3Rz?SXwytlWQ)1oL^D\u n.鈿ݧч/nOP$3ϯmzdX"!x ;߷~&n'_zf,HA@`e $ ߩ+c>L]ţDcX&\aLKLf<9' vDc1H8[)3L@t[VлT݋kpsJ:5Ft0rCex F %Չ 3qp0' 쓟å!׵ nE\:'5s2G,&GxgBŇ&?F1@ߐEa3 qz ^K!ٚF1sl,NtI2`Ȉtǧ5~I ]gHIyFEC~C 0<2M =-&cj|`༱aa=hK ީE:fgvE`#D}-E˔g0Y<3n)P 3@\*?1%.c.li0{c21vCK҄d*Ur / a9&iΔC\GK #NMM'y E 4 WTZ<9k3q8Qren➄>n 7VmXX {MY%lS<}V`he UyeZ HqNW m🀐]nx-c$>"<ܙV'A];q%`d A @No_"KQqtĨS59M0f>DUh kR}yԎi6:meٸSFm8X$"&`wLP-VB*J{kn tBL&:|EEYֲJ:GZ\@{}c@ <ΪthiuxFܭMb){dc"vNhTI/8joK"Al =f)ξm˄9yꤙ^)vNF}/1F^dʙKeVE4{'z=O:Ok)1%S9Pxݪ31JHڞqF[3 ݗM$j@b>5t՟;VC]2qcu٘Ɔ FooGƝOd`n U=tKG>aQ:2i4-kkثP05#:gawzBLZf(/u{@TDC 3smV7;E ZTZ'S̼IĢ Lc͋5E)[K6eO5:h< 1LJZu’vR#kQT @2`Q:nU})-v |%y `KLK2 f(9k>((R @YM@3V)ʗf {p p {*!2Z\&¾#H5"1,_z@Y>.#H#+ZS/u&V&~/v( 1()yUoW@39Snn^kx+fI`+SC70hypBKYxQy>b00O0hihJXEL9ǔKn\1XRxP;MP]̛R'8>48:dE֧_,@L*%Rv^[>m *}m^(6Zu?\ƀtnCT`[hDaD1 6i) fڔ Gjp݇ M,m2Lh T)I4]'YdǯgVD\Q0J|V~jhXeMON'`fy^>S,HҚU ӡ:M&v30cF7 B:g{&Z'눈+>iq—YK;{s6ʻkb1iA n^ ^Tv&1z?zfZ%+;dшS[1[FblRd܅ZWp5_p6So4V6c]>Pǽ 5H^y-F}+ҁů ۹!~XhtnQOAMld0`,KQ#~d̬\|_sFZ^| t) 3W/"*fDC6  F`eA292wk|{b4Q"i#k-:@a` FFfVya荞ńZ-Elk˶XZ 8ȁ!)p1;qzø{jHl*0gS0x*k˜ʀ m,d;!o{3a9Z`5 MOP:%wZ54FA8 }q[iz$ޘuI,҇~/wcuu^3ቘ}FEήe} m0k$UzU9XQ2! E а;2 NZY: E{0SP]]05"-k]` a^ 6`.Ί¦qu V0\HSjŵCHQ]P?W$CW[r{JVY0,R;-UPA#.LsE~)Fn-nf `EB{T;oZz 3m&Au&kؐ/{Oi @c>L0inV޸V&D GLxHc*]J7|xoɩ MaX=fW&Mɷ{#k$SiFIJ\5ޫpmGV2dgz6 PΔRS*E$:m\ 9ΐ+S$fdK{08D|<< jkO)[M = .?dnb9 2Td痥vEe|̥ G{0[v^,¿:Gvszct3SmO=SR`NUwuQsH鍨@v3UJI4L+5Zhl,:X@ dF?Reuޘ~kH1``XH8s#+RCu>-uMbrQMsZ0[$x=%]T)43]6)J KMOGiK= 5zm" DziNR>Wff8b? j ][C*8#}0m^h2lZ{ 5eFiw81cfɰu!-&h>Nr eތAf [v)w2\6%^K;na{^EcurM)-:Ե2+l 'gZLc7Lc -"5ɡ:wG FiQm߲ޙ_N^T eY)PDgF% Q}ߺ<.ErGV'jb9RRS|P}S>2v\saȘn75w!OqN*|Oer}&P+wC0KZD)I.:NȁOԘgi?yD p&jXJ $r(!C.2JN:26 zmd A@ŝƚc4syM0O-6u>@MWڀkS=Ѡ;t#ޘ½i JJ`v3T'SŝK\u.MzΆJI&k2g2̲Mf xgs8`)K;aZ,V-9-Gi@j%cM#!!넊o3 R(W.Y6y-{_θeWWu5:Z$>hAWFWkdRoR7ɓ3(ܧ3M Uw rÁ@/|W>La2{7WqXvvj{컨 sggy^89sO"jr./ izRhӊA43QF :-dy;GFѤ Z~neiSqtпMwmiɊ}/c@eq}4K+JF6SwTZjj U[gռН4:u`>yPHhdt7SK~d(~MaF*JbMƓQ w:y* گqoL80C܀r`o (zN5*Ũߏ܍FlGTјoXw=dTSP1&OKiXbþ吜S]̏*@h? 6R6ֽa5\ɓ!|.FĮ1f/Tzpk\MzFkN1J,nvmJRad Ex3Ę@0c1}{GRˈs*P'OH!.^'(kxTiM> =J&l;NkHMCyZoO^"|/.=aH$'TNFOzzNhte;3"h4l7۔6piVMBwr&!)eMx"9=d7?2~GRkLb?KYβE*3z f`*Q$:6v3UUvM2)Á[.6wEWhU&{66;c%p~To.s;(@d~: {7M2S儙&rXGlMwͺf_|<1OxDxڻ'/2C^љ>@AL3hl5=@ ">=zk!T" +!8NGf64e%!/1`Ԃc". `[K4fnyPP7tzS Mxii,wG[K--iT*Լ7Z-IA,!tF}DR,,F6ijWz<^[4)0 f'e񎃎,"ґ_B6Lesp1 zbQd}Rh$\lh`e`GMP xXM`fJI@rcht! Rbz'Ub_uȮr.Q.3iM\։fij$Es[1,5RL 1@{B!"P+4Ħ^JưI!O= ZscՂ5w43M*+,Y%@KtfT#Ps ^3l3I'T_h]$š&F[:bӌ2@0F&R0Ҋھ؛r Դ7ӽ[h8c]T+p@?gnɍ@9bm5om9?McU$+d;XW2%}8(5M0?7(Ouyg߉nt@, ES(ԂFɕ 4NK">\ .QiMo\ 9]F&[yaA񊲤 Fۏ`h?6B;bv|ie]s=@7Ic5~>3 r{/01D- 9l~G7po5rV#8޴Q(0'\Tjե 'jTU|4=Ç&d/$ ) 4 9g: Z!230ccb@PVSrb{x*5OA&IWՐݹ?-CkE?a`b8MiTl\L/US窯IiTW)H"8oѷ_{.mC!^nKAEZn3śS(ysHoRH)iƁ.4/6՗"ȤGh=dkDVۿ[E )h3ҤQ5X/6f[ΪL za\O%b3AL:--Y`+;qwf-h/3ud 5VQT. T\Bbtt5WWiH*)9abF)ܬM_qZHx꽄vOHL s$ JM>GFS cjQQƨc |4ӵi~ׅ\!pϐ2: cx {,\gDO)NkGhFLsNwGuYסOXZJar &E3w諰NӞXsuTIC.i}4=|ű7M :X$lxڧpGN{0V~'Vpe0qzoO`ט~xCEi~5XXc]VyjYX5]%7y*C^<7JI#VʤaXsU ~cwwe?</'V+v0;\pڷ{呑z|lgR7+iQ;[cy7L}Bf0Pz߷Ϧk~} g$Hp[Jkv-r\7i#e(, vnPV/3Mh"9h)lEgXJ1Dk,QkLsJ ;=\! R] >iQ]x 4IJ{tGւ`.qIULcLzIR Nd>i>z)t]lA_.$D;3M--"ffH2Cu."{100x?.(&dR$XR}VPqj30g v\lb15B:L DHn:SP]T֗@J$=I.Hs&.+ &Z=,E=?(4wz'\-Zߺ'vxRob(*ETV<80LQ6^Mܞ"zy+ i9d!/s2əe&}nXeb+/,g}b 4Ao pZˊ޼X0|.*Lvⴤhbf &Tb {̦4݀)/.Y 0# v%w.Z1 jRiS* .}8z7 4WHcҕ5ƒU!‘V Jg|%S:@5Y9[dURcOd S 3Hfѹp*|;Wp0 h ?5>|x b^SAP#Uw*-:<>!FEk"[L^O-D85ٽ-1HE% sE!ĂBMaȘU)kfK7_HZqoczaa&L f_ p3@c{L󐨳Dۓ)>-]@SVpd {5ã1 aEAMx]{5P`~0Giæ."_}<e:M)38TBeH1\4Fތ:_&[j!P0eyB݋qO3:(.B S8`^mL \tWߩ,l~L@;~&nL"gqKғl3k#FgŧQҚX3a3zEσ/5Ϯ}59{6K|R3U۴毈ӭ<Ҝ6v(C lbӵdX{5J'<\Y7K h|fƔj0z!iXḣ >0i;]_~* g^f1GOLNը՗7vzl|N6I!&k.l޾i_Œ{]W:@#3$rߢrdn')&Ϥ rV_1,5]; ]a1^|4lxG }Dfy%}Q>B9Y@ NЦTrwlR[ *ڄ机A˱&T$Et #u";?4g^;r_[i漃2#Sޝk_*gC@n).1cd/Mwq1Vrރh}NvQ$q<,-~@`S!›"4V Dិ%z/,F 10o0dʡps=fύ8}Ŀ=(SW b .ۤ'BX?jE}a+@4 [@┣vDݟ;mIMnvg."/ eeuDa@͌7{~'cxh( is:pl~ə ;AJ_#؋ib%>]2!5-8=sMtdnvK؋`!}Q+lO=_wGh|k=[cK| 9ѽ0@F,k]UaeL>?@c'l "]S5QYP@]9Z<@8Ț`*dIIHzP~j4. fG zdz,hNFE"~=FBRhnn%1aՁie\8Z\3?$}&Z `Vn~fϠjR/'@P%6A2c`,񻿧 K,}8}X@+C&,2b+èx}ִS735`5фVoiƳYk#pxų5q)#^b郄e;220i\k*͇?kӌ8rW|e$GØpT~>taaN9c}f XeY53XM朑xzi5EtPD%)5ƓU0p3hs(c `&s?k7/|O" & "b(fO4uq 0sj34gcY\{~kRƄ3CdvQC_?t tly<zZڏӇT/X5ӟ'&}T) 5*1öihGmNDb;>|ߛhe{gd$;pNHiU8T͔P1I/4x02AmNlzﯱoy`t Ri A7-h<3ANPS [k['}9R`?3wq:͗u8#LՔ9Cz3md1dJ͛emວ"uJaZcÑkmuڊ"n7 n|%5ZNHC'z0[CݼVd D.ND34{@xt=H+N!ut>dmRu4fb+f1==blS͖'/p7\ VbG~y;٦Ԁ ڬkh݌xh2K{Ox)o;u:~!jLzYw+FQ W+Ab-7>2nTD/Jsyؒ f-?u4&tK AkPe{ov P 0&dv .QY}BFKIWG9_I;0ceGGf@l%VO6!e5R/6J> |ui^X5R9PKFJT(h.56x kRpsCĢv'!Vd$ ".~IxbBvW<:Xo4 HA6 _\NKs``t->qBe{a̺vf}aD´/*I,)0d {U!ںn+%NO, |-)y$ hPL\Fg))UHZM?Ԙ2jZ~?H( l ! %\0gX"-?2718riVƧaત)0>+UY+JM 3&,-yC)lv&HK9@`;ST )OwfCc7h0ԐdrћY 9]z0CkwVqԐzmU˄7QChYg~eKՃ*\1b3p!&U > D@4sb;3 tEpٺ㌤d" Ë>iHWUi6>o xy#ϼLr^(B Q:J#@DM,ǥ;jaL 0J"."i`[ 7^-`jMggqcg Yݗ\p>=k42)J69p7b@ ,:~GDwbfBR-fAlɣF;1Ŵ/!`40_8-I"5MJYSBH~+p?뿲&(zV^Wukkt/9(_#| T\~o$LS(d_:Lr{INOIWmxTL(y~̳ c1Ӛ|h4WDi/tn{3]f]cQ)>DRY6 @f?Z-ya Kj"Bj_uS: lw"NԢ:4v;O,uj2 мIȦy43 {*K ]pdV4N"P>svGnI cLg84% Ư1!rR:RZVm9/}C !/5 [M=q!MHU}XЍqĜYxK0:R܁}R p($o})y~(Kct-2sZ0CqR1 aL+zQ+14{R=xP KS:;&byeS(:5&x*4a6w]^pJirB S5O`2ޠ$my4Lr[%3~4`Sd :s,hn,^NBMl崋Qd oީ hGݝ9$/P[]-W025J5%e)MD|\'sD)DK!S@N?B]hEy0(+bVP4t5@ܢOڥz: ]x,{wBk6)%=N!q ob3p^,M4al>YPbTHm6i2]| 8ynj84Z͈2Fƚσ6\/F$+L}mr]A6{ D.HZq{ _l~O}R:wU7[kdgEӄ~g^s!:Y9#$DLM/Z[k8߉zhҫ2pdn6Gd+^QoścCLeCgz̵޸ :nYW}Dt@ʆ9M|mK1,NY}*u z\3 Is}rk'ƉNyOlJ C@"2`շ"ϸH0ܨ,4w7*k cs9*y4/N_R묧}:Nnʠ^dܕ)f-I)HguXVe1߿ dQ}NT%06-a|Z0|<ݝd_ޗo*.yOX26ϲp}@`a/kx`/Y8HPy|%ѯqYlq_t]̶'L>LF6c?^+3viUTY>×Ԉ:ǻ#^18\++nhcMnMqԐ9in[ } U2c\{>KP-M~Jh~oqLГʀ0jttiox]+ڼ7=oE"8Uwh`еN:ס=βib-msO/5#Ifyi_VDH9LfA VX@Z#W2馱jHLc:]CL}6E&}LvO+ u`'ű38ΥF&5mzv #f48bwk845O]:YL Prb!p8i}r0ВtK$n~ lPNm-yq H7׍Q`4&cV_k J 4ws$"ќ~w`Ν:TE{vohJyɨ^3PȄW4r>K~& iZ$-Ze +=y`6,_:QϒJ,Z~fvJ'O-hE #Es 7z"4vop1(wt'qI<E.=Fn*jFT; "^Y)m K ]}62XWrNR' R1"Φɼ3j@dpފ5gR֬/>!s%-#| 5[cؚE2!Aʠq@ߧ|s>2>ԁϧn&1av%mzEl{0U=0x7p@Ag x@)ƕBH7 LҶ,d,߇meX AIh:=.n7A@g\?q]?\MU /^0~:aD_ĝHmk^B^oiD7 6idBEVZSY4l8 GA)"cA'fd31>$vފG 7(V9_=:t֧=`uߜRT5 ݜpSJM4 i'H6ǜ&Ot*_S8&4 栻\+5:]az Wm֮FxSAD~ t7_쯀!X71AEkmue:4bOp\c# ϑ kT")guݧ'Aߗ]iֳMe\P\CLiVֳ'/q>ɰCJPY$bm4FBgI5Zs ^a緆mBzrpLyjbj!n׬:}ͮOF(.K1 f,1GY|l 0Qgq7xXDzƚUF)c4[ koq?xԂa'M>4kMG!*Lh\Y>eA?ǺQsjfwuHK"kKPC0 :QsÞ#G IDAT iee-)U"Bj%G*F~^<ݙ]F|ϿC`z3 1:yndQM'ah#sŷՠ$ 8@$j-ڊ[ӦBRj}Tُl~6ZќlIҐ|ʹ@J g9nx2f CPM?\̍1Q.L's*sД~-0 nE_(sCݓYQAMMgPZw;]{ݳy)QI9[#GuWho4h&Ň ѢUKwDťcAU嵤{qXEp-nȶk i`YjMRG] 9gXxCC '0 j 5]>4H0hX/p7"QZ6_>,l|>X.Nԃa@wlυ 7Qn-jyy$O*bFZI*#)^4,&'ސ7e@Rk)oo vNr< xt<t \ϨkJ\4AII9@jZ9"pс\z Q'&_0C#:u]y|ܸTԤpo +b{]dd) >֕]~5E"͢ffwN"8LǙ]2\Z,8&66A!vDb׎2a>䅞&JKP` !dZILu#V.MqZ#}d' Nц.̲6~p1nb`0R7,#3A%[,?YmZ^`Ӄ![0g0SA"!\CiUgn9Fo`c`yyIKfM{uSp27T}G=ڡ1̭K>7yHI0VuxL4'CSk;ҭ60 o22.|1MK1VbJt.'y6Ps)U^ܨXRVå@ ܀{N@cy\&ϥyl4B?6LnC?9N~p T0) Y HELY)>j`Sz)|]}0Q&U<= \Vjub< Kc]Ywc d 0l ;h}4P?p~z`[i[BFLc{ʊ=So>*c/"Mf ܅Y>1a%ƈ3pVX ( h5ASTԘ̇Cit #Q_Z·_N gA!ȧ@y5^NYB+.#xiSrH <ǜQzP;( xPSJa(+)cu}t?kM $mRްM,wh,RL ?Y0ijGee@)ENaMACh0\_4=1 =/7 %nΚЦS朡2YVVz(D0Hiߝ!r=ś(BS`S$՘2]ץiJ ^ԔgiOP ,Oq/ؾ|ٳv MϥMB/LHdov3T}TΉ<^Wgʐ^=~#ɣDcadI*yPtfGW/.Y<=f/Me׼kZVƩ\WjĵozVy3qɕːo}l_vAM4Zm\_R#Q19p 7x HWNa(&M(7Mz|R  X`&\oƎjNΛͬL">31i(&,hѢC0שaad`CMJ ݝ{)Ѩڊ|4L>> rqUtz.^֞):sn>ט_n 6uݼ#`()JNupAo΍2Iiά! qahX@?kaE`8 0\@0 Pa.`0uI elJ7rHmHT;Sf}C_^εc)S2KŌ 1 '+5X C${ RC0dۚ[ٓ1+9Ի`?JF6)ib˃c`F{#h< #~7WztkD*K ,xpZ+ySh("b<'iَ 'Ѡ9܀g;0Pĭ/K!5e>ٛ$/hQ1Mh^T#DWB#1n&N&y =؎{|!'0Ei2am;Ac6M9EͮvXVc c|{U[5_2 Rbpk}76o4?wai EX46ع4a/=O:itz\dUYٶQRtcde/ إ]nb{4yj*|%\~=T8^$\X:43w@j!|L^Oܬ~O68$%Xx,I-FS1Zuر+ Gï91BzZg(Lʨue~_٣F44!Ym8DBh!?_{P@ T x 0Jfʤ0̻\Sh& /&# H75+AG񃣲7HtN|nXV4~ŧ! Z]++Bi)SNd"=. dvto`RJ-v)bu~s0ytaOVOm V4 `Ho#coNK㳼v(Hi&rkB!ME3%j˞%=Ԁ/JIQh<))_ IFVZ( O̘R>J ȳPU}6xtWþ);j9Hq,_UNG5JƣŢN'fHD߻5 ΖݓH(0i ۹R̹T uB /{@~׉z/Hw)ϵ & crsJuEeƐ:iP0Rir+gQYZ*ܽ0KK6q5Qu92S<,>?uKD4^Z`!g9v$,i1gME(=Ǫun{*uLJ |!x~Trfyg X4#%5^4\C9;E'ګD2|"on(Q{1>bGlzH  (Gn Hv1Ø VՈD7 Au. r"YMpӠU[0.1➞$Y,Vxp?ʾtmJfUtR\ҧN:˖( AԝQ#%Pqg`DFD}e:_<9ĥ0~\J?59HaCE "N0^ta24y gi`C AoxGٸ?Mo頇KSs!mZ Rh*Z(;valB @?Sp^ @L}b 4ĽgQےz<V42@] 6"~MGl|mRBV,M5IOSmxoiy0ŨzM\Na6M.-JыFhV 5Vd[#7|78bh1 <>VFF봜K!entDzd}:#O`7"(fm"qC;Yx(u6cRi1AD}'h4m_3U."iEk~0:P!QPMՓ!KdMUsN;Ẇo ,WgX"Yemzz{n3>w'yIe{ fk{V-,R1 rF $)9@8_@4 +|d]j;1ƌ1-qcC:fhBr wOHa-f>=G\{=$N7޷3xT]-t10H$m *?A޿^C1~h7R46De>(g2A~i?Fb_XXN P f""lcVNcL|EKcDp]4*AMP5շykMc ޴D[{ 3;6_4]+qah49[=Z$9o~4VisDU~z'ӵ8M^:|M\c5/2WۢYJIB9B.\1D*(br.<ܵIDi;an)99Q0" ''J-jʌR@x"Ғ Y9LEd[{ŬYZslFP^IA!xD,Ex}%S^*Jclj41d_)7`PeZHsѽeB%P~2wtf6`SN\a~yu\ýA&)ճjԨR(>iS2Qɨr0P}&E&0$"x]7\sNW ImJ 12 I8*ima·T0@\ZY=SZʀVymFb߃tаH|PPˏԫ{\b}^Zw7UЎ\gwO1"T,N" ~xR8F/'Ob0EfJVI)EKاE(nc4C) CW~I @q_pwW]7A1Z兑f(%fPnW6CJN3)6NpoT_SùԬ!]FgR LR4bHV^,eg+,< YATSJZ'Q9@"X7ḑzw4)0eѪՊ4:VM6BãP "DK!}jj{7LHNy'QApXЅEE [ >RN= +os4{B$eo) £X*Hέ$D$NE[όF͜PѪm6F罉E Z?p0I1ED)G3&7%3Lה\+h4tTj= ;}mb #d7Xg`IT*c%FOf+(Ši(&ET̴h8*,2g!b+=| c3>A31u/F'UqaW=,dR 1&ut1`l&};ҹ^}9!ph̬ 6Mv6@y[W\\9aǣn +S8 |܁]v&yP pfVI,<ӯaQo, >Gk#~p77חJXuZR 0dPz@t:!q Td~߳]j=9P]?}jx0h%&} Ýc|~R e^Aw,XƵ1\2a ET`G$'Ș_^Cyu`=5QX|Cx <}7=K" %.pYts4NMpFzZ@@pntV|x1!oV*lm,X ^cdՠ@zHC:IW&M! 7 ]mDzOŁ Jj)%^5}_iٔ! I D {XOv>O.uMihLpr&?{5+cuz~E@HQ }zaLTY&{veepUjJ\vi ឤ2(_;#H=Tvvږ9a4;>?)1 f?eLiLc6X[Sʬ$m=5+ Li M ݗeָ w^[odOӭd`4uϳv3s,] (?SjuGv$L(|ifKD|wͧ i>YŃD6OUzsH_*rTBڒ/+Iʾ4~Ƹό3r |lˆ1@`>.OF~ l} ZJ{B'ϥP DuT}NL{}f~=|>9yQ!Iitm@qF#lN|Xx4(6=]S`>ܡBÀbU31\'L̓4;bxڄMLucgF tQmc1eX{Az"$ΟxN" iv>0Iwi 1hMuZ\u 2FaΌhv:¼sMj+C4|jҌ^!iX'sްO pY3 K EnSWSΠN<7,iwq.71q0pԺ}ǺKbcou@& y x왥 #%&A5lSXSŞcT8Ag><` hkeg6[9\Z`5\X|Gh5OFG{s.C bzQ:BۋL E`EU\H?TNJ1mDd,>X ___7\^2x#Û Ÿ?2`lM{Àd(qKzwfU9&&{g^T6%a,2i"z(KCbgYpY"AڳҼ8H?Q;<0yeIlrR$ʬ{ҍ3RD$o5'ju]p~TD ԸoM9 *7U7~"+h&`Xeh⾁5< 5eƓ5E#cEA\ ,)#} emsrk1Ji#`̤%,~/V*2ZnwT6I4 bP% ;k})' $Y`6bY}AKvS̴V8LiI6ࢾj';pF2*Jnk/ײ37b0nEHpIRY5J+׏xv&D|)8M!X;.F7=tcN|Fs9 f'CAtt}Kq5bX0Rp35^+3}V3OSM*^H6YQOeO沯&jJ% @us!k瓪ޚ.M[pԴ׉h՛'D޿-9l4H)_,MB  ݰ8w\11|IFү {.{F":H$y%T 3 Æ7ॠF|O`,gȼU:2 t30P&;6c5CuKox 4'=Xz.!^.JGalI 5AEbutNEEqlӇ N{ 4iNXtz@jvZ=nP&|.Y~˦ iE_C572J~S|U{IX@Ƥ*6a4`@7?13m8#5iHh0#Bl= ķD&pǩBDuSnVhן|90!kY'gNlhyTMfA.pFU[Zw,eHҔAxh<0M?XJkv T,5vr"'gjPN/i+iA!tЈ DG0XL)Ped1 /ueʣdN|TBźWYp`볩-<%N09f=}-6| $i3ě+ lW/ukE|tK8 a"U Je'T|?=wϓSa,rgPKoa19|#`{˾ iTIXϻ C9QIP74p 9@gJ,>S%cԉ6@f?;AOQ}heӚ% nH2L>ƼW LA-w/Tk*M9s2С)}(E$4n"]@.rK?2gȲSww60K̂B2B ScBjzOtuMXRe\P0Vm&+p,BYdF QcLQ13:j8-(x,5ޛeCtN5>gs; r3)p @ǒpj?~807 9㌉EFro4mP [8  ̲kh' >(LS7HY0Nw"iwR. y9!eܥ)q^O1@#4?cX^ZۄT@Hn%1Ș=`9Y#MlA1BScx^ɨF#.a Rc]&ӦA f2*h;* +M4'̜ TCZ)ɽ<5jdJzFt)[_^w&.M5}12d@ H*vL0Sv∴o^iyZ3&iEA7`5 ljh84= sߧ קa>sҐn~3ب,}اz-iY?Nϛ7SSR6mXj$Y"n(c. ԑ!>+3HZ}M!ib4'u0ϞqV ~s/{G_#L'!MK*]#At[`kc+͖ZēhSG/#u&Xό(7i9úgT,y5Q:՜)Rw4FGDuX{ӝѱKdZ2t"l;ĠO#'gvNuEg3.f'f{C*9rdvXvOXY`9 ;zp`{5-M QR4W: hZ!4佺)PAGDI!r[T-kcjL`:'S峏3+<}:.=\ck(0wj,k2ťF>*Ka uť-APt q,0D]jC~2%TDy㏉ $+ >2DdQS8y>jy[W`sv ,Noy~;(uQ.w35,H3cn10Ol_ ؕ^Q˚zm!q}\'Lg1£[3X{~vSqd "c9A /ep|c5/b@n 7it}22IxzZ;(i3x5oD1&끹gH[h&VWHcWYRH^Tn W `[^D JPԉY VHW)6{Qܘ^ĈkǒLp1Y41h^/\c3@-ts~)n*Tz#I UxX)435%iDꪮ䠸g }υ29j4 `8h~x9N,mJP?(1յˍڴQPbN:+tO?t{77}m=SWYT:{nQd2'4$ 㢠'UM_7LIȥV-U4ؼ!==mbR&cPRȳ}mN7Okts=(f(W (Fe°LyR&/+i{qS>CM0мC4gXJJ`ik!-}HOx8% 7 Α3w7/noP)κ6Wpp [Y倞PK;%}/uM  0WKw,}rƷJR;slp;8Q[խr)$ (wh)3@D^R f쏖`OkjTy'w}~ey#dfr:-_륥dGFdRNS|_Ԟ^nくoNiw Lu,=@G ,h}2(w33iQs/7~o˚3IzGzU[f9%(0X(&O<=r3OEw|;R`0G>i 0`inh4a!U^^<j} ߺ_oz]PÙp=a%xDj1p`dfNj\]R猨il:5@p9},ʞ*8B<8RKھc Ϩ)^$<5-)_|kkb:G/ BNx;~S1=. B^D^ 2a^%x A@O xLtɭ>zlı3 IDAT.'du]Ƃн(a-::.;H|erE&NIbG3L@0Y%`ZuGx?bIQaFX&.WҢ i15mTDMJEK*0P? je;"pnHi(6[j2, MМ=[C;g"@xdn003RgixOn\xCK}2PǦ&"xр"W:('{Yՠ{`$Hh$\TJqɨ.r I>Ӄ`NnOwwIm7 Ti!؛Zs2ie†ɺ54;g(9G`^BƱt xӷG}S4[^F&naoۘwfGTg x1HxiqOjS.I F0]_i m׻91C41҃{jY m*6 ̏ 6X0!`VT8 y/ h8ʘԫ^DB^zl*)'.,uM]}cg)Nh^ךVw`#eg#iQ0x3>p;Z?-%o-:?{ͤD*`2[S BQ"ࢾfx2@dLZ6辁Ee*s*Ys@X,QW uP;gu%H:3Eڐy}J }Lʴ2Ox)MdG/LnAA2}gޑ^}߇]XuS`w:}Hm`& jeߜ)Eq & k\y݀@ a yyau$gp WPJkƢe"\Wޔ;1&on"/w; 7jY!3M Q ;Ǒ!?RrFTD9U^j9(K8!?At9ŸrWӧt`Km1P4fSMNmN0J3D=0|%RCezS>iFV<R23pIH / @)ڻnfnuz D2S߸P9oI 6EI]LT#@v0 5L1.7vSWׁ6&"5)Qm7Ƌvf0,KYȉ\u? 3&>Aw _U~SqopR\v:`9',ɵN&bO3da&1}3A? GtYӐ*64yXc%}H?{[uQwNG`1_>^azݽIZ,lIA8 2tҔ׮fMs`F CHO~JT+YeT S8 ӄiTALY|~t6XCK~Z!G`l ew~?G.R``yk~y\@( (s^-~TD[$ʨCu>[eT& <վ$xU;PXk' lāEu]0^gɢka dVQ Q&|}-o`p1\i1g<2G+ f uM^FD(%6sq3pq2B04Z&w& u7_+L4 |O@[e sަHCJ8->!7 nGD KJXt13#9ZM vCME>y1nR `goӣ0UpaCtFVAs$=PZTk)s1GGG9|2S7sdEt%]>~+aR=.4QjTxZhRx 4Ęf(SUX&SlL૓ cwMmJ]EsRO*-sFH&*Db |c2d<9ͬ0ř82(ݟ/aN b d9DJѝzt?x%]=nM?e Q/νaG}2$]N2Zx !)y_[2KKDVsn'xRS(K:cD&*\ HT NcUR@Ϲ QZ 2ae4T~E6/d}1&a0A)շx*qoPR>0dž+ j(:Ʒp[tOgx[G~eD,<uWLOuOdBa3 j^!In˼G3ztm)̅2ԮK,'α{)V R?, a{0ɢOjܰxPܖ`" p+ź"ۄiz:>wĊ^i)R;]->惦Ty6p.O)")P_we^"hhb}eoh7KD%KM0)z4 t$T&)7͔iKZTGk t` HR9>A'YJwJSiKJJBtI"y̍`$ p5!̓{iS OEyn+v?tV9))":5O |"f%^/y+઄KeM jř0hLTv-{De]e%ƛL~$bRND9BxŔu`/%@H5$O5!(}+fhYl std*ciFFMD m^XQӗH_UT64!iknq p0ӼkϡQ"zx̫Dۡ NkmBCұrfqH{>D[44&u8++ ds<0!O/ȫ0,Ņn cȔ-,%( {Y,I -r1cC 0:2dƅX%&Zd6Q_4yVRmfcCgh0מklZ˩]iP?K cF1T}H`f{`dACӮ* J Q[bxVa0 AM߳ "2du]ED~կ`(KoxR}p? 7ZfT]*V%m CP &f=^Ï-l^Ӏi>M~ s\69AY{ʨ1 {SkȺrWRa"*92yݻi*c)LͬO $5, 48{E+s&  F eX&%PUź׍[mqh*"ftМpNѽoSOa ó ;}A5 2[4)/&<>m`ͼ<{5 :H/*,:P#)1w*fjSi8|mLrTm/ y. x`#뮚zɽ}pδGu8k.&bwH(Zu4"nj7L @~b GSIf9Ԟ琷/&Dؤ<1+[#~%:!Q/bO'y7O4Z-:&>P?uOi >di"ؙ)cC"0W'K/z/ ˚0) `9zg@xחESC]f܈|]S=qX= rKuxz.*;?c'Q@sk|虎myy:ץЋvS\`gpzwgi}+t[CV H0uJ]T{DwRJX@&Ty$IgJDO\=]WND rѫ ΜH,$.=n7`ժ>$NiMpe:+ݛ@6_/.7xfߨ;02oaUJf-N1K߁f "yG[?"L p3O RXqezkkͳXߟ3}ֈiK! @SrmRMǃ!ֽI{#ׅrb ib 5jdG,Jwތ"Prq;QF$ wD0jdvjسbA !T5 mN(AiB]դ#%ȟQA$CDY4{FeJ5Wժ8`)<,Ȧx_֩EaL- Q)R=&JNt9MLX‰J}I>g 2 LR$y]WQQ=fѾbk °{IY B0.vep\jS=PsLZٓ.\ɥȚwS$@x?άSJGNy#NnJLFXTү`G6eĄ`- ōQ~@Y6i1h lQ*<'@*~FZG]J9H&ZW$8 cQSm@l.b㊆$ Lz?$ƴvC5Z[b=smAJ@P(fHVKlJyHAL;r8QcJ~ ݂eR'|BtM#|z9ctgzL&rՍa4 &ʣSs0s /"u`&7c(,Դ{s&FA+P?;coTғ5hw1nZPhb)tTK.\›P,t:TPOxػ7fRkY5rӿ0Z$LgbYn픑Δ1a4 =H.qMB~U@N.4~ryh5T}_&n%I+}N/?s͙qiJQ?"w>91Rq:/`c{B)YX`IQڼ$)mjj 蔮׵h#SC}<;&`*Iey$[> P2?5'`i^@>&-MQ~])R5:ɰ LCՂݍ J lc,`/g[lFc4,8qY Zt{.Q&c5Me 4߈SF5C>2PBAg҉^^&6ct}rLs-1 Fc …1qݱH"&_MdXbaL }`:Yt7TO#[$ƩW2^6z`2D*y`_GW 1 #$* /ܙ)#o N(N{mQuxT*f{WW8hbfJkd HHr9S7^|=oy?křmZWA ˛.lY!`P6O>6}ƻg? xঌ6!EO!inLiI1P@3.ht5j.})Lcգd},EA"ONJ#˟Q)9l d<tό(ݠ/)%\& WJRvmi`w/”m:K`X#/ƞ&({JbpFi`{-njӧs0<ŊLawr hIeȖw6A~h He\ x >a,fv YJytkuDh11s= &v6*1\"'> d̻ p___/?^ׯ.^ox. k kmA1 b)% ?HVw>}~s}׭ƖFoܥK5*[1`j-G8ȟ%Tf,q9= Qw-SPn`UyKcmyy#LE2a&"!|[žx:!lAܗdPDrZh6_<f; ʮ爲4©˦dDldQpIN/B@2+\,&=ȵd/l~Fn&$nDJbY5w.Bg OZ4 txc9ŭCN!VY3x=-hO\w>WdQ2yyҞ =*=rOv?ݬFԬNɂ܄̕u=ωw^X=Q6G%3e+h/.&Z 4 co"--vϔӳ4]KϤЋsf $$Ϧu}:EON߇xym8OHUi 9seُw3구Je8l#[Ӥ-٣&Ob[5lmN̟j#oXmy07Y:yz;<,xH.l6pMJuBWtwx򗄴\k{~Oi2U/ە=gS٠I^!n<$'!$ '!Ӵ{và6'<)(r*c|giʄDӹ_?}ȡXYTX!j " 0+z#QxQgz9wt:[뱷Q$e?ֳ(s xxr>>3c)&0Y8d&@t8}{.YA5@BVi**"p3 eq35'&4%S!R gz(pdtVsV\թ8W?X8V  釫ĩb2+*@5'+R\5m:lLO uL ƈ]kc)4!JlQ n fo ͼHW7uod :63M/Rl&k1u&ӃYSZ(;L%:GOwtLh 4)^lvH0>nv5b@i&!LϊIsHtD2d E䅗˽621$V `:a)S dQkht:1Tin^*H p6O]hӘ.u'IdDDg{NQh\./9Rp$d^ )SԿW)i+ȷǫNKHA[A}_xD,F h"0Ib-Z-c u |E>#?7׸V V-\ֆ2($K!4f)=fnu`Mm4eBӼY}M`dƶ 'lbv *i267Q $h6Tq AAH(Β,+}2`<@&cd2u(7ܾUل$:d8'v=M|q 哴[}0"aG1]5aR&vЪ})1}e \5;@le_yhrG3N5ϸdz^{p@*%#/z2{56Dz>&niSԺi+bdL00ڙ6K_!uX 7oxߠI{/~ dL>2ЄgJ L gK|݄d:_ RI' #'q҃U\x2><u&(s!Di^&SA<%Qr^)OA/!3<=DI=6am#!̡b'Nt@S /xb[,Dv@ -i2 ml}㪛"?;_WH R 0E "ZȂ+(8B\=IFZcЋwfJ5p<ISI6`I*q(Wn]ۄABfƽ:xfyya4PHB>fы~g ZbDCZFBdƖwOamb^"`eK)Y%y8P(lfD1r/LDذ]cQ֓XH*Fk+RelZ`5pJ˄"V1@GZxgJJ$Z*:P鉂uSu&% Q #u*ӤK(|]g{tk79F93xVF^uES__R0fKr @+@"xOM$&C0,~L|M}= ԵB;Uo>M-]ۗܖc~ 0uaQi^2 UTws?ei8:2Rpz ˵ Jێя١zgTz;쳆oA<$ ތV0qcMkOr`0 LvB{˺kcf5l= ىKclăi[6L+Rh8b`UHB2)|,JF+\Fxr7aE.$mb4L}.`lς)I6 h|8SSVZ)LJtpqdžr$VYTs,\c5L4ݽ7 &O,T}}*iձI cb S8A飄J^k rFI°4ךQI%OjC1'-UӤdςΔǀl˙ݫ5\LC3]›t(QX3h~OR'danirWσ0"5Z5dk iaB֙'D쎁Zǁگnr5t77]#mQoI,u?p&YLƞZU,XX=igsOS֍$5 ir]>{ZR$8XpMyx*U82][^&ϿM7\sAO;idd4ؓv&ewy ^4t@@t;:7]A~gt=w ?J~͑Fl2Cʲ/B=`P^ڨ`L V-_Z:'岾Bj1]dN^`/h%Iߒ$ Yr?b~ݩ٩FXb oM7Sf -l~~^/L*wF=8Pp5 얔hi.o0v#b{ji O@KEQz`b\ d""\Kl.]]83AK*NxqH/1Zڅ`Z49f ݛv9 f1ﲥT6nH^ oSoeN]7f!*>:gy"Rڟn(wȇ9RulMgj'gP>d|BC20GJ/׋4x4@KTai߃4~BoY7(`ww&l$I- "p>>_L"CR9 +Xݧ5u>ZiPbN=2 }7xD%'  u?~OxEv_?wx<Yg"L<*E {..+~ʖ4 @Skf#&[L\rpmz5i&}i5:@u! VBx}Q`3D愕LB‚RD\/:d8Zs1'Bhۡ-R6cm2~NɎF#S#?4E4HĹ.obm#VWJ6r9YeIL!XftTT+|¾znZOŞN7Ю7uHHx -FzhccFpÐT)׽VZFw詎].}[{U_~0=BFNZl{CݷNhdX߅AF0+d2Lx&x[*0EoԔ/= Bzg@g"1TNq='C}-aX$$+zYr01V0R/-~O39INTc IDATcgϥN,-seF?>g?oЙMQaO,}S˜g1idK"c\jR*kz!\dEXF:Ňo{U8r[ݸ겾*"a5Da"7]p7u7/hx ru+D|Ig IR=7bhvI0oz}YDԾFfNiNP!(6}N*hjlDuV?N}$X8b)Y+nBVM&`U4]L$Yi\6#)' ؙd.;&Dd~4;ъ:{%j6J* g "E hZxL"@ꇾl:81{%d6 ;ca6P[ktxqPC.#prb|, QF.=uh[=61"C 94zFXy ˜P)v *7%\djPp Hxpfu5< ' &m8#5h Iw0+5JwdjCBmu6|l?IHjH^rHdwؐdٓ6{詔fvdJfHo~p7^/_p|P1'u.x 0_p7+ѭGR 0T=^G͢u DZ#V p' Wh g CH^ɍUgLY|`:`$E {ox'7o t\, ܖ[Y$< o1ϋGٲCȇmzfҕ-[=Uk G=CmOU='EWzu4RZ“ iEXfeG4 D^J}px$lsdf?J|}2y3l# GR(B0ȩƦi9 D}'+"|MF:#bx?O,NC-B1+zLȢCQRGah3"4SqSX9Ȟ^lR$IKt >ԖL~)5r`khnE35$Js7 ˄e0!I6&2!uɐ #jbM5zH\\X9"LyH{ X<4>C7䐡I,,HY(FڏHp] Hz&e`2 !vOk$:WR0'Ks`=}z-g/a$Kpzhqo(U 4<:IOrUjFMxHD\6C*+pؒ(IOpq =^̐B%<[/RVS4_3] R<1{/yfzr`  qv L(X0 xxK q'F4_kCNp$9Ekۍo.̙yPȀܣRtMeR`ܖM,usLQz2%L0x@'7tS&^&<WXrU5Sg,UI{Ey[쬸dSa~lLkq6XY^Ĩu}oe%oe[6 DL_`)JS䌹 '-޵o ,1]*])qB$- ~Xmau~@zU ~TS^ o LFnR%t֥-uPu5a&RZVIH.gz )DM~}.{?{i] V Fkne ~~&@#'F`jHPcyp7o81?NxAo@6gr>>GYW_^L$C*0]Wl2º<{/g)& )g,O{:HC(m=ny4k<m`} Vn {kS<6Aލ==ϙ}l Z92\d~$ ^zk>:'}xJ9絭AbѐΨI-5u x⹮LBxYc  Hm}.d?yFh>Y7fJxb[ sӦ sDW*C"]~}7*uZp/j))3IZ$kb}WCOܖo\#APmfnϼLOr^Yg^K:eX4T4F>3da@Hxs78=2o NUX]wC t9z?I:"qy6kM+&?ڋ#C@cE!O+(~~fsm,9 3 nzb53+d.1-0 ک(*dqyX̵9(2M4t&)lnR?h3܏걇h0LڸGB$06̭wI^RHoŇvCWrRDб`5@FwuhlLAJH%pP@G$?܌,awT&5F4Q$PURbjUQ/.E*W iVJҵø$6zA(xL F@|2NNy:96XŘbcN2Z%|Fq=\}1y,mt;MhDN#=R4e4dn7 "p_1wFA)'{9^/rv"x]@eKei`zkU`G6/h:z+jk3lr3_yg򶎇7).jR0fvޜiī( Җ0d,)"2BaOgMɒxjP͓I,8 W26?WΨghX2 zNo YQ*9flSl&bh0N1:4r)l'MebP~N}|AH4C6Gs=dt|roW=V {ou%Q P{ QWbӽ[3[l7P2G!ݲ3r6 jd2zpG-KD!ii-i'kM- Dx],ZkM&,Uv}f(( ? QL]Fh3pjhRXWa`Xê?r30Pw%; g S@ckr჻@xgy>u9ߕF@CizRo 茽ug2&Մ5 X77TZI9qCo˧x̎p(F#Zt~B`D(Y>O N>O tᠽ]xmS<2VOL4@uvց J}3eNo8g&2]׳ nSX#kɏvWH6qDjϾ瑂ͤn|\6OJ}f)i1IQYAX&&~n$7wyo@W9WOαqys0?H\b$qS)+B39yb/7f?b=1BdqKg]DQO{s.4}R2 ,ZVgyۿNR^<%#?DhgwFdLoCY9.(;yj1Euu(QW c__X.ױ A\frE}3 "|)8 0P`e9]5z\@2a k졠4'F @&)ewLAPcUTOtä0Cq3죩,$vyVnt:;_KtS,3$fIhQiÃ#/1A$h#- ( )ͭe CBOUBBV3첣hTƊȑ(%msuIDa(X<%&I 0Sڝ `l3n^@ YpHI2 gJk.fZj߷^ylG ΒQ5q}_00 1|/끥x2֍{l+qB'7҃+L1hLVw ~L617Ilŧb-%(hRӫ"ȉ/&PiaŖ 0y, [.EJ06yzFZ D> ~>Z 7-cn(U<~{2Pm3{XO..Y[HE ,v#f775@%z2}b2p`FOcyo(J*h"fdu\ʪJ!ЃM.$c#{#i6cQDIH"vzE] .adei@7)%Q0Thڼ$cI#r|4;BB|D}x응ISa)m#i`yr@DU_ Z:_|=}Mc ʦT@ ĆIv_7%>2vg&PYeq@T?XphA3x*Ó,pQ9g3tZSMZT,aO_jv= T|qZ=10i?|7&DՌ=h~#7@4`8GdI?n @6SKϱxYq x}Ai⍥#WaΝg޺밌}L}˺uK,YNG6ȷ" IDAT|@.)nzs7A[{(0~Mr&H.!+{cNisr+8.Svi"FymPE#Y݃4t @K]$5vQRȭ5K;ZL 9Q{)ONyQL #NLݚ3sP̃MNh<a!䅐a` Ige}8h`:~̃njN1EUi'D>+kh?^ UQVs[DeԥR&pY6X0]`6#S)L.!XE1!E_h|8ojG1ʞ8y P^b[T"^1t \eImzq~˭47f\0:G?ȟ&ǁѥ߮ ` fF?e1 lؐ ?)7 sy}^u€A/0qR+Pʨt\(!D@C|x]V̿uY.0͆7}=قA < ~4Ii1Ѝ 䀌:qmp1Sa&2!d`VOlIg*jtQdտ^oC2 0 9$GK1qStlzy<)ݯ^pl,VښOc/#mw2rHfp b(Γ|rm>d/8{y#>OBX}d5 v +F}tEx;=5)g2Kcz!N#ry{,d,: ii hԆIB%0UZ\Eh,ńdʽlxz<{!$C$l5Ms/#zV?:8955J. 3:u%cp=٤3.}m֨+ =%ρJ~nĝ3&|IʙuR $ۀ*EOf֙A*~Hv(?01NOrf3l#gmEU}7`c%?nW[gJLZRc-{ 9WoLD]LA&Í3g4kXI p@ۯu]oAox^ϻE$pI7,r$Q2Z@8TStygIf{~)i聕TZcFZ]T1>(ݛg=V݉R0_Mwa\B׸,Hb)u{z!%".q?@X2n5|(ZP?*beODccS=y5VAh1'1Uk~l*`8.j-6sJ*(S:XK:hĎR9}Tm0C(T?$C5=/Jj%J.Ԯ荓t1խyゾJYT3GZB7tN ʇ(ИfK&>5]ЌNϟAXz|[+jSa(:іj Jt%]/{|F5%6*)q/iz jA+(1Yq:gm2!7O)|'rj3li.|^gZO&i1(2ɡ> Puz!+9L5 @26SaYbaH_Pc팀07ts0kaDVBˉMw,5[F-X"TOQ4p1'}Lb0M\ԁ1a r whӡHk\߰"(n5F"wy 27he#:J#Niy=7@$-=/_<O0_TO?CjBr&,jc`בPTI1v_c.ہA E1B?+}dޯLOp)ETۈCPݶbϪk &|>O4_ FԘ9͠kI4I23II G.BCL3O>^L,Ewu% e{z-h=ecѤtb2dqPp.αKWJ5M %q44Ljc4oU,W&&$&sFR!AZ{>H9wu9.Ձ%ZzC,a%}dTR #%bV=:֍5F_{ȠlȴRgM6?I )\hfvLKe` EKc>LR1d) c4#!ͳ!baJ;[3˓ tPr:wF؋;u͞ rMN"nQ +Ua]Pg T&96}2F:XԽN{Ҫ^#2l 3h \s /$7+hQʳ"dA}2'd a3pPӷ^|}}^ٞpźy[?Jgo+D6Hb1m/!\\Όu1\E,oиkG6ǼJJkon!ʁ,A52i_lt20UfnݮxdO}_oI 2ftP[63t*D-022&Pw8>i~vhw.Y_iNe!=i@_WZ1״[ -Lb:^#i|vS[2#:ͲƐyUDVU^z FU+u2 'rڰu;1ʚtDzaawi>"HR6 @BB& (Jϡ p#l^3h0!Y4P"ܰ;Gl`LZvc`Ιng;[/l3-А:$|\yz`EfR _:)ف*tyyf{h!dSVⱱi> NdզI=:w ~Hsތ H"" |]~*ֵ s|_pW7)SY?O6 *!Rj= G9=كK͑l M3%Lu#sZA1V51hG; #o}xW]'WDo9a8Fx`ç鬟Ø]pk 8u#0%A-\YHE2֧@(T!pٔWiӥEMqQm2Nn1s/F0%dণղvx5jdH?@-7lXk:W@ssflޯnפLL][,JQU?isR@ROigL97n0QiٿZS&zaxș!Ӧaȝ8}90(M>gEpnD9'$(+Cԁ1kH,%Ōqb@ޅTI9La,\qQh v3Y ^Fp+ph̷Q\뚆TS+)1yuYW"mY͠ (zd7!m&C.Lђ*}րWlN pjN@k1[uݨuwMT}UV^)E~0!EaqtX#`HUIM&GGI{*!I}?j,2<O5r˛0sxcAnTb"Z鐑ŷaױ1d{iޝ iT"2LcD8=s&鱿Z\/ b KUǣE[36Tj=pbsOڢsxC*4o,ISߧ0W.}rMJ H ؤvT=EЫ%zkiR|3u:*k,dt&T>l&R#z_>kgf򙖲ԥ>(9{KaIkBdt|Ёu9|Y>Ph~n1?csJ} h &*e[9-TnzzY?녩)ft_.d 7)M 4S"k٤ IDAT!l{y6)=sqngmڭIg_E.cqߖ 9 4WC=MpeM`Yn{7k -?"d X)iS=Ȳ\1uq7jB@ Uz7%mP@=HhȈ0M5ڍUUbN}nʦ,;>h͙ Ml*hM/D$Jw=Nِ-Yˆ s4 $gZ! 4:\^d0B*x)'FEi8uڰ,HlJXD]@Nʔ@aa"3ṵB[ h* ?͟oѭa쫤Dh qd1+~-ue Td`xl_7>O-RF^pMV@0t=#R4V?K\8MI1A>) ~-dF0tvOREX=?03Ṁl+?;j[c1].E @M˛'zaHU@q;;g!xI&Ա-l/]kTتDש}ƞD ~=颌כ4XpD=BK,Nz%0&lfܪ(%d^!a 8i-8fkX ܏)8*F ]=t]d`QU=][yM9K0aNaTȚBaEHiSs9z~׀@E1'LRn%Z*bxDjkZNwkJZ+)<|!=5“/(1d`t;^aaHGyz%QW$8 Y=HsʤJg8o̹W}K3.( O$aL [N #\BYu;<VͿZQ ?F39 QrψɁˈ|O0:M,=$=,.( tjva#K&NmjcZs|nԈ5E s\\&ҋDbY%F5LB @F:- n]OkUv8HjV1'$'Q . Z]c %j5T3:kʜEՃ0^9_eN6e=97OJJ &ސ9;,5hC4XӦ fa~=#A rL#[Y%XlNvbjى!Rߘ=y!"hZMo93s:ZR p{-|:0&7jcxcƾ ~x/Tsg6<3N/o&EppKA`nazs<3ɨHBda ,q2zVo ,R>sl7ŽsKcS1?hi4!S0|at]WQ|ߞo++($F5s 6s0 qyO#bfUlOIs M|]iE@_gEX4vi}ƪJ$|1?`R&66"T$PR X`+:0`w>o=d ĴLbeS&řSӺҧ@|4*m}Nؘy?X`nM)!+~z^/œ p&(n(_w5do}dZK;ALlh`WI2 А%J6X" *+=SԋB0Nܢф1A]`!nzGwEK6G.J3'"Ef$qb=\em3/EqSUM/0hTi wZw]Jd*k : ]zzF@Qp a͈XHhs5(>#%sI=KLN*AN1 GgLgf:-aMnasM_o8sYsQ5uLNM[0G*SeZz0 "ʖ0!*gFL6Kg<|hLS&O[$c ֌M=]ݗˆiUUTiUv"9R:GBNcS0kNbya-S=K#`L/w` T1D04@pta Y\׵|TcrPm|]l&)P&|Jא/"dK={v e9Ƶ{ ƈk,H*;F';">"q"52HʺꚤC$(I-:p嬦sq5,&Re˹0{dYwv`y*z/Ɇ\DzbRzU:_fa tlrޤQT_0ȭ ]qܯ`$GԼ4C9 #0fMHQ#n5>ʄ=4q-5"\dv{2%ҧܧgT'-r{5㊂l.JZ6`jR,8uIQ=SbLeM-1ؼ"  uT?‰ cPi8Xoa2-_8L{# ˪ѷCOZx5n@/+$Uoz`$q|J\s>TK^c{KJ@x f31 ,MAAOO^T,$@3pKC~( { ,70qYT5vpI}9iwAS-3&QԃP1CxQt!w#&͸ Q()}CNV*ovi&$0BXh݋ V@ETl7.1%APkka.Vi"T HK9BbE{G}SxKY ZgoM>9P+" =HDR=RlZkGP6chffbZ<ɤB@#,949IF!LtA5 P#-,Tf.j:3h!79놏1uEf1'h+W)?o@1- n~bU +n">NZ 2*m?ƳMxi)4X`>~'MgMa8O_=~e0sItLU-^ʢUe8OTXO :YfV:5~N{C2y }>Oxb;5z4N7i<[ɴO{ytv)P̔I~4BYKl4daۺLy jٞXVe~&6L%eɩ8 =i~4GEv̕m՟ -:'] (~.~lEpV(i5|hD<x+)/<ĐNܘPy 0.f7u ~#Y%}Ѽ/0)\"}=BPX'$ i؞9yMf4?}.͜˧d =/k.=RSlwC~+!W7^렕Q908]8[io6!:~jf8\; W\!ej}^@j@#),7 ~^Wq`.!@+uzԆްe5Qd>Aʉe3+ QwX6Ej^IH 6KIb(L"UApӰ&#.nPy"85a+b4N'#PdJW,4 sӴN]Yf94uw2b&kaf:D 'FosU0f$(azEl i?CyZ_%F0L{R/d]Rnu]up qs]ZLnt0,$Դ?8,kXJȧptÀF$Ҕا RR5VsE0.#K Q-A^'8YXj^&{V.^SL5RP}O|mxiSi^gk`6I&)K.q@4} 넄&! ~vFNPȣ0XRcD30YAjҘ&}=~y #B1j ʛo3$љ:쓡0Fלmj1kK(5i=!MP!14KF4ђ{Fr5p(p@FeŠd ,Fr&ӡe;YTۘjˁ؎pe{Y٩Иz]0dͬz zJ>?pCIuT$q&ڽ1)]J)W\^m*C DdlSr\1k!@tL/8ĠHAre=cn8g4"}X^Q{]Y*#Qq<^6'p1t*ZIMr_-W&ΓhfYEAH|$I#`9Acx{FL$) @%GYǐGgHVXYabF GK- s0,XafVjTd0)m ;%o՞a|NѢL148 ొ M\3ר$:2h:R'ՔZUl$LP8Bc[l9D7Ԅ~Cmj;Jfmn#W"K(2V8gI[#^O55#\UM'psds(X˲Rx9 b՝&3n7kqg Vm_\@ܕ]uP&x0gĺ=MN 6a2On/ 6|)dID=3_ .?:A?83ęg$ qqVaN[gX*2!"ټsý!| v-L5.Sj)qN 5[^MSvpK[kA,?MW>9˺}.daF1^F";Cg >)0Цt\pQM BU!ؼw w,|?`GTSUzUB: OYV K'CJp Gk/"/ y(GwG1 "@ +hbEY9d܀M8ua_N*F4'rr#/(^HKL\x47ZLO N)@m@9J#gxOa!瓈#,y*=jLV2S$'*f`*SMmڌ)a3]1NO0rz\EnSѢ}FvARANT\I S"Ѣjx,K\gf_Rc@eR:2 fJlVHZlxƈ{=:maڈ3Xu K|0<%1:ҿ}% ʵH5́|pN^( 7s7`)*&1[ ڒEBZ€q+}r:R)n. 4o\ٌŞo[{ _Wz5a4kdL6?ЦHm"7[qD 1s0 ٍOpP1V0r.XH}zh !h u|G.i8 ğ 7:AG3Y&:g yN}ʝ%kx]v^D]BDbaȚoxn$ʮlIn\ UJG/׷)qxz/ &eO؞MeJ5hBϩMo(}s=p5w@@e8p֐=ǁ;4"7Da`Qd-–u &`kº>\0/ƨ;.X:wjz'n_hwIE|Ξ(WeVw]GNRd7(5ae8Y>63jn&"HW1Zf 6(iZ<`I& |D"m!mXfW x/~ݲMA;37LVA; rCǼ 'ztpY`Ta^kʨ萻!R6+rm )R"Mx9O]F\t=Ncb1qlI1mZ@[@x6 jkç4͞ i4b%Hl&yJgwUݔ Q i{0f!=Q٧(]P0}L CLWIS:k}9?LDnF(Y D9Zp-|K9OW2br bځ=oTn-&|!7`+ȣ6  < ΘؙFb|~nc9K5rEl2d~K\9N8$i@խ,%.O˟~>  }1 x{Rf(\`d*I+u"#KvFKT 8>=gƕs`{˿OO{$^%҅λ* z*e}J<&)M.qɍG(} ֙W] IO## t6{nbVm)IDATF{5K2^7'֏l@TƦ%uә1tf0L}AH>1禭RjO^'Zϙs*0gxh`vlQ}j~~5^joMt Ѡ Tr kݖ0nM^-p G!̋_G^!''pRPhK!TnfD3"*D"O?J8 o,_ LDOnY@Or.\4[56#ȒӂQѦg%z4nizӽ% sBa !l9i$1΃bkQՁ.->}&aYNQ`Jk#uPlͧcIU&kc*Pj.!T23Yz#6`A=}l3l05׆3 ɬ^!%i䀠 ӌRv\0`zH5q6 [l>Ll *=һɷ ߳Rt|o&1>T\)Sm ¤H:e_a`Ϗ? H5b9LI'4 _7| GX@s |HJ+KSzdY D"J0LקÅ;; bcd ^W [͖)\q.q% N r{MƂe > zA|H.12 H,maw-jY p"'p-oUaA゙I@3$7"hD@|p`o-/(J.1rSx3V#V\2:^u2ԗzeŻ0jn4:βpmy㼦uDr9Qk:N㠈r"sCLG:k]Ԏav"ϕ i'RA[g9 iy~PǨ4@H$ru,)hءF9H_ 9iC/16.yXIQ)?))9A^D*0tII#%IFy\@fKthp5AԠG}#N3R|͝P3 8:V2!EVM^˼ilwkFԩI([4"$r늀M#. -1# }xEjL!גL+Γ 995[).Q-(R>uPܝ{`Ś%趆v~[4<9TLυTeMQhJ\zPrQ X0 )ւo|>@Dmm"&Ms([%xpNIҿ7_ 8Y6Oɒv:@u <~֓_W:\=X 1>2l.L5S?FS=D ԧ2v(4E#5=P &-(/יҽ(D4=\K7"^#0N!)o58Bs@A]5}ŁiRhhӒh>i`3aL`Sy<0`̊ 4ĥ%$Onh]266:1f%''r&_ 6Sݭ7?j:N=RJQX$A?WtǛ®Mq`@(CjaMnFQ]ٴ8"ăSF4ЫLG0ZD,\15%ɫx585oqdrWjoH|(|`n^`WX=VFbafäaCsx%AaYcM5vKjQ }7e\[L${(?.*>]<'I2)Hzv6(5_$*+(MmjLԨ[q8xߍ Rs 3pAJdPb S,|2@*~>Q&=f"̺ϗ'm/oNu`ɥ VVƗ&'ZT?zfndn'R xU:`c=Qn)n*u8aHD٨<ˆ A5fVwC0bF635;L<鹓Q6 |hC@؁;<D r\f+ % t^  O/nnh}_`c @;?~~~!|n_(E&L9PzX:%ϟ3ʑu9*;Y|!fqY`ϛ# yJ\"փL_I{l!,X9GcO3F,fZ &&a!% 0 rha"@İ3ũޕ" `zner-ro\;J̅ɔB?f4n5FmKHf'Q0vM4BJRgJnb1"`daw&Ix$hA TcP:Z% u:<%Ya}Vd;٤_&ߢ!7:YHi{;3J{_. NfD 9(gPmwΒYh8kT/ХE*,¬ZбJP+pO`枂 kE@AŮTۭ%lhXo>X AqX; kO,nݻŰj2;˧ m ANi]};we36HH}.XSAWFEia-Ec`:l-ɛ{JKҔͤކ):E3 BJTaAP5 [5AĹ!> z* ` 4{"GT~~'ɟ̙wV?QcYӿ)O׌z$?h3&GFC=8{׳zAm<$h!|f^g|q;\8Wty*ckbH`3R &/bRyʸ.sd'fj/r ON=p?팡 TJ'9bf9)<84fK)D̈s."Ei+?_ / JLL%A:x rIDO5҃C72S; kh8bZ:P9E Vb("?@ʨX: 02 o.GR<;e1ͣI~LW"bE4a9@^BL.@HA/֔2 14@c)Vj@Z'fzRV i"TyJCzqqc Lհ `(, @EnNԊ|\Sh"&I"A[h!CL'aPK1FA[dkj7äy}ENTPwAώX9IX7꬝+E~hWhxF0.h(`Ĕ׊S̄&==*i=\=83N>"+~o=:,GE6Km~yo7 ļ(B tP3HtQ7{>;.>AL)\6pcnh0w[b3@ige6@{DŽi 5r92_"`)7f +6|@:X,Ttg'i}[7=9*@{iD0HM|ϟ,\??p]| I|/X֨u;{eFS~.4`ީXSC 1x f_ ެ@gWϭ2ܢ`H-P{\[!bBRV;ƈ'Ρ}fl{s0 WDu$G}@mZ '0 @-H IENDB`ntfy-2.11.0/docs/static/img/pwa-badge.png000066400000000000000000005626361462047176100201350ustar00rootroot00000000000000PNG  IHDR=67#zTXtRaw profile type exifxڥgv9cxs d)Rti`ls61[Ζbj~?l&)=ٚo>z:G釆|]_/|!|HP{5sϴln8oawz+O~,!?9|цqg\p0ȯP/o╏oZocV[7#_7.}>?=ψY_Y933ίIxoЅe[ho%'촃} 1m|=YCO'Wu^?nNs{zGcG(-c5彌09}rqet #z9A ^M>w^r[Fs ]ekDzHw_{+ݍC{>n̠}:oʾ=ak!m[KM^f۞]{gH#1q4rq4J٭k{S13$ۆɧvi>מvAW#e`as8=>?gVFJSGXAj'3hެw8MWc->2ՓpjL)H81J21Zùl[{)%9+7}&eQSb2A ni#r<3b`rq(\HǷN={1r=ל3hSǻ$32R²d*nfpp6reh`=];&x5cIq =zt{h-.ΰG!y| 0ӪNϣRK&pd=w*Y+HͯI\šb8;WNЉ$]IQ0uH i-c=Rg1z# gUٛޚ\p~Rnp)5 JXf.cLh7m;dT&pceBxn;; H<9@?LI ɀ+xۑI͘vŹw*tM=ηkQǘG:,:aU/$YyC#.ޙ^H餰Q8 cjwl1Xj栤i~geI)[ӺI GZS f(txԃxipRj Dxs{:"ɠaJ1&FM&b:бۡPH˚ [:'rϓC$nKC:Ea1>V 1N4O@9X#0pb~nQu ai?[6!I* F{!O'NMEÜUB{7,*N!6MP `s{!1crv$t &@a.t$WQ$N y[yn6jgy~˨DꃳܧsoY=lK/s#Ы}Y=|4gS6c6=7f׃{-4`[nq¤Lx&=ph.. /.DHӡ]D ]AB0(\Ɖf`EAP/9@6?e.!:(YGZLgHjR W(w C$`=/\%pUo0POCGUsT%=Pa~pEg/Hf B٢ɋJxFwN6iYчMJ\eMA#NiHN fycr vO/8At4`- "h;*Z<4@:t:w#ƌ%VĆBk\H: <4ku >SA^*ٯfN_!hP{ [v \"s(K.D~ܠN4nLjH6>^uV`eTʪ_j auBVlt0vG0\4#8YUc%ZS)!gï<9n)XC@1!,5,L¦ƈ^~MC "_ܨ>)"j( PL4MAtKAR1b .LWi" !x kC,p}T\|7Nx6qC9qY![I I@@' tL*pzDK@ H#I:  u%`L;r£>i]69H&Ƽ*/ 9 ܝ)r x3jPefI=\V2Ke<)J 3zDe.a$j QؤZn)/HCj}a\/Q %q%6;p& H"GT!C GH X/24,L * YB\C C` F]l*ԂKh c-$4Dh,i# nUZf}H"Ⱥ@&.D?(A%A aApTڃ@x$*c+uF@ l>/m![[Z` bMIr, +QOwFu$; pЏӳ/urK|9G/@kد! zgd'#حz/uA-Txd_:5xLZ!C_}떕EX IRzR_[J7o/)iw*5kMɑKo+D'mX><]dQX MPN@)ǭC\"EѠxG+,"oA ?.P#bh e&Z&*#kTEy<"#LnՐ~ZjYv~5/36SAtkPgL^|%NYl!ӱƩ@ym97GЂz(p`nm(ʣM~R+pn|?O6yڮC<`s,U0@ZV8[mSr@˰so!.݅#kG=ܖ p[&a87JNO$!XS)'#2 BU`lbSV9%:\v2 bqB.H~z~zךC P)y3ܒ lğyOPbtWf3ٻAUZ-J@{ Tԙ[Z{QTN^#uZpWcg8,J1CZv OzR]D5-hNQo@5\d8h&X/:P?A.<ľLY=h_QIK ӷ: XEda tDyșx lMl$aqWpjS$&`тXA}n('@z̃@ї?1eLl@va"D iw-$`"M;z۪P%N࠴)~i\VIB%Z?7 # -#`^ЄBKUDdG{-$.a(o>t=ReóM!a&1 /SkwD CN;x5}+j{ߠ`N[ 7߮#\elcFL55k+l+Qk'p]_5=i6j!ӈT9j=\!ν6 m# 1x@ HeRDVQzz0 έX[+*)~@33YB8qp08";>оZ}-eXXAI#R:: -* Ty~$K%TS7-֖QeKZߢi$)0X3w3o;8!ae= Ee8t["WV( Hk2{육kU^R m.kk ׺!CQtK$ψ|1T]E5;iD~%;*,,X{>[ڲ7UqԑuU.kIᜂ:Z%w-WAODִz X(/Ckqa׀~Z lkb3*v3^o1ZPyK[zedwZ/fk[-h:=%:xȉ,Yƙ][azƉUVR" DU$eMT3.U9mh.7 2{cN@ 58kkZڻrz86j9@!#CF!t^c~C:2A,\&E5 >2RH|8\9}jb]r~4Ġ=j"i'\Nz0⇮hgz m#&iCCPICC profilex}=H@_S"-vkR,8jP! :\!4iHR\ׂUg]\AIEJ_Zhq?{ܽjiV鶙tfE }a2YIJs|׻(>Y>xMNNu Screenshot )=DbKGD pHYs  tIME . / IDATxi$ו%vȽ26 @2c͞}(Slfd}䟑d2F&1=6Rd @@P[VU?wos2ޥU\?2"ŏH @pݱAT=|,nc-'68 ՃƐRdOX^#6x'DU11#}IE˧ԼIotYs]'OS=[dkb@7sр(%lƿ[M=աX̕\I@n1O 9pJN[sZ\e3hk+ud=zk!2)_* ٭ܯmXWY}͏nHrS~[a ToN;2N\w̔3o͏|Y\h y7G!s}^Пr*?l Ƣ7/VrdLE{E\EMpYg,԰s2:Ow-{xd4x=,ZݯC61maVs !y2fOXsone$H/ĵDCb1PC  ߤT>\Եu9," M˶DBdnE f2գ2c?//oXaq=fm LngÜ2vX ,p@A %*CHb&i6m$MOW e3A̹xF]b b3W7McP@b-7ƢiԒzu-QV\poCPs,AH{"; kcA`j@ocYXP#ʩol6pl}GAΟR@00V^hߐQי-Fј5}cNgT TPnZ`B4kӘ~V]`|bڨj@G<(G i2& .C$`s #њO,K.PPjm:;8\E6m=R -'a}FX> ( ӏ61m"WK~ p @t yms@ܫ̬gSI˽'<%g4ɱ; V !]ؘ8;fr, %J6W<{+Mm @,ҭ9T1PJRZ6}F@a3٘PXSa 0<{ʶi*Džutq " 3AĀbc` Cx!MҬjcy0dD x£?Hd{uHȲ: t ?;4C&{^ oeSY ؟i8I]A3(V{=>~-'=ba$iWXxɛlGInɴG]cB(3"45߳E466bGj|oБCIpX:w6蚅 j * =V tXdTwbȄv ^dhN.t..:'_$_!@g(zp.G|+ [X(݀wB{:Ŕz0~F&KY(Q= Z1O /q?ȒCE?E13@P\rd4JkF|N~G4J8 DM9RX)<0$@kze}ӪH5wW( y"^`4u"p0 D{0M۵eƬM?" y9dĉ QjVUȭWdGZwWNn~[H2 /4` ]N] Gω"ҫy\Nk B(p :_R8Zx}~:,/gR;P>ָ8m_"5bo3!b{nPrd|1N1VKfb/ ~'ƃ?2Ηr@ ̬gwRd$1>2#F!KR]w>hɦFUTRBz䨑!A^*_8[M{IhjP`>"a1W;!\X.єc[U"[ʰx>2%QPk\R2&),YLU`ʹA1Qe<\^]m" #\|ȐzxrD*-w2! :29H.Bkj%a+T@GM!LJ|rJ׎C\{6Vҵ_; Z\/8b93gp$d sGLy@9ݹI;Qll x}׺^߄#GXӐrO6i{512~\m {A}ʤ*?x D'zq ل^G$~dAowAYL\ '9YX1ٳv8PMI?,Qvr@dxc?c'.~GvPPbl̻ ]L63NLzzcaol0Ƒ)5UhUT|@' >:?u 6ްkmsz[_cުrav# mY!ksqEGD-ʐ (r[^T%7,@2f>2Apr+=4jH@_ȓ(]2/ gN +|B7S2܏MtXũ pʥ*D bV"UsKh[An2L1ԗ0%HsH oƂDϱz $N@ lqÄ#0ȟQlC 8m*%ȩ$Iu} xY=ߕK>VV8>|T2}a1?FbB>t ;y܈|/}t!?9S-bLH Z,2M{exFe#@=aaoL9 i @'h5W3u`I`Ϟn$GU%p,xǮD:]/?{^)x"'Ɂ=6ێ{a41F +6yiuuZKTb}S"o@`HxC,]#٥>59(1Ȱrh2s٪0gEx*=Z3\ն7j R\z$@>KT0돌^:2SKKG*ih4`)?F_$FAg NXNelJ)smz őOc1BYx&.Cmq*yj zO瀴#m5hbAHWB>%U ϽLW%s 95їzgVu֗n jbU6c; k.gsI=+P#2.%2m B=K3(էD*){Z)}1+Zcd36cs8OU |X iEp^_0j02'HE"CY&ElMhϊG=@1tcv3L(Z{S;gYX1Y_1`q7)Fp70EݦȜWU):8d-F+rҶ$[R{iCHk g^?[ҮX B]돹 h6,H]4r[xcʯ u/m|6`: ""e؂ѝh"{Q)x}6cwk=(ӆr(Nzi L%'J_|Za~y?~$YΏt/JubUl!K!H *u0RB' =& Wrkr3$NoH B}Jk'ݲ]:ީYپo'Ckh6"`"mbUg+ .;<_ҦD68ϝy\yo Cp`I>Faſ犹*A?>יޫpBܱp> }z$Zuc}04KX{̘"ҏM7&CrB"ؔܤ >+J[Z}̜P. L-'rb ,^z($.B;69#7*!Ɠ/ďbjCB[;RId$ՍeH ѓϧ.׼wۨm1, }|=Xx }Dp$Oߧ߉ \#B,AEvHE]:~.WTf)Q**W՝*>S]e)7m @W{4f3i;YĘ&1kfMnNj)P; l2;Cîd})G c&p>Xpdjǻu(*156$E|-%Ͱje Zj?ԅ\3H݂o3p$<йӱQ5NP,5& {"^!uM} )Gx\gYIrabԶyĻX 2&LGc!Ϙ}78j?ҩèUReU{U83QخPAUi>d干[}Z8~t.Ԃ5zePpe)/֟B$nX$[B\RIՆ*b(@!2SGy=.QG;p ׂKݴg܊7#Q)F▮$D,$̟cG "(+ 3e2gl4vJ/Fy)YKj^8bR>CRۚ:sxYN1Ma`]9\Ch +PUh&8EoYJii.vlg0|yy4x1k@ߔ;8C}C(Нw݆9\MC|1'%*4O84Dwm"8 ^oZPro,rMܕ=4.wK'B}fMV7+0OfBRWC,ѧ ffk`dEs3pyE}<{W|<%~I`_3s` qOIR9WA!ہ6ƲX˃ܮ~G¯dpհ˥1jIk)VOr!,>&Ǩ JPMՁ!rXfV(JBD蘸>ZD~}`[di?Nyx|  N?#5"BVp+p%"-HxBJSy(+QkX( Op[J9ޠ@_쒈ɛX-%2qz$],# 'Qe]FJ.Vm4^ 0O'xVRȈ}qW/C94UhIj䗖Bcɶ.rQeFkLs}{C |8%R?r*L9@{RxǨj$}P9qK:s@d9r"N`䉻\{江K M+\ Pvwjp_Fyh q0%%d =i%E%.MwcIo$([zfb@<'6^=~/G@&٭w~ΛPΚ6kӧxBn|}wMh% ԱԲW'[n$|w&G1JqKޖk` S);SC /yuLvwsG=A፽>K㑨:sqr؝Ysҽ ?Nr@߄rC< ԰7Ͷkj[/Gܪi-{[煈; ѧ1w7IزL:i^2CL*חgD^,#mOYm\󚫞' .fsPQ㜡[/ Q23.slUi %ۻQâo9Vb,1'M_2kF#<%n^IrnLQV*\eL%s5Fxc%L.@W"Y3xtG}@+7_lK2-(#sW!~}hy 591 + v=Ʈb.G$h+W2Pomًl 1&RZϑwnj@5i.K̕(I_;VnO !-3 `R{rXcg}@p'Fɑ}:R%IN6_w=E25q\ )aOkPdgEVQ@kP`Ijep>~>iv:rE32=BU.J0e PY{y/ΚJ2#wmz"C%4a c}ϵQľg< `Vt(äC˃Q p'R&V Rro 3 r,s(Ә_Eox:IC~1W@pQEئC(}޻wHcr9}\J">#=_ ㆝=MD #(-%T]vE<%BM b*.O*8U3f36ppGI>S()m/LÁ%fH.b&--> (7v4hI/?`=J@twLc.6]_cP;ab5Ν gS`q˩6d[4ԧ[_=!9 UgQYN}Z1d ,+ExS sF+v(U1tzFOx\#04FrS|_j2~z_u`)4an$[d $\jW5Z1eC1V/18Ͷ1T+/ -U= cџѢ<,FO- tdHuY 扫D~{msPoIq `r"ȞB: ye~? &<2ly>a3zG 2n[:w?$YQ@aFZg`?tD6hR,_P!rs1@ԗs8)K6+\bʬ0K)R'f19 ׶C e.^CQKw ԽodMv8~^Ǻ"^w (TƃChQ]Ǽ8TV \!*Fec7G/AndySHN~7lpSx+=ز\!-Z325<^HIq$l)qr͜/˺^t9Z8kF2 p8>(:6~w?yD '0w8?Þv5`5#]6%.f޷v>P3|8j\|C\L" @ƻX`@[861T+`իXԫ2{eȿ_:߾=@ ~?l憔c/U:K6LmP_ܑo(5X=2%l;۰'${ ,C z&Ǟ6u[D f1=ŏ@L\zwh}Z7Pe VoXT &9RJ|wyƆEߴ'~S<cÑZ!vh#܉)+yȮ!CśDshdЪ_=Pd)A3iǀoe^w5>= Tv^ V7WXאz|,G"%o'Hx JfȊiav]T*1Wi!3W0H !%!'Wu׹ &8/rPmPT^r[+= Vidfx؍*J'Zt#_e+C ]?f`hl5D6KGT c>ʤs12*JicNL kV&r7anVP(0eP(X:Op{%"F {`?ZTR;NX%SY8G?Z&o]֝[!Ҋj7ԑCcB:J&u_L"E:Nb[tm9Ƚo,r& AVuUAG"gqa-Z4 !P-N5 Wi >ڧaO-Or r> j虤Isθ|2lJVg+ځAP:-B`6fQBɥ}i,(CYcu$'9O\QY<N“6@r~fL#K JI1CjI(bK)bpd<m%ʌa|!GOm4Aݐ[*<1Dbi>@-3xD\BBK(vH.rKg9ܧ6wb4Yxp"2Y%"`M ş@G@)BVa"kRD .Q8][ν(PB _^zan wKɿS=!)E `uX-hP +&Ϋ);ՀОp _9Um>€O ODWN j$u}~oz.~ Ͽ@?gnS+Gk)Ԉhr< Yz=ŧ%'!Vԋ%#IcyĆ"$\S +`s-PwDns u"!]JVU/n9.طސ3&E;agKRfYfƲScpH yihtx6:aM_\nV[6ze~Mncd&\qQ"lcyd(f|i〘z>wpP827 A?L= Wmk0e6roD Byh1/` `EW%(BqZr'{46PjՇ #b

      d7UgfJ;yZ=/~+y /?.=n <2EWq'밄]EaeYI]2Ͻk1KYlK3GRG5#&ݗ@6Wo*ʶKHU S5[(qa{9߄OޫK[[ɾzx7(0tFr3'Hj`(j>JщUCX\Ur@R$`Zdzc @,C&;q'a~Θ9z,X,R;LVG~ ^>Rf RCI4`9'~󤉉0p֬˥,vLMt׋c&yo݉xlyDPܓGܶS,9yO~U7jO zc䂍5FPS 6hoPX`"'J"F8þ=){iKU'#)|!1^|#ue~Pz[=t\I@[jڨ8 n *Mm$?gSxS. XԪ!%+WU#^n);y$E׎)TY9,1lؤn6G GG0޻%x-YGyf'8kgDDyEq33ezi 5e۝U(ufeŽ\Tc`[oeAW~uF%] פUCD_䟷 :ՖoO[{{!9 3,4%D*JM;PNoDr=6vxB]ЉKN?`(գ爥*8j:ه@8Q" W /^;q m)YzM]? sEƋО I۷!W>$(Ac pԃr=~Q/50΋P|oz YVc`E89J2ZZ`,Mt2&壬<@]AM Ɉ5rR~[M,"@O6}K)A~4 bRJ67\g&00ʀwEy os9c%*Hr9yپN(V$ c;;tx 6GzD@[xclk3}a##W5]3[!\Ev' 㦪cƄf0UC]z٭azԛᣣ~C)Z_fؼ1ivA$G^,dl5n31'_0㰑wӫv .afWmQ.qb99$H'ͿK|9. V 0:l_n2>)씙u$= TǡleXsTym˞cj k*F+Vt3%1z$y;Kgeq%m\30< bD+b;Fu/gj?.qRMFNsV7qcyt`s:σN{vor@!)y; GW=uL|"ĭrV2]y>Br5Kτ16|6\:'y$kzv TS>BU5 "Xs&d&ODXٽ>1r.zy%tb&:p}`T` dY]Jo3~Wygz~cyw&|υbe_Su<뷩cxZhs<{|\efo ,U4Cce}߸w_ǟ;|2>T 8g/.518;1 3{/Ȓ>/ο$I^>I-¼?<)H+^op'*٢+uYx0|f'46ty>RO z@}$I$I$I$I$I9ep[zJ{l/T6~oh) I$I$I$I$I$Irx5o,WlSj]v ճ`bʛxtc{ 'I$I$I$I$IT O]`qb^5/Pbz->p $I$I]N8I$I$əX7/]v_v;]xuˀɿ)z#QL$I$IQ~$I$I\ p{g6/"NYkc>I$I$I$I$I끈9}!<Z'ysxF/I$I$I$I$I$`@2@Q?o`z$A')ǬYC#K$I$I$I@D$I.غ _e} I9Od5د-,$I$I$I$IrVrOre@oo_xL\v$jМ }مkRx<_=7h>$M˒x›p|7Ek7qs8ĺ!?Ȁ~& n-=Z>m6~:{M}}`m8:tVrs!`UL$Il Ja_8:# )('x%Aq ޣGT2 rCƣeMeX"α@5C'$I$ϔE +P]Ār04_߿zŹf|Xg3UW ޯڹc`wײT6 F^pmqd^V?KOUﶱן&>҃n FP xjlvAOny?$"$IυזW19 ` ׾G_|z&mG7o7?/$YsWo+Wxo1~1 %Rxmu  ^{}-03\89:Rou$p$I$ψ|um߹y pW7=}w|ulzhڒ),@fM%kz/eL)޻kw&jWo|Ὗ{+_ßcgŵ24ױqu|.^I$I ߹y _~uiKg}޹{8ݛ~ ؗdw ylRԝW؟B2 ǸL)>M_zx?][98]` RA]|{Ɯ{^.qȩ4탎*O$I3W[7o'xu ⣃=---x߸k7@ ھ?`*^?*|o1N{/q~[+ލextp?t^U߸r/_ڂfUpU<}1won#|}z\?VPDZYg 5rwb}y[F˷o]} rc<៽r''ώt4c\{_p 2qʌslAI$IrEUN 5ˠLyʱw>.B/sE;rk_d̸y:0 .<7Cd rXG8,7+z2U6UH$I3q&[zCQ#ϔB76WD }"}lo [zFWWo #›_[7_ l(r>XMܸ|o _E{?݁xz ,e|}%dY| "#ȡTvc|K+O7.p5!Slױ)c(J!I$IrE3Oa]R/o^ yZz7>[zcuPҼu(1?6},8j`PFFM$I$I\{_|?Y;ximgx5<ÿ 25,-?~K<\Yo~W}̸zi?*t]lc;&NF#u:Nc,p{&V~9=nz ?UuCx}e 7߼~_|>Wz= ?w/Ѩ8lP3t4%,)Ix ^hgxy ן⃃=)ۗwp0 =u{7@?7< xm|Wn{b],-c2`y{}13891V5|׫w>ڴTt=gtʢޒc<0fxRDYR)k|6<}Gc `cg/2#p7hĿy9rx4k " #q6zȵN#W5C?*x{}Ǎ}W ΑGN6.{_7_z7?z+'>a=YCflܸ8=$I$I]NDl?Ky*]`j}k3׉<}N֎@ ZRyC]5h`BwNqҤ0 h;ZO$I$\kl5>zxW6.&>~t?,?>+x/1p}svqw)YVױst[ko``ίL)o [X[Z—{O<|rt`;NаZom4+>NFC&̣<F;/>~1X&v<Ǐ# pc;Kc$IY7W^z?zX7;9NOCݝOӝsksIw?ñ3o+N]tГyǂUݣUVV[ZYip.*)DF +|.m(dP;AgI$I̅4k03Ư?:w5r=p>}|Ρ߅fvc/p)4k|S|p[˯ⳝxYt<*wm|rzgpCrkkΉ_3JB5asmOJ"`<<==|[(knczcJ=VpSbmm X\| v [ Ó$I$I-7K&F8 |`?}1@=̛0µ?ǵ'b5#%<:o3݂!_֌[:Zcm/9= a WxDH*Q$/lXugD2<~xncČ.g=(" VHq>2h?*Uag<XW Jag<a++C`qei ָ?<@p/x%z85NX ~gɮoP 5D OL)ͬC=nc+ː3Wd~kJᷮwg_=l]2.-cn/b{'Ghx$I$g7ڕkg>8K[w<˟{^~O?xfUp >?zϷ"H_ei{OqơCqkVҀ}"wp5|>ԟgXc| r@YgȎЩXN$I$9w@3~O ΗOͭ8'*(y)Z.:ޅB O(/m,d>;pT:mǛ$$I$yӽ'8|GgFCI3/{!NP`1<I4'rbO$IgGO)hA3c_Ti;;0sp~V2oE ů} Kf{f /setO? P$I^I$I$I$I$I$H ("T+2쩲B$$I$I$I$I$I zWLE}IW^"$I$I$I$I$I^]NzήB($I$I$I$I$IRsE9z颧1V=׾{QK@q]BI$I$I$I$I$I9EW}{> _zpJO$I$I$I$I$IA~ {lw7W~v/< eK$I$I$I$I$I5i'ϛރ<2=YYWsh.`o$I6!I$I$*PgM 0YGv+)ЭUSR5"T{T#+7\0" WS[+K7H&>|)2 ΂+$ ?tEn8vqmο~,;#w|YKuD7;t,#LjtTrP:M(\j7.rI>^E+[҇4e]Ѥ MAX"$08pPj^3[G ӞCwzkb](ridOd\xumud8^6> Xk/ ѕjVQz.G wtj<9`t4<)+ֆVFEP;`;\TlØ缸;pH%`gh-5L-d\h.[;MLN.klZ})iy>u?3]t#R=D]n潌kQ]+|,bOjX7}-:Ժ0$14o+ݸumǯ|l1浏CA9~1o,m^1"84*#pbe܅YYsE Lr:[9CӦL6'em)t*5IySKbctk-m6lW̴{w@p>oR7C5h{k쬡 KYtg=۳j{vK )~ϝ 7Ü)зϼP`o}֍4gVq4q]5՞ua,Wa}LtǾ\3462\ۖ-:ߑ2fpY,_4-bDz%x/nrO᧷z.M^̪#]}q,v }^;,z ymx܋Ӻz>6ZwЗU zm~Cο⡏; ;>/NɁd訍P(oKZblmӄYП Ex軬}0o<"z Ȳpq $\ sѴIC'&ayMp(!ܕ D[~Gbw"g^S?Ft]P'6>Q9oo!`3Uz-._$@~1r$5쌕sĕej +t h k Η{{ϥlu5-wgTG"x1E<8d.$4Iy7n#vAWǢFR{fKCx @޾ m=KtmA7ҵE4%M{(-80R,Phl[ 8%&[>v6Lj>g<[`}mϋu#g:|v?t{h|Ahͥ'u쓹szl.VS?-G3U=(G' a.@}z3vߕ-"ԣytP=N~CQGB\E4IR.T=){<ΛxsY0yf /J5Yd <֣*~ @eRK|JY.vߡ O8Gyݟ.Xmr_f3YΓ&B*Dssł 03&+1u~:l]mg(S}AwHzxvzonXgY؀Hz2z*O697Ӿ BOzΚJۆHBǪe_hc~Ϋȴz`zmGğ䡟t\h3\j2|'yn#%M>= 3sO͓ IDAT2%Mozs7豯:!!?(X$~5yuihb^!?~~{cƥ55(]5$zn0ta3̞y\'kUȥ բ+G@h=^T}3z4x>k<BC?-/KlфC?M=.z$yzHjZ?"z']].=% d^~@e"Bnst5 BcȋY߱=o[2_*HϠK>ފ\`d{.GLyH̬,d5"rIs5f/=hΞ=JH(nz[fGq07NY@ Ƶbd዁"|yq9 t#=&sR8x #]#"Y )[)`M[L^# zsu''Ads%>jO`݀$yٓzֶZiPH.>9A7Ѿ|,|]8|'Xx' y22V֨QE>骴ɟ>2k+]=-v/c-">KεSїX;3?Odяy(פ &"<,r$ZXaL=#dKZ E*>ÞWP'dv_\*bOfʡr5T>-\y-3:`,֢Γzܼc|!z,ِ|,t>᩷Q^k76q-ٔa0?i,!b[)>Cm&ü'b>~`-gCOi;J磗S:g(C/RJ,E]z Y"qigaV>l h gM8G`>,k;NRCf==QHR|bCy2d9I Z1)#@@%$"F=RMۻa-,r7}g0rpy8}Kx/bLR ܟfh }"AO>0OBgd=;̕CO1$x\!O}lkDX0UɎi1mY+/ɞ"T_oQ#Ts{/)N[5Ml/~+ߊ@pd NP2֙8:iyiq]Dѿϋ5͙^&Cl >A9A|3ᣏJSHsI<~^uxY)=Ǔ"$xs:|ŻEx{zP䕀\qGG֣PdgB+]'$_>8E>}G}(zeڙИ_W)"AiWgߞ.n*%Ms諾p}NCNȋ[$u6@O({N<qKGd`bk@5=1s͙inފYGe.uG9fOsvUN6U,$۔SODX$ e& \`]M.>eUӟs_v W324>8fc}(>^>}P;)y2%WlIjLWaNȧNIκg~ [z4~?&AJs{L,j*ӟ;>=})T'?͹l4XZg/I`3+>d`.hzba}'ozqNJm`r꽉p$Y+Z s2.o^C@>4ޣ$5(ʧyO;}COMKϞ_eCF OC/g?&,=29Ϛ>}>v0}X,U99|Z"u  ^9Ix l(aj6+N_B&6oa5%2Sq"!y9DIj%}Z I6Í+;ߦeI^# t>m>YMcQt$};n4̬rgO[#jgy(>zB2>t|to9Y˸>~/ Ea&ࣧP>4E0ߢ֧=ke2}}wuYй+>ϭC]QӪ6-ay0S2iRԵ/ixb8"s:Nc"Ya_j-I$sV|k>zr<燌0k+Z8w7dev1Ƨ8>$k;Ē#g{s^u[VudQTO5" 1sŝ{Gt?-@v?bM^; &oc5),F2'_+ BWE;J?#y4^\F>kcD{2߯d]52sco""Y:..cegլvc+L [vGR] =NnV >U]_᳧U$PCOiH@ڼgCDGy~?-e0ǰֿϒz^}4K⣗7 H| 4[c=6%rb8CfZg=OڮkeQ^z{~7W{!=/7VpniugQ~}`\yYRv*aѻ5oMw7)aԀhq8iǞw0~>/ SP":$wl5WAb;8^cuLie\X;c%_ZI諥.nˈ1|<"x2[=&yߣ"-}W&?ʊ;3>y飽cI/'e6;N1`SgG/cKGO8m.ϰia|I<Ld.Ba]gOT:ŭW F $s—H޵~r2w%pvq?TGw\}>,?{>@R$%D4CWd " 3;2 i4C[aӱW' bA ]$  }e"tcEՀϓǴV# dtԭ~=N aA#έV5HaݮiApJc2jYFw,u.SCh[mIhu⥷;إ6 5V9ԫ'bac"Wv ?ƓZcmL rTJi &lU* r;Kk :]谘x*TX00]F0B Uc*z;*gROҺQ" q_KU9i1Y$MUgLZ }Ɏ# IiǙ(9[z󻶞3%m:~Ѵ#f+tB`u'.#G'3EQ^fRF\۸#|qSc!5VT7U|qoaR5㫣=|>z?޾ۣ4\Z^B /wql?=wnn ]asMV6= x}u˕a_NW>9ߞ0SD~mqV6W0N=|~-0sz?ݹ1ϞŁ9Js mc?zc,eu;Y߿^_Ə6v~~zWڶ@`FC<4!BdS^J0z @5ep4G 73t5ªHG aLb0 *y y)W?.Q~7튞o}VO"DW`|.=Iz5yGJ|븠mRמm,J 7}r2R߇P!B=<۞|Z;0ncpein_xU*Z e*9C[n ^qye}oBR*xgu s5R :B7VBE+A#ӑZ& ՒWV6qs>@' dF']bw7c$n[w7/@<ԜfX7vp⋣]4yadK㝕MVY)0d#qQִfߙf՗O;-z(aWWPJ/ǻ\>>V쓇C&܀ Z\AKKm cc ۓ,u˂ 2;ZN5bx}0:-4*5|%\X{e;:b(XP*lqČ hA}k@YďRICEj}[˫_8 \*}k:>Z5 ˫xy{pS!"IΠ1z zqz> }ʤ<(c2q*<58lS><ᣟr4a2G}^=2(f˜s_C>Y*4K*%N 4b!9=%X׆e_+*j(k%|ytb?u;Wpnq ugh{'booj#O.-zzLu*wַ tV}V!7w-rӗʙm[].-lUoW]:~x|dz"$,S#::;}aM^ 7-M$}'yha|ܸaNXދC0>zY]sjD9:JQkzn>z"g.=KmA|0 >І^oqU|@O"Ghy/4qs'_w75wpjyn- [VYVAYf鹭_ji 9}^gϵy/C!%IIzBI8RUMOv}IȡO⩟?zeWy?{0o>zmx6Ni=ZX+Yt4p]Zyp&^[?-oӃkﳓ},Ux}} {-u".sl7i]VV 1BRřo!;xmm _Q}ITY^-bRGsCyx)FBf`08Zmr ^^X7B{<]``YlŞ5Që=q=ZdZ nl%w[PED!gfe/VB)Je"kbgWօxy-6OS 99 sG'Mм|Dj9?LI31djom&濮3%zo;|qZ%S)},93Xї"q#o}|E_ij`~'뜢9Vhx ^/:w)\xi6 ln6Rc{G13 V.~v󛏚Y\3m1§xwu JWivu9`AUl.,asKYa9|Vg@#v3=>j\} 7V6Vnn3g>>8zsArG̏˖ 8@<@'MPc 4E*i=x|ٟmˠw^=IV`2B/X{fw[P{h]tw9 CNJ>a>Zy̰tKy_;:έ:^9ć+鳎b4=EsMN '?4vq F\J@kϱ O/:#W+ ">|A@ʡG?Rb^=y@7ȥUUjd-|kaIlG+/GO&CpX;a7qF[T Oz #ee=x|PgDפE\>K~b^JC{ ^aZB^9}WxJ>Cpӌc6>zG/.]?&}lԊ ͱΕ0n,0dIOX 8[_A7puerVFB`Q 'n;.7qmeDhb=Okuԗ2 8[ognް#>ٟ73"6Ke<1ƎQ|~Opme\Nze! F#2DZuVQǃ>KLIjMWKJu@vсPG#Syou`e k5`yف>W?;YҗޅꪐO~tf\\vZg[nGh w.'iݻZtA*Әaӂ!Jnoov&튮>;/:m7xC ?|KK:b0#tT8<_`{LRKf3ͳ}SRVܢB^.ל"'? >40Ȱ0C?OV)|mMaM=Y,4h~à&k(8ݻ"YymQzH O6nGy'3L# Ƀ>.jb}V`V; ,rA% Iߞ㭍%nb ՗@ _lDO͇;M\]Z?S,e\ZZC{4~g.λ >R0 k&£<-+wxl 8b5gIEqr}ӽGM;ÕKVbZuTo `f4 onb/]\>ϡR*AK*.ob҃*aNz]VcVǿ*ouѳu0P˸ Clao0wc݇[ "/D㣏k?S|o΄>P$}(k%͑Nr|~$1R[ '%bPeߠ>AiOõuufCa}|pr`jlVV11GOa0:>s@w4͓Kso\>=;[z8*!X8z !vX.@DiSӄ~qO69?8=tAxZG W6Y0=c{xYӌ>H)9s>?|Bc;K`]|xcaݦi=gɵq3@% mzy4j! Zmۃvp.ˠW~\w +̤;3h=©iR/헮ɷnʳ'_ nt`̸nl1 4qW p`= 7lZ !'2~u_;c>5)OmqF4ūy*?_|͍LƦiwK|r|\(ADaj6L= /8^0YLt~Q_wpR7HL`pE'N^ߛt`(.hϛh>,:iGڊhN*(,/W?$m}ҫV]q!Q4wk~rǛ)ְxtw]|9ihl[~d!@~܂<~6xXHij%m1VuꚆ>3z`/i:,]T%MÐѶ?7fM@fͯ(63FbVvFԬ>R -1B/:D=4u2sFG3;^~ aȌw%i3JFf64=6}WOU@g;!W,ku4Ҿ1_}dgb`*Fj &-1O/5$AqVY0,Rʃfē+WQ zxSڸp''Xou_ zh4r[_ \X^ERO[')z=o\[;Zڽ>GcCw~ uЇJGgӐJSaѹy|y)22y B[1LG?7<G6n|^+^ ΦSOnats{tsuvd̕ᣏ:KevREh>z=+=ې-!Re|oi w'Og[л[/ɢAg]="=_`*Gh S*!-Yy]L~12e{`t$38fdh@OFSLV{7kp͐*lGhk%@K3Z CۖiD* ȣ'.!Uj"U h)*k~+/`Fwqt_ܻ  >t+PFyϛ(9h4~x% Y#+w0*)=KwW)"y) $֜VU'J4|tf]o&}n؛9iZ{mu$ v\q5v(z.CRs7y9)sG}%ȑu5,e;%<Ew7jm=$ӌѧG?Ua<6]R֊)z(FU熏>I^^7Ϝ#A&k[BOFȐYW2M`{R;(s,"+8[4~Kxu#ӸȞhۃjػndo".i2g<]laH5l3cWױXzm10^9fz#$FM0=5=dese<{HrL+^OqgЧ9d=YVOŋI>^+㺊B=Cgr?Ӎ[sSx*3' 7VwcA{ͷ\>>0DJE}\Y pyfKU (aDu*;|\V *X2sG-M*@>$lE}rѱ\LssQF!@jш;sQ潃0b dg>G+q ~PDEc1IT/T P/7}мI)g%5|/x(8)y賭jJgS&gGs78(>EG k;wYƍ"!)J%OU.T[(T{Gڽ}`Oh9d=EkK(Dv'~WhI$u8ٿdQiGbŀRt ⻅bKc[ӀjXUvMRK*R [eUZ=zKH4+=wZo$}(ILBq.ŕ>*DV46VNYz~^^9Hsq#i!eH^# nlC{IR<0o]^l*hY| JG3Y9١+Pg~}^|)xd{|7 *?{G!#6$4#zE'Y{ʖEQ& @@0@U `[|?.5.!Du{;w lQ7?6/p2-Dq2V$zH/>rq,ykHs]6P5"Q(HC 5a V JgRir?;^qiZטbu#Q1ZB+2W"]w6{Iu1&Y?"hS\C΋捏l2Gq5ir9%Wª嶇/c#v6B`>{Lf@X?̴gVڙ۲6E̬}~.}V \|qQ|^ZJY%.>Ȝ~eZې杏^D(Q߇LK>\zw]CO}$И˒d|3r5,hmFe4Qx&FTeb~ j|^P[4=k,:0dxbd'R=S!DQaNQYu˄%*dQZUas.zv.a52|E\d@!k)4u\96pwOsA}}4W=(^&-@VQmG^ ;)G0jQ=^~d v|VHb/?zy#Q}ƐM!hJ ǽv!V.2\΋1kRߝT 1*|-Φr?"U= FDO"=ٷ{o@(YIib⡟I>,iY仅N@> cB>:s#Dϑ'QGKo4o)G|sG~jQ8yr(M٣g\I.[פ7u9>jA"*]m78vYQWp{0Jzzr98S*㭕-<Ꜣ"!B F`WR4}A_40,_㧲ޘmc+^W|{e<z?z A5#ᣗW[fϓR+/}gQ=dAkYG_u]&Yȼsg?Hs }s"^ >+jmG?M=y'ϸL5uv!>p !3_}VGݟ8/u31Pkix>[(7 n :f.>_zbT53/yV>tE0!50,Et[{gϬaOx^?f2q1oz>0Mj YǨ=-|)p\%S 4dq$:kUx,üS}I ߓWd=Ӎ,¥ :灏] O<23(DI"ctNXےV5M ZTO";$e-㣗=kQRY^7yV/Le/Ӝd~Sʎ.2OfFҜq9v#0FV; %Gq|eF |1E Cmq2>=/6q}EThPO6y 1MIbe혓C lrG/]F8A&/>z2&;珏>8Ԟm93\xgY'C¾cAρ\vs'=i3.}DYvD}FENtMmr eK#GLŬCۊ_i`ܢ鵓%_jOg0]EJ=TP0aD &Mq(;{'۫*&g_^ϼ#’6-~;|~sV>|LuByӭY.ל"'?z~ S\j="3GkZg o?wNȹ۸Mr:dz"?GOcD)-2FAAv\B͐6 >z"c!'壏jgz/w >38 M@G/KXR]U %Ù .]$wDNvE0Qz dpf)t'T5v>˃πA]=ݝŮXޭƗxL/8N h ֯$͠ p|)>?ӅLt>ɮ; kԤ5#X6)hj+NA0O]VG/j ja>JZ'sXۈXcCsS!9=IʦIe<;b X;OчoS뒞 IeY5xσn#Rп߰_ "#JAglkV}X&س귨' Krߴ 2|V&̌=a HI',9ɾJI42Uм fi(Qe穵B;G" T2IWW IDATIQ.>C'\賯7Yc|jGͷKF+X^v=kJ}E%l'Hz(1}xB]! aD3CAg}Uŧ NLHJne–>,p9x3塏ItYGgA*~VZ>zNq{̓>/>bRE 顏b {/'7YGW&y9<CV0}$CJ_VO.%^>{'S'6u?4ʼ2m`dz_BP<%B̙2"\zrm2|iWT.}ʿ}1Bdz׊ʑDm~-j%üdk^G}|ye=q=dF|Iq dKַS{hupz\s:!G;{XbͷvKOK"b|$GZ*_ g'yK?EGI_L'О/@9!fHFfꞹMP *y!k9L hTtG[ud Uڟ=_v"G?y9_ddTMF8Ĺ,/SiH+EͨC0;>z~OrO'EЧ~gPUgXy a1Xd=;gGWkQoqQ|a <0YO-DM=&OFeVrA&ӿ4vҜnc|5-Wu2f"z ǚʼngG?sP=gvIu`Qq|2JH/>#>S^=`\H'W# YuUiPXbx &R~ Ydȹ磟V"&5Ӏl(9=}aMemg(>LFЇZ sY=f~q~W>E1O~bCu{IݿW;RL0`1"B N񼀎 ʻlDOyx塗gNXí[I _tgnˈCOzT fIrϛ>Hqk;nϘ^}}5M}gQ('$.8n|qk)Z爏~=Y BTz%yK?S g|=Q-tG}ܸE^L>LLL1yrLJEGϒ7=sֶ@|`ϥ|M\ĭmĝa%ٳ3%SCvO'>z̫90HZ3mG#}$?Le%q)Y3fS,cM~}$oPz ؛?tSc.`׳\'r]Pj V]㜣PCқ( 2Odr?76`y%13 aQ<\zJ}wG>nLT">aYGM;}3Hn1#(PN{Pd 򏊤\Pڊ8:k[RVawq&S({{Н2%):܆*b}Ɵ,d~[¨J 3ji8j=lŞ@!B[i1oZ FF#/"iBxERQ]T((( }.F z{e}#"hAJt]ǟj:\HO`P'] (:44 JBjPPPH)0cT{R)3Sנ:JRu Oɧ`bqY }InvkWn=HBZF#WPPPPPPPPx&|S/&GLd!L*[!gO)q2w b6r'MӔR rY) τڛ^|G?wc=~*M[N@1U߿سG I:t]W0 o[/yܩOTt):tw^2vWcW&Cp99H{ꕢ{Mw]-Z'K=NBem%~WKx\PFiWJ,J(z/<r/~"߮oWcNAv?66I#"JyWBQRPPPPPPPPPgeޯk>jy;Z>r:AlkϮz+?[)B,+E*xػCM_CfpG8w{c[x" jx7`yLOrEk.{۽*>M)((((((((((((((P7b@jone'={+oW) <h5r. ;&WXo gϮ{SMVPPPPPPPPPPPPPxAZ3)\^wSعUu;߬OJWPPPPPPPPPPPPPk (oEc׼|WPPPPPPPPPPPPPP(RKlx~G[P}=>A\qq<'BvdF}PbWޝjʼ>69RynO'ď{Wn=3.PPPPPPPPPPPPPPPFV ''~s"+((((((((((((($S˳CGҳk yrJc=~ )(((((((((((((xQTں03 8|q<,`V{o]u]޹ԾOy.UY!3m!r}~SPPPPPPPPPPPPZ&>: U&PO콟U==Çq]a0Ho)fnh4>>S_a}'}fY6pΝ\褐{ ;@1t+̊Syqik33>|aaaNx7{!Ԇ?QT?/h`0~MlmmŋQ*SPPPPPPPPPPP(LLɪ3a [ml^?.;bmm ot]G|7o7tPM<ʼB;$<߻߻-hagguݣЇC2fh4ǏQ!pu;GDr .]Q. /2حs_EV\.>P{Kw?< a0 TUMh4o8ۨj裏p\pQoݺǏC4Kx"oǏ!_DZ-|w8>>x?~ 888;#ܽ{?QT^9Pp lll8{p=!ׯcaaptton}utt/y[BݻxX]]ŵkװfp\.իܺu xwi>n߾O+WZ‹|E(4c݀Y#__@/r!歭V8w>|/B`kk ێbnǑh۞pu0/cee_5;wpUkh6!`0~+}7|'OVJ%F#t: Ox[\x &K!'0 +hZ}+W@4lnn⥗^ܾ}7oŋꫯWzcooW^A\g}vvvpe*>bggPquhE{8<>NNN{0h[Q뎡ß^hUFgϞukcqqRa "'2 /2T6 >.z ` c\?/ =ZNNNlmma}}>|sw[V:~l7o>~m6 ̌R(h4v3w ]C#zOR) c<]&>]gW([s"[e`/V+ t:`v[=ЭV n+++`f|g믱˗/cggF`f9S.n`!wRA@2Μ9e*?88pr bGjF?vfʊsp8`03a`iii€QQ.k >aDJs JZWU| "$*._wbooZ V Y_YYO/wG?NOOQT3g/@AVQ.믿.68dVX[[s }N)Ulmm9Ϸjs* p]t]x>K/9Umʇ~|o |Wh0 Nzl_*(((((((((((( vb[.g~|̦o=x`>+33O/BӲ)̌fv(kkkN:R h6X\\20 CΜ9x7M C4 lllxpzzj<0<~D&t].* '''V(NN;םGo`05.booJϟj9h4pJ%03>#@ 2677!zS~VVVvB`fiBAAAAAAAAAYayi?rR5W==q,\^|KY:] DfCNg+^b05~Bto Nq=a;"z^{[/ e@)~UPPPPPPPPPPP^& !ijn׶/_)͞ *WP!jBr劊PPPPPPPPPPPPحsA\Wx6@8z{Adz奷efG's#+_D e^) J[Fz|J|[{Girk Y;ό%*(((*;KBr3c4mϸĩO^eۅh6{30{fr+=EݭT J}\iJWPPPPPPPRiiGzf|)+>>EY׻"5GAgmϼc < [gSϧ;FWPPP+BJ%+((((((($TKϴrz a+*/le8`>O]-\zKg1JhUPPPCWwך߅B 0I`+X}f֚^}7cLWy GY% `&3P{.ڬ(*o-**$щ  8!$AQ&KK~μ 1/W~_3M{y *AA4z%@ȗ :Da=>D~`=̬mͮq+ADKH  8bGӈ|tKu-9oJq^ba=]y? '8EDAA1TLͩg8S,ks0Q.-#O " ^   By o3Uȩ4-eVjAAA!47?D;Jk+_JaΠhjk+'   ڽ3|9Iۅgvz[aԖwAAAAɡ/]2_ϾW^[C g(    a|B8;x2 %*j8o{ψ`0yR|aىj   #u}5->R]`yӝ+ۉ*ҝZl IDATՂ{g%9FH$y\z$EAAAQ5<0>ҾDCS0Q.˄U_i2ք$0(P9G"8R)*Di AAAVQj[i /1E [zm{V:(?Jaii Xqܥ9199 t(rAAA;YJgL//W+3H:b^Ř|^x\$ӳcjj |M(T*oZį/D2߭믿F0c sg.KE(1;;K   ?G1WM@/qQ _Z!f҈i\( b||@ԾoC:9Nd2 zG$g( +_ܹsz@AA?kCڢEp xѣ]vnoo#```ssshiiy|j9r$ LrΑa4uU|D|@$8vH$D"׭ ݞ(d20L$.Jmmmף( ,L&SYB51EQq   cKT:vź://-+ЯCH/rqﷶ\\#9W9; W~ΝC{{;ݻH$}uF" vvv9.\ nt:q́s͆+Wso?^\x@ R)p |> #ݻ$I(2 b:Eć~׋@ 'O`wwϞ=,>Sv|AWW8sssC6hą pyȲ 9z155T*ܺu . 055I(шtuuQ7  މD6Eu2"aZl^];?_:ihR¹t/s^>j}Zp駟񠪪 kkk: 9G(˗/q \|@O>E]]^/Eoܹs6 kkk駟駟nݽ{NSx8nΝ;>jkkb _\\Ǐq-x^DQ}[n chh|baZCQ<~###}6cXZZ(>c\.lmmѣGhjj' AQx*HGi =;;;F{{;|>ߙ{9D"{2"<'=e]X+@THWW'M+쯉7cp߭~}}^===Cww7dY>1|hmmPȋE<.gQFK444 pUUUX,e1 p0Zp"@K>( \.]E?s\|6 sttt`jj puuu0e6MD5fx%._0PUU|>!njkk188Nj/B!TUU N,Gy0Lr"(zuT*Y)bFM~(b:$y~'9E) y$?殂m΁UxAW;Y51#H `bb׊zu浹(99/i_U_h5z@|t gOf9~?B>4a09Gmm-b> $l6 eY444`vv\Lk*B$AMMaբwjXl6E>qD"H&xG4b4elV_kk+fffCmmmOFE<^]]]98$IB[[^|/_Doo/v;8E72cddD͆WL&# zFd2`YwF"c0҂a:FQSSsԈpϑyfH|5N?&@B Zwuu^jORq_*GZ%eҚؗKo%_/< 5%瞗 ߟ$IB(7[6"^JQ! Q,U/ݞֻSlnnբXI+xP?rc?*DՅA ~d2 .]FF477cccC6sǡuGEښFzŶ].<(jkk 2\.뱽#hmmH. NxPa/ X[[C&b|CMr8GG$bA]]Z__.KO"R*(`,w fۋGCP֐[d>ap^ [ Jm·A3QP(M~[Wg>+1h+C 4*pHPDQ=^;@;y4fffpڵ2aL&1?? Qx<0J011NsfYS혝ESSF#E0>r9w栮x2LY>V777cnnN+TUU ?3pep8H$-v͛֓d1X__'j\KeiCdR,N&8p8bZC&u7T֠H$PWg0p8u嫫uD,Q<,֭[}O¨@בҠlmm & v(}nF5Bsgo8`40_Cmmem, nwugg_ဩ~,"S4oƲXOLyJ g~ll X p8HԿ&/DHV3T yqF&rӘv9{x[[[f- 033vݺu <I/I| ~1ׇ?`0?O$ uuuwZ[[fEA.u=MMMC.CoooA$\r?~|>lmma{{~)F b1 PZ-cmm .]c 6 ;x6.^jN9H߅B!\p b466T{s{{|^h iQ[_yvvv=|>itsE%biiIWSߡW}qfD"r9ab UCk+x$ 0vv^ߞ"?= ի|^g!v1<\[^%9-WAI7A)D"^o¶oSoI-PAkgThsGQտ?P̳S% 9\P +++"[0g0`u*+:XmiixjC;v; ^/n#/\J. n[;N@eR)ҥK|ٌ:1$IT͆]dc fZHRPɲf񹵵jc 555"h4pZE-׋+WZSݵp8шd2\rExLWK :J:0`0qp}}kkkX,b( fgg,D",H`{{$ . >ͨ`"|>0FJp8 p(FhjjۍFD"eJkj(Hpf2(X^^Fcc.5Jkd98f3\.EA֖ 0Y>j 4Jo@X\NH/L=0P]}hf({[e9G nHA'$ avv;;;:"Byh& X Ho}f,>GǐHTlD}cBCbT@}QK{_W{IJO[1Cq\B@[~b}.t{wnnJ6tԊѥ˩-VnjK7XV+z{{ujl8h[_cBUUx,&''E6Ļ6 xUUU0"(r9]wXgվF1x^~il6B!XVAR%qZc$I{s^68hy؈a+ʊsߏd2/[;Pnnn"LAQSRB゠Wf <7");w{A[v󘜜ą Dٻ$굅X-8D(<εKe]{J$~ s)M)MjD=L;>վӵBQsfѢR`@SSIKWǩETf3EA:/T*"hllӵ68yQ^7d2!N:j8p򻻻HRb1vd2c9`oo.]z#9Ы b驼TX"~o>8,? _ kh} *K.n2 SO}>qmMMMs^} 8LJS-rα_`P~{uהg,IA9d!^/U4B&''!˲9(k}gZr|>d2@ "cX^^ "(J!g2FSrh4bmm |X [F(HPS}(WYzKD$] :SS*1ob1HM0 NH!CP4*S,qVJ޻&pO^z|'=ZPr qL&|U+w5EWܣ.+EW~?g{؟EсFA$c}}ӧg( FFF I^/|>1ۃX買xA0p9bhh@nOO(^WWWW DU1 v, 055ep* G-_SSNL ye>`ii lúi---hoo׽dY}VۤftvvP(,iPZѯ{?໻ EH|8JXs Mf`3+w2Aو{DZ>K?/LJ{0gŵ%Dy}+qwB}qyT?H; . A4}/Cy\v?Js uۊQVWC-NZZh4 bB ( ٬(rg|>l6 Ѩ[CQtuuqΣvqL ,= !;2(/ 'x @ o5B9LbqqGN28_xw軎(ۑ!ElvQyZie{{/ϊ=DqB=;V;Z qba-wX9clB󠢟yKT17 e8HR訸]4ATd s1,;ɵء W:mq$)PA}/hkQ(>AAAA@WD$>sr/tׄ$@+S<   (x^g~mk[-g2笰Lj,-'=AAAA$ڍ{9F`kĽf>OXQ;q]{=uݜ<Su[t#   B'9 J?8?@PDVx1ѾX _+ Uz'AA=Rh0ٽ9fb`nh4Vڇ#I JT1]%{ʝ > D= }q® =H@A52 <$Il>t\.l6 L& B'=zeܹs---gX,1#f3ZZZjy4K(/p:ꫯÿb:6E.,0G> L&P b(ʘ0fxIRd2`0ЏG[ӗqUU/y9-CK^Rf0 ~7_a)>W 7)ƖXV|l;<< 4443 7aW98oS9G.C4-t%XYY$ID"܄,e$IyX*>DX \nyy>D{{;n߾ I( >|@ P6,˰hllQUU[( ' [u|D:SCUo=Eӫˢ߷(w FMABx~A+gҐ$A8Z[[166-~WćB!!͢"^p/^" IDAT,裏Dp8pڵ߅(Y[[ g x,nFrs8jkkp8T H똜G}.3' HQ~3 7hhxUKrFKqaA!C Eo<ClZ _ֿBfY(g f/_w} zzd===hhhfFTd2͡wqsskrEpUKӘӧO144ԼATկ P fրiyǴ+E>xѣ/nIl>hH,n4U <A>hiiAss31??K.錘`SSS084|EtpH:i&gyG$|^uis(W;Jt4Uu9EQ D=k4r8{d=/V+ 1==5TWW~z܏87>:{84φ q=򺏟 ެZe4+BCVWgWX k 7  ^ J"Wb9m,V\nlACU5AȲ˗/cmm E$R\RѳF$ XVv]7o.9@g,`bb,իElnn"񠥥>bd2U,--!jeypl: `҂#5,.." `0ǽE$ HnB!lmm!s=1_W@.aeeKKKH&hhh@GGǁ,ְp8 |y*&~?9Aww7^M9&&&)a0^|L&TWW~B!Fb@>F,񠣣'z`vv555*~?(\.Z[[Q1!`qqQEss3nƞ`@kk+W79BL&ۍf UGKX\\D$,|hkk;s/_"N… HR444n`eeFlhjjBWWxde$I\.tttH$X\\b^ ?qO"dP]].axx$U|O'7R\+:E=C_J'nVb$9[}(cf#Vఌ2@8b(+=AVt~Edz#ݎX,5XV4441 jۺ$0;;L&I1??/|>_~.Fbub?5(R0nl`ffD:q{abbl& X AUUDQb1H&r(Z[[eH$x~7b1L&d2BeՉ?::p8L&#a|>avvHl|xX mmmp{annsFa~,--lH$c<}H$!H`ii ~C., ={Ujkk cjj ":N#"H1 ayy]]]"L?cbbs\pAghIRx bI+/_bbbr ,1_ZZ8ZZZGtBQx)jkk7qs ׋/G~ 8wjkky`0_~XZZ.Vwכz. QCCCqz{{a4N1>>gϞÇ/i?cccX__Gcc#n޼p#dZěiC'wPbhq v͜\#|bh#p"QCltSSS~$I`ss"Q;(VC0p%l6HÁW;;;-bBQx\nB[[L&$IBuu5nܸł Q;BetuuŋX,$ F===x#3 / N'$I`@SS.\L&#(kY;M+@J?G"8\pfQngghTlcwwp:ujjj`0 2 LP{-ϟǕ+Wt:a0`ł]R#LtN&&&xJ{X[[VVV9G__ IdYFkk+a2 OsUV+>׋~mmm@&A<& BeܹsMMM0L"LΝ;oEGdRH$x4B\n7>Cf N ѽ ͆^fHՊK.dR\7NsB!LOObݻhdB{{;nݺU⟚tz 1@+\C_hw.5Vqb;\+ycQohTmh$EQVz&A a}}FQ M2ijgD!)&B@"Qg&?~L&X,QQMSоɤND+B 9FFFgQ,//cee. ===:v쓜ӎgbZmpm{DѵL&>ccrrϞ=V=qJϚl6 p1EQ*n4cBzQjpWݩ_rwEQdz/q,*@ /ox|lcNi}y㽸㱷^/ ,00L#<\@ZR/@jD' ͛7. }mVQ<uqq~n3D*;w,,;vvv*wp7nT S^Oǃw"# acc~=m~~/3EZo?ĢzbzloBAPs@3 ɤb<.ɩ⹴߫`X ˲huV.py ^<ann. ׮]+3Bnܸϗcjx<^1s.>Uttx 1;;{0={AN*eqαG/m]6hhh@}}=zzz0;;_~ZZZ^), `PJF"ny9GUUUgA:c ,o0::v՝8GM:& QP1gLĹ*Ρq.7zV/l_4A(dYFCC_\*\t---"^$X,r9%;pt"Vzr9CQX\\ė_~ 666J`F_t*~-aZ`0łT*%z.l6jjjQ \ u\p8B駟P]]ϣMMM*K455!a}}|^lS;PeW\6 χ\.ya Nm6ܹ~O<a21x7~:{<|+++hllQ(@hkk;Z=͹?2DZ&0ƄW$YqMR)LMMauuB4&"q Y˅<~zEQc W\Cgg'VVVP(Nl61k׮aj͛7?hllD,8qܹVXW\/_ uuuHøtp%x? ۍxEsMO#$ {&.#H^f 44iG{Vj~?$IB{{cCMM "677Q__>ed׋P(`0-$Ituu 1i6s 455[Ӄ[n) IDATE4EMM >n`0D"@ Պ}F@uu5Z[[z^8! " l6֭[^s 1"I=Ue.KLhoondBcchx<&ܽ{$!tKYVր@۰Z~:uW @*B{{{Y D5ys@ t:]>9"#caa,ܹs|jÁf(ma}}\.\[t׹-666ׯ_?VӜ{zr:( vwwQ__, L& X,6ܾ}[[[ejgX^FltnܸQ|ceelmmma766xrt(d2)>UUU0|Z{6t_@dD1)Qbmg޳g$|{}7ff8)KeED1GLȩ Ld~~^HQUPzҒ\ BƩS񠡡x\>VWWr000ek=aA:8V+:::b3tcAyy9B~?r}k=_SSRannSSSXZZDZ~{cӉZi9F1>>ݎTJ&WتqD1T&=IWRo؞Y7F+|]l|r sp39h(-W5ZuaZt:]oN9L&eb(s%%%2li>4Ma",;o)wOE"O]a1 U*^fYK1ў,k_3X+]]ZZɦ(kk$X\GT+%cg6HDY*EAeUԏrGeaR2g Y=wjEYYٖyY M7';---V[6[h>ϩ[\v^Sm_Nn;m7EQ W;ͅ qvos}&rm)n]/[y{ko;ThT.)@8gZ;w=ݺ;.?TM 7{0쳬k?7Nrl ΩdmL$Up+D*SHB2ELaI  6B4ܻw/_4M^lcccD[[Yԉ?_يIq2+9T&ܭ`PHgwWtgWrfc:kgZs3'kYP2?;_j=SMwHob'>X6s# EQ466brr׿PZZ Áp85v8qbZ+{yyGN{^˞*: Gnz~>Qnv=7욁᷷<+>0]rPCC=uM4 X zHn `*j@)#J5$^׳KLćJuM4dE' (*c޽{QQQ ˤJYYY? MgLPpaJ/IM cKC.~yau9͖pYq-C[4^uܸr+ˈFO@`ame=*eO+-F1d9*LٓLjD".^_'>HT5uu" 꼼>ݦiNAo.#"Rg>[G^`ڳ@ԛĈW cJ `~vC8q\LH8׮c޽C"`C'F"8y4v;&pM|W勗pj5j CAQ0oQp:VUйQʯ tnhْvʶ2[B÷+'` ݞ:1 {EUp]lގʪLek8ZX8nx '"ydAA=m-c!-l5/gl}a@7(z=cAw33VLP0T*h4R]xb8++CSk+V<   RCk|=1)\-τ({!!"繈7/0^耸lhg{%Js`qaz[{,J&ގvxK}L%q!mo'qD|TP<  ة(W%d|nB/^c*2ٛ3g\-`Hg:g+iB3sUÐ}|^EU{(XHgA4$ WT  JKKQY]M8@  bܐ-#s6ۤЍB>ߪd~5\|<DZސ8O6؍qo)ϖ1=9ښ.avz#O?bnf&3 0EA*'1Z:kJt*,!-_   (*)Y.ij4#'yQH_YQo/޿M Şsv$~4<[Y]n7ڊf446¿+W ` SEm}=n7ǃXjU1592UTd>cē!DBatUU'>8(yAAA산AlLG7Wc:؋x_Douag陎9FӞ=o%=^/Μ=T `QU ESsBkA4z3 pkjd{(tzO.ć %#  @l 8rco:}?@/7)^Ayo]kIكl|ﶥ.fjjkQ]ScjKQա6>WQUJŸF{WW " JGAAo)]}<Zk1?GeTxXwb^b3X>S(hٳ5510i7<~j#s.  YTl%q\ хב .`l; 07{'bk홢A Ckk+Z[[i@  >{ H8xH'̆t)Af<ŮKtϭ'>LUa̿lD=ch&QOm8D"x"U  }V-zp8o*Tz:u ,|A| pg9r(L,8@^( AE1-Ŷ7>{.-AAl.3qȺ+N`/b_z\ uS >TeD:|̘_|Af"GA躎G!FGG `gh 055)DQ8.>1>>EiuuuT  b#er3g-c02g.z*uC? )ޞպWHxFҞ 7cnnkkk%D"\.ecaaׯ_JJJ1112?U94MÓ'OCEQ022/_ ǎCII   #v` e!y^W3gD=]M(Pg3ONAEQ7߀sϟ֭[P(W"رcDII (^xAܸq~-\ {xpd.//x^/9BAA91C=!a^X;b!@K\Y=7ד1㒂oCv:3sd?M ~;q(B Q9Nj/n>|Nv]]]x捌x!cO UUQ]]stbhht"  R9cg?p5ÛIz"=L9=xz@N)<<+et >H$FGGanł./_Ja PWWv^/ߏX,Eh  #Chg9Bh&7*̺᯷ c ̐x,DZ?=A` n`FL&9G0먮[ |0TUU1@ @%  jobſ(WZx+k,+Qs2G iP6$# >$t]nb)nHRD" |E- cXYY!aOAaN6$3 w؛b)WZ -_3@NQ3 naTY}鏟2IA|pANT*ML < Hs^Pk9# ȅu=XtFznΞmj)P³N9kjR[DI}A|nXV$IbD"R)l68N0rR9"8(++AAuA܋csQLd癌2Cϲd7  WZb1LOO94`Zd㕔`jj P(o?d/^bA}}= {  Bʞ1/> l٬Wr9˶y2?,?K9 +1Y~qqK( 9͆u],`۱o>paDQ0ʄ|g<73(ٌ:CktE(g{TVVb``CCCx <HǏ1991]Нtܹs˗/sfCOOKOA7Zfmo6RE8㙅rp. S=ۘŢ#bWDa(n#p)V477##JN`zšC. 6  6# X>oYY/d Sˈ_=ϊ~Rx,{,<1Odgd'bwu= 7N'Ngm, |>߶۵l(//A& آgF%^H3!sE=3ʳ&{_wl)}#Sqiϲ    *|sz=_㺺@6?!gk{U?#f,kyOgz   uF5>/F,G3@bޮ+F;c{SPOAAA0z |nz旯ETll}יX @%?I_F6G~>   C"csBr3缜bɄ/3SG|&4}%.HAAAŞ!v= ڄD/o@&Vޘ^gE<˚Xdr[OAAAy~}׹!~V5ݍek08g1${bMÙ ]ӊ!AAqNdJB՛3s |v1@5Z-3qtK/6f_?jaPH˄B!  ヱLz!K}7lW2w,oǡe{ *g2>`ʻuH{  g[Ťtq ` zvgw2 +qq {l/&QOAAAȎϋL"jkkw/qF-ͱQ>Dswv>ٍq7n+~7?Qo T7.dQ韣@y\t{aff8}a=z.\@[[_.ٍqWbppx266СC8wq,//v_|G~)N'.^hֈ983¯ߥq7e+d3lH>__3e@ 3 xALSE;к#LBUUX, 4 H. %%%RiZi0Ơ*ZZZ M`Z \6STU(y툾]סi(4Myf1&Vdw8ػwo7CƘm8Hu=oL6qs]ǑNii<7:Oe<+c IDAT# &Il*tM~"[rF947{qL`sb׉\^׹mR-B}58FH4ct:mbf<^.v>@2I{}m-{=(923c3h4*Cўqaȸb`aad())McccX^^2&''7ߠ PRR_3 100 Å v~_ZTUE[[ۦfJ?^xǏ PVV ΢+++W_}%C:099) JattE;b;_rs?>ŵi={ٳ1cff(//G*ӧO/)++qA zt{!u^1ݯw_ԥg2+_&YK,u<A||A b~~1455ȑ#E-&D((hii)ꊩ:.]$ ޽{ۋ1xxގ~]]]hkkL|/^p:8z4~/Ë/EQoeKKK_ `ѱ%"ҥKhnnƉ'x "l6N8!'.\9C$ 0сĊ{<6FcLLL<Q]]]T$<|kkk:vm?33;w`ii <ׯqx2EAmm-zzzxq-@Q,,,̙308ܹX,k׮v/(/'hO<GJvvVN={pal:2.O<cr_£%JCWW033]ՅÇ[n/_Dii)Ο?&''144X,UUގK?::W^/_D"ũS'O fIT:^.v>p^>S\~Cgg߿P(sΙn2?>ypM|򚛞 XV$ <\z|> \JK #LǏ߱7o#a/x2ٳg%%%-"zq3(w"BUUq|>x^Acnn%Kh\zB^Y}lpT䉣*ݎgϚ#cL.(|R urɓR:ɾ}H$ 333# LZhmm 8@-=ckI ^0%7j몌yYOX!ºy A[Qȥ9x}ZX,&p|5N:˅)\zӟz:cJk۷QUU#p1躎-MEA__q-8qrn˗_?6 # 󱼼7nѣE,Í7( >\<$ 9ycppHΝCII FFFpG|+++t:Ǐ#Nݻ,xpy\t mmmhkkF;t>LNNٳgpBE%M099 ǃ'N@Q Ν;믡( .^{ٳgz*+ܹs}6N'zzzBqLpq\~jii;w HǕ+W7aaa׮]jkkq XVrT*[nΟ?ՊI\x_p>DZ~]]]]0E꺎ey}}}p\`azz7nDp]q @Qh&-| 4MÇwߡǎ[__E7OǓ'ۍz PTJޫBQUU|>q[\\G @EEeeePUcpp8wl6޼yWo} X[[Ù3gO>ŵk?iG (--w}444@Qy/q1<;ABH2įEntvvt c+H&`-\.pxh@@Zcy\Oߥ}Oٳeee`!sjjvGa\ۼy&VQv}s y~=ћq+NyOA|kA1h "W niA,au8t萴?~\bƁ3zt:aZQZZjy^ pb9s9::9RUU )X,x9B<fggixoA$(z&+wII g޽A86Y{}f8N|>={v9~?SXV|'bǯ7I UUt:!,( JKK Œw=wjgg'nܸd2 ݎQGG'fffw^n]HII ^/E[TVV:9󡤤DƳIrWWFGGqȑ %#~O9zx9N>-޽{Ó'O  b}}:?~NtvvBQ|>?~/^D{{&>RH8pW\Cv[[ ^.t>Vk>577˗X]]Eyy9N +f 1 e~_~l###X\\(^}}}RH|;8ygЩAMM , n7džF0߿#GkHᄐ܋*zcXd<`QYY&ʕ+8)ξ>q:t:]t:!躎/" "O?qBǻ%:;;M +ƅu.kC~?T2rW=3zc<7HgxN2_@au@Ϫz.=3pK3F{  :u*O p1Yۊh4%a?;;G&>n{GvV1kkkH&Y@bbljJE9PQQndeX,&WL!Mp5tvv UUU[p3ư~%Ii͙җ&QVpxBb3D%[$ "^r> q}ط.ajj C2ÇUp"ڵkZػw/*++iږ37o|mC:γ2`Dv:,K|2 ˅x<._ӷB^dXԄH2"!v+vܳ_Fkk+StAOxPB4աUUUX,&m]ס:Lؘw]vU_cjjJ8pPlR)<|t'Os޷o\.wO?dӎb4-xD$fo`\, kllؘLXl[Gd2<_z?1&#ѣG϶xb bdtm/ 4MѣGM[}~!]Vgb'ˈsoȖϹs@3 ,yOA|_.xh4Ǐ&[X*mJr$^8nfáCjnzii)&''$z;b1(v!ݻxA^Bb:$n޼r94"0DܿW^xm2,//+~7fC*B*2P(UUeÁӧOK6_}>^~mAsA]"\sDbL?co2x1ݻ8p, Z[[122ez #)4 X nG]P^^Çŋ(// =[?~,s  SRIϣ"Lf!"pXz䛥ϋJ^(C[1F5p…*SUU%Ͽ(ijg϶`ٸo)cjZ`ZzgI 4}{ fS0 CLMzL<e}q1 ~ }mm-LVd2-/^P]111T*%cwR|>n_L\qӤ'Lb ƲV;X\"K9NTUU! mH$ߘ%<6Dj>W$ILMMɿ!&rj%IJ,jbb/sssX^^FCCZ,$I&`X011!=X0~',..LZ%&bbbϭ\KHR4ŋx/nł<XL;cccZs>p}mX1JLLLȄy@ƥ~~ccc2hjbttTG]155%]=(-2y=g t:Qfl6陗sɄ{gF3sEܹs]]]/HX{.JJJdF4 bqxxX>4sn}lG~!98}4*++ /bG4MUBVVV]lg7Zhjj^sb1`p8A<N^Bٛ~ d7ol^uA eBMDV}.v cݸva199 ۍMc5㧟~XQw J]~kkkYϟ?_4VP߻pe!Jauu$ VVVp|]=JJJp}Z]`ikk4\&,--ajjjǃCZGEEEAC]]wߡF|BSi邻JN'n߾O"сK.t_ÇeV,jݹs. |[tرcs<޼y)݋/Gyy9pƷr-Ēw܁ě7oPUUa>^ܷo.]={`ee8}XwHi<={, :;;177M=Fs\ʊjt:q ܺu @C8g}fZ_QQQEQ:tH@ Wٳ=n6Z|! prarrV޽j<t}Y,sb:.2p~l6X[[˗/o>9/_F$Auu\@>ڏ>\zHAssl3t}pQܽ{(-- B=*u޼y@{{w34~ݻWf?x .]ׯ|sbxxP8{,$q# kdOVYžnmϬecYqyv .>ޥF E!yO.>Ťq7]uiY.]#J`0444 X\\*8P[[ &'TJ1" jicuuJ.Ѩ~u1 BX\\ښ,c%Y$e*,˥4 rܼy?StR033׋={  aeerYb<v]b5gggeea!/JPQQۍ%TUUrL,4=Jryy= ]pKKKHuy=.Crcx'&& ۝7UVVײ2?a[ZZw;v.ג(eVVV a,,,1t*<^1??_:M1΁@XLq5M_WB~\~|Ͷ? !`1 wNWLC#^¡sNY ~6A#o%[|>z z>~>}m}n_!Lj?fbvqq~ϟ?_|ΏCycv>BX,>}7iE}&䦸v@7'M!)\WY: \HLI8iz wN155y9s$$Lz2<Eb0҅Ϡlc'҈9"X!dHL/ כd2?AH{{{BF Fw&{t<,ߍ>]zt *8i@*͑HǓFp%R)]gг5Ybn:CnAA AOo>͂gzRz! Cճu¡*uY4G2#2m IDATiFX!R4qWO1;;k"%   jA|8TKƺs hid uĢ ^be   w"_XsEQܛ^Sz% @aJ9vsW2^԰ٗ8XF[9Rs*&''Š:`Aaǡ:0fff vXt]iu=/y    ʺ07c9?yKY!o)F?+U?Me ;.K|g2gsd%o޼A0n7 t]6pB4 Gj}㘞 Cmm-<-{ pΥW3?" o߆@oo/y!AAA|u w{b/Ľ!#>__..w.b\9 ,+t`ҪKNZP 6XXXxx _={Ojŏ?- &QMʄE>/lz.d{x-g9%DSSSc녪X]]ۖsij9dzgp۷OZϫ0<<'O9HRUU^GQH&Zu1&EhWl/08Zy|94M׌%^6t6ʿ ٪P<***v_Y/~A)x<Gqm/;$ fV͊na(yvrdq@3>?zꫯ( ={&Ǫhjj" qUsݩ4._·ާw?aKxJPZZ>TUUÄ t}W6QFzh|F|e%?9݄g]I9iaݕ[aZqTWWKKKM^L(QYYiZƁPRRp<}/^@8j׃1t:۷o#>_|͆t]]]8y$v;q1TVVܹsŞ={p9x,?=\.\pOƫW055%'`^³g000?555xbfxx8s kX^^ ~p\nPMӰV ~|·]=^~ŌW^ѣG~ ׋W"РAo+M]LI+Aύۘkګ88dtϼ+ y}wYgj777#ȉWuuuAː(zX\\p `ꂪxQ__vIOߏ9twwNaXxBnGII JKK{~!<(P__E!Jӧ={6HrPSSX,n8] aYOT*Պ{Y-u]G*aCŬú#NCQX,~Pb$Ĵ*,7il+n׋cPUUv!V5sV-c ¯6k;W0-cXmX%wcrBׁ~"y/tn')mǑNiZTs`hmmc n###XYY1 7{~GN Fg]t@:K9ٮFכɝ\]s1/:`qq~:jjjpi8ND/H뷮rRn91vqpFH$P^^n/{(͛7aXЀ~ >NQ?@KKK/( \SNwbii 6 ]]]¾}g]^^Ƌ/kww7ߏ[n+ 녢(A2D]]PcrrCCCbPUؿ?l60._SNpYܻw_|lgddcccϷ-9XXXCKK t: kvvX .]Bss3N8!ߟœ'OD`p ?E,>|kkk:r )H2000rYŵkW_96ۧ|GhkkS N _]]ō7099 ] w^444`||/_~~uw-[_?3P___u*S~:ȑ#8r,uQp9ĉ8x ?~k׮AurFT)%1==9uhnn~U9s/qQ<׮]ivލa|>8p*R) +++\Nӷv&''qQ|hhhӧ߿ϟ̙3ʼn'pQ<}wU+ѣGu|j(hooǓ'OL&-gk躎+WٳgOp lٲgΜf8}44MѣGq b1={L8v"qH)qܻw1+l޼OV{u]ǃD~:DDnՆK[{a֡-KE Un_B4< _/WKEᄇ8FHjxYLLLX>qnn\\\u|0D"PSEjjjw^55>*(<>dtjpe/T#C̠5558z SWW[bddvRU<Ǟ={Ks#QWF4̠L|GhiiQ _|8B,S 8<n7H$p->|X -_qW.HDDr<:_FKvPuR @ꥈ_k\.xÇ1;;x<|>e<|l6ZUkkkՇ]vt:466Bh4l6'O|hiiSX.K\`ddpfPyG?u{ .@D`0f@J&Ec>i0c~bsk!2Ja~~mvH$Ѐ[n!`ii ^8w٬`m^/vɏ?۷hr,[_ctT0$KCoH)DPSSgϞ!H JazzbVMM͚~?6oތtvvbnnBnihnnƃC[[fff011U$ 5%dY,//cttT^B"Ӹv>3s ""zd/}0c_ C=UR/λ/>"opA{{vRJ,,,!U_:!iӦje8|0.\IBرBD" ˘B(# իX\\T677˨Eooya׮]8uN:FLMMaeeE=ǃ!\|ӧOxֽیeF3=T FFp\,χY?y^|'ӧOqub$Μ9 644P(/麎ϟ[F)e@4EGGjkkN_ʻB [O$CgggՕgjQUפ/ slݺz/l0 YFFQKC333Fhiia""ڀaU}ZU= ЋhK^x)aEo)g/huxyMMM*މj6 mz:? 333XZZž={ԤBQ=X]]Ң>n9rϞ=SyzzzvJT;v c8l0\WootCCk<|ØRK !ՅH$u$@mm-R{x<SR('0==ǏСC4 ===‚Z9Ud2 tuuad2q~G|ZMLL L/j0Z{>}yTÇq!w%JY湯Wcc#^/>|zN-זNv_k)ڹ9Ad2̨*V2;}`bbUG"ac^}Ո9s'!n=ׯ_Wok?D"r9<{L-9??_1=6b*ȝ;wTc?Q(v Hcc#_]qAu\Q`pu||hhhhFc@cKJl63FQ<{L}o]^x<Qt])ƹSOXYY0hKK FGG]]]j@ե΂ jjjpo]Ϸ7nw}&5]ud2x^[ƅ@ … ECC&''?@8y$ hϟ?W / cd_z~bXttt NCCCobmm- ۶mC__ZFA5~r\x!_w7 bӦMpHeh~vޮjttt`׮]hjjB0W c՘X,ǃ:ttt!LCCC"BnfC8/˩%Iߵ9$]R/ҽ޼0E{cDP^'^JxK˧=8_:24o[ɤen*:'wMOT=PU#\rnniYeQ0yiW}/eֶ/y~g|/~9nm8ԞOd)BQ'*z"""""""-"z9º MJ-_/L-ҡz""""""Re]{ֶ(؛{_y S-\ˆ>n_cԻ|Y%g(>ib<|S~Y:.*$""""""b7Fm^T^\x{5ީ~rQ=BDDDDDDD̍4^I8Ͽw VDiN}Emꉈ|!ua Xs]{MvRM&} IDATPKӼ{qŁ,]V ^1Fe<u+ S e/x/{2ie: yajm5a;yz)*Ohɷ4Rcգ[ϼvMb| Q\֓o!DDDDDDDUR\NS+җBV9TͣTF{""""""".EK܉*SHQ,'(XºtDDDDDDDdNeE~)~NX2_W3Z4QnX0|YY{ŋ׸8`*^*'M_V͗hPrg'""""""'wޔtǾ}iWmuc{QyR}̞e=UJDDDDg*p?P6 BDDD̟p/kϳڗdf/s^Y޽0uK|"5ýiH$|A)#H@Ӵw: KV ~FҘ4_eHqaP|\Pk}X"#4 aff`~!"""SVVVMTy!l܍f{q^0*'=RH}Roc,,,ѣGHӥݍzADAJydj$"""zi׋`0n #r% S7%{jvna:ұ]AA qjRxF )122W>2=zݻwg~prxP(쉈. n؊[䝊敃VP~Mq<|۱ei8KmLO&}t:p͆:N5MQ눈|oo_1T+y#x^mL s\u?4K)q uuu@[[~8Cl6~CCChooo2zP}!""""߳$yKb7߷V7PC^yat,<%@?x {u]ŋ7t:FP} @2įO?E0C[YY?Ceyo06mڤ~۷oG(o0,""""z/|Ks`/󄩒׌dS U0zNY珨~شin݊Ǐvʕ+CrkǒR"#N;_>7_(d,躮$?:^/B`ll W^şg\.<Ν;O?X ###ى#  ?nݺUx^ݻW$n޼1cBj*p=iDQ|l6ݻADDDDD\ ؆ݛֳyb׊m^V'r}r!Hr.\e;v ǏGkk+N<1::O>_5p9(D4躎#](3i|'8v022}/D{{;.\ $t9?׋Q5r9ܿDg}t:7oBJ[|سgH$pIaulۍ .@J6=z~CCC8|ZoƝ;wp8qt?~^L&ׯ9#G`jj >dA2"""""yY%^4TLm_qeZwփ )! =WzxfӘ·~z@(,ܹCayyDZc:LOOb>8ߏΝ;{ ߏiLNN/>00Ass3vRޱc]E>B0D8.}8x<ӧL&QWWۍ:D"H$pm:tHBHӸv:::HNܹ. RJlٲe"""""C*o^"W=!m>4},U孋?c.iRb~~uuu*͛q5H)BA4>|Xi0q.mx @PRy PSSc9F.[z^/D"%R ->h HRX]]U_mm#7aQaܖҔ_KGu;$tz\(OХq[T`9@qz.U|۹\.dYqFO9ܿ F K#BOOz*… HR}M*77@ɪ]{-iXF/#a .=0o~]rF!@8ƃP(TPRbyy@B5D=LFϘSo}3*ț{_q555ؿ?niLLL__G ܾ}SSS Gi!,Q)ŋր>#}KK8RBaN-l9ok^y9r]Tbrx) *޽;wBH$`01D"!dp`֭zX^^F4333U{hlOիX^^@ű=ۇ3g`yyxH$rwDDDDDDY=KkX_Qc/$PZN{c1{]!ů!L&m[@^pႥ˅zV8EL&Q__fKO1<vvdHMMMm$&&&L&Q__466"`aa+++شi[z3 TOWWWD҂5: ˡU{yy P-..ٳg|U#&''JFF133zUuuOR^2ۅ1 f .h o/JeE򉈈>l!Cz΍9RT6H{.Ka eivr}. """"""pYz 7W7Q4OIT b-="""""""%K$\i;0S]f$Me:kW-a,GDDDDDDTAս79JM5,s+ދ (VN퉈ȔǝVI.-K39 \A^+rS)cB{4mwQ'4k(2QODDDDDD\_]yμZC/}ՄJ`8P˯ljȖ,OoF:raZ~ /EiN4=n?RYA7o#l`'""""""2"X+ͅ*ְ,{QoHڦ[.`k7?}XsՖvY u-SN{Q,oc s*aR0OV @ZA@ֹ#io'lJ'""""""aܲڅ,-kW5oݮfv)gۗRuB9DDDDDDD0cu9K(x1s=!Z1f-0[cC=QE,4ﰄ4{i]ޡf$-$tSGUQ0Mu/*c&^'oT-<< DDDDDDD\1u\NZB3xskKsMKݩv˹4ZiC񉈈,1 ^9c2zaZ9ok@ohMH5^ʗ TU~.xGDDDDDDdQ1` *{ЅZ}:_ j >DDDDDDD2tYg R\ܝ/LRB Q 4_mTkL """"""`=P/啡1Ы]l((ׁ`{6P|i/LkU#""""""}HrǏ܌P(VCkgff\U2)%>_:PWW P(}v|_}՟ DDDDD6%L狣ޅ= Zoq^zV4]&Kv |BCCxx qFGGU4 PشiK](R5P...ĿrarrW\ϝ;/w F7湹98z("`~~=ZZZ!|Xbc:Ο?@ a>"""""zsku(lRxaL !|[7o!KU(]ۭb~[z|0~twwWih1 Au5l]]jkk+:,^/4Ms|޺#C4\5_ch:r9!v+RP( Zzu]GP@2DP4 ~9躎%DQ Î?C]בdxqMBs2^'ǣG\<AJiy*ؗշ+t[%Ku_Hiw/W[nNmt ]UZ+eۍL&)%~d2|*={ 7n',nݺ"ϣ Ǖ+W7Bu<|nR۶mS#ݻw1;; )%}vpwa֭8t]֭[188q=ܽ{a``]]]cbbT NBGG8Ocvv+vڅ<~É'舱1\v T 2auu7n$t]G0޽{Ѐi\p 4 ϟ?ÇpyA5_JOƍHRpزe o߮coí[L&Q[[C!Bсn+gvo |ncLē\BBiF&A*BP@"@. 2 t]W=FWWWQ(pl6L&cFu$ }SSShkkÑ#GP(/ŋۏ155˗/0gϢ===j;w`8~gq444T}>W^}v… hkkoo" avv.]twwchmmŅ p444@4躎5Bøz*,!7<gΜ0Z[[Jp%H)144\.ӧOGŽ{pYF}}==/"`hhHd2Qùsw^ H'4 MP(SA8pƍ|j """""2gkaI.n$jwtNfw9R)d2 L"U oiiA(zfWȩT nBCCCՠ\MSSU0{!pd2 ϧ B!=zT][G+w^ttt(ӿuĚ׻{ntwwCp8[nayymmmH$}6:M6B4]A$ U`ЩxH555S 6'uVhp8={P?!@J.ܻwKKKD"|A$b]qMOk8y$l٢z ٣p9dYKCQq1o/*} Q O:&Cʠo9Iy!79*m|- 4 \ndƐ|cW1;;SNkx<֭[֜.`,A6v#NkٳA$A[[嘚].ZJn-@@FB|>5`ii #Z~. HRX]]U6/%UBC{{znmmmVWWH$Q(}T*y XۍD"24^\.`ODDDDD[촷 W;Tf~n IDATK[жR¯-+~g`/ 60gY#df\.D";1/@]]Uhnn_|M,6bqL$ĉ6ٳohW7m6sJ)+l̯{P?ϟc֭bvko? ^!Ԙ:Vno^Nmp|Kq_y 6ڰ|cY:Zmʩ FE|r&"c)cۍN appP USW HrjhxŶX^^V#>} ˵a캮ʕ+t P__D"b1<~BA?x---j>1?Ͽ!Ӄw"J8e@P(`bb\(XQwܱxn}Y©YٺJ)|[GTJVq@sE<~i]yؿ`'""""""ϜQu*}|m %o aؽ,4,@T}˙1+WT~x]~Fao6n,ODDDDDDv5Uʷ*[xY5νYpYg鵯2/f=(Uc/^pq'#""""""`wݡ^ث}Lkci,{i¡AٳODDDDDDa9F8W#jYQ^bzŁ4[21ٜˡ\%_7El<ad&Qy'Ay#+*>3dҶޝ/C /_@@DDDDDDDw-㦺wu!4!!%CUCÂp DDDDDDDf_:~<ʯګմ7zSs:LSsj!k;e>ĥ|sOvyz"""""""2eQ#/RB5 [Ctl,偓쉈 9`ֺۧykÀ0ֱYܶ\AT_`,/춉S̮ %% 멥Ad'""""""9] Ƽw)KIiܝ0w/l\C'y[x95e2%5spvQi{γ'""""""r *ún߾|rEUFU-VLpF})JCtso^خt(;uU罗& X;͡Vj'""""""BE|!6(=_5{{й-yd=N]֜n)d'mam(NuM;VY9;UGӺZeoPsE*{0^u w*g ՔׄCK1 okp('̍o1_|/_~k^u nJ~DOϿ@?66;w`yyB477cǎ_he={~-jjj{hdd<ǡiFGG qQ\QB5izLNNʕ+8~8~?LRX׍W5̩!.`91޸mij_4//xΞ=N9rw,,,3%di;_qN>Fzփ z{`ngCp˛Hۼ|{<pk^o/Li 㙟zr9d2u|݁b:ϭx]nϕh=ez#P3 S( @ԛnw[Z4/k;s_s1an7ۧ{9.^/`@qN?Ucbb.\*|>ޮ=??+W`~~^ 裏 T[frߏ[razz.\@__߿H$cǎattÉ'Թ,nݺ"ϣ 9/`~~;vϟRN:8pannW^UinnА\%9s_Ç}jپ};z{{vUO"@mm-=z\. 0>>+WoUu^\l޼;wD o#"""""z%u0oڢ|ǏGgg'Μ9yϜ9z?~9r~'uQ\t 8q87oÇ'{~~=ݻ100zɤMMMAu9rGE2ŋQ(+++8uW_O?8ܹSQtO4޽|8piqIa?~ǎ8}42L^WW#G8vbx!~g ĉ͛7q=uM\߇i8v9EsuDBsqq?ڊ ǎ"^"{DDDDD(ͣwbt()Z 7Z<Ϩ~T(ϸŋn߿ !uVn\~׮]Ckk+lقx<:0pcccx (4ZZZF!޽{1;;ߺu P{(z{{-Ͽyijj a|Ccc#FGGQSS;w:44cE 4MC(B]]AMM Ԝa]:E"$ D"hl6ׯchh]]]B P(ŋؼy3jkkعs'\.`߾}8y$hϤtHIJϮ]pER)u\"""""!|mدCyyz[C<'^k %Lۙ[޿A. FGGqY455СC/4Mks\hii,Cww7.^;v "H$Be M*;|Əh4 ۍt: )%={׋1u%r9$uURbll 햆ߏx<_dyyޛqSk큛H%Ғmq;vv$0 @9 HߟqK\M.# $Nm8%Q%䞇U;V6I@5Դj|x W\rLSiGrpp;wȭ[q5?c`1w~fU0}kgNW_1 -lw? bI*(BEexw~'_E]-o޼)|[ߒ{wֱބ׿Ν;GsFۿrƍ&$(7GeEѬXDDܹMo|#چ.&IRNUe}}]]iuAMb--2N#cȪ+؀Pf[JHTWϋD]-w Ob4x˿o\tY+"o|'o۫>ɓ'Mac999[nɭ[D~O~?9s挬5H,L&F(_xQ֚xvϳ_yy'^)֖E!{{{Reg뺺RhxbԢo2;w.;@ITw=[sy\y畳9}9wٳgÇ{d2iɗޖ?Xn޼)EQe{{[DDիr||T뭷wߕc13NslA(z୷ޒ?PL=z$oFV؏F#999i~֖ܼyS~_y>/˗ywvv m&䣏>#ܢ>:}jiw׆1՝G-=O*}SU_WO~"looǏ#g}&.\>@^{5y󦈈r-˿KywP>_59{lS??7oÇȅx,?яƍr||,oߖ~M{|+r]~ 7DD?7n4ryܔo|Cn޼)N&rڵrTU._,O$?wޑWoo__Cy7޽{r}?Y[[kHn޼){-֭[駟~yHn߾-H(_ODJI߽?4&x,\l69afXirt|(IQ~NrYӟTDD~wBkSFr~}tt$~ȅ W_˗jyD֭[""r})RΜ9#ݓf]Nrݦ+W^̱|ry뭷Hvvv7lr=ylmmMˣGn9qo}͛oL&ӧOeccC\".]"9cfix)K嚈VڧZͫ|#S8ןwV{ѳw'"viVmyӷZ?~XI Xa0v_䁭B=(@W_ygbEwϴӝ[-Ybt nzV3dEyejª0>lWx"k@gNU|_T߉abjR+3NX\x1cJn%|O}h>GsGz3lTB{x1s~+*E^wާļ/G #;vaY#Aw(K`)Yн>zsgEM2_7 v|яp5|d"in~ʯZ'-]M]wտ"g: Z ,ik5Zɰy ;ւ;f S/Bf:˯WD=@</I[ 6_ő~VO w3Yaܻ%ߊkIߛ7 U|Bo3x-I~yhd{iRP*s+gap/-S>%7LELA9>u}S}BC*^SͧfP \hznqWWg'~-X%Y^kv{ 4uk/osՋV}, y&DHRp=-?QHe3N%Tz4[pŅm;)ZU{[4}$.f BϾieyKYnjֶ@W ů~S<@Ӝ^oOUӤ|ӌ)gq {PGU.j~o)Rw,}bBxH{_i/-$% u xHu*ުE5U{ \P?*k׊B[D '+z ~To>M=ۀ\=Kl{^L IDATX[phgA}][&Uߧ=@vvKw("}gHɛ_i(X}`Է`ZBf,SqV*ly-$zBӆޚ̬>t}x5E|@W/ Y:q5y.vaS]b=#%gp?C~k1!fcV_jb>?0JzGU}Pznۻ)(U_X3ok c>0J>Q /\uU^˯I O3I)B&7?^%-ۣ*:>婷D_HKT%f ]׭wo޺uGb=5'}/ɞtNU#k՛a.g?3V/by iot|>{uOW/|Mn"s1Go}qje~49K3 SGId P o27] w)/Y,ׅ B-򍼏=@MS> 7ME[/׶x{nĨhS8/r?.Z=J3?LV|99Ajygi{ \_;,M3j=%u#X1@c@]V XBt?cD޾L;K,X>@DD؇|{=HW9׵ wQ˳@fJoa=BjoQ{>l)QXa)pR=8|TBwt14JBjMx}_۬F;3m]Gϲr)]oj^}Po8=)Ocym(&W ֟gfU_>p5Jnigy`b.{_}^μ[g>/BnnY[ܛWwuK<tr?]"p{қS߼S'_zmrqO ~^"赭xko(,4D^ns-ݎzY^x?6q eu^h M_r ir>XU.g)"H{3fM[Jݼ9vsBh6\[P>%s }e7kBTDZ@<JXWw=1>JnJ;q˳fE/ 9S]ypЄ[o"ۀ7h&bV4Hk6by,n>A|YHYW>>k]qSzǟY?ŻTuD}M}y%mgRH&  b4k"5GзD?+dlob43RLZj$SOUD U8fyLDbT 31_NZWBž*^D-g mMeV _Y@8^}sBGkDS,O3߫΄xLODN\TDJz+7 JثVGX`zhf^{Ok "5M d&Odlen:KWG;+}}UOo3cBd43"&c+D|-VvRo:Օ*LDQy$+uz<^[ I.o*vָ͓{x nods~ =-p\9mܿ["/0hV#ҘboEv<AؚiLډVū|_M׊{mZqHU]Y$TH맯K5]E k+rCS/$fDU;Ob/x&m|WAiΚD9?ȱչ_{"zc JR_ak(0okL/~| [˗WIH:0_+}`tGXboʎ)St fpw/|inaHƏci(e >{@[/ΕoduG8-?͈x5zٗ{]] {sV×UִsMPOׯg׵ !hz#2M=y1 vs}Jԛ_j<_͛}%M$ WGțW=z׎xg^iE2yz "yQkv50uXx/(WΫJ'wZ}¾}chS ϼ];8,zfȧB𥔎/bKx[.q}=[̱oY go[/6x&N>ht|m~&q Y.U@DwnwV׾/%֋h9odo{M/c}ۗ^n^uh/|B,R {қN}'b~}{.nq<IVޭoZtZBKd=ל* C-0:9^#OS2|Oׄ;>=nR{|4Nǡq!'&b5a(}">*UWq+^Fs`o9<ǫWU #~7u<֪}L#"c} zD|8h4b KYm}]^]zɫwg{=b8AuNObwѸ9^W)v9){ 3QVL4Z}9ePn0EZCk[l HʭJ7qlaД́P|@Zan^3ߛBo{;s,J_fO#@(go@̗8$?1+%"RC-)&huω6~^zQF )S1EB?}bTCnAoGʻ/R j)qoD+<}!I4{Ż<jKP|K:7%/ I*H[2MS XB8y@-੠xsVv{;L%A{HIG-0T!ޗu|sihf20 PoR]?HlOzA(y:$y?m]kgW/f޼k۷KMcYˌF^!zy,޳6"/W*"d ?^/D|@(>@+k['AhuNFkLCR2c>zvt{a (ЖыE<PJK-ctkӜ ~! V=BZo~/:@ys0:*mú҇ uEus#!n{B]-V몈 qhxp9e,,o5r{͡/}Yވo͈ټE[Nc AJO*n;W^w&koH's׽&$~o|>a0qMU zӧOGGG2d<^UU666_qoXwwwWM?CWUrlnn>mi%/+@Jc5ȝ z-W(C<jq}Z\|Y._ܬwߕ˗/{^]BX~_ʻUtvw]HݰNC+@_Tol ?|ԯ pH,Wۧzŋϧөș3gd}}]>}*gΜ9<F>}Tvvv"ݻw;>>s%ܹsGXʲG5Ɓ]QUޖ'Oȅ 񹿿/LSQUyEUe:,{{{2@HDUeggGe{{9өܹsG<~XΜ9=G?~.LѣGѺQwwweoo1ul{2L˽{ߗ]FތV]"{?9!_ź H􋈨ʸ3%${So"z~IoE5wy繈C'gΜ3=ܔ&w{ccCnܸ!*D>#yܸqCDDݻ'kkkoh4d"oߖO& M&ّ^{gϞ;wȕ+W(R>CyIo>|(*_Wd<79>>n~'OP|MY__,Ν;yfdfr-Rܾ}[vvvdkkKl1239\zYϼJQ_ieYǏ@߿/2LXLʲlw-9Bcoȸ@A6_/G|U܏F#9loo˕+W"0W\Umnښ\tI>|("m7( 1ۻHX[[z'''4'''YaL)yd45X_5ܔȳy)B^f:88x< .xrJ#t'LS]D}[{kn/>}ڬ̚w} .4-B666u9F\xMs[/3<;oݺ<먹=L&'r+2Pp&g8^Vok _QM ӧrtt$TʲsuS{i{eYvGGGh{-*Cq潛|'eY6BkkK]&ߗ˙3gŋ~PUy?>@^^|푯; uUd"eYv"ɓ'}^/cH}Ȣh^Tz\.'''UG=YPV_G?;ڻUqފ ]>z/ls $~o6!._=|ؐߍrU?O˶Ex˯vz_֤( Y__(*3T.^؈UڽJjrY{I٦`G~ttl}rxx([[['gϞt:ZVϕ:e2R_<}\B][VSgфW>8!E}a굾k?mž! o-׮]¶in޼)G gɹsngϞ𡬯v>#Y[[-999i*§j1cpL&BCDŋ޽{Rlnnܿ_._,.\hE!gϞcorj=;;;MΎcޖF諪\|Y>UaSʕ+˃ŋR<}TNNN7 1Zf>/+GGGM4^pkkKok&W\9tKRD r胜H[> Rام9x>EQɰ7*#' *8%kd/_/6Eݻsyӄ~ܿ_ssNc ty<99˽{;;;Ͷ={Vx w<~X̬_}!>pQ2x9p#m.iLt?L=INoݐc?wD? NCe )R>z'ʲ^{M.^ȧSFzhmcrie)DFQ7YSuM]/}gUm2>|(O<t#eAu|(R3ל~}v_4T%ݧ>>*',IxWƫ#-ѩ5X.VקՂx(C-Yj}9Ævّ}r劌c9::'O瓕 we[=p.lH}24?Wze,t;2ZZ=8<Dө\~=)J~:Çh4d"Ν#W O3]{C^ ^i?ߦƃGD`uɵkd}}ݫz[nѳ|Elllțo)'''rrr"X1|Axwy}z׽5oD_̄jvXH.\1աMP z6;z=]s M.}c9(+uf^k罉iA'_DfS/{S[Tu%{ {kIh܅UƄ(@"@b]%-wD %HTuxkooVWzO; HZ"+A>/=@Z'SLnM0DzKv31œ<|zxnsSOctU&>Xy>{՝ӯU(vzD/K)˒P|{W3W"DD=lN#(z7[8a@?*7$I_6%齖v*bjۇ-:[G`^zs-U̙C~vry LЖ7IR ;*e.'.WQb{Ľ9}Ա@,S-yߏA$]߼J,if 'i%P| |'6d`wW}] |i~-ޛ/+*Ng}f(>"*ӹ ukBćE_IWt7^ O@ԇH{f7*'&~ H7}s+8VimxMTo-銔L#pB*;x_iiKKP[R 4M){_NE& "i)DzG!=Kre z+}YLN9L2-SksOgŽuozMMXOSOz^L'"GG4zMڂx {ѫH_.~H# "r< ?>z;*v\>}o2Q9xo[>K}y]i{w9LaB/)!R̸C~*˧n5z s_@/="w# S+&~]Oe2ɏ#/>s+ 4EǻwGwG&̦v87 'i3(37H@2!/2TMt"rrr'.*GHNNNdmm{ ɓ=t_'J(k^xG]mNIw٢ܹ<{5Y1=R^0/޾*r̺llHF7JX6ynzLT51;=oodr"eirY_ oA̟cөLHP>Xf2U߻[ao!_23x\xMh% PX6 oӑە0InCu~oZ۠xYU]4Djԙ؊Xgtl*ֿ`~%?U&;uP}A+ǖ6n%q{ر?]ngϭUg;_y*_@{Ct_n~-q9׎3=>}RmU=gxqSL3 nko="d4c]Wq%?|K g+Si `ټ]VK8x̓Ȓcxer,ĬQIj?mc'e%wܙR.`JH-vE٠o֡e"v Z":uѺX1G_Gݡ̹!cxKMSR126\!MݒSYX1lzqx[ LFf' X3<݃^s{3 s 'r1τϙhGC3˞0cnCe"n8_X/vX֤0 [sP>#uſo1&MTg͔YZy5,/>NLsJ[fwBwbF"n S`iNo3ͣn4DuTy7EMцX[Cao2Vܻr=A>KZTn)?{ ǻ%}2l% 独w1ӠjD}׀وF+<i';=Ɔ0v E<9;ף@E?Uл7hLigaZfX UBOϔ1bg6{1쉙t^y8"\)jg 8y 8W-%{[j+ ̹>Q2C9m ǡ%ڣ OGXvܑ?;u?QU.&j4˙Y91 ʬ -oO/ Ƿ=a򩭃omMó>݁G586)EzC˵><Ϗ op qÐT1%y)y#r׍vP[ش#dG\ ۵(8}Y? 'k(idD@{lXOf@y+;αŶw%Z+rջ-Uq󱇥+GXϓbhzX7:B{ 69C*?.AAno`կv$r9We..5j̫/)6ڬF[VFԪr6Wr.P]Cy#X ׌7:_o}mW3WLLKVݖT0S\3i\~ LT&"v"jՉZ8`ikg.48 _4=_iH#N7v*e I^عHU[tl+ZF_̲ayow}/z?ܫRgyӺ_utd1PY,ei칮èdş|Neݡ+Dte讀|[Yev#2t C2ρ 눵Eukw` ŖH.~.}0sg]͵ǜ{ԦZOƻ-Mv>ˈG&3fўC[t.1'Kοh?Mݬ֛c!eŋ)^BӖYl@dk=& ކ }3^<Ӥ+A:wU I>KKj]D6њX4?_sr{ QJ\5CWUCJ\hq IDAT$B*G=<"nKwV]LșDy|pO&T|% vi̱eKJy\(}N`2T Kr,f2yשuazsH&"aQ\ \ө'< Vӱ1a4nͲ'YX9VxLK2M^@C*Zj ?@gkHq>[XT.=ʛVVaZ}67X*/KedyLe,~kfpУve|Æ9qK芬Y\\F-?౎AGzpbӻ/?YtZ ??D B$AnX\aaKOy?dg؂![+fԾhvuUcs݋l8UHәHgn}vjwSX).28"k HXwJ:Er޺TE5K sfIIrn+:4nc^CjctXFߣ<f3o9ϲ,0A-4|*SgHKgBU%:75R7Þi]؛E"y:hGݬ NteuUCl_XN?2-CyW]K0p ^EYKtݝ_F kK]O*3{&J+>˝?DCMkRElԹ 6HFd髯V|Xs2viɩu19%Jm}->gho8<v\h'Y :4=V xԴɱUgD;ԢiyS8Lp!9<Z3U2ݻL|G.Vӎsٺ+=yd*MafYytʬ)G kYH)ܗo(=3߬ Vy%,c3ˉ|7Ɋ!nɋ#o7aH۫eC[b-{Q9|x#?[@:FA j~S<3mQIop߸V-* #I>lX|jW0%k:YW;2mȐ9b8Fjl-k*}z #:*順@ }vJ6UsL}y&֒]_r&rvZוI>el{ ]_oD|x猎ZM׫lt!>s۰pr[(t+E =Ì[߳Ke8&ڂ> e( x~$6`thb 'gq,yvl=Is 2doDN|fJW;zT#yOuNL_~}c[uh۱CکȜ]% %`jPjQkLr zi=&eYrX5 V5y;\9B{m&P8X!K=_ּFk>{9'zV ë/%X;rvN+jO9߅=߸}B]G@=3ܪu:ɘ:xTKFK`x=ǜcSJevEɻ]zaI@]#WLx؝F]]Լ!um-zչ*484fDo_;ڡ*^^{N)eqCRazn2a8 G:UjsŸmYp/Թ囹dk|O;R@/0 Ĺ+'ritEn.5`+XЀv]pzlΎy! sU ^,XЕ2޵laK]uH|yן>a3*%6$ {w%XH%:kѭ'} az, (>j6XGPxY]84_ƅaW2>/2(6 ) i9ɝ|h ku6ר]* ߂p|1= t%uN嘆^m_MȏcDi 43%UNAxC~*fyiŷ͞ޙjyeZfxf5\y6toSoZP ,#~%$IjH~ٲeыuevZRe敔kg^tO/P4Z׋Ϸ*S .R9=s[qϻa)?KfZRu _ِ>x04 1-EV8 qNk3lSbbolf+OoEY=F6_H}eFⰫy[&[4Y#t?v 5W0CnW3M6NϣSH|جxW2KrjjCKks6 aj!p2ԭTo]}gz`}io[u\8,PN{u#3/uߵL/5ӎ[c՘V mOѵ>u0#A 9o&dpO> iڮ;n Y$Y,Q4:d幉k]O_.qP~x#9Z[e-1v)pCe)?VWN{&܁V&dpWXb?CI0ʰdQG hbf ͻyfϫpPVȰX[T:;xe1޶#ZmqHg<`ϟ^ux s5b}|taUXv&Wi%ϟ՞_o2I^S8V`+`l S 2X@g-ёP_=՛ΕoוS;S Nݦ]m}{̀s dC/}֡A=󕠵9تCL˧khKxeVT}თyy u蔈2jl8C;Etu%Ӹ&|tXK{ԭRIW*:v[zIuYjҍӸcH6錡yG7 ?V6?"*C+s Dn7~\@~B|]wƾ4j~sӐh{:Wtd{:lSwfwEQER( h^̀ {BD)ќH[ GEYmM<@PKRp.WڼܦDfOFMDiqڼ`{ĵzƷ*߳Wz57q$7ehmS4U8'5^hg|e⁀$ |/!#}[IqUZS)=i;st& "kN 8ih:nUiwa,77܊6m{Dǔ$^s$@$KGқ^2S<)xOֺruBݤ=3\vN5uN|ᨇ]&hMNDL}vq C曀o&/wXKⷕ("n lwYd@=ʹ<'90_^_ .Az_Χ%vm%Emo,l[ Q[֞M0|*4=D#ryu1R@0 І@8^hm#:>ȐFt%׾|M-tW`Yy]Ykj|OMcsam04 j}>)Cl9N8jkJKbԅLMX" `T?uF&0k..?}Fed vsGn,AVmm&mQtоn=?%[+sg}I /nȕܛ]kYʁ82 xLoY" TQE8)冭k7tIU**Z/ǜW TƉ=zL̔}Va[*k*0v, .Mp0MAdb.#wIV#ۭxd8Cyj/y)c)]4;oCM9Z$/ճ te_n)-oj-+V&~D ަtXJ';ńD^K4JACX3*}٫ PX(mNYT^b%3%k, I`u\L-"ZٮؼfhW|}>`~G}WAtDVx8F-idxz] bL jחґa@iֳn$>2_t, CUpcfK[A^ZSÍ6(IDdҵ0r$Z;7Pp,|M#B LIcF+O&DkeKxMvf J5.t2UA3/wnYpTn j7 F@@ݳu5aWZ: \l 'ˈk%",˄!՝ R+&gmW_$–U{ĄasSk~OZד>^E1V}{wYN7O>րcФIQC)R}-ɳ~LY#ގryprgiU\|'jSXh[KO-(t%EsT[^h_/[ضDWзc:Tdz/.&+{Z[z&<29ikOleH :>w抟GPWVԷWez |삑M*V@׹UU1GAg>a`nJD,Io5h)=fOϥ˴w^H덖Ԇٖ:Mӯ&6CAuB9*FšT8M9/KS⯦U@к1!! C!/!ȝDO$K{-;/ {T~w}5ZHY> S8ŮՆ( 0LMtUJ'U4x٢+qckP[8t؆dt:bʖ>C ?ߘm}AQT[V c.^mjyq3\%K)}>ocq;l%,"A'_SZU)#Lq%.Իs{wxw JTyc-~:6R](Y`+SVޕWWh?-<_g1lKuqPɛ- l |Z85 YlR5M9tn$!U=FZe#Y4] UڸA9A_]I:&(d0dòedI>/25 (Ift MAOot%g>IZY-e82~iwgީ7e)^j%3$(1BYM:rQnb1 P`E-bƫ'sωyYF Ol `'NP+#Ҩv>MCO`Y9^~})q6Q\@mC[q'iI5N+0׫j\+$.KpJ>,RC$+qdCp7(+cy11[t8z&)\u.n!_W" czs ^"㘹*qgX } MOǩ`P(Jy5}^IB2LTe*+#z1Uꉅt^̋hW2%mhAi\^azC%FEe)QߋQh/bUȪg냸U%&wOTZ݅+'ܾ~\޳-lP}cŽ1sEzsdV,p_4+mx\لȤ |n 1MVϋJjՏZRGF33>WbCHvۊeM^ 1$I+ոtЋ6R\9#YvIߺwv0_e'=EbZrfA[fXnM畍ˍ\"ʗچi[OM&c% nHre{[ ՐTS7]u 4>Y~^6-7ZВz[oh} 3Ro)@RkJːKBJ~8(KG 6n6\p| ,f$|_D9P6OSrRm-Xs>/bUe\)0+|re[ wQ7ּKD=E'fĄ1-~l 2i=|J(ngt b=KR{d.S"^J kS[%uhZin<_Ľ,m]*hKgu]bʖM|]fu 9#ɟ#ťcf%4@q:G:Q*/7b̵P4OGFج&R IDATkY>jGk|vsҵŒS|*@`j쥊 k֋?Ey=fR';Ծp:bVj_ ׎pΥpjw £BU7\ws]MU1)̔kaP{Vsi C¢2+P ӭc#zDr,mlO"1?[n* ÔG؎2u^}$B1*Tp!^BMaBQv9`ń# .d%,맄m&@.E:@<-zԈ%]S\Xe-Ddyf@Kպ=)w^"eRpz5Ǖ R-[(6|drvIxׁ Ԑ8k1]"5DiiRkCMk]g-!܈jV>ڹVze^L]1hs> ToO _uosM@=bjA(O/UDVX[t/H(K&Z:XAx|:|2iŤl_{hQ—Zֹt--EON=l+ DZPcbI^OOŦsnh8y7?PR-gvZݳ^=]qddT *%t/ںȤ>A|RU:Tk*/j(֜{*|fUF;g4}RU]_ʇMҴldTw)5שK)}#+Tc<&KՉs^ɬzz6%;F(Q PT3$L]Z5>F=&,Z0qK 4g II!r6QeiVZY%T'$^fF 6G6XB/9~KӋmQtfKT9ʤ`@Ś&*elFФsW*ZzJ=liZ)%#+er=qE 5 .1.&T-XT j3"URڪ;¡=bӈJSV5'9Kɰ11Rb{W3)<^ץFRU`8c W*SZ(\ &{9$꘩o}|ayepqEDSDZuhhբt) XPn\C]^Ѓ="Rb*IfYqu'kK D1O ݺ=*2kbyTKF3u %)/CB$=VW,[zWV<vKkS~6֭7j)3AIĕխ q]{m0m΅?YU2 Юuz˷Gugx{E&}}r[etY1_5xw8ԑ]:>xTݬeSD+pW4VH*B٭1Hr[fS쩡ٺ=n(lziI' a*lMj}^R}8ŧ9-2QKIp9bP1lŇ#`?$rH*ǷKڵQt V)K4B "YƗZ\%ci;cP&l]jcSտxVS{Fu/{)CKqHfnbwEK4E DPִkH͵8jlsH`47zyLkM? chm%t u8hn{Bڀ; '{Utr%>A&.Q-@Ԗ_8LvR-uWPAnׂը261 K!a^*eE&N ^\-w/-WOيi;ix bl 'WX)1{M Z&vJ㺃`r,p E*zJ, 2&x|e\~X[/ڰ^*B+C)ٿS8tLiN`ݨ!_5{oƿd0w*w)-sCR"G˄J{lK; Xx Hʑne1@_?Y;*ߓ;Qu{>1ܴpbjT*$ǜf,\>Tdkk6u!GhSjt+J=k ju  "X`箕# #ւ4zst0DYh4yYfŔvPmVܑlKC׋m_w& C?~!*=):^#}'[5~eQ_ RW:R6ٔX4-Ficn-QTmחl8 4/*'͊##Y_et`b4LyyX*aGUXHȒdY6l ;jcFf*W2mc簶x?806_إ[-j}km9)NNq|(YBjJQS1ThNuqWz&Vj[dWui#7*IG4V#;E EL¹Mw#[J =?,JUn}g3HѨ%:ԇG^֧oli)$KjǼ"+ Ig ŽXͣ]EaD d[B0FrZ.K kH\FrۡRRV J*Jjĵqo+Qԥs M*`x` -"p>w;S)S UoJCCl7ʼnES5r"fv2P6kWL\*~ E}V?.]2``NNvy!Ԣ]Ac ?.f;8CбH]˕󸳛|7._x;;Me[ kxΣ?xo-|?Ó>fݤ{ٹ۽x9q݆9o^7 s-S27u7&Npn|O\MNeK"L<^웢VLj/IGq=n/S 3 X+'H,KF-3 h.&nf‰+̹' ?1Ŋ%Fg: l&%I@<,x2h*H KLXX$g?Np\z, ^UV-KD_F `:{p5C\2X}oz3"Z\9)Rƭc1b:3\ 6q7Ip;h?a-%ڠ>a#le%1A83:2J/w5i>IEo?q<7!zͬigd-x~/JTu1E/W*YmcYX.rq(A2ZE>H6vLIf-|~|ct9"1E|r%^tBOβطzHӟ'X.h u8ѡKcK>?Z]XU>"mIX]55ljPYKGd~1M(Yh|,vT>B~yVav@M{m9DV}jn\bq&8=Ay1uGx$>bAW6z. qC@LO0v.⛯.zYź\Wo5$ MJ,Tt3p\^=SZF  ,k05VQE[bByŗ~^CQ9,0U hNZ͊YĉmV"YB0e wW],դnu6vu0 $3B4옓HUVu:|$%mǠ_D!Җ~IPQ!&e>pNoXtJH"EHQb5@jogK9Olk1VY֞MN{8K 'P\){VV_.i@=."wй=TC:"&)`&3[ s {L%}Ċs< w%%dGCVt"=N_&~VmeX ARO~&:k%ͅlSDI\I^ F D֣/k,/Lpkz&%ZUzH)$h^7)gYڨ0n9‚Ly3_}Z6oJ0$C tASlY=:yGlEjWO/$<%S̭.Է]'mܸDf89[3{W+%=#Kߣ3,Ž 3v`7C=}o7^tyziNXHwذl:&X㙼x '<1wN'WK?{`#6kBV5k1$v|"VQɗ} {]pB<$k }KG#dW Dň]X(IIPؙ\kd@gy)s&v#drh4@:el?d[ت,)P-WuWG.=K#GUUk!$[?(#4uLŜA>2˖ku>Œ$Sϩ0a!!e{Rfř0[ĮRZ{Nʰٖe= 'cx=v~\|~r _]õ~ <3,X;yO>zuztlxi ef{Ke񆯝):d.iÂȬD"aQQ~LT+cԇe ÷2䣄D{izVLx%65偤@P~.0 ^%c| 21ʹl0daQmFS"OC,q~L>΢2 Km񖃹C]0kCz&jnU Kt.ʗzJ!xy&Nyg{/]ov7|n^qz@pv_O%|o \,Fv>âO7?_}xtp AU^4nd'z ]v:/fݒ-c I1:j`c<@2j am'Ǝb!+"<- DާcDapF)ӯ.Dj33י~1L̿GK2A(O+5YB)8܎WA6ҰQ=K(=%3JEAf5g*=\}W4<䧀^]DԪ۬>ǚQnծ-`GB,$+Ş'ڙ{-?'I"5%m@';y׎5i"DOgX>ihNJćvt4#0J( J ~\t{PEA4v8<֗oOqAB.0^}kO~滗@Ϊrw.&_"mP_XsO|=kl=ѝEcW٨ VYBw~/r*J2A='(A_xU̢%s_j"Yq=,}OP%jON-֐$0}M>*u>q #o9L+qչV vP?dWeȸmR|ZO}:-nrOPFg=lyNYW+X}&$~{9oaI IDAT:q\)a6>YYk.DcqX/uKd30Ibɺ{dND)ue6Fy3#ݤmT̶K"kҠNT%CW)W8H=n?yW._fd{ ?_M+o`Q}{\{Wnu?*pOG*l?nP_iwSc(ۼ )n; "JV]6"폁PyL- -N}V òBR[kR+kn[uՂz*:(:P;IT@Kt>!#SYEFT-`UϪ_"FwϠp&DH'&Zfv^uG0F bd `! -Q]2^Sd snĸK3Aŧ RR" ;AgPӇ.;}@3M+TL}&=Gj(d Y< Y٤%@gӈr`hٸE~M Iz4u×|ݕzg%,H#]! "q± 5|nxd@{[_|cN&~w~;{WWO.-׷@=s'[s< i c"R/k~PI?ΤL&"q=5p/I#۷Re:Ҏ ɚ:[5q OK#RBYi* %ʂrhw9sΞ귎 P_#Pcŋ7b  1-IYܾD:mS?pm+!A̺w;duW~8{Ͼ%s2_N_M_UϽn^5D R6L|N{YLeeWI R+-N஻ Km@WO{O{t C$^hpЃ4hՔS酔E Dt# ? yBjp X$_a6<Vp^~6TcBtCJ|h 0[T(J!z)u$&pR, k_q|(k(=c8sOɁ3_3$ }Wtɯ}%iO1$| ( 9p;3_h/#Ԣpp};>ŢzKAEءY)R)ML)3h#,8yXg繆y(e2R E F+H߫7Nicb8>`td̀}Q}b:\`'8a0CI'=qnG!|']ҕ.1sW8٫//}70#\z#|= PJczuv; vvٌ`Ǹ$ ֽrg5NX,'{?XTxUm^^"Dc. Yn"/s iIU;E-Qg&Xz طi#{#Fm#BbЋ/ŐL@Q%$+_&K]xPb90=$?Ad)kK;1},R]!Loy%,=C$;;]k$b?*\7s Q4٢ňݰ-Po}'EK,5e5TN.O{%HemY*Aq~˛آ֠?)ɏE='|*mLz콀7@ a54:NZꨣ؁dϙOu\*Vy7zcX*`Os15Iݙoi_q |ѥ޼u/г16v=,8;^1~G/qN'7̏^~A0:?%/wr߿wwp O[Ge xXx$=`[/'#|v>Qm¥9;]m2\Xxxoz.e)f= VfMY]`l ; (5׬nM ?w"-d?Z{}ŲM>O+1 $ eMt'F nMŦE|y&uՒ{=S.3Jvt`zJ$k8%J%Hsؗ_=z~}m*lTZI-:̋+&sTzŘsZ>(SxCo}$\hZ8X r~^g/~6=I/0o1an(gQGs>~m0ls"75 |~d2G!(D8"1_ˁ~1l,Yɚ9).%J]:NHvמ>ķ`1);KDM{uvvq)CeZ-gooBRqAU be釲_Y IT 4a^Q'~7t"ʸ{O4v~ψyqiFb˺hܛWX2w؊/Qv#@=8$>$Cmts5QYOc/MROLoZ'=:IN )ppG3;`.=n n>6^߿Q(Gh v?|9_]G\9^=?lkKwh&}ine%i ?@֬k(,%Z4dۿcKK_[," 9`ӿqQÔ~{r(^:uPsrXied>32ڔ ݄=T6Ŝ4[!-ݻ Nc4NegOr/r]|z ?-RFbG+H(" 5Ezؒ^CdFt Njpyb er*_ݯ%} 1qjeΕ~&s>4.R̻RqP YecG{&AQe>!~ygX츬E5˿.z-*^w_u5ٟL|'DËXՃ]][;AYSP4,V~vzO8r?:9>?Dq~XO/'WΰKc!w O/#:tEqTu91O};F}%r>fTӧ76sٵ*khu'e)-2_zyeTp5'ibzs|iPK"$[K3hg Os2 HoG'p31ƀL!%"Newuѭ]*@$)+gAPN(=1g=NKڥSO.' ]JDxʖĬ3KC}ɖ  8[ahT~d٬|{"59-NX">4~p܃qjm`w2\1Igt9u*UV}1= syUB˜9J H *;MhAL0S,DDTĄvaeXTV czw +8 ɾ)踎,A*ťV+E/)9kGWxPM=e՞@IP}W2L+,c.t@ IfJHI䟫nwifO 3R5RojİQ7HQFy~vJ"DܫS`=twIXN @ #B` tǹVTt[<&nkHx3,F)ѧ&Qi<<9+ヘ'geBT^,qq_5@&~=L9bwq eaۅK3\ފm?ƽ>uƏl |mhAw+l$GY8_ϹkYi"5YLZ{bb:mjoY|`JVg4suu:ztVLnL g =؂%:(_[zfKL/y'7+gD4,tJI;%UWŎ7뙔eiìu (˖kI`%ױ5 ESBQiRj ,FK[%k7<]7 KE4 ӽ!h.g J nGZ.rif7_e3yu=<[/G/}C z$,!%ca!KQK7xo|kquNl7K ήý"Ƴ㤫'R-9o䕷龶c plB>D[S A6DqK(Pa򩬧^J*=m'J @!9z@*+V2G%+ju}O*=GK7q_x"/} 'k1yi%,٨VcүJ-@Ns"xJK Ob4/6>uX@t~АǍQ%"x5YwAtN}V~{i x{*CV1%?]Jhk{T؛jnpރy[9wIzT44{ɩxAwTʿg e9~Q$B]R\́׏v7Rt(GqsWhE:yd0"W`]}bif#^E_ř ^_z8GBHXeg8;v^;BǙANXf, C`SU/ۋ]vvӓ~Y5GNR65~4g]򣪕!$}1!Y`5,ke*\/r3cd%(QOEnSBVxL`R[V)W5E:`nXOl>)&ᴠ_WX>JĭI(>t._޵S¹~ L}TM!<9џ] @}Tv YWtgZo6#Rڧ̡a$p)@L 騨-Z4X @zJ$>!@iSgS;;y&zw/}/I'G1=R `ѓ9@;{Ÿs )gi?RDX^floy?d؎-/rq %QޏTf-gkNxLcb#d-Yzfv'.t0Bˏ ~gÅ˳y9 JBSE7Czix_tY.ojIx~::΋dAlp,m_ƣa\{fU-vqqpWN,{v71u?pzOoLJF5-~Z@"Khɓ7`Tƻ "W<~PhpK~Y=k_s C S(tn4S.;&r5TQ* ( HYY-af<`#q4Ba%q>2d%IRז'qdPOAF=X!t/I/­ՃL~N|C K6EĈw3z)uY{oq.m!J l6;C(VH+8U# " pdlC,:ʡwgٖy-.k&g@p̶ZpGc{^괋%4"RGZ %qñ3_$ <ʀ|ym)I<$3 tJʊ]'{| ۵  3&FK֭uxQGhdVӦ9s<fW#|w' 8C w<淰ιG{{й |yڽTVo{s|$b.o3pgx(3^ 8|ߠ!7#pq^epPcVus)ui|~܊׋ʕ~5%K_:=:Z$~{\fVȢ:A y<;6xv2=&@=¥ ]sK -Go R0Ml +}#\GhudWFG8VJ?W)){1 K g4YHS}B1QPxkX^rFu;rTP4{)$Aρd~Tʌp4${B4 sD{ XLY߼2%O[O<:h]=^?{;`m<`l>JDoj E5)GuA 8销Ga=n֏g }eCıo%廻)2iO7# z~'oEvE_Y̿ϳ5ma\vv {!g6;rx,/Qո.0Amtagt׀S/IN̙MSIO]/of zfKu+ZZ* PXƮT񨁌Jn`b;5$K~DS`R|'3bOwГ eT]󤬿DT` ͢L#/_CYq}6g_-S,#i|U IDAT=.dL˘B xEEI>"?q8u'I!5Wu1A=Q>KDZ㟴)o?q X/ a Ym희eDST *3̆ZXgJ}Vctլ=uԺRG Kz%r33Z v> #unܷ QkԨi6*.Э`Yٱ:TY!?Zr%*h(CpL]-D^E|hu׎/4BDݍGJ~E YD[+aQE=5 HƋz[%@8܇!$= Z+kzx~g֏`Gnk_E8>JI3dTzIm4eF+abz[깚@=%=}Q?^ I"!B;DGa,F*Yz\jKl+z/f%;TȞX}6YJD1!J=늝dg5}qYRB^~%A<~*QzM7<6~eȗ&Ev^J>/c6VhP_(;b{ Dcjg%0 bVլF|XB(e s߃g}_=lp8:w~Ϧo&_ٟ1\|+Aٻ13 =1 O%wQ;M3w]5h8j86Wpg]n&.:iZ荠>{ 3_y-Vͤ=弡ߒPMX18ߦZDh#%eA'޺ŠC &X-ʠ:86@h*s;BE B-͂jUy}Xv Zi̲%Q-,=Љ,kG畃W! QYY7h7~Ⱥ V^zkD*Z邓o(+x-q<$|66Q.KU]tf%J4:9>+f ֩XzFG\ՠeU-IuВ(*mϤMWSe)ly%6N*Aiƀ0ܴ+쏿; 8+'=.۟ύw;oƍ>n6#Wg;?ek_7?>; |bh]n^DW^W-G?/}9w]"eʨfYxOE lX X{ʺ|KP͏BlJ]R{kiou Y}+UL[1KLsN}-YiC bL&PM1F$$M4Eۛ䧥έV/ւ]>ᒌ Qlb;]qh5֝1qɀj'֘׏qPxNAK։4DF !}E`WǔkSI5`g_1()e\wD/8ZE4zG9lBB9)ʽ +"yԩF% TWV{{/FY{eߔ*fټ>$&tSOyחS/ mK J'[(?KqUng~DmX-[d-Y,p'򃻐KKy]wܿONIt1|G@m30>:ۖ;Ѭ?vkGϊEat`F5I+dzohoQqi;ːlԑ!j^7zզ5'1o0 $ Zk{3/}Kj/G]_}"V?୧nu/_~|q];uC|4ܹek9$z*ӟ><,v xprGWԀ^GuaSZ݃;yC:)|jvTǓ<[m.,SZR?tN P-ʹz~la\H9pOJ-O~ w!+@}U+<\a mpMs=35{UM%k{눩B"C͚f/ie~ W&P?V.p迷ǩrM)C< [=.8`H^Cg9#L2͝&\`X[\Kz 藱Y%/6K擽po3)Z>&#SB~^d]T +: UChh 8vY3i"dHk,]|}ʖЧ XtnE*RQMrY%qق!`KAK/Ke?⇞>q'_owô`K_=>|s7.> w#Npa z+x~GpQqƕȬ{?˯]܃$k1Íؿ=#s؝_Ck`Hbݍg3Wif̶:okx6 HƴC]y Q#WBB17)_M9}Kuc+}L$Jy}ݝ+15{u֪ۉ:Wď3;8U *7_ ? c J(‰>x3m-xeX ~:C0 G&be)QֶwLݣ ɂC^[-Xv;a)U V+ Je[٨\7YRR7ٓf^? ?,;DtQ{c:O9H >W 4{ěh}쪩] QN̼0X|~%Z">ǥJ01ف &):`+T١՛<qqo?O3Ok_/U𳵀}, l)N7]>\ @Toxqq2{1F講f#fؽpfl>{6o=h|VAPqpֲEwkl1\OWy}")+v gk'{O4@}*dC(KЀ/2 P fajj(Zŵ! *hK9_e3%LC6Dt/QQ,gA!hӳbѣc2$g} Uh@{yZ"`;R}Mi׍~Dԁ~\8}l~;ױ1^)tzsACKqqlr- n[w;"-m `VQb p8CvXq._'Y_0hH0m[ϴ_ѱS wo<|O_ڗ+1,ۏwۍBjÍ$f9flM\0rܺ hp ܱ8sj>ezVMSi Yg{fPq?hFb)0#L}@ [EZQ3 t !q ejfKJ\ B)b;v»?@ӄ LeH\'=IWqPI3ٱ)VR]BA;ūɹ y@V%T 4^/uMMz&S"Z@Mc̜9hJe%IF*Bi/mﲅ &4aX)y)˟c~YB Pbllo,~?⧿vxr;vxUa>_}񕳓-s_/םڌavv nU ֗ÁMUaan*/RMа>=b*]yfDPoXekGwz7eg6Nf3K'mwk,:uNq I Wl|ʵ#fðVaq7kֽDpc(9TbdÓ}HS_M%~+rUuf;z&MmŦ F2\|$^$[S}%B~-yKyutJ(X*˒ & jumgm NX0EMȰ~Ttѽn_iMǺtZY%u=73*%?oয়C ~ŕC5u>t&g ?Xի>_#pk_?;G?Gg]. ,V7<毽 ,w?7=Ֆq rkÇN6_U ܷ"d(*jMɽL+X!S]-K͂LΏvYzW=PoǧlJRY{UOLpMf1Sp:?ʢ+OU_Bq}L:Ȱt?MXެH%@oңG%%`pPɜlg[w֍II܆8hiȊ[8:W6'HeI%0B~o&$v")@l_^jc>N~1 wK;ԕJ {hZ,&ChK!Uv[CZ">ig!?>a\Sl{i}^WNW_kEl;;_5yos] aŢ;&st0Dpʫuu:[ w —o#p<>6ST̸ KW] rvIbE @=k- NFUPZS3 ;YDWBXIL/6bMb'FB,m2HOyJ5v4Q~Fr V?kq`cZF8eLWe5-S(Tܛza bz/>Y@e%ʻCߞ[o_) >8ɖt{TK}kشA bPW6^-p\5}Tg;؝+)M~-zvVj#5%{ܩ ŮoR\8W*1"@4@rjUŲlOߺQMW.V:W*LJ|xd:&w,`bхNc6AM]QnE lt2o*V-%CldWjﱗaW*64_/c2s/cĹ "w{wϿ [O꽲}(W艗C۳G{20<}Џ#1:`6P4FPRc+×UNZցMu}os,楿ˍL>)?{^),z$ wX~t98m‡ho) Բ5yjP]9qbk4jE y@ͣ\O4ЋE`\J}(^$:i>π@sRk?rkڛ `TL`ġ[m~ce͠\e)eCZ%7PF*1& wD$AZE0|U{HD0Gm[l+>`4E=L]&s?Q?:oA@g.OoepLK__ψ=#q}g.^Ž}ungS_pi]huOt}E0qxuxǭbZna[=x o(lUD][ GmyJϝ 8 ԛ#8,`.Wm{IŇ-gF\SVxۏ ۏ6[@+٘0`m\%%RYYT©t_ެW$9D-̪vMNBۼ ̃ @/z404! PjP=l9MZ]Y{V7CDcnn'"nv5/Pr?}fvYS5'3Pii~;:&9gM`.k(=O}𯁾J,'Z%3U[ZMvvFrt]~(^{fb{V( :XtD|g0}= Bgx~ qEcUCg_MGwlְj]]}KZ[.Yqq-XՁ=>Y6 sr^%8 =Ӓs쭠KtT_loWK%m-m{cQ4yY?K%lלH;S1a >zj!f%v/ D(p`XOkWIo&h m ],7=:/]&4[3? ~.,"긦E#pbKݥB}w:*u';YfX IDATO$FM/9RyOaTՓ/KI%0;ǧE<Ϭ}\P5ke}Ld3tno gI.Wp̴bDFp|D;`˳}ɷo,`x~q\W{1 X5+{O`Y>$dh2ƓSt Jmwv?(վ QF ƺɀ)mO4rgH}@>~Z"`AVn(=CY`ö;u!,Ier[n i62 6~A=K P_$Z"tƾ )m5 վf ~ylt_̕h)@ =G5AS|I}k5(s3Wǧ8215ϧm2J:/[}ya}u^”Z*QVnŭSOmLK}6qQ$QOGnyQ"o~ 8.(9w~G ?[^Ou"2+H]Ύ0{"ǂ#գ\pq~R<(>?3)}qRE>.|3U==`I rno5ERls1/_ko9AX Lv:G逊Z^Ĵ>'ZO+{:ʪR!OpH1e[Ga%}И1&@~ㇿ;~> f=Kĝs9,opo8=;#B q|0nG[_O\^dc?p [⍛x9>G8~ =G#^LEJt9$b4dʘ͹f _;I* zBy?ms]owo(mA)B: m{L92NNF@k1ӂzSS?)CþԻP"D43ÀA@N)ӉY >*oWYψ,ɑw> $JgOTkϘ_e"oo)F'K8T<Ԟ52o/n, ϯix) g-Ip ?駥+%*?]k.۲opǝ~^ClKnׄN Ύnd D/Y@IN:gNWh ˾/??b1x;AfiX*+y}#~ qQVc'Փr|Ydl7},E)`=I":)g|afrEڹ}3nT\p}<`R4{u D_s?z߮boޕ`ITM&b=lo=zg(EAҰfɾSIAbԳ4*U`y]Zm jn3*6QRR?!r))W`2+_>^w(nefUdBb<6DNe?Xӿɿ{ޢS琝$p^}f_ZH }MM>>/ה{EmL֙yYxZ\^: ϿCnZl\ %52:P> $.={秸:o}#uF'(?8?.>Jzz6˚}N< 6?=ԩ.–\ ^t,$]f,v)z_v_ÚAte}Ǐ{M+TUZ.t iԍ[z츄 uxLI:M \'TdnLv)Dȶp_= ]PVPiut|P-]x>o)WW!dtyP. GخYzI\9'{c.woES)Y[2ϲ?{Ro)yU 4?SuMU|("[ybT8-u dO4Z)& w R^J˪>?>hx8vON}cI oI=k98eОA='zVg]yPۡge^?$XX_L#a4G{fQx@Lc#)qgDMM4Pr_ny$^oͳ6eGXPp"{_ W~$zJ\M/ٓR-Ř8yXHRo3nQ@_kuV9ŋO]4#d\>wVt2eabOq+r{Dޮ"&9oH$U"CR5ԻACqfǹ TEXmUI*[2ۘ_0#CWYh–,iz(a:$R!0G^ҫE~)kn/ij5 % ^{&{12O{]~a<7|Gɬ:jJv_2P= AT>=ZR*m&5OfVj v2 .Uڋ)[{L ;_nHdKD2yZv HB:n¨|Xk_X!&Z<5}ƻDWcBV#L/tx'ѳR]EEh簓1ԋ3]\U Z՛yh1ܡG4z:=G9/gjj~Qg ʚHȐK-=7@~^MI#n{gJ+e~΀rwSSp"Y$> AlW{!O"n% =Mbfb>Y\avŻ@MHݰAx5 } Q#e߽o-ܼ} MgjRA ?} a_+cG-g~G;ղ=KȲb `- $@,^?` 6z6N9)pP'n/F쯵{`'LdTb"1u7SAh Ժ\e9JsI0@*!Q?/q:nk{B&c_#"^O\F%kޮM_o jEɀ_EΔ}8]Fws<5*tOY_J@G[@?"Tjm14{JhϴK^╮ U~F< .SJ@zq&]ǘzЏ}-psb`;.6Z^߀M )}$ǁ> Uܾ~`5C+ >39^2S|\-F*@>,{6x)~7޻ooהc@wIiJ,{O?T7gY!n5 iۺ,?X^k]¬`F`X+[}_m@ߧ^T!~nE='E>a9u4WrM?IaK1JWFenCM%m9ܺult"=3i;uOr==*\VAr`ۤ1zd\1lX\\VӚ#uʗKUP=:.N<=ਈ/ )9]b^T&]rL[ŝUsV9E:4J% />d'DߓP0l0UDxcQYQ=´{g cYxR7]zG,Q^*9+a?3:L9DA#;dl0b旦9v!0d0gbZtWʓ96[~}}X_gϒ657BgJWLqsM8{FQjp5Z J%q_Ѫ>Z*U+ݸӚ%t}<6si*pk@:uxP4i$`o (hq=9MEKGf[)Lj7No}@txNe#xQ񵔄>R\kO Q4eV'p nw?#=~/ΰX .ٰ;.1zܛpr*^{uܾ:nݾk׮~Y\LZ"A/KH_snB3o[cgRłCPe=_(wNU8-/2mhoDo1Y YQkebzF@1() 'r>f؄d@O\_l7GTAħPepe'0t*o =:ĉzL9gI I$7.Zt+כ/wr 2q*z"-qdh.-*, _/Q<#9c&mdq&jn[{F~L6nM>i"JNT[ O7{۝~jj죸Tb [^Ux#y!_0bT= tkřzm8@e>$+8j9y;VAwocvU\z \ / W7pttcf}}]/Q'Z A%ًZ>8%Vdtjl/"eumUcHiUfcogR&H*&X rք;t4)Ic KIɈ#'XY i" wrKS7׶tlqُWk ӷMVE4Y`\Gۅ.9W\0`: 7bS Sϥ)Ч^נQ/5f!D?v?jdq[l#H QZ))R^@CCw }b-޵)uڿB>1F̑ *HDG٢\0pM?Y*#^#y9͎U0MT'$J]uk<=)"ahjL4iR잊m6 ǔs$k3F䉨Sz웮pxq16Ir1ݦTcaq .OO뫯| aBpwv߻ݣ۾}4Ξ_@ص.jMIoa߀j틣g.[a7p˂Oџ:>!_p;ukGxy1Knpߟ-|;{Zk~ IDAT+ϏeQv(a| %P$kġ#4T%<ӃvĨ1Ih|_]dyV&1R$ٲ0|${;bļL{HNƂ2 9~V: ^򈪘_̣@.Ng#J&3 \(h" fY͎} Q'?HYIݵF!YK9h}Q1&,:2TH4Mhnt;GB dRU> !Zמ uZ&L٨SHc% izr,vI}x7J%ߙoH͇VnVQ~C!o}~^WZ?to8f>ǝ`.E缔s[kd_d"Y^S~SHW̢5޾tG>P*)?ʽɐFz,)R˶:}^,0_.PlzvWx|x~ioZX_Gi7a¿"N և%/OX.pM\yB's3|s~ٖc> ]=_.%p|x-/z=_zIӿm"q>G(׋[yl hZSAɜ:prD#S75c;N~ԡSc)HYv␒8iY.TATem0ـ|Qےzq@TRY{[Gd!~.~v q03-,}nAސi>F֋+*<*/eGG9x!:@_G =%9/W>]Vx:R '"f%Qݩa/|% 13V?M4<ghBc(@_,N_-4W`f%A]ݍĔf9JW,3(j81t6Il[`31a-]nZ[PNgk/k`s_#>Nρ1>{r3`&@K\W_ώ\C\#Gpq֯*P X.yGe>cFʵ>\J%^t*Q`Cڔ{IZuTlՂHRnaa2vС+ߣvyR͕AuS%g'ڳQZ1bTRldL}cI eS_Ii^D|ɋ{F'5f}RIV : /Y7f5D #:a2B U,Mal$FD&v@U~!gd:o&c?L veJjZ"D^7iRHU{m9ֿSaQm`+0Q5a$n+k<|}2kM(Jݞt=,`)Ǽ'5)]G^awC4C`\hjc} lThe vS7O7j ˧M1cW"3:}'m %vqO_w O$>y]!7t"Jǿux}6LTsQ?W+pM4^y VIHw5ï|.>~Qux)8*֯iWǓt7 }ON `hS1PבtF‚bػ.޾obO"PtbTǶ* OqY4MԧuM7Ǧ)sm~Qŏj6EZ|:ƛ*v ra:F&$ft8Gz@:B&ﵚ$'DbƳy҉dy/X1Ҙρ/m<gd^cno\y[_—nm,KBWvFS:>< {_=r^<]S~Jq 6퓇/qx2)2C0Wںv+Sɡ 91crOh@?95HgxPaARikGd <%4jU={.*@յPZ`,[nСwsN%̋躡JLSH< :bm(f{vLl{,(_D<"|zSs /Fo1H&#Q]_I/zoONj=e|_l> P@?#d |kvcBlfֶIi=7z,1;0vtIڻ+ꢉ9YjI\?-H&*?nC}{Lj# mD_ ?=Hc 1s~YO{&b/ t &"mN(ǫoHBm#ijvE0 t0qz.1tx!U.{̻ Pų3"P"w_w>%|y|t+>OUcD8>ʕ:1G&>{ p"9̼1Ycu"y ˺Fdgvis8mrT5'$lQt˕^T7 zA>e0@ 6Zw \41nG(d o4O/$D:FЖejسFG#{D=e?AwA$5 PߔU 3U{[Hg^wS _GsqYeQQa^Ӌ{51~k{B+bbe 3KOŊC0bCB_1ɒ/kFkiƴeT,;B}ߋN9aay@FZi3 |>߭iOG}X;i1O?ƽwdjp춿x?xflsk._mwqrpN:zCt?$-2r㝟=z 'pϟ]!gN:RS84=%\-*(SPHFZ~rhF_ gV46rK*|4#fܻDݏzRr[t|>_/|&0b $%rM=;2JuʧOCm 1T}:A_ּ"& t0s~R> ,âB'aSESky `cG?SxDzdkR x#:* )G.jnjܐdi2S?VI5ˤ?Z`m0gl^Φ"n*j[m':x ` 0Ƞ.8\${*P ~Y9׵VVgJ:*UFW: 7Rj0Y s{Sw>g@!Un-oBt*i}Gxqڽh!(*|xtSa/8{y,og;IO|ɇ@/Roh9;|y0tx ӧX`:\dϤG]PrG|b`& 9G/>YQ`x53`n8 kj,?*-`#U3 l'Ƣ`LJ@!_J>Qw5wh@% hERpcKpsR#pPc*ҦeSr~S_-'qCD^:z$}@MC'2lgd[Tv0-֣Vj;.h1կY;DI_0flU%&o0,gs?wsPo$dF-eM)HvX(hk7{j@ioۨihh"1;;n=ţx|pnýǂA70gcEO{3bLNk78:Aߦ'|X^lIJ`C)~r^k[Hbys<9^@gyKp3$اi6~6 9i,#ma,j/rSވŒb{rW{9"t)Py7iGiP̢\-sOM׿Sgvj8 dq0't6yӈ @dDh=}a? ^̭h,~P^Oʏ{Sg+NunmD*IUDWq ͎,΍-9 l&{itض8p$ _[0RUwrKy4-I|E=W wK( :-Q4w1" c}kiV ;}|Tdk6W]g8`w3*`D, ]^X]%N.pqtrE` vY?9*Hbq~x,@JP?~'3ϺU$_>Ťd,=8{ \fa[FTzmֶZz1qj[;lFJ噰U4`XGT{d_V tWv}bE%'3lZ|,hu` #B%눖wDr0'2'mvNRM<ٯh+ɲ"΂ѓ@Ɔ. w<#p}9gҀMjӻ͵V'ĘK>=%5R6E~>rxD{Mwi 7vҙnt bd&N*&ɦ{E%%cov) "x;drӟ0 qtzN> )-)A`Tę'd"b<)3R-F¹(,2请蜄葮L@aD4@a}%( r`zg~5r8率 1H-1=/#=5Xazw` #In"p"TNۭE.Ȕ`VG Y}HY'V@?y-#ǐӐnؑ%;>(Lw ta.W7%VK^4K_lmu>6?f=^ZR[muơϹA8}7o]r-}A3t1͆½&m3zy䫣IxS3,z7GE>v}" t`:?/H ttbghi/4{q|%l>mUg* FU:9}!qE#j= MZŸ Tb~D r1Q$rnk?qXI6(I[,ݹ!?ƈ=')`[q'+/z&%ǁ[ծFÇ0XܒeZ*5S՞2GPX7oT[EߌG뙥^8P I@x^KJQ=베]Whӟ!S+p:ĖmF{zSoI,_9 S2Rz94FWF`vlE8l]a:Qa{GOͲ5;;#!G7IY6Wէwf֝d^,z<{?}ݗ8{٣{s{3929:&4? ʰ,]\ak$].YNbdsšO%m';D8NAnkĬz1 %(=a>;2A&z+\>l&6@`y-zOO1[qO2TwU4z-7\job~ d@+4e1%L9]!ĞʥtO1I8ʰ]~2ȍ5=~O.-SVӄ$w)2A*<gaB)GS|Ҷg?-`݌ج\= | gٿy~qg1{2 /гs/c8K@dS2`H7XSo\sxz; u:< ﯦOP_W,T>fm=%)[iT/(ɘg,e?HBK?YOm@1Qu.jbQ J0صQ0DRQ4L1>eE,n{ʌvɤa JC)P,S π^[,Hq L}93 P@p8m/Db&g߫upX\yK"Or=pq~ 7-8+p?#ǧ)߈♖yƖ,hJdnT_>yd3Ѽ YYh9K $YrGB`+7ɪp5+96yZAx(&+kML"@Mc}'??UK()1_u}]<_`[ *w6гz<:ɯ @zDB08// #,qq1)oZĦ"΋̀e.D%&7jY`5rdհ% RW$Gc=q@8vYUOIDAT }oEޜ髗`Lo~ChVE05Ho:~[ne8oKuK0N=Bw$9} J!Y#]R+۵6L,FŤ۶.Z:ىuSI7y ̂Qqgu tԏ1c, ~x6u' cFeg]-Igfץ!8鮙D96^׽ H~?gߵy5IΡtܨ,J rAK 6'%Q;)ӓJXJKbZ])am &ٜKw=18y < ^{.b*~ŀ~xB}8#ŏ56@I$W#5 S<)V'<Ih;i*RgkpuRܝqmhV-)ˉ<{q QJ 5^& 51z9"Dd _IJ_^@JDӱ/g0\'RqGx H=+W*U^ A֘wkbq^CWe_裛9i6f1(ggQ7rLo*yQ0T@3j6 ׋Yf>52j¡$VR@= d_ (E{\Zq* ~%ߣ-:9DbZ|sG$Io 'z{Szxq=N}oȇ,zvJ'D'y#S;/#,ހ}ON˻D@omaBB!-wVQ:L5ЯgI:4U=hHn.Ҳ]>Ɂ[$,]QJ %ge Y"=eQ7]r3'?|=ͻXnл6=/Nq0?tzZj9+5aNIz@d ŭKD4l]$ݶH=kQmęS?ZeU8__} tv3W+C PNJ9t}B:!h)>g|Ԉw ke} |2 B>T">VvD֙2ou+I%&|: 27hKw % Lg;VPgKjdD^J|-:|ny7)y%p'-Ɋ׭6T42 PmI[IAHb-_3=or7`qW mjcd/ϟv@*75G%oQ]@f?;{ԻΓ߫δ-nO%WD'qSdvV૚z-gxΉ&Z\ YAG?S'W^IJGlT]2IU`,d`IлTF*b=lg`S BRo0v+by\EZa9`BH>,{wԢ`Rx .7wT'edk&H@= QzϞAূ1cӼU5CkzG+ {0H0F,#|}qr|e,[u3kMn .OW?,zxyL0+B,f[)D#kJ i^y-dYq&L`B{X8LhV a1)dF:2c̖m,X1ZyL{5T9z7"d@aEľL30hS-\q䝹{çmBFԫ{˲mz:Jπ-((q+4N16<5iVcX [R{~u|z=b^E|6(NkJlčJxOdT WW/f^ aՑ}5н/`*( KY*A}5!Z_b^&O;qyIk j,q/ns./J&aք8d=Tb{B='B:ڵkuݥ{ǏN/?Njx[=*u~q7o]7z=&{OÓx>R4P??'o_:'B\tn*(>#^.R#k[jV8O!fqQ&|)?>nkvI[?> _:P$r{W0epx5=C A| TH@x9}z=uE04M$H"n|QH?-ZKiF(b K[nYm@w=j{C|j}6`$}D&YΕx^= b؏zOa2O3ɋ6eN,LT4Gj❺{b5U/ gNUn}#,F郞{)%g۾%]ƌN& Sv'zl)\l\ iWrN6şUl2ڳ@xkCj_H+ϋ Q_WGM'c@)'6޸}IȱyL0Dt )eӨ4|vNqؒOG0f_')sC+ O*Yxhu[tvUSĸgd'6(œ7()+sl(\r5Xq̶GK<@bPY=l7YZ 2O됥dZ'l;j^ceuk}OR9pbJJ]r!`ID w+z7_!>-^CjД ᢹ_Ccm]nM4^fKv(~7[T?q48 5S!Ұn1ety اm<_D8ٱ;LYB犴@ M@E#֟K֓oI歙2&bWo\۷q C u(V4b{J×r~Ko.bhϻL'p_o/GOGNjb$1").-[JL`\!஥Z\:O?EX~_;ȗAJc'h:/p_QHϢ:Wh|B2KoQ; (<h4 {e@p0-1[M1]Jͣ~+ uN(|=e)P3~g $32R T{mE`ތmW'ow{O^wMQ|/uSe>ؿ%;%#HIDLHsrKܣfӾ#ZJAdZ{}E>F1p&: 1)'7yՃH;)64V Us\ca~p ]ס!Ԙs@ķ{]ӾMكwM5vޗgO޽$k 7VSdg]GjfJ+3d$IX=&jЮ{o#J=zgyfv^1P(M*0D6Y"^YɗcKxOUitm|~7"e:;Bاg2Aʛl197]8iz挒@Ud9P8 'ӊ% yN%c¸}b n6ḄGtފAS7x;B$|gf0Ǧٜ-7̥G"D K,\NhZ=* ` \4ʴݶY]5:L8nz/W2ҡH]䦔61Гcx%MrplJXFA0 +y{+"w (+\ʩwwyҝd|[#7E/ZqlHɊs$M}<퀴L}voxLz H nh,p \}?ړJ̈́ꤰ‰rSgA}X\i!m.[P ؇h•˺i|PbX6϶lPѪ!cFC+ iZ|gdwMWuv6Lln7ルF-"mӲɕJd=W'E<-`kl8Lmk'VE=&=*]8E^[ ۂf}T>;V@CiO0td" u3J"!'+-Ap=n0';>X_h sOvsRO}%P앦gTޮP}mZA{ I0~RuDP' :kƿL FT{i8܉\ځШ]_ 6}6"^5‰c"[vlqnZ̕8={öT )V1Zw(uBg0),\YP1:B&; @B\Ig'm?˵tS;usb@^dA;1 6],.t++E,L9~ zGRzcg5u.(x6{m5QʞuA|a:(O\ʋ§k$oI>12ԮXݾԥv[,g)n{pZwp[6pT*ϔ*S-u7ӄw JKl +BeKI65yPn: O|o:(K?LNIENDB`ntfy-2.11.0/docs/static/img/pwa-install-chrome-android-menu.jpg000066400000000000000000003103261462047176100243530ustar00rootroot00000000000000JFIF,,ExifII*bj(1 r2i$,,GIMP 2.10.302023:06:24 21:56:28946 %2023:06:24 21:49:46-04:0083371e8d-5e53-4e9b-8648-3adf2cfcf45a sJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222s" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Ţ+CKH1enͮ8euHE jDPmU t=lN(fsw7Ӗ-{΢[߶Կuj._ժ)]+]kZVUSM*D'Vug(}ZΓuov-daMݭɃs gk_$i Մ'8x8gr/g&4k. 2(ujo3E*u8"_@GET8<׵E/ýzV/$;㩐Sv,nm崹e$lUPsm -7yE*;qMխ?. : Jޔ[PW:嵎Dn-Ρt:Apz~'b:LDp0:!1QmxZks>(ng.б+p[I?LLc2=}EQCYsҴ|(򏨠7ڏwoE[r#T39sR-IԞHl]TޓSӿo (l֚7ѓy‘N6WrLOSLm˩kJФDHd׬.",N.F$=e-oPaaGR+obuf]/R3t^hsҵbMce8tso6̡w#9T᜗Z\=ӧIhmW(((&ևN:*Ưk;l9V }h5a/i-:m?*>_ʥ>5D+;TwQ@uYl> @%`8Rh\AW|<9(iC*݈I<NNF,drV}?Z2}?Z2jM(@N8a5"GkdבҮ~d~V1sxzպLO֌OրLO֔g f$$E?)uQ@QGq˦Ts8-nл8Jr?:HT)"SH_@)iX8jy$nKG*GN>=Q*hEPEPEPnh)uQ@QGq]*$?I'D* 6@xU"+ 5 G@1Zs;/@fP7 zgҴ( 6ڤW3,k,;Cf$`N~s5R#,rtџc@H\9g L3hhϱ>ƀLP}s4QM:ȮeZu^Xm#VUcQCpƶBu1HQ6PZBrr#KRw0u$1'?h^*y=-gXI܆`1*QڦtIkaFj+[8 0Ǽfl;Nqojc|jhu-vCL6Vm9`Fr'IEPEPwX%bX.BRy8*FDXdgwcD-w d ,AMw?SEQO8)*XRSCaRx<qlF%OGE&;jlw(#nxV#ѐrf+g@glFےAKc| rn-@ ?ְC›S$92խvem O=:qԿ|'S=QOHFE |:c=\}JQ}0I&1-QEQEV~;U{lLe0\ UmYsc 3Q* ,@ ~@$AyqM6[¶Ucnzgӽ6=Aʈ '.4m$3ęfL>iivBs>uKUx֒NG x1:Id@f6쐝G>'hմMOmuJ23?MTm?G?ɠ U/[OG?ɠ U/[C-iR=&MpyRs<8 N h%FXMPi#D6)9%N<֝G2"(:9SYv[U {-G mZQf ѶEn\?k:A,g.L@x#XGT?mf?-!Y`3=x8rWAq3b~?c[6|íOZ_طߏ?G-Pmq3b~?g2U\?R.083@>Rĥ#U=GR-Cqomw⦨.y ; e0ܳcnht7ktR>B=;Ο{7'ws=Sⱖ9srOӯMbmJe+42"1v3}iNќI<{ӊ2)g ij'zS}v'8VhQ9Hȁdc9]RJF =)sFhњ|?X0< JKV~;QP?SQO@Q}ECOJΪ aڀ BLKtTX%ݵݷ!RȪ&-#p[>.fѹbB4=z 0[J`eӂ=zօ+r/ Ph_gҌ/KTut9=qG㊚[d]sQqJܠR̆D+?#!YfrRHE*h$\?*RsH#(=Oj]hOj*fZEEw)o[w8FkI+Y.:ʢi59;nU FO#9❤B#${}ϭ3+h1pzs֑dU'9"22m9q:Wӭܳm!M= I0?Nl`/#9:؜=sM-KO?!F}`Vۿ=qi-KPi"`6"˗{H#0/hKEE=ڊ)E||N5jZf\ysszMN@E:Mhh=:kLgw>}2HR (GF@ I'ޑJp[\qЌR*$}M.Ѵ{tPOAvZ5f zڟ@ {tm-GE- whttp://ns.adobe.com/xap/1.0/ ICC_PROFILElcms0mntrRGB XYZ 7acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBC   C  8sNLa/γY/m]`6#/{N&&fPt5O_[ۗ*n?V :=OJ5cc[s<}Kh7:#>[]g 4QYT_WIW&u%:/*e.i|L{o7#SҼ/tZ!n;|k\_o gΌOPti8}0ҿԼ  vf3.Q]\7OX+4O$5о|=`- C2B E!q>Yu2^Ӵ%Fi/_5k_6kcqV!\= Bh >m[)/~.H|iπE;>[ʠ9gYx_#{>Ita yKK cMU_MWK;|0Aa%84jfT>m_H2|iπQn3]6:1O`|}o8wSYL9*݀#RU2Ⱦ[qjç,ePm>Q|;o10玏m>Q|uO7~SZ+YVU9"99"+1R<k.3=?4U.H.q^hG3Ȭ)Qs:9|ntZQg8r9S#r:y0իq%Ne~Ou(r9Ñ1YJ9g"W^ո:y>jҜu6v;dh9IctOS>t7]~[T9#4-~g;3޹lm4gl,&:eP"5܄>vv3^:]Y{m{Ut~-ng#;I-5c)l[?y>qjk:Iz*!DheLy)&fPHwo5Zٗ9LmRh9fs%nt_Q*vVA>D|fuZLU^G3s99yKS~X5ӷzjr9g#9G)G"#뎏Kpoz՟s9#9g$sGTt}?|VKxG#DVc*T䊜UyC,hG˱f3"q QiP K0mW.)t"xq(b}kcq)q5c#p=FWH"3 cTOSJ\; 14JML#j؜Uh؛ak)#\19F-NiS Lq]ب{ӆf2NK`j'rm)uf&iPjSMr[`kz*!DheLyFA"VxO xMNF<3($RPM4ҠLcٌ3l .,M*RPM4Ҡ .,M* e=="J]b*YT!"i@J]b*YT!"i@!3z5-!җXbi^c>w]){1Qi2Rn$dRPM4ҠѶyJiGA&|OSK)DDxe9q  .,M*1R]:9Lu,u(Wf7,J]b*YTTҗXbim)uf&iPҗXbim)uf&iPҗXbizm)uf&iPmsεgq4cidAC#.'S #3' .,M*ƞ6nWk*5>c6R OL*lԴm\LJPXJ]b*YT3B5gjciq5Cz1'^Kj@!"i@J]b*YT!"i@J]b*YT!"i@J]b*YTF&$ J]b*YT`&So12afdR D<m)uf&iPa+W͉-WyϷ2|̚ތK`QaaȰ9dltNlH!"i@>wSK9hɧ<pdC!RPM4Ҡ\o.6TM4CiKE@ 14J6TM4CiKE@ 14J6TM4#hޠRPM4ҠYo-6Bw1T 蜦p3"hr .,M*-x>eK5=Ha%rw'B0ԳVY`CiKE@ 14J>t*C7sJH$0ÑSJeĀJ]b*YT!"i@J]b*Wd`f&iPҗXZ`C 0 m6`4-{!">Z#Ʌ 6$GAN}sJ6Tqio$`0ћMJ6TM4CiKE@ 14J R4ZW(ԙRPM4ҠY2Ҙϸ5M<$Xm?y?`]}kRPPaM*FM5?jĚy $E`F$g=eOz|mAnXCiKE@c l=4:M}v"ԧ P鵩2!"NT!"i@J]b*YT!"i@J]b*YT:/F J]b*#ZM Fd"Fa go^& hByI CCiKE@M40#>GM9T/MDғ8E5פ\#21%)5.:F&ZJ]b*[K8"'k!1:iPj`b+َ}ǔƨM,)`d9tZ2N'RPM4ҠRqm;q=6TM4CiKE@DK H)X#JJ6T5L32o4CiKE@xNҥO9F m)uf&iP|Ihͷi|O0RP"6X&)3*u{>1]=VoF{)- Z@$| . I0f2/`cj`뾚T6u!h֏imw5'ԌOJqFT' HRPP@aR`m֚T ?E}8Ѷbds!d򳐢Zap&'CiKE@~ 14J 9g8J$RP A9OM*RP/@t@FLk9GM*PAP :RPStϝݚ abjg4c:(ø;z%)"*wzO8( 1y:#;AzQ%2,E@ )tyOǫ 흶-%1<r;Ӽ;OA$FyΣ1"5"XvC駔$|5嬚'D"22cwHTS;AzI&24E@MLlMKqg&d&ّSXQZ8g} /cRPIBqZT{閂I֛YQP&fNʐBRTɈQ̥IeнsLJ]b*YT9xcVteيk5˱<E&@NbSAdC"$:2[_6T:$q5O_y9bP -j[WtҠxT&i6T0>·2U}< 'T;KE-_OۏA@m)uDŀt:!vƾ/5WX7F@m)uQMt֠yJ]b*Y`V&RXbEXf&iPҗXbi1m8}U6TM4-SorHZ@KkJ]b*YT17B>ŕsCD 12G"VߟT7 rmo}UpYRPM4ҧ~9>flCz~ur&j[ksLJ@WZf<%k5iPN'Wv[u+d 1V>ieһVrZ6TM4GͮϋO7o3g~VC湖&18Xc-$@fr)]/lFզ:Βc>ԛmꖳi^pR}Dӊ HҗXbm:߻1xaR$Q=M n@#T S/RM*խmzG=TRHg2`c0TryP".$FiK {.s_6z-Ʌwui5W_#@zkڗ9.ɥ1^9bh!Ps m"q$;+_~N/h1׫쯑am5{+8ͯlL #Rǭ,R핶{͝ksgV+=ߧsic[g1r(oOβfI܍@tSI>(/H'tG Rw{իPO(O4w9: civ<6 civ<6 civ<6 civ<6 civ<6 civ<6 civ<6 civ<6 civ<6 civ<6 civ<6 aёP樸r@BhR AH/Fǰg96 xE3zIS\Ҋ<׋__?/#uj^ȿkY$aF*@ε~?[U,JWv~8F_ʘaD?kpL:kMEHrk/6g[[qBV%fr,fdS%B)Q|-#LUSѱ+6%qgqت)*+_VGw뭲ʅȔcS#-2;m(Lǝ̸ $5d0n%F5'4ٞ? 󒝑9N-b9Q X?MzۚV@C:cmݙ A9  )GZ ;1R}S+eoO]KoNjg+Ϙ).@7M|D35WZ3Bbl}rEi^S]IbgR;q'dXl)9P]"S'۞?Dzs)-Mk?]6 ] xrW</2% ;$5F91QRTSE_T.;üp;üp;üp;üp;üp;üp;üp;üp;üp;üp;üp;ügVz 5KAPi-;FѢhFh, PYM$8K;:*7l!]+0śL?StW]fC(< s3 UՑ0y"qVOEߝ-Zaw׎MJd^X,MjėT}ӻ :̳k)4c)Fhk|ش8%,tM5X}aMW)3PS(DJ`R7Ҝ&ڵʩkt_MI]΂y1+E1TvXYS$C;c1{5_&8C {q@83tseNZn`S1qS dܟنPM +uP8[acH)!2IVCKC~݆XmwRމgb$H{^$+bvl:>:45&ڵʩkt_MI]΂y1,S4nl9ԹFia)g`eO"vya$?O3"\Fz j)1ݖ)g/|gSbc.^-"vJMESe .1Aűf0Dc$d1t_XLPHJf?mǩ:LfA+ܠ:"}g QX KC~HأI,X}J,&bhB%$e3 ?e3T2J\2-Kr*[6I`|A%fA_?YmϮdQ4b.ΠگS0|:h1 / mS`kȏrg f҈\%\[<]}\V8;7_,|lKU%ד%1HVT~?Kc0ΘaJjNlqtثl q)Ї8E(Y,d:%Rflsc[Xb$E-9Z4&*kȝ*dRMwԪk|g D_?Y},<3ߨH$w 8$B,ٛ\<[LĽgl'|ce,Q7dMnB$MSJ,ȿ8Ɵ'7 >FYjJT27D2$Rp{ntO o45f"ō1t̬$z 2u Dڹ3+x1|'ED & n_E96V wBf68qJ QeiX ,"rJqL~b:jT|vB,W{_`0llD_ms(+͠E*x,Sfߏ^ +( W*?+*B9hQVj ZaL5i0զVj ZaL5i0զVj ZaL5i0զVj ZaL5i0զVj ZaL5i0զVXebi#j0) ߑ911_?$bg!񅏫&ÌY_&[9FkBX`K=U%וrԭ ~*Z7PnȫK=JrEӶ;Ie,SF(}eOTd 噋&- 9Jy\њ"?'Xwb2u0俺09vw-j9FaY!To#s''jmxgqhtoڬHއ 㖙X{zJ]%+Yt!5җE[OfjrKW~*z4|;ֵof5\8T,tLbiQ7ۑ/ES+1sVyQ'$L+TX: nio3#OBq߽5N3 rVU:xܵ HQgOא6lS`x*\;TבWi2Br*k|g D_?Ym8s+JU|A6\$A+c/(!=2njkݥ ,ZjvMeD8G l4S>Spm!av.hO.]w 9jR( FA̢}0WL8o7?J~g%ߙ(aqǩλ|UHkD-Ғk1sV$y.KSGi/WNK=hۿƂ-PN˾/-(U%*Nt^c@4y(wT}9!/H Oxi뭲g"_U ܵdb[VO3KNV&ylw%rN܋:8D7}薙17ВauYViSP\2( J=Cd|g"g輭伪<4o5kK ,0lj4 &(OqQ\`1<]JjiE0ɏI0B L<^3.uAQWѿ4E;:clNyJ1Neki.0c4q qݬYMؚ$KQR▙@jc29ǭL(0SF߲|35,zwOdFE]/Q0K Ru&D!շN:_?Д):@d{6c^ɣ0'y,I/'/Lky7B31rܯno9yuOCOEh1E3'[1XM&F򸰚]!/T4c F̀s2KHp䲍N*-pzسŠK][ %W ^=BL4l,ҎӉ"(:W%t%Y_&c>v`4{mc16jphc,t{:,c8Q0@aLR(qbG$qrG$qrG$qrG$qrG$qrG$qrG$qrG$qrG qrG$qbG(qJ kKzzBFP*,4Ǡ(Y6p=klD*\TTWeE~薕1WԒ0Ph`0&I( $-q$=6PP7jA 󼎧c1zHԹi((@J&)OqaVy&8i|$51lũLmIPETTT98-#nlNZgLkٶ2Pɱݽ컖54tA@zʙ4.9k~DL+-I h;DwbdƜ)W***M&l6RrAy TS_cšzRCa',SjtEYk"NfzSeO㓨YD1S)̩Hc\-6<5c>MjU***\V;s˩ڵ>>sܔFdD.S$xT RcHЋ,d'j7{Scsޚ((ΉoQQPivY 5N a4)e}oKAAM DڨPPSe-I*AÀpm6'ǎbi7LXK1D 1p`ɰiBQRtpMN,_Z&Vl P2[\ )R ٞ ~Eޙ%dSdi2qa#+ege˻U|@Ҋ>0ΰ&(um &pI[eJd²_YRysUK\%re<7y-a7mP|MZ!ɩΡ۳ 7ƹsyx_A>>ګK=xOY[s+G`̗:v3ËKcRf> 1)L"TU$ a0c;@yϫ3:#XŒhۓX]hx*t57egD,9+ \ruZ1GVW*֥3E3XV[$/-ULc+7Nju0ee{j3|g`;v݃`;v݃`;v݃`;v݃`;v݃`;v݃`;v݃`;v݃`;v݃`;v݃`)ZWj,Au 7PnAu 7PnAu 7PnAu 7PnAu 7PnO",0&DHi "aL40&DHi "aL40&DHi "aL40&DHi "aL40&DHi "aL40&DHi "aL.–K=U%e$k↸(k↸(XqfyU|gjԍ^zrK_hdZ|)ꔨRVID=v]6&:ش,nlH;ŷGkkcR&8Ͳ_A&!ZV6-FUigjD(L/b,Wrm״_rҮ..NaI򙄉2iSۢG*@9l56wJ'ef!z.T+|¶^c0j~GJxH@ɒGX&5/"bQ=djm?VK>L42vgk~B FH67!%nH+z_AZzmWih斎ih斎ih斎ih斎ih斎ih斎ih斎ih斎ihVoLHYLFѡ4hMFѡ4hL j j j j j j j j j j j j j j j j j?ٗ曻$-Ng%@G{X֧#}{Y.oLw.=Whc~\JkGwu( A./-7w,Hd; ?8JJcA_I  !1@"APQR`a02q#34rBp$&ST%5b?*4 )i) !a PO3B|h w;4V:)`ĸx* v 4p37.p蕏ጕ<m`XnȰ"&0G7yQ2uXȕxR3 !;rvO,{ Vgs]5m+2ptן,&3>;yr"B_V|r#;cQ$)j:Ը/<*ïKĨZx,Rx;wu'QUaqX??0 ((lUN`29?R|9lESԤƊ+bw)˺3]ߒdLo~g#==$+bOSҺsw#EC9Mzj4gDy{7FhSȤWlDt7)IȐ3Ž;a;0뢚R!;DN1Dj8#W1h[Gţć'bǦa3Fð)J,rJ①iޣFtGy(y7%爭YsV{=\՞.jx5g YsV{=\՞.jx5g YsV{=\՞.jx5g YsV{=\՞.jx5g YsV{=\՞.jx5g YsV{=Sx\xj{p&Igr7hܴ Z&˷`,9hAϘdVT,,7{0)Pkf߷oVNN$x1RW5,}v9'C !sH 7~> 2ԕth714i4)x e.xFgAa?xF\(!VS6LhD`~L\m RàM%*a7whe۷#niYG olyn߷H{vӝce'ߚ_.L"i%#"u97whe۷'2/l jNe %]M])hQ 3a\Zb+lGRR!‰C/~ݿ/w 妡C*5|A3whe۷7&Nbl\r)y^7v^~\no6iiii֟ii(\rܹI\)InδݡliNկ53pi{g}S7 ^UǹW_u]xlV T53p05Q7&;ӷk4wroWSfm@NIb14X{5dvh7z>yfDQmX 3,0%LBn9 ?rnJ~멆 c0*εGH~??'twqFujec8,f#M^Hɸn1=1Qa^&1J@p[?} )ix-f ή5({P? 9k so<#8XxQc[kOVLca;\G)4bFEcb?%eDĄX4'j n^pCNa; yF$\7DRЭ~랾殬t)^ORThnGl9k%>ѩh{Q?FnGl?Usss s ss`O.`O.`O.`O.`O.`O.`O.`O.`O/O澏A5&-5=0ؐ7OùZ^D>D>D<= ૜A랺w!Ri^rfW'8[C>{B555'?V=VHd,5G*ވ}+rNWk7v8v,#@qkÅ^ÿRLojXV,eE;@o+hLqG}v -К]ZfVR`_B 6ddkD&rfeϭPxtTTT>D>D>D>D<9+HÿršiRxwG<ʀbn5NjfQ4ah *ej6ҊЙ={6L֎üL֦8ٶN>D>D>D>Dz/imNhJgGg8vS5Q"t Lc0ܡFkpL4hbQZSPy>oab18a§Kžf,A*IhHKmSR]pX R↣%\ftYMߒD]4=Jr] A,PG@شkh%$;@,ְX%LZee.uT8orhQb!6֫DbiVhn^%+F) {G~j#Y_E!|b᥋w }h"Э Э Э Э Э Э Э Э Э Э Э Э Э Э Э Э Э Э Э Э Э Э Э Э"֪&Y 4b~lkT/iQ`Y[+=nwqDu1!ѡE5xWLPA31Y/F;7~wL/FxgY9JC͚`zU fA#8.ev0}+zkW \*n,JmjLͻHB㶔M\A=Bq!(sNӰ&̿;q 2jB\if&KG-Ex=1)+%#i,+%WOۭMQf#BS8`$\jV"2) wvqz'V+sE %qEdϳyݤu == CڴTTTTTTTTTT94T=rL(h\+?} )|voȶgtTo#:@\+ ? 6nr,K[rivgkؙP EFxQCBlP\[صUCXdGl/'aA\AŸYYI_EaK>aCݚb#LPn Z8џ*$'7\í6(,1S@VDԴX;Bg9zڶ ,Q֢M,>#7ڟB:MX7iM5x|K*0Z)(mVI%pgR`,mvl@hV1S]dԜ)E[Dq̞b<aŠХRw Xh>\sw Th7S>^ܙqP!YZXCHȄSf@P-z6a"=_ѹk%ԊVl TۍJV(k8#əڴn]wv4>rˣc7-^&'"x"'"x&'"x"'"x"##iUQx͋oFhqg)/AԷNp!v^Ѿ1L˵?b?b>o؏؏؏JɍvӤJV,ŘbY1f,ŘbY1f,ŘbY1f,ŘbY1f,ŘbY1f,ōk~~~}S}w}F,I.d+n[gh:c{ ONU#ΣG?|jS[+6g-o;ӭ9Ҫ1(g>oHӞU?Lh Fqk}Le~ %mlx2Տ4i8?eTu;,[q\Mk}=>d4ܷf}=>be96ևYRIc_qjX{YY}uscO"r$s99\,ɵ8SԵ.zrV$9Wp$_QEJvOEJ2C_*i}:*#+tNٰ*Brۛrsj~~~~}:l&l$nĢٳf͎ s};V^zÓ2fLNչW?rz>MZN>gBRbf͛6b]Ղbڔ8رmɮF]Lɍ?OŸX|v!&2/uq?ş/ēmܝ۹<^w>q}=,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋn?bKə3&d̙2fLə3&d̙2fLə3&d̙2fLə3&d̙2fLə3&d̙2fLə3&d̙2fL#76,3`̓6 3`̓6,pkuO kN_N?5zQdͤ *m$U/JکQݣZK(ǁ$ӳ#FM]ݚza'nBSF߇=Q\OhZъ'wjSʹcN"rȝN2FEάB-\JK=U}>wHv+zM#e,δ_GNMcT!ԌvK<\|uc亪U<ԩRۏƫFdmFdmFXbŋ,Xbŋ,Xqo)'<4!̌ 맩-Z:Ù(ٚ5ER1kQU6:RR~em S)q~Z*Rp2IѥJXȩJ0G[j{̦BJ)T VՎ\_ZuڶvCI-QJ4:]diuTHş WGRq#WUU•JkKh1v4kƍR:CtRSw~F2B|u* 7B[%|Z ಽ]5]%lECWb(ӻMZvdӄnx;M.-98˜ǥaxQɹz}m_УCJZl#RxDtJv(cwLR+lס .1%mEw^#Y-.GcҘdӺ'7'yXЇf   !123AQ"@aq #046BPRsb$rtu57CS%cpvDET`&d?T Gp7É^kh\JHݞmLe-':#\,(qSaݐRQ Ls^sf-Z0 ܥKe. 4%ᤚ؞>!z2-jN~؎[!🐡՗UfC˞e頻^prr|s)p!BͺXTtduLX1dLx6 XpTӭ% NJy*<8HuaM\-1Y+[WH󄯬[ 5a!eb]Su8 mriʔjϑ= })  9oR"Jջ-IY\.ڢίs R.M%~]u &I[(3dd/kJiMr3n*Xg~]oE^IQV֩m -y>^2ՠu[֥hz Tٕ6L'܌ :L=U[MgucȗlֆVi+~_`/Q?#ʦq.5Gm+dթYhJoW_ ؍ShGժ PT V+zܛHZy.ۑί8(W'qe r~l+ OHѶ;M=yY֎Ju -%SOž]2ی7=Q Sa)j}sF -o41 uFByêt-m6] I){Y/-N8'3Q&]% 2i,t%:Pu4- wan픍#-(YH[%7 AuhV)*4ͮˊ;e”gw|C׬EpjgH4^}/Oѓ%݈sͻ/L[;`qiD~qjLWۈViXߩkRPF H:Jyb7M J=:X(۟e! cmNG{Ȗ mA^r6m^j)e^CRee'Ҟށg/t5@$U.沘!)O_ޑ59+14t ??iը%#oֹk\!>]WH\ҿcCw֓)6+B?&՗g߻^$淸K;NwQL{b5 N˹.GWOeȾˀέ[O>kY̨O} c>ׯWDCD7-¥5֧-+ݶHmD{պq`#>7PFyysUЋ⮈Xrd.oWg-PPI#0EZo,;zU|8<8q4<|{TpS8ܡH)  L&pw: cq{GU&5 dx,'au]jQ>a&={P\~8K8PZXA$(Ͳ՘^@]4TNDy7Z63"84R aLrbʕ<2Ǧ$!d͇q=Pw6X> _3ͫvN|#WWz=}PsBr"?g\v*6y{E{ZC/v6tvҟ}\]> ݂2򻋯(+=ddlIj+XrQqierWy)uXrCR^]AB?#:r% bde`! G2yuU [rB3ի,'~uve.ϊgW T8n; 7`sN5īmEu7{igu6?0;!GrihGtNW(lN8}>փv|@~2NqRT|攋 gIJ5yor?sQJ'p~_W9~/CzP4yx&h{vGkvWkvGkvWkzWzW5ҽ鮕Mtk{]+O½Ƕq#"3}ax|>E_=ujQ W`2`#{Qo _j5aY6Sw= >]@e]~"m7+i(woi"ޖ6%pթG{ \\4V'TnI!25%YqmY%yܳҒ10ͦȈUjݚOo2"c T מ6Q&:-C Bw+#¶f?oVMmT%N*V̧)+#VդdžTdJơV%r(vܭN)s9嗀).48RsaO #_iҿJ۟*w[_r5|:|lL-.KH#wa;UZum5nWӭu[mZ"q ;tM|[`nfZJS_pntK%A[5җ>\3ύs_~iǷ- ҵfNp߿/±w }{;xCyHCSư\_ޗjWs~;ܭ;|g+R|G=?mĦ7*77*h P'ܘ/<”Y-cg/^ʄЭ;V=?DJW7)tIlӚ;+=Vߗ[arN]@n/>lݖ^]<-a[W]bwm3fP[y'wΆ;`ar"?̊ZԶ3_ēuN#.ͷPoN}m|Ӿ6dKQW9#˼`GKI>] \.feIu¡1Ưvyv+We^\''e)ĵ|eaƘ%eR=`6;jגx@V+%%Q'ӢBrKB~3;SoFP̡ԟ?R˽[`m/=,#xӦ>㡵% U*֘ћn+=*&nܩ@ ;+Dg=Ϲ\!MPȥ#.ogb JٶrFG0Ym4Ӌj#-y}/'7Q܌Ү3V_=MLʱK~a sQPQmwQ.66&(\2nx5on.#N{sןVYT!;6d2Is[ҝ?Ij_ēuRѷyA_"E؊.z՛L:҂sH}.u[o4VS1K]y Bߗ%`.< Kʮ0Rڗ IqrҭQw6ddRF`Ҝ^j;Q s;%U,U?UB$đcZa@.Zyy}a ?zXC$Ǟ'd~ Z&jk֮Z&jk֮Z&jo֮Z&jo֬M>ZH#Mt5\\6ͮmsk\6ͮmsh#aI?t~@.--Zo~^EG:yUiiiq I$f>idg ~@e\+p¸W \+p¸RՆ/F"*٣vcwY5rʢ[Bf6OPTCyܳҒ10ͦȈUjݚOo2"c T מ6Q&:-C Bw+#¶f?oVM"Ȏմ"lm3oZR9{kH]%7'TG|VgsFbvњ\0Ys*LKZh#,y8UrS~j@f3+w oW1wu!$rҴf3xԌ$HD'")#-@%)YnԬ?uq}cMF/5qHPJ@;Y6}ŶsmkAFЫ? 9ՈrS~j@f3+w  mR\sC-Bi)F_j償sa[DIk Lfdr׿pd ؑ+9 C>&&\X?mu`9(ݨg稶(Ɨ|grNKNQ  r|.xzTWlc7o =JH9ϫ,S2LRN~x~{O*yؤ(WIfq\-r6wSֻ6AsGakE%~[1*9?v=~{OWP5~+ q_kC\WP5~+ q_kC\WP5~+ q_kC\WP5~+ q_kC\WP5~+ q_kC\WPFyy>&Sc|M_XǴOݏi5{]~DF.+zÉ(3܄ bMϴ΋q4CW^fgɣ2pwHq}πL~oǮ,aV2^J7!4T _pl(KY$MڂP I]=)*N%j*7-a+QGG±(V\gɂ6rpͶZJ`/bPrY4վkSojRt5q?P'Ǵ!%))Ju oo-v;Q&Τ Y c',/xbtvhӚCS%mM1.fkE)n sA>W EUmsZFqPtg TI7Twhvh'I]u܎SVۑ\N'3,ؽB_ z*蒝Շtb)r6˞pj׊OngEmRŷJ>:αT[,nb )enJ #<1Ta{lA<8#Ն!=1Y9|%XOݏi5{}eCJP'(dN_iC[FQ|(#xyrf#Ŷ0 +s PDr* jVwt2Qyj[>6C^ŒZ[5E97$("{~"Om %@ ^.wi6vqy(J`%iD*ҼKԿ+[ j?v=~{OW)>&~WFЬ`GI>&{:4eȌ!yiX)xl^y~?OuYȹJPyus?Kw,^1]Dơ^mQ2!FcǿƯ84f=)Pmg BC1{,u\VbEwI'?61'ǴIisE[nR:dѿr^o!+Ove`Tucu=mjK*Zj(=YP*k|Pguwsq]1\Re܄iIr8ƭM.!n>Qk?rm9ꖂ[2`EڬHa2ҜnW#m KD-d7%V9C{ 09G赳ue+^mQRҰ' wr򤶇| ԝzjϛ, zÈu;}լkX!=wjo|‚! je9H=]UV\M1j$2گ sn< .Wy6^ZRT>Ⱦ+__\ʫWw(e R$=' l6X:K|Y%sx`JpҨI+AP#Ru, Wۆq伭!{vxq Xە\3)C5iJO;Z`O N6sFħR z&Sc|M_XǴs"G&eOZ~{O~Xw&'a Aύ]Q{lRY'g%%?r ;λzRUQLNI'.paN !<8Ukpo^hsx4V™:ޡ\Eq_m6݇ IA;PeX*@ekyƓc|M^Bwǒᰯ'NYn+-N/7ԡAŘ`=-'h% %#p/+V MCr#e Fn?.»=˰8[ev\.7iMeXfeV a6w0vv 3+g ҟ )\xWu,Rٯ([2eiI?IIէ?%^oءv[(vWsX/ֿՖU!Dī$4ι (ol41rƭd1prJֽ'Ͽ:n_Lr rV%EH4y3]ЬV7nvBKNJХ䩸)*zSI9 6L,e$U/$WƯ7|U ("9V|߭9{|bpֆߕ|4w)>&{x.[Qq g!ԯ:M-l~JscCp)r{4NAI)vt[Kii$2jDXJ\VDI\x찧WsJr֬wc|M_XǴOݏi5}bj?v=vtZQ*[ >L~_<0:R#֐-4'WVuvJԑ)Wt::ON  QNSаk(Եc!#,sGyrJJ.%& SWSg.oS(ւFDv:9s="VYktNF9PG3ջ*]ndz6*gX .3H ii{=.Gq2j)dٷ]?GwڽfAyv6XZn2pdj+ ?uE\RPRQP |*XYyrkb6 KgT.ĂTIpzJ+l'T%$pXBT7.jh!#^kkS-7'^)b<[(jbs蒕HRN*j5qsdz=j#Mw$q1"DIDbKМFm Oec{JlE NLG9P#<ǃaK0+KMWrMBJT^FZ¸ڽM٠~ӄHe՟mwcwnnLD2BtD'fs 7vgXI,Mm;U/k;[/>#VJWc70mᲨkwF\_MlZA[9;WuMpmQU%o<-rW+ޱEeUKOd%jB)=^89$aˍT$P0{+Bt=o T4+xoi2%mi9-^zE uo?4/ZTޭ;wVl7M4) IAWG/8%ga ?A;rٞs2> HzcZWSHBBJ1I Ve,w; ]oq(ɅsYKjPln6؎26YN̶S9-;ڱEzz+Q3e-*;аB߆^z6;˷(^ӐN@pʬL.VwPG^|}$ |?*8VoۂvRQ?5hy8Ι"dWL]2+EtȮ"dWL]2+EtȮ"dWL]2+EtȮ"dWL]2+EtȮ"dWL]2+EtȮ"6Oݏi_rnTLr)R_Ǟa.I%6חZλ̌(0G;NhEw%8[nmvpfu~{OwQޠ&, ݴ5Pux8  ļ\M;69'/Pe[SVK͠k9xCZmI 05-H Zp'>܆5cJV ֜jz3. >WVu=u=}{@ðZYbc$ɸRzrRvjԖa)in7i3tW)>&}*5džex%#1bD{&y)⺺Tj~CFjZA#i˘mMS}*N}6,WfEzJC#oy+S*%oi9[q!#2OPmx']BoZtdlZ}+Bv*sVYoe&hi&J@ WxWŲ|jAv%mgQsZ1d% #?nx~+)h5 KhKWWPwHzէ ~`?޹C->JBӘPnWIuT02JFu~jf97;|(aqIJg>|֒7SNZHȊNA1pQgmnKB]nsVNă`|TfFmQ?UZ1w,(1` aRYh:JPa0d0$ {>nj?G?-w5+[ϝs^#`ж[*ۨݚsUwlVB44⥶!95ώg2s8n3 nzy". Dkg`4vKL7^ Rs}5izKr֕z2JȺ1(lԀ >?v=ugk5*0:J3O-+kAC#Vp j}Xܸ\ƭ 35w{i('xq[gʀHwoW KS-7=E''Pi%2RHE{k4)-I9{9c1/4OVy)>&Sc|M_XǴOݏi5{˅\#ZyI Rg8y IRc;EA^"VNkCzc_.{tfˮ+׻Flivztes1u p3ѩЅ%CoeƷ~T H?AReYV%3cDS̕ IέfEP)GH̊*$α%1mur >ȈP/-|r>ӾBF=(1+ ͸J vn:)O'avwWד}6󦻓╛JiNڦJx eqӼ%%Ugm^t*0 hɕO:i߰a>G$Je]J6`e>[Gwf@9W ?v$J߳gNy-577W|6\N_)Nn_MwB-^mpI )G J'K>J&:0_I5 r;ekfL:df}Ue’9Hm.4'Sj*zd̢CISA7U#um&*/)gQFo:ekuژvqږ'p#l\nXLKi 6H I`0A^XT7s؍h$6P,g)!ܭ ! NNfrltʱ =-$[ma*$sʎ)TNcM*\IQ[Ѐo76pn.iPȴHԟO'ǴMvg[Zq>O'= ئBK]՗QBmZ[*K dp,v}5Zf6Vdtwh7!8ۆ:4v\q# rRJU-b?+=p^&sBlsP>a֫vUiɦl',օNN-pίX{-̴ݏzЍ {vz)d{xV4"r4Wd%zwj$vFoRR^1_.\I$Z>ϱzgec GKcaoG]#ÞIPi -"Ř7BmW9Zu(텭~L$  *B^ϛ]S+~ovˋPH⡿F1dOaDBL{xӶ<3iJ-AG2]ՐZr8WyO'ǴU2%}m_HWѺ-7?A@qǔ?B)IޒG7PF`miČ'ǴOݏiWRhfQ(OVXCX Rռ7o-a6v.N"I7nY)ȜFT.8]+Z~L퓳BNEM#Iݸ~{O+mŹC5kg"OVjJ1][BbE>I8࢐H?v=.X~hR$YJC}DMӇSm5g/T&P?\ I IG_)?rO֣4IP w.Ob\[&G5z(iĨ(K쩎:x>KIԌ^2սZg.ܫ mơCjmS{{\)Ԫ\iSW/px ن`-]C#V+$[R5jSQds\5$$~*0]u ʒzy :rR؅"h*K e3gQl.w6i<4Ψ٩s52eu y%%hפ}.܏g.4]՟zu'iO<Ё)L+[. -OݏiS.uQa:gl)L+'-bژpqB:3Yqջb88DN ;w:j+ub\et664l4X ~8zM.Z^[n5%ICqJ.%Lk㸆@S-hOԟ'{9ڬ3&IXvF NCWDܣ= J]Y\V;o]W%'!WI+NN~sr%g-kw?QpXZܓpէ@=~d,xVy%yex(/I=;4? Y#`rzZ\zCP䩞Qmd ;V,;&ዮ1ոpnRN[39bHR%L%zvIy!_+tmq)҅Mg Đqr$&05jy 8r;|? ćC##&yR8fr5txq*[B>d3!Hx»D;,ҧIK`2F,nb5v2%Ek A:2oʬl/t8jK/7rE/)J9a.;S#x1ƜCm?h[q mH ):Z_)#Z|y~9T,eoXȈ`$G۳!Z)A뫆2b~.b<6B! δBz Hq9XbZ *dT]tR{jk*a%lkusQ̟J~{Oߛ>ʜָ4;PjBۭ+hm[u@)_'}Zo$k}MDc<ՆquӶria7cß9w(Ϻ֗zTSNG S|Ae#$ܰRmmQBAqէ I6=ylzTv;R[u 'vG*ғU d2A?^`qTܫs*î}[ߒwn9q Y-a2`$UODzko]+~[JߦVjk֮Zfjk֮Zfjk֮Zfjk֮Zfjk֮Zfjk֮Zfjk֮Zfjk֮Zfjk֮Zfjo]+~[JߦF4 H#f=aND~m5:Y¦#pc V֢3SeJ֦쳐On[./g[riD56 ԝ$}S kVS;5bnM `v 8Nuauҕr=v6fraYJo$j9$xAD)P=F{e0\7K"6z>ӎzzX??Zn ZlYoyOV[-nء-;2}Gbbl(HVN۠xCP#M^ox̥ * kU3B@Bۮ1-2YJRGY?j6mF>WyG r_d8P~\uhmQ ڶN5pb&ڦPFܯQnH]I)xdP'78Z֥ wLOxM)gQn-Q]Rr#T6b3̵ S]_x$q\rv{NyjҜ~vS'kivu}@~&ZQ jO:7øſF*;g Xu|W'3/}\y>V>H+ Z0tbne[I %DIjbT'M $rmLZ>uݒ$yМNRV6-52hyY'Wf!)OrlPŅzYƭo6Zwȏ6sYA+p!XP験,7a{$zU)NpI]>FlyL!G+o5eH!'}?l)K/XRTg`=)m )H$wVfɷH]V zq3b)ZQsOUb ^mj):]v1ӿR9jA_* ?-i崙 JUX~vUV61 z3gu6=cy6ꇲ̵3$Wt+0q]ɘe4 EY-zT>;I 1^6~%3!N8_G3-JDҵ:ٸ[qN(ңTթ f3Q Xe< ̝GWUjEns ݏeMw%%7K-JBr؍ Nͣ`vcs\Hwhj(6D!{RV x<wPꛇ 0Qu'`G:TtF̨vdbCqn 7D1.2R7eNë.y?WiV˄Se9o9GX=$Z[Tf}nV\%P);}?K\绲Õl=Β:tg͵#/':O1W -{WlWDu >mfpvnTi @_¥zRwg'uZ/ođ:bfJ |kəʻKl!*Ni|.o`%UJkNml1N7Kz >QVa{fR`KfS)jm.y+SK-O%.6`&gH\eIjLj)T{y*ԬA}ԴBy2KBaj bW=u?r?VϿxJJB0&5FZJbZi;BVWʉtJjmu0mv-N:55AZ_62撝I{*Kqmii:@avnMeieΧ5J +N`xrsG|-Pg ~U? 0kHڭ%{?ZylJ`Cpۭ-RFBi:gTwz`l1n[ { v]Pm(J[ 7J2|t$ ǃMr*yyoܾճK{+gꩱl31LG"#[\g–nq8Td:VXGt'1弮Rk۞|ą/d%;kN3|lT6Vc%3>J~__]nK!BH(Jx:OeE܄(w^[:t7 Q!9j'! Ǜ=pi%d 0F\+ڮW[,`"GPNGA~:oNIpy[2 5W-yvkx%ѧȅ)9' {ml;Lgٸp E܈N+r\i263m\V$A ;wX")c2NZvB Jޠ=?rOG'Ǵl8^2W덫af2R]Ҝ&We/m+H˫RsΦ4r!T <ܵN-jR)Rs9gRJsQ/aimiԩYqEm '#:.x=免q4E#b4>r7goK8T+qlʇ\pd;ʻsџKF!+l#zӟ /[n,H<u.;f޽رi RؽIՙ`­- ^/hOKQ2\G1OQՑߐgX6Ym٠i99.WySnn^ t6VY#l&jWc>+N_]rn0i$!'yX&mL9ZKC{? O][=6+j/#&159-^ddwgR|~ 4--g=wgK[0Rϵ=ٝ~:[b19pp;2iD&iӴ_"uoYNxR3ْ { &Tk0Ne9V+\2j9w8$0J1zGb`7ip)0'xέS^óiŸ NyY<ɭ[qBVYXg0d :h ub.øSdi'1GR컘@%Y#ڟϩkqvJRd)~Y N..}H=z[&nB-]^w㾭b\So} _E;z0uHZ^\&ou期xGR 'gM-,!YW9'0r)PR0ljc6 ) MGoSc|M^Msr}5O9>'\kMsr}5O9>'\kMsr}5O9>'\kMsr}5O9>'\kMsr}5O9>'\kMs>~{OpW\pW\pW\pW\pW\pW\pW\pW\pW\pW\p{c|MUТWBQ] +Et(ТWBQ] +Et(ТWBQ] +Et(ТWBQ] +Et(ТWBQ] +Et(ТWBQ] +Et(BF>&Sc|M_Qxjj뚺殹j뚺殸. ~{O=6t@KY [6 _+H<"h *;!@n }Z9yo2KHRT:i%<Neuq!hZx(vԫj{UJZ&fjgq[7#'uJ)%CgN{cT(i0zU-?}Ԡ(g.o9; a djB>BMǂy+~ >> X,iH[siQsWV>A)<9SDy5M$y9:;|OhƸaPaGRHAVp4!6F$ pz :fc9-Mh7'<#ylePpdo cwDNۗ#ȵ٧ʚdPAاI5bޤ2m ֢k9VKؒ$CrΰfsvǸȘͥ%x'Bufi7svw@V֦Ԭ)'9vӶ276:xeס(W|>&y /&84nN*'ѼT7 o(.9xa[2PI kR@FJI!dlAOWBSjJ d+#VDžٺ2*8? hAjˆyo/…tz䍒Iu+'q_"gi|eZtNa8nγFER<)> #Z\#kZo֫Mgd9"ե '2V,_}ы[Fr~ UaeH //+pK."sȕܝOhVhRR=*5}wJS#jFy_'HC?%aQtk8vx>&wadtHd [jp1ኽa  ٕȥ'W*j𑗁VL'}Lwյ0| *W5y>EҗbͦdUV[gFܭn9N$I[yV{FDg!M#@tjߧ_@N\ʈÙkCII 3 ]2N+V_>\vvoXqf|5W,RSZymSWCQD&SQ$Y/UԆb'De6꒶G Na[UgRԬ̫֬~Z]\ٟf~ '=WsBO9JE7RRMi4ޘސH+ȩSϨvkSq }KS)?gZ9y;utlZZTHlBo4IҔ7]@Q RF a0Xm 6h% @fs=?v=Ƹ\kq5Ƹ\kq5ƕ,ǀkrk"Ȯr+"Ȯr+5u6k|jW_&:7ɿξM5~uoM_|jW_&:7ɿξM5~uoM_|jYF*[mM_J }ϖ|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'i).sZg8W6ͮmsk\6ͮmsk\6ͮmsk\6ͮmsk\6ͮmsk\6ͮmsk\=\Ndyߨ5NAo 3%n( jd\/~bV)K{edpjoe8RQjQ'S2XqjyufTBNeQKvf*v1EF_6,i-"2H63}!TWD:.oJQ ZΔ4L7FO@ŷጎiVՑ,< :_R$ugRuK/)MѴ!Gzm=}? $R?Uq8阖][r+9}#lmeY٥q>JR/#R/oٶtӒI3Ͻo{hwK:<$:ycBV eL۶aAR 9UOnm[{Rsنưb:oM7K=!( :kPRҝjJ氣6[/1)ʂՇ-o }щI}m4- GX>_s2jdxJPqz!^olLJtVUV#k#J2NAҴ%͙Sc3b ZsByj>.S)۹ֵ)<8."rnk2"BB~ߘ˽-:\vqmGUtxb4>ZwhvRqF%!ޣӖ].w $kYILue%YowԬUͅVB]tn͙zjΖފK֭*WX^^1ӯG4Hր:R2";+1*+X[O) rR:5'/.t6nvp[#sf,!#IX]D3HS2QAzݮƌQP$ݻ=j3dK S3qax> R4ᾯwgm[r slJAJМG]w4θXnS%Z PJIӟQln;\H-{jZq N~xo,G(vYq)=ț{~>/=yg;lBٖ{UZ,si)N6"C"޿ wWZ4ռF!:r$fT,FY!>*m9ͮdG2(F[Sz '7-bñ,2ꢓ#gԅZ|V+ŊnHeMIkw7nɓ6l[KZI>]a܄GW&g+1X^(mx$ ފ]c͂z-C|g[Sq7Ҿʱ$m[mRh(%ON4jRjF\" )vo#*Vg\*^mRmCc v~CS)a]֑9e_esraݐe<ġ:8MGooF:cV?瞞eX2t'[̆r޴ɕ/rlAe=Y7~{ɑ-l%}CmfΔ)Kl}џVyRJc-#Oyx6d=Jφz~EaaSCyH+jCCzsȂ;k@9UA$1e >ڏjTĖi3,j^VDy1IreDېVij-I,LaK+PRF`y\k[y8ճKQ;j ,tU՝J9,<6ծ-mIJбP" 3##r[m!)O:P5~+ q_kC\WP5~+ q_kC\WP5~+ q_kC\WP5~+ q_kC\WP5~+ q_kC\WP5~+ q_kC\WP5~+ q_kC\WP5~+ q_kC\WP5~9כRiPk2; rho>Ւq?\RtOңĕ@օ!Yy&g>?M"+c4 V~_/.~U`LۿjYM.//(iDwd蝣?-1>9rB!)]%{W >v2.w$ΏEkQTuu/Mėե9dHQ{BuHRuesV6-K3bG(yԤ@Pu|rؐo536?I$꫊htۧĸ,f!`n,!1AQa @q0Pp`?!jC/5,]+W2V.C \߄-<:Tgf9, N:PZIeQrtϞݶL9g##)ci UB"%O#i%AmxmRk2KU|s)͛πD؛Bzyϙy/);҆:NˢXQ BO%M̊eU;x}iqTM+xCq±A-"NָO Srl#VW2:H'UnP8CaB+;sߠ.c6`(dgnEt Jmbc &`KTMo$ 4 RK2\6U1T"Y2.&QP[yd7[:N-8F6"%:&p H s  !X8 )Q0H s矷hO"6"%:&q3iXp,AMtw;Ƣ؀⫺jwWW[AweRvHrtӧN:tӧN:tӧN:tӧN:tӧN:tӧyO [38# C>}$IsKc.~0vyd.j^  +nh]c5qj&hmqѳdm'"vEr țhx~zoH%9@猻q9͎s.[P.w+A2X #>e@@Dj`ǚBiw=+9os5)0nҧ#_b5@&MzKtsDvTƚ8%&Fw$ݵ;K/# Q6Zҫ> =qBc'̏%6'"wSAͤ6BDN(.8Bm;?(VhhbmZ[ .cC|S&w ~"tk3T[GW:4m o{{Up\{P29%[ .4WZR2 Bvd`FWbGIBe{O$ގ0l)L=^TCƆh %(T{Ѡ\I}4o*SM9;×"GRaU Z449(fZ4jip9R-4; GxLyig/œ_Bq/dm1FmB 9^&Ֆ}qWݠc\LE-dŕ7(!5nCP aG! v[a4ZU`ǟc-HY $!_j#Rm(p`S=r-.AN-&,oF*s9ԘX DT*,I9k] gI痽4.At+r  *hrK/6ZI]m1;b 2((?<OS_o=@?[oM1)ې>}+O>'? ۆ>S'4x®We@*vWe@' ĩRJWevTR@`պ]u!,dž.}|u1E,ky%JW`vTT RTX?{~u|Ŧ &QaKPi9TS\"\,bmg.gXy&)mtrC:BvP < B+EC^"|%t5N\Nό_j‚ 9'AҳJ+nη@m KbeA]הUs@{q6qԵK Ջ4W)4 h9ٳI ̚fFɽ[yWnAYu@ּyH!0)n#I.`m Zfm$=GWWpiUzI @Sguͧ=%TQʚ8߃K6M1[V\{f9ݕ*T CItᢁXfaiiEGmf2+L7e!Jqiut0 [/k0OoہFg%l5mkˆ%ݮ3=GZZPg+N #ZJ&2V螰a\yThR*dzX*w*+Bfoms{\-^ѱӭh2nJe]tdJ>@4> ]:88N'KI&zWV4ȉj`Fh rykЃTsݝws{~יQ_60gW-?T$AܩP%JRؖ0bY{o eJ* P%vWe@*SŐ`T Jʕ Pgʞ5]Ǜ*#?7*@T1`qS-)qJH/9y^r󗜼/9y^r󗜼yچp*^!:(h՘-wln1ɘ ? oϳM*u'Xbu'Xbu'Xbu'Xghw,|la|>rd5IE ^Ag C1 !Ꟊ?~'TNS:uOꟉ?~'TNS:uOꟉ?~'TNS:uOꟉ?~'TNS:uOꟉ?~'TNS:uOꟉ?+VQ" C1 !CC{Hw6]\kν&sf/4<j~+C4.5WBv/xoHl12ڶ"\&UPtBDzͦXEqbK U16qº2HE4U@,ut !@ghNu;(ޯ' rUqa-r/nP9~|Q'e"!g0LӚ-APN4%;ʴANԹfw:Q:7QoeKPϏq !^=DA=F# 7d@=M`26 Ri;@ř&:sV4Ԭ&*1h:۫TbԐ7y"-ȕSŠ8oD4<w,o_@.A^hx/i4<b C1 !d&X7d\CC{Hw 4U&? =VW[}_飅ٴq**QŭnCe]*ՒghW,Mrd"` Pkq !fS_][ZiZw>)LH2>4Ȕiڶ {/gi<ԠZW)#}@6K华KeٖjGR] Jb_u\ܪ# $ 0`Aolʘ0v)R0|\CC{Hv_X<;u{;2}{I6YPEl-eXξZq{F`-BԃFԒz5 K\ 3- EB$/9OTWNY0+|$ZwQRv:*8kXkn),ikƥ4<b C1 !CC{H~!ཤ;+dCC{Hvd>F]Qq5Ћ:^ЉbhYqqDˊ`Mq!<D~Zg}!h]"V`e:0&v a C-3RQJn E9dY樤@gSFZZIWUJ*ie%Lr2""<0JipD&C\r*;Q .vaO*.vR ]D0#Eͫ0(6gtkps2!ย$X;n|TCC{HwLk ⋖fy45lЀYQ QWWu1w%w+{ #6B\Ҷ=ncR̥՗cLDMvn 9b9QE#iRh m-4e갘@US(X  UMN7ֿ,h 6ugybBD;Zk$A_^^p=FG%̑uE7M44 3&Lo-(KZP.N0Qycs R]ڬk ޝ^U1u{I%Exjha(l04YT ^HcJb7*!ཤ?c^h~pUn`9!Gv/4@E/i-9Q-i4? +c[\g։O#]{t {쎎j ayxyF=EMeMl@z[N _V%bG#?[ë; /[ڏ*֯Ksy= 0K)*,@ܟ%'fw~!ik-ɁEAseIxa,_K:}RZD v1 7{DRrG ]CC{HwtMJi#R1fцg*rr!ཤ;UMDi[|w9#|c4.slzc=vQ. D|c^7B6>W"Ww8^H**:wh%Ϻi [r"![Hp T $t éIrG(C'hvN2}VVZ5TBl6?l`a-.A2/-N*S)CyuDАi#;zU2ee ő@GfIvv'bW{"aJnoNBF4lK˹0Q1u2C+q*aଥ_S 4m;ep5 /nQPrenǷ_Vdy*VrSvA.G;sjYF7_R3k,yi@Q\ m@IU w:&>,z ,*O/YM (Z-UݢOwò.-0zΣX]5)xB˺OKUxJ,D4ĄxǷ \Ms]:eAxʥʛn #*Tako^N4Ce{O닠BP @|n;"c 3a(W5rEijytct2,pV ;kHI+)kcԱ)m쁼imNQкZ:M e/=h(6nJ5jpT qM9 \.XGL=CM<Rk.Z \U#kNF%2 g-k+@6z р2B=Pa!F[`8h`ِUƬ J1R0{1 I-e#x,zG!>7}j`YМO}JGs UT,FV(H8<ur+NmUae60*-U ڟ.4CUYT.Q0zk P-a> ]o^ Am^.!-i4<iW g6FVU O4:?U z,LCB8zЭw1m.qD+]bk a0ӲXuAd7&!z))ΈXFD[AK@SjR(MYiq;\ǭ) / eQg)@gg''''''''''''''''''''''''''''''''''''''gf jӀL3tat5t/۲B^kBT ʼϘHCoK34|afX; 9IVku G`6|UVOF 7Љu;z0(B]4>t1״vݡohx/vq _}%P G ҪPz5z,| C4?QN-Wr kLZN1msL\QWIQ)Op 4@V䵴X0i}‘˃gmu9i!a*Jo7υF1Z+ͰW,', VE5})wq؂]d͵jsŧxc~` S7;k/`Vw-%!bQ$v+YZGӥÐ? G]D31ϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϸϼC]4t'?yf0^h~ d~agD|?bM}׻_\fpwip/"-N2@Pmcq` aw (*).Rty@A,B0q: c&‚bJ+jxh+K+e,4/^fLvAŅV,6}heEn hwbYZdeyLj IA4DcK3KhZh]gΈ12..pMƒiG@oUkU7h et?0Z4 wr"BKABٟ qۮ/C̉C+pV݈h~ d~``0FT"z3I=SC^pM>V*\Ї `ey+LrQPqv|P Q3J!KݯGTz %҉HʬA >:a(lԯP)܄X14j-<ϰԱE9TJR5R;:, V4HWP[9Y^Ea- CStp^)~TeeRFYúeF{9GBʄAjn E [ѩ+k j$Jݔp i0愴ϪNg[]<tUZJu%XxQuxD[ⵠ[w1@̺Z=`Z 4r,ʼA!=\ Rl諑l-!Xyaҷ~l hUрߴ(Ó/Y; DnFr,Z 5xE]gpy 3 /Cm2eGHZ%̆vy,\%4T\aUj"AD) )fth[՟jtXB@ ddddddddddddddddd@[?aVUa?\=i_8B@d?3~gLΙ3:gt韙?3~gLΙ3:gt韙?3~gLΙ3:gt韙?3~gLΙ3:gt韙?3~gLΙ3:gt韙?3~gLΙ3$c 苲gbUN:N:N:N:N:N:N:N:N:N:N:B`+z@H"2Xl!ƟÊJ9Ǭ }ϓ_C6|i bz0аm+`5ズ2pv S u&l#L}O_-Ũ~983KX<ɼ-ږ#*d: ]HwZ^5nf{Cy&ǣc9g+)!, ;Tz SVoiKnսf XcMZ"1R=(-ĦE9͟$jsx`; rXcboxp em6"࿚4MPR˲t5 kU7eQ֑<"/%X +.9ܖ٩Z捯JE¿l8 -BMS,#-PHDHUT5Ql b8jr?AϿ6|jU{[R 9}cyĺYD??w7?e6lD4C+U_? Blg)318fG#4=]5!i[mYJONY[&AaRh)2RbƣN@h6HIzUE<06ix6Lt\Y:+ v;GReX-j =FQ4tXjkK&nְ!Z +\n,hҲROe*ʲI-jw~GIes^T/6nx9Kvy9`cƃ #|m+p 4lC>;M{5 h6AJR"mRÆ1E]_ ?~'TNS:uOꟉ?~'TNS:uOꟉ?~'TNS:uOꟉ?~'TNS:uOꟉ?~'TNS:uOꟉ?~'TNS:uOꟉ?~'TNS:uOꟉ?~'TNS:uOꟉ?~'TN/`=a G&~j68|(Y@/LTeF@G;Xnti!ˎ%b}&}1.RʖuX2(ert$i _;2mNwG vL1\CSx"sB+G4o5@5ZE5SYPщ'k4r`2&,(`&׮zt'#X?oooooooooooooooooooooooSM=bWN>EI- zmgA4#=B?e:ں{2۰x1S:~L>^!{Z%ahDw|PvhaMO 8t[_"eW.pzļ׮D\VS!iCpa9D*=,'-éul/ zkU8ξQg:7 ϼ5Zek:Bp"Zjm*rΡ5@>͉9%iRĔ\ ¢Jwbg&bg&bg@^}``;8;KwLUO{ i0"V ^c*ˌ4`X09ЌG}+IRL"@Jҥi*w<3?3?3>3rnM>wN8 kp &N"p tf kDԉ|+X >JmGƄZT:+WyLL:ɹ7&ܛrnMɹ7&ܛrnMɹ7&ܛrnMɹ7&ܛrnMɹ7&ܛrnM[bg&bgV5ePo}BR(8}a!o^xt%Z lwj[r6OySI"+Nͤy@5j=;B"A)rfXyU2-ѭ 4r͘ϼ! ح*'ILoݰ`^?-eP8KjJ 9c>&zeWLL$ x^}A(E~|>k 5eTU:F@ox&# P7lK -I LLϻzK<+>j\AM!aI.#x.}hp fXƥ+5a%6}@ h8XR(rpS.zTs?3?3TEL Y| fl2#|W/3p) V8Q& #/[%jUy|!e:KҢ\ Z(yu¹ؙؙqgIZDQ(J%DQ(J%DQ(J%DQ(J%DQ(J%Dt؛blM6&؛blM6&؛blM6&؛blM6&؛blM6&؛blM6&bgRowlL̓?btg׽r>#w8ֺu%L9.s?@{c}{Kz>m,5!8ݕ?)FS[^Pa-D?y`78) \|wP\A.^B}x$,%%βCq,ϑ;_W4[f^O;88s)ΰC~ hbdbQ>Ji0dcǦ~Ow(a5~$\gc?L;ė}"3cҾYc%BU< K"fwT=hǎH/A&haLAVK%K:T^"PJDf'jH FHBS:ӬZIE}UUUUUUUUUUU%zQEPޜ(pnIYJJ{[O/}ұ}"g3!F⧼_pjLRDж_U0J4s:U I%oM=4!* |_A**%>COѤ@n I mzu?Qտ oEQEQEQEQEQEQEQEQEQEQE [ #[qtEd tCD膧طAȶ]6=M"ᱻoۦ zfO(/׿ tڷhT0|_wpxkᱱExp!< 84w4(*77~k߷G6ꆃ]W{z_mQnl{J.6F ;liǁcΨJ7Lc}Q11~ᾍ77~3p_i߷ssN]|GҢ/gN^`߷ۦƨNfE!Bk(YBGezp{v4?OMMw5M#ر g~-t5tjw.seq߷Iyy&`#D߷ 9Q#nLE)F'\oz8Iy'yTl&bY 8plH"eإO#o%N!p O~yw(DSw 3b6XBЊL_q߷E/~_E/~_E/~_E/~_E/~_Ek}w###2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2d۴9c9c9c9c9c9c9c9c9c9c9c9csu \yC9Ce_v7)oul=J/?n(') |R\trUi7,l64lD?<5-1#\ "ɂ))r`A,7>:z!o32]1#K63"M]\/5G/QƗ"(m~mltE]wh3~:G dr&l~ o4m1t\ߌbiH5TGV'?WENF&)}jw 3%WLoc> ȼɭD6I$I$I$I$~ѓ4G}R f Ϣ r܆q_xmWAd;1E3xSS?]*娄Cbr,nMG oI-Iem??ɀœ9o>{!-g[4$Z pT܏z KKYZkY]ּy7k5wFV'}GؖĂ%]^+Q(UK8M4iM/7.4%Q5=_+JU-ZCI΄G_}~ IqcA}%'F7:ͪ$j(((((((((((((((((C-!1AQaq @P0`p?ڧa`UP0qV:#y0J = IX)qwdѧj2 ??f  )MqS+2ox{IH6^okU*uȊ7x{cOٞb P<#>o"a`w6x4D} "Ţ]+MhNajz8iLIr2"1 EUs7MuЍ"Hs¾ :@n@T㡛WMzS^r"f Zi)tBG`T0N'c{RGrbI]ƹsZb­DH[ EWE,!(o : Xh} BB+(s|K-Zk2> >Q Ց(p]Ud?ddd(4q1mBt%n,x4**~8Qwl-,yXf}eLO5BG 0K \(>Y|V4H Ub]" x#1 )'ŷ*F)( Tr bەTv^x >{U vde#Vkkm;3vս n1ww9n׬mUzNE=;U4Pz*6*hݦ4IAADt2n BI41yeWrd< h#|phx :d1jw s.<[aDQljp@4A|! C%|;PGaqT7UU^WrgPzGz|4?\~@rn@_ኡ6XBhfgfRX`v thll h[?Gxp:srOӚCh 9 -JX;<MhZ& @xp1Yg}YD=Ni/˥T8!2<_k{/u{ =OsϷ^C'{˕9і:a+Jcb= uqM}B`vx0wW^20/SXWW``<x3~P5j70C apOox ~+&]\Wn/Mvt` ʋC;l#Ӳ+t PKF"'FSo:! /a0 hĦ@&o:ÿBqNDawg {zo۴9l_T5 4LĄ:POnBrp*?`l}s(~%#~p*xy;68R &9*[Mk3]₅uwtè]ÿd5po<+t>8r}$7X41?]$z[J 9Z]3aA@LaD:y>Qpހ{'qHqAܹR,;t x<=Eжrt ZX |ܑEKGS$Ү6A #5l!.pUe]٩QC#w$4S~rjD( 'Y1L(!Uw`^ ༅iJӰQ{a iivⳡw F9ّ98|,Ƭ+h#5f>Qju~X8!cx7~l$k42D? \BN@:M:&9  `mk5ްL(%!dp&=7q[pdvњ `y9! 9s xwL!3~P79NgU&CXrxGo3^87`X΀o㜑to h0710`~,yw0^GY?b|a/1cDǕ0KZeWnqv\x;8HF0*y@ iJ> bBWY1111111111111108}3JS ױ) oh_hl}s(~%#~p*xy;68R &8YyQDNG.Aƭ2 /y3o2`x9tLמ~u;+f9jҚ`y7P:qI,rܙ^xr6o튧;4.o+PP.a ´BZ.dDOiap<_OAHI 7@ %Tڠ &nd$ ;Uy1;ݗZm +l+&+ ͚<$HaތW4 d r * |ƣZ&:Z;]E p_v 13G1qEdF55 D uv C(lȾ ."vĂ&D0f#mpi4 &"ʀHc=niR\A~JO>Kѕ`+ӿF +dw fx6Pya8I{'@!% TuR:3r@51os>nKRLH7 &LlqhˆB%'%lyv}rڑW{pc+euɥb ՐDB,@q N}.O>KL|>/_g @ @ @ @ @N'%ly}FO>KL|>/_gf*kHrK4.bqT1b_btL^q-SGl@jd21#o,śzY.'}f.F&fP58)Ċ]c[jyYd*#X O鏒p/_gA¦M_*}1^dc/z8_Q鏒p<'%ly|MLN%CD Oz8_HBv%őPr սBLZ v1f^c)$ٽ40(B $lFiPX(*N_b NÐpsMسKL|>/_g2}1^ϪdL| ;5./LSWvQql>Z''aoEfd6.Pf)*8C j̑aY\+5x쓰AtC-U1I*q%'7,D/_g2}1^dc/z8]`dT 0`ηPިҤc.ù lM Aa KXrQO-Ҧ][yf,ދ̺KSB+06t)> .P(+ ?FMpӋ^FyzމY#6_$c.P30vK9ͳ,ʳvcnO qP4;E.@vp={Bd;L9K1& jʉx]Y+DO@\ *H:! R<6/yk=7 iP'vi =zt+ ln}HrXR{aYa e0YZam:,&R}1^dc/dVĝ];CB.̡yC*omxp<'I4΅ᣀ00:GpE*gSIƔHhUͽH5d b `C|rTn@L!A:*S"FYZ\JuXp<}zsޜ=zsޜ=zsޜ=zsޜ=zsޜ=zsޜ=zsޜ=zsޜ=zsޜ=zsޜ=zpʮ > >H:PuAE#feG~fbv)ߎLVxqD-x q2Cw!d;q2Cw!d;q2Cw!d;q2Cw!d;q2Cw!d;q2$c@:;\%d:{p0,\ @ڀC7+E4b&]GH g0Iq{b Ԟʲp`jK]rby}FO>KL|}V-ZFx0IZ%oPR.xHy;.OO>K'DY޳pKӼ8VமPg y2YH5KC q4sNI($jc&iVLP܎cСo|GTXvwf u**F`Mw:8< >QqE4` -vʋ-1KpMrR6UW8]ۀ`CikP k[,wXl6K. "| tC諒'`I yLcK VQd r؟H(΍y#)!|aWXpɑ-#ʨ:f.n\mĝpC}12DsD pVA{*zPU*U5*ۿl7˵Dd$psPaCY|\m1w /[ h.64YB2t%$wNUEUV0WAl7"WPW0:,Da5 ūNsZ1:.Wb5 |Bu'd( . Lhŧ'skbI3dh Ӂ yKnGD\z S 㵛];o /"m :G6B7Ad> ^~hFJ}1Az.Q1@2}1^dc/z8_Q鏒p<`Y Bp_JJAJ-EP*}.O?1BmprFOk:^^\H x,_`WR8|HbxRM܇$ϕ\ p2rk#ZH&8_bwe45PJAV6d@I>*%έa-c[L FNJ#]<t(A(*7Q02n$RJZC6g8KQP{SV[2=Rq<]+`|B2P:q)Sa7**4- ۧhMÙmq[x8ZC`%a%%8{~X!W7NUEUV-G$ 8;vEnZ\+@  `o@2dc.mnN"DA՟cދqF!@(!4i"T;bBpu *qm|;?aLdc.ҾxN԰X & P8<GcQNJ۠ԩr+.cu@3ʈ,ku bn *m&UsZ"Z_Fa3P^np a xƇYc_IBAZ: P+OO&Ut>ebaƳ*k^P2r8ï~b+ĤU+0TMCf,ko$ zGu Bc`B=gdV /sc[87IjKCĤ.>¼['`)#0ѣT-%xD'[gH5յ*( F , EZ_lo0| С,p*av dj%>SH. 分 `K%.m.n :#"oPk']Hȩ':hАpÐF*yk&ԦYcA|傯 [n'ޭT۷x9Ʊ^@9e;H;ɨ4h6LBYXUhJ)E{WIDNW{XABԮ=XbFh$C~=0 FC(7)1`p$R=% y9#Sm]!fJDx!DVdBjlFnjG^4t5r}1`mJpH\N_g[qbl h2h `+J`U}&O?F8uR/eh@(YRs }FO?u.r'-=A^y  TT,^0 ScGP XlKV8Qfk EbJB J@hIr~~ڿ9?i<ߟs~9?}ᅵs~9?}ᅵs~9?}ᅵs~9?}ᅵs~9)~W?F/zg?TcI'1srOSi^Kt V byC+&݆LDjcF%kܓ]M!p\tQOoeU\Wf.s Ucq*81ycc-Xd=14k0X=Aa2Agd/0ca\LCT"` exۊſ /+#.Ǭ㏗8qs^-&Y=1_.S4YQlGP0@Zo&#zJ:|c:QgVtb.3tk~B FXys#B-#wsc ›;G@/S,Zawv@trYZ67.ـJ<^ sPEB\ی=Dh7(#Evf2Z4gKA6(RQa({ A6 \d\-&+ 1R(":.ulox& tS%|ؖ$Y/ⓝҁdxNau"a#pxWTP$3jSֹ.4 fgSa '6[DNu`&<+ bUGp ݉fPSIHzG7!7ḁ)>/_g˴ @xD*LvvN^87łׇ#v))xL*ײedr%9KBʘ@Wr% `Ժʨ*@+DC?tHC5 ` #, gWq`$[`R浜^B5;hA-H*ZĊM{,ڬ$dM DıSʓ}(P`6dc=ҿo8jl gԠuY3G_\Y:bq _큒+\l'-Ұ7o1B`*v˔GԢSpOn1+%]=|Ԉ  w%CP>\@H5DjȠbφO?I rx>\Sq^QG4ؑ,3&q&d@LڶF} ۰fPQkNs-*5ADNv.͐wq瑱 Sk/ `GǩH/z1f! F܇BJ]ݪt}% 9dN%x9hwM~aDIE.dR 75! U/)QA.kgl{[=kgl{[=kgl{[=kgl{[=kgl{[=kgUZUKIz e;̧yg{)g{)g{)g{)g{)g{)g{)g{)g{)g{)gwNŸ>/_a#9N{S9N{S9N{S9N{S9N{S9N{S9N{S9N{S9N{S9N{S9N{S9N{Szc/z8_AAvxS?D蟜~sO~?8?!鏒p<\ xڠ uj<GØӸo^( EPo"79*$b`V2}1^hZf^`7d!E^KBj85v% e'@^ '(n]_lX7ٯt8 ɓKR$|¼JRrT*1Hr'$c.yérw`/S1@<.=U}*tmP h.l01,4``jL&y,hkAhY/π-\R`IJvl0] T29 g9]"9QAT*(nhSЂk hLhT=V@pl!裰M%z`!qv%ђq ;x7zoU4D蝈Nnch# ߈!.YFkК1<]pJHX<0Yya/8SYF=dh?.Ǥ$c<x,Yg <x,Yg <qW?p?p;~3O~?'?Db8 `:qY !' @ @ hQD;4G{'K(e/oq,L\$Zg\RA]DUM3p"]&\1$^ !_ \:emK=p 2 #rPzӿG[ DbFE,/y0X=U,ήSҼgR|S Q%+q ށ@ )KM8d2"~6\2Cu2:>L66 |:bGm:MkI{ 0 b|I%MbQ.0BL\Qqo jaG V%OhA28!(,k hnV<}&(ܨu1%YGz([$M>AJ%8eIJ v]m;1-c݈]'?׀4wKBW2\Io@gP'Aw4-ҿ7xLOLtOXQ}s&Ͱq+f9H8vAN#f:aݵZkڥ 77QkTSK _Am :aNU fe u@D^VJc\$l OD6ni 85I޺7rnƢ#!(&RU8% UGlM1AZ[3&9\;]"+[U Cat޻g (ٕxŕ&Вb)׫Dw3DfEZMc畧#ߙ2#U\.8? J&U3#@ n3Ɗ)xcؤ ZhlB\Ў2XX?1U[6q_`-h>3pu?_ntfy-2.11.0/docs/static/img/pwa-install-chrome-android-popup.jpg000066400000000000000000002116361462047176100245560ustar00rootroot00000000000000JFIF,, ExifII*bj(1 r2i$,,GIMP 2.10.302023:06:24 22:03:18879 %2023:06:24 21:59:33-04:001da08980-3fc2-46bb-831a-4806dc8462d6 se JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222s" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Ţ+CKɣH2B%۳/;w4=.W#8jXP @:SfLp 5F\EXhh"̯EXhh 2>(iR5 k)RC ڒtk($v_5irm2F{f]nguQ̼4 N|< #Qo3E*us]NJ9,'I,>c'4z ($mḸEH/ NVF$ؓjnooopUY0`FHzW3 /$>4r˖ܧhMŵ.T=OҪZAe$%.LrnP+ŖP@锧_o#]lӾk 1sgyHO54d?=x?(NbGTPCnC~\%|RY:@s,Mc;8Xoř$IgM?f\iWW[>xmJ)6rr+ܳvN2-Y 7Llۏ3޲?Gէ4h#ϱEgmZO./g>/mo#< O&̓zRKHz~U'aZp`qObW(JG(? ~ي!NOX?7Goʂl%V{T^[q*_-*.u_1y})<ʜ<{P?˟Z|ރ?^Qz6=!:2!c/=F*?IlZG)[tTS&ؾN(ؿ(N(ؿ(N(ؿ(N}(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@x%ԍ' Hރ^ 0X㹕h{q?q?(^ Q \j^HeeBhYi >Y*F¸̳e*pC RW_ +3 <';dž?Ơdž?ƣdž?Ơdž?Ƭ|/ΖFJ[fܲ۞< E :cn 3dʹ( :č&>T+~S]R 0R1$qZPUΤJƢ>|2h ( ( ( liVC@1Pvh#پȠ?潪_o [3I~|x?(z-B^OhdxkW[GnRFy5u&]?/S4[)UәC RC/n_SOo@誟ښx_G?ƀ-C'OAQjiki1]"?F0yUKX9]}|w?ƀ-ioI6c#Jo?ƚu 17vȿ@}oq))72M'jݢi֘@ MhϖL00(7T$qA?)qj9u:uPEPMv(Ojug_'p?t>*z(<>S~TyLr;jj(4`rjJ(((((u2E.V*}E4DH2O%''=ҬL> ,T0}h[zv(;}OJA < wbyg=1NHH&BƓ~xs4Ą\!L.y}h8l([' }jU(恑:&@9( H5QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEG!~5G!~5[S_ k|S[LgF2kIJAaӥbZZE`hNi5|4k^=P 2zE@O ?B5@k_B5@k_ⷨ o='K_ k|VF^:{S  (  whttp://ns.adobe.com/xap/1.0/ ICC_PROFILElcms0mntrRGB XYZ acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBC     C    _z>9|{i;^ku;y>@?C3y:v^zޣ1k׈;v^oz>^Pر5?C.t㔾lf};?Klv97?^ҳ<Kxk}ټkrngk_n9tW5|\m&\p_ky;Β&^ {.Tt~}U^vsͪ\[h篛Ixq:i/̷wxWG70:}%6t|KoO`cϾ'~o~Tޖ-luX\dd7ON2ͨNLV^cVS`ƺӸr3OO䯓גzz^?>}ּ}^Ͼq#vT߹qɻwNtsɻ7SN{q;qwŇqkǕאYg׈=|V^>9sZyXO ڻd5gկl^zxxa:1.9ui*RI]^|/秜`y|טqvyzrZZk q;fLYs^ ~I IYPHA$$HH@Y$H I%HA+*B$ $IHVB&@%$(ҺIRJʐI I $I,+!Slzl`J $djoIt$2A},@$$$l]2$ $g7WbdKOXA.;I:eճϯ&Ē$ %cvҲxxW>k]sgιnՆr[bR ɩa:^RiK{4fI_u;)N[^ %%]}n5Mu&^L)c;ٸ5m6NV+Xpo$H+54f@: K7u@J p/Y,\7iKh63..\b5BSeki̤txһI HMi/A J YH$I@gWZY $I H@$ $50A;I   KjΒH@$$ I@%d I j`$ $RB,$&$ƞ H Ra@H$(P%%$Nb%,IP I: FdAg P5gt{ v@#r`d,0-Ys h@F{1O,mj2|s }ӭ9X9tI oր< 3Cpf_BGcpkLVv(n@A5q^9cū~7S@G5QDt}IӛpOι~޴8|e}'j7ʙBhk˃fytOι~޴8|z5Z}wn@巜 1|qN?|qru3zkή45LznK;iz@'\{uoZϋDDy_flK]|Ƭ/R-㶔p~u[Y7 XJzs3Jfї-J QbeY-sDgAl-͈.LS0,Jxj@A J $Ae@iTR5k͑H TPVP *($ )-TRH AQIY1 lHg%95<4nNP^0xN0X-FnacrI0LY`7 CPge5atoϳ0xa}-$Y7aLk[y^h76n.KcnŤRVA|ZܖYv3bWVP((L3'|@%aIQ `֙&qPVm 93ţL5I`Rk9w`s)Q;E G>P@; 6P0145@7!"$&38`p2%Ai|Onl2uk!0dMiݙa3O2 t4jdAP1JVGthfakyi?[2S̆v-8vrJ2&YP TcvV.Tlrc[7*C oƵܑ$v^/oNZΦfQdTʠvcmtY&%ȰSm>]gax7"53ϔeDfǠџjVm~pyFft|\?C-ok"a='KFm-}=ڹcqKTͳY ED}[3Kt zڋ V Mٍ!Miݏ1${URNsIū-*m.3R䦆Φl6aګ*Tn8]Ň]7} }O{>T 7-wHb,?wpЕq)5OjE~̩ݩjm÷Z⸘SΩ3!|m'F+G;~lhjM9 f:9PWe>[.Z^ɵoyq܍%(\鎓33f[JfD ! uXcVU:1a uXcVU:1a uXcVU:0xyȾp].C Ct:Ct:Ct:C]t:Ct:#\r:w#܎r:w#\p:W\p:W\p:7p:7p:Ÿ[p:ێn:[n:| p1 p1 p>Z/z#X`:X`:'`:玧@I #a l$ 6@c ld d>6Od>6Od>6ofپ6of<6 hڼ6 jں6jں6΍l:6 nۺ6.(OSclClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClCl@&ppppppppppppppppp?Ѳj+ Q!׬^zu!׬^z1BIj[_15?.wc}}}}}}}}["cO(|ÿAH$IZ}Y7=)RՌg"g #˾<˾<˾<˾<˾<˾<˾<˾<˾<˾<˾<+iɛ]vًO9 ˾<˾<˾&h&'f>| yw| yw| yw| yw| yw| yw| yw| yw| yw| yw| 9 4vqrS dXiޓ|ݝUu=Ryb:7IKaE^M߈Rœ6oCТ^;ߡz-rzkCs='Ym:rs-W:2@=oA΢gMg1eKŮ5IdYcw^?;y%:IyfU@v&]_+L皩@@,?~z5PhyK*1|3L 5INfM:-%߫l0qrd#]v[`ثkj_{ދLRV>QQegfr-2Ʊ ^]f#hj)cإ6.Dp/j5S| ¦TxAѼR0ʯԿ`6B\Hlz_{?~|@=.nqk*+OFmK~{E)=7Fݘjl\G&eWvƲ뽭㖯 r՜nS3Q*tZ-L#U-&j-AֺPu/=Ek+jjBA)HQ='SZ?v֌zEQKQDhkst67?'u/=Ex>OҠzK!! a.X<̒˴$\T3w9c嶘v?s]RUdU4g '%ӬO/t.~RߠX٧,~o1r:N$-ji=JB~z,?maǙHCbWɌ_921nl>mt$ч>ja%ʼ$*9u!9&gg3rܮhfhw;ˤ3od zɗs7/=C%+tOXSkc#l2xeВܵ$5AnUƥx8ح՞Cykd32C$2-fn \[)o"OIyZ-j]BjhjS= t9D! #u/=Կ`RߠK~{/=S;oz]íomKU*u/=ާQW!5rnEd/+++űjcGcw uYQYM핦?!-Pmn=_{*RcjdأeoOV[&!žn14#tPj[̕8ܹ2qu9WcZ΂zufRa~-r{"a椳ݢ2FhNzݝg§Rs,tzsYC_7ySpu3Tg/\q@$1cWan;NOڗ&7j,J`omMVjLQMv¤;?lpݩ~c?-\Q˖[R[=\֘JZڋS%nQ"ib{v{N!\>ӸXv+c?ڗf";Ucūړ=1 rv=k#6.YvYv*oi^V{I5/"Mwi^$Ը#j,Y?c?c?ci 2MhZ./n2 _HBO"KKu0v)b&lW*l,ezU'K"jEtBrPjd"+$"c63")Sr{-h7'Si u8GC.@RSQ>3bֹV)U`*l'T@Ud?9* -GoH4+#RRDI20k%IˌASb%Y(sUWoc 66"Mܙko壱؏/ a!*|esYò\M'`[؎WX8V 6e~#\XLIE~{draXlG휷eVo ]om ʵ}<.K!;Gdwh ̮uܛHz*xTQRRRJR4]\A6.T򤏑D>p"$"91 dF\ )HRB̉DIJI)JHI BV?/)).tsHkH1!.l%uУRG-}6(%Ԓ4 Z:k,)i@5-&|̬\Cb[I8SM?#uAx$a=gFU7#>4)M=nE&[JQITHՙ VS~qfv&jk*XƝZ"V>SŴ ]zǣBi:eMdmKfWVɯz5ir[r+ Y0ezkcKT 5~ʹLrKCn5(JJKpK] %wѸ`zԢBYy -Q%&Kqa>D> ]ss-6#ȕo5rlE}^]i—_PvJ^ISOD[i[2'U%enY:}VtJ.U9yb4]C-u%FcaX9g-L]2 am{%a9諷 7:Ww$8󳞢B-Ank2~|K"۴ƿҟO#b%1#1}NI?a XҘ1/oMȑ ݴSʵMqEu˭W[=J]ŏ%"ʡVk,]om ʶHLӲh"t:i IJI"JR?1ʞ^T"$i%$SǕb#%%_puNi_R|d&LYI}'GQ͊QJ$V9i:T:nUĂշ> XHj tH0n\fd37Uğ)Bd.\X1L(NA)FKLtD- .fY0b椒8⊯ QP~O9YG|) jv<<FQ>k74Z?M<T>t`9@y3#v#WX7p.s⨇"RϨ֭ 6iޝU3'̙]S@vQW=IʚvqHȌcqP9_۽6qZrMQ,PG͓}:@vʆ[s,Q蟉Ӟޣ'$kK&8, X5`jՁV X5`jՁV X5`jՁQ:H7P=cay00m_ER`42A!cM{.`su4/]\s7#U g*:Zq-W ?즿&80Wњ9b6SAt7yR1Gvyd̾4vǎ*X ;X5)5aiQ#A$)c2}s$!^i&|lٴ#E%:LQ{SLiޡ͈{FZqyO5, kAUQ:r .rTrvʑk.(.&0096ܝZ}I'/ldC™",mnn%[?Uh u۟ v)@9v."{5Ž)bs\?|owi~eDQkyDDL14d,GO$rL/U~E>'RǗVB8&v{?ce4=_>&ꕓ5sRFqn_rSP4OI^>-6*S iS[#GDnICz Z0p*aST^ѽvcb:oChPT6ZR*vv۹tn_RVs:@C#]KUQ1jvoUwl~"tAjc<'zXu$ta:*w8L5- QvP숎(ڪW67xAwH-tI&tFٹ,,,,,,,,,,,,,,,,,,,,,,,#3S'wzZ~ZZ~ZZ~ZZ~ZZ~ZZ~ZZ~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~Zj~V*XbUV*XcXyyyyyyyyyyyyyyy2 7_=`??AB;f^e"~ȟpT7#b ,1' zKNʀ;B p<q4'f&8z`6hd}ǚ,\F4"T5-; +hR֑C#>GeQ;6a,t:^K'$%_ )nT{T$RUC>˗+Q7l 8l2aR6ET{cϾ&+ف_dC]k#dUXօIJ %.t ;jΧY+:<%cATloL6|Jsv[%e;}5ZMx(ŸVca~<\P{}snĬndGH>Gz'O+A ~=GTDŽ}#qyyyyyyyyyyyyyyyֈN"~ J$I*J$I*J$I*J$I*J$I2ʴr$I*L-$I2LrG*ʴr$I2L-$I2ʴrG*L-$I2L-I2L-G2̴s-G2̴s-G2̴s-G7!VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVc[A |>k9Aϲ'&G=Cf`جEb+_xgN][Eы;ioU}!1~#?r8*ɹOڝ٬ˀ\z}}?VP[4Zwh{|7J(zSWr 38/~_{x^m!C%k/}Cc/h~eeݏ죍7 Ewǻ}>Ar,n6q{z@CLJ{i+ Sp,4::>sbmt~{SC\ݷGُu<4]bB;8b/T0< e߉e8Ljoemcp,R8W "v#&\n݆tbgwCs;Y 0Sxy1cD\Lb\+~D̙N$aB!B!B! :DDDDB{~cCey3ˇȬ=ux&1Aw.gC}xO22>&31y~ 姞N)JR)JS -EEEEEEEEEEEEEEEEEEEEEEEEEEEEEFTTTTj***5"t!B!B!B!B!B!B!B'{^^^^^^^^^^\\g3֗s}\=Qp2Ƣ灋Է>Y\=B,m>Y\=+V&B=C^{fY5duw^gb\-ݽy+z""""p71F%rljaW`\+gT^ogo,z&|2:ecY[LxYc<,Zz<>^kMg} 39oӏ/֛\_vy^3yႛ ?|W^=Re,f-#-ut_:'gؼ^9<{LkG,g_/՞YNDOl6-?'FKA|f kta|Dc::msG!JR)JR)JR)JR)JR)JR)JR)KH \Kwc#ypu;nc;=ב6:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY`  !1Q"245Aaq #B3@PRt$0`brs6Cv%puDSTdce?ZҖm֥-˜Y "nT̬{G0Q5' k?ӭy(@9ybw Oh Ƒy"RخQiLM=щe7sEg,^  Z|Vȭm ]ѥqujV[S<LZ[vUTޙ+HDȻʮfzbQ=T);[+zRbEvE@ܛQ eJ4HaV:6HʭT2Z#LKfؗoKīPO,LتDC_ 3(yi:/-'W2D3iNh!nt힢i bܷ 'L'yh- I<IJ.%c[56d.[AV7_JUQP+i͜[/;vVrR#H"^q2y+A3bmDin֘EfK[owq>7 外ݻzoe~,F-!攥]qce*o|ӁiGU3}-%h&TKL#''NY]pM1-iV`x$JE);e)掅+T{~@l&u 7TH#,6LgC^eP+iL u}#(CD(BR!6%>alLRZe@y6Tl>L"ӑ~횥t&ٴ(Z4xh \ kMKH $|F;YLRy W᫃>^zѫi܏4MͳhQҴiaEEBU B@pݣ Z5BZys8óRwd:k x놫QSZO*ʺ#ptLptLptLptLptLptLptLptLptLptLptLpt*.-4?3ǔƍA(P|ݙfK^t)m S,9fZr姚4ROxʼ{6+ 0V.sB࡬~:h"?~ RMTT!M$i' nzZI#;}MT-'~TmKFuRpѬ"BVhs-gmJJ/#p`6$̽2媙ϸ%kⴓf.JL7.iR$;%f!\Im:42aI\@Ljz񮸼:Ɋʜ7SLT& B鹯4LIvU T Ͼ]ؾά3?*q \|́?dl*iS ֘_*ϲlZ4X!RgK.yOè=#W. ~ȩj>yxF||Ѿ>h4o7F||Ѿ>h4o7F||Ѿ>h4o7!GZTqd%G8}QNuG9dTqQNuG9dTqQNuG9dTqQNuG9dTqQNuG9dTqQNuG9dTqQNuG9dTqQNuG9dTqQNuG9fTqQNuG9dTqQNuGfWdq]nvGfWdq]nvGfWdq]nvGfWdq]nvGfWdq]nvGQeFQeFQeA]W8R*8R*8R*8R*8R*8J*8J8Jjy2-֡'|vtuR?z^Vծr]cK4yArƅ0Y:!{9 !K@cnүsQm%L0L6ρMAI96Ki43jEt d $K6!R7p rɹ[V NݸWu UF] X7z}Ղ(8÷s-bPs$2 -.EE#B4LLtBXTēoiH8JAKu܃)9R]}J4n^VfMhs]PŚU|(iTQ;JҐ Ui@'X 1qRj!ĉB0UJ<2!-!BZpIw*0wUqd/!5 ×4N%5?ʼnyb30̶X¤>-!vޢyKFTZy%Iy9{Ğ}?K}q10n :ךx{i8\9B|4JQ*5]a;kQ h ʑ-pD\G ѹW<_a“|׹FR6ꀴA6sZFZ9UqYXrZⵥ"/5E&FTCVQ}PBJ* wk0Rnй{>@OΊuwjo!G\p=(ǥX8KG c҈,zQ%J#Dp=(ǥYY8K>GggqPb2xy!ވވވ7oc(2(7(2(2eFQeFQeFQeFQeFQeFQeFQeFQeFQVeFQeFQeFQeFQeFQeFQeFQeFQeFQeFQeFQeFQeFQeFQeFQeFQeK>,T)#&>4}cGݏv>4}cGݏv<:R*QPqUP7}߹~ލz7}߹~ލzK%* bt?OMoE(w៘S ʼim |% UˡBP:aizd{/Lr8}G2=G>#^pK#܎izd{/Lr8}G2=G>#^pK#܎izd{/Lr8}G2=G>"е!-&дA@uBԨaUVaHG>#^pK#܎izd{/Lr-L##L͡jVapK#܎izd{/Lr8}G2=G>#^pK#܎izd{/Lr8}G2=G>#^pK#܎izd{/Lr8}G2=V , !MM7wvFַl'zUr=V].]}]m !60o>.ϵd+W.sdw:Qmry|)qPR0"K[egyH_@i)H?Gz+q_˸ZͨV%QPnN&SSJV/"'u; +^T ֙vJM8YN}?9ZŗH?y'?`śv!퍱6d짅 9",W2c)CPT@vaLϢSlLOR(&,TbfnZja],R)1YMqM.Jh\TV%,͈lKoLzanK#eS6="ܵb^ѲQB9%aXѲTTJKo0Z;\mGd%fP\wė˖<ȣ VyrQǶ g&@Oͩ3O#A:Oγj:aTSNA[؍$ݵRW3#!+)vuf$UnEʓ]%bsvYb-e68cޙ_ ]eFT_rEވJ~O6gjKZ;%>7s0<ԪIb13D&/nL)@\JQ`Hӆfޖ"ϴRh4 uOwc7a8fZDˢbߞ^\fYKvaٴM<`N"MڈS֑0VuJ%1L%kgM!2b˝\Aci6x&>HkARKRNzW@[K>!eJ ̢8r0ima.\Mʗ3/uš85jOb^yj~F`F^PMO:&KSnZl>љI4f"]Mڙ|} m98TTsBvfYVLi 4u)Y МT C$gG\!sSvLyKBS5Оسv=b0Q+/mhе^yzaz)NVU^zΓu='-kőD4mt"RfnѳܚiSi'7*HclrL 5 bTu~kN~! ZM>/6+'yu|( JEϱ9~ZR_y'? [K>k}I}؜?P-o/\AYf lvlK 45'wlyre8Hk}I}؜; פ8c~G oTwdv0jmAXJTr-l.b~}*6{Cz$U9ca~m&fE΃ˌln;qoe֟Qvetrt"ó9 m/B]IELE@y8,V?ʙD+TG ˫yw+P|-fIdMĚwnx5ݑ':YbuSMoC;gSgLMl3-,7LKlcf ^\m<[\3ZR_y'?aI4!P!m}hAqIF&q`3jGO?wc왿6?3 ˶pRgd!^ʈ;;Nʲ&Z 쑷OMvۂ<| If#ʸ:.卉3!h YKeҙ K.G}$z1 qvfSd̡*QFllg\3 a#}u5z>fN~U쏅 %00_s`nuXrr`;p*uݕ[I]@gY͠ʔ꜓PYTELJZe:y94ATrEQsH:B(r'\W~`(J6ʖM[] M䝴K̻p~ލZO~s*JoW󶝢mQyŘ~|6|D zšy^mAY눕2tj<>*ѶIQJQ*bmUCU.ţXNL͋tRع*Gl*c3h9w4Q_l!KypCe!XKm*Qs8p3dݡ о3Vk%h.T叄W2PiϜ!k&q/NpGl,MX̭J/{q_ؽ7/g߼B6;h\Z\(`JISjQu=8ÒV$+lFc=icVBnW, S)qvz+ Z C*#ڲv󻚩]O$ l@5qhbBnWJ {c($m>Rn׌ I+yT]ON0e'lpVErZ) F0fH"J0ϣcN+hӟ8D+-+}zp*f+eLwFqC{ҴXտErjOO:ߠ(/OJꔽ0UT27+ǖ&Supd :ģ\R( !dJiܱreY "5VsfE.̳}jB'-Q ?]qK)."iǗ>PYnm*YSm%PDGL)_, LLU59K̻$fBN\]9a\k~UizCl ʉ3KïD\Ky^Tt,-5^6堀aAVC ,FB pïjubWNZAb *ӒK)BW2qD\{BB7θhlgET67֔W(Sh:& kluN)H%w>L~O_|5*RlٙU4XE0.jF &N**!VN5uB<&SuWF \%HCZ4TpY&_>=ZR:-Nr2hS*΄Cv5AZlA-\q4"MK m"V&aM$XBZLEsöJ.T*YKRo "/hH[IP$!RhHJnSPܝ Ja6yrJHHnuXԌNԨ5J_rajr(~ s,S*TNJ6я5L"rJsFSt C:.nSt¤Q5ijRs|Rȯg-2N-4"zʹi$iq5QAſJԔ)1#j%,ڪ:a 7u- Fm.)[n;j0XܷO)&d5æδCm%MT¦4+F8!.]L%̳q/iWq<թh!LRM]ڪrFk?)LS۔C`4a %#J)ԎB芨Ӧ*^N}0a+%ʺ<,6] 6~ATȩ@ Զ;!ڔt2Rze;b'%>q- )q1#ssn)I˟'߲-fRwd\MSV%svUJ;xӕ' xib_ ^H?L!o~ȉRlQGw'aE-NRëqcL֮Pv,SꍳhlJ]C (rC: 5T^N%cAY?K>Țj֚u#Ɩ)J+^nosW/]_ru(^E:"MzbM:#t(bqW B7*@tp rڡZxDb?zj㨘G&\ Yj_IR KɢShXqG,O\lhEͅ$baa *X+;ÐBw[P!ԌON *ۉo.#ȸDBj!a![a P_\.nE&Nxk^8iɑh6Xq)&!@q:JunYhrJ 9"Q2-Xq)DӳvCamKŠ6 %ÈM2'ta5tXJLDS[ɬ%N *#ͪ.jFv%U#QOh@xCQm 7P%be:7mHը˥ݾ0ڊp+tZk0,ykO8Pֵ?i4Z6Ҿ68ԴxCNiK7b!& x6D˗'tbVq+K:P2 ΰE)CPwlc@+%EKY&%gCU΢%Ô U4΢9e%/ƶ/$pvSzm KwUWၢ^n -6S<|z>*NQ72oGn 8 sx} !Mo(3+ &?!) *}fM8[f g yǟX]u|QBDtF4tST])(n@qPLQ"E 뢣(wqz- )R("RR5EБMQ@) B"MPH!^^)(S ]tq^Jz"0R+MxEБMQ@#r:&)X\uEҡXgDw("U:`1Q1BUcr{R1UEqETb@F&11B kTPLP(@%b4ׅ5”ߊ)X yj P(E ʁN* VVDa\O4َ1.m^ +aD\PtOF~P=1UCl^JCL固p$iIXp1XNd:V+EiA- 5V%ShQՄiMJ:.\W?8H4ZE卪 뚌!VL&>R^M@`aex %biEi1V%:Q^J*^i!),'J.]s 15&[4iXq-*i ]+rXEJI+EDy"qxKo) qx4 z*4 2vKu)݆۪k F0NυPJx32J)ɫ?UGʘizh&`- !:{H]I-6\[ijqƯ\<ۧq[V !O\ZMFrfIѸu-6ܤҊ* :Jܠ$gP[nz#j T9a1h Z*wOn.4)R;4^āKZ['݆-8T24n'%T7Z3rsb nNi Q hhx M!MBfd=@8] M"uê~`- > 7iw=aXo8 c=aXo8 c=aXo8 c=aXo8 c=aXo8 c=aXo8 c=aXo8 c=aXo8 c=aXo8 c=aXo8 c=aXo8 c=aXo8 c=aXo8 c=aXo8 c=aXo8 c=aXo8 c=aXo8 QeE"U&Ÿ1.!1AQaq 0@P`p?!1"m ;KSXQ0ˢ46G`@:q9*>2*׏Mab식yG?p̦41YL)Gf1e qް(7\OIpvV_.4q\)+\SIo:w%TP}%@a;JwJ*YUԆh30,uUxH:pD-8C5$ZdYzL xMpⰍxeoGm}n|6+՟0Q=4>^ f҂"mXkl ~’|AANDGҔ hLT~1ހՠm,OWzYYو,:mUXS?Sxn]gvn4ٶiv;N.wN=`[UV:WsD4h߲K~ [ZL4K+{oy\ӖO1vaGZ>gO >|$I'O >|$I'O >|$I$pk(55!gt, 0=v^{1yo۪Wx4MLUCPi#WMVo=~BB,5^F+u*3D| -7WUڵMj<ђ/sZ4`sg'5vx:QhSs^p9ׂ0pp,i͆oY^ҿ1 @'<0&cPZ: X܇w(Sr & z5ⷔ04ov3Z\X "%qVіfcYaL{u8R @X?˘ 7:boB?L :x}mfpe(,sdl[CR(J\f-[rtU凸7\L-n^LDт RWWAU"hę)jz_5Sb/Yh 팶+OP.R 1v09_T)1faTBDU7n [fWOFƫ?Tƻ@MyrZfGU׈˷sm8G$o-o\LTpłӭ ƒrCpuE =tMjfUֵadeڸuWH.r͖'&7G/tgΉ'*+ $_GI`Y"=7T&m4kr ޶4яq]t_Ľܹ\wvAƍ iip NE囝fL^Tp.nC&\ۘZjKe|; ^N: Dž'|^N)(1~UԗXj 5q-ԺA-s9s9s3rZA*'O' ?|g>3O'~? O|'>3O'~~ _/|>;O'~ |_>?O''' @ ڄIEQ%TQD]WyR^J򇞼:D9D<㨝D%SǍy^jג^J׊ gZXFUcR^(uZJT%ykR+y+^J=H_b^xԩ % la7nGw :fw"Aq%JS RZ6"M> r􂰪 q[%7M36"U1*^=˟J(;T!c.w`Q܋|iT[ T>WvtƥxTII$S¼Xz.שJ,Ҫ@TѳYf&v zkZ0#Pwu%`=Qbl̪aTX07&O} 8.~!/ϝP'TgF[Xej9\i;D7z|kĖ Clz-gh 5ZzHifN H%JWUe&ii~%fPiV5F"Km M{R%-.f M|V^#o Go=/(^*5R'S4%?2pz+ W%@5W򇒥yWy޹y+ơJגyR%J1 bIjx'çť<+^PW<-y*W<+9׎ũO=>R|Γt^}gK:YΗt^7gO:Y·t>}a}gC:XpgO:YΏt/}agG:?_&zzm$I$I$I$I$I$I$I$@ 'd흳v;gl흳v;gl흳v;gl흳v;gl흳v;gl흳v;gl흳v;gl흳v;gl흿6-*+3>'>'>'>'>'>'>'>'r-/7lAmvW>%O~'Ŀ_/|K lc0Ϻs8Le31h>S9?@ Z8./Wr6unYFH߅]|Pq ]2_S>_Ծ^o (T27-̿g>,g_݇q|w<;rU@%s\av9>":YJkC)EBҴ3^koB{//:%`g!H6)F9ZF'}^:i~AΡB,.+ٸ{iFoE"'Y,S>bY!4 ԈI#SU3XsZgyx! i Bb?G 7U9q .x(1I%t⾚>*n<ﯖp ଦ6_F3m!IN-muvw዇w6M&-ZYN qz1"dG"dmśePTmʖ݅9p~㺹bAP;,^a_Wen<` c҃S zapX4?n<ٸ{f}'n (=y=_/yP6ejxBB9:Écb׈)xZ jUsl7k 8bœ.4gUxh[KoN*I:v|: U)wZVkxRBBK5@r3̘b\bTF60vM /Zu^cMVW) bcT:'~ǓBISC7/%:{=IFϤOy MKxuޭCVJ-4THF-F<)r+t;`n`q s/3ކL+ۣV(@fB.aT_}a&!s ph-Xc!?el.ѦI!?`y=_./2G@h %GG ݎzדD42*% @4?n<ٸ{f}'n<=*%e1sʎߧb4_q:i(l4QNeMbTsba<M_UFHhʺK,zb+VX?/=~P".?ޫ xpu9/+BeOS~PXvI cuA^ } pW-K;K`4E-]^7NBX~ ڦz1qˉ:٫2B$*4;|Wg$o1 ^`YSl 6&ߪ`+?V6#A^]zXtBJD[f< g7چ(`P57%\(ԇ4D7;hb]f+t$ wVۈ'`2lz #aM Aj`e-s 0aF 8ig=-Ӂ~ȶ̩q gwMĨ^-Ƹ/E(\p/ ,v`T^C.Ǎ5% #a82TjA:ZkD\bAFPYbZd5ॵ4Ԃ\H G *'zk T6튺,86 ,q*R`F(k@B}48mQgJғ/&5:x 6X^YJ,n`YCTkHZ: BÕ~P\YFo!pzσv ң 8c u%ZVU(cY EP-`IHijZjEr. U(q/L<) l yp#-?OJo#|J2sfR6p /vb5YR-M$, l8< ^,Nyccf.G_ּ8.^h*t 6~ ͡>.,UR]bF]n&Џz /F)c16T1,U6&?W֢{z`fX`WԊ Q],1ղr[QJӧ|r&0+j-zԀP*l7ԯҭCmKc\սΒל`iTQ 3QsQ]#Ikj- lJa9W*TrJTaʩCOݏ|/Hb|ЮQP;]F;L@jbiu2Z S(Rڵ7s,)mX8 }R[hHEd,u^]aP]y|nJP> )_yOk%Tr j{ 5qg& h} t¶xo= (9ߚlP1gg}q>U+tpcMKTp $.*YCL^X"82̬J]Bڡws!5\ L:ڟi=ïu?-f7qV负D~RovL +os0VM&(zQҳJ/#~+/='szCC)&Hۤ+MMmi{pr:AnZ/4%y>5d1!m}?z5E ҙ<d[Zg­GTJ ,8*@e7E ԦX"PŭPh=퇨߬24 D;@@l":Y4hl𸠵j& A2CJ BRhՁQ8QKRcY}N֣Tj j B `y# CDcQ =)>KmW4^2E FP urEL*Xc5P+%55v %YUr ZRiۈ㦛_D]7f൸0A,]е nL(:)NG𸾐ٖo'.7?Dq#\WI@f\11or\]ulp7BP mn^Y1X4Ǘ/#y ؚ%q d"ء+/TQbGk vKZZS:xX#QݒZ5R-IԀ&"YD6{CV2@%mLttUZ1 cGա )`R¨6Sg?O_Zk3yBa|"?\n2k\H}b]D \h<@a``BnmQuȣv=$wOȭ;g]iBo;.:`ULmQ%*;LtN&n-qf!4Q)94)ͬt t>%bH.z 9SvX9c^ʯP*v26q]s%!=˔`3 k8qPΥ}\҅è<+;$QYFFaEaT@ pJ+)eZQJ[)2@6֙e0 R+T!p1(^]R86jR5dN$Z }я"&dPMa a-STQ)TZ#'@St*"%;ٸeXf m/,-T3ct]Q5HMʄPլ;Gq%>(t5%rUbPf`WrI-Ylb-/Ie~ĜB,uMA0z3UDr;!Mf-k̳rj D(6 (s CkȔCŦR.bį5*uGWsٗ"ԁ'1{."9C21YM-9*CoC=P/K.W*9V LQ՜CIu^8D޲̴pu3#j)ycV*?c 5 ϼ7%#%(k˨@l.g,ol\*#-sTU"j-VSXy1Tđ*Q x+ oR+b@Aj7p-і Y2k67YqUtMXHkI@%K f(;%笣y׭u MبE\GEnk'k5.4 %/pkF;cr64vXsfL2v`BZ{aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa{r0W GS?[h179IFa bwNxv>e?X;"=-u^[~.>iGvRO^_ Ol61U2S: g1bNqGFlpÚ%% !4PI^l) ({(?Y"xaI$I$I&    7 pU@Pr30Q@8|BZYA\> D` hl~%mmm$HeD­iIe~H I [H$P' H H@@kl D H Z. }$H4, FM$>, R#i>S]" H} 4I Un  @Z`@ )5H `4B @J@ H %[Imh$ I$dI%OI$I$I$I$I$I$I$I$@$$I@GF @@$ܯm>}?AP @, ?Kfa7;p *c%hn ` 5\<H kE` q !B $_0A H$@A @A$ IH  @ $II$I$IAH$@@H @  $I @$$$$@ A$@ HA@ IIA$H HA @ IA H  @A$ @I HAA  $IA$ $@ I$I@SF rEN!@$AkÀ?MnZ7[Em-$ H&  .!1a AQq0P@`pᠰ?ۂ Fo㘠9(R1h-jL>2.㙸}u.⢻M%5⼩od,f"r5H)X'()73/Dͮ|K}(ްU t*JΠ2a 7ܿ\B}vtt}Tl*Žg&K0ݩGi 69) ʢ k%ֶ&nIP|z, zvjts l(,%ʋ+%-ӶT^@빂4 Q% hP3DG(,\!T*$(T a9'Lo0GHV1f3c1f3c1f3lqy9ȟ!HcgS3>܁hD+Y;7ɤ۠hziu 8[.m֐?ȎUU_q5$C_iwo>;+Jwyd"+(VũEpi*H LoٌpVզyaW9 @z} ٸuw:qECjsF*m.$Q)d)" *Fm TRlfſRCuzlͥʚ9MD2S]7qCj7?AF1ݛWTˮ2/6MrQ/$IA(zDҹlTj hʠ$q$݈VQrJ:奕&j6: X%m,6Ԗm@ǿO}#i3S.KKlx*_Xqܿ'k,6) c1f3c1f3c1f3*qc9am1qFS0S0LS1LS1LS1LS1LSi`LS 0L0L0L0L0L0L0tH D d3p7&%!`0 `0 M_\σi Kho`oE@Vac6mmri WqVB&807pƼy ]%_ sF^ezƗf1×4;XITHMG1< zq;66];SwKM abKT*˩\csbC)Uѳ^lR3J˙=bgD&FS?ƐۃCJ:V7F.S.x)?$$H¨ Fʭ:,olܯcܣUƝ4wGU+s(+6Ls "vHI1v攸-5~K;XZn*͒[~C+刴(2p7"6( Yr\c!y1It%03|UdL1I6T`\d2z:;|^晏F|$A?BcdնObP6LB&G?h7c"d˝Qm< HQ"06^:'DtN:'DtN:#g#tNHČHĎ:'D#1#:F$tN:&$bF$bF$b]ČHƻWsc]kw15ƻsc]kw:}Ca@ @ @ @ @ @ @!%FBS'miw&*VG$7KK&Kbsn.VkF.bn.BD&D7C!HJC"F;hOY50RTNdzWR@ "pD.DZIY#D+(Cv/TЯ|E}RIMr{TT_n eM`MBt P&55&7T'>F*cfUDnu0,qȕ 5fۥ 44 eidTI$;vw.E`;hf"՝_285nz]*4niahqjHunC[,7&t7a1{q8eJOMGaNbqgNw=: ӄW"[%VjV(@WKӹ-SwPȒ2VQܾڽƞ 9<#iOϘ9n|Ji8%L N3HLp PNI,M:V4Ji\h(Lᱴ ]!B؝ &+.MGWd| XQaG* "KV&NM?m2؛X0QVn}9  +$[{*R9 i-("e-{^Du)/KpdY"+qI%Ζz 9'/4kjnl+PMfO7iyҺt@0WKcg$Q XZ7zD$.`RpRz.Hô"B!D"D.D"B!D"-rI$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$[HLO%y;~=X`L̔_DZ-!1 Aa0@PQ`qp?U, (cAIUWrqN>`wi,MN ]1DF MfB?}Q]=vͽU$X*Dܡ|7F &ЛHJPn`j1$I"F,_n+3ف WW.!4'a\"z MoU!ktn#<"r7 lY\KwqlpAh,Bdad[Ntsw 2mi 5P%A$5z*K7)(CX=4)&Ǡ7+yc2LMtf(CR|QQӞqš0ܲcBpۣIuF:. 9$pQ g\fU$_b((((((y1<cPcyUWWW^nccy y)<ǘ <cy1<ǘno(^/_ .."8A`aJu SAَtފt* h7gMi"mZiFH:BoLΚ)Ky!lFՂȐ$^ؒD"Ti1!Z4ĒI"wCVY0W $^S_2^o:I>Xo/RUUUUUUUORXӭ.<*쪪uoDAAAAAAAAAAAAAAz OjrKڏzP""(= $BY0L$5>-{BNcG%Y[!goz+8Q8XW‹eYz\6߀=p~oc>=[D0>z`$L DgqEda$%HKԜfO=NgqGSNU(]^ҕ n(gB7ɽpۊ15d\OKT#m6#I (Aki bba_n6PyO)#j00 I!$!m4!4Tcz| MN|; z\6߀=pmH} ,-ߩG4肫 og)hK O=ZmIQTjFFqR+ȅ~ib^?HBjQkca4kO 5ޏTMidþ1}^&Ъ1DRq?_B*[,BѳO=G5u৚;LyD[6K؋8ԩO3"ʔ' ϼNwЯ@ %xJzԽ25/6EvH{آn pfVO"oM`nq [傲 R&+ ñMa2ܾlu:7*i Q83E00ttX#B8ohV4*bhyFFPO?.!1AQa qP0@`ѱp?PVpZpC`mYLWIt,,0$&@Ġ7a@\v`1ADaeۡuoÓ: uhf JlQzFڽ'f`n ㇆}R* TGDODV=hyT0euJՆTi⽺s;5GN3&8݊p:s :`+$zl7/yP06xFm4 EZ} UJp ]&zi*VMׁ ,ֵs}~<9KS/PV^ˍ< NT |i'i>|oըT# DQ^~`ǚu(U{c˜# ?ԕC6&NYv(J2R`ߕ ěH"u&6h4 p\PO,'SU G45 &&.D[@]rҸLcSi"i 1!ӜOTAt-Ŗ&Z1p0&ąӓ3>*(s&=t7^Ydp8B DQj/\լ 21~b@`#q /$x{յ.`~66\XeG pu*Lqy2kdrF_Pah$;|`?"+60ҩ`;NV4"gE h[Lɋ[U5J[?@M)t;u͊AsI LP,6"e$I3nS)Q(9oɢpecUʏ* n'Kх^^ItTi U$!{`R. 'AEhaGU 8 '3 @T( $[L,ӳe,7h u1bʧG*pmiFhtac4k =YIs{OK4V9MT R{L$T )i,7˫Iޝmқ@,$}3`dWz6uܷF.V'C"eV}!KWHxt{u Pm4dE(.^p;&§Mti73L1@ R UZ^k .yRDt3NJ4v ([k Ŀy'Cy˸-vAD^)w=^4lKjKs.1Cn[!7ۘ$.ZwvJY܆c& BJx;8, 8 6v` ?(_`5vs/O\?7|?7|?7|?7|?7|?7hOOc_e~_ѽ[./~ӧO?AϞ';6lٱ?fN2d>yb>N><ο×0F¬1g[~#`3Ň>q9?^LJ~:} K .ߠN _\ <~:'g3?Wg0Rg񈜉03L^ 'o p'V`N~P^ %7znqv2],!;%`:g?? n>é~#3_3_Wa&r!M8LhV`f}p/ΰ呴N8 ' >bo7s 3^Y^3O3!x=<7|Q=0'8EPB㘛(BWtt  Tp3O\(a5޸^ ΰzѝߠNrIP|-0rN .BIytzAEH^ 8nݺ$ YX:rv}0FKehEw[$z w ' 9Atj,^쇢|kۣƇT ' \yWPD=\ tT8 k+"&΢?w=pO^&\ѳ}\"ip.<\> ^;M |4BG5^{"l'׶ Wnq XzgRGGK%:t$_=pGp+Pw@|=V?liv* M~Yg_`Ws&o#4鸎~֡I[e񍐂x,>Ƕ Pq $L":8r]8W8߬ϼN<ʟc'}" &P|z$ۘ! [Z1}s8KZp~辒B lc >x?9>s<<>s<>pn {FA3333333333333333Ũl>oAx6&U*T`dfx{'YRJ*TRJ*TRJ+]u`L!^>fT_]}@;Uof$F" Yح 1v!Ri8bGsiV[ڎHl!t[ &8bc5^p:: I2Jn3[B4il)7TbD\FH]㉁ƎV WzkQ bP ['w+A1DN5j|+2NAuLnJc6wGU[\^D]JdSE]QIy3oX}yf.مOE*ИʈJ!`*ƷREm4t]v6NԌ#XDCy)֐ Nk1nᢕs,H F8J aK#h ^1[$qnbgIIFNAלxDVbf^3|aJppǒ!PT>/A (`텀Oi#ߜhjC}X L 7Bj1},)! gk ENP8@;/\_aP8H^\"j񐑄+|&( I"=܊0"P >1߷DX& twNf!a\19\r2ӌU 8Ʌ8-pqT{]x>jG۽0Ι2;8Z\dJ#4R5{]W#a- Fc" Q_|V&qN s) 1lcŤĀ@_A'P Xќ*\(cF0:0lʲF`&&<`/ h|e[FUhwo*^Z6vǢ`! 7%;el|UIñw vD B͙Bסɟ/D w!1g<$RyR83aZ~Rک#DP/2F8a&CT]24,͂xn^PygaV rb+PbЗyDuPE3v=vWe=Z`@҇Ȉ F.9{&ұ(F"$ "Jui-q *TcW"NCu32(ޘ%bcTnAІoNc?[*iD1p*6c cP.\ } h  CqM ]9ey6> &"WB}EZ2ְReq5ׇfuyx0UUC|k95 6I.j82RbjU\I@;a @8ܲyrG{/=LÞF3\4z{ܯ`;ߣI5rfi EG qZ| t~&ZwzUjU* >0 1̓jgACCK`CĀ*g0Bi`m )/"yTQm @yRhGr|G4]:r(8d`c9'ъr 4t @ šWˋ*"=n=:# QN`G81`YX:.3T &8H/f̟|qli-p%.RB@gKe02h0+>f8-"Q ΛwJyaf& ć@aA᝱:#۟Yt1";O&7lhu\R*LSav@s8x\ 0Xd_8FF,z AA(01ЁbX=wFV%(J N+"p$-&M49;[0 d{a' Cל]TP3q5&*宀71'˪׎Hm{7]Es ynРWVKD֊O{-Glnz/M=ĥb["@/&O @9/~0dJIޥ9tܡ刓V 4.0Rdbď #u&9 "ACj2D2 p"cu% 7S8Ud4ip%fCFp'4)0Dծng;o\TeSABHR< v BRᑺJH]\=&\ΡjJ4\+^U2h* #FJ"v]Ql} 68x/C1G5pʺ6rh9J:( b$୒raa .Kђ!Ta? pUr(Ĕ@k۳#0h-\XT.Hg7h G(aSl LHWL0]"z&L]!bx 0lIƷSbGEB_NT)߹77uP3zgL˨P,PxejҴDk|-."jJ0`]h}8 PƎ-vJ1]t4霱zo\rnҙ}8L 5dog_ 8Ψ9oQ9RQ+z-gl.^мl jl0O7LDB,Bp< ^GqkTY!m%:;OʒU=cQZ N*Jq/ /zIF _6V``c֗@ؖp(Vd"hV9AĘGV~mJg:1dQ]gll ոk,\'tD{HgPMcQc@V1p0c%f L 3ntap2#Ph=dzy1$X{fv29i&$_Eo\Uc/" =0c@ 8 L'kŊӵzp9ƯgnC/zzHzJBI 0 /acuê @mljwlT{$ nBO)j} /8զ**˜PzKαA"pp//6E^ /\"# ~C5E1Wc%_W:eĶw~Shab泇G N/Ol(6SQc/*W〆DF{ wU-$@5=Vv"p1+˿8p)Mgr綵)$$hUp! |BJnMFqx:#[>`6x1!$Vڿkw:-,q`vI;r JH7U Ӿ_X̦Rm^AxqW^| *åŀQD@5Pl{KTɱջc+NVbyt`ґAQXK^1 Kֽro|n n<'SX5EyWE =VxB;/mzq`5I̘ڤ8*ܮ3K]A};]#Z6HkP#&tQd[ "i\p4R &b:!#!04px!!!!v2lc!vPy2llc!v2c!v2c!v2c!!H^zׯ^zׯ^zׯ^zׯ^zׯ^zׯ^zׯ^zׯ^zQ@5?.bjGj``^2KO"Ky@W T!RBiY l@^6әN VSVX#ó^D<3 iVP v;hCئӪ 1bRzIҮX05d)O|J}Ht fAtLU;~3_fH͗j!gO~~P>4}ntfy-2.11.0/docs/static/img/pwa-install-chrome-android.jpg000066400000000000000000003403551462047176100234160ustar00rootroot00000000000000JFIF,,ExifII*bj(1 r2i$,,GIMP 2.10.302023:06:24 21:55:33335 %2023:06:24 21:49:38-04:00d91284c3-e0f3-4bc2-8ee3-0acc685d8922 s+JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222s" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Ţ+CKH1enͮ8euHE jDPmU t6hn\40͚ N))E^)9ez|Q4ҤIp2p)I 0GjJs]-+D}ܘ<2F{f^+n2@oqs(Ty KvBL9z42[J]Nl>$$RzrK$ϾG.I^( 4[xn.&e8U $v$ڛ[~\ *Vu #)|uki[]B`uO܃*RBZ& Oҹ繍B=iicOk-4UΡ gu>dӢ[@?Þߴ]ui|mE]1gp#*?ˊ!!{u6F>a:*% ,Ǩh-;ZF,$΋KzҺhW!Ms6`\}KsSW(@sqZM瓃M̺/]('jSe]qE2y{F'=vU7wo%vdu=ST[^u-iZ^h#Q CbeiWX4$= kz =Sh($'sK.dXϼ +4y%خ-t?[7Q|*&,?焟ɠmQpà?ƠeX|E54ODi6Ck]#b{/Le6 z4O؁~_Q>? dtZk{v`~T-gsY-Ԣ?)dQRP~DԞ*m IȆOLǒ]Q6ffyRXREhT}濕KEEhT}濕KEEhT}濕KEEhT}濕KEEhT}濕KEEhT}濕KEF!~TTPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPHHR%RO,˾M#dHVQ5o5:gk1;V);4^`~4vI#xdʻYN3ȫ[ZlEPEPEPE^᭢WTK}hDV4'"0zw5byDnrG,F= jlNd UHu(渎%Ǚuc}9qxNf.ONӼEka b]9[LO1tw^hGfe$H,ˎ?NhM^'tS)8t~-M2huƪLϿjcp 0Kyca:&0G`\ ܣip4-Zm0%-ЀhK8 I&29`>`t?JmޖSiOL׿Qc#;O!X 0?;g,N>c*hGW<c=>)_Gz҉1f]v`O?:[N(LkdN 1ѹ1QpVbRtcixG4IDIYr?__ H9*㰚g/"83PiK{tH̪b6L~&n0L%X>6%PEPQO8)*XRSCaRx<qlF%OGI[C#'ϧj|aܠ9gJ^SJ+%;$#a'3hխ7#M$q~xܽ?Q&`B+mr UVQ]c)FjѤ Oڝ A鷷?*햛āJexPSwav E c5 Lr_0oB?R&c\ _45Xo, 埔{Z^np2}Q9}zT_8c>h8=~/EQEU{lLe0\ UmYsc 3Q* ,@ ~URC#@҉o U㍹Nدc-Qp9cМͪ[B]X;zg=jvF8:*SDH;HQ3G$P. ksq?ފa );}}9o̒&[c8RX`?ZEиSm88>֭n(} YՉ'' 1uϨ4ɳq?:(Uz@'ෑDw#j9P<WECm3OvM;.3SQEQE R"y2qSQ@PJ=96Nj)>p3EgEs{ (BRkicwnaҭEQEQEQEQE ſ+qߊ,rDS@-'Gr͎FF=?&19gOo)XMib  ,&5_8"0瞾l/'B`d_Aƞ2"#3^ij鰫r}:m?KoO|: KdFLpA q{5 c1Gg(n1nI9~T ﰯ1,Όp2q9,nMס~Tn8` <GWbVHY1Z)'{Ȍ[f^:ӧGo\ cNMh@Š((1ʏ*1ʏ*1ʏ*1ʏ*1ʏ*1ʏ*1ʏ*1ʊS֭tf;-;tI쵤ȌۗsQj4*# H'NtXpԉ=c>֙K[4|=9Jd@@.3} Uee!r9t[fC7SzKuӭ@l`/#9:؜=sM-Z=E=[nx)L, Cѧ2hEA1>Š(H 隖Zf\ysszMY(6΍󥢀hU1i"IH,:tmGKE4$zE*n=r)RB1HI4GF@ b@f=iGMh՘1Oj}&Ѵ{tPmP whttp://ns.adobe.com/xap/1.0/ ICC_PROFILElcms0mntrRGB XYZ 7acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBCC  O4>i/Q{[Wsy0wӗ B*q;cldz[Zؽm\?~0ɺzdѷ)4S5v^#ӧX}~!'ߏپkѵ-ϰ'G[GxӢ9Aռkql?AU:9Njor\Yj;uS̥R3y&Mcsr5:Ukfu{օFKyJ-ֲԀ(˗ipbK\5_?>}oNR{6FnwZM')cshƶ 7_J-_Z|3b:}K_5Q[_5θxݫ_}23|NV3VS l[OtIS˓+Ҹ'/z_/F_F6YW2:hѢ;A=Ռ[i b3[XhVyT{lO8' n*y{9~M]6} ~kbu 7li^uݳxW<1~5&ζ, 8&av%>w(=> '~&:*џl1z9ZQhtWciպn2}z f9#g#Wrp2:#-sFzm i=h&\oN42жme9q7+[Ssy q~`?A|d_-ӱQe۝\Y~O0E:֭;˙rIJ"G$a#rf99$H$#G$H$ 'rrrDI9$$s)9%9s)Drc*RD88H2G3&H4Iĉ9&MD4H#D$MDɒ&wFIS8"D&I9NmY"h&i%5d%1ĕ2DD8LH2D"jȚ&H#D)I&H#4b^[krJbP̢$H$Nl䔮}L 82P֚؉bJȑ"dմ&%)$L5dd$rHDH2D$e~eN&d2HVH$)"fS1O;Fӹ2`FDk+Ɲ d=o{si>"D&IVh2D,з2P^~N9b;2+'"ǿF^1._-8 }V˪͹z6|˪kuW܍~S,~_p"S5ve]G2Mk[BdCDB/l>xDD5dL"G$"}8iz":5 nH}ry/b'3./Sr뎛[kl~ekic=j&NQqSl$]ѽ}'&ֽ$LҶ/\QuS{ o/4MD2D$"HNhl+B2[6Ԡ[OqRF^q6_-%k1cZVT`^BCڵηm̔&e~[ #Zw1ʲ&H"d$N+)H䑳=grD$M$H#H&"dɒ&IG("dbRQ̤NbD՜DDLd~N$kN>&L4Mĉ&HD2D9$ID4L2D"S^I$H2/Kؼ̥18#hL#I[7poĉ5rd&hD#DD5dL"G$"H&&H$rLJbD2Q3D%dl$MD(N9'1)("dDfiR"RG3''$#RYBD#IG$BR99De(H%5$ #99L%e#P(s1$rH$HE};I"_DNrLM#<@.Yws VHeғR@RϠՓR`Hp|%>c끰 JL}I_OU$iI S~ x+D>a t}70-C)FH^gLj̔c 0B=EmN[ dV +`>V.YF1xlM,2V0+.i汘|aJy>mlh9G3ybLblHraCGM0Q}@>_:Ϸb衯4- 2>Hbaɰ&@"d^VyϧyOqzne\%DB4f9 4l9XHb($!>>*[2!1q>]CiL4l1O9'Ѫ&њjbr>34dQ`5@`A@=&6 0F6s.qƸm1s/hѰ;(eVyXLP jYjM5 ਟK?0r b-?oi3O/fPHiB>hJaY)|1W 4ŚU96֢,4<ӓ,`[la)&4>Ϯ&(oXmiplzEa6DR s>9X&76=2<:<`pZFL.1)pcq ."X'A | apU(2)E0RkQ*I20aX`S`3Geh-[J|+f\%Qͳ$jqșU/Өǥ\V\؃lXfO2i`xɆ:N Xd>Y x@ T=˘zLZe Ʀ ]P%l9kDiS2O(d֒fS)z0&HC8/ xo\|΅g&IHk!L\G2i -)&-LD\7'B=00xNӓw _)~W["p9H)r8p|^ dQPgOkTeؽ&Z~/E0W^K[l[-v㿵s &Jc9Cgbhn. _(>pv'Kn"@SK{u+alVq&JZQ2R=6Ͷ.zNW-R1wՊ0}򝟟ޟ4͏edž[6i,[WGKek;Ǹ"c o~_d_xr >ZT8_.Ub;Ð53UijZQS`9{ѽS~ [ũɯz;\ lq$;+]7VGa6tT+`@d)[EV L,V˹  z-b_i ffU,$EV P ΐ-fՀ8899D?  67@P05!18p"24`$%'#&(3AH-R5agk'ҺQ|61m!Qޤ_6ISFO$i+Ѫ]8-xYì9 m~{\}dp (781nj ~ɹlaBC7 \-S 8 A lS ;5zK,JA~{sM`M5Ku.C/:|Ȑ~Q8HiF2o*ns+OJPIV L*(NJIGð$qO5n9ˠW#5f ] JZWBҺдt-+i] JZWBҺдt-+i] JZWBҺдt-+(yR'ᚶҩ%8}x:wmwmwmwmwmwewewew]w]w]w]wUw]wUB>$}g2KO /|P\O-Ck'!'g͓cB;nLkd lEgsx *$R1#b 8_$;QKE5pO^4Ė1iR_"z;GD%f<F⢧XG3pЊdtv ; _P_9V) noI7ҕ6RYFnD e&rxnevj+GoepvfϚo=$,8(K0XܠVE?wZ4[Yvv$L:ͱ-Le';lD& ݔ7ї('Lw§0}-kaMjC2CZ`;م9Nxg+|o|ra݄mDJA,^G8'/÷]VS;G>u&ԟަO^G84&myJ'Ӓ^RZBeܤ-\d"Y&G>hheFpϙ7u+hq]Iv'n+Wi^QzGڋjQ 8`Y/UU3535S5SSsssړڒڲڲ2222RRrےےےu۲u۲uuuUUUIW#\ p25#\prW!\$p\+ wþ!qk{\K^򸧕ż-qo*/r%Tx3pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW pW c ~8y-^KWy-^KWy-^KWy-^KWy-^KWy-^KWy-^KWy-^KWy-^KWy-^KWy-^KWy-^KWy-^KWy-^KWy-^KWy-^KWy-^KWD Ti^ +{4{`ҽWJ܄-!4/J4)^+Х{sBhR Vj%m+"s}[噣q /vϧ>l,ṗ0S+ mxYzVN|OžYPZdSWA?N|OžY'#.TR\Ɲ]jejvϧ>lħb,k I ơG=]~^ n͟[埂W\z>z-$vE{#bk!9Cޏ$Ц  fI@OIͧAt~kt~1=ލL!&=)r[6ak-o[oaNki $[-{\I9v[u~#xZX[WbL͑cB^Yl|\N<5Imns["; 6V{ :fI6ǂD`<Ѝ!QV֌yk=i=k'1[#b\hGSzF;u>u7MžOP΋΂l i12K'ÓdW /A}hu) 'ml@My[PV@RgwdGkh`Z7?hzBT[w鎒Up/MԻķSZFh[IϥpVixjdabƔ!כ(Sr gaI q'_;r:kk%a@ 6X嚳ޑjza"o.P m<^ʆ!a趰сa!^1_^֡ mL=W@6EP 9C}|$ Ȧq?d{kkY=רk*B #* ]1F[Rt )E01n48ݧ3'fC0KoV;`Þ>g`7m>@9HV,_3f(~Q7GGO D%;-;Fjݒalw"u3 |Gkm!fgMkЂ% DlWv?jGIp2@lvBhݺAC͵!DN򜔝iI`!%LnAv+}{I1hKMzW6j'i `gflz䴛hxw-ov]vq\rdz陦Kp?ߪ1 jIr;}5ủIn[QRl͝Ic- zԸ,oFl2q& ruZ"IWջ9uQIOі큹{w衬1 t Hҍ~k zhnQ^dѽ@a%-?5:ٛӴJ%tF{ 4(B|zAZc[?82pDnAkl#@dװB{J%E۟c9׸'aK0f (`@`W9o 6->3ZA^R{]b-5$rn!>!6<$l+j&DHo͞ nQ7Rlq{1bh45/5p2I!*"*jĪk"{[$) I3- ;HY%UtrHOjIdWURA0H̝6UI`床)!)"[7999)xbY822̼Hf%EK%MM# dMV@[U}b%B}AdS%*&qq_ GI10i5g FUCx١à[}Bбz\`*{"n.pv({EDB3I##LlbF˲HFj-\)>)*LlHg]aK EQa?]ii9hMhȞg$RCArC)!$sБĐl&7TMYWSHNBC?lAhCvlD@Mkr& +k'рqMu,{ 3PMRgߜɱ!D qsg/%I Y5#LG"'X0rXYAAً5f .X@%-\0 Ֆ-0QiV}xdbev)*|X9g!)zY,3f3nZN> #E&v2F&s ̊8tD@*`cbXɬ Zl[Mmf+,O1cB0)'|,R ->2)9)$^w'_JZL6abIsw13D"biR, JT Q\Ǩ 2be%] L:JTqv)s}hS#pG=x1{xOD0Q;X9rk0-oݭ2R-<` M1)C(ecqI6HnDv\&yK@k{"]e>K5>">Pִb[$EIaq<=ubd8)ؽd>Z>5JWΉk U2uJۋ gPfYi,+d+<2-?Mds)YERIlM4[YOdM$&޳jUI%e42`VLd$*Vi~_a ȡvfnq!LL3'lӉCظ _h۫oKDCrH9͈3 ҭǂ1RsY"T87&$!N}:E$DzzPn[n8jmkuT#r]IN!+i$)lwE,"IlI$pU$RCEoVX85j6E,T]TM"Ji4E>elY3aݳ{ITf-kZdQ44RGI 0I4f88㍿܊*8|LU8CYkBs7#o$r\Y1DD4܄N[(K%i8nrٿN$' ץ * 3W 0X\$M6Q1C^ lKF/=#-3DjLY3AbM*VF/AaP-48fߙEV1-k`? uYNY8i_gLpş*f8t*|)@cI4KŞ =$ $VjI[̄OT"0D0#% 7O5)KeՒ6T8.H(M R5fJDՕ4z=@2jL%)V 7TUI 9h핿IEKQ/ #0U6GHc3MQS#ƶ!aTܣb.Dl®D"'$Q䍍f /w3#_GSІ,Pm&o6d9uQx-zP0fwNq8( G_pXy%@o6i!M/e3V`NSr^HMlWFqqҏ!2u Q,QSfLʙRa(E O!A"5\Žd.Ԏ:wx!TДlɴ:cO0__5%N>EBEm]x)hzasi/:?&.ZZA9픿ץ0*ȺuL>FD69s> Y/ P|HRsVeDT؁$|1}|4dbḉ%0RQN߿rl=؆cRI}$ʔM5M$4RF(/b 1ױJʨK`I$E)dKA -i& ))'(  /jf4S I:jf$Rn30SJ+LJ@Këw8۾/&@{`z@`hr8I,*gNOB[FF j#^g䭚JJ<֫jdj9XIC&G  qUS% ci.uD)vkH0!F&}ȔQR1C)l<|qnBEƃɆ]&$iϹRdb&='ǟm; ~,p[&ttP0,m;|(*"$Kd;$)%@L"&R~HŔ\i+*J8h.O53 VN88ŇԱ+" 9y{!$\ LHΌ9S%ti\gj2C#6$ gÏzmG ji9..Qjѫ?%Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю Ю̌tN]?LbWoC`TV?'=| q,,՛KT6ȥϠM0 LN]-L$R3g5N$OH".%eHȩ!? }O  !1QAa "2Sq03@R#6BPr%'5ps&4CT`$7?5ZX&h6q pʪڇ07)jx jʱ GUnIOJ\]U {c*nB/zpN[O tSs}x `X.VUC3s1>yCĩ4v/Io ԢYtUc聚)Cv5>. v OT&ifǣs,^I`VƚYg24NYcS#@_S2+ïO ('-}g}Uf.d]>3^ʏu5F}G?-1opVGu];lt1N] ôjyTr*tomoк?oTrbZ _p1QKWۆks૩MS=_. i;8Q/biI/w*Z x*gěi]T@\J'1qT3k#6rf-\ƼzS:Ӷ"}U87)إK՟VNN؉[o5BlސܙWF׀_|ZwJ;^%WZR╔J7MV}% 7f)_is(s2cڧ$n Z\p 6ʥkXuT/MSIRu-!,6aŴBoG0XzN72Ϯ`8AcLEZr7A^m,RR3'rl/c%#<9-#h;nw~ {ъ4؋ I$7'v,Iu)}٥ \nTGG6#NƺIUbE}hhpz`#4߹ }**zYqL2X-fJʠ`b?q-]VɤFNEc X\న+i#8S֪)`fI3 M?_tHT1R+#'"}Hp80GI3GoSIlB*#<: m}ɯ{x$xQ3f)C #7Jrf9da0xGutX \"QJN յFN 3֜ܕs{BTϯ(DUd^7p#Q7?0L?\Kkmq-%Ķ[\Kkmq-%Ķ[\Kkmq-%ĶF {nDv-wbv-wbv-wb-yמK^y-y䶃m]m'O%Ki}fh~JY3/SEkuq3q9w6֏KpLO E'a^_}uc!o)4E+jvŖ RTоanJpYUPN^!SB9taT-,/%avݝKe^!NEcI9oQ{2OQqX 8f-$]3=ãx'kK5G1 y69]`֤)[9uZ=|s2dc8#ᒞLIhxmLgZ\/2o#n~ EpJ\ji[)>oh KbIܰ\ ћnU:?aRUaw+4?/S~(Zj^1/`x@-V$)+iţt p?ЌW^\Z7, лu,~DfĶ,F~+fW_M[S"cBjnim[8+Wx>PQ8}X'??Or~ E'@i=âbS#39(i]m>Vw=*:p9aësWij>jV/.GI~ zAeh%U67#i7ɨUͼw*' KA@$COoaSV73_^Q/(CW'=-Ms rnc~w8&6Xv;MC?6I(jԤ8L1 ]M__$vZWxÀ>2'5k8:Bزk~(zzV <V!)IypUmM)A왿5A<  C5y8z&%[EYz)P~Jڪ +fcj>-\pݓ7{,7H&g܎ kqJlλ%b8X'vl5Ts "ufj/}AP>3CH?;_l:e-&)5ֶdI'Ϻac>F~C s{ gijVc?Ro I|/%g}𼕟Vo I_|/%'}𼔟Ro I_|/%'}𼔟Ro ѹkU7Nvg_/=!uய א8gz^Acݝ,wyvw q=޼ǻ;אgz^@cݝ {y ^@cz]z;G!޺??wCt]c ;GAw]!޺=Ct{zH9r ;GCw4]i!޺<Ct{Ctq|zHƑ룍#;GGw4]!޺8>CtozHcuc3ekNMDafC6RIhKTc 7fM`S&C`|@ ğNuGp>FF.d׵fħH 9g4ؕ5&= 4Luޜ3M'O)Y~]>Xq2#}aģqgQ#P-E>izl=zt%2XM`gń;b3S^*}mT)G Ī&d{۾|uSavp Űl'W=8=RGbbicEn|}S t=p~+vG-yr4>&# ۙ~j]|Z9ýPGV X+``V X+`V X+`VaX+`V X+`V X+`V X+`V X+`V X+`V X+`V X+`V X+`?Ȣ1HHv//{H?rGTyTN oг`ⱽp ?(4hQ d pMTeɧ3n͓׵Ą̒ན^׶ ut/,Il^mZ;7GG|A/o,؊_?਒'8 p)וI/.B%=Pܫ h++h⩡K (Lc`OS7S{>~@[vNJ4]z<XE& ]Z.rquTOE>S GYG" $[8ZV6wݮiPHɋTЙrk&B. -@7bi{Ee+rM)pSaɴǚ G=iԝ?bف{ɱTewz3!;)K?"Nʩ9հlv@ "b1TЃߐb2Z DV"ZmR4-tLڲ*ʲ*ʲ*ʲ*ʲ*ʲ*ʲKW~H=;ҹ٨\{juSh(4T*]@؄%Ufvhf)g,Eۦ$QYv 4VV@duR7c>jQIZF6I/z+JMH/ %?+h{7@\iŤ WD:F+`ݑ{~41jϺj|;\ac:lreg{;v#do~ )6(wU`A5XXΰ40wHa`)J*****UcK,V+TXV+bXV+bXV+bXV+`XV+b X,!` ,`p+ °+YaZaXV;6]~hspL\&. bFL\6. pO`` ®ߖNeuutۭ{Zw\hM.#dٚX&nU8YEH@ !:Ʃi-'j2vrmRnjQ,u56Bzeo/qR<1e$!#wlP;we,5 GQx xZ5K 5?ÝB2yw&Zs n*?5dD ;ЎB4K &)RT)yG[vI}Zw  (Y*ĵvje6zQN(.pZ-oF]z,jn͢J!>A6_ APTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTQMG \r򣧔ϊks?(vhskᳪsKEi:U#8r##H%_`q6}8s;ʒ'&.۩IuRiz;_%*2AK>p~vhtc'kZ7^Eq+Pj`텱CZxdT/Z[7Ckz}[ !{lW缰^^ښɢi莎.gmoidN _kzm}U R4aؓtf7].j8!EɡŤUӧ8O}?e.-['Z^'csX#{9=aW_it<\mTvWVwKL}#OJɥ~aGQc`d^d 瞀s@ gGi[}~#)QtSV[٩֙ZƷ`Hkʆ6 ЍPsE#m7juIl16ox]Thu]`F~9awVP: y>p Ѽj]O%uQ1MkD`1J-{y!-Lnc|,iugKάTh8ggGYF3NMo?fݝMԆu IN,.m:5a=guXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX!g !1"2AQ34aq#B 5@PRu$0CSbrtv%pw6E`s&7cT?Z)@Lc M`]y@ qx]F>K:^A/ H@C>YN8Zkip*"`9'Rȩ\ &;#S/락µo"2&L;LA`}_w=qɘVp)1pvcxVKDq=yVx< 8 rxu NEWS0Z&P m?NN'plә`cIɅ:jOr[ꢉi~7n634EβɉT(Qg 4-%bKk,LWV!ɸ>m*"8ti|Z}^q"a?1Nיn!7tR| ;TJ]!HCeMC C<2ûdU#%>Ŀ 'TR/Ǣ0*&N̪k~*޸jYH쁾"o^cESn pW,ʝ*>I2jۤsxdrp+dCM)3s?)@@4iJSp$ڐ7;~{32 b3^9  Qck`^Srs(LcQ9% ZS'T0礓URlR4{3kxE.l ν`SQlE<8!I{IŸ)ۄ0;QIe`AډaL!y:1m$6%~#x^˹NH&U6E'@;0P5@nvERT&![;W2Cb^2yʷoE5Or{iӎѩR};`vlwXx{DPcB"25`7d|dV1Hw{i'{W ꤁gf ώvWhr9]L* XLaSR.{ǰ++qwxW'O^N?Uy:~tUW'O^N?Uy:~tUW'O^N?Uy:~ V[?SBCJ`  (}ܠuF!( #GI?8{_yl;04hU21mZ jƐ V{~H$]j2i/[uH5)(iFE<Oe|'28~CN X&*=x g'1pFʳ)6܆)ƑF$Ƣy l3U]L cӼ5"\Ȅvqud 5#1)0 LHvS xvyK:l*rM"#{xSɱfSr;*%ΰV[h̑#)Ħ/b &,H$.6,V(,8P@E2"+8eAZI˽U=Rӱ-زo~:'8[LE;I"jQ(P0tLQ0SiK;\imBsn;RLCm~([ %KOUi 6QErL1b4q̓vd*<@=Ɛf$^)=k**zJcq4SL (wY!|B&ԉv4Ԛ8C4obcҒP%ӎ ݜՔ=9,2ȼv4C Q/nIgb›Uq7 Q ȟInÅT]uYe09s' Q8>`@iGVQLQnt@r~G4r 䟳-o:JRSlRt$YXz&MavQj@.doHq0@ WO3}6],jQ\ƢpHw]H~ ҈}u@[KNӞ(298).nQ2eԛM\L#Dw$ T[ae~|; JA8Tt R#ӀϜqVjܲPCLxW?b^Γ[=ycL||g[ Bnlf'qaG8?Tͻeɰ4&|~v a8 Nٮg(),`~>2Ν6'6 "v{Cw'uAMAi62bP6᭬pJ52F!3~1LNc6NMT&Ic7#;Ӯ<.CduJ?@E"6`ՓB7hD>J'8Bmffn̏u9P* 7 M2 PjYg}jP9s0L5xVG#}8t@:D_OR Ć=dDD{Ɗx%gg!0YGpD<hB׾={qL8wLoE(q$IS~^bGINPnU$CZH56,VrCS(Z2l]#WGwTCwֲ^HA\{;Dwt%0vatzI]cWX2?̮eu+]cWX2?̮eu+]cWX2?̮eu+ 5 ؗ9׌W^1_]x}u׌WUx}a^5oXW[Vxսa=Vexվp{+Ư^5W_r8=|Wq^9ex8=|Wq^9ex8=|Wq^9ex?8=Ws^=ex?<=Wu^=ex_<=|Wu^=ex_<=|Wu^=ex<=Ww^=ex<=Wy(y^P (yW]QWT}U7VI+8\'M#p]R+Q}ߨx_e}w/ݻ_nz쯷nEW۷^+ۯQ}רt>t_e}u/;ϲP$[ȔIU `t}w}g bd^ NΤ?P!4oOٱo ю|n}m۟[_m|έ/]İhG* #BdA\?sXwoIc\`7m)> E>;۷u9-ceCe&Ba;G *pE۳D{( 21x3x9)Uz&c08Nhg@?嫹 7UCp<v৷hFJ͉VSHP+P(-.=4QҲ;UC5#rGF f00*-TF>TǴ rG\\ S85m6C512tRa(CO- N92V*h6J7UQ\vo7m9ߦ7q_Nw6UQq锸?o*d͎LاHJ=zN ˬ ]ÈzK,F @yUu¦H>/5\t0l# u[ )f8M%Ġt:iFi;iP\o|>%Zbܪ8~O5`muSvj@Fr=!M_2/IM]l"j <]Tt'9ߏ~j-Kئ(S`W')"94xd.h>T/SVRZzPS_S=ΔPuuT =FꏎO^RXf[L$Di>tTN %W[Rq"ᛨ8u,9D%)~jXs2:f9xn5 D㐧 l[bP'5v+"dSIpG''~ӝPvW#F'r#t)k'{i븶~]\eqnV2JEPM0@Ch2Q6`)%u䧗Uc]:դ==TprcNCS \mPo8R,J~#Sz# vSjn#(LQLQ\&ơH?Ԁvb "qPxh\=U g5ͤ]r(Lf8qafȡ>|dk LG4 fwR{UG\ܛ(l8xKzӓYM\=ΔPtظUl UN@‰S}! .?фq+}z{hHE)NL 'ʺQ_AxW>_:l hY7b'2z@74(&k$lQT (i% )1~`Hl:8o{>W ) Y0svKK&?oco_pC*z~:#r7 UOƾ۫_:ul_'_nձ|}?6uN?שۛg:sm^_nmŵx}Ste#.І c]Q\`5nܬ6^R?K^)/׊Kk%ZI}%xRI^)?WO+'JI%xRI^)?W'W'WO+++׊'ϯOO^(>Q>}x|Dŗ׊/ϯ_^(>Q~}xEŗW/ί:Q~uxAŇί:X|aŇί:X|aŇί_z_zܘ|Kuk]Puk]ZVծuk]ZVծuk]ZVծuk]ZVծuk]ZVծuk]ZVծuk]ZVծuk]ZV ꇪwp¸W \+p¸W \+p¸W \+p¸W \+p¸W \+p¸W \+p¸W \+p¸W \?2 ҫ))/{(If-H<I5Ϳ 'W6ߐ^\{+˛~@Oeyso .m=_ 7g$GOd!RRQmSQݥ0vߙwLe)@=@#*jEm)HR2PQyDd%yDd%yDd%yDd%yDd%yDd%yDd%yDd%1wuټP`NCgq5%yP&x(C~˿J~XSxi]`t̪L2c ^4E, 'Q073pi_ x~]*Sջš̲d- ߤra^8q[&Z+DMw*>cv|(`aJ(W#_ [=d%VB D[n:*GR)fNvT@D ٵ7~37PGrXR1h"W^0Rxj8rmC;'w*1ʃs|jѸa$SƸr񙿸4_2?˕ջš?p"Ƒ5A-s:1,CP|*P{_)?^9_ 8C~37PGrX}F2w H,-1SS]ߞȩۤ=AגDF%jGGs\((*X8=y ,DqUٷnwpOI '֫5ÿw.P8(tT/C 5{"V3etHtDɦc|ۨ4vm^=ETEL LPơnd:\) %IK6c 8P?>z`ݨ-%.|߀>FJULx ߼7y¢Zro#6orn ) @Y <*֔j9ս!2VH%b qOP>9G*) ]TҌbCph1r:)I ҷ=g`ĠQ<%fݐl^ ^;k4 v[8Їr*8(>;*Y&U]N@E3V&zl/ ]EG c6iި ΅mz@[Е)D٫J%k}#Jl߃>r1 #;y1CÓklwo0z{7Tʔ3vW+Un.aDwqvƵ.Ռi}.5jӁ'U=r*7cU$W26GҏLR#@c~SP\VlsIvp|jM [y~c~ Q(}_p^)N{5~Fb[f[@W?.i X{U?-rZQ"^G@rJUVS~}y"_婛/YlBUwVm6< 7;6(l ^6㏐aɚǤpj*a%8GDsRrÍsnq۫s0lSE؊fdb!Ǜ{"V=1,J(auk\\m+ gzav) ]YCI[p(3l@.혇`rsk&)*712Uv`ߢ_rwTpr(Sw`tFxbv9P6>Z Mnb*(KOX>ZZ(e.;I&m1?^6N9/i uMjAf@mb(YGC1Zd4V[nVWZ -*2]K,Dm@-r_'\|hUT>/r͗ڄn!zmW)c}ȡ7U/8g\7 \&m`c SDFS+dCJiweX \TSލx h)ZuI.¶ڄP`2;͏jJ-x>wՖ*CC=G̨%ز4!zH} >ld7ܘ& J zz?{wn0 (ISvʌarmiOj㗍Y ZLI[%Q'Q{D͝"!g$qyXtOL8tWDTz[w0.f.C#7Dڗ;$;NEUKEN8D@rSS:*>ܻ:ьIgLKvzuE_\mQ5? Sp>| TT+]þqop)}ThBYtԺ6A@B衍C#- \IxrNzQ`)DD"8k=Y R-4v*gƤ0h?Hrjڕ_B.Hx[RZՆL+Kڦ) &RFĵͣ$ݾߡ2CU 9:L@>qtNY]yC~i6Ku+)a/HХnڻZaʇj+b/ eql~z0qrq9s..K^I]nGnݞ!2R"38&y)Tڅ(JE o<%EkzzMl$.&KzPf2E5t`~J%ۈXr. UMU aᒷ:v11é!wjkܖfIhh+;x|sxEK9O Rr$)[sY(RI(iVEtĊnQ%eS^9nA7fD}8EhMNaݗg 6T9Nz! u[F"CJ_UE${5. P/Pg9(Ѣde䘇pn0UWQ]MhDq&/ؕkr 'KZCC=CprcDs@ɘD?z m4Q%n.!S"ۭ II&8"]~FXA$T  *J6.}6tr]5s\77# - Qj j;ówNY !G4B=Ny[(KObNE@Y,m r*)){KdDp))A~a\MM:AB3(_O`o/r6L^x*p.܃b {҅笒P˜(^+Vff ԟ&[Ja яԫ䢟>uh.&4Qw)4?:""=J E"pՍ޼QL`97VC䡜9.#hLnfVlIf3$XUPqͱf;gEä;.Mnt';R&aȍ)CQCW)%.5cUuoc*lnQ \s±|Eqv|e[vEC5 䣤]`WVɳ\a ?5qH;}ͮH `Co^VG$eԨ@D9D!p^{/ :}`o*zn^ !"9@"H$w<*9Cq}#Sps`<qoQܔY^nxn8l\6. =\&b7> 9N~\7 vAS?cT9 ڌ E,Սi\-2~T ?Xn~m^zB4aU-TD"Bt OU)J(c0U ]4""`rp%f%Bnߜ)(igdw^N;#_ǹpƦf475e5 w:o3*/Q1d{5NMڋ!5ġܱ3rdt!ۺ:1h!l('bB:DD~%FLJJJR0`& &;Å>bK-V-$\HW 8 ^p.kmxɊz9ڴP3W [$y)7.Q#o@&F9t(l7g?ު|ed#k%2cqMK]N@^wOiKxggNuHZ9%ZC{++4C7H 3=-ѺvZ vj0 oMr$N.eDj.R4-cngߑxf/{B=koT"vJ# %lk( ܌U !>llIGq 4"L%ڪ)U:F[@wqW( #fD#%5tF ڷ竂 ӻ{}Wo2b=w`T2n5⟕Āx_/~1$Pk=aoe&r {nգ-w?lb`,v+K7I1nYmD!n9xiI[ǎ+^z]ȗ1n ^7f{68Ɂ dϺlw0 PI)pbr9er+-({kCAtCbP:BcqtZ8Ne?|LGϿ#;Tr VYD9Bhwo+2ԏQڨGo3%S1Djԍ@͟0jP+b@&t]*69 RU{ظ ^XHE;E[38Y;$lKb:Td$ iLcv|R;xKmEkjȒ^UP MyERԀ6 7pCIZr6 BCJ<BYi֣qCEUld2lT߁4jڴsվ]7x?=G$جd3!K zdn!r:ŊYiƉ/fݛbMڠTL B>JNiZ2gxuAڧXsGq֊Yv.V1EG q77u*s@rTqr>7eRx«qvv᷁&nMCv[= lo&/ER~rjѴ\S&HT,{hžAsIH)$U:D>np(GqP W-dydIfuIC*=ՑH\3H(b ȘGv*l GRQS8 |2I@_O#̀H6 Ӟ@b @2" =#*厎j_"N;m}L[=dNnZb[6".vD c*RٟznE0`+68"%ITHx*_]GJB,wr52((AIeǟ4dH'Xt YTL8S 9!!E@*e@ ?%*fTpN| QjB4a,WS) V*9G?:K<:khAt(YtR2,{SL\R mյ~kZ ? #&e(|i&(hzj>A <CupW7U*䢊&RGkuSE@Lhhebc"W`q]P*FHOi۹3E*@_EO$ jdB>4dD M#ټjqJH*&~xBGz;Y*nkUY$̩TPL>j2&^6*MV (2i3Q zEEGS:Q'HrMYPcqW>Ol69%TJ Vb`n1 v$D*|5MS#Ȭv+ ġJq0ȇvi];kjDshHh%<J" JJg xrX(B0,AbR`;^' M$۴Q1S /+/ּ#-MgnIڎ>JKާ$|]Z2; "e}ll;r =ɛ-WO@L+YIX o(ȍp],8W:u|QP T.Gi;ՏNᶤ٪(XQ5͟) igQ7U'E፞q9:8YJ,݋(z2PSꋙh-WwxG 2jq&;{frY T -pR>r 9 @h&qPLK&տT49 n=QO)v Pz4j :g/pa e:uhRH* ? p,I=q]l볈!s4P%&IP/"F qI)dy|aIy{@{8@3O-R z mvDݫOXN բL$ &1VWJ3ey@2ٌTd,ᕸ6c9/.(H,LS`oN\BLDszʧ*N&ҌJ\"6nУI{w<`ov-pfhkɦ_%LV nF"buD@h̏"]j9|nq(prɹ4Uhd+s*5SRbT8yBMۜ+QWUnJ/GAGjuiYn+[SAM \qQ Τ"d;nr!fZ='e=$JѸpk 8KZWXaE- ˶$8H@ GqL #6Չ6TUCNs#$ &]PbHps'&&L%ӥ!{ƓY#Tdb**r&Bs`bA5aG"7T6@~4ΪdQoCoGa6P8bDM=`v~u85"!j\6 w*-g3zq{;ΕfنDqRvUi'8Cgdx7@PGVp c"?%7m&7)c`vl6SILavfagb30A9IDD E#ٜ<`&5UС*-S)ࣀ&CL!%]ĬY(U\ GpшqI>+H7b8tfB(r2"!}B^t.GDD;LiB2c@(dSvuRAe ܌6r'@qC4(No P%?q">xzJfm4.lP ]5 Մ`N\r|4e{h-ˮ,RXxhwx@/Y3HQ!{bXzM$Hec7ѧN⭖q垗Wo3(Y: #JۗUÜx.,@ 6B8w%j|vef&8r":Gvfrw-Rc#YpIRn!핽)GXf"yQqcmQҬ\Pp.!ӻ^՜=up7UEk#j)ܙp8cHQ\Ml5'CF0  lX h^ Ų lQ!91xo^i $+,Y?$|^܌_jW<|-IEPAL"8T[Ki.YgI(eT=ue qW6'#9 uE2i6.X0< vMX D&]g1I5`x᪥O\W$( ? *>l`)R NVEK}wFL$ b1ws6% 9S&uS2}.Ǟ+NM7Qѹݿ#eL @.|̦glLm]ѷ MxUt iI4Z={$ 1 `8@FC.w e O.j&GvL`-+i*>p<qo &2o$_dQL~kԈiM7(jf!NX;^{KWRѤ g9\[k5d2A$@ aT$CWm]@`ZA׃܁ :7Dr!o $-8L0xeLk"? lnߐ w/"UQz@"_~*N:bQ/̛5Jl-C9 )3ҬZ ɱ1LTnjߓ3߆!&'H`.І oߌTymdJe;Q2ZJ+ߧ!u$?7=9 0ridjWa(,6"mJC~*ϵ{dMpdѹ7Gpq"\3m'ݢFliwKD +~>g=t;(~R#x!Ak?po <Ɇ*i2K> Ư=rhNi rte'e[v35M¹]N~E(ݼ=7+mpoNcU@NmޔӍ#P0 cM\.TLz#tKx'VI=% .87[]pT5TUB$xC`(\tLE`T4cW&6%6v &2b "z(Pڧju⹸Co5USOh})F *iҘ=8A)*D}ኃu%@أˢSMJʆ@止*cP{I'(:馨 **LclV5Q1 ]&nvJ$pC7,UȎ ?qvإMM ˆ nUU &~*  .^ jE"I6DT">B@0""F[Q *@+aEeES:hB"\8D CP)Ccd("(TYB$z(} - PH"͂L#bhW1*SEHh)Q`J P.}Wqe_Mܭnآ`6 &҇e-5qA.E-ې˸E&t5tst_Gߥtt64D@;sdZHh9KTKnې`:7P% w uj&VDTIA!l;~]f\*Fpt{pR"AɢTYTʣۃ}D\,9s gJEE6g*jsPQq#YS5`]8K oz[6ˋM,T1 r3.5r4kg1̥:(ldXp9Rp j#Qi]kpᕴs@0 Py]cSgs9]/xቯlU8b0(`at̡џ'i Tx!=3rIԬLZELDG(.kȑņ!Y& 9B ܃'O9beJ:U40H7bZ̤wr~CƝQ788Կ#wfr a8GRpc(S r?o/cTN=F3=k*ȷlR3 )0#< 1y@[.:[:\eʢj#:fв$mݪqK$)%"A$" L$& + 161mrOzLIq g5iY5<a!W 4>?~Gʫ-(NA *|ÞW)^cmޯ-S tL@@Gp\-w쐌Tk:  NIɈ$ew-y@D+5hL׻ xnnptp.F0]= #WC@(&́p%*a*6|ӉG*1M`9hӻNgپpر)0%*H!6}rz;OO$^rb&SECh(/n։M67A:lj0zO@s?IIӷ+qTӝww=hX{E6mTA$'NqDze2,͙=ugmYֺS-N뤮H8"&6vl`#BqWD^Jc?? O5nXҙQ.dI:ԥ7pƹ~ZyVFH A15L:x?ٸ۪J|cϧgB$X$w:lᮭ`]E7h H^S@;#G8) U5z$݁imMl/B!Xs"M4Aӕ[fnoƮW s}nu㇞lID9 Q9~Gczދ;4@GJ&φȫӚaÖOȞכߨczݹթ/r^Q&8>n@suoJ#d]b`(c%شYAʂwlj6o9"_-M3-љY]" &0Ot^=_fGLQT|MyGH_ ӱDb GHS+ؚ ~hZgms8ԛ$×$0̛3Ɍ&51Tzřp"Z mlCXd#NKItɪBwwҸ 8 `9N"LDGrrt- HNRj7rIӲ*~4ڛ\L.ہŁ bm~Q#m$eLxV3ڴf+f4,fl/ NKQz@?5-u\(JѲ 9RF[QW`HBE΢L Vk r]XY;zIppTjmWcCv5S:XWhDx੉ 6逘eXQc!k=|Ū&HIʩ Hݠѭbj)ē/Y$?@;5qVni(df3.lNo /$Z P&n'oz*'( "tt[8T<E*1Fb)t*ի͢h ba.YUb ,ž4X|`TRL/xZU¸߻ Elv8QG)PoRCpn ysy97G!i (kO:$L'0SiHi>v\v wLy [x& Q 5#)Mpx3d><*ʤIQjغ]c wM&/;1Utl:]pS8O@DqVn{wrFU&-8a#9̴nP~f4S 0[B0͉"L|f:h/>h,H7Jl`ݵy8 2V(H;}UmeT6=f91(x}#6ۊbdVL.QO,JX-m>&<5vWgNVfѢ|E pY (myJ* q64~߉]ZV=RqDrBt4G*iiA^V|Ync*<,OnBj&QC5qp2ᙴY7p*MD; 6*挟NzrB̵Mɭ5H%SK76y_9ZhtrTc`7qZjFx4I[y& UDυRWg$ޱ"/挠 ޗ'5(s3S3hi՜U)Rl/{4:M1¬3M\2QaZrLtlt1;^~Zm~}Ȉ9[r%&` D.2e1Æ1c[f\yiYihLX!.C"8[I@9U1OS6cqL%)e5]8H\1؂C.ΑS;V؈Nzv],ݳV8,w 1kp\-F*8nf抶/p%X$+6:2fX =nV| >}tZ$MK-:>msJ[BIJFɮ`@=|+ǫ/ $vs+((O/ rZ=rȠT)Ct<شdn 5aʥCQ/`@ȎpL˕!%؇wqFI&vaL&>z .U1{y6 1(Y(;R6ۉ"!\{*mkv(y)H@+:H>J9!z9[TID}"%n#mVQc8 ؂pwx%1e#tU#?sەI؄ MI# "fX5[^ݓ)tpawQI (]4mU4IjHW8h,bf2Κ˔Na@De$f=c,)t Qx`hȦNDTQ:E3Lpm诠pmlQAw"'srsȄ}̼eDl"GxѶ J@g Dwe*B .ESǦ4DB(:{[ErCWkCc*Mv>)arU\TS9SPs'CVYtU/)8hխn+.A9}%[UGk35nhW^X[ck# &2s}GI8st͢*Y$jRdAA7tKVXK0Z~x?ll(N$*(QkhiD1ӊo N%Tӊmp"ڝ]Ϝ ᩇ"2CwݳOO$bdÛ4f'ٓQLlL#STTTn`l3'A1!%utxGi-pԓ"Zv!)4RWP^W&uL|cͪrw.΁(%b]Ȯʦ;!W]{Q8 \ܵΤr)& Mq$">z,Pvhbyr3H@"^lLM^#SIf3PKb |M#wUMQSk?k9!xC`=֭9}䭔2(oǟmtcg(?2XS O>8#jek[(L]'+dHw|"DDD ٚb *Gv'{tA\ELK {)$E-˃$E2:EV}oiknvbCRr# =K>Y>grȘ(A `t-cRpsʨ;FQN_Dpo ^ʷ7W|Q.{_:65P:ɛj.\ւ16mוPʗ>),dIơǢsXLl8{qlL@qxN],tO Mg*4l1ra Tm )23 4|;$&ø1Pם}cda&KE2 վѓ(C h `IՈEܠgpo;x R\g9ӱߞ5.Kc/\KMsBr#p Qݨpk2.+M*"cײ"E+2zd PCF4u"!Ԓ雼܋J6-2a H~Ü934i+V.&)Ѹ ձ4MD{4Ѽ-Pf,詎vBsRЖEkNjNZXZ7+ S &8{nI+j.$Z!D:]#ېnyV YʹVʨ!Q2N\y.v>>pQ#݊{.>uӓ8zqXS@{D;VU&JVԪt i1yٍ"+Gocgy6z4@J#Dڤc}M۝Uh|-oxWj,!@ p|kFmy/#|&&T2^lQOǂlܐlPtdQ0Sf̹3%tj7VM(;tg\H>$ơ TɛElKnu˒# f*ÒTCILsyV\SwK?ޒKm@&i&b,Htlqƞ\7u X`svJj);T,͸?@?cΐ*)` qWPjFF_SPtApӋD'9BA2o;  Y}ɻL76C#Ve77<#BLɱ:+320jƦ-sN`gӯxըMe@\|^zJ U5Z3\5!J]' ,fH:{N%`(7q6)e&x@{jZ%A.zap5]J㕍&WieT L}KJNK<͓(sq (#pՋ16(إmFŐt:Rۉ Dy)/JY$ӦiAكʪc#ߐ[nZ.ŕpܤ)-J&E^ԗhMhʋ"P"8SbѐB.HՄK * GX":¹,[A1{0|K2hhk)-Ye< 79D)ێS$BV%HFIS,PԵ. $Z(G !UƢQOpжmT"MMToV(gi8P+䒹H$AUL @wAIdY3uT~Jn)Lb(\hDL 0$iϨ2c&) S S I4@=ح=;=ؠL)S)pT]nn(j .hV\]!ЦdU1E MȒeDɀMdY3uT~JMQI1U M c$`:A2`T hpK=Ulc@)$M2`䭒)&_L[M4CD& ꭊi&Dq #f PK USo=;m-=٢XIRb5E0`9r2I 8؉:8C\sߍpS ilkSӤ}q_P&uC"\2ITPppT85k[&)HPU%#{j8vSDq1Q#(uC{(qYF^Ά4 "DW!q3$tae8Oqʶ\H)'ͯ`쵎 ٫O*~]EQj1݀˽Hcc6m!ukr d=53&%lc.};ã[5ko#jŜ)ڬ^;b]rr>7iE\j72x|M"RIt&>MӎEO͑YW*e#X!IRx;韅oDTfP12*8b`T{c(G |U*ssDw6@h9*y QgJ E6n#PnB ly"# '/hqPO&n< .4i t0x "Lb#zfsovǙ$@:/%lMEruyS-?[d;yoq8I\%.: h!Rffb%pF Αwu~n4'0j ՜T2d2RV$9NNI5f m~GjlUv$!&m۽5l5`f]2NL,n8PQ< ^fvwuH&6|up["$&g']3S *vMiegXǘpvJ8~w34adP@zDzhJsyf ⠜. 8bEw@QUo[i&0H9 ɶݻ:I""-qWTsGHS8@|Y +"R6}㤄.L>jA囒jA| I0U?&jLS~pDny'Q4n#@ 2V+պoNtKff7E/7xpg`!g+v=#pHo6!J[cp|~#ۀ)XԗnFyǼdZ2#i;K&W8>^`,bl=$i B.}x(=ȈI(qp1N$ыX2TȘ)ġ&}&BORh~vj#$-i͛e\9O5nF#;9!t1~WJhQD)iS[pW2AܲZ)3iҨUӆ3z'TDEH?*2bJ/Z0r))8jʋҒSj1~UIcq5d-i.n8RC!JD>b϶n]N '6z;1+Pl>:=u4u'8[Tn5| Ewkv]\sI9F<[ŤW8DӿNWo@आ@}*)zi+=4VVQmU z~S)̭S."\a eOgwVCvknֽ@? kN\lA.;uQ}r(*uL P }^= {xc=DhKH֩'fj6HQ/+qG 9vOcwE7$5Lr^i'#7.w .fۈL3% {([/bQ y`6rw$X@3 ʑFVqPSR-sEaQ@C T3*(P2SKAp\۾MlɝeKWD>uZrDӷn$ȩ 0=MJzHYHƋ778"O@h6qݡSt]c@&Ep8c^w$z+lbCe-S;zQ#uULJ8Ӌ:jA웁 9]=C#@:xTs[f)Dk:qIG'Q13 :9^Wj4(&Mɹgv 33HT{sM<-Wf7 ZgOGV*|T1:DęDpMc4tfu߬W o[v. SGf;\8|cHRP^FpՊ1L!K8װN:{u$v:6"ob[/ڳJ0o(AVsW3 Yu)r3P TogGh퉐V>EdQrP)55̚mb18ĥ,Ne) Lws+[o̻+7f..2*L"63m# (?t 4s^1ӴfYL = AN!AV9;jF޾i"#nMƥ68yC#Rrv-޺1nsJcO寶R_R9v [I5ۮdV&;6 Ѳ!HB]q?Л\O&W Boeq?Л\O&W Boeq?Л\O&W Boeq?Л\O&W Boeq?Л\O&W Boeq?Л\O&W Boeq?Л\O&W Boeq?Л\O&W Boeq?Л\O&W Boeq?Л\O&W Boeq?Л\O&W Boeq?Л\O&W Boeq?Л\O&W Boeq?Л\O&W Boeq?Л\O&W Boeq?Л\O&W Boeq?Л\O&W BogLY3,QlW_+5:Qb~wOM T G 3v8)r-D)& /#|x$neE Ǡ++Zm&]ۭdN5$ľ尸,?n"qݪC9 DcpP(̋W![\zj166D "cbHORje")_m\لW&٦r%UobL阚!_nYAqx)pIȅ*f \2"pqpkpJ%V7@?#~DMv@LMP!|?/!1AQaq 0@P`pတ?!ڡZ~+FËN2vnr/:_ P˗H-^$js[iF R~xwsU#v-׷W#IQno4E,Ɲ@X=XR p-m)j>R(UV\ي于͂ͣZ9,2BWa06]_DR0im`AxQ^汈BXET1(E>+)h01W\?*+\}G,7n4,m0sSc h*oW7.ŹK~M&k5k<~-:q—}T.;@(Ab{Z}Rr'V"@X.ے-6(ю?=aVA{lkA)J]RcR0ZC"ZҲpe Ֆ)_;-Z)3^kl\ۿ\hŸqKv)@o.&У؊mS#~ߪ Ǽs106ީ0cG,8j>fS5R׃zV.3 wr_1oߏq%)JR)JR)JRܼ8/G >*\?e'>+&i͓ʸ o ~5/h[^9^ U&`hGrQc.N=ݓzXǦE0Žq] V{69/5!ˌIk=wdZy毪VK3T EF( Sv1 iV]'aq?BÚ Ѷ@V# ͣtʖl8!J/(a᫚Be*0Z: I>ʴ%y|NT'B&GL M?.D*+Ū\BrtLtAp _HOFDPV"n)`>+̴>9WL~,SnqYc0!c{"qTAS6'na^Kx ,9DE)eWAEY2ýe^S=z@l#L9ׁ-V4-˴ V.0%;ƸvJ&CFc70[<{0⍫7ݕwys0ꌺ}98=}f Yw3QmE]a' nuYHhl/ Ͱ]6d;qGS4FUA0f9'e_rRlX>YA7ApXY~0_E{~HhA m#g>gBTPs ^>,PhTF೷`&+s:K|k8O]l_59 K,2ȂR"鏘>sr[Um;.[Um\AN"0G2❃l ]n,g>Fdf/P>JaE;;kNU5 fz-^juŴUpmZ9^,eL>s8f:uʯw{"h X}=˓Cw/e؉(OXc?3c?3c?3c?3c?3c?0ܿB B>爪QG*U!'<{-Cɿ_xX 4`?Sgϖ,;f;V8rѫllPT?)m4 aEzTJ*WzT@* RJRJT J O5==;,H>wqRz*T@^*TP J^*T%J*T@T@*|ۤ0[NgL@C/cf%%Ǹ* P%JWzTT Rۺ *WJ*%z_J @AE@*zT!6 RP ! S5)/@*XY`Ubyc[Z*v/+0 ggM K;f˨)?ۡZ(B ^Ҡ@J b<NE*EE9znaT;RP^qQ"r. eeH:2H7LrC.]jJdqT|Z9PA<* xQ}(]y2ϺB?^M+l2߱@eSYBh3@{lrJΓCB*1@*TͿj̈́s?˟.=֚l'J*N*&4b dʀ2*<ITA@pIЅgVgԩP%@*zTBpu6B(!a;a_DptFSqHJ/Vbt&e?wEĴ=KCĔaZJ>ET%*XP0v=_v$X69/4Ϛp 3N n"F!.[N%[Mff>cjW {M7*R48lch?=&f6, P Ku}鼚ȉU[x5n[.5K91=Wiy;*J*TJր #៽nv̲T=!@-h}R睱r%6p772a׳s6 J"lW@4@ %GwS{b̲2QMCrFf^#/ Lĭ'K+~({M0%J|J+T@TGJlMj %[n^`@JJ@RJa*TR@A%YRzT P J+ҽ*P%@=*T@*TZ P GϹuL:c3˿y<#]ȿ_c~~/z~GO=0zPdU]>ug850n粻\y|^ߑU:w=I|%.3#v"ΰ[`\ iCmRUcn򪪹ga;|;8m,DRȿix%}@aqHEUc@Z5}B Ӄ@p@!1 ~ eÜIJ0Ti?t#ׯ^zv tfVh-: >݄>UVVfh)$gEoE_ u(wqH:E_ (5迊 "-Nep=@1c 4z!Od1 `DHT89ܳyBAO!YYLQ #D̋G}:6H: *Բe 2k}˯cy :ߤѡJݺ؋F=U`/*VeiHCMMڎ*=dD8G&(a-40nt8ȣ()WXA/PkjQq'kN#IL*42:er_m_+Pr;Sk]r `Z9%1@QrI ^o䊌6\|Uek.r2&JpKX[BLK֪j(mb}( 8DaRwYzneP: 4ݨNZdC_lL0yCw2?Tй9% 6H,E7r, Ge%@<ƾ zeL-T%V1ބ(DR3v6Sz9Z&g,QyrevTs, (>o˓^ĨǓI04FԢX8GOUr[͎aNiPj PڣUIb(:EH@ ]Z$޺Q7LmG.UgfO&fwU)jPb2&9rJxXaj,ZNȳr@hV(kz H1M?LrAQE児ev4 yuc=w90o-eٸüC 0uKZ|[ԸgQ󞙂7ƅ[n!Pp9IfFS5rܢcbJj`d+S#*h+j*iV\989辒@'*__-_(kuzZ"pA3YVw`KN2IQVR ybDCF]Au(x 8$"LZHY ~q59]Ȁ ޱs' wK7^1HD#Ҽ$Ajqm ,7z5谈,b8C)R[n\ [] %BVݕsh-A'Rtobuk`qCPڬ3 fjCq%KaFErYyTĺY#HZf+p;)f902V2<5 ,xv(i6iSN0esn !U08$5I#5 +5-MP EKHB4*oiXhi iV=ZXݛ /TpV)l> 6j#aMꏿ֜6Lnԝs[J2#E`V{y'p#_Ha:B-nk0b"f 2d duU ⏩z`.)g9o~Oqmn2]k`y Qz& IԘNaKBt@)FQcyУ\`+s?O1JiIY}TJf-.-ɞ"!k`嘖 B RfLb9z4(${kt`.ô unH$:E6րKXQF çOWOhd8XiLrL×M/l5P 72zm3 mu1TZaNˎ["CvBL]Mrg`(&}@w+P'IQЁw-E(HKhE&jjtVxcřUI Z=@0vXl!P̈́ș RFeq\HvVtA.P {8eCa9sJ%0i8Q3_Il2=b#@ ̒UuhT2m[۬[3Rܶ!-sw4FtV?$"16#nT8ɧv&/O(hا0C q2[E=N {*R@bUU-E1 ~ξo7Vv7|Aԯ )sMP :# vI8j<9i5jw-Uw>L* X b P7r`6Bstix MDƱlE@WJ85thk#^Q]RaC`5nh z/wVs9ɮS#ĺ`j:ܺ/.6t mOA%krZaR Di0DT6q*B<ٹX&RJrje1B R|-@cUS.05!x=ɋ[[\}8~EsT`.r [[[/|EƳ[;i #u=vƊxrK$߂h Il7Xa{em%?b=fzc T%?QHwW$5r1,OH^i&%Dt&Z1S^Q*%92iV(I}\{F:.t1p&Z,T@gFYk8uM^JL {Emn'vӈ3Gk[B`3mM4vEAH9ǙvTWXhS+!ElZ/deDAax/Ape B\\Km{(厦dq"kP_[DvÈ8XPDN q`0(6op"U.*.}vuyijtI xn•sdP>k.̍~"ǮЛL:l%yeL@UI_,jjh{  ]4oQ66V'n0<]^qFq8 b4{9%4'1&A)}pw=twCSi&k)~!8ᙤy ,Smp0# j2E_ 0NVInH\,[-#z!F‹ o(s7+P.I'd ]{XxĴ c{u/1 qBsGF`/J2u*b6v o[%f*ؽ\-3U6s%cq4!Īv)r2t+8|sk2&u5/SXnunl sD$}i†Vֳ4C}+D27䨝Und8 2V '7 CM(T_lo e#>6py3; FsF}> %5kV+Jq"kE=h'`dJFXʩBRZa{uobU u4*{T-cq tN ND fS֒R3G"tHq!6.gЮ<.ոU nYA+ #gL[Ģ:@s>MA@G6:[TLTj(4_h-,cjBRQHU6]QZJR`J Q`uQ0 L3hs|2KA ɮ a3q2՛{Bmz{(4Ke]e/=R]0tuPaWz}6MrvDOI{u, \u6)kFS^;7(Y& bCy9g{GXs'ؚWa@JVtiN!Eж)C]Y-{WX5Z2EkXFCX̨_;P+5v0@""as,`YJTcŴR%XؑNZ ^D[R@:Yi^b5bh(&#a +ym8 rkEg0}t;7WL8{+ XU(sШ,֑9w65[ꕭ)Z.BD.F0]!~"t@&Vr!\]W66>* DZ kDM)i[XM1-cͭC88}1hys3glΨDSX&l lզD0sP9 E' cA+Ci-r.;Yp &U)Pɬt0>Ɇ&]a-Yjt ժ*#bV+J#ttܕtu1P, ݍH+"5** usS\PFXxх!kU}rPdžGܔ;Rw\]ˑ>8 |i*%bx;6w`1NuٓLe[ 5&Q܆xD͙j^BvDICR:J y8ƔDfwC#W.I&1)n(sZKMm0XnҀV#hJ%EZ n< e6-[I9n[vzg@\:!@ 3{~WFhn ay$bY1wQF[6ݐqMTJ -Њ\ vo2p"tnTw}аtK]!.x h3e *4Ӽ\- تKwZ(v-m9VIc%R@(K#*rF- "V[ öGA)2hWf+#֑hiBdR/Yz[Jk_F 7)fW5e?"ƯBӓ#\`B{Ve,'W9e)@A-ެ:u=̘a@` :SEdYj0 r+G_gRK0?E؃%̪VqV`Isiys&^EKnI YQRRL 8;^6(Z_VVU# (J6TSa'JU ixhF{(XR7g!ɥZM 5_2Ƹ *c5xDG}njb:=ޡK .Xz ;FQCЧ0g!c B841_'e mn'vTDY "f_K{hHhUaj.LԵ ԢC{8j_}+ƴJl`(m ҍ~H¯сtGBH2ZXS;"7Ɂ-LT]nj턬DߣaU T,7 :$+ttjvD+6({8].D-eᚲ#ЋځМWsmz:?@:KԢl{+-aSFN7M;peT-ĥ70p ^T5N'`dv;}م`h):扌ٲ$8(D6@ 4t",nqi)13y2:e0e'}GN%$JeIt)ZZwt:_0#kp!N$Uty 76[d` %Za{3 |[gG ɧ蘠f O(: O9"z* p o&Rs\yk8jHTN*ШL( V#"DAAVrD* : /*E EfZI&>gsßEƯX%y1-N<9],ʥk+r X棌}^=EDkE(/HRgMGJV p*Tklç,No|G6Mo@kٷ|@E<JMb]~`9}vF54FC'M7<`;((DOt<5ϐ7XBo`L liȖ=4`SB98 H ]HLjn Ϙ(6epR$N궑8ꙈNk;@BտshRu{K"RVAo[u(PT)\4ln4%h=ʱYڷ HC tZ0j W$@h>~R:, @u]4(2À%;Wy.Wv<7K9.{sõ~´OQe7Ō1BcHvjAaU*@LljlT+,#Mo qp+ICMڑ.7(zKj.lb0$'$Ed_# ǏB~ü(*QeӠDh_+CA%H'XBǜ:WAB!gO{#w+jK,6p* -^ Js/.n,1hQEpkZEM;k84<Z5 0р2U\N!8֘;( 5AL+%{04"rIi ܢ!wnOIy_i )! iIbno=qo* M@heBHw!Mmz6$RoJh;@)@:@z30%tRDqPRl'md8 f$9so`7V_jMPp;Wuim:"3V׮G,߼`h`,Od _+pQ]A}j=A%|E\@Yq/zPȮRkrlԷ9!55hK*?bJ;IњiAׇl-F#r+mE#{uTl+poC52eꭞlt@2% T `t+:ޜz(.`^& @-' %`1='\0p] E Rubw6 򩡫{$# \zgKoVm> K{O6yq3ۻUWzS %0,[}$"+@ԡ\:5 58w_-!M43IP)ZCjryYMsGҽT\W.r1aԓcmj[KXfĸwaMf^M}w|lĴ yd]Y,UDզK*Ii}Ų6.!flZ _,9b:f$J^De^c)vCZ .`ЏY 2E*.Yy]R&yF]1Y#O'Gᶄ3D,, Fb&OpUY)-b WQd`B_oemu4`ɐ3hukRMm|B\Q1WfQnZ!8#[Xpcemv:ӴI mKu/Jֶ0~jY-`r@hό %)̳pf2X}Pkqb[7#fߟ50bX&=r2^ d\T-D77_,h(Sk*h"9RgF1Y%`7 +PޤS-0sQ2WRل@PӘݹ #U̪l8s|ӯ :ģ(|J:ģ(|J:Qt>%GCQt>%GCQt>%GCQt>%GCQt>%GC:u)SYNe:u)SYNe:u)SYNe:u)SYNe:u)SYNe:u)SYNe:u)SYNe:u)SYNe:u)xg6xg6xgxYgxYgxYg6xg6xg6xgxYgxYgxYg6xg6xg6xYgxYgxYgw3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w3w?+\4W4tRPkoVxqhq^8rptt27hCpf_/Ib]=Āƈ\e%iiz zB8 RYz:_o~`x uZ"Viw UekɀnOnלZ73=~*۳QJ6rs_+;xmaJB C&{:Q`*88Z.&;ur1cM4:DKqqQ{9Wsn%#̈Pʼn(I&DN"a;KE&bzu43s{TDy-Quej.8lؚ{JS.nQ<Jan&j[a_U]6r4m%!IJǝ0[** %˘$))8[:WcZP(v 1qo 5Z#M-?-lrb1><KCTƥ1* (PB (PB (PB (PB (PB (PB (PB (PB ( ݵ>PNQ& d@a%pW- XYbA6[7;lO3Ŵ]a uaR6Ual-45".I^Pz^ YʸUu(+?,Z-TpJR?un*T;vAPkU q `.T&03 h05Zimmm28?@@ Dj}OJK̠ h(QF Ͽ1@N  WDJJء<؀ ׆{\I$HC nV!NcHdI&A ҿ q.I*?\}|á8E$$$N P $$" $`La݄}xa5l//c@ 2I$sL c>@k"'a]2$tyd0fDO߀@_sYlayDh A MH$ AᱫܹI`@AI$d$o9邀" |_`.XJknI$I$I$I$I$I$I$I$$I$I$I$I$I$I$I$I$@H @@$ @A$H@$@AII$@ @@$$I @IA$@@$A @ @@ H  $ I $I   $I$@$ $ $H @A A H A@$H $@$ @@ H  AI H@ I@   @ @AH H I@$I@@ H  $$@@$HII I  A  @$ @H $I$I @$H  $AH @$ A I I @AA$ $@ $$A$I I@<mo#[, | JS!Xdevw`( $I$I$I$I$I$I$I$I$I$ $II$I$I$I$I$@ ppdER @k ߝSVϐ[!kR9p 4H ` /!1AaQ qё0P@`p?ڠ+Dc1[V} }YEzu^DT튮ֿ%k-:c=׮ej2/0۳>!^fy2 ֠{\S^kTS.f eןYҭC고=ƒ*( 35~m(eU.1z>f$m_ZЌ`5\] QTWV}O0ӽDjuixҥ;1wVlĦQjEU z,3V>a!f)黠x%D+fϤ Efn xa_*'ѯ.!/xڼ*1* hj fl U]A*iJ! ֒9lrL2vܼ>< ѝ}H 9ɋs.RZf(XuQP _Z`)s(qG%tpcŹ !z]Ur=M<(hLn!` )J^ Hi=' s{_xe@t (XB0kpDl` bT|=*X ĸ[s*+@-m3vf``4>\(=Hmn_7c=SPErY9g,圳rY9g,圳rY9g, DVVvNN$N$DN~߼8}~߼w8?x߿ퟙ?3~gyƜiƏI߼N?q%8> nt\ww{Əw;w|ao̱2  XPVoY0/| OΧ`*C _#?g#ԯ_Z0žew(E1i_=kbƐ$V.8]CqqKez"[8:8'?r8'/a@B}y[ǚ"/x~OAokv;w\m)4WXR(K/Y,]ּ֙5? !ηy9.:^/p }el#゛fE-/HhP]u.m [o'hpƙDu[Ud>`Uٮ 0*w 4iA6jzCtףU:YJ-Au(i3ﳅ0A1̴lsT{@քنvu®Mn>Uֱbtc aV7pgiYvi],.& Xt% D h^`u_M9{yT" l, 0nGVKDYm45_wYeV kh[0eN^ ֿ`ѥU1%]uzlVvJ( KN6]֥r~-DK2=fvK2ʖoZnTJ 7e\ZdA $"_X"ШVT@˘iQm BR[0)mtk,*6YuE:7 o񡉗֯"kԸ1UPTNS;fJ^Kn]4\[UiNAִM%L.\!PҗMHEkʊ}Ujs. u4a;:o0EYG5R([F ]k@Ү)7l47`u4-kAg2nn5 0gsU%0Bv"1ZhZ="tAJ 5p)x4f%4j %m=veU9n"wUW W\VaH S)ub+Blk[EIN+ өuFT0찂uoc&ʸ|t>]JMƺyM,Vޝvұ][ mwpeΜ&42{Ki(ksYZ@oeu hRG Z ӤMvDZ@X Mu鹊i]6h-7sq98~U5'sq98sq98sDG-&!"*rj*~YDK51v25?טw8MC~24` ]oS >#G&Lyx [ =m_'!@DV W*?2_Y`%Y]^ x-X:d"Y ڣ!`]Yhm܄lkM[wDI` p[Xc{{E ^ :v7cTUHYL)Ƚr\NSOR-ߖ+X_[ [%BU*^X4)0Yh9o"|]W>xAw!tZXmmcXLfkH*Ή cQ5C5KŸ@ntj5 aĽ[;eqT˭:@IBTWtcШjoY"t @Sz$= AjJiYt.v#A>8132@3^*GkaQJS9?J0Q  H#?Y-K :+fؔ<u 4-!1AQq a0@Pp`?Ut02HGU2SO$.K a[y10% YxJkDtK6 k2po?W̘1F,_7,kѬ79#X40 W?pf%4 XT(JĔ<GMLX],1UAR? ;p'_z7WH 0CAkȀ| >)\NB UVh\PJ*P76/Cgg(ӄAY΂DOܳ}gxB1GrWx(`yW^eyW^ey7W^eyW^eyW^ekVW^eyW^e i^eyWSy^ey̫Kxe<ϾWx 1I5渇+_>>_d#,S(<˷;;4|Lʃ5g@Um Tp aõ= fYHSjZO:)$0`cķeTr1/ F]%Td3품< 0 эjc9&]"4'qhHxx֚(sfV,Pp Vx[}PGK0B oŀU`B3 ;૘&E-R%(Gl3,3S&!ms5l'el4WkR]KX0*J%/fQ&.P#{f8NTT>7̵q0BҫKO?sO\^Ɠ.I k j7]>[>Q}O>^7 gԱh>O>ԡO-,-#{@ dx?% /bk)@y|EكOx_u7>"'X )RXIE D>B8#tA L$5V7Q@`VD bY0jɼ@$TШFt* Wie~"x4՚ A@V& ecW i pW{4/\PwP2J2d MmF a1*/lDrXd ]ȌSx üa'b_U@3$鬶UUUUUUUUUUUUUUUUTƌJ=! u4 S:`J ZX_qܞIN4< ]kPkN<f%8, lTK [?-2,~aT5f 2G3*`F r]d,5Mnp<5Q`T*ĈyOo,Q͝VФ[oavZ =A`ZiH_XF)AKw&JM#M$z?w>P zE]` ,CH t5lBQCV̮j,VU5@v>I[\ZVq]4[o\DR-w.^Ur}Wk=0%1f_@k u_:FV{9R˜[ZF r ƍ1e3!Y!/JElMU | TQD%ce! (ЁÀfns(VRʯ_S{-/U뚸R#XUT(PWpWs.* (ULiBZ:Ru{jX2o_)å(hXtͥ]+BUQiAd2+XP"4b&oh0:=Ώs:=Ώs:=Ώs:=Ώs:=Ώs:=Ώs:=Ώs:=Ώs:=Ώs:=Ώs:=Ώs:=Ώs:=Ώs:=Ώs:=Ώs:=Ώs:=Ώs/!1AQaq @0P`pᐠ?ڷ ڨ`,sA(Uʐ $1+V.iS6OA @U)2kJX$ꥂbu,U qf팇t9 N"4 eY5ŧmj~(DHV r`&.G@Fo7j;ZvMtWX\lHK7c`)m"pm"Ʒ!0*L B눲S-ވ 00*8JtqoOJE¥!䅳" 3 H)Sm W8n@!@qh4=n5v'd"dS]h{͉vkO cj!u5s#:Jul@MJX}JA|pj\@6M⬱k A| OÔW͍q"wbFc=Թ(t`Wk (;oљ#a4ي~WJ!97>k~Pf D{C'n菚XC?(Y3t4#V}Z ׋agXk ^Y좤N@"4% !"+p` Eqyr0w;kW)JR)JR)8=43-}>'G5.ߛy( kS?_9S@w UyͿ>cܓ瀌6˿&X%m-ȧQ<0t"` vA\;rp+g9 Gh-"pHO2Y4d~]s$޳%"HkNz(<}eih6 4 ?JMVg7ɷ4 M3 1k[@i.8MB3L4T$|C24^KuP7Tiٛ%6+8;@Gls\ #&#d:{1ʯubc~h\_Z  Tw=A@G*ZȀn̯#e(p d ph($vjFQle7px?\0T +%aP(J_dFU6`0Ҁ*@ {Y` _ =jq."LsU EŸkE 'ѠhAN4DKtO"VM/jynpNpN_UJk`D A-X*Y`D=M~#RCU YHgrMP&`ZspeM*!ʴG|2hH(ͷ{ T8]kـ" x}Ů"ކTZ`[~J0% asaR&M j :MP(zΜ<8 bc":Z#w`u/G_e>1H B6#^V(@m#Ed;yQ+&h] nXKr K9SHB-eUQ.>0QMw$v8WO0 PP)UͶ8ޝanE8ͤP,Xx+gp1`V,@7[!>q[$) ~&V/p/fxW]` yp?˃psXCAx o8ts& ;nKnjL vC80OWZ =]1tpNf_9¾8q ֫oY2.o7t0C3k9o꿌[W'37\ \Ϭz诜aο)C<ma8&jxl8/q]4bS?&7|ѷ<\Ve D0&x{} w?. ;o8q^] }W,ތؙ\|gk㌦F5є ǜg@a&V{F-8<j^3# 5瀩[d5s}pL`s7%8>a7$>2l< {]3E)➔\tkb&T\Kn!EۧTcV7YFKiRf;8 ߚˁ9s`/{߬_z쮼`{86-0x iGk\3p6d$m$LcX-ஂqH -)Qi H@8m*aE{EvkM53@+K(9hCSwh@}I_?dn}r6~؅LmXh "NQβ18@Qk^C9@*zd`g}B-/^SѾk{D5ЌLjM*!`q]A):3"0vp6#:`C\S.N9t̹E>OkO}2oA(T̵-R*!SLjb*"(.Lyߐ!hD' 'Okٷ,l/XXP 8Ym.P۾ξy@#MuGvl28Mf^uB1v y''ȗ>nVtL]['8,zRne]2Nq9LY0i7,t^ԟX_3贈7O0ǧGt>o_<bbQ(MDk4yeH i;PeTKy0 {ip4۝j0>#68}F!\PCxKC-kԇ|歝Ɏy& 4BG 5ksqU6X[ P7CV˃n b"[V=:E(̵pga=VE|=%`"G|f Y luϨxGs=p&CX\=ky]]2l4+ZIxг6ESb:OIwΌ0Mp8]o<K<u=V`p&pͺ%w|b>8AYO6ݚ ΄#_8q_#_9¾8q 'sa{sw4@ϛ`[ #oz&h γOwx0';s^.d5p y#x+/`{;OzW[3~&xp|x0=5gל<9G|焳oQ[BD>:b0ewڏ=cm_|cO,8G ^U)egn`pWn;[28b<$X9a<ΰ_|z ΌJ 06\!tg'X0OZVfFx7 7y+|a(|vCpa~؎>X|k:s_P{':û3` X϶?h#("pcoȟ10^G0>>ܟG;~_?0\gܾ_۝k``{iv7fG8aڟGvO;OQaŠ}L3gϩS>}L3gϩS>}L3gϩS>}L3gϩS>}L3gϩS>}L3gϩS>}L3gϩS>}L34FAZ0 YÑ~." @ چd*a*^ JǭS~soHÇ8p"‡F WDbGо,#Px)Pi64=ω?kS.<PIB5P4 ,B!@l*HH?/O14^ fLwV ǰtߚo1NITB7.S 2``kzcQGTEU\ ??4|c z9*dT$UaCs &1z JMJBAh +M1+# p Dp`F鸆boY zիVZlX(-ʢh@H{P>-w (Y&2"{u5&)GAӜqֆ`>xz B2l {u'̝!;hp!,Np `kth-:јyOƺPEt 0KƐS̤Etdӈ6|"G58kpRMua,L:G( LoY5AkdMb)y+VSe ] i:Ux Si r.t{d!gZx.SՌ#ChV28%,d[ Zp^3(I7 &#q\q!xXל{lFE*r)`Ww*C-hdh &ψp J03F tN񊣊erH ﯐9)k46%PErxX"6p@K @Q©.PJHNT'`a*\]^"'B23XkBEzTdh}T- ҭ~@p`h^Ʒ h 8$흾iHXp0l+_n"c#~xDIb =p +"@BJ>Fl!Bf#HUW> APwlEY;2qTsnGrd1D69SvؙbcfX6{Vd+ 編ޣTQ}J$à16`-j&u@@uI 0`J^ts;wGА6uyYQE PQ(q? ~yl6a~m;TՔ^ڱyz){Sc+OFj+Đ=|Kfě8l9|8dF'gbb"lsd6ؙbaJgA @ >4~!@tah\o7]DЦ4-N8lmB%p\fg<Gb`8&1{:J,/pfxa:[y$ 1b-Po_͖DXB)C 04(LfHX cꊇbbC`I̡\z?LOQn62=+1/GJ fJm8|ui5kE@\P j{GKtϑNXb7#j߆b!A2z! ERGw*E`S qx4@J||^KȄGgMiQ!`)G *l95G A&+21U>#!ʇ#ȃw!H) H!^qҬ1[7CMG#4 TQNJ!WX"JyY;-MuV|ŭATcDaZKR4 ` Lp>bn?z0; jDŏ,t @@m}kl qJ;o,|u]5'T`;tiWZV:AXߖ|V\UK0#!di6Ehww4V4z`•iq%vIgL&]C@ 40d " 5iҍN1K¥37]fS(PאL=Jfh$5d«I*CGh0-,$Єwɯ!^LH(@f 76ZNEz]ZiMṛƐy`,7h`(dsjBI*wʁnhX#}buf"FA᳧f`^{)M,(e IUGDB\sB dj$P]#ds=ԓ%ͺd  7y6&D:g*S&@2l9z%Jy"V֎̱؅*;$tyU]@p=1Tã=oَs]20peͅWCJ)ո ncrF7̽ dw(jUz2f9z::DN˱ y_#- QE' >9gY%-j2oq_I>0GIڃчVr'6czUs.왭++O W pl".-%MZsd-NLvfOm7 *Ka5M98[#Në!Ȣ:][\f_0F)H q4,{PRJ8G', .Ԍ] )DE03qH̻IAO'L 01J#Jhp6I RI +uIa|xи| 95MF9NXd7"d|.bi/,%89LjΒP9VpcmR``ڹئz6]b9Xg+$PhB7L::E̐_X ᰏK ɴ70aZj.֋j\paO[ Q ̽B^z!'Az& H:v<0BafФhD<+Q"4 .eĺG}DmA¿|o'sP8:؝Y@ܷto ?QQt 9a-ۀFբZ4ÚCƢ9q "6|l)ߒHAJ:NpC X+{Ue9*vy'4@iU@$sP)A. ;,"⪀-//#l->_r!]e$aF3 am+Lȓ󈦥M`IdInrPJ,[26ᕨJrL-@$pi%M"Mt3`"-1aQ]WxΗ!% @ѕ:sM11[E;#6ъ0KaEwe'LV]{L) /ذk)T Qq0( Rh+7(ӻ)$P]O@Y:SAS@(1a=/Fݴ{\*i`c8fw+4h[cYiF6uD `:xK-7om@! Pg8x<($~ɜ7t&%%e8IGЃ PrIJu)*|+hc4(.2Z  Ş|s"u. < 襘ݮkm~WA\xHl.{vOr+] @庭>!Y Tl :d`VS8U%=_kb6&&HGNx J#aaP5,߱9xiDPCRP0eh+Tڷ5G_ d'=G+VEށ*lD ْvI`a֪$1/s`rP-iM)aX OT#9&O|/F4Y`~, *{ R,DT` HM=~ڙa /$f5@#Xhqm~ll2T)smqb,gN 1`b &ɠ !!zr ¨-;{U&xčd,px*zlj'>GFyx`+CA?1OEv1cdا1`aNwwV9ҥd220HJ )0#'jgeY 6^P"W_xL0ajdFxO ls] hjD`t%h vE#K4 Pcc98$e B$kwWɌ{4@sqםH23@^D7m B كtB4yB0*J%RqAp 0n`ƀc#%74(4NXZc 04dN㿴E s`_@Ph [t,1rdH$u:T#JZIn UXraJw)CSI4APD|9/!}sIm(lޓ=ۋ@V+ P&*9g =8 bW, T"e&ӨTSH9aF t$ =:_nE & @":qTyUIw{~ey)n""P{,H'x< k%4V>Y$`KU+d3ZqEAT sTb M&` FpX5) cJUa 0ix3x7xNJDYxd?$YRϟ.ƕKB0%뢠>s3"5F mW%bHZSb4qTKMoH[~_Ť'L(F NWHu<9QY*<5MT=n> ,1[0C(Uq9DPGwiFCErޱ@*e]EMħń/9錂X#>DM"w*} l˂n*~\5hÆzx/DʮXFӞ BїZ"ܐˀA}h4b3!ʣ@y(XkHm w{Y[XxY}5l3<# Amrtlܔ=#(nж jo U0Vb]X@3a6&Vzj'хcү+]A ᾎ glo` O TIp1VkBRlQ-`#'p\X R,p(`up4$dt'܌pr얅ug th$Uf!| (h(٭ۃuDv&idnrȄoF2*zmHِDeE~pS/E lù ֦GaE4moM&w+gb_1f@CVD`\ 9$Hd,z3J6WhI?6oњF`O$C jjv#Up(ԎB.r[T xn6 L Ns]0 _kQHY\ k~uИd&X$MXsEMBu SpF t0+ aTk`HBXSQ"(Uut]z_RC#d$!:D/I8.^:-%JNhts(9:4tiSIU9G= 8y/_׀f@Ǽ2Z!apj7D%:UCO&mb)*jIN5\@X举Ker˴&OD4='ǀLq gXUJԈL88DRY0.ʬ U]dЍȾrp.划QOG\ň>ED1)9" #\T@N#K~sܜ€h0 xpawmbQ0OGe~9cJUafRH۞JJ,4Xͧyw@73#wm(*KEo 'r*pg*N] d7Z- `ܸ ͨP)P'jY;Xok%j؅r܃TTcrr]W+g wS( sζiӞ/=% 66D]I"4kBNO⡡iDC*ˑD4?$ @U "OY HWhTQf6"Jy?R2!ˀ"(~؃T.-[GkJJy I:iJqҔOSIq wAp AB+ W1ܥTTQwn=՘;)H&pw 532S%Qe̍v% KDc X &0JRQHC60+ķ;oBw"mf t@"3 zl\`&eo|#$JqcoM j[!Jr@Xh59,НV4 $lF+P!@< Iu#'dZ[$X0Lۛ r<{̎(E.fK"_Y hh@Ea@@6eA_now3d OB (mrUT)a~]"Q ٷ|S>Y~@|͆sBT`mŽEcـ)RU]V"ascR?L#ޣ юh *%ȊYy2g LqJ(xox!X0Q,QDv лLc ݠmCG9&hOH)`'QKWYׇ~xM"9ATUfh~@t}@zbDUqM`"ʫƥ "p^ܖ~ JѮ(-F=b0EnfFl*g`h X(ѶV>au)Tr)43`DAzmWD]ԅH*?r-AAZ󜨴 )4 բC% &vmP RuobRo;lH10&G5bwPeDSCȲ ]4jԲYW>"̷ 1,`7XEE@c 肌 KNg4*!KhXЪ;_1GziR,*RN5~- ܺ%y*1D)lZXfɄ 0j ,Lo ]a!q7k8~atKIZ/x K"[a V ;֡O'.KtEtwݐD-d@zBq_@Bit&ϞrfCJ(+y CI0cw9RDb)ҐQY"ؤ$QhKx@ɗ@(ILA|c1aNAc1c1cK=,K=,K=,K=,K=,K=,K=,K=,K=,K=,K=,K=,K=,K=,K=,K=,K=,ϱc>}3gϱc/OݟC>} 3gϡC>N߳>}3gϱc>}3gϡC>} 3gϱc>}3gϱc>^>} 3gϡC>} :\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\rCx E]9ߟb_?̓}sʰd9u|{9PW Xfi,|wY aYeIWdwYd;>x DA4҄X43⪝2';pT G-Pt pї#[hA{%/?#`l9BlgĊ jnΖ";eO 0Mq-8S"7rņ4H(2 8ny~y2@TL8e)䄐m8Bf`5Z`y9l#$Bbq Ma }Λu|g c4LJxw{PG@99Q0ƜKLZ=`"_UMdPcŚTi9Zi`қX Y3B K9* }d+aX+[E `E;(;R@ Av&Z yCD\ԄF O .tn 1vGBf#LH =etAn~^Ի\&Ɋ,o8L+%9Ń|$]S5Vv !|//yuSp:pAz\E 0sWt@^M6$"m7 *TGQ Go mEjc_F }8T5WNNrÒ*r\ aǰ_}\zt):(A޻-Kn՘l H#MPX#8p  ]8cG <=eMQp)åtEڸKlBlv`FDN(q%_] `Ʒ]8]ì6Aigv# 66,$]Z@k͖ +ܛD` PL hF# ͍ $H*䂛9bH(8y" aۛV`b3E " DQܪiXUsNP~o1 @ @ @ @ @ @ @ @ AOBu45u[F!. , qyDOcyA * Hl5$?؟VKC')[q[)2IOy@8c7LX`#WB:T~VSjؙ$)  st80j>}DFIrԹ4!Hkr"SʇozT.؞qK`wh<ntfy-2.11.0/docs/static/img/pwa-install-firefox-android-menu.jpg000066400000000000000000002147271462047176100245500ustar00rootroot00000000000000JFIF,,ExifII*bj(1 r2i$,,GIMP 2.10.302023:06:24 22:29:28966 %2023:06:24 22:24:22-04:0057443ad4-99a9-445e-b3f5-5c112e80c09d s9JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222s" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?+G0?NàU=C7,T~SsRAs)mon%,X6ێrw9R0Bi˞cE}rs(7?id>f]z+·ċ45A},=DFc^|>"τѧû?hvjV5}gH/->w=I|Jϋ+i6:gJ|Spݤ4Y_gduKA2x<*MnVk]ˌ~K ݸ 0Y)-;(EPpZD62M l _s;tu9}ӜS[kˌԣZI}U]{WY2Zc{v~еH"c` UxLҴۨnT+ۆl M8jRJpПo  ϓÃaVنpQYvJ!4-$:ݝƟß?O*B<;>Vi"~N~%234]3'G!>⫠};Aw,$M? ??ޢ4}!'QxGFFUYpq}t5yT*.Хo}nj.JEmGESGVGZGҊ+#Җd֒mO![7.Y A~" u/,Zx @I緯=}n7Zv3.:O+D6nԯMu'^?.: 7FING5n̉'-zΡF>`i\%ŒtإWid?#zzVjfsҦJcVJ(Z(QEn}in}h7Y-?J$=n9XgК$k,eeOZQ"ZvAT[Hg-z`S$y?@h()NoQZ(?k&([uM[u@7Xn`O^_S4,UV z%6 էE 8ʞ00ȕ:g Aun'¢ͳ 2OjfF<1z~tuY>_tb3"#cӎ;*lPy m#8VYUԫ(e=A[JАÐ{`Sme^glm :_[a\@QEQE#?PCBZ7Ҁ(~QQ@QESd 5MPZa9Vln[UZ\?:gެ?-FcPITn?-FcP_7җw#pzzP(կҊ#VJ(j(3g>KڻDVsx궑5 &+bm4s s8j҈bi'9(=uHC*̂ ( kS@cVJ(Z( ~3 B( dP w2a@JvXv@JQDEMUE}qVjii=VFgw>TpO~wJ[uQm`j([w'vq*[]Z HoQS]YYȌNT.tC3~uJ̑3"aVq֭)?R~ g_МfT`Snvn'ҩo[)?J?生M$IwR{r3Zo<(޷R~Edo[)?J?生kS_7ҳFR~x]H4կҊ#VJ(j(nmШ7m;S5d*$1ݻvA1>Zc\ d/̚ګHp Ӧ+NRʄn·NIϜI?G)?_SI,=}|}zƢo^G~נ j+g|}zZQZAa/ԃGd?kկҊK9Py5sO-ġ;?>mOI"=D8ʄuݑK>\fz>ePF<3Q;~?79zEP/|E׏LXmܜӭ_rT8RES_7Ҁ(~QQ@QESӭ9@rLگ"$yt=1[3hXFppir7m7w 9#'ToDCxX>`tRHc??f2.qjFGn'2d򣊖֌ZZkR\jQDEME&En}inL=6[ 6=O~lL)>>fT8cg֞b @ '>>->>->>-5})p}Jk@VJ)##_<Ҥ)$},R$:~T7k(8`2FF?:/Ilc4K~ꌜ v09>lzPZg$wЊh~bm؍P὏dm=TߞU |Vwϼߐ]oRJ 1?S]oQ7(JF/C?Ӧ?#U?}>~B%n_;v*g YO?KJerJe}Hߎh?ک<$:pU`'hXկҊ#_(7)?E&L%{|Ou҈JSTFzDM;'O ICC_PROFILElcms0mntrRGB XYZ 0acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBC     C  8  @9pv1$#ß(e>ѕ:X19Rp7Ahu_DʛѨyЀjGZOEdTSвSRT==JJ*T*=U=-JRJRJREOEJPz*z*OEOEJTU*z*zJjTTTTRx/*Ǥs*z*TTTz*=ElRRROIRJϟ~:RlR+UOFǟ~=gNYڦ^Kf+eJpw>?^>y7QP* ARTZz1w*APT*d|N6ϺI߳ƺ~{-JI$q3y@`/g>suSoϿiwq׍OFfwYyhzcylӸ|IO}+eOEOEJRS>8~ӯ9Ӏ4\DJaj'.q=*z*z*=%J*FHp}1brJ5[,zdci+W63{{dyTTU=%J*T]5c[WSL+h@ZW6I'ݠ*J!;6>`ٟ~[ecqtEB8G564(Z.8hJf#42N(Z<̓ l9t)y='hO{<̓ l[W_7V9$4,a+;%u_5kG6;۱unLN0y'- L5ףfffI BS6pBД̀FidP%3`y'- LffI BS6!SmFidP%3`5c;-eٖ/pBД̓W@Tӫ@a *$k5S"8hJf8i]N3 Սy'- LffI BS6pBД̀FidP%3`y'- L pBД̀k1:p@L- -tπpBД͂G zk78#kkTffI BS6 \p T<̓ l3O3$)8hJf#42N(Z<̓ lZ4#.#42N(ZkG㮀Jn[86]0 8NpBД̓ |_[Gi'9}txrkq,N_@y'- L53v#B{,ܾ,K` @y'- LffI BS6pBД̀FidP%3`y'- L950y'- L9<3O3$) ô/.pBД͂GhffI BS6pBД̀FidPXpj9YILffI  3O3$EBZ|QP AI0f`2 y'#*DH[ G]=r8rۣԑoSktӫGVy'- L+,N ̈́_4`4c(ZyWB82p 3O3$iKFidB|tsP<̓ l3O3$)z*8hJfɋ:c@A.g`^nTѪ:3O3$)Wc9qbbzkif\Ѫʫ\˖px˙#]6F7367?@R5 \ëʛ>T>7`. 3O3$ KCjtD̀FidP%3`y'PI͐ F6@#42NNosK6ucFid,˃hy$-FO\"#>b_ 0#42NnNZr5' 9EC]8%o¯" FidlsRػ4SFbq]#<_ds֤6K:tsȖqͼFidlqɵ&u36 y#6- [FidP%3`y'ƙЌɔ@*x52Nğ>3fy<(TS쐐pc,P- 9""##< (EOGBBRRS4fI CZ,ze(P=萐͙pB֋"#4W $f ͜⻴dRRS6fI CZ,GZ)>e&Bk4cw=dl̓hkEϝ4hd(P=쐐͙p<(4#3"""< 쐔pw26""23PROGBBBbS2fI BS4pK7=,YùFidr;׭ߺbo,"韞hـy'xM^=8-:o7;mnZ9 OЀ7cQ-"p" vfM#42N(ZXBsC9MlVlFs葢Vec Rᰛ u8hJf5N@x=OdgJgx=3O3$)8hJf#42N(Z<̓ l3O3$).HoffI BS6 uD᳙r܈ 1jr|j~dOdpBД̓VoGm5׸U"=WV6U/Ly c#42N(Zk-{\Ɂ&.K\PǗe)j]S3O3$)8hJf#42N(Z, 8hJf#42N(Z a3O3$)74*;53~1OHFidP%3`&H&MRMdxtMffI BS6 (5vgNa4%.<|]6:3O3$)ƙffI BS6pB`fI BS6P t3K3% f!1`Fm3P^-ꀴ%9FpmD"|Fj՚ jBл?pJ)BcNvB PWC,@#5jT`;z0S65:6jc)p3VN$n0;[֢pr<6x3VN:AQGZսqsх˯dfY#m o\qzVb -4-c`0RB6S-SB&8G BqYZ$@z%= 59 F@ĵ v6*cb"5x)`b+@4 0123 P@!457"6p'`:67Q: lsf2$P%^^?vZde9X,S^nm wF<(W6Ч UtRTc܎BV9 $ [r*AoȒrZِGJ0! o|? jܜ" s)xKl")PY G ]x!C,[ s0=6\|eRO*ڡ*ҡ*ҡ*ҡʑ*ʑ)ʑʑʑʑʑʑ)‘((((((s@ۨs&-DN3]ߋVd2/RdPTv9G)üYޞr<|tyh'o:ၿ0k\G5_P9*Urv"'>4jmLlI؞Oti|.LT!.( MУnك۳oLޘ=0{|`GFb&kZkH8}hq֘˫K0 0 0 0 0 l,X(ijjjZh︺s0ms0ms0ms0ms0ms0ms0ms0ms0ms0msalSt.zsM Xoe9}5-J,g0'f!JuVr->~ԞGim)ZV۫7ċޜC>trlbC+R|CP֜ʠԘƪ$>|-fů)]n3Ie9 9;Ue;E%N4Grn7IcfŐ:̄H=ޙ(;DlDK.zsM dF6F=0&BVrK?|zRSYRY,ȱ(*R`_Ų*s[Ӛ?i B r9˭I/K _J=2`:CiR/AbMܣ+2mȇazM"췧(+7'pos-=LL ",seЌ3.ȧd}3ٲй4HUlRc7W.oyKQbˠ4d!fwg6N<<3򮧪p4I[R8sHJM"췧QzXԔ4ƫcNN>^־Fi/K%K,ߠJmFv[ZRƄt1+d5b7Jcfkc4iaxx?EoNi "췧6AptE*L34/ Wdg ӄ2d6B!'"췧^dQ,sZCY_k xl6obz;S[~.z|oAb] "93&&>"M9W8$eC2FZ2rFTM~I("췧-B}9f9M1^3y{O8NXu\أ$ TZ޹18?vO##)Wj-DŽ嵹(8܀ل r, coe>KHV\k!s73tdOm7ۣ/ͭ.I`DVt hmnC&Du-4M:FP.z|ZD c6JXݑ$r.g>6  LzC>7!Ezߚ֧$$$].zrxiUiWYqfۇnaqGmeq[Gmeq[Gmeq[Gmeq[Gmeq[Gmeq[Gmeq[GmaqۇnYqTD5e>O[Em;l3W7I\]gWw::AzN****+T-X? d"1jbpzs^lCK=F'#mPPPPPP"췧4ЫQQ$qܵo&ZԪI4-4*TTeOMLy~@k!hQ4K6e=,9S\[)V8?be9^JƠ 3i<ҽ4&rju 7&QwH6˼m.z|v| 6l#/oPPPP"췧^5GWDTJ>,ɧe1fHF9C zE"J .z| tz DX)#;uohS}*oF%Q&7****+T-44 T5PjAU T5PjAU T5PjAU T5PjAU T5PjAU T5PJlv[ӔGaQ(qIc?EoO.${닑NNcinuFo_:sgn"ULP絲HEoOJZ:J"Ia$&n./_DZsK%ж\z^R4c獿g c*sR"$#O5M 26y29-l~9jB&CPȧqxzI1QY^Hg2X-eLyv[ӚhgұZ ㉮NnBSœELQ'.Mt斢-ITnSs5* ې`{d%72*VI4f?ِ,n8hѩLb'8D -'$;"췧4DXflL x+>_GQqE_OM]+J]MU.^Yf趔Mu(ߪ,}זYPPieX]|H-43a$].zsM Xoe97ċޜC>֖мV=j $ݫM"췧4ϧ&(jPcip1r&i&.BeP2zߙ K1Ride:%ܒɣѻ-zgQQ HU;" YX䈫$HjGb&eO̬e1I"췧4ϧ0婠Ja0$L%8qdl/6tgUc4}ouKIj7( ĩ,NjYKLӲɦT (bX϶=eq$]XmگS;RNCm]Zy{rdHh`b`-ɭ#r>:tvbd~&Kv4Z[f8sK[4mQX]913Bs"췧4v[Ӛhg|H-45uwn7{xwn7{xwn7{xwn7{xwn7{xwE4].zsM dS(Af~.zsM rD*8HQf0G]ݛQdFu+BV6+\|H-43FiɋQQY&Tbvp"ș T|LTQvmO# ȎaI{ʩ Q+"߰oe9}3q3v mNex:RaJN76(v|yjU,9x혤gG'qfxڽ9o~$]!Y-q?7ċޜC?EoNiRcԬzRV=JǩX+cԬzRV=JǩX+cԬzRV=JǩX+cԬzRV=JǩX+cԬzRV=JǩX+cԬz.WEoNi "췧zǬzǬzǬzǬzǬzok "6_7rX,l ,l S e~$%B"#qħ- omN^MkT xf0,Gq>:4-(c̹=`S~3M,fq->OtsȚM$ 3 C#lrr</ J_#1I1t{!bʸ34/%Afh8q"KiJC%hi7Ƌޚd҇LBd?EkubRVS5{s)m99n&kv<<1cqT! |hm6qvFV0vI4=*:t͂fx9sɑd¤˒Y4]ѝ?YQ"W)<9>`ÿ䴨%4 U)X ZY4]$4OM/3#fQM+d|3.8&EAmo:8Ii?-:U4٬]UD۸۸۸۸۸۸۸۸۸۸۸۸۸۸Z SjmW^6xگUjmW_Pҩ-ʭTl"KeElXXXXXXXXXXXXXX+h7A nt7A nt' /PTcw݆7a nv݆7a nv݆7a nv݆7a nv݆7a nv݅)f(L o{b ]xkfXMŏ)Rj ˩<ƤIPc9gSEy]T?U'`R/iFw㉂4IF ;RQS!1AP 2a"0Tq#34C?fNd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&Nd&N+=qb+=q\b+=q\b+=q\b+q\b+=q\b+=qb+=q\b+=q\bWzg1YVzg1]Vvg1YVzg1]Vzw1]Wzw?l(($|wm!gw|v|wm!#ϐ;;l>CϐiOF?bk1bo>c|iy&;LMvϘ171bo>c|iy qq5ʇX~;0Ͼ_ 8TX..F øA2^b: <KCM-ՒR^!\4`2^2^2n W[-e2n [-E2n 2n [Z-΃-AKs%e2ntd: [Y-΃,s [Y-΃,A se2w: ΃,A se2nt >H[SXt𿇃 ??IGf1xFQ-X$*R$8\5!y3 V'8ŌqT[z8<1韡푬&&HPWP\'B":tIDRHD24N/Ld:87?Pgi rW> 2w-xm2w-7xM2w-7xM2w $xb*HxcE(`R$0(a~E>O&IHՎ#Q`B}Bq"UEBG<A,<O_2RM(2/\L1 ֳ?T4 $!S-I#qK5kĄ0r&(CpmX^/- !f{Ow[ß&^*ޯ ct"ɥ>޶o (ȗnu[ ?l3'*U~ U<^_qvPHM?/խf?V݁"lUdY*@ܽZ+!{_.7˝؛VVA<&)i~HC-EqS٩R2ς-"F[H]~|O$,BR-x _㢵HQUfkEվ"s;^+ ;(\yWNi=7w^=5lNr~>V]j*6#iK0x5~q6Nz`A0eӧTB# ݵb9 &bEAQQQFu펅7SvA&56򜚦LOvq8>6S6BI*SLiЧmS|C^Zzr׽6at]@W) ފ&rOI»a=0 0 0 0 0 0 0 0 J*TRJ*TRJ*TRJ*W-c  !1"24AQr 3@aq#06BPRb$57CSsu%Dcpv`t&Tw?K*,1YПlI(u?ix]kMjZw"$?@= 6ŬyU]&rLf!BTE&H:J%6%NE -nWtʯ)5-=I X)JoةfP [cnk?8>RrdvCוx\*bKq1%m bKZ-ɯi!lr a{Ҝs)>{Ҝs)>{s)>{s}!={s}!=ws}!Ĵtb:ҘRswjU*Yi6zS=¡͎G-TȪy.7Ca}rY]Df4!nگ^  ud!#i8+mFY|_/α/Ρ/Ρ/ί_ϏC_ϏC_ϏC_ϏC_Ϗ_ؿ:>>t>>tc||||||||||l|l|l|l|l|l !vmimIO0c0c0c0c0c7Oo͏?96>rdl|?)?)ؕO~''rrqt_Pl)#Os hJKKyCIf??bC5*e5`B36ҴT1&4=kBl4qhQJbJm9oǿ4i8,hΊF?OLFD5ΡBT'*VpêL!bTznr:R P,GC!aK[zd_R8-" ,|66~Ƒf9159;;_V:?+ՋI㓎N98㓎N98㓎N98㓇>_d㓍.VTzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzWE{|]w>Wg]2UX˒Dd< [bvyq.Bόv] uywlg~q7Bw )@_wϮ$pTБKN`{QCf]w=T*mDӹcBn>]A2XylW>Kی:"!C-aF4xW!x+wy [JLq񍬤:F(T޽[NG :rmĊhua%sfo6Ѐr2۶Blzp!M٭Yj1_ߘ ׶]TVk}4Zt.RD4/-@/D{E["$&d)Z _*_JVǧU@!h[DC)ZyN!9DDw[OuPCJs`/)פpϰϯϟ?Ո<ޓ4 o'.Vʽ19˖f"zYʟY Mq iu8s4SY P ]IXE7ئh&r!UN7B15$gh*Wg]}m"39uJ3pt^mHhK"lޝM{aX\e(Ǟ(+݉.Si̴˷Ҩ̉/2,@m!Lg} |XmaG iŒktoZEUbVm\oXөl6R!).&DO7mRulȫƏ~dbYjvE^*:!S&r?wvw_[Lj4{C'6*̉H1NSdPkNϐ r|tQӏbh)تS%Rb)9g('c`/M)|7u%RW!r$tARLR'9K|oR؝}E^u/jl4՘+nbŢ;5*dxN$FVuQfSWT{Cߗ5% Jo)qR8 z8?yϏo&*ޑ9UT|.b !)@τX{g+.Պ b>h}XπV+.p%Rve "`!E"X* :Ocdz1: rh{ +ZMbn~)M7 iPh  2dnT>\w2?v)58Αz-Ari9_ٓTjaY ا1SMҨbR)o)71f۾f&Λ&ְXպCH*.uمLkFK(]]F,/!ϔ+flú&!& V[>1C[˾SmX"T2-S˰*λt1)*N@V $$NM)ȷ!i"G8#28z߿•{C߉tHzeAԦ}*ĽB3!i1l2y-?eW~LV:$$\˔uEU @\`2eJWt UYQ!T)jsͭaЧM=i&JFb8|h5*=vYQN!CHʭxD4Jb}}Z]RQyĝ3zOДũIVqQۘ[KuM+GF%9/|LA+(إ.qsP"6-6v|J2KQ#h}XπMu* W>Wg]St[ Bèj`᪵Zbòr-k^B=FG|5%AieV9p%i j֏v"[q(Wt׸C]oXТD$lZb~h+k՞+ȡ'6ͽ8sDQ0p&Jط2m91ܳ$<\m׊۔W3. kR#ZV(zE[h ^V@Trq&nDAmq9ҭٷɈ[* P\i,/*vmbb7i/FQKH=>,hKH&uN҂aN:#Òi/(^->ӭ8RUo+.eϔ-' HZ #W#"J9tb>pJe:CE.kpuV3 PNlHVhdFu +WRN*05Ĝn4:MNgQdqCyw]ƳaQSR廜j[GjZ_p1!.Fpcu)ƙ(4/E 6m#9)ȉŠ Lgx}çq}-Rf9f>\%@}!JolhUXR,K. I{FTz)R*AEa eƅ\zJ}*DztUFf+-IS rfv%Qڮ9bJn6x2>h{j$ƥkJ[0wGR)5>ޑ?Z}0b,iU`hZm]V'1Gsclb<]w>Wg]{Cv|]w;QSJ0+RQ]@yN!r)j2Ӝfnr Qr-7.ZT-[\ n]w=%i d`.SSa$GHڔ+(Q^)5})/8MjUNˌVKƕ&#YՇ[t*e=," M#R[(xza< i2mWHku%VJTe*~)tM2WrR8ٓɿh9:|2I*H' F@ZIc‘#J'Vw;ڂmN*2Up⁴5*4@q\\o uG;nd9;ѹi8t "%YC+.26j,L֪ۍs֓J]PDD$0Yok{aoq*l @'>ȏY*IL]Zuص'ul4/t*sYkҢ e9U]GkO%Wg]{Cv|]w;Iz\/}::xyBw}J4Yj_~v>&TWn&q P]w=C)J-4mW݉U%8J u_ڹ/V8iĽ:\GB-lJ:gZw$YR_FOs]w=-7I]҂+M0uٵP$z kXL:3/ՍDGĊ޶Q@>R}_S+.&/Gm旹I8G2L.a_ )2-iؓQTUPTQ6}2>h}XπV+.{.ެs s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s +QSMLTn! s.Lna`:[zRN9EbsMj3 ;}{Cv~SG4E7=:ʤvx*d|Jw~׏ ټrt~7uqH=i]aj/M ax$Ef|Kv|bn㎠<S?yaiJDJw/ TQ&>luakP~%?XI,2F67M{k药y9[k9PTzQxfx=!ia[BH G-^.KlU)r.g(u"әՄaj f*YVT)Euq5ec*G&<~#Sjs`<7)7u8ZSִ+Vl*ۮ0[qI;E2PPŎ[k2V_[x4lMn8 p, hS&ԟz>Qd~KLBh()n8`\qaq٬hqn#gՌ)q%-h̝m njŠihIZ{XiCJg]ӗP[ut?#cBYI!*b4EY630J [eeĩ7KG4L\(ǵ6\W4^n#1HDs6YrTkfHɛƏ?\BwlڎdCp-nVt\iP~->4l N\qʔlh.dj)R2K#,[8U\uNSբ)koh]w;+ ǗO8r9AԸԵ JF <Ɖr%E*ٟV.3'J2%#*@6C.WQk2y/Tլ jU ? LtsyIXL6n}/v܌;uT(*qLФm/J!epڎ1&HZa^8$=Q[HRCvd1>S\Λ͗D`S8r ^|jQtHuIfW͸oٿ;D`UАIbJ@Z;:R^P7q BP:Uv|&d֚*ݬp $\m]֛xDGԏ.od)/ :‘OLs6ն'n߫uI + КϹbLJqI6vVf4V uvlSOXπV+.ԛA]w=jNruR,E`hC)6έ%OΝ%ONL!^Q_jE9Sn`lͯ`1;LYzP k>OWgy'2mH݊L&xV˱$%Ϸd1ڛF"QeqژY8w=iPt:mS?}t%*YH_{+J%: dۈya;6n'Qrek|X$5JFLTT%%hL6>.n-,.SyR'h;m4HAa:a@Z&T]7ҭal!V۹/C* #֗ԘZ/ĻԀoo] TͯQ8-4. Uzz1Of";ELZ5|IlȤF+gaMykq5D: BkOV"iLUu !߾Q_K੺zǓ~)4kT!Kc2"B9JH7Hh5 MKEqw FV%4::Bʙƚε$Ye`6ilToӷéNǫ4C r_]3Q lf?~ yKe dظZ2=l쥴'r$VΰW@>궆5Ft7x1,6TDޓ)lqưC"ԺsyNTBn:<ۋ'`xɄA3g:)kLT˟!B+hٶp( SvT,t}.3y.1QR)\1\Js)x8i]yb铜ܘ[s[\BBYc2QGUIkM6\p96rXfMCԦPH> Ȼ-H* 6VRb[(N$fs3;m=1^rfʼnT5M)3.[}~&hyHCk؍GnVuMB8{jPRXzHS7Qd #kދÌI[Jd[0T+J`1qCZP17Xz&!e;oDV~QUDa5p߼/X/BMEsSMI8vWƧ׷ ҬaF1rօ~hmŐ2nNpBb/qKH2*Yn4TRܾV&()m$K%eyVx _}x5h2,*(-lWgpflT2zS uŕς. CųZpH:އĤMbZU!2P9Iʝ۱S:FOaaV@ 97ݍ2$fiS1 iN%6W4ZNJáW!I<¡Tc;2O. F & 4 H bIàW4 ;&Gy9]e]*rGEbCC*xv6Xh|ճpȐߗ5%DlCe=wl rK:Zn%B H#m!aRX@^+.ՊnCyc7|Cp⓬8G*M@i9^EOYrnqmkLiѪ ǐk㜨\$X\{GfSj榏'S 9m/׈lFj1.1tX,6E **%ѐE?u x IX!5*0u`/.4ml5)AVcQ=JMZ}SNqIR%H]ifӳR5ѓe}8҅XyFp I); $ҝl_vlMס;$> o+ m<3KJ )&' hXmw~نskM|&.QiPj݊5Qcf\j_EvxQn*buR 1Ύ%9OlVԋ-vfi 0>Д\>O'h[uv~G 6S=ŮH2ҭGG> eQY5k|n$fS"p!R2]$e.e))GL7TFsgQkq*ABWRUb8kg:-\!T 19[ +Y򓔶zRV8/{rN3dqnΜ]:EIϊsVuL4Br$NZ)HiNGe I6b62J_5 ̀&l06|sΜf7e1iIK{>j`~)R6)@}HbPK[yGqVwW VQX6|Gj2J0-rP\0y+%}[N4wHX O<]w=\dr`׻0;qLҭsT~*:gXUB#LrЍ#S/m7нOb:}ąOe1 ND݊]O\CDhSrXVtHztCK%JB6v^z@w&.b5&av(OYͷKDUgFf/¥9*y}Bd G Jy2*pj7/p2ۯ.+UEX].R#4Ąr$8;RFnbPIMWPG ey\vÃ%a(EJ^fh}XπV+.G`—IWRP [K)̍(A s"]SNe4*I~Wg]~R:) )B\8TqG?nƗдdW&Ů% ' ^, ٖ_\~\Y2ӢunQe0G+ $ۯ &sECA{Tx)jҘ&@ _հoP+1%g wB @MeMuh90R5豛s:M˩nP!j40|!МL|8s Wk/^mYW"wV_.)TβVNvK }@ۄA88.ߐm+5V"H 1E^4JZ N@~RgQ*Uv|BJ[?p)U]$Jf^n ժ ΄$\aRxBq z˫.?yPz7>؈ y܇VW'4{@+Q6RPuƘ>ӕ*@l((ة_/s1Kbسj Y2֭iG2ȰƓ&$5!njOvWĤ ?싵&^ YwaQ$GBRr#S4:Wg]l㝹cccccccccccccccccccccccccccccccccccccccccca_Ҝ{Cv|֦Wg]}[mu MC܍{fo~3MBҚ5*[-=P^Ef9RzUGzJK9ekzqt3 E:@EZ?MaHպA 'e{iIf; e6+,GgShu_d6ƛ- -\d"M hRxRYm ugV۴|5]w=14 D3 3i=#qdN^Fh)kۗcbW.jDkR,5m2mb.NKpGWIU\)t(Z`6tt%>Ovs-TVWũm+ƶԓσNMpX3RIRs}+[ +Ls'njd*Qm"Jd̚+of//e[/T"-# kv[ӪS߉.9n ]%dp۰qʪj\-N5PXmڴ|\ <5&& '"(sVӍ?skZTlvb3ʚ8Lᲈʱv|+yܰ Ҽ1ZAQt-P,4RKP$_f Vg]5*t&G@ zp֘i敵Uze3LKP!ܷrWcX˶RRAP#qmAj1_F5MҴIȄ&T)/K Ky_Q!VU\[)V'Evv y ).\(lV%!LWt fj9}iY^]ܛ:T\ױ ȩn!JԕQ iCRY]ͫ@rg=Vt#J̇ι \(lۄR)-KuWR֥)DIv|S(q-p-$Mg/KyS.Պ $UQ?LwzOyG1Q?LwzOyG1Q?LwzOyG1Q?LwzOyG1Q?LwzOyG1Q?LwzOyG1Q?LwzOyG1Q?LwzOyG1Q?LwzOyG1Q?LwzOyG1Q?LwzO¾%.Պ b>^7cw?\~q?\~vc&Sm kU2h[IB\"^}ԡ )fceKz@6,5=ʻ>_\`'rpϤ;d;;-RКJ#4*Pjm\b icwTjn EnѿW^SRN3Ԣ6C]C~{ %%ӦLZkj8=;Qc~ MC ͵Ko6|cxSt2PuDUF-|J@ArCAԥV/ -*[H# nfȋf =@Í&[TqLcðZC3š]Um q>l e9SJRq#bii")~Ao_p'ttnLkU(COt ޝ:=vH C]"\(R(ԕbw.= >=%(m߅M\iЕ7X'scD)z;u7JȸƑPیp27mƙ:-{G )?^Nr>4e=ao\UfU[6f9SkN42@K `nT9Nם}:޵+ާרU߃t9dʰҤ}bLCm!-dǧ7_)&Ѽc=CG%i優/y{5 ֏[AŒ#2w)T?QSp|kǗn"?七9)))@)6c?{p6i)U쩋#\|-+G!֜(P6g}nhe@a8CR@]a_,!1AQa 0@Pqp`?! t~Pî\4\#,vBM 9nJ+~qaʴOͭTe}L/lxR!hT]MGyO,gP\P5c5җ#/fy\]YUV6窲lJ{тk)3@FF! i9 *`Wyi}VXw饰Gz3 f\HǜYMLQaWЗl@^O+ķA1MuŗF2ƆI9"ڣzZ@m>S`q"*.gRAXGk7F4َ8..fn? ?'{'''!ix8{{a{{a{{{{{{'g!'!{{{{觽{T9*es@evT@*P Jw Ljbӎϧ^߉@*WT˗.RYزRR8,p.:Q/elO?pc!~_Ag߹WzsF ׊(] 7ʮʕ ~6 7m}5Q˥h΂]Yt&8{AIUTGx8餘4Ik/xI>}9E=ymw"e.F_P&Md% =\GFf$[iP AwC%*8&Elmbx<>c!DȬ >v]["?&5/$G&vNA:ܨ&l~q_Jf [k7sJM/,i\,o# aR@*R|&:.7~_vj) wowޫ0T, 8m {#JY4osM0c@ ]POݯa&,sb 5p0yqWrկHl.3|וtxʱ}1F6=L9BS7rk@ 7Ty`70B,1fJ͑齮8`@+;*q?G#}ԶW;M=֔XnT꧛VcӪ*Jl+m(?G3vQ&A/*-ݻX TݘR mFp|O9 GBOY?g?'?cG?82_,H!bmmF)E\IaҔL.i)))))))))))T09f?,{^/~Kߥ{^/~Kߥ{^/~Kߥ{^/~Kߥ{^/~Kߥ{M*sHf,a4x5|yLm=#aqY4BUNujy]7lSоЁj,ba4x5vG7M0 ^O@{;ch}ړ*.MgA?&\(M+QvUjXa.Z|y%0^}$E'*i!v*mX4zE@8J4l_}é,Um2\BmbhV{Ђ^KE{)M]7z|}*96HN@WO(=ӿ!cjǒ`{=&fn,ї"=MX02ORl%|Y&lѾbaK~)Pe鍡Xilq~V2y%Y=@ JKj"(ۇ\Бs.j(]e*S 5IcSp/9a -QK,ҮZb_(tT짐XƎ_Ə z.=k0sk$f"YrÇe5{J(j9 *QleB55HWGZL2\G=YzM4fݲĢZqA+EL:z XJs$v2+yLmG3Y'zM4f,a4x5|yLm6k-W*ثɥFheN>+`?ϓyLm0!`2lDURf<*iUvr{ٮq/U!rzGԦ{jPb,8K y- /_S-Eǁ5Jhk6pׇ7 B >nG2}'Sx4K#L26héwRk%#2Mol'f \tspoG3­iq4r&ZxnI|WzM4f |՘E2#sŠ9ڹ|5T ~/=&foO0MG3Yl%я..R x%<#Wy**X/_ɼhk6텨p)͇ڶ0>..fW 8=&foO0°.ªUq |9ƭEGB-E\1SBxh8`/==(!=dLnC't~'I't~'I't~'I't~'I't~'I't~'I't~'I't~'I't~'I't~'I'tB󀯜eq̚K3/ $ pyLmG3Y'zM4f,a4x5|yLm WQf߸`yLm:XʘUR(;2Yf M»o9ohܶV-EЪLAa5(05 b"ծ{Jšc`-4[QKʇw.n, Z(}YBZ)μv \_-DxN']7uuFgЄJ/ Դ^ʱGQBqܧ &[6-#U]t\[Jޠe6|} Dlsd| xa4x5v~m\*.Ur 8($fx BFY(åJ)Ȱ%,'ԹGtŦKPV f0Ca5+QRb5Bd}B ׄ5R+QԤ[*V`&6K 0 sem[Z;\ufg_-C|0оJ)I۫G3Yl|`𥉉`q> B \izpX K#Tf[-&B@auV"q* arsu+lP("*.Y@B $R-j^`o"'=&fn 848[aOs^a q]h ,HkO[vZ(d #:VƥQ '55qpTV3J*TZA!$ܫꅶu"rG|hk6FlG gMa_hk6dIƙ OG{=G{=G{=G{=G{=GќoƏfoO0;*s)S9Nr9s)S [hq#:1cI&:Lt1GLVsp?t"j=o7uzJL?ƞ{s+wCද^?Lj8s^녵]*57@qK&o?VU%\:*J-5ZZS(CRD9K R^F+bM95<9{Ӹ}\w=.r+r *(T5Em䫞4>~REq%.>R0x0j14 )?f k%Y`x _g:BA1#0&HC|<澓Gv\}xy@;li%Td3:wOB6x47\\` l' Ҙ!nn<GSY:ηXe:q#wZ5ZGcnx>4Z(018H7{,, ,_I^!s"-:ց.C,{26 8|}&WQBd2*ٍ]rY/(O-: e¥a͚SiVKQZ,~VH6;]C2qD;=G?O?O?O?O?O?O? /++h(?|>[ñ4I$I$I$I<J+W)^RyJ+W)j9IAY %J%y^d2W+̕J%y^d2W+̕J%y^d2W+̕J%y^d2W+̕J%y^d2W+̕J%yxߧJ6i`PV5՘zܭAQC5x\\[*^EsA_]r@/\?XZx>Vz `<1o*ΰ5{sԏSS>9)dz)+'O~NFKUjW*|gl A W   0L2B) $I$I$I$I$I$I&I$2\g^4PQH(Bj%aY#V $` [_) W D6(i%A+I` P, @/l DA@) *BZM6[t_hI$IHI$I$I$I$I$I A@@$$eI6)$ H@ A@$$ lI6S$ H@ A@$% LS(IZ) 6@$$ H@ A@&$ML"I@Ye2 A$ H@ A@$AI 2$ H@ I$I$I$I$I$A A@$$@IAIH6A @ e$ H@ A@$$ 4I6CI @ l&KM@@$H @H@ $I@A$$$DI6 ` &%&$ ,H@A  $$@ H@A$@  I2S A$4%0$I$$IHH$@ H$I $ @@H$H{$I\& I)$`A$R!$  @$H@ A@$lI&M$hY@`$ D@$ H@ @$I$I$I$I$I$@$I @ @4 $ HeH@ @$I$I$I$I$I$@$$I$D` @D@4  &@` 0hX @@ 0@ `@@&PQ2KmmmmKeI$I$I$ A$I$I$I$I$I$H " 0`@@+a!1Q APq?iS\Mr5k)S\Mr5k)S\Mr5k)S\Mr5k)S\Mr5k)S\Mr5k)S\Mr5k)S\Mrp;=G=O5ǨwSzp5=NwSz잣/=IY^zڌp;=NGp;=NwSzhzpx.=NwSgp;y=Ow=NQ;vѨW%,Ǥd79>o#g%R&}bUvcf" ׷%~9!,|2 A C!C!d6ddzCd+iaw NƧhj5;xԋQ>GzĊfk䌥>Dyy/ecjNLgصeTmI7__ɊPОS/_D3?Ac?}bnO Hcnv?,uAA; !'7&r/#< _?L$))q S}g?ќyD9~*X1e_/TQ$I%~؍Y:? ~ l Ͻ¢KxEm[dVvEM_dUvEm[dUBGĪs~H{21YIQ,!GYW\7#l*PRL2xyz4?$jxF(MKBb1s r2P)Bx93O*k–(R>3&/ 14ڈo/=G\6P*c!p͉a;Ż(t?kFfpT"||!D}DDDG}DG""""/GDG#>x"""""""x'CdL9".D^GOG` ?yJCϴ'W+C#U>,/[2Щΐ+>< xPzH eeQڄ@BV4??~?<K!?$''>> O;vh&?,E^".nj:T)(LbW1,T0+mЄ̍2:0S)9L"y &RHwKb}}]Zf'$01J~l[ShzrHUhn x+^ Wx+^ W|b+^?ҡF=Դ(HwjMN1&։lg 6E+#ȴɘOAfga B<ډ)FeȻSuv3cBE|IsӘ_e6"n4xgmiSq; CnQ"Ym*,!WΞSZm{ Fq{QET`oQ `r :g*nyiw_k~`RS-"͗cSlrZ,&Q踢 D2y<3Ҭ ^8_iҷ+ِ.a$ؓ!1H%z<|sp<25h捧H!|7}>?Z8CJ}#&)4 d;v89G08]1}^K 6?Ү )JTHiE;ZP1ѦTcKk-·زʛ8#olZe~Iy"9'?lJŨ^HyW! lkEO:cw*4o}'ʲL);60EN (G qNe|RhU]+.!szR Ex(_7{Q{ `9 3dG=}:=8`NPXN2"c4R'AUDJi-;"&)(5'QJT"dņUE!Rx1K2RnTN~kcbؕll$n6hkkU"UyBcjft*I.ěq]5P,Al| ƧkX a0%H5a4gMd|*ʂIlvlM7F0l$ڈxPTK'NByFk ]-_F5>i*>iNœJI>6>@V,\ B87SL?>GN;miwWSm+M dMU>V48e0 SQI%Xڑvhlp)qDtDDDDDDDDDDDDDC߽iQ(ȽpHpi%Tz&ɱVs7tGEG=oXfΒvMhf|~jbTfygض-1?k+ +y-zi= TE_lZ+++++ddddddddddddb_hZf ~֞_,!1AQa0 Pq@ѱp`? 㴪KzWh-'A sN.Z~mL$С[/ ,]@@djjc&Nh'd(HP/-ܘ\ҤZ@Ej" m.%#<< \9/PWh̾ @U%$¸\Qf9Zr/;5 Jq^ B&B4rKd6@`<|Ck BRnG*z:rh(^p@\Z9 $*4Jn+а^Kp {x$f(Kp*pUN7Aec\˗tԷ hdD\JCaLVM`UKlO^#>A1 wsI1z0`;ް-e;^b_osp}gwvW Gg}Ywg'o+cvk[^0azÉ/k Ϭ>=`{>LqÍ.mnVn-?m 4N8 4Xq{~gua qp zKpJp|99$䓊< p7rxyoB`! A< 0 *H648KT8Ӝ 8j]B,56+N@dW@9ه (9 @`6p 20.2=7^M c [Ê" Ǽ6>7_`\0PJ&#](P`I9@e8 .6q!"$+bZ2"` s!˿TQ~H `7rHwBU1w׼yC׽) ^B΂8u9vUqG^crvnך X,1YpDW `lD^l*F@CU 8C`'$X0=f؅t# 5VKƻvD`,@K톹K!QH4_l ~Mu,``t;28qg1|(@GSp\Y9/"mкXx])1 P, 8ej 'Ap-rBXP6\V/'}@+``,_gn, U%Vm)aa*aZ%V_@ wNI9+щ M]$9&!:`VFI G4k9ܻHY2+JAvښu(" ?XgMKF`5R8WM `@Q`c+!jXӟLA l, pF&Yj bBECKcN\& Vw,G`"PD~ Qs7!5sV^DP𲈤7FEkXxX]ǁ./ CjyyźkfCJO%A]E.|Df6„Om 0;4m !CahlS ǷX r"Ӡ=A:i{NtӠhS\v h>QJVY(NΜΜΜΜΜ]*^-lɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ#I(;'ך|;oÓ>7E ʫ8r"`aa >dQԾK⤆c5ƫ^XͯFYT _F u1 ,Nc*嫫]ך|;oÓ'|DT1ݰbIL%*Y-)p6D(>YFZJg bT*oP0 #@,7gupOzr~y}f9?l޾|r^i|_YwOav2;dR=jkLJE,&T8cJd~t,g O1P$jI?[-Шn S.E]:Lmu(0mFf߈ R[F#$D-b -) E([eF9 /{4>w;'qNXA:~e#u'V\p0H b06$Uީ ZV(k(UHl`[TƝp)#XPלYʪEPN7S P`*mOV0Sx;YrUeӛ(da¼ I1Sj%1]"0D!w^i|_YwOc3$&A C,p͢T~/a~Q9 @1>ܮ [5-˂[(E/u(0(n>7gupOzr~y}f9?l޾|nR5@r8?aϩvÆY }ך|;oÓx ~ *ym@ͬ S!n0JIDH؋ޓ5l,\Ǐ<:!ig\/L2fpr jT܍mXrDd@bʻ=BX)FK:dCA *G|AkaH,] % \ ך|;oÓIR\VbܦUQKf,%(w\ J[b%:V@¨\f =b=F9aLjgh ڡ|nҬ]`s*Q-w7jk6D;M)W>=ך|;oÓ֫P2҅ h!& s___>L3M2^RZ Q#0 Ph·|cR,m(#T!4Vi)ݲ97pn(,0~d2C*@@w^i|_YwO;4>w;'ך|;oÓ>7gup,5w2Gb,f1k k n>7˚b*TX_v~(PqHO-6zIUnfB7up9ȅb0! ^D-R ?f޾|$;292GZ 0J3Vlg VH /upOzr~y}f[Jc?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?S?P쀼ه>^2Z[?^8:سi.8C+4 o d9?ltӮ .26ysñ8}+,TRqvTh>yaCf Dc [_%!2PҢ-6m ,>(Xv@A&*Y nR p8GzxL$(.awd[p82Sl|_˂:C0@FX>CIfLQy1[C y0l@Rq!@X!c~G>.-&-Nn;: t@hiW+n+Xixđ`LE+7l(wi~`` 9SB[-:k\А%! > B\s5(x4h%%X, S7ʌV.S}Z/Z ӑ@U޾|qmUv[k!>NU PP}) fl P6Flr0i](S ]xDr,BFPm^mTV7Y/^X6-Pt4ȺvHjX" B K}1!1YbaS "1E61@?y}ebjE D.CY>y< g'5CT#?j^!u>/:klMP^Rk_l޾|w^i|_YwO Zy\4>w;'h, v WsQ`Oh244qaψxbZ]6 hiP#ڭ90'E ʚ8kVZůU(;,6 ;8gFI}!E޾|**$6dk.2j )mH-P*u!1uH ԩm@kk1^*҆0MR"C.e LJϒ]#8v U?Hva%P\ jH*=H5B(VaĀ~OOOjؽEpȷ@ (jjdAIt]6BTY)a)[5vSs O0}(- V^iti"d$bF< ht=J6 gZ6lE_)CCtȄ&]1RBSRq; +t#Ҿ)( >Cԇ,Ed *Z.`z"A(Ҭp4Jd5AJP}6pP*ugs|V2/ i$'%Ar+%4u!m]UWw^i| Ӯ8,#F[q# (Vyn Pr$e. @ .z`YR{y<␖c1(Tjo|FE.tHx aOnXč/S7)`VXXNRVl&AF"5b wTUJ 1*[J&C2Ge?l޾|w^i|-WP(@ede$B3 `UuPZ&9RM%` .8So#T#,Q' AN܄3*ҰOvSfڌ2LlTAq% !%&`[[U- u[JOIf@k36:տk?BQAU-FDL$`=][R5Q*%90bt{x&.|ZкQgZK*\ nc&gxMTaU Z ^ݥ]O#U((؈_ue ep_YwO.yMtPzI mGC2 1`,  = ‡[ց*ŎL-h3HyG^,nZ_ '_V4]B~n;DX!.Y(xBȤFYX/Im 1Tͬ@fZ =aT!˳p]*bHQA/%$4Â.*L*/G*\4bB*pxmSxb݅@pm!F~Z /clLr#^V UuEC]\! @Rb w}GŔDؼ̃@02ʔ1+=)ckG0#$1`Ϡ*LMR9,Ugջc>.5D5WUf̈́5kl-^>YAA, p`;^tP@o p5$ "Ƭ0ك0a#jV\P A9 "|{mc4T8ҒA4 AlpOgGSb f.T&H4>w;'ך|7^LoݨZoC+o'O}I^^]'w~j~~~l~l~l~l~l~l~l~l~l~l~l~l~l~l~l~l~l~l~l~l~l~l~l~l~l~l~l~l~v~v~Auk,ww*I|.P &pU*z#hL)M${&`kNdLV2ƒs*ٛ:T,0 *8E$1< `Ef+<*Q*k$z>\ <'02.A"Ub_<=(CBpqb"0ۈ9& 7s0AW X/ #f!aE։#C# ZlJ)Vg^ӂ=ڇ X3{ǟXnOz=& fVA{6d-Br݀C-ŌLjQ4^k8zjσz8|TZשRїFշ5PPN>B+ #eAJUNv/p˖3TDB6ǀ* 7aX.k87zMg}f~CDpA^DsD$&U P87ʀyF#Lc1c1c1c1c1^|/fԮulP-ayVR,ޔ[opOj\ȁa hNp4@Y,px#(&΂M>?d ]TOŠQd# IPF]ƉRےƬHrhj8)żdx @.^X/4B0 dў"\@@o `, =*'0Pʲ! '#uP0%hz{Pf1HPKE6()q)t ezY>7@IAl AU 3ﱪ`( XLsg^ma>k>q"jA"VdRpf`|hw-ܭ.Gܠ(\0!أ-IzQW EFSBݴ p`5P5FT7}cRШim0`. ), jӀ X VP# I) A؎D&]%Qd@#Ujb {Xh"EBQL+$:OR0%CqiˀTaԬt-4ww^i|_YwO;4>w;'ך|;oÓ>7gup/@ UD.@СMx Zp)vQ7up=dG# 1bpU^a!R*5J5d !lje[Bch vPJ64.'( ZdQkBqxcPa!qo :{gƦZ702EC`EReEg:XрDr ͺ 37V,=%|Pb:^0_ $\0 f0؃-4Mך|;oÓsd K?O%A((RhԎ!T/x3= kt"xԀPl n@aW7K#rG%_Qj\ɯ2G<9w*lzG쎲 ˡ[+5%-)HwZ=ARdڋ(\<>7-V]ER- KW$_Y@ rEN-Ť”on"0<Ŋ ul$X#Xa$cJ@ HM<ʌYbW ,(m  @g 4]^aQf\K85[6VmV̫25 ifΚw]%8rGF ȩV ИUoy}f9?l޾|w^i|_YPiv}(((((((((((z-cw?pOzr~(APJ@ l>y}f9>,/V &ŋ)eǰ{^ )U77-,.s5jBYT` B-9x)8 _ra8AV*fF(aoupBXrt`v,#[Q bqKUj)j0\Yv1n6-ZYwIL&w# }hMkZ Q7h#g nʕ':cEy7n,l,,eO{4>w;'i`_Xv +u(|6.I^&$[\6Gdi, `1g]БUPh HUT0 dI{$DJ  6s\:<2C$5l +R0@TT, {$tGup\CDF ܉߳^i|_YwO;4>w ouJǏ7gu3WU:y{Ϋu^WEpfir{}?OE>t}h|-{j.˰8y>JWmVu|(*}K<&NXz(t];"N0 :$W@4 C)GVT@Uzg_>@E`@*mbZSº NA!2f U7Shfz)!*/j2#4-zwS` BnMg|GA),vK&WjƶFPpHG;4Gw 'a2+e(ne5l '> rէ>S= nK4T"x#gQx3 !5=~4 Z N:a;V 4R^ Aq}x`s՚ جNLJ/>?ѪTIf0\/a$mBH-p2hhm P>Sl +x])e3jвbp[UwkF~b+ERdɓ&L2dɓ&L2dɓ&L2dɌ (P2< 0` \@$%MkSl+˼C}؂egGΏݝ:?vt~gGΏݝ:?vt~gGΏݝ:?vt~gG #_W:iNu~ӫ_W;d@y;92PZj9 NE./!#Ev,%A7ؐM}@DT9Tlթ5kGJܗj7t#x8BSef{)m48O5,*1Ԉ:`XÂ5'<1J+{*L>mSȰH*RTP7+*XN@[Lntfy-2.11.0/docs/static/img/pwa-install-firefox-android-popup.jpg000066400000000000000000001502611462047176100247370ustar00rootroot00000000000000JFIF,, ExifII*bj(1 r2i$,,GIMP 2.10.302023:06:24 22:29:54224 %2023:06:24 22:24:33-04:009decfa7b-eed8-483c-8479-594024042df9 s JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222s" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?բL.?/_q>F}>nj.֙=|ۻ8Hx*0)xR #cX`>SEr>f?`>UErO>fJh3N}ΦT8oJgh3J`b ,|es-ERB؄;$lGi n~޻j-Kyt7N%b#7y#Sv8*{4>6y'JG[Qd?yן?*F/`v'J}+@iD}EƧc*X(((((((((((((((((((((((*DiFczZctaoaƑ H*(U\ϼa<{?/h%|(Ǿs>\ϼa<{?/h%|(Ǿr:|Oi0=#EI 988:(:obOz y?1'r?ν *\/YPm scvq@ M?5^f-d&ld=jz'&_s^ #` vsycXPEPL%Bpx@rL$n 7e\ ȥU[O򑃚p; 0EN$8`q  Q vCYDH ICC_PROFILElcms0mntrRGB XYZ 0acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBC     C  8 2Kez|i0Ӄz,cɲ_:9jtxDԚË rN2:ћfiqVkՀ@ )孟'$ II&DfUU$ILLhI4JdSjPI"$IQ"8z$d%$MMLLELML &I$ UD¦IUTfn $ %1.lE@$*IRHRVI1)50&$RU aRUdtb$I RI6ӣGg&贓RH.gqvm 4*IЪA$TTPBIǫK(X )ZPnq%D=#Ƿrp9zDgZkV+ /&II9Ē$T}KTˇ}l.\=9ѵq:tYq6g78jrǦM\\XJl&vgMa9;}?.L I$ UD¦NwBBd\0m7xig7MZcE}? nqe '%LRHRTT*I`z]]55$*%Q0&%VJ $I7Xi$I M=Z$'':dB4*j`MM HSSRL*IJHeL3y%&4&&&)Yy)'':)(Y$T%@R&$"&&ԒdI%dA))$H$JJH$d Z&EH*DmA"$@& ")*@YE(p-KXfzO1,N},l@9cs ΄,<|z@ϣ zp sfͱĖaBe%eeټ.}(=0G5f60mM(3Lsd &1֛ 1LrjjǦ;Oe82٤=pȒ'pT zpd@=82N/?7ޟ:<{>}d>=0GIWvzmU!}]}'?st},Ǧ>`6>^yOk]?Ah =82O:~#x==~V< GYL0x&M{ e}?Id>=0GI|Owk:\{}OҶ zpT` zpApGxf`(14:Sߌ zpl>u}` t՘hH=81 :@L0=8>=0GǦjzphgϐ^e6&˟9}(~LYq^֌eKۯ',t<Yǫ y᧙D\ c- J$\+\\[.)|aQȔC^et|f$;9s5FΨ 3 I0N ՚Lיff)5GFtK(ݚ؜affZA=0 Jkێ%kʀP1da+b0da6 m}=#f<^vo]}]L:lǸ&Eӳh.ɷ}: SOtTSs;Iol͒r`-1cm0-˳,+a6Xel(p$Z-d,,<ڝ@T <2:St8+zt%ӏ=0lўp^.٦7164J ٷ5FޘE h$uE`-dp'|kA`&1v0\:3@nMϬ6 bxgSZwPmӌXn@,XFI 30 T9s+Y$Hңf5d b(5Eh5f՛@ 9tA+6` 3a3 5@061P3!247`p$fUʷׄ|8ܰ%9r9yVW'DUȡWW. )z \ ਌uRj(aUDQĐִ@] F:Z[\i6'Kyv}Gh;hK;7v7\oѮRQܻJۓIƷo8Q).C >QYaXk,5 eFUaXj5UUFUQTj5UUFUQTj5 UFUQTj*5 EQAPj(5 EQAPj(5 EmA8PmEJ(^ .84K .84ÃK,8<ÃʅPY]QՏ:ӡ:ӡ:ӡ9ӑˑːETw 6A=:=:Afd#ܼ9 UJP5EUAHcT1)t)OHB2gN!cB1EJb`Ԧ3ϴu[meWOY7 HŤE-E] }vAd=\GPcGE4F⻛%o$w~ j9,IRQOqֽEϴDѱQ]ŨD_3VN]7^xH&)6YS0Y=%"WE۳֧$^5aW2g˷EQyy:;m*Y}JJz> kq0ˀ_+>n}zf@ l2@CMJ_k{X0ǵ=al{d&8Ƕ=qm{lg8ǷN=qӏo{x8 ATAN8(888"(8"8*82(8:8:8B*8B8JfŨ 7BУt( 7BУt( 7BУt( 7BУt( 7BУt( 7BУt( 7BУt( 7BУt( 7BУt( 7BУt( 7BУt( 7BУt( 7BУt( 7BУt( 7BРOwELzl)ˋPr.-AˋPr.-AˋPr.-AˋPr.-AˋPr.-AˋPr.-AˋPr.-AˋPr.-AˋPr.-AˋPr.-AˋPr.-AˋPrclI|-lUۮ^Vsrcw5m [Β5?q:le}t~R>dbԆOC4G Z^%\Q RoEW% r w[zbj=(V ea(^ၷFR[;bR*Nt"W|e9[VmxcA1Uk~Zu=ã >8vJ&.e+F֘=l k[PJ\,RyFX6N*1)Vl*3v&"g;i[=S+6ӍR.5X+Rٶ g!.")v~pO~Gta?o#:0RD!nݱB^S,✄Ef$eFTJ˵Jji 7liJz(}2"5gp 6:fө봘3␘h\L4c4G[S,;6J.L7V17U 7}5FEYFʫ8hZC8 5xӛ߼oQE xb"]<,oF嶼IYg c kthIժuG1w$sD$b/\!=BZVQӇo=R-dU"Mv Dbz{F}ʙ RʙRʙ֔T*TLAV^#0ʃ* O\)2ʔR*f2Tʕ)OL_Gta%08nǑiPp;wh]m@d$a)kE[{F}ǧ$F*Ljr[5%Q A8cǑiXO-r!Cȇ c!x=ã >XXXXXXX¦1цhpOy'Q4#td2({̇"d{F}dSsg)o2X8=~$F1k4GIM$`T޼|цhpOy7v #HI9 Z{F}ɐngl #Պ#%*Gta?o#:0i4G/; dd^#ՖZj 1~M|ZԮt{F}i>^l K-u2ZsJ]wLF.M7,*5Yuq\lr=ã >OZq- Qϴbtu!aŽkndzz=Z&Ba^G "R4{F+D,VQڔYD3ʦOʔv"{~ҵ_Ag&lbR rd%cQqyr,#KN0ns0ns0ns0ns0ns0ns0ns0ns0ns0ns0ns0n/{N S/vTBYHi`VbMĊr4}t772Kʯw#VD]뷎-]'|eYi$\]nuJzRM;i.)!*U$)r:A" KP4kisRJm .f&dQ qվoRlK"pR)rC(`.ݥ%'Hq`Mf<Җܩn ɻhwΕ%%NRiKnT![~bѰirJ82TRZHHC?q(ioIGH`1CK6UDܼ$ 9#MI#nw0 3ow]%ZIHy]RLk"rWhL•Ο]gAGh$5uDN۷%d1M\dٺQ"ێ55&/|Q6œUHsks8v̜d V>%šEbա6`Է\ʬ_3lq ~(vi0FFrQE!mdZm$i (항˘=yܺ^UvQ\ڑC䥴M&7uXHnKpJ(!<~sW 2U"$tZ)ãFWf3c1f3c1f3c1f3c1f3c1f3c1f3c1f3ƙFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF~=A5Pj A5Pj A5Pj A5Pj A(zWSxR32dY>=?;^e5VO9ʙ7>GZ .BfMRtb <|{[B 싱%OIl%9D?tLRQ۽rEWc0/eԅ = 3*4rWe 6rF{G3nڙ\|$GG̺7lD)/I<mg5!:1wjٍbꧤD~&ݻv,"!dmm$gh=3}C5f(Ǹ@IV8R6_/K.(7ɝHwnԥ.펬2QF2Rc'=d`d`&*DhL薊e6L7XÆqeꧥo8q/G<`E&@;dAG=ѳrUu}W+{v!tZQWsb=3"ҞN*6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 2?e(ct )Et@0]UK.NuS7jtZ8SSO.mhުy E3Y ) t'zOBQR1!A "$04@PSabq#23&6Br?PBU T*PBU T*PBU T*PBU T*PBU T*PBU T*PBU T*PP毿5}_~kf5毿5}_~jWߚ~jG毿5}G~jWߚ~kL~kb?5#Wߚ#Wߚ~kG~kGē5#Wߚ#Xb?5#+9 +Z4ͭJ֍%skFI\ѤmhW6i+Z4ͭJ%skFǰWגU:i\kU&kL,YsXfdbɚœ5&k\,YsAΖT~J涍)s l>WQG Z?@uO-|{P;T%'T$r?(=*"7DGCEu"7dvFLn: VҩÄ8״,\VV р3mj[n9+;d2QI~7Po}CD$q*^:q7ޣ-dpN%8tS-HySc]mW ThKGcg <{cx_N/d/p9r|;xTٕMRa8rW6fX;=Ov}zp^SI%m F]Z.x^HIHs㏉N+=5 c<9Y [?|TSn1W=v9=IaFU>=Um2_vmBs%8u#ybY>y!DUO;||| _ +渤1<8"lGw].y{_%^w]|y{_%^w]|y{_%$=KtR-ԷKu-KtR-ԷKu-KtR-ԷKu-KtR-ԷCu-KtR ԷCu-Kt7R ԷCu-Kt3R ԷCu-KsRԷ;u-KsRԷ;u-KsRԷ;u-Ks7RԷ3u-Ks7RԷ3u-Ks7RԷ3u-Ks7RԷ3u-KrRܭԷ+u-_m-ΊKu~[iOo?ee hdmpRXM}UM}UWݲ6N槤.^$ym6k[3j(ſv=su;-ڡhw̵+Q6S䉦=v-+mӼ ,5+fI6m6SvI4aدϝvaeƍ=iڻR~~~~ۄ[t%v9e|VwJEi䂡Kؼev//;,Kj^@(?!ctS\׊o]~  kH=cj|$8ËM ő-US](,$L3H/NG9<dA'!w5kzV2U)K;_&sx湻+_gs\ݕFU{m/(:f=IXQGI+tU_m뽴Ì_m| Au)9y,G>N{S &';ލq"Fht=˺Ψ*+bW6чY/*wskBO4q_䣉{x} C{Xǡ5gܤ={Js! 0=P`gYI1tT:b-5W6E:+,rte:E9J6`E:^B v5F r+5vD@(Vd}05^S԰I A'5.6:!1A "02@PQa#BqCpS?.an6l[l[lě rA9 r]'n^ÐrHe|f @w-qAVX f.klO>;aŠc|@Vؿ! l /!X8` 0aM> V~YuǟnᘸT* BXbPV+bPV+ bXV+bXV+bXV+bXV+bXWbHAB@ݣn7h '22?G,7DVC⏊>0i;E#67d_D3d;.RB67d_D;XP(DB67d]&" ʼ^cr0Poq̌qA g+%7: ~bZbR&2M'©H).C6RJS,S,XZNA))z`'Q)Pz(TVWl%ݴW- <3Z 3/}!5/= / ّ; w=s~]'vto 9Q{ }IIjSr҇GQ1=ߢQ&':R5{.j~fNֈbD\Zz3BRD"/ޓOoqMMMMOaK{5Bb,K+J5{wxsɮY=!i@9t%} !342MQ/m.hZI5iyMԗc!0L3_|_i?]!1"23AQ #45@aqs0BR$6PbCSr%`ptc&du?DEqd}!}&M~@pΨNA6QQk|t|ѣJfTp%Ԏ~8$ ϵ'H=!̉RS&pC}CXo Xl<-gGWZᶋk 137 g6A˘8T\ժ؎f5T,Hf6;?BhTd*8/ɳ_D%a;Rvk9$owŸ\Rfpd6׀}Otbnc<2%T%F#?i=Ȭw"_Ʒ|}cJ? ߁t|~5Ҟi/=J-5RSJoOX쨦25ӎ6oQfW8M?Hn':P@?ԐvCB\L+d 4zwTU(#V~⹷aIW] 6D]\xM j&-7%16eH]Mt-Tخ_6׌]һI pJ< W$T .FC['Β'RΊ❩MiJ8keNRꫩ)B;fxKcllvQ4'} scKjv!Ox=y&< n"T'$ 1R j#2Vz@mCݖĊ+fѶ65OTA9!L>R"5N2-+ñY!(ZSD+~W^.ܼ_y'$IC_m iq0[b(b‚meԛ#~ɖԘ!["/oz6nNTHȺ㢜\WTR@}LPrh,LXxr zBa?Ejctx* {n L'n٩UOo{yJqor_-a˺-!ŴNgs]|kw\9h1Y1]f*QA&s׍e`eNecr% %̼-\Ե aobL9q"vD0d) F!HWG5KZqD:[]yUmnX0:xB\][n.ՊF'746*ts/u_X 1]B&0S3I$V赻L-m4͡XUvVlي_/DZ2~++e1ogʹRjr5cb{2[BD$غ[9Yz8sDX skM1"E;+˫v;-[60Ôtt-x(! Yyd#i6"}ys;CZ4h|5&tQ=o_]}^΍3ߢ*<|&8759-"#\e.Z nM #qMPMNjL?؈-QAOun7GNaLYM2짰HI`(Y9`2Qtz=M^tQpa7U}~ } Q~ԉqp[va"pDWVtð-Fa#,<<_<DZ2C̟fKEc)I# bf ēĤQd>VRitZ5u2{|*:HB&HTЬ$ٲL~ c$KgO,d.$|xiL4|oko,&: 뀨vsjem/IHyGHՔm}u#o63-U5Gsd4.3Oy'?؇?2 ;J֤f*l/KU0( D $<uXĞGXIAO-zc`o6$ dsڮ](FmWP Yb$Z۞DZy-9P%u"y 8*Ym),}Z?%$ ȻkT1&ƃ􄂅s][᛫>|#In*؍3o X|&Sb."A\]&Ed铙tmXӬ/@E;sbAiQ(±Fa7 67$׭oӄ洍G `^)p[DQhAc<(lðQjvb-BVb݉Cȷ綻j3x@;l$<$9IfjL{b0v͆pF4]Yϫl%H&ђ\eWY7_(W s&shŧ~6.#ntnqSH{*wB o7Gap(ٯvBy_SgHW\)8xh囒ss 梣{W'M!Eя7Ʊ&1K (Q吜BMoݬ_ XoPy.%kOȟF|{'21'R;JjmZw7ƛ#' PJΩ{'q=ʮ%eٕt5}ijr|] =2~l݈wXn){6 \^m=%eeUi.#mvG6jKx=y"5Iy9IEcD % ¾%"c8/bd%pPr0e8^<%%qWI[zZ^䓊܆Rܶ] %Bh EWC̟4w#oh@idFOwXU|{'? +xDW._Ϻr¥b8|72: +1Bu6;͇_?*Cx=y"WmZYS_7\.1]i ukE2(j K5m/z|!<_/bd$N0<36Øg57Je?PN-4e]MFAD"sWC̟[-'O\?}r~-!Ox=yΚ ^%$ H\Nnh")~Kh\Tߠs0 ilv*. DZ2~g7 J,Ʃhͳ'sŧ`2:n Dp~D*j %l7_2v7 3h-bȚŸC̟eu$IZmg[]+PW4q1I#D=%ȮD%. DZ2C̟9#P%)JEv'tXi$DmʚCC'JVsQSeo@fC3'2Ԉw|{'OEDW!E_T<-8[hv*Rcѥ߆ES)`~kx֥a\7Go؇?!Ox=y/bd%cX1VOHev8;00GMUlfB}A/2POå̸[+Th_RGL+^-a퇕VUtG|{'dCH"A4*p<_<3zDyQQqhC G^'2EͳUala Ӈ9usM-#xzH]{/]SؓC9VcJҏe\9#cd?GF F^ڶ6ZQqQx.6[Dw<&"tTɜvR֒j}x="| wOcOE_'=#Ē~ +5C#]]n~kWG֒3hthFBECt+$MEz;bKOm!5uϒ}x3]iRz[w]W} >Uw]W} >Uw]W} >Uw]W} >Uw]W} >Uw]W} >Uw]W} >Uw]W} >Uw]W} >Uw]W} >Uw]W} >Uw]VS\O"´#%W_MY)lЄH~DnL˵{Ҹ#9jvbٸ(GE]/AnlfNQ(y+SnHQLʗʖE{~g#)ʩzBiy=+Sa@6-SM]<{s^JvXa920qYm篩Fv1;}Tntjڕ4ɥ%-av 1ųrhWj!TlweE-B'a,Yp_bZGԸJX3]Kj% x$^"i)"7y<iT<:`:&S%@w3MM\ڒl KKZfTO"}/6Rempl24v7s~/J a홹H\A 4KsZԺA#n[' u_5 98WJu6dnuT,LqoYm94wΌs~2%` im? gkƥb000H R֧Q+nS' u_5J`.:؊'h\bFZls֒f"5ңbqیd Cn_%c9B}iǟbxšG {ɏʩb*V'J;*H-XlM$w㓩bژƂ~?~60[-<иBeKj:etq&rmtEĄ;KPlo}T[,lQ )sޝp?|%H/k_P"vą-k#!fK~NᬣFRp+l^IRqlJ>B32.%C`+4 kzLQV!h V=/m#מA qŐ*E6mI^3ywTx" :Ҏe*'=gjO*- B p6 %>@nn<1[ġ!%Ks} 3|mN4P-c]l Q)"꫔Ј;(J+QPu{"O0޴۷mLqGP4qS%vT n5g TQ8^:1}2Ҟ/;+elV[+elV[+elV[+elV[+ggs4j9) 'tsDI%hx_ѝ5;Cm~) 4YH6S P>Z2kI;KFsuɢ ikW_yʃao2nmEb˛KmJE4Zv-£UD^遖C[v_y#;%hГ*n6aLN/KeNKt]\6)ax@h^uS8VmNURE衐È`cp!O|6<1=+-RuV$)֟s)q r. au^!ծ ^v{zF[3˔muR_JTCu1nMfQIͮp%6S7 mP݃Ț#\kBT:^r0l̅:0xfNmzt4iĞ,H{TMzklqdpsp5uۙ}ïtZ⠲*iُaX7j=4 HS7 I- D&0'8¸1BUfZ Qs0:/^E6D}itT"[]j>]疬[qL2ov֤6L\ʝ:.ũx.:AF)#Ih\hv.fʱXИޑF/X|s`~bW>_7L>B+׾m~zعb-gi%.JݥYEjDCq&TOEoܤ?ؤf%mZZj'mKY; NgZb%[+elV[+elV[+elV[+elV[?ҺU#Byus<]+FnEBQ?km_So='PtH5yHkH+/5`-JK]9BT3)MÍ9[UTs-dy*GD\T'a*/OdmL׾-!1AQa q@0Pp`?!P/Hk]q~[rC]1|)9@Tex(Ԅu$ :i #ATF &պYBAR>?3u!$C/ İ@m Lnꊰ|ȨValTg4X*j΅hAV@-LNLlHt"gVu%u<d%51 Z#IXtmF-r0E r`q6U~Hu Q* Dj"J +v7 P I\RC#L`JEe FɚԌA>>EK_vgYq]@袋EQt]WEؠtQtP<?N8?Ns8NCS]WU]]U]]Eؠu].08H5#dOOOOOOA}> !dԋeA-Ii0Š.HRq ƙj%@"EEؠ@* `]O'\d `eqC6^xMV8l.#$(@(`%N 1 }t]#(]T"=+eQ|AM'Cruۈ *T? q&"e" ;k@)/ŨEv(]LyBujf<nBcOQ:qiǑ? mk쮢HG$)M_):qLciagEs>n#~K༤V3eغ/AE[c|GAJ}Aza0xtժ܏DTEEv(]PVBx%^( Eΐh KTb$ B,EDkbY5`KzfhE 7&(% m+ZJS( l0Yp޹EEEEt.␍Lmt.u..:tQtP .EEu]EbEuPtQM;"KtCn݋Vl;SzH2,]袋..Eآ躨U@;UN|g-|3CYjrc8C֤mkT:Nu\_:κ5QtkWƮ5i,.a4M6Mm4M6Mm4M6Mm4M6Mm4M6Mm4M6Mm4M6Mm4M6Mm4M6Mm4M6Mm4M6Mm4M6Mm4M6Mm4M6M\EQEQEQEQEQEQEQEQEQEQEQEQEQEQECVJA+6P);g6so;g6so;g6so;g6so;g6so;g6so;g6so;g6so;g6so;g6so;g6so;g65 {TQF\x d[eP29ej35ck{-cP/v'M`.ߵ"#A`0 q.c/B'@;')"u4)=`bBԠԖn#P{D !/ @{ '2^ 0D5+ʅW%rѶ!t4qe@A5S ؄T Uɡ1r8<7%E'r *bHsL|xL~X Ib cAeAÛI",.p *JcQS,d^*Uj0n*0N ""V#V)tqKv譈ѲN&aԊT&,Vܝ.B-vAtk&P=svzа B.D, #Qȃr&  FbkN(B%E,iPR9e7o1z&d=(J RAe-x ɀ@F1v ƀW˕IbXIo8ݼ^׈$?8ɃIbK (lWY`ߨp9yEsHK48Sc#Dt9r7o1Z68BF7Jkhq%G o8ݼ^׉@L"4}-dfЏa9@ )^ZE7o1:\H D3p^,d=g-G.Z@*u&/m-Z0p:p(Џ} eTt2w@Pt!-M~www0~e<fG3T>e(+@0q l1ej@ofsvzl606LBQS. fʆRlh)iҠz7o1G,%oO(@y_x{| 2=W7o1,II3@jl!1Lcs,љ ԡ @~eO;A b!HʸCR4(Y L(j8A@W7o1nc/8ݼ_ >0w0TNSWJ2P=!  "])@o} $@&@ ~N7o1hL9(tiZƯ s}PM"҉VK<!C5$W"`_juΏꁁU,aXK$"8$" '2gbdA'5%@1!`& 22NO0W BE MոԚ>V,\n0Q(uM}BCƴG+Bh8ݤ?K'/Rcg8X6 `En>EԂP"{5B$1q]AQv4# s00/mU<V5#GQ=Dz#GQ=Dz#GQ=Dz#GQ=Dz#GQ=Dz#GQ=Dd>D8 .Oo"0c؃j!g;gPe i8I'2&N ^)rEq-t FH4VrUI0v]LmNLCTaPAhXvIHT CQLFj@ H ,^+$w* hS5? $D!0z50d:)!HM gFx h8UY@PdV"8 9$*f)BI)@6-ꐩ,L$R $+Qx(4`TV1Yh@j(xm&.(_48 &6IP>`A1*20 0=S`1?&vXP%K^M ,F LL!(hg^3ayT'*";d ƒlЃyc 1h`/ @d_3،cSA% f"XWY R1ͨH] H* .†R[2n IYT!rȬ"'gVeVGZ$P;JtC$P6)Ajq3i- $ AlDq9e1$AooEUDxu@K)\D_7,5aTD >Q35eʋPV.@A͊Cz'=p+Bq`-eM2,!n#HB(Zr ҐOBsub\`Q3Φ1P s ѬBWT{AS'5cn^ P.5PVHsVGIEuǡT?W H i#hJm7(=$ ei Pxa(J- +7e#$1@d$^Ru >1x: J Ep&&Xa1*K>6 %JH~Ip21+HB~ x"l0H'%5ah}76,cwDp\5ā^UX [4 U 2L!xYaP(50s J WS8@ ` jjHFb f 6CrVY^`.)*9aaj ZMB`~T$) --c?0LMa, +Y$džPY⍥ iC`SG(Cޥ&Z8M#J7`- ~b]I@EUȰQp c:cQd`ĭ_0^U0 "Z׻ `У PQӶ1ސc//@%X:)3pFI\xv RjWZ@ L5;\{5F! &RTBJS 3g'V(8hw`X.i&pC.?9/gbCQDRz(dhaCU#I@l #%cA!3BW! %A9 3C" *m !8k+&[ɡfU ^:R@!&4U mGf΢t90 \^ðɆF.{RHq/h $x'".gg`T׍3iUIfe`BTj@,i t)}7)XP?*#VL=qTF(%T;#c}sjpZ`}p.\0A0!NB}?M'P0  I0) & P("A@I$I$I$AI$H I&I @nol&jD5[m lg`$MQHS@M( 0@C^@@ A Ir) VuX,f3B-U^ x "Ц AL h%M~b @C)Bm:$ N ` Suc%I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$A$H$I$A H @ @HH I $ A$ $@Iy1q ޵@c $@@@ HH @ %@"@@HAI H A$IHA( @ cNB]3w6dLƉ$ wI$I$I$I$I$I$I$I$I$I$I$I$I$I$I$  0 &@2@ PE h $A4L$@ @ $ @.a!1AQ q0P@?<3<3<3<3<3<3<3<3<3<3<393(.G[GM-&V9#p5zzUhTi5@Vox|P~s̷ mIGT{n.ߜ v_weEϴj--t@[iɗ2!q])V9ҿ0Uo[_]6ӈKXfά}JE@,5Wݟ˟E;1vՏAt=2@m\i"9:@z{9‰SߟˀT_OxowNG|kIceAz[kWO{pJp="%En6_ Ⱥ Fn|"Eu, Sw"`vC6:wwF*ҵ9M#]7O[jZjʋxep =5{_L"n\u41*o\D lݽݎZշc Q+Fqueh/]^(6 YkkZ{M,Mp)#*nޫĭ=;mUxڴFlGPV^ҥ-} u 5v55V+{m;o!黥Gb?Qû_2]CaZ=vUJ>-M,!1AQ aq0@Pp`?4,.NvU:o7-/~, l`,rG`K3mN{ 6z8O68. xa8]pl\{l -.6Y/`m vv:;L,vgZ־}k_Z־<~->-*VpKKb/|OkCP9;ܶZJy@<:;],3 Aq~Z={?[&K}o-8Pgo[%;@Zftj- .&-'ֳ8/=P'w'1cem{#xH v :=u0mxl%آi=lA6\z7~pO g- afRؽ Ό&b/Ǽ.[-fw@r.X-g2~=?O~=?O~=  wpKZ7-^K%X. V'{oո%=F i|ۚt6B,1}W0"T!B;lD9t1F7t."РuymVѵZtks/iKIPr1W|@HkG;@nfq~z\ň.Rރl(XҥT )e7q|9Huf6%+dmYK)quj,R)M@y E,BTL$>n@ R9PӞR U"̬0Q}3*dh)FuE^|4xe<2O S)xe<2O S)xe<2O S)xe<2%<2%<2%<2O S)xeà Mpm,zAF._X| .kЕs: 5 Fg%D<R+#EJ*k]#p7)?- ^Ke9PV h9,̳{<`Ә ؔn۾`N.~nubR}N3`ЯUT)(E ęa]5B7Kuw [A Dȶ4T;jPb@J&QIi@"0o:f *kbXEo#gV;VP8Ħ˄`vWw͏+"@Ov˰uɗƫn)$y w7m2N龑0-mB@y@0qn3=|*'8ՈMS :!tn^1C0ċ7YoFJU|PʾQ|xmƲUtANr#(@HU}\u"Ѻɴw' N=G,^s,h2lF?‘m9W"!Zu)gM:F 4 . x <hx!!-BHPRJXUگUP7`V7pG.$u_]/0'D ]34x $ :<߈]@@7 0 9?x*׀ sfh9w4A0MS"?YwzP:Yre|=GaDZ<7{So~~簿sep_?sp=__?s?s?p=Y蟹蟸/^߹}`׿sֿp zXg>SRƵGD=!yҀWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWOV$)?W=.Jȋc~߿~߿~߿~߿~߿~굧@K.kOW Q du)/cЁҕI#ОDke1uZz "j4|폘J^S'Bc/d~]*#I`k7@toZ5K#N >Wl7kΆ_W8 'PH5ZE2E( Pr"YF6GX5V%QbY::u,jKmS|s,fUAK70 Pzg3<ge@5_ʡ&%mGpa⬠jTBEq[W7qG[& 0y` nCEDZ5aC˩k,UvPY,*=mrHF άfYpaiȇO n U aȊp2oAMeEnVE(L-o!lq>QDmVAE (i|L",E(#!Eh CE} $n U(3QrԫOz|Z4\Z̡4a@OhNG+"@&ɜ:9G< wZr(5cG$2[ .P]}h7Z_UXRCcɧ}J 9IjIcB# 0Cd ==0Eu3Uʃ4ɨ+'gW)@C= 8:Kj u>B6Tjb(ڿ-ָ{ָ{ָc~)yME̐HHb\݋B%:6Kc0e&}( nN*e dr#/ipjo5ԚCUKK, -p`2 dqjB$*h9_pv[LP=nN\$ ܲcfX>:bJlie Y7r2w ! ,XKJaCwW+†t fL7ro?0CK-LlUDPόVIX~[K5ӄ5-ykʐ"j)43橢">f}$1; 6U}s%d ԃ咟 fA v(GƧS.*j  !b{Fp@dW3ApP&U hB~Ua(aH8 ',mFV34BX9jPEK<ހ:/GA]L&X"$?< :EU"U,QP@+-aP E"bA(d[ltQ?\~ccm꡸wJ'-5Aw6bU ][2#VM6V`㟌?1O^ pvD&G5MO}z'8o0Z-ܠtGʯ#q2KW 1 $ UhZ߃4g~w׭qK@ A-/kD,Ѱ&Rٕ]XH~3?;ָ%,7`i4h X:.8/}N9qFjIZd4lD0#"nW߳6&MXFJ"BE(Z@&uvg_dVc-t16T2Ĝ?aG#Idt0 JTJ;nlRg:H<+ *8bSQȪM\eȯŤbԁh͙Q E`>R`^c@LQ*I5C>k}iLbVɒ ÎƁAD.IVgUqV5Ė0Dl͌bBu8#GLsgl}u"GIe> I)]BⰤ-Q؀ھ+XB\%RW;r&UtO<*?k#nq[tM (_6! 9_ZSϝG]v;Q@rʶ]%2qm|g4XDsp dPV)@"#CH/YCkOA@ow @ @ @ @ @ @ _>3E{o_€b Bnx"Q@6:~4FnWX s*l051PZeZfn4}]20ݣ|Ww`!x#bAdl |NM3eYH!` BXҺnYԽȅV(G-mqTe6JИLʼnT OCFǝ n a6+E-!bZłl B, 7 e> L[<5eWDcaE 6\Xx%ۊ%a*F =!C"1Z"@MXƜ 3g@axЫ!A]@ V(*/tʹ`1p)`),P P;e袺~ fk06ͭ 1zujہ~ZHZ@Ye<`X2[2-d%TѨօڳV yP(Ӛ+r*}hK+^nƲiG\cnTPR٫a$Dss s|KvWmV̢ ti`pjI΀hV[I(l3 " Z6]_DFl[az >6sgSE4Ṇ6ijWT Eiw \_QyFAc idP,n4.%.BZ+ĸ)%HHb *l[TV-b!P`駩GU*rct- dVQ*RԵx+5xDl]-ь&G޾˥ 1u̸8Su\v.e* iYС"4!vP6#RFֳԔ6?9Kv­ U]ׁ6B/0e/ nPeЦ(hUSFN2 q0ww/VI:EWd%&TpUF:)14]zf}VA֢5 KKavޫY`(3[Ռ4պp b8 X0F?.*׭`+q c:9eQV! @kGETgrAmTiE+«K A%FgUQ ;0L^fЕ-22fٵBQj5 0"uAtk$/J0WM.zL!joEG&uc!q5/.p^:t"RCLs]$?Bj Z"aH4g3h (a"*mq  ;Z9N`%^CWg *6 24[,nZLx“@l 4Ps B" tR=*WfJX++FZH^輵[(D1GyhрCuL!3EZW !,J΄_I^*b}֘``J尢D9NK B. iHUDdV AHdE7-3֗c LAږ x\rVm%!r֙b)c.hD#_ZRj]S+P&*irU83tj1Tв,,J0%^Gqe"CS>`@k aW_ &,d.²o} :,v0͛])P'Rh qPP\Dk_H0j0^HDD6ĪDL-K;tWF<]jAKz`æ3`:q(XA-҂ 8ԀúI[+Y[ yT]- rĒ"d藒/SOve;<Ksj_v1'X9lQAG*0DрuiuYaZ'JVI I )vlf'd:k\Ux? RM #bV$jU2"Uj߇Kh`x*M)gF<"Vi[n*DBۗ$Tն1."[_E|:Q8ifP!- CpA ޏ/0=j}g'ݞO}g'ݞO}g'ݞO}g'ݞOooTjŮj|[hOPzlD Gy# -՞Aة$RUk[HIcDW;)|ZkZ///~;w.ܹ>x˿}%Q$A]i%]Q pJ7H+ *f*KRb S%;qhCGJJZkl_\\\_ ".' (KUJRL  rtu!2K$ꊝdZkVK_׿~+_%Tq# P@* H 7JBB! AIRb*H!HTd$$T TU0Zk$c$qwYIl'{=vl Vت D.!U͕%RեԪjMRU"f,ENBIEԥ9-8XkZZ/8_N3Jf|xo~~7~~˷|At5qBN(H2vnZs;E8VUOZBC6;U )*J'ةR [kZItsnNw/.~㙋DwuO=7~77~Hq()3xhU T2YU2qu f#DAD"g .@]8)>Zkz^Ty/腯 "0y{}z{ b ڝ* tIH$Llwup"6DDPn\]*Y IqlK3GuZkm|u/x}UEV뀹x׻# U$ϔdR9Qu&& ;.cL d1v@șՍNlwPWDGF}R|kZ`n0}? J6"b>K(I*]*UAqD-%ll&&v&EXkZ% ͷn nj:` cOMo%[9 JBT8(fF`['DbZkuo͍9Oۧ:%S:N:epʞD D !(EMrTK̜dU]<*I bZkgɫw'/3%]{Un\'S($"ݝ)]+M$ c"6甊h%S=]vQR9QZkS%_^۬{[c\I8| l|NإV,wB%!DT!a'0L)vJ$Ae;TGZkI|YI"bcqDTW%"B]*g(V%89MJH NjǪ`Zk}.Hj$oEDb֌*eS%31K帪bXRI (Um9*UJ5s*vf.grZk>kGI@z\: aպ8DmIA6`PD>8εHG&ӮRaTRIʉZkֺ H") kABbI!cN@{ !f]"@uq"E HjQu󜖀[ǑcUũcJ܈'G+qZk>w"}LnHJZ7$zQq*gIVq8AsjU9羅8%s `KUWe&}8->Zk)]K>G$}Dưt%@b=T] (KGKX0*3ÉԒrh;ΡK9-Pٹ( ks/((FD%*T>ZQH@$( I杳ֻ8 ,gJ)])jVgϞ=sڣGz <̤6wJM[C9njH(Jv!,  >@̚djӰE!jT65")6 !RJ)vܹ98rȍ7vuJQS; H7v8TāC&BIDkJdd`#" !:!> նޝJ)R ?~:x͛7߿GIZYYY^^^ZZOz,ƱD8aPk  b@$A#!d[& M!G'HD`R-1Bq7)iB)RJY<$/]tر$>}ڳgׯ_I޺u޽{߾}R>|]v|ɓ'߿ɌTOD8I@QIc4NCS#h;O !#iJ$bؠAd1IgbPJ)R˗/ӧO[WVV sN eׯ_2ۻwO۽{7X$@c ElbģDhmLi { dpb"$%&Elc&ZF1 ؜60 RJ)EիW= ŋ_>tw=k׮8pwޝ2~\}>}z&_|yϟ]^^>q_ߝx`C$@c1R^xᅧz sǟ{9$}ݷwdǭo/eNt&A V[@Tt kvh R6n|%@ %Ǘ04 WagXYJ%;ic171unqH\UQU|a'0p6IlHID-7Jp\GCb%:B IRN$p@amn E6"@Ra1c1Α$;66WS$ ;UB Ov `[H86Bt nDbq0\a X:1Wj1cS<"?>%\Br5Z/o~?OR|]]u6_\4O| |g*[dPeJ` P!ѡ4H DfX:SL鰔p8'8D"\1c|G*\}c~gWa|_ͯ&<{}衇vWy 1현;@ qƧfɉ:@8 HILDT8YqQ"u:hg;pEc1/~o>WQ{OdWWlu#ywH+?ӸI%4Bgr$$3XT $)dltN$Kt 1%UL;Nu`1c\].zjm\c~/y|9 ^cùgp8v9n.Ѯ(YFlQFFۤئăA6kuU$B"88U$ Y XBIbWd1cyZ{п/n_w_ы=wy޳ؓ$yhεOOWկ~ca@@$2TӉq*[< FdU "*E 8+/#8:"}H"U/bD*vr[* c1cܠ\oɸq tV$;^'m*N ;pLƎJ`fP;NZ*Q DHrWH A%^M a1c?m<3燅ƍ ڝ;۽"J%%B"MR$l;`a"^.UE0T(΁1c1n=O*] 7 ַ5 FR$ABb9j9 lqI[ڐ6M(I8<ӫAPD1pH܈l+uā[c1H[MⵌסZR#In*yN(%@ >T1 R0 HNP>5VvU$G"c1Ͽ7viAy|H8$؆dI"(x!nH' 2:p INh A@ 1cۏg}|%vmx$CC RgGu쀌$8"8qHaQج#$/W)DI㨶 t(IHnzc1cǞ;뮻C;> J&b@I'"IrteeH0 ضc#1}`1cx衇+_ʏ~oINnTDn$!&vD( LxKZTjq 0 "A2Y9;[0’u3c1+մ~n}UEZ&NDRCZ^ J\)nHQn8$lJpr 40g1c:vv*^xFw ;HVq"z)Rno)DŽ@ A0[$wX% mQӶ6P 1c+=n-6E!ykKn_׿=~ y$!DuSWJHܦp7 l-r ^M vU@Bh1c\O$GW\p$Z7cU:% vqvG'M*B) @ru&q%L "e9 )^ܠ$"Fc1r!ERyyK75{ǴYK@D A*x[kIL/$IyT6`*9qTNH OKT܉WNb* 7c1H ɫV_~>I-ƾ8O=#<3?o o `ov ն6$*:vJ[K$m$`[l>( ,I<:,i1c\-I/ ;㳟7]>_IvK/t)kI=7q^|E$}QIxC'aUds$v'Eɴ{"B'@HBm,DeI`vJGd΢tx1c$<>$>O_$$$mWsI^II]Ӹ5p瞻.<{>mn$wep W: Zt(Dd Q@bT (`wq($%1"Ą(! Pݦ(c1o$צ9O{;tm]W\U$%ui IOsix ?}/rw{3\l"Ĩ4 &X"Th`yIba X,+9*bI mP #"` }`1cu\Awk/G뮋 I\\_(dIqvo:LBkq`Uя};.c3۵ Rݫy"ػVv kU3 $cd\e ۘ/[kZ4g55{ `Kc:$[D(Eɥ[ePɖd[B?nSƖ:(]$9F *۲˥Zkՙct=~/S.utZw' AXe %F𩪺[2 ٔDWY`2C]%q9v;Zk~;]-c.γ{ɿNk=$Cڝ m lϤIU]<ֹHFE8" c#Q Zk_G;?%G.*{F$ U>rwmHtAIJe6vW6 AH&* Tn$Zk_Ƶ&yV<]/aܽ8yɔ+ 8JL\lKF93ed ɶ>dDvMB@Gɟ2|ILP.BZkɗrc<O~ }-cd$ W+ ,WJbXF|퇑9eK.,IEDT!0rd Jk_X= Bzy-{{[ 86V`˨!lgPj@P]BFw$HI($w5*[Q]ziZ?_eʃw/~_<$%2Zd\vYd2FU!%qL,e"Iǽg ®ddH˲B ].ʠ{>$Վ9Zk\>zKUwl>i$k ے\ x_`vuG̔1 'pح }I6EDUJ~lI:D%$A C dl Zk﮻lw.j_뙗S<{#Dl-gvkv)I\%+ɘiuAXpl5$qe*,z&UZYNO7?M&q$B4I]srm43HqtUʡL G(PΨʙqsh(ՅhZk?{~/mo?o>; mA\ttɱ}̌J$ H} B|TuUX*IjwWJLelQ.6g$)Z 4~Rد61ɝ&_( IwW>e͌LUf03 G7X6\s;g`Qvw%d8g'c;磲J9MU8V1I" .Z˶^Uٞl@W ^F>.O6ʗv#! e})2#9DEAt9APUOq|vw,d$.6Klz ݋~<݉w~3?HsΔʶEVu%tyNwuuUuY69#<#lyIlO)Tr99Zk--ۏyzFI3%EYuɇl?,eI~/QtUR8f'9>9V%W$ΩFCCA- ΜVUAcXEpe.Zk}$k/~K۶͵|/%_6o vo>0$ιoQ9CRm9GS 왳JF!H!]=ΛvG[3A&@Jfѿ~fy}rwy UwVە/Pc B7'ua{lVU5ZۭϽs<`}tJxi@3wXlcLgOwߝW韺SrSwfwB_&jP-:*^8]UzĢA\k ` ЯK trDPtQm&I$IoW^O+_G;>,5cQoScYZ7%g;RD*J5 %Ka X"nEח0H$&)Z khPC)IPAm&I$I"ֲs8b #=%jB(ǰF?GpܖKt-h;[Wep"-YjPjwZ-qO,ȵ.Qbe) T5xhDCȽ95")dI$?ƸeրyklV/e0?=+q]?Z$LUn",@"h3TTᷖZSfe>#T@>.fz`dm.$I$`ʝ]ߺ܌>d7Ԏ7tAs藟< :f&'%QP=Qպ:VfYuhwqq lKP"FQw>/6!AJDDYf&pnP-Ӥ27p8XYK)8,E/X[3<עj՚;EnF0{P$Iܺ*xj{ \Cӄ[gfqHaM FJ{ xիWԧ?xpqxI AS!z CtOoYQ;1>uz> 9Ls֙Yi23:P&o)TUiQ))5RP)S YJ$IvTx8kPYHkg2'm^V;ߕMY6Hwv21ä/B_3=z1w~w/ 1h@YDlw#"$\ku@_Ót{J\Ku7oRmc5Gst)J]\~~ߏ菞:{}0"?#ϟxU[퍭Q6\I}8qRC\Ea,<=PqB$B~'/AMS!fV$ ](JafM**E{L$ID OwÕ`b/73kߞ~ꏌ/(v_~U|xÇ?яa JwW|#>0/vA3LnqO0 GY_>0vZP: T7:Zܘ[͇pbTmFQ" U$ZF?]4f33$I>%~zmbܾs6><g;]U3403ًg?Y 9ONOڇ"/_<;?qja0SeM4nmZ>wz,yfg`r"-YVM~޽siu^.-IT ЇGDQ3ta ca4M$zH$I{&V≶)kU1GM֕qSgmjxO!`rƒcp& >{ZӍ\Af0LZݛRv5o]oV!櫚Zp3&2tL{)lW\k(Vyd~Mqtq=@zOO*; zTs(9ā0l:fVg s3h޻eRUvE:kԤ  O$I$f2==Cxz`8̗V}{9]5FO36Ƌ`cf|bq&W܋YJƇ3 PFIB??}˟hI*e]baD @60<uzfhq#)"C ԡH墕} |`63-A%I읅sci3ayUOΝTV\x˥ں=Vwv_weL2Vu9oa 'ܝH;y"M ˍ~VdٯzLzU/r՟'l}sƍJ,39}jWN:yر?LAL9iw :r8JѺ.yJ)z ѴՁtltK"c\ f::1 &!s ]hfFh+9xEU5ާ3Czaud>fBA|KղY_~_D԰H;7vٮ.OSuY?d/K='pc/Y6Naf4r>wy> !dsČ;s~qJ~%۹??~yH!R B+!0U8!`"NkʑxH2I"A  CQDe &-`TҶq'?1ֆFh4#XPKڼos3w77'qw%h?Ϙ'"V{ݡ~m?쯧}I u3g\|9h#[7omu[ !>}䉓GeƷ|_ܼqۓR_]y>|݇ṳg1sw3+,` |ĉgϞ9w쵫O뭷|{ hB4aJRD01 VB^h4*`%tPMuO>D47]|78i4`ek=,͓^Čh[#X/V"V[r =5c,,SqhF||_}G2l-!"-[gϷ`֛N]7mH%#B M4FcUϽ13tsg^64o߹3zYʇ:X+^< "V^X raSre^sw33wy;SO$B!Ր.2H bDgnG7FhYOՔ("3EpE;=cO'яވq% D3".Rā$h4ڹ_*RSͩKK瞻xp/L&(3y CFpEҊ&;_j s~WV=]8\1'[\p駟 뒛'@2i$ hѻϔiFh4V };%aceOy֥Q؏?hc˓L~c<bd+sP <0W{ RY0 h4JyV3ޘ\%~gxgcc#7(jҥ4Ѳ"2W\4Y Wr$S7xr_-O=IRDd ѦJFh_&vƏ8KLgX#؞i28z|__rL0`r I IFXc)L9sw?jY:uhc67!鵥{n|Dzˏq[$TlEuǴgEu 3Ko޼{"eRnv ̂ q (FXDKj cB̙ ƣ+&WkU?4X.w^6EbQ=%e.4u/\/HKɌ,b!%wyFh4VHEV:[j/:i*w_`ճ;z>woj8@,U/!4J"OrPkߎBեZdo65H$I3EϾn1X6 (z>Y[XRo+ZӒg}0^K,00ovT@RPKTJ j1DZZ;_k$I$:3膷w 㨐eJ S,lλO, dX6C|$\1EO{2l1jť:D![&4mTkT$Id~i=dԩ#%9jDH!>Өϳ'|%xzrY|&5)q1|*k2;K~ ]kI1"4BT \툨u1J$I 0}MGZG0 +/;7ߌo6QDٲHޓxC$a)x07@b?v.[oowgόX|*+ԋ%.7\4H, K,x-1+xѠf T!Rˠ!ưe3$I$kӕB}xk<4ZHb7?c_fQN[%ͩցzѓűJK']'~?o>n"-u|^t+I95] U|{$kqk1A DJw;"%I$JxnjS_bl 3sLͿX(`zzd)xDA|SbMܠ6aQNdd"5woݻzY疏Ԍ?<'o3qzuw$b`$bD5Es,s= ))"d!w/h$+ Дk|A2 '`f%i"B-Wr)li, 6¡$I$Y3r s̲)=.4ǝc*I3^؊S]=uҞDt6ݔԋԂs?G~P/A⥿d 4Ѳta__/6+{-Br@uR~*.uFAmۥ$IdKcǏ8]z$YZ*c>c3D̨)yz^'AS$FmRG]:S<cKp{X멗Nyue۵VWM J VۥVjDJ$I:PT} kۓOyf޵O3}soIBhͱQ9@rosC |]ߡIX.ase9[M# ͨ)ָZvπ,萊`ʶ"DQJ!jq UYF$I$MWO0`T^[oKd3@2U,Zz1"Iw߽:rr U([_ӧ.|ZtX('i}|(aJ #ZU@-uH$I"mj!LؖWGKvai'\eYrp/&K> K0hpqpr9gJӧޭ[]OyJGG3cDL:Usz?m|dܹ/1 -otIsΖ:[_:Zt5B!k_@U_^~-{c=/5y FFFޯqdYD7&w_:&Q K(}0te 994pdQ`d2Ld$:a)a-4 gSDX BEP uXĞЋ=.P  *i͑c FF^{%/~ꫯ~!>Z$ >u% QֱG"Vwz1,4+Jc5 A '+e,d2!\nI'I"IB !9Ap$c( Pg·m_ %@ $TORSn"e ߞ?xM|fql #{@K'Ů{̏M 1VNr4 + ١y0\)[а@&d2B&2w?xT YULz1ڃ{$Yr!`[F9Czj:CbMiR=-\\|J4V/'{׿-?+^ϛ7oŊv{.Z~Gqľ7' tf͚?fm捣׾.\xG7[>_Wbo|Gy+ ,W\qZL2;n3fOrw|ɋ-js7;FϼxI4%]SZ;[9@9H-5g,&!6ea-j:e ҕVf4 2L&XBKl!n[־!A{m{wi c ::0>G[|X7oF1ɕ%ЉC^4H06zyqw޾`7_6N?  ]}4zF#j8e"v}w8o6" K_"V/1^GU'Xt|34@Š#AiצCGNbEVi쫇kqư,=Mk )1FsfaF0 a &L&d14LfQXָ]28pWSu?7 Pl dArδwSy$ oy['<g)K,y٧'x▻nG޷¨?XwJ5j?"{j=?~{o0\~J #y;މ-Gy(Eu@ѩšX3Y~e><ȄARE cs HkT7h r9,f|d2kfaZaHv4.T"i~o4{@ H}u 24cP89IfF$?GXl<׾׿mO~򓣎:"j:cx\s5|"8Cq.(NG0yn"o ]v @u+so.8l#O=o{P#;o} Q[tW}C./iK0}|05YɌ^3r1hAFQ@0&d2XŔc=K5"TAtڧ9`]gL@xvG}`EWD<$$H)ƘMf̚dxͶ^V1%AG?#<W[Mgon? @-^{m;κܲ,Zxx$`>/CD*n NA'?a9o~-fM?wwv >sab;kul_@}@V$A:AX:[t% '*0qd2L&\+i'= C@R/, ^dsA/E:t鎑EFÂ6N0&\mA Fd{ӆSl܃v2V ceb_Ǜ€ka|tW\wͼ=þfFSO=-;g. vȗ8 0Ϗ(O?g0".<\Tɦx"ߟ ϲz1/G-{ nSW/UԘ)88,@ ohVbk1`AATaA&d2KIKacjtC4Li zià^ t娰Dv:00f"yŮb]HDX&IrqF +\S:`lf q嗣x' r%\|%!WTCgW<㏁=g6zc̙ Fq#W^F,G4y23c48[ ; X'-IwHI 5p,)A2 J*GͲ$ d2 -da y/$*'`hB i飷0,TLeld%̆ q:Ox$00]21ο|D|v(:qYN.UY̗G~˭K.Z̜<K3g/_U< ̙v@D>R}lP):K]:Z3Be44t%@Ch4h\顡b0%l6 d2L&3ARm..0n8JP-K#ǢCӚ?'΀Ȱ(, 4&9A݀A?|<r+WE4-;إXW-7Ђo{g-{1t{On6h4}Yz1̊D`0'J$Hp4\X9giGVj 5$gD d2BR:S(:Kj/P[b@z +Z9D_@H@7ditApqR:K*]f0]8(t>DJXZ@s  ]hOK)d2~ _SdlU8/WÀ ᤴ=AHm:ge¸ #j´$/-c &1Y@" я~tg\}\pХJ}$tcŊ{׎[m v,D}>ϣşgD|sV[mG?ipIhś/O9["⦛n~CD8!dzVnpԀa >5$$8r~4- TF)0At`d2LNKp¥*Ra ΁Ά/ (T `-fN(;L4lp-NF&rPe;1ko:3ιN=TFiIEQcUFN8o} \^߆lm7(_&P >nǵV6Z8%(zk{>ғ"HJ Y6Ktd 5!idJF91U2L&I:x¸JUgLBxQRTs,%4G|Вa uʼn=D7zAѐi,@8*r, ƻoI}EXu]$pe%&EW^x?W5d wbFa@cR. K꧜W1&b`}~A%'f)Rr#`qA&d2HuѰ6IvieW7ȯic 4fTNRhɍ} 0=&Y ;6,a@vӐD{ 38xe^PW1ʲ|׻_|s%ײR# ~gzPC~/"擟̣ϴD,Y/}sk|7͗]s"zۿԋ"=DxDhK]6Qzr0NCCl: 䜓R"H,8ixhr LL&i0,W6^ I"\q1D%dgNO|䡡? ?CqvL<I@ FA0$.p`Ζ_X_7&Zf Zc̪UbnQI>q1`8|}>IwuW,B>~[ll6,YS%ċ3wS57\4vi9vxՐH@ʆmАHaJ5WZk8wd2LFQ3jKNO bjPMë R 7<#9dm5kOMw?.>'F{G04 q'̃$݅`Uu&)DHU;ؿmo]:9pօbH v%r-^p@9àb~Rҕ$%,PC4rNR% @&djFagLeQ0~cZ<2̉eA\XR=x&Q&A DH!"`b8r=F\Ez%osw70`Xm̫߸~ɹO,[J &maH2CTDP6ai'%b_x{9bB { 8V gz jdwYZlt51GN`錁-, a`Fecp d2LCm8yǭa)N%$b5Cu ) #O<즻܊Qda.[S}d%SG <%$[s2$ynŲ,:W.za[Rp{nGS".z"eD `/Hh]^LWAzap SVXtX]A"r0zuLC98SҐ4%YC(#!ڂe2L&3^2u@Aԉ}|/tV @aK5*. B% FySVF)Q2aP"P!x*51:c +g<{ʌ=5(ȧsƮ`|<: 0ho&ܲ%wqǭ1dOKdnh5ta}RmK턿C; h 0)(QXeY4 8cd2:Lf Ap$D2tI&$@ Aë3 mq0H0a=E&( R\8)FO-yD ' J $}?*s$C}LC=A#3p"ʈaXWa>a_%6!&a|J!vk_(c5ȬD+Cc•@&LN}1S%FR $!9 :1$DjQ|L(e]v) _B0;D-T T.P &jLh# 8;b d`H'F3F8d_NCR @O$F]HӶޙ%D}IKoGak&;s4h~!=+egM:=0`uBg+, FY&dH4 ] ):8lCK #^lnӟ =/F+_J>l߉b¤`B3IV&&~e`pOLͦZ4vD1_/`GMO `Eu=ƫ`lPJIKQW@Ƌ~LIKp ݉/IfI |Y4&RS<փPaCuYjtNZ;jd0HSdH8@hd2!$AP.ŽH9H$1/dܹhqǿx2a*ZIԎKкD)$qtNj@B2mx ϝ7L ‹D5Kwm7r+Mж!qp?-ѳr[pj bbnқMlD`ݥHe<5dX C8[@k`Ɂ{fX@Jd2Lo`$B"( HKhVp4DB7f̘{{/]y͚57Cvک?yO>c.s$kJ /Gb ,Ai_&& ntq/pYgs̱\~kvmGOp=woWN;Ŝ9'?OʫN8C\r :̟?-o뤓NHˎPF"?/I&vE06ơ_PQpSSZ|P Hdԑ1%JʎrFEFAmzIV W3\/K=s}DժkxM0~lIwY^@DIWc͒ cih\Y 7J?h`4d2 윈d@@B `DADB:j9K}o…+V@o»V;Vyի^ -s YTT铰 .<A*"&J`AcK|y1CC0 RǾaԩ]?ˈ+?vƯpJ Ġ^`*3ֳO/b-~) 8D\.)8T@BA~* TE[r-5V `h [ d2W 8!ĢD{)PE6I.GC9N`\`9sԧ> u]/3Θ={ 7,~{ރO?pa[k˲l1;xx`z%&]1 d< (Yyr__w >hW\#$?]A2EuQ/\Amp<pl~fֻK}ҥ$@8.j"c)&C())6Qno,\(c(p~AaiPL&Hš72! Jn#A $ D [# D|Yh˽b9bm:q'|0Zwa f(r#A0-4psNd/H~vݏ/%`Ʃ/j ڐu3$<Fa1!CT_DGXRO;  @)MٿD7KU,x<+滣RC Wj Ωl6Dd2LG$~& BV2W8 A8_0!(8~ؐsEAV)ќ"a^D B%Bf 3{M0hz`xTu&BR/̔)S^y_j_bo#cڴezyT=ÿh4?"OD[zTUT ("(_pZV+e?Ar9Fa+fµu)PL&90!(@@* Yi@#$PR?!(OzvYQar*GMr3 B0-D]F'F`bݵl0| VVg cb\h7Pe9%]uUw}}?!4GzvO-ĞݼGYk§ 0fM`Jﲲ?*m3 "G\-OzmDg%Gσ f\ `ꅨK(' n[y֙ѬLA&tңaY WS#D}(} o89ҖҠ e #А!t5Y:L&FD] XA(WD 40xn;t#ġy|ق ~ieYUX/%$M-H/Y!+ܷA $ŴOZ2@G҄a/$T`ze3k%Rx1BXlOh41h>փ<  UzcLPz^Pi)(Xc\錡+5 K#ӾLkҹa@0jd2v 2ztoX$ IHK0m< ZZɾ_fo?")M62Jä1mS%~bk@~K"|WB@ UtDzњH-paAKdR%g}|ZBvϏ'饲/}ZZ{t[9篞uY~>44`޼s/?O|ʫ^Jg^$yH6mq[N<>o}Qֻ첋ZιG}.1p}29-$K9k8(eBzjSMc$@C9ИIT2t#%~F-s AS2L&S? $!!@T bEDƢ7ߌ/y}lwG7|#+W Oj=16" ~8d|չD H=y/ DR "v)% 9{ڌ)*'JF0 xm hhnE@[M{ZҸ;^xf oI}׫SN9AasАy\s :̝O׫?}9s;Naeڴ3g\pFo:H,5n_{/&r%Ēkcm}5aTxɁe5hrN։!AQF MQXIL& #8R@BD괭~N (#&'@Ʋe8W"&jO='?yƛ7lI93_׎%~Y=V@±k A$b B4PR3=KKn&ooѴ%c0"wӃIôDp0 x&! k__y׻_zos^s=;i|~5^G#zW/c;U1|_/J /l6~wy83h=i4f-5*v` bX'? zfYGzƁDeVX'SPze$*PL&BHP(ůT2BD{H#&(JP >^-|\MYf7 -ڿbI1m04*%SnOɿQ/d@D8{9Vs6n 1sǚݳNUQkh@Vyf~wzpϽ<o=aetf뭷kvF/^5 fcۼ m|#Ij߅C9z__FÚ~_ǚծR_oB$Z(*$0074܀a;%ВX52biYXXvRGYkd2:#@:MHh DQ%cpK *va~[m5.O#Ż1;3Z{aMu5j'rJDx Kl @c?PcqtԌdƥ>Sx^8a!W뿖r" S4 ֕#ML&$@ _3:KȂ ^Crŝc) G[XqviؘԱ#L[0=!PP]W\>4$}շ tu9w7Λ7oi0~n5qUW5-_Uj駟FĪU+1XdhL0F cT,K|`lԋfƗ& {hv?')EAPQehQJ1F`1d@K+L& ~w-F 1%  CZL"Tk..>>b HJj$m$v߷f጗TTD.]-*ގ9\V!S! ҠM^08TUQd^Ȍ1ީҞ\K`5nҗԫ{챇/\g} f0eRT4#&+j4量Rv$84 -$tri yJ$)˃d2Lop I_\ -(%:@$!4!lm>/9~= c")/^k?u^9!m4Q6LE6DATP=r՗_s׭KVPG? `]m^(1gܷ$- 3T45ZS4h2V/ 0:*SG9,ʻk|N:]B`4y:;N'g=o&ÉrWU7KMKә|8reY<$56\L&gHA>I^t\11^I#ǒ!߿_lH '5 41h F'Hr e7mSz}~ygc7`w޼}^2p;w@ĒKm[;x~{wcTnV&^z^ٳg ^Xkg͚ծNVQBXjEL|+yvQEV!UB(5Fpt2ppZ5N&d%3RPEN2c VzQ{pYs(b0ƒl bPaFdO#Ž0`Hh.L`:ɁƔ. |c]B/M6WUӕeGy@>Vn:Bd{\x'RpU7qBQ s*sp]L3IŚ"Xe=#6/C Z@e)ksk2L&bYSKuX[nt-O!i10$camNEM[#N-gX}k`ї.bi4% =[/\׾2^Bs.CSŌ3|0c ϓ!Z+m$nOƞ2aZf&On+&xrFv<׿?w^IG{nuC<{%z?NmlǨkXcQQl>*(p8(bB() ^WJ9g`0ؽu/Y#u X!N' PZ/iDL^HK};r<YW򕧟~xy7K/OzѢZnGfRa<,g_E'v@"GzXV*tYFj,`NeRi@,'I +1 (7۠ӎfj `\ LK=P^ Ջwr9FlX^ 6v~Y1E-ҔBZn<ȾWߵaX&yӓ5]Om4YؤTlg)tZyY 6vL^ 0P8?عzk@kNѺsߋ@j,?޵?V7tѵ "\ źos_IͻͩV^$34RD 7 J+˺tؚ"X,oJ@Y`0 "<ጪ>rA㩩b<"w1kߵs\K{ {NjyoZ'\t_EAHZk?.7*>P X"`fX`ßoffffhr{fΪ%12C[QUubͦ#A pS!tߢL3`v M &.Ip:3abt?eJ퐨#HP\J˲\3R}FXD#\:MB-5.X'I}_EYyjNfczhgpONpG0IY#Ց|?U?2LPE 4P\Zuqrյ/v$`>W' F}Xpq?.Kjn'btjvJd:4 aHn@?,cxoIáOMց,0YqU6J>ԁ!ˆsdΈo`O RoW?xαN1w{y3ڗ Gw$s?'_j_ڛːu:S|N2F5<_~e4!ӧol[nc"p01K- [)v'DӑtHtv4ZV1[$.*>br 裰YlIpĀ!юERF&W]o. UP)I_ȢO\҅_>Eϭ3".]O"'^i| R~L2j~jb^u&?}+A k_Sy;Xxa功l{q'-~HRidr3ϢO sPZ|ojE=* IaC"*^&9Z 6k21։Q-t CeͿ_⯟'~;2ݼbGs^֕{^j+w^9k/_^_C?,歐~?y<ߥ<]<9fW=LxÑ$O/X3Dǯ$NQ ƴh&K@dl2ҩ$Q ie!3FsG8]Tf(@c@cQ81\mUz g#tC>ċ>b2Dv r #s__I@MR}0搁.@ǫ#>!j?!~HVt!g,# ??Odf Κ^ԝ:`P~&z#* m+~ŏGR}^6IK`g_DH1`C~柺TME2&] e]᚟7?Y[~­#'8,X~߹[P~, hN!?oa8,f#$ dHٯۣ`i3$! Q7W_9;շ~/3FFMl݋[Vs o9oޜW>s?w}٥|,5z">>áC^|p]k]\e1G{̮*=QzN1oFBNaz:ypL锧 - V.GjaCgfg]IH*m6Z QL8* ؏C=m; KT<=̓F ?>붉ӠV%90]1algAOCEX0 _HIR~"$I 4q1 ۡO,?8?QOɡ}~>M.-OnCBLdaᇀWѾ 쓄X~@ z8LS}q'j'R3~bmrldryg8PEhD\C(?1??"TO>r='Q)?NGBʏMrӤAg"9or s`2tí/+?k7~e/|ܟ+pDgWy^t[c#6۞ dNI^@󐜞tfkevc6fVmEk 6uNlWMZW*4-׶+f\'mWg*[ܒi6Qڭd泿k!GG"Ϟu]u]W.l]]zv/E5Qv \%)lZح~3BQ +G#PmRlcR9f&m$H39qQtj p6X3of>[6V(X5m Hfe7?ꑏm'd`un~<1O~n~(6$ &mk>tb3K?f~ӏ?)>ITl3vsnUGNLeghA3Orl3f{Sγ~Q=u<"yNZ3Εdp(Nkq`Rٶ*63fw?C'~_}h?oA=wDWV䚑 FO.i5n00k&tԖ%m[4W?ڎK ">{,g>[>DZpzyG~e[F !GjóZniA2o9ُ |Y3aڕ횲vP}ζ֌s˾WۘvM /K{`޾?^~ыQ~N++ߘD~N6Wz-h[~*}o|?߿]oz-aPӒLٶJ5 l1U\5ݪk 3 /=R j5>CM؆b 6*f8-S:#A` k]Xn5k4mP̂kЖm˻T'U)%`4h1Ɣ|?{ُP1yqOGͲ0~<0U[ZL5~lX~ ??;1vџ4ً7? /?>Szs7 mϊm<ϟ}h9*J3Ïv^]Zz?tsfWI;;egH03GuvL휶m]Bk_#_|Kw*3Ļ>3#ϻ5uy69S?0}y5F_]y??]׷o]mV{?O Fm#EɖAkJfI@W͌KdSmckXΆ]kF;{zڶqc d6e@qtMeT,mift,%Wۂ|6H|ֿł 9 jۊcfWmZ˦1\*63-6ԞV5kP0@^x/1x'vcg# #6͏q!7?Em7O̜\qg?ibHY=s>OZn~6j|ڶX~yC{g)lK6HRF|⹿7?|4'k&sNi,Yߏmlj$F{~,U?OwbӟdLx$i~xR}goZ#6]vs.:?-N]YV%f+iml6CMб%خRF,t & ]Jtl5l,4h6٤êlybU4m%a[lA賿U{QYW-60q󳱝 S|/O٣~7?->Sh/l)xχO58s~|Ϟ1aj7?͏'2)/~62g_ OX_|Vbv"K | k6?҆'Alg?7PMN~a?S~Rb:\3hX\`ֶjUՔl뜮BeS Æ俲]Qy^Go;&+_~%iڗG7MM~x^/_a.w7\kz*mfv]`\vR6X j 1DgY湾 x}aM*}[L`j֌.ٌE 4lj[ck@|ZMLnQn-6^g?n~?5?>}G,ُk1϶ǒ^Xe_|r|G+;m7?qϧ/槲k?Vs>/~Lw',sa 1.~2{o/g>? 7&~yo1ru\f1iGpδfvm7J(Q&\'Ͻ ϣ}~6گa؏zN+v35Ys~]oy{VvTWg~QT3d3TgL-Ɋ )i6J kp9vL$ kfFR6ʹjR,Xͽȧ[>m i#b>e31֖ kldP0&ll3 a0nOC:|,2fsGVR XO7?ij7?z/͞v>|k?`c6[V#?)i, L60lTn~s>Y`Ο~G$yhUi[vZ=*jg>1~'36j¸B˜g?m3Uřúsu t6*pa;gguن`f=w~C~i8~C^哐G (?/҈~wU_}y6~9̾/~;6r]zao]7]WJ7=۵hh Z,S4c} vմ41mWVچ!Cm|_XSjlΖ*3C[s>K vu-bf|g2qxqO'-{Gݿjl{(=7cu߱<8<%KyhU u7?{'g?s9?.eצzEDgjtmץslcZvw o~o?.!G|Swwc]w|w~;1"^$쏽%wk %{u۷MS~ַo2ؘ8Ү5 #d,,d(Sg.&WRmֲ]:b-3ʒ,iS@,K>/6Q6jiB;bL.fWf 6`%=wBBa`Z4tg+KFz2G>A.m4>31ɦ~ΏX,W?4ڈlͲDLOڥt=g?`1]mm\,WsLQ;ل:\uy_9sEv6?wF؝s 450w3?hr|S|@},fy?oSyu}OZU[LFІUkEDlZKlX6J٪M3m.1~afpҰ)42bKd 6l\L没 ,햏i\F3ngM<烩|n2-m-Ob=x?<_8{1$& ?,0cg?:F~& àX/~lyJ#^ M6TO=4HB5<ŏ ?sF Vy[>žs}Y}^l̟Vզ=aw?n~<=VS~nyXQPgs u*gU9~()+gïؿK~{_/|fџg}}Ux&d_Zz!yt-:udqwouξAϏۈMQy 52[QƵm\9ӘU =׷mն3BX -mLMW;16mh?̼g%rLc[Obm gGF %P^͸ȧfCa_L\ {Y5[zٲS>Dg?{cb~>'>|#i f~#m~ysqg?cI>o~m|j<+ ӦpF~L ?8,`iO?٦6M>>#vS5Z>Go؄>mO?%.fsvVۑ ]yLwl3k&Џ|43ϋ)oy!Kпҫw{6?Q?S1Fl]_ϯ߀aۊF_l+7Wv1Ҿ}\3圽}{{ljEIc6:ں j0h .,Wv]G]d4$6\.L9Uv5mC"d܊|c j0H0h=3.tm]GSMR4`0m4K51f=T@ُ[>/~n{>DX7?{sGRtُ.iC=xn5dz皏O?s>6{P/~z!Wp3ls~ *7?[״Iah槛m Lt573qq3<疏C1)v|}{59~j7<ɠ|o? x?l+U\SG;1Q&3ׅyM&~'7 7VA߻}ُ j_?Eca}QPmS*?=6ݱumbu}kXY؀L\35(Ed`+#k6ԌXMVٞfML&4]DSFԱ%r 3]3hD!q#l6VZ #5f"f0} |fK>gzkƋM䳐 m6j=gqُb"|vϊ=d&s>=ö!gjn~~Ȕ6ͺf4G~A6fd\#7?1ڲJg zmi&g/gԋ;?|Y9vg۶cCgu]s)lGZβRW \c>B1N/RٿYW-G;?Ta۲?~4l*lüi!z%7?F=磥FXW?Un~2/\7?烇Њً7?ǰ̉˦늝t:tYكpi7m K~*6^WGZ틿W?{o^ >_G7XOdş0¯lضDW-~޿mz}{\aB3ljLӠVEK TPiqTN1,4&ʨ 1؜_ְLڒtak0T,D ϲ-P.m c!D6l%3r|PIp٣n~K>n\g_RzyRx_EnҋalKxUE?Oy3^;uZ) |\}r~iX`+}gj@z!sYR{?d^dE{?g?ͬ2~[qcMx|_?ɧKWe٨kj츪 z 5avNyWm\m?_U/^1֗@M^-^NֽN+E?rq+_l^_y_V立9uumζobQMWF-¸:am]چNQgf$V}\?iƖM&l#(&YFQB[em]lN([[>mF6me1mT1|l Tn-_"ÙB 𳇟Ѷ6٘llc<'F2pCm?%zo0Wvs]e.Q̘Ya4s?{G%̦dn~(d*~uo?l\m4dǕQ^O|E>I ~#-ڋG>j͏nur様_=}sϞt||n~=ϟ#|ilk_F-Yuδw\KUڀ}NY>Pm_>#G?UmgB~ 6׬"뇽;4榮o߿u~]_ޮ駷}ck1+6aZ 22B̖SfPҦM{)_Lmű$m5Cnge?P-e#B0O'm#Ur|K?iGm7yxldi&d<|}{~я?/Mϖ?=I-QsgiOi~ ikk-m[__AK#{s)| v4_6|G*X߳lΥru1H.Θ1]maSlۼ<_ޟ\J7> ?K7^1eOzmg~Ky{{rspt]߯wb#5 0!a4.W Sp\82yyV_fZ!Tfb6vVk -mrh]OE6frG>q?YиڽG`zm,mVlSͦ,Z2ҒygG~Lx)bFBFa.g?ó~̅Vq떏{y\!ѳ¦VL60~Ώ ckVUUK 9?s~ُ3 ?=ϟk?n~vvPl/~6~vW?gt?')g?ͳeUsmu]]*k\~6]omuRe-"f~ܛ}1S罷~L^Q~(Q)}F_~1/x._k [uoov٪\~޿}9\2il'с ր Kr,-$ش Z[L?FCḫ-,ڄ4Q>/֘s}eha 2Kkغ32[LS,1Bmb|Uj}i؇4,Ȗs>u~L9&^O~W?B vُ/'2̵Om>iZ>|fm6nfq9е<֔ g3^j.~؋g@?dY~Ev?~؟A4<4 ㇟췝g7fOeǼϖm]V߿tMo{6gWo&DF EXZFakC-6Úl\kSCQf4jZ5ZXZ#VS=ꖵ A5!{01X{c\3lxPC3>_FY<|jt*G֮ i@lv3u'3n.^|!h򜏵KW?{rTï'0Sm~޻,[z}7>Aa-n~5I #n~.qulQүOE#tZ42 /~%?&̡~1>S%TgVAZ gZ5&#գPw=LZ c  0Xs>b~fg{236h3O7?S4;6~ؐjOn623fA%|n>=yB٢Bg~ُ]K7wlɚvok>+L{ ϋSچeVS|k?7f``ыs~6sp yAk)=q6DZU9nQSe [պ2c l?q{hg~`OǏ]=Go?#}̯F4?t{, ql_f/{Gn~w9To߮ a+Cti4ı٩f\Сkf32.*[1ݠp-i#m[ j]lm45#h˶ϲ,lL=)ШͰ)Ul[=3=Xnp&fK>zӆ<ɦ=Q>b|\h9rm{4'ͮl7yW>O?;Ol*6{>L]Ќb>o<)#̖F׶|Ze7?$69g?/vor\׵0]9;Rަ-l̶ljGd{~ǿ8?KJҏF֏oZX\aꯡ~m_,Q9Ll@ފ:7߿oߺ~uT1mb%kFZfPI,i&3bmf] ̂hlDl W2#ص&|?s??R$1LefeKv&3@5&,65iX+bhZrq۝K-*K>9Qq;?g0Ǐ!ki֮j}':AjanK~icsͧ>!o[Z5+Ggm4?s3yd/,6k9ivo=e>E?a \ůiCxc_a!,MѳHy>dtoSLnu?hmI۬jL՜o~Z]vN:fuCPOݟx?O Maɍx^F3" F׳j [9y~?\W]WWәoޮv:ځ-$pĢf[E6lD֢lTeտ,9k&g f䥾 zrχ![}G6(ue,mMdXVZf"d)ۮeZ`m擺ȣIb6ӓ,پP浿)i{z?k<]~X7?i/i[u =kg?T~&6v߳/~G2zo~:x3{o~Ww?."]i1~]+e$ǖc%v6gҎ`25'8B[??\u;ɫЛNZQ?ۺ翐l|K7KE}=@<\͏_c,_iiV_uE?<鷔0"{Im_k9N۷k]9;ު9纼}{5A;V4 \lm$,QYYa\ɨKle[3IF+б5 2K.0B=ͪ@cmi4-mD|f[CBԨԌ*|5 aʦ4Ӛ[MZ]ȴ'bgGhSmkіؒ9YJ;]v~vo~ڏ͐l7?i/~b~X`]-X#iknGn\ͦ!ُR,dpgFǚa_i1V?ϣk;>`Kdxb}I|QXf2n|&misVȈfy·b?u̜UBckRiuq[ {DTPͶ ~ԟcݎ?ޟKǯ0;_;_3o9v:u]۵$㶚c-\Ll%Y 3ie`;fflfj̰aXh,fdW\:=o,Ak DeQYD G>j.|uۿ"fbh.l$dfnЉ-7?1֞yg$zٸi) SVs~<l.,^?A~-kXԄL&1pgٌfa?GTaUŏ??nʔmXOO~vo}Ȣ& [S3-Z6&e&8j%5clȾۄTc+lcZ ilH\:ƶi_3>Co?xxBf?syןǘ_{*syOי߿qN{{{ 8IVdR,&kB B*Y%maih\ ؙI S :Y߅B.YNIXlK>lQҪLH6;|j2k6HDL* Yg}䧙S7?ژ6 b>YFlZ|XhQmײe֘s>"a+cloEl7kSj,g®~^fFW?4(ɦ4;bWϽ~V>NXu?{7?%c#>kCBF*}Tv-~v~2SS#xNl`MK("64c0kfS C'JNY|Ԋ5D喏[>xn~Jy͏Acl#)c7?{cx$g?VQ4kЇO͏>Idd"|W2eͼL_qc?K)cl3j=o)n7̟[#ó2X=*#)bQ~?<ϟ91U?"Q1We[]l[ '66v%H__??(;WI_q?f3ȫž}v}c;[}{y?߿99{_]mI `M k۲4DjBb0 4²M59;&ZĐ-eVlmӺep6Bimka[6PIjŶ@ 6v 5p4XZ0;`,(-~Ilz#d}l3<3|؞;O7?fZǣŏ =7?koӓ-7ϰxc4l3s5 Zl6s??>~Ȇ[>n~ll3fG]On~v@G>'CҶhfdv9۸@uj=v*̱Y0[_J7]c_e四m;U߿o몾]׷,{he,X%,L eM5fQ!a8ecX"dڦ;`#۲].AG!Xh,|([ O&CeZfcm-59KeYb|1Ʊ6Ch=a_ccO6s~,ٴE~΋n~n'?lqFofYifO2<2~2CK+t[2;;̞dճus`1f<{>O#4~^,{?3ٶcZٕZ]1o]Yg;G6Wlk~kmEAs/[wZl0_O휝~~߻~k+,̌iVHj4mU$ƌY L0a!T! u}o0cDlè2xǰ4)S떏Ys?Jkd5Ȅ F-|C634)1jP7=c9g?~ΏO?aF ?ͳl ͏ ?OK0|>̨jBO 6~E?n~Ag=mȳ/~y4H|s>~яg?M/Oz?^ O~s>x볙m|(ی0X64my'g> Z'$[KQbJɶ뭶k_W1]U̪[2ӯ_#4k_G.6vq?{u1s!?5rg'}QfC7?XU3kl=ϟgFP0vH眼ͥ{ ]o]l'mڦvj0E_Y0s6a^nnv[cvlz?uyg޷cK% &ؒl-BfL30gAF8Y0b0WŷD ,6.&4m]*n=IQ([V<#hdl'ln[U 64mR=VҰ槛c.-汎DFpsG5G2OO~tlv'&lϭwYSc|gg?|^CSi TKV7?]̖\[>~ 89?0 ' L%l`5u|en5{1*ȟmOA$sߺϟ\jزYkޯvMWgՕeUr9[2kOr=1ss?x~9wVlpvvJssou}~zP&'ݢ 44CMli 1b)@]Hn*B5M,ƸQb6Zj6 6n$&mVb fLAk̺] +3` |6,͞4چO/~6<7֌؋}~O"<#s~FÏÏg?-W?\6쟸Smgُ6zg?t6Y,{COyo*lv#n~_?v#S[0{4g4<<ϟr&ϟjH6<7ُ?η,l[87Mk cjsTQ*5߼&_Ogt_owt?_xO揮菮㏮ɏ[QZg`ew_ׯk}9E~zέl|?9?}~ޫsUk֕}O.fF UE@Ug[)d CX+aQĖPŘ!!ml5Q-UȖH;\V\% Hc65|h5l@|Fn53lg̸9.[:҅ pZϊLFlF0ī[QZWn~d]'?~ q3i hm|Dz|_7?zQO[s>f[9?s#KO7?0Fn~\M<n~Dk|\nѾ䳦~я}׫Y/~TTu3EKRcBҜm 8UK ֿޚO}fn?~ohfWk~Ns?߭+;N]uOϬhsMV]f|FQe̎5ZmL2Nӑ1~&DjvYٖ-e3mƬeLZ}R|G}jXɌ:k:8B]G>I1,%f $ѳ~яy`cfg7?{3j~,5>5ʸ#m4 lg?͏ 3b-?\-~AS~&~֊Ozhm<g?E^q?[>[nh0çZ/~dl-<9F?YmZ1sTRko?#GoxBa۵l6zgtՎMc;v5m r ۮt8g 8 k_k~^/Q/La v`?6~9}˛W9c;o:߿޾}|~uEkD;E6RcFi͈p]%mMNf# r2#`aHfJ@ &IQ$N|r4%C%3,*1S*5XZkȨ|l +kvdaiaVaR@f3Y#k%Gc~,Ϛg?rH;zNxH?=gkuX[%)$uZq?g1(7mb͞ևd槹sY*mM|87?e9n~|&ϒuom@f$2k"3/zeĆ\$kqO6χ|V43[>c-`'+l2Ҧ;su.9ޏ%`_=ʿk7_ƒm.<rc/Ces"_LWGs]o:JWr}ۛt߯]إʶLk0d3YI[m5fh3f1qR5hCk;crE+Zf>Xk K[Fلf&knL#˶1)WGH|&HqCv *ɒٲ=3Ői/kG4GˮъYO~ {Zl'ُ#eyO\jag?cVvB}<¹͏->y'O¡1bG>E)_s{BXc=іa n~?Ţg?eg}F[&Nbƶe 0בLKzi IKmӭ~<⧇O6ln~J~1Egϝ<^ƪ`q˧ȖA͟LsSJl %86sllRt Mv\vfý1qY_k`ڟp~'MsEwf?{E߿|?o]u]ۦe~޷o?}u%lWrPK-5B;2>/Q Ff@A`e++& Z+j&56f[o&e26ib|Ҭd k[O 21j$x?̇Ͻ3Fbe8~B4+lg?óO?3O[mZ۳-{S(Xd09)ͫ{o~gOU~XmW?1yc;GF3Od^hc\[Q̒'?b2 {ŏ.˳m>/65? <ƒ]7?Xft|M,)Gycl9Zjʬ>S5ڲydll~p䩿g~d3pg }#i]n~ 6,e>1ն] sg~[=|tu>d ̫Go~tT^x1=^\ xc7?^򩣩&W}D69?y򣢻f59%Ϙ>|͏~Rg0 ?dž{kdtg?u rjzo3y?n!WϞ#J ˶4̟W?[I>O֕/bs>?TKzrl43yWoW+t;>[lk:ُ||_|ň#\qǟзļllm-]k~vq{HV`fbbe3D- a1SL5CVK\ڈvmؤլTDl,}S_/%\lf nN6AZ #Z2 ,|665|ƫ !n~@dR 6f[=MK>ybF5^gOg"6_Y g?;v˶fg7?f:4/~ؘ%߹ fmY-Ջ-04y?n~m4Gl?n#ς|~lae|FlGQ H|ԃQؽ>&c%Kc-2-"%b]uX0b[-Em_̧G>J2^G%LيfGla;-t_km~47?ӿK8_n~h 7?b,ڏ FXvy3ڄ|t?ΟxnpSʅO|Pl~4Оg?yFp?^ng?kpEʕ9uN\oU6YӶfW)Qm`z*׊_k u3cǝ`bܯ־seەl眪뺾ysh-ۜjj[@,̑,D mlWZjP.NXZj> +J>_Y(Jn~.Xhk+|G>̘YKоG T8Uڞiz>ZdTmz%2y%t~[f[7?g?{g[XƍĨVdz͉'ͧ]-~d4s>6Ū=xj|&K>Q^n~=񵟱}FڋN{>~ 0ǰzony\s湿)ky}2lT:mx]\].2mw֮ނۺY;';tUM误k^V/?5cb7},__ligWƿ7fbhu̖ٴ& f3(l6g}k906 Y65T52-V-M-YQxGkԄј@I&e'W[`66|jmZz#4&|G_s`!!3v$GٺN0Y˦g?~nُ11]`W?~^yw~n~:jZhCW[&lbWK>kBgC!~szSFvg<ϟl^ngm s˧f/~\s>8,q;n1nYj~6Ï/ Wn~`Gqu˼̟|認-3]նΙ3U7+i6WvvZ Vv9o1r~7Kof3\]۷m}~z{bϿs~ޯ JfMiLc!A*6 yjlL @mŽDP"ϻڶŔYҎؘ k{䳩eg>Lmhl ,9 ِC{ʍo.MLq>ȧ|Ge\(a~Njj͏1乿1kM#x +z͏g?Z7?#V>z~eQ0kz _y?'w?/Ï[>͵m=qhxy$-<31E 4.|2 hHˤ lZKn7<5ࣖkg(%aYy?n~xRfWn~2خvTk,-yϊդxW?v3+('|?vo2ŏ~<)ZWj&_p7̟ž[w?$/(~r??5/~fO`S~6<1O¾?帲lG&;\*i#l.~֏eYW\@]kxc'`"^߇3x?;Ul?]߾9 AjVĴڇ}ޢ$  D!DE U$ˬ{?{=}sYs=s3ך{mh43Y*bľ&\x[iVkD][4B/5k̒ڔ< (FF[ 5Vv&ͶEmgi1f,(s9M4:za|<ܳ}M™LK1߹fbHu!t۟=*g:zGC+6=?9(O>a>KR~vYex>Ykcz5ߩyYv|~#3zӧ?hV?͞8td>gf?&LrH[FX\dhvQ[-N)v]ꪢ;MQv]ݿmv) iW_00b?~os?:h4t]l߳_o? f/Wچm_54ٶFYbؤefY bXs\aZkl -NX+XuZa7qj; -9=|j;|jwtu| i[oo&{sټi4rʶ"@״VZtY|z{ ~3?3x95>ß~ӗ?̧?Pն𧵇?g|s|N3᧽;rmkߺG#muhO5g+&IiY˚)c9dLW*'"Y⎆~Cw?07ggo3Ogue6{n\dW3*#(X㋏7kݚ&辬9|9߱C3yF|į;2}kG|OF,\OaR-'h6kǟtό/"e۟??iItk Fo~X{矟2Nӟ%°')F?9~>3=I:X|z˟_tSQ\jK]~kPvuw]淬Y@M2WzS'f/7nXC1|Ȼ uk .خ_Q`fPս-]dCi 6RWQچܳW3+UbFFMڈm 64syV3ds<3ރ>-_:4JO>Kے;g4`Ϗ-Y_|nb0{]s[>[y۟?Szi[><˪m={lU,=i'IP̗?ßkz9vf ?~\tpOl+>1ܸ*tg{vǟ}Ovbcsح>} \!>:?s3{U2;I/v?ᏸG]ޮn)nץdfknvktkwkvk.~_YB{`#F~|<ϱ 0_~0ӫG.lNvUͦ.nZsmneS5æmVyrErL(۹6$۝(8̵g5Olg{P,aYXuʃn>Ј=3o>uH#f93߇?Ytfs۟| mb+9pv\n{ڃÇ6_|ֵir̓5wOS>gk|_ǠB.unvo%+{shm~å?9E{0|"}Gږ|7iw涝d;5 ;<뺖;On7ꮍ+*V}XkկgԷ[9/'  ?$O߆iwL؉`ŚfڪڰvfDh8)NNہ Y6yj_z('.Umw]Tl Ŝa05lW݃O |hIl>USmœ6_pfNuxa sqtY?7KvՃ} g65>qgsݗg6O/{xs{? s]ʽVqu?YSitU׺յ] ?p?[?g_?g]9?[_' ~$GͧϭW=/C [z]6v)M a{ n¾hfZN@GԪ{kF( ֲ0MztɆl-d> J|V >Ѐ$C I|a;|6m^|JHiq>s3_[" -tfc폷?gzap,Oϧ?=ctѶ/vq_fgJ[uaKNүoU^Rcj}e?(%NU+,k TYflVvn5b{6sߍ`|bDž/\3ѸL5֬X5hf-¾ 6[ͪPM\;je-dfjۚlM7\MųBCM_s{[z7|͠4 ?s`̚!Oß\dR?>͢/C'k}eFvDgsyiv ji[u4|cqc۟G4}7r~4Ҍ/>'ULß)6آ?lLlk{sd?0 u?B XKe̶۶j mv"wTf; TʯU_f3=OL.s=O;9~TwH W U5ء(&ɘqk նhfpD NF֤q}b*K$[Lkm ӿZ}Ʌa0QeƩ%-_7mf2C >cçgҶTeOJ6ß} ټ)Zψ?l?;?!4dؚ۠iTK_.|;tp(Ɏ?_{7pYZ?s>goLҬQk |yWkn!tqvm]fc"FFocټᲆ+nuͦ"lF7;\mn|_U!$sN#o[O騿k{xU3h|3伫 *y1{vikmLEnõCj2 ºsj^'j93ٽR[Af2iQ3>~>>s-uLdeN'm5f63[G,掚m|?{|OO:|4Us7Gl{>hLzTS9 to㚵=a!,jҐk42tV_ɖYmkDS9<",ƅ̛KÒ자݃yS{'9|j Ϩ&fpO`|cL?:|Sǟ>a0ßȵ1so4l:~?QB=Oǟ+tmK'j<oyL܃g{>6Mi|z?f=?{~v$>m'?O,e~̷Z!&p7%o^]NvvB}_v=zYS~տ_3}wg?"yEY'i230 4d.5lcD,F]9㮝h-,ђĄu~96Xk_:lbɟscO;| $Ԧ2540تPNTvpwP8hhvLȆٽs):lZ<[]d d7Y.kO_~Z98gCOOm2 sli }߰yex/?j[[=xXGϜcKeS,bg6OL}C]Sf60j5tpX"ݵm]{]va\ήe~cW~E WNo؏`><#|T xfisj) ĕ-(S *v.yMom5TV-Ek%lSJztu=~d.i|>abER°FziLs9|lo>;|2ϊ/BFך6[>n>?WG􇖦r9w4ßß/WY֌?Lz[Ӷ7Gs?!O>x:Wz1c}D|> Sdž/xobß>$+zbRgxs폴~'t_ڶvEܻvIWD\o7 w]Y̛~կ%~s>g?7,<}gx)}0QU/G8$!mb̐ќ:Wk[QcT&ۆ[&Sj+*l[l(6’T\& ֌Wo 4o6b6ǧ G<#aՍg>Ckbh/"Z>S`5Olm>y@?lSӟ9X:7mMgosǧ?6n Ck7! ے956Yޟß[]1_|#> ?hQ;Ro~v)2 8Hxy1쾙}7k u_r3BW~kummKצ׌m~կگ~_۟pגϊ_O ḼeƔaFa3ąVfUlv?.tl[nvmC5&%+mliZ'(8?sֶ4-r&%6׬`*tUӚs_}'׶i`60ZUيփj׶ç;;>,Ӹls¶kPa?bz->??l6O?$:YJ9zw;|c5:'M$m+ _zwSvLJ?خ??ßq"aǟa{Ӥ.ˇ3_?_sß|lNbuic$5>3_qrb|qoƎ?ۗO65nUvvur>louS;ny3UL_c;+|vgDJfΩ? q~rf bNvݐkk#n3,b "s23j4`nj*(6i3PFs0鿉j(fbLӠaB1v8({Y̦W~՘Ç-ěϐ۝b#{_|>?s?O?3{w53v滭2ڼ=~ZQ۟;]Y?ga'ă{-vO|O?w<| =ǎ?O6d;?gr\֞Ꮗ?gem3g>?9=l3|??/>9e}ϧ?7=kݮ@4˽5!͵rmڶkVD)UW)9?ֿ{y!.~7ߏFlC6]LSA g,[ڍ6]{ZY,Pb2b6Xl 2+8rγɱ_m<Ŷ<=>ٛ|4!F,Y_mR 5>3d|thß{/'<'_RLm+ßdǗ?g>$͇fH|K|㏶p ǟvcc؃2Ҵ$cCOf'k ro[1j6Eˆkq35u%C ZL%۶bQjO(6"a+u$T\s5a9|$\ %[3?=?wm?gozwl}Lh7k_3{e5[YRn"W_0'|ßyR?u'M!c-P6mŹ5--3S#f#5j&B62EXL͌j Ē-m½7&XstfZ6 y:|vWA_\ZGrgS6ꁝf4t:4{cz?=Ob6R4cf'Վ?ßxs{1 {bA\.>=Bkws|΂|y?C ^mv۟t쟙 QЬO8>>cך4slU6k/:R.]_Hk6[m.ۭki ~ˮq1?j_~_U=邟 ϵ"[s^w:UEi6Tml\f]sgւ ͲUbߌHK/&-š@m+˽m߉auQ3ʹmݹV\|Dɷ$⳵Mxш:3K[fM: \F1bg#gqL<45_7Ƴ>Oʦ84h03ǟ-`j:t/jvm\L($l9q agpg jϨc`"كϗ?aFG;|N|~Ktg?scr$"x~=UUl47: $۶u{buo_}iWm]p?_O̿U?=gw2~jwtߝe]mW2lXR/(!m5V-Ql6mm4M,L VzܱNZlL0f0]|O\QI*Hla6F nv3Y&v3|LO>\^2'+?:rLm \ KgƟ=} m`~ϟ jz⌝ng'?1N~lßB=?mV^GNP6?2XmjoᏏ#?l˓{4{9߷? 'T|> 6Qp ؙ#o{{3֞V ?{0zaO(ǟ]n{-8Zld?P-oV>oǟM܃϶t9ßo|>a>{]eUDflVwtWg3R6W G,y?qJǷ]fcO] I s#(M,+ 1f2@|uI,mͶQC6@7M}&ɶ&6OI'ċjW>QZlW~C1du;ῑI_s]}G?l`)g҃]y9^(/Mtڴf_F/>|U(ys?aj{:=l:tC~3ao/>pE >Sy1l%{=|Қ=XŇ@jy>KßM?m)? {mi8|zCß(|̷-=yהImdSQ[]qmٶٮuD.9J*[W3M}w)5Neɏ |0kS6`M0, 5ծbz6dfTmV6l-N2;Ε*[,fPmk d{Y\b99$bsk"cy:xjEसZtXȬp۾ _f$wsyvywB[ǟYß}l?=a<<ܜzS9s~?ӟNjOp]%joso{h=o0kݬ2v}g龓mukaFu?_?^??oWlgk?]?lG#1?[ֿ5|ֵoF?_??[\&g6%X(b3چ`X*kкQ+PbU(h=d_fƆIo'FQiKkC6ɟliJ /J0FuK7aVؕ[exa DȨ=bKnulmD|&5+}S9xݬ?*{?<4;TSȉv#>i׹Ÿ]o?ß3_o ?l])}9t:]gv'{xI{|u_^P?'?>yϕcf:}˟v|Xdu]۬˒vm{ umup] ,կ|O|}Z .=XOxiٻ ?xy!s{,UX˜ѳ@vkZ3 F\eSKΤN &$MNΚ i߰a3mK m6`3N)0a@gQ֨^[ݮubl!|iK 0eoܶz&z^[Oe[??;\ǟ~wxׇgS_|؜>ÃVw64;0#Ub.ǟ;-s%|gZt=^}ϾgvgZ?qi}×??k-oI6.?՛CѾ8Stθ.ݮktgk~&";|Ki~կU}#k6Ӟ_[yA?fOO IL͏îdf{o58a%c6 fcc3ciJ[شFj6C;VG[Bd+:=:k՚ؘ 6 u,YucmU {|_mk`Q nC# c~O^;A;ß}y\O|<9ᏺ؋=YN͒|my s[urOf9MYϬ:|:x#|lه?EL[І?OFǟ~Ç?G quK6??3ϾlMVkץص[}/cm} ˮmPW~D?͟_捔ADBeQ~{?+aƩ/ 3*0q&erAvf6 }ͽڶ%:;k4Ȉd2l)C'[;_Yv(d1-\Kg,dU_:*Cgs>bOփ{n[7}ZHؤ/.gS>ɧ?uŇiW?ß[~Eglle?'ojgpᏇ?6os/LmY{1|fm?g-,?}2SN>}sQ+U/.,;n[Lڥfj]ݝfWz~x~$wP:?O~S1߈fHYlms6׆aUz-5mծYQ͚mWK Vm,!Y3>K;+e=;_Ë |ώ?l5?>7WM+z)/wM|?_?e7o̎v1䃓V=njgYuܛϲ1Z{Mۈپ?? hs#K|7g<9ߧ?]נ۽{asۅ]3rm'+`者ORa c֚Yp1ey͂fk.9_񘯷?>Av??6f{|t{sx= Wm˵l_|!r]a+6^Ԙ~ۏ^~տljws7g!:|Gs&y9! ƀ "Yf!vL]k@fP[K&i,mc k̢-mka-iY¶Fv3^hb7t@PA_3} qx>bl!K⣑gvZ>6onc?>dl͐g?3fӟ:~&?A<|woϭm]B㖽|H9M\=!loz>o>Z7>ھ؃jTo]۟O>#:"q>~s,X=]غdV]^v]65]Z#+NsqU_Uo萫?֟>N,_R~-:QWv:Տ9Cޒ%, LȖ@W7jAfaѬ,M͒VH5:y-f6ii+}5'O y惁]-1ZƈbJmv|7k-܃n[Il>hƙfpYqۆו0:!㏖|8W'>̐n4,ZmZb>;~b_|s?m˟3_.}ßǟĩֶ?;Ᏽ?(mQ{\]>fkk?|ad[6i|zkݟ 6ӟ>q?}Hgsc1ߍjpJ3][ frn9F),m~%*ԍU}}Wb1u uVߟ7bͿ#_I7G䯦lc ,ǥ| e`mB # qC,jͶQXPjrFm8HXatdž-؃La|>(lJ/>7L|@RfO>/"f &D_?M,t(|ßm?s;U|!''f>9Ȟ1߾|s?*&=lǎ?eYsQ gKg,} rXzz{|?P^<漥-ͧ?#XD7f|ifs|s}sԝ~ M|lcPch6ؚۭl]Epݥ LSn_z_u\?駮O$G:[WmY_s{#Tm,zv}mtI?NzF0{|feeͽL3}hn>l^|ج(ۣi?|>m:|dn|x?÷ǥ{?HٖlTo>O=ssr=l=c?w?i= h[6SuarwǶ*ԭv]d:_~=~|*C˷oG>7eEOU=$mb ǻ,"lցh0$h{jl21ÚՌmVڽa3)\3K3k#vMf+N{&3n6d}B!mJ؛؉ڶǼji4^ֺosÇ \s%mS+UlՃ[fg|ACYCdS Qp͒žLh5o\vHޟə݌69լ!={scl#_hUGtm~;jy3s?x>pF˗GBk=?Ӽs𺦚mfmar25zT<Ϫ|l?duh|{zv3\suX/ꮹki7(龷nZpo~կޏ/?~~.w7@6 1t53(PI Ķ.*65jTk%,4lUmiVeQ3J b꺰 qݵ]m& k >HrhfRVmKj[hNo,v]u&a=p.TZ3F{჆{w]g t3>]{bҨf֟|| >2=LO;Kǟ}u,ǀ-veVuoC3oݮ|=)oh[Beun'[[d.ոg3+zY>AasoM+= }\sg{>mk岉#?؋ə0/m{?gZk2.Z#v3nvc꾷Uە7-{7J}؈k(_gzf8?i?et88_32 1UZC#BZ"lHV4٠5۔אfH0mи SI:M.:jdZ_'R:lVfKY3ԍhõ-sP2m>ɉk69}/ yc-ɖ㏇??;1[gǟ1iOQ'#zso ;srתҌͧ?O5+ͮ vj~ϟ>!z#ḻ,QǝcL_}3iRG]]L6P\ #7gg㏄3kl#돇?fǵ?߄šu.3&+_1ojG5Wpm]Wg~SWo)@,>{S T8&[d4WC2gT4TS(65+[,Dhv"؆>X:zgfYcY4265ֺ(guHJ1ZeWIlvgKtZ᣹j{͔1_;NDݗevch?(v8|p??g:?Sٙtc:l0vö<9|d',ž+dfiODmK;ˇ?J0eaok]4kßuu7_NkGlYi{IC|̎?<Օ`>gק?$*ⵟk$o=\u5ƾftQVRe_oos家*כկc/G\w2jGߓ3q gʄ5b B4j-ٰ'شfZb@6edU,-`l0)}Y 4aIc6ŵ^ ͧgǧqh.zզ|6k\ç!ɤ@z9 o/('mOϥ6Gȶk/A8OL?\?ϒl7sږG/nϮʧ?V]A|1{J']~sL0̃Oo?1z=g0W?9.@:?>.?擰jAO6O|=izQ#_vvo+c#ۮn)[_o+iR۪_0Wߜļ|[;Q/HILjQX)Ǒ0¼~5SJk'b48}6d;\f)NSf+͆k%Yi[hI43C6,N>\%h[g1}l\[mƻTos>jg&h6bFvRm+vXqS'cBͣtß-oßl/>ئ`$<){ 5}wgx˟Xev6or->|CN6ѥ·O>_|bldoy{zk&F?C]ۇ?u m|8?s$Xnldf=\s{gvɶ`gFqMYiit_܍pvm]Ww6#m]IsϏk_oHg-ӿ~S~;㭦Al1&+0ZK ҬTXޏr"ɽMbfi4 eƶDfLaSs5nɷ ZO>Mtǵ &'K5C2>̓fVw;,s9|O}Giy2Wn۰'窤}|=Mq5vU`>nd-׊43&ShfA33['|22:ŠkO&ڃ|D?7!-fy7 gDH'.|bkR' ɠ -<Z濴y2/X'Pg}wY|'N0Iҗ/9BH{8l. /0U+^.+@_w |{L>|4?/ Go[hӿ A?w# {M}[|?7>q{"Ry)RJ!@!+2"0dPD H D#Yb^cR$ O"#kL1 PGq l|\|qAk|2Pt4N jKMpq(G}Gݗ(T(!̛J&'@3\《Q_O?!5D&OƅvVr3dV}ikx.qy^}|$!?n?O( ?^߽l?7j_oCGٽx"ixןyngPa12gCg0jasƄG0qz0'I)J񛾌-Nyk7aKq A[bE_@&"Hqn? Z6 @#QB52U8Oh+B(N2  8Il)djd4`V Vb+ ZT dH IHH`->Bo. Ze 4B`ip_)DЪ@G|C,Vί7?#CD-R'l3\0X1ehRBBmG}[ cWdP A)u@U58b `iIzUX1換?"? @| dcOGFD"L8򜿿J?Pz]J*~)H |FF1 H9~ɠI_H's4A&^^pfg|[9 .뗚iCvό!#ʉ@$ SHTJ b! JH#Tb'x!R&P )pl8 *МԄ& Hi?#_ BNԔC$0jq3R W/>ᠫ PC2*I TV_"Db˶DMЍOB)P2&,R ӟY_U_]_e)8%8/?Ib(9ADZ‡? `1w}],Fp\O x?lar?Re&O?nK]R? 4U ^o[Øb!?(cg Ɍ#x?cGg藘j ӄDxŰ"XH1)+hn6ew![g|a#2TL~y }tqT' #/D2 \Ox\^>XxlHgJ O-eS$! Q' ('m9O 8h!0*ER 4h~)! L#tÃOŀHßH1{O?Q}BG?,>H c6@p,>鏧?y/6?{#N;n'?lh#F||+?8í{}7pM}H!P1 DU(HV_o 5aHA?|2 Z;|DR i(d^ =Va V&;?(P8AVt ,_E ß㊣(`v7B'D'P3Hg?). ojGOQ[ |7A0NvfD3@`3 Uː1&6#@܉3>_t=.zEEЏxFu9wr&X  E$8~BJ:={jB%X`D "m,8 6$ L 0I Kj`E*ZH0Ca%L"P5 H)A·RcS;)Ì`0,!&C+a`X@#08",RShʘkS$]_@/fK߹',<!@觶$91&)y\$6 $1PfBD&DD&$B`fQT 6IX\q5 C`"MFFc 0" . 20eL'BiE(H*Q|PJL 'Vp?Ye$6\qSF"? g}.z&?BKE*g@ 0a$R)!%H? ?E V߀揈a0#!xs?˟P?-|͟Dm|`Sb ,b{(?+PjeV PY6sP&/U 4cDJ|gq~W/Bۆs; ")Ч!O%Rjb*Jl 0Qahtn D 0(Tcylr"j\QȀM%@HH" ,qn|: \!Du65 d c@$<_ R8Mr@ AO ! myrz/" m mH-z|$@DG6ѐH @["ѲI 9g8O'PCY_Ljz?mNb"WJf9, (LN ֳ??uw'A ˟&,>OycFᏛ? p/$?$@8[9?g4go ި1x׷$V7Bf`׷Bg!.3O@go@=̙ 1F@ "c4cha*;Mg|^+~w;R?o.=g2}xm{ x!jiV ͑b I!j hI DBBe@ !!aWk0&j18#G()IdR>H AH+@p"?\O$<ڒ h|@zӟ68,-ܭ`@" ,+' Q TjH@zϠ;g!0{,Xh#p/|QQr DCœ)I!@@|gM~ǏCK?APqGO5f7GW>y\_ Z v  K  !Pi{<1C'Zh ABFr^PHQ׾] 7@$RLP*4O>d 0 lCL0*Ԧx)+Ȏ= !,I$`$2H?H`Χb*6mVZ?T ?KƐ8iY%FqDx \jƧ@2o3O͟'JOR?q@6P"m!8@^`DŰZj>{]=8`m/8D8$(@2o@ēbM\7ʡΦ.G[9Qr0'l " ꏎ+A~jߤwꔾuטqpG`A.>P/#@.[1v>}"O.zγ}yqt|@< %O\|<͟Vn>o  T>R2#?[$q ԉpr"8(X1_A9g*%7}/PG?ZpG|۱qDۃ+:sܾYqn I$`#$A4B! l1 D6o̺9"2uD"(x zln@ Bmݯ  dh^ wB$Q^xG$ 20%N>dI7q?N0fX#Z3ީ/?Fn~OQM@R(e͟@2Npϟ?^_?;45.>l|6>PVT`86?2'B?&p*@֟!듣72?[!BO1:?)iĜ81p51Ȏ/ dH1/as&kwǛчNDߝ͓w z>mE}Ul`"%j ' |E"9vVH!"v-ߞ * dЎ:CY+G4D8؊bԉ3h@Ň `k"]cF8{%*q\o_WeBƑ3z,D36 >@?vй7 "rΆyy(Ayo!ZQ&LT @3:H󣢘TL%H@XH}?'4Dˍ%)fSUHNjWgro7 . a/{[}cMŧPݟ6V}< ;aY_KQo,?E6>b*ԮQߔG}INrW xmI'@.> N"`՗ ȭ5B b?{8%`r׷g}O<N>p?mwk~)$ cg(Pyyɠ12Ĝ5>Ct9g|Ư8_}j؛3.UX??he}QL_@VX` P)&Zp\4dskv@ B~"Su 0!VԱ)uz e!(p'i1Pn>@>L ! (( ]_*57BRF)6>Ѓ|, (|_`f >QC;?"5hlMg?|??8'V_"mvYGOmp p45d& pI@?l8'B `9Q |4G=a?3! t27L d۟6%Kř7o?@oSglŒ dX͙*iMIBJ2A!(f>x!Qҩ71,7>D>&+/xϥEh5O dB1D?Q(WhBR)$h%b(R#%JtnOSBu% &=H!>qޫ:WZ]6>7(]R^\:|pO rPoPxR|GĔ]YAӟ&i'E=aIH-Ьt/37Xǖ?Cyw?g}i7D(!Jz !HtJ[~khK$y'GaSf/,#PMfX&c@dͮ2IR~\B$g|F۹?~/#w\@6La.: ^W%$T - ~5& 4] BF m H@  M$ʨH"pሉ\yV@/> "R@Cۉwec C)P݀'-z1j Rw >j񁚨e")B?h۫C_(bE '^^O鏘pa#,kd/o4$46 (X! 1y# w^:|8W dX[9g?(0OG,6c rSif?ww}) f2 xHxNӟ4f"5d2?8p )TGJJ8TTP mػGZߟ1MjQy:vNr{pA&!*])$ݩC!hFpSA4 @ T!d?`j@2H*WA|2Jr.ڸƧ`HE*`dr)/?K'ϓ$ kϪ/O %" 6zt7l&`Ɠ-z-(#^AAySZhAz$4pgcl|n8 O>9}??:  |#͟Ńϙzc<,4X@$sG6SpҚf51py2" A`N`{};>3>%ݳg]3xڏ>\#ȼFI"~"4 JNS1ET(3' BfX0"h!Q`L("(!""pj@ '$e|aBvL2" lR> @CHl<I@6Mei Heb`h' %۟8›hOg.C"|s{dN6*Ϸ`dv37DdL@ 5&)!Ue1U 0AN>|: 8r?O>w}=?SG!ȭ m? ?,  a@$NkqVb֤2Qh贙 UHuo?hG%~mhG=~2>~[Ͽe=`"̪7o?{|sW>M@ q7dxYRO-@!E, 0 L P08 F@FUA`$$0oN V:hs/!ڵIaF] O:?J@-n""7 R[QHQ/j`\`?=iF yya c t-ҙ#?Q!I?n=|?]_v fIz Wm(H4g)\n=(E Ϭ G|y',+|BGy+O 7>K ?$),Ƨ|%m|V*|?'B7h5fQjc<-!Dwb?0G`HpC?$6 (ERCZaTxc˟'[nh|6̨s%b6P>l?2q&MǨ)Pl۴:ba̔sep-a4͇F|g6y#XBwkT{w> 1pO&F&2`ؠDTag"!B"HĄD*4Hk'D)RB(BDж+Z!3HOa>#g|ѱg(B@Ah  Y)vwn|`6_'Bxݟ^y7;"SG˟LDL& 8 &|O?G[(%p L7N>]pLw>'R@YO QmsDB1/_n6>sM*?(ȸ:D)"w}O/\~bɇ6 V#c0fbʄ4`hMٻVZB)\'iz85yO`.@{PL$Q8m?Mx% ^9N[LZ z<3n䖙\سB\=՟UUUQ{ @|yU y.Qexb!o|C8榈Қjbtb*ٚ U _c&ЏOw!6 /B KZ 0UU$v}C GW<<z/Z5?B鿜si 2S+0Kj&z$\UIW{w4+NL9mSCx`B_HLUUX~I_0dk9NUU`IJPlٸty2yD@ 9xf%UUUJ,&KIFCCA˛ʹ\E!»s Zje07AFkhE.狫$r^ QPA SȪi`qz!iamUviPY{!;^X/̧eh𡄈I \lF`j2~p0Ě ,ϳ -2_OA [1Iy1\:CK U3sep=;:@8*0UU:|ʛq1MxZz7uCI߹E??p 7 <[=]#ABB.;!<6A`סwEƣĀI$)[oIH2jp $8<4NK'y}!r{}1!BȻDI/gQUUe_jTfBn5]ې"@J$gVUU-[a\%𠲑yW֨vlbBrAT`X?h9*CϏ; #9HƊXpH)%>$wnHkrd z$G΁IouRncj{oA+1rf1UUU90[#y'T;'NI @r ZDCJݳQyed U @`O^Q8'/$ b|7k$[QALUUգ%.Ò[3Ҫ0Z\LI"DșTUU0,Jn޸&0WU .2=&z 'ꙵTUU0])d*7\BU;?;~nάJoD68{AdLs~A a|IDQzS.$a7osZ(C(9*\3 J2cˣ`tJSpYi£ %\GOQ!@ϬZ9?mȩ`A~~CdOf&gQUUM/ c*soO6f2 .!`+0UͶs $F hZ=ɇfk$னa"hzP΂ H$ DJݳQyeYd~{h8iI15f-xUBՔ|Ȭ:p<%6D0w2L~#g- 3ВdHk, "^C!U\"BBb 0gjU]Du6_WZuǡ;A xn'*p$0xBUUO|B [z5[hukm0Yv#XUS2{>/ԩRjC0 0ahkY4r=gQOzؚI6hO-N-J`T EQ@ 4,3aaC9ږ]dUSRRs]h7MDQ6r*[mɴrXL(\p%k֮^\/BժU3fܸw (>ݫܫ%J1xbsf?/wɓcƎp`bwS'Qaa[" )gG ̤)_.L)-\q(EG9Wزu3vX\ik17l`a$$$D/5Vkniݪw&&&?x[bb]{%gvܴvmۖ/_#׿.\x/9Y<f}u;坷'`+h"Lxk:jԨ|Ǧ~(/8ijĹ6i2+U }>p-QOxW3(񀑬XPPLY SAaK0vt3HM@"P)taaUVANٳ ™ أk׮1Mw_Y yw=|8.-󴊊"cآ־Xy˗v[n3۵i¤'<ӧ !.R⠆~IX@߰iө5w9s K+ oמ? wg8I(E2eY!2CjT_uבLP]2xhСCwdt&x~BH'ʙ06mÏ? ҋ@r0~ƍdO4xQ]2IsH8x>tuޟ>:ۀ%?nz#rWUD`/V?1cE[h2& a-N5ϷXMmFi8"ȕ++;pܺu{ŊU-a\΁y`l Lɒ%+WnWUWeT 4 hOܱG-N'gΛ7>K, +GK.~w=_+&NW<^zƉ{uyE3$1=wڵUTq dF@%&|ɨ_ҥKE6(srw) @Q:Mf8rA Ap;vj={DU1}90&M|.h$(6) !5?TNR-P{#JN{ #F"1BiЀmt~jՅ+,/DFF%GF]zWf7}#.9+]խgt 2d9xPx|FIIIq>SN6+~߼y3(]w}sĈݺ!WO?,`ĉ ~qmڴtKL_j-1s2ܓ}_qIiawyW$[cf+ev=^U$TLٙxj\X Upɓ;[#G6`XK^AA:uHV6/v|c 0Tl"Kvga8_L'i%sJM 5kפWr`uO?4쨨(={L>}1RHvm'OyC2nO? X'>t7nR?{kA%,D506sL1' +\kIX/hbgҋ/.]aNJ)4f)??Jf!HNd<,XV͚WHkEAܹsu<ǻ:l}TXQ=zt;uWMkd7*=5(^]۶xwϾp~fGuQ\ƔR0!Wh5 aa' l[W9%ź >lYt4ʎQQgȷB/a!Rf"L̝7֭[Ԙ]l7'\]v=ݻMNU_ H#=Wjdr0eֻs/oڽ;\LWBp;au/_ڭN\MJBk]_{ 1c GE(0'(!aak(Wt#zSR;gLsX ?6ծ>fipdoB<cg ,AvB&_%|7acY SH)7" YCȏ+ܰ^-tg?SJ!k;?]ti`#n^&.\hC8 |HHq0 U"`lKr2#iԍ>~&ߺmszp*˾_@@ Dd$s!bPXD nWV++|9#;gK~Mh9h j;}a? QGagRKW%uKIWa1w1+%c}H qFTa);wn+թS?e릝1;q-gd0e떺uoxMHgCw5E(Wtt`XdEALJ` B: x aN3L!`yVɊ<0W9}}{n޼!XX;? f޻oתUO:l`0 (QtҺŊnr#ŹH-3p.THJq9s<G{`aZXws6X4b^R>ڽ+n$ 喙e|a̕?95Ȳt2qq;wzk"B)c3&3~ [J:$"0 p ^nEeiktgE!-)Hlٺ@`yGq)FI*dyaaZx뤶ǝhbZe<a_x-)QHSR(Ewar,j"[H'n^[zI pK<9nժGvQȒaaߋ#f}NH,Oe摓1d?e&IIa4d11ʋ 0 Z̸:b΁z\P.0 ˘G2#(: +\#t{ѝ, 0 ㍩u =ηg.U)__WF_$%iH(XaacܚvoaE.NAmpW/JMGh  0 øec5Y$H0 +)?i ToTIp5s`a/tE\1?^a 0z`'ߕHCR?s`a~:`T`"cF=<2Zdd༫ KF^z;0 xW a]_G=0 ð7V;)[/-{aagi0Aژ4a&F&'CI-aa.%N8_ٻWݧyao@ aN,z[=쁁aizO/]%_0 01X FyQaFŃ_&KRR}į$>f(0 027uQnJq/0kzLV{xo"3[}zMaar[v-l=0 x {CĔ0T e6*Y! 0 ;Q|cdJ!+}$WQe˔7F6tQΐ?Fv/",_gWxa.g ɕd\reϞpܺu͛kǜ\DRR&ܹs'sahn{cɡ!NC蓺NiJTR3L2N0 0M`1ޗʯb=h )_|ٲe ,rΝs8p)*U*U*wܸk׮9s&..s._mpċY6::Z/bժUnj{]Ю]F *&ND#G7|ggLcY !R̞#$OޣWRW`7& dϖ aߒ^J M6`̨j"ElٲAeʔrʹsT0\-->~xǎV+g΄+#((QW&޽{ҥ "6ujxx8cƬ_^d(ڵa0P/1)̬YJ*իz*(ظ;7m,J+eϟa0pի[ƽ{X"J'Y~ѱ)z&8w90 pi dώq<0 ñd0iӦ.*s0.\O<0x!sYF۶muv%Jl޼ye/s.! ^6m4l԰Xb3gܱcx{H6[ ȓ'0/_>8:>?g'02J*CS1UK,ylPXx 0[k/ o{vu7@X֭W_" 9r"ロ3g3kS ӵkM:tƍvy` ]V-xM@ёJ*uCЄpR}a|w?N}N)RJRaS P#,`a{q'ZLcB6|}}޳gѣGu>۶mK8{P .}Xlق%{.͛5#ş| cGл~Un:uXx kn3;u#KIgҚEH25SyIoNga8߃BdǞWI/y he!`0bŊ &.>>%$u/^2ɓAcbb3ߙQ)<njKqWVLٲ&ҍon*P )>Pʖ) E@څ; *\ML

      {)$.]?DNlh7 ѯojժ?~aÌg^j{Le˦ϟ?߷_?lw9Q#1bvzwa/e*WY޽{әSR *yQTЉ@h:P)_~IQ8toa2mg t.6ՃmV^MQQQzT\yZ`aZ*={Z^Nd$ 9EłŬ۽{mӌC$tAk {7:~x. B*1cdJ ]90 0 11?K7kE@YnxujMVk`]va $gw&O&9-OsQbƆ ~ LOʖh7ƕ+V8O>1]y/B l@E@@n! "J ڑ?:F I)Oɐ[1H>RP/c!P1]VȶǎK59r̙x"]H@ GYӦ_D]poalڴwڷNAf3n5ӧ{=,:ܟ?_bX(piP/J / &Mc eQ,WNH?dDtQe0&^Mē+aaY*^|PY *iQXS!/r(2Ch), ,_~KFƌ&B6o-l3 cƌ^M[C(ɶ o&iΩހzAz=@z1xb]q,VEfKH?@0R/.!g}V/]r7!\pA^=>զs$޽s+995 *ccV],SԵk_a;[t CfZO`BxdRoD,|FlX~T~}dP.6E{s-MXh("CC h+^paH/8F|QysTݧb.s-3gϖ,Q&(҅]tA , EZDGG G"y\tu.W@!ǑHNF!<+FY>Hʙߒ:pݚ\}}@,!D ZH6PNkI|< /a/f;EՆw;isS)ݏd3޲CB9ٝ:u2@2M RIh|Jn5|#HP>L,7GW_}uʔ)Da&N< #$8Cdӛ&t@i%$tbσM6п?Up; @g0zCa~{I7% Aʅč`2g\`autbvѸ&i %C,0+*U`~0D%|}d}*FƟzZ(?3uTѮb,^שtz,&ifz7@9R[>}4 "k'h4Aޜ")SE<4nLǺ**=z\rvP<hABdC?6$CӠA<<ڍbC +R<( lPc|F \Y=Zie˖!A_w8v[JLf=}!TmlC%7oRdDlnsݰA>}LS;敗_A BTBT=OP**“P >3Qx Nx6hZՆZ=vH6:D{nDcG}v%y)42fh-HNfi /iofyEeletLpP1J#脨y=~]r=a!M1d14?ߪMw0 2:Sߢ2fE=9l!ׯ"* upM]˗/*U}M[PڵCȼy$&^@HQHQڵ}{69~lUxfUW#-0AvO< ~3f6&P-P"ѧM U."@SM]xqă (u,ܚkʈ#МlB S|TLmh|fxS),Slp0obG矣Lqg^#N&\C.Çoذ#(8Yf_;u81 *?l~s4NtIPvpa9:a%uI0X޽{'4$豣,As wr,S,~"SO:|E\ )_q6)Xp.w5u~ir@ٳgi}T T|)OsǍ駟Jki>(&j>[&q[;^:^WGv2te!B&L`*)Χi_zkԨ)}Bϐ7;X`A5Ëǯ];wn9̝ Fx#\aAfPL';)eRa$6RC*Xacݞ<'Λ G6D!~͛& @b́00YfKF?DJ Mr%O% |Ec/"DKyعO?-\AZ :^2d4NW6l2s8wlP*ރg LݺAwQقxY4򭷺tbl>YfKi8p*8CP-XZaU%}3`Ÿ5/ n]#ⴜ!>FvAA߁ hpw0E^ݭ!ʲDSķ-]!q*Mh GI5*U@M3B=i\ʫM"W'>qw Y{/y|NT=# EfÐd3i>}X Ǽ؊cNIMyn ɡpyڇq?ٻ6v+{15zlPF7mOCb 0G@mD[o2G0 $ܯy }pW\4WHJ?Le[m`OXHΒ0+ԄI_#l/r}s=X}E HiHC;C+Iۑk$:9+cZ~nTϹY5i0cz\j $I!oyiWiDBf"'=7{:/k$} I(5\,2QsØLHO0)Nft&cD w$+]v!˘mKH[/XI'Yya54,W`32gc"#to$ڞﲿgy%o߾|BcCX~Mx9?igk&MFɚN2&BӚHsɿ; (9[cQ ` gduE,AV܃ Y4X!nX=yOՙ)f!ݷ^~U]=ԷSA>}nٲ^hP1\ʭ[vƍ+//Oz!m1x'N0>84`r v>3G7.ܹYguء #.MפsQG=P*Bi߇8}aMo{+{B!IrDȡTMo](?L^6EPGoǴC{g,Y4K׮]_1c|MwޮnRwޭ[ۯYfqRbsqs]t5xjMz%bNДb=BH_.,1Pk-[X,+ [&p㘀)zy o>ਆ cѢEI6lsꩧp ;v4V^믿 yG:2dhO>ԇ6m~00sȑ#a|'wqE۶m !n!piФhQuAfι@!F+Y a@Eg&]Go ҿS/cİ^{5uӧc=vEyi׮ݹ|٧{G>}XX.Yvس>gp!Wo~>(RO<_ vII f^yUP6D ֭[og&ice8gn2Hop!`!PYr`l$[kl 6TUUaSNڷwY]M`˗WTT`d5񹂧#CX{ڴiȑG vT!3g} T2 Y츎0*.~Y I;|pHSLs=wm7[70ypgzĈ>; 6l 9DSJgc322vqGx^-={66w/vmQg!AzP[D)UFbӃSkժU}@ 5Mw*L:jj ^0BN&X2ij^#r!Çd+|<𹵵xzHaqv7.7|3%I& m |GpQ@t~SN93rH?ߝ㎋Ar<@[w_G({x9|\W~OC!Yg(9m}۴^Z")R,"ovyתe+dNgic{tѢ⥋1R(bcP,A\"-P% $ > kTʲy:\bȃ:ʗd7g( 5x+{Yn|Q&8 nbqB֍9SӦ\KʖWW_a̚RN53/i:/`!͡-[ڮ B"kR^kEKlF!BmٻMЄ !vv;S{')-0&34ƄBG߲]UQj.%$B!$(f!U1w{Մ B!EҜ0B!{aL8ܸdy`! !gjEsg!Ȥ B\HfD4;!x1颰@ B! I7%ҕYA!Dsm8BiֺBHJĉYS !uԓ55~n+Wo`ϝ;7 ʚi(o?r `?#~Qix~hբpf;-C!jĨL]>{dnA)6JXA2aG]{ڵtm(_uC.6w[l$OBncj![6l!6lB'_`*v{%PB&@2_AkFBw~XBH>L%#B'L{`4F~^,<0I B! !Nğe!4aM!BT5įͥz! {gTUMK}1LB!Iqx]2 !hC5U-JO!xY+Bq ˂q`!B &? B!M>"!B<@NB@Tl$)B/PL}UVeee%%%AHY&0q} \~=6 $(5S_B!V`ֱ~l6m۶mѢE[!Z旨-**-7VTTY@3kdC!5L~ܾ}v--!0_{ժU7@9T BIL}GEd_$ڇT/&Um"1p1mq6!ؾ##yB2b|/B!R>T*qj20YBIV%&B)z! b,ǒ)lb$OBa81ɱ jm}Ba> >`%oR^ޤT*IB06as!IA!>`nΙ !IBH4p fWD#bXE q?`E4L~Ɂ!BLIOWetB! %ρqjê4*B-l85[\*V)!%]tmvѣ/Kە5^3K>b+&`rA,Xpĉ˖-'7::ua|gl?~hWUU iٲȑ#&Os; *b!Q13ό BV vچ090 0֎90$%C!$7| <0ptΜ9o6.%/̍sGc)ȌB v_֛IC=s`& Hې:nq!o^{_~О.m2/I[ N i2Bj)lkv}'sͫ3n'\?È F6pWбcmF.]drE0""UOݻ}+ F<0ZmnJC!$~<y`2 + 8ꨣ8wة1H 1l7 .ؖ;~!Y{qpvas]w=^}U)4RI**ǫ:z`! )M>m)ڔﻭ_Y?bۦkBhQQз_;t` sd0ӧOYK3wӧg;At`…SN]fM)Cm]~$de]``9ɐ!C6A;R0a֬Y|8]w3nܸ+Vwk!"!͛ *͞=rȏ磜Fhג/,nS>)0!o0 [ 0aAx$\+{0ιƏ+'p .#3KKK!LҘ1cƘ1c.kK/UV~dƍ/Tx~s/xyzPG{57w}5\Æ 3Q߮sG&C=[TtёGi;6m4 c) K cL B!DAFʊW/Z܅Rt6I֭[[uA\}UԈW/do.2^CV,;񲏟~9U`_׶8̟?>0{=׮O=T˜<`o6gmꥺzikb5jj(Y! ۆO!$đN26R8'n\:04h3+?c2cǎ?~<)¥9<3[mwyUhs]r9' q?eaC9)fG_}4 4xP[W^/n7ê:OpT rU _W: `r L4IT/??95]n3c}`Te#˄@!T,rF3w}Əi-SLA6lo%.%FN˒%K~d b?#64 4# er2$y/4۫3$fΜ.(%h xQ$(fĆbwׇvc=f6N2No~ؐ7l !Thsx=XQ%&z1\zJ6gۢ@!ɀfG/[@8^B\O{/ADX&y'% g "3ʌ^xԋ%vxxz)I/ėq%K.5YFݵ֥&u<'ND@yigwuK Dc s`!$Cȼ&_efT!/"6 7s93QUKRGӁ!3ƌ̪\(#@BJyH#;jq@14'yd ET)ej'ٙG5[ (Y>F12IBdCls-7AdD8qڷ$￿H)7[dXcn`EbFP'-Afrutr^rtfU疲?!]Puu!`|Jq>b$Hr(Ν;׎Ec{LDLxe)?}8˗/c>LK.>QC  z*wN B_u Ϧ+G&p x.NW\*ӄ!vT0؊~xUMK}1LBH!Of#K..\|e˖//02c0 !&OlslP7GADDjAXꪫ;<^W=ixq.9yDZ ͂"xп]vw|Qq=IdS2vdAC22 (裏b{ #Mf,4´MeL yӓGroVWVwXA^T5jTl2A! JƏ/@,!f ^4p4 ;T^IXBrHx" %xkxk!no'3mMs_h!LFI&7Ƥku60IBX ncwm-V^5|>Tպ8D`N |͏^V@XDFe @xkˆ(i!O?^5|饷¿Gy.13%c (OcI> ~K/d1Z=sh*57瞓R1f(5?ρ;o..qewe-;4ʕ+%1 ad?DjAئXF?svuWLxȐ1ad?# hIテ68餓i992*7?AcBj']c{SN۷Co l/ i3믿 {gy&Z I602)\h3m~@Q?BHrY+݋_r`QUթSgDԈ]_ӒU6!ElyH#'~\(CxXw!6F[̿ǫF^խp@ DUB۴i]@@XÖD]c2\O'xq+-!3P1k./) 3ij܎6$5<`Bd@!-?OrRcq g}ģ&D6i lׅL{\5jځCҨB!>xovqB #`?T!$Bn߁i0sK!*x,Yv&_Էvd$\f:!6&0 cld!2 u5/K^հ"$b'e>`Ko0ɃBNVN 1!.M@5V叔/7)$IB?#r9(k!Aш3tGk*)jv]$~B! !UMBNM*>Z%&"&BI [D!BlBz&ۨU!Pg6Ll|ky#}-.//GoѢl=!D DD9Q m A!~q)WKZ*+++)))..B@EN+-WqicZ[R!/Ps Y,L:q 0P$ B+yk̘4ع^"/5DE4e0yix4q?6y`$$ B"c~YBH`VGFcN}Jƥ\ BHb1 i\!DG&y'3;BHR!b&N`JCѤ1n|dQ!$RF,~ FBǻ;Xg̩ mBIEK@XZl!D_r 8S+;k@1q!B7 E !X1bEcR )B!$Y.N; R9Fxx\ȹO>;ѻzBF/ z)MNRBIi8b5Z9c֭[QjZ>_n! ~'M}% !9amt*)o+{RztBЪU~(}ъn"WVn7EEBH s}J%w?Ӊ(`!$ G Y6% jl!dZ) E"2BOW2NEىBH !4SQ a'~B!IS,.B!Du\不!2H!x͢i0B!0t305Y90BX̠B@K!$V0ιj!tNWB!4_V5F2B!qxbTYF!4TVsy%hxo,e!w!̭~B4Bfo 7G&_)ݻB! (-߹;?s-ʤiA!dyu +W?lesM5s0B&f|&ZRң,"x6V\9l0lΛ7Obh_}MqM_k+XvܞmM]߻[i߮%zΒz}|+Ou|m WZu7I^^zdeܹ_ѣOS_}/,!_|]vm;5jTIIk6O=Ԍ3O?=zcǎ0뮵kFV 'w#vR?¬ uPߝΗ˫>3VGk zrAj]v#~_va0?pFlG6K&%WOC`p}1pΝ;Ø3gԈ=ވ#>CIcvСy l>!XK" 0iIxocBH<072ke'%1 r9jiGY}߽LB^?-ѾVLQum0"!^}m`59s&2W裏cDyf„ DyCX|M74eʔfc:umݠ[{o4PJ˖-<<$?!Dř̳[lOa{Y| B!~!6,Sdd_9"-[ h,@!Anl6do3o" WjG&!eMTUs`6!B%e, KA!E );gm&]$|.ʦSBitK9DtBIXJ%S1l\Y1e٘M!$,ŔA.*OBt픘FYN!$Œ1ʽMB;ݦ9~\!XLB0gٜxά{ .HB1-_Bz5@=iI@Kc1˒v}HkaVրߏV3޹{wvrY{B)ڹs !#I'LC,Ar>=?B2*s'85 8CM!NhYvB`pfGl^aB5"=% !hh~s2\׿%E"eo&tmTqs0Q[C!2&=S?2%$bҚ(Z:&l?ȑ#۶m;`v_ [bE΅ܘ4c~;嗟|{7uT!Cآ_%<-;e}.8V!,T"4[]5^Z*&KNqFEC51#ΆXRz=iݻw///i׮ .4cɒ%PR0뭷IB(++Y;7W0ޝwew/yEB/k*A4ޱ2P‚w8 !{`$glX*+(P*.T `b,m/EխN5pΕiW5jTCi zꩊ ^x;Ax-z)16tSSL1=0+W,ߌRDAl%\B C(]ĉڍԍM؉&B)0˯/nAi.=z@MֵkWqUUgϞ(47Ƈ[ e@[e#l@!رH zF1=0eB.!YSG6,\4e7 ,0dȐkO:Hb@viP7ۢY! |28Jc~я~74ĘC9DV>ßn3b?4;nmCE8|LO>7,d'rNo]v d.9!$dr%Hs@5Jjw>S/X(`SOO&HPdo^xť^zuy9{o?l=z4;o}:r,y睯j^<2qݺu&l23:vhƕW^T/5ai^J1{ag^ <N8AHFzh8q,2!Y~-9'yC|>4 î]:˚;o)_op,NZ|Ǐ?pSN9vUUU_QSNpewi'8+$cN>ӱÞ{V駟7;z{qGA o}kP,@K@$Ic2cܸq8N\|öz>18jPy"157}%|W)XʠAԙA૯*6Oh8;8@\s`% B!IJ}` kЈ7ݏF;'ݺ0s?yv[m &N e_5Z3f 'b0x Qdw|їFta;+8A1 R@PPb{7$`LYdX=/O;»Ƃ6Ht1hе! ?H,6 SbguLA\9ýCHp.FPx]RQb|W2b'X&hBGC!$OW#j3z`r AV8*>͆ ѽ1kchUQ>499<"~5ѦMY|6b|-cQO04C9|/!ڪ6c=&1A$!&|AY裏yKN2A ~ӟ"8M"IsfI&`|ik 3[dBjB4֓axwuӱ3x㍅h].&4Od1.#J}C&1^ys`ki/[|WS7۷W 3ghƬc>r 7h۶gPZY{`y2%34 <}@o޻wo8Gp+85gy䑈@ |Y )FAd}_sEb0!O:$YkjEwaX|򾯝*>0B2C2hDJeʁ14*˖>{u^j'cϞ@r3|Uӫ;|1qR=ڵkEs |nPue WY!n wsW?-qZwE'weO?ERX@5#Y RD){Ɗ)P2fj42!Np S(&WgBZj%KٸUE|K*͆6?@iY΅j:>xVVo[Q!A[{:>H H."wh4ʚ} ' ^_,ׄdzK O\;مV0) @!>@$ |AYdQ%lአ8Bp0?wxc!L B!-$;QKih_\t;@A<&]NMu(良l|6nʕnBm5b^$ 5GbQ3GA\d@̠`1Ⲏ9/``V/!w T<[!%bv[`?Cc^xAR3BHR[x 9'mZ>?0-!Rx_PHVL\TdMC8ŏbƅjI(%'a>9OKD!=U@V p\SO=eg c֊Bދhb %I~駖H (5(.hYjsθETuDWw8 Uul^bjgf?!RxC)L% k-5z:HH$9_AI\bh& +V0G:Y 3<d{ Al~&|2> FBfi^9̡*Z%Z,F@ ԭK.:94灗 ?$M7݄ d݀8IYPNZ_hZ N ldI!$#%Rx~2OjiI"+;WZs|M WU̅^ؐWMIHRޑ^2/}5mÿd 8!!|n jv7ߠxʼn=+C]h~=׫&T B]'ZU\ zQ,"~}J`ڡk !I#L|c-5+ W\ KjU2t,'_0HGtWEd@ _!1нM t]%7 E7Y3gB/Cr-vcy#%s1:u/8fmM!G# 9II6s!%??\1k*D E4 )6;mtC[HĀS㑏?ֳy{5R{vŜO'BLȚF,_ι$.=MR_U~1/K-aNL:U Po裏6.O>$rZL HLj3PEE|-к)\jJ'4@!_qX.Z&bęSήםU*gi BHţI BQ#9R}+‸xȰ_ ,0B!E0U0YBjh|dW)Fc;bI3B}/qbFB]1-G N@2!^̎$q&7!=Z kq~ĜO~v-*`!3IH́~O!KXׯR} k/7`2B! 'K4%l B%Ȝ:-IfIB&~L~IB8! \*N, $B!F|'WgBɌz!g~JP 1 L !b%= &]'f2!0_źDNN>yqZ"BHbu]#Rjōl)B!H~ jŌs] !fdz};"PSBH]KU5)0~.eKB+ۅIp߶ep i׊.:Ҝ`l\j引 '.i C!NDe-T{};:4 fƜlp)sB`ҴMbYECvgm=A81 ũM8آ66mۭ߶n}ׯ|e2ΕPosN1v>+,P4p $3B!ҳ?]69թ[nr@'0̇ 0s#?soߟdɳmb?4U .;_?D!:d3)9"s蜊`Ŝ K7.pνoms)' !h]1t1|N*>0BxI(MnˇW]d9s8L[Nc&{Vh}s}6 !t4_żPeC!U@n N/yh'H ᤍTe..hKekfL4j Y cUuDdw۷ŋxGyDR+ڡC'|oBi:nMW4~U}#KK DC-(`!gPKr~q)\JX褕ݽ^[Lj%mkW6pP[9r+_X)Mu,&#4裏:RVG?2sB!-WH9QmJ -ǜB!-FfhDCȂ2 <ьNmj qu7aQ,yu/ oQdEd֭ۜ9s$.Ҷm[Ik׮[lE=Tu1&*lɆnϔ)S&N8F/+--Śk…&L4iʕ+eMno&nzԨQ~Sx z7cƌ555.Bۥ2vfAB!47v"/`xmڄaz!°Ĩ] X͵P6UEݯ w}3?XSRRj!rofѪU>{wXZ?`6lع "1 _|QVgĈv4;n; ;蠃-ZTl\pAv$De]B8o)u/8B!%~шk%O<0aDfۙw55aMuc>jl㿯{6xAB!'z9tp [nN9—mW/y睇"1s1⩨JziիګBwqH BW28sȩN`gdSBscRB )y#R"˺S/HD= W"!cs{w<{IY`oO;oO({g _=X l// ˘1c$ޤx$!FkȞW^yG}$ omkGy$2)6KZy՘n'~B!$% _3)ȁ@\.W2d$[,=y2| P4KAyH!5by>ƍ_=KߎD>Չ'MJAqZ7ei!<~MN/zCdfYѺ?JA0eL0' \)"p\|Wloޯ_?h@z:{#zJ$뮻$_Wn h" d<3[{G</^z$7orzkoM:ȭweŀ޸!xz2RhK|bG4)V^1LD?y5C!!dJ\ҨjQ=0_ABL2ŭX0 Ѣw`Yq001d1zY\I'}.>;vfx6>S4 >x&O<{ݻ7AH"1?RΝƽ)nlv$B;`?6WZg-c/c2B!tQ;?5\7~@EP-9`D\Jh \EI9U>Y𡔺Nx~_ :.QQX7|wYxilǏGa8?}g]5 \ ?ek,lqo n-6{G8Dei!uN,q.aXBHԋE[< ꁱ.WQڪFꪚ*5!עUU5j\ tw^+VXa81vut!?1R>D\(p\\s5U+| Y͟ ih" ۔7_]toϨ*A6;Bs^8KQQ. D2!cK̬rW1䬎ɂ|JƸIT%ڮUUqYfr ďtyw⭷ޒ5_ytn>}pV |x{2/Z2e_3p yk$Duj&)h# }rXpX! JzE7޿R85cS\ B,".l\FZY+j*[m˃6mVeAiEyvvޣ}7u嘋gB̈8(9O?RA6灇)&;wԔݻf:u@H|H y/8Zb>L` dW)o Sj@X馛|6!GmOhB!qҘ2>Q$~zJ2\zi\維,/kSZѵGe~ҪeNh{$pSeT`7rN! Lʧ-E,x{aFA՟gh oF:|NB.p$O>,A  +'HҥKSI&|/.Y!}` eö(2?)00.$(`!d(Ʒv&0E0UKJە^EI߶+mߛHL8'ݢAN5^ WRTܒ7|Ӓ=nh҂J\Ǘxx6 Ҝ_a1 $ĩ >sΡw/C|20 z.FB$X|瞋[BܛDB4ۧqo etho#8;sB:Y1;\dh%W7 B!-L\xRjQuM 1B7&~{^]%s*ԆG88[0 ]]J \O?G%DL! } !1@I1 Q^F4Hwp*|{=""I:afΜ ' Oo sM\A^ޑB  􏤚&) |VBY;K yY4w#\$XBHf0EɁi*dW1*$ fg [2Y^EA+3fAN2>D瞓 fJE+' D/C'P}HT8g(YBɆ%Yr2=Qt$A!ĉ/o]bT[cBLK|ِ9sB˜Ho [ !BPǕic *BÏT#D4^Q\BH)TBL國56xUߧ_\ BFq>-J&+BǜS]d%bubeD BHVL.%90B|}t+8_lO$B![@p\dB!*b8b008.tB`-ļ><&bRۆƯ* T#B!pazܗHO !d>'x3&LPq!f"JBiQKILLOk !%H')CU-}WG/Fٌ]m}iϺzBzR]q]ux5C!!d^Ň+)-rll㪗$fMh zjf׭JOVSNB1béUUQBɸps]ZIrQ ?,dT;f:'`!DV 80B!R/)cf|Vq/`Tg8T %Zoxzf( 4 7w,kի4BqN5:G?&TyN0BH/K0[!˅0Ǣ؏?{wƌ#نBFh\11.$(`!d(ƷvIɍK)7֭Z>I0iO<-_]7;?˗//)[l믏0+V̚5>XlѥK6hС1`ĉϟg>:uZh_a(k[nl \FV2ejZ-k/ C!8qea|hmlؿI#&dɒ;Br)W^yȥ^ڳgOQq>q!q"x}.޽{K h /p„ UV($;׻ ,Dֿ4TL/PT Bn?F|kL%k,\3{w7N=^O?O?4%.M66{ƌ=رc!9F;bN3g<E<=yځT O4 GuT>}:w  6tSXt 7܀tPc=>hL]w?B|~_CWVq0FB2#c)+Sr`L"&88d[o -(֮]s=Z 7^rڴiǍkA %h!ӧϞ=[" 0:r0,XF4<ѣo6 /06HēO>ꫯ;>|xT '5bbihމ,Üo*dB2_fBŸ)UV\ _tn9蠃Z5z3ԋ/첑#GIg76:ԋ1sLd72k gG"Y XF f]`]5eC!Ľ%/?Y$mdD!㎃_ H0X/xbX}fsȁ[ Ę=r裏PO>Y !.fRc1vʆ!B k<ˊxmPkm4hTО동1uTIQ>EȚׯǏ} ?{Q d݀[Uu7M6<0BHbFrͷJ#B6H)+%'̨𶧬 $H*bKhO0-~Gk~ӟzaZGy!C9uEBT)  Tq ϚQ6$ ߋ KgQ|/УlKY *1PYbؤ !TK+Č?\ iwG =1>`,+'.o]iN5v@!ld$'+AzחB¢?X{Ϻ@$;1Jfk5nh^k7O۶m% 93_Z)!*gk(K`k@!oǕim ]ёkHV T*wWK.$*Ç!Pmv%%%@o/ ~z}fYw 8;X،s֑_E o¥AfB!BRg͇P,/_="KzWvuWHG51]psQ @5k.;K/!2?FGH |gA`}_/$  z0Wweb^uYG 9^"9,P4pˢ! ͧEρi6ׯ_W)ӧϐf7Dx<ꫯVA )ȧ+ aЪJ'd{9tA}+--.Bb\wu>HaAV!-Urmr`4çBɪI'鎚fʁQ&:1yܡJVr-e-Qa\pO<'='NXMg}/WUUESO=ew*3 ;Q ?F!k}eԯ'%B!-Kz «y۷?a[r0 í믑.{7 PUi ڵ+nefY|ybX末w[nʐL6۷G$?9cG5!\ʓСC1ۣW?q]e%1!?(СHao۶Mŋ8^ymC B:{1̷|:Jdj]9@ae.{B)<&a_.㡪1rAtB)heDtaM,CkïP4@ !(B %W,\t' =pl^B!pubU<0ݘpg$BQդT&~1bhBaZ305_ďi,A!ac eiDa5'cBQU'zT2 #k!=' ƤwBsx0?BTX"[OK1r0DN BHSb҆)Bɀ2ib*ٔeH՞2BF!!dIjsB!-dEѯ:@r5e8A!BTPBHˢX/F ubF\bSd!B)B0!MBX@Q7&]tX\h4,U'0B^ҳY\D!KBI-Fv{Z\(h42C]SNBHLJ6 L'|X'´M{\t@!cXPEPBHVC #XJ ~c/0B~I7uI-~ ogB! |5,?V69w' B!$(Og\!dHZۆ_'s9?! "d5BNg%em K,-O!4Nt$\KQ6onYE!p{b^pp~^8 B!hDC=OW,H_:6lX׮][o .]:o޼ &<(c!z1bw+>:Y :u4PC"82!Ș=0~YŎqQT>2NQ E ũS 0E1 Xv dB!/Wo>9眣:{1ꫯuBs D$ڪF(NΞO!$S~,0#c,ztM9)EtB ]G' 9 4!dBH!_~'}q|Yny/ UţavNd.e;w(:aGn{nM!tQ[VquSms7! |4L~ EElN[!e9sSUƪb$\Dn뀭?˥~8k,CՋѦD'l Kq&dT3!Bߋ KgQt]`ʰ,WZ5\xk!ԁ fM5aP$MZO<+WBM[BH1Vq-^sΕZ76PܩS0B2b{`RZ{_-zV!B!?·I8;NlIQr`F%kbرrZii)s"wJ!EuhNE# lRBd_̖jc{`)ɇe5 oqFkEegqd={;Ph4e{sk/O lKdb4 B!٠IJ}`ҩY1kܷ:/[ΫV:Y\O>;vZgѣGuu5|5Efm555<@jSN-&Ӷb 쩪gqW1}.;vn`|WeMt+V@|lٲzkrʔ)ls{3fL9sBB}:ګNPEϚ?5^zV{~a?3dȐkO?=p@._}'1#u,X.^BQKW"d8E%#ZSt15lj*P/A !!6Weͪ^~rjŒ#7Ձ[mlѢ~bwhպLd/^{uUժ K.]}i9N;4IХK G?)o~3o+7`:I8@&gJB YC!$j(7~zx2j_Lrdޟ|ތ̚ݫO+U+\¯^9rv,-«y晉'2ʠJS/=i$uQ}ܹ34~;ĂvN#GsnwDCW__}~CC .ıM6M̘1CH#F`+SYz%B" &s?SN9]op?| BN>d),i(`HFP\g 0gsd( @G&(`!dx (-;ꥳW}\y͊O}XIm~kIh%U+WH.wo~?a1/>VU%% Og|f R;% uw⋳:k~I#o1Wd!ƍ=z4N"}e@?\"|Aln6M { "b̙=O.u T֜{ӦMW| lp?Aߒ0 {W$Ű]p* m!vty7>~ !I]? #+c@]Pڅ8VjB!-$;QKL_\tMx+X"_]sVʏ4|YIi.WU-3xmz^ŋWVs[v{JQItdz Y%$v ~ &lyxfLu].emtw}9ǎ5S&Ջ^#S/w˼~/ Ta~DdM^0`,BץL>0ͪd*|Ui8S(4m&03;Ga=hK~e"cɷ駟6$'sOsĝ3q `߭[N:IVǚ@B&٦Y4?,a/}g0p 'އ0|ܤBf9 ȴɘjeM<_qIBIM`YRH<̇az]z`̫/Nԡ}'ɇ3'M'nT ,|+1ĕd\}50365_~aI/ -N0~ I'mF0p4cC/{Ӆ+CU s>guGL6 *tK9Ʉ~?Ydjr)umѡ<aa 3]Zw.Dl[%jmURTRph}r=p8d@flaY%PȭG.fTTTxSVVW, S0On5 B!DUFRFo[DM܂y -q:(8FZiPک@]\ךC'˝@w,_Z3$УcJ3nϖ9d gQcu<6i#!dqDiBQWss`!d ˲dI)6oZ5m)Ii%Ɏ?z ^:(mCzqdȒw[ow(EΖms2.!z.b}1x`K;Ȣ!?HTUoc'j j!Bdv6wѕIuNkraik-k+oh_ҪmP.(oTTuawߪ 8#[W~4W+P,?ʶb}"i'\rIC;j,fGlޤ4s`!d=Ț%bYʷ٭g P ^d( /޵[l}!ѹB"DP e]w۷}~1:tM9|{`PB>4D OzJbCGnk>֭IuSfx`fB! !kz3emϞ]9vTYuM](*(AwsisfG'~ 6 N"$u]rayr饗[ NzXnB^ꫯVb-VOԝs9F;ޭИp. ~B˂iXBHP SD[ZRK~\U t\X媫\e>\[GcO JJaՔCF?U`eĐ/ 0OSO=9)3H~.M!s'/Y$>O<_csYg~] AJ?OiiOz1:<*N\D!P6 ^x 70D꬚3{ѻV?B!$`:HWAYobN=4wyBYкS&0D8I[V"BH:7:Yz}E0s~r-pR@ij!g )`!##Q58[v !dB҉?)ZE8Gr=T@ !κ_!914OD}R]X0B2[;KL{^5!.b^?Xe%W7փߵx!W&NqDB%S_X &"CJeBH FoID#5 &B2azIc'lF ! ^g /2 !dw83&j1~QBRz|HhfBv,W_y6| XN?~BH=0h [!dSM#2jgg C B!YďIR/)3~BHqbF8p O!$#8B! j!fv9́!LDV:&Fhɉ^8/n4, !k$XJͱA%C!2Ϳo]bT[c| BL]_w&!T418v0LBa!Fhc!dIl ˁH!dtc~[B!WꤌXpVYم.B!$3hDJt5d !dmaov\v~rB!w$gR8v!0V&Y';r( !l0q?RYvСvذaúvzA tyM0'GCa^fzgB!|P[õP?#l"{Kg}vee%e !d]tx|f0Pb$J0Z!Bd'JL_@^9眣:cĈW_}B:8gM80i 1(`! QxFU2ιM7裏vEbwa`!{^w$U1.Q*h$"c !zf w$%MQ;CuAqSOzݺu kv%0ѧczXJ-c+!BZ\DBl*.b7q3n{nA`o?ZeyOswt}4jd_z{/b̐7.)!lԩӢE?+/նb D: \(X_W_}Gi >| ȚdMy/X0qO>DR 7Rٳg86Νbw+.a/x3fL{B~Iu\9hLs^PBZ*EQ AoxUW]ޘ7o@B;p"sCݼW^yl4iuQ}A 4~;wꠘ>~x8+N9. ׿" h'|26v tF#L:N!MpVuon=x xiva]7,>9roqlǴ ^}UI UCxנX,Y;DDޠ !1ģG:u`ǹa2B!R/)c -EDXm7Z}zrg!& cǎ{E?ŀanAH v D|S?sϕwAT}yd3AI aZ 7|a#Dw}xg?{ك /xxNe{豈AT+Olͼ!OzF nzLؔugͫ!*d^QIT|LYĽDA[Oxg͂ 6 +zA>Ètz^S/ܽ[7ӦM *?nwe="<>FH$Xb9W| $gQU(-ܟe8+6߂x' (e%\ _̌"dM /%S,]G 8[$^{ 7LC4?Od!T/qN Q:&:E ! e0)1v)e"Rҧ_S/lZ(O_ f 0I\z_s|2p S_N|}K?F Bկk8aBhި*ꡡ4az-!.'Q\LWkmYw Z<B+t G#& [n/(/{  ȡlxW^wf|g}4 ȡ# @X@TTT Jc!T/U M0 TMX !B[0шoMY;zzvg| K@^|xW}Ň'!aކ, 1s5653JpmVV5w^HNaM7݄2>MȒmmzqS,N 6~eBH|/ގ$qM  $Vm\f;nR>|1b(n8?qGH6@/D|YfcƐF%0 Ԡf}R{,֭[}2> &Ġtzi򧠢q~\7Ʀ3ȒBeLz~J%K2&X&Y,JKj_=^⳱VUM<A`CPMgYyɐA@gfr_Go_|qŊ>GǍ!ԨQ뮻Eݛh"yuA1hÝ&Çs=ȹǻFYg44w B̫ޠ 4vC/KTfOaX~Ek-> s Bl*Qr`^W F{B|TnX{C~9sJo#FqB}~qΡ?vjő%3ڭފE]I\JV|)szGkhcdAh_Wb t!M /Aԙ!v։@C<!B2,˼W/BMߝC~鈸CSK?#GDN~ z!EYuvrfQ_كBɾ&ЌYfYK70vm/ng}. PUYت3fXGf UEH?4G0_^O>pFt)6*n~jhW*٣W? U|uu!B2&P&|P;/#Q/W/>}d~M/$P:B@2W`At¥h/P+uBHˑ̹O~E0'ocl!PK8WpuTA$VR0% K, !0Hއs ".G}lSj#zѢ%_~9gEe0ېu:QB%P2ʄB^m,Yo[,~)jdj-gu/̹-sN~(`!d+ &]$4큣PP/5c}`!0X+>X2*+Bq·Ih9 B!4U4#K\ii֭wR) #+k\5rBM~Z3 80NB^ØNY6S[m~Hv}}G?4,0P ֥[rE?ua2!TgR/>pؔMXJqqBX~B!$`:HVڴ"ąx8qU "5u6!jǩD+:W"BHǾU~1ź\i6w1jsŊi ' !sN52U*Ie' 2BF!t)SDzb pTmWNri>UU qت[oiӦ}Wȶiݺ\PRRG_B/ĥ9^8':u%EC!$+cEcRo .c9*5[&/LHrmpSU=#FojժI&o3fѶmvFuu5 !HZ[]rquc=]B!qea|h 05Q+C[w*x?Bɕ6X>W746mڜ&K┗2_G2e]ֻwwVz֞y!dOh`. _>0B{I3 )]ΉWڵv8  :&*qv8|Gf~:j$P r_|1=nܸO>d…p;vr?}~[Z7޸[ntڵ0z%df4DBQJ pRbԷ! KIOOʎӡcysK+ &_R-Z+C]wM^5yR< <-3O;袋6|s{ Bɖ4sk(,.7V'c.ŦȒBeLg1iE!Lz5+)NE]Jyޕ楴*̭ -a҅tZ5/?mb)n%ƢEۗ"EVÇ&f;v_չs筶 3'~}PߣGʨQڵkfRSSU֡Cns+W@U @ϗ_~9o޼zrn/^,1_,YK.mСC%bxQsܿԁdM ehʔ)*!_T | $4/:Z|d|;V!#p Y= {WBqy**B-a W ˊ|&\KkڴrIޅR 0_%"'O>m't~e≔y7w\?sꩧo?G}3㪫2c]vu{O?~$I?¸[yӟ3΀q7?rG(}wZŶ>{waP}00!)dNi8a Իj0#B!$3~,0#9W)&_ȇniMPVl,]VʥW-Yj%ՕK+W[5x̀a}p(gz?k)++/|^{-ʚIW-I\$??Ò2l0!_#(z-@$ 'p)ڄzEQYj'gə!B2@!_~Qxɲzxnw  KR[laӗeiU~5̙3-Ua=xWyٳgKc~cO?C0,& qh}s 7C޽;>>{]w=Q_ ՆT 1Ss`90B26Ԇ@bO @avKW~MvA>\UnUTj Yn{~s7L[leƔl%"(,X14䋸v1:uB?lx13Uϐ0ax9d uYE~fΜ98BɘAl[{/B{@8y`nvmX (֌WB-lO>䫯 ?({ :QsҬ 6N[ e*NAhdI!; _håm%ˆ+@2 iniIٲY=v|U/dO?׿5ߡ(|6nW(Yx?{1 _dVr/=z4L>`< tQbÿ xd@}te˖P:xf̘!scM5>%_f]ݶ&h%9|? ! eSw..QuY헔]-Uh VHIelWV-)Ze.?I 9 C3~}_z)I| x#5| s=W/^ f*&L@)0Y )6&̀vBniBp*B C iMh.fUpV/!B %a ](14o^IrX5>)?,i0&U,/V֪Uu衋ߺUR{S)W"+! ^CV'~ 3N* sUo:UǏG2?,|Mh؏JeYKH6SN5ɿsNK'L% B!IJY'W"T*# yv|eU|5v6KA[rr%vUUЁc#^~n Nd||8k /k4H1ue-8!_ԇޡh_ S2D!;d31&qs?^Tv@yK+KðIss5af񼹟^9"1[BaO>).Aw3ci*ȤfV՝vک]q?^E  `?HhĉF)뮻 'SVnW$Dن{>5L!)hѢh'el[k'kI!xK:'])V 'g:mY^A+:JyGug-oV\մ7!dbwX0ٷo_߈K/4qVnw0> F1xZW~0}Q ޗ._9'w,Ha<[x\5cj` ]F<0BH<_EV$_bѨ;=6_P+ |0c̔ϼZ3g^kaKcAN: Nt{Dk^{ ޫW/TUFWJx 7*# MU'A#H sܹRiog}6$6,34+\m%GGj/^7xߡ@k xCM?$@:Kb>~K@u&8~zfU=g}w"A[_@WPwbT'X(NF4pVEBɔ[&RO :Jr50̇m$?h _ݑ_#4ȕr%j~.P[jS rli"Ѿ}nݺA @0@5#RIah ")%z\C3g-I*A,_9Wq?p@/%Y7b)>-c#ѫzkNBF!$CBRzI.6!K2O]gYASȘɺ(|NHVx7 $"iQȐ~@̠)on=>>82I7:~=r3_km2U,)@ GުJeR7#g2 GI.$a'jK텪jx&࢙H|| QCHj",KWI0oo?"_!N$97h1\|| aua$S@A.#UUU=B& WdQBD p0B2X@UUznHrݪ%'U &HpB5z d \% # JrY5UUy [v   @"   &9nQyB'ZLZyLA† $G*~BOsʋ}'UU(b#׾Sτ)8P *SB(0Zs|Z;J۹LBL!B"xd UUUIT6㷍%Xy?U,".\"B@`UUUT]2}$J^@x0 ̘ 0 Y`fqQ8SUܣrD@ L0ȶ1P`IUUU%$끩\W}{$a 2@AA#[:f!UUȤ^Vn'LTUr @8{}@@ $ {Y2I8DUջ-X0C ! /@@da@UUUwi?=>%UU.p5mA@%\ȶ%_/@@$( `UUĒĉ=PSs% ˩_]AAD#$I {S۹ʤUU޳"OOPD (0XKUUsǭ/j9wKW! B0}rUU fRzτ/n{A"毄Ɂ4A*ɍC]?ޞ|Zu䎗0%AH q#HAUUz}쁚'?TUKpl*^Aa*S%nU:`󐧝} \%\HH%@@* q2QUNӋ#LPD&@&A,* =ez 0I$TU|ڋ@ ap!"lᑪR$q;{gJ(P֒6`KK@syooss3{>'<3󞙙wN:߾R owwKnctt [222ӧBwwwggF~ [2ٴ4։b}Ć -D: Dw$FApCV,u^[܌gggT&&&k N;^jjjDFF*VPPgaaPഴ_ǗATTrHHHqq1$ B`NzQ#.XAs {кD 2~~ l088Q__???OA%555<<&66~ ̨ }G %!!gll 뫺[(Nvwŋ[{g B& $̾؟ETmwclnn~ЏXZZHLL\]]e+UI |#`FFFIII%%%dW[[3p{PL &i %(_QQ1ԙi <_-\dfQeeeZZ3ommaaaEEEjVͧ/''ANNN4)v 33c-8@\N>?? jcc)gd'AOSqpyeee8%|5(\. EtC_X 3Ă+jAAaoa80HB;Pr||L~),,D_׬Yܹl9JKKyxxgZ,X2odGDDerH;ї耰===W'5Cp=D;cܴiĉ&C@Fuu5R`9XMvYMM ڶ"`p B555IJJ"7b pgg'vmll vgΜa`Ya+e12sjVKGC.PWP+sp8\{I/ 7˶Kw!#:-}6/9?;w\r#GB3 /{%+fPc={G>t萖鄄޾};~yM4)  tvvBؼ{kהJBww7=z1DD={6s֭h5^>i\5o4d9@fe4~t=W9s8ǒgp8шWbHX-~hnN`QZˁ̙ĝIoU5)s( gpH)E( P k.VY'VJb`XwK#!łPϦMA79 ^`P` <qDvXCE8pt%ğ}:LȌs*%`n RU!Lp8E$& gKV +>Ώ H↤I( ƕJ;vlpK۾}MȨRЋY TG e4oɥ;w.ZBڊ+ ebtʥ@0$v)yV426]ACp? aQ=KڄZB#"~Rc̓p/n~Wgc,0PoU*%q2Q55p cHl1 M@(6QphLVe뺐*oR  ɮ"r Rp8jo$IKM ʢR0ɓ81rȦXMI PydM?@-^1Z*`_:⢱#c,տyfB#1KcYiL`Q[AؿfsZvZPK˱W"́ L!_D)Ts6 SjE3Eov& :,Yo߾kj/0~&$Ɗ+.Cj9ómdS9s}f qe8 i޽!=/_Ri{aɋ }z"/?~ ,?O:r II>&Beu:u߿-* 5fDB.Ba΃0BJ_0rj$0zYViYs~H-]T;Г 3sL<%_HD~{G !!(? Ì3qa6#fn æLndL0AFA1X3wnnpx62_Hl臶^IKCu`*p8G%9+?bSFA 8e-A(6l3XՑgyŒj *˼UDƁ9ޕ;0]rH^>g@4`Ya)F 6 >qA>6AybZW0Z~ ƍ:6p2Ry.$"yhn<\#j? Rͬ j-cن4Sg^/XLCT1YS$pxKۗf-AŋYCFpҸY%-fbq ,‰ڸqꙘ>pUVM6? ̩b8%K*"~;AGMPRyݺukiΝ;(*,ّD!c\ 9MmuMW4r6l`fT1}srByH}I( 'yS#DuuuF^*#xZwwU̅ :ch\~lٸ@UCz"r"T}@L\ᨾcd}ɒ a 9 =*Q Xp8>[fp9:d%d5!NW_ Z7y7Z+ѽY4#|)ߞ%zįR?HV= iԨvtÞ_mxiӼ9lOW5 K6! ]*|&PR}e-Q&" `gg:ܫH>N$y##B_^D7V'?jN$?X?̮ѴJ,UWTDH'~W3Tg"o1[eB6( hCߡ3Ő(,$U:lX>Y}nmmW"́Lc髹BT@ٙ6xJ#. M/c$'5Sd >ZS|'ҿllTU `dK'T)'VӞeR""?F\2&$}6,`d/I ˸ͬm[AqerTZ/ԕ$#/01Of- ~i&P""Q(RaH8rQ]Mx,_x"v4[Lq Ee5:DSD>Tմ g0)^OUYx@i%H-fP!""XͱK|ݻwEdXceY  "gbYdf≌ сʔB^gUKۮflj1_ kf; @]ۅ`o޺ `@Ңxx>ڂBDU& &G꧊._\űcǸ%с(cEW\um׶fb;O6*dDDDI.$뺾tV!QU!7;\E^ҥm>YLӈ=YJkbSȈhdjOV5MSUw}|61!"Z[|^~}22K) C!U*DDDY2ogϮ_ɓ'fCD02lGU _]]~gL3xcU 0_b{]fPlXpYΎ qNTu>:5 BN8qѾ>|?9<J x^ey&0DD50md3B[ney̙62Pdi &0uKӧ=u?uMs<!DT< RA/R&Xyl|)N677?~ŐfccիW_A ̚ÃL`|KuŢBuk{;^]g@%5l(&~Ä"":$e3C.~k_)M9po( L&$6ad&̏㮈b=cRu] .]ܶ|wM]&)@MɌ) (CQ`6""N~^XtBtiDǗC?g_JchǏmI:Z%bOMM oG%'. =d-#C|r)7o껶mX1YoML]Q cF&K`2I&381$0a%+ C.כ]u]e$"p2O?gYwSs,o ϑ_7VOhrdU:z+ˀc `Cމ7^~/컮6xV{e@w3QXQl0&0DDt8#>O̧FCds?FDT׵iUU[OL*3lA /Tв(ëBReUjb*M׺.13*yKQRXO9 f8a_V>9>6Mm>b&PD^8{;Lߑ߫?{w#7J<"7|7 ^3 $AHD#de&pU a &d sI!%$h >.wmwc_ٯ^z^7Nl[OwP2ե" Bj!b-s@͹1|d.Z{4pw}w WͿ@e1A  Z9+EP:ł/l1ƨwܣwݽrzu]۞E~Dh $9:jxÈ~w([ b1TܵsWOV{>xo:3Oӿ<,\dAZ @=<'@εR᱐Zz[cۥu:/~'OӿXk+D*.  sI+Q.%Pry {n6xg1ocnޫ^IT_ES_NOӟ;@@x!Tvq| D@`-bk!=& ům1d'Vݽr*w|?_~NӟzEB9'P@EЏ sU0OY@X3cZwť'LJWk-Lӟoۦ"X @$9-WT!du9\gXJw~ic1ͽo\7nxV>KՓի>OӿDkI""%؝MP#QD1PPE ER.*P/4cTׁaU̧Sة~ӟjBm@I=(bcK璀P!`cP@4c\;y0n!ϻc"QjZc1XEp TbP(D X= z-bkc1T@} i[w=y>7O_kU (@%(AKΦ<ւ Acs F:oscq69x _̪jw Qp n'?O K:]KΦ\>'@q0p8$KcƘ7Cd>[xmNӟo -\r)dח >x8Gc1~+a^|mߢ?鯵TJ]Px@9h($t (b1Tn}~=9OӯPEB؂PԴs~^  `gZ„-"@E+\bcrv*·ۙy^?;vGdkY, A\ѕGdX, ĊT3cVo_1:xOWO?/ e5ELL!ӕ3#zLp@NK1w.9xS}ٟ?ֶmMQAP!0vXbq&Ǡ@ RD\T-m;c1f?vcmKm`)oJy$ cEC9KmWvCɏ> ?֖F" @"!p)\r Ȧ9Bc1ndy~WS]g~Gӟ3ZNHAE>jpyԍ]%>f ;HY1 >u5cIvJ1Qy.>OD0(@X1b~cŨsnPQ="vNUjS'l!B Ne1cU_i?A_?O@S)1B(xv< |rm[g9 tc1ϒjٓ^'nT^6O?B#rOҎAQTh8'QzDAsc1n>pwsr=O'UOuӟPmp!Qٹm-&6<c* $*8!vb1sQ} nO w:s|hOR U"FhegkہtEg P4R@ n6jc1GaO]/"X}x=/ϳMӟsՒ@\. mkB@%(`>tĢR#̪070c1o2ON?߁Y[?/ZzϣԹo,df aIR9BIc1x"oӟ 88 Aڶ-=[ݑAmcIH1dnW^>Nӟ_)֢nbgʵα";]G=3BXJ,A "$TBY1e*x}$mOӟ~EP( ŵ.GSksت$PB1{o=f1 4Я֟?v5 J<6B<y{| T$"T  c1ԛO@))D$PJk9qv9F"!@Ō1C?07SW T=K0 |ŲOʺidԘuL2&h[݁Cn@pM3{ՓX;u43jnp|1x%5W/IJ2O":MGv۪5IM>`ʚ,~IUIiVԲw)$W4˶b0D):{usHfAe)M -'?✲Da2\M lދ֧~~Ju.-wÉ =.]e'>V휚@s <:~/Qc]rr!&m٣6 .\}`F ='RQܕۻq`y'Tdw '>f#_`kl lZ0/eœP!7:p Si=zz60'vd~ʻ$_YV:m',JQ ڿȍ={3#Ek$#m]߱?w86|>IENDB`ntfy-2.11.0/docs/static/img/pwa-install-safari-ios-add-icon.jpg000066400000000000000000003110601462047176100242230ustar00rootroot00000000000000JFIFHHExifII* nz(1 2iScreenshotHHGIMP 2.10.302023:06:25 09:39:32 2023:06:25 09:09:37Screenshot vJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222v" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? tWWI4>{LVutImIDRJ`Q5[xskll(';JE* OtO OC]fB* s8}Un[[/ŵ̓7V[) ,59#$}(䶉M2qȢKEP0((((((( w[4ܫ0-:T|NoKGUψQZ0ʛkט$v2[\Ib8Eb8t4$j)5kyK=fm Jsq oy 1s\$*λ4q2,.H$vX)4k)Z&S#lh@,0nH#F# 0H2}(v:Q('ҐQFOAFO>`z mNŎSSd%] e4ȳ’aE<P4Zm3%Un̶⇕k}K"k¡')}U# u7{sZ6ow;T`]liufsURD@(vORRTՐ N=ޖA9ҡ:C?K Aq,jH3h}N8IoZ7%1=I:AUq#=>_`%VW!$㎃zfLõ3IN1ʍmRMv4R޴$UNwqڊ*/sҕG*G^(VyI7=SyQasQ` U[~cX]-ᖏV(\2] g|g)o7}`՚(ir eV( ( 0AEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQYz/GދQa\Ԣ&_ʏ sRЛʏ sRЛ*?&_ʋJ+/BoEЛ*,5( BoE\Ԣ&_ʏ sRЛ*(\QEr{VX -<@c=?~tannbHOJwk;4ܱ{ v河e0ɹ 6qG $mA+zRֲi"%9YZ7-9i [0b9䊫; ^2 $(Y̐=q:,-"F+@sʕȅ]!U˰ǽ<[ xc`9ll.wqy׃MX9Kcnm"ؐ9ˢMBd"B2w?QGcj;QnI?ƕˢl% r(q:Z@ME"&߾:eIEJn-KIaJɷMqdbf0Joҕ1;;)לM=wIF`<*(l-y ]Ā88M>}B)9E-ո%c4aJpiR&` S? ;K%nDM sq`ьɁ>I-lKqu+&m G]9$ ;9ݹ{VU'%A)3\cw5sk}̲[#o_J<(qQ݋P n_΍%?*6/GS35VSTLUa[ϟ/1A:N?*6/GG(\T[!FM?rx~ul_ʍQU+`z+^zU~TRrT+/}N-> mTc$P.5dXmm۔rO?ʽgO/MO&T{IgPRTuq#|q>PAEyؼsUu9lvp5NXꟼFi onxzw +^&^^%Ηc[QL7}~궚 zүQ@Q@ phttp://ns.adobe.com/xap/1.0/ Screenshot ICC_PROFILElcms0mntrRGB XYZ  "acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBC     C  ScreenshotN  @V^h*CMXď9%뎳~e>Nϴ|/LuW\|5}'}} /8iQY_G,>+!Vp6_+C3>38>c_~% gbv'58^z'՟U؟Irp'>Ϥk뮥 Kb?.9C KV߰@>lw'pYκY/[>V; 꽾}ocS@וUO=J#5<ʭ !gQ`Bگe$&,Ҥ' 5r)~:I~?\~ʓ|.ug/=މ~k|C[σ۟cS`ӞyK/\ @٬PG\%gtQhd#DXb^xZͿ?l<}O|6 k'}Mm|^G9hC B" V%vPqaLKꦋ 7gt?KøzGſӞ@p G^y>S!~>)P0Jߖovb}'eiǤ8~@)Ui=@>W?@%\aỲ4NO6y/?k\+>d"7_|U4GWucYOED/zM3.^_h瑬Ie4_h:|mxl]@ 6w?KFve6<":xkgs1 |חE3y}K׃K^/z3jv~> y=5/O"zxm{Ds^,Iv>=W#ZY<ڃu}Zkϳ?&ݝIG 5 wI]wG`:Y:ff1Y*G@Yu_^ñ;O;&Ǩ|Ҁ ;8Qd7 wo !%:WR}ޥndFXHlx|.{&{"Yn~zdda1ғҝLu6]٤74dx1L @e #݃4I6dIeTcH֙Fm:2!d&OHo2yd'рgCpf$5GIe3j f&4YR:M `][&\kj݊-"6ޛCל&oau!^6`է4d0RT 'nrpr9'prp@8&'' gs0ҝ4'ِpaai(61a:4܀WzѢ'vMM!9+FMnV$T:q7p8drprujpNN9Gxt:(TN1ѻ6if c$ɧ9&hWr*lރXgcaS;%H|nĮi66=[r'p3/rXPؾ2@Df3mS9U%:N4Y9j{@tqpLZe/(8^wF7u:uS#?7Nm~U[,e fL|.sopLje/(8^Hfܨjᯠ+N,Pni7,N: { vٲt#.@U3bp}^T5:@:ᯠ+>y-N]v̟fssE`qbUe6 .6 gm+@A,T3d𹲊mZ<4흶lǝJx=*W]TS-̕lm,IqnXt<䶢NLJreJC gm+i5[4i]% ћ'͔S+s zY)ihTa\v6c]}PJ_Zijp>VXIrloV6wCYw͟Kv vٲv*UR^h7"=%ZB]AO6O (2e/% bklv %+fyژ-v{i0,KS,/ӰfOhuRKrH܃.\aZA_v6WΏ/h7"=%_*Fl6QGvv.ywS[dxh~y-z;vٳt m-N]v̟fssE`qbUe6 (Wݳ͕<.l ;I: B- vY^t5^vͭ@+^ٕs ixêϾlˀ;gm-@=, ћPm^Zvm ^{\|1gYٛnu۝ӹ݋ːS}Fשrng f:2b޳"2#ů;.@>L82Ʈge]u8:k0t9'|j4fpV&dؠ4W r:Jћ &ituͣ]䬻Y@!E@X5ϝ ; "..Sh&G,>:Tz3edTl %Aԁu +nٗR-1cjeC&ϝ<[f yj۶e4yM}X1ci$IL 慸 U0l;WϭIA/qufK__P G,>:_Y=k2]1ޕlqwZ+Z(*Fl̏9/SkDu.GWH5.uN¶;l_InCX.Pϝ +w2\](Gw#ۖtd^*Fl̀u.Gӈ5.lhF7!`,^CzOi΀ٵhq2|Y(F#/=8k>vǝ ]@{fl˹hE"`2o(Z:dou]&וJ@\cE99_t]'EZ Yfs|Pu7؀p}L.qY@\SG9Y^Ptz^@;#'dr_ @>NQ\9>(vGUu|5VC:ynqgܯ ElʀYZw̓W΀;nY\51*np@;Nȝ'|Eg=@:=>[@ 9t^vg΀ Wj ﴒrG6W fxX`%k,v gLk p -ltŠ7}fq2"Iyٟ;+`\wB;KfKň"#|(*Fl̏!,@BsYZZRZ5U"J۶p4Ʋ]=m1-dEg )N{zΤS",][y$& yj<踇W}%I}V`Gw#ۖpy~M=k2v(N+yqqOV'%w2\]/TX%C1KG6_ fGV~gHWYwǥO3Y-ܩ#dgLk p([:Iqyȩ-ltȉfųrFDX /;3x-_>lqwwr=af; ;]rprk5 ]e\ 1uGLNo[d[@ 9tNvi΀Wkp d PG,N:Tz3dt':vͣ@+^  -M͞C)7-v &qcsd $sԔq@Vv4Fz~Wh5]$F{g+~w?= 9r9Ap9 ]d?>@ka,'>_V/dG 8#e]} dY\:Y\tk~3rbFMuEov:dU\a9WW Ԫ_ 1ο/Ӌt1R"HFm;]Ιe YCqn̋+K+Jydg&Q$F!zYU/?_9c{5.? =ou~[a9QΧZ:}:,3]]3WW M> HKYU/?_?|bg?;>:wN-?'\tU SiH/ϬȲh` fW2M=ou~[@ .j\Y|:Y\tʯe=z'}HgL}$罼@ u?l`+zi`}F}ra 1gو`@fpD(U)YP(t֙Y|/#E 2OQaU)"Č("h3U@Or|jH;e.RD^ J,X# ]P ?@ˬ> 4503126P7`!$%8@p&D"#F a)ka)"+(ìrG?Kз?'БHek7E;!̏ , K"e|Iy`Hƣ91і;7zMKGHb)c?Ӑc[Yg*SI(U׋M*/[/81(Dc,&a6HR]kjC"vzV>qyPr9\H3GHb~/= WzoPX/+69A3 TZVOlԸ Jm{O2cSl$)65ɇfX(X?SCa| ]Y5/~q !{$) ~%b_-Eޤ-.J\鏑%E3zW̽ Y%Qv+tqu"jGlP#0 [C& ǭ<1&TޚBuY%\&hv(M8:v=N`6F<~Bf rMġ[M fiDDcQf*%x3eXgS jHRv\i0.M'Ś*?ppppppppppppppppppppppppppppppppppppp޲A>1&>vEθ+2Č46w]TCC37%CmvI/,dTWJ Se()AJ PRex{vZՕd__1virzZ'k-i:]WҮ,BIf2J PR(mԾݞJ.X3gK>m0?s*iyiɸ=3t(1oR|a#!E|cXbn`_dn9" c(55g%9G0\u\a:s; ׷v*/-=Y I#" bgW'fTΔ +ƶ?̥ʥ[s*8#v ln$H91 Y^[Ob^M3F R#G# &n.hVF<hRil6#9 ;iu=versK/eR"dsX⹝{(4k44Cc =E%lUȡskC#* dhb9s9YDIi!*$:$/F"7s!8fۡ{϶lšږmL*T蓅& $[8ÇpaÌ8q08ÇpaÌ8q08ÇpaÌ8q08ÇpaÌ8q08ÇpaÌ8q08ÇpaÌ8q08ÇpaÌ8q08ÇpaÌ8q08ÇpaÌ8q08ÿNhˣ-3JnFP7 Fܹ2ICBIZҪB+Kqo>S҇# E!m\l Yŭ P DOVjtd$`ny@kY 2k@[)u5-kdMTDƯLJŋ_(@KڣQ3$ͪY1`779)/"uZiM"lSDRV Z_"lnP{Jdmg^:.7,e4-zmd}lBO8ⓔLԸ2d8=6^SĂYKQo8&"`xxnHm9!S)3ߋԱ"OiMYePՍZ"5\"*Rؒ[^ڕwTq C %KijY%@`Nq5uJ 0j5{ZT-umƥ N"Pb2O|r[Oe(T aR/խZPe\0HthNj.\蒞Ԩ)=AJj{ROpӧZR)JS}*Yw\)JSg(+JW=&}iJ)MԠW#kF Q^1kR;!FR6kȟ#HIXUe -!R{ZtnO*fTz j _[Ч&zoXy&^VCBڥS*fJ{:TC:t T7>[[Q\ѹ ⚑<:m=EXiܝ=+Z\ssUQHRz7Sм)PBÂHyH^ۦGoJVsC7U"LJwiR\TWD[87)\+ڕ m)M-e\[SUjPVREiZR(=ﲔ?~*? n' D9={~+}1d:]P ci[oVh$/DG7+cYdJeH ]mE?.#H8#@V[E.#IC%,:0ʱͩma:@bVb;eqNSEk)AanFE?#\%1y"$:w wF%lry|1jDf/n4E! p2` p֥LQ6&f sHcR9[)WWe_A?H B^+JRH_E+Bmaq9}rwkU#G/_qO`!9o}r"4aMG/_q TbT _q9}r5īAem`q9}rX=9ɯ )G/_q6-IhLJ#E.6kmmr#BjQ5Wo/_q9}ν=6U+y*[m.ޗ%tlhLUR1˥ȻL@=/%[dkLj%L{UJn鑗mce[r1~3--p.V~K'uOwdbM$j4:#|jLoﺯmd+QK>KMu;yc%#8sgY`:x~S 2[ ΤP䣾Od(MH]}8Lyv>82t+l Y yTj%3x800sK>ZWP!dٍ6S\0̰÷xs3PXXǓ{)ďO Y>XOa.>d&E~ba#c~["Fz#edV=0,{fHa%cpM"ms PxٶnSw=85dv#o1fH o#[Y:x~Sǒ/hWvAg9=cH6Ht{w񩻍[PF5}(KmYSA&6ZQϥ¾BH^TP[ZUh2[zdSmK Ҍr/JɣeCvT9XR`G"xj/vT9PeADU[XJ6Z9PeC Kԯ\quL]ɷvT9Peac˫oNÝvT9Pe@mC:٫)ʇ;*VlJʇ;*sBXJ;+sʅG;Kwƨ9[NvT9PeC.r7PeCvTKeŔiiN#IqK\EͫWM%i.#IqS4IJ%i.#IqVE.58i.#IqK[i[j Bt%i. (NJqK\F/m^]6Zؾi.#IqKҜAMT %i.#IqK9(,.Ҝj4%UZV i)L=+az^z SޤZr+J]EQ2:dȢ)N-AA=  WGSj,5vo ( /m /L=|wL{/_ە'c#2ϓv&#!i]sXlS`Il~2k1Rw[!Dk`2ayd2vQsTͰqK}rвe\8K2<^<3ޥ#ILűځ;sv,Yڎ^I{6O(/¬#4ϧK~a6WoM"tY>;2丨qճ%u 5'u]__t 7dSl}F!yuz]k{(aO)Ɨf8͍G$yp>=')aUaH@㝆%<+ XI G#+R">$cl;M>O}sO>N9t{6O(E)z#2e6æK?V,<ډ1(\E7?QTTKӤ(ޭ ;=fLnDi&@2H ݋X\%A}$1#GPFg>/lHr͏rڝ2+J<8`3\ZJMLseY:$'ٝW~Qs`2Ͳǩ`Hdq=Ya،aƤ@(۽IVq鰻J 3`#oq{OWjjwrRj7(R8oP}BرG jM|p7 |pߜ\ߐUO9;r4nF$n F$n F$n F$n F$n F$n F$n F$n aNecf5 ek/Yx^5 ek/YxlH.͹u}íz?x3 ?avVM/0ɱ: }#;{>+<A޶(A޶W+[f3iVP%du.IJw,6t)!d(IK$?UƺxΖULrR E daExHJљ|cj&vm^6?xO]u}íz?x3 ?F\_MC|P7 BAF$\7 C|P7 AM4I  A A A A A A A A A A A A A A A A ED]*εox/|^> x/|^VD764Fh3@њ4fkK] f4 hFh;H,ʴ"4 hFh3@њ4f4 hFh3@њ4f4 hFh3@њ4f4 hFh3@њ4f4 YeD [[WimϡM⎷/umyiIR>i%6D^Ly*2iQW[/?uH)vg_?jO $Ѧd;T.n*\F3jG}92[>QY<2ıuHE\w- 73Jac"PMf>N;l4;_SRTKFʎ1+$QSĮSy N!9)qP0_mzeo~U)ėfz7_ɃK&.L\?0~)r`RɃK&.L\?0~)r`RɃK&.L\?0~)r`RxZk[qpV'8ϐ|ģ.%!q( G\J>BQ|ģ.%!q( G\J>BQ|ģ.%!q( G\J>BQ3YqK  !01AQSq"5@Pa234CRr#B`6psc҂?v3B&=qi19ϸ}l[u^[Nv qUo\Cs?Ĩن^OZb.X'z9ǭj=5s isr+F}?0AA-KKǹ|*ؕ Aryg,Tq+lSPíZK9 sϾ[>[SVY}ŻOWVh ūOͧ?f\hMi)G՛9iy؇juHi:z+^tpސ{zCڷ9s^* 7(z i# G&*ktU{bmob]r{M2W}ߪS%oP# tO[|#7O(o m*⯇uAIG&~o52P_b?@NLTE/sBPڜ=V skkr]_d.8g -[Wo5?L>eC؏*ӓ?c8u|A>I70S^,P ^HW:CؼUa[4wvsv uP>aw4lZ_LU1Aw8:B C*!up"Dw ՈZ:;9:X%/AV9;?0{=Ǚ\~1Gqv!;-:'vŸD¸W V$GZnj򫦷;JeG?g(PB (PB (PB (PB (PB (PB (PB (PB (PB R!HR!HR!HR!HR!HR!HR!HR!HR!HR!HR!HR!HR!HR!HR!HR!HR!HR!HR?٠crcpBBaB 2… fB e ( (Q (Q(P,(PB\sqה5E(kqה5Ju x2rfN 4g†yP2 `R^M`:z)C^3<(gyC\rH͜9tgltgldfǏ̍͟\fFX̍\fG58u q̌ qCN9 = )֜ QC)(dw&Cj&S9 Prd9 F)ה5<(z)ה5nyC\PS^32u(׌(zSnQ9 qCFFܣ,jde(j)C,gNs!(؝# ۔kyC\P2rgɟPPߕlN dnQ9#(d93Zåo~VQ;(0T(۔kyC\PIR e F5 qՍ * * Іq0* *,uRX1+漵h\gtdipۻVWn{S Gfm5} =o䝨j;2Τ-(kjUj^~f4\r50ϐm5s-;?^h9OyJ7l乲ݺdl+;[Zy'gRr$i?w2]fy#P-8T/aGNƧ5\t坁7N5A^ e}MqwBo#j;5o>X$uFH9zlw @/'wJp ҸD\wt};W+_tN/'wJp ҸD\wt};W*/2 inKVPPB (PB (PB (Q*J*J*J*J*J*J*J 1 !02AQS"5P`aqr@B#6ps3R?ۈ芊}PP*@T P*@TT P*@T P: T PP*@T P9ACCG$Cأ켦cf#fEhmX1هZ6ژv]yEci?x43+ o8 6U0oDZbwY b#W^;;[[F1hp.t%_0v"6r,-lh~wxzRObrvavu-Z)|})?Q*9G*䕕1[4"5?;6<wv#mrm0%rmtAqEf[Gk兕ټ@-׈4߹%t̗!a} bXe }γē ܑ>fvqʷb6buYzݸ{?!5ζ۷,/®uhZDMbh?R ЊBu BAu.Ԋ4]y9h]Y#M%v [3`O ݅qBa o_,^6vF'ie0^dz/~])hmقͶoVG^_]ZWTb6 ?jY\"< ؍#! +!y[>^.7w62bS9YesZ Uݯ.󝽱{Ux"VVVo|Cy3 0C8eumAı;/y&.c۝f|J"|.WAwcHaWsn3ZcVǮQ`MHU1; ;â,i+rܹ.i˚r朹"7W˽yw Cl;FCh7!DȈ߿Q.?zټY^ΕΕΕΕΔ-{wwKoOV`ZjVPq`\da[7'$1 +>`œUZsPs;egx E$lR=YVχ UW:xN,6#TR5HM3 գ`-ZjvڧojvjޤIqʥRTU*JRTU*JRTU*JRTU*JRTU*JRTU*JRTU*JRTU*JRTU*JWT P*@T P*@T P*@T P*@T P*@T P*@T P*@T P*@T P*@lc0DfJcB9VA؜P P<58#bzGhDD#2om_yUz)œ)œ)S8S8S 8S8S8` p p"@S8S8S p p  p pȐNN9œ)œ)S8S8S驵 'SW#]M~Un]L}56DB>TjSxS2pkTiO+m멕O\u7?S*7FDB>TjSxS2pkTiO+m멕O\u7?S*7FDB>TjSxS2pkTiOp'S*MBo ~Un]L~m"*B*B*BdX*B*B͊ !B*B(6HTHTIR!R!R HTHPfNlTHTHTDTHTHT5ȱHTHTILL80S0S ))` ` aB))9LL3))gLLA` ` auu2ӷp6b;deMm ˫w OU;pkOڣMm}u3rb~]xS멕Ne6[h]LܺWpeSwDM4'S7.'7>TQ?Sj5˫w OU;pkOڣMm}u3rb~]xS멕Ne6[h]LܹR)R)R"!JTJTJS[ JJJTJTJSD2JJ̜ةJJJ*R*R)EJTJTHrsb*R*R)Æn0vLu TQ?Sj5 MP0S0S0S0S]BP*@ȴT R6'T MGjT A'7jP*@" P*@nE(T ))))X PNCj$ژZ<5+ ] sDb;opH^Mû!y7[;opH^Mû!y7[;opH^Mû!y7[;opH^Mû!_;& {~>}$x&]4#jHY|oO~brms.1REUzXw,~fzKRAznMSrxء!Dj&rrmrqLjla6cT̈́UzBoz(]ľ3,:$!=x}3uk:{ϙÅ{@>aoO~brms-1PmPqD6dh=Hڬ;?3?r]u=Hڬ;_3?r`5D"b)6uÛPSax? [I+n}|B>!t۟xmϼo]67.sM n}|B>!t۟xmϼo]67.spikj>ğ_N_m/;ʜʜʜʜʜʜʜʜʜʜʜʜϬe P P P P P P P P P P P P Qj  !13A"24Qaq #5Brs06Rb$PSt@C`u%Ecpv7TUDe?ؾc F2 ^C%TC4uL^- TC-h!uQ*JA")XCT# #6x.%%V-5 2֔I$fr ա6CMLzF2 ^C%T8q"aw=E&I@ KTD4C-h!P*JA"IXCT# #6x.e%VŦZҗWsrgW7h'ZrAFTCiO)(f*Z*`ӣ_Dl * -Vl5QzY14r\. ft&%Zc1'ܵη`mq&D0,TBԦ(lEd}Mtf5QBpL41N*}J MaJ鋨zܖ;+^.ur+0xj& p N$;u䞺Q+1x(!4F݉\ӂLZӾzM8a3=nO \M󅺋]N.fUV!N.jf@4)2Djan(ԫ\Ay =d@M yBǶ yA؈AD/`L|c D@˦SDn%m`$\fsr9tt D6qpd⋔sss<,rG"`Bqm1ʸɹY:#v0Y!DS- :N@N"0 :ݪg+fXEq.T=E]MfsUHIg۳Y$g50Zܟ.,Ye80Da'~pԧ[_HrYw0 x,?iS2&cXΉ& \/QIk$/qBJTF9sbZKhlaQ44V&JRfPC )Q\|Eg7 **[#dtT1DǩT JdMK> DẊK^ag%}1{@ 5JTF9sbXKi;laQX *ukŦJTFTՉu\s/ -+B~/LNP³IGt+i00Z4\ʷ8T&b Lp,Ե&0 E̫sALAIz^H'qAeaptZ vSmqB`Ε -/K :)6:ol J[ɧpC+R9D1G Xk!Kn'L1])̏ROdx.@S`eMC2 .5:2 81~lأA^D~R`J5-|BKPDB;4y4y47E=25o[nNCWHU & !(w@Z~vgS!+H :]7IZLjuvmmAAFh売ضv xCc.|vN7BѶM$(陎L ċl!:m+Ђ6"֩b8o-}+hK f WqxrYf Wrf)e4o2/ R'D bat]PnaH7%~L$뜖+XL?lY<8̊C!Ndk/O*i"CXu\˳e%NjYpGsҙvGmsYN&1=e\qm.HQ0.unjx%exi ar#eբqbBmf,WR7SrxG,oʁXB4B;(.P^Z'' u#h VULCŒ2z舍r D'.e@ C 3$Y~ 3/a"qTG!4nWeTp%i@'&˪ UKnjbTg뀏.&bgvw;&IvFU PO &I"RjEh|cC^SږBڋ4KC4S)D@T]p)D8FK6N̩MTS d&ڮTr&*pQ!8*ɲ'ä )ֲN1(re֩SXw5A1>MP LRECUF1R7I  YJpBoͲ( |0ivIֱXr} 7=Lhb&F8He`4D Jօ[ ,Y0.ʄ;G^ѹEL&'Z+O&Hy+ˬA;PT.h3SFrs"SpH]leQ!2$/ + ER6u˝20RA ʩ&{iỶG(P(b~fEQJ `١̖bA3whJ`n +)M@ rKLg2 > 5؉d*؉($` HJStN()P8F "Y@TI%`D֐T! c}f^>reNPK͑n^-u)iPjቊƪi %m0J,)+/1LsUB&HrVS;Um-9F_n5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0MXV3Ռ5c0M_xpAP2[dq%QEQEQEQsEQsEQC$fD>9lІ?ꍵ7~BZzk/Q₂rCZ<iʠ^ K9ʞ'kq!`ir,9T&4m0{-~W 3z41%rҰ$ɓ/w,MI)ZPI_/a7G!̝ETQ28@L9>f7 8s7RnDj 2֍mkgaaj) &L&L%H`~2B;rPr A0{ @ƇdiJvRX2LcLa?D"<(p [5ڼ( ꎙrZ 8ŹV9s^x8fb^ι\ @٣VʴV2$}YBѼQU"e P SD b0k۪p&S)g^ `OMCp(m|wGv=݇~Dw]߳wAL Wr g(4tOuFLGx҂kKt8rD71^N0;8⠈[$ţÉͷp\5+*ad]7rjqInUF:.߷ v(1) N?KCpaLySY؃ ]{)솽-*lĽ`TT0G#K4q0snI4wu; R~E1 jҶ"del>;Ϳg'6#$ʄua/KLd5w J$͉vgkc*l^ApK*&q)!~aey~~k-H KB f58 vq%f%]scy^c|tF?7]WDo#|tF?7]WDo#|tF?7]WDo#|tF?7]WDo#|tF?7]WDo#|tF?7]WDo#|tF?7]WDo#|~c)KbY7 ?+0 P1t5T (&1c DaW(&fRNڡĽz!rCLUOe84L|/6Mz\bIf & =zphwTC;21ݥ9쟚Ç ڛlbsb]qrhzbԠ~9ʑ d娅 I'h:ƶ?«t+T}ewGG|}dwG|fsU(d*R( =/ 1r@MM! |1l}X1jLT !U B)2`L%kM0*4d0Ar[ywT!C& Hal-&[Ib"HH;bV-D`# `L/؛zm/$[Q`4D5@rFص-p0p[8FQE7R57d+ RhsZA򮭜j[ThŠnS1)@~;tC XJXKU D Ye0mC`-BZlF0pA8e%3@BRq~1vpy{ $b``"G܀ӆ'w4ffD2'"RBnWc"o'!O HE) SDAp M%7$nji e#\K@#k1MXnbW:bO%wb aNCnSmB8˝Y\EeOR'iD3c*5G8 13*H.%w9yqƒ)J3 !1DO4R ,J JȔ'7Ӈ6&fmzMV)2P2vb䄨o4 61c|!nnmq#dgrfenW$%Uf%XW.@bL[R*gt Y$KӗP mGr+p[D]0嬤W:{Lty9̝ [v,&E :u~ِx"\ޤWHK/>ھh\S>Eœ`@R CW"vi[U.b2 lt [pnxTv xL6~he_`J 4=H0}};эyƎsE #sHB+-SQ eY(eabAU;8e7TX0KATb[BLctpf`Q1w#]Z,Ai(CС@1$N  Ys![6A-mLdHqR2v$,əƥ @p(!jjB foP*tCd |vAf uQ.3F`(_0]f uQ.3F`(_0]f uQ.3F`(_0]f uQ.3F`(_0]f uQ.3F`(_0]f uQ.3F`(_0]f uQ.3F`(_0]f uQ.3F`(_0]f uQ.3F`(_0]f u_I[G0Wh@<1 #LH#B*pFȘ D**$Ŗãe N,BtJx "(HMR&Ur8UFIqk>Sl֘zJa)k #fxc4PUER;Np厷{O[p>k&U?cc`e &% 僷YER4L`OU#`LBS*c$[ $&W"hTX؍> dJ{aADl! #%amdZCtBAD{q  ʜSӴ.(^D(0eL RlFT AIsb":xe,{)dL xԤ•BX,(\b8-T*!rMҥM+S "C˜S-{c(u)4 GFHnvƠ$PLj ;x:Mr7Ymr&A14 :MS CJbb0!ъR,t8KY+f*%%Ǣ0@슖|v-dVA޸{? PmaZB$BSYnDKe)j) DݮXCR9QDǰ#Lc  hRY!!㍔[%2V0tN A`&x-d^A0DT™S"&9"jGDN#f[,zĩ2+]u T0#tE\ɕ@<tUAeeH) &a\ )J#jPLki MDĦ/~\4HDD-֘ͤ4qsN;Ddĥ g <K8}1,LcIʈ*!3|RȦ18CitKkF&4|à%0"IpjjA1KhLQ-5o4]i{I͆'2h er2pn ,Pyx!IЪx)TjHUTp[9ȱD[bֱswcEV&g :%1p9-Q#cɦs#:;tRgeG &LC'UR^(a28 Q鎷7ƱQLodm$%x2^Ȓλ*#D y1$ BM"L! {TќiH<"d:$B B7,ȉg.HGXR%Ck dG\auKRb8Kr598CekG LIj5 (ͥjDT%O\4 Q#-@NyZ)))JKԖxk_,WD(jM 7Q&Nʡ6 `!8C $`]PŸڳHLqb.Qdn˳&U"Dn@OB] pa6U d2H&Ɍ\:vG(94CcS^ 3!X*1VD1mҦ3K̓zT8!R2@e8S/8`GDg&,X-6P#$->lZfS%)SS#&92kPDD<ٳB pLGCͅV/[Qn< X+FJH{+$}AT1TBiZ^VK:Y]q " A F0@ƒ F A^; Ei7JR1AzZ}9pH0 .w8|} S@e߻Tʹ˅Pڥ^ȊT),xqWW"eV8(ZlBvZئ Zc5G .U)VЛ$ RLatP0ٓU9C̩ UB`8 3;TlG@:i:aSbCptAMcYES"`"0f 9(!q*EN@ZvrSx:*T aɊ!FPRD2ha11³CMd=ch1P`:- hcit)(eh *t6z 7g) 0tX5"&&<`EQ1J;[4 K: _ MU(줩0&nګzvpcd1b`D0eDЇ{jUJ[B g2dp U_d R<s@ɤze-*pVBݰL5T\ [g ^J^Ppd$.ԟv# NSjzv釩< 0Ἑ͡ ؘ7FܥTaÆ m "T$"tyVICpJp%"Q=A**)Shda& 9!vCYbFaؖ1ijXr LRV^Bx1De92VMY2mS\A^8r &"vpOJNaTPr!u@?թ|??WҒ"MbrBN^ 9@BCSEr[SLl KbJ9z8.ޖ?h^S65TPm"Dq!X`jm\d % -4`\3d&Cl/|5i"bID\x8jcCZ7 !2T-BgT(qAhq"Q a/Aۦq0c6({^1S=jd +eWR0{F0@#EizZ_bn{{#dc=g1F3{{#dc=g1F3{{#dc=g1F3{{#dc=g1F3{{#dc=g1F3{{#dc=g1F3{{#dc=g1F3{{#dc=g1F3{{#dc=g1F3{{#lW%0~A,dFjX-L L$Lhg@?h\|/S$'ǭxBӉ{b,nP,+˹jo?%(*K|W)0tXg7~U2 jشfu=rDECD?*Fl K *Ȉ=Dlղci00ԇZ xaY! R!tK8v.~ج"98AZB&j:*D]Uй GeJ A?|3"@Cb-Xג(&Pmm2,ly1]pΕႷ5;I65@9qm!)ddpfaDZ[:3&lEQ8NcX\T\f[:mR5FuS9Aw!tv5Lux?(X™' !*aDE.r@bVT%})zEXv2aK">_T$&lԔU"8@) x*CdPa` Խi.PݷDö?E8,a۔ g0byrR"7NjAMaOXMbK6+E[KQŵ38fI[PZy\̬}Kɶ0pBHI\$Gm$rc@m/˝lTK"8Ƀ, Y|*tWÝB^x?6LFݡ)1+0XԈlCSUY1!욃A fr6 {j DLsp1B% 9MkFѹ&nK\%N Kk1.nIkFф25do`LL1.nIkFѸ(` C@޷1&nIkFTAܗZ7$֍5rMh74"#3eSFѹ&nIF tģ{;Q&ܗZ7$֍5r]h[^FWcr]hܓZ7$֍5 CE2Y TG WhܓZ7$֍5r]h*p^$ׄF7%֍5rMhܗZ0Fl(!&.J*(U2䵊 1{$צ:L}`o$Rx iPCvDRa4B !) 7AQrnK=Cs @@ *C+Kx_;5ycDz'A9-u7I,/14S+J02xN[ vJ0+۷ ys$H,1YN}P4ë^X i#Y>ڃBkx_/\XHDܘ\TPMg$.-9kwA7@|&Q'%te󓱖`6ta5q֥,~aq7',f͎z*qe ݸΑ@GRC H;][ʙx3u9cgGy RQ &9&)䦘TQf]32G`Jh\a-u銲gJJ"V67%i)hGt Q\ ~ͭDG3}F:{dNmW~hbkt"IhFJR%C\|A0>0/R-rW XlN\ K%ڪb.@ #88_XGŅ#6NJRw!^@KXlQQq.ԒeCČ'ޘ7RR'r!<a? /L3IVBk)K T/H\. /2$QA1x?JGR4|(W ٮ P8†ǖ՛GCsE[|)yo Խ 6&% jkIfXo):`䎨ҳlJXaS8IS崨%ycȗ"7DlCMJa&ڳg&3exZ殅uiD[D!LXÄ OraqN|F^KŇ~XF}O'ߍ霅e@ lZrҞXBY 3$2m?-Fԣ&!STo#K%bM9HMh ~v_OyGr/P6i& 8)NC2Xjf߮ ':i'°J{4 -T,{Vb'+lf+Mf]J~RJ|Gz0+sXwʝTCAC ^[AxS8T(!)ӢaNaj.TkLK% H0/uÁr.*HZ/+7R:Lk?S;Gf󏟒i.89lfD2἞otfp҂c(a/| u5̶+‰g.Kx{%zgrx`L_42i9 ~|vЬX5E!hM]{oyqCȤȉCXO  J ur+rF+/6Bz5tĊ.dϛliUaݞL+|ya.#mhFK ^{rsze(!;gtZbD0P88~ʷ+e22Qlb^JB '^2#j%1_K*$mA\P$ r爹T|WwdjŐ?ٺ`D( _LB O%ȭ0{bSU]/| F^KŇSwx?{/A-dC: w:kHvi5h\M,4>7c!^@a? /;&SG`OH^StSq=(bI}ݒ?u?VO'/*|`{:$b{O6.ȅO %\bJU6BGX`%*Ԃ!xˋ0 .KO]#Î}>O>8W0t`x[Le@"<&hix8鏫9cÎ}>Z\k<4r!Up1\>8鏫9cÎ}>w0~@SOrp|㵨$0 Jp:0o$8cy >8鏫9cÎ}>O7 JE0Rю:*:R@Fd4O>8鏫9cÎ}>"?8\ .Xۨ'0LqH^KPT8p Q[RܐCHO>8鏫9cis W8'Ll $cP r͐B԰ȲjL<:cÎ}>O>8鏫9`Zh(c+hK'ȔxJ?s Շ}1a>L}Xqϧ[ـxVrZe+mU0/'*ADrE\xQrQ]#Î}>O>8W0t`zPHȁhDxL? IxL , ֿ,K@Ga$ѽ ѽ 3C+Cz7z7©GBhDކhކhspDx7z7z+& I70 #z7z7b& hކhކFj5ѽ ѽ aTģ!{croCF4oCF4ZY4a2F4oCF4oCEEA)6# [.>X+`^Le) "\lPg ^ȎdК&&EB!xhU0`ʜ+ \ ?4I21v6L%S \SlcepPlF/aO[Ō/`쒗gRͫJ|fd싆PJky^P@3̧S3RC&NpCi*\ EҨVɸ0o8q)fWR(zb-tTtLu;f̛M ܶ JjYS8@ bMMx߀^_uUCJP#Q鿗5W3Yj2N[uW ,gfx`W5IdPSPmA}>(/I'ORU[6rHPQ2;R@Ma"#I4^!>kx_B%)vKxtȞ70xCA-C dp` &i1+{ӁW3&o$JdqUʡ؆*t`Ȟ/ rI>EsqtrQA羯'Ix_Bd4 *&}H?2WtyNȁ Ġ=#٭O {$?B)j-cɤ#7ބhޏzz>#@lk>A=! 8 Â?9LCc7B#}G ! @(58G~TdA1J\@dy)7B#}G6Pc -wDdP1ɕ3CK&m! oGބxޏz7D(ݹFvh`0  h@cz>#}GЏ0R[Pr(;/aa<0*tQAfOËa7BfMP$fMd>m!"mX̟V3'Ռb̟V3'Ռc2mX6fOdS&!T<d>fM~($fOd>m!i:_0onLc:*RZ1 x!rp8@C@' %^s3#5 t -Ҕ 8kutD]A D'.wNov;D,0@T;|P^ϧ V,PܫylҖRXhL[/ Y,@ NzNg7PHYDLAw~Hr4xKާeTG'Muia0La(0Iu. |CvB A r U4u+( ) @JIBXY5eʅἷy_oufG%EKiC ;e:JAtɳ6D`yR֗Xwr!0e *fO.Mq^[Ō-to{X+]|e/Ou+u+rRj)~TzKՊezIi7S8lj֜aSkqE[4*YQe<yTȃn0.G)EX- ^CQz2j2:AOzonm ZqB~^OxW\5*= Ht]t@Wh 6o}OKxtl -8[vq'܁+`{5;{awulIѭ.FVJ#O$0Ye]k˷n)P~ `{vKW@rjӇ!|!*ò'¡LGf7f} ~ Um[h|Wh|WBJ5@Ӄ a@Odb<+ӏڃDaCPMݔi١\ Jn$$~,%sfŋ8@#A0XbLUM7AB2G5!@h)bH' RP(9id1:?'q'!(R!I5rU9\E\vhPkPtV./]fdH,⼗e&"Fv *6inK.O3ړMUbу ]ɚVaxw$bա4gre:?1pKBF.Zٝu(0'r3IRL\Vk/PQcsno#c^8m>k.v ȓ*.rY,wVeR), f$\5v0յ拣<;Fg6LP0 8 aL:1pljɌA#a1`(PD(d($o$EtrR*d4S nP{Pk]t=Aleg}]pŒ[H K)^#]6qe6\NEy>0 łx_@ @'x0 A5TR]hΗ:_Wr%0_S&1j!H w50(YR+ZMJ³4e]S ͮjF(*BY3-),vvn OP*f3E2bwD䉣5)cIj]'n{&)8fN0bN͢$:[uR)4 %]mi[4HdM5G ܧ-x1DB,MUMQ=>[ ΑHJ4?S`uS5`ٞ˦r7+V~w*Yr.{E"v(T,#M )4Q <M"22%Ih-qR5 9G'2e0D(G p4vI[r$(!h-RA E!6l4d(bPKq4͊F,> J=Yc"mқP U2r\Ʀ7@~KagˆB>JR*Y;63 q]6Ţ"Ð<"iaCAv1{Qz)feogFfYQz)feogFfYQz)feogFfYQz)feogFfYQz)feogFfYQz)feogFfYP k&F)8l S\jU8 SQ9.}OSQ9.}OSQ9.}OSQ9.}OSQ9.}OSQ9.}OSQ9.}OSQ9.}OSQ9.}OSQ9.}OSQ9.}OSQ9.}O0f s/!1AQa q0P@`p?!#av"-3` O(Aślb"pN =r\7lF@F"w,f ĆXL‰3ZC:H³cUQЊR\yf[e7 '{09hQLK Bqd6OhvH%pN>˻5"k_S ]tPTBfLPլ2K/*Mp Bہ )R`'K RxFr§R@Iğ(?ymϚmZgbE2 4p"<y28L`w2YS>F@D5ZkNS5q^jքԵr.El )0Pҝc@UrҀ8FDp "o< G ŏ,N~*-( ?WyD=x;]2y~bfOd*VaCqpݚ%I*y(4mܗs\=n()"=MYX 1G9) 2*B1H`%4!4ںOLDvJE`"`Fd"N{ s TޕȟtܻxT[\=9 )(萩5%A11 .JֻXńp?Uڿ~jVFjVlVNjVVVS~)ܿ~ܿnU~ٿ__ߊߊ__woO6'⍋[KF[N+bVFfQ~(ٿmߊ6oߪۿTߊߊߊT<sFф8ǘϗPk+/TEOܕޕߔyGe]]OM_)?{M5W*jOOh֏kiiƻhh++)_rtX[c;/gv"BXV%P@ҟʉ74dNԇ!Ŝs.ihdCep5#Ckl27!1 ˜f(&-@QxĶfYsb?2&M7&`x yj`M l]zt[e4NH+jC"3/5#g  CMA58Wj!Rf]j9YMJ횅`0UQMF@ѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮѮǣ{H]1sĊEт}?b'L>붜*ǯ+҉!`<dd̗xAʡ%?XHk&GlM:t[N#˄@,a*"`'*иYe9`~`AA)=f\JXK9B*2?X3Ǯ$@ ԩXG 7RU`bs,>@T62LSWJvqaP~8ZH48reKPn䷕_#ތnE]?U~,uмTxQE }oi#+v pBS[rFBbcL7?@˝UE¬#tA )*UsRǁ2fNVǭgv\n͇].% ` 6?;tLhkM[Dp★aqʃtzU6jߏzʙ84< À1`y=U:oF% gO D}}}}}}}}}}}}}}ϥ1D3ԍzg^ U@4>Y\<F8G+-Wr)^0HIN%hnu3p!-ъjn^Mϒ YC[ 0|))"q2BRE/ZpAdQf.5| J$hNKӀ&)6fϥLDP_^mCA**U#C)ΊvΓm@ D+t =(r]+?) 9t\O\~@r.0#҆ʲE+a=q_cS8 5dR|c`\`ҹz`J p\OX%g uF9Nr pPeN퓳.(yQK %k) Va9+1ȩ9°$SxK6# [ NoEaLFHk*KȾt(Rc:38լaj1Ф?C%t2Z_U ].u亅%EZ:b.oJ9v8JɤLHE*S3(›jtU511Z6+r)UW2y٭[W[ [)[[EDK]IDP/o:"R 5nP#i.Q`U RaPDAѼ#2{,9|00*ȴbYX՘ q$Es&,y*Im9mfE łň +Hc*BVet+n5WQ<B'#Yx͖Eֱ)18-H2Ka-AZH4јrެe\D>fi>C#DbϭX!1Zpu"{ `9J#Ҹ/z ytZ\X1 g/{QdP0EE0o`+%]6dy4@-ܙGJ@{*iZjH50"u E <w;N}Ӿtw;N}Ӿtw;N}Ӿtw;N}Ӿtw;N}Ӿtw;N}Ӿtw;N}Ӿtw;N}Ӿtw;N}Ӿtw;g$u5!3 dL1* cO:8]REb[FT8R!6:<#8HpfP7>ѮcPE E%N?dZ'"vYI2[,c"\J0e,I*c,X`ԭ+(Yi8 `Rz̲@ժMl%H&uRZϋ 9Љ>萹@KOPE5[7I r fRk̀E5q=-Rt)aKEhXi)q-Hƀ@DBLYԖQ\0,DM) bΰ9HSVeI}yM̡җiº`h.o KXBI9ұ$ӡFƭC+$ s|QX#Z2:1!B2pt"&43+hy /ZJX%-.Di$'0Xvm[YAE C-)sO*j@JbhH3Xr OZ&: 2AK̀%R<>Bգ3+4@ʄ[ѲRJ`VH>W|+<939b ^xLO3yI##RK9@q  /1$8G؆xgŚ156yF1 "*'h>3Ur<1s"D!r5 ?O<RAňF $GOWŌT\ A&8 su@?(Jn?]jLaM p3"еzf h"?| l,24+z[UG7>|Kw3W 2~%rh/I NNLU+إH&"~wU{x48QdzoץEث諛wHb/Oe(n|Wk  ư$49^ Mq}R<['@ʄփO EmZbl!-9'*SBjpu?η8!1F ~ 5m< ebXJq#[:l:&<]w%2uP,M!D0L[|0lz h͔2xY9ձ-nWC "b`Obg#ڴ8|ZY5|ɶIU%_eCTpu? UU\E9Β F t(=8cvj/^M,a21oiO2[ϏOVf y -<:l:ٴ?07X6$P9uU[|#̜fPeA 3qB B,i]{,Q̣ %H7v7ʸ+ju?9F9fHt%Ix #װP=^$ 5m 2#%؛ K}W]h8#p[V} N==tNSʱ^W`"֊Sη8#Vj rk{lw_oiya S i'2TDLBM&:l:tdCӏYjVǟpҺp[VQ|f!uRJ NK3d`y71qſ歧@I\<']HZuug=,žo>Mް*"' Xu8FLUvU$[7mo?7%c|8M`RH%yQyUc}S$+3N kuf&&&&&&`<2HI+r|<ڀ*fRͣAuQd%TQɣ!8p.Ox`4ϥxC;i!kT$qQ9>G-0LCX*v.|"ݮ%@:Q&HyAD[>_}cŸi]ǸhCh>?nzpInfrmi tx Wu~*qL845b{6qy?|wv<1Wh[7 }X\DG>2 yKlZ^ ThC>Tےi>مi(u?>;hH3tIZs/ȹ/Q-[2b@yy73CppdG歧k`oZ4DI"bL1;R Pd@쥳TFl.J JqIpkݵqDN E"'-7(qFlbyuv* bփ @0>!?ó+\ZU &+f9 J|lA9L+jzs/էQ ,k3,(>~ $4~Pb^r7?n:p3(>3Vτ먢@@= pYՁ~?[ ͈1)T! aNe  pvc ~Z^J6s}*cyN9dZg˂HSa޸ɵ%EVggk`TW%i}cς#KW+X \yS qapҺG V=pLjuQɄ 8K' EmZH(@s `%d9oHSqL23âQ|Jհ"2*|G'x k(XW)e20L K)Cq歧jҺGs?Cxto8Nٻ R֒"r+2RׇUj7I@R4fU$:NjROwbkӇC.9ơEcaD݅CG>8P `R'EmZA-uqu?O?n:pf+H[O>8 ?[L A3: WA#լUѮ%p8N!1C/ȷfY`2tSdx*u*,?+,%c@uĂm F;c vs~oW~]wM|rL^*Y^$Y5ΧD c?dqFW#;$E}" D:1)_&kDԱ9Kja_tu.rI^1yz*8 opmHc)/DK0<1Ⱥ.pd&] g%ęeT8Cʅį;h 3t*${ ND`dJ9A p0-^l()^\Htnxsfyύ`p`WnNXZH,ȓw߫W~) n3sxAAAAAAA * * * * <iPiPiPiJJJJN0TTTTx ҠҠҠҠӌTTTTx ҠҠҠG˝O5y9i k*#,WW{{{{{?RKdXH:KBTWvvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvUvU-gRr c W@5ʜ:u>t}[Gnu>t}[GĆH/[V7[.+g˂aF hֺԊTV\l@k :ܵJ3 YܩטCJXch',:EnkvxҶ|"O=/{ Zj@ry8ZY ZCms :ܵpR,Qhs4p%r؎`y݆&J.c<^" 1kDN$25r $ Cc' ,GIЭFq#E`)DLqt0;w5+vml^"kWl/YT|}Eвfqt /,MwNMtb,Y{~[ƕzKk6<a*Mu C4S6r׆ dyKD 8S $+N%P< ^$G äV{p)*肷6I%cpgy!Am ౰h?bQR,6ՇUZXzكQefJOFRX7OVsԩc%Iz7#N`L1I%ܛLU:3Cҏ6V>olp|6HQr8m{)fA<$(=9:!Ϟ|:EnH kxҶ|۝nZ[t߅l4\gR9 =I Ւp81]]]]]]C؃\ rh)pyWH'YA,$KD ,UyPM %@-(IayL37wAcVO2gwB$2k]+e5kavҕl$ >ki shX :ό)5j0рԽQ_gF(9QPދp4̨8FGS$*:|i0Qkm?ֿ(=t$uAY9.^DAFO]@-myw'Hf@>o0袯@֬pZI\iOnݻv۷nݻv۷nݻv۶7RN0QE45R8G-)=,>|ϟ>|ϟ>|Ϝz1X 6'`mmmm5۠6߂؝=Dm  @Y4@2H@ h GA   `!h 4@80p! 8 @|2HDH@) p 3IPHKBH GA4mI-(I`2KA2KZPm4 @" 8.7 P  p0, A 8 ` 8QH0D)0DF8G" P 4 N! 4@H M,@6f@LEԒaĒ8$$vkII IIHH@I4^I2I$I$I$I$$I$@XP9^  p$BCth&<+wlÎ@pH`@5$ܤI$I$I$I%mm @ @mmP H[m94AP@hI$I$I$Fmmm/1! A0QaP@`qpတ?%grqIrdY,K%dY,K%dY,K%dY,K%ܹf/bdp%gE}8eq98eq8..: ƺm,5ape,5lcjYɿ3&gQ-[PSgp7|Sv4oOdžXSj9;5pȋabu-yhmԚ"eyH+֘ -f}i(OЦN +ڿf/KK=EYI@[ Qu]ZSΛwJx_R8y~eu]^w])>L[u-jaf,Cc=`HqUTK,9J畫8Y-nC/\*ƀ 8jI9#wR^a ,6Z7WK4o+VUDL Jwc; rkBG.-P}6ܲj(BQEl[-el[-el[-el[-el[-el[-el[-el[-el[-e-~auqQJ?GfX'ɧi)]P||7%u -ߑ]S. 7p6>=Kz̨Xci晴X[_5qrgqk؎}}ɋjqv˿I?z<}IyFr'+r' ,Nş`sb5< oCMu-_ЁB?( y_Žɋ?69[{^$<,[ɗBn{`p}w\/f)~ TyZ|Ef˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\rLY8FDm<êyc ͎1BZGFqEGǽQ<ߪUr+U|=]3pߧYH?rFufRMZ|xȷ%(Wtc,_Wr(>؟GB* ^?mD[e*v2J7)`DN)T@iĤà);k}FpqbŬ3Q?M7/1ECSXssƠ S n Âˢ]F;wlwzɣk"_i)G_Io#}J'?wT_5 rʊExYGdeɸK-˷5pKLXCq\5de7}˾Hn]b%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?ㆿUUUUUUUUUUUUUUUUUTl_. yT8i%\0*m,Ƙn 0 2|>KKKKDLKKKK`ZZZZZ"bٴJiiihYiiiilZZZZ"`LQa]ZMcVm!#^O4D&6膮+_ Dioy=ea֔~` bD 7Ŷa`䇈S9AqSJ.qnj{m>}k,MylWPp#=)X.,㺈FԾ]ڱ{*@zM@rI58Aq, * NGiAb˔A#:.wQ| gt%_sy7UhH_\.^媮oU,jIVyHS j: :}4ͲuqD5P-q"튭 : <_o /'^ȉ)e2KsʈJe2LSOJFy@1'>ߟiϴ{=O~}>ߟiϴ{=B/({@^-ell[-[-el[-el[-el[-el[-[-el[-eEόߏw;\B]|]5;uNjw~#D|X˹FÏTS9~g3[++++++++++++++++++++++++++(?-1 !aA0QPq`@p?K%KKdY,K%dY,K%dY,K%dY,K%fYe2LlK%͖ '3Ǝ!8dxb2 n[ gla$8ojF[0j-ttt-e\jtss-[Զ\7-%:;xe0LS*S)LT+>:'DtNbZ[":'DStNlN :'De3Z:'D ӢtNL[yf?\GgOCõ@Oˆ?}t #T"BSKTt1$ռ5$8ZԀi9[f6Y8a9R eրrtWd$ȟqC{g,A&2ĦV()qBk@򀒒p ),K l<.iHUVu\hto([ F|NarPj8%Ȃc䡳 sBrޏj,vX aߏ+9ihQH;9| @ U+HEs qio/ )PXk@.Rc|VXRqhz6i bD?g\]RF"F?Ud}L"NUx%A-TVaJX^a%9m xi`= s-Ov7qP U+}|TyE.bQw)p.֢J*" AA" QU%DP ,'90<*ÎNl88v7l(G#Dž@mכ4Qs⚖,櫃E1yZs;:r?PbBCq~-|'\suǾJG>{[/D臵,:DoG>5._!o~|,$57K V ؿr8jTNG?tl 4lts9 ZN:'D\19V>X :\bcGlBpJy+dfx)ҝ-J'K(ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[qlZ3>Y ɿ ݎ8ߏ{{LO}&}سv~q67b;Lf&3&3v8~=m=2nv9~ov,ݎ8ߋ|LOMw]سv8~/Ao13m&}٧s&:`0L d1i p䋉t3Mq7c76>v9~0kdf{q zrkqf;̛e}x532kqf;̛\흳v (׆xSuNܝuN::TQŰRTS!FN:TdN:TbΈN:TEj1흳v[[Q(J%ZDQ(A"qLel[-el[-el[-el[-e0iRUL///////////////jRp1Td ryK#1غ2y?,4Ls轻yT9QYW.9jy[s>^bv gf }uFϰ'³ Ńɑ<_o>sţ8Ap-]Ucjyܯ#߸;;_ d;2W%ɽsbR06CⱙtpRF`e\u@Z+?Eъqфŗay&%{q%56IdhI+[wShkpRvoшǠ.jɫ|,>^\F@p-ATJ6%FģbQ(ؔlJ6%FģbQ(ؔlJ6%FģbQ(ؔlJ6%FģbQ(ؔlJ6%FģbQ(ؔlJ6%FģbQ(ؔlJ6%FģbQ(ؔlJ6%FģbQ(ؔlNWeN KCCRAEJԶ5U+ bE`bqٌ-sOMk8y.p GbP1@[ 7b3Sd,&XX{"L%t$2Y[Gn@& bS&d/]H4ۑF'N4S8gmNEXt-0QeᲑ VN?W$,K|Tƒ%ʹUXG)r4M:'M<~x}w)^зz(4}Nrr~,2u|:^R:^SLOi:K)zSKoH9yN+9N#"NZk:G5OG^OK[nu<:Q:^SyNyN[#K;Ӥ^՝(k^R(u^z?Nњuut|\t|FW="6; .qT =4?jԴ_TPrl“V2%Y+USldh@_ϐ5*o5je{M|bJ V>>`).gfu0٩Ҁڱn ,c(khzRG3L A[ɦ9DƉOZFUQHQPc?]@paA1(-LZ0=yR3ZcpIC!H}$>IC!H}$>IC!H}$>IC!H}$>IC!H}$>IC!H}$>IC;Cg'Zi2Yu Eqj64Xk舝¡m!ero"`,+WD!"@yCsGȉ4w J@-xʨi.\ ?ޱd\ZÊ.p~3 |㒈hץu_] Fή @+sv82|-jU),'u%PnBp) uNUwh*z6Bא+yQ5\6R$7ԾЫ.i/$d`Yi%TQBc:Eơ B7!``jЕMCn2hW*XWqF3L"]v1pS.4D:ߐ &Whi.B̂6.wÕ`A:[EeR<yk=cEqp;jplu|"SC%xw SyD rh5`ATV =`V\X'řA(*D hp`X`gAwPd"YVʂfkq )w?c(]k ]:]Bvh!vi[8qLATVh0pHNr<+E%e,Ҟ\W586eb¸ E3RI,b FXV S@V%eьJ:?+9EUa :sC=[) v9`C2K5T&*6Y c!^W³hhk R^׫4B>~jhba` FX/qU0(!BJdM,^,vdj @2qR9Eи{*Fk^)1jj)1&vE-VK8!0`Rc52*7.ƎH psXwѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѠ4q*>4v$h  ST,@iRe `hvu".o,HX . tsHmnԐH4\JKYc.ZZbSFnad wήQ6AH,J ٠-d3U",Sl2,`DGuDl-k2hG,kP *%xtOX5jVqRS-je2H4᪦ ER0H8XtJp)˜oD4F h t# P$+d2LJg,aENobj (0=HY ^[P+SH@YW Cj id5t6FZ+QQqSE.0$&/:\PP!gW @7F/h\H҄5H>! HQQ4 jm*iLT@V`8X Zj])ud]>R ,Yv-$Y8.hAGR˜nW)b ^Vp BP66 +6icP5sTAU )Άk<Qiˍޅ^V"S- O0'g[Uzq41ؒ (#rN"cS' /74o 0RhQ|y4XfUu,eZq8Yf*fʀL((Aq $#BUP%,,,GJUK%IPlhv4F&ؘ+oiKC7``E,2( xD- D/t xUA`o7@X xU1&(nbsщ@ J4P ְ<(2(Ж.Da-4Ha'oC 7bEJq!moŕE:8BL,)SQ)Uh5kgUpT 1K;5+%bgUjH(4MRRX[ .a4UdUf(p4|AoY^Xxq)<: gY Eyy hk1vq+-qK֐1Q%k #g% W2 -=I^Te BkZCt@\ ! vMC:ĮR$:( 0hDIEgyCvQwY:Gjwc|v,!yQJ0p`9%5mqaR& F߳1i%B-<`T 5h`P !(-YUi : R P0@i(qk^F  lsPgNRQwQ4 l)"k8k`e K2U**&;1FƚJ.?6lSu35rЇ#E9 ܢQN- i!*BYT"dnG2FфZqD Y %ro[p0PWh1e$(\f-W 5l鐑Z){ATeq8 E5N^"7(Xd&vhBV-.-9&DK%8?4Kh Rϧ\ ʵ %.pg1&dAWLb" Z9 g */%M=5-H,h:`!fFE )JkX\QJq$ iJ*u.bY[=4@A?̼-h9,@ X]S4GMXN(Ml`:Bڡ@QREFl [B+ɃdC< qЗa\x2k-up*-`aker: NolPAېyQppT Md2N!IaXL4.|7Iګ8=':l]$Jz2[bjE.l7qвVE>(EpIS`Âڳf`44k!M UȖ]?bэcPي(r DBFtk BiD $X|aHuj!@ 3T:hffNJAnP[i\8E&2:6*PrxR m4*4HPJ2 ]!^X `~Ckf$⪹UUUGNek1 @ `8P@kXY\`O>'>'> V? |F |;/ //'>'>'־ %Vf]\Cup C`ǔ^8Da'>g8 ZB QXXX T'=&BW)~}c}c}c'DzDi%}hqq>'>'>"$F7 ı :Ŭ~_$|O|O|O|J0 R|!BCQxG•%ޗ>>>).O0]'$|O|O|O|C8+sͩ YS2@ [PlAA)!\*0ȺpMy!(> ARf_x'L@^+PW *JpyX\O&0 wLր) L e7nQ @8<@XsSVs?ox_?pؠp{dr(:V6z+W~6é-@ QaUc+y6v:b^MdM$;{;F,1`dQSmwlf˽z9 7!SG vqa ˃UtXZgp$p`uq(0BK;WgF/td(foJtMG;}v];~g 8f#[YԆR*T+GgT>á'ojU7yBQh$v L"#ϳhz:":tFs Hp6mmd\6s QwSV|5 v1qyʎ95Ej㰯^8ѶX<#hͪdݨO@6؂eSf)3i1Ÿ5R2ʼchy1^NXLTttfZΏ#aҷg{]N߱nؽ =H Tmb:IvR5:ء MU\/ou%ҥ[zٸgM1AI!VEn h[L}S@fz%+)&)֬2ATiUE hP׎A;(#9y(Us<]O@6+i;/FebJx*H23,,Vd ė ulČP>$AE761DQVC7?@HvtD¾oHPvv%J.9 \`^U4R\]NV[!'I ,t0wr;=OwF~k ;sն~Zx=&épVmU܆  ?GJtM]N߼y'I0%*Gpb-;PPA&U`(Ѫ8h4")<RŋQC'bj! r 1%J,[̴c$3w&%ۑH.#o\ ,dA;JxaH nH&D&vkle,Y&&@Ed널 l S,Y>OqJAkVU+qo#FN,Y~ѾK 4QID51pP ( -NWn,[bYW8Ga #EuW+y'2* Vyog3}"4h"bSϙg3 o+wiV`Rv]&O(F|ϣ>gџ1`lOkd#ϙg3' Ǒ¶GN 3}>e򏘵 R"l:=Xyh@yog3} ?WH U@셬Sϙg3o1qjoOce.k}>F|Ϣ>fU/`n+N2{gџ3ϙgS@32;'$1<QCA6fB423Dch2Cpyu { 8?Bmj߁y re8$?b!p*H&ɲ95a3o{!·` QwKBX 7 5;(=qZsIeE^H3@ٷn )J_߇п~'=uMxwez׆.@{3`ԡi:$4[-ne-1, j{}2=w~q#*0=,ʲ A 3R 4P^;ڊh(N +R?IjP(T+=5D*DN:o[Xp=sdYąWBB\$wK-zu]Y¢ء7.l0/0aݞ 9)ST1ШT @N΃m03(oW~'=uMy'D|07a\ jpPvz$zҁDE:<;ιlbnnyG9N@+R ``} G$1:'_?:x5AT.%RBҎI],>?_.IԄ]86Sy? dޡQ5!ZmܧqhMۀXia )46  7qX&͞p'J|ߘ A`b2@6JHG8b@Cj仄&xʃ[n5).5"#Abkyma?K r H+ZTqe *psa 5R 1C4ν @d2Y XX.vE*LZ|Sג;@blֲ` ХAƍJsM4} @xP 2@EEЁEZ"R@ExYTmh8/:׆W]Ck͗l1PubAB?e jHP[^2-؇t7oyC{t\brZ@'ENXMߊWtwi~Ӣ`HP:/t_hPӵԧyN:/twJ8 X9b)~ӢENMXm zENPD+t_i~Ӣ[ϹJ3Gt7oyC{Ά*jU9qjZrj*kpAtyfU(rR H93Y0ܡSp?8 µntG((|+ JĂ*ѺeE5MsNtemYP֏W`HcW֫U*Phw(P,IQBAWnWPL*B4;:T-lڹ3ND +niV6yA] 'G-}կ FO;~77?ggW|"c]#s#w :~*)i-U*k5Xźi'1:0,< ycRQЬh[hZqN6<5Nͼ[DH5np:m (7ґ DJ!GgwV9P8ʂKx.иGډoH{-! @H~WUWQ- +46꥙dNJogUa1#g[R '77E#w`p N6IXf뻁E Vp^%j_ J]gAߺ!<8֞^(+($SYm-dr+lEUΕv⥀ ZF<Ƞ@U$~NVu=>$SsGDM; Xoa~AMWog ^}$zhd޳p5JKH' ^΃t@u MнX4 Y))AJX4 V8L~]RVtՌ//gBn08Y¨nH7`>Aɸ{O>:8 Aɯ!߂ܐI-cP/\1w) [wCxk5FA {;g+9ν:א[3/kLVA* P4P(H_u׾'^d\AqM2.QТ -XXl$b$|N:@ wYY GmzE(gR,4{u׾"f@Nmg,`\`[:K{u׾"7^ts$(P(ɘU0H@M8{u׾"aSO?CUI, -LCSRF:ߴ|N_U[Z%J v`-o$m &3ּ|"|Z0v)yN[rS򜷔弧-02)yN[rSAN[rS򜷔Ю[rS򜷔 SPg-9o)yN[`;yo)yN[rP ˵LrS򜷔弻Pp򜷔弧-4+s򜷔弧-9o)y@ !"$Vh8]Yʰ# M@"ؠR4 Lj+m/\E1CeWz+@+E Eakk2@>Su3%" BvD_[<ŖkhѣF4hѣF4hѣF4mмΛEՑJݲT,"%#exϟ>|ϟ>|ϟ>|q9WJdGntfy-2.11.0/docs/static/img/pwa-install-safari-ios-button.jpg000066400000000000000000003151131462047176100240630ustar00rootroot00000000000000JFIFHHExifII* nz(1 2iScreenshotHHGIMP 2.10.302023:06:25 09:38:42 2023:06:25 09:09:24Screenshot veJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222v" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ū7Wjoo$HzUzӵ2& 38=1Z?[.32zTb4bRV$w 1D"^+DaI/FRٕEPbQEQE*;mE,ހf Qk )l9~4v>f0cɱLucy9}9SH[VVLKxiO. !r3E tz=V6q sQkrHFPfEǥ8DjJW}M E]62 L-b?O6kT+rVO6cS!NyRZ$©#;#-t[jax)? -<-3+ h) -8- 1Np1]49}{WpL4jh?2a-pBsepDYʈCFN0+J+ȡXH%$ MkKE!Vlg5/~n?< ?֪{xr*@m.4_UU3<4G+7UQY]K)*C?_@4}W]Ea)*G?zII?:h_W9?A,?礟/ ?Oκ(U ?OΗ{/']U]*[/'KUκ(U!v:_Cm?uQE}Zր#Ɗ(>GWQE#`((((((((((((((((((wV+i0rNz>j6Wt?kZ%էiqԢIc%-f$^(HMRp؜P23e źJY ĐpO5XZY]'AMOh((((7_8m1D,/31p >1rg ۈpGonUE3IeG=ր,+3\DK0dʎ8I4 Xtxu5kw3ang;Bp8__+]#kN p:xtiUF(W:*z~$I,7/_ZZsq2$QX2GڇvWaۤinm^琖Y`T&4kyLC28@hڈC2Gi8u"^[HR&bAi2_,4&=U#[19r<;IǧM@$#j ؞~uj ( (..\3Q@0/g .HNkAod? 䎴ص+Ie>6 VWMKcHJ ?:sA& \\cERo*F|oJO1c!cwjDmdeI2Jf8`㑞JESԲ,p3QEUKb.>sun] `$\+Oy<Ѩ1HrU20#O֥K,&]端{0jcjcr7.lq@u3F)CFO=#AżҼ(@cGԇUAK)ӀyCKm-Ќ$@ Oī*9[Gu|oq@Ӥv!!2r-ϓimرDyʅ yZʫ _I#2+6K q'qVghBb8î8ւȤ3Z( w=!|o? c1Vi"#*A=hGh$?NqOW~^eGs#֗#ր3ZNr8T{}$}:U" e'N {{q-9T.Rsy[]=fUR@P2IhK FsMMgUR(NȠ)X(((*6iUcJQMo +@~˦c{PJi@ ڹdOm'=:},Jz@jV]3N.>`֦}.ʒ*Fn?¬GmMA$e,UVc` I+ * }QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE:eYr1OHԨ'$@nnI50 p\֤E,k$ld09P{M/MQ uZ7ZyE7qAE.&"=h=i o#An$ @Z7Z_Ώ)}:ppx-a2Pu4"\dzO  WS!$4?s aaAH@2p)*rĖRidd"9{8lmcF[җb>sOΏz/T!ӬaBS~i2w~5 b"i8tDPHF1tfIͅAG_lZ G&#b6z3Rbl 1RX*E[qA$1a?6-9?:?tCͻ~]jŪqqK1KYNAzc2YaXM95ObUo:Q;@ʝ@oJ#j⊬PáR0 0:▊ (:R7mr֑G,|#R}c? ?5oTI3< _k>inm+~)V^(Εc_CzTQMɽ`]eK 6ӌԴP[@ (4R phttp://ns.adobe.com/xap/1.0/ Screenshot ICC_PROFILElcms0mntrRGB XYZ  "acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBC     C  ScreenshotN  _Gnz1YFu7gcGg l>fvi1l3ߜ:;={m5} fx/Y:6\ïá?o}[:__O,@;οX֮ &Cǥ8{>|x|_S/u:]e'9=;77=* 0 鳶fÒl⮑5^M_j֯ly I$I)$HI%&&UB$I%$III$IQ)$I$$I$TJIRs}IJ%$J%$Y$TI16LTJMH$I*I$I$IRI$I)%II$II$hydcДIJ$ I$&%&I$RJI$I$RII*DJIaqRJII14$l>I*9>%$I%$I6}^*I%&I$RIJ$A$DIQ$M*II%*$PRI*M.J9>Lu}'%_4d~nVnejdԲJMH$I*I%$ITv}?OatZ]u˛.^^k5 BƓvëeʔOGRx,5>jYYxsѼװi;^M.II9>2ZېrLF^i$-?Q\ptq7 I$RJ$JI$Goy)a۬pͫ^>Yfm}]3>TNo~\˟+=>W w|FIEύTIasI$I%96#/4Iuq7y6[]yyevpydI%$I$I%$Jɷͅɷ)pҕ 7\:n|$n`a$^c¢IM)dRI$IRLI6IDRI*I$II$I(I&&%*M&I$I$THJ*I*9 EI%DLJMH$I*I%$T %$I$RII$RIJfqhI$I150J~ INgBRI$bRRjA$I)Q$I$I)$DI$JI$ĥDI$ШYTMLTI$RI$JTyyI$A I!$H$J $ I$&EH$ $Y*IBIQ;> / @T8bhqpn5YϜϳEONHgـO˧']0Iv|d s30:X>R5P}BZ9f>6>:`l|}F4l LЌ^P a4k.yRu`0:H ˳V$)9Y D:9Q99AӌD55\>9β XNsD7Ӧ>S=xeэ1>,a1&} A9IKc@7%qN`l>91Xv>+:a\- ϤKCN5cxE!r|}|_lz>B0y42bKH+9ɫQ)NsTuP!̠ B49َ6mtP81g7C@U7sed)443L̑E'45q>b>6'76sl9\QMǚ>>a<Βh>|>>d<ΈkhLyߏΔsl0F|gQv\V dl*. oF\%%L hcN{4c6|}|uCB:0Χq3 8 ߀sS ) ~jfgq̝GJ**<4m)*5Ch+(1&XՏ3lPGJ$ͬ )$eX6"Mdʙ_.L9 8<Τrs kn&ni$&nD9q: ,[/ |ف7Pc d,9Qog ,Δor[1L4sms84cD;AՌᷗFmqSO:O@Ĺ=K"=2 ̹xY'cؠ5S~ j\tz-c[2ngn\y*$=ftجb Y 'І&yv㟔-Mxϖ&›aGO9I4v<s_; L Ar#`}8/M@!:9̀3`zP{<Ȁ Ø4TjftcvÊ!f4fH֌e饛t󴘢ΗH4#j37⒳U>8ύ֍ɒaLN\ʘ0G7v4:yV[D~yԼ-`[eVx%$Ih]EEgcǙx$r < Pc=s㠃9ҊЃQ6E<΂x 3Fz (]nɎə_0ǩyiy>0,M=hI= DϚ.p΁6#P= II1&cdK5ϙY< :!ō58xgL󌹻>X{sSv2ŵf=xʃ_}oz i|ޱgOF|܄s6X]4.&F=f}^iyrEdguy1gէY04[\d V7 -c'Ծiپn&u赯VnݐAYA } @$ $$VPAQYQIAH B KR$) B) @) B) @(R[%VAQtb%TA$ Y)AJجj d<5۔ c=i^25;+\5rDw `SylA|YInhyX%?) bZ=B^5;œk^(m W,q o7Xe2E` g+$S@$K\]1"&`,uE~Wgی=勗&A5CYjr í/`ΐf) &I {j&܋!$t0xan)%rxӌagJk7EizR,ٵִl"U@,=OB"kTzEA TTLEKRُ -IYQ$y1T(,}:ޭgTBHbP~ u@ky*7l^#ߗs=۵O~JI!$zs?Q8 H$H$uɞp O_5q-׺=) _!a+} + /5t'OtYO$H1 L9p۷/>G'}8Gs>ޅV??Մ H9.GC;I.Qsy.]8-=/p띎we@$Ns%t`^-A?-3^ +m 9œ( ѾBo1 )$A ITA%$AHRX IDII$) AP HHR`R P) ,I YJ !` As$wP I%`R 2LLP(Ȧ +:,DdEP ) B) B(BJ)$9 067P@124#8!35`'pHH3{s"A.D$qhkD ?pFu `$|69<)Ю E*%ja6jGik1kQZ 'xfVmH4ZbjM}{ 5`FȈ<$*5P}#BqkG%>*Yѕ$_e<3k/2g_aqGK.$:\Ht1"cDL%g9El{x5׎^;xEW\;xuñ\;!pòW\;)pò\;1póVZ;5h壳Z;=hZ;Eh%X;M`5X;U`UX;]`uX;e`cVV;iXcՎV;qXcUV;}XCtC*P*BT: 5Gkn4` ommmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmHB[Zǭoַ[z=kպ l{X6H]5޹Z0dbb}y~ήJkH.Ho[MR9Z?c@>]4fD9$j&3\$b-Cn-y~έˊJV ,?FW22]Thޕo"\]W4 oF֒`laG#p;̽dY%cIXV=dY%cIXO}J<(Omklf=f3DL&a0I"ciF#zo745i,sHrI˺[Ug;Ƌ|? Ȏ6FDWJ*K$OvB%CEU^%q@P뮘1my& dI4MtAEcg7Zxg/s1⠌4҉'̳]׺WukiG`b =ؤ:qGx.b8cB| <0O)z#T@;92ǡo.EIM3T^|Z\4%ضFa,p!5lif5Lt(O̧j9<ΚY%yYxagaLt󮾹cKWZrIMWģ(*w Еy1BIUy[Nj֕]iRׇ{>3"%qF`VmfK,x4U4(YnXI-Bl(%dIvSk +dbU1y$D&-HL~-uk%20,͎8'"Z AZDC? گR ]RM,kHvRonk|n[㒪N+T%j mѷK'SvO݋rkW7X06Y-TmR`bg+G\+Ԓ5,wmj?Ϡa7ȵڸ%v8/m~e֕RAw:{@$09RLC`@} u2A$$%b1tZ3&nV/cі +g5AxӪd2~AH!1,!iit%H4_'5:T)NիQɘeI>VvmA.C#꬙dpe2j9Cj16@Y7SwXl׼%dVB!j,c3tvc2A]i%Y+FFl oGRhGRUR$A2[?|q1X<&I6Mcu\H婛QBubT2sUFXw*BDj]=VZUܱ+bG --C%9J1Y'ۮRhli[L!s DBe;$! Թ|:Ͱb)G|sVwiLڝ|ai }l_>_b*XA\}?sQܾnW6*7Ok.MYRI3LVk,CDnlhgSIdSdL0B|<1ԥ | ;CbTO!A[aQ3ZUL-(a{cd&dv\EkљXyVZqG[ďeprq5$Xl Y(qN:V`)Zb1 @DtB'%. fP\ 3)rC>RU8f_K0Hk;_zxH!NU-2 si-c3CM5$e DFQ5J[&LQ_=B23ҤJ7cRdY%,):p!co{hu#J|~ǙOYؒUY˂)z{9Zؤ6c$vj J,C*˔lt/ml閌w,LT-YcŎߝ_,TeVT9Gh.Y?|r1X<0%f.Q \Q_)ETuPm\Pɔ2"LΑ?_+BZ!Agy+%7ٰ9 s{Bzּ\jy u18OO¶O چzm-e_l:6#fsY`O p%YUvB$ _ UFXk7ᒚ/ G֛A%HcI$ MT*҈NBRjl1VdfFQ  T $,I1͘YfZ$%dfۛ4qĶqPtLL pӔW/BĮA]tMU&,x!FNP0J4A<ʤV F:eX>.#5)Bs2l\U/]j |~gUhlR>(B}?A,uGi01P37z^92MdxNQ"UL PA)][{fn&nTPϱWUK 3^X1Lo7O6D[{uƝZXG$vcgnVaQīHAeWtCmdQG u-{euTml"vBs O+(J SO˩EkHm2#aQڍK3m_l(:R!4|/rI% &d qf0k3FSAraͶ \]NYg𧨉wh3il'HL=U{6 Î"ѕ9VNO ~W5}Hitu:尃ʗ 6 %I_m, dq] vIՎNƲJ%utk]`rh!OL0dQtQk-sέxaapD_QğdLjzfZtG8y!j e-2w_5yĪL8 6RwScp8RKpv6a$dx^Bi:VDMIk,HQnېǬ]ףhޝ6c\=r)fmTMf,/1E o" 39~I' nTV++XܨK.IPbtmS]=^LY 5- 0M4EIOQLz[jp9UjnZǧ*t\Uha~`ە3nT`=@s [ឍ&ymʊĶMI;VYgrĒ/q9v#b9~#9~#9~9~9~9~9~9~9~9~9~9~9~9~9~#9~#9n#7x!noooooooooooooooƙ 2~_&HEg7 s!LLLLLLLLLLLLLLLLLLLLLLLLLLLLL,Fe rj4^^ /LrQοmߺm09+F; rgH0 V2G2__5S=K!+Τ՝ȋJSiHqjDhB%(,Qufsb" CGt-QlsnJCzy&wXnFO4j8?#A\"?ruX Slj9Luy@mO@Fo$'%/jBdT]^R$~#YŇY􊍷DvX!lR۵XU5] |=1:e+mU0zdb2omx[ yd.Ic{%zV)t҂E`yo ըXW<͊i|O>!?zwVp+2"`EɉR"K~\cUK6Y$pHdWJc,1mY(]ܚMzbKNM8n4XQ5wFF66i]@ .I_ F#9'חXVcqTի$hے9B (O/1i8?#πlS9,4~=h %馃@K4֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h֋h9YF#A8`#h#`6 `6 `6 `6 `6 `6 `6 `6 `6 `6 `6 `6 `6 `6 `6 LF >^pppppppp8888888~gM(x[>ؠ 3=DgԐJ3Iz;m>{Liɂܹ*Xߠꁕ {cM4O&f$z.!Ͷ|tvWl lё$1;yV&mkhNr=9럈JQIR}w5J HOEt~Rm_俧X<ٟBSRzmUQnn'րk߁yc=a rߺ.,1v?Pd8oTNoTNoTNoTNoTNoTNoTNoTNoTNoTNoTNoTN>e]R  !1QSA "02PTaq5@BRrs36C%`bc$EF? >ڞxS҇"JA˙DÒ2s2vPOD3$LHH6jyDvFNbYNXW.f& HL˩C=2꺁XTtii2E jB#2ۉK蘲DU 4nV]MAeICRV-G\hZ6jXmWTZ*lKLk)08 ճΧ{ݷtD2kmc$?OOoqhS!s;kxi mL<*I)Ak1%;,  a9yu5(}S/ órjPxIN!jOIK˩Ak/7^/7^/7^yV"]ŀS>;wvsI/%V:]}8jm(]E(bre9i'Q?Ũ%Ju,ζjC\d }&"!vl#3_&|9J3Fp#8Me3 vse IW^,-h"^SI=qi"ƺ-{Au_> ͤOLeSksi:yD(Ы銚0Q?|bpEnWTtjBַyFx漶W]P˗=p@: [jM 8뮚(֑˕ѳ6V5Ism|fGUldĺ@)_"Y_5|,_F60, k5>ɬ8>Md2k+c&|51Y>p}|dO`&|5>ɬ8>Kd2k'}7~뉩ML)tz6uFm9sy3iTfӛΨͧ7QNo:6uFlsy3eTf˛Ψ͗wQ.:6].:6]uFlwx8Fl;wx8Fl;#6͇wfû3apwx8Fl;#6͇wfû3]pwx8Fk#5wwf3]p{x8Fk=#5ogf3Yp{x8Fk=#5^oWf3Up{x8Fj#5^oGf3Qpx8Fj?#5ގooGB)xB)x TJUJ@>bi .c(9^ 5 2Au^h<èc:hӰÓN) GztSmbZiNMM'!A-۩ qJEi[|tӯVum"ӠC3N<Zz?YnL.WOW%nƻu:t}نRu'פzfphJo^76ShN5<9D:!~QM)V$V˯ Hɓ-uT5&LKܭСךSM2jo& Y(P+~ۢ&U|SEIT8٨J4$R)Vk=i>a ttC*6Gv,eep]4Rk/H%КAК{ -c _PvһIԎuҕ'X!4ܼ[|kC6T@RG\}5HG)nq&}=ۀ^,'Oe L5^ûvo^gNm/`'Oe!KټAJUZ#"x`ac2YjQ1Gޱ]}NJIVdo|j$i"JIm߿M;|:;9n"GaaO ^JRPMR2tFN:#'Dd茝2tFN:#'Dd茝2tFN:#'Dd茝2tAET|=F"8Nը9!8{YcΧ< /ew9iqOl1 -USD7BӓNMܯ@PP@䀷Y\ݞcO$)/R _K)/SP G~jY5f՚VjY5f՚VjY5f՚VjY5f՚VjY5f՚VhY7f՚VjY5g 9gw,圳YÂY5g,ܳrY9g,圳( IPFFTj{E`hg {-wzֻo8S+L=üg;UT2wil^ޞ-ˉ̟=RfLjo:>5zVH}7n{uiK&ڽAU"{7s>Skm:{CIW偗]Z:za^6jY6ROV︒L=W~f+*99lͩͭY$;FUzһʓBa^뎝Beqdt8leڏjx D>? v.eFtn{SU}ޔzudS5sdh2OCk@ȳzmguUd`YZeo5V F u;rZnj1MڵsUֱֶZg_WvZB)D㤷ydoC,>F:MB*-`KmWVܗt xvw|l<[łm4TݪW݈l?CݴVm61~{$[Eoζ6Cvg2[f;5>e_h|^ݲ mXk[I:G'+87>I:Z;]}Ңe Mexc|~oؼ2T!T/yRJ*TRJ*TRJ*TS-j  !12A"3Qa#q056BR 4@Pbu$Srst%7CD`&TcEpvFVe?{Oi_G17nXvëG`81G:kel&'o/HHTrSϜ nu8Cܹ%'QZkJͥ9stZ. 嫝n|еk*[O{>p* Wr*.ĉX+Rg'  d8|աW&TLa@Xhk-QDʆB" %(mI>xTJa=1/q%P> ](TF<-l/F¨^ȱ R<-b&~* ">CCCCH1I@#@(AT<^n*J`Gϕcig1X"^G6tvjCP};aGnTxneKMJI]ɜclNW%j\DyC.VoqB $pfz$!@zayXR9 ]m ݚ9E)j>GsEo sX*#\AdNsTGQk]<,ο;| BĠmy }՗LX37nPvC9`'.w煬X׈"cs.뗎u8$rŢ$AًJes9ICtݐn/˷:0lvDés.뗎u8 er%-V?g ϓ(JjZ)RLj6^N`$ɦk.^0,$n$r@5#sz*0z^4C/ TޡnGڏnGڀo3dk:-a /gQ.j#H4#H4#H4#H47cv7B7B7B7B7C7C7C77777777777777779l;#p;#ò9G6͇dsel͗9G6^{#/dsEh9G4^{#/dsEh91юhlD%%HF=sjAڷ?h=qj|AڷhČ{VF=q#8k|Hǵn>$c1}vJ:N奝D%\CC < =rZy=нI@&t~Rh@&t~Rh@&o|ϔ=yG>RhM߼I)4{|&Pe| 0B]Ob@)ʝ d>JkZ?DOAՖ܇ {RcTK-9}2O(F rU@-EUy4 lݲ̀W3Α) ZYef-+')JyệʢnE#a @&A8`ݝ5 AXK[9r^\UT@C_{S2] 탓3kv#Fnb&Ja L)4 PABT#mt;aB&q DŽkym nֱ7|Jrl'@lɓ6`hs5B}ţD&)V=pk/Ks/Ks/KyT1\"h\d`3%Pd`>5L Ds.b{5{t{fZ,1Ve]ZtT=FanP `Bnw6J8 FUHPMA\?)aLa9|zuBW8&ad0b  jWA37S: U]Sé58\ߚ~qlr ; ɤSM*b41F9:s &۱c{.W42 !A}ťETiTLU0D~q+: HB;b%?t5^ǺGGGGGGGGGGGG~@?j=+P +6r \f 5hۈ?яK%c1A} ~_F?/я c1ϗя >_F91χz1χz1z1z1z1z1·z1·z1·vG:s8dsvG8dsvFvFvFvFvFvFvFvF7QToz{ިF_Tk}Q5GGGF8nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnni4#H4#H4#H4#H4#H4#H4#H4#H4#H4#H4#H4#H4#H4#H4#H4#H4#H4?a4^t)CS@@:JIV8ڶڶڶڶڶڶڶڶ<#%L(@}p Z:zРDh𳉎Α &cM{7ɿtF7Q&=G#|(Doo;BE0)׎B❀B CCtf0LF  Q~HX?/? CC7-ZB"e1LBi*S2lo /?~_9Tda(B%LTF4,WpMBeBĿ~aweT Ee~pnD_ fl? |<=PG^7`C/>/m,!hC)@&˲nߪ^I|zդijX@(D|ayE QYHX?/73ӽy&IET=C!낱& 7ɍCHl/JI.7HPq3gC0a?9?\7&T%*=pA2WF = ^]HN.&z uq&нZViŒ Hreh  ZZQ"8F?l[%̘ aO YtԂ!w?kxhj1=-/I#OළdҪPy.^ܳ%0M~uVKN o+O8T< IԄ u1>%(Af4As7 Aat3RLRpI P%?:saO)nANZ]7{Y6'rWGˆOxś :%}S_Ly೅$n ާtqLA19R Ok6WiZzJ'Vyb@z;;+ .Og-Tro*qB Ȕ*SIbZ< l˹rHB_ Ne>e2ɜ3UDJUCA[Qbd^I&\!8oD2v8frF (!P,E_5DLW3ȍD()"FS@"rɚUUek$-Dƀ-M*xY1)Uz\3TuTܤ$.A\6B}4iU*xM|FSb?]?:#Vl$f$rZA(R%\x*w1 L+ roqW{)oSG W<@`2W]:*) 7.,N$FD8tci Jds_b:D8f%C|+&V8)S$QuߛWt˨0݌T4Ldyy`?!t6i͎DŽ'x5y*\"UCP]u[Q4R%o|Ţ.J(bGPŠVRU ƺ@m8dL*q,E60Ck_sǍ%kE砅@*=:BrST1rCǁK ;-+3hqHA#%Ҁ~`.J*Jn7@!;lL dX!TOyCJE0+&?1W}f,ɦ1تݡh<&}mFi3M&:!LElɅA#釿iOaٹQe*J#Q USJPaUȡCj2n)"|F$EuO-*w^*u>nXK8]"ïHCfȠ )n '˹*]I| Fl/.a&vhD>'RQ +%w!(3XX(5*rAt?Z e=Q@kA rĒL9J}G ߸etu 'O-b#tFr!jK.qrt:!sO 1_kܠ(4O1g8]xHnRN_7 b"Ze焭6-P/I[8k&&xpр*i|_&Z VL~ .j@VqcOwmIpT: A y'p*P%쇮^w9w0uAdj4-P҃NweSfeEF.Y]a d%+毿CG}P;9s)hH5RzTd)0qNЖB/ èd:E!5@H$pQ y0dN̽_\+s+vݩVe%Kf 911w=Yˆ auA&O$'983gaӯ }&Y\"aRz޸#h{4fUW`s(@ۊdbOj GñL)+?_'{RAuls#eQQ >fgfZm XCRG)K"ptA g[k9zAT8&H\{ k/?qT F@Ck讉TĢY窟G;2D=!YEʒTE̽J(#uyK('Fr C E>[1'pbdZ&z8ITSFje5G $@)JZ "~//PK A䷉:!G U!70?:,۔!?Bм v,čL2<>M #K@ >a 75fHGn!YLN+ Q<7Y)ěR`a(/+A`oOsRԕT(bUKJ@nE*S 6]6HG(@0Jw*ȝo9E nb :hjbMwmBgMpq$ kܫ޸eofvICc52Aub)/җ ŚjVYPD=Y6o;]hs^"4'rGY)q)M*t8(ĺbj 9F[p`2{H{DvNozd<= ˪⩩&_ڽsEH^[tL4dNF`"%mVLJT\,Bݥ|VZ.SGrWp\DZ[ D<5@ sixDkYc4LpoU5@e ٫?ܪpjc'S. YAH$8f5 w[b6yJ hGtdL2"C))ܬI3T0ÔK%v*p5W ܋Ħy8`8FI:DztƔR]}1g;̛cC,h+ $84ĦҀW˴n z<_H!{Nۊb!zqVL&m[Y1/FRc2 E'S{B,忑IR殛-OK0eZJ,kvR*rK.NWMrS.UfLnȎ0 e R-;Q| a^Z"Nϭki/vnP9tQY8i@ ]˦&=mr!2l3WfD);:Nn;XthdbG't"[m쑋q,J T@º[Ɓ@cRWKƤLm$hjE,RԹanT( 39DJԦ*ʒa D16q;Uls, JyW 5 >Ł-x(RyDCHbʕx`HL^$(FI80!T:i}5!" 0e$2BgdN[p5DL]⁳ ti` :f0cWJKsɒʎփ[KRiV71P;"䕺0]=']D.K>,n3"W6&Jo.K*|LG dU ^,Mu)}KP ~xymeA-gHCYŠLFt18^ k4ff"w$1/ק-z`3ئ2(5\T)LU3VCȟ/d"okRlv8l2=o&|nL,̰rF)}:cP Xk¿<"~]YAC=>QXpɖKr%$sol] &@ᘉkNsD&NEÙ|Ű@XwQ C_j'`fB#(B8Rɭdה1H(8**?.vxDcAshd3S#2 bQ`hZKA2IqpHB)@*=621arNBktzF2f,Pt"uT8LJA'G+|'olIPY)ܬχy1Y6DQtkZspFI.eSi0hcl%0T:c4ƺPQ8נ4LjP .š4uNg<` ZsN[y.ݵD0l"-o1eͫ"@PTCTJa35r ᘙtހޠӀĺIto3lB)&Q5PiKgYFY K)SSanN,{UzՂAȸ]pIa9 lN pY˥|ցKޑZ2<) (Qs!'94NmYŚإD xE׍k ϊb ys',.FzRt6?#7Sĩ]ޛ sFJo{()R ֗rV2BV;tݲ@A ҰP"uWWyU 51N e4,ctd %m%fXˈd6=G>]!ܽw\\̖t))K?w?At`NR,; @sN-rLA;F` 5\K6dd%"AI]a&:;RBtUJ5h=Pىl uNpn5:;Yh\N6LE?Φ &pT-@ /#@alRfː816b˟+䩚g#Η"e㚁@NM,("E(An"fQ-/tzpM}qjz SkHr-Ls b0X1JkxhhgaYQ8w.Q1\9B\V3+w&LtH!+YfzvcJBFH[KS[h`!T@ ?: n0VW{6'Ik"w/Ӆػ2MP:DàsmܼDKn5@0pػ4%eOoYۼ j4vKK|ceÔS*}DBưI11M۔@9Nr2CeFdpog] k&*9Z x[SR0 쵘#}CXItCד6c-s+XMz Bӌ$2zptCUA:RiXBj[9D~*% ~0̌ DY4gb$tjcL2žU! ͖nA16t@0Z F!TQ7l%ް{ʰu*nT&f&7:뇖vY."Cx4M);I2 x3 J<Ҿ EJiaD7ƒ%4dVMLp ̣C;1!j:Mn4Un¶>ȁčpWItJ xyi@TWu;dT}5kO1i-$vK@33y3f'[!n(P_5 mJ%" eit MIpU6 JP6X-U3LP b7kՊX$QП rCL0ʽOuw& ptr NQ/2el qA3GkZ٤jBx q.V&U4dGyRܠk?d( TY@jzC3gDJ{J n+ޘJrz9'ϒp>i}W(, ,>9ŚC ]¦PT|ua8+a0P0c0<  xmI&|q_TZ;5kߤW3f-rk]@7L:RܲL5*,U1icUtcEpѐ ͝ ƽ:DY4HH9@Lu-;ZedfI`W/ )%Hݶ"$((5q7|'H ZGvZ*  I~Q]6ٵNNDy `7'@BRq=z= &bslj8#l̽QidѳJBwx%:u43iVc_@Jri:Dw|$234j  n-g<v-! N$ΜhU[ɄfIJgQ0 <,ld$UIyG60)xjlQ/q(|KȺ@*^(0KHF1"t'05;`BhT^nAZ: HH &d'05;`BhzmJ[qH2=32Ne(St@G4(hR eE^?xc45&!h1k*@0znHBR)jQW.2*j#U#"A+(L Ny+fRfIQ(DOE5kNcLG!p-ƥ{’k.@ل_YR:L40Kq|F/N%ːocDb*Q^P#`Z(շL[Ɗ cn׽%%-/7YD˴$)D 6Ee#r  bPD 8-Hf$pm4jo +-Jht>kiYiA90|%ux2g9<T)CPteR9aj,tN 2d DcP`p_$i֔#0N"HWirE"F"bbGހP2uՊ[CE5R1^,;-w;dΒ&!Kwh{Z:pBc=9BbK&D]ʂ&@1RXx^X)fKr?:)e0yܺ01r)Jʨ ye\Od)K=( CKts邆rix1a(f#4(NWr({PB* ҽ+;FQ1%  {8$Oe>K2>JQh=fWk:V\ɺ"DH@#XX; =+uCyWsMFyxùo 菪,ag~gTOt8y"<&*ZkP^x=agt3dH,8pnQkT3/~&j%e&֥e\ 3|c"lJf7&YaH2P "8KۂqV e&6m 4K`5 W.1gQL(R)C 3F|){bhU(F-gu44+Pq]{v=<8H(5ŌK˶og`Xq17H1cJfj7n_e٦VNNPx u0kBK\bηXL7d/O6݀,9g 3fsTN/twAzWJFB{D%NH\k!LOM~f@ ycYUn9p.!,=U"!Ta =rݣ9gh swt(0\L۝"M"ڤCQ֣Qw:o춬<$ާ$aРFT b{[%+Qki H{Dկ^lbwXodɐ%1]̧W %>(Sݔ3ِP]]pxD}H /2(!t;Z)<~Bڬ(" D=`f`؈2]"k< :K5R]7khmB.MۨR3p[[]b6F ^p0jZY|m7Y-v҆PTYvV1Hh3dOo]2!Zc5zĂA(S>ۻ[6lcA&H M;ׇQ0׽6%|*vVW0VہzQ#a{ Zz7FNeNdD9@Jj9CK*\ [8zyCh|T&rLI\KӼ' n@/ft Bfډ 1=HgeVzWk~@׎ciH(Ch`B dllF8f&r1740ȞdIRo^k^Hi*A've SIeb˟&ZfJIu-,5=⚆0k YNdZK3k(YitUGZR_bdD bUD %D+`mq0Wz`-eTBvf\TuŀQX/ͦ63M-[TTP`4~hqfWIr:I6)Tź<): (\;Cpґa,z]Mp%2*G84؁)kMtԮb^Xms8n  kkOYES)ĺFtX0b"D1xN >ܵ;1 d!0J5GgIB2$fWzyb&C "3xJ6EڍWU+IssJUgq%Z#ߡƢ4ȢR\ļOh+ [[9Mĭwr)V^ٺof`#q&ַJcbbJ8] IK9>}&"AvD@!_\sN2sڰKzxvUùz"bqMl)QT _jf}o\X|FLX7'p3☓&ȤT.fKMaKma(3v0n:.nh `:p`i Qyd|VurNSi%+Ґ9"$LRuH)K-AfDK^D ☏!s2Xsk,$ef L>@N.E8P@Jje hSRB ,J͊pKk1ktP%o s*MJ޽<, Z2{DDF*:;se ۹E8I"r!59 `-[%v{v3A] *; C^BqNTLK}QeB7Hj[@OՉE yjMO?H/SZ!FNbEm QBrʮh1H$>2 bM[Lg\Us}0%D9V$JBHDI”ϚI0~N/ #m:DA28SPs#])5lber=S2)kg Y,&i@q?zK7GUo| N$gi`LHZD}/dwIpDB+ʔ-+d $)l<k Qi\( Ue:L,18V[5oSAd EȘHl뀴+6ľ;:9!~x$}e&0_9QŤK3`S͞ vIW TI{=5 5V@pKNb@ˤeRNm I)Ip=u bKHGb6Df\R%QL@7K 5(p-jaQq(z%~GX4Bb X_a-L$T&4@a̩lj;C@ :° s;hC%PbWP} eV#W5c]k(s$hbuSP2HB%6B0~st+t4Hʦ 0N93bfyA)h2 --zaVkЖl7NtmKP&(FA5X 'H`"&k+nq3ע _DtɊ@7E`-\8gwF|f[1o d"a϶$?QPEY9" &ĭ+%6|MfMl ^'ґ>4eT@vl3a.:1Ĥ BpL埒-  3;r<$nH,="r"Eȣ(h THg.؂!ꋦCT]IJPN3^/`o ){&cxC3`4͈" I*2 I*2r/ ĻzT$@è]0PT%D&|~ ]c%~kpEDj/rG i?dL6$MS+@ }q#0cd֨TB>K;,y6] j^+ YɣJA{DKZPc=tDJ |{aF`leNvQ\b8L*fTݝ'*7|'V6g̑];r`YEYPjEUMMthk* LaFŶ ^;cM7CK'Q΋pQ1W-@+_467Q^J T@2@ Law/#(^)-.R5ɀ%n*""εe/n`=κ$GtT6٥$D!5?kzW_1B#'M/r3=Q 9XKUZ iG"e,W,UPLGo9JD Yh)qfaO{|?ouir_ݿOkO4%Q߻/\5|)5 ܷJ0!WL;{ڛUb])exH7j+z8^UCD兖*ʤx6$RVen57 St(ʬ ЊieUSkwN,Dr /)fB["+)BRᬸ]$U'YXO/Hvԗdi ŰrļD8tTb,pN\, xsi+ e5Mڝ\K΅7]kXbLz<Ǯ&!"ZGe?A9Ԍ"s'DcIm6bG2UAcf٤f+7M oz+Q Xiv,M"c'KtNKOrfz٤z;k)pQ_q(Nw[1̊uh}jrJ,t哖VQ3JCL &-{֧RMn4 f9/g$WH WI⎃}.g2t͛lę!DB$W &x K/TsV@a0 ܵ}12kQ);-{FXrN>tYV,,Ȫ$RXF@-5p#!:;S7!o z&!`f'P) %׻AQeYrD)el&ѼCPVvtYB(!TXv+&ϙέnqYdf ]XdT:D%45.BhS"cŀT+d1n h!KJvѢYI*cT:@D@?R' m]@ž ]L!Ny yB[LS!A-XrW]f8d *ń)ᳳ4jd;:3Rdח.m{\ LQ=`lm]-*սAǾO?tw:;YKuD%: YU` SP}kg ((ot62EIJA 7U B&ݺ%)(u} " G T﹃vMǶ.$:3n>s`ݱ9v0n c7ls`ݱ9v0n c7ls`ݱ9v0n c7ls`ݱ9v0n c7ls`ݱ9v0n c7ls`ݱ9v0n c7ls`ݱ9v0n c7ls`{cߴpS/90.TL*ch%P!8`fb/f)LS `CTAgw:ABsӍ; d@X/4xcr}6MWZ7-1`10mX~)c}!FMV8-ӗ=FI, F@iǻ'$(孼pe U.8CI:r:ta&Q7zUodCȷ ?S'?!i  WMx\U@UQTـPqr VX>٧_wպ5$7WG4w8h"AɵWcwx ٶ,>^.%i dځy3_ 6BnPY%CN!싩'QuȠ`EP7W7yҪ R=DG%!ԙ7z V\HǺy˿=~]ЪU_pK7/S>۳'v-U:+޽L}C^8  F>Z&TR"Z9W 㙕|n9W 㙕|n9W 㙕|n9W 㙕|n9W 㙕|n9W 㙕|n9W 㙕|n9W 㙕|n9W 㙕|n9W 㙕|n9W 㙕|n9W 㙕|n4W.pb$&!:?'JjJg x a;)/+R_(WGPڏqI|_Bj=%~{K Q)/+R_(WGPڏqI|_Bj=%~{K Q)/+R_(WGPڏqI|_Bj=%~{K P_cdy3=h.!1AQaq 0@P`p?!naiT AQ0SccqW_8y跅 llaS);΅KōY7N-[t)AoCkGvReq ڣc| :Nt[]AfRN!}Pp=g2ML-׶# Fċ/H! Zŷlf]Gk~\UXpCvR\o9^kS_ G; pr0nkJ@? ?εa"2>> ?Ϥ3>>>>>>>>>>4wJ*TP%@+%J+¥J+¥J* *W@*T$ɣOC!O|>>OS|>?$J*TP J^+ JT ^*TJ JT^@]۰G//f>Gϙ_|?>Ϟs柹O>akVFJ*TR@*T^P& NT Rx@T+¥@*TRJRTJ^+¥JeRxTSσ)4+^ x"r,d[=}f  ;JVu`z 3A71YQW,j5ôWxTR@T J+qo$ C;z~VBSkz.n^luameh'`*w-xL S#Ľx =jZBQ㬷$?5'XpG.OLj¥JqnkQVI2|KVs qVuC[_D _x@*T RJ5_fTAڃmno ^,4QQ oꞬ2C0 ^ *"i@m=H@\Oh҈;K¡EJSn'$c%x jTRxxTRJ*(Q_WJ*T¥@*TRJR@*Txa^5*TRJ^ RJRJT<+¼TJ^5*T *+ JT ï?/DM,yoH 2!oh"TR@*TJ  J*WJ*T%J^TRJ RJWxTP%J*'eϼϰϼϲϲϲϼϰϼϼϴϾOϾϺOOOOOOOOOOOOOOCM>>>>>>>>>>>>>>>>>>>Sg=Oavg(죺Gr;ЎgRNv~ӳg;?iNv~ӳg;?iNv~ӳg;?iNv~ӳg;?iNv~ӳg;?iNv~ӳg;?iNv~ӳg;?iNv~ӳg;?iNv~ӳgDI$I$I$I$I$I$I$I$I'jSA}1 9yR3p8}>G,ᴕ?"p(_;WV#SџO|}>>Ie*(p_:W쟝=Dx&:Իg.~tf)ia2?"ao_5K :t5ч{_LLMiz3_9%ƜF+NErhՅѣ?~Dֵ%2J/.soշk X٦s翹‘~t_UL6l5+?2|_J&rľrִNe'e*+ׯ^z:eZu>B]1/Ӗ':8jI~ g?SO'|> D$ߜ̩D e3~RdHP{uKrqu<6*zw5;9(݂1zv# mf\[ܟ0, ƿ%= fDYt􌜐\Ԭ OS x@g}@Z8%:/eAEK2إ]QYpϳ83 (xr.Y0 z&I5w6<°쏅,SuzȺn:Bb#^]uKΨr]].0TF10bu{B<k5@`oʸ1E.1nEfVLLSnqlʔrquW HOcPĔ"ֶNWKh˹uJ+ !4,܄%%Ѵ.F%ÒbPuδ@eOBdFܳ\Ņp/`f;Xg1@W:fY#՜((+si\ć5Q~JVvrR;4@[+!Y}Wj&7fYTsz43j?RX-Cn!ʺj"gQSIG5(9qJ_p*8lp.(S*|.唹)Q\#Qh:N -ж2q1ܖ]e o,W5^-DPW Od61$z#Bڙ6Ǩwj#ӤuqK.E )QʿTmp[E3 hZ|G|<ݝ(cQ5PǙ;85a+P=ى ϥp i *ǂ5_=6g%P Xπ\-#errw BʐN6tkw%G h={OY}֖icY`OZ:/"&efIV-gmš{,z'Eϩx(]yw $f3QoV't Fr]^7pZBNTŦ§2= \\9{CoTD] 8:Z:(S&@j?j|:m[N4Zh8bw7àDA}`sVhą!4AK}קeV;C:5pYɸNE;GMl ވeЄ5YsJgFBOGT䦞3tJS)bmtf+>Bys[ ӭс f^4۬ 5\3_9bcMgDgvL!`1yԱY6Վ.U%>IEY'ph "yNt.&`g&&:%,GP&;ڙZlaɷVi(燜ܿ6u׀Aj3)='+H൫D\=>ੌ^JP|5:Dk*Gxx[rG&>DS6̨&29تݽXrM~ӬJP^Њ[,9D*Bb#˸^䏐zLUQvUJϬ6%l"Qb]Mم}j6(Vɪ&,t OO e]e BFU l"XכagZwZ0SZlf Ek.B[VPwV्>MM@rCdcG {XVXqxM!E  &aooBx텖wB*L UvN9UmР- a4,:baw,Spx]Mb", aJ=izx4 `F A&ʻmFDP [ <Sے;+dsg@{OT;@qݬY<:aQMY|8-0q4rJD xf&r p7х"6M9N*(Ɛ0pp.CBϞe; 1TRt}W,bg5NFу/q m^N+wrT@g7ހ3, Xe}: s9`YO +FzWE&]YZ)v! YT \ØT;Pl.S){M+Ay)"+fdPV z 0N=o#yywVSeƟ%\6K!dg^Gn Yg)Aw0"՛^ zrwk)9N⣅ K!b4ABŻ1dD"bLD >(.&3U"h`B y <%~hqO5UVV@P\u=@kaX͋"?iXюYc- י9:'K:^kF3() 0iC0g^Lw3o5:hr(e 8y[^N>e+hbY%g3cl ¢cX+p&*67!}%Y[K! Fh|GZ+;095ey,ǻ-۠º/XY"NN VDЎTнkt?0c.|PahT ׸GD iky&$D{VJ5!φT-Ngj 1/hјuB5:E)+w̥SSugHazJfVʽ6_؎1 j]2k2ӆ2*%ECG6Яepd sɲXPGW =%켓fmV+Vzgksfw/)Cn(aĪ-.WE1XIa׭*B1ҶT_3Rsx>YNG kT_q}jzaڬ+ha\teW̽H70 ݨ][e\ܨxk wCw SwÆ! $GEu*8|^U\8*@M֝<8AYuqf՛Q)}vgK/g3t=[df-fVlC}%q~ I.1Z1W;kБZ|\P }ug#JD(Fb5pBAWRNIWq)y Qp6Ot*Rf `qeV'5_.[UVYNygEt%nBlIt]7VdT`Xv`ıi /Y3Z bw%@X@g WV'yr@@2⌮[X x[(2XUP.SP]DiY%Un5L98CUG2F3 [ϴ0⃞M]G`XF CU+Dl4Z<˞e)j f;#2*~Bt)AyhEuq'C} 7)J%ρdBUoU RyKjf~FnvwV"^vʥmyԎ.\S V6a]b<}7&fYnMǶsi+-^xP^ qQ^2J,C5 ک5b$jT= .( ai&.o w[ͪjji&~]#r4qaAWV8?̢YhZ:fՁoB&#hGx (HI8&6BP-,PT qt(Q' 24i䈷?4w/0ߛa1Tl\N`"; 77VZ@ J7j X#L\Ġ-Ȳh%unBN/z6ؤĨEȨb#dQsΨ-^<|? 0SD;5URgDfII"y`al1;Yx]8 jƍDӜ#16卒VQUW x[bѥƄ&P!U5au69+:#3q H~P,ghYԢՔǁ+?E"eL o8k$DX7cJZdŌ,=4CJtÆҁr-HvC܈gވ&J5ŦeتΦ5 6eyO`ag |V`qؿ%-eoZ5lw:4YzK=Zg0 ֘pՓzbTwajlb=T>f'<g]҇ZҚ7@FO'1WX^OG;$nR#FKEpvLF=^l_ތ)uEy@ϲhȵ}Niφ:O zV(zӼ]!s# :$XޱTtH)Ԧ! ,"u5x/XqR7%W1u)}'gb1vV5tqV+5ޞ?u hIN?$H"E5;C0Y\$WR\^~0jSp` U}/Y z >P0̺h=bLDkdPpu*EGage˙UD*F WGt||8蟩SiefVcֹ2ރU1w;k0h-LUJ2 Ae3T='',݌䮵᭚0e]fP8-H3kBbut+bue~ o;$JVFC B-YhkOJmK@E1oh\=[4Xn"|;1]^2"-[x\/H0f-T`yTr٪dLct-FE)pli+'.}׭&1wbpGH" R5apN@:&ft/^aU}B42:S/. $[f*AEsRcyzV ABw3;Wc('Iw/\u*A.ڋ;Lʟ@kS{yp ča`t-` ^cTp{.0P4TTPԵuQʵ^!ZrY 沔͠]mp{:n9=2ď}$CeRm<.5"lqtUojg7).1ƀp_x^+L%.+ٿ(fR8,2V!FA.Ijz3rUufw3?Z)W0*|U0=(%I~=UȦvCUTij+y. %ĹJ\МrV;#ga18pcBU17.$KX ) -Ej+A sv9t-1.=h5yguNVf.6UXXMK.MjUx lռ-K^V%%ah}Or=P u`!BI&0NNa58]0hjY0 Rqu,BP Vǜ~D՜+?~PˮR6) cd)(ɞ1L9^Yg-U_6;#8l[Y+4g`q. ^r %W8-4kNmiGHtZk'ZOQrr0JV>Bc9jWΏS)"첗0նפk6(9/"/J^؅ӥ 8a}+'ZϷyWXZ~?L  EP͜SݘvP`gR'CҠ*Fpm(#k+̑VJ7~VZ#aЂJ#OS?|G>#OS?|G>#OS?|G>#OS?|G>#OS?|G>#OS?|g> OS>OP>G#Ox,WY^Y^ez+WY^ez+WY^ez+WY^ez+WY^ez+WY^ez+WYy^+  }`(<_Knv!؇b;>v| 'gNπ;>v| ;>v| 'gNهc 8 r%yڼ˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\ Je|?|>q &<_=PN ?%ϕ!xo` \r/|qWep));.\r˗.&:2]\Rh覸@Prp?5IFm)5<ۛnEt6бDUSqkhs khc] Y,]1њPfz޷(ñnfXxǥn1gY;2v R exA4:t#ѣ9{jB,e͊طLih:}Yr˗.\r˖.rWH?|7P\05dte.GWŧ_ŷ9Z~k%[*51KmRem .\h ]}ɹH5?O9f>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>. 7c?@+WI^%zJ+RWII唞YI唞Y^+yezO,I<'W+WI^%zJ+WI^óƄ%˗ `jVX ~-Jiw{A[P+Q*TTRJ*TI_´a%J*TRJ*Tl`TRJ*TR r7ָ;枏*} ;];SRJ+TҢGd^E?]YvL EV2\ 9M=C%.\r˗.\5`:ǐYZK:?̾:,`K.\~7 ģ*t\``OyN \p/_8 N|mrrSC9]x{T/+°X~SmHm$ApEt\ilxik_dOV>LU N!ڛMMK$7Kmt& zdI$&P$@Zod}Z@$`J֛m JK XPPd?/XmN@I;L $XX?]gY?{T (їDvLCi!HJ1$,2!Mcm@V x$ !ZB J  I LBH"@'I$ K Ioxlfl %HɁ l% ji aC`#$~}"e,K-ٷa !$I$I$I$I$I$I$I$I$@$I   $$H I @ IH  $$  @@$@I$A  H I A  H @$ HI A @$@AH   AH A$@ @ $ @ A @A$@$I I$H $$H I AH HAI$$@ H$AAIH H H$ @ @@ $  $II @ @ I A  $$I @$I IH$$ @$ @ ;PI. w &A$I$I$H$I I$I$I$@l.mmmmmly!@KI@(A6mmm6mmm@e6@MaI$$I$$I$~$ Bii9$@Z0TGĀ xm4cM4MPEQe@[R`bb@ !HA@?@qpF@ ƀ@Amml@4@`AA@ /!1aAQ q0P@`p?uoVm6tY{ٕqScp6鯝r us3*dt~V[q ufV7*pcR65ON-^W '&$:~$-.W&n 01&F1*o Ȗѵ&##BZiL-[n$ز}Pv6=݉[6.i9>+s9=0gV\֛Wēe+mp߰뼓i}__K{ { {{{?e~GFͭ[0)2m,xa H?l/e#_zj_FY0駋 ѫ'o 0` "ח.]<'d^QJ%I/2I'sϖw>ygsϚw>isϞw>Ysϖw>ysϞw>yrsϚw>isϚw>i;,|N;,|;<|;,|ϒw-w3w2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L4B6K~-A4i%y[KZ"icqWlz, :c]i[IO,npӥi.4k%Ë<Q 0,RHgtZ6I r'qۨxdոPyX0I&dU,, v9E,UCVh݉9<<&٭rc(VCҸ|}M=xdq:6/ @xiӺ4Xl_c?{YǕ|1U,%MfM=q~npxZĝye,T"J\4̫m uM3-ΗaRuIqQlmfrm6i;;Kq15dѥ䲛QĹ'[IRV瞃DH;0GZ^snm܎nO&x1YHȁLf*mu _{Xоu b#乧+͏ /X>qvDbٶɮDuJ:nHtkX`>U5vH8=Ǔ_GJDR'}r~_ӰxvrlȞ])s˰v};M( 1+O+Β7K`K]{j;>Άkw˰nv]-sn;NFiv]K;WJD_\s;?**********J_ CN RFFFFFFFFFFFFFFFFFFFFFFFQDe'SW AxC*)QJTR)JTRE*)QJTRE*)QJS%/Q)Q W 1,!B!B#!F$A" H!B*020eJAF VeqJ c?_}h)bk)Gx+(7aEE`)~!<1+ G)JR=QJR\ hJ5ĥ(tB `6 `6 `6 `6 `6 `6 `6 `6 `6 `6 `6 `6 `6 `6 `}JRE)JR5)JR)JR)JR)JR)JR)JR/ R)J^)|4)JR)JR)JRq:|R)JR)JR)|7P*/>(mעձA("Nf CuRm7Gv1YJnZ>jr[}Dgjh㬭?A+Fo“=TTq{ T6ڧ6))e$vHxTTTTTTT' LJQQQQQQQQQQQQ,"-6~qՑ[,[""d{ӋJlW*TTTTTTTTTTT:ʓPjy`P5k{% TRTI4{֢Q$XҌJ'U$Q.~s?&F֜ɥ눞b>ɮ=E)/*ਥE* JTRC@,-K^6'pUW\p7ڸr\^ TR@y0cF%-D|'MS0i)Yչ>hU^ 22k[z!߬IB6EՎ.RI,9UKT^.L*i0&< \+mqM9_$,$oD?F֗s=04MK_R+xr3gKۄV/2oU4lBI,$ZxJĕn<<<<<<<<<<<<@o ӫViiiE#o>></!1QAa 0q@P`p? pAuD}F2b'TC%V(XT&A 32Ѡצ!:t$U +$ڃ*HJ)mNxzqgl9P$@o[H_HP$VoUX&kMZwB{/`F -0C2DEDDa"-byHJ`Ja$nDaOYa9-؜dD^Y99^"Q;uW2;M鱹'f6|l4upH[q;Gmv. 7e޶[0ʑ.Y07x{`&ل%L#,OCԨ/, 322d̲j&g"ξ> JNm𩿳$̱4ͻŞArNJ=Ʉ;c|89- )fhv]a]s4nT~u0H*CE*Ckm_|+wJN1|6FCzF;cY m%rB$%g1)ė[l/m=2ȴ,(zCC懧E|;fi5$lndp$[Sswk deI6FK4in*GǿԞ X7f>/L%a^5F L#/9-2t'%'&ǿÖ$oHSc,.ã̟~FO?3?;?3/%~vl$`92`DĊNK^S,2ȗ<<<<'8'x'x'x'x'x'x'x'x'x'x'x'x'x'x'5J'x'OH@ Gpv@ #8#8#8#oo1&Ս n'J6 r*F/;ӭ4  rlAUlp3hY`BI8F6Ofi%I+cE$kO$M݆'*]貄,fJ}QR4:fB{}KԵ%PͱlMV^n>ig>pU\pTpUW^!*] # *ૂૂ B *ૂ * ~'diyzIKQ*9*m~<*drd%$|4i!yIR 7-ʇׇBMd!B!B!B!B!B!B!FL`^p|Wn$m,p]6ÇX7>?EѰEql m>Nr3wp/p?0:?Ca|?{Og=`\GN#/ z{/K~w~.gz4~w?$W~~p7n9pmNp ja|t`Mч> t <xy`.с7w80 TpN FdG"1!bNH:3v\l8aˇOÇЄP0}@`Npn `S ۀ 's`{LqGx 4a<  q  #?!Wh t8 :p'nEY ̝pz^l04 <1;i)P0O'ΰF {@a qyFo:XPhr87x< w0p&<0&#ysa灁9ɂJ` < 'x pqu΀Lч4`ݸk0 ypj9za03e3UQߌ9F?\bjͻ^-S"9%G1mIޓES%6ҎM/|e0N\quGk0JFU0 8~8pq5\ Icd([P6G(8F"6lb; ^\ s 82;rK0.n ۇECApȳ@<7WybAMs MLkI6sN 8S rkͱ mb4.|N n . is,򒂥fL&v#6SDR})C{+cJNS@a5_Fc@@m5F@iW+ƑӼS0,FSgHpaa߄ a9;Iヮ\<`N`w)4!p. urQ+^+AͮeA F,grHS E{NrCXK`< wp'93˔ϻ|="k7x>p U \R;qUͻ[P`< N5G3pXʹ-ЄCFjT:L6Oy's '`J鼹ѷ 1ɔӡZskJ3.7۹w󍑒$bGB"Bk+``yp<z pyLgb`ta^& syO /0K'x;\tvX78p0x k 7x0& A s0#{\`4b_ QXa>&# Y\aHL&@s8iPX897jǬp ѝ x4'/ у<&uy2;pOX pdv8$р2.xy@`FFxz0nуyàatx0&/#ASF γASn?99y/~럌?|?;??_N{;'{Ϳ~m/xw?4x~??x~ǿ߾~m/w~wxv~s?OFX;]~w?xv~ny[?ׁqi?chI!B!B!B!B!B!B!B!B!B!zgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgza+ RǗ  0f`EߢDآ?[E[ŪN'6/$Cj/Ŀa}'Q@**13"2p](Lcĸ$\;6}Xhk5$Y"xjJB R ( `TVkv 8~~؏\n65Z1[NG%_pvF﨟|> +#jz hlplDhSquHA4"44,T HAhpͣN2jt S3Wbpږ0 BkI 4dR2؜ -B NA2C< r8Q*hQEp_@SAPO9AcjSy'0x'ȗaD;?yDR HA-< <+ۍW)hJ alv$T်   h NTЏ r )cPU@'$OPVĉIgQ mٿa ,\: 6*Apb !xJJa!~u5X6}\aвXpH8/N?c[v/.Jl: BO EF uWg6|AT1~0#"aSl#e6$F޿(:%LA WTc2Y;Z@|1A ܎*t @XF(XqY'F KlSoY+dEpoCDhdEBZuv^^ 7 4"11,[ N܃VDàC5 FB[t@]"š-6 ꬳ!@B@N@o`# #YgL^1Hh R}7!5* DZj>!$v(~ˌ$@N3:+;*6)P1rfr %XIHQBx Dv+}>ذZe.sS_YI}K Ch RFr+u`߂@!YBE͂7ܭR|P6s4 Cb@m:pTU hPA!5l٠ KKct.@f_ 7;CHlI< !"vcp# m砼KZf6 7#р*. Ģd?SF*Xug>ӰUf m W432ÌJK}L.I]@4; EiA܏E`knL{2;G@6-, zmG&uM,bacOfv[4HYPVGu"P1 M Uz Ej½Qy\[{45oeYt2d8K5*}\) Xx7x2?>B2]&v4>&(_i"h:ɸrVXcSTp b㪁FXl|\TrDpTQ4 yc: 3|nB*SC_prPWbqf v_#2A\8)ifC"gL>EgXtܒ+CXn)KWDhRCl(V @ QRFKLz܅s9DuV%ln>trJx."rWGx>( '7#GqHIyLE4^U_D 'xAuV=j 7U4Ǒ4}@DQ q'>0|KHZ&ôk0DrrC@Co$(Q*CWUy\DFDCif@#Ȓ\ɜr&  OJcV7lV[rT t@]/QnNhP\@w n@a "Ѕ\ a pU ` xQi(# Pp[`m0t'46`@jS`5B)P?4DZ ${"1ڎUz @VF 3z=l@!ح,K,?ޤ<fd(6obu .S 2[R8R,HˤgЈmji0D9sb8i}8u;Hp/s90 0 4@JJyv``͔,: $B#ņWK*n7[2Ơtwh[ &EO`%4znjG.eHp%wİyEQUlS\@%6lN0*}g B}%IP6P3d׻ K1 \ݕHO||5p=I P)rMI ُ;!BfER)$ %{`Z 3ZL`>'J}+! uAX[p.[h4'C6HaԐLclX3|,k0Cβ{Ohun݌/D &0P\Hm%H/0Gozw"br#GH#8˧(J݈D[Mcn17g@q TQwMˌ}jg4r`t!qfd oI[N- $kh8[ɞn) +% !-Q+_ZAs8Uǿإ+2GEN(<^a }ÊKsk_s-N SC5i;ƤJl2b%J#VmB MpDYe)F iB M >HId E5m b@D@QP5bS#>D: Q&Cތ(X <œ%I,J!Fx46WBz`bbz|vP+ f^̜ L_/6H&WPYYyCψp.&7S -p l͸RPk=D LFP8 &^6o*I/ AobG at5U@zng+F2Ba:àN`rL\0Jg"}LTcUUDTZ4~<0K}R9tz+ zp(02CSF~ TȵR Sۆ1b]%hh66񔌆ZDFn#[j"U:lMFb4h5P\zf qtw]VW;H"}L`\Oakhp4w r,4:.i0ZƣL w ccoqQ\{eମc`/,In"mbT?8<4n=bpUa&RCxV*"ppEC-I*ʺ3!)18:tmȓٔ0xRdRnsOx߳-Q z}sz34ai`kTl*u^qsڡ Rod`4a*Y5IR?P/`t W{(;zq @vҊAzEaF4p6\ u ^}Q"5)*~ŐB͗OoQH)6He,Pl9Bc[}זּ8T!I8/'`A߂*<:F-Z$`VLW!#L] *? zpE (1Zf; V:&m_!,zp]*H j<A- L>jr>(%X2Q)L6CQV42'e7XT!AG"&Š(HJ1ݤi6š.#unLjZjDbƳr!NkDJB!Dڐ䁈" 8v&RI'";Šf< G]W#o1aһ"*/U;azuaDO;;tl齰'8m"C^r>U&EJ[Ru3aU5ɡ?k@BkAϓX 6-z @Fnmu?مKHb ZZ {2}*"C51ӎ~u5T$0`)5Cnon D)4m"2, ˚(vm&ǜjt+v_ @VF||=,M!cLC[!Bġ6*FHU F;AF# ؁$&kd}ՙ- 6'jGX(dD30 ./7! iZ JHo jԡ*lFNY)P"8YXéH;{kNNQ@IX#uaX+@H.K^)n:ʢ" omV FP?0mVP ֻrr;@Owo@$iF\š.@|9c#tN iT MFM- Vpܼ0DQW!~$4PN,byLEjn,Te%-ZU9X$09r9x @.9Zw0Le_aE#u-T;;q:`l& 8ȇ`I[R)cTSQ5(h(:'nLx.41 a,Ҳ1ƛ(W[څ6@x  h*0 O_4/p6cN@&i*c Y^l8@AS'U- {GԢDܔ$|2 I0xbX w ,Ji,C (S"TG #;2^Chb?5 լ40Ly!wQFQDtuZ:2 "W@ң4)עQoSۧk5\ƒY6t!O4X?&+Bj )2iKun]ؕy )E4.OtӲ_6X h\G+qH2OJf=VZנJK DtMR D<-vGJQq'4N߱3icr/mje* Ż[f{hҨT _%݉]lJ 1'Bw,I0}Pij2`ke f hgDDE5̭ jܕIpL ͵ #w l7){( 7Cp'VGK> kqs؂Z{1;Ik~:\+n2!TB`D~^qK$QN ?@̐JFɉ%KL#"u4:݇AGtZpKK-B=\-Z6xȴx)4ԒekDѭ$k!3e @Wo>qG` rn |S=^'?se  v?C  `~ObX(0M[0P!|DD NL E?i1/7]6a]/ z~7* 11kT%4އQ f?X:]0 o+B +-k|/%g%ѐlQsLsG@@0pn~Rt{ U+oD{%F44`䘐|e7(/]ň"J˓)",U@$vDa//z." v)k## pAN{J"*Vf94͕^΀GZ&i5'f\>FQCJ ̈́{]^8 A'D7Kx6V!C N3YBڣy I!.]2");1WJNȞ;3;ո TN:Иl^{R;]^Ymfa (U_aI PxIP~ UhPl rp*憤%&HBa/%€BܦK=- ؄%8pntO]܂ fDVD#F"it@ GP543|;>P?DwtHȡFjZXU[%\XNrh6E i%q\Q.Ai>2^.CpҙeBa\B!Pp j^ >w^X|ҳhP%UV'vRF#$Oxdj)]B-%TmۈhI6c KQkZ#蛓el SA-.7AAJ0ݻǫX` i7sF!U_)ڑ~ 5`N4 [QA17zӶdPT6U]jd)D#+FBs[B}!>R*,`` Sͱf۽ RvzA˴Ut2 )x3CYBsκpЁM"ټH̀D+Q\ʣQ:nft!iBڀrRsPԠ1_z;4Zr^VEv(l#gqw_&FUm\14UADD|{rad"((rJ, b{lB)/syEEiݳB ȑ]`.(<)\ _F s|:Syх6Ll(p&V\zmqNX47E':D(bt$PATU x1o P1 +a;IYCBK ʈzVa~/@APmQ=[JNB`>PQ5aA:; 0e`kk (kҚg8U?fh 檐!<v!`; \͆FJRd>exCAY.}Ҫ$:.Jl<_Ms:K&YקD%9mnWgP .rx]A4)5[Y x~ ҇=bAMUߛXPݎ+Sx^KoeF;.k)۠\ͤƍ ZE\B(VZL^Wo:+8I{eHLaH8?+ο~Эjy5T]%"q^sK#,;JcH:TqsjO9mimjB@f Rm+V EMC?}ŦZI< .`hʰڿ|J |SgxƯޅymG'R`DL:jq24T*,%qSH0XmαK8WT1톸\v!8u.P caGcx4_ѤGc&AYotװ^ۜ\Rw8uc!p&zނBg<Ft1"-he=f#F .Q!,hZǼfU_~(U@149͊ĉF-I Gw]ݞg=v{ݞg=v{ݞg=v{ݞg=v{ݞg=v{ݞg=v{ݞg=v{ݞg/+_ y(DRJ @ @ @ @ @ @RJ `AiD!>X8 `;s9~G?#s9~G?#s9~G?#s9~G?#s9~G?#s9~G?#s8G/V7e684ɳzL}f)n*ޫx yskZ◫◫◫◫◫◫◫◫◫◫◫◫◫/V^Yze՗斞%?-FI#Ra9>3'$Іgir o~r84)]SW^rW2q+9]^rrvy++VW9^ry++VW9Y^rey1#Hzn7XSq'pAw_ncW WX2̻@d*QD 7]3LODDg*-n ]'ڮRtrIuE=KK̨]9oT \sαG$:MRu=XӇ.NU\S7>0Ʃ EV(Mll/]\w}6vI_Iaɫ- T}\Bzl^%Ȓ#SLm&RI i}m}x(WL+wgzη<}O^crwf% P09@},^~x+9~$S{2Z5#2$/:8Bզ1v-jR22`bCDWe?_8 ] Jm >oT+cE1 uu ѴБJnRx|oHL8y£dN6  KVx@2;I`s]`ÂpZOr4m|>N]K ;;}8j(SxPH;ž۝ %yɹ1X$^#"N}f(Vxe2w]/xe ^F3vu.k4hXni$w$ ۞b5E,iLXrBQePcV>P'T "*n({Åd U7͌bhyd8+,l1J$G`0.eaEV)Ѽ14av#*$f{ٞBҰH+7@=g=v{3ݞg=v{ݞsݞBgGj}^p8?*>\wZzH,9]]37YCƑ L>,IIa\?Na 0 0 0 0 0 0 0 0 0 0 0 0 0?MׇL%&4ӇlN &@>^2&S9~z c՝=YcՑqȸb!|?C?`|g.0w8ɦKpNB˄YXϤcG3ĝgӉ:zzzzzzϧ>Oq>0\ >|fb|fb|fb|fb|fb|fb|fb|fddLק s7hϣ93g5~c UPquJ!ᔋJcn}8?s//68`sp0~2?|e/jяsT]Q^4G/q/^qe+\Ua,gL =p^-齼-D s<2&lG82sL)mkEkFa\ !,eנ'`O]bpx .*8'm+X98# '0:r)#SG9O8+x"`O3Mr<R/R˔<8O9N.SS/vj Ce80;NE.qpYDN.SSSSA;kDx~Z'hl3Cw"r05Prp&qE 4\uj\N2ʆ,D&=@$ΰo:@ߢWi{J{x5uIoAC\B\b84,2b̋.Zˑ $^I A[GxNry_8ӉϧgӉ1dI ,zU}k ę8~(?_LAN`<#>(>(>(>)>)2}E̱%K#$O-_)ut&Lq< ٚAuqF+(BW15p! *O8_X˜'? ԽJ_عful'/vu !wSHWOx،lM7&}=k>`ߋ~.%*e=58?|Gx-|O>'|O?\pG/8oc;3矝OOOƃS_ƾ5|k_ƾ5|j|j|u_ Nܤɻa|s;]z|O>'|O>'SMma0>L=<(5 Ã5>5>4O|_5!82е KlYJJ*4ңJ*4ңJ*4C wpQi_|1:܈J|<᳎gax4\)*QژH+XO?~߿~߿~0$; ,&Gx_ypۈ|O1'|O>'|O>'ã|:>ãMɻ@,82<ntfy-2.11.0/docs/static/img/pwa-install-safari-ios-menu.jpg000066400000000000000000003704741462047176100235270ustar00rootroot00000000000000JFIFHH*ExifII* nz(1 2iScreenshotHHGIMP 2.10.302023:06:25 09:37:55 2023:06:25 09:09:32Screenshot vJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222v" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?tV#M;O#eGh 3t]/mxb[k8tQ/0q hׅeWQ"_wwjmMf!>R9c ~uGS\idY쬠FF8SD-e (u@N((( !kDpDy XV;O=t{LL-F9;>+6qH[?5J__ |$I8\>.5 tǻ] wUmKI4y F{IXn 2$z[ jڕIs|]۰r>j|i+Yg6(v((OSTQ%# v{(G|NJd3Ç?O%Goxcb Vu_))yqtvE0ji Jտ妟|7W$̛@?t1=.?Zu\!H ?+0 C$i 1Qv>{<@P~ԣree末E{Q=4Oݼv>{crR9zA}?Mgj4x(P09<Z<ܸ1d@%f9 mLYBSdߵ_o˞e"B{{Sũ*M! }9*BdG RD  q* "Es30zT3@݃^>P%9T1J3m&ڗH+ԘBSڊP|Wޙi֪˨G)8dR0[Au> [BH+?-&v`Dލ\w*cq?5L"/-W/Uq}z..Qiu}޾CM71ÜW=kTc <;rp8WnIF{OtKk~-k[[֥5#ޤ_8AJ.ݙ1qyZtvޏ1k;Y:nuxMбp3eʴ\KM];;-/ߋ}N10}:xD:0Ra%A)6}SÌjDpF&(C7?k ;OL`ǵt*J6Pj6eWڶYM"e+\wgr>o޴i!Ud X/Ƥ>y\q*?U;nRWl[Zi%̈>R 叠xRmFY-"#Өڪ/lw #nEׄ9os̃SM;uh6U59!5* u;48ll!ɉ'z΅dfI;]yҽ,&Moޥ*F0Wb[h3ѼJ{k &nʶN>;y}?jѼ;oHҬ$1`}+=8M%8Rw'Rڇr4FKZ Rdm؃ֽWr3Up=YWtZ O R.]oV=)^']ڵkyK[|g ]-CUY|>֞n Lk|*8.Ty# 2ս" hi"WmlJ)f$bOQ@^ r>ꎗ`mn!Wb$|a:ğbOQ@??Z)rs֊||*p?ҬAҧ3`ܝvZI.5mwD@p*h/횋+bWUQ֩#i%F G FpqsZR{m7=??:G4s@sG4QG4s@e d83Q@P}sW|h@Wj?ho+g#+b~?@l":N'T2l q~}VG@y 0y*#H?(??(.788BA:e'UěHoS难!yQGRRG,s.W^R_??Z(}^i0 . AUyq|*B@$gzP!ބ?6}yM]:֓͋1Ҁ)gp~&r 8?]Y^J7uc-984Hb$RduP 4p3*0Xъ1@bPEO5"Ba WȨl^ dipQP1{wP[=V4@'ZXxdvd!d'~P|@C6󙜾A֚omByєpJ9\ gAm_1pI9l-!`ؐ'p@I8-.ȍȪsIE>R=YRʖ~5h&2d@ ,l ݍPlmYULJvUP3R Bݕ3mrBRF d0 TzMs d<)ZePΡA>޽E8+ȌYZ< wPZ2=jl [;vsidEt9V(dzEdzEG2 c)o ;sP)CؓM I'd⧃?JqY m"zUtvVlnog#f+z#RzPE`zPE`zPE`zPE`zPSeV$ddsȪ}t bxēGnyV-*}Eozd@7mp9}E$|hCCY7@GQ@m١/ Screenshot ICC_PROFILElcms0mntrRGB XYZ  "acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBC   C ScreenshotN  ѳo 7M|3|_iφ+79ϊKOޔy>U/Rۤ1A?4Mg:~!gT^2=~̞0B|P >].$ڣaVSϚpX{ZS?tܙ @H$A D  >>MWpC}#mZZI".arJ.H)[X[3V*+ə{Y^;%,/k//R֔5ChlElŔ[8qO3۫[- kvݳ .e\S72Kqn,g|u5i3`ndr#3u%-^*kPBV7lҥ+KtL[lVV^.U^M\},WNQOp-kqbŶl,Is92s3.SAk6\|-[q ]r3/k\JiKix^*9nUnnU\J&ʉ*r+8:W\Y^6_Q]>z %'"ƴZ5ueնZVc>ȘW.ff.[5^*5n椻eK^Jaiͥii*rfc676-$xs&`8L y7=[ ;nfy2ˑ5kn/WIIS?Cs.Yy.\ו6ZjVW>-JrpU+6i B+QU5.\էSɌ(g2LesO&\t>?R @0m벫Qil̖b$s{Y3v˥e% imY\umheV\eظ\*ӋKQeJRMUeʫy|u#WVҌ "fյS?A m㽫g>>Yq1YTq:meLYg;c9`:eq%jBQrԪخ++ NuNlDaJԥVN%ɸtTwrEezP;xuNtr m̓v[-ږmm%:5j\VWqHʒ %z+$T[qf(V1:ǰ\y=7vE="g p LNA jYbJ҈P$UL(/qNQIrdNa3+$WPY;CЇ ;f䐽2A%VI5$P $ԒUF) AYX)(( " uUƼ~?0/%}l)Z vZ3i'x4jbwI,-6X<>~/߽-Z)>~S_|a':/RN)GGW8zϝ~FsF96! ';7Ǯ7?/xx~W=7rnNIQl oORo z?ס~/¿zޜ9E~_:w(y~Δl_>K"%mC0>>|8iES'hwſdW׿d؀x[Y8q5G6zz]z~)=/Ei*-So_ksh úH|}Z8セ\S)W{SrP8_;;OVu;?'}QnIQ`៟]睗[3GY~Y,F._*^zcy9~6G=?F\G~d[gIA>j|V?u}laߗN|7{Es!6^>;Q+g\3A;y_Wz|cz^s_9/D~Z=?>4g<}>|9_}El0 %e{wW3O1Wz[p:O^ߵciҘc<_6W_Wz{:[I?j?}Zw qoq.OSѬǪ;y!o.-\w]ݝѼ5"@~bOҽSpn|^7bE~_MMO _A]Aeld )E*^{=k>d\?OnN18>Xtĺpo1ź׮zO,>^}jKGWs.H$H MWp˾J[^)#0N}מB8g\|C⢄yuOde ~[ +࿦>pp>ߜ)A`~x:׽_R~?[[ ۦHÛ<LMRpnEm,8փkx}X@$s~=y*dqb~A5O5R%,^Wxp1\JmM3==ؐx莰.D]*HZ Kay , JRtvjkIQp\+ZLPc-wV\.IU-nkפK²weeȹekX [[F1$a-Eh CX-\-צZuf=EU i>L- (1Cm&ȏFK4IEiC̱Uҧ"%dRt23vf3Q2g-rb*dī 2N5t+ d H4:ibgFƠ$qeljLMHQ/ѹd+^`)!ZiCLBONZ%* 3R%*fR mE4!RER &JRT*BLJUMRR%RRR JJQI%*[I d@!@!(yRUh%v2Ul J((@%*( d@Jm3nJVJVJV% -I) J"(-(U%V+*mR JZ@)l%DvDpAE -p -%2!a뙐cɗX{yHGaG0q x -%29b.dBoԠx-H{<8<(L}xMbIw>NqJ1$h4?;ħ=ǁE .@)5`cIn)ޯdE AY)RJ"US,Y2œ,Y2œ,Y2œ,Y2œ,Y2Ml$(-KvJ J%*Y  !(PPN}XAh In)pP2@[JeNcvjk$i=4) lsM $sGdaP} >f lI-AYa!"&_h epxAApIA%*a~[0acIn)CE&L8<*:`DQBdcIn)CE&L6x @OccIn)q5O04QFg5F l̀>vDs8<(L}|:cb9\y@|=ZhS+4tڦ@r4As[Je$Eç2ew6jCn3 Xb;37fO`6>ӝ1DQBdu`a&bqCKvL@"(2dր:P$h˔!"&_hCKvL@阞"(2eIMosDd0H3BY0t7  =Fyp [Je9Ԙa3=A瓯zCE&L>n!i<0lv4Qv\ٟ813ևӧcx֦>649 }>cInL@ʦ9>cR3 cIhF`1D[&PcKD3!"4€[ `X/,-ϡv1DQBc/<`&lޞ>iJ'q xP2@ք l΍iS5$NؚM`:`s<}i2q x -%2 ,n9X!"&_hCKvL@0"(2e1$h!"&_h uǀݢS/P5ѯCg=0y$4զ51ACg^0f6#(dۇCE&L>q#t'$瞂7Iڳ'jycgG,;3sp=!%D^xx!IQ`z83B<[61d΃zc@"(2e}>>zSa! &e\=z>ywNdLͨs͎t0z'Σ8<%JeD1ǃBLA&7hhOzDǘ$7(DX8 LNe`Lmf 4؂ (A={4ؠ3y]=qtΌx>~<}s;#<|78=|&Nh$X3G TmSWc͇~NYLaT:z4`&2HhLa)*$S:))+ 1v(`1v)Q&n482\ug,pSb j8yLgLdbRڊEV8缕=r)$Zܮ[&|#V4ڦ^'I`g,5BQ>cd34MA'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2q'2qTn cLk+$np_[ SBD]ݐwdwv@;!ܐHGw$#wv@; ݐ??????wdwnB;"ۑHGw$#wv@; ݐwd;ȗ0C==gR$ mI z***+T\$ؼoGQ3 cׯQ_U=uSާ.AZ-VTs9{=Þxs-Jj+ꠠQQQQQ_U>E: TxPMiOlۿ}eq7ܫj)}4 D.EEE~I*?P{g~fYaY3AجۻHG^:R燘A$Y"u5dˌٳ3RAaTBTa12l$.?6Œܧsg?2\N$N.7ZfP{L q]ꓲʣJˤw<*ՐF%\T?ԨGW%XOh4Mn N n(-s<^Sy F-w-qntn*rsZFݜ%m76JvsЂirHؕ 0N U.7[Ki%X9h9i7}Ah4}yoMۦڋOp=GMQTt=GOp5çt+-t8^ٿ?ԫcOT(̧8A 45*9$eGƖSW,F4H)"z.ec`X9e`X9eە mr;A]wRDj!W+K&LF}|I` %z):YnZQ9G%(WD22"I;A Ì,yPo"K,M\:Qp.Eèu\:QQTo+--^u^u^u^u^uɇ^u^u\u\u\u\u\u\u\u\u\u\u\u\u\uɇ\uɇ\uɇ\u\uZu\u\u\u\u\uɇ\u\u^u\u\u\u^uZFQj5FQj5uF_kQQj5Øs F_^Qj5FQj5FQרj5FQkF_IHkQDPt:bL@HMA^H}5mRۯ;__]G뮃Au~9Vt}5 .m2gGr/"99iFWi*lm|Cc9f3qRNI j.w[JRdW0}]Z)Ƣ&GmIc7:o%16")e^>zFiƢsh'@՗ca [N5⢡7Tg;>&x2:wp<5"]泲;raw3dKr0]TQp}ˤsq]YiƢIo[IcusF^Ny)J)uX]S9F# pjTdr[CɹATYn5ʋ$C9Z.1o-8[|һ**|u1`85ɰ\`g)}0H9*pS&sN7ꠧ a3Ƚy8uՎj.;8kVTS=1,xGm[^f Sa~H(7(9N5pif(dfXkϸ~dd[N5EEBo.egb QS]',`1V<\ޥXl$N5+n s9%zJKGIw-4QQ!ilZSe)&@¬obi`[PΑ/ mBF,ŧ_72r]ťN*܊M13U"N5rMCkmq\"jiwKj+^mN~ƢCgwUȲz_C~D<^C+iVwVަ٬lI_'h2]?[I34iD\xV58S5Ԟ,<9dH[F EUu6R\(PTn 73ErH8TLrQ9G(r:KiƢHsSA{drj*-EAJ{iT5= ۔!sq98zB ,訚o*Q9G(rPVYK-R{+J_c@= OXa^:]xu㭼UQZҞ=EQ#0ax0<f 3 aPߊbh!9)ZHC7_ [GVhմSp8[*¬QZb@aJ=u|fY,anbի[M=Uq9 @u[F-FAi66NޱFAh4 =z Q&Lzu87Awu+t @b7$z]Z Փ#TMU;%#|tNS)I6W*4C1s;:Ya1c6h$Ğ$$>eu/ytN!~HשWh2M?[lJ<:e$o`n9KOi0dU DoB)XsK+MRҹˤR<-S/>Tɞ'm&Jr 9jcof,u0j3&Ki\sˮ;y.F( 5i6 c[B z>B]q]XˎkS<]_ؑD=S#VXLS2]bV"͊ci5s *DP&ՎP4K^bѶC8?k#D;s /eF уh`ۼm6wnxۼm6wnxۼm6wnxۼm6wnxۼm6wnxۼm6wnxۼm6wh`0m6} _%}T<2ub@Π չ8*r^B /)upiZ}7˝ lx}Z$QY ɼq]7kk01$j[0{v7XlatYav)Ja| ?o7čF#xH$o7čF#xH$o7čF#xH$o7čF#xH$o7čF#xH$o7čF#xH$o7čF#xH$o7čF#xH$o7ăL. ?$'Uqb;182dHФ=r`Sв:!{l#6E2,zb3R̝b쭝G_ ^8$+5Edo[7G|.8#;)H6;?z&eY)kf1L"K;Acxe"nۓ'pfxE$Yrv C7c,s4=Pe}άɐ18x=xzeFNXb#Li1!pO#7IG sY""^m-Ϙkl|dU LFcofDLǮCe{YʼnN^fY~:G_d$Tݫ#%#;"Fڏy*,ߐʨ"N!/O ?hpC 48hpC 48hpC 48hpC 48hpC 48hpC 48hpC 48hpC 48hpI'^{ufuf1X~M)?sTdrU",Ol!7 +]~t\PF-1-5;ed!^Ik$efJ"ɂ4)Y1l6Yt3p9o03ZKı̘ L,^\0%SZ垖=p?g%ιm8BIKyw0fYG3V٘dc"I1[Di+ș)FXA <{T槪7n4 Zу,C k/-ّ9 K36I$L`v\qJa&bWƬ{,&H$5hȜ?aчl? v|5RdSD1b *!!Q7y5e%جAYfW7 ^Ռ̍,mV(Z;A  bd7o)+!r[ʙVF^tB>H7[ͣgջ̢>FA-v+#?nE&!iymF{۰Ǔ.MGE%fNnmAHS[ej[*4ewN^"k9~6í1ָd&Wlo/dViwB/[sx}66'L} ĝэK HnD/о|[ܓ!!gsx2d4'0osV~G*Y5(4}Qrjl'^ˆrpܸn\7. ˆrpܸn\7. ˆrpܸn\7. ˆrpܸn\7. ˆrpܸn\7. ˆrpܸn\7. ˆrpܸn\7. ˆrpܸn\7. ˆrm~,cZ18y";'[{9 \DgNsⅉйȓ_ =e |K.ۭ߬ҁ_)b4\=bF+W& eLy+\剜^6)w #yJ1`˹P8 \I[f[d7;剾:6vbX~ǒ&d̃*wYC/kJ-S(VLC,ˊ80&tLqudj531CNM''fQn.R9K}8~#± f (ziiG_] t`0n7Lrxܼn^7/rxܼn^7/rxܼn^7/rxܼn^7/rxܼn^7/rxܼn^7/rxܼn7L 邷]wE)ePiAPiAPiAPiAPiAPiAPiAPiAPiAPiAPiAPiAPiAPiAPiAPiA-Yp0_U%Կ2N?& ې"M[!fn'2(EK5. G 5Gn7Ӄ/g$Km+X,i-i%^6yn\)P\+=r,+I4ɇ!}*\0ʕՙt̸b\eP챶fmŤʦRgє0%owanVaJDs",ˑN9-}e.[2_13Br#tIi>Μ; ?';-x*N_Ҩ 2?$/V 48hpC 48hpC 48hpC 48hpC 48hpC 48hpC 48hpC 48hpC $/ۙK$uQg3Nb.,Уxp! -ʩ<\ֿ%.a<|#,;u"Ջ EsR-`9$V{jƒG v4Dń!5"b0LSVrgoi9/β^ >/eA2ě^ʈ53Bb'fƌrQ+H;K~GİDHQ~.i䲯 eN(M4<|?}[čF#xH$o7čF#xH$o7čF#xH$o7čF#xH$o7čF#xH$o7čF#xH$o7čF#xH$o7čF#xH$o7čF KT|?~!K; ;VX9py˃F\r2[a([KCܺV?E\>R_Z9r#8rC<*<VW߮iaWyΣQUS8_W>jޫVZ[x-NB\5oѩKj9|r>Z0έUտVUjޭޫUjޭZVUjޭoժjZ^NOB:LQ-j55ԻIZkKvRWpQ5Sc|#N|ݍ:Av7,7c|"ξ|݌N]v <cc$8(^i>=IZiV k{Ц5Skñ?f0oٮ;kkƁ{Xk9jH >e/x %3ҿ37[((((()?ﴴ4Rz@ }hPh9,F՛Kf]Ԭ)2GF{%/>~Nvp}q]RѨg@ү01lcc61sgAȊDB5(V̛Ea% ]/2MEG(/ۋ}j٣YYmDqXQ#Zրҷ)!^0U <[ )~ 9-CX{=q4P֓.:xBjZܞ>`$|Cw%CP3#*HGGcE)3Eç)On# KHy}gc%1>c-V\V%K<)zEX|"8hlcc61lcc8:HxfNP$sW_Z{]O8F B<4kL^ƿs=#N uut)S;]}o6%C:/X_ZK%zYS w"0)?G|xړs>C giy>^1}9lu0 ~Ƹ_}Iχr^, sRϛ=oJWO\b{Yoԋ;i\A\ hc̵ 9 X:U8k2f.;*PѤ^3O_vۯ_Pg06B|˅DS_Yל52[ 2^\z$ytj&a Up{Q/Aׂ8/K:~"*Tuy YL]z?/?(ε>vEE:]hT2"ޫ*ڒB8 hz OmO]ϐDM|nw_u;% MuKcu~!'>D+zaNe'*+yޙLˣm.^ӷUut}|p z"_[=+LBf^u̅Cs[unǰk.Ǚb>B4W= tCQ8\}gSN=vQ Jcϣ*okaeC+k0] tǪ00`*QZmD{xO9\|%/wm| LݽGzڭpsC>3ϝ~k/~%zEF==0g::%4:Z_/wlNԖwk\ \t=OG6r*bT0^gPZ{g^z&RuOzzиƺСI:vGĶ1k&_RsI2zN!!Ih8cFӈ544 xajW?fP X Z?DYZϢvuUvRpUܫԯrS9LLl G7㙇[[QD5zMGW \8N f+:/D@9 akZhyzB@RO|a1k%_+MfH>;A'Nb$tޏW?smԬSLY!޺k sǜhitYl $"SƻSմ"<3IXy -?oM˙fkv'Sg5Ps:쵛s*Lmgi7/ۧx3wJ5 qa1<_t`Q\#Ϣ; /U'QhŻVC۠]wɄ+úp%"B1sM˿K4ܻ1sM˿K4ܻ1sM˿K4ܻm/ޤ x5T]:hGkz$y"]bw+?˘>V4 =häwKEFz{ҡ:~^\9jľ5m=a۔x%;zՒ7rtztPOX-VA]a `en5$󝞶Mb#K+Q,Je<'[Uj%;*ֲUW_-TIԣ?էP61lcc5媅x(T Ij^9Np]%'0^?GPNwOg[FA=x\IJy\"sG ~p.P :5TD~Wgh/.'CX-lcaaa1UsJ_M!S_t{7C:m/+DkRç'>[3 ;u#KDPWkZ|,<{,/o|o|o|G~o4(cpg۱DaZ{'c܅+nqZ+5VjA7ŖUc|Ye_hy7ŖUc|Ye_hy7ŖUc'3Jy߼{Mpk;;/H|8Cn9e3<ҠB똖..{K9FU|_gR9?aSū:= = ʽ = = = = = = = = = pCx` ` c|"/ͦiM,o4' 4T^8Ö /K$0%zY9_ xp ,0o8rM&#%+ZL| ^8Fw x0K rr9d@`N$&-؉e ` 5^II,xK¥2@l%Nfy&Cim Cib40`1rBM+K,"%&1SD0e 97x',)4JJ 2JM6 ťzm;ߖ+ӽ?)iK MzwK&ӽ/ޢ|^?'z啓K M+,%,_ezL'+zw8 XH Ե}9S<Ԃ?Ɩ9iox[?Ɩ?<2ds$KՇ m)Yjp?ih{Ub]>R޶(%zzڿ%N޶޺2vUW0=mJ.~#1gjso;93CчEQQ KVB7JԜC9nOW$!Jzɓ<;zzɓ<;zzɓr]:O[S7 _$!SrmǵeN1cFcՐE)$3HYI=MDCړÞ~ 3g>im6Mhhx2!MpC]0 3sq֚ZkMi5*"DЯy:WQrsi wC"wzWUE]ʆzOVq |Ndpxaԡ`8p݉  gC}>= rU•~]]V=eat(3 O@82-C?zfSqc脻xxnx'䞌\׮G?tx0.%aqkEK;to2??Ji:ƇYgcj 5.s5tSw j:Uz1YzA>[v"O>fON*].IZOBk^6yͩscZUf: Z-}u;r-s;8HS{z_WUM]ˆz{Y |N \*s)9+>èpoVQhcV'CŭZΏJTm+-rkSZk#Ǭ"~9"VR:/\Π|9V];`6s%QNDr޹uʝR tq!,z&sFB!G`wˊib\);Sjh>ӐKV Ƣ8I 07B홞2?&Rh>ćΙzZ\SIOi{YW88G@R P1<'Y,ޜjє-W[OB'1sVPU(F#z ,-t jm Rd>!P UWbe~:W !PY|uC'Jus+>UUܸoGo~ϬuA:qbRǨ{"=B"?9{߃ D3ʣQ͕\X4 =[I2XOOPuFxNU_) 8=N4fP>רk=GՏYXE(8AÝ'^q~-VCHyg|)$ Ύmw)]` Z L>kWh4Ѫ\-f3x%+0.e.Gh>ӕDu 9.Q=BsI*gW##=/Y OSi,ncX<"3(X8Zk~P(? 9Vz{b:*v1!U.ӜM:+a@e}-r UAҘf`NpxԝJԘ!ȭDhW tCLx]V~->VgGUQEuVt Z1}04}9 ’#yx4O?B1(ɂϣ\x9ړpnDpś8 qy0' Xub׫*Wm|b~j[y7/gm|b~qqv3Z.LX]sSā8AS H80 OmMZ藴RG1I ۅgQ8:xRu63Jc܆>h PӨdόO6]IZn#2T4Hk95X)BJ85T}"8ZT{^V(ԫ{ FRǜqc8RQDq ߧWMbfH=k1wH~{48@Gs=mGe*]Q'L\CE^֚ZkMi5֚0I1t UVk:enNR)b"f,˒xxmnnX|Lݨ 6MimVj8۴!)0{\E:!h35֚ZkMiuwF.ݙ933 FwIҏӨDF7Hu: S~F_$u՟Wt$_?K=<(tu61[:{H_M/VΦ+gSoi !>zu4Brt(M Zc1C<՜t3pГFxm#鴫d( q^j2rzԽQ6g_( O[~q![ߤF B6AR?%63v r1%D;YJ$j  !123"AQa Cq#045BR`$6Pbrt@S%7csuv&Dp8TVd?侢t +d(Ksp* qIN^90 4Suӹ5AI:^W3AX!6c).Us'ak^0ESXI5RM(!Nl$`!x *-k*Wr(d€"63*q9e'}/{˜Bl!5Suө-AI$̣gBm84R\[˘N<ָMm 6WMɦh&&88F ;Őc)_5mMQ&t2֩UkṊSqrl D 0 qKjYyIڵQ{ 1Kш3F戻MpLDŹ{g!49/Qҍ A9SL:gT{OH˰LPPH$gn/4eoԃ[ԩLp(C@Fx&a,J 3 C ! rYb2(p̈́0dtC%+)mx ?_r>BsI&Ty-x"(dok|cGV˽oJ/\T)Qϐrg,*>k 5LpՄѮ3/S(070PG?ɊGG%Y޸-)7748M3).#'wj3Us5ό3kJ:@sE]%k+y٪e07081.Vjee\rQ,\  =1 IfMy qaŜy*D|jJi0\_X묠Pre5K/,n 4 ycry30 tt%1?G4nR望8JY:Nd.M2@8&NN;˓L\ aJ[HNnTp' &l "ilY4Ld%e-nsgGqI^&󯭆k7MY"lVL\zͤ ,Uc0L<1!l?rK7ρ_;6]d 6`i/se.'t8%FXD8%J s&$}1{l"15u*lZiʙT]L20cZ"z1я쏈d|E8c#)ϣN}sGSE?>!) O쏈>d|E9S#)ϣN=qGsF?>#z1я쏈d|G8c#9ǣ=qGSE?>!) O쏈g^d|C:S#ע}sGSE?>"z1я쏈d|I7c#IMoGēF?>$1$я쏈d|G8c#9ǣ=qGsF?>#z1я쏈d|G7c#9=qGsF?>#z1я쏈d|E9c#)ϣN=qGsF?'&N@#Ey99EzZD?Yp)r{׵as&1x16`sa@qK3(X갨 {|"@aQWtGdS?8\<쑙05hbK \5O Dap' [n?Dj5CF#P~7Dj6~Gx3]ċeCM:{P!a6msQ8;RL R0Mą -;J$gi80O8AMk NjjbAFbT,B g~8VJ 늆yØp l2[+7j\Ⱥߞ2TksVlo0{#K8 7 }\nBVUi3u*MV Ku 8nKQU2&(䄹bXHU򉌽&"Q6T("6k[܍XRttr:VXFr؋>Mn)a6MHo8|59AIfHC iD?&fŃo!nU5v\yCD(*c *ͪJU,nbe P1= s0GbE-9PKda-eHcM;n7w/nvr$+ظC =ŜL X~mN/!sn<_3C_|14+y Z$r؞d 0(醓G묲 6AX2LDCC0$Lr[BCLy<jd,;i.ttpӟRw \goĹPUf*khor[ !C<%3ho@ kX_6PlFb郮LBA 'ʰ7C`C&V>&q綎hnfHlaß@_@4$EISLa[, &'+#I2a&/L;p(D6@KMUIDrL6= L&ӡ( S8LLoT)?T4 @% gM:X6 >X r/;Cpx!F.9Z6*+k{0TꮚfƥC8,^v1 s%o7ݖHN*AF8uEd l_sse u㵯n(hlWR鹙&YDǞ٬0*eT6Lrd5sj#)K[>I 17rtcc m2Drc")D# stAq.XQb4<>lGs q! s! q=! q! q! s=! sӏTbž Ǜ<7(|[wUP yE*>O~Ν,vɔN "#I(#Qi.'@}OJc,X8'/CHrrRZ3jDrss"##>h-ze.7h xJ,{)Dh+Ƙ?bpR6FH۩u#nmԍc8^ܝ7 5n&Sa'tO"xn͢)j4P#i#:ƌNdȍ.bcb"xTúNҶ<HKٙO)Fǚ7O.&sF*WBD>Aq1#1rFYYber &y4 1?U#w)[I[TQH2sQ7F!& apDRnxWe0B`̓h%V*F)QfqıkVۛw)E83uS9 ]V+@mpTC\C<{X}Ѱ}׿~w?groLNe9l!j$ڊ!U0^7Ts%g ]03|r+h/ xsl2h)٢d0&lS\8vmgmSsLK/F\IKsPzWs%H,P7TI H $Ɲ0CH7ySMf!6~Ri,WMCء{!?.]ggr`28lx,P敾ҷV{#JTodi[+}Qo74FFҷV{#}Q㾨Todx7B|1OT|1OT|1OT|1OT|1OT|1N7`F{A gNMta I ;n.b$@w/?8]KR#Tw/?8]Aw貚OKކU0#VcAҧ"ٷ#͠=qq*_L#}G 쏏/.!G 2Iɟ3z}KUe̪FHy=D0Qs@R 1jÜ 𓖤kwe-'KPlm9<?75K:H؃yѾdH|o YB*K6}ѰJQ>0"`:G(PML 17 [X`s%"#qabdp`.'2ZaT4"*ٴDL&L[]?hsJ<y7wJ0p *z ;|* "&6dC˅_aSޕaqiާ^xFW)|)8īVf-gA ܐpqG8P@cl_ݲtEl("sqSL"` <s;}?ÙMN05o9OAOmPMȘ)JՅF5Y.'LDaYU/w|b9DL0\J!kfV?0w$￾?_/t`|~'y"L T@1ؼ -94q?ѩ8۬f8O0X^)eٶ\\z~ۜ!w2ť԰to16`4S9 X("7!GHKJL Ň"#͉\_׊ |Y5Iϸ9W= O|[%f`eRmKl/K1"I$ٙpU0op(BuHf``Rt nbb{;L~r"G>0sx fL|>ܩݩ˟sw$￾?_/kL*ZBry.c_'Q/2NK`fRDCT9U%$I(c"W ia[QD PL9x֒v|1/ U8Pt=(GC3j0u~hD7@r(C0mgPF<'s{#(B{GῐcG2fmsB K$p3O~|O?ޏI ?Tz Z(`8 PRq^wGQ|!#Cՙ920rqPe3yK=pb6;*:9Ö Ytd0LCG4av0:X9>Om9s qA:bMte8HKzzʑ.mQ_(swmDSX9@{s9Y@=aE? ߺYۓi9q0y8,p22m'>X}XC H=VIa跽\ &؀p5"Ϩ:`?>i&\R2$w { b(eTBJPw :jl%EL79P(f*\+]+8Ü J`8hli&$}^֌(̱,l2ơcPXxK]@РpN"٫pQid|m4ϲ>6gM?쏍Fyz)ArD,R,3ME>xf7L]7/(Gf>1ُ|=c;Հ9Yқ7@ASLM0=˿-L #㉧Ac㉧Ac㉟Ac㉧Ac㉧Ac6??R`t Έ ^`5Þ5 3#YP\Ú%5Q1a6rʲ~1|Rɂ 9aF[8tG &D0qf k$٪DPbP"#7*M8Q)!Iןgܚ'T;t5`9#e(DA->#{umܯeLjÈ@@3v6e7;3]1rD6005Î*AK?G"U\`zD p%P3MrTu2Wx`:"64%Ndˆ{5[[r@ղ鴥u(FP1nEpf ejyDPX]82EPDП çTlDå1 KjmO,ˢU47KZ74;U^:;'1** ~8%&딭&kۗ*6I¹Lbptp`тGINB~Dx-11fXQUNq&Oێi,"걜.ʊTt6s` ҒSˌJn]v@䊜Yo~CDSɆn.+s9"BFzE).!g i²9dgU6܅0鱌}#hdwf͜Uvsl"G4L[8{]8j3+  {\M}0 ZO<.N*l#\ YaH/0f̀\90g0(3G@Ywv:l&[ZقLR;G"Jt[ (b08}c'~C(l@m-?bCQO7tZx%1m40шyaFxR*T\F!F,"SQ9D&'YuPXt:3f49f1PSڨSJ6ۊ)&W # B^k4"4A4 ML7춴J=TS xNVqb61#Me"QнRVVTM~N0(8 avʂt2$xP+(X.)kf[ ˹zk K5XHdφ}3ߖN'5ݐ#5JR=8Ma"mu9*3KڔJT590K'zfz) d$ T!b ܑG\+u5-K`ahFw0O*I(e5aq\Þ [UVy6Pʦɳ4 a$a<?wQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ!ͧW÷1 Sr3) ((!|Iܠ]_uo)\97OePW{M/hS.kWH~PJ7' ѝR `+$kBwMR" W\D\lI&mm\$ f[Rr$5*+LKQY3m :b@ܸ~y(TL|YTce/愚Uu!{|u\nkG&\³1R\+`A*dr`E &4+6*]K>Q @6t_?t@(wiPQ!@ ^kY3P0 :b܈KiCߠQG)M@@4sj߲\zg.;w$X epF& 4ۥwSI#*2R\ɕũpxB"${(RTQUR! CDW2ڍGbT% s@9Qe f_%\dTtQC׫k 1D  znUjBYM%7 Kh6~G7{M9s.%E^T&ܷ0j^#SRV]|=T 8P/kbX YruD7z" L:bG־c"i+r.Tv@97qRGt2*ᄉ;!Û0s t=QJBXVyc5l (!!fyUFٻŒ`4o۹Ruqow7z ٥V:`)S.":7';@X+s#kwMڝO&`>_LI 'ra123'VUT*8Ng/nw.rH-p&5 >b ]%^S!)͠J9c#OLr.A*[5:aSHi4qj؉龁\ -ERjairB&~cQ~(yM'9Z"XC :~ 1ѭѭѭѭѭcZ4ƴkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFih֍h֍h֍h֍h֍h֍h֍h֌WōPBFz#P^/Dj5KRFz#T^/Dj5KRFz#T^/Dj5KRFz#T^/Dj5KRFz#T^/Dj5KRFz#T^/Dj5KRFz#T^/Dj5KRFz#T^/Dj5 BOf Hˮǂe ֠)M$bɬ@ńQ9 0qqw*Qﬗ{oD}؂ra< v-ZQQE6P"#!lEUJMD͈titIR2ع*+`ш!UV1RfdTDʏ!r`Dah+KA`(^?SL[W" &,H5W0Z.ͅS.Jc$PJ5(d\ IPMزBxm~U&Q`0R0!`G1g-YQejP fzrJ`V]5AbMN>TiB=UU2(krKMl ]:gmܩ/zŹ% gL68ϜSIR{1|˫\&@1l"# oT4[F (K0t4'|ѹrj!4ʜIȜng4HI+  ĀD[7Q6=4jl4Dݐslx`m%^ͥ "wEmkUa.lL*ʢ#/`sn# Ѻ\;\o9V+ 41D-a-cQBEHSI{s__@8ܶYe+xc&ERGtӇҒ8<&N)CDMH^Þ+L:9AJ0s Ưh&H9FTp 3B y1G[pQ%H\Ld Eyq' Ro_>h Q)Ffrk,!ѸrykvAMT1M," #dp 3 +v)C<ܤGnfbs|x #v77ܺ:zw,DְK:iPt]gMMHNYk(\= j5fAwÇ')H_t Kڑ-\(?#7$U7w-#7Oy P3.Xŭe!6ϖ]Q*ex7VISzF ,r‰Shh茦e4b!R/ @HQ8hh -]lٻwI&f.lH0 w8WU*rԬ df &.#D{4@BB@E%MdJ` ܦM3b90%́9dYC/7У} 7[5vF]nKu#Q.dj%Dݑ[5vF]nKu#Q.dj%Dݑ[5vF]nKu#Q.dj%Dݑ[5vF]nKu#Q.dj%Dݑ[5vF]nKu#Q.dj%Dݑ[5vF]nKu#Q.dj%Dݑ[5vF]nKu#Q.dj%Dݑ[5vF]nKu#Q.dj%Dݑ[5vF]n6"(B tX1H.h몦UI`O* &4+%M=#) e ɫ| aE ͫJV`~RuՙQ7D5*%CDpFj7fIbާyhÐ(vc'[,ʵLN)ViuE>ndqHuU@9%3աi'Hg+T&Q!fx-4E.*"NKsiy%vvVT(fg wj(܋4htq oc%5\6dd)J*mRks"C3yŜVbQu!#ufjETDˇ<`KeGXAə@XCEzQq?I]d!  o#xg55ZW**)c-B0yR]LȔPr`6('QZBdw;%ع!VWS$IB&P<)*Ϛߕ|bcq'6zՋ691R(pܚ%5~q#F!8J8CØ?BVr̜$l]1\0!@  wGNl1)Ma$ݺI !  UfrAKp>H( !f0R/7n{Lʩ\GzbٮN[6% kDQ2MQ3#dNx&C %/'te&%E&y0<#Jjlnn̲?ǎ4LM!'׌)}e9cE:j ZXzASԱC59D/{N/7mwU mG&p."[@(a\\ fnY/F3@XoLZ^V(i]O0-cEɲ/;"1&80|F(VP3nVe $!Z@,JZgryAy'QϬ'f{3:, HTp.1'eLlm &DgD$KoR-.Z3vT@ STCڧTcjLmS鍪}1O6>ڧTcjLmS鍪}1O6>ڧTcjLmS鍪}1O6>ڧTcjLmS鍪}1O6>ڧTcjLmS鍪}1O6>ڧTcjLmS鍪}1O6>ڧTcjLmS鍪}1O6>ڧTcjLmS鍪}1O6G(B v l2,H "ztT:8#V;֞e2|p/*W&Pq SiC%-dGK!n61 }c(L+ 1L%0g [}{a×`/rS`u"XLWt`ⵢa8+IkTNuD/Lsn`|V宑#&`~aȂc bR.!2^PDy+[iuxݚDz˘@5hLw@&;SJQcn.?詵\ug 9EnZm(jP\DDlRtweDG9M P9[WR*ķň#rD)*·~›MdrG7P"{+Q̋Ä=|!y1^Q)6y Բ<$*'%0Hh+VHr)QE=4I\Ywj<0aeN<~ .9, (V*n񬍒KU!ʁ@K3Z\ֈ3,5ZR"Epn.'<+X7na\S'ĹGnG&d1~*@M#L;,Bc1YJ$K..Yyfb` P p gԥHe3#T[La/U>=Rc7p̲8NY7N xMxi11>Bmz]Cvl*d)K1(ʩiĞp9L"/AJp`P}k/uUBk&EVa~xJ滝+VP ª4X1L;|GJRӪs%en,P&5^_6c:l[$N%{&O)iRH g.R:L{UTJUK2X kolm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm>lm(B,d/p1ˬ9PJ?sdu;@) II"L kx &e@@sk+g9^e o%2FT룾BY-o]4zqZ'4ϙ]Kf Q(62(^&/DvD[>^^X*$l&qxta&L8BDϟ0q% 5S0b,g~ %h9Kh MpX~GTfkeEJʂJ8=t  ;*ԻLsC%`/xdY)Ҝ " kÆ(e22xsa\Ebή5f74tCIz||b ;*&"a~7KQ4e*oB9hw 8Nsgѩ'3C5r i 4 _\`S[7,LDjjYb].d-W6stY-Q|cT%,M2um2邭J@ ǟLO&tܰ%&%lG SH$N# ݢɪP䉌@ 3W]) @4b|c*,pd#{#]VݲeLb9"7QIԣ|AO,Ltn^MМbQ]ĹdN$px@C2&ѫk>PU sEKH0*N LӺ/%E.xv$YC& ' rL%' DQY478?˱={t}U7 S&.jE &n\ Iď&&9@ypc7Zگro8:XT`> eϪ9 GsU]D\)$LZ`MM3 R9!|N":b!fK&t Cksg'~-lQ{k93۴e5*R6졓,!.eAbbo̅˹:S.lNJ)pP~Pf 1QN'2z:dGh\[0tc.%J8e(h gUB줶`(c Q Qvɴ3W^PDD;E5Kg'hi\:Xʪs%s6$P.U, 055*fsL=W{d[X$~ۆ ͎hY잷$dJM1Vr~"9A̙^QS!Dy/*G5PB/!y#}g+7Wuw k#L?h{cL?h{bWYҺKU9h(؍g Bi0n龅Q=+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ+ꍲ0nFꚮJfdS% Id IC3e7u7;IwS@ YʇGMssiZ8@ra8we2o$f,.S/)]佮sFMS еTQÁ2Gӆ- Q2 0͈x$r豔=IdL,T̢X8wM[XI䳄EzB#̩Vd{5ED:Cn!Dt9]&KOOJت8#p/(A*Y~BtgE.%{OerweQ6wcr(\ABgdE&;Jܤ]WL `6Kr\m`ܝS۟Q+U%d&.7AoJs_ÌDOګ,{ 'R"FD Cp71h3&L_X#t!m6lUr@\P9G `e<`⸖"JʪfC@b$4ZwK'Q5 ˤ@񹳢R3j\PBȤAɀEU70?+ IQ^xF~P|щ;@Q.kN)nԔƾ3$O)=1M`l3h!mS #xz6s6k-Kikܸ 0q?Dn \~<Ͱ pmp䏏7:8ŃRN1Y4U51g1-7zl5tD+IhIDGy'.)i92*)_m#Qb ?ct 0XFd&4yٮ؄xU2Q@Dn"AfBTM08!lӄ܃2(mS>vKw *lIQ-F wISt67 ab F2v퀯[KQ˷6Q "H "OWnW pPX&vh@IJVy9F!d~b Js[F]2Lh&!8Pk =[ӏD& 6"*CcvŶ=^xG(BkE>}j:xow'{UO10rudp*b"?& 'rS*&4&EQ6sy!M8V1u5|vTbPPTHQ1Q Nٰ*v,ʘPob9Dԍnn%S \m}/-(H^pn 300WY@MER"g5vt "9 GmsLkt@   k$: Q e& L*|Srp Գ\aP0Dw;M@b.mIbJ3"b b# Dޖ$tE<`\^[M[i&ߝI HbDW"d93rjZCK'b3GH7Tkz3gH%{ @*z1MqK8P"v6"(''L@c[lqw(iR/]`U1AJ<&<2rTJL\x@@ع4\`fI P> ` ڐKU,Qeg1Es?%,q(MysE÷ŋ?'))C42j Ұ(_)iUHOβzSs WܫќcsY$SꇼFvj[< *)/$Be,2#*M& ?4<ѻdG&n!崣0OL)xJ C8Ӟ7}Eʙ}].;K$\e a̫KfgK`.1M,7ʜxC|VE5WS۝.'[2s|*&x#ޗe%oQ60r9@<)$ړ"JؘE  -#` M3?$Ik.D{ R˧Oܧ)-M|57:zyMB$wTQàlB!nm)xe,orD&a-cC7.ܮ_2E )92BD+V2Y"mXb. u(AfTYRe#"iOor1G(AU\Js^& 2e#"Åj*|Bb R\y1`IWaE9S|`)jzvg+!S).3^ׄSi |(5bsO7WGN&90yL5sg1ąj}i}K*71Uc q(1D MiIlBK&@r' :aC8Ih.#-U$Jb p*E'L"AئMRp$?bEI d1ͳ83|ӓW,+.1"%H,W~ᛎ.}% @/(]>z 9W|p>v}4/jퟖɓB -H7V;H<%MFGJ[|>3asp=n'u×;9Sl\W+6qÿ1O;f0ưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưưq%ڱ4h#@F4h#@F4h#@F4h#@F4h#@F4h#@F4h#@F4h#@F>ߓ(VtԵfx@0yB.)t\[o{媊~d3X}ϣUIizL6~#8##0fRB#lfPJES*pIĒA7S; Gڛӂ$JAn8(ٴDwC%sPZ|&O  19MmeENju\`ޫeETYj(\K ?G$˖Ʉb+b` ]4o"ʜMpfC\yNcO]K*#&#$6fXPo`FU.VsiU!ʡĖ! -!*j) I uot6,@(G"dtB?%x*hk$Ln@xIlP7(+sM[*q&":c[i:N,Hw8&/\;XNc d(GH@2<$UpbN8k+s_yxYc^ᨫ Ss^4hO4jiZR܅b1kbe.fD)wOAC8Će/WnݭE$lC(a&T(>Py)ͦTcpehꙙb7Ki Y3R-3{rTMlC#ws \2yN6\VޅL6 Ƹk*K(,fz(B>L P!}IL|_Y?&(6*IBI1ha tx M!%S:xf9@dڑ\d(#8CKHiI3iytP (d2jؼFU2\iR7I ‚WO't몐nɤ {_Ru:[l\88"CFO7)/lFq("kLS3bwJLQt2ʢ ܷqޙN].<\q.qQCqtB(]^Ku{c].lktW5ƺ]^Ku{c].lktW5ƺ]^Ku{c].lktW5ƺ]^Ku{c].lktW5ƺ]^Ku{c].lktW5ƺ]^Ku{c].lktW5ƺ]^Ku{c].lktW5ƺ]^Ku{c].lktW5ƺ]^Ku{`،A'У} 753g% O(5%4tdi w9CX9=Coae3)DRL\9)^Ԓ2nSS~ oޫy խo!0]e>,B!a+CVƋb dKtΚNAFmY(0!D@ b ?T9 `}N%ngdz9bP/9Mk q$xo)Y3uY5:t"pefA4VU0:aٚS=$ԥLnmEs8Q!?d~n}?dNQU17ȍٷYe*n8{QԔPky&P35we\"Q{gns&Qt 2 :(e3.1mztjFXc&M7f,eܺ#wA=/#|ԣn6ڧTcjLmS鍪}1O6>ڧTcjLmS鍪}1O6>ڧTcjLmS鍪}1O6>ڧTcjLmS鍪}1O6>ڧTcjLmS鍪}1O6>ڧTcjLmS鍪}1O6>ڧTcjLmS鍪}1O6>ڧTcjLmST Q]GVfBŸ厀 g8R CaHzl)C?ߍ!g= ~63R CaHzl)C?ߍ!g= ~63R CaHzl)C?ߍ!g= ~63hiԢKq*(3lC m ݶD܆P1j:B}ŲäJR ySg2wuk NǠ|>&H)N{O)GT溫SLpц+"]S_4Ķi);z"V;U|,Lعj&]ޚܐ,<#4f= Hg."8X0p*k~b2~b2~b2~b2~b2~b2~b2~b2~b2~b2~b2~b2~b2~b2~b2~b2~b2~b2~b2~b2~b2~b2~b2~b27K(yZO03W@a  9 *Ʉl2sF1ts0ʡl)M0caP4}Q6 ܹ9zɆX)8|}[2N+Et:ct-yrBd) \Y!"uILRlVQu[UT"1ͧ O4VU +kL x5O^rs i0&`.$b69 Nx9,Ô񸼙yKfN qbm1U2feo4%T?8}:x{MJLeJ.E %>hnU4`YQ̤c ^s*|dAvݼb͉xDŦ7U)3v" QņWpWx18grg6*%~;Ps*ZrzdL Dl67܂ tT[X|(n<]jNc{?,!1AQa q0P`@?!) (YNG4fR9 `T25BжQcn"(q tN40*hf1N+R1_R={# Yy9o؞5+J b4J6`Ҟ\'$JT2RvRq/7_[ s%Ȉ\+D]4oJD@&CW[4M+/orZb$pBe%j/P1/;7.Ow9f Dl8z? bzmAЃvPeɵ&Y»M~y_Gp 03~q*T*1F.%{:(Q \0ͱel^gbeFA rhnV붣*K_BO14}WX3@mluc̜PB5bZ{+թί-NQ&)EJ,EŮĮ  F@,}ZolŞb|͍kC鸹!T*r?bm"|dWY_ v4ܘdX{=cCK 46}^NEqY8a1k]bjꝾPnWup yyyyyyyyyyyyyyy0/ԓ-kYٚ_c sQv0`͙%*Q]@l+S"Dj%O>t tp` 8,P ZUj< V:W`/p!. 1qWw98m6]`pȽ`wf+k.wqk1ׂ\ 2<#x17/!ӋûɚnN!4eRty'-a :pcnc!6p )*]hY5T-J#:8cς81VP8X:rBӄbJnWɭopccD*!T *' a48^xhxd kרܱbY42 +R)/Fg#Dz ,WK\WFOSY\GHzJ^nv-Fcin]Yޠ]@0mjjPЀ6kX0xCHA@Q"JWBRP( K.%:^\ޑ 4z]pE`WbWz mu"aS ֡1rKpݑ6[”Y9Ll~py ZRڒof 4ʖ .@åՏ)jd rȡCn1wT @JRpWpK44-o|uڂ8ֳ 5B}"r*#4pG4頎>8aTFB$ 1D*T @8TEp AP[pKnɽҔ #VtMwc# 6 mD* C#)6򍓧uH=a" 4T}}MQ5A%.|ҧ.D\(;TW[ZWpMT 4atJس$`{u$Z_v^s)faSնLoxU6c5]M/0"yV"r,*!>RУ Thq0S x#@@pRpP%JG߆Zbj>,j/2QU ȢO44>h*B^ \@,?u[r~z8qY%m+ ƚ[W'jA2"Ǧu*uO&l)0BYG7 e } &tZLlze;x:GD$@ J+D+RqrM@ Y(3\pj(~&wXLƐ0S3Q=QCsnPVW8>[oEn|%tx" uWzm FWPNXhCBK  }ʋ 샠ְ~)uLx1$HJ ⒽU%@*THApoC0z>< !<$HP J*TRJ*TRW*$HDzTx# e=TAtN'j?Ow'b|C>'d쏉GW) ҵ1$K*W@\*WW\+*WWkpN ƥJ*8W mFrp z'*TJRTR > )k`jCU^ilZܡ [ZURL2')Rz*WTRJƥJ+&VVWJ'JtyJ%c$!Ի Tg e M B,?ń :uV6^θ!4(.r< JDcTA1)iTbĘA , *\Q5z_XJpxV8~JƽV?!9%J++x<^:Jkz \Nz:I~vG;3gb?؟Ov';3g+ZάҴUJJ3I+\*WO=Rp RRRJנ¥J*'mAÇN8pӇu'uguu=\p wRwRw^w^W^w^w^w^W^wZwZwS8amNNNNN~|L0L3m֝֝֜gu'Y~Zw^w^w^wW÷\^'=>pa¥J\rG >˗p_\0H<^ 0ǿ$bW@ెOrbXXrwx (P9 m7D_NlP ~}xQ)px%WЍۥ`ŋ `P{ W[80cbCUäGX.C x@y`ebt^~yU1}zMH@.9b™@ >}83T5[,6>C8JTq_qTGxUGIPOL}4c}b2Kn[[^c:֗E{EJK!Un͗+Ք>_c%-lAQ+UAR=磽#Q~]º\Z"UyMDj4S T} @9AK ӌhA>j٪p^+JZ1w6I/pdW۔jp 1Nysp!hU_`GEDO}]>JLŽ]fbտ}PrL02Ƌ3LW :[?p3s3\Z!FuгGjXjy*bk޽#Jϛwyؼ'$=` X9:h0ڡf_o 6'4&F >ka;2`L/HN$`7pH힇-G뙰+*/Pq'xeI M{C|Fԡ0c3A]ZUN9K /h %]N|>= F(Z7NVkCyZV ׄN5 Lе_D/$);D%4Xѽ }_0PVɫ]k *8ZNaCC'Zo:|ckGFMҗEks^FWc0drًc֡}udqx9#H޲\+ת"̃g[J,?텙cz}P~;3!_#QRE";L=9pͣdATsGk#S}` ǧdme58@ae+bs]KZRg|Z ]r\N=xԿ_= H'3w7b s w79^`H.h_LA-ALAƼr *0­F7 gSWdn^EG1~Z'hue}%R~⾰CMG{}F?A 5iYKewO` bA3Ѓ ξ;婭6TN*UB;>L2==== _qPeҠ w440bzsl{@ !<QXʭ)z!J)% S+sP#X&pn#rفBO9<^c'i4䧵xxxxxIp+bBT P(X xٗ !A,z.v;N'} K߲ԅ(EJ=7JY~2$_U; 9\GJD۠dC@AmТZQ$ \%dcvl`eePsO&ՊfvFN= a-]-d(5s TaOzNS ɆZh -߅J$sX`-( bU\2 Y(4]+WQ.ƚ`ͼ^4)A ]tJ#UI(@sB^rvѫ X )G.E(^lK+\,\뾲}D! ђS@h: ZE!+%RpDS "ZQT-Zy@}vD&+)$+e5^BEth %}e*KI7Y] ؈J=SbPL_a*W(Jh@l6DVIAx2fa 4f94JB.ZhX:7qPZ !c0^Yjk(b-̈́Q@}4:ԦLJ*\>0ջ{΁L6fC8)PCp8+nSc#]XB FqYD7V95Yk<Ӧe\Yo{$+G*I_S<Fuƙku@qFBa]PZ6r߂rln2ߠHD\&Xf w')LhTf쵷(o_82q͚\#R~X1Psh8oIʁGckW-Pʀ b;M@ )Ƃi&r.4<*G :רM:-;;A;;;;;;;;;;!;;!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!;;;;;;;;;;NLcY=GWE;&Rb!B!B!B!B!O ! X!BR.2ko9Gf$ peV8;c[= 8U^*^$=5v. ,%v ҷA"h%cRQ10XejG9u醸!nEѤGuL=[F4iTGxꃥef.t˜gЬݰ66}M *N3$`j: A$˞\_j(k[+k갛+`qR郊9J°9caÅܪ6xJ0T^ga %]*%[@:W*<2o2.%F/mɌUO~%:sg:Դ& \b $/E'7,9D_ׁM*,i^OZ&J2zhT+jR]7d&1f;ۿmJiEo$hXCyU(CI6$67w\>vReeU8?[ c$D&"e#jNV Nґe eHŠgWMژa]=Kdo$)K ;ͣ*t {)R4ƙ*?^3)xwQj&&cI 9?:"/@Qsmd [SPʳ m+(-"c9rZ\Rg,M2DؑUbJFU 88iVse ն 3kjD]3jIVkoqw^u.,JmjC=e@+ "2fz).=ɠ>ϫoED%@5:kbJ5*u 3A+F1CHi4IШEyJ*QwE5^gn]sԲ:.3 TGY#Ъ[~|V>ϯc#################################################################!ޭ|_շŏ~ժБÄ B-Vf]lʻ? GhYR (S}U}^Ea@:3)J@ %:pސҵO!p~&~tɛZ-*5|Z1.ؘPAi,Qx&`]AbVjP4֑/%Hқ2cCĺWB㦐)- l&ϫo\ :<45BZ1X??¾ϫis<x9s<x9s<x9s<x9s<x9s<x9s<x9s<x9sq6룑(J9D(J9D(J9D(J9D(J9D(J9D(J9D(J9D(J9D(J9D(J9D(J9D(J9D(J9D(J9D(J9D(J9<}[??Q=U2( 9"R:*|VދJ$9:`݌T`n8Wvڹxj޷ 8 D9gK۔Juq-i{VvUQQ`q#Ke+'%05[Vߡl t(- 3뫪2~A8Xf163yeR8X6Ms&gpn21ඨ|3֍6 gLۂłuTQ(RƸf% `aT{%Rω1D}A)  jX()qLz)B]t>F)x#+gt;K1( sFTZ(ֵk~R]$2lg\vYC l#zn 5eDrIt`VtwtieÖunbb(XVV i8,B@@.:rSb|kl2d`x(˳C-]jhľݨ`g/v ӹq9J8:.`,<=uC#c9 ;Õk`$ЊD1i)Ͻ" EjKһߙ.8дK&Qb\SwaM$Ee6Yp6TxϫoBKW Z-e0!-hV${5r@c^4s=U'2Jg٣P'X[ qk j_R.VCFeJâw_`zbq Z (QF."z%cy%^j S1mhRIZA@R-bigB#v@M w%f$ї,h`&![@[SW sL1MBR=/t ~ZVJw(%4\Lm7 DSC^R^Xn% #P4ݣx*dp<B9n:6VQšAvi55n.jo}j 9tDwpͬQ]"]L`" aB躴TPis h8<>+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  o+ ??MjZ·'H٥~ZU4SFT8S~H24 dJNQLEaMR2"`P, !1dԩKuQ (3)/T0nj-g+45ɏ;3_67c Xt& 2Xsf쎨yq3dJ_Jv|ŘW~\Չ6=L+TTӿ(DA~eiD(.#L6$N2:24b@o(+,ꏣTrFw&Va:hf#mDy+aUVd+iZ47(PuRV??nRǢe82䷭'Yzejʞ)j s5:&53 \ A[[4]JYQaWnčjy+o R W`}9R$O3ѯ[-wFQ*)mMG ֭&7tO%m/XR}\eG Y\ =nڒQnzuS #̃q-2/F/Tdi^JoJ%4%f!cgB ^?շ]y %I ` d<7jd%,z]FIrukN m&Svs|fM $tƋ o3iϦRkUmBm M4ysԟGkM c*1[x9l\Sb&~<7vVj^6JXH5a" }a]ƚS*^ѨuN 4cu ԿتEz:-X e_NRjt9"G7Ѭ?% Jr+M1i{ 3N+?>|_Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='Ct;='CơoWmꀪt视Ƶl+>9CB΄Ujքײ0b?@\;* 1{KEUɳe -㔀4u@p0^mlN/d94gbּOQn\JmIBs8b']E$؂JI .`o$Y KL40ŠcmwuEGFҒ7bѥp)CbkȺP:껠NTC1icXVboK# j1KmŴu]lK_x [~Yn*5(#1)V⦫Cr&E|Z+cSTtoZhІ<_ϼ;h8vA'd jmfb؋)&#\WD7\oX籬U>s >`.Vb4dfb0 WB #qG(+|HqR9nQ״ʣ*NSħtu xiץ hc2Ъ/{-toZZlsKrhK Q1lm.3"#6֌;T ;>WGkR- 訨IMcQu=2Q-qPO6;61BzfH Rѭpkx P;Ͽia񃹍ufJUrYI6ƅeO|΁hޭC= @%0.^{6 );c=ﱗNeNSNt:@uM3,KFŲ|,ʯ^>2>Aإ"͢еZC@9wb X,NZXEӚ#LƟT4?I2 н9 o CE74yǺ @0#"W"h $+,zК=5o@WdGDok p?>~X% a haN 4rETxZ8|_մ)~SeN;/v_)~SeN;/v_)~SeN;/v_)~SeN;/v_)~SeN;/v_)~SeN;/v_)~SeN;/v_)~SeN;/v_)~S@ˆ¾ϫo& 1H8057)avh<~ϫoBe*fMW$Z2D|gYCaXUs7a:AP8s7?`E1S%t||)6!2*Ttڅ¢݈Yof[5uO*8';8^Z < HL{ X*= iAyKٍ H P([F5)4$ ɶ4,?WGICLz.LCAcknD4 yˀyp+u)E(Ȉ9*w<~'ۙ\{Eg յs=5e V4b?N86zg1 mSBD>?DM':x㧎:x㧌2x'"x'"x'"x'"x'"x'"x'"x'"x'"x'"x'"x':x㧎:x3IW;NeZd>֦ .lz[+"NT`.q=3P50\8;ʱt'Dx*=LY0?<= %t8KC-D ] k3!mUBP(BN CW^iSPnh iOfuf[Fr/yg`uP ( 8,^_QIB4P6E,gnw5Ľi裻?<yN2Z-~WFY>\l<04m -NhתHEe8+\rG0hEs m١-PotɀtQBT F8p0?np!#c..-O{K̏ eC ^Dc3աie:jCA]qhu810x9U̼g)}Hj8_?~/}^SQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ& ?¾?_vi#z.ucKuY閃Zj3 u;."J_ENДYK iXaiBJ3 us` hJܽ5?{Y5a-(X]3$ir?Ώ6aoheGd(jXxM[G#`S5JPT= Q3.q ]m!MJdPjUR@l++l휼>_wɥDjxzU12+hsj@z(Ifi 2\pR_WB+ 5I? 7kگ+/c 5HN{)`J\> \6f .QK*hAO~#'7C-㍹nTRJ*TRJ*TRJ+^b\#D_O݇t~|~ (9Fx)8U4kQ3jVҎH#U=Vv&eͅU}&y":p @ @ @VCeP:5dT(#+W46akR3 gC+hNG%e \3K5a28ѸFܫʲi2 Cu6u#k`.0ݛ>X[J^k+ƥ[RqhuJLNFe @KYgxC#H9GxISVx׭tAP`6ɭZu|LjRD2JBHI@%&HI@%aw/!ǀ 'B` Ss Bѭ$Bq@6@RlJ SF$pQ`$ $@ i$H  A@K@ )$I Qh H) }%p&F2Iw}C@JCF,l`E$e ,JGR)`ImJ"$m[tŦoBV0ʭz;NπXHslA]m$+'< #8@$$Dk8P(;ZD>J HC|zH9@fe@ Ѝ4~AbAs@9I( FZdn JtRs xp5@|8@ L3y2D`aE+ ";m @mCO/ Q 343diPA0l@ ,XhdLl[E 0,Y,F (C"}$ IKlf& a~e P HIA _hH CB L%ʌIβ <蔀E48@'  @@< @p %$ L#8 `< I A `8  `$ oXw0I$I$I$I$I$I$I$ `8 @$@$I @ H @$@A`8@  $A  `8 @  $A`8@ $IA  $@ `8  `8A$@$ $A$H @  @ @ Ad0 l0$ I$@  A I`8H@  `8 @ A @`8H $A$ A H @ `8  I`8  @$ $ @  `8  $P8@  I H @  A P8@ $@ @$ @  R- @4 H " lH$MI$H $J@IeH$Ea dH $  $ $JA  xI @"A$A`@)$H H@2@A I @@  @PJ 0 HD@ I$I$I$H  -!1 AQa0`pq@P?:,̽Q++~qӜttS4e<{CoϠrnyg}͝;6wlyg}͝;6wlyg}͝;6wlyg}͝;6wlyg}͝;6wlyg}͝;6wlyg}͝;6wlyg}͝;6n`%ɎQ=N1T~i!TLPU p;<uE㾷kƫ< ``<Ypxn=QGBlvK:7tPQ1qq4|tdIzK%uπ˳]^R5y^Z&j1b-)[8VľJQtrkK;AǤp9Ѐr&ŗp[bXe^-dbcf-#:/h[l}Ǘs 6 一M6ZC #o~9rRT 'X]D-"t6fJ+8 b [|ogZjY"61PE7ab<{ IAjV< /:`#\:<<_2}ǁEskp;nwQ"Fy:n ރAoj:%}{_,%f+4^R9 ~~OaݭGHa+tJ{}\}M qS؈VTqNO|},* Y(Mˑ=)$g#ٺsng}urVx9hQԀ9븠E6ghQ orUP9W=!5V/.ݸnM[>c}]@ 9hTHx:zLp- oeen"W`-"vn84(7_D/J1}*+JjKh!fiH.@b?‡P C(KHsV\Q; =%bwJSS m'}&1S_B>D"mmLAsZA}Qb(h@Xa.*g,Jv4]#Eb:5(9\ISlê$aG Os^2eNhYz((*n$Wt:"L#n򲲲_e^`~8"MfVvG^l~"AU/xi_b3\ĩZUĝ1=S,o@D{f]ye02u ` cTxЅ+iۨ帵m@"&9im?v`6Ĩ页g"4!Na-'yRF:* 5N%xpP+Cbt}GxNڿx0T(p@|B0#;*vTtWs<+(d` mRIu01DDDDD?whhAZnfTGJŒy4teh3+$ghVI,cqquWM.\bJ/_ X Pb1!+V`sу< +*g TU^ -'~2<.V) OÊpkߊ<a+)J_K)z?Ž/%xW0C]x J_K)%/RJ_K)%/RJ_K)%/RJ_K)2%J't~ +'twGҾ wJtaFT X<*RRiQ#R+t]Hc.\jCVcB)!"FWƯJ%ZTRJ*TRJ*TRJ*TRxU*WJ/i_[|,͒.ɺ!IQ| ,ōM٢PnmC6_m־_m࿁୿m+o| ୼6o}m+o.!1 AQa0`q@pP?܈ DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%n+D +WY^ez;ӹ;N;N;N;N;N;N;>s;N;N;N;N;>s;oN;Dbs&I'Dkc]3(CǢnT D+Pz3ft0hF : iZ7.&QiISv9m%ˋNh3<5L@+@̫@Ҹ@@;ezK4lDy^nY!xK888iՇ4pn:9xY & Rtj#7L (l41ћ EbVjUQ;hlC/ Y+PkyH!k\U΄Jp l̪똃0Qh.&%gP4H99x"of HuhT Z Jc@ARѱhGV}=aG9x9pm6eNR7rEF. Xb( FTJ H#T@tІAeBW3n3K3 &qF-V̺w)eJҴRhh4TkF)sУ0=f/l%j%WFL])h2RÙvB!t%Y*F g0+BT55Nԭ<x[ɏGa2%dҢ^5!pzQ ^a1:&Qve,j^.+@b:ԡmce+ qfv%p> @yM*ҎR1xHYxI^`JENH\D%h;xL i#K%)HjKv z >3@I €o1FޠSýO?/} Aȩg{O 0[ޓ;T\xuej]\V)'>m娽[>e/KRԌ ܑ 9s]Nj)Aqy XoK>d~Pp7jw.9u9V룲{"Bnw樺 X\])tL$z]8K(vM:Heϓz3`E|St $i=QzzCV np9NAL*>Dz+O!_ LzG3_1gfg=.?Ƣ nF4[J۰l+{J6 "`.7zEKˣ c"[ddF9ZP`[t;t.sa$M;j}9@k l;'W!x^J}O<%]S7Z>J}5o6\گ]?fJ=KrUA'*-4dA,⋲Y(pTroEm]E+7>6 |.Y:3;{Sjl=>x&P܋Qay̏N޾Inw J8 (-@7R4Р}.vӺh91z}^xUWwGjnuF<3TZ}_eT +jLN6Psp%}T9Se3cft\K8zi+aR͊`s"mZSj .X-HK.P7eyf(~C?O b`ѺZVd`L:w\=[# +cQ'St299G)BIl[-9eJ(f1r/[YQ1y ,3c'o^Em|D^oҺGWK%!&0Zd{n{7Wc)golh݌Ѵg'l7{ _+>D6@5yq']Iv=aLtVO+,z-.,W&CM{E7KZ b& woq {K$z46nBiO{'-񛸰4h_­ dT폕\309xrƒN1Ū}Y~_~CGt9xD瓸[3Aa[0).Mv #M>yN6v~Jڰ: Łe[v.=%dz#:O?r'/`h%E!zMMŀ@i,-Czު҃~@~R,VNlA>[l]p t]/Nڀ{}<;^u_!W}u;L$JO*?~à6-tLsP<=ZHp: pwrG/k+xsvM @Ic(6fǭ+JčbmqaaHE Pzpu_ذ)%Ѓ?aO}tq*HJu ]!`o~o4(kp\\g#>~ +>!>"p K>< ^V/hj| h*8W+¯uOWWWWWoK/K/K/ƿv2*2+JҴ V*!ý_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#J_#MGQG8"J%>N?^k S,!1AQa q0P`@?}Z;ئ,JJj(^VodeidUb)aG$.ƝcB#II4|[y?H',B+^ 5M6УdfUi ]@T fQb$9EU_atMie=&5UOQu) u`PCr ahNrT, ހukliLLJ8S7"Q;BJృZng"5:B0[n>ndlYqNs Qx~vYSF[}%v严o -Tx洸(o=AǗ`•VqkiPCeY8o)RzP_l˥ҞkDeC EEՈpRlD9rWa@Z2F张[b1\HRb%bqv]nzA:f 05?]ΌE9fpVUbDT=NFK: PΟP H ;Peb --xMQՆ[$ 248 + `|XjbRSL4v4umE pRO蝵pQlR]`QlXtMJCWfN]x1 ;X:J*{҆ nxX= t}!\r%!縉6(aHE P ki=Vt?>'d|N;#vG쏉>'d|N;#vG쏉>'d|N;#vG쏉>'d|N;#vG쏉>'d|N;#vG쏉>'d|N;#vG쏉>'d|N;#vG쏉>'d|N;#9A~s!)`D/T2W,sםR>VI(P3j>pVhY|CRsDEg4îMkn}[5n% :q yCD.Ƀ5gynRB)J露=ׄ8о+LC' kq04% 'Vx $C%VSB-%T0p3eiAqHsr ySM9>ʭ!5e{Y4:3Yɋ8bVk,zK74uet<55&BQyr~9&Ru~x>dnLM.iksojGV@(jTa͸~ SRͨ:QkѴYAVrb%R^0}EKh.Q+QCÛ@Pl;ncZfZL(d1\hf?X C˛ٸ%pxw40L@L k1tG"WL2;Ëׂ2ˋR^`Tp8 w;@T6ǡcfR#:&[hr0Э?=iyN֭ց|,ӡ_BAYPX`'?]"Atf;N$`UsT\0Ep.RC?85za*ZEAmbHA-aD%+ƆV#Ԛbr߆ -ji8Z-WVUJޒ%f*L]Ɉf,ΒjS7XXm65_|cQwxYqa:)0 tHnXth"({Zk#])){z~3:>=JIJўHs2.L룫@hBs8,`%K_x+򙸇2mɦ\j]cYkʠoNބOi7XPvĽ#MIF\b`e2mZ<*RؑLY͈,L*$Q"Y`&ֱh\^n9g{$FmQxǴ"#oN Z-\m,pU#QJYudl6yIIDqYA~k^fl P4u u-W8+ !q)*;4+Bq j6m)(*T\;H|*E/٨+i-l![(Ŵ Dć deE* z$)6]$r۴{9* -ԶsKe9upL16HS16̧/!E`:)_ C&XuB?smȯ~ 4tNefEZ,yyvA+"X?@3G6L@0Ÿ68nm#SJ%H,)\ Xj*}ȋ\(LæL,sp%~,C*NW`ŸT\4!sG!ΠInE)-{g xѥ͠Q /Kb:I DP(* 6]"jQQMXrxb'f+X!ՉЩe'^u"GSQ 0f+Y&k3JU&PL9~nfێU PlXfciU^yT!KZ68ሔ^t%2[QvWhl臐p}r[nVԅqXـtLF(vqnC(]7a@XV KQ`ٽuqQg.Ֆ#* Fj+ ,ۃN bE'kwXayY][i2@j:4Z ͒eysFQ՛PeeC-M@.%0&Z:CoFyF i{q/ᱹ l$AhOI[ &DMe&frq:?h/b NX-6Ei,;Mf#kc2ތW!.|NI([ 4 ^l6W2RތQCJ (e8 jiiG: pi9؀r=17ШBy6U~_SN]WJ2f]!@eԡ0-OhS #6;FKQ9%zǕ!K%<< F1 +(pD CHTӂL1+SaSK,{c+cݡRbVɈ1,8D`e煨x) L6bX=؞nICG(;ӂr"vX0]X^R"jD-9[LÐuM# {P>YN*+T${G]XB&JAD"s!Y5MQX3j64m̮2&YZSv }ui4cyA|&%a6Ѯc]3-Bk(iRjp]5%nYq b}* ]x|%~~?R?S?P~S#=ԸOԹ,XuJI* xV`QP+z! vd-^C9 LRA"%o1^ԐsSm/X9_=%vLMx7V99T"-Nؕ3+x7qiH4γmn[q9B6'L.Άx6{a~lD4]W\ /Hb+1_ad,B, [O(2$jSEoX[F}vz &XeE068goZ[As:qri2(5}h\@ׁU\Ъ5q5U[QɧE-8U&h׊_u `]g~2ݓP8SUeqv_e#`:j67RDH"0` "=9JmNPLq߀%k7W.WK>BNؕ觓)aL +KN5Gs}&(SI5Pr eu'݈՛%6͛6lٳ$^]S cSk;jk~2)w;9p+7{n}bߤaү[D:DW)NCi[@VP 418:bzJp`UGYz+R;_O@1y(e:HÞU|=J%(D}%ׅsׅbPsK o` W+)>5-,m|h3NN MPN } 'ViZ򺐺кըzRZ.$\n7bC y/dg_{k $a\<³Xz* jwL8"I)TyOtOR*Ppyk9"KY=nA< nfaw՘S'WB5ܞ`9x ܛpODMx*8 /t"rݱ]B9t-Ɂ p½NM3:Ћe;Τc-{A3k=aQZWZ.x^ub7:dA+%s6L-79H<㞵+ɡo'[."J1wt%9ĥn'zyW} Y^5& Ui͟o]NG)&j+"eڈ /*X.:G6E3*K_YpE s-GG>7U4-ѻ}<ÇEotbF "ȰN l;tK ȇȫ}m_hYhnR `l W_dL"yZذ 5iF5s6 kPJ 67ui5tW/kׯsb|PԤ ESa,+/IhԼ=YV *)2n#N5t"` &JmzF\3-f7MT# n$Ӄt jm(|UgMH u-/GPk2iT%Ibu 2ɜnlU[Ze#dH\"xj&f"&_Oh4c'`^ ᤔcbVgXppt> , uW9.vq|]\Z Dj̏C%asX`j~ 4ϴ<!aF2Ƶpbtmcas@K(%WsLkha8ϛ Y3re$0wF7U7Q+ _W[, :gS:~\RObQiPw@Nd5~K5t eh7y3U*)^ SƍWD @DA[sZ/ͽi {2|&ՌG#ӊx7b-u3>@%@S:( 4nU xeѲ`*KEwkhhE TN4یOInƮ3nέjT2fȰT񞹋ST"%YĵY)i*UljFH Q*أMY q4zǮq\QL Ro" d( iӧNeV_w8&V5@{,%E _ `}b@@蒀=+3H'u))%ݤ&EJUՃz]4(GG)GSs/cK>b &sjk07i wlc#yhi8=^:4+Qi-\js.+f@  j0D,A>ZTU{$B G!]7c ҕ>:(c"m}¼%( 1}f62mH6Y,zD+c=W1[ [O@L Y%\9Y+ _YyEnLۋm9gsqb,fhNbOu*'Z9)7NTm􄾿B5!kT<Rmicsu6䞸Y)2aASCu5) 0 . J"۝tQzV6Q2aiw7Mȑ}UE]Bƴ:ijHA?Yq#dB9nWC=\DÜZv:N@7X2h4ړyEȱ)cJ԰<( Uz@(pAR`Dj2nS6DiZ,r$X~_X}!\.Z(S12KQ( dZPNN@xD ]}`e^LH `HZ˩,J,|dFnCM0k2 ' Y b{3N-vD6Jkkґw}`IeMk0: Y Gp~a[@E+5V ck3;e5`QXz}GNpbKRmf EA+Ż<#E)nUUW2 8j6E5HP, e~$tAB%Cb1P('9.U/D7{'a@|BT0ÇsѤe ܧ圗;fX4h?Z 7Hb@T6)clwV鄛J$TP Un+J9.j㾨5i4ukAbW؉9 E %ckh1Xb?q`ZYg64ip&,ыW(Q^d23 M FeRfL27A 7 [uU\v;$B !F>{ iaZ9#R:kՓMA$沩oˋB* UFOm۝;nvq0M9K,-"fIAAnZlցZsiAbre9?NLzY\a7JYy5(,5uT Dx@J4|A!i,wFg81(Dr#^rY}@K;m]8%&ݬK캾_bE~2l NP(?ڥz7g\剫N0Ot^Cҫ^z3ϟv `bd:X%W:7&59ʚ`#bUa[}9PWn7dL n?!lMV^f}eq-wUhaF"Zm\]9҇ן݁Q̇0+Ѐ0 Hk0Y_xy)P K>x_(LN 3,CV#,xh6"vbY-(Z tæBtF@ЁU/YFH5f" [Ӂ9!юu NYsCMxn#5q2ii*++ v}tZKZj`8M^en:rn[V؀KӴ]=;Le7t%:X|ie-F0xfk'GL΋ ȡj9N )^;qʀf䃎#ZKL,zexaJ6@D+ lKpUSrrX6g# A>EfuV>/M 0(ioǧQW0n嘍ꛆ].(NUXÇ:O.[rtS8uzDre --y'偖pakA¥HX\wv6-@ B 5s_2 ~|BJ\ܦv- P*0~efJmo|Y'JR~w\87.vhN4jZj_9VDƆƆn\vkZ-qطGbDDD!~c[+_B W{Ծj^/n@KÎ>aX =iEΗ6R9^bޘ8ì֥ZҴ7ޗhИmˎxmׁ^3#ɲLLLLLLLLLLLL LLc^"/3tBtps% "XEn\F*j<m1/E%…ƙZMl(ּ1LVzG""{&ܸ,c]TH!J"g)&DL# 璐+CqtږG; PX4djL7@Bl =|UPJSe@P![tp~z.z(Uz2:-1.^( Qޙⱦ #eAy(Y*b5xQ\!d"d?-r ]o ܜ<$wmˉϢ[&&>j$T՛hS, V%8Xq:7m3g)4ZU LpSԥl-pցZ̍LP;X]O)[ U(9zٞ %P.'(hH˄GRϠ3A8a&'CĪ =Gn\L򇫀: `pEeUmxB#͊vou@p* t8rXc;K vӷgNwI=ܠhwm;ߪwT~t:sN;ߪvT~S;_wT~S{N;_wT~S{N;_wT~S{N:sN;ߪw?T~wt;wISZwIPsq~#Mˇfpk\5׆5WhDk^˚GhVj8rۗU Vj~ՇxD'O-TʮðmˉϠ޽qkDnbG$Z0p BIA6VP,PΈJ ՚!clQ.oJE77B$[.hf,܅L0/Vi"ѹ&(׌XHn+s:ŲYgXRtŽ< /T5L.U) ?Ll*"-b[̹pjV{X]OA %6>RKڠo {uh9I+8EEyO  ]7 ?@sedXjUVlcjR9gUb,R#B + !N4b#fH80.QpQ$NJ۔.pB0 7Z āz=mQSOjwTͱP  Y1({YL%%Vwcmd ;1r `N"Xg 4 Bi XKh@:8rjsz7B I@@S40vB45b ǰ:8rjה_3gu|;wW_3gu|;wW_3gu|;wW_3gu|;wW_3gu|;wW_3gu|;wW_3gu|;wW_3gu|;wW_3cx,pX]I'2x'2x'2x'2x'2x'2x'2x'2x'2x'2x'2x'2x'2x'2x'2x'2x'2=Mq59:8?Eau?q0 #KCoըxnypsQuvMq59:4A`?mB \qJ %u!. ~Cg  ) *BSCOYObD ܸ,vyBؒ}xcCQ" ^ ]GnR'a9vMK<N:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧNAIF tq6/v|$u1^8iS7`R?IP%'>6v&`-6AA[H[mˉ3.Zhg"I KI$lࠃuU4sȑJ/K?]$bإ3c)R֌dpXXSPp cXQ,ŇEKdPs>M.CM՛,+C2 pDwꉧ! "&%( .4 *\Rf@aJ$s.a#CuE<~PzXݕ=;oCu=SVD 0A&]iƙm 1=#l=G.\{) yr KC[@+3H!k`u^#[U*3@W㐌~SEEJ0 6o `D CXPزEp|X!YH>5dmFh[;/GsX9ʅ3U 6Q,­cŭe@` %EK# \Mj#n`m)D];rK.  3oBԷS,#b)(2G~TӄD["QUb0̡&xB`- aۗSBq\\ցE$~wE"aC XU^T5!=7Wd鄀5}d`K p)ugdS+h,y!$dTKK@MZ#ΊV봏2Y[k"Ġa6tJ-)sb֋[UVT!xl#Lڕ ` )(,`a@١bRk5(j5 #%lgm+G^Es+|",eT2),̰…;H@HrB """ {X]OT:N: *c>smGb\xQUxMq59:8?@a @ @ @ @ @ @ @ @ @D<+4j8rjs tp~vMq592h j7*"&#ţJ ;'lq:8?Eau=)`T[i&|Ba(d `P ۓ`Ӂٵk][B!YDlYel`ʀZ[m5jGi)rju)aEݙ?CLPpt 6 G^ ) Rxu1"$ MD\)Z@dU6R@D8bӊtb-Gn\MN} [,4Dl !4zx !f0U.IHl9+"KF SfEO&FQ 9AydR8P=U,r43إT؊C^{w(&E(`hRc1CA~$\%z' y [f<zSQئ$YW#-&kR-Fe.:%;yd΀zZ@RbR` hk{QiMKMDT/v-?MlPb:Cƹ9Q?'5)E `K1(VX&ZEp#L>Tj'M@, ^T$aAcE^W!)Qe {6֘48ȹxRG}%<2؃ޮT "T -Y]#U ƯάhfR>V2ihAQz}rAk# Q \Z;<ɄU5WVpAE|QD§B!xhg%:8rjs#WwIZ8Ͻ0Sn,:8?Eau?;&ܸveO ??????????????????????????????????????????????????????????????????02;0փmˉ'a+ h&TRa8L>BVⴒ•8Mq59XK-X atklWX j"G"Ӛ8+봆Gã.&?XCE$$6e&DkSAPUN*4"1(X]ONã.&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&OFGn\MN;X]O(4e4 *)8o!~,/aۗSEmR ND3 AWKy-AP`(Q̗`N rLsHH~p3qg{dvʑ(2໵Ts-ՌFu@=?$sFrB}iL.-œTQ)] 6yGb:,jȑbp֌U$IkĢN/J-DC3m` ;,ʲV)ZX@H 2.g`eM J@QlM=jZ(ޙ \0.2דMr&MQH{""8< ( R,ȈTҧ%$paL0;X]OEt)a!-L`КV C"^ 98Md"K6ߧ*cY;`)bI<$rK܊hTJ)+k0!,$g=%WU@lQ&^ˏYB8@[qmea6%\YzCvi1яP K*Gta2@ k{ϰ‰hS%RE`U oE,H.MKQVhPH»O /d7@sY/0QA֤(QUkjPXT & hGn\MN}m k襽J| lQ(2^vlbv!j <_!jnN ,LFG1,I`Z@;`障!AGls#jb;HB$]C1LFjl7½5GRD逑BMJf4 t AƴoWT+mꞓk0r Y N{7-) G6 U.a tR\+|,iHWSepd KIR5T( M%?*pJ*v .5] XX] n #{yjXktq6ɿ(: T~8?@Kw/$BZA|MqٯM -~մ;$LLe$qf-~ffdLnHr=l.,eSy-*1:J}؝q~Ms#MˇJ/NI xkt>bW/X} &5 x  uԹ&/HDƆ6/ɬ Cb/xSƧO5&ߑۤY=sKȲsV-I #DpHt2Y T(^4%#49VL 5LT#@)luPYL~GEչ;ST&WGe6"p:8ZJR{B.yݨ 0/Yn~K !fJ CkNv%r?` vCjFS)& ^1%#W%h!h?,.3p. i,e,q;}tZ~N\dm) ?6.g`2iMqǮm0[u{Tzf\ѣutOhz9vQ5||Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,X,pukNFk tptee[W8] (W&F"16I@*XO"gE*-#5٪Yf 0,@ǺXimug?@ȔWF+[,n KHa= i;u.;7pKT|5JRXG UKF=װX"[Wu0!ьaU&fϢ,SEZ29͐ Y`'q&Gdk }̥#AmU-+Əo.9ʆpx 8](4Ei925 e-n flxX%vW km$Z&SUJ0Ud`@H}(TM%]Sp x@8o|' 'O"F>ޗ|@w/>+֑k .1f;w3>g||;w3>g||;w3>g||;w3>g||;w3>g||;w3>g||;w3>g||;w3>g||;wW n6pzbqmjg1 X|{.?hEAB^p662"CJZB h H!NO >|ϟ>|ϟ>|ϟ$o @'=/0@A  Z*jX+WhRqnen݂M3|;ޘcƸ`Fa,-]1 )r]cOr:(~pu̢*D VۼC҂E,$F``*1L$\eJ.޸λA|sg=W^Ϫwin|[ϕs~B.!|.O{rEz {%&B5ۇlhµn䳎glx*Zz.ݼެ=~#̻ {m~:w( W-K kf=f⚟E},3|pOV۞ʫ~?v;IE?5ɍ[[7ӑ> OJHJ2w|!oVdѼ9MDmd?^rw 8 vN{ikW>3 ENqt7?gTX0m,b$[: \Y71hvb2.]H.;[/αuCb>M4w}@-EDllc"JPO!Ŕ(jjבZ&,%XRɥZZ5XS͵Z[ͷ[i;9W92#4(6$}fiYfmWXʫmRiǝ6gvmCpI(8Q{_D=Q7R^yG<M 1/^19 *gIYN#q;qg:n&?MB?D7Dm$FHU;)=Z#•3O3z9Q9IN+܎m;r2il$r~C-b=.6W%6cZz2e0y PJ״v䯁j%α9Fl|َ=Cq'm@<3'X:˖--T H`:3.~ĺ2rv$آm|>lxB ^NݹjG4amk$Kڲ̈́<`[˶9d ֣8k*PL$L_Q{mI9N;K8={j欌 'ud>o}K~Ϡ^ۓlDdEz\%xW0jUGSn,(\bW%mt.If297a?rFE֟^G¨< 4yXO1o=#{wFqM]=-ߥddzKQچy<[7 b<V,`cL hrӅIU/FdRY$:j|5> 'c5ݮTGBՑ!q# ʡjӔZnvbL De.JwcLeB5X%mqӜv$F;RӌL30TdPp)V799 JfzPq\)sB6KQaJ)eDB\:X8KBݩ"dԈٕ7mBp#4= TȭP4AF+Gр?|a'p"O }\Omվeg)OB?}jẤ̰!GTJ%+ZC$#$G08/*8TW6%F('g3c As:S<,ްK@hl4>-r]/G,#:΀B0n^{ }^˾^MzL:OKt䄊[F>Ak\͸gLwj&xPW({_a#I@ ,,Row=m2yUhK#3`c>:.CKp0Ot*̛Y<++Pm !. hvf7gL; SLe|I&$&N7W_C'RzߦDOKyJ? 84 -]@CB=SԣVDaA 葦S qdH( k,JhOJJdGH dV8E(IպJ,59쁤3l HXEQSHÂU!7I:lh4f5X6/db  R?5 \ eFz&ck"JK(5p9h셙1!0mu Ey,y]m}%SAځo_=YfA`6k2=Va4e$ᕝPʒ7X e`j4be(YFAssc++)B.lҝ a`d.I}p/\/? BHƛf2r &]j8Z{ʦ5+bDn * R35cT,E:IH,(~CAX+HJ7j)X}FN0JS͝mm@rU]E*۾MX dP $?N/ =R@jS+kWC߱ ""O>RYH"td±AQ'gF鼠=4' &fbbF+Al6lJT#˺rdyVܸ>1A.:[ڇe؆V=aWꡆAAMCXkswBh]3`zѤ#)lAzzܳ&x~'A!SԌq-x>&g|]͏;Ёy]: DA8mXwp{;PI`#x?AL"W|udPF:t,V RfjP~ko=&H 8@z vQ^Sr ooj.Px*djent_4sh@,Xh.!z9/[@6lI\'&ٓad|RlxNRiRo0NnGcle߸bFzF b,*w\u/kdAqǂ5˫J]Lg~US#[#" o*CxOmd?T`%s`l9E^An۳WPZ)(9(ȣ֡hR(6 \XDm[KR6qD>țU(g'^ɎC 'ph-.:x1}:-6"97:X\76tOa}t^7ꔅaK$\fvvK~8UzGn_LK 8c⪋U6tw5tŨp&,?G2P|X/CEnrRn,ޡ!Ɓ,qAǪmTW&[ TMʕ^|ʐ ң}R^Y|!D;1`:ݨ 5:0СWGnŕ):weS&Q% X&-`aHip$AnKa\_Pcکt J?d~?lq>%^/JGCp: 5ƀ)sN)!:Yu)}Zb^̃(9JC!6H#hF%J(b-=Tzb3AڃtH[,Qې/nX%^nAJ]eNL2 DN0䜼_(]^0sB6$ $rx6fu#0`7t[hHllSOJ]a澁e_Vd(,u<| y^^mD8]^qp )_i"Wzۍǫ7lKdǟy$G AC7tO~΋a7VO)B)qb ?p#8Q%K v jG"ctf@ մ!'64; i0Y4zjuap,67x=O94 HBH'FPel:(΄0Pj$WG =)ӗ)z[\(FֶEؐ2 M aQJ[]|mVwU oM_dcG!PGNT]86E){Voө'h/^(f&+w˨QdQ !P 0I)n||l Wf޷}A⺔ ӄj%vs2aaG%pYgG:vr5P7M Gbf15md0W|!7uP˟Lb>>_70Xo]b Ij'.Ǩf-Vg綨U22w|@x"S~XNѼYBh7AiXmV ] TP*jj4"3:i(Ey:iErKGZI3i7"ziCپ5#xɱD,x EHI3PȒ4FRY뻥C:_J6f2l >6֝uٝ(Gd5\ o!$n(y{@ݕr5QL79E L},Vd0 %&ThJ}ٰMsu cRꁕA@b`(bH+w*tWӉ__T}MBYT0܏:;Ly6c;iN^m2\m2] > N=8y>zrG糍(m/KuCUCPBN.ͤ*fDٺ S.7PdO泚Vj!ʮT-P@!#ųbu,iC?Mئ ٔǺOT PUsdR(i o= @U̅tOU۞b$x\tT"J'`FO#eF/CQ?h3 s݈Rʬo匩+1}uqx6{DeP]r3Zʬ}"1Gp9U+LtiIn݊@qCt> @3h[A]OnLg#Ãn:DE(Iʪ>`7zz8I}l#Z$*KxLt)G=""iu)8vOf~#"-^n2F6krYɄ} ?Ԙ{篶&#"RhA yC36"u#)z8zazf>JP&p9mz>;0'$oĿ4 5RWͿa;oxTȃ|IOBiBQ5ZnA#mG=)-<W4613_:r핍t2;a7 ?M0s3j+o^ /s)0C9x$PtiCCPICC profilex}=H@_S"-vkR,8jP! :\!4iHR\ׂUg]\AIEJ_Zhq?{ܽjiV鶙tfE }a2YIJs|׻(>Y>xMNNu Screenshot G!WbKGD pHYs%%IR$tIME /tEXtCommentScreenshot IDATxw|\ŵǿsVI.6 ۸11B)# !Hn5ȣc1`{EeK;֖]5磏es;3{~sfQ4AEeUegZ϶l{Wt4^~Ern[1   ‰CLr  (X tGLt  8Z֘UUx(/G:5!jSc*qJ*4JvTP1$i0>G Ӕ'ÐEAAD)+8Lm[p>&6 Gm)COu|˳7Qg:giJ?ᩪgX@3yV`|(|32NTQZc6EU(L/ trAA'`羸BQMI}0&@k_Q +үSqּ5ƻ{1eeGI lm֡_z1)P6}j}.7I)ŀPW8X]~7=I|w84鐖.q@k=$   @BTg.R_zd[ש[TiL^!8h05X|ewz[UwzQvaӆX uBР^?waCO֩u+zBaal䀡^Y̲UKY .>N<̂Ѕ, Sh  tO6)-ôB9,ӶI^!ʶ[P6IKpz=ʍ/g IK@7_m){O1[qM]׊o1By 7m~P6 PESb%-"`۶"Ahg_zчyч#YAA|Ym\6]%:,ݛm^S[۸!I-F7QV/n'(t3Kml>>G+uYVˬWatRp`M(2C]Nra^ +RP!6YR8N<555<YpG$tYBa˶mlm Zk6o]AAb l$BϺN-WTZJhc\+UښJ6-=HEs]ptgPQy7=-%֪ㅼZUCXœO=̈́9svϿwҋ.-owL:ysD9[ś Ot`AANKPMyzoIMn8mfYj3 *8tCA_wd#s2-Y|G+5 eN9l=W ևέP]]͚k߯[mC)cFٺ};P='Rlڴ#Gk.ӧ7dϞ=L8QRu iSȂ4ͅ yd\sUFAA%%%2bĈX͛ӧqaN <o>.R{Z]`p}${ZK×5ajT^#Ϸ53ɝM!;Lma; 85'=fb b"h۸L3 J뮿QYYŲ>C   Yx?W_m[lK.mfٴidKyspWȂy7x7̛;ŲeYB?q]0  4</]V,.=@aaa\wϲ6 *g(ym 飔j̖SG)>琴߸߷\/M j9-2Yig=Rw[hAgypM&gQ1qLZ(E!?pLر6M0̰y4o_NiӸ'? 1l`&MȌ2(p0iDz}|1 >X H]̫~r};R^-׈ùJlAAzh.B}Y84_~RF52@퀁_|Q]eD"L<~[-/:Ҵ[,=>n$pҴ[iaICY /zkA,kԸ% QPdDVoBpMN<4)uϿFq闗RT 4xBǶq8L\nÆ,  B\1MKvQ[[s?y8hHXֆAic''{uQht@ɢTNܲW9 jKdRaʢ?Q{z^Ts!4*fk#N&2w`FƩUe5{%YAp:#2s 6WyU'F2ϩu緹9{Y\ Źg锞,t 'G'1Lý˦irm: =]A1xAA?@0O>mۜ?w.ϟW)a!`aR1y '½gfyvj*%'GYI k̚ 4`{}Rc|DT&2g0>uT1$s0>G #{E=*r?GڼLtwn mvlSa SX tnNWxnܺS&BRcƎ/n 4o^.mۼp1{ -MupHdnAA6TsΛ9/NZeJaP}r*lW*qq*M1.uln uIvR 8Ժ}J$Nz(7Us0HKES@ZZZ$7SOda!ArRR!ޫW.C`6}z+tO fO?ed  B7ėpuD<qat  a JrZ:@M)#[V/X{h9篑7~8<mc&cGfȑ8>Z /Ϙep8qo"?2wy^AA1ܲ&VbG샊 O3QJ}u)L#f~v_wRɕR &݃Xx=LvVƏ&t9qq1|xwAAhTCnQM+zRq86n/{F&tuuu5%%v% =5h+`^  ],wq=w8U(P :vTeEo#,))$yY#"AArNjh_2.l'^  "M@Fo,AA,ČRr3d ~AjjkAAC cJNIׂCsfF*))IWTBmK  {϶m-Ր8cZe(AAQzN'    =˂   L{ KAAx#B#dYX! ˶Ѷ,  ],+a`aR)Bjgg&WA!F{*ZX)%A]0 ӉaJ"mXdAAh溺ʊ jjk CS(N^4nD4 q='|*]8볧aYյXi\NII,_IJeAA 5%۷`0ײN'yy}:"{mS^^Eyev++Z 5%n@r7n5"AAEطo_(yyyI^OBaR 8\\$;+{NX|MmQAAÇٵkwJ)@Vvv\l2;^oL盦k9|0[nJRRRJJKHOo}!j:؞(-)% KCfF kٲf^橬K'km۬XvʒիWp8=ztex@ ٺu+#Gw<}>PUY{Yn'|2ӦMr%^֬]ǃ<֚믽qc$T(vd/㶘m,*n֣|li_NzfŽZņq8L Go>䅗^kib73dP H,.cǟo_!ib mkR|\tcذa7  @{U"iSѿ?>?Yi` 80&{Զm-W_}53gt`,5kRZZʈ#ba`r `ѢE.fmw|~DaR9o_?aѢE̙3'Ypжm; ;nQ#Q"1j"%9TVUuDyyUBٲl>[V0 &I1M UZ'[?\ ]1X>V(yN ssr2;w$T0[ŢKxL7/O>pj6mĠAbPb~.+p͈}L*\< SOcp'ӆ+WzI=ٳgsq#R8fx^٨׶mb1žuL8I-h[6յ|qQ#G%~R~]M(w`d҄1 zJJv݆vwB!/y~2sq:\7ͯy3>{s<ؼKFӽb Cff&ǏgunYV-_zȑ#x1{Ct:HOOoʊ rs[kټy api"n>3lfĈ :4A?@Mm 7nK/p}b&|xye6=kK|_*&a_^^vO=4~[n;wF:… ػg7oW/"msh"RqT4f[<}Z;+'x {7n7Auu5>>h$_|n%%%r_ǶmJKPSSCee\AA#kjkc:׶mVZLqalه\6>KKKy'9|p'`¸QYY< w}7< O=4oC !??3h@qwOSVVw;;(((w<>>`b׎ iUUUU9^+[ s'E} .+C6Z]40 L`i-$eOYuظisDēvy7n̳ϿL0bѢwZn`1!6lࣵƲm$)5%( 7icFz:?Wz4DN#GѤMOb-.kn~}=r {/zs}硇O#{3<ӧ˯0g\\wuL0ٳPPMD欳.iw}\.'w̛7+yG3ydfΜG>bکdڴia]tk׮eР\v7J AAG(a2y2K?U+xUdddpmCuYg@rr2s! ~JJIOO/gƍ}Y̚^1Zo ]uUXŇ~o'+_Jٱz[+++IC2XrиH?cASNf|b|ТYnJ) aQżBn^|*2qZkVوmL8)ǵoXy(MR}S}>Ԫ|b߁$'%Ko6Z؛[3L$ˋ/qcz$ѧm?N;^za^Yf?j߇SLɬY1cibӦMP[[KMM 55M^4 ƌzm9ܱ~N=.L83sLF<;l{ IDAT^7~b~̞kٯ, YXifEwœ@0:N)&|>]M}/~̙3\{OYm9lfϞݩns8aٌN=vיR}^XÇK=~?!> d?t09\rS"ut蝮+;+k><[3OTVGz8TWW)Ɍ3$oܮeY8PDN+ KJ(*:Ĉ'xm.{,pq1VZs.i9nVvmM0IJ,NgaDM6qw :/J g0 % q7t!;+>{﹏~k={X q8ZY/W]Ä|עhgʤu̙3txb&MHrr8 SMM o6;/w ޔ**8%=U%&ҍ7`AxW3jԨ֟0V^ iqSzdWT{>Avf:# b1dW_A_힖|G{C fu]HPNkÆׇ?Yޢ Bߋ}kUb t˭8Rz{1tg `].|Zkߏ/GJJ >_*޽'rޡCϨf[]wɏcΝ7Iaaad66iH`0qXأ̿{ 2hi  TvEc +l8neD_cnjJɸ̏<<a 3O/K5۲,_++ڿ46 dfΘK'P\y]B,Z?ӦLz 6 ?_|I&QXx +⤓2{lW\qJSSSødl߾kFq ["--k<|dl2)cʔ)ho`6_m^/5U4QJ̌3:t(^AAXN8ry(**``%%8Vm]B{m|e i[,[Zk:LN';vfEkך1e̿hMO X暓MMq8~*++92ݥ2.,]v<YYl07f_h~}x=.k7,Q]3~ q9˲ذq3^qdX0WIB&BqLjkky^a̘>⬬0 "Ko@VVwH*˯z"sǖ-[wÇ! ݘ4߬0 &L[dmQVVl'iiinFݢ06[Jp={!s0 JJJxǞ8?rsbמps9szT3~Pc5@ I^C {]mٲqN?tNFff%%%ƛlܴAT6 v ,Z4=O=[4t:>${*+xZ̳&''~;dddݦ]z NG|=mYw怜qƶ~q˗/g֭9}HIK %N,Cxʕ)+PS'G"dtGXMZǓŊͶj:/9-fl6LPv͊>,-_n%5rDܗa'D, 5XSБ "AA8Q(>|]v\Uk*l( +;8>RUU.~$'WzLhWÇٺu+.x-[38n).BJyiT{nYS0B{{!Jx}Annfnmu  D#vo߾QJ){;%R$y= YyF,븉0mB0pqiVn'YR(XB!ĵ  Qbhq:%3+KRxܮv{6m۔WQ^Y iLjjr#bY   _KaJKJ ڤ80 223ӧwT{E( ݍpZjjA,;4L\.'^$OXضMfAA5~2*+*% [bP8)>_$Ă QݒM8>ڗ'u=h,`gFAANT{*ZӸQ'ar:q8LAIJ5 YV²mm:3*  Q 00 aF e /XAAX츗LAAAhAAAF8d  t,FB[oZԑ*A9l0l ̂ ByΝh"t|ˏ`t Əj}k TUuolDs*/NŹA(~NgoBW(o&1>[tgk39ݼ45Vm/b,rl70VV{Sq} *b<QmM8uN`nLdzL_#\ŻTFή^^%;9^&&@RmƶjƟB5i՚!݆k< VnTG5tl1 hu{`ѕwT馞qtHkӬV8Bu3#]r"9QkE+ODn+qA"Y'qN+[Rf/6ڔi,&iVl&Lzx01V9qjnNt!tkKNWC bh~AA&SSb)ƨ;h uhI;y:V<ZdiV T+s ֋oLvV>1v&œ[y=ޓܨL$NOoT ‰-2F6$a٬LPT۟=ɱhKt܏ۜcK 6D eAכ BW`YqYŊ())mӔd7q]Xw紥o˘͝یx`]['*7Ss'a^yٲ,^yMyiTn$/Ǫ-~bٖYۄu I5n6akc?T{};|1PcKhit t Љ79EKyڛh a 5qAĈsԘoͳ*m-vO4 lO8tm9ݮ\D;8IcGyqOPx~IKx$)&M0M3"\λ7.`f 9U3=6WS{N۵79qo4۟KݺrډjjX0OjOJ B@گ  ]T0ۖ9g,R܄yT V񻮊>zTlϯ n2%Ͷh=MkX[Dm&u](reQU+DʗdR`GHP `P6a4[*#NmˤNMXS"ے/Y7Q^MՂXQOψ|Bg9)ɗ, B7>ע9geF9VrKRc }j{tg/kK;ۓ/2txFS /'9Q^I{{Ly2^vRk`^ l+zZ$w#(%ۄ-/_ݞr11?|6+d OaAde6-~`^yw8&NbTu):sQU3 &6k-zW-DShvܳs5-ce2fQ[O(GO(.F>Q\wef Bwn.;7>׈';77j+,( \˕3$5鐆Ŏ(X凱l=uTMi $ 1 SСCTVV1h@vލW^](:AffF"49bxLQSѬLpMz.3 wۍS $>#Dp0~9jl'8wy'ONS۶ٰa [ne1q 0dS:݆0F&N3 :9S}Wu85-Fnnq+ ?+G0xe{لFW1za_Amhjͦ͛ٸqZgNݶm_ 阦֚#GP^VJKK|8tLٮ  rEUUUضMRRKrrrZ~?>rJKJ"55e[o1kLn׸nf͜7.62. B ɗ%m3NpJQ/5JC܆ky|(SmɞdSJ!JXO~SN9|%6n眳⦛n$-- ۶ywbYgq\CRRRƛXz-iz~_2c ֬Y]wPw^vm ~RLm6VHMMW'OFknzFɋ/DMM-9rϘ:u*J).=.*O= $%'sӍ?fe]t0 ,2&69'xu/_ oGlO}Le$%G1!Avuj۞=\U;0ӼNIhw)m086c6NEv/ݪgOacm-ZXsB/YnhƉp8߿?2M61gyP]UE^dee˓O>?T8p ibY7p:h9swPQQAzzzTp8nvZsƙgK/o> @NN7cz @nNƥY<RS}'72rHx1bx$Xaa!7䧤|EAM-l`Uj˖<]GC4Q2鋮`a X -)^}#cƌf ^E{#[.v3V6)vU.!L/ qⶩZQUcqڗ&,6jCGLQҷd!Jq գ5c:Ө6>^bZaN~ʼn'9.;%rߺ~lG.--eQ3 /v^yU͛R Uuh; (;RƯ~ rrrm1ھ}[mcDG?8NPXXH(,Ͼ{F*ߌ9MM(,CqE^rٺ&W)|:2O| +d, BO\ oW]ԩS)+;֭ۘ>Ԉջ 'Ajj*,YcƌaϞa,CBEsXvIRvϽ\r7xHKMcܸq{䮻ʵEdal6@o IDATⷹ{8p4?A!0x:^&6IS )C̾CpX1L2P;v{\cQ뺟DXD:p~8vL'Uf@&ƠiRd[Қ~J85*fmJ7elBGӊ6ALpye>\9KDѪ\mU)$PfJ~F6YuV`7I)_R3^]Ia24G7 ۲K4ڲѬ+=Id:]ͧelY'r#D B1M[nYw~0?O"_*̟OYY9))ɸ\q8|[k_Luu5iiiwsi / ._ T˞M 3{TTTK.xz웗򵋿Jee%\9ssϥ4nwcL~=RRRBOcqF.ݶ:<f>x4g'˝m/Wh!l`vrOKi>}@3.PM_[j`WON8)霿eC?b kѮ֙w ŅGC359(ůsِOIҚUe{zRr4WeQ3xkf.-;*3or)h4{*5Y 94;/z{'/|!;'92~Z̫N)eРZg111Ĵ]h =q~h۔纺bcc,0z|ч=Q$FESXKJ<^jvy<4x]QDmz)E^UQAv 5j*(پldSco=yeK24!kN8swe%۲P ʍ_ZnmDPXDz;y:eb[nv4LgesیA֒ݬ-In KYSՕgݮ\jTU0-%{ C=/猚HtSð Eyջ#jc^e!Q[S'O⬯| rq%]&8*+Sc9;c U\cn,ʭώ A3CP9D7[ 0d?kyy;X6qoRRIPmGO2=\9:nZ1SUyxz | gaz3ӳ&qp-9ثޕŵUpq.ر-dOm%`iE+jsDBM\>y2FsɤƸi2|ٵ+'u=OYu0 Jk/}x<<{UL m2>{W9T.Wwno@\Prrש.X_ic'3.=Qve!k;z/,VY:</9]ſKaNCk0Oɓ4ip-QfoYNM@KNnV ԡy`o+Pע\VLZl";p\U%8n0~8d?߻Mu}!*̓[!\z`kx KCT;8R|,ߛ@- Y -uo)+!-6>ݵCVxg>4DZ)ePtʈ6fmz;U܅6/គ-|܊Oi2 2R3έm(0CtONQ>/"߱YY_KA^c7L*!d[ 5ŮC=u]_ZCPj*\͂q\ā8(`ff62زo7++ʤ {&KoHQ␁PAm$( qWMƩոXűIATꦻy;w#r{n֫6+G^_CZǪx7̉_7ic67/J/J U\Kt_<(բg[9HHij}@{p5{\K[1I2m _Y`tOvKlⶱqi4nvnxYDk\M޶hL8Bn\U$=eŌM5+QE"%jTz{}d W=uғܿ,H.~5BT~1t,T63omlb 1%vw7mkml~:ju۬]him_ɷ₴l&'2i‰94_EB*ΈI/31LLX 7.nqѢ͜0h8ggI鮖 T?GL梬IgYXSVC;ahwoJngonnèuXnWdOz#c*u)W/a F=/#li-6Ї q]ثmk;9gt& =#IRh?h^lz+B!n]_Ray1U>d||27f>16OmgGOxjaځxj_.glքOY#ԠqeXeD)+GN܌qܚ1;W=u~bum5\!~:i6fg\m+qg1B{uZuō'j* |'e{ip] z#BNX6P>MBOVբ4ÏN Z[cvpbajzX)n JU9!MڹԖ_kٲ&Lcd.40ؼ5Ugĭ\iŲ1V^Ux~ʵ1uֿBѿbnLΉ;|{iBy1s rna|m+!08ځvG(SNA|w{TS΢@iE[7|,CcHjoUMj?pS_͖}\K 4bμq({j?JסOJt,C.\I m *gvSV8ז靝T!s`oU9 Ym۸!= 1 fMߔUI[; K7_%Q u''1|d%fzf6Zk>߹ݮ+c]!B  _Gv9#5 nh;VAvZ4η[JUcgDy)њ%=gsBV禎D)Ŷz> ڼvm0+e2휐Ry(oRHM4h/ 97c?% a쫭⃊}iޅ7TmB[Q/[? 4.2L&020Llt{wq]kkHgZf6]yQV|{o X́0vlly ғ|dC$ܣv.0R˓(O. !DZc낂 gWSw'՚u~@+ve-julli4`.sp语]\Å8apF&$h敮^~/hcXA,ڌ 8Z7[Qft֔5fj*mu?`qXÏ'Ck=yk14 WkvTX4q54^kulcZ}h񅒧]ܹC짜[Sv6QBQ!MOǯ?$nwc-c7Qk(t*ړ+ _uljkxkaZ6=S5Ncr>#a26:ms\WO2s#cbrm;5hV9V֭UZiPZ<նEENkbaոWp4#BBjutcu;O_{[/΁>_G޳՞0ճ'e(p_, QM+\(T8}jb48vw ?ŋ v!hI쮪tQ-؝tWkvU<[ f wwYW{ ؐv JS\^ȯ(ea6%:-kmz) q> {E!zT!:0 ST=}\3Pғ3V>!0ފ2riO! E>; gFkj"vΞOۉ*W tғKuړ,%-Gg+M!1v&Oz&ԝ(_$qyڳk/QPUN8L8{2L !DԗTrBcƎ'$w*8GĵI>r~ۥV^XO`Ĭ۪H/Yk9VS~uX]康ꏣakԗa-ǔCM>l7N( ;'Pp*׺rQi_l OҐwu!1PI%'*kl]{M=UZ̸m8V|N2yhV@5ss;JHSa;^w^7yy|",:1x$.gl_>I} ڇ/x$78wGNayq!CxF۩²|;! N!*5K"?{xt OOöb>BK1յLAl./Y~jkdI>x~^^˕U~PI'vPn {mA1\6/[IC=08 :?߶@yǶ~ɫ(80 gYBHE'ǐv^ :"KCvyl9ԩhbA8;dT?"}j_X>I֞?$Mϯ$[5gs%( !DwNbuܥmMujdPzEVBqWpJ*#Ek(0T'+;B_cqav;nvY GyM_aݣ ;Yu֛;Y=BaGNް˧0w0oRw_L8:d>8|ɧ,#XbљI=L|:nZAwz9 ;'ۉ !u})\`6>n]^^w'M$3#Clذ?tn뤣铣!wߏ}V idD~s#uo#NX߸o/9"#h-$4zۘ.Smcssf-a?5Z_ay"aY²e Gjhiqa3$/999L6۶ĺuXj(sy,]aٺuO>g}a`;6x̎p}#Gp#Q^/GƶmnGʕ+~?_}w{,RZ駋<׿ko js(tṿ#,oInZL! ˑ7"ent;Vwy>Y:2BԗGU@Zc.+w`(kuyN\SMVOUm}SCQ} ,;pa90kٽ{< wd?|~!.J~Ό3z=OS$!!~G(,(`ȑ߿e˗o_X `ƌ|2F瞣;s5WQ^^NAAcnja$6lXeĉضäIq2 IDAT]ܝ|_3N4M.|{o>yy8 ?T'CC>zY=NRHW&BʓwR'(+w#T^8ٓܚ5vRDhХ(j'X*(ěˎ˲ڸ8feY̛7_zs9?/Z9FeYرEpSZZ[ذq#gyaknmwߍRQPSl&Y#ػwZk-ըa6>bmcu*_߶1gYDFBz4th2m2-: t%Wi?$ OQk2tL<}˿` rV'̊+/gܸqTVVb -[Νwށa2S~ioX,wi8C^n>EGѧCg_6LѹQhoI8 ^q(3K{orO;K #}."저/Y{\jٵFӐ mziY 4mTahNLL_?f2hPJ%`ǧqӦ[og9<>CJKKď~t 999xM>S[oCAa!YY#E*D#_/YpUmn gM8Zx3iw-Datizo@'! :*ޛG} 4՝$3+S8fĠ^J72fgOg{嵺A_ٗ¿(g+L& 1'GP[WKCCncp]=BBWªMB<7o!YWٮ/6YRq5lr)s9S`+xeL.= #a7lf-BMv]q]u[IvKo+xL8mWn/}֚J|ROc8l[NT*0 4zDGE勎FiaoA!oj$IXЀ`X<;"1FO`s+B^ӢS-{U)޿7Y0n8?|!r3qqqmP~SJm78&I|L,l2M˲&CsP>س,Xѽ\WWG\\e!Z lmzM`tP~}E"R>? ,<^yxeY!L/` Bj BeXn[U0CӸp'ZwKl<妿^\g-'p cqqqEb70[^7C{= 111HX^y_uG*d!,┬1LKdQfܰJZNG!rJEpZBI 6 `f0(77tE,IXn1_PqW>[Y?[1;Jd$%R@7sNČ|}o^g =NC!5/'D֋}՜GY.+z<i0 wmVt^Mc 3$.`@_ ߜ4S2Gs:z4Oyf!D;[OH 7YA9,&5#'CC| aVnYwnfr A0x-/hM?K^Bx<)'"s9j[dcy !CXgI>JbiC-+,f 1.ehSmGݩ6^7o.u^@0hK+=aaYWY>̰hd&eI3JS=ucn镞e 8k{V7i^V!"5(XJ V", ِ oR'-VnRd*+ӳb,Ƥ uz {E70oϝ7',*++EGz+0"D$N-y !zE>mzj(5$kȤ[f~S tsj1OeOtv555^ l6߇8<Ӝ7oӦN,DBCz-͔\6u^}uXlX(,37DEE1vhYv%X1$<!D 8B!DIleu)͝ŋo( {4"$HRQM_?| *EyA1LD۶wP]S,/J}}=ay)--?;wRZZSzM}%}ɊUYv1$D-n]0# mzghnV^/v>D~УؙKzZ}o.YYUWOQ^QA\l,_sÛΏ˖ۙ0~\HO·4ٰqSL棅9yPJ1`@-٣(,,"+s'4نA^~i2s,#M)+BqО>]Wkxkmk@So[EE)7pc a)cY(<"..锗c&i2l0R|>Νw@{ǟRVQAqq 3i0}0_9** mTxuXZkx<\?Xȥ_HJJ2˖}Im]mrq\(RFѮ]lڴǟ|o!ZBYB!CV @RdY) !A9t[("$j( }mjv?a47~֮}%1d OamCٻObB#2Q(֮صa0u$>t1%hRL(#-^JzZ:'̜i74x=vCCCp"IϲBhTBs39vzV4+E;KhU֖76{=ƅEL"))믽 |{>W_-RE)^ߞ|a̛s&iDEybjyaH 2q]OcC){4zQJqRZZ#=0f(z\,d҄<|pg1 SO7ߣVk!BTk9 B65UJINN-QhGFb.}~}mbHA!Y}4 S^m6k(5ftE ^1ofMc]qLl9- Zk8,/p|HoBr[Zey9=y(g &s C5jU;yVQ\uU2 O' Bq̆0.XYEE׭c̘1 2}u]r)'6x¯s{)l0 B!"9e( epLa?>}65x\q4<ͽec6ea̞5[MM qqqXⱚ{RضMmm-!z~rBt14K*BHX>qwyv'̬nYTXw/?-7ẚ˯_tQp ^׿X0ZkRR;a̙~r;۶laϞ=^%]Ɗ/?ǞxR]lX9,^r33f矧LĶm>C^~%jjjz|9k_#** {gժضCZZ߻;_~-7?Ǡs9(|ܯ~(\gߞ7xrFegsm2lpy7yq|>W|J>Y]!Bqa%,YO>cƐɪ+{4q]rsy;o~!.Rēl߶ m_泥_;W4MnV$wW0 lf޽h4x0?/0q;qP믥Fk͢O>>ƷG~c^|j]X;﹛>(ǎ{qs׽5"K.q))(O {__\sݵ<أ _u/)9?8Zk,Zċ/[nG~W|Jya֮Y#J!B!/{֬YII7˲8ywy|_]0M8y)(HMM%%7۶xw0Ξݻy:m*,$%33Ą6EfVq$'3b f敗^+̳0 woO.ܯ\suMJJ rW›ή"&LHLL >_ !+++8:TMM /<<\=g|+5|8?>g4y2W^}51115_z)> )撕7*4Ek-C B!-o2x<˄Iٷ͛6qwl0HH9׋i %|>ƌ{>Ŵc{Q[[K|||؞kEYEd[bܹ5ge3)'+Wg^N?VQa!g1-kэw夤D^n/& Ms{yzideN!B!B ˽e۶m_Ӳ(,,0WWU'2eiy-*+*<^f|1j(bb1ؙc; ::}Ma3ƍϣ?˗ϗ^sʫ"!!AޙB!B ._|ѣG3s[䜔Ăwo_ 8~? 5|>&'QSS3<#m[o'${hRܹoso'%J,*[@ @l\\+hMIq )RK$wg.?OŹ'ðB!GT[૪w~K/s;. dڵ=ZPFegmh)-+?7g9 zX^/gm^}]LFegw{_mۘᤦQR\k6B!BYٳ F˿`޽>6: !B!D_Se5=ƳmGC] HHJb1rdCk͆ Y ]eڴi8u3f ϭwuYddfZSXP֦322:mIe5kذaƍc̙ٽܝ;9k^uY$'0v8RhٸZ-Ϙ|eeelXBӇ1nx98ԼիVgF`lXad@R.YL]]gϙCbR˗-chj*#np6n@A~>)1ydy|㤓O0 c :4&&C5UJ{tK,&&FNo Baٲ,̝3gt0~v]=뢔 C;s<:,e!,D_ 0}:!B<09&\Kl⊀7qa',]6m1dhkwx=E6)LSh eS^59^,1m.Y{ V8e9 5ܽ'O"}C&dyf)f]^eWq(bc-y q۷]rre!Bm˶*/S͍aWVEy[zw|\q/ xbuӇ$o.7jHWhrz~r5gFos 5i5wyX<_>k`h .ϵpQ,MY^vyz.՚j8РٰO3af~5oN}1j)/^!"=,7VJ5U.mnWRR:xB!đQYQ0(eJIP$4.)VطbԸ,j3{ъ'#6Z1n~-m p|Q?]G\bNN+K9#⮋cP |oz&e^i)_em6_E.A1͊"!FqQCBb[l4/xXF5}{m B ayΝ1yd(**"??֭[ǬYHJJ|222HOO[hwuQJa{m(z1B!z̐UpbӀhbS~?|\G_%<ێlSX&xeѰ$,x4I^NY^PRTk5TZfp WAkv; Μ.zCM.aJR4~0zZM,Dće۶?>|GRXXH hsR?JQQ@aÆqx)**B)ӹ=zt{ضiѢ|j<}C1`nB!8d 2`\!k ˷X{sy:Y7Gh໵-0CB.d$*j5e՚􁊔XWZ\tR4Jmiit"C\kTū7ųuúnx=pԨ6isԁgD'sE)kh%aKuZk/_Naa!ܹݠܬ6 h)**bڵ=fquYw}yrM7m۶NUXXe]իsロ'|iYB~:'x %B!QmPyxxIo|^GNu k~W!Lʪ\V=N6Y5 /pjݻ~@bSV]kG|渚'?wdp/i\8"eM^SRIU 7ؘoWׄgO?4u48q"ÇvZv AwL:۽ˎ/rsEEO4^{5nǡjk@ ޽{ihhm PUUElllpa̚5+p]E\ץq|(p]7k|jkkò, B!*ߝk'xYgsՌH6fiZ ̣kjXbHtgNr>ޫP9˼tvn}ՏGA&uQb@Q= ^ETH;ڂ(i(:\!ߞl1sC6yq>'*fhn^z1jjxޅ0Mgm3?4MqI'aJ)lfٲe;msFFW]uIII:@ ^9 7 Zk6n܈gƌAII ?<| J)&O}xy뭷ضmL4+~͛7xWƍ&==nu馛;w.w?3gnF˼̚5L>sq,ˢ^zwy5 n`2[D,5$''˅!#'AZ[QYERbBr\(֔h&)bT[SU >jmCƕWT:BBӼǬk4-渍J;l k>G0B,4CΓ@e&j|5`wQ{-);i E #JAE9*U#X*G~DQkBHHB IH$My I ܟ$;;}w p Zd,$]}_[•_SF~P閡;wܖVEtt4PTT=:: *"qy?Bj$$$`С/+V+|||]???C`X,2e Llڴ CDDcL<CEhh(w,o Ri&t:,>֭[ѯ_? >]tpDGGCe|Xv-^{58;v࠹P\E(]pmvaڋp}Q0Lե =5pߦ}d_ԥ;ihuF-(4* 5K{Kh }~ m6ӕgM}^Qヹsb8puI}vj|عs'dYF||R+<<+V@ff&QѥKàA_W{saј4iNvСCS[vvvرcxbdff۷o3y]'-6t BFFjѪU+6Z-Z <<\&,, >>Jر#Z-<<<ЦMwxx8dYF6m ooo @Y( pssCll, |||ЧOAbB~~> JZHJJѣȳnj:q:Z3ZhMM yJ8tJ^ܹsAV^O>^@tTppr \(dաCl۶tZBXXDQ벁M W JiJ߶m`pwwǮ])S4غΠLDDDWq9 n |ʪ*.ya_oiA DQc=VZСCD۶mrkz {s|En'- !EEE8tRQZE<R[EmnDnt颋ޫ=kk arpxMİLİLDtgaX[F-DDDDDDt`_"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"";, D>"e"""fN "~1,, $I ;$IX,İLDDDe& VZ0L[si6#nRlY&""""""bX&""""""bX&""""""bX&""""""j""""ja6 UUU@MM-YX" NNNE25#$8w-=< h4B.]JŃLDw AgDdYFnn.!wz=كCfVۦVŅlY&"""jj|w˻-jɓx'xЉPA$_mPX^^Ixǖe"""f8w9 rȲC۶mOD DDDDpΆbVEnֺZ8<_of3RRRϺDİLDDDDISNտRO "" ڵ7~zݮsss!IcmEYe6 V*G|||vKx{n{-ڲ~ 4/xDEE[dYFmmm{xx@o:(u^[[ >JD MdٰyfUO?dz[aYe7{>*}ipx @EV Ju[5'"""""na!Mh4 !I֬Y? @R!00w}7z //;@˲ zMjBE}UUUxW1vX$%%SDDDtuS.++y#N Θ>}JZXpaPQSS)S@E/ƍ1w\q:77&Mo.]4}& #Gѻwo#qDDDHXnLvv6v؁=z]vtaDD7۶/лwo 2~!lٲzl6TWW VIbԹ[,IRfj^%\$fTVV*ezf;6 ^K묏fbAaa!fsul0bL&5F~!((6LƈfSdt""Ȳrl޼_~%RSS{HDtn-F .lד ȑ#+gE\\XnmAǣ]vJר*|شi$I^x$%%AE޽+VڵkjOƜ9s0|i[l?{}***iӦ!''} 0i$$%%)/..g}c||<^z%B$^÷~ ^ '|M6fBxbjdeeaHMM$IѪU+l޼WFnn.|M|X|9V+Ǝq)ݰkjjcÆ X,pssȑ#ѯ_?jl6̛7h4QUUD㧑Мo޽;X䔈&qGUgVx뭷 ?Dbb"&LtZW׮][bX|9}Q̜9.Yfùs;۶mCYY̙EA;+&M?{Ƃ PVVE.,Y777ʸ555oQTTٳgwEyy9A$<#6m<==1n8L<* 8q""""xb|pvvo Պ=z߆y̜9j,@i$ _|KL:˖-ȑ#h"e,Vx뭷~J <ѝf!99ׯƍE"m帺B`0@e?~g}h@hh(RRR77@^^;,\ݺuѣ8vbcc(1B)|SOaʔ)>|8ڷo 6 778~8ߏ/g}O?4ѹsg@0j(8;;CeرcӧO`0j*]U*:te˖!77Ç7oNɓ'cE IDATFǎ{n?juW14#G̙3رc =GnAno]Պ i-9ߋ5֪Yf]3,رcKBQQQ2*IӑDEEsuB,SP\\H$$$ԙ@QQLo>>>@~~>zꥬC~~>ХK*++qai. )t?ҥ <==!2N8шDe޹D>}effb׮]pww?t9s;wDAAA--EQC=͛7<DDDĐ|EZ͢DDbXx饗2C("00{F֭٨@Dte;~5Nٳgaٚ|0ѭqYYYȸ4ܹ3:w̐LDİLDDDtjڵ+tww&Badɝ;wGëf?rA[nA "bX&"""I.jUʲ3g繩DQD||<2+\1,E0l0V&"bX&""""(""bX&"""]mmɠ,|}}a6

      x+aBe; 2ݱjjjP^^^ﮮ Dt3DDDD7,ː$ ,Y\\?^aX&"e""""jI Iqddd4b{3ZX,.ڴi*DİLDDDD3L䪪*"==YYYj7((}ggg>se,rSHRزe ѵkWBRݰlZA(WURe8qFü|0ڶmN:UVt׭PlXt)z=f̘]vaXf*++~zO0ԩ^y5{?ƪUՊ}jjjjO_N>HII$I1b `07x#ػw/, {1WZkjjcÆ X,pssȑ#ѯ_?ya޽(..ɓq]w_ɓ'ocѢEøqp1l6<=z4[bÆ X|9j5$I®]'* C ?WWW@AA֬Yf!((&L@\\?~h48z(fϞX̛7x!"l6/Yeeeptt?aÆ)߱qF 2ׯGII 1c iӆDDDDDt²ZƄ PQQ2Ν^WAeYyFw.((@mm-uX,8|A$%%aŊ+h"{ vZ(,,Tqa{={6Znl̚5 x~7:u*Ǝ{>@BBp9XSNŰapi̟? ޽;$I_|7b ũSh"@ / 11ԩSQaZGGG̘1+V@UULoooe:rf̘W_}]vEYY}]l63՘>}:o=fΜO?x뭷;cǎEPPdYFEE<==߽{7fϞ'K.(..ƒ%KP^^ &@Rb?Dhh(^{5j|xlٲRа ::Nim.@ii)f3JKK둗"z]z-͕HOOJR[۷GllUͫK.9r$ǏNj/Tte%%%@RRt:[oA*ZRaĉӧA@PP \h-饗п[HLLDaa!֯_3gW^(//ʕ+q]w!$$EEEj k>o(Yl6|7ׯyjcܸqXv-FI0vX,_~#""nnnFDD҅~){1 2DYԩS1a 8P9Ρx篇 9s`0ÃDDDDDtfh4F8::d2^e...^މ'0ydeθ裏6rwwktt4^AZٳg@dd$zYUSRMY_V + /\]]Q^^Y Պe("..%%%(((P zIpqL<ζ ={J#qI8p(,,DMMUU.//Ǚ3gβ䄢"%,t:)hZee"""""a`0& 0 ͅhDaa!,2-("((ر#<==rbb"BVCRABRHnFJKbϞ=ظq#Μ9={bܸqn^ҪZ6 ŗ'IR(*d2?ơC0l0nZ):v5C]],FZCYUZTUUA&HFpK |i4]6i49˹R*Źޒ(]ϝ;3f`Æ x饗uwwjEQQ|||z}a):㏘7o2$I0طo /A#*++!IRH`РAQZZ 9C!&&n"""""f7պ9A@N|r̜98x rss ӧk׮ɓ'7 J³>iӦaΜ9ر#9Ca…ץ귝Nɓ1}tdggcǎؽ{7Ο?{Oiu'.]xC c>]|K.;%8zSFlaZѽ{G6lL& mZxPRRO?Kc2d͛fffbƍ߿?ڷoA`Z/Xr%u%''c7|sCVܹs'&Le˖{<M9M=f3rss!"aZrhZOy(򂓓*++QTT2%,geeA_v\n MYBUVuE^^A@xxxU8󑑑jhZDDD{K4e]GMM PTTlȲF>77f WTTjZ ,bXnj`&"""Ø3gV+a41zhh4,^]vJ#G`ʕ8~8L& uQFիF7nW_}BXVe(#F`РAM^$۷s΅V\jRSSa6!#'}ocر1b xb騮ƴi^\\ Ȳ ggg$%%aܸqumocǎXd4޻w/͛=z(#_CȪU_`0@$899Cxl,8pϟQF瞫͒$)۰pBfaX|9!2\\\зo_$&&6ڂ{OYY&Lggg;6FT*_R+VǴi`XPUUxWR,ٳꫯ.Kϗ+W888sx={6JJJtRnݺβV+ϟ4,YD 6 wƪUpiX,5 s]nʺϓO?̙||gʰ: ˜1cYm6Z ?0^{z',[ Æ aux뭷>nnn9s&juaq׮]9s&jkk㏣K.0_a>}~fK.@NN>s[()) /pً^hgFmm-f̘e#G`ڴiPT7n"""P]] WF~~>f͚kQ!Iq9̘1w}JKK1gڵ D~ "O(((G}OO-ڵkZG"''G)jE[n^G~}S"==<^h4޽7nĤIdɒ:EJl\ ^ߤnʲ,㯿ܹs!2 ={jbӦMxQ]]]}r[P0uTx{{c̙ptt޽{a,ZQQQh۶-t:t: T,X^wy0}t+٘BCC/\TL8xg|޾kaҥ3>DJJ 봬={'N@hh(bbbe̟?8q"BCCQPPk⭷ނ#xVګYW;łR,^$aለ@^^֭[? N:b`۶m;vleՊ͛7h4G İLDDDWUVhժRSSj}6kdb,YFZ Yѻwo_`رPTe;vW_}vwAhh(A$Iѣ&O?}A|||A+%%3f@UUΝ޽{+-$CEEy 0@ySN8q"lقC"11g7@NNNA)ܱcF=z ֭1dȐFK@@? %%uG}`ٲeX~}ޜj;26 IDATM6?www>} WƎ;UFpp0JJJҩS&-f?GII MG}Tv `ؿ?yDt:8p`.̧NBee% t|'''D\\DQ$Ih׮^~e]={W,b>֭[cܸqظq#z)8;;#&&m۶ő#G^z)™3g8~m$nr3gΠo߾ׯrl_5rrrfSp9Ѩ(3_|E->}:p^j5|}}닉'b޼yֶ<̞=iii7n V嫬 }|}}+CAaÆ B1@R)clۥݻwW9s[nEHHZg?0w={ѣeߜ>>JK/C=&''bԛoff&fϞlL0RE & ֭Ñ#G`4a 1hРzw|;8rFgy~///X:%%%0]^'O*7'l6v0`򟓓*ݻI2dV+Μ9ӤW{ju{8884Xj%,_rEQDΝwwwX,!33J6Ɋ (ɓ'Ѿ}{kfoF6m@:$IHHHfuX;Z0LJ7|AOOOرʶlٲ޽;p;adYF^^4M]t-}E0 jU...Dqq1BCC /^Bt:5ؕ\E<(**?={ $$=z@Ϟ=Ѿ}ڪlXj111 Vj1tF=05LwwwXf`0`ǎWSeDFF60j5RSS!rV$ &?+++ ;6oތ*f-*NcРAufl67ިz@)ducz.,, ]vşSNW^ɓ'X~12}?/xiiic=VRA (//.555I/ Oz*RSS1eTTTD^QqI|c@NNZj-[ӳN+jlJB֭/;l\Sźuz[n_=z -- eeex@İLDDD7}ޣG6H ۻ[ ___t:TVVd25*\^^z-(bԨQ1b.]WԩSX_ӱcG3سg-[ٳgcҥu=G}&L tR|X`At1?~]&!""'NٳggEeޢ(*Ξ=hˡջqdYVg7庹ϭjGQQ-ZT$I 0 %%ZGEbbbJjppp/:\s~ZZs GƟ '''yl;t""ZѶm[l64L`'쬴jz{{[y!YYY <+ OOO3o?Yc׮]8trjѺuk<^CO=3P[[ Z]?JJդ0A)۶yfܠjq!elKC޽{@ " (ᾡgPᨩ'$$( vս']sϟ[Aqq1222=zԻ!؍ {O?'N\}g766χJyw=Zo߾(((M6ʐXD DDDtEfs!A@ogϞfqo^h4x'QSS^tUUb` vѵƀL6 nnn裏pIe25kJJJ}{R77}:O4 Xf vܩhoؼyshXe˖zrڵ+t:>c_~ZXеkW9rvrC>rvvwQǿS; BI !)U]T+UeDPTXaT&.RE ^I/$9W˘s]\ffy3ϙsʊfVOpp0>>>:tDd2O]]gڢ\swPZZoVqL:(6l؀'aaaHSM6QXXl;999|嗭^ NLj#h4r@ BqUqrrCɥKi[~~~< /pQIOOg,_ggg~i@wԨQӇ{f(**"&&+W2`ٓgyF}rS@FANNWܹs\x|;6n܈ݻwayXbyf(--%%% 60|nj1"s ҥKXYY1hРf#fN>MJJ 'N`ڵKh)>|8 6SSSy8~8?0g.]Jjj + חr,:s35B! ƒ>ڵkYp!,[\Z-Gee%[ne̙ceܹӧY^}U-[Ν;ٻw/TWWc25jgnUr!V=Crr2;v`ӦM̞=O(|k;lllhhhG̘1wy%ѣ~~~dgg[U=3fښ>ӧNdWl;mUkѣy k4O?:F\Bfrrrpwwh( Ǐd2uuu;v8\\\9r$~~~W^CCNl6d2L||<899Dxx8۷9W]]Mll,ϟ uFXX:cR0ڵkgzII tޝ:e?SQ򈋋#99]FΝ[ E!33ϓ~~~Ջl ǧUemhh ::gb4 %((Ξ=Ve͎jOuu5gϞE٬> INNgk08y$0jԨ ֮gDGGFQۂچš+Btt4555GG+`0OBB8::DXXXϏ-(;wۉ(8qBm ۷ooYfkqu]H,, Ѷ焢(β|#( Fe{#;;>EaÆ |DDD~?zi[SeoF r>C]4l!h4m|k8n([ٳPw~ꧭZ=7fT{ Be!B"Dll,رb{-oQmmnƍFƎuBH,B'e0xWƆɓ'3dYv"JKKy)**ё3fлwo$kmN, !L&z٦TYYɑ#G0LtڕͲ !$XBH,9@~ㄴo!dB!U BHO+U B!BH,B!BH,B!BH,B!BH,B!BH,B!B0(!Bn䐞z]=l6c6joXdBIBk$#B!`ڴi|7( ֮]K~~ Wll,W&33SB\#YB!L&[l!**:utqjj* ꪾ( {aݸӹs6{HJJ X[[K!$XB!t:3f஻"<@ZZ닻{ykÕ/\lcǎ8::6vq:99ѡCjjjHOOW2 777uSVV˙a1]! WWWwǏ}vrssh4ۗ^ּ<,X֭[ozl6ٿ?VBs!ׯ_MA^hɄl!!gΜaڵZv+1 |l޼" zOOO{1kڵk9~8o& hv=?>eee]`ٳg[lɄ-z+f߿<Ȇ `0jqsscͮٳ۷S\\dRƿ :T-++c̙zyV\Iff&?ʊ5k˹[->ٳYv- 444e >NGQQ3f̠JEaҥX[[s3k,4 رcK.n8">C8@EE`ccCPPSNe YYY<32c ֭[Ǚ3g ___f͚lմ+ ^s+0rHoAtt4K,QeyINNV;O0f8"00_|:ǦM7o .dpE͛Gv{qttTF58Ν4iuuu:toVH\\\&##ɓ'ӽ{w\]]j(hlnY`QQQvm=GGGΞ=ˮ]xx6l*BUU<ٓ%Khyٸq#>>>ZI;/6lŽE^^111н{wu_5/ɉg}___ شi:=Ν;dYlٙ9`d2m6g4,,>{94 ԋAmVh4RSS}#Mt:ͦ|7TUU䄕EHQZ-FG]~C@cc#-N/o* WF),,hq!jڎ666Wt|uuuTVVb4-R:΢L&I$h͂pHUUH"!믿5̈́1emѣ-^++++|MNl63tP-Zıc8~8GF`2QW^ye gʔ)޽ѣG@TT۷oG,_oooޡW^<Ӭ]>}Xd6͌3'xBjԼ-?'dرX[[c6>|8l۶^zm݆hdΝ\p>}пV#ڵ'O2qD Dxx8gݺu WUU׿ȗ_~I||ZOm4 ḻs U_OIIxիcժUQ=z駟fӦM 0ooox?pf-Effe >Fùs8q"yyy{JJJ4igΜ|8}U;U5 ;vd„ t:vܩv644P\\ZFc޼y``S@_nݺqwSWWgq N|)/QG5 |8'--M}}tڕUVrJjkkYt)̡CXr%?8.?<[l/l6c4IHH<$,1 ,Y_/o)3g]ŋsIv삤j3<+sU׿Ųe0̛7ˋŋ3zhy7 l6_j*Lºu1c[lajؽ{7z7xŋ+0 j),,T/̙3vZ.]Jzz:z$k׮eRRRhllTgqqs=xyy[̳ѭ[7ڵkGaaڹjccC޽)//g۶mS__۹{ܹ31118;;D㏳qF,^骏GѴ|}ۗW###BBBc^gذahZbbb7ٵxlhZkt[^_Z-_}z}/++ˋ=z| VVVtMOQ1LJk!/jiMY[JU[[ ҥKfgg&YZ-?vvvlذs-0zhw]ygg"?wHYYDFFFa$%%~ȣ>ʨQdӦM3FٳӧpGۗ{L՝>}:SN%))0:&MR{ȟ|I/^C=dGkkkԩ7“O>f>}:&M"**QFY<ҥK<<<(,,K.zٸq#O=#GDҹsgXl#FP_׏'saƌ$''fQMktĉ`,_R<== Bޞyoyfvڅ?~;}!44g9WWW(++ŋ6m|8p___LѣEx%갷3w=<}0Z+eeeekkk"##9<ЩS'FҥK8q"AAAswh(**"''GMt=z4wu9`eeG'boo&8r?~\^p*Z[Q=-.4Lj#Z5,;;/ҽ{w<ݻMGStnݺaggǥKZ,cTTC pnzՏ Bq׿ELL GlذD~5kݺuFQ)7ͺaҥr1N8;زe !!!j!NvsMת)Ҩz]pppR-Y8}47vvv-ޯk!Dk:t@RR_}CQ***W]ꊢ( Xp ͑#G}HEzƏNߟaÆh"ƌCvv6ͲrkZ8S㫯o߾ 8FCϞ=2dsa̘1\tx;7n ,^`$$$kvkkmmm7o2{l v̘1V˷~K0`@%oooXnwuwd̘1̜9>S+Nkj;{P|I s爏gٲe888yyy̛7!Cǁ3gN T4 C !**3gr=PQQ7|ܹs[6[!Dٳ'AAA|70rH<<<رc:u]Ķm%44HFF֭R}VqKAς 2e :u۷өS'5 _~8qw}ロ;R[[˙3gؿ?e߿?ٙ OOOطo'OdرsWee%*3g$$$FbccYj0i$jtڕCq:v숕sʊI&?znVbݺu3e5jD=ZLnϽ޽{y:u*hZXf Ch׮=z䄇_z9مјoR7hdɒ%7t]lx233Ϗ^zY$Ѫ **\ %55 :uDaa!Ʉ O>ky9w999466H޽-CNN>>>CMlUXXHRRA^ff& 4FC\\FvOEEݺuwA` ::,֭-NgnDN:7#FP{Xc0 W^?sQrrr>|zqEӓp|||h4(š5kHNNf֬Y$''SUUE W-77t nhh̙3deeBnQviZcҺw!OJJRh988`ooO}}=UUUt֍^z0wh4qF6nHcc#NNNꌰ~r6oLn8|0O?4O<>|ˋy1tPkAvv6˗/X[[`???f,]SNakkcV￟zJ]]PP ?OF9s2p@5662n8>5AYEE: &4츸8y5aXp!k֬aÆ [CQ'Oo#TTT`kkĉyG-7?ɓ'ˎ;=z~xW^yE}ն_wN>m˟*))a|gF5IEE<곙~ʒ%KPGGG/^̰a0<|̘1)S=,ߘ`yʕmREsi/*b_)}ffswj;Zߖ,zjmYBe!č?=%$$PZZjOF#$''Opp:| SҜӓhbbb 00~ѹsA555?D i߾=󔕕K=ѣEjΞ=F!22Y EQS;dرb233ILLޞ>}лwt*Bbb"'NvѵkfMX!11tBhh(f]xxz= hVL޽ׯ=Ċ+Oذa&2 ~qtt$((H} O`0pIaԨQtLjj*ӧ͞.`ŀlŢ`YڇB?o{S"tښfCj7^mٮ3҈tS]v_M˙~ip-f裏̆ ZlM4O(IsQAJ|}} BA\m@h:ǵZ9jzvz( G%;;^zKnT], PkQB!OII YYY\pkǐ!C$xBH,\Bg:x̜9z:uB7uͲA, !D @>}ZLg'^uE!Be!Bk !~-2G!BfI,`Y!B!`Y!B!`Y!B!`Y!B!`Y!B!`Y!B!`Y!B!`Y!B!`Y!B!`Y!B!, !B!, !B!, !B!, !B!, !B!, !B!, !B!, !B!, !B!, !B!, !B!, !6Ʉh+hl6_W9֌FmEQnM&olEQ%fۏ|7B B9|0&66`qi&-Zdl6FLLLoϟ?#^zѱcGƿcǎq(ٳڵ+j7l@jj*O>!55cǎa6صk{V;bcc3g.]Ύ;vp9-FM6Bqq1ׯё`E_8p/Imm-g[nˋBGJJ iii466Ndd$666fΞ=ˋ/`PWUU,ĉ`eeF!$$;;;N:ŋ/HUUZݻwG޽̊p1HIIw`>>Օ6lؠjIIIa֬Y$&&AUU[n%++HgƌlW^QPoݺ\틕={ݝ]pyy9}wq^^^X{JJ s!;;ӧOc6IHHnC׷yR]]ͪUؽ{79бcG[,db޽,[ [[[jkkhhh <<իˁ((( <<wwwvͪU>SNX`k׎Cw^h4^չk>|777N:Ŷm֭'Oꫯr)ҥEƑe!yf quum;MyK&{ٱh"illdժU|G̟?s111,^ɓ'3jԨfNoǏ'>>)SF&L@DD!!!|0w\z=Gfܹ$%%q-Ν;Yj=z 22˗ӿ<==1XYYӮ];t:.\hVEQ뮻xjmFhhBBB ԩSu]3NGii)+Vࡇbt:|A^xϣ>jt:z!b„ jb޽c6MСC6lX喝UV1ydƌVeL:Cҿ]\t&ٓcǢj6lf"==]N<8x QQQ;x{{( _|V{x{{7+kFF ,`Ȑ!h4 ٳ0`ZYooot:lܸe˖AuXX.899_O??O>$gϞeW<߯\V={PZZ?O<<<0l߾+Vn:`00c N@YD| !]hllgeF]]}+Z[[[yFi1866_~~ɒZ9VkQFz^GMmm-L&<Ȁ i:tFFŭ>.;;;OΊ+k(ӧ !44NN#22[s۷G_1ptt$22+++t: 2'N(:zРAjOm=F~G_)))3j(yzz2n8>5}MjL&kNr-vvv̀j'==F^GˢE,GGG kkk {L&>3׿VE3rHz=-)))2`z=:.\hѡv^l6?Ә={Kt:ӦMch4JKKMȹq\\WW_ƍGjX[[swrEcUg\oddY!oFՕz CҦ׭tSZYr%&+)A`WLFF#|ټF#ְ_~DDD0yd~G}]y箪?KgggF#eeetЁzj̙ÇgСjp5j@xuN3f3͔(OMM xxxX]vTWWSVVv?mYYY=ڢt:HNN/?6VK׮]9sLkkkqttX45F{_XzDqq1ߑ ;v$;;g6@1pfTbbb4iwD}}=ݻC=w~KQR4qww+!$XB!TQTTkDEEq6 [ڎ^ockk[oUWs\w}7>`)/QXڷoN7/ ,]oAjllDѨSI۵kǬY4i-&h4xyyOYYz6mDRRϷ=zPXXHv7(‘#G5j~~~jɕsёΝ;o񛖚JmmA!B\]]yꩧشi~)dee~ɓ[J#ǏsEx뭷,27Auttd$''gϞf@Mlmm!::Vwy'|G䐛˾}x-_Ν;IKKh>#nVu=-¾} {ȑ#ͶuVk.\ɓ'ٰacǎbcc,Ŝ9s \]]h4EQ#77۷{A@mm->Ν#++]vmݦ#F`͚5RRR?ٳILLv=<<Φ`Ny)..oaϞ=L8EQGi4FEqq1۶m#//,6oތ=j;bΝRPP]gȐ!-N aРAlٲJJJؿ?wVfL{hZƎˉ'ػw/н{wzvzIΝEEEڵҮ]+ذqF222(((oQ3k4tNtt4lٲgϪ3Z:Fs^owϻˈ#~!~e2 [!BS[{{{6m֭[h4xzzpBnubػ*;7In I!VYX/h-|E (VE(A H-` BBȾޙs盐 Zy=fsΜg2:#GիimmŅロڂ=~~~ZҫW/~i/_NBB 蒿n6-[ɓoCH^oDˬY( ̜9ː͐!CXt)۶mӂq1emwMQQO?4ƍi_3[ժmse?aX̜9S,Y›o$''`ݱZvWST[ow˵WU=sDFF_~xXp!}ݧmcd~i.]Jxx8xwyQܹs ?9k׮%==`-[ƪU8pŋ/}...xbqrr#""Booo>5ko6[{饗ӧ::ֳzWk6ɣ>JTTK,aرY}/,˸b0< Yd 6l`ܹlG={6˗/g޼yFƏϽ˕+W`^9ɹ¼yظq#֭CQFͯ~+ ڽ={_g B؆lz{{IҾdYIpwwpɲdٖbOON*(^bۯNv.a{{;UUUL&FNKJ[__bl6w3uimm ''.=Vyj"IR__^ͭK:,NmmkyJCCvǺZ]V϶c}m20 ]( 鉳uREsooNǿU[^{UUF[(J̝;ӫW/-^[6XۢTLwҽ^_{ds\.z=&GsveY Y\ 쵯kԄlRkhh4j;r|sYUUmx 0 AxVUU`q%%%XrWޔ@*55.]"55}|}dV^z .|ti/ұ]hh(6l 99;+Wxxxpi nɓ۷/t:y׻ 8M[SU;w_7&mUUU;o}Sݓc]7]# @Ahll$33˗/Itt4t:Z[[/ '((G/l6ӷo_-Bff&%%%K``{EQ(,,󴴴LRRNNN69sR۷/aaaHbĉP^^Nee%cǎsΑdҪ###*ׯΝsΝ;@HH.uTXXHaa! ddd ICEk*((j@RR7eee?*|}}c>Ƞ?޽{N3gP^^7}%((N@YY/^$::_~Z744ITT~~~Wyyy( !!!nsػw/<8qH$髾Jz())̙3֒J߾} Nf3m'}EEgϞf;F|||Lzz:6m"11={6Z"2/NNN$&&bXxԩSS8q۶m#::t:̝;|JKKdƍ444hqe̙Ð!C DeK/3ͬ_6 'طo3fl6uV&ND+???N:Źs(..LJ@ijjbʕx{{s v0ݶXEEǎ#++v\\\ÃݻwSQQ8޵5UU%66'xggg?>{a(o<ދ^[n^x>39š5k AQ_W <䓸jtL2n N;w.Fb\t˗?QFHIIa 6^zuJk$$$p!.nmNo̙38q"$q]w1k,bbb4iR[,k.~_ju1~xz!rrr>|xz=oGd2*ߩW_;+ªU0`F5jRYs-ۙ3gÆ #..GKQ;Ɛ!C`0Jvv6CwL>#Gp]wi,11Çse{1 'pIV\ٕ+W}v͛wvbӧOf̘Aii)~~~L>m޽jW^ˋqϘ1c"IC a֬YL<$O^'++3fxz2L43yd ֒أcmÌ322xwy׵s~,[z^EӓEi==wٯ,׽&$$$_w^VZExx6}ڵ,_^ձl2KQ6mD\\O=Fz.]˗AS  ,MKK ̙39s>I[o^lѣXVt:~~~Q^^([o=^z!I5ڐII;v,&ÁIII^ORR={EQё-HHH@S\\%=N$I%IBUUΞ=GIիs|EXp!{/ppqqnc۷%I3uT|}}$ z*M&888!C'77TUܹsxzz2l0cccY`DMM dܸqz<===z4}V7:^NTz^^eǝwމlFQ-X=q=j'g?z\\\ŋ3cƌjRYY}Sz4hŜ?EQ&::u۔Xz̼yғ*Icƌ^d"002otMeC1l0QNGRR6ܼ'ǫ/gZ<==III"zAx?vZ֬Y7nu\{Ass3uuu2k,V^?Npp0cǎ[nʥKoiiZ k࠵ NǥKضm8::*j񨨨(ʢO>|Gw}x IDAT888PQQuOŋ 픮hλ^n^ ̙3ڰZik"\xUWWcZ eA  \^gĉvm~ɓUV^ dQTTľ}x饗ӓ&TUvhllrww'""ŋwyq0c7nkkGjk˫7,_k GG.V PUNCu,rzzrHrr2wӦMGQqttԆnЯ}}dVRh4R^^λ˗ [o駟B$I"11SNu-..fݺuTUU}w ((( ** ^Opp0꺑ۗ`mM[pDYYeee- .U[[KFF#F GGG,Ѷaaadggw inn+b~} mg[[[ٴi]bυ W^a۶mۼۼ;<ٳSI%I"&&R;-S_7/2|p:owi˲hNGrr2eeelݺx- ɱ=jnnnh\wZ{ڵ\x[䚐DII !!!]Cm;. eAAnUU_TUUǩSBHbb"sα}vΞ=)PUիWs19z(SNEÇٱc/^4mQ I7nٳr.\-[(++\zדEaa~icbbXz5TVVg1{ls᫡nnn+dY&))D֯_O~~>ݻ4Lb ___9BVVY"-3MMMSUU-k.:iՌ3F[ZyQRR֭[$Ik%&&Ɩ-[(**{Ca6QU\9b7ͅFUƐ!C(**"//ٙWCmm-zSΝ;|2.\`֭v(ŋ׭1=z\KV\ɕ+WtRTTrLe֭[ɓ'M;44x>#Ək???)--%--իW(݀ٶ(l߾K.QZZ;CffֻM0~xJKKٺu+%%%w^{NF~֯_)..l۶MsY~ Q Qw,˖-[ؽ{71<#xxx I}O?e׮]=z^zL>}jj+l߾4L8GGG  7۷og߾};wYf1h $Iӓ{=v'|BTT3f0>|!Ch^=رcҥKswzjGuu5zR '//-[L~gG6x۶m8qqꪥcG{%ΝK힫Ų8ݻMJJ Ψʐ!Cd2QRRͅ0`={paRRRxGpss:t(֭ߧӧOt:uuu?~[o #--[rV+#88UU9x ;Pk2i$ԃ'(Brr2r!Hhh 999ڵ`"""%66;w?UU6mfvr-I0Lbbb b$$$ЧOnII`ƌk `0e8@^^#F &5 0c>c<==3gfGU.u( إ `2ׯ'W^w;^$baӦM|G3rHjjj0axu |xT%w̶m |mjRSSnnn]Buu5nnnhmYV$IBQpvvťM,˴ЀK{iuvvٹS^l阮((nvjkk1888}SKK f{~)BMM cmm466v[kSSSNNNZVnoo Ʉhtqvvr;Ƌ/ȻᆱSPUYԭ,455!2&2Vһ8w,ck kjj1t:]ZHss3>>>ڂT۶J[[el PWWo~,YBRRRٻw/<]k[mjj///;Vzi^]^ׄz, fӫzr:֋bd2i׊o `Y, f wܩ@ ߿G_0{lV+eeesƌCE $zAeA*ˉCNC)Bff&,݂ "XA  'AAA,   AAAA˂    eAAAA    `YAAYVdYA( VSEgAoAT  RUDRR7~7ŋtN͍L&nII /_fРAH)`0CNNO$ `iusUQUUٙ@;@e.\@YYIll,NNN]꼦XmjqǺ펢(sjkk  99@}}=gΜ!22˗/kutpNNN۷a᪪A{{{W^ٳDGG燢(ju@RR;ʗ_~Ixx8AAAڪlo߾GEQHKK#00:1bfBvv6EEEIHHUUr 999TUUObb"&IK_e8|_RWW~)AAA˸( fŊ1gggVZC=Ĕ)S$"z)-޿?K,Yy뭷?-܂(L>ɓ'#I xxx0p@9ºu_B`` <3fٵk:Vz-$Ie˖Q]]9z(ͼ (/ɲ̢Ex饗߿?UUU,\#Gpy#諾~z>CFMkk+oo/^ҥKcRQQ+Xp!Ӯ?ߟ>cEa!2vb۶mZ[bO>$F҆aγz,XiEaa! ,7 b4>l63|<==A  Iկ~0g}'|9s0a3f //r%/_FN#%%ŋ3l08r/ɉ{9s搙رc)//gΝ,X!C*qqqڵ?O̙3qtt淿-NbĉȲ̦MgՕz.]-( {졡e˖a2hnn3a^\]];Y`` ԩS$''#Iyyy8;;Y`NUUdY~o|fKKKcϞ=\(TUeȑ,\Dbbbr={GGG2)i^lII ׿կ~$I477c0}^lfܹ,]t. X[[[ٻw/3f`رHĐ!C5k'O&99o߾<8::RRR?Lnn.CUVs"I%%%̜9ۇXVrss9r$,'0zh<<<())7`̙L8I뮻5k111L4:6ÑUUёua6?~{j*Ñe۷vZ/_^7ߤ̞=ggg?>$//7K/$$$zjG,:: Ξ=Kxx8gϞ%,,dYf̈́O”)S={6ybX `YAd"&&F *zꅇ8::h\IIIn/k֬цJnn.111L&&L1cpvvF$qfx"R]]ͩS :W YdZcǎeǎ7a^wp`„ ^'''1amѪk˗/oeΝ;ǃ>HRRMo,G1rNî Bxx8DGG_ >|:먥-[hUUUdddЯ_?~i.^ڣmHȑ#Yf ǎc۶m\rC2m4"""qkXVjkk6بmةinnoΫ^zѻwnСC9z(Æ ӧOpB$Iٳ8991zN=| ȝwމ/:Y9tÆ #88EQt$%%}v*++aK.Ն3{lQU'OJll'&&jý:`00~xTU??9?kwwwnL8< `YA/tm^ucfii)EEEL6Zt5˗/3o<<<<[=z6<à rJGtt4ƍcpІ'|ٳZo^uu5VG[ljjjW_eÆ MMM"rrDZZZ8waaaiAŶnTkQQQw F@@}A_UHUU)**HzTޞz^{tz%iB:744S2ydrssٱcO>$_q/NҥKl۶l5}Dzt:m^-|CbJ.]Jmm-ΝE KJJpB$صkn牪ϙ3gڰZա( t:wu:C|222xeVݵ߯_?6mڤ:())cWUUQWWǢE:=Ԫ',,즟K `YA/݉`]ruuG聆Ǐ3{l-[F||pZ" ٸq#_|t[TTTdegyS )IV`Gw,zy7ӓntz{lsWf&M`Ta0ZvWnkk[ /zq;ezO8991j(m5l{y3(Beee@Wjy*..$Ih42`z̓>Hnn7Yp!CeŊL&:uJ62jjm'l#6Μ9CZZ6-@\_{{ƤI5 : IX,]؂VٳoXXQQQdgg鈋#88XkwFYfi!:>ʂD ?`988zmHKpp0^^^}ݛ$Ia^ ~nV̝wបFu~y&:}^SSCII 111h&ǰu 7iKݕO>ƲNU?YFi]rSFDii)/^dx{{@KKK 'ZZZ8|h6رcٷoVxtZYVVmoXHMM;;;]V.'IIIIsJ@@nnn\tI;6pv @||ty뭷8u0uT6lNqq1f֭nM; ??kj="Q IDAT+ (/݉ёÇwl/(QY8RRRXj锕ڵkңuqQYYɶm۸tEEEl޼oJa0x8vk׮%33<믿o[0)) V\ӧ|2l۶q1=z\KV\ɕ+W0稨( ʢ;vy9r$ڊD֯_O~~>ݻ4L^ёDGAAΝc={V{t3SZZ֭[))){s҂<6lԩSTUUqIV\$7n˗/ORSSHqqqynnnʃ>H^<ü,ZH{[tDDDl2VZݻX,`mٳY|9h42~x^\ 4iuuu,[ Ig̘1dggk7ÇgelذEQɮ]Xx1V^ϠAXty:q'88X( QQQ{mFA^߿G l޼y_Ι3G[ח_|ݻwh"m޽{/a7v=>>>ObŊ8p~ζvh.f֫{|M}Y=z4cƌމܝBBB4iR...<3lٲg}Y1ͼ ZyGYls`0p3l0rxzzv/̚5k8x ̙3qvv]YYl,̙3}||Xd 6l`ܹ>yf˸q㴼w,m7|vTUe̘11B, DGS |l \·a[d㍮3I:4Vg,B}}=f''NSQ, ՘L&mqGVdY{mXh4b49l usscՔd&߶quu5L.:M|,ײƍNUU& 뾾I.zV+(ҥ~lq1׍vuuuXVy[ZZԭQ[[A m٫Ι: FQ[)zhMM ?0-t󰱱Qߵc;pqq~ͷr\Ҫb`6׶]#KeY&fsuwm%'UUX,TUUa4qssA˂ `Y~zŇ~Hss3Ǐɉs1w\fϞ̈́ "fkxA 1 [A˗/w`0PWW=.eG-33_|V^|E( -zAeAb|}} *WO^ի eA,  ?EQ    eAAAA    `YAAAD,   "XAAA, ˗/S___[`ZEcAD, MTU TU>gرɓ')))yjii?4MFcch, Aggg(gGaǎȲ jeʕL&VX}݇l޼'Ov zRSS)//>dŊ\x3Yzh< Q 5t=eUU9vYYY 8I$zYqpOckk+w_y }$O~_[[… y饗 44 6`4Qmnv&yA, (**"993gP^^MNerss)**B$Z233)((T f @yy9444#xxxA``@ʥKͥ@;deeQQQ3}%,, NGvv6477j%%%F233OWII yyy477ORR/EQHKKW^ȲL~~>H"""$IۮBpp0III899]][,)**ݝHBBBtZ#F`6e<Ο?+ ? jV__hDw&##~ N>M[[7oC"I,cBMM 6m$8z(999`2իܹ_;2;FFF&I 8]\\xg $22RGpvvfݜ:uW_?ۛ\֮]K\\siD$`Μ9 2@TUĉ<3444 Iv̙3ш,<3~Eɓlݺ|||PUO?{vt:7oj=o>._LVVݺX,lܸM6KNN7o&66-o9ի <777v믿'%%%_ z-! F, ?mmm :ѣG#I bɒ%<ƍy6lǏ' !!C2}tz=YYY̘1GGGTU49&&___>ɓ>|8:Y;m̫/~ |A+BxcoZr~T>O몧'񾯤2 C+VЂ t]w@ahɒ%zNX~_m˶my㽽|2224gΜТi/+{GU]~+ 뙙8M0A7t1зeNi9r~a%&&J:>^\s}Y]Vh!{<}[G8ҏ~#M6-#'"""4cbbtwj[۫h?ְaN999~XK. ;"""dvmKIIw߭ G?Q7Zlݺu6m߽ 131 ຮ***̴I1q庮l>fi۶֦n%&&ۧC---JII }-T`0(0B8V[[eYVX߷m[@@*>>^aqlVcc^o($w---JLL;V}djmmUbb|>qR`0@ ^%%%վٞv+)))=m+ D2@X a2e ,@X a2e ,@Xe ,@X a2p]WRWW9Cl9Ι8\_Gۖth '_ К5k{'q>u5qG7nTEE)ݲet 7o͛?7xz뭏5ڶK ,8mt׫Nqtג?UoqO==Zg:8Ky(lP__[oU)))JHH]vvdπѢE4sL 8Pat-͛Z]v>vZkȐ! ?ttt>J뺮֦ &9ekV__V,{~Ss.sb׮Lm]0@' ,ra[n}AxyS2!la >ls7o|>_o555ԩSqFQΧmhԶZ7La>y-e˲ Gю;TQQ(??_ui}}٣k߾} 1cF؛ѳ^jϞ=5j(555i:x c*"""mk׮]*--iȑ#CںurssU^^@ Yf4Mi֭UjjF~qmٲE4hz{{~z 4H*--a*,,Tvv$iΝڰam6544hҤI2MS㨤$Th̘1|vvjkkU__3g~4hvڥfeddhرPqqꔜc*666V;vPMMUUU٣F+))IcǎUttty]:ܹSJOO׈#BѦMh޽[_vuu: 6())I)))ڶmۧ:\RÇmwvء]vC6mR0ĉÞ7nTuuTTTİ8p@{9:{۴FfVRtxY{j*4qh|s8Tƃ:/PavTIu|^d)/-#lq]ޚJm[r6fm//QcG5:'O QђNm)ݯ<m>Oթ-[U80W I.m-ۯF%hT %EǞ0Liڿƍ,^DSy1gΜ9'8cxb]z}ӣG}T>TQQ @ijϞ=曵m6^Z^7|#?IO<֭[sϩYZpz{{5n8)۶?Ao&=Ԙ1cdYjjj_k׮ժUեӧIկf%&&jZdƏ ?z222.}{ݻ|r˗.h֭ڰaݫuwwHtR͙3G몧G<󌪫UTT$ʕ+|r .ƍu]wi˖- *//ף>*uꫯLmmmz'UQQ?_eWO>,XH=|1bfmٲE^7~yݻw[nQUU"##ki***R\\l}ݧիWkҥ֮]pB1B<롇R||#(&&FÆ _:曡{~iM8Q)))J?վ}_~Yׯĉ!۶/{QDD:::裏]zK4i^6lЬYo_~֦nIEEEWl֝w)߯l;*..VSS5py=w6mڤ͛7kǎJHHi3fxbUVVjr]W=uqow!ϧ-X@~_Ǽ[{yHLUNr\Z^E?xU]=Tr\GϬG*uБr]W/ZwZhUtʍӠ4ڽUVkr]GUՈd LJ!Ck}JF#mZs W?B5&׫д!ξPC]J501U)1qjhk/E+K֫;7iRFDOkZdjjjTTT4^LS2Ắ'z4Mkݺuz>^N;CGVAAA(\tEꪫz;躮 0@m5Tqikb=c;5ydIҬY@F =f۶;<}ߐazڪ{Wsk׾ףtG 뮻f}+_Ѯ].Hzu 7h2MSeee|Gge>oTAA.5{lEGGj纮n ڪѱ 76}Ojs>]2\I >#c~VyeZՋQ ح}:EF[?}yu6cm>ե+++gO84J8[ضE;7o<ٶ7xCSN Mx<4iM6VLL?|EDD !C.˲4vX%''F,RFFzzz q~ziĉm 4m4ۡz2edYꫯsbbb8~fΜ+VǦi/Vll,R||222T]]-qdf(캮v)߯.HGijꪫ+mfΜ) }РAJHHѣxB2MS---|=C6l:;;U[[+4ޮqL[o>ݻW3gTddLTBB/hٲejll m;m4effѣUQQNMG.,,Ԉ#Bv„ jqe)99Ye)22R*++뺪ʕ+uqjZfl֞={ɓ'jWXX9s-n٩{Lk׮/~~?ka_-&&F'O}H%ϧVIҮ]zCӶ]ըQdYˏ9e% ڎj*4'ghiIFlЌr\WKhxB 3帎\՘աC}OӀY)ǫUPE!V?Xm+1*Z (:fCi2%dkۣnU/۱<$Poy*}8p<32yxtweYm[g?-{74MY6fFho{am0MSÇҥKBّmhjjRss~j…-۶OxѡhfuUQQ{MTnn򗿄x69 gzgt!y^S.Vy^=`0=GTPt]Weee ;Ϩ(M2EB5ݒ讻RLLLh@ \9jS??$-^X===:uNS#gYV98*++UZZ~\UsssGvU4RY}#U|H̄$ zP~rt]u8ڻ:ϣXY2!C3FI7G%EDjfP]TXN]:ݥkԃ{]GY2SD |%&&㘕_[[[㐚6fa7""B>O_5nܸc]txh?kԩڴinS: g}tFτ9~EEEo N=G'))I7|x ;St?aՐ!C4wcu'jHBTjU^]]: G?6+oRb۾`I^G"itSZ7iͿ9pIsǫ&L99y\T4l ijܸqZn]XhiiQqq9眏Mi9rvء@ &vݺu:ۆ8effMyyyW~~ 쏵a(33Sժ=۫+W~la]]]-˲t*:::4{S0N8 =##Ce$4BڷwBBI-Ƕ~e k.uvvohh#</۶5dȐu]iGۮ.=ڵkW豋/X3f멧!>~!‚燍D·+a(++K@@ :TYYYa+f}ftP^޽Ek+4<3Gij-޳]WWafNhZL6+56^CS3445CCR(3>IqQ6vuq~eHJM8UYU8M+Ѝ] Z{`]?RbѮ&)+!Ya~a) ˗\rϪJZh4a„}:bbDZhJKKUUUg}Vuuu袋:-WU=Ztw^=#zO5f=Z>ݫZKZnʏeqXW^޽{j*͟?_===a-%%E7nTyyy#kj…¦;XP^`6nxk8{9UUUR?nzQϣ+_,XUV*..~;-YDjSO=ROz뭰}#&M 7ܠy橪ѣxb۷O{s=;waJMMUiiJJJi;Oǣ;w椧y3Fz衇k.kպ馛ggfͺJ%+56N4<3Ge{54-ヨ*M/Tii*9Tږ&YY7;B}5kKy\LWC{uYV,QqMZT%& OCRjTv75:vwɲ,}kz=-[[F/MϬ{};4lY:,{zd9aÆ闿eh`4)::+Ee)===5w\-X@gϖ8=ܣЛs1 C~hѢEZpф tW7d'$$ZXP]}mNKK gddnV=SO~"۶;SF:=OS}uNMM _yw̘1SOqeffks= aekw߭կ~6MSW_}^~_+ k_ЂTau/ +VаauJJn=Zt,RQQ̙Xv}aFh|P===r]W_|L"0z4{l<׿VzzlVTT"""BW]u߯'|R?C'/-7M{(ϧ3f瞫_|Qg߮;Zkѳ>kw @_mݦ~Z~QttIЄ$]6t,cbuiv}8ͻKZ-}不帎RbI3-uFF=것7^׿-}A]rMCE,e(aÔsO &Bu=aXLYu)ǬQ;Sc|*-"8ʶ' *F8 -,tx[^544(**J111\g۶.۶':>jllTLL"##CJy(%%۶ ''쇁@@IIIW;zm6uvlIF(qݥ%Fd}[ ɐ::GukѮHPuʶYGӭ@WcC$kY yky:aaN˵atMaOkͶr77˞cFlk)@X@Xuww+66b%-j=(_+)=:|:x]╦x cj ,@X a2e>+)he$MPb|jぽh8H1 ,t,:b&ն4b0vzvckÁ=r]Nap6rv' ~6tv֕KTpJ8߰\*,o7sΓa]. <p |j))&N)i3uu`T+8HNјxBm+/QS[5&w#$IUuVe\U;hdNcTԠ:hVZbrdжi<(4TIѱǴqwU$)'m 3e\Uqu2RT\YVe(7OajGUvT}!2 C㨸\Um夦k\YC]]NmTҮm7L>׀D Nը>Ь% t+->Ij丮6S?R1QQYY.gjDVLg7kΜ9s(3-(**Q*tm[ Vn\xOŇj-ޢ:JIr\Wol_?~Hql=yji\v撺hnPlD^Wś597_m.ݧ9+^՗MeZ %yÕ-^TeMMjRwEԶJ:6Յ#x丮o֭ohG-ݝ~b Cْ\w ZUK͝ 47T?ZC2Th}C2}~Yљ[O~y} tw+q5"3GU ZSG(4e doy4?*lvW/?fEze6-۽Mr%uuߊ%ZQKKnWOWW(1]R#Ž2={߬u|rf. m*ᄅ4C/4}'Tk.3AjBj?(ӵ]d]Œ|tdϙqC$Iؤo,__/M.44Z׿V!nnᄅۦ^ $Mm뼼e&$u]Uuꗗ\!ir\GY+i֨s4s8 ke{ttnPzL*0P!Ii|fdkhZVW3CF2Mm[GN ѽ_<ׅյ]咿uߗ5rUѦp')ūԒ[4!oXhTbO2Z6fUc{[hۋs(#!Iigy4&-S,81 s\W-KH ֐+Mʉ =nrSTZQSG\9b?R~N4dM>)Ðr\WU&mmoӵm +VWWtT5 C~o./SRmE~O==qSZ|]^PZ\Bɱ %}Po{ ,3 )궖o#)92J]v1a2 h m\p؏/-{Y_zZ딕D_'LꎷW|;n(x>eU''(7jݺu6mLVE Q0uUQQdggO9\A5w+)+qdfX@u\G==jRRd|O챃 tu(!2Z:fnuw))*Fiq2d7 ڶL׷N%FFo;PXs\G mYGF=j>n˔m mթ^;Xqh]UwW͝T~^-CFWDَ#=N<|`0(OGUY|6kG]58X e΀hePae>>Q1R4GJ ,@X a2e ,@X a2ea2e ,@X a2e ,@X a ,@X a2e ,@X a2ea2e ,@X a2e ,@X a ,@X a2e ,@X a2ea2e ,@X a2e ,@XS{(!.@H):dJ*6SB6ސK-P7LI%hG0\n.I)-v^t | %A>G ;G! )-~4e%vI ,W+iJ=22+uhIJTҹ%%H䥞Nu]UTT(99YaP|(ǢIDATRqfIޓaˣڏf/IENDB`ntfy-2.11.0/docs/static/img/pwa.png000066400000000000000000002701041462047176100170570ustar00rootroot00000000000000PNG  IHDRƪzTXtRaw profile type exifxڥivܺcr0v/P`}U%PfRTjn9[bw>T~_sHN?mAm{n|J9>w_ Y3Py>3ͭ_sSȡxrͧ*T?b!+1.X,wC6p/m|̒~R,ΨE]~ΰ0y}ڳ/OX3oK ¯ \?Ϩ8n_ zYEgQoK 'eWsƫn'Zdq96nn>L\}޽>c4?)ܬPAѼbk޻Uz`Ke߽Q;Xo2F yn^_Qat\Y`5H[&:p^cW NLR` eg9YIPg>D?ȀK/&cT[sI1j-"rCe)B)Q^%R!Gj-\8PbI%RjiPcM5Rkm7ZnZܳ3r^M#8ȣ:8̳:˯ WYuշ@iǝ6gvmN8zY{/枬)W޳R.F(gdGG )p+g2ѣDI&f9e Oq+wy397o2gGfvy~;IRm8jhUP stߌ[4%~wrgJ0G:ke4&2W㬻V.E+i+Wq>7zd1%}4*)0щoߣWb,!v"C-ɇ:lnkg9-avc~z"A7+,0qNcs=#ur]Wldu"uFsu=5ر߫)۷%߄0&a^!=ݴ]gfi]n~/'0"DLBı ϟdiS4qhE"'1hOQy{7L⦱Z,^Nty_$1j$2 ڳ@\5sD&R |[ƶ wמԥeNiO Xiύ˧Lߦ<)j_TX SniĠ.HH($',v bvrgeװ`tiͥҭ^wo >i @O-5C*ArtSMw@$T=0 K Uս nDuT9tGyg;SvƪwIuCkRcfdII)Pܷ{+j d ƨXmK.*hu@vʸǛF )ƛ30zhk` =$  N;bAϮ4, Kx8֎qlFΣW˫Aވƺ ȫ#6NOq,-;R5Ӓ 8!Po%!NIT1zv* &Ҡ6 BhL3x<,ѶyTc |0yq_ȒŮ:tE)dd-9~n8Y~v_yO],86Yzt#UOrɾ HA#PAl̠?U-Ŵ( !F^S5ֽw$ZϔyW"tf3g, Z +rX%:0Hp rNDy|ؠ̎LZi፸t\F2A? q-_N4 q.`^?U G}fh>NvRq# 4>lʥa"LqQ,qd.Ñ67(|E㌱TfvMlm4z  bٱt&Ax*縪kCL1Ugm )X lkt% HNĩqT^*b\򚧋PJ"E$EDTA6(s]bW;RzV\hj8%cFFUL;CPa܆*ڝOGϢaoMY` KSJ+U7: *(fj'*;/YPW:t|dS!f?RzwvSП/tJIG51J#,vq,!67eLwڣkeؚE(,uj$؃K=YM QiY;#6H=%ObkO6$)jH.i}44|iԁru(0DQ~7H7SQ0bc|+h1Z> hAͽ*b"RLfNzi#:XL0J L.&qXz|DO(G/#cxϐ6LՀ&YPMV|áד tY>xMNNu Screenshot ;\bKGD pHYs%%IR$tIME .#|"tEXtCommentScreenshot IDATxw|չ3;fI%ٖL3L1$$@F =!榐rnn_.!^ ظ7ٖ%YVV3Ǯ䕴+V}}g̙w缯"{lmVw.nZ|2AAAA߀T2*=Mnϳe/h~K Ygmiց5K75+[k#1   BFx`p+(ܼ9SvN]|]wn?lFsS]ێTޣ%wNAAAH[ ].Λ<ݷl_}sv廟ܬmie{VKiK{   cX9.?pwOw."`T77kSD   07[~]ꋏܗ/[."YAAA,VrYذcKD$   cxؒI9y]?S:[EAAAvپcFm/AAAhr9SBAAAih/M!   MP5AAA^Lqe2;c3MО(Қ|JqD):*@6 $ g!O   c| i%,Z }٤ L<}5;7n3C5Q̤e19{LdیYUəuvLՆ9}؞4 &) 1Z[>Ԕ@}KrybfV;˙P .gu5LuVN)sxq*;'ƒ]( }]Œ] TUF{Hɳw֡<0ԛgDA.3n~~MWUrSp͢>/=G8| ab*E l6kݸRZ;ͥVرn^Ϯ}7kl%W wy7q>&27'(nZq&fS"oMmfnJ6JAHC prLj8΃Pn6/T4ig*Қ3j1fHFi4  аSͪ˭d4`mqLU4{Mw('ijW 0%Y{ڙ|+fd߻Ce(e ۍtc.@a.LYSxU\.?&.ț8kVg,XG.%sU`\.(p.ܦA)Pii\zY+ 3Yrmڒ%XƲc? 278L)v9hZ3݂ր@0#ܼГ+&g֑?$p6'䅥n*AR5;7mIE|8kR䪧fV&ŧb |xe,gY,1UaY5tup9œ0#gʻDcG;uy\wjXkJ{ᒂCgK9EZmW]j߯Ӌ↧Xc3 Վ6Vɳ ^_ ^>TϺ]޳yt&A4ŧ5x%޹v6'E2x<|쭪7^ԔIuBlڃ(QF{-֑QAHyl郻i6{Հ0ϯ{~}pk~J:ض}Vm[J0].6\ѵV!'#0Z41 œ'ɶyLV-1>)BgyW]wEm }ɓ ZԥOoǦݜ$e٬l.nٻ,ti}nɍ,1-r)̫Q)LG[V_u&R4,U_14|`v^$m%,h =ɯ]e9e|mٳW_էEJ-~žrJ:omO=LG^dCu%Ϝeezv 9 ^S{>{=b5vik=e_{FAn:Iald()%Gsr"y9GR19UV`19# N s NEV+ s\6ut*;W ) Z8&VmY8m&KxzזBp(Y#sN5w*hך7+dɤ"հr,>u:rC{.o^._μI]yq,4n:ΣuGx=!Πu0 ź˘\ᭆV#_jި#(IU[Tn]S#wo;G+_*{y*@r )(5|hP ZSjgm/bwՂ`-YZ> `'Y_+xn[ۡ )mH6 ew''O}L G|?4s0goE9m͔}.?H `mf;\s<ޕ-lDz,Z:ڙ>qK5<-~!_sw=`XP,upz*{h[eovf.~L iLa. _I4wa쫮}Yj<$"9#W|c{9l/i/}pƝ_cѴ aXڳ[ ;޶`-`v#`$b<lybAR|e^]"#.u`7pV[33\&L7[|͟em\?Dc)4ll o[fN0 z2<.&vtӮ5\&f;tY~v67Qm=9Xh|-0=x ]h`OվXͤ p0滽ue]~ݏG*A!ugTs3jvƴ\2n3&Q9R}.lY0% c6il=eÞUPw$X*!zr"xiAH'&wAm ҕ|+hU$9yCHlmfg;t^.]f( w*N5V{bA׉;k%E3yyY: BӚ˶yWy!/Y2s6.#0׫Thɼ¿_t6c2E'K@LuD[Gf,)Hp/ xN|-{A0֗鉿7[5Zz;xpR A*x"ߪ:=q).xQMM"y%d   x)%ӺG +US   MWV{l 5Ƃ    BYAAAD(   eAAAA,   "AAAA    PAAAʂ   0)AHy?ōw VRC(aJ@;/ުbJPP)`Oyx_k遫rؑ(~u^Y5Ea},ġw(BBjruo"V'WB|7=YD֘./{G Yj!zUm=ƨaFɽo(w(9X}~h:: Cy9͈f99r;Tuo"' ,9$=WwKAM"\U頣/h }0l9O ɫ8os fB9b/Vq{z ܝzQ&K$ojsʿ (T&Nt!'U-ޙ'NۧBd8Hr#:/9Ygn/-WҌT xqr2^5CɿtܤrˏXpQGw"7^EJ؀L=OEzם豥[pAsKM9ڷ!QO,_ ?A'(B#h5|EmQ##GNUmfN\9/x#1u#CwvS"KrD|iR%S"ANϔr RLDOrY*~_U _Aޮc>98ǸaR鿂 !V Kսo9\0=Mr"ÐFca@l~v1c:X"ڡ5!Af=&i$9ef iW" 'g6ɷR6k}I/6Fo,8*փdVQd#UoˈBW ]9pbNVb2ZhsD{ѝA%bgD!Aq*#/Ga,x(K3|*JYi"בO r= $m[mP -qcXc % CiTÅ[ # h{“nߏڶ<7Oz8"(O[}7"٬$w6k'Ԉ9=^$oɘ!Nnqڞ]_BD3ΑY({SPf">7] x]zll+| +S3Y" c鷂 ''N`˪kQp{B=d_;\^>wvJ+|,ZMa'n:.Y;_7!p.4W,g7#KdfoK'(AN2{I3%^-Tu(kp AteNL3 >ٹjhe|No4ګN[ٹ\ 6әz'4eR9>{cfDE'RԞK:%X򙒷aD|fd>1e%~"urȦ[)._;XHXpSCVQE!ЅpVC8[L IdAH!՟h{m\!'Mc r$C@ӭRYT-~?o'(馛+Χ"iVr+0HKD"DY"#kO"boˑރ,ѵ()q mÉ8E*aQ /A|r dAǘ-pr^\u1_BA8GdGe1*?ݿVs3DdA "KKC ~9$ld>rnr oQfD GÌXjhOdL?T2C9QyY&yY̛\DCσ;Y ,4-Cɞ}:#-#\y#I!ڕlߒdN:)٬lo}۰#ɽEJH5[3?!EA>2^bfҌ+tì,-5M ( 6 8*~^3gvs/هHYhx>qYL?eמ牆iYAHK&M1'^#zGCN[5JWu}{Ēz^94z'O0q~SyPAeF*$~?ߕoLdL,dMe9p8_w]_﮺)р 0ikU(KsANN{ô+ۋ(J ;fS")b/7Q=r!`#E!H\ّ R Tx-c7rҌ ?A,R`CMG aW(MG v=ۛW%)crͻ}V֞e*ŧN;)yh䟛_cϱZ6CHa$"BZ;0qr jX +~G+4G~k w%ze6zTL6 N۝m+=Zj=xz0pqʦ( BŴQ֊2n{m;l=#IfldFf,RvdNnt=d1Cu,×Nw3X=`kbQ@u A P)f&m2}bvL6ݴUVlX2Кv | e.청~I `ī,?0p *1 V(KVOR *E.֞tݫ==0tmjls? o kuݓ\nڴ^ٛtcE 'Y@֔V/tL IDAT؞P l\r͎x9 `cȳR Le29AgqV.pw며(3ӓ,ho%p1'{9YA'cY2.E7fSk M])Xy?s\#$A— Ē:ڨ)ғo !<Ш,C)6;ci#o|}V_-<3d:Ct%\9k)?*q9XZsmu8.Y3{x_Y0W :u32)3{lG G43?F_l~t\]t<|5MTL"9O+Wtp&,;s(;BUq\SKri烂}GA=Xϖ9LY1U\Dp-e=ZS奴wp{x2BТ\Niq;Q#kJ!Aԗd~:c`Q>\Vg/9X8gL*ŵ6]|wF|?gNg\:73SRχ7wqþ<|`;2pzY3c7M?Gdq n3$ҽB$gqmu >gM|w+tZ,F?ts4:H.>xh6.7TqLˇ&;Q'U4l>^5e[fnٶfΙ2.3)@BmqKy\t% X8o\Uᕧ(%(K㠾/?~?/OW~eKX4ەwמɶ1n񾏑®e\?6~,cbnvXW2ۍ/ƖбHcF0<٬7V"1L '٬4;ZMRطE5*!zleTwV3x$Y ƃ6ќ=u&bC[36gӢmZA@h_*87615;O.Xɋo>5ualGX1i:<hF`{\WRώӢ5-Q/fS5D_ű@W}{R'sc:4:(![T(H3Eq6opwU>2m]>L`f~9+؆=kerZWE`5L8EtYv숦ζiӚۦh GmF[dk޷˶)ʛELP+gP{ka )bqn!&AbM'gFě$up's'sktk[/t2Pފ ,0\)9QxB;yl&𥙋1 h4>c0o{2 Xw1[X0ul:T~dDD'd.4)o쫋^AkR"ȎDdo}Qǩ8,>K_c<ؙt>Cb8<28X=duJ|rx0WNDz"zl>y=:~`_=a*__~>aR=ob7+'sŬ%l<~$GXW'.'×,K*yX|b&nlw6TH2Ce+/mp)g^?= gpE"667nYKyoɒ mMmhہJ38"@(E#䳘=q.e`6Vw6׶N`#JDdz\jp l8Ne.M~f6..ݞ5R K *z}):XN5fL6 ~uW_R/[e%}^ٷP eå:Z6?Ϣqآ%RY~-~b>9Ըbj7ue沥[t'[iOejXI/>ˊr{b^9{v5fVu==Y|y9Bz.tB>9 NDW1Fw2Celj˶lնFvE'tv?aսGt/`.)YGbı6M9l𵲷dFsSksiBPaK?٬m}dd3pQed(zR{0%hRTB,J5-Fc 衝ܺp%| *5̂ʠ3 5m,/((;a*l*x?_tdFFϥjt챏gofPy{΃"ýKBIٹ=10Q"j𗆘eͶihcb8ϜˏNgc!iӥ~?[0sB!Rtv;{HG&Kql( ;ӗ%{A}r2Q>S"#3 gV5IAfzȉ G]},%% uJLE'v廰Z- 7MZ-G5;yl/ X߶h:t3/;mim։m㷭ԚWΛ\>.W?'ed&͘ϭ N4 :~uh?8vwه?5 ]tu}(6}>@uh28{,VN֚Mlw,+[4GL+FP(6<ښy`h_‰J)v.^ NJ&N`y eg2 ?'2}-7#AN)+AqnO`2a IWcvnLU]=~^xc݂W~|'ŞLZ,?5Jۢ9gڛ`h{;L֔i_Tj6?Gb *y{^gy.ϒ ɑNknǯjp^+@Ka^CV=>5˯kPħm> :&.wMSsr=~t\o6\mma;C?ɈϽu8b[)|vj()Y"hmɺB)#x anZlWU<ǶCy2huJ݁?OKg;LHWpV7 m=̱O!;bo#Ȓ:Ii7YI6QG)T?>n{#$~dU)nF׷ ;$rd;H;p!n,Ei]aES&PiӚ?# :j󵀭veh]v_,O8?IO[[gVkj,Rb>``;8׽ҠkVW?{QA8h޴ZSdH~_.=M έ.3u}-n~k}Ŀ}lzi[~\eG"tbB8}3m!yǙ A^WߘAV0AmYr8p߈V"IZ5B/,EJ1fqf6ތP&kwG{~ey ˢEQ[gf4ؤ *(Ӹq *ζ_vn{GQJ9M%IY!Av֌J@ !G A|`F')Rr,8iD`OUs,O[;h%,_qKl=ǐ}uW紿tHl։&T$8IN{iRp"# C%X'FSbCGq&B{v@K#&Sфoa ˄F 9YaS,*QXO{{hͱvVL8#E34ߪ3'pNK?i?k(?`=䡴Dl '?ȔϕCNN] oƣ]yJ \ :XX{$|z=䃶|t lo%_ù1A&O}oURf[_7sQE!G'<"e/r߿>?+b^{c%td# |U5f+oS<@_OQY{/rgɹFhlt$9z o&X"]g=ޤKD:XAPT{BQ_Zm RWtw$J׈ eDɁ9|O3V{&kDD;goɾ: ;ۯ$ Y"+3S?Hc t !GGHŞ+u8? 'rZ1O`!''>"hor$IAVQ>`@%r*GV6ؒKH>SH lc$.%Y'U7*F9eM?5UJzȱr߲?Z ,:ë;n,X'Կ%֞D0(?q?|l鴿LDS )/ X%EZy=`FN>4yt=0%"Y sH>-#]y9)a]oK!{ًzȽD,xyQY܎G*&|ģ4PaghDeRS`lzֽt#8wLkݾeU'Y oT( TN=cyaIbiur(wI2A~dh~>#"" 9$>I->[0}5|;A{G=n7pr輢<#mMORBvڥ젫 ˲m;(us _RBBh;ƸqPJ |Jsdxh0 \. ľ `\= s,B BYk|PAAW,ws\IFF/CH>Qa,B|Bʂ  B e00 4qx<LeYh{"^A Vʂ  BR_wGMKHeAYYYdeePAA^,ѳ0 Lۍ݃\Ȃ G(gdd!!  $P0 n,dA¶=QAA],w=dADkvKc]z IDAT  I/e.H (垥+QAARMG͑#öugz~YAAAFG(k9~c'8%ZDAA!UA[m"6PW[ƶm}նmvC>#'eaYVkr@ m   B9Z#NSSS744ő'Z^Q->)z^Qv &L{e9.mOJ4[AA@{{;= ;mKs{7ͷԩSkB{{q{ 4Yb׬q4Y n٧ņapep"I&  ˜L۽smxMZW 9쳘7>%3gyӦalCee{=\r~ĵ]o~kW_y~g?K/;lތ;n[?Ăv\v-aAkMI|_g\np":;hnnP&2sM_n<ޞeԭ|[t|y Eɬ:zL,(c~ I~g/Ňn3>Or?ٓGycG}=, 5or۹?o[S)  ¨e5[la|~> .4M]q{\n,\|SsVbԩ8v( .@i)O?$?,_ӦQ}s'/_Nqq1Ux=f,!7/q^/3KJΡ`Df͚a2P~B `|uض͇n9RPPm۬?:|KEff&Ogt8mmm{=|f5cOի)4 ˖qM7Zsu?UYY%%%r)x^fdZ`   BI~??([ƶm/]Bmm{vf)merǃGd'>c,?eO=$7αkmjhpe%sKb%pڵInn.v*wMb>J?Ƽ{kyG<7Egggp!? %%8dٵ   "Aii)۷meTVV=˭--˜t Њn vnhӤ&GGC#f}>xg;2gsq 10AFFF322A)|!! -g%o:W>ŗ\ 7}\y2AAAmk3o<.]wY<ēp =OɡF C"ZHff&y=ބ̤MM4662}_桔x#124inlѺ:~?99)hѺpuޫ`_9ׂ֭   i̫'>.[K.b֭J5s%77_|@ ֚~\"Bw \</x֞M{A߇Tum$ߦױ=n7MM=RPP駞9o3sL̝9[]z.3ZTѺAAAXHʈĉ(رv|^{VNȹO0q?8PZʬٳ?{E=ɒBz%&@ZBq@5T(zz6@ʡ"" ¡/"AP @zIvgC !~=#󙝙{> @bC\6 zF=(bСX0g.̚#q\JIh4j-Z`S.HKp $B]OݷP^^ɩɢbĨQ?g.fϜv: )>OƜ`eeUch4xX8r# ;+ t1o3у$^+;ٌ/`PC%paW`koyw )) оC+tZjI`ڿf˲؃( ps%"U+;ثe'O")) !!!hۮ2^ťeǎmc[<A( N%'h0M;")1BHh(\‚8~W3aaHJH'8(//G޽agoñh-HNJBZj*]\Onߕ \|QQE #=/^DzZ4qGf ((/^DDDDD &(kZmڵ E\˲|RY!B}ڔw=f{kMĠLDDDD k몐ܮc~tMmBDDDDD 2(k5tgH&""""""뵐OVmV/}}2=7DDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDD DDDDDDD DDDDDDD DDDDDDD DDDDDDD DDDDDDD@+pQ}lkeͽ@DJep7YCD5DDDDce"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e""""""F RڿA'"""""'3("66,DQDDD\]]y .\޽{ĠLDDDDDDz(Jfֲ,#--rՖsl""""""SRR~l6#-- 5KHH@~~>f3^X\r^lFee%L&$I;l62z5X|9RSSѨQ##==&W-///=666Ć A_|M6@bUa[@jzuIxb888_,ѓHQɉc(8|0F))) 7.SYY EQ{j( v܉3ggϞ?>f͚kkk7ϟ 'NP_$ sg} nݺcǎ DDDDDDz̫1117h4h޼9ѨQ##%%FSeEQ#<<εʒ$ax1h h4@-p)l޼$I0pdBVV*++a6!"L&JKKamm A ":t蠆fP^^Y,˨$IhԨA,jmu20Ve '"""""zԃlmmQXXX#$EQm۷UEAyyyz=&M\[  Ûo |ضmrrr0k,hÇҥKqt:Z%%%o}v(;;wfo"""""@3gΜ9PZZ |8"""駟AAAP7oƚ5k矇N'|A0tP >}:yXXX`ɒ% `zdʊS(;::駟ƩSԾ՚WEHHHt: (bРAhԨVZ+VCׯڶm kkkG>r֯_ooo#K/ԩSh۶-***`aaOOO<NNNFe ߁DBB ш :z Qlܹdj ZN;\\\y=A*Xd4(JZ%AШQ#ߊv௻aii駟FRR݋3gM6>}:\]]q%ӧf3L&e;<<<т EEE#((H]FEU  ٳaaa;"((zיGvr-((ݻe6d2a׮](((meYᵵETTMիWܹsرc$IBqq1L&9Xرc߿=OOUjAйsg|ppp1rH[NWz~zU{=99Bǎj( dYFll,RRR-{i WH߭SNax뭷jݻx'''L8F3 uO;99Aբ5χ/1rH$$$`„ FΝyճzQjvZ%I۱f>|111(>Peee gΜ]idYFqq1AĨM+**o>5VTkA^GII dYs`vttDvc\v ,V)///@eh4ήޚџm}]t֭[kGIpy/-S([nv8;;cΜ9?>=vAe@_FA@@&Le˖EQ˗#%%Ç(%Kg}Vn,꫘8q"L͛#..j?e+++3˖-CJJ +++%"""""^ߠ k֬AFFt:y:2x7n:JP999HNNƥKブ-[V, ???DDDT*%%QQZZwhҤ = ^-[BQ8p Tĉ$ E 55 0F\\ߏ5k@Be\p)))z*ЪU+G(HOO""""';(+W____~eA1x`xyyRe}eY[v7ܲoqFff&DQTCoyy9L;5Fe#bP&""""zͱZl}U[>>>Eڵ} w 7[ǝ>So>O>|8p\x'OO DDDDDDaP 7KeB>$E/␒f͚aŊuLDDDDDDi ..N9ZEtرZ_'Yܢ(֘6&""""Z8W+7D DDDDD *7DDDDDD8`;_"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""e"""""""bP&""""""bP&""""""m}LQȲ EQyAhxTa/Faaa² yB""""""z|$Iعs'222꼎T?~sLjJk׮feF0LjeYdYV˨wee%JJJ(Ʉ"TVV޴V]$ $xuUI`2*I C_\TTTt: 5sEEMQCIJJJj|"""""( ,ZO F[o#F 44 ѼysOsii);l۶ ,: "<˗c͚5={gƼySOaغu+zԩSu!++ ֘8q"sssn:uo,cժUBhh(~!88_b۶mYТE ,[ Z.]_|3g@e`Ν;j*co_l6c̘17nh4bشiL&lmm1j( Z$aܹNQZZ߆+DDDDDHxFb ׮]ᅬt,Z1ڷo &תY+_`РA9s&Μ9zMiVVV$I•+WSɄ}gŋ!ƌ]vaĉѹsg̟?j]x1 d|ᇰł `4e~ ::K,Aaa!@e IDATh"k'O">>!!!.?00#GT9{1yd >-ZPCM'''$$$ȑ#X~=#FK/diвeK=VVVP/VXhҤ ***`aaOOOo(xƍCQӦMCnn.<<<`cc^{eee믿̙3ѩS'ooobŊڵZ޳gOteÇ1rHMDDDDD ;(? t:( .2ٳ'V\ YqU(???uNhuکڲTcUYVVVFⶲ j_K.N>rfL&sppP-`4o;+7n$dee!++ .]Bee%kRSSa66ECff9A#JKKK$"""">UrrrPVVkkkכ,7nܸzeeee$AԘN5qyoll2pȑjJKKh"avVU!{ʏJ81>| (֭[QYY_Y '''h4B$A vU :O5EQ0qDKw}&n@l6#''EEEEQoDDDDDDOtP]/6XH>k }O>EYYYظq#F Fx{{VEqq1f̘4ha0`H$TTT DII bbbm,//ǡCЮ];@8TVVBeJu&Y՚vj^n4?BBB믿"00(++ömЮ]H=Aa;uΝJ\t %%%xW1d5y{{cĉWWWhٲ%@`ҤI5kRRR}ݺu  Af0k,ΝS߫L0˖-? ,,A ~~~X|9RRR0|pcƌATTΞ=2fFA˖-#==ÇnkkkL4 ӦMCjj*Zj";;K.VDDDDDDAfϯVK~7Umf͚U> >>^^ >V`` \]]kԈʲܹsC`` ڴiS-*4>}@xxxerssqQHIIA-쌋/իԩ W^ŹsƍJJJpq ". """I{(",--akkXS%%%,ޫE|""e"""@VVJJJjnii"((豜 Be$%%aǎ0LAff&y2UWZZZUt!!!+(((Q#DQ>DDDDuT^^^#(~RQFS#(?sC1(=7,t:]~ 4s0/"bP&""""""bP&"""P5nMDD DDDD >(ƛ'IoߎtHĝEDDDDD!,3g )) O=~i888<1(=1LHJJ… XYY101(=˱o>|+WĆ NP_a}x1b1GFtt4v pWc޽on4)%%sEEE .. jUNAAfΜrȲ T؜:u F˗Ν;_ǏW<޽&L@eeeI%K`ʕl&FDD-A`ggWo!z\։nWLrVEEE0訆#GfRSO=FS5ʒ$aΜ9pqqh u+++^ԉ葡 } :ΟdW*"}ujC,7mJ,2***PYY ++n;\]]CQL&Z& V{Njl(PF(BLU`Pˮ fBee }QdBjj:"g YlVVVM$d2j9UZZZ kkk(СT Ue빱h`6q5X[[׺Y<mowM}XA NNN<DDjPdR.76>~85k֭[ѲA@HHP\\ Ig3fPj*^Z \%%%?`0ux뭷qӲbcc駟bʕl/uh4/ KKKu={=N:Y1rH 6즡`0`رxpYd2axWsш͛7cӦM0LŨQЫW/s"664iv{IIIXp!/^ WWW7$ /^}U+6mڄ/Z,/FGƍXz5;I & 44 Xp!Μ9N'O"::!!!;w.<==1vXI~^߿? glٲ_˱|r,^K.inٌ,uǏҥKM"55f͂򗿨nܸSL1c> +W`2e gb޼yG 2֯_-[`ڴiӧxb@>}믣}7oLPٌ H^3f`(--ɓէ& v8q3fomۢK,$Ixp5L6 Xp!lllyf̜9k׮EPP}3ƌ(b888;#?Daa!&LFɄ~ xwjvZ| dDDDU~1(ׂ5Z֪?U#??GQQ222PYv]撒?FmW_E uEDD`ԨQhԨ`x7pl<#**  h;K.ez-o>}@E㫯Bzz:ڷo,|ט9s&:uABX]vrrr`aa֒W("00P}#IqF =Z-0n8Y#G,3f EQЫW/|HKKCXXakk '''ͦ0bڵ%IիWH7i6 8u233kgaaoooP"bPٌ(--U/ ~~~ԩ:P} `kk{~w(??@\wl^^lllfW\3i&l6#''EEEEQ[_4 \\\ԋձ,++Cnn.qOXjZ}śqqvvM>(++S=L,h4"++ /_ŋ[K$((Y"bPZzQQQ CPIE?PM28tPeO:4BQtO>(1c,-- dddק @XXX ۶mCvUU Ȳ\ZwQ6mBI}vܹ+WDEEںÇQVVsۣC۶mIgX[[#88n""FcOFbb"._ʻG=821(g0Bn_|fΜ;v 5c6mڶmRٳ&MUiF#F`ԩ={6Zj'N ..-kkkL4 ӦMCjj*Zj";;K.UPxzz}y 8Ǹ_~äIЫW/Ø;w.t:~ݻwGjj*]YQ^^'""K,+}Y(kȐ!HNNɓѣG\xf͚R5^e6GC`aa޽{s|"z"J=Tif̟?{y.Z0Сm(x"QQQ 8;;###;w HLLl#Q\\z ZRuFF.^HXXX7p}j3gprrBQQTT'O"$$M4Q/jDz݃"00^^^gbccaggf͚A(L$''#-- hݺ5ܪӧOȑ#DϞ=3g <<P'OlFDD_/] tI} 'N˗Pxyyǽ@+ ሏZK_ZZwhҤ = ^-[*))ɓ';;;! wU;w|Tt899=bDD$IX~=.]࿫;z ???]'"GyWmw},w;,CrSmwj}MܯĠLDOnP/}7`5KM6I&'JGy\ s;NekywsRDDT7]Z-,,,닐Gv%AШQ#zuJ>$":A @۶mHj"""}5 Z-<<<oootDDeF_~ XDDDD UaaaEQV3 ggg4nܘDDObP DDDDO F[[[iӦhҤ 1QP/y݈yѓ ??&IDD 999q'5P|IDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDĠLDDDDDDXr=:$I(l,ːe*f(EΆn*^!5DDD(--u)ݻwco3H@? 6 O^NN^ EQ0x`̘1C [TCllǏ{wOPelܸĎ;'DD DDDѣG /`ҥ5B,ː$l˗a2jp|2xEEErJ}VXXcرHMMiiiIg4@x̍F=vL&._̇&DĠLDDɲ+WU5\ш玺Q5ĺR666A޽{1k,o&W""t%lݺ}vvvO!I7n@uVs2QCPd& 2PҍXU6NUMuHQ웕[m^>hj;j(rV5zrN8|ϟ(w!zTeڔ{˼ݱqf[o=7?7ߵ=D DDDtGXr%F#= EQ? ..x饗|s,2ѣ(((;~iDFF{ܹse͛7O?Z7geGaii...{سgQZZ ___DEE!** 666uާW,1b"N>]vAE}X߿hܸ1:w.]˫Z訨ʕ+!2ggj\r?z=ƌSsJ$$$$_~svڡK.w\]]Ѻukj߿?砘-[ odYŋw^šٳ'ZjU`mJzz:6o GGG<󈋋î]pe"22{?F_~ok׮`?ĠLDDD FAA |25kV,c?lGŮ]9sT Upڵ믡jI+hԨo0c HEIݶ,X%%%􄅅~7Oڵ+k2ؾ};***0t;ns0uTdgg#::^^^g899gΜALL °pF7˗{nYYYXndYưa/\y!>>^-7++ 7|3g"22R]l? ш؎RlܸM4kVg˖-`0B:t[nXw{(4Y8v._ {{{Fa3g FaÆAH8pY{@RR~߲C8qsEzz:`ooӧOcϞ=ظq#,YP[[[lذgϞEdd$t:]sĉXz5&NXwΝXl]͛7c?_~V5޵*%%%ذa<==Q?s vލcǎapqq#GpiDDDSNնXv-\\\0zh'e"""^kB$,]}̙]^q0gbܹDtt4~iX[[#33ׯdž  -RC$Ij*CӦM( h"\>>>_zf 113gDyy9͛:A 33K,Aee%-[;BE\r| vڅ ?{%L>W\ԩS3Ϩ| vލ^{ /P\\7bŊꫯ0mڴ['F~aϞ=_3T KϟG^^ @~~>Ν6lQRR;w⣏>‚ rj>N=zW\ogYj seee駟GaՈzNhZ,شi.\z C (|:t(,Xpr 77Cff&ѻwoXZZ`0`ӦMGO>BBBдiS:u /_FӦM=ٱcЮ];{?~>\\\xbl 99Ê+жm[4onFΝCee%>C$%%aصk CcHLLDLL :v~E3gp5 >\݇D G&""gZZZ.f3֮]<[0`ヷ~:uBLL 8Z?0z4jH—_~ۆӧSNEݫ޴4dffm۶ԩ,--燿lj'=iii9s&RRRocРAjct G+t:1rHDDD_~ٳgoY  V-X۷REQo>~FgEqq1N:UHZZN:]1***]vD֭1~x w=S{%j( 4CUQV@) EPdH!HO( !BBBzc9/$$@p-纼.ɜ9993s܏!CjW}H2_???zI^^MTPP M6(hd֭z~a5)ٍuw}Kll,u^7{NLL]b7׺.nSXXxW[9ndd$3f̰Ol2pttחR_:tݝXZPPAptt;>!!Plzݭ.9rƆ[-덂9F!44EQpmҤ ڵ#333g4={ƍӲeKbx2Z!z*jժyAAA>Z:Tjر#_5jŋ?>III :Ԯ*<<~m6Əϐ!Chݺ5M4Ѽvt҅#G =j\pblLһwo6ol3:)),z!5Yaa!Tի\zΗͥZ6ͷuܨvYҭךӧO˗d2q%,͹Ѯ];x"M6U!{zzׯ_8`W6шd<իwղW5ºϊ ƛzQ~hHNN&??ѣG"_Bdm)ݡgB!ğQEEFprr@ ]FͭʇdEQGQ16p\\0}Az´gϦm۶l޼+V`2G<ôj }@WQpY8p3zٓQFU{_)B뼬^zt҅m۶qY5@ӦMBH\~&==EQر#ÇYf"`Μ9|ǿzlXعs'[neɒ%t:%t;.b7B9YdIkh !/...dffRYYYwlnn.eee4j'''4 -ZPj(l&)) EQhܸo@޽7n$g}f>wIDD> ̟?+WdK[fԩ8;;g}ƚ5k1cڃh%## ڷoGh4s=]X|2C&!--luH E}ްu1D9 777Uqt~sg y)))L>߮zѵkWOJJ vחm|tѮ]n쿓V۷2rssyB%L^z% xquug%99wqТE r{O:?΅ 8^v-gϾ+M6l]!=6݉zѬY39zF#}w}Æ W_}e*;;ݻw^eCrPPxzz2}t6lڵkS`2XhFsttwwWƍm۶lڴoVAh4`0طo_S&zN-h޼9GeӦML&bbblFC)..槟~ z- dee!xzzR^^^ej[H֭رcvl;F]?wd-\&''cX 4KJJ(**i YTTۉ[nv#5jOUƐ;)jӦ l۶ "##eص@d2a_"##gaÆ fhcaX0U~)F 0 U>F )))bPYYInn.6l6SQQ~5jn b?2FJ^Jeeݏu?7X, (,,G_~ʡ_&I.՝[PP}Kb4S !o(`XHJJ6!+V… w5_~Im~7ZnINNO>P֓iӦ7-Cƍ5ko6iiij تU+N<ƍլ֞PTα+̞=-[FBBZ^z_|_Ff͔)Ssu4hl߾ ҪU+-S~}>c8ZgʕzL݊Nii)?ZVɤ]9:{ VZٳgX~sȱ ]I( ͛7GQlBNN}1bDCۄd 裏(((Ãc}8p;w$55}ϹsرcjC6۶mԩSyXx1K,! fϞͼyX`vsh4~~juZQڷo'߿֯__-ϬYm۶ߓĉ֭ړjyٵkW̙3LJ^dd$>(6lgs4lؐDΜ9?/_ UAAAc\\\`ĉuz7(*++矩LJׯd_~YZnmV'55XRRR!,,4vIYYCӲVK=ذa,#>>hسg/fʔ)3vN˖-`3~xuF`` Ν#..{ EQ8t[n%::ѣGO>hZ\ԩS޽oڴBڷoo~_ СC+._ɓbԩݛ'O_лwotؑ2z= , 44nҥKyx'iٲ%˗/GҦM~G6l@n=z4]v%66'O疚7|ðaptt$%%)Sp3î]8s ݻwAc.q+ILL$$$3'&&b2xnt]v6Sdd$7… ;vx_N=xLI׮]Նxh4=g}.nzz: hff͚qΝ;^M6Ν8p ڴiìYjl6ٳgi큮ٙhff&'N~Gݿ(4i҄R(++Ct:BBBD<ȱcx'4iR٩Cg1YQˆ ;;ǏY˜>}:C Bhٲ%/^}0j(Z-oݻwos &Mʕ+Сm6V^͛h4,[#Gj*8q'N>M6lذ]vrJ?>7n2)ѣG2e ~!͚5l6n:vŚ5k ٌ93gү_?l6b X|9:bO>>x{{i2(**ڵkj㱋K5Ӎtn|:9++ /~cb0knLhjmTǜ_n4~:yyy888-72j(, }Qy4F# zJԦl EQ:Gv>>>xyyj7?5U]ʚK~~>x{{7Nk&?j7n;/ 33 Xl IDAT{+e3Rٌ1͛tRQ*4hz"!!{K/ѡC,Q^o$$$`6 _gĈ4k֌͛K`deeqeZh~*</%kҎxzz|I5m1߿WWWE/^HQQYYYm6{6DDDp)&.]"''-[ڴl@FFz=~ۢE ˫G6|WBjo6jUߌ5I͖7n^^^6o{h4z&U[Q*^qQĉ\pɓ'5_mNxt\@Mݭ?5h4z:՝WcFMUE~ږu?Lvv6ӦMe:3gh4/VaeLA׮]ܹ3==cRRRfԩwԋ.o)H/پ};III/'#tpM={;v,PPP@bb"M6EQ0\zUM6fMqc0ZRR‘#Gԥ.]Մ Nb̘1\xEQpuuUVSTT^_~lٲ"uц Xb-/ri.]dh4^I&h4zݻIMMUWmϬNl6SZZ&U۷/{… RGܹss=ݎdѣ[nU{+**ؽ{74kL}ozz:999ؿ?NNN߸7kffZ3cƌZ/!BܪJΟ?+g')?T;w.>J1~~~̝; pa1|t:VqՋy1h .]Drr:XiԨ;vcǎtEQh۶-=z`ƌ 4MJJ -:99/EQQwf( {/ǎcʔ)j={ЩS'tReO~c <]2h {9LEE[lQvWмysVX 駟VϿK.?~Dx \]]Ƃ ^|EzAFF̘1VL2%ck.fΜYB!ѣ}nnn888H!04 #Fr->;v{/}^zUkIII޽3gPYYIhh({/899ٽ'NgΟ?#Ӈ͛eX,|=z^z͛INNf„ tڕ ._ɨQj;}݇ wСC yW߳g'O$==Hrr2.z{`tvò ٻw/899ѹsg^4ibSf4+{%..D-8p -[Fr?T|w1rH|2j3777)))ݻ#GPYYIVӧt:L&~!yyy$$$cqsscܸq2l]?9ܹsJ5!Zaa!...2K? ~INNFQRR¡Co0DFFGZZ .!CYgϞe…ѵkW4 f?|_ڵkʢ/g=Jtt4^^^6AW_}wN8(TVVrQnJNNQQQ6CXz5:ϟGRTT?@ll,...hX,ű|r, k׮ȑ#н{wHMMe…1h {X,V^͉'0 deeqACPPM6`r%JJJ\r|}}b…3l0^cժUdggv{eӴiSl6qF>s\]]y9x l~';ڴiCo~JII o'O_~xzzY,~'/^Lׯy9t ٶmNNNm¿/?NFFsU lBHB!رch֬sΥI&X,yWYv-mڴgϞw|2N<ɫJ.]\p+Vo>֯_ٳҥKqsscѢEm-Z_|AVxGՀ|˖-]hO'O^cٲemS[#pocXo2e <^^^\z?[oߞ`FœO>I||<>,,[ NWchii){eС5`JKKٿ?o/I&jF>c#ٸq#|֭}jиqc:v޽{9s 4PxΝ;j_=ѣGYp!,^vڡ( ̟?>(ZnͲe0lڴE1ey4?!ğ4 !⎘f(++'yzg% ǏWѭ̘1}̞= bccIIIQOOO'//_iٲ%&M~ǫsU^G}gϦu8::HTT(//o[Rw̘1N:ѪU+juNÆ cĈ@F8q"}%==ٌV ANqÇٳg۷o!!!z<==y>}:|TVVڽ a7n͉' $<<JVZEEEfR;::Ҿ}{&OLii)7od26u%HBH,B;(:7112MzbӦMu6Օ0AAAߟmkEQ8|8 1114lؐ {mwnxyyQRRBnnnжm[9z(kIIIͭ-!!Plȑ#F !nJ̄BqǁriѢ~) 8&M w֭[cX|2fY[tt4cĉ 2f͚M, L&u/Ϫ٘o `:/C@@dgg-u+f3gϞɉ*Nƍ9x vUՅ5lVϺѣ7oV_f{4 zRׯS\\2d* !B!3 6dɒ%lڴ;w2|z=AAA 8￟"]|Y ,Yh_}[n孷 00C&غv&t2"{zzHII EEE~*++)--ɩ UQիGEEAҷo_KvA޽)**ԯ_f.uYY:矯vnnnK,@Y!w(0m4|IRSSILLdǎo᭷ޢywX,lz1~xqRRRHJJbǎ||,ZHk u|WJJJ0 8;;|qpp͍***b[տкuk6lի<6AgϞ5sP&CBTE( !X,F#FFC@@;wfѬ^cǒՄL(J$2ֲͤ)7QQQ >iӦʕ+1L(B`` *xw[^^eeeԸpmײ2h4mͳf<<<0`999$$$>uݦgNGYYڵ}Ui7G[!$PB!D*,,ga6I4 tGGGRSS^^^8;;WiXϯvNnee%v/**bΝ899(FOΘ1c8}MB 33S'2LIIaذaL:΂R5LS^^NSYjCҥKL&v'O$555k7}Xhڵ+NNNl޼%5jOU.8պBH,BQ#WWW9|0\Qł`̙3TVVҺuk5( ߟW?`4ՄPgΜa͚5j\UPs%L&fR6nHRRѴnZ 5kƱco(**Rf49w%%%@ӦMyGHKKcӦMc61i&!V֤W&I-ۑ#G_z\BiizNQ޽{ӺukmFee%fŋYr%#FQ5iٲ%M6СCdggsbMzxG),,d\xQOą 6m} M m08qΝdjB,B;{7ngΜȑ#t~gGFxG`ٙ'|W_}?LJJ FVD988PRRO?M=pwwرc?~OOOƎh4<#dza{qwwԩS޽///z)lZCϊ+8|0sZ{r)z!>׷)Sзo_BBBHHH`޽OӢE 4h@9<#44￟jʹix7ow&**+WsFh^5qrr⡇ԩSmHjyIMMUҎ!,,4vIYYCyoPPرC=qDz=L<OOO֬YS`B B!ƻƍٷo 3 ?# :M+B1 _}jcԩx{{du=^+___<<|~'nj###8*++'d2a4mũSZf>j#//~8`3@||zXD!$PB!Paa!_|O=Æ cܸqlڴ@aܹjILLu qFsKhd2+na IDAT_'55N ==M6ի2k.&Oy'X|9/_hѢIl6Oy70Lf>3W5ݻ5kVGNN|,_rY,g}l_s{G9!B!~JJJx7ٴiGfܹ3X/_NyyybذaՇ{۷*kA͛?_Ν̙3g֬Y\rwqE} EQ=z4EEEw… YrmT͛7gtZz_888}Vڟ9!ĝI!X,߿j*4iϤIׯ:u{+{F8eeeX,\\\^M&mgˣhL&Q'''4>*++յ&00F?PVV΄ ߿4oޜcc=bl6znZ&HY/++ť2Fqttѱ2 NSah4TTTסUVX,4xZXQQlɩe-,ύUVVr5 z7'''ݏ4 zu{eeeձhDQEQ6lHm`b_\\]PZ7/f0{?'7TVVǩ)hޣŸ뫼 jbbZ7ggg|jsYX& gggFPRR]oHBH,wd27пBBBl^k֬ ޝ˗/K/1sLڵkw8u8zk7n83p=<>|KrYVX~˂ ŋ8px  +L|F4iU> 7nxh4FuNbQ9sc:tիWrJoIIIk4o _|A^^L4 111 >u_57o`0_WV%>>{GyO>^z1~x֯_ϥKxsa۷ ^ƌ'i&bccX,1vXoر{n6l@II  :Hbb"/f|ׄ`vņ (++ݝcҭ[74 /fΝ;lyL8ǭ~ٰaqqq(B0a(Bii)'O&&&ÇsuV\YF!B!ŋ8p݃Nc֬YjWUjBvѢE8::+»ヒ^yט8q":u;FV?>/ _~a00lذiӦ̢Eh׮m۶ρxYb 6;???`ݝ{j{BҡCšƺȰoÇyprrb̙3UVHff& <ݻww}rf̘(lٲO?YfѨQ#Ο?ŋqwwK.FN}:X^z Eٳ⋌1ݻSTTĺu?M݅1w\ѣ l6_3sL4hsxwX,BAA{o .$++~V˳>'FUVqi̙/G_fѢEDEEٕ:zɒ%̜9-[r^ut: h4r97n(Ν;yyhԨ ,\wypyׯGFѰaz-,YRyg7|¼ypssc̚5e˖ѴiS, W\aÆ L2`GA B>PZdV l8/%$$+Bpp0#Gȑ#>'&&ꫯ2j(|*။ Ҹqcu(L0>}h aÆ ENN~)gϦC(B`` w4hРVC,5 _>`Ŋtޝ}Ү];&L0P^=DZcǸɡN:(̞=4E 60av튢(ܹ3>>>L:FU߿?>(z3<:t(AAA|tؑ!Chذ!O=|  @׫RFqe _|Add$Æ S3eƏϩS6WWWBCCˋƍj7/{eϔT2!PR  PB " \4 /"(( *!@Hh I BHufy^$${>3{gbJ͍"mC=X ƨQjP]]oرcqvvw^ |ݝ3f駟2q* $I1~ie\|#G`ccK/J>MKgggN: @V3o>>x{{R̤;*@0edYVdmmO ''';&+2yyyoߞӧOӳgO;|'==|JKKuol2sL3aݡC\\\6sk |||j5瓓XƇ'F:BY$.^K/d&CXXX~5mۚ{֭?y 8j޽;?}+EEEdddkvC%""Bi qIvv6|3wu6mtǓKNNׯ_W7Ds,ˤlfmdl۶M)JId@e@ ̱UV+,VUA߉ ŵt҅sqU{Lg/_lv߲oɦ)HWV߿?}!>>_~^z1x{*"u:˖-#&&GuVڶmS:nɾ͆JV Q'(ӈ#3* rrr,F#Z-Z}niihc[P?&j&u 6'L󱶶:Bt7iLRRR̮JEYYׯ#G뫤}?,J0feeEyy~J BY ;Rܹ3#֭[o _t:t:ƍSiZ禊8vŋ V%88 Ξ=ˀ޺oJsޏ<* $<Sz-6oތ#Lgr-,,h4Pմmۖ3v:mhh׮7n0ĵ(B)c03fV6tno"$I#Metrr+HuQYYIqq$Le1`***>/))Xq'''3f ={w%$$pi>S%zM㨹sYVJIDFF[F(_Fc=FBBVe ׷IBӓbcc1HDZZs!--My;;;L;KV}XXXPRR,+;:t^\Cvvvqtt$..NIdyxyyViѢUUU+W%&&R[[k& `0`4tW^U":u_|j5PPP`M6t֍h٦Mؿ]O>MnnrΉ'pvvcǎjݻUeggs̙;n ***w#G{nn޼GRQQʊ2%긧'~~~:tH~=zTPZZرc+Lu),,TYv}ǹ)<ޞCa0e"vMDDD ?n4h=5Q_~%[li TUU)G-IKKS1$I3g(z\񡪪h%ϜKdd}w( ???͛ϑ#G%%% .0o<<=='SNeڵ >{{{ѣԩSE1g>|x֡^zsN=ztݷ3g+W$--PILLdMh"6nܹ39r///ÕkXz5\rW+\+9BV8pÇ'$$JE݉bɒ%DDDÇ4iryWͥ[nR]]͌3&VYt)deeq/_w6l̝;#FPVVƑ#GxGٳgzƍDDD0`L||< ,`ذarAy<<<,[nxwiӦ #Fӓ^z˗IΝ9u999hZRȫJ޽INNĉ\[[z2dqqq,YILL JW?'&7x+Wő#Gj7^V;v,+WT.))TVXѠ`X%KЯ_?RSSa…g&,,+WP^^l4TSe777^x6nŋi۶- ((>t@砒52@ ܆ɍQ +`\׮]ƍKEyII .\Ϗv7~ԴxzzS" %I">>2BCC,\PPcǨ&""Nɓ'Rɒ$qiZlI@@r'͛7tk׎Ν;7הvvv6ddd`oo!!!f+//8+XZZ899EZZ\x, 5Ozz9((Hq!e.]Dvv6)nYYYқ"(WVV*ccciٲ%j$jkk LUUUqy%򶟟ҧ ׹s爏' @Էcaau'^yy90h 533t3 ,^777 BJJ FNʢO>g?tڴiC@@@RmwkkkqB~~~֭̓[#2;vk׮(**ŋdddJ``2srr|2!!!uܷIHH -- BBBP7''8 ۛDP=;%I"%%Ei[///vl:@ @ BY 0FF_c^ғ$g:,#rگvnJG_55ACmtԦ$=<<={Os nݎ;͓̑ќܜ9)@ - -25Hn,,U>hlMNmڔw݈Sf2Gg=@ BY JENt@ pz-coZ _aQ@ _)@ @ @ ,@ @ @ ,@ @  ,#Ih@ BY o8~&p FI8q׮] F#ၥ/IY|&''۷CVV֊ALUUܸqC4@ @ YILLdƍP6lذm۶!I$qF.]tGQv/b ];wo>eYرc< b.]_VUƒ`x`>~5֮]{BYZv 5k֐&C BY \~^zRh^QQQ̚5O9spR֭ x mh0سgO&66_|W/3qD:t@MM SNɓMbɜ?^LR@ h@ `4AӢE ZdY6dh4fHDmm-ښ}~FʰZ]oUUUt:4"LjQX[[ӣGEݞ9++:y~Jjjj(,,DףVL///Wҹ=廽=o` YYMg4Z,J"00Y-2zr찰+!ʕ+W2e ׿6lf3;$RS[[61unh&ԛc4oi,WVVbaaa֞F^Onnni74qk L>oJ[R58Lyz*++w.iN0 TVVyGs 555uҼ5_`_YY}lB( ?<>sPT8;;3c BBB8pd5..M6;@ee%o Ν=~8[nFÈ#x't{n~$IUV&&{$kBnn.9ѨT*\]]1c:uBRa07o}9sI䩧EHIOOW_U/NEEc~Xz5AAA]Ahr}eݺuXZZpyyV^W}]ZZʜ9sxի".]J޽y訩cϞ=zlmm͇~̙3ٺuk%2/_'++-[2rHjjj@'YrJ ~SZZw1w`4?ɍ73g=/t:S,=۷1cТE RRRسg^^^<3 4[/_fҥLc:tICӱ~ի,_èQxꩧ b֭XYYJ̙3^{ɓ'ˆ cǎ? ]t z-<==ɓZI&ҭ[7KrrrѣGT^~e ԩS _%%%}=z̙3=Z(555YR͛Gdd$zw}޽{Ӻuk$I><;6oތNSN8q7oJü;̚5ɓ'|N߿r~m~i~:JJ֭ۛ[se֯_O޽W^DEEs1~xZjhd\t_~QFQZZ̠AwlR)Jח:p-[tddd{n4 'O&22R>|8?W_}I&1eÎ;0t7778~8/G63۷ӷo_ڴi$IO2a„&uuu5| Cݽ{7:t $$^o;w2|z)<<>>5:^U*/_f۶miӆ'2dRRRfȐ!΃ ,k.… yjߟ-[֭[$I&_̛7`y8~8gϞeȑJ[ ?aQ_YG%88FÓO>{]=<<:u"H:u* ݛO֭qwwgŊp [V^Mhh(\pxpwwg֬Yn“'OfĈh4|||(..?fԨQX[[cƎˠAh42n8KXXOAJJ xzzjرѣG3j(4 ̝; 0tPܷbkkww,3f{= CY{{{lmm]vxxxR8{,gϞe˖-xyyJRR{eJSLaРAj)**b׮]J{܊``ΝL8Q3fÌ9QZ TUUVeРA] &JggghѢVVV8;;+Wؿ?0a~ׯ_vaJ^^ёYf)jܼyXjݻwGVѣ_4iڵKKK\\\$pvv&>>jkk9x &L@n|̘1C...\v'Ox5Yxhժ#Gd͚5P' ܹ%Kн{wT*ڵ_~!&&777Zn̙3/ooo⨭eڴiQQQG@ BY jq6oLQQ;wLJ+gZlm۶YQ£FÃN:)^oܸ,˸ e˖)$2-O۶mົS^^N^^-[$99???r&׻&Md&n!//^N#..\r z$fYIMMLYZZ2`mfVNZLJR"2225káCdl4߿?F}y1CMM 2T*:7uԇ"e*eS'OKaa!TVV\Gg\z!332:v쨌FÔ)SeFx5 e[[[eT>9rcׯS\\LVV"jM瑯\DSɲ[ ;/P@LFӓ'Ory"##i!RDoO$&&˜9sС$j1K$@5^իWS or^Ȳ\LVE6x2//UVakkKDD~~~pܹ&$ZYYQ^^hl0ӭq;z^yҔ e&n޼ɑ#GwQNee%n3pYg&$,[ ___O6m(**";;KٶmW\!))@:t侾L oڶc6uw``0pe$Y)))e˖Ȓ@ @ Mb gkx{{Vm"V),,T\Z Q 6!C?իW0*!YUkKKKjj t: 0wVS\EMRQQQGG~~>}Ke׬Mߏ^W$Idddкukz.j&;::bccCEE%%%Y4ⰵefeqqqaǎ\v __f-<쳊bA!IqttdѢE3gS^^^x{{sY:㕨MkӳTrttD(Z& GQQQNǸqSTMڴQTxyyqz# ?q@ 1{lN8\թS'Z-T*ZjEaa!5-.\#oܸARRFɓ')++ YxW(//GVHNwYwww\]]9qzY)--eʕoͶ(GEEQ\\X0WqttҒgqu5KVS[[kfI>|8w聆PR6(ʐ$IirN8\u(mCUUF$I"''{i& .]Duu5,SQQO?DΝ\VMXZZ2h {˕kKlق$IȲLYYY(|<䓌1aÆ)M0777bbbX_Zy [[[~W$ȉ'(,,ljHDUUQ3]f܉27&1[[[]\\˗l3V˨Qزe ׯ_'88XMkkkkZlIzz:HFFniӆnݺ*6m$kcؔwRd$&[j5AAA\rF#:\AX@ٙdza+XbǓZreaa @p~iPDDDpI/_N߾}INN̝;F/W&-- =Jyᇛm),((`t֍˗/sez-ŝxܸqY 0x`9vӦMSDݎ#EEElذ#FЭ[7ƌCrr2K,!<;vTB2Źs())ggg222޽;-Z --:vHBByyyxyy)QroIIIrFFAΝ!FVV}QėN[kkke'OJyy9XXX)--… \~kkko=`0p)\B޽ ~?4핼r et.\@ee%oߞرcTWW\BJJ xyyѵkWE &M\JlYIHHJ".^HFF*eɓ{իW&,,Yg=(Wrr2:uɉL\ePΒ$]ussK.{~}㤡~HJJ"66&550%H)XW``ruSJJ ȲL@@:4t颜6Et >(o֭[<][[3<̙3 7[c} wtJJ ~~~vȲLNN.]";;www̎@46^klRRRڵk?M}'ܼyK.Nvܹ3T*/I\\׮]}tܙ$pqq?@e%:wz)i5FsX^$5|^iN6$Me) fP}ȱP;MRk֬ϏzLHH;~aR;݌?s>@ {@ hlڜec6%mJ: =t }n3Ercee4FP/77 .k.}zw[;}A 1O:!@ Rٳg 8lPݼy;wCO@~@ k@p7믋)ts7EY _qw_!N4@ @ B( @ @ @ @ B( @ @ @ @ B( @ @ @ Gez=,S$y%I`0 r5h4h46h4gom{鯻͛DGGSVVUI8u7n --Ǐ+|@ c( @_LVV*/2wFyy9-JNϏQTVVpB&OL޽HHH/`0o!˲'N$""BAz$%+++ gϞXZZ*paK^^ >Çd&ٽ{7 <<<;v,z> 66L T*vvvt?ldddj*>?4ۅg}ƤIpvv&11O>0T*ٿjw=ߏy&P@SO=E۶mI2fv ^̙3⋬^>} 2I$z=m۶eȲ$I/!<< %\lll coHF*++Pȭj*eN7gm%I3 )r%&˲YYnJ͆555Ȳ=ez>ݚh ,--4@ /s̡_~ܸqSNa0:t(cǎoȑ#ҵkWfϞM핅oLQQL0!C(6oLJJ jnݺ noٳgF&MĐ!Ch4Ȳ裏HNNF$9s&":997n صk3gTa~~>9GERqsskRYnk֬ӓɓ'+rS{lذb^y,X@ΝTbaaAnؿ?eee_| 8q" P6&֮]555C._Z&44o(=x 9UUUt:MF~Pddd(ߟ_~Hs!z-,--b۶m={FC>}3g>kW\'o:_^ tQvy4io6Ν~-Zwwwx ֭[-֭Sl2siΞ=Xުxw(**_筷ޞ7|&vQׯ_?{Bm4_ IRД4Gݸq;;;ZhLj$Iڵs{1qD6lC%%%|Wiӆe˖ѱcfSXX,t:$IܹsױBT*:vHNNEEEj @zz1c B߾}_p+Vɻ˪U8z(~2*++ocҥY>3|E֬YCdd$o6O?4Gm0Yvh߾=RɓtJũSx5j ._e۶mwjkkϯId0pǎcΜ9 2Yٳg~--wedff*sbҥn:x T*ׯY9x ?ìYx?~<:III43 þ} G~˗Xn|\aQ SLGAVNݩY;vrVT$vرc4hWWWƍ޽{ 7o/*3g*ej5׮]Ãݻcee *A͛GPP:Y,tڵѲbRduFqq1OfժUaϟτ ?@ "$T*[^q96}VQQdV)--Ȳ3C wax{{kQb߾}[Gy~a%6mڠ鈏'77_ye+W닃R-Z(߲,@rr2)))]#T^^Zn,Ӷm[ٳgҥ ɴhѢDcuiYٲe _}"Y`H⌌ >>>Jߩj'''Gq/n׮];9rd%괝CeĈX[[+gMj$6mDrr2111lٲ۷j*888pIrss),,$>>:ڴARU<dY&11)SE)sbb"}!**t:0i$q yyyPuʿ_Nqq1YYYʦL+W0 ={@3Kv裏PդMnnMt|v 11wwwIښg*sj PPBs:"/<<Y_$66h lll;wba dӦM:u;wСCygSPPȑ#UDi\VVf&eeezbcc̈́#h,h4h7n'رc9A*E)5 ZY@#>dF#Zkbm.⋨j,,,]vu ZXXвeKbkZݹsgyGٸq#6mbƍM m,[ ___O6m(**";;iȲjuёGy#Gϙ3gXr%jZe-BZZ7`4{/_LVV򹯯Q[[[gnݺQSS` %%;;;\]]mGV˨Q0`?hZ$I*Μ9c6}?@ BY 8::鈌dȊ ***ׯ}ݻwfoߎN#776m0n8x RSSY`1N>ͧ~* eV_5S3g:vHVx2En,-ʃ=-:jٳgJ%%%߿={ޕ5鉟R\ѣ]GKnLX={T7~g|I4"wEaaRZ.]$MW,F joQHߨԩlܸaÆ)`޽[ f08|0JlVZQXXHAA..\x:$$Qt҅DRRR>p'??'''BCC9pUUUʦV||r> wޡK.j]̅ qfz7w@ @ cQՌ75kְ`Lvv6ǎcڴiD߾}Yt)#G_~ѣGӮ];j5ӦM^#''oooN:͛7߿?j???={6aaa\rrf=z4˖-cذaTTTp%3Sy{=Ν;Ǐ~?jgghYj޽{m6NZVR{'x$fϞ?%NBꫯ޵1n~饗X|9tܙSN믿V} \]]yWx9~8!!!dffԩS S\ugϞ믿άYx衇\zW_}}Ә>:iOt:saʕ)&&&zj\]] gҥDFF3бcGj5ӧOgŊ,Y~JLL .ӳEVСC駟0L4+V0l0ZlѣGqqq!44jM oG%?7@ Ee2229@`B$~7\]]Hò,s9dYk׮ʢ<== |VZZʅ ~:ﯸVWWs233xyyѹsge1jW^%==]^⢌(,,ooo69..TڷoO;w.k֬QQ$+WpUrssqwwk׮)ebbbS,W{ .Gv\>}4ʹ;QYYwee%:}re ݻwn,sM.]Dff&...f:]7f&rnSMHH ##'''|}}]^^NBBz:t@@@۷OEEqqqxyy9%%xdY& NGZZ]tޞ*++|$--}*r9rrrC\v],ѣG裏6[YY?;{sCHHBBBFB)Se:kբXR j[m9:\UQ@+" fB {u-Qu>{>q6P1110`233۝ӒmڴITrr5lذ#$^?D{ѨQڭv~xٷo4hРvn-UXXݻgtp*,,Tllrss!4;|IlٲE R.]ڕ7W[[޽{kСQmsv%Zu԰6縣 ܦi0 [Nwqx#V=ֶ:S>>8U>δ/n׿zYf"W}~?#:sNEGb5;3+7mqUUUxذajhhO?3g*== mU}Eg{Dn3۲,K7nԧ~.;Nu}/G2eEIII0Li̘17n J?5h > |GmCoCXm+-_'|_dQ |SѦ|۰*e (@P;vNແCö-/q7nܨzM6Mqqq,rد}i-ڵkL ;ew2K\RRZt7jŊr82 C7nԼyT[[{CoN,Y_ #h֭m (mSRRK/T7o>Yf)111؎;بnM]t㕜3g*""ѿ뮻a0 :T'N p^~L]ǣ@ p9vϳm[>O͊j7:󩢢B^78:22R&M n󩲲RҥK'{JHHPHHekjjRhhBCC<< |>nEEE{znhrrrdvmٶ@ &reY,KC@@͊hWoQGlXxnx[LӔm mQ?6`ms;ϟ)SL+VĉuW(&&&p}]-YDn[:5}tgҥKk.izTZZ;S ,Pu뭷jӦMUvv&O9shݺuӟ{Lm[[lѓO>ph„ 5ku&I />@~_;w}{ݻvշo_͟?_Ç_۷Owu,͛SOT!!!0a.BK֮]'xB\s~i8p@m!˲f=Ӫдi4sLEGGwX\r{',ei;vl9˹z'lG;v(//Oeeejjj G"ڰavJKKSJJʂCCCյksd۶n$O>p|g+##CWHH1GTWW}2;ܹ3UVVڎ 82tx2 Caaa&0zԥKv0 #d曚9s233*CWxxtMzn:XB۶mS߾}u 7tٺڱcJJJWG G~_vR}}}(у2_EBBNgMEE|>NxHOOOWQQQT:Uyywﮪ*=ZhF)0ب//á$ʶ`z:p@Cm۪i:3u駫J=?;b%ΈVtt.eeeQOG֭tjȑ~'@onݺiz,۶xb O>zGB_SN9E˗/Wyy,R իuEn;[D_^555YaϰK/rJ577+;;A_םwީ&x߿/*==]Z||>L M/++;9>|yn)۶`hzߎ/4Sg… uwjԨQڼymۦE={ꩧRaa./?04n8_^7|:,kյknM0AժeY9æiwNM6^)S(//O ,Йg -[L?Op?uT]Vw}ƎYF7xM(p Zp 5|pi۶mԣG_Jsn67N{ iffJKK5|͟?_cƌ+2(D,Kk׮Urr233l :thpnuuTTT14y޽Zv5m4566>SVVd۶vޭ =:풒ٳGF 3x<ڴi}*333&}'ڷo4h (&&F ax̙+W]u6m7j޼y_80}'gϞoL(><\}>ݫxR{ェm۝8va /ݶjj[|Pl[K>@?8TWmb _wmVp8=55;Y/ɚ9s""":@ e˖)''G?rd׭[{L'FIInfr-:tQ/nՎ;h"9߽! MTnIWI}nxY9ڳ (pbtMF:o˲v%.࿛qlV i,K--- SHH P Pkk PXXL<>O͊lW@ ۶eZZZrrkmm$qQpݻwWBBBBBnY~ZZZE[+׫J|>9#sҢ\v:nZZZ/m) IDATGs;,窩IQQQh@l>vyzk; y^;~_n[ ڐm۲,K^W^Wlmh84ag@@aۯ?i2 ?u*24L)C߇- G.[4L8OCrRdےi X|Jny>9;ewp$Ba9δw4z͗@P|nԫ*߯]|Ś8qNxEEEhڵZp=c]wݥs9GWVQQ\..2駟V~~^OK/T$ϧw}WK,Vxx?|M>]awVJJnرcUUUŋkʕ2 C UW]uuO{1EDDhz74c -YD555JLL7߬,߿_w}l٢|ZJ7pF@ 5kgUMMBCC5m4wymZ|^~e7N򊮺*vi5em۶M[na:5i$=Z~ZZZtꩧ+P׮]%IGK.kf9]x/IZ` TVVy?f͚###e۶vܩ'|Rv԰a4{lHkΜ9zWo>9N͝;W&M:bGG<^u|Х^)SCӆ MPddϟÇgD<6n(á1cK/UBBB0{Zxr4sL͘1CG^>l֍7a :^m[-[~8?S=7xCK.Uee> 0@<@\TT{Ww֜9s4{Q/;C&1B?OGjkk.H~F,h_Cn?<9LS@@XS3eZ[tjdfV@7/?Tǣ;4 imk].b?Na~$O@=m> 05*;I=veG+TP~h^ޱE۽_}CM znZVCahXR]=nRv;δ_W1c^ug{2[%PϑeYzkJMMUAA~ʶmM:Um^K.ՕW^ٳ,K{տ/]}ڵVZE)33S\sfϞ{{UNNN9`xǵ`eeeX?^.IRKK~m]~Ln7Qhh~^/K=C ~8߯Oϧ+W*55U7xBBBsG~;%&&;ТEԿ?TBBlEkСCUUUGyDuuuk=S~t-(--MmT?tM7/͛W_Տc{w߭Lwym[^ytMٳvء{W9rn&[Nuw*99Yiq%%%[4uT͝;W>O/n7Q.]uV-^XW\q|r=0`,?O-YD7|z]vW5fIRee}]]}ՊozHO?T[[[z衇s'Э*á_ _~*--Ճ>(ЦITRR v;. ÐUUUmLtg+''G~ΝCK/vܩ;CIII[7o.\&{zu%4MmذAϟPllƍn_a(+1Y뽭 j_VF3t\NTQm[o֭ݧNWzB5 A]vky')E͞VWtJj/]3tYg>\_~{e2MC-VշȔO{O~I7!i0L}^=r9)+We^糳@.KW]u9:A  'NԔ)Stoӭު1c0 V<Ə`@zˣ Rx*,dEE 5ox#0=&VҲm|u]iun,آ^ɪmiVqKFfdOBwr//WyX!%FwSi*9Rc~/z«=ȗ _?b.m_ —@P|%$$hԩzFNqq~ Ҧi_~ҁ?쓒;mm*5558L0 EGG^mXn,|>r׮]AݶmJ k.ISv.+8'766i׮]Km~`P.uv}D]uU Υ=,W.Pts9CtmgdKuqpMNUd>x Ðeumkoe ж}{s$-545~%eLRRN=Cn  |>(~u,_T=',,Lascccp~eMZ^Wm1tt|z:Smkڵz衇tYg_~~{<vC!#E644vO>iw+222?.Ll|ǣCrss:B˶6-ϧݻw&LytMݧ j 1ۖu۷1eȐ׶F ƫKTzFDvDi=á&{vhua^|Y޻SkKjz䓴gIEG;2["&&F~_>^WW'4, r:kxEE|>QiٳvG,4UtMQQQjhhhxMM;}"SO=G:+u<33Sw,y+,,Ԉ#Np8T__jc^>}Z7p|LӔQxx÷^uuu9aaa{+;;[ӦM밭t]-xh͘1#+z>)*XB+ -YqꗒUhYA)3`y|dbN;R#3~( kST_XfG-^g ؾzOV/VQa=^0U0];aB!GH&U6TVV/_QSS.]#Fw Ǐofٶ-ǣ+V(==]}9k{ꥦ&Z*x&ǣ+W~_FHH:,K ޞgŊP߾}O>z,R PQQo.-V]d8q}ݻ7M6iΝ9rd/4iǎń :TVRkkkp8>7|SxijȐ!*((g} >mriz뭷 /'|RupHR||맟zGcǎ/.ۆԨ:x >]}{,KGBCC"˲:r4e˪ {*??IKT\X~i&'i*6"J#ROWkRZo*wBT' r{=2 CBVO[inYUWN#4WW_k*e"BCFO͞{ʖ =Uu^V̗-[aie5y[Oj{pl("""t5h }:pv /USg… uwjԨQڼymۦE)"""##C?ON6mRjj֬Y#I8pIi:sUPPnM&LО={G[oUnN>fΜ\7nTddt:UUU E2 CQ﫰R8E y=f6߫ZUGlf*:4wfLdp-j06ecضrmݺUWJJ\@˲,mذAaaa8pQg]]l٢"Ge?TzzzpQřBBB4hР"%$$(77W=z|hĈŲ,ܹSwVEE5dȐ/))ў={4j(\.Dcƌ nLvҐ!C-˲~zEGG+'']466j*,,TLL \[RzիWc˲n:*;;;x۶mSccc~mڴI;vP׮]5`566^GkӦMS~4rH;nୱ{@8;v(777Y\޽{+%%E˗/׳>~ymںuʔχtpz^^rrr+8??_U޽5tvkkkeG Ŋ m߾]}'55Uz갽]ަ6mڤzeff*99Y6lX|m+}GGGuњ5k~viJKK;g۶vڥ*5*}g***RXXrrr}+UXY1Y8F֐Y k᣺Q[VQmEhPZ/e$$4 U4i{qE*RrlW Ra=>6Qquz%hPL:Cd۶hD`P/<wmULx :>lKiWY47*#.AC3*6"e;22 ˲C-:VG{ٶ?+-W̐tuLVG~~_(++Kf:nݟՙ|23u|v|rz~Uū,ۖqgmhmm_ %v^_8>^l!Pw9Ζ[ 5a„NDQg8fg갳*x}*(S[cFF3(D2e.>AK:bߊlE(޹oD2e (@P -iW~}X'˶m*2mm޷G}Re?`Y_*Z%k]'UL 7e֝o ѳ|,%6N @*|S tdOÈ=EBt8d[9 S!.9\;2 CaRh[aH)˶ mϗ124TN!PmVdlۖrp-/ߧP91ڶ-eӪpWBٶ?WU_˒4=b*Y&Ei:c09֭oK۴Tl2VuU㭿+^*A:M#3>K[?UCk.4Jg%ҍj*۪9/=  E#Oպz TdhlU^?~om: á1)|D%w$m-ݧ捞ӮJ9N]?j& eN۶usz3,얠ݻ]=I.+-&hhzU6뷫QmK~:i:l鋚KW;]mue/ϹX!MqX;nS}N9Sto荽4{z,յ4iъ7ʆ5oY2 S wǝ=z\wb#5olKk+uɺb$۳CZB薤EfoWiG]|cȲm#un= 얤uˊוt=n?tao"(Z=Z]7tN뗫 :s0]3`xO9/Ҭ5c(K>ZpYzaWvWɖwom)]}5{DUhm*A4 ]e)iUf$ I륋 ՚BYްZdJؾuYz9|M'j\@]AѡᒤT=p^fGjL Kֲ}%uX⺩[TdٶoR+LsQTҤuc:t)kTlN讳ϲTZWM|ѣ ګljPϫI)! Ÿƒϩs7kkm.:\~ɩ 7:P[ \_Sةq_luVS1t R lIDAT|\0-4R09 3X\xV>.WvLVo nQ=PLDd"PөzgeFoݤz5<*j`G܏?ڲ,*٫S{V+4xhL졭dj >'2$TI^F (p2%:*-\!!9yI'Wa!-t;*wd6 Imv~=MuR2Amg߶lݽ]~TkhvQ( (_-w,# Q}ScԶ4QDx Px}ZQjuQ)i{۝=qDD*Ҍth}~u:,}8B-߯9!xWu5)=K*|^7a⣢%Ii`:@I+tJaAP-xu,K!.-+Vš_i`xm}s:=3[e͍w.tѹt뮇7_i){.8Bm:PHK+2li:8\ڐRbe~-o&d۶!iTlxnX7{<^ޕk~Oi>R͟?_ט1cho "lVqqۮ+YNIS+L_[\[ SnZ/e$$xV)TTe%}X>۷Gʊ SVJZY!eևyѵ2RT[l ߾r2mխEBNf(׻iKTR[_Y5۷(#$IOw䩤FeTz$m.ڣŊ ^jliV]Sdil[v+P9i*.+r9^Cڼo +,ei`j u^W{eˡ^ܪ>)iJ/ۭk*''GݻweTX]>l˖lmY-C~mےqp1n:Sc͡cP>v;:Nn.4`7C_km\~ˢ2A2vS蘓v2;ay;[MH8ia࿅_ (@P A2e (@P A2e (@P A2e@P A2e (@P A2e (@P A2eA2e (@P A2e (@P A2e (@P  (@P A2e (@P A2e (@P A2 (@P A2e (@P A2e (@P A2esǨUF(rcԮ X*U6 Iox 0MHµ0Z ; e0PC e0P6UA~nuLgjn_]LeuzYiqWU;M8PlMբ fqO˺QU4y:N_u]Oy~^yzS^V/z''뺶n;>>n!(nmc\zۂIENDB`ntfy-2.11.0/docs/static/img/rundeck.png000066400000000000000000002757411462047176100177370ustar00rootroot00000000000000PNG  IHDR~sRGBgAMA a pHYsod!tEXtCreation Time2022:10:05 15:35:18`9|xIDATx^Uϭ;;Plg> g=[D1مX X4] s;WP:*Zk9wo߾W_}uZZZAAAFF8XS1 `0~ x7k֬-ZD@ P*"H0t `0 &%$)j3 `0 sg)fj0 `0bFT`0 _ QO`0 4 `0[O`0 σN`0 C`0 ``0 kK@ufOoR.=dz `0~zyO4 `0*b1J*פ}n0 `UHf 1v䷙RF= `0 ,cX `0 D(.=x$쭧`0 "// S`֭h47F= `0 6lXlʕ+$)..^~=-[$ڮ7nبA-5[NF5iڰ~*W"HIu*oƾۜrr[\{5yRcAB!@>% 2%%>s'r ?3g8p ХvJMԨ:ҦP(BBp8Rg|nݨ$2a:3K$LMb&TWZ+Խ`0 jQn݊+B?6nܸlٲ%Klذ5j/_^E B⑓df).lzp-h𔑙I`.{> /XgfeCkvvv^^}La`O>A\2 h56ș⺃&e\D;񦛦NJ$ʗ'UthbԨQDؾ}oq֬Y?82@M$QQ2"J⑐$pP8$%$GfhѢ9M<yG4hдi͛:toF;o޼-[z4=p뮻:1?#< =c5QLN;4x9yd Ҷmۺu4iܘo:Qnv 7|D0;u.,(xzn&(O<ľۺuƍWCR€3,{&R`0 PzxAUztH $;;J*z& ?I~3'^.N4裏^~=u"A`ʕ, Q#ZreJ(԰B "X? }L &*u@+v:`LZ7@/^%@D[SPP@0TD z#Xt|tqR._㎛3gEaƍ~8r)x{w H/n'1g+^B:s Ç?ꨣ.]4c  _n:4h`J1(`0 8 Nb,VH L&ؕܡ;Cm۶m7jԬYF lrɅoAƎ {!XƹY'Os>ܿ_*Ճ=P@'Q+'|m>y1T[3gά[afϞ=mڴ ՞|IPӧOqJƒt>,Nȑ#_{U1B'c4i҂ zM(ϝ;ꫯ2|:.\tǏO'xs=aIxlZE=]Gٶmd3{|:bi`0 PzVZr%\rйիWoڴ *BObW>p(t!$8.))I DΪ\ !o^zI<* j$.1HL|GAtIM4Ydɋ/&ۈ r_7:5?~6&&@B A!++KX@B4!g̘kbŊ8۴io@{='NТE .˗/% xD cQ:B <3`njժvժUY߲e c/93}ܼ5 Abƍ6lU\y}Ut GFJf)}-vK5:;Aկ_~ Gv=8_,M*b t !uL< f; 91˗C<[F 8x$YtN$Vʩx !qtRJPB8|M"`„ [[N=!^M9e4qH u޼y3B9{CLW#RK*`0 `~IYbE| 8lTu;,%7SOSO=uʔ)/[6y-ZrTeZI/(aBBÃQERDВƍد_S.H}Řࣸ@ /FX>7SBPBqÑ0e 4KUP & ŋofPxO׮]5RZ%ŖD/qbc %4y޽`TA:J*n0 {-Yjժ\6jԨr) PZ~3;B z?Ts@il 0]*PFSЫW//0GY `K.=4h‚ ׯIPLElbe蠯1X*W_}uӦM!D,z({ڵW^ƍ%t /$N,0tյjŋoܡM\ mժƏo*CxM]HQbG 5h `0~7Ɇh"a&nMj.>́֩S./]*T@DĎE"#~wꩧ_Q"aKDJ*'ta ;x`!GC-_< D A< GT&6%c_\(Ԯ]{Ȑ![Vl|QZ#^c1

      >><0a7e7՜|4~g&Խz-*m["z&8-/ O]" qVMzΕ\yzpӕu o#![x K嗶~3N!Gnm-D-{ ѐ8<)y#~ N ~dfܹ̰a7b@Ěx_ᠴ]vd4o߂C,0DDDDD X$m|5y2&gҸA;f,Tv(ufk`qq歇#+:-@|۪% Sطt9V4zW{elȁS۶B-s,_r;, ;-е]Z}@hakdKIJq` g9g4s >!U=8$#6YʩsJw'>| wƬF0tv퇻Ưٰv1 815u;CSջ z }5Ưh<%{ob]{7">0? }0ٙ8hD~G Y-hw[Gv<|EgۣͯbhFlhn 6awGcn1""""Kdd-0 s;лS't*OƙX2c12!7'݆ +?.UQ7!!̾ 7pֆưoBӭgo+W?^s!zcVL&N~zws#'/~] mtLm%dVpއSq'ӱtJq<0~(idiIX1~,^~V__Z)A&FciX_;#:T~Z5lJZ $)fM~ j=D\qz-2S>xt#{p Â&]LG"Z>h45L1;CqhneIpq!SޏQhN?V758_hҎCxwuh Znp2"""",*nga85E^zJ@\{MK| vz8Fxh y?|#щ=q'quJ)0.ux㧱ćXҶjv}_{gsZ@܄~x29̦A<9 .|x|^x\5JF~'P8 =?}ST? ό"TCL~Ѕg$>9{p[u߀g>8O\x!-b'C1ߍ>^_WvZiq_6Qo"""""1vsNt$DYvpnHEˆ3d57 Hc OMFbR' S=]|FLza wKAd\>N:sox3'L2麶#G".. Q`}a=;":}3>o=w0(*޾}0#8$YG6a[wcW$L۾t[--4-IPK&j`·16 >VN|vxkc.,u=`q>|^[7~'6w;罎W̳9 0(,^HoF7ɶ_;΄fBH'ZO '}#!x H2yd cʔ)|WJٱwWi?/E}X;kj>Z[`Wk&bqVV1<%ϛ* /D غe&\wtU'@z %NP*** UQDEQi@)%$nz6ٝ&H}s<'{3-BB8oȕ,?—agjhl yքs8r/[C{0r]8#15䠢<_AfX޷&fK8$B!eKJJ Ǐ :jšx X+H+~LM?>Z/- #{8m _GA< lkz L]}dmXh,Y X :l=1Cn:))\ YRG5j] EcNЬMib-Ijhv%?-l5c{Lf`LFJ(NLfB!i!^,lٲf͚aii)\R0t&_ĦYc4KAcBZd&sܼm6YSPUT 3k&:Bw,FM(W̨䓚.O@{.B!SXWo#wWp6o̞={ Uڵk' XF@~yiTSB[)<2tzEľ-,Zu ?|N+V}fDsMEw˪BA8-OA#h_݁K_0nC#_ZA8v$\B!=4#cdž/!x֞V7EQ31o:{rQD@c&zR7=Vhi՝AE8b`U ML|@)6GKcb$>" M|ܫ#-.1F}?lܽFQ1hph0~Mb~Lܶqi%3|ƀƶ!M|ДWcVGOåؐAZkYL.j( yVr/q19#撫MDS(j ,ߔ5#ґy[1V[B!sG۞_nmуoW![eq*p=[աu[a H’wZ]џ־軚 V3/qq~T3[dZɷ=Z[ݍgg&KKKڵkGv$3M,KWS {Ӷ4~&_Ģ}hQ͊wHFSVF >ChE~ye9}FG [̱-cMnB ѫ /£|s^{ģ5jvf%k'YWB!st#:t(xVzcYq[F)`܂$,]PO`1riyN#Lf-SG/aچ6r%OVh>>Pn|'Jǐ^M(;f4?V:o= IncbbprrzMUUF#zNt&!xo҂{1?N훳Z+CKaɻ+0]nB@tt4vvvh$/!ŒZMaq)/[u<]x^;|ouQI ŀvZ ='ڊfy;֊)$?B 5EM_R?f;_.y5E֖_x*fNj!a^)&51ȭ,F|Jii'aj[!k鶲d{_FOUs?cf:o( b &ųIL2[D2W !xX 2 `}ky19j6ZWoݖK֊R2ozqvM$B!^;G?4V%4+'8k] є_2V]UclƁ3Ԑ !/eq044ᡷՔK*FM7dńsfXCh\puG_Ck倎w+A+{:uqط3sGo@I96Dc3|*MI[!Kq5 hT &9 /jKRgLad!BkqWtк痟Hr"K\V}4V&Sm,*2son:ZGWnS4ey_6 [a1/2mʏm{*zθyC'BbB~F:9N! Xy #2ؖ_|5>w>_7Ey4 :ݝNo/۷X,yӫwĶV!ʘBbI,ȐB{\BH[!!5  .`q3i!/`B! ./TVNrd4ebH9!/`B!K̗maC挘=+B!^rr5B[4aŷO `qƫs<8 Go|*>Z$zfL JȞ rC !B$"OYND0ye-}˗F)~^l9z,Eb凇USYV;7@J51}ϒiѰ9y. )MJm^w5iNǑ0B!D@!|n_:ƑD!K\Fr)&oұaY,LNNup.?o*nv-a#6P/;FN %丂G{W.o_ĺH1-CiQي1bC7~g$1:bҹc=JF8Ah֕c9 y+l hkмS{os2\dҍ-ۜ kdYC@B.mn9\ĺ\4Wk:]T!V}ۦJ¶7^fߟ뉭Ҏ7}RǬ|Nՠ#30R Kl+4^ʇeΓx(8oKK!w"#Xi2\X̼Rˑp2w5I)nG^M'2~ЙaPKۦO8qmJ~b]i'|nhrc)BތK?ߜ %aע$FVw.! y0|% #WNPfEDK$RV 4/>_=>fg]bavgܮ-qK#G1gPfE(V 8KN?5ZGԉ.c^8C){oƶc&8.r8_) 񬛿5QyҷB!^22E!"UF #֖cj:aY/?ḇfL0ƎZ?3'0ZF IDATVp.Y2I7Ϩk}B(4lzɏa @Dp(:6/^- &ÜK1BC&f4ꨝYlh@o3ƻTUyd1QlZ *+pBc 4Q)D5F..ςX?j=x&è,iû=t0NVɖ`K[ "ro d:H1tn!B !xRr"[c?M7/yIC dMզthAp@L ' FP3Zc )F q0f6/]S/s 43Ը:xKX2(`IKNCSڅ Z\?ZȎ@էN>FW Ps28Ԣ~:mp$3IWLt[hMo3F@ g Ԩ$RU(ѐg6X} ~50[|T#؞%@<6uzJpA|Omq1~ș;/X |\U !Bl$"O+1q41ݬi?ߒh"5\KfN'wk_,P0+^k ɩFLejH%ӉR1B > kѐ3%aKI⁅L  h\")I'p͍0~FOJߌz%UI"٘K +. {T,teq6F$b0-A)'-jr!|S&S׏ʷSӖ_G}=gQL(^'_kk !B$"O+un%*$̢ 9SݫlJV$63ؼ\=B(yS4CDU^B 6G0C%={Y?ߓ ;GШ|pWr~-[4=vy2\%#S1kq|%`&2*{ܔcVMd׎HL|'XFC 9ggw\Ȣ\S> ٟ. *֑~~p+B!/- !SRxc;8+L3`S jո%WkyaD\JG}φҧ,S!:80ҊǯAVx0GԪC1ƳzR.K^+YoB ~ ]B3n>SUvJ*لw;\48wpl/o[(Q [3(Nq(2|~-JJО_xbEUZ̯G; !B"$OIND0ye)}˗q~WкYӆĵS<)Ą,edW`b[gkQh@Q\ ҇8~$% ʁ {աƵy '/>5&>pNz/`ZËN 3n^rǘA_3$E+PM:׿s¤x)8JmpV«VR7IM>O1'0 q\=ɾ_svr*|?F3*v3]+B!B,B_y%4T(̿(Eyq]43oWMZ[Jf ح/s3%46V:1`;絎.ӭbE% {͆)CEM #B:7_&$,"~TڪtՆ h*ͻˮ"5nё2ZUqz0.Dӡm#jįe?o2mpe \g b8)*=?Y<[voeɴSϿ+cv)jѧmܩE!BSTUUSLL NNNUUUh4t<%5pd5NNX+?6.oo|fnFzS ]rq*bʃ Y&SD nۺ\&`OqG&L .) ǒ8ZiH]K|oS6+q{m0]\XI%yB!ij"::;;;h4(`Bk2npG݌;[{f87 y݂ؕ(P%X9R>`PRwY;Q~f$ NHɿcu˛s'ս̞K !BB,B#L Z/=l]AHQ;1CSy9oAs#B!`B眪XRJž QOcQowaOVB!xTp媀нFB!B!S,vm|&!B!BJ%02 m (XVu.ՅWwO\ZbB!B!ST>uh(5s$ψ/YUH!B!OSr;?ҾB!B!`vwT/fϕ K!B!H!''GB!B!^O%sۻ$}} ,9wV"5Ӿ}{*T #B!/`9s ˖-#99>oVTZɲr3ܹs,X;;;`C,B!Bz,S;< 4r&gQ<3V\}I&4i҄>}`ggǪUB!XF0~i=4DxfԮ];ws{B!B!^ O-m-ʕ݇OV\\c̣&00@!B!,mkŧCoŧW '?-JrT!SUE8tN >>?l޼ݻw{n6o,'G!B!y-:ڶBY NyAh(akϫn5}WԴ,ډFܩݔwǮ#FɄ>wZ zm=q7{1H7ţju|7$4\^nxw˱0@K:|'[\ˍ7fFc 'ֽ o@ͪʗOtUwEû˝*^4:SIv,--i׮ڵRD!B!g0%PR0/a/F.-J` 9G:{LKr85czLˠـYSL3خϏ]Вٽs~ɴV\>{lȔVn: fBalάi=qp?1x,>+C11F5|EM$pDOIQ3ٓg"kҵFz3'zll@f$"B!OɋX)ۖ7u?ZN"6ȌSf~5ڻ "#v0{!J_{b˯0bf^vrNO؈q򀥵 z_O"> nb'c4*voxTA?bq1z(%K>֭''Nxb޼y3{@UUڵk''D!B!cJKQZWqg ս(!oF:x֮-9䨐_ 8w5[Me}Pq>>"^`aiziؠU_,JJb M wXWj |=uҋAǏ ''j[!B!O 8HK]3TjTYdd(7?reԲ¾]ǸjƴI~Нk|PSp᳴bkG2IL̺ڏrsQHϾ"([wbV&ULpb֙ !"<#kc9|$gVNN@A@ΖqNB!B$<,<\-+|JrTYTAR;I)/òSLU Ai`ުmML^Op>إn3sCU:ԭg޴kҖr9LfԸq2>cKd3yFiǴJ7TlhE# \E"jټ0_L㝟G2g@ڵym֭+ 'B!/EUUQw2tk< prmF0^5yt J(%;;͛7 o---x{\CUU1zt:...՗_ Ү|O>HMe3d/6!BUtt4vvvhP(cxY%In7 VS8/8'][0li"!B!Q !0لN:ũG>;U!&\xY [!BKE+G[' !DŒr-a]SUOԁCdK̦Щ pٟ`iu:kQ?ɻc2 ۫TF?9\\iq 1n!ݫVJi2Ƌ JW"*`L9?UZעA>_wkWbб .Uevsِm7iB!sLB<&@h0 8ՊRn^0H6h-0t3? T?\z1'PUjQacXhDZ`<P!BU~Ya_Y7U1rjXl[+h)uW~ViUa9[vـRM~Znr<4c<{"S5,XĊY[JUpFE"9 %G5/=:c8aDw 2?*š1օrPzc&},nlF7e,9Ɉơ c6L}WB!sMiB*̓j2LwbPwWBG摥K&ݡcБSєH93MLQK-7|]~Eh85A:o2{gX_jXT1GC)YRW.'D%s>xo_(٪wZ} _B)l FOҠf}qUo9 %iP?0HB!)"OբjњYa_M€oyh BƤDըCc l 2ǷAԪ_ۼV. d6æ0a`򞄂Df5eu; K5 iq |=VsХQ` #E ޜzjhp(~}[!B!w`BU!|?¡%8֋VDU;i=er>*c)ݒʖi+/8P|3k+/cָt-N^nL@ 1WV ,\A[ohKQP%_X cJ"I[pyQ,-bJfF$B!/ !ijp כR 7853޵jS=ߎMadh|Ο1k3CצWf'UyO;#j11F@KY/Jj ]CGZVTm܀$q%ɀ*Zu=T-柳qp2"AKwʨb{*Fld ds%$/Xk1="2m%<- ؛ɎQ-i:Ӕq=\ZꌱA+f$gRK-mڳrI3oMWy !)X| b&Զ i`_K0٘z YbVӗZJ06FfJZZ6}hhu i(}Z:H%y- 7TNÀ"$/Xf͚Evv6N*x!xKi|֢*4\N'XA j*11h*Ecu 5ƶt@Qli"flKmT4yszSjTò6~(`>4cW_ORb0k=*کddkpt{d(Q[3vh:.&1߿-e$"/Xhh(WB<UUe ⱊ*Fz=:9B! 66X||| iz%|4/h033CѠ\[1&SB!ăѧpi.&cx*5#q8y6 6JSɭ"rìpїT-)ZJXeu~EN:"NRrvw[!ur=Dݟ9y np-Ҷm[%xnIE!B5!X3lMizS<o'cڍD뮭:X8QQZ+rz֮$ )9Tn6<]OĦ5lHƍ7XS+қSGذw[ݘƱHS{VBw;>v/w^(z?LO<w !ċF,B!r9}0 },9FԄw tE$9}9Dա.q(=0|8|\^w\Q'rNݽ+]tiABXB!=)''w%$mRY# q0p%.Cd߂j/W]}rI IDAT'rNHpE$B!~Vh0bĀz߻7`  FÃ0z?s$"x!Bq;F;3bf[EIg5υZ;(^.]yri9']$"xi/B!T,oSZ4R從M(U;E ;ͭ8 Tly_ Xzz?s=E+BXB!ĽѱlFfzǭ? 4j^ LKԥwQ@S.-|C+,q\,~Ţ_)C!u2AHpEӎ=z4qtX[[?wVU@nn.r"g"w+p!Uk.SGp,. h׹)+jlIjPrֱudͩM$՜)gNVP@ڔsX3B1Wܱno vm tR>nMf=JKظG.iV߶]x_1Q/c<\tWp;g-d{]^F-׹y:iKո,fB^-XR):77oYe$\Oȹ ,+4s&1zwTP]˾dƻugZ{8\1]r\k*kOQpa'K6P*{74Ȝo7H|2֞+Ou))8o6nG$2(՚N=p(s>Ì|##{1i)χ|`v _Èv1ys! ~ՅI D&g[=$qG%#bCs!%SOFy#eYŦrxc?̰I&ZDӁ4n:֎cwHtpBٓ>cKNfb:tƑܫh'}=7sp, T.f֨:Ens>ΒO[Z߹$X{tk'(]ѢW,?|C{tJfXJ6-=}'1i::Ǵ#yռwԤ=Mnub8Ί17$ sz&E!KDZӫ?O GBcG:+gRq1S{ }a0>gQOn֨ͤۗ BzhŠaesf/ ?.w^I" ~ӑ/lٓP' X2j>1VRLSpޖx=fkۙ1]#`Ѕ7/>9[c|m|ʯۢINbٰn;0J:xʰ0!B<"F!^x-3zUҷ>+6Ch%4%w8:T0eto.35?0/Y=eL&h"9 mabD (mhcN"8VؑmckYUր/?ḇfL0ƎZ?3'0Vߒ#Ƣxq8Hr<8Oފ[ E53.s3ZTR6 e, ŏMQ9;GNL1_?*kA(\k*ǔP> Z/4dohVLڙuyˆT96/-|NM6?5l⫏}݌&62gtO=܉Y|ze'Fokc|(b_S P068h@woB*{fT/Sb{nWL+GQ j"+>iΐ7}%C4 GXX׀|6D590]hʬVHƷۣ"fc`,%o(KcY*\g:Δ15ƱvxO;ބke3 cnol_7 #լ,o;/ B4|9玵q6PLS !B,BR8/9NՅr\gPU( ](SNӶ dӝ#>ۄ.e.cwۏLam~k~M*F1s-| |)|ڔ-h)h4޶R8)$ יˤ@&L|ՅA{O?h7@D[WS  #ͩ-)T}:Iqc9hĪ|EJjAI3Q}>)< _pKyDLj#((Eyg0b\J$zi 'dK]/pfX0G`5`xHiT}J2T*1jWϝ GY4{1} YNw|M׽7[,#FDvb 5{Ϣ5[5Z6FUT=cKjD"{܌{U-AmMhA]kv#Jr:4 <pyN 88ѓ f.AQyn6?b_#;Dχxtkq'V2s vDƢXIC1E!voG׸"2U9m)EIv .uO`w,΄&t{ԠEĉۘkW6gOߢGRts|ନ0"@OlL,*纔4|k j̙i^e%g?ɩ:n&,m猚t i  E5CDfkbICjnW%uO঩/˚B!,W^eݺuǿvlmmi۶-eʔ3#:Z0"##ILL,𘵵5^^^bbb"%c;gnpMLf_˚a'I)\2OnOqNqe*29u:?3Jq:L f?KkAr/ ;8{S[?)x#zț@ Ϥ`l*_՘}R8Y͇9o ~҉ Y۷ TX]uC{׳t8eǢ68Aej :rb1kie(TeW5+5ΜOگr@R` Pq:ۅ.~O$H.(iPR8~{3בB!^)r?vϺu䬈Ntt4s!44p 11P̙Cttte`U!xpHqLz۲6wO@ aǿRxՊc[n/ێ>% M!G_@J)z0/J77}+CWWJX^@{=>i?θhr6>}]|/tE9v3BYw'#d2s8,[ "w ~/~ǰyd\'LT@:#ޏ0*55Ș e]ZØ!@BbQ*~9+ϑʹy3ܞL{>ʑxNz^' jWgnωya_ɠ =ћ!"` ג>65t͊Ԗ>]6Qt7:S\GO}:͇I#5 SR9>ogj~Lw#P[bm…fߋ!dTtS!BEwqTAra_j?GB6j_֤la'WB&>޿$$$4ۈ#HP#_,Ziذ!,Z~ɴ!>׳g3 S]7i4m^hoT'" )xD',֕1ގkB+uٿt2SfRj@nTlΪ_13=-HEqZv.pC@G5Nbe}=UM,ZۘϚ8r~; PXFI^ϝ0~68&Yv՘w_9ArnCyHL\6YrkncXχJFTp/jFGլ;Yp֗ W1UVG\tWٿ &1xUмR22r>%Sp|W%74(8$tȣVD.]c^GMRl"FLC6~i .nӎRJzנ;i w=LQW/`gZ%׸z`!lӹv[=jBy4Felsk3q^m,Uk4Nw]xdM|<-X{ ZCl[Ƥ05ALSaY,Na?qVOĦ;:H!BLAղbŊ>Hɒ%ˋ*UУGYbZO9 BBB !##CN??Lj: ƶn*lҟ1dz;&|53¯<vjLI?ZGLf%/lmsۡPjEjPZ&r4esoDUd:=GÁkHk<'+M5j"jϛYpTBI;K7oFeSv͜I2irFcNo!ͻ+WmҴ.;OEe*Rcig75JCnY;Hѻ辔5a2lbg͠m5/|zM&]Dr.6tpФTV_Ecg^GzJI/T`ƃxZmzTu2Yܱ:>6,.e`/^ZR;dzEc<6gԾ¼d1 ASc> 0uç'X5b`{u窱`4QY`dKy1V R/D ,8E7ۗA4Qf#w.̇@"B7D(1bfFW }{*UGFFi&j׮MPP?͛7sajԨAf~y&oչT^OVVIIIN&:Q2ac_cڃ.= 6El19yx*PBGZ}u;8{XҾshbR u, WNO\v!^8`䄕ыTpX)6"$k|cDEE)x;Z:l[QalS64qf1<[P4&0ji G3@5/NWv-|)cb/  -(~`fWofv/}jbS痾P7Kۥ2hS#a4)fzג]jl8cFZ 0w(?{B!xO)CGQZ{ohptt$&&ȝ  Y8@ttR~[ߤ2ƴP{F5d4',ӗLPթP ю/v&Tg,WVOy KB!,JR&Ofɮ(eRr=z>6OVgxpeg <3* c\Pw"Z|IU$wlCkC9߱|;ck':˂ҁɝxe-xd\є`955f"ӿBl%}iw4[RHҗG5Tjlڴ N zڣ:,˴ /ƈvȋd:Z 'ţ¥^FR;}t5B!ğQW#ތckybR8L.}Q5G0GogeT9i;Ŝ-s[5BǕecXҰjf.л$W؏r]{&fh[lG"yo^}6fzT踱b0}4tC+rm|fғTLo-#\aZ-^^^lڴq=?CFF{^zI+1uDUJohs6Tj؆Jұ5srLB!?L1;9Yl$f5/Yq7Ir6xlՄ>r7eZl J$wI,^a?ɪ;|mKiT#9x0=M1yA4L9,#޻WC.fO;豖$!$BEGGX lMڽ{"h!B! F kc jQwRQ4e jdpp$T,L230Cy.qbn.]GCE6QKM%]ypY4($QԡY- q*#J1FgVuMg.g^/w WA"** ^t ++7^E!B!h9k 3[ZsjᇴK`~L~ }2 I䜝EcTU)h"Y9$%5UJbua{ a 6O wLE|;:zK~}{9r. IDATxyyX`5JbӦMDGGIRR/oZQ5jԐ"B!BוT*Oi:BGʭX< Czi1fRc3şŢ+Xz&/ߏH҃%qI`avXtKv¯4S>2J*?~;w䄓UTҥKW07n@bllL*U:LҘ`U܃w5e)r+B!oܖᙀՇj{=s|+q$g/<(]ol?ށМǯSh*~s fnH%6ec:U˙KhG111GhZVXK011,Y'&&jѣǓ.j{mKƾ> dR_222 !$$ 9IB!Bx#X"""mllk5dɘX}ot.o^Q}Ix;FCi?c{$xX|oY@ob?j ÚL? T4þosNm&=T$-EF?A4X?!c"?c]kkkHJJzѣ`U!UݲfXu-D=S !B!_,o"\i׮?#)_LO3|U/{Y >_)sX67r Qܣ-A G5伡XVӕPx,ދ8l(ؚYѴͩ1f9s-alx,.2=ɉCrq"## -𸕕^^^TR95ZdjHǯw2b%kq !B![E(1b^H"Ŀ@tt4Zm. ʢdݻ܂yo޼[uEAדERR...r! !B7vVVVVQގ@,w-v"U= _Ď[1|}K[!B!뽱"Luv/("9r:EzE!B!*o$`pEקFE#?,!B!xD !Oj!B!ZNB!B!둀E!B!5I"B!B$`B!B!xM!B!B& XB!B!^,B!B!I!B!B$B!B!kE!B!5I"B!B$`B!B!xM!B!B& XB!B!^,B!B!I!brr]J!B֑E!fYГ["=w ߝe݋qq)GϏ#B!xI"LNnɽBtD!B!*!)#]VP}?ddiVÓ*_+<)p;Fw{\=kb\B͑#T/naȼP=Ewn ˹څU1]]H.o:>تeq)W1k70K]|\\cCn*Qk _ҨB .؞cZ2D~p˺PƵ#+s[p=*BIW7aኛ;tYеA^{kf#DB!o,B7J?=zT5?Nc[/aQb13L4:z tǮIϙmss&'3%q5e=ǯ'I}}8z7qwȌ>knjdhI®BU|K[ԅJ]՟2Oݨ(Hj@qwVuX&cF>Á (@jNiԖhRU&rm`xlK:`|#>Shs{S3mj\M@o"N$gSdȥ'B!0 Xo7ZEԿץfa5JFwE{jn^S+sl8?On$wUg3DAcG5YWcZtW`7V}m(|wwP2=G䎑POr,^.꒭b^mE&53ŭՀҍqqI9wKGÜ*%cBrP]M}B!x %K^BQܾ 9GeNPMԨ [󟷑^)HIIA-x4C]؛sd=L0۾:PW$T{4DmБuըTmBQ^@_;wGٷΖ:6uiRP>Cea 4)d+hr`ՂOd!eB!ěe ] %}IAe3l~^2.%+8kq;l5Ŝ-TC,rGIw`X+k+*%<$( 'PcimQuo|iҰ(ekIѩ)\ U^}\,qzBXP t-XphB!."%n/[BѠVRre+Wt*l}qрBN'UChL?p[功9j%-ÃLԘFmv4 @*AG4%(( %(47JJ /z T(d$$+o#B!ě"B !,CAe]rJ/ͨ tlcE  2K:Vǟ_#MeMN-(g`E~=q7SH3TnCZfhvdhkg wi@m|}}n}#WҠ.V PU<=}NbwƶT)ՠ]Q3j$n,3ʍ .Ҩ$W+)G?>UE1ƵSڹ{aJ:A /o}jm9r !B7K!skZEI`k_lUm4S۶%G@㩫ۯn2l LX܎%PYb KbK%۴(MQT-l3~ ?js!R5`>j=Xtpg|@Z՟ 129Pg|P$ah_nT AzM7yΫ6gXr0v{sX02*sdͤnUp$'lgZ|7C& .~Ir.#~Tx%߶@[3Z-/_8p˗/jC!}WE* !ި7obooV(zHJJENy#1Ɖ+Y7>I#p>tQxKX"_syKm˾sT2+o`Y,fDIm?VAg.?`R[[});ZoG+c{^$o]|8hzWvDO SaX2+$pdx6Y`\OL}}f8&Z-;w$22{yyѰaCLLLEF\v +++PըTcBNNmB%ct7nCG}KE'=~kZxh1l(| WǶEo|tVPz]:7*M?aѬ]D<==R NNN;~8ܸq?~L!B!?a!wa}>!Th5FA3}+V|no@WĭO$Zfރ >U1y5<\mЛ/fv~ ֤rE7|ugҶd=3nU+TJcޛ/*${wSPP.WĽ2RRγ~BoTkJ7΄WL c\ WMYmY^At 5P̽q?%7(ES6[w]Fo7I¼EO6|aC*S<|ɪ>, 6 rS/0yPal<_]nYN4aN;|7cz:/9u1fUg>(?o "8ҭiZ |i?NNNxzzEppcB'!!Bww'_=Yd OOLq~UyQ5ٙdffm㉏sdM1\J>bhS+U* ɹ ;`~1˗R_f˧y~Bڙo7d5΄:dz<. }Ju 7^~XGZBm1~ ;hJVojAJګ,Wa@ӆNݷ :9C]hԨ 7nlxJ~UT)Z!,B!Qu2> ̷ڒv7;ĄDYS͍1SQ57rVP@I#%5]@9G-c΂9$bۋwïs^`)1kvG3L.%swѠn'h@C}'#XTE)C*wdFyR}9qUNzͧi0Eeϥ!~F4*q9Guuu!,B!-㋟]K9BAv~ؖ6SK 4`~G]Ǫj/&icxh}Av~ہ"ONwGZPLW\Ml&_hO`媹%^2YHmA~=g!%akw$Rm,>l\u}BކMi\b%{wM5jD?GB%B!>zh֯,㯊JR+0û"\8Bx92JZJ)3ۄ!빯=n1Ei٭,Rgv9|P מXy5P~?%=},Mkhڤ4WOar4 vyi]Q^F!]N!BWOڏz1~e1tnЌRP^i+j[>|}qTӆ/t34ۦuGp8d7^Ǐ ǭ.҈N֧,?vnu0($߸] 9g𼲬╻HI35F8T_Ήyl|Hה/( U`TFDGG $R%* B7))6{{EAדERR...r"BdFL${]WȮjYp!tSYb_!kvVVVVQToq!!;sb6䧟r1Y?G6aפڧO_Oθec/ާl_7?YCjp~[:t耱1-bӦMjDGGi&-Z1:tpE&Sqnէ|q-Noac*7pc't9om8uOe0ds2,J!Z-J>l?U2w\lǏgǎDFF>&'!$`BAu*2yfG~Q=oR| ҃YקϞfݺ~KyxhV5oIYNeŸb>3i0S^&&hт`nܸQ`RJI"y$`BAA9cs/FI tP1uC?MݘqnVNڑJ[/r/;Y}XOp{p/b߰#5ɹrgǥM;hѐaG "JЬ-Pzp=[y3'mr>G%gQzKq,FtIW8u'Ƒc]o ZʴЦDªb0qjv^8GYYʆku6԰P:.axu:jU7\Cjj[_C~#Rh!v۷bt&JUYw([H @ug;w4,;FI DYգSPܥUsrnfvG$ŴU^B%[~rDA3ʹ\P+Zp=wagtyQ8y]Оƕ B!1n=ж/ۧjLLpuuU:C!Cv$wRA%.9NQٔ_Ni[М[[Ӫ>¥t-ct }38vS;EzËlVݸ0/}Nv-F>yp` c͍֫]_2/pk맴lЅi/cFұD ɧXث!~)$_aF_}LS!x8-~~];;)3Gӳ86ϽڃQbPdGԞC\ȴ>c21RA>Qk%Љ-q*~M =6UuwrrߟM/X>=:M£"Ja|{.)IefZtǹ%RţUb0igL[x;93jlɸ6 :c/7u,>h>6gi6 ],Ϟ؈pzi8,Y? .ؽήcb϶:k3WtO [|"fѻ**8F)B/!#XoOX*Rvo8̡pQ?2,"w4B& cv3/3M3Za IDATPBN}q}=adn8qS#>^:V.=%qswyL] ڮ"0"-|:}GMLk]@>.[9jUYQh}4kz!?x=VX@o=|ҵ0ۥ$Ep*m<nTqN,z;&{0rD?Up%tF̦Ӻ l dp`TqE ]"NưTW&.vP~}FDV}븶j}nvUGBŽ425SBt=٦()u;~4CI9m!SRWҵDбOhL NQ {9vu~V*Pb9/cގԲ@E4oc7jcGTI$ akT5znb'-P5ǶmD~RjOS!B!o!콽ؽ;]ns8D֤6bĶ aP< N ' 7c")@Y ( ' (Z \PYczOB{꒸Ԁ}O\iid(l]4YqhnvVьLƚ["}Ǝ> R*>D]YQaDf. ON 1ǘR.ιC59q#AxI&ij6dc"1cQySɌp(bJ =O!B X~DvlF8)BpX[[K !ģp§&?`掭mN$?oc.-qɨ2N猾<HDp1=028B?Mʶ3X״XdҠ&_|2wi/w P/MQSfgz_1ujWwA?$ bNhxv ?Ir<~畊 r*܇bL5l5Gwm9P]NݒrC2tߗzbcbQ9ץBܞ0UFcyXW*LLMPt1lN춄SHųU$6BϊsLfPv/*i+aUx4e{u9go+9fdzME??>p pPaBVRX{MJk-SPnSsJk@w%>B!$`]ʂyfd<^B|ׯ]$dBPe:*AB\D8W e >}|ӷScQU ?ɺߑ~ l.>Gvn,;Va`L1ƒB!mߺ@6#[ұs?qۈ]}-e+Tg.zXԒN[˾fRImʠԮ)I%)Jw/_c>G-i#ݘ. /hzbRSaQ߫i,|59/4Cc|+鸽e23"*1tl Сɟ=bWx3.ކRr=7y2ZCwXPA+$PNLXr |]AT&&e\ hJ,ZgXzT}'z"6DWW; ѡf琿F n4e]d8 HusP,ԝdd_@BIK!U[=I~t(̫is:zY@I#%UE&;L1y G$~];ݷGdW[RnwEfFi)B/΀q s[zmמ`hoRHП~ȕ+ĿJ ;gn5żr芯 @ݳlч>g㢮8w%8p" r],Mˑ3gf\r6Gis9rVm)q@QRK|<|(;|h=e,`K#5Ն"Na>w+$fUkIȌ9uGlMί?4ի``p'1 *CPW s9Tr?Mb/\5>/mV6e! 8knx.|1?jԧ(k&WJ2X){-#Đ5G]wFbr{PSs`6FA=AՂ?G9x>e٠V4-k5?^SDDD.MrkΐF§[؛Zg8#~{,!2#9|$ Ǜ}).t?_Ƌ֊oZB?:6b帕z`%fo] /Ùrȧ}Wwg̟љ(ka9o| 53oyn4ZfPVkOeg3NG61{iP<a҈ 9fZ0A]~__5.qmP#LO?ϖ񘷑}_ᩓ/K .dV<ߌ+WB›S}^I[9꿌W{W`(a,cg+Rg =ѰFFN8KlxWNYcHi}]!0tZ_~Mc3*߄fӫrVJY oZ8cǰ[c |ic:S;1xQ;P2QDƞȤɏS"Q~D oqkeۖt^Utb8e͓_cX$_Mπ_+Ndl>|X `Јg{e?k_ͼU9y.B%Ӭp>xk,`1ڊWz=VvPq8>x3Sr]l^TjڟW^lK9!&dmԵ[z.OirJ׷@faZIOO'!!;,I!B,(tӐrX1r .璽 ;r2̔.fZ(7N…$-cK|T*N>Er^$\4"sci3IHtŋz ӚzxψBLEq7 \Lǻha2Iu,L?GFryb3]8.$x)L& `|}:lӍ+08:9Ѽev]k.>jڵC/ԥ$'dǛ|N6F2n9&DCu 1\DDDDDD˅pV~/?gnӼE Z,'ßٗCrC߽ͨK4 wJ@xc/b;:3}'apPI/j=)܅I⍙m)V&%3cקq4mXسKlQj#>: dMFh%:^&NV;M,}-W[3 ͧST ӿʎߙ5rbo'?Ԋ{aL2P"{-1ϧxj@׮h8/~?k T٦5q %2ںi1qʙS¼u6ӂ.Ӡpl~Z Oؽv;>aiPUs [cmݚǫql.z=ȣnPGZz`30eSy f+9sr!*!Չ~o< efq͋d5ɗ o0G_yRtxR' B~}c>RoװP_-~W"""""""w#.9)<?Չ#"wh|}} Tm6VtЍDFF၃& (3jH,"""""""""`#,""""""""yEDDDDDDD$ ooobcco_ll,z}NAJ y8baYB**z66LxkVR?^L34/JUE7A&rr>QX4vaT}?#٦`& {{{Ξ=={{{{L&SŒ/#G$ )7,ȑ#y<؋&2o:3ۼލ)flz &4})U^rјl]҃ v4yy#[C OhF^y,޺n5K&?9q0i4YEJ> X >^d֌QkKr9~Y>޳ORWYd&kijaTw^2u0 X,|$''qDDDDDndk, 9>6ɭ<ۮ Cqrr7$oZ_ĹCx5UajۖC|[o3sC<ǿˤ'aTLۇ_cGC> 7 ;P&Ѝ&B)H 3`E{ś3S+wafg+V}w> ) zTՊ&hX?W9YxbkP$_l7778vddd`eEW兛vvv׃%_W|ΉD7Sx3^ejKDpzذDၷ]LusWͤQ|S1wC"oa`0L888d犈H_nL& ȧ%..z:u;v0ˎ;nXIԩSL2!CyXOc׳'^ b"WCS~ʬ+& _6Z9n-foȟy{%*&/B;Ҏ/7SЏ "$rm6a`g`EDDDDmcNCzp3leO|m+a*}_n^v: LaߢX?úiZ3%AAt 6F?At…+5.dDi>o8/; Xê2JeEDo"""""2׉&(7[}%|~._`о}~ )CYkxTӠ IDAT f;Dtto^Ysb#7 lJg4Oi+*O]H~q4ˎ\=Y~vT ~nѭE1Lf+7ŕ1o1I?^<];ug_ 4D2GgEgR>}___53u!Ir(WGɱ<#Xp`rk!>DeN}Y=h19E(}ۛ <+wgà|?blxOSx7WDDDDDDD |"t3Νɓ9Kikn{???)"""""""rW3 DDDDDDDDFH)`#,""""""""yEDDDDDDD$ _1 ǒT߀$7 ~DDDDDDD Wohۡ)t˨Y*u1P6K """"""r6Dhp Vw]7T(4;fmT %f9cq[1GJ q %Aξ)!cҸbc^=flDBƦhz?Pų,<#Kym!Aq^|GR|YBrtI+}p*=WCjUq l5Cçq<#}+h"G-}7fpE*vV.ݙ:Ư}q*ThâSpzU vr(`)kԦE(>$ʽxd;Ҿ'#>:yK"xe6ʨ$oghj)/cfkK!(r8#&5knjd+Cft{NJ,x36u-G{Ƭ1mv#'n$VFc6uI*9l} kt+`ҷysZwJMQh5z*7Ϡ]1;-sxMz!HvWrSN^x;وʐr"\ɔ%LlWstsZC(KXw3:jz V Tzʴ;}Ǿ;(5n :<z#&qDz\A#hjɃÖ3-Y&ԆwK^}c?Td&?Aٰ|9_$PQU5h&Ljߙ䅏׵.[Sa*f^&+ɗRq{$4.a!--tCjP8mڵS xHD q*ByժtQ22SIvK9EDDDDDD փ_뙒KbR <=R2p.ؒH2tϙ.wV' hl`M$.!3iQewA| 63Y3]yF̭Ky'6=OUsՎ&""""""w7{)GrR!~18kArL n&LIDbҭXmZ䌫 YRL7O'VڕvYu,7^];&2˿ݻvgo!R_?eװXZ Q=ZPe[kW%k>/_yquwl&* &FJTIyJA"P\>,]Hݩ 0a.䜓8y2 naz ǔvݕ=XlI}DR[^ɮ꼰AWjl4CZg+}pYg㦹L$ 43U0oCݞS5._άTELԪKU,;0~ g+ZbK=Flzo1w 6/]ܝU4ܼNuDXFzӣ^5!%n|(;2QKrՎ"""""""wr33&{}xKwQBץEh1L'1w@IHX82TƁKxq VWD:uh nU4krҝ4132 xWgs= ƌ}uM͛#w %>DiS4M Z0?=Û*SX 29XGLm'hf0퀮l#N3l1U; ͖/kWEui|}} Tm6VtЍDFF၃&}mf''}]-ȑ#S|y|IUF-`Ν7w/^̗_~IRRJe˖ggg@k(`)"##y'ٙÇ9|0`ҤI9YbƍfQX1T¯ʞ={O>}:m۶q'|B޽l6SX1"##=z4իWe/^ԩSlRxq"##`ΝYF!54DHD8q"1114i҄uV:Ĕ)S0 5kְo߾G&Ldb۷sAzfcܸqe?OFF5|g|WL4'Nܴl{aʔ)8;;xb:Į]صk*Tĉ̜9S7QDDDD XDD nݺꚽiӦqѴiӆЮ]; l63b *Dbbb> 66___ϟO1;vd7-ԩS=z4=PҥK3m4}]222t#EDDD䮠!B""qqq|GԫWٜ؂ nؿnݺԭ[2o}lyʔ)söH{iӦ E\\=UTOH /ЫW/VZΝ;iܸ1aaaԫW//[g֮]lj&===6-ߧO (((駟0 'x\| .(`aÆl޼ c}]}]f3M6eĈ*U*1#F`ݺuAթSL&֬YCRRR!A+rRSSu#EDDD䮠ED?ruHOffgXr@f͚b/`޽_[r6l@ҥغu+֭ۛ+VProX܀kIn8::Ϯ]tEDDD䞠InED#E&SfΞ= @ѢE]| .w=vZjűbŊcv @۶moWnlٲ@ּ*u59}4ɺ""""rOP"" oOff&k׮ ,,,{W7qppN:DEEeovܬ̙3gak_YV|z]Cё^z0qD,YBZZZOW^|8;;ӯ_ԩ=:О9& `ڵ۷ʮ]ԩSuҺuk)BBB*իo1h /^̪UZ@;v'}9+""""R뗋O׷@faZIOO'!!V#G{`2(^8III$$$YΟ? 8v߾}ՋT(Uiii9sFHHk֬ɞ%))veb!--bŊY9޽{3|8֭ul6"##qssYf[;DDDD䞧,""j֬I͚5""""",""""""""yEDDDDDDD$xےf+uiH,Q:;֢O}ٲ٬knj@[I hEDDDDDΓ/a7bÇ>cBBBhذ!~~~R[9=0WiA^og<1av~RX kva¯(f7 dxQ,*""""""w2DX,;FDDĿ8|zTK/$}-e$rQ[*>ϮGXc8pV!(~ .o'#Y9^'_wΠOTX*uZk6NhA2}̌͸?Ujb_xfb\X%ZOƆ O`TZ#ؒlYh8/,+\N>l[F9jC.}@* ޞFƁW>`(E ИRę35rӟmCAT A'F%l@4D81+}m,6uHP-nYmST2UGQRej> {/""""""wZ2n8 D.]hѢk&00… c6oyܙ3gXz5&Mbǎ$%%ݶff<<=V-'3@q3<; ~e&dz.,|~X[1afc55hp}mcXWf1kyέѫNyӫH? y7ON/HldTsV*O˃ݸ6Uneyv}J9|frJ )fNX1a)8ƅ1O0}ɋso \ɚ/3_Mb‘CDxm4uԡCi.fG+Y3`=8r<֐R )bᕈ;0I3epñb^7_Jc)Qd`p)E@)o 4pw~\P}(+aw} v%٪^xZMڰOፏw^&Oo4RKI9ξCAt^O2|j z=o]*wu+WW| X^yt\ҥ_>!!!:We8\ud)5TpuseۃIu{jj~&#ۗum&O/ \kkl46{Jy8+; ]7oxL}q2ez`uQdT^=_Õܱ[d',DG0݇5,Wce'J\4^;_jIq /0?'z\6yϯ5_>wvը]J+^vc+S3ĞSki(<8`II&H +Q'Z1uDDD$_^z*Uжm[9F)lBƍ %&&Ϟ=K@@ n*׿6K~kCߏˆLOZNDYǢbucOޫ}MC={3S5;n.OЩ -fσ]Ǜ~ƵF*wO>~z@Hj 3}K٧&kZL^EO+TZaq'3ЪoGAf]>CK 5PX iFL IDAT5i+o,MՑ˙=`Ʒ/֏ncE fR7 O7oW_eT\7|={{n@""HJJ Æ {hOOё7x#vɤ5 (o [kߎdһ/1p˹C^&<ǏN7 (gu|[May -t-ECY:-Eh93eBәx\ѯ >aj =`z77U?K푼ȃI3|l+ҨBf Jv䵹xq;L񜝷 dR3f<9vGsvjgu JUVGǻ7 /ϣ>ʬYoܸѣGc1vX=!Eºuر#[`رlذ?MDD ~4vJѢ7_%::___ԩm`ypÇ񳝝!!!ԫWҥKE1O׷@faZIOO'!!~ͫd0 V+Wߒk׮;#aܽ3 &` ҥK̟?͛'LoIʕټy^"aϞ=-[efoV^3gDD0/fRV-Ə?6mb5k֌ p;yGFF၃Cg _{YÀDD ӧӦMRSSYx1:tC1̼zSBj׮'H.4n8ϻv0 ֭,[E1uTʖ-˼y޽;;vE)S6mڰgϞ[`ܹs4i҄(jժŤISB *]4:ubф+\0`NNNُ߿:L͚51bُ0i$iӦZ*Ϝ9ó>KթR ݺuq @DDM4A9r${B=Z*T ;w6lqƄ0p@n?\t ӡCV+K.RJ4lؐsnu.ӧOe˖Ѻuk;ϒ%K5jFvEL sΜ8qoȽ 66_~CfgȝftRHxx8L6$6oތlDBnz%JPreƍ󉎎_~ V`0`ZRD$9;;w^wNff&$$$n:Ο?ϊ+9r$7ohѢԬYK/F=}`ooa|駜8qݻw~mz9sPxqjԨ߿6mpa, ΄ǎcذal6f3[nW"33+ ٳg5k1117̥`ʖ-'OG|gp͔:u/dޞбcGmFɒ%ESjUtqEjժPB ?ccl89lQ@$QTmR&࡟6L8PQǭ DM 415ȅ9R?*>SzR뾯>0\Z59u...jbh_t`0[oa4ӧ?_5ݻ<2VZqvv&66%KѬY3pqq'""333ڵkESiսb 66SV;EYz)d6lǏDFF0sL~GԩS0`;wdǎTX46lP9?cΜ9CJػw/<㤧aÆ?oAjj*s}yPYYYm4uqqܜD5X DDZaaa6l0j֬Irr2ǎn^01qԮ]&MDnhݺ5/Ph42e]' isYn0PGwNr(W>>>={jSreΝ;3w\Ξ=˷~KݺuM???>#?^l~-~~~8990apvv,򰋌$**7R;*WNNN@VVtԩt֍`:t`,j4MDNst4˗MURR .$,,XSo éZ[oNZlIr_8t'O??BxJrA=4$ BVVddd㏳d  ""7ѯ_?*TkXx1pcقJf͚eZy'::iӦ7zxyyѺukj֬IHH pcujDD $$$0x`ym۷JRwA/[Onnn&YqJՉl޼eOnn.Νc+vͥK03V\Yvy-ZӧOpED`0JLL G%""wT\Fc걫ED`kkː!Cw &8q":t4h/xzzRF .^?cԩCRBI&U/Gm۶5MfffO?m*+I`0sNz)Zl?p֯_ԩSݻ+iXh8XӓzWhZv]tf͚ohoooKlllѣGYDDDDϸ2`5rgŕ&h:vc;I35<=p}m"&>?3-gnn<͜AjF _7i(`)<֑_6LcckS?hc~q~/NAv1|{:pk3MmNw 8h9'?w3!Gk%˙=#{~'?kPXfMA}/'*e끔[~9}ݧ,b@lvM[T$cٶ,l񛸙mfWVϾ,މ,aŜ!l_e/yE,ݶIObқ۶0-F~ 7\¤.887ǒ~kSXf \zB ?wK`KCY^ƒi/hB X̏9za>D^+ݩ|̙?,˜jg>ِ6giYļ-fxG%D~zgՅpWڿ9-4)5z.eι Yp6ڴ_#2z<KFݙb-le$]ͺތ1OS}m@s ,N6HZKUu%6vR GYs!#ͥoms5-}+0ya|miUZ.v>> 0ׯxtFIXf ˗/ϥKaڵop)֬Y… bٲeK[.ES,ّ0.?}S[_/cfWIχvmc_kn 5.vrq-Ӏ}`[Zu~!J0 Wg J?̥vuj:gC5R1X7s+ÕdJru^Z*i TP80+_GC)SvVzyT-`y*8`2+SrzU滀9ժU# aÆQl5j(>ct¬Yg߾}ӧOC.]_Yv-==sQ:uÇqtt㣏>b8997OV+lllXbazAΝ9f=|w9Uqx3ݤfgÕ4j? Sw ` |Sr4jlxsB+{6Ν^KojSMĞLhk9nMS__bG$AQW*Kj(gz}I7FCF}~v~0AS?кMm3`IvΠ [hԓ-stFL3w/`:_p|JYm]M$Q+_ 4O0/Vw*WLOذK˄2-ڂkG2xΧv?Q+{#%NQ+0vӓŞnhi~qCmv< n}37C4m3&M2;b5jT:RSS2dnݚu|F^xaÆvZqssM6ΑsN|I<<<ٳ'ϟ/Tzj~i\]]iӦ /&/{?@PPnnntڕ'O޵}.\3ر\]] ԩSDFFҪU+6lH~|}]2d>>>xyyѽ{BCy7iժf͚BHHH $$///5jDpp0Ǐ/ώ;h߾=t֍8;;sϙ`ڴi4oWWW:u_|Q>O"55BJTTQQQ`RSS m)ĉ L2$%%1w\LR[_o zxE~~>+WdС<Ӹ0sL]֭[1777b.S 裏oE|2 "??0[s ޏK[.{*A%,pSrTsmK1cg%#{?\^ȅ[sȘ0'Z0wθ² IDATeQ^;^_> wy{,⊡ƎKdd$g7˖… ̞=suIII+8p dgg?ORReʔ!##;wo棹dddK/qyիGٲe9x |x{{kuVTB&Ma„ deeѧO֭W\VZdeeg~G 9y$h4bffFll,*o߾`ff GeРA|4i侞9rMh؏^^^9r"& 2 K/[k׮Up?”{/"HII_- 5t]ҵkWժUߟSN&} ж(u 41%=-\כCBMB$^ܡ33cM]CCzl9Z$%'L+Z[ϱ ٪>Ah8*K{SWΫj:L2=z3uT?>n}|9/^,ret7߿ӧ)ёZjgޱcG͛ǒ%KgXXXкuk,,,yd̛7'''jժŢEcǎ%e˖̙3*U`oonݺ :uĜ9sZ*{{4墀En :ٳgt*k/{c$&&k.>c>Lhh(111%nLk{^6g)Ӯ];[vիqqqo߾e?ݻСCL8+V̙3TӧOjժL244q5*͛Dӭ7JIzիW͠A mwvv/5k7o6Ņ˗k菈#ٓ4ƍGZZ|8d %##%K>;?q /`aaAPP3_rQ"")#=Jnn.GJJ vvv|ԫWD)jO=hժmڴ!%%aHӦM177'##3f0n8X` 4Cg^i$׳b .\HfXl͛7'99?sKpp0DGGBŊ=z4ΝnԦMy)t-$$$zj:v숍 qqqiѢ6l &&>;ɓ z|*TP ׍++n]W 2*3f}`0Jhhg֫WӧO˼GfŖ+W;_rQ""iժk֬ˋ;f9}4?8666%{ sss:vȪULJOűˋ]WJq=T9r^^^NDDD4;ߜ?ÇJ*XZZҮ];wnݚVԩSiѢE5a^}Uٻw/w\NFө_>`֖///]F2ex6ԨQuѶm[Μ9Cll,,Y6m`nnΪU޽iYʕ+3fF@~ Gիt<Gueԭ[+++|}}MY[Xcܜ @jHOOjժ 2qƕy BaY@@@^-DDDP.""""t/"rgϞ5 kyP瓗Gvv6W\YO)6nH˖-\2iiiуǏӻwo&L?11uqiڴiY8@\\C󯈈ӧqppʴ ă@'((333TBrr2YYY۳yfj֬?L8rH^^^hh%Nȝ}GZ'ORlY6mʫc=?LΜ9Shڵk+X)`y9J ;vS#@Zh[RR""""""""RJ XDDDDDDDDJBM """"wsh,5=H))`)%,""""""""EDDDDDDDRR""""""""RJ XDDDDDDDDJIH))`)%,""""""""EDDDDDDDRR""""""""RJ XDDDDDDDDJIH))`)%,""""""""EDDDDDDDRR""""""""RJ XDDDDD>ڵk>,*7|àAXtLDOgѶm[HJJ*vd.]_45bҤIKQj[2}tz-xׯ;wB +?cffMDOȑ#ݻ7:t|E2e k׮Ύ"oNb͚5\v0TKT.E_ggb5O=wNN4mڔ?͛ŋ+{"eϟ'33 1{lF=ˋ tD_nOHdd$/_]v}'&&~zRSSYf899bbb̙3tT&"7m۶;v`0мys5waҥԮ] һwooNUAAAڵ*Uw׮]HFF=˕+'"$"7ֺukYf / 4M6DGGs:v숛9rthdʕV2^hҤ s̹5eff~z222 !((PDPP!!!ddd~z d&NHXXeʔQYr%C駟Ņ3gr5n݊m2es7YmA꼼{KԃED0yd… a0#++xΎ;077g,[ kkkׯѣG5k999 6Dfff\~ CժU6 yǩUGTT V0-,[y"Enn.C aÆKj?XJJ +>>>mxzz)Uo Ko,;@DVhۻ_">>[7&|g79w/^n,jnnΌ3شi)TٸqckǎdggǺuضmnnn)SǏ?//hVXU?~<d!6685kFrrr.(K}1c ZlɆ 8̌ڵkI֭[_6w^)S78qP}76M^ƩSt}3g Q+ŵ#G8s Edd$QQQlܸe˪ADDʕɉXL=o&]5k֖xcǎQn]Y.S""6m} G?[ tQ` 44bիӧKTO*W̘1c1bժUO?sΔ/_ׯ̙3kLq2e1cUVʊ+ ^^^8pȐ ''"T9r^^^!_DDDD!~g gRr#;;+WVБ_ff&K.%++^zqObb"X[[3p@,""""ӧOfffu;SyУGYl6m*ԛ%11M6l2ѣoEDDzNNN 8(∋+ WDDDD俢EDDlllLV9sjAkV"r>oR#&vFB XDDWWW\]]"""",""""""""EDDDDDDD4DHDDDDYj{PRR""""""""RJ XDDDDDDDDJIH))`)%,""""""""EDDDDDDDRR""""""""RJ XDDDDDDDDJIH))`)%,""""""""EDDDDDDDRR""""""""RJ XDDDDDDDDJIH))`)%,""""""""EDDDDDDDHl۶ ???ׯOǎ9|pLllMD>3ڶmIIIE?# yX_zz:ӦMYfxxxĮ] 3~xS]u֥UVL6L=!wa&{駟>|8#G'd 0={Pl?\ڵ__VË?Zzz:#GwtЁ4nܘ#GݱPN8IU_}'22f͚᭷"//ӧO3a5j;P""ϧM6\x_̛7/GҩS'>$a֭4hЀM6{n:t\x,zE*U8;; Gڵ[OfѢE갵Ņ'N.4DHD/va.^IOO/|m.#zv)SNѠAϖԭ[;gpuuO> b\ 8;;si&OL``igywɓ'MeG???>#=a"@HOO, IDAT_///ƌc,e͛3xbt+W.ك)\)] ##CO](`mڴ_~e4кz*s;_2sL{=Ξ=˔)Sܹ3{1}P/fO:u7n~!ǎcРAgA߾}xzzy9r䈞4>|8DDD3n8:tƍصk{9_t;wハ&L\)?3>h 6dذawΓ'OvZI ,""m۶ \N< ̐!Cx={֭[̚5kx饗hРmڴ!::бcG ,Eo1mnҤ cƌ!--cW_}۷͍]r)>Э[76lHӦM ٳ'!!퍇zѣz & bر4hЀ 6ct邛͛7^#%%u-^f͚ ٙ9s9wQFxxx\讽R^^^m;3vX|}}i޼9&L`۶m燙_5_}ڵ [[[ 7zDZ;v,W\СCH6mQ=f͢L2zDo~bǎ̜9///5jĬYؼy3/^>XL~4jԈK2vXmܹs7;;rʕ݋+' {{{'.4_hϞ=`cc믿N^LE8pHޞ'NO?akk7˗'??>}K ^: <5kЬY3? /@VVVVV$''qFLwI =+++طocǎ%22>'Ǒ\.\@XX0n顰qUUU5k5jraɒ% DΝUMIIIOQYY={Ç A||rss_xn߾-nooux:JfӦM;w.NjWJ6 gggA.333///,_^^^2e M6 n޼7n@"ԩSA@pp0`۶m(//nܸK.7oĵkה#)) >>>WJ̘1cSN$&&yf֭[\iӦ!!!QQQ066˗u֭[š󨨨 >X[[qƸ}vٶmJJJХK ..ݺuCii)6nX8_|1d|8`ѢE E=p 4E#7645 /Ν;@>ڶmwpi|׵+ZXXK,Add$y`!"zV\\\ H0p@ˋErr2ajj|PD0aѪU+lڴ k֬A-׷o_@޽<"Ps*#ХKnbryyyGRRY,Y-[@KK jMSO=M6/`kk ccc޽'O4;;=ƒ<333tAer9V^o%%%;w DΝ;#!!A|\YYTXZZֹͳ9n޼ D"ޑ8p *++qF <bY HIIAş͛)))Ю];L>AAA044DDo*KKKS 11G޽#>f͚)}* 6 YYYZzF.!" $~!33Si*ʋw֭}RU?EgԸ?gDٻ+%ryNRuuRpf^ #5܏兝;wbؽ{7S eҨE? n:Ժ_3@TߗExǫND҈#;vhԨQ#O[Xr>>>3f8"O[[Æ CPP8KR}􁅅f̘l۶ G۷tR>}ػw/4551a#''G ڷoÇcXz5AҥK1l0kN}4k XbQPP[b*[YYaʔ)Xp!kX[[#//?ZlTL[ պ!G vώRӧOxppp%))I  DXXXyyyx\VVT*ܹs1sL222`kkr?1bhjj" Tod2ӋF7o*nll 333dffb׮]X~=>|(!Rprr~ >HNN\IUruus!-- 0mڴ:˥E)n]>|s>}LMDkҤ 6m$&SNi]LMM}v3gֻ"ڵkk\5 AUU444p1oJrrLorr b ѩS'@NNlll [[[hhh 33իΜ9b9s@[[QQQ֭ssZw_+V@" &&޽;fϞ~酒:<<6mݻcӦM077Gii):w Č8x zAиqc9P ₟~ NNNFUUq!):~ֈEffO܏1`hiiA"GQZJQ___C__XpVq߇7Zh?^LfҺuk5jX[[cÆ 1bDV;s Ν>@LMDDY"055}xLHTUU=*t7eeeعs' F"""Yiii044ܛ9Xfj*"77rRDDDDvaoG'N@NNZhWWW̟?_LhLDDDDoN"w -@DDzS䖈`!"""""""j X􈈈^z=`!"""""""j X"""""""b'1^2ddd@.1,DDoT#гgOzž={ЪU+WV***/ ǎC`` zU9r۷ɓ'8tƎ͛u ᅬMp9ť(qii)0~x7 vC-,DD1nܸ1cƈUVVɓ>>JQ|}}M̙38|?@.`L< "ؽ{'OU?%%%BQQ'W_}% Bll`nn.+ݺuЭ[7Z2]VpvvCI8|~zVqRͅXAۂ ͅ;wԩp…z3,,L077璓sssq]077""">~}N: suVAT2d0|JA:v(߿uE\}XFfϞ- -ۋǎ+W{奄} Vzn9+++C׮]KR888@CCC2d2١UVWWWcpssÀ_*MŐJCee%ݻJBKK2 TOGY={T ѺukJ2d\\\mSTmۊ+ټ&5slڴ ={Ĵij||VZACCC}]CBBp9"::8| ]cEڴi'رc#,DD.Ah"_FsAҥKQTTCbÇɪSYYVY|9LMMZW*++1ydL4 9ñl2 |(:ȓ&Mºu`gg3gwؾ}5.]}ALL mmh+|+5?wũSмysǴɓq1 8 .D-;5j[#G=~t#GDtty{{CGG|  4вeK̜9HLLD.]ڥ+Gaشi0zh닁οnEOO:tLLLjM3[r%,,,0k,?ǨQ5.++oT9s@CC;v$[JC@Dt6ϙX}eق{w?JZ/5~K;knohsX"J:0)˳SxY?#sshX[z|IѮCΊ<6^Ŭv uRspz]Tݸϯ#Y X]HS[KzTmwۿO^ޘ᳗w}ڿr=F8WWBlnv7Wڃw O֤Ɗ<6ĉ<^dɥMԕGg1 69 ď_oDHzXZ Ϭ x /(//OO0:\y\SχI6 15UЯIzM;vb.&iFaϟN>rXAF*'U^ ßܑˌ9y<8#PoXy>QOʈ7l(KD. e+ރQUgg%,do:˞GVj'}WjA9'JKs>%hhVVF޲<~=URt+&"=?}7%RnUژ$Or;$_J ƒ1Jޱ׈-=l/&"6vlg\Cf4ttWdXb #/{f ߠ}繳Og2m&Q~nf).t+} och}UGj5T[NiY:\Iy9KdV UμK+n- W0Ш4kG=hott`8GEZ&Bkљ5Fm/LTȪZ܂! ;r 9"VhmWKi;RM%? ,YCД#j6nܓFQ5p"y{.80DDB% mK8MAY'rhFf^Vy[աfTo^|ݫ:^e@J+.0$!*HPԸmP󰔒1j؊ozy,Tr.363&~{'缗O.Ulcef;Ě=W't);oי@qљ:e\?Lـ?-=C5YԘ_Sj;szd<>**k'6luT^][QLz\_z{{]M 7nVoFVNIC+ΉxY4$xoØLSV۠Ok+s-w)|x{ c%آ}I~.: okh2MA޽AR\ZV.C.\.k6A0i_Sr|b" JKZNj^vtZJLZ ?hn JIN.5/'8).81.81.%/ HP58w Gq5VAOHPHPHPHPHPHPHPHPHPHPS\\\RRR^^.88e58C5!==]UU'BePʨO@VVa@ % W! PD |i=e_ORu'(Ǎa".|DTu@}"A|"!J ##86CUF&'zE=| |>ai^z .B!'EDxx<@|@z$T{ JkU)!0 [Ӂ6(FHPhDk A A A A A A@S'(8-k^0o붟cu} fXֈ&_ݰt;YIb3(Ga#}wDz%\y@2o|39+~umM{}3{2 &)\{|՜yzȫjhj(qs|tAbE9 Q/ m兩4xO]9tMgiif5ʨ8_; "$0%9ԘKGwT[INGmK{qQ^[mz\!*Ow؅r9msc9$;1OGϋf΃w֓߷dwq'ȠBk~0hq%Ww`t5qH;uZNA1_,=z6nl_KպrI]TF<,sN)wqii$$~|3j3f$w s(L\sֈH`>l $Z_ uoYzg`@xSogv wTb8;aSAAI Jd0CfׂG:GRPm OL) ʷ]Jz`DD|j1d-Nǭ&($ASN[{c}m-~70i )#bmǭZ>^HDdٽ7NX>Ǖϼ)1Dq,G<5_뿈' OYO o@q a:˽6K+a~(5XӉwbp74w n'<|SY/F()'H\R"""bEUWZRWhiQ?ǽ:?gy] ܋%e]=%{4#"$ܮ尿iWV*}&UӄT OSGSBO+HW0nݺu֦ZBMmE"\I$R ZȱiqҡOeO?[I+Dq &jR\58{khлՇlܒbϋMirh+.:ݪ,_GڕI~(A+/;\J0AQ- e]EF`fwkbGp[qr={i(ÒvvRx.8nV^^"SpI̱o7H?Dmmms A46xW@@s'@|0I |>t NU@S3QHPg|H$DZ,Vvx |a8kn! cO,ˊb> ##jH$*))D5$>%HEE >D222***D$aW$(*>I$XX,L@&O?E"ZC'###XHPUBUG@,,6(hZVoq.|A@@@@$($($($($($(@@@@n'Ofgg7h+ #GCmP'Nhh|"'OJP999o[fHXEHPP7q҅5#]m,,PHPGrsi'_*;XPRPzwmFJg^y[2upk6ؤÓ]]F4@jK  IDATggIJ:q'ZZN9"Xu`Hq/tu1YȼYt]$Q6qfR- H8x0vQn.9|z{ڹwJlEÖTD*J/O-}ogz/7u i ]874xxola$1Y>se~66.?w\Y-uqjk6t1Vw2w\qJֶKW%X9+e"\[w]$&I^V^]KFwoW_4osvuhkѶG" 8b5ޢOEjf8 Ih;‹^\Qڶj>?^ĕ_Yhc9q#ٷmk>O+۵s7;K k>ݻ%$~࿕{V())ٽ{wJJ T¦_;iҹoWGGK^:]yٮ4c\Z1nV3}{p/\jiؔ^=t}(?.b}o=o|"Ι YڶmP}u0Dn2}ؔ.sZ 3kZH߳{2CՒ1dsKDh qUzn:@cIhqVgFgX 7V/^ı'V<"< {?X5ʛ寖@QRȨ5jtSZxAg&5N& k]gy?MqZ8KAC@foWkQQ\o\UO*[q;ŐUV&ŋ3||~f5{{"22E'od0t(nEx&O,mbڽ{Yŧ}}ɟXf%It.ӳHs?7ċBV#gd/M<q&'8S9 G&^P;4Ո"CMu3zTx-l|fE'YbMНߧ޾=qҒ7Ks/ SkWG)z+Q_؋J+J_c44ՙ" yl:y+y1c>ۦ >ASȹf鮌|ҫ|Ql@|'qa'6ZRJyk%U05̮Qmk|%gB_0KO{TRYNGE!ϫ 'yVu!XTC1I㓌Ӂ>>j>>ɨ9)ji⌢ KU_C3 F&-TDEO=xc`Zgs -هΔיfv^ӓ|6yآRa٭M =&DDD::8X~JMm˫&K25MKm̲4*"QB-1˵:G[C#>[e߹+9L4wl]@UpAnm2CS^`ԵԒ,dӃT5_OBD HH02,!!zذݻ?2%!GݽOhS!O<>Q'ytCHk_ľ^wWPxUuU*)'z1Ή+*eU!X UT(^);y:=FHR*d<5uUg^(6;3i*yvcVZm2kgn4CA~b8hNbZ}>GeB( v#"VHZ,U!Ӭ _tcx>ebjY^S)*Q5ԕ5E3%IYl[{y)Mnb;9"N?0:8"Ӡ{ "bʾ{=ـ/婶k{7(0Kc><(0ŰC74DS-[$㝊CCt=eɦM/ZT5Jx+:-,t[=DUv#O9>Qso;'trx|sw?w}gg+ϭeӮ_ f]"bcڡO`V&֝-sյ"UfDFD/0 C[CF֭ˁSGH^{$wwh z.gƄ?*g4]"#'/qWںت2q 6prxǖU-Q1ko.- U7׺_9Kؒ"F[g=I~ÝT_x}ŪٷRq0 N:Rhb/mbf:۪r}<[Vԇ ifMLRlyc|oÕԼԼmJƝ M-Qx|zW.9w1I)_4f |9<jҢ«kfpëg:d8s>1 J_1:giyުC=.1](B.d#,[{_gF[V\"!"ijQߙb_=13jgn]޻dζ ի ںXn[~Wz$BF;xN+ 7rW}UK lߞIk۾ zrtXR8 _ " pvH7ZAu SocTlLsCK9[ĊH$08DN$n{e D$kddmã'*ݺIIX(b~ի_~ 7-GGUK.jSWm]rwP$/$I8+N"(8H(>0NK^2%Ss5k'$YcckUUS_mu˜ܴи}z}bO qoC-[&ѱ!#q,˖噚6 |Q|.{'=<9Tk?sŞOwԽ?~=}>6նF0o 8m呰߯ xDD\g8ZƽpYn\s1WUw_6.{׎l}?LIRՉ%09T"ڹ%fd$fgo'yPPJrC&v; E\m˹b <<O•= o!dD).g$SAKYմLm{B;¤sǯ t:wP:8rs/Nvp'FUU[-J޽PRK V}%)-3.4]|ڟx6('O8q^Sg6iv?wh!OKƘ˼ulrPR-T~>n}XI(ZFGPjӾk'.+JyKŤf-/^1 M ~n7Ґ_zڵ7;q.(f~iFYS1u*[1…<5ƒ3-J}|T-R_Vc!O_Ud"5X@9tPmNq~СٳgB_nTdAU8|^:]k\͠V]VNsf9w277#b*sq'OF/%%kɵ+))9t8($($~#R!~Ɣ)1<3<44kѢқ7UU㊦*O >>ruϫT) =㩩) Z5G A A A A A AW5ʺjOo(RNb| o+l @]a$VKzs555ݲe C"4W۝ҥKolVZ5iҤK.)++mذo߾u!!!ZBBB ܹ1ݳ?NMMNKK;{IJT_|tLZJfai))djWIG@] `*# !y=%&''߽{,{QF5*طo߱cʕ+Gq\ttO?tΝӧ_|YCCwgϞ?݌3;t1ݵnnn?)$+Q .L/K/Ȼ!?ɝ#G|rQi*Q~QbJS(7\ޢSNq7rׯř5ᗗ w,ȑ#D4k֬SJ0 ciigϞ?vX}ݽ^|ۼ/zճZ|~"@sI(GVbK\śً8IӧOO=)((h̙VVV}ݺukqqq嫞G9rd۶m'L`jjjjjCD355>}tg̝;&''}IOHHtɊ+LMM95zh[[[++C:u5:޻wӧO/,,ܰaʕ+srrOff7|ӱcGKKݻEEE۷755ȨOSSjy###c͚5ݺu3fW}.Pxx… tbiilٲW5kVNڶm۵kիWTOIIYreΝ---֭[WTTDDӦMk߾}۶m{k.-Ik>JMgX@}֔6{\+ǗjXN9~֠"޽3GGGw端gϞ_~8mm-Zo޼ƍw&O,455?3"-((pppյ'miiivvvzJLLebbbVZUujYlj1"&&F[[[^^>##<8sLSRRFJDzzz;wrC/{||1c233̲ݻO?ձcǾ;XijjtԩK.۷es-[,jkk&$$H3={&= ?x`РA}0%%%qqq6lHNN>\h6+QO!JT( @s%oX%q*mq>>ׯWTTܳg7_naaiӦkfggw7 ?ޱcǎ;ZhADӧO߱cٳ+ϛ7o[n->є)S[~~~՗ddd޽{Ϝ9qӧOo޼a}U,xuGX=w0Ldd[*YbEjjs޽t-3nݺ=z]x ;v׷;e׮]ѣG-\[l 6mwޅ FYPP0gΜe&$$ݾ};""Ã۾}޹s'""b֬Yy#sM~{C7SMٷ_d~~+W JDC}:mذV\٫W/##_~N8Q^^^֭[sHVݻwL2eΜ9Dcǎ;Ν;˫aêV }4eKڟg'NP("233}jcliҚڵ۾}{~~իWoܸqūW~7'O~wB%%F4Eפ$"j۶mcř3g9rnnnul%'M8Uׯ_~ҟ⤡q_)--+*錅b˲ͪ&#ЄmP1i)-㊟Im)24`K$)yZ=djfjU#m[(++xMii)I|TTTm۶wN0A,҆:TƏ36"illFD]v2dHAAǿK?}M*4*((Qrnn_I[[[;aC$| Jj *YbtZ5tCOe\~=*k$bʼF.Uq[ \Wiɍ7seD"@PC]]PK IDATONN>|kT?!//)>lצMM6D;w?/^;s挴=aKug=6aUUoUo Χ/:@{|_'٘Ȑu$Eu琳gk҈U#\{m׮]qtt_u"" g-k<>r﨤$555++ddd/^| {{jaTՕ>%&&V{)---***33*ND-[|' 7$7RR~@ȸXgkE{ZP$^ׯ_QPPvkxbmڵkŲΝ;]m Z?y>EuܹwU' ҃m>ߥK":vX,X0p@tVVV"СCV;rIjĚO:A=|mJ2s߮60ͅ8|j|K 7>C“&q~mK#Āj}o߾EEE/dddݻȑ#qܵkƏ?|𲲲7.ݿr׹t],O8ɓӦ_D4bĈ\pa"bƍI+/[rZBŋ7;jhhZ(66ˋllljp|>̙3ǎ8֯_շo_iВϟ񴱒իWjhhL>}4bM-Ays:7 I˒eޢN0Eyj~l"R}`Ev ƽo߾MD#GpP8lذ8qZ4a„^zƍiiiBo}}r͛?h֭'O¥I5dɒW._|ʕ:::b8++8af͚5p/vjٲerrtٳgK?ѣ'OO__4;;1KuSPPزeˌ3N}ZPPs޽{֭NHH(**RUUݶm[cޛƪI4>q]ݫcSM*2h.)Ƿ'Lvu}ۤ݇Z>}eYSS:"ѣojjZ:}]׮]>|XMMaÆM>sO3ӧgϞ-))|yi:BŮ]޽qqߧO]۷/<\`izܹ+Ws턄%%%Ç>AJǏ޳gOPPǏutt 6{jO ^|CCC?~߭[/wEgnNdɒAf5Y׀u]"fW]YӮY6꺮1'Q|if\P3}t>:Nu1\cM:g6m$s:{}ԣ~cmБOa?-.kN""EQ]]^,}Վh1u{gҤIӦM1W_g}KVLrt8-|IEEEJ)"jӎw^z˧?lonE=GGjݶƔ?~vA{^u{8HP*a\*I޻wogt8m;aȧd v2jDYǢLJSv.Ss^:'Lv>k] U*O~>}'d:&/9\M:VPѶì9]ۜ6eQ) ȏp|W ?E8_~κK;tpd߽ksjp8ioNcAwvR MY"H)ӽϩ;qa'Y>/Ϛq^jѻM/ZI;Fn=xn.~  G-YMgAʊ5/K_˙6jQ;v6Js!8K'0z׼9&l=w7xgQ W=ño;cM4:YhĈ3f̸HIpl4dmr&ߟAkhwzpS^wJu ^|'8q@ؼ+CN~Pۯl9d:"|uƔc(sQZ?3O>澙j5uyS M6y+/< gܿk.N\prY0n8;O~roc64:s/wqڴi?$?i\M:QPj3?<Y#+-#`|/G ;kw1w+`H%}b3oDEVhwq}>ՙw'v@L+6DҦ[ͫ %4?mK[i7.XLp8p8}B~Q JUo9 杋 &;O;h Myl)s4=7;~TiV鵋Vln9&z <\s8p8rM M=3~%غ[Mq؈V3_ŧȺH`7X}M_z:'{"p8SPrE|3w;xfߛ=p@Uk8*.)!NWӲׯ(^'ie<]~i(p8'ŏ߄\Cɿo|鉗>II{3|óTp/Zi]0p[vy5KP""4>y"[vn^p8wAo_YUgeϟU|qU}5gpZA˿z;Y$^LVPҽs/?-[ߊOqcjMu4eW27э: uKn/0sEuuuݺu^C9Ϝ'WI<7=s_:p9O~`۵ M3v5omߞ^NOmo,k/ܲOV6[6WvS>̋vg03'޼֥&)v d}3{UqM=ȑp8|'A(~<'ai,ǟq]}Uܾ{":kl *^{+ؾs^Xd^|3aۯ']'|Tk1=*"';棣ݿa6ۏo{k^ʌ/yev{p8N'o鏿p86~oʹϽSov/&,^aONÿᰝo.Gɯ6*ߤ}_9mNrKp^cV;L=͸iQ{J~*,{ կwߡ;6eU̗O_w' ݲWc<ƹEث羷~q{㆏[a}{m\0ܷkỎЧ>3zJ!پ{.df}~x/{=E\{?⁖5&w£a}QkZ/z~dye-.k*}yNҷqq]&YC0먿>#@JӴ$p jIyBv^Ⱦzmvxټ^jƻ}Ƞ x}'xN?o-GO軝Οuu<›t1CV>xƤs_cy_AI_y1Ci7sߧn5mnߧ2+BjٳC{zΙێ워s蹶ulͽ+@9O|Q3_c?N{(37_/]>iҌ2}ۉ2>'Uv^>u[~O-O?azZz{J;o A5-*l1魹ee3g/1[2/_î|~_{9L?yagciA7oc.qk]e짿sn^7x2FMꆙ?C;xS׼'>puλ>菗?_S#K~b^j%WϘ:ѾHlޣG;m{;faS,ٿ~=䝗_ {0/1^ϞqT })^]@mvם:#/uN?k>il1!-~,{~9`&W#0_N>χ}^ntp$ONWc],}_=vt+Us׽|-=~4%#:aAUu\VNo9x,PCEt됼"454m|حKnj*QuЯw1[4xK_m.Ѩ.u!9taG޻su^xqY6*,Dwm׾sވy x} ^*ysa݇ɋ~zH}#5vm6$S uK^~3 yz'Yv//4rT+Ͼv|GaFCz7 nۆ(.$ۣQ{_{wjmm>xc^qܶ}BkRoq1<fwp$֑ñ.tro}yΣGuҠV#Fw9|;/Okiڿczu+멺U*pemFP:WެvEX:Wmw?m鿯aԺ }Fˋ#z^6˵}fɯR/}T5\_[ܥߕ-]mLäJYhբǬ0kƯ߇Xp plM/=w[:9o3dp' @vO^Lm ZITݼK8Ǜg^}!C<2>>GV:ʓ~UEWV+o+4^vO\8u2 fKR5`>C/tyڥG2ro^b'c'rr; k"R7vUJ6"ddZşoQ 𭪗?Kvc~4|P.5l۝%!m]T9am|2f!|KP՘AcmLئr-?2f"(4qf ynj6` ˟kc-W_5_~Tv ¬W8/w(p8p8֟C{G-D:j2{F&OGu}O}p>?p퇍3|R^}9;ʜGoη~oݶ5佳e5j_>uIQ_=m?י'p_d2ժm+,s=+O·=Wr4sVǎj)G_/yO'OݮG>{ӎAv;oUs`"5n1%R0>ϊ nj&)}GH;z߻i~#Ͽ4/.;b^vʩ} 3.zIn>M~5)ufM"~3O2p8NA9 M4N fĪȧҭF tӓy=&p/=v!^섋n8~кR#Hk1g6oC~3YoyWO~':fSSi{igRPTyם2N=33Wv/9lH7Lٞ~KV?s/8?3ܵWMn]z5w\?zєGuA'2ԭJVrmyت[:/<_=aבR0qn~qejȶ+GU??O=#V#mwϽڼ0C'pny%#ON8WLZ{lѵfM"|Zvpx65Zp8 uKn/0sEuuuݺuW=ywnɦf?+q{TTV3u{zW=wN%''|RQQRT2I8`Oo{ო|ڴºgW|н~Aj9uvm$ IDATyqp8NA9 w$޴ǯn c47\EkG u7M{( nڰ?̼z;hW6+լTMy$Ҿ"6lC2)IY?CFH""BIY!"@|(@E s F*% b!DF, 쓤}J [FX:2"BlZE}^yur5^D }ahGE%uيE UUR_UK &QB$ZHWL-?۵EVo/H)_)BTa ڿ H I2YI%AȂ"Q KqiH4%B((`VJݨԲjYЫ7)]7¸آfehQ>2[ۇA }@A`@0iaRlH"e@8 yeۢLQk5[9T)FY_Q ,¬XP(%՘O;8v@ÀΟTߣ3KYFC #ۼ{mA빟U,̶K\m)Չ4#dY^LM}+GVAPט0J+R faaj6)Y@iylPZύR_CͣR]V S ei !/d(ْ!"+,",̒PPDhFE'0ЈhA؃R-Ls*@D/"",AZ\R  so~0^9fRD9ԏq{zoxd߼t}yXzı_eu+ӷ;?;38yI(c=ϮPwwtZ2>.At].+7\ѺQrHk`f)M8 Ce?"HgRm9-c\YkZHN5Cul806!x&LQMCu)o?\e9y DO3%-Dl)+lG(Jmk ^X5T˼ؤ>\T;)WT BDYI\o5C"PImUu;ez"XR@ 㜱XViii9plj&{]u?\ڌZL$ۮ2ө2YEC҆te"d"+Hi(("I qʛ;'@D;4 4aۤ +`a1I8l` 1Lbitb2ОRB"`80'YX+҉u$Pü~i}Po%_QKBZxЅdN#ʳZ IņlrdF`4)QZ%́yi[(<+Zl::Tesb|hY#I" A}϶KelYʨbF l Q ᐴO)3++[^٣Ғ:0UJm6(]A%wj[mhYk)uZޭCSjaa ŤHi6 aVvY2ժČbMמEHHեk0a.E+:e[߇4 IkI4Mha@n "X)1 +ז#a$3(>CNQE>APk)B@$L,Tp1$`I*l@քp66"ڨ 3qpH*=I(E&LΘȊ%%J)R%}?G> nٷWcې3-|vjF_m~>yfp^}oo7jWL}  ?~㰙7w`x|)#3>|H={ "ѣ'}%Λ-{oG|vFի߈]Bg;RZ˛ 9~* J\:h,ilSئ<՘BeXll8$960%f j "H(D[C&a-Y,)18$ (QVdR؀HU ^@N Kik+ bc؈lH*2f_LJ@`!ٯi ~ ѯI`/ˎDbHN_$IaARa>4Z{%B"$؀#pa3b8nƍ6n8#&+& cb+b!T7pPj!(op+V)pQl$ӹ֭j BxVe_X؋=(n`R5_ Z;k}‖*# @{i &Ul3AYL ;V,ۢV̗:E9B/.Vn_nZ-J-,R*f"F.X5eK{umܼ}S +_^V\^ZT ag8kLh9Y%t:UTTN ZqEQqlbߓdNǐV{!񸋀 3V [a+Z+EPA*Vek~DV(RIXAZ~~} ]6??' z0zΧ\dzl_N|Z*sunym%Os֍8?~.}ӟjYشs.v|ɓ>wSf~6~ZܿV{\t9L9n[WO>vW\qMv¡s6c{VO %Om3u?$bO [Z(i,O /g5,,Kʒ 9p65 # bP A$"!VD"!1bY&$E$r`h p^>!$ꇉX(11/ RhDBXi2I"9aXXcM0ȃQVFN$O ժ̔VZdY---)Da.&}%Y֕rp[^XVL_iԑYb0PB!aYiέwXBĈ~>zY0xJWAL$PL `DUV+wԔQTO1l3x*JC<"b0W^J/B:.JW^k/lڣ3(ҊlYX<*o$CdfQ4Ddl,1BhZ^/*u'/Oc~EV0UO71QH*(RdD {$D(}$kbQ-Ŕ2J%~q_P% c6Xb*XJb8G6K6+Fm܆L<ǹqXk:7ظ 65Je%)g(̙85y /Hd"&!8ɳx^+-0lMUȨC-F*4pѕA7__{)"MVObsG:G_?ow>{̠@~ѭO('`v_<{_gFoIt^wB/*^y?ɞS+ž{Ts|یA \!`3}MrHg.{폻7&1D-zy'4겳'X'ΜbU cɧ5tsBo }c@_mDZ9چՉh)^TEA.d /CLY lVaEca |< (G,yyBd-LV?bYbX` RD Fl1b$i6o_e˖E#(|}xǢ Al3F| DX`!)X%䫾šZ{UsS! a22a a%O+NI$JR$?U2W`H4ayIܣF*֗R@J1=mŒݹcF_*9C4KmJXX둯@`sM)]Sf/OX* Wi]S(ih=!lhbI|SD"E1WkXlo"5HqȴkEUe,Xe!lm'E:!Gzdoj5ч9ՎmU~}tmŨq{w ifЮ3ۏ}Ql|[Ik+dbPttN8&6*4d(sO %Imn)8WdI4!UHUΕL.7J4`<'Pc 1y/4) <+$-bH!UQqXY/hYe IDAT"H1)-~ߥgU9+EIJXa aiEAHK* ELi6'ncH k9+&6'6+QM6 ҁ1YX["y|\P)X# -DuU]ePSfK|- "0D Ҟc̹LKTEGmbiAs]MY]6uKvi. !fm"C/B1S+UgxI,YE"&eE7|Y^f,"nc me%++0+%9ؐM{AQ`D 3"@iMF[Fi296HS>P bg2XEdSce2wTr$E9Y5;XP̻5VRJי$Ae%hoܔ+ʕmjJ2/\|Ф8t >=T]Jv_=%w_a$=UZFF`UIWyv)NVpU&9&)ZZ'b)^U!#DcY)"  8YIv +bCHsm{Ae̋1SHP27^ #bD7m1\t}5z $Y4F;(PJP\C"Z&`p08vRheɆ"*p *ʉ1&zzt[k9Ɨ?>]=d8s{=/8Q$aAEV@BMD jQJ8<4tfKX͵϶-l5M$!&;ɗ%~ $\'Hy)&I|dɌQEhI4AhBUT ,K T(JgLAlKee(y]ƍbbIchEcRkmփ(Q$QȎ8KhL)2޹vAQӬda%6v[tYʐӬ_uOڹ?ɍ(}+^H6LiPJYXCݳ7{o]3g'7A^|ۛK+)r#F8 dtyEm =AN֔&Gk5 Js}A"֤"$FӼh8u%Lb:ruw?#ߝ-8oMn\zn;i7#Sj1D Pe 8y4" $ E4Umr¦ g(e]288AR:v;kwã@ŗ/AgtT7h\T ;Ԅ84uHeIU{kTaƏ2UNqpn,\0_GO/ۿ9^Oo[Ww|߿s?.;-7'\XǙygw~y_O>|.cB$5}deGPU~daՙ܎S7v*Cne nVX\`!;J=K j~=IA1* !Vq&W "APQ X S6&-^+u;GtCC^Ƙ5rweYt)uCY{(z.pA("̌1|`FLjBk mZFtTa"nWO>w~>)fp66ʚi/RF/CCDj V%4k@{J\ZZkZkʏD(Օa EQTIGTBE!^ ͻkR$DVWg\;:P>/^/ !5Y d{o:oc:7kRݜ d6=.K#"*4B4eB2-+o۟pk2no/s@>_^f٧'fNmNQ : źڅ*ཛྷ.ǯo\9yoeǵURQ",SAKNecs|:d,kr.}'M}f{od,G Kb&I Y}'VcJEqW)6!RڀpԎ c6%SR%3@ewWEݰڞ]*lqX~eu"~T O?[p:>/bl7;מ |"{/O|]{ޟ#g|?S?;]|')9=QwDzya/?G⓮+V?֯_So|uܗ.TPui4}??~!fn=m17dڄ:iQ k& G$$2Q&(E+@;bD&vi1 1:jO eljHD;Dh#QD10`.֐J4t4KlUJyc, B˔Xr`\( pD-}CFٰᅖFk{St`%J Aw1un\; kO(MU1-QtucD/?5hCz2@ TQ6fj/-tHEVFj$]Y Ā@=f s6H UH)ӽo7o|<5]OFL;۸C;չ@Әiг{AՂS,ǎ^} mN}Jl&w:X/SFj`$c` ZlL#AL65 ZxKl.z S6h3*IKnߵt{yJcE~o{^)YbյW=ȸP e7GU]0vԀ2$ /0OÜ<~57Vj=Z6$14$3.,Zth >dɈ rDOV>xy\R3,`$OŬZiD,ڋß:VT t~Ջ%EDP/}d׉y1/k :Qk4VzJTE%GfjjnƳ՝;Ǘ w__};oW\`?m_~ío7^=tS; ?Wݗ=16`i3w/?wY_?oz^O{K{~o/{4=񹟵w?xϾavWc?_zoO̟_o'Ϻ}Mn>vzg߽_ڄ˺Kvy>J֣,7٤kJjd*ߙu) 5XDZ(+d(Ԋg3P!&]Z.4h L@! ".pF b*]2~uqhI&xN PN%"D`1SV&I+I 0o1k#`xʃwɀN/v.좷|(O(1+4I n.-ePz)%L2Q1!FƧep;>qU^"\B3h ɐHHf6izk4Kg)U齵W#PGOf:FdĄ28$*c7g埿_M-kC;}uxx~ڗ#ZU@J"DXN>tKNOŽ{/7ͺ?0ENFVe jBC $Ja#TP1XBH$MhF"RۚE?1(5tV%S?븾O}_ռ!{o}6K(3 `:y[ųίjzh.(&tSȖb5H^s۞5̭{ӻR~i`Z7WHhλP)R4JFE|0(cD}k#;$7*#*R̬޷ "ޗW_ռR՚M;?達ۗޖ/~1)K3wPe"@^o(*2;>?^//|/O|ғ??y>G>|2ei [7'^o{w֟?Oy+~Oȏo'?o39қ_Ko o?>Coo޿7Wm~O/+? ?[?sȍ/;7??7}ܼ]֥칼_aJ\n8룝:K(mwf n2/qqQU D8AZh@@R+T 0dA(.pdn϶2p'c6Κ@%Z&aMIZR<Xڡ5qWYmkN)ކGOi2u>x?QRҪ&*̊,m9ݯ|qkx{ zj7ǢْHm2hј,W\0z ݚ{-9/4rUcE2c` t5#؄' U6Dj*rX,tj= k%ՃY, QSwBSX߉*3[a .=5gȣW>iӧ45 H@ ɷkoq>^ݲwPl/vF !P%ZnuŻ9е+@ay)Q7׌-!( 㺉!`& d>k}4Q=pP%kP7(@f)YdFGJ8}*3 APA%^$I{Ev@M#mUL8 N"Gnr wgE 4t͔@e,3G Hfₒ vFH,7ŏ]tU.#m=tg^lWԹ:U(h,)}jL BS>zI B+$>oJ>i8OL h|EfBD{> \jqJbPen_^A |GEDIf ܂+MSRg)y gG7yÇ?_{i"M5iJyg2Y#v7in훇O/O"lެ,YhlXȲ;zng 9"nj0+2tw!Եl,kgݬx-=J)%Lwx@h KL{G0ԝP3yyn=2ܤV)*I 1I*@Qf}eώfL;.WI0 Qٚuih24BU^7ޣOztwoӹup <{xq1*Rх B2pZy>_#ytw/S/BB4%"޶؛,mgg.Yv=xI5vX5SQ:*/;B BPPhRk,auR >$j%U8Aem - ҝ^Q]Yau-C!??wԇ_>n_ß/$YwH3|]O?rÃdi>NOh ,՛ڦZo{U]ys m^NΥH_8aT&AFÉ)s*BЀT)]kef]a(I˂[ײJY#4&zfK{z}źW_>|y47̀$.  ,Qs Q O6ݷ)Nœ/6\޷v[R?z[f"nDza.,yi1LbLXM"R* nJVg׮NEJȔ"5b살w& Pb0E&>e'RJM+iiL҈FU$ QKVRS)%%2A&mjUR8ȄljZ-Wv-sBRAG|O˺HW}Do~l(P0P[ ]JWN5^;/rj3=J0]PjD7,C Ƌ"aIXBJ44]ܣ(p:?QMN&CnJJǔ Q8զLBC"]b@GuמaNS\ylm>E M"BDmX`ˣju8$$"j6ʧ3OϙW1.˴f޲ԁˆp 5hH+C7[2IBG$W0%|`2o#,#E9%L۵Q9oZ+eztZcz e2@#@&"D}>ߜ8ɽAgʙJ'L:[JqoZ8S>kw{ɴ}v~,4i:fo@ DvP}!QO >lXRN#Rc=]{6"*DPUϛ^JV;<ꛈ.y;(X}KW0r`LѸQ7XvxOk7jwA"B֮KgdiU=-OVQ AGZUPbt&cP`:S͂PRd8#Y8֤We[&!OS2ekW;(:52SY82/Gꕏ\>[A72"PZ[aR= II0s =i, J#TRNVzlѤ~uqՀ BUp/̮][iL AHD;j"ޯ{86h 5+F`0ML^=7>4,ϫ+i֐ӲҊq1s[xAJݴ1F_zYd^!r?牊B"UlwW׮ͻਪUKbX`$Iٝ!u’`stAPMP"^o+U/fTD⪪8nK)ۮ;fɵ|%MbEΛa`Pcv=xv˘Ncf`ͥ}˺?^|cW|wF/Rukqcn1p[8\; fuںuc (w9VE"47((cAv8-gLYaj%9RFF֚RV%X%<"|.N#q@I׉"yH *6N(2 F6Ƶ2mw;UURkP[Xf*x>yla9'vUI+Ԣ"t'#O¥^ I!(IbӲ=ALu"BnV(J$-e&6P-\S6u#( DaLmND8Qe<4E.^ =An &Jg.H&FgS^,hϷާ5 P@P սz&gӤ{*m(, 5 4M9(pR(0#)̞}P*b1z` fP@A -ZσIr1$]CGW=2h&E55pJ U$ƶmۜU ZkDa8hF~aD(ݢ-\k{%6Q6b Dd/l&F)FsգS UZ IPK-Ë\iǏ=oVOm^seJbwQ(lbh#{1зcq^⼔W1m@\ije1&;:=:\\~tޢUIMBD0DUvqQvyˑ;HTDM객ϖ<\Ri۶y6fd];iRJ*hfJe,vXf=xaԤDsx2"E(K*e]e}4W;O_ԋα>So̦G6߼rvxp6-;6IadMqzz"x~͎Lq␵@'08pY5@!,pNhf%eU1L3o["`X`NL5XUV>D )F! Y:ZM0Ksܮƃzس@,M&uu]wcoQ5,! dp@12Af":fuR$PT~}ahq7mbZ3hvw z](*UHYJ% #o#o4D9 {J:XF7{b6Q?& "DUه=Jg=yh#}K+˓1*NȈ-alϣx>),Oe|T}QQ5vwׯݼq7)Bw0Xr8KK)^!M~M@)d"Dl-{xzhٵ{Ԟ5:4Z .p$1J 1 k0Qng7p IwJpn<GG,WX1 uX>ƘRQ3}G{K[th 9NL"8J1.}$M&Rh2M h`}ֺ$!2QVѩSys>aϼ!`*} HkT *ZtD&3X$rUS /%"cĈķWy<-iK^F١TEm0j%)`JБ%MQ#T#*KEY7̘pwzA`Q ACDaAa'*LDMr.Q" z~OO 1˧3/pmoh/G% (wQ(rč>>\?;ZthZR]0GTt=ݾx;@. q0qx9.ٵ#,S͆Sy] Su7uuAY^M4LQjBMQCpbҴM$RHEVD*IHfzp }ɃT11E*/BU=5뽽vJht÷ț2ԧ !Bt+B5ѮIG~?%"@Tʡ!Bp8r3p^<|K| 9턒Q"uR"5/H*OYfgl>^&K@<ģ*(cZ;&F4iӚ4"){^Y:o9WDdާ޺a?0 Y#` O!AIIުウ~X)BN;#3#XcoT!9&q!Qޯ^4,alywuwdfЍ(\flUz\mVf˨jԒyXj9ׇn  -Qo챓S] D"V)}PNk[;!B4 S)%QnLPlDW2 Pv)Y.D ?y˿|/f,]i]y1ዟ߳~wG|'0fe~.}s0(L8zq f8T-ڊ86H5xZVc(TU3$A>Ůzz$ӞWF5#[Sʙ"' '}$T3PvT*MgHatɌ>zO X:N4VY"S )C!Pz af.ab'=Ma097BRx;bn׾K,07ͮĥզ`ymgF fIqQǶ~jCd4ʗ)V:nng~ Eke^.ku][]; [̬#@/W\F4@QrFޢi]WL9(dy9 u<-!) 9顚25_e^i4&$3ИF4s3'z=]Ai?!J^W>}o\߿}ݍL[Z `X*d L%}}BP2P p}xy R5 saRtA:Lۨ@gx԰R%\pkH'<¢\ZTeN%Q" 8#Q߬]ͱV@;]y~{}_Rd"d=CD:ѸUKbΘf媬kbmfs 4]zQ[U $jC)$R,VmIVH5su9+^T4Wfpzd^s jEwyPa^zk,6-~W˿ys^__)EcOOƾ M̐$I: Θ0 󥂭1C͘ Wtt۫pZ0hUhF:鋗 shBM!X|gqΆ}bWh(00Lɤ5UA94@n}²j$ὣ̬F@b"cAT'%w:c HeJ|HJ ovh1bx 72ʥ"Mll|bh7m>F`Kֹe$RX!F2x"IT*+tmU=.z:g' +ˇ'F&ԺyYǻֹ߈_[Pt3af^Jq33PH-Zv\eq].U! (f]@b4zDkMYHJzate{P"3a0}I-3 \SIA=֓Pn n6_E"b١~VN_O?{n?rh\Bl7B+ wֿ7;< jRR-g~|ȷxĹa5ԩ߰G/Q q&t-o5VRFO#e!-[IMhUa)_|/˳G( J4%!7xaira#0]> Pz0[߷KMZi=0;_qdr: . F45bSP^eԈZkf'hb+mͬ٢OyQGe OitNaHE[^,!D\b|%HN֔NʆM}x^T[K֟h~pf,ஔ8GW m篞ovtZ_x{,?4źX@# "Te's3 RCYfvF"Ɋ0ow c)f̈q!2i=0p`G!!.Ѕ>MMI5͑;(DCD@[ s" :0l­kE̠S U+3g6d֩ l0$n(7֕:)`E/徭nnldžHrowgC\cY%S[?zuV3Z˄B6L>a8~i 4/vip?dw"M=jӅhdfZx\yt9L#Ϋ1Tbmy*3Ry uͮ]7u| :SP2SYf'eLZ>yPOi=TrO=ӕ/Q= !_L7?zu7i4 B5+(3"EYQ  \[/qͻ]3`/ <v#ݎG^:zD̤ة gj.|qgnYIujuՄ8`>KV7 B"I"rhURKh$ : *2+*l}\ԠTFdF5\>"Ed-X%lg:8)]nP;re%ƘPPHVLƐڀ2^>h8w  [IQhq]D1GL4zWI2*!@-V }㙉-b;[vG: nM$Cڭ\wGOKV=ǒ*ŭ8(1ȡ$hPC qr=ЖX2.BMED(H/>i?oq7ow8IMH IDAT tK NкᲜ׶b3Ʒ̮P#=-ֺ.K[<_LJXk~Bh(ˊ Fs@u82"- P?[ۀPEJo2”)zZOTLK]Eȕh1^W8~gwZC7qiT&VaZud}^tEA-Pl2a^t>}ȷO;<̘2k4t z@X0@6Lm G""ag2hgϞ/y)E2l0b*h< . Qwsi%jdmk-$9@e/_E1G=zzY3@?~Ψ-.2H 2>U$zrS,bV C)f0Tʈs5sUԬk5%ۂ\5)|4HsnuSBnS CB},JnhdMS-mo68سs;^.g^݇uo_8reu1Ej D(b3!e,0>[/ÎAV࣬ wS ?&tXW"v?N4M*Hv [nز+Veʕ f5ͩPT cW.3; ?6=)A|pޒgr<}6.z״x e].KDҕ/dPk2Nr-wTV)h0 n{;nn(\{^dmvNrRGhSO٦N5>U3 o޾9=ZZ)Qavh:\ FXW0mն#>CEr m(>bt}"zRPOi=g FFڄ^ G3Iٴ|^~W_>6+XiUf6*2ېd$)Z>zdd _V{8>?~7'o#.X+,T0$UsbuD ~[ PYҊ D*N|__Xl(€|`&&RtlUKDX]in~~.9/5S]l Iin^TfX%%%# !"3##F> g߆w9e!3ڶ6F.vևBk˺*;l=i2YI9quia 5"wh [ڈ̧rdp{31xɗo>?=߻7\w?xWwpHۼިn%Z8ܝ~:j>ьٸYRbH˔Cm@"jeJsZjKeoh#|$V`8@nCm "hbfka]0sDfYAfڌb$hD@aTewuh3#8CI3tq\On'1c>O>>']޷V>q/D E*"ЄKff"Nm=>Xj3b n(7Î3jƢη|̧Zώ &!ŽbnNu7o˥ >n@+УC=2[[VN~z$UE ysgs3IgSl-F3BsSٓzZOi=ɞ[:gb (d=b_>ǟO/e3(W FTl`DF"Bh6cHcyib[K~ XL% fG-&%eAHW/OxIJm9ٺm}73PWmζ@'8dWJ(67*A¶sn ,cfFTr"e]k=d %"M"hKj EG hye誥@PT`s-RX#~#}ٱC5k]t>ݻPKEy)7n^L—E߾oK?zzu'cFHSN cfZ2MX#y4С%[K&L 2e#3 T\sQ5j % w2bJjSn*z*4Xܼ:'g;S(fV#w#M] ";CTf$&SA@G՘zihRFԌYX-&Id,2Q\ε=E;1^H` ̈’2lcksFȤ "*-[v`W W `fb0O~nE Hх5*ix KmyiF6⒣k?ߙ~p;ݼqNamçi3M,Iqb6ƍYWIMuɡD+!YBlsdnQ``ؖtPвIqi@6+T5 NVcq(3@D%k04A13%Da8d.-PzMBJ]5h@u3G& ec*3־ݖô''c=.)KMc]]m(R&.@.RE6`1^|ʡa78PTp64Nmik[BՌ^{)e(nR eulٱzFenSuz'3Eaё󣎅n d'@oB&tFz_Iqi?x zZO2ȏ:S7^ߴ^}aX9XHBU1%9g4[ %zΨӱ_~7}ۏ;x%XidږcrzXtDbtI6;@M~K3 T0/hǹ}:s&'E֟[ Bwu\Q>/ٿ>祴`/ӍZ.Zgn$TfƚJYkFfdz ($T QMR87F\B!* Z­Nu=C9EN q# z(S eR,ղL4^F0kh3L|\4v2,+7xaۿ='n5J֟W#JfkDZu߷13C-#a$pӬW+HR5͌-Ca1 l_1s+Yn]f2t6\ju@\z?va5kV0\/Հct X@ORf CXe.|ixaz,Yb=M2<ӥ*SsAe[+a]BZB4n4h' zl^8@d0aqzSmǻwu*Dl tY&p^s5uo\N~JUoySJ<`3ۏLn,G~<4']_>IxW;'Wq[v933F徽|D AgAD豖o'ȥk`뼉x>{o;|:Ҹ5Q2z mˬiN:K7Hjؘ`)$k~OfCSFX㊏g|8Jdxz*ܹrձ}d+H#Fpv̝:xq̵ZMk%-ojBm\jj}lMUeͶf&l9?`!oT[?.w5))IZȍi&D2FjU: 6!*:*,"E[J:#W7"@2M͔ktv(~W pY2TV<6 k7??ǿt!>ZVEvI]͂19M C)cjgABwP &`H(ѯ>)DWeP},dGFEhY aeoh3&`(\y-=h'HZ TgPtLF΢#LUZ@=)Goy{tMM99А67&l;(C0:?7?%2.twlR0ݣUPOx4,QtL5\KzӔel*OQ~KYt=A$YV`vm~߿ld! nG7V2ϭ6^CX\]:~28w]WA&zBo>ymu7E!3[k⃉)nzZX DtF;#HuWrC-m'4РQ(KfZipp 0ע\AWk(Il=M qOyY5PJILHkZtEt;5mC, YP@^ND׀#Uy>._={GT m;V 3 X2dA 9]4$KZqcb*~s3].eV.>IfVTq>`Hj*ՈEVS>z&J7`NeDN1:cQ4ejY+¬5DŒ9+ ٠@@TkDcdd 9s T {5]qԛ& >];gx(Hb2Ec읓6 ЍYҪSKz.DAs\tiF%Et"5sͬR&"rf]"d,xsÑ-XvEru\X&V2I2e#= )z{h!GVHJ6i;NeR!Ua[x j>P @뼴/L}|)].Ki~WlKU -6YO Dkfc>_&vƝ,"kT&ADD0(M)Їt.z)=KیF",]mĀUNrcn{&{v;Riga;aE@i3`0fJnb˝m5}ܧb{X͒u]0ȭ ŭ{xa-s]<"X6rY٥Tcyw%m~YGA)h dl#0jO Dnt!}U![*iҝio۱Ûo|gw/ba{xԫӐID1S9%{TS݂<ӈºK[駮3}RPOi=/_w{(ؗri6pt4'"ԧ7Z/ݚn.\zYchH(:zG7wδ4l%6vqduT$7PBiF܎d*)#`tQgŋ>%e]f# 0Xe5?4z`\•Z23R PRS6dn=Fʽ1#/cm?ka}fʝrJ-Aŵg +)HE֐85V+2#G޺Ed2zhO!Pw{?!/47R,ljx?}~~gߛmg8-(M =%2TcH$# ǫv*ɻE(WEVH-5tA#‹eDm>[ `nќ07ۍeƛ <y2'V)Xc]NTfefJ2mрkΗӼ'U,n,|`|iq յ^N zMҢJJ"a* m|ܶg=f$}vzl}zqhFAFlƚ`A1J4K ЧɞdmX-3:-Y#к ;Kƛt]Gk"38lRhTy^U9MzY}~Ozgڝ 8>zrݖrd&XqZfF\ rFۛ 2A%Wߢvzˣ֢x2mIPK̝V9LCF? ^|FI-@9 "EFyHgCm6]tYgC JFm#4& a~1/w[?:P%I!=?R H>_ rRZ6d˥xmr Riݝea6ui2}̋Re.o9 IDATwôCn=yY[]/m]8b(ŀhiPYívqze}4c2ݍ`3Cf%I}DjCe:̮"J'zr6_ԃWe[e PT|ǫڗ#Ua,K#zpD",iE5Bn`zG >HuvkDa?g?$QlRg{q P+Gx43z͊%7be0hXm+Z2&mseؗ20kyVŜeDfhM Wj\2BgoB`тn}rlKE^t ` #HuB\s-E\V!guLFwG32He5q={Ms&)m}{yi B`fP3Ci280@!"W/Cm̩o7G:e>&r3E-oUk{UO}^n4s&f挔p N.swt_"!n!M4 8P0Z{߿E: ١"KId6Eb{hfR ܶ85*QC|L?LOʹ3;zyuY/u9ҝpӋW/v6|۝7?z9GrD4mo1olUsL=rse[Qaۏ1dC^i=/f<0}]SE??%tfHSfH,޻#SwXFx^k Ь.4!իQ}!yFTzV1#Ys؏L S!(j[j :539M_j<֍J /@ۣW?2 D:ʃ1n'QVELF0Afm FU%4[2J$5˖K4z|NnBV(Yۚ!*Ǚ6m!n/K5Zb o/;|Ǜ q}ߑ)("ܭ`ej5E kGZu5C?r1Vmẳ$PluTfhguhZEFc:j#1'Z0lH!$3RP*B.=N\Y-bQYmw=c R4RbWe={X/vYbLf본x}q`I|`۝M(nGYS/?~ⳏ_q'ieC5KYZ뱴u C<+̬nK`_~zWOc_xӳj3h3f~z\ǛhnssMROKv^X}I us'id!08ZSdZ` >xJ08>Dս5 ~ݯq_SPM2gͅPnn;Y9۫}i[;?mb;CE \ƃ_ߔׯU-5GFNסG{lAK)nA+?Yn5 C4fn֏ a&L Yl#`z$ S%VA34Sج0عY i>FnX29Ϙ)ń!L~N]9̌ci5Xr[ w :r+i+mB4"&)-IgV3HjQ wɖ4mj50 TwJ[&T3rVKvtM9/[>=h6ý3)su3ft{sԥ)E#8JHI̳52"WjC;Rv Fg9#Y-cw"xgݯ ^:ӠGǬ ɂ,ØhuNg۝mmΧg\f_8A1Q2Zlܔ8ԢGCl64.US\x+M iP('&(͑ ^|s~>A{_oo.w7f|q)sG^]ǀxM}[0gDD*XXݙ 6\?0됈4#tvHT[}IŢn⨧!jaK_+6_ph9hs_oi"UG}^X ]ɧ|I}Iy>"0P)ǫUc;D>"/68Ln5_KKF,/quÈHIQ:x+}YX.dBwBA}Y9 Y$s X"[JBp9ЊH ԠHV+*"Ь_ޠ~v$fUZ!z؊"pI/%\|D(XG>_6OB4H(T4{LLH0`Xjw؜՗^)gE#`eueKЊQFN VZ0F@R <h٣aYA۔A.,6_^};?}>}ն=܆mMG"JiBKV[U"^N[:gB`"by}F '2A"C}&C4]0"mkTd ]RBH*ⰥkU3[K_$h `rdU#lYM<&%͈#+-L)f0aVͳ ܴ8N7,8 ݜ(ђ*2\ w\lNu<ӗ_| OQëq[uken5TF5 :\z1䀖shhN,=Y8r}v>D/3̏$x jM7uF^!6 d C&dzk!K!]a&h|8\~o~ iI9nYXq07ZNhZDHa0xCI2|M"inG;GmJ "%8_?g۽dPynnzox{p|K4xt> &|Lq&FQn0Er^us`yb, 1 JRE6atwZmf2"i|s?sU.l*VjVŲ\l^L&dCA!I$ ta!ྭ>yUxch-?z7ynBut?L#% %qWH_$>NԽzd`+["\]Tjx9@ڤZcsvgh6FzŪV7Hכ|^+P\|aމz{tC5dS|tqx;<0.q>XL)4-#;ߠD@ee6.n,і9["͘4P (ۉin$:6Cm4)M8R5|(O/wxwݴq-K9f6M^0R_#PKTYNBn YJKIcǸy͛Kř|%KKB9iG{ O,%rBs D' KT*%9IZ4uXX#<͈aWxy$EтPoł!q+fN+PaOA- !DATSFNcʆ0Rc$B 86[}PPRH S, ^rD:2,^ś06N ^A v,6l:߃Hn6V<<;;^ǜu[,4~u?wxl e}=uCe#l* vH]|}KfXfKj`ˌ4Kj֝YEp :ih;عQ=q#*yk\?'=kMy4rJq BټK d6a<\\?ٛߵxț19O)(V19B5P/Ԣ!Mnm]}>kA Mi"wo g 7͗{ʧg{́dV4ՕɖC;\gZU\ֿ?LQy+57iko}b5W7yo^vӣQJZOR ջɎ`0죿R_~| (Yr|XoWΞ\*C@%ܞQaLmPU,Gǯ`nnyqn|Ì6kW{ƚnl/s.S:=/ Вv}98\gM:F7~p9_)_Ds.DSwHRSvus;Wm puE9\m2z2>!"$)KxcQl]"H(5nj8@D IVp-ouy{֖)}Z-Xc~ {$9n^_ g<==q䱵c3Fd(Hn0B^.RLD]s3Mm3 wO e$hJȻc\>D'Ц֠PȊt+oo79_͇}|0Wi?aԱ ZUo}?xYяX̺QrǂڀH-s.eII#cf=X*]Z)k bOmӜ#mG ~ݯh^WUkveڕK9, 45AiTq^iiPF6㈧0cgڒwle0}+Wn9K~FvuZyO{׉l~xRQ(}L)Ƕ\}[zbffN̰aC>ԫ}p4Xf!G vH`eJP20AADuKbA0M6Log櫛m9njZ݌m*_^g/|zx}W9so= g3 g̣FyItudn fu|};PJn^7!vcxZD+m̶gg<[) 6- 42OЎ\:3{=?ĝw{˥OQJd'.b*ebH9?UT' Mͽ Hxo,SbRt[z3t!5+>;6>MioQ߸h}XjPh)3퉹+ˋJEY# =yXÄy)b3VKjTd&Mp/W/}[tȖ%[x񰜟Ts;2f Jx|58y 3cagRŠhivi'Hfq~Ӝft' XY*")uj14Y`;؜bwα2-'uNJ$xOyy3u6A n*.>L9!dn*$D#P&JhGp`ҎsMރzfN'[tXt3 >U:'bQ4C℥ҒDX wf2 ́0K"B&1chڑ0q{ySq}hI8)pZ^+XܪyT$ZD@A!vH{ff7" UZPĩE";X~{bK5qn_?iG̗q8hm7! JJ!JjeZuWَ|?{{Vv9֯⌌TJin옛a۲g7[KOxj#@Z.u[LFyNVoSd&% :іӡ y(Ћ[My)̀ơ K.pĬo lU;i<쿤PK԰߃):/q*1LǷ/ mj:!c32!!sw+ 2`P RwtS,Ϸ\ъӬXziҔʎQ&ڜ g WOή~+/>zYZ\2cD6yyߞЎmspgЫw<\[zi$%v}g- ^guxy:QCrcu袙*BJ 8v#q:L3z\EeBQ#o֋/~ӿW?_?~']͇Q?A k=zr~w#,[b-84zKr)MQ_|&rO3py˛4MdLcq$ IDATGX}$l?B ^YPPf?3Zod]\TݠdDqԂZX܋%V  LhisQb@Skٯ i\JI1SKgNn:_ )cB'_=Z=z䆺@,蝼:ABX bxp CbWA)z7 ;4Sݝ3nԝy,ifפ؜9cc:bs57^<1,KfTԁX4v衆 Ѹxs"3 "Ra&!~`w+W7fo/Ms`uzyX~Os=E!YǦhWy&ɬW/eP/Jffչڦ 2 %c݌hӑ;J߮ԏZ7_|/^o~zooo~K߯?م?Tʤ?._w~?{_CX(?O3HClf%XUn-" ! ΰp?ċz10UX&vZ|,'D ݍf}˝;maRPb͸d@6匜08v\;^E,z*Xc:kN'p8H$nx}ૃ>5pcjZwРu`' VޓD-Z9ʵ j#ùQx]w?|lx+绋U#lX6Ӌ>N]qxJ}̓/|i1HMఓv+;ө|v8yBr O[iPpBF;FNj`*OJ-SLg ,9ޔPW$_#S%$v]ZX10,bd$@E=:74&S Q *E}TX$JŰ{R =M-m4'yi>M *Ble$)Vshoqw/g^/ĝq ljtx] !Mr0ml _7ϮG/{Ä$1dА9;8жɍ[%a Ť-d%î,i]3`Ɩe؏|8^N؎$jBfy5/z~Φis}O?=~>}yG/dn",bfp̘ESx}i l0eP.g& $v~+#QL~6,w97qV<'+6[$2y6h6ZI%@*L[5`UT˓TB\dPjOڪr?5u9b SJ[4-0ɒnhpC9a91PVDW 0NG+S)D3WjL-ʄ/[.;RX4ENq4ba3ZSITPPJ!K5/"FrY[6Oӛ< !M̺ (hUy|-//>{ᰙ|im\vNjviMWWǛîP0 rnl$R1O֢L3m|?& |)JbH^*(D$.5 7gus:c'Br3PN6Hl'i~_gk}+_?C!$F}[[o}k_P? 9TRп}>H8tm{B.٨bh)v䲣5"?y38iѕ[D=7Z18 Ut3]Hy 0 ,T9n~󶿼*/~T9)RjL6gI&]fI[$K)CT3=H%B0EBŘ18'(7!{__g3bk(pۏ% M,Q:m!207;r{?~WO}")S9P% h)>7B/2Ԗmr~p: ܮU"P &1_@̓>Y2h4+XY84JSvݳK_={?[oo/6 A6,u7{XK O,lN:Zm-go뽠iw-!a"@(d̻-@K0+L!}1}E(+d Z dk]'v)Cj%[r4&\ӔDTÜ>3 Dr f@b(^qL.U":d֠fQ@[2`ȤXI$6Ef*chD DB*2# -(Dq+nY+菭4#bxG?psܶy,&Z5wr,o\Wg/_xk3t}Eւp \Yv6a߮}ڞ[%~bl~;Nep~:bZY`^~@#F,%AY)p';1$Ye[fs"oe_e,C[ ~ݯUD!{uo܋Q?}e43g(T) ln:~Z'aa P֖(/Ʊ>AmAY?fCș$ȁ\Ǩ[N{ ZVYQp&a`$AuDD1&6x-$ua}W K),ā@CPclTSyx g$S&~uPT'jAnuWop=ȥx t-3_h֗6/o.qb FaGtj3UVll"K,ӗh'sP?oWƿ9Lo Qp~7ooo7ͯ~O?xi?xe+iv30#S2#M櫤 2L ffi'0 6>Y* ]{9b!L5~w~j3mZiuɦ0RpIHm* #ShقrJv7~?|jVXr6~|Gfp.UH)N7dN TE>]p7:0yR Zғtgvu^G:r@`1-=ekyz:v}ZyKl_%@I^ۥN-TyRi{{89:֏0XTJ- * 8< Q8O9ۿsNׯ5{l;MǫsȆaW/.`zHCV~J4s;yHd}Eb20HR$< eR-[10춻6_MQ9u?g_ռ|R_u_/~BiVD,]P*2C }r3ܼvKPH yPQ1e4I l6֐H[Yil'BX~v; oZ7X;/Y'n [<5i)6E߬豎@$3ڴq<vo ޽h=bD"T˻2X8^K'\'tyn9`Ba"m@!؉[<~ȷؗ/cyaְum՚>bb6$4GhRFq.=[SR/^?qڏ8{B,5P(TYpq]&i"#1w uBu%En(@ Ԥ~m` LPe?>x<ȳ2^<0 x=0oB7WΦ`InK-jqGU׭][ϧ)^kCXцx!sJ fcNU&#%aivKMEmzO,]1W_vK/-3Oq>kcA:b8 [.ڵ OS9Y2Y- ti TICvv7:>dm4+}u745"j 9#PRZODӠr 9iudZzք.x{y'qOeYWP'?_5C?ny5?/?^|g__ ~_gX>O?x_==?k[?*^Au'7GGKD ox'~~ᾂP{PuͻNJ/%AB5&I,Z3ͳq`U%X"0h]KA]A$eNilmo.Ї_("2x6^6n(aC(a[ЅHJ:S]XGԝQJqV:PPTERm98\ꥃ/cqwvNLf=0*:Ln,ɇ u4OU r* n\[o/}@o^+Wxp4Y?XY""fkO/1bK:xU'x6tɓ+k&&a5RDD zcJb0JaQEHL((h4G8~ڠ8T5jcީiyϟ>x=Zժ/.bحleN.[CG sΊLQƓT?{~z܍Xw8Usw~}=p"**pPɭ/)hzL&ւGE"D:Bw{Q@ڨ pRqsTMgxj_u6 uȹLfQę6~a+{hMN;߮kC=Y0(75'${lj/`)}PхžJ׏>zOcw:Z&֭]nՅH޹3BБ;;L}*^Z sE_0^ ȠХ~J]=;NzQ+[;#lQHK2`pBM`RP#^=rV}%i^绢"7]znӟP(=~z ^_uO/xvuG>k^Kw?O^_3/__>+?|eB[z\Znݺ8֭[軿^M TQO^Z'wf>e4A[6ɢ*,ʂp| ;|Rb ġ* IƚjOs4?ċ`u$Q$0$T!PUQF*DUa @TkXEj7޻dHY( BLdYyߕ}.86{A IDAT*-\pOdýV k# <# R L|ý Z1qn|VtPy.P' *}:b,gN"$ ERZe{NRmFg}IbSi9y~˯=xpL}έ\A>PU"mN4NEݥZC*m7z-Ң-,e;H/l}ɽ\7ge7p&www`ֺ"s[[PRj HR|NT5EW)$[6.ȧ=og|}/ާ>'?{dI/yc/I ?>vE~3G~~']{cG_R鯽61qkq\(] X.oIAN;Dcve |^R##GH8FRea3e"Y*N$HHTs#~}#J&ǁ0YM=o *R_24m B!QiTQ qXj]@ I\lB-/+WxSS)aByN3O(85J&FB 5MFtуi7CE,-.j*if_p,m Yfٰlc:sD:KMG^$hAkhն/ ^ٯW~U{!o=N`u1peڬe {Bvhs;sV@R 0 +8Ȧ9t/K NwrAXŁp&YapVhe.`8X/e/e=hb12bq(4ЀhV$w LZLՠ635ALDU5`t& 9Z\wOGWZx%Ѻ61ER@ $h*QE+00óC4! Cͪ!$8m<4F -zȍa2 VwPHռZ^ʋǺwYS#י_-lq{E|?^!ʻmg#'6W/]~="an""7>s@-oEN ̢-gTQ2AH0jDWI ^) })O~~hA^YsR@p &{0hyTڴYo,%iHl\ed?IjD&5+Ll-`D"P4 _%'1PYŧ Ȫ9%>3C؂q?d"FiΖ4) zI2T=*ɴ(D.0YGc\>Mw7Oo+G1z :TZ^L:lDV'X+$F7:lmYj]94HԜT.ݲY^wLHILbCsHɜ-,SU")U./òJ>>'fo#[AW^[|??]~S?|?~Kto/PyQ5{MY^ˮq SVP6W4:ms5bP%v3/'(H1U.|JU4 p A xObU9ס"տ݇ fx.p:DRksiI*@$ ZƤamJB"Z#uJya`瞖zp$ukGj=wggp}È"@%ԌLq˫tݵ+\l~eA=ȱҚIL-CV1Qz#!{ p4Lh+qՓ'~*!id)`(g¬͜P). <\3QkL*>XGto*u--FzDTATJ ,k~۟,OuyZ}NFI[+׺gvgwCxM%Z$`"4!wRb7 ~g/ zp{{GzSs.%hJe7!"ILjUEQ4&ɢKR%$N V3N$͎Y-^Sղp 40ch5#X AHPIjM-τoe8LT 5@RTƒB1Q{1AK4yH0hSPaAAMEB]cݲjsuG IVq˘`NTPp$$ Qj0! .^GB.^;}vvkӛzvRN޽gk<6 *Y-ayH %_KG^=e\\VdJrfF0lVBL"Gʸҗ),̑fbjgPI)U...ζ}*D Dz}!A7ů1½u:MȦ*JaCN$ D4emA<MH6Ph9]TB*1l[/elFܾ~_B(wiԱP+׻nQݸnVuI2YEEkO_󶓓҇ o9_c㮎~ڝ̦o&J;Q5N-Ӑ b&}@LdzM%Mj A1TDtOޛafQK:j {>FP_ i׈"mGT/T.>_'McqR_t{Mw94"1Q_H$3@2\LU5"܃R D@CΒD2.ÐBO*tGZ؁ࡣ%z}&ccH`/C'*!\`bZçNJiaEsH$ɢ&5Y`90}t[ '^2ii)tֹbRH˦Fe?`^do/>?z'?G?oypn7,{̓EGc_EUvD2군Hg#U>uJT >u˺oFb+Ar Xhl\fSR ͪK;]TV/ԕȽ*sht0 yS۩lK0Ƀԡ2am\px+'gI VA IA@#OL43w2OUq7f;w۷S}9[Ƃ4d ׏/\j+x0] _/WMU#)L(.T]mXzE!=pun.$/ҖSI4 &nH0Iꆱu3:Y&E*E2 #q5ͼtmqt}4]'S܇FC%(^rFzЮRZAYTת*3J7\K\GD/ap!4*&K>Z{dmƅ(=o3߇~'~o~P Ox+gtO|'\ݾ⥟ *u<~+^_7>m[Oby3xFЏ{?z^y}@/~Wg)h^ Ƽ:D`\v@"[p F"`0ܩtKG$C 5m<]?m (CQ)I]|P C%Dՙ68sj) ):l&͓tuAj"^^Yr#H:&#eɌqn$8TTl'],t%r`Hi`'LUsNקÃt|9<ȹgpuK'[C2%Y#q43-3$Wz_l8z=ljsgW\K)1YKNSN8|v؜-epa4#M7cPu2Z)˜l(HbӱDTG۴bF&RNf9(nˆ$ դX0"L0J ~|z/~C\_y[W(TʁvPyŜ̲T>)Z;/O?˓;w|Ͼox앗K]kn3ciاP :Q'@1HElm !QCxdն/an:iZNy`hh~R2@QM5#@\ΌH$eHDFT/` bJo]Nw:}=I$,IpB ,:n.Rt:7rNB 4aiL, & 2:0‘SIbideE'iBȢxTdΏZ5+٢E֩p2 AV>$i{PV+g/Kty_eG?竾͟~_O}w|Wo~O9^fW|?/_~?#/7MFu_DzO%4floL1(zaA)| ""iC@iAN;@w`'0x4oa M :M ڦb 4Sc | Z)}{PP4&$˳( ourtݐ]ֳ^OU]NtEZzT'p)6x*QEd6"PmE]N@0"k "-["ZIS&S[4 'dʨFQE$lj]w;|f}aΤ;ۥRzʲ̲;#e;'m<}9)۝ ܝ%ܑ5~q)B%""g;uu"Qz{Ǘ8G_ݽ:MQ=V6ՙYJ (p.GeeLJ&R~m?^7O͇Wn,aURi;hgόPb-T+# ]=]/W|???s3C'~O~ ~4t  lA/,wɒվ4QyJ)t.P(ˤZ.vwN#JRD-KLw5 a+, R:Iqxyxe2zTDV>rs鯕y,XٕuiyǓ;:=q 9y25)C-xt(\NÀ) ˤ""tRļ*= skn8 g}j2wڕuWPho~_kZG/4_]S|ꟼuc_Eԇ'܅4"YgQ"JX1#4m1j{ ]╕Q>2&p'31]C"ɭDX+xj*B)Rzſ*9Qd/)?TrH T*"czw2>u8Lqm):r\PFv8T_DEt^؝NTJTAX H\lFb1kB,\2E YhML=-چC-@рe:R*!GY Xzdtw|Z/m@Н SQeKmHZb̾\(S}Y{38a( NFќgg1h1# lH,FN)i ]L!=snV}ǂᵎ0‚,Gqh$tkNJB=̬XΖ_ڗz6M XBNɡWvtOr̸[OuI:GC$%N>c7eQ>B,{?^?zj~i,hDuاYdQj *,!#UAoCjʦl IDAT˲#dKyhb{gڌW41f?)^Q6%fn#6{,EXk,Yg9]]f`{ Ŭ+ 1QjC:N-Uh Q2baHڹu!sHW˜;3&eswZ2hH _Z/wOv"(p3}a8XV>,z-"N_ѕ Z UaC࡛7jmG_;'^: gcDd4#{wY.Rs>8tzSwlj"s#X| %B ad)a솳ݰS#d/GF3̟+~u[Oܹsr_{&L CDXRde:JPB D>舢,¨uI5& %5D(F"DF.^ۿ,x~u_}.YbUSe ^ۺ[I0(+e1tCn}zl<ƲvIJQ>9R5[2b!Y2K"JClGI3XI ЉIF$Ѭ!ZLƔ Q`Mf%*T4if 'KxPNφxopԝ׾Fr,qlM0X3y @G6ʙ6'߬_DEl5M!c`-=_W%ܸzn\>j)(ڂ4*۳vSg[wָ;\dC`+̺'Ge5S?gwo^9z˖}we.T:2$煦t㴜cܩzWWF5Z_{γw]ֈuƿťK*b)TGUbC>֑ZLYSw5!j4ݚh3HQduQЃf5h+Nнb ɮxh9lJ/s*fd=V%\:LWoﮞWƲʺՏz\I)W]SĺI;DQ`WxRCS"@ $P(" $e%$$hf Jkȹ5!Z BJAFGӳ;w.O񶗚L3X-HWm6qqwC5d&Q=hkA0pd4j[=KBRTn\Oz+>e׏z>|uVKYrk.:UQ6ukQ0]ܗqwml3v]<{{zO}fwѫU("jIԚv-XGe!bIQy>@4d<%}7D76?.-=!ʽ? A/%pCkz9vqP^GkH,X&8::&5%3` H etŢ. sj95uswmMWΔ"i+#E'9B;nON|b6XH U"YJjd/JD;] a# #|Ue&lrÅ-TΙuۑ%\j ! R03f)/WY)AAG %E23AuwgitpAVF;Q |>7k^MD_/nuKsLP<22OX.-CG"^>˼Y. #B& #R2@Os^S_WWOou50:IE@ԗsh* M5d87CB yEFH1jUP L@0%KIis@ 2\0H@⯶NS+U ϰ(kn\ g8곿@~CX+@zյj} "i0.h`#(%8tRp!6y KֻfY:;h9 jQ$i(2V1PƂ:B4fPeBL,*(#U%LIh2[yMU\PcYX$iҚMZre[s䂈M6*¤ dTK̠3[I h'LaBEU$B/Ѩ Km1MzN&; Є!lU,"(0X߼6߽^@_eNw&0Tmm('&ր*0h4 c~o[~|{o~w~=;߼y{?￴$%n  <\V%n᧣/91|ޣ_lpw_/Z)V2KvV-ޘѝE )jLD@}*%$VOZG$EQ =FיwGDI%&\yӻO^ImRGϷ*b}-ih)u%VcP2;*h^WRDϢ^B4%X* Ga0.SWI.t $ECS,vj S41jR |TX (`'E B%`0yՕ #F1G}UHٕn%"onxs1!4)aR+7ʐbA4b5eh:Dj2X)IY"m>̧ҧ#[#~9|-2t_*`7ԛzSotTĴ'[Q( OHB@ݦC2|Boo&E*6mp'9jjCZI 3)HfKh Y6CU2Ւ0gƙ1 fN+EVԪcpgt,KJ.PW\kJ $l_! Qbh!E\RM<,X#~!'Lϧ#n<^IK X5l!HB4&ZG+CjRIWq" D)H%P6 ""PS|vD ~/jG4ݸx{>ӭ üظa43dq}H*=W(R檺}\]|lnO?Ϟ}mo?]3~4<,?*y[+TBUE"F'?i&bj3pǏK_g/wD>?zMR}R!>"ZLbVqQ0:ٖnFfUG *H"bKfQI -}K~:lust@p\vA뛻OArh%a$CHx*u]dPL)6Z丮^M.Ryu{,녯wy*L2j9ODbZu#W0,=Lq,Mdb zRpRqɊA"ǩNr8=ULn2VSȴZɃPG*і͙ t]#ݏ CsF=N` pdipqgmiE%UҬ,]9)) Qe *UQ5aƛM|k>! Dwui,;K~!tPoMz&1HYu~" R22 @:OD,8,):6^t6hZ h=mQTdARl`.HA DtdC̈~B,gRr0z`|mc\XxzM+ù(  RVfpAĽ\bz UO!u|YR[I1r \GBb 7բ ypمTAh Y*!K`0w[Ș6_9'U)U0VJdԊ&.U(4H,RC0ٕH "JSSI"lRUMt\xw|qbò}P0UQ)-JJ@BE̤(e0 Ѵ dFHZQ+*C)\B4.YRF+:nwprx)ۭeZU@a'D!`R8Z4n<__o}o|wn_?_on󍿘ng{<(FO-e_,m;Ԋef )zx{ja?W{{f"ٱP}@PS$L]gpV`X1nh EL5Wq*%1_ .L\^KվpE-4'N)r%KtxځSoBluIP:5׫}1 ^^wOd0j*cW~L"s5=D3ޙ< vaZt{gdI&:4SU;}m 0 pk}5"r} eAxrw5^]:픟A +C*C^L}4/z i˲ ?AK$^@}%\Z+ PmT=qVv_nToR ^@=Tqz%$0LRT1A)V`Y9)Ųoz+NNtim Onlb^62MXlSadi&du]7Rt #&%i\w'U&MsXZێv\W|y'vWԱH Ed,:fQ*ЁZa`:AчC| 3ҘsqS0^1·܌z}mT#b0% ]T[ZBriַ[WW~?~{ws e>vSw< )I%UiPZK]Pѱmo˿|;~}9??>x=x'B4kL)sd+PZj-'YbbӺ^!Ej8(PjEsWK($a] .Ŀ.C6*z]UoLJj6tRmm6)*Ty6oV:;3Ad0S:zFk6DFv˘}EGl" fA$5eu)z'T+Os)|xmo=" )%<>gbjAx5v$rv[Kf[V HB)~&RIC:&f{ޣx?G;>n7O|6?]Ǔᵔ 0@~+V(֩@lRv#! .If뗒ue}X+@8DPZ&_R01C Sa2@+ETmjL^MP".|`pH{UyaSј֚M&/nOjP Uvr]/1Ly֦i:|gߚ}_zXtHN}#h%W.hIZTi@W!2,b{'YD0TtX2\OPԌ2MaZ;!ČLĪp.KUEzSoMAių#}$HPMDGX작RtwZJteu/eb! r')cJ_biG9:BE8ﲽ9Y,n!d 6B/(} 8)F^% Vt['qkx{Ox~(> l`yyc }@m.^QrGP!$JiZ:.%S/2r|$Ës;.vІ CڤsFWꐨ Θn@Y\iA-" W_dM+ @eO Ngg9O4ŕdmuaP3kY<|<y7>2NEYV6f#hԾglf"=ӽs֬3mIf Icrd6wH_zv> ֢tplPle;ŋiFnghe1"P%&:2U3D%i?ۿ/7>?gϾ4ώ/Ƿ~Xfa-e&aL0ʮ`k8L|?7n"oygOQGZ՜JPIQ\LM-1!CmSTQy_6d.$hh$ [U&]j]*i$sk{Ak]+jy㮝)QG#0aUh*C)*dX.S+/f5XVxD V_' ~ K>_BJO4flByC[wժ !Dpy僖!;Hd@2ŒXYQ|yTdF>mx3}zec݌l1;izyonwz/au2QꄦdXh~~r1t0)N5@,{akؒi?؟ͣ8 ./q;KFIzUn}w]MHHzkf_f9e>/-VD휱D,$`P.rV2gOpwFЄ}/o}o?ܽU6y䌢ԁHo":^ ֢x9c}}>o)o}t7_~og|ځ ] Eajkn/׵IdT5IR+ iM{sʈp5wF Izy:,oP,+emRX%l!-UKK "=O6srzN Qٕ D ewY5"(r$>\0HNh9/#A*My6rT^\h ԇPmۢOv~;69ÑP:ZMK ۽meGn,wXNP8:Z %|ɔ*}<܎#,&N E T<}~!"PBN˒J)uϧMiL8={3{ J8dDL+ gыdҔMԛ.Xx4,IɄM[~IF2@QkTE9`Lc~mke>Lg3`R@Ѥ&3ێ.m]1sVsԣVmge_HD2U;7q1'XhgF*)Zt!_stX-]kȉqΘ0D1m.!DM9h7DCq/I.!T\rv|3CT!ZE h,s&1@w!]I"m:S_nx~xaS7@IXx̛OmsD'au13T'ld.ig󣏣jV nnrwfҎ~~V$| 5K}9E;D[e:ej-K ̅ 2bZ J1+P!= mN6 [eTk (菞9᣺s5m<IUR$ZakVN'"fjU  R"n7b-03dB`ƍH;Cs11 @:h5Zm|a)vf9̘uDh184=͇ߴgo鷾T)Lj jdCSW}ɼ6n~70G+BN"1=d("[R#)*TLLM2E%}nMHgpV,W}90U}nd WZ@g" dDjA]a_jU;b* I-Wdp]9 uVWUJDv:Hr/0듨ܚmǴ?Gaa_Y<0qp˫0lL@fdЃ7cNG dcݔbwoH!ua_wwj$zKdFRq\0yR5ޚi΄.٪^5%VKJMLL ZbX ̍~`"\>ѐuexYtSo:7-o)y/VL3\x!pP2 He ޥX Bؐ Gđ~ڍS9ɴKhB!PM8+4ȉ.~L?6Sm7DJaF:!3"Xe=@#J*%')}#E49&7¼k#u=؇вJ93c)Dva33ICr`6f=^QSۊMV@%d[—hSm>t8ZN%4Ms\Zd\\I\M/RzuwacT K2CƓ+yNmK)۲mq3E"f?殔n0"PS!pu9>}q則;=˧7nZf-0;ZJ&D6)v~9ykZn"[qvvf={i j-ZK&0:D%U$%[6 *%UIJ';_y׶_R(T CGC\3m;"2d l-& :LrX)K5u3G˅8Lm{^2CKӈEy6;~'Xk11ϥoo/O>z0%o0$( LjDbEmsUi2{Lr5CdM#}VK;W*9ҙ XIr\V9d˚cmj;L~I& RE`2׬p"E*` (yɤxb+E (YQ )[ ݑLD"C'⺤\. lB_,R#o>]hciH)k2@̌p9{:aEscK!eq|ӍH_׌"eHoǟ3Ifܿ"3BM0 lCyp ;ga:e3lvRJGFEs6d.hV askcW;͒ Z07ԛzSo2u[ /6饨Z,8}!LɈAI1hL-X RbQ09yBnj6#3<#2J ZdhTj11iYfBR\Zj6M!5\j"R@M 1!2;YHg~h(Rq1 ̥EpV\&Fg:9cJ?G;d;f;33;+L'iV+EuUxe7cNIY;\{,#Ha0Cr֜Hwy:NǗَ6%,KFJM:=ѥhl\9'5ghj$NXXrDʉ8"Τhzhc$N N8qfbYzwoS/̷3׏wşyd KU MAIͨEI3ts4Q(!~JةUR2[ǁA&Qkٓ c&sCsET;Q<ޭSLTU^1<TAHmm UdIj{,bϋWH&*)#KtZ^va{MKA-h'#vM淽*ܤ9杄K`[7|OF/~|v}88q4a X:0qTRzrW:GzcSV£yI& @-Vo틗^ $KmAQtj0ILvOܧO OKV_}bǾV77JFp("jE)QDg9*Ct Q7z}^:C,9!LmQ[A\ESͩfE%EJL4qb=ގZ}VU= Eov Ycm6G9պVZA %dO%s\[H 1Zrrl \3+2c8mnm!Q "6獊Ws+4e_z=iknraC4F _.^QQ<"Hu7pjv % bĽA-cwP D-4V D!PEQz20?==?nǻK+xU0ͽZm!H4 /ne}|< X3y+|9l$,m9{hUڷY$CԬњILң`~^=ŸXNzݥWޘ?{œ/sXmuK1'i7ڄ1BIKHTF) >])iߐ*h9*A^@Q5.>[F)q:TC Aaǣ(SDRPsSսykޯy7F!YËZ36ImzYiIq2ƔlsC@BHp+cXKєM,IIʨbSV{u-wwvu"m:{=yk7 S͉P-uuL"ՒKD_*~tD@ KU0 XRW,2  )b(D%JSԇ(ǏOxxYnr*Q}H EB23n͋Kڰ`ħۓ78KD`U 2=2 Uxoc4QiIaD Upa+. 2 ѭgX%Ⱥ5-{X{Bk~)ME9KJHY1c4 ,K2nZn'O~"Γ'8`+~UeC([QU&NDh㸛&w# x뼔i̻8,( 9&.!J(ͣBFNc]<~0 h?(Z j 0 7Yˇ徦SlYOX~W?cVr~?o<[$pV ^azDdBq.,pM*KJT3Q XBclyHܲ}_c [*U6?7xlY9UMP(!ѸBM5-#"TعB*TMF*3'ݼKڮ#t[ ycx+Bhdmh "E4Fq´:]տH9YO$+?8ZW2^x:Et̖F#;9jE])8jN$+@[1djw:׈pPMSRw}AJ<#\TTGN &Mqzx|O\tx(R&sSק㱶x,0d w6twP"# y>Fy=y}~܏7ue\$DC(ѡIf [O`є E<'iːsJ9|n}1ṙX4 ºG)mp]nH!Sy 65Hȏ,"<`AdIvk߿ ~SqTwFKsoOy֓g7d>z(4/BwO~v;v{'Ks96l4z# DUW0#Rc{]A>DѐD}K,0 BSPEt4*"V$KM[N&) + ( j*xSU*TZZL"I4e3I& ÃRUPE24`jyJZ_ 9xj롵ZB6<&.;Ȏ2$I.)tU醷{T#Ivih4B[ChNBD bDTވڱe9sDP ׶UԨJSJQq:7_€oToeI~hCrF=ҒI|o g4DS0 34MGlͣ :>X[[d_Vq(mJc7>cg"_%[z6$:kP˩.aIޖv)BvY.ޒX6jWq.WouJmw wߨٷ%P,jfI*@[BDD`ݥ/UyچaMkdm$W` rDz!ͷiT;OsA:b1*fbUa'V z-ުZB0"V@1,;[ ܬݺ"DU?caۚDxqRC#DtnQLVv"Tco^Whjmƭ$\ _}n/i=RJE1h 늶 =)MT!sP$ Wot0` Aeb:{`m(UF: [J_>zW;D {ZFWHtQQ&h#V?߷Ӟ=sgzp} 3>8 AUz/N=Gm:lfI!.h`PS_K/N1 gѓ\dV`RKJֺtl FDsT2MBpSv@M$ W{Fv[@:%XI>~Q5 s~{)F}Yڴ.x\N ` L9&gSW."v6UlKIé jxḐ[Dd7_::eX~|<˜ŐZےT*zkm0cAi". h-鶞ںA t钒Ք[k5h!Qh)|BIy?>^,eI*Ërx\$Dje]sӇw/^QIK !/77^<o^|_/Ϟ< D9d`>נSLh&jNKӮHH[3s:ĩ2QBu ϩPgQt li[rj\%bG@@DB&.EgnzSђhX.5ք`rN& Ԏ뼾͐.sQA@m nm%\4RZC ANSډX{WUg/PB%@cx|/E3ӋyFz\!I^dX`'#ؼ #M%_, 9Z:)0QMhFJi|S>5>y..2LOK}8?~qӀ'zhYR;V)i[@mCnchP*U~R#xf+"ش`Sl{iFu>_vrN*J$S" P'Ez$ \A}m]aN%*IAJLYR HDelj\|HjY%T,ZbCx֪!8@6Nyܽkbk#[dQswA }҆ϼ%O/uOx(@ҺfM#"aL"tW0] Ҏ:" a6h `CΖ-gQ o]d[QOUo|G/|~qir#iv;KvAF$ܯ<@ԂT?-2h'v0z]-+  .]ޫݖm;KӔd1~QZKR^92P,nh,eeMW h+XXmǷ[\ҦÔL|jceo}|[͍0LQJC I1ʰ}m14oIERbC)ң:$ILij6@ ɛ$Id'h#@C3}[,I`9hmTqn~DN9ly : $iaB+Xk *x@ vUOu!T[e:nnpd\CgA 1" 4$!DuPsy~k kx/K\rIsA="±f M!fS`Zŋ6Ws##C5 B#]?j#_?_w>~_/<1/wWW㔅/tזH/tO ƛG2ڕ/|6c?|'<`s4Զ=s!k $#%:)G{;@DBUH^q>nKۍ}3bV0@'r)t@yKoFHĠܓWkFEE9HZT*lpUEwyI҆K].i*ˁnqv)OfiaE%HxlscJ5DFD% ;;p#{֠ 方{Q$ 3{['Th .V(Y?_j=6 Cs5IYexpe5)P4Q$P_t}c  @odհLP?td;ۘgfۂ='Ps`s)[? Sԥ>O.TC%t׾[^dY(i6%TɦI%,,5Jm'D!55@2D*!z [=gkXV} 7,{48}JBKF# &v=Vֶv2Li7 Ѹxx F˪*>EԺz2#z匢M BR: c7ÄH&Ȫ&fixσ^jTx$x|b˩J*u1  j# $bd$e$ZUh9%2!snzȷXK#?hCExAQ$4hލI>{dT0/֯ŢH58 L?$,' B; I胻 3OԈ=14-awGӐUxPz3XCD8yU /#zK_q~ZmY,Y= I[4x5]"0Mp|5^P<@l3AUJCJb-o׿~Ouٍjq)5$ɉx(3Q %(nGC&I ;Քl?Hvf{>~mm}N;#DG־xrɞ>?VQdWlD'GU6l`OKq#DLM5Df %kslQaJ {|([{5R# нpl(}vC6 1Da 8SnWAΨh+]#-NmD8X|/<ؕ] Qnz{8p _jc-- I}e2ԋץsYm-Ȯ8’)I/sBn2 "I L.hw>zq/|WH"FeZ[UR "+Y(K"S-}SFdOo~}ӥ$onk߻wNw)n>^w/oa` 4PEB75U6 A2O9-Z(`>E8aS2HCf/yز[aun ^}R|R9ɹ։m($_@DnA. qxXA% mʣ4Xj(4|9%Ai?A,juz%gn> Dh}NU=Gk<"./wbSQvҿqτs(C8-t//M|jL᝟ B vaQ ׊6y 4/pL7k~RTU}"h>?TDv!`Qʆ6 Pz t6C^?uىi+O#hNOL42U" \AuZ T:q 6)8^X: ih.,RDCDT Fi؍4l)GLkt۩F /H M]@GWFɆ+JS> Hl?-] IDAT~WM"uI:Y$VnSVR9G()AD@hZOe9R :;{B>nHS1 0u)}X))=%㖸Y%Z՟Dxs(K],e]TwFnhR8%}mɞ>_bη7$a3Nf!7?~>\n}/6}?ܿX/<6 < x>~{G~·&LPQ NJL ]FK9ڊST]$$,R i,'$ VrFALKjֿ gY]0bG:zZA1^^ q9>D8V.Ka&ӘRVUH~/4dKN'JI.2Tt`!dxXNwqXZC\.ZaHC&׹%bΨ. Ӌ!D j⥞QSmUItQK+KcdX魷/X?Gӷsh04I-12tAq ihPZ$L)hmHȦBfhڰq";%<?tm.=( ڙb@DcS(<$<PGTF8ؼI(U\qlljb($6 k%dl/(׹-ҟ;2I!?elڶ OUH&H;(B U/Rz$招4M>ԙ`98 ْu_P TR˱S ^5 jg$N"Bֈ{}jD ed͛SjT4&e$AHD#˩cZX$>Fԥ.u=2{ѵ]/y{TUg[4b*"ɻ*b eg=p8frK)eނ] ZuYe^"BD܂#r&}iH&R@jPA#5IzTt8=m7|.e IO:<ɄJH-J!JhT:3ämԇד ĆBO=ګ}I|?rkqq۱`HL|?m_;yzeLHUuT"^}U⇟]EQ(xbGA6Qj TRʔ F5 GO}~__n Xv**ByT<="{12Η_싸Vǯ'HZS HDpcsRI†X hô:.agYp `JE \22.MH ,QdJXl̖JCtJD`Dt{W5"RT'IlbNT=slϾ?풾ƒ%}b9U11om{S5 dǨ9)M4|B*A2x(E$:n x&W^ r*(b8{bR3{LLCD-1C7"Rr )Յ? vm5m3ш `a4fFXfmgX{JssV c:e) Qx'l`u\GHfk0(qD͘h2џ| S33[ʩОOw$w QF/I$#2"'R :ڌaK]ss,v^-<^f2ĆtFv&u }Kow/|okwGݟq*AD(Ȥ@$TJj]l:5_פLeP|tF:YZlaޣV!rs7Da=(nPcN!GLg$]` LI8(>Su=)t9q158"|4ǽŘ[ xRD8@t 5rV3_ŸhXUDLO޶ ߵI?S^ 9tVL9MzB 4s !)pHQ)23O|oWysᆵWnWWl+uH #Y ]r]&IФt8z /{G3R$/FQ)mȸ92`@PıĄASv [b `2M`#cϐ6[]j])fjjͦUEɤwfe%+04=}Kxx{Bl]!]$I R#7ƚ}fjIDI [DNfS)'+j̞yxSz zR䖘UoV߯7nt=$ 3"ӓ4D CqyrEi[]Ё\&-ULGȠB&8gRLӾNl7DT^†Ɣvw![.PRX "'=ʪ9~nǞ.2]4Lo-޺PMDI)PBǔi4vvA2$PGaL-evY Ke1Z!ҭ_T6R4ʺwxo~t"u vn>=?~zٟtIT"@f쩆bi"Eޥ%7:CkZa #>PS-4ԟlӯ8uS3$%Q_/"K&#M |B1z,\S5\Z5l1+_{~C+jŵ$jSh${xCXQ0G ʴ(;RH` V/B9UhNz:4 ##v^uG9zyv??l[o4{t}ž]JKsK LvQ8T y<2E**S:ň()U٤Z]ı;2 ɄDPje%jO'0(+o~gnCȍ|eyA%@%29ddY d~:6P-*f@ (zEn躙S-*Udd{D(`9T#o.+cE40^P.6lK^`{$@t ݣ2)Rͥk#j!gٯ?om} ,ZŴ&) "z=zCv;8n瘙wdx)%"5 5VK&5h 5X)GtŰ Y)e滻}^q\7j6 >KLfTGA1HBeI42ԟi{㈫MVg;2R"Z2H*,?AD"ҙL^R&P*:I~`9ZZA^fn9&Ǎ:p2ap3P{ֳD1DymzAyx5-|y>;vg&jIAAf62{52M0HP*&(1,\<-Ϟo3Em6""Jxd-Rv$i?hʽW/LE+\%#S)iٯڗW__zxGlS ˜օT뼨Mf"FԹE.yN~%7J;ª΋Ms~>pX@qX~{ @o9a :.CY?x(TJya*hIQk8Fj=ѺbAB'٤l0Oh.1n;Vqw/W,$ZxZh%C$ HRǫ[H77uDzw]Y nEImww@j)Tb*s=ZFO" *dG7K7O7xþ"f뺹u}P;B'L_ͺh< s(UP4+$$%RIUJIVVtNJܶ6"02̯k[]]{{ޯwzG*U8t`|mSdH8T)iX!9x_HE@ ]"_.r$.8rrRB$젫$2)G/e__I8]5MSUElǾ?z{vaAȈ 0iM !-oO pѓ\4-e1Gm_}HJY~Y0߳D HbX~ٶwm{oO7fg Sd1+'K |C߃eJfxFOODI&M)f;쪮fQ SdU@pHQZIޝN׭^\Ԥnf35 ֥5Qocb(( )b3}o+m;zQvH/rX7 >0:nJ ;:pko<ݗRDx<4RLU@-UĊZQJ1Th|`ˌ/L ` S!%K32#Lu4UA@d+˩۟ߵmϞ(&EԚs*v%ܦӾ\b^VHd!a6WvuD=2$U%t"Y*6VS]g72LR+&[>XmwwϲLR43`P S-o[e_CRJ,!o~կLuy\A$ɀtgf8R5 P*[9@C7c,U/׿3?r~lm%xH4O{[SlY="h"TtWSzpW"*C#%'^ޱc-i{ !b\/986hJWӴ4]շQx_A_S*fHwII0"/E"q; C,/_(GuBx8QݩGTep™̔i$BMMMžldݯWۗ,Sd]K4DCl𕙄1C@uRye$ I`%>i)Y=ej2 Dh(Zz'm߶֎ * .#ֶ=oۻ}}l 3ݙL0.fy>Z ݨfZzn.PqBVKY8ṇ~:x1Q5r쎓_jV%mObֹ֩h1+"DOjQ`!UPQf,'b$*eQծՂ6p3i,UGV&#>4BC @UPphωXz/̑St2j:N6h ,qX¨#c y /&c!$}I~?Ʒ^;;lӴЛ(NHQӽMN>?S#yꨘ_ǩ8i=wvT2pEge l)mzeMx..grϓVHmJ*dB @t+ʄtyZ^qr*37h7~??/le9ϱn:X "Z{^^TdfR$.*ҁ jH p=T!Vt*[*BL v9 |FJAk6O"r<dB;$T`UXHaU7_eBOZՑwX ӺL:M8a' F) hB_4)HRP*"r~UPhW%F+$ (== S\/r'_8 0 "3A MC7po$l,`  d" c]ȾEۗPQ}lumgFH2ٶn=Ͱz^lah|W"A]Mw)#J b@[nͧW$ Dx@d$)d 9${#l9^=]_3.x zޯ/]LR7}GNjPH$T!gӒd=/x10Y j-ffP I dRa޹ +}E-nuRC_{{$ fBof0E&EZBlڜZCm*3Lh}oL]@6-bme[}ev%3GEh)L V*TL1UԀ %yUö=NfޘȰjl+uCFI@詘_5UQ/;f]$DDSD30rJF^5Tzl/i(23QD6{,JI":-B#4(&&8*Dv-:VJ)L'3yċDA@zDG$ӷ \ IDAT*-;o /w{~_g\L KLҏ^XlbNgI Ej r4_H#ךlSfZI 䘲-X]O2b01%z̎PKBaY AdfWj)gZO6B$t.u*oGw?;_O,d5kvm߽p&bEJu9om}*S$"F-$dLfmӎiRέ]é Ivær5\Q_Qt BԷūȐJ t=t{l,,ʤQ.%lkwS @2 4TWIO݆ zk-""IN.ZO O+1Q _x#NBD>?k"BRP#;GNrR{5D3#- hQM$Z{ m]umW{ Ǹ*&:ON׭GN+YI u҇z*Pt Fԑ1HlOl#hؚ&R+ v-L{(fv:/[4|w羵q߫ޯ]&&WHG@%#2#Fژt& =NP@B@h_h}D'UajQ-se Pt^!2X-DvϽ&\]2VآoA0;IDiV'-B-SU|Gv*!afJ9H I5##J4*bB 3=;h=T;1$bd]};\@<zC!j)M:'(陈<S!;20̈슮W}ZrIjSNffZdIPc>%*)bu6 R3]¡"aV uĠDQl0х)bl$\\$Gdr}t5ԠbL6)G_=$v X$n|Տ[V V:-N rKIhD0,FNvƞܑ Ȑ_8ĭ#: !Qe"=]C,O޼kQs "T-2cp"@Fh|PNe.9 LE`e< ٴOTadK2MLbTmj1@[[!KE)j(1؊G~lBF@SU)CIUHU2M|2O:]__㯝0&*n",z#IKYzaA嗄;Z1)Z[#LB>_8vaY?H0B0ۯx2qRtrɀ|~{ݗG@W$Xs9r*edleDB gG(T v&ݚ,MUR&ASRDG:Mcd,Btx'S Z^Z>Cύp}u TTB:#)EKAT0Rr#H0)#{)Qr~y.{0|2t*mKn,INMSQCPĪΧRNrD$.őK!:5|~$xa J!j!#Dئ ǧyTkeifG_u$ zޯtB-4͗x 8%!e>`|O,x CqI""/g1RaHAJ# EG/ %C٩Z"IT̆_3vlۨ-9 e\ҷ]b?|P C"`^vQ1Dw=?MHMxa+eVS`c5{9'#3wq2VRLX)Z lVU*(=c\+pbTc926M^J6{RDTxG%=so^zkP&I0XXZ)ɐ8չNZ^4UDmok]LlXL?B$S= %ey褎U~vcF!+*Umii˲iRL0n|x=ɦV-!pIg^ف>ƿոEQRAn>É)LjjFw_ş} I1ShC#!.E꽙ֺ/yyǗ3A-G (Te+֊̯&LJXJ{>}K\zxTl2SlMCHfFyTHRN}ۯVcP&=U|;~~nJ(hEjUS]ۻJDVg9t:{۪) L((GL8czӝߣYf 9|A4ʆ( ffPP/O T) /z?}~8σ&`@wOO.5 GHe}ϦsAd"yƑOhpd fwdZ~|Ddz/yy} hwPE@kr)T0 *,1r GԞ ŹT} h=_="MX'y9R7.uʩˤ̵"A"y:Մxf9C)0;]'{"RBB Yc+>(Dp_/oSw`aQ35 BޯK4AFx PEbj07/3 VD!mQ!@Rd Yn#(R#G{Ld2"@XdDdO$$f^U@I6e̞d"P037ё]ґ)lHAK}@0H209@G.[<&2ŽlVJf\FGm07XǍ%JDԪUYIT __".WrsE:O6-uRTR̔E [t1\3cLbK{zڞޭOz&(]$7bU%'d}@EUKek$eS#Y2<>8b@*:M/\8D{$#_KI)Ќl N 23:P$z[^K\vheyuL;X# I"FҮr©B<o.]-;#be9iu{^TZ1[j!G6HLK9ݗs %xHMd$R$"Yzw(Ow?b@(_#ԫU=C &O\)z7WP~.UR !S:)?nx2+ &d dHI&T/ #oF7_-=%kBՊ׌ޝ>h)(GM m걕@OZA^powg|o.ٻ֑aA <]*@Ƹcʕ~yƄ)H1,SYy$2` PҙQ: KtT8 h|1R!gKD3=A+9b0P 8 .":<5Hro] /QA CK ;r ٙ]$DspRŠE#b8FTyl01RX woMW۟uFIiN'I湔i<]/[`<=eәZFF Do@ 2$Jڶ7OO׾}7x ǠXy|x=[Bgw96Q{36eo:x+z~"z$6⋑DG*.nCc#f"ʜYPXrLiKr 7CD8#5%d7K LPlq[^ʢA UJl[ q0;g=1|+cHi$ar]{_@)!{h\oO8-=*)Byx}TTnH]Kzm2 v/hloҁ,[U1Jv \T335&݆2^O:e;~ [L(fpnHHaqx[t7yѺeW` B>vn=\,=T ^h@YWݹ9MhE[SX5=0{ƀR(zhsuu׷/o~O'EEeT7w;CpW/}6nzng 63X*5GxOτ"P\>/&^2.d١S6L"R2c6fo jf~} JLU03A۠?/:H pU6M4X3%әR7|Bf!+#3s\˼$/.ca2Ȥ@va$(Tm˦B"S TE%[ralHm -~]ƥ*%6)vϘ+C)#lhl =T:1#[tuCֵfEd$5R"@k9<5b0%NSJkǡhƛXWe=pa(E:'JIh_(HַK^0=e)a#.aKLQGL;Pwa nCFKB,sl ur0;`,*fDZÌLJ Q2qк:@(-*/~/߿yRE $Z-[\(ri:2m)<`ᔓ<է`lw.q, E&ͥ)L U:"Z̩TU阛^L#6( T'ר1DXq(]S.7Ni,XLNފuqZw_?=fMES-1@5kvza3#T<̘(xtpmeL B0Dnh 7%E:;Pzy#8 ^PfA\O˧~"!a9}pH \"BaMk̔ b Gk!Z^So$5=tmY#@) 6vgO&3BFRŊmD~**[bfřHi4"tXHd+ =Q=Em"aL6"!tl@H-uqoTD<|C)ClԬLZ `A B2Af˶GX"ϫܝ=?{xq+- S=4p7~e֯Ucx}Q$и4\{2\T*QA=xcuJf*y<LSZKDP#4$rɾ_O;c-u•2= Ib4(O(PQ5ZE&6U@2@˹}g0THeѯҀ\NK!6,C}#eH~-Le{j%Sd "b e)˥E6 H0c;;RnNOel-$Ģ@>+N2DjbjfeNbd88P Ŷ.M+} kf2DRm6EMNC4 U`qTC}$H0El zR{#5(W메"i@l̙AsSvEMS53jQM%5 ȭPݚdRL;z2<]]vi7Ty9Td4w*o12=Pd.,uX SRRl[b_kۊCPyo?nT^30"`{p}gD\WewSXGx83zRUBAHo[zWѢ-DўP 貫uts9^/ɩ (*UK+2#=@*ҳRk;pL}1qC"..q7 wW弬 {X]K{Plz;|0Ѣu;ӚXBTL/ [-$)o0':aEcPE$︺SP`8|w^B48 !K1Wu6# TtʽOMutQ0T# @r%LN9{ҙ -K6 vڛ`c}%/:``HVQ`dE= j%2I9I_bR *(R50#QB iX0^["Iz̭)"R2KsedR C-Ȳ}KDjV IDATaѬEsu]p! ah5J_x^k_O__گ?㧷zlPDJ("4)7G??o]ڼr~dXL~kQ=gKtTHdg yt=x~O\+'Ief.":ZS,g6O2 V%@BMԊnL#qٮl$*LHQm{0BD.`E 3ҝ]Ht:0W*ѳRJKNM?vr3@{n[r_aH%[0SVp̾iṊdds6$d2{KPU̬f(*` (ZFPuSzhkuu237Dxlu(6Jj/QX(x%L)jz$E "6R lni"*v/`%b.@c"EU@I4kPSU+"Hq݀Ty[DZZc?9<}z:v8f h4FܚUŴ QV.*zϧC8_}k JRDX`dKuEnd=pn/>y??}f.䪃 V;IٲUNXEaJ(s21E鞚4BV-3<"HOx0eAwq3L[Zeu6[oҀ4;CʮWt;:֘xOܪLl(Nz \5WaNF_j:9wqQnΧ{{zxquU&3{;DQ!x՛&}vU|,̔X`uj߯al6}0ԒfQ -Q͊JW`:`E8,u}r6()p)`iUH8Ҽl)4b&_n x'7E1.7^ê"Ta2pLeJG,*ݍ:ȰaWT魅n,1p3Xbmr{r7bov'Uj o~`wzBNN˵~Ȥ>y<7tU8-|.B PNHT% ]v mRff*#ȗޠgp|_3HHp),31g>?zw*T.˨º{HoɄKOnA@z1ky HU!EҷCaOܬ|%C>Qb*ң ᄊd*XTZgA +@`v^Eu"HwDt jYF*zò ZF[5 v,${h 4c)fVg 5z "A2[Dc.P A0{WZg9XOR~QBca!$s&8a,TO77O8bQft#3߻zC,% V߼bW/~⋗џ=ӛrX-y>Ny{w3O xwZO`; {xx뭧ĝ MP5Dw rEСn&bYyv"B-IVҶe(01Lrz5a4}`vBJU݋̧hlT g5F%B3Ϋd}lu󛺷ysʗhdX-#y<3bSrŴ/<%QWy)!3@Êݼ*ʎ襫AoEЮqH5{B$37Hζhf7AoB u86x݃!"MjKy CR m" )"e{$*sf%P=,÷c=uˠT?;ٗW_`:\d1U0P'HVeD+u\ޞ?ٕ]w(Pv\b#SjSQ5ݗ/x-. 雛.LQzW+\lmJ pẆvSJ".Nmtaf1(93WX(./"[l;RaSYWnt{ [V,nR z1/=[lC'ATV06ieWu*5i(#^X >-SۉTvK !IME [G_ A@ C8hME_n% *RTAVUM$ssgD0KJ[𕂵z֌>=wl,:o^uOq:W[P3ӨϞ$%²w J *D럁Gx ==1n'c\S[q&#{%)5o I ezlok*}t""Jr8ыj`FuSW'EE+$llg'hQ5x[SBﷰ%Wt "_SΪORg) =C&:X6}„fn W~>ߕLw-P!r`fhS)f4^UpL32J`FWYd"S2I0UDDvӸ+ EUs%IMTZK :: z^1pim],{v5kkKk[ˈ_xϙTZj@G/Jlc+hp pvӴX`8CA Ie]s|r[[SPX?"BrB^R|(oOWŗ䠔TxUVei-EV7noƫg?{zu/{7z IQLU,Wz&3j)zO\goʠSbqnWzdN2caU*rnדTrk"\!e-H=e[.Dz/Y~w߳~yyZ tP'vzFDS~^Ηm¯p 7q,Ɠc4xғ+pLk"!Vd͊+"IX )VuL860{(@Ws1ymeYNm9`;*m2a\ AZu]__]_8 Z)Zתњ/r<OvG?y%if}cDrԬlZn'P{߾yyoO7Wkeh)UaauO>_>W_|_{x Hw&)EQ #& ZP$R4R02-tJx`v@D0Xw-zמѓAe0 P2Aizf(հۏlSZ>dW}U˼mnCBؖ-{6 6' )vŦVp^nGhd!M.R4KfIL鮠$$m<"k63LպU8laD<" q: ul24s-67FI*hzfnbilZg7k lO|-}wmWuhZCV*,C+v#}rZ~ef_qIf\<r-M/nTs)-s4S6s% 'b=򝚜]}XQTB6Lh&}-2$)Ld@x,FLJ: #3V\(w>{Hs+1)"0XUך\DE n`=)p U2 ʯ|Ү7}eLGBlA%T2m{,Ԋ& 1Fpt "DSz `#wCJ'OA#.-H{8R *]WǬV2.޽>Ϯt%à?j>W9RA$q*piK*zrEn˜ :8EsV=n A1WJW<~*Rjη''o_}qmkj(W^~o`v/|}wه?4ۇg 6e iAbi!!L$)E U%Ed [,'>"&]ӓ-:Ze|dʠ*֧7A W7[;cB-0 v2+rǺ z:NX~yvyq+fRz17 $R!r }k($7WP^8ERFx%Wi>4 @UdF`]ZL)nIMS$^w)J@c87kIG89ol: Ii#Kߔh " ɠP sCn̩hRœ0VԊړah+h?]}#- 3; C,^u;-b3&(e?-Q`5+jA5fkr PR00RP$X/]: os(59X-\_՛{[Lۿ?MVߙ~Ç-ɪW - t^bRƬ{WLoV9k:wϠIv$ض <zHy%UB [;l0MhOI$K*^VD D\n.y^+ r!ꪣLx7Yt)}|KBC% ujj^_=&̸xz_=#[ E){ zqҭ)qBIH@$"YT! 0aqJw{QQ5EdneRtZVJrk2,< tUdqqnұLaX׶TMe9i6YVddWGfKB [=lY84ԪVDu8n?^]M4CŊ0bS,||>a=KslI,Tm?CMG|>=0Ud&XM}7/?{5XKQǩRm?N|pwgG[PnY/_(?w;Ϗ{,]ْlaYSvdEE DM5|vaTK0wz'F*X:\z8!E!uow^B%zZ^ɓ>}"+8/̦sŋ }VF0's'I 4P&2W?~[bj8PYSG,"l6 Z̋ nwC2qU R+JX*qL[&φ,QvE*`ՆQMpaiqȢ S`S6 IDATCD~-H8u d nBΕiqqkU0 RGa0eDX|>ݽ~q>{Ơ(MmCw~QYEiqZhwc x-֟Moٷ~r }뗷_>@u!W 洬>/UþԦQOzz{==H3֖-֊ WR› GgZ'qr]rҌY*-*$"!T.:X Xըl7R!I'{7OE_}z8NV{2雧(z8ƈ75–զ%J)μnj?9u躻B^5"EA6Dld8uųc÷:2]=-uRa MK'E^RjF5,uM|x%i)4g$6B ް$u(cԐs3ڸ:e?W 3s +"P ;JJ2<̤"hH(`P`k4R&{qၖA@D()'SCZu( e_l,D󸏸 sha*Z?dzjMB" P pI,Q*DDJQ cubڕRGP->/5 jEL-%uml7&%,+XpLƓ'7z뱔cO?GoPTSӷߩϯ'{w )d'xD)0Q1ɸCA쎧x; xi=zTP<x WwB35\杗X4uL!$YĹk[}(_4˞B@Vds%nkpvé v_fnU"ZR,-#<#rYJ:8M=BҁfϓB8ֈؙ4yx/Ү[ЩUaf*Zj-CqXb1ju(`@'3eY:kk}]22;YM:=ѩʎc5* GeuRK"r69%UX!Ѡ!ZUKbynvd 4j٩TE:ϭYӀlUL N'ygf+&UMRLR KvL5Kzcs>=L3Ѓ QI*ILZbR#h! !?JSFG"hQ3IdeIT!C 0}9}gǽ}xVsNzu~"! ˦JޏE,M,Zh q E w_t ݚ\xL5\o yujGLhѠ(gnrYz}sBigG}Y"upU/nsk_whۚ|{h¡9"l<,y:DΊ@A#L7+MU6o<G/ ׂjϸݭO}W}ad(y옾KJ(DPmܻ>E7rtISt=]O׿ j uFzD) r4(ESa""өHz[G ''zJ@:E Q7PbvF4*%m|~yt1bJQfS2+\R))fEv_͓zgPFQe&= B'02nđO 4%sJÈ1ʾOA,D҃"CTJ!<4DjRTg1O%6.pCt4S+i.61P O$ RVU2ێd M/,p8u:^ᓭS0&yl=9逫T!OdUmK[:EUZw>zc}7׈=z)jYсƤ"0d)ӯx@> a% @[=IQՄ5d[ R'ކPTtNxZ)G대~~q Tb0 Izdou+bfj.HSJ1fxKû{hY լMSl|eԳj:F(dAwpa(QD)=2)=1v! ՔM6[Q`~Hn(']wQD{km]xX֥L&1coIWxHdٱ>V,~8hL5-S.}iv5(J HN|_[o4m}m.F6oeRdY~)2A*t2W?x<"Z)ph}zAڽ :azFDF>\9QU7S m.BLjb:׎~(͑g,T5Ӄ*SQ$27 8x8oe.q*jOGj(೩&n~t9s?pl!AFaEVPzhY􎞭'lР9]vcqZ4tG3Pd!$GEP&,&RLbPwFcS󓈁A 8h\&ʘW $7BFH)*; '+Y*=7^v\cYu䁄Hs8lzl0n JVF5iNXAQ$!)Nxݡ"ZU\Wo+=8?o(0*yB*Ξ^ A-bB`YcY)/ߵߟZ ~4 R{T|U~޸ƍ |Ye9z~T7ChY hjF F.TB;|E,CHdo~״āɶTA~;Ot^wؚ0`Rtd*v-hkQ߼q1c0} Qruoс!p*X^k'#(ԿPßOtSP8b4OT&[oO޾ LHTZHUtce.u*uSʸ<-DdH"==ҕ<A$$t8y?: དk08 }ކ$̆J8n{~z1Դe /_"LH3:‰4*eѤi)N̳363Se)4  {* "wTjb zROHF&TEN!*%q4AD)$^?<7uQS둭SE&>TY(DEeZZu-rbR igG4 lʱqd;oBo'.ꐻn7(pCY2JRm1)4#ˍ-Y-=ZG l!mhW,f=ulM=柍$.護~#]zzVʼSo\n@vmo;4M!\f1Ol aYV7 V;ia3kgtVtHRnsz⡒/éVJq:q I2`ޖna&K DKewIdv|A/Ў1SY;1SZB&g a d i.ҡ݄0r3Ep&&b}tݟ*l+|~/+O_y啗_~=yÇ?}{nI x2RM'mا"dObZVJ9bs\q)jz0yNe̳ci+uSe:I5޹mĎ!ICah~r0@xhõq 2%8UUMXb0J) ;G8ѝu#u;9YrSDm ic'*')]PC<4&dH| IDAT$+𘮅ȪV7qdw@hQ 2:+ϣt(U- ae3kzi}mfn7Ru|ű5LELV筫{QRQ=d=҅4DwZTdF>e׷|˷<|ۿ߿o|ҟxGy/۾CoK _/K|/_S<$?]OO >OǽDFbAM:Okb6%g¸DM{pW/{۩_~vw%xaQ =ePCUٚz)[C#$d+Fx;SI\=j7}YTx MMVhDG! P}s#?_ߝ T+f.wֵ{պ7ZCqU'+eR @0,Ԫh1Ѽa"V፶UQB'-B׌ղ'9t-ftwuL3#vX\in')eD1Punewwb+.CxaW{="Z'QiGݞ:t.ͥZVRv :ۆ)nα DOk@N(a Zn -VLAz&t&ĝnN ,(Swkˢ],aP8 5t2H7cTMGrTnb ٴLp%\QfGZH'[σiVENr n(wLfgij@N{ 1z$0Ȇ3UP#>|zsH& 5` Ԣe͹;}w{vx[#te|3ILݹ7}؏~_p31DCVsg~wݙֽhKa&!( H?W`P5l&EPUixq?mDVu_z饟 ~?wU}/ٛ? }&~|o_~g 9瞿sT>=]OO~'D&KWA[ +!bHĦ S3&"#I#14 QvRvv2u>ݲ_;& L{ٺ1@.dO{0nqsgIIDX#$d F[D|RGY(0^QFv]d("j2zXh>Ct4RM(LH`'p5@#[8Qwdwi-'}x@sJ6X$[C%4̳Ws`Czp3iV4Onח)jZUKL ԙ|o?|Ov֪kܔ:GtT4oK[ -Vfb'-vFJb*ݽӉd԰Gyf]hXiŊذa;+ ej5 ZL(:գ5!x:SR-օ"P}ɑ^{~UsUd3]T`9E`Hu2z1Qvz./28+!N*aQ=ZK6膘9dFmw9V7/@lڻbL 5:N"=;_KԵ[oe΂.@I9i*"Mɴ4$#S!mE5<.V,kG#Ax'ٙ5ь$kuc\=6u$JuuP^=DGៈeonL PDZKÝCJX)/׫Km=Cr:wR60hnl~xRjyWggN&&tbY~IJ܇uUZ!ŴRѱLzgW݄Nu8>W_?>993s/W?G.~Sz?DM9DZc>6٣zxOSg[~)c81h Z51NobR N 9hl$Vw&cy T sx iR!..YX=20 z%ڣu-0*"9f6/;U# AMDZck7gnwʴ)0`&ӦlwϏGªBbZ:BE,7LAΎ 銵MXb(3IKmbjBK(RS8O'^1K? S?ɼi}6%HG7|k7 ~/x%?wOugW:?~?_{KmWlC䋾Wc{cǿw/Ϳ/k? o?j=]?CuɿtCc{BD)*[q'@)hzDϕ8ΦQ(U*ʤTsLu!أH*9+,D%J->R~7F蹩 ABX4Tǐv+jyJ$z{p8m$UZ!g >MlKF R̊:M&)ՕXbFx6_I)PYF@W&O|'N[up{xt@n{?> 480S$ut&b̛ͼ7ݼ~۩fU, &Aד;_EL-6XЋ\p=0ѺУws~YigvsKDHDҥtl0 )ƑPt:$hWsmUU5}h=k08W+{^b3m&_qt}&n !tıcv>@V4;Hm<ߟ %nND2r]TEB#}vHwϡVF~OvUNQ*̷=7_<۞)]KP *bD*w=zFj)օRզ"W8>z1m&Bd.u b&l4Rd%ޣw8eno7o|g_^?߷|ۯk_~/~/7|ۿwяӿqWpIM[~Ww ?oݿOK~gW[?ҽ&Ӭ$4hpc7:6i =~kb !L@0fyr 1dZ C|&jC?x DA>?TX)hj-VEmQJ ![F bFՐT'; ɬa"Nv\CoeCɪrO%"N+66n7mlLnԪjF8&2ޚ/RLtX.yS L'+*<_*(lTPW%$˲,{aC!#tY z܂$bEG[)]|V|-jU]ì٦me5L6K-K; /emjz|C{,>M6M4JAoE pmmw^;k P ! Eg\Q66oHD!$"n&}3fAdk̶CE-Tr^~|B:zӃ; T*%"I,Bw-6Ӕ۽X›/ە:½ ono-ZTˇ} $jz\=]ԢAy}qwNթI/y nS>aշ]?~/[țX~>RwYgf}{wN[,'s{JZHi$2q hsE4kHNoB8@|UO3TQ5QEл\CYDI@+|! [ ɸ+\&, wrJ`Uh-Y!6yQRNOmVD,^/]+>cϽݜ J*BGڎ2@+6AѠLeGa@.*IV+!!xMznlbe+F6{wuL P كmeY{z ꟴ}{_2{*^z&_կ/_;|ޛ[]Zk}ޔ/*JR(4$0J@3a1CDuӀqжBX mC̓FTRU*+7{9{}2dGGEx^sg}/z;_ondeW^ewܱ<m;nK~͛LgqͲnjy}Y>{oW˯{Os)7Ʒcw //)̘ɟ?a[]_UߺiǧqGwmw\ bn ;;9+܌*v|z\*P+S#)HF82Wr!_ÿkam 2C1[AQw#X'8Y0fgh*vq2\`!0 a#hiXS cpk^ֹoZa'Tg.eu 2WLe غ Ha)rsAψcOz>=tLjiRiWLb pT-5Ԙ2S3"j(]SRV2ifCX8l8ꪝfФaEA0E.QO#]PVJ'KjЈ"_9D ^ =co8618Jɽ$ ^5sI8q V\ս8"Lŋ;q=aS؊m7-1lM2Y\]YM$ xvzm8ݞmS3mtLRpNqnɮs"ꄜKml&b*v[?x7>ٸayTw-7?q9O9{ ^zJh .=A3370qiɄp3x(Nfn" aDfKgu5(_ - Lw]W##qV%տXrU-j"I 0IXGwA0b^ى`dLnnʾ*vMJD,.f*0lF ^L8EkчkJ~o gmj8^a놦+Bض7n_Vcp` l&Lo}+{L!@&tB8V.W񖳼3&/emC͌&sIS9)1Vű. =V׷_?ڿo?WǿΩ]|~էn{ѭo~~Bov;KzK?Nu{K^+w|/uG\[뿆djgU65](V|ᮮ*)Tvut09 YJ~aA(*ŋ`\bnT7} O9}?tC):r G2eFS(!J Mv_: r.1׈ ޵LG'UkClr*z;-qS0w3HY 3&\r)\Db mXae(06PzU=c Pi{$68-eȫNȁ|yK$0YA%hsIQ,8 qQEgZJ4FO$Vfa,@@ AC BRzr(-GaeOy+i9f*Fj;}^$JW8z l޴ӄЙfWU ]enS)l=/ih¤w^|/q|bymWK/ n43be&qq fSDb\lwV*%Bd r6Nqv$r4Z\q E q]EOzhdZ0x1ˆAWPOw"8H\$ (ًV.I fbd(y1˵5XF_A ^JT=瞓_ם;w# _M߿wow_~Y/۷SٳW|qSZU~_}osѥAٵC,* ceSڒjq-36vz[`jɡ.3Ex?:v1:"D.pz#'qb!,;$BPTP .GYT $E  '*"`bSLGuphfwK-Mٽ!N8',OI>~mO<+*H1"=`AYͮp nas )07#ITNu$mp(KBɄ76lc:C{{{??T V׾8w~w~,=oO@v}|γO_|K JN?MH_x+~0=;|uKZ;&XCкWL`#YIXlz|"#NUf5ÓjVL LWCsɱYzU1"5$̨̳@b$)씝 Q%YEB;΂+/ģ(1.QX{jڣ2}]Ue8t5 ,\k0b%*T3l_=h_J 'czlc:wt^n;Yw$hUt+3Ta  }}΄ib$A5Wh #蕫N4qҴQHKOT}mHzńD]86! aU*PU^Gъj A.c:j rJʛ DBYQVm82b7*C} ͠Dw)YBS`y0gdpnڌh)APjoIm0ɮ?G/]Nޝ\hpx6&%ۂE s=yMo{iw^xxɰWac'lxUbB{{~׹|ܩ.q(٥% \`UWgrcP45" 22mՊF">Q'n1N[KƦ\!1O:Qm d5;%Ȯ+dx.6 n+À5\'J񒑁B &no϶NT OơۖIS~|b|:{> ϊ;޿Gﺷή/EԎW23@ļ:ڽjK캹k4 j;H$ꆻ=+A6LZ`&r@LAޑL"H@5GińJ> Q8cF8B(&w/k\`hehbYȆsˈE HDTͽI: L$#ҍj$ H`nVx(ITj+8\覠0BNVN}46!\kj"0bLcH)b MMRj%F!b9T]#Uu 2*JuE.Wղ_ }w~wRJf9@p:a͈S_4t:͛ѶmM,FHUp/9j\UX-VjJVRNFQ#8bfQ͊^sd>9btZh_LW%{['g=sB2%'b$3a屗 @uBB@Rŵ-P3 (d~ʇ.QsmJ)"Nl%;̖ٙVl^<@4cjyNu$ CHES a"u"2po! Yn6NWO,ڝwnFD16\2G2ȘXf1-639d<87iZoMab[mI7_>7]whw{Gڜn]VDxg{ks"HYm^@oyhu(o9s&>t.^iq]'.\~^8iޡсF SSg'.Y祗lRD< L]+{ mCb07S3VÑ"4Zv%mpqV$%A3Jv+ꅥ}5 4kA%0Q͇)bS<}/CTp9s+M S6)9gk1hu?@)80S>?}!{Sa8$))KvbcrkNsOd9dMX%dH Rlu(MgrjGnYIesޟ{_뮻sX 鮻ʠkK~Om.O~<}?¯ݻϾc?;ȧm3L^{e]{͟>s^|׋o~䓾櫟?<oxO>Oxn?}?l틟3kW׏6F4UI 'µo8i= T] UaaXy[jQn1xQ"%jG\/NwRhJl:A#e Pl9VRq(& c8D DP}a08lq^{]+Y񱕸ȕؙFA>@Һ [5rp5hE kC{1j zZPQudvpڍF 0y u`N,Ӧ4icRjbJ!S 1XxĵW<۩kc]LUsZ.nC,S+X r[0yCKgu*q[gy:Ku(xrΫeXVj5^UUQ[oֶڭ\JjVKm'1Q޼>CTI JU tL״;Q .!/s7&&zJ!d6XC@4pxx}Ɣ[ɅCf^Usb6fW6 T@\h&IJ סt{bCܝ5[4a1-N1d^^. B|t3{ 19jܬvŵLT) ͰEՍx`dEZYRtd}ˠrqs DQc@Vq ILSUG[Э{LY̤d;#z\h>Ïymz-i{GI=qEpǢrn[ez쏹ꑪ^\\Qy[xU-`!/[Ʀ)A6IÃ=vo^V$<0Яl4ׅH\T~qz0?ʐŒDOZiӈ5+Ҫ*T.>5/ũLP <^m@eZT}ݚ3(&`@ 2f&3PԲsbHdFV֗?8L\WZOO@*psfg]=8>\Ͳy64D:PS͒$,lC?tq޹ap,zjȝ Ht f+nqCdC0DxEx "D[\Ba)_?mo۫U}CZ'_Wpno?G>?~+^_p+O_??]vշϿS7|=4w|^aNPHw~?;^O/ԻWn}{s?[_}_GAF5;NkW*xdʷD.aRT"n>l\[\&"3R D Z'Z<\D4cBA|s:?}vgqϋpbY@FZi\aPaCpe  U nrs˘{^$T!,LP9F|DRꜬWY%V 0w@BN[:N>8 WFWŷ֍FPN&gk ԨILY;Im۶m1B !&j( ֫S>TsC߭V0 `%c#cZtr" =,Bɋz>s65mjXKbuXt]7^]G^ZJ)0bc`\(OueSRJRjhDb%$']|7ܴsq*`zvm`rN܈(M"wޯ\{yJAZ!뛁~$ fϤJ]6Cs Lh: M#$:p8dɩ9Of͙6Mˢ]Ų Q^ J df /l!@ 8yQ%X5dk0&X! nŬd)iCM<(%)'Y. a% 2VN<0 W*L7ڍM G+X(qO^@-MI4Jaq'eF N?!vrp; #zϻ%x[/o^.ۋ>};vG{΍G =CWJ ӻ9,J3k{K{]qX#ew/HSg>)re}J_M`02Ӭ^-r|.ˣ{M;k LcBV|bPEoBݳ8XЛV}b?I]YGdNݘx>}unCv܃ޯ |pJ(ܽʍqŪx8W}'WCFme!lѲ?X O;#s՜N "fҺLln/5.=v3v'ŋ~.iא*^04(bh oൃz,mP-T)Wx W(_ϟ?lgg9jgg˿o׿waP>+U_3?eE7|S~-_cE?㾯O'k_/=/_\7_*suNjwsᄒľ~|P:R6SwZ`" $@!zH 1w+rRbDiRE<YIC ZzWZ:3Μiv즛l:^R[C}@plw2 ^")A "$h,h/ ^׋ia8Q)05g)ɢ'_Gj0D+tg1Z;Y)5]3U'DS-"%K͚QhQ:Sm{>FƫIf_}pJ!cc P!TX^'2w;k2y(@+sݭ 9CCef:kkdx 7  '`3*ٻaMsS :}Y~pRe3T2Cqr5"AVP:wY&B- r 4ǗCZ1b4pd BDLB,5V.[M:{:m|x{G.>ztŌ8[ IDATlC1qHm5qu|w1=+v˰]<ƴ7+{}ӿ3UJ Kf?;<( ٹ[nk~ppuYO/ya <ww֬{ oeA& HR͜) K(IMwߏ[.5 t [ "Q'+2 zJvNJLF pP\fkX 3;!-j-4V$̒.R;qs٢?:Z+e"4si3 ͠n q`R Lܽ9TKLr;ЂwS܆쇞}i&Qa3j(/d>/'~+o=ŷw?]sut $a譂aJJ0%Xztv$"%4-7-B;\! p B0ixc*Mp/ `g7nniOmFb Q;T(^*"b #R#9׈ҨՐ^E(DaT%"1)@n䣻+R3j1GpFFyKZa:14L̠9aE|}7,lb"&bj ׂ-ZC+̊{)ju,rn-Wݪ˵a5>"zx֖71`~25pN)s\ETy;IHiԊ5d*ʣp&bVԵ̵@ V]ɜ(0BbIҌ$v}^8x41xfWG^W%桥tP|Hf:ZI]gq nd`ռW^\5)P^m35ӘR+;zM0cJf; CH[`!|k]-rC"P:H+7QE6!)`#5RUSB \Φ;q8./,G!1ܜcHaZ+D#BpMtr6 pÕE^5)Ѣφc+3O{|Ͽ#O.S6]=tcvG \YwBrY ى81>PxѺ%6'l{/MZޞMQwx*FӢvg:ƅ'GzcK:lS٭'MH_t;ޗBWXX2E跶)G|ܤrR%} rNV,o #;$E}p dq!FV*;qW@KJgn ly@vg&`aXذrv DBsڈ[k:K z7Q[Q T}{G]W&8uSݤ7G[D}Vs ᇻ#o++@)6]4%1u, c ZX'`:Q!m9 hN0ppLzW/G"I 7v~Wп~-=b T$6ȕjw"a+bL9xjiCrӆ((fi3{ 6bI9Nmsg~rjRVx&yD dXq\-7MU><v6[䨛^>n.&gr> AJh҄PCW'B¦qr$n%֦`9$AAK)DIQ،Úmqm?j-Z'ᣑZpꧨ \s].!2h]};*Q0S_hS831cj&67eVCcsAbJIiR3 12+wdDEu};ʹ\ 3‹{ǣS禬8+9;Q1(# 5[hD) 7i,I􎪚ٽ >Ę9Teh6($?%W" B9EfDf\}EBIJDdLy i9}ӟ\!ֽ ~&,mMNoǟ_?g|B$ f8UӃݜľ_=nzdzΙL5%=/^!4}q F}<߆9Ӹڮܾ+2Kr;!t%䩓?ut}vwrvs{7ʀHp^|S^_p8Pn_Z|`XY"* {8eise^ZdЀh:C1:3NN: :ؙ浶G9b3,#! DN*\Ʃ:tk?O'I9dwzK{+i"_^ɿ}R 5 Ǝ>{cX!;Y_pE^g\|f0B~`nZ\Mric ±J}=7DhpdeBd#cc">HM Z%hF0rOK-^۪3H TGZ80Cqk"L77B̾p$ȭ$4m؊k/P "!j-%G555j)eiڃY|Q(Xt5Bsߛ;AI[s3/?[ &*)DF"YpPQ&B}Z8S3ZqZQ AQ53i^>8lg^/nVyZR6c U]HA+99!]2 1K- RƈwnqH[ mDVMbE- \kpb9Xvn'OS$F?Y] A7T#`"VNccH+R2J᪻~5+v:t-[1u."(X#ۼ?_^ߝ8=y"}_I8tN֏g!=uHpSE]ywg'/_xB!K+m'{|>%<L-ݴN;RDpQt-67XԡKx5IPJ6[;bL!WC5Tp@wԑlUH(!xY: T.p1p(C.~apeLn6'[ ax$dSWߌȧ?xx8܈1Zva"v, m[ 'A*ɳ}th詑ta5.DUUky`7;M-z?A?zk$It2(Knvv8Qv60 I@"א8Q:E؅t)UA '~𝓏ɺͦK MխZP:Yb^IV)2,~|Yx(u_mZY-VLV̬1A榀11r$A(tĎ@ jV" uXۛ) (!f5\!09AN @I[lgG%&,3_LlbM䄪j+S .A-`UU$F59{3KLiKUI+G%KDf#Tu<쪁V7AW以-AFn"Q1[b_@\7ɮEHI`p X-30fl@2-C3yU*Z0'" ! T0ЩԱx{8RR\:e0ȪbIPeKHÐ}V*g5109TI:Iy5鹩mlAp]0"ɘј:ut̠09~ '=RJNOtF~EzwrIZLwӛi!.f"k](ݤU У`Ck`b>WMh=Q=Ӈ]Sw.tmyMu$PNO~?O^4^仛'gW0w?|?|xc^}׿K<֔WS'_MwowQhs.f"$!v[u^~}WUB؃e0O^wOywIR_\jԥ ':>ۏK?`K_z}s3;'ǟ<_|<?3GǏ;+ P8=Vv{颥IP>^ RٙTJpl:05D:x8i oV\.\M5߆ $\&S<Lfuo HT L6ڂNjw4״YmD^]mm ,*vT9>NMAδĜ`AZ#ɘHTI.͚yL.֢Ƌ'  @"G"qfJ\ [̠jZBR>f 3-9;Jj095-zVӨ8"3@P89YFtfg&fkWkly+j;nk6B5:--f؉I 9ܴWVeӪVD!Хck5Z_>J]jӛO؈CdA+.%'W f bD$jjG36kܴ1Q*p[D3q|&oDlSXYR(<\<=! Hi}@6*̻Q(›'.ͻi,$C͞ &7ogr;'c Ɉ!"YAJhugk>›1-֦R:9tVQ7''^ٿ?yt{φn͗_O=;|}z߬~Wns/u7Λ?fkUWٓ˛o\raH.SnT-Ԋf04^]_k\<[xzy{gNjo/U]KBƉ~~guHճ:yoQ>oQ"ӬQ9c5(2{:TUGCܲ"&, ԩ)(\H(R3՚,*}u3fQX|;q^DxF &H}PԜ "[oThՈKaܼj3ѧf8jm<?_JىCq7~/n6BnxY^[g3gs7&il#ok Vzq%(bGdw}ZW,2*TPɨ*VG(SvEG"8KuGRbD@p^c0~茷ш|_dpA}YRAH[ƂH.Xn"I!.O^fF-!*@L,(,931XDm y71U#&>5F{+q1`FB#4Nw Z3T8ΰfY*Hȱ@ mk;1+4T+aA8)@T:j@)y+WU IDATi] 1j)ADRj)4O1OV]J$C{ ]LJR/j3s fff&ոݎLu1#9QS)δّT8ґ Gb42[ZHhSnUUv$f"CģpЇ~u)ęvDo^G_L͘) [UOVJ Q!q {CSbXV&郠bev]{'@`_nF% ND, g";+JVa1DxdHYzWpH@$H$$ɩhjŊ 3Jq38|f+^n.l"Wo?SӶta( I"3չPM/_|_)?|0y?zˋo^N||IT_޽-< wW%;nw0V~G0yOS.A#QKQ0󍍇á:S/TMV MXj-Pv,"{{=P?շ|RU<8jynXU7B2'?ޭ/w;0:baKf=e256D6Pį˅_ݲOj Ύ4hA}O@ #΄ >]snr3fvP, UJErL^n>Ո¼֊u0Aݻu؜S8CYa[ y{yqsk|$7+QB崿y?V'tr:|׸}nFEzZC!.dRr5v_Ͽt}-n!mWa=Rb\Lս x~S|->|:ޟ,!% 7ΘOu7O3! &w@#:(]Bb?x0|,R`ߴlXhfu#HwIZ|0|c VcȝZ@nmbޡ U` FFT{[w YKx{䀘bĉ(qtkI ]܈DxT9jS"ªKY9iy.\.ڎ;bnE[ 䖖 j VjbX]XAqn rTh"xјKnFB]]ffLY5I "mgriwzmCn];dDֱ{X:}x` RVC 3*\u E׶0f"v2e'"J5X-]GҙQ#j0wUhEdܼvw8}׼JH\nlWx)ubג͛:%ZT M}͆C&r8M]g*QP$G&p5JUb1HTJu@P'|~$5,!(D(S8I:B l[ +M%2I+u;wֱ3R#bՉA2X "Y6{($LfGI.0)v.u{MO~?O[?Ꮮ|qyZxf~уś{;6q&̥X$8}=:/Ǻ'Č 3r)+\f4b (Ӝt6uXbFH1X. plC:%rEn${|ޟ+6~?C Gbf#\-y8f(fz[1/`m02u-P]T|x^˙tqO+g#PP&- Я9)JQ9)}Y^*\az5'i6bo)+cɋy[9ox3*RD5Ui2zǻkys]N\?ϯ剝0ռjKӋ -AX=Sg)zI,5;<< <OpuGL ¬>@zpr9)@Pj^ ܎1@3 7n1SHt wYӴ#W@`mr54BS|ᙱ ㅞ4 \h?V!67|1Oȴ]Z@(KL#6A?}K@a1Q đ8zH& @ppa&RKpE,C B )VR W7m67Ȏ؉v(,e_coj4MZUZ ԫ`bRE5fis"&(@$=%ykj!!ތ@qDz3ۗ/$h^NQ9PuB#N([@H3H  cX6o$cV(vraN -G/Ik.qIΌ,L@'yu*"ɫɅKp-:.bp^ÂJvabhT %;P8KRL1Iك>y_ywE}&_򺏃U*uXЅYoƩ홪M)&C `YC.29pXNs=E9;˫*nRu2IkU5#RȜS2fʭ:i*y}Ͽݮ諗q5+Cr?]mO^^n/WS!sV L,sk ٪Bglm +b  3< ,z8QC=R3Bu$:B2'93K92'R%s٩8}M o^۰2VE-\ͪV ( QW7[,˒ ,7Ӵ+6["J5ުxGSnᧇ +ʁZ鞄Fse%-F[u< W쑮cYwJ\\ۣSz$kb 'HS)F?GZBrZP2JZPZkJ0"(DpԠ:4-Bv'Ga{8vv4HE6 $|W@j`Y:Zۅ#n űuv()86p̝jp31n&Qgc3niɀv_T;iA Kkmx ZE &|ZG8;p"r[m~i ZMǘT+^jq_ꄛ%HJŔxcR+2[B&:ŔjiV5' j!P`A$s3'/M9Lٯ"Q3v=S+hccNN-nTA05loP4gR &mTC׽t1.BLz&.Ey&tPDVCۖWn?HJm tv(J]8̍0#Lfŷɛ^hF{ XuR|Ͷ:9鑀D6n-az ״b]:D ĤZQ=ckBs4& V !0EVKxmJEoªTXUWROd6vǏno<tM8֩j{r:WyV)j t٬UU}{5> 1GQ6%oh} N *h 3/@mlru4v91PruUwG/Ag*A@C@zP `8H\.vt9Is (gV{1#)*H@ݖԩ:ԛ8 ak1 EC#ʄ@^^z͛ 9It_nx`&faN$؈jd0mӸ9OrWW{7s')|FX:QqXq3zqkW{M ?ϯqر=g %C+ZQ)QT?%OR3 Ydlzzt7q,H_ ݭ >-ULHb9G7;Zꋑ w@3hV<" 1% (D=@on gUT6e32W8-*ߠ]kuk-XduZK1DDE|ݴx&,TyӨlj~Z)7Zgks]A X[%. {#hff mtKO/k3LdYKiY`0/El[r_X( ꋟHMc罣lit"3eJ"'uTX p XfNjKX Dki2Vt`Xmb\$U#IDr0TPW{5ijW|7_S~2R)r'/* AM@,Hأ r$o$svQ PjAg2]x7Uƴ0#vЩ(M^7d%$˻y:9~NU΀0ª!>X(bc 'FfxpdܞGD Ep-R͗u}ss٣}Rw~W?<}v~uq7"ä8d~voӫ;.F.snZJ1O xu}B;rraA֫d]J>9gJB@ƹQQ0\4bs5rK9X\Ch@rl/xU N}nZjhYw7}o'E qB]Gҙ)F#6+9m 0j#"Yt(p3 g, wZ& lE+E񠷗ׯ.56!iֹHUHAbs?ndJPW38@`U3rb&s[(d"AeJ2zAZEs\@~nO?H?WoW襚i5531oSOS^ӫ+xwɬ@fZt2sCgk>YEbZÌaOPڞ2|3(JF(Z-ΛրH"$ Ą<%ĤACM8Y!C0U PT$DLɫ@)0vZ>@L8& *$] `'!D#>6N\GjVanō5qẄmqUsͥb%7ܛWMb̽jSݙ|}μ\m-Bj\= 2oxQZ,ֶd/n._nD0gm_,e6e.忶ڌ KTx)^.*X.|l Hf[ؘFXt[d+Zd.J[|""g‰Zm٦.o"x:Fnf_󧏆uxG2q?yHoc!#EVUu.F\fsj_u}TػZ`ՈasH{no!Q_8c ѥ['Ԛdc"Ù@I`VU2]*w%m&յ ܽY=a_c->i!Rr:[:w${ӕ֜kpgbJ5rQ:11$P:W-dL͔'b~g J5ݝ|5V >jM)8}l/~qy3~X:+oj)1oܞfsugSðNN9O@A4VtX8г幔l1+5٬0yy9M:f&2-L\j5bUplZE]:tk, RF$6Ơ6$skvLiL8uLmYg=!=Kp}qS߼7o|y9^_#uW9~S'8d ag(V9kQdzvWbK):N5h 8BO'yg|jBk*[m>$:^Nc.q{_K[kEDf{"%f?͋d_X<ėAR [NF5KRdx%Sdn]yq uWSM,z۵uwr%nЮxY8D Q$46ɗ(\]jQUk{/_!#H]ɗv|D_b IDAT `SSW>Do)^샶O~X2S9 EkE2wb NRaQ |TjJpcXw{ǛIo2ihʎVԟ+J'"bA|w=N%>v;ݍ-W"b19bZ):|׽]ax#1{_R9Ĥs*I_'o^V8޼s.UB \ Rx甉L.,Ihrvj SmdsG܁6B=A$#%WU{$TTp._'QO|P @h F^p3rE*ɋ[V4\nxPH}fB=r2rg+< )I ey*ә';x.5;C IUl;Mx>{QeXm[j?s>t> :9F8c0 W}Nw?{@8sB(! +,Z\XzE:}TPq& !@Z]T Sk[pBXcʹ_0$fb8O]iDMS I,{pb3T |_Y>ؕų/bν{r\_<^"f 5qTs(toً[USx ,:X9]00pcHt9ߌ㛓V'{Q;T!3P3~Cnʋz(kb55j>X# +v!m .l‚!'aay5W\s0'BtHj8y`DH+J+ZkE0dUAB(DbixbjAq(JbЯ[EyuSqr8B1&3V%/+tu/)+gM' >_1GYZڊ.-$ 7j&x,-)\7ȔK_PWgx&paH;Άx!_z``}_;}paNVGĴ@Լ W"@"Iϼb&<^#&g P\Zdq9RT 5RZQeI<sg7'Ac5Kq]N?Q扨Ց ξ|RߛD]\R` `g2l*p+K.PѲa" ]Kb&rbr1S|M_ݿgtK:nW~iϧy|xjMWWգ]%y+srS%su_O\|.9QR2U0QM&-`B1 015ʠu>x5ZߴXp0? 79{]ܬ [%'s'S ʛ>u01 $A:1 8MkG]H+3iCܳ^K;=~M<ߝwi|oU%g~Z4|eL=qaU[77NГQ rj]Jjlt~}wlƳO#g=<g w`w9/4_ZnIUQjtwR% _T`̫sFF`bZaUB-Y͏cEX4}߾Ӝ,r!l.H}$ r%cF>AY$3Hh%xH4;;LZԴjJ@9x xaW,ʪfF #+p|` s"3ߠH`*6A=Bxӌѻ[yǷFV|V6в bWŌF}ܝ*iE)ވOYA= AN+ܹx+[@`Ўr!S.̾ f2Kb3 o-(mh[*`J꥚;@́C&b!J0 êR'QZ0jRj4\rи֮>P9/۲A%@d872!mՂNpmY sWƣMZ~-I|UKn˔qz}χCz|7$R2-4 ,+]哩XYZ_Sd?B $,h1?㖥FN0psP;=>0t<l.y*80jz 4DbN@XHM{uz>2ٚ ~X9>A5Pԯv]ɪT&ٖf6!5?rvkUGX޿|kv=wp߽՞>_y/wwTJGu.^W192w~Cr)լK.!AK⵨01 KV>LFbj:e44jjιR; sTp={|u9B>C&$p]yHlW0nVa=k5j cʕrD !B/g߼߽?";ލW DWUx .V k {cdZa9D@=qG rı]U*.2OqR4<he -޸Kɚ塹 @ɪ,0 CdY=JqKjD hj`cVTfGw> \k*~_ S3c~򔱥Q[BLa bZQ3Ý ++y3]/ɢ\y,,HP?'䠜\@ P+X(8ABK Bد*ɧ3;y\ȠfxT{BPBZhZ*mfh njoBbqjMOED.nfd^C}/nCx{,ct ,bh@ӄ2P}Y7[}:r5Y F=LZa! xE/p?]}<ۧM `u#5!빙턘XN:tQSgZa EcAլ.7|*>4:_Rf0%j%gVE1RbrV%maIժAvV|DMx\sJKs2jW䂬l]g% o̻ϞR?kgG?ß\ͷe@އu8|,eyவuZœ 99TsZsVgf9π sǹKKR<c nUsWv.yrZK>qRŎ$m+!ϧY-@rG>0[iꎐµU߬'oo~{~n?7_n~ۍYO8 !kFqDA pmV U! {0.=#Q!*~V͔Ԡ Ntz/pgNlZi{$%P @*xexqr",8W9_HzPr8<&FT?Ͱ_b0pj jpVbeF/ډ:_w6$냉|Qm;=|j+qBԜKJpBhX6F]3g5 m ` LJFMX.V4&4kEl 8F IB08↎ZݝZ -AAu!-䞙;feXm @J}\Snb !r$)c?tER7pXZ& 1\U7Y_,N$ns<f]O:6 -i्J֢%m ]h|^ ;рU}s:ܼ?ğ|ӫ8zqݰbkQNfcrv|:` m@`eЛ5Ay=ۯ3䈀Zdiqo^ALUwr43&bDDiA1XrR/?m4 =xiXRf>(UXv:zJ &\f'I gh6@ zȡ?xǟ>=㯾>VϿTky^F:VffuyJhRg ̼ t>4v<9JX] 1)?yDXAF X8y6f:zN1VyRxy}{Et&0xV\t *%qtr-9J8'´͵Ր$pJieSU&}=j4#՗;u'خ]okQHdɽE đ#Z&8ţJy7M.Yȏc=MrV"ک/v‹#k@zn~fpAU?Nl,@e N3QO{߬e>b X-82X'Ɉ B)@+''V+մ\"5w=s"x$ڑDmf飂>뿺9U@Ԁm'bRqjZ"l#b1{6CU5u1'( 8GV.UVu-Z}u6ڔbk%= ]kdP'V\mv .]UGnl;zQ1W͡ ^ w \x BЎ[j۝~p-o@KI1`Fl ^SJ٢QpVJpY(<fk26v"7[p : tZF-8in)!IuZaUR@"$EXRb 1n0bg M/Z)ZZ[#HjE`^.ԦBr@] .vD"-a,d3hm5KiiĜM98xn?|g/7Yϯown_ҊYVc[P7R5Iׇwjjf8\vo^ւH$Q88{e0"ߛuiV3d IDAT7""6Oa8][rĩ:C 0YiZvZ,w ~D䢕s.Yvê_zeȁȊ iJHlRk%LnKjP&<@({v:UrM> Wo^7_=ůú~>.ɧpe<+uH"8trwx7M~c`o>yUKD)Mnn^UCTM<ןmTю3N35q-MD[ZҼ9{k<{.bNn Ą~'> g[}fY]܊FC{/>Ct̅!A`10wCNbKUMkZg3RE+r[)W!taTc !6#$6@}SߌS9Yߝ*Tٸ?sA+7>SP3TIIL8&H؂W&'W;}“+z/#" Yěbe S6pPe抃ML:%zɈM80P pS&k۸1 mॺՐlE9@=ج@g 66s ڂr[!3z[҇I38Nm?iF24~1S`!Uw8D( R=wZ56-"9]P٨.i uuZ\ݸfHDH]maVUJ].b0s! 1P ff7b(IJ]cC2kJ6f*M6/exX2& 3s_@n.H U]X!,ӯ-݉A *"d Ja-!޽㯿)>9SѦ~:ߝk"OAdWˌáLr'UD]L]B'1 5730iyk" ș8Zx:r8 11wNQ*V4o·ZΠ`D L%"Sp$`< m"-A\JK\G# )EqZK]L'J5{2!EոZ=M .<>hƿ;j2UW_ |~R\ fo*LДA.}&-9#H\'g/5}߾.}|vc\N~i]f`6KjPk6R*ono͏lNW=VX|2gӫznx%Gblޮ|uIǵia>! ~w:w}: }ZwwΠ46=zwWq_w݌O?LuyuSܪH(٠=Q R1:2]Z_nqߍMIbv/m>&PF㔐"څ, sGSS\h.^:=6Oh- 3 sZ܃D&oyËG!Xfj0g04L:3@fj!bHز^KE@+)zZR7 ͩl%l9ϡԧ $RD3,7;W2QB-f  Icq}\*` XP'i uw5+ ] x-77 T7!ZkS4D!rx_F\I@,',RFLZy9x`b[TUYHm_ޒ+ֈmz՚E$DֺXa/MKjV}j*Yv=i-)eJ AHҰ~إ~U.@94 %EELDʩk~ R"c$7o*8@M%VȈȕ/#V `{ړxS-ë78Y5"$&hZkVxT=nhy1_^LR1HIOǜR  ?xΒy*$J]7ƌ~,|.+ra8nu-C.2ݡE\]yͼ QBK=Q!ª^.ÉDKˏ n/Lz,Cϟ>=77XS2 sS.]|{;_mx.)L_ooNwwj4vO>tsƓr٧H~f}>y6Z=ܟ):4j<7L]oC,w3.9 5(YpL6.Í΁ցXiZ ؜H20Hb\6W'rfs8!X+Yk3.+pswUb$):pO-tVh8 `Z[l)|oJR ZzqH@VK=DUg|GH}NB)BQsՎU}DZڡ:s1.0K3H2wɺ8?nBcBԥ>t]QA}\{ LJܗ\g=c˗G ~Ѧ+(j Il?]+z/Mlo" F#W2pq +nbYFnނR-5ԨB RCl p3Z@9'ޯ|'O黐|{7@3NDp (mI<ʭ:.1epg_UѺ4u3|U̗"j\Drb,;]R 1qJ,Ҟh ZUo>:xU쵡QUUU75Z:8lnþ6]$ư DāH!5DO (pl Le<ǔU7oJ@^c]ڢYB0\]顽C.3o̼Zѳ1ϪfC5F;tίgO?S-wsV'Bs6oE2pjslq:Hy]RaiJ;0x `Qpl#BpNO7U=߽;nJf,yRTKPb'Dbx(0)\k5U.ƞ|ι*8 wJͣmGU3 Tcaͭ>W?z'&!קTw-ɮƜ3"est7$E&mRdH``'7? %[[%fם{"bΩX;(S?}<YbIY6<{a+aZSgE~~~x8LK-BL܉)ԓcSR}nџ|?7g'[-yZ;q^pWv8ѳS~+S?LS=&IZrÿ;?>`7Ɲh8/~p|9>wzB yys$r&Z]Tq:1v bw Uӱ$i ٫|.|ܤmvq5ZkLE`P&uDfV#ƴMVR ʬeb}z2;%jMPE?VjK1wbIPZZ!zikg g nZ-f0/w@2kQ8lZZKl0GG ]H$}G1iFsT [p7!`PR K$pB; q$?-ZsBBps(HЧnx?A_s1dnn\uxD~B |}t 3zպ6" h,62Lֆm&+UP%T : 6z ::ʜO1]O] u)B"'vcͶ%t.laz +⠆%>{OIce㕘P53mOp[v=Dܔ^aq_%)uH1q.K%zm"bc`ͼEȴAٍJQwrZ#!cM?ln7ð1JX;KV" "Bh.xZ7*11Ev)uMUD2q7S3>L&b1ŔGb33ZU6Wf7##TU|u4!4AN8wol3U7+:_:J=%|y?pU]|;ў=EH"CUK)9k-|d6b{~,LC=([l;W6ԌNXFӃH±'öO|@9*W'j)F!&ɝJ'3,^|J?5i|Q Q 0id-c)e_7Çg_⫷^^<}ǯo߽Hf`Y8a*雷71uڏIkwq0`nI1h%7Emop{6+e6C 7onn뜱dfZ53aflfj%ZJա +* N-${DfkVMR/؍a~ݐRBfh|tW^iQw\W9 AD$,75 f !P߇n!$;p63ͺ,䪪oGS `GG:d0Pk _XWkd-Zqr6x ~ȯ}/|;CDo|Wl5;\z]یQ"@œkEK67fh)#Ѣey:Ļ)^tmJ .dZօFi X{9Ϻ7x%x0Ʋ<>nj+ 7#X>z'UAr)Im)!X{0Pၾ]7Vo_]C:.Qo{PTp(ꇥTu~/jGfsP TLeIQ8DVlY%֍ݰojWw/!뜱q:/StH}cs6LWwqs!&]wٓ}훯G gO.׷7ݰ݌ƑEn2nc IR2?ΏǥVzŰ <\鶛2׻l HD)ɲԯvCpuH?!Oq$b4! #T1PpLMoVPtRH$@Qfkvp&&cZ-^L NVŝx 7+ZkbD(z=(Ju9Rxl\4jցM3GI)f я4nHq Zk}x\%̶T[*WA@pD< | wOW!ghp9j.%͹ޯ9]FCZCڪBb“K|Oֆ]=$ s@ݹE{|N3 +͍ڡJ?sTQf(OY'Ⱦې?|ƻi6y|kMfflp"{BDf&Bf~Br!beZ\)*ͤvJR&p|#bPк1ʀVw㓝zɜFTk-`FJ!vmg|}?4&^9uD:z~03i-k?NL`# DMcff<= N6Ü8i g&v܄6RTVr/'?Hol ߶5 7.-TTDM1/~|^l&LaUv3"bBns2iҦCJ1`!(b1]BZN84l;mh;HYTw'r'B['n"5`&}./e+ӃzExTh L[ S#E74FT@8/mRtVQR 4j4sw_?G?zb~g^ij>1?06.u: @:e'"g"IXrAL>,j@C#B'q &D!H2cհl@n9>iX廣1ۓ T A}m.8f?$]w{tBr}psuJqs?]<jI@$.nri8:׊fB2ٹR6]y.U<rOGWo*ه~'}'dN ;W7,,^ ug@ĥV rxW̰;'ɪhIza%*g7]k̉Wlz66RAYJgxሳe0X`tJ f=HafgtSjpyCfB 1K֜k-4"<}E0 3PURZr=x$vCW[:f^ibJ jCY &(#Nkf# 1;K D B%E'FuІu1iOo]ԾD6?;vR?`quPm›|\;!!f`ݪ9׶3]r)$QHbiI4ݣfBRN-JΆΉ9\UjWD;~l&) ff8f9u8y97 ǿw7^廇e=sC-NH LTZHs%>mV3"%bf!A̵JO6*^؍]ׇYW)pU2Ͻ<쿙21u??wos~s^?!I8zy}] l6s>r/7C?n%gsu6׊L쥽7p+ÉAb i=rc^+\=s-1>݋ 0CTM)BlhD6z9j5K4ȌZ;Ԫ7jY˒k2R4ug]GZd>=]UZZŭq* ۘR"Z.hh  D#!&hj5 <0q߅S6 /Kv{~_? Fp\C7qއ]86HD Y$1G&@@4hEoS՜P`dc0x;wG)PVY3(rgvvID,D^յyNA j.BOy.ZL [" b?r T{ >a Mc is3s3Jyĉt̪lU9N@0D`MY';>_6S5`] nPuYWX0˳ll~8]Ajߚ&?x zD17Uql5ӎFdfw>nv8v!Jb75fybFmwDop8_({)N |AlP56Tw~}"o|J*߈T!p3S"!rB'ZeYtYj-psr8F$LPKá*3!>{]Jc<]7 }lfd4jծF,Ody7,J捨BA 6r% !o'ƣBPԦ1āPx`e6-V޿~/7O?ݰ?7(x?ǯnl*iHQhV! LTbг4v q;9I+YE WdHٮ74.N8q^YkL<^;j Rj!ه]V]޾;<Ͷ, <{~~ٍWo}&⧗-_>϶g,nqcn{jż' ps}/ηa@ZUǪ s"9[; \j Eȧ2G~,,3+(H$ZͲl'0[g~9 '};$>Ls:-6id nC]9OnY)erRيA Dp2'ƧG_㲂A&،OIUײEn6p-؎y:5@p\X<ª9 f؜p$\\;Uxx " C˴ĐC@&)ء0ZOP~? $8uo 63+jI`W 80'3N0 $]ʸK1U!%*cşy. R*nB&o]胐>Dh[I!l`kwXDH]~V\dK4{EXc!/ƵrrJb&.IJ2.L* j8OG3z($($NζNFzb;;{=ݾ>o4[_Z4 ë;MjU[?nO-[U}L>DA ÈqdWwoҨyٗχ?b ާO~뇿rslɥջ%SZ[ZʒS7C_JfyG8r^R߿|v a3,y|m6Vu8֛Y͉} /:H﷛ݫN؇V3 bc9.n"~/ObѼx.a|/ˋ/ϋtb϶Mn:/6l6oDKZ @kUa9;;c:Oqap~6X컟^rq P *v,X gWJ.KtcP=X7vOI[΀JZHP"rӪj4#_j*n; '=RZD)LN!$4SC;5U:#ȝe ݌j^̋"W_$؞_$ĪfLՊku2G bXufX{-fE18pwzu]#ȫ)Ip:Ls zޯ ZMR c]%Y2S5HňݽrJ9Sc ̍T.Ҍ@" 5PX DPu5Qnd!h&M2ZДAs$$ho(!&oY0܋qolZ@"!Rbn1vsp;'C` Fֶ"AN j_ 6Lś$=0V?u"5;DN>"&8$ 1;FQdj9 b c/$Ƚ)]p3;92X/ 壚'枯qSh"׺'n1`mM!n6!$7(1Bln7mDŽJF ᫯yW$no?_!zKpk6vW EҠ)F3X KtVge)uU,]Ղy("Rcb롃#Ar/ճ|qe5Ȕu.QǨN) w-w* s@Q1n7'g˽M>ei&f7fnW 9qͬ/qrSW)b{6&87qO*_ϿywwdY%ϔ~>4Eގf78ȑ=%ajDC CrUIUJ!7nϟ>?۫!W%' LA,%v`iؽ{wwyпA|{H'˒saG36nb &1_}on//ᡚ.>mDFQt_c5cJ>?@:D.}?y?&U5wP+Ŷ(]8 ]8t1`3t"~]g "3^rrЊ{K`"b08h֫?b ~WE%j6+j3je&}$j(@mJ8+;1p1pX3 C/^~7Wog~4{ZRwCJȕ.1p`8U"0gwc5?ǻ}6TTeϟ]]t 8ɴR ^?l?ן,bVg-ӯ/~3~/^۷WӋ'O^~xqsugo$8N%q׍- cgSzkZpJ)ϒ@OvwnG-fT5{!&oZ汏Fq` cF Z.RE+q\+#UfY\#Y$JLd([ΖD&w@b{ZT[_G"Ŋ$ o,;9@1L1P ,I d򄈤rHH9+$ q$ ԑ<-Uŧlrk{{7G8Td sf24OˈO&??я~t}}O<__|+}ޯb&PLreh]0?qӨ|Y+؈0B cXu-_EIՋB!OrWJl:TLZT2*}g;zD> q3kc (9H|VΧ0 O5-N]>Ndm|et?L7Gge `4>A wDJIBpR ,NVZ$L"$mD5XU5uG\ȈX\'@j|R]DmJ5jsUuZ+g޿EyhoѠN6y1Bq> Q"+֪+bUNS̱KU$jeHӜf!H"%+S ,. nam Q!9= SovIVZ`-r~?ir{҈ WPEjJ/7?}dnk{LL˜l i4`!ph1 r3Em J̠!;bD ұUͳ.SX`d&ř#cJR.`>gg52؀ٞdX?ټܦF2ݸ|aTbeb'A Թ/#O;YmxJَ/DޏG]BJh.z?l%U-}DdF"DOeQWt}n U]2Tʱ\wQ96w9j-J㝃*(E*QH QfʄsgKf T-J6ҝ|oohbVղh- Lj0CŲBkzB>6iBoC sLё(J/V[ 'Q &s GL;}9)Xjҩ,RGz ( G/>) }E g~?篯]~R5EլG̀g;<ߡb:EBbbW&^PiYQ||;~?z߼~S96x>_< n1Tac&f[C5g4jXuC[ ;aluiw֯=g˛kTzCI(u!PNAh̫ b(!4M hZ#[6"rFJ(iE{}Zqf~K99KWp9NF6R5+BbO&mq7> I]LUkŹ&%n>&]Ej%'"a^eq5Ij#Q b: l6f;a]߅HȡjUxh>:,VWGֻ~y{m4LMlRc"~;G;>Hb@ӠjSy.Cf1J=p!DݠnXڄB ' "CHɵԼZ4:t䑜c1D RlY ʊȑFZӽq&MOx 9EMZ/o`1>m۫C>j)J1*4֜cҸd%T]BR,Q/[{- =ݞ]w8?{sa{Kl8˳˴894-:RbuSE7!sR*S^àwWn|VH AdOEqۇ/w? ~w-\͝cgؿ\^:v|zy9l߼=<yo߼zxd/78T=yZL]nHQnnr^RCceZH@s7i^JўPK JBeҀ芺.цw+(C";tRG{6[>Ռ$erNffûm؍@lN<\ TP5<ʲ*9wzC 9Tf YU @ c![ m h& 57n! @ 6mLӴ ,d#5ʪʡ2327ᜳ?}eYؘ+VVEfD!޻|gSe oH 2` Gz±P{2Fꌧ\ "Xs zALmۻ7˕i_L!% @gmib8:jX^k9GGkD-E3Q'uy l1VP'O'"q t0: 5T5D&R1L]w\y^3a DlWOsU"dBΒ+8U`0Md ,1\WGMWo=Xn""5}1lݥ Ξ5úCQ/$5)Ǒ΍j&0fqR C#y^ڇ+7xL1L9PTCsO+T1EPLEau8Ž=/oeBR\X9+y%Hw; D3!c `A $aXy. %S0D&VX4L5bI\;X; `+wԩ~1[t{(`jfl٬d` P@̠"cd"2`Z[Tl5']t O7iZW8~UCGZRG1 2,&#ĪЇ!jD@>ؐ™;/vսヅ9}\7. '?z =rtfǮ^nxDx=p{bjN&Srap$5umESDj&M3n~'@C2UB.himN^8=cVL#ZAU0:t)QQfX*2W1idq|ћO&BCS/A(JVU'.;S0drm͠@#&45PIIU3ƤIA)CRTzDyֿI#zx$Oi5HF h f|NhA@sylc'g5S-ƚT2|F9,(kΩ4{eHsM!gQ v1׾__W'_o}p|=WěcʿO|M/|#4;?o?/WE!H6up=wi;{ϾL\z2F 4r@j2M *tK;O7G‡>&'5Jo"ĀL0Y0X-=9R(6撎N6рAp+qD*bd'3&c$I):mi sRIMIDD-GO=y}K*-Ųm#`䖏8VpK:(TMdJr>|R7UYpD{ۿ (JrAä0 )V.֡Qe3QYY5L)2Wr|0-QTouSO8\zR+uR6u3 jF 0Ey;~¹3g-t@RD%SThLX+j.߷_鰊KC8P:t ޣ4Jt333EѨH)˜u^E,"H0* c H*OrZXX%Y ɒ1gc8 ) rC T{(=L5g`BOwLFWYz6[g~w|_XdȣRS3$Xub zKqA=G[`a[ۓ>gB 4$j.RHȭVCʢH"ITܷΤ,]vC&OwKh7=k'eY1בwݩe\}8w;GE'(d.,)3㣶OG3 @uS g7Nrmsc$E06;q3Y%GD@EBaҏ[!f1IT2`X DmHCM"R )y₡tX8r'jL! ٩*ySO7elZݪX9aGƘ`*= ,Ouj<d D]8؇^WLIIa1pzF Z`gpf ,CJ`@5 0$MNkb}es5%,'U^I@^87Ev LL|hE oj(D4%14b5Fۘ 0ԥ̙3Zg5Q_ن@fv+o_:Մ[l{2O&ĹؕTn9i%Sn}eTM|a223CV=k]jVu]B )nM&|k2USjgt譲 5Ga"Y8 45䱚 r[1RnRqd SCp͵C{܅ fgQw Bdׅ=đ:bqݰN2{H9'sCvLcG%5P@vI)&pS1gbb$`ꀽ#tR[hcC EAX2 sqU@ GhPWl^4j7_W_ؚEpJtuɋHRp\shqHm3o؝ΫŵC dGCAAtqaۧY=ALӦFb/@,I1wNE/DT$uU־GtVM'[C~=1sVEtЅag\fVʲr8ZB;Ο~r/Bl[xͮ^[V%y]+Wۈ́{4߿~8tA!Zu%TMgvjg }nܼlb ɗRģsgw` QD jRMNtrt^)%-BLU[7| 1q ~G縨}So4]lg[)FtЁ!\$[2?=B@Ħ3+N ̧0`!^-H轤Ė1:'I1"!`@%_* Mm= U/w׽{Ox^~ |󟼸Hzg}[?'[{o?^{~kOܤ3z7*/o֏Ww<_WgL 7<?y#?w<%WxH|K?ƛ{u|\/}޷o0BYlڝ̷ͬ+fM֊)h 7K<ʗ1S[|#ǝF sh@dHH`Ϊ*ϳvV} A$d`EYLd֔UQdz!P~2AA-oATE4C$yYs"T'" IIU'ljrTUJ?[NW755L,"eAOEEI C)j2  O䘲HE2́61$VJ@ f0A1ULPTtX6*BJ7 '˴Ҳ Cɗ SH:JB".'E1bZPpX8p  (v<n5?;]ް:rC)X/" / Ew{S;xmo5pۯ‘9@ěXEhtuͬIV BrW5jG9Ss`vz8:]Q=[Eub)ŘdgwSLJ(}?w(_w1EsźZ飠MwfuU LӪkKb*dom$AΤ냥MkO08Đp34:<^$ps>^K? }4MDͮQ.&|ͳ1a`Jŝ3#5KFh@-F5(4 3 $hZ 8F\d,k3,HƎwS:3`4 MɣB%8y CgL.hDB`Q>fHDrSԨр 1b>]Fn6>3k=hnحhA5+t?{U>^ֽ_z_;~g;o/uk7+7|q_~;&>o׿/4C~兏}*CW_/}}ro~g {ſgW~3>My ~_^W>xݗ}OO_|}h/M/9o>wO_/0OQannU՘RUڙ]|}ۚt brdXY()3 *ÈQlš|+pN0Gc '(6vhM> LɔQkX IT$E9(` !hr@nH"8lAy-b> mPt%2aA*!"ycHht$@d^VP@cTnklwϺg}6:a 'B#~=|+!Z-wD`ɴڞnmMgi=IPܟ|;8$Y@Q4gObQ^_SS4 =աHT`HID{K_ W8DK  $w0 yۤN:2"3BDRx+4-rJD\4=[M-JRR4Bj9e3$3dh̥ Cb$*2g"&@E$ 6<8),wmjҍz8\tE%Q]PV],S#qc4'SDȹG!t@!U1~Pّ C\땴m2흹)?S>GnkpQjYL/_?:kwN+7{b^|]LC3)êmcJ\UUvO : ]8=a)CqWh&3S۰D)ư=ݞMV*uAV'eF-0!(!pA~}ۊGzq Eϻ5 #1B'yy2 F$0pXμ;,K'(YJJ;&$Y, (,IY sXq%aĞDWJV@sH6g"5QHPIB7sؼDLQX05s7e i6gf#/kXʗ:Dt Ǿ #l]?>: !j 7PrPmgG~{ww~Yk|˟{~?'^{/^.|Z÷|'zv}߽n=soK`==_U^Ͽssoo7}t8/;9ß1g>k˯wp׷= >pIi*PpxtVRԤEgˠ!EխrH޹iq^\W>>qhypR]֬؞uw\`jHCL<64Kh0o A vKJ4g`;F3zAU2e34d Ř<kqC'Ir%u.%2m$aܢ ! %ܮ1UsW!D%AN ΂SP0f)+/-فS34$9U|cts |Q6"M_7C[G;xÏ\ I"‰46COzgQtտ×{qӟ̑8;/|/,nBp3ŭ-k) c} PEd0 t\&fBϲvU?hGcWpa"#e(2zɾ\ '#c-"$8DGŒh#. QҠ"h(]hޕH`F@ء+(ypIbr*Dxٌ/ @sݨBJ*IUf3;QӤqMŨ}XdduC"#EѰ.zև$η~B5[U9TT^H*97pwaWXϥoוۿ>ppRlͪ[wNDԩcwc~ߥBM'8BC;@[44pZDE06t F9Oƕb]zl$8@F'4a ) T 0%Bg`8IҔ4%ID5lz6 Npڍe}6b&"3( QD+j6ζdZUY]fTeOz#<ʳ6Q㦬FՑ<z ⦂   IL1:H5G7X'pS% m]aRfRVv~BFC̒\ef$~lXj$ Uzw}L?3rtܯ7B4bQf!X {4JQ< sK2H^y2:5tr5,WpZ(\Rx@:VN7 }?/U@V_:3a"I9p:ٳ?~k{*vTT 8:jM}soٶ>}Zb8LiP5Ȕ`*BJ ¢x`Cz+ LЛ")>;^'ä&S IEh;5 @[TT( `21 `&C@%V5sЁ*(}б2h\ mۇh踜zVH)85g#HQU@@D|bC4\d6'QW zUVK=@H AEEIF rD6Y2`3C P,zj+(( x"t:a%%]r3AL)D`OVU0n<>&&gfz! $QCXĪˢ8DpGG(UlIQZwpʲ9uzw=q 1@YQa)d:g˖opt^\v ɮIuen9ǽzk\,N'I o:-kr:5];8*%_CJQe_uU0sY:.WV! ΦfLQw~-̘X @4d :ƳRˁy 9BY$A%?{okٖ}59w Uk6t "B‰CD&Bb0D$+-$0 !@@uo7ԫVL{khb ة^{Ͻ{׹}/yRT `bLLl,Yُys0C`CiRRTLX2# 4e-fDƒ S_m݅owp-S9wS{g&*4!Acd Z.Dn X@(~I|/˯+fT}.4{=;Ɵ*/9)[=?w~/{1w~>&_~\?+-+Gg<x{eSŌ>zYkWqy'|y'Zam6OO%ݒ01"Wtt 3?%HaLaBPA"hO4o"hI(Ŷ}tRzs|99rĨNij0vW_R&d6LCR.h@Ғ{pLelܴ:`OhT!-/ 8] fRDA;'&5\Zq@DUQc54kŽ[3bf3bj|#tńjMŒO\y6Y &\6y7_ty;0NP]Q#8d5&Un_X'^(Rk`b WeMk !XUG(Ȕ('`,*Z$r\[SND1cN0Ɣ< Tƪ*I wE%xOMmG b!Ϝ~~ٝ/""0Q )RkO:U)(y8IϪZ6]Oѹ y#*DWhWqUv{l|nޚ]yzIp.E{hND/w~ƫc|02,7Vl䪚Kq1+?9y\qUbo6[4ˋ~!@A7[~oostyxwWk۸^<F^ [84l/7؏IciO,ubB6 LIDr[o$˕f i@ oߎnaκZn=dzGlt|ËĮ"㐆oݼӋQヽvئrtP:W}2W,?zelcBtamq7xߚB*egVFTu#-TRDR L!Ll (_efh: jB\9YQL@3 @>x1YŶ0bq-g8tZK15/* F<('FZ*]7mW_j~K_c?85}o_WWOd~ǿ#=57o{o_}֭/::y=_}ҏ~'w';O^n {~:N_KKCO/vO/te-EpcXLYFR @b#<)Z|UHq}^`3/HBB j2Rj v9hfi"倭ǪM\qDd9PL`b"2B>7'8`܀MmpMI6e8Vh?˕nV(#S$jF s 9Z%LDOFT>*>؜9NoiɳUfT v\UԂM'ݜ >/B.6]cp+wb&^ |'O2}R8O֦o*}U=WG31 DTDD/nQMIrR~Ә=Î^C\j ;=\a0 O[d v5! _'81W\m?/620*1ڌPcbʄW>ɔJ)X[G%m4]zVns "slv\T #DK!*;#_kxf!%1С.mXuo/Ce%Uy dhɧ|hGo8}}m32rx{A0ky/eQ:>lo\?X=R͚p~~ixنcLpl68sqڢiJY{ܾO|'g_흢(=<99=3MɾK<ܝG'/-Kݼ+ۼ{*n޸utmvѣȇ_zUʩ0F<&7֭[lGzHۜK8N/k4}lll^~`V6ur 㽃W&Fwv1 r^^l 7\=iߟ}vm) vSUԧjY(4FaCt %'"0Z.nzd.8>_&ݚ7eǭSbaGu`7!bMBԲQRM)(TG m]چ|=Pa#g Q8sL [rsvR^y'>u׶=6 BA 7u~ rdl ꟻ䝿{~_"/}7v) c?p#e?ӟnwi'x|wf=';~o~o8)}o?ow_Cߟo^O7˯_?uzR}~ IDATK)q$9󶗜Yb;8UM^JY(#g JA*~35]n [m1-Uԣ䞜Ȝ@ldDp#R#b].u{VKidP*R2| EPZ[]`@pD0fbH-0HBCd,D%xrD漉efƻ"anvΛIE9wʛ"WU"%ZzTwmuS 4m̔f T v5XH3 FuboowY76zLj.5iI&N &M8`2̬v5'G|٠PU a +reVMa2xnn],µGMムQprտJ7r==8c=|U..W@r8GͥY"I$G{q}1em#?r |ॣ~|h(c mO?Xӳsr(/O֋AG+Y6Ŷ{v+b[M8-c4_VÓEf &^vowSZ]0j9.ft5JM./H>88[xyxre=C.{%ӳ٬[golq yp˓r~o/ٗ޾=`jN R3rWTjcv>b& CYB `*r}@(w}.t1@S d$vpܐyF-D3n1-Zgo{LE<<6[x \cK&}ꕳ9X#Mp.HF.LH-5vVvLLPr)7Hd?WbM5}qt|\o7?3UM)]^^~=B}U9=CU*xXvc7dQ'"h&ޘr[땸Kں~ ?SmUxX 7 U19Uz60)+=(:y۟3;͗oC*8Evs9+Q 1hQG<(ww}l+(b2r`1"zxcf b1IUV1T r՘K4m4 LDTVӁVcy | y0sa,V$)&a6_[4'3`kV ʣ~Þ|} L'?>uew#Tg8vR3YS dd%4v^o.Ζ=<[}.| 1D4s.*&hQR"h&K-}Cc`'(%˿c/P-Er3MYCjŜ:h OmU`_6L,02Q%g<@&OL0s=CFPEH)Pl5׏ ]6"2/|brλr8:>GNYl@ d›6]mP>FKϮ6lK/EԤaB_oXggg윿8O޹&jiƹPq1F?M9]ctg'Mn~fy=WH\~s:9S1vRL Dеfnax.4nɏfBPĬ p6rWەXy߹햧#Q77,54 zE8i0S 01*͡G{]αX .Z#} oD%f/W%g?8؛p a"BTU"v11[/ݮo"N8[GZ΢f XJ"8zj"w[pHCmI)Q*8ߺ|?y= gQLI3jFfN'̩-2eo?_ro?{Ǖ׭qH2M&I]ر;b 4W ZTL* ndbP [)gX ,dU(ϛC7v1.4B/E0)4xv%RYϒyaK'z 9?Gjy]w}__|vqƭEk֡-C7s$~~׫ެk cټ%`ҔrMP츝5M)ˋ&9vMO|{y>pˏ?}xr2/b|5d:w*0n7pGWrHMiDS.6&=փEۃf|vz\;$͘bႩ$v=跛2Ιd4tyӋ9 nlOױf?rXR%a)Nq|$vEΙ8,۷_㱏PUj\-qGA N3߹(Sxpo/b* cZD 9<:. ޛ'(P*4."SK"MfGG7f -+ $Ӛ("Gp6E . cNjAn*k„tL  rgPLLL\tZqՎ onq6 Ad3&Y5%,jZ1>|/~c/?~[hDڿgdJ ~BV$)Hbȫo|W~kڍ -[O:J#*΅x"M[pyvʪ& iزou\"#iV-d\{@%MsXѬ{7w9bLL!>:0[TӼ7^lα'J$C НOϿs54ąr|5G{{'6жMV Yr+CmZt~σp.=L1v@]dvܶ޻w˿low9]ӽwUj5شc*;T;Fƃc3s}Mi=A42fqԬ֛uHSި"ǎ6.so39]7Go׫Qr2:m֩gخW͌{ry~KvmChѣba="{ѵGgg/~E-m6H)\r%Co.Ɣ)]r]_=_~ֵnܒq02@왜Ș6E,[)j bB@MJNIqC[xOċ,e4JMK8"ɢqlu #+L*`5ꋬ|9V%Amx BFjҡ;Ei6@hpP)fJF,,Ҙ!X~soYZ>QosE?e6cRU&{b`RU%*U\~$~ KK~OO xSzxݥEfa楴~b{F<(*[>py'vA!gMvd9MexFqj쁰Ut ":!_?a"cBMlۦ qMJ ]|ouװCJL ū2L;ē2nB%fjkӫ{lc4u>UT)%Ɯ6c~cb6FJD,q  ` &*MnA3Cvg3բ I!-S`Hy~B~#'|s{{+w䫔R 23 @A5*RT :Ie64r,A!N\a,R7`1qhW i\Ef|``VpVT j("3@fbxo>L>j!hy_hl֗y¼[>6-ي _|l޶}vfvv9~,λ4Yz3#%t3 |y~,7͈zYNb/}xt˷y/tt歋c{p:[ϞN֦Ȏ_kZKBIZ*%Ʀ35YmHf\AG{h4Q(!4jYo!acg٦tL"aG>~dyyٗ?szq} (taqvŢmg19^>چv^^0,|;xN~$oL$x0\G?dʗ)6?s30F<dnE$ cbFQ!ڮBG9fӱ!!9ێCPRe5͖CJ]N(]tF`u[IeLEPĊ{Ml:-B$Gp E/TƒKab~DJqۭ]lO~rm{k!Yގlc om캸` 3u}aq;ժRTjQҢRĊDr؁*)Qiץ 3ڹ&N>i3 \EfT;=Sj^H)"\U?zRWov79c.̜Ehd䜫*wNZ];!O0lEE535Re-\2I1Ւ8# .ITFvyO|Wŵ_x`?:@難"•_gJ*9|]lj**jR<9λƑsV%o1f"͑W2V+ lѹJtRIr ,#=' [Ȕ뤊{rs n%1% 4 X&jV$ (4vxvo]3ϟT{y-ƆJ/yש6yX*,u]5eSA&^U;~8Y}v!2H.9btM1fhOoBdb[te !H ǑE2pY.GeH5:>[;7_cYrqy!^C("Q5aHs] >bb Y}Fg gSԴasj0C #$#Yֵp}Z~ *<{'0&ݦSYTNC%^>[IKl H !Op~;6-!stX2|!:QRL}D("Ȭe+,%B7=UPOtטH%7}xfm99۾sw,ݾeց=oǝ5> D(ȶg7}l0brd:D" UhEFd|5]6isI&@ekUe5el 5&#& /"g[*<OOv@z1l0i"#&*5lƆclJ\MHTTpUo3YMMW]O6vj;GUD s6r* |}ۆ8HQIVό++w-8U; NW+/qkD:l#.^*Z&EIDLp&ONywߪ#Loղ_^v&+Bk b|;,"{n -Wv< *\LB!r<9bTx` 9dS9Z)p}.Dán-uv㚿kc$* Y2EGՌ:@ 9N1ǔ 1:0ZAf*bWpB`Jb5 (@ DpXs,;K3h}}sі:o1oE/t󽳷aQlF;ߛ/UH*g fm~ݚ9s8J]R.c1~ PEr.>rh66kym>qכ7f<.qβW Y'* nJ>67xr%%`1v*ay9㨆ngvZS cJ̎D՜a^bƢhBT Rf!KoFykѬ4Zdb:߶s;:LIDvEl Ml[ƕ$=8};<<ܮVqU ^igHJ7{o#I\kQU3%\.Vn$ fwd7y"7[TUDA-3<өnzT-A<Nj/Wo>! PBu7|Vւr R Db0jEcCY&+Es]Re#76 SeLDjT`K~0d9 ѲPp'z9v@VK5Bgj6n3 VԢټ/a3WM3Ut)t]Gµ\ i%3/ͺR(HZI;("%di9Ka}TPq2AԫZ&WR*-;0`6kwAˢs}{ڿEaj \9;_jA6.Od32u~vgASS9I~D̽k&UDYl(=nhahu;lZz0.3W];aR ov]?Hwr3j5d+d)Dc捡L`vp57~Y*0[q+IA*2B5` )}bINbhDFl559d2_) $@vϤr]Z㖰ik `vrʹ<.x<~kP2)9DRԪj.$lL8jZY+Oӕe ú/żUZjBFuM귱y.^5,wx>߽%00H]K)΍2k$iM!D:.rY):#7 DVيYC<P+n0Eȫ{蔄$U]cOt׻7S>ӥNm 8/|8_ů?\?eKbۇCAȦ6zwD>=Ev^~|`7i^tn3|>wȪ#FE%tn^sR#{U8DDXɪ:H ժxUvW-EK'MOCG]pvbl`(qr0Z@NP1s$bnI'oC*<:TrVx%+0jYִW傐l{˷6]}s&~JlVUbi).Oc6)FJк4S0D1E.K>]F iq+V^^twEMN:0MT*Dl3g<xyAXnv>;3 `?C_7>pm0><(J@ Q9fl%*U:P1*.m`C W,`d4['!jҵ wovizUOL[=P 8`h" *{%pudp7 :ĈABڧCS}7 C1&H$xqQQ YoPY?AANIIakԓpO]OO^5J곞nH""Cd &JRԮxͷ}n`j4J1VN,\ + "A=8 =XH\:L]ɉ1@E1yU]v)9WNBu(j$v1qUwP?9T_Ի۫;coO|&zļجٖj. )nb/>^^4\fx͸ݦsf6;˼D3 |_mK4ʹ9W~86݋w8%~r:OZb^@!ݶ֚./)sהB1jf]aاy6`sV~n4\o¦IHܳ;RG vnV[Iىke겠D$tGJ@ WbsQmAq'%B5*ln̵\Mt5J*vɉ*)jx<9-߾G?.(Sڦ4;HKsΥf6j5{JΤ]($1,x %>U-f^4e >?E Sd` \_\O知_ھoН7Gy'@*8@ EUTLyV[JL<$L9Úbڟ|'ƐnvަOV<[MsVSkT+(Sgf{"G}<4ҜIV!ڬX%W 1fۮfo@!ZʸmGOj53#UJ67j JkK3UUԲ2E Aw~l>$07^5RѣAܝ+'CR r~Nr5!5s25S5 UڸZ7zJzXsYx-Zrp8?|8>ܟiYS`fȳ u  aa $l\WXqϦRj67DG3➛m7@5S7REF *q$oWߎ/_/%FϋC9H6 ;1 p"pp O$i%t',ǚGeA6 ,PNB&H;\n3" W:ar0n6/÷_~?M/>Oaw~)㬶Y1ي$H"n6K|8 fY]jޞbnHy)c $'Oo߼y8jBq˗wé. ޼ I߾=mws)VK׿ͥjZkK"sf MTCl=H̥jZUǼe}Z̪sZSBf@\roO&ė ~o/dC^]>Ms 2_2X77Ր !T\f7ǰ}χ-՝Bpd_ܤM\UYq\ZSRiGq$vVCe"'8͵OtQ]w!8v_]7u/wmnq3<@b۾oblah5Zjf!\|B$1H̵:|t"4xjZ lR jeS$VYuy˩ `w3;JKudB!eZ ]Hxvۤn>جk+6_ mVV{xb9@|Timȟ gEV9=髕a:L4.wr^ʢn`Ԫ*j%"AH"2 @JlDL&VŪXaJ),d,0ԕyNn_ }Uݪ3v[NYHA܂sӄday/r?{>I7=h`#* 0iȍA#hE$ &H2=.yV j#/LI`R BFMiφST0G!8)c1HL]hۯ/FO|>kJGHڙM4M3R}YU-03E!"uKe圗yf1NeULs´^m7eZTkT2_.Q[f:cS7Ϛ;H!Ұ æn5yicuc.2N'TlGk_?~f?ð `YT\X@V*8ĜĈS6mnՒZ͍$m1]7 (1@WhE^(*ŋ>2׺Xj]AKw20wB)P`p:MZgB4ɝH!nO St2w)P~?3}ay8#%1+ل<ϳ̕\sNZ"OcyڕԅWbxǦv0RbKfi >?TuRsdr( ueEJ%,PՋGB^nr~R'u2g9@؝F/( }? iw8\TeiyANJ we4E?u,BZGge8ø\+eP@Y}ޕ^ffL[k Hקuunou1XDb )BK[5`I1*!ܘe|W%"ZZ/k!HЅ$k79dR+'`"bӊ]''/Z u՞͊0D0Zju5xjRt)uOM,/j]X8jw !u!Z1Ɨ/rVG!H۪`,RkM)*CH!U;"*!cv3eb@nm]t:֪́vqй9zA uc@QI+UE)X rA.TL|9k- rC>Pr1B `^QTmvnnhFp&g616`o]kJ:1Qи{Tyw￞'PH8I!$a񪥖\KVV'8OseLN:r` TҾڼ_5‘72:%>OtY)]`gwU!{67|v6HܱW%GRH1)D-=BM{j#mYd }@a!X{ 8Vֳgcu ᨆi842ZA9Qy0SX+ 225,v8\rb ʬ<+g'8KsNB$Ʈۻ͋&SNHAD=7P[KC#Zf?w% a'5sSuլe.B1ԥKE ў^flz4xr5*ez{Dz~xPzݕah(Kx9<>.SγÞ4B w,ABP`(1r8 1ͪ6pꖩΰ{[53SaXItozq6=CbH;K7wۮ! ȋj)%RTkZ߾? 򳗟C霯wH>ûq)E$͍=<ι9}f TOz|(m8rsۋgTsuwGvA.ycSQ=iͻ*p]v7RQݙndёR@@Ek5%(}סp#uVZs"ʥ"W䂹zy, M#/[I"1rkk)@+׌y颗_v<ጇc4:vl̵ ba~so>CBhBIT4i\^yhgA?l(k ^&BʭH.bd6t!k#kV[i~>Z+tcjԎ[SYNx*N'"? Yk>W}gfUq>/8O2ssÆtZUK5 C@,a)C<8u]_k9Nw/nC!͛iYfC K)a](l6=c WC?ļhZ iњa<4͉p̵^wcG8UC))je#@bn/dz0n%ۿ 4 _:Wwvce @T\]I$ u\Q,FtML nJP QJ\/J:]dW77Rm6W[ m1_`ٽfGvr2Ps1S1WzCLaooN͖%KYj-ֺ{`9[ nkSvo'QU"f.?G 0Cqq}\OwnB~_擗aB" $EQ8PHZS0|  ԬSkq;-o~'䫳 PGV #/<|I`gqQ`Y[8т4cu>%Օ ^+#gӄEOin<8lWvnuæܰuF^SpP>њ{yx| GkZ`7<jlE@d ]@0)hO}m$SQ a31g >ܩT͛nrM$ sC[0\ 0ZJΥe!w"0duvnoVOs`Sn 6lRH'TvNo}/_}e]rcǒ@6;dPCxT.ma ۝lL @́v\E.]L =Rg5+&Cq / [u_`uGܔH]ؑy:_aϖ=ZfNb>-:f[̕ɄA"L4Zxd}7i@ Ek- \x=^Gq}\ן *QVWgWė7eaq##B\IT#8s0R>aEP" 97;s4{KG"Ъðw1R1.GsI !{{{ -Z9"-Q0`ZX& D FOov3l0t.v. BOs"jƶDC;nfm>FXZF9ț~!E F Avn*R~Qط[x؅nlȿu$NՄ̚bQ{B{OSe(PQ11)ܛ j-2iZt:rOq-`try5p #5jVeK!D,`$"KGUܡ c6 (SGtKönۛ]|mxuݦM!z/Vj3TȚSE@F\Y 8d' $dIy*o?|ySRfXJ%F~RJ"b+QEkfu1ĜsϜR+w}O3bL˥VleYRJ1ۛ,yv7uG} v4K3NRq\aQa/%V4SKw{XZ>틲Ta<~XĜ\/dww[_?r}q>WB^C豽 %HANJv(}лĎ`U@/{UbY ݋( wdb#RlQ,sȳ%1ԼuzQVźٻsޟw?~f|S0Y܄ɚޮT̊PEEOygwpV:>l ְAUWܘWꪓk' Gq}\ןBB-^}wE꒧ҷz*ܬҫYr)>e*T 7> B 2Z07ԉHZJfnOP6{Q +8BKfdf}Mp>k-fFd]-EZiR~ ݛhqoPLCv7u^~]/q%b!0,c캮R)7gAmKZÉXdp50 `ayׁS>V*"Oo?dUx)ߏ~\"uۡHHF+ʪhѴk aV?@M>5fXŷO@a4ZqZ)xe5,bZZҚEےIHCCL ʉ{Q=vzz;x!^lﮆmljLRlb[܊b"L8^oOnxdpaA%.>8u\2}88T>K|W7Ş^q7;fs7l Y;7Nj-uUbnn~|JnI=x" m3[lpr2#h0 _/7!/|o]-z>ðuݫW/DÇ]ץqE˗itqj>-f1JarexoVCYf?OF7cN/lsv;tb KD _t_|UZ8*ʓLN==jXqY+C7na@C kӨ.) D'{odW\-w wcNXd5nئ6D7bIq(+r@"bE3ta{k}C6.&̨h<: r5\(+qg c:ߢ@,ps݅q1NCj^or> :6XJ{r5fzqYI v5:T|jjez_3X.L}6G.pɍgBfOBPE*H%^=U<;y3L]@ٙ\ 4Q<Iֿ#!sw{gdIR}!$9xOfu_=^?0aN b/ɪ?ZtGmXU߆3s m۶m3PAa$`P&cDP@{xNqt,m4|wkP>x>X*W0y1PQ'2>7m{b;w˧g_wP;N9 (ܿ'aS)<~sa^")j08^NtVC>a!q 8j sAx?y?8Y?{\tL{ME͓k2K dRH%46u؉lVlNnj|q=dz\ozW^ viyMǝ.2v1 F6#C܍AI#i:ijW@AlhNu26:b@)B b Gp0H+@iڎ. ru=NhuZFJyZ,ۣUZ*J^0C)6~WWWcGOب6n^]z͝* QR~~_|}~n;TYTN>v_?#fq}YTu^OTz'u<'Umv\{C˕\_߈ci>jquuu}s}|tɣmoon{<7W>s)^yNzZ 3A9SO1qä("MVL}cl.}mE.wfD1DZ]ھo6<dCV̥ ١|G?'++ɝ~h%7Fx BɖU$1.xI1"*n xD #MDN'xajŠNbLN:_ A d(ٴBMv;vo߼aWX9٘ ` afjDCʘKR81FtbDR.%f2v4*#ӷU[L9g~{_}VVbpyb"!$L3iȂdHj3癦no91Q\$LJ,5n\ǁ.`h;d;TK_V~7dѮX9 (0k\ 8C@u1D!:[VsXt9>t}cPh=eWmu߬ @L,ADTzN4_ɝ V0aA{p?yXq^OhGKGI8EByv07cmY +*mڊCʹky crz:@<~Ԭ{"NNL>M㘦iv}lvird:pwI9Dqx@dK %B4 !%˾aϏჳ'gdE)ol?9dfQPrm5kW$@Ȝ \b.EŘND.((Fd.nmSkNԄpӇG[ vm9f k(H!RwTFPUɡͯF6HmR,X1˴K7WNSBq✑zPđdDJd˿MşM׻i!O BӈjӋvAիi\xn7ݴ.V+6Niu$GGkO?dț|ܗ[}uɧ|y=ӋG)P.g9NNuɳMs>=kb0ӜYLŽwi(ӔU8"mRJRiRyq&071[V"s^,Ml^|mç>{8%m˾oi^}G>|9'AC3b u RKqe߮W(|wrEQ=z/R "0Z` 93N,//tCI⣇}ފOJ pBwZ2` 73 yCd`tR Qs2`tr%i`nP4Oewwee[^x:tԼ`MaOHNNM,Jh]XFmbvM,Desw$Y,2V]]jidNObov~?>I嫫?9Yoa]Uy.hfmϜK)m6mT Hn/JrGM_ތprrDDz|^.Ţjbi@۵zXRR) F5BR=1% 3$){"[y=ȲFy* s!viqt3b܀:UE$NN$"7hJ?kXAF3bs*ӬiR6YYuBif>e?=윘ܭ)!O¡ݎ/Eh쇱m|wW;~a*)ǬJC?O7,Oni;}їo,x궷fݺ :)~QX2G `9f&fuU9Px>k< /ъRM;֋|~OBf$Mn力FRI]"(^rp2gu:BWbfn 5Rt$vwHz|y:L"Kl;~UU͞ҜRs98 4Ny.n%C}訔]%U'IpH~ lBpd0(P^4̖kgE {_n;Lɴs.:-C[ 4i.A,X!ZZ` 0U5b J@M!`b8[ߤY^< sŌFHHHnL!:HnO075n-X){T>cS`2&eDH (e(:ش h8N9sڥ-9%Q,4xtg˿A Bsqʹ%WBlc qvy^2u18,e^9s7K)w%Ãⓓ'!_Ef~|>_oNen?_'9+35-$z˫իRrI)/>(Z0 CXQιi}]:H(UiXmH㔋)ci4M}?o>}:Os6m^qswk0 ~Ǿ)7QZJnz4-:VyN ]6gZ,>sXT7]DGqFZBs.](@]z!Gwwʟ}>bfmΑȝ]09qaI "E)*/5=Vh֬BŢ:;*Q#JYUUP'G$avuqvɧ-_~W߾ɒaV<  ]vm/ibv͋UG 6MvPMh\&Lcpf'Y}!}XMS"}*Dn>/ߌ'$oyɳT f*J$'K[S9;E r T9WПV5fAӒNn]Cq -uBA#bHD#A[P5beҴwU+fFe)]+L/fiGm]l `5M<9Rݷ 5`W0`هO? "O9E닦ifZ= 13H-^g3u7U!ZZdJ pPa?G}rW3;;pwK4iqa/oé DrPɬkq1t ABb9H(#}|>{zhtm68DFCdNSA.(n@mZL3lIىtz}t= ~(ioqP ʆ4=>FW $05; bVw#-V~X"A{*x ]4YCRJS:LN E QBdnPxU.2jf[ӜL>F:^\*,pRˍyL74Mm^]G66 W֯{gގyfsBn5tC٥d('^~_^_ e9zL'7|.^m~?]_ѴzҞw/)Zf'7՛j}I0MvZ) aT^e]7ͅڶwQ𩪈UeӶeǏg?~6/_lg?߽n78fCvMӶm+"[`9O^0L#"@] bmB,mv'/%̨Ys1ݩ],BwT3u=3;]ПpIt~fǏ}#^a>JHYB 9@!BA øZ?~ R?iV\?r\^m甖TDx_]޽~i-4e;唙)ÔRj{lѸ7gfvyynax'OW|oի㣓iJo޼"muSL< CmZf/..NW_4.c4M4DfHi57nӔ&gZi%=|W7}UE.zqi`Oh?яn~&k]hM$E>D攋46doIqdraI1Y.Hxʞ5];afz={rgoC\0Rtw\pH)5MhLyX]Goo7o^@'W)#fPS‡ÇڏsZy[qpgPՔ{zx'G3rB0G6'hm*Z z14B:: w5i!7bl.tȒlM !0&:b#a 鄚xl4M:~SRJE!D Ef3Mjp3M:y!'4]cq h!]_/~_#ǣ|9l۠k]Q\v&B9ޥys%Q To/fDWW~遰σ\nnoӧ?:KsܾhOsf~n??\=>]Izw}7wwnSPǧFUOO~뛗/_.hj5Su|oGw]hڟZrJvyi4:Պ9;{L/ۮ!V5~ݔҶ8>YjaL|xϷ18.ath2le%F$Y.1^<`wXSqphI#% BkhfW$fD U^FB氃͜ȠN%I#@"Dx&Ϟ,~~w#>!oM2)ZeWj𻐐^98BpA?TResyQEwP}%f/oz_uXE_ VKAXF4-bF *TJ.٣X`Pr:imrwԴ' *;x잫P*pf,<89w^ĉA0`jȇ Pfrg@$ `Vwȕ,{I:~Rk"™;A{?~\q݋^y5ɉßO? YՓ'_r!Y|!ҷ^/vچB1s1y_zcSJˋo_."ryyjuyyu[IuU ڽ.&FӰ璑!}\=G._/\6ftfi)Ɲ8M߶U["{R ۲('rzq8=>X"?Mz2AR}h;i!6 k{lG'xt--V[, ]9Yz . . w{WU[uƓ"zshU!~hopx[Nu}'G1􉢹 K5V;$(gGuudR0POBmSqatͬPKRMyN6Li9OsmݼƱ$U'cp~pJr~kJ!DjN5ر +v&0(*qJH:P޵euI8Df1( 6밀"f:,nj# ZT0Wpʘgaq4OiKJiNXb& RU.@5k`CBԽ/뾂0K|T)zxrg]=yqA"ve@!@"I7fZMcø@QQe;L$U+`2?x1C @UՒex rY4{`[n҂pHdJɖdc<)H$N\}TBBBEPb!8^>xA|? 41P,Clhz}mL~OϖQ!yĮmzT>zW[G~v1|{}?wӿi|tn;=}_JyݚFҬov]Dڦ&v;>`yrxs~|tkChqL咩mry۶Umr˗**6V-!K`&3<`f' !,KBbl%d54eݮUYq{z328b>wqW?և]MU5<$T5GMC }9َ樾|}XHW.>.oU[ZoFrf?bѴFbg''W9quWmn*;^DT M]sڟSGGo};=җwvvk6%އUs{w^onnnB)0 %?mBuO.cʉ0!eC̹i 3OQep$Y JgʲRADDe5Q-Ѵ #tN׷7ԛfY?_*>WC%< .f_z~)<DƑd>MmʰCj'gr@̎&T)HcX!;8]b#x=~gy?,}~)`Ii}<Ԉ4JrJ:GHlC/Ͽ;<|<AĽebMݩkS!aPc5RcI%I 83.;TDM b6MlE!i&i2BrԔ4'I),eK1@ }c9uwPx3.l`Jf幰B _eliS8gWW;/P?ꗏ)d dSfj!'M3&e8I-Aj UfFY[0sMc]9GCf*/.K@=N8ENkl?mhEZZ 4)liLL@*ePJ"0W/Vc6Dbc6ɔ Lj1H_deTo.ۧ_Oۦ<*Us\]ygG{{9n>M~/寝?;?Y޷?[_>}|LTo6uݘ0drǏr] u<::zXfU۶ٌ!Pw0X^;x}GGWWתSNYCN/L.*" sU-<8뫫b13Ggm8RJuYU/sD\1GOwwٲkg:C*.Kj/.ڣvw?d{ݦ0gv}!o~^] >}1]hz,sqf~'.hh¬dUeQ-U4e1!6c` .qQIA񄅰.v%WsB& Ơec&2Ben rwf(QL0}M ONVۿm֑S7r}YtQk3EeªD(/Ȋ̱?O_bT&ed4M! (Wo*7z~Nh:%O ( ˥}G$ϵԱH`_.s١f ˥=1WH`EeBdCP2*Ɋ`}4 2J*5(1*,C_m*H˜brYƔN/`RGƤl[ 'TT$1FICGG4 1Ŝs*OLe,6mGǨZBg_s!\01g*:Na ff0 N>8،'>,+Q@'z{}>9jȘTTP5ytf e.or(Sr.2X2S1dc $#ۺu 9Iq1>]CDS|__YySڽ@%0&8^yQMAs19X9PUr}ؔD %"\U5, v= 281mtVuV{J;n|V-^ޮpكr.6:f1n~#F>Y3;^5$p5_6*k;[Grz5}|ٯgM{}989pOS-)$#@9l6y "8ZѳgϞ11ONN~X,yfHl6b?3~lN\39wttt||LϞ}Xιn8컮mnoۍuu~rZ5QڻO]zuy=Y8vlެ0&0ffdx{׍yGN>}_YnyG m]X\2ø QLQLE%qD2lJz8.&31`tۇ LdR*amLMM%\lB؋c|p7"d__~YӣoͧײQ]I58g% Ng3&BaNH&+A41&>☋+&CϒxSAYo֛OWes R N!b96m$F0dTU^,};*RA*4dҘR@١23L&d "2򙽆7p&>o"Fm3X%vټ3`lJ`4aYV8WE1nsYыxyk# lY ȕ + z54cQ6<-Vxpgd6ӬQ<)qYي+;;JP, x xVTyĦEY1ZDH2ͤA JX.:Rg92"P& JԳU*L0)+e1]:0'qhJ#^hc|7PDM<:'G0ټMlih! %K`NfijM zKnOՅafqe!9abfLL%62DĎɒ)8@Ȃ'ؑj2wݽu͌̔AfsNFed:3;$ tTTb& &dAs #ܡ^.CP@RF&ިL.RƘ,QAl7궛|ӿo{Q7k]ђ:IOiݸxw׋m\d'o=~zbTkW/?K9 &4MO򯜷O?M^>~"v^o}'_iTM뷻xZ.OO~Ol83dhPׁr5bQ CzţG(u0UP_|R^.n5s97UUn4-3}K\\}'yJIUWqw0MӎPUIЧwKbMS&[VYT6lᓏn_n|>Yuv~\/14S}41]oǺrff;b r^䗗/0fIwqh++ń<$\:f25Q D4P$,Ht,*ݺi "ИzwNXpC6!L1!c41h\v|P)䋐Cچv<ȃ!JL|8xS- EFPhM(]g & qz9@YTrc1!ٱwyzެ79a3qzfgĖyHM-O?S2ӈ@pd휛!1 P%ҏ3S@ᘕI9B3'toy]W2B[xǾ|%T(%́9FR թh`rY-GI:Bzyiv3L-" 2$L, dhSλ*kv`r(&.+ױ%x%&0`j%杕H(ȣr DP+(6%s`&vL\r{` "c HēBđx*wLS$Yq~7ڏD E4(FƒkSWEYX /B+w˦9tT(<3WY"&"Qr9IΪYU:}oү=Woo5&YK='Ie^26ᓋՍX?Or9hrϫY"iߙ8)H0Gh}_zss4=b"wp΅f^$3b n]UU9|>ϛ!bH9vf]4~ݾzJUV''GmیP < FdPd]7w^gw\n{=kw֟h۫ǫen̒ 7BuM3#HVaѴx{7>sG-syY[q-Mukb&FX%u;d iNm{ &H60yCH2)Ҙ0S<9xRvD jpo0A*6$Zr"o}{o-=?YΫpu{Uzʻi¤K.rwR3sA̎؜꩖; Dfc1eszެ7t4$`c&{  m6͌}yi'Q*GBJo3KvR/l 8iMZ#8ō"AV(Y8Q|I{}SfrdmΏT `Y) !2A |噉MIY-f31h"~Nq׫;zqg/խmzD$NpF(gHpAHJƼy f9" &1hқ)Ȧ#rFLGle 1MYݽQ)/L($nkbF^afCIz]R(xhayXwŜ%f}6Cܪq+W>0 8SjQ%♾h݃ E M+n׀Dj2UQ  Pi\p~A`uA Զ&Տ?i_zhxVY3KɆQb4Q3Cb”XJ0ڡs@LgrBZKrMWlc!*ɲXlR$u%*dݥl:$7ZV]Ss䜼 IDAT]Q $᠅U yXlH։lQ5B"'5څyXV\ü I]n r_gT_yv!{2A4Lb[o;Z.2?yٜ9R}_}4>|/OY]Tv8],CG?z!1$eH3SM)E\Iއ$Z&n14Uݎ=4x:r jJynHeS׾Vv||t,ƻǫ'm]oEG1ZWƦ@2d XV$5Hȸ ,M=iè" -K* }A-b]uPJÆFZeL6Jbu=1s~tR+?~޿ZRWY MভN#s4ueV0a #%$Ǵv]'مuzެ7t9u LƬqm >]&ƄDWbEb^u6NNӓ4߃*MJf!P"2a YȕMY^#IaQ6Y\`x{b'i(4*4IQwDFN9bԜABH2lrmk{ts%ѕ7D`6USQ& XYc+<8; +Hkž#\ע8eDPdd(j(R0inHqwkEj} u]:(1!$0gTYLU$uQiSAkU*$#jИ,NMIrv8 M vbnU>4!3J}ĖCcUiwFJbS#SoL?6./|euzԸ*CTQ ٜ3QJjYBʧA!{dU -0w@L9 Ks'13; v%r^cDHbZSttGhjӗeTwYG.g_Sj(Ō!~F RVlbΨb걤)e\Xbqy>Z#>WIJLrn*)CV1F4bLɋig fu֪a9pIܓ*]ī[onG\h\V}70f cyΛarplUBwBpØ\HQƘl6ygu>;*qX,V!7 ]\\ P0 `^}1F3=;9iNNyy睳qw˗/q9{FkLEmlAJ4-|6nm֟dzZU.n\4rbJcB*\#;nM&@osִ,CMVZy*ͪB@ZĀL 3Q:M0W"G'?Zngؘ8^JB)ϛ<=5R2Vk LJ Tt)TFi 9N>4jqbK7GZ͘i2f'K 7 sIZd\f"2MaRfvn7C› zެ@d<ꀺP@'b386<`L`#bѪ:=WZy,rG0S1"r|-f~FW\N00S;cFj`r-&v"k< *uUDM*܀~ț^םmG DZ) dj +p5R@4Ag=>_~~{H s>]^EܣiRLaeþ `ҎIh>ѼeHmFQH=c&K&PMM%3o2C<#y6 [QQTGRLU ІZx_(*)[*ze36N rc!3ӈ Pczf6#k ) Ԉ+͆,/.7øbVM0e!D`,ufNLN)(n Kj`MLҚR##S*s8eOEJh&*: 2؇3)x3g¦\%-e3eSGRub. A Gp(:wLF&,"v/fw/Ow>?p]}ֻ1,eJ uMS;#Sڏ ɺ<^(ni?ǏOyx/_ޥ7QuԹ줝#:%(Lڶ53c4頻|]W9KـqW/ogfDD$Q4yVHGH]뜫zX4M4]%*b֎C]!Fk6jHIbLUULS͎%5kg&1;b\SVj/6'gCuDn "H cWOݚronKɆj׽N*Klb`:%D՜ \M1qE:uʋv}U f ^y+&c:Ӌb\!Tff&XdZ:,dzZBȂ2LLHό8u~FG #_k3xe;#sP"*"#R*$d-PPXXZ^@;O,mX7? fYWP 3{W9 4 zԼ@ &ܣXENj>6;2*!H*f4%NC"f⧹M>yoRa  H-F%5uiYXՀ)Qe1UD;`50dڍd;h Eoo:V׆r%*)%E0:Xօ7|8Or>Z)v+el z> Zq9'qQ}? u6Ki;J5ds&F$ҼBV.-BlT55cRvp:2ȘIMJ f^,=uۄ8df14)FɹƂ&Oaϩ Iv}BD+Ф HyTuh LF>I Qٍ7MzgS74E5fBA-;P5ldA4I*9 AtUpaCnt%,I-fL afϥ^NB /rp>P"-07ޘ{G+XAِ͒H*X4U;a1"c5o7"I19UgH /dS}j~gW( R$$V(Y6f/C5kc!dw[ΝΟ?Vgt}xvyWnn׏qs~z_6^!Mrw98wɉsw٭׻aYX.]?rTfaZ~v)"+myJ5v_꺞fr)D 7M`qu݈Uu]WbX@U_.)y II>ŽTlicKַwwyx}CSʪW׍2.Xͫvܭ;ifVh2$&ˇ& 9Z&"yyH&=bJGٚ!c2d!1g.scF hRvWs*DS_R2b.qmVy4UI$)Qs.'* jW}3i*88W3 \(DF 3"^4B%F(6Pej0L M~?3Ϳ /+_$__3NJv{? x^?'?˗~/?߬N2<ئOA) cS&r7f yY@Lj':Mu@dBM¡9|Gv@ 0LYK6שִۀr>OEb1WU"`^gۏ~݀>!ꔲSbdˠ|W@PFp1c9{o5kVOxų}SPXHEq٧Cѡ(BB1,G U.SN1kF֜5e頻CEinyTҌbp'vƎ'#D7FE8Sr꺕zf^fVf؛R0bV֯C s&UH9(Zu0IIg)8 #q娵o<:9fw\ICxZzU!R,yn}gs:;;v稪BS]7|4o㦡,c)ε!|yyy|X~~n:^k?r[>mU}*fQ3I'{oe[V~svwΉv'$ d b)E@|AIKlDi ;(DE@,EZ"OF$y޼]tj?>qz5+#qN8^/x{&lX}$!*sS͚,#|1|ssijcy\fCwR)I۴*jI)y0s H]c1yUєYw ϊGWǕv4+2?}v|m,Fm,rHk 6.˙9ƾfC!t-2"C~w{(pxbϑDm[H2k$ ;PU{n*e82[%^/.q8h@@AkLUֱ:+3&f[ d2]f<#"R֤ZATCBZM1x_ Q%U4&% "^%$M)DNpKiSO-δe9u Q&b!@beE%^zg!&JD2(11C4sj w o{};n.+Thn}Ky<X{!ec:2k3S&)J[fE39hTMϝ3"eRv{v<̖yheGgw.,33um<=w&UǎTavkUI(Q I(ԟrRJ0tLKDㆨUSlRvA߰.3R/#:%0Y6lS"DLĆ0[n+A` $A$$TMH-KdHJ' &C - ̲);*=(հju˲<0)TPb]ogGU??}?ߧğ_Ҭ^'pup~S;X⁏K󾞿~~O?|[]\|Gsqݯ}-}5#~?o.Þ?i_tݷ>yOK\)|g5 IDATw=^~W}GMo}= t=?vO.n+J{_w^_M??ػw;/Z*8AIS^1%]:"Leg7(uB^ѩ£<ۜdٙ-wt]h*=pR8h0 }ZHè5S}RNbK;hT\".ޫ\r1"[2$$0U庡B3O9M~4 e8oUXg =k214*CrF. Xa&>?BEb)t4M7؞iSIAc4i'MHΧ'%%#gJ^)b7j:Ky Hco J].j Eۉ]DFmmf:]u[=: 2Pdiޗ%Ư?-` JHQ}!&߅nQQrppeYi\ŀ*& -Hnsdsxml2C JMڋa܍ aUH })"Z(MLM 0l[Zd+}[. s뽧|%(F?J70P @o)A3 3"'DR@-8ˮB>޼靷P\l>}|gh4vR*1%%n9P/:gyTT]4!v+GbC [ ѥ:WM5(s{nȭO\N{\re]f7D jmm-űNS/'.t^˲4@HE|s(u"/x}cΜ=?gui8hzshfrU|v6++ ~ǽاʟVW° ƕ- rhJb!kbL}:"Џ٫2=A/LLL`VTYB-\a`8eÇgD:$lj#Ћľ$b0B_UZ&2Ojy0lR4ܒ\ &z.xe =|h(l c2!LF) qO:33벬(j4*K~=eT'U/yvʷ7nOz/\yŵ9>OꥏY?gnU?yƧ.|#}_Rg}wyv^5˾X_Mzs^ }ѯ䳯 7\zԝ, P-B(a,ITKhE"s:ѣBvݢЇP"h|@CIc=K;{1@*=dHU"wեƪka ,8!81a$-j&&8"V@]¬T8_' ͻA?Jw `,*[J7Hثa!i0`{2*(@=tMn6Yܝ3K y:Y+MCH>ѣ)!+S1jdžJ2V}JAᅂ:Ңy@pRb6RԩH01j躮隦]yt)%ߕ3CwO[N/}|P?#Uy(Ұ?aJ>O < L}GJEW,>kn󼪲2F'Nmtɬ *(ȌuD| #R e>]@Ҵ 6e׻ R. :#*fAx}FN,wƐ:#Y &2mVŇ,gB30$Jc:i8N7wg[.Gl>==vv|]+$L)u Aʍ'+Tc>O"e9 i7MBZ,Mf1V zg)BT4Ϝ:XY]@FըmmL&bgwgwg'xs֭y^bV͢^Yzqɪ,[[[l6neuRUt]S>*rk-M֪֋޴9yjYRe%[;[;;{4ye"9KlX֬omlK.ee _r^!C5+VR.U yJB*DHÃ?txId,"0A2 (9Xad04TXKǁew6' #p> t9DkV%*=A ;.M6ujG{Ӻ5͓7 osqJ[ 3/9F 7Q"MT0;UU9Yz>_ԭNW|rt3M㷾-}X?޿3'^b{k__{l_sEG_<+ pc?دdɭ8~w<0pϽ;㇯y޵*&\u˳z_ ۚ>G^}sgD?u/<.ܩ<>#fɈfƣkh)MJYec@R" "5<\WWoӼ >iHUoܰa '} ?CI5 H!rF*wuuKJո䜑N$dЮRUE"&6d90Puks$N[ټ.ٽtj9/jb.P]KJ)"Eh4JCxuQr@,QHVݴ^u ֫i`[ΣZA&p>J,i̻tϽ@ؘ%]v;DL0?O~G Z~#'}~rmZƧ]w ^p{Яʋ\qȅdžw?a_~-<|}/oٯq}O퇦[y=2XrzF[teeZq<`>w|Ӿi_2yt+.|@N:VLPy|^c0-cѣm.VIEkBU F9~9֨M2:ͧkSH<}m TCYFΆ@j@PVr9 #]qa%IՖ%\(7lZ !BKJQ% RP2(!Q4.Y dpct@$i"cR=}Pdv"]u5 mJnxKPVbQ>j dJѮqә=;xz7ɴA'RH>D BSe2T J@)(4$سkɎ)39q1tZhôŬ&YY$KV IڵbΦ|ͧzv] QUXTBDp:/y">cf6p秦98 :χ!tUվlèU.*ˋƒI lTmO`CjY]JSO TƕY[-W&esa6kl`QeI*^c5yQ1j"H#&hlTbzL  }s[% !y2FyJJLltم~_j{(%a~sƔ֌f;{'UC~룵cy=l9̦NO !ըQL!IS+JQIS kʳ禣YgOZm3{gwKG.\CD8yrڌQ/8kbEyAZc94MӤ`"gABt*fjb23gol#@Sw}BLVԧѯ;{uBA:ҩ @Q4E8Ҫntg>3;qEl Z1lq&Ȭ֚<+UUYXfN|<Ml FP(phkU$ީ񅝥yP馷#G5~FoǛ?lyck㟐:Q^9r>ůw/~G}M|N+k+_Oq_bOEx2b:~C/8'rV'bTDPu@cNQ0Yf YM=\绾'!EH`bY}j/<T2`T ީ!HHF u%.=fla1U2x31#S)D(qRB"0LɌT&^:SM4Q bjd!l0&QʢC=C=ZFBi6X.ԯ°KXaol $$H52K>Z'[N.n;N,"zʹ*p aRh+-#.B-ʼ$691lQ$̈́rKD %^gtϚY]'rhzK|q+ xC%b 9s Tя de9gDC=ZSYS_T: ꊞI!0}6F?~ ^e+L6e` D GMQ($I)ѠFkκl!'zw,h^D"cƢ bb#IR צ+Ϟ۴OVz[W~A'>mB4?悋mnnH¹򓟶ƴA]fVJӴ!F%i&nfrxf}@]yֶm,D$3cLqooH{o,d21nmmt:][[˲lwwkU9{:FƘt:~1<ϺΧOFDƘ;Id5f>h=S3@zE4$0+_OI'`"XMQTeǝ +I Qjmǻ[NԟuvL7MSA#2ټ8ʲ҅lFF1S UQ!vT ͍3q{Po}cH/{o~ϳhebuoL>_DduLݢrdtգ~4y7msseS1='^?ş'+1Unh!O6֬ ᝉ1YпTy݃U"&IRdM@ޢ*Tsa!*Uf@Ѯ,Pl($]Z- T)=Ot6 AL9D0Jz J=L]b/8jIt8g8gazeÊq 5(+8`-Ykұ36]XtllJi-ij\>(FpCϑ ^C}:g 0HYm?~>T<%?/g-s[D><( 03DQ@H"1iPDl"lE+'9+ I B^L铉 6.tf|,I$cxIhė7A@>L3ôK hÃv NAV̠AIR QK8nL>7&7ʲ`] v1mEq3T!&JR*]h=9+# T(FStac V+2lsXÙ3 !aMLDlyŲh83V!U(jJU&"5,8,lsY222c!plIUH}8.zX4iV&ClŘQԧXr,Ef=vB[[o \v'yN.N5;Celڵh)I6,흛h@14uc:u|tk.  t1o >t_~%g~߻~r݅㕉sg{ٳ#m'#91\WO>N= //gv6ßj?{|{<'_0/?=}1'~.7@Sys$Y`"EHP ^AAziy)řt&aae8+R2).(& ˙]=sEKLD\JqJLbQ5D ]K .:_i/\?LYSPdp=aHrPW"iފT9&@Sϳ`SBU-hXsHV ޶][idJw~ d$-ɤ:IC A$#PPoy%ҩoi'Mgn oB #Ta0̦Git"LjYI0tC4D=*$mJVDYR* E mvo1_Ե>H"CC K~<-~?K{ye9fMa@e((]2TB"+RyEG֓i Z%EE2S) 31I&LbV]ըH^GJ-EX8tFhEa1% m!@sĦ$0ș2CU$C#aakZ(t]R$"uT"+G,xlҔ%d;@}xM1SfE!>;5c fqs6dI 8"|ZWcG6ugۣ[RMx6uj+| !6W.[oD]䅉a+ؘn{w.ʓXcOOG+pގm+Ov۞**_[]b]ufGIE;ROŘ<jVcRu!xCJj,tec뺪{p_Vםsb-4Ύ=zȑS2_4"z|>?qh40۶NeYرcmm!z4MFLy{bѨd1_67d&*CEtopYq ע*67m''߾ 2Q+sSTN8II$jӧ.Z7m9{#8z7iF Q H HIS$( / 'ƀ30H+d(%I" HՃ]ڬKo/at;9 Uý5J92`GJISN)#3;3C;V'݆80s;6ˠf+ܥTDsl5HE{#$"ܲw~mu9{oZAr<~{^G rc^#?Ww_xֻ־o7ڍo~{&{= ^3/x_+߶A{}Oޫ:w_󋏾܀}w~~>~~v|'a{~˞ckF/y޵/|aĞ?yl?;W=;oR~tP? /gʍGv۟o} ewj;Yj`|GSqFR4b ϥ [a# EpY %r]:~x{vh VQ n"eh0r\3 e;J]j<_ c,ÔL)H|Pp$$CqVjhP2yv{s;$Y;D7134IJ(]q:&*RJ25 h`/-g4Rv!i[HUaP,ySfgLj*T㮬|V )j*(M} D5J !bHɫt|j[4bfż뺘"`zZ<4%C7+?' jX +>"^D%FJDƄ Hj&RI %-SMS; !䣏EC}]&5!Ͼ3ݐU`ˮ0H  TX"kMÀhnQ(AٝM]ըFO .G>z[KۂkkűcNO|JITBtoo>KJ16s!(9/X]]Q.Fq?~b4*:tTY"FUCӧ϶mJAb{{(ޛ汖Y߳zoәkm&`XA !"2( " )Q  Bc J_?HH$A(t{Us {wX+TDصURUǏilX3ry}}Ӷm6EGՂ80@3>>:aji;oKͤZ^Qk?h'mv۝*l6_2B)[6Tν-V^n_sficӬ:A"YMBbF62c&#-ÈrNeKz+B1s’j(]C;#S#*EW%%}H\ b}گn{BnJ%TJF޲KeIxz.ݷNԳz[ώVvXӳo?_V'''ʹ"i#srNȚ? TAhڪkT98 V _/~έomgÿ?_o5?_7?o?Ҽ~K_⫾⿪~o;w?g}~￧ou۷o?{{x?=p??e}4?;dX+s?Go[IQ?S|w{gG?7/q?i jo[rFtѸHb!5c ,X8Fp5e/F>1f}j13申i*D9T±1 Zq8 ޣ[Usu: j+n_a"RD*r-F0!T9L_fqL̤| &SyfkGϭ03dC6o%ɐ@ld,y޺7{QGt;. f NrTAIM=U {z!Y6%v`ʖ-`VdRBɱLj1gpFiV*!f6l)'+M90}߇!98}>c%68۶;S\QĎT69~HP+zU*gu G3$PÄ(T%)c$+RtK9bCF#sbDFĵsЏq0긍6*I6#+ɕFYp\]јx(4J5ö2@hefνog_/NjEhޠN딷ÎD&WC1iE^^,o)ch~;o/{^]owj`O>y*v}Z.2$w^߬nnmWN'1vcj&1e5@f0 ,{OsM\, 0 UUYuk\dҖ$Ӕt꺾{n̼2s۶GGG\Uflιd"lx1ӓZq}]4ơOL6MS;E{w:O+=(v]?N9GUtZUq;Wa&r?ig$^դV!"P)U"#!23}:Fe)BD@2 EsQHD)JLjHـ$ Q名@;"0@9XrEkK`<@%6e;犢1ko"mVz~nnjI΃GߙY ?ޝ} _?}|>=|[w۶n'xq"N(TUcCuOܶm;4K)!~[zo HwoI+ݽy5QǏ#혪Vջ IT~_d(Y-}ſsN6BӰC"0l|Ku?\̰nDܐm?y7>O^`Q2ƪV ^cTFCXT3ۧ;`ɔf #Cӹij[s$Մ*F9ǔ  d;4t4eh4?|18@}Q˫ #G4{O]Z")}wn1=}z~./v>;>:'zQUU\0"ngn4MDrB^DhbLׇDc9Vb1ƓU=??{?LNOOӉn۾'nۅڦ9>:/f޻6l>]׻n>]l771mgD1ugs˜b(pW{}g> xwqbN1HlL.f`ł|[?|wݫW>y8Wx%c FJG%ë!)-%2JYq,]!J\pY$ @1 L\K,PZ`@ܷ߂;'S^ {f25\7k<tmѝGU{x~|~qr^Lg'vBfڶ3_lYo7fX}Lyd]IཟgMS_xo8?_f3=3>䓃1{NoM)QTJXd@M޵4ebD A!v/7+"}nA::S2Z'9>> 9q "2H . ({*vP C߅05"lya7b8PLR60U,@T8`6Ν;9 :ăI,'U5f+&d]2(OXҳ }/"2@\NJ:kʚ=N] fDe (Dsv޴lҴkr( ,fs-#9_?^X獶jDPj@$F$u@1_AAyi ]ߡpp{Ziqr!h޹i욪VS/v).-i8F{!X̎nY6l6U{1n3:箮eJΉ糶,k^oVH !\]_狡+!\^lYa?6m=']>$ĽËgˮM0us`q|hB(O?z^pN6?W/_ˏg~{5V_Z|#;j[lB=!.{9 ut6]y g.S5{rx^m^ (:h_a& Rc( T JHcE WNA bhfEbdՔ(jSw>÷֞˫\]mǡ~Zwtrv`\_^L&n٬6΋ Y|12(,ng \J;gGGL\~O..⍊M7f`)DCD0 BYāo~V%jy)b>rf#!a6G?b0Bdy /m~qQxo[ IDATdEY&uEUE{dSkH \Xbp^Gk+!,Fy -ucIFd\㫛p۝ .\t!*8Gѡ[,hvQvf&t(my2LJȚ(cȫ^nvy;ژJD+ 5Nl(Q%U IIJWbpF\,^ `mݒ(dÐZe?tYqh-o&>K%5#G[PhO 5'縪 .k+oVY7(”Rf;&PI24vɽ{u#ޓ4B!lw! 9@""B&Q]m5ivWŴZKh%*c4J*](v$Je0ez6đAd)=f T2aLEy`uXqy~"Y+XU'p ˦"j j0W8GJ֢r6m3s5oFWW7}iyW7R62f]gH]w}NI y<ׇ/EL֏6&>df)Ŝs9`qyEx}}MD/_,/_cUa2LӇ޿Z-7f:3Uc^j'$uۜ7MI纩ctڄA^-w,qV_^_nK_|tvtzS?;S0&Ǩ={JFٴA]Vf1gy:鄵kU$h!jRS%ɠ"Ʀ{]/ K 6[$F5+@.גef%8cL}%uUMk*YD3nJn 3)`dee?gaQ3Z λ&eBL9j'?dg$?~:)|}pAjslzyyuuw-HIS۶PSU䜽wё~={ǟbumG{dzS>?!Y&LdB o;#CJ4&sNP31;sX V`Q%Iv]f^fK7˰ZauqtRG4QTNJ*T eOD`b#+jg"˨ \C5p;$*MAa-fF8r2 :z^ŋaH߆~RMlmu>8|v{O.n'r{UjӇJ̲`98Gh|Z.;v0_1u"o2]/~6_ܽxիkU Uu|yis<2ë뫛8ƶ1ƱW̰6MsqqJ8fZd9rEFNfR`A0tjjf!*DL@ݺv_w~ѷD:N0̪H)V}c,ۧn7LB8nSUd2=lG_춫6gﱘ7N7MCu1;VP.xf E"1Ɍv\*FVd!C 1jL3>skGlDFALœ+OHjB!f DeȔ1y*m^]SW?'nstݻszr#XL-clĠзM#U}tt2 attrX$irNvO>UNj`1]6MSUoX|oM_ e.D xűA3@H`$ 0 ;<[%T \U8ch:>M_-|Gms}"Ȝ",Ӟ `V:8\>ݧ44ȓSjH ߨ`KTh )*!e)Dc.m y:Z-Dhn!s`rr8{ڜN ijb_P-H%e-TURL -f ֻu1"vm=[1J:vI=kYUMTLl9g5[=o%w"F1Y38ОBCn;J{|~ KJeͤJ{wN= fKH5S %xTw6?+/yvL T$1i^8x!1 (z1ϒc0@UaL KKr0d"XJ#@qebPSQU^$EH,'[YdABY2'11c@,gu^mij:ò%#Na]bed9B X[N3GH};ZM:e礽~z{QP%{j8:]\19StCѽ˫0|=,WY1OoG_ܬI| wO}[8z>+m6ULŹ''Ǜf fzCESXBuv"=0'?|>vY E9XJWMy@r|EU{_t&XDlW]Q͇;@<<:-{wNO]B>]i1QyB)%(&{e<ӔkW[$_yؤAݒL\ %S,TXdO$Lf%̽HPOie0。L 1+YHS1e0I i"A## 3(R!X?WWun^tPL2?yy~MƐs6[1wtRɱ SmA磣yi"5u;NaUU̴O|~zRu-gggggd:qU H~atPoMy6&rbjH[4Њ2)dT*V&veR<*A H_*T V熅v"' VKw[ */M6?(4q\Ds\=@dR8AaJ+ĭgD#HZBE1 m[X  #`].`Hr,ВPjF|͎NjzqIvU 6|N7XeESR#(]LAPxʛbDݮT=$/TdFصR}hE[7 y`қ2R11a!cŀܳ=Q[wn)O^d)TNfќ4'"sR,Ln[kb@jV |%'o;{AzW7ae:lb`6 >` )*(fNRĖd`SW)+eq\Uڣ"9' 9p Y fv)(2sY`q1S)2|嫺۶E(z4*E(kиl-&xV8DV2$Yl__uA=]mطd9djTU-&W2v}ރ}mʉw)gw'SXL"5p~s3Y瓦i˥Mǟ=!3{uN3uX޻NC5via9BJTj&>U5 !*c3999yVU4MrNR6Q5{rNE(saX\P#Go?8;= {fIj9.Y=93, u_GGr !e񄦮5.9SNo;aNo<[6^4ǺJn)s툡y=MhlscԷ> 3^FT@LL&F1 dEpj@*eS%jOgVѐE 5)0aUZYIMVjŔ)$K L7sf_M䪛ZAȴpv||||:99'}8/46I[ۤi@ɼkv٬../˫뛛zu#ml>u3'\z7ԛzSojO"$h^m VIsEm'0yPՎc*fXP9rYR┤JUM49iÈ,wT<4R2W $Utu AF@&pjA"8Ē# c,5яW ńhH df%u(3F>bwU5U)%'YJ-a7b )Yy e 6ia#sk9 0-SdMb(\^4vQ75~ZK[QȓCy/ |4%sS0c~Ԙ([ٰnzė޾ UbfbKTM]9GM R,#JeydC)@Z?6hY)#[JB~tї)o%^Qm6OؼUsq8$ͰLTzkU[)cU+ %cLbPteF&ZJbN9rlYhUAU[l$F"FBD"UhfMHaXƘR5tIF 8P!;˵l!QHQSѬRaG&òer|v)ʼn&;~Nm;d}Vɬi?zdw߾wj~ծKw[oWtҼݪ~f٩ZJb^ Rl6D$a ϟ=c֪r!٬톔`1ga*T[5Z.7s16Ч,T@Ήsv;\__#0 w4Hݮf1Ʈ /P}*?m۶m 2EsN!! ISכի+X2 c.}ˏvaysC/.^<~9M[/0{f|bNgެ;va>춽k&Ttf4$B}ݔ&rJ3 H弇]1S2 ) dE6db}w^ne)@PpR${Fle@JLnf!k̖J. IhCMYzv!fv[\W݅mv\={xn'Sn}l@?Y;뇰vv7L֓ڷtmT;9WMvr7scNv͓'x~َ}|1==9+y,bC}ozSoM,#Lbޅ9vIؘXq76eILoV jQ%DTĔ8).NEӴTc? C=QHieH*"KnLě*g-+ P@}H)I\Y3;lgGijpSY%Z̦Dv´DZbmcK}DU}|$TPڢΊ~~o?SN9ml54H\F{ZpjJsitP9YΖÑ uڤ%Pl5x2qR1Wj.y &9Z?~gƼo,gpxDЯ޷nT:A˿ A*#6*3Jrޫ^gÊ v6oJ9#3JI"e0P,Es63cJKd-eH1c+ϫٝݗ//???;w!M]; ]njɤ|uXLVs"XS}κZm.lf;nB`iæiRM7(⫪|JR׵\BHo:7}ka9% 5oIgC0OpG$B5dybVedLᅜ#爉HaE<5H\I(ِ R-׭AUΒ=dLPXˠN`po5 )ƈt ;Y6\"E ʌDHhdFlƬfP%Q."|r襁98::8>\LmV"ݐGF$Kd\y2])J@wnڤyf\=e3@ b)kp:?a̽V\{2#g.1}a10Ʊ. ]fl%Bc$nU|RY_׏dIw+=dFfjޝAp@> n ;;-Dfpqs`ף{Dn!HQ~}vXƋO }mtnTKE aU계BZZYZ}YLMXFfc_~˟F6&ѐz̔KQ@GD-RldM 8"'YK}L}MTT$%(lFhL= *eA-`jEŏDL@ PDT$zR " -U3b`L=B2Ee1Q `1 Q AA u7࿼nmhz>>͚6?7CNy:͇Tr}^]mo>~x@nݙQwt<|?Lg_| =?Q0~xsz IDATݥ qjx}}5r< 9[ߵrqqGf6Eu,LD1q|*f1DOdm7qvi~Ӈfc;䣊a۴8ڶe{B8A0!)mc0yRJIŒS5y}}h[Bۧ;잷7WW<ۇ<777}tO=뿩 Gq6!8dV P2 Hc 0F<e`j"..9g}1(V^]`C4=x\@jHB P !!VF]-1+JPSƬhHJ\&[lLȎC momz`N9~RzgBPfH/lX&DVDfjV_]>%!T>A9E!p7E߮bskkH͐RDr9qqR*$Ѐ$\chxh3l`JbVeZ),gB dBUZk=2dAjTt H"&E 5*eoۿ;g?{ﲒYQJ@,$*P}XU׊ƆEPH萙:MDQ,ZvT*)𢩈*)W B߬\ *ߒh9YK3HE%{碃hD*ǿ'_`F}80*a;{7>٘1e*4%ö-$%:o;C6ޞ=~7dP0ø;j.xvy%"b{|i<jJJ,?LmxY(蜛HCls38Uv߽qе36YJ _3ABV@k G$ b Q;vaw<>ygڕ#Rs΅]+ gWA"y}~zz>=߽1Os6iiyS=`*E,ϩ4Zn])Gq}\ *Cgxp6ֽeufWΠLa`/{jdd$+h1dPPU(0) ze[p2pFòfz$XP ki쉱V-YXQ`VƢ`jE(%Yةҁ<83"B8DشM׵u{[b:It’Ƭ1jy@FbX JulT&:J(n}6L(0@t%-| Q(]CMM׬nug]i}|9p/tq͐k版h2VӢ_9ƦM6fխ@e,Z*ZL@RաB)Hr6@S ^]HC@$#FrTT̲Ӝ<穤))$ rr@(Zdؐ#1:4b$fD"dDg^mTY,/"qU)239IȬJt <)e6"0B$]dVۅ+pO j&tzT Ȓ сS:P'g 8 0ij=1Wg2=SR5}@ؼb)R>8a"rPݿsjcp<v4hpuW {8%thr]S4ed3;=R] h EleC >E!"P)@MW8>bh)[s P=8BW[=jJ.BɎ:00UDSTfA5^1 \%r)oZDd |A#TEL&RrєaJ0$(THD(&$`Q#'' "3cv̞y 1c&6]@I23+JBx_P<!.DkU1}q9`E0=YB* ]uӬzݬv4& 7=(ƋG@OUPfR"EDT6ibDVHձwڀ/|3UZ,cf }wM׶q.{FTDsyJ)\h iRAQDUlEo/~ސ|Ć cӚ2& @%!(I1V\Iq>0pfF@@L;Gj| E O^vNj'Ze&!c=sXd Z-/ !Ul^ }v]4c@ ǠY|?<3`EL]M?vs4>}|qf J[$ח!})퇔dbv*RX,9 a&9%lڦi8UUU9 QUdI<1q u"Ni~d 9eH{3)9'ccj`L%DCH(s#s=cYw>>P8yjoMKqE8\\_ա- V-G!^9UOso3|m9@訦dXnE 3zUcPBJKG"3#fZX(K Y5w;gȨ՚M&P|0|to?_U7P 6ط %єie- QK*Eäv)XUx(J55&3MEQGcp&cۄw!RR Vfٵ hB9i!f.ŅϱD?YA UpQBhSۆfvvӯf.6pVaѶ2̫h IuUNY1Am%5ø"=(؈MŰ\pcmU1V}ӆMФYRJ84MIDVQuh)&PIKA2 R( lTe8oZr]4*ʌ5E`` Ljc8 2$yL>mI؁gb Ƅ䖝K*ʧS6E9usr&R`gkbӣ:% 4ojy̕h y;̖/@#0#d"Wk  91ñX4YΚ j1V(jEU@"ΚƒǫW  9U%tMӨ̪6͹~1Ţ?|Ôǟo}=m 7}p7~h?{ n׫2'M86}Ͽ8Kݻ{]z3#=RJS*]hPc9Ni~~~jc|!DضDD1Z19"j*Rynǔ={=Y7i2ag}֫o/8-Wz{Y]ܵM8MllJaK*F^M_]lĠX*.AHjŖNKdk+1#2x4FtdSbTʥ3)zLVj LP$.9AVdE&tTEh1tybӟ_Ob(ry4QVa=Uٺm_v)mժ`DHmU M5DH LĂo6 18OO[.IDL]hne;}"!zHR, >"KɕTH{Uӌ]sp <%XI,^-'7,ʽC; j1L`]|vY^J$#Ws*y^x}Ŧ 4=QnЍt(Wj@DfɀHI1;bv`I4%JsgG}ů~}ݬ\՚ sdf!Ъ_uj?=ۧpxzN AIpwpfBXժ%˜pL9KV<rj-@ /J)kGq}\7OKk,CD"„B]\96׀o/gӂ3T(X2+@PgFXiHl< +Ἔ PU134Zwc d(I̳zdp5 c6$Q8f Nb'84[vmk&61D;9v9=">4( .&Phpi& J|Oa1 LADCh]jj}imsv"ظ8+N&Ͷ'SSRL?E  & C1:L\0k^@m:ߝnwydDӒsy88S*E 8ɂ$[@V:}T!Q ;ë3x*|r~:~?y㮯UCPb$%h ,EP05US FȃslEiyDТZUZJQ. @=sp=rkӢf,*8-@SW2-@1 cB"D3EL T ǖx@!(!=vm}( )Y!3A<*Ⱦ?}l4]^@GS "&8.}=wDF޽?Ÿ|חor.f1U]x~_0Y/.󐟟w7ww*l#L6 #yjR&-r88<Gf:;ߤXJju駯^~߫*"HD}_^^w p8UcPa@CL̘2!X޹ڨi"ntLQ./}t0w}@D5!C94S5<ds0<_lCȌPTĨUD/FS\,'0ʨvH%@6r H@:+!NR&,Wk`hr2 (pqWPyvwc:>yu>E_wM6tmGUy'4wۧab!H*2HǶS?n"y̢RL񔐴 bQA}\cSS`Z)uSb mι[AER`\ :)N{D `TAZ2H ,P%Q~B&,V9 PȬ)s9(eM  ʨsN |[{w `g@QBQ&Vjw]״1gO'/ZC0UM*IK&- j$˂%Z& B&Ria)CAʇ#e XH\Բ-~ӯfם mqҡzN;)׻*S z^ln>}1.)SŅ2 j@?P^4x:Zoxs3߮(vER2Iiqqqʩ"R̴ϱƪj[iM1!b9&$?.H IDATW^]u櫳vR`(Uf!ghd QQ.$ eC4XTp!‚44â/JΈɑ"ypA+tƱzO엯)44WDbCaO_iMj {JOY;q+P(BPos h[\߸UY~/>٬7pOs1I8Q.~H ejؽ<͆(u{7펚&']to߾ 2OsE} t޽{zAoS1"l;MJ9aFqlk/qДzryq wwƆط])f`{=@e.kZb&+"t UWu+Le^\ZOGNJJxu}]hg7ϳ;BJۜxO9 ]>JeN"A2aiEdSD)X{,({y2ZeTPqWUTBf !brmU=cpU4ʠ栀fdRډpvj9 PPͲJ2- JBhPi>>;xGsmՠ >b6m]ߴ]״M O)|bzQ.b8gהpL|-ZTZQ-T; @ fc}qVmKMi M)"Es9MM7]߶.;#73DY*˵E?-d)ثy00,Ŧ)cI%J^W}T4i%  2,EUY0Ndf\M6 Zdo:H<4 tHQS4YK>Ƈm`E 1s`D@$$G $)bϓ?}]<=_=ߜ/?74Vt J9)9 ȄF &O+Au`#=9]h{ {`Ll$3T)Ԑzuhi1<bZK eU Ls>LiwaW )#fbA3Jm'q=4AA8olf́_=0ͼIa:N *n7zߪC$o`,i;]uд}=֫, !nֶ^n7\8lј9fac*rND0݊Jyڶ%rӽ?..6]W!x3 Œ~KtIDJɻ狋m~?#vmt;34'Ff*\yhiv[~7ݛp :FDy?ͫ닯x7\D$yh W]pշ]Ϳ_yfve6D<Pd1SP֟_"|-L/Uea"!VOOhz3b dcɻ4SI晤#n-/B{(HYͤbL([؜ۋ/o6߫m`Q _n'l"Jq}\_VPRuT#<].yC\;{N0ÂGM bF˦3@ZD [h o; JQ@P(du#j2Z,V2bHqٶ[|v#Cv@D%B TA{M۵udz}5iwDa|GK,G j2g̃)7&  2sᒩdRJo &((?j4vS.E%KN%'Q3eC&6&>r 8`\J2b&Y,"dij CJ%B>AK)"Z)|MBpggpyλ~&61F"*Ys\< LlպkZ!0 RvmΛy{O)G>]tw-,H]poFޣMir6^7pat]䢗ͦC)y1gȌXk@N J}рƱ,5"h#l־m[&oD+Yxy9@LA":sk(1#E3[l{2Su|t}\>xQں ETET='$8 !"ډ,NgGW H` `FH$ 3Qa A-@Q@I c) #\$t*V r4[Kgg}zЧ 3eѹ(aQd#18 w<{bh.t}l;vM FQ`ڗ(2"sq]ʸ!8nap؈@ RRiyTiUlB.w)8dShZRqY.& \17C+A냱zk_QݳH%Ua 9pvnwc)򒄩`A3:`bTjcs\bH}S.%O_sqcr9󶸃oa?c.TIJ1T%Ub*thA " 10Vj1#U=MpTQ;@4lfF4|WE_ݸ3[awǴ΢&~*^Cu>wb3Wޢ_@4}* l/{H(kӂz\E^J'BLVX-I d3H9S&mV{15^a~-I#lw_rznN=3E IE$QАp=֞͛w=[,nfz87)zgV!+7"N>23V:2bRPrٜn[cv4tNX8>l"Gέ:jԵa8lR6mN\/k~u{{o*g_r9TZM']ۛ^U3_/^$q￷]^^OO77닍w!N]3ls9sn2mbrN9t:-q3:>>^,*ݶu]΅V 0 U 9cI l_N:ơ S]l8⺮|P'mۉ:9=nʇ:TrMjFa`bjo,W뫘Q}CQU'uDU3 xRչkWKehL&JADB*lZZmƪ EA bXO=aT1NL@f̈́PqVݰ֜xGJ#TKAU>`"r(S]H)WjsMY{Y5Gムm:+4E+ &5Om>庩ȕRܬf@*4>HDw}+xxMĪ"Nn[mFd*Ƞ"j "87yr΍ݒA.'.JƠ?63M`f63H *-,vb\lw'0 @01@v9qJ'B$JIH,AQ㠃1VܵN1 dz2G8ԁc諸n&W*VKZNÌS1#V]]GAFooxN*YM!m\Kj6kZHա F=ja7 ,4k%%Q L 3!<*g2mFjNsC1ar0 kc뺒sUr}`B7%L^GD;QA]`Ӊ䈞W<ޟ۬mFBm7mŔLT0ĩEh kfardD`Y4 jTLJqI=8ͥlok&aHqx0cvKɤi&4CwɩHl; ŝeqPMvN)fP7CꚖ IG!_d n/oÀ^jݬXjfynۺNOrkwMSj|:׫rf `GGfݪZ41r3٩sý,iꓓ|rwwwlp|] ~N'}^NO!|s= r~zJjo\wYpʹ^Ic66fZM[ ,j分d֯{̺&opWGTC9\9gd2b ;9FxFYi b%i?a߂LMT:"9dͲ2!zyKQ_1r@UuT ̴JPEDaV})-Raz;G>>8dW19#P0[ތS7;(jN90XC/qYĕ>:M>% H|Pn|PֻnWPE&ZZy@8}+vħZ"(Bw0CL#YH{1mᔚP6\6QG $Sz&Fu-o;632(  (XbĢH#niu}G6&j07a2o=\TϾ~e]AA Rww=|I3݅&K0B*fblx2,P '2UxlGݯ53U\{EjLl6i9Hc5avNSH . 1sYlucn[qEq 5Kv*3HļDȌƼW  8ɪ0˪ \ѭ]8!HJeL "" `H6wty,0|"&IM3Άr6(D0#pztzw8PM`*+x8{#*F/5 T\4vfHWn51Bin3]lh62[ xUUUUEș U*ΑoqhpF3НɁ ܄IMM<$jvqdF#<\joТe1o jD BE !(uYT%9MNiAUU{/~rtxXٰ0\9ʚUa\ZIB03#V<>j"% (S]J &s.8WU;Z`x_ݬ F$drb\()UM{)@i,Y)ѐa\`,=157? l}ݴ&],};4,'oVtVr5TsRu1 g}<w]%OŎNR+v/bO^_^-/߬NٙqssuwǪL*0>vNN *`^/WQy놪!f|ud3IDlVU\. v~~|b1]d۶p,1 )b1{m[@%?x2/__5դe'O~=}4Ï>P߭\W_fi NO3bl9%'?8ϟΚ 5`ƃhoQEna1BDZ~n!'vM+U;b̵"7п_# F鐑!ai)cS5Hh!wr@˧˕^[)12b!e|DβQ^5x2?}2;=ojPrnd&5YSJ]899SΖ$CgCoydZ񴎭$[/460[zWA[ֻ]D$*Xb9 IDATS`,GɹUEc1$RAL~nf;kWM]ւl br7KmWTy 8d.v21È@Hs!9%g f_5f4 >9.fQ:҈/-Ԉ`$j)aH}'s mJ d&$(T{ǵsaZYWuqmEKB*vɦHvƬBឳzPAE16F*N\KzE3ic?l}*9n5Whn4Asii54!֜(Y2Zrwg"j^ P.G5S/s#.0182s *4;/WS`UL/*:=k\3mׯ>t}'5s;{o:{s혘 Q$Gy W|{l/Lf1B/U1`<:(|'h۶߶]M4[1d'f0Hbj>;~t_cB?z;oۻu$qNI6;Hy)iWcw{pン=$zEq1JDƻ zޭ?Uj|oQ 4ټ3Rժ9NyX 'KLjVaN7~} h(;W"(Yԭ.^gφ+PTU<8X<%EG>ndꎎ~=!K͡@g/'Q^ Q[,+?Y4vmھ1g(wD#[7`SJR@9Bp. 2HTsY$fք~A|֤lf=N0<>'ZLqu9@N%d] .n7^篟o_YA̦\|!%L\MNaz*IT%a`JXK PVc1Nۤj76qӧȚ}4Csȹ:蛣m}];"H#<m`dՌyy\Tj1s.y| ?9L؄أ;;FҁrP"mug71luhCV˦Jr## L`a,.~wmPMLCư]tj*޶q]O{O?껗ѣ>=n<&In./77 drjP対mg߽^t"RNK)M&ӳ3YVY~몢j'ًL0\WUyK8vGG _\.ÔfP'|tw^J?g7w_~qv:9綛b1fP?<LJm>y7o/>ɟ04i^|~nwϾ3Eͺs=B!Ei7CUs)EK}XORIdUvS&kps[ "I:k_"9p杘I֔DLNC9߫)Q.7IR)4~!/;!z qPs+ގi1?yTO*829+7B]V˸\}a>w+BE9 A4)h̒sQV|z~vruY?xo_^w, 4WiRv7UBuwޜMf[yL'I':<;<^-cCャg?no.oNO/o^_޼x|P՗_~ ]'ϟcfNjXSҔ7_ǔ!a>omSsS_^^N ;!*;>3"wk&z:'貮*fvΪ 2~25}{_}jnݭǿ;?[v'8ѣͦ|}-YCU/^_ aUNoz!iD,3fI}vy\Ɉ$jT׎/eIQC$JF R0G g)dHUif@u)Y2 pyd"[0r#NrLqnSKV w.v5fU5I}3s \YÁCvnoY7Og^iS41 4s>Fe @wZe/ c?Ad UPֻn.JPq`&+( y3z[@=O'M7?P5w)kקm^qq)_|)70e aU3b!+gFJ賶m>r2-##6}P2;vatB seDZ'^lWXPtZgŴn]بڤ`$Hm pN<"Q) Q؉RV"Ð>(yP+ʢT Ȏ@*g&eߪHb̲7= " gwZ1%&T `Ck *E% *T Rc+~D#FVڨdqF.l &lMT|z>9wgǺfΡ!?kPk"(,Yn%`땻՗/W_'8L"T͠}J]UO9D,GEbND:~ȥbcʑw Ef511BBrȂ< $0!Q_cD@T%Hژ;x;lrz㨪}e*])hǏ.6L%ݮNs^.qZlK6U|_ruȺV?|ɫg0T77HV*r>i]|ՓI78月s֙h5}7]Pd\^]i>IX8'@|^Ռe9CHT%<=.D`HF0#P Cd" !iΪ,{CP˭恜c)ȇdhVL  s3}F %0Q4v!hAXlC(0P=;<::wU |wד];M>}񪷤ٶo9>=;瘇lII4ֳ`盛nQNSCӜId $!1؏y1̹@`2Sɘ]JUdB&Fl9Y #tdH u@ (9U``K".:Z)R,R's'P\!삕vBL4"&c6!b򹴬 G"waNڭM&fhq%11:uLf"PxʹwDC]n[b.;(y֛A(]}KXv-+WjQF3fnujyCU'Wۯ+8eL5-'Vr ggF9GbKrj_W7X`B&-onuudQ$m;ۦVW u1YTl>ͦͤ  VRG=b0 myW G&"9Ɯ鎥kN[rHR3UɮkǮ\\mb&xR&]JlQ\, Ps"AɸT=v4&f?ZʧQW U͹J0j9,ÐS%%}1 C[;FȔ-È ʹuȲǕ&|‹R!J~Vɢh0& 3f-APNj2TkP9ǁHGt^崂`G %i" "P!3 %̒)&QII5_2wF*,B8N_qDV7˘ `@TSB -ߋQsr Jc}/xs7K眳sBr5;0qyq*pcwt;Vw~{p߮Mg:Kӽny{ ~$ۛvܬW{i L3w=YO\3^jS&F$% IDATιwW/V'~8G>}t_ݝʙOv}mfḟzXGpxU3=ަUMjiHyMr&0q%x{ˎ, 6>H2$s) -h%@jC^(Td ӛ`f->'$Unp`8ڱ~jLsvFsoY6ݝ9;:&iMLkHX"DA@P T-jY* ZbdDuD5(HY]LT HQLńF˝$!*5 36eTM$ \j"YۥMu~S%}}36<#nFJ13Aw `Z^PS)#B}3+j,P  @ ?!ɼܿ/}zXHH:icGԴzG%랡R 8:- `Еl(;wcS`N^033 xr`Ȭ}.C`C1Ca'rmWGb{%eƮ;y6vqbՃ|)rk* Jum f8ViuV䔋O4C'TU;Cj!*"Թe2Wׄp:!9"bB&tŎTVA`$$u>g8LUVEC_ff*E$g")*RNc)KI9CS5\UW9[M[Bb~D CPDPc"^$ JHZ@*ojT $͠h=Nzkk~Z:O !+8_7?of !#N" 50@aӉ%VԤ{rt֝d(5U63D(5;\Vmf ZԦئ X1R  q ݑEjA8999cSrh2)dnxb>?k?X۪cZDr֜rN&\ޏ'T`f?uUx:9αFOVYTat/, 'cZJbQ 4(US1~) b"Vv3riDZ rV63ܞP? eT)B U(` d4͂J`vݸ&Ȉtu-UDDfW` 2LT&%MǮbHutf^||?OepVTbQT&-IKoajD4c@`F]CM<|hNF: LXh$bB3DF&$,(]Q0+umJ6g]\tggGgts{zkB( E!BR[Av4wX";/gRUXCnAQx|vc|p}G˙joz'?a^}<#6zvgG?{x3k4%RJߍ0Ā'iCYvVգ#||~u #O>yTL2tWų'Odؤvh`wߦ'ώI>/=>:=Y6vsvz/?\8YaujS/>Ul;Vّ4 hA1@Oqn[NR|D'D!ZWklkJlP&1 Tދi%:O `0cQȒ)&ށg?@!:tUPybXClW=1R|L~&bV@$2Q pfTTCDqм \ o>$z%f}WݫD9@`c"RBft͛|( 8eazXa=LPS B= z LH2bRqxs >' ׀1 w NT!h;D8CjF!+=zo:s $`IW;Y5Md *ܬm‚ۅk;fV5 &D3 'xBД,hsS"b]E*8e߷~ tEbff.b.:ftsp}M]@P 'HCO%QJuP)o"bJǡKv]'AĠE@FIYGhJrpfνxPQc.8 d 2$( J- 4`:*nt[VX2 T;7k(8d.?z~z?zKJ/}&uDE0+ (: NDRVH!!sX@$F S#Dr8 ʦYD$k̉i"TQ2ƒu~BИ)^GGPqU_+@5&j*&jhbs1Mq8=}v7}77ik]zM(m);1 ]&'ӜHz[,g]__ǡ ؝d"e\^,7}|'~v}].f>ܽ,b1C)?Ge(_'sﰉxq8}mm\d͛7wwMSbi(jb)' zHhut|ۿX/nG6خ=%"00P1Գ0(fU͢E _O{L}jJS%|0U\r(F(Q.7F%pw=~{."Q6%؍8( @Q LjZ)81}h&( IW 2|WDpm[QGa@ghF a$ʎԓy)+EDL̩bO3*ہreE$aHnwۖ4:>1SO4FXJz v <.ATfXfGa8s.9g$ i&6w1"ʅ S>OZ":AOD?* a=G:xLz&XR:Ѭ2 zi(j-o Iw{[ols;sǁT"P,*"E8R:C(  P J)6 u2$BZdKcvPԴiۦ {*UM鐅:w0,Q4 Sr(3Sђ%ǜ\½DhfJPyR?:(l?1P'(<TDHpd΃4J"Eq CDN1dEE5El4/)aao6z۔2 XDhSUdRT0 5s,v3w|,9P~,3S"XDǡ iR2G4OuU\T tpHFg9xs$ @;1宗J"Ea>K I׍XqDӆJMbxʐMVrRȆPGb6rt%s*(+0˧5˥DPwӑ †s.SDF`RhD TC)O0F,>9m>yO rpw[Lܮ1e3Ԛ3P1J@B VeBd;TSKt(n@7fB\,fMf+k 1Pp{{'!Mm؍Coi+!RΏCpj52Ohr{w=}2ƛ뵉j&ի˛x1sži*;&KG%7]YQַ׿t1[tY_7O_o:|ӳ~_~u4 \ԟr{G-04B̋|ӏq PjS* G*^7w7ʇt7vfǫ71(}ѻfV1,=7 Rpl',ؽSG[: 6n"1PЂR䦔A},0/0'sѷrކ`~\A3u.T DL@cђRqC m]PӭOxРzX:q"[*T T26_QJI6( \7ꫫtj.`.bA03%TlEnkqz PRJ]׍c6=H p9cyUbeEI:v}.6lffR1WgAИs0&w&o{jR?MLzD艜CvTJyTH>x9x2։%עtLd5 ̫zN淃ϩd %eDs}4~vcsNPVAu"~$3BUSP 1~,>>ãaP eaYG ,}g9(oG^ 6BQ *N\uU| IDAT@E(#l=/矜' A[YZDU6#= y^UlTiÙM@@EUKCR@Svx}\ fmlN6݇vp(Ɨ7wAb(x=^.=dl9^-W_~n9ҀB2.l5&ޖc򭵋v6xX.bnٖ9rӍc̆FdE&3) hxKl蛈]y}7ࣞ=Fd!M (1T407B E7گWi7Ŧ``Fj͢XPsz;xs_0~͵V2tyݿᓓ2`JR(ʽkvbcJG!Hԡ`yLv/L_SX@K#d9YΚld} 37I4k /|h8Onֆ6c1gvD<9G@ <!*KӟQxg&ֿ'0+:& &mJM"W 8Ywn8l<0S%Rб;=_Y"cA |™ I)uC}/"@ӎbi!HL5L:Ď']rv%:_hlw\P+D#C= {}dyS:4j&j"D`c_e(sU$q TD`3)mqwt9>0u$#|L:K|ݮ/yc*)2zq٦n,IE&M=#,`0E‰L@1Ae,6Kx|6+Y8r2+bf@SE!4F,ha4#(;/!RQfRq3)kf ;f2fbF<998`GmWb#E$l;7˫]} YCti3fѓd塀e@4A6a…&"fIcJ1yᧇJݫ*cM dӕ# yУI:TC $TmOt' n}I}Kv@6_a1Lfd5ŴS%DfE`0$%To&ZX3h "G:m(]1e㏞_޺ sv{v<~J( %NjӕB^}wbm/lԛtgg |}]zt59#ʎ @7ScW܌}s;ỿ+/_m͇a{w~ކǫg mo|2?C*yǛz;UwsZxzs8_-Vo^]nw9.<{wsz:?;7y\.֝MzGR,g9O 84iMe?\نƜKTJrӄ?RG{"9Y 0g8kh A@"H a5"dx]\>c=ybfdhHDcjRHVXm4=d!El i1[oŬ6ҹyv% UKGE8ӣfpG3:= hBs64ҴAɨБ1+A>\ 2U$#4Zx`nR{+llCPC6c4fc`FnBGn1z_EWaVRjĂLLi6Ȁʧk bʹy$%it' PG <=\b4k߽~ݫv<51]Rln`M_`ٰZ^awꎐ<[N_y/#7dxs[ìG.ne̞?? aGY >/V_ )nwZ/~n}cJ囯mۯ~7W~˾La`8Z-NN$}嵡}I|[).N?|ޅf#e+]/{v] s7oGa (]E -[tcL"io#r2db i@ x$ѣdašA!$CRP{8O'6p8QᣵR^_+lșDDy7G`%F_ئϯ߿~OgO=kO$I"[}yC8lNqCuBw`T @ 6)LEA Lͧnooo?OӧN Bӆe]d`VxWt ꄈ]8瘈Ba,JI'[7&ֿTๆF'ʉd\-DXQ=Ypb1x qdz抶1qHg[:9 vՙAq}Go.woōF E&D0% V|UCIRbH1Т&Ŷ޳C眂!s· ɃsL9sΩSe5#LAQP  '#QՒr ,DP5)ZOHutuczV'%nS!Nռ"('rh0tP P3AHguv]uZ7`ã9~z_OgP$<ޛ=u9Ttf HpD]˲׎orkI5єHq1yk쇵DnGP +3} 0 kCy u:z@`:?x+ FRE udو oG^a@( R-ʙ}Xjm2*$PxJJ kk_<_.w7_\ɇ;!DnrqP" a{D2- CU f\̮OҾb_m">۳OG刃+=BET ZesBMٹDr =BZ\}d7Hx:xz{ޞ༩d+3=")QP9w(C xLacPUCf[鴋MPRVP sp;멄PfƘ)%M*vpYƾwO)@΢ 옇gH,BhؼANLA6P ̅'_<@ p !^]kf--Iv`8 pp 0#*Ў*hߧ!j"z(NF Aa2s$XV#_/_`ve  68*E˅ :D<.yb աp>_W)mm<;;{9^\]Ghnsˮ^xT{0b9~YU%4NW =?cZWdg߽ǣb}|x4W18QoJ"Uj4^_!~j2?xWWo>ާO?p55$Yd7}~$ՁGy.g(*` Dbg U whއ<`tcfRQv!01a`,,bMtha6[*@0d8;)3TmruY7YX&o[P"XUcEX [nu}__|_.LJ?Mʪ1k e"%,K7[绖vj1>-]7n?˥Aú/=Ͼ>xxگֽf16m3(8rn~ۏ>0\B*(} ~p4? y{ޞw*CV D%%!0&W:/g}d/N z .+댐K1D 4nPɆ]^,N P$etinn  H*8sUՖU]T6O.~U< !x;y֎ekncOhHJAwTbGHl;UP D Mu bULt_i1)Kܴp~./r)}  t=xLAYP҆dʶC&QLL=Ý}|p'fVoJ',p5{yb(E.7uMJ2pw2&TbbvǓq=iQ*}`bvv>7"ۀ!%͵NHvٕ9<;rQCYppH(˲,KMz8;'L{ìU1eτ(j9YV͢YE=bgʧ &dЁk CPwa>\q58;ցfTQSUmۭWҵ !{T tA6ɐ{h,@AP-C֛y Uy#,O|qw %hNA{֊a{_}'>W鴸i՚G!]VU3#A^#QO>/g~l2+;]\&d1墨ye.< pE@lbbH4*aDp7c4$F#ΏG V\ųU{3mf#6%Kl\)Qi vvn.~}N8IUdVlyK1-.1 !F;{PP TRMkoj;wawYuo11//ǟ{VM*_lT19"&$b""ށL`bEd IDAT2ȰIm=oޕtGvuveUȇɃw8v%Pl Q %jUʀY5!;𤐶5pȋеV@ @pFU ͐c;#d!Hg7UQ5n=kŽc/ʪN lV(|`TAbh_ptTbؔ4-]U(lBejYR]v~~p7"*}$ZgB $%vP53 %Ḍ:6C Yl\}|r?3>L\!X8$G## lY-ej`ӻ-]-jMN TL6"DM2{_l0U(u(4`MUn. ;cͻwL=Zr/tDl$I<+-{Ga{MN:}osԑ.z.uLISҌ@b+0g|@%:8lצG019fEr#W*p@M3+" hۭiѾg3HoL x\Y6QL#lllg Ibs+ (.N=B &m`..q~j?_r(Qm& % v0&Lƚz5_.:w0ziͯϯEWW 4; ;eM񳏯˳;erݮRP V^\߿ߟV-Xvfl:}ݫMiZGw4vUcLr7oömV D >OGn}qфqQ#7Kh뺴_GWzL&ޝ=@X앙S73Irx\VT95Y쇁nZv,0jb"Qgtyt3:oSq_\^^\_W2o~￙>ݓGwѳ):٘w08ļg<‘n;E7 @z[A=o]A%53~Hlޅ2/ <9oG̲ rʬMz dEFbLLX"P tt3=x1]͚ncaHm_\b *hDu]fdBBSYJYI[fԏ'ukr|Q !Px  y$2UYA0r4-xTsAk Ŷ.YȚMZH l竄-aL@2L&pySrT$}~&@FSd2N4 XByuՁ"2YJFV *'vñBWY)d,`8!X4D%UȒۤۤ7[:vN+=$*5%B"6x9Qw098'մ(9'( F ԹDkض9jIYUӢE!傜)Lz[!qR_>p7?:,%¬cSDl9e@uTM3"+!01 ؟*&pC5=+!nDC*(j%pA#f0U<;ޥ Aآi2> xLl-D-Ƭ)[_񃻼Zg<I__7$t~y}=~&[λw7^q\Oo{)dzɉگIˋtT>VՖy7)%UPXGކØ6/Mi.ݩiǢĻǣݢ;0/ -$,*ڠkEKQlDDI 9k 0DsUPuJEY6&"TLtSUyvGc0B8fQûEL޴|svv)7a7QW͗>->ywQyX٬-D՘P2YBrX=BH&IGiXz՞_wJX&py%jHWpvwv_]~jNW½w=;DV @(Pqh[ 0ya69ɀE}S5[='<'D 2!v313{bvvV>D&b9kYd}[>ƶm7Y}c2316E"6U5l*0TLv8*"0(csO5JwY9olT Ki1(x캦)KK5H\T$!Y\W>-1 I$8b*Fa4 [($w$ӈ ̠M`!єrTp:6BPzQ\n, bR^eG#ĽJ51fh3 s &朐RUج3;K 1{G>WP>b-.//kѮعIv8Z8&t<fU9*BI<ogCHF 602 6MTxcsЍq6*hy؋ :=z%U!(H6U3r\8  7yOރc@R4i,2~+mFm7;g H3 YKBXmPp F|sPVϨ:q ZPu<3ft (vo']3x}\Zdmd\W>,h׬U3hUY-uUQY3|WtZMhUT7Z6iYr,xܷX9Z-6-,.[JYHʨ%!D\g߈ɇサGQ^,`o/AݭR&O^B(7StuGO~K_bfG}7?[Wd-V!vsfC@DWxyvQֳr2]o={s^__J޻ß~Z}:53 `$F޹a͒yQ7Ml@2H%IDM֥a.yt{!P@(.y:.2}r/㲅 fx~~޻_Ʉ$xZidӐR!6b//joW*p^eюk03Fsd B!`|d'ng/Y͗:}}p099?ܛN&#.D88 phn`b&yx[?{x{;z{ޞϽ]z[Hj*";1%0%ƔHQmv6}̌;Gw$,eݾi [03jc *^nåtQ] ,8Qd( iJ$Чm}bŽT 5ԋ6#йšUQ5J0e;L}jQfbLh6kh" Xp` )C©,IHJΐ0҃Zq7=Mt3*L _`XygB]˦Tb21' Z8)`A"4 >s8MI!`2 :gH lrx4?NǣIjwJjfPx&9.yަWr0KXC*v8T4;"$Dh7C^cziVPowWal.a1@J֔sƶ6$D,clۮ{UsΡFFߔc @ݍO8uaαs4 v3(U9yOCoDڭl}7"8r [[iۤP. D4B-%wDƁWs@f<9aя{I"sƹ4-`ơDB1bݝߴgWz - Y eHnzk#0( WEDeLÝ}x!{⧁PI|m7}@Ƀ$| \ -KSM gu0}*<6CF#eD2jKYA!!Bڕ@4lUq*l2۟NƣI]Ԟ='6y[D*DóH 1ƶp6oۮܴQUCYybg0$QWwv݃:7d!Рj2Ȓb$=dQIap.x w@  JHLVcݿ%P H^ 儒5k6ځ7;PLs6qv. H%  01&AްzJݝBfCH ɠ7l }^w֚ azs01kW4 %ե,tǡtmi PRLmKeN*պf1KәoB2lk9i[횴o䝣y_W ;O='?DuOU/r|'Gw?O>{GKߝ~gLF.Vw/^>Bot K~su,ȡ/PbVY]쑡zQΓ߻_tNYo`I;;G?̦ƋZ7ƪf Ĕ@bb;+ nPA G&W%Rfeತj{p~ mg & Dp<hjI 3Үz^) :ua5p0hvQQQuha*^_f/֛e`Ӧ_<^#}9GJ :K^7ËWpsn0 \+Rq9T$F 1C5fwSLFE5M'Gwz6}6] HHv}4nR:mjRQ)=''}"ҰdÍ yϦ&^DSo( {Q)If>(k i:av]nj  ol}%dXxLh.Q(&H'z|0Mj$ΩPz;.GDS¬!AWuOaS# 3U0 H(4KU,d)Azc Z- [!2:ELdM}&@P6 ՉfN[2#YJy*VCdN{A%VWȏ}x o{="E7`ZϦ{bpzvٕ2G8Is Rƥ28yw9ofݛ8<=ZH^5K("busuZK 3ˋ[Wl_ƒuwgf^ΦZPN>w_|wǓq>xwK(W{m2rgtNmi!9_EQMܬ".f4oȐCA{5U[?m=oϿyD~-m:B@E3,}[fODfs}9TL@o6Qw5 P3 ]L(o$èq9~1# g"wNQUj6*@pΙ"*Ky #!p)1GRͦe3_d%vD@ LJ LٔT]nTUe0BYStbuu8i-e=%JY+~b<|6a65$# pj*(h (0@`wa}oǜѭ 2;I5sFEd7/뜣!bBpPd10AUTT^g,)bohJ@m דr<{e=)9i IDAT b?`܎v@|&t{DL6۾\5u]u]`6pS49R<9bAۦR0fCEDVWRKҍ*!f5GEl]i'z,*dB0,fi6l#)`ΔD@BT j"ݕ@`8Pnm|,&ɢ*v`:a`|UJ#T,n;BBLSkM6ʮ 0;Go>v]xU~^&ᨆu i>_sM.ϖCmkWGa|鉏gŦեAmr=Yi7:n{ŏ>~?s}h-0Oao|IR'뗫V^IFPz4*+r}FL 1@LCFJ7{okI=Uu3μ3i A DaRpwnǧ:{ D9U{X+a0D,6"@أRC$5LS}ۣ|HRk*`s/x9Ÿ0IfU ᦪZ;I !&T6Or*6K"Bf< (Co/_6gγ 7 DC>p\̥ΖemFxo9Xv96W1]'Ú7㳋fӧ!HۊRM-9Wݗ g'"C8}:VðZl}`)E^#OԥHBuՊYQ,CmaF 94s%n\{1p$'TZKCb`nI; RbT@ʘ Yш DXz-hy 5JL̮a"v߹B.)ƲNi"**THG/Ǫ3E$P-ևHr9SG\>|n^vD~6 ^v}3!0y O%Wu.81Z_=*ՋN\^D/W~qvun jUT^>s.5HPr}u}|{!_|}\> O_ono./ >;:O^1p~w/Gy|_t$ 1۞'y*yMk̘gJookq8rϗV[ٮ*hzW)U;&fV"3H]2X`œh@V:H8rz|s[^TV#7ӤVC3ػ$YZ@@B,f3dʰ#& 4)}r_᳏G3\˟_/~QՋc8(Fnb1&ERE _v1uzڬ6+1Fb2cew[ Wpf_Rl0Ns_2'v?L)&oB?|WA[ֻ;®}isK,gp|fgg'j)`'"۽Ia֨} "f9%` M;lo}BM͌dͳSmi7B'ȵHb LMb&jT- fe.Vs.z1So\B NbO.Lb0 Q+'^"zYd)yJ쀚g V]Jc|2)wӕPڥ](VcGT4N?bwU ݠMyIoiOc|"]h$f r2VHq|\ hMV0by*)yMM_E8R 2&IHlԺ!# ;SeAlZ-!)Q-(FJɠZ1ijmv4p;q+ VW]|5( 狀}ń Cf 0!jU!I" $>|q>?2|ug__}%܉9fcq*I/lVB8~v|yR뗗ǹX ܻvw/~y}߿)C?Vy3ijze\'z__E4\?G/$tw#/ƽE޳=~yǃ曃in|Nw_[os)y?;v8&Fj: 03ĩCePcZ*yk53k#drԨܫ=J>IB*PM›k v"s6fwQ"Xt,4lNnU3kuV-:U. ]npy>j6lG/r&wwje!u0yRxUwY#VN]p7Z2c]n[g hӌHy8&[[)[L©X6ۂDa"f&Amh9quVwZs7Z`#r"%33-c*Y2Dkr{[m-@e&FCn)׵6B0ȡZ⒳s.H183SdBC}vN|/ڇƎÐ, K@Oz*X S`e&Qu7lOa'[1Γ_ dE+fjj^afC51(N5$ٻ2*,JXwE)Яvݡl;W~9،G~y\VgJ]AǼ:դ.jwzs[y?Xݱ~zeyqɫ-78A]Kuzs9߮AA-;.A RJc1_ Cn e"?[׼ڎc﷑^*{"VR)O1_qSAěy\aCXKS8 XܦYj΂GB脘5TEC*C*#j11ZdIRj 2' W(^2" LijkSJeEfA[,’gnR4}M϶_~oq,GOΆn>nSyv_ajݏKw{+Źjk:U>uW^ǃZFp-TROwfsҗoo Nn2}fǟdy.@<\t;PT[V+BI` WjBE|\s"Qb憾Kn6 պOֿC.yv;yqlJy07QcqKtb`yAp)`,)nc%^ Z)=3Wr~7?Aݮ0[2-8~f`?5Ό[&Us@LIDuۡ=Z?}qfJc։XR9A4OB6ԞM> U x8lsbQ#n"5_ncВ 3uRTp{wxzws{FͅBf oIom;*wz~3z j;9Q{ȶ&"Tai`?YkM{fNy'ԃ%ro{.|'QÎ/SE($FfG%e2sHXC`-bn=OS@N/)VI`*9v.< }}L6E.R0F_ļ}oDf#`wHb&IBN{JPP+QeAż\Ѐ Fu$1 nGĠG'dC |>$|;O|=wb@ 5bi }}"sJcn r؂_ٰX ."842Ms~ )TkB!pB캒s-u]qnnWӆ;CZ]7#ZB ]W+l!"Eqe6&bXoةFc4ffV:93$]C@f uս db0!8 O vPw2rE͆l^nAx #g˦foVm]Dd*w/o滃VtlV???8zXxy'Otp{yϿ.!P\ QՋWn+4*nL9oΟ=}ڽڪRq b SLB׷0w{B7w>T86fiV;&"1ȣG_^~^NkVwur6c|w_i,S~Xp;#M"}|o/>ŗwkxO5Fj~zz_2Bw]P1  s]n Y/$ pll`uڌhA@ aK^P|@h^+syyl-'2?5uAPM(բ$a"7᳏7o>GYxvBo!JFjc2}*S< .;0VRZsY;   Krך3̫[:uu\8F5/K~G*wz'…klZstKBކG lj') hA۵2-l32n{";=ɖN=USm 4pr+DZ U"<%\=۟,$RorNN "Y|",3019QsBWUV,%tHA'?UBcncٕdQh'HMɝl2y,0BnFGX6W(#C\9PӋ=r;,8jD'].J*y*'/ &}UsG8 \h1~m~_|U~KW5n'?*77j=;8a{^~1ɃuQR/{vuZ)KMpY8z\5λ>nxGg+]ԉ@FFAU8Zjnuԧ.v=uDi@AH"P"009~,wΏs2O,b0g H Pii 8)ZpSk,L!f&#lJ<є=+Mܷ} i DWxTc6dչxuZY!D"`B"Jrv"J_:Ο Cy|!J7/-xxr+)AmRs1v8{ryݾ_|uǃ짫 oordn TGLժy1?L(w4n5\>:/6i! u4\uY) QC\nNѥ!Et>rP '/ :Pfj)x$&/4dl88lŰT coZuͣ\%Fa&V'Ur )4 )uL^|+~~;O.=拋ۿzos,m B1&bI4I32oh[mAZUhy/Z#ZLua<̔ y3IoyS u|Ouq[A\4 FTgVRCqjFp*b}Eۤc.Cwޓ镭;Jb\k .L(߰`uj3OSYG~g>] GV~uO6>D.gtKZaEXqew$=g?heyz6^ %I%^@qTt7og__bǻ3Bax gl]C䦧ꢼf/=\ x z!RYcl<݃(X8q;N8l., &>uqCH&P$b37a5sH1 J%υMz 5  pVŦlsIa@HHu Zx^Rz^9Mj{d d gwBD0'SPj!8Zҟ=?_=;+"{;_ܖ(7t~x_77_V/C\ ͱC V V#]]Zy_zgbe\|^qc Bjy.q= ð8u"v tAjU/խݏ;7ISL90!w(|,я%WH&;]OGu<2k'0xNkw?͏??|JpT,UݠrNVE ӮCaW;uJ$IC|OC]QXtZo]_)` ɥ9C cו2<2j%cQ՝U9WP2;KV@s0PpJĂ-L )ǃeEp "U6&skX"5X9E88%\A `nD 'U/Y<=uw`X t2ΎxX^OSF"!W28Ƣ{3>GϺٶt&t@9|'v~6g|s<9ᄐN 3Q*bm@e4WM1D)&Tc}/vW;(a-u$ΣRu?^>kS:֪NTl]wwyKOe}W],wc&!ɲתV9ߎqԋmgaSi:K(֒"AM0SnBWWKsqXyU:ùwHU0ŃzZub'!DaY#oVKUrT9#y B0ӳgWhtK-4M+jtIRCD֐hTřՃS(Dщɼ`+grLꦰt9## %!ao5׼%QUj=QrJӼFjͪlsE%Gچ~۾A (6TWչXu6V#692ª], ΊNi @s: sޓpuGW?<ܼ^uœ~u|8_\'A~P &b7QJl^ m.6uֹګWuJ{?y0$y-q6tr֮cq=Hxuoo7gێ\ba1k7a>_;luGǗ qLHm WQ(6 %y|}]7|/{qS`]qEU$\zB$BྋGQ=Wh<#׬h!P$[{GGN+ D&d脪j1ZDJpo&sb5S|i E؛;$r$s!4~ŧ.:񛻽M*>5c0ko\X?1 0N9C909OW|<~sGJL׫E WweeLJ0CwG0cq^BMܦ %ggD<@VFyZjKGUpib:$}Gπ[L!ATQ:MnE'bDk{z~~II:&(66{pd)___C&^*U5Иz!}6lX u)%xOv),)3ЈN8Mh, t1ZtӀCG{SϖGTJL_nۅ.DנFH"sr,ݡ pƃ4kdn^IBQ mY!sL$f0A T e ٲBB $]<{(Dر@@~BDmw'7QWBCL!,},=:d }4&@MɌ*\A^"I+Y2"-ܺJZWQ*˜qܸhF (8#Lq%CY=2CP@Z s:q7j&PnG.Vyj X'ڏuC1f>J^c_ FnV&N"́ P6J.=N֛֛lXma]V^~$*@!k؏fJ )rb . ?x\䚳 nypgD8,`bR1qqHJm|7C  a+)q3,2Q'J[ɕ.h%C8yZrc~$Ak-fc#a6"5PZ<++xIpԪn}"tBO23 d*5ʑYlGrϟF? =_7E,1 3n>F 1gӄH yJzR*eKq._nǏHp8&9c>b }YJ?hD'ΫmB!ġO^8UX,|{}0ozh)u*TKM$ A;y$*RDchf*}qeQ0*"w!<"INR.jeR=Ofֹjvp%myEȐl1{H<:)E&'}XJU?eY' 2\-m%LDBmaX;qv];S2 +3 e>xۯ?/^͇mɟw]h=(b3T~Gs[+;LS{zTs CD0Ӣeq.!9J!-K[ҴZJ)j*Z2߰9F[zwԻn[?@F!p,81HH$8jvn68M ԋN۔HnJj OAZFXtp7:w锩~/_ 8񲱶`EsosF;uӲ "''7v Wwr'!KU̩ ê#G|^m@CL4!# p2jSȐ@@x'qĬhPLw!Vʪ+VDcQ8N{ }$؅Q YU*t~_ѵr 0G:Óp{UXvo4;d\oׯ/p}d Ub(SK%vr~R Mê뇔- foXƎ8V6o9;E kVA[ Dnɦ/OyJ &DhjpJ~2 $01)pQ\<~QKjHCއ40#hDfA^|": w幝79'4:}yz: _ߝ.I0-! ǣ+"0S]tVj^j)fN?X˱p<=РV- 5'y( p5E>M틯y^5az""z)oG/B.VMnWq\^Lfn-pᐁHe&wL1XA1!a,L ޙ5D3U(pJQ<u"Z (uTX<A9x ĄͩxMCoe5rv u$oOt,]vCp"?W()!On~c]emVe VC8~ۧ|ꖍ}wy 1{0y%;Vo o<ϥdDބLQ$&5UJ] C V\q?VPq=߻Dnr]Y|Q*" B`=щng,H{Js0hj QB`vg"!ݔ!ƀ8o7?$wxX/\g-{-WE\ݎdc8ALdj.=Ӿ5m'pNs9GnVIHZSanZfzrh)Ԛ% H Ԇ;FI!J`)p*OE퟾?ϥ/qh]'گ^ K` !!1!$7}Laڍ4Sc13cS:°>^(/:`l nnK  !xͲ6͘k9]b8 ƉC"؈<1HI*[ra8\MH ݽ=j[ 5((c7vs ؘM׉$Y~k_%QY/e\LÁO,}1"@Hpg4eqnbDH"9<=k} 0AZkq?yb$f_(L֫fv%`CʼA/ 8 q~?%|5|Z<|_98 ZkKI\.}.r8N,1}9 xi(ySkf08>}/ݽ*]߼[b'Ih#Q3XlaLW_} @ѹOY)0ƑG|jdR4ܟϲz1 /?Η%)P[7B#!ۘ6j[>+& 1Y5#j=̎\E˥,ZfBxb lbcȦŭ[ uM+| >AAf}]J `sݾMgm[*KFUptᣧHٔ1wӇ/ڑS Y$ ڞ,s< iCN26~i{d=#Wpk ͋W6*>vi˼??mY8 #SȍRhu13sc51Kqӵ Uӵy=.tYRsy@L)׊"T"cgY*]_efLm %8 1,yH4 0N0CRJaqi6P6[`P ݞQNcȼ<7>a,, IK wd; u^תEv_|v.ZȞjkw}->a g]'e [V[):՜`U3;!zYeW7 |]@0++ITlKAH ) RZHmo֯vIEhUkQ@sKkyn?ݥ)̬!ysr8 m'~s! d`_`ǤVYw7O}O crܿ;GC /nږZ'{\q=VP!f*z~ S e#3՛iO&Xj]PW9]y6]UU%AZ!qU>!hk;=8z[a~k~Q(Sy,sv) A"KEya8} O!ՁEľ}.qf+ݗ7뻓^.+^<hԔq"4uXL~})|"fYK9KSaÐd"N%ȹ}}iL(YMvy;>h;y+F[ږ^0uto!WPJh6dKZJ;ib73VA܇PGi6W=׺VBw=,檺yHpOģ9_ח4C*"6ȹsYtۻOK{@]p0EDmX,83eIjYFk7SV_Ah*O}=7= 9`J):EzY\T1Vgw.nw_.DWĭh 7l.^!1ɞ0/cB,z aϞ47慨q<Rg|[w>>o?~qzod[jsw$Yét>VZX6Vfsw-Mժܫj3=P[qdQ2sm5 aKR0u xb<=3+QC$+Iȕ9>I!dJ]ߚ8Oxؾ>~닊" )&NIzFCqӺo:<v ^ lܣ@RNi\ؚ 8nRZ[E[yOE.ⱂz\q=.@)~ظsiD",}OTZXUMݣs+/{Q?Pɷi 4tHBWu`aEɮPzh@BK`L70~&DMp´%ILTA(QA!@_ڗoq\pQYII̼A;4 OSAAsYH!k10 TεC!l%F%G 1s{0L|ۯֹQ ^zu16*˓O?VuS֯@TDž7Xq.F`fU='#7_{5\A5__V=v)%0QXRV9Ĵ}H~X{v{9 [L,}}r%x|,eI1)pT_W}\Aҋ/S-k.\7k*Y "ѣ=V/˂$`]χÓ'F>y:ml7nCO+O_?.?z/޿[_@ N*C`ނэF{yͯckzu 6H'ʩ<_6,6WV[3u0)p-ΚaDy8rVh0opq@@`;* 5=3HcH9LQI` -EtLG ?;y.IJj<鯞)008RH֕ )fJ6w(KHW'"3WVVV-E{NC^ߢJ=_+䊑CP6 &2m}U2f5wz/B>BLDַUk'mP]Ufuywk̜zr-CAHG.l٠]frEZO|%w$y4 S YRd""HB1QLj@cۨ6/?1?umoWo <=4R JbԮBVPc5o=wc]Rz\gi1(:pZlÇwGeVu帜|Y/MȻGר=E/,ARnƴ4w/_-yY|SłPCEA"Rc @C1abaHyÐR1@(<H+Z_+m2vv t?FǨuדF$fa"gff+ L)088XLr`!<؝}~YRQ=8]}ݡ ?-qK{*ԜQݏeYn}&> _NG+Y55Hک kurHsj`wyCp;~~x}U[Ցvk,Ϟ~MNj``A1t^jD!/M8u.\fc#묦;<DKsRmf !Iu\wS5!4vniz`?(<|yʻT;~{듧{I*(b]IRKHzK@Nd!z h HqwWr3@!$& dFfa:Rl.f) =\ 1q$܅==^D3ZSHHāE]rEW± K bDͪkp?-g_`~3;X6tf?sÔ\D)HqUL!:77Y M4+JZˏzYz\q=TPI:{ÇUw!mMn歳e):<կM[_?|?!&f܍L;40Ckl,b3WVmeQC@ reT{00gd-$ 99yb3Q^ U+۹</kvY1,xl. Lu:͡i؂q:HܕٕͥWoz̜M  #u N8QB#ERe\rzZme6BE4 ֵ~ӆjT_]=y qHCv!1e!R(!0meIa1rJ1B9fH a$ֻF|oRk^|.VY[voYaWDpXs昣qU;w8Y#]eqFkW]{m&}\y,Z\0Hi^f-j50DJ) lMSq%#)X,ԟvw'f"v0H!,npC'b`B8\RJ;^/?u~ŪH!^7V"Dc˸o|C.@a3ayȖ W|:^wr/ǥ, JrbT0i;T]R%8ļKyaw8 t B^uV컫*w=d顲^=TPaù:d{CYgW25b0תؗ*wia p#9CLyH9،Z7q#y0$e4}pw/4ŷc Z`dC9AAN,@ U{ӺVW+ nd܍/v}G:N%V9E0- fFj wGS_^r^K]Vʖ7 q׻:0Qz\ *yC[>ҡNfS!Wya7&Zg†Bb{O쟆:Ь3$rVjm!4rv\qZZ luV4 V)N5xؕpw! 9i^u4Zr:.z:.,MmUQ34w jN9,qH8q)L4 1K(,Z!gfP]aDN!f $)۠z[nGӃW4pVMeI7`ZZ:5ՋkԿ$zk2SAbFL3R0%".4 >2?e,fs+g"΅Ȕ\@.$Ff0)FxT-D;qf{}pYBfXU׵6Wn@LƈivW˫;4Bs0[[r OGW+f< 0&8H 3ūS#[n숑C#TU$v ϋ.TcᰏZۥi4x)0bmnHߜ>l/!}(U!jo1Dq&+|9dL<$vJ~~n\ߟOpðؕ817P0BS41޽OO&z*|/rUٳoȴ#X #d.4z+}{ %=d_tF z5ML-bGS~O33h$uU#ޥ3:ju' s H]Њ*ll]/e|uWCĘi&VMM;r <'E8LU0)ywx"]˗i$A ׮aoh'"brb7Rw1;\Ĺ`7Eu"țתږs]mAS=VPq=77;6}3Q~󞐣08|bJvG%lq;uݸpcgl D$- arb9c{,s͹|]=kgyaln$4qCKm[.olw 8(3H-80ȳlU 3q*Z C6_CzdWEU @ fa{EOTsU;mn+3KIBG.rkmD!c( "i Hp7(0S:FJ͐ܤiÀ@-JVJ4RHI\`nDX 9*l7w?ٯ]럎>shm =dqߏ܉]֜A(0 j^;)7`OҖeYָw1r_9w]4>zz\T 2s? 竏ɺJ'#^bhf̡_.Z֥垧dX6]HQḆ/ě,,*&ViY1Uu}P-m-4m 1 Tqi]oF"jV7F'o54Eñл=݂R!/J͜{1`BnxÅKn\/̖FPzR[SS`7^urxcЏ,1R i!n~I(1)g admdI fRUZZJUU'!qc bac;C CߍOɜa$qy+ɘ JھAԼ[$mBͣp'6];yEy`C%𧟧OvkԓHݎ1LNjf A0J=\xU[W7y0HH)"Qin"Dslǹ΅>m+59s-jc7rny]1U9"7~&tjYjCA `"l- jf7'΀)D3rDw ^\5VV;ͫY`ΧsQ,I IDAT7?|Η%,&)a͑Zu}勛}7~}/_PJ8ljkCZeS?>޼ko_ܹ+W?7W{}^k IF18pV/9u< L@~ ׀ ;[L" @kic#Ǧݍ ؅ .N$v&u >$]JŘL jZ]:j1Nc4i.n¸C ` z.x~o"bZm`hdNrisۺhkN]6鱂z\qZQ#! }~d33}4҇ګz0fע죇f'vriwkF.sc!!20L'Bxq ƭriX@R-K]m!؈F`~v!(1C1CKtnt9;ȭ֊y^ ]A L#n`ڋ5wOZQ!.oR~y^닟*P+*Aw PW|^r~ԼeZgp߮U 7_uo( 8,sy }nn>48 !m Zպu˲,˺,,V#8&B!`4/x]3J2z|(qw`mAi=0ﭿIlJaLdN !cJM(W1"tKIÜ_>y{a7j߆jM ײdW{8"3 @)TuUtwqhAO@ 4hcnV(DVk;/֎.-+`H-\nFbJugrArk*"eH5:abZyiYCu:,RH#MϪQ]8x'TFZPEwwLVZW}uZ?;LZĜ[v t<!Dđ8煎%uR )  k݁ޭxsx5ںHkQ+I_x^|7!䎬!M_1gd|O@v?9?}FGfx?>|Q>og?N}_5j9z*|~b]P׈ 5QL"Ś R"!A?pc8 dNSi!A6|LHj r "pnF) $Ą9sEgO Ȁ EWwc-0pbG1@"(kKUqK0: 6Q!R//~9z <N#VQ{OU.x9-uvyI70h,ԈkˢXݫ~ǵp3m%M(s1k)4o;y{qKaH`{L__^?U/~swa70ohڏ7n >M/y6\08R̒wqwn?Ĕﻜc1G@bSh)Zk=K"dD96!CB<]rr1 dW_f_fgL+锑QLojjS(JPBf *jA0h3"<N3O+➞~ S"mlV!,Y-ܬepUc]ke-K63R8d_4+6/!AvWpWicߧи{"A"1Z w6Rt]k).ey^q|>OӴJk&֦ ћ\zV`6"_(Z9LD !  hB˦6ɕ[ ?,f#!>|[ Q45ozjS8lZDEaPR24Tx07FtK`rp{O~7hJjG]ʻNRB$+UJ>VbIkp259335&98Rtp}j-} F~^'YWHb,! Pl@kHȕ nR~~*@j"'GUKaxbX:Bi ճ6F{{79<٭_'`*:O/i& ?ONPG[J/{wU/ݫu i]]s0Vh!uȒihR{sY=CdfJb !`˪fslOE"imP3"g ġU]@DnFf@bYųbǛ>z} deuO m*rS);a&"@Db Ե U;['{ c%Ԋ™] IXlԾuvZ,eyuHu&MImn*ZUJ&AvO 3B[jJmʬOϗǏ0t)ճ?Gɗ7' / \!c8A|KF@Vmj)&i%~ h| Ds#*($0lgAnNf8Dr'HmzX`\ԟu oxnqoaLM2h#3PLT>}6/&ʟ}_o~cfqA 1¾M.⮜3,NZ21 ~_|NOOOUz H A ̱;f?0_7?h20m&m-3a[17 5QjˬTr:/wwt:Z3uK.K[vPotLP ?@>zok9CsuYC<@pIk}40%`;U77!򰋹1ƔRJ1FIA6 rl-uJm0U-C]UEḆ/a"u}վ O)iS+x%}Ey<Χq}uRWw:9kEUVvrم0XHU_%Vꓦ`N5K5Yj8OW48Xm媲z0H { HBNwukIS r+^ H@J.Ռ6ȢCv=#)s^r/!1ESsy;' LM64ߍx:q]Jhm.`6Y1Zu]lu\4O^NRVUmkv/јyK8_S8A}o;y{65i_s€آ_I}jmEx]\G"²`nl gHdI_m>tSH!0"B-$X[z Yp!J1Um#A!ݮ;\onwCbJ1B;juY4ߟJaR ^*!AR<;R` D}<آ#f(dtV*K2Iy\4k_0. sj`cUZQ2`,t)բu*k]lqA79 $HB^ֲÄIR9u9SEGpD_]\GXz?ݡc?^! =v'xP|'ʮ'Y"Ww|z>`OnupuzڟwB|2=͑Q7U)Ad%#Wcec^֪U+)4W`!^%esZ~?pߵMo  IVINPbnD$9Cn+i>'pYVCӈ&pAi/2_߾:=w{owQץoAh[ tC| B:hϏWOszL-ejǟ|!_/{_@p^RO~O]IkӉ۬XdfV]W]f'e<-O8<x [t#s7'6]GZ=oϟ ;br=mH›`S燆js 7o ڒ%RLs殦f),yC7r1KBh(b`F؂5ĥUD&!繚:!`,on׷!}a'=vU]iM:OVWV#* C05k1V¡K̂b4ֵT&$_ .0PՕLv ĜY+|FPɕȨٮ֊ã u6]܂n pQ+@L2N8[(\$Z})XݪB+j&hRg6u% #݋hOюGIV I?e}p%PƱLҕ|˱nGi)d?x_s.1պB8M/u)W3qP DQfP2fձ9r`LuB)y.17%ٶj5\sPfK`0Chy-FDo!B܂6ɦJqbE[/˲~Ǐ{{|;RE u"f6} FS¹i/j.XVg~ߗwv>N~Jiy~|~:=>[;osoݿ:޽:T>S׼o63&mnKujX)Z6 $%e1gr]W\IZ+^i)|y&?=6=jm53`Mm^Bn%ߊهהG̉ KCJɈ̬j(]}yC DcV]R@3rX8X2PR_ލV8rG~d9FTVoQndJHP"q'bh&UO}!Zj~ 2ejjUKSnP -UJR`LbUZJ5V{N"wp:] Vz '[26սXjIA\Re㛭I pd∐99.8DJUj-4ߝ/WyGc 1;|Vwe2Vu: F Rsscdjnj Ab"fsbNFP7'BfR/K,d:5ÃsH1:vy% !V5&@SSP nÉPtT+;9x B*r!MI&2+]O?~Q]G=>GHy~=>Ү+]{5?רÓ; 5v9,Ǜ﬜gPg0OP\bN`Q'1(OeU.9{ عZ\|~>t7{wWSI v3_Xma@%Q " 4X2""+qobL6# 2gq6s8Ӧ;+#svatwuhó?tJ|>=4 IDAT豭ɝjCJѥش~6?;ߗO? xxu_=zr}gi?},Iw~o_=}_xz˗w3WZWoRHLr'#Wsfjp :9SJjq-0%5XuuwZZTZ0lM+ !견1H3bLݮo;y{U|\`&#n2 j!C!"a\hLf殭h4؜c(u}J)n.g)ކHV1DRv0Qs:/iZ Abݐ?Sg--R GKZ]J_v^~^QZ u`2-D=T3V ZY$bLɠB5&<[5[KZJ53"(CZH1v~S/V"uZLżlK07fFnQ76BeD$IS7ͧ&'uoi98/8WWw4yᄵ`= V.V}?LF!\mz lʋCiZ l"m؛~ PF#XE6c9V[ &]u:]wɇ߿!u>'6 QIXZV"85DŽܹSr09Gfr %F K VWIs4Ok>t9ZVMZŽŹEL]K ue;E!RSG8y Ƣ'fZqB++ 0/Զed:W]+9(KQD4a>Yo%>|ň  Qj!a-=t?w{;Cջ3z>~/~wUU;o;̗B`I]?tȒF UҔ;+G*FvEV\Qަ&&dN1UT]}Ara=!JL9h褏̴)^U@"0*HUDGxgEy0ܕpmgDbu }gB5@t:Ͽ_&R2n-__*]vW]sJ(`1) 1潏or<% #4|ӟWӝGworwxq-_|IXamޒ%q_)D("jj } mSjֲZ[Ֆ@3wٺ˼,osiC߿ޞ=ä %% i6#ff6oQrmd K^ܼD )K]߉($C xU2 .z)`D0b⦴k )UrCvNӼ )nzS.V ȍ) 0xM/x Zf5qDSXͅ&h)W+-sqqguUk#90i5rp õKBOY H0wbHhD?ߴME<9&Z3.SNî CYB&jDrW-Ze:tOe XFJR2/˼RBߢU`Id'߄1FoڸD[>=45¨xP5˖rIqʖo6!.|D qWWCɣawfFڸd"CF`k:W`v #IF:})GuB|SW6yiπM @(s=~uAd̏\x]8:`Bb 7AFP04~~_dD>;IxуDYLu]}V0bHpvffG;]u}.R0YRFw7crAM9V3/ePK@ #p0vF31Ip@H$w2s+#λR͇%]Y/ןً󱒒q8/v7n /Onıؓ/RCaDl|o)<߼;нCoVl]1!0[]d78R(ԬICZۆL7ٹYZJY˪m5 t)w93j]xaG1]yw:ޞ6n~dڶmpp!qLjc!pi7p*pclB %pJEj *mE̐#80C37sZͭS3)7I19#; Ru̔LA̴j-eֲT(uv!>"*ȝiZEqX_Ք}\0:W>y9q;8 K7[ D(D]RSs@XCBN)F1W[MVca\F #Rjf1Al_,RǷ ȑL).dg0hPe^W}xr1fV}rZg@[cZ뺖u-eejecv] bzEl%e+pSKmA6>hYL3}sDi94Tryݏ> «4?Pi.]ۑ$s6$ʪcs}=zLreHE1D̉8dFF5ACrpM,}jnB!9V+${@9"::dA U@X0jPHsA 56ٴ=C␻WUY8g22F,\t*ij+C94$1\țJs1c" @e^{WG1<6;gťVPKN&g]P,.êP4j4U&\DL"L`Tc3@Yb/T]}.}䴚j>>AO:-4\%nP:`̽R0BmCNP&ZÜz1zS%F7 /Zu830ntYeUU30O/Ky~s)B1ID!aG>/^gȹi;}߿Q)MM_KzhM];ĩ@)KGO+#J箻~]YWYL/$uDL ԥUsEsf꽦WWϞ2|Gf?%iv{cZ7v9FF zѓ^ $(L%++3"|[`#ZaH ׯgY1>jZn@":1וog+g!a S%,hӔ+7\eP1(c~вmHE!P * ͚= *Ĵhl,O1#(Iv~xX1w˕'%B2)Nժ[''Є$ Q7ᙏh1Q : xPیu_ףW;-(H2Owu7h]lNܺq)\ X$su}p xbm@VA@{A:3g5r=6|7'yw_}w'b-x!pIGY;zw>rqw!UeiRd_+*Z䓟OG䧿׿S#r.Wv+}ޮ{[V'˺ۺNu'Z *JHGШƩEE7c8(9~O8$`2Wt';ZKQ&d3vh~v3V˛& tޢtQ-8Avx G H$!$xnv>6~TKR"u"̬ʥj5u;fq7G?E;Q:h(KSIBP$DxYRؓb׬{kњz>x>WX]הiDU ݺ[xdr..b]m>#u9uB]&J)Et;ư%qRF$\UM@-/IK X+"2k_-jko3"cS>Qs܎Ddj|vލj~X5jayP,׵OR"NL3I l$.Rn0԰R9mEqdm<;6  A8S)wFa@my\ٍzuueAk#lf]#45/˪Gzo^> O~rS-|o4=o4WLJsM ANS\TN 1S9R2& >+)<כ-Loo&U[omDR9©LRD*t~ ( 0# 'jcyoA>=0%G"❞Gy2O45eb[ܐ3i/P=0ֳw3˰F(/}}6ݫJ)a\N_77o?= ѿݷ=#jxU!IFF͓" ({J3&(#hAw:"0JK7 CDoyL4K3 IDAT97 *v@~>]`"Zʤ,[{,Zrz)g)D mD,r5бws-"bk H3tS;t\Nu9:ji]N˺L$gCsUvLSH ]k*'BU0cW*0 VJp$Q(Gy춡" i"}/,I Ť PSI$ݝITD:I<rs RvNS)E ]w0FՊSy|,~tWv;v9ef]͐8iɜݰ,x<=H)hU.j<<3a ,4Me7T0DT>=U,O>x'_~g_|ëW^g~eexZS[&Fp͵eU"]p8DUD蛻*!h2YezzZT=7 q%J1@f|vjGef3aIdͼVP!"uMTԪ$ DHjM!9 HdWfz{"pDڲN㲜lc|,t>wUM"!TpNRSK /VD, !iTUE+ gӺ&[G{#Wݼ\TnB$BIW^{W>_\]^@]^\HǐOGt}x}\%H p;H PEhǼrUh_r4F'V8;ze4K5[ѫ3c62}-{P], uI(R4I'D/14LZypN@'XLiI֘DzQnI!c%UCٍHaLA$BRDpn<6?.bfF;;223`w|93QX'(`" !MMUCҥuz]}%$`P(ȷ.,䥧H?pZyW*wDz뇻;&Ne"@yLM<="##7MH8 "wŸWyXf֮w,up$EX$-=Ϥ i=zz; 4Oޟ8cD;%ީeG@'0Sdpj$E"RIUi:ZJ)ET݌J(ck,<2Zȑ-8AFk;Lw%7_|\e}8x8-f=D-3щ׵/˲׶N4$9 Hx wCRp eJ%Nb31#`N >60i@Ñaf6"d6X ,(E9B N+U*s$aa),.دsTjiWO WWnwt3UYmF&Ǩ4K <ˡTUZZj)t!;g s1&rO}KH#zTw*6 2>Q_Wޮ?yWrҾHRn)gPE G-r]-ٺ8#)c1y'5Xn=E'kt:W_5^S?qw}|}/X0C:ȷrOUH)zD\vB\rG̑N O4cC)#}VW [b'$wxe`.W-xv ?=,$*4r Đ )AT9у֌"sQW%#,RQϤ7uuRn\Va ZeWNr8Oe9/(23܌u=Χt>Zk*,LE̤lQ T]&8GۼJ}3@G;Bf|kqZ(! 2!6:AJf8*D[TbLP+8$7WKrF ;: DOQh~Vv|-Y|ubtҔ Ygda:h6m* E䚈@KB!2=$4pa[YClA?L ؙ *_ڼ[[6#[8_[B daUfՊ]c!E-(p4yOXJb)X_o/"?͟{~A^\YY+G` TYw}h>jT^O 0 Sqy=u5؈ P"pA?OPOZ['{Z6d͢Yṉ\_~}3M{wru=v77]]|W_|Wwk?}>]]M/ܒU", nd1iG*Cdٲ\"NSZJ!6A:⇨K֣hr Fr%}(NCHq1i~LeɎu JHOD5 =rq>u>y.-jANzY`Vg__N59ɂ@o/>;|8<7 ZnHOk~j- V@ir<.3"!>y̱@dx'ZlBbbOjheab3Cs|ccׄLz>uۛ}K)?'/{^}pokn772ϻ{k+Ghtؑw"&!" -<)I#(ɂŲP_{oKVxr{nr+ݭ7&l'ݡN|lcFپy:m4 &$a[kzKI@w( 0 1x7wq!8//WNgx>{1o^{NpXǶq:aYp8 PE)vf~wh糏樿[4rA2(<֍̜0 bȺ((Xγ|i{8jRJQ"f ˆ0yҥd(8l_Uiwx,D[4ס5&"i+$l\ 3Ý.)0Vw1' 'H ֆqJ\FȄgŨ`ꤾPF`ZL"\ZJiVan&8@'o{_{ojֳO,=K %afkkkڛy TI{+v]8'R&Y(3{±m)A1v7B¢D;k#Ӕ&)᭚"m V3DP"Dd\c55#[m_Wv+AxOwNՙ `V"AY*g&V*P%{7&XKbI +"ьBn|a>ʱሖQγOP:8k;/ȅH8ćc|+d Z~Q%Q #9g즨Ҍ2؉X @ibY(()3f#hͲ;7p7&2DGrQ!hK=9ڵIoᏴJ[.ڂ%ɠ˼Wa\4b,nt>n'S\jޭRjըf4͑gvReVin݃MӔGXxwLWWr^ץRQD0{h"mO}POi=?صm]B}g@QLC<~a.澱Au3wZtv̌œ{tO6*H)Rk6AiRqi Iޜ-l`336p@5anfpKEF\wsa⪓2KٕRUFon2DnƼoNʱ-؋OaB VC;>-ɩZHFnkr$_"OAӡ/@'>\ =,ouQ)5={瞈̓97d0d9RyPK"ea@2SHʤȌ0!QHݳyR˯] a#"bڄ >8Q5!k"r5ѵwqg IDATd&H0)f: J<>\q7m.E#3_l{[yf '#/#5`p < *scVԊ{MBa1Z\y48Ó q;xSx? I!GzOLKov*|iԊ`XpsCS&S`p )fw{&"/t_ϧts ͎p8$XТ^cEQ:SxTv,Jk:Zjje`& =WilX{[#a.LVXA1#K¤BS,<KOB=MPOi=HzFĖʗu:[{mQ$eia \E'`HP<| cvSEjJE0go-1!؆/3ö~YspK_t$I&76I莥ztOPfZ=KYsgW|@{97ͥn"B@st1Q>Y.`"JMj4zEQ32(ʅ*)a,lvx;%<kJq啥/ۯ~_/W:pJD\['%)qy+&D214GҤ(JJ\2%ڵɓSr8gc2hΙsUnċ9DN.BLpH0bF$'2MD-i?{z"%͗J1%-9G YȵC{W.Ûas.\ 4X:e a*B329} Ea$o~$g_薥-x3 B`_4(xE@^.Â,05Q+d"%et_]{M׷݉t'fdI q^%$0yI[z˾>J[Yw)UJx))H-ɝ}X-"(UmhWT>?xonnvnKAE12x"U~okKLѬnۻwsi}9uvk̬mǥެMuP!{Y[̬޽/2&A% Y&% z?l$K ːP\e23"Z~g e=r:}Xk}#k4/Pu/lV׹XSsk)"4Ѧ4t> y=+W8S]5>6"zTL3qO !@NAAM&M;wI@wYkͼCUU%sJIs]3S+q eNFּuY׵XQתVN>]v1 *Lɜk2ǼzHIEmnkKwą|.[Uֶ.OxXy{i/ܢvh*ײʔyҎ@l$&p U*{`j m9z<mExfY'lqɘH{6OfY f,wz0KJǔ0I(,QjFVB͋DHs_CC&!lX/,**C!n$ P8 aಖΚe`FPtw]);Sh.P>t#qZ-W-8©gKiETGE-2XȔYA'3)kdwV0Y]yww|?kXH%䴤ޏ?|~en RnYWz gv!d.PpFâ"@!7Y-a%/AQrkU::"(h`I"YҀ@jFVXa>zC B3D4D&i&a@JG.Do)wgI£4qc7Ua&aVqV)d3KF0('mn %7U͗p;^SS;%QNN@18NjcLpkBp&M nŎyF[PiЁMsIIXqMhBCP4ХaRW/Y?ycez{Dɉ|HSj_;Dq`@A&R0/>On_p3M)zzw>م[ԓ3ͫ&yuX5Նvs 2AbvC0MoFַ_}}>EL&i8jӼܟ9y ,rUyYn7A= $gGĺ)uSY5[kz^7vm4?p*M[+ίhKzC$qJ"*"DAa0nfN)pRQՔJ [;h̐lQܭu]j^Yi%Nj}FRkPK{>)֠T:~0v7ߜy)ucx6ey8-hTnI +{IiG~E[3qDH$&76' 4`Ff D6c=?]a?]][D+""VjY(sbHre$3`nfI"}zT#-~O/"iH/go -PS*{)I}c ‚jN5Ø5HW5S ZRc>_rIX H9\W+Qޗ18"ZfiB7;93TEQKt~XN|eVZ%{gCyxO߻9L?݇BDhbPf=t (f52t 46gnO/]N|.k`ZN;9k?jL9gn~)%h$my}wolD$"Bz^WϠ tGfm14]ķ" [*4!%rR_N Ue&T5HUzE0ͨ(JYCW:bW?y~z ~Èa䜓 sתky-"&įnMyyxxoӺM[Q-mYt*ߟd)::i"RHHFP$NBRy-6/υT|#:j RaaK?8/~>+g'O(` E*nnV`MP"rV3  A`)*jNfdkq4U¨Zk,HtGюo mYL9ڸ 0&ʈlڢXAS9[Ȼ{| >m OW_S9އ2U(1_59y&wN1'9LVEX 3,d&Jcǐ&fQ ElV펶bJIqu56)rT/Xc8w ;ܻyw(65ˏzƢyPbF#WPcKEdks߱ ~Oηk4 3_XO>=.`wЂ.ݭۄRۗ/^v;! 3B_,tA`tMuvGj_hn kV^9yaoyD]H"Vjmm)yw߿}%|Fc+ ZI,˼,< CFp6"*JYUj.͢I_P? =WPy=_seﻞ=K&}wuG% D"f9i^>Ԟma\<>M0b ͪ[x]|y:G%$ond|:2i2FIYhnaYc"ONc5ZUOSݥw/ץf!%+XKe8'o'PQ%PH20SbJ^dѭIayںO5(90DEEi8FYP Y1M0My 8nҪ,~A0TcZE`";ꭿG2;9!rZk˹dZg^5`c)] @x3̉ΉOEUIlN+ܹ;#FϪ- LW2v-h>nzCȉpὮm:z ':zu'G!01{s+l|l jb;?HO?(o)ZJƉXf`h&JjNAP⬬BD81#<%p&}!#ۜ^8dhJPwc+рoEm̽03&O~~z9=ܿ}ߖvCGT :$ƥ,Nojiޅ"P <@J`6aH\)sĒX!ΫU3!0)C؊I8u1#U+[%JIaW{#wW5Sj5|˪l-<w!BY$&ܓCMKFu=|`02V̷"|v¦kE\ Sa0c!X~Dc ,aJI%'YSf&ݲ)cN׸؆pjn6kC+UuX6|aji㔇)BeAqt^ô8{r\lڋpEkneZk/)jk8l0!Vjuq0˶wB{\A=~Xk;p%ksM\DB8:䔒D$8Hl?]DD4 |iRb둈݊A͢6*-Z9e }rX^uL!%I&EeRsp9 TC#~I~yy]XcKʷ\/"nF M3 q^f:D|{r:S L(ČH A&s)·ޥ&}>\LJ$.N0 ҂9rq4LasBkJ]Zq6jT+WfTLa);R@*I%!&`vqD>>.rݒU'2=+s 23um-8¶.2=C&SV0}P>ꊗw85f|o3~ޢE[E|*,(f.N:?<<ֲ IE XܽdžWvo-ARH`ܜEi7X3if,V)\v/Dn39dQ2{υpa͢4[Eьx G?_k6>Wŏ?@](D $1A/3M f2ڹDHģB @h=G D<I],<C#&S(ª@ )7Do_fPg⦋ [EYk"e09"ej_xoA|~8sN*8.J[x֓DwIO|-h֮|2/&DɊ$0<\,!qTs!)q>aTaČ^GZn 6Z( ǖeaܿwAY)1h;s=/G%7Ӌ7$iuO~]eYe y9RDTky*U=־ɖn뽞 y=ZAdWeO?fPj¢r΃R%Vծ.>{b'p1' wEY|<){{o~O^ߎ&cT2u:MFP2";Qu2J4<^CfN_~uj{8hv|KsF! DPAb%B^~rSߣX,W BI-yM@2 "!CVGy ?=IL;*7IfNA"YHU< kzInxcM\囓ݚ[AeӉXAbe01DžG]xڟ zT||zu> 'Pv%@]TJ[aՋX%xZP뿇s[1]N}pX$]s,< 2D HR$rP,PErB3|fkDS vohJX[FGtCZ{3[ q ѿOo7B;/w_mOHI#A{4Q(D!wRa쫭E2 9jJVأ∙s4B=([3#fr)}EFF&6?FpUf-w=g [ Ŧt @)(ZrROK-0JZ[/kY%E8`h5\JC$T_{`L6~B&@(Ax ]}Uѹ/^r{a/G̋ , CqyHu[/EH,j1`- w nn5%ՔqVx Q`%p{)Kֵ"?3Njm ֔8h)%w>JOhG"n=w*a>tu_+ozǩz!˷I.B M|H{x>T%%Ѭ])ID8a{7+܏Wv6%tLҼKOZxun8 2rhhB 5eZ;[f &)&à) o~:[ATg<qY`%e "~2[ԢB\FS[yfcvp4&FD` {Oq䪍!b]X0dut|vUy9_ZJj0m3kZ`jE[6iPo, ~,/|f^[˓|Я雳yi6 Եv@hMX)Kĉ;>NetX;m>x}9 IDATAzaq,l$5Gx֊hFr:VM?G+l~|: x<$JRp#W_ی&/k73+2 :rbcfs|[׷= ѝ``DROP& G{Edyn9h00@:eQ8=8ϼ5kN;jXZj@3剆")2:T"h*øʺ"Ir.yHrt&Jy@̭Y##2/*"u9}w~3~J90;!:́;p8Hݭ9js#H#;BNz^?kZœ8}oUW9g ,= [+oaG"߯*]RG?w SvZ' f踄>N"zSݯ&Fge֊b̭ֆ01Cqy({@L 1Kki',˲tpS9Sy/Mq#=U;+o\< |殗>m6ڸHA9.r&]/. U'ljO芸è)-Jh-e]N[u-N}Xĉȝ>6 X|nb–(gx7Y Ԝ܎f}aaF ~_~c_9g;=3B27\C6dڏe&\}$(-qG"lL3MO]!B?7J]¼mڪJ j[k04kZ@}a)ܦpO㘧PuQfML4]Г4#: wepo gfg"͆Ceb1 IКp>^]GH[Vh$0)O;^nٟ|٧+у1++Jk`dGG,`Dּz@HUyONȉCq|VPV5\0͐^!3d$Atcam:F,,,#}]lz8H/=<8ſ^9ۿSϧ˻vtnHBJŨU ƽ>S)sgJw{v\wR!tLgh 8Oj-΋- Q*8(g5< (r ͍z=óSXR2ȭKBN]*(ݪvXE8 '=E"PĢ@Q*Qͣ{!%t1 ~g*~wY_&v>S▽#"Q@yn^/^0H8"7fբ *,{] 2fiD`,L$HY44!<4dͪ99kN`ֺ;Y;l"'P)n,=-Z럦H.< CJZk-k1ٻ>;Obqz^y.ٴfW؇Խ'Va%ǵzw=YReQģJc[Oߏ<ּVkVy_qY^WǷx[e=T* nñm'4a;;:"E,NGA4UIvxu>~n˻\6G5!k/'vK"WptِbІ]H ]ș]9D#;1Cp 0$=^_뿔Vx`[v* 3JV5XՁR oS5+}LU}m( F Nt0ÉB)!< pbpػITXfA0]XݴP6W0!Җ#NoRIvYwcpcJ|DR8%ӔM AAD<ӣG$.Ox⪽N')[*u0&ioCuha/|x5ܼ^iÔXAfpG"$S  㠻]NV"j%yVN3ҴK c~,I="%/Uշ, "ĥ"WW= ZH3ٙKw%/眸NG"Q<f}~}D^QRUfܦb gᵐv4\ynԜؠ+<{׼,!oZ)Y$TJ饂zY/e}O3xmJ;`c.ULӸct=ҚѴx걆X[} bJ\<:My$O7F>ovr@1A<nQ)&'!UtPM3PU*Jv "Lђw=ݧ㻷n(Z}*zwH!GU.͜W ;sIysV굺9ɈBL`o `(;c'.ǖv7w6<I-u3cHLbT8:UZM4 Ul@s l$.ՊvWnG\t݂Wjx{ǯ˯^~}qCǸ$}yb?O! 3XH9/ ^=VSrC lWb:? V w\tz 6b5UaԚ(\f:ZU7 0N\2PU|\RICY@(cǪ댲xQ b{M7] # b`r>LO=P$I0^xu^x+-"9xZ=p/K@v. gY؜k14t:ug'Wa|Kh*}mƁUnnM|C魏jZ٪BdZ=ΥScfr|񛷟NQaD0GpBmf@Ugr f`BspӾ0+Oŧs8r@]}7=Kh!A+Z*̍ , UH,Ph-aO40b#,77D#W!Xa-GH,ZĴGlUB]/1nāTQgl>^ Jwe*}BY"Kmͅ8Jum#B$BYLCoޝ觿7?;e6&w^}ٖ}{[P"b5$0M͔%"m9"%q2P 0.E9\Pmm){BDv"*0Ǜy ` Wh< K9h3gv[QoDgӊg&['ZM'ϐ+fV( pDmeC?Lq;&.>@`[cPn⇻7AlED$ XQ*||Ox)ʎ괵"YUM.4f׻o@ IDAT 5sX(v^- Ca w( Ldz+j>l(m*%IP2Qf}jw?5702zXݕ;hG{FV )) !h;\@ѩ3cNs=tle.V@@V縻8`N>EZL ќMcV/IB!P.KK\Q#Ebwj+1̹B3ɫb.</N\V#]=OZqӂb1EgK&á -yɋu2 RI.ۮ:$pInꦥh-nB !B7i#µn^j9\PE;R:MxӒgsc%SC&dmv)-W5.}2)j*D̠.ҿn_iYVS؁ha2ۤ4 j밹qX"Gxrv'6&V 3)0qd xj-/~}O_)BaKD3+ɈF(t"l1RU!W ,̭V#W+t˴&ALnZs OӮ ͞Q  ܞ nhPr"+N+Uy'==Jvz p hee2VjɮkEnUS QT"#6_XJ-"Fȭןo1ڏ冺 mhgi-&3OI@߅;\}j)%QR-_8SK]\ܫV5yEҦK],(-1/˲,9/p A$pץv3 ;UXQ9ZD?ZkU73)MMݿ-IUMU׾#uɴYwkv]C-#1uﬓF.S^*lt}wgoy 4u@y b"*X%N ?Ovl!6kq 3)H/rVN= (nSFZS*֓tJm0sSׇ0a.Z,'|^̕{(TA+,j*>UgŬeQsE+aJG{M— *U"'RƆ= $5gvBk.uY8!thq10n)6^VK]u}$yl,` gs6o4#A0ӒjB".P.)isƈNlpk50#ɟ}H>eER%pKNҾZcUe@bЁx8Rtvr=A'"2|ܧ6TJ!rz܈PB5'g"'$Ė锭/?]UJ!a~0p^GLaf268"l: b?W-hRYr2KI;^kNd Zݕ0s!p0ܵ@'za"QuDA\+3|eDOF5-j=ŹrUOJ 6!j ü\gD4sC-݆Cd)~o79{ |n!@PVݟÊZH%w蛻O?EOFR kkG nlaoaw٥c+!!56X甼3 68s~臮K)D^ͪ,2M4ORb b)uCû01DDdL.y)ܝ%ت:18zs=)0q`ԥs4z2gu>?+B"7.ok1('"H LE= ʬrX9ݟdwJ]݉ 2%*j!Xg9^a5&1LanZ sT`]!-4Őg.+ `R 0^UM((-زR})VחU݉)½jav5j;99̟{r>KZ AcԗyaL8vA7a`&^\R-1Ռ grsOs&pŗLcɋ b(ŋ38T;:{=WsssBp,Mw7m 8p wpinڴظ`4?!1 ~xa@=tmPt疷FME5.d*jb""kL?d1Pp1':6Rիw{;.N55=ꥒSNԑ6yӻrIyeY/RB o)VLl(jFyiVɖPaI ) ]e XId H@N~VyF6!؆xB kʹY8Z&d'0i+sCj01keQcGm>=K̨]#q;*99iDk E5낞jKHXbTi=Ѐ$0qa+Wmw8lRb VmK3"EXj%ז2 ZPB1PbOlbcRB"1] P:hao?ޥ+;57FiZ\"6'B  SA g54frFjL2qW٬a$$QǜK^VP3_Qޗva$vmgڼ1muk{)b#x+;m=uɆS6jRS.E/agrH.&Սm4v 1wpRZIKi|qڄAXk?ncUY^`jij΀^v:Ux^+^/ɵ  ڢ+nuXcssoicyp 2X[fks߇^}^nVPrXF&7ԴM\hu0S1qbs%kɦJ IL̊j䁣q/U:^TpĽk&A_"On'P)̞^.<i`*&(n/HB3H8Cur(A ǰ>PfvV(7˓kU8"rx5$+({eF&d Um).i)0?U aQ疤dMZ0UH`K]EδBZADBpZy"0L$6QlFf‘NBy f8pD,Fn:nMӚ9 b2wi#JQ9FBV ,x ?V̸"xO6Z 0Qy#9GܼY ,ս1&s-nȠfjNFWC߽y 9j1Ihg:\#G̃fYRT_*^t}e)P+e,zmCY7"筕f zME,"sHV_S8UŴh^|/BʒB9qit'%,i{ Vd*DFDP"PEV4=x ׼3 od!ɩ,ҚˌZB2@6${庂Ds_nכlkXG"ϽA?x뎦{}9Si< wDYpuۅ}N Ƶ1| 찥)KvR–7o@2VDqKv-Ֆ nGB E4GIfDnmDI]o+`P_WdH*Y޾-ðQÔ+7HAsyAUΨ>{"͖E[͟ɻ%]h~\ DȣFbTO48/cmtnZ!PZ$gj5ϛq1b!pL!]qf}XſՁ{^zY߳ j.o.~AIղJn>F׹pw"抂 FJwl6iؤ( D<jn+̪.ssy

    1. N<2eQͰZAD%;)9cεpVUf0 77'W+:+//i S&OFL-\Nc|@KM~s7|Zl)J~~ u0i/顣} A$b2ϊ\y*4.r4a:-d'[wy8Dy_ mcIP'k?hM̝"6zY aoqGs,LƎk-+@ӂ^J]jo1S0¿0!՝(8lf> {xXҢ8i+. *T@rqlEB ;kRATak$4yZ[ۖ۠iq|Y2嫪 ۧjm !b\beֲeZqy<ͧ4yy,yѼh)ڰWo@2gg I8f pn5SR%2IS٪Z=/|8[{ijQTbNHd GQ=L%W,,9ַ|UЧn}VbLyThK~[r2()zOsl3 ,9 lյ%+2^pO#3/ϑPgP~ZB} ?݊j71# q޺ 2Epo}y_#q`N4x)ſUй167mxj3}<&ݥjе * "k%yDpBAfUiS}0z.Sb:#\:5%0QHYq.q?!lz7H!  _I V=s5¦bhd߄tsgZۄ^\kq#!@poL- )?~5Ϗs3ΓF \) on{'__|A IDATާ"vqLΤ1UrJ"Wn8lSEȸOWn- s$1*3Rq*S-Ȼݰ6p}uC^4?t:EG+h!ctCono.txUKB~}B}I\Ȱie#A><ܓHSMɝK"$(]R8QE|/zY//}]k'6az}xfѷʧoNبv8j*j\jހtz`>iw9"yufnO^3Ef9.);Kp(qO-d*pBH ,uNoUc=?>Ɏ g%HDnɝU/M%eDЁ J#h~~Q_y/2QL,]YnJdÏvKy\dq6@p"Wm "Ҏ7wfZ.-E@04Hs>X4pQZjlT FWɬg72K0 Urz)RoϏi24L7`č' A(f ۾u C^b7bk6#sWo{@dSЩǥrKD"FcNwn?i|\tw5]S_i<ww石v6|Z;N"QHBigp8Nf/A\D"1,<5P[Ԫf)!ZkkTP/e YH-\gT [T>lwonuQ\MK.q\S>=)x9l%{)0=KʻM߃;͐Y'\;6洂TUYLV`%TG?XJjT;QEr Ict? "bOWWվM?LR4DTj0LƑ(*猹j3mKdAgC%rA̬͊5z[ɚ{ j? z""kPdejS"ԁB1J($(W]m6~͝~t Azv9^OcU&KX>WN}n& ofq_gE\7}Hs;DUki# R"pvgc?:ٳD &8~EgnoS2.#PW{_Y֊̬2)٤Lih@,A@[~?яa@d3$3$G3=}=}̈"k=CA_='h]vUfF}LM.;.Ak@r6VqMY\;h5%D8ZCH 鎱pzf&7l.\^bp GUo}^P!⤲;VDȀgzD]DR,i7P rn.dr͠uN:Xo w]Da2MDŪu1my3nnoonZK"8[Js`@_/noo__Tw_'O_Z<>z|'?M*usz8-_z8B5W {1|?fޟZ&}~_{tEAOԞ  <Yaͮ\^n.6q+TTS=.v|ww>N֯USS.zGO dhK wx(\#cGŭ{XòD]P GN26C8R0"76>(3sIr||9]iJ(}MQiЈ%T#|vb2;\<(hL L$W;Zjv.E t8KkD9V1%TX(L#yɺHF9^{kD,̽*wbIy{ӃTCg1u]hM5ix?u?<)#BV8ݿ|b]D'8zjH-0pvj6 ŷ>(R;Tr8ލ-(I4^0u UkGX/n%Z'ꛗ- |-OGKmaq+ܢ$Jh O^ @5 `s:Cg$t/_?~5w$y0Lُjw_v&c UYU=!H- }&Р ՈVyxZTqbbV~\K󐸞C5"!px nIFGa]5@zhC= ʂDQzA‰ߘLd;+c+@Q6[?K<_<}%XP@M!%{A 8ZazF/_g`Idʸ) G&'zˉH1 3!{nXz$lQ]D0qH%É ='-c)Yqj!wo.%0k:}ctQLpZS_iگoo~gϟ?~LKn6vRV\2"t:=*II٭ Ne(U%Yh[RJ=w~_?KR JYסPS97"F;^tjVUI2nҴMm6Z DX;.KVY6өo|ws<-Autp/5BDZHɛW뇗x"nnK:f4(#ՔEUj-S+/_if˻AJwgҝ{2聆fz'=#YMYIen`^fw2M{N|:uaS{f4  5Bz+VeW4y0RqH׿n%楻[  Ri/Kƚ(D[H!LXA/{WҳEx!iTA(`@;ݓH0E0"tZ5{\FMZ4`~=<}ol~/pۯO/|2K賍Z$-j?CTXK.e%0e#%I@ )Nt{̳pAXN ]咮(EmjBE=ώB|w cAQ0\\`̅Z+PnƈX!dmEK?pHUoDDȓś#iG'{0$.$9d㮥u] fX-`}s9WP rNsdfA]2Ij$1~s솤Ѭ $DIT\0>"csmQ%SZ4%"ܝT_^^^o^_[u=;[E{_mPY Z*-?o/>ƳOg'͏̹^^=_8 4raT[)*p5? )$ZKLnVkќ!ֺ1a zޯǥEV=lmO3RE (Y$ZV=DVB@єePf 4O5vQnC))_%y޿{4vc;cZg몕"cs]S\̧s\ ݄uU7kٲZkjgZۼezڬٹ;Hc={]G"D*iXd'E`aNUyDԏL6CD3@po+'ã"`L.9,U\ëw)U$i*)kPrzw?|Y'+27_b^CYNoċ-~^&=0N>??7 2wg.0 ׍\|x Cv ybAxKU%pØ=ひfXyg聤psLDR `PyރΩdw0R+kx5 2BV+A%`B8.Y!pA0e7~ow!I@katO9ʀ̀a6wi5|<( s֒~ʡp:wCفk0: D.!+]-ҟ9ZkZk3P}~_J95A=lkGM=`ܶKZ68_=^)AU^$puˏ@V0DsfmJrD$f5B"i,~aX0:v:{hcQuQ*@%y͌\93وZtXR:}M5;enE6m4*p__%`Q."P4TJ*C*6cz7A=+d15e0Vf4))aﮚ&^OGE)j/^yvxYڳ8U9H #p[ $ A7Y *.o_|wo~XғTƛׯ?ӟۯI|O~WEX\D3"Uòl/>yg 4BWGf[N'`zxr_b( |G4Aj.$yԒ0h03償:DgpNsGɔ,"sE}5B٩ u~jK$uz>[;|gf1ZR2`i;=ܥO_~Ց4%9v+ޯ:mxt/`FPPI9 0̌p(i7bǬ:KR-ȇ5ktB@0ޞola3ْRfl|:ݝN'oEE8w. !}{?8j.ٌcW>|g}ÿnޞpϿ6'|㏾}usa^X AX[:waޭf}SxxuiPJ~+z~.+$=.A%"gap،ڎa:qCHqg;f`HV#$ThZIsOxͱ rFG8~O!J_jzOѩz%d@sF($C2vyhrmi>@v!k&(ˆp:C8=x_Xsl5kMG410 r^v й*^Y|# O:>/-z]y>%wY2 -"e DykѪϧFV0%2*^DɻºWW zy@OQc|Wz^`jǻp8NGRY$YeZZ-։V0鈋ކmjV@ߐTƱLӶ! . ˔ [ u#2 ^xeIdxiճG%&м4,IdOss@jR8@ " TBq63͟|<=ڶXXV߼]o{ɓ<GGΚ$AšU%4h}XvYs KJ&X-8cl'u=wS**pp{3B)H9A7dձ k/9]\gb=Mn Hx)oOPXRT2%AAPP.FVre(yrhI-/߽~sw_? ԁ=BJi3攦5mgoux.?*[oF3z}ӻ E("C״:IH]\(%v܌Wq3%1SH)kg΃r'rw@`Rv<òJKmVft:ɚuj s]VQwDx 'oOʐnoʯ/|m8V IDAT[+~gg|uQg[V17@I^ORfHd^iZ;~_?q䫳c +'<}?1v&9Z j=zymZx[\"T-:7֮uOu;>RY:=H lB$Cꠏwͣf Ӡ9a+PV8jr" RLo{ʗ0 -dxx`[⭺y!6%gg#D'e?WDUGp J5-vT!wc۳nH %ofܜ( CѥEܚG< ~2=pEʹmf5c~o^$`AO2a,e(M*ݜnK,K;a;20 P|Vk[Ie(!)}Jw-QQM7eܠ/aw)9jRX}};Q]`ntV} b W ^m7aW4zVwqY<7ӜJN}~_Ba1[eXi'ጌG-CG-rιr|4@.bꐎY{u"D SB$L*=V͞j3To{Qk%\*PaVdEYV+Y5)"S.S9ĜVQI lUWw՛md(z;\%\X;a{$ӫ40ٶJxf4} | (w :t_ANp꜇~B`J2~܎ۡ )4vV Uc;xS̕7&9P:Ȃc]JY4SFգ=({zo,,q-{avdmv gO|wϖُweyo?KiLYu ,2$B@H.%^P)C)p{sP_A_(عM>+rVу<>A0 kgcƃ3bUeRWN{_D^" Ĕ jҖj&@sn e #1灚U4AQ-%|ݖ㏼5psHRQp//ݰnvrrCQqAUQM~o h=5] !GyhaK[hi^ADwUZ`y+)kQr<onnAS3Nâr3]EE40hRBF伜"Qksd-X,I\ĥs WLN)s5Cn-jVyQ(Ix?t'3JY7qw1/n\wWW4u{ҥBXc5o`G7t{ppֈ`e=]6>(2գGqr=r-"<pZDMjkc=DJITu Ud$it8Yy8Eڃ4p D4XM LD&Ua C`2ku^Jqɶm6L}oyMj*c4tXxuco9g{hޯ9]us=VO8 C>7 +6zmQw SWFWcLD#@ A1`,m\j:.~sف H˩4TPRx!T(% 2mwi( Z5̞clA=o_ob6HNH[Nt7p+ʹ0MΌC؆:du3 F@υК|AwEOEKSx5?Gy}^nN8-fND< [mDf$@jEcӑ?~<*Eƫ7fd(6,̱ Qs\#+b I;x:/"x&{XlCPwy A>`TE5'Q$wn NX_gHհmeI1M'is6Ykfb HH@&ɵͱ8UJvMӨY-X롤9H?1bYVBJ"!"©LYl6v)zB^䜅ԜD"4ϳ{u[ѳTh*0%9,=G("@-ޡ⢮YPa-fwVZ#jv ^=P$F*бNIW~ƷuqbP)q{YԥeSLR-ιE 7Q &n(2m|?GϗW)NQ4vU'ŷ`vD;!;z pTk c,P6珮O# h"4Rsyu*Ytqi4f~BID$1CĽ8jw| $K:IC%$R" YZ#uuJ02 lF"TL k͵ʳ_i-%wv~{7^+JU|/̡xe*s֐ @34h g4HUPFhr ItZnYq={>"U' МTp9Ow1!'{vw:ޝN5JJkaW{L`vO*rieN'Wv}gK]r@F(M)5n\K({#BØ>Ϟ~KԷoo8z}wċɳDXPv[WP~VPYActO+SOfw#== Za,GkQ\iJT1UzX^o77[Af76*bhaN,VJ9Cia[&!v$@)n3c&6m(rUmJWv.xDMhv2n"P1X;B$vF=dH{Bn져,w m}cYh9"i -M&MlΊp(1ݖI4 ν(LL%~xfYUt*c}(ljHu7qs6a͗ꭙ;"*zwA902&.$v05ShFKngV|Z5>磶htr_n"gba1k5@ )KAR@Z AhJi1sH (1Fp՜ĀZD$dffNU+ϓ-ӡL{!G%qRډnP3 L<˫_~_AKO.oC5SӪf`NAP #HSPidLww|s1W?7x1#z绱ƀLKb}o@otVcLn`_ $tS~r>.014&3X9+q3XRAH6RB@`+ 歩$SęA~W0A9 $ ) qjO"@ a_~}x{a>:y()FFǒG=g/Rp%dDʹVҦné#8֪VZJ.,̼TL( !%u-l (ZU} ](/^vg1msWӡK>M~y bYU+P^VuKsX581!Dx$`Znoق$ZZ-2P;Bjk5]PjQUP@4v7ðm<R7t{[~>f?_ʓ;޽:9'iSC 3 ]ĉٍݛ51'UnVXA=~sy"-qnX~jTهO~j@zZ%ޘLwddKU>ؓw?ߖ'K$ܔ&nf}]v1Vfn*>c6xR"R!ABi S2xjDh"6XфHM%tID^r% ă%Q>ޕ|UxKULO7a IDATɌ[ֆjpݥ3{#-N3#"xio)L˳3B<+#!j9䁃Wev0 م.vO`EԘb-MMB:e綱>|L,&)8LUMa؊DՖ3Zqk5KYbmOQ^TN<=6-)1]r/>m$̮h~$a̬&{@@0G`ffBK5effD QR CzqyӓG/_1GZZ_a'aK]{<)\#dU .! |gj c.Bh*FynozXA=HjшGֹe?z ,QZ2_=K}+I!2DnOOwٶohS ]#)xL &ǫM9R&@xvb\Ԫ ,Z.(L"ak؍gi082"qO>&+2TQFbՕ A8nkK+Ӝh-< sS{0ޢXW3U*3Bk I +JĤbέJkgf}Ndu44\[V3 fa [彔ᾆ2 Zc QcS:.N6mR rGZ>j _㙍 0:P0ږ^oxqb,٪=Zxsˑڗ+ Vj4vx/ϟONRD$8I鮝˓a5݃jP8]\޽Ү/nʒk!h6zQ?'g YB$dZ2uv2bԴyC myvw df ؄o a0'yԕM ! b'q[8kcy9r"84R 5 ։ @9ܫԖ"@f nh@P̔ Vj.s˩%}>Ja7Cb]ߟtiSbҰ'?櫋҂iv,S7 C l浺UUmJ"! LKбZh!K܆XQM>ne>٤_SQzw8\Q)F12Q3,&Pg77{ɌBȅ^_9̅$H6Uu/ 6L+j{Ƿ|l}"iui NUkE.uIXi4}os7۔O^|pU3>9ėϟ?&̲Ѵ RS[3dM`{\q6mf :LYv}egZNK pUv/ܥ"B"Nwx1 }c{qjOM#IDPBHNn2Y:>tkgn'5!*|9.8Vv#Wf aI9mb ɋ8j(%HsO! )ݪëIN`ѹ5qcIZw୭BPșx[d*Z& QԟR7iˆ<-) ɭUks%:rɥMZt%Zj5²4LUadUwT]͈(B$HmRKIk}aaq-fVk͵6PcҖ cܳS!\͌)XSok$`UKRrUK]RǾmn> ժ6ͤ}5-;_oVaev(E ȭ!G?|O~r{7JTW?\wgCx4~7;<=ߞơ$f&+QUK%3ᗟ~g*t/nS$KnE;à(;-sׅ(~펐D$q!mob^D7=ֵ*xi49jQHHdqj1W@LNL&f%@L7Rmc6޽z_^hJ`7W2`(ṰA ,!2s@@ιA1uSJ6ϳF$8w<==}fonoǟ/pJx[^}^ӳ>v=Y)-F6VITW>z\7u`ZLk~Kl3mqI<-b_e+F+Fm䔾<|"|j϶v:X ŇmNhR::*8i&?̶.$bl5Ůfv "iăx"+ĭsIMΤLb"JRR!E- yq ȏƖ{:*MY^.0Zkl/c(rw:&#Y DV),91/@ֺ.y*9R LT朧iSRH)F(fan/ #n/E+YHc]ߥEYȗ%sYajnJn+q朧y6}?@nҔiKy\nfVV-~ZLj^RJiS1}ݶ6C?~]HZu4-7fҙ9Bh5 ή{x_=wcBceo?/o޿532ٸmlƯ/~ÿ8pdx|s~֝ 1qFs~nvK)Yo=??' hy ܠmR2͓ Ѧ Sj)CcRj:}YY :ۭ< ?h284M8]jݭ $"LM;R5GTG2tyy͛)׆1I` />}|q ]8ݴiCXٻO)0L@wtN{J)s>櫫KU~w':ꐳ??=B$(9 6Ƙ|Bu#g7=VPq=jՌݷǘY[1x|_ydTC{7 ZĮS۪.^~?..4%I}9 @ B֚dr53nv{wmG$rā T_Ѻh3p$\`EQ8dPTݛovDR0XQ-`gSt%}w׏!Y,KHQd:c ^N&*.MKi mKQBh ;jx YZj\cQZ"7? 1ԫj.%׬V.)uB ^sej#>mnyy63Btre14_s,onjZkVM[30wF_]k8뇡n:zC5cjp=|WHJ;{i:ϸ<>(xSSn~/G_|1es5VJsLQ6Dxo&Zvvw%2U9S-jZQ:4^8f uVfcPҬ*puRO7~thqPG{/`1Sq@tgy􉜝!&'6&"uٔajC-canۥ݆ `7_=mmι|8<$9ϡ w럗 `khyVD 0rsUd!cU¡p󀔂Vv*Ixl$kcOŀЂ(y;;߉`ۊxQK-LFzA=~SeN[æكÑj#!W&-@0;R0X9jآ.`ىt7xJL`q #WB2,Ue,4g'KA-Z܁g܌u?apa ݄ͯG' 43{($2Fͯ\f٣@ JVy@l*mls#eHvBݽT|Ph-1[?B88jU*\[XCj-zkucl<3b1chN3`(5ɵ:KV >Xx %}m _"3]>UuUͶۅb2sMb#, Y:i [%nkUv$#whmdv+.9Wr9L>粟c?WW~=g1k,Mٹ*B)h=ܰ#fll.l&p"Te0jlVU=u[aFnȘ\Li8 `JN[&wJNB(" U'۸|xv;Gpt c8[m_Pc02 y+c A)"D_r[dxa  DLpvgp2'@A 6dqWA?-"Jl(vXH$2_WMV[IAF4[ \K߽fK ]BAas-˴Q*9)D2p-%-Zn\ĬEW7~w"js15qVmMiUXY? $^ PXx ~N/]0kbϸw. v6j58EHIY@۞H[F $}G&VݲՑuVwڀ: (D9gr#bVzqISKXβL~fV]jְ~{XX]5X̦GW&[.@  aVPjn]gVaf4Ǫk @DUMB!"^KkyZkm%+)HhUv6kZR7-SG}RwN^㫿5|( Fc(=,qy-:1{fJnF\ .f'/ :TpgPq7}.VP3"7h\>Q (N^zwϾpk%SSTKV OB!(uO? gg2aM* NPsW2m!0X~&6:H;p^y0$\ P T="J^pPp*kT IDAT->Pt @ L2- B3|+( c 2/?|MJ3q:\_}t/r# $"54 $f1*"&uCbFݫ5#r!@n)a&hźjґ9+5S0/ۿzQ6j뛻NsuKZQKMp@E')xBn ε̳VwA0&K&z'0u*Gs۹Y=;;nt]zoJ$,▫y!ŐjR4pABz-^~GO7CG~׿z͛a)3}x;·_jf{A}Ϟb*ȫT}kŅ٢pXE+EeFWuS8aNysB-KdŐELgG9nRlyHu6۞vCnZYmvh}(&S)\p\=>,Tq.o y]C@MN`"nQĪnPZJ)Zo-E8R'Sܠ&ZZ 1ɠKԒKɥj^,AnVRkV-:M4ݦ)pLcApdhnG0w&fiAX/3n;h ISRkZeiZ⊪s9܎j&~uC`5c 7ZL͈L;$` ]ePDB!w1֬B"1h!uכqy@:PbvJo__#:\"i:V)1Tas6l?KϞa3h:Nf)݅`ͨg0VݏWPNdf@ 9.Hm,ZZԅ9rB$ v=!Dtܰ'q祹"PDD9s#סqC@$esquFƥX#( 7_yɳbat}ywj7`6soZm.0Peؤn41q#kEVŬ VbN&7Dh3{p_ [ @LI7nq43S8~Anph6/²,:e QzU*YUn» ;XQjK㶰XdG*;~< ewOOwfyvSJ9gUuhLTl. 4{^,),nusԋo}ÿ5HtW!>mO'z\7z0>_{?m{ӂ@_kkG ƴLFZ%*\ 8S|-G'~9?;AF4^iaSOOCxL3!VDI}wNp"aK4 zA s>i2CV6'rkqiIRkiɵl)hWKF`%MœXqXlFXOvIXt9\K=_Vۤ͌ԥ@‚sm~t,@,,$$G?.W3B`[vךL n,v6ٜK#sԅvB`WjTZYKVE_H3VZs8iUVs\.m۳ӓ0 ׆zD]^7z)sRRM B`r]7斀Ycj؄B*jSN%g1cԏw)q,jPUrE`uXVkpԸw2ZLFs*UͪܕaĤ!`Y,;C ;9L|lX,>wOu*:*vٓ)+`d 'mJ h38vsۉm)!Fv p!4%k+Z y !ZbT[h0QF @@oTB`"k PK%F#I=D99wCϿC]I q}ysuq|H} "!\߾}w>\vVvǪT ZjSDs퇡$b:YxjΥsUZ1P2@]c)ET}a3s0gT4N̕t!B#ԽZ0ͷqiԜJjZMp{sf,䙩tT6R6# ԡs5$۫j-A!ݏ+!N.D\Mӯ{֚pw3,8c3LU]f=2Iɖꪌp7 l7 P8fѶTA 2|*-h9ۺZAEx1Ro5'l$EXN gL )zYİnC(QY5na$=Xj9R\yS?:nD٪' 0&ecr{y??+ f:l0FXo_^ޖVDHRA9gU?' =>7+VJHb1f-ͩ# y`2A@ @(b w Er4OxwϗŴĶ=[AHD?UP֧i1¹.T bRNgT߳$\P˜vuyA(K3?_&?~T)B qw Xp A1]í\Kh Q[h3kBE\d2C`*2jG맱 XQ&&+zHc8wT axv"%$M"a'{G?E,,qAY>>` , K@eRE-<|2.dRTORp'a~Sx SYGh6()ÜQ2YE"R]idcl3іmC^ch "Jnl0snAY \Gcxý{! 3!+a6 èՙ٨=a m[C3~"9ǂoǿϷDZݟ&:3$6k+P|·+: pc&ai/||־}{w^F gPG־crssrn[߶|>: ޢw0Z",E=33q*'}؉"fJxvރ,cx8HEhjBZDT_Lv%mPv,ڱx%bG ,.c|5Ӄom7a.+ݮqK>2ϊ=L31:O盛ͱ4"u:|<qV<|,߽{rŗǟ_|{}曻_u[jUYA" ҧ >m"'^GW9%O71J *|XI7?.OoO?O"2($f'Fs-G}qNKEx.1Uw#A[ Iag$4+0CKCo mkҁF&!EQy)1@KpaHR 6K0sSs@$;uF09Oy\;"돼1mhNDVKM)1=..'ݙC q 32TED2"ƮFz1n01 eֶ.ʅN`&R$$4R]2w @p%I" ˶mۺ׵ sRTR+bY{7 ^/ú^-iycd`Ny ‡箍'K~tne@|ޛs%"b]vzxTe9zmՂpz{'?}yj~x?p|uro?_gZOԧi}Z. |[D Gݙ݉smI67O$5X&gJ??ɛr~x1)2 DNᨯ^NzA%[ibu`(` :W#t)9 F0ڶ=lv'P,`CQH2"\YzT$NcK4 & &")pz..<1h^DY؈LºOf;șɃ/Mnfxvg- 昽i>>E3.a-Ė8-.0̑ED;!94*C1쁻" a%f2Qqa;n<}nۻmypz80SUsl}][kk L(Hcvq9ݯuZr)Df-(]Q ڶm}n<䒢VFH<ש;usJQ:{W  }‹,itop;O!2q;Jv T9@ư<1i ϯ'Mw[VY0 ;Dі~A$" G3g>9aUjUi⧘` V (@-wr1,8Tj[祍>jAkm[e-dCa6:zu[#Z9{߼c[K+Fp۲mFEŀ#I>F \2}Lp"e?nɠfG|a:J { fg9^]y6>"“ eCTla!>L|F>@¯|U^]t>MIK$EX=` &%wXRT;[n_ޟ% ȍuρNC9XסX|^ mt!RalN㻏b (Qyh lQ f[a"bH|)>#-@}Ǹu?=avA11aoJom*P;x/_ *84 N_XOm}]ZQ\T$"@4[T 0U-#67e`U1ư0T̑bQQU#b]LW{b-_qdXAG޻m 'et{xsu%TSk޼/(^1_}ӏj/^/uB IDATb\_zsSxM)z{{P%}>Oՠv[ZX.lY.NcXdFagf_zhU: za'|n8-wz𽋼C)51Zl7/3q}SeV$p3><,(4ġ@P YPoR0J;Aу@ZH-:W VbI ࠰6p7cMQJQI8G9QLe&yh߃H3Ķhv |J_`Dq0^ {0.e}KE,4ǜxբVsm=7ϙxo1AN6;!F=YT"8 ƴ+'-Z&.֩N{u]u]yg:\Ad@sZ ׀8Y9=BJ/ =ID ٣p'616`P9V9'.38 x9607xXP_6`XmŶRW/Te][¤ ahcE|`Xqܽw}{}ކm#HAg`x+X,JlΌxcgd)8vޓ|rg3EO͠ZKZT$h0: CG_`gࠓ-ynS ŽLI!ESڳSp#W{,%0"_Msul[w;Xa"$JcR([w?'p-5]\e]mY_j>w^9fixVqg§ >Z *]DZXv~$IXn`[>.8Crq@d"ċkΏ'w\M[U+&&i t91+p|U&E!I. :1Iu>`BTR Z4SJxH7NpO6m Q9lpp`"bU~ zdK9!6z${.st T!rS3mIVd>jBAĒBZ תn6!T[{='41r.]HKWpG4F8y: e'%8>Džy}}ϰ3Oԇ2!لNnpBTĄ] NH0Ì᱒Z?{[VN/Mjm':2"2[K{{b 0i l/WP% vA  6^͛/W1I@ku BS)%OU_l0?{ݻOi60,M! @tM GsYZ|f@yd.^xx^py"#S90d WtO=F K藏[8ETX`f1"꽷2 Rk"u:޿xz[ \+g?ŏ??ë <ɫOԧi}ZTf? yXvQyU3D(z;UDR]#fcxu˿nPM ''Ԛl&؄QkTwRB9̝L.wH)-K7svc7^Sh+{ U*XN\&թZ*X>ov,n$6vX+3s/w99i,9yJ,=EP˛zRiF Y ct&u[g: RP^\O:Ui0,\_΁z)DrEgAAs9a) ;Ƃ{w_|$rCQb](:oew…d v `ֱ1AJ/)^ފvPrED1ꗿh?gHc|I zCLudfjz:I:`X,bÇ`*r Z! ۱y.Khl胑.g_~_}>O뷵*L"Z ePRsqnxOaLL'3DS3 S ^^篦W7|3ǤMe)Tmu1J;s@Ti4:1`A{IIQ3#F$"MO ȕ:F+Ǒ& &"Y3eRΤ4ٸf3-muiἬ(eR.UJ-jqt%1Y[{{iE\GNu!ڵ% zdg5*8L njν b" 4 {PCux<5 {﹫'Ouw}{O/N#As O[)\ #b]x|L\H'"ڲ-6q׻(WWAScD#vák$jmK)>|+86,D0LfhO\<1"ЇyzXt6[YF$DE:>lY۰p*2Y* Q C̈ER֜~U{!`@&cC~(}`/7\{zvHĉX(NSV˲W_˗6¼-R%طtsןzyz3+ًY~m]>UP֧i@E9z$]rK);?6RHD"0G60\ '9ՄIRt՚ox޿k6cܾi$ X F QDoNfy/"Tkhq'!,h-8cS_jS-B"`rG84RgvqH(}th[߶۲˲M{p0-qx[%-DX;"nD-<7.Sv0<TgI^eoc]rjv>lۚ#v-q9$4h %rj8|=)' Nϗ}뒙gF/^>I1rZjRh Pkt3y<O}n}͂}l:+>3U|0-B9 qcaOHg}}Fn{a<BBT3)*D&"u!Hh2K_m\=׿xP)1ZW.2J Ie(pVXj<~{˿AԞ)Kdֱ.o)#2uM9 Ѫu"c>>D1 \*tuWz<Ϊ0Zon$ 5=ZU’May-TKi%^ 'ѭ+'99,BL.*VuԮԮuP7mP["|Zqn#(f_/w'acԪU˽>pIk v~Sj5Lk1zl0-MTT(L,˺oNiևi{w|[ۛ/| xwoo>Or%6R)=>o.씛pɌ"JL?sH#ie7B,dETFPxu ö=ѷ_7pg/`* ]#$DN,Sb`ÞHfNd=b%DWs>J"@ $:e8ܼwkt>u]m FթhB(,hY1ưa6̇_I3 7az}bvSDUl4+inK(̢ZT]ĉU77W$ piYA$጖|rAz45dQe{.=q=+(4ADwk,YDED%;+{Q􂍰[α7F` >nf=7t1߫".f zҾWM}Oz鶝.}>۴4BUǫ/nVZ~㽻7~͛2ɛ?gZ@ڶo5wj-sww4O~{+(JD,<<4 ; ]NU;J 9w[rЙ@\6b66K~UAnf;L[*`"by98E(ԭѷ޶v:Osxu'`AJs6,+Cn` "F2UxGY*,f5VYHEr!ŸSkRejv]XUKpW4RpS=jU!Yi;}xz_e_v9}K@2\\1&1Tkqs@^;<|nң`J)\ k!,(Cue;/K޻#kq0>+xlw\r^ o^́6|g+ τť[p:ۇ{;} $z9`a'!ų=  , ] `ŀ5}ܷaw򷸧?otbkc&f{pJo/㯾'rb L=CDQxڲS_νHj]| )77<|>O@iqS\b_ {pR 4D3~b]2AqTl;(7j֮+bp߰,lPH:}:g4Cz@f&L"HC^kQR h>?V8G-%Xh(=`;-Yl) ƶuYu]emyno74թB tE҅ޞǃaf6z>,)F܆{gff8~pJūqєD$ư1:B}^.<9-{6bc}l[{ wv}P !.* k߶jm+6z.S+ HK#TfHefC</"Ey͡'ZJ-\yEKIV!̷wwam`x`αp n><I,i_Z9=O1=PQ-5!9[anm[[t޶hO4g1 S{ R`[-[#kaxP?Upg$J:'3(@a$Ӷ>tlm?{I,=lfҭuϴF>;  @%HizC6l"-pw胙Gfi UVedsywiDlm4HQA K7GW4ᗿ?}k $mSDn~<,sz Ce^tY൚p$Bd1`RlV CSfryyO?~g$024-)1#[U+݀HDIEx6Pz}L>3GŢ{)JUk0#'&QoBdeeOePi1l.% IDATS CE{;n{l}2&7Zͯ=#(1Y|Pt#rRp?g4g0 9#CZuAGCcNC:(Qp՘+`ݛ]k8{woi*[rz3#wNӌ,᮪ebA0 -Ve)ZJ]֢U0lU)-ț\#´c9%xtW"KݛW_^]^7C+/; [ :q i/ףDtIPAcR=ixFmQCm(NsNIDD0iu8,K5[{xlʯq xlXUpvgXRjpz$2dDUL3wW`]zvqUwSvr%' /Ua'1@Op}Yv4n$;#IH(H@ zޮUΗ(K>/_~$bmفA-GnN'vAg!9PAX WX `nnW׈ra),ƒ iƈV:.!\j<ݎ?O8qu^T01'Dʀ"aAAG] y]]V]ID$,Ic\98i]lki8U BA-z=GwsHHTx$]I=o 0lHDgUry^J\[z2zߎ[''XM]lI|˫B\[ 86b2]jRpXje0i*@j!N>O哧 ?x챼>x/㫫yLFȀQEhROb  :vXk #I$Z4r:-ke9=ⰣiyŨ̈v/F^)A")ƭ#"t ^Gu>J[lѮ|m`+ =zyٖY7ہaXpO7۱)BkP@u@hjE6"S v_Aݯu~Si렾7_ͣQ]w[6@znWWk|xyʧ#4N4nk9츔/56*st0/pXp*4<8$ qG&BbNl=MVwKÐ9]ð6DE4W^*V# rlI]_j)e~S)̓$ISS>Dbe^RlFkZ,e2-ΝۆĒ ik@bEXx ۍ`_83 .\zpQ}w{S1ݩRܪa8Um#׺f7sG01&1nn{/(9(j԰vXGkְz:9ְ(M-̩6  ׉ ""U[:Mnwvy:Բ{"l7[vs,s  Ӑ$1L&hEBfBZSF`!]EDr09De՛KVJmW3DC##@168RHrF33ϧxvJeBplZ- :Gz݂Ж7zyz\(@[S0 p{skލ xz*F9G$a+uPgzWO/a B/?w !vdR6%"V9BJ^j'O?w3jFR6sD(lj9eQ⎄ાT-Ṷ8V4G4m$%&<|_>s{wΓGNEu)q6 21IeApj3jp'`j-:oLmsy_I!D9!C '*c]X*9`FS5 DtMuEj6nvk35}5t;z^ߺ hSL bl'g[IafsQj,0[5U )k#,Tx,FneV|ؽrhM_[AES!ܵXOL؝qܞ}EcU<p±* \6'I9,v{T¡P /2 ]/PeV^L*{06p!fF&bT`TU/+ ILjXLv % a Pj-,uYy.30'!k˼̥8 KScjRYd;>-px|Y?/&;),@}ֺo |28B%E7_N?_@ e`[GR|0iT2"B@[v5C8Fwn"ꈵ>DWZxX cE/ r⻗Wo^~wߝXff 4`ARJ!")gM)['":o b@w=\xZ:PHl62Qe1zlUji)K^0T5Gbo)@ŕB[ CUU0c"`o#nfWg:kOh B 6=~|9֔TUa@H*:kYaLq󢅙$d"ЪZ5 eݮWP~ݯ"n #o {K/M`&5]݀`E!lqy`'83EqCOX*'P~= ( Ĵjִ3 <c dFd$ j5p N!cՖ(r$#:[k]Fr U{U%"ӏ! jUꁍ&Y20 T_sT Al=sV@UsW@t[ qRjc5 I}ޖhмZLɿ ԫ Swosder9qJ!{m,0Y$K2u\ 14TU[ޟ.ZXogF o3MvgnG#spe2k7!b͌ ,B Ø1L:m3a~VA!5W J n9@]R*Z9={x[eޝRDꞨVo.9< ӑA)u(xBXH0WO:-WwZ==H6 ikVQ͵J]V2*eysm7?OO~,c7@r΂ Qkiy5(18!8(̥mXH(" S3xG#s4TZ!mMʧ۩[@/ax 1/< :z/Mj9 Has @- D"fZ-VTC8 coVu>Js/z` Rk.[(ŢZzcBpN< 5ŒȚauh7SuU8vojO#VVp Ҝo k|CdӴsEt\],%<Q8,y䔑XCuASaaLN/_+utuSDoKwFU hBoc&"Owt\U"z`an``T7Wq9e@v Hm(#;!:b HE7Kl IŤ A&ND̂,ȹQ{\& <|f3I YJ}&4 =l,=VA92z)42DR`d@"IA"blլeBGK2~XZ"džUr4"^LLq!R%nԽ\jZZkAsE*0Xn&dsv9=;9999=lO6)a) $%uX%I, \έ2ZZtv(a""14\-SJ =dMW:խDmdGy@H=mme0D& fb#`xt>s4We^wh6 Q f>z0 ^za}1{><[$pn!!f7'9^0OGȹF4s77_]40_:#naAw1(B0ĐdO6Ko/?SW?]nq PD{cEn"ˏ|ڰf7L@V_=yT~ﻩ7"{D<""#$"9!!v@!Z$'ZyB@Y?Gps-mhUDۡ b0A2ptq pǦ[&⦱n&cqb]ABȤ+8֒ |)uY.2yE5VOu E8XP $)khZT(V޵1]ia޴MC68D2ANN?yATdQ3G*( Ah}o_<=O&kkχw6lԐDHHt0t_~ВZE$5*"'$Xzwz ؏M` XA x`UA sLUqsZRnK)8,2̠T @9_ IDATdh&,@2)5f{XCt!7]b4e22 G @ZJH@5`jZŪE d!QyuuRF-@=ܫGjVVdE5<ޮ8ZݝR cbQ:]G ,B9xzy|3@za`ui*2%a^N$L"X})m}u#?aE@"uCgFP %@ t sP5UumE~3S%@u=^KlB!b3!B53[6VbmP"vX)Ɂ%qJaeQ9'$,H@˘ P H+!#gNjXyQ'u'$HԠWᤡZuY2Y5"ьɺҚvxn?Ͽ9*HBX?9 gxĊk># 0ZՀB0Ͱl,cP\<+:L@jqk !\Bus x9͘sAQýh6$;)U 0$jV:d" [C3= +:'ajtzr "Di@4p8vyӏs02EDZmN,pZeI6m6)s8IP"cqTCjdN-U˲,sŎ輣{S}0j6cӘ4qUU# ++Ό"<Id֠dw=sYRr/Z=+C("":asCPqCwuU}s uSuVK]DRr{بZZP@98doc*Pw8lN6'gۓpr7ۆRiSmXwkj\_U=jeTIj,"CBɬ؂E|Zc>W5/<$;4q[6X2$)$R [A-7c*9q4D &lm_Gmض;mAaZ?oxf)u""-9߱}>[ۤU4+ĉ`U=7H&2qH !Y:gu}٫铏o>W_y}wd7(VN H 쾘s GB8g_r3cNp=ï><:/mW; ta/o2Nz?zɃ( "PH${H)u?y 2[@U*m.+ Aފ^mK;IP-yvG"a33a@掀?)b@rO0Iv^sӯ_ĦBՌ׸Nk0M?y|ζĘ!ji7W/W_wT4񮋦 B iw-BbIBja"9݋z)%;:swjI%Donu#Q R&y.nv(pN$$A2lh*׍BX_ŭ- ]!CL,V>sAC΄h AbMѭAP=,"Tu)G ԼhNpr[WK)cs"D=X8"T(2x4dA[f\ËWr6p a7:^ O74/Ϳ.C/'vCzt6l(IhkޮEsNgg'Ø1{mB(8C?1sN9"...#BIԪ닋7S)yVA!0 秵.1Fj2WP~ݯ ʚdG!TٔgPf֡d, DĄYHR LTMBɈ,e'F 8Ey?_7V9FL2RIZJa[v A<4lx!e$W)RRJLeLIu9{ƃuxLK*c$dč{9{Yz9mqypX]< JSͻ%Ac)B8䁾nyRXc؛1]5͘H&(B`K 6SnM L$U5ĠDADn{idõa,XWUK1NDpd3Jܔ7R52x&5= m8o$j5zUOuJ!@󬦈ee` _#ш՚ܽ)8bFUGeDe=@T-5RTLDv8њZWw@g.(N a9?Zbpӱ",%a `u ʺ_0p aiP.~77LO}^APջzCP0#!Ga "7pB#H0 Pg.: 4VK_zzq^]^wKhu N v'/\$=xdU{Jf`Ala@(2mW͟|7>P:xP Mӳ{h>, 0L8MWz_?ֳo?=߀evR&N,r,m1mO_|mgů/[O&֣3o=0ĤO˄*Ո p} Ifͺ~.94ɼ2=j5Y"C'Q|׽TAFʪ(̜f"֛jƱӷ1u8|CVB3iwB& W$ebh,Dfm7Q:@\j(cЁ>84`8'}k"w\zMaY!qZjhfLQDVUJ Z9TBQ,o//.6j#ĘDC] H򮂺[wn 1}$nn2[W+"ܗu LP  ,Q5Es pRkř2C4%'7Rio|ũ@ D "<ڗH~&H/^ Wbn)Ft uܚ-T+BD."Zh 8a-ԁ{yiZH|$f.e'@ e[y!UU]\ k$#a RVP'( |ӖfUMaĿ/gPRԐR8zMͻ4s# zKzN[ѪEn773b0Sø^zӮ]n1)hRT\j%#{ (5NNay y9Mq "(y_:a8,CHr-TM!D:~'vyO~|uuqr~A-v*<ֻJHd4Spk P1À(Z Ó'?ypvvz줰t}<l3O^n?>[t?C9}}kk_ITW6$'* @gTt&;w$6X€#98C|wgΰVؾ"Rq;D`3_^nM'}o._϶m!T1Fʪr)E__/_/wo\??7!lQ~M7[ހL9^]ܲ7,Qk](p8'ԒyZIqUMtOm<[k,̵{'LTí;sՎ?"-wpFP; >O3"JaO Z`3 GxS@CYwlG|f80P3lA9rF:2 '_;}x-ȽIaWg$jB#bkggǧ7~?vn什Z#5R ÆXքl\J6[*u APb76S☰ٔQ1~.EŢ glI8Xvt;;- 8GP7+]Ϸx9N zg{F -#&y =H4pXE<ẅY9Zֻ57x-HEJ e"\ Ҡfm޷ pVsSsNsk nah-ЃԀa*;,' S?d 7fn01x䔤Yb(375_ TPD'CdtlMkꈲ;UP"$BJAhijݼL~s'.ff@gķdJfsֳa8q5 L{Cb?uƕW[ 'җBDtkDP ۀa ?H Tiq|+2A#`>HT c~jKo%1Paڣ}ӳP{YWWv`55 FBܲ^*(L!͂qUpv:=[jaNOժvwٽZTyr6>{]vx1&]#|z{=k3ãGz20%@2-|zGT#ɫ[QlfBbS`Ab5_G\EF0..'8CPO='̄puTòѿ~>=OC{Wp`/0dLH% 4YI1! Qڟ:93R[.!֏O%9zyXvHBHakEpYXs9:L=,\IS=Z NjMyh7ۅS䤥#`…,&Ahs8d:K p52+:_xNz #9>?CK,2# [k5=]VUպyfmii?On7MHG2#-Cyͼ>?yӳtZWb@tp U/:ayк\_??,``pz N&Ɖa&ZJ`l" 0H6}̾?jBpYCA7[+7{+X╦yOߺhf <"BA]e(FİkjLj/م7hH躤4]77̥j,GLY r:4/4;@Z gާ 4sw`bo*ߺaStZ8TBvGb.)wNq>b yګ #=hN*f BM RfںW"yK7Ͻ!p nݭs Bs4LX9cN$‡&23HDQ t@ӈ֝0ZC+:K ̛^g;cP\gi\2$˨yD*1Ru( ͥ.cާy{ AffpDRJ:VXJ),Eɺ[6ck;G8 EDB[Z뭻e9RoUPdRqHRfQKw89h֢705b 9*1`V"_GW[3#sbcsm:rsu{zsu̥ոƦ[-%XDw0p m箭' jW RZ•^j]b\Q 9X1 3SQt4"n'΄.-crӎ8{[lnH̀tw<_}f>ܫuRXUM_#\M#pk}߫*GWmMոF$3yn?~z|jdq5RT}V'V jeUtC:o/ųO'}ʙ򨸕!'^ cA`\I:0 n$[+h@xVL %  E"=a*)p4_2R]X":!SD,1pH@%T5,"/\nIC*`bwwpp ^ Y$&h$XG)LD|4.ag e XjUE[3EPJSk}Ұ@BT #`8j\ 2adq|{28I04W_\]Ο_>yt'PZ[mn_nDKJ0 X("Ӵ\~&7ePXdOJn!C.+)^/*uk勅8G-BX$qx8̥" T$`(nKP k" Cmzvt>kV s7t4AdɵlƺG8R ŢssS % RPKRkf"FB@p 'w_&4Af  t .0PÛyM(|Сr4E ׁ|n`*  !^ɒ2-V ϯ7Hկ=ӷ}0{_PU,TYvmnnn}jʵunkT2==@ť# yTWW]~o.>|e[ł`I$ GlW9뿱6]/{zHʼn0),a `Q59un5Wnn8+<HP{z=}eZLhL9ZNoTPQ-iW #桖RK"E)B  cq13\M@&GoǟRx@ A:?>-OZ R pUjTit[߾Ϳ4.= 8#| 5  d%'2z~M7Xv 0PH |iT,iψy/x9NA^fA1ChJ#eyggu ʬ$ w BaH=7_n]-ܘfIa*EHGg9IBl8h5=YjU iofs5O "< T6i?4Iڕӛ1츙G.*?[Q^mCag]rq3kP֔ jwymNǢsn7Vu\Q; kGUon֮8RK'.RXYW$E0IZ}5VU AJ@%C~U8"$PRDwSU苻0cZG{1+h%È,wO/_o>sߍ*C]d"њ@@=42{jW5dulm駟:?_ڻ_F&0o,izt{lwf=q|{?9?5O.@r$:@'W# ;`qWhͼB'/N~t[(Ô8Y`P۠:'Kο/ӏ>~9} 0:/@@ni@wkSc E~@48)>ul^`NS acfQc~1Ymjzd~Qpfw@eơB›94%q=njD@<1Q8@8RtȺSsSS' eavxL:UrjPfA(AfBi~zZz>jQt3GP5Mav30n?^>}[O?|t,PY0T^JLfa Sa(EE!BWiNuߴ𮂺[wn}_M-Ёw!`F rS 18Glg +;bBh掻.b'vj*&r T`Fk!K1#`@0w5WںEء7aݼ*r@KHSC)iLTDV`gܭpm߷n!"kNOmZfK7,:\Q "n*Xs2UًFNĆ:MIZa|̘nu]_nKLf{4v^a2YZ #mrt j#1D@(QDʺ8?_49b0yA 21Y#'$M[k;GA2㯙Q$)ja%|导_~֣O_|xq+Nd5 ysP<#;-gR|{ lRP yt8h`!,6/0__O_F꽄20epA D7Ӧ4,3pwTXY3!0 R! ''D$F 0S[9p\[L7c%l&"{/es0"<w0w$^2y߽MQ) fs ٟ#_d{ @d&A`ڭ >gzcn?{G! ݑBDUխcx)1(ɝE)BLaθ!zbٿxރO{O;Smv\^^n1,sH@_JSː٪2 ™x}2,n3͝P?arWAݭu~.\j7/|#d#_fh:0H:IXH1v4[pFj!u G0[Si˄F`D0pjW{l+wB!xcf02(vHœ3wsZ'nQ}IJ{az!(ɁH,% d+#!p&B 0K)cyޛ;*nT;zqg'vow7?<~Կ`Zڭs^1IEZ8"nM.D?;}|ff6M=vj{yl6e*2=[(PWֽ7 ΅LM;3PɤBW SԚf,Go-LM>WmB0RTba)ČR`vFoZfቖ t%x.8D&H- ԻJ'~~ރR鳗_]v޽GLP U&ts<.@N$Dzp!->vgg)d"w^\=tD2FOiҁi{w?Jw?~ a;z.HD\%*z>ܭlԲ#FQ"(B]%U^dև'3"x8A9ƒ.Ô ޻z. $?%فq38ho|ĸn͠nZwl,J+!BVu>Iy*"0 ax4ZfE *ǀ'`4=E\EhO(`rpf`aU)H [b"rS5<ϓ?~pGw??vQUsCR {#!f$uph.TV8!kw`@v"R6d8Ngݺ[w竎?/nP`/Iv&Bb@$J4TD#7܃6j~(!Lͽ )m\Mrwr.{3pp Vd :g?opk9eD@ʴ뼟]oTs.$0P);1!-ɽ6'.EKbpRLDRU^~_Zm28V~0#SnMvu<7L]8L15Sm7}9 N!d~P-z7n_T/>X^-@>Rn\O]g7C% LjU{,sa<&y!"#32{DNC8r @+γΓN{ӎqUONφJP䉊( S"6AB(*Ά2s!'L@J%KfGO?y:7<{od<=;99YOJ tϸ'6x[92 P1IZ8B\c(Z2 nU _>Ňj*%0$g:X" "d oUO뇧OQA &}{Si߿>=Ab*MzAb0HneDIBݻ!o?x!NcY⼛:C ɲ<f;XD80t>[)ͬs&C]UމE o3QΩ[HI"%Q5i IDATz]wz[>:azwNL 3p{I=A̲V'a$~?u@07@R@Fa_'_k nݭ)?iIoL3B"D\G2dJ$I)`%ҟ +1pt!9 H!H#Ǽ:NFg|=ES瞜QE80o`Isݾf 0j`)a$ ,B K0p_9)c]Nne(6-ҙpmgmvm6nߚ.8;];[_^]Ӧ]4uX,r<T?EބFgꄞM#~JDnqoMu~gBoɸHMFiL1 E5˹)L;^Mi&ZwGћMffDXa\pro^KT*!{2#7CiLƖFܖK yth:p)ԛyó{^/?7dީHim&aA{ %3-[ED<kz5 Bj/q,nɹg#eg?y]~=PR,)h /}yx(gxț@@ =`n'7}>AqB\x@$Huht%"/0._95 "%6CBBXD'| `9XrnCFP2h*HKXcӴrD-Lf9Rd`7D㊈Rt8AȾ8S\RkFzӾA$ hz<Ö2';zxa.a֌_ p("0t|lg~Y,v~HW+QU I)'o=y TUכ> cn |´6Cc.ck]^]I!@a> ^ybHN*uMt233گ?'u-}4L"NRPQ2(Y``nKl&햍R $ R8g ڹl\5ǮA6bG bIM: 2., VI(+(ϭm#,02uXIaX{V˜R``2duF"=@1p}fZ]\Ovz~0HU}p;iٚi#p" fHH0}C L?8R'!0 Ϻp;6sșp-̬#iDt\5C/1X44,D,",(%ݨM1OZmw]T?gf-F%!J bذ?uw޵\w{Ŷ\ˮ E(HQB@Ԅ@;37)9'y9sղ_DѮ-6 5- DO eiex,CGvChWkma(,eWڵ]v{n'm׌óR2M^dÿv.=ztҴ}WZ z}VdT Ꮘ|֮+[CIxiocpԵ Ci(˴hvrQQZa#1MeZ- +J Uks Ujk[]*ı4LCW/M(2%W #Kr>KVю蠘!%^ۖϞfk.seyCIV\vb}}PJ[;Ri]mm!)J-~S#Z\Q5#JL%J\SZ73E4npTx{m5z'K_ױ+i[~?:B/Aɩ9 BT7lۿ2~}흪[BTG~:O σ/:"1N8 $( vHP T?p0eO>$p֭]5sƫT6+tV^'hkKoyt!qawHN2jh@pRPTWE[bEuIMM=+uږ~gdw7D!A[; A8]ye5_5qθKzDD7o+5k;F<1ٵr /Z՟_< +o5/Zm̽MJy鍅k6{']qAxU_^{?/{1J7.~[IwI?zV4yS \ry1.y0 Xlg[~{M:CpXIsߝw)}amn*}7wat&GDD~/2 kE#g;c^d{{ȸ}_ V'?3O_L+R=*C*:'?mǗ{[Ś`y&-lPn㧦k}ZDD7UV#{υY&m HP0䚟}. |5U5Hk٧+/jt~Fz' O 0nZ')VJ0ypQgO9z-C<ƾ/53wWIILw}-k5rs7ohw[Zp@jy醠[ feZT~.s 뚾)z틿|to8׈(愎:Vb7=17'~ %n+uE^yYo(O+ѻ8[| y )y*ժKѴ;JorWCvЌhrwnP6hTaJ)[NBjg[斶8mA]7wּJ{ S윷`}}URz竊›*˷zһ"Wxs>^[#rr Qu')9,!.66'@}Q1]<Ջ?X~c?Fml__u5xmWDDdے^|/^YEM(.1g͜Y 7{S1#Wڶ~o|;bL몺ɋPbײ~Cw~)"beVӯ.ܶ|ߩviDpXTĀ)׍KH*9E5D 2o18-7qSoŷ_1?B'Ko5wdzF=~j\`/[7vA]tl51bK2n}|'""axJgAO-340b`²֘.M殭kKTTڠDDJ[S3g̴Dz:-[[8 kוl5qK?z-k/;vmL=awV)"|ZNw) =br,e6 `M4hK֕T//+L3V;5Y gWD_0g767{nO{H}驖޳u{kNЁLN -Yf-q͜Mn\ìY9|pZuT!)%9%nm(HPN N-HKH蘭6bklƪ&MΊFnII^T]ר;׵h׍EyYWX`Cg,m*_iv":Z.k{>zŘSV>CV8 Ź9ݥsK:hijհw溝_ N߽`wGkjlѻlf8hݦƺ ]]7f|'V8ڱCZfEey92,WPH76Ӹ䝷vKѷ2aX_[ I={j(ݺnfݻc埗} nic;qq?{jgm/g^*:z~hۯ gg`QV>ykeC~ϞѾtʺ(񺒵2 v~xN^̗o yGlY_o"b$M[sZn(>2MKItDۡ}gK jxT'#l+%{{ԔOn2,먦twOK9!Vm[ߋ oqib=z3>3oϢ;{ws6۱9]cI}Պ%f:}Q![?|Ë/KI[>٦}_oyQkK?j|uf}Uwf @p3cRΖ$oۀeo/PUvȭٵ3"wl4aw_1Վ.}v:,ю1rvmWD^k#?gAc?ul'{I9Xfx_ܥ]PA8x;,QnX)h_vK8qC(iׯ|\#{ַv?4=OBg;} (s}o)QI]PיLBHPNt*!g).\uAo|A1ŋ&3JWT%qMn;c8qw{G+;:%bt?KW>6cׁf]I+$ Ģ5l :/ߨ%0̯:ڿ*:%˾id˂|"'HkǤ*))? `>33v'XkR'ӹ HP@$( HP@ A HP@ A HP@TRT`lCp؟jhiiI0NĴBNJ)0<Ouu5Nj0m:)ضzFtW^m۶8gBLӴ,+::nŊPHk-"'0FگGFFGGG[e6ENi---mS-daY^cx'a^75**J}'`FDL4 òp  85CRʲ,8ysԉHP)|'鐆_89$( A HP$( A @ijbscIDAT$( A @$( AHP@&UjXIENDB`ntfy-2.11.0/docs/static/img/web-logs.png000066400000000000000000002203671462047176100200150ustar00rootroot00000000000000PNG  IHDR<;0tsBIT|dtEXtSoftwaregnome-screenshot>-tEXtCreation TimeMon 20 Mar 2023 03:31:29 PM EDTu IDATx{XU IgA[! IXB΀W-<@*8b 6 ##JOD|D4MŒ)P(8 rޟdwuA@DDDDDDDDDDD7~nDDDDDDDDDDDD~,DGDDDDDDDDDD7f,O}uԬSVLY疪[w/"ѤWW`]}Ѥ>hO'rkħq;` sö֥};J1?G&""""kZL&_aڏvpy;Lqz-טB2CYN%6X7cV=c=ߏ.ǝר0|Tn\-! gش&^ʼMs[Rs+;49G%pKRWɬKɥ1oM,:i Uq-oѳA*yg ~zٺbgȱtˉ$#3W72I_̌flC܏?a8UdEƳe*)'{V`ݚ4TR'׻c'bJkKòQzMY1|\$ \AHDL WUpיCQt?qY3\兽TpK,XO)̕Hy$ųD #ao4fB4™IL nD5mBOp &j{AA>QL8.Zן\vꄊ]A,W s*EƓ}疐'('N{cqJTu+ᩁ|q8Oc8(zzZ)? oyg56@{CtRiɘ@"Rk2f5NcmxWqXܭ-gd֥$/P5lby 2ma _$}S%h1~@ ݜ^My?i-( vG6kR POd-˔>$-f_u rVƨlVHWىӐO9;Vf슚~^%HZ9D-|Ы W̌z^!r+po<:BĖ18a3;Y9NeRfaxGƃ"2tGՠ)QYX45 ޤbDObݔr"7Z?CKDH6^ ˴:OiBq f}]t;O= VZY'ya~;_?zО :#L1X?5-B(VD `4lk> cMGf]#dxL /VZGmL4C""""?9QیX^ΐ# TfƓ?Ixg45WH!?n-Ӊ|P KY?wϰ^y/ p1"gkrض +V3a!k0Ox>|y _m/_=(zF4c|Mkw}o h+|ѐGbr&tvrԞn~঻G=>/f۫`!ܹͭyBZ;%nXE=wc(u3Ш\nÀn̛')Ox:Ie_^里!nmEK/`Twr %j+)7 6{ (tƒqR57U%lvPCck~vz?Yv|59%fPFR-c$Qt2JM<%RMl3®VRRLv'%jp#|/c4S݌'@SAآJ4.pl; 4ٷ&}W@)ET TJ(BC*Ot\H*l;kJkbXGNô~t<5)Y?xo0.O#u8m=(J.oɢQCY; mRə?Y!u;Z_ !bQ^ԟX}57~5`8؆Lx RG| +; 1UO0Prkn ԂA}ʫXMM/1nn]qV3lhsN0aOñwevW~gu[;FPoܩTGM)ue L @zNngD{<7C<£z# QTF4ST YCZ0cM#8-}`#YXOk] 1g?َx : OHMq2pL{ͫ xMAHE9(C ]%#p_,ۦꮴ4-}@uŸAA;簉yTD")JssI_m#Ưn"rDwE%KF2lFۼ~bK!B*YyIu"o,e=(fS1> R)u&s|Mm~Fd1ȴawHp4g5)N~q2U#K23 &'<-'\$e gb hJ!zl5-G2V!y(G7@]Y6ծDo`ǣ$%v) 4h;it!K?h05ad. {HbOt*|ٴهprn"֥V̊N`(&o<ŤL)4(x咲_߁Op4( wdDuQ vɥi.tud%tPU;ԔVS]}7xD:&y1v!Ycιv,7tz"v[l="""VFpS \XˆcrJwA幯ʝg(9eN̶wZ|v ~oN֎F>a 6DjFENO`m3]+y3Uݽ'Q:1{M/M]^U ϓ^ Sx997O By%!-8UhU|Mzc|A\7|DSb3uus gً7[; h6pt {[MV~b{Ȼ'&c~) lj@[Ȗ50_QRO:jTM`d&QQ peuJ󭓁% ܻRKv=v>Y'LnwK5WS'4'7hd.$Pw{S, 3ɔւ)fJX=.FpzݐeƲ~Te]'ٔ\Tq#O#G'S<-?b!g D-afu9xIlJsl!yǓYיͩ(ݟ{NM9}S%ǂuIxqi\!0e<-1;Xkp0vu#I+-7[qXDDsX:'ԭr.Hp19Wضe 'Cӗx^(]0`~ԳXVLr3~z_WvƼׇ>R5wcqc2}^Qxj/S-pDY*tӷs8] Hb)hpQWgCFL]iSJY~MҤD7He'QMtŸ!78,KNĂd>5c,Q鮘sJGŌ 5(R2=>VU`[\ )֠NJ/eA؃TjTRk PWF^hQXZvorjZ4fv) ,>̷/ iy>t<"Q%e7#LJe.4Z0Fˎ ەCugH%% jt3OؤY4(.HdFMRdF[S*Z@t:Ou3Ξf$c/wv7bR_zw5e ]ܱ^Ù?ҭUAh;Hh8rmwW;I;wkp 50^{{Fdke/bVLY$=ݫgׄ/--1|N?|6o爀w?b=?Al[# tF.#>|Ƞ;><-lH<}OCSYHJަ-?Qs&,h+o:gDB'v U}$u,` tr<kW|@9km@+a;XHBbH,c^1n%1;I\)Cհ! K7V~ fldd@)R5j52''x0&bEnHprw铍x?6Rt43Oy?(O$}V ;wA͹ ͦg+F&saSqHP%R/H%)[F3R$fW0bێA %DMCDx`>9%VLJFS7pZIRJ? %$ UVm;SEHUҖWb^x> lYMD\x\"g[jJuQwv(Gm ALQl$325``UȥАF| ,pAךּ)S_DN ߧYj[dR9KÊY*lg\1G2>Iąh , 16/KY2]H D N^^dć2'K$XAΠAKCJe`.|mtjUKP&D2H`4|&G­bvJ6c`b~s:Oٵ8F <Èmg" y 3Y7MD4Z cW*n'[fF?B 57Ƞ>}{OffPصK$0?00#_ʞK{]DDݟ?hqz_N&yT~i|?ãfg{"mhiscQI mҞ8dJmN)L۪ g+VDecwxDDDDDDDD~]&jܳA3(2j:ˉ bƜ愤rǐ4)|焑U#ĩ"+28K^zU.$79y]7pt% Z~}˜CXu8 ׼\]^9 x_ֹWakLr[L* MǕSLaպ.ƖHb‡O6M%gcPS9"sDDDD:G+?`Ň[PiU/i%'r_4GjPjw(Wp osA=-ϋS9{ԣF浊m~Vmem{'l@eJlOd֚YM;z2FৗG(8xʱ<אO9;Vf3ˮ<} ;{-bB=oǂhU&3ă^}C>O"΃{i.eq ){XLmVS?@{Y/Ƒ :ݑq5hJGV:v45 ޤbDOb@ ݔr"7Z?v/ N䣚$D6^z;E6DO's߸zjj2CYNoJ|~&=GS_ IDAT$r$""rn );ZWU:Y4 | d5ZtzC'Bݱ6ɍ8o,S3B|E aRxz(ryȇY1<FC0W/)k4ڊy`q EnN]r:Co SD )g}|r!.5R0}~&̞4M:-A"Dew2.R#ȗe %­Bڷ1|qPOf[uW'ZAh=Q>1DHV^nRSOһ&y #ܬݼg!*W_ƛ'v)"U'9ʷ\sq0޼ҥ B~rv0^=C'ķBɭ{*cr}iJ/kO Bjep}o >-^MgRnOkBY}}~% ~[sNa.xߪ(iFxNpZmh~_57Od`)ԂA}ʫXMM/1nn]qV3lhsN0aOñwe~m޿aĸs5z_?F޽1)6CLQ^ZW9wP{~&:!m$cЃ?aoiJ0~iy$w8eAzc<1)8WHޞp>>Af^Qzr2yf&;9W⭛py5IbCm `[e1׬'rjl5hըL%U^ξWV8:X _\gA/Cd0cs+nX2:Nv9Hf@S} s%9%ۛbnflu={g )kS"v{\2)etNB+F ڻw5>-ٔHB'`3uT]r F8w^F,NBޯ@b<^Θ-9՚RtڮS`P69L9U^Rp6UBd@w7rlq;$,W\{ '_t~I$'Vo"""V1h:~x 6LdCΏrtJYLs!#D,¥ÿgD`ӕrm`Ç'hjˍA >\1O6K=]4U#)EwraS_:K\HGG;t=t]l\(-_eA>')G&hiRы ~)N'iE-np!%%l+1P5=B[<AYSUjfyuJ YŸ̖?SQI6@Mn^}uEBbim]sRM L͎2/TSߌ%[zypHj:aU{qm/NP[Ig\R(" hl{UI4[ccb g}%ZK ($XK04}Pn|6Ԡ{w{0^uWi$R B7陽ȰSoA tŦ{jP]y>J"YW͓]`J^YHwQםFQ4~YHRވ#r@捗n̜QYHi/5l'2rN@&n_ #\aU ר Ȇcr;*}wV6<Q/r?wZ\V`xʿ9YA]O]56DjwFL@չy3U 3)"7Nhy/M]m^Ә6RB}m{i|Vfan=6ؿMl^`·?Oh$,Ifݪv@?;歉~WRv9{5+;\5儯!ncaKX`# K\rb{%OM %r#AH1~Vo@⌟a=#Eb&pIY] #&0԰PRJ44A#\jh4L# ۈ$PB2P5al=Ud`{,]ż!mye)%ψDG%rd8Qu;.F1=" o3 `b#S\B.4BS``ӌ"]M(݌Ol"J Wx]= 0& yT 3H0n 3#]}u7G<2aKd֬ `gǂ5Z0k 84 IPЭiiB\ L\e- i#Q)jI[F%[ Ef .KxH, +fͪq%H 9IhNY9YO4]P3Grľt q,u^YY3'"""*9nwAbdŔ8fϹ¶-k8 ;8>|{zv}ˊV0w2; p'hV:Ik0|z(ӂ0W2\{ ǀ3/rKU-u5kc7Yayw&re&=1łO~ldd'Qlz /1۫-Z(+%s NG1iVÎp@bЋ]Az49ⷎ&6G> Bۮ=qz?ۈSUJ6V>`<YUN"JI[gmsQ_FyH OEz˿K^.yCu_|$qGƇ!U#Q`GY}kw|,l'zaPZc\D7DDDDDDz`O'oGޱWnqGD{oђE? p>$GDDDDDDDDDDDc-"*<"""""""""""YM^f c{55>Dx8Rqy*";zOOu2=9)Qo.]dC."]%qyo93:=rcxm>os Se>^ゎ+2#139k_ DA7x&g>yQ4M_DBbw>$R\$BS)t=L|6r6Oҕv4׳~3W1`ǞVI,rfb ۜ&Yƕ %+"e vE%:gƴnF)6CSQBD%<]Ȥ *S]vLL^ȌbJ44R4FƸ.eJ0fv5pJ!CٹVxR2&3C)FL<8{SM`ȶ,bh |=jg/Y aͩ,Pנlc:"Kmwݷi{^OIXs^&u#hA6IΈ\ ^Vp~L"t}Bbf!u*fEe>yjG:IA NGgR]׫7\ca̲kd(CAW޼ML:Ą4RWrtrmKPVRnAlFrbIO%Fb4q˾wN۽2)O$&%:sW534Z`"bԽ ݶFgs7n\FǿDý cXurT̠2u7OisK̠ [2iej.jȌ"PTwØ ՝|J^#䥹֗=?R ~ƻDͰյ}}ŨVQ#К#ȃ3IR )W\Z|~P*B1aaJH4)R8v7USAZrㅩӄ gN˲Nb]O v% g ! =-Dy.v]{RX>i^/J!}r]9scׇnor 별>e{RX>q zK{-U(ںPpuQH9R,߫xA>q>[s4cPtW'ZAh=Q>1DH]~_F + ki!+\8̳c_X.LM<'l* gG ٷdBokDY ܿw!%PFeŏPLt}DMRqMMGM]p1Q0 _VMZ-hWaS0%LBAK`&1~Usbι9\:`:qhDdy5ȉ.\vZ2nqbKTY$ޙJ#2V,Y$6IDʇac|y+RsjdZ[j,$ [('1sKQ,X+NK&*|uLDzb{QKy%wJ&//N| ?DWIb$Qh{ײDO8d_$c|SNV & !DH[׎Hc\q&2 !D8efڷIb]:di6k-u'D,up]l|o- \ IDAT^[N+{MES%f!Jeav\'#)8׭q_'ʮ> ].DwudKqY[ˬmU0,Z]~l>!"g~"TkLOal\.Vl)}~@`jD"fUL!o꽔&c7 {J^dFdy7%|najҩm\<Éd %z/u`./ȀmcZfF0's6)[f1~);| $V\".5zFxl9]aeLn l,kijd%Ժ$i@zp_{cXf Å(ӻa (u28Ӳ\=ugKFv}-)_T7Nl(ލ06@3=lzff=j0P嫴DURKQZtx@G]Ю l8i|ōxҶeKHHHH-\$3GOsc a:ɔqM?{Uփs{lXо$Ģ-/Squq4ޟz4 y1"E?T\PMs"V>h97iiF L\U]3lOBåe*$ c|QlS8"&iGa?GiuG޲xM'@uSX\bm#𵣷Urrh( 0Y[i]ao̤e)LgUz]B ;SXlXRf5 Ϩdqa;U=GQV]yлFpϡt9ycBNڪnK 3oo3BA7a `srrf6.h$nk1^I5fQ}my2>2ɨ ד2Z6(,\Xa C4[Έbph-ٟdVͅg(zJͨ֎!r<3Ln3jڭSgzb8ѯ´Ų®k?=r d2'l  0;rOj$9do !,Q=f$$$$$~?BaՇ_RfM.$~Aum㿼vs+\'$37َwg<._<|3q$(OHJ܃h p6Vzt~:ё~[>] eso̟GJpsX5!GOe6kQ[zf8݇!/~n)$ϟ[+hHXJƎį{HHHHHHHHHHHHqOHHHHHHHHHHHH'!<Zkllex$Hgx$$$$$$$$$$$~H[$$$$$$$$$$$~Hį"<Z9CRӿP)nh.7ǿ3==o#b_'jgr>ͱA78Nb an>IqX x0[$$$$$$$$$r[/3KP)2*p[6j>k/7Z*žoG.Ǎk-O\z?6qh $ƻ?4d[X:ɍk4{@qE,L0Wych2Sr(CV s鏟 MQ&Mnk}wdaV`\-~z:ܴ"z{pAY6meÖ$M6lNE=xq}q}a6?+9@tҢuJ" GMdV.ų1au M%[-XX33j˜I_ĖBݭ4ȘF95yxs@X kM @s$ (B9 Y2@yZ(~{*ꨩGp;{ %Eı8c(GQtŴHJF|Pd[,$ZA}3@=dF$ĭ ߷⃸h:ROju9q6 cotA1NWI^,옹"r`%TWPf9Y8@'vkz%9-YCF(sՕe3/«QXX,A^Ą gkN5nhjy7q8w%#CK8]R bp }Q^h&Ce%eٰ :~P~0Up׃8dci t&r:òy8M{ S1.%xGBlvSaDžDL2֩}A䞭B9naf 2@(s2AyB}ٱNEvB49lXM;bmI?&VJ5=Xm|?~vN6/ިgpԔ1p|k95m "j/-RvP\*/ntk4]tU=gg b !,0 .qlJqON芒YpY(زz7lxkS^-nx uZAK| b6հMÔqwlB_>̷СBd`dLےz¼{(߆ŘDQӟ @H#8ou>.= VlKpۄ /}JԟeP>.gRA5*QFo]n'v5?@F!X1.q-&d:NL_fWH:@C c  ?ܤxd]Ca72c;lA]SI-ixS~]'YuJ!8+9s]fodch# v谟8s\ :Kh :WH/ LqZrt<5ؿb6/͟͞b\ec{ZnC~Tӕ{UBB0t2l CT\tS *Nx~gσaX,n}Uz9=SXQm-5ڶ}:M#7*'t,׾%[ 4ci̲SS}ʧ3i:Ӈ˨65j9up76]L?6qrx†@/ЍKHi7^kǓ7㖄9Dž`;{dE{ʠf/&B'ʎ}%J9"!!!!!!!qO $ݵ?3#!!!!!!!!!!E2x$$$$$$$$$$$~zHݠx_xuVN4 "8V9Wr){M0pj-PJKxmf{Th:}k}wUZ?\] ;-i*ew~z3ˮ#i?\=ϐ;ZCu6K": Hk6X?w'yYe,FC΅asP :t&6d%SIHHHGs[U1kQ)2*~nokvywpo۟DolJ^7JpZ컙Z5=OʇR܇s'g>F3a5s썟q4*2]뀅3W3YnP ,; GҎr-W/W`4%2}seCLbSrFŲ"vSxȋP6lͩƍ Ct ǹ+>Zߘǡ*K_KĄJE3*+)Άёx򃑬 u!KKcX#79SDOl"[l؜2u-)kG8*y'r\&*j7:zp\K$cKD*tMZѝcfF 2'+a =/PߗT4m'D I}ȉ褟Gy+%K6P|;:Q,@}DƊ{g 1!n넳:\B`ϔ|mFL램rȨtcAVۢ~wg>΢ejFNr&rNԢ6ϛe[h-]~<t;mwǙcF\jx Ƹwp5&Zl!JOL$lUA#Y'u8:IӾb_=rБ}lftW1vCPv5Nx?,˗4V4ǝ_as9ɸC,>.mJ3'C=@"K'z#Sʘ|Ďwgʬ<啄 fEg]}ƺ+*IXb0 2yK\Dh'i`<^͗i`,>~/1P!U Ѝkvs?n9i5ǺZj4cCP{x?QVGE4Xg_(Β94źt FӋ*wqJ%`R'}ЍAk/ۏgI^qB]t ]b É֖t*%Zk9ASxXQƇ?׉E_=!o@qҫb 8bXr+EڲE1)/NLI7Ibgȸ&uEXNB+k~q&]B\!>UC-gO~qE!n >2qN]mi@1sSQMKfmy7Mޫbj1$Y"dFyXߕ̤R"_mS6p?^>+D;3;!"m8`1tB\"e1~tBJs8DNzYL񲘺(B2Fdj{MY<3,-?kDȊ00Wm$vLDCBM4!i9B,n"j}g7xpkr3ɱŽ[KL ؚ'ť˷$~'T~2ܘqdLFC}45(2PMY'V?CK8_'s;J >rQ cCPCpV3:('\z0ȅa} .D*44\w/e 2 D1Ly~A9~"lҹl~6'Xay~vx@,{0Xɐut#2ޢ#=Ur˥D.?fxE @븸psl"b,Ң nf~ָOrk[f`Scțzm(!! D}K=%~on} 'OڛƄ1`-zws-?Bo2a07ŁEpux5zoȀq#YF7/`1 W$<s&7O-ō*s׫7m>hqgbpNK`>t6 [f30g_=`VFv׵enyewO}ܖ )lup;Orp :&w?Of2 xvcl+< 3m/ڮ뱢bam4j7,eŨ6N4YՇۚ>6NLx@W.E13mڕ kJ V.mk҈}=L2g~`6/2SpOX ]dpao!b 3Ga&.,KDuW[fqv<p2?%y/9v'wPrϓƖT_+vWDz͸[p&~~gС ]ӳ{;:{#C_<'T=ϋpܶA~g2R]u߶눎HO('dO2\==X%s:uD󓡰 JBB?ۋZ1xg@⻵ݩg zs<~]vZ1ln82Μ;K{|Ik e|W5Gihu/cl_K=S0S}j mAI{}W2H+4s 1#h}k=,ijИyG'k3ܶUCqjL?S͸,(d4 ʃ٣JlT&g;NI;nBTVb3ɳX6ˉ*Zo*ӊpbȜMASߺ 58{8` jPܞVZrrK[ہ#PCh#笮khݷ ֨&sP2Nxw)Cnqݵ?).h>O'sn_f6vkrrJ}Ao~Oy3 7 o4q@/y6ʠDn4wiYOzqY}K ح\=Ʈ,:5|13}jSSwQa s}TfSżMڗl4s<:c¥8Ջu]݇02s/%B*=b"lmv`1W aZ drbYag])0%kb T\3\h}=:6n"̉ɀ V2ǬCZԕZnw`x+_Ox;uH} LN>bG:\Iѥ;Cxy=N-3<=wi$Wzho^DDŭuz,Qip'3> *. rza_Qt>VWRV/gWMLU(1q!YmOFs2">f(pV#.[Farl"F "vN%:k1#] <. 2tz#V!Ff sJ9ٶzO ;A,}Of\DU$c=5PpL!= ePTix4ΊnPO J"HtvL gCZ F5^ܝ2Vm9Pv-88v/Mi&MY`e\Gt)&"pwLa5Ծ$CL$Z82[>;;;3MIYD:_~~fso7x^ޯu]pd΍Cx=:-?x.xZ#n# H /rU}o׶Et.ψ&U*r(? !3dy?g1ԙޓ1јf{~@IAz2&L`^'ImC25f@xTJF9:90պ4 [kVsuWkInfm?6Hk4;|q4h~g^7< ݟKpED}Amx"tĽMhX[{XYc-kHzsLdz4Z_Pfqx^BuxCQUg6ڳ ДJ.kZxhUe_Q+>ݔl+?ɛ(ulq݅?<,tWs=rtYev~”Ue:WPD57rI/Z0)oeωFIg2O^&^#~ 1)M+R9\[RxCHn7fALmXYiާ,X‚6O- 4uṛ6Z֊uj֡gWørťh\%ovV^A: x;3y&٥|FHdPu6| lw:ME V=7ڠ:8ȱw岢mE~ éVE+CnЭ#GE'e[lP}=[0]С:`[4;b$yn@u|ȆCO^D( ÂH\DZO?łm'x:Fqmnl QQ5f:ȜULo? %riá˔I>4+1[d#JV|e[*}|m_0k@YDXSrkMbUŅ0}[[c8ev&hU*/3yB\0E}H]3+tQq.Q4F^Rpež$uwG:_Sso6[0R(`.z:|:˖3Y,,"eǵt?/+_x1;L+s z7/s+)dO*^ӱPqm|lU[qe,UשVd%Xn [6E&3g3j]:ߎX2@g fl""$gAXMAN3u`=gcWF,2&y2Ge" #uѲX׽rΆqO]H{j7 m<4y5W>(Y˽g%LjrkU!+j4ӕL"-AGa[ޫȌfsRAKC6ilL)#9k.Ű[z^ 7V-2+Ugp:>}ؓDYiڒ”MX|֮i׈ђPU9kou}IAK:XA6Z*a$w?"mNRe%q>|)JXi唉ʯZZk%>RVeBJ4_VU_Hk/a4vsi|:;=NX*W7koIKOI$I%ۅu3ߕv䛠4G&V*$IwZZ4M/|wEI7UiX)=U*nZT*IRқ2$I S$Kw-&_j&*OZiw?ĶV/+GVJ/IUi7wI)U> IJt4W|IUyr.7M]%4*zdyZ$I ~K%JΞ{u*NyKZzPg_$߄2IGJck&J VZKJܑTrJ)2-JZ<]ibiIJ]MϥKo}WZU+bim%ϥ|$)R7gRZzAG:.Y{{d49T%ITq^uZ+/$Iʕ">G$=|vIJH$JǗ%ymvIo.<{Q׽Xi唥sV%}X&~퉩=T}xb4y.)BR򷤥_l1DIgmjPʼ ?}.92KӗJTI~|$IOxVP!I__ո4TVۥ*)a_Ňrk\>%IeR[KFtva΃٩nz BGjaOћ l׹ fOF}u'4h#,]Unft!TMˉVCTt`'j9&AzrRع>͚Vh}J ,2$˫XOP\7:Rl_+BIw1%t6},sG50Bci蠧SNiEQb}ʠkQPb]vN <_S)[ʡ 2n\ɢh|'~QW0cz`d('}A)ڴgMr3XWʋ ;m3es9t7kZ7hL&Ϭvrv| ső]M"0@AU 9`;ӥqaHr4/VD,8z/0Uv"3a!ݍIInV]w36Y=-M?Z#j sgpgcF `r1Y61$.2Gq7W ^zk .+!*;8n_3M\[K31;1ƍ_ /"Qaj¡6ve\,?-ߩ cn/o+ iC~c;۰6І D e^+^wx拾u|Xsy=eX9bix7|ʚ56XySlIN+d!Kvbg38|ݲlUZKQ^D!"\T 9,egwlh㇩O/[ #unŜHW5NY욥ajP'mYOf7# '!% inLQ djBB Jt0ԁT A{jLpZSDܿRÊ?е$|18[Dœx,ZN _}&xn88B"ʾNrRhٰ$yNk>wELQ!TcߤCjFsɹ_m{OR!fUuǏ2c^< ³ЪYtkA.-ZPFʅ1Q`˶hۙfur#K8Ε沨ona.9 :jO<YUgxN7$r(2HRQ]Dre? lѻtD rtePNBbFHkcjV6eΞ.2=VO!X49PuNut_!lZ˪1f#9 ir~F~w/oWW88~2GY5P]Dܞ#䌔*bopƵ; Fjذ|y _9HczMc"+rR9L7cFl}br~i]9w8f\&r315V=nLZ~ 8ۻLyוl5D> ÈJ(u;T{k-;^g](l}U׽,sҾ0W_퉩)߅0yf=m-Jjj:.&p<zڝ}1f#DYuVu9-t\f= y)اʆJ3ז$f]ha"N NAݖΐKA zGTAhV>oԢO/,0+=Hг`GːugťM,]U:[u;_Q53Śd7|CkDșo-^LvoI?݅[% zMI c!9r)<78o u)}t1,"U+z |%mTLu̸Z;&\2t>O>чINxr#@A,xYDR~, cu`6,ZgӢrs1Ef,eG<a$PخMx+fT:Xi/bY׮]cQX*@סoJ=!Fy*|H5a@GV7^7)8T +}y0Z%6kg=Ζ},}XvޛUIǹ mcj;eCX ݐnLer\֪4uXlOau Pm|Z5<39ꆮ Փ49+Rٸ΅4nOLM;7ax+:auGOTήA9FC06sUغ0iOs+ض4=lN/ +nź+d2mӤ{50 C_ěum6XVӝr6N47H~ ΂ UPÖ=֨Ac$IRũ;ݢoG9q>.D ۭ9׍U8^aPc4_{|Ɯ0>E~ű0<3QNZRffgwx1u"tĽMhZRBDŽ};fvK兝h <fϼIYA?֌)'z{RQ;>3!<kB@{q[z7ul~ )mO:%v?Wkj b۱8ˍQj_>&ތK]iZZ*oW"Cڳp4@V{ו%qyWڑ]ߒ(kѶ=eRORUr|#ٯm MaʤoI>c=dveAJ:f6AJ瞛'햖-\J^-,)ȕNW:tCs(EQS\?RvSbs$I\):px*Kw7KT%K!JSw8IV4sy'"+GH4Lxӛy4AvĒ:[0C/f[#21 op~6<㘮fgBi#:Z'= 'l(E$6R/?B1zsX6kA<>%Gr|$Фxo\'9#@17+T2Prb6Z*~f%L4m";2w`wJҢ‰M PH'/p1*{'1u'KǜaCի;5}Æw}FJ2U=:S|yaq<096͐ l95B .x/A&H cA ԕgk7n3@@ÞeL재VlhPDnON]u7_7~7L LoA1ۨmn\%s/k@QNYuKSP#P7YF7vH/ !ټcPMN\)O ( b׾~.`YV`&eɀEY$L%=IP]P|FɸߍǮ1c$aO$PV\.; QL&8C֩^_ % қm9u*8]gM)9wkuá"|uv($!m5W\"MmaP^ J84=m:|zҁLj_c:Su6!Co;/|:L3UOu3)aIr5 7zpU6Tee?2Y*%fLml`Hwc(+R@q*)w-aCQ#0kAb oUb]ooûg[l0N,)w΢ /^t&=~Ơ'Nb7a*M@ւa:d* >X/'ZX$ڪ3/+ 2djbBB~m{ߠB`kg$  U!:p58,`Ros@ջ*CjRq[*\G(?(@A E@7zqDͶ)^E<~o=>5>u2yˮ}T@FŬDJ+TOtHGk~u^nSV6;7^GaSS: . =~=U`Mu~r(2ZN^&/N}uZ{Esw=>#lHxįXth;( FWQ£fkռX^UcF#z0ۗ7ӹ!yv,ޝ9zJ{׉ = SWlČaf ͳ;@Yrt`蠫WNj력ȣƲ#{ȔrJs`֯f\(Df *eUcU&+Ļu6A ΐ0h2s]s\7JFNnjI~ /S(H.ڬ+%wy+#lD~r< <Y=ݑɠkj40sd$zڂ  xnIk"s!4r<]D|۵lq¼GOd5{idVƱtA:_ᇝ,k\؏ :[h7MdO=Aia6e%Y,xzv z׸ IDAT­xd8 9(LXEЬMhYi{8ʐ1}%AAxM|N=ikY:0p7ۼ~ţUǨcw7}BasV1̦1P>A 4uz1qa?>| J ғ/5as1Pu' h>z4zXsur`o!2lHQ-Y9 rv! d?f:<ǵ?$I-8=̅~<#q,ۢ)O^H)ڗ9gzӭnZ1L! _aZcu; [zx (*,T:?Z>ce!,ޗL - \ AA>EFt驪RW[=]s=B؍n{EU=<   'nAAA_h  zAAA~;<   Đ6AAA^X#   K4xAAAxa   /V5x\3 m Dz0B>)30u. 6 tp{ߍ)o3+{p[41SHnMQ8Mudyvy1;"Fpf+2cik s,[=G^uZceF4[Oaަ}*߾lML  N=J>bժ,_ )AzO^UWH9րV-#SY2}(s4#`5>aܨͣ;_ƻh@zxzM_XeŗG{;al>dv޵_7%݁`ڜ5B'CӪݞkLrlz!sӷ\-Q)gc1?`"Gc&C)5p#[?oG7mʘAA0q_ i|\jbNW~ezLV{2YfofoMbo߃c^In@}GzJGsy'"+GH4Lxӛy֭kxTv ~;bT--dg}sܘ7pjpep{8+ٙEZ.q~pƺYdjM"`,,eHo#kӫ.97e3*'IZn \|UW &oi8OH^Y iZ^ӧ.(*`4ܧC(Iرh w[i>;J\ Ws!-\/%E.o׌SI~nAƤsd/Xk4-o"c?CUq#":/oq,av*至]w8Ɂ>8Vw1tV[iG+H=G|iM0Wj-^NGD mj+z2u] n>&Lz,i{Ws V{ڰ571璩:ħ1ƫPqo4ՇZ@y%'?0ΐϩsHצb65kUW 9JC (3qa>EpJD!x.AII~R2Y/Y"{i~6h\ ?Ko6S iL֩ptYo6oPJ?ܭulMֱIPln$Olgc:&c\JJdfXS]C&͖sz N=CYb^%|7#X ؼݍ)@^غ YǤD\ĭ -@ā5ӫheN=3F!~c=Zhb`X@?rKe;xLZԧlB!8OوQRL|Iwx}gOW@0/퍩)]ler5^Suib5{4fU$fIm9 x}h; FOTs /'tFSGkޑavA_S?6כ& oy?g1ԙޓ1fҁ杌kx.1xc؜U̴n<bPvM^L\_CF5WzTJF9:90Z=[ݟr S='zkf\44V<{ 7 UW ļsdsR lh*&ʯʾ{AZ^Z(t . EmMLy:Ƕۖﳺ\<);s7'ӶnD}/"ݣt{:JD!#L[v> .sWxcTO4ի*ONM > v[ZNpo'7-}y{IZv| qgbM𨀋w1"EFhoJnOrLuxK{ h]ƺ9| _ˆMaڱ?u;)ujؑ~[b4FIv.S>Gf턪$˜ZTP o0?o lwoVofoNDj&y?=>3>`fuOb ֝Krrc堒+gΡﴁ?j52a+c&#I8le[MU+?dž%iŊf<wflwOz+۞^{0o}ZWHɕc\|mQ:pQAHJAtJJN+k=h}<{ F 8JnN%?c@<<܋ `5}育O}J?U/sˍ*U䥸>}}Q*lp`^$,YZR]4ip~7(yI\ 4mqk.G =Jrek7huo"c?CUGq#":/oq'p"/@Sz:>+'IZn \|Ӟ̆bJOrL ՠw k')Thva[L p~^@256 ;2w`7~SDLU|I]%I7޸h>JICa!EL|1cZ/Hi~'%%fS]qV# JUUB h&mmL Pkw+2rPc4jϑǣν%>LU7(h=J /V-ved2Or@>]p|Ǎh8dr :Nt:=ly]o)7aIw^N%ڽ7{3\9[Ǜ`ۯ4}Tr`T-f6"L5_$< c3տFS2I0ws4A6t?qn" /?{&b3{nM7:\$uJ4L-Fdub{S: ^ɘ@M #J/,d0Ou*[`]+z* Xb, ܖh녝'/cnw䧈Q抩F)c )KbΖXpgp"F{T6nNQ|q4("7'O'NƕAęyqRBp^ۢc) K*u) fK?:>t ^ɏ of~,\0' ujTg*p?}p~ n;,8PmW^+# &SU͕W[yI+ЦVAYV3RMɜW11y'?571璩:ħ1ƫZPqo4ՇZ@y%'?t%Ex9}b~b?t&C (3qa>>'-e|8@ӯd#1e+`vB#fj7` A2mdLs_qONR1a z<^,?$Wa`幁u,^%轶ٵeqӨR*u&?6SW1GniAw8@hv.d̪ yI*& Z/pxٰd5G J%܁Gw8#NVDA̛3I 7A_51GYHMyhP$^dmg̕mXnLϲuk{a#)R˴,[=b1 N%#Jdc6Е>]Sut5~nBcu .&j+MPVRGd?K6xjN>ot Ӭ? $dlm`yݭaim ;ǒ~;fמ/9 d!m0{ > 6,Lml`Hwc(+Ry$_mhAF֏D򇴽AosՏ@U}^ӣ{UQ} zC/ ACTPtڏ֊[J%I(Y!f6MlJSl o ` (\ x 0?.(V<}̙9ssΜ347D㌍#7qz>k.|xչIC}&&/jx 03I4ǽq(]q9NÑ]zX`kGܶX4~2;`i,T$ [IMfB,5J*n?OO@mevja@7(mG?BJSƃ-TF n|t ǯk?g3Vpǒ>BMPw,͵æ{*Wlz1svMx+:`&[;*N&Ƌlؾ one[~R@1R]B;2V.PWa&iwMjL prLt-sLzBE"3=> #pJz)xJ&GSP\*2UG~:]ݞ8fϙ .(8uѣNՏqm;dGAxUeq!=>uI"gL2}]K!5Όhq7+?Mk#dDu #Nwxjnhj@{kAOZxq9]0An mC=^?>[瓙um@s[A}'&GSHw!#fkHIfH5G33dbs{D7s0&;􋧉;{t6ek IDATIˮQXJn==5@lKE>-VXe"akpA8*@sb+۰GW{8ya(Vu3=ѧ6+{j26_7 gMQs'M[K 1f Gg7Yq]8]1JA޹ m}޽NPR\1t`6Iuu8+ܭۇ0hC)>}ZHLN-{O]M%s梊!í#+'WԖĬccE:tF: ';5gOiCũ)xƁ!b: 4\KEDDYVf\knv.߮D>Ў1/x5T7X%g@ZYeeBl&+:=b)u_Ȯ{չ18zY8/i\{[/WdzMTwKC\ONRVG*WeN(SCVL[2}YwO8f+ f2f~B^{,شw;į '6<Ho[澷J8o)!1[ck[ir gb21ܪlƑj#·F]K1 ɐX6yo]ANǤȑP_vD.èQǵ-d9oa岽Э'֓0ɔ6hCܰڝ~_UUogh0 Dm]E ;^s~OdּGBO;f}ރI}滶\DLu%YvCf&aZ9&@+kqrG75.BҞ2Wѫ2z;+MH;xЄIyS#ڇr 㥻|ܟ,Gbl>z3e_1mVm4aAPW?t+̯sE6̋w}quA2֎mSN)Sjb>Gaœ}8cW?Nj0P@ISϙ y<{P|st+-\ӎov}&2#S>rčCͧTiEC =QM.;!Hsm%ҷ_BNgU/ƿұmW=S"v.M%%B䴺IJnuўZU~N$#)Iq}H-{iRIH] ]^.Q҉;tI s=% Ӯ#c i/OK@;#`.dట뿜&}jz1nQ0.-\̸>ܥE _^k2IIu>tPph+[]p3¸tx1=qk9mqj4.~>}{&t!:տ?> _8$l׮k67H@gٿ62ulI.,   ¯F>Z   +&:<   neEu%ŷ @oL vs<|J51]#{z"~sGȊ%pG>fr45j s^ Y Idz :YndbOum+M:?=iڭ gu "Ќ4 (f+1hHf+qY%TTaDΆJo"fk{so͊PpXUb{ wz;udP!E;-Ť qk'(urY@7#CۉAFd fΛc - J)(GrHKM sxmyNNiHCBv|D1|&~/:h7d֮UFU}}_~"y2&:FD%9D^.x6xЧD '3uXe=QԧWS] ̈́(.,+}=ZR;d~iܵP~礿͛$U(IREiI$TO[J%=(-!pYJUH~_I7\^x[QwUT`#a/J !)v%i˼ҷ?VIߝ$- 15΅W$SӖKm!5/]G+eTIRK˥-pr\y?n$I$e~)R$I2Qz{BiǍܵM$ƿJ[Η>4IR濴Q:ܿ$RᒺKmY~,іMO$y;VIyIˏ4_S)izDr]I/Jˏԝ)GVK Iʺ\|+ÚGϯp2a]V{ߐsUi?K˓%I2K./o2[9$Ij,[V%e~:_r;7爫'ߒ6WIT-] 3aoJvGו$I%-"%J$UKi+⋵iIo~xX*[^ѦHEIgُ%]nV-}B0ޑkWu`uc>\KZpaàmRO$IjĦҦSnX_BvjOjҍ$I*=*m))LL*>xi麿URi]OmA;|JvGҘV- 4QsQZ+$In'oHiՒtcO4tO$4Uڴ~:77JMomR!Ү덗سZzlm~JJxɅKKSw֖{f3nĆHhP{G-N?ՍX- a0$Iq+Eތ/]WW-қJ%I*ϒv'}mkAT%c&3zRBfBr,qw>u5b<*vv;2qԒ[R;s=u6:˺[~2=<\pLՖSߌ* _GL0jp!G3:%>˧cg^omLaQTuG0u$PN=,W7חAǭ0kSQpؙԑ 茣@_B )IȺ982N;!-˛6{pB[ӞF3pG d_"Xc?ޙaȩ`Tݿ'= XZp}S+(d 7%u4 3FH#mhTCܚQCfB2[̐G)϶,֮XNDž $|GT t~tZݣXNboXckmd vY`HFU_#IMfB,8%U hHٙH A֠P}~ΣVR2 Av'>"D@5oQVF nu3pF=0ȕVI"J5{Xv w'/ i&ݖ#'3>HHh'ʇBK QtLR9U+5_;?̓;:{GƮli41y4RJr=RϏCO2뇰LM×O Ye]!TkrXG=N| <_|ڡcű6:SOFٱ`*%P=7Vo02fͭ/gjE錹T)*ŊeۃSP1\~-L'4Z{N̠@9g:y(A[Tӆ 5tԮwA=qP]#{u7s0&;􋧉;{[y7Sb]@恢 #f/a2w"7o?Wilq%E#6|^+c3Z!E(,s̓Ħ}-iyQ `tSPw1S 1*+<7'> _1vj)&+g$e(t|+Z q,ˇ\q`>}5x:뗹c\58`ٖ,}ן4k3C6zǃЏ71@~-;o-Īwq7 y4t(-Bn#r ukff;[`"aLLeAbV. zb=y^=7 ȟ `koz3]8*f@fڃ4_fa{ hp^ò7AJJ^/XQIGO _*rH| *LAu[j IEJ ,;{^A#I֕"Fsg'8%vf%NIV,MXŶ gKLB_kXW'2,%,_S>NKr?{L JFh.A{HFx )&Kh|/8o&6j/]AxTe,~;K \?ͧ |.ڋ.$c‘=0=,ǸA'ǝw  !|-'m .[ޏekAAA   PY*KWWU3LB~ly|LQK %g%R`=@=QԧWS] 6׭DbGؿ;zOy1@FD^c;qױNHiW~;̠R$ϸO^~._g눲87?&iweQFwطėWĎwx`ӆ=i(#}Y0>?cDL'Dݙm` |~At`26K&o;=gOX4q+~FɉK um픗Rf V^G9G͘ם5V[0u4 n=&N/hۃAvƺYp,sȫ2HI3miK@}2֮dPQ>J] iѬj }GQ>Mr?)=8\UJ .[r.*j  mT*=P@V!&7+¬SFvTRQl.A3z41?ȃݡD7\b;-d2ؠÃvOID3ȓuˋH؝KKPhO%uxLzX[J S9BZ%}5b<*vv;2qԒ[R;su6 òn}}}1B3F}` wi7m>N[AcGcԖd vY`HFUtxpJ.35eA݉C klaճvYsY*϶&I35yPegmEn̄~N$w8R'hN=,5#n[,v q̓wA;@ j%Z#yOd+z"PC&Bqr'y>zX(# 7mt ǯkгV{ڡ{Q љk< |#HXLee_vdGI"J5{Xv wU@]:!PR ~tnL]S5El&PXXxd]N.LXJb  -9s!hW?[L-7d]$ȍj 2;5rHA⧫9>#Sp1hhZI.dĬy]6Y2;F>,7!۰nL aLvOv %^DG[uPSwl͟ǭFR.q)nS[x ZOAA33ёM+k}'Nrd]1vPLqs1%TnȾZHT|Z۶L'\iPzӆҫw~n" 9Ab꾴Vs<:Y GOzȨ.W5092&Pz<תd+v%vy (omYK̡RfĦ#DRzLݶ}tǤ+c1,nOHc6(i(Vu3=ѧ6c10՜/!h>`sK+y2Pܽw:ف.ChȔ?6SvL_]L ,pK\2;YiF,5}R 3ssx|!e pL=a'F2+2F'7M?$0/%&.5#ʵ wu%yc2r}1&ak?>r{/|[I'bznֻyjC#d9oa岽Э'֓0 (1MWhx@]^Dg0 ^SnݑFxGA:LF!83wkfpU͈ف̴iÆt &neovNj˸znLuBWC[Ti#F\ܹն$IںrVZ3 ͤҥ15eU9#^^eΕihhȖ#:  <ܽK@`/]Nп7C|\z?6ң^7qoȷkGAA1^AA'  R  d  SAAAxb   O,AA%:<   ysæ\N9{VUDO<7`kNhyRLTdn3_$XQ 󬍊F-Wj{bj13׸naY\LcLDݙ]}hr|s×Ptbc)O|nNHpypB=wQ۲vp+WG)Nu JNFop%U[9JVh;FUh18v===@$e4qϴT\;)>CܡK0l=n&fc$q]Go#VFzPA[+{%D.#>exhHY_ 4_"){6~sv+~$=?ά`;DtXsWso}M1XICACG &tAxHZUpPO7Г΁~mʆvp'/W8)-'5O+g0}v;:INltܽ .Qs-->{ CxGF?>m9[gfxhG{~"*HM|䉱Yŝ /G1\ұ)\.<ݎu{?'i;u =aܢSɴdΣ+$6cMqRQlã1i ,BWL^bc[#kzhjTrb 5T~*TrSv2+q_n+Ąḏ]A~TISccAڭؘq;3s@cAtZض!Qg\ $l3͵m}׾J" T֛!m'Q*aB0STb{ w?HVrv_"֓Z@Њ%w3e3 je2sgogVhO%3eܫC2VM_0¯]Qӷ`V:f}.#CRya^FD^c;qc#jlnV}\it}K|ّ:qo_GRv}A&i_2% ^@qBݝɊV7$ ȃAG.7A?M>{¢sX3p? '|vF@y)e&x`դ1J'iBc5c^wnaTY(#icfŁLJ ϳbFX7k~yU)iƸ-mXڕ1**?cDLí#& V~LX[/2PM9m 8 (|ˠzW Iݽ wF:럄Gc,+dDő>e~Szx][AEŭSOg/Q}We\Q&vW>Cg@o2XV[0u4 ~)%͊r.M!}*be$VQ;e!x[#> ؞:6MYby΍~O-ԓc|aEr4U"rD˛aV)#ec3h!] W|eH߹Żh4ePEn>2Wb95O)nCF T5 ױ7F& ~{1hG2wG\3n+u#F NBԃwSfIy|reڸP`䅌>"^ 'v=)DG_Jt })Y7KBwfV&vmڣ{AP%(9p~~2Tm\[Փd2a!Rg\&I9Q?|'G Yg\aIbP;30iLw;G} ORwz!-w׾1Q;I a@g2TE^70'mO& 0VqpeY[i2slQ]f 36vfh;,kILT2DΚ@#mY+` g:i{HQsL :$mY3i862;`i,y\UW7`0$@b&3T.#5ԑJh&(fe:j)5#VR#>fwD%^^W<]>糜shG} 0k,j ]5(p= ݶdDsJ4jS4~ɉk:舵%{?;&^΍c9h4>YVۢ YLoY&%I~.i\ȰeZgf+\'-¦oGbEu Aw[lnxb>":ֻY N3fH;| Oڱkh)+α,Uj)%[Z蠨 (9jA[rav9]!&ɇMpS]ǰS .!Sg=PzrӖp!X 4z:aBP0f| z CB Ic15\59ܻ|D+n_}BS1.c>lcjHW`SP]urA$RZg7M W; d|oKz6e*θL ~&brdIv'6@ež+[Ɉg*|6,3[<̀nJnj٠TFѭ.wP)UO2J+:н79Cؾ )IDATy՞YF|¡x+eXQAN * YX`uB[~Woܡkf$I?3]yR5d/FT{݁X\3UkN:בlZ5.jN&\1CGQA`#)2)BͦcR͵x/ueP3{æ8lqaIwmr$t9itꇋ]1g꯽\6^oБC6:UvP`DGogBjzgz?4f=RKHFuG 'r&Қ$IIW [IxJVO%+bs_S~3EwPdz&2)Ņ9o'$վ/c# /N4Lnc.>Cۯ5mm?؍xo).#pmQr_衍a Cp3.o)J)Wg1/0w[ǯط1,KinԆɋ~_5|mȃpfx Wء 0A̺02)ʆP?;0c|<Ʌ,LCOdXQ{Z[7 Pt^ܼVڑ>8ڇݔ\WAjOˍrӦX+7ץ̜v0gȴZpGS~6r,\4i3rؾ-]T(łԔ+݇QjOFuy/y;XCQ3h96| ]*(A<cޜ ;(e?zYUqS<>" d|V3Ӧqu&jTkKg5PC@b]][yZDMiFBO+q0Aٮ[‚o GU+n>*i'պ)Wxcb\?LԱJdߛ9o*_l&,a6V~D nϬf]"^>ݒ-WXz/u TV~1#qB׫/imjREn;mIߋ́EomI[,~^\Elb{r[ף׬~< -ۜVH-v.+_:/$Ih{4wŚy_Zx:uAw+DQ]Al:OA?׿~rM.µ)yÏ5 a/l^\)#IA74RfnюqҘ挰do!æC53Nc19YZP\|oc[s5mK댂|sk wKgC$ 3[Ϸ$0Gg抏~-} Fh#I$I$I_ Z I$I$I+&+<$I$I$=:W$I$I$7H~#I$I$I#Kvi$I$I$%+<$I$I$=dG$I$IGH$I$IjQ'm,ܽ|(%iQ~ ċ^0v+\q;|?bSZݴ}'XUKrgDU6{1e'~ѷ `UhY߿oWpq_zkYL bOfuk$dž׽>#yh/w+LKȡ!/Y93f^S&NiICɚ],{2l̽Ɛל4sj{KCX6mpԜْù6]EC(I_"ޚ,# K?$*_uq[ ]7>>V&i/kB6 tWo- dX޻ HFe, aWg[-<}'-aۣQkZ'7ݻ/B]G9lݼɿ{0y:IKsf5SC?ff-XȔ.EGٓmL]<Ȟ3F`9|2gp }ǪTZI]=X<.QKvwԧ_ adžZwaVeFf qǮP@Np(Kn p<Ы9i$&ԗOgrB'b0&td>̙<]ӳ6j0F$`b;+ _ˊJN~9,숢^ŋ ܭf'|Ghz(;;>\?/D@}<#y7l%!ӱ9mwǶ $*'F/HXALwiIţw1L-ف3Tז~3U fF[m$}{gIiML=c0[sw|6Lc1uK*XcMo]_Ҽw#:Mhdԃ;\_ghS<;Yx'IyWՆ33Ռ&Aٳ|H'Οӡj6UrxA*~$*x> 6#MGH-κq1^IČaof| r_.fpi~Oy?fDq b qYĬSW4-L )S TrMW@HeGTO{1祁:+R +]殒e|F֗:Oqq"EÍ; l1 uqggYŜKLdnUu]0t_-sOkKBO@濉̪3Ĩ^?k;_/$(BQv:\Y$U[2K|:obcjyP̛.V֞+^.YYxBx/r:uwEЗļ͈DD͝($6Z,B\2^15ǝ/ďBMXBO&^IeBQ+ޙ4O~wϫqŨ% l/]l1[|z$Q_~#qvT^{>RbDdZS>oB{NY`8hX|_1{oI)M!(_/xI,>j8RsbZn6x1au㫑./.="ypE=ף{c[IýIk*C#v0BlT9"!kś\R؞Z̼S@fT.z p8ONxjq?hnӦRjb7CKIw+8֯M ST h0EUз5-t'`t%зza7+m`\-+Xh|Iw`ptN#q2Q1DfVO&ָX[p SK[T -r:,PXa_˖j:2N}.7FmN_W5%XcogS7WF>H|~?<VW Iu;32 >5NU<[kD1=NW3W(y\DY⮚Re4I({ RGDJQf68za !-wk#֎a1pn%F3 2g%$IRCLx i7;ƾᅳj 3 ]$'5m<$_.T?*@uS .xn6%=fE4ۣ(g~V`.סW2AW@>Bw TnSy-w'[CAlQR4ڟؐQu'ukn2L]۟\MBhd t_ bRZTCıY98U{\k\wtPݎH$V3 'jtբ+θL |(QǽC&lFzhn %D}, CБcOA}.j​mq—'\j .Zך6p8?$*0ZZ C1@W&۝MBc=_f5.س/ GhZLQ~N?ya&7bVu|-TݢLۃ޽r&^FLM\̑ZJ G7O^nmLͭ:zZCyVK*ڐZIy:Ru}phT G$[=dJ$ت>E?" ɶġocJW뿻C1 7jE-qvTt8Eɚ+dl^n<}A20ɞ VB n搚k)sgAlw(*oYs=$sFLq< C_63j,&8ވܵ?pM%8L]0yFSmw9lۧ;]E0 PVM:o~>~׽AnZcn5EMIz`jjYh53Xϱ'0aVMQI"܏iֽl͵}9\Bя7(N\]p\' SU8Y¨Vycyg4dgE_ aw~=dRѶ>fKfqQ/kb&R2-hX7k* #P .[wACGt &i)x ZTYx7-ȱЇTJ{wuI0 .&u'|p]TxOj,\a!ۑFOS>gygD| b2tKe@GzN~8O36Uz<59,\>{4,=EĆ#0q=[?֍$Io ECg잟ڗ{DZユQ~, g4 xcΈ?rr 3dZ^`3ݑ|0akQHB6:M]PTWt]m2ݶ-j}O}G2g`K|6m%L1mVrhBΜe!sìd<V̞ADy甤_(X4plf6^گ7l !-<ÆTLp.ӭl ?6 (#n*AmY$Iqs[u\BgiQ O=(n~?yٿb_ga;΋$=z2خt�f;C8pʩ7ly'ێڹjXKb|fobw0 wn8y%I~nܼ€_:tf?{X}Ϛ?ȷG$I$I$Dג$I$I$=:m2$I$I$I~d6I$I$IYK$I$I$I,Y$I$I$%+<$I$I$=dG$I$IGH$I$IȒI$I$IY @)LGIENDB`ntfy-2.11.0/docs/static/img/web-markdown.png000066400000000000000000007603201462047176100206710ustar00rootroot00000000000000PNG  IHDRfiZsBIT|dtEXtSoftwaregnome-screenshot>-tEXtCreation TimeSat 08 Jul 2023 10:25:21 PM EDTr IDATxwxK$B@*zoEUP (JG)4Aދz=tRHWryಷ;ϔUD"H$@ףHq H$6@"H$D"H@"H$RH$D"CD"H$vHq H$)$D"!ŁD"H$;8H$DbD"H@"H$RH$D"CD"H$vHq H$)$D"!ŁD"H$;8H$DbD"H@"H$RH$D"CD"H$vHq H$)$D"!ŁD"H$;8H$DbD"HpxAj0o1O5>J+_]1y|+Y>HB*"[]̦7yP|SڼF]1ֱxNNEţ(D-hYӛl z~Yq(Fxx\>%I.Ŏ٬o/b9Bwg)E>s DZYI9&b9qwK&!OD"H{\xbŊpXz5ڵ#k֬O<7))~ƍmɌW:w'׎!KJN)8[XyUxc')Q{{Q0T'ev}\+PQ0O~|MdNc\uK;/*5J{_6Sxp>_6؇kD"_JDETTT" }̞ā=F%*䳍Np"l#3mJcl{ SQ4!ܭ>D.S8f!w *DsH&)Y҄ꌳ.dJ6 WRP>NM,ݟ/ &dNV~ و#ĚՁ?NI'Ër?c܊Vl4ϝ@H$:lAXX-Zxqd͚.]d* .]%1i.D"yBfuJ6$"HPQԷgh z2Wk8g1!9"MiЌ<ٙvQ!U8xju9q(J%>əU~@$pv(JR$>NWŅRJ휞29i>1WqM4cЧn<^D+V-Zd;0ҥ jyA±HҞԦL&S/ӿec^ l\HlB"He xEw,uCؖTw%DLF6z*@"H$ ^ӧsҥvۛ]m6Jq H$ \t+!**UVѾ}gziҤ%)$D"!I$D"CD"H$vHq H$)$D"A2kh"g'ͽK .^aF۟Ǿ[oo,v&}6^;x􋯻sGX6c _p~/*Qg1k$ٻp&N' 3фWNut#Gfuo`1_͒!ghܘ?o/^bXM͕#jJǙ6y2OEt~fsv,lǯo1[MfA|;G֝LpB fmK{s3|7ϥ틘:;2y/i#g&4Dz0Ue+ڮa% ДWǦ5dY!u }JYeKP -T}S|IKQiOyio!~M)@rhkm OyV%(S) }P;qCT1&6|yi_f<8G3ՍS i"ɖq̗3% wwe YsD\8?kN)T,T@_bD󔙁kkҬ^ww; k9= D\$ޯIA+8q?+t)}NNhF'46+n lڹqoXW, hCzێ5Q#Lp@~ݲrg~?M\%blv瓘7w ]0ˇL>|;Gњۂj~3Y#>.]#wÐu3ulF+ٙq>,a1[W&K둳qD+\Vkc/; ?ńS15OWo`_+j"-ecU_ /aOupϗo3ie};1ǟ;#ON/Wp--2ϩ尟)}ǰܘ׬/K%~""vDE Cg/Xخk2U7!w/+_lq֓RřIM_F!DYIl8wwѳi=KJ:IO`k݅_1c4l)B=gWlN-*+N<+2IjCbDhZV7~=+E.CjR(#|]3|Qx1Q;@{MASW/ZTY2 a82,xm2rҐzq5r~ǘߚh0{1zMŢbr震Gf #(7qXV ։#,4ZUbk})Ȉ]']kfEԼV¯D.݅ uŨ#뒶>uc!A\ h)f_DOt^#n?4sqs~8~QE; ߽XMAɚpJB@$獀s)>+GN-oߛhJpq4p>GsXayS]J ]9!r ]"F-wL&CƒxEp|vQ,9}D<E)K0M:ϚԐl/R+J.m扇 6:iR(/^PIƴ>%hyepw NI :'8qKD[3%+-#QOr_Dp7k@y/w:d͎BBL_"n}%rA)$X3]S#ӧܲ,EqftkNᄖ $Nj ]$pS≏@ 'Z*hc[7% C=Ƅp9cI 9\Q!!> '=U9z G@Kig an%{~U͝{FTqߢ5Ra/7^jXSdHb< )Y;-ť䬸fsD{m)H)#BXu>j]ktBѸS'zOOu +Ba팊#8N^M v+ y 1zKh^bݕhg*U ġzBO#*r[T\sJqH#tinfsKOchƦ3*pxT,y O6ȿk`|Cz4Λ婛P6*P3+|ҳ)@$(ހ)ŀ nnMt*(HV\᪢&F1j>#ܲ،wvOwf³\EVwc)n-\^qш}@! YЙsţh"Hs&]#0Fa}Yx|7CV&M l6Ga[+2eSEB#A3N DLA"N* [`Sŀ);vJdx00.~A=FR|"շ7#WY3z #W_ƨspHg՜Vz IDATIwVx(dsɎ"UqrE)VǻHn>_C ҝe hhWj8{/ILbPDnYYZc4 U} Rf y)αE;(*CJA%tZ`?K!b9y F^<, SaHxD[?+"*vcggv|ta/ؿo3 ua؟n4uHd vFe|<4o[7FQ_0|ksT/O%_c?eY1wdH4WNޯߘ瞰h\_UCB ڍnQ*Ӻ7::MnٹmJh~\ 5/aJ}yW)KߤK5U7 ?6 W'QS.G-˄P; m%S%='c ň厒zc7=QWEPHe7U(h'YƟ^2y]"G+go`ts)dsH^i$]bќsƞDI,:.XJ@#Y2{7cbsr=c?ɴE(_d.Xܩz9(=YآEOE2.cݼ7y?MnܸHKS!Gp8J$?[ΟsXw뉻G6}V;iW`dٻM2.?z/sp z_>ls{,gb\"к}m{w[p;PǼֆmDvG%sgNu]~ M$̅M VF~>'/qjFs݌%WJŁ uHǎ6<4-?;e"turtz2 E0}_P[W tz$_HAYw%:{/C`d<+i`@Ozn!;OT@ū8~ؕz%Ka9?I´?>eå(g*B;WwmlrUɏγ0K=gG$%㔿o~<o=>$4[^@ v$M -;ΎYș;'Y07s&Se- @ ?g եմ3l;Aʾ1mS1FQ,:Փܹ"Ft;nQ;P-$-Gpл7 ~Ip6@Kۯ>\r>Bɐq~^aT NТӭfUVJ^+gTjժT%ڏx{F}筃]i9̍ 3ښ5R ؂URZ#F>{}ZȀl߇>⋑~ z?RJ/Z8BvQu2w@ M#Ct&3 if>|0y=ѧn0ejd}LN,ixJ^ dp:)WQ<*2e#Gl/_]jل 뎂y5]&b΄xC̝go [- hO<ݒi9!0zi9?M`W'h=%fZ}nNVk'-9z?W̘ɋSiD߹#%a9%5;t8DU+&y__;_E>>eb̶q0xGq@G6yMIt-_a^&]\my`*'W5L$ȓ2lxV^KuG"ș1::JՕ!FzGA G6"/EuGD"HwJ$D"CihFaD!ŁDk9+1jI$kX91 !5es=濁~gf74n/693zPUU^PD/_*Rܻ~Mr!ӾMïU* kۡᒎw`?z5^[~%tc-|}/ Gա8 mߵ!U+_Z[$$=;T}ɄzOB my)^tHNփk^ _B^AH$W3249}ߥjTw5;P7A2=mGÂ# Զ.ACۯsE3zoCF#|>)`<=>|2O%3xf1ޢΜգT/Ak AjN,[R7=_eV%lۙl[؟PmHfM|>U]6ShHۅ^d<ƾ7 ׆ӻ2anMƘqn؏OKik"v %^d]PHtCh~݄,ۿpOW:Tī(c os _cDZ QMپ65R.b|Q 2Yn-pUOJH>IsMGn- @P$S9C|>xF3mR_&Nm+SJ!83[1{r_ja$T܋X"B9,D"yU'Wm csbRcQ7bO` §0qP/]K đ}'j !׿=rF88hRq` wg%o)!3# Z·WbOBhbU=Eb͂(a9jh/:.}(4uOҮ3Et(+M$ BE]`;BtC,lWR5jSO T\~^٪;? bћ"%Sb¯qG3a}x~bkluG>ŎT DS kCZH7ŸS%:5!Q(U&c/$n"-!M֧#o^Ir@)dmj^onU#;s]Ƅ6Ahvo;sTu{@6>uE\I{ut'qp5^@JJ ))d)/g8vݼOEЈF>qx$\߹KiX6sc3WpLy DFOcw>CGؾ'a8ÁIT.qg>.(e]-'RRRл&P*KR=iSu>ryF,nzUxtJ$'%G%*aN.wy89;u|h^ѓj2 BC# .&{i+dECtڮq-j;9Xɗ՞迎.M˶TiXg#;?"!dkqD1KLՇj 6&I]16 $n&&ax֩Oȋ+YB\ցcpaPJyjVu%r~GrnQ*W( &:-u_U ; S#Ӓ_,'ƻB)נ ߯D $S"xVṕ[v@q{\jƁ:1B'%v8daVn9Ӣ-p(BE NhAƒ$+p}NWXdԟ讵0-M3'Tbټّ* /&p)Ią *!ݘ5&?Z9)9q6q'u> 兤3WW+"e>6m;ՒoQpb+[Ds.wE...٫ovnUyIw*}io yt g eHΤx竲F8J$C7CIʇeMyL lr%| ijyPC쵌[(YrX UҞk(x Oxs;[πoP Hj9ah>(N1G^H|/Gg( x+rhLUe@ր.()-ݩز3 Rf*O](z"lx2]_L* ~OX6:4vzd3W=+sg#=_*Q!kٚ7`ʜCd-W*^!x^ZM xş ggp-NPQ2qH$t^@P ƚ?kz|:;?Z9/õ=j)#"ٽz2V\%$ ?F6sDA&o 6.Vt.6pb7]6̂A]M{{%΍auŨTы?g~_6m?`y#"1PE{<S86i׏WOH$뵬d \9j>>޵!o~ÂޭwPh$S0zXz̻ѥjȣj݋w 1t !<4sTa9Ɩyh0jL؃EBiZ3SmsؙD2zjޞ5(M)?bcAš `l?-](9'+9u4.tf@Jfxfvpܝ3 LpŅ-jpAt9qCXVܫ3x kNpZ?ʫf|B4ޞ_,`W|I8>9tBP:]rR/?S|nf*T-fVku*6PE8M) a47\Q2N%9{:N#'p`gOpӷO@2 y;ND9OL< E#Cݜǵ,\&uD5ӝu8ql[+ syl燚/80mu})wH$ɿn@"8{{/d¼Cnv\-'_|L>h<8{72we?D ) $$S8<~ɔ>42%Ҋ&ojj\Z1hn[~6H$\VH$Db@I$D"CD"H$vHq H$)$D"!ŁD"H$;8H$DbD"H@"H$RH$D"CD"H$vHq H$)$D"!ŁD"H$;8H$DbD"H@"H$"Аy a4b hF-0!)h@ F(!&@ q)((*S@QQTEQAQQUz((K;fPoSdU&~  l 41_QDŽov5 kf0=!@UPTң$NAU*Pj>аbP0ی5܌l[Mv@(ZQT4a(*B1l@# UQ4 hDhhQli-iŵ0)(6~4ڬXTsyi<4!TsjE\,,aESLyl:SSO+ B*z`o*:PUaFQ:)TUlɯ (h@,?tEg t"Tm 1EQLa"M퀪 SAŮH ,DŽ@Aٯ:WB "S 黥ifjTֱvQQLND(MUM`iTt* vR7UUuRQ0jm)(渄@UTE1+_lw4--r0c祅0RMLQ4Z<wM3Zf MAqsJv٤MuQAff*6>4a*TKRy%@SHf0'?!@ %.K"Lan 5@P5MPUS㩘=i" :wZ4ŦšFENkO+3 Ł%qB!{UaupgRi<+|< Y\d.tTm:ZJ8"zmIşEXV:K&Vai0lRmYCO ”OJbW<;k5u}v6ʶ)b,l(*`SX)aG.ӇaY^dPα_1aU5uYv! tn*j`u ҩ}#BXTഔe3}TK{j9X Y`Y|Ӌ s{#0tͬbP̍LB<^2m/&-5Դ6F,._Cm͉HZeq[;0ۮl((֞WyD]d_FlNFua#EyfœhYET IDATbFs-4`׶N(_>&a|fiM\XRnl& ,ӾJelOҋŶӆE*i͒6f ˋ\iUhִZŇaVvWCPNR)bҎ[i~Z ?M;Yvl*3^-fCs P̓=GUUsY E6df*-.) ~W.SL6`GL%RXӴ2i6.Q1ۮYбu{3Sgc!t6ю ؊FXY4&$&CB G &(BH 5BN;}\XDZ:~d:?DZ>u.F7lg"CS"sIܜ"t #!/䄟IĶ3iҵ{8X8!7q2`ވ8`^dL9FyI,$u5ì3jYJ`#67GĢbJ " _'lE;Ww50cKؕ#֊RЌcc"lEZʥM T`h|VIΓ!%!5{-- 0tVx_%j# nLU}"-x*,k7GpATʵ2D4 Wl`CҀN8N 1)5^ @}Q4ӫ_6~KQOm\ (:dB)ݚCΓ8!YTX{>5c :B/%): -CJ*v8AMz8,Ù]>w4w EN% `ͥRbQrvO}x9+@ Ea -A=:D.\?! ױR; 둡)8dGmy Zm7I ңg;,'3TJ]H<~kyͽble(x a/b,Us#VvMZnЋ9-4ֳ]w؄GY+zm/c[ :\5bSv˃yϥ'+4iQ^XOKI!7@U^ss\ W=Ek\_(Pnt .m<&Q߶e_:Oa~PƵRX,V$,Vɫb\k1 yp )SZM}":)lOr@&@xX(^-xv$Eb~LޅD)L3 h"{ Wϯyo}zs 78EuZ,M!fNfRP)QBDAhSf$g:JjuѺE1Bx+5}MOEl.}wNKDbzJG MxFhJWGW^ ZP5oJIUɓ TžFǚeMK9on@&tsXd{!Ltkt*r#aE^J ҫƶ{vT'[=h .PU뚽uB#X>f(7b;1 Lpjqe 6]L9!&= ]s^ KwP3%{<2[a*3h!KHαyHw,n8I!R Nb6a!$le)RؖIJZr&V"!*ԃq{]\S+tS1?õWױ>*+;Y[Q,NQ[2J0M# U ŗSZ*|NNT(<fkxcH7:jp|K3^hV`{L:nJ+X*?H l^tQafH2a  Q}]c=?éDٜG] :y}F &8ׁw#gVz@%n$o/ }AY-op%v&{G32+{p,]>pɱ1}6Mbz++sT9ķpjV0H8W=zNz$ 5xn#CޔB4@70hZ3ZQ@1(iHweM Lpz qV8rP[3zz (>2dhVSxeUWϞR0@{ǖ&2ߊAٰs뗏1 ̕0N,"0П)9)'zLrá $|Zs U gՌ9A;5fFc>eӣ_0 K%hF=Y|5gfS[e@%e 0{>4PB(Z׺Qs՛aŖ/B ȶ푲dۋGfQ4nZ6QQ眻%~7%+Zdzw&PZ\̥q2G6hm[uHzJe@cۼ-9Snmի5 ^H!3ӤOBaVdt?zgD$L;gz=MX)hU@c(x^ (eOrj B=Ch^G"ReY d/A>\NТ" 5M>RiOP b5܏.P{ɗ6e`(, 7]b\|/OIh]CAX4ܞ$}FK,-Պ%>f65xZFkaBeRǭNNohnlZVr֘z mo<Jk=b ŋ4K!G{{QJS:;gzX)+RE Bׁi%>$$H'g-f AxXu(j׋6oa5%JH?@ 1ak=x{n@%w|m\:4MP|}Vz 701:Sf!"03JLclXq6= 3AޯE'Ym;;q'3DhKLP^(yu'`g^u4D F.:5UN}JULOVQ{VB'(=rLjV mXuLaIx티O~ťLulWc[꿘g@sNdIvg uRqdτQ"$lm[m$Q[ּH1-,T .c[+o! 97+>Sb{wftפCGnkeB= Huf^Jۘ6uO= sw{#sDQJT@C^G^ E…X,gJδ5! >Sp4*\`R6/jN-hanNz*1ۜ8moZ>"QH䕢F MN)e8B 7CݖȻ}қj:jK^kϜ@a~#79j`#o #T=v()NMRW 4Yj Pz]mTޓ;z "Cکf}(%>N]cU%]6d1O?zSZN9vyr%٪%ք: t{ Ae!U@N[8":t3FID\~ %lmQC- XUƓʛ9f܅[3rw|FnWa[F Ԋ( J0^G\9myH:0}8L\ 3+evF2Ȃsu ~Naq. ЕN&E1Kױ. b<|R& Y:>f~4!)#J J y,/8۲&j1?xt|Ӻ= YУchYkGʾAF//ɇxꊤw!THQҡ`I&R0h {- @ERsFGo;،jDs{ֵwsl(#[ tO`R%}1ک0k^KV.5\^ҕ^Iճe)r|$BUKЂfSJ؛dH=v٦n C¨&unhP馓 j~>Zᖂڭ>a%`f2j{@گw@a*L=P 1<"S`гdP2(AE_xKɃ5S1$`,D0{~%&'s7ɊHl/bn\7*-vp>yyT{D K.Wk2X%*ȴ[XZs/ t$9R~Q$ɂ3%@M<A5C^x|ʩ5ڻ@Vأ*ϪGȂ\D@plY EBu͎mr آ< cCE4 ]UA vYKh9} fFJ ~) ŵp\'jo y2$rDN+ڡh^.꣖] s+Z@î/`RƐS ̰m -~^ r^@TIs.$HYG^D#ԼmM%^}j#P&`c,291u'z KAN嵠m+ `2Y j.=bJ.aWJ&PȾX. Yܝ[ sCug#A@ "/eoqqjE~/ƵT *]V'ƯNdn#@96Bpm?I`#Z>GLecV{ g'`,`fՏ7!罶86SI J$MKi"-8,׀s\ ~%G)Js]2Emސ3P<]$jr +,e Hz1tVV{* 0Tr =t2*S m't i޹V`YqH3 Sۈ7 2E]θ 5`)Jg5-Zj[B)j0 %XإPw^D*<ȴ$:OGp%}n9|tEGjcASf oXMovoֺZAlH} I\Fg .,E1N)8*tagx`!4+3 /<(WS; OlY[P /eaC%>ȿ|פ:Szg)s6 -K#x1<"~x)֯GJWϸ*8f@["͵S1{_ (;ɼ+˺`ؤ#^ ѱ z)'6]ͪl0l^`T IDATq[AT IFr8K ^B!pDBWɗ9)`ܸy%kUjf "|=SXAn- 5ђcUiPUh1'Zq(oK3PI`5j Bm!u؄{}m<XgdvLqU Ddm!nCw͠x%uѯj(9VS6 Mih:iAf眐vd3;SxW/ (aF#}F Aj<33`$У ߈"B15HW +W>Ϡ? -)nG 8OvZs3tРd&J[gzsBZM\^t 0"H+k`򌮆U(Me)ƚю^(K#V^0|˵heZ3lI&. ˾yV.:5o:IH@@Z:k/U|*\iBMw~{ ']1k P +I2Dw=,ӊ^!"E") rf-G nT!J Us\s2dRs@WwY 60ܼP vify'`IΡƶY 9B3](:T/ꧾY Z^w~0Y/+)Jg985z裟߭e"ZF(q$F%Tů$E]X}̶y|/@JCZL-iHf+(U}Z)AgUj &m ,#+!Y͇,]e`G* ,tJ5$]vbnq ;/弖y۴n20ֹɮq-j4FmQ{Ue\z qprQ: Aɠ݃Jƍ3{ߒm}GM,#C A]xܡ]^T@DY*3fVkaM.d5)`cYb0Ы€*P"}$4D-*'YZJ(5`ZIpePb`'T rsiB51 =ZB olmG MYipi$}w?8Xv07Gd y+9\M94i'Vn!px`nn؁Ïֵܵ`O=V2 Zݗ4R4kWQ>5f=F}wB$c !2ttҺҝzPU3[)lU5- 39N?qweaG{*f@j^_f{'n0,Fv^] m(d7Dǽ<*)+,Sk&tҵwj|^׀zҥV K!Ep1v/D@cYi\)ݫdŧb\g98Ĭ: ZIk!@J!EC4k#ր,# fnVɷMxv8X)KVi1t%LHe( ܛ؍c.6p`\,AynHCp$pіUScgZC/ElW5О1GYblH3 Ls!' Mzܚ'p f3qtU]:ފh@첃54Qc2$c^UHl(B/#*CKF {(!遠[V7[<ů#W wϐ@.w) c:JaP T4W@Zt^,ٔ}lm@!ECm?y0g[n2pu.2#m\`mNqSHyG> D'v J 5*{ WaJ\J=`AW'ɉMQR!r%}ԩr73Aar֍A%8I @cAeZ[Cەr 'NZT+)W$nEb8@E" 5##&x#EMz0Q@mKO7tY80T@DoVx7s|J52VNT[h#`a8I|A7.B="`i[{pҶ`]:mIܔ+'A@AK]zTPՎY4T}U{ d44y, h->iqJ0B% QniX^4+eڐ1˺eGy{! q5ZB]yIYZ|d6tvB~+ΰylmMFyY%殍%|̧ 1NMyrUBIoqU c0̥@/^j z yJ@C$*G:i,k? XfLb~ΚOm Mf99 8>jSU\YB@7N~g9Ӎs.Wb\MÙ5~ W~ DP\^-xӑVb#͚ oͪe >pCL `ᤏra8 TsEd? =iujF)PeKKWC0&`ăRp=2s_yR+02J *%6bXO:ȀHu rrau'UrD)/CcRH^wJ)F-}yUGYUk|:>$FP72nI ;籍3K7L Pڤz& e95sdM)7!$X[WP%J'cw_?᏾j"K@`.[D%禡$D3!~#svǤ0#EU"{%H=.k7=HBU=G٭]uURENq޹AAn.@d1̓k]k YM4!\=4rg){*<==N3k"5A3aM6e#K D E9H3 L\ )Ah!͵) O#\]jLxcqm^eT@rcUOJߐ5X݌.H8h`r9oya GTruxXƆ<obJ1f5o:Gu^= bԠ.͡dJ>O&9~w1۸ LBP6@r =,q[:1Xa#wT]ggOZwM41͸@{||c f\rVHDCoF0,3@Ics]_}5q> s"G3|osAZX.~[Ii ⩎}]{N@&!y)X m[B j'arrLuy@޴q0fe{+A24 iy'y֙%t;sJئdyȱ&aӬ;Vu(S 闞sM,h)@hJ ĄC IFdy sƅ 3QƆ1(sڠ H0*yxv C)ly׳L@N8v"n[4SA e>#[r|Xُ W倇nX d$ >-*gO_cԽM1j〕PZ+1Dnkkw\?YCm1"s -`Xax@j^Բ WsR@ѫ{"rWBzDVŠ'V>(mSzI,7iC?̮Q/𲮑(h㖴{Kk{3RᷴZH`Nnca33Q.ئKL"Gd)F8ڐQTv-lĭdX HV>o+4ML9"ܙ53PINuVkn"qxH3 5yo:h:럂2(R6˨S2B D.BӰ8PQ4*sL{@堡$הY0n$P [mzծyQߪgVh<ʼni-]/(GG81գX]b!\Ce7|GY]x-:b0{dtz*' 5+o"_1&\m`g%}7 2p@'OTaeT SWqrbڢ7 0.Z''@ D 'r#?2YmY}A sKYn/DRƘBii8$B +ْp)wpPr<xN?3)с[8r+T@؉]=s_de̺AUX{Z3^!P(2ԴTF@&f:\"C y I6S< N zJq8̑NlFF?#]5zOK戬y}\bfT1rJ!sCV0L%[sk_ݫu*t}'=aɯDris;I~::s`tiyӘ R`j ŸN:i+K.OhWwTl>򼴪z}T5tHkIr>BsaRͷs|}^Ģ t~/Fw΋3PNŠu 3V~&TG4~dS  JjE N0q֡21⓲Z5EO$r; JTM[91ASѐ}AAAZ<[sΐl\@5-:V} Qc଺9J}#np/fWJ0d`iޅ>S׻֗d\*,G ʌ aV,D.0E_09k,s3p7c5d``C1B\__4Y`iXg~ϩ#cE./yn}^ϴ[ˁBҧ%1s+}gQA"w³^&DuMqM*6;T,;Ia o)΂ƌd(,+C`u&t^EZ5G&WP)H7.`7F̘냌jK]1Vx֙nXCG }+r9: $9ALM ~^OgVUОhM|BNm`\hVC ^݋b@υQ_hD|`ZΎQUiBy<v$ѫ> F6@ G_sxU+gWM jKumКIʹߞj!D;C۱ g),Y;3p56,('G 4_#A' :3/B[v uC/!i Uk)SclvH `Hנଷwtʟ7- 5MW (9 RYp%MPJaTjɬc%@ńP:MCv)RKXAk1vmBr2`R ՜1W[% ) U(F3Dp@5ٮ~RX&F>2$hr%ݎD-IQ#Fn=5 @(G tOe wLJl(|RrZ-5.(#C96 :#{Go?_,` 7h,)Zo5H#Hd#dIFhFd7X !zT>~m {S.m+=9dpʲFݗ):kbN} f{֞2jg4t/_te^ f9KD۲ ͫǔOWfy⑚עk{!GQRׄ>Q4`#r'y,dZ ܵ/"w[TKRd:G-F=hcЊ#txR?@pY1ylHPQ֊XYƳI XĻ_[> `Z f=hICSF sQ@`Xrn>MqNh1 Z4bޅjtXK2hܳCHVGh){6w:@79r~{S93 D4MCuWk=[cTQueHp]rup9 MƊEl?ed;DτC.hOc>) Sޱ}aэ&cB tA\QRCkUJkz KT)7m*;U_/`"lt ZhS`iw1їIryξ`, lbRu(EBЯΠKlw'v>xkUrSU#o-՟+jL ? XJ+0FsPG?$g޻N !%J0#iluaEA*|ΰIQ4o]6sl &^K` sx,'>w_?ū<#AGs)RV` UE /2,A`fk&*2meyi>gL Cp8hmჶ٪G;o-tZ^ThڒҊf*ݟ d;ͬη(|TB蹙Y+D&@@!OGqوc2dT,יLzN+x>?PMBZ!Թ &-=XѨC#=R@}SRj]Wd%v;2(1y 04vf9ϥw?2-v1F~Xaph W_ŖXF.e:v `P }}MVt7)KkX*2~j40*$/4l)u?3vE)GlT+ ]F^nᅒ}>eUEK.I V "~kW-0$W=e{zfE7_QP! Quj~ayR=q_$(ŝ#2ֹ.aȤ0:+F1 U3)ݎx{o{xOwno~ |'?8A`@a2w3SGklkt-s?~?~ƿ1>=~/xwIgͿ! ?֭w*<`э"쎝Owz ӫ@*Ye _Ch?֮!| rpXjps՟#DLm욤<1&bPOVoC?KXF/rV~ʐ &ؓhc"j&&s7S`дbH!VY;Xڬ `i;]bڮT+Mt GpV*>8 G28V e ^@iNnۅUsyM1,vOdmQpr:Կ!TKgXMQڴ\j`p;^JB@oO!;W7Zx:O܎/k__o;%HLgԞc`Z|p‡ W}3]x_wP퀽8c?;e #0oBTfRN `+nnڣ/@h?9~=40eNoe%}MC Tj\˶U;q.8Mfm`~%C6 ` c߁0Pb ൤3ܠzs5Wl.ܷ ج<&ڌ;4 X~m=C .ɱyKQ]U~//jvLdD=s\]|v_ۯg1Y=l^{{~&?z>RpEoË^>Sia-ëW'؇?$wq3`5-sjR3;oVɸkp[A_C<~e uc_ux?ۛӟO KqH@ayAˆV_uHѼlh,O`7f$ 3U|8E߆9W 4_ȟe $VwDoc9 T.5Z#r1o@yU^e(w.L/IY`en iX9}繻m&Ƹ S,"Sf2~FsTF?48 U"՝7%CuٔЖOC؇15/ajI$N Rb؊zy+!iV L<(>r93yP,Nk"m%$R1d,pv@ynSQg%AJP2$AcYu;8VZZ!Xɚf$ F6aos{|iG a7{N|7 8<[ 8&>~6XlBwR82). waтLXd"?NDWwo /Y>DFٞHm@J*] YZ]/'î8kI(9[|fA$D6mJ 9~b!FoJ1~DyJJcK=b`6mXNs?@˹ֽ݈\#F;(^ňB;)H \i $% k8QqPB Q\&Ehh4s<3!4c-p1vP =(?MߣO;^/2DyS y2u, !$@}XͰ$R%Wj(tr%.IFPX1-$@#,<_~noA]@Z X5h- x yo^.O~7anwn|O?w?t!8tj+Ƴ$Y0 S໾{)֫'s={/|38hBw>&/RtKA}r#sRCY`ªeuIEё5@y[9\95QioZH*u_jKZ@Zd%4 2JLPN1Q%v#ԁXGt[&;Vg8?`30hz܅)*5^+,PBY.r4ȰĠ d*j4@q7aΧWx rX>7ƯxM?b˦wtG fŽ|>O7« /?Wxq!`xzzz íeoo5[?mbZ; O-Eq 3N?VgMC}ls{6w=ZM9Ii5ț@\է~E,F= RI@X.1IkJƌQQss'_KUV%ݿTB4;f(Dk]:MW61ϧbyS:[nvY{sl+>>$Yk\jjv]=P Y%JN#$RPhGo֯Q*!0.<}"2;%Q*ke IDAT@%n/{i-Na_ "Sg)ݽ+~$O+][0>Y'A3F ::a9[:?? |~==/%S:O!On߃Y>bCx+/3NpƁ/^Oo2)+ 8\oOKݛKw<.{[j,۲bYȖ/f3 `!`!fb,| @f x=eUuNn'3Oۂ~]}N:K.ݼ8bbY/ B v+%l+m0&qupԾ3(0(Θ^JFTu$j^Av\gE'-|=ľ\덋6Or ]ϣw;wF=ajC*;=m[FQC-!\a?m 2+LBB*4Ou5 fwU-.B`ٱT<=53bcћm+=PA,u`9 qS~F$ H 4 8ߩ+|ו==k;ɪ%J1K/$ӷV3kS]ْh0`p7Hِ 1뾗^ƭnB/~g>0{`\̏}a7*hJ£ܚ%zqF'ôS ym7}#e>̥@cFA`&_t;OAY{y)#*jf54:p,9 \M_PIJ9|EI@ Qse?- ]*Úט"E?n@c NM:u_m.{`CzC>0,>_5_vߎmB m,^"lʥG,S[7h*LU]+Vfmn/H%,1gb,Y ˦6-Y C Rq!Ɉrpy~kk]+@*5[)}VM%*B*fK) *-&r1i -s$3qUzibSy |a`p+gY=cp0;=~x՗r'J^ފkz9jOW!_7g+#HR/rkRׁz9^,vѿZx"kV|JtZ~u..UE޹bO')YK!@dA&I]Y}F[M*?^~[M^I7grN;=RYPOsmNXm&l`!B9i$缤-1 d`~+tvZf_AuuW)&WrQ(Pm !4MTr뵭?W3I{C&wrOrdq"9[ĞU#u<ٕܜI&5a1I1(BPS(XSR+)8"3dpw0 ;fƕ#`E3nmf>opvR(ʫp#S  bJ"f0Kڕ! ;nFkMĿ|a~K.y(PN3a;Ú2G zr 6Yr~1i H簫x{x󫿖yGGo*? _"dN5\UkefRj9aè4@YdW0?dSvFKYBTФ5ZZK :VA9GZFkL5M=}.*Mz|]J4dFi3*i}Ƒ./^%6-/|m?{]3> glWA1ёB™f&gM!<)o|WPP)YM E`Ø3&IvsD b Lmg20GBNw\vdžD’#dP|<|S/d}\1|$́3! جnm9 #?|M}\ _ 8Oo|cXK )XrKUAm &3v#\m ~Inlf̓{bfHE ʼnשTfT Dyϩ2\ d&ՑV>:uI몯A`0ZMǏP2 ^*IQkJ[O[F=*AezJuPD)K!/4\aC(SƖ1!$!<  ⷋv7Ev-9{HsJeom<5O%/"R)c,ZՓZ)gAѸ }_YvLŷ=N;^-Ey]WK$}n%~q5Uc$LHA4>mEVm4 1Xk1N[|\xPOVl>ӹ*0(PR.#u"@*8#C?~{Ƿoݬ/GV#7o/?&̴2m `ݲbtm>KMh=_4XLPR`pe?s AL#n؃gyRr)oyſ[ƚj!f){<𻾕ո:l)D r4l*;`i%F1&ܸ5}s|>ʴ;%?unMӟGԧ1[w8H(g:ͮ0:Z` 6>Heo1k"#~|sX[)J]yw~pC-I&*ɅMwnS9RƤDHHx"!#a<9JYJ R3cNxU;mSy -(xzעQ>(?GVx&vJ w˘L* ŝYAs˸7\U-E,~QɚZJZΐ=V}O!eQ.'a~Ep[QJꬭ9.ן-5By}ճⲏK`fG9\YrY")8S~hT;Lim{ AܼbЋ6 Ux"cMv`w['q73#O)!>a# @NgXY)//+Rd{ա'`1;qi,@GAǼp|3?.e`-h=C7"`90XWa @+c\&DŽs)}횃f76aE>ɯ6]މʉ♊6foy?>r愜_wcO_~7~3nA8T.qӯcUoosΒG@I&NDSA Y'h|e^qJqUI 1]',2,\BSB.^F2@iZX)<(YJU.%[|x Q &ZR骒$y(9c<1YNąkh[ ]:{3zaL9m=N&L{/Mou |?oUxʟӵH{9_+Q)k\E5Yg`ZMAҪh߻:>7ԫ7z*0]nSXx+ELg6tTD%pK8+YsC}0T_]5D _̺Vޯ3ZZ9KsLȔ)WDt{yྫ-qp!3#|1aa:1m&'wZ!NX8Җ'Q!PGyŃOIȢX6W^ )bY7=\n@)2%5S1)0=\gAH8',:0,F<$6g~740؝Lloo ۉy:[$)cD< |۾qu̘p{y;1\reǣ/zopQb!8R@Ysmfʪ`)Dr_ ;x:.tԾԶ4C 2SZBy'>K* )knt"),KE#X$bgQJxrw#RU9frcטMBe oM *#Z5vBI},B|m?{ PUoHZrPY/[V$rfM}ZXè%(Bf݀=*nArMޕ/{렾u5[!tY2B1e˝3M(k˵kL這8.a!HL}>PF S˄NE##kbO&H!Nx?K5ޏ}&oSd:9a{g\h kRJ, XoW}75gGhca}~s1f2KM:Z'i/TCΖ$Oc5S2x0ȍ/mرu0p,Fq>ؚjˊJ}v~2!bxIS{9m5*]Nؒ-Z-7x͙6lNgv,7lnFüݑs"̞0GraJB`ǁçoy˫*v:ZC!yR| v(}g)^atjiIlf"~${ޗ\O&,+ʷ>F r3H!X:dIj !0 $F4B1 G /z˱3NpvOٜn Sd2_i]gj`|?Gؘfmٖ"͎@T28:KL'3ƆVB.sYhQ^̷w@&\׮k{t?iGEVo=$7RS9! E&Km225w'; C_ĎS!SRr{7A&):`J82[%y_ȍj]k49Q hX?2H+J_eB{Z2>H2::K8N~cR&~ߘLw.>-sUɊ">7ҎI7N\MKiϹsH?W*'n*"M5lrjY5<ᜭas xu+μo5|THrwV瓮Y1.ɔ *<25ps{_a{3o g'[nbW +aSdFy)lOW{x|;fN唫MEyiI-i2^t2bO$*'@Uj Y,ժun2dli:%1 L, zD*/FHE:nQ`NKtTS=2 c叨|RZ\ʆܪ L80 {) 5zjn:U%R|3hehXz;9!ɾ}ޭdB e y&RHh i~K8?o%,yhh<wRw !Tfԃ+#n1@t{UnzgU1<_}}|m+0X`Yvq P{u[Tu?OŽ>$9s(g0;{Uפ\^ʩDC )'~?ɍ Gt,Es&LLe "Lc5 2(yg^+gfe )WHX1<$}e !x?3Ϟ3sa 818RfLȼw7Y'Dzq}H]4/~nêT(xoNSfG&U&j^@_ /W+ +ݳ6 +5v*}<ͫ- L(3k.РSN8ExOf[T.,K,_@T{-Sm'*ݵ-/0t|<,]Ȥ=dtw-c`q틞gOoq鳋<] +Ps L`sRO]Âr5R2 y 3 %&ssԷKN>vB 1j[zQ3s>F{ȹ>ߨ) 7FI^Om#=O|ӠV5! %nlZI/6>oRHLlQI$, 3"]'&FCٿˍ[wM6;RL FC20ɀaْ}'7Um2q<0s$^.Zub^]]a>lcw܈CUs*ݳ%^0Qr&sz+_n~pvQ.%DH;8QXsʸՖ^c$LF7 G@]9bN̻ ρLb#>mSd _k) IDAT1=V>go1DQx/ae؛ɆqXCҚtfubyNo_5)%%si<T#."0l0dÒQZb׿eLwe?<T q+Ҕ巢2mB94Ū:xAԒo[)ۣ4"Tƅf%%"SOH^%97UaLaF4~ݭrcN)F ?:*i*xpz߯nmwsйvMM6 -+VZP3pu"tXSҖga hH]]+(*sݞE νb"u.aNbڥdZnL)]NkS(гzF#%t]*81#vwvFR *SmȒTe)*24`%|Ygo~?in?}9x0< lCʑa=ne)gk,~P,,6{yVM$wVߏ)I2m%iR(=UHKr&e*9w/ A:h?DdpxNon_%nҔT~r_W胼pQs,qk:[?Kp(` ż-YÑ:}{pE_Ɇ1F Wr EJ$ɹ~ε"IFrR7{DbPoV\!,~+&#I@|S}VYW9> Kݱe7fE:nBW C)iD ?.)M7pKcU S.R5RRrq޲o(z AWP@/FJǣ*UXPelZ3-zN31FLNxXPB2yzkKƖvNV8޵XŃ}ck-H k ~&M}DƴvP#ց6S]5 B݌ex-3H֎۳ )r$D=wqi )FH`|ōܽ(27 sCc EIL7d"3ϳr)v8qa-Ok0EO?+6ƬR)N8tCT ,[LoP~1QȡXZ {+?L}-v-&L&<*PSyTǢ$+ TVT@KVxV5SCf9UorT`4/:mUKm7͈5E'W9*M_ƐRGw³y[ݡO.A. RL3f!VdĦt^E)5H#4>~9$lz%HI0 L٢K L2ks5Uulq=uS$ֶM +T! )c$)F 4KH(åz_hޛr:, 5mi%Sy"9Q]*"p,3ny{'4T7 ٦`+`Uרz+k[2=N }G]3g;gંK!A'+kQs(^VEm1:S6·C 5Ak,@2%&Eh!.`/pZMts jS[39p󙒴U1g Vy̋Cw:D'@uv,Qk җ:&ʈʓ29Xgp'#}wse0v' dz[~Or<_#RW.:,4}O|Wpnd5% |CHZ| !x! 5cb{vZw|#+7K\1Wvt UFySZ  rmO-m_z%u;C?EXrö {sU]+:;"I@@&r#0 K2MK*W*qvAȑx ʪ&X+A#|hf^vζpQUJW0hXC63dWQ#CFg9<fe~G?':ox V"9~ `"ϧ~3{Qs\ Ʌ;0 RFʺ"Ɠgxý䔘ÎyW/ C`bo>@ %'qk)eS?sƜ|3Ψb9P ZC1GB2泙$l3Jn/?u;y{5dZ%`Q"B&)dVANWħ>~ [O?}#~mx?sZwv,aM΍+WHN.9ChIeTu5ԲFQGN=be$ (JnC97k; K5Dz [+25O!wԔ5Z2E\sTL`Se/ t{l Ϙܗ, ۦM4΃^Kh ETf*a<ɚ$jL1K4Ci.mwZ+d#j S &w> r@`xPkK3 ,ztBc ԋp@<*WdD\xXL3872{̄=b9Q$u^@z[r1ҧ *2b+8o 1% \ݫ* Dx/li&eG_[ u)iʐ 0ZY/|WW_= jK٧NlQ|763is k ~ĐWkXViYDZKN2M3_ _NdNBGa֎t"LbψqrimbQ_cfmyɣC/,\GL,L.QƴuF+K44t!vg[1ba/k,aٝnd)| 3tY8z!yeŚ;\K$EYDZB\Jo?}3~gY?|=zɖie$B- w;s'yٖiLy-c% vBSby%i:7|e)綵<,zB{R'$/-լ,=O^VCbVb<1$g 8q֔9X Fկ:s+];ͫ{m6D1cM ~ كj@]N wױw$$"ۭg( C0h1/T1P,hEgݵ_r^L~? z}y-S2{BI*'˳[k aF %g1V]([V$QTNfEz2y9Kޫ4BvƕE]mXܭj[9FtWM3,? L |7xѣG8c8yLp8`Q>Z5 5޿ #pH)Vxxxtb]m ۝T\%ZPaӿ4~'??MǼW MBrw \r1q|qźOܗ ._ZڡVnl-/yqA38I)9o)%j}˵d&IH[ܺ#R4 rHlq%S Y[w|WHP=k Hg,dxw3:b`d}<|o,7;S?#ol5/p-LCU/ ~g'?rl#V 'VEE;:9+-hǔ  W% ۯfVtͥ3ddv-#rT(Ba E.ܧzZS"A 5LEU,BzRE~)KdU&.>wONݍyd֑L]XQ ƒ-. +Sqi U"˾"!<ĒYlЍPfu,K˿W1 c:'/kI%@WtV=0`5Y D-XsiI8iš%({͌.#fjk3vPl'>t2Kll8}f֖l2BgC&W <8>D0gY(>Pp0 E ,'[\!F8f3q,1~)&$Ƀn05dcby7y{_^^pAKf\ a'$QFD*I^e-4))b&2#_'+FdKa,N )3)Ěn xfvGKǘV5=+r{>™'lrϋ[V(s(NJR&LepXǸѥwӧ7<'|+. qAJRf&$I}DqK3beIqW5PbzV!(+. y98\sSb̈́;Ui^#g &&V!|v;$ɷ<(ςq 4gGǕkvg3i˫]$daN(BLLzXȴ886Feq+|7 Թ{d+_PiAMF,xhv:RfΣVYi$Th4R(pňP1LklƙT •Q 3k9^XY(*j:y_F6M`@PK/;*7cX#wW] \v] +)TۂJ NGA dq+̨ɲ0e"HzhY}PE'Qٟﰌ$T^,z²P[¶2հ@jc뵴6$C;;KGk*8Pg;4,}2aߡ놾- hm0.R祠qӎ0ax׿냌cVV5akGzW]!'8t,:G%bO_˿m{WYtg6r%GnnY_&p3Un+t&e"(ݝ׾ԎѬfɏbE";XlDYz\UX婘=i4A3ʭyᕗK@L,#ŠKj8p i<`202x 2f &ХOwl>0d e+_gvX`Y=%Rʄq夂,l%d sdp+Yn>'!d9fy]Jl[8=w3a7qUar cp6cf}pf8sfkPJ+b`IzRz_uHʓj Lb-iR\x^(Nꍦ UF\!`m_7Z A{gk%p180 ʄ6!?XD qL7i\V[mlQ 5RYi]GQ֕E\*C6;Ӓ{tgj+SDu&GG}HI\zV99Ҡlqtp֖+No92NlNw1<.9'/~!XV*&>ws\͆8p[)Z wgw%Da@=SF7K9Y{a LYB.s.WJWaVL>-q򄹄*Jb5\=a .^E }*$+~D4\g?38<ϬV#1dP%a7Nx^@y 0HleB553#~ 9B/q| % N'RPvd#gw<Ƚ,G,78u"g Lg3qnpۍTgd˳_ N[HvE*Uei".L qyB/ÊAW$%Iw @)S{t}}oh>#?US# 4:#H;s U heUpnUdu?5_-gP(_iɢ]U'^K Y TWRH!l*2Z;0:)q]N*^U-ao \tz"(1 y " PH5 X1C)sȱK}?H{Ԏ]mrԐtn NZO ^+vw ?I=ټ#Vv׎9y|{fsaw6:t)M_=&8O2BJtלIb+FNn AJWdϳ0BjC <7n0 Vo-͌#yy'WR!YkB,yS2@dN;HeX'ma: svե5p%Vn>s|%m/~DZ\xK|W%+U[TX/_x.TosjcYM:cz-ΔqmhaQ?hL.}mK-}䒶CuՖr[- ϥMizܥT+r\鳶r;6)3" IW&rGV/`4ǾPž]ٞɴ^By 6W [a+̦T182RN GS3\ @2? 6vf}"z=2lg,@J)cĔsfaV8611xC90 ;& %X "`⢟&d呣O#f$ KKJ) [sx c7$''Y(%ONl"䌐#q*W4Mz DѕcR,_DAn&ń$M+ x :3O0G ֓#L~C&<=s˜|;SXFqڳ EV➕+x,T.u\W%]Yk*AڟԺ}gNYcבiX "}UoA)˶Hr&w`mK(Tз{pN{XےW;fVsEQ"-ZE LYr$EXH 8zȋ$ rl-ۂAQ&,Hn{=PU_>;On=gתU֓܇hdny;޽vA &GqИs;oMʔ~UѬz}V QTjeF'~g/K +_y⟲>=kB{&ZV7Zbv:~Qm_0b=XK֪b2'b˜4qU}q"^rHTC?U 1W\Ca&FsZPXP?dXJ%S~`Sv̧ro "BUy[G]Tm"c "ڏ +{9[ѴqHHUrO;`D)Mpu6ij /x?|0S#5G]>ߑ̼&DD DԛŜL*3 @M1k-͡R2VψL 3 33+(gk$tVp.rжx7)ҧẇa@<8 f#UӢ7bnO2R,ȋ^{)+<$CJLJqpM$w'|݆)/UAi꛻v,% x1x%[-sanrmc.c"IKn&@؝Vz5ga](get *.r_NjbjrLs;Nԭm޿|_K.쿲e2GB72#IE]Q;]. K-Ø4OTƿE up,pi;/%+w$bTOAU9`P @ c3RY{wʓ Aa7`S"UL4Xqؤ厒M }rt"xV%F: _}6uJE3He)YVDԓa)bK}ne_mr8ٰ>]YQjwH=SaszT~09C _ q˿ɥyAЄbZy3 MY^KٲK0krDZ!l !H'(,WW=;r$/ )"I:gL2i͹vp6ZhVǡiNsVE;Wijo0=l5fEga܇zCJ SRAs_(/VSh<;DhKρ z|;?Bf^Z{1LY|GϭH,&Yxl1[$=$@Y3(PRRUiPYlD-QeN|G/ IJT@E}gPN"Pdnw*b87ly/re4&}7[ 㭧iO >jt(A,w խ QџfszkL aɅeOuZ׬֜?wθIԍ#$W AmldD9%vz T{U7Aj=HApjU= D%GB:#@1M[aD a䎈q{+} I1{è D$0UUe) }6$Rה`1S;kNnrv8DmC]{C H14 jUv:$=UG~Zs)Ģ#GT9UTRBkd,XӑrdŠxԛ Pr@ eLM?7#93Hv+)2{^xS_Nz sU5 8/_ x8W+8y1.K <ˏLg <5 j601i9a> PMP@fJsE8Q"bT˻ǐ_)KB-##䍙ya,H }hU ścYMh|#;ʴP'\8$ ,c%D=Ra9|;8yW'οUx)'ưڬ؏=[1DLeh [+1yuyE0qo1cНZv仾ü}?o?sNu۰6 IM{5W.Znp2@ͪ2?@6ygk߁4_o Fw@=th=19ƄDkV$h6q @.e 1B ZO!ҬWn þ> Hm+a${Z[X}Ð$ݬ!0h9du. EL Q _MW=|@z8HsGڑ$Cc;tW鍛\q_y_aVhB6qUi:/DCc@KImb.L2C)d"ٻdRsUJUJbE0ً.L|0G}%HRLƅ򣔁i.3Eύݖjxrgi2YN^,1FeI"$&V ^dg]<a)j3I&fPftOGuqd:z xlm2Ƕe =: B.M&z~?4#Q^а0nYuZ  HbtB ;yrțpݗdLkld3dZpL2[=1-EaX܈1e`r/D2`Ld3zQh(3(yQ TVm. R`{/yD,Aa$vqR|b:yDq 82#9߻g7Oُ[V nxĄ[(7=MP0&IlU s9pru,TYȋ9Gaƅ^ *pHL]ZOaGY|dٓ 9ZMoFB&Ts6,QR&H*F!r,˞빸)= )Lr}1A0.A]9e K`PΫF ߠLқ@!Qp=1hEMȚ<YbC,⳾ՏdFybȖ\x {Bz62>˔)<*FI(})[: p''e(紮N'.2' '.\'(wSV 0HAvB( -%v ;o{[e15MJsΣ!̳/S#>p kq#cbn˻;gp1e_iPSUЬ=?C?<_zHhq〩,ͦe lE䚯%mN^1h PU6w!,nVeW`9a떸quDLeRC:$0I]Da@0 8:"j w@F0rԛW. )lp*FQ+*u^qc| U%)~$asxiٝ Ս acPkMn1aNǑDK6=*3:4x€f[p2 ;ww~o᩷>ɭ#ow N ) }U IrP)帒áƢ8{(D.\0[,5 H^T5nZ4|b5#$3WTIJ(K KғQ~4tl\,^d)C2s7lɑE6ZߨV(XQr 첢 LFYl^g\:%vw}2~^ۛuY,s m7g'jG"dYhLgrKHވ~΋&APqb%86Y"f6){u.t]ooj޼z}I<+XZf"_wr7'Im IDATc~w (2wnʵHJp9rn?(Li 1 1Fdz̆1#_˃#'lwW6k0g?ίk$ueVvXm~?׽}.\ҲڴXcL|?I~c+Ya-LGڇ3{bS!0 bT,cv4swrڬ \"d{f9eX)ddM Ţ|~iaL'-ha1KDQήy(_@,.y!-\l:e"MJU-\-f6k3l!`E򀵬&,~9?Ϝ<QX [m[x9`H 1jŽ+Էky55x<߽ihE*SJZ8k\Apԧ5Qq^Y [* y71~G<1=(и1`v!⼣Yyn^%97,24d/`(Le[J<[KY Nsߩa2tbBrVd.h4IҨMI\R8eL (/:Sdcd[Fd!3G1igȢ,`4˾0P$Nk^cx7>נ0p3lF0v,נ2UD-;zIUծnז9u359z.w]?v 33,B+2|+caG*2NbLYI]X6Λy>~WDaSP3Zf?yF$v:G2`R=̵ ݫ8s?ЎXgY+pnguҬk/hyygKICV0XiC8uū{Lo٬[XCwCb 'ZgLF\>/}Yx#Q"sMn+{{6Y< v8}kHn'%)bI$wDgi65q7FQirNK0)}H)}KL!(7b1$D^$ aqF J~Q{yUЩ9I6Q7,1$CO>2\u<7#д) nT-IP&I[}z`ƽswy㈯=WK5^9'>R!]KL_o'~Q:q$,TjA$ey X|Yv, bJ趔=3˞)nY vH9M۪kmz9|s=\ZREA al隌,)tM[>e~yr3 >+X@͖s(a e.AYO234["j. RƼ7df;>hA-˸}a}/_~黥G HJ2kX$&Z'O4ƖXg5EkZ,k>=&< &+%IY)eV4rDD _ _f}a;50ƀo)? #uoskqV€D=볆/=ΓO}J`-Mh.;XrYQEh,W 0C´*hkZVI[J[B>P#k* ^!0"QpW8 x_8K#] 5kkL1 A5b Q! p%a?p)݈716I#V*v 1}q{L[֖W[~O?¹l_ G?'s'R T3D4,RBEa xB&U~يlA4DbsO?`Z꺏KMY2dn_3mI0g#NBf0R0QMԓœ~!O 8L?2M_fO„.JylBrʛ"c]>Id`16H#4ܨ+79r &99LVER'7U+`6b*=Uγ(^Ü̘'ZX=">4DS>΍As0},B!8IRa,B0/'JƱM6LN+v+k)jNFvGGٯ%)>'iX&A% r4vIJ yxob] lin:wc gsRLb"4­'n+wA2` !@؆銋MUPW WW$Ii[}njlnlؽ+.ô:Þ{LU>۰l_I]:Nt_O9")frèB1ɲg8۴z@dJ宔ڥQ qj=g\_nZj[!c$@\*U.~-M0J =Ab 8Tlڴ 5)SWyOR+F)GYaAb9b{~`%ԧeB<-Mm8_+>&|'|{SD$3QF=ekΛ)E1X)¯GaQLCO7d@ӫX+u^SRa2#8y $gdQD&Y;4(Y <,= -!t$(Fa릔129&Kݨ1f,9yy Qv)gaB丘iGYESt[6&ge4k?e\oKH(X½"d^wLф$d74] Z$yдT,;\-|Bp8<Ҵf:\9Q05)lik(X8rS-6g3 kC3LIA«LCLO%*CI3 }0YEORՖvSm<&Bp߳ZW?@68ҜUۀV2씼j+b1+d⠬] mOf.a$b}݃=_Ӽ}"6-m n7|I2b@+G4Dњڌa3B7fĀ,U[qH+h| /͑W#Hw$>W(qR[Qザ3$}=t=S &wTZ+CZB$, tUmŘBDFns(ͩCuN[`cn#ڻZ8. W? {\m{W2KK lM뾛?mO 0+t6iCaD A,)BX1"3F*D8m!Ē6X^)F@ 2|xa  IƗr#y"l@^4_&3ϫd~Z31oeiUk(.ˎ`\W1{ ওHUEZ4fL6sYu pc}xx1Xx 2,ɹζXw(gaB. ֘YI@&4-Rl׌t%MԥӮZz2B OW+? {-jⴰE*p&1VD}9FH%A%+y$ f.9OxI;at2' vTJje:7-|{[n&qT ՍbҷH)!Aek|NEDQ~&bauW#EGSQA.;(`#>j~8v+2/U1F* mUJI!vȿǹ?7áǷ$x?y;v8V!J$DznNYyO ZRSTe,ݶmP2/~؟6{V*gm a5oTP<(]6,+)Pt*PI ǪDJʷŴ9ӻ{Y:]qgi0bФ!ԧ5CǪjI.Nvc #պpuAm*CGUմ~$&|O[7ڱ~ͦXRb]+;^'gԛנqʂKoIF!xd+2{tE!nOU+O n'YI(Y0 CWU!RPLi;=jUV(x#r}OjMٻd]0N]1 FΟZQg9tzqNb;=geMáʈ1@\~+c4ny֝5ͪRUh^IQ;v nTKهoO>h#yk=y*I1Ƈ.y5ќ%T𮛨Gߜ`WKE{ɻzE2a;&a<kv U xM#P5Հ_9$8~'MCT/{ڛ -\Wn(Q_״77|M}+]jbU3掋[W[{_hc$E㨤=QpIXk4R44^mczh³ & (#V)fn U+%4LW5^l!ii[95`]D+2,)x66qwJ&F**mfVyM&6qKg)Z˰0ǀhY\uq'ug?gzua c'W|tuO|7}I$"{n(>W0 !K`T>۟}yzE*O$ Pd2Tɔ?R$9a Fձ6+P BvFdQ`q@麘=Ks[0Jd< ga*Ϝo?r+@(W_d/nY)S.+[ggh"{r;ޔ %|SnbQKdDyfO%oC/{(^jE$bqLZ2 ^c$A]O=->Noɰ29aʮX>]]]:;PI(%Ճ.; 2cA+; Z^eE;Gܦn*> ZL8$`Ca|Wy׾W *H$d1#ֵDHլA160Z\Yd 4*R;bc;t&+oJɜu0}霸;7a DL\mi6+\UM` FC|ya=/x|;ǟx+qS֛vg_WHbhFNdYvl~7~}#UrI % q%C?CR`OFFPSAC skg B.;jދ0ɘ`Fܢ<#2aYOL,Ml*F6|:vstIC!>281%LV?,9ZD>2de iƤrg%_9[HOVn4Ojl~8 ΟYuebA,u~©dqQODӘVEt L=v5)&X{$T&F"p891= 2R5Ɛ̼ aw>FF--yM>K΀r{kU,~\x|ˋ<1Êљ$ZwW[UR-h1xQ#z~w4tD#wn3"n1NW;oͫ/?d㶞IKH$p-ˎ{_zW{;o6G%7F IDATcjjNn0l\mt7XeOtïm`nXVw6IXQP xvP.{E^xTe׏)b|*x{ϟ^I:YѬj" l+Wa*9ǐҢJt0G giקЫ =$nn`M˾'UQXc&Neo W/ d2>L6zd)WdiqPEV%wNn4U2wm1 jtM=' \<ʼn2g8=;fN{>Ɉ(U~-ɕ%4}3DRNt-\|cs }U(P+q%((W2.[0+Cٟ\fQ#ח錊\hd !L(n(bvOx6'4 fBq2ʢ26zdJ3&7-أ(zb՗l$!%<P}qxIx{WXOI3~W?+R8;=#DDapNS |GjsB FOw5⫑5\r Ig m 40&-ͧxrrvx43aþgw:7!qBWy'G(Hݮ8}JՁq ` x0$2FLW9Q$i|ע'ta;Uq?2mK0]GCz4yFMZ<^puyEjMG!lT7ZUc  rX1ĸi2F愪6CG$'ӷqͷ V=;U.lZL pg'_|g>Y4҅@µxWxϻ5cuVӮmyG^c PQWaH iņO~_U@F7Ł<gfkJ)-ir=QY;^vxڼLIua#='5)ׅR2,D3Uh#4M1TL %%Ijf\|b1Ƣ| 1No  ِ,l _=M%sw1D䫠^#y\P3R_9Gnb.MPqbmΉRR9N?5Mz\5'w|#|'U}hזگ?_>Gp.~f/,cLP&&[Id#* /qg~38 bX~d@QjFGT,b13ϫ/s;LR3;Qdy͵ șS)( cYU`aE#,RL c_U /.nSN[*-'yQW& U(r65ɭ9dr"BzC?ᐥY6YFCֱ99zOg> KFiZ87jC=_3VT pz|/A9=:f<8mhCIƣu|Sf W5g\xR9iWaZ T1Tci7ly?A5[3&>=\.D쌨&9iIy/ʢ3PV9B -9>9_/=\z3'/B*u!4YRUej|#≣G  o38#ޏ}RBt^k So{{ d׉%PDv{/BpL=6Io`hE Q &9`20DBt=.㉙)1tRa~ֶ@ǖ}N}~0f RTKDQP %E2Bp)^8D[=|E}J`"}CWuR]{@~ݣ# }b.bVj i:|'d5롻H)0!!Pd?̤lT˳ (j9<?__V.޶dN(PVȚOl}l69jEa=ɬŒrF iٜ-NG! ,KFSTY%+,hl("䫯5?\?x|ﷆ=$LS\9J0RF)'LSИ, 5zoQ2.em[ī#sh ոdsd8 YCe9V ]ijB`b<,.t7XRאr[7u5g' [2clK( i{Ŝ1+UG#1xoQR=M0fNzIIhAxF;Sd!Pi^i?zEӠd̵WO~]%GvqۦfgwwC s$E (J7'qp(oOMe 6mrP4I[C쇗CY}l uuQ"U/z)z"3th%A,hp냮Iƒd@'fVD ˝c~C Hd8trA2 ɐL鍢bhu ߏp/}v/w7i'4Js+/$īq}rCx^ uM *s]diZ}dHpD:1&.ElTQ&`(9uPC z)AAb o :ì>ҵ[q(7~`Dmq,p&%jtçoH4B|,)>Q O4aY1Zx g,ruv3aCU\gl"/U&u(YƕGgC>mB^ޣrR1 wOвtto%{;+/GV9E{G1Ȧ9zٲ_rK:NA&% 5Y2/h!PdRY#C kZQuZ!_ Fyޔo:Ղz`Q5f)mp>vR6d uRa^\4 Gy($cqw>۰>;))2<,kó_~Xe^k7^OC(.٘jTs&hlj1 s,'SL1αox7yG?Iz9$yV`Lt8Q4YƂ1g'Xxcmv`𼗑$DPͧȺlG*Dr/)%ETH|4L$!:m!(T;0cmGeoDbQ"Vb1 < r-0Oiq~:޳4]v&K${J텐n %Mۉ2ކ>damww_DnjY" s|cgQԚ֌gc<5a%A~įr: E'O~22ݟ@!h/+lzA9XWT %eUa\e:Yūpzx_, PU!Q90!T;%soq<8R*ވռ8{KTڴBVG77z&SgkP>R Eilʨr%/Z7x$„XgbӸX4%oA I[Q7* `c=LxkdٚVk@*E^UE96 BJE⭻\|>Wfd¶ RIzӆS?|[Nm=xy.\#Pyޅ]INwޑ$e " lYhaZiyo[H[˺ AHP*hV5]֜ylpstt5m :ߏFKbu鄽LMFDIyz7춡~+ {$Do{br>17w+蘑1+c}D˘Y Dc"s"RC@ԥv'?4&A9crk!Ay9ۖ_$TQrIh9f!Bz`ħT"{Bt"HD]lŸ6O@}V.Y >e &+q9`F;tJI2)ۡ ]2 *YdHJEX5Mt\br*64qc OG(i]NH8kR$w،זO[DL=OqkװDY^V%$GXj] tg??o}izP5_eP4ƐO*Zۢ&nX.5vi7 "4 vmizM.$z`5`C.R1-Sۖ?8j\Z'Ҟ-1ڡ7tFV.5)qhgL[prtv](✅zi 1‚X6!mT.kbeMnCX|oCccѺg[Y!CooݹK6*( NfŨpŚ9H6,'hB_g#Qc,^;K)#\ӆ:"P¸R⍯µ_fAjliy'8E.^|4a>y1 tTйHGCpq>˾c(ǨTB|)`M8 0D8j{ 6@"FŜ#:OqR6<tH|f'w>a*87 MG3^[<˕#'ۯby$#QƓQCm `]c.%qr&+ݢԺr0^[ X J)5xכ<(pReFLH·20qƳ<=Ŵ9P8Jcl(DK֛|5pA9Lۄm\ {{8c,|ZvFӵ!:i\cAeftuB^XR:ɨ,C i0}hlw`-fͪYII9.RPV`[^}Uqx4fn2X2+KLC/ESUB6%'cd1Jv2ћrTq19ːe Ȑ 6 ރ֖|W*C;/<§?E3dLg#7uC9*˰,PYJP/6 լd`^ixXKZ.m6-ՊzҜ5lnιu|V1:aoopfB ZRGwd2#HhdPxw`Ll,u8D78&H/YII"2f`z``HayN'Aa.b "wu:ǤP~(]t~)02$Cw񎀃?g*:bQA ).L1 /dadDYE@ 4;>_u q^nK=.o۪sB[sn͏xhQ.\D();@rm ] /bC)2?>]\-/r5nXqywmsB gzduR)s(0<ѭFX&1 *cXQ֒{Gf*=A)2|>b)p"Et~­T"kfC)cnbn(Qz]ܹsoPExx:e!ibyrƊw9B&P*[ FeЭA:/hF+K7^} 91yJ❢[f;UhVS %{}zJIW3 !X'Ϋ+\1{ lAla{CV8\GGɛ3_,qN3bsz+O헏8Ķb9Yn6,@I٧oRZybw0?/۬a}FzC} $4mQxeogK 7Ώ;NGqq1dȀHP.Ba%= jZ.Uϖm8g0&r2n7o\-NO)Y9Ũ@J˦c]%ei`!D>'󭨥ㅣ'Yʫ ƣE£ !7B%TP,eY ^{ xnްXZ?ҡE58ʲBz55oLXΐW7 9y1L1ERY8)9[!s.rTGfkk, p`X=bΒ蘗_dc {3VS, %EQ%;wo3o䓜}) W1y*SE2wT㒬ȋ<5:n<ݧXWzl]~G N>Tml(05Mx$eBc͊d]Li76Kk 5Zc! K5ǯayr(%)l5ϴOpc:{!Їzڐ`ΙP3ZJ(,bbS R ]Ore m}]‡`I>f*$[[pQ`؃'dguJI ņ`**DT>֘]\ >}kE?|H 0#d\,!VUp!e2LD̀a8O . *ab'=?Nr΄pX SZ,*ǖl ;n\msxBby.][h3;l=*I 25Xt!n3ESd2auziLK>*O,O8u.;{;erSgw?@XRѨ\ /si%fa[#C%D,&iRZx"UxszːO-26 U Qh<|dTHaۖ\f-9[Uq9a\pFO8yCd)LpH,$NZ[zY(=r'7ǾGȜd>y,+PJF WaZ/Zsh,+V5…JBHU[Om4&I0?Z~L}:G6))9*qѴ <Av1U6y`ݬ^o'1v(BEN>EE׹GA.tDswxfiCpIldR֗LRR@#AD::^se/{ E DgdBzےsAȱ%`bK-nHmy/P c~u D y~Ѫ@ɮmsJq U>P9<$\E@7{:)0@H_Z1\>۰ӡip <6$F)^,}.އb/އv\hx$v91bP룈?\ rmZM~O|ﲷ;f1cQ׏kl24#+0Ɠ%y ucQYWyG'~_3~ogqG34BoQjŨd2୧7rB)1*ZG M] >[S폸t(,urWxRx>OzKɄƜAw6ػp1'o3LJ>vww1w޼[\^ShO~6Yl bT#иVpp'4o3,YSTc6̃PEIxo[|I5奣+dC^ ۴d)h)ՄI1bTMCOF7[[&b|z`dy^|⫨ΐM3<2&_30E +0M()=EQH7N]xIXSyA7fUJhR༥^ReZ>v蘦b7CrDm4S}zw?IIU'ĆxѺן癗oO>-C@P@,%$V`&{̂kv Fӽb :0)cyܒ.f&nt%]WW'qd>}1hp퀏MHCWɪ( $~FW\-0pHjMl,}4SDh-&8xG ~v@]]~ a1/0^e͙+\B# r{2dm֐!qM[aؙ첷sCȽ~\|Af{;֠fEY`T\Q9OZ{O1_Ҫ .ve.=.>߉KdeN13M eQ"F#^l8~-rn=]T!t=8q ڲZn0 l:#V k))N/Bve2>=C)pp8J0am hk.JťK{?w}{}b6Х1Q:(O{)ҽђLrϽdjP$+R,Vx.BY甩ɯgI/RoecFWdl6HFh%}`D[1OlyV ^"d,{\w_xC|AFAJURIb اS坔S:E(_.G`sv.$ .xXV@SH$r) Ww%nd<oɆ9ݒO;Stnз}S+u} ShqyxwȪY)b>]G̰5bEHzӲ^d2iKWCp9vFVM9 >d"*W2(6"D}hwI*tp,ʒ3 ow?(FH!P*Vm(5c6󆽃 x yE.% 2/{|ۋ[>HQ)Iß~?%U,B*BB'G Rdys_~ h_W}|s߅ `EqNFNh2BE"C[B2PYn YBᬣ^7=zYZnȕ6'ߺq(JUJIhgJ9'k|}E> i}2(PhZβY7l/Mn/_D}<l jGDpN$Œ^0z ƟD$EJI" :13Y: 9O<5GMGI:N6u^ih0Ad{ou})Ts{O|/8_nR:!^>/H* ?ʅtDlj-M6-Q 0p )R0Mq {[ꁖWc4igZ!x3i#Xܞ s-I%B쉴X.G}Q(E,BֽVB bLB`H Vo?/~R2:ڰ9]Ӭ O1))B!ZjFx譣ß p[`!LfS2Am**LۢEjʼ\ 5,YnJP2L( IK<;e|@MC֧LqYFmCGbmvv88 /~g2O$´H`ZӚ]2V3Vdĺ <_̕4{dWxU>9p ?իݜr03-s:ͭ7Ѳaow"{rOsʳcF:)O^x'0Q)k$wo]`so`O|;Dz=ӒL*,x&d( , 7USV9J(5BHT.7-Nk\ĬmZiȊܽv n0`>nĆޏ=ć1Y>BD6UP+"'eTtS0.To4Iti xxyd*K`Ab|ATI y Xw/cLY~R!r;3Qi[ (D`][ OśΝMrg0@w6<᪨<}l[#~.bW}4"G|*'< bX@CinELK"*4{Yb |v$%~OMy ,Pb{dIc7Kd%_:;>@]z̰U5=U5khmp&$)&DȂRՄ^UȑdFrX9=Df(gdmXn$)Qiq>U q hF\y}\c~hM9Qѫu2纺Nh`OMRH6VАJ[EU>+_xKx( ~Y3OV##BIRs]K^f(+M4$5;sZc~|>9~8*1mMi5䂬,PYW1dm>3,-uP;j3< ~qyк( F1a47+'Gܽ}^iӒEC^Yea}.>8g ݚGw(M6cW._P3lq%1-N YE^{+ް*ns6 Ɠ x5XxFc#s{cC#=cUqrg߼> ,JoWVHUڗ 5׏߂J/|z.\deqth:\b[>THVwuL`y2GhI9*ѦA(bXvL =ON&į(FӋ{1Bekn!Z;1ݽ nk1Pl[v6ȡ8cik޴P2ܝ"N):6> E1`X۝>;`2|'q12 %% ;fk E8ɏRLJ^ QŵKJ@It8[8~ZR:-Zt|'?C KwQv IDAT:,e\}"dg>\MFEi$WB}&7]cYvIˤ2]H,]:GCͰ+CODr5|vځ Qgmbt0rLMBվqE|qVa4(} nzr] ""A\,!QH+C $!s ݗ)ȑ^P/[N[7/=3/?7^VsBL9q|iwY:^>`qwN%NAX5)8G&z#X쎩9|!&^)G'Ȳ7:D* " r:"+㖲1lNT&}ra1m8&;zS˙Φ͚ysF5*rXXNoߏDs:&4¥9zkY.>֌;g4Eo$G7,%chs ^[ܽUFŌ%Th+o`Ykd00* ]MQ%WpN{LyՃZ rWȲBȌ1'\T />=Ŵ69?Ov-KXe9Ƴ1!a:㬣5d~ŵ#FzAQ*b ڦE[hck3ZsdUN?Gcg,nՐ9ß|/~*Z$9ivm~<( $6p8@TE?6=$۞EolaPswfINwiCаQn,`{wMwct +fE WH8ֿ0Pe+OWuq s+2 61z/|O-238Q#|G_??|q5bFE.x0ٹx'UeF5!hթ{*Bgiѭ 8kMuMs 5%Mۆ )"gBRIV tܶY3Q{9}~*PP8q 9bQ3[hӬ| \oZ"c speɫXsȹ7_j]`#ynJ|現­>^UC_oشEu0Hx'={//yw޾Kxa\ ܼf 4YR*tchNP@Ku2Gih{ %hVk [,ޔ.DI0ٽ0=G.VbõF 08%H( t^^ TODהXN<$cyuYzlEİw`z{vT;n/Ut?'wmU"ƚ ]"Fl55 hm7]>%: BbChLFh-#Kbf -ON<ޙ:Rb}bd 9M@RbCvQr/Dx^q$MovT}zؽEZzX4C݅:zt+ &9a7 qCƬ(mŷ<}Es|$#!QdnNL.^+Ǿ5nS̹{-npԽimy{53sGK)lIPR׀nݺAI1E[N5<%َ#١$J)8w:t,uqgz׻ ypLgG}Hg$݄`t48x5gpOwKgqqwHٸDG1.X>Մ>ls}Loe<:deIG8cB阌1֠gݘ8!^Ap<ü1|]f :DJ O$;̘qSuK4pň>Ʒ'$(G=\w,ߥqsO20Gy$ 7QHVaCZnߘ7'͙3v,Q2cuc}Jkka$X?eRN^_W}.[~gy_O>Doyl܅n2<: Kѭ`rbGܸ ?FOb%/&McnԒ$c~8g}&h )Ѡ49$0 [>Xk-(Av>Qڥ% `α%l΂s!vT\i-QEgƆ*IEJw뿋CK2W%$7-}ƴjd#ǝXT9 (Ѱ3.3Ʉԕܔ,(=9 rr$o'ka\+[[U_l൜7Vs";tuP~ks 3v̝,|zo#Lt}{m41# !%@rʹW{׿K~tW:(2;I/ Ie>wLG|_%%"}9>+L#.\benXS)Zl{>ޗRrAW:=g=3!DJx-J4E:K~--փo3Xqval!]-p!nΆC1'Ak( YUD')s#oӍBg%KX\crsH^ | tEa!jiU9xLֿB /2,Didk Vdz " $9ͿxCA02v"fho00p2s;ǐX jjel< hn6VZ/ ?nzE)L88Y\V#!تP(A:7iRk͍fnr5\~s؊D}mMfޣl~O\Z sNF)Akt^19 "dD$1Hx`(NJ5LFa;e8YLO3t"-u)NO}>tVtS& Q{ q7?좥`?B`J9ra!$'":iFy0#CZ?,ʃSڀ9*|)y@ ܐ]kp<;+M5>1IG^=''l ~`kLxOoҽ~.'=DnMd٦%*:?޺H'NFl+l㒌I1%sakkx.\r>9 ):ҝ:4w餇| Os>SWrl\XOV;C.NYy)2q&Qo*%O O= ?Or.tSa/yCRI}ɔ!% 1ҁ-s %*8rF,P.A< 4C[X+IB1 ˲ZYBrB ):|&N r 1 8ӌuA%=R1ARd-G+S@:+(33o+Ex|M!2:| *$ A4kՑw|֖RǨ=mG5G |ҀjLm>yК!6i~猃w&7BȦԯ)_l!*`9jZJ/{[ֵu"{[Z_LL̓PinCuƙUɇLUW-U]RPY:=svqD%s>O~GѽJJGI3;!#l4cr0E IYs Mh⎡AK.w S4F(I 'ؙ̱#U RŚt  vO A,T8_5d*M-߸>4ĔWcKdCaH<9؝Jn*Yar1''$[|5S>D1Ϭpr7[ϥn3 d`O|OdDo7_>|i'!J33̠ǍL8dJc08γ&+szjraG9knn;F񜓥[ uLY8޸1 /u8ً&(~j7wOyc4_aPܡ<"I4˫1$coF@qL + 33ˌxҿ1}?uwu-k `<{xI!wHK8tRј{VwȦc|FDG3 I4^ ʢ,4Jt#i)1=N;{ay;, x)dMbL sv}k12!.zˊ>;;wS9Qo9&ERN(>W.nhn=E[o9=yU'>+y[5ٸ!sik=ӓU^x)C$-y}}yݠY=Df ; O?G V.Fď~#mn!DE)I'%tzJ cKɝ^mVz)"tu&@+m@tag[t,m\C!@;XuS7,,&yQJ#DP AJF@'@w;耼 ! rhfLIdyNVddY[S LoUQqo|Od{QSٰ։ o xMrwN=nۨs՟m|oʡzNG4ΨXr'']vu^Fh!gqZdrWy&4sm0C o&(jXf {eނ*xhy0iAg[s^5HV C П橽Và^)U,^bªzV s ƁB HH.P}_xWYa JFdϥ}Ht@Sw"d*zW(^c1!"XӽfT*RA"7XJZ;7J.۷)qeAcikUQՓ8c:Vq歐ҐyfL#z=FT \'GF )T,pN`:W PDndC`K􄈠yTXL$~>8㕆c. Y;ollh+*PRBV_+ IDAT@lS&^5C֌-Q! i Y{Q+zr7+6AOUoQ9T(:@F}DZV6ܹΫpSP;8*A/̭~Q 㠶4}H=٭ĪXMX /lVFel= ~u3[8ٜJ޹CRVwH-*e-›ǹ0{lQT֖X0޵7ns*S9Lbus%}8A&Q0RpKo2ڟz[0XW([F@#ȕ~YK!)*O*^ N7QXbARYF1.@qΆ1 I'F*L0xtzt]x:1GDDi2%V4#bHl>B79(`:#Nps&w^{ݻKt?n'7pt)#Iͽ7޽3wYp s_:ˇL]Nz>|#1wog+耬t-fo뚕s [p€  zL %e))?pO[a"λ/qm&7|&^oO_D_5T;t*bVs{w̃>(J`7DfeQ5YжfSDXX Et|f)4G #Gv?oV` Z[ %Jls 4hFDc <,ifN'+->AᗂqgqHGp쿱Gs RyܠFΓg9]@H6JDv ċr Z+Zz~SINq<~" $$N52ؙG7wo,17wiB6%'ltKC}}tq~cF吓7~kG?dcÄ=VtEp}o.Yi0ƲX;eywxsvؽSF%M%CO.+c0^}LG#v.{F%Md\X Zo$C`i)<#/[߈їǬ]p ǯ~9=|s|O x|/RN-E%w 31xK#=%Nwv*cC$n+W( Ket{4B&*dž Y=։%Ɠs6H:&J)q.xޗNCjm %$ X]@Ӈ 쁑RPf&/1ӌ,Bro~$ [8isWh 2nhUU "Y2rrcڸ?I)Co#hA#EK5ak~  R,YZsSLMY88-Xoꊵ㠾|s늖:FTaU*]y${apIX# :'z8=Y  Am6ap4ᆆW+/yx6Rύ`B:!UP&.k*v*4&Y'"+,Rc̾/ Ok-:rH"xO>DW{x EG(hW]f)3(KbKnJCJa ΁ %}QWKкW)P=6 ;'LYdzBoޠLXKX# NE'~ՐN N#I4P40)Xc# ZxJ$i1';"xgTۿOq3 W?p?=AeJO̍%Su CM6:%!$hlj98VfnJU\Z=2`mOlcNd$OXވH; %U ͉Nkdue_#Ο#F|{ \Owypo~-"u⹗ƉɃRw_^/nϣna:>aݵ%tKQ(>a&}dGSA :H d9<҅ăB&L̶'xY3\X##d$l^ZwVlyUqJ#bT@CJ]e/Ja5ece1g8)H+#:a8'+lIdTmgjotdKyQ+xËJ$nrD ~!Ty,І`iyToB̂&֡yKnMyOQ+"g X1tEUVhxɯV_dTjC_'-bi-z&7\P.nὣj { X<ዢm8 BMf1;|Y8d}@k:S;BVWq*v}]Dj/];$KKtS 3b^0- >|΋8#.EDPr qxE QY QI]n x‡P A)pm@e1xqF>ʱE$%ãz;+&cdF]rݗ9@k$VX l1#Rh2 4*Ԭ@j 9W9|e?< \OOp}Up|p0XOx말X4Sdc59{; 2!ZH9[ߺ'_m|ZB51Ŝc~_me׋yhDEU)jVR,Q0JGqU#9#,_\~8H 8YO *wyi6cűƸAySohnLԍ҈(xƖH(!p! ͂+o%L)МZ‘aECd  % g Yy˳ToW^xᢢ"˪esX_TG<7qmp\(j\R`SRm2  M6L[QչeCeJGXtflkQ]h& &Pa_]k0nQ|b Wkivxﵐh{+Vt6s %o}kzA%4u&*UҮIɖ퐉DH!5 +4UƳ 15ᅯ4sS?f3dh ؕC9*Uq7&^L~Z !> мҺx$8N[ZgJtRb@ZN)9)1H RL x% &egW69ݮ,r jH; %Uȋ +O:lZ/?FG|} >|Žy{7ߞyVW~W" b?g+3C 7sT $y PvgpEk1fssO3dQppvaRA0[ eyIr|T`{'CŊ^.Yfg1teDG 6;Mx1OpV6HטeSz 묿ۣ]B _O[|O×g[[ T"" 3)Н}tdRc̎؃)Bi.SkeHڣؼ--Yp8'CAA LVǔ%eڅK'nBo"Hjw|'(BNLYla1 8>toTRU2Ķ19:&33n+/}%<,8_w6䌜 K5|OsvhYaUs3p~6В7!އ\ QY)nJSӷh! lo5ajS۸s-rqym7d$S;4YgUYsv`{Ky{ ٞfXc8j+҇D_@jհ\gYBw5q}k#pu:gDJ OM&B2tBBе8Q'yGba墔P G+7n=glN( 3I#w1Rf$R4 LNZo)"52x&ꁏ@*/Ra8#`>+P"lv7.Oj)d]\[KvV=%ftזXZw&i+&1$F$K'].x'bt"qUNcd69޽X?GHIk&u#IYY$xs\riǧE`/;F9ieҐ?]ѼS~Myqr0N"pRS:ɱHpC1. fC $*L̎=i ?Uţx%pp y^yED|'^cNĦx  89 <{_E޳gs"!B$8J,í-.:QXDLv48ca ,:KMQBXyQ"f?a;{ wyq@2L^ Di5X*~آĘl^`9RN$JXg)2䙣82>g'^}{יm٥"pt@y0~%^:Xp, ŵ5 r ls86, ^o@PM\M\-Y>Z M,B_Yh *fC|(#0ƈf ueiNzuEZ_c8d gXbѕQ+E iTeنtsK\*[KTER rj(#T)(C*n p685hm If\(r^(E/=ZKA'B_H p'9JK~hNJy'%G< K ^ӥd=$].<|oHiѱ !$I/R3cv03 ٧O䶸LYZ>tJMdI~cWPQ'l"XPTJW R2`@_4AP-K{;pIdoM) !v@_$Ǫdz>Ι24 6ڰMYNu9sLowWj#*S-E3:ckX5@I6| A~@!QY8 BbEc2p;JXig!-Dx<n/o8y diaR8ʉhyб'<#7xYGۇptʔFA<\(RD8)fUA'I(d3t {X!#Ee5cCu%*r݌ӛLAJoP+kp t*ŝQNg`t*:X8C "KlBXJ[tZL̓ kB+g3LYH'3n|Os=LƐ_8g=FP +gS9Z |C_@obͨ /J7Ԇ uu! $mhɍxybHEaZjG<4]l[/{{g2Ve+4I0⬭~Pw" 4A +Dyox75xM337ʵn`w))lJ ]y}l˨ ^{BJ kc3B %;?|ӟB'$Bۯ'YesyZ3"%+*z!Q`3{S"a"i%ZPyi( $A-E1K`-ʆ [NhiJ%iOtx$!XdE(3՞0cc%{dd% #l?)Wﱇ `-c]I ?A]uY(ǏVZKd=$?`4;F*zK9NGt{15ŵ%_t) ^x]r:9uD3>byXD *p:CC7=*UOtFÉ%#IRdF`#ǵw9K^29cAglww,Ė&U=O8>㟻ĭo뻜[[a(4ͻH(.D:UNa<:Y:w+5*{f3fw+H8z)R 'sX/$+,g{/l3=&w8Y'i7IW!iҥ3H]Iw"KV1Ef1S,'?' !i`TԑBH_q+#65:8lxlećԇR\U sB`xUA^0uZ>!J!ͺq h4E##nlBщMq+ToV*/E+QOҐN-YK}5&g5hde{~jO^hhn V_ A}c@,tJo~5 I@wfq+fȪ h%ӈVu`5{vXLV;#Wx*87n}ځ+oc_{5]qW uwok!$%o /Tּe,__sq IDATykƫa@eAPsg"(,^cet D[^L3A/%ĝNub`UfDs^g,y-">:"DF 5ѐ|UW]kN\GXƕǚpς#eJ)" dF16eA>q?g; -Y0st!o_6ri , 2.l>,-?4y)nt•%_K~%X%D@NN@9DOi7,[+(O0j3 4rtI^P_VBwQA,#4[7f$RzN<@W0Q:A.%] Z"^zZ{k U\9d%r=N:q B "/ ӣ ;'n{t6 / QiDv4dA*TՕT ĽVk=PGY8\(3[&NbTQ$ x᧙VynݳTS9` tQ^qO~8,VJ)Ƹi5,~(3 "#B_j!C[Ytb!} W-W2\ .9hB`u_V5zQFH{'Kmyں 4;0 0GEJ![Ö)ˋ|eEa7[-K !]AJC8$5e4-rj;: Tʓ'wy}dO*A$U7/^a#` Ɂ}RtnDhw Od]tmpb6kcx8=|Fm{`Gqgn㷋+n roߌj@! 6n'm{B,% Ϲjhk^AB3κl!]@ 98r|$pq8`y(/RTPbg P%r+5HTHH4oJkLf$(0D4 vQ2e0*UOFTg 5UQJ^#Ȓ7v 13ͲzRh n֮gϒ.옧^16ݫغ _q^R2 #;{߃_IKNp %.88'XaI.y%0ʱZGhcKgq(Jf;/ |8fWyꅂu\lZL2ْoHR_T!QL4+ywg[9oO~yV򆃣 Č ]DiC}V2Ml 8%<8c}pB,0#.}*iENp'A X RE5L3q"N{ : Qt6H6%DFBXk;TlSe@2txk9W\o~Ƈ@!$l{8IdХC'[Rw8>~P8s>`0E+-dL[Ag`>{^ǟsXx5<6\u 28 b3$ %b qb~?Ei#+.2,VoLȡDLwZВNOi Ш5I>\"*Dbk4sP((4?GcGHG>E:5jUA7$XmKNd}6g:1#!EQjX˨Fpe Ҏj!V"GUN-.P4 8g4] .H.!4ʾ%1^T%Q\T)Pɔ lMݾA}}v$-ӛ/qz'vXrN`s>?xo]兯&|`qBr\2~ے" /ye-ׁtoHQ,$U.ȋ@^+Ǝd1HY.ee3 3*wh#Y8{ P8RrRF;0Kӓ1BTePYU02KS{ gG+jį|9d{{u %} ';!Mj$ni ƓfTK8S\5xoy(#@ 7KCxx;! 8MIMcN-E4u;H"߆+9x7^kYBW{-R $>?yϿt'Z%IAs~69gW6پ~A7!]wR-B먐%"\mCRxrS$ >8+L@g %5":hJP[a%hU@["bXa:Nİ)uC6a{* Rl:9Oc/[/q|e.oLiB>qvX6l,YU~xx>p~ΘN?ܳ/HD:/w=QF0 Q@dv{QJ堐286{O+N; :]b.>zFiK?~ؾ{gjYPU3֨a9EO fSc*5GЉpg(KGqc+K1:#IHS&;[TRQ_y|@:l L3eQղ(+MJA. k˪nJYu^"/ ^qRmU<;KRElTeIaRYgN˟% At 34\̰qXhx(Jk6_4 QWAp B|۠-=@gA- Z(_%/ Rћc{B#= 0~/͓x={}WsDvm.:I Ku 2}5vDDmx(4-b!hkRݢ-]Ӫؖ<.8C)+41GNC5 mb{[;lA"m7~䐰(zdEpnb#sBR䞺IfH3EYl^N T:fw뜺p֡"8!IʨH eyJ k>DYF)U|h6r;:/C4[A3Z*0@PicB*xp# HU4QSef3Dl=}܂\#sN>?9ckfe(DȲxu#ϦəpWQ,1_ǀ.MZ 5(~ uZR#46&U)ID f<* ,jfpdt\U-8;|늑/8=^+Vkl-X9K4/>GQ/lvD/xtC5/dq31-N =^7(gws#EkoKo~F9F&3ƈ*J; f1HR^*hc"eYRJ겎Z"0c *Qזq1D 1-X(UYG{:,ˈ E8y0矿=AFЉIY}hADD 6&0hxD:8W)ϻ?Ǔ 2608_niumn}IQ4R΢'ׇ}i"^8vcODhq8, b_;GXh˛r,qoa.ݜf7.HՇOtg;pM|s߷}8ZZ}ks>^T"9{^qӟq婧q&WdsohXwX- 뚼(9Jѿ_(8J)snwvEOѡ=ZbE^W4{&&v쇷1E AΩ {fe$c4a&LҒd"ҁTgw Wو>(O]jtSK^I|n)uH$c{%:јQmlL:фc ugR! T9xD0z?$y\>Yyi{N9<.'Gb5[]8$@^ 6u JQkNʝ5㈠hI2g{30.BP;:̋JVkIvј<&%&>tӱV]h&ӚxZ yIRbJ`CWƊ,udd}bdn8 ԅSY@):X xx`9Y?eW$/>_*?G^wCXhLY:.|'ҿ7ƛ?2?˼/5PIN2NF5Fo&:PBt,&呮@V>U*GS2y )6T[Wi~9g%v($B&&vY[Dm6JDWEA,(%U;wRD!6wZ  rhJMP%7a`EhBGsOi|㯞k;_t_4 Mm[`H ַYy[~葕dM/sΡ#:C֟[z6ODD+/Nؾ#$ -4գm0Ui?;n~|~{b}.[0oBCAF'*zօ-$Twޝc[kȖ~4j r [$a@|Snic5bCJE5yUۘdI&]6\SWbK'g|]Ht> 4".F%4AC2RL" HT1* heMuI\kJG:5:J"1\jJc)Q(5%bWQYlQ!^#S+.k7~t0U6*J?+VԜ*t(WPI\y9$I U:i-`f&pAǂd3 IDATYԞن!XKTl<:h)nULvT?z Sx+xrmdJ G:(%Ĩ i( lI+̓`~Z34Yޡ' d3kIkQ3^'75c^-S&%e?? F ?%$mqǯI1txs1EG[)*f,D #u!>?»aNֈjjF Y4:rs&ox8ZqMyGh(-5ŢغĻsJhŏbx"6eX]A fÏ߽~q4+&a ">@44޸N;?|yYawB'PQh nI佭ZGM !C~N#\ևіkhͫYzٷ+j󼴖wpAG!:_x'T^ODP]9A4aya= )A7ojK |Ηb@⻇.0o: Ǯii@wMayP{]yg'>sno}+O1.r8]NJͦ]sE-*uA &1IB:N Yl(# y-xWS;HB$%J1F5B*LļY3ulB,UU[5ʡ^p|g3okK̏2ndx+w Ũ& cؙyB8]1YI"@"$ygRR8jGp52³XhRZ0JAzX - R^8ʅ<*<8 (+ٹ K[PK'5XM-nrZr IPtBc^}V3ق=UcV6LCϯg^pxRo~G}j!gG[d*c)u3FQ1/af3TT΢\$)CxGFKoWxAf8 e*IHp౥E Qԓb$&\hKRFcN! +,պXTrk_GS~x`i N1n!Cg-k7vǁJ4>+1lbC:h@M Ks6} k0wAMDlU)I{}cQlQV(4mm@пΕ?'.lz".Cd@@DԠF_T#!X{ `4PuD{8wSi Vm"6*XC [akIw%"%e4>WM\ڨBhg:ujЉX M$$@J(U!r5FK|Wk̜FX͍̌=vsm{g+?{Dq0J3RNZ f hPD7ńh`dtP;[1Rb< AA )SID a$_XܐWԧKjKB*M*]>ɶR~2翲ѝ#}+cgͽll Gx6gk4bV19ك1ɣ%c))6LIE6l 9_3?L7={7 (X3I67+enʓ)+ULZa U!u)j_gq$ IQz6'i;\Qo*Lsz}؂Gٵ\Jx GG۟kFd*h1ނ%@~6?Ƈ?k_#s X"z:aOBx2qäc`+GU& k _IYV0JySU`]hDc{H%F#=Q|iqQu,ժZ:T9˗}hɺBɈ0 hgAs4Km:[Вȗ}&cm@]_4&`3!"6F{cn$@-&,d샶AЬ>"oT& eETz;B"uTeE,iaΣ@!!`F hd*ґ,Y|OAZ\O%+41'|z<$,kvؙ㒛7Sx}ÒO4 *(}ػٺ xƆCxA* 8:u<󼢮bH\; _GMIeSxpGrEe %APg&3#HKP*SDlX<;S_AIH%z 5L'} ؘy~X֋WG=\\WscM67VlS~Oyܸvr`:4zuFۗi2)b`!X;E|DqR!Dg`m<| jP*NbFm2MGFqqEׁ)2No,*\Y`uQX-u !->dU=b`iq[dDģ3BhꝝΣ{uޖDx!84C34A68) $mzY6׌n-Z}>^{;g.LnAI}-tWwk?5֟8h&2C6GO(8x"H(A\u-lCg'DMzd`?.8jAVsA]/-Rtvs vҭ&qRZĦi]t@׎B1D5 Ypk>M^}M1û/8ӝm6.8CK+T!ƑF fB^l/jTI&cIL\!Jae(_9Pyb4t4"D1D%*qhTnY㼣Ԇ)<奫%ǷvUpV̮z2gя+qAb,mA0|MYpyqgUAsAI[)($`+:`l` ,/>Mqzk~5&y{},+ #r!+ PMp9D% BpM rhˉ.ƈ-NwE>lQڤ5t=XN D!V,mh˻;z:Q֞N 0À8smCg[6s=烚08sЗ.y ^OMNC͚CC,T`~n/vBv>: {.x 0papCC{1B'p$ s֦@V$0($xvH0i&XCϗsV ۨx)?}S s09T LҚ %5#ZS-c.c߿L5>nf(R٨FkUp6j$2Q$&I%H 6_ w&FKʲڨdSw5B*8=}}ƒ}S*dE T=B dдE69v. m7nS?ڬx,tHA+vA;M6X @] 8WhCἏNcOt+bw!I?鋁 Рі:LC[yq6 9<)+w>X\^jO'3~@(_C ح|Дh) HOGHl opF Fp <皀Gܽ|l U>nν4ڎtT Fl3 kh'MwE8UU^U$A+VHLɲ);[̶vO ݢ͸4AN RQGֺ u)S;n;$Y섩 ADrqBx Ǐ`{OT=5LRVǖ[FG([SIUJ _s\"M%G,uU(Z|[s]\ y8U8]H6Sl2E%ZA>ؕE9G iUw.qiْw?GC <4<Ҋp}BU94#.b].XTj:& -?``bw 4Z FoP.y?I ; z螖k&Dc Ā&YXMGB4]Y!t\z!ڍfAD;Rw{R)b)å먐q]Dm9ƹmm;_+ 4K0ENNDvߺLː_04%1zdŋAj]x,bRx@@E7bRmDl_|ku#b)Ip>} Edb(e1yy^U8NP*A V9;8 F$BcDJyf$ 4p y-IU>Zʼn:0`$ֈWXBiOp59eZFqf|9f3cƵFxwDd<#ІZFIS,j=/} <|8% +jylZ$dY G/=QNaKs5I *M&gQaSFg!8K.VZ/ 6PUAZSsUA] *6/o3ݛdGkDH 蜼hkR\&^D(ڸ3ϼF(Ԏd2\jn_[Rp(#u$Y;)= 1t[zmdϞEh>#$6o0tHu|lsrhp"ۅ7RΑ}IkТlϓ{=kq@vQ\?Afm&Ixlazoj`5: nqJ 9"ZD 9 7tAɡuym@u s}ۇ]t1b"AZ ^{{_cU(#?>a,Ec,KB Ht6 &Kɦ(1Ix4( =2D6i$a%| Z5%T :pkQ u"^aW'{$BM^ԫ~!M?C'Bϼfx3ɡH2OSHcf0_ co[;N4[Ul٬fy sAƾD"I7e/R2 aqHyqln;i7p5n%X[yfSlXQ2 Fi@zؿ&DG 5<8줒==#)^Ebb<Կƕ$W0 J:$=27hHႈJc}P)=J0I:m5vʣX2X_[lUSV%e^bU$1JBhA:0 [$IB]W%:AHf4:d:~61։"1 T0:u{g۲7Z;xͩvnthQ$ I(\e~*ÓRUrrPlS"M3C hF7wZk9ks88Jso|co@mх(Ek,G8X퇒2sn/]-!-Ҡ<A'r>O ٖB3uOHX qێ9c$cP$2KxLui--%_ӱ|9_c ?>^HMԱO'QX&g2[.Ћ{[/XaI(}~I/ u,>Yb1ʼnmt9C" ::( qP[ȓZ%%ȋ3_߬I3^m6*JE"RP)6X)Oҿby RF8qQ)U z^8^᪚l (BS̢n3B)V0ׄECuVI֠ C7^BNNAHR B+BUQX 46hzcC3ؿ[qƭOfh =Tnj۱2?ͫeuf4Kk> ̦P "l 7sjL?T  P3A9*XL3aP`QXGSt/4*|QP)5ֵ~`pl ͑BcP(&P^:cg)K`s`\ZPE«/._Qm8Ǐ |S V9ƃ_$c/^gYl+"]2vz؞er2(3@T3mjECpT9llt24xSVy(:MThmhDӜ̐3a0S8$̤~2b\ IDAT5$/vRgAPrK)yKĿϙ,juxgrPqǘ۴>rERK@3~=E!RJtQbDP=scrR t*؁.%T'#@Ak)&so˹uT zo!ݐVit([ 20eIOJ)V !I 9H 3>`x ICsVr,IdJ=Yo4 Ghqh^e3* SۤIW–%H-h]hJJbC?l4og7w~V6^LOgGUY|cX]NMU3Ǯ[8JcyP^3;/*N{7ء GGJGcO'@@qǏ'x9H)5U %ebOU54&G3ΎOf &'SbwQ#x ρyXMka0裌"yi@aY8s/qNjb ^Z \ |$E]Tx_~}{ ܸd{gS bvb-ǜۓ 6z9d z (@5dOD9"Ov_e WHKv6/7&=d߿3:xo,SZCΟyH>ݶ"2_㩀|qpȒc8[m)HFt7,GҶƻojg}?h;NV Kk>!hx JҾSAaTrRtt '!D p־WZ𒫗UPy׎UpQO¯k3)Eax !Q6'\(xViB_蕖VU28SO+"0;&sf4 w8sgؒhVJ *DSJP4jL9]+ Ŝ]vlǼ1U<*y8:R;\OlCk VÇwE^Q-<ۊMؼhj榡ߙRx=̍feűagiQҧ, ƀW5ExsEu`zC -<B(q0? \x劣}^,+rjRy+L M촙[ 㚟g YŇ7߱6K bX3f%ذl6׿t*WQ+=z),XэG@=P-jYtdjQ1MQ; 6 D4{ZEbeU`D*PXp$y1(mAQl^:-@UP62n:vNhj^!PE4:/U;wnKȇhLK6Xd%1Lr7)/?)  ZF!iΛSic3L4S]aniӦMEZV2?OKJI@^q4R:' <`i͟O~ΕAJ>{<%p@b𜀁Ic۟q5$##@k|.w7H9Ђ̓= N'իُ%n;EWQ0x $-}$&\hAgtOi!DkTohW~_U^|Xa  i!Ft}))qFk8T{D#(p!= !0Ca8үŔΡjpgQ!=wwhu[}a) ZY8%]Ɖ0xgع;#!U}=ibmKs2tْu9yݷVULJXGmM9l~S3Z騗> ;5C azUpe+DAfo?X`DXX4.j8n?',D{q_+aa:Sp LjM`uPa4Zn=UŒ#Ko 'džRԍ`Gq|ưѫ{G-Í)kBSmqMcL@¸%F_mX~G,F(S2_L[L9;v8=9a2=: #tQ02bEbe\]\mD:b #;H3& 0Z+UJJX*U{28}hkQʡ5QY8j qǻHo.˒mk&{_h#eF \M)V=ZaWe7AXrK1ʎFO'; zk"w9+B2lQEB8盺\%ke> $ORWx:bt:dt;_caKTy',q?kS3}oP]1@X>uǛoM,d*G9ǗOs:'Aڭ^Ii^{>Ab*ø_;e֠m&.vP0݌\k ˅8!:_4R!xN%)kJY}t6>w'`B}:>8>)=kCJb``G!:o?Cnh^O*>ΗE+oӋ~3Rמ8ln 89>Y/fqQEB^d_w_18fqaf>ںP ;ǁcp9PəbP {P`܇W>Y] =O5lʰaC3 +ىcRrpz`{OOt,o<{G{W -k[<ӺCp{΍W 7 w&U^?"Sﰘ9[q'~ {ǎ˿ZǿsHO]~<Nj?2Ha7i|ΓBضn4Ɠ{YĎk 0p<@~e X* ڔ1j QyK]74ML=g' g3tS(mwv1r&:AÝfg1?vykoߤ4100!$*i dE \)Kw<(us%$b#䮪ֹ.ٲ9s;tn!o5.=pnvKoZGUEgܩ@ 嚄k3⭏ZhRIICNA.@w]C {2wy"Ca o\2hh@6δu-!_Ok|x<%.ʠB6p:o>F1濓W: jk':ͮ#`~?rPӓW$H2[WW@MWլsw*n!1αqtFyGWnP,X}JUS2{,v8|m JoeL9((}w^`|ű,qZe]aXP/-<￿`ba2{8g0V.l Mh*L3]_)|ͧ>o(*8-(NۛAQw`^R/gB@tp6,B pbqE)8aq99(h0>c kQ |mBG+QV Lڨx\@AN}dUn^ :ۚR|s,F<6XoEV_Ttv4u8ϥiR#ҞJZxJ[%I%/ U #lI@g - MVӲ]>(楋[6BTC5*O[:Sf @AN-wo';9nAhA҂k!UF2h/]ah/?%_F9ܹ;5#cA^\@˓*5Bzc][F&%f-ZT:[F="(. <Arkxq#&*YTE=j&wj=Ž/xf|uO~dmu[W<ܯu"g %Nat .&4!0)B z_q8C兺R~mןU 7 }DV`ՙ,Wo؁c2)xeaw;pvl܊n~]]LQufC͕3nX~757VFܼ,bgyxksm[Yk(=l٫-D-cRLtjyQBhN+98'4CyI5= mZA tFYXA֚o Vĺ"1G_ew?|d6SE M r~G]~Gߧ06@DIrhɎi+~egmd!W9-3L4o ,|P16]`D0X;.Jgo;ZfzزC<Ҧs$C~V ' *Qne20VsiY>o@ΡLń2f`~L>~³>A~.|,w",!9rkީYqDh@%*-<84GXEƌ5ݶ67"htŅg׹);<|y#*?oWCuǟ'7aK/qermpࠂ9=uݚi)s 1 Huil_Qj@qﮥW 5TKK7 U')|k-oP1Jɔ[G_&R`QJηѹs邶udaw{`n,y"|=9 >KN/}7AYچb-F|頣2nR.ҏkxراKKSKԦ2Bhn纪|rH[p"  X j{S ݴ%JegTT f$dA12juҌ(OY\'A>^~UEZ7?sGP TQvHS2H>5˪v}$Z؝'ݵ)k[GY!]:NQ*ʻ,bgjfr0S)#n}>c>xٯNY(@U zQorɕєW9xxowO*T+ mNPNq:ܸebXqpѬa0R0{ėor-ƣ> V #w^EgA=PX !NF/Fu?ŝ-T H *im)c4Dbbtf H8!Q8!3 Ō^ԂP(áS@5ɜ>ڛпXqߣ^IѦDFC4H*] o )f j}:Ul_*)@l#V&;UI%J]4hXZo^jOժ$"F>uqS{P&3Q1ql^lT2nضuIT.M훨t(iq4ehA4ƴ=Ju|FY !+Hƴρs.1F\zFhJӣbvʭ+P|pãm18f"#&);VGµ+#3Jh 1* {;{?{Qp}dqճσ˥T'=1 ԘF쳸x䘄(&EDU6^ Bz"1F >9xۮCTYdb׀LuSKaQYUy@h$d%w&Gm)j"m, ӋxP)ESZaLBh!?T*TMbv|;j(X1Fގ@I(F<Pt&3Bl+Z*{"(T!|ڏʘ"zI9)! /t}”s[Mܫ?:@W rj{-~p7=!3*<>G{zל !O M|t>5,ULC :+tV~r>2¡ʒWӤx:WbԀLY"S$C9Dfk-)H#T D`@GB!P<2A6.<1b( ե3pQH5 )( 1}l[q䔕gnO}7kŌht6/.6 \8F {慗bxDTQ4s_h8BTk.o Gc4izrhwWuEXOɭ#٭;Kur8)f6.~T1* +OVܽ+0Wgl+vuxUsF%bP4-F#ŝOf)Jϝ6sT214UCa :a4G#z)z¸bLTrBrmsvO|uL.;䬗Z ~2k,[ІOzZ ٥3Zy] `:Eߑr||KNjPW*P룵Y@elt*혃S&9!lhZGmP%C_uFv_?_<1W~B"Nļ(@'RS1Rey;K&#XѦ "HuITvwH|orʠZPxqhm/_*?ϱRFr.5oT(KNF"~ku jN[B;Dk6tEJV%P!џɐ)}f1L*`"UAI"QíL x) ?7?_]ܭ.WL3>FI}Tk|w)W<09mh 79z¤(X`@5|ÒfuvC.4ۚ˗Gǻz`}rf>¶!{Y4Rkd;M=YDff^ W^%L(l5k%e=DLİJ~=n]G9т%'Gi;ߟ7 DܙUn!9 }F ÖT@ J[DB -SzHCfָ&iLT<TUp5I4K@[|dSqr{ݠ$i P  _qr-R ym@B[4nKBs ;+ o'ǓGt$Mv#h9ѝ8M6"ve6H/\[rǒ~oDO!˚ JrqsAfe)H|Z:xI2Mnkw?q#s/= 4%3oWsn0((C]w;|_,^~\`qY֦A:HdԬbD#0!:i|4:Ft! BJI{xK]WZjml79 gj~c_mh)/OX靱 7l_z ' 0_N&p6^G ,|k=6%ێSA{Fͅ+WGܼc΄\aUD!^w0ś(<;ppW0y z Gۊao0TmxVVkJ ac#Q`~d9Uɑg~E5@Xݨbst0/}rbv>s짯0ҧy)7*8y?bQfΌ T!b &ѢMbhM1h|pUP lvBX׋x>Y+CyP(^ vͩh 몡iݣLK hJP%"֪fQ+s*60~Ү1_#lE$ %V%օ8E˓u q%U]dSĒ(rsm~Z=i^G$:F69=-lףLD-:.e6s*KFQ' 6G:k) ˑMP-q-j$4Z:GfQ:O |CЊc| "6Mi ADxev [ Ru2"FCҤ"iqH1Ν+b!P.2}3uJ$DЀ!IU!|kyYo|wpxb7(k( 4m=1]iuʤ`J\s$B מz@kE^x|ϯw _;BkPU,}E3RO'h*Q=L)sƉ?GTrԜT _1?9[5Gc{z/YS1 KQɳWbA|ypp}kb+B tc^ګ\9d1Z)ΰQ{WF@ a:9664luǾnVr6PQr "\%?>v~,$KFxJjeɉw(įTTk3reo$jǹ=WiH*^ -S te[*UѺ[8@]ʐS yIB*TFkwɸ\ 762d<`??#Q%ec;G/\P9ܢU )fQGd> jwUP(u5)S<"=b% J4jAt@avYD/o0ʃ[> x)7x9BRXaq]k+W_ <޶XVWh7^Uͻ| 88a_yEUp@a=F~M/^ULN e`8N g zakS li.BBiq(Z( B){tJ:+cm1rAQV=VQ z͘W4?c_O}˔e:IA5sq_Hk@=5 ,'.FJaxo8Opݶ&c"KBb["愈}@I"ļkh! <–+|G\y^Oٸ|CN|`Zǩ);y2w:6/[uÍkuُS+>T ӆKK<5GBkcW4_w;D {W)UDQ-My g9{k4cT)PX_ىoo9vZNqr(8 mk&͜_3XJ"&X߯4|c?Yo +Ɂzǻ{ ϯ@*Ѷ/( +U;cׯDsѭ!eOlyQӖ`-b-jl] ր2i6B%Mظ&FSldNḠ$]\FY{ K<ﻃb̈yэ @l@ %5eFɸvZiV"ʹ eQA ln=z1+c7hqur#,2_ŸB tllN)"^m1(Qx'&CW7ټb:st|ȃw;ǻCٷ(Q&'翳TȽR6?e*??$BêNfR;P >O *?ˁzfP$;ޔ-sUR#KUQ°Z{L-GG墖yTS1W貶CBt!i"/wQ@N C#H_z3BX;8|")z+-E]-O4Ep/)JvzvE/pf5(X 97`) Ņ<ūAGE5 /h<<Ѱ( h󅟃 k<`=£CMװhxMg2G<}CYT zAoJY2bk`}B8s~YW (C6`l;A^r*v43GAՂB >`~pC<.8ʢD2vY. 娏(wFz]%^*VjŲ!Wp bV;ÇW< OeϦz'hcd:{d=ig ZkVCbi? Uhivb h9]#X )%SVDI>4`tq L.gOSZ#? 8||ޢtQ:7y|>[GOt@]ϾY=@8?mj-NSTm}ջYߠIX#`t{CF @idvCM2 Arh$ lp .\`eƅ~/xCh4J"Еau0~Tvg &q`c E]-h\BTWk͢Z1qmw64-75Ab:AZu͚?Clg+GN‚5G>a}xA86ū#5\}(cϫPpvٟ+T5ˢ8({'[*+1<~basGQզw=^/vZ^|I_5<~ZQ{*`\ /^ء/9X&ǁ-DWL0GǹW{N 4mWjb韱 @m޾&h 7Μ-˛_Nh?gmc럹l9gظr Hc%A1(tzJE-Oh{\QĶWT0LsP{fim7dA5fи@Hրs5?}nsȤ?) R*4uM]qޱSLܘ18Y? IDAT(5Cz Q#dwCrT]@I \7EMWg3(/$D: ī$@C~sp<.Jt-cm/-E m5l`rK%`e/+7Wu~Qy'U̙eauTFT(B`.#D-ɁmJ+\ݴR'q&આjPɂdNsR,N_7Ξh!w&|ȉ>iGбkɉCtd%".jB0QmwvΉG*|&rB:#J!17"sH>ʕwN:,@w=C7_5Z|TztbSPOHWb)Mٶk,`D:V!:@-pRLngtk$$hPJEfj$j". ̓Љ6@Y*sfاܾDGitI^(*NH6}H7Mțn Pĵp*վў ,̖` ;FqQ,WI%WQ-/.V{=8BFc_ |몦5҈ԾR 﫴|9s!T T Xj4\!b1,{тUQTM SX(ʵ71q>iiSASPuUcA1: 56!#>>R0ٛ3NpGO؆oi}ð'(/>my@',*7 hh&J`V^`^pXf E=k}UMRsg7 VfXLa16X`Z#hj$P٬Gg ԝ hI~ KE9FSRS}NGӒ^bAQ:KKo/M2P;&b NuukC3F ;nSHA,Tn&SpSK!@1F; idm~>Ndit?{J( -%k,Xg(RX2 b[V{Z:$4K 4 ͢Sjjh_΄ܾjD#1SP%v×z[f-j@Ҹf/ĴDC7&Vsk(CA{ h4ě@>cc ?Ϝc>[t1ǻ] QG5UbsA5G+_Q{sxTօ[ Oa|\pcp\W6k_ !PឦY@@oE4f}AvAsjQK5ɣ^+4kS<'\Cy̞FfgP 6QÃ{#n@(~KC~o'8õG5_ !QV{C vkʲFhqs'Z<=kܹr [?\|2a #JIʁY.%%]+b4ML^KB7Ő#D1j) I9ϧ3J-c<>{i)DVinnu3͠mQ\:%!8C9t0W^x'=O4K/8x4=W әG(,g =9 ME1jg5_ }TV~y 8U!aٝ`TШ ̥Eb+l= p}}ȯ-{|#on{R50mR!6?)v:O.48B$B3ws2\B8/)QY1tyR4sjB~h ?F_|8suFQ3b\|M(4 M{Un !q8āoOXU%<k4V (4N Aca\!(0p ݅>p1׸~};UgW\<r7w߯9 ;Dc(K6xQUZzh>nF#?;=+L0L?,4g.[uYj&3mi|5Le'v(P*ݠZřđĎhľg-}+pO VgyC_|K iŮu*)^zr9^|%\D8rszYݍ@i.? jZQ.]\7}VzؘЪIH#f$iJq1C-4uE4qRޥixt,e3;*}a1Fv9JՊC Oj_\U1X>G3/hp W >ll.<''fAY(&ppͰ b1-6wH)qpd4ӅYa(>*J0._i}/kVWrbDжG5<|-``_蕁>cp5 H)╗<ဪvwPsǓ=amCşњ >͋?u=ǀ3zeq?% g$''.=OE.-JuCHߧ/OPȹX[T?/˛8f2qj:u0D_v:||*Ӈz 5m0-mEsС$c>b9yp_y!R7Vysog}S pM䊆a6<npedϳTQ V X;0Sk81S䩢Was;pɃɉgud*9lwL&Ta4(F_\h<K;xvL_6\r\wϿ_Yڧ/LVqQ:%C5hR琊 @_/ea{p> 0 >Š@khp-1Ԇ\x%x5HҖIXJx!2_;q8WAeHF#u_HSJ5Iݍ| :d.wRYXTk٩ Z×lv>=qils~=v7N/%ԥѲ Ҟn1%lweW=6b!ݹ_΁Z~A?Ss7"Hy"V&#j{U~-gQ`(?gJN>"q:sH!܄NAB^:唖zB!>Jnjn/5v0T<^LEeYL*_W'ڂo_ R\eN`8DA JAk:M\֢&UŢU ̧RAUHޖ 8,8z5?QܤJq&s(ڀ1rT T,? 1~sN=〲{{?$xN7o 8sB{Rq>o}V3jo<t(v,_(ߍJ+\\I1?T/Mx5Tsacsp >T΢t'w(qN}=lq?=3* ˽Xw"|r;kUO5O ʲdsY~`}rvɍWLgp5RBM\{QHh0YpEѳ3r/V\8'5O<|<;[ Ԇ&3&UaHL'zX$`"F|5zޠИZxhUjCh4庥S^XZ*<ژQSoHyG/u41e7=x`iӳBNcG%oa3Np)RҳBx&XYfP[Z=ڛpqKbOtZ|"](̚mkfB@e$ϐϜcOOMfr >[9|]Q^nLԄV8//,RtA|h[bԗ_#mמ<U%"Ա#]쀂BT(gy[&tQyKH$YPio5)`(;SZ$th4=ZsMH鬜j+\OJ**C6Csy/%?uSZlQ+2F~PXU\5he^e Q(ߪ )i":|k[TJ!$14eOӾl 4We0UU~@G kne^ L#'%go}sWSjGR~sk#G5ƀ5a}d{'`>-ʏޞSj^LxɁecd9޹q5\HI0,<ȣl#lJlLI-hgx3 m|̒h?j5qʢtC/}eY6(8Z{uuF!"hض7pWxYqp;+AlAg\Uk9 t:3-mmC NS!qéϟ~tiΞPhK-*yϤ{tqRvAF;ȜBw{Uڅ`-=lJ"Be)<[g ^l#n峑.G$6UHj<$Ў&_㱴7H[p|ZktPZH5&*8|ƼH;ԜAj 哗 BV: ]S/>12 E?͗zb{\$fec FnZicq9BRˉQZpѳZFWoLT #qi-Wg IDAT֘8QiNꊉirG(k0FJc] *'n0r3o%#ց54F~`Z )xL~kU?=F&S[pX 3pbmC1k uǻo 1 5a:fc>*Ɗ7~Oqx$XE *&5p4hp_hʪ%JQXM=Tsau(&ZLP{mIܦ*uMQxٱ9cuTpv~ /}[Պj(}VF ^㹀\*H"պz'iIBܴQO˧#;Qۼ?Jb)j +ZnU)J 6*V٫t-Ǵ8%}w:78ˋ\h7YZD^D (A3KDG<~toqϾ;V|0 \QEB*8Q(*rMT[+06 U6JwZ a)Ell CGi;T*lCYXr}pc)(]yjӆ0pM 8P5l\ W|O<}|lOuylr. 2*-@ 5qloD:gL_Ps\Xo^b O؞cp8 8S=ؾ(Fs 4b2ð/l_4@3{9g>.G LkX v64Z+[IJЪ߯ ֿah8y;1w<> SG>bnқg39Wv rR!>Y׷W z+cV6Kk{k(u+U/3S`4TcqkQ , 4H f^P( ۳؞AWD`A`qV[Db)ǡXjX5{׎tASf:xM|D D$vM\nAvlۂMum-I8 j& H{вBfsQ9M˰Yyys 療2{z<[}!9]0e+N*ۥA L/rY.-BNFY *F"IO UQ qsڂTGDg Ah ﻅkrP@9u L<,C~mY -Ryk}M^z.lWUP +"Vh'ǷCM:Ω'd,lIccAB+( T˯MJ^I9 6QAoأP+Oha\SWy(T^klJyOXaK| ޹O&8LeνTASeQ[mh Wlo)5ǕkQ0@K~Rd! VkjV0z=Nїai>rl9{}A>ZVɑpj`'0UT5l^'9P`M4^8)lÕk)4 +OWq 0+x]5nn^]8x' puǟ~Δ`ln2(V Y a®2Cӱ( |HP8bFuINΩ@C|irba(z|h^O  $+t/_[$v(U(0F' xn!8<׵C~|w#9F<}O(Uc;B T9'?GԷWrqK,tYhh@UH֖ls;ꗺr$=עكKٝ5hʬH NץK̀'NbaVɮɹb ::wPBQ%䓃k :'(X$v,ejLU@tb^a_h]*?]ADZQ*:%t\N7œZRnH3.d},L 2 WRmj)E*q@f\Q,$;x'DEMv K65*Dc Mx>>+gVq~V.rqUʲ5 k,XP$ȸDR3`R+d$nZ[LOa%e?P{Vz2*ڗZPbvTdmdǮ AA''moro֎Rl'>~uM?cO~"~xŽ1<:vVfLg_(G YNz=a f'YM(n܂+7;sbLh N`6oP^ab}Sjl994W?E zw֬ g4fkӡ \ptbWhskO`G`ƏӼmw~hƥ16>Sг}ʰ̢=V}DmE#(2+6#<1TH-1*D 4UƠK.5REVEV?Ko/֣։%8D MĂ+/\Em .`TW<=e9igJ֩fBE׾GpBOV ȟK-$&%pj_ӈ]ڇ!k#Z˟ՎAlo{@$P@>KJD$Qu~-xnh>\pYry|eg5]IiPڜMQY0sgyѤC*$:)t(si)lVሀ"J`T}m2+ۑRz!-VبiHRz ,wN$gιx FB (E\R9]# m;"0L}6.l^ul^as@kp1RAW֪$ܢ(m uOSPӳ WzάP Kl-c4*Thh]g>EϠ 2bAiN7hi6W~ǏΎSLQoɬpq+soCzz`CzU7XpgolnvOqT>`[)JʢģR 24㨷o#l@[C'Qۉ_hYFecAyUMh b²_ FQ$iXHS!4(A&ݪD}c q&x_39Qx^jdQ vw(M.xv;! C'Bk+}6ھ NaI .um9Ytٳ-%o<LA:KxW5`^`({+J^9_FvÍKHx/ܾ;g 5|?\54BQ\N Z7=~_1_՞˷ .@U ՑaŤ磸z-PՆjceY)Z wXn)~"tSq~zxv,aqhi4_}VwhF4?÷>nE1W-{?OG<=>k˷kUz+}qo^(zT ͼA9PN#4~*F`KXA)Mj14(&#ECCC6:ըi5:404:oNN8 )Ѹʱ8_vwǡ}HI-pAJY`VGS8i;"SuUIGEY4z`"~iB4R;EtLhJz5Nà7!"#V3⪛@od>ԡ*R94<!i#B%u۫ ~j{l40 m4F7 [g/JA䁃 | vt,grbľ.Q^%Ɏ|A1 o%F((7 !pmg,H-#E#lH 8?>` Nw9wo Θ;&i)nQ-g:|pRH`A bݦƺ9R^>WWF8hV,[e #@Bס$Rb Rxێ-D;":3Zি;@z_v ̣AB@#B%&,m',R] /XEH"xhUXAi zվd_w}{?/S{@Yrb`:gcȲܭN RYZDYJ99P9 Kº0FIrlBfByyW05=FƵ ]yKʢbÑyO|WУՉi5ݞde1юi1E]PѴښ|hy(ڴ|):ȕOGr2Ԥ E[/}EcܝcDIAk9uֲlo+ξaiw,9#H%1Mchn[13'|.glJlEՕ!QCbNLV,/> /8|P#2m\2v@[V੩NN.6|ќT_Kpش==HEH59N|h=vͧ^F(A?',=˭ fN15 KUn0e1m 2aJdĵ8/3"Ǿu5H YQ$ƈH!#4D. x$RNR_\dL"A'-~ǒ<9ŽpmYTr|TF˶!sq[Lq_Q89;J{$FJxi}c!%\`ܴ)g-}×z"0vv<0HQJBQB`h](NhAD`C|] ]R檻ƭ'X_; T; ktǥϣT@%DDH8ÏFQ)2q%B&ogn#WoYbDl 'lC_XQ> ~{ynƖk*ןQX!GB8BUKչa x w?AN3{ao@jFT)nb(%P@DE8dP'N??c)f(Й 4[|[ di«+y&!h1>J!2G ˮݚHeXـ^_eל333v'Y v[r ?/Ӽm:l )8t {"ƍ.Ako30Ѡ,+~w+8xwD߹M7bu ˡ( w|V17P-%K#hO/6!wi^PL ÷A0@9JHJI ƕ7+yCɅ7a֯Ec ֣a ao~[(ާ ^9#$1@0eNX, c0C]<|8q{RsC>HCt9ITcR9_26@Tdox#7%!ƸFoel\Yaz>:Mop~"gV^a+ۦђ:E#4Gۄ[56HЩ۷Զ"n?4N?JnI9N4dG IDAT.]3q'T^gȺN- =`#ekUɩ qӰk?]TnװBb&gՊeiA0B"m֗ ꚦDUH} Ӊ`m0Zz=Ij9rCF[._lw#7 uƶד'șYzѰ`S-D6D Sz mI\bų3p8۝!ߊV`7gɵagEH |VJ>L}+_$-&+MNq;9~vЈkAJnhU@? j|1ZPɽ t0tsGrHNKn: Swn9O j[%q!c}HxM, h: qJ(qD DoFhfv&-gŶB/nCq?)a|۲7QI{ {㥅I)۷foc6_l5G^s{)GxNa=y r6G,HЖʸ8RY@eQFN#8 MnDYG %WBi~8Oyx>H:Fq LWv%?P'F[tm4Z}/Y*v ;pH(k# %H %I0 /Fn6# -8*l,63v'?K/&oC2ȡY?e1t它kaT$'xSzyf tBfD$R8r خaqe3H{]bE/pn43vM2? EHGm,oc` +3SUnu(_zR/a!ʵūpf$hrUpx!՘}7W/h➇]Z3lz6"\jՒ)dRӬ.+&&4{4 5e-%hՒF3':\:#xC.P%cMɮݚss+^xɈ\%)lZ7 zL$D2Z<]ËI:57<Ԁrdn&U&ZLaӡިakw:V DqDI6Ѡ6WkdHcy;OfwFJ$+$>+I!aՁao='} R(T)u. O3<#$*L.Ғ $'K"ʑd,#fYZt)v SuLk,YD %%!^?]g, @6"el e,QX})9MtBi=4JQ2k r!.l8QXL;?ar;ԔC^MY~!PΌ d(<+e.,-C G.I"X*+ݪh#>ZB U,WtCA(@!MiO HrC&7ttP; _ar Q  ڐ ܠuֺ( ^X-pk#XR$m! 0 fd8#(Ӑ- @V85s#'~o9?$5"WX_ew&#Hc|ϥ(rO 7݂f]^fud eVβnjMh֪(mP~ob{u6zul=2X]ƙ:U^=;`o,ՊF[K:PD`aɒ {,sdANmws= s{kǿ.XF3˫ߔq72p-ɕs1jl(X nez,C^XM1ںr%U#XZY FJ}"Ac)(.ϕ<0(pʮr-fy\)KN\wnBA 7!X+r?VGP@j@TW+xK"HwO4n-K6xE^A_DeU>u?enpoB@XoYyzRI_V`$8' PqtuK'{b[ eC`!*&O Y\Q!D\ ~{`p?ۊG\w+ htb ]|+)YdFhE!"Z%/w;\0aY 86xPʩLVY\pD!1e,G2 ڒeUq(8'k+}f!X3䦕puF;F-׳:b"Ep'BQ3Dv_ߤ{fZI,]*`C]7 @dnAVp$,+18[ )q\-3 \[LQ26Y_L%uY]] nQ+*J8it:j5rn2%}lg4lSg:g_X9ƀr-j&Z1fs*M وL*1:N8>$S>_ՌCuZs5[/c9 1pSuiT',WasKsGƙ?tgwb28iB.- :C{"JUL)AF~duLzqB8 S8N4fԈlf݇smC֯z*+ddPjEQk ZV1Q*JJ,dt:VϳrZJ>X%d}3.[Ɛ֖^a|MNY4όѩm<> 6V ^}MuN8Foe4[͞f};g>%U |kR>I8p,,wY{g~!gϜ&%PSɠ ?޴ kWR665y.*W $aZ-I k+{^o^.^P9x٧CG5k*`n2Jkf+x&}r -DbwVyWOt~Hڵ&EEÏX| p#/}lo8?hLDd{qmpNUZUgYPYU! x"/srePDI8c\]goW*Bs'"Ra&f C!d5yf` }Y2kȢyr 2Q{F7⾲ߤ@ H7'[BβWuh nyd#  1rVhw} Z=U~2n!\ǐ @{r |w*W3,NclT|7|Wxw PTb(Di C 9!5 ŏ)(Ąd1HfU*VpBBۓ p+[DE Ʃ6Z"ppF"L -?zXkQյ@6آp Y֝S$%14Sxy|}t&Ʊu=pEa (Yjisu,.p/B(4o@3XrvKl-Od&oetZ6NzIYVQV5Tud\&l\VJ"k+)7_%3orpC>M^@3yM䥷R*Bc /e%J674?Âo-D|QɅ,/3 ږg~ʍSYvGp#@ev°ڐZHT 27vaa!e~4Ǥ z낗^L[~t4KɩĬK R^ͧl=Ƣ << =^|/9c fj1\]ӊn)Åe_LNHŨZ$m,VoGNk-M֗JD{|Yrg8_ʳdMX)*Zk T)ʵkl,,ҷ\9"i1c3!&klDd%8i<7$YJTL z~M}-@,eף! G ]OxPupii@{/̫Vx[<rd!O wl|RTvq.Tqcޘ Thq@D.2n mǵ;`N8CA qKND&83Eb8~ie,lKS6ԟ .ɕ5c 'xL[gn!I Ѝ(KR:~'D1JU 2-EMt N q:%h !\e@q/(op;SxZZYתeϏrA(!D0͸{΃qt`IFW\[iLT+s9r#ȇ9vBqrY zTgPum7.q$ɀA`,8 q:NjC٦lbj*vc2MXF9IejqP 06Izեuw oPo67Og}e`2``r\h~\YDgub&Za8w6609k8v,aJY$ͺʹ9' z{*i˹K78wp!wmL7_`u n gネ_yCL.0s/|ɰz/ g^щǨTۋW}"05*֒)y#)\2-cMZEkAF@T΁|N_~:.!XKVq%/|j]&)rfis3IHqLRQӪMQo4RFM꣥E3$ :;$ꎼm Fy+0B{WP8ˠ,LL;?[ڙssv]zIdXNi0eP!mXXP>(屌4Kvvs ƌx\4Z,;lK"%?8$ K6Pvi*ܐ\GΆ'0*$vAts#Pj(r⢾Z5F6p#|pR J@/#gPeIHIFJf%zr_|)؈cnoFrhT K(MPݕ*@X thD5NGI'iLN3TT¤Ӎ.\ZWC Hl#h37@ 8B)0ﻛ\F6d1d gB7٢ȳMnnڠRinh;4;Zcm:NzCՠRPkֈU2 Kb{E(EE\_Bfls WWQ:D!so-QFڄ@ ~M#8t2; e#l.K~c'sFLGLHn5aͮVV!>7b67`ŋgXZrM1G.0Bl*˖9wQv7L2dZrWNí7H>A\QEʍ7q877\[v$ԁE˖ nثgn7]r5㥗ؐ{T*A*_vq$%3"?%J@$0"3uDD&b'jeBb"JnzY*zW?> 8h`@|)gPE r$A ZnMG{Ǻ?,FqTu$1@-*r(Ai:wu~8-g4SN5ʓ*n0 nKrie Vz\={KloU IDATe6t8?(TDҢhj5uZS[m:uj1VGDRaRp{8RȢsGTLP!HK,oo7~:!טlҐUA+}1[Iye$a g+[i 5g 7d16UGqR>Sセ^\hjUaqbQt0 o3|S W]sbnӳ힥]s&&ʮp?NFt"XdTp]0!uĐ,_ Wm>ɘ[O4xc#W| _ O͒mMNimA:K-cTuB\"BEnB5Q##'b馣j<\#RyJ^o37o=w/< 퀨j'GG"9>e -Ad9qER>jے}!n b*{*@F/o t}+3B)Bmkbޞ 8'&|rmJdј[hoe㍵›(SG#֮Y$υ n'~7~7}()#(!DЌt4_;jCa񹿇yG.%֓ }_ Cz\*PWJPE?r"HE7#HZbH,}" ACarI9fZ i]h[e{/g>x[cի.¶e4Q2I9yq,qfFg1@6љdNGJ\vFd$ݔvN2D|uϼ{W.Jw:M\QL\Ҩ7i;;LL0>=.Ƨ&lўg|8:Oj96sZ[%\TU+dn/ l'du.c'H6hJƥ낅s)',Z/el` lj ݳK otrZ/4ǿcxI=r662L(^?s5 aL,[[6lt%oR|"Y7Vo}kȭH$ +bm=g|JraRf5 F?`~Mo(yj,5&x_HVY0esQsM_4e;r!V]>$*+5]g`߾9p#6 ZuIֆTPMW x9ݿ{418a.I;sZZ'xs?~?]V'Y&zUSK[p\r B~9;{c *7Yh>P5Ͽ`8v̵5ZuAEhf'$ٽ'_1ꖉq~(.<䩈_{4ga5cfppOl_OHCXo?d|볾)X3>8ybEocsﵩMK8R*\zu\q{Q-dF!n01T%l_"Q%*G U9}sRMd͑}-=""2K?3L>C<§ilmm0@tȠKVޙtyaAj] 4 >8]fe_ U8/8Q_#Hx'|%Ov8h&D[;5[we,S)ߨ%ʆp vM^FY\Lj͂4{0"1|T65k~KrǏ|-SDu B_-JF HAlc[?0Y {K*C'H?Hy3DH'No0EH;~|vE,r<gd3^zJ$>41$a?#O VBw}tcrGIw`uBd3!$W׸r|ΰtUYJ%Шש7j4-ڭcMMҙ5a|vcL5&DL.ȑܥAZH.sc%g^:Nmw2Iv!b*Zo ~G9"x1WB71 sI6t֕Xsじ[Ndjj/ GXYs:kNJwZƞ$˜ꞌ,#(|;-GLIzCA5OK_dzl1TD2wĕZmɞ[敗,9V}1/dXX$l;%-]/(}=5gǶ9q.VwY q$ì]iA ׹+.3SPoRV5rp'$׷-*N`LxxL9XYfB Tzzƕbj~s?s=+$&V4uа%O:^=2*[Wy-k£ |&8_So-8ꀽ]>gFr Dܫ½ZDi+g9(Cc '-+L8QfhL0.|%%['tHyJ"-_3?t? wQp("2F#0{@#e֋!e';2lܗ-!Easr$ ;`:?"(Ȇq^ g2 DQEyfV(6Nc_D=$IeLPo,[EwsDl * Zd]]$HȺCAFI9 ).rguaKr›,\eVAҡ< :JFcvgI:c't&;4'[` 6qFZdG Bz,#,pOMZQg ~}[=wM7r˝c,_%͘h%Kq.]Mb3ybb|V%nUhnJYZj>ĢDPtw;I nR;gtGn;?ʽG" HbD$Vx>q oJ `q.(>`ٲ UÍ: 85m! <7zaS·9F͘XWgpkqM+ [9=6eW gb=`E9Yo!_r)aMԆoEIedl@j+xdņkφkCT !՟wA2 sS!핅$ KucG&,Fx`t>S:T;~/B&Y"D#P[yC(vQH$Hڑ u0-""6F?Kd8#-6éDXU^9w`&,QKUk-.ȇ C7>w4giF0n2Ol =z[icrEUw/"UJSשti6ԛ 6z\ [9<,,Du#t;^8l$ׯc ٟeާ@LY21ʅXvLUO2K%O?L5X3b;Ɉd GS[DϐVߐhPfިnb=dg-ES)W WudP5`+,XKX{>n(8h>fU#ܘUUL5.78x#k/v,.CY^d%ҕUŝhSXm=pLws0hE%lbcnubz{;lnf"%Է:w8yV?"K8;XLڬuN(yrji-̥ܺ߾F'O1yɃqxSۈˉ%x1FYj)LfnO*hgD 6s2@jzjNotȧIhkܻF,,Be 2=Cu!|9r8s<'xO0ǽ{ *(UdvRFF[v%28S񍓬kFgZ+$}v.Y;a B Z'2Z(9rfwů|}/ٜi$Z").c• DS+U I!}6Cp?3r^)hTHsm}J^e5J)fwuFP1d2(nvQU1Xm^%XW@[CJulk?cxt?s}k=%q=>W($C]+R1O bܳg,I"㞒8~Aw$߂.?\ؒiVژUd';g ե6"]b˺̥]C_gM&^i!QC/pb}y'|q.>W~ѷB ($4e5`&1^;oB-Fw#)@I,JRNYE99a3n+[17Y84ON8IGxß#>g:r-!뵠_Na a]-o\̂ VF> S4h>4T})Zmw@9U)ҰC#i@9%.W& Y%p4| ݛ> Qa<, : ]SP3bAV hÆL5H? UF7 ?p"!Uj*'Tn,biXij%Y,xA*Ko԰*?fJl\}` wc>MoZ5+UU5~:>Or5 A"b "M[l8F,#±(uAY(a82bĞP阶QVnu1=U E%D*&MSEj')v$IH{nBX^դ G Ŗ xH"B(%b}[` l,@wgLF,Y ,N0%i+N5]]@SVL.Fq3X.I'E#?$ Kkcvwfl]b0L%xXY|C$TxG^+o8%_!7eZ)ŕ+H8rlUÁ݂3,*8t 1*̲eqN~_^2剧'v:sՕN5={b:lJ>x})??)_\yXpn[3;VCK\>NC >npa/ 3@h|ӗ <ρne(&nT.wgA19؋t-0wlBц( 46(4H ixXb ވ@/+pHgw+[ mvm6/n{|_eX!T%m]/{q{U]+}cCбz xKp$ +j0+ܴn#lC~'kh ?CVC?k42׮P[Qѳ6X+QUHk>O 2کNq`@+Ыz*% x+|? }Y̚,h&"{NFM},A3Cu5=`i 6!jz<3h8:,XǺ2Dgc${_-lHQeԈx6Vn IDATR䰚Cºֵd/<rdzLLTNrJS»>fvJ00O\c$S.LH(%2$%#R$YJJH[mҴE&t[,Z$Rδ ~J_kc0>+y62R-0 0PS Tm$c^iLt!A>BE2$-ƻ1ј:>)ݖWӌ[G\tBsr˹ZN t=\BYL yJ3.YgYXX`QΦo, &W5~n>5g^Ïfk(`&/}`aYn+vG_>gicvyK}rJW?l;ǡQD S29ԱO?!>e=(F#fiGbR;wm6z,W;g8ֻYN&$ED*B=}yٕ!י;@1+PB gE,E YP-\C$*Qu @x+7ŬY&J[6I%!|ƥI.`03D锕$1H1㛚qj PI1\w":kp~_HWBQXjiZPUDBͪtD* R ^ρUz>w#\~#IW1కا_D#QЅϗ"!(y/'p)*7TYqu8ɆpӞi]æftGp@K+Vѣ&qG }_-"xPyh0JݏWd ŰYӮӡG4ٗ>B#K:e`Hs % A KI/b̉;o7G+%S'>80c:3!I$@d$ˈZ Q% vK.U$!=+vW*.KҁrV E!5.~ SBKD"MH[ 3zi4Ls9 ;5=O]>7=L9Jf̘ fiCQ2+<|/,x; >?#:LF@ !0_m#by$,Ŭ/uJn9ۈO?1`y6% enM%{M0Ŀ^*MPe74g6f f7a'5K. KF0D-JR-y.m^ ʼ3&3cPJ92̕|b,#Y;cqma jҺnlKPCEȥW\q7˽)p%3;qW^蒶]HhjԔBSH# ML|s3V̀O~T c;z/\lNgG:'v8s~J'#9瑯%f4V %y!ڑ W,;[8=f_ X;=$μW ^>_{R7GI,Tµ%ϗ2K1/k >Yϸ|oOal<!∤5O6CǂT?W<>oP(WH$ m-*8FRXE.~y:Y&Lj H2k, a*>`seO.ZYJi[@ ܢs2]f%O_OAa zYs l^E0mgg]ZȵxP *oqʐ 2"YrXa]Pg5!NX'%kx/P kWK5x㥆 {0:1ME,439ɦ{ [i2&zMC,* y5@ Pt~QˤBcRrP@N&_U`n ekUIQܾ[ ׃GJ,QX4o)s+h8ۨh}]onЄ|;SPQν Y(+̶Sv:ISg2\nȥUdi $I(JTe-XiR>J*LP W48&bln(E>*\9Q+R@0D2BF=͑"b.Xa+ 1<Gc|_='L(6gW8@‰a<d~~>oW!K6g[3Rk4027stFKZÂ{o>4;| '/Hn />oUesg3.V_t {3%\k8$_] C.?oDHzs&f6* x H(cC)]#<G(ȸOoz*gOtcsɼ&u2fr&1јrg>sK;,߹A<(*KH'bZR%A96d"}ESU ez$4hQh{8Q$iYl}7G7N/_>tǂfծ5\D[\N oeǃfVED^ˠLWV@(ox-exS͔V` ƹ*+!Q{kկ hl EoV^A+n UDLsX9k-tP F$`8hUiѴԓTz_i8 GFN' !<2"p/[/l[φYK6d}xSqIWV&Р*W%0 }rKRz֠`>^=:m%)dLd*JZV. "K[lt[^!kִƺpT$:ܹ},P?E,ֈAVDYҺx!PQ.5ɉz1 Sn @+I'7l Hr#b_es NK-AW8~a]\}a>eC1QɷۿϹ39smFoXZ3A^,-F|sCʷI1%+bNG&D*g^VL5V H}KBF|qɵLN qssv G#iλM'qܦdbbI,"Y m4A&&Pax2ڊ_m`5Rg.uTt% U]k;\^YvZ2J^ ETd0F /aeVؠhKf&D.5iE^ -]"uOEd_tzJ+vQRh3pr^n'¦~#Rf0wT ށ=(}˯f¢0ABe45c/ nՆRԣQLuWgg/ apLAH,pK?p;O5$wBUDbᚆqe.i283z.gcjq OO>SkzV\/םbQ\ON5x kJx*j^-b`Oi<3 ʉ=Zq&\ki[ e٠c,#0ԁM…RUr|ʕUn^zqxz3̴X(K(BƊ,s_t|klb5ncEwC}9d":afF܅B%Z B )k-q#@)I$+ͥvg NSJJ,,RD$D-ZVj.A i%BJ, %z8Ȏet|&捘'KO$/[-3%y]O>$3D=}aVj %ۊKߵBDzfĕˊN_=f?k W#Ο-1'\G8n\J$YΦ%\\:3a3ѿ@ۜb6B9wrl^0y){;( E(ILN8v ]z#O=jF! 9ؙ玻$\xb'Y[+S:¹GN }_c Idc$$F('\7Hi!3$F`hW JDdojO>E"x D"J$G C.pCw$&X""A܉QID1viXcۏR D)kB:YY: VvcCd6O? o>Ѷ %DU@`+Qg+ k |!K 'ԽƷiֆH\`a+ǘspM 2k] txW ׅ ?+j5eCCՕ28R wx#"S79!~?}E#<7#9A.rUj !]DkBlq ~J'pLArb=\u4/-]5?!.;CbA5;Eug"j >͈Iy3Z={tI$M]$3%ZU:h$(@$KHE|t#+EQWsR[ZI1Ӕ Rc($RG+z91B(qݔ|FFQ SjD2EAU>rL!1?[~/c1 pb:kK{Spdywpe<<TVY[#QrHdk I$2S>U6HbreϞolPVY"$bJS!nv/^Q -36Q!#|ft{AWWz2XJVdmw{lNz!*_)60m.5ͯF7*`}!YEWaAWVK l5u\)yEF*KBJgppܧd~}M; M7J2!Lh5b Bu0us#ӕ]}t ޘ ^}OÇ?aI7aA\ -\I?D9^mEm<08`*y֢+*%xdc]֤nq18HoDE m=iCoޟt(5ִsVB>ɫFJ]1IX=R(R"P$+4RKLA)3Ib ʁFY]^@kE܎RT$i#bU7n| Eؓ|T~ cJי6:k(S!#h-ҷD(]vBFy[GhW"ZmW2ma-{ۂ}~{:|ZUz Pw F/~Np`''o^KK+<@ՄZPɬ@nZ h],aȗs/K, buxim-[c|e-BDSfHBIS ]vH"[3Vj1xXu>zg78\ea,%Q/t`1Ҡ-d=dtu=1!\^..[.H[tib-ްH ŕ%㐴*VԡG˼tY Q #2ޗcSN )q~^Yx#K՟AF4(_w7;Uؓ,zAe t bTOHR~Ktz r Mn ѹЬ PeEϨC',_8n\j%o|t utRk=>ځVH4D*bGﯟՂ=u!MWBvfAXY3*B`"ܵDOouZ!Ί X8\x K`|u>DcpQF *0F@#IJ `eiJ$aiuJ enLIRWk΋bW R6NK;A Gtk@9%zc4΍`SRfSBaAO4)y$"ڐS= - A YI>.(Uͯ熢(Hı,yIaK2'bd]v/\"0H, 6HQ8IIL->Ax|X+ ͂pvGzi/a 6vb|ߕX݄6 IDATKCiNjT]Z'nȣd2-)/<Xp>ع:}Q"ft{D`0Çcv62K͗87aCƻWa@D& Ņ=fhߺLF;EQ*"j J]Va!-ѥED>t(~& LDw:0G{x/%IhoB "Rxp:eE[,\%^ED[2qt(Pk%enZ҈B)!-BEY)eccDUSh+Œn;|qE&R-Kx!1v[zhx +kTKo{N(5 7%挜ZY:ooYA`֧鿟aƩQVȶMtxN+t;7ߣ1X1X/B*:n sjB@KФ(;)݆V{Oh@RY=gCy 5`X_BXL)AFNkqņ1j Vk_,.PbH>j[SآU=/m-;I=zzpQYF!J;a>^t6%J"VB)En),,JTH*AwȺRxV%aa6Y64s Q,5fd(ǥOХhd݌fO~m\-+('SVBHoU&&G鈭% ١y`#_"JShQ dE:7-|(U Q김5c!A|vkO}iyՍ%n~^ StqD*I1F&_ }-D.ˆxdYk }ƚK{w'^K_meV疸nʲgRfÒ|>1+8ācSh"1mG GZvje[gb~#iHHIm&=}RaJ YP"Q; [qR|`%X*4(J6 ?Kϯ~?Bf*sbfF`g`c^YEԎZ U@雸=PRcJҊ" $$2̵Vx}?Be:)|!U ߵYak%>V L3߾O_a 4! AS v G~MYǨ/_=\[q}+uG2Ԭs19[79׿F7!KSQ:O+taC"j#NG|oi k AIV)'N)7ѥ;<V Gw7э.3}Xg| Z7ȳ/󮐽gJ:)L DඵL'Ӝ"X(f$#Gy!Ue(,\G ֢BWb|C% JEfKI:|*xɖ=+eIҍH{,]3,8S*EXR8ڸH i/o37,$F$:$$Q$QQH {rezku$+O;&"&iQ L n0.pȽdOr@n{D?}  {m7qt43^w !߭$QCsGE$F̧)Gn`0KX2˜;3jҾJL]Vc L!6f͈T DĉB2h;V2]!J*vJIldJy}#_wSV7AK#%ksqT~Smia:#"JSd!ׁXހ[CDQ̊0 ٨έ 2, `Jyi=4$M<єyA$bJmK<$ACBD|fCa8OwW %ΠąޭpH%p]w)Y_{ $}$D,޲`D%h!췺,wwo),4AB 4 z1{NvP_xݠ>~_q#^  }_T 1 "޵·~?\X qz&#@ *f~c9mb<_TTbdwWH*YGH4iĴ8֕uzX!ބΉt-)o[ k JT>}7q JX@rS9eQb } p-QإPi)](k@֕G"iG 7,I35̦30vRTKRN>E6g3Irf]uAnYC ߞ:)\,kVhsL'uYY?'c7a{KTLI°nGoA~Np2%p~դEr/><sͧO:|Wpdk47^]O?CxmsYX_'÷򫟿^`WOg,9X6Wig+[vw톓Ow|=2*)"q>y-DcHGˉ1?X1[3iم w_ 3$([m͕$M\`H,N.rJ&|L?ʺ-d` wt 0zb/-Ld,+XS%{;Zų[@ f\g_SJ߬lL־f RW^<!M&`Le0)!w"Jmi^h^P }L;4*?m[GUS XbUD) "fk>xh LF10rmt{I}#h$#RL&Zr9c0;^y3?y@3vg4 t]z} Qk S 38og1"9knw!b>2 g]Jpoz}$%ɪ FڥiH4&1l68gi3YP4=lԍw۞>sax9r׸[p%?o,p<i.`CxKcq}zV_piF ZTĸ6<8,+ =8TN%q8+ġkt׿>H 'xZٕWs{!{ö ./u<v6N Ѿ퓗||ޱ}x|w\ÄZaZ{!3{f 4Vk[O96#![o"!Ϸ3ZG[K=ܱ<\3vl`0&ɼ'P0kw}χy/mz1k[۵>!'PF3kfЦkpv+7wG41tYA+O]a]n5^{E3bt^|WtJfTeS%Zdea/2AXKF=i4m, ȚILXBRVj v)OLrl鈩:ThO_ӊ-gK^DRT2$IB@RO#ě/I7x}ؽEF}U&gъ̈RahHOЯ5edL3y [IHo fDZ&97h^tUczX~O KH8 1O^_2]mK)ΥזX!(wnꗞk?0@ wF]s*z][ǿD14x XrD*-v L o-Mž)UWAUmuե4,Þ'|csxu ݗ0wkvwhD p ͖V?Of>255K"ڿ, vp_uyU(AJLť, fɬ5EClϯnLVYPEEͷsڧ/X߾Og/c?cXqlgO9bott^ᒻʽ5/ϾخVZ%1%l9|r?:';Nʝ,nٗ ԌQ5zRJ$ryG7=*`oGlD[[ä쁉UiL\?/Y8݋?'w~tf8h;H2lvBpufF'4bdxŜKVKM1Yٚw8=;+m nl\eh(Ǥ]S6];ZbgO=_0P 았KhrDT^z].GZEÑͯMC'c)z1BUOw|lhʳe}};rLQv #/̊t=1(_4߸*s]\9%8E;g(ci<ԭ2>`(O$ieHL2d)Ǩ ۢfG~oN10=Խ\~~= D|˼4C" 4'jmlcٚĎ@w[~&Y:CQ7 q7<}[$Q(} %CzDQVpF _*/{[%2< 1pcX>s,la=qnTn)XOr;8|&$` {0MLLgɆ2 U  y h{g?V.=͵+Ǭ`|70_ 7xwivXsnwֿj_?H,c0oXX4^۱}y%sJKsc{[hcX!iZxKցYOS] TȦ kO>ek7čcf'Gw|/?=6O?!mE$jN@sǻln7Rd=|s+~=ύ'u._`q-MӰ[ZUH|◰>[b:LiTOX M]YI0SP5dzQNL+V2*>]ꄔe"̣a7S8'`( UdlG J;Z@_ ɼ^kEq31&Rsb3 xPRߓY*o'R8q(b2S%j+e>FLNZ6s2hdlRq2YOśP۫s1)rX#hm&qbKRu*[ k_<}ޘ rh=[Ť+X}%>_o{7314!i_`I1۴?=ᵇ >#8$Iv Eߪ!E!n7. Y*M#às=_:V"7[ہZ?V!4+ZlLZ1H ؼrun= 'Ñ{ R994qoWY]9`q ݕ#d#=bT~!z\YXݸ}ۃDs0WӒp0] q,}x'ys9 Y.v370*k !lIcn:MnDkZĻ!]Dd@|+9|:6%R4ȥ,篞н;Ll+Ӈ̮{2hE0B-VwH,I`u17V8Ȱ+&AHHփM\{{#w6sZ@cfhfD,Q atn5#\;7wvȭo}_/Ь.q޺ťvg >gZciǤXZd +5!aUhI P IDAT9;wU)0+ ےKU_Dw1! *ȋ1YLZO:,2n6KuU_}y^~+ w_(-X cO/@gY挏VDEvہ!l;K,V[\y)LR5CЊŴN4/@N,$#A8 F΅ckY&aSyW#& H o"$'<}ŭC1Э:bΫUUgA?y{iq ) ؙ'"M {6/G~ᅏDa/c'%ipKn2zY\0kw?s9.sFΥ`OEKBɔ7FLc >ZJ.Ȯ1'%rac1mf؅_,_Żyv1!z #^}/z 46%9, fubw3(q7E_24'Ƥq<sfK,߲q{f78Rlw;f]W\DT(ZʕK1F6[n~{ÿ70 />G~Mo>-[^r ͈!ovzfcni^=?-D`ϱaK#{ 1w>LIJLyg `H?dLGIA$YLj(x(2s4>%z@${OQVk6'|%S/+=[%є2X(Ȧx?*4\jԎ$s<A>)UntHaI 90NG(I"f2`lH3zQZTc alHq& !b0<` 9;bp(c f$ H*xʨ콛G$z `5AT$.- @+[)b>i('C"1v}d{&RN4fSDO{3XIf$e0dp5<@{-)}d%%Qʘo#!E$E-f7nepKOw؂ckfkDHq`{x;,/|lLȄ^ZLgq-U&i iѐ\4ĤL~,[Ӹpxh`vpHX ]b~b4LJX õL̤\_pmǫ| #YwZ)bY͑+Ivنhl0#T+zM6jn K6ԛ&ByzQ2ho[qaL>)UA * R$P稴C\d|1~xcz E&3Aoc`2^Qn|rIY8f5Fש Q JiM8ޣ&Dr?VTcDӬ٩rΓoK+C)gmC 1{-&%JJ{ J;3צFw2JS A QfR78P]bƯwľp?}|ݻߏI&|<ύ.8-665V=նVK[pSw>cCe~d/(ČI"s< b´ Bmъt5'Ӳ' B;#t-^$I&(#ހ]|_cҬZv@{*'&wnq)ׯVC2ΏI„Ds8=p!~t\/πZ\`D > jcBֹ5JpC͏?O0XALQR۠ p^W؋o}oO?13_,0lg[:i;繿ӿ?If<ȴj]I+ " 2WVɨ܉ng41/\xA]{2sk}P[oV8]U5| )*GW.*gzrR4D5UkA\z*01y1R8sB"d_1i k`tݓc:#|.7̪kVHѾ쒚luh3J1LTa4{VEߓa\)NE0q$*}t̅4f"  %eRL^Cxa/"@e=gMLcux`lls ,ݬc}֓zhW-q0 3\{ef} !!!`AR|gʏcֆSve"BzIB" ٜ,.w+u aD6n NRQ Uo@VX:g} g|j$|g5ln%mH|m<8o|v]U@]ővcx|#,()b%a&]˳7ɇp+/qm;lmbI{$`srKxumeja:ndjdc0=)dX-\ZҢ.uX1a̤hD !^눛@G>^F5Ba* \YH)𕇿?I]^v5EC׬0~=^ojbX!"{HhR5\')Y1`>`|Z,GZ͛7 0qfR0VlLNWw&{TqJZQz!01 \%P Jb`2(ϰ/>/F)S-3NJ2.IAz4%H6:Y7DyM(k&2I:Iyc9(7S4V+LUW#!\~AU ƖLF1\O$VReRs LN'+%&3t RS bn1Msnx N,4{ɖ8|S]* VSa2 \"y)VVSqܓoI?!u3UKI4m]y$E<+t3.@kg (pY>Clhet9R'.9HSJmߓv+Jy bT6:edE&kxeBڧ_e1.K07ŕYb%Ѻ4k%n'/ڧ≷3KC}!`A]vw70HM" g9mO*`H{y?W㝷mY]:]|s/O?w8 H|4K-YZwjE_-pAWXřRϛ>sPd)*{7L3eNU0VQk(D~(X}F͕ޫC\RByh}?=k2c`1(?Kit2 nkY`dav(hU; FX& .+n MJBLRJ41_Tz) x*?6GqqOyɟ,|#%lG>,ha\2;Z.̗X v\z[F3$ . P!. =Zuǝr74 r4PbI|E 2@DWC[Q;doD+-ɢ5 ោ`n.f`D>4tղ #vTnlT`AN̮f)5$cH`s60-a8~L-!9rowۯ|m٬ghq yhVhV-OeK<8}!o9T_sPKM5,s GܐVYOC4H++enu !)!$]wO a6a[[{kwaA9֖Ȗ =pWyoи79X^:pl&:*c}e V<^P:Cr?oLs1?*"7"0)[X_Ds"RJA.'n/ Ӣ+w$:lk)1)ਠ!&β#"m#^q.5\7u2Nj; 86)V̤Wx}N10x7 7 a0&V C^ kRc*7UN*+s.7bPoJ+NwNĈi&hi7^޸zRՌŕ9vnhf^cCz[Tɺ:; }rc[-$cU1[cY7[|Ϻ J Rȼ6ur.CbP czû]|sY?:a:bi[bOOͽ3DdI&xnr/Yٽb7!xR[]N {}ƈ  Zc-kK[/4/ HqA1Un%Bt ˥`6LwBta=3M{I4VCRj (^.2X/^dtWKXF ɯ %\Xw{"?kR@LcRmi_glLPHpuǹ>bFI8U*!5bb #@1U+@Q 1rߺ ؅Id赉KqRw^"c\%9$}1?e՚)CAsP~ ՊL7Y<ɌN7|~}F#OL~MO )sImwYew;| Qguӽ-˼!Ft> 9W;N_},8B0fO^CDNǰyf9SB6sJQja)g.NCs|HAHiDgw~zU6_<"hFw0ïhAv4֨P8~ӵw|^5H[Y]JK!6Tu*$ٺVz7/Cfe!-2%Ϯ*9ưK$ .7ۆf# %Y6syKYݘא/7<| u!>5x<[)w I]o5EJE0z?:9~7te <հeNN\vaN DƽUUG`]ad-g'jJUKؔoV=d~˳$'˜=P)TEMhM^l.] .xe3 PP49* ܃w[*XaU^k C}TCœPvN6 twrxA9.XBJyzatq1b@x ~b(ȼ)MFsʦ-#ZRפ'hGMR[~qYjŪ ߔ1= R_.)0㦘Ҵ*ӔD[S:D{g5Vfѻzwټ!EfsDt'6I("eaw6|5 C1Cb"gwh:h;eEIVɰ@`VeQIխZLRA+} ۵Z,ŏ6 -BA"%2NM]gBIKVQD$ysd~mWa9SXٞ=8.qV,Zxm,edך3UY]̖-'+W1fJVeԊ R>w`5k .t1H0xun_[0K )1+%CA A LW0r&'%/2aɵ%RS9^dR,Jt|*@Dl&):OLU܂ 6%[bIPpΎ@e"ԛfaGe=rL9qr\Kg O)'KQK͋#gч+?I>I8 HD$i<&~sFTF#T_? %PL]=rzJJ"م[xw gA0ߛG$L$C)b|IjhC'*]eʿ ї璂ڦ26f f8z_=$.- a]s'1l$bTqPzt`pt˰ $pC~\}e.?wLB'+TsH&IcՒO@K<M2{9±,auÚ`dμ\pfWn]FZu^ObhY+T+b"q}Ծ52'\# %7Mbٰ>Y=ab9uHoOO0[[h,΢`UlGCLBq<{^׼<y80}_}PK^<}uF0f4):^k%v=T R_EOK&c*PlP$DzR 2TSzf;M2_d|1{)Eq]mt6@qʳ>A Ѽ:SU{ksj Y$HQIev;q7 K^3H cرNӊ[VZ("WN眽W^Ur3k}@8 W\*!f_ڟ[eY#o:rߣsR{!3=Ljmʐg`7=siچyg>wA4a9Ĺ3N]Ro@Hbwߥ09y`q09(M#JovВ[RVi.܌cl6r=1*Y"08:E}g 3غ1#TZvipb&l-Q$}3׈V{ \\,& a9PdɃ<6s *.'7$V`cXQJVͰM|:w޸G hYå2lD̄ƵjUXbb6Ke_S?w,ʗ>34-ʰlK]om?|?6yK"L%/IqU1z7R)ÌYBcVNVZ25}QPe,Ă5w hJX n=@R 겘0c)k u &ܩ}9۔UTސLg,>WGKĢk5/BU,c-V!<Ux<ᮌ2Y$'iJEc3NJad8k5^gh-ڙ/Rv=}h; j唗͑iZ,KUD)"K3vJr6]0"B>F1\@"Y[ h;kf9R_Q%kl7NX̏زCDcAF^C@)4h Mfwvc6w @@u D!{=7苟L5`hݦ'bIP?߿(-qS+߁g^,7^|aN$1!1I%ݿ"Q-sEI-bA\E@0* t^0 kz;s7 hEQeXdIS'@$W%ƺwc2&,4|~#Y ".e-_D%$J14[rXDC9(XWܢ8ZsUnHjyO<Pc*Ȩ}WU](4j*&9 O//,St1y;A}M}Jse/~uNlh#Xn}`¨O9)#~F\FId?րq5=u o׿+tÎjb֭gi⌮۱vtCϐ{qeuq֗kiޖ߽\|xݷ>ܻ!K1٬m}D$j93֧;6;Y.r9ˆ`xIG3}x F߭VX8η*6Zu[iϺo@7-31lT?=*S*֐7*Sa9}j `Fe )zgnt`&(c8:ăyW5 J -91?\`M;D-MG ςaц& _#@_֟7;}>|~+[./IC_ JY< x*>:c,BH7$Jp P*cx,lUMa2*OS^JF9,+>4HmY<2% v^ntSK4f~J@-\woN .RITče4@%..N &Jg&oD`/%3'>ɦ2>q"ij'RzYcftQ~dFk޷l鑱:w߽ 7ck w#3:AcƏ1ՊTױQpNQ4 6^QTX_DO5oQq$M[#|rKi7&\E;Vm_yveo'WQ:uR5&>շ}=Į>FhBѶϼ%͂nqs1g[Z٬n.臁4 Ho~wHHnHʶKsn?| ^} yni9G҂"4-5i;{υ݃gRN۷ 8>`~r|9cy(VݯXj*64h%JZ'c>;Mcn;BPrB֦Hk"C|v}6z7cW?cj+#Hl%8>~9{;}eX,! mzcGƭnE'ѯ04U7P*J{Vׁ=_Yb3$0G= , KKdMDaA"淸)cݻ5op aae7{lw q47HTѬ jN"DrXLJMP\L:܂P,L!J(hDrTpFpdB,!["Ĥp IDAT%u1s)ݑ +~Z:F0{L bڍO'"@qJ+}9%w.8WG" @.1˞ :cE8f'j9pxULA>qw(N UAPIъVyDY&<=%1`HC 7Mor]{p<"N@?7u]ş ͂x{wӟfs!m8vMoI&(51ig_,% 4? _¿μlkf^ݘ@hi}݀`}B~0m! +. Mt}Chh-EhhI 4JM2f\JV]"$57obkC-1 EL|.) [C~~F 'v4k܁=Y x!)q~B!I7÷/2b2`YnA%7\z#}@άv- ̗i@o? 4md>do3_*9OHl{D-s`pg%XI1ښIV`K6/ҭWx;}_7'5n-O{!X_M3O=" b1P@ع%5Rt ,XBZ ||י{vJ!ljv>QuUjVaB|ݧ[yu~^@.QrdLB\G  ZȪ1,\*or?X aء~ޫxҢxi(h2Àt1^Fi]>IX˳F 3VQY΄VO}x4 GԌL'c},)NԺ7Bq{JiQ-]Rmn3#̀Ydל{t ~`fN-IK~q8? C:_,t])}9 DӤdBH5I96l,W>z}ZA t,N @ۖEy P&%@+C6M2F!?VZ燔$F-AƄ4PU2î7cGAZUc94 iY>OCC a=tC,:PźBob9z˙v+54d tiK_ۿȟ >ӟ%zq N/|BxVM&JKҢ1s& lx?oDܕwEzx.ޤ \V,lÖ|ZTXLtLسT2%K}D̎ DU"(߫+0fJ=&~lws*VצX~)3<ь\9N jW5̄2s6kմ,0R| G)仲ʙ+` '+8O=ϝwd](2bDcYP;g[vvmo?D_~_.ق~:X"B*蠤> lOWpF͐9{C>;тE|v 4TM&@D TFcCoevn VsD2r*A%O\8 ~b5]k2:Sp-S'ܦmBb %K1 A@uO"Q["?4z/w9xvNo\sy͗_+õEկ?G;yyx3R;l2E:Kz34ҒB"%!_ ⳋ9zw4Hʑ!riFt- Xmq7x_8DJ,lLyUUi^:ŵ̗3yq]%N"\A:͕yPQ7˸WyX6r-U0SPxѵf 60j~F؄w7P]Є3Y $NF7e>Ù s\]*T3^:&EX_'s<P|X~pL1spZ7%ThKSm1:V@AL/lQG򗸊^o]\g ܫnZXs׫w+c􀚫/Ef(N|t{;߻%kϐHIDB "%UDY<^U`Zӈ&rSiAZNCatD\ܽ`}pذpy{y]fh0 G G,g3%Y|cuFKXؘ:& aW6t'=ӂt@J9-p8rHLB[2k<%Qe >M*VY==ZAXF>kf ɘ^\KhL+ !6d,[@e@h"4gJMm9~!$:j(sg!"!_ yU߽w.~;s.vk^ܫ=sb1]G^C&J tEsJ%2Nq59-Ħ0FSј粧RĚ9JMU,fz6Xꁐ"Pf ,cD~Cq=< ڃeW0>gj=kpGYF%ẗ́t]J? hwoݡOAk+~@{CCb6^ԁP* n8g Z$gƣ sPb_vkP⨰ CFѦ1`բ0O=Q`SZu4.K-ݮ~Lń_M&JOqĩԘޗ+ ʾ,tU-ר5rfE+[uJ\;F1+{јu'4b5ĔI7gVUO 9'6 C ,o|sacra<(У!%!B#բ(L=- Kp+Q6RS-FvWdC"V%j5(u8k1T-S5L8?F>6-Ŧc d0jKǬmOoXd\>.V2M]?Y&@Y=S'_J?2ya!vSOAKu5JrqAlRJ MMZW޻L ǝ+~ܣ#OH뭸[QS"/U$]0r[y cS @rLR%7P7glya _z\> Xmڒ1mFLmm@(C7]Oל~w<@$kG} {(f^=}mY\;0nX(W-Ԇ`38U24C&yٖI4E{V3(HdЈ䁜q!ެ5!e i]hӜ!pՐb͓Lgsg\n ~W44} IGɰ!.3sG憈ahu\>Xs()xsmJ 9t+}Ys[7 >O=h6|F:6gCGKz/@SSY]MI|Y{[ς+J^ыX}!1ZLVd3K݀.Hvu_SDjep9`P桍l}. @8b'ycF~_0TdFj28{/]JhTW;qOr ##EM~F)h_.Mw L{DY87MSFT\8V1<ՈV?I`?[?:L1bO~'ޠQwo/M¾&/uBk&"TVMv/T  Grnѵc4)]X, ù2zB۰8ZҭlwN>]# gv؊%K4/Y8:d@4s H(<QBҀtKTv=i؝% K<'% 0-e0he`jhCJgL !1=y0L44"fD0P*7 (}6+dXb a}x4;1 Hl!b $ZYn!FR6C^{'mx+_aܽsyqS3ovK c{wξŝ[HVRGclH? װnVm6Wzwq[jM*@ Sij-4/?S?׃+߄I3eeTM0+֣cԊͥ0Z+ƀssDY .븯Phse2DyO)p2e0-S =qާ6g\o^cB#' ʐҠ%Q{FJP$a3 G2VWNWiUdUVA"0n{rB,%"Ydw f`lfC)4{)sh֧3ufG(K+# Cxs "_C’|wmO\rɰtieC #6XWUK;?`PX55X`h( QXRG=<^5*gTbDR}%?㉂4 ,PʺJz;r 1f3U]{p_5ݬUՅ ńZ,ߩ,Rt3~bNXP=IhZ2C)[R?E lCҞYMMJɄX`xJ&GR[(bCQa&7tK$=C/NJ 9I2ˁZk}J-7#Xf߽샖h۸RR,匛r}s<o~M)͌/s$Glw[Чj}n%pgii4sd=x*EƋF_($=MɅ>e(ET@\&+s)8U[] ϑJö1AמsEȫ9z_,赸u]nhȞ0q DAVC>2Cde?G ^|5R[B Yp mB174v>cL6@\9>J(J݃A IDAT N9u%JovT!тLYmSRrZ)Kci>aSҦGfDP<2a(n=ps7í=F6Ÿ\sJk[TtlC%81 M`ۏ.YO͑u|^"׮xA(Y[~y^ڭPi")} "qEݱSeu齈PG-D_(@cTisyݚR.XhγRHs j\(dj뺆)&VS.c"RU@cL)ӅjuV7^zhRBSe\>_):Zm-HhMOrpLy<@ГJE^Ro1|,7NvÙR+]v9](W/Źp⛩ЫۣN߭ \/U'p&A?P6{\=k@SWI كb`d%*Jo bP چ@#%ꌔR.ȩar fE6Hik?o7 +˶43À\(N7Nj~`ˤ@X[V6>~6'n\Ŕڛ,y0$reh.h*cIv!v][miG7dG45Cnו.{C^xUf ?MjWgKs rвs42M8d^sʈ ׏Bhg3-yE_!Ȗ2@ Mu%!L5{3z@b ӽ0GKٿ,Arܸz(l= OMsZmτwT^F}.j̹%S4gGa:u&F;#bƗI\yh|7j3 >x &"׫g#xKi0Ӡ0 bcDݑ\A(Ê!'_Q*:+.(,.Ū&ܒRʋY0Ң_^Ap(:F.YqL7cd2FU?V|gsZjiA$.zP3A(VqnT|g7yml~HNn8:9jM9p9-BN}7ok_i^SU|rN\BaA^3zYf`L*TMnU|.9{g<Y;Mn9eQԭe}z,0C$VҔUsVsJ)Azs=tx;^Q }fS({_waF(,S#>sฉub w/&E%p*s)Zk|1vU-%+=rc0l&Vܫ}nd+ZؠшP-x1u9}p$}UT<`/0BON<&`R3e'~ H tQjЮ_nZ^/,(o.4Eq)-ǎH+큌@FWh#3?˹5VN TSe\A Mӿݏ2Ӎlj;Y<a\C?0=Xdͦ8$hx"{a*u"D,3 HNcI u nӇ<=.ҧsY|vaC 8 -$Ign]0bI6u1&1vI{lb *fd@r;[e&>}#˿*-h̘X BP6ǽDfMovi;eN>1IMJM.;>x-^o5#[(8ZCNYbZe22 !9 HX|}2ySzcXl6:!p]~:- Vk [ y3'ܼ>C &\2/Ɓg*J=?<|.gD M#ΚS@Jց :Aֶ7Cwq  MSMJq5[1"j#C^c?w@0ZXԔdn29YIBP%sk3u#Px)y֚}`byBr#"V 0l1W@ʺ;A]\x #r1ҩTGn#> |^+1QbHuYUWa/e4ihAoZMql?"?$`APy|_ᅛ0_րEkbffm灁D>0$& y=ӦG xlKwks,тѬjN,FS9e4A=@yCkEdU40*iw[?ÏUYTL#Ax0n<vݱڮ̣ЫpOK̖&iT̉aHu/\9pxc $bkn$Bil}o-h`u*=ytMG 6jFTBf9-:xY\fV0hpv\ ϡزMsҞ9rO@?veKܥ  rV Ok#5nX0T(ۄ XŎ M6T'5/tF/ QSY&K ~'`Z`LM9< Z[n ݟQnfar}ETof\7C5F#'=[R-}@*yb,dL]WFwݣr+ FܴށԎG-W9}^pjio\&6ї 4a{<> sqzIx;="$2J}Ȅ^:_y3_4솎LiYY;d3p[4КР4i麁mS|Gyw:#Ś d6~7k)g\Y/i d]'C 2bI90vn3.cwQZò[ !AsÐh,3j?+@ )'֫ K.)Bu`}f6 ~{ `@>xҠ),[ "YoдvіE%ˎ|9ySėoФDwc.;D7}mHR ͡Ӓxm@ASyɌ8 naEW㓡Ffe`zS{k {psMAklb9 [mt%k"ss2qō %e_{N}F޾`tŦxKb--?2 v<ˁo&_./?[J%y"M,fs1R0F'c=gt-#1L#XEK'$o86GI>(} xGGe=uC4&*}'vU~qlĿM}{Dfo\*|MrMl̃C48ܬYHQdb$츾^U9Mf>%lFuG3̂R.ˁ~4A 8 ݎ˻礭e}75X-iH 0GU-Aĸ!wJJj})̰Y\kA)Z1 ;ʐ2}7Э;>}o~|/Qrx:=Rv=z5 8ݭ\=S}OP2Q><,^-=,Z!4Ė.(VZ{%7ʃg/:gn|7hl=(YZ6M2]>z.oRTuЇ" 1XY"+[.yQ?_wR Ue#֟HQ\r:z}. Busa]Ab '蘉ert,j97K,0+S$#Өk1& 9Za-אB&Tšw۷؞m&-)V|,lVh>PkGnnϾy@[  k ȃpx)dZY]HU߾Oht۳ 1ORYwodGGh*sA-{JʰSmϰ*,_Nb x<@wnPf%}ߧj9lN-QMF""K86 Ď @{@`;"J$R%&͞;3=~y UtK6y{jUo! ܜϾOʯ_c*n]Q78 ȑZ)T~fHO13pgV3ÎusY[R@N82 g[ۜJaf š f""3ӏC_a||MyοcmN- /KܖSu0Vr) T $xC LzYe^k74^%#>Ҫe>OW`up'5@j D XsFJ5hn-z =ᱬf,]RGE0ydd";޵--ԞbɔJ)1~4aX68qHi폡 h*=ӫrz/[)Mka\IVZ|Aiփ "otHvhLSY~M#jwNN&\\ج@`i@eH,{fY^_<ԽnI>6{&bKm7kI9ٽ:l!9GܗcLDZeEmp^o_8>ZS$+mCew8*e;+q|ULa=1Xf,fjlf K^&VQNɞ sZٚZS.`"x>Gt ʺ; xV&;xjr`#ex[XtkM{F-)y?~xWSĕH\d!n29:"YZ?LO'z)ymj+8X-0g~:l¤H;0E3Tm|)wr !H5/Y2 y02ƚrz~ 焞<8DBdϟAJ4%/~D`;s&SBm z>@Ԯ DFSuLsckۍ.j%Zk[T;b )U^O_s>IǞD#e718+^~E͎֫_{80oOw\]p?^8f nyzqΛo-L-35՚am(g`%~v"<~|w~y`q*T~x͛?>o=vkBfVGd3T 1ʆU@y6Iuvǜ|cn[$~81YM-@yvgVؓ+ZЇPPUFyEO[WOqd ~s[]5j! x簆䗄fW]TTI*ܮco.'gb8z`y4ۦ #{" 6Idiebg^e^ H%$|C=B"W _[Ȏ: v-aWU^|^0 F?jsgѾ F;%*7 "LL|] {?T(mpS01mS'cdx`4$ifa Kө*4Cqǧ?dwؓeEΉUln*\\?`G2ðֵ+ꑸ8;7OӇ|js1@a a %_5"eWj 9U+04.l+Ƥ&*[,!vIv^v ,8kqq^})Tyg??9}XgRؼ0ifǬ=K*~dWʺpp{?bk]byjb{1s)99!Ua>̓j&FxFd(U("{޻7eb(aJb3TYc@$ag<>pOܷ^k&ʓɄכ5$˨ $53Ux}J`i{@{eY8jw>句c6gʹ;~Í/>% :}sw 'b5 ި+It/BD#VP) 5_9r2C,[L> NZ<'}h/4oWҭd6שA<' qw|9rNRʪGy <;ihFaRɲԅ6҈^\?:p ϱ;P}X8@5F28,Y !SDӼHzPz8I1cO}!-Ϧ} &Ŷ CȞ xuKMXP4lFu=s)U+s]Э&2T53گ2dri= dIfNw{1tp)3M3-}Q2ĸμgO5SEWjx5?tSzKBt܃f h\s;;J=$?Oe2dY0nꆇ[Ϟk&)l7Fh[p9O@w}V^J)L٣|O3 4 U'l_&Xm2%Wz`ȶ43OӼӟ%2y?֤uBL>^SX%Bb E("Ԥwh9w@WB8* }|ֹS`@m>:.I p{2UHR*$dH@>L(exo@DS#-40Q)ZP-2yo/ SJJQIjMM*|=w{EH[vBz߫{ԐYP=m3( .FKbg+c<\}K"'OqZX `r`[n{+i a PzjGu:ІGɘGg;w|7F^a$I$*8 ~XCCZz^Iԅ@DT0 rLYMV6.lJ-7AqL*+㞺Uf'VI8;e>X c/- I@gr ?J|+e?pz|TfWC,ELn<U@R4I(fdѽ+~w((D־7FiB;ִgAH, H߷[[ %m[ ѭIޢsrѕ{ <9vrBpC A*̓@F hIA+gTbv疉wQfdw}&C~s)EB"4?!EUcB;;rm{J uԡkC>dsLaG!~.M]S}2ߓ]v$Rյ Vі"Ѥ!gQm=\a^q8쮮9w|xn;e&ׁ+Wǜ>x壧W^ I{{ϣˏ"YxUelk*#⸼>g2sa5'XE(|ʤɇe{;|OXm6iJ%ղV;p} 7鏿;4 HpbƸ/.׬mn,A0OO#22W3uJ2>yӾ R(Rs4s.>/[ I?NS3 ݎt"̶SO)gdD*IAAiVN !Bx%G ,J{-QUIWc{m,4Jd-y *L $Z(&4bV MD0r$Jr! /JȓdM@k[߈dYbbOD (Ͱ&LM$z"V>$ӀS99؁'FwǠ]&뙵OBƣ ]5iT "!APbzBp(Gn{tQ`^1F4Ĩey ADd( ]LzITz`X_SPy`sЈZ埆Y $cIx \qW2ՍG~{(lnLؿ[qWz`ߓjXK;ͯ20o°i蓏9/ Ë{|o;J+X %Nj*f?q%q1sAM(! C WO/x>:M%Y@4W23둛WήߢxC!]7ne> $%3ּOȴ3NQD=?"W0qg>yKW/2#Ju]Á sO_;/<ϸX*Z Lx(q>PD*)g V ٬]Uz2CJ(8ړ%&1FR-jRSh B΄e!nH$b6E9 !jexE0`q>Pa(y5d/M =H6W4.ōnND:Lf$"y( `ϐ?#mg|BlaxU&tSB!^I@hC9I\/SܾL<vγz=Ӱ+{DFuhIv O[onysX ԈVYfE{R5*]4aU1 a*QpC뀖~+IߥѾ+qfNw 6ڰ8ǥD/%D}{RpSm Ylxǖ$Ugwpr9*8q{?l{YS# RGc~7qd!se6Ӭ"J$e0?PJ0rX G|#G'ܹ3Pƪ[$ecHR(Rx~/{R֌s$ͱ0FÈ0{a%u!.m!0!k 9r*Y4KpjQRt|û櫼rLJ7xS r>bwuţlxY9=~Hs%IѰ@M_ ?.[n8zV5R bvg>d;c~uٓj;/xqU*D2O\ݿǟ{oݟ.a<]qFW 8 /9yUdSKb{psONM8M c)G9g Y, iIChfwef,#7++Ce6+\]_ofnƑ'WOXɍZ.Vr -xvH[Uޡ4ē :C"L^T6E'AI@FwJJ\Cj5#YIdR\xH,%N,ɍTY1r{C̤hsE^nXM喸A;|2' nItퟃ`'4 2: v[6Jzg!$,b:6rK1ElJҒ<@y' xSR9^;``(yq% 5P3b]ɋ!LgNvo1 "RcԹ7+Xu`ЇVbψф2%v)jm 4H,_R5`t\ׯHTfl?x$ԑZgD*<03 w6/:9O9{b/qywgkRHv9UI0rz}vĸ;0˚dkRjpr_xtc/V ~3گ~rytÃ?[f&L-%̥p~Ԫ[3o']QCW.fNr=X174͌׾kGg2TX.y/wrF\pjt5q=ރw8_a5+ϔyfX{e/)u[aRKVLq2[F`TrS`ܚ&#:v;z(/l+Se6E+)zt9pfDd\= )[kreݚTn%|*hVwқf!\XAWI;;5!{^e{?xt#b;c [9 + fP/`6pbSRoUȾ we\*:%[[$jh)nH8\q'⡆$WD1J8s$*!ZϏ 6yN_:m+WOe!SN>nd*1e^i"; qK2VChCD2 gj.vg|O>E7o.@**z [y̅2fmt1RѩՀXŨ!v΋:%m/K lN!W:$Im> P hl0EH^-dfIEVOv2ki6ՕrSh eE U3SEJ"2~1dF<+Mz< ^$/92?Yrۀ`=%5nU@wܟLm`I8bV Unڙ:!Tthk_A(̢;ݑ*5Yʊ?~x)g\_?e}<+.np^偼ͼ#UOwK>4$97uцq;"&5rzSik-m$w'~o~嵯NyT7B^wxMlj 5|̇ 5)gjmO3K/=́ĊGgynFOx"effnopg*< Wk@pfwap"|;=_sssqMN+'gv[fp(˿H&=twFWfP\+YLCMFu+oض?+jBʿ)pԪHw`Vb@4dFjc%VMdpH_rþƚZB2C,1ek&ϲ4W٢E99橓ޅY üiɬGM߻g$fkr!qeit7!TK_<z 3h~2p}F:#3"VΓp>CM:[AQCDzKd֬BSM&gMǁY"<dT^XYc-8czDf%jʅl'`є-zkF`511y?rM>|T q/7k.{\Ο&հh$T'QH\' $/ͯo;_ᕣ ۳+a}wo?yOE^#}71Cqwa_#2 IDAT~~mbq? P3Oquu [Zǩ'dA6\>xսLcnI)j X9l&ě|/|ܯ0pvna?g\3]_pwNx{DN+:Oӻswsncǁy5ʕaU##]\}.yPJe.C"ro,%OxۮL(xwy׎ϴQ=%5֢6O,ҒdMPB KbXN=l 6/ԽtDS]<)›{BHh2՟[B0k9:Sc8]V$G儤ׂ&19rҁZ3ntkV^oq۹jByn: GZUZvMGq 1)~($#t5!C$Y ,$b de$Ha]Aq}Ճcx?#G2}dȵs8k (3j[x:1r°jMKʗJLXWpLʨ%faO~/}_~t<ٽ Oe.2e9@Ƃ[9[Rd<*)_>zt~pa?i9 .?7W;oW?ϿÜ5Ij\y+_$ն{Ͽ3 ۛsÎˋ3Frt2矻ûm.N?#T^%۟tBmy-DZ%+ w`YהljE / tbjSФrX- "V~( pUaY xw* j5Y)rMeNWLyN/,ԛ[ K$C ]fI)r\2׽2F >?{C hY"b17^W+X|Tsz?wgM.}fyxa%||{?ҦLz])D6w)D| 5kυ“d `y?z t_&{=vַϟ?O;eOslB,>.>DFǗsMbl_̕DZfFw33m6"F: 񁊵v(5zM@eu\3^$N*aRښ֔YpZ~3M,ij WOou^*#'eǏ{n ܋#yy>o>K s}}Μaoӟ͸'oo?`:j\2|[\]f5w_i(x~R) Ca=m|x׸>raw%w^lN w< _:ާoOTR -nD5υ+C&UcٳO7Y3&2r*VJp F׼џ_X׏ziLY8+棑qΜm{3srZB);jǔ4\5u + )F[fi{eBfpp!ݪc#T8VA2&hN5sBNu^肑b\rUpo@. r5 &9%wpAHdridSK$l^>o}kީg+/Qcw"OmRRց I>A.*V  %WT=3Z`%b7!_ 1]Ȓ7%%J_/9Hwf,SI*]t@ Oq+QkOK<8EIwTbCx_(u  t;(S!C> 6PJ|o%%l.cAL03ekZ5! PRJ Zw%< n&P<96[f{-.ᧄrSb-'XLx÷x!_xezTaQi晹jHe>׻Ge?/ɀ$`0~^ y>e/y8q3q͜ ve #nw;Y TTMQm\sҜVGv^!y-?6e%j-+Wݽa|3.ai; ,ڹ.7j nY`Av /\Y0ֱt4]}ܽn]04Ƅ?VQgWڵ:5+8%dɑy݈_]oaE֎L(meOM݉= 2nVsB!qށE]}uh >Fhw' m8uzOJ{. MƸ5ӀAqOF G5vꖻ%zXeXm5>i2+V֡݊9}~XR}k_jbqG8fHw}mAV̬͡!mܪ#~ γM`o1z(kF?m٬Vf@@\x$9j ZXɎn J5/1ON^J[98ʌMhdZq=-gA ΍>צhLdpwcz ;AEgUNV=X쳊ٶ+k*, bRMDu[#,WwNU |DO&sX/Ų ,8odml{|唚c"|iY[q >9W5$e[o&+)L'v̝44tq4S%J$AlV~89ZqxnM^IB-Q7G͛uWT_p4$O$*T>Fr \,'^@s,UQRl P{'by u(ɚurԞ!=&{P$F(@ hǹHp:9[FFo}>ܣgzvWB1Hֹ\woApF]}|c]@]bpGES3FN:}L!+ %~M=RcŞK#Xul;W8cswu]6 DttaOؖt]%ۭ=peǺ!)&YiX6kX!1$=E2+u6S$YִtktL4ks^.n]EQeM \moݷx_cvk%\_^0ka/3T$:1bA T !qs݌zz|b^BN gH?^It/"҄ -WLoh Ӎ-<4GY<~N/;iO P#Xi!wݭ# _rYN*fYQ(E4|Ph]Q:@j@E'/J5h4z+BBH-''Ϳ_el/.efwuի{=cO/t1V-< q4rffȖsl63ux3s8ZLDYxeAB]ϩo kK{pnn) 0@xJE(&C\g+qi၅H/ۂ9YiXuaXKU k F }Ӧ ijH$4UMz|V~W.]6u^/oq\?udmeia?ݣlAaAHX KM`+"_I4uiCU┥7:|H6]-f>{)Ai)$O $VLs`ԡS~s[>jlRj{a{}jˁw>9:-4NJނp*v3O#qf5u*+6ъqX8˧q ň=wrZ=+Ou8;aEZs@Vs'yؒ7Dѱ neANnvWy]ȭ +gSf=~G//GƇ2m u1:;3`YvKi/D'+3}r޽Ï[YyU$H.$Aghl^*-I Bݳn  /d)~gbBG-9q qA~^>s!C %$%`e@w!q;p%l-c6YM S8 l3!eRwL&]V6fÙ$U nZ2jwpv,Ih8 Asrc.AJq% yoZV!353* ͗$$4BD!o dHdwcw`ճbJ%ϵhb(u|M=cid.3ӎ 65ug{}j(iCoNcpj7BI"yzce룙O*Ӻ_OlVnW*NCלl 4NSa Z;+u9!ډ0aD/sp z-wE4ٱv~ P$GeS œL=-L#J^Y9!&-!FMljӝN>RjP~F×A;"0)(p&YЩh0a,b鳞ȩWޫ~\ᥣʎ\Fj-5qVcOIK@v?O9Z1 0dbk< l})zHrfarAMpbup.ulVJIr H]Rj̟Z6AwOjǤg,7Ǭ|5tkjީYZH)h4Q^3H|nK uSM5ڊu_fԪd)X)O%|l5,nlU-le =o'֚bsAwD# IDAT7ϟ 0DCRnAoؒ]S (9kK'ZCL|D2(<:~.o݀ Jx8@C/9-ߝEbt)(f-CT}=pPS"\#~~7W:)M9v0H̱N` DLH⿍4{7V(&7q.I<+!vOjmX.duy{KY&xrqq>pm>qY :Nq6Y2.u*K2P*SHG+.8^۽+%:Yńc9)!%q\o Uά4` 9Y2cVoDmfSf 8@NNcxZKeCIn :BU!UTې" (G)y%  E!:KAY4& [QQuBU9Bvi^ x6S;9,Ů߄G85<*bv\ۜz9T]viA&rlo1/Ojv9KW{efgzv r|6gs``^ڨϒ{Rj(܉w}wB[̌v~JOL .K1ɐ_}OO ݽ>9Jz`b=@+ euGB m0h Ax zo|+=̫26ͩy q ^ G\۱p}X'V VC< YI2dXg-E-D{&"կ~hRb[^H%*UO{h=&V45Aſ)rI٭?RP+1q)T0EJGϩ)Xp Վ!+۸!إх:+R^ 5Jm`p|\/z/D<}/o[$DZ; =jSfz4]NGTD[WfF8KkoEp˃ @A`QR[ PzsmC$-:́1T a [Pﴡl_ qcY(/[c+{`Y0ۨY3vXJT܁2wz>~jd!}`^'8iP`g/ü4جu;#J%( 88&UeN ׯG_ sġK0sGPbi%1%sZ>yOPބOIA kO |Bp-6k_̛~~?~a0/u]spL3ל{-rV|;Z*h#;Cf?r.o@ZMo*^X@Ņ8`m)gIϒwt{ch% 2syyӆ-U:̟i5.@@*zQoa0g+ƃG9KX<@n 7 <::_]0S dܷAD"Џ c.\MB'}Ĕۺ#uJ81cѨ`SĿQJ1 »UWޖ6@4`kƶ 4*)7cK *a.qEb-%7I< S9D%֎xyHSUd0גoٕTZ]>JE"orד/v raF;ex/>8 w-%R0PH^8+"KrL i$q ;Y'g<+rPĮJWy]}.檤{{&lW^]!@hLkmm{O$bڌl/v`P `+9ql! ɪoW1'7>WrdfH/] p3=0n$SJg젮~,v#i?\L/J@ZwtzLɜYg(DƼSVcsTU!_yOPƟOo!Ֆa_u5“d 5*ުC;XL)fmBA/PxpǥN k+mmc|8L';Qs,;%0$nj36xxԇyMnkJte^wJH{XH}RUXFSϲ=Y į4:uZ+פgAncu#*,|Mwg= o՘CDKBw'wF&$Ms^~P%b >t\b%*-(:.<Xbg۔IZ|(J -0 e, -a\T<-~r/cHZ2\0_ D:O~ ܡi"߈&f{VT@랃OVX4m #q=ڕc"d|V<~;?"] %0Gz4\3u)v‘/p?rP}ƔB_z0WBKDzY #Ԙ|rʓfm2EsВuNJrL#,TC.l}e<7WlL9z +gy OСϕV Lkk(gqgxR9. ]%WNFx5E?9`DJ :[O `; H<-zY6-^8ǃ|'KrzeP2NCm7F_v k .`8A B4W|1b%Dfw,HUvjzxVZ?4'3¼ m.@PYÕtg%(,׈CtWJ+͸fQ ߣR)SML&opcFy{!4ӅU@h| ]|yQϢ Isi;,M6) C(gV$ݩõP/v7~߸#Zp)A5 ?. ɱgzVQL@cE)_e[ ܩ0y;Y}~9ZQX< 'kPY]$#Xޑ&xJ>y%n Ŝx dC 9Q{"7ƫP]>q-8`5֡DkgX0XiͳȱyOV۵gZ>&@wu̿ܯܙ>nIW= +s>C ]G!.4MmDՕ<5О}r^ZuZģԟG jM1t^d{K)/ /ca$S9T9wTss "1rrİ9GU?EÜ6=cu pw77kp=K@oxK&)xnW,nn)y aH xG:mKm \@dI=Re OBk -w~Hspـ]v|p _x {lr*:,J@vS@Tkjm(l%H1u?lb+#~6F`Trzbm}Ԝsbg5gr&K nB5G}QU?wOmLZx5iS/09slLrOmeg4]r G?cur18yg6/ۘ3Vޮ2*P&RLwd P=ś Ͷ>T-q05,d - ޙLS+)XL^Pbܓb|(l"OT7?oy̲"45[@솯6ݸoI pŨN0s2#T=*щ_ Ddג]]51sJ2dמzkwWDeʡ|FރƯ9e7.110=ֽ{EsD_~_V}$zʬQFO${6<-9TWTGr`DZwfie5:sѴ)šCȐn5E?60"Y$;xFj>ɼR;eɣdz|_$h Q+,4Tub$-#;ȟsu/! `/@_WB(7 4qmurG.>DlMABgZdWπΨYE'@dôXcN`T)H4fyj6 ~7`ܵt~QE;M^3Mj.ju=-ml{`W>miobl/Q'PVX|fS?jt˵C%[xQNl-:zx DV|HHu]mo&*ua(6ʝ8 lXAy%bATNLl۵#}2r=&srs# T@1z[NםV@}Btg$H /6UcfQD#T% С4+ja19(]p?χ YF(p Y3kh^`0^WGư x Yr8.V;R9t&XG }pԿMpCI2 ^ʒ>q ;y䩴T'DFceS9k0VB(c}+vu\PCFxk>=%]W[\L t2#Xm{@[9:$*&=,9 R&ou$%S{T{ w{xu(P nx37t`&ted6%3t//?c>c6wsk=MAeOy>z ; *r5BC Qlk=kZ*f_H& bmp#) Iiv#Q=kwU!#d0 (r+r\fl.)"o8%ں>{΁Ie)Xڦq; ʫfT?] .OCϽ_gx>p. :Fj;`orwd0f8'#a?~szϜJۗKHNge.R)t]񶽮\ZiIQyw*-#7o_ g{bq_n*#K7ЮH Pii;,j ksKwC`}w.Ry;B~7xR玝 (.1px]H>tO.лo MD\7"J7p[0=) b_N J6+y 9*R`Jesi۝HL @.s:$ث}=ƃUM7I;&7D_½V9`c`́뚸ގ_s5 9;av:]ɒ p%*$ kqFv2,w>zt?Bu*M5(R6yk-9j,[c'<O޳1@Vys[e^g)7C158ƃu.G75÷!%O#-לl6I[C>.MX Pu=ϜojHYS/cgxaMo5JM^m^YS /$Z ߡzh,:>Z8ք#kEI}T kJځ!ΣpkғCi[Ur,m:8݅-DKhC 77xfC$O*#IK5YY5H ڢޔʥ%;ؓ4ݖ4)hp.[E *ק=d[w`8/y'+= VJA 8Ǻ=,O4ua.Ha iya>֡CQPkP{H0q.*k_i{ N2p}'`ڍՈk= 1?eg|@5\jwǩ?4/Ƞ -Dcj<Q{>]y,ȶ6HC!Tn!ŭo ŧWY!BI%IDATB²*_Hny X9ػRj%{ ! Ax"HiAKxB^G33ʱPEcxfMn~ӝ)@B.,:y&A; ƈ:8 K.)2)űiRFXs[I|an=? {JJx5"Ϋ6O=c?{<隌 HTWus%J eAM E RsR|hV]pZG LHA 6T,w D]z?k) L"*ܗEU:\sq~Aw^IrbgzMl,lEk[4酰*4[WnX_Ic> &ݍG T[4"~Ϩp_"@ K_P ~+!k@"4<} E>;ذ-*PY%C0ޣi%ɲv*ضXXp-w^x/L.Uskg/@~=@-<׾\Jࣦ4VJ#B>bm=~!Z] `LrF"*䠶o2N̐lkjjYGXT'097sG};3} -q OBW ?Q V¢;B{bט0>{0Ĝ c,pg7a;>"O@غE*) #G8 A)8JF-j}R lwYe?֟ι+ &eK+snEVGbkohA} $ӼC|,Ix(AFS"e(,p w.@kиd.=!9p[r 3B y}DDN*, c2 Мx2FM@c(ȓ1$\2-|E4ԇ_} )ށ}|V) < ) YXr&T;b`rMSA i tmw:5c iFѯ7;@ūPD6vj7AYHFTVzNh\(ӿ!L  ~雥|(%Sࣾsέvr?EM6zOݰvxi "w/p-ǽg30<{4+WmL\V;ƘPu^^ǃX,׽kϥ7W-y^ pQ^IQbޛ._/@3ZCOlVZSiQH&%T\0j4:nuh5fl$ |40RO1[m}Ș( *\Z~W S32frZH[/EϾQb cAH2ᮬz7JYʦ+B݅Q>JsKKvEؘ9ˍ2pܛQ3 ThFӛJlMcFwm (I2BiIv⏹ yQ]la^[cV2\mn!0DeA++ pp7ҀSK-HͭUJږFy a!z)f c8a r\~{3)")ZX#w(,/PnP)\POvpHX>!h"-lCtWPIwIiڂRd5'.^/Xx/Ǽ@(E^*Kk cYɶ^ ]J5ג}BmSUay \  J9%emVxRxNf}x:jR-Ihd` Wڼj]sz浽76K\FmvG{_Zb|*AvKGw@GZ;<1><\b`Fsk)%1L#I%2[gG;mX@,e1Z}XaW4phVʲ4oA< tv;;N {S[_OO%VaX,2Uhr3Ԗ{Sϑai 櫵_%vE2ØtE52¸Onblz0kp)q!MnEdlÎA@`.?_+AXuM'6/l?mOqADݜgUFdDѢ)Fe{9u $HXrY{>?C̢̰br|'ھF<'ea4׌yU"³u9W0Sjb@Tf1`kNʴz#9x渣iGsJ|uLϟ=3z)e+[K5->b2ԍM:d L<=`Wv}?1:JEzlMNH)-*QG|N!ީTBZ,fn󑘥8d|BR/ܑ9w :8 ZqwJL\8' Ta!鲪o#a5&nO#Q; Y`CdK-0qBs5l  W+81uxl943.1kײv-b:_~v:|[ >ۮhcDžtGrۭvEojBIq"-˝ϼo!xqsp9W7%ӅvQ6Řq}(6(xZmVR@Dہ =pO=bN=8{뎓֘(nTJ@tB|bb;A-Z>uː|H+ހeQuW@;!ep%n m87m󝒡"Jsr`^d?xfs{X&)Z~sЏ,+``v$V P?206 7y]p&!]O~?G?s@W*ʣ\-4<>ock3CHm&<4/ωč( TIk(Qc;d\ֻPnaIxhQkx׊\7BRa~\^>FRpeMbzz< 3N@8 `C ӪǍ*ڢ,q2D10Y6yrۢi R.Ḭx[d9C-){U(+,J]Z  XH<I3,x9M0au=!O@RhiN=wwVZo=w~yǓmy7gsyd G;;@AZjFʈZ&w`ÀBʦ݇9}71d(0؅jzilʟ0Tjxik%ߞ|sB۔bv]{$L_[QJx[)r;׆!DNO~?s8'Ӽ[EU)Y3<h2f>~А]inP Z2R&֋) /DioڜyxO &B7*>HQ5ua{w͓b1bc,iV͉!v1$8Gab bcf$X i9l?WzZt̄;%{9ȱgy -Sٕ!U1Ik KPg6}7vV+RU#_7९ex/ܐvX##`ಁk,`aCaْMmf#x$׹022LzVb+e(p0|Q9a[1KޮN*$0w}_!&3) PV%/v+ѻn$)厮7빇{[yݮy,o+ ZX< 2z&8-I PhP h[{̲ϲڽwڛUe@sھoO@ 8-i( e?Gޅ@=V81Ahe[sU|,uCVrk-w[āp!dAii[{\IAk+t #K" fי +Iv'9L+` Ṅa& 3!\J;, miӄZ,',$ eUrNOF4ɌծMz?zs: @CֻǤ%$ nks6jΆyz908ilhu(`cC뙨ikMY%r\>RDv&K"fJjdV+ή3JOW_Wz"640P\ >g;B9_sAbé{LC:B+0<]/ׯӘҙ9pmC؅ʿ?B?VऋӲmRn*2Q*Ӝl)M=TY]7/9ٝ'΢Ғ)1MѭXcbo8s뎤q<ڽ"%R9|"kadmi%svqjtI%luTTz Sep]y%&(|mRy U H'ϻdVPcC^ 5޺_^ 䳘ռar84 -v_'Jȱ8lF)۰ JِhMR )!bX%$R % ,q!X),41oco K>ۊb.x ޖgb5jkL:Q3MdaYz]D8= yВLHxc^z -LSTl&.͍< NFTTqCmGx@e᠑P e V͒=bf.P6 "--߬˟V-2!~ca~6ď ^ IJ{&D&c̳s)ݺ)!V(A.9tX#=4o3l++,ZQ5ӆ(7Jw(@ hȢOq\&zѦwk2sx㜳%?|3hMh5˺P" GsU:`3 y 557@w5|a,m0֟wI] Lql@r@C۶V\JTK-ApEKsyԼVWF#?:0ئ7-k]q|X Xw~БreCC}<m<p:sFكGthKb&woc:n +5oόn9@BI$~OСC:ߚƿСC:߉88tСCmtC:th:tСCppСC考C:tF:tСC6:СC::tС88tСCmtC:th:tСCppСC考C:tF:tСC6:СC::tС88tСCmtC:th:tСCppСC考C:tF:tСC6:СC::tС/f0 aIENDB`ntfy-2.11.0/docs/static/img/web-notification.png000066400000000000000000011223651462047176100215370ustar00rootroot00000000000000PNG  IHDRxbKGD pHYs  tIME .bj IDATxymIU'q}o~/2I2DAD**(Եpjk9PҶJUVmZЪRD,MAE y@Hȉ{9#bGs_V%{X{'"ۿMA ,3g\:YÕ꯺s{_~ύPNῡ؃Y֏IzYdȿfx/%s!ǩϯ9uu'q ίITl~Y$}?-N涻Pn-ܷ_h,7|c&mm)\1t?Lٽrq!lv{sr?9?Rr=]7Mw`GV#"X+ZP3ѾAw5=;Dh}t2ΆlSy8ZCT[Fn+{l(^PC*UE&{fN,eot}^=Ҽ `Q=9{~*>dwdL}'NC!L¦H_8MWG7oMX;nsv).FӰ;M]otci(0,ʭTv8s@9v 7"N+AarK,W5hsό>H/}u.iykfRPPW>$WNj5ComO$f4H0< 1ɥgpZI k:VIA@u%ZP.:\%`m\L/W(n}6gi` g A FT7o;7{X*ST}& efY(r`ɉyod3Z]wJkZ x0ƀU1}Lc`s,@GNG(E݂ x{3Uڕwås+u8z*6N[9.$bEahM3=kml5POrNɿk[ c 3Ν@xhhM]4A4G/%שܡ.l4VA-~dZQ[CT?94`vE8%(XKrFb9Tph{m|@9W۩͍s.u(Y)##^|6<>b1/` 62:A}=g {ihHu1X,ۤ쟅"Hp<| 3Mp{l@awbfusz0Dlfh0 P∱M,kPkk&2 Suk&F-Mkmӑ*QƣUϜBv&lK@q69q颉Q| VӳjFh{0|fELf$]x$E `+la4 Ɯ:,@yyܠ InrgL0:r)|xP5ΫL&z>~i l_7AksRf9[=! woz[eYAtY֘Ł9T⥶+t1 l;7Lap 6PoAemS.n_ϙ!I,MI0IOH^{e;p)k3!}+#)xsĝc8,hӥk_G0=Mn96b_iס91$y+2nk-Z+o#`ښ8S Qt d}M( xp%@a m0]QL57l;m$Nç%\no`2w6J_#k &uVM \ 둙?v6Z}:6WF(kB7/}҈@};+5V/17 ,:紈6"c"PRY^3}Nf)k;NQjUJiz"QT*ʈn9` ʆoES rFZfϕH;TIa.,I N@fCFZzBw)`ǀG`.%0,d93s38VhL)_ʔ&PEk;u;֝B(ѵC8ȁ+Y mh?6-3ȀFԘҧ -)q*#aDOggR} 'i$ KpK!H&y}:@e(f8Tc(~2N !ӽn}JlxqA8vx2ZltkxHY($FH25sGD>D.KrF}ǩK-+;>/>)w\ hjJ!hWskHPZfgh~ځWu^{PNBdFYL{$_3q(0B Jj:`J8Iz捊)kiCR_EaGhkz(B (#/+d,y RTQmz "8Fd̓gnkSL/@uBng$$mN|jdiRJ$yLHrH !AGU V*8HA.P%:Pn@KB_=~hL5E@S|H2gjB҂Q!YXC2ӂ b%݀3,fdw- ͚,= &fJccyPgؗ5wW}Ɋ yzТӓw@(? <&ACP?k`[Lsq5蟾1*ugacnֳZH(},Q:ɢeM!ХNz)ZPnpf9'UA!NkAFJ5:-9FUȤRiӄEZh5tˉQ{ʢ㼬[ &F!S0ͼZk |V3lQUQe$v3FU kTճ'(\TǓ|F_s\=7mNZJD|{K[)dO]G!K`5H训iN03&c1F{FKii;ظ <_N$,Ymϴv4c"\"晵 ۰&~z'޷la dFlz϶`Ȍ`L{Mk=eL46*pȘ%4\s\ct {l\.=fPRH/p\rI 0H樞1ݩ@p`X". Vn)o惕 z^IKP@9[ݾC=a.Yӳ*)^ژkPsͳv}I8a1<#Za*.iEW6PgˤKSZ)f T@}uZ͉_A|r ،ըbzԥbA0 *4~:Ȝ(?O 8pډHđȚܽuOTڰhfDM]T/mγ=0܁kU :ݘT] QΚ YT3rA+E,meڲaA3FC}$ކTnmO"sH"b0FCg I* )Ѳtaw m3Zܩǘ뎺1m=\ؼ=L F#ellcuy)ԟ.LǸfd2NZ.lna`01&X[]; [ +1gI`c[;ocyylv!vvyqSE-cey Zl^]NaK8LX^Zd>dAlv'pexy6N?r<p_Ν}1%_g\y;GG=9@:‚x釰7O= |9-me/smv(;q+C<6n]ۿϟ:~of2$Z Yݼ^Yl[@,K гg(s7CӋ\ц !5F4Rm|kQ2XfBY[kBh(YNbhT#4g(#\߳{NȑA (jwd!vc+guT')+Ihőv֪ϲ JtQk ٨?w*" Ypwz*sBⲶOid?"dڹ0J3%As ; GB]Xh^e*K@"4)C ICUb*LhNjk.f SGV%!5-"Lz|q*C4ʭ!b#z&Yuce4q~j~Ĵpzԋ3Nh PQ 6܊g, ƉAIεf lٲEK{ 3pxx{'Ug@ڕ8vE{q886/na++X_9]<;VqQ?Օ%_d]XX'r9N<_Gu;.r &`}uKmm[;>:U,,L=Yvq9g#gS(_q5{[8' Lw_/q}?ұ+qY?ͣ#ڧg~;٫eg0|ppm\vZi؛7'=Nv^{ok{3S~⇟}GcqaDT.Iq~ >]mH$$e;VbH `7GHx]q\B%&=Ep]}R 2Y 7Ykf(55DDŽlYAyr}}q8>>a=+-S$+VK+(8N)o_Rihhַ8u(o[q ^ِtV/\o-Ԣe/O^cG<_omiIoD(DcAqX,k5ro0O@2+k,2 ˘vYrҳJ!\l%|.8MԮ۬LL!BZǔFw`H>@+ G'ӎ(aעEK iCj-%C !{I\)l2,*x3QR$+\ $)8&cU `!?ڸW_JSܺL|CxO݀ 0cp5ߋW@86cؾg,i|S[xvp0Zf`8z?ngWok^qx=o޾ƮG_MO“7G>G>Vkx㞳߄oӋXڽ KxcLƣ(+ߜ~= ]4CW8p#[ނe7xO~3\\}#>q'xnw]c{6&,߅I0ٓ {<ϻf o֟+ߊs/,}[8vt ˧jƸ?»>\F"fHײfr'рlNY!(2g:MVsTAm"UxŋQ𿪔¾fum@0-u_nR"t3Hݢ _ZiC?8xȧo2Rrn(m2)IK3 HԞ{W-nINp 30&O APb&K%t[(5+@13V[-OqK~m&ns`҈7PLXST,/LNIWeVK#3 }}9e+8+uTUr=2I=υ,_qQF lR\S[իE1JXpl!J 1W9ksW,bFBWuMQ'ik/gE؛˘qzv$8P1kpҋ5bEem~B ߬Uk*n 4> kLW}dCX>4qO?#q:=\c){+U-iw=l=vii!+<Օ%\sY-{߂_|Og^23OO&?KG#_D}ۏ pi!G IDAT߰4hv6x `>,\_; =_#1At1m76>g|w[1x,_=gpᓣq{po)~wz#qeSV>gwX8"UFsif`ڝ߂gcMR81eyGm[׭%Km3zXAiJ1-5N=cuu(άwm%PFw6Ԏ@#0NLRPl[(q20d UDm[w*(`-Opd,v+_Q1E_ -Wi(^j nVNStj6;zVi, 틲1@f R,tw%KX[ҚI܋O('4Pq-j}DXۋ6L5 {(*WvłHhɉK)"Q\tP[eV6\]*řBG_ ȠDݤY]TR[s ],Yݡ6&ޚIݨ[O4 <u^ )@2, 2 paQf=VG h\9T`9+[#U祜7TZȝr?=L9>gq2ƏW=~C8Ow;[cuxO;^pꙸd57_pQXhQ08cue 6=cd |ү`i1 }n [_?d\;_U< xm=6Nayefw<՗~=v+7wUkmD<=o׌X[.{ˋcxe~ 많`"]d2x ;x`|X[,VWc%~|?K8 F#Lƣ|/ñ5ZBԗ.rpUcE mg% zuS8AY׈K(%(׉-uu Vt6G%3NAs6ƖȪ%ZH=CW{ucmk+bFP,ėmEyvn%@}7Vn_3mJ6*3DqXh<)UZ-=)-5T6 zQm]tܫs>lVj D;tzH]^U[Ke6.̲BA鿃J >b-{\B X$)qd"d2{x߄|q OW=IY3B<؟W?e"kҬh?GqS x,*XEMV7z6`z6^/_;8vW{-Fƭ/⊫/ F#iښϝ~~Cl0}f{}e\w$ߵ6/\_K:+w߈pW;+qKpw\\t:Ec-Vݽ|aɸꕯƫbЩ8}~|`ilbY7`|7??? )X[]"vvpur>>} +KD ںŬ5wPJ{-% ^q6p\3/MZAGk;!v '%#.sdԧo>LN6:z sb8Ib\"|MBv@J~2k4ÙL)5+ 3cggz} >߷q[O &f"&g<}IVM+!J,LbwJ=˚"nF͹ 42 Y&7J|=l&AݷN`Sox$ݠ_ &=`eHŎz68gܤ/8#UP.R= -S{8'v9O՚ *[O ϳR G࠴qM(lJouQ,1Lg)A9+-bʨ1D sN )ٖ(!6D0+5^G]uk陬}Иo M^ka 65;>1;`[9gpkso ^zOc^||׽_EӶh{o&[-DžMs2|X"`=xK#t7 ..atwzDX9US`ԳJF"S k?$IjZzSދtaq%MLx,bHT2PAJ6f}xWk}F+&T@g+E { mV408z5svYZJVe}xʳW-λ(3=PY.O2?J[2j"$9aq `U@MDM3U{0.Wec!\f{?4Wfm JZ[NQ ,͐zx3Fv ,sd$l6S!LZ/f|Zk9 ֍MBPOК4-e%8'd%$k 3)(j[6FLojtbgoITE4kRV_Klf| :ۛ &.,ub,ߌ{ikږ$t)x|wvOU,-/ n;s# \ >\O}j ^^ҩ;X[;˶W^,É X]ZBԺGXܹsm͌åx6q6G8%ǣ6sz8#/|^~G~ oz`Ϝw'Y!.L _vCh GW`_u3gp&ObGKOWmnp?T>Wg`?Sxӛ?{,o^-c<U/R0 X&bѼbX: b(ү.  g|(;{3\_= 3yTrg/m GA`Vb?ZYNш09UIOܨ}tD< #N^ HFb*wIXڤ AJ>v^j*Qw$~d|=nm 4͉6FǒѨaB NF糀#u_#!gdW/2\vCD<'oX`$*˂x`끐P-YlS#zG0,^)˜kx:+uC8N: $͍,k&Gld8? AdrR1rZFB|jWh7B䎞LňHFP#j8Ӛޙs&Eҷ$Y{yRD5M3}XǎNiC'Hakz9Wr9C%Īݎxx'/+^z S12q[>Gpߣp^߈xq Zkd2[p_e'pmǛ?m NNL7bѨ1x+G|?ݷ~Cx'|\OE^E/['+̯:kMl,,0#6-I9=bsk9C/=N͟Wg_OhԺE)1/‹jaؿ=!_;+/~1?X,P{=Zoxoʋ 3?o|5r.썱K$Nj\sbp~gf\\d'i,vp1'7ֱ;0V^ޕ$G@c,xlp[;/; ⡛߅>9<| |[|nje-,~Gx'}=듟}GuO`O?Ÿrť@#..9(($I%=k*rp㊧ڋ{we}ZwJu oB̰d}9 eŰʏWR !qۮcNQk$łC]6+%VR6SׂVބ@g~Uf2{(_mtHsਜ਼R{7g8~wݏ|ZֽZd܎212Sm;{xvv021۟bob<`eyGVQg2͔>XtiaaU=Ӧmrq{G7ְ)G}QWׅ}|fSC챤Յy%2ANxzUg0UE@ UT?MGc=/egeYNӚrF8;SOzGbIRك?2QgMflK>LXG cͅ A?u){!-UËתQsZ%2ϧ$!ȩa3ľ9 hl?(ol}ѝID' קsK|/{)9VqgiDk-7G k0C0g! ?tlՐ"ZqV;6DYȋA~N)\y5w?ZI3dAArrMᶞ=^Po=jLbJiLguY($&]4B ¨'x( jC"OM{R;eH Sm/ռMmP8,LbJg- [$Z퍅q$5ֳXʘqF4km'\n>}=-Zf*>Q\վ[+$Qe{f˃tjZPTqZTD 1gUs"K|QeM{ØuВ &9:L3)HTdIЀga;l m+C:QmED.,P[v5lS?b'OS}$fss?\GxC h^Ng5bgww'^!ܹrˋ[V[<1^T;$pp(xjh*ƽEދ hoUb 7̽Ϟ H ֋͑i *-U -G=]_6.Zx/q˳7N'4ª(2ը'K_`V"O%t_&~ ʴrnd,OK7.5N2AoQ%j3W.F3 D牑ėOʼnuׄkmZ>k>Sf`FԚF͔;m$L5Q 'nDH>7sĜY8̋<*{ "}@:5sIw7AiVYvae-KHu[z838C32+HU{;'MZ~Y N89L]a+0' *&]̈;g=Wקu;zHB.PQmY(k,5qHP43Zh T<:@IOd IDATwi[Ur6rLOc;Q.JvڛKC} Um"0uH !!P)PkZJt֪H!3-d85&'f*}Ήuګ68 e5.LQۙ0n=qIe.,)giͥt,Pᝀ6?[ۍo(2`KxZU$WlV9u3zw@ִk@I` YsMYmSU:9R挪آep SaKH?uylEsz:b8"CULBkt(59 ,)S=1)T hn=bPZշ.RʱkӺ6MV*/Ցk5pq(ڪ11Y7 3^K 4d&0͏5:ZC`%=Vd #=NWsPG~ QG':UDT}"[EԩjQ d9D>"+ߦZ7Hd-4 @X?#7#P=}ԯchkW0nUJ;<}sў}QV[xXPRwofLNOd RTҥ(יwʟ\Q3wzMYնؾC>CJ+ i|kv>t{ԓ῔I^Ŗ6RrZ=s:7>*7={^02hd ɵzŪtŢHj2Ze[`**Mm5ɜHec5[βi֫)kzx_P%= -W #8l1er %\1}q}Q},2rԘ=;Gf+Ԍf\ҮV:,Ib2N-SeisAAf1">"6Lu2$ JqM-gjXagR"aDylߦ$JylN l bS1NU>~e!_Ox~IWPNR*akZ{R-CHPZޮK,KS d95ݞ>ݽ4Jp_J3[MYs]+erqge>PCɜu]k{aYݾ f")JV#ݛD;m&&XJ;n=ΒQeBHUu$@)e w ڇ’ٰnW8HSF#5#K7m'b 3ő,c$Ou(VLEwNb @Э9PNaFWK2Y8.rm;R֦r5Ft4%T (sЙ#2ϭ"P1 Nj+nUZ,M" {sԜf6m\0HhCk R:bփ-(uy*H \H!ؑΆQe'^fE6` ^P6sˬJݑ|]8bBQ1 #'(ң@^T/ZbF>l(G*21D cvPc'I@D21') J5QH,+J?Z03eb5k\{OukJNinIɂ[f%I)q(Qq{,VWR~dy70X" CF/(?k~KJ*xA1[ 9\ЋL7nSgZ V{uH/TkјQʨSg4?$N" ɯU虳ց:QRK[2_F~Vr<ʾŇ\/9rV}VM† NbRݻD4bҿ8OK/fgQrb5=QR1Ҕ~ٸب!D1g^sQz[k(˞6RX$ػ2̣%c{eztKT;Q"1K$3'D{PCFלW(m$YfDz@j:ÝSk ]A,MO\2fzЫֱeɣ6e*q,DP(MD iP03ڞ}a,ڗ,UZMI#/42뱩w":EX *'+U)k⳹560n\Onfc`zOEBOT~in/3`E˜L@NT?ke3ZIZWլ`%됖Q֘(J& Ë˾$5 ge\(ŽV@sf)t,L كm͗;%h"|L}!F @28gwѦQ* ޞ! IO4$Xلl;JB+N=l{"өc|\nNom9}Ձg> %~,Qs>'q._kG nzKQ>G uЋ p@ H+Z (Ru6L}'9=${A_b] q/fzȵ * hu(z !fkUFΊ1bQF%P5"2% շ9u_\9mg{hB6ZQo A%oŔDZUF΍41*\$YU%[ֶX[H}Rӥr4:vh+HUg,@g& C}^ze\(C8☻6I|(v*V1*\P}쎲R<^7k$cSޡTӅ2)ځDsэ{HNwV CV ײijMS-Vcqʯ1*SkHRXtERɺz|V*R$V_KB 8ĘE]*4, Y(EZo[O5D #e׻6ߒE-WJb%tInZwh ^wE Rvz% 0ʛAѭ{CeR^zV Dzl}kjUf` όm\u&[h/׬gW;5G] ѨeʲtȈ~K ߪ ઐ,2[y A; sF.*؊LHUAtYU@ǭAks y\V:=α렺e0*dl1sf*̼ƳeruFjY VzvpLt }rȯخRva/r#TޢDpUiy1$V#z|ɾk,0@ۗlڠYɐǙz3h=y-f>cg2pOhs+B!g2xaBڠ9Ӂ|٤_]q=zpYS! =z)Rl(;*iƢtԼV],bek5 H4HGR%gȓEd9m1ѷT{OQZ/ejQHc6bY~xz(XSTٳRj<jʞ5ZNnJ@W:VԼ}@ۏon[ɫ:@,qmdZ{`ַYȹ ڪiձ(Fj`dPݞ﬙N6{,@k[A [UO6t >B[q0FͳjegXiz%\|]f[~rm#5JҕԀ6e`uz*hi/JJЂ澜7Qەu]}ח׽RJKu wYJ}id¡rѧ6^)5ÄR :aqMeNChkOhzBS 4rQ!YA9duJ ,Ko2Iِu,mR`ͨn`dM^QC"YvXd^Zjj4Jo?nzc~̏1?ˋsoD6^L`@NuesSB^-ÑCr.hrt;n^ڼ63fi )SQ-6LZɢ7MI'ht=\(K0ޱt1&* MM׻ YMpU^wMOT3]O)(b^w- .B 1EYeaIe,+8<d!ԍTs_fK, DM.[}2N>7jm[Fya.xf,ƾ|{Wu*yM؀]6w`$b9I6.\Y1 Ru o";VB~'?}7lϭc~̏%z9>uDlP;MZpS&t1`m|c逰'w m̬4LZm_)˨/%vR%bö풸"=@'X% }O$iq7S,WMfU~_{nd78T#[ݿ],-r m!3CEiXK'TPqS.q[ڧR2 w['i{i9hMվb.N2s%達ƕQ/j| ;Grk 7J[ $܈~ai/N?s:9" H mܬ_R#Vu"U~Ic~̏1?v.ڮk[U=S&EU5qBR'RcHJpr-[P4K~};"]WGQ LaAK,~__Kܢ cNVb@/ d S:(%{Pj~)b̌g. IDAT~<f:T^J[bDAɎo wt8e~\5{j+%XNK3o}cS\K$ QXz *|%O1b^/f#st^EP5sWPf~̏1? `+j>Y{Hp( `S8eb, ]9ˆ&j[!w|5Fh:XSGd^ւ ک7v_h`1QVʠ246IA6OH9,ubEji5!sY yG{ckoHO d0ݢ6Rb Sl ("B?bh)_nS2ff-SY;G͐w-CZ;Gq&ۡry1[6k=4 A?.9|E+"b\Ώ1?gh<رhZ@ALygvX#:OZ0cdL8Kd>w8)`81ШcA_1!q /h;'{M ^0"{#1%rKe@gO5o47)QBd'u6J1 w%$S@Ż]R̐sy/i;e2s.5)*#)JU\d;K^ZoUj4{sYQԱiG٢ε^>CxDƫj^yϦt##Փ4\]?]hOb6&xW`gbHr~̏1?r9>'NA ZZ#1 e05.#2 E!M&|zHG8xoaLY_1kԦSΒE}d+`v}D5pbH;8J>rv4jDRCRͲt)8؂װV \!c~̏1? ӏhKwSl:AG46 G?3zMRyF @X"1rvc8DǽoF-4&QG+;qO@p jZ7(z4@T3Et#0F`֯f?o<6d M"eӂ erM f"kВ]#}+Yۇ.ix~2W|wśoymWU&77- B! MP)T(PƧ*gU璘,D)(Di H#]$DҒ77ͽg1s9' JȚwgךk71'` r'~SϹof2e,TQC5A*8dy݄`mĠ$BGE+g`U핑@gQ?r0i}eJ=GI*Hj\߭+m۠,%eLbEՕ18ּ'U@cYlY/[ٶW;\f#z Սky4VQ#Wy/ZV YեTKL#燲f6" RR.'Xw ZHM7(} NqHfGk[S94俻ay^Kr@aoV/n8eqw.)b:tڠ 1E\V*9$JU*b]h.[?[Y6;^4,0 ]bEЄ}դP;l9&wmL=K@M>%AV/ۤp/o.sB8]X%UsvTRwnIv'sȁy66Rj39 ۦNK_9\ rSItw<ñ>/^ۓa8xg gsF-cX28)3gc2ﵗI[RIńgUe(ChXRupKBc:)^#`G&:+ xt uJ^ YΨ gaKV"CMqb{:!sUzܶZ!>tyz"tbSX4Zt/T)9˖{LYcݺqnf4*jQ,2b9Yn@۷ΒdSMc15Ih(oq0~^ַOt^-82jFp"^p`n¾ ?ilx`?.5<w÷޷ |[6~59Ln'm!8i+÷w.xGLJ{O;8X tǺT}Mde=mRV9'M>sPf !ӥPIu=0Khѽt19Co ڥ6 o H:mRf~!$Q뫝N@\#cc`0h,3GIjXxs͏ox$'oe(mxqKވ7Uixs#o[s?q=q?Kx7``~?9#s@߄=}Y->ˎA3`}57Cxϩ '>exq_]Rspߌ&[w =ExOo/ؚGܶsߍwuz/|%^^Z㿀kq}^73|~#+~ozWpp8v]Vl2X2(?# C6ɤJ<ZYϡQDb6ξ5bH=G۫GEb^*12䵀\:jDџ"o'&@1I{JFY6{ Ҟg cW`4 .U˭f3FJS)h$~Ԏc%2)eO܍9YSvAPgPS-xiف0/I&I&pr"/3$Pi{lڇ .(njݔ#'JAje-\Ar.FY89i2C",\Z3s1gn[2( t8w{ 33gkOߊ}?/%(̖qå%ŲxCq!x7o?7'c}8gs./g H0q|~>a᠓Ga]|uXLa/^mȿƹ3 z/kw}:toy/㼷)xIoG?KNg<'Z9]2eܶOB:#e}Fso3@&,IXhJ|!(Q2^5U@np!Ñ[-G$yi, fEԄc͵)asEz*m$#\@6z3WLV\XLi >\w 6F&iYe "-*@9Pi7[Nk Zg )N $"oZ*aÂhATrI)Sm'5Oۜk@I{RPm$+t:*%Y9)TY~1*&#E&ljm'B4 ei-!evsL Ffpv>HY4F L@ęm?g?{.z9.Gއܫs놏xő9!x3pƙkrsޅ?;g>|`syL/{ >p}rg gt7p/K0x{}HLq]v.N9]2e }lhcCC~ }w)y dIVIIp.M>̾:ueiR$#JXN%Y &&t!3d_g#b}&T%Ӿ74ygn%B/V򉅓Nbn_dI彺s|bgeLFaFkR1M)nx$/ByJll)CJ_ϵugʋތ[*k9v3LM>jr*_Ml'C[7c9۞8r!}^%O>Uwu_Y+E6U}s_?ů{>?k:5f})_/_qK(7Κ8|۷vr 8C*ǣ^~U?([KM3].cX2n5,㓩 0zh?+YVN}Fč2ms>Ǵqhc^Bj_,REz?E0d?TQ_āZs؊%g:X*L—yk_v镠`GTEYn`1ZRzga8"p*j^<0\ƠQb Ә:3NXcDiȼ%[D䠥 &dzXnA&Xl ZN,A&7$w䶛-ge6f6o "S`sx{nb>C_kۘNnQۿ`{ߏiO}pc6 Ii  uq8~l ˭e,cX21n"qCދZ&{Qʟ/v+Wµ=n)k(?ߟ֌Q~*kɲEw|/nKUUJ6y0\%Xҭe-v>^mn9vtqM<#@M\/=7 ل` Ue ARREZ/9bͼ37̉unG(R!WjV:zJyu#gʸE: ;9FI Rk#n'2YJ!VD-s3ꁤh<37[ .lg̭kSwEy {>;1؁O/ N{uÞ{K=x E8^[غqfפ/ .îG~7⬫w'/cVػo |xs~߉sn}?.>yse,c0,cQ-34*Q;1Ub9)yn; UiղʳJ@tSmhg d_$Hẃmc!1>12"} }Q,P`>NH7dLH[14KvFpq0)x}5.A0koljֿj/+8a t$ GN$;zH&]M65($賢ُ)\6;%~lK]^l{ c'Ɩ63NڀQo@JͳL R\ܪWխ>9Vyo {MQ)5/<5My5H{['ӭ?o3NxЎx_qijϼֳWzN˿ ?t'}u}{.xC'سva7].|~0~[X|%:pǀ};0\iگHdvnɴlz1MJh}`^&ڡmDKAH[fSlc5.8;o-i)ju'%}ZÓ_x«~"de,c˸]^S&nC Xx( elDZOlk|: 6&Q5[Op]cA9}:O3 :'b@>8@NK)=jjL;yl)k! eA)#WvlNb[N6=.S5VͷK`3u1A;- |<98ɦi`33c7g.{n*",!3 diWic5b>ey L3FL'jZ(%e23O7"T73DF@RzUskI }b^S%mDuTqQfΦsBpj,Eua2ݻ&uUjjaɢ)Tв?džZy%m+ѬTп?9bmv pJnap Ѝ^5:q]B+AI=UbR̄ygN@QUz3g#VsعGZ J z/"$] ,SX*Kp ` E:uA٥Dh+ 䤑IzdQ@օio4SʵSsdO%EnR{:q]7i97>nxWCko;룿8M2cpu q=peSgM] \2;A+RVYj:=mkG "X$j#]Zfck$/}HhYK8yq 0&'0GnJ@Z_2D 0y޴\p}LkBHm2 ='52ɦoU{劻-A?D71IQ4ETKdKԖAT \&"?Y}A=8Tz9LWqx={[)J8줻b8lwt s<ғGye,N>q2F8Y{+v(]0,c )$ 5 FljcVqtLq*I!-Zn6B@.XMYs|/gWq"q0PhCD/k)8SFǨ,dߓwrGAg c1cW < hn]yHK7mJk-Y 8]F zNw=[Je[f*$\#|H(+ 7"/C6sǖm祿{dr>u6 7ƫ•{x^`rxpn|3οƥW=poKᨇ/xrwse,c˸6ؑ" Yjeߛ 㘄nB9$jŗ8(~:>,nK0{JymYK/z.5Z j{N!I㾌C+#:PFZeR}߭)=33#&=se+ Չn'2 *l?`>Sx;rEV#PmưPqt̨M2V* Db,tuQ""T0oF`J rz z 6ΛKłPy7#}yIw^cl<[{3SS^g?(}8hW/^Gr5`k2>a.~Ǧܡ^Ӯ\e,c˸V./,[JȖxO )P Q50f3{K.AIh1TrlGJRV:n#5GїID=8@BCU%WZԨ**Ap [}䤤JjC{v6/٦@(S&2)ڕ()Gp0cD\:^8b~,fk' VXਥ.^Czf}2<& h'v\Ú%[bP  rJ}){{խl,l$ڑC41 ޫ}76pK_br+f\H4y)4`Ze*_+N?{U'>u%p'=}M!x^Sߏ{Wwq5xϵG~Ύc:rp#q#r8ln^}e,8,2hAގ>=)=Ъ:VWT-GU,CytLEܫ?C@A_Qy_Π]!'v~D2ah.eݒ߽8Ykb%1„cQs` ȳg`P: 'i84K_%q]B9ƸSX9_7h,:n +gg- D+DUKFU}/EVhvA!4dbIFI"bTQ}!7)~bF+r\Z;9Iz=R ApL4UxZ%6\BiV"f*gً5 (չ!j\&8䂿}*7x O}g뺫q8p{⸭8y?8a muqk>w8xӞ!\ Y ~@=vx>~qߋ1u2eG)@bRDۙ2EF"fP#$!Xe /9`dl cиT\w&Pf49O@87Ds^Ȑ4W*TQHa a0 :9dQ< XY1tK?5,eտʼn\`M 8Za9=nqJP''VZZvM\y>R}nH +sz5U_d}'q 8s ;n "w#RwGq9a׮5~_}nZe,c˸JJ/ )=Gy^H !83*jUJ<j×Y1bOb,c3c-t{1:_$0w)ZOv )%ō>f<׫d 1yK< pƒ9N YL44J$F1!JZ%&v<{Qu/:7 y=%C+Qb( ʊb]ӵtRv Xʩ;9KtoH&w#;^ٯDRRm^CuQZl ٨fKwɕpkVx{w>;|{f7["m pŕ#n޽DWX2q'֕" "3T@B:"+X!1j}NXF=%#DZ$9F̃ڒf,` 6~=E{5cc:lT&3mH(0OŎ Vο_#nK-X" &m"9z~J5=A{H-1[*EJULzE~U=bSڑv7d͕3?hf ʿM{G8inaăz `h )fw 䶎vyfT$&yv&AkDM4wq[Ч_9(OfuӧӟG=ex)>~͸e뮸/\nϝypt8~G-{}ܰ=B\w?`qaKde,c 8|]+N[8PI) %/ /DQP E62`Ǿ#`"¾Ķy\BY3,-q;Ǘbd4c& "VD&V 3pTe%עQ$kRXP< .@a:Uvv4kgm?zkP]"CPPZ(u{֎WSW V^ h,%\%@f: GڦmkhNBͪƀ<%#Vd*H j ?'S$ Vm(F:nqfItu)q70Lsʝn\w$uxM³|n{Ϻrp>Cma߂7_t5_ܰ x졸ˡ#W~uNjX2ă@hs{T [$_@RI, G.'z8>tȫ,HGXjQīSSYeI!u*5q=b 0eU}M-5 @rec c,r:U1GPyAV~5OUq30clIm_DдB[FשbA%^)ql{x& i'ʭPqHk;mRa/"媛?p*,| Se5Y3[s[7óL!lpcXLne &UobA̭{P&CzŸq.O䯣ˍx w[Ju{o_{?\u-cXƝt\p_~Ij'r~dPd&,h<c* n 5; *,E_YSGxSm8݉kڱZ P>+1HU2ςrh2uNőr*REؾdD3!,z#q;'b-E;g-T2䷴ziUkÕ M{DSve҄&s=5XR LqŨapND-@UYs͓w ׋,ǐN+}Iezn{FHLvr )K _(GT~+3dJHj_?/'x1N>f/vrEg0qU[KZ.cX2LoAU-u=X_sN0V.K'BJrB!j*۶bƲr ,Zޏ87ZR,tVk= ܃xk-'X# j.5%#{Z3grPiycۼDB/Lڈ5,J@ߜ8J^oe1sz8J՛ҊD@dJZ6΁V )`$7-LFg1 6Qr}g)$dU1?8O11{ r35[S2+ԝs;Ku;ˎW:t8h. {}q͇,e,c˨bMIXVۉcG;x`ctN`Dn6^R~K%)eelBʚ ql m;#=y %1v8,QcdưǤނùfb>0+E% "EZbRef`L6u"ց3cJvNmjVI6>RJJ3̴O|1Mw L)e".ʠ$d1fbL{Xg{%%/筽X9? V+9 dI _5D¡ɝR;P+ɖo(d9YPC/wW-se,c˘6/cQEvMGNAj֜Jsib=F[?!¸-Hcf8xA 8-V ΕLا;[1?Uz8hrU T-c¥U,It7`'L;Zf 2F^P"ҩǏiB:V)jl@'֪֬iMl{^Sö4Z;,s {;ϹP7ٻCxn~EPu4X)=dvEv79M`PaJLiYA{1N&[*!׉2Rb,rX2oHpRM#u8_^]׊B(R}DU8N46Ŧ|3؋DPbt0')n'_i梌M< ]ս X6:G2YQ>Vq"(=h|!1e%x_#Ԓ?gǓzK$g9SrekȈj LQuQ)W^:BbNcTlj尹Q J1MS^{Vo ssAX[6,ycJ5+0W}-hDnRߣ2%ɔRx`SZ{VJOA{e,cX7TPP}pbzSG5DWśŻD `b _w VZeITA˷Meq1cdŔǙ~CKׂx\ B|KQ9H% %tόk󪥹e/`#rۨ*ǶXkS "K+ h=+:[*pTyO, B4L&A("=M@}};/'h "HkI⤶z&2 #E{ )1 CJi,.TI(/є-4+#!Y&DL+5hу حzmj 97z͔W7RKrX2o$pYCIOlCA>jlR@wI FGk0ەE)hc+x AehQIXW 0OhSJEI bY*z\cXQ$+$KbZf,sIK^]I4;- [/:FfҶ`] (EZ-2yx.i?Ҷq v@3dV_\ڒg>'Y\rͺQ<~i`blD9p `؇t<(vYr s𞃊,2e,c˸=WUlO9*hFm@ Ð* ¿~,"{.ʪZ <#@qmZ!fhYr z5 *%=#ƌU/:Lso_di7&НxTZmٷ@m=LpRymQVfخ̇"UyO#x3Ÿ9`) x>M,)8v冓;*m].g69^gzIӜ~Bc34Z pGhe?QZt9Kl~^˕mϠy-5.l K8{9L9c~,/9^}|bCB2ŵи53gsIgxɼe,cXtݻO|豕NL ;@}بgh_je5qj3}iخR9&B+!&I}g'2b#+ ` 6o1 >T L˄&22qP~_)cHliٸ>Hv,]=0۵i״},.iN$^ԃVGR'Y xAd1.0+ff Q"AND X +2zꠝ{lT.3\|lzjdI/iB2댅4 0i3"M ruJ'Bq?QW/lML䚫sg?:yX2;ظGtA*0F 5Ae%X-mZ- @!RM ^DcI?QHq^'v0NţDT%'A׃M|#F^}N2d$-4\3c^f;!a%$lc,};sl ukȑi~Skbs*Zoahy5ۚ#lu^ B9^yf :GPO35TwxV}Ʃ98ZkhȗH( IJ&jcL `LcY [=a w9t726ɜ l,19 Vմ/ Ð붴FUSzk*mohT%Dq̖VFˡX`҈zZs̾4 JI.*9x_|(Q9tJa˾$;W끊lQrZQƨ&R+{Gi>: mH ԽI$7^oY0Ҟ2+ělv!co?oA=='TSq4f?2NpXWH"GI+|c^0J2z@A}]9Pdag sTfu8r'dDi=Zi_ U߽We*uDB^oU ʎ@"c}yhk>pQӞҶZtM%\#sUFMi_ gzϸ&bsVsUB;Iv_@[ Ff9E zwES4O-5kM*EMg}V Vޭ[Qp^S%Vmֹ^TYsg-ؚsUImoCǥ XùU"VHcZm4@'IXcFv j`)?/jas~nٞ`}v-HLq:S&'T}sCps-aZj:JDY{ pk/=[v-*retSAV%cpZ S:5(/fk+wǦO?jKAU +Yڠl  1L7=ʭe{ޥ?^̚J9[/>U$$ɢrڦoUcRM>Փ2c3q-׬p0p+PW֠u?iO S԰ev*2-2iST!NT+ ̫A8ńRXAf+HSW7m?7t9v`u<!֎aTN(S9X^&yǮS_ "+ k&.t 60(s%k^s?#B Yu8Sɢsl Z:gBRrmŴði욷-E  h&=uWa YZNSGx"}Hڬab2`[`6$/4$H:W2&6A}#{Uք01|>2oqI&ӵ-s刽lV/"$.AgFsӅϳgd SRq1IÔDiGApT`" 1ܺv0-ߝ*,-G݇y72~ʰJ|̱sd9 a@1jX).$XD!$#RIyêv"^ٯb{lT:tU%㘨(~gSlJNUܽd,TɦOk@*{#m0ܼ'F=1#WdE=pO q lԳ0,~~0HDlZfVϤʠP 6JUIJi9&cljٳsleTz$8`o`kҋwj™ Yo>!+Pl!fȫir3 3hpf [v_c(AT:omVq%fϯꀐ{JXƩ2V 9޻Pay\bIq.'ٳrm[S!ocX@ˎf)n}^Kzˤ^ %0v:.{~垍%zI,/8@L=X"+ٯpǪyaxYrk-\}x gXnReYsY6@u^x,\B鲒&P4LoR֚ANطXϊխ:`DPn@ZR?ٌNU!}{ Iyy]3ϓ jfb/fٍོ|`ZQ9d,kܙ柯F 7/vAW&bB*etI\ |Xm?n&+$dYZ^*"fQ;WГ{ r LͲ}Q(5XlʵF Y[[-;I_yI $TQ=Nz8=gSa@Ϙ,ώ'/rs=c@ʠ\" .Wbp˖VXkS[-FHU%b8A#Vêbc}ZNM.ȱV~sYFJJ볬c(rEylU?so0 aHuhX+e-'E*W}ԉć :qhլxTsZuJcplMD ,e̥@PzoֺĂƱJ~ 8@+@%@֗ՂMC$xv1]ؠwmԘc^P3eAZydM @] `ALlGs h7!g6d&*4ϔ% ]0 `ud/t1^|{+zd vxت^nEֹ+qO"&cY]DRfMdb\Ml PsAyR0(qR+OGisx+Q^Liv(ͩT6R&DdD>2/YSӀ4@eַOmKꯣ~|Y'jg7_ee` ~UmRK HfBjJ5ۋy yK{)i"ͪ V n-׆ȵόFަh*5\Nr!K޾|/P$%i0MooZ#\֖ljؕGfz/&J:%AM&QlM*e yZbX4!4Y,7#D5C {fMlΪ>WeMV[OT|ܖ5)NR[vdzio=9fiCŰ#yb%T6hW1̦S|TAËIt[ Ue} K j%$c[V.5k^`NRm fh@eVfNOSﳵ:(JQS!{N.4uNU0Uf1SBݠ_2U1? \;i*;Zm5̾wŰH M/B*$қ۞I'C(@(t~cW`CN5O٭JBP^7fdMMV2g#xJ$+'+ѼNjiOH@ w,{3LokL6=[,ְlf6XzG,4IRg<Mf)P*Ofp4PNYNv\ڽj|>-s)Q1q 3k]juJˠ]\b0&-LA{Z" H/GD6 c`ɜ+?(Nלeom%ԪN,TbPf7Zg,˖Iz SOEnVq&J:y+m v)aS\U1-ʄNՅ* fj;+3~Jeq9[Lt,㌟QSLhj}DZ8f=2e0i=m*ׄ*e`1CgTjsqn;AZd҈Oj^V@`6<-g',Rq=HؐeB^M9ߦ^$sV>}[.TX'vz [X4/bYIe@*@YX|(\Oϫ5C$Vo~JmTxd63 ZURs*Y0rJSkFz9#UX{O-YR4JD{.nBXIR:mL۔\5F ^)e&˛ܤvZlTlM͖ZN ?Ð3PuH$r;2}l3zd9@)T>,k撲^E۫iO Hqlоf ]S_A asp4RsOyİC,l+ĪZVJ,߫`&[Vۑ)˽þ!rySKt2FUn|琵xԛ y?ǭuOc,̫j1YV)aÍֶrOɯtu*n&y :R2 2RM<([e=:I̗ٲMl dan(k&H{фWRI+G0 ᢧ)IU-SV\Lưu*^`;T" {UxLE.d@ЦYU(A_.1_ĝ(hNS*='sx8+]`xz[%mylT(Kg=m !R6E=Y7+V2a*J 2L5z?=GV"(eTM9InKp"L}0_y$P4ɟn7MTޒOjF*SH+N,(uz߳Ӳ͞EER.&꠽v}zsBЙM MR鼏ʊ`j|Ԟ-GuϞW%G܌Y XE65>Gˍ:Ŵ+5wT`rJh:KH݅zdj;'u8emP{`ճJ> " :7[-U 4./k:ͫU#!- Lv 1~* tMʩ 9,kWULע!J`녯F+@&k.X-|Рj䵔0=c-ESHELqΕ:͗!=qxޠZ_}=:ΓSbBL!֋esN`ͩ*%/TClbC3'L4XP)D]$&i!'@4QNq~lavhĆ\'|6f;v,Zs2UWg$ 2\feIޕGUYΪڠwZNLTYz։.ޖn6N']sa]]4lf{%(O,Vr5υy&S&RҁNaik$sb0ֺRƋŬ$-wNQ8.vM?g"1dIߏc11jH)|֠wԫe:t8R$7PZaϏn.'E*k&ݭx ;sc58ŲҽU}s@)Z|r=1T`Ol_uS/qYÜ41~F4S3o(p^z GY @R+3]FO Ҕ)"] P'ڭW@p(-%U!Ex=Oh&L5 $@>^1 ;: D ɹ(R kI6;{ŅYՐ.!Snbp9T"x֓X#ex7. Q-yrWv% @]BM4c kPS8zŎt+u"X f#f0il:fՂ#ݓ(8AK3L{ce̔~>Q٭cl)[)0!\[dLEt]&}>ΩقN)\_gXlI~]IzВG1# lK۲õ.&&a ,w9 jgu K"HӘ/X-2 X"9NmKG+[\4gfs[)֥ vF̲׶$UtG+ tԾ#alg"SGs8l>DgM(X ґ)Ǫt5+u=^Ʀ@f_κMYLMeLȬuLZ tɪNs"$ᙌ͞D!DrG^eYƃm-1l| 8ъ2icxecر⮃.z`z+`IEgapеfAD&RnWB6nvP j,f͹- %uXuף"WwGCYU6SWNirou,*Qw MbeZk 'e4bWq{Ӗ d=#$.9H''z{uixsJx~[UkUmv3j Ž| Ov5koי$Ao:1M75i) ft5*.2݋-u9aAʨ#kOLK,ffs;=s `*a,#sy95y 4\@ZЈEE}]1*"k{C!jkQHџk?GgL=sGlϜ{C0+b|F)u12k.TJ% A T8@◙c4hdkDBĝ@H '_55*&DH sm~@q'1ymr $lAIe䱞IRC-A'"7?csvna3ªyo)2 >3p% `kXYbo]yHVܔ~GWk! xc#%)5(,r3ƕTk4T23sT* HΤD3RTYw#k+k4M-4{sRg%*nI\ %Kud8eo:+G0$shD^XY, Bؒ_R44VpfX20_ȜC[rw֚3N7DRYrhd5Vܛf93-V$s02 z2EmjM (\gGo_g6̆Vwv@GF=-k7l0®b Sh+l:6K!I8+dFčٳ2z8xhQSђɸw}2&) \d(XN K쭂 Hj&tK3ƟFݎHF`↘D6J N!IJ{"cTCSyt.Fc->}w,䦟,hrF_.9HG׼ lWW,`%،#d"뼋v^*@-# uKˋ^2/ GSI~7]sɩLtޤwʗI|UкivKB>^ t6.DnR7tA%9Nb:U2"jr67o)ZnEed4``YP.чRNB%uJ#$䏝" 9rl#Y;pיvBz` ol،'V;;.`ɑL7M݋)RD\3q/M-K a=qLGg<@IwK#[;j3 @E &f~9 %K隟N\mfK-]w5ovT#v 7S-3)4L RZs4AmĜR6%ܗ nU'/ZaQX;%okmﰹTXJDd54@[/ <'̦yȠ2ހa)͸s )u"!X5auυw: &"ii`9C^gynGD H_`^k[$@\ !Sm2v,LX;#_/]Fi&5XNNtv* /9Ia &dmK8Uv\¨I\UڡvLP㹮$!k7'w(&VnJO^Iϲ4 Uq6ÆIEuחh@t3m],g,C**3ęWd8S4I+d]ØHw#3٨KI:Ë1[5?rig'rlffHh$oRhعΨIlvk'7%dL$&(:+G4D32%=#i6qXxhj[xhǘ:uMlӼJ'ҝ*,8.ϔ|?EK&v꠆d_?j) "Y/q&Kr_1gm0_Q8>y0dž9'E>>;*k؃S\ ()L, 'h_Byh!&GFUU, s(QED~N꺶"F^ZfH^!u561Qҏv0`fuzBZ*q:+FK:05^~}O/"rzhW5֭)K>i`b059&ތK}[RyCw\cՓ}\u:|;A|PĈJ9˺y QKZ# BajuZky '<@)mIc=QB@}Ood Y] 7*>j8x̓b%ԵydeFW8`YW5>'?W\rĶ{}w[5,3W\T݈֮8?Ƀ xRR7Xl߇uۀ;^]05XׁBK_w'Nv,_dxDwW^Z PRھF!B²R, [({fں:Yf$$QG~"a2iM#4*6rj&t6F1GMPS|>'1p@ǽqx)lIn f@D_C !ɌeD1WXh]ڛf6M'[ʕ+x/U8WPʕ!\Fk7#;ɡM!{ԾXh.X|C8/ـ'q1x!B{-î>vbN3B:'VPRPT@5 UPM҆ :NV:hs,1hh3(TX ymY@_f3~YvRk`cSA)c "}Q=Pԟ)`-Pz(Hۑ$G(uM_K,7ӊs8,[Kءn )Sɭ_Up9V m so J^ PDlH+W\#+Wb[ /va;LNN+>Nc}7ߌe˶^ RPJv^L::a2րW <։dšeqH Ku]3]y(s.B'1|K9I-ZYvd`:٪H{t6ƴ*kdg^!LV&LN]xhC G%ۗhj"k$km%W\jl^5jM`fNiτM[aK ȢĢX-3~\bUU!$둘515>{߂FYC; Funjo!/muㇷMKd8'-l`H%*ɦ`kF!%utus}!R.t xtq@~j$: 4]ssvl]90Ecwc@2,Y%({kiU&`]~.y9. 4!w mc.kv]"1h5Yc ݯ2yj&]|6Z+tf.sʕkk Kp_vX -._6ۊ/90klZ W-O} \e٧_n%[f{6W\[&mPU:q ] ۮ;Q\a=ώ$ QNo ufK$c0#%Hތ(3+cVѽxdl}_ aRnm{H#_,Z\Sf@ 1IG3 okt@<"Cp ,*_ݰ-NˑѐnL}bbѶ-6upeJlsʕ+<k`e6q(W>/f0Ox']Pԛj| K>>u5ČcObbSrʵU*,[Uog]2a֯_;txzr3@A=y?޶.(7݁wX`cVX%sWƧp |L+%\_dt,oB<3`E6rWF l ,uC^@cP}7멬_!N29neù4\q+) h-, ',H{5|Hs% ͬmb4Dqa)pdXZ* U²٦?F>Ѐ' \Ȟd@|r5aW~'Nixs}+ /bǦ#팢 _{LJq+} =lq6Z.sʵJkBY^*9""/5in9r @ic*'<jh0'%BeQX&Dh3zF"1&Lo6ļGkmpJo׌B) 5CH#uRB@I۔s0XyuI21lVJq{]ȕw2UZk%l\"s`$ԁ6F0hC e)GyG"ִ뽄ۇ>٣nJq\תWL HbFMֽSr5z.p ^\쵂땍xWO@~/'a+rflqlMSk+WR9]~#_q5*=&%oƣsK޴zӷ@v -$:=Y"%`0`!|Q¾ *}.~F)$]dR+"DRKAR$qr òJɪ9T&gB^mmo*tH)=v@P`Ƙ}D`du0,lԝ sCjځu{mE8Ҥf uAɉQVb c3'q>}e6ɕ+W]_MBר|!J-4ܫqO4-7c˸^+WTR LNNaѢ ?S7JLnYs lX ;tȴuxבC)>֝h:/gmeʢk3@Flh=@Qb?"ijX΃LcQXE5$9fFflg΅6SasNnjq`_#T;4LO;z.m0T P1TNk)EL{7/Je5_ĚnW48!L%ypd.vsPN3s+W\.{R }lw̡ثxܱ #biȻnm(W,FoywbbvX*'{*.&rI\NEkbq?_v^f:VV:l<!*aj4Z@4Y'xcw =6\:@€Y"Pu='"XA%( 60}`jG`hN !jXP';0~: 8*2W@C7H2<늒H),խsS®ht5& -!7lkI0@561t.6ْ=1R#D_< - /{LjVc[ޠبǃGN'm>ʕ+W.+OhBqO.įtX;}7~[]µ⌋GoǽK7aDZhb|ߗ2W\[ \ sϽq6pʕbbxCկ:V5ޅ'l 1wv0ڕ[ϣ=&u@oa .RY@W Q @E Д DFYu1<ԙN id.YiP %j>E\d 4 &Ŀ6 mz2gGشB1!qݗ>yNxHOajBzc>sʕk~~'vyuJRa~5QG5r ֏o[ /[ ;nZgr08}”*H!̥+ FW*kPFUWkٷ9,`{.Bk2$3Zf9 }HeO IdA=@3,5gZ6q(BiJc  MҰUUall j`! dax=*=cJ8o]5 {|]f=#4itc :k]%$q\vnvrN\rmMp?̻pʍD96E6R0/k`6hwkԚvxlb";sʵ5k8Vݻeö.1DJ5k`Xpao͚5{nExDDtpTb{*eH{QZA^D%'kXr9Ua<r 4>6!O! G#J) '&>N؄ 5Q&LƱ#1>BA T6FcCc٘(S~f¶Ρ5p'>A괾ch?\L.I>fTFDI| 9ަ6aq$fb26>Lw,3s+W\.n' ptwOP-.(y\ǒg=v\rm]w݅iX5_^] .Ho8>u`@DjA'pxxa+prV#Ֆ#'ݨf;jm n4.qdȩLʸ\2`*IO& l@)걧1q QeEOxo)A5Q.cݝ xLN0Z^͓6^FWsm`i($RpPX{%h5q=],xHF?gp+W\.&!̭w>Ε+W^RJLL, ~z,^ ơJ3U)lڼB,Z8>"=a~[0?Vx'Oѽi,Wd qI&eFz. %=+lQi"()Ui0@!$҂=d ہ.)ؔ3XFz$Ma XkB" ܼ@eVQ0uM0f@\8aYYE~q6#" K J@PR(O a mBAB-!&w* ;XG5ͷr>9O C7*;AS IDATy`0JW)džxim .ck#^KNJDa覱)3 !P85t02!q_@GEq'=E"o9 !\, F^ߗ\r %1dNvs\r%@W7s>syʆ `*j!X0PH !2RBkNiC_P\\R(B4 Ih1Mǩ#iEW}(%`0xFxjW{i.Y&RIeYzm_,-IH`6,Iu-0;%-BlJ< G n]8ms*th nx5=oDiQMpbG:k=.cH\rʕ+W\h]P4sWa AP, @Yj BɺBxФ E]`<9W5P=PĈ>+3c}DU`(fcz'r,8 cVJ$ UQ^-<)#lP:0I{"K >LMhL-{ ] }oK}igo3 Lm,} >\r? Hͻtďw ,fι̕+W\rʕKj$R)hFI(k (a"7 KUʢ0s)0cq (,i0 JGec;>7. $;DYVӤe9ez@[{%JCHDu]('PN"I""g۪6ۧpCl9\;/-h1lq DS 5}76c,6W\rʕ+W\Ab2,02_ ̅`0'U) H`Fj+m$"VQ (JB60keFF<95ٜNJDp PᕘURi;B4AHG>'Z(2aYLKyNόPkF-iAW}'S+b&~&@2f7Ɔ>"$NHaPJ>DNО+W\rʕ+WKHi4ʘ^L)eٳkaz u Ue95R]:lS0RP&Sәal;f5l\B (O j Pk-}kmi7c+W\Z_x C,zV+yuI4ʞ 6R7ļtVJ^l*-&퉵~](JJt4ygc P ]`0@YIϥ."  wjJ߇ ӯ9`5\- BB/Jd F` l:=Ҭ;\iI`@2]3|IG$eF>fhL $,S`0Ta*BJE)PW,VPJ6XvB\'2HwcfI z҂ N}p`A1X|[# s,AXEjvmnG`ʈٕ]}t>fA_K- Fu>\0my3aPiEb#e FM|rʵ^O5BI;v)|6>o|v/ }g ,TH,:xKw‡_/1p&8>rzx+U Sj0 HAV*V2K[rNԈq6a*  "eAjٚI[E%J\v$LFY^ ;J m02@Hk/ʷ00,U_ c0й`d(: к:$YPѶ:ƚSLsam0iX0&W$҃1,e&l;RgUu}͆~}'{> &/!xUrf8%G-蘒|ʧpƹY!v_`;]3p;;popq?<'Jx^<j9T8/7_{ ͵;!͛߂{;U/0Ϡiّoj~FLMÝ7^<{ˍ&n'} /]&6s`O>չrz@V&eq'ߋN: 'kf0dftX!) L3z%ma+3_8lͮx xsp?V~> )G/C6irK7-w=_W?+q9c1SX gR9V ? ,>\;b3+| cp_?{uG5wgv$"]lJA A5"Ì\*4pLi"aiYK;Uu !%j [JĨ󫪶df &>S\ɢĕ{> Rbk44k?1UULP @* w-d[J,Me pЙig;iqNR9-JNTLooWf87>L(0fBꯩ*dX?Y ~x/}|p[8`G;`^78K+Ϟ8/ţf7i޼MS`ظI6o{~f?NWmq~SxCo#ɨ%>t9~<]v>/l^dt-[){fVf3F˴R]B̓jd H-iR@ct,&5q  ekk*i\|0?X \3\t 7Ke3?Px90П W_~.Q-£v|_{7azw+IG/O*܈->tD,Có4>(s)w_\ZMLo^{nx܃O4 7/-k'џ\~z*xdw-ۍ oŦ;n`bzoPxL;/_ܸvi 7ڌ`o)cKKN> ޴[SX5Ghnܮُ;:xW`:vKE״8c -Ċ=d.@^iė JlPMo]/Sb.8z?<Ec t4uްKzվx9S#?M+7a`{qz"Z0s&| CV}4y|߅S} 6+ ~m|l6aǟ{~r[3? J`:\jH)e1HGB9FlXIx@ 6f#8r,kM&> 6.LFϯՏ!X$ZvNٝ9$,FhZmdrJj/g0V% < _<<8_νo ߶Oxg{x{LL<-jW??cn¥?>r/+ۣک:SO$>n5Qb=KWʳV.Gc=qOn7_{y֝;񃏾 @q^W(Ը‰Ǟ' .;+  JwŸ{zA O|,O?o9` >k)+^_8q̓ދ'~i9|+3x7OC-($v^q)^zĊ#N˞uY+1 ߾mTq%2s7kc03/oG?2ǏBMY ÓiW oz p'V6TEx#N~5JOsy|x?Z7>8uÃ.* b%GᥧfUŋy+7_1LV]+W ٔcϽ%c"4 ?S;끚jǾ[Owy=^I\v_@׼gZK/\s^7oz9Ι4iʋߝ3œ.O]xqgQc%*l|3z?&@(5D RA( )@+B{j9蠝ی[^za'wbٳ^x/75>Ltpү~kO=qޅwaw%G?.9{g>&`@8ǓCɎE\y8o<ܶa>ǘ/>2$~胟ů.W; }\|}rMއk'W\b) c7TҚ !=Ӥ1+ A]b &```!1RNe[ j]A*U4`(W(LT!( /ouXn@#)kŸм0B)@ #aI)${UVSaNMk+zKHk+ &2ɀ-ҮGS6βܝ% !StXwft;Xܤ'؃n^5rJxs _~-w6Ӏ n>A /x3L_<|0QxOũ_xHR<9nSovNa9vGoč+>{nXz0ʤWdЯ]!Ӯb]wŮ.Ǻ/obC1$7#ժ? ЫQ> l{i?Â?9c}GNb K^z~|ϲxo/:~뫾~S_/#p@{8}P^>v@&Ub`_;<VJ|=6h,Xg+b%ӿE v#v:ylnk'W?r=L'jcxl6jH%ڧHXDTsVj/(o<^UIZ(öЀ ԕH0  >E)YJ$msfd:Uf%R ]-b r[gf&{6dI0c ~B]akL)gzOOf:?MK8VNp܇Ŧ̢%~<sZ>_/H\pRso7|U>٫^ IDAT]).~x!=𤗼Ϗcgo?qMnHPP]IC?A,: q5 FА;}(? ~;9k\X ^N<'OzO!w|,H!EUUXa~{oqϿ .7p/E1֯0*pւB,Z,5kq/>z uq8vr6qWz^_#|_pZ]ߧk2 :! \[I<}<7}݆?,rz?rsXl8 3ͭ{YW^*rM`D0 a dS6ʩ>ʲt:mcB#G5DqPW` %Ҵ:E{_V+U`7 ,Kof$Ʀ?RHe`mb7:wqs\5ېv^yϵ?Rؕ٤C%B[|c]ע<~ oa}|-_}pе3D`.WiR?݀^7 g_Pa8pYgwqRVu.K (sD1"(*<1b:y&g<=PTTPQ`*Yrew~TvћTwWU>Oݺ4hЀ 8eeeX+WVyryA j9>MGIfO/sgQ؁<4x|}<*}{ ܇:3A{_Myn ~}23޵o*g۬z}sz-!朗BL~ +uqЅ}wZ)%ViR>u"LBBI2z.X, TᡔjIJ" ?Hy`J) 1$$t b=Q6J,:tB%Ab ~pʊAycF q]%AeϹFJX @Kgy\UүU#Y*S/'۷lʀTV.]@iRaUUqυFۚTL09:WzXkQk y3sd },B[: Vh/B#umI$;ᙣƃ` y3:#@k!FMQ\^ -wd-94w\6^4+5y{_䳊?-ۨAĈyJiL_a8y eF:_`5qݗs=sRJKK7o:vW Ot1 `%n_fŃy_9\zV~ƭ}%-ع`޴ycngcM4iۋg<>jѡ9aC64fOڸ_gPoqIјczOS5wi<0=J>FmͱY[[}vXCp,`'-fK (SZ!T*P,u4d:i/I OAH,2:EER6( cpP)Th7Tt0jq𢡄j+(**"x -A8J!~gh=GBڱR8 #Tz7 MuvfZe˜U,MrnV*8\[iL TRͬܗJQgg$1/:JHP7C`m>ɑyKaA<gC^pe'NLmNmYOZP.+V`u>^\?9ͬ'ԣiҤ62!z)jvcM8`s{3r_p[n%/%[7ŇQlءĖ䬶 Z]9 vN! e\$CT' #|1Y:TLJtf ӵIVM4A@?%ғ*$P8,1zt2Lfڌ!mm$*H11O cN1x uD6%!P6 ^<4Bp+V)BYMj\ʙQe涹 hR]DgFtQ]1F*T0kN*m ᾟ09vn.s<_z³jh/| ްpGp'и5l1.#&67IW,X .:asj\c;6>y_Ä9+P4mVwz<= x'?z[uqJbu7Ҋ~ Hnٚ=ң໼y_O \Ėn BJ:o\VrL/l]܈YeqD1=;I<0_Ga͡lkw|5އqSZaԞN;!ԁ:z :5Ӓow*ӴM?aX%~Rsxcz:hH~ ?*h~gCp)|9O|&7 no` hs\ $j8Wج^SBCi#eh=b#!ZDb096qPxD%[cZp,BFcm])AIRX$ u$$}X Ȩ Zp&sR p}eB)$‘)L֥#d XZOj͔8a VAkh+DJz5̤ )iLpfB'5-*rZVsv+@N0)c):iۥÌdGb3R5e՗к3+EעP uN=*`7*YpAp ptG8pp:|=7 ;6/n >NJb?;ypi+e{}שt84hG-eΔo`~R_ pߎ={U,?OwK6Wp屧q, o."%]zڞoy3w@ pRΟħoś+u1 qCp$}͠%~UᬳҾŴ7,lfp9 .ڑNgB='yӹ5~毀;Z"qI&hڹ)%q y!<0PQ!ƾP ̺˵2Fല뺲HsE EJcp4hGX{0Bws4I[f\jaE"Z@XVܰaJ9P wÿZv7ppiM z~)/0 RN:'^ 9 ,^O|Ih>]ʽ6WULswO^k~n}NyW(_5?zO\GOJ+Z,bZ)2>H_e ! ZT{z\u(D! Q 6,_IRA ~j~ 0/|;OjAvq1[C=F-P?ϦVpsic ^Q=W*@%Xz/y#X}d9+8EYuᱯ|Y-N> zl•~Os6;&Pp{,D! Q[&=XJ"^kƲ|*#AHP'J^A&I< KT4&)TJH(tVЕ;#(B1iz63l2ғ_ib)_J 3gS LeF#Rgiϕ2:fPZc Bfv5©K}ۚuw@~>*ۃM'w&wJuτŋ)#œ~ZP$Y&cl6s-R mY"';Sx(##_ e6EV+ _@knFa&(D! Q J); kRR"$aeĹO&ÐUsVMkؽ/5+&`䕘Y+D! Q)?j uR RI We%äf"b/HUcpD)eJ$'* eI&c&LԸR"%dme*+j!Lc9J .Jxrzgv2ʂ" RsQumH0 .TR#6* /L}/) QBlžP,P]?**~m~.B2`,H 5!ҩ}c&،U]U!&2H9w@:V(z^lAfShPHC"AT6ԓ,5fkJ)q] d\C H@@k7qi4sSTz-F]_ebX;5W4hVrٖ$kkcj2UlOz0a 6^G˨!:nu[(D! QB)(,0 GGFĤb(-T#]pAnaME9I{V+2L! \C$%bX*3XĽ~2f5zD4m4):?G`@.~FUtc YVHj‘^ + uiޠ[ߑ-4.nDLY:w nFv+U\B5.PfsۓiUFdWV4ܿLj.LQYw f(si2Ռ9#14e6CDm$N[0ɂͥ͂zY'(D! QB=tPZ" Qt,|?H0 aV'zIE(im=,T8fc 1%(mk+IK  E٢ڀڪEQFbB\)C$PRna1BHboImiҴN(HShu4Jje_FkSTOS)"2YW~EIQV0omsYޗRIiΕU_TK ̵.vZczlC >!oUz#s tK'OQ^CcKX^k,jކ|Zڗ;ǵr 3,ؾSg26sVx+-\?u_IB(!%Hp@M0NB@5Za0JNC`eE0-B @d $} "b3e޷ܱ{{߬K?ʞN{oggYi5̝4onu_ZY<*zN^v}?|"Ꝟ4r}8,[ Q_{G/: k nCKS\w{Ұmتw~owcY/jrWVP} (fQ$ɬu~f2,x<f2k>pB;D:.ڀ H&Tp U 8g 0ƂℯHBHi-F"CJRA2: #<Ѷ0`#L (僑:xĈǨ4@ HHD8ΐ N ܮJͣY[-lFO4B! Lm KS\3ΩFH€RHDJ ׄʷ2mɮ4z˜Rfc5Fw+2xL*JM@rZХ)XxاLH ҼW4Sq^|2߼<[}7hDž"fj75!;\̞g^V0cJvc5kY#wϖҎC cd^ eAm``$2$aG IDAT۷;n嘣n?sY193(bۣⱧoP,Nמן2╡6~jl nhG2pRppӇGQ[:جNS}͊!*]E[d|5hC>V_{7Ys=LB\f!փcfa\7LX5)ʫ12Tg>禕_LJK#2HdEu*sbNq ,ױJA*Jikik=&8u-%֊IO$K_+x H P{H馎Ê ((**BR9(("N$r4V-6'X`Zd{NʔkfF3y[?RMڋ]8FE]Yن$~%#Bo*IblHBPؤoR*SPES85kXY;,\l4YȒ#/P^m#rKyv^{٠y餫9LYi%aq~p%W0|m{F78^4_fS? O2ᵻkHg7\=OFN펡?ܝ<@[;&<]ֱor|Fo wVNn<=0rCvɴz!fꚌ!ুrJG:Y.k0?T9ws;(\Z.U:U;8VxTARka-=BU! A\7\ 272Rɴk23,\#HzVUڃhB)%Zz^NQf E{W$X<<>K{}RyNBʡ8^:%n1TiXMͦ梷梠Vfj6(?5ZWY`Z) tJՇMK[kK{eMXF5(y%s[6X_fzAC߉~VauxT4 -[Cbfeռ ۝Kޞ3yoȱV_{K55,k޸2a[_7~Y^ȗc8Mٲi/qOt|_%5k{rY0n{Z,}.Rψdխpwצ!g ]uXe7]s8+1kh@͎þ9K)M$˖0󫷸i,|3M&Ŵ=lbxAbWɅPLv^\௘p5~3|8ujms8k~9f};Þ-~3~ %̚8wM7G/pp&_ME*Mʖz55X!Ҧˍq#>a4;Gw)4'gLAM3m@nCwY1'[MgpqLF<9`)QOhrDGr|(V\> \};|c3lNƸIo>w)V!*'xtl;v {\3 $M`gy$O F+?dְ *u(]hTo&[6E̙jw`:Z1 C#sneU~i:sz?'5͚oz hB$?r]j|9 (F&uѫ:ӘlB;9љ ̠16k؆<kF\,ˢV [>7ָ~ ~ʇsardykUR 0/Hx=N؃c1݅Ƕb'󾡴mz^?Ω=6݅2iz^[۔mC Qݎ<E| SFsR.1gq/nد-S^Lh0O]o:4NY·~a?~]xzk\})$;J~#8zq;aIKbE_9/>O~[D -ԧ|Y淖ۘKk0 {Yh4&+KY1ZjEL,\8N:jmEiMyX,FhBHQH!BUt!J>HY1$6H 4eH)"\ϳ8JZ6mU e|$2ӤtJ)C,R-En0u$qC(5oq#T0H{^W D@-ڞ@Mha)WK&9Ecوh>¬|M'&Ggt3*:v j+u2nh.mޗ^QE|3G /*~S6Ì~7cB[pj߻8B:g >oHAxJ ېy1g]Ǯ;|>j-rg S8{׼t2o.Ǡ-!#F_@ KxĤnÌ]:蕁,3u9Ӂ9%EWΚ}*m>Qq֗5|=a~c\>x{5]dGM3i-YTt1Hߑ_)~H (['hvL4$EsQ!ŖP?y F/4o%|3E;Վj7kZ'B^~ޞ|Ɨ_M]u4V(GR$iq{, M%˙6z-1J_ix xDQYc&mH<9+i'}YRv9 uE}2-CΕw#{kthilUX#Z> $'w o߳jc~4h߅N|>]]>϶>>ԃ33ߺi~l<:BNi*O@ G.g䵇p£?> w潳kl qt~j>`N}z]w͑m6~}HҢG?ՆĘ;9^_psXB Zo1LYR ߷Yd.kAn–9cUZ)lf,h;T܂Ey^XVguKXZtPhX(XzlTz"T EuH$f3P!HL @:)G R+ CQrak6ÚOc}Oy4Ƈ@R ++VP֤(EaFtlذF2MɶAWeǔ]+jeY'%TYl5]LƏ_`ĭ 9ٚղ8[ΠvSZqʏbߝkٻmNe3j?uc:rf>Kc)m/7>SFWxyYdEqL$?N7@MIc{qױw0;|aՊQ: ЈzSܵtٖi:gэnvs }x-c/Y0Gס6[ (pZ˸scŴئ z ~N\ϵ(nO3[|gl6l6lMcTUv7;XWp»wٙtz?0kyec_E*P:N8.1ޟ^)8L_feUq[{Gz9Sڹ'+`׵=%3l:~~җ g'1uwc7Rgܳ6`(u&kvo缶[[VJ}-a |6zٚґ8m`+sŇӽK %yaF:AƳwȯGTs?\ݒnj<_zf5.6Rs*lIcGTքQ&|?"ȣC +*kx t3LA@tJ=V!=7TT'BP|6 6L= >J 9^V[~\l-iZJR /TM)0S(\/HRRTC,V\V+V"*rZG!8UfvhQm2jQT؆@QA`fXd6J8rl Rg< 0)OL~枱p=br=wߴSl=JZ @äXU92nBU~%o-?է^'pc8>Q, &2ůI̹6>鴥fX8An8@2y|zX~vЏ1їy**SDNHC%;l2Yl3;՗x˜Ys3'ۓ4lִ Zo.J̲㢛xA ],.;iw_'iwc#]|TY6dҩ>+95?ql5Z'+xA:zze+ńW1behQBݒM+Y1?$Gfᮗ׳PtmR-.{C'NYj.YΚe |X5N@6ۙIIcb?Sf;c?G&W~&''_ҠNuIꄻ#eO;.6,ciYBX_I%<!3 Uʍ"rMKE"T6RdFϋ>BaAҥ* | ZLjfVVI&p;e('|Et[4$ۇYh>nBfh "YЊ8nFENKEjj$xYu*utm&.$ʮEq5s{S1҆9kIS(4aXoɰ"4T1a?1jz |Nzdeز? /mZqtrͷ ,p/n<~>e53_~n~.8\tu>U]^r]irF?ЋG_gNiKѬʔpdhx1_2vSԸoæRF!2&489֩i5Q\BŎϔ_E=Zhtq<8m#%f Sx7=Vk=\d[^8y׈IN8&r+?딽Xa~r*}{ ܇:3A{_MynKzLT{[6ĈPgn^ӌ.˵%Ď 0&O rWqu\tal2 Rx =7#B7tBLȐV+\? _)DxIJZ"ևnQ ? b1FR"tnh2Q HnFHA41$a@bIeE]׵4Y饰)/ljK(CbNI.({ß&}#$lfz!Dj]gfh@e+PD&\;@E\amIE ՞RPgXdJ+ xSE_tsl+|th:3Vjg4R0o |/tG[ky{[ >1oc4C1M/ٓ6י,̺.s|2S8'joz{#gc!μ`:[Kix~bc(kNc !,d(71}f 0xr GI]1,/+_bʽ c8clְ Q`ė2lQ.j[M[[x&>0s{~W&E5`{ aMkoN{V yl2"e^we'U?~aMsnG%dd/c{fi܏q f0uFl׎CZ;R;ԇMtoR('t]'vIX;BmKdX麮q@!0Q`RKhLJViF%sB D(4$%h&@">ܘjek$HՊF_h*I\C6*B,J/L&8P: 'BZ:KkqQ'=$1IPFVæ)i )ۘv&tV g#QA41YuJe֋atG"6+ZɰV4GYsW8&wܸcM-dBz/v+ɕW OEytL~<GzsM؎9 )k|fpwlO2?.:t`'7`s*U3HHOqV~9w_X8!J`}2'q*[GKKuOQV';ʥ 2:/=g!vן,p,^?w%t~i,x[IOӵ8sy^|E(^}k6Ћv$Q9rF1+yBќS=Ff.}:%-KQO?0P"_spGL5&Ti|]}l5E 5'.<Q<Kͦ7=kc^dzo_۱N U)Z:G٥'מ"(*r6/*F\ns[+ғVc룲ޏwҳyOXO#:vT+cxH3*`L(~ A"$_+|`0z̤[L IZJ)%V# 3D#-p~D R"r!!(|T S~`?뫀V)*@YSNM4~Rxq}eeB(bX-hC"აh#H&|8%Gi-Hdg.3]#lj kRt3SFlm23Y8kFeʙdd(4߂$ 6i`:HIL7쥎~׹1IՓfc#|,ώ,f˨z?tѬfW|u(~:O"ޔ;(MpvjOZu·8/ Iٖ=[>u}R\0 IDAT\ƹ<2f4x`}ORyp*Y 59zj> J?⾗fPj=n1Cġ{sRT3{P'#~L^x>nBN!^.~'r̞ Yd]~GNO`euh=`8G^thqWu!mZg e7{>]XFRwt,}zi ?aFk09ew^.iߗ^?ŴH:m`̦E)~/vz '۟Q1 uxݏ׻y 1ϝuZZ1H)J jGύ#]FZ+\2p"Dxfz!v2)/4Tje6}ک 2Qpv6)dBMzH. Kٔ["\ZkLQF%ѕڤ&F3s hЏą{%Y`%s~7wیE'NKo"E颙|M#|$X͈1jȓ1;۲^ew_|&?Yg5ϥ}ioJY0+-DLF|IbΜӱr}|̨5Y3[~OKy\=Y^.op!j#?gT ԓw-? Ksaŵ7pq׎t:9 ϛΏ?\&rhﻸL#P[>?IK'V֗>Ǎ'Q`ݍ{s2ǒ/6GsH۴Q_& ᾿geMfm)-ͯkUʯ ?\T:~4˖2g7|EIEC avOq\DZQǤ@і~ 55 & ʀ##ouH !A+!ltlxa]E|lf4ǔR1=+|E·⧎릿[8!.SG RcmLT EV-W ۪ϥp(//{lUpy)+W{uP MI(Hbݗʀ/]g)tJm"1Zfm# k !8){&c161+3*M DiK|tkiRhC)F^$N9RTAL4ۑj>;Cv|V@x6MM(*cnG1i9yO ( v'qRo`$EqB+q(nۋT\'-w]\}Z:_G5?z[ɍ?rÏyÇ_6j^{/'prΙ'E[Z=Q_uQ2rUlh9{8b0׼I+qʣX')q"C"5RbrԂ4h!Z]XjpYAH"#-^)F,p `o  Qf֕>Dw1Eb }!YQx+HB%X@!?qU;UxP(`]TkDZ9b,B$RHyAGPKbrt16F:wd!8$qVh^EF!)E QFCd$Ρ"2Zo@F , 2"Bb ƑZGxx34$c" R8|6(]3D#HCdoO@ӏKE-EF'K'mo&R6&;.X!*F6`ؗ"hXJAQcLVY"xD\ \S9eH)Yc,NPFG0nsA`8ka`5jԨUgBGPP B-%>،4 J#$Rb>F2)HG85Yp4'RB3͈ kQQĆaIc2fylۻ{}[dƷ"ux &t/s_*kGI/\SzcR Egnv$1ei&|3;Ɨv"wR8&WNC۔Թ֨QF2CCci&bGR3ſ3|װ|}w5jԨXBuP&u#D*EV8!ȳ E)5[" .e if$n:\L)(YZJN`dt !$ylE%DI[EI q"W8' :S<ԌAvxQI!6d @.K= .\Nzt5?m :|$AWVpESHW}eUgPU J> 28Ny֋I&; EZ;bDƥTVlI&_QFO-l?D84=g"ہs~kPkԨQ:VynB 4 11vK38ؠ GqHMA, gxl tWCYf ;TPETTX+JSEE':3dTJU-d@dF`e8@J˕V"Mǰ6!euEᓩdlFѺr1IӠ!7!b[$F! d Wxdy!U7YX2*2 A>|9RH#J1@HHHH/S}̙64Y]N磈MGF ĩ"l"5R@9"!00Jgܵ.G6 3; c |+^9ҹ [Z;${6]:'p : 빢 ;{pb{,7 |DMmw۷İZZfWLV*۰gtnsT$_y.ѷsԎj/=X_LC]/lv p [ѡRgFy-ny۔k~a3QO1( ;Y]W&?㤳9#\ӹp [Aۮ%gS/3?Ip m(Z=5jx@cv:kt8ot֑yPfU k V@S'CƥP(T^;sJ)1DZw !(9,L  S8&rThbA9 dz2"Vayisynl׳33ld`FX=yB+ͱ)82KO"!|Prb%!(Y1:P*|b%g-XdYd"x7!tk|jFskNo*\Pa.YI O! '\Wv]ۇs|Zk'avyۉNVk7+)x'>ʴ#G v=-]p?O̚PLO^ϽIQV[}5SISK} ?OʾӶl:$.wwf$c?Ͽg;?ƽaC+5レwTv\«;׽}gޛڇc\i#`ӗWlg d7ePn<8 .r GKCrϵŻq~tC\MfTa*Nmy\tj:~s8l~8o3x%wn.~$[pަvO{V~7͇ܾI?;>y*mJu~/^fϜd4Y4!mC5j<] v@ )ؔR9 "nrΏ߼~)y1$qH{Aǃ).l+UL5R !RZVqH*¹!zq3Y8@vX,='ʜlg A4EIl -di 9'hMO/\f&ƣsAb5IPinIT #C-V`V``QZ)9tSZX;>U+zv" CnmGavO\V}!sgζUb!dl+V3Q,%cK؎vJS%ɦ|AЭu/q㾇d_ Gò_o|oic{Wu /}Y֟k+b:ů.ﻁ]?/ ͑3HcʋbL}2y79xW8 Y'1HοR޶K~t S/KWTs^źb?_ig?vW~g-@r"9<N.WKKN]*eXO|g\5_߯ƻ_upu̮G or#^9빣\g&ců9|"[;$>%D&$֊Ȃ"F i8ux1FX(HFK1J?l~=i~~$O[~gA}urا]wqWu'Xtޣֹc]?UtWfq{i>$~xo5GrЏY|5^v '?@{}فkYFlơࢡ_KzYF'|j H 5 eHI o!w6H HkRbzdZA$BfHɍ8q 6RʶR)Ee{%QČsvg>="lNLWذnգG6"rlȆG!1!GhP|54̘OoA_ICE4$%ըL;2ұZ#hoХeJN |*, ME8PjaWmۜ]-]|A)SN ~ jt=躶1^'8JL&(gaW(Ho[s{ɶ &+d?%<4EA>/尽TaJCb~u#O6,/>v)^k[̻iQ[\lsjXN]sλ><yыx ,bmv~9֯?>W]}5wy'z__3.';aYkW?FOWvZٕd@)g+2$@ ޡd (V2(*)uBHlJ,,Y!'y(iOr鉦aS3X{Ǭ9Ht/Ne#wj(4EHIGJhÆD-o@72'I I eX0^+RHyF+J 9$h^#Ŷ'DvHa 0Zp6RlD$\i)sKgIDѦ Ho4< fˤa]_=%/'F7:M")=k,O\2oq7^I]s?]ƟXsNs*g ?r~t100J)FFFdt1 ݐsҜlϤE7o>"HjԨ4Ó9Z@l`Jg9qspqJɔ褳!in#QR\c,",'RɈVj;KN`RŴFӚh%!cV߶9vHa0Ѩ!{W1M7G 3).DVӔ1 ȍAzQHuc)8QsQzks' hQg"7hc$DM"4(\$su~{@AM]*ODPn%(_!cp^J.!n뒒@UGI^cp5-}:!zP;v+H10'7@mB*Xa]LطbGc_ͧg{جcp+AIXsV`&AѣGVUKsKsfAg߽UrÑ|~$f1ߩã;V?Ȳ9;w;Ae ?!C`*ֹ.uns5]+ၿ p/ìG1OB_fxxe˖=b[8e:ȋv.5QHsE,*E%X'px,EY;78kXkp(`LFhfcHhjH`9EayRB(\KsĢ,y3mKACb]k 7&=4cbuh'q-6-&7a~`=Q=[1N!@ˈi~rzƑٜ8D3cIEQ?L"o9 W,IDH,H+aqV<<$>`ChxmשlSN?v6p8gF_>\uO8?ZSZ%e|L@hts9]\.nT Za cGauolnens4BHюu- {L-+Z۱h6lŴo27O㒝u-=0>56/_U=va#~w*Na _O݀4yvhy?t|f<SbV<ǹ^oɖ ;Y)sgg/G-_t0 }QQsJ.x&ne5|͜J=UjԨQ㉃œYЗ&P)Ra B+r8ƃ! 7 :g^JhAy)$2ʯdy1!#о.wb2gv4Ǥ6GZAo;Y5.ɆquMm~t &>KD&hHB:⸈Rz=A:i'|T1I$2"DD4u$Zh{z $Den|`*M(ˊEGȎlH5b !ى`by'*)Sp/xćJ}grRmȤ0/vM;:H>;vn0u7~ 7b羌Ϊs/_i[O眷׮jrk[p ɏ/=@WoKŕןW7п`9KRƯߺ/9w7+߇G ڍF}g/壒y woyӑ.{t<$}>}*~_Y{DWp!]q57޵!0g᡼}+I mp>vێ}~ l*;~ºS;a.xqo`?Ꮻ|!vP)c9|B·꧓[lMLL5Ξ |Zx!+{Rrs4p0G/؉7AHM7gplC/zQD ߰KİF5@=";/3(C,B $A[FJTqƂH/2b[8SHe a EiZh' Yu(4)1Wu}ӈekwe|EixM"4}AC%48eQF+#4 BFZ}㸔$MSzz8-i/k xGe=^*u X`lFt"jljTĴWZAJGޕtF[4vs>;A;dϭ(Km0;Yڬ}b oFR?vG'(N=CrG?{>v woĴoowXN/c՝b҉/}wWgXy `<,>vw5oM V?~nZ6_<߽]81M[v\ٿ;'<߱3YY~΃K/Oț_O\~7}=Cs𖞷%W]^8ݟ7SYwjcgOVqG=,:~wmQsEOc*BSBEh7W)ΑYK%8yD3p)4ssx/aE0}8[;Dj?]͆xT^ї'Dhz+{4q,M  w8Q(m(ͭi{nq i$!+ JKPLN̤XF}H*А(D.dJbelJ(x!iGUMYw-¯mIIJ,N~4UH:qPR]i۝ڞ2X85＀kjbY1!~tFlTIO;n~`jH^qFZAPgAfчr,ܡ"#2[dҨXs=9Fɳ( 2A(jW34fЌ:U8In&nA@̿Xk+mVILu# &ڤgL};dƬK9ȏ_?TO7 @ s‹gV$z{\G>1m8:8';Z9h^4dl[hU<l6† C|799Xx!K|f~3xū5jԳni:䅲m["xQQl22:!hZV1 RJz{{CkQj)IEI("t+D2{?ߝ ѡ"5 -YDz+W;8ǡSAF:^$:F*ңci*cK؊DKJthSX!A':HA KւФ)DҐ<67:X2`(ڱ2l,I]wYM $ ::~ǧvG;iQVkէr":U/2‰O>;" @ o*Tumy+hWuՊ~:1/+ԨQFwWMMoC#dֳ~8-+\v3<GF9JH# n5BոԒ,8c !#2:^"'3"J{wH͂RAuy2Ƌl,( K%FM8~:FjGQR TLn2[Ffzp%JH(pkrTC)Aʱơ`8@J)(҈D"Bd(,3k@:&AK'aS4b J"HC% YSXoB"BC.%Y' :D~]iSZV k'":yg5%7/ υY^pOKp%@ԨQF5jԨB`Ehj)EeP-ɐJ- ucrGZIz .J*2#\CG PsX+xgzu/[x36 =c60*^[4N@,e$Ic!ItHH"c/4D!bsAKd҃ZUyj!&G:5X *N!Š{DabSsY*!j.» y r b .QBYX!,kǓI^Vz}lHGv<+ۖE;&SĊ.b)*6ewj2dy.9&n||T o > p×RԨQF5j8@JXP2H: 񲨣T(qEYfڑ@D0$kL4yx8sJ{ d,zJV䬻}F06ZHH$!}UFAtH(Oi!VgY "xfgpX8a깪ĪQ܆QBOk;$(s"?شPABd4 "V ^>DĮ˳RL8RN$UXG&Vhc}' 3i]fuY(4u'.Nd$շA+ -:Wj*=w>{_<Ʈϝ [9saX֨QF5jb(lBHc!"Ln!xk3f` (5؂H8J!cZiP66M*a登޻H}]k]U߹0g+ 32@lE2Rl+8JVKb+Qn(W Gq) & &Ø ̜]U{c]9sLOsvUO=<xj>k'|rbԜ$\PjȴDe'Diiz 9Q@\+\-Ƿ;FFdZKTFM\U3T#ʨ T͹;(g3T҄ ky*JowܐvH;=z߼岻rI3lֶ-^%Zn%s~+|A}~'qpOyo'/gs| ~{ v:Nt^&5`ބfΥUn)ib:UQUJ)!tb@VK-wɟm^{# /W~U? S}KbyXV̚ Bu4IsJwZС!ֺ,UևDuE >$ $ˡ@(I#[AC1rJ&Q!hig3\L]7ePH3wW+ӄy-c ~j{xrs;N5  z\3ǿ?{Z|e'ֶK4ήg\Ҧ"blfF'>tk`@H"HJi&qC+\a*He]w^:Ix۾3|]p%|7rz|/|˟G~;Nt:)vCcf-q5|ƔB18YAD(3Bf4MR(9LS%=_K 1l+'ȿRO J2( Zr 1rq`k%aSe!slZ(HK S{+xtP!62۴I2́{B qhBըO.c8 U$7]j [=l x~YJDU#~GRnD|4WnuoSaUnr&4{xc٫-F/y}n ٿ7Nt:WЂn*N0yH9%Y`fGëZ=ӴG5Σm4 C~uRoz[xϓ7ɟ#'>~&Pt:(" 9()DdY̅ wJX1޾5`Dw\O| DM%R U,Zj*ag+(c15B&.o CA mq'e Lgvs~Z5M gA@7ey6;'垎QXG1}憙noz/ew_ࣿ~GZkm! ^pxb_`*9S!|7w}5|;;Nt:*"Mj3bq7Jm9&̚ ^AB9Ss`N@8[7oϾ;.^Do|OtȦ "l|E`EĨIMbXbeRJ6mQ3a@ *5 V@JT,Zh= ^cSJ2! bJ * Jvq/mlc޵3aN1 ť|y]ϥx|zVR"tLnM:*)1w|.Zm$ŠaYs%wgr|w Kp9~@y971wi-x?X~ٷ|>sx%\>|K =v:Nt>+5RWۉVZsъ V[hI񦇟Ko&Ox|ן!^|iWDhm-xE4r#c 8Vh 0|ФAxTB0( +zH6"A!) <<"=Jq@.<:*bCW9ceH;YiHq 9rCnz>ڔ~Cow3u?rwP-M"'AK/%Drv.ؽ-ROv-e;Σn\~Nt|/ûSgoR 5ҋ毀W]~O<P?sxY?O|iKx779|pkt:NpN2DTz9C,$eT m_VdPafK{<5'`W^dwʱ\@RJ`_،͐ CBBO4ա`DP' mPb% caU.DRSACD}KA%*`CwT\ZrsJD2%OCP$RF.xӄh\zHqU?_&fyۛ,c? 'bg1w8r/!.X9t\ԕ=C;$aXn[³nw]]~ix7XS{? 9|/o?s܏j}-=|C䎧3=#wo?oT/7Kx_Nt:gHoՑ9wMB)G_oYi"[%őR*sQϔۄU[^鱷Ex>>pm=AVj>N*B +NBVA&gWc،iʔ|@Ĉ1ȩ⫈ B`/#-^A5m"!(ΐ2 RihW^XxLyj%i¾V1!H!.򸏸t8.BH&MAl7gPfx*nv9&ŽboԞ;~&O?xXB̏MNs}-=vLIs+W_[>^ᇿ}m? ?`t:N5A%P@\@@T'i=۝cBJAXZ1:]C'ݯ'Og6l_]`*PT'QQWLR&HƔQT1BIIZ72]4^+H[3#'SӱLը ZpZ I"%0SĦ "\J&…psK7{)R9\&SqVюsz[1Jpm&͹7+ iワyy<_χY!Npr"Y?qWnt:NyuC|1bHj+Ҫ5&jq0`Рf'.{;{1$^ys F-Se~M1WCkSJ3J5BE@ a6 a.WJaNOxiyd6Bb#)jmgs5' "󨵐Bdc!>5 bxjS?!^+.Kxzϑ<*DŽ٣3xّH氞˛%rN& E4{U8XKY:/ir0&[#G (0 -@BHM!Vqb! '~[U]so1O2 #B j. dMpn2́CQMdUk!?m:e!b^Z -5Fg=Q7@RA.V-/& *3h@Vk -:RQB)OH# N{.c9q4ϕiϲFbTRZeNwzpcL1Nw5ݙ٤q[nS6;iQV7ScO{98|oAot:N%R/ś_R!, 7H!Pj<ϚAɹcܛ+7k#dELx ^wCxq~KbHh(w{4(9}V\CX:WTR!a^ :Vt6#ΊaWyv'@P#Y`_fnn|f\ NnJ":jwVbAޖCiG@< %?ZFV=E/ܰCt z.t8ޫ'3f'*r؛Ѱh/z:G۞D; TNL?ܲӽNt:N$(SyJu@JjAW!)&"Chڽ`c w~5('Kjulg~j㵸Sz0JzAi{!hKőq Ap2"TTR)1dz7 _SZ~n\oVm4 Rpn*۟<緻zr\?.DkKJeNOt>qvۅGG]GFgg1?'.N.Nt:N5!̑q$| cKA'8/>_IW#>̮41U#XFUT V*ٛhl©*k Up A]'|pd=\GCl- -WmsuDvF<kᡩJ}Ujh lJ#;Kia6 Rd^(ZQK3I!~sJQ%LGdҐX۔fh/FTeʔ Th/xKQ$( Qkt_0$`ZLutj٥ւ(jzUU  !Gx-> IDAT>!ґΥۜi$1zV7o}Jho"Sѹ B"9.P1W_QɹR>c't:N< =p|落s!՝ Š:'81Ҽjg׻ 'WW[@.Ą3[>mG&A"1(^&BɥU**BGV@L R{$B憮"Xk2IcۙD(R)cW&"[6R;FRx$xʰrŋ!C`2njMvYl N#qU\:H tp iэ;VG.k"Iv&0@Dؒ4p.00N*TN~ݚoCk6;ʛ/wVt:Nt:^[`Gu#i 8 M#I#^3CJ쭅`0 xH/e}?"ן>=0cH}f+\j]66bQYq!4UB;/#bibPW0DM02*@ ("+ ϓR@6*{12ڔFL a֏V0c<:ӨKTйCA[7 WA|-v4FL`Bv{,vah;Bvn978qE`\ hкedlelvut:N鼦HX!xGf3#T*+1(V\E(n\a`HkS2$ *ͰHZ̥Q:oy5<(rshf:TJCTWу:VqȱR䎟Y* q<\n wi'=Tܼm_mYhFjvy=.2;Nt:ׂ! 2Ra9j~28JmT8ǓǹXK^׼'lžs>szOn#{!Oq:DM)B"xAQQ͛X;$17*T&xP-- u`Wah uHzl2 nk;UWFt^1Kn1a@qs(h:lQr<}=kڭ /ͱM[([顷m<ܒw"˱t:Nt^VÆjbDN]C\П: '1"u\ﱻy$JFRhN W[~KxbK^-LY@fqe7F<< ( Mve=rKp˸ v!E!txYH=SV]>w{-%xz6?mGXtx]Yv/X+t:Nج¼PR+J[*ϗ+!DT\ ^Hlxrug2O0@#dM1Ys(sAb'wvG.6hl5Y ?`2e?(\_#7iy _M<'.|?\+D$1RD4T(y*;kwwAsEsw<@Q u3&|gˠy,aHP #F>S#Si OyDb0$>6VORCEP<;k!h`*{T JEvOŰt:NyH MLyqoe&,RƀT*\eŬ{<)ka\P!)D" <׀M+X1<9C0Y ST3J!%VfķZ䂦DEGr%4 Iq>5VDj PBLx jsBXen0Jw.1VL@crayt PбKY诶C;jq)쀶"=+. DQ](|tby/t:Nt^+Vb[w}K02[ꝨcBK_@|*0r?AB ˆ`cc*Z@"T4ao3GbȻrX $ biJUVE3T}Bs Ԃ"TxHv *Mj55/M MJiΨC\)",_if'5Τ0{e.q|Q쁝7<[sy886t:Nz+dF]3 M>@-Ǚǘ"%FJ)W.eW]ow{Hqd&y|}hzJkRXk:ĊxsFUUe 8"(Vώ® .-5 #DˆYK搓?WvUHI'X "EAsj((X-,)Ғyclھ`9$ $Wե&%J9uܓ}“S5?# XAe_XKa=nZel`FBVa !iKJjU@/r!ڎfG^$HSm)14`^ә6gx0(hd`Z+cJx5JΥ9VػFF#uĥ's~r=o .ٗztwck&FK=,Y/?Nt:NA>B` u\ 6Dɹ0+פ!(|v[߈a<W~ÄݚA Š )q˼xGBPѨRJ!H@{.I^H2 ?IBzƄJ1xJED`!!"qn)#iDv{DB봔 !BibQVJrBu Y%hkİPUBE$rC<(P ʻěhqT9q1lmԕkrX*Iн)ulrRYf]>wZ ~gmڝNt:NAͩXbd0HũfC=I ҒOMyd|w]udePW ׁzU .`{A/^ a:'KE! lVCrVXFfa SH)Ys6bbS} *VD7C d*̀G '5l^ԤNHaB\x|˲ڜz.~ا>~ P&ۖ1>nځ;.d 0hwV(a@˞j-8G1yBUp'(B]E Z ©H0A1 JuЂ UC4:!!Pz=C`cX Po=`NΤ|6+}Gh㯢M*S#r{̵\q*Yo]9"9V滺Nɴ?G!{P%K7FiRh[MJNt:Ns..%ka] J½=L&ki坼 = {~9S1%e{ijb|IzaFΫnfAlV>W#"Su {ǓI!*2(vM( ~3íz&mr \!E|;au#xaFč8/^b9ODQ!mw´_@Zbpg[<Ĝ ۂء)gcGlq姸{+J{]ouAiꉋx@t;6U̴^}y.a_QOt:N̰}eZmJaV#0{C"x5 :<|qKxgvKclb͘;:Z02(xU:nX16 f3°FE(VHPJe[D_1ʼnCZ1%z9Fk:2*JlЦ,B}qO8I ^LT^H+fyc`՛ZZPQԩZ*a--vq&[#@: 97G]Yk-wzݻUSAg IQkb>\+{p:Y.TkIw ]z59v2t:Nt^;bvU#k6]<•514!y7 ܅/rCy7h-Zfk.brͤ$*֫ `Ĥ8Nmv8|_F&$I "\MDjlBJqa МG5uNEJE uuPz{:g#{(=w'OjF!?;林Y9wׁU$qǃ\Sdzo9|xpbw&Ğ~niq/Nt:NsA AFF |bD*n)arju6i<q:_x{aNřr%fa_2d**s"+&J%[Zajd$h&T`;V҄bKjUUB4 @ֱ ī  B"Hv̩` ա6 :Hz#K) } i2̂lYQ֜7w;wE.bKOĤ8azSMŭٮP4t*TD aw.uzu^[]t:Nt>{TfM$bEF"I8`&hl"xOr|7"OTF.F"B$@)@*Pq*J+D5a'j-쬰x c"BT(t=aLD"u_l-%ɮ@< [G.X 64d!PW-Y2oY È!ȡ֥dýeR˨l]?`ⳭʙZD!a$昫c.U&*si˥I1{,{ ӹK/cҥ=6+TT?鼝Nt:Ng?M1r\YFpJuViTpuưbX)Wp.y۾ yO)Vy FcrGuäFB$Ͱ`cĴx\3JbĀqFLZM1'@@6DC5¶"cl!S'qIMTA|i? CBOz 2QjUkN)F5"z4["ʭ?ӄV9~6SJGD5W=uAk*'nb4,c2edܐKRBk EX=>GcNt:kୢi2JD DLio%o}/5m3K+Wl@ G-(gG]7$Q\T1wZHتf1` +dIz1RjM #ՐD WlN0de~O4) ՄַYDŽyÃ"5;zD!AѠQVT 0FVGSDX=Ow d6n{yuHU&p X]*Um9^MKț~xK-專z$Nt:k@1 xd*؈o|7=8nN<˟^R H yaw dHO;ՆVgwdɲ#Rus(@"z04}nUnf{<"<"5o53+2/uʵZ2¨0&š@y=QhfA1 2w@V %| d`a5< I ԑZq1Av<4Us 6#2 GR H5q֨!.^'aߦ5u 7˘.Y uZnw3 GD{"Y.2}\fo^5gb;Nt:/E5eЀh;ALX~v?%=jo*?P^+~3@3Bd3Qeik~ODќWJma?bmQ+dOGR+zzj"YF!4Om75AV[PBzh41CBR:˺4bMk!Q|0kWc@b)%=VnGE/5F4hq1nmeIrki{xh-x^8[wp=vwu*jIi؞t:NuMh2 &˞hQwo_XPqd +1 őD@uka UFbJH12]<\1RJ8@qcL#&.4 $EBw`X"2%_Fƈhk?1%\\!F$ՈVRJxzs-\v.5~͘@ Di+vf晹V|1U&8r#~?"ݰN믉p;о#LIrًռi'^w2a<~k%%^t^s ;;Nt:$J1VRHԙq8^_??cOTU8nF Ox) )C$HJ!(V*3rfqCU@0N;.N.]$H[MqicbRY N)AQ)A/8PkF'm.89CP\"fצo5sv-g(&Wp#,o=2zgv4w żWA[xWy|MY8tu6\ۜYwB.Vxw:Nt:ߗ8qBC+A'?G"~"XbˑG(Ba)r`q堑" fR% v!Bh'BqA47pl1>MW4>)~64 XV%Ajhx.OR\qZe]'tئZj!C q_Gl" 1ۥ6SUb 1\aq(y[z*Wүɫ5AU}3z#/oޏ{'1Zm?dm{:'.)oގM**p/o6|h{|/{+^nft:Ne6"zZ<' (ńvi|5Rw iǩ~XT)4&TjΜl, +`ZpVjX ihƨTڞbi)s%LqBjAUpӖ[([s6+Q!ূ22 JOa-6[ &r)!:x뿤^RA`KI1FuB2ӷɱg%uݹ A8ں!Y{#r? Աp{J׭ ^zss%~wӽ;Nt:Ηb5rưc#1gh$#|i'D^ȣ=Ӵze)hu`.O+ߟ>(S)$\PWxM|||i4 XET0ƖaZlk:U"wxm?NH5lT*brk8+K0Vr6r(bHP skA@m4ҠZY?UP 4r+sv o%v;g>ϳLyUo}lo.#&7{lKV!wI=.t:NGM0,※`(!|鉟#^3%$"|??#G[Hyy,%$6 Tk #%B5b`%LKQ݀2d\@/ <^Omd Ԡ0O ^xnA?jESl&KSPZ::Fl.4%$UCR\}Ss2X6UtgyVq$gg;E%o?ڝVhncEoӯcͷuv: |H홚C4gt:N%hhbndOJ|߲L啟=J*I8931d+|ɥ#2O;Tl3s к2S0*!2pF]-#c74"TA.ة\MhƈTLڪ^3e#nGcAȠ)@ԁ%cUr:$CuE7:pw{=D瘗o)]7Unw4au-}#Pm?X%pG{5v:Nt:$dB0G_De > ̖/4ܠX1Zh4@doq~z@\8- ^L΅e.Hbq@"5jDBa QQ`'MTXWmF(oƈGiIHdK<@i^+HJ]2A"uYGiUu~zGs/V]0U@c?&>\?:;$溜zxZA"-Mկ&ikj:5pQ?Qy.0;Nt:/AM/z+1V>?}HRw?s+D#Oc*BUg1)_bbIA(T7t  *nbh`9)󂘶}jHh=V+ªsQż)!m,;|23\UA&1琠iI6Q' CK}]R Q"N. 02K^P !dXa(mStu2nk: 5me|\tnuw}y,~{&*o^ 4;FȾ泊]t:NtSUq+S=I_?=o8'cy1ʒYJ!!m)Q6ՊhPGFM)ERqv1eF˜"i<a Rt v UZجF+,T$P9>?a'J j+TRS11P A\(Ab"cH l /#1$,*J?}|}mhPb!FLa,P_g" }LjTiZ݈9͐OU8e\+Cb&FUᄄrEB\ A֎RBB3㴩o+<-"T_{o-@Sݎ㭸;&hu*U.v;oFD.țj{wVn4st:N|V5u)Cjo9~>W+XsFSҺc` DB΅!{d=aR t$A *Lㄌ "W;,U//ӂ\œ NF882$1gն"2EP)"m2!cA\ _*;8{ҨXu+Qq"zN^u ё뾥43w k7;ׄUݺ{{f.6ocyr^:u=iߤ^?.st:N||LQ CS D- RHg?DB5#\*6i8&N!E*V=|4bYmQygDiUՍq}o*a@ދгmpv%opл&ޞqu }@o},XAt:Ntz9Nk% ߝ^O[fTJ]R+Kd 3Ł+SJ :P\R*Tc. ŨgRJN`V(3^+a"||@~CJk 1Ї8x}(!Ak3NJEVG. PKkX@000NaX0+V?K ʭs ZW!gM^}=bVn ٱtp 6r!^cVw\9qk7asAojρB{~qxli&צot:N|L HL6qo /2|uۿ sDꂴ}E >r]ܑB Dvau9Oj$ryH&5j9@kHlfTv.yQчyD GZҫ:f,W!ccD\,O M 3R ƀfx&`<1 8!A Qj10|>M^T{$k_˱&Zl;9پv͈cVvJ q7'\9_oߎ 5|׀ak֠t:N| QFU˿$?!?? K:Ud~e4q"HY0~$" I'~dDŽkFrYȥpZ 1'e"bn.a!%,)byWVnnANSΆ  ୖD- C@m+yf;l#rUƫ&I<2|}pTZ^Qet:N%(Q#ՍIya '[uz`DDx=@ũL:q c 9ֲB M/*M`]3>CPp1QC ²d$ S& {\bhrtJxٱ:*f ڪBrxVCFX(0$8Sqq]xSx"E3ÀGjm]V#Hj0U֜K1svgm\{<#s3{[erZn{yqid ]}X^GdbMVw{Zhɳf5um1Nt:Η@D/_}O_%0<F*U'X۝AǾ.'=UZNZ iLL1B)JDS@jS|)w|)06Z -z d("GrmIQZ:Q1&8Zp\)Āi@J]*: dZȥ(-QFJqk-ojsJ(\D_>nqmnͫfVVNj.|s8n`وE.לV]uX@=t:NcnB\P><|__k^;z8"Yy=SSX,xV]Z@!8Isg")F hP asv;a&c^N,Bg,W\Gx("#őj1`ё1QA :&\JQ{1"(ks}1x'^%ׂ-+F0!:XLԀD 4s+j@h2!xd>DV+^H9Q"0Q{ASjކ%~xG0˸9CP:TGvH55t. yFmZ }5 H"$PiY4!e]-%vBu_ q݈}H{^6Uԣ.*7vn}-8h/a؄dꯉg7, (a|vet:N%QY;1<hد?z$Fe|?1ϟf } u.XT#NGR+.9V'a71>EuT*1FT"x8PGm"ؒ45#Ks\[PCl ͍sA^c/3H'DZh"eչ\Cl2HMĤ "QkEJH,^SQVTkn?~Ӯǖx ?|syTgXowI8k7Ü]N.,ځt:Nt~J RqyOOJ6;JDprYǁ!ET 9m!|1EF~wbRJ pO䜛i}$=蠈  9g\PGi!"K|>[6-B.'XN9fB^]j`Ӂ G T!n Qb @uk"T1]UȚ\zًEOw=p: %N۴]*П5l=W~[r 0tq@owHkNt:N /||ǯ4/o~B\vИ(Vp uc Nef3s>q'Xc<;4Psm~SDxH _9v",T2DELCRR N߽ 4#DGc^H u# Zo𲠥6yNfS*ei5-r4|^ S[KP zjA1wBnI8`QeYP_{>b IDATpfo"\Erg ta6fM=}ue Lz.oAM]nZUiϑ3mV}uu73k1l3{>Met:N%p1ƴ#M|&!v#GڲTˑF. <<@ZVb , d%y %9iHd+Đx 0# `*)!ɡU ӋRFZ]SjIYJf8c!ba$A@2 T46cMbj݈s[xBt F!(Q H+Zb .B *&&MY]KEV:)\2t&oˎYm̫y݈Qis-tE.M=H[{\χgsmu 㪒ϯUmAT*lߤ\?Iw.;Nt:/".qb C淿R` L=bȵpÇDJiZZy68Y( !iqQR²̌ԡC1Vx먌p3$y@ClNEG *IeW\1CvzB4"P*@Bhf0D$ZC H<;|"\v.;Ҫ9VMt#L8#׊T؈{_u6XmU KE,_Gܛ|#8[7egm)Nt:NL=)so>)0=d_22煝VF4$bQs^*:9Ӹc&RpWaE]xYR31@%13a?cBF'࣮Ԍ3ew L@T\̑>$*2& 2F#Xǀ{91?yYEKE\J*՝m0H!0/58xO>A !Z a!=៎d@(8͠ 3"h1Kjz+ UfA#GtL8~,gp{sv?X 2rh wv2ܖ;^)8[w˶d+BU]w0cyJ^˵j{vq+Ϯr\)UߌJȶ3*iA-VNt:N{! !Q]xϔϕ1P9GS@' S㈆RO .P.onJMT WwXla\.'=K2 6,BhӁPhb?5* vrbPuĴ&DGxSO3|\9>SL5F=fN6So)Dȥ*MQTn*l}z&|#L;HLԳsX+PۄW8؍z^RU~+Ulu=K%ڧb;Nt:/$.C),HvqbY2H4GAqBjA3STvi0/efF̎MIB![%陪>gNknCSsEr%ԊMg('|TT,xXI*!4ԝtrRl<55" [0ǣ\HjOJC@j) uxPTcl=ێʫ˨HJ[qɦ:G1}wsiT\;2ԥ7;{=ڸ|"MyRtǻu:Nt:G(BȇGRH2seԕ*F bFbeP樴>N8-G pR||x` 1RKxME8P!ɥ A5Ԝ/pHL0pUT5 1m`yF yE&BCrENҼ 8hR!FWARi xxz@"^(4KWgP׾^jV>(Rhxu$|[tz;~pޟSk-6z{Z9g )wUdwsNt:N'tgZ8|:0`32{f|wzk, _!!2ƈUHCD+`id|\ y! [4bJajĬ&oUA[^˩POG%`!bÈYzQdqV)XTkBl|@?bxdRЇH4#4PO3!AX6|!*$jeaaՀ J)؜@46$zmJkp""%sԯbv~$bϽ]N鯼^'? F]$š]=.ַ.o1>t:Nt:_`ٻ8C1Pu%@đ`#;<9N(ǹn2M c8²^g|ءd*&L!1b5wkKp}T8,;2 m:eZB]{ڲ)H)wkO%bJm2"Tr*{ ʒ0z;~UבN`-Ջh뾦]Ğ.utոnG_w;rr:Ff9[{3Nt:N~DߜX&s=nϨRo[e&m:ҕ!$Ոpb@v;A=c[B@L gg,8qR44R 9FzDQa@U| Rj.P+mm5[(*@5$E?NX4|PEV/zJ` H7.$6'/b*6%Ry5gs^=^]Yf݌kUmm]oس[{~|Tn6p=:'g\v:Nt:_?Hz˯C΅1bV 2RJA0!(ef >PxLxH&fii).0Ɓ#Q<=3%Wajs10st%^0i6HY R2{%.;Nt:/B wGo#k0h5t`LÄyztDDPkeLngGzc^Jn4$PX'Ĵii@"^խS#0DZH)X)>Xš +&‚{LIi@Ia^`*%c90 RڵՊ މȍS$YwXk]Ŧxm;*B]-hZ#mV;'GSO(wOEނĞ=m.G=JOt:Ntֿc^۵P1&m8Eh7RI愺W.ƽ;* dD3t\^^ZoxKN0(kecĂ`낻`/ɕ$I/#P1Hp(Hz IR`b8@L %`9 F @،|[Kn:k[fzR yi6}$Tlw1t 9e>mί;F`xKDY?µd]1G:ARU 'z\>Sޫ{GHQt:Ns?SHB^S2^ xՙa2T 1Fzc—43tvyf4)ŀ,FCkHk& 73k'w;˞rz%gxq wY_ɰs?$Y_vuUtpٳʣқ(v=H~uI0s;j,NClr=T?~8?y?^WNt:Οv+ aLȫI1 $UJ29̨5$ <RTn љibaA.{uQR_WR򊹑LH8غA䮕Pm2;1"U vjjFo6=xtY æFxiz!R%u]HP0Z (UuGi9Q|xd߭7n߅A;!OI1weMRNfϊ<  ,'71pt<=O{LFAkn]ﮤUA\c[Nt:Nq}qinRHqTZ6&+-_1S\f,덷BmPuޯ ) {Q40 mF Pݛ:K*}qW'm\` :;VL0e1&ɆH1e「0D)5.KzSaQݼ C@ O"t?і$۞;Dۣ1Z*Ob<=3C5{+Odz=v7$2^zc\Mr\q-[kEEiM-oG~7u|Z j19t:Nt:>+)FRJ-X0p+Iֲp #*>}ze JL:KޘҌEeb FaXz[x2,+8D^WJP6A.KF^`VaX#9\IjAp xl< acD̅*m'JAQ_2^aAjD܀1WU+uBS{'W#M "DݘfRp[T10U$p&>#/i#>4H}&>Wp'܅!,pT+DĊT !HSiB= ֍C(%*Hs7kI;Nt:Ο0zf7Ur.Ȩdw*UL5g&P0s&4K[{_ߙҌ3bּa;0/|?㿈[-미l+ ^f%r*/e]sBu*FAM[ZV (.xMTKbW`ʲS@U;!&m#Ɪk2Q"TAbs{cg!?8 9&*7A¶=sxmkm]s.6;{&{g&kPU$g}UUld?|Fڅ٤Nt:ΟV ˶,2IbʺryCr͔ZI!gbhlS)F*NUjfGyd[6F ܂-YuXz+ҀF7җ FAL!u`m@ŷJeŐjͨ'c'lm_ V}eL 3P{7@A[E $WjވS@ݨk&H۞[0(T4rϻYs&~nPy2g+=韊Cd=sϦ>4:lwȓ]ޟωX*_ڣp2*ubXt:N3Q1 l",ZNTLU " "Q \G{ÃN yo4Em+E**QM*2CnD9ބO _ %DA>Yj{FHMKÐk&džih[΋5[(|IOi}ClکˆJɕ=ȵUEgo\{G#G*O}-vOl8fKpO{>2%xk=紝A]~Gq|~7t:Nt:7*NT:b?֕u)hu^W$FJ(WްZ4M$4XnK")pc#L59嗙3*7)vۍrl9L @CB3ȶdN{a*5 :D<*#!u#Smsi#VmR+ 8RU5wv O6*QǓ:*8a@c0;>v%XSdGnÁ*>}.{x!\ 6=K/A.Ui#Z쬊8ػ[= Nt:NWxyYJ!ȍ0*sƐ \2*hhVъ j Md^FRqmË\#_^H /EP/~0#zhioD\8T*AY d!QBcIJF+P xsnCPVB U!VBȵEY34&jq1> Lkz?=as|U>˞T)G?'˞vP׎C9ZDqyxNT;ƌ't:NtQch!P)\Hu |qa` BҁNp=@&8!1VE~/!1]3V$u#2PJfHHTYוxDCZ+J`H ML1B.U8]3\"1Cn%EQ:"(JE%B"QLF mXAR6i w#EO꾷x}s=yP~gtyT#TGq޿ԵY6Q꟮FQ[NMzw`>n9DG]Nt:Nɥ"uU_B"r-Ny4-SDkiC"W#psJ5Ƿ+ 1 ߙ¶fJ- 闙06/H1з^V !!6RRZUa $ gTYgW%.eD`qs;VF-m Z%SjZiu-i" IG;+)$THxW)ݚsqGhNs0u){\:z1IJ5_}ڹOpOs1?ĭEPğ>Nt:NGG7g.|l |exjeg Nə8\.3*y$^RIc$TXmϊ pCbڧ&4/*1\hvS 2Pb"֗nM/[=6򉻖N=`4bBM o൉+4A!ښߒI@[16Fic)1 m3QڮZZC=v E³~uz_=DEy,p|otwcȩ丈FLjq/(|:q"ټT{.BVbǩh mSµt:NqA5s\|a͙/+sj%8Dt0/\f1X?VlZXbsZ`[DŽ!`˔e~~_pzcz Jj917Gؐ!A6t-htL 0F:,W(H^!Zk>qZg]! "?y M.OJvoDJ-Pk,+SJTsbH1|8rjO.x@? VKrm8 :myA2ne<$ru*xSg#lO)Qs٬_wJïS }C՛+.1t:Nt([^҅#Ff###Z6̝yb%MZɥb5]0QBeb0̿84Qbn(2NTs|-|3΄ sD( HaPZo ք̂  DƉD(P[&f{hO j\З]6@KltV[G^0$D*)jrxh%!*>*;DчkWgpί纓Sh=hg?C`=,bςq ~߻tX?R͚yn= bwgQy/y$?=:Nt:_A#cDDn4T6ru~,iථ/4*M4N|8Nl Xn,V %J _\ɈJwBI^>zCRjE54ؗh6 a®^kio+\](5gdM7劤1Ŧ]dReŰm%xi͡uv:Nl+h $D=9!]>r>",]9$9ӧ.JJm_Kp;-yL1jn(5Bڧ]&oPޮmuk.eỠҶjB >Nt:N)mR)CmRR!UJP Io+?~3M2YL)Q&r-c[6t[용[a+C´0w] q~!&2:Mօ:%4W*! 5+&< +"`׌ꕠMUHv^^.l4Mw~t)j ! RYK& L)3 bFK+qߓd_Nt:Ο9l7ZDʇR뺐L[abU [=inu~0 5Fjr߾11EʚmC.#>mnA +v]iDK&lN A̰uC%QR93ЌA)a *$!e[oD Xk/tLly! ڮVVۿ Za2CHX5U1A%3Vbxr jIqUgM0~wcu?ާp?ג>F][yN".] 'asÑ}ؙ~"=c+V@@:NODw:Nt:Jp=0_8Pܘ8:ĺnT3n납1Ơe京D*ӿAn{.b֟w1mOlUE{wy #.VN~Ntg?*r Mp."S= -YVv sNt:Ο".bY/a&컔׽Œ^A׉ۺ1ro_^7nJ 㔐- e`fo`ecWJuV$9#?VQi>GncȨq:R|k등J 4W_EЗUW *XA ZuC &Q[ƌ(e#X`"U!D.xNj=Gqy=uEkB$N:Yq$UVELP xj?wETcӥy{J,4|UWLtit:NDM80b"kaЁ8WJuJxTl \o7o/,߮K"ܠ *n(ZJ-":eµ@5&B֭e춴8WGB3 @6-"c hۆJpV5.3yYD1u{ HP Ȟl+S1@q'٬e|%ES꫷ӶS(+ !/~| >jJ 9q~? ?g1rU{$2a=z3c}˞?%=9#x^wnt:N0Han3̱Ս8{?}AY/F;CTO}M[5i@S~ߏCB'z{t:Nt:%pDp *˕Z7TZ(Pւ# mY!"QCVZ ޞ&eJ8d7ʲ4Pڪadǂb׌-gRnIˌ  W6mPk\ Zv D-# Sώ}A1[fNLYl7Z + 1q+q^f$*浙y)C:b[ϻz~#myT|Nr9mEw;ix@9CxO`"ՒW?` ru?.6;Nt:feAQnL:0id+2̘ju6g[3Cdve^Bu1^)J)4L1x'#usA0I.Tw1^mz .ݹt:Nt ̝l a%F&\i:~P@]˅?sqKx$cLV&te' W^WU([ݘ_g|e 캠d _GK9xrT"4*1 `kE@MP[3b@ͨV-.J5CK7:V%W$@) $!ށ),ۊi(}~}϶.#7S DQBnDԶùwRb觔س~tWٓ_iWyPtS4FdN> ='Rj #\v:Nt: T&u%Sl6B":MM3sL):&m\Ayۘ º?``e&~R̘RC 21?6 Lx%ĈaCEgee_/Xv#LþéY3mPJ( I17pksub2oWҐZg.`5LΙd Nоi"s{ꑺz97c wʧgk]t A!=i,VٍD{GsRQU"~.2p?w.;Nt:? uATȶa*ܶŌh"LH {h; )-v^__eY0# IDAT@ @^W֪IUcqsͱj@q'`bkr%!fXm A!:qo2^&1 hM4ţBMF#[^8bQ=ԭm|!>y] D0 :W4Қ "QNy;rs94眶ڢmO6y~GREO<ǾM<|#zQx&{sqx9~ݝSq\|l)Nt:N珳Z&.g#";[2N\df )3SSŨb,o7 'D+FUyQ!T.DȕX*zXfn 䊯E8Nm֦[>dgHhX4qo=I)< !&C‡w*A[)!Br$IeT=@fUuυ/ yOuUenU>{\vV $3#<<#SJ[.n16X$ Cc (Zs QSfxPBݯ}cQvw[pvy/n ާ[MP.5>(q[y|biuP^T҆-v0 `03Sg^z)>cfg~UA1 0iBr9]x}}矦U&%>cOSib=9}>9b߾cy k%~_pڥp" ѧ1Z'$7BvD SAMJMǮဿYL t"n4J#HRsא4Cu9>!Pcׅ9JA?)D$A;HAhSL~ oVɫACOo.Q)z7InU$z(ޮ&vUag6;F/B,PKyR~g>`0 ?h Jŝ`+?.ok+񨔲`%T92CX)Nzi"1@5E+P78eJȓԵ|;Fz:b ^% 8VB+*K X'Lgv1) 54 [h LD˕f4 V*bZnefLu%s8*4EJ43y^VjkYk!J@=EB{i>}"w ő]{~qckN;/p-q[`}.L5l׮Ww% {=L$Et ynu`0 ֶ(^9LfLw /gR8Y#kK飮}Q|DFj+ׅv^g)IS0|M40G9Ԙ,NTxt(3.pZX.Է@&tVN!5ԜIǹ'NJ ͉&\e)%ĭ_C֋wy}y.+ָwI>D/doWSA9 1݊A>Jzcԫvv): V%kD{:Kn>̞+(&;C\`0 v^8ڑR Q&ZuN&7%*,y&<PbdyD9/RC=p ]D8LajSdz )QEx@SOIz"v)RZ0]K&%D;)B'Eqk}߰ԭ}NJo)Jh㶯)+kz7Sl6@P ˏ87+ͮʧb&,y|P쟴db\h_MjDl[>^"w}[oo`0 ?O) Հsi I9D.D^9otyzXOpj吞7R36+DŊ4i#-NhRWT3oL})R T/MFTF|V$)rwf"KwZ2Cd/uFBDu'RD8H>-ݹ)]յ$Pk4GD4BB!.hpDQ1Z^]tuI}|M[kOr^]-yʃB I?J|- 4kgs"zk zfa >'t]/8Џ)8] Lsh}XDYkCPkdFʼnQIO u%iꨆ^c6Q.,`M"R]?Kl}U~Y>P2yTh_8>U|NM玲f~M5kFwݖ ٵu\`0 8S.hrx\{⥋zF<&&pfMuʺRrĀiw,7j)DHhׂTǖ׈>|]GEÌQBl|,C__hglPmR![oq4Rs:G&F QIzUKk J6}c6ӫRvvX~>݅~׉-!|*ʺk׶}&fBnc<+}5li!GE?6ݭEF`0 `gм!!#1P|6xJbB_?h ˙4/Ռ? o(/3_3$a2D-6;|a_To,3\kFD/d]ȹ3f4 6\+b0};RCM¶bT[wR+u+9V4Z#ZSOՠhf=بVJ[ϽVҫ:VwywywWn\쪸㶽Cm:4?rە-H>"w}8n}bz9s?߼OM1C8~{,`0 `0'0bL4DzbTqu)Ul?gOxqZ^;wрs_!/h]:!I(!N )؝ѵJwQ-g<SMtrǙk !(*c&\ZIIԜBde91"]'~*.EZ%rs7Q|C9*(ڎZާދV^SfSz7YI[G `0 2AF%Ji+o QϜ˙VZ3K^aogJE`QAiЬA^z4ŋO u𢄯ufDY2-/=L֧WOb9&x=tDB[ iAF[ >l+nFޅ[k^.\Y[ASqӄ>%5Ok Qi@z'En;iW)N\?%'}Aw/J@D8]yr~>N&類v7o>6kWlujv0 `0wo rWhfd>qHj~_3g{9]ϖ&EU\GP Z6CV%Pw?ݝꕠB0:BF衯^meCx{mqcӾ1Ey/՛hn2jCv?Ep~~/;|c a\`0  K?|AW3ڜrBDi1NBZ $>ԕ|&6￶#׫+د˱z9 `09DQjsj[BBDtfy9w )D,zy-XD!yo=g]3 Y_/*'⤔R8L3ޠ]2ebԷ#n V 0[M")#3nҖ7vBPb@Rf̸nu!VЧU*&}4Hg1uKRZq`)~;eC@U}yw.$;X}W䳽Kon{Rw)H+;cm;?x_۽8v0 `0X7* TШAO^73dX녷ZOr!H@B߇|yyq y] Su; )p+9Dx OGVԥrc~@+t Ere񊴮5|mQ}Xzh^3T6 V {10{+s˲0O3N1kR k1af{m Z2mi}!rhspʵSQ7R[nF>`D(~ݼ26wV۱}YUp ,C{̶Vŷ]x4m?woEȼd{l0 `0xUD8po瘞Y[䉵oQZ%&̿|S|+ߨ([LJ&0ZJ,ebLփw̌Q'<5OD#bJSOv%)Y+<`:ox(0 V >CK|8R[f?}j+RJ ^gPyCPdWۆw>f.Fֆo";}VEplVQMTv^m_P>|#5}:.Cܧ_^3rڴ޺=5 >`0 D ǵ!:Q2-ΗAs=4~N?D3k$ T5O;˚9r i:b ~R@4E 't>̰IO3FL \!E"B'RnsB_f1ւhO h)Ѽ5'/ dYS/+2jW#UPT{ze=1FV9I!RqΰL_f̜vYP[#g4jhC{cZk>jEB@C@B jZKްVabL! AS"Rjs\'qH+;k 0kwT5?u'~':?py[%V7h׽Ny  #օޅ)k `0 ͈Y9a̜y[OGg}ᢕR7O0i@.ƲOH/GZ6 ӅeL|YXtt4 hP=b!+6 T\Tx΅p9Ց,q QΗhZ{Yo\JA"4Ch4v mbu֌vobЅJWxsG+CI!=XgMn"r<^]Ga:z?F]qrA ~V^8,"϶(3CKɮow`0 & Ua IDAT4ĄBR+* ;&$Օ)|PqJnLiVxL$ZYHS S" RD`9cX.u VQK);nS wWg\[ʤ{Tqj3"UIaꁣ*nKp.y%V1V97a,w4[zfzswUb NNYS{]6˃|(`]{v`>\-G?݂(l:O `0 ^dDn}a7'|&T!c7AdBOj&~=Gv:ѼYdP{^BOX?nm/u}9vwoL>|N`0 cJ֌Y" Dwh!2աYc-oSVocbx4e-VxL[.+)FZT83ylK@@t:V2#F#5JcZlۦ)!V iL+UAcD{mkϯ4EąTLTTx!Fez_o$rey+oLiV =ܧOD Ka {{TO+{S`OCl"{KuX)|~\`0 +_xpRi8׀zKɘ#+ϔZ_˿2k@$zekhu'539?!!bo^Z] ueHCfA|˵Qe-0uf*R)1PJfN^+!B+kp {8QD(%Sܙ xz8ىw~+oZf+sd>lﰪP`Byn␏; W;DwUq<>AñqϷ]vojnQ~f@O;]".fw{`0 K^X[!]L\|%j(*S[4"4 sTNkOͿSm?fS4뻍!AT1<-49Ubee?͡aDÚ' ˆ%C>B QT9p|>tk@^ WsYI6e s[x^L5Nm!h(RU8I-8P@Wϯh "nԛHڦkTs9!(rY|&}"hOs;+w m0{]NQ`um~'&oZKݬԃ`0 ObmkԨ4f1DJksYŅ_z浜@ ?&tby;¬7X. dR: j3/Oĩ[UӔHxjf"14.Z=D߂9&i:")F] *Z6ʺa_[ɞr‚D 1P1V-|eF.EъsLJ}^L ns?Vo*nNRZVMC|/@E r@DۯTpzT4]`0 .J!p~f@J ƿ{ +#+z񽮜lbIvvd/hN\h%#BrEH/Kw(E@9- 9>+lRcdc쉭S|< AHƈ1RK(RJFΕyAqyuyo_/11 u%!5&Vn\Z&." G{Abii~/䓴V}}uV~x|>Zp]*cFnoW \qL;b~lF`0 `g%rx%xbr"+ouaubf֋z^K|V^}99R8hXiri:[  Q`Qx;S֕(B2EE3rx3r-_g4FZ)x%ňP5EeYx~*\8)E{%Dޓik&LK>SX^k>Qq/L8-'&AFVRP F΅Y:Mބ.Xc療*7\?N5V"@nnaO9 &>vV7/[qsJԵ`YdkHFߗo|[^9yZ#I2{ƌnj.|{IXR&˛:?;^Bm6vfU'&y6[U{S]CnEC}>T]p hu YU`('z=ZG%`0 ?A\FB5pbLDVs̚@7U 'ܝ3R8 H!*yέk o0Jԣhwi&C3QcJe:XRB4cy9ivMԌTuhjB_ݫ@{8Ω[uA ZFqYN.&K,5C֮wt,*Ńެ;,|v0ub%ǩ_{kRÁnBP?ɮ|֫ɾ*w8Ux}P&Ag¤Hy8!py]91}9FʥO)^rDbbO /|" ڈ)'%fZkX<%\ Z+6w[=K]YoOssn+.hCqδ#Js0k *b{@l`d?߇t'MWlʣ0Qwnm QGmb6y/>>Tiwbs[>d7K\ s'\%HM^e\`0 ()"T ,Ay R2}AC$Fa3V˘l7 30d:f4w9S"αO ;3cJ;:+ O+4p<"QlyCc?kH3@v掉S1!f !+JͅTZ%۹-m-Yoc}[Yx3K8R!LR 1^&jU嘦sz'۶_O)=&b.\Qߺ)oc=w}M>`?>.NJO8 } k&N:+Mﵘ`0 7-r E܈Aq_iX4qi G}XJIAȾ82M j$MTJC2?YFÉSՆՆS38~}BX.]TGkFE(颀Q 8ig$ .L ǧ#b`$ YmY/qi[~xNj+XkAL8{#843^} -^۽cñM+-睔C1>Eϣ*q)*S{3N`0 ?QF 欭rD$*yl)ӁR3)&K+72kTwR ThšZr9Zp8T{`F<(ѕZtS{FtV >u U.4O4k8P݈), B ! qRN̩ӯ| WÌ>4pD\J0nz&yֶiCF]Csq;ɧ;C~,cgBy}MªaF?+tT>ퟺ8߲`0 v0{9NT@]hҬn}bU᠑V͌f.?AŨ\PHTRJZi cqJ#D] >lN˅4E$ ػ/ CܱfPkbx/GD3kY$04*1(*[=/okY֬ ԭmХ)P2HByPp$ J]mʝ=oUusvi= V­[nwn@1vMNoV.ίa`!i0 `09S\u¤;gLwڳaD)Nj,'VV *NJ@8tF{O3˂eݚH,OU]ݳ2ʈlLM%3Iqqw3S`>A GO[YEHyAUi L Y1&^lp!IDMb f-}5ɱaW>[y3RJCh',|u9R&:#AeUئis$Q* bqُJ5y%RDUo?z~KaGOUo:*Bm|PV8J nsgTڸh J mug ]oKga3Dcf$kKuEj:)VRAr^&tPT p8YydfFFBmά(t&mzu9S9heb`8ׅrdbSCs{LA` ېkB2cx;<~cvAt#qw?B{qoɬ7~tGm-U^:"Waz@bUH_ξst:N*r1$#V)O̶+㠜JfCNqDQED@[0nQͨOO; ܂z21^ǽkSN,u—d X%^I^!Us[Gv8PuthZĤJDe"[C^7k 赮#zߋXn#Nk[Qy/6 ص L[n5UT޺>ogVNt:NLjˁS]cq D*bNBl nV aL) J 1qq>O;PJՌ*F9#e)xP J&00Fg˜ 6aIR+i3 )Ʉ !*eY8d+rzK>vzu6!R8-sK:hRJ19Lfe+\' R£Ź|/<(?r,? T܏H`^s ^D`&ݾ7yq9,?^6oB>}t:Nt:{,^5.,uf`SKBƩWr]M,0ʖH1|&%+AHT-bϔZ؍|)̇JP <rvfYfXjKv]øߵVrMm($^2g wc9Ly&y|:r</74(g[YJAW-b%gL* rfvc܎xmF)14\O'2l7H,g#}WpVrȻcÂGP.̷3W/9*p}|W֦|$z>">:b;Nt:B0圧5pfL\0Q^W &y9|$%*_)9>1 0s8.nbe^VcRZ*1FiS&HH΅ϔ`,eŘ&25Y+K%υH[2p::ge߿¿~Wz`!Dg-S*<DS, U*q:D 1 wBԂVӄX+_ٻ|KvQurSp߽/>oE_[0ͼ*NoAF*؏t:Nt~rfЁR B)fD0T()XQ_y `0aJX8*Ӊa!0,#2~MLÈHir<!EyZǯGd#0TN_lRi:Q_8Qy)mjU"J`# (VVZՖV7PBLM *۞g֞QqA2"W4g}rc]ICQDy|=&`?r/羯C|hu W;* ~$Ebd/r6[-*Nt:NPQ":3h K )fZؤL.᠁f^ 3c3K0Q~gD\ y“ Nս)w$02- *E:<}{L`" )a0J]Xز 3^C9?^ʯcMdL 4Mb]RZ]b(9,NLJq)^dcBGc| m#} 7;7q_&/}6|W[ilCv﹯8 *FxcMU$Nt:Ώ!RnT07RHsYǡSTvaQbdmU$4RJ%j`+bmtFvP!kƬ\.UaɅ6j iHC$l\+RhjW#hd×2rl S9_ߨȥ Dk+j %A sfD!RHQYB@ltp163&.Gb?Y=ay;I/wՒ* `# ](7"{cǏB|>:JK}:^OewzNt:Nh}0mw !6Skτ4IqTbbCd.) ήL 7\"RjNGa Ā#/|^jZ IDAT4&9ca0#OO׿}%myY0/+(S: SYW-/Lu&{%|90v'K%b TdžV'2[F|sod ._n[)et:N#%rgБbXŪH7+2+ZL gjtdY؍k/_9ԅHÈkfVKΨ4c`$N'̤HxnT#2/xqJ.LӉ`=g cZCJ?+ۘ^dDΜ$4%=Vgve#cKe6O;f%bP<??s$!IagbPN 3\I8lonƗa>qHUCS7[8יtfLᖢKۣT 9uN"D\88(p.WoA8̧'<QD'?."p~|LL5sgL Q8,g”[OHg9Ϥ172N \FyFEH!n(݆ t´` Ȟyg"ň!!AQVR.sF X3BPT3a12MYax4J(ȻNEXM з"v{r]U{}U ˵\۷TZw@> "mլM0pؗ}pTh%t:ND0!RT03A@B̂P&f6K .m6I;'Mxv%#Rq3cPeax$y32#ŝӷ&T2/_/.6)rp"| Vǃ2tA\R(3 bM?ET9e)!TYmRٌ!q 'Bj'}ފٵ&7*;& woa>₋?L< P`=<$^iDn^{ڵ幊כ(CyndC9Epkkh grw~LNt:Ώ`y>-CH1uPQm|B _ P Z@8nQ d?g9}""L #.` 炉qV287RԔ V3 %Sk!ƈ!ϻ]4cD0h([r&b*82eLʔgIc 8L'\!S6Yj%hBØj!) 5p3\ R3l#Sbs`ؼy0Mˉ, 58zVz@oBk{TAXv,+Kypw@;1`+?U G3(Ub4m,mnooco|%4l\{NHޝքV؏^^$^Fc/c_ޏޤzuM]6jw"2|Hlt:NaH*AǬh=۠L^wڿ] Ll '٠x1D{5ya; s^,(rO/酥& K^a`_lr0ՂK3+e9ↆXkY-t3n8$aXi0Z$VCEV@R )F&B8O͔ mu@M Ȱ=R<,KAŠb0ݔaۿU(ssݝC9Յ)όVRjd+u&FEb$*Q"Nhx5ς*Ӊq3clɰC4x(KΈ%y>cV(`*,b> a<4Ɖ1`N݄mg` ٚ.y xh|+$nlUqYb qH*o0+`Z/ݨ_y; t:Nt:?D\F>0"-'u9w(vjFwHMc¼g*ΌiJ 3Oy9b[dPUXj/g^[)im/< *a:Fa)ML(A.ieB5f (R͐c)Ϡtfz^J&F1it`31 TP'btV5G ;TާM*>J]Qn=qV&t~p|_"ܧ]/[AVka{ Mޤ5?ک|'P?؟.pd8JKk|R(?Nt:NK P-(.'RZƁ"ՍTa;,6}<HCdE2H79ï|GDsYPU8-$Xg,b lZ-JxW+C{WSXC(l,V[ejәLɦhSB8U,T}bgv É0!R-S Y+E.IWq@Ν<|x݄mlvX?yАՙ\tj>"TGuŬ]+Nn`*s=KlnM]BBn)SNt:"{Si&DL*N1!%%[>O[ffB 'l381/3a _z|v>r!%NuW[)OeOeuP!VUV lF Χ5H  Velmpd7*c"V4DSdl'>ʺeAY%LR۹U<]i.:w;?{Qv}= (C{뇔]m'jO*J]}ɥ%sEdM46RQ-{gVnŶu8W{et:NCPrf/#*ih(ŽP=PHB#5ZI(〨a^iMj$q>(n53Y&!)TTfNi%Ār:Rj!Er~$ſ2L6+Bn32/% MCQә0 M/eZa̜'݆&Sf.Gt֊Uci!a5IHmeK1(?n" YP5V.:n(G֛\XErO{#-bN^N3{9뻉i!4's;Nt:`bXH!034c CQzd7mw,'RP c340dAJ6:(b8 J-ZڜLRS$BDYrS5Ԝ.OlJ?y\ѱPpMd3)Eܽu\ƈ{V#*Z5ԝB#z'@5 yw^ġ}(Sv8?\m3냐|˥gҽ1+{={H{V.Qd6$Ynt:NAxP 185bVTVSiu #Z3g Nt:½"g-,5s\N :`ڄ`L\!r^XjfG0yVL9}e:2B4OmΡZ%qL,Yj`hR TA༜Ps8NuC :Èڄf00[!KTT%WC&,UZ+u:Z83̰|\H8,4a m[K*(JɄ.b$;z*Y@BMƣZ=uV-^\FdoζWAV~q+/FgB@oDp-[YUp[nމѮ-;Nt:"L+GrL,G6alٳJj(|yؑ}aLvaiܰbyΜK|Ģ()Tb Z6"ᵍ)DNy&V/Ƹ@A"qP"dyndPeZf4h 0Bʘ s.D Ty~NFDO0hݖUCL(VOr:#DHj.#k?7G/9ƻǴ㩄W̃Cy//B Uk;G:rwAN`ZEDwNt:!J04(I-N؆u~e7@4RR[L"?-E&2$x_OTwE9@5cG5cTg<Q 21ւ06L%Sjzeٲ䌹s^P {rT7Nә%5ܴB˙isY.6`I>}09s*sYMsbcKU"TDRqԜ9.ɱ W*W}Fru/SL.a=܎v6{}T]]5.0z"v5>TZ- \?Ga-{t:Nt:{d[=N#Z J^6Lufl !8xu'f <#8an.Eȯ/+/mAfZ81-,(N  ʹZdaPĉ/R)n {uPDLGr- 1"CIeݶHRZ l@ 8x, ;0nOOFi\aN=R^6&W,Q~w'Ձ>>vx[ CɣGxG6F{\ZLOZC Nt:N%\f81 x(xd3&M-TR| Ϝ?[e t4pȱ,T AI[L3A۰2e-FCB^c)5#\0bfd澦XĜԥRͯ+cq"+,ezK7Y&?1&>}^Xl&#֮Ლ"Dljuq4&o1.=~*ȴ)NI@tVڟ /bE5ʛ̛X><屖V]]9;yU#w")F'{Zlt:NcPxCAi.$[&ad"Z!(9!fd9O-_' DaBh;1]i"ӋlAsb~uqgJD ,9a͉1Dt& k-c^#(eJ. Si!GgpF*V5R}F5SNeriYdNcQ| RVꃛwUT~+PE:I5 I6NʝwrcM[w&Vk[y8*{qǦpIEet:NJ`JV?b8#De##zd'tD@[DЦe/ 10 ?}{ &J(Bv&B' MY*5v22 JY &*/uCv81 Z*#9Tl\bƐR{5㥢A5e ,>c_Sa9L&D8lB5Ul )Mkɵ"r{ !`}tsq.D]-"$- IDAT.3҂^j> ɿWerq^s? {÷P}>EP'4U UܹbrIMEw:Nt:,xuuId/Mdjh3L`M`PRJKiYį׿߾;2(),Z8*缰o)ZH10JfAnJL%,u\،#1Ffd9/锔"^qk cukԩ8n& Rgx>v+ga.,@{0Qkތ!vpjjNrM<3ޏ{ .#X}zw'ZWe Jma9*=pu#iQ:v~G<^fضw"0p jUTk~۵վx*PNt:NG D١SAhY'Cd)J! aka@"9g6-)9i/3'PTmPf88l9*FL n c7%Tr-lӀRdۛҦ( v mf|>SBi0QH&F;:t:NtqZ=SiN^'I@q33JDAYN5dl*/v9&%^OL"N)1BY Gdж)@*$2bt¬RBm1#~])aPlzg /8\ Vn I?qgHBg)&Zڊь.Ɩ\H("a^xݎj"+U=*5"9L\nww6{y?:z~މl]˝޸>v:Nt:r\"Mlb&kihuBZZeTHr|o#Ǻp3cͦњT&QqRHo㪸nXJ\*Aj4(tnSUT6RƄcEB`G۴tNOnTϤ+8~fS'>Tq\:\DšjUZЦYKk:1*²4w wBn ʝ}+,>^]Nqfw=>I{t/B~w;S.Vr˜{}"o)n1AroKڵt:Nt:C"5(nB=p(gJobD4(aݰiDc嵞bY~ļ90O'<e4)lRr,._8O8`n-6FۈvAT L3PD A Q`Ȗq/t+]`?Ml'ҸVL(1"Z "ug1QQU5w:k޻,G$YYDTwGUuojhYL5uff*"̳`Q{Y鵓C`U5_{Ǡ+8\?}*<sn?.U(|=s_+ 'cJzEt"@zj>E:B@d2L&gS4]]w$eI M*/9whrp(*Cy+)*o;g,ER$3C _2ed!*Qr61^^^H dQϧR@m}ɔsX9L%S{L#:]*/_/_o,3f5qܑ5(I`1keHMuC5.#B ]K>mtsa6 rxI}d{kJl:]L7#r]^D׻׳Hbu2L&d2$ıwBs$9)F.y3YNМib|7,?DY%cVѢCsmCGq-ppZ;ӽB-t3]%aYSmCk,na bpXU38 e}0^V3"4Otkj㪣cT3։qӚQJih{Q"c=ebqgcC`E4>>V_@NrGQ8~t/7 QTss!@d2L&d2)tw~F.FHU4u-敳n i#o\XSTp$חr%^͔0u]Pc$WqK1ܝeYUC[}̺mI#;+;)gjoGKoOz|-WO/'LΘ6E=:.B5VQ|;NBΙ;捜*9GdJJ[8G9'ػ) n2HG{!Y'涚dεbH:!F_}\kٯoԐ}̼=QE,~ ޽-'d2L&;]FMҼR5ըH«dM;[?D{}FK&o,i@΢|?䄹a",YYJ%c ocѱ@cYD;j!45C"vS5Z디)ŔK8IphP"dh5~-|MHkԐnd(G`J^ f6dT.)cZiTxc. J)7a?w&^П1+G'{٩C9װ[3y'n/yd2L&'hh|⊩FK^xg6\R4?%e^»#ԧ# &d8òD`\BFOa#uAS ^u#a '\Md̜s֩^A;! et(E9;  -1GCX^kRy-tYe|LT>w(BV%Jtkh21**seT:"PJNYryΗ+ko]y}1jz^GNB0܅R (\nzbe]LU~XhObd%T}}{gAxvNVA8v{` i(wDBm$]qάd2L&䧡Х]iLNL{## hf$Q̍vBd@!:,Oۉa Qp\AB@"YXq\{q8 E8JC^p@75Gizb⭃y+mv"Z'\"؋2ބK?>ȷ6pʑqT4w2L&d2d-z}нC{PII,+= EuYA@chrU\`ə$̢QzǼuY E_dN7LSrۚ;XN{QR Ee0sPUD9+gkpίD6ED.ԑ0HD:eu:p-34k{cGn7q(Sz=%U~rߏ|tn&nh1E^Wԗ<#Gy/v)ײ_3QzyLHjIod2L&'afT3DF67)(;Fw7L`8[VXS{'BK)t%w魑m2Hjkmcۢr$IJdέENZ m{ѣ 7jPC;ҭSJZ*?^Iˆj}{C$sC 6Uڢ>-VSڑ8]{S !~*?.gMPAwbNcy:HQsA=֮h 0}L&d2L&2+ޣcwH|%Y_ˑp:*?\%gNw555,Gj"I"Iu\/Z1"0W\@׼q:؃<wDڭ+ޡW߅o#:1gIuHYXJTr(&jKjJ1YJ!B6'g?%E֞w܊τح86O A.9>#ۮǽ{->JBdv&,V@紻IP{MnsX"nd2L&dXR1rYI"4%*!+?(nу@>`}$"oĺR8,lԝT : c )%kEYs7C˲kSXV76:Kɜ8͉qwz/-gqs4LT8r֊Ї(6Qӽcٍ\27RʗA)9yY\ʟ|?v2Iwѹޯg>e!0FGU9'F/~x׳=>g_avNxfU$d2L&A %8(9e\*Wl(nR8º,itJ6I;UWҨ[ܬE9w[cID UrN9gJJJYP")1Qʙ/t^)l6)@>x;!\Nq1uhhts^RY"ƺPvMLdڣ+"<FnqQOOBzew&שKù.}DLL0?^~KyI/՗<IJ M>d2L&OҖ9snrJyl;՜a!!DY<$ q>&;;/k أZCEnE 9)$%XK=?UDR2)gJXUBkm'0twDUW # -c O=jFRBqN)Yʱ?صzo$1pgBQ_w"NCh nF^ȏb5.ǺBގ~|E`CMɍ؍#S?>qT%Ɓw(޻q]Qj"~g.䣘]MtwzS;OOq%c nmm2A]>VpJ?w.~'d2L&2gkT ƛu+$ rƺJN0sۉJ,H$G5HN  FIa|ƪΗ{㱻&h麪yktI:8IEIwE;H9!j8Yޢ$tkQ%if n`cGOI]A)|H[?|R~vTގg>8z".adeջ ZL&d2L& FI'tkFMJ%iɇ%uE"Y"$+.䢘5~&'ʺT`Kv⽞Fmm6vpNEpDc81 Ǟ'kY0ލW֗NZ:PtaIZŸ1ٽ6s0jaL ]nԞQ5ɳ 5cŘ@ׇca?.>`!ShA_n׺ 똮~t)'d2L&6j,I.7ot5otwr7ʪK,iM3A%#B3VrR=*UbTrk9Dk)#jk0&e 뺰mgT#Hbp*eh ;oGᥑ3zEeE5uæp)UcsWDq4EeZ8pWhfw[z ]z;6(6o=>~OO}xH`ȥ$ \LCO7xM״̄Dd2L&gIi> #qpWM//G9©7LM\刉!)1 %J*DXs5r\;dso_^YBBȥmNJ;}'.?)v]&qn_k߬?sg/+Ϝ>d2L&d|yӽSD(Z,Hj,%qY14uA`jM5tؼ[@Y%)iMXM֍2IDGĚR]y;Q^)K& 3!˗Η*Zΐ;9ŎCW8ᚚۥr- *죜O`NJw)ĺe\2E؏>"Oڣ{&>܈Q<癓z}C>|t8￞{&?Qd2L&_itR294ad8^țS3)  I,ZiGIJƺKtidҬPȚHv$ =`ԖNԭBݶؗDX_(BK`qnTbo۶cuζm $]F[{ uS1X!F9_j[fC[u,v13n#gw(}ou#QcO/e,2V_oOwDr'd2L&ɿěcW:^YD֍ "Н?;3),)s1b0+Zբ!e# U4iZs!jsfYN%Hs%:6*y)Sx'أLi4 )1:ʎb5ZJ:xaGknC3a Grw0wtU⟊#bNCy{|^{kcE.E/޽).'d2L&B7D) 4R^b!)?<}w|XxLL&d2L~3,C\ed///|'$.нKإl"*4#'^KEI*V/Z T*6뺒$>U;wuak\ vb2 Zo2r4{GJ>:7_.ߛEaE5&/dL:hb86v+R/~&>} Rn?u?;߽P&{ACBߝi;"z=S!xD\/|d4L&d2LR! 2Ba9174^Juc]`V,eЭ:A((뙔 p'k{YwZE4H)qYw0a5c2]j<~]ñ -Qǯۻv~,xuBc-8`܉M$x7}| ]Oz;5nO L&d2L&?S?yvFJc",*,Ģ!>Rn5Z?sx-S=0ő֞puwkE8Q}ΡRɸaGHNFJ2DކH'ep_3M6473f*뾏WMkUBqw:sL䱻=p7v1wt8#Nht>k*:{(>z+wC~= wpCxͿ&d2L&S8uYJRx\8FNe͜9^i;ǞfN,K: -!7'PRr`M6ġعNI͝.,KhúP!Ft]^37 K%Aԩck,=:;#L3"ܧ[ZꉎVew4Y8(RX9D:(rUbVؙz(Q[A0 YGSJĵ˥Ve_LtN&d2L&wM ]y}y9.eHQJQZk5ٌKK7U>vbѡZqֲp6rcTHI8 a=aYRΤYDQD֎f\,ѐ\ꉔ"iKIqWTKIoZ72|/ktSa#:zk%Jv2L&d2 H8e]XBZbdx\HY֨ݨV`Ʌ9cx=,lZ/ˁ#USDѤ BDB~,C$JI,$tqpqIUj;.PΘ786ʋaF.p=KpJUaYlcR̄rT zr Qu&cPGmjdԺQJsyQ{OEnlzTdU0nQs@Nsc}9Ьrx-~1YnchÕTW=Ft!={ zӣ{:ռZWW(ݑOS"6"wRgHhOwqy+0o5(Q:Gf_u2L&d2,Qq*HQ˂HB R*GHJ4X=[GU)Y)9NdJ"ƯKY07ۓ*nFo? IPd.zT}7|B; YN"((&07лF)Zج{1޲IYqUR;}譝{RO`kΣ?6FF?K$)S*K1z}UnD#sDw2Sc'd2L&f z|$SUʒw,:c;RCqk#/ szmu(J!<:3uܶpkl$v6.Z.n{CtCT;1ju$:V,|"B,CU`|6w73{L*;:2y`(^oRfz{W_8V<*ƜL&d2L~BV)9Lm MBI ,v(Ͻ"#"t:tbu)K4vR.y1JF^ utHzwexJ s3)%esF=Wν뷯%H`^J\B$;bk !nyRp@u]˜,z;%mܠm$zEwQOǞa=p0Nƭ $S:'O_=bN&d2L&?f^rHPRFh8hsCx{b͙&Nx{'i"- &~:t`NiBR$)⎵"(BkE qf,u/_N,Ģ1n!SJZ7D BJ:ceY8ϴEΞ!SօfD더"6HcB7k~1[x4|9|YWy/4g}ژ;\q׽~D?K}5q܅g/V|)K)wTQܹL&d2L~1 fRR֜ RbgN^q3Mz,ڢr+[Ikf;!'(cRBiI/NFÁJm-BYemw*9+}8[)Wm)Qr :ns,v1])}蔔I), )8ant3,??s#yq5ސ=Wtq:zg@uf Qv7nyܔM&d2L&[ q1QFQU4X)Y͋yS3K$vqԄ%Ǹ"17Ic_QDќ%5HM CjvBUHK=z&]"ez:p$cMtTUuYDQ !imo}M#*璱},{!DϹrO_]%ߋ}rl\m_sDL:W-y{Z>4L&d2LSrAS⸬hR2G]N΅CƽGX3#"{&h}K^)ץ 6{FkLJV+"B'w^^eõt|3a0ZPӘ;: F[ݣ"\phRDm 'qݽ7%_FrCDe}??'r/óQՑXUسG(7]/?~?}w?&V_C}Or2L&d2hl=='0b1͉q WeIHJ^XDёc֭7Ҩ]feTy\*汻Ͻ"px=b') C!%g)Yt ˔fNj+tX; `#GG7`"Xo<,KaY Hw&\~Vswy=J?w񏻏kx1O#OV\S\N&d2L&?òPS&"ѹh֨u#8AJD%Ѷ3];%%뺢kD0Z+K){R Ρjp ɥOR,v&SRvNo69"@7X4;]X1yifH)>F`~ 7QWgn=k>ȼ'TV>域KM}y }tk}Z>'O$]V"wN&d2L&? 伾hҺr:J54 ]%6u(b3%彞))j9%j x"-HEc} rʽMLl=+޻wqSC?eVFP_>K>IO d2L&$/ Ojb*xkAR\Q>*+ڌrDCJA?InKuZˁZ+IR:e]Xr[p=&kx}=bQ}#^i#uW;}P;":Uf6UBQUU%cևx͘GbQpL[>g"[wIp}~=un({Aw+?yz}$grɘ|ZC"Ԗd2L&Ohq]ض3NIUR_W4(fm1*(N9DoETurIlFڪzt@-DD'v.!/3NٴnAmɸֽRFEJۃ}3P͡L$jHTGWzBh !$0VH>ylV>>?Gq!&@V<^l~tQߗgfd2L&d3eHW!W־iL^ɡJÝDR%۩i=\q[n,k"KTwDkhZKLaeF)eL.%rHY%SKCu`Л8ByFmh 1ZN-ԏ*Xǩ BYA/ݗ{Mh!r#iZ;C)Kq({&N}۪Gsk &E"Nw<߉<ܣGRfE_ՏnvO?L&d2wqJNZ10ׯ/vFs8{BgYKcP[(\vL GHw8jd9Oen䬘;&ιS#/;p4 R#6vFwPkA*XgIsEѫ}(mXpPϓZ?Kƽğ>VܼKpMB@d2L&ǒI)~}')D )[cə pĬSPr)@c)z|R ˲zG鄊p<gsɘ;˺r>) a5N~I WQE)F Az֔#XIeICP:ŐpwmUiwB)%go5g,IZFfJb-Gg7?b|z;8>{yޯrƧ&+;"1(w{/׳ QO&d2L&"9F;Q\"h&[RXCţjdAL1=y6N9T9ػ8l6XJFZ26R͝Q cF덡k/u2ZGUh=*Dbܵ034Ec'4HJ&G$:0S iA%_R7Gs{pa5Z|A֭ػuʏٓYP?%>h;]8ώ-#?{oG#idgqgKp{Dd&.[?4gosiiiiiiiiii/H*C h$:E#crs/scf}rT[)5FVR"ݣC]UNvw|Y)׮.{ccg( U-\ZZZZZZZZZ.*XqֱH vui[)1>mn03nuKJM;{k{7F9Jm?S:Z+>??s7Ȧm ;w03z V ǖm6UڐL\F0ej˼-EpZHܳm5A@`{<6z|AW cjv@g{Fr~L}vohu)~DΏ;gsrqw<_3l00YwP6gd>\ABVr:tG 7 =jDTUQJaG59m"DVBۖ1^}˔Ss"9w֢:,bԺAQk0d8'0Q?FO$9n"Ю H0-EDa <{ВF p-7C-|NnG3eQ{▁ifRqsB5_Nδʾyz!8 ~npCJ7 ̄ߍ4\Ϲv/CR0$.d="A-Fh)T0f@ז#fĒ?L *)8S qaZfj gȏf7&`A."u8 gWɲ_&n$%y/uEŘmfLR1yO^/---------}" 1Z2t[8$ &n ,R+@#ǟOZktGx@Yk-96*vl7B- ?tP05H:s0`);;9LO g8RSU0 XLur' {k{Y0 ;gOl +`wwsɻqWW.@;%"ߌ`19 wԜ!k?(W8>kp[Vwab >~|LPd"qԅpC=>F5+I5;ao{R""xľc'ݒ ?4l8Zf keEcfddBS3@OACcJsT/7#kYaB4;8r躃8:~樿;Ԟ!i9vC/{S7o^-m>ϟaO_;/tSX|~΀g3z+r9/.JU7>UsmCX`p@U%{#1hL\Vl-~@279Qw;n tX9gK)e1FeH82v@^qTة#_=dB)U=‡TH=CTu~i1(aާ*){WlW.OG}Kϰn銾Zm2,2M)^n3)6l@ϧ[ZZZZZZZZZZ)ZPUjx*m+4FeMP}B?uMFkmf+sO TuS>-Oq3ߨj~ 8}Z(,VVD$0%N!0a8m2ȝL %(BͿv0@_(2'Z1}~ gs_|a='ю}=WEKKKKKKKKKK%q6k$LQ CCOn >of 47Ҳ$zI鐭@GH݁&pB3X셍F*{㍝IL)J0 F754+<{X : XELB]νʹC?_~u?;9% }gqVOky`?՘)`_$ůsxiiiiiiiiiiI2FJ=]W(w Oߔ$ds2q5DOg؍B;Z'@6f+!s_Ѯ[p(E4%C2Ggi+|L tS@UPJAXZ9U1E4q[.?~X f/&3F1S6&VX5;Uǹ#v*{ nq&d>fH sZظ&;שݣ[] l>ǿJJ0;,{|c4oX(; #cvB3sǚ!IKKKKKKKKKKKO߉g ?qoo-*;iTSܶ~mfv@Z(.5Y~AJR{nf?n0Jc2YO1[rHA)=t;KUu&? R4n+"$OnGIzb6+T; wDQdQAc{ڇ_a%Fhi"d|6c ?Q# %a˟}e<;F̛ tl. lm}DJc`6;@x+QsBa~}käUkN?jT5?'^uXOU_+b>}idҷv4Di=Bj.#,:n03lRՎB&"}9!\Q+tQ>D0"f`GmL!` 0>K" $0G/f"*r3 B rܿYςfϣ}T&Gq 5m2w8{LtN ޳+<ί kZgh|D*oU;ס{eMϥz? ^.---------}}:RbTwZ|IAA1J0hQQw"SO],HqPQ\ 3\W#̜%4 tr4`N ;`&FTp ìGgrM ,GE-Ubϓ FpR8M Ljlv1^~i/+Xr_FB|c~s@;EWg k9e\w׾T3J gPЮǔ" 1ں 0 H ʄ->{tN:7IPAlRrst(ћJ@ ÍP59595 aER] B@>x#v%H8Glad0NNlMaҍ vJnIP#ift^w=2N;@g!f>%̞]C}ͣXZ)AV_uiiiiiiiiiiZFȎ[(xjHIs*摞Jpkc׎'~hm.M| &q?68P}K5)Z30X\|ͨo ה`ZN΂``TzHXy2y0 [ P~`1"jTz~яO#/A?Oɯĝ9Crl e>K"I=t]KKKKKKKKKK1c#umt ) $?~8 ]>[gk`Xs϶"U;LGpB*}1'9Zp'YklHܿ<  2rf9"LfQdng'Jsqy\onl-% -v:Uw0HږK)r4W=@}tl7*.&Ĉ1ba-%M:` s'W Ypl'@~nwwlu}`$ZRO R*H0u #f m^}8ɦ0u*T:T0L(]T= Dky̸;z77zJ*/{WHQ-2]̀^6jH;;;W5}㸉'0 >c`]7(quJ=O◑X+)viiiiiiiii$PWΈƄ}Qk+OC IDATG=DŽ v@D$BQ )j8)X)he=WU/(9Z8FMP:Z? d¬ej,{H*u #,HCs5xBZ 'Pl<6syul;C۹ t#ϣoSe}p|ý7|N\)w$W\DGP=oK__ZZZZZZZZZ>12K+c}3l;ZWhU$QqA` Xfpnu& C C6j8p-N9?Tjvm6O B R@ *U)?1z0DD9*SU,];+Zoݖ1#x3)ssTJP~ 9H&Z\IǨl_ԓ _a\GZ䴯{1 9~LGf>[| `Gk-J8j?or4!#1S$/Qp*-&ɡvě 0#.n6]Kz,GJmR{RP9DJM 'J쓒g1zjgl3jhG>,ә>Gs-!zwpJyu`;ϯzw A0FHSȵdkp+Nɲ*mBS >;ݝKKKKKKKKKKKT(*jNv(YWRkɝƨ0qUB`fo[H]HF9U^`1zY0#NP )vu+`.#>R6H!0 J[kJN`hL58&嚢Ę<ED@%Sx+ 7'  8̰3hfGxNzք}'iN;浩ѾWvn `ƕ}=dqqAl`iiiiiiiiid,Sjyz~:qL*7*n9Ք{61td #oFk0bǒyTwt}tayo5KJA@DWWr7[ekqWRDH"(F2 P>v5۶\e_B+D'wsJwsD<kxcxP:Yz]k:kkCV:GϚKܣhҜݝ8WʺCW\Fy/<PuMpһ͓4{֥L)+@QXwlf"?`8KDM#HP" cT-{-I' ~i#xO؋ b 9cɵ#$5G&3a]QDv1XdvnǾꉛ8ǎQ KvyX@S+pX,dG"y Ϡ ,)pkQcosp,f!<{T!{>aDsQD&TщkaY ^ԓSi0)թ5-"fR@ D۶A-\R - %/Rj&Cn^3E mvB(:P~&0s9 ǘGf NM'Un0W|q]Nj˨71 RfP S-,=s???Ìp.ic ux{3üG \A`GN17NwӈA.L}c6tr/]']iqMj,Ii3h&\Rl "nmD([{Vzömsz,au @C$9H #lwD 3/ad[0 .J&ƨ(%gbԺNm;8 X#0 Y&OH $]{#Uz o!1;)FSjQm0C. 8Hd%\9zk809O!Hkwfmkusp 1ھv{>JZoS; J;zDh@(cD*E$5$mBfHgpNOwx@$3=5@;jhac?H~6E汛ɹhfjDCmZ`{@zO8xt&QQ%k}'w@>Fl5.n](%RYN󖝗 azVpM:4PcUqKz+Iu,|wb,zAC KZZG@Q{ ;H[@q 4]K bg`*8? '$ D}S8G~r/%ؙt ZJ.J]ZZZZZZZZZ^e ls,6\<ѵnT;R P7GMd0+P<`Ѵ8؂2N0֭ܠ]\tzSHVRʼQ#h50Kn Gvc8#51B|=cN8X@v-@].8`QX7vr P{N?5xڹLo\Q̇M?3P8gyZa>KKKKKKKKKKߥH| ,Q!%` sC{pnup8RfE KOz? #-kMܲ(Ѳ Ei֕R#V,7EP4Gr3%lGI)u23ƮN9'wR9J $3_]9Rɶ"rk \wv#P7IѼxcO:>H6Fix& ?T4Kp2#7ߗg;I4Z10/e\PI1C,>$4.~n) n%^2/Gxk7ʠS{gl8 ;دGd'8 (˥oQFxVg0ˬaUi # (ùnqQ0hm5sJU9jq[I0 SpvcRE"'|^v6F85 g9 Y4lۖP>@'+ 4 @]<ƈG"Q0M=h+IEIe=]XBD6hHS?E8'C.$`i9b;Peiiiiiiiiii{1cyFpTVn#bUh>l[ =7@{pBvP:±d Z먵BZk" rlI(\s“FJО`+3þ}Pk 5hw>Y>@U$cɶ`];S&0"s 29RW#.5,7`XG :;%wɒs Kp!DZn 5 ,q(>aAF4 kn/c>eAY}5얔"33E55A "@Qi8Y u~!Ķ9ep&"l'#gH)&̍0""yԟH@u@_03: xuY; 5},||NQxĈ-I3aw?+f ;+J ˘iv}a8I{09-=ޏ ==?Ơ[eˑr(k1(jCE@kilW2,h]cDznNdߍ Ws9KKKKKKKKKKߩ1,sQcTuH-R34'>&ha%Qbw0`'Pz9r>hϞI㨭?fQ[5(ff@]op A&~]1:!{0`nhڲ_u%f#Ֆ%:#a`0Up͚Lu:v*=w  ?!zz39 ;6|4]0i҆#vL2FY 9y9e$Cf%x!@W> rٞn|rl`yiiiiiiiiiiߗcT*V+0{LX mC~0< K7 O?1(v,&F(ja@1]T 2u燻9ǹu |I=o[ {ϏEgԦS sqE<>$*[@t㪣bCu ΁N$`u! _ϰefHeQiFICKr'Ju˹u #qvp#]U|9i&^LM_/9.\ZZZZZZZZZ6 ɪD p{AfEcR]ܶ 4  Aep(b(^]q>F0p0D J56k?FH0YTEY73FX,3{nh0` uym^R\O{3#133L'<@[1;0*6r4RUr BϓSz#gkIkT/aB05j퀮X#N+J!Ԓ1X$^20fsvE{oƆH-8&!8uݶ+%S{Zd[<ӥIi-W{aGw#%"D H 9yWo[ZveTjAo U0 k&FF{ڝ;` i+j pe&@h_)J08;N!%(n-?k;~rpm70d3踯+$.dՒ:bxiiiiiiiiiiւ}FsP8ʱkx&23 ..m'je_ l#S(TUZx4x.# &!"hMg*=y6Rb u+ptlEXzw'~cL}PJY8T -m`ByrO36~dR,RPo9Dr׏K9AV=LX-7m ;pZuwG2J:"zrg}~!y$9 .KJURV! {O27$|ځ4j}Z^f(){H+fN $}.k&z@5Bc4EAOFhfx.V+=W`qM L\d&"eLa`';?i'P2TT8+OXrgOV(jZd @ ƬdAG8C OTc7[zsɠ"PKYJDpki)2L,Ftt'3wC)<_&j6̹uu ɛvʫ,kM=L8Oʚpsgf @Ƹ)r.a:#_*Tsf>c4 u|fAO`Î^ZZZZZZZZZZ50,"0$ jLv}&ZQKZ$C6nϟ8?Bpq 7Iy j4N10We 7Сp"Z!@up&T܅4BO>%jQ$zż=JSgs$:c$6R.Ͽ]ҷ%\V`jH[n@,~p23H14w1H%XaDZj #XȀy? 魁" UgxdOA@GOsD 73#HT5[b% e` VErnsߒdžN=;ZeiIꗁ4{t@nj2\h3j'`;0:X-nk%H_flhXtOЙV8N☉ey>0p38H:D8[vQvU"_:# Aaa-&0܁kUp2 FQ<f!w;z fD ]$3q9QD8/`<]H p iC~JǍ[UGJ#axΞIɝʧR&h^6?_~̀MOBw YybΎ]]$ &j#8g05фa *F 4FGfUXI33YT x#`oP 0Djfe(b&B[^%xk\=Ѯ p4:A-Z[ 䀮3Lˀ%ӡO=p7Sc58L ״_aGdg%F&Pd%t<5'3w1E=,W/Z L-?X:c1:ZNuvnIQnm 7WC!{njwI$ٱUȬCP.[ 9}oeGT5EMER*+2>j88n˗8r& s%5YPV0 MN˔C`T zoPc@5FGF:ƈL1-@kD7hf YF|p*q# GDZ0ż}v''_:k􉆹U(52hN5d''5$w|;Gev R`"wV}ou{^׽Y3FMkaI+p$'?1_&[ 0L0(haX0癳&FؘZ fI xp;@ki3rF0єb a]xr )L$>G0^9ېj=BZk8 =XT"9SQ$NL(d"C s^xAȖ'T4rn1jzcl ki5\'ϧYI=~}5#ߌ Mn_sy{^׽u{sV03cL-g3<[ `Xz8`kGoLX`G[k^`.Q\;fWpq3Y3 p6yɚ>*q@58 SS`0{"3Dk1?ghls&%5bi3w *0]8礘y<=i * Bw7|mltK̥SU P "7ŀT3^׽u{^/CqYD a` Mz ӟ٤F "A/!0'FbBU@or]&A,^a@ "uιd+|ʅU#ԇ8tuɼFx|2֚{09ᾈ 1k0b (9^Dk]r!5 z )W5h̒?;궍m\魶$ w~2Nlj%~ |z?f9߻u{^׽OXr? ɀVhfCf!5j<(XC4"w0@9$<$5&Tkf r Qq4j\ȶ+Ni-RkKMZ)@bax$s*\-D`?Ḭaו鷴7e@%#1[+Wn &`1]}y#.89+4cw 2W_%m 5n&Şݓgl^׽u{^K]]K,Gk\prG9qEnaݘS# :po]91˘* ^d* !b v%q!`&FO"*w 8G`ֆURD@H {903(<$(ใbfL`7CyS^D3 .sfX}w+޷Nm3N"u_Y킾q1J͙Q$׽u{^?e1'qE=0 c!ƕ|| ŁXօ^m ,խmZ4Mi: ^>M`?l~Q\bwm?\nh OR׌kml)`*i, wPu{^׽\@X@@f}넹A(dM$:pG g` {^?r&Mʐ0Uj'Yv)c%%ZAAA\*%gRGaT2Auy=҆ az:KꫪYC/*->_9tx?/q1<;[8`_R۔9eG?+[lŠY2- ne6 )u{^׽OZ’A:[z`2]!6+XD c T?S6 L4f󅣇r`J%Clfz,]|LT2k  rd,uV{im*)հ?nxJn14aR@xC ? ɹ*3)吤@dFO渺@bP_֚9ӛ܊N[`2$hJ҄;\&茠[vJAηTRFz]c0'^׽u{^-G^l&sDՄ"#kxFMA %%<]ÖWƐz`P0dʲsjJRPA2qyM0^@ )yi+)mmBb@@@ƩP`! +͠~,A4BшxQ@waaxM< b>"6kjk1P`B:FxE_= &uzF(ol2"׽u{^׽K$!Qr2LZ$=yc< sO'%Z ̐j2|< Ǒd$ ;D8g\RN5|i#1 '`){D:TO5db9XWY &Q)=H&.*Kbk-Q~b$#Ow3 BIMg8y&磜I_3fmZ?PpS @PhB7$sYk^TY5 5gPp|R~g߳C}4QLL]e(MLbu{^׽u"¼G?Lb8j7=a8A`xD UEkv c D;zpw^IA#_;[Ak'z渑HNL=G(=pc*4uЌi L019*K|g piS8Meҥ/w _\݃b,:o ;'sW/z?עd$?~`s 4YMɄi^׽u{^߾!8Nbe.Ҳ:`y*3N3|{*Pzh #?{[;iqz k0 p ?3NLXs'23tD5q4+~8݂&1d~r$ 3Di> << " 爴XllMa_86cV ip\E% 4iN>Ud52҉ޥz<ܿۓb#R ɶۋ*/o ;_'hRjKl sfhi&Y $wn u81s'5΋~EZOS}:o߷5 v 4l;~:@cm 0"tX@C5Grx: ]:8P _"Kqi{׽T_Is ߸]/Q,ቈ;S^ #Ɩw'ɺi.Skwa^fD/[Y G|ثr?_-_ojq0`  V nt}u@akmCA g$T#Z`JON-D gmHCv=%Qg㉂6ū11,,ޔG\"3YL<:ǑPŜ=Ut 3/Ea#Ut\)OÍ2bd >DArCG0XslrY̭$dj^}B^9"~^۞!6 ,ᴴj#H<_3>1#S,MհK>fn:TḶ>k^ (!Y@ͷ䦵8`&YNΕkV]RbT%3~)ih{7nx:\0_ii%a9NI AtTS3|ŗi~hڎPs*ym!/`|^! `Ѹ.k+/`7s-uZz)u.oM\* J+^ ¼hO_]1_`n6LOf`#LM]E<ݏ_+ sm$"0qH|=s̍r߮#^dSŨ0<9,^C]ЉAZDoz74S|zjojysS(,H6&jg;45߇HzCT*pm}~%+8ޞl}w栶3ǓМXE|~*E)۶7F X dV:ѬL@, uqA d( ̳8Ǐ1\\&*y35i49-$h9|#ffF&LQuW듡X֙8Sp0L86 P2ZR-93x+6N񙛬s5Z>-fnUq^c㸩y}ph.(Ee[1lh0PR^7*2$#)mmHܾa@BK0Uh1I{^,Q[2S$ -upw7&`9]0f]Dp '8Y/)"=[ 9W<Ǫ8p XBցaSEy3|:K:R. d]13|"ݎ t-{H1 ZU[Wq>z_ b:"*q]?SqaҐjv)c&6G\; ٥wT'ʼn61@,rlu9:EUBTdQOEr9Cͼ(>w۔$vȿ]r |W|xˊgP \8, K%^6BhᨚӗC  X~>&hElV#в3CcHxvy*D NgsYJ'۵o*n IDATv$ WMՔQs:bg-Xc{&_g&@N hqdLь[bb_,tWrp0nnI=LCwVFsz}4'S׋g#ATz.h#`5@i *M|#Ğ}H\C\h̭ jLpOF{4q^Pal5弾$W%_ =tu4p7 HdX& R<288: |@ S!5||S3MT!G<40C>3B8. rX T8ik S|@ӛZ ֯IT|iicc~a,#*• 7sw^ǘPAI% |0+4Gt)ѠhpWHȑ"k""5zxSu ,~NPY쥈Lyߠ6})uѓCz$H΂?roO<45KI^*J[Jlh9mLzVx -K\=ʍbsgcDI%;dYE%3g~_~^q#K"l}h%LJi+]H^0tTlO̞u ::B>eTFʌZ %]-PG!sYZmE;؝s_< X/o6gBh#!8:u̯ j>:י߱~ƾ}>f؀u7ߤm1Ɛh^q!a; _Qxe1~0;<u]BQۺ䑻`a\,KHo 0:FYtqahFa*SHAyJB)e v0I_) I͡bV,v 8Uxܡ6ptIjIjg׻%GjE-XVTLO&ktn91AHWncg=[~c 4hnJ\f$2)u#4bБh=Y3f&V,ٽNR%#^@N4uip`$y=>)cN;(ZdN[JFƀ 6x%lvb>HJn8z?iZMr_w8:@P0NfH1G6%,A+% aG{uD0 ƳY1f@$>"0^:>>:T QJ8=A9h=q ^xH{7C|A{Hdx> ^|ƚG}7΁?~|⷟?|,i|~פ$:^3U}9jmi i{'"lhd2QHWG)O['0u|lYaR ;!0nljV(@Cebΐ"dN0q<9߲)@ D4J4W9 iH&^ӏPn x=  ]rՎ1^<=ƒ ׊|yDLB5.JIASc[!ZV{2Λ WV,b>}ylؾ>T,WŚD`Q~Lmꐮ&mºmχYv+]f.Q)DŽA%KIR<!QJkL<mO6t2f>(yGITj@/2foE*.gFhkM87j|4m0«rЅeM0;uْz}mYSrQ[1dxWioQ+L@ BY6rb9޹`FkL}y2 ʛ|IUS8 E}XI%^g3$N(jj`:YWS<#EoA\dh BG#|>]!7N4DܒxYJBIyZ҄f Yzʗo cpG5 HVX=A%쉫i5gl)Nq# 3F`"V*#tp SWQ(lz 6<=Ud+=YcSE' 4ga)T_ŽGVXRSG9+t(99ٖ(p!#z>'K]*vp;Fs1F* s_PK7:D#9=u'{R ֞?;~< ɼ=s^z3]{SyG'~||@D?]Rgz]Nfo\ק P (js#*2C 9),yܼ~%[#aH~*I' sQt"⋲ |н Åof/= &r9ܧ {:_$"i-F"1}kt7;kz&^,e\-M+K7܅ޚ=>x w33ip >@;+FK##lJ=\ G5 ~8,7Qf0l O[̥b-0f0[Οd8 W޹& oYyڮX_ M*궁7z'㸼8YO&{^]4ђucLA+6Jr˧;EM)3/cݟث*&!$gp`boF+}ʴC a[%Pl$% 0EMn X6P=[6'|#"mo臠]( fl 4d{9XHa `{Gg>Ր)#bH873|o4(lGóЊPf Pw"T @ѼUA~9Z|h鹥(M#צ naс|dGQ~j J0Ll}7)c4eĘ -ܐ1[U Oy{V!L C =+7Goo !S&9k}Ԛ8XSzgdX9>)sS|ȹ "-%בl0NdHh CGKj[9zg'425E8O'h:ɧƙr>ZC{D`[o-_{8dkȁ3a`,V7AF0[(r0R %&O{й7F)5upEx1D-VЉM湔tR>=F[PJY`T Jior) M14NI.^4-!˧6z9)*t_zt"!])+ 8m LHWY@l?;QI&*[*a@.],[hϥ/AQ\F-Y,򷶆12]l4&$UryKy{ 'x`L^h?@ѥsxK6/kx1;|U4\Rn3)ޤR%8YM$ [%2+ lmRlpKY4`&F$Xo$9lFo|i5VR!lf僐eLZ3mZ"'-f2y;yb{ Ww3=4xC Ak&O<:@ u@L%Lb|" A5szD\v=*Q3@Q;F0(H$s`=qힹp'3[F4`pRL[8y5к *!ajIAe%g +=jǃ҃q鯝ק\'#,"ҟdLӦCK PCª!eK<0`ӛZa^/uĵ;iɰuڛeKR`6^Xx[1sJKi[i`+J!\qл@AppG1eT0='*T̯.sx*%a5r qdGsCC887igԞ*NV?~8Gy 'L ~@o80 Y&`Z$jDhl9k54NKWZw)z?&Uq2 »N%s֏Z9aa MR2{'O(h,, 3Z`UuH粘i&*T$iv›mJTDJrj8]fgTE$^l6|} A %yj_NhMX)[b,P!:ICbkjI>sa@("m20BBaľb0%86;@ IdW2{$ b黵n]r 7C?!ФO=96lIJaZʖ &,+/@+6Po#IbbWf6Vn p875%f(OWd;)I&֜s> *fXf(nz5(XLj)hQ_Jq=@Z=^8:4ZQVX~Җ XdMfjmtD#t0 [gRl4MLRAZ8F5"y&aTdc:l0@]# rL+UaKn=,'@iȿop[_m#M n-$4YIr Pys0.$>jFP$1%1H M SEoq1]~HCńfqv'[f9e|wtۀa';b:w@X5m`y3^٫B2 Wi3]}&,Փ*>~L#]1z6(6-x8sq6ͱQW,F2p9 \fÔiECn%MO|1gTRwEq <8^ײ3.`vfjÍ,Z4DXS'b+ AxL &AB/@c@s|ziVKmSclRJn0fVc6r.ߛ^Gd_cTАV9<' VC%˙Wf%3v`Zays)7$&i*jߪ}z}`ej3 osFH[]Si®~76Gc QD=B,$yd~Eg(8?.[[1mo,C2t!X` #)G4>f@%yC2lXi9'rJ,JL@ʌ3!W`:-!?Եgh n*Lfsh)7<'΢S H=)Hgz |܁q#8x2-UވhѰjxQ`6!̡ $!L'&}I-+ϸ>zUm5*BX2?%|J׈)&\k098ۣa<#]ZKpfJCC㩊C+ُn=C-̘ 8_g*Gdbdu:@,-|Dhg(WXR6/3eg Fr 61Gw>O?P<>_v< EvHIrT@a.9̚T`d1p}FG?tkRfҨ8Bc]c̥'~kv"F=[GxR2ذhg0x/_?1XZJݖɳc ~:%(sLᬪ{j[ gx*Y, ykIԜO?Oʹ&,s < fQnAMafi\ )/og3/֧wR, œW2dóLH̑.>M(5#£' Ƒ< -%)sGRcqMaҖ,$]ΐx9xSZ7&_>j@ IDATnЍƀs_e߾wY\ӓ97CN{F|%)C'^ok|D-'U8~tz`f'~'H^k ++@ VUsAnBM,cL_A)X8&%b#?FSQs"hZ-p@#C$yMq4C~x07ӏ=@q/q-/E Ӛ{bӭ ƃk]+ڈ4GX&TG;tw E fwi Y|П(^i1;(Ѷxf2Q\*)BE*cX|~afb$֚3㜦7}_V'_Ridf>db(_ՃbR)C`*0?@tp's# tBu]Wj;\Tse55.E&_hY@Gsd_2mJͲ@  <}S 0ob ~ҕdf0`πgw8|Đ9/=wHYd70^(XDMo9( ny8|#F q;l\;95@ED3wvFȧpz^iN[:%_#g/@1ebOx 1j$ J N0>#Er'!GQɊ.lzIH0'yo5H_D8? 8~ 促a W0ׯ'L5ަx}xBGXV^O.8wP _ p6K̪8њq3Њؚ@.V"я72N9Ӳ!6"Iuj${GI?3U4UsQ$_zmH_PhJa9ߐDхJy2#@*5 L,+jp*qؼ 5_^>NssmXs3 zNT&~b_P˱%]@ɄlcD*3i3lp-2c_1>It$s352{PE'YNŰFW&q]|e8t6O+Y5>t%r+m ؝D%j { K] pz3)!'9Vr>RlU3t֐d fHb+IsDKĹY:ySeC*Ȓ_rUʨF > kyXQS0z@y{6o:PRɚWdeynkSxӐ~:"`fB%$4ZFKT0i RdE1N"A."؁c$1ߟD: ^cePy2^-J/G>g`'8F]gI/d 1I>gTSJ,w9}lZԌ8!X;FidK-f# f(ŬV3 +L1`)8"@e+[BAR1j.eɫٌ!֬BZKT/EKZIÓY;>:9 M9&dje5(IYK \C C9^hvP*E[l v, F`+=A#B Q|D_gE#V^O7/2%TLD1c~1g `PfTsϪ)ۨɄHN6q)j>g\ yrvh A~ :k^2R`ԋ,Ϫ^1Y̒爝!YZ#S2<s=^[UQ$s6e0mŠ֜7ϲ G +`xLa.t(Z`0Y7@;+__g&>NI^ThB7|#6gKtzb*܄.[XGJzD5`OR1sg80K@ϒPd[ӕQL󱏟&ySqMp}o2`Zxk(Q~/O&4|s2k{^7v5,JnpGvLO'+}6>@[tc}mpݧD2|RkNlvHH`Q`3,v=2|MT6<=A#xހ1 k5aLz/2ɺՐ!a; 9c:"ұknDDF2@U3~ƶYcK(Rue/c xr6 -sj<=)>S%xL.V)2P4t@702^ HΈ:[7LF}N!NA8d$eS$ Fo %)#)3\=fޝh}6oڟ1BSɀ ' ?.zSq54' G-t KI3޼G\;G #t2 &˖1)<>Wˤ#H$3!i+$+~h$Pa™i\L8RQ&\sAsID39AO0[\et oUKHr jfP7"(J2 N9虾8qG=zO(wˁ9fg<+QrN(.T4'Zgx=5,#lQ;$KrGDV Z^⾱3teF냛GDV̮.1;Þ3UgGE?_G{2Z.>}V¬%DՂ>.QtPm4.IuHirȖOto'va>Z)k\>}Y^0fʾUdb[;O,ߨ1Z~pe$j#8LC2ziG "pT ><< x!{ s/QŴ۬bZ&8(ɃD7<7,<(F{f-:PgêjYE4ȢXrܺH*SyV8UII[0#IEMYm'̹>X(s+BS:6鵳0rX,K),À} l-` (D|WwNe es[,NdG(U}:}9k(yO?;ԓfI9OzlUR0SiQ[1sAADDhlZ kZ`hJڥw '!^h3ك ̍L{Kgt`VQJ Zm85τgUt \NG}PqÆ\edFp88Lh,nyRhƬA lg$'wp1EEۜ섖"8z,um-=5cuȫ dwkQJ[(z՚l3qn)?=.7H(2%oAMf~k'RrbzmC7ev ~6\jLg7eqENl|K.25Mf8%1,f֍*756`&_XȒmkۓ&7Rp.{ &.MޗMp7@)s[5p/]՟+fA5$@mcu,N,7l>g. X DL`'J})zi)'ߟ  N`k3G,bBn J-Әoɳ &233%N,Abc0"RE5<4Mfg ^Z. yOX 8QGY!@SRERiv-/ CNyCV@RFLEUdP:AKjn>2ش Ctz483"rx}L!b lmm ?~f$~ ͏[Ⱥ+KJD3OM; =B͜kY~u,[* *ж2j)늁^A9 }dO_`RT8I2;ḗlⅾ 5#@3ƛC7V6 :'} >Z 18FXQWP<""&  p(4q9 m8OV~F8HuV-6ǎPna _?1BϢR EK# x_0FwJE Y⌺h? x eݖ686S5ΧWܮ 2Fy tA9H9@1 0@c,P-DaZ g*?Rx~o R0'x>C^?`#>>jx-UJoj-8 w1)PZ>O\ägh{4'G߁tQفU7 9q(_??a~ hc\nZq0>R%9P I,61#~c)AZв0E^$R^5JJ TRWUyǏ'~}/ht ͙8^,*È|Nir~ʵDžZq&x]eL?fFdt*ќGÙfppƬsऎcCqbSjMf0ǁDW|gq{w0EKNd̂(u3HSY2ݿ̘~6rZƱ,l^v2FVr*ͭ4V4 `]+rR"ey=ASYRـ.<Ѳ-V~Fn"4 ̳0gўӇ-z I/36`IZk.ŗuE 2'eS62~V^ZJoP)О@AʫZH"+kS&/ю1 4{o0T1#2Uyzmh`ĉ s7}U,5 s+YKk^YT&:eF>Z]GVU%"GqT6y4@MAj?= i@6ZI dc6H?!q2%IRm)GЁ1+F:Rfg5㭎W 6L8Lg6b#hc) V>9*aġ#SKQ|<1AGDWW((-䎥40m_hMc?8`?Ί+Z~9>Z ⁆ρk^g Vt ?>녇 X5UQGhHPa4T0X"A^x> Z83>5iY֠~Ŗ!d!%}US|:Ff ta5@EmPnn-\&5R*T-Aond(5QAܦu P<| 8h5 fTX0EL +Kұ䢁|$- ap^2 pɬˌx<,cy,ž}ĿC"܁-?l9SF(!S.'زtE4aiwlnjpP#?g=mozZZ^ܼ{FߞSRo9&,_ Hv'}ٷK6.oC/6ND(@7jujr93rHx7~#"ң5C'Ѩؠ [T$l!NaWӟ$ņ5c-jʆ a)`6zɄ~$ltcNC ̆JH"PIYl & ,FE6N5`"nAK~hRKG:Q ,6ds[lozIݿ|Wª=!ߍ& P5㝨4<70o!v#>?Jקhd_W?`@nKr x=B)&(=omk(h*O8:(^pw#_BD r4!ВKNu Sjo5˼Tbch_$h@=h}z)ϡY;TDF, 7U EɬJ7ǡ ba0 ߲z!6L*FY>e2LF98 n#=V ժ{V4g7fօ$-6AUKQ<9sqqx]F'csxPx4 eCku 2=Ɇ0xx'-K8PK )-ܴ IDATq\Bo+)=[2c/UM_o4Ky>OphAS\@y9. ^ʄظtig*g*fEKϢ&x9e28%bKFPW~EV}|6\v5~VDTƖqC5{Q||-sm4uk,f2Ҹm ]G=fpgTP4 ɯ\Q"HqM^`n:N>+S._5x2Tحv,ބk0GSv%=CdJaO|Еɶrm6_Z߁ap3,*lKXɉ>&rlJ]LGq( &6ɇ8q::BALPFIk@:>_n p>~<Spr/&%$DÆ&_幾(4޼Iw2_3"ey_Q5KN_o >PO'|,NfR|$Z> xa0=I|!'(6Aw5j)ާ&8ẄtP1=$aFuSąuM8B?QJk 5ZP u2~HleO#PՕ8RdAؤ#Rn+ IW=IֺfDR[N|>HMJAaW #=,E5=dz+}G+AKj2PQ͝ oDuv4rTq  .4q ׀z C[rc k4ZbZCŪ<#s9 y-# u (r z|aaSZjrvPdmDn5hIRj@R8n=EZ]I፳2|"j@uYk ~}hЪܖZqNxBU/_u hqlAqznMINcskH[eI#ɪ|L|ntoۤKߚĭ+{ˁp_tAg2m(F/I5Y"y3žC*[v&< `C凮|iWj6ŷۦu>0SGJaH[#3(ʌb ml6e6ͻ&~?AE {`])17F: x/m{ϛI(ۦ\VÝE|#ٺvx:7D^^}r[ t3h5o2a? Ո\ S{e:=¡&sa>ffIF ̪3PNyX"mnnr e*2?V‡HHPm`ʎ;'-) _-!SaP}fw "i'3tl|EIȕ3($c}V>AƘKq*_3I uf#> @5(CV(@ _3}uϓ ܬze*ǝultog{z|w/(jϝ3ZAld,ZR-q>{КDH̸(I0SF 2cF '^“&gJzd#͎Ra333(FfHط6 hJςV Ϛ ;îXb,P9*zE䄖R8-7 TA2;U1_`LXRCt_qZ<ϋDTo8J AP[x *ZZAkKp<<6ZJ^C%O&):#Eq^u\gU\h1X2 :c$$,溅Mi’=j4n;v#T2HޯظO(Zϣ$0)tnŤG#TpucU o- GulyYYHŠOhܢ )PER~}kOsx6WZa~pzAT1  :O;\x CъΘZXMG`>)l"k* U)Pq*0pOThe|ECٜga9fcpnV'7.b2Ыf!G+[D*.!y^[Dzϟufɩ sr6=Fe>GE Y}b:ϭ|cpÇ 0Eݽ"qkkIYL@"a)؊ݢ,mب9a3ޤ nt|'_!2Y+)$"EBUlʷ*A83RdCgFeƱ_><):}56.eNVj8-FHzNrYܠ̢-^3/,iy@V2KFe+MeӹEM'o>>(:> |JDΔfA8Yg ꛬ|;37 ./7Tdc'@ETzʴ$w>wv QYmPg=.cX ; CA U!)S4]KW6/Nʠ3(W\rcjϽط/폮ڙry f!壀 yv&dݿu-\:AC]$Y$S߳pW$^$駢S-*£I>|n7xުzMdb*ܺrR7$^DîB~l Mr'l$lMNj&s5$`nY4?\쐲E[XZJ@"ekZT*؈)MPkSP1 *57IngYb"ZƒV%Ә3 Ip'+Bb*Fowx] jћa5$"K3\9C1S)겁m:S?ب8dBu;sM 꼮h+6}A\. nZ|q!v V [˻wXRhZbcrs#cfͦek-пD@W̠+}߄L9KiӗNYD|O8 :0$˩>!3lbfCvdu]*YXn{=<4;VgPJ6=A>9g^7=}irHߗB6+'Sۼ @"ܶAN^r!?An`cg{Qe{D裍̼blO3#kBuC!˕m嘾RĖDDDA iD":WOSc6%rD GצMo-h|Ац`#Hgyxr51 S7ܦ'[GϪ`Sү, G%66ve&3l$}9jyD܎P˴s)U-$趲Sj3"f >t׍q\jlXLH>7oQgBJt]JA5Y !#^(!eIkhC9jȻk- Ǻ!BHx͆7H4]rvaTD2ϻ *vYף30vғlܲBJ M%o!Y6!0(%6x14-gP5ў_Y0!SutRmŹc<6T:I3 UQ KTqkz{0eTP DQZvG)kjMa}Ѧm<3jBIW[qA|xVqQOGbJ*qÇEG7umEC1SzsՕ\FsЍq1vTyGb0bt<Vj ;KC6ϣJ3RUE`/(:|p"0|<}J gPӂ>Gy]x~|Ĺ +XpX4:vGȈ;.#NK-%赬0-9q]ͥC=|6^ގgoaLb'*kq'P#Zek%̕,l:_'Je%x8}Sp!3ce F6~aƣdn=@m98IVg\XEaoL+~a9p@A/oػh46߾{5[ޔ/ko}}S!_b;ƭɻK[$z(ӽUlO:k[J6q #soc}Ioӗ Gc)S(0'T&5҆36>P7ӌ4֐z ; Q$ijg&cn#6%fVy= ZlBw݆YxQ"KB2ZRrH!UѴψ"d1̓7 Y? $woG0!Dy={lD0Uy>lIP67N;8SжQ[uѡCQJ ۱-7Õ,f"ԙ?BjEp |4C*j4se.SUHϫB{FOV|>sEdF` |*%>>ÛZCR 2W0"(A )u*+Q1*cM4T Qk[' Bg\3BFfRW딏ZH}0&"Due~gGo99lkGH?Q#hٯC-QRBBmD 5X&AWPgu?-Ў~}Beۈ͛4@56ha.nAgwGŰ })>r+uqVR=8։Ta-dk*R!a\}}͙uhl͟d|OqRG,Ʋ5뼎AbVy<}v4跩 s,hM_eS.nk8i gS\@,XN4؆6[_m9w]o؂:w&Z.{5oBobJ9&\&-<рHw>£Dp+6|2HOՈyn 囷t@إk_ޗZ)m` ]r iE| ̭bƼdEfo--tz?iYFB ?ҡn[) /iESFZ9NW#}m3*sN {QEv>szXO_cmsJ]q͎%BwB*bce 7 )7H/|(}ƶ#34!؋sW\>NsbI?_~F&DcYD~޲z c G) ̑Kr@ (Mj@.P: \ Br hlThQH т)1%~:=5,9q`hۢE$y?s`BFJ`VRbYq cdl>S&I1]BhTIh=hhs{^jt_ꘙu[rݼ=qaQ "ŗ. dkHUcy݀n7#e{ρ 5,3@q os^$̦ft Gҥmd}?RZJ/gC鈍X!2sr, 7y(VJz+ɝeJW1CZ=x T6T>kΈXuVy>8( Iʢu6aB_|jgZbk%2:Q't pWlqN [X"0+$ѯ^TS+2}8q^ >Z 2TCm |]輻 >B 2sbYUz o7IkuYל1F8 /T)ϧ<+u^qa1f1φR"Lءx%B9l lw駄sm gLNL?k06et:ETߍnҭ3^70KT\ (,h|+t(T+su5/SmwB7]ЌA]s{S4WDJ ZeEE\_M8AޖHh~ =3]jE@rd31rKOB좎qzOHao|Bѓ؀}  +*˜'mcTܠ~0!0[0 ֑w*S"粼Zwc"+3'ɚSΛQEу0,]lj( W4FQrz~@B" n__G5E@%A0$'[ʐs(3OB.ޯ# Nb~˦#zd;)3,>\Բ='l= IDAT}?UY͠ |@jhĠufwP`3y)qE2s|^$ 2ͧ^s+ӈQk:B^ s 繨t3.hYr$vIďd\菗Kd-YNEQg&smQh٠LBwlA58ki96&) -'?$j\3pWR1(cLwF0X\]q3Tzrh ̐_7n7UCt0px|2E)q rKYٗp긦B&x;GAn N^[:YD&2PӞCQ6C;J<ѓϴ9|F@Pja9h!{2<5!cl>`BmmE魶 lүW(!8VJG 5czk܁:Q; g, R`#dGka@C1i +3eGYHx[|O][@DcZN[bPNd"%~PT*)lKYKn% tS=(a8@6DFh|6QD-fM|?9zlq{!ͨ`KB|QwyQk]MQ@R!7@ 7SϦ6dEPC4NJ` 1.um U@l\ٕ̌IiL[  S_QYYǡ [` R{+Z磼Jh o,H*mJy/!"C:esA3@_hr@Dzm0 % zZ.ߔ#)] %3q2x e(~-oCz6e94k0"FQ[ ="zXqE 54UbCUJH>KtTFvwj !z K)_h1P_0S6DgO)6ErjKTe沆CpNVYhW#kV**m/ d]$ݖ%g2:^&u6k1bJU6Oi m㚷 w<^<v^g) VBF4F2Gůmp]TTGH= E3L0. Vrzuc6m58 &b\ ('OA;w+rڵ:?3+wi<ܲH\^> @J?S嗛ä7*3VPAi1.o=-quL%Gċ,A*t f\m n11\CPPE._|")oRSضOU+#{3f7'x)\ mv{m%ǻgS{:S7p~߾v|U]>=s&>ez#UШ'= h8w0n~H]o{jLO:m|C U vNXgXo2l{ uyMY#6f-j_$%EgW*cKAE-`H.j$F|)>ʔ5^cn)lf$6@9;Dbtʠq (G1;'W<.?(l6>H7ϲ({_hN@E `s%I)4<AcC1{nkxFpxŶJvF3O{y^h={b.R"D+ Ϙ (HOfNU0x`,HZPjĐYms2R=\KaʒR1DBQ3&d5p ͎ 6_2hgupD`s 47ؤGCb?PĭpÔ#PN In rstfkNL[#3rA(h"Qs )ёA`^!%}XT/CDEri+CAkn362T%x'gOw>k=H@]#"] I<_ҷ9h8Z(APh2FKIe\w"[~]8j7D)ֈ"x@-Me AuY֍A GZTQDgآ1k. ~ `}gt*NEy828B䜰 WK4oy2}VRUxB굙/0V~XO$_â:P\Wx$xF\}.363zQ9s jN9LlGk-8/[t^Wi#[/h}z8gT!¥{@_+5Ei(j+!(( H;xPޛr3+HN͍;#pA@PڢST20z9u#*+ֹZ"sh)SuUJAQyuϊW [$r}c {hJX,+ΨmmqF#g+Wz[%I>k:%ߡV򷳾גςܘXax+6|*]lN@ >86:((7t\P iYNΌ+uRNW` P趩/M*6r'KL"~\rf78ɞ$[~}//7XLZZ(m2XmMzdQz"KjymaYɗo* x桿o"u -9.ȶYWz 16V57|T9MmoQ8 ,ͷ#Ye}h6* R v`{ #.poVX"5 T"=~^ɸH+w33#DgJч۶Y^VDbzj"[vo9%>TO-C{@pq (P& y" iM9V3d1k*yg3G@9=`*^ۡ?uOʢm-imrKcu|`S $OtSXQQb9]6N태鼏Ϟx$|^I-[AƳVpQ|+EWv BB8 ~fם9 ʴ \-19 Zil2l`1­b+DcP-9ʖfC-Fx-!`W :7q /֒lnL[ Q ss@ΔY친P5e35E1&0aP5fĦv253rd5.a0ikHJ-#â LjHy^uZ9_K,Q[Fɰɱp*hy .f&x>>p EqYTGrҤt0%U+N# WWLӆ⍒ݴ:?ݦ\fdk(崱v ٤ͺѴhldR0Sx?WKYu6} ^;eUJH'f40 Dބ@Y\'4FD.g#lYHL%"ņRݠZVl͔-*5=R(nu3P@\}G!0I-t7i1Iy`xDz651Wٌ_fski^Z;ȗȔflJ7E:3HWqApR??\^t>EӓS)?tmrٜ*OZz\1>a$cnjJ9&-37GLeIz N8r Q|!5#nITcÙ/f4KՖDdT l-\,^l<; |k:os(M!l=+pm/LN0O}ye dXl)2\P$KioD 46! rETp }PȈ8CJ8Vp :},yv#˵.!?nIFT=zf rγ7}~]f^@3""%UcnT?-rbIXGWx}O-9WcB=U9k\A7zb}AI=bw2]j ]9lK#Y2,gɐu6u" O ӟϛ&nE*,h$k1CZnNI~ lAp"%<|6t21爯W*i)OU|OLG~`FCN*wcBxxvϗ~cFXOa=>Ў^<7E =Jwb1,1xHA$+nS/К.on<1+jv2f+ `1&NDBQ[]#ix'/h,wc>q># 9CVY''nh/Gd4jgjbJ9fGStơdtJp?\ 0lnEreFɲՎG?a>z {8@qP{%a곁 ,VeI=-x8ՍKotvIlbr^މk/j lsRߧ(%"-s yoXɱRz/RY} 6-5ѳ῀a3e"1.Ս<d1ArF>!g0otRn qn|֗_r0H kAn*,ns5HKC|DI IDAT }l3l7.(-! K؀6@qr޵^caۺ2gvOQi"߆R1N%&' VlƊV7Yܵ 7טk۵ 4 5Czh@{(u? j o"OƋ,"s&WY/I^VOx̦IBr.䟲EJ?Y1BJ(snrܣǃ7>, #瓒Ť˪Qȉ;I }#)P$J){q9تM }6zֻWnɄ %=פ?p |ƣ?rhsBqfLe ?iv 9Ŧhڂ=wi3՛N\3hs8 mA2 ,yzy#B އ e#hbS_|S!A:9!Ȉ[bJl- {-6ӭ?q"J??Ў.LjosF6|SHs56 "svۨ9j^ЋfxWKD eOJӟw 7ͼ/4= bkۥ^IIq<̶<̯{q`:GLt[5饭`d㚑."y>~_luy = oG)9j ͉s gyU_׊!1sJZs<{X\?._CXܱ,bEtD/)ԶLpQ׻ؒUb,O7]n?>>Xzrr6yFsTx.{=lxv;]O=^ >P6a;)ݑ.fxl[ǶQrtG(;"h  M(&綡[>[STT5N/$2U̼>&ۿmrOv*)^Ŷޯ?){ʖ(/TZGY|V.޻̵cqNx_F Nn3{w{qTOoMmj{km+3Y~- Fr 她Dðg0SR@O􋀒'=1!q(>ȵ G' pm//+_ Eu }?gc.%\Kmbs$H^UZSzTs:xq >(Pb" ~FX0ֹIk9W$jE`qӓFE3$n({K[d뻷(v_b'u]W/_ZIz(%4RCv*] 2JOq>GlEn~8@Y u6K/xka<96m h sR`Y~m#_،I6`}o1aj oHWnd!7*Tz!lr<6m| H!H$~#}k/:!kf[QNq'J]FrSr`0/Gxc0ƁX!. OO`Mէ`LN 0E)BעpEZe:e *6(h]y3_XϷ'M z$j=*< x|y,"CD;jTlQoaX9I5 U;1USqSRueM1-eޮݤ)o@ KM"D{<}իhD 7A? HgS5F={_[N VõA0| C "'0QŜux `0GNFrmN.BMba)$P9w~Fqn;ҤfQR"0C|PXcbGn[kE4aޜo +sz7ECl, %ʑ9&IPNZ/}`mۘVdkv&N9PKXXRq^nԊǜbFHm,4ćhy֜rcH#2&$Hf#,l3&_/f`؂DQAm^?Inu iPRg.9-@f3$bBmdc^8ځM4Zݣ.Дݽ5ZО-1Us7Z!e9sĿq!mԳ gfɸL$Y=0lF/`6CUle9G6%T oH2Q]y!{onzTM΂JNmiIڣHٚoXڤ$Aѕ__2۸Fcj2rmhI9: N8#b[ӴQuo8*~k:-KgdJR^' OrGGN~_cJQe6Q8AZQ+S9|Ȣ?K4I5\(/◢T K=U4_4[1uXb)iu;{eNx^?:so~ab_:oJ7+}"b"ZxMk9aˌ(L:|尽H0{lb4sb@Z>Ǧ0.`6W(1dk _ؓ!1\Ú3I܌- VC!OOtiMQY#D9I}7[kcKxfalTX'$6%@&4k8icTAoEi\v˚xK} ` -WB%`!@-zl08FT,ڙyIQZ~.9^>iA[IN D!)v#[|3Kl#%~¢'׈XS~sr#ϩ鴼vPB}iDC{|VAcSQ"ff8Z/y$#,WF`*'TP@N51s@!P_*#nczn(Μ!QLDR*sZBg!bRCK"j&8{I9&LxYPI%7}fXpn%]\3i6-%ke<@dFGu= ๛sx0L{JSyDS3rhpPH(:0/De@ 5[">FWjMڄO_tr,' /g]l(&g0&cDnq×ۂf{ǒ&L`]s~5D<ֆXZM^B;_hpo ϸW1Vlh7F3m1!51| )֘rzv815RCn,sZNp]ro6-^2kƚs+6sRn@𞆝'd[Z ~qLS57?g{9!ޡrAhh? k龣@[:f*M/rp~_s^ Qnhe_{QYG_x^,47k.G6| O/Hf_d SNߊ=[=eT.Oz{&~Ri]@۾-D O^rwIpuTPo<5;b#XY '=x'`ǴvʒN Sx~2[kIe^@~{P0l,]͆}ut0^rE߈)U8R%^,#.ܙD*RE!mD0MJ< xZ)yp*WkXyvXHFɏ[f׺gaO=_S!M1oYT`CHAZ^h~^3Mx>Tw19`AS Ytތ' *VFk-ZGcC'h<I/@fG#0F sHUÄ7pF6&`,"]Sχ9fAPPDSpJdt's~E\MG=nbCpnҟ4˳Ꜵl|xIS~^*Q~&AÜᡕ$L YMs#ZzOn// `'s'FsPgrӟh+&_ql8 rkkHAv,$iɦ%q8Ƹ=dF[|?jhcc٘G;枞59N[=b'!kw TKV~18A- {"l6UђAug4z'`~@kMFVeԍ-;ܓu2UT?`6Lx^-qhŷ"0ג.혆aϪqeQ@iC=賱;E;f{q0B{ BtEXMDSY`IQ$'ָuښj]Eq49hEZ) fc4D<7gv`|@׾Y@_Db5˄Ϣ2GM'7:$^}O434i6NcyF[#j. pVSDDZ/n× F/c}{֟­mE\#8]cNS=m:!} j"TTqN5-ArMs@\y2pg ^`9i Ɨ7_ֲc{4 6x,D"c_׾RdaQ5b$[tX_.,L2YQ`zI,:`.B}iWw*ܳ^dX|3k^^šFo"V`7I]'T)⻇057'o"FD_@?$j&K2^|Η@ DZBe-YZOK5ŗ, ϾOH?YCYB/ji7[. (j Ri_\0í|>BeL ?ƩU7yicw6 2PRC^t4#A_u?k=]tfX# xPh ڵͣ+ lKpdP zV@|w1$9ɦҷ2,0nj&'fWD@V,DUR*{RyD^H̎ǷA2x'ͱ 9gu4X3?MV)kZ"'$f#բ_r|; IDATN} Ȍxn'n.hDFØ3hp ܟfRSNBtN-Nm ؕkIC"Sۆk3\WLL2@.9&]+Н( y 6-,ˆROXw^=P1~#6?e#2b>,8yvøV,y8Os:Y PM',c5,sal5rWz^CEgI ¬4NZl bBc,7Ÿ_,3dwT/es Ǵ?+36l*Q1 |' g?ѤcNNUִh+)%)`Elj|=+137;%ý/kI{Ds>{/"j}^9K9Ӟ:~AHUQWVχ9CâEC[~6^MSԽX%;]7KjIK:RBMrD0ƳEUC+$ [FRJFA2B]sfEn̎ZrX)J 1 X)}*Qod6sL7ֹŤ؋O6 eQX>߼vUz&a-N NcnAl:i 2di]$ږcSU\ e{Ya;c6Wɛ 8mv΍@gvʶrgc^r3zA*dFQ'>u+ ba ZoO&m m?_%s+2zzTw.Zxoجak6TJWR)gieH=.Y3W9[^sL-PhZ`RGB 9p$[t_JxeY RM=s´UxIkjzmJXy+Hk鋈I$9. 7>4H`^e[[- @L@LoO\7QYfa2--<Ӯ :;3V؈7 D+$䑰a> } +,},t!hZfW*"#q6\WlN!Y&ѽy^Өܤd6}}]qO%uȄy46²x3nVl\ڛ~V|Zc\u l<E9"zn18+ %UQ40V3f MM*&X3w3`>n@ٚkZDxЅpIhGHgE{uwQ:yEYTFAuLOYLRx_uNVGM,l$r *bg\8PB@Ä_5s2jSdoGXm=Ks(VwSy$^]3b=x<= bD=gR0?:0pagtv' qqJhlD1? "Fy8f5|7 n~lzc6iym Z8@ 2,sGq}>lm*%a23<_|yR@}ok^`n8[,Z-#e )x~E+%g`+<sRprQ熼zR!=!>}Fbr3?}n@Tާb B)KJ*DwIEv?lE^xaPO;a"p9|[W~lm"%w8l=ח<6[R{6ۛ 8 %D:;VޣȫX?@s_2f{?Tk/S^KW5I6@4nQ,埱xjDH +qxô@Rl݄Ae~m UصɮN]lB9I%^*a[ u˚z+x0Q*R~i# Üh+R :TϒaE[Sxِe,bMIWQDתﱼᙏ ŌEY F:7:]_9o՘ꗴV1!4\6BvؐFuhFHJ>Lsjgư6G&eh&`o ׄ̎y$3 F~fap]%$U1G4 .="󶑇(ZgYrZ'=iG Q*AYƈ=u A2&OtfA[9:l86hƜbah(svqs3fiW-1ׅT!yo?`ߢ"TEhT-6cDkŜ qm3εK rGo=& &iCy!| (U O ׳5ѢYxrTPt)_4HenWJ9ytpRY[l i鴓9t+QN򬉢g#J\h+[HI5́񟘓_z?bʐ)VtM,lE69{n}{ c^Sv t#SiJ2o\L_$9XkNz{Bu~M)A:!&x^C\ 󺂠wCo?^Y$a J4 /g﷑@lu{!(ڭEAqYe(ڴf6$ǽb-DOhohY~@`s9s22 B$d\"3/8'́iuOc5e4toqxL۴8b@r=cp]3 &`ZMMA9*ʦ3pQ 6v d'BqFOkEQvy&,15N:UY>krb\aGDx2qD(*65^o?A1ls(փ^Z`C&tt7&ec&("y~,*y&p $Kb?s t]cqD$$B8:}M)kۊkNبg #Ʒ*ب*iD>Ǥir< .~l׺ )O#%`bCTB1-ֿs2Z P(qoc8~hh~w99C."::Wȴޣyceth Sd/> 0lYx[7mй)~ yy_v׎ `opQo7?z_[oB~VH9 26߲ؼ[}؍[R?$zKOJKk|V Hǚ,"kʢP7oŧ}5e1!mRM"&56p @m o0*@x>``۴_éf(ÄU3R^c_FOg 誑צ}&.Ql[)*6Pv8%}/? .- ܻ^ؘs1;<c.7X2RCvߢCa7].R$[ڔΚެDEb4m[R^>珳՞+U5p{qbU]TƎ4z[PuMdn%Y8HYȔG),`jbY-l~y+HUƱO\$C[^3޾; 2H/S봦[` `St 𓘮 duB9v?n$5q, OGg\n(?x,v*]҆m~+b7P[K`~EG4 :`?9=L?s58̀9!6":p&J~_y97`X\ĶT{-$<`L3`"P\_Uoxc5Nel5KAϒ5u|?6gLq1hI ^̫靋Lu=ΆsǘbrPHIc̹s imӊ`*1skf5ZJ i"7յAZP:p-UEʹ\3,b"u_$Ba^yMl㠜J(h/x|B5 6Ӭh e6FzGFfHx;yemp-h~_xPk%N48%{Ik_1`>O<?S)$!a[o}) CWlԟxS=xoP&Lk0_ّ+ IDAT-%tuS,̩$!Fϧqrg;~9"hLzd)w3qi#s#^e0p\s +RގA(&'4|]szI&&n3\P}%ر\̐]ƍ/Y4\Ӹ1A Mb0%ROMvq^C|'gC?Q͋9=%~ غqbV'$b8Nޏ~~)ńk.xD4&D͌)̧Bf͠pNNqa Pe TcL/{Lk8:xA-!kIK dg<>Q!fzb:XΏ%P1p\.C8M*1`lIP޸xcľ59G|Yr1 |F`zaEBOq,@Ok@ɞð/>ǽFLy'\Z;ny?1[2AEL>=UDY4C{q<ǭyUSFE4<54UЂ qD% J@?gl7ol,L8e =aua,Iogsu!pYÒA$ߴ(ak$?$I 3ۿO?YԊgMk[?`F8 #eIyfHt jOaH-g!)4pTԄp&;ݦt M/|*ӗ X${%.¡Ȯ9x (]s׎O{=69 ko]ZӅ2})leCR2 ccRy\6p^(=!Uw=;޵34#v.;׳qzO<%gXGi^[S 㪢QB cdF`*Pcƙ倔F9 kAZI2.9({Ӡg-86RMVg> 5&s)0 8g4u6_8e&ɕy͹$fqԛէ iɪ(+_d9krX= rPIɱ7Z 2ݤn2Q$fƫOez.%+":m: l[/ƊTMnlp b+HozNLJ j>LlhK/wHs4S.NiTę.q*hVpOβB a$'8<ʡF=h!8$`<#d}1caf ux6W [A4%1 g4276e)A`<iSxt\"#5tã<޸f.:\LhU/2Y0*LDkDC@[iV DzwfByd׵O89.ǚW\3wǏ2k,`sOId&f^q 3t'u׿ߑ2,Fm~ˌ IOJCV< V>c!DEoz+ 0E͖.3-a!/&ARxV=¾l|wK_$_zv/~|ei{rnVNąŃ Y"fuۦk3r iKap7{oqRAs<ڌ"ĢX' '!>gźfMj|dcwu[V6%rO0dZoܲ&FPd1YƮژOFlnױfLNEY9fI߼zoF02Ң5.=1~n|ril1L nVј72]M$~oN5 csv ک09 '%B zA6A>/fNÇb>! 6F˿X*e_Atz3"QH3(uM܎G ME ~Ni\1my{̣N;0ٌ<2.$Rҟx߽e J`eEvcwv Ts?-5c\\'ׂT0,eK_(bBM43_lb>hRڅa&x^֑#mk0)=1^co3 oW$yMy8O[\E߁˼B&VaY(ACGEqY^ 26Yz侳ZO0tđG"b$Jx/&oJ*.hŞ|󳾓X "ȾP?+WR_Eaw>q27*8&^(+TMʑ;I}Bp/p> g2+l&jUV(e;xETQ}Eٷؤhʄa3O(=.4n?"K?Q\lӒǿȨsz_Lv0`Y^T`yᝀwWѡ(qfɐ"EI4JYfJ+OD-& 6frfa_ `Z-ϲz,Ip9-'67|bpyS&hb$ئJ4Fi@ŹE5]5>?EL:9M:gbN%K}Oh-OBMݒ,I{dU쐲{ ofbOU #"GTDxOp\?KذVNj.Od e|xOI{{xseI,7ڕ G95Ȍx5,ʽnŀ #DzfkkAJI8OlLB},ğy b{gqA{^<빔l(#(q!h7w:~Ү`j{~AqrPQ!~6S$`U{GfJ.˨'YJ$n$ޣD֫twhLoqSU_yX3s|,oȘC*IK ZMN=V;',w볢AVeJՊ &KT7V|mYiu]_@DzSh tR(-2*3?3b7P^z}9gt]tE Y>P=x϶ۅ0_9m_]o[l%E0U0Mۊ}NE bqNu(@R0У79,V13?ӎFLe~%nhXγPmVIC;kZ;UT0+n`lhς jĉ>),f9,"(UͬdW< َ$ҟx Q-)mKfC1o TN7'זuΊ t}A$lHX-8^+L#x/5 =63&53=l3=IBk_[ mO ;D'jMNyB?ybnM&< C3( mƒ<ȳod6Pnu,#$OV1{s$ٴU;?) [ !6>_="j ļ27Ut)[ߧ2㍚;#8}HbkWTsAWXXӬ;eJl5E݇s8틾o~ۄ. "RE6\jF?W%=i.PǗOUIXeX+O,D$/ЈWإF1|YIN=d!`,d2NdOnSY8v4# ϩbs2 r~+|ZtyoikpKb-NB%Q(YtK38C{fg`K4+I5G\ZS1?K'!,PX8!u[L\4b;5ךݻ)\-g8As887M7-3~&h\㪦y5j{RhMp{0ytk ~iWiGc!1gė85^>Ҏ`FtUGw) O$!MkvD]ѼWW;66*8WޒNeR 0# !4=?J^ Mzccu|E 6q º/#l~2͟GeS;7t*r4Vi+$ 'ELI<Nk"Efa>T"&*|D G]M q}}FѨiJD1Lj0  Z=#K)O Cl )N;`x_LAoL*l!]? ՋVOEFJ5(i4Qh]Jewh*p)ρ?B`OZ1Q3g'q>fl&Y4RM"5GK2XdoC=|q"?pZN .UQMJccf; U[dZűG3Nz:;/JsڵBpݣrPIu=r_U2PBV۾eIdk8_xT^jNzT?or|KiEqEM=FM3+jW㾷,QDA2&> ]+~ɹ8+9"pK.z'Fr+zE9%V ^]C)AlR_KR̆L90p^2A=%$kqdNUM;?(Z2EIM+k-Y ,;54ۼ,|I]ӈE|ˤ]t _9x.LsJZ`S'n=?S!l6?ZɎY]k]}V|9hۤ@m aM,7ɟ*WwnE ,s7T1@s;|GP`37-k-cD$ ԭIWRHdsH lY/1qw?)ss%5*9^AT)NvrP00-f|#ncAX(kNLWKٴ ,Ny֬=̫Uk@kC4*# 1F5%,V0{(«!5- fB,<%pk85a29c82E! Us"Xȡ`>tҎhB[ t,-=$IZI dxrϧxG2d{mžZ@$h7ipp\q =iaAAxRdM9dbジg3 =̯uzzleenVbdA :hVE8Ow&yX `!;v/^Xs75-H@JYS oTAXtf-p M@wZ{ǁ-iT5P }媥wZ`*,4Jl-a lŠ@Mr Q9#'8Q ]`R\ь39u1oR`m&܀N#T|7W<=8l.|z /JR/S4K)#Arsa!Y@.Q@vJ;VexJǝc•81 Οx6FefЇ9Gȫ18E:T'wx2_N%ס1#-?_"9FIQ4YR$k}Ӷpu=JA \ 6ZLk"l;Q p_NvL=H{vCV{tTD$53spBܚ x ˛(ƘQX7y̤~t#*.%ϐLpH$-Ƥ<@֫AԪ(~ȨȧTq RF8aa//}sF![HPXZbj`Q mH Eu:W-6[xL#pꪪ7 9fȑ{P{<Ty~00  kPӺ 9q'Q_ǖo[l_Z Qg|md+^HXj'xsxz 5{*ZG8}Z܁JAA=nKY86.>W  cV9E>wٔ*y5,@ņy{fyYLR|░$*ǽUgSə w8)5AAϜ1Rcjh*'{E҅JaFЃ{)E^+v gcIck-Yq)>0` 1߂.hGGw#9}Tf|g)8lQ"x HF{Hsx>F[h3H2ǹYkcNZ󈆩Ե^#ODlL܏b2 +J-[d[/^ QBiѵ  acu@kv q]_1ƚ+\d_fw85|ޟho?M$8j2 ?v:3yc$A442fS]쮉G_'DzjR?{t#M: w`lF1jw… u ^'$M81kZ/z"i`Nu2lLA8p0W"vb{U $GwgZfAgb>nEJo90#[ukah5l1lIQDX{q 5p史ULbK& ;1>NYqy6+oZ 7m`ܣD pp/VI-Mrh제hqz]a*ǔLc?6(&Pa]CL|"IV^К|Ȗg{tg,>ih cM'ɲI崊4BYBq(N<lJȨt]+6e@ʠAcRzCa_aWL=?v˟(XG"SVyf(`{{ϭpM21 o`="`m\Lv/ ,(=&qp\xm[$bg 1`\5⢭[OBWʒ*W%kRE H(0}w*Fɬ!dƒ%-% Hk"` LcJr*57 c 3A2}ǁ7K,I Ky<# b~"u2rB]y\)=[ gwv)E""巚3&J苓N%G:+_bs֎ L '%_rlo7$.EA;v#)A lF@`NR9E–Q+"$qE63 ޼e#ZM4F%%=_z8m*q_#p6Hcaω@18d;c~HdL6w=듍 ອ@(ٶφ{441L|NЏZ?fvN{BLގ0RDOJD9z%1-k%gl8zfT G88N2o|߽뛢 ":3a1C=,fM!%J˛hV9eԥB1z3cHoz|b?׀+C4X  cEYNZ;ppu.g}9$,‚ `7ZA ZZ5٠qdLf?Z%ʬH^euXxҭ+ EfE <~!4`-211 p3>-#'80UoxJu͜S$y 6Y~9f]qPpZ[KyCnN7%6O%Zw;Gcs4S$#7.5bk2ݖ']uMwJJc}~٬ly Hm !뙁OgL8h%Y}]n,$zYl~PzOks`9ʛ_u*WD "3(7_^nFoF[LLyw"OD(4Y g-FΈAPJ$7\F|oU9Iw͠=iA'AM (F9= ?Qxj OKwT-CxH".O* Wp:i{>SM$\Xu8~/Op\gf%NNSG@cr )G"wݜ +QU8s"d5* %Gy"/̦'qTsD>xΙ~GY XrZ*tZ<B țq v-,<ѩV12sy5:2zH#&YB6rvF|zΑwq\2hr{n|}]θ {:2  Mon׆ wkiME7/àڔ`N;bIQ8,0W u!5Lj낯L664U!d̛0hDɁ"߽W[#zbzdTHٝٶް 9u$:ŢP礮~gn rԋMJdY2$Q"ДR)"0JҶΟHkj9kb8gO1(o|z#ВVh}[B6OϯQSp(C@]!FVHu;',g[㙱AVdE`;5MO^xdz *[y#=Ƨ-\p|z"ӔI.7SF[$v`B/KFL-ѮX0 1dt?"-jj 5]t)/ŭmzB\y@k’23jqc K)*k8EG5$y1`BqqtᚊHLJB K!M2hG>, J? 0נEyP҇9<1(ϽgP;cE(9IR0A"H;n=W&+$chSi\ tn(ĦǽhZVd吇i}2n){VY1{~~X 13;~oXT9a|TÈ !l`1rBh8PWF3|Gl)fACx' *p(pE\u :-|IMG;} A)mIqH3\H^42s=j󚴱?~$,qG3 lDd>o{o,B jϗgЖ%"TdyOE5dVԤz 8G}#ճ l\I,IJUS6;=:j0Q66l% FGS,d1уs Ypk#EuLЏTёT蛖). fPUE6f_Ю׈F9fVa1upy]uMZbPX@1vmJ]ߦ- CERYIV,) 7n,wA=6G].jmϐ5dG#\&M\'v!s!;!S} ͷ{cFoy80ь9r{8j6d˷= "6m[G]b5!"NaVis[C@{:Ӌ7q*qM A&pLQ"Y@#Gy=qݍGDS@1ٛpǤx4Y{/~BϢ{& xq_O2Qp %15qIOGXYBZLӅ_?8똜l_b̸ 6Cc8zg Kpt*oҸ ޡ}R.hՔl=# c=)y,v: 1 NyP: Z7]{Ag^<7Tq3@(fч]*EuK5{kOo 0ۊ{`8N}1K%P3J6$H~^;8* !P*B18g eıqE,̲UY>3ksu[I|'M "xFp7z40qA{nFIiGP$v~׸YN6XmGMݙq~/p8׺ yN/(,:403,T'psXsV#-~¸g4,gf~:I6|)G{!'`~HH\ԵYpJ'G:U *XGHhd{.V_lge:FYgdAVG;u}!WuTg68IAee'n~8_5܏?CaKŌ~=j:+OK~v~efo[!3ίQkd#7VT2byx,ǽ,OaU#+n@Hk:_09 FY C >\|ւ'/m{>_$>;9l1NbZ^z6R2<~ OOl-TWɭ{o7v`KJ ᑓLJ#ʝHHB-iޟ!C{fPd`ZއjSg|$7tzx ep9Bn!^[虳+lT<i4s9wIϚH(e]`>~]&TVIu҃Q$[qbS OuZ [xLj`3Vu_b%JI [#$&H,=Dpuie!DCJ>yԴU)qPTi6"ÆGkDk)$AxIxT3Lϯ; b fynLWtog1q@ 69m̻tvV\IiO'9@4鱼'V3Wxu߂ 鸯2V C7EHzsƂ~~N tM4(buȇ9E<w$ss&=RVx JZ-gq:5\zMR}qȶ+z |=HEIf/cܑ,=6:/G96sX}oWfxR"l~f,=c]l`[Lh}M>Hq<(^H MtZaQ {^1}Ъ(#-7ヌ=)!?xς8 g'U;IPQE͔7%3¦\ӮѷX/KT#z4 AS1c`>;yϱ{ҙp\+)-"xh) h FM2ax'!h|~c'H}]~pb3y?`&7Zhߨ ?CͩI#OlekYIkzxg,?HN` sjҤ8! $h!{G=t,4&\6?fxb故"t}W~/e. CVף2ҷQ Za TrjbE1g1i!su}FLX3,e^t0b X io w3&eWZw<րak8qA޼cZy"5Gq9bg; Z"t5/(@Fv2d>׻9Ϥz/[x)MFA{ 3y-gJ 4= Yrz2 "Ժ%+.(pwl1T9P}3l]唙i =_`V*4`~;(Hy%@S/ p T ֦/+.W#?kN5ABC>CmFLg|]2!>)̢JL׷Bgio`v*#1+c/ vhǽCoeF4VR)x$K^Y@j Is(x.*Գ;eYHDgc~HdyNd; [lǏ>G灛0 ?OӽP6 ~0w<2:sdAuh&-U7;2GqŹ!hOI~ܾo/v@w:&̀Xe5lWNB|D.\ހ$w_q!Q)Af~T PY~S,#J P"ֺ;5W$S^=gI,BσXn$^5hGzC=DS5>紃4\Ex@O~Cn1K1w6~o-_Wɴ@EH(9Ody37&@vg(f}6p?lş_ xEn!3r 6Àk:9[2^y-DlpNN8gAhfz&WMCz+h-SoRp:c讕}x*/i>{5)I:c`$z.?rGBa٠/X?|Ih*c~By߿7 ,*(W~.c|,B.J#rb^wUX]Ͻ 3*tvG`#76Vm?+{F{^m"7R 72t@Aabο/N05!B,MzFTǽEkr-:MLKRYj! C4dZ|II7/@Ƃ*If[ >8](3M[Úq < Zls@>ib [:(6cg/ RO@ٍoe‰5 5y&gk\6S[!& /), àShJu/θOnȋ(ޥ6YzNHW3i=BmЏ-{nʔ̩FV=gv9ej)Ɗ8`;:%QuSN{OJe!1볦w̕uT9p#'1sS_*y Lvrny~}e}QGjΉq8?p.yW]/8+?? >_F?p4z;.38!ӫ_7~b,~+on01xf\d+-Ci ID8)4g z؀PbҺ| ƃ |ƻaDlqf9 r p>|}v/9.q9,TFbϦUSjjiӴ.ɟ;'\S!m\TTHS*^C+"ь:՚n(}:3;#@q.̡8cqROS6M{؟MBeKsy%eH-}(ō4FѨFc{tj /&X4"Z %Hiy>s|N=&kCkG5^*s0}9K a6C t4d8ZB3zxlwTh`,OC͋yK!{xZұp%ދAaX3Q18͂b%5 8:N\,ˆLIifC"'"0oJy})h,kpoqm%{|ngq M^Dul8O{B:f#hZ<0W0ǞUu/'Wz'5 2'HzPNZ&VHh@k B#9z*F(;m:I`<{Z}BI%НTǜ8ʈ~ܟN"6|i%Qv 6r榵 :q67p\_lW|-xT~DdB"OzL>^xZ#I7euWC.GzẮO& ߕІldvEk@SA!nϚvL3 iM&Z^W)R RTdO׾rs޳"7PQ3d8 }/hKHB*3/=. stL'hGFcqrA 9]ƽYB{doKm?6NAE\ wG{1k4Kb81ywӸ "h%3wgs.@z5%l8Ƹ0n/ ]0ຊ˺Jۢ:ޖt1u\4"0ˑx y9>ȄY}gQ| IDATGޣxIW5EwV6| Fr)? خ"]2ϒ^'䇩;g0<"Xđ?7\rEyumMH^|yZra[[Dk,a,5 +St "w {ǜ ~UFI`ꗍ{<^۟eǓf崲 +WG@EIWEdaW(|"qӓ}  ^G{v-)KHexdA2Z(ֵZs`+-Ty3Rr%ݢ^ϐ17.DqMNiR$iB塤7^=E٬4Zko^SۄxOD+QyON)%)sdbNfGz7_8`h8*4Ř-b]&׎9ҟuZGj{%IrHS2-^ncӞ.twe0j#x;#%UT?us*P-ٔf\gDBo%,du6OX6)9RY Zy2kc<_ UxZ#Z)? IfĄ-Y4mvsx;^wXD7H ̤_Q~+a~YVO*:ʌ {'1cп-^ hZ]YߵhSNIirrr696#L`y>  ?7(ywr,Dwpͽۊ ߧ^_뵙Iw9GVp#!Z]|aD]AD`%0 ?fx؉D~}e.尢 Z/{QHH~Op?kjߤڲAb V)I7 SY:!B(yXn߼^~;*=iy8?(Qa=a̞vh>gB⅑&P<)ޞUgVbWImD[#/:Jn , G7L[sL)qǝ&Μ߬7~JVͣ_X8XH"l nhȍ*u;=y/fsNK͆ roKR(b0'LlLϊɤV V_l6dG%ˆ|zavdWdٱ~ C.z]n$S\I$nhDUJ%HF#r/Q-?ΩXZkA4Nϩdz5hiȩg[s)74UlcpaXtXiJy0^Yo' NԞ~gKc4yIN9f̥|FgdLRT6e1Cqcy]!AIG uBfA )QO ՚[K 2r_;te`XC6[S6ϦŶgCi5()羞1ϕ݊,xWW4L-=+!).gPKͽ'cϩE1zrqy@kx+u嬸X#r}u~U2ǧ~9y )i[Yq b&qz }LD|([WyC? [}ܷ:op/X=;S>2=<$uǀaޠ16s?}~%K~ Q{n7O|YȽΘJ'|Hrj9 !'D/@^p\p_#"_ 0Ί=Bm?4 sSY&ZčkEiƮ>'̻7SuYJ|,:9-'-=#֪<&Ԑ\V,bLvqϙMbCLwYr$iK=H/+i fbB|F 1q_!L& m4/x fMf vr 0ãbjf*8 <*%I){-]Uݬ!n1g\fn4:T6d +ü3kZe2E yV^ @ePlf^`fP hSQ{qk'>hQ>lⲠ;I=F2R@ߣ*Q` '?#2Ɣj/Y+_'<\8=3`\!aD'#)Ni;%9m:X9^/χ5_㺕8`'k gX9+,R eMq mBޡ9ci6էK[R'4z4~gpN\zD G-Ήdi5@l,D(+(mPLfA%,;Vf'Qut _VU+RQRk R gE MEu"ˢ}46' °FsP( ɪ1,܃4315wl4kKFwY@ js숼㰺t9T,/ZG)>ڔZ3*7IoIe'j,:7!lӸ~ Y2yXGO?:JP,Sz܊H]ƻ-^S%g9 u~6\1=HC.W.-Ydi A ņ&a_,FFrJ /`ٜاg5^ugbSʭQ<]JZ Y~zAa7 pk3ߎ88#"HdWyV>o7o2`uzo^lao_ST8sk3ܢ@垭ׄ)qeoG#;FC(It(82NMIs>bj( ѩ E%FnA0uN FOeǵRp>g\G)Jz!d5 ̉Sg(\ˢ8{uk8%kHNKȸG-d.-h͎h:'>N0hp 3$³`RA?JK5 RH ~u|)hNC<25č?EnGcK%p=}N>ˢggd]{QQ7N:[ʷi\) /w7Mz{k-s";Ո6HzU)c-$ט~F%XDT{i/I^9o"UKdAZqS 4[zw`)\N\7fA]kȈ’Qswo=,фkWQXPZzr,M/REgju]cQnz^s[悶axsO|o/{}m#TxQAHH'+7Hs/̓ -cRP}ˢ}' ?)I+lv0'6#<5b"fp@sYD~ A}d6X ?l,b`~S*zؑOtᄌkd> xE% Ô|j-_ݏ_K孫Y4'yuROS(y=<6tNL=M f+ !聣F6ݕ*ǔH.(kFv},|K|^m]#2#Sh :3-`ieQoT} {G6ܯJj#LM4u|\"] ?_ ƥ9)|(s,Ş ާl=o* Xo@)9th@wxFu8NDan<{К#O0[|_ޠ)[2ku< :. h"ERf@)gsXt5|g>hM0$դ\7"z+|Ҙ}.9$~F|unSDl+Sa^Ÿ>~<|YYָwUTT/Q8 XX>H»uTA5SwWWDd&ljzS΀l|^†^2pL_VX!u08!x<*$TG?YPi}W cCX?L8T7Ĝ`LwHy)ZwPgI1(å A12c9zq/| *u]d2=ݏ#&@92[!/cWM,ig Mϊ=.L~G_7+ցMzhF|lӦpiXE Df:+G):sb;g˱Ga+,+;$勷 *rH}! T@ٴ6YnI1#Nll-;}咾_󀮤+s, bd&CPE ey0lϫw\|5ۖW!R SE= p v4ЭMb@u;ƀ\^2Sa|jU\xx<{d PNjc"x_Q#/pN@L>uqPt0|J9u|hc%c!f Ubos6Vs*7Z? #eUϡ)N/B6?'z8LxSJwe n>KA667hr@KQp#5^Q?H0 `ShǤ2{( N$S b{pTQZ':6xQN%8 Ȭ@G2gsek~mzO.הx G*VzQPnײM 붩²m^;ȦR f\ Rk]$vmɞzDO𓅟oMM9-مi ӏ$_.oc)gx?Ga)z\gg/JJ)P3)B'YiQZ?N]#Da7_`EoA);ݾ~MIqI7`ZDl3wYMse}K)ϏޢG|;>-&2BQ';Y **'~!*+6)X7 O@n~p/5D)iξv/pCsHs+_ hsUIM n=:þ9EH0H+G2遥tEd+('9$Be A s=JZ%qzPbAz1 uL i iW{ʛ >nn b] ACt0 X##I`cH Y`)ׯ&j!)qx)sM۔2hOK0^:P]=tjQ\fXY~O1 fP dƪfou \%n{h0z'﷫0:)9W%3!>Aj ˘`OL3 D8?_A8@5čTa14Z_  ɭ1.6yZ紒GNc{x4&Ҽ^̌.! p器9 h1|4{ȴBy/ը[WDi7ue.^<;en T Z\y"\(?ɌY⋾d*j-ȸ6} у8,!2lϸS:$ĄO:[ܜ IDATHm}}ޙx5HXRnbM9S&ZDq;]e){T[ƆMF%U)Ԓ~DO, |{sR]k6aO͢/pڅv=~C'Z1^]6f0A Y(346(S %6 %<,2#hSItNLG&o=2%yLfaS]qsR:dfwgJIwQkW{RM>ݣ(%,a;hu(oH/!{4P69Atn 6I"F [\ɻwWw1iU$fd4pRni}/i ՟I;Vy_ocy&/6[N% wAd!s~cO-W|5xA6qA e5oomM#"oE/fwU6madP_5)3}fh9RRIc3+et ?ؘ_,苈NI* &.*&͇8 hFVmz}-d2) PJJҗKD[ `8a'G6TF@NJ1o 6.AĔeIOΩF鷑;)]]DhHzFAp5$#b,4`vrbz_6XqP aIo,2&uA'E}PM;gΧDI`>Ƚ JE7Dc|"8evVp]6A*H8?~mpR+5+^W_k^$YDѠ/S&382={.hh0ښO U~%$RS>.ctY JMDY9Jhd-$G520d-qNE2zL))S6%QCA[ ZaAEdFO 5Ɉ!x'p%jp4h3~,eO|5k-Lq-__ZD J,^ S.efwLHWd?͐0؋noJǢ&wk=rO"b!JEɆyH/6(q,Nf . 2^Z&ԧDq/ 78Yol=ffM …(.sۦcYȎ܇W1:޲B& XoRzg3(AAy_Z+hz])_Gh>}z(Ed@\X3f}3M~ +$ Z%k"p!!m9%aߐ} E>s?5F- )7%3uyfRަi }3! lSDLo(NriT=N3DcyG|I I6r]1faw+eΨLωcRgUz.q3-l{h[n"lդO(QxpNǔ^ E}|ς  (Ω%?T.)͕F~F[TYju^YfSk@X2'D+ht3! cvm߁D_|0#]9_˄6 XMY^Pf^nc,|s3rlhuo \SB̉PZrXeP%&\c]98g4$mw&0UxJ%dFcRKU 5C&8,5zъ"c‘8HK$ÔwzR´ 2["6eyaKɔ)XT&ro%1?*~Xy3{cʔ?}pZu 8qȐpE[-zZN>7W#) pPzMo*gEg  -?ZLC[ݽ]hXWGJl7<@3x8z/47Gp2)"yTfl.Ս! J·g氦sl`-Nc2 \%<||8tD E&ѼՕ͝"SWg&f3 Jop:ā5w_]BP,J@A \477A}Tޣ\£'ywor_giQPgX܍N y'}nnCo- 1nn^RR-`%YP 塳h2 LKhlk"@;zH@i۽Oޡ !Pe4JATU4"AYi¢[ uFdj]pic|#+TGq@vTt-p$K԰(7$s{]SDpEljmҔy+dIoi J]th M$7 ؂T'P2PJ@:⺮hD;Γ+pxٰ9\< ݊CNJzחD*f!ezK(-ee9#~fȏ?ud> ~2\Qӎ/qE[1_q c $ڧi[IY98 kqJSj6M43|¶boA:Ftu̟6?-M_70:Au/9Qk# nAA>`a97 fߠ@cmA7~߽VıI͂9 u@Fٌ Nvs}51B.j6PY1/ a6c5 E:f7(-5u 1L 6#^@ـ,&Z{|T>BtG(`GtAU )?Y3br&l˲y L01}Ӷp]BV)BF 7 UloI%mAwG1.#~L"@k(<#duJ`ZCp ޚUBUEAIrBW.vy0wD!Ŏ~A9NZϱ­q̏uBh^T 5=`AkrZ~񩼬ρxo_پu@ᕞE/N gԝʉ}"#(Pw]}N䖅(,k+CRu}{qD}<>X,ׂ<xLᅤZY J7|^OظbbZ -'J=Pq6mx?$kw!>{mJݻxuGo,v}O5,*/ m޻) YAsc0skAj۲r͑ J.8aQjLp:܁j]2p0 >?81=LO#}CkDo3Pt˥skT0WOM^fh#U8-Qݶ=DQX"=>=ܗlr #])ݾO6Ea79m,$^f@zIiܦNp` K6MonEp^J|eW0*de<<x7M+[{ܚ.NRYOk[VV  H{/8ѓMAہT{n@q]Ch逾`_`apAg(_ aNj_^dn >c` y{s8/^ᐽfߨ5w[cՂ繚,хR%ͩC>>O|-ƒ6>^RMH,E^#7NqI0 @6ᭈ6zGfm9W11gc  foS>UqׇR!8q 5*4_wxp ƀgkreF7M'ȇ)S<4 }R]r¿CHQR!l7i̝҈1;Jy3 pJr%#^fⴗ2]Q;2?B95+ÃӇa>+ΆBN\[Fl/.R kgé@'F\>Og?|BO+ :e7\/Q1MA(}A\1#FQ7%O;)P y'飯'8%k723"DgEsf sS#4+,HNKNN9\gԳX:V|zPaQϓʡ!ӎ1,(,'&@ uRvZgl}{ ,Bɲbl zy(@U-(aZ !Bz /+ΚzKH߿H! +ď3% . 3uZ2wr*3g3@ZfnLQ$Ph}3qS>.G}fkFQify p:bׂbM1jƝ/r8"{6'͔T6xECD?q2)-}yzlTrƤ0dDٔ^s[N/ِY[[P(̴PB. 5 RТXY#g+YdokLq*=<ۤd7b3_)hRjbs;ϿE{^X"Ia_~dߥvN hı z+ULb;fE>]#GKj6%qarRvݩcMo$sL'%ŷk~41K^,>Ԝ() %ߑYmw>]gC.5doSگD:zpkQAK(1^0/ Uٖ(>BB>Qjlϱnro"bșY|~n)7i1yMOZU#pH}KCb=sI6$p%Dˀr" /3+(=eXy7 2R0q\GtdC_ؽ+\9mpVqX|A0KH->iLDCjq٭>x1!8F3| z|u5O?3y*P10:L{ox]P Ei@{1ݙqT8P08(ԅQ%W, j"S.zE7S?x(ou)8*ƛ&U(gJAo|VSB>[TP=b}ss ZkYvb1-Upl@~<(>a%3GoK _Ob| ]k}Zu/i/ʩے8*% Wg,FAEY]̂!oQY)9Jz|#_2*Bh'NOܯ}#"32̙3Z'@xSڜ*m}7Bk/X0e% MAUUxz )b!u}Mc0?[Qzs9n8ʱTC3Bv$YxA $Q*3,=5#>'bh^6e1e7_`U1+(=zi0AjN ( ԭ15GUTY춄^,s,bPwH-Cޒ/anl"bn΂:y# _} e ƾGK;،~5B~|GZd/5F6vDևPb[><zOhA7N5}ßѯGVq{Ux_2a]2Fqe#s3nT3'ǣ0ZHV>/> g2aW.R R\ՈC"00C@ W窴% T嚓1](Q`^qx> #M}SU gQ1֡rLxk"hdc DM:4(l{"`6)|8Q'~1d,?)=3 yѯ1 ؐώ6L U+n1 K ~#/1ŰwL.:,bZDlr VSNG}`H4}@iAS9s羭+וeQ3^OtZt|`b"l]0?#f`2OREL3TdM. N͟gW Qxes*+Frلx?nQ#ɠp998fي8ঐKk(H::ljK4Tdq`V R<(=-x(^ʴ98PLZ(L;1$?t61LbOSΕL^R-@ U%wR,/U֖ۡ~GS>u?dR ہ'ni~G=hl^ϊ5Y#K'Yw9qN&2>{mi|=~_$Ţ@ ;\BVUd(3x2u[PqJzLfaɢ!3b,Ft}zˣSF,EN ^27q/a xv36G4E m|~BpsxiDn6"y|< q:c6D^EjHFM[::6zΠzwਕ"e, ag,4>?Sʂ7cM,%.8#(ȘSl~S1}\(Z͢#UXo \,,^A r*(>)!s5s.heý07(inr $"BYvЈSI5[5HrRm3ڊ> X;DjN)3#~#N(#M=E?'`EoOT iE,y>865,<y@Z_"gƸsIENDB`ntfy-2.11.0/docs/static/img/web-phone-verify.png000066400000000000000000000546571462047176100214730ustar00rootroot00000000000000PNG  IHDRWsBITOtEXtSoftwareShutterc IDATxw\Tg]:DQ,$jأ䵄Ęx[$vHUAeҋly{ݻ $71>˙9s̜sH=sL###*]gdd299~z?J577722"Ϙ1${j!իWǃZ PAPAPAPAPAPAPAPAPA ~駆l6[f244---PRRR?T;T#==!CCCqqqq\ٳgOnff6wht׮]d2mmmw.⢩VVVɋ/677wppسgOGGpk׮yyy1s熆 FEE-[jժU< zzzd^^_d2S`Ν3gpvvO9^tҵkfϞ`0fϞ}5" #8D?#kkk&uttٳ߿@!~G777sss%%%… CBB#G\ٳ...fff\.(ZP&<Ř#++l28_~իW O(IMMOOLw}ׯ_Q[[V\\%))Iĉ".w^%%Yf|2BL&s}}Gڶm[ss3]XXvhhh 8Κ5kBmmm8¨\xH?WQQ7obK.[D"#^rr:qVhhW۷qFL&|gv"R{M"n bwٳB---DmYfeeeoٲE`+#++??<::ZSSSo߾=333%%ܹsd2bݼy?3gB7n J,6m*,,[d BcXHJJFGGKHH GDD .dee)**޸qb%$$;vLDN:bqnݺ5?{O~0uU 288xj~286v=<;wܶm8xX<{ӧ#nU???ooo bllAX/v%//wihhp\MOL&B>}p")Sd-[BIII<ol͟?J-Z!ŋ7})))رٰa=JuwwwttDUUUCR:N>L$%%7oެr߿Oy1kkksss1QlJHH̘1!H©}t֊ĉT*_J91j1AEEG X===/~bD4 [N:PXXxsPwwwww7N5c%f34rrrr ޱkkkKPlvee[aa!BfXYqkD988PT>|ٳr>:V"ĞRq kx[`hhH$˗/qHXBߨ`AAAMM B(''d FDDٳ!$///u㳇ikkCʊmmmX ZZddds5ѿ<5ZXXܹsU&җ%"4::/!={ƿ#{갋p8 ZYY!c6C޻wxcc[Z>788H...)c0!E,y* ^^^UÇm>>>d2ɓܸ8  eΜ9 .%+Wwxx87 `'O9x`ssD@@XI&cٳZ|||N:5544DUVVs8oV|Nt蘘"B-p87o~9n[755yD!__߯zpp022hڵӧCBB䪫d2{&///CCÆ~Ew܉&(d0;D3{˗o'N8uYڳg^;v9rرc$ Wsȑ7#j۷o?o>IUU߱cGii%%%:::ةۂx_@<6Ho߾>LGG۷O`M[[;$$SRRaʔ)bRgϞurrP(˖-v7|2L*zҥ׋̍7vebbBP/]aÆq եK\\\似.]4Q;o>yd*jjjzĉK ,}ܹsxO?=\AAa޼yӦM3AL[[[hh(ŢP(L&sҥ Ȃ~uu ى_Qw:u`NND@ "ϝ;c?Lӿ-[Xbƌ}]uu5BhÆ ,))9ydPP8 sN|ر? 8~8dMMMxxxuuҥKBiii7oܹsgHHHSSʕ+=<FՅVWW͜9qZZZ"""X,jll/q 6SNOf̘h"|ɓm۶:g2/_ܷoN___HHHqq1BnRRRWKKH/RUUu"}RRRHH?L&BUUU޽{ ]c"2wVuuu???bƍ")))"6ݻ222T뵵s6W":$^裏rrrogq [:l۶r --qqq7n$<~!tC__֭[=:v옄kkOxbE4MIIITTTSS󛛛 %D7j31ʺx"+NNNoߎ~o߾=mڴ7/ϟ?A7nHHH^~'^zsPPFsqq RVVCCCuuu׭[}ƍF1D ;v[|yEE?-/m۶oTľ=55Xpn݊Z|Ν;R裏}AٳpBYd@G%H֭?}4NWf.\p8pKKѣG)=<<"""RRRBǎ_v H$ҩSFFF&Mdmmdoo:! ***l6~ /**|X'YBqBɜ/27jkk9s .\jUUUը=S}E)AuuS455nݺbŊk׮}}}"A N^{g]zuYĝ:;;kjjO<377h7{lf͚WV^$++S6# HX75*c5ill>>%ft}U{KJJ*55޽{4mƌs%8{ ,3{g I$/,,\t7|Fa& \.w``wy<^___jjjjj@%%%O8AP/^gC"$%%S@IIСC,R%}@WW{2 D?rڵ'Od+++1KQ&;::BVRTTJol?;%hcYj|R"驩VTT'pxqqq|IUUjK755555y͛7۷o{>\OMMMyy|H^^LH:;;F ̷~WtuukkkB&&&\.wppߨHAPkjj~ںwު!.KqkktoZǨ:/*++}ęlhh000-b``0i$**P3V&E.>ڪD/ڒHp[[[^F$#"3oI---6⸆^^Ķ27444֌am*x/aps늙Y999xs /EII8$$DQQH8s"yٳgBT*Ņ%4_Xhэ7dddLfuuullmaaoUVV=;wHJJjiiUWWN/ ,ѩڰa;KKK c,LpڴiɧN7oDQPP'zzzx+!! H$$$rss) Ed|B?999&Mb0zzzt:ѣGc-xxx?~|40++ 6l(kccC ؘJ^~}ڴiw}:Ʌ x<&mgg秩imm}@䶶6Ffo_1۔d믖EEEyyy9T{lls}9N\ˏXLMMh4vٳGU'0|P(c5Ν;bccՕ`0F60/&>>>QCC>zѣG/^?>Bܜf|rܹ^^^,;;6___UTT]\\x<^JJ32..eIPRRֶEEEk׮ŏ0ڌIIIl+ 222ddd@Dmmm oNN/%$$TjVVVuu'~(d_II zG<==WUULgmmZxyqq+++֬Y2555vww :0Ni&%%=yDKK>200(..z&O- LmmmCC֌"}}}L"\T*޾>))ѣG$i͚5###뫬 $n"KZZZCCǙ^^^%%%SNURROSDIRvvvrrrUU… FKK=== IDATnѦ*))͟?̌NKHHXXXǗϘ1XO,fx*d2w54ӓ&з U)R\\!,%%%%%%,k݀9uuu,+..jT,[lTIdddwwի߇쌌SŁ?PAPAPAv^rٳgzzz{ 6ma.\UW+W?K_~eFF7 Dxӧ7oϞ= tqqgΜ)--h>x𠜜477zzz;ߒ-[>ILLvZXXXjj*.~Qgggۗ1{l|'44֭[=100iwnpFFF6m$//o`` lΙEEEPKKKccҥK(ɓ'[XXrqqR@ʾMVR=_;wlΜ9ZZZßlEtww |*++K`7HHH̙3GQQ&::?v@1u?zc~'HNNNbrd2d2Y̙3%">qT~SSSqq+f̘XXX|>J&g3?? jggGo޼퍏)B1ܽ{sGGGYYsuu]t)WNMM366l޻wN{zzΚ5 CZZ͛7wԤrJ uuurrr3gu4߽{ԩSsrrH$6YO>1cƢEp̓'O"mۆruu.,,$H...111\.` IlllJJxYX9ܽ{7|eee}F_H$GGabVobbB|.//ݻC栠 1<<<##%%%wܹsƍmmm;%% 64SRR;::ϟoooOwޭ{[BIIIIII_}Җ-[Q޽{7++GKKחcM#@iiiTTT}}=FsssƟkii`X\.W__? @KKFĪ*EEESplllzzzUF_^[[̯oSQJKK0fұmkkuVMMMxxxuuҥK,Ү_gllqF)crrrZZZ[[ԩSwpBn^^^OO{/cB"r%;c_|9qM&`0>y%''߻wjhh\dɒ%K*++CCC ŋqwrr}vtt4Pzj6}{ѣG)=<<"""RRRFRbbb__)NA߿O׬Y⒒rС@H"fmmmii˗,YRVVvE{)">]nf###CaNNŋ ƍϜ9S__OoIKKO>=((\nݺeooqFO"O:u+V_v 0((Fs3gnذAEE%%%o4?tgΜ͑cǎ]vÆ $ԩSxLms玥ڵk^b7n$$$x{{_~``ĉ^8wxxg___``y߾좛X\\Lɓ']?jjjE2\UU"ɤP(K{{;>Bӗ-[&ƣGHu>}~~~r#O:us̉MMMM?>22e˖uUUU]t鵣\՝l?P]]_TTt_#7nhjj޿222۶mG|2''w''+W{ !0sLb^vZ3gZ[['O#''i& bmmޞ}8[D"={L,YJKK6n܈gMMMDLEEm۶ vŚ===9trr i"7W%$$qn߾MYZZx"))iܥK $H ~*;cƌŋ4[ZZRSSL&Fۺu+d|/!!.0w*aҺ;'kʔ)qqq.qBwɥ<ƙJ6===߷B R__ ACc䔐+II|KKK|zsssWW-:FFF/^՛]}}5qd͚5ø/^XWW;22222fT(IbH)S\~}``igΜIicc񤥥uuu޽b:;;|``9jN_I$unn.s\4MUUŋ*X[[M n͊QUU+((x)D7?ܸw?9|r*hiiIx)0yyyׯ_-,,}nnnXlh4Eaɓ'N zhbX744`u'WvϟOqBYxI:;;ǷlVyyy\޽{N ~OO}oVGGUV=yd_.L& kii522z𡫫+Lv2KKK{xxxxxgϞ FO+"'''88x…~~~rrrn"4LUooocc-[D?.UGw!p1_$))ߓZHF"&M"%%ELiժU;kFZ">xg;?;;[FF? !LFܸ$$$FReee}}C~ҔJII]vo.5Fkmm߬O> w<~ŋ~~~f\277+1hL&3++KAAM {{TUU/_~aJKK Wwwk['55G=p8GqJJJJWW00&xw 񻠠@^^^)//O#c#066nhh0000444444004ih){oCsqqqNN-qkii1ےN%--qƹs焽4' "и:::ox!s8, ń񊋋pAzUUUnhh-.~*++l~'e鉏xSNeXw111 /t eee lvCCQ؛*:ĤUUU+݇?-lddTRRxbHHH,Zƍ222L&:66悯ѣGϜ93m4<88( ӣ=ZO<cnn'~_|yʕUVjgaaaS( x<&mggGLJ;wnLL1JKKKL&3%%_,**Æ/uee҂sss~EGG͛&M)//ߺujǏ_L"!!all,--Z|ybbb~~>Xv{۱_|}LkFGG hiimݺU@H^ɖ-[Μ90sLh7n r劦.B+WȸsF[z5Z~}TTTBBB__˅s.))}k׮?~\UUuΜ9V.~:88\ԏݻݻ#ܠW6@d+vK9p;wtӼy:::;w}ٳgeeey… y<ޔ)Slll 8@[[N_xqhhr%++{ׯs8==m۶ ۂ؇ldd5Lݻ]\\-[ .|r߾}P;PAA؂******S}U!;A8\w{oYI)ً Uաw_11MRPyu%;eghp޽*xd  d,/%uƥ̤PЮ9/ʙZG>fs9'KI:O[4!'ζ֎f/B=m&vcwTc~e2TIZ!yU.?OB.y[/vD6ØG;Ey8ݳUl-/.+wg Bo Ok\BVRH$GYN~,ߩƌʗocjU6Fo]wYy5IAQQF!TPWw}!>?\='-9>1k$eMZAװ!GSgetV9{)1')(ꩨ髨5tu_6SAZZK\C !$'?ʁLG4vI E42FM)ლ%I3rZ{K<8! %ڔ_SZBB&S\@UZ@BeogW˙ŰVR*8[zTBrFS9^ CXkoL{;˜Ǵ5IiKCJSu%;)(dU^ Tl3?9/*J/?|0!4as6-{p{pn+` N L?wPlͨh2Ǘ9y0ꦾʤ6{ïzAP_e68nIcZ5n3O&?,qVS Bwx x< GPA@*ڪƲF)]-ÇB::::::666Faw I){CbtSw稡>i|\XX6j- ;αĨ[! }4=#3uM1FNZsOBhǧ}ߍ"$%%!TTTLMMuttBuuueeeIII!//PAw_w]1j9G#V8M .S(;v Ψ(+++>|._!4<<^__Og͚c%%//Q$%%CO:ɓW^1m۶,??? 3g~{`w =x}ݎ$![)eOL… 7o677?rJKKㄆ АdӦMO^`?~ ȅX80b;pB1OJJZr%D:t7|###zꜜa m&Da+@.nvݎp,yf;g"~H3sy{{7[lٵkהN:EDPVVyYaaat:]BB[^^={l۶mܹk׮|ree۷mb+@E@aW^߿ҥK .\hѥKL_|*#(KF'/bn _[ͯv\zajMݝb**X'|¿ǧ'!!8/^pDB阘lٲeҤI(ÇZ8񽼼TTT1333[[[7mDdcccWWB/tuue0>>>3k*BV|hj*-B),TpΜ9o&$mٲe?jjjaaađ캺:_133=rH^^qpΝsGY,6OQgϞ!IXXXHB۶mKHHςܶlsPA FFNX1đZ_|1mڴݻw}WO>6222eP+++CCC"JpႴt@@O?DD!SSSO씓+ºu_hѢ)S8p@NN.55nwy.[___^^`0?{r``@NN`6!T[[n)))=== _uUUUٳ^iii}}}kkkAVPXn3IDATPNP444xqSSQVVWUU(`TTF.c\\\[[ʕ+)omB+kƊIעp;w/XѣRRR Ν;WAAۛ7o닏߷oJIllbbbΜ9s;v|(2hOP};99]zΝ;}}}===ɓ'eee<oAt:>;;L&zEzzMwwwaa[YYd2{{{ lB+!!ASScddɓ'ZFFfѢE@bѧO ljjb0K.v&ZXXhjj:;;UVVWurrҲ`0/^r!gggifffjjZ]]M؈ӧOwttFtww{xxiiiyxxlBsss]]7PAALE‘yW_}Ex/%$$/_>sL?_SSMCWБ#G:D] ;GsssA3ftwwz*44tǎK.511&l%qFLLLCCèqx<ǏCBBn޼^PP ޖa7\hiiG'ADBHEEDe3gϿem++ {sl2"}r<~LW -|yx?pd‰**_U eL&رc?~>ٳEEEđ!iiqY[[{?G'fJJJ.\[n***s8bV_I&O9;JJJJJJݥJJJ~O:KuuuA!WWWmmmURRDIKKS(.;22b=PT)))f;::UUU⟄?;;J۸G UUUoۃצOS+h=f;gMB/511Ybűc}!ۈJJJ/_3 aӹ9bNv{]xt|nܸ.%%ebbrYf \hѷ~l2T" 9{ldddCCݑ#GkLLL[[[RR8KZ˟>}zǎL&3,,xDӟ7|e˖ vww B555U~=oTiii1c )SSS;::ZZZAjjjOjNpp0o`` ;<<|"B4¶~p!www'/vww ODdYYYWWW FѰdb).Fkhh  ;H'Objkk,X]/D/**rqqP(<XASEƍ)s[lߕN_J^^^IIIvƲi4a*y...A2YpBlr,srr:~A >22/t:lhh HZq I측P(x0`TTկ]f333333[nIII$mًBr3~HƮQ{|Yqm卜t7ğl%%%o5jbbBl-//OJJh_V0T*xW5YYYii麺:B~W/ddd<<<$Aܶ6ooomqq.uuuMMM/ƩAxNwwwVV֤I?FBD~ܹ$i BG=c QMݝ,[F5gѻ݀SSӐ~M8J@@; SA [[ۼ<544TXXkooRRR I$e~~>BQWWonn!ڊ OOOa#r|dddP*((Ȉz9vW"---M Fnnɓ {SSʴ4Bl˧X[[SR. IIIRRRK8i4e=Ma=e4ʘLli|Ǿ2-,,,,,' AF1'r477P(Ϟ=+--644Fqܮ.b+.//200 ^}200pR7z+͖ypw~$˒%EmɲCl q b`!%Lnېlmg镝t۝l6Ll\&]B]I v}Ȳ,X%KfZ<Mܾb y]yyyV*..VT.\xbJJt@ZZZMM>~Zʪ¤ן9s.Y,7R4 G*޴h4T*;pZXfG-xΜ9 ϟV;;;kjj̉ZPzfDL&SYY` OHAHAHAHAf}/ ;N k˶o!{x,ͧ7}ket۫}Mg߸ʕ38zPehhhrrh4F!D{{{kk#r͚5B#GT+WjiW]]/BJe0rrrVurrrUUB?{@ZZZyy; %''\rf8R;<)8qP\>-G^~lwkL9pyWgO=v>gh]Ks *s!O{|'WI绖8FlFbhʎ2m*LINxz[gSSlZȗ߮=L.^4Fv]Tze˖t:逬,$R4mmm-..YBF@ccr8wPjj|`b lmkk , !Rr/Krr+G^zt V|soј"Geeeeff Rm !-'W'1C?72ߒ$2 e=/C raZ`_&_ɔ3Li3Zκ}SAgP0LIIq:ԩS}}}rL͎B[܇|v_􎺖.  ŵBH$ `ZV!'>;\,(۰mOH?F i"&M3{p(4&&L,BnIx5UCmMҪ۽OFGfꓮ-.q^1|gdJBr"H8ɎRx+6R'B,x<---0SC/?Zrmg4zlYG21-ʺ+_=T(WMi_V\?S~}]tVٰnJ^ЅRJFĽknxuJgU$2(yf?q,>sdkhh*M7<<,N-dSSV# NyMvlvߍ<`౥UWx# !L)y7'a{BK׶-gË[wˤ-'ۚN^ 3ToK$4+gWf)6?KWp@Nu7`mCeK^_tikkkooo<]1c7k/,T%`C5aE`Z U~cXp IXaí9Xq>` + )xq'xR7jEcXHAI+rd 8$Ĭ8# Q$ڼV-8UVnJ>` +$V0b )$q$A径y`++:J<+,xTS9!x74ܢ̨1(PQ;#VIp2QŵaE`A%X@JGH1A>Tc*C6a5$1I,JPbV\HBG‚[ %DX$fMQE`a.SIFI8VNg⪰"+c1M$aq%P*#vxiĊb 'wa-p &fyP+xqՑ'9z(P*IxqZTcD$au$AI,jXbT<BT# f*6 %DX$d,b$pԒ$+Zܨ%L Y,d#^ )z<8œJXٽ^YUa1kdMXYiTV6Vil+g|kƷhrov"䰠R"t;ư^"r"j0bÊ˯ $RR 'hqX01*ȣj,SԞgE# "Nbq>Tr<5G:TXqm\BL:ATH"x,oI\Լ6ډO]Wćl|g1E /gOx^Lӗ)EvL` Y]^(Q;4bE(VXpTxQJX@D$&yPx qڰ"hN'8b*IBxQ!j$tTQ+,hŐ\:@THbxrĊ॰B$nԚ$+yb9H^" 'Fdł%qna/Sr/|i`I`aa!q%#Mtsğ RN:Gߍ 7bXXK/Kq=BI%,T} %fyIA)j #!Nba.?TBHŁ%)vtS74mkFOnc"e,x`C%q,8%E+xqŠVXI01#BI&SqE KX*Ips[GX=IܨIP)VGH‰Q˥91EFL/eR$>88v|Enu*NGg"_nh,I";4(G;Bm7415I:6N?r'CvKn" R07jHّ-M~cXp{0baE-UŔb<8JX@DĂQA=Tc*C6au$AI,‡JPbV\HBG밂Ұ⡸¢U,BJ1Iܨ5ITq%K.oY"BCQXK%A_t.D$. 9e}?0?y`YڸbJ1BI%,T} &ƱQ ,XŃƕ$FbC5I,1#.# Q$ ŕ=<ˑ )* +°"8b *$q$A>8ߊ~ok!âa%'^ݩ M%ݤs\~i FsǛ{ ,i:YWEv*5s,!- vE?2nr?LXTq>♸(ˆ^" +,h )z<8œR^KhbLX ' +By$GcC%I,1+.CӢIBGQ+ xP)V n+ )zQKR>ܯrW`GDU~dSWⷪXvܓtqNs>d?:?2XD` ^=crŲ֩}@u\ߍ @F8bŠ"cX<œJQ+,C5HA %'X+$8XPMKC Qs$Lƕ!u<+ AXcq.S$$Qŵa3xX+w%@bG!( ,][}2ٍ|mJ +tή}VKQ`@f?pr?sy`?J,bF/mћyx_ nqOŠ]^+b 'xRIX01#j,XE!$8Q+,|& &f!iQ$pe9@TH"[y )zQKr?ÊJr'$,XQU[_ fJ^^ʼ}/̗Q$]d׻kɿ/ ,S2?,(E7Å.i*;<;ưaųq% #vy)"8,4P*aVX,1*ȣG5Hb!NRV: $GbC%I,1#^!*D͑Ďj2UVWUGba.R$q$aR)wfK4qhP~T\ n.JBY<9X qEXr }|6^ iKG1C/ p$4(~?5N3;oĴ݁EvoOjZq1,j$ `a f,.+,4Oaᤒc8=+xqڸVGCˆ,|T$D5QMÊJ:@TH"y2,HK̊⴨yQmvJ@THBr,BJ1Iܨ5ITW쾴8)y'7zGJlyXۍRac%}ЋQ:"l_lNT#tˡ1;TcD6Ց0bIbq9BT# `86 %DX$d2#v0TIF-IJ &F`b~:)%idwvݢXb(wXxX}`ݨ6rڗwJ`f?Dͥhb'oB41,d"o&V))*><75OIp2a 7`!ExR 'wG-hbTX ' +au$1I"HbYq9B5O: V8?THbxrĊpĊˆ,IF-IÊQw`A-AXˆWXH!i,TI%b9,|T $V $q%$8ZBFh\o nP&x"Z,奰"" TI9,TōZbĨ B<8Im\ # "Nba>ALBI&aŋq%a r$Í<VaE`q.S$q$aEWQK,U,T"U<8AX+qEKdz6|꿝J[ "j8b *W NcOZbĨ "<8 aEQ+,|$%fxqZ^ )z<8œJX` + )xq 'xR7jXJAIjJXI q#vQ `bT\IbG+^+ xQ%#n+ ,Tc*D.Ց'8b*IbxQ!j$tT+6h!E&a $!mVX=I%IXqm\a I`HТG5HQ<W,Z01#d#VaQ-AXˆWXH!i,TI%bq,zT $V $q%$8 VxQ!j$xTڰ"h!E/a r$ÍJϳ" n楸B$nԒ$ ]X(B I<Vn -..)OuK`(>Y[[%bHU~9>>#:<<["tl["eDG쌒d - }"+\^^,qxoDH)&#s~/$\]]&ʝ{T*E777!GW t:M"8AĩWl`p8Sϟl *xHw,(xXQ,!X!B`G!CB` 8 "p vRsǿ9ZѾNjin8l>H͍ԨiXhkjhqZ9[ @#M~$eߟ}/zZ8"%{vjllZ٥ut%{Q>޸"qHA6t2.|`{#5&P!MdGs4=OMMOSvٍH|֓)i`ill@,A3q uf~nȝ%é^jnj4͌S)ф?3K~x:t6fԞyFhs,"9=I=~Sp!LM]Z7Bb.T|=x-:xlZfmtFgv"n04В byii֡5yMۇiJLO<ήQfyqhlB Zi:J#;C'Zdіyyn4De:kJ·O426Q̉6%,;Dzbm2D<יevf;-94?=~ /RZ'], ,1m-&(3;SG6XDq9Nߚ'hn.r bG7MH]&|BM}R#FړB?s(D=DžCh0|F6)%[y f֯{bҺRZ8 "ˁxVW7 ?Dޢ1q˷tXoGܜ8 uRscuD#:*ɲM)ij"^>%Ғ7X{#`2WuL`9~E(Z"ˁr%J-"~|wOdvSQZ"cާ8iQvPVqX:Tv73EMa?e55SXΓ~MS[!BwsW<*"tv{OST09]do:nj[#˷d)MR:~}aZ }=R_:8"ˁ.%EIxğ.=l?5dO"; NҪ,ٓfOr_| Zj̮,ž5SS8툀QtRױ96ӷ^$K$C܆KNr? m3u437C=F<&In::[$BdzoVWYO|,Fi~vyRi5{k$nl@`z`.i!q|[W Mmi~ ~^bF1;D3F4]FԝpuGi@ė&MFHbŗi6XZ" *(RgMM9^.B}4BsZ~qqAYggg@~[l{= Xćz>JȂr`A@W#  8ʫ%X)FԀ^=\"j1{NPb{ܫXXQ^,b Cl#v`g1?88` ClrxXs,?X:O8B` U, @V!hX*  XA`X4,` B` U, @V!hX*  X} Pk[-bbY U:| ؏+y"ނV=$v]^٥vB`X_uK߻uү %X*o)M?_?!m;m\H|7=vG?Sã9uڻ;zf2uKC< :O X -INR_~L7]T?sIcW 8u4(~4}6n5u怋%~壗%:fC2B'V!8H|.p|FiK$AE:R:=LNi`ŘTru4Ss[7Ɨ3G=4y-}yDcfttrH ]4oOPo'67SkWU;34A-m0WO(_WcZ-<[;wh&&VNh>e`MrbAҷ>%d[ס:{cT[wdu [ix#%NC`q~0mLӺ*Yl3DԽ$~;:LGЏ`#Ӌ7 \)hhqxGZ7{IǼݹj7z]?߾I:/Sr|@/ԑ N$eC|Eھ"GDvrJ}5ѓ>Q"sJ4Փng1OE! 4Ӈzz9Aů#x}J|k'x{c"3Nݽt?~Zb,o.jr'I[t&m)ru %Js41Fhr~Cѫzz׷F ,fn{1#61I##z_lyMH&)=)n"ntfvW)9ÓI:̆dnF֧iuF0tPh*@stz;#-1 >s3EǷLl Μ=ڢ6_ޖʮ0[-\+:Xh=N%:rreD7'Yi:]gK'vuSG>r7G2wSw; x uttP8Y41WG?X_9|uDznG}Y/XctjNGfo;[7'op=S|.!Be 'HyZ?q3%ĉp4?@EW :[立Թ=!}`9>z>S4bBRě]Rkz=OC_MC_عrX>ۧÒQgAjFh7h3D g|my`XB=SG4\_S9Ǩuֳ,]`umѵ~rJm}X4N~YJs-6\͗9# D`o+'"yArM}V>. WkC9D ,i:QKsuⴖ,uL2veQ!L@[?uP!E:ktS;KV&izTjEdz;3h ,3EXj,ӥvPKl~|RĜ.ooF=P)TVm,/ߌ0ǏEDAC݁VޒYӭB8XNӗ:}q@o'?̭.m}\=󽥞HkNƳx7zDX1-TT5giGw!~jCT.i%کUQP.$G(}Yx_5L|+CZvPЪ.ioOMN;*PsS#5랧<ßZ#hֻ;h97Ų8XC?Hr>PX<5Xr?=yzkS2XoP3wŜ˭1Pbt t >f?%&{M?z?JiǼ<,RO7sJ_iij)YfIN"IɹRt2K=E)]EYWWj-:Ο ,͑eJ'iOq^sZ R`ҩu *n+7b~DuijižҳGOi$;>hֻ;#S9y.h{5%`iD?hrO>sٓў ɟ]i V+k=}!Λ"{'wޚixj j%؛d/NӋ4m7u{ϢF $tF)_^D^՗@< Šmk]막]4%.%,2%}H~ݸ.v@mKLQ[澛ii:Q`d褼)m;\h H3?E`~g<,.}oK-.+ ,ipZUXB`Q5Eĕ-|ch=z^8 Ç>%  |&zW^~ls٠wqX`̆{):%O<& MP?|иoyEqX$woQ]fݟD w~Fxר?zqf|j =O:IZtP[h/@HOSotTF4LFiy/Ig],e{N]ԛ|.EDqnF#)v {JQJ?RxUGoկOziA`1"X~=gG`9V<7LMhv ͵=Q\zZۏGPz>=6@:!@ hXF|{NT߇S@bD.uQϗg{JӧiNP/zꟾu)h5սT;u.\i]T=o)P;3z[zjh+m'C w|ߞSoStpq@ӽ9k^i%N74ۚ-w_P}zO:%}sF{[4_衹=:,rZӿC=qCņl8^ҟc4J+~MPR {LFivi[mfѵ~k!\-Qo>zw}_DdֳAͬodNc{n} >&9n~_1w=D)_QݣGE%M_24HFzy|mЕ%?aA2G>/t`?;X(tv?Q-&ى'' ގIS4?#NoVn7^t-ҵfev_i'#Mus!;O6Gryr;/3wjhv$ -_fnFHU'-\s+=ɼ&/~l 5۠9={7QW=l+Gc5J+{tVР< uѳ?hxfWX`lt1*}-DG,~z+b:Ϻ'r}tg/ɽ_X @b.dnZ} :,,_]ɹ4ϗoW;/o=Xu8RkC]'9  i}}7'cO^B3z<};"??4KGG+\ ED0u}="_owqs8OMИ'Ml_GM`Ui/{~NZ( ,.z^tWyϋsh?J},#x`; ],N-nlFM;vӛ{=}?{u~ߟ`.B TP-Y7PE]!D@`Nub;{|ӫ8v7''q?]}<灝>w}{HV2?E@L*u9tw-Xʂ2g) sf <ɲuft6X,E^f]tn!UQ:eX\EN6dC91f16_˵\WT__"U4+|BWHשc KxtsY80||mN~Λ4X! B a.6JeY@L`9S3_B%+!0$eXKhv̝\6\1rmف4(swGw_Grp}"_.E rtuϘ)S{vUH2#dHZוJ `闖%1X.KR^Yk)#'I#6XzȂ`,?r2Rp 92h@lm1bJ7Xt:0X+͈)3m8\>sp,3I`A+I#ЩHz1X! !B1 Tnt""gbm<.mrhb)+].u΀#9IlI2eblkKkC3EʫJ,WempDV,]=gDNYV/ϴMfR1XF#0yl9,WƮ3JR/T6FEҳ|3MdJ) LwK]!Q9GdRp0- 7 /S*W!;{ӂerkXe\]ЬJ,M5znL.pm۳UP߰C[;XlYT2|JiI_'7dʽṯ%,>՘}в)Y)3 "tR) mGX{4E!S1]F:5sNW,CjJw`"BH.ABFX0^9j2crL/Ȭʾ]E'eL^eiy WJUF9;:NK.,XlfY!$B!BI6X9'JC_hB!BKtmBʕ+l@B!,4X`k;\>"7y yL#A: $ǚe9R݃:r$)*_);7HcG I#, edO ooUOHɢrhmeӂR4FN]4 :xH,B)$t_e ;C:ʖE%ǴVZ.3!iF l@B!?:#С2L:$~" mMgHq0(rTmXf.ڍT!)V!˫앑1 a.lSCru2}vl)- HTʗnSc%$ݠ<4X!2^踎B(3Y7;d`i… ri"BHc)Dh\!$9Wghc#WB!L,hx9.g>?B!2 @ ~)>p, Lt 0Xz{{Eȑ#RWWG! bFimmu + !96Bҍ6EI dI4Iv"6KE(^1V5Wt'OF$:˹s!B\q_q(HB*nddq!$g̕x`z,ImxM7 ] ? B!.LB*nh# %!#K+v :YS=v [\G& /↾c a/PiB!$_IpfJ,6R1Y"؏>n(aoKˁ!:tB1X-}Brm$6QHg ]a umtww VG!:HpцPqo!% !!Wr&tf`a7!h$sEn.ȵX!BK8.TqC*l,:$,Uk%9> lKo\@&72m$cN81&Gz{{ !2eb.~ F1ZMD!4XIb?nyG䩧((*1!z衇;Hѭd4~m$n9Cxand`".B$8{رC6mϜ93D6S40W,&hs EQEQTBL*:1q5:L2^ /`UR6XPy5kbΦFƯAnI.sۥE=i~L]Xji? (($JwFs4Yt|X*++.mТ((ҫxO48`e2t|Kx:yY\g j,d|1(7nt*tᘈb((+Uqq^L2? y~@Wxc,- 7H1XUQ^ .\00,KQEQEW,^_^,dƉ_tKxB%ŀ 0RJ:|X1,3}k␄Jfɒ7K\t['˧JQ0(Eeser.l//U:L^"N|m,fd9uewV)NC׶9xTVe~ c;"4CV쐕`Hg,pXHfL I 4Ef,Z#:'J.ub jqWLaEQEQ^8+L2`Iv% @_We2=N,RTT.{n69zpTL.{FWTB!wKKkܴPJeRx(RTWIQ&i5_%0I3Vn鐺 290]ֵ\]_Q"idi=zH6/*er@,/\I`хj,( 6WhPEQE_vɢ>/EǓq} oBPf @c`_,EQEQk+M%c`! + Ceb $?x+^.lb imx((JQɂJ dqtKH)xJ`,Yuak,pv3XA`AYPEQEQ) 11YtJ`2YtIL `B ] \I` lf^,EQEQb,ZnX<2YtbLAǻd6X)TtadZ]Ⱥ+`Afs EQEQTe chE,v,e0V,$_BH "?x+ ܨ5] ,v\ EQEQTd,\t,BH "?$jU V3BmmMs6Xl*++?^o~S.y+^geLGu /(m*d dk/x whR,pb)q3Xzzzt}ZiW<yK.~wF3݈dR^^̃iaÆȲ0~ȲX怙o~{d9cؖ _Bg#~_ڵkǴpƣٳgcʘ3xy׼5leN:o۶-r,0~Ew3Xp'NpL~e)('2* {X[+QǕ4XH>CC@~H`17.T.|~ B.?m*HS# 37;-Q~G !1/ȱ~[߲Ww L쌚`1F޽{ÈZz3-\ `G>_jg:ZTn7Lj (!Ʋ  nB:~[RR?7x)۷o4Y0`Yg,.4,{bZ1 >yVDa>,k)Sch!}D731XЕMCa<@z׻֭,~0rڟ1A0b,HL;C ,o|#2tr3X 4#\;}((Ѕˌb9J7!Wjt\6Nb,~4X)0t]itfُ6X`pܘl2{^!0A__rdcAB s:s̶DA'} Zx)/.a>v/?ad`A L{FQEQTl!2݄1X @$5/`!tAf`<30X1X0&/D[{?3*ZunCgx yfg|@_в$XM7L_5<| 2X/EiEQEQ2 b.`T x&K_21p3Rܦ B ]At ]KA^ 6X <81x{ vg:FџZ~'8'zֳВn?\3R]\~F~1X0,ٲeك ֯k=i^;kt]c &~tm9lݖl7 4|<`?EQE5Xt7!ċ4XH2hC%@C@H`1_ + c?-O:Bh!_!?I,X, H/[˽L{e…δ;w?Lс.>hAt!? 7gEAh1ݠ>O:F c@ؗYԳn7cC ݗХKv7*=FLXl@Fbe'>v7駟vxc| (#nIDAT%b5'j? i~&=^ TrI] x 2t1&Ηd25w4559`r[n;u|ZĉZ5X^9anzǜe`H5xGX.0p^hc5ɞ={08w|￶D,sot9:0QLK#7B1u 78-_LK( 1m [7!;f̔tL&.B ! ?Nz6Xlse j|5-EQEQbL`&nBm B ]Apt,e_2E(/X V,4XH2Re,.46X+4X K4X((*r3X8,4XHcY&`!O<}A,B*,EQ}e`~ ~Ie&  B ]#zx,xx,z[`AO((*32 ex tkD x& yb2Xyـ !.x⑪b U/EpK((j|b, dq# 2BH x$c^I`AN((*;e%x`! ,G /ntwwx((JQLe>՜⧛ 2BH xd`A A EQEQTf `LF`!O<2eB8Yĉ:((RbT c`! B ]hPXB1Xe+^9,EQEQّbL?m3X 2Q(h'_UU|'; lKo\C<7SKK7FiGu E]`((XBHjsŀmkcuulڴibUv,eBQEQYix,n&K& x8lP1GDIv4\bЦ 8~ʖ-[dBQEQ5qDԠc$]!$Ә7i ]v޽{y0@Ca -YB4XPh߿A7G 'O`((ʀc!֢BHr`I1iLqUls6XP0مZ{{3ɗb S˾}dŊ EQEQTvkXm (`I1iLkc,x ,`֭m6,EQEQP4XI ,i0Fҵ{&b[gL`C{,t,(av((ʾh4X`e;NȁdƔBSdƢ5?j6ٳf2E2C;$ݗG˦iA(G6/Y%! N& JϕDs\vY$3K3LP%7rmR,[ Hh:iEj*eb tX{Jq nz*(<;;;1..؎;,(lm؅ 4X((2#, Tl_Q"idi=zH6/*eraCIhJih#diY@l[01X,*jHSn]*e,+a&gRv*MdÂu#8K:4e]+ 'Cerh0\o}k+8P& 2~1 6&"dUqX2a EQEQ', 4mgU֕|k2\> .mWR/5= 7ɔ,Sn f^ٳ (r~z-Ph=k=rj@fl!,EЅk\! .'}a9zܴt@ɢe삭a8lؐ.B,hQc r/u]BP`9 ṟsoQPB+Ը)CU5S36KP,ˉC冊2)4IBer197do'1i6݄4m9rb%ӟiF6- ( !A%Uc$!,{ۥvCL̔01FXWtEqBz.7X~y߯"ͫHp9K4C=ҺRfB2oivLJLׄb,y±slڰ.aٺ M| [uZ||,~ӻw>tY֔dvt`m eL Y^/ vBX` 5=G,3cl!m]v Ʌ nj`((Jc!Eehhhⅎ 4XFd}} v!)]){ۤ\_!khdY?3(kdoqhkC[KYr`6X|q4;$箑}MmR+UחJF5]\ u ϓMTʬP,s-Xr]`DޅтV*---_mlٲ%b\3XH-"tYNUɆ rr1XhPEQEeF4XI ,ä\AB'B1UPfL I 8Y*Kucb,3428|yke_E-X'|uxˤji6`f4Vi x:`iuD ]Le۶mcLknnv D1XvK˹~x4 Ԃŏ64X((2#c BH`c2% oLe1X@>i=sɹ15Xx`((ʜh4XhB<^[qwdCUtܘ,vam4X((#,F,4WH! /,cȮe>ƌe– EQEQTn*1YhB + uhl>"4X((U4XI6X)4tㅗb@aỏb' oxԋ9/}IϚֹ?N^o~gQy~Kr_W˳l=9>?/~zo=C6~_;z)}ݧ(BHj`!4XF }o[o'?ȱ#8u7MH }w8is{zcLkv/f`qW>!x;ߩ'SBHj`!4XF x jO~`QweEQ/~ |Vtp`'`Ɏh$., B ]xA`y駝cx׻M^Ioo14~Az׍-oqo9<þ(~vwF dwx/wK[w][#y݂tO~ts~HgŻxЊu/3L99?)jxV}AtB~~+^<կ"q\mg_⥃sC+ֽuMbxe?V}}o &7ʨ?/=V13#X/g:/|514\ܗ0xe{'7B 럨.e7&., B ]xAe`AE A&N)E YaL!xCE*)gXii Lj[mX`ɨaL[jȜ7*F$z,ks}iZ0q0 s\Ɛs5Xs]I !AB<^`b7IG+>A`k0#<ZlwC44Ԯ`xcg 2z| PBvPؕY-LidSݰ<oR!}xS+*,B};5t` 5kSy]TkmZ޸c9TV%?Tì@2}M^@,v4B^E~PB^0x.l*~(ˠxbxi.`CQTu -sOx~!sC^t[-嶯\`a:L>Lky-&t,> -ic6-L0n9Ls8=︶,seMB BR !.x2b|vynX 'G`&P  d3m+c@T#,誀koʖ {>wT'"7{(e0o__c& Njg!_bt Ac̙z S3G2 +]F7q[ؠ&Qigxk_,+K[teY_su ;?j{IoO:znh{r[6Xg-\ma{8@ Bk=#]u`og{ 7UrQ2MxL2/x g`&,, B ]xAe,xivSpTm LCs0w?p@o.y=РT^a`v`a*pm1X \ouGXoQ1D:M XUc% z@Z3:N.BZ>̶L>62#nߣ➨Sy~[.,x;S3Ovߐ: uGlz:k O:znh݋n,gm_t2=pɣ,0lP<Ͼu^7Z9X,0 1/aV ݹp-=,kžg iRȢBHj`!4X,xk%:uss7@H0t ʎw ;ʫno@` Xӎ`-h6r뎄J; ¨b TBM,݌b;45nnp/\ \;@x S&7\a#*>7:~)4Ɓn(XGy,Zaeۘ2T0imų6!Q?eW?ŭ'mӕe}G-|1ݺКMw%uI-{m]mnrW.Ɂki,8\?;]`Ա ?yQ" xܣv4GQۊW51g\?m?oe讞I !AB<^`k@fBSA%eTMg#EЈ` ʎyt !ƾd&X/p-Q:ct_GLtGEM,|Qk"'Ljk"8l <XOSp,+BH+l`"D68?#TRm#Z B^[l/dn!nF7l ߡe T(Mzd6_2³۷+&V~(E 5Se*~m=]YO~ti?lptkX7/Eu/?m_yߣbsu*,  38S630|ľL 2 ?y3XcdڊWLxl~wt?Aw+o7M U4XI ,7]&Cgl8^'B;#8F:v؊ ʎOf`U#lUE0kcGѭ l"*V?ts.|2Z~ ?`ؕSȃXoQ3ay 熷^BE@k +8z&hp]q}q cl <ցƌOHlO ‚?3. % MeM[WA:BidGq0<1"_rBm=]YO~t-LX*xo(^:x=7l݋nj}tz1g -'@0`ppO,e@gyAzu#?e̗PP8/,t14ql5&iRBHj`!nttFO Uh2% h7oMWEʌ YHg?g{1績oYT(_Dӎ;v)555w={Dطo_w8p<(paWjkk..GM}}=!iYW BD(^`d i|4*n`lG?ҳ?.s*xUws|02-_+腨l_?;|;䴈rj62Py4Ht6 cǢ@eӀmhoow ]EwU'$ +䳹h DX%k>=A _ry _''T$f=L-Jl^?( EM41Exy@|8|&nό駻 V^.I~1q&!@wws`!$A _=/o) ?ATyNz衇Ƽ}1>W2~ "ַ2׿u||ߍV^W8 ;_WQˠ*Ho\ <ЇodW:}t c׾5җ4r/K2^W;y{9:/E/z_Eq ~g?Y'o:IoLg?p=Su"Wژ|_:2 A^Ac?)?fdƮ☟g9iOEiym } s3q<>/=N֋_bNZg?FrB@>z0qcF^銼/py=5@V-܇:ϚesAZ) q>o;gDͧ\ie#|@ef?X =KlG*83,~;q@a;'mnK8G#8.Tzq0p!L" R :l[ou*>4 o|ξ/x g[`s^F,Qldžcñl7^slp 0 p}1cpO`o{ۜy:`z%/q*n?t,O:b, :g3*X6U`A#Mq`Ra d'ݵO>9/]aYe<0swgHl@+wg]!f" iCx`],t?YF?˱ ŶV8/mPTc  &fx: cxicTB74XImxQ LQS0 *vBE롲j]tPt@~=*{#o3 r7AJ~a@!]V ׮T -Tp^8?s}s\LE] AF`}k[b;-?*ȃv TJW}k#!cL3FELC6`v ޮS~Mh%dw| im L-c&`^,n˫ Z7@󦟼8!? *kbI6(P& &y3\^snme}8Gf0m-oq%*0}m Ax(0 v,Lh D T4@cӟbj`ym-!N Sd/Q׀8b1oi hcZ *bP2dIuv`~q$Lkn->Pk[8fl!odyo'7]LW}laF ?/m\؞6S~M`A;TM%ziݖW]k*~,_V&(̫^*J7]ђ fi r~AV&18#sߛ{-q|XƘݿ0O] atŤ| B ,$6Q(t宻(A`inoa?Mx8/*cX,0WPa%ơL-i ?>k@3\c/V0Z`ؗ>&i2Xx/mk6HkFne)(ޱI,L"~ulVtsɫ~cĂAg"tI%Bx&9eZ͖t5-0BĴ11 qFYfMF3D EQEQTaɴVAe/m)ۏ|*#bJgjx )7M- 3XZE+˧iY;UE=4X(( K4XIӚ-3XZ]H/V.7ɪIrݤ,>pNz~r2 c /hPEQEh<ȣL^<יKM2h,[\"{7!T\,#* ,0n`8]&YG<^`((*,`!$5h 6Pue}LˊzAt;d15.6i)YY}XA3(v-,f9vL-顲YQem_!! qwbeB DwYlYt m|4wNt>̔v[U[(-yTV\,3uV2xB|X:M:ʰdY2o)}CyQ 9~,Y[Z}D%^\qrQG9̣((j"`LRa+Pƶvy[%c݀}ٿfl;x^(IIqR:x:̻oSKifR*= m~,-K$ULZu/l^*yLNU|^u Av,Gn?Pfm#M+ХU?UO Xu-<`W(("`LRa MMWO X…,Os3 M',(qs?/˗/={:ddYڴi#W^y]H~K/z-w_l9_!CM7d eʔ)vv{qk.(oJR5'|R  o񆛾(*dtn&`}D%\q%nyu#HNd֬Y. gϞ-;vvHY0X*eO?Y3\,{{ 7MBQU),4]@(T=묳$M>#Æ s ^,X&NRY0X*k9B,s"`( Mf. O X3̀'I Ȓ~a2[e~rJҥ0"U>' r/tC 7I5j; &_*y}Cu&-^{-ܾ}{? DΝeĉG{;mm{:/;~/d-Nj.Hϟ :TiwK9.\P^|r,8nǾl2 YK`B]K_uz9~{w>;c˃>(SNRw̨>޽vi"K.u-Wv/̾}r/Q6̛7%|8~|믿Qkf̘1.+ ߉D9\q/^JQTa{uO"`LBd2KUYhsչ ;ay5xE@`UVI۶mcNXp 'H׮]_~Iw RrKvSOu1yr7_dx衇\ || H\41ӧO^z?1+G{:4:>nVwc)!- 0Pp,wy$FTد¥~>Z.Bw80(ŵ w8p%l\]t>p("Cu ucu|7^i8@]Wކc+\PEPE%!Os3 M',UeIU cHWd"bfX+on &@ R>*1(/iW_}^C,*4D17Lh!kCrelUW]^A-G; [N:G}SO=BS]"#L|`Q@FK_d~'Z~a?Sz9URUP\; S LK|> z:~&o9=(*N>\os3 M',UeIUD Z Xqƹd@`޾ [,]u]:T 8ntB0 lyܼ'x"=W6 Pl-O 1#_tX`5l`yr0)LA {Mzi(a XǸ-G;mQq=.Bq OVy#w6| ݄P_0N5{W◭UPF)۸qe3T[e;*,4]@(T&j,*`&lJyak`:[U`㎫2Fbdc0oA`,#?wxu} ,T28!:-G;}=_' 5zwXDd?PF}a Z X6I!k vl @ V?\rƸ@XGiV.QE5tn&`}D,0Q#@.B.` bp nO ުBkͷU`e*>ǎ ]<00) ̌3[nq]A,c:\ ^#|}!Pq9 t7x ilg oh›z֬Y頻4ˆ#\0 Xr\/vN0O$/ (s(X' u]n9nkq? G7lcKT&);+>5o=N<9 ",O֟'הch0X2R HQEBӹ e$[K"\? `7 Ra9V1~x\_D ;!r,T?ା\c dXa,`AF2{pXzhO?T6l^/3$ $H8?>:K_u AQ2 B5: {,Qe ŕCǏd#lEuFf€A,(j,"`LBd2KUY`!].l Xb4Mt}v]s3 M',  Lm@7k#.oH4MӍ):y0eXb6LBdr!۰-@a-8qox裏vc_ ,4MtcvMW^b|@,WO4ɽݓ am0 M'ʅXl7tPb4Z4M4M[6GRׄX[(1>]}pYS&`}Dm6hikڶ=|>\Ypa|9 D-mt>x\6P*x ,M4Mt>lA|:\Qyv4 M'ʍFIX(?iim7DٶG@K"`6W`. O3` b8'4M4Mצm;$LN⺂+j't>xXmM4M4]ڂ,,Yo竱. LR3&`,m,\ +~_~?L4M4i~-aŶo YX ,P WjuI.B5gXl# DA~)?#M4MtN 8 d!`ΝСC?՗rt(7vb+ SL׿?M4Mn>stvIdAmd+?~R_Jem. O` Oc6J7JבUii:Gk¶79M߽-Q,وV/X YeWNPS&`}D Wp:j+!=w4M4MggmGd/ pqeC:Ň,6BlDBF E]f&MJN|Ȃm0 M'ʍ_qڃmPEQEShM]@I*`. `WXb6LBdrc,(0Ȣ(ȒT,4 Xhl+izeQVѮB~\ tn.h y}&I& 4nܸjCU;V>-29ŸmjS$M̗-v',t!>xܘv7v eΝ i6(hhW!EXnB,mai4`XR²]r,&Ej*QeY8o_3ylR0},O:TKK#eA)dabm.j=RV'~n)9{"44%6w*gJ:H.mKɞeY;Cdɾ]-I2gLg)5;tdҹSiѶ3jϛuO3`Qc|';3Ѡiik ,:XnB,mai4`q1#S&m& >zy,Bt-Y&eɐ֒Xoȴ2Yd,m.erĦrҮDzM['>Lm,֯JHY|z9R$a$WV&s!-t)w]֎(E-虲lLۧT(*r0ӺJ6YL (M+8E XD`AJ-~Ar{ɛoѠiik ,h 4IKd!`\!.{EmXPvjyҧ쾻,}GLkR~xj*=goxT;dt-i"nNE(4=W*֙ҥb>+.m],ɞCy]E{eS,gzHM׍'ʍ nu}5vzw7h4M4M׵FA[E +8,} Mf#+ 9lBm-.Nd:}DƇpF C_f,jF&OE\"Gu3<M4M46]ІQ 8hظk,!FJm|ݾn`nu0_]Ifv+N d%{ZGT~[gzX:J2ˠ9#-!{I+7m:ˎ2K;9Ń)eޕcMBukr!.۵X4X2֧iiFm XЦ!`jpA8,+%edd$UJ*ʖʒEsdҴVoy}2bbYj,6Lh%C ]̕%EҺT)[lv@\֎i#EMJeԼŲfö#:IIQK1f,Z\E{!ˇd،ŲjJ)2@H锃RǶ("`ٵkk+ |Y*)'pByXK/dlG4MtamUf!`mtm .ѣGavrfo(۹4/IIQIsiݥ`}լm1}C&JzȈ9{o*k&v=+Ѵn;Ȑͥ{X5 s,K5_R: )F~EhhL_gSIUG+}ufrc,\xuzG2c4M4]N X^%X`@ϟB -eXblkרXeCeV)^ze2Kf&_֮@v~4M4M X2۬a` xz孲bxkiY:\.\&+WɌ}H2lst}}D%Q/?O9Y &;vÆ1'(}IƺqvҭGI}#t37&XZN1߷-~w 9B>ꋌuOK֭oXVW=v_YtI/ZDܸ!=ݳw/9|hi6km;k,!%VY#zE}O`lB,_k|G7j}ұS'zԑrUWc2sڂlMRi[7W6v0d. r֙re Xh +`AmaЖ!`ɴmtm%ĸaԘgףd2Kf&c8# Ok/ugs%ele 5Ks-Ge50IBtm%f0 M',\|gd'MlÓM ̹s䜋.I.]d |wߑmr]^IS/(/s|;ï3 +@a㏓MoݻUspء<-۷ɲU+~p]l+78N+8SW>ҡcGYdu,`w!&NpGO[y$e G^ Cw_} e8_|i?G̟0y,]"A K::n?'g7˄4MG%f0 M',\lI۶o/GȘw,i^y5r繠ダmi Rg_ .8K]6U7\c!)8Ĺ\VOF=JL #O?ߦm[:I ?p fLc~=ֻ"'y;uP8v|/X\x{enU.dQ~@vQ>7Nq@wr˓+;-S~1Ơ^sU `\ .Lzn~`~PV(;]MJq${m꭮C4e6km;k,4]@(d6jr&/[V HDjwn94={,]82tڂLF vz3=Grʀ[ V"j=vlXdma;M|$,}202BpaNna~Ѓl ؓOJ/; "k?^xʼҮ]3NO_L_xeu3n KtRWqec9zUoޢ&, 꼿>i%d|eUi3Kf5̶Lӵa. O X25lm_ R2XZ--utڂd/`9e&@k?KX-vi$A-:[oYkۮ ~uyȺ>{VgFmsm{r|瓏@ [vP YWrPľ)l d Q<"eE!t8ި`C3<)`+۸n,oAu37q_Q{OҾ+:ʶ4MA&`lٶi6LBd2Kf&[`],0JPC::\"}߲O w˯_yɁ$Jb +p?.`Osr0 P7C6(wO>9Е ]~Pvc$ `p.vqb1G1Qv/[8VO\ =A,Lf4M%f0 M',\l`Evy> ƹ8er|5pDa?w`_HL17oMy8,?6& `y~0m9iK 0/  X$Q8lEW^ֱ!q7 v:s~k زTveX@Ю/Vfܸ5Yg4M[dYl4]&`}D%Q-0Q QӀ.uAkr}Y lϻ}###FrZr4?oպ.C`,䯃<,`3E9&-eɊU>gukmλ<-,Dxm8dp(`~3]{KU_릵 8bK\ƕ_xtxL٨/t!o /=k>x7VӫtǨ.`AN;^㋁s\_]W1ƥTtmB&bEW&LOu ~.(ǹ]OTa% X|t 3^Krs(qEMBr~łQv;dpAlX!e|ޕC[7_wp .C( X6` z`\dx>˳,u:`L@, c]0?4, ֛ Yha%f0 M',\lI1)`[4+k,0`qFo{AЎHu9Cd 8.`]ƾg E0.'xE2ec > A6{Kɖ/*1z yȞсekd a,>(aَ:9вr76M`_x Y:݁MX% 2l;g,qe G?Z:#njve*ÚbPg6W\b\/ϿZujʨ.Е꽏?q?gy:<,#`m6km;k,4]@(d6jr&AFd e APY_}oO2qD2ė4M?dYl4]&`}D%Q-0v=ѷAO XhdQPӦM! ތe&D,m0v0M׆ Xhlx\_  Mt]6m8C>n,wWv?t݆7 tݺ6Xh:{t>xL٨inA6X:t w:~MwߑlOBuk6km;k,4]@(d6jh5Ν;;пO>~|#o}t=0Kf5̶Lӵa. O X254M ̀!"+[(=Wv5xoϿmB,4]w&`lٶi6LBd2Kfi!Y3WE~^٣GD2dwb>Y4M׎ X2۬a` t>xL٨inHNÕ?>T~_乗_rJtJjW^rY0,4]w&`lٶi6LBd2Kfi! e||^q[t,Yaܕnv3Kf5̶Lӵa. O X254M ,8y{ŗ_ŋe`wI =,4]&`lٶi6LBdr.p|.eذaI ;O?RU7"`lٶi6LBd2 EQTÖyt+Vȑ#{ܸqsNw$`Kf5̶Lӵa. O X(p^zI{ުUd̘1{7|#~! EձX2۬a` t>xLBQ8YKw/?~|g̘ˀA#'.@(Df mtm e< K LBQUs! `?,jU{]G^{-=J\FQTͩ-WEۥe0 M',EQK>dy7{nA:k믗nMz!y7g EdYl4]&`}D(I?}nlk?S7 3W(%f0 M'5 XPEվ.Bz 3IQU;ŶXB21z^ߝѣe2>~i>>x\eÆ U`yg[o .@:(gy뀢((ʪ `>`Akeƍ Xr+>dhr> lu@gꫯYg*a:X((JUӀm|$`QqpZкny}w^%յ/MGO X``u] %gyf(UM}„ Γ&Mrdݻwz/}Փ$z뭷M6׿.3M8]G5$e[BU~֠xS ]5 X|H@V C m4u`\\ھƸQ6"ؤۙ4o۷f5t7>aXߺVw.N/D%9J?[c*JYl!MRԍ.B Lji?kDױYo) *lۉ^퀹q^hlc,յov,޺tQJF m έIqqSٳS?0|>Ti!%i޶{lue㴽%UWlmkFITk]RMcgѾLZ]q[=EvSiR6wl>Е2epnV"ZCgɺ#tv)P"e!Rں;Fʢj)HYCM{I󒔤)LU]lMRvuIU,;b8n36E(+b QLY(a\XX*eK"`]5AjiR1UۀEኟHgf3OJ P\hbۧ4MG ˑW.S~;0Y4pO)jIM/ʔAIj/T&Jg|Y|Q*͋ZʀEIVe"iqLW&e&I6ټ޳ 2_ȸ^SE&d`_[W˘%RܦLZT+=Za*%ҲpL!͊iyb#6vE%k:Yabգmq3K.q #ku;v ^zɝ/kddq_+cǎ}W.ѣ3T(W(A|_ ܷpy޲b wR%O(/|GLxbuU R}"_u*~7 Ʀx[=jcY++ftp<.eRҼHڌY@}]Q33)?Dfh"Nd=ߺXVlv~=-2oS)>KJeʆ߲5 fKeo!RsD2wIn˂~,}U=e1mPY2Um۸,_.r4Jˢm "dKrLx DBXиGaFv\`e8@l?.g}\2."`ܒ'x~0`;U'tRHI(o]J}\B|19ԃN8^5|pd@98^o\ط ksWȽ?^WDU\=="I=Q_[^1ոT%[ M7 `) SK%UGJoSS=dadʪo ھyqly=SJF,-~){!ǸU-N䀭6LS%6Iw,^9/`-kgȾvҼiSiRR$ Xclh %,x8"`](!vVq;>,=sAJ_QqC_80a'_Р?iL`FGzP! >rԥ8裏:X f1%/&o:xE@ SO=妓+;+裏N/Jh`j*(0>A?3EI{r:t6k\C,Ci+>/{CӏzqqwC T1ոԐRŶMiw7;G-sWPNR-r=}`iFv,*-RdaXRaecE`IwMU?7Ǭ͒\OMH!e~ʆډU3`IRIق0+`,„ X~#qceTGq68A"BʿsiDC@A4~?M' %Q(aF_јD5P,k|P2PV8_m|>d8OTqc^+24ĕm\! % Ln4PP`j `-ܧpͫEu$d{t#Q8@]Y رclPF_T2_pPqI6>! ?Fdy$| |#1p>#?wקzL5."`ۓٶMiwAtHltU\yMfZ@7Fڤ A\)r2we<.,;dͨ֒kV:8$8-H s \EsTq '%Jqnw]\)VAWins@i,YuZÛne$8U`A}?S\|*;3%0ŵm~iw#twۣ_N}׺uu[3̙*\p#;JR %O䣮)EctoCFNK=`pkQ&.!2c:~ ;mQs WIlZބ1Xe,^Z#*9|no)NTm8 Er9hRg)nWn67#rܖds `Y>U,[dVRd(BKrLx 9[{C,:-뾢 l(G*oXM\߉/|75X0A]u'|A,PӾ> ؂La_8lNX|! CAv~KزTvڵYa%0Ea[e{8%V(K\ŢBGma7$\!ܓ_!ꎎ!9tǃ'!߻[e;U}"_u=NA8__AݤЍʿ^S=j z b  M7>zZBV,[" >mHQn2yݶ-?ThY1TFZ*V.:IT+Xav9`b))n#&-+ܱ=UqKJ1QJd^e2?u(s,[ʰRҴ`h8YI}dYt2WzWcSlb-H&ad;^.NPFdJًWzd8-H sR [b lB,pC, R Vf,ek){W\ YEXP1uk,o cy v| T4?^KOLS|cɡBb lN utl]: ;zhyKtwi!<3(Iƕ8!["~GIU$"hq#@ڍ Usu ?(B }~Z,QI3%x*gwW]JRu8On*ܧ=1XC= (\,q܆ -T!`w7;WdSdv}dYWo?X-ZVͤU2~F/[eRںJddd[zrмaRڪJe2nPis_۴L& ,K:DޜU nL.{i}Z"'{[HceRھL\[6楣RܬLx*+ǤٰlAJ X#$6 v Wf`qX@bXXGW){q)'ONCD//o@Apk džu 07 37,P@ǂ![Bb?eDžWآpAIq(dpACۅdM6$qNhТO>e%l` ,x7G6)Ƕ(O!@`2Cy$,]TfΜgJ3lߺ7вGtGS^O(|x5p-;oOg$|u_IqI1Qo\f= K X,Dm4FXhl!Jk࡚-``A_ڹsgEB oqBS`pLw _#CP@3D=[|6,L|ƑLXO,' X3,PП'7(|,[B/XcH CCtJKKA$EA7'*MV% BP9rHwdu\ĕ-Uv*Y7Xgul385,PguBs:u@?LQ۫;.Y)E} /`wW>ឈ:0KUVq8_(~b,_~961UX 'fXl nx `A’lU_%,W%Om`ۑDٶKi7 MW9)` ,,: PEQEe,x+REۄXld&`jڂ0 X,dчe`a!`((T],`.,4]MBմ)aև8 EQEQ,hoEA Xh %̹8)`% 8,,EQEj hJ`Jb  M/t5mAJX(PEQUӀXh񚀅s)AKdQYAgBEa&(j`, WW+>`X|ض(MMB9” &`-`QX^~e.H(ƨ,/R(`\Ň+,4MB9” G݄N;,(j `O>9{ M Xh:[$Ň,"BnB>`Q?mBzd(ƨ|̕N:)A:Ap\IX,X!`1 M` S-`4K`ƀZJV\b Yt%KdŲpBY`ܹsgϞ-3gΔcĉeܸqUEQEQAh2e6m̘1Cf͚y-Zv-[n+݄7hOE-fK\,q+,4]&`m,a%,&X^ dY|yȂFBy9ϙ35Lh4iL0g((\h2}t~(VmDd eXÕ| W,4 Xh:G[bmJ.E!}t0ł~Yłeee1|Ae2ydEQEQT}(hL:_C6 6 `XW|m bW,`Ň+,4]MB9k W_` &,aY, Y,4E "M !(ꣂ-p?"pV6^6TT=(p Xh:G[bmJd ,pu ł44%h& 3Y-EEQEQMhhvpF;fXvl o ^QRX,X!`1 Mh T-XA}&,A]`Ol!? HXr_((I*>\A&lP(gD9 $+,40LBy*(b~eXCAE? bAC e(( mUXqWh sVQp, W,` +,qp% i,4[bmJdI X` 6E!>B Y`*,?&*F ,eʭ*\puQ^{5:EQEQT:{E_l]Ѯ Vm!l 8 De W,t홀d UX``Qb>d b->d7~5W_}U:4T 3EQEQ*A~ u V|`%eX+)`p%_4MW,4'[Xb> }ڇ> VV"h_jBwuWH gﶻ((@]cv `%l lzAB]tlJ> .V ,6}y},:X MW8W!4ZP \x@e,eHɢY,h`84X0*>>peΝ0N.Gwc9Fwng7*`Q:䓥w/Xw_zKڴi#_:^1&lkRo'E%ST ,5Ei .A6^pk,4G[X|bAY,>dBw, YB XP>w rqdU,P6IUB,^x\wu$A2E)Ii qHW05H\ `؇+e`mHtmJRC V (h E!x~,~J㤀&,J)[1vS !*|)Ii qEኾ+⃕\XW|bm?t͘h Uj(d^f}+d *YKt-d$C i\l^߾}]'^z3F:u$Æ n 駟W^.HA^ wq`ߗqs92`ҥ?:6pЃ>=.--C "= jטg 2MG~pe2p@ܹL0 ƺo=r_86|GgqW`wп֭K+~g<-Uv?2j(_2/>K.q # 3\*4p?ڵ3^z%w8Ll=_W^ytQ;7W_{U=q׿^sý4h ={7_ {v~;~w:AO䫮[%ON;4o+IfJRw}NCngW7ƏGUEV_k.XbEYAoYBB ,4g[-`,hC1 YwұXذ{  ;m6Bm.(+ ? P.:E]#x'\ꪫJ TtI@#LGy7۷oyURҮ];y.P@*Jv_w2?ǢANQڶm=LcoVcu}Wr/b?X>blX]:IDP J X6 |ϩ` %>]0 ,믗'|,/(+(+;; w;$sD/ȸqdĈO>^B|IkNp?W >'~ANNW-+i}½\qr:0?>n>{_\slz!>P'(*NQEW o%p%cp(bCs3 M$,>d`,}8A, YZ 4lkk@.LUg;8>K{\5 eƝ ~~VˤI\ ۠4 ~`?(id `} /g^3"=5)~bnHl`t>#=Sn:)`+۸ñ✏>rpA[VA/|\$sNJաCtp~@e?7rge771#i3:B `>![}7JrG]RDRWw}N.spSVs8Y?kŇ+AP(` ,qp% `0%ȶHB5c[-d`BpQN Y4EA, Yq,~ 5$`d R @$\oJ P(0ms`?tI'c? %ld,i~p idV_Ä.R(+/6>J_'1XPѕFJ X6c}_%v)`@Ad`[/i#H)A?#dA(cV^~=\!d|A %OX?rH HIA }")`u4rr)<@9RTW\Qb8RXl{ m7t͙kd X ^!i!}+dQ` ~4B(Axa]0n*X!$D) h.tm X޵k+$Jb +ÎQ]e E ]E `m~i"tmUEc`}gkunk:a劺7>u 8$ q`)}"u=HA߹OTu;ɓ]=A<\vlϑ⤯gW3#P^QGAVm(-vM-\I XXY42E!K`AmV:-N_QJ_Ռ}!@5ƴS`A#- JX/kM/E3.]U P~0d%; ]]"<@ 0ߝ MЩ63$@Av~KXl *;X-a찭f!p?9X#S#NIG)/S{oB7.ec@gל 6tǃ'!߻[e;U}"_u=HA߹O+غc v2)q {'(\Qw )bK\Qb}a`pk9ȑ#M ]n$v `>h W,qſ Y EEbm P )Q]Y+aM3`€k 5xb`9s]6~,"ꢻXLa0||}/۾0,8^?x@NqOLS crP6b/XѣGc=]{0twi!<P+;lqB0/|:&F6~18Hv:*tnAI08_?OX Rm ЊA,QI6ta|Vq| %O`_<|@ZWw}NO6-#V)*N{^ATw,KP\ 6 Dl l  MלXHF# 7.@c,ܧTZ.7+X,@(YXbBmLa !7`,1 )^QY+_~ ЀG:C #tux ^vv X_ ez? ` X07 3tj 4lq,B P~q(;\[PȂ ,0&' v3x,qeWv~pNd+1vY`?8lDRaL(3@mB)n{f٠ouoe 袯5,肂 ekߙ}P\}9<e%O䫮[%O>Ѕ#[p~Xc v3Kx` V)*N Xl9HYX웂+>`IW,t:gk4PFcnoevK{SҤe;1|ْ1l%h ,:? $ XX'OE _ Ȣk AX T-Vq1 (O !d>;D "fou o71A >qt9A%ֱ@ [?JvӟEp4ԮX F@ J_d+" A&NA7?~vςGщsqY|WPT٩od`ǻ,gq,Pgv: pX׿^:))j{ `EC>aP`ѷ vQzZ]$OC >T)>n>7߸Byc91B-`;`1/"=\{'; ?J`(X Xl;/tͺFvUdZYee eΤ!ҩyt/km\=R~ 0ZiI)D]l"e},吲2`o^>Y[dń2xZٖ~p.%_E-an! l )`cQ W%ӗ+ ~5x+U IAPjZabS_8QTx(IY%lܕ0W1KMÕ bێ4M9E(}7+`0^4AKȞEMz%[G魲o͐Me/\KTW!{AA.dF6?-2,j @>d/~o +R)R5jQhHbDՅ9J[_A*EU,vp[ Xº W6X`ɦkk9 Q:݇ˑ[K"4iU)/#I%t,َ_KQ2kB?زDKZHd٦ߺXcij/uvcORJIE}2`FNZ`~rxdĞ)"7i^q.M.Cm[yWg7).fKeղٝsfw#esG̓ſnEjjp+I24wQqv"ٷo'iլ☋I뽇uЫqҾuZ~ e[sa3K\>YtX/U,q~9Վ+dQb>dkF-jJ-Hu[Wi vP ٷ1 욺%WK\I2++4]X 7$ܨfazdXbCဥ|$TT,g&Γ݋RҲ(L){()fWdB Xv+SMR|,_ͨղ RTTmϸٲlL껗ʘ;CTlS\: $*s!-+ίt_AlS!]G͖%+ }uqtlXM%#]QN|;*P~~LceösߺjSdajҡiŹX>-ep"٣hdZ݇W}a5V z[P[i%$$Šj%zMlډ[ǽ؉$>vl;n/^.Y3;{}4ۮi`m _{.]y^/س7ueǦ,SrV1}m9xZmml u `͒E;@ 4TuDhcDW\bEآ˿KpTkCMB!Lޔ*X4iiAq~Jre?N0:F\ DIR/(ۨx`O|x2Ӈz ;[ް+]'l*L]f',G6٩dFZL*? } oes+X6ZtC]qKxUō#Vڂ+-z G\%;?k>nk26mC۽#{P)B~IT<^}NU;,o{e.7.5֢뢝8mn,=O=niiW&%",e>`ڶs۝Ve܄8bqKvZ$fW '^hUX,B!C( n3IK+V \)Uixn ^qW藔;KdϨܩ!,`l+Y[m%Cr۬6Wakc/2Kwڜ(X6cku?ӎ,W r0*]zmjwo{lNIjsPݓ2SOϷ٥Wf}mjS+rRe/X}lQ]fMBG 7܂e%KR+%^c  N3,'O3B!<h n+~RjSR{*W8/UF\ l``n\"4c9s˲:;Knˍ`n UYۥ\/XF۸)?b 7쳳{W/X :[k;7>D?TqJ}ۧaVΪ4.p]b,> M`y%_J%^WPB!d_ʕ\Re, `l` r&}+p [lVq=OXŲCQY1ZKOv"T"Aʼl>qq>Vi]gycs`)ׂEB,J_Ţ+Y\j,BI*X\ޚٕ+)A~RX U`ǃFט,#? h ,ֶ2ٹؙ)wr`eX횦>DZTo+X>%7˨Do;NHJ ˂how[כڌp o[aL`+GVXV uS,X}l`PE?s',IX4 B!9`JRWsJPX\eL p ܂0?* E[l]jӲSlJwٴ vx?`3Vw#Wd_N\k^eՙ9k;,+mP;jK]qf*ؖyN6 n2ҒER׀ ^U,4!mAN$Bo_1+ +U `lj4_/X,n;MB!9ŝ^)U T \K+`zVelN&'<)_ d\Jr LB!Q4V,nՊ_[v"q2_/WJ-/V,ǯABEQB!dŽcPT LSP߈ IbWn",J B!L*X+,~br(XqdS hr *,PB!d~D__}ZB.̙3/q2A{?'Ϣ/ٚ5kwYjO7w]q7Kc7}vrkB((Xd%D"~2 )?IDў,# 6ا?~o'$LEϷ^?KG+8]y !; $X\&& ` P%% bQcӣ?EI_ ',cR?7<ׄɝP_ _P 0KEC_WΩ9m$,??j֭+~NrM05AW4j]n&7!}ӛd˗/s^??Xmmmt nW+lΝM"x4XG"W^s|#Gs~??իmѢEv ׿^Ǜf۶m[t>s4 F.^Ə /DE6.~P]|_M_EvΜ9c[_566ڂ #}u;__˯]͛gvqs9ϫNٟk:PvE^ Ї|mc^ϺX+_)^G˿h_%Kʕ+INyTwږ-[GcXkI?7OOG\+/?~ ` EK)C,ڙ?tEGۡD׿ҐE9q*M5?u~1w&o{D4$ߣooD{}?S41mo͚5˾G9dQ˧>h|:k&*&=]>F?Q̙͋c/R2~4Ac|3J}ʑ7 Q/~1(~(ކ&oۣFbKE&---˔Svt4G?]gvرuBXsߍ^kg϶+ކ.3A|nz^t磜Uρ>~Gy`_{_ɆǧslY%^zݪTeq/*?^;zTث/FI*X{UO5^r JU+~BL,$+>8)WR_ŽUh,B%~Pd8Sj[79ӊ u'//M|Eߊ>vEU#\40tPJFb}}Ϟ=i"U"#w.VK |Ъ=IQ_UIV(Z .4E+VD+s\T&0)]Gx>Gǭ)qW2*yt}k~BHM* v{{^ K.rkcױ!= G銆r{=7V)­rJ)*T`cV~ߨSJ$,=ךl8~ oڴ1!d&`V*X2OLL,$+Ie ,h` Ϲs犓d)JſDNM_~x>:BihbVvgO)gN59ՄSuפ^y[}MnK+`=@B9&&X %Ed=F4GS<>OFfM\zAb8P;u#Tcª vHy{}*ϟJeW=+]_N[Ł` yu_b*`QAǤP%YQ9^+>N/sEŇníq{wI*X{UF]g}otxHEcvWF`K$ FLR~2To;EdBC/g2,Wh"o~3;E;7՞Z REM5~[M5uNC) ~>GDܭ)(rHRtʆV v}W4Ywq4 E3贛__*NJɓ'ӡ|$>!'EU<:F^S,vݩk* *kRvt<ܱ,ؖz=k^lٲV,.U6:M)`QsǬ !de <?)09P_ /WK65J?G{[H~)::^.* 4yM@oE)5QTt5i֩3:%Mt㧧(^M]9ϝ>GENqr{$)ƣh,*4t[~ t;:PB8=:eJDDQ׋xt;C)XC52XVuJrm׳N+ST6#; Mb>,srLjBN/OOL.,@Je`S+ ~fRi%C|RǢhŅV;=Yܩ$ʏx 1O}9BX?7zǣv(8m;Eχ.@NW}s9P9?N+:vΥH7EOD~'iMR2s5zmqѿ9=ɑ_ Ɵ(XE`&u $*M`r;pWt#&jr.k¦S;O(XOAobPJM zG?eJQP;V*Hz&&!M>7ogBG}+@s8i΢hb|_,Ʃ: #^V `58}ձӱ}NЄ/Xtt2:*N3.~wZ]"LH|rml*/cOrnWe ?#jS:`ύަX)'݆RαugR)Pϻ~_%qϛ6=x`T10X[Ek-^nsR?7I`ϵQczW#=:eI23b@9(XRNK[5V'8qoh?W$Q=+Jwnuh!M5dm(h0GMzUb3WtDpMr5IW=VMdVњwQ^7&z7MU p 'x":*xϞ=gEC+]tuywJU`qpww cE6cJVhE !z}S9rN{9u*X;*T9gcJ/m ]NϳJ mʫBGѣ}mmܹ3ץMR2s4#GD_]w!d&`)IpO']ҁH9P `MDΕ%kz<~u'C4ydo{L$2B@Ecա  ](X1 %^T۽CP)\ ZQRj?BP`'Wҍ[TN rt\tN;{`!2Ԍ`'SG`@I+Z*Xoh,.*Ot6tMbB!aSnŠCE`@I%NB*XxB!GcUTA(i  `0 B!LP-,DB! (X!2B`P !B&S(X *`q$DB!`;QaL G(X!2B`L=ud-fSsYW>bsWl -%.6zkgUlֲ&oy{btsjͨ]=GB! e,ޅ65Sm 65іr6/Lk٩l'J$+mVULٶ|{]{=OﲺlܾgVZcʹl&;ݭ,sء]&o|.|]=m{/镅TNY׭pU9{衇23~SgBQU]Վ?s'v =ܿڲ{~pZr[x֮KǶxl*|l^:l*;?sw.؎u62g±f]a%,_"I)X!2.1*.\H,XT$,D |`y_]m:t(eJ3ێ'6MLrkr{U-l';lZvӽV[ڽvN493si%Mk4Ys9ړ\Ldf;pŎhՅ`#ڶy\m۬[ZW7۵p;j3ye.^;ڭ0+g5xuM,J;:҅._Lm`zeVym9l'O۱]+lzxx2z6o>bg~ƺviXh>~[_LMvp웟U3󖟻˞- !B&K\3P*h⊔ognt-?ek{k}V]d/s-D۹վݖ-k^=Ţ@ƅZn%oK]_K.X2lS?-k:3س[>7v__h^eRB1pr b:7Nؚ36[$"t6dlچ)[/j6{b76öv;} pStG#LyE0iBE\Aə3g+i!BX46,.]*, N0T`t۵sm6F#6s{(``y-Z~el㴌Uh'^Y9;n+vS+EUں=P ~{j-lo[ʼeM|=2.5lV,7e4>+Uҿ`9fjK=6/;=DK~llE.k+,7iY>.>hW]xѮJ(3^|E\C!(,FCЂ)RsÞjZoh8kwAܭ{ÒSn^:i.j3nnݻ{%W,1#*XlCUv](LxE>{DYz}`-rD*'ΰ;x NcUgkm7>[O>-%[1S\.;FK9"`Ѧq b!Bȸ$h+X,B4ݮ&ۺe_Ua֥U#];W&,q='mۢ*TEVČ`* vDѲمɧ+X slE{-m|wu]e,/WEE֬lm:{{+|'nGK|l7lY6k+`)` ۰Z OһlcvS1eJ&g7؁I[TvfԺx┝=j,vߪw#<{o|m9m_i;d[U[z5K>Lr:/݉>wRGi;wlֳKcrN:cM +jIzufAn;mZE򔟻Ӻz `рE6;wΞ=kNɓvĉhs>``qsh1"hl⿃ P&QRSb+M|2*>mo紞[]mm]Y|[g~ \Z;м͖ͪ\6o5ukF؍~,g ߫j>fMuꋻL]i/iVQ^ڪmlj,e{Į6esbuxIv۵f=25gch;{ >V8VSgoNwtZcu˷YrmS8Vȵ߲MْYՅc m}iZ\ӻnZo۩k[ml{psmF;K*X\ɢ,n+YWhqe477 Ohlsh1+WWܪ`D`8&W ,%i#/BnUho p$W8Hkh̡ m5FqW\^`0cR(X&RK|/[J/Xέfq4 0n<ch̡ rR?R(XQL4IX\_(EFq{{+ |DY 7p 7čG+3/W(X  ! W_*:YUȕ,n%8& _qG|J|c[Wŕ+^0\,$`Ţ,~ɒTĩq/>v~T{pQ2`q%~h@Kd2\/K) ?s㐤rEr, C`XŽm9h"d-=ZBr{ċWI\ E`ؒV%^/E- `8E|Ŋ[2X" E`DE+:/ZeK?#/JXq{P -uW*[FST++F 1%^sX\  `6-`aC[!QJi`(\X~B 4 A`/7pl ?)(X 6A`,P*`Ɏ@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,҈@P,wOpIENDB`ntfy-2.11.0/docs/static/img/web-reserve-topic.png000066400000000000000000002201121462047176100216240ustar00rootroot00000000000000PNG  IHDRXz(mIDATx^݉UսqX UmmozKBA$(dA&ePIAA@fd1@L{:Ck9{_#$T܋|{yougcD!R}7Toү7,շ}0zҫ(kwO߿qz98{DwH5F黣S}tcT"}ƺ{L^Mjp4!ע51כn4Dɩ~J_S6LnOBW[f[-Mpt~GiFfJ^jTf"iVN~jn^s6޿yGMn&zϻDn2}6B՛f[ngφi-I;4iޯeAMrz[a3*Ͱ" Ò0ecIaE@(1TVT T2 `@\$((~QP F۰`I VT`E%n U2ـ\a``C<_xe Vb w K$Ǖ Cq<_o[4` @C+ZūÕ4D7SX+ĩU2aD߸"@I8bVT%JJTX8%Qj\W8D4J\ax&D)T1+q Cĕ ˸bʘLMtb$*KR O% lXQ X+5$(& bW,ѭUlÊpKTNlJK0s"IPx Obp,T+faEš$J2H5**'VT4LW8 _6aE%@-ŕ0X1+cTNtb⬐`3'A< _xWx0UrT1+J8\1 p<_a6p@񋁊3*1aq#W+°$L`cIҘRp8+Lq$n)S+A;)`E%_ȨR谢7$akFS+ T22ƕ WLq'AI/2j&8p,:bÉN+m *-ŠJ@XxTUŠ_ Pr C"J`EE*xU hJ,\@!EJ@ g TVxE*ډ۸Ɠ&m\$L^ u)J$XQ1XQ X6W, gT'A :⠒+XTс d\$j UTVB gF|)`E%@;Ub C( R0RaW,ZN T2@؁GO`< _xWx&zUrP+.P+Ua@O$Q(ST+M GV4qnP%aŅ+ b4 0q ^vU! C"IlŠIPz"n PXRA%"JlXa8/R/'~ـW+PbX(^YEH+ Lt0``E$* +pHܬ&0<񋡊JyJL\acJÊpX+TWĀ}VT*bW8RT ۸bĊ&8p V.*d\h[J!Ê&00ѭcmX@%pExU[(~1@:@5+*(R S1P`C8HYHƓ&1\IC;L”XQ]$j TbJ&*8MPW\x8+dJ-XQـCNb&D)T + J`p% +*':1TdUTOLtb╀'~1< J@)["Q\+ +Q%VT U J G(^S+)+KƁ$N+Ԋ%acc0DJPkX\qJ  +qJ(XaN@Q%"0<+`%oqVm V8@%SN@CLNt҃۸RȧVp*9AL6aŅ+*x(b*'VTpX@%w"Ub WlJL\@*oX+-Š%\iҺ@%4x*+Tr+xFf)`H%@YDTMtObM\ŝ*+*[BRaV*J8+ GVT/P +°$\ TlÊ1\ @X+Obx◍+B;P.Ăm\UJNbX&T`'+`ee_$P&)8h C)N@EF۰⨒+ K&AXX/+1NŠJ@ V&`XCeX),\ +Nƨ80Y! gN'X)\\&ze*@_`EeVTaW؅ظ+(R+yeSJR4ĊQ\q\87ZqF+1qA;) +*O҆۸Q,bWZPxJ6xDM:ld$(^1Hq'NZRȸ"@*+ +R*,JEÊa\a+Nt\ +xF|)+q2p@_p@ĊW T21P1+d-\+-T)T\DU/8DiXQـVN`W\xC8S7iuD`~EH.FrLq0ŝ':⊀&A18+UŠJw>T1+V N$c +*'A&1D + O+'A$(&UrP1+ŕ*K PVl GJ$X& R0•f1++S" ;$l)–A ={N\k9ȡyc4dGU*\ ,ް"JͿӛћ[є-єmmnh#Mۑh&'޵ޭB3l{̽hOi=͏~*Z"NiTį<\⮿ KdĊ+6q VNT +***&>и"W- *9>8'YQq@_n1QV g T J@'V`EE`a%oq% )R&ŠM\y;&qS2C%a+*)8OPup+8#pzx͆7+FgZ +U _77o0+;oTU$H>WOOVO q⟨'O'%ɂ 8c/?ל<|koqXMtsJuy5\E/}IP P҄H" *+*w`Id2*l C. -X+ S1, +Fq*7PDObxUN^v DDhbW VWpL1+"`IV8Le #&@3"@ID\$l SqLт(^ x*+**aaEf_ݒįqX-`+I?h=}É+D | tƀ'U)\4|V/HS/i#U"ʰaTn M 9:ҟth{+cB lŠJwTdP$nVJ&'AeJLXƕB>4ѫcTXL)'AQT6Nr+I@#+(R+D7S\bVb@q% +Vper*IfĊMJL\acJŠpX+TXĕ̖G*>"ā XJ~C•_LL}SpeBI| \QOΒOxRO_п 0Ը?L'e wT=޿є+)'Tu`ʱ%QbM\ ŝ*FpAIl UŠ Wh%XQ `wmW8*1q!T!Ê0, S%۰+O+-bW8/'VTmVb*y +y+bh*NҘbV&QDaE8VTS"ÊD\$L SqP1+%JJ+eAnܻK'S~N[O`~e(A9E]ѿ7yMؼ~pebW LK='ɿ_/_ ?l?\|cpP1+ J e[fm; -@XQ bVǐ$l'V W*Š+1*':1LqVH@VT/Q +Cc`J*FpERc@={NeVl dbbVۼ+QXi/,nrbW8Hr+S1<Ʃ40L +*OP%oa%$.lh߹M}O-9uO\P%$d*qO}5UUu.}q* ߸*5dR+? V?EB4>)ٵv uZʵӴI*~/SCeii{+koҿ;EΚ US'^C?e"yX EJ@ǕlXɧS+R*+l6iXQ1PD<9FJ)`E%1XpE=(b*V؉dbbWP8vbE@JUWҐ"%nb W󎃉nF;XQqL+ UTMD+%Jl\ahW< JJ™,XqݓSX8(A=}b%:Hʑ tέ_sN]L=}ߕvßs握+f`it3OkIBO O]5tQn\~q3 w>3飱IKi}whdN%}&}x+!qIPH PG ;* LMt*HXap(^FMX[\P(TYUŠ%\qjW T21L1+ Uq#W+ Lt0&y ل} Ǒ8Y4, 'X&)8 +.B~NǦ/HFTXGHQg\=0~+ Tbኀ(RJPaŁ+ E 54эJ&ӨV G C<_xV4q~ SlÊp< "T[(~1<. 8 V *aWQX+bh*qE0 p, Ǒ8eJD\$l TqP(R%JiX7u7iAHcbV2E@qzI7-c;tݹ:Mr-ҹJ?h_xHO*DI֗wJ-T6J l]`$niX+-㊀#qӄиSX+ RqL1+*O@VB C80X1+ApV"dN9`EA'C9t ^'_wn R S)iб+wO/IWxc q9P$\ ŝ*+6/rJ)l\ 8Rȗi Ò0UrP)Xqኀ#Q˺\㊀#q*S+VTQ V, & h*Vp28cJwTኀ'A V J|TQqX D(R2 +VR@6iͨ<|=Ұr}@槞,һ#/i_2,,s,/ϗx}DM?+*SJe\a87"H`EeWdhS~J%W6`%oqE@\pWO@CeV XabVTW8x/]9EI[6/p% +W, wSQEVT%JۄGVmnrƑJs*^h. XKj&{Bz&]ِݭ}^_t/SP8S2Xғcޡ{x<ȁ($@*bWa%pCT%TQ2**p}VlJZIÊ> ՋanSJ@J*PbxELUHVXQqDq>+x%Wڨ VT؆ )xP,+1qA;*Z+%Jl\ah"` V2yL6uiPƵyLM?E*ZpE5,\QO6 =;{,4F=PY"U'W[DM %ݽOǙ,N\%&/R=\UH5{gүިPOUŃ7IjƆO鹑Lq$(QTÕ1, *`E8HUX {D7*LÊ&p8ѩ a_x UB Vl$ѫ+PbxS+DW T21P1+mXU8&J.pE]"%_ OSfЬ;DtjMX[\yjŁ*Vp.?Xa֩ŠÉN+|j% '~1, S%c +.\p$jv_rY/(~QTmԊ%a@%w"UbW8))4-w+pH+DXi]\aW< J@Vl GW&J XqV,@J˂\Vd`a+nLrK3h̖tRmn#.@%"'iYuRj hD n8 J@wJ CC*4э3+ T2q4)?`E%_ Oūа+ K@+N Hj˸/'~ qP+`EW8x/ VIש&!ŝ&y-XI# 80bB•4p\$L RqPd⨒+ K&Xq_EZЉkusV?VJ60PaEWbs\>+XiJz s9^1bx)PGX'\2X:hg6`&8O}\&zUrL1+*U Vl^ NFSـUNqE0 bWx]W +xX0%W|Oŕ+pH CO)8'AiJ\ah"1\ɆVgVZ7ŷhn /Мh5be(D-a EJ@T+x!E"T0:p8ѩq%*`_x UB *9V+Q *aEW&`mX$LVb4 0q^vٕ+A3)`E%_5-!I̝Xq*Qa%ӟtXҨ+p_bVWRFkq$nVO)8*pT1+$Q ӚT/)4э!'A1@&N@# $l6aŅ*FaŁ+ E 5dD') Wdp(R +°DJ˰"p< ' I- eԊ#q+ T *y +y+ڰR"nbVT4/ +*qE01LqA%VqEPQ68d Ò0 b Vf1 Z`Ł+/)4ip4aN@EVǠ$l!]e\tbE5FD')l CMXQq8 *?`E%IP PE* +ƓVA+qǀ$zP%(^1<:(~1T@:pD+x+°D7SJR `[nNa w OqjEDB'~ VAJ,\@!I\b W, PbN@l6d/DRTi}\1 37UـLNtj}\ˡ`EBJ\a`[%cPpE8=(b*V؉dbbWPiA۰*D4D7TJR4-7dyj_ UTV W8IWx8D7S0$G\J8`abVT"IP P + NEJ`T +*VD-G\1 `EH p@-bWr+ EL/'~8FV8H1Lq0&ab#W+ Lt0& X`$NY7UQD߸"@I8bVT%J9XQ bV|b aEWaXI?D'~iJ$XQ " Vlǩ$Q+ +ITQq4щJ,X1+bVTMʺ\a"eĊJ@BJNb`[%cG+ ObxFL+D-"DJ&J˩LtbG)JJ> ÒPq S6XMT+DI0-Xa╀'A :A,W8 ɰ‘$j , TbŠ"%AI VPP-J01TdU2y Ò1TQq8)?`E%_ Oūа+ Lcb UT T[(^18Ɖ TQVb*y +y+i< n`8X[ +*lXQW, gT'A :⠒*`E8VTW8D- +!q waE%@-TdFe)8*y+y+i< J@*9T VgEeVl 8cVZW8x+ Lt@؉۰•f1QU ǑW8cxWNa%&0Hq1+pEw>d_ dԊ UŠWÊm\?X\)ˁ4paI*9U|`IPU+/(~YGd C"J`EE*_`%+ł*Fp% )R&m\IC;&q[`E1%`%*aqEXD'*Y°$LV( Vb?'a;NtNb&04IwJ-?a#Tp]N`EeWdhS~J%TUPViWT1+U<IfUTObxuX1+ UTPba!Xiu\U\ūP°D7S`[a%(RLB$HܬV +++ SBÊJT + Lt`%b Wfyǐ$J.X+IJh XapW+ Mt EJ@`X+b WDCT`řS+ UT6aE$(ĕB~4DJ)`E%-Xp$Nva_ OrlZaCL TJ^r(X+PFX@6•f1M\0ܝZbUTVb wT`E W8IWx8D7S0$*+TqL+/" *+*VDa4эJ&b+MtӃLtc"%_ Oūа+ Lc X)\+Pbx◍S+9{e ))UbVц(^۸2N/& \D++rv9J"`I8㠢+ R h*+**+qIҰbW\"NiT'Xa VTP%oa`p2ة@;hLtb╀'A1@K@BJODJ*qE=D{&p@񋁊3*1Q%+q!V4qn؆Ky[㸒k$NqEUÊ$Qa0Lq1E Vx%IPȰbW8̒c@5+VpEܠ;E@Q-)R%aIlŠWm``%J Wl^ ūа+ Ltb UT6aŅ+ī2p@!W6`EeĊ*≕hbWT 8HYHƓ& V Wr+*XXd{bUTNlXQ1PqAp*޸A% Ul'^qT$q*WplŠJ Ti}XQل-XȎHy 1TQq4IUlÊJ% -X[\`(TY2+7UقC{\u\ūV?UlD^qbW8Hr+S1<+V( wSJPQ%O`%oqe꩕TqX`%0J+ CSq@_n1U!Za`EE*_`%+ł*\X[R4ѭUp=9&q`QU80LqEJXi\paIP1+€$J.T1+iT+sD-\$((~i CD@EVǰ$l +Q*,Jі`E%n TـUNqN+*Obx(RiT'XaaIT1+U<IfW8/Z!*q%h G⊀(^iJ,X0評4DJQ8H8egE \$L RqT(R%JlXahG€Y1(M\IJLX*صkm޼֯_Ok֬>V^M+WjŊ!i…!B!&ZhQVK,KҲehժUn:z?ݻwi˖-IlOmڴ !B`B!B͵vd U>#ڸq#mݺ8u=z߿G{={$SBaR0!B!Ԗڶm[O?4yPeǎ R@MM ={Μ9C [N8AǏOvر PPqB!*Agp*#GuuutepB/B!]7"B!P9ɓ_N׮]Wҕ+W)t BM]^A!Bֹse?աu`[n͛7544 PQ/"B!P6w%՝;w!C5C!BH]Iu=2m}}=B!BԭWhll$2ٓB!Bhjj"$zw6!B!VS|0 OLٍ7B!B`0,!B0 B![ ÌB!joX0 3> B!B`0,!B0 B![ ÌB!joX0 3> B!B`0,!B0 B![ ÌB!joX0 3> B!B`0,!B0 B![)xTѫ+u>Э&{JG;'wm6HgW ϏkC4*!]|vvM閻Oe4y1d%itZoB!P{+4]o^4dZd>MyJ{Ҩ/QYX.lD6v\=?XRJj|m4TO;gNN@,X B!jo hHb9e䭽4w1u~ӟK`i&j:`XB!job6r=6c]| <54ݦʨ^Υ! ,Ciܑԯ{W6pwԯGu.+x|0y-;ZJe=9[ӏ\5Mҗ=rG%*u# ,M9+zIN:| ӍzRҧZoZ֍^EӆI`DkQiN)]^Ҟ\Ϧҿ8 J?{%5;SIt~x~=(ka`A!BbK T\ܙ_JK>.d|EXKipbzď{є ߧ SI4~&ڲ]V^L)% NW5t5-1K:SGn;S~#hE]X:w򥳩wII=ZqrɫTVRN3hX_H'a/]+h{i*]RL$ڹ| '~o]Gk~.4y!Z1'KzI;?/Ҙśh4R*>65q`z|-1,!BV<`Q}[M}ʊSb*֟/?HWߴkK!yCVd#ZL&|J&mSh FCZj;KtLz]N]rTO'@.ӍǮ #R]΃42*.ut{7U^BύHn۷š**-Gݧ{Nog|M:^:Dܽ@Wҟ}3O}~p20UKJo+LB!jo_?G{ϧQqW3x`=rY1WЈ)hSt-MTVaG_{4}}Lք=XQUi a{nҹ岞抻w9xz1 ,L,=rIҭm4>>u7ݓ>iX{iQ,A_%!B!ފ,Mt^ںe'H>I^zO h,.K*iNjgҸPYq .55Q:?P[Xs]B:PБ#t$cTИծX,A%i nmqem.X. X PZ B!joke4lͥ {JΥҎI 9Җ7=0z/A/Dmh˂94㓔t` TRZEꚒ.)җܤ&s(9Dhwtk;M^x:"uӧ&KrFuo˻I`t]"mKn|WPc{}eD &P.zZbXB!BحC4^3KhΨ~ԥ;BwjV2?=ZtxNSޢ_?}6 Tu M] mۼ&(>3ǿw2}SeЊ9Իs)nԵ62 p]"Tg-\x-/t8^I/.N}+Ѻ7'FcR/ht2uZ6zR~o{AVk}K&&_<쭣E8wnLLsiW9E*j3^I|.KsG]]Ri23ié_Kń&?zX/z-1,!BVl`,N ,!B%` tB!P{ `: B!B`0,!B0 B![ ÌB!joX0 3> B!B`0,!B0k+ЀB!a0+t`~]B!yw!C 0+d`qիWʕ+TWWG/_NV[[B!2P9zw߅, ÌP%Rt|}}=ݽ{0 0 0n[=W Y,_!s 0 0 ð.\}\O~I/h?D|: !,aaE`ǏԅE2ӛGnPq^ASδOޙԫs?z-su~R_ 2\XA%}f:~@K-oKk8K+ʨ aaaXX ~]:׿[}~?a% "kG/o!_Xv?zu)/QMtw7nlNӎ3h}ktD:9*O܏teRjoVZJϽ:M]sn4e޹. %+_s4`1~|:ʚT\ڍzKD/=:0y*.M3qj{t aaY`]iߏP}v.Jw|͜ I]UM?=?g??x_mKhjcA="zzm9{ԣCIPݍkLu5UﻖDh|.жw*/?=@]ƭcTG;?LE6OI~TG9Oꑥ맾FEE_QY;,.Ej3X4v(Е^VҘ>ow̤y MWh׻CwY)(NNGzѡC#i8*ڭ7\\8OOe]7H RU4j>:w~]8zw)qJKb*+ٺ`?]L,as &͛7obSW`oѿ>ܑQ|q>^D?j%C鿇Mϡ:<#j]}zN^D+V/~FtuYr.pQ` ޽3w =h PYB:rP%۴g 4tJt%ھlm9ZG7NnXB=/YqT6t5]|:M itW5ݣ&P2h yy^^ޝ&mo{Qsog4]K}L/ݠ.n`I|^'S%ZXJ_un%7=b_c"}rd'[ߢ^R,aƏO?<1YU5`1uOu;NЂ -ݥ#=;v3ԝMrn=^j uxk(~&Wȗ/]"4Sѳ3}Z}&>ǚ}u~/ۇO>0$]"˫Ƿ:з˗ә&Wh[3Tȟi N˓=hqMӆAOC_N˒(t!ڟ}]EmY 7K/N:Nq4QaeIn)im-?qo,MT Z_ҲMhѺi;q]w$/i{nVԒ^S-}8 ZrX[tNϠ^&vu*m׋^|{H#V߽/sX;D`I<l*И̾ik 1z`aVs‰O.`1Cum?l KчK}54?vG˲Ǹru9u{~6l']V'<:|hf^BEV`X,.vU}uߺړgQ:FK'ј~ǾN_jGzUWRFXjBOwOthuרdeKߎ]3YбM^tv={ߦe;yA9ainshm tEXW+4_R֝V͡m5"TFx9$3KfQE?p><8m7ܥ3ҝ]P#襮U4{$ܧ;=W213RI;wz/2j#]kJ]"u6:5iwEo! 0 ~\b0E7vKl߯AcwAR{>y'ӊ9z3TA`.w"äU#=~4uV!ڳzC8`CO旑NUw~&993T,_~}*,awNJ_I4]O8OU Xj6EΥc6ќ׺S٠Et2~.CxL/z~ܧsS*.I#֞{M?gFwB%Tl|id`Q?u+./mGN gWRTKݻtN#7;)`2~8uj9ճq=v`a6&As9܏_=mS󦭎FwZt)np]0\}@͹ *BN>?>fiWzoh~/ဥv۫â'ׇ_y}#院GKw%eÎ#Y]3? -8|+ ލ.:MvФ. 0 ܠO`1D/?}ChhՓFcTAcw;=|u#>׏[5*4};d(~kK,P?=͠qB_ ,Ǿ8=2,~yK,OtPe'[*ʿҤ-`ʳ?YV1L|1ol;!(Mc7/iڵU{N+NX:уڣqIB*ZuZ4(kiثfe0-Ϻٌ{2;zF{;&Q޳uHX5Ts:I( ,6&fu}e)YC]ӟ4 aaXۚY W,zy`{|.zsz}N4pp؝\~}zwf3P%?=j>-r,yj| `Iُ^u*DzZZ4?}?H|S蟿%zw/И9sh? =}S}F>[D~VNSn`I|S-6shiޘR_Z `QC+^=gKhƵ4lgzӳcK 4g@wzea>xV }Uw'K)Z:McT%}qoXBCz]R*xk]o~]3'u,M ҴaDDVѐT :<^՗~k%BlN`Q{ӈniWktI}l aamp(\ٹw/{|.ӊߢ/};-ʺD'S=m3z?ShN XTui+C?{*oKhȲCtxW>{az+7UUgG:#O>CW4}5Ug^<siиNV|T?(u,jh̾/?rs?RqkH3KCk_O}:׾*>o5h~ ՋzTuT_ҍ3透^Bԭbm%}m؍^]jK} R>nE}LS7 utzyzsujJߍOPI7r4^Uݨz>SKu5iݤu2:|߻tnbZV&ewՇC[O|A1Q5z`ait.4b}U,a!;oގj_Xxf1 *D:+ ޢӋQw߷2$v>;(e=siNDu목}.Jhmbtnѿ'RhIh+ N -4tLAc4]Mc{)LMi0mZJeh=T'|\^aӉԣڔ 0 ܸܚ(WB*K5ݠcWgw ?k{+AOH0 0 ð-k\Ae5-d0 0 ð|O.֮r`0 0 ðĉ,״5 3 aaΝ;?\Lz_kZcJ`0 0 0,,!aaaXXB(0 0 ?{Tַ?]~l8x[q8vű{8:ذaEQ`CX\op8$r}ֺM  0#,B!B0  !B!P0 8BB!B)(, 0PB!B  0#,B!B0 '|>fi20:c3҂IBQx.|;6Xvת*ԝ @)XH?MH_WZFԛr3ȱP# =O!R`aq2KrQdw_`Ø)y{\ɏ` X5?# V1tQg'vL ǸwPwz35bԅDB!ba Op`1`iF\ bmkɗ`Ɂ qPƠ`!BHia O,�?jc׿p-X!a*h?r=i8=.pF3ze.cX;%=?5_5G6<#Lmq?4 ^Nd:5 +E?3̕ݸh~u;'wF,Ф<w>+#8}p Lк[ fs%w=nouۍs`yFt1ҮAr(WN ]6>wlc(0baھ緀 o_Eڭ}ńEm=aVKpvbR퟉K9b~lzQc1e5iBߨ' 3U-(w[1S#TQ~?/DcV%u -;N<6 'vD}o|kͰ($gy[j"bzc-mn͂P*bȊvƶqP~xϗX37sB)P0 8B |.\P{D,^*]"~?,ح9ȀԾIڙI6~޳7pľlATwT @>$]Z`)W!êteb׾X7[xyVpmiڽ;V@hE/TzoJTwڎسn<ªxR-P o4#\D`hW ,nr~f!d"_MƃW.x *y_O3KF VQB sؐL|uE|Hh5ğB| 7FC_&1q i,KS6kn68ͳѵ>Ն7q$46X$$~ t89{Fb ^f(yW.u?VY{wN5a,_^#Xgqal't9dz/^ǍAs2ϗCZ  ,BHi !B Y5#POJQ/X2p1Fs ;-ߵbr=MwbQcxwk 8v/cN3# o,P,ΥQ:ڷq&cA^u!i > 'x\ pU(0Gd3DI' db]Gx`Kp1E_l*UcuhiQwbfYE5#eld/tEP#mlx}x:v*!/T7qem <ϫo UkۿYޟ`,FPsx,^;7Jõ-Ǹ 6Ų=ŦŬa/x`!BJ5, DjnL$~ eH\>̼OY& nl:M&q^5;#dvqf2~Ƿ8<}PuE $4YS>l 9#~չ`6}}ׂz n;@0btӎaL z>|`)`q2}Ɔ-Q\[F ~lm #p)2za& CZ_} (oy}8|'GquEu,F4H؝;/4:(``y?aOlWdњa癮Bbđzg)ZrnQ#&|`!BJ3, tλS֋ E+X2al42:L .Rss̻';8 q!v| +u3 X:`pa+/Cxw_bw^kšwg ;ioE4;!qѷǒ%XDz=_? T^:h?|5ɢEr G' k#X r0CKZHT3`fR'" ?L9l. !R`!,S#6fNmۙ8rexZЌ Obc7_>0!p}vch:,Jto QN)ӬVY6r;4Z8[08C Mda-BZTr,9Lwxx>@8|Nyс&K_r9Cb8 s<H?{;cl !5@B!(X<`!ك^0(,V܊l s@oDg HGEkh+f0|0RՈf]6Jsl^WAb)`cB8׸ @zQc0 CM#{߾z7* Zb{e-`ycqxFd>?1ҡ,)hA/QlO֣*X2(*>g]U !)%,C菓%*'D251:NcX/ !{ @=UoF٧#ɍ+狯54WQ5X!R  !8`ׂE 2B-5P)t(V9~ek f!īXӑ*j(ĞًK8V,c?B!AB!(X<`cMڎ~,?:Qk @cUlJ`9M9xέ5.mN!`1W3=#vJ`예A}1wv_1}3,=GcX3fuON2f zlI&]Vg2C~ N/}`gb)k&: DG&5zgS`ߋ7@e_6d0ie j U} 0X!8D]yloqvяedfZSvr' 8\cKM-P}0v)Ƈ4E67?6 ߴ'#nEO@zrTDaX5'd4 Ƙ#9IB)PB x?}Q&_ V߀eq}UVX cpq.M! !8`!'GXk҆ o#dDW!!uG?)bp,>;FS_N:B! !8`!O_+G"vxwSHN ~pH'Pf(z=_)B!1(X! !B!PB B!BHA`!,B!BB!(X!B!L ySNСC iBJ?,B!R˔)SrȒF$ !tCB!B)(eZrU;⅂B!RP(X@U;e޿h% B!RP(X@U;z+cd#+`ג8`!B! "#EN`I?Iu3))&(X  B!BJ,E F\)b2CBJ 2-HĊS< !B!% "#Eю%DM ͂*dAF0qM|P7p)X!9z ~jRf j4ٱ`lO#~[Mzç6ʡy3sw[1S#T1TZ_ǙR`!B! Bd<Ħa y[{J{"\Z69KDuG5ÚManI,7Dcw}|zqɗ`pA6rr R&atmM†Gy62§b\c!_-X(X!B)PF8(t;T\ÙoØF4=sD^|Ǹ/՝/cN3# {UBΐ"dMCUsOG.ylKBB!BHɀ0bA1 ŏ̓_,0UBDzi*c#oqxT 5:E+^ b{5 o5+v' Ue`)X(X!B)PVڱ=C jvm|+@[v| +hjhUg"NOS`Wـ^PD]z5,,B! (X #FM퍮QY2#$r/X"pܹl9>/Xdш.^"9 B!BHA`)Q)l;W1`I, jDIl MEԸu"JoFԞp!X2(*WYۦōDUCf$-mBB!BHɀ!F$SLѵW0 NnA&T_3%^/M^MezbOB\t$~iR!17m06 ψb>4oN5X  B!BJ,\)lhJ&|k`exs">9 2-.mN!`1W3=#vJ~ݳh[*cPRϬ QB:CF|F(X  B!BJ,lܸQ5! "  !B!% B ,B!R !Ň^|Fi,ϟ?`!B!L Bzёddd~Dy^r`?&!B!nݺUv !@)Lm;w%="X,oVS4!B!>|{"55U."S[BUV*͝R,X޽{qF|B!"߿/^PB *zLIOO5#\sfX"SD<~.]Bbb"];B!$\r^||GK BJ;jBĝLIKK5s.b!"S:,2EÇk.e[2_0۶mcaaDGGc݈S˃J  !%HKE+'>}(z"^D(m"24199Yyr3D\xaaZ¶=R|7W%FI !Ō^x*UÝLH(5$I䋼9E"JT"|8*r]EaaӧOrYlB[w  !ň^+'BE+QdUONG/RJ1.{FϢ=nVK/~0 0 D;m  !_P)XMhe_9Uۻ.zJ #+ԎXq'V\ Ԫ\HG5/du{Uh;ˮ:z #IHH۷8wqw:lZNP0 0 09,|Fl" }WrE+ڑ*z JgW KgSd[}GZa֏Lq5jɓqSrMgnݺDi'zѢfKmM aaD  { / զ S":BJv+YQGhŊ:ZE/UT"[_GMNNyvqF1ǏWjf\v-[_D7rhE:ɒ(0 0 |"DDJ!Fh!`q%W^H'Sm B|!*hdq5]Xaab,{)yE!$\ \Qi [JnE/X(Yaab,+,4`q5zE^z"$zBv)CzɒT! aaLKӅHIŝ\  r/L^!e9ϥ.ZE tCaaaTMxRs%HD OFmIHYᎣHŒb1 0 0̗JG E0i4N_=BJ" uj3!eYeH$:UH?aa))".EIfd̰41,"mRD5zE:d9gY9Q,, 0 0LINӃ5|&<,&DJZ mWӃ+C!RVvZ6ɢb׉*YŕpaaaJWҢ4XK)rhi`))+F( IDAT"LB W\q+Y#YEѢ." 0 0L鈫4"D+WDȋ̕`Ѯ$HP GAHYx"._uYdd>DBED6zbaaJv3gY`q?E(SHIBĊ>w\7Nɜ9spE^jWӃB ry/翼 y}D^/׏$R%=F!BJOYFFR$E:SNСC=J9EIA ܒ>~x̞=R"_WuzzOHYAwuZVbE^7`!Bz"QG%FIN)S(9DIA i&% "?j y͚5K-`QuUݻ$ 络zׅ>u"y*Y(X!B仞|VZR$E'!iB N"% u]FȨUW8bbnnWd !e,rޫK4^T"ӄE/Y!BHE~t+XM0o8z$s`z/p+u((XHYCw9Wgׅv. !BH@tq |wkiidZFԛro+^<2ɓ`ٺuQHNɖ-[r1eD^ECHYAwЭ'ERB!|Bͬ~ԋb,BA$K"Pb@+cb̘1qDv! R yhN\ B!ҋL`) 2',mrDBիW[,]ԭ`QW`!e 9Օ(X!B6"X K!Յd g)զ S"s+*)$ 1`N! ` DM88-a%JI3 (Xq`"^k&VN9McNK=L:DWEL:U,ݻwTl:t_tBԩiӦ)%66-ZlFf͔)5Z90x{{Zjh"xyyԩS uζmLY6lؠܾ<~96TFHqƎ;;o޼l+qAڵ1w\.țlvZ=Ţ(^ 1hڴSf iZwn/ȹRreEzȱҨQ#M43gpe8HW< y)X!B6,# ݎZO4;_IRePf kf0D#XޝGDS^ 7 dluZLhQx[Em61't..:ʢd,G[=tc{|5X,-k|Jttˬb]a)Ly=F[u,s[,Wʵk7U FRl7/TRfMhذ"QB5 صk"3铣ڑ|ѩS'l2eʒVH'qJݘ;w*B# }uޖuYiW+hذa8z(,Y3g*׫EȧK.)eZ,?r,E$8qBy#^rE^___qԭ[W&VnjժUVX'9)r˱`!B!,1"ē[Uؾ7fFL?LenĶ%&^l)?Z•Em`iDpalA 2\,!i.k1ɴ3&"r ±l~D-Ơ~Pΐc!0-*'c_}bיEn Fvv#F8c )J`ېδtBx })ݸqC[άʕ+eӽ{we:JDTZ"EhnݺU3j_OϞ=YmW?˚5k㮲pBER`"TsoAF}DFF*":tH[}1.N<9y~(LeǏ+m߾] G~`!B!*,\Y`bF۱rpkԪhJ}8yR4.5}'nFhz2&ϑr( o5v7uOr Y9yy{T46x#6b4v ZjtSҶ6L|Q׳W>>\cE聈=wV8"Ŋȯ`}J`7/*X"Z!x"XT乑5jPN ǡ,<ؒiOZd=zH")Ok~ <B!yB(X>J`҉ZtE@tE*my֎]),vT";ӧOr!C$͛7*X1K,T"aU9O+X9}n<.a@۷WڒMOk~ <B!iBBH&%Qmt*Y¨/VvF=KAV{РAJpEeOILLT vU)+Eb#u[sgZv]#H߯Fv "K )ZzuO^,rdٿ[nՐTSdt#X,}Ӏdz?ylɯ`)(X!BJ,LJ`I:"fI7o^s< Ҍ?"$=V+:ڶmLom_ JXw"=Ξ="+&,,L7Ү;"lٲE)8+E"c&ehӦ,,E^ܻw]tQHQEjHs'E(),B!DRbKID*"XDFα,E!T֡`!B!*, i9RsDRCF\(,RGFT?W9(X!B  !C丈\hԨ2eI J1^9V%%Xd%_2qD PB!,(X!, B!BB`!PB! B !B!PB(X) =IŖeS1rsB!y`!PR@TrZ,~ݺ>)raޠ>`+/Wݎ`QKBJyms0XlNң'Ywe=(X!RʑBW@me BBHq {-8v>3X ~ǟ"u#W8 ,;`#GaHx}zч(<B!H :sUul+, B Hh\Vι,ł`q)Xmw^)X.یu~;]>Vo)X!Rъwœm, B Ȓ-H@#D`HLAc1',G|BҚ!7^2_v[~E8pn{s_/"D!On%4, B HU\ 7o݌ B!|).+N(X!E.X/XZ`y}|z_S`o3qXлOꉞFbΖ$Ȑ-2K6 bǴ Öó1a=dŲ~,Bz $W B 0 7gc8>YcR',pc<~OmC?7=0''0d~a,`!BׅV$"PB(XT3-?8G]ڃC#b#j `5g~sDj&,B B )XzL߁+[8r2>~,=?i 6a)/Wv(X!+,r[t`!`a%'B^: yI\ B!En"%4, )`(X!B>/OPB(X`!BDFFz$NE)(X!, SPB!|^>|䊊l#> !a  B!BB`aB!PB(X`!B!*,)X~'3hѢ6lؐc[Ƴ=zժUŋs\,,B!DRbKPPvڥdӦMݻ"[͛c%k֬QWu1`ܿ?uLBB!BT(X!ݣGpܾ}[]܂aÆ9.ر#*W/y_VT)PB!2-XO:UY'06-BJ#;|0ΝqeٳqXR'O>u^yf4jFQ7&&&>/_FNiFǽ{m[.]RnS^ەˮ^N?i$egΜAv`6 d]mDiEyӧwUT?8_j|||~z4h@y͚5ɓ'ݻWi… dTKnݜdž#\ _H!)ӂeʔ)9dIA#/BJ?ƴi0~x%z믿*}(udDƨ <j֎6u]Dr߯lsNoUhG%hɒ%z"rHF8/ZI䞢,i8=LŹtti`]*[Nf܉5y1ZLh0`=Բ'l6t%ޣ'B "#E!_ iGhŋκhΡte:L{Ɨ,2e"Q"2B#2G[jUe<&K U+#b>{իQ<#F%5nYJTXQymQ7UsF*shA W;q> Q O?"põ(0֛~_o,xR !lx3L䗢}:"""``om߾2)*@G|||"mHm RPV'm,A)cʴ"uRVەӷ% zU#Ei"_~Q,"^ڴi]lpm ǞVh_*,nhTf  ^&ǘbFZ0`i<ϰwArˌ ]6>wtl=+V\a=?`gr; g닖5&!Ǭ wLT?v%7z+ce0˜-1ս YLTo~++kal٠H'&SGVOx'|}sUZ틹>!&Sǥ8n8VJ0{899uP%|^;/Lé u`> rg2!8a l3zOb|-# ꠢ93J^ZayÿA'Lc3RB!Kj"/#%JddSe,ӬJHQF!99 ֭[A +RD Ϫ5Y}R램hH![U4xFne߾}JN$ŮIqۖ-[f++oGڵkNeڵ"oC#o5X¸5^h,ں-*ԤoLtwr/lz)W }G>kpeOu5. W :LlǪa*/`I u&6:]Qk&'nB&bd6C0mAŒ5a#֥XQ2 ~ZO^=ǁuaW cX})&~1QK_3S =lĞ[w=""Qo0t޻PL":SR R<,!1C4v'܇5)vR-1jM AMkѱ4LRlAP1X{֍GX/Tl6)87> "k""PcV$Gv8nB+ZV/&]q w!< Mbɶ4|y B!`)1R^^\ [9CJ0ڏ\7-/`&[&vD}o|kͰ($jãyrKC= ̾hm*vڨ|5VE3S*0W8Y5>2kdAF?b\U巼"i&#_zs,,%))XI5mTYGL ʴyTjԭ[9ƍJ>:tPH)L+Ecj#7"o#5R0`(vEZ%bG'i #HڒՄd\vYEȈigݺu蕶mXEy%5a侹[EHH}GVFFHHr2q?jcd-ϧڏ!^52)B/+U^bW*04 gop|LmOb%LB!Czw~M]t]M}^fF?tݐ)Bk/~qxćjvM;K/1Q0VYFXyl#@B!,#B۱`s"zLjW^bCWw hxG,bB S0O ĖD@/_-=xLjd%$Kw޵^5zcۣm2C-1|ivK?/{-ف#Gbzx(1x ;'%U TɢNFĂVH,u2!+H'v ofY"]1hͭdذaor\.D ݻwQ&H\V4*+2DH;Rvȑ٦eŊJF"v,yKZ3mier <;Mv?9=L=#B5X\ ce >ioDWE.Q/O ѧR65+׿Vvޠ}mFuonDᇕ+wXī3loq=z&¿k:Q,0@zSj0߿pW;5X!b0bAIȪHr~qxbneb[#2{RwES[,oWRߙx)ŲFxؖbj+d}Ig ?e tKb{O3VeϚu:ʬ#ŏ:EHE/Xd4Vl۶Mbw5XKok#*X!X>ďCMc}L;^|؉fmM#2\<!0cQ)< m*){/#Vd_nd +fQ8{AecK,v",ۼ 8!|Wm WXw4}fT  !RPF8(t;? 0i~\F-{Y`hWe">e%ڛ,/`x?aʏyKlnRJ6#w~wn37xz7)H퍹s:L=KH[YKe\y9%JR1i1GE ݉)S9s+S?]:c`!BJ ,#눎ֵ}Uވ=0}̂y+$dńN=0Ud}v`U;#̽5_tRƺ˯ MDPށ0`<̺C WӄwСeؼy3ݻŗif y.C@Se_.JCq$`ُQ5+ p% fDD|t 84Sl )a^|A~0.DƼKWjÐauauE`XoEтQXcdgL޼96w4ކO,Pj42u%(?@lj?-r %,V&,Ru5 3B ,#!)L{aǖa\EB)6(X )Fj'+^¦1hIeLQv& =NJrRT^ae?ΤdV4s?k cPz'@dw`K݌-^o%b\3LxkP[LX'NǞգѦjm ,$40i;qM$[A^(U1E(Xv ? vTKT2}b38Ć6ts= z݈mQK0M*YgwY1dDPE8xFcj;T(GB!,E F ێ tmԊwvnGOvۿ0FR|O%/R_+_H].XǕk4sl/cHǟTV9p74f Aײfs;&%HYQH]EHFBرc1f8t2r86a6w.Rs)#d%DӄrO1oP#~aXR.`Iߣ-иd,&`U־Rmȣwyh kw5ѩ{?ۛK8#?ņWYr[]#jYLk2g]?®h ɂ;cp wvLDJ0|sgE f+Nwf%kqNlo/ϡmPyY>:N܌]ѴdRʞx{/ o[ F* el1SB!C$$$8.HLk=|ͼ(v#F89ؖ_Bb8'=I/`,Ϋ fCzoH)X(SDNuldju.M Zn4H!|PSrEda>>\cE聈=w d0FJg7{]B!iBBH&,Oc0UJR#oʛVQFp DTT+4}xu(X!BJ,L+X(HHJR:u<2rEqy[n> p,`ʤIܓC?RX`B! !D,l'JVWX|숉oT={ěo FC۶mh9N֬Yc*4l"'O(X+3<~ڵkQ~}  ))™lݺM418իW7 ˗Y/?x<ػw/7nh#I3?rʙcwq)گ8l fYuGq]3χ N:z4lT 9ٶm9|RJ߿?nܸa^6u%e=5σ\s~) f/+ס@E!BX$XRP }nX6!8?>6nh)-80`|իWtʛ=zxq,Y-8\'  >lؿ;(Q#G4$8~yz<ӟɎ;0c #J&L`^9ra"ByxVn]#$xQ,\҈JVqe^W;}8 ;_ҋ??1{ls.Ǐo +|8\2woĖJpМ̛7+m_~Fp7o6)p,F HLLرczxBB!H! `;Z>kԏ93>d/_NBP~TX;;ϭYȱß`qS\cw[i:u`cNPSa) ʃlXa;c^qb;еTZG8ba5s(WdPB!{!JfbPW^f` L>1Gˏ?m?l*W3_6mL(6Eb3'g pm&$TbP8}9f^sYS"XؤqcK _gZ~`B!VK6r1#?ҩS'ӯ(p矱~Ng,$uܸq9'Xpy9e =.P 6(q1l&c `ageN ,eS&cɋ`a"ljE칓`B!O~KMM5H ~U%tᇁ X>S:qk׮Y~Y/G>_Ν;O?}MEq4)6dREQEQ l Uxy>JH? j޽FPo63cE|?/#7'̅ aV1|ٰTQEQE)ܹrիWͨA~W\a$X!,BVp+ `QPP?0;# O6_EQEQhF6EU0,B !P~Ŋ[8ŊSì((EQ!DEfA,l̝+'t)WI;EQEQE)HB$X,((JQ!DE!((HB$X,((JQ!DE!((HB$X,((JQ!DE!((HB$X,((JQ!DE!((HB$X,((JQ!DE!((HB$X,((JQ!DE!((HB$X,((JQ!DE!((HB$X,((JQ!DEq#X?>}gϞ5K.r\zռgܒ)ZܲEQEQE):qK !B#99±c̽-YX-VX((2( )p/_}ƌcŸ9Mڋٳg~go% ^jrE#\l!J#JEQEQpi,Y T$ : IKx=rH.]\gj?|?}'||O|_ekB!(ZQ(J,&WlZr IED\;,/PXݻw1qDԮ]QQQR֭[3Ϙˆ{xLUqO}3XVXaiڴiرc6{lOcǎxܓ,B!P0-1 s T^asD._ϔA/m \[6|{U(XW_}eʔ_| 6*z0 =IߚmzYd2p@ԯ_;IJJˆ#|J2zgΜi(""B!m.9OM=={P6{<[~EްH `7oD͛D[`޿-Xѹsg?R`B!~,U,*XZX!1o. }Q! Lsυ;Х1Athv]v̗~_ F*".*꾍aO w`hV,bKZtcp%}z5g\ǒvQj`UBb[S>QUHuK@>pϮO `iҤ ZnlF;v-0O>4hw 1gԭ[4=>sJ*k3J?8,o.]vJ*7|/7sW^#&&ժU… }4iyиqcSub)_ zm;3V~7άݻѢE Ƣf͚2eG,9 {[gHѵkWzaÆjժe,9OϞ=y^xжm[Ӊ^g.}nРYo(`B!V{m&.Ч &{$82ɸE\`v$nubt qbzKGB)}#o OWwUDm!_%b1oGI׳ ZD *^3+t|TF/ -.?Mn%&'/Z(TFVs +ߖkbҥPw]f֬Yf_흇D~nx>8?lق۷FժU VPPRCf_zu높%Kb۶mL<٬U@V<8כRdQhg5`(9MHn&<_q ^3~hͱM0;  g||1 _|`xgث<"_ N/S=::d;eʕ+̓5=z':u2^z9?4}g+]?v VPXiq`D)Xx'$$CB?X̹=ʰ+z:5kPP !BaB @ZQr51bF5ױ]4\?ťӧǭ _'VtːK!: 3#Ńڣ5-X!v%XIR^zFdذT_޻ܦMLglbCIi-|5j@X>س9 (-q_U NlE ;wN(`8VۄRpNx?pyM?~,ê'cB'T<?`OT+!"B!,^,OhA/N_{KTyإ cDwY<詏ώf%4PJC#:˽-Q_\2H(P cJNEowߙߕ#G󦿓 ʄM~0%v `aSR(P \b' `ٹsY /^l~F~5gU+8<5GB(H!B .`ƍC2W35Zpp= ڔ4[?g_X>QoW|O;0u<0lo#qnN+xb~gV,=C(X&HM> Uy޿ء[j *X@8uw$)X 5qb+XP `!~×`MĽ 9y``qRM75JP!"B!,,4@qwl(7d~W?CҾ}وHX>XvJ6yHڙѮf#}sHc[6!ju]j`y1+ O)F% ։DA[gHZ 6̳`jE}(XcR>Dۦ"na0}t4vjZ؄)Xx|/b˺u̶YaY|y +!VX3%%K#Xa[hpMI0炰Ç{'NuqN9b\ FNsX8H!B V%ظýQ# |pZ(eWѷj$*obP2k2 Mp|+ӿbP= zy_ |K _ 4AO x>!UCǦu./ 3y,IQ!"N^/$ Qp|f<`+;xF€a{)Q8 = Wa.[tJe,J鲯lp `! 6;A}E6aq Fݻל3vmMr弲$sA/3GGE8jlmGM 6 sѢ([׏B!H a-N =w*xvW4qa; \\BsOH}sUrs c̚|m:q){bṡk?bjr_cB<  A}2mAa,L|g|X9i?a!kk-ooBٲe6Njy$B(p8}IIIhР!޽,.ƞJ"\!5`Ȑ!f{H0pg& ;IMM5܂pumqmw/#v˪?o %,B!"[5Bu `#"B!,,`BE!"B!,,B !B!H!$X',B!""`"H!BBE|""B!,,B !B!H!$X',B!""`"H!BBE|""B!,,B !B!H!$X',B!""`"H!BBE|""B!,,B !B!H!$X',B!""`"H!Bdq)p̘1ov y@E!"D>)$\?=Y!/?׻_zlO`ĉ9Jy8/yH!$X'R%aŬ1X.b_N{,HU %XZCzcڏҷ<[ V814 bjfC7x5[:2Ϝ&BÇ\Ja+DE!"D>b7R,]Ï1owt9c%̭<{8Udd59'qރͱ_&BRqVXoTWjܠH5T'&"B]\8%Ka+DE!"D>>P`0H%,ǧཅGq'qW,؄ޘ:2cOu~ Fr s z}ށKj^FB*Ù_|J۶FVe)?}&WlB! .h";v4 ` }$X!QTT CuOƯgy֭sTpFDطo{9.\hxz-X 7OBp~ҹ vnLc0&8#Kt|n=1veg\0sHY= 7ڵXq|zņͅBQ8x(GulYR1L$X!,4ٳgѿM$X ,iCObEhKW}gG˔7s?7Gϑkq(9K2fv]Bj>R%kFB ,9 ?=B! ˖-3^ϟ9TFE"OC-,` 1idp=_ ! l}8q 6LLgDO6O*rkJos zye{{_ 5B!&V2bß \ 'H ݻ7Ftt4^z%Ӥ֭[ѤIƢz4i9FKҥ1a;cb> 2C||<ʕ+#F>>RJu8rur9tlbŊ2ڵG~r;kcc[W?O`Yz5֭ c?99ٻ}VR111xoC<\'b45G]Ŕa`Ɇ`A?=5!ꁉG gY\#q{2Ab*\z-V!(Y+YlJbb{'B0%y,B"/X; Bo8p v؁3fq* %K7`>c(Q KBB+˖-hѢ1i?lo@oZвeKsvޑ#Gy므.^ؔs֫W0|lܸHG58`|c?VN}uF^qv^Fr,}3'a*vp=+mW0}=(q,\i "(,N;y2,SN5(` ;uuPXS|y;ŋo6Ϝ9QQQrwv(.N^@vzK-ٳgO:e^+J˗{}'9bk˓)l"Ls'\9B!/+OS .a\pe,Bb!XoÇi{1S`P1p8aÆ>U)WJNNm۶8 .qqWȈ!"B!,,`I8ʌ(h `Y Qr A~R eʔs'X e+XbРA?D]vhժkN_m'X>Vc~5k^/H!BK(Tl>6&Dq0 u‘xM'Ҁ&D[K.ɘ1cL)vс#Z`q>Xx/v}@/L6͌td;%-<N;w9M>H!BK&G5C?[p_#pY!:Q&5JBdduҥ>#XDplL¾X($8:,}io棴b\|{6U-f$55tvKIǵk VpyVֱAZqkϮʕ+y(a,Y3?,B!" )Qb<9$dc>FUQ&ڃr5Ф(,= +wY,hSUzŵـ(JJpX`+x`B!a/X<~,ˬWQ:Z}%Vn؂ ` q/ߦ'68M}JxNhϸSzc}4qQ `a',"ܰB!DxւOK0>}w'f{݆͋ŃZ%z'QLQ/DTU$X,B!ւ_ U)][ۄ>"Pc^y! cg&RL&UK#&էfpkE>l"j# ѴgBא~_ Z{0Z_#B1W.E&|.U| 'Lq<' vOO@jEGKOঞ - JICKp)X>'Xɯ`BUS !@X /Tq w% :kX۳"フq#6 OF47[|-SC'^L#Q?2;WpUI9Yo6H>X DVK}cEb"ohd]b"*b݆՘702'K!u눏~=fm71Jg.o㍂OF<6y,7$XDH /y,ΓrTT'DQsD56~xB!D% ܪW,*;q#:Bl ]CW|*ZNLKh%L+ˮytlel-HjALUYMnmB 6x+}8 2 ruչ8ow2- s<5`{n6 ,|_ ? xŊiӦaǎ->x<|0Sl w˖- 5|1}RSSݳG_}%! KqZͪĢd8G^j^c:=яx3 g?nRH!(`),;?K=nbmxD֛#i8;%<0k~:W,XD&9G8$녺h2W5*,? `xK|M1h ^au ~fsXTX1|ﱟ@1b{^̙ڵku5lWfǧ~j-[Wdd(Nv͛L#&Mʓ`Yp!ڷoT^bkФ |T}EҥM?4~9w| *T`u=]Vߴnڜjժa̙>q ^snݺfjԨ?+HϞ=Mڷm.]㏜ձc۹sc }p X7?S5uk.hlf͚2e 3נJ*:Hu5i_ ?y~Z!s꾇ys,B!, j'1Lsڑ KXf4"No/X Cٿ<:j:v(T$XP`'OW/DUg>X3&`%Kbb",Xr^V/M\ޤaѢE ϬY}vӬzl-Vz!p{M6xw{/NUp[:t0쓩_~fٳgc֭2>{<#S]vXnY로VP,-Xxx}={e_흇!ʀRJ@vVj5Yv6%H˖-}C8`+e2x`3m V涯5}{9jʼN¦A[`7|3ϒ%KC-& 47ɫ`7j;NXQϚ! FP>΃J7|&[bs ߏ넗g뿃aK;OM$O{P'ݥ_/GtL%t]~,\E$Mhzb=? Uy~ b.h\4"Pzs$LݎK+`)XV ,,3gH;{_0i /VPɏ}oWp>|< VҀf,$P(/VY*6)G^{[\ Z܂) BXs%k|\aT u}nlX}ErW_/^VX$XB3,Xxq6i-*snX0GVAk(#XXz,)X# .~#`)Xa_-X(Xْ`70LI~3/{5с:h `aǩ‰`",z\gp W_} 9 'usbq6;5ݷo_sOBW'y̩P0("8 }Z= VC4H AlC{( =9BsjξRܸKM_.^_|Kn׊˳ICrӦM39jG Ƚo<쇆_aN@$}e_-iqş` %XB$X#P@⯣[ DžwʪU0dS>0upϡCeFá`- &aÆat9 GC*+ lM:D BoxG -`!6ٹ/E(?r">3\W^XAdq 69dg˖-3‡Œ۵""͔muZjA}BѕشPN{Ilsʦ>םM{XBtk֭񜟣Qq^scpd'XHn("8 "0,Ύn`ɩLO>Pj|d{,|yGa5eСCͼL0D\Gჾ%p_ V"`ږ[pǎk>S`8 ɯ`!')=xxY/L{znOF},B‹[bqb 9X"Dqy!BQ`Bx Fj&dXW\8)S?I!B$X^,9UئB,G85H 49UH!B,B/[8GU,TŎ*ġlav+N8ad .r>|؄ڰMǎE)`׮]5kd;&x~})W޷yQx;wWk$"BQ|`Bxq>%K0U,W# ʎpņO2-.RaǞltΝFI}f=އy_t޿rm8+,B! !C_U,9IQ@9S:u+[pņO2]Ps$''j "1)gEޗ?b/c9ɕTH!B$X^}n⯊T)Y}j>6Jg$f6l&Rf.f r?{ރy_ZZq+A^B!?=SEC HM,O[bE + +] 2a3۬,DcR}{ޓV؊+Vx?>Wr@r%`B! !D6bIBYS>:e.Vill36maVPI9ދ})Vl og 䊪WB! !D6Xܒ'f-NbZvky E +Y8߸-}hS؊+Vx\qʕ`W!BQ|`B 7i beS8clFm*RTb;fgDcRrBJ@bB!H!O#Yl>ĺ̓;u6) a3~s4!1)9}9K{ZO+W܂E!B?$X9dqH0q gѣG5)aVpf1)}/:?!BCE+y,n-NXw 1qQTB¦BvLJ9La=*n""B!"W$KNşlq @q :?Ga(C s$!1)qާnXIH!Bo$X~HtKD[88ndQ,;8-J8% ;v,1)9}9gsnbş\`B!(H!O/O3ia;jŋqĉlǤ={)T+V$WB!?,B<~pM.ɗ'~ :G) da% aa'1)}O*y+B!"|`B d ђp V<:u*2=,bBl>&%Gq9!BCEoq?>>}:p=,baG,cRSB!Dx#"x,9ZBʷެbaG)))َI MrNB!"d4ai%555(` mfB!BERE)惰(̈́O3 B!DEDp?ƤJ(9D!B`BB!BB,B SNI!Bq !@,l&tuΝ;B!B0^a)XX3f 0 _*xPˍ7py} !Bp~,G&MJ!Dѧ( ._Ǐȑ#]!BQ{7{8{9LeI~#(Ul&ᅴ۷cݺuXz5VZ(((JEySgyƤDIJUng Z$T6 ")ʂvv/l5ÇEQEQE al w7m%X(JKDzlٴ+CQ 枸^ ,Hm:zk=K9gAN}sƔבWEU0˯^+W\QQEQEQǏwX ȗ'41YbLïaBHAP ,6芢((>EU0&X#`V <Y#~r4{'uGe]՚vǤ 2!:/TD\T,*}Ö[Y/WY ?F-O-|5eBTz,իب8<۰+t WFfP*: eje)pvG"\-6xkkG!1!Qo e2.ZG`9&SLD͑\6 }ZFXJWCs q8{&)VcP1ō.Xl쇻(((O&E)a#X tYg`^Ju"l *;} >6O_NSV!iF,"+#aݟA@1cE"6D#BMԬf Kٻ fPd[0a,bkSS%X+fE8Tiހ eW32<##H9}3o4FEF؝%^AG:vuǺ>ş`|~]ZjPLiD ~*X;(>H(((n)0<KƍehmȄzT{[ 8>>;5,@@ˊ(%sIxv49wݛhԛRs E= q1\Mu Q /e䄆(Q%U'\Ynၧ{vnlwOQ|`QEQEQ%R`%y<DI⟫sqq7uKS5-*_þ9ЪV9DṆ1fof,eRDơ]wq+>Oheቫ:}TH6EtOV2=Xxb*~ X|4Z6|Sٕej(x6O-XH1 EQEQEQ-L! ,(([B&XM5GvVQ`QEQEQ%2oA&rB(((ᖐ !H(((n`B EQEQEQ-,B#(((JEEr$XEQEQE H!B((( !Dȑ`QEQEQ%""9,(([$X!GEQEQEQp"H(((n`B EQEQEQ-,B#((j=IDAT(JEEr$XEQEQE H!B((( !Dȑ`QEQEQ%""9,(([$X!GEQEQEQp"H(((n`B EQEQEQ-,B#(((JEEr$XEQEQE H!B((( !Dȑ`QEQEQ%""9,(([$X!GEQEQEQp"H(((n`B EQEQEQ-,B#(((JEEr$XEQEQE H!B((( !Dȑ`QEQEQ%#99iiia(((ᖐAa1b6n܈=(.!-=Q_$XEQEQE D 8{-ٳgݳʃX;%ĔD.XW{!H(((n `qw|hOgyƛ%=(U>|Rzq q4w= ƽO~֔;vƘ|$B>9yʢߖ{ُ!mh?u-:i821]w|=gMTu,(([ \QUHqVd/+GKUP*:jB/UsٛSE៕hg@ϱ|\1}ZByGvgΩߵ)jނ~f'YkS>ZkDQV:(F_~_<Ke_i>.Ӻ8<>IsOR ,-ϸivMsUDߑoy7,6j l`ٹsSSX$X:&;k>Cm3x, 5n^//-:h[X_)+)+: oΈŞq ,m|׺?6/$z;ڽ;7f,[ozw;%La7Ƌ^9fpuy˔cg <2DqX<8bb]˘Z}& &Dz-8m}m>ޘqBTTږQK3X*GΌ51>{q :9mjz7KC}nTUeK ,Ⱏ ,;wnݙ.XفG'Dﲾqԇcどѣ*b)yⷳjes=F ,M=?k=K~6Ͻ%T>ny@64}۳6;Xʘ8TG^L˧4׸av]*/ 1Ԧjb8cʕă1E ryGN77+NY'^>2'R;Q ~M?q#5,;unݙͷ> 蟵KSĐQ5㮍'Fyb1yq(V#ν%w+uWGŲ//G7D2/KQ=dtLgel;loʣב7_ws;94?of? }ˣqKm_uKřWGEM ?vt7mZܸTf.KĹXvg 765kt~ 2I:ۀ$}3I2ۀ$}3I2HR ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJ.X&MBҞ͞74n8gؠطU}㯋UEcXӢ|\}ߕXusUbs󿿊KQxWgDua8|2~ E7޽ㄫg30#>=G͌7έ¸5},\KZ~鸮i7d`r|`:|SjkwT 3潸-;=[^u؞~24Blkc7Ÿ3jcǍM(:'on{ݙb߉KUG~`);XѺJDtEѿpp>|IC|0Ԩ8>fcGt3Dw5Ě{rdq~\\-BXbKb㶓N3 G/Ni\tn[/8bږO]ݖ7%ֿ8/zBX{(;=t~KqbTMrI%A19ݳ.ѷ2l[k"[zh .`|nL*I MG4wB) ç_2?̌奸pn2|Ső3̗ĥ+]?ŏv|Kw^M;8ƹq[KㆨWΊ_y{.hg`r|`QΐoMBRL4I/,191v͗k~/.D}cث/Xh@F׏˖%qYu1:/N.vxJg;<;fk]QŨ0}/L=$F3]:lY69kbZVn.,/5?eoSڎ[fXZpLx֓myBʹh[~մm`i~Wtƍ'ǂ[I-k`i߿5l|,o峘}vE7-B]E,xܪ(ͱ>Q~C;:*K1pb{IClxâ_U! QsQʦv:>`ا8pߊ(Г.{dWDx1q@}8hО_,~>qDث"*z cϹ!Tտ77.;:**y׷+uWƘEU{X=dtLgel?O:vJ1̨Wvno?KsmpQӱW'^:3[/ig`r ,g?; ]6Hg`31h7g`31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< XX$%")y 7I31HJȍER ,@n ,g`rc`< X?q @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq POl/=]͈ ' ?odxi#n>0FuK[cLiM<2ƀ8e€857ƩIɃCSSӘ8cưl~Knۖ_ ఉ+@}'iܙFiӧ1,:ȏ3fY&"MW5a%?YGIJ5o W&S)]aY4fy+_.I\[r>@త5VS +ge ఈ+a9m,ܑ1oAQiw-5wTn۾C\5㥧ayc;u+@, +izbIP4 CaKu+@N~w2=L`lP4VIc·qhTa%}RYNw{ ,"K.TܨXjFM`Gr BKU`8XYfUE&s\!jNXϓGWuUt9%7l8uƄqZi&K4(:194zTǖ!U`FK,5eas+@Q +?KۏHr#=6?@|9%^Ǹ4r%*Q.L8_r%7Ɣ!1uH3Rhug ʹ qhTs/֭§Vl޵#ƾxt,3W4rqOP49aeo§) 7mdI3XΜN g}Ȱr] 0qhTSJڮTJyoܑ[ԠCqh4H}o+><6l[}ofy4?64=>6۹>?̏BTN:k8{^:5hLaܻ>qhTca%wm'%VociEmT}Z V/J[6-D{GtzG1mh1}X9832kDȜqQqμq1qqނqqq]セ'&_;nydIϜ5<1 ШcoyKػc^4*T_0T_vy`tO> ŏuʝq֬&G9sF9sSXɎc +{&MuϘgScͼQӂ +e! ШFJ34_q ǜ2ե/rk)Zgʨ:a弚+..3޸ruWN_/+@cQ ʨJ3fTZ+f +NVjZV.qe\9{n~AŠ4F\PXI$uZweu^<:+]̎>4.3J:{&J%S+R\IkTTOX9?< WF5VrqjJ:}0tgfuV.ZOw7J +[g%Ztd!JZs|\Y8ް"WF5VNJ>7s˽ꬳʎ}{sWVľgY#_g%:2%~~XyCו?-*RP}a{a Ш)\\qz͉l"ǘFY+?q幪2kx] +3 +@ +L:{[:2L<UjK{g yfʁuV:rߴPqeʐ)G/f[_X@\!j(Eis_?la N3_{.M:=wLˇfR=kzJWf+ W+@ +NX3{%sP\ovZ5k%AU /W嶭YV,.jr3+S降+i1N8B Шʩq%}_\S+Ժr+eGu,.jrI}qGkʹyS\'\D\&j(ԌCĕnύӪO+.ߑ挮5s%$\5묜׌uVR\Iag;_}QIu\IʢW+ qhTCaIĕ+UOJaeH\4{Tx¶LǤmmX2jFYIauVʥfWΘVW.\_Xpɔ:($j(ĕtzP=qYgY#ck{4se˞]1GJ>s:P.dCǕ/Tŕ)d;ŕzʅ+@Q \\I2yuYlA(M,oTER=kͮ?LOqeTrpX0 WF5VN<xX7=PC_<|24Ϋ s}aa ШJ 'Ձ2fle j?z7~xj=r~uV=屧Tt:P +\>'RW3S\JJA ШJ)Cĕ+_+7+Offgsa4E:+Y+sl͸Wf22VqQ WԄ3Ҙ>,ΜqgAXi|$-xH+\q2,Ι+JA+@Q \\I20Wj3kJ@Xge'ƼUiZ~z,ȍ7b7bak̍uV@)\ȼz5q3Mq"WF5V:LWWz,[R' ?uVʅI+.<Ձj/`[{\XY1/.{dq|\I?3NL8B Ш)LN:(WJR_X9Y+? nZuʬqn)[6ŕÊ4F\PX9}ŕAĕꬳrq _ʎc4^ɍjOέYɯ_g%7YY[qiw}ʸʗ꼦wMEsrzJg>qhTCaC_goKW-_y2mlۖ8s8gި8?~TJ=a qhTCac.K}qeǾu-/.XuJИ8?-dJ.V~lfS!j(t>,unQɃ#Tط'~`bnaV%2+@cQ 3q%Auk ǹFX_xn83ӌVK3)7k@aE\#j(Tt/|hN:U(EQO?%N}k:8ml8m\vҘ0q`IUckS43Ә8szgK@>ra*uWF5VΘygU\|)}Zd͗ǜW_N%NŔ$)sc?}U?#ʓ8T=R,ɍisn͏ܥΎ1q±qEfXX\!j(J>t{p^tN68umqJ)iL=wi;13=*NcD5gDFNGH |4ɍޝ=>[ƄܢQ5[%raa Ш4{Pa%6mH1%NLIQfgggʨ\<9{8&sTpp\HkF'wOHe\DɇIr=%_V.]>C\u +gX2+gnKv5TmYsFYs8TΞ?&ή) JnY((kFӨ)1)ο7?.7T.X2%.H3Tr3UV9róO.*|;WF]|Qa%\\۪fDQqVfNɇ)JRujO혒R'TN/ bgGW-|;WF}J͘3Ϫө?iJY*GRX$;}C\nۖ +O9+,wm+|;W2e߹2g +aIW咿+a5k8, pؖy;V.Y1'Y~P/qhy+_>ʢ,b >qhe﯌srA +T 3VWfIk |nQVXC\n֘Ϋ%%TJ<\|NEGcч+E( @"+EW A\(Pq @"+EW A\(Pq @"+EW A\(Pq Mڂq/OkA_GK❭[_7>ydDtEh\8WpZShYvLsL(6ŒO xl9rt,zc[d ?b=FƘދlپѡUY/+'u+؊Ķ7{?rcIE@}hLf[<ӧC.>5wXWuacʢݯGDci.ܹ4+I+~W۾x"{_S}팊oZy%2MUξ-~;),[@hD)qY۲8m\܇ͲvE9fҸ]:MUrǹѾE1^S=8Os՟V+cۋc?/'OckI<9EDKeb#WŅ=Pg׬2;cC#gďo~8/3bWƥNvmZDZO98{oG# ǫO)cq|르?=~sX==Cel}ESV\sZV G;3[fo?~x~v˟ֺPs=;~q%WŐkbWQ!^'mm·{&S\pr8q[[jo?֗MOjU8#.1޷'?#:_pli8Oc߮bՈ8/=4.? &@Ċߏ4>VǕcZEAZ}^Hq26>+Hah[cE޿&f>1em''oe?V«O^v|xfIçS}ZյO U#=W+z151Zt_Isiqq4₾G;+bXO %\N[uk^_WTϟQWS>.֤X.=6vO۳o{WoF⋗'Ɵӿ{|b\i^\9e]Qxcs-E8-C\Tn9W}oĕVDŽji?1]*މ;M,ZǯHfߎزeKvs՜=:DZ|+i.+;cE]$*όߴG5`wmͿjp/=)!Wc!S+wj/rc|ĕ'EBݪ&^=xPpsEsQ9OW#1m.થuCA>nDc.}g,k|/M3JkmkYtΝ&z撸!@C2b~13W.~Q쏧z`{E^֌N)oy)?{"=ϯҲ攎EՋ*TCJѦ,=Z?/;.9#ڷL0E凞{ZhL/ѩէGK'6pqpQsUJT|.neףr}MK::yw.I*էUbÜZ3e߿&V,RZ7>~fƕ6 d>+ 4hO,+w:t\KYuFOb@f1vN vC0xH :W?ʝZRsjjVz9w&Ư:(e-g!z=:ߛ+Qk'"ZӜi<wS4}|w9Ŷ8#W*!XӦ">pq~6ɷ˅/uǒGX\R#@ҩ%>߸v>.ڵAvǹ+:G{DUg3m)D>?P%=%waŕWiE]a]ױoYx(NjW)}>)Ņۇ#w:M3ϻcY窙+_<}O2pJm8&ⱂ Dǯfz(E 4qqO NdbbmU {:TǓ]Qvܯc'E?׏/VgMKW2_⿥Yi͓vt-bCa-O8k{+ճ{R\;9i6JЙCެ9Ū~My+bNUL u}Y3!~wdLE?OݟoӚ+CO/-PnURV~^0*ޫ~t(2|VW~(W1- eǞL&l:}Ilx9eqejJZCcAK&vDZycg/ĴO;UĪnΗ7Eyf_l|mVt:KrgԚVėwŮ}Ll]qm$wic;rA/|ca:ӿΉ5Zr}E eܾ)8/ 7W#ݫN:w`ew])}'?l4Po^犵SՂEOvg"oC0yٱ$ guٛ˿z3fܚ. QŚq> w޿wfWdjҪ3OYscފ}e͊I7;d⫅Ϣi{yLX#vN#alwJ\?eѦC#+_+e-mrDNպCX>qrK~o2}~m"Zj_&u<ԭunZG%)hWZceN9,G·[:g_kGWq%׼e֠iyzӶm|ZEfG~`xtՙD)}?2T/W^tRߺUó} e^z49M+Y>\~M{)q٨׫Nie7?9is:%u=;~}/۴a1jkdo<~q\񋫇=l;h=<㮿"Ѧe~sͅE&1*|露0z>=!~g)"ӲV?ih7oWJfҸ*]٨1p/Pq8*d*ŮM=όeeCm? GxkșSr뙴}n(PNe|M90u#oPq @"+EW A\(Pq @"+EW A\(p\4n9'S^ nZ*'K opoǕL&Sxӷ26z->I,cJ}SYp#V+GFJfO|Ĕ}ܭg \ߟ.mU<0_\۵k0`F<#[3n=_>91UvnݢG1l΋6opk,Tn\Om;?{D&%3.^_/+qsg;c_EEkCo}>_C(7M{5*F^R\[ ouƗ/LWuk?+#(Ϭ3,<26==&'/$|#\cq%vݐg2|ض"2[a=&˻~xrKe~ʔ3PgL~*hTćF?~U;7}vUM3)'f0 bRumD8z{eoo^o+6T=/|cǎXjU t7lФEdsǤZ}tO> E|)E;?GF^/!=g[_SS W2_s{bOaǕX9bci_ @iWJD`*?AWƦGĸ^k[wVUyd7NjzE뢲rC<2Zފ?WƔkŕ/b1|'}זXX)q%{Yѻϔx~?8gGb'3ҾoP"lʌ7;ug\խw d]\EŭUbxDѵkihiC?(~_Lx{sڽw $1 Wޤ]i1gk|(Voo{]iO\(h* 4}@iWJdʾ4+%2MeP( @p @SwqD8@;JP" TA\(h* 4}@iWJdʾ4+%2MeP( @p @SwqD8@;JP" TA\(h* 4}@iWJb q 缾[bʊ ۗ۶+foʺP"P"ȇW*_} RPP"ȇW"' 9zNm._:2Uۜ1Ək~|atzlhS=}b*)% Ҧeo>why? ,+ZFW+^$_uznyV y<pioP"{+U!%ܰ ܮu\:H$WeSO2[:.i.+G;f+%ȹ/hkI@Yƴ[G.8Ě+ڷ F . Y @hrq%%M]%#% W*> +\85w7K\(=@ί򫘶@dZ\޶u\:֚+ QY @hr."NOyx7ֺZpioP"{?-71`Zchۺ]1D!q},qD45WNhoP"{,|w5w7K\(=@W%4}@iWJdʾ4+%2MeP( @p @SwqD8@;JP" TA\(h* 4}@iWJdʾ4+%2MeP( @p @SwqD8@;JP" TA\(9 J q4+%bժUaƛ^i|cǎLfp(ii|L̆aq @W A\(Pq @JF庥(] n+1?Ȏ+v}͉g?mK\CqekSk+GW G7Geee*{θ~y%$9(W2;ƛ+ׯM!KןoX( .W6J{^q݆3q<9}`-^"%W/.kU7c{ѣնT{͇=M<o3;ńwEJ&;?x43u7 |?)n}**c bHϮѹG;}tTW*w=G}Xzׁ [& JfqCy>qӴWL|oa>>^ڙݶXܷwL(/:YpK\7߱;3[z/vVM/O޽97ư6G&;o݆cUN̹qx<%Ŕ^}c+_v<Wn/漾1v﯈ʯecsݻ9V}{tӂ2{Vn޷LW..qHW{͕\W^}M45`gd2vn,6 ĬIJ}{3ٿ+޾7jni3vdέ;c)v:)zN|5vwc.>R@Wǂ=k+:g+#1OcscYon}";vĪU瞫wԫӂjje<8uXGǒIk[m:ah]^Fcl}:FY>?!;?Mz9>zT|QظbH\;ͪS*7Ɗ I&<1,OyfJz=_ǶQؼ%Q} /0u}EgP "?ԫ:3X{9=f%n:V/=F>[+W}_ߜ~_y<4h@L>$F<%2{ߊ7OY̷ĮEOZ3W?8(yubLlop }DW}P/d:XnJ|PؾkK}~Fr[,]W/nmq'cK·?]4Āk'ūV՝\q5ŴKVf1gڦW;>}tTJxb98~;27-{+#3ҾoP"lҌj ŕĎ7{йKbb{slbcDkknsxzܣBvѽk{hecͩ;WΌ-sgebcjMI\<&z]t#5lARuQa\ɽt^7#fH} @p @SwqD8@;JP" TA\(h* 4}@iWJdʾ4+%2MeP( @p @SwqD8@;JP" TA\(h* 4}@iWJdʾ4+%2MeP( @p pY~}<#F:M( @p ptزeKu]q7 7PHmҶŰ( @p pKS CJc#=;JP" v#F8(̜93>&N{( @p pd:TXyW 7Q M ,A\(LA$NIR,Yti 4(7&Lps5}@iWJD3[{qě[*knS1sȘ'9FEl|yA19Z#2Ufv'Q^ 奴-tOa ITKu@i챇Q @hG["w_;ӍĄKD1DYǸ5M6KDSǫQ!Zfo;]iH67$j]1(`Vx_i},qD4yӂ?F4Ԗێib&lQf\tj߶]x87e_\9VqՑRL)l mhN\8p`p5w7K\(=@ܰ<\>ڵ??z>jǞX9/q~BFGYv?_ z&/ .1srJa[oAcwZP{hoP"  (fͪsFuXIbA[#P" \qD8@8r(RL8~X]:'V]zlSJbPWߌFSʾ4+%2a˖-q]w{K뫤maP~+ivJt7ž4+%2MeP( @p @SwqD8@;JP" TA\(h* 4}@iWJdʾ4+%2MeP( @p @SwqD8@;JP" TA\(h* 4}@iWJdʾ4+%" g2›^i!qDZ*6lPx3+3ҾoP"vؑ?` %#Ҿ"3ҾoPBAr0 05ҾBX( @"+EW A\(!db1wwq|PQx?*-7-#$qhxq].-c77I?)G [Y.ʯQ'+;3[~5W6%߻6* !2;㭙QgS\4 z XD_AXqՓTn[L& o:W2;ƛ+ׯM!Kןo*/R%2[݇k}f=(J&v~hLgt=n6?^bn\yj,?4n9ݛcm,xmt?k1"s_3)^+z\1~xc5-[ obûgNU9[5>}?ͯ/!=FbqSA\q]kb]6U/ܾŌjTŮiF9J*Noų@u67gn@yxѧc+͖c-Wo̅1ܟob<޽eAkbnQgblΗ9܉+\ΩLYJ67'+=zfTk[q"-ʕƟ| 0iLqLFcޏkoש-W-_$͊~3U_:]Z?bd3}ƈeLE6UqREd*>Y=&"+DUnsb_uEl/ϛ숊}1Xs>Ӧtmxrʨ?Y7Gٛu]qUpGR˗/LJ~֭k1-I Mʕ; ȜĔJ=ӣ7J2eE]RatiƸ "e/^z4I.X04zs-~y\H:le13z?31Oszi߄-Q)ӇGysf۴mOX?dHƊdP @H2Yn18F/VEMř3@<]-1[xy\OK˕G[NWEh,Lw8&|t.N\/=CV̥g^y/E&[=,*eNۃ!o}< ?=>\i;ij<#K~ُ?-=-){qcV\ͩ"-O+W@S_ r *źǓO.Y;ge13Os_u4- :\y\RO_ y;}^ t<mXs"7ČŹ<OٛO6!F?909]7/EccSӉڰ"YiAEOdz=^aGDOg,3\(y;/ m¤\(y;¤\(y;¤\(vh+c@aP;0(W dP+2me( a2v @ @[; r@AAP V \(vh+c@aP;0(W dP+2me( a2v @ p9~x{bŊ|O^]AP Ν;s̉^zE׮][L^2M2m \(v:씦Eʭ|2v @ y]z5 ֬86mZ:taךN7nܸ<P+2@tbe˖-M'm.]ӆ>k_eڨ^&ě.Glxk°1kc.i_rOӂ$I@-/ʭ>_yR\3rWuyry\I^9c?1km0_skrqa=_]St[]eA^g[㫎^asj@>} 'g$/V-↶r@A< @ y%HKg$7=|pt%?kMK>b%a( ak錔[Bme( apܹ3gNO O^rd4AP y?JrvJnc@aP;0(W dP+2me( a2v @ @[; r@AAP V \(vh+c@aP;0(W dP+2me( a2v @ @[; r@AAP V \(vh+c@aPd96}Z \(~a8qТdH:r@\|9/β3XdHƊdH:r$;ɿB&;"""7K2V(V r  @ +)(WRP\HAr  @ +)(WRP\HAP`٬-@P;̙LFDDi:nб+B!"""7 --t @j\4.S򩬬iHиlQt< @iZԗ*qڵ|^*""Ґ!+, \-+ɿHH<5wJWVH$cD2V$cF2v(X:rTREDDZdHƎ ڗr4.WӺ9S8|Y#CDq+%Aɿ4&_tY+""$cG2$cI24c(WYӳV={Hk!X\hgM˕tSN5YiM1ĥAK+M\_|Ee$C$S+CoE"""iӸ\i|ڏr)WDDvF+L"""3\hgQt< @;Sr)WڙrE^]ˏmjضkiqdSEPo}7C+"N.moϢ:jѥڶ(Ͻ;f5\?**V5d9F#ՍFFMե8rdC8+RQt< @;Sȝgḋ1e1i8VkiZ(WJƠɖĄcىϗcqw~JJGQ6z1s;˕l͉XnE_"&o^^< @S3tt'vOcԸ3U/9q-V\~˕y|&oߩ 1B&jμ/O}Urf`ݴ\ϖ^ƙl&j6oŽr)WڙrE:˕S1{FRԾ͡?LʍJx|gŘLcw!tuJ<3_.O+Wr>lNFž׋N @S3 wld+O }o?JrU;[Y]O}r.,ʳq%%rqKco&vNj=D ?\hg3-~4sI,?y5j[vM>!zM?I2$lT]ep|zwη\yeFqʏZJZBw;˕Q24~Ri1_¼E ;\hg#~6}Vq4Nۢhxe@M\)9Z}`ppJQ|cy& E\i*;6N  @S3t x1cvizG=yRv1퟈Ik<8q|<qJ6)Wo8{Ryr½W.GKmzF#՝R}$rt?=yul<-VǞUCKYi8* +μoxcYҴ\++~hy ?[64sPX4:~18ZX1U\[Xbr<<bqp䍥MB[=%~38 ݘ\. _ƑSVlÍږ3b!޲^˗Ƽ"{x,n.5Z7Wc=q[}fWbEq?W튥_Mj=~-'qbQhu2oxtH~1~`elܸv/''mKcGlW^˭ʼn2qWbMU+.W{[ƿɭӲ cgUŊmcŎzǛ+8~x%5+bʥ{~vmrwGFwhI&[!g.gļ#xJ'Ǹ#:e yO-7Щ(W3dɓKًquycϦn}+_+ȉq1eX{Y<6(~8X8WtjLؽ?~?|),#?/Ec{%/WnwoWt\)hN$|ZXo3qlS+^n,ݿ+7{٫{OG9/ƽ#ĺosVCy=o&76?9k΋ T<떽7]fZkqYIic֞ݱrס}[ٸr8xpaGigq.٩}kGķOZ.Xuy76]jv{n&d?*֨whMʕqKcj3{kv;&Ei,gܔ+jX;`}>QFM6\;._(Nl.S.ƅ/8^CGĎs9F- >>ûOܟxgA︧dQ0wK-{:^V5bۑCqѥuSb}5w;XZ7͵Csec|ъT&N8??׏+c2kCbٛkz=}%ޜ31qɱe:V $NNjOk5ѺeX\ʕQskebʲgk철';OJzǣ[NMjH;a%gcO]t{ϭ^mr˕[|ݤ\)_1| wN.e/NJVt25o o㑲ݺ/`{Ty=)oꨬ͵sk}ugbWI%wz?]t_i-{zE96Jul]3U?[q'[<&{5^|(f59~?_<8g|oP{@{8{eK<9gtQձ~qkx~յ7S3χ<)N_%m7s\UIɅ+Q熟'ϞS٨94~]'5>)svUK܁;\wal{T[rӊrx#o܂lx۲3{`<[ ?P7^-mMʕ[}ݤ\)tTj'Slqй(Wj1Wߏ++jDKPP}BL2{3p襁:Gl^mr>>\ٻmAm:sxoâxuY+WIq?>5$77 =#'Ĉ[c#c١yāu#;FGaxӂeN''n|BР影\ؐ/~0{k]55{DRr=c˹J[~fbVYit])ܹ*^[=9bٛizGe$mx,Y=)~V/^]3K|t(6_/LOY{3'['[AlXqV+8{Z<0waxrBk|Jn=&n{-zw\WCn`}g='ڼ(}.֤ijGţ+O {U+埭> W 7K@' {Kʮ_Dő>`EkU_ ͘?PBTgKF> \qB_=9aX29cѥI,ǠQ_7Z\ަE&Nz+4wGx̘z`c<4nm +^_-x;& 7Ynwh쫔+8{zhx-*ܔ+*?]X(dV]74dW/ybpK:f7D\8NtW?|}GG ;=6-+{rdw]6*__{_i@g\Rq`vuk.)8`F&WM dŘ+5SH1SI5s1s^BK)kkڛoL-jkwsuއađȣ:qguٗ_a+jo)wy]wPj'O:SO;=kϴ~g͔N,Yh)oC8IRH7ёP^996/$$r2Fv>;U*oOy4sF}OY[y3BBZϭTWqSzi}5ki]hnngFi1gMʭ\6ȪiyS-f33]dba+{Y*:ux,ٖ|35nQ}w&lTw+D],:"U"~grqԞf >F:~?Ʒr]JQz^P1_~_&Q9nEa٬nbܣݭM"[*aYʐ:̑x֖&bc01Ĺl٬c)(3|15Χ`RQO5ճy;h[Y\}&I 9U;)DZ)4?B1vI) >*-c:XR(CK/-aմ&jC'q8Jc~tJ̴ <V D`O&UR]RENtp.Es n){{AFZ5> JܕK$yAfٶmrQgÓ^S}@3/*|]k9k8SiS$B|`pi8} ~L)JI';sݝ?CHZz{MCtah[i74&KHe?=1ޏyqz=q}=wNo64('%;aS㧙C ]3$1kD@q u!qr@xjdz+MgҰ!к8Xs-m ٶ0mGa邴#L[rD{᣼vl4!icyų#'Vhc2`SJm 0`meJb!6\]eK9Xr {`FJ@֞ Eʄ#l  *۳ moךr/ΕA8ScFF3-CWjw\m]q{{־_HgM<=EO杼c b{rmAL`Ke. p 1xvQ=y> `!FmMpȧEn^E!Fun=*Xp.,:&xBlLkq e:6nC4FO(c`98~E[A: [4¢zKe#" b |;0I}_Y)BRܭ$h. "=>nJorQ&$2T% 8KpJ`6Bۖ &6f`r"<2Zbʏ 0lG*>7sEGeCh%\Gw5e N/P gAo'2Q$CB&K0ѰЋ -@@,;7&0#x}`Isw ;& C<[ E.((Mٯ{Ƞ Nj Q-|yRj-&CSKL7KGl6fT;`MnP"5Eڗ{46BX+TPDrqpa=`^+0)KBdvb(qJʯ[Z12{Ib<6 7 DZ.JYXB PE c|l24z2#jv)SV'tY>ʆu1.CƷiKquP#A (_H!%i-xL @b o`EA* șQ)h&kx)KShPAok8iк3$qsTZ>*A!1wn+]+~ dhZvp8(T`؊ohq'%x qPCn;吪J*:Q}gHjoqI,`t.עD .ցz_~)L> cC&v4'o3dpJϰd'$jp5<7.nLn >U*N K$DKR[0넄[X.'5:0<؞Hu%s9K?=;P&-cyP,T8$/5) Z-u fkG2UP22CFNO__Z@mp8׮)]g H7;*T0 hH4D&@55ذp2wS nms%C=g.VGmX?nbS|{$!$G:,Fh7YkMh4a{b#t9/=T &qˬgQBog:^e Kxu_ad!E$yWl _[nx,z9T&mc,5ĿhUU|Sx2 D豵b]Cs2-<3m+ZYAXd|7 BN+jռIьQ7 B=wa"36Kçͧ9bDBy|Af7Eb~AuS2@2^}Oj;,Q뀽A f}AQ1](b_JxC|AEmSǓ9M Y%'SD %kC ']iFU3`gA,* 0o+@k4̨[[ RU($t+(neRb\sWq] e6fU-{EK#if#QښwNBųm14G1&ZEh~Bm#oU[VYlGkU m.`v"cW :bFS4UH~h f`x{h[; nnFLj҉#8^G;>1JBےhN﨧rg4[d T]b;6oGYx;_KIiGoˑۗ|Ĵ~姑n.y#յN,J%cC :<zd8 |OW:l2AmO+$P-AOSj-ό}\den v+-R2x= wmQRe[]YJTD$ВMϬQ5cx4B YBͱ"A; A&Eg/A~HpO a^m@9ʚ4vicR| 8~aQr0B*:: ^^c\QL eQJa!zrcrQMmDHϺgMFET܉~" ȍI򼤦/8A49xj׏d(!'#IH(رBU0U#0H+bщ&=*9H^yv.m'pdbPv{_'P̃tT&rDZ.t2$'ݶnKHDl>—fnEjm7GH #yO1z>ݲ đ=q  IiyA4 1/ugViRQG+rI844tCW.=Mhar0JiqhʵR_MLn;lbs_(sLOחtN4vT"c)}DM=: aӗ/o$ `iwwO.ywk>.>`c}Dffw_Li@1]z yѠzBd}zylr47$`΃0x~eU|_(0k{}5"_VIdR+̤8QK>suxaJ14FVOΩye?#!_j]gߧiẾD`do Tt]CiCCPICC profilex}=H@_["vqP] *U(BP+`r4iHR\ׂUg]\AIEJ_Rhq?{ܽ2S͎q@,# |E(b39QLs|׻>Ur&|, xxz9GXQRω #e8̈NGBm̊J7e-г7!0Ruwwf?rP iTXtXML:com.adobe.xmp (pVbKGD pHYs  tIME, IDATxypu;0 b# ; ."%H#˖6OQE{ί88SSN/Nd;)hYDILZDHq' @ ufL{o q#3=s\M*xQW?3AH 6ݰw~h;P:>DG[qi8n XmӯKP_~A[k/$G㉤rInvcȥ X.XIxg):cdOUU_'/n?$,Ǔ?n3`_Ѽ2z5ˉW;'-Ũph\(lѷUqi Pm(c"3q1Ǝ &נR+쁋5&ÎdsMj\h?8h?49E{`u1O4QŃn(=FM;;lnq~{%fBZFynFn?fq}ā5# e8>-f{Bpp' O ʖ㉼3Obc`;xbV՘Wua2W󿪆0 N|X(OOo~&7S/~<RkG5|UBU1jaea ༽LʣHWߩ7xEmܽ`бtp:z)Y~·l~1tL׍xbxnfc|Z\[Zˢ<.tOS>x 2 o?^4Dkž΅BWΤO}?'rQLƓH~V}[<߭xZ>0 i<@2)*|;8#[J@4p19|)×ysI\Dq1%8hej<7uؑ.[eAgljud]`xY)<&/'QL5^ K͹]BO`i ƋoX zKЅ# ^)A^?hzx :ټ'0EPgjV܎%Ԅ\.QeDPO,4^Ҷ4莵|qɉ˹ځ65^H˲+%4^V뱷ڦ &w]*SpSti4ϪX/$SQ$ Dx1~/KMKTTW')]%4Hx!/ysYs;z0 'tjv,4zIxD/˷|q<v$k/Q3N=$Ne5nôLӔA)5^zɸg7xo:Dt(ݍRyXj nǴxA3( S娽RQOL4HNF_kN&`${]Ni?-*(K$s{a[sZJKd@Ny^~ɿqS͐"vAڅkEf%͵3e%25nk?w4Η[SմJs,5z)S r(0`(ˡQC,f=1Z/%0}pTrhYr:h.R:ˡ+KLS[5>M4׎H f9TP?ƿïr]9"eAN{r>ViX^jĽUWy^.j[tX.j$1wb'Fop kF4'Jgvp, Du%[=f I;L~o hkLRiz1W5Ct7'[+1JKE"c'&t~HbE֚Q(|}J>EVH~Yx؜D4zY ex@=N7hVCޭ7ZVC{Dh"7Ld "ʶ+aY Y F5jVC9顶q;6:AE2rHzжF/n<1ȊfVC iJeVé~Rkd5z&8eٙj)b*P&/4H x)7Kǝap:fx+! ap)/źt3A%1ˢzxnOAdhLV헂/Dq>6R;/Ew_d+JR\xY%j h|qkʖ22x 1nm gB㥯M85vk/c7YS"/K(EGKi~%q gu㷯N4@[tE߽' *1#Q~3O֋q֏Chۃ-hj1nZKT5ؐVݠj5 ol?\sm\+V/ױ+vN䋦 Ku4<,od'pKJ0| xb1^r!v؎O"cscK25l@Dfyy.Þ& 0-\=Y-=2IrhkS*{Yt#G#a걖bJ,ٌn,VN,?S hQ$ˡ@SC،%7ˡc:Y9XcбXM,Nm䋲q11PFrmLȕ 3ϰeﰾf$B@ RrM|J@VCC}6BZJ7rxxKGARk"*g54[nQ+p:NX;YY y8dȞ"`[ <A`Ug59JOU _K0"ڍD29h?w'Lad5twf pqyzjeƺ2aԍ,p9ɷl㏏`oˠv4q]WB7 .F"/]73]YDƋ{ /CI95^ܷLej5BHQEK74^0TELl.jH 4bҡH`GRJnprGN>xi/zj0Ķ؇DkTs&:sYt`N\/y2Q]\9ccu'0E%Kqg` 'kkq!<~r\4 e>x#!wBuԍDx0sU46_ޱ/cJtͶ~΃cXi*XW8Pˣ͛ϕ栩,;=RTUnuiXS\y~d(a %+a lhFP/fTbMA.>/Ep';:Qٸg^)Fڰq3 <()^m8^wx'l;Vc0*KcS7~Cf4iGUjV/'j(#Ū*ؤ H*P߄sKGâWJ4 ׹cˢ(O`07-UsV`CQavĵv4 1׆A:vwFxr10}=(/G:ўv\ \nO1>sw6&Bh_'br0ye3UϿ@ʰ<ȗX\hԫ czHWg6ּhڋuq_;5~l=58T ӕj6uci.hX=ITK<2@ݼ gHpՔiTLMѽ̩siy6@|SSL,01WfWc}A&zPu\bjܚ#7J>nmn a}Eʽ*0ǧ"i?zrxr^#7-E:e$#Ʈk8ގV.m(#8v '{G[%d܇_uHYHC>)Bm{#>jk`/"EP6m*@t}J>.p4.#ӗ% BG3.uo=Yo3lS%Sԋ'kV͹(hǵgp&|:i ־xf.>\|#A}pgcv~қ0GY^::0jY.V'%06qäg4I9"{\ x&MГ%/4l0 [EaC }\u~#,EP< 7jbt]ќDxoO%Bs5]kSfV4hδOib@~ Pqz=.@'GX_COxƶ҆}fVMmK?OvG 'FAK8t8EՑҋ򐙮cvƢf@F0<K>d+*&QY ,쿂1E0b}]h@7ܑ@mǷ̪#QbGX?SEQӅߝ]G32qsy6̩6ևE-Ƙ޼Y]t C-J5=X;&6i.0"\tٻ@|VWfnĄ߅lbE=lv#^Ɓ57 1p8>t$^bCe+c/DftAj D$1Q*pljpY `GE,"\fi~Rb^5c;N ͠A.F8QFxL2#\HOyF:0p,++ż4x>n:FBCkh~<P5ԍ,#}FF~%Ve*&GFwvȋYeeԙQrG8FFN6bvnWp_ߟ7yip?z'\tS׎f5+f! b|/ҽ^ds1/3 a 7 gb&RoyYٹb]LQ;_hk"Wh* c \ W:,%Yi K;+ĵ1fȂjT9PqAb{l2򰙕' /HSK!//=6m?kIZ/]E2׏oPq *gdê8efKSe{1сf cV8u!?HcV^Ĩ {pX08э% 3{  8dg"@hC E #ގno?/a(HxӐ UcE`/Z'/Ju\(:+Nc,njX$Xם"˗^hnc3s%a톎 kd$kõ ,#@!Q(cy]{\pn!t#s騈nyr9"6'.9"u0毧"\S. -<V"Js %<'=fh|i%5|r˸?bbU|E,xcwTE7p3hb`Ul3߾'ڈOx(c^Bo8 *1҆kc*230ۣtaE5љSICq~6Ҡ"a-3ChhoFUyg0a;~.";vhqb&'2:O aDw؋Yy(Ǵ QCuI160Dev'/2Ҋc=^7|"#=h%sVBCY~!#$be wp||##aȢ Za`lPCn_ ‡2#&UݕFЧBAF[; g>)=)҃X>;@MiGLr -n$5=G1A / @V /Q׵^=ߒhL..[ke^tI58|9w>ˎFshO95֘0#w׎?i9֠Zpo@F5sD %jgV9"Nf>pջ[#0MCM$%xY#"VfXzw:9Zƺ.I $|('· Jʒ'px;z G)GBwϫݴz%/™h'p b=ė'. kvL,C\]Y'AV8/6 l/ogUD&=ӸE;y^k|M}.;. YA>m'++1mtLZVC6sgP1pJp$bq P]jNVCn Pi#;o)n N"nY YJ<aYPÚY m.<> S稽\\;_hZsmt QTy(?E-n"#|z"~~ 1;%.(4tK1ejzl)Bp3t7JtPz-^=e9+sDD O΃rhb#=fR9":x۞p<1?W}l9ʤ-փmi@ 7'!xa 4^Z)ŀ(z9~j0|Fr?6y^v4ι4fY YKcRrPRkÿg>8;WD쀀An?dX'f5r dfe7!'=CZ? pT2r+/"oɺZ4E`r: 7aq,,,ijYȗ'ؑK\(rjtXNPe9dm-IrCKD2{Y%e)v5^"uծv4v'8a|z`ZIBS%1apy*L̼8/k<8YeD5^lɹ^N h=GJ*~`x9Hbrvx#hjpˎn3M:̀Ƌ\/WCN_1fȶ}a(:WSҼ=klc'h;yO4?jˆOzqz/7-)Yr3a̖Br $7ˡz8IizY;,vX09!ylZd9e94Ccp!9ޮ:>3,BFCXDP(!L;,P$0,g>1|YU,q_pNԆ rȿ]͵[=q'pǼ '}_/0[܍ {ʣZW6*Tuw>byL^8.`Ҷ%B,'&slIWj5m|9X7U-@c9LKV@p9lh뀫`7ê4f3~(jkD`?|Y c'WGfgb]qv|bC);oS?/fKTn 7=#Y%@sBY~{(]Riv֏DRIo~Ў)w:W\=.wOs6ws}сH³Z/# `iLtbw;](nS?oO<ʆ-IL *5&,z=p *^4g$#a +)?vv|wN-ABC/ӝ+Z@Z9r Dw $ɧrh&3x\k4xxt{*ibe1J+zA3je9%rs o:iciiD|:/sUCe"1(*P.'ݘ/04^/^HxTxlTxIx15 +Z<.kJfC5^bcxp²a~k#K͛5RkbEVY H G6CFȵN$Fřoδxq-QJmdzYe5x9+&K˖hM܁XVNKaeՌ5#Df9T\q/sLyEwq%ˡ$HrCnpbB,<$f9>?K4#-Y)ˡypL,r'噋;>D9{ؓ {r-E :GV?xwwT#"h/uULPy8Wau=Fod sBuK]ȝla3i#awNˑczzez|Y *ƕjg5rHxzpydl0SrPB!~+g"$.0DX`ϻe5TX Jo!f[|ljh'U(53,#]LE jeֆaVCˈHx]nȤ'hqx:~=PX˻7É:#f, y[h̺{ N1)Jt: B $ x ȉx xmO;/2tp%v?ӑy%{_i+ygF/Qi_c rSÖ\K5j>giDL,=J1/w$'I@qͺˮM a@E6sxa=ɲ4`fG㥽6"q 25^VÛcs5e8v]xI.<5^Z .A<ރ hL;y{s.xߡUlN6CETHԠCwq]k=G* ! '^/|>/jMf! fAAA@l4|x8{= 7ߊy(ތ a_}^*Fnv"܁Ή&L./LKlҲr ab^Y>rP]@nA%Vlَ7UNEAAFLb}uhɭ -wTՏ`"kzSQ#> Y({ptf0D*,q.bx ggcAc###PȏżjGR5%1͟QYa  @Ѳu{süj_^ /)  X/Z>6k^d $`.z[8u͗pdh !4e^A[[=8p`1VVݍ8ZU<6@_롾<^i_*dRkb"$].  N Yaٳg͊|g;w֭ 0P-_X pӽii;*RM~լ%+I5Ӎ<ڒIA$D$212ˆ7  ())fuuu=5Q:01ijeaɶQ)_Өo+6nٸxrO`QxMw{݉[ Wu_~~β69[H6ʖoýUGFwh-ڇ|(^sBGp1~dܬ ۲(~yW߁ż&w+rzR܏S(BM`h-.oҝ~4:XZ`Yp 7a[,ЃET۷N{JjqL+JcmU,Y{%KI:ن 'cvl܋]4~>nxC'OjZ]BTނU%x Pw̓=I8Wwn]Y([ ;_@-**FM۱vnL jA Qu]w*O*W$3˘DY "bT_!"> [ 2[bOc#Vsb+l)AWӵ1  (ޘƃ pNvĉwĚ~Q; st d%ya |&=6N P B&ɎhB[i+"! Bq~&B`3PP([AT@@Oc^?آ>e,lGm5\;*|> UY3zF AzsLbdn \nll .]ҽŋqZ.>|o=߲E8B(,78_~&d#;ípS6 imH?Cg/]U_KT m|FhDkh!AAL?cN-HNJL_G144իWՆ8#m! ҁU֬B#x{WW0-c8XCsUVCxp,/?mb\/Gڎ](.-D^mދ9y2Sb {Odc}U6xCxڅ.bķ k+1 FQOʀW{ڛMAsׇPX[9BGr,-ICf]ةHY,zYMA4=XQ'srp!=Qδ9hEoRʃ/0]xC|p8.F0{Բ<9{BS|dLp&u H404fQzN _|w%%%2V[lAFF :DVzU;s}a1ѯkAedee  f&paH ddd`Æ ̌&8wW^^+VO1444#p~7U<~*; g2D EA3.-3f 'nD 0@z> /xgÖEva_YUX}]X;kQN/'Q/7$aFu@A.V E 2Mk95x#L:|Ѭ>ofn5d Y\w/v1*e_2S(F e$ ZF'MCFLlT)wsfƗ ʸ ,  JfFU4H(qmn_F\A1s<JZXr s##ȐzؿY[lAii) `AAHY477ǹav#Í 05t5vAIA4EAyy9v 8~mCKf0T7$3v;hooٲ  ԧ>8Ϻ!#\5l==lKKKB p222 ,;5bp>AAn]k81œ2ܘ{-kc; RAA$c=d6YӸ"#h28D"gi! "kUUm5ƚ  `CAAn9YК n81(EAtX[da>"`39 AADa\CdG;DAD,vvК H!3dI9  uoCun`DR6RAJњ-` tr]  TYV"#pcjMAAAfx!C ph@# AA`YRyEFܠƙ(EADa2<AMR?sƗ`GAAZY*s22tC H%k 9 0BȐeṎAA;ku jEF1gq HW\Auu5.]e|'Q]]~V X{f<$ pը1$K?0֭[xg }]p֭__${݋z JkxQSSg hx]ƺ Ɣk9}kۿ[?~xǦvUA>}:)S,>c ٳ4XA\oU aet>`Ϟ=|xgeӧ/+;vL:x>[ņ %@d纱0%K'طomw|;߱}Q|_Gyy9pe<Ύ~~yf\t o~[C8__СCE'҂GqOOt2>(..Fcc#?v3^x~ .D}}=~_O>s5CرcҥKb /~*aϞ=K/F7k󡺺o:t rsso|7n-܂੧B(#xG{n,X 晌pM7}nD(F"``ж}}}#aϞSO=~yǣ Sy}39F\"#|3K^x/gTUU{޽BII ݋7x#j˨λ'N˗/o>{?^xxwEqq1ك'NYZZX~=;cTVV" ?__;x088`k\޽oߏŋʕ+DW~?pRU} >ۇ{ OJA 4RmB6=PXrחC UJ-UmFXߟ 'zqKG~WUVa^jHx ~?!Ν?6:;[x衇^7gϞE?EAVV(Ұ{n;v ?D ;v0w\<䓸O<x}!??PSS{I.v x1w\@qq1nF? CCCXl|h|߅ӧquk2NF4|I>eQ^^;vGZZz|hQ<1{l- fdB!$@꒨S@!+9,yp򨍍I+ƒ5ź`;v#<'N^ꫯw̝;^p??6~'? ֯_ j̟??z?8`Buu5P__xg3&tMJhhh@EE5^ʼz5o<455E[d!3332~A@\t !mA$\1 <3KǂU p Y03qd-*ڼkO;/#x#BTނ7W" 8qqN\?aX+}eb\-8uC>Ņ ?u6͚='.+[۶`I ZqԶ 7k6qV5c߳é~xѝe0x: UnöK("?x_Pu/ǢxZ~ç.bMx=مWZ`6;߀HJnV"£dǛ$1D"|>x^]k׮׿u<#ó>orm۴4>9tMQֶ_صk:O~dFGGW… u_r'yO?aÿ\Sk`M^DlFL}Ad|ŮA2#DJ`MMMАw(A!Ρ+ =^0%@x7/<Wkj;> x+Q<+CWpj}$# G%X|l/|e*@ٷQ`pgA׎ŻoD-(kظؑ=¾0KtƗ? y^=N'j)o@11#_•Gȭ2ƒGBXsh} 38S >s+r x+mϲyGq1|[׾G$֭[QWW+Wٻ*˼/ Y]EAP%LS1i~ί~YScN5O.F悦n ";pE{פ gl ]K)j \=Oaa!ӧO'33͛73c 8sңsQ_N>}m k ⭷zPiiSX;vԩSddd-߱cG_FG\˛n "ܹpo;U !a-ekXm>r?<S0CC]9]Sx,;΅~D @ե3dve`tԎEnPc&CGB h]Ʃ8TS|Жpt.}sQMHo]CʒKx7o(+\ )gNk dSO 'B t1_f{ѶYBΞ)PK'zr6_cv̜C w'G܃B𷯢Bq_111Cw o*ߺyZZ2ʕ+>ݻlܸJлwoa„ $&&*7%ݕ Ebccذa2=}aa!/CMrm6X.^Ν;۷aڸ IDAT/2&lӦMz?3gUU͏2ԍokxeСXXXW_};#V%""x9b%}.]tď?l2&]v)v5ۢ/555z3?~glٲE-WuDƄ qC[0 . [:4a2roۢvo8.ډTEey%8uA'ܛBҸm'YZ6uU PSL5'h۵x[Ce̠۾`ަal\Ny-j7GtrwsvA9" UCU2M݃hp9s&Gѣ=GСCf͚@~pvvAFVVVinn+ҥK}6eee(C2x`8@ll,z4lll5j@lذG2tPz*$$$`C/_jh4DDD(СCIHH믿fڴijƆ\:wuc֮]ÇyW^7d…|ܺulmm): F||%~:o !`v5-LGUVL N87tugzĖ.6ei=:}eBF1̝=-Z.4P=@ʊ+W׿^zqc֬Yl߾]yƆ?^zQWWǍ79s&Gnf7T*Я_?=1/"ڵСC1rHl٢t333O?ɉL\\\x嗕)믿СC),,ښѣG'gѢEru***9r$_}U6n8쨪RW='44|>|8[l!((6οӓ,xgIJJj2+yyyK/1o<8p _~%}UL<7,B+ Z[Oim5ЖmvʕGۺբ*22#u6Eᠼ[GWldS'9Q&2*5BuYɺJpy5̛w ˡ!NNX3j(O 'It*,Ķ3dwLm+ W!bffFbb"-7$$FBzJHHhv}⋼⋆/ kk? ory=+?Tf4i0̜9Y-MXaT S0.gr"@_?d޹'4dUQXbC@h(&i{% u: ʩ*u8œB!į'(dk=T GGF﫮&??uݻψGzn=Mn^ۖnVU-]TNxhi&z) "B?~obb)䟖50hk^kJKϯԫK-`}m~!89!Hki9mT@<Πq~(BaL?a'ذB!Bm1**/ B!h$c $a>#B!~҃V0 6B!ĿLο:LH@'B!u!$B!BH& 鑻@B!R_a#B!u!$R !BBH&B!:L!B!`B!B!B!B kMic-B!dB!BH&]B! !B!`B@$ !B$B0!B! !B!`B!B!$s6dɒ6Κ5kXz$x+3w\Ν;';w.nO;wo… ̝;ZX&y6ofh4̝;:I\!`Bo*?۷gذafjՋ޽{Kߧs璙)+[o_6nf7CxOZZsUjRR|4$233U[[[emk׮⑩+fbb" .D+XYYI"!$.^Ȗ-[ͥ} >*y1rHN>MII ;vg 1sL^u֑ ">>^ގ;8tUUU1qD<<<ׅ 裏xٵkn"$$)SqFN:5 2Dٷo7n͍~nݺ~l’%K077`԰`Fy1yd=J^^̘1Z @mm-6m"55wĤIpttd߾}lذ%Kw縡˗/i&uww͛7s1ѣƍҲzŅt ¨Q뼼<2dgΜa֭رc uqYwĉ7$22R9ϛ6m… ,Zk׮[o;Ю];XnXXXSO=Iwprr7nxb*++/c 7x]ɤBZZ-ݽ_Wx{@EE_~%888СC}IKK#99"x' a…TWW0w\^{5<<Je˖qZ4i b̘1-Mͬ,8t&&&DGG+j{|sK.qFc 24w$l޼ٰaSNeܽ{$Qڵ h4^aÆm߾\ƏOLL gϞ%33(>s._̌3ٳ9rСCٵk/"Æ kԊFee%'Nddddpq111/ 77Yf),,{oFF'N`ԨQL2www֯_'xbLbb"Y???\\\(--weȑ?SSSKzk׮%//޽{s!rssٳ'\z>}a߿?֤RYYɰaèޞ3gҭ[7vMyy9!!!9r,|IⰷO?YfƁqXXX:=222HMM%**z WWW;wfᤧӿ^xLMMeŨjy|}}Y~=xxxŇ~Ȱa7n^ZkjjPT/]v-wxb>}:ݻKKKl h)jܽ{7wfʔ) >ׯsN)//رcܾ}iӦƞ={033SN-!<͛7n ܺu 6зo_[<#GuVLB||<۷A5:CeGSב#G8}4&!!7osNk׮ҥK̙3!Cpy{ |>33)++cΝHTT?Jdly\s҈aэPDEEMjj*K.SSS|}} McǎV$AAA3c rssz*?~\1f;:vHϞ=QTٓHRRR=8;;'W\FC^puueĈL4I+((ooo 88˗/S__Oii)tE{Ipp0'N֭[̚5 ooo2e ԛP_~ ZMYYiii$&&ҥK7n\׷fxyyR 111;'OΝ;L:ZMXXWӾ} !66www∌$;;J޺[:'O3fCϞ=1*-]͕#FGjO={̙*y՘ڵ8`„ xxxgʓ;w@hh(j)SPPPCCʎ׏A)eQuu5%%%İ`|}}qsscРAdggS__|o߾///%=z4ҿmMy`߿l( ̔7d|hR<GGG弴Ti %&&777 Z&55ըcx"##ɡT9ЫWFyx|&įCuA*D[!44ToYΝo* us b|+Sl|#j~:de]t._ܨa5//w69Z&??F,;{,~-po@ŋ eҤI,XӧOSTT&syԔwneeEHH;vƍVիʲ۷oSPPhQnDFFr%ɉ>}j*.]Dnn.}J ͹peeeͮk\p, ٙ޽{j*.\@II III,]uf+--e>}Z(Fii)ڵk]|gÆ ;v2Μ9Cuu5qEe`zAA/^Tfk`/_cǎJ70.\I=OFFk׮_~8884ޡ_ *++ٱcGPzwrm=ݻwܜVbb"7ndٲe… Ў5of,:: 6P\\Lǎ={N>$(Onq~~>۷oѣG+c uѣINNFɀܺVm۶QQQ#&Ls̛7kײxbLMMԩ3fл:tW e۶mzU* ,`ݺu[XYYرc i/#$y177_d,^ssszŰasLRRnnn̙3GݧO?W^yOOOܜyzj<AAAJnRS /uV[ڵkGLLʖΏ1F1ryhm>^{ZqEE2NK<<Õ:lݻ7f ]3#8{]Wn<9tm?'l6w̰U10`{],2Փ\.C}{~ۄv s^Fk8T1i ;/)W ëP{8ZTgf3>It0?VFeIPd4~.hʹt(q {@%_nڤKKЉu4R\"39? {ւ Z1~ o,YfArr2.\P&AOw&55?OrX777̙3GoZsoLC/c>??T;FAA*Xv?o '2{#BӪ {ؖVG`d%>AMv׺)b&"" t&-Ê Lx"9pF78}ٟkKL?.sl(3xOciޅySDĄfS}~U:ڵ3J*x8eee3t BCӻwos7oTmn͛7IOO'##;Ѧ5U vGlI@B;.8D$BvCWp0q"tp,ׅNuwbʵ` 35q |g{i 0ș,Ka8ח9ɡm71_&*Tf@ SCvy|≅VcX4nJI%='iom 8كRV۝*3TMNئEndh'h"$'>{OK_%CS !޶mHKKcԩtADT*VB/0jW\ʕ+=Q{s_DOՁG0#"Q *т .) Gpe?V㋟ !jmu̠ *s4ˋ)1u[}RLY9tjq\J*~1K%>~ec %ܬрFC ^t` 3)˗/UdvWWWXҍ3FCKc9~BFknŖt>>mYg *h#q:j5 nPRmCKcdj(8{vaLDQ&QLD=YfN8՟t֔_jSH[{8Sq7ڇ˻x BMmoOG ΕPM;dB!H7o4zDkkkx|}QRR=QQQ5 J?ѹsGk֬A2uTe7|Ácɒ%A!# 8pt3G0uT… AԾ}{i߾$#?JF!33S__ϠA|dd$]vƍ,YsԲEEE,8p Yzmƒ%Kxױ0:O:t$&M/%%%$%%QZZʬY8qSNW_k)(z԰`W^zf֭L:???o}HKK㣏>{8 `x 9r|z-=- [nğ'IX *an~o:VOOO***سgҋL ]]]|ѣGݻ Μ9sxW8u}1:O;v~ѿxT*K.eܸqkN=@(VBlll8p_~uB<L_C}v E`ooϔ)SrJnݺf/J3gغu+%%%0vX€{ݝ֭[ٳg޽;'N՜SNTtYd 8::LVV~~~:t;purr2EEEOΝ;u$&&vCϏ'*{뭷޽U?,Zooo~G>C222h߾=&LPҫ߹s 6piLLL cX[[+FŁ;v,;w^7T*-mҥKlܸ|x R7r1ܿ?[laɒ%J|rUM6ݻw bҤIJK1ڐtx"[l!// ]p?Yfen޼Inݘ1cF{nPۊVرc̝;lmmqvvUy̌Rt҅վy1yd=J^^̘1Z `طo6l`ɒ%3w\`ff̙3Yv-`ܹ1n8^~eƌÀ mݺudeeaggǠAorte ˖-̙3'MDLL>n:222 22z JeT:/ڵk_ިm)w%%%ʲ n߾o[رcW\QO>o߾,Z(>c{-mL8?G5Ǐk.OΫ K.5Jpdd$ aŊܸqèX\ϟo~_hPqq1/b] m?(-ZDdd$}۷#G /@AAuuu-s޽h4Ο?O޽_Ν;s=~;ܹ90t*--;7͛7+ 8s=ܹs`ڇ tn+/^Bfg(i׮]T||<ϟ̙3h4ܹ?o^~e%j_k'2uTlmmYtixh߾= 'NdΝ~z222?>LMMϕ`ҥMl(/r)6nht:poooOnTWl{{{vɓ'̤=zPZZJjj*ӦMk׮0{l IKKk5R:x S ufϞ6y=4EՒŞ={=z}|Ouu5IIIh4wު</ 1/2_}Q!ƍ#$$vLMMLR)]4MMM3uT<== c ͍AM}}=fff-ĉܺuYfMpp0SLܺutx2S!~) U+..& @oYSPYY… e^ ^{5BCC޽;S*K#FO?%''zM>}ڶonJy]ZA(g{g{wIJJbӦMzR|||>7p@RSSYhaaanx:.xp;vTZAAxzz*W{~ m?''\,X(++kuiMNDDѭ[7lllDo;;;<<<iƆj,Y41Ѱ˗7o4]]Ą(ƎyΝ;>}'|k{a߾}?tlMg…s1vMNN/iˣmz 4'??ZwӠaС_5iiiTVVjGu驗:u,n.B h͓7g8 F/\WζmHNNoFzz:_;v2%0hH׽Qɍh2eJ@Um!gggp9Ο? d޼yJ 9-m`OV|(<<\KRT4jjqi)XlSNW^o?t:ꫨT*T*NNNzǣ z? ▜8q&g߿?`ggרԘӕ fQQr|88849\xP&MĂ 8}Rj6-uvWj(cp ݝz~V2}ZMnnnGRѡC!!!ر7nУG<<)))8qBy="";;;VXtO[t)۷olذcǎQVVƙ3g333.^ڵkˣ/*ֲm۶fv 0>ӹtk׮ĉ?4%--SRRBJJ [lQ#Fw^9Bii)}HޯիWIYYNR˗ Pw=JNN֭T6~WWWXj׮]#''+WrƍVaøz*7n x 嚉adggSSS_Я\RoFEFFr%nZNNNӇUVq%rsspvvVqeL괔Nnnnra]ڵkoӖҿKN8Ann.Ga >WZZJNN={|0&O2`֯_w}G^^hooo%lK\sh;f p+WT͍9uIIIz7-tAz?'##kү_F3O6aL!.WLJiӦW_gBCC T*L>-[BN S*⋬_ŋcnnN^6lRm6e &(J7ok׮eŘҩS'f̘@ee%$((Hy^z͛7_p:v… cǎ̞=dpsscΜ9ʝhjjjضm_~%̘1injC]]+VΝ;xzz2|,>>^I]vDGGͮ?~իWӾ}{̙-ƌ[Ni-<<'0}OOO^xnʷ~Kv툉Qu4dxO>z&y޽;DDD-OLLdƍ,[zXpјtmP:u֍ѣGV%22pG'OΝ;ٺu+eee2fl:=Jxx8Dٳgѭ[7Ǝ]`LLL5j| eeeʴaaao~֯_ϛoCUƁ͘1UV{O<]???Xb&L ::ZBR`֭[[oU>L)&VXZ7|eMni8Φ-[ңNo믿N߾}g޽˟'OZܯfɒ%5Ç<N!ZkΜ9zc.[ÿuezVQT7~Ŀ_WrJ&M}>#JU[[K\\\W]]ׯ_g֭G{B!?SӇ+W?%D[mU{@~iI,!B0!~LLL>|8Ç6,]TB!2 B!BH&B!vq+ IDAT !B!L!B!$B!B!B!BH&B! !B!L!B]4 !BXxXJ B!x,% `B!B!;N?\vDdDq7pԴj*Ʃuo5Sf׾|il1r54pCEPe_\~ 7bii=z=9s>Q:^dggzYʯ+b42Sev?nm]S?eޑHnnDnO_~Z}E ??DDDDDP,++SxM>^F&$']Cb6/-uWfރ.xd"nwm=!1{a߹庀""""{sU7Fު@؃`dži^ 9wch +n;vs}~DDDDDje4b[_Myy86F-g"(X?ǻqXꏓ2w]ong:\x} z؉|:7e_V{ }Hp;O?xwϠDz.%&cLLۏάӸ6ʡU )S-Epׁ$5}!7,r]Wg8]Lfz˧WPٍpkvU|ouelٸK6}d_ T܁UpnN>y4ҡgΐ-4id΍u 6pmgw[=x 7t~)!!!̝;7|7XޤIݻ7=إPWGDDC ѷU}4=ؼKVmͤۡ?ޭҞ16XLm,[mk֛2W.a񆷋8kǪ?Xzl> [N\smLN f2V>rh"9}FC_&߅oiE)KۧsCw/qݓfҕ7v!iM0,X>(_α6&XfE-5zMueqtbm۶宻m۶y3cdƸp|*}.XCњ*ƶm7E`Tr03b$8/w/{ gTb,@}>5^yD2 KKw @}r5^kvQMbb4nx&!ʁsߣeU6md@Dp&nx?:V}r娰=SVuvtbPb lCҀp`'t&(*F!_,~eY(lcW|] b1'''Nm!""""?%나}6V\lZXXϿ΋~ַdºMVfklRF|=!zpnߍ>O91tTS|_&'vOlfGݙ*6)S"pohbznK$wU|yx`cv&o|}B",؞ڬn/F4;ό1jO6˫1) Sy#yi6k/>Fw[goe/4[5h߱#ɽ؈ 9TtgksnaDT ֱUbt^A Wsؘ~/n#A摷6ǫ 16vmạXݲet]8 ?FsSw2WqsNM /@rr2<12ϼyx(//`L>'o<<|fڵmۖ 2k,^y"##7oӧOgxxxm6O?Nbb"},ZGr3bKRyyy̘1ztR^-[oJy),cx:0[ }>#xxY}pX:zY^4I^\n9i#vi~5ܗ=&'C:P][ÜԵ<,?e_-6s,a W9n%'*ybus,۹]{4ǿۆs f`Yv:.&/Jjv>;_(D-f5|]ӗͱhn/w .NFL[[[05LuMޯx xnYO0bۅ35agvqwD5; V pOk+w<QmmuԵr|G^ CXcKUq xFcni+< *512dv6~eՔ˺{!m&g{**(ct<oSp5-J M.]=+x%ɉ ?mڴi<`occCtt4}p5GBB߿h̚5n^`߾}/h4^ׯ `Ĉ/aL4`}SUga.x͸9:7ҫcռ535 }C:e_Qc:}Y70*Dum eؽ ~`-99虮~Kv]Ծo?wwSZ]ŝێ;XӷZ垝bcߛ "=z6oɺ(1Od$tnh2 ")fV#H  &f'˿(֍>vfy$u[0gu FW_d`pÉWϱ%ur$O Ё3C8q&i(6~ePcD|[.?Y|Ńnc|3C'Rq [f|37vh.ψX2%:zgИnyq}D"{@c×m}`oB7 C?0;-p90[Yz_9}4fsԩ+l6[7w\~m|MudKZa0YŅ>}׿/guaooٳٱck֬^_fNQUF[zb\?)(k!C1xe޻>~_wVe=1:&En%=:6D¬',G7[^ ~Nμ0Vڸ[;HƯ;qA!,Nʔ~M9170{sY/:kα~'*qu TcbL0525{W5+Bu,v1zG?*sLؠtڏs{⽠F|c._g{]ͽZZ4kffg^qa lMv: y5:[z"ub gr6VoU~ k<u4&=;"))5kְrJy˶yM.](,,n e[^y商?d5 N;8qe{7loV([[[ڵk /}ǠAٳ'k,ZK90ܹ?Rȯ }3&è85-ԧOȲg]Q λ';p= rK߆+Ë v9V,JxWk:϶-뭶i3C!|a59yi1:WkXDi:rȯ!22c6y6le[ɓoxꩧh۶{/{ˋ{'ORZpcbLL :/?492WN1;Qݙ32/g<<|< VW5[|h' KgQV:z1,ӾO6Gr h}WKIpnq}cKDW!3z.soŸёg}g}{';;js=gur r{nիM7dzԨQ5y5ͶSOSOh\5llx?wʚSxx1}Hncu_/Zh{ua||st?{j[7E_fe()if'ѩm}&3㜃Z4h~oa9=g|a!2_6(}%5%qZ["gy^{SyhZM727׫zR/6l`Ehhh'""r뮻0 GMn|}5IyoU(菳HQDDDDDDLDDDDDDLDDDDDDDDDDDDDDDDDDT"""""" `"""""" `""""""&"""""&"""""&"""""" `"""""" `""""""&"""""&"""""&"""""" `"""""" `""""""rlU"""?:\Z#QRU:UvF[<]\&/^pEDD.?DeeE/ꊭ~ED~/NTJ*αxbokwUO4EU**dEv<\\W7}"" `"/|mܸ`ڒ&;q$I!{>'B#ٞ5#:>t0KL&qttlr%%%RQQge?M^҂,ә8q=+V͍~*///gÆ U?nn3w~ݓ;7((\zN]vJKKz'L 555ٳe˖1qD\\\cժUqL???bbbti&f3#GɤNT|5wd|>|ymQDWQE.777cqUL ڴiCDD*⌲2BBBIs;ȘEj’"cXw`_ZD.3ݩL;v7owwwzE@@lڴ<:t@߾} prrK.DGGm6iӦ yyy\{^pbcc8}4| Æ }-իW |@~ҥ rQF#aaa ;K,QQۗ?ݻ;wr7ZoӦMb0 wޖ?۞={ȠR۷ח*qttO>tѲٶm&;r~yyyQ^^z"00:lBNN&giܶm` 22=zp)>SlӦMzdeeYՏlf8pHΝٿ?{&$$-[p Fm[>זwww233ٵkNϏxڴibFqq1NNNDEEY3eeeRXX#;wk׮CRZZJjj*ǏHufYvΝdffR[[ã8\ZLiUϾTWǢ][#C(EFNVܵhX2 0 qgLLtzɿBّb("K D.J=hXpƏOhh(V -[PRRȑ#>|8'N`ӦMe˖ĸqӧ;v ''Dz"7np!ߪ%%%1dLBΝ1L,[ ѣG3h <͛׏o09yduLqq1Æ cذa8q&-->}0qD:t@rr2555Vߟc멫ԩGӓǏs,,,#""kpV^MII ֭$&&2fN>ͪUqQjjj=z4qqqܹTL }aʔ)5}~3rH,Nk}4о}2vXXzv7`Ŋtؑ'һwonÇ--[3cǎo߾٪:жZ ZK'ܵk,rs#tٿ&s m"Pei1xޮmZUh!c>x$^.|;v?W@/L-`"dbΝTUU@FF:tK.MNN111ヷ7 ܏vAL&  <<< ++-]ر*\\\8tؐu,Wkll,ZFN:-a!!!իWӽ{wK ܃GVVjÇ3~xdzuV1 V1vXK G׮]ٹs'AΝe߾}ɞ={h׮qqqxyyYZ[{n-=rB( IDAT lmmaѴkD͛G^^AAA@CԄ<==IOO???F#K-33hԿ/<IOO'..*ܹs)**j6xcƌhBNaa!۷';;Lӓ=zX갱>ε-TVVҳgOpss#11r앖B@@~Y~gZ4c[UgGʊy9 Dn *+՝I=v_5ykxyBn311=w2)ͺ>ml4Û'KCT:Ż/'.(#̺~ ˘i-GJhM-0AGo?VMoܹ@C=IIIRTTDII s̱_WWg9֭k׮@BBB,'ŜxzzZԴkLYY9G٨U3fL帺g֮]k7liƓѶmfA\JKK >0`{=GGG<==)..R^c㤲* fBd͛7e^WRZZlӖ.xxxXbÅ5ҭ[7֭[GVV۷'$$ruԉK ZJvq;Z^ qX{ҷ2:O_3'>!o0:z.^<6nx8Ř"U`7-!XmEULK}}=/Z&f垝z1x~n .\d멈(\ƍ Ga֭֜N:5ϪļCL<\>7|CϞ=-{yyhZKr!<<|8m۶M6\wu>|ÇNי.!=B2=Bj|t1tѹ€gӀ.,!)n}Z,iu0Dv%5uqփ9}11=1 7G']2̭[֎u&}ate8 b.]Aqq NNN8::b6ٺu+N"<<ӣGveYGGG˲...-(7Baa![Njy[w;v paf3EEE-c6-ՠX6mj19r@nS\\=<<(**A~~>sĉOkj(--jY_66Zުn욵/BYYYc{Ў=3ڴ)))Zg^^w`^h[HKKŅ(FEvسa4={PPP@ׯ#F 77hKLZ:.[2S4fs=hK5yr<=v2G2.4ֽ{l/B4vF]Q۷/رcp lByy9|W`ccCAA)))Ap=44-]WZΝ;ϻ mڴLJCYu5vɓ_֭RSS  q'??2RRR%<<ƍ9qŬ_[U=z8[S]21LrsM~~>{졢LprrŅ06lc())aڵir?ӥХK~rrr(..fÆ VCqq1ٔy KFF3|jkk[*++ٷoEEEcqBCC!%%29† ,BbooݻIKKBJJJ,lذGRYYٹ ..UUh` 8 Zm9^QF01Ɔ.Duqqpیmfz*ʟM("r5ҥ/חP6mĸqdС{n0ލF 2T,Y`m۶ 8hdȑF#!!!zPoHHUUUV<]ly>>>L߾}dĈh"gϞV{nhIIIle8p ۷9Cee%8::K]]MBB[l!%%f=ٶm7o͍$Kӄ6ol0 #G^T7  {{{:wlU~`` QQQbccChh9ao8;HIIÃ8퉋c۶mFN,rL|7888eBuxm>|8[laϞ=lPGf9}4 6Ŗ<@Oogmlӵ+wd| ?V}88аq=oY_wrE=XPQ!yzUoKkĜu2m:.HMizENN999ŝKܥ\N[d m۶W^Kl6[ cZr9\Z̊e_GrB٩j^a*69pՌsw宻\?7ns {iV'1 KK]ED"$''SRRBII ׯji^x=7담TWC=7W/_ oZ=KG|%d`xfx>;+f JH):DDD.-___OAAO omڴQ%L\s*_q 12:;73[®pfFF]b""&Һ֖{!mڴ}:QQQ 4˗[mק~; 77j{9 ?~ZQFŨQXrO.ѢER[[kY~֬Y\l{EDDDDPӟ`ѢE<Ӽ̟?0uT&NȢE?~<ӦMȑ#ʩgԩ۳h"{=6noa5ߛo<s=gyGeڵ|gTTT0m4f3o&o6{[n,_0`,X@BB=N/3ϰ`ܸ뮻0͖SRR5k?xrƌ|,]sZA^lC*ȮXklHk0_ةSG!$$lmmqqq/C oZ-ZĒ%KӟdUl_$""WWWFAZZ|O>$r-%K'Я_?x ի>|8vvv888X9ydK 1c#77N:[o2dK޽;DEECYyL&cƌח3fM5R!CXlIIIdggØ1c~ry"""" `"WGGG^}Qk;v,dddw^bbb,н{feF<<ZڏsѫW/iޮٳgc֬Yk/qttI'%%a2ؼy3+Wd„ l{EDDDZK\BQRRb5}׮]DDDͬYh߾=wqsΥo߾|ǖ2Kǎ-l}9riӦYZ.ӝ:ul6c˴8`i1 UlZP5kӽ{w|A/^LYY˖-3|pfϞMzz:Fd+"""&+HJJcǎs=?K/fn;ٳ׿Enn.۶mc߾} tر3gCJJ #G$%%ڵko6||Դj{0aO<[la޽<2tP<<<灝8qUN>y摗V[?w{EDDDZK]E.!{{{̙ÿ/~aJJJڵ+s̱tog̙̞=777F?/"~!~~~~7[;:?< , >>xKZw>>,3g䮻d21`̙c2٭[7}_W?\[n'Okp^|E[!C3ꫯRPP?O?eZ~xWDDD ޴{?\-.NO`a(= _muqZ\OՍI/,Ջ1CAv.^ήZ<\OcQ882'u-3>y<~Q<8t,A^oq9Ž>m$*jNeG}ʔ~c<?>:48ubgoa>F[Kst%~" `"""򛐼w'Mӈ ̧2 cWxMQUgZh9;zR;E[Zozo* 08p( o `>~ rEև 6ԍo;ߪE,*"u kٗAƑ\OIn;agŽδv2f-Ƚ9[,` ʺI?|'mӕ9t\v?i;82-:9tL[s nN?: r m<6`vx{2f~;gdT%RoN`kgĠjy=("ϷMW &""" T`7cchκ)xgkkޅWV/&H \1=X+.?v_s9*kN^p&L`LLpk7rL0CYv={g7O*f-'u:n<=v2@rgS7;p7U<`;Zݿגmӕ9QZB""r u\_˴y(2(} /à+[M?xe w3l=e5մntm׹.n{UR3-42Zkkؖk}neYBUS<}6> Žfٹ*Ӄ d߱#s@r7>;0sWFta1>kARKQ \vC;UmL0 [;fՍWU1;Qݙ3/g<<||2=cV& a_%dlC/83 oNPZ]e^G@Ze'6`n,؞Nm"ʿ] [\Og4g `\*jNq%?l#m{l 6Dw<\novnƯ;.m1՝7&cc/2SUSӬg;eꇯM{9\ԚADL< qVDDs[ŕwK0 [qstbΦԙLO>xXAώ/;>q2qx7}ϲsc eoaaֵnwʽ@3={1A|8ϗnmmy鼞W-ium.^4WV/Sk2NŪW-;k͛O3ăCZFYyՍ/6R][CG IDATO[?{o$Ǒ=yVuP8Ilpzzzfzwݙ3VZaKHfll$3XiMy gԙUYGf>dF{dާ 7?}6/@8f̯’ yj۶朻m۶9ǟҍ#\''`&,%WJ}{5ʉ 0‹ @/@ 4 #E @s$0@ @ F xA@ 03@ 4!#@ 0@ @ #@ "`Y?Mk @ |@@/@ DK@ 6"` p@ WT@@/@ %E @s0^z@ hA #/2_@ 4!@ 0wD e9EA @ sΓ"`rR[E/'@ ߙ !#򲶏^f@ hݛ/H e$aǙD/ ;̋sN$pIm"`#hte'Rr|&@xn'1O:70·NcƗ~32@ 熟'ƹ:_!'dW<ϥ}rMnܸ9~^~@  9qƉz=y ̓(sR{ |s۶mo=b2݋֋UEP@"O 28J.HOgYVoQzS,"`dRPYm۶E_mDN/DǦ$eP'dXYx ·FXt >:OpȗJD&<3u&+EcE"&4EkzM2` ,X{yQ\kM[zt򧲡H!N𭐱 J1o]-Vϋ^3"RɕJ,B\ʜ %?U[Xu}IT%`SmB T2-%Ty^/C]"`׈e(]%DUK,W¨n&]"iDP*> VmD *ר0^"(ԥ1щVa]q{W7_Kcq&P73ʱ~åSh>f`>сuaGRiCVq&J6&Es̓&1C)@kcζf~98cd.Նsh8X'ϰ=OrxkͰ>.ٕ>b,Gq}*םL?~wpdj?h/bvgH:p!Nڐ<ޤJDLUʂQD'N”pERERX^/#1,|^wp~ ۩n\£-ذPc͑},.yn42.㫥2mӈ$NT,,C$UA\:;ˏhX(α],޳,{wponn1Alwg0;+MQb!ep~  xiœ,o>ŭ2Fq)i!9oMu ۸/#3nr=ղSud{V{;본ֆAtcHxI_3,aawu#"`±Z-IGL*13`&J &"`7ְ̚qTr8W%H{x}i}؞NugqQ W~fYե|Tc/N7VB~d[1~e41]f!94{ݭhdqvwpҊc`V@ U4,0D"F*g{t ʟtk+6o/XcF"~pXPQNDc.d`hhk :aHWR`av9a.D"Wǩ# @ň2rUsM:^J,^o%;|w|$r fYX5QS`hwzH]'"!^EPg upjp܈lYSU^Í^5aFJJLLKueGUX0Wm^C鈗&ɴ #0B6wg\a޲MeecNU(qАJ,'vQR|XsXwT&J`%{@ pBݻKcrlbB- dc?Ds}0a*y[ ,X,'LX/ˎb(] aB\mwdYv*).$^#u:,G4wK?nG0CL%U$(dUzI#$;ѽWБ"l2>0]׋hBy8[.M2]`sK3XL7;SeY2cYB^ d1'˭`j'Vks+XG;Y#ly)d b`XM;5YޞY g{`$Ea35SģYGQhK՜ZjWA_XR% 2fj Fx߃5D="1􍡼0{Oochȴ49&Ӌ=Ţ +P(Τ,IvaknO.V2Cø0a;p-:ZZ157~v \ig~$. ٫-HV=ZR }uֲS-aIّ^44 ': Y1)^ߑH$ԵkE[ j WD^g?1>_F!:*]s.<,(Q$_/;F]_#‹'+ JTf DL+J¨x&# phʥ#&bxy]a-0($z^/JXm!^$d(fAE@4F#L柭SMxឤ4e`b)O+REJێN+tbSF28fAÄ0j*a9^s1GվˌDBf\Qm~i,~2\ **^7M4#lnC A\U[cV>TĤbZ.pk@ >`&TQTKxX}C;c>adJ"Jɓ`g D8 !L\ 5&gX6y 줵n[:鉒qr;j,3-)di3-/SmZzRʔ+H31iA0@R0Lwz,E "QaCI"L$+4"'4sQ#avJ%Ѫ2/ &X86*0q9f!Smc0x=%y=\?W^B!a w:t{-^,StKY*YD16;ļzp"3e5H!hY1^@ 6 [GP=:uTum> ᤿ͯ%w \qo" ǩs^GHW*RƔ2&wl`X}E{0nT!. :=z{EyF ,UƋ \ƹ ,fU1-cXqQ&mSmf}@D܎9G]&*")!SfpSLGXL;Y/&Y e^RNvM Mϙd'QYL\ e9`8M%d]1@FȀxL*u/(e=!((I9`n{UP}Y>do msLH=,@ /: :. sQ>LO̝) 0 R~M$D#TN}4C![ I(^8S}|ʖΨ:C+)~"R"8IooY_>J"!}U|N"aUv/D Y&p/q,R`MʖϜ˙a@ (aϯ($&{ xq}qCTL G;'(^qܧݘMB+`<!vE>/Sȅ%w; !_F_/w p7G-۶+$OB%l?L(P]:i{lO4e4L:Q3z) 08!@ /9 C\Jl"_"n=;s K%e px0x*vQ a;F/a+|*i!gTiJhϗh57!ťbX%2 -<˲|Q H8wKI +m]V%. Ua .HhSZJ"o&(WSD@ D¨Z'N@p 鰦 G3Wbd:B "j9Wura>ҭҐhAC^gK,ZIrPuPBT 7؆p.tHt.?S^xm%Fͅ.*#uAIhJf׍ |) n@ cD0:CR"`\-<*`Q gI>`>8ay>8=d;X,V(7xm~|^"!6t6rWgY~^%\jJ#ag!;LcLÀ|fUQT1f )@ ^]v( 7E >Mї0QK!>_:̜KuJF:5ItV {Q0JGƴWX$j&- te(Yr.!.V%t&'| TA UOJ #TƄͨWsH#\AD*1a}K֎C8}IG&! o9\TAܧnt${pM݁lzJd{:z>/ʓ>\CYb(4LT?U5jO2dg}Ha?F0jX 3gɡ%)[>_j]̪/%Pfئ%@? z@:<:$Ň+2?I0q{]~ThHu>_{|^" 0Cec>;q.FB!M}[V[""-Yke,zOLNN~=NNW%rjbl/':@ cD(JQ 8B8UVxbf߮ 0 NV &_D=gGzkClNyKE0j>*ɧgrsq7@~"Ys# zo3)` X*LOs?r%rqr- @ / zxe "`I!2 S}Kl*l]qQ '5ʖYL1eN.YTN35`%w׍f]K.4EBnm%HRd#r")].-28 $, nHnqb4CE?,FH7! +Nj<*:Jo.HarsN2%Sś SဥUf:K `fβ4@m]4C݃Π/caCz)F%V.n2%l8]՗"":YU |bXJiYncyJ4Ip`HjC_I+&ӶRb6@ (+, :8 ˲£@M81+B}QZ h1YeL*g)`@xI!$&m88|4D50=|^BWDL¼Lө\!0ɷ q"fBXz(Q uBçQm m!݋S%c$i&?iP砀Iia0F :*:)ukӇN¡18 Tŕ2s4CµyIk*Q+B'$U?&|!FP4An-.ҠZ&Q0+RU4 Y6aF #yc.&j% J{~AsZG KG   <&(^L Qy|LA4L.ZP yI)W@vT|^ ϗWHcfr %؆Km6 DL$Qp/^fLVcuPv L|s?? ~- kMNj"/0Q)>~IƄ~^P̔nɰmHeV`, "=U3%tdʁ_ @DbU~+U"1oA5Qq!Vjz=|&U̵^T|TU~(%"K㟧"Gpt[nhw|^GRۺ>W`B|KGuX 'j!0q6^ T{/HټL7}C h%=."kF "_04(a@HtV&Y IDAT3חb w*8|T8-C~"~Νn¡D0+[ayұJ$Fo @|yNdYRDb~ٽ/ϠΊG3}l{l$x#';U$x楯}ʖ_bA6vmG!U !S ("_Odg K%?|^^ubúhqHaݦ; vry`|^^Y|^b0 ۃK+?t)v.0d$&XYU~F3 n/𰰅D‹Zu0 22l,RIf|ЏSg^a rk||/d>/ϗ(:(@ -uR/0\\(gWaT.̃u D5wنPDCxKgEX*|^&(>LӾ%~B8vlepFeo!ceҽez*6$<)mTAY1N!0E8x*`͙F0*ox" hfZ#eak(^.!'UOT0!_wg׫xvLN尾8~jӮ5/\zn͍ 7◷pb__-5\=߆s9Nagz S;8m'޹ gl'Q@S6&p |vјݑno|8sœ _LJ0ܔEl%_nLP}Fan`} nfݽHD"/r):uߦP N"Ўws8l?i.,7bXRX=>]g:n%ܷ7Z$~#څA+[4ބ goĕ|D"t` 0Ȧ4hϣ%NI3jN5e,`ȴ f)漞ĺ9Ey [lOh7W?FXc flc=iģ~ysI& Ipg<ݙ-pqۻON]ͣ%@c]?X4Y_ߚ^ޙC1ހ~,l|RoCx t%_ Ģmjjaσ), LLֽţ3;ju}4bM|ݶNe06V1҉Uz M8n0Uvl% ?'o^J0ⴷz/?[G{Oe҈bj?;x.Y;%78(_=v@%=@ DK~ǁۥU)+`ΤP Z.(8U)3seM '\q ]E;xB L:OnqrnMTqr;/U}xsu6kG2na# Wޜ4gx͝}gϮ1u^9>~D$R(Vwo>ϧ/H:2uhK|'9__@ :yGċ\AO2J$>OAT^K:k 3i8C.`=> {`aeƁ膭 /0AjMyXmMWwV_#Wr۴{X8F74{K6Qic1^YB+#.ųܮ>:GgVfX3hJ&/9"R(dbqE+  0JeJJ$/vM7bi'lL1ҍ*eV~{ x}Lu,Y``y;gǚ+` 2hFveD8PN܅Z̟O}$1?@ 䊈"`|^bys>/`.ZSI*̔>/ Zi?q=s$pQ(Q-s ]3D-9_|8g~mi,%n DTNN`8l^ǘ&.GhSaʲD%lP{.Fd^!Jeݾ3F|DžJ p3h1,4DbNԣ;spk# !k=bRV >>3vRB ٷK-fF $|+,(gW|^ Ay9# b1ux,91P(!UC:nt4`j,cmk+ǵs=(K4`?sډh%_Ko f|^YkU\<(Il`gpHĭC2pƄ[(/L1FYJ?~QMkCܓ:VS$QqS A?- (;o[d:I#!,"E6`:Ss#qWSPeyJy2+݁::KMLOHJurs9 $8<\wOY]ٹP8P*sOw:di^IoWc 0vӜhG=FX謯øWQ( e}6 9sylѕC,bupÍ`U 3(0g3M8mI5 fE*L~rx+ew(e-6E+}7Wn+UI|^!) >=nJ@ ^O&quG0E= z`pa00ul?ܻx"~\6"WW]qw"X__ߟ.Nm>߅|SV8ǕK9ZЏL*?Z]Ax 7C,j?:L/`w{Fn=5s[x43^*koF2M` ~\QX(6/A\jVVshI%O !NQ0A>}皛1A A[ +ToI0Um0o pp3!*K%0=7b-ز`,?@$+E- nbbȡ0&pf,I wl6<)]fW_{j T&LAd&̧A$En~>>Uob)_M?`C=AQWbjFcHہ)=>߮=qQGlC  S/$HZ@C]ug48A2؃APh*- >ɲ%-A$)#j&^´/|_hSQUTB%FSWIIa? SDeKεܥϗδMv ]H{0OL Tp-uHThĘ0]^B>EeZL1ED9^b>?F&DdAI& D@ 73k eߒLr-%Xj&Ln(ċM_4շKÉ*C&Rwos2m{,\'saZ7C]q%1=4qÈJC8j?@ A:Hs LXczZ%dAP(`,~\CDHP pJvuB)Tն T½}S *fH%g菃߼IM+՟Ҕog@LTL @ x ̙߉|BS>/9O3\ @oVgZ<{0~{h$ukxTUэS}Ӷ ǰGi&2>5>.)W'FTM8"光Q8 |^CLR@ d̑YX ~i&>K/*^:BCP CQl9̤0fPD{xMwte0 ֘-H6``v ?U W@ ^]r>/@wq SN* '\2ʺT ]]Xh͑U{U󒒧1U?{># 'Ej |E%2&fJ>/%!W2y^DFZQo&ØFUm0CE{0hb@ #`,\Bhya1\|^\zX-sAN) 8rxpJΜ=H(|^zcyy}ގScdsBcS!oA]n*6.|Yp>/L0(\l3|y y @ /v 3ʖm DYLus)& m,C:dYJ%RZUL)c \Qͫ$!෈KϗL*=&hnџ@ b X`^(|5^\r/]DC<( J*H,l$첍G`~nс3g"XY^Ç(HRC{G\`c gύWr V؈LܹaUk{888@cSϝC]*%r䣏r[okkkxxs9$I [_~`8";=޾9~w11qH$АxIi覟P O~EP7f>I_cg@ LUB`r(v-lo4ęq\{:(y :ŋ;sc٪۞etvuggC?ׯ#֗7]9=P__|?b_{##71%:rRkf]A_|^x<333y(m|gxpY<|85 _>/ՃpʹI>`!y$>9@ ‹&`n=yi+)a膆0t.r;ҿkWВh/ᛵ(rpTrM90::F\x hhlĩ1,σ t##8;>9 FOB{{;4Ν?m䶶cFOuuuD"hoor4wvPɣ ÓǏq)u#夨\ʲ,D"Ԅcd LN)D"d1zfgZ\\.\D}}=;:0vz ;{l#YDKk+ \.ËV))pygى3g12:h4\.WuoOF&A_?0{s.DKK(8"2 ::;ׇ9a ˣG;Պtl&"#ˎ@ e@ФV2hA BԯV+)w^GԊ#"y-~ +tR|ԓ'x:5m8w< Ot]f_~ve\.#{xp;弢WnĒւuvwam籲f$I2߻N}7ԻQ{&#F[{df<}͏R{{{H$R;;;d`Į`= ށ xKQueEHx\r؊XJe9{żڷ)I}s~w¶mi˯d9T]ȠRjD7}n5Q @ /L)SP12PM KgXKRpκ6wP,@T%$օ堧M$uCGuX%M`c8y[xl&#|UD"0/E tGkc[{e:Sq;/W=/{%17RV[Ԅ7D=/S&ȬbDgeYlns[SP__7|S8.CR_PF3dPːLiF @x̯qf_/yRX=RbeZ=X*>29S۳x5T!EVC~5 hx>s_ݼ~d23ipαVRrgϞX(o` ?9߇d];<{zrTB$x IDATmm*K;03=Vp "YW|>^r hTP*NL6͍ d2,檛\p@$E")9Lm7 XYYAP fJގv|~tZVes9Ũl뮲9l&[!T;L3ӈcbl3gjeFL5fpFto[ F 2 wL´&*>`"1clr;eБ,=xl}8KڞC+5mhimwT]ݘsk( xpn}K߽ŅET*!QLOManvB_tp O{tuwcii0tGt)ggQ,0?7_T677߮:?D~'9L?Ȉhvܛ@Pgx<9FId"9.0pw;yn[&:"FH&v_/(XHG4on&=B>>QEnq|u+rm/o䣀#k176" 73y1?0V>_2y@ WsMD6UJ)*]x`8-lU׵+YٝJK-gїdzhgPMq|GXYZF{g%W_öm455 U֎31vwH8}}(Kx<9dҸx"iᵴ Ẁ6&Mbҙ .^X,M;8<_5 I[ox<9d]ύGL7>{h1>9qpD#۸;1_}81P;}m㛯BTB&oh$bC,%`/_n+'ߙL&+oWxuuu?ND,;w.>D::14<0BFqA}+us|Yo5}z1@ Ł_rDCٲ:S"z3] ]\nǁ]m|Ŭ(^"bV:>9zi-*KBu[:1D_S> |'tVWq/?QşJ_%CY1,.,inَoS,A^ r>}-!;\%G@ !*Mvqu>fN뛵XֳapCo|A3 {K۞ez 'b< lj ۥWQ(#ڃ˼@ݐ+ B'pEV=<GR>{@ef\FH^olMfS4CUZǡ~B @xaLp.E7dOo,%2ư[I6<_cŖnZqB\)_o>=v :T/&neL 1T82ۃ}$Ud{/KT Z)\J<:xjMDNɌ,Pld 8T Z;@  &`>xWM>/q'uדhvg[љj[mђlB9/h溢lI*>'RDWϘy^eZwhni?l]Qrֹ2@|^&\Ok6UbR V$vn-3rtà|^0G+[z>ϰ!@ G|;a&%*<δQiˁ]jtV|rX.bk-&fN]\Y*^f!$9}Ӫ\|^'HT.9GRe J-m;`'Z&'K ϫj* D>/[@ /y9H*AF0TE6w$\|VU2Y7k3LmJE41]F@Ll_n[Ω+KTL$7Ufۯt`60)`= 4 H7:o8;\ j+#)ИTK17c.+`rM@ %#`TܲsEgw\jL:SmYQ,kq-&LfT|ϖo :OU0=)`ߦS ~M>{V|^}t*ƞI#@.:Gy51ļݙVx*3إ]ẘP*ʾ˭kFK o_Do v d_& b Tq!eb4z.=z泇Jy(U?/)/I7@ K(4\.8&|9e3³Eʻx"bVhuBi.']nG*&p v̿K'3h-C0=Dre 0h]^Ft׫a^ U3~[[6ɷ˔S$LBBc>/gAْcBg%@ OT W\(PI*/ϖo>Pt kvq>_wFR{)`pϫ F2ܯA/Tpz>Z]rC:{ ]PnzfX{lك@ b 寒}*lꗈm|SN,k |mt3J/L/nײZ(L>JLOoO?O=d}480ۉ;wpҟ5Xo؀s:mٮvpss5j֡Xe0J62o( 3@ KD4_E/gir {PZ$ӥد*a*t]bDLLhk9Q }.OE8/'y)KY޶6q=[-Y,-. 6K(vi)>TCgg4Di*J%J>pҊvI6֕PiT9&@ #@x XEn `t1\ߏx$"z mWP4C=B:)/BLfXB2cgglMGC[ [Z[}#kmw⚈ .4B9UCW* K)/'PƇl+@ AyIUJĸ'Ct;:܄"7篂@_0Ww7;s fxV1d 󰪳bwL`mm dr238?@Cc#ΞG6@~g&802:umu _ng唉Y_3|_ c øz6dcioK-3v>ZO&'qX,sΣ''L&\g~l& .E*B&"=x/ahdz2!0|de466{H$GP|;lw&ԈT*rO? p"x1" ඍ>l/]BCc۶lbFFGqv, tww!O(3~TϞbanOqYttvz >]i_6ŅЀ{X[[1v4$=|%wv0)w:|M bmu ,/.1 v=zV444`a~<˗1<2͍ L=yaϗW,'```.\@&ŝ۷ԄT:B9 'O`Y0|( ӧODτWծho&%I~/IX,Fo=@ kr!9 )R ]mYgUH"fɓ?ҥv)ܥº.ι[P4:v M;8w<"hi&z{R C&FoՅm$Ҹs簴r (856t:t:K@4Zεhllԥqhmm"l/! %JepΤ׋j S%ǖ.3.ݲE1XH4Ng#*emm%ٖ+4`̶1xN;=VCw꯿Oevfޮ Nd`8 `0R91ao3)N:qbk{k ۰D*]$XǏֶ6?E>/cAd;;;eP*Q) d2rG,CE(¿}M.}ѣG? Z[}x "IkŋC{G'í~%4|>-7!7%YB:O$HF<^F+kCSakkes*̈'N<~g> +uuY]ŝA] r,/{t;;q-{*:όOU,=w(3sOhf0 `̮{JNL⋎OАw$\PT\ҡ:t&Y!LB(JUs33HRhmkEk[+p[X_[bngΞɞrqwavf-cee(b1;`swATLcsK&LVs9lnlɓhnnAW 8~U44gϢP(/w҂T*>]N3FΔCen1[ʇA{niq .^@:DTC){jvfTmhmmCww7n36בdtLף;hX,vg)IX+m&U74!J. a}RH)`TCo.^ `0 1`u2_^H/%ҡ+-JII&蠣u$~}0jBÓiFGF͍ ,,, D3| ykkkHAٹףG( (ʟw#ct!VWXXxgσ?gïWQq]LOMGb|l Ƚzw;`YiLNLXλiJ%$ [.7uu~]%.9y016NvFፍM`yyXXG"ǡC;<_NYYţQ EcNH+T`p ccc|[&Lj2s@8IV 3 `($̪S eX`]# T+M?mqw%Ξ;)%~Fqg ]xǍ71>6Ab1wtmxSx9z_GhOWJ~x455ի})>{F4'71QX|٣nwG1pwdp<}o"LTr;;wT '-+jGsc]8~8JŒV:/_ D.S$0i(`BnrygN7c0 `|P?  cGva^K]oܵrݨ/:K%b`$cĵ7P1 e0>;oL `#ېG~5AoE]]A|TU|Uջ~ q0k `0˽~r'B"?/9+ ܆cj^8oUV0LݧJ?css/ե:Yp}Op55Z#,F`Mu/K/d7hBT|(,>"yA|>L/40`0m+]ڲTꪆSVb|<!4 #+95qc(xdj #~tvvi#% gg0I$tJ!#w2&Dˊ+llV*4 8G~^T) >ffR`0 `_fBm}=ev%(s/*qWJ @!jT"i)ﷵŬO Ωyό @>l ,--LOs > s|vyYE>Q9c0 8(X-LQԭRȍB?/%IE?z&մ49+Kf(> sDmWaP iHZ 0F:pH=s!jSUT3SQʇѺͬiVenHK?' VQu2 `0N jP4?/!SB*"*`VE=*`a,ŴJGWX" -GW@L?h 0- 5(`܋XXc0 8@rOQ`I I?/UT'=S@jYNʇq/o!16xǁq#|įH5c`0 !'xi~^ Ey7e|.BSxaHjWw@).U1%IDATYEH2 񡬷E/+9꾫:2I|*eG3s̹{ޫKx?k2 `0HZY^ٹ]TW }@I~Ø{us`0 0+[I2Uc,oW#$ I?gV-eSJ?077od7TRcvIZIZ RłgA4g$oVgF9NJ.~^o웩|@r,^QV) =Xhv^E`0 O_z KP[<̳gxt:sqQ<"RrrO4bvvO;T*СC80&>2ɞ9u Ob)gHg2ZRɉ |9R\@*ƒ{+|WxS)%K|hllưX6˗pELcXYYytvu\yiY=Q%>ASS,0x62\016TytuuL‚"<}ׯWp`ii /}65aa~--svvvſC`m7W֎gϞbݻr{+WՅ9yX^Zydqa"ҩ&''p17csc/^@.8z(=}ϟ#O`bb]]H%AC?b8F>DWw7$^ëW 8qgϞ6s:;f1??htB_AP@[[5F5U'Г<7Ff^بB+>L&`0 )+WahsEݰ}(`PkZAKK 韑d ׇ'(8r( lSN#8s lSvvvp%@d2GGG'$l H*!$Π'rX0x,G!ӘA"@[[;ެciq ~,```A_4. h6ɓ'X]] t xl@__/,>}7HxZ[ʊz̿|y$}8N$pias}l#bbx܄&WVT~HH*E[@W5/`0#z?~^B|O ړ_vs38W,b1hy}}=@*9NXד_]6RTp1v0=5ܫW d oH$yo^JRlUlf˟Hx~Nj%Il#ꏩ ߰!¹{QqL0Q}:o! L0'$`0 "fU"Љ"u9eB1XZ\±chniŝ|HUKX]}WLH&HRHҨǡCE %t?T*$~hMv-zNB]]&@ |5i[~^Po$EiYNyI8T__E&H%P*ILNNݻmtvuի8w>yFG53,1!s\:0 _3pSr`0 q0ryQLT_E,A2 s9,--k ?x 8ItN LOcPgϱ_H%˟ (LOkWtsX]]En&Q8 b.mam} |R x)_޾}0gxxU|T4#}X}X__2~,//p<_~`[htkְL&uRi?/᝜SжkY*{&*<`0 8@-G]RKuTRRH=oe`- ۵+QH}}8r~#N455c{{[W6,._ !_Es(q!0t6 !Sz1P^#/CCgNg hnnFk[+<H tvv]zKKN9 ?t*_pgpT ._&9䧉T$M@2qu,--~~Cϩ9r9T477 `aw׮_C<ǭ[pm!pֽJ Gjo~oɍItQT=n\Ryi,P^ `0 䧆.?/?Μ/e]YS9DJ:hH(u?/N6+̢F1aLQ%դZ\|fB).& =j0HX|]T/qy| F(_#J_=`0)GA%8$h?/W} <[prTW8Tׯ1:2 ./^&:::(F"/o?INJ_:1ާ^g5RDSIO\ވ$1AAqW@|YP*n]1$1 `0@q *mkT0erhВpՕZQ(f1ftvvbClmm1ۈ7o"( iaƨĘQ^N*\Ԋ}PA Kq^H2}Lo+]:9عժZEʴA%`73 `0(ST(9Z Q:{rI ҩXjmŽ4uZG~K3?٬(>UaDBVt S U>^jyM0.x??/PdilR{l a `0 1Up9Av {npTv¸WPV80)a4ªGa*L27T4o4Fe?7ҍ^ٶ-rJ2֪\fsd}"yAC̓]py OG ?/xnj焃kwk 8~^:+` `08k]&xd1Ixe[Z3D7d2Uk:: |Tĩ|8+=ݐ>t%=v;g+`މI~^9kJu `0y^FC־y/M墒*\ꍃ*Y5UL^(LX +ʖE2WꕙeJI[%' /8ҡhj UU?irA?|vΗ&P: `0 `jޜ/?KijR@y x z/Rj}pv 5>@fr *Id#'OK3 S͑D~H]D oE$%Iu*F<{r3Ri>Qw]*rm]簝-P‘ `0$0ŷacJQ&(`uES>YyjE(`Q9p(`¸~? .`jU~^s~'`0  4G9a|ѥ; W vQPtt!ڣ;J\ʙJA) [H~^9|lna{g淩j~^Os(^3 `0nKC P]YXݛW>j9`U{嫞# xA4:sB] ǫ"pxv f&MuCEPҨDR߮ʇF{,Ḃy*ɢ[ia`$k g`0 I"K]h#Z^KR7hNMT>$&%}~^&:YAd\9+:qx99y\1 }f1 `4$UWǫ,^>(`0A}cO 0>f+<ʾ5P( >/6IVʍ `4Ly.8Q#հZ0Z= rLx>> `0 1z~A:5Fgd? FBtBk93%G=GF>3avU* "j3;SU?iyI#q:u3| --JM$b.,NiQ4e0 `ʆاS*R N?/8}~^T*}К0+ ~^5+VfPv#y(C6JUй 捧pVܛf2NAaS~juC8p>vD8`0 @XdLF?+^.?/8 ]93%|JyM.@՜rh!"H>oA=KFC 7.6ɬg{Q Xד0`0QjjO h? J1?DqA/LJL9iy9AR8˝%|˥n?r%Z0P4>ESu2 `0>|٩FW%g"H9LIQ9NAG4Kzy(3AاU8pyAUkh)N8hM#MUo#0ayBJ5&%LIo 05 `0H*+ZKT0ӗʨzg\&cԪ ^QWفW/EghTѮ#v_%Af[|8r(>jRsjÕ{vyl?/oII'IO.V9_*lOS`0 f < X$DQj~^o,h9 aFyvU2PqJPO/;US'E5?/j Ň}Nc~^1 `{*`[O$-οǕ##u3 ›˕J)sL̙&e;S _6{~,.JJ 缊`xF?>-b`0 We@nIENDB`ntfy-2.11.0/docs/static/img/web-token-create.png000066400000000000000000002457021462047176100214320ustar00rootroot00000000000000PNG  IHDRX7UfIDATx^w>_ P:0a$!C` 2CdG9ul)\_%>9}(gݾp> 廤FdrcM%:ղ8_#M~}Cty\p9WD;9IԒ8W h]˘W?>sůq&kD5kkB<׋65(crn~L'2ʕK8a%2/?|a%q\QN&3#YUSA(6JȆ Tɢj8"F* +C*tJ'/hϨ@!yV`G ɓ#Y#$Uw!ćj2kͰ3QݦćG(b8"Fy*HV*D9F9;7lHpTQ`Xz:dQGE(kX TʎE&Q*tɛ'xI7IFuIA$Oʸ?'FR7G,ޞ >TsĎ^VWħZ#dE1#Ybsč~rDq%8M*Η>}A#V VҙE++#MHe +xҍ (_T0IbTT IC< 0ո?\w2TLCHު9BGbF1ta#fMiJFbsč~rwT){Xf\iXt$Ic8_*~Ta0Ib,FtFl|VF&Ra$(KXSl:MœNT<\Xh aq<09I\t񡚌#tFTV W2 ԚVTJ#p#6XFTqH· P &qHZxT(-VWR#VqE!ySO Fhר"I:a-Q+*z#$Qt񥚜#xR !6 Ԛx[7FR!*ƍ~R$ V6HΏ }Aae,HģF ++#&Ra$+TL7PQ0n &q *cHDI*|%It񡚌#tږ++^rԊ*IZ*dBJ#l#l͸+IΏ e +GLn,HҪģFQ8ŠE54 #yF+*D7O:Q0n & *Hƕq1$O*d‡oXDMG9bG+e+SK1fPat$IKőTPrč~r/5XO:$+*xq$Jw*h#&lK,~CHTe+}+a,Ib,=GtF5l6 $Y-Fb!$o*tI'a'L7H1$O +nZQ7G0Iޞ!y&;Q$aL)]Xmp"*lLqE#n#JŠ%IpW2/?|*sX05#YUSA6X)m\KVR1ŦcHT@DN%qgu ɓb"yRq$+?|rĒ$C5GD?bFQ!e*=A|59"FqԊ#Ybsč~sWt,I#F`Ώ !=$tIEҍ #yE+*tɛ'xN7ITJA$O~ʸ?'FP$z{:PMRr2tɪҝEJ v/Stɛ'xM8IEFuMt S)Ê#u7BVM:zmˎZF_j1hx[7FR1%7T V@Et$I+V`Η>騒(ka0k,=FģFpJ*dQmŠ EbMǐ҉'qT0kTT B2#IőTJCdƕnSS2fkXGPa$*D9G?9J &qHTl_8*+a0Ib,=GtF5lKőxQte+*tɛ'xI7EŒdTH1$Oe/~JMG9bG+*hISJVj!h6EVB7TQaEŒt(I)XT)È*QG+lK8jRl:J'*tr$r;1#)*~%I!ćj2Ke7@|mEQ+n*dB7-vX){\ѡ$ ;t-ُ#R%>.ϟsww k:bG$tIEP#M~0U 0tI'*ƍ~R$Q=zAEtɓ߸2#I,TG0ޞ >Ts^UWėZ#bQi %)6G'GXiW%q@O:Ք>8 Ď">ySl*vJJF,*ݩQR¸◊*Pְ#*I7a'MT$ICǐ<1>jE$ y&{ Ê' QD+j @ #Ybsč~qa%fէۗ@{|W4T@$+# /wr.?GpO&1\yb<+O>}(W= O[GQAaN&3#YTQQ9BIRu7B|&(6!e*=A|59"FєgUTHRa$*D9G?9J#D!,|juvWSOډDtQ:=z]kn6n̘`%w4\\_Ak__4/Z]a%v\cO?Ic}:Oȸ}y'KOǑ,*Q +ݨ0/lqEŔ(BI'*trT4G^P$-DTʰ!yjX1#$Ut񡚜#vZ !%°)0cXFR1%7TV`sR^P\T<VG@vVJsf߅p>X   W![uɢJ2bO2scD_'05#iUߑBTJVWF6 #8EF@Fb (I7M7H1$O~ ys<8>9BIt񡚌#tZQ+*hEt3#VLaE#n#֎+nkqTl#ĵ) ɉKmtS\ZXkl|o|BG')||~U~T׋# &I#IkY[r|%8aV`dÄ_*deNj+S\Q1ŦCHTzAEtɋ݁qĐ<09I\t񡚜#vZR2 68BFє6ǰ*db7U Vcգւc ޽q}=p.I'N&IDـĆڪ\'\?nʄ2Om>?T/C8>.2L* uuKOǑ*EŌh3bqedÄ_*dQ+b!$o*tJ'}`Ĩ@!yUq?1$O d#$QoOUs^?< 6sČ)m\Qa+˛bqތ&Ϩҋ#)o 6xȻOeem-wƊ+VZ+>ėN|f5pC2;s]n uݦS9y(WdmmY޾{&+^3˲XOɌ ^h} u?~|+wݐ3vJ?i+f${7Jp7H/_K/ʻ'yT.e;^kO5`sX)'+M|Tq^JWT(nSK1ht$IKTH9F8J 'qgXiS\p}}TDiN#y6(+G UyaQ\qŵkPM{Ye ,rm3|zQGO3ϚQb]D,ٸK3$& rIs~L o gNFGȓ_%Z~!gruZ~BhGXK]sSF&O!ksr^\_\e맚vRqTTP1%J҉ (qT0kTGT IKǐ< +0#I,TJC5G-VWr9(:HV*D9F9֌+XRk{?*LKJTK' 𨜛F30,. W./(07y^k OZJg{.ɳ`טU;%hOuJ!Oɞ+f@4~Yn1dUn4^X &0=uaF&Ra$v(6aqEŔ(BI'*t~ & *Hƕq?!$O*doXDMG9bG+e+SK2fsT)QXaTJ(G'GPa0.8ފ}S7*9zKQ{<*Gg'Y wnCK|:7oE>kBNWhru3?J 2WF0 ImZhYnNaI58/tL$5QGX)M\0 #Yi +*h )6BI7*t~#3Ço*cHϟ#)] ?|rĒn:䭚#tږ2>68bFєr )bsč~raekŕn{LWog_/_\$]|t%|\㷦/n;y7G2Vag\(!0"m2AMVˆrFμjW{+ voeX6T3* #Ln84H$TJX;P*dQe +bMǐx҉'q_T,IbTT BTq^KV W.M/ Q4 +n*db8U VT,IB.BilEH,6rBjnL/as,V__ >po/+]s:iȫUapˤcK4z+X,3,ӉF4REŠ縢HVe+'xIT0IbTT IC<*0#)Q+*|&I!$on:RkrD*lLqE#n#lͰ:D;mܪ@1hX΅+ģ@>__Fwnm8^y !؎(UdRk,(c|| Cya( ]  ` y=g8y]fnnyrZ_3255.o5VscQnʾyL]bM`A1AM`Bs4kNbHQaeF`"Sa WTH7OQᤓsI|*z %i 'qeG ɓ #Y `WM8G/+e+SK1aTXIRq$+Sl/>\?L% 0hTigpfp]s;LCǒtLqX6G;;h+tfܫrЂ~4~Ɠz5U`a|n,s7OĔ5 ?% cJ.d5}+d**{.\ALiF+}|,')'&ga<]][\T_ G\&Ÿojߦ^G`{嶼h=i~+x&"lK8jRtɛ'ݨI8M7H1$O~ ysĐ<{w G,ICHު9BGmQ+SKm#d vMTHrč~sDwX2 {|7>l1BŎ)样FI+XZ+u ƗdALA͛/66Wh' Jӈ{;|CW0_=k݇RNCJvT(-VJWڄ4@!ySO G?hר@!yVqĐ<{ 8bIRu7BVM:zV4?|mpČ)8bTB#n#:&qP 'Ȃ]~Zߟm]#Dw)JWt8+A`U:p|N| o.?`V?_x ).a0k,=FģFyȆ Tɂa/Sl:MNT<$bI:|I:O.ø? 'GR'G(Iޞ!>Tq^KV W˜bJO_j!hVTJ#p#JA &qHnM\'nA:3+rhTܑaΌ# ++T(-V&Ra$v(2Rl:MœNT<\X I:o\CŏZC59GDaECm*=@|59"Fm>Ί#`Y )6G'GT)lXQ$)J B ~-էVq^:%$.t=+0R2a/F*ӨUaP:Qs& *cHEcGKaTKCdtXWt2VTTGRa$+RloJ㊎$i!#IЁ$%]X Go^ KVg&'"A%CX)L\ģF*+04 #Y) +҉'pI7IFuJA$O~ʸ? 'FP$ >Tq^VWėZ#bQ) x +HV*qaW¸O*ĥIZ*t"IZ: ,zJ 2QC\<׺̏0$1$YTSQ(aE0ᗊ#Y)e +:MœNT<& I\:z$i'G#$Uw!$o׶쨕lt2?HV*D9F?9J h$i҉$i(0訒6՚!hxTJŔ(G'GPٚat(IJœnT$IK/n[ENT05#YU:S1H:jed TɢL#VLaTL!P:QHG4gTT ICzL⪻K5>GQq% ).SK1aEEЁ$-Fb8Vq%I\:I'*!ys[GDbI\c@V%5VT( ~8U +PยBJ ySO: Fhר"I:a-Q+*z#$Qw$o5" )tE`"Sat$IKTHr~rV@G4TTq^cXiOG_jMQ4JǨ*dbJ#n#l͸#I*tIZ#t,*xJLKOǑ,*Qe +04ᗊ#Y4BŔ(BI'*tƍ~R$>>zAEtɓ߸2#ITK⪷#bŕtESʨb0* +x҉ $Y8BF`QXXz:dULŌ"qRĕ&Rq$2X2Rl:MœnT@$ & $igC@>9It[59G-;je*=?|mESڸRB7TQqPHҲ/pW:vZLKOǑ,*ݩQw*ߨ TɪlaV@!ySO: FXĨ@"yV@q<09I\t񡚌#tR_*lX CTz:REðHV*a}\ FX$ix҉ $i$?B} ,a,Ib,=GtFQl¸G$I'*trT0kqE<*0#)Q+*z#$QoOUs^JWT(0ئėZ#bU)`  #Ybsč~rD†P$.IRI҈$ WXXX6:dQGE"hVW&Ra$2UaTL7P:Q0n &q *cHDI*|%It񥚌#vRRư¸E)G:HV*qaW¸O*ĥIZ*t"IpĒQOdrc@V%5VT( TɃ0L(p\Q!%JGp҉'qT0OE^Q$ D7!yRq$ >zL⪻C59Gaqe*=@|59"Fє@Б$-GR1%6TV:SJohU6\E`9Xz:dUNpĕ ~0UGgUL!$o*tJ'a'G4gTGT IKǐ< +0?GSsW2G,ICHު9BGmQ+SKm#fMiǨ*dbJ#n# ㊡I;*$.T6Š9$tɢEfw 1ji/F(ST1WQO: F?`ר@"yWp<09bIu7B|&;|AqEjMQ4*F *J7It ICœNT "9I:ƒ$q$Jg*hIYf~@EJFb!$o*tI7a'M7H1$/e rXG,Iޞ!y&Q+6sČ)m\)ӨRlO* +I\:J'*>9I\:9$tɪҝ EyJʄ?*dŰ◊)6CJ'*tƍ~Q$Q>|S$-D/8HTJ$z{:PM:z)/6!e*=A|mpaXqSq$+SlORظbI:I'*F^ptTWr,a0Ib,=GҪģFQl2 #yEѕ)b!$o*tI'KŒTIA$O~ʸ?'ZqćjrKJa !6 Ԛ6g0LqE#n#0I7*$ UV`ܽ{Wn߾-n m2;;KDܸqhKy&ӁܹsG| wekG""""" P ^ӧOGYZZᅈ()^"""""!% d6VZYYX^^&" C޿ODDDDDEښ!#∈*_5 Ad!"E40DDDDDD[A`!" d>`_}Ym BDDDDD_s< DDDDDD[ 劁D ,D+"""""1QXKBDb`!""""/ jDDDDD䗽N^6 ,DXGYZZ>GXw#  ~mmM=>"""""ֻ8YX(We,&/.^BD*k`1#WX/B ,D2oߪDDDDDDba`!\9[1Qo`} ,D+{`yzLDDDDDXg`!"\K7>BDrkeh odžӚ<CC} y;wNӍR?1(C僺nkґ>rz\7 2a`!""""^?*˹S2==%Cdb{59s<灥pMN t>gLm^X@X(/3,ɹCrY1 Cr]Њ)ksyN?ʃ CreyּlEXR9:$CFm魾cr5y֚ƇrzZ^ъȻiɳ뗟k r"dn ,kR0"džhx$ s%y>[3Gdh+ͼLCGUuGe!9:?/#ӯ}eW=E;>)y.ˣ$  e СA9vL!+crsvZ&bze.= rR.ܓwC24rS^#(?zV&gn̕srlpP*S/e5Cr2.73:tDFjS2;SG7Ѳ>gdh^[We`xVzeGY:&Ãe<ʱzjr^>>#2~k7eny×6thTɣr$[V`<,KBDDDDDi}e;ypmLG*ra| 6c2}'ɑe<%ym{$o֧?4$cw.72|nF4̴bDpyXʻ02<Nsi=H|XYY=&CzِgW֯;(gf߅#^{ ]VI!9|~^묬Osx:nߴ {s[K*t^et>b`!""""j|z+ONI9f4bHh鑍U95t(uhu| cĎreC͏sm˦c,ݑA9qmAiHtXj sɎx3-#rz.I+=zm]_J ,GeI'"""""J ,+oʃ}+O vs9uC^5֨e~\8;,Cx^0sPpL;q`Ӄ2\+/dXOX033f̺A`9rM`yKΥ ,nY#ʂ"˧U9|}䠰Ʃ7Q9 <6 vcn ,r׵P<ײLU_=!n?dȳ RrO[u,96vڅgn4%ycx.9:=,fG&vZ]&svnQfε~yE9ac4H"""""J ,W^Ȑ:!Wn'*At\_ Y;'C8}Fp8HX \ c2xxD.ݗvjHsA]ܒ:2;$6r#<ܚx]foʵ'dXM8&k/Ƀ:>-4șCrL˩S?*g'gu9I ؚ;^^맏VV/.~n2``!""""^ʝ o=qV.N?f+uTÇTMNY Tg"?ӼJL৅I yyYi,S21H?#Yg2|gKrQ!ؐݻw׼ Q1X JR Yu=ۓ'Oȑ#w^={ǃ.ȥKdsx/uu]͛7ٶm[p?LOO333mp[wumGmZe{z*.LN_z5xnp]v?#ϟ?WӇ4˙XB ,ݻw/Fil46( k\^~`Cl?x`˱+6M0o؀moŋ6yZOn]} ~7|v`|4DCӝ;wZ_[<i ?!.^ 0?^o&e?7f^형f9 Q%9a}ܹynݺϞ= 6ڱa~ʕF>F`l㱙 8l`G1![qebbuÇ[\025㠽&: ژ1 q&=M]0|<&,?swnX>~3_X12Dsܿ9shYXXh{4SLDDDT ,DD!dnFDGja76044\] 8mKty^ph1< &0C۷˰X˙,XB ,aLXb 8 .駟6ov6]e.sػ)a>f `$B  k D}vzei٭*PL`no݂c#m`˙ XB ,c=ItlOexx8CډFؗǁu̯av?! ߩ`#sN+X\怲]L`L4†}7nٻt%i3QQ1XF96b@bn=K4D![1Xou]4q}1};n A0pE~  &?u[s|p[=+AFt7h"XpF0?ym!&YDDDDeBDb`F0"߾0c_`6lfw$ ސ7a _1M L\|XY(p{D.8~ ǁ61℉Mݥpfg_!Z`h0Xsq(s[Aj1MX r&"""* "Kwj5{0QؕxSN=+6q<D l#4##m,< p,S6 "Q3i9Vmlpo`4vcòX~`y_=-hXsA.8nͿQA1QZ ,9Z{-3ʞ_;Gu b`ɑ=twm?rmѾ쳬tvO7ݵd綽ouF{&<=_aDiZ[eD]0QZ ,9ʧ99k_WJú*i>\Gk6k,\ʑ2:SWe{PCΝ#rHNO?KroDVuBDDDDDi1Ȟ~KC͎埿v$bXe.]wyg`!Jb`ɑ=>;e_Wda8 Յ*i[ń+s2/ݯrcku~H~پ}=0$mR_ky\!O({*rgC_`~F<7e`7aSWv@.l]:8 ۇfdō{d;rC @2wd ܹ:, Nrmo{wɩe9X(-OXw`נwXƮBM A>m ˶m5!m?ɹ'k5ѽrrrNgv9$/_e`ࠜB-o| O_1bA^_;,?8+?o!?ݻ2{k@~ Km_g޴Lw}rZz# nȱ96%^KC^_GvoN|^d 80X;_mk"1kwsi`ǥ2ܰ~Ny?}oo-ޖcl[{y| ox_.W?];˶w[9q7q.92"]~(" l`ɿcw3s ,DDDDDK'Xmۅ.  q`r ,7s]Oerm,~#ے2uw`@AL{IO˿Ȏ{~#ջZnT^ ,DDDDDKאg?˶A[#n3uаO7Ah`K.6OX?a`XuLM.x\ǒ,`H^x3䷁rxǒX"֖div9Pm8\X(-ӏmqc\<|(#Owvˑُuau,aXix'%'E\X.C?F`1`~Qrk|yHo:$1F`92m`1`W':};L?F`Y{(c,"1F.~_nFMeBDDDDDi1ٳjq>_Y}(m]7ei[(3Gȶe~Gܿ%WN][e}mV9?-4w'WNwIuܮ?.?~>o6}"oܐ+;!gWmnr}Y1d~߯>{r}vl_> HWɶ][}[ΏwK`"X(- ߰Y{dwm݇~mś:hاm sɯ{vood5:ruG5C\?^`/;!앝s:'r<3&[ sW_e/"}sF~nlOcŨS򿟾r}Yl_9\F.6 1X#ʎb` ]vM]ND_"""""JqB ,DDDDDXW``!""""¸BDQ ,DDDDDXX(-" BDb`!""""XB ,DDDDD Qb`!" 1QZ ,DD!"""""J(BDDDDDi1X(-" BDb`!""""XB ,DDDDD Qh4<""" riٵk uBDb`oSN_x!'2 ],۷o3gΨ8o&8qB]W2Çw‚,>~<ׯtaٿ:ݻWq_CI_3j5駟r5k7nZ<)<睞ݻw;v_5X6m}/Y`?zHN2ӫXB ,0cBܜ∻Bm/ʵkډ60`_VZg`2BpJΝ;}~Ͼ8q_\?/!u ?|;0o/+^}?$BDb`ş8+l. ,w,Is㳗zݯ5>w:tHOu4PܾA5EX۽F^f`񇁅(Or]9p@0ᅲϫ /X_F/z*0ŊΝ;寿 ;z7o+¸W+Wȏ?(۷oCKKKr`\byGs%ٷo_0 u1z9+f>;&߿t سgO2 n22n,;=œ1/?3 ll۶MǸ~5/oݷn3|9… }&`,svFpv^+++ny{٦g[]] dp!N0eN:}uĺ3Y׏w=\9rɺXB , ,8/Ab_u| 4qz`E+ŗ._z>q Dnݺ`?h=;`^ .8qVb0 fCXn@²4+4MsGiV@bx~q#G;lT3n3M<^a:Xm*^8/7ྱayi<~^Xbϻ 2+X=x^Zk{up;{߈{ߘNܮ tY6,aC: q^x<1b~pl~xAeK5eϊN$p\1@ļa9D7ְQi;``_-1_7:mg_xj>1M,weeεjX:[r0 ,}Lt>Xc`!z^fd\t뺟v%k{x:1gv†,#Wxg8嚷886s1]u}\#c3DG+m!$yqsa>M,34O\n= 6טYCQ^#QwQO^&!^D'n]y\&XŠ!^SX)[`Y]{ i׾X0p?7C]/\ Ntnن[QyJ96 . nMܕڨvngN ,qlX5>Ƨys<lˡ[`{(8+gi `#5;|uuObϳ1v ,f'3oO;`w<M15#b^3q?\A;>cg 7^rFrsD(1 q&>>Ϗ|fG? <6Nw{E{D{/G|~Ì7s>׿eϑKu8BDb`7Q+Î %+! 1_Xqe4tDY1+"70~3l+2X 10pvtc 6j0_Xf_\+lKVtW5+f0V0o8+8QazeIs,r]춂ug6@@0= ,xLэX{>僿 c%E&5do|v ,qޗq@{ ,}zcD( ,^C;Inx!1,Xw\AX>8f/;\ [b{qވ*4H{%ÿm԰GND 7X#X|~v}2ĺVt 3=D =r1qNҮyg~%"K</Ow||FrB{â͊΋^_VP9!]5+rXĴaDax9 6pkpy̘/ .''kQ,6* __\`i`jǯ㉳1Q*8]tW lxVpnmws9=0XbE,.]Әh2y&?\/Vr-w[.qo%w˖,۲fr%%s @7z$$ Jh 9>z5;;[ϓ7Μ93svf{= c.5ɂ後o]K(mh L`I5K_';\Chs}2%k(սcA¡,\`,8?{o,QՖ [ǃA9&O,X};F!^hX`J;Eh1q`Ir﨑2#\ \:5{ E'6Vг/5Ym t< `(`F-űcJs ׃M3Qd`h^Qћ{G>yuQ!%5.T9`Wz c(CG{`(mȒX/ʽIW`!+`*>T PiP"Eŏ$ۉ~D>P&P٢<$#7rK"1:d`LcG>06QB;vAls"}Ltu5Xm3 1gQ(*wicd7캉Zt A) 7{]AS4p/X K\3ec y>p:>_G21Xl-#:I'}u0PrD3HoƬth=!\8?<(D0h q t(I8 C46ZK5XBZ,6; /5Ym 8`A9r~a@>8/gW 4=I^'Jpo! ):'`k{u,P.z F|E Ri-}S\a dz7|Glcz&C_@B@%Y \I4ΠXΰ&e02;ͅ|3-!Z !\ ! .(~sefӒ~Ư豇_u(+1~Gbsu[zGf8B 6XpB76 |hR` h6+7{աg3u/ O= Be `Ʌؙ !,B!L)hE<]r!o`/|  0i!B6! \hU>2x1m,ּ`!B B4Xr`*P91tu\Յz/o>BB! 6">4Xr`*Pri\n1U":B\,6Ȉfܷ@ !B`%BHnc$WB\`X!H B!6~",90FrRS1[&XD%7 [-'%2b\YpuMg)6Η Ëd^6Cb_^E($oz^8[*f%1 )oS| 2 !B WB2KH.<)5IlY47]ɰ8lܕ)'ka2b;O. %e,e:o9!Ξcwˢ")]K됳]hedش ٹQv1)Qv3!9&$6(%4X!Bh)4X1FrY9(.|PG k\jdĢ}r.aY;1&×4ś,EeyH lEeiC'UR^^!{%$$V B!ظ sCoX,3'aCeȐ * kd|PYPN.]t r`M\zt *f_d"6ylog-k؊=`!$9'NEX̙3G,Ycy2 ^nc]8q=Fׯ7~ϟ/eee=5;vpޮ >\VZcyo0zc9I;HE3'OyXNr!ݡ1|ޅY.kjrx,.%5X.\.T4$񋾿 u!DzpB:tHyyyc2dTUUu[6k,Fzf3f SNbא Oh,cFʶmdر. &ק:vw̍ݶð7Skn_#Gt#G֓2ewۯ펱Ǹ$MWU=|bi9~?!{s;>3]#E5[d̚2j詮=^+5 VwN8IV˶nƿ 3~eWɨ猪SMk&uk sBˌ3q?⸪uX{iS>f̙2|}:p TO>UR`b$>gի{#,&Er{R!3Jc2hPh2Are9y iueᄡ2͙.I ؄s_;o*3duR"-jdմacZ" 3`ɜ|,ᙩ!x8c8]vj"uT : P1k,]ԙ T?F q`bW>bF9t h<``GuF{,C#'1ssEC.ne_>Q xGl>7Xv9PNht#Ç0Ao;>p~j~ompۆ -߳ }Y`ql` -d0pF ǁL*MS]%ik;CCyc(Wk(#WFde(CL?TS vnQKp"h$ aZ h8Ly:,۰4ƗQ#&4ӫʞC-R{Y6rccv'^51 cGs4iw& WO2 cJg\?`4,v,߽ٶA=,o<K.-~fw wrAY2kj`1/7%욉rZs#5A}8p=3i9lΝ 2/잷`Lx"ԟϩW?nIOUw*4X\AA:Y9c  CFM%eRN M5+dR+!#dneص>L*2XN-Cru,1NIQp?kc[Br}]5Xq_@aЛ EP *g{˖- @AƢ.67Gy/1g n.C@.QMscX%i~]FFr^<`6lpy\exl+ߗ-Ch@"eo5И(##h2|FcB?P44zhXm40Ѐ<\q.>ƄG 8I޽{׈]gA95pNXS{% {<rzBM?~|O'_Ord X$[^_0 `:d0Fi`JۖoY/7Ila&Y۾]n͍߮I<͉3WCn+Xo<}}y _Hjۚ|ÇܲcN&MXRw'>_kG˙Wy=evoK2k:_|E0P4MW%5*logLb)< [}mϟ(<+Bx3b(X # C?0NY Q@?c01P! + !V nj+5/4X&DW~= < HՠSsb)G| uh"0a(?4#(S\;yc-9Ue8|} BEh,sm!C~U]ёF&8&CPtm\P X~z}""]^0~NUQC59p}S~@-TTe}@C_åwcFzoa^#HOřx~౮gt kU2 2F|mIV"~yrܾb pYgrLT iR,z GuKŗ?u`Q}9ie{Dn-s#5 (L lls D-/C݀%2<.aե[Zgv@ 4Xh7lŇK4TAF.:kX9U.9`AP umQQ VAfr^4XtH "vl_hcy(O+L*oh  AI ^ٌk4ps2Z9 ЀF`^0ɈJUQC59p>7pmړeϩG f(דq38r`A  6 41?  Sz`1`XYViwep.E9o<`9m\,Q[܈rMṁڤIs!z!M0XPs'yVG ) `BHc+|aTh͋@ ,0f02l 6}@64 FEh|+Ap!vthM> 6}Fe*`Qem^A L UA=`QЛ)0e J`P0< 4R{PM|G #neў'@wo,Q'`p骡zP҅Kth&"0FC1]| +810-* |F Q1c;4NDzy wxyu>] &m 1z$_f[v0`AQPh5L,v6U2倞U`Btz^̢4R{PM7GN}(ګ /GCǒ5n3z*/Dj1Pwe.e Cz}hͪ=5a6ǟC`dkhGG7X*%k`.,k߿o`̭Ƀ4}29^1Xk&uklk b?*''%JR6Ml|HȵJA,V4d xo`x|(.~xC0 oA__ #koi2m_o1@]0a|>B08p,0Zǒ|\Q8f3zR0PI/z s]α mkCaH'ՠ geGP$`A!(kw& ^K~`a= &~E„<'Id@٣LqĵM3S]h!Oۀ!{ 䩽o@&X/v?J` 0 -L,0\64`h@| 00o0TEDf` wn1U2&Ǭ`S7V40iL׹^7nTXsS37Xc_.`EB5hBrL{,FJĉ x&*kh5hpkx; c4^(#X`XF7 "D"G9/h,XpLAp >hl P(پz`0kGh]ЫeƺI{ %rkǃrE.5`h`UlsNkA9Xp|ѰAcOAuh W闩 $|/0_m+Aybݏ}F1X@zN%hY֙ X>~Jg"ܼPS ފAc⺮.c\,Lj${D5X`aފF {FC&<-(G}s5X s1Nڰ9L Ol!YIDATk&uk ¾aka|3냞c =o`꟰}X_(6 lHȵ BHNhC.Mq#A E4S#BH6(+k,a+\b+ `fF$ `BH>@ 2!I Gr-@l+lEkDk^ i`6$dC5b6 B!k W2B [Ifȳa`8k^ hB!$ e߲Ɨ ThB2Vb+LAEThB!ZMblq&!,b6 ;Sl.,xxJݓ'O:$B%2u`MB4X!ic+lt`!4@͞8qB>AI!k0fl|.6w2BI[fA ?T=ü`!B Xl|ybNB4X!ia+Lr:؀ C؇BB!a\-62PB2VQ@TS><9Ly1B!dظbleC `!DVzb+( ?O& ̍ov0'B$,6h_x BH$l M{XQ|Ś,BHa`cL_-6ߡBI2Vse Z`Xb @B)\l\.6 3Zl fK `!b+Lm*len+l(4X!2бqOTlEBI2VaD1U25WlD6 Lɓrq9t萜;wB![LfS `!b+Lk}i(x O2NBB1K(6d!$,@l.R #C 6  69{,!Bq1]lܔ oƫ7hBz`+tiɰDLlBB!tMG%eA. 7[ O`!Vdb+d9{a F|0I5/fGǎV@'BH &E6 gA8/6nLҟB醭Vɰrld,O`!BMl QrqiAx/6~L_B醭Vɰqؠ cE$L  !R8%*QoYlat+!,J[qa+aу ox?^(( b& A82]lKH !$V\7WhPEQEe/T,6~D}'ƱhBVbfk~PEQEQ Bd1Y,6LBq?~\֭['+Wto< le,{\ ^((ʝ[x+U#s,(h'zjYxqV e'dsڵkeeQL[QZs%bon%XQ(([|l\d,6L sEA^6B 0Sn,7'|l%s EQEQTe-,GA,j钫| PJCCC =Y7] 2J*s((r+:g|lG"4Xr`*Bf$&d+tkATSS馛zT边B((*BLeԨQqDxmٲe2l0-ƠTXښlb \5]3 ۷'*)dJVaJ2? ex8Y (02e ,.6={"yW~2bĈDLqaXK6HI2e2"6^9ZFL/F CH zL,dLQh̑8Μ':ӥ`,珍;Q<4 PYmWX iyJvͅ3C*C''?2XIlw ym %\BQEQ{Blر2h gZ*8qjCyԩ.f:lH4X1FrOP0;:cG ++7l#}NUq C'`zTT$EȌ-7vgM%6xyc.d}d؄RU\ 8. J*J[9+j+: w f((r+Xo1em,QLkDƺ4X1FrOE ׃F89&&${$ 6ߐ W RWsH/#U}Mei]5ZJw`N9,5n1RoG `2b͕l ܴ\ E] 2WN:*~,EQEQY1Yl| 6F5Xh l\/q\7ˢ9X:ۥj| 3Yb]BM,4W҇VFQ3W [F1W^AUT4X((r/5Xt{m\!VQ {+4X((r/dK{x BHb+(+,̕+`W*EIYYOjRT$}󟗱c:~i(D` 2YbQ},jx4 6%$`!Q5XpU͕dPd }!l2evvm_BQEGK^,B`Id$ 2СBHb+(J/\IeqW:o;v~F0o[(6lpgΜZ[[ݱ_BQEG!Ʋ%`u/Fƽ, "JEW [ [s7X7V _? &o~󛻭z좜* ~*rQ4X((X4B~d`ɤ{ '4X)@lEt ImŚ8zrG}gW;mٲŭ?x->ssկNl3ϸ`݊+䕯|/I[ٸqL:U̙#{qgT|;w/'OnRiӦɌ3d߾}n^(E/r9i$Yd~٤CnvYnL}+wۤ E)o\{뤪ʕܹs)`2'QF{ 7{'Lk_r-pBo۶M/%REQT\ POfGKKu9@{{{7PY9@S'9tRT|s|C(%` H6<7W`QsE /pl?Og*7Xw [z4aPٽ{w"4ݛXuaVg㓟TWWˬYro{ۺ0.;h;1կܾ5=, GM1#ǏFWDZ++W L}7I1PJt0 `"豮Z c|&L˗'D@i{+R_WٺukX|S+`цƍO}S.ЋJ#_.orԴEQ$XoYdb]:Xl\iqi*lKH>BHa+(؊b+JܠB 2X0y_oʧM \ uh 4@Ї>=|_} 息dCVoǺw]w e0p ɤ y!Qo{V}#I׻nWḥ 9@Y/~]?OnXkz00qV~nG_,G.ïijjynHջ'Yy/w+oi =n {7[ ':ro nySEQ EaQn,Ɓ2X 4X)0l[Yl`,S+| -% R4L7Xw[BL𥆃6|ѮyCY5QX^zD>?_α- }=C}!/7 |ni׮]>k/"QcB0$O*>l"]wݕXl2e/{YbL=.3'HA /R32`AoJ{ع~Ԃ7X5AQEQɄ7X@*.`4Xȵ B [EVt(KÃ0XK?`x@9a$΢p]B ݂e:*UVV嘇ߟO{}Wh =qTj.`+CotKrB:CC\Z3{l =apWs=UzKCo`ӒLArQa֡W,: Ə }eftL%`0(_COQEQɄ}b l iH\`!PlE\I`sÃ`A|,,'I2,&H &324ؠQ 5=>m_?H#_W8c|E{`r)*T=E`=>SD{(-ƟDU`e"ؠp,Nh m޼٭ÄѐoRa`8 (*[$e`㼨K*ƥQ/! !RVQ  _Te5XEc8Hw&w c&w"o Q!O?&J'9 /$,`{XZ@:(ـ򆙠z9a[aC' IsyF#37X`^17O$YŊ EQ`A,~/5k _L4X)0lL [`םiˇ<x5/~ zaǤP Gu?n BY" _Gyl qxS7LWv9Eao[n&:\9XַvKJHRv<8 -G*̝%M?t. 0nÎ07G$_te^*0t?3z`,=a_74X(lF7X^,,a& r-BV@%S%+ Ojy6`L<7`f7`tska׼ƙ[c0 hIC"(;,C͗/lj_1jd_#=ipxێ,"mc*=^iI&Z:L:-[~TQ^'GfB8^LćB<[#+L==`a8}u3?-o!ƛ.󍢗%6?y}0k_Z EQ|PÒ+46%$_`!Olgj_5o4X m>DT kze04EXǃ/@0ΟM줪`$ǡDi15SL& &H`׸Ƕ0p:a/i`X!}Ф0D^%oRg*,P0gЫec[zAo1w^eIoy)ѳ=cp 8V~m$3XB$\[ ǍǵBQEe+X,{a B5hR@؊' 2XE1X2xPBQEQU cL k1# rAV[/ Ç`((!BE̠c$WhH{XeÆ yfٵk{0BCe =YBaVQ T[nu4X((z_,jD5X|Ə4Xȵ #ʇF+̫++f~޽blٲE͛4X((+,7KKKܹEn9"칒> nz*<[[[1b+%`+8m '`((}b1:t,]4a  ~5jK?a#wEEEru%SN 4XƌHJKKe.vtرR\\J6,+Ho߾2lk+dӫS.jkk˗/XgA6v].1|nyähd wHŴR4\vp"Jx|X Ȭ"1NnzgIdL\Qvr5UXnΨ9$㊥dٴQnSی'8z4t,T#uC2xTo-KdHQ,!}o\g5YtO{{{7Ea v$4X((#@,VRR↔,Xc655… ]zo=`,/zlܹ (Ś+F͙t lk `t;Ӣ8\@<ɂhm\f` -s sQ/UWxCT,U..?w3xluXPɢz8IfDI hqu>daRT:C*C'C+IȅeZD_L S,ۻL9'~&_%AZuuٓ`$ q ^BQEQuH EIYYYʈ#oyq9XЃe݁ Id - RYY) 'N$W415X^(ɰXԠ)^,b sE 3P,nT$ G]tfY^&HE L+Fɔ5ru!9vrt%~jHlV[4TbѤ=Xs1iܲ@ˤ G9Dn 8pAX ˬɢF WTTtU[enjni>`+ko\,EQEQzdƌc65|pCj|,6mrƄQ [^^.ƍK]KuukL_?k ENrkӅj\K+}ik\4XҼ6Σ|Tj 28&ӶΛ;ƍx} z`sWΓC$V!0Kc$WXfƒg͚5=,۷oJ`$ 'ʙSGnrY1,4X((Vj6%`$x,xń ;7Xӝe,:DTB˓/\ș qb"RxXsłJ_l`9X-x9wcfj`&BQEQ{yIka z3@lVWWl߾=ojo$6XC``?,:-LybW5_mɁjpșr(P [u3XVlڶ#rpjYFvݘ 5W,Q'l4X((r/o)81/!65k\wu==zt`A"sme˖yZs&)AS=Xc%RiJu +&J +sh +VȦƤBQEQ50 b.) Q o Wðqpj^,*oH+A͵µ`&Bs #rጴX%+wKY,EQEQUf<8r/A̵{C'ɂm\P !x3XTƤBQEQ50Uh M%'5V,w-aMh\S0Li5v].BHa+0hPEQE `ɂ+RH J4W4X) l ̴՝o~mwDN{_I =cWSEQTP s0 +CV˿5?吞UQEQT_ 玹:׮]0U7B2 !x RX˯{WxV&{2)S+s9S9IOC(E89e5ozx_<[wK_yA~^< kn{+~2 (7mn8g]۝*((EBHa+0h$7XлG-/G,_q>1W~森kX/vGߑ?&/?KfCM`yOp=X@;Wc3ʼ q9{?Ϻm`n l|=4BKwו3"?u }oV=X|B~0KT!׸`*A.wLpx`@Jvn.꒻p8}+=EQEh4X) l  zn4Q~9׻^,!gxc` +>Qy}L|`Ys:IsŲ^z\-z3J,/ޙ4GߕXՃEVg'0?D럮g#O*c@zxq>0`ZvJf3݌#?NvnjP5(zS4X, Kr=nݐpKzn@`Ao}ޯ> ^v 衰u4 m}xW79E{|xݕ+Ps1=.Tc &{Ű uQS%EDO+z`5mT0|G,prBouJfWO!EЛE{%;7+ UB}NBQEE4X, Kr཮=b @ eEQEh4X) l  \cDЫCS 4a9X H6 mӉIhԣO~βI,8VM:*k@0sϹ=,л/2Ho$±!3wK+ş`9X#KT9qy|ߓ 0`6X轣C}ϸcD0_0諏|y5glS&EQEh4X) l .C[O<* כwR5͘pbH))bo7X1cl)=qLz#J,Z,Aع[`B`(x2*si[^A(W !cXIlcś}t B0`ռĴv!&xWL(N(8w߃*z{ (r-,d B [QK_ <38t(/ԇEQEQEBHa+0h_4)yP0W EQEQT`!$;hR@؊' ,}l^Nj>y! A(BHv`!O4X(( K4X,  EQEQTa !AVnq3gٳG^xn-,EQ_`!$;hR@؊' ,5X~>$7RGAG yg}#,EQ_`!$;hR@؊' ,oC+裏}#,EQ_`!$;hR@؊' , nAnw|^3{lG^ʢE34i}ݮ' ^n|_yfO$a_v{ʔ)mK=X4nĉ/~[oݥsoea5k̘1ý!G?[G(+,d B [A%={7[V0awz)]~wq<#nyϛ6m}cX/_.͓%K6ӤL|1̧M&x;䳟TWWҥK/K"/`y[~oE6X29?ϮjkkxC/o4X((*ϢBHv`!O4X3XPYԘ"`/~Hj̨~_ewu  &;L, 0.L t tse1z ͷ-,EQg')~ F9x`---hkks NS3 GcǎbTtttwr6?BHtot\g$?d@'7M3 %!iX>a`yݜ+۶m~WK EQEW4X,D a10M`@?B`A[nۼ%̜9S\,ߝpBg a~ݕ`P) c`.UTT|7lؐ%[!<'M^-^8֭KIQEQTDBHaM0hDW,TBQEQ B !5Q ]4XzG4X((*BHv`!&J4XK EQEW4X,D  עBQEQ B !5Q BQEQUXBHv`!&J4X(( K4X,D  EQEQTa !Aš(a`((*,`!$;hR@X% ,EQEQ%,d B kQܗ&BWh4XjYQҁ̦#d aM0h j!B %kܹS֮]+/vo,C` %Kʂ e4Y@ƚ(aBQEQUh*dzꄩ ђ\+Vp]W` `c抂u6}nI gʖ kA((TKmmm#%߀O抖Q!,4X꽢`MSNʼudcrƮpfJQll>Aè&J4X(( K2d?3ZR,X j=z˯L8`3f\ JKKeΜQseر./a0a-I`I\A}%a[_!UQF7m:΂4Hm\@%Peeo,祣f .$3M3Рҟ&J4X(( Kh oݺU,K,Ii,X@nˎ;}viohd#x`Anܹs,0P#š+F͙t lk `t;Hp.eɂ֦57nt\9a& :Ʈ4X!B'dkyĦo246Q{JŜ2bHLyke? 9PX&;;[h! HHH*IH4*H x~N؎5ǯ}Ilq8ݾ~{efvvu= 3 WǮӗp۾k<kJ  cYV=>( `偋^4pbcpZgJ(?ЉS{֣0r<T<9KoYۻqWY8Dqaa_1C@q,ғCɆ b˺u{!θѣ1Á,a"m[ ["X͹׷388/=?a$Y̲.NI/d k7O`}HE(0Uc *pGPSB0:cTpp96>nS@1j;GpKW;[ׁUmʰw< <BX x؀ *EpZU80p nޝsd aaFKj`f˖-É'V[jDv"`}12gW"ۈ0 yyyg"Ȑ&-XtO '6#hڋEϹ%B@q{/Pa1ǭ!A{> R@#.: oE#-q2Υ5oI[{ce`^%fV4|ןH+t?Aˆ0k KJBon;kh XsfC-Qܠ`aaWD"=EL%""bE[ =ɭE&*XsE1E.UUUY"q!R&+Xd*vF\o1Ə:-Y'LoI(XW-1>3چRY6Nn "uVhXMȽMXX1{+r:r wJshk?f!KZ4~6Gq9F lBK7(Xaa+2!!RCJ Y_zȤnܸ "dcܹÑ1Ybn$z=7x1K 7EBe!@%ܿ|T4]Qy5yX7u[@`K8CW*,<ЁգA{w!?eޗ (`&Dqaa_immttt}LL>[[[kd 鱲vZ=4` "J*++-cHT3$ُGlIF؅}^ aOe\&.YR,k7Fݍ#GG2G,d]z"FE)yxP2ZA0 0 ceޓxE&N rC]SS[JLmRXXh7` M!L2,KEp,K$Y>D8xR# %G9+_؍|Դۄal!\sfZj¶ AkO?zcǚ|1f T",Öԁ( .֎ӽQDe+®=8ߍk(E]9{詏^<5+JNDίw p.܈}*YPDqaa_ıbv#Lr+xCz{{.햐ݒ "EވP*X$rnEQ'HbkY/Ez0"B$"%Exe:bDl+ !>BK7(Xaa AmXAYÂs\I  !>BK7(Xaa? BK7(Xaa B҃%~,+WtE&?{ޣb!2vX ^]^-[R/qYTWW[3Ko?騨||9m۶O~UgD^ۥΩSDbӺ^_nE*a?Ega\  !AB ,/pA޽o|񶷽͒[nw]k-Xc_//w"vs}#)d-oy"~Dcm~_Yܷoucv'> kg} ^` ~!u#xL[ 2Y""կ~5/}?u˪UGG5H񬫫Û&xO>m]n 0 `!$=(XZA2xP^^}kea .Xg[7}{Koy_Dɷ-koxFRHo#կFe׼5爌0Q$AAz444xF'OZŒ$cjq4FY"7Ls}-Mϒ)қbq,R,ړHdҫ??Ӄe 0 cFBCYP,-Qܠ`M<"]džH'n"2H Y|ڿa޽/i!*2ɮ,G?]fmGÇc>߭uwX"]o0-K,Gkf]'r]D╯|eT0 0LIŖ+ B҃%,'XΜ9e??H`D/1kL 'IadG>2{l53 }kc^/2$cב2"n> /2HFtd(0'/u=2J=z4f0 ċd"`!$=(XZA2xbX]GfFH!ȿe.%xO~23вD62!џ+)2$cwHKG_^KȄzx,{M//u1$H"ba.YEH(XI B|(nP&`y_n .l=Ui""dȉS+b违$%:^b;!Cf*++}(<̃"Qd.',)K"s8p$r2/0 xl+ B#>B;qC1ݰi1?7Ҹ[Yg{cmo嗔iॱF_L<"@&[ݿ?ַ]zu/7"ӟ"O172lhx+^aH(d'Iem~YOy"kDȣE.Ot/~v2ǒT)^)2Lf+Fgf/Oϗ-@"KDx\Y0躈9vkoޗҗ/aɥP,A2xE"ʤkEaC9C`>kyrȀ;vXAno6вD67n܈jtvvZg֑nkʱNj ^)2HI{Hw|ȣ Y"{D$O~r"X$4F>_?qDӡa&CBHzP#t k'Ka B҃7(X\  0 ä B҃7(X\  0 ä}}}}\h02e?q!KA0 0 P,w9}Б#Go}E)19%Ca_@.m]?7(Xaa BׂE~ ^)z-XaG~]d{Sy#n\6T .ªM!2egcE 5•#X]cAl>s"ZDhYL~'/`_izٸ+BbmC;F&l4uՠ8yuh?XP䳆':0\1aڈ0ϛ,8qaa_`y/^nb[qM_ A~]kAduez丏ۋȯk>5!YD/ΝAcue{0p ڹF¨9q#7a}\ɚ06"ь^ڄ@խ>.@(P ۍ{,dδ`Zǻ10Ћ (l/ E2nxܠ`aaW,X䜽I~} +݋E.^'%ƆѲ t*^V1td䊬om m!|/?~YG֕m{\`7!_ȤzXxO~̒^~" ="XṂegAڂ~4, lyb`k˱&Snĺ\$E7HnP0 0 +F466ZRCꯑ,[ 'N [naժUhjj?"ī`mDG< ):x`҂EpBo1ƯXr`, !W nLk"땒 N]V Zǹvݱ"Ԝ5-+vև sb7/GCtpe[;p-2W"_}HM<WV"(7@mۇS@A%vÅ!ae(h 0 0"5 c߾},KDQ1EĊH,Oj@.2O|^|`KUUUֺ^c øpB҂E:;r#I\a!Ŋ'LoI|/Xۻ%&Xtz?jP".Bm8=c܊5%XV گڞ3cQGCa;SѰP1j;(X8p ʋ"%~GJ\qG7s"DZ\`Y4Dqaa_KYv"$H +Ej87"KRjB/EjAٟZ8W$ԫ;vΝ;1<<`17z[rmd/2f)&W,* )W A~I#I'726w&"cZӛm~МIV%, 0 0Jkk5 #Zi"Z5`oڵ{&'X3J35HT!H=ϟْ` p!R ].r`,B%N]+qS=h=;8w-%{a}mh 0 0"V$XY$.DVd=Y"PK$Xd8ҵk,n5cǎY5-[|@V*%"$%^/L.%5U8͒\+K8o՛{z=h 0 0"]Z+` oeP`VӃEzZׄEc,24I0g䶲,bn(!d(W8D(9U7yA%Dqaa_ıbv#ub2ɭH 5^K{{%dd{AzdBk7"Td 3bAվM}G5/*W2]&`!Gh 0 0'<O|HO^haD3HDJ& <-u*ňhO1͹,Wi(XZA0 0 H6DIzwOjDC)uT׫n: #Ht/7 T0WRa)ȕd,A0 0 MyY c9;=U`KJ.AzZ1%'v"3 !>B7_C6AE#څZ&`!G aaŏEK2<l+ !>B7.oSu뽡W fsk7uOBd]G=Og_Nl{}\y#oG?A??#o~[CﱎQ\;s-]ǜǓ:K4>kӟĬv&-/x^yt;ǣEHk^9wØISr +rMDڧ܋>0h|E÷e^Η>+"``! !>B7B7gSɞr$s6v'r| ˒0?/,,$`!G a&W3YCs~_=|dI%_77ҫC$9EnK?Du!/}ƒ/_uSﶎ <׿l-+fs}?2ڗZ>?׼$=d&羉x=7~ks/x;C\5/gˇg$4,,$`!G a&W#ʰD}tM^ nf/y$v"CY&sׯx17&)X^Tsr߳"ՙnSfXSk2G' 1_#so=$|k_~zmQOe2=^ ǒ=)X(XHAB , 0L_} =""?K}˺}wf5k,oX_"_G1'ChM%>/]{^s ~{A-Cr|v"2E>[QP܂7(Xa\LL*7,ۏzEn`$䑼?u`2,7E#:=_ihb 7fzڷ}vVH>Xڜ_z<9ǾNs "t5J&)O }jaE欑3/~wD汑mξlL|`!G a&W_uS*bL?EIhɟD_K A`0CdOY9l!Tk"̰DAEzH |Ao(fs"}3i3gL(k'{Hۧ960aaxO:1i"#  (XqCD%SE`aa2a;wğx3 I~js$N72wL̪<GmyS-Q#O^}xn\1Cdb"WDL1kw/^~LX _7c։w$sr=M<bF^9ۧp!CuN󟌮tLyDi"]vB {-7ԥ^uC,,r8mezd#qaHDTzȓyW}_zdH/ TE|䗿p,#hE"_<ךCz;\i1 +Bn{Ǿ~;"7DyȰc:XA"d:NDCC&ՑYһHfē!kDko#IrdX{ezuyl#z9>'"[M֣``!K:r.Y~ Ftb 222B0 0 3тEj0`^hY*zd#q#E7F*X\aa&H`)XRAorL{1 KVcV=>I+)¦S𸑪`(Xaar/ !Xt(PK$휙,8wzy  P '=rf3u|&yh, byELeq~ , 0 0  !A(Iu;gf˚&\-0Bb b7(Xaa B҃ETM8%xmУQ5mCBB(܆۱2aj 'wabaڈ}1n?['!E6Q,Ϻ׶mh>Y#0/`GU)CA,L>ZQVF vƕG #8P]V`GنFܒ_C@Y#'eI8+P"XPp_SmX7"=Ėȱn8ugvP8m;G , 0 0  !A KRA79 L-3sLCώR +d/ϢejW`w2ka.m_5%빇K^8ًfl[9΢2V 8R9Z!܎~wƦm=볦E^({݋}. `k'Gyxg5<F͉+y`UUOwz[Q9-vSc0r;#WWGF1&bF O1qk+ aa`IQ3.e EśR ]17,G@ "X]#X<^GǙk', 0 0L&Eׁ )XtKBA(z.139t<(ڀW&fםu%wpjw% Qgd#\;Jlk>C8C%}wZ0Ȝ(Jk׋=. /my=֏+(Gky\PRwz3ց-c,ފށYwŁ|y]T-XNtgnx#Xݠj"$+X]F0 0 3O1Ejdt(zѠK P8ȒT%$[  -Xd1 @0 0 0'X쵙+ -Xtꆮ Y(|/X;G$ˁ에lE7@nx,s~8ݠR0 0 dwCH-K ^AWd[ه/!يnܘobū`(Xaa2L`P{B , 0 0  !ABэP<2-X ވˤj, 0 0'bVl|\(^B B|n⑎`qzT3 0 0Lf>KN `!ć(&X_n520 0 ٘ n`!$y(X!!i$KH{c}֭B0 0 3тEϿ"5,bEu]PCtCI#XMtK0 0 3I$XfB:Rח,$W`!ć(AKil.XI, 0 0`1WRI-$5V2uP2b&u,Z^#&DBr B|n n,qֽX썺E #YH).E0E'OZ7y|cDǏ)!}$I*Pc#W-WV2rE =`rEc0śKqIDAT +,(itO,, 4ڂ,bђdѽY RGUI"%[0 ---s1B!,v!*+ZF+^1i~\ ]z,%d1`!I6/EKDi^,0ũ]Ha'ZDR #&;Z,&"ZD']B!$w=RɔDbŠS{M,zxP"F]WR\&n,N%`q4٭ ]r%dpBLO-[LwZ/GT"oDHO⤋1B!dZ$)RsEjxrEj'3bV^т%\7nu% e(X1arB7nJ: dI$Xb1XE7v=ZDR$%ShA,"Y qE!B-<2J]C^+Nr{EϽUxb'S+s Y (X1arB7p,$qג.X$b0=YEH {deI#E8B!]h ;Rk 7b,NrE'W(X'nI`ɢXA7nũK<"\dmFto'"Cm_X%1 H"k!B-MнdRňE8hB!dd>p*^J^+]wl!{.`!ٌKCChݘE%a9n2-XF:bp-1`$ٻj1m"Äd[]B!$I$T<+z2+3)XtJH@R_e׮]8} HKrQ[PkanR,!M$YtC$YtE܆ Dw5dt`!BȔDREuW\тyӂE׏( v|-XrE#Çea~'pv[=X Kʱi) %s [F8n1W"XC&Ê 4]YS׏"Xyo{Ssf39vny+}dQTrt#`$8iN]Dz"2FwM-eإ,2mB!  Nh! 1؇it4J:rE_*rEܛ:, XCӂ%PVDg܀ʢMY&XFڱzo{؂eF3*};8赘n[ >k @˘~vL d$4^%-ТI`iqi#E8‹B!K ]hOh&WKr_ =D 3|H~1ό`YӄAJU&X%\]Bp)܉{-2`mtcd O%]".YR-#Xb#[`!B.Z*Dr^.X54^tCס+$`+>_<>ޅ*G08\wm=2n4W!XRnCEIp1ʷ١3ZL4(Gu&q0)A8Dxjl9؃Q3`)@ݩ^RⰬ[/aQq(r.XЎ:y5PXV֋oTF Osx؉-u{,1pPf.Cus==WaFVbyaC([׀+k?+g[CZm; O6ͽm8*#C(ZU#"4-Y"F5`,p,v٢xEEK'W`IEKUܽ!/$àhii+Zh27|(`iFe Anν @%^=Ոu[fzW̕ ZL^9|T:t7oP+_Ą@ 򹫰vvU8xy2X%Mkv46$r~խ3` mQXt݊P/a<;#v0jN\{1ŜCTܼ7a_(|G FnP{Z뱦 r{|%,pg n)#?ё+8YF<=qm1hx,B~Fo;Vԯd<d%K2Cx'-x*ZD hP"d^]B!${Ѣ+q"X'WX'XR+DC,Fn===8uwђ0.=4'8;Wzpp]q}]yXxQ\+Xp:C[# 7bSC;F` lԄnbFn]lj-kmCy=1]%6O#/W!BZEW!}wqfsqöέuԡWM\L]=`)0DH f @9^=zVI3nt7ɢ !OVA v'L&d^,ϟSB!$J"tݓH$#W]t\tSB 8"Xޏ7{CxE Λ!˜9Xv6#Ғaxt C(;ܷ `G}Qk Vdttl fI2P]sL<*;1:S9, Dz1;x0!Sʕ%(*,@A~"4 x,^,h 6Xb: nt#4)Y]$x-gK<-= B!$т$Yz$+2-W,u)!ٌ/".Fn1<|FQzi~4QqTrI,XgݡVXY@x953=H2.X%.qXkGM0M2|~5Ǎ;,qUEՍ83x#0:ss,{I MlP!7"ڣŐ`YLdaB2.!t7YmG_gDsQՃDNp쵙>sd1 l*I"@KTE-5 `vLcBnD/.V+\1.W,(!ٌ|˽W2"VzX9X}{֠=FL\9T@. NΟ`19:""ވ'!MKpRj-cu{V܅5|ص]LNVI~`Y*X[ !U"+YR-d.Dx Z|,4"YDJ/]B!$;ѵHz.UR+n7KG+$?|0'leAKUDnjQ_}8u`JyțJ74>mk׵L%\9q{_&K jMDfۦȱ`N \BOKVCX}⬘pe[;pẕ>oE"h7Sp}sK!;h=rzV6PT':;qGy^{&bȯ> N,-d7H-ZtqnEAI Хb׬.B!,t$T!XqIu+ σ̇("Ϧ9?3μ rû`y|6lĊ boޏ9CBh-, # 3Oq sC\k߇ͫK Tšexظ`E+֡uwc8mDi8Շ0,(,-KR!B!$Ѣ$(WYṖd1hq B!,u IB,8ZdZZAB!# ! !K-XKTsƍ9 !BHHRr !K-X[ء`!BH%| !K B Zh$"XtA]dBnt[zGE !$# !K-VТ$UR,نERݻww%BqEjh1DRd`!'h↖&ɐE~gbbbB!~rCeXg,Y(XO.$˂A!BDz3.W%  !>D7ɠ ͛7爋\ s{B!BAɠ/BHbN)y.J B|.2A. e>:::"BC0B[}vb`!X UDB#e: 0B!d7Yht]EI,`!, tѐ F$`ωB!D'BHf BȒEn`sNB!>"O B1Ňt"`!Bk! ! E"_!B!  !@B!BI BB!*,2 !B!$U(XP__oB,B!T`I ڱ[*JQ "\[usm#h3+M(\'#օ:Sz]0q~VU gx(X!B!B,޲bTiEg9vbtyag[== ͨ 森ќv#Xql3H;@m \B!*, X29%Ca_@.mheI P܂B!*, X;X&cޛC8xw"7SW< 'm۞΂ o`q#X6 jʋQRQ᱘DU(,(Ecc$S3،e(^[bS׏"XCQe089W"XCތ`܏G$P[` ";jF),ú]qZ&pv[=X@Y#ϓuXQO~ V{VfcAl>sȵ?5%PXV֋03 N݈U Fm& ޝ=ɁWȵe7{q!"׾mېŃB!*, X}^@~t^XK^[pLz[PQ@1>(Z׈3qKW5g_8P;Zpv`=X0."% +p}qwY(ٰF+_ul8:hGal* `nsڹF¨9q#7aB{8U!p {Oa"բK G1:r'k7n?0ڶEeX Ν@ѭ(\×[^!7p[J_׊36GE}dª=8ǰmeʣ:#AB!BI HIF2.B8{^Lς%Mfיslֱ(.~͍/0BkGEH[*C,al:}wXw,{p~| Xtgt=޼2\"Ts8 9sǗf,!\{FHKcftkϜ1X|~r4-!ӾWgYCXWmWӶb+xjXާCmp14UzPwH$IjʀeLҁӳ=iYOWZ|a8a)7q+ܵ.-ݕftJK6٪W+$X~=`|Uv;;<2}<ίn[S%_eӥXrjRH=" YJk X>ݗv/KǪV~ߗtXek+U|~=Ə#ڡ$I X-#Ϥ;#:+]yfZv,=ec|K_k9kt`)W,!]&Ys,y8=n$oqn:ł_~Lg'חi72`!Z=?~nιz;nUW{mB+j2t[ڃ.}_ X$I$5e2oDMh|H7UP>[Zݛ]KiS5X?*>iي0SZ~-Fmk=ƒ^ە/ٗc Q`))szu꙳=]{]=[oh8E{V,)ڹfbږf#c]ٖf1`-]ɮE+bMj-H$Ijʀe"`|.N= Cgӕӭ}iVל׭벮ԳdgZw:^1+-B[_;-BCM:_Ofu[NwwusRvjJzf{ϧӭK'-9x7}Xft o|;_ܝfܓ޸OoHnKG}.]iюg'~YړfؓݼKGM]s7=t8m_(N]sҢ5?_li;Z&>s2>gtѴyݛܙ>zszhcai5ti٦9S_Χ4pgثC皹`U1gtb^o:׶n%84p'ܹ:-Փ}:SNmL լ忦GѮTyYʭGӵuwнj?iҹC7Y.9{?S`Yy 9%-rm#!_]OG.O3{QZlz$I XM1)̀E$IRS,R#,ӑ$I XF X#I$IMHRɀE$IRS,T2`$IԔ$ X$I$5e"I%O?N81b$I=0`Kg>\UsI+WLǏOo޼0`$I΀EJ,y楅 f͚5\ݝ.^8bߦ&3`9x`q,~Vlٲ;qƈm$I+I*t&X>|ضm`` ;v,uuuO>=b& X~,,$i*2`Kg X͛7-Ϟ=} X~,,$i*2`Kg: Xs΢ݻGlׯӁEL)Z`Aڷo_-,W\Ik׮M3g,˗̟?ݹǛH~-ZhZti1ʇZ?\~=mذ!͝;gɒ%>|պ`Çz===ii#W^׸hѢѣuy~W_vF0slʟ>}ݻ6nXL%&lٲ$I#I*tӀACvB@ǜN7Y,ŋmG X8nl1cFZxq[Nϻvj;D6w XbE9Oﯺߞ={OC pܼ'OvŽ{BS=۷q}Ξ=Vk۸Uq=mbۚ5kϓ5L$d"I%t|S˗o߾0N<9aZvQ6X,G- !sܽ{w߶XSm4Q4y(lϟ/ ;3W.mݺuvPN0"0$ʡC/… ܹsgx X8߿/F谍,>p$I X$dҙNDXAeKQƨj}*lϧ,\3#!+̙3>6mj++`iҶp,B5hN:U)3Q}XTaJX HuvT(ceL!Gܟ=), m2Q6{xkpn>ko ӈbĹs,$I,4̀3,W^-|[%-NZ(O<'X?>܎-E9TÊxSP4&mCm[$,3x|}#ܹsg%vfev*xMr>;VlQ3ӽW>MV8w:2G${`"I%ΌgH |.3kmBv( Xdxσy/i&G F T×&mc_O0C9CvHmٳgrUU+tm*|ys´-9zh+WAWuهv}a_lXń%I,T2`LЁSx13o?uƟ茣:dkgIpXnTT.B菉m49|fYY}%3 <'qlF.8#I7$AOuM}c_u5q&+`䡒$IʀEJ,@Ǜ:0-%˗F`t0:D0 QtrȑaD`AŋVLmc!@A+BQr<ׯ/ )3G8kh~]0:=+>o6s->ĂƓ}S$IW,T2`$IԔ$ X$I$5e"I%I$IMHRɀE$IRS,T2`$IԔ$ X$I$5e"I%I$IMHRɀE$IRS,T2`$IԔ$ X$I$5e"I%I$IMHRɀE$IRS,T2`$IԔ$ X$I$5e"I%I$IMHRɀE$IRS,T2`$IԔ$ X$I$5e"I%I$IMHRɀE$IRS,T2`$IԔ$ X$I$5e"I%I$IMHRɀE$IRS,T2`$IԔ$ X$I$5e"I%I$IMHRɀE$IRS,T2`$IԔ$ X:Օ~/\0Õpر}/\P<ԥSN!PlC1i޼yE۷iΝ5̚5+mذ:/_. λhѢz8p8O\ׇׅFܻ(r|:{zzҚ5k˗/}s޽H?Z&M5>Ҕa"I%,XjUQNwޥse w8P.`Y~}Q#BѣG?^z8%K 0hӶi,eTs,M,T2`h˶mۊr~Q(LEj>3ZGe~s]WG0#Q,Bao߾3#bLPDP2!Rr\FD;I؇2FO5DO>ESSM>Ҕa"I%ΌXbDD[LN5`=ϖ-[2 Q.` %!zU7o\ر̱.xb1ʅ9q-Jjͮ]+S7{uEٛ7o2)cTӁϱ4eHRɀ3,!DjƍEjRHԩ #f1(ok`k 1Z|>rȈ}qcv1e:k]S'Ke,RƎci0`Kg]Ǻ",'O8F,1ꄩ:պ.-|fNLχFDKI(y%0E:lg$KlG0UgKT;|)ÀEJ,FbxB8XDŽ2F[nIuիWϬ)o!L 5Yi9qLv/E7X%[O.Wa:DuX+E{u֢),q O<n7֧NDqܘH1nbTӁϱ4eHRɀ3d0-B#ȧ GQ X 9SXh6ö(p3HǏ!uI/u1sۉxOF7gϞb;aRMC/ў˗D & UCLfZQV'M|% X$dҙǒI*H4Sj2V_?ii:-yN,G­ӪS=~`{u_o6@ ?lۚUUmz( vN=kiE?Iv4gCs< ΧOiVe?u~>j?sn{JlK3׶~?sy=ɝ |s,1`$M313:i/AԪ{.ۭQ!G|&5?Fn}qKBB2h|DMnGp5&9MHRɀEYfǪöX =rˆ[[_Ѿ}}G"~ N~mԢM[l{G{=FQ(8v ܀ER I*H43S:cT;5ZhA@ @6c%sMkwڏˢ޵=k0(*8?Z3Fx}mu _۪l X$0`$M31:AcJn/; X /`"p \Z&3vFTlPer,h-[g'W+P0ȀER I*H43S:Ftok5Xo$wk?xNxˉKGT, zAsZYv7^x#X8?1ߣ]1`TˀEJ,4LFXhuyUq:,cmύTàmS~^5L O~c,ehױ4xn2y匨o)ks~ mVYD X$UHRɀE˾rּ>;ZYxiDa֨ R?}Uƽ[ZF>KS/)9 E@${PwzsV; X$UHRɀE~4).|ޔAtyKbDFLvT4^B[ǩ#KBy{XOuSx3̽kZu}y .ʚ7 1uWN5s,מ..3VF"FpgV,* X$d"IdtLU:~2"яz#Z :Λm/`Sm/Mg ip/ey U[xEW#%da?gT S>rzrBcMۍlSߕ I*H43S:ˬԐ:lNu?iLs,0`ݸq# rJzA†5Ӛ55 [M 29s椣G(h*T&d<ǒ I*L JsM-*Y駟GpBo+'-[ 6(͋/Νrq|18q"=|6}_^|Y|WZØ)kupP4Y&9MHRɀebnݺUtΟ>m˗'7?$Ν+AllQCf͚}?|6ܽ{h_MgQCcX2 X$d21.:uӁf̘Qla:ѡCN۸PHPk׊4$zه2Nwȑt޽ի۷_~)7uǩ{zazYkfTltRql7o9걩[BgϞ-?~\=zT|?V^VܛD9d m?sL[6~uvܓ(Wɳ׏|!hV^?|!]x8>^&a ǡNsgl{ggggkO2%eo޼)>s=qxi3˷/]4-^,?Îci0`Ĭ\lW(ѿ}vN!u,Yٓ.\XEQEgI(OӍvUAر#[(˧ڼ~:-[@ݵkuqu86S8Ν;ӊ+:.Qgvs ؗ6rK@ѱ̜9ho8yA]MXtbj:36mLEq>!'w/ʸgr}l5Py=۶}Y{1L=sƍE b<`!0,˜ў*'Fz0gq ޽CA9u {wn{o<+:='1״iӦb}ׯ_O[n-X —SM>Ҕa"I%+x^N;VZUt4өCJg2%N%Lg0!p]9W|:tr/;t4e$D~MA;iSLyg4CQHV;yiO\Nuh3|rk[eEh#I8V2ָܧ(s'?ѾSM>Ҕa"I%+tA\ FP|X/1ң:mfrpyR#X:i7w|{t#(`j Q 65pԑ@h@x8%T#4%>9߼ys[};qXo~U1߹caT'N5N#MwOSDŽX-($]Gӆ,XPqa #k=)jx@y:?$;|)ÀEJ,c3GG2_ZFlSO{#FuЩ,fJubxN]=@"ͱ" b Jl"@ H5y!FvF{ΩmN{Uq bj#o$|qLB "8/!Iى:xvp֝!DC8OPՍ!1ts,M,T2`hc*:uE80!/#T 0vtllT:ygy`vs:>G|ȃ@G1h$iRQ<\7R`t究qXdctWM~Ua?F(|[^0BHADtX-hoEҔa"I%ΌJT3"/gtB`(.NĚ da{t`JSI:"ȃF8I_\3Zi稆ܟӔ>wC~qN{'ՉФzS`b#N&:ܓjQ}Kt,3+hH5 {1B/puǛT9_iAS/q\wɀEJ,WWaG:1rt#,Fx_OREXbFLʾA~F'H'WGiT1l*YWna@H1A&u7ؗ!1݈XL"g>M|iQ1Qp*Ft_xW aHHNpBp=:wwq/6?Eh;e\uhau8Sb B=sK`o=;7bq •-M{B5T| k!"[_6I%I*t5W̎б:tF:)=txSN7:1m.aduXF]4O^F.Z9}{ 4h,"!Fu!9wl眝W'X7w{Z Ϙ3^QEĨ8#EQg,L˧'PD" ʟ)B:7|'a9eUֲ pER X$dϠSOuE&:*h7 0k4aud_AQL}2x !I7ȕ5Lo kC#{8J_0t쩯Q\{ԯ~}1|YX(gqQxO qtOjdMݠtS{*vᩩz{iަ{_4khf{mXf5ܷgֈﯤ/՛=4OX (e F$J I8%&Q O"I\apT1 ++HVȰA8 W`LTSLT"'A< LJ\!`IT R\!(#'A< KbJV4 Th( EWl8 j h\a$J "0 8yaDG߸@IV0Ob@~`Vx`LQE/P(S ȸB@&*٨ +1pIP V0R1Vϩ$q3+qЩ>NMT"dU0T1+E2D@%!(J+y+.< A(hL`7P"xEte S\a$j $(~QD?XQ&1AR0bJ,$eX1+V$ +p`;)JB/ObPӸBAEω'S1hA.O"I\a ĸB$N +.\!(ކ`cD%)r+KFPpR8$(\ +BD2)Pc`%W(UnW*Jt p< ĉ첀€J^J^ኍ'a4QAӸ`jubV0SBa$iF/LXL %Q"⍂>\a$,UqŃ'A8QJ$捲 *zaP'W$AA 'a< $` (JŠ6\V\) #pw+TQ8 +?`c$,(A1Wd\$(&Q*WP hRN#@?YxÊi\wUJ EVp`IP Œ(٘Rp:+LDq$i)S+ D@7)`c$(TxT)tXҸ ,LV28B@ũa4DX`7Up$8%QʾH":2*qX1+`#DD  ƠJP< @a(B:B@E0;X(pOCXI+ hR4QVL(Fa$ibJ^*VWDOb`~p %ա ,JԊ?hS! 'a@+o`[V<" W7*NpEV0O"x'~٨ Vl< jeT *Zq I V ኉S+U0 (~Pq" V|p%* `EW(pŻADa%W0QV2 +2HҌSHB`E/\^1x*NMT"dU0T1+EO0`< JP Wl< A(ǕrRV,T1+Z/r*q1\W"0Q/xp%"a%W(DIi=DPBD% *+с%'W`U" o *'Vb )\ ?\D$n&aŅ+E +qE8T(+q%@y+BD2)P3 +\ap$Ifob=(\P2++X+`%!0;X(p,- cD5_X1+S(60004+ +p`7 *pTED% *Yb V<X4^@ X` `qeV0RPa3+T+IZ~ w9LT(1x@+`+ WXц+4HfV@IPaE3)`q"_+KĀV(D2>H XNq(HF1E` ŀ *y+KƠ&XaEPq*dX+OR&1AİWO,ё!TÊf\1+TQ8 Kr ӸRȧVGDB~r$q3*v E$,/誐NP`eV<+.,*Z`ņ.MT9L񏀉rFS+R< بBa%!HF1%U" 'a1R?BQE0VT1 +XX MTSO"Wˁ *jRV<" WAX)5+&PqXL V0O"x'~٨?RO7-\0+P"xS+ č F/*NT4 *y +y+"X*LT<`eXы+Za$Db$,UxXIPMTo= ,9JD@LT M"xIXHƀJJ l WJ J!Za$nU0Q8 K V0Q e~b%QP0V$,T< IP&`%뙁L 8P+B/ Vqj  0blX1+GfWaIPU0J + q@;)+>Ba4PPg\YV(Êi\WHbP%VL+IXq Ad] TȸBDǕBE\!`ZӰ€JbIXLT+ULŠWIQXa$((AyQDW&N`pXa@%wQD*XX1+&`%!r V`bW. X_\!W< A *9PR+6P(QX!.&( &) 'a@ $0xPE;RsO1`w&`)P4Q)?`c$('A1WdXQ%"bVJ9xU\xLX AVq"_+6E$J h\aD5_T+'V #I˾]@Ix+Q8 UL FQ% VDAͰX/2+ N ƠJ+MTc0E G$j'V WJŠ+XJSPqG$|ŕ1`<_PŎe V0ń@\!bV A(p iL +6p1hR#Bq$irjŕ*V oSBQEV0ORӸBQE/0WQ%1J6<УXOjPBH+Uu_43 >EE]Y?~?̤~ooVS@q'f ?z/^+n0)6[@MԜYo`@ŝ0xa%0ŠJ &)X`%*NQT(te<2(~B0(1Ws+EtD$('~i5JLT+p%`%?qņ`6XK/B$b - V0/HU %qbqLqG1E VIP `T 63. *+WA+f>&oO75 |hƀ7i\ߔixtt?'?ȁ3#U8\Ik4?_~#g`R,Ub LJ{xhdz ^ *++IZ!?2#I%Q#D$,X$e\)S+.< A(hA'@"xEte S\a$J h(~QD?XQ&1AW|/Ҏ+6$+e+ q@7) +Ba4PP!bW,Upo,$XZ?qAejWZ+͙ OccR/l`!A[t©GÃDb$,(A]3T5羆7{Jb\!P'SA#mV0LT" '*JB\!UȰ+KTFA4 œ JE (A< ĉ첀€J^J^J?Ơ+)ae H #I`Sb fV0W0oT 'a1R?QTzb / vҺKeSeܺ~8Pr ^_|+/5K^ĕ67 O7??lS.c}yTp:>u^Jzp\a$,'A %XPQDJAJYX1ubQ8Q`B*(1xD+2t I(hTJ9I̡(~< 8 (APq"V3+QXvĊP0őW(x#xS+6L +'A1W#f~wͪཁmճd UbJXxT+X>!p9 WOfR+Up`JvMM*ga쉰^*tVԃ(N_̇Yo8= J> [asp Ξ9 7ςD{0i8'ò SᵾXV>VN[?Caau0pD'LE7@a`pB%TVa-@% gU.zPT\Ɇ|:B!T`ŝ:WԊ*+eS Ơ6Xap=Q@ JP^ѕS+ F/*NT4 *"x'V<Q%qņ.MTS2? &QIZ` Vz)P 'a1WEAOS)% Vp \aDqIΣ̥ \{OWcyQq/zzn56A^m,L'˽R// 'jkjlZqI0h%؏Ꚛ_W#q`y|]tlކX삀 9o3R oltXp:}z۵5`)WX( V0UL (~QD*\fVPIPqhRA @+2(J *Zq` +pĩ*8L+>Uq"_+LTc0E & 9H + %Q"⍂J *DAE8-=5{w}G` _ ߖ$4XI+X }Wޜ9=+S:#ton>~V۠טpwy yL4BG 0(ۯ }" l@ĸy,Z8m<sjz!=zv/7} &M_"+ WLXLJ+q ǰL+JV Wl8 jeS *WT< IX^ё +tj;*Pc`E HᢈUV!A.\8lX1+&N`U0JV/B1^a%p^\INsx}Ϭ, `+ ,Ib5Xd0<]|.\SuW& w@M 1nǦ R/5K(MNUT4,+~5Aˁz ig\;{U2h꺗3KXQux!\!4Yq&M=<9ofU<X@ |BJbs @`$8%Q+TXq AM6+&Tqҍ*N>bW(dVIPObůȰ+L#bVpIXq0P@ _Ɵv$DxWTI +PĊi\AP1+ D)_`bI($)U V0`I+Q8 nXq oŋ+]ghtcX$+X)ppzK@+ֿ {uNt~N(:40bAJp{K&CfiꯛXIo(V>JDER\BڋmϺ{`̈́o,L14Zm,;sfZ ˠ)X(x+ IX)\)5+˙|`@I8Q8 K UV WŠZeT +q ϩ'A@ĥ@N1a%0X5Vr+Q?XQ&1A|zpHlX1+ #ISȸSXI+RQL+'A1+pJThĕ0`9[u z-j/ 9\I` ca_3w8pwe9;7gEÎZwK{g ߾J2C0xx{Q>O+pnH,gkJ8~Q K^\?}*j(F0qK'2pO,YX=7D@T)4XB0ŝKL FPpR~J!_+KTFA``Ń+ -FpJPP2+ $N0;X(p, & cD5UaXap$Ib+oT 'a1V4JrT(]"gKFkW_XXI> Z(}W gmXB,V aC#2 ۹4'p5gm_h```ݯ +NxeG`9 X+}7.92 O̘ >6XzD2øBp$iq$e W8Q4Q)?`c$('A1 X[\aP%W(UNc$nPxÊf\1+S4 ƠJp"_+|9Q(D lWlX`Ix*ʰ1x*'`U2{8K֋#qs W 3e 3ך70]2 N^<?݅p*:ÔC0w68Ta9=܃Zh+{C;a`^`Uas4<2uٻ ~7wH174+'mo "|,W\rU:5,) KIpK ++RJ VȰW`&ap}VLJZaEWED2)`cPE`%(~< ˋ"*S+T.X(xwOb/eTI+*aEp oO"V艕B %XQOb`%14 ^\a0+N~OӌXK_Pl2J+/E*pW߮ Y7HJӡycNW^ÿ7g dJC`AgwMǼQ}O֞ >^ٰٺ9%ض1WIϠp!dt~3[|ԧЬ>fg-ÛS~dtNЬ7 `S+1Ʌ9 Kasi0%u l@4U?Cp/x#X5UL (~QD*5+`cD5*t F`3+NT*HX!p(~EBBD=)SI* e #q#Q@񋀊M€J(~Sj W0QV$$ "04㰂) ` DW0oUp 7Mb@VҴ8Xx'=TUu"̲ebX]_.uU}lֳIX)\)5+vjĉ V€jQ< JP Wl< A(TV Ԋ XQ`.$D'VXQ (~EGӰ+LTc040X%jV ő$.{򅕄B }1x*< *+XoY? lJeM榷N:T,`qpC\2Mǜ feai}XlT`ũֳ閳m?~ܹgIxnTga/ =~=V]6?:+郰Pԯ$f}C?=g/BeMuNZ] pШ0mQ8YU N]+dZ4 ^] ~`j;ZX5 $I2zbS@Xb ƞZa$JRQL+'A1o˦pALq# ^69XmC%Eq%کp`!ÊUx+Y`e ?΅_Ϟ#=IPOX[\1yjŅ*Fp,?X!ԩ FDB>bIPKTFAE`&aŃ+ S.cP"EtuYZa$J V0(\ +qbIlLƠjÕ`XI+F&≅*qTa4PTaqj $we.=W_AB?x1 , }.ǒY ĄQ1+%(e+E481hw&`3+T(1x@+2( hPц+ i ī0P< IPrj(ǕD+Q\+KĀ lHƀjb VlD`!G}FtTHb KD '*YB$j he@-lA{NϘ5,:Õ:`!Ê*xm\\J6 AHƀJ>J> oqЉFD%)L A$`N'X \aEWŀZeS ƠJAK@IX^ѕ Xr+ DA-B/(=3PXaů )xbE+XI+GVVzb%!HFAE` +pIXT *p%VZI>X*JLX\a AT1+ E! 0:P8Qq%*`IP  U" (V|pIX`En`dr *8Pф+ ԡiX•+pADKV W4QV$M`%c$N€IxW4QWBOlڲ:͙ؕ>rĖAeV0R1*ac`Iƕ;r F$,5XaD5)\ E$,Q"p'a4Q6\a@%VJAX1}jIPO2+69Vx#UXI|bE W(ULÊ"0QӰ`I|OX3VpI($Iv + D@;)`c$(TVWFG$NzOxJ\Xq\fD%Ua%< JULJϩ$qsJD\UZxb FD%*NYW|P%1`T0&*.SX1+LT+ V0uT+\ap$IfﳂQ@ JP^ё+XLX *y +QU2(bWQ,ő$V0 *z`A8ǸBT\ L+UpI Z]EV0W *a@IV3+&Q"U|p@I`MTRCӰ1x@$)aE+W${:Pe g'V9\I+ʸBůN"`)T+>`j'V VIJF0}1x*+}'V0T"JdX)\IÊ"8 `7MTRB$(1*aE ꩕$v$V0 'a?+|jŅ'A1hVmr#q3~bE]ɩ*p _QVp`IPrZ%V WlT1+Gf vYJB\!bJJ^ E i\!@,O"Ap1xL )Tт+JfV<V\BPDS &*LVHB@ʼn‰JjWp2(  *B$r$0+P"xS+ $Pф+ 5(J! &VXVR(2`a &Q"⍂J(( 'a1£iX(d (1 VF [`Ń+@ `7MTꦂ+ E$(EX!h)PQDVW(x+5+N`}0 '*LqgV`&apV~ IXPbˆu\$,&QPц+ Jt\) 9Tc/'AӸB%(*NT4J E._u+KTc0E+ؐrsb +W(x#xS+,:` ŠJbX!`+pm2?$q)\Jt`!AL2dJ RT\10Rw&n`WbV$&XQ4QShT1+En`Pр+QLXD+2p(hLU,X x0,\a$n1a%0P5UN0`A(p ?,$eÊ\QD IXXр+SQLQ(~1x*+T *1pJ +I VJBXLJ^ (\ JJT"mV0LDPI78 T(1x@+2( hC øB/'A8@,WPkX+\$,&1`j fVIQTLXr+ D; *pPX(d)Xa/ * ٰW`7MTac EUV WJHi3V0 'aJJ^ኍ'a1hVEӸ€J0Êi\wUJ EVqj h;bV<٨b W($-wB1r + q@7)`c$(TxTPT)\G$nVJ2X)4QI VLJS1R})S+T +.\!(#CӸ?Rȗ) (QP+  s+FpJPP2+ $ĩ*p F+_`%3%A-bC &bWlHFD5 #I`S VlT++ ?x$('*QTɂ%Qb@E``%h, + E%(EX!h)PQD-?a" W W8Q4Q)?`c$('A1eJ4X *Zq I̡ F$('ABP')`q"_FqA" L+€j9Q(D-+++S" IP $&*QP!WPц+#H'LJ0h X!pT+MTb ApX1+>b WDB W;V`&ap}VLJ!? 'a0Qb6XT1+ $,T< IX^ѕS+V0(~Tq"bVi# (~12$Ӱb W2(+Ba$i;B!E` DV oT`E W8QW\x(BD5SJ$*+nTL+ E%( *++HVȰRjV0MT#dV0+)\h0`.N"x(~EE\!`\JAJa\LZ3aP# WTI|ZEV(VLJ?ƀJ.p.XD`$IƟ@%QcqLqGAEWxc$,TV0 *+qIlX1+/. &*٨OB0%` xcP%oa`p0ةX(~bIXPbůȸbIX UFA40RV,T1+KL #UXI+Q(+LTc040X%jV $ETI+ ĉ B0%X!'a1Êi\R82I(LTR+/.NwABQrRXI+Js9IZt JTQB '*cůȰ+LT+ U0GUaW(E/8<V4 *" qX+6ED5T0bhm1SxVS{ V}lR}LV`d2L&dqweKoPT.|6t2̜9 tnE+~p=^9y$l<{`1>(nU(|3 or8,"ˣ d2L&d"|y3d\p^xa h[;̈́?Xj֫,2YNE&d2L&ݕ ,-uep4)plEXׯ%96W_[k|AXZtzAZB6ܥfL%4o>9Z3>L kZ]Wo >3Ƈ0~%==7 Xw cB-`w!ԜsZC˖@I_e9 Zl 80A_Z\s> zo~1폯gCaL~|%`鏯Wץ9ЯLk,2L&d2,H`I 56pWt̀]I]%PC?{]:)^03 f mCɤ]P׋U0ttx׋ZCAaά1PѶ8xyeq(5 -Ni3~>vǷ*SQж^'zo;9}Ms0b9lu4/ɥ"; 玵q/`#5X́zX!_KLXd2L&d2Y]x֍v-׋u #~hW=auo+>oU| :8o F; ,?mdi[ʗڋaXbxJ8z"\x/*ajcçs'^ú %B6්Up/|?ڥuu.a*[94ڤ>N@X_KLXd2L&d2Y]bزlR?o>V7H3::Q 7[A6cDXa/4/A&첯}}KE1|0~T 4'SQ+Mv}3cqsdցK..n: X¾A_KLXd2L&d2Y]R luk=k튡)&o}. +f~AˢbxJ/ m+K˸P&tj^ m/;wN]׳5_yЩ9|:9څuЯe# +X8q2Y d2L&d">Ъ%t[[T)C`Wu%l֞Or(h[D,\" z[5`0aϐuPܢ.i[/=n_s~\:) b%BǠVQ3>_璜xʋ7X[RD+3]:zLyBu|pvxy%B_௥Ls,2L&d2,@`IvTZ~GN9sgE-dN5ϠEQK(? >L=uMn`Z or^&`݀6Pܪ# ֯;v`پkrB;6oOYw[`ܖ sf횧orkqnBus΁q=?mFI.X6yMnq5g[Gջ\mOzoCa PԦ?Eq||@|Pnq&_Lq,2L&d2,L`I.X:sO3ܼ%Ag0cfoh}' K i]OV |Q|`)z!~|%ôN_-_Lk,2L&d2,X`s&"d2L&NE,L&d2L&; t,2L&d2,Xd2̞L&d2L&;L&'"d2L&NE& d2L&d`d2{,2L&d2,Xd2̞L&d2L&;L&'"d2L&NE& d2L&d`d2{,2L&d2,Xd2̞L&d2L&;L&'"~;3gU2L&d2`d2{,7}t믿d?L&dNE& +b0?jYAk#x_{,2L&dL&`{ꫭyCd!`d2L&+ d2=xٳ|vnz׮]އ&"d2LV`d2{,W[[ s롤.]xJyfhݺ5u]аaChڴ){nϟ/z)<30vXo>h߾16jz_|8pPkG?^hР~3lK/Y߃C%{뭷2Vygw}?aƍYs,5iҤ?uw^{>zys??|G'|=7tk?fgq2L&d>L&'}+W~F}5p^]]}xf"\so?[?;?]6ǎ`_"w}w#oժUzOƍ_I۷g=~ǀӝwޙy3u)zx} oVضmdmذaмys_8޽{3[dI냏y'/Bx~ ~寿: 8z{zx'?s`#_|q>V̽8_gL&dBL&`>]f^',e ,p=n?C;Bɗ_~ 555 ?!8˟~7lؐ72>|a_g ^orƹ|( X/^l/s/Y&d2P&"dXԇ? =3gz衬;`ѲeK=z>ێ>^>sÓ81xȂ 98~~7ufi*8opx7>/i .Y&d2&"dXױcG_%,cVY۶m{1oHUUUYO;ݽ{̳%2gIg4-{YT,W]̹}r7koM:zr%gq2L&d:L&'6ɩs?MZ?@s9O@}7ƒ4O)s>%[ZvxA0oRZo}I_>3(TwCY?7} gr}|&_yɓ'gs^a;-:d2L&Xd2̞C0"~ ~s8lt=q9p뭷 tg%rm2d#gqrXsC؇~* W^Zyygy&ާi;yw'Iueee>X|e2L& e,2LfOEml>C8 I'f^i& K0 xK.&9cL96Υ%̼Ho>PdwNr>VڹȆ &K=x=y;)O<x֯Cǎ<>sJUVDqt8Ёo 뼏/gZR1:=!߇Lv pg y&$:rh8`)z}o|?ZZ\ԯL&d2YLE& O>ûFͭ{:t{3WG~,^z饬g?AhР~: QfƌÞDSx:uZ(wߵw;=HsÓ"Kps>zgoXpx? {ooͿ/ X;dN8 ,_gL&dBL&`d2L&dq'"dXd2L&d2Y d2=L&d2LwW4333V5I·oK&Xd2L&d2Y]ҹsg%qCdd=L&d2LwW4x$i2jB,'"d2L&NEc2{U{aCko(i'kr,2L&d2,X4g`i;_)LT~nkZ:׻)y5phܫp5}fU?j)RXu!_^ۡ雳d`d2L&dq'1-;3޺j﯅<+l±BFqGzDhߺ3;|`[7Bç̇Tu'^aU{=| Uj߂md `d2L&dq'䫅3Z-^{6h#,^Px`;3C×G!,2Y d2L&d`XI}e$i9ﯽlt2*q}#'!)\l } \&/-i\ \ ~7.Toc156~TB&auЊmץ>?m>7jЭ_[CƷ}/Q[NC-^0~R5 Um]" qY,lxSp}/_Z_o ,fhfN0wZsVo u4jx&gIVP`d2L&dq'u |xXM'^P; X4koyzBCks5G`[͠-OÇ#a; spxvXhyn\5a?nFO_"D9^D,aܫCݙ yK=O~quã A5D ,M@vKtMU¶OC_qk%c=g@߇e M^/_ϫzzrȖ,Xd2L&d2Y h,ѪBf^k{Ӻfw4,v]{S޻!|lÛ44|v[Vî/ Oe?s1#Xd2L&d2Y h,ɪw4ggOd(hъDwR [w|+2GIwᖆOC?F`9;7$ϒ5C:ν`# K@yiӫ=1ըsܱg,il'Mຫk<o]Xd2L&d2Y h,5`qf!4.XҜa$Z8>O~|~O{iͅ- ua.р2xah*[wgVX\<{jy k,2L&d2,X4{U@^KvzDs۠;^ڻp`,7ZjnO~ۭ7FcK7E޿`!7a±oß83m84u-hu& ޒU mqհ_uRXC_W.kz_Eӭ ,2L&d2,X4չsgWޥukn\Zw T< R;`0ͦ%vBps{G3ťmk 6~/} ٵ#o'W1w4:>Q7\=_CLe?]5\9S5{as cøaY>[ sކ`3}Ñ a0opkxe2L&d2Lw,B\ٵk+)\s{=Q ?x \?RK@kwq_x[g[A KaTFCX_ XWO75= -{-Wáo Shǡ=] G~ y-4+ > lRmj8UQ1xe˖n_5jdz˛0D.]m_~Iں,@*! %X/H`=P?ozG~k׮uʁ@פk.',ZN[*ZfYf92$}ixut=pw'\n]e袋yxgϞ:XNjw}vavf?%,]5mF{rEBd ,G[Xji;ԱRQj<tM ,+1iп&xW_m~uŲqF'\qV~}.A`Iz2Mcx*eK`l@2RCBd,g϶O?ݹ5k wyǍܹ իkf͚Y&M />?jݺdm޼>u6lhr~Ж-[O><,}uy2zhk߾?/^-bk}<_ڶmƈٸqckժs=f y|饗ڑGi֭ˮ#I{m͚540fիg ,pf \i&!9dȐ!nJH=K.){6lu<`-Zpcǎr+7S˵apLsᏡ\s9.=:n~i ,o/3o~}viϋ>MLgy㏷w}=B ˴or>F@B ճ=Ӑ#FsxO2K+mӦMQ?]a휇9Ho۶m_z%Oe3|uv`newބ̘1]7*)3ǁOϳgw_'tvSO='KS!M[=\Hk#.2۰a۞t= W_u<\SԍB.z , zP&'6ysNP+'|Wnso 7%裏z(w %=oC}oRIeZwQKRh<˖-s 裏v+Գo93J}|?X"tXM@\sϹhhN2=P7˖|II{&=s~:suB :@~ NNǗСC]ǀ)_۷owKMG#t?~ {Pzٝ;vly?N3gt:~w^~bkss^|Ev۽1:'0K9.t1K 9txtx;tKݻ3 z &KGt09&W< OtV) ;yi΍Oܬ7o^8sɓ'zgGz^IKgLB盲?aWه'MLsngXh0P00tBo4gsx<>K.e0Ww:prChaԓo_b!oigϟDK_KSӴ1<64w0 tH!CۺukWqU(뮻O9M%\9TD`ISgҼwb~a<q/Hf brJP`[)ļ!sARIeΛ]dP6CsFr)^($'|k^\O<ᮍۧ4(*z~)$!D ,H+i7#F.?V^S *pIhd0o:Xtz/^ e(у>t^]᧟~r1lI&߾ź~.t1\3>oO>ݍc4N?gh7A}9ISn|zA?#ù:u伡LHg!:lA=PW<X_oy0Y(UxOI`pݞoƭc s,zg0&ۼW4.r;]ޣ=Zu yvR ,q:<{b8M`ad'iW.%1<VK`B2͹)3!اgi8 ]n?#t6~t\KEP۰Pڑ| 3Kx.<c}F 1Im_2Izxp'z I`Ǿxg =槁`S9{.Τy$A'Pߋ%i,F`~=a`8g/Px|yP*#!r.*~r}!/8=TfF(܄$ ,iQLUb5! %i`2t(_~HҦMl!逜qӏ[,/#!zј\Ӑt|M~y>W.>l!}:ANj ;l魯tpc<ӑ/7t'_gi9iBSsb Dz,FMrS {X06pqh"QC8>pO)$iM[{9@g ,LB)(H:OZP*Twvx ,-{3g,0@m2R`e&M[ *#`P.Q8IWBY{BWbs0ML JZՙ$(\3ip?6b 4&XhicxM~@:(M \^ CߴGqK ,iQ륩žj ,BAK:5N^t۱QC Կv upӔ4ژ\` 0Ƀ!F`B#66!?t)BW1 e(6> ,ies#!@g,ϹúI*LOdJ^tK2TICğ)$^ oW?$Xhw]KEjHzXzd)3k!_4b**xrՙ4$𪡝mnҤ=M:ijdD(x&yP UFBr]bB_ q\ dBX  %koL ^A,@Gc7c+4B X&a7i04Uy#MD=cAx,^97F ]ׯ_ՁNSϨ<b0 mDh1X 50(Ca ظ%T ;\ yF ,D|e%$XxBرc^%KSfҴ1I Xr ,U xh?=SXHl0#y!q$ L*:thkI#(@') c /\&<t|i`}G??P stb0}ҤӉbN,F_ƈƈa.,#9#hRݳX`\йdgFq'뫈\sC GppLS/ӜO%ƔYg\4ha:e,r3aOza:"ϔQa/X%4u '_0($ ,!_u 9hOs)3i꘤g ,I z ]-n<Sn+QHSgҼwr,2.iܸqۇk|y].ҥc DŽ_⹓_!O2]M(qP>H>p-fbI|ަyF1UKS׋y?X"0 ÁI/8FbƋQF@t0I:txri^GtH09L8Ô:Yqg"c[:dtZ1 cȒ"t<4複3\ 䉇2by| 'Xo#Ey1H¯.ह$d1W ʴ|&M6W蔒G?5}tyFW ^WxzLuAM 'D]N ,tp!c^se -!!.XF|q% 0UĪ*$S 9jWM=L#ӕ$ƊLX%.qdd!!B!Diŋ#B,XB!" JG _`3 XB!" J'/mZ7xtK_H`B!B*F*TKp\;`P5 ,B!B$T0RU lDo ,´ MJH`B!v Hglb˭K&Vx;$ ,S;i7hlGr=:gUEVEг7)Zk&{X!OQ |_Z7*͎3o|n(&D]@B!X$TRJ{Mo˞x{̚IDAT_0|KzͬåeQ ,Nnf'h&K`i۶߿ܺމ i.eݺuvGI'dǏӧ۽kv=SǛʑ<%Nyr Y{w[W]$b" H`0ZZGڶlJf{b[qPj_j\Xv{ɧc3߷uI'T~䶸@ ,{vS%cx-]ZnkѢ5n.iӦ6lذr.RU\ÇN87o^nߐ9s9c 6t"oVnѮjw֭[}6o\nW^y:t9S+}-_]~e{6b/W\u1ظq+V畘ϓc޼yvg[F㎳'|v,keˬG>y7pN~=.ObwޱO>cΝm֬YmSzlN|hРi.\#JP?֦M2cƌ$egγ_ ?&]~]v|\veaÆrwWceƍ.?vHڋ㏻rs:c˖-='|ϓzygH!{gkWٝob gF̙a^N`ٵ{=?};;яg R)c—Y\~$mjm`s鍝E_js}ZhZjxܦ|о=k,Ձbh?vEe̎?x?S|]UV)d" 鐯M׸뮻Nu]݇az|GNe-ȑ#]:CٳgT;i" d+C=V\i۷ow" ˉ'ߺ58׏>F_|K+X\\>atߺ0Ap?܉T4^˟b*#p뭷:C(/aғ>bdD{#h) riya $nzcr΂ 0H ,M}͉sV.;&lG<|>#m{ftlz@H 1i11{o"BNA7}vfP_yl:; ?+9货?ig,~ndv&Ē?hN߱ko6+Wpyel[Gyo>` p˔%_k4-toW.fO# %̤)1qQLQ87%urܹMߎQx㍬@LGWc8{@С.s"SoI!D#eR [eؾz=У5oz6vZi>ⳟbDeK:aKXӣՃ߳o@;Ȇ֠6}ehmrqnTb%No l$D5"@ ,*ҩ2,tPqF'd&nٲu`v;Ӊ*"^_c{ya0."WodH!0 O|OS½: ďN;B*;ESO͖4)fŦ2c/=4&}yv<..i'c:srvQgE Su}Iv+ׇot}xxbX}uM! ,UZQs(mqˁXsDJ1>e(2|gtLIN#*#G =Aa@'3)DL-4U%/I#p ! ΁\t}nM8Ka)W!a m؇0ާ7L&7|͟/xfl\A,0pzu['X8'ό|F9S(ӔC/rP>3cƌqSCR>Be8 ^I\p?MyAXA(sU`\BC,v:em`oe+"u~*u\05/Ϋ$#6>>>\vݡ ,?Ԟc xG:$'OBE!D , 66 {w) !A#3hO!.vqM79oĵkO?펥# \7mؙM"}HoEҹ0Y0J:P`@BlH2LظX`ׯ}` X@b`P @" &4zo1V'P}XiS̘>rQbB+ 1V!!L`!> 3#/ϫ!X&qDBBs>v(qX@KU,G>r +x1iHuR?w 0=LWXҖۘHS,6 ,i?I}<BT=uZ`"{_}:t:C}1 t%:vs3< Q5s7ΧwC0`}4j8/WQ FVA0ƸODbz\YX>A A ,x=<#} 3IIB9㎄1a<ASs ,&MrU; /QVxUf*'& 3`P!\͋/ u%KL}c_?b<IϳSET@dApk<W0PB_BL"4Pxv GqW_7窬N|N~˂`_ً iPhb_tK]ȞVqgJŗ?Ekh=v'D3\_*F`I*3imLn*S>G`!C81r?ԎA:S/xȰ^Q5H`B X*/>JG5:oH(8͌ae݊ ,QY01^(Yr~ct3F `ܹ #04WT`\ | \`lHËF|{Θ O믿ޝ ϗOO{%&I XʂPb㿄 ,AU{_/p|P*sǰt* O;yw E3՜돍B0؇d{.g$?ב ,_Mj?재P:0яOOsW{]>/ 硹3 )V`I*3imLn@2Źb*'uzGI! ,PϗeP/ ! ,BAKzZ?oB!N"E!2H`) h9q!@3ϵdB$!D ,a7L1NB!X"!B!DH`B XB!"E!2H`B!B! E!BQ,X"!B!DH`B XB!"E!2H`B!B! E!BQ,X"!B!DH`B XB!"E!2H`B!B! E!BQ,X"!B!DH`B XB!"E!2H`B!B! E!BQ,X"!B!DH`B XB!"E!2H`B!B! E!BQ,X"!B!DH`BqK]DB!X$!k֬x?XB!RUV#@Lmԩn@KHX0&zBHiРÍzBe֬Y3Сnb6jN8gzZliW^ykoq?clƌBTƝ̷iƆ kˀ\l||^Kg$hKڷoo;w]vYǎUVmvڹgԧO裏'7xk|AwѢEn|<]Xwg؂ _ؙg:^|6Q+;nr2-[s=x-Ibʔ)֩S'7OiӦNꨣ;ۋ-A>#iӦvڵkۅH`aoSj?v۪=6=moe?Qٰa͟?߉('OvCmþ _&R1!Cu{~ډ"*\+xkH_7֭[;^kƥE'H߽zr"N-y:BT2rw)7)ԏ:t^K`ŋlW_u?mϯso]w~?n{>ڵC;0mԨQvi9)&M8wu]玟9sfŋ ϒϺv=ۯ 3=zpܰ.ssu]tEދ7ov駟w>|x6b$=P~q ,F2T: ,vBKqKmXo:h\pAv^`ٳ(Ν;7/%2ǽn X= 2.| W~:lLXt钝ߜ9sh O?eg~sxҥnރ0)$eг-4E> m֭[o/xqO+?5v|}oYb e}   }HʒO`K/ԕoDF%F$`;:ںB^K,~ٸqcvŋg?ϮOz~GT%&"~,L;b?^~wyY ,izFCݧ@|B϶&Lp$^4a"Kx`/mS) kbB!!2HJXlk״5l.w{~va#ކq.vհl}ئb^g=Nlm7V']lLZaeˮ߱>m${o{PTzIrCi9?ƩvxNkn} Iv3)cJ}VҠ~]$jRR1bWx~_€dm~NQ騱Y,[m"j|]b0M;O`k6*X*O!#Ff)!!l۶-B>_}y7eX> cq`)Tvaŋi>ݻw ,XOw}:!^`Ἱ\7W9ld?kx !ʐRa$CqKV6et{cXOki"+e+Gew^x>Y}4.ڤBaþqޠ]d5w{kUz=[۠'[2KZP+={ʅ6ޮ֤X72eϯ6VVrtO{Y66{k׼V,>9nEAn[jBÇ[=9SGks{ʀgŊ`XDMO`&풒PL *X*O!#@qS??)] Mnq%KssF`R{#_6@^`)lao$q=ߧ^`]b`Le߰F']L$XQ>_X*'dt:,so[x+if:]q\dsjMտpm⸿fZV%v#_6˞-6f{  +K[YIk͵&&Xk>~g(ƗOZv̵~KХlSK{'k;IkX6 ,r38#aw0J Fٗ2`.81ՈO>K`5厀paDgC`I%xM[Ė/ Ar/x#5~&/>i$'?GE:K#usr)O<٘X^bp n_гez:ƌ_{OM&kߗ\r@$85SMYG;5h wle$m_5"[oHфH`0㓻ғmKz_b0}v-yOsF{Y4Ў/ik+em-{v`]lWᤞ ,֏K!}N{Ma}`ZD I` &R&$,/N>=XM)4:ܑҩ>A)(wx" F8e2.;~b,3K`,z(l#}$}wo [& ͻy.{u ,F2T:ˮ%cN/:#޳߭׭qW6 ,;֥'ۣ^ُq>^=wXS1fUsVB`YܙVڤ}Y6uu֭VRkuU6d<&I`@{(mqKM ,Bo')B ,F2T: & im igvFyЗeo´lgSazGAgf7tQ&luܛ{lm]]IiG~..mbH`B!v eRʪUvְ)6nvL֠Ext[h{Zf~}x~QI6ɞvJ6l Gnoa 7N*dO;y5)=8%kk\Zߚ;ny)vvi{=qE*6̱o:ڷhh%MiW#Q$-Tg3 ,-XB!H`,oFY 98ٰaY&¾ՉH`B!v EJ"H`B!BKX$T ,ߊ!B!DiE"DB!X"!XB!"E!2H`B!B! E!BQ,X"!B!DH`B XB!"E!2H`) yE-ZhѢE ,BF1nhjr!B!D2X"!B!DH`B XB!"E!2H`B!B! E!BQ,X"!B!DH`B XB!"E!2H`B!B! E!BQ,X"!DE?UB!H`B X=֬Y3;CI&Oǻ87oW !"$!`ѡCmնm60aZ-Z^cڵ7nlqI!Ո! E/ܮxhƍ裏lm7xÉl2{1{q"ڵk_Yfe7o=Sn?]tR;wYƞ{99r;|;gԨQ?fB!D"E!2H`B믿vBH +7nݻwC3gn?~{Ĕ-[Gm{=߻tK}v'th۷+25\<{֭[E]䶍=N=Tk׮w}O?eB!D"E!2H`Bb֭[xu9,9l֭u{oŔٳggvGBꫝ`xԫWvܙi/.]d# 4([! ,BA"x :4^]_H6m7t#tI㍂gժUv衇:'SH믿fAADFj$B! E^#%%%6iҤx2oƃ@!;%S7ʴiӲ}Y;#] pyG$)DJx6!"E!2H`B$TD ֳrJ@,yw_{⯄bF_NԫWXٰaKgy8v!B8$!D ,B\\pֹsg'h ,Y}v0Q/^WB1%/5o}!r׻%4ouQ0~B!,X"!D.s';M!>JۉtVZe㯼K)^{m9o>ELر$3Xb?o߾:>`BQ=H`B Xشisزe? Cݦ^׸cǎxB! ,B,#2]CB!X§,AZB0:{l7(mU1{0 E!BQ,uZ`yK]8KeРA +>uEB!XőRUq A0x݂"E!BQ,X@t8P0'ʈ#lرog! pLuMmԩn@)vZB!D]AKt*!fOX˚5k_α)Suk ,BiB!… 7ް{,.-[,]rH`_U#āD,~wq$H` BAZrܹso7 $TAg9hٽD^a*P8-ϕB1VKiA+,"~wm~ZT9vS9xuRuB!}Лw(W>#EEKt"=[+}ϳ-XI־6vіrŮMٻO#kآo-31Y GYwLAȌT=[w;eckpx;GU ]+J[5C'G;nۺ6/'~gI}U |wi?\IoM#:ؑR1ׯo~Q˸qOv;#o;wfv7ZͭaÆvڵkݶ]v9!I&.<^{]~}uԫWώ;8׉"ӂҶmr+7|Sn}Z}]{gյB`)&& sJ\?N}. aꫯMGݻݲʗQkG٧A=Tc#OEmV.X Vk믿n'p+V(=mAM+0s캚򺮭P◕+WƻU9;a.؇}9:r{t:{~)׶{coͲ[[= m)ailҶ%v S 'ԳZY>#3lKMvΨ 8Ϟ?ـ q;s_{ji&\XJÚn}hf.Mwٚ1 Nfs̰}Zzm֙å"K҂EAn[ <g}uݻw/b{۽Eٛo aaf/b6$夓NrD:rwqGvBT `2D9ӦMsF:NqyxW;smF-?SEȥ}\;rGs=as+GϷ˗+T߿_iݺun)=]vuF2͜9skŻ: KE+ m? ibY0 bPT^ʂb#ˏ?V+}1@Ͻw`ĵb5Yvȧ= 6M*8,/,lc@F2T:s_4ti?O{/idw5jF{-Ӯ϶ݝXz6y5c텳KUi)γvLwk\fܞ-#K/fL`id)N)W7clwq\j׏w>Q)Ba\"Kvn}uLR -lٲ(S|beĉ΋dZ~+))'|2ޔ[yNclϞV+I`ҥK70zWNsF={ n޼y㌐Ӻuk={vv:>_LsGg^Zw]; S#..gy`7jȉ!֭stic00Tc#6{6 0] Y> auVUV cٴiSv}W{P?p쩁5y}ڷo(8m+H. 呧eN=T4iR\wuv]wec\spJo,; '}恃 $^VE(YSH`)PqPtvoIW6=ll?#A/zMc+9) ﵣgR;Enl`=Fljojh玶ynnki]v)B֏U#ϵ+M97r{&)XO ,RH`)n9KHZFp9fD"[$˔!uud/q_,&)^y'\=z" :|~{E:tHx%Bz-Z1cD{U-.b-1t(KRQ9O0\1r9jԨr D(:"^3"]h76nh/Kk<M ;=\b:+{yɳb4NvK@K2y9o3}vWix"zYwu p_ZZZpjcrРA֣Gv |+/iϓd$Sh0D>kO?ݏ۴icC )H. 呧eZvxo>y<:0Z!myj^(Bx&^c 'VH`IQq QkM|ukw;Zr y?&J^5/X^ #y~1K5S4`}Vz[3[lkXmδc뫯"Ň fɮ_ݟiV.0HXBǒLyx `DR^E|G ,tJ~i aT+"O%I`%]NC1:F#yv@b@9He4(b#LyP.1WݴmZ| ȓ'D>c^*KjCA! Sr 9SSe;T%͠i.IWb@$$N$TAG)cvM5)9|:L(9{+7"oYl?,}$w|U#+%˄[}pK += >Kyvl掽NjNf2脟úB¾~ۿyl{p {|컶t%TB nt 1ZTQEI'0=850J>% ,be]Vn:({$ ,iW!+ל^Uw9ৣ2AYlNj*Y[EB,eЋkEs1΍Fa:XlPf " 3}=fyCYeF'fx,Ya.d˃HA{NBg E1,sLvrƱOC|)t!4ODjo𿇺BWW#@+ =㤲Ѐw<J638ýhr@Εo!5UvPx'An+iŘĕX TX*Xl:e=O>dž.jgMZ1lf Z]kSϒ߶aN I!>n[;\kظڳM{`!$ ,;aguF~OLٽ#)!L~ Tti2Ԯ] u!~ſP1+x0U(i;e 4ZWAr"FS/x[ʱCA+B#%_00xgMo|ijyG}ܺ$#y2oNc*'_ rG7; rF̧P>>}ƫ ϓ|ʗ4BͻrG_a{ΉsADzVQ#@+ 3e6K1{ktFO| B>k1fq,R\ , (cvih:ޛg hjMJ;Flew_ߚuFO̾xm}Mڸ;<fr}͟5J^(5?4;z<1ذ3?` 0To,O8/ڂyYLfx_"P ▚XƋSSEЉÕc:tP!z2ݱcG, 袋X,!tH']sM ,@9k iF+~cj wɮ+"~;YrN}F"HfP!(|S͹PG|)t1Lzy}e>qFbUH>ʣ|ؓTv` ҭMeCqBr[LMTo`W@KqK ,*S%lW10Ǟkߢ6]e_l{w7k׬6nekcn,<6̵{i6MiԕF˒l[c_c]ijK[vݬsmԕZ #qUxi D,Xgm1=8Q ,-5)M< 3 0ʆ1Sh*8'f*&&OR Oݝ[/9pL, #y\zBY;oYF_?sNC1ȯ]G;%gQÇgGW^q U)Ӫah }y\Ğ5u.:#H\aXڢ8m)![cQD ᗀbKy$C{TKo`W4EbK ,,u101y{1XX-ؐ;i䶸&:!DS3͌n1xxVnP)XDm?_ĝw96@<08J[^"M8 ?5;b =ccO8H3"-V7h;/l<''8d$Q~< ᅮ|kaazaDzt$0'v /eËڔ lœ ꆧ#:ɗGqHC{@}}fʗnemDlWQu\?-\$Se )>XyH,zՅ4JmUMX$Qq,{~F>4|*1CV EpfQ9Le; Sشi~$P> PX m3ti11&ER]ϸEA.g<ܤ(|?a,TT @1(&*/($`QU {ڢgv羮sNwuOOwuuNvITP\q:r@8 S&h!Q5_rƽ6W(8$B|51bHu\B Xd!>_͟$nj);*DgT r8%|>G0 ,U M\"rN|ŏI">XgrNd3FDaD,IBQ/Z#YBa% PT)DqA0&8(Cڊ")$;IĒ$!/D A+ +(X"!r'Xd!`TlӂQ>O 򑸒?X"!r'[lV ! hg+"9X"!rqFyB!H`BXB!I")$!B!"E!RH`B*zR!.X"!D!rB!(0$!D ,BB믿uօBQ`H`BX٨E#?h2qtMfӧOH'd!믷?v]em\r 6z'W ڼyszmСB!=$!D ,BLmB.𔔔駟{0`H˪Gu; ZQVX-߶m5j(ʫҤIrr-7 M<ٺuVe}.]"H!!H!E[!Rd޼ygrӃ|me˖(!\-L5rS|+L!b;ǯM 3gN86jB!H!EwE7̚5˚5kk{I&!nŋG*n7|c[%KD+v͛GpM6Y~"Q\K/,BEB"㧟~=zXiilN:$OHHb}X[{ܫmh@RTT#:tHO+Ӻ+8C */#F(Bq")$!?Gr2m[#6gcΝ~HB!Da!E!RH`B!B$EB"B!H!H!E!B:- d2YMZI`B!0Kc@"B!H!H!E!B ,BBB!")X"!B!DR$!D ,B!BH`BXB!I")$!B!"E!RH`ΑL&d2L&?L&jhÆ` ,B!Bx$d2Y$!B!"E&R&E!B ,2L2 ,B!BH`dI`B!B$EL&LB!")Xd2,eXB!I"d)"B!HL&K!B!DR$d2Y$!B!"E&R&E!B ,2L2 ,B!BH`dI`B!B$EL&LB!")Xd2,eXB!I"d)"Df;=z]s5yB!DCAKaO6vv˨?r2!2sw'bB!D]⣏>eϲ/2,.D$B뮳W\QX&E&&EH0BQA<%R2Z2n:#A!"%r~3օk6!Mα~^&ՖI`9n;묳uR{  ,B!+~BJќf wq;G Qdcq+Θ.Q!)'|k[uζϜc%gĵdmXb޼y√Xlĉ4<9(ۡC[slqرvgώY~}>oGWL6m'_v >:vheeevGOݎ?xkҤz6h [bEz-[}W>}ljP`IlW8mرﶳ>;\,D{njxcrٳg4}${\e;-k? ~~93fLX~yvmѳe˖vTyvGOW^ym۶->8|O֭Ge;w .*s=o@9<qU ;]X2kuT_Om_{.h#?B=[:߮l[lG~IZԿ؊?c?,~[lv(wδgo:ˎlxW=koa CͶ#I`[7  ,Dd4o<@C. .:ݻwOЩܹ=ό1š5kfm۶~:V`8.R;ӟo֨9N9sґ.]y F9/ӦMK/۵kWԙepLs!6'1~N"Q>D ; mmӦMmܹ^FO?Dr}D8gÌ3U3N\O[,ϵ`?$8cEϬUVsXr=oaoset;xswD, d㭷ފʄ}?-(NdTSI&%25naդLζlz.iUlx׶}.Pd-NafͷA]ʬ1ޯf<ӚtsǼ`ϲq7VEm+M5nq]53=4ؽiWLK#+.km^=6~֮QW헟1YQq/S+/I`ɏ\#XNj-ZF%޺vZSt=TV: GprF!gqF IDh:'ōgpӦM2;;/WYN #E ?Bm 5Fd8۷G\FiZϵDlCd$QaFXX'rȘ Žh.\hvXT۷oƟH2~u <R8oF\)SDN_|^}??s;{v7|3jw;q3 /DmcѢEx"&؎ &DR|.m%&}Gw;8qEF;כs=ν9C܏#½FWx_WXxk[㧾`Q(~p-Jv&M(|%Xܗ %~J8hhXH8'4(0 ,C\qdPi$d0Um+V<NJKf ii+Ƀ'ZQsmwӇw%ڶMEu;ܠVw}"QE-'vl_e['ؚ|.o~O-^v"$;&%?rX3ԩE`CEƍGv?8?䓨C >t+XpL\l RqqqD F.Yz:+tZz*U`>;"N# _s.$٦zP̙9^xak9-*"Qwfp"`[W|*D"P/h@yD@@~T ϛn)^Lpa8 Z4Â{ѵa{l$:zA4.S7nD4`ߜ{Cls#zoH""{#G iRz畺3ٿH۰aCz}Cڂ94' poɐlU:|G]Oh[=3 'P` tq =꩛K<}t9D*ΡxG`aQ(#^NT߉WLa'NH[VH`)}E$LyV%֢qG~2dXYm4_ڪm;Xm_oUk?/iEemF~6q<b4}S`Ċt(EVwLK~T'LLՑ¨-+#p8 W_}5#vӞQ\±3 , ISI`Zi1Pp8t8qqO=Դ4pH=P\)\HM!w^BwN͛멳.s+I8kߦ"p>7MWz W0F=&Nꫣu@u f3{Gv 8k~\ ܟ#Np'qdԣGYeZ8ϯBd ۺ(k(lM؝BxiUi X b!, #He"N`#i:=A?£2 n~t^R׹ffAD{fA:ğlK ,rp~:tDit| 8D7v.q.GڡBgh-Aoj!뮻"o&p8>^Y[s.$٦XF# 2^JDUQ2r 4Ic>Du : 8 h\{p.*r0e'v Ep;25B_%AP.uz]\>iW~Q5Qڑ{guhEL*P'kK[x8dguv$D2Og707qd:o!^Q.6P3gΌ"J$?ɒ)J%O}.+ %ըh&d1w.]6g_`m/o0y6i<ogwye6:D8iJ8.֙kv.A-NN?m(dePoyF_&A7(y A4$2@D`q?:%ėD]W4E(?1彏?O@6_Cv4Opm]ߩz!5}ن/Vd__ds_~®859{g+l8Śvas͵gFcK _޶?ش![V=ɯf۸kNfGkRǰ^pkT~]5a͜9J<?l+U6ő<MK~ 9S5tppH\`ߡ1.-#ʀ2w)9AdĽwJnhXpf\=AHG9L$d)\Nh-mҩft(ό|s.$٦pInrInzr]H0K=BrPq@#ʼn$~[~r * B 2BMDWF߃C7\P@ )? ,J# 9H|akB^p:8Q#$8 WLo,|%rS5Rar SOhg~ΜC('N`a{D7>w=+iL-:"D[C"! ጺ`?kͶL)}pHpPu-$_qz}ŀ$X\[0dYBܫ{ۺ*9nYm"eP8՘:/?bsf]aT7{cqsՕ W̰[6-76ڛc[4ϵ_\^5o6vMu8e7^ b"n֪Ȋ[iG)[`ٶSwA+/ib{wddXLع ?Bm fk2pqqn4iRHrc0E(*aD' H> Y)!ӈH`N3L=sNrSmN#+T\PpdԈd\KcA; \huAT3Q.G95B2m#XL*L@@#g+a dn Zof,B=GO6 6Fs=-϶_Ax,6$}mBFW7VQgxZőc"I'^\ŕ\4XZ(kd2Y4 ,Bd&\s!6"3q9XāSuִ.nݞi. τ| DW!PeKTР0upS[u9\ $aK6Au .zEGꃸO@˟Xd2YI`"w\*l#2#E)QLLU!=\0ȉ/q9z.+@tTp,EM%EL&LLΈlVHm`CmDf$rf4i_B$qϧ0%BcL{Z? q $ e}A&"d)"DNV>$F!m|,$$wod]\7c&Xd2,eXȝ$bImBS}M rF<-'WGL&Lm^v6B}OxՁ?"#E&R&Eܩ.`QB!#Xd2,eXB!I"d)"B!HL&K!B!DR$d2Y$!B!"E&R&E!B ,2L2 ,B!BH`dI`B!B$EL&LB!")Xd2,eXB!I"d)"B!HL&K!B!DR!8$!B!"E!RH`B!B$EB"B!H!H!E!B ,BBKpd2L&d2&E!R( MXB!H`BXB!I")$!B!"E!RH`B!B$EB"B!H!H!E!B ,BBB!")X"!B!DR$!D ,B!BH`ulUeB!D'|=b;Cmʔ)>|=:\,B: \s5UeB!D5!lڴ9o/^l~WJ!u ,2!DE"XBQ/f͚e[n>wQn(u@Ya[!D@"\;=\2dl:t`3f̈M81WQ.B曣.\hڵcF[ogaeee֣G[lY嗧`|W֭/m۶UY/ByUDPX /Scs+~/n|,+;)aӗjaٚ`j{v@[pV@!D ,M4EEɓqQk.[zu$|?Dۄ o&mڴi֨Q#;ã+V\`{lyܹj*۷ :4^!/Z<7?gXC&y m־YO{X;]>ot-};bvͤ/  ,B8rX`9S" ,%%%{{PW~ 7ܐG'7 /HB!A ,tP؄3tx;cnzQ"vk7w(W̵;>;)l[s2Y`B!2iluVH*\{ѴE`)--M:ƌL oE5t"iӦѲ5kx{B!A ,tP2 ,qQ)]X`ٹl^dG~`AÎ{qlWv-|hrD kҴup{WW/)2ǻqErH[bjЧ.yբ]ۭK{Kα4fGiç*?f:[xyֽ]ӽ;C{Y dj:ҒvG"XȌ?6pqkeqW_S[˜9s7E!Dr>&;L7Eu4hb!R 9a$ e]nb*ثjENg~e2E-ƈ#I6⩹x 6O+r۾~|6Q\nMZnd~\&*lUo, ,EVڴpX{i\~k_Tf}&h}~I֤9{},tvXqQ$T ,퇧βfeإO̶%Kڤ'[\=["Df`/D 02SO>>#߿JݻyXǧmBA<%R2Z2nݺP7M\#bqo:P*-'/bM5z[٫oѲ{vBI s-{~z6mf翸%/r"A`iuSAhO.&\9uvu"xb۞*bڜm={2+9)[r*rչ6dP#Da" oa!pWe].yҐ+WZqqqB߶SN9N?tт0B>;wFIoٰaC@ &X-<,L zG㎳ g!D>+ )qGs9D%N\q!,Xr^K%ئ_q#[Mqr;zȳ埬c&e% ;??{{g&X;E7q~bvy(nmW/dJc}t[g+"X5+bL%+6؟Nh8 G4dSNUk̜9د>RӸ#INsz*ԬY5Dp9XzmW]uj*zu2v;ʕr]wET`ٳg=Cћؖ㣌؟ގ93s=gwމE8(D-_|yX$;nx;vпۣڦM+s~6E] oGqD;z^x:o~zހr~r-ѳ/+{LJsɶL+r=֝aÆCug_ڪ;+a;:`#'x"%, ^`q'د|D8E( 7ڗӯMmm+8ΊYJ,F9`v}0:t;sCe/{gSG٠[ƍIvcKlGK~H`ҡ/8qW`N`8c>tݺ38 ,Is Gr`ّ}Gse˖h5Q:HGR$ܾ[1bD4m+noѺuvܿ3cQFEykSzJ'K0 qi/,Y9SN Fp<^{-:/]wy׈sހs󏣍Αꫯ}$Nrm9ȧuK[\j՝}ejpT|!AӅ*'"HM\|l9?'| Z`)$;O;og7*fV}-߽Vc%ړ|u٧ S/ikX<-tu++SFSDA#zhy+iP`!ڢyQ2W֮]-9r#J^UvN@`!Rdtv4yڴi>t s 'E02ץKPp0aN ,t;Zw3/\HM]AKB7IyܹsRmNs90^Q dڣ]?=41|-X ~ٲe=믿F۶m[Et,SA[~~2~%\b_}ۣ]Ń:,8Z  ็XoWz;p'ڌ3UPݩS`A6z뭨L}8ZPȒ-zL"K.ej ,wkw/׺[ɫ {6ؔˬԱa]K:ۍKP"v?Sӭwo,)sVrk ?؎KUlׇٗeׇ6_-{Sg^t($G,3,O=T4b{[o:r_{шI~z[O֭!c82E~AEGrǧ* oӅoR7R0AFә}N@qN29pp0>~ŃOs H6T4o#2`:Z~2 x 9p689dОሺ2L{~t9]ŚwwO9yPk[Kr޺<Ův6wP;I?EFK~" ‰M dϏPA`!o`D`y>^Ns~gG<_¼x(gm!rQ}ڥIsUٴ=L e/0}F9믿_~9 '6YNK29Λ#IɦX\<" L)qQ 8L 5;Lehȧ~Jȶ_P9tЯ G:H7u'8;ŠO6i ' .L,,'fd6WkS^bMX.{fJGDvvbfVRZn8n~we*e{̥Kٽv ?59.* ,h-3Ⱥmb%Ga%GO܆`sl'wlaťֲS/R Q0H`ɏ’@2$/.ȀNan4X4ܼu#vlHK71ӌN 6"kqП馛Չlgy( "G ~w>Ȼ;d;ٮ1՝8 6qdۯNO$e Y\q" vU?흛Xo.wߞkwn( Q$uC,a"R#]tsa ,t&;vɃ > ><}zLB=FܑrX\rCy8~:37m=0 75M؁ ?Bm)eAbp &y{5$IfŇ} ~sr?0G@|QH1I3`p< y#m9гAk숫;qP= WuNL.'K(p? dVK\nεR=@;C3+-)ÎhwNuvtp.B;:8_`F;UkFGq%X(h/I1sIDAT%#9Xghy"ƍ" p0ڇ D"d\wif{HG)B. y_a\reo}yg=P~Ԇ|;\H5o8qS|H\FD C1cmyz(Җy\. 6x%6#̃AȇhI&UYFvBiqeH NmB'v]cG\m$WusiՉ,!,$'ꢸ)BY ,T !g,B_$RЩfDc (G}t 'Dq(i~aۻ|)NE`uvZö$FJBc=6aNO$07iPD 0rcLq|4Sa2 I@a N3T6%sF=M#ʹ_"\E[I(D^h[88$GD\v0E3ǔ%KDi8$#667?\Tw2]cLŹ.=+iZwx4Ժf,79,!U}C]W6")$]phCع ?Bm 00tirp`=+16PDQqf#IFGe*b d/ux, ؆GÉ$@yL}t6",;F> Oʝő L!aZ#\d;ٮOC~.9r@hM>k 8!eLϯ,䲮")$=ySO"??a2 I)B^Fku}z]MQ[yƙ.ukk:7[>$b&(QE[e S&")$=ë- v:WdBXpNⅠ+!jX?I SvDUD۶mn)z6)yKM7p!9OxՁ?"#E!RH`"wKgX$ezϰakC`袋lРA~O?-E!(p$!D ,B84/Y$*4o޼]Y?Yf6:I`B!  ,BB"P`Hm6㎳_mjO?ԦMIsU !")$!XvaݺuI=W.Fq@ BMϞ=4iR;wVF!!H!E!B ,BBB!")X"!B!DR$!D ,B!BH`BXB!I")$!B!"E!RH`B!B$EB"B!H!H!E!B ,BBB!")X"!B!DR$!D ,B!BH`BXs$d2L&7 ,BF1lh "B!GB"B!H!H!E!B ,BBB!")X"!B!DRwѣkIdl>u ,B!B4x;O4Yu ,B!B4x%K#E!B ,1bI;0vث!Y%ּq "[_ڀgW۞p)$!B!"%Ptx*.W3 sIw%=ZXQʿ k4 Wegvۑ%l[g԰+᷷Z_V ,B!BH`I($.Jć?>{[So X ,B!BH` v`dXvxqg7UmCgV֤u&κv?Ԛa_lc?b|4ޮњZΧ/+l>֥uSkҺy|is[9)#ϑ-u7T2y}]ncv]M+mz}?{l3Smw{L=ajcu)XB!I#$#bd7)ӞѢU{6WaŭN럞ko-}_u5+j7,r_cX.v/ۢm>ֶ }}2y,쉗ڼېˬvdSlWlvy4{!>59R{|"[4>;Cv,`pѸ:&Κgsj}ZY __**lU۬Gq7i~wiZY~`Ν`Cib/x61۽mZ]:\5VZm[ѦB%XqV\Q"B!HBI"Ȇ),Xv/׺ g/Ȟͭ[ 1߮l[lFb-[-I<>6~j7OG+)&غ)g[Ӳ^6v1uk]VEܯmu֖uS[ ۔>=~YVZ~q!4qS%q!B!DR$$JnO[=4fZYv-úw߭-k[mg>,e߃2ŝl޾wnCJ쌧~ڻ?lr+>[ߕvfi]68Jᢤ}m{=!zJOX(}؎Z-ybkgKn1 ,B!BH` v`dX*hݶ|Lw+9z{+عp*9v:kW2Tk(dXڞ=%UR0{MXYjN>qny"Df;=z~ϿL! %3o C:٭5Om~ :ȋm ]vtIǽdziҙ#د62+=Ɩ|}R>oa܄].VN1"8Xr;?H`"3wy~Ͼ\L!K|GxY_Ņ<:a\xXIW)!!xC6ش-䤇+_Peol/+k{͊8vٶ[&\XYRnC_-K6[4=Η2KuA%q!2S3;!0A<%R2Z2n:#A!"%$,vS)ufSmo/yf=}]ԭg㖓$Ş;Xq>67سןb-K:5~;N&Gې- Ne#avF";⼇lyO"kTt-.Z˓sޱ]`quhwU?9 [gEvm˞ PkWN {eQck:aWm|+9Z{aE(qn:+\\lڴ){ {n)tjy'B~]ќf wq;G Qds$R`qJ5.fsFǟm~vVa,zZ S  ̟??m>y;O_y  e٦6s$1!DGK~5onݺYΝ4tRlQT`9mŊib5JK:~:bƌ^Cvl*/+h3p*D̞=;jT@^FزeKXN?3q=פIhGy$(]xٚ5kbUKyc~.(?8‚K@袋lʕѳ{{ _o5sހsps{7쨣"X9&."⫯J3 ,9g<_HtJÉhȒo' |r,suϚ ,~SRsjn#znݺ߈~;].XOn͛7Iq ^)?Dk>l9X~ȉSk׾H;F<ֽ{*{FMC@'PGSN:~o׮]#m۶vFgĉ`ӦMmĈvgW9":th;Y>[ha#GLA`9{e IYlYt3 wɞz*|~΀"s{ܹ^)kFQ<?"&q9OULb߫W׽vpƍo 3zsGG}8gqdX;차φ_ וgm?>Ch[B{ĵlGk^I&E>_`9%"+swG~J8ڷoosOKigȆ\|`+lJu5MX!%?rX3駟ErΛ?2tV wv >"T:j(# 0/ }q +9= ,\>GS͸oq,FqB'_97Ec=6*O'gN2uz}ёP`9Nz'af|?+8^+*$Ur=gAg.? ;/׍8 f8zq pi8WnD HS>~>ٶ'CM;hDVښ;/ʸ^pDuE xWWL?6lؐ^PyB:g8K!rn"̲\߾}/Nh"E#0@ *Wi.wgSXR&X"N`!,$#K."_LTҁc8$ t8}WAc=N? ,lFp$q2 Wytvَ%P`q:؍Ӂv|4e I)pbXr N# ,3qP^-'~ƟVN~ gA4p()`̙ U(pc_/\}A;H;"!hq $'pG៣l!=ΪkלxW!2mF}E"'? wS9v' viU"{X >DrgEq j~gQ~D45ϔ6L"ڋ{;AL&d:o>³66ʵAd?ꪫ|tInA7$+ؿ%@(Lq$!D ,QBAL QsCF`8|-"8|Xǁ(8NjN$`:z88^n?G~"x=@g1L L5I ?Bm uCduu,ԃ'|2p,08'M{d ,~=u 6~r7C ڧBpSlDA? g''NH_7'Gmǽ+5R4Dw]7HH`Be.h:KuMJSF 6711}ωnq ,q 2.l. S\sU\3<3֗l<5l͇7Λ?E2ng= AC ,3ɟ.8IE`+ E!RH`8>?l9A>yRN=In>D 7 1?_$Ae#tx$ ,:<@G9·} ÉC|  A؁ ?Bm u"0$t'X9\7Z*Cdt܉ ,}{)UG`Ds9'O}sӝȏL.ϴp;715BD |ۇ6 `J!t8.o+rn";5Q1mgu\xn L-/WޏrAA"Riwm"@u9Y2Eq$$3 ,BEK~C`t'˅/ #b.D>ib*|c hd-$"`jk:7.ET0%:D>+A\ɧLM E!RH`),\F .:Wd!Dfs dU!=\0ȉ/q9z.+@tTp,EM%EBrp< 1C[:Xd!Dfș'`B9p)d Eض>^gOCC0&8(CY_PI$!D ,BdCmBY›2Y}W X+!H!EI"$F!80'۴ gӂ|.qz$!D ,BNy٬>'BQA<.W,k(ŠH!H!Eܩ.`QB!#X"!B!DR$!D ,B!BH`BXB!I")$!B!"E!RH`B!B$EB"B!H!H!E!B ,BBB!")X"!B!DR$!D ,B!BH`BXB!I")$!B!"E!RH`B!B$EB"B!H!H!E!;zg~2[MڣBi!KB"ZRPTMZ(Y( 63ܟ}W~lʔ)e˖覨NmOUϷw [q,Up- c6;U,A u$[,]/N5TaWXVdlɱeOuZȵ *=Dt=ۮnΗgےe?ٞ<[;վI[v,a&Z>8T,ERJC%y6o^a͝mǮaGÀSm@!6wGja:Ʈͪn;}p?te~6ߋ|1w05<=#*o_zzO\e'l tU%:D߿cǎaA,`l9'4 Т(=iOzKYKQ٬n9yJ-7,pXR,%*C,δ9Սg̮9ihgβjSmCNQ[vANUݸpw"p#;6睗aN%wc=7:{y%m=vi?5&=lռu/Usemﳂ-6}7W⽹ l;7[vnw5ѦUϮjua/}9Q%G ]:`m۶mzj[h}6n8:t6Dm|d-S6SXddYؤlA֩~(2DSk^/޲K۬1튪Yo\X ˮ̺͙z喕q [}*v(S]sM;צ>5ȱؙwn:ڍ߷_.Z\k@ٹ~l̵;& !8 vlXeݔmm_7ئڪk^x=_O,9z[vp}ֻa]Y{Wl,a[ğ杹i[~H XJ7 *Uzm6 \h6¿@*uR|۷omذVXa~M4FiLZ`c3vo%,;+1RB ]:`&6ATNm{Y3kzk?8.]h+`[],K ~ceU=[\sѿ$B2'S .{|Y0ٯcYNmrB\1,,U;L-.}zZmwcfWXm״{NF(<\òZl XR7 tR7 $, ݬVF]a6w6iȭvqV}Pf5<ޞ=>Rݕau`ssVRA<kM|-2:ϱp6nau?noL&=w5=ίk?`γUͨO_`m9V4`IXK,ERL0a Śʶj؄A-;}(ײֳ/ Gl'X Zu3V5łs[ճjٹVI'=~/msVr]m5zVJr),ofQֽM# ;۪7jc\dlעvG:k [1ޱZ_cN׼m5ToNkEKXK,E*? h˖-MT,ErƆ8HWX0 g; H X,E"` t@@X @ ], `.n쮷_K{Z~_.{ūOXw_ {vƷa름mµfdoALMXԉE O;`P)-Jpv]ϓT, `)׹;_dž75 :k 6wz8jxkbGg^x5a, '*7$e} S9\4)|PoptshV/N:nTq'O彧\-?^+`knޅve-X\ X@E@}jp)07+lk._' yEz jB\$^iKIJwOz` Qe}4$&|{Cxmڎ l蓞&.?}_̐E{,%>`ќ5>֔v\W]> XJ>Ӂ@W5oHꝠw}^126ғqԻ"Dr'f:t a[묡Ee}䷽|-{+_h׾{G@t\$,avU9X0E`QtOR2vJץ\âX @MzGh|_-v `?#ڐ05F(5HWC^=߼~HؾTϫGD+$lSae_Q NcxI;" uB4_ataSKÀ%??IOT,,ER3X`=/ȰKN&ȳ=gC.]>oͳ.Gmu3{F]7­}r:h^ϪeZ=' mȞիe5/xٖ ' y1ֳ}cS-r/~~m _F[zv-dve5`%˵mU\˩VZ-I8W|ejokWl푢1}_wyʸl}w*6o2۫]^\w>k;u/UsyvbS~yMC nzwD[v[ʺ,ޮ:ҾsN.cu֝^vl\ޭ]\hdxՖ@XJqF}6Q h(rR%ê5^xS7km]2mSѥ%V {/lѴu/z5ɵ=_O,9z[vԂ%<;V;v}<OTȲIIS m?taWWM۫/E`]fڅg"Kٹ~l̵;& "mPm^j_̛dck3v&sO}Z{\l-ym?ʳ߹d^h7~~fj ߏ/|ovS_~.δ'دE}W6IڢY}MYt "` U^ q][*[Y'{zd^c#֝&R=ڼ\|dֳK6vxsvml/{ZN[<ɷ:ZN6/T. Id\-sϼ}n'cMV-OV`?jg_o$dCmW|:*?0.;K2D%ֿa5oƲsovby;9Yxoې.5Km|eոӦ9t%A7gX% NRumcf5fWɵOp"%:Kv)˪uz^deZO"ÉHLfzx74u e, ρ<`)2ˑY֭Z/Yr-hvx2:esS$`9hjY&քL-U9V,yߒ]6Y5 ϩI3잪v.xJX s,ɶ;3'ڴvU0"`)ſ o85iԤO;`6†-ć.iU2jZ.Ozi]sGarreFo֍Y sD?,퍎YmV0;eܲ.dLEK[6V?"E;d3fY7eӭ׶#m}қ)yήj`%m]Wx(I~o?۳].JRxwXͧ.]Xg"`͉kܒh7Xcܤ[^r힏{ubV+:K?E`,Uo;-Cy@zy%9,U;L- *}zZmѲ,/GocZN{m4.ȵsCsL`Us;[1BXvɓ+,O؂kXV->`)ǗzٯcYNm,8ۚxT`|je4g/~Z]н~Y+M0 g tL,Vܲs.[`F?jdԱ; NgZ=l lW52#Oʴ&wY_QM"M\#.s[fTܩe4k.A<kM|-2:ϱ02e XdX΃ɃVv /.϶{ۄ9 la{lZ^=1]vY 6wOSWXkzymŢlȍ-]6u[W^sF6xne'w:Y 6g\k[ծzPpoUrCe+lC{x"Os=(vd}-{SnxpIHK)H"ywnm[,ˬVϞxyjr%F[ۛձٹְ6a\&ַVZeַ뎆9e;mVQ"t)Ksk6g\˪ZZ3¾ؓ8^6G[feֵ77Wl+8j+_.-|z΂Xޮr9S{ڐ8+KT޶Y:S;mo=(8b[ճja&v` Ú׫Hr髎,rl'6kϩ`_t0"`) XP$[EXG{\ X2!`9Uev옆8;\ X2#`9UԀȑ#v۾}mܸ1z[e],*/ڞ={5kָww~w~w~GE\UԀbQwDk׮Kڜ9sl֬Y6sLW3f̠(((m=^{Xbٵkmڴ֭[t((ʿ{[;<  J,*/r?w^WHQEQEQTyW*b"`P*r ,*%EQEQE{{WpEE\Uŗ;EQEQEQg+Z(WJBQEQEQU"`PX(((E\PEQEQU@"`(((2 rEBQEQEQTe,劀((X, EQEQEQX+((*c(W,EQEQEU"`PX(((E\PEQEQU@"`(((2 rEBQEQEQTe,劀((X, EQEQEQX+((*c(WJrQ((`EW"`P*z~W(((_,ۻ-,UEXo>W'EQEQEQX~wwEYX+A߿:tN<=L[{,,UEX_*g-{DE\UԀ ڻw/=W~.~ rU{Ec?w%g~wyEB\UԀEc=5֖-[ q.sDE\UeӦM[p8 XX~-zKr t@@X @ ], `.H X,E"` t@@X @ ], `.H X,E"` t@@X @ ], `.H X,E"`{;F]X @<vDnݺֺuk{mǎX @pr%\f͚YYY6yi+π'p?qvj޼>* XRXۄu;wÇ[FF[?f̘"`\X@EDԔxsu333~.3ʅTD, `IM*}o.^{ڴi 5l0~MNrm%9~v׺ұJG_q>馛^zn+sȑή]gMZժUVZvˣm޼cƍ9tnݺʕ+گG͚5˭S0ck5klٲev7[55iql|qX @T+V  ajl E0qԩcK,'NR]~ Ac=GuF={ V?ZhSѲeKw,?|J),ݻw4k,{&j*7WVͮw=7n\矻ߣC?>aS*?*ytMZ׮];X @Tcǎƺ۰aC|={5*`׽t-oժU|{).`:t["|/"H_`Ahsmy:tHEVhr`o[믿/WϙmۺuwuW|`X(ywRo۶mpeРA+??&Mdg}i9}'ֹsgN=Y"*"&ՀE|Xt'|-S(ݓh}xJEp;s뭷&,/)`IڊSOY^A/hȌ~n:FÀt +;F~x,PiQ2tm,O?tr::F*", e{CCqa.. ,ꡡe!h>Q%kKԩSq½7& 1D=^l۷owt~G^+עE7(񟯞 %4`7o^r9x`9F*",dСC}jK"Zx2 CyE“{m%ٿ.HѼ.ϡ !ExYi4'YpatUR 2um$Ƈ0F?B0P@%5,>?VOVz,`O)J).`Iڊ#~YS:Qrm0EhYNBG)^=dA'BP:&ՀElɫk谐$ Xi(.`IڊC*NJX=jZ4ao|1{誤4Yh֠A͗_~^,I5`6z}l$d˫]{-KW\%ew ,`si&7i>{sHFCG4u)Aaw dDXX %5,3fp=-&[nn]&4ի% X~uRW_ɓ'>'0t-HuE? mϺZjn>&N^+HֳDh-馛B[6|p뮋/SP{]6u>+Eshy=s, `IMIcO:rȄIz =xׯVZ֭/O?+V/?~k.޽{hؓxO۶mIڒ tEC+Hon5dIֺ|4l-S]pȥ>} D?(. C=ѾzSvv[W^&Ʉ, `IM8`\Zqt+V}=7U%,w=w%5\uzLziWŚ(6V=ծ];]vG2kaﯿ:Lꏆzg ܹs㡈 G0aBtXt=z}Pn'U]tE ي, ,V]#ְ۷Gw+bÆ nz`(QС9Eϟݴ؀E e.P`Fz<쳶o߾&mҤrsW^Sk+B =HΥGs̱;wUޅ'Bn@QϘdPhN ?Yh0}_=jS=4Lq47Y'1 <}C q^z%8@@X @ ], `.H X,E"` t@@X @ ], `.H X,E"` t@@X @ ], `.H X,E"` t@@X @ ], `.H X,Ȱ;ϕK';wF7-UqF]cf?7{z*H `Kj|raKݺun^t~)~GWWz&LpMͣGS5TXoVP] }V_B `Kj|GY^^]Zn]yv."`),@z TT{ B `Kjuyŗoٲ^UZ.]_~O6h kРegg[˖-|뭷ኯÇ4i y.+_uA7颋.jժhܹ ޽zFֹsg*}.y7n'4:tqwO|I|}HGl۶m}ߙ[fͬjժvƍ>zϗ_~?PsX @di-W իW-rP" X Hxn)UTϟom۶:uS}_zիVȒծ]5) ꫯ6z4iKL2%~.4NQ)n,*}ZTzeȑִiSLxM7ypN\@E0X @]s{O:tpzرxxꫯmzuڵ]6l[v뭷ˆ}AhѢxРLQꅢ}Tvr;E߽~mt u_tcN}O^WXԻ_ݵ(2hQГJ X*i>V(t C8=* [nnX|۷+ߓtD<\r%}LC$Y6z2~?nn(PHco6{u>}۪Gɓmnh?G)Jȑ#ֳgOWXJ X6/lǎn B@Adu:uh|nhl_:$ #. /JFCZji!C$Xre|}XZye<:~?͑R X B@A$ X~^MףFo XSD5T8ˆӧך)ͺuCt8<>`Q`9vʯp 6m4DHjC=_JZ=i$iasc `Kj Q^ ZPn~e@V 16рeƌ={[0A!> *( SO" 74/Ji=az␶ӆt*?X,+e޽w}[)OaժU&=p.\p^͝Q/M =)qUe X~ 6L: P0Ź1Pa@%5>Ck41ի)Pׇ $(Ф~5k1i=Ozzr(Ԉ\m4QmZ5==qtDz4Z1 Vw^zI-Zpt>d$ꫯo~,ˊ+䦙3gT:0]kq2Vc*&/}x?l֭5[lDQϺ*@QD|YfYF\X3{zdUW]&UǟƣGv'{Pأ`cǎEt=)yСCtD)6 Sz(\ҵ&NV"v=it+fmUfוe~ { !` ci*ŕMNjO]evW7Oi^QAOcGn[,@u^6k {gm?,&fne5igQ[-_mvm5l%9yl؛fuo2ZlWlzL\ٽ_=ͺvM1!iEߓpAeO9<_2[J-ylASC[cۇcS XfEylBL!GO~6k Ç<%slߛc:(Wc!{OopE!T͞csf;CFA(OoSEyz>^s+,˾[oYA8ǔG4J-V=쩱e@@ }$I%`)i}JvXslG|-~ZhYxՕlwikm闱_{yЬ ft4;L]րE ,aS?mQ\8#X @h\so%/+EzfQHQS$p( Z$;shhQ'bnÖ;H F4-6 S X$A8ǔGTW󴤫BZ@R, `sLy4LeXN/ 7I%`)i}XiK4 *“}G-{0{SboSz`#bmܚsoƖGMxS4IsqzY}Wh`EOYҜ1,"X @hKѱeRŶijFGcV|?1V[oe6/0%pI℟"4nzlNoFebۨXD@10=S&Q/vbo}6\g[h_=HzQzNġN_c5b?%V ]TimfOm,?i4`H,p) XT 4iᩡ ׳o+KeLUZ׫CM.;qhb}O/u[,TRf7^)dp2+EaTC&k;MȾkˋLqZvqYjԩ$OIԩcÆ  0Փ{5mKy|, `)7##ׯo7vygW]u߿?K5i$?~u{qwM7]\_~}^/*m#FuEW,aYVy4L5Wso\A\|ħI|nѣWV $2337y,`4VF2o ]J_|ᮝ[ڵ]Wi0Ź1Pa@lyנW>L?_!CN4h {lӓ>4EvK.YfeԨQOaH>tDĄڲe3gδ={ؘ1c'ӧ'l#%]7O?g }]{ꩧ\ ۼyr]6ô|,6~xw\yۄV\z<. m۶ }yȑ#:KF>v؄py7K:믿s龜B8(t=~{Pw+ɓݹcӦMMرc{h_5_F>w}_wU)gȐ!O8_`Z}vZC^{y(ݯ+/w{V)0Ź1Pa@lZnmwygtk('(رm۴iSի]z饖ˢE 6tAM"]w5hj{衇>+{ֱcGlСo۶͚7oJ۶om7!MM4=z5\Qvz4h_ zjΝ;]8e:OpsԈ ]h[{„ s]?:ue}ԫWϪVj'Ot:mӝO;wn8'-_-СGSFAtO,%헌sVT?ޣ .~ݵ+HtZe˖2fZ}ժU:w3>޽{(r>{nA˜wo~}_kK.q7UTqOpI:έ[nv뭷w?ݲ믿}GUJ4Lq.{ T, `IE=Lq׺˽ Hķ (ԨQc1+++Ȉ/O="`T#74Yf驑O=UǾ\ uT7՛ ꕡe^$6|}6t|]zjx /ZjU{r^tE. ~aZpt1>dP`k}z^(T:ꭡm.s(^*Eu_1v^0K]OR "߭(ݓCu׏E:>껣k~kQ{饗5Σ{ڵkؼys|Z yjh*Ra:;c^-=XRn5 4/skΣF~2 4DAz`h((9~6r7h(M8Pn on+Vp$k_z(l݇Gp|WnP'}6ZuV: "*>/ Ù6m;ߔXǐzքi>/ [½DqsN8^'_|[aB< = SouW"f}ETi0Ź1Pa@%u?B^s6qD4E d@tj,j~0OCX45m"3f̰-[աA2#gv]^$ajk_/Y Ⴭp@c!3 z_AAB؏?n_]Ήnҵ=Tg{DT6=#WG_:z}%~t^ tƷ2aS̓s,(4GᤔeS8 LTD@A7Jݻ]O=4l"Zj&k,c1a͢PUc kԀ7K FRnz(#@B5<7!h/ ! Rύ赫{X|M>D=O=t <]{IÊnvwAD2wuNDh(Dq9z0=R j%aO:nT~] T{ B `Kj%J=F5*Óm@$@t)Sė@' v|/pf͚+k ehU\w}ܲp/&^`SpP3qĄua& Xt0 )IOq0%́)5^E엌zi?&GCtiz$q`"LI4~4Jc)w)G&<hNAߡ0L )1=nt p>Ҽ@ |4niÞ41o*+2X @?JhrY5pիP5}0Ë9R4?tCW#\ T'(t~~nrݾ'D=GaM>؈N R\O&D?;nѾ < 7R`a=JZAF@xSgW O2|? Iv_2k֬qiΞh80L(,QpL{wB6mįO"?3ZI <=9D)h{:g%3Ԧ0}B]|zf螴^jC=8J "4i&(;Zu\ ӿ/<5e8'ISE'2Vz:>`ÞSW tv…啖沠 QoǾ+@B /W=QPАTu;w,(a1%=jߒzB?0Lt <-m(MrQo]qog~w2:QW+`PR!Sq*=Z? , `AazcTU\/2 B) TIENDB`ntfy-2.11.0/docs/static/js/000077500000000000000000000000001462047176100154165ustar00rootroot00000000000000ntfy-2.11.0/docs/static/js/extra.js000066400000000000000000000061401462047176100171000ustar00rootroot00000000000000// Link tabs, as per https://facelessuser.github.io/pymdown-extensions/extensions/tabbed/#linked-tabs const savedCodeTab = localStorage.getItem("savedTab"); const codeTabs = document.querySelectorAll(".tabbed-set > input"); for (const tab of codeTabs) { tab.addEventListener("click", () => { const current = document.querySelector(`label[for=${tab.id}]`); const pos = current.getBoundingClientRect().top; const labelContent = current.innerHTML; const labels = document.querySelectorAll(".tabbed-set > label, .tabbed-alternate > .tabbed-labels > label"); for (const label of labels) { if (label.innerHTML === labelContent) { document.querySelector(`input[id=${label.getAttribute("for")}]`).checked = true; } } // Preserve scroll position const delta = (current.getBoundingClientRect().top) - pos; window.scrollBy(0, delta); // Save localStorage.setItem("savedTab", labelContent); }); // Select saved tab const current = document.querySelector(`label[for=${tab.id}]`); const labelContent = current.innerHTML; if (savedCodeTab === labelContent) { tab.checked = true; } } // Lightbox for screenshot const lightbox = document.createElement("div"); lightbox.classList.add("lightbox"); document.body.appendChild(lightbox); const showScreenshotOverlay = (e, el, group, index) => { lightbox.classList.add("show"); document.addEventListener("keydown", nextScreenshotKeyboardListener); return showScreenshot(e, group, index); }; const showScreenshot = (e, group, index) => { const actualIndex = resolveScreenshotIndex(group, index); lightbox.innerHTML = "
      " + screenshots[group][actualIndex].innerHTML; lightbox.querySelector("img").onclick = (e) => { return showScreenshot(e, group, actualIndex + 1); }; currentScreenshotGroup = group; currentScreenshotIndex = actualIndex; e.stopPropagation(); return false; }; const nextScreenshot = (e) => { return showScreenshot(e, currentScreenshotGroup, currentScreenshotIndex + 1); }; const previousScreenshot = (e) => { return showScreenshot(e, currentScreenshotGroup, currentScreenshotIndex - 1); }; const resolveScreenshotIndex = (group, index) => { if (index < 0) { return screenshots[group].length - 1; } else if (index > screenshots[group].length - 1) { return 0; } return index; }; const hideScreenshotOverlay = (e) => { lightbox.classList.remove("show"); document.removeEventListener("keydown", nextScreenshotKeyboardListener); }; const nextScreenshotKeyboardListener = (e) => { switch (e.keyCode) { case 37: previousScreenshot(e); break; case 39: nextScreenshot(e); break; } }; let currentScreenshotGroup = ""; let currentScreenshotIndex = 0; let screenshots = {}; Array.from(document.getElementsByClassName("screenshots")).forEach((sg) => { const group = sg.id; screenshots[group] = [...sg.querySelectorAll("a")]; screenshots[group].forEach((el, index) => { el.onclick = (e) => { return showScreenshotOverlay(e, el, group, index); }; }); }); lightbox.onclick = hideScreenshotOverlay; ntfy-2.11.0/docs/subscribe/000077500000000000000000000000001462047176100154745ustar00rootroot00000000000000ntfy-2.11.0/docs/subscribe/api.md000066400000000000000000000506501462047176100165750ustar00rootroot00000000000000# Subscribe via API You can create and subscribe to a topic in the [web UI](web.md), via the [phone app](phone.md), via the [ntfy CLI](cli.md), or in your own app or script by subscribing the API. This page describes how to subscribe via API. You may also want to check out the page that describes how to [publish messages](../publish.md). You can consume the subscription API as either a **[simple HTTP stream (JSON, SSE or raw)](#http-stream)**, or **[via WebSockets](#websockets)**. Both are incredibly simple to use. ## HTTP stream The HTTP stream-based API relies on a simple GET request with a streaming HTTP response, i.e **you open a GET request and the connection stays open forever**, sending messages back as they come in. There are three different API endpoints, which only differ in the response format: * [JSON stream](#subscribe-as-json-stream): `/json` returns a JSON stream, with one JSON message object per line * [SSE stream](#subscribe-as-sse-stream): `/sse` returns messages as [Server-Sent Events (SSE)](https://en.wikipedia.org/wiki/Server-sent_events), which can be used with [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) * [Raw stream](#subscribe-as-raw-stream): `/raw` returns messages as raw text, with one line per message ### Subscribe as JSON stream Here are a few examples of how to consume the JSON endpoint (`/json`). For almost all languages, **this is the recommended way to subscribe to a topic**. The notable exception is JavaScript, for which the [SSE/EventSource stream](#subscribe-as-sse-stream) is much easier to work with. === "Command line (curl)" ``` $ curl -s ntfy.sh/disk-alerts/json {"id":"SLiKI64DOt","time":1635528757,"event":"open","topic":"mytopic"} {"id":"hwQ2YpKdmg","time":1635528741,"event":"message","topic":"mytopic","message":"Disk full"} {"id":"DGUDShMCsc","time":1635528787,"event":"keepalive","topic":"mytopic"} ... ``` === "ntfy CLI" ``` $ ntfy subcribe disk-alerts {"id":"hwQ2YpKdmg","time":1635528741,"event":"message","topic":"mytopic","message":"Disk full"} ... ``` === "HTTP" ``` http GET /disk-alerts/json HTTP/1.1 Host: ntfy.sh HTTP/1.1 200 OK Content-Type: application/x-ndjson; charset=utf-8 Transfer-Encoding: chunked {"id":"SLiKI64DOt","time":1635528757,"event":"open","topic":"mytopic"} {"id":"hwQ2YpKdmg","time":1635528741,"event":"message","topic":"mytopic","message":"Disk full"} {"id":"DGUDShMCsc","time":1635528787,"event":"keepalive","topic":"mytopic"} ... ``` === "Go" ``` go resp, err := http.Get("https://ntfy.sh/disk-alerts/json") if err != nil { log.Fatal(err) } defer resp.Body.Close() scanner := bufio.NewScanner(resp.Body) for scanner.Scan() { println(scanner.Text()) } ``` === "Python" ``` python resp = requests.get("https://ntfy.sh/disk-alerts/json", stream=True) for line in resp.iter_lines(): if line: print(line) ``` === "PHP" ``` php-inline $fp = fopen('https://ntfy.sh/disk-alerts/json', 'r'); if (!$fp) die('cannot open stream'); while (!feof($fp)) { echo fgets($fp, 2048); flush(); } fclose($fp); ``` ### Subscribe as SSE stream Using [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) in JavaScript, you can consume notifications via a [Server-Sent Events (SSE)](https://en.wikipedia.org/wiki/Server-sent_events) stream. It's incredibly easy to use. Here's what it looks like. You may also want to check out the [full example on GitHub](https://github.com/binwiederhier/ntfy/tree/main/examples/web-example-eventsource). === "Command line (curl)" ``` $ curl -s ntfy.sh/mytopic/sse event: open data: {"id":"weSj9RtNkj","time":1635528898,"event":"open","topic":"mytopic"} data: {"id":"p0M5y6gcCY","time":1635528909,"event":"message","topic":"mytopic","message":"Hi!"} event: keepalive data: {"id":"VNxNIg5fpt","time":1635528928,"event":"keepalive","topic":"test"} ... ``` === "HTTP" ``` http GET /mytopic/sse HTTP/1.1 Host: ntfy.sh HTTP/1.1 200 OK Content-Type: text/event-stream; charset=utf-8 Transfer-Encoding: chunked event: open data: {"id":"weSj9RtNkj","time":1635528898,"event":"open","topic":"mytopic"} data: {"id":"p0M5y6gcCY","time":1635528909,"event":"message","topic":"mytopic","message":"Hi!"} event: keepalive data: {"id":"VNxNIg5fpt","time":1635528928,"event":"keepalive","topic":"test"} ... ``` === "JavaScript" ``` javascript const eventSource = new EventSource('https://ntfy.sh/mytopic/sse'); eventSource.onmessage = (e) => { console.log(e.data); }; ``` ### Subscribe as raw stream The `/raw` endpoint will output one line per message, and **will only include the message body**. It's useful for extremely simple scripts, and doesn't include all the data. Additional fields such as [priority](../publish.md#message-priority), [tags](../publish.md#tags--emojis--) or [message title](../publish.md#message-title) are not included in this output format. Keepalive messages are sent as empty lines. === "Command line (curl)" ``` $ curl -s ntfy.sh/disk-alerts/raw Disk full ... ``` === "HTTP" ``` http GET /disk-alerts/raw HTTP/1.1 Host: ntfy.sh HTTP/1.1 200 OK Content-Type: text/plain; charset=utf-8 Transfer-Encoding: chunked Disk full ... ``` === "Go" ``` go resp, err := http.Get("https://ntfy.sh/disk-alerts/raw") if err != nil { log.Fatal(err) } defer resp.Body.Close() scanner := bufio.NewScanner(resp.Body) for scanner.Scan() { println(scanner.Text()) } ``` === "Python" ``` python resp = requests.get("https://ntfy.sh/disk-alerts/raw", stream=True) for line in resp.iter_lines(): if line: print(line) ``` === "PHP" ``` php-inline $fp = fopen('https://ntfy.sh/disk-alerts/raw', 'r'); if (!$fp) die('cannot open stream'); while (!feof($fp)) { echo fgets($fp, 2048); flush(); } fclose($fp); ``` ## WebSockets You may also subscribe to topics via [WebSockets](https://en.wikipedia.org/wiki/WebSocket), which is also widely supported in many languages. Most notably, WebSockets are natively supported in JavaScript. You may also want to check out the [full example on GitHub](https://github.com/binwiederhier/ntfy/tree/main/examples/web-example-websocket). On the command line, I recommend [websocat](https://github.com/vi/websocat), a fantastic tool similar to `socat` or `curl`, but specifically for WebSockets. The WebSockets endpoint is available at `/ws` and returns messages as JSON objects similar to the [JSON stream endpoint](#subscribe-as-json-stream). === "Command line (websocat)" ``` $ websocat wss://ntfy.sh/mytopic/ws {"id":"qRHUCCvjj8","time":1642307388,"event":"open","topic":"mytopic"} {"id":"eOWoUBJ14x","time":1642307754,"event":"message","topic":"mytopic","message":"hi there"} ``` === "HTTP" ``` http GET /disk-alerts/ws HTTP/1.1 Host: ntfy.sh Upgrade: websocket Connection: Upgrade HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade ... ``` === "Go" ``` go import "github.com/gorilla/websocket" ws, _, _ := websocket.DefaultDialer.Dial("wss://ntfy.sh/mytopic/ws", nil) messageType, data, err := ws.ReadMessage() ... ``` === "JavaScript" ``` javascript const socket = new WebSocket('wss://ntfy.sh/mytopic/ws'); socket.addEventListener('message', function (event) { console.log(event.data); }); ``` ## Advanced features ### Poll for messages You can also just poll for messages if you don't like the long-standing connection using the `poll=1` query parameter. The connection will end after all available messages have been read. This parameter can be combined with `since=` (defaults to `since=all`). ``` curl -s "ntfy.sh/mytopic/json?poll=1" ``` ### Fetch cached messages Messages may be cached for a couple of hours (see [message caching](../config.md#message-cache)) to account for network interruptions of subscribers. If the server has configured message caching, you can read back what you missed by using the `since=` query parameter. It takes a duration (e.g. `10m` or `30s`), a Unix timestamp (e.g. `1635528757`), a message ID (e.g. `nFS3knfcQ1xe`), or `all` (all cached messages). ``` curl -s "ntfy.sh/mytopic/json?since=10m" curl -s "ntfy.sh/mytopic/json?since=1645970742" curl -s "ntfy.sh/mytopic/json?since=nFS3knfcQ1xe" ``` ### Fetch scheduled messages Messages that are [scheduled to be delivered](../publish.md#scheduled-delivery) at a later date are not typically returned when subscribing via the API, which makes sense, because after all, the messages have technically not been delivered yet. To also return scheduled messages from the API, you can use the `scheduled=1` (alias: `sched=1`) parameter (makes most sense with the `poll=1` parameter): ``` curl -s "ntfy.sh/mytopic/json?poll=1&sched=1" ``` ### Filter messages You can filter which messages are returned based on the well-known message fields `id`, `message`, `title`, `priority` and `tags`. Here's an example that only returns messages of high or urgent priority that contains the both tags "zfs-error" and "error". Note that the `priority` filter is a logical OR and the `tags` filter is a logical AND. ``` $ curl "ntfy.sh/alerts/json?priority=high&tags=zfs-error" {"id":"0TIkJpBcxR","time":1640122627,"event":"open","topic":"alerts"} {"id":"X3Uzz9O1sM","time":1640122674,"event":"message","topic":"alerts","priority":4, "tags":["error", "zfs-error"], "message":"ZFS pool corruption detected"} ``` Available filters (all case-insensitive): | Filter variable | Alias | Example | Description | |-----------------|---------------------------|-----------------------------------------------|-------------------------------------------------------------------------| | `id` | `X-ID` | `ntfy.sh/mytopic/json?poll=1&id=pbkiz8SD7ZxG` | Only return messages that match this exact message ID | | `message` | `X-Message`, `m` | `ntfy.sh/mytopic/json?message=lalala` | Only return messages that match this exact message string | | `title` | `X-Title`, `t` | `ntfy.sh/mytopic/json?title=some+title` | Only return messages that match this exact title string | | `priority` | `X-Priority`, `prio`, `p` | `ntfy.sh/mytopic/json?p=high,urgent` | Only return messages that match *any priority listed* (comma-separated) | | `tags` | `X-Tags`, `tag`, `ta` | `ntfy.sh/mytopic?/jsontags=error,alert` | Only return messages that match *all listed tags* (comma-separated) | ### Subscribe to multiple topics It's possible to subscribe to multiple topics in one HTTP call by providing a comma-separated list of topics in the URL. This allows you to reduce the number of connections you have to maintain: ``` $ curl -s ntfy.sh/mytopic1,mytopic2/json {"id":"0OkXIryH3H","time":1637182619,"event":"open","topic":"mytopic1,mytopic2,mytopic3"} {"id":"dzJJm7BCWs","time":1637182634,"event":"message","topic":"mytopic1","message":"for topic 1"} {"id":"Cm02DsxUHb","time":1637182643,"event":"message","topic":"mytopic2","message":"for topic 2"} ``` ### Authentication Depending on whether the server is configured to support [access control](../config.md#access-control), some topics may be read/write protected so that only users with the correct credentials can subscribe or publish to them. To publish/subscribe to protected topics, you can: * Use [basic auth](../publish.md#basic-auth), e.g. `Authorization: Basic dGVzdHVzZXI6ZmFrZXBhc3N3b3Jk` * or use the [`auth` query parameter](../publish.md#query-param), e.g. `?auth=QmFzaWMgZEdWemRIVnpaWEk2Wm1GclpYQmhjM04zYjNKaw` Please refer to the [publishing documentation](../publish.md#authentication) for additional details. ## JSON message format Both the [`/json` endpoint](#subscribe-as-json-stream) and the [`/sse` endpoint](#subscribe-as-sse-stream) return a JSON format of the message. It's very straight forward: **Message**: | Field | Required | Type | Example | Description | |--------------|----------|---------------------------------------------------|-------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------| | `id` | ✔️ | *string* | `hwQ2YpKdmg` | Randomly chosen message identifier | | `time` | ✔️ | *number* | `1635528741` | Message date time, as Unix time stamp | | `expires` | (✔)️ | *number* | `1673542291` | Unix time stamp indicating when the message will be deleted, not set if `Cache: no` is sent | | `event` | ✔️ | `open`, `keepalive`, `message`, or `poll_request` | `message` | Message type, typically you'd be only interested in `message` | | `topic` | ✔️ | *string* | `topic1,topic2` | Comma-separated list of topics the message is associated with; only one for all `message` events, but may be a list in `open` events | | `message` | - | *string* | `Some message` | Message body; always present in `message` events | | `title` | - | *string* | `Some title` | Message [title](../publish.md#message-title); if not set defaults to `ntfy.sh/` | | `tags` | - | *string array* | `["tag1","tag2"]` | List of [tags](../publish.md#tags-emojis) that may or not map to emojis | | `priority` | - | *1, 2, 3, 4, or 5* | `4` | Message [priority](../publish.md#message-priority) with 1=min, 3=default and 5=max | | `click` | - | *URL* | `https://example.com` | Website opened when notification is [clicked](../publish.md#click-action) | | `actions` | - | *JSON array* | *see [actions buttons](../publish.md#action-buttons)* | [Action buttons](../publish.md#action-buttons) that can be displayed in the notification | | `attachment` | - | *JSON object* | *see below* | Details about an attachment (name, URL, size, ...) | **Attachment** (part of the message, see [attachments](../publish.md#attachments) for details): | Field | Required | Type | Example | Description | |-----------|----------|-------------|--------------------------------|-----------------------------------------------------------------------------------------------------------| | `name` | ✔️ | *string* | `attachment.jpg` | Name of the attachment, can be overridden with `X-Filename`, see [attachments](../publish.md#attachments) | | `url` | ✔️ | *URL* | `https://example.com/file.jpg` | URL of the attachment | | `type` | -️ | *mime type* | `image/jpeg` | Mime type of the attachment, only defined if attachment was uploaded to ntfy server | | `size` | -️ | *number* | `33848` | Size of the attachment in bytes, only defined if attachment was uploaded to ntfy server | | `expires` | -️ | *number* | `1635528741` | Attachment expiry date as Unix time stamp, only defined if attachment was uploaded to ntfy server | Here's an example for each message type: === "Notification message" ``` json { "id": "sPs71M8A2T", "time": 1643935928, "expires": 1643936928, "event": "message", "topic": "mytopic", "priority": 5, "tags": [ "warning", "skull" ], "click": "https://homecam.mynet.lan/incident/1234", "attachment": { "name": "camera.jpg", "type": "image/png", "size": 33848, "expires": 1643946728, "url": "https://ntfy.sh/file/sPs71M8A2T.png" }, "title": "Unauthorized access detected", "message": "Movement detected in the yard. You better go check" } ``` === "Notification message (minimal)" ``` json { "id": "wze9zgqK41", "time": 1638542110, "expires": 1638543112, "event": "message", "topic": "phil_alerts", "message": "Remote access to phils-laptop detected. Act right away." } ``` === "Open message" ``` json { "id": "2pgIAaGrQ8", "time": 1638542215, "event": "open", "topic": "phil_alerts" } ``` === "Keepalive message" ``` json { "id": "371sevb0pD", "time": 1638542275, "event": "keepalive", "topic": "phil_alerts" } ``` === "Poll request message" ``` json { "id": "371sevb0pD", "time": 1638542275, "event": "poll_request", "topic": "phil_alerts" } ``` ## List of all parameters The following is a list of all parameters that can be passed **when subscribing to a message**. Parameter names are **case-insensitive**, and can be passed as **HTTP headers** or **query parameters in the URL**. They are listed in the table in their canonical form. | Parameter | Aliases (case-insensitive) | Description | |-------------|----------------------------|---------------------------------------------------------------------------------| | `poll` | `X-Poll`, `po` | Return cached messages and close connection | | `since` | `X-Since`, `si` | Return cached messages since timestamp, duration or message ID | | `scheduled` | `X-Scheduled`, `sched` | Include scheduled/delayed messages in message list | | `id` | `X-ID` | Filter: Only return messages that match this exact message ID | | `message` | `X-Message`, `m` | Filter: Only return messages that match this exact message string | | `title` | `X-Title`, `t` | Filter: Only return messages that match this exact title string | | `priority` | `X-Priority`, `prio`, `p` | Filter: Only return messages that match *any priority listed* (comma-separated) | | `tags` | `X-Tags`, `tag`, `ta` | Filter: Only return messages that match *all listed tags* (comma-separated) | ntfy-2.11.0/docs/subscribe/cli.md000066400000000000000000000312771462047176100165770ustar00rootroot00000000000000# Subscribe via ntfy CLI In addition to subscribing via the [web UI](web.md), the [phone app](phone.md), or the [API](api.md), you can subscribe to topics via the ntfy CLI. The CLI is included in the same `ntfy` binary that can be used to [self-host a server](../install.md). !!! info The **ntfy CLI is not required to send or receive messages**. You can instead [send messages with curl](../publish.md), and even use it to [subscribe to topics](api.md). It may be a little more convenient to use the ntfy CLI than writing your own script. It all depends on the use case. 😀 ## Install + configure To install the ntfy CLI, simply **follow the steps outlined on the [install page](../install.md)**. The ntfy server and client are the same binary, so it's all very convenient. After installing, you can (optionally) configure the client by creating `~/.config/ntfy/client.yml` (for the non-root user), `~/Library/Application Support/ntfy/client.yml` (for the macOS non-root user), or `/etc/ntfy/client.yml` (for the root user). You can find a [skeleton config](https://github.com/binwiederhier/ntfy/blob/main/client/client.yml) on GitHub. If you just want to use [ntfy.sh](https://ntfy.sh), you don't have to change anything. If you **self-host your own server**, you may want to edit the `default-host` option: ``` yaml # Base URL used to expand short topic names in the "ntfy publish" and "ntfy subscribe" commands. # If you self-host a ntfy server, you'll likely want to change this. # default-host: https://ntfy.myhost.com ``` ## Publish messages You can send messages with the ntfy CLI using the `ntfy publish` command (or any of its aliases `pub`, `send` or `trigger`). There are a lot of examples on the page about [publishing messages](../publish.md), but here are a few quick ones: === "Simple send" ``` ntfy publish mytopic This is a message ntfy publish mytopic "This is a message" ntfy pub mytopic "This is a message" ``` === "Send with title, priority, and tags" ``` ntfy publish \ --title="Thing sold on eBay" \ --priority=high \ --tags=partying_face \ mytopic \ "Somebody just bought the thing that you sell" ``` === "Send at 8:30am" ``` ntfy pub --at=8:30am delayed_topic Laterzz ``` === "Triggering a webhook" ``` ntfy trigger mywebhook ntfy pub mywebhook ``` ### Attaching a local file You can easily upload and attach a local file to a notification: ``` $ ntfy pub --file README.md mytopic | jq . { "id": "meIlClVLABJQ", "time": 1655825460, "event": "message", "topic": "mytopic", "message": "You received a file: README.md", "attachment": { "name": "README.md", "type": "text/plain; charset=utf-8", "size": 2892, "expires": 1655836260, "url": "https://ntfy.sh/file/meIlClVLABJQ.txt" } } ``` ### Wait for PID/command If you have a long-running command and want to **publish a notification when the command completes**, you may wrap it with `ntfy publish --wait-cmd` (aliases: `--cmd`, `--done`). Or, if you forgot to wrap it, and the command is already running, you can wait for the process to complete with `ntfy publish --wait-pid` (alias: `--pid`). Run a command and wait for it to complete (here: `rsync ...`): ``` $ ntfy pub --wait-cmd mytopic rsync -av ./ root@example.com:/backups/ | jq . { "id": "Re0rWXZQM8WB", "time": 1655825624, "event": "message", "topic": "mytopic", "message": "Command succeeded after 56.553s: rsync -av ./ root@example.com:/backups/" } ``` Or, if you already started the long-running process and want to wait for it using its process ID (PID), you can do this: === "Using a PID directly" ``` $ ntfy pub --wait-pid 8458 mytopic | jq . { "id": "orM6hJKNYkWb", "time": 1655825827, "event": "message", "topic": "mytopic", "message": "Process with PID 8458 exited after 2.003s" } ``` === "Using a `pidof`" ``` $ ntfy pub --wait-pid $(pidof rsync) mytopic | jq . { "id": "orM6hJKNYkWb", "time": 1655825827, "event": "message", "topic": "mytopic", "message": "Process with PID 8458 exited after 2.003s" } ``` ## Subscribe to topics You can subscribe to topics using `ntfy subscribe`. Depending on how it is called, this command will either print or execute a command for every arriving message. There are a few different ways in which the command can be run: ### Stream messages as JSON ``` ntfy subscribe TOPIC ``` If you run the command like this, it prints the JSON representation of every incoming message. This is useful when you have a command that wants to stream-read incoming JSON messages. Unless `--poll` is passed, this command stays open forever. ``` $ ntfy sub mytopic {"id":"nZ8PjH5oox","time":1639971913,"event":"message","topic":"mytopic","message":"hi there"} {"id":"sekSLWTujn","time":1639972063,"event":"message","topic":"mytopic",priority:5,"message":"Oh no!"} ... ```
      Subscribe in JSON mode
      ### Run command for every message ``` ntfy subscribe TOPIC COMMAND ``` If you run it like this, a COMMAND is executed for every incoming messages. Scroll down to see a list of available environment variables. Here are a few examples: ``` ntfy sub mytopic 'notify-send "$m"' ntfy sub topic1 /my/script.sh ntfy sub topic1 'echo "Message $m was received. Its title was $t and it had priority $p' ```
      Execute command on incoming messages
      The message fields are passed to the command as environment variables and can be used in scripts. Note that since these are environment variables, you typically don't have to worry about quoting too much, as long as you enclose them in double-quotes, you should be fine: | Variable | Aliases | Description | |------------------|----------------------------|----------------------------------------| | `$NTFY_ID` | `$id` | Unique message ID | | `$NTFY_TIME` | `$time` | Unix timestamp of the message delivery | | `$NTFY_TOPIC` | `$topic` | Topic name | | `$NTFY_MESSAGE` | `$message`, `$m` | Message body | | `$NTFY_TITLE` | `$title`, `$t` | Message title | | `$NTFY_PRIORITY` | `$priority`, `$prio`, `$p` | Message priority (1=min, 5=max) | | `$NTFY_TAGS` | `$tags`, `$tag`, `$ta` | Message tags (comma separated list) | | `$NTFY_RAW` | `$raw` | Raw JSON message | ### Subscribe to multiple topics ``` ntfy subscribe --from-config ``` To subscribe to multiple topics at once, and run different commands for each one, you can use `ntfy subscribe --from-config`, which will read the `subscribe` config from the config file. Please also check out the [ntfy-client systemd service](#using-the-systemd-service). Here's an example config file that subscribes to three different topics, executing a different command for each of them: === "~/.config/ntfy/client.yml (Linux)" ```yaml subscribe: - topic: echo-this command: 'echo "Message received: $message"' - topic: alerts command: notify-send -i /usr/share/ntfy/logo.png "Important" "$m" if: priority: high,urgent - topic: calc command: 'gnome-calculator 2>/dev/null &' - topic: print-temp command: | echo "You can easily run inline scripts, too." temp="$(sensors | awk '/Pack/ { print substr($4,2,2) }')" if [ $temp -gt 80 ]; then echo "Warning: CPU temperature is $temp. Too high." else echo "CPU temperature is $temp. That's alright." fi ``` === "~/Library/Application Support/ntfy/client.yml (macOS)" ```yaml subscribe: - topic: echo-this command: 'echo "Message received: $message"' - topic: alerts command: osascript -e "display notification \"$message\"" if: priority: high,urgent - topic: calc command: open -a Calculator ``` === "%AppData%\ntfy\client.yml (Windows)" ```yaml subscribe: - topic: echo-this command: 'echo Message received: %message%' - topic: alerts command: | notifu /m "%NTFY_MESSAGE%" exit 0 if: priority: high,urgent - topic: calc command: calc ``` In this example, when `ntfy subscribe --from-config` is executed: * Messages to `echo-this` simply echos to standard out * Messages to `alerts` display as desktop notification for high priority messages using [notify-send](https://manpages.ubuntu.com/manpages/focal/man1/notify-send.1.html) (Linux), [notifu](https://www.paralint.com/projects/notifu/) (Windows) or `osascript` (macOS) * Messages to `calc` open the calculator 😀 (*because, why not*) * Messages to `print-temp` execute an inline script and print the CPU temperature (Linux version only) I hope this shows how powerful this command is. Here's a short video that demonstrates the above example:
      Execute all the things
      If most (or all) of your subscriptions use the same credentials, you can set defaults in `client.yml`. Use `default-user` and `default-password` or `default-token` (but not both). You can also specify a `default-command` that will run when a message is received. If a subscription does not include credentials to use or does not have a command, the defaults will be used, otherwise, the subscription settings will override the defaults. !!! warning Because the `default-user`, `default-password`, and `default-token` will be sent for each topic that does not have its own username/password (even if the topic does not require authentication), be sure that the servers/topics you subscribe to use HTTPS to prevent leaking the username and password. ### Using the systemd service You can use the `ntfy-client` systemd service (see [ntfy-client.service](https://github.com/binwiederhier/ntfy/blob/main/client/ntfy-client.service)) to subscribe to multiple topics just like in the example above. The service is automatically installed (but not started) if you install the deb/rpm package. To configure it, simply edit `/etc/ntfy/client.yml` and run `sudo systemctl restart ntfy-client`. !!! info The `ntfy-client.service` runs as user `ntfy`, meaning that typical Linux permission restrictions apply. See below for how to fix this. If the service runs on your personal desktop machine, you may want to override the service user/group (`User=` and `Group=`), and adjust the `DISPLAY` and `DBUS_SESSION_BUS_ADDRESS` environment variables. This will allow you to run commands in your X session as the primary machine user. You can either manually override these systemd service entries with `sudo systemctl edit ntfy-client`, and add this (assuming your user is `phil`). Don't forget to run `sudo systemctl daemon-reload` and `sudo systemctl restart ntfy-client` after editing the service file: === "/etc/systemd/system/ntfy-client.service.d/override.conf" ``` [Service] User=phil Group=phil Environment="DISPLAY=:0" "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus" ``` Or you can run the following script that creates this override config for you: ``` sudo sh -c 'cat > /etc/systemd/system/ntfy-client.service.d/override.conf' <
      You can get the Android app from both [Google Play](https://play.google.com/store/apps/details?id=io.heckel.ntfy) and from [F-Droid](https://f-droid.org/en/packages/io.heckel.ntfy/). Both are largely identical, with the one exception that the F-Droid flavor does not use Firebase. The iOS app can be downloaded from the [App Store](https://apps.apple.com/us/app/ntfy/id1625396347). Alternatively, you may also want to consider using the **[progressive web app (PWA)](pwa.md)** instead of the native app. The PWA is a website that you can add to your home screen, and it will behave just like a native app. ## Overview A picture is worth a thousand words. Here are a few screenshots showing what the app looks like. It's all pretty straight forward. You can add topics and as soon as you add them, you can [publish messages](../publish.md) to them.
      If those screenshots are still not enough, here's a video:
      Sending push notifications to your Android phone
      ## Message priority _Supported on:_ :material-android: :material-apple: When you [publish messages](../publish.md#message-priority) to a topic, you can **define a priority**. This priority defines how urgently Android will notify you about the notification, and whether they make a sound and/or vibrate. By default, messages with default priority or higher (>= 3) will vibrate and make a sound. Messages with high or urgent priority (>= 4) will also show as pop-over, like so:
      ![priority notification](../static/img/priority-notification.png){ width=500 }
      High and urgent notifications show as pop-over
      You can change these settings in Android by long-pressing on the app, and tapping "Notifications", or from the "Settings" menu under "Channel settings". There is one notification channel for each priority:
      ![notification settings](../static/img/android-screenshot-notification-settings.png){ width=500 }
      Per-priority channels
      Per notification channel, you can configure a **channel-specific sound**, whether to **override the Do Not Disturb (DND)** setting, and other settings such as popover or notification dot:
      ![channel details](../static/img/android-screenshot-notification-details.jpg){ width=500 }
      Per-priority sound/vibration settings
      ## Instant delivery _Supported on:_ :material-android: Instant delivery allows you to receive messages on your phone instantly, **even when your phone is in doze mode**, i.e. when the screen turns off, and you leave it on the desk for a while. This is achieved with a foreground service, which you'll see as a permanent notification that looks like this:
      ![foreground service](../static/img/foreground-service.png){ width=500 }
      Instant delivery foreground notification
      Android does not allow you to dismiss this notification, unless you turn off the notification channel in the settings. To do so, long-press on the foreground notification (screenshot above) and navigate to the settings. Then toggle the "Subscription Service" off:
      ![foreground service](../static/img/notification-settings.png){ width=500 }
      Turning off the persistent instant delivery notification
      **Limitations without instant delivery**: Without instant delivery, **messages may arrive with a significant delay** (sometimes many minutes, or even hours later). If you've ever picked up your phone and suddenly had 10 messages that were sent long before you know what I'm talking about. The reason for this is [Firebase Cloud Messaging (FCM)](https://firebase.google.com/docs/cloud-messaging). FCM is the *only* Google approved way to send push messages to Android devices, and it's what pretty much all apps use to deliver push notifications. Firebase is overall pretty bad at delivering messages in time, but on Android, most apps are stuck with it. The ntfy Android app uses Firebase only for the main host `ntfy.sh`, and only in the Google Play flavor of the app. It won't use Firebase for any self-hosted servers, and not at all in the the F-Droid flavor. ## Share to topic _Supported on:_ :material-android: You can share files to a topic using Android's "Share" feature. This works in almost any app that supports sharing files or text, and it's useful for sending yourself links, files or other things. The feature remembers a few of the last topics you shared content to and lists them at the bottom. The feature is pretty self-explanatory, and one picture says more than a thousand words. So here are two pictures:
      ## ntfy:// links _Supported on:_ :material-android: The ntfy Android app supports deep linking directly to topics. This is useful when integrating with [automation apps](#automation-apps) such as [MacroDroid](https://play.google.com/store/apps/details?id=com.arlosoft.macrodroid) or [Tasker](https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm), or to simply directly link to a topic from a mobile website. !!! info Android deep linking of http/https links is very brittle and limited, which is why something like `https:////subscribe` is **not possible**, and instead `ntfy://` links have to be used. More details in [issue #20](https://github.com/binwiederhier/ntfy/issues/20). **Supported link formats:** | Link format | Example | Description | |-------------------------------------------------------------------------------|-------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `ntfy:///` | `ntfy://ntfy.sh/mytopic` | Directly opens the Android app detail view for the given topic and server. Subscribes to the topic if not already subscribed. This is equivalent to the web view `https://ntfy.sh/mytopic` (HTTPS!) | | `ntfy:///?secure=false` | `ntfy://example.com/mytopic?secure=false` | Same as above, except that this will use HTTP instead of HTTPS as topic URL. This is equivalent to the web view `http://example.com/mytopic` (HTTP!) | ## Integrations ### UnifiedPush _Supported on:_ :material-android: [UnifiedPush](https://unifiedpush.org) is a standard for receiving push notifications without using the Google-owned [Firebase Cloud Messaging (FCM)](https://firebase.google.com/docs/cloud-messaging) service. It puts push notifications in the control of the user. ntfy can act as a **UnifiedPush distributor**, forwarding messages to apps that support it. To use ntfy as a distributor, simply select it in one of the [supported apps](https://unifiedpush.org/users/apps/). That's it. It's a one-step installation 😀. If desired, you can select your own [selfhosted ntfy server](../install.md) to handle messages. Here's an example with [FluffyChat](https://fluffychat.im/):
      ### Automation apps _Supported on:_ :material-android: The ntfy Android app integrates nicely with automation apps such as [MacroDroid](https://play.google.com/store/apps/details?id=com.arlosoft.macrodroid) or [Tasker](https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm). Using Android intents, you can **react to incoming messages**, as well as **send messages**. #### React to incoming messages To react on incoming notifications, you have to register to intents with the `io.heckel.ntfy.MESSAGE_RECEIVED` action (see [code for details](https://github.com/binwiederhier/ntfy-android/blob/main/app/src/main/java/io/heckel/ntfy/msg/BroadcastService.kt)). Here's an example using [MacroDroid](https://play.google.com/store/apps/details?id=com.arlosoft.macrodroid) and [Tasker](https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm), but any app that can catch broadcasts is supported:
      For MacroDroid, be sure to type in the package name `io.heckel.ntfy`, otherwise intents may be silently swallowed. If you're using topics to drive automation, you'll likely want to mute the topic in the ntfy app. This will prevent notification popups:
      ![muted subscription](../static/img/android-screenshot-muted.png){ width=500 }
      Muting notifications to prevent popups
      Here's a list of extras you can access. Most likely, you'll want to filter for `topic` and react on `message`: | Extra name | Type | Example | Description | |----------------------|------------------------------|------------------------------------------|------------------------------------------------------------------------------------| | `id` | *String* | `bP8dMjO8ig` | Randomly chosen message identifier (likely not very useful for task automation) | | `base_url` | *String* | `https://ntfy.sh` | Root URL of the ntfy server this message came from | | `topic` ❤️ | *String* | `mytopic` | Topic name; **you'll likely want to filter for a specific topic** | | `muted` | *Boolean* | `true` | Indicates whether the subscription was muted in the app | | `muted_str` | *String (`true` or `false`)* | `true` | Same as `muted`, but as string `true` or `false` | | `time` | *Int* | `1635528741` | Message date time, as Unix time stamp | | `title` | *String* | `Some title` | Message [title](../publish.md#message-title); may be empty if not set | | `message` ❤️ | *String* | `Some message` | Message body; **this is likely what you're interested in** | | `message_bytes` | *ByteArray* | `(binary data)` | Message body as binary data | | `encoding`️ | *String* | - | Message encoding (empty or "base64") | | `tags` | *String* | `tag1,tag2,..` | Comma-separated list of [tags](../publish.md#tags-emojis) | | `tags_map` | *String* | `0=tag1,1=tag2,..` | Map of tags to make it easier to map first, second, ... tag | | `priority` | *Int (between 1-5)* | `4` | Message [priority](../publish.md#message-priority) with 1=min, 3=default and 5=max | | `click` | *String* | `https://google.com` | [Click action](../publish.md#click-action) URL, or empty if not set | | `attachment_name` | *String* | `attachment.jpg` | Filename of the attachment; may be empty if not set | | `attachment_type` | *String* | `image/jpeg` | Mime type of the attachment; may be empty if not set | | `attachment_size` | *Long* | `9923111` | Size in bytes of the attachment; may be zero if not set | | `attachment_expires` | *Long* | `1655514244` | Expiry date as Unix timestamp of the attachment URL; may be zero if not set | | `attachment_url` | *String* | `https://ntfy.sh/file/afUbjadfl7ErP.jpg` | URL of the attachment; may be empty if not set | #### Send messages using intents To send messages from other apps (such as [MacroDroid](https://play.google.com/store/apps/details?id=com.arlosoft.macrodroid) and [Tasker](https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm)), you can broadcast an intent with the `io.heckel.ntfy.SEND_MESSAGE` action. The ntfy Android app will forward the intent as a HTTP POST request to [publish a message](../publish.md). This is primarily useful for apps that do not support HTTP POST/PUT (like MacroDroid). In Tasker, you can simply use the "HTTP Request" action, which is a little easier and also works if ntfy is not installed. Here's what that looks like:
      The following intent extras are supported when for the intent with the `io.heckel.ntfy.SEND_MESSAGE` action: | Extra name | Required | Type | Example | Description | |--------------|----------|-------------------------------|-------------------|------------------------------------------------------------------------------------| | `base_url` | - | *String* | `https://ntfy.sh` | Root URL of the ntfy server this message came from, defaults to `https://ntfy.sh` | | `topic` ❤️ | ✔ | *String* | `mytopic` | Topic name; **you must set this** | | `title` | - | *String* | `Some title` | Message [title](../publish.md#message-title); may be empty if not set | | `message` ❤️ | ✔ | *String* | `Some message` | Message body; **you must set this** | | `tags` | - | *String* | `tag1,tag2,..` | Comma-separated list of [tags](../publish.md#tags-emojis) | | `priority` | - | *String or Int (between 1-5)* | `4` | Message [priority](../publish.md#message-priority) with 1=min, 3=default and 5=max | ntfy-2.11.0/docs/subscribe/pwa.md000066400000000000000000000102131462047176100166020ustar00rootroot00000000000000# Using the progressive web app (PWA) While ntfy doesn't have a native desktop app, it is built as a [progressive web app](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) (PWA) and thus can be **installed on both desktop and mobile devices**. This gives it its own launcher (e.g. shortcut on Windows, app on macOS, launcher shortcut on Linux, home screen icon on iOS, and launcher icon on Android), a standalone window, push notifications, and an app badge with the unread notification count. Web app installation is **supported on** (see [compatibility table](https://caniuse.com/web-app-manifest) for details): - **Chrome:** Android, Windows, Linux, macOS - **Safari:** iOS 16.4+, macOS 14+ - **Firefox:** Android, as well as on Windows/Linux [via an extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/) - **Edge:** Windows Note that for self-hosted servers, [Web Push](../config.md#web-push) must be configured for the PWA to work. ## Installation ### Chrome on Desktop To install and register the web app via Chrome, click the "install app" icon. After installation, you can find the app in your app drawer:
      ### Safari on macOS To install and register the web app via Safari, click on the Share menu and click Add to Dock. You need to be on macOS Sonoma (14) or higher.
      ### Chrome/Firefox on Android For Chrome on Android, either click the "Add to Home Screen" banner at the bottom of the screen, or select "Install app" in the menu, and then click "Install" in the popup menu. After installation, you can find the app in your app drawer, and on your home screen.
      For Firefox, select "Install" in the menu, and then click "Add" to add an icon to your home screen:
      ### Safari on iOS On iOS Safari, tap on the Share menu, then tap "Add to Home Screen":
      ## Background notifications Background notifications via web push are enabled by default and cannot be turned off when the app is installed, as notifications would not be delivered reliably otherwise. You can mute topics you don't want to receive notifications for. On desktop, you generally need either your browser or the web app open to receive notifications, though the ntfy tab doesn't need to be open. On mobile, you don't need to have the web app open to receive notifications. Look at the [web docs](./web.md#background-notifications) for a detailed breakdown. ntfy-2.11.0/docs/subscribe/web.md000066400000000000000000000117331462047176100166000ustar00rootroot00000000000000# Subscribe from the web app The web app lets you subscribe and publish messages to ntfy topics. For ntfy.sh, the web app is available at [ntfy.sh/app](https://ntfy.sh/app). To subscribe, simply type in the topic name and click the *Subscribe* button. **After subscribing, messages published to the topic will appear in the web app, and pop up as a notification.**
      ## Publish messages To learn how to send messages, check out the [publishing page](../publish.md).
      ## Topic reservations If topic reservations are enabled, you can claim ownership over topics and define access to it:
      ## Notification features and browser support - Emoji tags are supported in all browsers - [Click](../publish.md#click-action) actions are supported in all browsers - Only Chrome, Edge, and Opera support displaying view and http [actions](../publish.md#action-buttons) in notifications. Their presentation is platform specific. Note that HTTP actions are performed using fetch and thus are limited to the [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) rules, which means that any URL you include needs to respond to a [preflight request](https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request) with headers allowing the origin of the ntfy web app (`Access-Control-Allow-Origin: https://ntfy.sh`) or `*`. - Only Chrome, Edge, and Opera support displaying [images](../publish.md#attachments) in notifications. Look at the [Notifications API](https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API#browser_compatibility) for more info. ## Background notifications While subscribing, you have the option to enable background notifications on supported browsers (see "Settings" tab). Note: If you add the web app to your homescreen (as a progressive web app, more info in the [installed web app](pwa.md) docs), you cannot turn these off, as notifications would not be delivered reliably otherwise. You can mute topics you don't want to receive notifications for. **If background notifications are off:** This requires an active ntfy tab to be open to receive notifications. These are typically instantaneous, and will appear as a system notification. If you don't see these, check that your browser is allowed to show notifications (for example in System Settings on macOS). If you don't want to enable background notifications, **pinning the ntfy tab on your browser** is a good solution to leave it running. **If background notifications are on:** This uses the [Web Push API](https://caniuse.com/push-api). You don't need an active ntfy tab open, but in some cases you may need to keep your browser open. Background notifications are only supported on the same server hosting the web app. You cannot use another server, but can instead subscribe on the other server itself. If the ntfy app is not opened for more than a week, background notifications will be paused. You can resume them by opening the app again, and will get a warning notification before they are paused. | Browser | Platform | Browser Running | Browser Not Running | Restrictions | |---------|----------|-----------------|---------------------|---------------------------------------------------------| | Chrome | Desktop | ✅ | ❌ | | | Firefox | Desktop | ✅ | ❌ | | | Edge | Desktop | ✅ | ❌ | | | Opera | Desktop | ✅ | ❌ | | | Safari | Desktop | ✅ | ✅ | requires Safari 16.1, macOS 13 Ventura | | Chrome | Android | ✅ | ✅ | | | Firefox | Android | ✅ | ✅ | | | Safari | iOS | ⚠️ | ⚠️ | requires iOS 16.4, only when app is added to homescreen | (Browsers below 1% usage not shown, look at the [Push API](https://caniuse.com/push-api) for more info) ntfy-2.11.0/docs/troubleshooting.md000066400000000000000000000277051462047176100172770ustar00rootroot00000000000000# Troubleshooting This page lists a few suggestions of what to do when things don't work as expected. This is not a complete list. If this page does not help, feel free to drop by the [Discord](https://discord.gg/cT7ECsZj9w) or [Matrix](https://matrix.to/#/#ntfy:matrix.org) and ask there. We're happy to help. ## ntfy server If you host your own ntfy server, and you're having issues with any component, it is always helpful to enable debugging/tracing in the server. You can find detailed instructions in the [Logging & Debugging](config.md#logging-debugging) section, but it ultimately boils down to setting `log-level: debug` or `log-level: trace` in the `server.yml` file: === "server.yml (debug)" ``` yaml log-level: debug ``` === "server.yml (trace)" ``` yaml log-level: trace ``` If you're using environment variables, set `NTFY_LOG_LEVEL=debug` (or `trace`) instead. You can also pass `--debug` or `--trace` to the `ntfy serve` command, e.g. `ntfy serve --trace`. If you're using systemd (i.e. `systemctl`) to run ntfy, you can look at the logs using `journalctl -u ntfy -f`. The logs will look something like this: === "Example logs (debug)" ``` $ ntfy serve --debug 2023/03/20 14:45:38 INFO Listening on :2586[http] :1025[smtp], ntfy 2.1.2, log level is DEBUG (tag=startup) 2023/03/20 14:45:38 DEBUG Waiting until 2023-03-21 00:00:00 +0000 UTC to reset visitor stats (tag=resetter) 2023/03/20 14:45:39 DEBUG Rate limiters reset for visitor (visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=10, visitor_emails=0, visitor_emails_limit=12, visitor_emails_remaining=12, visitor_id=ip:127.0.0.1, visitor_ip=127.0.0.1, visitor_messages=0, visitor_messages_limit=500, visitor_messages_remaining=500, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=60, visitor_seen=2023-03-20T14:45:39.7-04:00) 2023/03/20 14:45:39 DEBUG HTTP request started (http_method=POST, http_path=/mytopic, tag=http, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=10, visitor_emails=0, visitor_emails_limit=12, visitor_emails_remaining=12, visitor_id=ip:127.0.0.1, visitor_ip=127.0.0.1, visitor_messages=0, visitor_messages_limit=500, visitor_messages_remaining=500, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=60, visitor_seen=2023-03-20T14:45:39.7-04:00) 2023/03/20 14:45:39 DEBUG Received message (http_method=POST, http_path=/mytopic, message_body_size=2, message_delayed=false, message_email=, message_event=message, message_firebase=true, message_id=EZu6i2WZjH0v, message_sender=127.0.0.1, message_time=1679337939, message_unifiedpush=false, tag=publish, topic=mytopic, topic_last_access=2023-03-20T14:45:38.319-04:00, topic_subscribers=0, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=10, visitor_emails=0, visitor_emails_limit=12, visitor_emails_remaining=12, visitor_id=ip:127.0.0.1, visitor_ip=127.0.0.1, visitor_messages=1, visitor_messages_limit=500, visitor_messages_remaining=499, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0002132248, visitor_seen=2023-03-20T14:45:39.7-04:00) 2023/03/20 14:45:39 DEBUG Adding message to cache (http_method=POST, http_path=/mytopic, message_body_size=2, message_event=message, message_id=EZu6i2WZjH0v, message_sender=127.0.0.1, message_time=1679337939, tag=publish, topic=mytopic, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=10, visitor_emails=0, visitor_emails_limit=12, visitor_emails_remaining=12, visitor_id=ip:127.0.0.1, visitor_ip=127.0.0.1, visitor_messages=1, visitor_messages_limit=500, visitor_messages_remaining=499, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.000259165, visitor_seen=2023-03-20T14:45:39.7-04:00) 2023/03/20 14:45:39 DEBUG HTTP request finished (http_method=POST, http_path=/mytopic, tag=http, time_taken_ms=2, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=10, visitor_emails=0, visitor_emails_limit=12, visitor_emails_remaining=12, visitor_id=ip:127.0.0.1, visitor_ip=127.0.0.1, visitor_messages=1, visitor_messages_limit=500, visitor_messages_remaining=499, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0004147334, visitor_seen=2023-03-20T14:45:39.7-04:00) 2023/03/20 14:45:39 DEBUG Wrote 1 message(s) in 8.285712ms (tag=message_cache) ... ``` === "Example logs (trace)" ``` $ ntfy serve --trace 2023/03/20 14:40:42 INFO Listening on :2586[http] :1025[smtp], ntfy 2.1.2, log level is TRACE (tag=startup) 2023/03/20 14:40:42 DEBUG Waiting until 2023-03-21 00:00:00 +0000 UTC to reset visitor stats (tag=resetter) 2023/03/20 14:40:59 DEBUG Rate limiters reset for visitor (visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=10, visitor_emails=0, visitor_emails_limit=12, visitor_emails_remaining=12, visitor_id=ip:127.0.0.1, visitor_ip=127.0.0.1, visitor_messages=0, visitor_messages_limit=500, visitor_messages_remaining=500, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=60, visitor_seen=2023-03-20T14:40:59.893-04:00) 2023/03/20 14:40:59 TRACE HTTP request started (http_method=POST, http_path=/mytopic, http_request=POST /mytopic HTTP/1.1 User-Agent: curl/7.81.0 Accept: */* Content-Length: 2 Content-Type: application/x-www-form-urlencoded hi, tag=http, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=10, visitor_emails=0, visitor_emails_limit=12, visitor_emails_remaining=12, visitor_id=ip:127.0.0.1, visitor_ip=127.0.0.1, visitor_messages=0, visitor_messages_limit=500, visitor_messages_remaining=500, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=60, visitor_seen=2023-03-20T14:40:59.893-04:00) 2023/03/20 14:40:59 TRACE Received message (http_method=POST, http_path=/mytopic, message_body={ "id": "Khaup1RVclU3", "time": 1679337659, "expires": 1679380859, "event": "message", "topic": "mytopic", "message": "hi" }, message_body_size=2, message_delayed=false, message_email=, message_event=message, message_firebase=true, message_id=Khaup1RVclU3, message_sender=127.0.0.1, message_time=1679337659, message_unifiedpush=false, tag=publish, topic=mytopic, topic_last_access=2023-03-20T14:40:59.893-04:00, topic_subscribers=0, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=10, visitor_emails=0, visitor_emails_limit=12, visitor_emails_remaining=12, visitor_id=ip:127.0.0.1, visitor_ip=127.0.0.1, visitor_messages=1, visitor_messages_limit=500, visitor_messages_remaining=499, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0001785048, visitor_seen=2023-03-20T14:40:59.893-04:00) 2023/03/20 14:40:59 DEBUG Adding message to cache (http_method=POST, http_path=/mytopic, message_body_size=2, message_event=message, message_id=Khaup1RVclU3, message_sender=127.0.0.1, message_time=1679337659, tag=publish, topic=mytopic, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=10, visitor_emails=0, visitor_emails_limit=12, visitor_emails_remaining=12, visitor_id=ip:127.0.0.1, visitor_ip=127.0.0.1, visitor_messages=1, visitor_messages_limit=500, visitor_messages_remaining=499, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0002044368, visitor_seen=2023-03-20T14:40:59.893-04:00) 2023/03/20 14:40:59 DEBUG HTTP request finished (http_method=POST, http_path=/mytopic, tag=http, time_taken_ms=1, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=10, visitor_emails=0, visitor_emails_limit=12, visitor_emails_remaining=12, visitor_id=ip:127.0.0.1, visitor_ip=127.0.0.1, visitor_messages=1, visitor_messages_limit=500, visitor_messages_remaining=499, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.000220502, visitor_seen=2023-03-20T14:40:59.893-04:00) 2023/03/20 14:40:59 TRACE No stream or WebSocket subscribers, not forwarding (message_body_size=2, message_event=message, message_id=Khaup1RVclU3, message_sender=127.0.0.1, message_time=1679337659, tag=publish, topic=mytopic, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=10, visitor_emails=0, visitor_emails_limit=12, visitor_emails_remaining=12, visitor_id=ip:127.0.0.1, visitor_ip=127.0.0.1, visitor_messages=1, visitor_messages_limit=500, visitor_messages_remaining=499, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0002369212, visitor_seen=2023-03-20T14:40:59.893-04:00) 2023/03/20 14:41:00 DEBUG Wrote 1 message(s) in 9.529196ms (tag=message_cache) ... ``` ## Android app On Android, you can turn on logging in the settings under **Settings → Record logs**. This will store up to 1,000 log entries, which you can then copy or upload.
      ![Recording logs on Android](static/img/android-screenshot-logs.jpg){ width=400 }
      Recording logs on Android
      When you copy or upload the logs, you can censor them to make it easier to share them with others. ntfy will replace all topics and hostnames with fruits. Here's an example: ``` This is a log of the ntfy Android app. The log shows up to 1,000 entries. Server URLs (aside from ntfy.sh) and topics have been replaced with fruits 🍌🥝🍋🥥🥑🍊🍎🍑. Device info: -- ntfy: 1.16.0 (play) OS: 4.19.157-perf+ Android: 13 (SDK 33) ... Logs -- 1679339199507 2023-03-20 15:06:39.507 D NtfyMainActivity Battery: ignoring optimizations = true (we want this to be true); instant subscriptions = true; remind time reached = true; banner = false 1679339199507 2023-03-20 15:06:39.507 D NtfySubscriberMgr Enqueuing work to refresh subscriber service 1679339199589 2023-03-20 15:06:39.589 D NtfySubscriberMgr ServiceStartWorker: Starting foreground service with action START (work ID: a7eeeae9-9356-40df-afbd-236e5ed10a0b) 1679339199602 2023-03-20 15:06:39.602 D NtfySubscriberService onStartCommand executed with startId: 262 1679339199602 2023-03-20 15:06:39.602 D NtfySubscriberService using an intent with action START 1679339199629 2023-03-20 15:06:39.629 D NtfySubscriberService Refreshing subscriptions 1679339199629 2023-03-20 15:06:39.629 D NtfySubscriberService - Desired connections: [ConnectionId(baseUrl=https://ntfy.sh, topicsToSubscriptionIds={avocado=23801492, lemon=49013182, banana=1309176509201171073, peach=573300885184666424, pineapple=-5956897229801209316, durian=81453333, starfruit=30489279, fruit12=82532869}), ConnectionId(baseUrl=https://orange.example.com, topicsToSubscriptionIds={apple=4971265, dragonfruit=66809328})] 1679339199629 2023-03-20 15:06:39.629 D NtfySubscriberService - Active connections: [ConnectionId(baseUrl=https://orange.example.com, topicsToSubscriptionIds={apple=4971265, dragonfruit=66809328}), ConnectionId(baseUrl=https://ntfy.sh, topicsToSubscriptionIds={avocado=23801492, lemon=49013182, banana=1309176509201171073, peach=573300885184666424, pineapple=-5956897229801209316, durian=81453333, starfruit=30489279, fruit12=82532869})] ... ``` To get live logs, or to get more advanced access to an Android phone, you can use [adb](https://developer.android.com/studio/command-line/adb). After you install and [enable adb debugging](https://developer.android.com/studio/command-line/adb#Enabling), you can get detailed logs like so: ``` # Connect to phone (enable Wireless debugging first) adb connect 192.168.1.137:39539 # Print all logs; you may have to pass the -s option adb logcat adb -s 192.168.1.137:39539 logcat # Only list ntfy logs adb logcat --pid=$(adb shell pidof -s io.heckel.ntfy) adb -s 192.168.1.137:39539 logcat --pid=$(adb -s 192.168.1.137:39539 shell pidof -s io.heckel.ntfy) ``` ## Web app The web app logs everything to the **developer console**, which you can open by **pressing the F12 key** on your keyboard.
      ![Web app logs](static/img/web-logs.png)
      Web app logs in the developer console
      ## iOS app Sorry, there is no way to debug or get the logs from the iOS app (yet), outside of running the app in Xcode. ntfy-2.11.0/examples/000077500000000000000000000000001462047176100144015ustar00rootroot00000000000000ntfy-2.11.0/examples/grafana-dashboard/000077500000000000000000000000001462047176100177255ustar00rootroot00000000000000ntfy-2.11.0/examples/grafana-dashboard/ntfy-grafana.json000066400000000000000000001602251462047176100232030ustar00rootroot00000000000000{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "__elements": {}, "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "9.4.3" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "1.0.0" }, { "type": "panel", "id": "stat", "name": "Stat", "version": "" }, { "type": "panel", "id": "timeseries", "name": "Time series", "version": "" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "target": { "limit": 100, "matchAny": false, "tags": [], "type": "dashboard" }, "type": "dashboard" } ] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": null, "links": [], "liveNow": false, "panels": [ { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 38, "panels": [], "title": "Overview", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "light-green", "value": null } ] } }, "overrides": [] }, "gridPos": { "h": 3, "w": 4, "x": 0, "y": 1 }, "id": 36, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "last" ], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "9.4.3", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "ntfy_messages_published_success{job=\"$job\"}", "legendFormat": "Messages cached", "range": true, "refId": "A" } ], "title": "Published", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "orange", "value": null } ] } }, "overrides": [] }, "gridPos": { "h": 3, "w": 4, "x": 4, "y": 1 }, "id": 33, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "last" ], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "9.4.3", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_messages_cached_total{job=\"$job\"}", "legendFormat": "Messages cached", "range": true, "refId": "A" } ], "title": "Cached", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "#69bfb5", "value": null } ] } }, "overrides": [] }, "gridPos": { "h": 3, "w": 4, "x": 8, "y": 1 }, "id": 31, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "last" ], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "9.4.3", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_visitors_total{job=\"$job\"}", "legendFormat": "Visitors", "range": true, "refId": "A" } ], "title": "Visitors", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 3, "w": 4, "x": 12, "y": 1 }, "id": 32, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "last" ], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "9.4.3", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_users_total{job=\"$job\"}", "legendFormat": "Visitors", "range": true, "refId": "A" } ], "title": "Users", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "blue", "value": null } ] } }, "overrides": [] }, "gridPos": { "h": 3, "w": 4, "x": 16, "y": 1 }, "id": 34, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "last" ], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "9.4.3", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_topics_total{job=\"$job\"}", "legendFormat": "Topics", "range": true, "refId": "A" } ], "title": "Topics", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "purple", "value": null } ] } }, "overrides": [] }, "gridPos": { "h": 3, "w": 4, "x": 20, "y": 1 }, "id": 35, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "last" ], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "9.4.3", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_subscribers_total", "legendFormat": "Subscribers", "range": true, "refId": "A" } ], "title": "Subscribers", "type": "stat" }, { "gridPos": { "h": 1, "w": 24, "x": 0, "y": 4 }, "id": 10, "title": "Metrics", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Number of successfully published messages, and messages that could not be published (due to rate limiting, bad formatting, etc.)", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Failed" }, "properties": [ { "id": "custom.axisColorMode", "value": "text" }, { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 7, "w": 6, "x": 0, "y": 5 }, "id": 42, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "rate(ntfy_messages_published_success{job=\"$job\"}[$rate])", "legendFormat": "Success", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "rate(ntfy_messages_published_failure{job=\"$job\"}[$rate])", "hide": false, "legendFormat": "Failed", "range": true, "refId": "B" } ], "title": "Messages published (per second)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Number of messages published since last ntfy server restart", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Failed" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 7, "w": 6, "x": 6, "y": 5 }, "id": 4, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_messages_published_success{job=\"$job\"}", "legendFormat": "Successful", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_messages_published_failure{job=\"$job\"}", "hide": false, "legendFormat": "Failed", "range": true, "refId": "B" } ], "title": "Messages published", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Number of messages currently stored in message cache", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 7, "w": 6, "x": 12, "y": 5 }, "id": 2, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_messages_cached_total{job=\"$job\"}", "legendFormat": "Messages in database", "range": true, "refId": "A" } ], "title": "Messages cached", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 7, "w": 6, "x": 18, "y": 5 }, "id": 14, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_visitors_total{job=\"$job\"}", "legendFormat": "Visitors", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_topics_total{job=\"$job\"}", "hide": false, "legendFormat": "Topics", "range": true, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_subscribers_total{job=\"$job\"}", "hide": false, "legendFormat": "Subscribers", "range": true, "refId": "C" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_users_total{job=\"$job\"}", "hide": false, "legendFormat": "Users", "range": true, "refId": "D" } ], "title": "Visitors, subscribers, topics", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 7, "w": 6, "x": 0, "y": 12 }, "id": 43, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "sum by(job) (rate(ntfy_http_requests_total{job=\"$job\"}[$rate]))", "legendFormat": "Requests per second", "range": true, "refId": "A" } ], "title": "HTTP requests (per second)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 7, "w": 9, "x": 6, "y": 12 }, "id": 41, "options": { "legend": { "calcs": [ "mean" ], "displayMode": "table", "placement": "right", "showLegend": true, "sortBy": "Mean", "sortDesc": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "sum by(http_code) (rate(ntfy_http_requests_total{job=\"$job\", http_code!=\"200\", http_code!=\"429\", http_code!=\"507\"}[$rate]))", "legendFormat": "{{http_code}}", "range": true, "refId": "A" } ], "title": "HTTP errors (per second, excl. 429/507)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 7, "w": 9, "x": 15, "y": 12 }, "id": 16, "options": { "legend": { "calcs": [ "mean" ], "displayMode": "table", "placement": "right", "showLegend": true, "sortBy": "Mean", "sortDesc": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "sum by(ntfy_code) (rate(ntfy_http_requests_total{http_code!=\"200\", job=\"$job\"}[$rate]))", "legendFormat": "{{http_method}} {{http_code}} {{ntfy_code}}", "range": true, "refId": "A" } ], "title": "HTTP errors (per second, ntfy code)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "decbytes" }, "overrides": [] }, "gridPos": { "h": 7, "w": 6, "x": 0, "y": 19 }, "id": 20, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_attachments_total_size{job=\"$job\"}", "legendFormat": "Total size in MB", "range": true, "refId": "A" } ], "title": "Attachments: Total cache size", "transformations": [], "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": -1, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Failure" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 7, "w": 6, "x": 6, "y": 19 }, "id": 27, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "rate(ntfy_firebase_published_success{job=\"$job\"}[$rate])", "legendFormat": "Success", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "rate(ntfy_firebase_published_failure{job=\"$job\"}[$rate])", "hide": false, "legendFormat": "Failure", "range": true, "refId": "B" } ], "title": "Firebase messages sent", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Rejected (HTTP 507)" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 7, "w": 6, "x": 12, "y": 19 }, "id": 26, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "rate(ntfy_unifiedpush_published_success{job=\"$job\"}[$rate])", "legendFormat": "Success", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "rate(ntfy_http_requests_total{job=\"$job\",http_code=\"507\"}[$rate])", "hide": false, "legendFormat": "Rejected (HTTP 507)", "range": true, "refId": "B" } ], "title": "UnifiedPush messages", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Failure" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 7, "w": 6, "x": 18, "y": 19 }, "id": 24, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "rate(ntfy_matrix_published_success{job=\"$job\"}[$rate])", "legendFormat": "Success", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "rate(ntfy_matrix_published_failure{job=\"$job\"}[$rate])", "hide": false, "legendFormat": "Failure", "range": true, "refId": "B" } ], "title": "Matrix messages published", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Failure" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 7, "w": 6, "x": 0, "y": 26 }, "id": 12, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_emails_sent_success{job=\"$job\"}", "legendFormat": "Success", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_emails_sent_failure{job=\"$job\"}", "hide": false, "legendFormat": "Failure", "range": true, "refId": "B" } ], "title": "Emails sent", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Failure" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 7, "w": 6, "x": 6, "y": 26 }, "id": 22, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_emails_received_success{job=\"$job\"}", "legendFormat": "Success", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_emails_received_failure{job=\"$job\"}", "hide": false, "legendFormat": "Failure", "range": true, "refId": "B" } ], "title": "Emails received", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "ms" }, "overrides": [] }, "gridPos": { "h": 7, "w": 6, "x": 12, "y": 26 }, "id": 29, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "ntfy_message_publish_duration_ms{job=\"$job\"}", "legendFormat": "Duration", "range": true, "refId": "A" } ], "title": "Message publish duration", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 33 }, "id": 8, "panels": [], "title": "Internals", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 7, "w": 6, "x": 0, "y": 34 }, "id": 6, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": false }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "go_goroutines{job=\"$job\"}", "legendFormat": "Go routines", "range": true, "refId": "A" } ], "title": "Go routines", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "log": 10, "type": "symlog" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "none" }, "overrides": [] }, "gridPos": { "h": 7, "w": 6, "x": 6, "y": 34 }, "id": 44, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "process_open_fds{job=\"$job\"}", "legendFormat": "Open", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "process_max_fds{job=\"$job\"}", "hide": false, "legendFormat": "Max", "range": true, "refId": "B" } ], "title": "File descriptors", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "decbytes" }, "overrides": [] }, "gridPos": { "h": 7, "w": 6, "x": 12, "y": 34 }, "id": 45, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "process_resident_memory_bytes{job=\"$job\"}", "legendFormat": "Resident memory used by ntfy (RSS)", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "builder", "expr": "process_virtual_memory_bytes{job=\"$job\"}", "hide": false, "legendFormat": "Virtual memory used by ntfy (VSS)", "range": true, "refId": "B" } ], "title": "Resident/virtual memory", "type": "timeseries" } ], "refresh": "10s", "revision": 1, "schemaVersion": 38, "style": "dark", "tags": [], "templating": { "list": [ { "current": {}, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "definition": "label_values(ntfy_visitors_total, job)", "hide": 0, "includeAll": false, "label": "Job", "multi": false, "name": "job", "options": [], "query": { "query": "label_values(ntfy_visitors_total, job)", "refId": "StandardVariableQuery" }, "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 0, "type": "query" }, { "auto": false, "auto_count": 30, "auto_min": "10s", "current": { "selected": false, "text": "30m", "value": "30m" }, "description": "Average per-second rates over values from this time span", "hide": 0, "label": "Rate", "name": "rate", "options": [ { "selected": false, "text": "1m", "value": "1m" }, { "selected": false, "text": "5m", "value": "5m" }, { "selected": false, "text": "10m", "value": "10m" }, { "selected": true, "text": "30m", "value": "30m" }, { "selected": false, "text": "1h", "value": "1h" } ], "query": "1m,5m,10m,30m,1h", "queryValue": "", "refresh": 2, "skipUrlSync": false, "type": "interval" } ] }, "time": { "from": "now-24h", "to": "now" }, "timepicker": {}, "timezone": "", "title": "ntfy App", "uid": "TO6HgexVz", "version": 24, "weekStart": "" }ntfy-2.11.0/examples/linux-desktop-notifications/000077500000000000000000000000001462047176100220565ustar00rootroot00000000000000ntfy-2.11.0/examples/linux-desktop-notifications/notify-desktop.sh000066400000000000000000000005011462047176100253650ustar00rootroot00000000000000#!/bin/bash # This is an example shell script showing how to consume a ntfy.sh topic using # a simple script. The notify-send command sends any arriving message as a desktop notification. TOPIC_URL=ntfy.sh/mytopic while read msg; do [ -n "$msg" ] && notify-send "$msg" done < <(stdbuf -i0 -o0 curl -s $TOPIC_URL/raw) ntfy-2.11.0/examples/publish-go/000077500000000000000000000000001462047176100164525ustar00rootroot00000000000000ntfy-2.11.0/examples/publish-go/main.go000066400000000000000000000015161462047176100177300ustar00rootroot00000000000000package main import ( "log" "net/http" "strings" ) func main() { // Without additional headers (priority, tags, title), it's a one liner. // Check out https://ntfy.sh/mytopic in your browser after running this. http.Post("https://ntfy.sh/mytopic", "text/plain", strings.NewReader("Backup successful 😀")) // If you'd like to add title, priority, or tags, it's a little harder. // Check out https://ntfy.sh/phil_alerts in your browser. req, err := http.NewRequest("POST", "https://ntfy.sh/phil_alerts", strings.NewReader("Remote access to phils-laptop detected. Act right away.")) if err != nil { log.Fatal(err) } req.Header.Set("Title", "Unauthorized access detected") req.Header.Set("Priority", "urgent") req.Header.Set("Tags", "warning,skull") if _, err := http.DefaultClient.Do(req); err != nil { log.Fatal(err) } } ntfy-2.11.0/examples/publish-php/000077500000000000000000000000001462047176100166345ustar00rootroot00000000000000ntfy-2.11.0/examples/publish-php/publish.php000066400000000000000000000007751462047176100210240ustar00rootroot00000000000000 [ 'method' => 'POST', // PUT also works 'header' => "Content-Type: text/plain\r\n" . "Title: Unauthorized access detected\r\n" . "Priority: urgent\r\n" . "Tags: warning,skull", 'content' => 'Remote access to phils-laptop detected. Act right away.' ] ])); ntfy-2.11.0/examples/publish-python/000077500000000000000000000000001462047176100173665ustar00rootroot00000000000000ntfy-2.11.0/examples/publish-python/publish.py000077500000000000000000000004451462047176100214140ustar00rootroot00000000000000#!/usr/bin/env python3 import requests resp = requests.get("https://ntfy.sh/mytopic/trigger", data="Backup successful 😀".encode(encoding='utf-8'), headers={ "Priority": "high", "Tags": "warning,skull", "Title": "Hello there" }) resp.raise_for_status() ntfy-2.11.0/examples/ssh-login-alert/000077500000000000000000000000001462047176100174115ustar00rootroot00000000000000ntfy-2.11.0/examples/ssh-login-alert/ntfy-ssh-login.sh000066400000000000000000000005421462047176100226270ustar00rootroot00000000000000#!/bin/bash # This is a PAM script hook that shows how to notify you when # somebody logs into your server. Place at /usr/local/bin/ntfy-ssh-login.sh (with chmod +x!). TOPIC_URL=ntfy.sh/alerts if [ "${PAM_TYPE}" = "open_session" ]; then curl -H tags:warning -H prio:high -d "SSH login to $(hostname): ${PAM_USER} from ${PAM_RHOST}" "${TOPIC_URL}" fi ntfy-2.11.0/examples/ssh-login-alert/pam_sshd000066400000000000000000000004041462047176100211300ustar00rootroot00000000000000# PAM config file snippet # # Put this snippet AT THE END of the file /etc/pam.d/sshd # See https://geekthis.net/post/run-scripts-after-ssh-authentication/ for details. # (lots of stuff here ...) session optional pam_exec.so /usr/local/bin/ntfy-ssh-login.sh ntfy-2.11.0/examples/subscribe-go/000077500000000000000000000000001462047176100167655ustar00rootroot00000000000000ntfy-2.11.0/examples/subscribe-go/main.go000066400000000000000000000004321462047176100202370ustar00rootroot00000000000000package main import ( "bufio" "log" "net/http" ) func main() { resp, err := http.Get("https://ntfy.sh/phil_alerts/json") if err != nil { log.Fatal(err) } defer resp.Body.Close() scanner := bufio.NewScanner(resp.Body) for scanner.Scan() { println(scanner.Text()) } } ntfy-2.11.0/examples/subscribe-php/000077500000000000000000000000001462047176100171475ustar00rootroot00000000000000ntfy-2.11.0/examples/subscribe-php/subscribe.php000066400000000000000000000003151462047176100216400ustar00rootroot00000000000000 ntfy.sh: EventSource Example

      ntfy.sh: EventSource Example

      This is an example showing how to use ntfy.sh with EventSource.
      This example doesn't need a server. You can just save the HTML page and run it from anywhere.

      Log:

      ntfy-2.11.0/examples/web-example-websocket/000077500000000000000000000000001462047176100205735ustar00rootroot00000000000000ntfy-2.11.0/examples/web-example-websocket/example-ws.html000066400000000000000000000035311462047176100235450ustar00rootroot00000000000000 ntfy.sh: WebSocket Example

      ntfy.sh: WebSocket Example

      This is an example showing how to use ntfy.sh with WebSocket.
      This example doesn't need a server. You can just save the HTML page and run it from anywhere.

      Log:

      ntfy-2.11.0/go.mod000066400000000000000000000072621462047176100137000ustar00rootroot00000000000000module heckel.io/ntfy/v2 go 1.21 toolchain go1.21.3 require ( cloud.google.com/go/firestore v1.15.0 // indirect cloud.google.com/go/storage v1.41.0 // indirect github.com/BurntSushi/toml v1.3.2 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/emersion/go-smtp v0.18.0 github.com/gabriel-vasile/mimetype v1.4.3 github.com/gorilla/websocket v1.5.1 github.com/mattn/go-sqlite3 v1.14.22 github.com/olebedev/when v1.0.0 github.com/stretchr/testify v1.9.0 github.com/urfave/cli/v2 v2.27.2 golang.org/x/crypto v0.23.0 golang.org/x/oauth2 v0.20.0 // indirect golang.org/x/sync v0.7.0 golang.org/x/term v0.20.0 golang.org/x/time v0.5.0 google.golang.org/api v0.180.0 gopkg.in/yaml.v2 v2.4.0 ) replace github.com/emersion/go-smtp => github.com/emersion/go-smtp v0.17.0 // Pin version due to breaking changes, see #839 require github.com/pkg/errors v0.9.1 // indirect require ( firebase.google.com/go/v4 v4.14.0 github.com/SherClockHolmes/webpush-go v1.3.0 github.com/microcosm-cc/bluemonday v1.0.26 github.com/prometheus/client_golang v1.19.1 github.com/stripe/stripe-go/v74 v74.30.0 ) require ( cloud.google.com/go v0.113.0 // indirect cloud.google.com/go/auth v0.4.1 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect cloud.google.com/go/compute/metadata v0.3.0 // indirect cloud.google.com/go/iam v1.1.8 // indirect cloud.google.com/go/longrunning v0.5.7 // indirect github.com/AlekSi/pointer v1.2.0 // indirect github.com/MicahParks/keyfunc v1.9.0 // indirect github.com/aymerick/douceur v0.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/emersion/go-sasl v0.0.0-20231106173351-e73c9f7bad43 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/s2a-go v0.1.7 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect github.com/googleapis/gax-go/v2 v2.12.4 // indirect github.com/gorilla/css v1.0.1 // indirect github.com/kr/text v0.2.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.53.0 // indirect github.com/prometheus/procfs v0.14.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.51.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0 // indirect go.opentelemetry.io/otel v1.26.0 // indirect go.opentelemetry.io/otel/metric v1.26.0 // indirect go.opentelemetry.io/otel/trace v1.26.0 // indirect golang.org/x/net v0.25.0 // indirect golang.org/x/sys v0.20.0 // indirect golang.org/x/text v0.15.0 // indirect google.golang.org/appengine/v2 v2.0.6 // indirect google.golang.org/genproto v0.0.0-20240513163218-0867130af1f8 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240513163218-0867130af1f8 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240513163218-0867130af1f8 // indirect google.golang.org/grpc v1.63.2 // indirect google.golang.org/protobuf v1.34.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) ntfy-2.11.0/go.sum000066400000000000000000000764441462047176100137350ustar00rootroot00000000000000cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.112.2 h1:ZaGT6LiG7dBzi6zNOvVZwacaXlmf3lRqnC4DQzqyRQw= cloud.google.com/go v0.112.2/go.mod h1:iEqjp//KquGIJV/m+Pk3xecgKNhV+ry+vVTsy4TbDms= cloud.google.com/go v0.113.0 h1:g3C70mn3lWfckKBiCVsAshabrDg01pQ0pnX1MNtnMkA= cloud.google.com/go v0.113.0/go.mod h1:glEqlogERKYeePz6ZdkcLJ28Q2I6aERgDDErBg9GzO8= cloud.google.com/go/auth v0.3.0 h1:PRyzEpGfx/Z9e8+lHsbkoUVXD0gnu4MNmm7Gp8TQNIs= cloud.google.com/go/auth v0.3.0/go.mod h1:lBv6NKTWp8E3LPzmO1TbiiRKc4drLOfHsgmlH9ogv5w= cloud.google.com/go/auth v0.4.0 h1:vcJWEguhY8KuiHoSs/udg1JtIRYm3YAWPBE1moF1m3U= cloud.google.com/go/auth v0.4.0/go.mod h1:tO/chJN3obc5AbRYFQDsuFbL4wW5y8LfbPtDCfgwOVE= cloud.google.com/go/auth v0.4.1 h1:Z7YNIhlWRtrnKlZke7z3GMqzvuYzdc2z98F9D1NV5Hg= cloud.google.com/go/auth v0.4.1/go.mod h1:QVBuVEKpCn4Zp58hzRGvL0tjRGU0YqdRTdCHM1IHnro= cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= cloud.google.com/go/compute v1.26.0 h1:uHf0NN2nvxl1Gh4QO83yRCOdMK4zivtMS5gv0dEX0hg= cloud.google.com/go/compute v1.26.0/go.mod h1:T9RIRap4pVHCGUkVFRJ9hygT3KCXjip41X1GgWtBBII= cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/firestore v1.15.0 h1:/k8ppuWOtNuDHt2tsRV42yI21uaGnKDEQnRFeBpbFF8= cloud.google.com/go/firestore v1.15.0/go.mod h1:GWOxFXcv8GZUtYpWHw/w6IuYNux/BtmeVTMmjrm4yhk= cloud.google.com/go/iam v1.1.7 h1:z4VHOhwKLF/+UYXAJDFwGtNF0b6gjsW1Pk9Ml0U/IoM= cloud.google.com/go/iam v1.1.7/go.mod h1:J4PMPg8TtyurAUvSmPj8FF3EDgY1SPRZxcUGrn7WXGA= cloud.google.com/go/iam v1.1.8 h1:r7umDwhj+BQyz0ScZMp4QrGXjSTI3ZINnpgU2nlB/K0= cloud.google.com/go/iam v1.1.8/go.mod h1:GvE6lyMmfxXauzNq8NbgJbeVQNspG+tcdL/W8QO1+zE= cloud.google.com/go/longrunning v0.5.6 h1:xAe8+0YaWoCKr9t1+aWe+OeQgN/iJK1fEgZSXmjuEaE= cloud.google.com/go/longrunning v0.5.6/go.mod h1:vUaDrWYOMKRuhiv6JBnn49YxCPz2Ayn9GqyjaBT8/mA= cloud.google.com/go/longrunning v0.5.7 h1:WLbHekDbjK1fVFD3ibpFFVoyizlLRl73I7YKuAKilhU= cloud.google.com/go/longrunning v0.5.7/go.mod h1:8GClkudohy1Fxm3owmBGid8W0pSgodEMwEAztp38Xng= cloud.google.com/go/storage v1.40.0 h1:VEpDQV5CJxFmJ6ueWNsKxcr1QAYOXEgxDa+sBbJahPw= cloud.google.com/go/storage v1.40.0/go.mod h1:Rrj7/hKlG87BLqDJYtwR0fbPld8uJPbQ2ucUMY7Ir0g= cloud.google.com/go/storage v1.41.0 h1:RusiwatSu6lHeEXe3kglxakAmAbfV+rhtPqA6i8RBx0= cloud.google.com/go/storage v1.41.0/go.mod h1:J1WCa/Z2FcgdEDuPUY8DxT5I+d9mFKsCepp5vR6Sq80= firebase.google.com/go/v4 v4.14.0 h1:Tc9jWzMUApUFUA5UUx/HcBeZ+LPjlhG2vNRfWJrcMwU= firebase.google.com/go/v4 v4.14.0/go.mod h1:pLATyL6xH2o9AMe7rqHdmmOUE/Ph7wcwepIs+uiEKPg= github.com/AlekSi/pointer v1.2.0 h1:glcy/gc4h8HnG2Z3ZECSzZ1IX1x2JxRVuDzaJwQE0+w= github.com/AlekSi/pointer v1.2.0/go.mod h1:gZGfd3dpW4vEc/UlyfKKi1roIqcCgwOIvb0tSNSBle0= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/MicahParks/keyfunc v1.9.0 h1:lhKd5xrFHLNOWrDc4Tyb/Q1AJ4LCzQ48GVJyVIID3+o= github.com/MicahParks/keyfunc v1.9.0/go.mod h1:IdnCilugA0O/99dW+/MkvlyrsX8+L8+x95xuVNtM5jw= github.com/SherClockHolmes/webpush-go v1.3.0 h1:CAu3FvEE9QS4drc3iKNgpBWFfGqNthKlZhp5QpYnu6k= github.com/SherClockHolmes/webpush-go v1.3.0/go.mod h1:AxRHmJuYwKGG1PVgYzToik1lphQvDnqFYDqimHvwhIw= github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21/go.mod h1:iL2twTeMvZnrg54ZoPDNfJaJaqy0xIQFuBdrLsmspwQ= github.com/emersion/go-sasl v0.0.0-20231106173351-e73c9f7bad43 h1:hH4PQfOndHDlpzYfLAAfl63E8Le6F2+EL/cdhlkyRJY= github.com/emersion/go-sasl v0.0.0-20231106173351-e73c9f7bad43/go.mod h1:iL2twTeMvZnrg54ZoPDNfJaJaqy0xIQFuBdrLsmspwQ= github.com/emersion/go-smtp v0.17.0 h1:tq90evlrcyqRfE6DSXaWVH54oX6OuZOQECEmhWBMEtI= github.com/emersion/go-smtp v0.17.0/go.mod h1:qm27SGYgoIPRot6ubfQ/GpiPy/g3PaZAVRxiO/sDUgQ= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/martian/v3 v3.3.3 h1:DIhPTQrbPkgs2yJYdXU/eNACCG5DVQjySNRNlflZ9Fc= github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.12.3 h1:5/zPPDvw8Q1SuXjrqrZslrqT7dL/uJT2CQii/cLCKqA= github.com/googleapis/gax-go/v2 v2.12.3/go.mod h1:AKloxT6GtNbaLm8QTNSidHUVsHYcBHwWRvkNFJUQcS4= github.com/googleapis/gax-go/v2 v2.12.4 h1:9gWcmF85Wvq4ryPFvGFaOgPIs1AQX0d0bcbGw4Z96qg= github.com/googleapis/gax-go/v2 v2.12.4/go.mod h1:KYEYLorsnIGDi/rPC8b5TdlB9kbKoFubselGIoBMCwI= github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8= github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/microcosm-cc/bluemonday v1.0.26 h1:xbqSvqzQMeEHCqMi64VAs4d8uy6Mequs3rQ0k/Khz58= github.com/microcosm-cc/bluemonday v1.0.26/go.mod h1:JyzOCs9gkyQyjs+6h10UEVSe02CGwkhd72Xdqh78TWs= github.com/olebedev/when v1.0.0 h1:T2DZCj8HxUhOVxcqaLOmzuTr+iZLtMHsZEim7mjIA2w= github.com/olebedev/when v1.0.0/go.mod h1:T0THb4kP9D3NNqlvCwIG4GyUioTAzEhB4RNVzig/43E= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= github.com/prometheus/procfs v0.14.0 h1:Lw4VdGGoKEZilJsayHf0B+9YgLGREba2C6xr+Fdfq6s= github.com/prometheus/procfs v0.14.0/go.mod h1:XL+Iwz8k8ZabyZfMFHPiilCniixqQarAy5Mu67pHlNQ= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stripe/stripe-go/v74 v74.30.0 h1:0Kf0KkeFnY7iRhOwvTerX0Ia1BRw+eV1CVJ51mGYAUY= github.com/stripe/stripe-go/v74 v74.30.0/go.mod h1:f9L6LvaXa35ja7eyvP6GQswoaIPaBRvGAimAO+udbBw= github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.51.0 h1:A3SayB3rNyt+1S6qpI9mHPkeHTZbD7XILEqWnYZb2l0= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.51.0/go.mod h1:27iA5uvhuRNmalO+iEUdVn5ZMj2qy10Mm+XRIpRmyuU= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0 h1:Xs2Ncz0gNihqu9iosIZ5SkBbWo5T8JhhLJFMQL1qmLI= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0/go.mod h1:vy+2G/6NvVMpwGX/NyLqcC41fxepnuKHk16E6IZUcJc= go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs= go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4= go.opentelemetry.io/otel/metric v1.26.0 h1:7S39CLuY5Jgg9CrnA9HHiEjGMF/X2VHvoXGgSllRz30= go.opentelemetry.io/otel/metric v1.26.0/go.mod h1:SY+rHOI4cEawI9a7N1A4nIg/nTQXe1ccCNWYOJUrpX4= go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw= go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.19.0 h1:9+E/EZBCbTLNrbN35fHv/a/d/mOBatymz1zbtQrXpIg= golang.org/x/oauth2 v0.19.0/go.mod h1:vYi7skDa1x015PmRRYZ7+s1cWyPgrPiSYRe4rnsexc8= golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= google.golang.org/api v0.176.1 h1:DJSXnV6An+NhJ1J+GWtoF2nHEuqB1VNoTfnIbjNvwD4= google.golang.org/api v0.176.1/go.mod h1:j2MaSDYcvYV1lkZ1+SMW4IeF90SrEyFA+tluDYWRrFg= google.golang.org/api v0.178.0 h1:yoW/QMI4bRVCHF+NWOTa4cL8MoWL3Jnuc7FlcFF91Ok= google.golang.org/api v0.178.0/go.mod h1:84/k2v8DFpDRebpGcooklv/lais3MEfqpaBLA12gl2U= google.golang.org/api v0.180.0 h1:M2D87Yo0rGBPWpo1orwfCLehUUL6E7/TYe5gvMQWDh4= google.golang.org/api v0.180.0/go.mod h1:51AiyoEg1MJPSZ9zvklA8VnRILPXxn1iVen9v25XHAE= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine/v2 v2.0.6 h1:LvPZLGuchSBslPBp+LAhihBeGSiRh1myRoYK4NtuBIw= google.golang.org/appengine/v2 v2.0.6/go.mod h1:WoEXGoXNfa0mLvaH5sV3ZSGXwVmy8yf7Z1JKf3J3wLI= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20240415180920-8c6c420018be h1:g4aX8SUFA8V5F4LrSY5EclyGYw1OZN4HS1jTyjB9ZDc= google.golang.org/genproto v0.0.0-20240415180920-8c6c420018be/go.mod h1:FeSdT5fk+lkxatqJP38MsUicGqHax5cLtmy/6TAuxO4= google.golang.org/genproto v0.0.0-20240506185236-b8a5c65736ae h1:HjgkYCl6cWQEKSHkpUp4Q8VB74swzyBwTz1wtTzahm0= google.golang.org/genproto v0.0.0-20240506185236-b8a5c65736ae/go.mod h1:i4np6Wrjp8EujFAUn0CM0SH+iZhY1EbrfzEIJbFkHFM= google.golang.org/genproto v0.0.0-20240513163218-0867130af1f8 h1:XpH03M6PDRKTo1oGfZBXu2SzwcbfxUokgobVinuUZoU= google.golang.org/genproto v0.0.0-20240513163218-0867130af1f8/go.mod h1:OLh2Ylz+WlYAJaSBRpJIJLP8iQP+8da+fpxbwNEAV/o= google.golang.org/genproto/googleapis/api v0.0.0-20240415180920-8c6c420018be h1:Zz7rLWqp0ApfsR/l7+zSHhY3PMiH2xqgxlfYfAfNpoU= google.golang.org/genproto/googleapis/api v0.0.0-20240415180920-8c6c420018be/go.mod h1:dvdCTIoAGbkWbcIKBniID56/7XHTt6WfxXNMxuziJ+w= google.golang.org/genproto/googleapis/api v0.0.0-20240506185236-b8a5c65736ae h1:AH34z6WAGVNkllnKs5raNq3yRq93VnjBG6rpfub/jYk= google.golang.org/genproto/googleapis/api v0.0.0-20240506185236-b8a5c65736ae/go.mod h1:FfiGhwUm6CJviekPrc0oJ+7h29e+DmWU6UtjX0ZvI7Y= google.golang.org/genproto/googleapis/api v0.0.0-20240513163218-0867130af1f8 h1:W5Xj/70xIA4x60O/IFyXivR5MGqblAb8R3w26pnD6No= google.golang.org/genproto/googleapis/api v0.0.0-20240513163218-0867130af1f8/go.mod h1:vPrPUTsDCYxXWjP7clS81mZ6/803D8K4iM9Ma27VKas= google.golang.org/genproto/googleapis/rpc v0.0.0-20240415180920-8c6c420018be h1:LG9vZxsWGOmUKieR8wPAUR3u3MpnYFQZROPIMaXh7/A= google.golang.org/genproto/googleapis/rpc v0.0.0-20240415180920-8c6c420018be/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/genproto/googleapis/rpc v0.0.0-20240506185236-b8a5c65736ae h1:c55+MER4zkBS14uJhSZMGGmya0yJx5iHV4x/fpOSNRk= google.golang.org/genproto/googleapis/rpc v0.0.0-20240506185236-b8a5c65736ae/go.mod h1:I7Y+G38R2bu5j1aLzfFmQfTcU/WnFuqDwLZAbvKTKpM= google.golang.org/genproto/googleapis/rpc v0.0.0-20240513163218-0867130af1f8 h1:mxSlqyb8ZAHsYDCfiXN1EDdNTdvjUJSLY+OnAUtYNYA= google.golang.org/genproto/googleapis/rpc v0.0.0-20240513163218-0867130af1f8/go.mod h1:I7Y+G38R2bu5j1aLzfFmQfTcU/WnFuqDwLZAbvKTKpM= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= ntfy-2.11.0/log/000077500000000000000000000000001462047176100133445ustar00rootroot00000000000000ntfy-2.11.0/log/event.go000066400000000000000000000141331462047176100150160ustar00rootroot00000000000000package log import ( "encoding/json" "fmt" "heckel.io/ntfy/v2/util" "log" "os" "sort" "strings" "time" ) const ( fieldTag = "tag" fieldError = "error" fieldTimeTaken = "time_taken_ms" fieldExitCode = "exit_code" tagStdLog = "stdlog" ) // Event represents a single log event type Event struct { Timestamp string `json:"time"` Level Level `json:"level"` Message string `json:"message"` time time.Time contexters []Contexter fields Context } // newEvent creates a new log event // // We delay allocations and processing for efficiency, because most log events // are never actually rendered, so we don't format the time, or allocate a fields map. func newEvent() *Event { return &Event{ time: time.Now(), } } // Fatal logs the event as FATAL, and exits the program with exit code 1 func (e *Event) Fatal(message string, v ...any) { e.Field(fieldExitCode, 1).Log(FatalLevel, message, v...) fmt.Fprintf(os.Stderr, message+"\n", v...) // Always output error to stderr os.Exit(1) } // Error logs the event with log level error func (e *Event) Error(message string, v ...any) *Event { return e.Log(ErrorLevel, message, v...) } // Warn logs the event with log level warn func (e *Event) Warn(message string, v ...any) *Event { return e.Log(WarnLevel, message, v...) } // Info logs the event with log level info func (e *Event) Info(message string, v ...any) *Event { return e.Log(InfoLevel, message, v...) } // Debug logs the event with log level debug func (e *Event) Debug(message string, v ...any) *Event { return e.Log(DebugLevel, message, v...) } // Trace logs the event with log level trace func (e *Event) Trace(message string, v ...any) *Event { return e.Log(TraceLevel, message, v...) } // Tag adds a "tag" field to the log event func (e *Event) Tag(tag string) *Event { return e.Field(fieldTag, tag) } // Time sets the time field func (e *Event) Time(t time.Time) *Event { e.time = t return e } // Timing runs f and records the time if took to execute it in "time_taken_ms" func (e *Event) Timing(f func()) *Event { start := time.Now() f() return e.Field(fieldTimeTaken, time.Since(start).Milliseconds()) } // Err adds an "error" field to the log event func (e *Event) Err(err error) *Event { if err == nil { return e } else if c, ok := err.(Contexter); ok { return e.With(c) } return e.Field(fieldError, err.Error()) } // Field adds a custom field and value to the log event func (e *Event) Field(key string, value any) *Event { if e.fields == nil { e.fields = make(Context) } e.fields[key] = value return e } // FieldIf adds a custom field and value to the log event if the given level is loggable func (e *Event) FieldIf(key string, value any, level Level) *Event { if e.Loggable(level) { return e.Field(key, value) } return e } // Fields adds a map of fields to the log event func (e *Event) Fields(fields Context) *Event { if e.fields == nil { e.fields = make(Context) } for k, v := range fields { e.fields[k] = v } return e } // With adds the fields of the given Contexter structs to the log event by calling their Context method func (e *Event) With(contexters ...Contexter) *Event { if e.contexters == nil { e.contexters = contexters } else { e.contexters = append(e.contexters, contexters...) } return e } // Render returns the rendered log event as a string, or an empty string. The event is only rendered, // if either the global log level is >= l, or if the log level in one of the overrides matches // the level. // // If no overrides are defined (default), the Contexter array is not applied unless the event // is actually logged. If overrides are defined, then Contexters have to be applied in any case // to determine if they match. This is super complicated, but required for efficiency. func (e *Event) Render(l Level, message string, v ...any) string { appliedContexters := e.maybeApplyContexters() if !e.Loggable(l) { return "" } e.Message = fmt.Sprintf(message, v...) e.Level = l e.Timestamp = util.FormatTime(e.time) if !appliedContexters { e.applyContexters() } if CurrentFormat() == JSONFormat { return e.JSON() } return e.String() } // Log logs the event to the defined output, or does nothing if Render returns an empty string func (e *Event) Log(l Level, message string, v ...any) *Event { if m := e.Render(l, message, v...); m != "" { log.Println(m) } return e } // Loggable returns true if the given log level is lower or equal to the current log level func (e *Event) Loggable(l Level) bool { return e.globalLevelWithOverride() <= l } // IsTrace returns true if the current log level is TraceLevel func (e *Event) IsTrace() bool { return e.Loggable(TraceLevel) } // IsDebug returns true if the current log level is DebugLevel or below func (e *Event) IsDebug() bool { return e.Loggable(DebugLevel) } // JSON returns the event as a JSON representation func (e *Event) JSON() string { b, _ := json.Marshal(e) s := string(b) if len(e.fields) > 0 { b, _ := json.Marshal(e.fields) s = fmt.Sprintf("{%s,%s}", s[1:len(s)-1], string(b[1:len(b)-1])) } return s } // String returns the event as a string func (e *Event) String() string { if len(e.fields) == 0 { return fmt.Sprintf("%s %s", e.Level.String(), e.Message) } fields := make([]string, 0) for k, v := range e.fields { fields = append(fields, fmt.Sprintf("%s=%v", k, v)) } sort.Strings(fields) return fmt.Sprintf("%s %s (%s)", e.Level.String(), e.Message, strings.Join(fields, ", ")) } func (e *Event) globalLevelWithOverride() Level { mu.RLock() l, ov := level, overrides mu.RUnlock() if e.fields == nil { return l } for field, fieldOverrides := range ov { value, exists := e.fields[field] if exists { for _, o := range fieldOverrides { if o.value == "" || o.value == value || o.value == fmt.Sprintf("%v", value) { return o.level } } } } return l } func (e *Event) maybeApplyContexters() bool { mu.RLock() hasOverrides := len(overrides) > 0 mu.RUnlock() if hasOverrides { e.applyContexters() } return hasOverrides // = applied } func (e *Event) applyContexters() { for _, c := range e.contexters { e.Fields(c.Context()) } } ntfy-2.11.0/log/log.go000066400000000000000000000115001462047176100144510ustar00rootroot00000000000000package log import ( "io" "log" "os" "strings" "sync" "time" ) // Defaults for package level variables var ( DefaultLevel = InfoLevel DefaultFormat = TextFormat DefaultOutput = &peekLogWriter{os.Stderr} ) var ( level = DefaultLevel format = DefaultFormat overrides = make(map[string][]*levelOverride) output io.Writer = DefaultOutput filename = "" mu = &sync.RWMutex{} ) // init sets the default log output (including log.SetOutput) // // This has to be explicitly called, because DefaultOutput is a peekLogWriter, // which wraps os.Stderr. func init() { SetOutput(DefaultOutput) } // Fatal prints the given message, and exits the program func Fatal(message string, v ...any) { newEvent().Fatal(message, v...) } // Error prints the given message, if the current log level is ERROR or lower func Error(message string, v ...any) { newEvent().Error(message, v...) } // Warn prints the given message, if the current log level is WARN or lower func Warn(message string, v ...any) { newEvent().Warn(message, v...) } // Info prints the given message, if the current log level is INFO or lower func Info(message string, v ...any) { newEvent().Info(message, v...) } // Debug prints the given message, if the current log level is DEBUG or lower func Debug(message string, v ...any) { newEvent().Debug(message, v...) } // Trace prints the given message, if the current log level is TRACE func Trace(message string, v ...any) { newEvent().Trace(message, v...) } // With creates a new log event and adds the fields of the given Contexter structs func With(contexts ...Contexter) *Event { return newEvent().With(contexts...) } // Field creates a new log event and adds a custom field and value to it func Field(key string, value any) *Event { return newEvent().Field(key, value) } // Fields creates a new log event and adds a map of fields to it func Fields(fields Context) *Event { return newEvent().Fields(fields) } // Tag creates a new log event and adds a "tag" field to it func Tag(tag string) *Event { return newEvent().Tag(tag) } // Time creates a new log event and sets the time field func Time(time time.Time) *Event { return newEvent().Time(time) } // Timing runs f and records the time if took to execute it in "time_taken_ms" func Timing(f func()) *Event { return newEvent().Timing(f) } // CurrentLevel returns the current log level func CurrentLevel() Level { mu.RLock() defer mu.RUnlock() return level } // SetLevel sets a new log level func SetLevel(newLevel Level) { mu.Lock() defer mu.Unlock() level = newLevel } // SetLevelOverride adds a log override for the given field func SetLevelOverride(field string, value string, level Level) { mu.Lock() defer mu.Unlock() if _, ok := overrides[field]; !ok { overrides[field] = make([]*levelOverride, 0) } overrides[field] = append(overrides[field], &levelOverride{value: value, level: level}) } // ResetLevelOverrides removes all log level overrides func ResetLevelOverrides() { mu.Lock() defer mu.Unlock() overrides = make(map[string][]*levelOverride) } // CurrentFormat returns the current log format func CurrentFormat() Format { mu.RLock() defer mu.RUnlock() return format } // SetFormat sets a new log format func SetFormat(newFormat Format) { mu.Lock() defer mu.Unlock() format = newFormat if newFormat == JSONFormat { DisableDates() } } // SetOutput sets the log output writer func SetOutput(w io.Writer) { mu.Lock() defer mu.Unlock() output = &peekLogWriter{w} if f, ok := w.(*os.File); ok { filename = f.Name() } else { filename = "" } log.SetOutput(output) } // File returns the log file, if any, or an empty string otherwise func File() string { mu.RLock() defer mu.RUnlock() return filename } // IsFile returns true if the output is a non-default file func IsFile() bool { mu.RLock() defer mu.RUnlock() return filename != "" } // DisableDates disables the date/time prefix func DisableDates() { log.SetFlags(0) } // Loggable returns true if the given log level is lower or equal to the current log level func Loggable(l Level) bool { return CurrentLevel() <= l } // IsTrace returns true if the current log level is TraceLevel func IsTrace() bool { return Loggable(TraceLevel) } // IsDebug returns true if the current log level is DebugLevel or below func IsDebug() bool { return Loggable(DebugLevel) } // peekLogWriter is an io.Writer which will peek at the rendered log event, // and ensure that the rendered output is valid JSON. This is a hack! type peekLogWriter struct { w io.Writer } func (w *peekLogWriter) Write(p []byte) (n int, err error) { if len(p) == 0 || p[0] == '{' || CurrentFormat() == TextFormat { return w.w.Write(p) } m := newEvent().Tag(tagStdLog).Render(InfoLevel, strings.TrimSpace(string(p))) if m == "" { return 0, nil } return w.w.Write([]byte(m + "\n")) } ntfy-2.11.0/log/log_test.go000066400000000000000000000223071462047176100155170ustar00rootroot00000000000000package log import ( "bytes" "encoding/json" "github.com/stretchr/testify/require" "io" "log" "os" "path/filepath" "testing" "time" ) func TestMain(m *testing.M) { exitCode := m.Run() resetState() SetLevel(ErrorLevel) // For other modules! os.Exit(exitCode) } func TestLog_TagContextFieldFields(t *testing.T) { t.Cleanup(resetState) v := &fakeVisitor{ UserID: "u_abc", IP: "1.2.3.4", } err := &fakeError{ Code: 123, Message: "some error", } var out bytes.Buffer SetOutput(&out) SetFormat(JSONFormat) SetLevelOverride("tag", "stripe", DebugLevel) SetLevelOverride("number", "5", DebugLevel) Tag("mytag"). Field("field2", 123). Field("field1", "value1"). Time(time.Unix(123, 999000000).UTC()). Info("hi there %s", "phil") Tag("not-stripe"). Debug("this message will not appear") With(v). Fields(Context{ "stripe_customer_id": "acct_123", "stripe_subscription_id": "sub_123", }). Tag("stripe"). Err(err). Time(time.Unix(456, 123000000).UTC()). Debug("Subscription status %s", "active") Field("number", 5). Time(time.Unix(777, 001000000).UTC()). Debug("The number 5 is an int, but the level override is a string") expected := `{"time":"1970-01-01T00:02:03.999Z","level":"INFO","message":"hi there phil","field1":"value1","field2":123,"tag":"mytag"} {"time":"1970-01-01T00:07:36.123Z","level":"DEBUG","message":"Subscription status active","error":"some error","error_code":123,"stripe_customer_id":"acct_123","stripe_subscription_id":"sub_123","tag":"stripe","user_id":"u_abc","visitor_ip":"1.2.3.4"} {"time":"1970-01-01T00:12:57Z","level":"DEBUG","message":"The number 5 is an int, but the level override is a string","number":5} ` require.Equal(t, expected, out.String()) } func TestLog_NoAllocIfNotPrinted(t *testing.T) { t.Cleanup(resetState) v := &fakeVisitor{ UserID: "u_abc", IP: "1.2.3.4", } var out bytes.Buffer SetOutput(&out) SetFormat(JSONFormat) // Do not log, do not call contexters (because global level is INFO) v.contextCalled = false ev := With(v) ev.Debug("some message") require.False(t, v.contextCalled) require.Equal(t, "", ev.Timestamp) require.Equal(t, Level(0), ev.Level) require.Equal(t, "", ev.Message) require.Nil(t, ev.fields) // Logged because info level, contexters called v.contextCalled = false ev = With(v).Time(time.Unix(1111, 0).UTC()) ev.Info("some message") require.True(t, v.contextCalled) require.NotNil(t, ev.fields) require.Equal(t, "1.2.3.4", ev.fields["visitor_ip"]) // Not logged, but contexters called, because overrides exist SetLevel(DebugLevel) SetLevelOverride("tag", "overridetag", TraceLevel) v.contextCalled = false ev = Tag("sometag").Field("field", "value").With(v).Time(time.Unix(123, 0).UTC()) ev.Trace("some debug message") require.True(t, v.contextCalled) // If there are overrides, we must call the context to determine the filter fields require.Equal(t, "", ev.Timestamp) require.Equal(t, Level(0), ev.Level) require.Equal(t, "", ev.Message) require.Equal(t, 4, len(ev.fields)) require.Equal(t, "value", ev.fields["field"]) require.Equal(t, "sometag", ev.fields["tag"]) // Logged because of override tag, and contexters called v.contextCalled = false ev = Tag("overridetag").Field("field", "value").With(v).Time(time.Unix(123, 0).UTC()) ev.Trace("some trace message") require.True(t, v.contextCalled) require.Equal(t, "1970-01-01T00:02:03Z", ev.Timestamp) require.Equal(t, TraceLevel, ev.Level) require.Equal(t, "some trace message", ev.Message) // Logged because of field override, and contexters called ResetLevelOverrides() SetLevelOverride("visitor_ip", "1.2.3.4", TraceLevel) v.contextCalled = false ev = With(v).Time(time.Unix(124, 0).UTC()) ev.Trace("some trace message with override") require.True(t, v.contextCalled) require.Equal(t, "1970-01-01T00:02:04Z", ev.Timestamp) require.Equal(t, TraceLevel, ev.Level) require.Equal(t, "some trace message with override", ev.Message) expected := `{"time":"1970-01-01T00:18:31Z","level":"INFO","message":"some message","user_id":"u_abc","visitor_ip":"1.2.3.4"} {"time":"1970-01-01T00:02:03Z","level":"TRACE","message":"some trace message","field":"value","tag":"overridetag","user_id":"u_abc","visitor_ip":"1.2.3.4"} {"time":"1970-01-01T00:02:04Z","level":"TRACE","message":"some trace message with override","user_id":"u_abc","visitor_ip":"1.2.3.4"} ` require.Equal(t, expected, out.String()) } func TestLog_Timing(t *testing.T) { t.Cleanup(resetState) var out bytes.Buffer SetOutput(&out) SetFormat(JSONFormat) Timing(func() { time.Sleep(300 * time.Millisecond) }). Time(time.Unix(12, 0).UTC()). Info("A thing that takes a while") var ev struct { TimeTakenMs int64 `json:"time_taken_ms"` } require.Nil(t, json.Unmarshal(out.Bytes(), &ev)) require.True(t, ev.TimeTakenMs >= 300) require.Contains(t, out.String(), `{"time":"1970-01-01T00:00:12Z","level":"INFO","message":"A thing that takes a while","time_taken_ms":`) } func TestLog_LevelOverrideAny(t *testing.T) { t.Cleanup(resetState) var out bytes.Buffer SetOutput(&out) SetFormat(JSONFormat) SetLevelOverride("this_one", "", DebugLevel) SetLevelOverride("time_taken_ms", "", TraceLevel) Time(time.Unix(11, 0).UTC()).Field("this_one", "11").Debug("this is logged") Time(time.Unix(12, 0).UTC()).Field("not_this", "11").Debug("this is not logged") Time(time.Unix(13, 0).UTC()).Field("this_too", "11").Info("this is also logged") Time(time.Unix(14, 0).UTC()).Field("time_taken_ms", 0).Info("this is also logged") expected := `{"time":"1970-01-01T00:00:11Z","level":"DEBUG","message":"this is logged","this_one":"11"} {"time":"1970-01-01T00:00:13Z","level":"INFO","message":"this is also logged","this_too":"11"} {"time":"1970-01-01T00:00:14Z","level":"INFO","message":"this is also logged","time_taken_ms":0} ` require.Equal(t, expected, out.String()) require.False(t, IsFile()) require.Equal(t, "", File()) } func TestLog_LevelOverride_ManyOnSameField(t *testing.T) { t.Cleanup(resetState) var out bytes.Buffer SetOutput(&out) SetFormat(JSONFormat) SetLevelOverride("tag", "manager", DebugLevel) SetLevelOverride("tag", "publish", DebugLevel) Time(time.Unix(11, 0).UTC()).Field("tag", "manager").Debug("this is logged") Time(time.Unix(12, 0).UTC()).Field("tag", "no-match").Debug("this is not logged") Time(time.Unix(13, 0).UTC()).Field("tag", "publish").Info("this is also logged") expected := `{"time":"1970-01-01T00:00:11Z","level":"DEBUG","message":"this is logged","tag":"manager"} {"time":"1970-01-01T00:00:13Z","level":"INFO","message":"this is also logged","tag":"publish"} ` require.Equal(t, expected, out.String()) require.False(t, IsFile()) require.Equal(t, "", File()) } func TestLog_FieldIf(t *testing.T) { t.Cleanup(resetState) var out bytes.Buffer SetOutput(&out) SetLevel(DebugLevel) SetFormat(JSONFormat) Time(time.Unix(11, 0).UTC()). FieldIf("trace_field", "manager", TraceLevel). // This is not logged Field("tag", "manager"). Debug("trace_field is not logged") SetLevel(TraceLevel) Time(time.Unix(12, 0).UTC()). FieldIf("trace_field", "manager", TraceLevel). // Now it is logged Field("tag", "manager"). Debug("trace_field is logged") expected := `{"time":"1970-01-01T00:00:11Z","level":"DEBUG","message":"trace_field is not logged","tag":"manager"} {"time":"1970-01-01T00:00:12Z","level":"DEBUG","message":"trace_field is logged","tag":"manager","trace_field":"manager"} ` require.Equal(t, expected, out.String()) } func TestLog_UsingStdLogger_JSON(t *testing.T) { t.Cleanup(resetState) var out bytes.Buffer SetOutput(&out) SetFormat(JSONFormat) log.Println("Some other library is using the standard Go logger") require.Contains(t, out.String(), `,"level":"INFO","message":"Some other library is using the standard Go logger","tag":"stdlog"}`+"\n") } func TestLog_UsingStdLogger_Text(t *testing.T) { t.Cleanup(resetState) var out bytes.Buffer SetOutput(&out) log.Println("Some other library is using the standard Go logger") require.Contains(t, out.String(), `Some other library is using the standard Go logger`+"\n") require.NotContains(t, out.String(), `{`) } func TestLog_File(t *testing.T) { t.Cleanup(resetState) logfile := filepath.Join(t.TempDir(), "ntfy.log") f, err := os.OpenFile(logfile, os.O_CREATE|os.O_WRONLY, 0600) require.Nil(t, err) SetOutput(f) SetFormat(JSONFormat) require.True(t, IsFile()) require.Equal(t, logfile, File()) Time(time.Unix(11, 0).UTC()).Field("this_one", "11").Info("this is logged") require.Nil(t, f.Close()) f, err = os.Open(logfile) require.Nil(t, err) contents, err := io.ReadAll(f) require.Nil(t, err) require.Equal(t, `{"time":"1970-01-01T00:00:11Z","level":"INFO","message":"this is logged","this_one":"11"}`+"\n", string(contents)) } type fakeError struct { Code int Message string } func (e fakeError) Error() string { return e.Message } func (e fakeError) Context() Context { return Context{ "error": e.Message, "error_code": e.Code, } } type fakeVisitor struct { UserID string IP string contextCalled bool } func (v *fakeVisitor) Context() Context { v.contextCalled = true return Context{ "user_id": v.UserID, "visitor_ip": v.IP, } } func resetState() { SetLevel(DefaultLevel) SetFormat(DefaultFormat) SetOutput(DefaultOutput) ResetLevelOverrides() } ntfy-2.11.0/log/types.go000066400000000000000000000037551462047176100150510ustar00rootroot00000000000000package log import ( "encoding/json" "strings" ) // Level is a well-known log level, as defined below type Level int // Well known log levels const ( TraceLevel Level = iota DebugLevel InfoLevel WarnLevel ErrorLevel FatalLevel ) func (l Level) String() string { switch l { case TraceLevel: return "TRACE" case DebugLevel: return "DEBUG" case InfoLevel: return "INFO" case WarnLevel: return "WARN" case ErrorLevel: return "ERROR" case FatalLevel: return "FATAL" } return "unknown" } // MarshalJSON converts a level to a JSON string func (l Level) MarshalJSON() ([]byte, error) { return json.Marshal(l.String()) } // ToLevel converts a string to a Level. It returns InfoLevel if the string // does not match any known log levels. func ToLevel(s string) Level { switch strings.ToUpper(s) { case "TRACE": return TraceLevel case "DEBUG": return DebugLevel case "INFO": return InfoLevel case "WARN", "WARNING": return WarnLevel case "ERROR": return ErrorLevel case "FATAL": return FatalLevel default: return InfoLevel } } // Format is a well-known log format type Format int // Log formats const ( TextFormat Format = iota JSONFormat ) func (f Format) String() string { switch f { case TextFormat: return "text" case JSONFormat: return "json" } return "unknown" } // ToFormat converts a string to a Format. It returns TextFormat if the string // does not match any known log formats. func ToFormat(s string) Format { switch strings.ToLower(s) { case "text": return TextFormat case "json": return JSONFormat default: return TextFormat } } // Contexter allows structs to export a key-value pairs in the form of a Context type Contexter interface { Context() Context } // Context represents an object's state in the form of key-value pairs type Context map[string]any // Merge merges other into this context func (c Context) Merge(other Context) { for k, v := range other { c[k] = v } } type levelOverride struct { value string level Level } ntfy-2.11.0/main.go000066400000000000000000000015071462047176100140410ustar00rootroot00000000000000package main import ( "fmt" "github.com/urfave/cli/v2" "heckel.io/ntfy/v2/cmd" "os" "runtime" ) var ( version = "dev" commit = "unknown" date = "unknown" ) func main() { cli.AppHelpTemplate += fmt.Sprintf(` Try 'ntfy COMMAND --help' or https://ntfy.sh/docs/ for more information. To report a bug, open an issue on GitHub: https://github.com/binwiederhier/ntfy/issues. If you want to chat, simply join the Discord server (https://discord.gg/cT7ECsZj9w), or the Matrix room (https://matrix.to/#/#ntfy:matrix.org). ntfy %s (%s), runtime %s, built at %s Copyright (C) 2022 Philipp C. Heckel, licensed under Apache License 2.0 & GPLv2 `, version, commit[:7], runtime.Version(), date) app := cmd.New() app.Version = version if err := app.Run(os.Args); err != nil { fmt.Fprintln(os.Stderr, err.Error()) os.Exit(1) } } ntfy-2.11.0/mkdocs.yml000066400000000000000000000051151462047176100145700ustar00rootroot00000000000000site_dir: server/docs site_name: ntfy site_url: https://ntfy.sh site_description: Send push notifications to your phone via PUT/POST copyright: Made with ❤️ by Philipp C. Heckel repo_name: binwiederhier/ntfy repo_url: https://github.com/binwiederhier/ntfy edit_uri: blob/main/docs/ theme: name: material font: false language: en custom_dir: docs/_overrides logo: static/img/ntfy.png favicon: static/img/favicon.ico include_search_page: false search_index_only: true palette: - media: "(prefers-color-scheme: light)" # Light mode scheme: default toggle: icon: material/lightbulb-outline name: Switch to dark mode - media: "(prefers-color-scheme: dark)" # Dark mode scheme: slate accent: indigo toggle: icon: material/lightbulb name: Switch to light mode features: - search.suggest - search.highlight - search.share - navigation.sections - toc.integrate - content.tabs.link extra: homepage: / social: - icon: fontawesome/brands/github-alt link: https://github.com/binwiederhier extra_javascript: - static/js/extra.js extra_css: - static/css/extra.css markdown_extensions: - admonition - meta - toc: permalink: true - pymdownx.tabbed: alternate_style: true - pymdownx.superfences - pymdownx.highlight: extend_pygments_lang: - name: php-inline lang: php options: startinline: true - pymdownx.tasklist: custom_checkbox: true - attr_list - md_in_html - pymdownx.emoji: emoji_index: !!python/name:material.extensions.emoji.twemoji emoji_generator: !!python/name:material.extensions.emoji.to_svg hooks: - docs/hooks.py plugins: - search - minify: minify_html: true nav: - "Getting started": index.md - "Publishing": - "Sending messages": publish.md - "Subscribing": - "From your phone": subscribe/phone.md - "From the Web app": subscribe/web.md - "From the Desktop": subscribe/pwa.md - "From the CLI": subscribe/cli.md - "Using the API": subscribe/api.md - "Self-hosting": - "Installation": install.md - "Configuration": config.md - "Other things": - "FAQs": faq.md - "Examples": examples.md - "Integrations + projects": integrations.md - "Release notes": releases.md - "Emojis 🥳 🎉": emojis.md - "Troubleshooting": troubleshooting.md - "Known issues": known-issues.md - "Deprecation notices": deprecations.md - "Development": develop.md - "Privacy policy": privacy.md ntfy-2.11.0/requirements.txt000066400000000000000000000001431462047176100160450ustar00rootroot00000000000000# The documentation uses 'mkdocs', which is written in Python mkdocs-material mkdocs-minify-plugin ntfy-2.11.0/scripts/000077500000000000000000000000001462047176100142525ustar00rootroot00000000000000ntfy-2.11.0/scripts/emoji-convert.sh000077500000000000000000000042321462047176100173730ustar00rootroot00000000000000#!/bin/bash # This script reduces the size and converts the emoji.json file from https://github.com/github/gemoji/blob/master/db/emoji.json # to be used in the Android app (app/src/main/resources/emoji.json) and the Web UI (server/static/js/emoji.js). SCRIPTDIR="$(cd "$(dirname "$0")" && pwd)" ROOTDIR="$(cd "$(dirname "$0")/.." && pwd)" if [ -z "$1" ]; then echo "Syntax: $0 FILE.(js|json|md)" echo "Example:" echo " $0 emoji-converted.json" echo " $0 $ROOTDIR/web/src/app/emojis.js" echo " $0 $ROOTDIR/docs/emojis.md" exit 1 fi if [[ "$1" == *.js ]]; then echo -n "// This file is generated by scripts/emoji-convert.sh to reduce the size // Original data source: https://github.com/github/gemoji/blob/master/db/emoji.json export const rawEmojis = " > "$1" cat "$SCRIPTDIR/emoji.json" | jq -rc 'map({emoji: .emoji, aliases: .aliases, tags: .tags, category: .category, description: .description, unicode_version: .unicode_version})' >> "$1" elif [[ "$1" == *.md ]]; then echo "# Emoji reference You can [tag messages](publish.md#tags-emojis) with emojis 🥳 🎉 and other relevant strings. Matching tags are automatically converted to emojis. This is a reference of all supported emojis. To learn more about the feature, please refer to the [tagging and emojis page](publish.md#tags-emojis). " > "$1" count="$(cat "$SCRIPTDIR/emoji.json" | jq -r '.[] | .emoji' | wc -l)" percolumn=$(($count / 3)) # This will misbehave if the count is not divisible by 3 for col in 0 1 2; do from="$(($col * $percolumn + 1))" to="$(($col * $percolumn + 1 + $percolumn))" echo "" >> "$1" done echo "
      " >> "$1" cat "$SCRIPTDIR/emoji.json" \ | jq -r '.[] | ""' \ | sed -n "${from},${to}p" >> "$1" echo "
      TagEmoji
      " + .aliases[0] + "" + .emoji + "
      " >> "$1" else cat "$SCRIPTDIR/emoji.json" | jq -rc 'map({emoji: .emoji,aliases: .aliases})' > "$1" fi ntfy-2.11.0/scripts/emoji.json000066400000000000000000014155661462047176100162720ustar00rootroot00000000000000[ { "emoji": "😀" , "description": "grinning face" , "category": "Smileys & Emotion" , "aliases": [ "grinning" ] , "tags": [ "smile" , "happy" ] , "unicode_version": "6.1" , "ios_version": "6.0" } , { "emoji": "😃" , "description": "grinning face with big eyes" , "category": "Smileys & Emotion" , "aliases": [ "smiley" ] , "tags": [ "happy" , "joy" , "haha" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😄" , "description": "grinning face with smiling eyes" , "category": "Smileys & Emotion" , "aliases": [ "smile" ] , "tags": [ "happy" , "joy" , "laugh" , "pleased" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😁" , "description": "beaming face with smiling eyes" , "category": "Smileys & Emotion" , "aliases": [ "grin" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😆" , "description": "grinning squinting face" , "category": "Smileys & Emotion" , "aliases": [ "laughing" , "satisfied" ] , "tags": [ "happy" , "haha" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😅" , "description": "grinning face with sweat" , "category": "Smileys & Emotion" , "aliases": [ "sweat_smile" ] , "tags": [ "hot" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🤣" , "description": "rolling on the floor laughing" , "category": "Smileys & Emotion" , "aliases": [ "rofl" ] , "tags": [ "lol" , "laughing" ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "😂" , "description": "face with tears of joy" , "category": "Smileys & Emotion" , "aliases": [ "joy" ] , "tags": [ "tears" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🙂" , "description": "slightly smiling face" , "category": "Smileys & Emotion" , "aliases": [ "slightly_smiling_face" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🙃" , "description": "upside-down face" , "category": "Smileys & Emotion" , "aliases": [ "upside_down_face" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "😉" , "description": "winking face" , "category": "Smileys & Emotion" , "aliases": [ "wink" ] , "tags": [ "flirt" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😊" , "description": "smiling face with smiling eyes" , "category": "Smileys & Emotion" , "aliases": [ "blush" ] , "tags": [ "proud" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😇" , "description": "smiling face with halo" , "category": "Smileys & Emotion" , "aliases": [ "innocent" ] , "tags": [ "angel" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥰" , "description": "smiling face with hearts" , "category": "Smileys & Emotion" , "aliases": [ "smiling_face_with_three_hearts" ] , "tags": [ "love" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "😍" , "description": "smiling face with heart-eyes" , "category": "Smileys & Emotion" , "aliases": [ "heart_eyes" ] , "tags": [ "love" , "crush" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🤩" , "description": "star-struck" , "category": "Smileys & Emotion" , "aliases": [ "star_struck" ] , "tags": [ "eyes" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "😘" , "description": "face blowing a kiss" , "category": "Smileys & Emotion" , "aliases": [ "kissing_heart" ] , "tags": [ "flirt" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😗" , "description": "kissing face" , "category": "Smileys & Emotion" , "aliases": [ "kissing" ] , "tags": [ ] , "unicode_version": "6.1" , "ios_version": "6.0" } , { "emoji": "☺️" , "description": "smiling face" , "category": "Smileys & Emotion" , "aliases": [ "relaxed" ] , "tags": [ "blush" , "pleased" ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "😚" , "description": "kissing face with closed eyes" , "category": "Smileys & Emotion" , "aliases": [ "kissing_closed_eyes" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😙" , "description": "kissing face with smiling eyes" , "category": "Smileys & Emotion" , "aliases": [ "kissing_smiling_eyes" ] , "tags": [ ] , "unicode_version": "6.1" , "ios_version": "6.0" } , { "emoji": "🥲" , "description": "smiling face with tear" , "category": "Smileys & Emotion" , "aliases": [ "smiling_face_with_tear" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "😋" , "description": "face savoring food" , "category": "Smileys & Emotion" , "aliases": [ "yum" ] , "tags": [ "tongue" , "lick" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😛" , "description": "face with tongue" , "category": "Smileys & Emotion" , "aliases": [ "stuck_out_tongue" ] , "tags": [ ] , "unicode_version": "6.1" , "ios_version": "6.0" } , { "emoji": "😜" , "description": "winking face with tongue" , "category": "Smileys & Emotion" , "aliases": [ "stuck_out_tongue_winking_eye" ] , "tags": [ "prank" , "silly" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🤪" , "description": "zany face" , "category": "Smileys & Emotion" , "aliases": [ "zany_face" ] , "tags": [ "goofy" , "wacky" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "😝" , "description": "squinting face with tongue" , "category": "Smileys & Emotion" , "aliases": [ "stuck_out_tongue_closed_eyes" ] , "tags": [ "prank" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🤑" , "description": "money-mouth face" , "category": "Smileys & Emotion" , "aliases": [ "money_mouth_face" ] , "tags": [ "rich" ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🤗" , "description": "hugging face" , "category": "Smileys & Emotion" , "aliases": [ "hugs" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🤭" , "description": "face with hand over mouth" , "category": "Smileys & Emotion" , "aliases": [ "hand_over_mouth" ] , "tags": [ "quiet" , "whoops" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🤫" , "description": "shushing face" , "category": "Smileys & Emotion" , "aliases": [ "shushing_face" ] , "tags": [ "silence" , "quiet" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🤔" , "description": "thinking face" , "category": "Smileys & Emotion" , "aliases": [ "thinking" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🤐" , "description": "zipper-mouth face" , "category": "Smileys & Emotion" , "aliases": [ "zipper_mouth_face" ] , "tags": [ "silence" , "hush" ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🤨" , "description": "face with raised eyebrow" , "category": "Smileys & Emotion" , "aliases": [ "raised_eyebrow" ] , "tags": [ "suspicious" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "😐" , "description": "neutral face" , "category": "Smileys & Emotion" , "aliases": [ "neutral_face" ] , "tags": [ "meh" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😑" , "description": "expressionless face" , "category": "Smileys & Emotion" , "aliases": [ "expressionless" ] , "tags": [ ] , "unicode_version": "6.1" , "ios_version": "6.0" } , { "emoji": "😶" , "description": "face without mouth" , "category": "Smileys & Emotion" , "aliases": [ "no_mouth" ] , "tags": [ "mute" , "silence" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😶‍🌫️" , "description": "face in clouds" , "category": "Smileys & Emotion" , "aliases": [ "face_in_clouds" ] , "tags": [ ] , "unicode_version": "13.1" , "ios_version": "14.0" } , { "emoji": "😏" , "description": "smirking face" , "category": "Smileys & Emotion" , "aliases": [ "smirk" ] , "tags": [ "smug" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😒" , "description": "unamused face" , "category": "Smileys & Emotion" , "aliases": [ "unamused" ] , "tags": [ "meh" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🙄" , "description": "face with rolling eyes" , "category": "Smileys & Emotion" , "aliases": [ "roll_eyes" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "😬" , "description": "grimacing face" , "category": "Smileys & Emotion" , "aliases": [ "grimacing" ] , "tags": [ ] , "unicode_version": "6.1" , "ios_version": "6.0" } , { "emoji": "😮‍💨" , "description": "face exhaling" , "category": "Smileys & Emotion" , "aliases": [ "face_exhaling" ] , "tags": [ ] , "unicode_version": "13.1" , "ios_version": "14.0" } , { "emoji": "🤥" , "description": "lying face" , "category": "Smileys & Emotion" , "aliases": [ "lying_face" ] , "tags": [ "liar" ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "😌" , "description": "relieved face" , "category": "Smileys & Emotion" , "aliases": [ "relieved" ] , "tags": [ "whew" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😔" , "description": "pensive face" , "category": "Smileys & Emotion" , "aliases": [ "pensive" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😪" , "description": "sleepy face" , "category": "Smileys & Emotion" , "aliases": [ "sleepy" ] , "tags": [ "tired" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🤤" , "description": "drooling face" , "category": "Smileys & Emotion" , "aliases": [ "drooling_face" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "😴" , "description": "sleeping face" , "category": "Smileys & Emotion" , "aliases": [ "sleeping" ] , "tags": [ "zzz" ] , "unicode_version": "6.1" , "ios_version": "6.0" } , { "emoji": "😷" , "description": "face with medical mask" , "category": "Smileys & Emotion" , "aliases": [ "mask" ] , "tags": [ "sick" , "ill" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🤒" , "description": "face with thermometer" , "category": "Smileys & Emotion" , "aliases": [ "face_with_thermometer" ] , "tags": [ "sick" ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🤕" , "description": "face with head-bandage" , "category": "Smileys & Emotion" , "aliases": [ "face_with_head_bandage" ] , "tags": [ "hurt" ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🤢" , "description": "nauseated face" , "category": "Smileys & Emotion" , "aliases": [ "nauseated_face" ] , "tags": [ "sick" , "barf" , "disgusted" ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🤮" , "description": "face vomiting" , "category": "Smileys & Emotion" , "aliases": [ "vomiting_face" ] , "tags": [ "barf" , "sick" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🤧" , "description": "sneezing face" , "category": "Smileys & Emotion" , "aliases": [ "sneezing_face" ] , "tags": [ "achoo" , "sick" ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🥵" , "description": "hot face" , "category": "Smileys & Emotion" , "aliases": [ "hot_face" ] , "tags": [ "heat" , "sweating" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥶" , "description": "cold face" , "category": "Smileys & Emotion" , "aliases": [ "cold_face" ] , "tags": [ "freezing" , "ice" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥴" , "description": "woozy face" , "category": "Smileys & Emotion" , "aliases": [ "woozy_face" ] , "tags": [ "groggy" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "😵" , "description": "knocked-out face" , "category": "Smileys & Emotion" , "aliases": [ "dizzy_face" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😵‍💫" , "description": "face with spiral eyes" , "category": "Smileys & Emotion" , "aliases": [ "face_with_spiral_eyes" ] , "tags": [ ] , "unicode_version": "13.1" , "ios_version": "14.0" } , { "emoji": "🤯" , "description": "exploding head" , "category": "Smileys & Emotion" , "aliases": [ "exploding_head" ] , "tags": [ "mind" , "blown" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🤠" , "description": "cowboy hat face" , "category": "Smileys & Emotion" , "aliases": [ "cowboy_hat_face" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🥳" , "description": "partying face" , "category": "Smileys & Emotion" , "aliases": [ "partying_face" ] , "tags": [ "celebration" , "birthday" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥸" , "description": "disguised face" , "category": "Smileys & Emotion" , "aliases": [ "disguised_face" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "😎" , "description": "smiling face with sunglasses" , "category": "Smileys & Emotion" , "aliases": [ "sunglasses" ] , "tags": [ "cool" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🤓" , "description": "nerd face" , "category": "Smileys & Emotion" , "aliases": [ "nerd_face" ] , "tags": [ "geek" , "glasses" ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🧐" , "description": "face with monocle" , "category": "Smileys & Emotion" , "aliases": [ "monocle_face" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "😕" , "description": "confused face" , "category": "Smileys & Emotion" , "aliases": [ "confused" ] , "tags": [ ] , "unicode_version": "6.1" , "ios_version": "6.0" } , { "emoji": "😟" , "description": "worried face" , "category": "Smileys & Emotion" , "aliases": [ "worried" ] , "tags": [ "nervous" ] , "unicode_version": "6.1" , "ios_version": "6.0" } , { "emoji": "🙁" , "description": "slightly frowning face" , "category": "Smileys & Emotion" , "aliases": [ "slightly_frowning_face" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "☹️" , "description": "frowning face" , "category": "Smileys & Emotion" , "aliases": [ "frowning_face" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "😮" , "description": "face with open mouth" , "category": "Smileys & Emotion" , "aliases": [ "open_mouth" ] , "tags": [ "surprise" , "impressed" , "wow" ] , "unicode_version": "6.1" , "ios_version": "6.0" } , { "emoji": "😯" , "description": "hushed face" , "category": "Smileys & Emotion" , "aliases": [ "hushed" ] , "tags": [ "silence" , "speechless" ] , "unicode_version": "6.1" , "ios_version": "6.0" } , { "emoji": "😲" , "description": "astonished face" , "category": "Smileys & Emotion" , "aliases": [ "astonished" ] , "tags": [ "amazed" , "gasp" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😳" , "description": "flushed face" , "category": "Smileys & Emotion" , "aliases": [ "flushed" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥺" , "description": "pleading face" , "category": "Smileys & Emotion" , "aliases": [ "pleading_face" ] , "tags": [ "puppy" , "eyes" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "😦" , "description": "frowning face with open mouth" , "category": "Smileys & Emotion" , "aliases": [ "frowning" ] , "tags": [ ] , "unicode_version": "6.1" , "ios_version": "6.0" } , { "emoji": "😧" , "description": "anguished face" , "category": "Smileys & Emotion" , "aliases": [ "anguished" ] , "tags": [ "stunned" ] , "unicode_version": "6.1" , "ios_version": "6.0" } , { "emoji": "😨" , "description": "fearful face" , "category": "Smileys & Emotion" , "aliases": [ "fearful" ] , "tags": [ "scared" , "shocked" , "oops" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😰" , "description": "anxious face with sweat" , "category": "Smileys & Emotion" , "aliases": [ "cold_sweat" ] , "tags": [ "nervous" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😥" , "description": "sad but relieved face" , "category": "Smileys & Emotion" , "aliases": [ "disappointed_relieved" ] , "tags": [ "phew" , "sweat" , "nervous" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😢" , "description": "crying face" , "category": "Smileys & Emotion" , "aliases": [ "cry" ] , "tags": [ "sad" , "tear" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😭" , "description": "loudly crying face" , "category": "Smileys & Emotion" , "aliases": [ "sob" ] , "tags": [ "sad" , "cry" , "bawling" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😱" , "description": "face screaming in fear" , "category": "Smileys & Emotion" , "aliases": [ "scream" ] , "tags": [ "horror" , "shocked" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😖" , "description": "confounded face" , "category": "Smileys & Emotion" , "aliases": [ "confounded" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😣" , "description": "persevering face" , "category": "Smileys & Emotion" , "aliases": [ "persevere" ] , "tags": [ "struggling" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😞" , "description": "disappointed face" , "category": "Smileys & Emotion" , "aliases": [ "disappointed" ] , "tags": [ "sad" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😓" , "description": "downcast face with sweat" , "category": "Smileys & Emotion" , "aliases": [ "sweat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😩" , "description": "weary face" , "category": "Smileys & Emotion" , "aliases": [ "weary" ] , "tags": [ "tired" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😫" , "description": "tired face" , "category": "Smileys & Emotion" , "aliases": [ "tired_face" ] , "tags": [ "upset" , "whine" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥱" , "description": "yawning face" , "category": "Smileys & Emotion" , "aliases": [ "yawning_face" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "😤" , "description": "face with steam from nose" , "category": "Smileys & Emotion" , "aliases": [ "triumph" ] , "tags": [ "smug" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😡" , "description": "pouting face" , "category": "Smileys & Emotion" , "aliases": [ "rage" , "pout" ] , "tags": [ "angry" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😠" , "description": "angry face" , "category": "Smileys & Emotion" , "aliases": [ "angry" ] , "tags": [ "mad" , "annoyed" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🤬" , "description": "face with symbols on mouth" , "category": "Smileys & Emotion" , "aliases": [ "cursing_face" ] , "tags": [ "foul" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "😈" , "description": "smiling face with horns" , "category": "Smileys & Emotion" , "aliases": [ "smiling_imp" ] , "tags": [ "devil" , "evil" , "horns" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👿" , "description": "angry face with horns" , "category": "Smileys & Emotion" , "aliases": [ "imp" ] , "tags": [ "angry" , "devil" , "evil" , "horns" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💀" , "description": "skull" , "category": "Smileys & Emotion" , "aliases": [ "skull" ] , "tags": [ "dead" , "danger" , "poison" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "☠️" , "description": "skull and crossbones" , "category": "Smileys & Emotion" , "aliases": [ "skull_and_crossbones" ] , "tags": [ "danger" , "pirate" ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "💩" , "description": "pile of poo" , "category": "Smileys & Emotion" , "aliases": [ "hankey" , "poop" , "shit" ] , "tags": [ "crap" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🤡" , "description": "clown face" , "category": "Smileys & Emotion" , "aliases": [ "clown_face" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "👹" , "description": "ogre" , "category": "Smileys & Emotion" , "aliases": [ "japanese_ogre" ] , "tags": [ "monster" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👺" , "description": "goblin" , "category": "Smileys & Emotion" , "aliases": [ "japanese_goblin" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👻" , "description": "ghost" , "category": "Smileys & Emotion" , "aliases": [ "ghost" ] , "tags": [ "halloween" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👽" , "description": "alien" , "category": "Smileys & Emotion" , "aliases": [ "alien" ] , "tags": [ "ufo" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👾" , "description": "alien monster" , "category": "Smileys & Emotion" , "aliases": [ "space_invader" ] , "tags": [ "game" , "retro" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🤖" , "description": "robot" , "category": "Smileys & Emotion" , "aliases": [ "robot" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "😺" , "description": "grinning cat" , "category": "Smileys & Emotion" , "aliases": [ "smiley_cat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😸" , "description": "grinning cat with smiling eyes" , "category": "Smileys & Emotion" , "aliases": [ "smile_cat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😹" , "description": "cat with tears of joy" , "category": "Smileys & Emotion" , "aliases": [ "joy_cat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😻" , "description": "smiling cat with heart-eyes" , "category": "Smileys & Emotion" , "aliases": [ "heart_eyes_cat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😼" , "description": "cat with wry smile" , "category": "Smileys & Emotion" , "aliases": [ "smirk_cat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😽" , "description": "kissing cat" , "category": "Smileys & Emotion" , "aliases": [ "kissing_cat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🙀" , "description": "weary cat" , "category": "Smileys & Emotion" , "aliases": [ "scream_cat" ] , "tags": [ "horror" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😿" , "description": "crying cat" , "category": "Smileys & Emotion" , "aliases": [ "crying_cat_face" ] , "tags": [ "sad" , "tear" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "😾" , "description": "pouting cat" , "category": "Smileys & Emotion" , "aliases": [ "pouting_cat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🙈" , "description": "see-no-evil monkey" , "category": "Smileys & Emotion" , "aliases": [ "see_no_evil" ] , "tags": [ "monkey" , "blind" , "ignore" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🙉" , "description": "hear-no-evil monkey" , "category": "Smileys & Emotion" , "aliases": [ "hear_no_evil" ] , "tags": [ "monkey" , "deaf" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🙊" , "description": "speak-no-evil monkey" , "category": "Smileys & Emotion" , "aliases": [ "speak_no_evil" ] , "tags": [ "monkey" , "mute" , "hush" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💋" , "description": "kiss mark" , "category": "Smileys & Emotion" , "aliases": [ "kiss" ] , "tags": [ "lipstick" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💌" , "description": "love letter" , "category": "Smileys & Emotion" , "aliases": [ "love_letter" ] , "tags": [ "email" , "envelope" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💘" , "description": "heart with arrow" , "category": "Smileys & Emotion" , "aliases": [ "cupid" ] , "tags": [ "love" , "heart" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💝" , "description": "heart with ribbon" , "category": "Smileys & Emotion" , "aliases": [ "gift_heart" ] , "tags": [ "chocolates" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💖" , "description": "sparkling heart" , "category": "Smileys & Emotion" , "aliases": [ "sparkling_heart" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💗" , "description": "growing heart" , "category": "Smileys & Emotion" , "aliases": [ "heartpulse" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💓" , "description": "beating heart" , "category": "Smileys & Emotion" , "aliases": [ "heartbeat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💞" , "description": "revolving hearts" , "category": "Smileys & Emotion" , "aliases": [ "revolving_hearts" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💕" , "description": "two hearts" , "category": "Smileys & Emotion" , "aliases": [ "two_hearts" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💟" , "description": "heart decoration" , "category": "Smileys & Emotion" , "aliases": [ "heart_decoration" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "❣️" , "description": "heart exclamation" , "category": "Smileys & Emotion" , "aliases": [ "heavy_heart_exclamation" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "💔" , "description": "broken heart" , "category": "Smileys & Emotion" , "aliases": [ "broken_heart" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "❤️‍🔥" , "description": "heart on fire" , "category": "Smileys & Emotion" , "aliases": [ "heart_on_fire" ] , "tags": [ ] , "unicode_version": "13.1" , "ios_version": "14.0" } , { "emoji": "❤️‍🩹" , "description": "mending heart" , "category": "Smileys & Emotion" , "aliases": [ "mending_heart" ] , "tags": [ ] , "unicode_version": "13.1" , "ios_version": "14.0" } , { "emoji": "❤️" , "description": "red heart" , "category": "Smileys & Emotion" , "aliases": [ "heart" ] , "tags": [ "love" ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "🧡" , "description": "orange heart" , "category": "Smileys & Emotion" , "aliases": [ "orange_heart" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "💛" , "description": "yellow heart" , "category": "Smileys & Emotion" , "aliases": [ "yellow_heart" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💚" , "description": "green heart" , "category": "Smileys & Emotion" , "aliases": [ "green_heart" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💙" , "description": "blue heart" , "category": "Smileys & Emotion" , "aliases": [ "blue_heart" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💜" , "description": "purple heart" , "category": "Smileys & Emotion" , "aliases": [ "purple_heart" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🤎" , "description": "brown heart" , "category": "Smileys & Emotion" , "aliases": [ "brown_heart" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🖤" , "description": "black heart" , "category": "Smileys & Emotion" , "aliases": [ "black_heart" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🤍" , "description": "white heart" , "category": "Smileys & Emotion" , "aliases": [ "white_heart" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "💯" , "description": "hundred points" , "category": "Smileys & Emotion" , "aliases": [ "100" ] , "tags": [ "score" , "perfect" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💢" , "description": "anger symbol" , "category": "Smileys & Emotion" , "aliases": [ "anger" ] , "tags": [ "angry" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💥" , "description": "collision" , "category": "Smileys & Emotion" , "aliases": [ "boom" , "collision" ] , "tags": [ "explode" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💫" , "description": "dizzy" , "category": "Smileys & Emotion" , "aliases": [ "dizzy" ] , "tags": [ "star" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💦" , "description": "sweat droplets" , "category": "Smileys & Emotion" , "aliases": [ "sweat_drops" ] , "tags": [ "water" , "workout" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💨" , "description": "dashing away" , "category": "Smileys & Emotion" , "aliases": [ "dash" ] , "tags": [ "wind" , "blow" , "fast" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕳️" , "description": "hole" , "category": "Smileys & Emotion" , "aliases": [ "hole" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "💣" , "description": "bomb" , "category": "Smileys & Emotion" , "aliases": [ "bomb" ] , "tags": [ "boom" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💬" , "description": "speech balloon" , "category": "Smileys & Emotion" , "aliases": [ "speech_balloon" ] , "tags": [ "comment" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👁️‍🗨️" , "description": "eye in speech bubble" , "category": "Smileys & Emotion" , "aliases": [ "eye_speech_bubble" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🗨️" , "description": "left speech bubble" , "category": "Smileys & Emotion" , "aliases": [ "left_speech_bubble" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🗯️" , "description": "right anger bubble" , "category": "Smileys & Emotion" , "aliases": [ "right_anger_bubble" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "💭" , "description": "thought balloon" , "category": "Smileys & Emotion" , "aliases": [ "thought_balloon" ] , "tags": [ "thinking" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💤" , "description": "zzz" , "category": "Smileys & Emotion" , "aliases": [ "zzz" ] , "tags": [ "sleeping" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👋" , "description": "waving hand" , "category": "People & Body" , "aliases": [ "wave" ] , "tags": [ "goodbye" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🤚" , "description": "raised back of hand" , "category": "People & Body" , "aliases": [ "raised_back_of_hand" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🖐️" , "description": "hand with fingers splayed" , "category": "People & Body" , "aliases": [ "raised_hand_with_fingers_splayed" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" , "skin_tones": true } , { "emoji": "✋" , "description": "raised hand" , "category": "People & Body" , "aliases": [ "hand" , "raised_hand" ] , "tags": [ "highfive" , "stop" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🖖" , "description": "vulcan salute" , "category": "People & Body" , "aliases": [ "vulcan_salute" ] , "tags": [ "prosper" , "spock" ] , "unicode_version": "7.0" , "ios_version": "8.3" , "skin_tones": true } , { "emoji": "👌" , "description": "OK hand" , "category": "People & Body" , "aliases": [ "ok_hand" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🤌" , "description": "pinched fingers" , "category": "People & Body" , "aliases": [ "pinched_fingers" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" , "skin_tones": true } , { "emoji": "🤏" , "description": "pinching hand" , "category": "People & Body" , "aliases": [ "pinching_hand" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "✌️" , "description": "victory hand" , "category": "People & Body" , "aliases": [ "v" ] , "tags": [ "victory" , "peace" ] , "unicode_version": "" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🤞" , "description": "crossed fingers" , "category": "People & Body" , "aliases": [ "crossed_fingers" ] , "tags": [ "luck" , "hopeful" ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🤟" , "description": "love-you gesture" , "category": "People & Body" , "aliases": [ "love_you_gesture" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🤘" , "description": "sign of the horns" , "category": "People & Body" , "aliases": [ "metal" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" , "skin_tones": true } , { "emoji": "🤙" , "description": "call me hand" , "category": "People & Body" , "aliases": [ "call_me_hand" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👈" , "description": "backhand index pointing left" , "category": "People & Body" , "aliases": [ "point_left" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👉" , "description": "backhand index pointing right" , "category": "People & Body" , "aliases": [ "point_right" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👆" , "description": "backhand index pointing up" , "category": "People & Body" , "aliases": [ "point_up_2" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🖕" , "description": "middle finger" , "category": "People & Body" , "aliases": [ "middle_finger" , "fu" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" , "skin_tones": true } , { "emoji": "👇" , "description": "backhand index pointing down" , "category": "People & Body" , "aliases": [ "point_down" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "☝️" , "description": "index pointing up" , "category": "People & Body" , "aliases": [ "point_up" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👍" , "description": "thumbs up" , "category": "People & Body" , "aliases": [ "+1" , "thumbsup" ] , "tags": [ "approve" , "ok" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👎" , "description": "thumbs down" , "category": "People & Body" , "aliases": [ "-1" , "thumbsdown" ] , "tags": [ "disapprove" , "bury" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "✊" , "description": "raised fist" , "category": "People & Body" , "aliases": [ "fist_raised" , "fist" ] , "tags": [ "power" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👊" , "description": "oncoming fist" , "category": "People & Body" , "aliases": [ "fist_oncoming" , "facepunch" , "punch" ] , "tags": [ "attack" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🤛" , "description": "left-facing fist" , "category": "People & Body" , "aliases": [ "fist_left" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🤜" , "description": "right-facing fist" , "category": "People & Body" , "aliases": [ "fist_right" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👏" , "description": "clapping hands" , "category": "People & Body" , "aliases": [ "clap" ] , "tags": [ "praise" , "applause" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🙌" , "description": "raising hands" , "category": "People & Body" , "aliases": [ "raised_hands" ] , "tags": [ "hooray" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👐" , "description": "open hands" , "category": "People & Body" , "aliases": [ "open_hands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🤲" , "description": "palms up together" , "category": "People & Body" , "aliases": [ "palms_up_together" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🤝" , "description": "handshake" , "category": "People & Body" , "aliases": [ "handshake" ] , "tags": [ "deal" ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🙏" , "description": "folded hands" , "category": "People & Body" , "aliases": [ "pray" ] , "tags": [ "please" , "hope" , "wish" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "✍️" , "description": "writing hand" , "category": "People & Body" , "aliases": [ "writing_hand" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" , "skin_tones": true } , { "emoji": "💅" , "description": "nail polish" , "category": "People & Body" , "aliases": [ "nail_care" ] , "tags": [ "beauty" , "manicure" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🤳" , "description": "selfie" , "category": "People & Body" , "aliases": [ "selfie" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "💪" , "description": "flexed biceps" , "category": "People & Body" , "aliases": [ "muscle" ] , "tags": [ "flex" , "bicep" , "strong" , "workout" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🦾" , "description": "mechanical arm" , "category": "People & Body" , "aliases": [ "mechanical_arm" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🦿" , "description": "mechanical leg" , "category": "People & Body" , "aliases": [ "mechanical_leg" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🦵" , "description": "leg" , "category": "People & Body" , "aliases": [ "leg" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🦶" , "description": "foot" , "category": "People & Body" , "aliases": [ "foot" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "👂" , "description": "ear" , "category": "People & Body" , "aliases": [ "ear" ] , "tags": [ "hear" , "sound" , "listen" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🦻" , "description": "ear with hearing aid" , "category": "People & Body" , "aliases": [ "ear_with_hearing_aid" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "👃" , "description": "nose" , "category": "People & Body" , "aliases": [ "nose" ] , "tags": [ "smell" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🧠" , "description": "brain" , "category": "People & Body" , "aliases": [ "brain" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🫀" , "description": "anatomical heart" , "category": "People & Body" , "aliases": [ "anatomical_heart" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🫁" , "description": "lungs" , "category": "People & Body" , "aliases": [ "lungs" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🦷" , "description": "tooth" , "category": "People & Body" , "aliases": [ "tooth" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🦴" , "description": "bone" , "category": "People & Body" , "aliases": [ "bone" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "👀" , "description": "eyes" , "category": "People & Body" , "aliases": [ "eyes" ] , "tags": [ "look" , "see" , "watch" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👁️" , "description": "eye" , "category": "People & Body" , "aliases": [ "eye" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "👅" , "description": "tongue" , "category": "People & Body" , "aliases": [ "tongue" ] , "tags": [ "taste" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👄" , "description": "mouth" , "category": "People & Body" , "aliases": [ "lips" ] , "tags": [ "kiss" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👶" , "description": "baby" , "category": "People & Body" , "aliases": [ "baby" ] , "tags": [ "child" , "newborn" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🧒" , "description": "child" , "category": "People & Body" , "aliases": [ "child" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "👦" , "description": "boy" , "category": "People & Body" , "aliases": [ "boy" ] , "tags": [ "child" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👧" , "description": "girl" , "category": "People & Body" , "aliases": [ "girl" ] , "tags": [ "child" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🧑" , "description": "person" , "category": "People & Body" , "aliases": [ "adult" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "👱" , "description": "person: blond hair" , "category": "People & Body" , "aliases": [ "blond_haired_person" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👨" , "description": "man" , "category": "People & Body" , "aliases": [ "man" ] , "tags": [ "mustache" , "father" , "dad" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🧔" , "description": "person: beard" , "category": "People & Body" , "aliases": [ "bearded_person" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧔‍♂️" , "description": "man: beard" , "category": "People & Body" , "aliases": [ "man_beard" ] , "tags": [ ] , "unicode_version": "13.1" , "ios_version": "14.0" , "skin_tones": true } , { "emoji": "🧔‍♀️" , "description": "woman: beard" , "category": "People & Body" , "aliases": [ "woman_beard" ] , "tags": [ ] , "unicode_version": "13.1" , "ios_version": "14.0" , "skin_tones": true } , { "emoji": "👨‍🦰" , "description": "man: red hair" , "category": "People & Body" , "aliases": [ "red_haired_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "👨‍🦱" , "description": "man: curly hair" , "category": "People & Body" , "aliases": [ "curly_haired_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "👨‍🦳" , "description": "man: white hair" , "category": "People & Body" , "aliases": [ "white_haired_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "👨‍🦲" , "description": "man: bald" , "category": "People & Body" , "aliases": [ "bald_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "👩" , "description": "woman" , "category": "People & Body" , "aliases": [ "woman" ] , "tags": [ "girls" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👩‍🦰" , "description": "woman: red hair" , "category": "People & Body" , "aliases": [ "red_haired_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧑‍🦰" , "description": "person: red hair" , "category": "People & Body" , "aliases": [ "person_red_hair" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👩‍🦱" , "description": "woman: curly hair" , "category": "People & Body" , "aliases": [ "curly_haired_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧑‍🦱" , "description": "person: curly hair" , "category": "People & Body" , "aliases": [ "person_curly_hair" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👩‍🦳" , "description": "woman: white hair" , "category": "People & Body" , "aliases": [ "white_haired_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧑‍🦳" , "description": "person: white hair" , "category": "People & Body" , "aliases": [ "person_white_hair" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👩‍🦲" , "description": "woman: bald" , "category": "People & Body" , "aliases": [ "bald_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧑‍🦲" , "description": "person: bald" , "category": "People & Body" , "aliases": [ "person_bald" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👱‍♀️" , "description": "woman: blond hair" , "category": "People & Body" , "aliases": [ "blond_haired_woman" , "blonde_woman" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "👱‍♂️" , "description": "man: blond hair" , "category": "People & Body" , "aliases": [ "blond_haired_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧓" , "description": "older person" , "category": "People & Body" , "aliases": [ "older_adult" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "👴" , "description": "old man" , "category": "People & Body" , "aliases": [ "older_man" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👵" , "description": "old woman" , "category": "People & Body" , "aliases": [ "older_woman" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🙍" , "description": "person frowning" , "category": "People & Body" , "aliases": [ "frowning_person" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🙍‍♂️" , "description": "man frowning" , "category": "People & Body" , "aliases": [ "frowning_man" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🙍‍♀️" , "description": "woman frowning" , "category": "People & Body" , "aliases": [ "frowning_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🙎" , "description": "person pouting" , "category": "People & Body" , "aliases": [ "pouting_face" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🙎‍♂️" , "description": "man pouting" , "category": "People & Body" , "aliases": [ "pouting_man" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🙎‍♀️" , "description": "woman pouting" , "category": "People & Body" , "aliases": [ "pouting_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🙅" , "description": "person gesturing NO" , "category": "People & Body" , "aliases": [ "no_good" ] , "tags": [ "stop" , "halt" , "denied" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🙅‍♂️" , "description": "man gesturing NO" , "category": "People & Body" , "aliases": [ "no_good_man" , "ng_man" ] , "tags": [ "stop" , "halt" , "denied" ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🙅‍♀️" , "description": "woman gesturing NO" , "category": "People & Body" , "aliases": [ "no_good_woman" , "ng_woman" ] , "tags": [ "stop" , "halt" , "denied" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🙆" , "description": "person gesturing OK" , "category": "People & Body" , "aliases": [ "ok_person" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🙆‍♂️" , "description": "man gesturing OK" , "category": "People & Body" , "aliases": [ "ok_man" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🙆‍♀️" , "description": "woman gesturing OK" , "category": "People & Body" , "aliases": [ "ok_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "💁" , "description": "person tipping hand" , "category": "People & Body" , "aliases": [ "tipping_hand_person" , "information_desk_person" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "💁‍♂️" , "description": "man tipping hand" , "category": "People & Body" , "aliases": [ "tipping_hand_man" , "sassy_man" ] , "tags": [ "information" ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "💁‍♀️" , "description": "woman tipping hand" , "category": "People & Body" , "aliases": [ "tipping_hand_woman" , "sassy_woman" ] , "tags": [ "information" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🙋" , "description": "person raising hand" , "category": "People & Body" , "aliases": [ "raising_hand" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🙋‍♂️" , "description": "man raising hand" , "category": "People & Body" , "aliases": [ "raising_hand_man" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🙋‍♀️" , "description": "woman raising hand" , "category": "People & Body" , "aliases": [ "raising_hand_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧏" , "description": "deaf person" , "category": "People & Body" , "aliases": [ "deaf_person" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "🧏‍♂️" , "description": "deaf man" , "category": "People & Body" , "aliases": [ "deaf_man" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "🧏‍♀️" , "description": "deaf woman" , "category": "People & Body" , "aliases": [ "deaf_woman" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "🙇" , "description": "person bowing" , "category": "People & Body" , "aliases": [ "bow" ] , "tags": [ "respect" , "thanks" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🙇‍♂️" , "description": "man bowing" , "category": "People & Body" , "aliases": [ "bowing_man" ] , "tags": [ "respect" , "thanks" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🙇‍♀️" , "description": "woman bowing" , "category": "People & Body" , "aliases": [ "bowing_woman" ] , "tags": [ "respect" , "thanks" ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🤦" , "description": "person facepalming" , "category": "People & Body" , "aliases": [ "facepalm" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🤦‍♂️" , "description": "man facepalming" , "category": "People & Body" , "aliases": [ "man_facepalming" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🤦‍♀️" , "description": "woman facepalming" , "category": "People & Body" , "aliases": [ "woman_facepalming" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🤷" , "description": "person shrugging" , "category": "People & Body" , "aliases": [ "shrug" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🤷‍♂️" , "description": "man shrugging" , "category": "People & Body" , "aliases": [ "man_shrugging" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🤷‍♀️" , "description": "woman shrugging" , "category": "People & Body" , "aliases": [ "woman_shrugging" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍⚕️" , "description": "health worker" , "category": "People & Body" , "aliases": [ "health_worker" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍⚕️" , "description": "man health worker" , "category": "People & Body" , "aliases": [ "man_health_worker" ] , "tags": [ "doctor" , "nurse" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍⚕️" , "description": "woman health worker" , "category": "People & Body" , "aliases": [ "woman_health_worker" ] , "tags": [ "doctor" , "nurse" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍🎓" , "description": "student" , "category": "People & Body" , "aliases": [ "student" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍🎓" , "description": "man student" , "category": "People & Body" , "aliases": [ "man_student" ] , "tags": [ "graduation" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍🎓" , "description": "woman student" , "category": "People & Body" , "aliases": [ "woman_student" ] , "tags": [ "graduation" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍🏫" , "description": "teacher" , "category": "People & Body" , "aliases": [ "teacher" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍🏫" , "description": "man teacher" , "category": "People & Body" , "aliases": [ "man_teacher" ] , "tags": [ "school" , "professor" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍🏫" , "description": "woman teacher" , "category": "People & Body" , "aliases": [ "woman_teacher" ] , "tags": [ "school" , "professor" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍⚖️" , "description": "judge" , "category": "People & Body" , "aliases": [ "judge" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍⚖️" , "description": "man judge" , "category": "People & Body" , "aliases": [ "man_judge" ] , "tags": [ "justice" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍⚖️" , "description": "woman judge" , "category": "People & Body" , "aliases": [ "woman_judge" ] , "tags": [ "justice" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍🌾" , "description": "farmer" , "category": "People & Body" , "aliases": [ "farmer" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍🌾" , "description": "man farmer" , "category": "People & Body" , "aliases": [ "man_farmer" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍🌾" , "description": "woman farmer" , "category": "People & Body" , "aliases": [ "woman_farmer" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍🍳" , "description": "cook" , "category": "People & Body" , "aliases": [ "cook" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍🍳" , "description": "man cook" , "category": "People & Body" , "aliases": [ "man_cook" ] , "tags": [ "chef" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍🍳" , "description": "woman cook" , "category": "People & Body" , "aliases": [ "woman_cook" ] , "tags": [ "chef" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍🔧" , "description": "mechanic" , "category": "People & Body" , "aliases": [ "mechanic" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍🔧" , "description": "man mechanic" , "category": "People & Body" , "aliases": [ "man_mechanic" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍🔧" , "description": "woman mechanic" , "category": "People & Body" , "aliases": [ "woman_mechanic" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍🏭" , "description": "factory worker" , "category": "People & Body" , "aliases": [ "factory_worker" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍🏭" , "description": "man factory worker" , "category": "People & Body" , "aliases": [ "man_factory_worker" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍🏭" , "description": "woman factory worker" , "category": "People & Body" , "aliases": [ "woman_factory_worker" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍💼" , "description": "office worker" , "category": "People & Body" , "aliases": [ "office_worker" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍💼" , "description": "man office worker" , "category": "People & Body" , "aliases": [ "man_office_worker" ] , "tags": [ "business" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍💼" , "description": "woman office worker" , "category": "People & Body" , "aliases": [ "woman_office_worker" ] , "tags": [ "business" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍🔬" , "description": "scientist" , "category": "People & Body" , "aliases": [ "scientist" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍🔬" , "description": "man scientist" , "category": "People & Body" , "aliases": [ "man_scientist" ] , "tags": [ "research" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍🔬" , "description": "woman scientist" , "category": "People & Body" , "aliases": [ "woman_scientist" ] , "tags": [ "research" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍💻" , "description": "technologist" , "category": "People & Body" , "aliases": [ "technologist" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍💻" , "description": "man technologist" , "category": "People & Body" , "aliases": [ "man_technologist" ] , "tags": [ "coder" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍💻" , "description": "woman technologist" , "category": "People & Body" , "aliases": [ "woman_technologist" ] , "tags": [ "coder" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍🎤" , "description": "singer" , "category": "People & Body" , "aliases": [ "singer" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍🎤" , "description": "man singer" , "category": "People & Body" , "aliases": [ "man_singer" ] , "tags": [ "rockstar" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍🎤" , "description": "woman singer" , "category": "People & Body" , "aliases": [ "woman_singer" ] , "tags": [ "rockstar" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍🎨" , "description": "artist" , "category": "People & Body" , "aliases": [ "artist" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍🎨" , "description": "man artist" , "category": "People & Body" , "aliases": [ "man_artist" ] , "tags": [ "painter" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍🎨" , "description": "woman artist" , "category": "People & Body" , "aliases": [ "woman_artist" ] , "tags": [ "painter" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍✈️" , "description": "pilot" , "category": "People & Body" , "aliases": [ "pilot" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍✈️" , "description": "man pilot" , "category": "People & Body" , "aliases": [ "man_pilot" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍✈️" , "description": "woman pilot" , "category": "People & Body" , "aliases": [ "woman_pilot" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍🚀" , "description": "astronaut" , "category": "People & Body" , "aliases": [ "astronaut" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍🚀" , "description": "man astronaut" , "category": "People & Body" , "aliases": [ "man_astronaut" ] , "tags": [ "space" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍🚀" , "description": "woman astronaut" , "category": "People & Body" , "aliases": [ "woman_astronaut" ] , "tags": [ "space" ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍🚒" , "description": "firefighter" , "category": "People & Body" , "aliases": [ "firefighter" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍🚒" , "description": "man firefighter" , "category": "People & Body" , "aliases": [ "man_firefighter" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👩‍🚒" , "description": "woman firefighter" , "category": "People & Body" , "aliases": [ "woman_firefighter" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👮" , "description": "police officer" , "category": "People & Body" , "aliases": [ "police_officer" , "cop" ] , "tags": [ "law" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👮‍♂️" , "description": "man police officer" , "category": "People & Body" , "aliases": [ "policeman" ] , "tags": [ "law" , "cop" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "👮‍♀️" , "description": "woman police officer" , "category": "People & Body" , "aliases": [ "policewoman" ] , "tags": [ "law" , "cop" ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🕵️" , "description": "detective" , "category": "People & Body" , "aliases": [ "detective" ] , "tags": [ "sleuth" ] , "unicode_version": "7.0" , "ios_version": "9.1" , "skin_tones": true } , { "emoji": "🕵️‍♂️" , "description": "man detective" , "category": "People & Body" , "aliases": [ "male_detective" ] , "tags": [ "sleuth" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🕵️‍♀️" , "description": "woman detective" , "category": "People & Body" , "aliases": [ "female_detective" ] , "tags": [ "sleuth" ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "💂" , "description": "guard" , "category": "People & Body" , "aliases": [ "guard" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "💂‍♂️" , "description": "man guard" , "category": "People & Body" , "aliases": [ "guardsman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "💂‍♀️" , "description": "woman guard" , "category": "People & Body" , "aliases": [ "guardswoman" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🥷" , "description": "ninja" , "category": "People & Body" , "aliases": [ "ninja" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" , "skin_tones": true } , { "emoji": "👷" , "description": "construction worker" , "category": "People & Body" , "aliases": [ "construction_worker" ] , "tags": [ "helmet" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👷‍♂️" , "description": "man construction worker" , "category": "People & Body" , "aliases": [ "construction_worker_man" ] , "tags": [ "helmet" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "👷‍♀️" , "description": "woman construction worker" , "category": "People & Body" , "aliases": [ "construction_worker_woman" ] , "tags": [ "helmet" ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🤴" , "description": "prince" , "category": "People & Body" , "aliases": [ "prince" ] , "tags": [ "crown" , "royal" ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "👸" , "description": "princess" , "category": "People & Body" , "aliases": [ "princess" ] , "tags": [ "crown" , "royal" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👳" , "description": "person wearing turban" , "category": "People & Body" , "aliases": [ "person_with_turban" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👳‍♂️" , "description": "man wearing turban" , "category": "People & Body" , "aliases": [ "man_with_turban" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "👳‍♀️" , "description": "woman wearing turban" , "category": "People & Body" , "aliases": [ "woman_with_turban" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "👲" , "description": "person with skullcap" , "category": "People & Body" , "aliases": [ "man_with_gua_pi_mao" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🧕" , "description": "woman with headscarf" , "category": "People & Body" , "aliases": [ "woman_with_headscarf" ] , "tags": [ "hijab" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🤵" , "description": "person in tuxedo" , "category": "People & Body" , "aliases": [ "person_in_tuxedo" ] , "tags": [ "groom" , "marriage" , "wedding" ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🤵‍♂️" , "description": "man in tuxedo" , "category": "People & Body" , "aliases": [ "man_in_tuxedo" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" , "skin_tones": true } , { "emoji": "🤵‍♀️" , "description": "woman in tuxedo" , "category": "People & Body" , "aliases": [ "woman_in_tuxedo" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" , "skin_tones": true } , { "emoji": "👰" , "description": "person with veil" , "category": "People & Body" , "aliases": [ "person_with_veil" ] , "tags": [ "marriage" , "wedding" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👰‍♂️" , "description": "man with veil" , "category": "People & Body" , "aliases": [ "man_with_veil" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" , "skin_tones": true } , { "emoji": "👰‍♀️" , "description": "woman with veil" , "category": "People & Body" , "aliases": [ "woman_with_veil" , "bride_with_veil" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" , "skin_tones": true } , { "emoji": "🤰" , "description": "pregnant woman" , "category": "People & Body" , "aliases": [ "pregnant_woman" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🤱" , "description": "breast-feeding" , "category": "People & Body" , "aliases": [ "breast_feeding" ] , "tags": [ "nursing" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "👩‍🍼" , "description": "woman feeding baby" , "category": "People & Body" , "aliases": [ "woman_feeding_baby" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" , "skin_tones": true } , { "emoji": "👨‍🍼" , "description": "man feeding baby" , "category": "People & Body" , "aliases": [ "man_feeding_baby" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" , "skin_tones": true } , { "emoji": "🧑‍🍼" , "description": "person feeding baby" , "category": "People & Body" , "aliases": [ "person_feeding_baby" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" , "skin_tones": true } , { "emoji": "👼" , "description": "baby angel" , "category": "People & Body" , "aliases": [ "angel" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🎅" , "description": "Santa Claus" , "category": "People & Body" , "aliases": [ "santa" ] , "tags": [ "christmas" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🤶" , "description": "Mrs. Claus" , "category": "People & Body" , "aliases": [ "mrs_claus" ] , "tags": [ "santa" ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧑‍🎄" , "description": "mx claus" , "category": "People & Body" , "aliases": [ "mx_claus" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" , "skin_tones": true } , { "emoji": "🦸" , "description": "superhero" , "category": "People & Body" , "aliases": [ "superhero" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🦸‍♂️" , "description": "man superhero" , "category": "People & Body" , "aliases": [ "superhero_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🦸‍♀️" , "description": "woman superhero" , "category": "People & Body" , "aliases": [ "superhero_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🦹" , "description": "supervillain" , "category": "People & Body" , "aliases": [ "supervillain" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🦹‍♂️" , "description": "man supervillain" , "category": "People & Body" , "aliases": [ "supervillain_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🦹‍♀️" , "description": "woman supervillain" , "category": "People & Body" , "aliases": [ "supervillain_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧙" , "description": "mage" , "category": "People & Body" , "aliases": [ "mage" ] , "tags": [ "wizard" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧙‍♂️" , "description": "man mage" , "category": "People & Body" , "aliases": [ "mage_man" ] , "tags": [ "wizard" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧙‍♀️" , "description": "woman mage" , "category": "People & Body" , "aliases": [ "mage_woman" ] , "tags": [ "wizard" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧚" , "description": "fairy" , "category": "People & Body" , "aliases": [ "fairy" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧚‍♂️" , "description": "man fairy" , "category": "People & Body" , "aliases": [ "fairy_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧚‍♀️" , "description": "woman fairy" , "category": "People & Body" , "aliases": [ "fairy_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧛" , "description": "vampire" , "category": "People & Body" , "aliases": [ "vampire" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧛‍♂️" , "description": "man vampire" , "category": "People & Body" , "aliases": [ "vampire_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧛‍♀️" , "description": "woman vampire" , "category": "People & Body" , "aliases": [ "vampire_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧜" , "description": "merperson" , "category": "People & Body" , "aliases": [ "merperson" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧜‍♂️" , "description": "merman" , "category": "People & Body" , "aliases": [ "merman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧜‍♀️" , "description": "mermaid" , "category": "People & Body" , "aliases": [ "mermaid" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧝" , "description": "elf" , "category": "People & Body" , "aliases": [ "elf" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧝‍♂️" , "description": "man elf" , "category": "People & Body" , "aliases": [ "elf_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧝‍♀️" , "description": "woman elf" , "category": "People & Body" , "aliases": [ "elf_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧞" , "description": "genie" , "category": "People & Body" , "aliases": [ "genie" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧞‍♂️" , "description": "man genie" , "category": "People & Body" , "aliases": [ "genie_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧞‍♀️" , "description": "woman genie" , "category": "People & Body" , "aliases": [ "genie_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧟" , "description": "zombie" , "category": "People & Body" , "aliases": [ "zombie" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧟‍♂️" , "description": "man zombie" , "category": "People & Body" , "aliases": [ "zombie_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧟‍♀️" , "description": "woman zombie" , "category": "People & Body" , "aliases": [ "zombie_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "💆" , "description": "person getting massage" , "category": "People & Body" , "aliases": [ "massage" ] , "tags": [ "spa" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "💆‍♂️" , "description": "man getting massage" , "category": "People & Body" , "aliases": [ "massage_man" ] , "tags": [ "spa" ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "💆‍♀️" , "description": "woman getting massage" , "category": "People & Body" , "aliases": [ "massage_woman" ] , "tags": [ "spa" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "💇" , "description": "person getting haircut" , "category": "People & Body" , "aliases": [ "haircut" ] , "tags": [ "beauty" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "💇‍♂️" , "description": "man getting haircut" , "category": "People & Body" , "aliases": [ "haircut_man" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "💇‍♀️" , "description": "woman getting haircut" , "category": "People & Body" , "aliases": [ "haircut_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🚶" , "description": "person walking" , "category": "People & Body" , "aliases": [ "walking" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🚶‍♂️" , "description": "man walking" , "category": "People & Body" , "aliases": [ "walking_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🚶‍♀️" , "description": "woman walking" , "category": "People & Body" , "aliases": [ "walking_woman" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🧍" , "description": "person standing" , "category": "People & Body" , "aliases": [ "standing_person" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "🧍‍♂️" , "description": "man standing" , "category": "People & Body" , "aliases": [ "standing_man" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "🧍‍♀️" , "description": "woman standing" , "category": "People & Body" , "aliases": [ "standing_woman" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "🧎" , "description": "person kneeling" , "category": "People & Body" , "aliases": [ "kneeling_person" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "🧎‍♂️" , "description": "man kneeling" , "category": "People & Body" , "aliases": [ "kneeling_man" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "🧎‍♀️" , "description": "woman kneeling" , "category": "People & Body" , "aliases": [ "kneeling_woman" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "🧑‍🦯" , "description": "person with white cane" , "category": "People & Body" , "aliases": [ "person_with_probing_cane" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍🦯" , "description": "man with white cane" , "category": "People & Body" , "aliases": [ "man_with_probing_cane" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "👩‍🦯" , "description": "woman with white cane" , "category": "People & Body" , "aliases": [ "woman_with_probing_cane" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "🧑‍🦼" , "description": "person in motorized wheelchair" , "category": "People & Body" , "aliases": [ "person_in_motorized_wheelchair" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍🦼" , "description": "man in motorized wheelchair" , "category": "People & Body" , "aliases": [ "man_in_motorized_wheelchair" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "👩‍🦼" , "description": "woman in motorized wheelchair" , "category": "People & Body" , "aliases": [ "woman_in_motorized_wheelchair" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "🧑‍🦽" , "description": "person in manual wheelchair" , "category": "People & Body" , "aliases": [ "person_in_manual_wheelchair" ] , "tags": [ ] , "unicode_version": "12.1" , "ios_version": "13.2" , "skin_tones": true } , { "emoji": "👨‍🦽" , "description": "man in manual wheelchair" , "category": "People & Body" , "aliases": [ "man_in_manual_wheelchair" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "👩‍🦽" , "description": "woman in manual wheelchair" , "category": "People & Body" , "aliases": [ "woman_in_manual_wheelchair" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "🏃" , "description": "person running" , "category": "People & Body" , "aliases": [ "runner" , "running" ] , "tags": [ "exercise" , "workout" , "marathon" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🏃‍♂️" , "description": "man running" , "category": "People & Body" , "aliases": [ "running_man" ] , "tags": [ "exercise" , "workout" , "marathon" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🏃‍♀️" , "description": "woman running" , "category": "People & Body" , "aliases": [ "running_woman" ] , "tags": [ "exercise" , "workout" , "marathon" ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "💃" , "description": "woman dancing" , "category": "People & Body" , "aliases": [ "woman_dancing" , "dancer" ] , "tags": [ "dress" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🕺" , "description": "man dancing" , "category": "People & Body" , "aliases": [ "man_dancing" ] , "tags": [ "dancer" ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🕴️" , "description": "person in suit levitating" , "category": "People & Body" , "aliases": [ "business_suit_levitating" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" , "skin_tones": true } , { "emoji": "👯" , "description": "people with bunny ears" , "category": "People & Body" , "aliases": [ "dancers" ] , "tags": [ "bunny" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👯‍♂️" , "description": "men with bunny ears" , "category": "People & Body" , "aliases": [ "dancing_men" ] , "tags": [ "bunny" ] , "unicode_version": "6.0" , "ios_version": "10.0" } , { "emoji": "👯‍♀️" , "description": "women with bunny ears" , "category": "People & Body" , "aliases": [ "dancing_women" ] , "tags": [ "bunny" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧖" , "description": "person in steamy room" , "category": "People & Body" , "aliases": [ "sauna_person" ] , "tags": [ "steamy" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧖‍♂️" , "description": "man in steamy room" , "category": "People & Body" , "aliases": [ "sauna_man" ] , "tags": [ "steamy" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧖‍♀️" , "description": "woman in steamy room" , "category": "People & Body" , "aliases": [ "sauna_woman" ] , "tags": [ "steamy" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧗" , "description": "person climbing" , "category": "People & Body" , "aliases": [ "climbing" ] , "tags": [ "bouldering" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧗‍♂️" , "description": "man climbing" , "category": "People & Body" , "aliases": [ "climbing_man" ] , "tags": [ "bouldering" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧗‍♀️" , "description": "woman climbing" , "category": "People & Body" , "aliases": [ "climbing_woman" ] , "tags": [ "bouldering" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🤺" , "description": "person fencing" , "category": "People & Body" , "aliases": [ "person_fencing" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🏇" , "description": "horse racing" , "category": "People & Body" , "aliases": [ "horse_racing" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "⛷️" , "description": "skier" , "category": "People & Body" , "aliases": [ "skier" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "9.1" } , { "emoji": "🏂" , "description": "snowboarder" , "category": "People & Body" , "aliases": [ "snowboarder" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🏌️" , "description": "person golfing" , "category": "People & Body" , "aliases": [ "golfing" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" , "skin_tones": true } , { "emoji": "🏌️‍♂️" , "description": "man golfing" , "category": "People & Body" , "aliases": [ "golfing_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🏌️‍♀️" , "description": "woman golfing" , "category": "People & Body" , "aliases": [ "golfing_woman" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🏄" , "description": "person surfing" , "category": "People & Body" , "aliases": [ "surfer" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🏄‍♂️" , "description": "man surfing" , "category": "People & Body" , "aliases": [ "surfing_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🏄‍♀️" , "description": "woman surfing" , "category": "People & Body" , "aliases": [ "surfing_woman" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🚣" , "description": "person rowing boat" , "category": "People & Body" , "aliases": [ "rowboat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🚣‍♂️" , "description": "man rowing boat" , "category": "People & Body" , "aliases": [ "rowing_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🚣‍♀️" , "description": "woman rowing boat" , "category": "People & Body" , "aliases": [ "rowing_woman" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🏊" , "description": "person swimming" , "category": "People & Body" , "aliases": [ "swimmer" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🏊‍♂️" , "description": "man swimming" , "category": "People & Body" , "aliases": [ "swimming_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🏊‍♀️" , "description": "woman swimming" , "category": "People & Body" , "aliases": [ "swimming_woman" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "⛹️" , "description": "person bouncing ball" , "category": "People & Body" , "aliases": [ "bouncing_ball_person" ] , "tags": [ "basketball" ] , "unicode_version": "5.2" , "ios_version": "9.1" , "skin_tones": true } , { "emoji": "⛹️‍♂️" , "description": "man bouncing ball" , "category": "People & Body" , "aliases": [ "bouncing_ball_man" , "basketball_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "⛹️‍♀️" , "description": "woman bouncing ball" , "category": "People & Body" , "aliases": [ "bouncing_ball_woman" , "basketball_woman" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🏋️" , "description": "person lifting weights" , "category": "People & Body" , "aliases": [ "weight_lifting" ] , "tags": [ "gym" , "workout" ] , "unicode_version": "7.0" , "ios_version": "9.1" , "skin_tones": true } , { "emoji": "🏋️‍♂️" , "description": "man lifting weights" , "category": "People & Body" , "aliases": [ "weight_lifting_man" ] , "tags": [ "gym" , "workout" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🏋️‍♀️" , "description": "woman lifting weights" , "category": "People & Body" , "aliases": [ "weight_lifting_woman" ] , "tags": [ "gym" , "workout" ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🚴" , "description": "person biking" , "category": "People & Body" , "aliases": [ "bicyclist" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🚴‍♂️" , "description": "man biking" , "category": "People & Body" , "aliases": [ "biking_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🚴‍♀️" , "description": "woman biking" , "category": "People & Body" , "aliases": [ "biking_woman" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🚵" , "description": "person mountain biking" , "category": "People & Body" , "aliases": [ "mountain_bicyclist" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🚵‍♂️" , "description": "man mountain biking" , "category": "People & Body" , "aliases": [ "mountain_biking_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🚵‍♀️" , "description": "woman mountain biking" , "category": "People & Body" , "aliases": [ "mountain_biking_woman" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" , "skin_tones": true } , { "emoji": "🤸" , "description": "person cartwheeling" , "category": "People & Body" , "aliases": [ "cartwheeling" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🤸‍♂️" , "description": "man cartwheeling" , "category": "People & Body" , "aliases": [ "man_cartwheeling" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🤸‍♀️" , "description": "woman cartwheeling" , "category": "People & Body" , "aliases": [ "woman_cartwheeling" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🤼" , "description": "people wrestling" , "category": "People & Body" , "aliases": [ "wrestling" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🤼‍♂️" , "description": "men wrestling" , "category": "People & Body" , "aliases": [ "men_wrestling" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🤼‍♀️" , "description": "women wrestling" , "category": "People & Body" , "aliases": [ "women_wrestling" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🤽" , "description": "person playing water polo" , "category": "People & Body" , "aliases": [ "water_polo" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🤽‍♂️" , "description": "man playing water polo" , "category": "People & Body" , "aliases": [ "man_playing_water_polo" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🤽‍♀️" , "description": "woman playing water polo" , "category": "People & Body" , "aliases": [ "woman_playing_water_polo" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🤾" , "description": "person playing handball" , "category": "People & Body" , "aliases": [ "handball_person" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🤾‍♂️" , "description": "man playing handball" , "category": "People & Body" , "aliases": [ "man_playing_handball" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🤾‍♀️" , "description": "woman playing handball" , "category": "People & Body" , "aliases": [ "woman_playing_handball" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🤹" , "description": "person juggling" , "category": "People & Body" , "aliases": [ "juggling_person" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🤹‍♂️" , "description": "man juggling" , "category": "People & Body" , "aliases": [ "man_juggling" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🤹‍♀️" , "description": "woman juggling" , "category": "People & Body" , "aliases": [ "woman_juggling" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" , "skin_tones": true } , { "emoji": "🧘" , "description": "person in lotus position" , "category": "People & Body" , "aliases": [ "lotus_position" ] , "tags": [ "meditation" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧘‍♂️" , "description": "man in lotus position" , "category": "People & Body" , "aliases": [ "lotus_position_man" ] , "tags": [ "meditation" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🧘‍♀️" , "description": "woman in lotus position" , "category": "People & Body" , "aliases": [ "lotus_position_woman" ] , "tags": [ "meditation" ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "🛀" , "description": "person taking bath" , "category": "People & Body" , "aliases": [ "bath" ] , "tags": [ "shower" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "🛌" , "description": "person in bed" , "category": "People & Body" , "aliases": [ "sleeping_bed" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" , "skin_tones": true } , { "emoji": "🧑‍🤝‍🧑" , "description": "people holding hands" , "category": "People & Body" , "aliases": [ "people_holding_hands" ] , "tags": [ "couple" , "date" ] , "unicode_version": "12.0" , "ios_version": "13.0" , "skin_tones": true } , { "emoji": "👭" , "description": "women holding hands" , "category": "People & Body" , "aliases": [ "two_women_holding_hands" ] , "tags": [ "couple" , "date" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👫" , "description": "woman and man holding hands" , "category": "People & Body" , "aliases": [ "couple" ] , "tags": [ "date" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👬" , "description": "men holding hands" , "category": "People & Body" , "aliases": [ "two_men_holding_hands" ] , "tags": [ "couple" , "date" ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "💏" , "description": "kiss" , "category": "People & Body" , "aliases": [ "couplekiss" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👩‍❤️‍💋‍👨" , "description": "kiss: woman, man" , "category": "People & Body" , "aliases": [ "couplekiss_man_woman" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "👨‍❤️‍💋‍👨" , "description": "kiss: man, man" , "category": "People & Body" , "aliases": [ "couplekiss_man_man" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" , "skin_tones": true } , { "emoji": "👩‍❤️‍💋‍👩" , "description": "kiss: woman, woman" , "category": "People & Body" , "aliases": [ "couplekiss_woman_woman" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" , "skin_tones": true } , { "emoji": "💑" , "description": "couple with heart" , "category": "People & Body" , "aliases": [ "couple_with_heart" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" , "skin_tones": true } , { "emoji": "👩‍❤️‍👨" , "description": "couple with heart: woman, man" , "category": "People & Body" , "aliases": [ "couple_with_heart_woman_man" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" , "skin_tones": true } , { "emoji": "👨‍❤️‍👨" , "description": "couple with heart: man, man" , "category": "People & Body" , "aliases": [ "couple_with_heart_man_man" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" , "skin_tones": true } , { "emoji": "👩‍❤️‍👩" , "description": "couple with heart: woman, woman" , "category": "People & Body" , "aliases": [ "couple_with_heart_woman_woman" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" , "skin_tones": true } , { "emoji": "👪" , "description": "family" , "category": "People & Body" , "aliases": [ "family" ] , "tags": [ "home" , "parents" , "child" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👨‍👩‍👦" , "description": "family: man, woman, boy" , "category": "People & Body" , "aliases": [ "family_man_woman_boy" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "👨‍👩‍👧" , "description": "family: man, woman, girl" , "category": "People & Body" , "aliases": [ "family_man_woman_girl" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "👨‍👩‍👧‍👦" , "description": "family: man, woman, girl, boy" , "category": "People & Body" , "aliases": [ "family_man_woman_girl_boy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "👨‍👩‍👦‍👦" , "description": "family: man, woman, boy, boy" , "category": "People & Body" , "aliases": [ "family_man_woman_boy_boy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "👨‍👩‍👧‍👧" , "description": "family: man, woman, girl, girl" , "category": "People & Body" , "aliases": [ "family_man_woman_girl_girl" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "👨‍👨‍👦" , "description": "family: man, man, boy" , "category": "People & Body" , "aliases": [ "family_man_man_boy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "👨‍👨‍👧" , "description": "family: man, man, girl" , "category": "People & Body" , "aliases": [ "family_man_man_girl" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "👨‍👨‍👧‍👦" , "description": "family: man, man, girl, boy" , "category": "People & Body" , "aliases": [ "family_man_man_girl_boy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "👨‍👨‍👦‍👦" , "description": "family: man, man, boy, boy" , "category": "People & Body" , "aliases": [ "family_man_man_boy_boy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "👨‍👨‍👧‍👧" , "description": "family: man, man, girl, girl" , "category": "People & Body" , "aliases": [ "family_man_man_girl_girl" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "👩‍👩‍👦" , "description": "family: woman, woman, boy" , "category": "People & Body" , "aliases": [ "family_woman_woman_boy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "👩‍👩‍👧" , "description": "family: woman, woman, girl" , "category": "People & Body" , "aliases": [ "family_woman_woman_girl" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "👩‍👩‍👧‍👦" , "description": "family: woman, woman, girl, boy" , "category": "People & Body" , "aliases": [ "family_woman_woman_girl_boy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "👩‍👩‍👦‍👦" , "description": "family: woman, woman, boy, boy" , "category": "People & Body" , "aliases": [ "family_woman_woman_boy_boy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "👩‍👩‍👧‍👧" , "description": "family: woman, woman, girl, girl" , "category": "People & Body" , "aliases": [ "family_woman_woman_girl_girl" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "👨‍👦" , "description": "family: man, boy" , "category": "People & Body" , "aliases": [ "family_man_boy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" } , { "emoji": "👨‍👦‍👦" , "description": "family: man, boy, boy" , "category": "People & Body" , "aliases": [ "family_man_boy_boy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" } , { "emoji": "👨‍👧" , "description": "family: man, girl" , "category": "People & Body" , "aliases": [ "family_man_girl" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" } , { "emoji": "👨‍👧‍👦" , "description": "family: man, girl, boy" , "category": "People & Body" , "aliases": [ "family_man_girl_boy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" } , { "emoji": "👨‍👧‍👧" , "description": "family: man, girl, girl" , "category": "People & Body" , "aliases": [ "family_man_girl_girl" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" } , { "emoji": "👩‍👦" , "description": "family: woman, boy" , "category": "People & Body" , "aliases": [ "family_woman_boy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" } , { "emoji": "👩‍👦‍👦" , "description": "family: woman, boy, boy" , "category": "People & Body" , "aliases": [ "family_woman_boy_boy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" } , { "emoji": "👩‍👧" , "description": "family: woman, girl" , "category": "People & Body" , "aliases": [ "family_woman_girl" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" } , { "emoji": "👩‍👧‍👦" , "description": "family: woman, girl, boy" , "category": "People & Body" , "aliases": [ "family_woman_girl_boy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" } , { "emoji": "👩‍👧‍👧" , "description": "family: woman, girl, girl" , "category": "People & Body" , "aliases": [ "family_woman_girl_girl" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "10.0" } , { "emoji": "🗣️" , "description": "speaking head" , "category": "People & Body" , "aliases": [ "speaking_head" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "👤" , "description": "bust in silhouette" , "category": "People & Body" , "aliases": [ "bust_in_silhouette" ] , "tags": [ "user" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👥" , "description": "busts in silhouette" , "category": "People & Body" , "aliases": [ "busts_in_silhouette" ] , "tags": [ "users" , "group" , "team" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🫂" , "description": "people hugging" , "category": "People & Body" , "aliases": [ "people_hugging" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "👣" , "description": "footprints" , "category": "People & Body" , "aliases": [ "footprints" ] , "tags": [ "feet" , "tracks" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐵" , "description": "monkey face" , "category": "Animals & Nature" , "aliases": [ "monkey_face" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐒" , "description": "monkey" , "category": "Animals & Nature" , "aliases": [ "monkey" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🦍" , "description": "gorilla" , "category": "Animals & Nature" , "aliases": [ "gorilla" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🦧" , "description": "orangutan" , "category": "Animals & Nature" , "aliases": [ "orangutan" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🐶" , "description": "dog face" , "category": "Animals & Nature" , "aliases": [ "dog" ] , "tags": [ "pet" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐕" , "description": "dog" , "category": "Animals & Nature" , "aliases": [ "dog2" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🦮" , "description": "guide dog" , "category": "Animals & Nature" , "aliases": [ "guide_dog" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🐕‍🦺" , "description": "service dog" , "category": "Animals & Nature" , "aliases": [ "service_dog" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🐩" , "description": "poodle" , "category": "Animals & Nature" , "aliases": [ "poodle" ] , "tags": [ "dog" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐺" , "description": "wolf" , "category": "Animals & Nature" , "aliases": [ "wolf" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🦊" , "description": "fox" , "category": "Animals & Nature" , "aliases": [ "fox_face" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🦝" , "description": "raccoon" , "category": "Animals & Nature" , "aliases": [ "raccoon" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🐱" , "description": "cat face" , "category": "Animals & Nature" , "aliases": [ "cat" ] , "tags": [ "pet" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐈" , "description": "cat" , "category": "Animals & Nature" , "aliases": [ "cat2" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐈‍⬛" , "description": "black cat" , "category": "Animals & Nature" , "aliases": [ "black_cat" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🦁" , "description": "lion" , "category": "Animals & Nature" , "aliases": [ "lion" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🐯" , "description": "tiger face" , "category": "Animals & Nature" , "aliases": [ "tiger" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐅" , "description": "tiger" , "category": "Animals & Nature" , "aliases": [ "tiger2" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐆" , "description": "leopard" , "category": "Animals & Nature" , "aliases": [ "leopard" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐴" , "description": "horse face" , "category": "Animals & Nature" , "aliases": [ "horse" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐎" , "description": "horse" , "category": "Animals & Nature" , "aliases": [ "racehorse" ] , "tags": [ "speed" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🦄" , "description": "unicorn" , "category": "Animals & Nature" , "aliases": [ "unicorn" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🦓" , "description": "zebra" , "category": "Animals & Nature" , "aliases": [ "zebra" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🦌" , "description": "deer" , "category": "Animals & Nature" , "aliases": [ "deer" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🦬" , "description": "bison" , "category": "Animals & Nature" , "aliases": [ "bison" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🐮" , "description": "cow face" , "category": "Animals & Nature" , "aliases": [ "cow" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐂" , "description": "ox" , "category": "Animals & Nature" , "aliases": [ "ox" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐃" , "description": "water buffalo" , "category": "Animals & Nature" , "aliases": [ "water_buffalo" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐄" , "description": "cow" , "category": "Animals & Nature" , "aliases": [ "cow2" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐷" , "description": "pig face" , "category": "Animals & Nature" , "aliases": [ "pig" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐖" , "description": "pig" , "category": "Animals & Nature" , "aliases": [ "pig2" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐗" , "description": "boar" , "category": "Animals & Nature" , "aliases": [ "boar" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐽" , "description": "pig nose" , "category": "Animals & Nature" , "aliases": [ "pig_nose" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐏" , "description": "ram" , "category": "Animals & Nature" , "aliases": [ "ram" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐑" , "description": "ewe" , "category": "Animals & Nature" , "aliases": [ "sheep" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐐" , "description": "goat" , "category": "Animals & Nature" , "aliases": [ "goat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐪" , "description": "camel" , "category": "Animals & Nature" , "aliases": [ "dromedary_camel" ] , "tags": [ "desert" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐫" , "description": "two-hump camel" , "category": "Animals & Nature" , "aliases": [ "camel" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🦙" , "description": "llama" , "category": "Animals & Nature" , "aliases": [ "llama" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🦒" , "description": "giraffe" , "category": "Animals & Nature" , "aliases": [ "giraffe" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🐘" , "description": "elephant" , "category": "Animals & Nature" , "aliases": [ "elephant" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🦣" , "description": "mammoth" , "category": "Animals & Nature" , "aliases": [ "mammoth" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🦏" , "description": "rhinoceros" , "category": "Animals & Nature" , "aliases": [ "rhinoceros" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🦛" , "description": "hippopotamus" , "category": "Animals & Nature" , "aliases": [ "hippopotamus" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🐭" , "description": "mouse face" , "category": "Animals & Nature" , "aliases": [ "mouse" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐁" , "description": "mouse" , "category": "Animals & Nature" , "aliases": [ "mouse2" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐀" , "description": "rat" , "category": "Animals & Nature" , "aliases": [ "rat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐹" , "description": "hamster" , "category": "Animals & Nature" , "aliases": [ "hamster" ] , "tags": [ "pet" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐰" , "description": "rabbit face" , "category": "Animals & Nature" , "aliases": [ "rabbit" ] , "tags": [ "bunny" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐇" , "description": "rabbit" , "category": "Animals & Nature" , "aliases": [ "rabbit2" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐿️" , "description": "chipmunk" , "category": "Animals & Nature" , "aliases": [ "chipmunk" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🦫" , "description": "beaver" , "category": "Animals & Nature" , "aliases": [ "beaver" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🦔" , "description": "hedgehog" , "category": "Animals & Nature" , "aliases": [ "hedgehog" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🦇" , "description": "bat" , "category": "Animals & Nature" , "aliases": [ "bat" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🐻" , "description": "bear" , "category": "Animals & Nature" , "aliases": [ "bear" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐻‍❄️" , "description": "polar bear" , "category": "Animals & Nature" , "aliases": [ "polar_bear" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🐨" , "description": "koala" , "category": "Animals & Nature" , "aliases": [ "koala" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐼" , "description": "panda" , "category": "Animals & Nature" , "aliases": [ "panda_face" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🦥" , "description": "sloth" , "category": "Animals & Nature" , "aliases": [ "sloth" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🦦" , "description": "otter" , "category": "Animals & Nature" , "aliases": [ "otter" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🦨" , "description": "skunk" , "category": "Animals & Nature" , "aliases": [ "skunk" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🦘" , "description": "kangaroo" , "category": "Animals & Nature" , "aliases": [ "kangaroo" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🦡" , "description": "badger" , "category": "Animals & Nature" , "aliases": [ "badger" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🐾" , "description": "paw prints" , "category": "Animals & Nature" , "aliases": [ "feet" , "paw_prints" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🦃" , "description": "turkey" , "category": "Animals & Nature" , "aliases": [ "turkey" ] , "tags": [ "thanksgiving" ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🐔" , "description": "chicken" , "category": "Animals & Nature" , "aliases": [ "chicken" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐓" , "description": "rooster" , "category": "Animals & Nature" , "aliases": [ "rooster" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐣" , "description": "hatching chick" , "category": "Animals & Nature" , "aliases": [ "hatching_chick" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐤" , "description": "baby chick" , "category": "Animals & Nature" , "aliases": [ "baby_chick" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐥" , "description": "front-facing baby chick" , "category": "Animals & Nature" , "aliases": [ "hatched_chick" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐦" , "description": "bird" , "category": "Animals & Nature" , "aliases": [ "bird" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐧" , "description": "penguin" , "category": "Animals & Nature" , "aliases": [ "penguin" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕊️" , "description": "dove" , "category": "Animals & Nature" , "aliases": [ "dove" ] , "tags": [ "peace" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🦅" , "description": "eagle" , "category": "Animals & Nature" , "aliases": [ "eagle" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🦆" , "description": "duck" , "category": "Animals & Nature" , "aliases": [ "duck" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🦢" , "description": "swan" , "category": "Animals & Nature" , "aliases": [ "swan" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🦉" , "description": "owl" , "category": "Animals & Nature" , "aliases": [ "owl" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🦤" , "description": "dodo" , "category": "Animals & Nature" , "aliases": [ "dodo" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🪶" , "description": "feather" , "category": "Animals & Nature" , "aliases": [ "feather" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🦩" , "description": "flamingo" , "category": "Animals & Nature" , "aliases": [ "flamingo" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🦚" , "description": "peacock" , "category": "Animals & Nature" , "aliases": [ "peacock" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🦜" , "description": "parrot" , "category": "Animals & Nature" , "aliases": [ "parrot" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🐸" , "description": "frog" , "category": "Animals & Nature" , "aliases": [ "frog" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐊" , "description": "crocodile" , "category": "Animals & Nature" , "aliases": [ "crocodile" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐢" , "description": "turtle" , "category": "Animals & Nature" , "aliases": [ "turtle" ] , "tags": [ "slow" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🦎" , "description": "lizard" , "category": "Animals & Nature" , "aliases": [ "lizard" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🐍" , "description": "snake" , "category": "Animals & Nature" , "aliases": [ "snake" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐲" , "description": "dragon face" , "category": "Animals & Nature" , "aliases": [ "dragon_face" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐉" , "description": "dragon" , "category": "Animals & Nature" , "aliases": [ "dragon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🦕" , "description": "sauropod" , "category": "Animals & Nature" , "aliases": [ "sauropod" ] , "tags": [ "dinosaur" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🦖" , "description": "T-Rex" , "category": "Animals & Nature" , "aliases": [ "t-rex" ] , "tags": [ "dinosaur" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🐳" , "description": "spouting whale" , "category": "Animals & Nature" , "aliases": [ "whale" ] , "tags": [ "sea" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐋" , "description": "whale" , "category": "Animals & Nature" , "aliases": [ "whale2" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐬" , "description": "dolphin" , "category": "Animals & Nature" , "aliases": [ "dolphin" , "flipper" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🦭" , "description": "seal" , "category": "Animals & Nature" , "aliases": [ "seal" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🐟" , "description": "fish" , "category": "Animals & Nature" , "aliases": [ "fish" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐠" , "description": "tropical fish" , "category": "Animals & Nature" , "aliases": [ "tropical_fish" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐡" , "description": "blowfish" , "category": "Animals & Nature" , "aliases": [ "blowfish" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🦈" , "description": "shark" , "category": "Animals & Nature" , "aliases": [ "shark" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🐙" , "description": "octopus" , "category": "Animals & Nature" , "aliases": [ "octopus" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐚" , "description": "spiral shell" , "category": "Animals & Nature" , "aliases": [ "shell" ] , "tags": [ "sea" , "beach" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐌" , "description": "snail" , "category": "Animals & Nature" , "aliases": [ "snail" ] , "tags": [ "slow" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🦋" , "description": "butterfly" , "category": "Animals & Nature" , "aliases": [ "butterfly" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🐛" , "description": "bug" , "category": "Animals & Nature" , "aliases": [ "bug" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐜" , "description": "ant" , "category": "Animals & Nature" , "aliases": [ "ant" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🐝" , "description": "honeybee" , "category": "Animals & Nature" , "aliases": [ "bee" , "honeybee" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪲" , "description": "beetle" , "category": "Animals & Nature" , "aliases": [ "beetle" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🐞" , "description": "lady beetle" , "category": "Animals & Nature" , "aliases": [ "lady_beetle" ] , "tags": [ "bug" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🦗" , "description": "cricket" , "category": "Animals & Nature" , "aliases": [ "cricket" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🪳" , "description": "cockroach" , "category": "Animals & Nature" , "aliases": [ "cockroach" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🕷️" , "description": "spider" , "category": "Animals & Nature" , "aliases": [ "spider" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🕸️" , "description": "spider web" , "category": "Animals & Nature" , "aliases": [ "spider_web" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🦂" , "description": "scorpion" , "category": "Animals & Nature" , "aliases": [ "scorpion" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🦟" , "description": "mosquito" , "category": "Animals & Nature" , "aliases": [ "mosquito" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🪰" , "description": "fly" , "category": "Animals & Nature" , "aliases": [ "fly" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🪱" , "description": "worm" , "category": "Animals & Nature" , "aliases": [ "worm" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🦠" , "description": "microbe" , "category": "Animals & Nature" , "aliases": [ "microbe" ] , "tags": [ "germ" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "💐" , "description": "bouquet" , "category": "Animals & Nature" , "aliases": [ "bouquet" ] , "tags": [ "flowers" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌸" , "description": "cherry blossom" , "category": "Animals & Nature" , "aliases": [ "cherry_blossom" ] , "tags": [ "flower" , "spring" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💮" , "description": "white flower" , "category": "Animals & Nature" , "aliases": [ "white_flower" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏵️" , "description": "rosette" , "category": "Animals & Nature" , "aliases": [ "rosette" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🌹" , "description": "rose" , "category": "Animals & Nature" , "aliases": [ "rose" ] , "tags": [ "flower" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥀" , "description": "wilted flower" , "category": "Animals & Nature" , "aliases": [ "wilted_flower" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🌺" , "description": "hibiscus" , "category": "Animals & Nature" , "aliases": [ "hibiscus" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌻" , "description": "sunflower" , "category": "Animals & Nature" , "aliases": [ "sunflower" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌼" , "description": "blossom" , "category": "Animals & Nature" , "aliases": [ "blossom" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌷" , "description": "tulip" , "category": "Animals & Nature" , "aliases": [ "tulip" ] , "tags": [ "flower" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌱" , "description": "seedling" , "category": "Animals & Nature" , "aliases": [ "seedling" ] , "tags": [ "plant" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪴" , "description": "potted plant" , "category": "Animals & Nature" , "aliases": [ "potted_plant" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🌲" , "description": "evergreen tree" , "category": "Animals & Nature" , "aliases": [ "evergreen_tree" ] , "tags": [ "wood" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌳" , "description": "deciduous tree" , "category": "Animals & Nature" , "aliases": [ "deciduous_tree" ] , "tags": [ "wood" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌴" , "description": "palm tree" , "category": "Animals & Nature" , "aliases": [ "palm_tree" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌵" , "description": "cactus" , "category": "Animals & Nature" , "aliases": [ "cactus" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌾" , "description": "sheaf of rice" , "category": "Animals & Nature" , "aliases": [ "ear_of_rice" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌿" , "description": "herb" , "category": "Animals & Nature" , "aliases": [ "herb" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "☘️" , "description": "shamrock" , "category": "Animals & Nature" , "aliases": [ "shamrock" ] , "tags": [ ] , "unicode_version": "4.1" , "ios_version": "9.1" } , { "emoji": "🍀" , "description": "four leaf clover" , "category": "Animals & Nature" , "aliases": [ "four_leaf_clover" ] , "tags": [ "luck" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍁" , "description": "maple leaf" , "category": "Animals & Nature" , "aliases": [ "maple_leaf" ] , "tags": [ "canada" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍂" , "description": "fallen leaf" , "category": "Animals & Nature" , "aliases": [ "fallen_leaf" ] , "tags": [ "autumn" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍃" , "description": "leaf fluttering in wind" , "category": "Animals & Nature" , "aliases": [ "leaves" ] , "tags": [ "leaf" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍇" , "description": "grapes" , "category": "Food & Drink" , "aliases": [ "grapes" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍈" , "description": "melon" , "category": "Food & Drink" , "aliases": [ "melon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍉" , "description": "watermelon" , "category": "Food & Drink" , "aliases": [ "watermelon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍊" , "description": "tangerine" , "category": "Food & Drink" , "aliases": [ "tangerine" , "orange" , "mandarin" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍋" , "description": "lemon" , "category": "Food & Drink" , "aliases": [ "lemon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍌" , "description": "banana" , "category": "Food & Drink" , "aliases": [ "banana" ] , "tags": [ "fruit" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍍" , "description": "pineapple" , "category": "Food & Drink" , "aliases": [ "pineapple" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥭" , "description": "mango" , "category": "Food & Drink" , "aliases": [ "mango" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🍎" , "description": "red apple" , "category": "Food & Drink" , "aliases": [ "apple" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍏" , "description": "green apple" , "category": "Food & Drink" , "aliases": [ "green_apple" ] , "tags": [ "fruit" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍐" , "description": "pear" , "category": "Food & Drink" , "aliases": [ "pear" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍑" , "description": "peach" , "category": "Food & Drink" , "aliases": [ "peach" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍒" , "description": "cherries" , "category": "Food & Drink" , "aliases": [ "cherries" ] , "tags": [ "fruit" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍓" , "description": "strawberry" , "category": "Food & Drink" , "aliases": [ "strawberry" ] , "tags": [ "fruit" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🫐" , "description": "blueberries" , "category": "Food & Drink" , "aliases": [ "blueberries" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🥝" , "description": "kiwi fruit" , "category": "Food & Drink" , "aliases": [ "kiwi_fruit" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🍅" , "description": "tomato" , "category": "Food & Drink" , "aliases": [ "tomato" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🫒" , "description": "olive" , "category": "Food & Drink" , "aliases": [ "olive" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🥥" , "description": "coconut" , "category": "Food & Drink" , "aliases": [ "coconut" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥑" , "description": "avocado" , "category": "Food & Drink" , "aliases": [ "avocado" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🍆" , "description": "eggplant" , "category": "Food & Drink" , "aliases": [ "eggplant" ] , "tags": [ "aubergine" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥔" , "description": "potato" , "category": "Food & Drink" , "aliases": [ "potato" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🥕" , "description": "carrot" , "category": "Food & Drink" , "aliases": [ "carrot" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🌽" , "description": "ear of corn" , "category": "Food & Drink" , "aliases": [ "corn" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌶️" , "description": "hot pepper" , "category": "Food & Drink" , "aliases": [ "hot_pepper" ] , "tags": [ "spicy" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🫑" , "description": "bell pepper" , "category": "Food & Drink" , "aliases": [ "bell_pepper" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🥒" , "description": "cucumber" , "category": "Food & Drink" , "aliases": [ "cucumber" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🥬" , "description": "leafy green" , "category": "Food & Drink" , "aliases": [ "leafy_green" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥦" , "description": "broccoli" , "category": "Food & Drink" , "aliases": [ "broccoli" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧄" , "description": "garlic" , "category": "Food & Drink" , "aliases": [ "garlic" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🧅" , "description": "onion" , "category": "Food & Drink" , "aliases": [ "onion" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🍄" , "description": "mushroom" , "category": "Food & Drink" , "aliases": [ "mushroom" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥜" , "description": "peanuts" , "category": "Food & Drink" , "aliases": [ "peanuts" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🌰" , "description": "chestnut" , "category": "Food & Drink" , "aliases": [ "chestnut" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍞" , "description": "bread" , "category": "Food & Drink" , "aliases": [ "bread" ] , "tags": [ "toast" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥐" , "description": "croissant" , "category": "Food & Drink" , "aliases": [ "croissant" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🥖" , "description": "baguette bread" , "category": "Food & Drink" , "aliases": [ "baguette_bread" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🫓" , "description": "flatbread" , "category": "Food & Drink" , "aliases": [ "flatbread" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🥨" , "description": "pretzel" , "category": "Food & Drink" , "aliases": [ "pretzel" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥯" , "description": "bagel" , "category": "Food & Drink" , "aliases": [ "bagel" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥞" , "description": "pancakes" , "category": "Food & Drink" , "aliases": [ "pancakes" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🧇" , "description": "waffle" , "category": "Food & Drink" , "aliases": [ "waffle" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🧀" , "description": "cheese wedge" , "category": "Food & Drink" , "aliases": [ "cheese" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🍖" , "description": "meat on bone" , "category": "Food & Drink" , "aliases": [ "meat_on_bone" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍗" , "description": "poultry leg" , "category": "Food & Drink" , "aliases": [ "poultry_leg" ] , "tags": [ "meat" , "chicken" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥩" , "description": "cut of meat" , "category": "Food & Drink" , "aliases": [ "cut_of_meat" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥓" , "description": "bacon" , "category": "Food & Drink" , "aliases": [ "bacon" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🍔" , "description": "hamburger" , "category": "Food & Drink" , "aliases": [ "hamburger" ] , "tags": [ "burger" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍟" , "description": "french fries" , "category": "Food & Drink" , "aliases": [ "fries" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍕" , "description": "pizza" , "category": "Food & Drink" , "aliases": [ "pizza" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌭" , "description": "hot dog" , "category": "Food & Drink" , "aliases": [ "hotdog" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🥪" , "description": "sandwich" , "category": "Food & Drink" , "aliases": [ "sandwich" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🌮" , "description": "taco" , "category": "Food & Drink" , "aliases": [ "taco" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🌯" , "description": "burrito" , "category": "Food & Drink" , "aliases": [ "burrito" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🫔" , "description": "tamale" , "category": "Food & Drink" , "aliases": [ "tamale" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🥙" , "description": "stuffed flatbread" , "category": "Food & Drink" , "aliases": [ "stuffed_flatbread" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🧆" , "description": "falafel" , "category": "Food & Drink" , "aliases": [ "falafel" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🥚" , "description": "egg" , "category": "Food & Drink" , "aliases": [ "egg" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🍳" , "description": "cooking" , "category": "Food & Drink" , "aliases": [ "fried_egg" ] , "tags": [ "breakfast" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥘" , "description": "shallow pan of food" , "category": "Food & Drink" , "aliases": [ "shallow_pan_of_food" ] , "tags": [ "paella" , "curry" ] , "unicode_version": "" , "ios_version": "10.2" } , { "emoji": "🍲" , "description": "pot of food" , "category": "Food & Drink" , "aliases": [ "stew" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🫕" , "description": "fondue" , "category": "Food & Drink" , "aliases": [ "fondue" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🥣" , "description": "bowl with spoon" , "category": "Food & Drink" , "aliases": [ "bowl_with_spoon" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥗" , "description": "green salad" , "category": "Food & Drink" , "aliases": [ "green_salad" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🍿" , "description": "popcorn" , "category": "Food & Drink" , "aliases": [ "popcorn" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🧈" , "description": "butter" , "category": "Food & Drink" , "aliases": [ "butter" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🧂" , "description": "salt" , "category": "Food & Drink" , "aliases": [ "salt" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥫" , "description": "canned food" , "category": "Food & Drink" , "aliases": [ "canned_food" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🍱" , "description": "bento box" , "category": "Food & Drink" , "aliases": [ "bento" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍘" , "description": "rice cracker" , "category": "Food & Drink" , "aliases": [ "rice_cracker" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍙" , "description": "rice ball" , "category": "Food & Drink" , "aliases": [ "rice_ball" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍚" , "description": "cooked rice" , "category": "Food & Drink" , "aliases": [ "rice" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍛" , "description": "curry rice" , "category": "Food & Drink" , "aliases": [ "curry" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍜" , "description": "steaming bowl" , "category": "Food & Drink" , "aliases": [ "ramen" ] , "tags": [ "noodle" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍝" , "description": "spaghetti" , "category": "Food & Drink" , "aliases": [ "spaghetti" ] , "tags": [ "pasta" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍠" , "description": "roasted sweet potato" , "category": "Food & Drink" , "aliases": [ "sweet_potato" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍢" , "description": "oden" , "category": "Food & Drink" , "aliases": [ "oden" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍣" , "description": "sushi" , "category": "Food & Drink" , "aliases": [ "sushi" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍤" , "description": "fried shrimp" , "category": "Food & Drink" , "aliases": [ "fried_shrimp" ] , "tags": [ "tempura" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍥" , "description": "fish cake with swirl" , "category": "Food & Drink" , "aliases": [ "fish_cake" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥮" , "description": "moon cake" , "category": "Food & Drink" , "aliases": [ "moon_cake" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🍡" , "description": "dango" , "category": "Food & Drink" , "aliases": [ "dango" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥟" , "description": "dumpling" , "category": "Food & Drink" , "aliases": [ "dumpling" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥠" , "description": "fortune cookie" , "category": "Food & Drink" , "aliases": [ "fortune_cookie" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥡" , "description": "takeout box" , "category": "Food & Drink" , "aliases": [ "takeout_box" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🦀" , "description": "crab" , "category": "Food & Drink" , "aliases": [ "crab" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🦞" , "description": "lobster" , "category": "Food & Drink" , "aliases": [ "lobster" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🦐" , "description": "shrimp" , "category": "Food & Drink" , "aliases": [ "shrimp" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🦑" , "description": "squid" , "category": "Food & Drink" , "aliases": [ "squid" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🦪" , "description": "oyster" , "category": "Food & Drink" , "aliases": [ "oyster" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🍦" , "description": "soft ice cream" , "category": "Food & Drink" , "aliases": [ "icecream" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍧" , "description": "shaved ice" , "category": "Food & Drink" , "aliases": [ "shaved_ice" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍨" , "description": "ice cream" , "category": "Food & Drink" , "aliases": [ "ice_cream" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍩" , "description": "doughnut" , "category": "Food & Drink" , "aliases": [ "doughnut" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍪" , "description": "cookie" , "category": "Food & Drink" , "aliases": [ "cookie" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎂" , "description": "birthday cake" , "category": "Food & Drink" , "aliases": [ "birthday" ] , "tags": [ "party" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍰" , "description": "shortcake" , "category": "Food & Drink" , "aliases": [ "cake" ] , "tags": [ "dessert" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🧁" , "description": "cupcake" , "category": "Food & Drink" , "aliases": [ "cupcake" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥧" , "description": "pie" , "category": "Food & Drink" , "aliases": [ "pie" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🍫" , "description": "chocolate bar" , "category": "Food & Drink" , "aliases": [ "chocolate_bar" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍬" , "description": "candy" , "category": "Food & Drink" , "aliases": [ "candy" ] , "tags": [ "sweet" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍭" , "description": "lollipop" , "category": "Food & Drink" , "aliases": [ "lollipop" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍮" , "description": "custard" , "category": "Food & Drink" , "aliases": [ "custard" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍯" , "description": "honey pot" , "category": "Food & Drink" , "aliases": [ "honey_pot" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍼" , "description": "baby bottle" , "category": "Food & Drink" , "aliases": [ "baby_bottle" ] , "tags": [ "milk" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥛" , "description": "glass of milk" , "category": "Food & Drink" , "aliases": [ "milk_glass" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "☕" , "description": "hot beverage" , "category": "Food & Drink" , "aliases": [ "coffee" ] , "tags": [ "cafe" , "espresso" ] , "unicode_version": "4.0" , "ios_version": "6.0" } , { "emoji": "🫖" , "description": "teapot" , "category": "Food & Drink" , "aliases": [ "teapot" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🍵" , "description": "teacup without handle" , "category": "Food & Drink" , "aliases": [ "tea" ] , "tags": [ "green" , "breakfast" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍶" , "description": "sake" , "category": "Food & Drink" , "aliases": [ "sake" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍾" , "description": "bottle with popping cork" , "category": "Food & Drink" , "aliases": [ "champagne" ] , "tags": [ "bottle" , "bubbly" , "celebration" ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🍷" , "description": "wine glass" , "category": "Food & Drink" , "aliases": [ "wine_glass" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍸" , "description": "cocktail glass" , "category": "Food & Drink" , "aliases": [ "cocktail" ] , "tags": [ "drink" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍹" , "description": "tropical drink" , "category": "Food & Drink" , "aliases": [ "tropical_drink" ] , "tags": [ "summer" , "vacation" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍺" , "description": "beer mug" , "category": "Food & Drink" , "aliases": [ "beer" ] , "tags": [ "drink" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🍻" , "description": "clinking beer mugs" , "category": "Food & Drink" , "aliases": [ "beers" ] , "tags": [ "drinks" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥂" , "description": "clinking glasses" , "category": "Food & Drink" , "aliases": [ "clinking_glasses" ] , "tags": [ "cheers" , "toast" ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🥃" , "description": "tumbler glass" , "category": "Food & Drink" , "aliases": [ "tumbler_glass" ] , "tags": [ "whisky" ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🥤" , "description": "cup with straw" , "category": "Food & Drink" , "aliases": [ "cup_with_straw" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧋" , "description": "bubble tea" , "category": "Food & Drink" , "aliases": [ "bubble_tea" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🧃" , "description": "beverage box" , "category": "Food & Drink" , "aliases": [ "beverage_box" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🧉" , "description": "mate" , "category": "Food & Drink" , "aliases": [ "mate" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🧊" , "description": "ice" , "category": "Food & Drink" , "aliases": [ "ice_cube" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🥢" , "description": "chopsticks" , "category": "Food & Drink" , "aliases": [ "chopsticks" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🍽️" , "description": "fork and knife with plate" , "category": "Food & Drink" , "aliases": [ "plate_with_cutlery" ] , "tags": [ "dining" , "dinner" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🍴" , "description": "fork and knife" , "category": "Food & Drink" , "aliases": [ "fork_and_knife" ] , "tags": [ "cutlery" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥄" , "description": "spoon" , "category": "Food & Drink" , "aliases": [ "spoon" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🔪" , "description": "kitchen knife" , "category": "Food & Drink" , "aliases": [ "hocho" , "knife" ] , "tags": [ "cut" , "chop" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏺" , "description": "amphora" , "category": "Food & Drink" , "aliases": [ "amphora" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🌍" , "description": "globe showing Europe-Africa" , "category": "Travel & Places" , "aliases": [ "earth_africa" ] , "tags": [ "globe" , "world" , "international" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌎" , "description": "globe showing Americas" , "category": "Travel & Places" , "aliases": [ "earth_americas" ] , "tags": [ "globe" , "world" , "international" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌏" , "description": "globe showing Asia-Australia" , "category": "Travel & Places" , "aliases": [ "earth_asia" ] , "tags": [ "globe" , "world" , "international" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌐" , "description": "globe with meridians" , "category": "Travel & Places" , "aliases": [ "globe_with_meridians" ] , "tags": [ "world" , "global" , "international" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🗺️" , "description": "world map" , "category": "Travel & Places" , "aliases": [ "world_map" ] , "tags": [ "travel" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🗾" , "description": "map of Japan" , "category": "Travel & Places" , "aliases": [ "japan" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🧭" , "description": "compass" , "category": "Travel & Places" , "aliases": [ "compass" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🏔️" , "description": "snow-capped mountain" , "category": "Travel & Places" , "aliases": [ "mountain_snow" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "⛰️" , "description": "mountain" , "category": "Travel & Places" , "aliases": [ "mountain" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "9.1" } , { "emoji": "🌋" , "description": "volcano" , "category": "Travel & Places" , "aliases": [ "volcano" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🗻" , "description": "mount fuji" , "category": "Travel & Places" , "aliases": [ "mount_fuji" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏕️" , "description": "camping" , "category": "Travel & Places" , "aliases": [ "camping" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🏖️" , "description": "beach with umbrella" , "category": "Travel & Places" , "aliases": [ "beach_umbrella" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🏜️" , "description": "desert" , "category": "Travel & Places" , "aliases": [ "desert" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🏝️" , "description": "desert island" , "category": "Travel & Places" , "aliases": [ "desert_island" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🏞️" , "description": "national park" , "category": "Travel & Places" , "aliases": [ "national_park" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🏟️" , "description": "stadium" , "category": "Travel & Places" , "aliases": [ "stadium" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🏛️" , "description": "classical building" , "category": "Travel & Places" , "aliases": [ "classical_building" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🏗️" , "description": "building construction" , "category": "Travel & Places" , "aliases": [ "building_construction" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🧱" , "description": "brick" , "category": "Travel & Places" , "aliases": [ "bricks" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🪨" , "description": "rock" , "category": "Travel & Places" , "aliases": [ "rock" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🪵" , "description": "wood" , "category": "Travel & Places" , "aliases": [ "wood" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🛖" , "description": "hut" , "category": "Travel & Places" , "aliases": [ "hut" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🏘️" , "description": "houses" , "category": "Travel & Places" , "aliases": [ "houses" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🏚️" , "description": "derelict house" , "category": "Travel & Places" , "aliases": [ "derelict_house" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🏠" , "description": "house" , "category": "Travel & Places" , "aliases": [ "house" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏡" , "description": "house with garden" , "category": "Travel & Places" , "aliases": [ "house_with_garden" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏢" , "description": "office building" , "category": "Travel & Places" , "aliases": [ "office" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏣" , "description": "Japanese post office" , "category": "Travel & Places" , "aliases": [ "post_office" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏤" , "description": "post office" , "category": "Travel & Places" , "aliases": [ "european_post_office" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏥" , "description": "hospital" , "category": "Travel & Places" , "aliases": [ "hospital" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏦" , "description": "bank" , "category": "Travel & Places" , "aliases": [ "bank" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏨" , "description": "hotel" , "category": "Travel & Places" , "aliases": [ "hotel" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏩" , "description": "love hotel" , "category": "Travel & Places" , "aliases": [ "love_hotel" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏪" , "description": "convenience store" , "category": "Travel & Places" , "aliases": [ "convenience_store" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏫" , "description": "school" , "category": "Travel & Places" , "aliases": [ "school" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏬" , "description": "department store" , "category": "Travel & Places" , "aliases": [ "department_store" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏭" , "description": "factory" , "category": "Travel & Places" , "aliases": [ "factory" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏯" , "description": "Japanese castle" , "category": "Travel & Places" , "aliases": [ "japanese_castle" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏰" , "description": "castle" , "category": "Travel & Places" , "aliases": [ "european_castle" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💒" , "description": "wedding" , "category": "Travel & Places" , "aliases": [ "wedding" ] , "tags": [ "marriage" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🗼" , "description": "Tokyo tower" , "category": "Travel & Places" , "aliases": [ "tokyo_tower" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🗽" , "description": "Statue of Liberty" , "category": "Travel & Places" , "aliases": [ "statue_of_liberty" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⛪" , "description": "church" , "category": "Travel & Places" , "aliases": [ "church" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "6.0" } , { "emoji": "🕌" , "description": "mosque" , "category": "Travel & Places" , "aliases": [ "mosque" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🛕" , "description": "hindu temple" , "category": "Travel & Places" , "aliases": [ "hindu_temple" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🕍" , "description": "synagogue" , "category": "Travel & Places" , "aliases": [ "synagogue" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "⛩️" , "description": "shinto shrine" , "category": "Travel & Places" , "aliases": [ "shinto_shrine" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "9.1" } , { "emoji": "🕋" , "description": "kaaba" , "category": "Travel & Places" , "aliases": [ "kaaba" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "⛲" , "description": "fountain" , "category": "Travel & Places" , "aliases": [ "fountain" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "6.0" } , { "emoji": "⛺" , "description": "tent" , "category": "Travel & Places" , "aliases": [ "tent" ] , "tags": [ "camping" ] , "unicode_version": "5.2" , "ios_version": "6.0" } , { "emoji": "🌁" , "description": "foggy" , "category": "Travel & Places" , "aliases": [ "foggy" ] , "tags": [ "karl" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌃" , "description": "night with stars" , "category": "Travel & Places" , "aliases": [ "night_with_stars" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏙️" , "description": "cityscape" , "category": "Travel & Places" , "aliases": [ "cityscape" ] , "tags": [ "skyline" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🌄" , "description": "sunrise over mountains" , "category": "Travel & Places" , "aliases": [ "sunrise_over_mountains" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌅" , "description": "sunrise" , "category": "Travel & Places" , "aliases": [ "sunrise" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌆" , "description": "cityscape at dusk" , "category": "Travel & Places" , "aliases": [ "city_sunset" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌇" , "description": "sunset" , "category": "Travel & Places" , "aliases": [ "city_sunrise" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌉" , "description": "bridge at night" , "category": "Travel & Places" , "aliases": [ "bridge_at_night" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "♨️" , "description": "hot springs" , "category": "Travel & Places" , "aliases": [ "hotsprings" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "🎠" , "description": "carousel horse" , "category": "Travel & Places" , "aliases": [ "carousel_horse" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎡" , "description": "ferris wheel" , "category": "Travel & Places" , "aliases": [ "ferris_wheel" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎢" , "description": "roller coaster" , "category": "Travel & Places" , "aliases": [ "roller_coaster" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💈" , "description": "barber pole" , "category": "Travel & Places" , "aliases": [ "barber" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎪" , "description": "circus tent" , "category": "Travel & Places" , "aliases": [ "circus_tent" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚂" , "description": "locomotive" , "category": "Travel & Places" , "aliases": [ "steam_locomotive" ] , "tags": [ "train" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚃" , "description": "railway car" , "category": "Travel & Places" , "aliases": [ "railway_car" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚄" , "description": "high-speed train" , "category": "Travel & Places" , "aliases": [ "bullettrain_side" ] , "tags": [ "train" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚅" , "description": "bullet train" , "category": "Travel & Places" , "aliases": [ "bullettrain_front" ] , "tags": [ "train" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚆" , "description": "train" , "category": "Travel & Places" , "aliases": [ "train2" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚇" , "description": "metro" , "category": "Travel & Places" , "aliases": [ "metro" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚈" , "description": "light rail" , "category": "Travel & Places" , "aliases": [ "light_rail" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚉" , "description": "station" , "category": "Travel & Places" , "aliases": [ "station" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚊" , "description": "tram" , "category": "Travel & Places" , "aliases": [ "tram" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚝" , "description": "monorail" , "category": "Travel & Places" , "aliases": [ "monorail" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚞" , "description": "mountain railway" , "category": "Travel & Places" , "aliases": [ "mountain_railway" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚋" , "description": "tram car" , "category": "Travel & Places" , "aliases": [ "train" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚌" , "description": "bus" , "category": "Travel & Places" , "aliases": [ "bus" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚍" , "description": "oncoming bus" , "category": "Travel & Places" , "aliases": [ "oncoming_bus" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚎" , "description": "trolleybus" , "category": "Travel & Places" , "aliases": [ "trolleybus" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚐" , "description": "minibus" , "category": "Travel & Places" , "aliases": [ "minibus" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚑" , "description": "ambulance" , "category": "Travel & Places" , "aliases": [ "ambulance" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚒" , "description": "fire engine" , "category": "Travel & Places" , "aliases": [ "fire_engine" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚓" , "description": "police car" , "category": "Travel & Places" , "aliases": [ "police_car" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚔" , "description": "oncoming police car" , "category": "Travel & Places" , "aliases": [ "oncoming_police_car" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚕" , "description": "taxi" , "category": "Travel & Places" , "aliases": [ "taxi" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚖" , "description": "oncoming taxi" , "category": "Travel & Places" , "aliases": [ "oncoming_taxi" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚗" , "description": "automobile" , "category": "Travel & Places" , "aliases": [ "car" , "red_car" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚘" , "description": "oncoming automobile" , "category": "Travel & Places" , "aliases": [ "oncoming_automobile" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚙" , "description": "sport utility vehicle" , "category": "Travel & Places" , "aliases": [ "blue_car" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛻" , "description": "pickup truck" , "category": "Travel & Places" , "aliases": [ "pickup_truck" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🚚" , "description": "delivery truck" , "category": "Travel & Places" , "aliases": [ "truck" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚛" , "description": "articulated lorry" , "category": "Travel & Places" , "aliases": [ "articulated_lorry" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚜" , "description": "tractor" , "category": "Travel & Places" , "aliases": [ "tractor" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏎️" , "description": "racing car" , "category": "Travel & Places" , "aliases": [ "racing_car" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🏍️" , "description": "motorcycle" , "category": "Travel & Places" , "aliases": [ "motorcycle" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🛵" , "description": "motor scooter" , "category": "Travel & Places" , "aliases": [ "motor_scooter" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🦽" , "description": "manual wheelchair" , "category": "Travel & Places" , "aliases": [ "manual_wheelchair" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🦼" , "description": "motorized wheelchair" , "category": "Travel & Places" , "aliases": [ "motorized_wheelchair" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🛺" , "description": "auto rickshaw" , "category": "Travel & Places" , "aliases": [ "auto_rickshaw" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🚲" , "description": "bicycle" , "category": "Travel & Places" , "aliases": [ "bike" ] , "tags": [ "bicycle" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛴" , "description": "kick scooter" , "category": "Travel & Places" , "aliases": [ "kick_scooter" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🛹" , "description": "skateboard" , "category": "Travel & Places" , "aliases": [ "skateboard" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🛼" , "description": "roller skate" , "category": "Travel & Places" , "aliases": [ "roller_skate" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🚏" , "description": "bus stop" , "category": "Travel & Places" , "aliases": [ "busstop" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛣️" , "description": "motorway" , "category": "Travel & Places" , "aliases": [ "motorway" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🛤️" , "description": "railway track" , "category": "Travel & Places" , "aliases": [ "railway_track" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🛢️" , "description": "oil drum" , "category": "Travel & Places" , "aliases": [ "oil_drum" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "⛽" , "description": "fuel pump" , "category": "Travel & Places" , "aliases": [ "fuelpump" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "6.0" } , { "emoji": "🚨" , "description": "police car light" , "category": "Travel & Places" , "aliases": [ "rotating_light" ] , "tags": [ "911" , "emergency" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚥" , "description": "horizontal traffic light" , "category": "Travel & Places" , "aliases": [ "traffic_light" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚦" , "description": "vertical traffic light" , "category": "Travel & Places" , "aliases": [ "vertical_traffic_light" ] , "tags": [ "semaphore" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛑" , "description": "stop sign" , "category": "Travel & Places" , "aliases": [ "stop_sign" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🚧" , "description": "construction" , "category": "Travel & Places" , "aliases": [ "construction" ] , "tags": [ "wip" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⚓" , "description": "anchor" , "category": "Travel & Places" , "aliases": [ "anchor" ] , "tags": [ "ship" ] , "unicode_version": "4.1" , "ios_version": "6.0" } , { "emoji": "⛵" , "description": "sailboat" , "category": "Travel & Places" , "aliases": [ "boat" , "sailboat" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "6.0" } , { "emoji": "🛶" , "description": "canoe" , "category": "Travel & Places" , "aliases": [ "canoe" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🚤" , "description": "speedboat" , "category": "Travel & Places" , "aliases": [ "speedboat" ] , "tags": [ "ship" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛳️" , "description": "passenger ship" , "category": "Travel & Places" , "aliases": [ "passenger_ship" ] , "tags": [ "cruise" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "⛴️" , "description": "ferry" , "category": "Travel & Places" , "aliases": [ "ferry" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "9.1" } , { "emoji": "🛥️" , "description": "motor boat" , "category": "Travel & Places" , "aliases": [ "motor_boat" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🚢" , "description": "ship" , "category": "Travel & Places" , "aliases": [ "ship" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "✈️" , "description": "airplane" , "category": "Travel & Places" , "aliases": [ "airplane" ] , "tags": [ "flight" ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "🛩️" , "description": "small airplane" , "category": "Travel & Places" , "aliases": [ "small_airplane" ] , "tags": [ "flight" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🛫" , "description": "airplane departure" , "category": "Travel & Places" , "aliases": [ "flight_departure" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🛬" , "description": "airplane arrival" , "category": "Travel & Places" , "aliases": [ "flight_arrival" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🪂" , "description": "parachute" , "category": "Travel & Places" , "aliases": [ "parachute" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "💺" , "description": "seat" , "category": "Travel & Places" , "aliases": [ "seat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚁" , "description": "helicopter" , "category": "Travel & Places" , "aliases": [ "helicopter" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚟" , "description": "suspension railway" , "category": "Travel & Places" , "aliases": [ "suspension_railway" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚠" , "description": "mountain cableway" , "category": "Travel & Places" , "aliases": [ "mountain_cableway" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚡" , "description": "aerial tramway" , "category": "Travel & Places" , "aliases": [ "aerial_tramway" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛰️" , "description": "satellite" , "category": "Travel & Places" , "aliases": [ "artificial_satellite" ] , "tags": [ "orbit" , "space" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🚀" , "description": "rocket" , "category": "Travel & Places" , "aliases": [ "rocket" ] , "tags": [ "ship" , "launch" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛸" , "description": "flying saucer" , "category": "Travel & Places" , "aliases": [ "flying_saucer" ] , "tags": [ "ufo" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🛎️" , "description": "bellhop bell" , "category": "Travel & Places" , "aliases": [ "bellhop_bell" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🧳" , "description": "luggage" , "category": "Travel & Places" , "aliases": [ "luggage" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "⌛" , "description": "hourglass done" , "category": "Travel & Places" , "aliases": [ "hourglass" ] , "tags": [ "time" ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "⏳" , "description": "hourglass not done" , "category": "Travel & Places" , "aliases": [ "hourglass_flowing_sand" ] , "tags": [ "time" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⌚" , "description": "watch" , "category": "Travel & Places" , "aliases": [ "watch" ] , "tags": [ "time" ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "⏰" , "description": "alarm clock" , "category": "Travel & Places" , "aliases": [ "alarm_clock" ] , "tags": [ "morning" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⏱️" , "description": "stopwatch" , "category": "Travel & Places" , "aliases": [ "stopwatch" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.1" } , { "emoji": "⏲️" , "description": "timer clock" , "category": "Travel & Places" , "aliases": [ "timer_clock" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.1" } , { "emoji": "🕰️" , "description": "mantelpiece clock" , "category": "Travel & Places" , "aliases": [ "mantelpiece_clock" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🕛" , "description": "twelve o’clock" , "category": "Travel & Places" , "aliases": [ "clock12" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕧" , "description": "twelve-thirty" , "category": "Travel & Places" , "aliases": [ "clock1230" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕐" , "description": "one o’clock" , "category": "Travel & Places" , "aliases": [ "clock1" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕜" , "description": "one-thirty" , "category": "Travel & Places" , "aliases": [ "clock130" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕑" , "description": "two o’clock" , "category": "Travel & Places" , "aliases": [ "clock2" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕝" , "description": "two-thirty" , "category": "Travel & Places" , "aliases": [ "clock230" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕒" , "description": "three o’clock" , "category": "Travel & Places" , "aliases": [ "clock3" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕞" , "description": "three-thirty" , "category": "Travel & Places" , "aliases": [ "clock330" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕓" , "description": "four o’clock" , "category": "Travel & Places" , "aliases": [ "clock4" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕟" , "description": "four-thirty" , "category": "Travel & Places" , "aliases": [ "clock430" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕔" , "description": "five o’clock" , "category": "Travel & Places" , "aliases": [ "clock5" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕠" , "description": "five-thirty" , "category": "Travel & Places" , "aliases": [ "clock530" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕕" , "description": "six o’clock" , "category": "Travel & Places" , "aliases": [ "clock6" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕡" , "description": "six-thirty" , "category": "Travel & Places" , "aliases": [ "clock630" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕖" , "description": "seven o’clock" , "category": "Travel & Places" , "aliases": [ "clock7" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕢" , "description": "seven-thirty" , "category": "Travel & Places" , "aliases": [ "clock730" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕗" , "description": "eight o’clock" , "category": "Travel & Places" , "aliases": [ "clock8" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕣" , "description": "eight-thirty" , "category": "Travel & Places" , "aliases": [ "clock830" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕘" , "description": "nine o’clock" , "category": "Travel & Places" , "aliases": [ "clock9" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕤" , "description": "nine-thirty" , "category": "Travel & Places" , "aliases": [ "clock930" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕙" , "description": "ten o’clock" , "category": "Travel & Places" , "aliases": [ "clock10" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕥" , "description": "ten-thirty" , "category": "Travel & Places" , "aliases": [ "clock1030" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕚" , "description": "eleven o’clock" , "category": "Travel & Places" , "aliases": [ "clock11" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕦" , "description": "eleven-thirty" , "category": "Travel & Places" , "aliases": [ "clock1130" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌑" , "description": "new moon" , "category": "Travel & Places" , "aliases": [ "new_moon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌒" , "description": "waxing crescent moon" , "category": "Travel & Places" , "aliases": [ "waxing_crescent_moon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌓" , "description": "first quarter moon" , "category": "Travel & Places" , "aliases": [ "first_quarter_moon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌔" , "description": "waxing gibbous moon" , "category": "Travel & Places" , "aliases": [ "moon" , "waxing_gibbous_moon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌕" , "description": "full moon" , "category": "Travel & Places" , "aliases": [ "full_moon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌖" , "description": "waning gibbous moon" , "category": "Travel & Places" , "aliases": [ "waning_gibbous_moon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌗" , "description": "last quarter moon" , "category": "Travel & Places" , "aliases": [ "last_quarter_moon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌘" , "description": "waning crescent moon" , "category": "Travel & Places" , "aliases": [ "waning_crescent_moon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌙" , "description": "crescent moon" , "category": "Travel & Places" , "aliases": [ "crescent_moon" ] , "tags": [ "night" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌚" , "description": "new moon face" , "category": "Travel & Places" , "aliases": [ "new_moon_with_face" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌛" , "description": "first quarter moon face" , "category": "Travel & Places" , "aliases": [ "first_quarter_moon_with_face" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌜" , "description": "last quarter moon face" , "category": "Travel & Places" , "aliases": [ "last_quarter_moon_with_face" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌡️" , "description": "thermometer" , "category": "Travel & Places" , "aliases": [ "thermometer" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "☀️" , "description": "sun" , "category": "Travel & Places" , "aliases": [ "sunny" ] , "tags": [ "weather" ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "🌝" , "description": "full moon face" , "category": "Travel & Places" , "aliases": [ "full_moon_with_face" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌞" , "description": "sun with face" , "category": "Travel & Places" , "aliases": [ "sun_with_face" ] , "tags": [ "summer" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪐" , "description": "ringed planet" , "category": "Travel & Places" , "aliases": [ "ringed_planet" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "⭐" , "description": "star" , "category": "Travel & Places" , "aliases": [ "star" ] , "tags": [ ] , "unicode_version": "5.1" , "ios_version": "6.0" } , { "emoji": "🌟" , "description": "glowing star" , "category": "Travel & Places" , "aliases": [ "star2" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌠" , "description": "shooting star" , "category": "Travel & Places" , "aliases": [ "stars" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌌" , "description": "milky way" , "category": "Travel & Places" , "aliases": [ "milky_way" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "☁️" , "description": "cloud" , "category": "Travel & Places" , "aliases": [ "cloud" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "⛅" , "description": "sun behind cloud" , "category": "Travel & Places" , "aliases": [ "partly_sunny" ] , "tags": [ "weather" , "cloud" ] , "unicode_version": "5.2" , "ios_version": "6.0" } , { "emoji": "⛈️" , "description": "cloud with lightning and rain" , "category": "Travel & Places" , "aliases": [ "cloud_with_lightning_and_rain" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "9.1" } , { "emoji": "🌤️" , "description": "sun behind small cloud" , "category": "Travel & Places" , "aliases": [ "sun_behind_small_cloud" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🌥️" , "description": "sun behind large cloud" , "category": "Travel & Places" , "aliases": [ "sun_behind_large_cloud" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🌦️" , "description": "sun behind rain cloud" , "category": "Travel & Places" , "aliases": [ "sun_behind_rain_cloud" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🌧️" , "description": "cloud with rain" , "category": "Travel & Places" , "aliases": [ "cloud_with_rain" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🌨️" , "description": "cloud with snow" , "category": "Travel & Places" , "aliases": [ "cloud_with_snow" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🌩️" , "description": "cloud with lightning" , "category": "Travel & Places" , "aliases": [ "cloud_with_lightning" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🌪️" , "description": "tornado" , "category": "Travel & Places" , "aliases": [ "tornado" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🌫️" , "description": "fog" , "category": "Travel & Places" , "aliases": [ "fog" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🌬️" , "description": "wind face" , "category": "Travel & Places" , "aliases": [ "wind_face" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🌀" , "description": "cyclone" , "category": "Travel & Places" , "aliases": [ "cyclone" ] , "tags": [ "swirl" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌈" , "description": "rainbow" , "category": "Travel & Places" , "aliases": [ "rainbow" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌂" , "description": "closed umbrella" , "category": "Travel & Places" , "aliases": [ "closed_umbrella" ] , "tags": [ "weather" , "rain" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "☂️" , "description": "umbrella" , "category": "Travel & Places" , "aliases": [ "open_umbrella" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "☔" , "description": "umbrella with rain drops" , "category": "Travel & Places" , "aliases": [ "umbrella" ] , "tags": [ "rain" , "weather" ] , "unicode_version": "4.0" , "ios_version": "6.0" } , { "emoji": "⛱️" , "description": "umbrella on ground" , "category": "Travel & Places" , "aliases": [ "parasol_on_ground" ] , "tags": [ "beach_umbrella" ] , "unicode_version": "5.2" , "ios_version": "9.1" } , { "emoji": "⚡" , "description": "high voltage" , "category": "Travel & Places" , "aliases": [ "zap" ] , "tags": [ "lightning" , "thunder" ] , "unicode_version": "4.0" , "ios_version": "6.0" } , { "emoji": "❄️" , "description": "snowflake" , "category": "Travel & Places" , "aliases": [ "snowflake" ] , "tags": [ "winter" , "cold" , "weather" ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "☃️" , "description": "snowman" , "category": "Travel & Places" , "aliases": [ "snowman_with_snow" ] , "tags": [ "winter" , "christmas" ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "⛄" , "description": "snowman without snow" , "category": "Travel & Places" , "aliases": [ "snowman" ] , "tags": [ "winter" ] , "unicode_version": "5.2" , "ios_version": "6.0" } , { "emoji": "☄️" , "description": "comet" , "category": "Travel & Places" , "aliases": [ "comet" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "🔥" , "description": "fire" , "category": "Travel & Places" , "aliases": [ "fire" ] , "tags": [ "burn" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💧" , "description": "droplet" , "category": "Travel & Places" , "aliases": [ "droplet" ] , "tags": [ "water" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🌊" , "description": "water wave" , "category": "Travel & Places" , "aliases": [ "ocean" ] , "tags": [ "sea" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎃" , "description": "jack-o-lantern" , "category": "Activities" , "aliases": [ "jack_o_lantern" ] , "tags": [ "halloween" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎄" , "description": "Christmas tree" , "category": "Activities" , "aliases": [ "christmas_tree" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎆" , "description": "fireworks" , "category": "Activities" , "aliases": [ "fireworks" ] , "tags": [ "festival" , "celebration" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎇" , "description": "sparkler" , "category": "Activities" , "aliases": [ "sparkler" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🧨" , "description": "firecracker" , "category": "Activities" , "aliases": [ "firecracker" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "✨" , "description": "sparkles" , "category": "Activities" , "aliases": [ "sparkles" ] , "tags": [ "shiny" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎈" , "description": "balloon" , "category": "Activities" , "aliases": [ "balloon" ] , "tags": [ "party" , "birthday" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎉" , "description": "party popper" , "category": "Activities" , "aliases": [ "tada" ] , "tags": [ "hooray" , "party" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎊" , "description": "confetti ball" , "category": "Activities" , "aliases": [ "confetti_ball" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎋" , "description": "tanabata tree" , "category": "Activities" , "aliases": [ "tanabata_tree" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎍" , "description": "pine decoration" , "category": "Activities" , "aliases": [ "bamboo" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎎" , "description": "Japanese dolls" , "category": "Activities" , "aliases": [ "dolls" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎏" , "description": "carp streamer" , "category": "Activities" , "aliases": [ "flags" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎐" , "description": "wind chime" , "category": "Activities" , "aliases": [ "wind_chime" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎑" , "description": "moon viewing ceremony" , "category": "Activities" , "aliases": [ "rice_scene" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🧧" , "description": "red envelope" , "category": "Activities" , "aliases": [ "red_envelope" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🎀" , "description": "ribbon" , "category": "Activities" , "aliases": [ "ribbon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎁" , "description": "wrapped gift" , "category": "Activities" , "aliases": [ "gift" ] , "tags": [ "present" , "birthday" , "christmas" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎗️" , "description": "reminder ribbon" , "category": "Activities" , "aliases": [ "reminder_ribbon" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🎟️" , "description": "admission tickets" , "category": "Activities" , "aliases": [ "tickets" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🎫" , "description": "ticket" , "category": "Activities" , "aliases": [ "ticket" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎖️" , "description": "military medal" , "category": "Activities" , "aliases": [ "medal_military" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🏆" , "description": "trophy" , "category": "Activities" , "aliases": [ "trophy" ] , "tags": [ "award" , "contest" , "winner" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏅" , "description": "sports medal" , "category": "Activities" , "aliases": [ "medal_sports" ] , "tags": [ "gold" , "winner" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🥇" , "description": "1st place medal" , "category": "Activities" , "aliases": [ "1st_place_medal" ] , "tags": [ "gold" ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🥈" , "description": "2nd place medal" , "category": "Activities" , "aliases": [ "2nd_place_medal" ] , "tags": [ "silver" ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🥉" , "description": "3rd place medal" , "category": "Activities" , "aliases": [ "3rd_place_medal" ] , "tags": [ "bronze" ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "⚽" , "description": "soccer ball" , "category": "Activities" , "aliases": [ "soccer" ] , "tags": [ "sports" ] , "unicode_version": "5.2" , "ios_version": "6.0" } , { "emoji": "⚾" , "description": "baseball" , "category": "Activities" , "aliases": [ "baseball" ] , "tags": [ "sports" ] , "unicode_version": "5.2" , "ios_version": "6.0" } , { "emoji": "🥎" , "description": "softball" , "category": "Activities" , "aliases": [ "softball" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🏀" , "description": "basketball" , "category": "Activities" , "aliases": [ "basketball" ] , "tags": [ "sports" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏐" , "description": "volleyball" , "category": "Activities" , "aliases": [ "volleyball" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🏈" , "description": "american football" , "category": "Activities" , "aliases": [ "football" ] , "tags": [ "sports" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏉" , "description": "rugby football" , "category": "Activities" , "aliases": [ "rugby_football" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎾" , "description": "tennis" , "category": "Activities" , "aliases": [ "tennis" ] , "tags": [ "sports" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥏" , "description": "flying disc" , "category": "Activities" , "aliases": [ "flying_disc" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🎳" , "description": "bowling" , "category": "Activities" , "aliases": [ "bowling" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏏" , "description": "cricket game" , "category": "Activities" , "aliases": [ "cricket_game" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🏑" , "description": "field hockey" , "category": "Activities" , "aliases": [ "field_hockey" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🏒" , "description": "ice hockey" , "category": "Activities" , "aliases": [ "ice_hockey" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🥍" , "description": "lacrosse" , "category": "Activities" , "aliases": [ "lacrosse" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🏓" , "description": "ping pong" , "category": "Activities" , "aliases": [ "ping_pong" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🏸" , "description": "badminton" , "category": "Activities" , "aliases": [ "badminton" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🥊" , "description": "boxing glove" , "category": "Activities" , "aliases": [ "boxing_glove" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🥋" , "description": "martial arts uniform" , "category": "Activities" , "aliases": [ "martial_arts_uniform" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🥅" , "description": "goal net" , "category": "Activities" , "aliases": [ "goal_net" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "⛳" , "description": "flag in hole" , "category": "Activities" , "aliases": [ "golf" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "6.0" } , { "emoji": "⛸️" , "description": "ice skate" , "category": "Activities" , "aliases": [ "ice_skate" ] , "tags": [ "skating" ] , "unicode_version": "5.2" , "ios_version": "9.1" } , { "emoji": "🎣" , "description": "fishing pole" , "category": "Activities" , "aliases": [ "fishing_pole_and_fish" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🤿" , "description": "diving mask" , "category": "Activities" , "aliases": [ "diving_mask" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🎽" , "description": "running shirt" , "category": "Activities" , "aliases": [ "running_shirt_with_sash" ] , "tags": [ "marathon" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎿" , "description": "skis" , "category": "Activities" , "aliases": [ "ski" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛷" , "description": "sled" , "category": "Activities" , "aliases": [ "sled" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥌" , "description": "curling stone" , "category": "Activities" , "aliases": [ "curling_stone" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🎯" , "description": "bullseye" , "category": "Activities" , "aliases": [ "dart" ] , "tags": [ "target" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪀" , "description": "yo-yo" , "category": "Activities" , "aliases": [ "yo_yo" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🪁" , "description": "kite" , "category": "Activities" , "aliases": [ "kite" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🎱" , "description": "pool 8 ball" , "category": "Activities" , "aliases": [ "8ball" ] , "tags": [ "pool" , "billiards" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔮" , "description": "crystal ball" , "category": "Activities" , "aliases": [ "crystal_ball" ] , "tags": [ "fortune" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪄" , "description": "magic wand" , "category": "Activities" , "aliases": [ "magic_wand" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🧿" , "description": "nazar amulet" , "category": "Activities" , "aliases": [ "nazar_amulet" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🎮" , "description": "video game" , "category": "Activities" , "aliases": [ "video_game" ] , "tags": [ "play" , "controller" , "console" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕹️" , "description": "joystick" , "category": "Activities" , "aliases": [ "joystick" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🎰" , "description": "slot machine" , "category": "Activities" , "aliases": [ "slot_machine" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎲" , "description": "game die" , "category": "Activities" , "aliases": [ "game_die" ] , "tags": [ "dice" , "gambling" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🧩" , "description": "puzzle piece" , "category": "Activities" , "aliases": [ "jigsaw" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧸" , "description": "teddy bear" , "category": "Activities" , "aliases": [ "teddy_bear" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🪅" , "description": "piñata" , "category": "Activities" , "aliases": [ "pinata" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🪆" , "description": "nesting dolls" , "category": "Activities" , "aliases": [ "nesting_dolls" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "♠️" , "description": "spade suit" , "category": "Activities" , "aliases": [ "spades" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♥️" , "description": "heart suit" , "category": "Activities" , "aliases": [ "hearts" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♦️" , "description": "diamond suit" , "category": "Activities" , "aliases": [ "diamonds" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♣️" , "description": "club suit" , "category": "Activities" , "aliases": [ "clubs" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♟️" , "description": "chess pawn" , "category": "Activities" , "aliases": [ "chess_pawn" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🃏" , "description": "joker" , "category": "Activities" , "aliases": [ "black_joker" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🀄" , "description": "mahjong red dragon" , "category": "Activities" , "aliases": [ "mahjong" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "🎴" , "description": "flower playing cards" , "category": "Activities" , "aliases": [ "flower_playing_cards" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎭" , "description": "performing arts" , "category": "Activities" , "aliases": [ "performing_arts" ] , "tags": [ "theater" , "drama" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🖼️" , "description": "framed picture" , "category": "Activities" , "aliases": [ "framed_picture" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🎨" , "description": "artist palette" , "category": "Activities" , "aliases": [ "art" ] , "tags": [ "design" , "paint" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🧵" , "description": "thread" , "category": "Activities" , "aliases": [ "thread" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🪡" , "description": "sewing needle" , "category": "Activities" , "aliases": [ "sewing_needle" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🧶" , "description": "yarn" , "category": "Activities" , "aliases": [ "yarn" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🪢" , "description": "knot" , "category": "Activities" , "aliases": [ "knot" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "👓" , "description": "glasses" , "category": "Objects" , "aliases": [ "eyeglasses" ] , "tags": [ "glasses" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕶️" , "description": "sunglasses" , "category": "Objects" , "aliases": [ "dark_sunglasses" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🥽" , "description": "goggles" , "category": "Objects" , "aliases": [ "goggles" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥼" , "description": "lab coat" , "category": "Objects" , "aliases": [ "lab_coat" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🦺" , "description": "safety vest" , "category": "Objects" , "aliases": [ "safety_vest" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "👔" , "description": "necktie" , "category": "Objects" , "aliases": [ "necktie" ] , "tags": [ "shirt" , "formal" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👕" , "description": "t-shirt" , "category": "Objects" , "aliases": [ "shirt" , "tshirt" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👖" , "description": "jeans" , "category": "Objects" , "aliases": [ "jeans" ] , "tags": [ "pants" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🧣" , "description": "scarf" , "category": "Objects" , "aliases": [ "scarf" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧤" , "description": "gloves" , "category": "Objects" , "aliases": [ "gloves" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧥" , "description": "coat" , "category": "Objects" , "aliases": [ "coat" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧦" , "description": "socks" , "category": "Objects" , "aliases": [ "socks" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "👗" , "description": "dress" , "category": "Objects" , "aliases": [ "dress" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👘" , "description": "kimono" , "category": "Objects" , "aliases": [ "kimono" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥻" , "description": "sari" , "category": "Objects" , "aliases": [ "sari" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🩱" , "description": "one-piece swimsuit" , "category": "Objects" , "aliases": [ "one_piece_swimsuit" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🩲" , "description": "briefs" , "category": "Objects" , "aliases": [ "swim_brief" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🩳" , "description": "shorts" , "category": "Objects" , "aliases": [ "shorts" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "👙" , "description": "bikini" , "category": "Objects" , "aliases": [ "bikini" ] , "tags": [ "beach" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👚" , "description": "woman’s clothes" , "category": "Objects" , "aliases": [ "womans_clothes" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👛" , "description": "purse" , "category": "Objects" , "aliases": [ "purse" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👜" , "description": "handbag" , "category": "Objects" , "aliases": [ "handbag" ] , "tags": [ "bag" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👝" , "description": "clutch bag" , "category": "Objects" , "aliases": [ "pouch" ] , "tags": [ "bag" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛍️" , "description": "shopping bags" , "category": "Objects" , "aliases": [ "shopping" ] , "tags": [ "bags" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🎒" , "description": "backpack" , "category": "Objects" , "aliases": [ "school_satchel" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🩴" , "description": "thong sandal" , "category": "Objects" , "aliases": [ "thong_sandal" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "👞" , "description": "man’s shoe" , "category": "Objects" , "aliases": [ "mans_shoe" , "shoe" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👟" , "description": "running shoe" , "category": "Objects" , "aliases": [ "athletic_shoe" ] , "tags": [ "sneaker" , "sport" , "running" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🥾" , "description": "hiking boot" , "category": "Objects" , "aliases": [ "hiking_boot" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🥿" , "description": "flat shoe" , "category": "Objects" , "aliases": [ "flat_shoe" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "👠" , "description": "high-heeled shoe" , "category": "Objects" , "aliases": [ "high_heel" ] , "tags": [ "shoe" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👡" , "description": "woman’s sandal" , "category": "Objects" , "aliases": [ "sandal" ] , "tags": [ "shoe" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🩰" , "description": "ballet shoes" , "category": "Objects" , "aliases": [ "ballet_shoes" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "👢" , "description": "woman’s boot" , "category": "Objects" , "aliases": [ "boot" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👑" , "description": "crown" , "category": "Objects" , "aliases": [ "crown" ] , "tags": [ "king" , "queen" , "royal" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "👒" , "description": "woman’s hat" , "category": "Objects" , "aliases": [ "womans_hat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎩" , "description": "top hat" , "category": "Objects" , "aliases": [ "tophat" ] , "tags": [ "hat" , "classy" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎓" , "description": "graduation cap" , "category": "Objects" , "aliases": [ "mortar_board" ] , "tags": [ "education" , "college" , "university" , "graduation" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🧢" , "description": "billed cap" , "category": "Objects" , "aliases": [ "billed_cap" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🪖" , "description": "military helmet" , "category": "Objects" , "aliases": [ "military_helmet" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "⛑️" , "description": "rescue worker’s helmet" , "category": "Objects" , "aliases": [ "rescue_worker_helmet" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "9.1" } , { "emoji": "📿" , "description": "prayer beads" , "category": "Objects" , "aliases": [ "prayer_beads" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "💄" , "description": "lipstick" , "category": "Objects" , "aliases": [ "lipstick" ] , "tags": [ "makeup" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💍" , "description": "ring" , "category": "Objects" , "aliases": [ "ring" ] , "tags": [ "wedding" , "marriage" , "engaged" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💎" , "description": "gem stone" , "category": "Objects" , "aliases": [ "gem" ] , "tags": [ "diamond" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔇" , "description": "muted speaker" , "category": "Objects" , "aliases": [ "mute" ] , "tags": [ "sound" , "volume" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔈" , "description": "speaker low volume" , "category": "Objects" , "aliases": [ "speaker" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔉" , "description": "speaker medium volume" , "category": "Objects" , "aliases": [ "sound" ] , "tags": [ "volume" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔊" , "description": "speaker high volume" , "category": "Objects" , "aliases": [ "loud_sound" ] , "tags": [ "volume" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📢" , "description": "loudspeaker" , "category": "Objects" , "aliases": [ "loudspeaker" ] , "tags": [ "announcement" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📣" , "description": "megaphone" , "category": "Objects" , "aliases": [ "mega" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📯" , "description": "postal horn" , "category": "Objects" , "aliases": [ "postal_horn" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔔" , "description": "bell" , "category": "Objects" , "aliases": [ "bell" ] , "tags": [ "sound" , "notification" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔕" , "description": "bell with slash" , "category": "Objects" , "aliases": [ "no_bell" ] , "tags": [ "volume" , "off" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎼" , "description": "musical score" , "category": "Objects" , "aliases": [ "musical_score" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎵" , "description": "musical note" , "category": "Objects" , "aliases": [ "musical_note" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎶" , "description": "musical notes" , "category": "Objects" , "aliases": [ "notes" ] , "tags": [ "music" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎙️" , "description": "studio microphone" , "category": "Objects" , "aliases": [ "studio_microphone" ] , "tags": [ "podcast" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🎚️" , "description": "level slider" , "category": "Objects" , "aliases": [ "level_slider" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🎛️" , "description": "control knobs" , "category": "Objects" , "aliases": [ "control_knobs" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🎤" , "description": "microphone" , "category": "Objects" , "aliases": [ "microphone" ] , "tags": [ "sing" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎧" , "description": "headphone" , "category": "Objects" , "aliases": [ "headphones" ] , "tags": [ "music" , "earphones" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📻" , "description": "radio" , "category": "Objects" , "aliases": [ "radio" ] , "tags": [ "podcast" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎷" , "description": "saxophone" , "category": "Objects" , "aliases": [ "saxophone" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪗" , "description": "accordion" , "category": "Objects" , "aliases": [ "accordion" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🎸" , "description": "guitar" , "category": "Objects" , "aliases": [ "guitar" ] , "tags": [ "rock" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎹" , "description": "musical keyboard" , "category": "Objects" , "aliases": [ "musical_keyboard" ] , "tags": [ "piano" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎺" , "description": "trumpet" , "category": "Objects" , "aliases": [ "trumpet" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎻" , "description": "violin" , "category": "Objects" , "aliases": [ "violin" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪕" , "description": "banjo" , "category": "Objects" , "aliases": [ "banjo" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🥁" , "description": "drum" , "category": "Objects" , "aliases": [ "drum" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "10.2" } , { "emoji": "🪘" , "description": "long drum" , "category": "Objects" , "aliases": [ "long_drum" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "📱" , "description": "mobile phone" , "category": "Objects" , "aliases": [ "iphone" ] , "tags": [ "smartphone" , "mobile" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📲" , "description": "mobile phone with arrow" , "category": "Objects" , "aliases": [ "calling" ] , "tags": [ "call" , "incoming" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "☎️" , "description": "telephone" , "category": "Objects" , "aliases": [ "phone" , "telephone" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "📞" , "description": "telephone receiver" , "category": "Objects" , "aliases": [ "telephone_receiver" ] , "tags": [ "phone" , "call" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📟" , "description": "pager" , "category": "Objects" , "aliases": [ "pager" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📠" , "description": "fax machine" , "category": "Objects" , "aliases": [ "fax" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔋" , "description": "battery" , "category": "Objects" , "aliases": [ "battery" ] , "tags": [ "power" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔌" , "description": "electric plug" , "category": "Objects" , "aliases": [ "electric_plug" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💻" , "description": "laptop" , "category": "Objects" , "aliases": [ "computer" ] , "tags": [ "desktop" , "screen" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🖥️" , "description": "desktop computer" , "category": "Objects" , "aliases": [ "desktop_computer" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🖨️" , "description": "printer" , "category": "Objects" , "aliases": [ "printer" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "⌨️" , "description": "keyboard" , "category": "Objects" , "aliases": [ "keyboard" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "🖱️" , "description": "computer mouse" , "category": "Objects" , "aliases": [ "computer_mouse" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🖲️" , "description": "trackball" , "category": "Objects" , "aliases": [ "trackball" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "💽" , "description": "computer disk" , "category": "Objects" , "aliases": [ "minidisc" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💾" , "description": "floppy disk" , "category": "Objects" , "aliases": [ "floppy_disk" ] , "tags": [ "save" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💿" , "description": "optical disk" , "category": "Objects" , "aliases": [ "cd" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📀" , "description": "dvd" , "category": "Objects" , "aliases": [ "dvd" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🧮" , "description": "abacus" , "category": "Objects" , "aliases": [ "abacus" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🎥" , "description": "movie camera" , "category": "Objects" , "aliases": [ "movie_camera" ] , "tags": [ "film" , "video" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎞️" , "description": "film frames" , "category": "Objects" , "aliases": [ "film_strip" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "📽️" , "description": "film projector" , "category": "Objects" , "aliases": [ "film_projector" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🎬" , "description": "clapper board" , "category": "Objects" , "aliases": [ "clapper" ] , "tags": [ "film" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📺" , "description": "television" , "category": "Objects" , "aliases": [ "tv" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📷" , "description": "camera" , "category": "Objects" , "aliases": [ "camera" ] , "tags": [ "photo" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📸" , "description": "camera with flash" , "category": "Objects" , "aliases": [ "camera_flash" ] , "tags": [ "photo" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "📹" , "description": "video camera" , "category": "Objects" , "aliases": [ "video_camera" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📼" , "description": "videocassette" , "category": "Objects" , "aliases": [ "vhs" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔍" , "description": "magnifying glass tilted left" , "category": "Objects" , "aliases": [ "mag" ] , "tags": [ "search" , "zoom" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔎" , "description": "magnifying glass tilted right" , "category": "Objects" , "aliases": [ "mag_right" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🕯️" , "description": "candle" , "category": "Objects" , "aliases": [ "candle" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "💡" , "description": "light bulb" , "category": "Objects" , "aliases": [ "bulb" ] , "tags": [ "idea" , "light" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔦" , "description": "flashlight" , "category": "Objects" , "aliases": [ "flashlight" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏮" , "description": "red paper lantern" , "category": "Objects" , "aliases": [ "izakaya_lantern" , "lantern" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪔" , "description": "diya lamp" , "category": "Objects" , "aliases": [ "diya_lamp" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "📔" , "description": "notebook with decorative cover" , "category": "Objects" , "aliases": [ "notebook_with_decorative_cover" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📕" , "description": "closed book" , "category": "Objects" , "aliases": [ "closed_book" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📖" , "description": "open book" , "category": "Objects" , "aliases": [ "book" , "open_book" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📗" , "description": "green book" , "category": "Objects" , "aliases": [ "green_book" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📘" , "description": "blue book" , "category": "Objects" , "aliases": [ "blue_book" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📙" , "description": "orange book" , "category": "Objects" , "aliases": [ "orange_book" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📚" , "description": "books" , "category": "Objects" , "aliases": [ "books" ] , "tags": [ "library" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📓" , "description": "notebook" , "category": "Objects" , "aliases": [ "notebook" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📒" , "description": "ledger" , "category": "Objects" , "aliases": [ "ledger" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📃" , "description": "page with curl" , "category": "Objects" , "aliases": [ "page_with_curl" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📜" , "description": "scroll" , "category": "Objects" , "aliases": [ "scroll" ] , "tags": [ "document" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📄" , "description": "page facing up" , "category": "Objects" , "aliases": [ "page_facing_up" ] , "tags": [ "document" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📰" , "description": "newspaper" , "category": "Objects" , "aliases": [ "newspaper" ] , "tags": [ "press" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🗞️" , "description": "rolled-up newspaper" , "category": "Objects" , "aliases": [ "newspaper_roll" ] , "tags": [ "press" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "📑" , "description": "bookmark tabs" , "category": "Objects" , "aliases": [ "bookmark_tabs" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔖" , "description": "bookmark" , "category": "Objects" , "aliases": [ "bookmark" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏷️" , "description": "label" , "category": "Objects" , "aliases": [ "label" ] , "tags": [ "tag" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "💰" , "description": "money bag" , "category": "Objects" , "aliases": [ "moneybag" ] , "tags": [ "dollar" , "cream" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪙" , "description": "coin" , "category": "Objects" , "aliases": [ "coin" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "💴" , "description": "yen banknote" , "category": "Objects" , "aliases": [ "yen" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💵" , "description": "dollar banknote" , "category": "Objects" , "aliases": [ "dollar" ] , "tags": [ "money" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💶" , "description": "euro banknote" , "category": "Objects" , "aliases": [ "euro" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💷" , "description": "pound banknote" , "category": "Objects" , "aliases": [ "pound" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💸" , "description": "money with wings" , "category": "Objects" , "aliases": [ "money_with_wings" ] , "tags": [ "dollar" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💳" , "description": "credit card" , "category": "Objects" , "aliases": [ "credit_card" ] , "tags": [ "subscription" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🧾" , "description": "receipt" , "category": "Objects" , "aliases": [ "receipt" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "💹" , "description": "chart increasing with yen" , "category": "Objects" , "aliases": [ "chart" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "✉️" , "description": "envelope" , "category": "Objects" , "aliases": [ "envelope" ] , "tags": [ "letter" , "email" ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "📧" , "description": "e-mail" , "category": "Objects" , "aliases": [ "email" , "e-mail" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📨" , "description": "incoming envelope" , "category": "Objects" , "aliases": [ "incoming_envelope" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📩" , "description": "envelope with arrow" , "category": "Objects" , "aliases": [ "envelope_with_arrow" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📤" , "description": "outbox tray" , "category": "Objects" , "aliases": [ "outbox_tray" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📥" , "description": "inbox tray" , "category": "Objects" , "aliases": [ "inbox_tray" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📦" , "description": "package" , "category": "Objects" , "aliases": [ "package" ] , "tags": [ "shipping" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📫" , "description": "closed mailbox with raised flag" , "category": "Objects" , "aliases": [ "mailbox" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📪" , "description": "closed mailbox with lowered flag" , "category": "Objects" , "aliases": [ "mailbox_closed" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📬" , "description": "open mailbox with raised flag" , "category": "Objects" , "aliases": [ "mailbox_with_mail" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📭" , "description": "open mailbox with lowered flag" , "category": "Objects" , "aliases": [ "mailbox_with_no_mail" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📮" , "description": "postbox" , "category": "Objects" , "aliases": [ "postbox" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🗳️" , "description": "ballot box with ballot" , "category": "Objects" , "aliases": [ "ballot_box" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "✏️" , "description": "pencil" , "category": "Objects" , "aliases": [ "pencil2" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "✒️" , "description": "black nib" , "category": "Objects" , "aliases": [ "black_nib" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "🖋️" , "description": "fountain pen" , "category": "Objects" , "aliases": [ "fountain_pen" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🖊️" , "description": "pen" , "category": "Objects" , "aliases": [ "pen" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🖌️" , "description": "paintbrush" , "category": "Objects" , "aliases": [ "paintbrush" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🖍️" , "description": "crayon" , "category": "Objects" , "aliases": [ "crayon" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "📝" , "description": "memo" , "category": "Objects" , "aliases": [ "memo" , "pencil" ] , "tags": [ "document" , "note" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💼" , "description": "briefcase" , "category": "Objects" , "aliases": [ "briefcase" ] , "tags": [ "business" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📁" , "description": "file folder" , "category": "Objects" , "aliases": [ "file_folder" ] , "tags": [ "directory" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📂" , "description": "open file folder" , "category": "Objects" , "aliases": [ "open_file_folder" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🗂️" , "description": "card index dividers" , "category": "Objects" , "aliases": [ "card_index_dividers" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "📅" , "description": "calendar" , "category": "Objects" , "aliases": [ "date" ] , "tags": [ "calendar" , "schedule" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📆" , "description": "tear-off calendar" , "category": "Objects" , "aliases": [ "calendar" ] , "tags": [ "schedule" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🗒️" , "description": "spiral notepad" , "category": "Objects" , "aliases": [ "spiral_notepad" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🗓️" , "description": "spiral calendar" , "category": "Objects" , "aliases": [ "spiral_calendar" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "📇" , "description": "card index" , "category": "Objects" , "aliases": [ "card_index" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📈" , "description": "chart increasing" , "category": "Objects" , "aliases": [ "chart_with_upwards_trend" ] , "tags": [ "graph" , "metrics" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📉" , "description": "chart decreasing" , "category": "Objects" , "aliases": [ "chart_with_downwards_trend" ] , "tags": [ "graph" , "metrics" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📊" , "description": "bar chart" , "category": "Objects" , "aliases": [ "bar_chart" ] , "tags": [ "stats" , "metrics" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📋" , "description": "clipboard" , "category": "Objects" , "aliases": [ "clipboard" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📌" , "description": "pushpin" , "category": "Objects" , "aliases": [ "pushpin" ] , "tags": [ "location" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📍" , "description": "round pushpin" , "category": "Objects" , "aliases": [ "round_pushpin" ] , "tags": [ "location" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📎" , "description": "paperclip" , "category": "Objects" , "aliases": [ "paperclip" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🖇️" , "description": "linked paperclips" , "category": "Objects" , "aliases": [ "paperclips" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "📏" , "description": "straight ruler" , "category": "Objects" , "aliases": [ "straight_ruler" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📐" , "description": "triangular ruler" , "category": "Objects" , "aliases": [ "triangular_ruler" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "✂️" , "description": "scissors" , "category": "Objects" , "aliases": [ "scissors" ] , "tags": [ "cut" ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "🗃️" , "description": "card file box" , "category": "Objects" , "aliases": [ "card_file_box" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🗄️" , "description": "file cabinet" , "category": "Objects" , "aliases": [ "file_cabinet" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🗑️" , "description": "wastebasket" , "category": "Objects" , "aliases": [ "wastebasket" ] , "tags": [ "trash" ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🔒" , "description": "locked" , "category": "Objects" , "aliases": [ "lock" ] , "tags": [ "security" , "private" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔓" , "description": "unlocked" , "category": "Objects" , "aliases": [ "unlock" ] , "tags": [ "security" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔏" , "description": "locked with pen" , "category": "Objects" , "aliases": [ "lock_with_ink_pen" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔐" , "description": "locked with key" , "category": "Objects" , "aliases": [ "closed_lock_with_key" ] , "tags": [ "security" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔑" , "description": "key" , "category": "Objects" , "aliases": [ "key" ] , "tags": [ "lock" , "password" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🗝️" , "description": "old key" , "category": "Objects" , "aliases": [ "old_key" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🔨" , "description": "hammer" , "category": "Objects" , "aliases": [ "hammer" ] , "tags": [ "tool" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪓" , "description": "axe" , "category": "Objects" , "aliases": [ "axe" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "⛏️" , "description": "pick" , "category": "Objects" , "aliases": [ "pick" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "9.1" } , { "emoji": "⚒️" , "description": "hammer and pick" , "category": "Objects" , "aliases": [ "hammer_and_pick" ] , "tags": [ ] , "unicode_version": "4.1" , "ios_version": "9.1" } , { "emoji": "🛠️" , "description": "hammer and wrench" , "category": "Objects" , "aliases": [ "hammer_and_wrench" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🗡️" , "description": "dagger" , "category": "Objects" , "aliases": [ "dagger" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "⚔️" , "description": "crossed swords" , "category": "Objects" , "aliases": [ "crossed_swords" ] , "tags": [ ] , "unicode_version": "4.1" , "ios_version": "9.1" } , { "emoji": "🔫" , "description": "water pistol" , "category": "Objects" , "aliases": [ "gun" ] , "tags": [ "shoot" , "weapon" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪃" , "description": "boomerang" , "category": "Objects" , "aliases": [ "boomerang" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🏹" , "description": "bow and arrow" , "category": "Objects" , "aliases": [ "bow_and_arrow" ] , "tags": [ "archery" ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🛡️" , "description": "shield" , "category": "Objects" , "aliases": [ "shield" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🪚" , "description": "carpentry saw" , "category": "Objects" , "aliases": [ "carpentry_saw" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🔧" , "description": "wrench" , "category": "Objects" , "aliases": [ "wrench" ] , "tags": [ "tool" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪛" , "description": "screwdriver" , "category": "Objects" , "aliases": [ "screwdriver" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🔩" , "description": "nut and bolt" , "category": "Objects" , "aliases": [ "nut_and_bolt" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⚙️" , "description": "gear" , "category": "Objects" , "aliases": [ "gear" ] , "tags": [ ] , "unicode_version": "4.1" , "ios_version": "9.1" } , { "emoji": "🗜️" , "description": "clamp" , "category": "Objects" , "aliases": [ "clamp" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "⚖️" , "description": "balance scale" , "category": "Objects" , "aliases": [ "balance_scale" ] , "tags": [ ] , "unicode_version": "4.1" , "ios_version": "9.1" } , { "emoji": "🦯" , "description": "white cane" , "category": "Objects" , "aliases": [ "probing_cane" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🔗" , "description": "link" , "category": "Objects" , "aliases": [ "link" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⛓️" , "description": "chains" , "category": "Objects" , "aliases": [ "chains" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "9.1" } , { "emoji": "🪝" , "description": "hook" , "category": "Objects" , "aliases": [ "hook" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🧰" , "description": "toolbox" , "category": "Objects" , "aliases": [ "toolbox" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧲" , "description": "magnet" , "category": "Objects" , "aliases": [ "magnet" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🪜" , "description": "ladder" , "category": "Objects" , "aliases": [ "ladder" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "⚗️" , "description": "alembic" , "category": "Objects" , "aliases": [ "alembic" ] , "tags": [ ] , "unicode_version": "4.1" , "ios_version": "9.1" } , { "emoji": "🧪" , "description": "test tube" , "category": "Objects" , "aliases": [ "test_tube" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧫" , "description": "petri dish" , "category": "Objects" , "aliases": [ "petri_dish" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧬" , "description": "dna" , "category": "Objects" , "aliases": [ "dna" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🔬" , "description": "microscope" , "category": "Objects" , "aliases": [ "microscope" ] , "tags": [ "science" , "laboratory" , "investigate" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔭" , "description": "telescope" , "category": "Objects" , "aliases": [ "telescope" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📡" , "description": "satellite antenna" , "category": "Objects" , "aliases": [ "satellite" ] , "tags": [ "signal" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💉" , "description": "syringe" , "category": "Objects" , "aliases": [ "syringe" ] , "tags": [ "health" , "hospital" , "needle" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🩸" , "description": "drop of blood" , "category": "Objects" , "aliases": [ "drop_of_blood" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "💊" , "description": "pill" , "category": "Objects" , "aliases": [ "pill" ] , "tags": [ "health" , "medicine" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🩹" , "description": "adhesive bandage" , "category": "Objects" , "aliases": [ "adhesive_bandage" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🩺" , "description": "stethoscope" , "category": "Objects" , "aliases": [ "stethoscope" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🚪" , "description": "door" , "category": "Objects" , "aliases": [ "door" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛗" , "description": "elevator" , "category": "Objects" , "aliases": [ "elevator" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🪞" , "description": "mirror" , "category": "Objects" , "aliases": [ "mirror" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🪟" , "description": "window" , "category": "Objects" , "aliases": [ "window" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🛏️" , "description": "bed" , "category": "Objects" , "aliases": [ "bed" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🛋️" , "description": "couch and lamp" , "category": "Objects" , "aliases": [ "couch_and_lamp" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🪑" , "description": "chair" , "category": "Objects" , "aliases": [ "chair" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🚽" , "description": "toilet" , "category": "Objects" , "aliases": [ "toilet" ] , "tags": [ "wc" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪠" , "description": "plunger" , "category": "Objects" , "aliases": [ "plunger" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🚿" , "description": "shower" , "category": "Objects" , "aliases": [ "shower" ] , "tags": [ "bath" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛁" , "description": "bathtub" , "category": "Objects" , "aliases": [ "bathtub" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪤" , "description": "mouse trap" , "category": "Objects" , "aliases": [ "mouse_trap" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🪒" , "description": "razor" , "category": "Objects" , "aliases": [ "razor" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🧴" , "description": "lotion bottle" , "category": "Objects" , "aliases": [ "lotion_bottle" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧷" , "description": "safety pin" , "category": "Objects" , "aliases": [ "safety_pin" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧹" , "description": "broom" , "category": "Objects" , "aliases": [ "broom" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧺" , "description": "basket" , "category": "Objects" , "aliases": [ "basket" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧻" , "description": "roll of paper" , "category": "Objects" , "aliases": [ "roll_of_paper" ] , "tags": [ "toilet" ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🪣" , "description": "bucket" , "category": "Objects" , "aliases": [ "bucket" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🧼" , "description": "soap" , "category": "Objects" , "aliases": [ "soap" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🪥" , "description": "toothbrush" , "category": "Objects" , "aliases": [ "toothbrush" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🧽" , "description": "sponge" , "category": "Objects" , "aliases": [ "sponge" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🧯" , "description": "fire extinguisher" , "category": "Objects" , "aliases": [ "fire_extinguisher" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🛒" , "description": "shopping cart" , "category": "Objects" , "aliases": [ "shopping_cart" ] , "tags": [ ] , "unicode_version": "9.0" , "ios_version": "10.2" } , { "emoji": "🚬" , "description": "cigarette" , "category": "Objects" , "aliases": [ "smoking" ] , "tags": [ "cigarette" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⚰️" , "description": "coffin" , "category": "Objects" , "aliases": [ "coffin" ] , "tags": [ "funeral" ] , "unicode_version": "4.1" , "ios_version": "9.1" } , { "emoji": "🪦" , "description": "headstone" , "category": "Objects" , "aliases": [ "headstone" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "⚱️" , "description": "funeral urn" , "category": "Objects" , "aliases": [ "funeral_urn" ] , "tags": [ ] , "unicode_version": "4.1" , "ios_version": "9.1" } , { "emoji": "🗿" , "description": "moai" , "category": "Objects" , "aliases": [ "moyai" ] , "tags": [ "stone" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🪧" , "description": "placard" , "category": "Objects" , "aliases": [ "placard" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🏧" , "description": "ATM sign" , "category": "Symbols" , "aliases": [ "atm" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚮" , "description": "litter in bin sign" , "category": "Symbols" , "aliases": [ "put_litter_in_its_place" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚰" , "description": "potable water" , "category": "Symbols" , "aliases": [ "potable_water" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "♿" , "description": "wheelchair symbol" , "category": "Symbols" , "aliases": [ "wheelchair" ] , "tags": [ "accessibility" ] , "unicode_version": "4.1" , "ios_version": "6.0" } , { "emoji": "🚹" , "description": "men’s room" , "category": "Symbols" , "aliases": [ "mens" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚺" , "description": "women’s room" , "category": "Symbols" , "aliases": [ "womens" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚻" , "description": "restroom" , "category": "Symbols" , "aliases": [ "restroom" ] , "tags": [ "toilet" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚼" , "description": "baby symbol" , "category": "Symbols" , "aliases": [ "baby_symbol" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚾" , "description": "water closet" , "category": "Symbols" , "aliases": [ "wc" ] , "tags": [ "toilet" , "restroom" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛂" , "description": "passport control" , "category": "Symbols" , "aliases": [ "passport_control" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛃" , "description": "customs" , "category": "Symbols" , "aliases": [ "customs" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛄" , "description": "baggage claim" , "category": "Symbols" , "aliases": [ "baggage_claim" ] , "tags": [ "airport" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛅" , "description": "left luggage" , "category": "Symbols" , "aliases": [ "left_luggage" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⚠️" , "description": "warning" , "category": "Symbols" , "aliases": [ "warning" ] , "tags": [ "wip" ] , "unicode_version": "4.0" , "ios_version": "6.0" } , { "emoji": "🚸" , "description": "children crossing" , "category": "Symbols" , "aliases": [ "children_crossing" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⛔" , "description": "no entry" , "category": "Symbols" , "aliases": [ "no_entry" ] , "tags": [ "limit" ] , "unicode_version": "5.2" , "ios_version": "6.0" } , { "emoji": "🚫" , "description": "prohibited" , "category": "Symbols" , "aliases": [ "no_entry_sign" ] , "tags": [ "block" , "forbidden" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚳" , "description": "no bicycles" , "category": "Symbols" , "aliases": [ "no_bicycles" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚭" , "description": "no smoking" , "category": "Symbols" , "aliases": [ "no_smoking" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚯" , "description": "no littering" , "category": "Symbols" , "aliases": [ "do_not_litter" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚱" , "description": "non-potable water" , "category": "Symbols" , "aliases": [ "non-potable_water" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚷" , "description": "no pedestrians" , "category": "Symbols" , "aliases": [ "no_pedestrians" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📵" , "description": "no mobile phones" , "category": "Symbols" , "aliases": [ "no_mobile_phones" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔞" , "description": "no one under eighteen" , "category": "Symbols" , "aliases": [ "underage" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "☢️" , "description": "radioactive" , "category": "Symbols" , "aliases": [ "radioactive" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "☣️" , "description": "biohazard" , "category": "Symbols" , "aliases": [ "biohazard" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "⬆️" , "description": "up arrow" , "category": "Symbols" , "aliases": [ "arrow_up" ] , "tags": [ ] , "unicode_version": "4.0" , "ios_version": "6.0" } , { "emoji": "↗️" , "description": "up-right arrow" , "category": "Symbols" , "aliases": [ "arrow_upper_right" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "➡️" , "description": "right arrow" , "category": "Symbols" , "aliases": [ "arrow_right" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "↘️" , "description": "down-right arrow" , "category": "Symbols" , "aliases": [ "arrow_lower_right" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "⬇️" , "description": "down arrow" , "category": "Symbols" , "aliases": [ "arrow_down" ] , "tags": [ ] , "unicode_version": "4.0" , "ios_version": "6.0" } , { "emoji": "↙️" , "description": "down-left arrow" , "category": "Symbols" , "aliases": [ "arrow_lower_left" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "⬅️" , "description": "left arrow" , "category": "Symbols" , "aliases": [ "arrow_left" ] , "tags": [ ] , "unicode_version": "4.0" , "ios_version": "6.0" } , { "emoji": "↖️" , "description": "up-left arrow" , "category": "Symbols" , "aliases": [ "arrow_upper_left" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "↕️" , "description": "up-down arrow" , "category": "Symbols" , "aliases": [ "arrow_up_down" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "↔️" , "description": "left-right arrow" , "category": "Symbols" , "aliases": [ "left_right_arrow" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "↩️" , "description": "right arrow curving left" , "category": "Symbols" , "aliases": [ "leftwards_arrow_with_hook" ] , "tags": [ "return" ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "↪️" , "description": "left arrow curving right" , "category": "Symbols" , "aliases": [ "arrow_right_hook" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "⤴️" , "description": "right arrow curving up" , "category": "Symbols" , "aliases": [ "arrow_heading_up" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "⤵️" , "description": "right arrow curving down" , "category": "Symbols" , "aliases": [ "arrow_heading_down" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "🔃" , "description": "clockwise vertical arrows" , "category": "Symbols" , "aliases": [ "arrows_clockwise" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔄" , "description": "counterclockwise arrows button" , "category": "Symbols" , "aliases": [ "arrows_counterclockwise" ] , "tags": [ "sync" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔙" , "description": "BACK arrow" , "category": "Symbols" , "aliases": [ "back" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔚" , "description": "END arrow" , "category": "Symbols" , "aliases": [ "end" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔛" , "description": "ON! arrow" , "category": "Symbols" , "aliases": [ "on" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔜" , "description": "SOON arrow" , "category": "Symbols" , "aliases": [ "soon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔝" , "description": "TOP arrow" , "category": "Symbols" , "aliases": [ "top" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🛐" , "description": "place of worship" , "category": "Symbols" , "aliases": [ "place_of_worship" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "⚛️" , "description": "atom symbol" , "category": "Symbols" , "aliases": [ "atom_symbol" ] , "tags": [ ] , "unicode_version": "4.1" , "ios_version": "9.1" } , { "emoji": "🕉️" , "description": "om" , "category": "Symbols" , "aliases": [ "om" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "✡️" , "description": "star of David" , "category": "Symbols" , "aliases": [ "star_of_david" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "☸️" , "description": "wheel of dharma" , "category": "Symbols" , "aliases": [ "wheel_of_dharma" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "☯️" , "description": "yin yang" , "category": "Symbols" , "aliases": [ "yin_yang" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "✝️" , "description": "latin cross" , "category": "Symbols" , "aliases": [ "latin_cross" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "☦️" , "description": "orthodox cross" , "category": "Symbols" , "aliases": [ "orthodox_cross" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "☪️" , "description": "star and crescent" , "category": "Symbols" , "aliases": [ "star_and_crescent" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "☮️" , "description": "peace symbol" , "category": "Symbols" , "aliases": [ "peace_symbol" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "🕎" , "description": "menorah" , "category": "Symbols" , "aliases": [ "menorah" ] , "tags": [ ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🔯" , "description": "dotted six-pointed star" , "category": "Symbols" , "aliases": [ "six_pointed_star" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "♈" , "description": "Aries" , "category": "Symbols" , "aliases": [ "aries" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♉" , "description": "Taurus" , "category": "Symbols" , "aliases": [ "taurus" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♊" , "description": "Gemini" , "category": "Symbols" , "aliases": [ "gemini" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♋" , "description": "Cancer" , "category": "Symbols" , "aliases": [ "cancer" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♌" , "description": "Leo" , "category": "Symbols" , "aliases": [ "leo" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♍" , "description": "Virgo" , "category": "Symbols" , "aliases": [ "virgo" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♎" , "description": "Libra" , "category": "Symbols" , "aliases": [ "libra" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♏" , "description": "Scorpio" , "category": "Symbols" , "aliases": [ "scorpius" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♐" , "description": "Sagittarius" , "category": "Symbols" , "aliases": [ "sagittarius" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♑" , "description": "Capricorn" , "category": "Symbols" , "aliases": [ "capricorn" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♒" , "description": "Aquarius" , "category": "Symbols" , "aliases": [ "aquarius" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "♓" , "description": "Pisces" , "category": "Symbols" , "aliases": [ "pisces" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "⛎" , "description": "Ophiuchus" , "category": "Symbols" , "aliases": [ "ophiuchus" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔀" , "description": "shuffle tracks button" , "category": "Symbols" , "aliases": [ "twisted_rightwards_arrows" ] , "tags": [ "shuffle" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔁" , "description": "repeat button" , "category": "Symbols" , "aliases": [ "repeat" ] , "tags": [ "loop" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔂" , "description": "repeat single button" , "category": "Symbols" , "aliases": [ "repeat_one" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "▶️" , "description": "play button" , "category": "Symbols" , "aliases": [ "arrow_forward" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "⏩" , "description": "fast-forward button" , "category": "Symbols" , "aliases": [ "fast_forward" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⏭️" , "description": "next track button" , "category": "Symbols" , "aliases": [ "next_track_button" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.1" } , { "emoji": "⏯️" , "description": "play or pause button" , "category": "Symbols" , "aliases": [ "play_or_pause_button" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.1" } , { "emoji": "◀️" , "description": "reverse button" , "category": "Symbols" , "aliases": [ "arrow_backward" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "⏪" , "description": "fast reverse button" , "category": "Symbols" , "aliases": [ "rewind" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⏮️" , "description": "last track button" , "category": "Symbols" , "aliases": [ "previous_track_button" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.1" } , { "emoji": "🔼" , "description": "upwards button" , "category": "Symbols" , "aliases": [ "arrow_up_small" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⏫" , "description": "fast up button" , "category": "Symbols" , "aliases": [ "arrow_double_up" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔽" , "description": "downwards button" , "category": "Symbols" , "aliases": [ "arrow_down_small" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⏬" , "description": "fast down button" , "category": "Symbols" , "aliases": [ "arrow_double_down" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⏸️" , "description": "pause button" , "category": "Symbols" , "aliases": [ "pause_button" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "⏹️" , "description": "stop button" , "category": "Symbols" , "aliases": [ "stop_button" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "⏺️" , "description": "record button" , "category": "Symbols" , "aliases": [ "record_button" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "⏏️" , "description": "eject button" , "category": "Symbols" , "aliases": [ "eject_button" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🎦" , "description": "cinema" , "category": "Symbols" , "aliases": [ "cinema" ] , "tags": [ "film" , "movie" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔅" , "description": "dim button" , "category": "Symbols" , "aliases": [ "low_brightness" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔆" , "description": "bright button" , "category": "Symbols" , "aliases": [ "high_brightness" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📶" , "description": "antenna bars" , "category": "Symbols" , "aliases": [ "signal_strength" ] , "tags": [ "wifi" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📳" , "description": "vibration mode" , "category": "Symbols" , "aliases": [ "vibration_mode" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📴" , "description": "mobile phone off" , "category": "Symbols" , "aliases": [ "mobile_phone_off" ] , "tags": [ "mute" , "off" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "♀️" , "description": "female sign" , "category": "Symbols" , "aliases": [ "female_sign" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "♂️" , "description": "male sign" , "category": "Symbols" , "aliases": [ "male_sign" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "⚧️" , "description": "transgender symbol" , "category": "Symbols" , "aliases": [ "transgender_symbol" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "✖️" , "description": "multiply" , "category": "Symbols" , "aliases": [ "heavy_multiplication_x" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "➕" , "description": "plus" , "category": "Symbols" , "aliases": [ "heavy_plus_sign" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "➖" , "description": "minus" , "category": "Symbols" , "aliases": [ "heavy_minus_sign" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "➗" , "description": "divide" , "category": "Symbols" , "aliases": [ "heavy_division_sign" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "♾️" , "description": "infinity" , "category": "Symbols" , "aliases": [ "infinity" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "‼️" , "description": "double exclamation mark" , "category": "Symbols" , "aliases": [ "bangbang" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "⁉️" , "description": "exclamation question mark" , "category": "Symbols" , "aliases": [ "interrobang" ] , "tags": [ ] , "unicode_version": "3.0" , "ios_version": "6.0" } , { "emoji": "❓" , "description": "red question mark" , "category": "Symbols" , "aliases": [ "question" ] , "tags": [ "confused" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "❔" , "description": "white question mark" , "category": "Symbols" , "aliases": [ "grey_question" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "❕" , "description": "white exclamation mark" , "category": "Symbols" , "aliases": [ "grey_exclamation" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "❗" , "description": "red exclamation mark" , "category": "Symbols" , "aliases": [ "exclamation" , "heavy_exclamation_mark" ] , "tags": [ "bang" ] , "unicode_version": "5.2" , "ios_version": "6.0" } , { "emoji": "〰️" , "description": "wavy dash" , "category": "Symbols" , "aliases": [ "wavy_dash" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "💱" , "description": "currency exchange" , "category": "Symbols" , "aliases": [ "currency_exchange" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💲" , "description": "heavy dollar sign" , "category": "Symbols" , "aliases": [ "heavy_dollar_sign" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⚕️" , "description": "medical symbol" , "category": "Symbols" , "aliases": [ "medical_symbol" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "♻️" , "description": "recycling symbol" , "category": "Symbols" , "aliases": [ "recycle" ] , "tags": [ "environment" , "green" ] , "unicode_version": "3.2" , "ios_version": "6.0" } , { "emoji": "⚜️" , "description": "fleur-de-lis" , "category": "Symbols" , "aliases": [ "fleur_de_lis" ] , "tags": [ ] , "unicode_version": "4.1" , "ios_version": "9.1" } , { "emoji": "🔱" , "description": "trident emblem" , "category": "Symbols" , "aliases": [ "trident" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "📛" , "description": "name badge" , "category": "Symbols" , "aliases": [ "name_badge" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔰" , "description": "Japanese symbol for beginner" , "category": "Symbols" , "aliases": [ "beginner" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "⭕" , "description": "hollow red circle" , "category": "Symbols" , "aliases": [ "o" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "6.0" } , { "emoji": "✅" , "description": "check mark button" , "category": "Symbols" , "aliases": [ "white_check_mark" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "☑️" , "description": "check box with check" , "category": "Symbols" , "aliases": [ "ballot_box_with_check" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "✔️" , "description": "check mark" , "category": "Symbols" , "aliases": [ "heavy_check_mark" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "❌" , "description": "cross mark" , "category": "Symbols" , "aliases": [ "x" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "❎" , "description": "cross mark button" , "category": "Symbols" , "aliases": [ "negative_squared_cross_mark" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "➰" , "description": "curly loop" , "category": "Symbols" , "aliases": [ "curly_loop" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "➿" , "description": "double curly loop" , "category": "Symbols" , "aliases": [ "loop" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "〽️" , "description": "part alternation mark" , "category": "Symbols" , "aliases": [ "part_alternation_mark" ] , "tags": [ ] , "unicode_version": "3.2" , "ios_version": "6.0" } , { "emoji": "✳️" , "description": "eight-spoked asterisk" , "category": "Symbols" , "aliases": [ "eight_spoked_asterisk" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "✴️" , "description": "eight-pointed star" , "category": "Symbols" , "aliases": [ "eight_pointed_black_star" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "❇️" , "description": "sparkle" , "category": "Symbols" , "aliases": [ "sparkle" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "©️" , "description": "copyright" , "category": "Symbols" , "aliases": [ "copyright" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "®️" , "description": "registered" , "category": "Symbols" , "aliases": [ "registered" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "™️" , "description": "trade mark" , "category": "Symbols" , "aliases": [ "tm" ] , "tags": [ "trademark" ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "#️⃣" , "description": "keycap: #" , "category": "Symbols" , "aliases": [ "hash" ] , "tags": [ "number" ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "*️⃣" , "description": "keycap: *" , "category": "Symbols" , "aliases": [ "asterisk" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "9.1" } , { "emoji": "0️⃣" , "description": "keycap: 0" , "category": "Symbols" , "aliases": [ "zero" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "1️⃣" , "description": "keycap: 1" , "category": "Symbols" , "aliases": [ "one" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "2️⃣" , "description": "keycap: 2" , "category": "Symbols" , "aliases": [ "two" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "3️⃣" , "description": "keycap: 3" , "category": "Symbols" , "aliases": [ "three" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "4️⃣" , "description": "keycap: 4" , "category": "Symbols" , "aliases": [ "four" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "5️⃣" , "description": "keycap: 5" , "category": "Symbols" , "aliases": [ "five" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "6️⃣" , "description": "keycap: 6" , "category": "Symbols" , "aliases": [ "six" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "7️⃣" , "description": "keycap: 7" , "category": "Symbols" , "aliases": [ "seven" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "8️⃣" , "description": "keycap: 8" , "category": "Symbols" , "aliases": [ "eight" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "9️⃣" , "description": "keycap: 9" , "category": "Symbols" , "aliases": [ "nine" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "🔟" , "description": "keycap: 10" , "category": "Symbols" , "aliases": [ "keycap_ten" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔠" , "description": "input latin uppercase" , "category": "Symbols" , "aliases": [ "capital_abcd" ] , "tags": [ "letters" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔡" , "description": "input latin lowercase" , "category": "Symbols" , "aliases": [ "abcd" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔢" , "description": "input numbers" , "category": "Symbols" , "aliases": [ "1234" ] , "tags": [ "numbers" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔣" , "description": "input symbols" , "category": "Symbols" , "aliases": [ "symbols" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔤" , "description": "input latin letters" , "category": "Symbols" , "aliases": [ "abc" ] , "tags": [ "alphabet" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🅰️" , "description": "A button (blood type)" , "category": "Symbols" , "aliases": [ "a" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🆎" , "description": "AB button (blood type)" , "category": "Symbols" , "aliases": [ "ab" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🅱️" , "description": "B button (blood type)" , "category": "Symbols" , "aliases": [ "b" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🆑" , "description": "CL button" , "category": "Symbols" , "aliases": [ "cl" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🆒" , "description": "COOL button" , "category": "Symbols" , "aliases": [ "cool" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🆓" , "description": "FREE button" , "category": "Symbols" , "aliases": [ "free" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "ℹ️" , "description": "information" , "category": "Symbols" , "aliases": [ "information_source" ] , "tags": [ ] , "unicode_version": "3.0" , "ios_version": "6.0" } , { "emoji": "🆔" , "description": "ID button" , "category": "Symbols" , "aliases": [ "id" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "Ⓜ️" , "description": "circled M" , "category": "Symbols" , "aliases": [ "m" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "🆕" , "description": "NEW button" , "category": "Symbols" , "aliases": [ "new" ] , "tags": [ "fresh" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🆖" , "description": "NG button" , "category": "Symbols" , "aliases": [ "ng" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🅾️" , "description": "O button (blood type)" , "category": "Symbols" , "aliases": [ "o2" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🆗" , "description": "OK button" , "category": "Symbols" , "aliases": [ "ok" ] , "tags": [ "yes" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🅿️" , "description": "P button" , "category": "Symbols" , "aliases": [ "parking" ] , "tags": [ ] , "unicode_version": "5.2" , "ios_version": "6.0" } , { "emoji": "🆘" , "description": "SOS button" , "category": "Symbols" , "aliases": [ "sos" ] , "tags": [ "help" , "emergency" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🆙" , "description": "UP! button" , "category": "Symbols" , "aliases": [ "up" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🆚" , "description": "VS button" , "category": "Symbols" , "aliases": [ "vs" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🈁" , "description": "Japanese “here” button" , "category": "Symbols" , "aliases": [ "koko" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🈂️" , "description": "Japanese “service charge” button" , "category": "Symbols" , "aliases": [ "sa" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🈷️" , "description": "Japanese “monthly amount” button" , "category": "Symbols" , "aliases": [ "u6708" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🈶" , "description": "Japanese “not free of charge” button" , "category": "Symbols" , "aliases": [ "u6709" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🈯" , "description": "Japanese “reserved” button" , "category": "Symbols" , "aliases": [ "u6307" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "🉐" , "description": "Japanese “bargain” button" , "category": "Symbols" , "aliases": [ "ideograph_advantage" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🈹" , "description": "Japanese “discount” button" , "category": "Symbols" , "aliases": [ "u5272" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🈚" , "description": "Japanese “free of charge” button" , "category": "Symbols" , "aliases": [ "u7121" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "🈲" , "description": "Japanese “prohibited” button" , "category": "Symbols" , "aliases": [ "u7981" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🉑" , "description": "Japanese “acceptable” button" , "category": "Symbols" , "aliases": [ "accept" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🈸" , "description": "Japanese “application” button" , "category": "Symbols" , "aliases": [ "u7533" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🈴" , "description": "Japanese “passing grade” button" , "category": "Symbols" , "aliases": [ "u5408" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🈳" , "description": "Japanese “vacancy” button" , "category": "Symbols" , "aliases": [ "u7a7a" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "㊗️" , "description": "Japanese “congratulations” button" , "category": "Symbols" , "aliases": [ "congratulations" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "㊙️" , "description": "Japanese “secret” button" , "category": "Symbols" , "aliases": [ "secret" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "🈺" , "description": "Japanese “open for business” button" , "category": "Symbols" , "aliases": [ "u55b6" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🈵" , "description": "Japanese “no vacancy” button" , "category": "Symbols" , "aliases": [ "u6e80" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔴" , "description": "red circle" , "category": "Symbols" , "aliases": [ "red_circle" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🟠" , "description": "orange circle" , "category": "Symbols" , "aliases": [ "orange_circle" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🟡" , "description": "yellow circle" , "category": "Symbols" , "aliases": [ "yellow_circle" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🟢" , "description": "green circle" , "category": "Symbols" , "aliases": [ "green_circle" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🔵" , "description": "blue circle" , "category": "Symbols" , "aliases": [ "large_blue_circle" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🟣" , "description": "purple circle" , "category": "Symbols" , "aliases": [ "purple_circle" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🟤" , "description": "brown circle" , "category": "Symbols" , "aliases": [ "brown_circle" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "⚫" , "description": "black circle" , "category": "Symbols" , "aliases": [ "black_circle" ] , "tags": [ ] , "unicode_version": "4.1" , "ios_version": "6.0" } , { "emoji": "⚪" , "description": "white circle" , "category": "Symbols" , "aliases": [ "white_circle" ] , "tags": [ ] , "unicode_version": "4.1" , "ios_version": "6.0" } , { "emoji": "🟥" , "description": "red square" , "category": "Symbols" , "aliases": [ "red_square" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🟧" , "description": "orange square" , "category": "Symbols" , "aliases": [ "orange_square" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🟨" , "description": "yellow square" , "category": "Symbols" , "aliases": [ "yellow_square" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🟩" , "description": "green square" , "category": "Symbols" , "aliases": [ "green_square" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🟦" , "description": "blue square" , "category": "Symbols" , "aliases": [ "blue_square" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🟪" , "description": "purple square" , "category": "Symbols" , "aliases": [ "purple_square" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "🟫" , "description": "brown square" , "category": "Symbols" , "aliases": [ "brown_square" ] , "tags": [ ] , "unicode_version": "12.0" , "ios_version": "13.0" } , { "emoji": "⬛" , "description": "black large square" , "category": "Symbols" , "aliases": [ "black_large_square" ] , "tags": [ ] , "unicode_version": "5.1" , "ios_version": "6.0" } , { "emoji": "⬜" , "description": "white large square" , "category": "Symbols" , "aliases": [ "white_large_square" ] , "tags": [ ] , "unicode_version": "5.1" , "ios_version": "6.0" } , { "emoji": "◼️" , "description": "black medium square" , "category": "Symbols" , "aliases": [ "black_medium_square" ] , "tags": [ ] , "unicode_version": "3.2" , "ios_version": "6.0" } , { "emoji": "◻️" , "description": "white medium square" , "category": "Symbols" , "aliases": [ "white_medium_square" ] , "tags": [ ] , "unicode_version": "3.2" , "ios_version": "6.0" } , { "emoji": "◾" , "description": "black medium-small square" , "category": "Symbols" , "aliases": [ "black_medium_small_square" ] , "tags": [ ] , "unicode_version": "3.2" , "ios_version": "6.0" } , { "emoji": "◽" , "description": "white medium-small square" , "category": "Symbols" , "aliases": [ "white_medium_small_square" ] , "tags": [ ] , "unicode_version": "3.2" , "ios_version": "6.0" } , { "emoji": "▪️" , "description": "black small square" , "category": "Symbols" , "aliases": [ "black_small_square" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "▫️" , "description": "white small square" , "category": "Symbols" , "aliases": [ "white_small_square" ] , "tags": [ ] , "unicode_version": "" , "ios_version": "6.0" } , { "emoji": "🔶" , "description": "large orange diamond" , "category": "Symbols" , "aliases": [ "large_orange_diamond" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔷" , "description": "large blue diamond" , "category": "Symbols" , "aliases": [ "large_blue_diamond" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔸" , "description": "small orange diamond" , "category": "Symbols" , "aliases": [ "small_orange_diamond" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔹" , "description": "small blue diamond" , "category": "Symbols" , "aliases": [ "small_blue_diamond" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔺" , "description": "red triangle pointed up" , "category": "Symbols" , "aliases": [ "small_red_triangle" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔻" , "description": "red triangle pointed down" , "category": "Symbols" , "aliases": [ "small_red_triangle_down" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "💠" , "description": "diamond with a dot" , "category": "Symbols" , "aliases": [ "diamond_shape_with_a_dot_inside" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔘" , "description": "radio button" , "category": "Symbols" , "aliases": [ "radio_button" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔳" , "description": "white square button" , "category": "Symbols" , "aliases": [ "white_square_button" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🔲" , "description": "black square button" , "category": "Symbols" , "aliases": [ "black_square_button" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏁" , "description": "chequered flag" , "category": "Flags" , "aliases": [ "checkered_flag" ] , "tags": [ "milestone" , "finish" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🚩" , "description": "triangular flag" , "category": "Flags" , "aliases": [ "triangular_flag_on_post" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🎌" , "description": "crossed flags" , "category": "Flags" , "aliases": [ "crossed_flags" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🏴" , "description": "black flag" , "category": "Flags" , "aliases": [ "black_flag" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🏳️" , "description": "white flag" , "category": "Flags" , "aliases": [ "white_flag" ] , "tags": [ ] , "unicode_version": "7.0" , "ios_version": "9.1" } , { "emoji": "🏳️‍🌈" , "description": "rainbow flag" , "category": "Flags" , "aliases": [ "rainbow_flag" ] , "tags": [ "pride" ] , "unicode_version": "6.0" , "ios_version": "10.0" } , { "emoji": "🏳️‍⚧️" , "description": "transgender flag" , "category": "Flags" , "aliases": [ "transgender_flag" ] , "tags": [ ] , "unicode_version": "13.0" , "ios_version": "14.0" } , { "emoji": "🏴‍☠️" , "description": "pirate flag" , "category": "Flags" , "aliases": [ "pirate_flag" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🇦🇨" , "description": "flag: Ascension Island" , "category": "Flags" , "aliases": [ "ascension_island" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🇦🇩" , "description": "flag: Andorra" , "category": "Flags" , "aliases": [ "andorra" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇦🇪" , "description": "flag: United Arab Emirates" , "category": "Flags" , "aliases": [ "united_arab_emirates" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇦🇫" , "description": "flag: Afghanistan" , "category": "Flags" , "aliases": [ "afghanistan" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇦🇬" , "description": "flag: Antigua & Barbuda" , "category": "Flags" , "aliases": [ "antigua_barbuda" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇦🇮" , "description": "flag: Anguilla" , "category": "Flags" , "aliases": [ "anguilla" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇦🇱" , "description": "flag: Albania" , "category": "Flags" , "aliases": [ "albania" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇦🇲" , "description": "flag: Armenia" , "category": "Flags" , "aliases": [ "armenia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇦🇴" , "description": "flag: Angola" , "category": "Flags" , "aliases": [ "angola" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇦🇶" , "description": "flag: Antarctica" , "category": "Flags" , "aliases": [ "antarctica" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇦🇷" , "description": "flag: Argentina" , "category": "Flags" , "aliases": [ "argentina" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇦🇸" , "description": "flag: American Samoa" , "category": "Flags" , "aliases": [ "american_samoa" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇦🇹" , "description": "flag: Austria" , "category": "Flags" , "aliases": [ "austria" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇦🇺" , "description": "flag: Australia" , "category": "Flags" , "aliases": [ "australia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇦🇼" , "description": "flag: Aruba" , "category": "Flags" , "aliases": [ "aruba" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇦🇽" , "description": "flag: Åland Islands" , "category": "Flags" , "aliases": [ "aland_islands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇦🇿" , "description": "flag: Azerbaijan" , "category": "Flags" , "aliases": [ "azerbaijan" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇦" , "description": "flag: Bosnia & Herzegovina" , "category": "Flags" , "aliases": [ "bosnia_herzegovina" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇧" , "description": "flag: Barbados" , "category": "Flags" , "aliases": [ "barbados" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇩" , "description": "flag: Bangladesh" , "category": "Flags" , "aliases": [ "bangladesh" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇪" , "description": "flag: Belgium" , "category": "Flags" , "aliases": [ "belgium" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇫" , "description": "flag: Burkina Faso" , "category": "Flags" , "aliases": [ "burkina_faso" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇬" , "description": "flag: Bulgaria" , "category": "Flags" , "aliases": [ "bulgaria" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇭" , "description": "flag: Bahrain" , "category": "Flags" , "aliases": [ "bahrain" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇮" , "description": "flag: Burundi" , "category": "Flags" , "aliases": [ "burundi" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇯" , "description": "flag: Benin" , "category": "Flags" , "aliases": [ "benin" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇱" , "description": "flag: St. Barthélemy" , "category": "Flags" , "aliases": [ "st_barthelemy" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇧🇲" , "description": "flag: Bermuda" , "category": "Flags" , "aliases": [ "bermuda" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇳" , "description": "flag: Brunei" , "category": "Flags" , "aliases": [ "brunei" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇴" , "description": "flag: Bolivia" , "category": "Flags" , "aliases": [ "bolivia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇶" , "description": "flag: Caribbean Netherlands" , "category": "Flags" , "aliases": [ "caribbean_netherlands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇧🇷" , "description": "flag: Brazil" , "category": "Flags" , "aliases": [ "brazil" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇸" , "description": "flag: Bahamas" , "category": "Flags" , "aliases": [ "bahamas" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇹" , "description": "flag: Bhutan" , "category": "Flags" , "aliases": [ "bhutan" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇻" , "description": "flag: Bouvet Island" , "category": "Flags" , "aliases": [ "bouvet_island" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🇧🇼" , "description": "flag: Botswana" , "category": "Flags" , "aliases": [ "botswana" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇾" , "description": "flag: Belarus" , "category": "Flags" , "aliases": [ "belarus" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇧🇿" , "description": "flag: Belize" , "category": "Flags" , "aliases": [ "belize" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇦" , "description": "flag: Canada" , "category": "Flags" , "aliases": [ "canada" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇨" , "description": "flag: Cocos (Keeling) Islands" , "category": "Flags" , "aliases": [ "cocos_islands" ] , "tags": [ "keeling" ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇨🇩" , "description": "flag: Congo - Kinshasa" , "category": "Flags" , "aliases": [ "congo_kinshasa" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇫" , "description": "flag: Central African Republic" , "category": "Flags" , "aliases": [ "central_african_republic" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇬" , "description": "flag: Congo - Brazzaville" , "category": "Flags" , "aliases": [ "congo_brazzaville" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇭" , "description": "flag: Switzerland" , "category": "Flags" , "aliases": [ "switzerland" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇮" , "description": "flag: Côte d’Ivoire" , "category": "Flags" , "aliases": [ "cote_divoire" ] , "tags": [ "ivory" ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇰" , "description": "flag: Cook Islands" , "category": "Flags" , "aliases": [ "cook_islands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇱" , "description": "flag: Chile" , "category": "Flags" , "aliases": [ "chile" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇲" , "description": "flag: Cameroon" , "category": "Flags" , "aliases": [ "cameroon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇳" , "description": "flag: China" , "category": "Flags" , "aliases": [ "cn" ] , "tags": [ "china" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🇨🇴" , "description": "flag: Colombia" , "category": "Flags" , "aliases": [ "colombia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇵" , "description": "flag: Clipperton Island" , "category": "Flags" , "aliases": [ "clipperton_island" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🇨🇷" , "description": "flag: Costa Rica" , "category": "Flags" , "aliases": [ "costa_rica" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇺" , "description": "flag: Cuba" , "category": "Flags" , "aliases": [ "cuba" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇻" , "description": "flag: Cape Verde" , "category": "Flags" , "aliases": [ "cape_verde" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇼" , "description": "flag: Curaçao" , "category": "Flags" , "aliases": [ "curacao" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇽" , "description": "flag: Christmas Island" , "category": "Flags" , "aliases": [ "christmas_island" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇨🇾" , "description": "flag: Cyprus" , "category": "Flags" , "aliases": [ "cyprus" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇨🇿" , "description": "flag: Czechia" , "category": "Flags" , "aliases": [ "czech_republic" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇩🇪" , "description": "flag: Germany" , "category": "Flags" , "aliases": [ "de" ] , "tags": [ "flag" , "germany" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🇩🇬" , "description": "flag: Diego Garcia" , "category": "Flags" , "aliases": [ "diego_garcia" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🇩🇯" , "description": "flag: Djibouti" , "category": "Flags" , "aliases": [ "djibouti" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇩🇰" , "description": "flag: Denmark" , "category": "Flags" , "aliases": [ "denmark" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇩🇲" , "description": "flag: Dominica" , "category": "Flags" , "aliases": [ "dominica" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇩🇴" , "description": "flag: Dominican Republic" , "category": "Flags" , "aliases": [ "dominican_republic" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇩🇿" , "description": "flag: Algeria" , "category": "Flags" , "aliases": [ "algeria" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇪🇦" , "description": "flag: Ceuta & Melilla" , "category": "Flags" , "aliases": [ "ceuta_melilla" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🇪🇨" , "description": "flag: Ecuador" , "category": "Flags" , "aliases": [ "ecuador" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇪🇪" , "description": "flag: Estonia" , "category": "Flags" , "aliases": [ "estonia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇪🇬" , "description": "flag: Egypt" , "category": "Flags" , "aliases": [ "egypt" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇪🇭" , "description": "flag: Western Sahara" , "category": "Flags" , "aliases": [ "western_sahara" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇪🇷" , "description": "flag: Eritrea" , "category": "Flags" , "aliases": [ "eritrea" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇪🇸" , "description": "flag: Spain" , "category": "Flags" , "aliases": [ "es" ] , "tags": [ "spain" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🇪🇹" , "description": "flag: Ethiopia" , "category": "Flags" , "aliases": [ "ethiopia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇪🇺" , "description": "flag: European Union" , "category": "Flags" , "aliases": [ "eu" , "european_union" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇫🇮" , "description": "flag: Finland" , "category": "Flags" , "aliases": [ "finland" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇫🇯" , "description": "flag: Fiji" , "category": "Flags" , "aliases": [ "fiji" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇫🇰" , "description": "flag: Falkland Islands" , "category": "Flags" , "aliases": [ "falkland_islands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇫🇲" , "description": "flag: Micronesia" , "category": "Flags" , "aliases": [ "micronesia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇫🇴" , "description": "flag: Faroe Islands" , "category": "Flags" , "aliases": [ "faroe_islands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇫🇷" , "description": "flag: France" , "category": "Flags" , "aliases": [ "fr" ] , "tags": [ "france" , "french" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🇬🇦" , "description": "flag: Gabon" , "category": "Flags" , "aliases": [ "gabon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇬🇧" , "description": "flag: United Kingdom" , "category": "Flags" , "aliases": [ "gb" , "uk" ] , "tags": [ "flag" , "british" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🇬🇩" , "description": "flag: Grenada" , "category": "Flags" , "aliases": [ "grenada" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇬🇪" , "description": "flag: Georgia" , "category": "Flags" , "aliases": [ "georgia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇬🇫" , "description": "flag: French Guiana" , "category": "Flags" , "aliases": [ "french_guiana" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇬🇬" , "description": "flag: Guernsey" , "category": "Flags" , "aliases": [ "guernsey" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇬🇭" , "description": "flag: Ghana" , "category": "Flags" , "aliases": [ "ghana" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇬🇮" , "description": "flag: Gibraltar" , "category": "Flags" , "aliases": [ "gibraltar" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇬🇱" , "description": "flag: Greenland" , "category": "Flags" , "aliases": [ "greenland" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇬🇲" , "description": "flag: Gambia" , "category": "Flags" , "aliases": [ "gambia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇬🇳" , "description": "flag: Guinea" , "category": "Flags" , "aliases": [ "guinea" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇬🇵" , "description": "flag: Guadeloupe" , "category": "Flags" , "aliases": [ "guadeloupe" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇬🇶" , "description": "flag: Equatorial Guinea" , "category": "Flags" , "aliases": [ "equatorial_guinea" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇬🇷" , "description": "flag: Greece" , "category": "Flags" , "aliases": [ "greece" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇬🇸" , "description": "flag: South Georgia & South Sandwich Islands" , "category": "Flags" , "aliases": [ "south_georgia_south_sandwich_islands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇬🇹" , "description": "flag: Guatemala" , "category": "Flags" , "aliases": [ "guatemala" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇬🇺" , "description": "flag: Guam" , "category": "Flags" , "aliases": [ "guam" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇬🇼" , "description": "flag: Guinea-Bissau" , "category": "Flags" , "aliases": [ "guinea_bissau" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇬🇾" , "description": "flag: Guyana" , "category": "Flags" , "aliases": [ "guyana" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇭🇰" , "description": "flag: Hong Kong SAR China" , "category": "Flags" , "aliases": [ "hong_kong" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇭🇲" , "description": "flag: Heard & McDonald Islands" , "category": "Flags" , "aliases": [ "heard_mcdonald_islands" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🇭🇳" , "description": "flag: Honduras" , "category": "Flags" , "aliases": [ "honduras" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇭🇷" , "description": "flag: Croatia" , "category": "Flags" , "aliases": [ "croatia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇭🇹" , "description": "flag: Haiti" , "category": "Flags" , "aliases": [ "haiti" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇭🇺" , "description": "flag: Hungary" , "category": "Flags" , "aliases": [ "hungary" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇮🇨" , "description": "flag: Canary Islands" , "category": "Flags" , "aliases": [ "canary_islands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇮🇩" , "description": "flag: Indonesia" , "category": "Flags" , "aliases": [ "indonesia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇮🇪" , "description": "flag: Ireland" , "category": "Flags" , "aliases": [ "ireland" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇮🇱" , "description": "flag: Israel" , "category": "Flags" , "aliases": [ "israel" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇮🇲" , "description": "flag: Isle of Man" , "category": "Flags" , "aliases": [ "isle_of_man" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇮🇳" , "description": "flag: India" , "category": "Flags" , "aliases": [ "india" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇮🇴" , "description": "flag: British Indian Ocean Territory" , "category": "Flags" , "aliases": [ "british_indian_ocean_territory" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇮🇶" , "description": "flag: Iraq" , "category": "Flags" , "aliases": [ "iraq" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇮🇷" , "description": "flag: Iran" , "category": "Flags" , "aliases": [ "iran" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇮🇸" , "description": "flag: Iceland" , "category": "Flags" , "aliases": [ "iceland" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇮🇹" , "description": "flag: Italy" , "category": "Flags" , "aliases": [ "it" ] , "tags": [ "italy" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🇯🇪" , "description": "flag: Jersey" , "category": "Flags" , "aliases": [ "jersey" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇯🇲" , "description": "flag: Jamaica" , "category": "Flags" , "aliases": [ "jamaica" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇯🇴" , "description": "flag: Jordan" , "category": "Flags" , "aliases": [ "jordan" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇯🇵" , "description": "flag: Japan" , "category": "Flags" , "aliases": [ "jp" ] , "tags": [ "japan" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🇰🇪" , "description": "flag: Kenya" , "category": "Flags" , "aliases": [ "kenya" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇰🇬" , "description": "flag: Kyrgyzstan" , "category": "Flags" , "aliases": [ "kyrgyzstan" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇰🇭" , "description": "flag: Cambodia" , "category": "Flags" , "aliases": [ "cambodia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇰🇮" , "description": "flag: Kiribati" , "category": "Flags" , "aliases": [ "kiribati" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇰🇲" , "description": "flag: Comoros" , "category": "Flags" , "aliases": [ "comoros" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇰🇳" , "description": "flag: St. Kitts & Nevis" , "category": "Flags" , "aliases": [ "st_kitts_nevis" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇰🇵" , "description": "flag: North Korea" , "category": "Flags" , "aliases": [ "north_korea" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇰🇷" , "description": "flag: South Korea" , "category": "Flags" , "aliases": [ "kr" ] , "tags": [ "korea" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🇰🇼" , "description": "flag: Kuwait" , "category": "Flags" , "aliases": [ "kuwait" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇰🇾" , "description": "flag: Cayman Islands" , "category": "Flags" , "aliases": [ "cayman_islands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇰🇿" , "description": "flag: Kazakhstan" , "category": "Flags" , "aliases": [ "kazakhstan" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇱🇦" , "description": "flag: Laos" , "category": "Flags" , "aliases": [ "laos" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇱🇧" , "description": "flag: Lebanon" , "category": "Flags" , "aliases": [ "lebanon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇱🇨" , "description": "flag: St. Lucia" , "category": "Flags" , "aliases": [ "st_lucia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇱🇮" , "description": "flag: Liechtenstein" , "category": "Flags" , "aliases": [ "liechtenstein" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇱🇰" , "description": "flag: Sri Lanka" , "category": "Flags" , "aliases": [ "sri_lanka" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇱🇷" , "description": "flag: Liberia" , "category": "Flags" , "aliases": [ "liberia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇱🇸" , "description": "flag: Lesotho" , "category": "Flags" , "aliases": [ "lesotho" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇱🇹" , "description": "flag: Lithuania" , "category": "Flags" , "aliases": [ "lithuania" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇱🇺" , "description": "flag: Luxembourg" , "category": "Flags" , "aliases": [ "luxembourg" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇱🇻" , "description": "flag: Latvia" , "category": "Flags" , "aliases": [ "latvia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇱🇾" , "description": "flag: Libya" , "category": "Flags" , "aliases": [ "libya" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇦" , "description": "flag: Morocco" , "category": "Flags" , "aliases": [ "morocco" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇨" , "description": "flag: Monaco" , "category": "Flags" , "aliases": [ "monaco" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇲🇩" , "description": "flag: Moldova" , "category": "Flags" , "aliases": [ "moldova" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇪" , "description": "flag: Montenegro" , "category": "Flags" , "aliases": [ "montenegro" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇫" , "description": "flag: St. Martin" , "category": "Flags" , "aliases": [ "st_martin" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🇲🇬" , "description": "flag: Madagascar" , "category": "Flags" , "aliases": [ "madagascar" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇭" , "description": "flag: Marshall Islands" , "category": "Flags" , "aliases": [ "marshall_islands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇲🇰" , "description": "flag: North Macedonia" , "category": "Flags" , "aliases": [ "macedonia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇱" , "description": "flag: Mali" , "category": "Flags" , "aliases": [ "mali" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇲" , "description": "flag: Myanmar (Burma)" , "category": "Flags" , "aliases": [ "myanmar" ] , "tags": [ "burma" ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇳" , "description": "flag: Mongolia" , "category": "Flags" , "aliases": [ "mongolia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇴" , "description": "flag: Macao SAR China" , "category": "Flags" , "aliases": [ "macau" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇵" , "description": "flag: Northern Mariana Islands" , "category": "Flags" , "aliases": [ "northern_mariana_islands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇶" , "description": "flag: Martinique" , "category": "Flags" , "aliases": [ "martinique" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇲🇷" , "description": "flag: Mauritania" , "category": "Flags" , "aliases": [ "mauritania" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇸" , "description": "flag: Montserrat" , "category": "Flags" , "aliases": [ "montserrat" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇹" , "description": "flag: Malta" , "category": "Flags" , "aliases": [ "malta" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇺" , "description": "flag: Mauritius" , "category": "Flags" , "aliases": [ "mauritius" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇲🇻" , "description": "flag: Maldives" , "category": "Flags" , "aliases": [ "maldives" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇼" , "description": "flag: Malawi" , "category": "Flags" , "aliases": [ "malawi" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇽" , "description": "flag: Mexico" , "category": "Flags" , "aliases": [ "mexico" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇾" , "description": "flag: Malaysia" , "category": "Flags" , "aliases": [ "malaysia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇲🇿" , "description": "flag: Mozambique" , "category": "Flags" , "aliases": [ "mozambique" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇳🇦" , "description": "flag: Namibia" , "category": "Flags" , "aliases": [ "namibia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇳🇨" , "description": "flag: New Caledonia" , "category": "Flags" , "aliases": [ "new_caledonia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇳🇪" , "description": "flag: Niger" , "category": "Flags" , "aliases": [ "niger" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇳🇫" , "description": "flag: Norfolk Island" , "category": "Flags" , "aliases": [ "norfolk_island" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇳🇬" , "description": "flag: Nigeria" , "category": "Flags" , "aliases": [ "nigeria" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇳🇮" , "description": "flag: Nicaragua" , "category": "Flags" , "aliases": [ "nicaragua" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇳🇱" , "description": "flag: Netherlands" , "category": "Flags" , "aliases": [ "netherlands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇳🇴" , "description": "flag: Norway" , "category": "Flags" , "aliases": [ "norway" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇳🇵" , "description": "flag: Nepal" , "category": "Flags" , "aliases": [ "nepal" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇳🇷" , "description": "flag: Nauru" , "category": "Flags" , "aliases": [ "nauru" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇳🇺" , "description": "flag: Niue" , "category": "Flags" , "aliases": [ "niue" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇳🇿" , "description": "flag: New Zealand" , "category": "Flags" , "aliases": [ "new_zealand" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇴🇲" , "description": "flag: Oman" , "category": "Flags" , "aliases": [ "oman" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇵🇦" , "description": "flag: Panama" , "category": "Flags" , "aliases": [ "panama" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇵🇪" , "description": "flag: Peru" , "category": "Flags" , "aliases": [ "peru" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇵🇫" , "description": "flag: French Polynesia" , "category": "Flags" , "aliases": [ "french_polynesia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇵🇬" , "description": "flag: Papua New Guinea" , "category": "Flags" , "aliases": [ "papua_new_guinea" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇵🇭" , "description": "flag: Philippines" , "category": "Flags" , "aliases": [ "philippines" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇵🇰" , "description": "flag: Pakistan" , "category": "Flags" , "aliases": [ "pakistan" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇵🇱" , "description": "flag: Poland" , "category": "Flags" , "aliases": [ "poland" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇵🇲" , "description": "flag: St. Pierre & Miquelon" , "category": "Flags" , "aliases": [ "st_pierre_miquelon" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇵🇳" , "description": "flag: Pitcairn Islands" , "category": "Flags" , "aliases": [ "pitcairn_islands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇵🇷" , "description": "flag: Puerto Rico" , "category": "Flags" , "aliases": [ "puerto_rico" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇵🇸" , "description": "flag: Palestinian Territories" , "category": "Flags" , "aliases": [ "palestinian_territories" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇵🇹" , "description": "flag: Portugal" , "category": "Flags" , "aliases": [ "portugal" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇵🇼" , "description": "flag: Palau" , "category": "Flags" , "aliases": [ "palau" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇵🇾" , "description": "flag: Paraguay" , "category": "Flags" , "aliases": [ "paraguay" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇶🇦" , "description": "flag: Qatar" , "category": "Flags" , "aliases": [ "qatar" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇷🇪" , "description": "flag: Réunion" , "category": "Flags" , "aliases": [ "reunion" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇷🇴" , "description": "flag: Romania" , "category": "Flags" , "aliases": [ "romania" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇷🇸" , "description": "flag: Serbia" , "category": "Flags" , "aliases": [ "serbia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇷🇺" , "description": "flag: Russia" , "category": "Flags" , "aliases": [ "ru" ] , "tags": [ "russia" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🇷🇼" , "description": "flag: Rwanda" , "category": "Flags" , "aliases": [ "rwanda" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇦" , "description": "flag: Saudi Arabia" , "category": "Flags" , "aliases": [ "saudi_arabia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇧" , "description": "flag: Solomon Islands" , "category": "Flags" , "aliases": [ "solomon_islands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇨" , "description": "flag: Seychelles" , "category": "Flags" , "aliases": [ "seychelles" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇩" , "description": "flag: Sudan" , "category": "Flags" , "aliases": [ "sudan" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇪" , "description": "flag: Sweden" , "category": "Flags" , "aliases": [ "sweden" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇬" , "description": "flag: Singapore" , "category": "Flags" , "aliases": [ "singapore" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇭" , "description": "flag: St. Helena" , "category": "Flags" , "aliases": [ "st_helena" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇸🇮" , "description": "flag: Slovenia" , "category": "Flags" , "aliases": [ "slovenia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇯" , "description": "flag: Svalbard & Jan Mayen" , "category": "Flags" , "aliases": [ "svalbard_jan_mayen" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🇸🇰" , "description": "flag: Slovakia" , "category": "Flags" , "aliases": [ "slovakia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇱" , "description": "flag: Sierra Leone" , "category": "Flags" , "aliases": [ "sierra_leone" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇲" , "description": "flag: San Marino" , "category": "Flags" , "aliases": [ "san_marino" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇳" , "description": "flag: Senegal" , "category": "Flags" , "aliases": [ "senegal" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇴" , "description": "flag: Somalia" , "category": "Flags" , "aliases": [ "somalia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇷" , "description": "flag: Suriname" , "category": "Flags" , "aliases": [ "suriname" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇸" , "description": "flag: South Sudan" , "category": "Flags" , "aliases": [ "south_sudan" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇹" , "description": "flag: São Tomé & Príncipe" , "category": "Flags" , "aliases": [ "sao_tome_principe" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇻" , "description": "flag: El Salvador" , "category": "Flags" , "aliases": [ "el_salvador" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇽" , "description": "flag: Sint Maarten" , "category": "Flags" , "aliases": [ "sint_maarten" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇾" , "description": "flag: Syria" , "category": "Flags" , "aliases": [ "syria" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇸🇿" , "description": "flag: Eswatini" , "category": "Flags" , "aliases": [ "swaziland" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇹🇦" , "description": "flag: Tristan da Cunha" , "category": "Flags" , "aliases": [ "tristan_da_cunha" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🇹🇨" , "description": "flag: Turks & Caicos Islands" , "category": "Flags" , "aliases": [ "turks_caicos_islands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇹🇩" , "description": "flag: Chad" , "category": "Flags" , "aliases": [ "chad" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇹🇫" , "description": "flag: French Southern Territories" , "category": "Flags" , "aliases": [ "french_southern_territories" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇹🇬" , "description": "flag: Togo" , "category": "Flags" , "aliases": [ "togo" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇹🇭" , "description": "flag: Thailand" , "category": "Flags" , "aliases": [ "thailand" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇹🇯" , "description": "flag: Tajikistan" , "category": "Flags" , "aliases": [ "tajikistan" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇹🇰" , "description": "flag: Tokelau" , "category": "Flags" , "aliases": [ "tokelau" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇹🇱" , "description": "flag: Timor-Leste" , "category": "Flags" , "aliases": [ "timor_leste" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇹🇲" , "description": "flag: Turkmenistan" , "category": "Flags" , "aliases": [ "turkmenistan" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇹🇳" , "description": "flag: Tunisia" , "category": "Flags" , "aliases": [ "tunisia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇹🇴" , "description": "flag: Tonga" , "category": "Flags" , "aliases": [ "tonga" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇹🇷" , "description": "flag: Turkey" , "category": "Flags" , "aliases": [ "tr" ] , "tags": [ "turkey" ] , "unicode_version": "8.0" , "ios_version": "9.1" } , { "emoji": "🇹🇹" , "description": "flag: Trinidad & Tobago" , "category": "Flags" , "aliases": [ "trinidad_tobago" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇹🇻" , "description": "flag: Tuvalu" , "category": "Flags" , "aliases": [ "tuvalu" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇹🇼" , "description": "flag: Taiwan" , "category": "Flags" , "aliases": [ "taiwan" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇹🇿" , "description": "flag: Tanzania" , "category": "Flags" , "aliases": [ "tanzania" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇺🇦" , "description": "flag: Ukraine" , "category": "Flags" , "aliases": [ "ukraine" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇺🇬" , "description": "flag: Uganda" , "category": "Flags" , "aliases": [ "uganda" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇺🇲" , "description": "flag: U.S. Outlying Islands" , "category": "Flags" , "aliases": [ "us_outlying_islands" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🇺🇳" , "description": "flag: United Nations" , "category": "Flags" , "aliases": [ "united_nations" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🇺🇸" , "description": "flag: United States" , "category": "Flags" , "aliases": [ "us" ] , "tags": [ "flag" , "united" , "america" ] , "unicode_version": "6.0" , "ios_version": "6.0" } , { "emoji": "🇺🇾" , "description": "flag: Uruguay" , "category": "Flags" , "aliases": [ "uruguay" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇺🇿" , "description": "flag: Uzbekistan" , "category": "Flags" , "aliases": [ "uzbekistan" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇻🇦" , "description": "flag: Vatican City" , "category": "Flags" , "aliases": [ "vatican_city" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇻🇨" , "description": "flag: St. Vincent & Grenadines" , "category": "Flags" , "aliases": [ "st_vincent_grenadines" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇻🇪" , "description": "flag: Venezuela" , "category": "Flags" , "aliases": [ "venezuela" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇻🇬" , "description": "flag: British Virgin Islands" , "category": "Flags" , "aliases": [ "british_virgin_islands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇻🇮" , "description": "flag: U.S. Virgin Islands" , "category": "Flags" , "aliases": [ "us_virgin_islands" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇻🇳" , "description": "flag: Vietnam" , "category": "Flags" , "aliases": [ "vietnam" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇻🇺" , "description": "flag: Vanuatu" , "category": "Flags" , "aliases": [ "vanuatu" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇼🇫" , "description": "flag: Wallis & Futuna" , "category": "Flags" , "aliases": [ "wallis_futuna" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇼🇸" , "description": "flag: Samoa" , "category": "Flags" , "aliases": [ "samoa" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇽🇰" , "description": "flag: Kosovo" , "category": "Flags" , "aliases": [ "kosovo" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇾🇪" , "description": "flag: Yemen" , "category": "Flags" , "aliases": [ "yemen" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇾🇹" , "description": "flag: Mayotte" , "category": "Flags" , "aliases": [ "mayotte" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "9.0" } , { "emoji": "🇿🇦" , "description": "flag: South Africa" , "category": "Flags" , "aliases": [ "south_africa" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇿🇲" , "description": "flag: Zambia" , "category": "Flags" , "aliases": [ "zambia" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🇿🇼" , "description": "flag: Zimbabwe" , "category": "Flags" , "aliases": [ "zimbabwe" ] , "tags": [ ] , "unicode_version": "6.0" , "ios_version": "8.3" } , { "emoji": "🏴󠁧󠁢󠁥󠁮󠁧󠁿" , "description": "flag: England" , "category": "Flags" , "aliases": [ "england" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🏴󠁧󠁢󠁳󠁣󠁴󠁿" , "description": "flag: Scotland" , "category": "Flags" , "aliases": [ "scotland" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } , { "emoji": "🏴󠁧󠁢󠁷󠁬󠁳󠁿" , "description": "flag: Wales" , "category": "Flags" , "aliases": [ "wales" ] , "tags": [ ] , "unicode_version": "11.0" , "ios_version": "12.1" } ] ntfy-2.11.0/scripts/postinst.sh000077500000000000000000000031761462047176100165030ustar00rootroot00000000000000#!/bin/sh set -e # Restart systemd service if it was already running. Note that "deb-systemd-invoke try-restart" will # only act if the service is already running. If it's not running, it's a no-op. # if [ "$1" = "configure" ] || [ "$1" -ge 1 ]; then if [ -d /run/systemd/system ]; then # Create ntfy user/group groupadd -f ntfy id ntfy >/dev/null 2>&1 || useradd --system --no-create-home -g ntfy ntfy chown ntfy:ntfy /var/cache/ntfy /var/cache/ntfy/attachments /var/lib/ntfy chmod 700 /var/cache/ntfy /var/cache/ntfy/attachments /var/lib/ntfy # Hack to change permissions on cache file configfile="/etc/ntfy/server.yml" if [ -f "$configfile" ]; then cachefile="$(cat "$configfile" | perl -n -e'/^\s*cache-file: ["'"'"']?([^"'"'"']+)["'"'"']?/ && print $1')" # Oh my, see #47 if [ -n "$cachefile" ]; then chown ntfy:ntfy "$cachefile" || true chmod 600 "$cachefile" || true fi fi # Restart services systemctl --system daemon-reload >/dev/null || true if systemctl is-active -q ntfy.service; then echo "Restarting ntfy.service ..." if [ -x /usr/bin/deb-systemd-invoke ]; then deb-systemd-invoke try-restart ntfy.service >/dev/null || true else systemctl restart ntfy.service >/dev/null || true fi fi if systemctl is-active -q ntfy-client.service; then echo "Restarting ntfy-client.service ..." if [ -x /usr/bin/deb-systemd-invoke ]; then deb-systemd-invoke try-restart ntfy-client.service >/dev/null || true else systemctl restart ntfy-client.service >/dev/null || true fi fi fi fi ntfy-2.11.0/scripts/postrm.sh000077500000000000000000000003431462047176100161350ustar00rootroot00000000000000#!/bin/sh set -e # Delete the config if package is purged if [ "$1" = "purge" ] || [ "$1" = "0" ]; then id ntfy >/dev/null 2>&1 && userdel ntfy rm -f /etc/ntfy/server.yml /etc/ntfy/client.yml rmdir /etc/ntfy || true fi ntfy-2.11.0/scripts/preinst.sh000077500000000000000000000005051462047176100162750ustar00rootroot00000000000000#!/bin/sh set -e if [ "$1" = "install" ] || [ "$1" = "upgrade" ] || [ "$1" -ge 1 ]; then # Migration of old to new config file name oldconfigfile="/etc/ntfy/config.yml" configfile="/etc/ntfy/server.yml" if [ -f "$oldconfigfile" ] && [ ! -f "$configfile" ]; then mv "$oldconfigfile" "$configfile" || true fi fi ntfy-2.11.0/scripts/prerm.sh000077500000000000000000000005351462047176100157410ustar00rootroot00000000000000#!/bin/sh set -e # Stop systemd service if [ -d /run/systemd/system ]; then if [ "$1" = "remove" ] || [ "$1" = "0" ]; then echo "Stopping ntfy.service ..." if [ -x /usr/bin/deb-systemd-invoke ]; then deb-systemd-invoke stop 'ntfy.service' >/dev/null || true else systemctl stop ntfy >/dev/null 2>&1 || true fi fi fi ntfy-2.11.0/server/000077500000000000000000000000001462047176100140715ustar00rootroot00000000000000ntfy-2.11.0/server/actions.go000066400000000000000000000214221462047176100160610ustar00rootroot00000000000000package server import ( "encoding/json" "errors" "fmt" "heckel.io/ntfy/v2/util" "regexp" "strings" "unicode/utf8" ) const ( actionIDLength = 10 actionEOF = rune(0) actionsMax = 3 ) const ( actionView = "view" actionBroadcast = "broadcast" actionHTTP = "http" ) var ( actionsAll = []string{actionView, actionBroadcast, actionHTTP} actionsWithURL = []string{actionView, actionHTTP} actionsKeyRegex = regexp.MustCompile(`^([-.\w]+)\s*=\s*`) ) type actionParser struct { input string pos int } // parseActions parses the actions string as described in https://ntfy.sh/docs/publish/#action-buttons. // It supports both a JSON representation (if the string begins with "[", see parseActionsFromJSON), // and the "simple" format, which is more human-readable, but harder to parse (see parseActionsFromSimple). func parseActions(s string) (actions []*action, err error) { // Parse JSON or simple format s = strings.TrimSpace(s) if strings.HasPrefix(s, "[") { actions, err = parseActionsFromJSON(s) } else { actions, err = parseActionsFromSimple(s) } if err != nil { return nil, err } // Add ID field, ensure correct uppercase/lowercase for i := range actions { actions[i].ID = util.RandomString(actionIDLength) actions[i].Action = strings.ToLower(actions[i].Action) actions[i].Method = strings.ToUpper(actions[i].Method) } // Validate if len(actions) > actionsMax { return nil, fmt.Errorf("only %d actions allowed", actionsMax) } for _, action := range actions { if !util.Contains(actionsAll, action.Action) { return nil, fmt.Errorf("parameter 'action' cannot be '%s', valid values are 'view', 'broadcast' and 'http'", action.Action) } else if action.Label == "" { return nil, fmt.Errorf("parameter 'label' is required") } else if util.Contains(actionsWithURL, action.Action) && action.URL == "" { return nil, fmt.Errorf("parameter 'url' is required for action '%s'", action.Action) } else if action.Action == actionHTTP && util.Contains([]string{"GET", "HEAD"}, action.Method) && action.Body != "" { return nil, fmt.Errorf("parameter 'body' cannot be set if method is %s", action.Method) } } return actions, nil } // parseActionsFromJSON converts a JSON array into an array of actions func parseActionsFromJSON(s string) ([]*action, error) { actions := make([]*action, 0) if err := json.Unmarshal([]byte(s), &actions); err != nil { return nil, fmt.Errorf("JSON error: %w", err) } return actions, nil } // parseActionsFromSimple parses the "simple" actions string (as described in // https://ntfy.sh/docs/publish/#action-buttons), into an array of actions. // // It can parse an actions string like this: // // view, "Look ma, commas and \"quotes\" too", url=https://..; action=broadcast, ... // // It works by advancing the position ("pos") through the input string ("input"). // // The parser is heavily inspired by https://go.dev/src/text/template/parse/lex.go (which // is described by Rob Pike in this video: https://www.youtube.com/watch?v=HxaD_trXwRE), // though it does not use state functions at all. // // Other resources: // // https://adampresley.github.io/2015/04/12/writing-a-lexer-and-parser-in-go-part-1.html // https://github.com/adampresley/sample-ini-parser/blob/master/services/lexer/lexer/Lexer.go // https://github.com/benbjohnson/sql-parser/blob/master/scanner.go // https://blog.gopheracademy.com/advent-2014/parsers-lexers/ func parseActionsFromSimple(s string) ([]*action, error) { if !utf8.ValidString(s) { return nil, errors.New("invalid utf-8 string") } parser := &actionParser{ pos: 0, input: s, } return parser.Parse() } // Parse loops trough parseAction() until the end of the string is reached func (p *actionParser) Parse() ([]*action, error) { actions := make([]*action, 0) for !p.eof() { a, err := p.parseAction() if err != nil { return nil, err } actions = append(actions, a) } return actions, nil } // parseAction parses the individual sections of an action using parseSection into key/value pairs, // and then uses populateAction to interpret the keys/values. The function terminates // when EOF or ";" is reached. func (p *actionParser) parseAction() (*action, error) { a := newAction() section := 0 for { key, value, last, err := p.parseSection() if err != nil { return nil, err } if err := populateAction(a, section, key, value); err != nil { return nil, err } p.slurpSpaces() if last { return a, nil } section++ } } // populateAction is the "business logic" of the parser. It applies the key/value // pair to the action instance. func populateAction(newAction *action, section int, key, value string) error { // Auto-expand keys based on their index if key == "" && section == 0 { key = "action" } else if key == "" && section == 1 { key = "label" } else if key == "" && section == 2 && util.Contains(actionsWithURL, newAction.Action) { key = "url" } // Validate if key == "" { return fmt.Errorf("term '%s' unknown", value) } // Populate if strings.HasPrefix(key, "headers.") { newAction.Headers[strings.TrimPrefix(key, "headers.")] = value } else if strings.HasPrefix(key, "extras.") { newAction.Extras[strings.TrimPrefix(key, "extras.")] = value } else { switch strings.ToLower(key) { case "action": newAction.Action = value case "label": newAction.Label = value case "clear": lvalue := strings.ToLower(value) if !util.Contains([]string{"true", "yes", "1", "false", "no", "0"}, lvalue) { return fmt.Errorf("parameter 'clear' cannot be '%s', only boolean values are allowed (true/yes/1/false/no/0)", value) } newAction.Clear = lvalue == "true" || lvalue == "yes" || lvalue == "1" case "url": newAction.URL = value case "method": newAction.Method = value case "body": newAction.Body = value case "intent": newAction.Intent = value default: return fmt.Errorf("key '%s' unknown", key) } } return nil } // parseSection parses a section ("key=value") and returns a key/value pair. It terminates // when EOF or "," is reached. func (p *actionParser) parseSection() (key string, value string, last bool, err error) { p.slurpSpaces() key = p.parseKey() r, w := p.peek() if isSectionEnd(r) { p.pos += w last = isLastSection(r) return } else if r == '"' || r == '\'' { value, last, err = p.parseQuotedValue(r) return } value, last = p.parseValue() return } // parseKey uses a regex to determine whether the current position is a key definition ("key =") // and returns the key if it is, or an empty string otherwise. func (p *actionParser) parseKey() string { matches := actionsKeyRegex.FindStringSubmatch(p.input[p.pos:]) if len(matches) == 2 { p.pos += len(matches[0]) return matches[1] } return "" } // parseValue reads the input until EOF, "," or ";" and returns the value string. Unlike parseQuotedValue, // this function does not support "," or ";" in the value itself, and spaces in the beginning and end of the // string are trimmed. func (p *actionParser) parseValue() (value string, last bool) { start := p.pos for { r, w := p.peek() if isSectionEnd(r) { last = isLastSection(r) value = strings.TrimSpace(p.input[start:p.pos]) p.pos += w return } p.pos += w } } // parseQuotedValue reads the input until it finds an unescaped end quote character ("), and then // advances the position beyond the section end. It supports quoting strings using backslash (\). func (p *actionParser) parseQuotedValue(quote rune) (value string, last bool, err error) { p.pos++ start := p.pos var prev rune for { r, w := p.peek() if r == actionEOF { err = fmt.Errorf("unexpected end of input, quote started at position %d", start) return } else if r == quote && prev != '\\' { value = strings.ReplaceAll(p.input[start:p.pos], "\\"+string(quote), string(quote)) // \" -> " p.pos += w // Advance until section end (after "," or ";") p.slurpSpaces() r, w := p.peek() last = isLastSection(r) if !isSectionEnd(r) { err = fmt.Errorf("unexpected character '%c' at position %d", r, p.pos) return } p.pos += w return } prev = r p.pos += w } } // slurpSpaces reads all space characters and advances the position func (p *actionParser) slurpSpaces() { for { r, w := p.peek() if r == actionEOF || !isSpace(r) { return } p.pos += w } } // peek returns the next run and its width func (p *actionParser) peek() (rune, int) { if p.eof() { return actionEOF, 0 } return utf8.DecodeRuneInString(p.input[p.pos:]) } // eof returns true if the end of the input has been reached func (p *actionParser) eof() bool { return p.pos >= len(p.input) } func isSpace(r rune) bool { return r == ' ' || r == '\t' || r == '\r' || r == '\n' } func isSectionEnd(r rune) bool { return r == actionEOF || r == ';' || r == ',' } func isLastSection(r rune) bool { return r == actionEOF || r == ';' } ntfy-2.11.0/server/actions_test.go000066400000000000000000000175411462047176100171270ustar00rootroot00000000000000package server import ( "github.com/stretchr/testify/require" "testing" ) func TestParseActions(t *testing.T) { actions, err := parseActions("[]") require.Nil(t, err) require.Empty(t, actions) // Basic test actions, err = parseActions("action=http, label=Open door, url=https://door.lan/open; view, Show portal, https://door.lan") require.Nil(t, err) require.Equal(t, 2, len(actions)) require.Equal(t, "http", actions[0].Action) require.Equal(t, "Open door", actions[0].Label) require.Equal(t, "https://door.lan/open", actions[0].URL) require.Equal(t, "view", actions[1].Action) require.Equal(t, "Show portal", actions[1].Label) require.Equal(t, "https://door.lan", actions[1].URL) // JSON actions, err = parseActions(`[{"action":"http","label":"Open door","url":"https://door.lan/open"}, {"action":"view","label":"Show portal","url":"https://door.lan"}]`) require.Nil(t, err) require.Equal(t, 2, len(actions)) require.Equal(t, "http", actions[0].Action) require.Equal(t, "Open door", actions[0].Label) require.Equal(t, "https://door.lan/open", actions[0].URL) require.Equal(t, "view", actions[1].Action) require.Equal(t, "Show portal", actions[1].Label) require.Equal(t, "https://door.lan", actions[1].URL) // Other params actions, err = parseActions("action=http, label=Open door, url=https://door.lan/open, body=this is a body, method=PUT") require.Nil(t, err) require.Equal(t, 1, len(actions)) require.Equal(t, "http", actions[0].Action) require.Equal(t, "Open door", actions[0].Label) require.Equal(t, "https://door.lan/open", actions[0].URL) require.Equal(t, "PUT", actions[0].Method) require.Equal(t, "this is a body", actions[0].Body) // Extras with underscores actions, err = parseActions("action=broadcast, label=Do a thing, extras.command=some command, extras.some_param=a parameter") require.Nil(t, err) require.Equal(t, 1, len(actions)) require.Equal(t, "broadcast", actions[0].Action) require.Equal(t, "Do a thing", actions[0].Label) require.Equal(t, 2, len(actions[0].Extras)) require.Equal(t, "some command", actions[0].Extras["command"]) require.Equal(t, "a parameter", actions[0].Extras["some_param"]) // Broadcast action with intent actions, err = parseActions("action=broadcast, label=Do a thing, intent=io.heckel.ntfy.TEST_INTENT") require.Nil(t, err) require.Equal(t, 1, len(actions)) require.Equal(t, "broadcast", actions[0].Action) require.Equal(t, "Do a thing", actions[0].Label) require.Equal(t, "io.heckel.ntfy.TEST_INTENT", actions[0].Intent) // Headers with dashes actions, err = parseActions("action=http, label=Send request, url=http://example.com, method=GET, headers.Content-Type=application/json, headers.Authorization=Basic sdasffsf") require.Nil(t, err) require.Equal(t, 1, len(actions)) require.Equal(t, "http", actions[0].Action) require.Equal(t, "Send request", actions[0].Label) require.Equal(t, 2, len(actions[0].Headers)) require.Equal(t, "application/json", actions[0].Headers["Content-Type"]) require.Equal(t, "Basic sdasffsf", actions[0].Headers["Authorization"]) // Quotes actions, err = parseActions(`action=http, "Look ma, \"quotes\"; and semicolons", url=http://example.com`) require.Nil(t, err) require.Equal(t, 1, len(actions)) require.Equal(t, "http", actions[0].Action) require.Equal(t, `Look ma, "quotes"; and semicolons`, actions[0].Label) require.Equal(t, `http://example.com`, actions[0].URL) // Single quotes actions, err = parseActions(`action=http, '"quotes" and \'single quotes\'', url=http://example.com`) require.Nil(t, err) require.Equal(t, 1, len(actions)) require.Equal(t, "http", actions[0].Action) require.Equal(t, `"quotes" and 'single quotes'`, actions[0].Label) require.Equal(t, `http://example.com`, actions[0].URL) // Single quotes (JSON) actions, err = parseActions(`action=http, Post it, url=http://example.com, body='{"temperature": 65}'`) require.Nil(t, err) require.Equal(t, 1, len(actions)) require.Equal(t, "http", actions[0].Action) require.Equal(t, "Post it", actions[0].Label) require.Equal(t, `http://example.com`, actions[0].URL) require.Equal(t, `{"temperature": 65}`, actions[0].Body) // Out of order actions, err = parseActions(`label="Out of order!" , action="http", url=http://example.com`) require.Nil(t, err) require.Equal(t, 1, len(actions)) require.Equal(t, "http", actions[0].Action) require.Equal(t, `Out of order!`, actions[0].Label) require.Equal(t, `http://example.com`, actions[0].URL) // Spaces actions, err = parseActions(`action = http, label = 'this is a label', url = "http://google.com"`) require.Nil(t, err) require.Equal(t, 1, len(actions)) require.Equal(t, "http", actions[0].Action) require.Equal(t, `this is a label`, actions[0].Label) require.Equal(t, `http://google.com`, actions[0].URL) // Non-ASCII actions, err = parseActions(`action = http, 'Кохайтеся а не воюйте, 💙🫤', url = "http://google.com"`) require.Nil(t, err) require.Equal(t, 1, len(actions)) require.Equal(t, "http", actions[0].Action) require.Equal(t, `Кохайтеся а не воюйте, 💙🫤`, actions[0].Label) require.Equal(t, `http://google.com`, actions[0].URL) // Multiple actions, awkward spacing actions, err = parseActions(`http , 'Make love, not war 💙🫤' , https://ntfy.sh ; view, " yo ", https://x.org, clear=true`) require.Nil(t, err) require.Equal(t, 2, len(actions)) require.Equal(t, "http", actions[0].Action) require.Equal(t, `Make love, not war 💙🫤`, actions[0].Label) require.Equal(t, `https://ntfy.sh`, actions[0].URL) require.Equal(t, false, actions[0].Clear) require.Equal(t, "view", actions[1].Action) require.Equal(t, " yo ", actions[1].Label) require.Equal(t, `https://x.org`, actions[1].URL) require.Equal(t, true, actions[1].Clear) // Invalid syntax _, err = parseActions(`label="Out of order!" x, action="http", url=http://example.com`) require.EqualError(t, err, "unexpected character 'x' at position 22") _, err = parseActions(`label="", action="http", url=http://example.com`) require.EqualError(t, err, "parameter 'label' is required") _, err = parseActions(`label=, action="http", url=http://example.com`) require.EqualError(t, err, "parameter 'label' is required") _, err = parseActions(`label="xx", action="http", url=http://example.com, what is this anyway`) require.EqualError(t, err, "term 'what is this anyway' unknown") _, err = parseActions(`fdsfdsf`) require.EqualError(t, err, "parameter 'action' cannot be 'fdsfdsf', valid values are 'view', 'broadcast' and 'http'") _, err = parseActions(`aaa=a, "bbb, 'ccc, ddd, eee "`) require.EqualError(t, err, "key 'aaa' unknown") _, err = parseActions(`action=http, label="omg the end quote is missing`) require.EqualError(t, err, "unexpected end of input, quote started at position 20") _, err = parseActions(`;;;;`) require.EqualError(t, err, "only 3 actions allowed") _, err = parseActions(`,,,,,,;;`) require.EqualError(t, err, "term '' unknown") _, err = parseActions(`''";,;"`) require.EqualError(t, err, "unexpected character '\"' at position 2") _, err = parseActions(`action=http, label=a label, body=somebody`) require.EqualError(t, err, "parameter 'url' is required for action 'http'") _, err = parseActions(`action=http, label=a label, url=http://ntfy.sh, method=HEAD, body=somebody`) require.EqualError(t, err, "parameter 'body' cannot be set if method is HEAD") _, err = parseActions(`[ invalid json ]`) require.EqualError(t, err, "JSON error: invalid character 'i' looking for beginning of value") _, err = parseActions(`[ { "some": "object" } ]`) require.EqualError(t, err, "parameter 'action' cannot be '', valid values are 'view', 'broadcast' and 'http'") _, err = parseActions("\x00\x01\xFFx\xFE") require.EqualError(t, err, "invalid utf-8 string") _, err = parseActions(`http, label, http://x.org, clear=x`) require.EqualError(t, err, "parameter 'clear' cannot be 'x', only boolean values are allowed (true/yes/1/false/no/0)") } ntfy-2.11.0/server/config.go000066400000000000000000000316001462047176100156650ustar00rootroot00000000000000package server import ( "io/fs" "net/netip" "time" "heckel.io/ntfy/v2/user" ) // Defines default config settings (excluding limits, see below) const ( DefaultListenHTTP = ":80" DefaultCacheDuration = 12 * time.Hour DefaultCacheBatchTimeout = time.Duration(0) DefaultKeepaliveInterval = 45 * time.Second // Not too frequently to save battery (Android read timeout used to be 77s!) DefaultManagerInterval = time.Minute DefaultDelayedSenderInterval = 10 * time.Second DefaultMessageDelayMin = 10 * time.Second DefaultMessageDelayMax = 3 * 24 * time.Hour DefaultFirebaseKeepaliveInterval = 3 * time.Hour // ~control topic (Android), not too frequently to save battery DefaultFirebasePollInterval = 20 * time.Minute // ~poll topic (iOS), max. 2-3 times per hour (see docs) DefaultFirebaseQuotaExceededPenaltyDuration = 10 * time.Minute // Time that over-users are locked out of Firebase if it returns "quota exceeded" DefaultStripePriceCacheDuration = 3 * time.Hour // Time to keep Stripe prices cached in memory before a refresh is needed ) // Defines default Web Push settings const ( DefaultWebPushExpiryWarningDuration = 7 * 24 * time.Hour DefaultWebPushExpiryDuration = 9 * 24 * time.Hour ) // Defines all global and per-visitor limits // - message size limit: the max number of bytes for a message // - total topic limit: max number of topics overall // - various attachment limits const ( DefaultMessageSizeLimit = 4096 // Bytes; note that FCM/APNS have a limit of ~4 KB for the entire message DefaultTotalTopicLimit = 15000 DefaultAttachmentTotalSizeLimit = int64(5 * 1024 * 1024 * 1024) // 5 GB DefaultAttachmentFileSizeLimit = int64(15 * 1024 * 1024) // 15 MB DefaultAttachmentExpiryDuration = 3 * time.Hour ) // Defines all per-visitor limits // - per visitor subscription limit: max number of subscriptions (active HTTP connections) per per-visitor/IP // - per visitor request limit: max number of PUT/GET/.. requests (here: 60 requests bucket, replenished at a rate of one per 5 seconds) // - per visitor email limit: max number of emails (here: 16 email bucket, replenished at a rate of one per hour) // - per visitor attachment size limit: total per-visitor attachment size in bytes to be stored on the server // - per visitor attachment daily bandwidth limit: number of bytes that can be transferred to/from the server const ( DefaultVisitorSubscriptionLimit = 30 DefaultVisitorRequestLimitBurst = 60 DefaultVisitorRequestLimitReplenish = 5 * time.Second DefaultVisitorMessageDailyLimit = 0 DefaultVisitorEmailLimitBurst = 16 DefaultVisitorEmailLimitReplenish = time.Hour DefaultVisitorAccountCreationLimitBurst = 3 DefaultVisitorAccountCreationLimitReplenish = 24 * time.Hour DefaultVisitorAuthFailureLimitBurst = 30 DefaultVisitorAuthFailureLimitReplenish = time.Minute DefaultVisitorAttachmentTotalSizeLimit = 100 * 1024 * 1024 // 100 MB DefaultVisitorAttachmentDailyBandwidthLimit = 500 * 1024 * 1024 // 500 MB ) var ( // DefaultVisitorStatsResetTime defines the time at which visitor stats are reset (wall clock only) DefaultVisitorStatsResetTime = time.Date(0, 0, 0, 0, 0, 0, 0, time.UTC) // DefaultDisallowedTopics defines the topics that are forbidden, because they are used elsewhere. This array can be // extended using the server.yml config. If updated, also update in Android and web app. DefaultDisallowedTopics = []string{"docs", "static", "file", "app", "metrics", "account", "settings", "signup", "login", "v1"} ) // Config is the main config struct for the application. Use New to instantiate a default config struct. type Config struct { File string // Config file, only used for testing BaseURL string ListenHTTP string ListenHTTPS string ListenUnix string ListenUnixMode fs.FileMode KeyFile string CertFile string FirebaseKeyFile string CacheFile string CacheDuration time.Duration CacheStartupQueries string CacheBatchSize int CacheBatchTimeout time.Duration AuthFile string AuthStartupQueries string AuthDefault user.Permission AuthBcryptCost int AuthStatsQueueWriterInterval time.Duration AttachmentCacheDir string AttachmentTotalSizeLimit int64 AttachmentFileSizeLimit int64 AttachmentExpiryDuration time.Duration KeepaliveInterval time.Duration ManagerInterval time.Duration DisallowedTopics []string WebRoot string // empty to disable DelayedSenderInterval time.Duration FirebaseKeepaliveInterval time.Duration FirebasePollInterval time.Duration FirebaseQuotaExceededPenaltyDuration time.Duration UpstreamBaseURL string UpstreamAccessToken string SMTPSenderAddr string SMTPSenderUser string SMTPSenderPass string SMTPSenderFrom string SMTPServerListen string SMTPServerDomain string SMTPServerAddrPrefix string TwilioAccount string TwilioAuthToken string TwilioPhoneNumber string TwilioCallsBaseURL string TwilioVerifyBaseURL string TwilioVerifyService string MetricsEnable bool MetricsListenHTTP string ProfileListenHTTP string MessageDelayMin time.Duration MessageDelayMax time.Duration MessageSizeLimit int TotalTopicLimit int TotalAttachmentSizeLimit int64 VisitorSubscriptionLimit int VisitorAttachmentTotalSizeLimit int64 VisitorAttachmentDailyBandwidthLimit int64 VisitorRequestLimitBurst int VisitorRequestLimitReplenish time.Duration VisitorRequestExemptIPAddrs []netip.Prefix VisitorMessageDailyLimit int VisitorEmailLimitBurst int VisitorEmailLimitReplenish time.Duration VisitorAccountCreationLimitBurst int VisitorAccountCreationLimitReplenish time.Duration VisitorAuthFailureLimitBurst int VisitorAuthFailureLimitReplenish time.Duration VisitorStatsResetTime time.Time // Time of the day at which to reset visitor stats VisitorSubscriberRateLimiting bool // Enable subscriber-based rate limiting for UnifiedPush topics BehindProxy bool StripeSecretKey string StripeWebhookKey string StripePriceCacheDuration time.Duration BillingContact string EnableSignup bool // Enable creation of accounts via API and UI EnableLogin bool EnableReservations bool // Allow users with role "user" to own/reserve topics EnableMetrics bool AccessControlAllowOrigin string // CORS header field to restrict access from web clients Version string // injected by App WebPushPrivateKey string WebPushPublicKey string WebPushFile string WebPushEmailAddress string WebPushStartupQueries string WebPushExpiryDuration time.Duration WebPushExpiryWarningDuration time.Duration } // NewConfig instantiates a default new server config func NewConfig() *Config { return &Config{ File: "", // Only used for testing BaseURL: "", ListenHTTP: DefaultListenHTTP, ListenHTTPS: "", ListenUnix: "", ListenUnixMode: 0, KeyFile: "", CertFile: "", FirebaseKeyFile: "", CacheFile: "", CacheDuration: DefaultCacheDuration, CacheStartupQueries: "", CacheBatchSize: 0, CacheBatchTimeout: 0, AuthFile: "", AuthStartupQueries: "", AuthDefault: user.PermissionReadWrite, AuthBcryptCost: user.DefaultUserPasswordBcryptCost, AuthStatsQueueWriterInterval: user.DefaultUserStatsQueueWriterInterval, AttachmentCacheDir: "", AttachmentTotalSizeLimit: DefaultAttachmentTotalSizeLimit, AttachmentFileSizeLimit: DefaultAttachmentFileSizeLimit, AttachmentExpiryDuration: DefaultAttachmentExpiryDuration, KeepaliveInterval: DefaultKeepaliveInterval, ManagerInterval: DefaultManagerInterval, DisallowedTopics: DefaultDisallowedTopics, WebRoot: "/", DelayedSenderInterval: DefaultDelayedSenderInterval, FirebaseKeepaliveInterval: DefaultFirebaseKeepaliveInterval, FirebasePollInterval: DefaultFirebasePollInterval, FirebaseQuotaExceededPenaltyDuration: DefaultFirebaseQuotaExceededPenaltyDuration, UpstreamBaseURL: "", UpstreamAccessToken: "", SMTPSenderAddr: "", SMTPSenderUser: "", SMTPSenderPass: "", SMTPSenderFrom: "", SMTPServerListen: "", SMTPServerDomain: "", SMTPServerAddrPrefix: "", TwilioCallsBaseURL: "https://api.twilio.com", // Override for tests TwilioAccount: "", TwilioAuthToken: "", TwilioPhoneNumber: "", TwilioVerifyBaseURL: "https://verify.twilio.com", // Override for tests TwilioVerifyService: "", MessageSizeLimit: DefaultMessageSizeLimit, MessageDelayMin: DefaultMessageDelayMin, MessageDelayMax: DefaultMessageDelayMax, TotalTopicLimit: DefaultTotalTopicLimit, TotalAttachmentSizeLimit: 0, VisitorSubscriptionLimit: DefaultVisitorSubscriptionLimit, VisitorAttachmentTotalSizeLimit: DefaultVisitorAttachmentTotalSizeLimit, VisitorAttachmentDailyBandwidthLimit: DefaultVisitorAttachmentDailyBandwidthLimit, VisitorRequestLimitBurst: DefaultVisitorRequestLimitBurst, VisitorRequestLimitReplenish: DefaultVisitorRequestLimitReplenish, VisitorRequestExemptIPAddrs: make([]netip.Prefix, 0), VisitorMessageDailyLimit: DefaultVisitorMessageDailyLimit, VisitorEmailLimitBurst: DefaultVisitorEmailLimitBurst, VisitorEmailLimitReplenish: DefaultVisitorEmailLimitReplenish, VisitorAccountCreationLimitBurst: DefaultVisitorAccountCreationLimitBurst, VisitorAccountCreationLimitReplenish: DefaultVisitorAccountCreationLimitReplenish, VisitorAuthFailureLimitBurst: DefaultVisitorAuthFailureLimitBurst, VisitorAuthFailureLimitReplenish: DefaultVisitorAuthFailureLimitReplenish, VisitorStatsResetTime: DefaultVisitorStatsResetTime, VisitorSubscriberRateLimiting: false, BehindProxy: false, StripeSecretKey: "", StripeWebhookKey: "", StripePriceCacheDuration: DefaultStripePriceCacheDuration, BillingContact: "", EnableSignup: false, EnableLogin: false, EnableReservations: false, AccessControlAllowOrigin: "*", Version: "", WebPushPrivateKey: "", WebPushPublicKey: "", WebPushFile: "", WebPushEmailAddress: "", WebPushExpiryDuration: DefaultWebPushExpiryDuration, WebPushExpiryWarningDuration: DefaultWebPushExpiryWarningDuration, } } ntfy-2.11.0/server/config_test.go000066400000000000000000000004321462047176100167230ustar00rootroot00000000000000package server_test import ( "github.com/stretchr/testify/assert" "heckel.io/ntfy/v2/server" "testing" ) func TestConfig_New(t *testing.T) { c := server.NewConfig() assert.Equal(t, ":80", c.ListenHTTP) assert.Equal(t, server.DefaultKeepaliveInterval, c.KeepaliveInterval) } ntfy-2.11.0/server/errors.go000066400000000000000000000330671462047176100157450ustar00rootroot00000000000000package server import ( "encoding/json" "fmt" "heckel.io/ntfy/v2/log" "net/http" ) // errHTTP is a generic HTTP error for any non-200 HTTP error type errHTTP struct { Code int `json:"code,omitempty"` HTTPCode int `json:"http"` Message string `json:"error"` Link string `json:"link,omitempty"` context log.Context } func (e errHTTP) Error() string { return e.Message } func (e errHTTP) JSON() string { b, _ := json.Marshal(&e) return string(b) } func (e errHTTP) Context() log.Context { context := log.Context{ "error": e.Message, "error_code": e.Code, "http_status": e.HTTPCode, } for k, v := range e.context { context[k] = v } return context } func (e errHTTP) Wrap(message string, args ...any) *errHTTP { clone := e.clone() clone.Message = fmt.Sprintf("%s; %s", clone.Message, fmt.Sprintf(message, args...)) return &clone } func (e errHTTP) With(contexters ...log.Contexter) *errHTTP { c := e.clone() if c.context == nil { c.context = make(log.Context) } for _, contexter := range contexters { c.context.Merge(contexter.Context()) } return &c } func (e errHTTP) Fields(context log.Context) *errHTTP { c := e.clone() if c.context == nil { c.context = make(log.Context) } c.context.Merge(context) return &c } func (e errHTTP) clone() errHTTP { context := make(log.Context) for k, v := range e.context { context[k] = v } return errHTTP{ Code: e.Code, HTTPCode: e.HTTPCode, Message: e.Message, Link: e.Link, context: context, } } var ( errHTTPBadRequest = &errHTTP{40000, http.StatusBadRequest, "invalid request", "", nil} errHTTPBadRequestEmailDisabled = &errHTTP{40001, http.StatusBadRequest, "e-mail notifications are not enabled", "https://ntfy.sh/docs/config/#e-mail-notifications", nil} errHTTPBadRequestDelayNoCache = &errHTTP{40002, http.StatusBadRequest, "cannot disable cache for delayed message", "", nil} errHTTPBadRequestDelayNoEmail = &errHTTP{40003, http.StatusBadRequest, "delayed e-mail notifications are not supported", "", nil} errHTTPBadRequestDelayCannotParse = &errHTTP{40004, http.StatusBadRequest, "invalid delay parameter: unable to parse delay", "https://ntfy.sh/docs/publish/#scheduled-delivery", nil} errHTTPBadRequestDelayTooSmall = &errHTTP{40005, http.StatusBadRequest, "invalid delay parameter: too small, please refer to the docs", "https://ntfy.sh/docs/publish/#scheduled-delivery", nil} errHTTPBadRequestDelayTooLarge = &errHTTP{40006, http.StatusBadRequest, "invalid delay parameter: too large, please refer to the docs", "https://ntfy.sh/docs/publish/#scheduled-delivery", nil} errHTTPBadRequestPriorityInvalid = &errHTTP{40007, http.StatusBadRequest, "invalid priority parameter", "https://ntfy.sh/docs/publish/#message-priority", nil} errHTTPBadRequestSinceInvalid = &errHTTP{40008, http.StatusBadRequest, "invalid since parameter", "https://ntfy.sh/docs/subscribe/api/#fetch-cached-messages", nil} errHTTPBadRequestTopicInvalid = &errHTTP{40009, http.StatusBadRequest, "invalid request: topic invalid", "", nil} errHTTPBadRequestTopicDisallowed = &errHTTP{40010, http.StatusBadRequest, "invalid request: topic name is not allowed", "", nil} errHTTPBadRequestMessageNotUTF8 = &errHTTP{40011, http.StatusBadRequest, "invalid request: message must be UTF-8 encoded", "", nil} errHTTPBadRequestAttachmentURLInvalid = &errHTTP{40013, http.StatusBadRequest, "invalid request: attachment URL is invalid", "https://ntfy.sh/docs/publish/#attachments", nil} errHTTPBadRequestAttachmentsDisallowed = &errHTTP{40014, http.StatusBadRequest, "invalid request: attachments not allowed", "https://ntfy.sh/docs/config/#attachments", nil} errHTTPBadRequestAttachmentsExpiryBeforeDelivery = &errHTTP{40015, http.StatusBadRequest, "invalid request: attachment expiry before delayed delivery date", "https://ntfy.sh/docs/publish/#scheduled-delivery", nil} errHTTPBadRequestWebSocketsUpgradeHeaderMissing = &errHTTP{40016, http.StatusBadRequest, "invalid request: client not using the websocket protocol", "https://ntfy.sh/docs/subscribe/api/#websockets", nil} errHTTPBadRequestMessageJSONInvalid = &errHTTP{40017, http.StatusBadRequest, "invalid request: request body must be message JSON", "https://ntfy.sh/docs/publish/#publish-as-json", nil} errHTTPBadRequestActionsInvalid = &errHTTP{40018, http.StatusBadRequest, "invalid request: actions invalid", "https://ntfy.sh/docs/publish/#action-buttons", nil} errHTTPBadRequestMatrixMessageInvalid = &errHTTP{40019, http.StatusBadRequest, "invalid request: Matrix JSON invalid", "https://ntfy.sh/docs/publish/#matrix-gateway", nil} errHTTPBadRequestIconURLInvalid = &errHTTP{40021, http.StatusBadRequest, "invalid request: icon URL is invalid", "https://ntfy.sh/docs/publish/#icons", nil} errHTTPBadRequestSignupNotEnabled = &errHTTP{40022, http.StatusBadRequest, "invalid request: signup not enabled", "https://ntfy.sh/docs/config", nil} errHTTPBadRequestNoTokenProvided = &errHTTP{40023, http.StatusBadRequest, "invalid request: no token provided", "", nil} errHTTPBadRequestJSONInvalid = &errHTTP{40024, http.StatusBadRequest, "invalid request: request body must be valid JSON", "", nil} errHTTPBadRequestPermissionInvalid = &errHTTP{40025, http.StatusBadRequest, "invalid request: incorrect permission string", "", nil} errHTTPBadRequestIncorrectPasswordConfirmation = &errHTTP{40026, http.StatusBadRequest, "invalid request: password confirmation is not correct", "", nil} errHTTPBadRequestNotAPaidUser = &errHTTP{40027, http.StatusBadRequest, "invalid request: not a paid user", "", nil} errHTTPBadRequestBillingRequestInvalid = &errHTTP{40028, http.StatusBadRequest, "invalid request: not a valid billing request", "", nil} errHTTPBadRequestBillingSubscriptionExists = &errHTTP{40029, http.StatusBadRequest, "invalid request: billing subscription already exists", "", nil} errHTTPBadRequestTierInvalid = &errHTTP{40030, http.StatusBadRequest, "invalid request: tier does not exist", "", nil} errHTTPBadRequestUserNotFound = &errHTTP{40031, http.StatusBadRequest, "invalid request: user does not exist", "", nil} errHTTPBadRequestPhoneCallsDisabled = &errHTTP{40032, http.StatusBadRequest, "invalid request: calling is disabled", "https://ntfy.sh/docs/config/#phone-calls", nil} errHTTPBadRequestPhoneNumberInvalid = &errHTTP{40033, http.StatusBadRequest, "invalid request: phone number invalid", "https://ntfy.sh/docs/publish/#phone-calls", nil} errHTTPBadRequestPhoneNumberNotVerified = &errHTTP{40034, http.StatusBadRequest, "invalid request: phone number not verified, or no matching verified numbers found", "https://ntfy.sh/docs/publish/#phone-calls", nil} errHTTPBadRequestAnonymousCallsNotAllowed = &errHTTP{40035, http.StatusBadRequest, "invalid request: anonymous phone calls are not allowed", "https://ntfy.sh/docs/publish/#phone-calls", nil} errHTTPBadRequestPhoneNumberVerifyChannelInvalid = &errHTTP{40036, http.StatusBadRequest, "invalid request: verification channel must be 'sms' or 'call'", "https://ntfy.sh/docs/publish/#phone-calls", nil} errHTTPBadRequestDelayNoCall = &errHTTP{40037, http.StatusBadRequest, "invalid request: delayed call notifications are not supported", "", nil} errHTTPBadRequestWebPushSubscriptionInvalid = &errHTTP{40038, http.StatusBadRequest, "invalid request: web push payload malformed", "", nil} errHTTPBadRequestWebPushEndpointUnknown = &errHTTP{40039, http.StatusBadRequest, "invalid request: web push endpoint unknown", "", nil} errHTTPBadRequestWebPushTopicCountTooHigh = &errHTTP{40040, http.StatusBadRequest, "invalid request: too many web push topic subscriptions", "", nil} errHTTPBadRequestTemplateMessageTooLarge = &errHTTP{40041, http.StatusBadRequest, "invalid request: message or title is too large after replacing template", "https://ntfy.sh/docs/publish/#message-templating", nil} errHTTPBadRequestTemplateMessageNotJSON = &errHTTP{40042, http.StatusBadRequest, "invalid request: message body must be JSON if templating is enabled", "https://ntfy.sh/docs/publish/#message-templating", nil} errHTTPBadRequestTemplateInvalid = &errHTTP{40043, http.StatusBadRequest, "invalid request: could not parse template", "https://ntfy.sh/docs/publish/#message-templating", nil} errHTTPBadRequestTemplateDisallowedFunctionCalls = &errHTTP{40044, http.StatusBadRequest, "invalid request: template contains disallowed function calls, e.g. template, call, or define", "https://ntfy.sh/docs/publish/#message-templating", nil} errHTTPBadRequestTemplateExecuteFailed = &errHTTP{40045, http.StatusBadRequest, "invalid request: template execution failed", "https://ntfy.sh/docs/publish/#message-templating", nil} errHTTPBadRequestInvalidUsername = &errHTTP{40046, http.StatusBadRequest, "invalid request: invalid username", "", nil} errHTTPNotFound = &errHTTP{40401, http.StatusNotFound, "page not found", "", nil} errHTTPUnauthorized = &errHTTP{40101, http.StatusUnauthorized, "unauthorized", "https://ntfy.sh/docs/publish/#authentication", nil} errHTTPForbidden = &errHTTP{40301, http.StatusForbidden, "forbidden", "https://ntfy.sh/docs/publish/#authentication", nil} errHTTPConflictUserExists = &errHTTP{40901, http.StatusConflict, "conflict: user already exists", "", nil} errHTTPConflictTopicReserved = &errHTTP{40902, http.StatusConflict, "conflict: access control entry for topic or topic pattern already exists", "", nil} errHTTPConflictSubscriptionExists = &errHTTP{40903, http.StatusConflict, "conflict: topic subscription already exists", "", nil} errHTTPConflictPhoneNumberExists = &errHTTP{40904, http.StatusConflict, "conflict: phone number already exists", "", nil} errHTTPGonePhoneVerificationExpired = &errHTTP{41001, http.StatusGone, "phone number verification expired or does not exist", "", nil} errHTTPEntityTooLargeAttachment = &errHTTP{41301, http.StatusRequestEntityTooLarge, "attachment too large, or bandwidth limit reached", "https://ntfy.sh/docs/publish/#limitations", nil} errHTTPEntityTooLargeMatrixRequest = &errHTTP{41302, http.StatusRequestEntityTooLarge, "Matrix request is larger than the max allowed length", "", nil} errHTTPEntityTooLargeJSONBody = &errHTTP{41303, http.StatusRequestEntityTooLarge, "JSON body too large", "", nil} errHTTPTooManyRequestsLimitRequests = &errHTTP{42901, http.StatusTooManyRequests, "limit reached: too many requests", "https://ntfy.sh/docs/publish/#limitations", nil} errHTTPTooManyRequestsLimitEmails = &errHTTP{42902, http.StatusTooManyRequests, "limit reached: too many emails", "https://ntfy.sh/docs/publish/#limitations", nil} errHTTPTooManyRequestsLimitSubscriptions = &errHTTP{42903, http.StatusTooManyRequests, "limit reached: too many active subscriptions", "https://ntfy.sh/docs/publish/#limitations", nil} errHTTPTooManyRequestsLimitTotalTopics = &errHTTP{42904, http.StatusTooManyRequests, "limit reached: the total number of topics on the server has been reached, please contact the admin", "https://ntfy.sh/docs/publish/#limitations", nil} errHTTPTooManyRequestsLimitAttachmentBandwidth = &errHTTP{42905, http.StatusTooManyRequests, "limit reached: daily bandwidth reached", "https://ntfy.sh/docs/publish/#limitations", nil} errHTTPTooManyRequestsLimitAccountCreation = &errHTTP{42906, http.StatusTooManyRequests, "limit reached: too many accounts created", "https://ntfy.sh/docs/publish/#limitations", nil} // FIXME document limit errHTTPTooManyRequestsLimitReservations = &errHTTP{42907, http.StatusTooManyRequests, "limit reached: too many topic reservations for this user", "", nil} errHTTPTooManyRequestsLimitMessages = &errHTTP{42908, http.StatusTooManyRequests, "limit reached: daily message quota reached", "https://ntfy.sh/docs/publish/#limitations", nil} errHTTPTooManyRequestsLimitAuthFailure = &errHTTP{42909, http.StatusTooManyRequests, "limit reached: too many auth failures", "https://ntfy.sh/docs/publish/#limitations", nil} // FIXME document limit errHTTPTooManyRequestsLimitCalls = &errHTTP{42910, http.StatusTooManyRequests, "limit reached: daily phone call quota reached", "https://ntfy.sh/docs/publish/#limitations", nil} errHTTPInternalError = &errHTTP{50001, http.StatusInternalServerError, "internal server error", "", nil} errHTTPInternalErrorInvalidPath = &errHTTP{50002, http.StatusInternalServerError, "internal server error: invalid path", "", nil} errHTTPInternalErrorMissingBaseURL = &errHTTP{50003, http.StatusInternalServerError, "internal server error: base-url must be be configured for this feature", "https://ntfy.sh/docs/config/", nil} errHTTPInternalErrorWebPushUnableToPublish = &errHTTP{50004, http.StatusInternalServerError, "internal server error: unable to publish web push message", "", nil} errHTTPInsufficientStorageUnifiedPush = &errHTTP{50701, http.StatusInsufficientStorage, "cannot publish to UnifiedPush topic without previously active subscriber", "", nil} ) ntfy-2.11.0/server/file_cache.go000066400000000000000000000053431462047176100164670ustar00rootroot00000000000000package server import ( "errors" "fmt" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/util" "io" "os" "path/filepath" "regexp" "sync" ) var ( fileIDRegex = regexp.MustCompile(fmt.Sprintf(`^[-_A-Za-z0-9]{%d}$`, messageIDLength)) errInvalidFileID = errors.New("invalid file ID") errFileExists = errors.New("file exists") ) type fileCache struct { dir string totalSizeCurrent int64 totalSizeLimit int64 mu sync.Mutex } func newFileCache(dir string, totalSizeLimit int64) (*fileCache, error) { if err := os.MkdirAll(dir, 0700); err != nil { return nil, err } size, err := dirSize(dir) if err != nil { return nil, err } return &fileCache{ dir: dir, totalSizeCurrent: size, totalSizeLimit: totalSizeLimit, }, nil } func (c *fileCache) Write(id string, in io.Reader, limiters ...util.Limiter) (int64, error) { if !fileIDRegex.MatchString(id) { return 0, errInvalidFileID } log.Tag(tagFileCache).Field("message_id", id).Debug("Writing attachment") file := filepath.Join(c.dir, id) if _, err := os.Stat(file); err == nil { return 0, errFileExists } f, err := os.OpenFile(file, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0600) if err != nil { return 0, err } defer f.Close() limiters = append(limiters, util.NewFixedLimiter(c.Remaining())) limitWriter := util.NewLimitWriter(f, limiters...) size, err := io.Copy(limitWriter, in) if err != nil { os.Remove(file) return 0, err } if err := f.Close(); err != nil { os.Remove(file) return 0, err } c.mu.Lock() c.totalSizeCurrent += size mset(metricAttachmentsTotalSize, c.totalSizeCurrent) c.mu.Unlock() return size, nil } func (c *fileCache) Remove(ids ...string) error { for _, id := range ids { if !fileIDRegex.MatchString(id) { return errInvalidFileID } log.Tag(tagFileCache).Field("message_id", id).Debug("Deleting attachment") file := filepath.Join(c.dir, id) if err := os.Remove(file); err != nil { log.Tag(tagFileCache).Field("message_id", id).Err(err).Debug("Error deleting attachment") } } size, err := dirSize(c.dir) if err != nil { return err } c.mu.Lock() c.totalSizeCurrent = size c.mu.Unlock() mset(metricAttachmentsTotalSize, size) return nil } func (c *fileCache) Size() int64 { c.mu.Lock() defer c.mu.Unlock() return c.totalSizeCurrent } func (c *fileCache) Remaining() int64 { c.mu.Lock() defer c.mu.Unlock() remaining := c.totalSizeLimit - c.totalSizeCurrent if remaining < 0 { return 0 } return remaining } func dirSize(dir string) (int64, error) { entries, err := os.ReadDir(dir) if err != nil { return 0, err } var size int64 for _, e := range entries { info, err := e.Info() if err != nil { return 0, err } size += info.Size() } return size, nil } ntfy-2.11.0/server/file_cache_test.go000066400000000000000000000044361462047176100175300ustar00rootroot00000000000000package server import ( "bytes" "fmt" "github.com/stretchr/testify/require" "heckel.io/ntfy/v2/util" "os" "strings" "testing" ) var ( oneKilobyteArray = make([]byte, 1024) ) func TestFileCache_Write_Success(t *testing.T) { dir, c := newTestFileCache(t) size, err := c.Write("abcdefghijkl", strings.NewReader("normal file"), util.NewFixedLimiter(999)) require.Nil(t, err) require.Equal(t, int64(11), size) require.Equal(t, "normal file", readFile(t, dir+"/abcdefghijkl")) require.Equal(t, int64(11), c.Size()) require.Equal(t, int64(10229), c.Remaining()) } func TestFileCache_Write_Remove_Success(t *testing.T) { dir, c := newTestFileCache(t) // max = 10k (10240), each = 1k (1024) for i := 0; i < 10; i++ { // 10x999 = 9990 size, err := c.Write(fmt.Sprintf("abcdefghijk%d", i), bytes.NewReader(make([]byte, 999))) require.Nil(t, err) require.Equal(t, int64(999), size) } require.Equal(t, int64(9990), c.Size()) require.Equal(t, int64(250), c.Remaining()) require.FileExists(t, dir+"/abcdefghijk1") require.FileExists(t, dir+"/abcdefghijk5") require.Nil(t, c.Remove("abcdefghijk1", "abcdefghijk5")) require.NoFileExists(t, dir+"/abcdefghijk1") require.NoFileExists(t, dir+"/abcdefghijk5") require.Equal(t, int64(7992), c.Size()) require.Equal(t, int64(2248), c.Remaining()) } func TestFileCache_Write_FailedTotalSizeLimit(t *testing.T) { dir, c := newTestFileCache(t) for i := 0; i < 10; i++ { size, err := c.Write(fmt.Sprintf("abcdefghijk%d", i), bytes.NewReader(oneKilobyteArray)) require.Nil(t, err) require.Equal(t, int64(1024), size) } _, err := c.Write("abcdefghijkX", bytes.NewReader(oneKilobyteArray)) require.Equal(t, util.ErrLimitReached, err) require.NoFileExists(t, dir+"/abcdefghijkX") } func TestFileCache_Write_FailedAdditionalLimiter(t *testing.T) { dir, c := newTestFileCache(t) _, err := c.Write("abcdefghijkl", bytes.NewReader(make([]byte, 1001)), util.NewFixedLimiter(1000)) require.Equal(t, util.ErrLimitReached, err) require.NoFileExists(t, dir+"/abcdefghijkl") } func newTestFileCache(t *testing.T) (dir string, cache *fileCache) { dir = t.TempDir() cache, err := newFileCache(dir, 10*1024) require.Nil(t, err) return dir, cache } func readFile(t *testing.T, f string) string { b, err := os.ReadFile(f) require.Nil(t, err) return string(b) } ntfy-2.11.0/server/log.go000066400000000000000000000067251462047176100152130ustar00rootroot00000000000000package server import ( "fmt" "github.com/emersion/go-smtp" "github.com/gorilla/websocket" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/util" "net/http" "strings" "unicode/utf8" ) // Log tags const ( tagStartup = "startup" tagHTTP = "http" tagPublish = "publish" tagSubscribe = "subscribe" tagFirebase = "firebase" tagSMTP = "smtp" // Receive email tagEmail = "email" // Send email tagTwilio = "twilio" tagFileCache = "file_cache" tagMessageCache = "message_cache" tagStripe = "stripe" tagAccount = "account" tagManager = "manager" tagResetter = "resetter" tagWebsocket = "websocket" tagMatrix = "matrix" tagWebPush = "webpush" ) var ( normalErrorCodes = []int{http.StatusNotFound, http.StatusBadRequest, http.StatusTooManyRequests, http.StatusUnauthorized, http.StatusForbidden, http.StatusInsufficientStorage} rateLimitingErrorCodes = []int{http.StatusTooManyRequests, http.StatusRequestEntityTooLarge} ) // logr creates a new log event with HTTP request fields func logr(r *http.Request) *log.Event { return log.Tag(tagHTTP).Fields(httpContext(r)) // Tag may be overwritten } // logv creates a new log event with visitor fields func logv(v *visitor) *log.Event { return log.With(v) } // logvr creates a new log event with HTTP request and visitor fields func logvr(v *visitor, r *http.Request) *log.Event { return logr(r).With(v) } // logvrm creates a new log event with HTTP request, visitor fields and message fields func logvrm(v *visitor, r *http.Request, m *message) *log.Event { return logvr(v, r).With(m) } // logvrm creates a new log event with visitor fields and message fields func logvm(v *visitor, m *message) *log.Event { return logv(v).With(m) } // logem creates a new log event with email fields func logem(smtpConn *smtp.Conn) *log.Event { ev := log.Tag(tagSMTP).Field("smtp_hostname", smtpConn.Hostname()) if smtpConn.Conn() != nil { ev.Field("smtp_remote_addr", smtpConn.Conn().RemoteAddr().String()) } return ev } func httpContext(r *http.Request) log.Context { requestURI := r.RequestURI if requestURI == "" { requestURI = r.URL.Path } return log.Context{ "http_method": r.Method, "http_path": requestURI, } } func websocketErrorContext(err error) log.Context { if c, ok := err.(*websocket.CloseError); ok { return log.Context{ "error": c.Error(), "error_code": c.Code, "error_type": "websocket.CloseError", } } return log.Context{ "error": err.Error(), } } func renderHTTPRequest(r *http.Request) string { peekLimit := 4096 lines := fmt.Sprintf("%s %s %s\n", r.Method, r.URL.RequestURI(), r.Proto) for key, values := range r.Header { for _, value := range values { lines += fmt.Sprintf("%s: %s\n", key, value) } } lines += "\n" body, err := util.Peek(r.Body, peekLimit) if err != nil { lines = fmt.Sprintf("(could not read body: %s)\n", err.Error()) } else if utf8.Valid(body.PeekedBytes) { lines += string(body.PeekedBytes) if body.LimitReached { lines += fmt.Sprintf(" ... (peeked %d bytes)", peekLimit) } lines += "\n" } else { if body.LimitReached { lines += fmt.Sprintf("(peeked bytes not UTF-8, peek limit of %d bytes reached, hex: %x ...)\n", peekLimit, body.PeekedBytes) } else { lines += fmt.Sprintf("(peeked bytes not UTF-8, %d bytes, hex: %x)\n", len(body.PeekedBytes), body.PeekedBytes) } } r.Body = body // Important: Reset body, so it can be re-read return strings.TrimSpace(lines) } ntfy-2.11.0/server/mailer_emoji_map.json000066400000000000000000001460371462047176100202700ustar00rootroot00000000000000{ "+1": "👍", "-1": "👎", "100": "💯", "1234": "🔢", "1st_place_medal": "🥇", "2nd_place_medal": "🥈", "3rd_place_medal": "🥉", "8ball": "🎱", "a": "🅰️", "ab": "🆎", "abacus": "🧮", "abc": "🔤", "abcd": "🔡", "accept": "🉑", "accordion": "🪗", "adhesive_bandage": "🩹", "adult": "🧑", "aerial_tramway": "🚡", "afghanistan": "🇦🇫", "airplane": "✈️", "aland_islands": "🇦🇽", "alarm_clock": "⏰", "albania": "🇦🇱", "alembic": "⚗️", "algeria": "🇩🇿", "alien": "👽", "ambulance": "🚑", "american_samoa": "🇦🇸", "amphora": "🏺", "anatomical_heart": "🫀", "anchor": "⚓", "andorra": "🇦🇩", "angel": "👼", "anger": "💢", "angola": "🇦🇴", "angry": "😠", "anguilla": "🇦🇮", "anguished": "😧", "ant": "🐜", "antarctica": "🇦🇶", "antigua_barbuda": "🇦🇬", "apple": "🍎", "aquarius": "♒", "argentina": "🇦🇷", "aries": "♈", "armenia": "🇦🇲", "arrow_backward": "◀️", "arrow_double_down": "⏬", "arrow_double_up": "⏫", "arrow_down": "⬇️", "arrow_down_small": "🔽", "arrow_forward": "▶️", "arrow_heading_down": "⤵️", "arrow_heading_up": "⤴️", "arrow_left": "⬅️", "arrow_lower_left": "↙️", "arrow_lower_right": "↘️", "arrow_right": "➡️", "arrow_right_hook": "↪️", "arrow_up": "⬆️", "arrow_up_down": "↕️", "arrow_up_small": "🔼", "arrow_upper_left": "↖️", "arrow_upper_right": "↗️", "arrows_clockwise": "🔃", "arrows_counterclockwise": "🔄", "art": "🎨", "articulated_lorry": "🚛", "artificial_satellite": "🛰️", "artist": "🧑‍🎨", "aruba": "🇦🇼", "ascension_island": "🇦🇨", "asterisk": "*️⃣", "astonished": "😲", "astronaut": "🧑‍🚀", "athletic_shoe": "👟", "atm": "🏧", "atom_symbol": "⚛️", "australia": "🇦🇺", "austria": "🇦🇹", "auto_rickshaw": "🛺", "avocado": "🥑", "axe": "🪓", "azerbaijan": "🇦🇿", "b": "🅱️", "baby": "👶", "baby_bottle": "🍼", "baby_chick": "🐤", "baby_symbol": "🚼", "back": "🔙", "bacon": "🥓", "badger": "🦡", "badminton": "🏸", "bagel": "🥯", "baggage_claim": "🛄", "baguette_bread": "🥖", "bahamas": "🇧🇸", "bahrain": "🇧🇭", "balance_scale": "⚖️", "bald_man": "👨‍🦲", "bald_woman": "👩‍🦲", "ballet_shoes": "🩰", "balloon": "🎈", "ballot_box": "🗳️", "ballot_box_with_check": "☑️", "bamboo": "🎍", "banana": "🍌", "bangbang": "‼️", "bangladesh": "🇧🇩", "banjo": "🪕", "bank": "🏦", "bar_chart": "📊", "barbados": "🇧🇧", "barber": "💈", "baseball": "⚾", "basket": "🧺", "basketball": "🏀", "basketball_man": "⛹️‍♂️", "basketball_woman": "⛹️‍♀️", "bat": "🦇", "bath": "🛀", "bathtub": "🛁", "battery": "🔋", "beach_umbrella": "🏖️", "bear": "🐻", "bearded_person": "🧔", "beaver": "🦫", "bed": "🛏️", "bee": "🐝", "beer": "🍺", "beers": "🍻", "beetle": "🪲", "beginner": "🔰", "belarus": "🇧🇾", "belgium": "🇧🇪", "belize": "🇧🇿", "bell": "🔔", "bell_pepper": "🫑", "bellhop_bell": "🛎️", "benin": "🇧🇯", "bento": "🍱", "bermuda": "🇧🇲", "beverage_box": "🧃", "bhutan": "🇧🇹", "bicyclist": "🚴", "bike": "🚲", "biking_man": "🚴‍♂️", "biking_woman": "🚴‍♀️", "bikini": "👙", "billed_cap": "🧢", "biohazard": "☣️", "bird": "🐦", "birthday": "🎂", "bison": "🦬", "black_cat": "🐈‍⬛", "black_circle": "⚫", "black_flag": "🏴", "black_heart": "🖤", "black_joker": "🃏", "black_large_square": "⬛", "black_medium_small_square": "◾", "black_medium_square": "◼️", "black_nib": "✒️", "black_small_square": "▪️", "black_square_button": "🔲", "blond_haired_man": "👱‍♂️", "blond_haired_person": "👱", "blond_haired_woman": "👱‍♀️", "blonde_woman": "👱‍♀️", "blossom": "🌼", "blowfish": "🐡", "blue_book": "📘", "blue_car": "🚙", "blue_heart": "💙", "blue_square": "🟦", "blueberries": "🫐", "blush": "😊", "boar": "🐗", "boat": "⛵", "bolivia": "🇧🇴", "bomb": "💣", "bone": "🦴", "book": "📖", "bookmark": "🔖", "bookmark_tabs": "📑", "books": "📚", "boom": "💥", "boomerang": "🪃", "boot": "👢", "bosnia_herzegovina": "🇧🇦", "botswana": "🇧🇼", "bouncing_ball_man": "⛹️‍♂️", "bouncing_ball_person": "⛹️", "bouncing_ball_woman": "⛹️‍♀️", "bouquet": "💐", "bouvet_island": "🇧🇻", "bow": "🙇", "bow_and_arrow": "🏹", "bowing_man": "🙇‍♂️", "bowing_woman": "🙇‍♀️", "bowl_with_spoon": "🥣", "bowling": "🎳", "boxing_glove": "🥊", "boy": "👦", "brain": "🧠", "brazil": "🇧🇷", "bread": "🍞", "breast_feeding": "🤱", "bricks": "🧱", "bride_with_veil": "👰‍♀️", "bridge_at_night": "🌉", "briefcase": "💼", "british_indian_ocean_territory": "🇮🇴", "british_virgin_islands": "🇻🇬", "broccoli": "🥦", "broken_heart": "💔", "broom": "🧹", "brown_circle": "🟤", "brown_heart": "🤎", "brown_square": "🟫", "brunei": "🇧🇳", "bubble_tea": "🧋", "bucket": "🪣", "bug": "🐛", "building_construction": "🏗️", "bulb": "💡", "bulgaria": "🇧🇬", "bullettrain_front": "🚅", "bullettrain_side": "🚄", "burkina_faso": "🇧🇫", "burrito": "🌯", "burundi": "🇧🇮", "bus": "🚌", "business_suit_levitating": "🕴️", "busstop": "🚏", "bust_in_silhouette": "👤", "busts_in_silhouette": "👥", "butter": "🧈", "butterfly": "🦋", "cactus": "🌵", "cake": "🍰", "calendar": "📆", "call_me_hand": "🤙", "calling": "📲", "cambodia": "🇰🇭", "camel": "🐫", "camera": "📷", "camera_flash": "📸", "cameroon": "🇨🇲", "camping": "🏕️", "canada": "🇨🇦", "canary_islands": "🇮🇨", "cancer": "♋", "candle": "🕯️", "candy": "🍬", "canned_food": "🥫", "canoe": "🛶", "cape_verde": "🇨🇻", "capital_abcd": "🔠", "capricorn": "♑", "car": "🚗", "card_file_box": "🗃️", "card_index": "📇", "card_index_dividers": "🗂️", "caribbean_netherlands": "🇧🇶", "carousel_horse": "🎠", "carpentry_saw": "🪚", "carrot": "🥕", "cartwheeling": "🤸", "cat": "🐱", "cat2": "🐈", "cayman_islands": "🇰🇾", "cd": "💿", "central_african_republic": "🇨🇫", "ceuta_melilla": "🇪🇦", "chad": "🇹🇩", "chains": "⛓️", "chair": "🪑", "champagne": "🍾", "chart": "💹", "chart_with_downwards_trend": "📉", "chart_with_upwards_trend": "📈", "checkered_flag": "🏁", "cheese": "🧀", "cherries": "🍒", "cherry_blossom": "🌸", "chess_pawn": "♟️", "chestnut": "🌰", "chicken": "🐔", "child": "🧒", "children_crossing": "🚸", "chile": "🇨🇱", "chipmunk": "🐿️", "chocolate_bar": "🍫", "chopsticks": "🥢", "christmas_island": "🇨🇽", "christmas_tree": "🎄", "church": "⛪", "cinema": "🎦", "circus_tent": "🎪", "city_sunrise": "🌇", "city_sunset": "🌆", "cityscape": "🏙️", "cl": "🆑", "clamp": "🗜️", "clap": "👏", "clapper": "🎬", "classical_building": "🏛️", "climbing": "🧗", "climbing_man": "🧗‍♂️", "climbing_woman": "🧗‍♀️", "clinking_glasses": "🥂", "clipboard": "📋", "clipperton_island": "🇨🇵", "clock1": "🕐", "clock10": "🕙", "clock1030": "🕥", "clock11": "🕚", "clock1130": "🕦", "clock12": "🕛", "clock1230": "🕧", "clock130": "🕜", "clock2": "🕑", "clock230": "🕝", "clock3": "🕒", "clock330": "🕞", "clock4": "🕓", "clock430": "🕟", "clock5": "🕔", "clock530": "🕠", "clock6": "🕕", "clock630": "🕡", "clock7": "🕖", "clock730": "🕢", "clock8": "🕗", "clock830": "🕣", "clock9": "🕘", "clock930": "🕤", "closed_book": "📕", "closed_lock_with_key": "🔐", "closed_umbrella": "🌂", "cloud": "☁️", "cloud_with_lightning": "🌩️", "cloud_with_lightning_and_rain": "⛈️", "cloud_with_rain": "🌧️", "cloud_with_snow": "🌨️", "clown_face": "🤡", "clubs": "♣️", "cn": "🇨🇳", "coat": "🧥", "cockroach": "🪳", "cocktail": "🍸", "coconut": "🥥", "cocos_islands": "🇨🇨", "coffee": "☕", "coffin": "⚰️", "coin": "🪙", "cold_face": "🥶", "cold_sweat": "😰", "collision": "💥", "colombia": "🇨🇴", "comet": "☄️", "comoros": "🇰🇲", "compass": "🧭", "computer": "💻", "computer_mouse": "🖱️", "confetti_ball": "🎊", "confounded": "😖", "confused": "😕", "congo_brazzaville": "🇨🇬", "congo_kinshasa": "🇨🇩", "congratulations": "㊗️", "construction": "🚧", "construction_worker": "👷", "construction_worker_man": "👷‍♂️", "construction_worker_woman": "👷‍♀️", "control_knobs": "🎛️", "convenience_store": "🏪", "cook": "🧑‍🍳", "cook_islands": "🇨🇰", "cookie": "🍪", "cool": "🆒", "cop": "👮", "copyright": "©️", "corn": "🌽", "costa_rica": "🇨🇷", "cote_divoire": "🇨🇮", "couch_and_lamp": "🛋️", "couple": "👫", "couple_with_heart": "💑", "couple_with_heart_man_man": "👨‍❤️‍👨", "couple_with_heart_woman_man": "👩‍❤️‍👨", "couple_with_heart_woman_woman": "👩‍❤️‍👩", "couplekiss": "💏", "couplekiss_man_man": "👨‍❤️‍💋‍👨", "couplekiss_man_woman": "👩‍❤️‍💋‍👨", "couplekiss_woman_woman": "👩‍❤️‍💋‍👩", "cow": "🐮", "cow2": "🐄", "cowboy_hat_face": "🤠", "crab": "🦀", "crayon": "🖍️", "credit_card": "💳", "crescent_moon": "🌙", "cricket": "🦗", "cricket_game": "🏏", "croatia": "🇭🇷", "crocodile": "🐊", "croissant": "🥐", "crossed_fingers": "🤞", "crossed_flags": "🎌", "crossed_swords": "⚔️", "crown": "👑", "cry": "😢", "crying_cat_face": "😿", "crystal_ball": "🔮", "cuba": "🇨🇺", "cucumber": "🥒", "cup_with_straw": "🥤", "cupcake": "🧁", "cupid": "💘", "curacao": "🇨🇼", "curling_stone": "🥌", "curly_haired_man": "👨‍🦱", "curly_haired_woman": "👩‍🦱", "curly_loop": "➰", "currency_exchange": "💱", "curry": "🍛", "cursing_face": "🤬", "custard": "🍮", "customs": "🛃", "cut_of_meat": "🥩", "cyclone": "🌀", "cyprus": "🇨🇾", "czech_republic": "🇨🇿", "dagger": "🗡️", "dancer": "💃", "dancers": "👯", "dancing_men": "👯‍♂️", "dancing_women": "👯‍♀️", "dango": "🍡", "dark_sunglasses": "🕶️", "dart": "🎯", "dash": "💨", "date": "📅", "de": "🇩🇪", "deaf_man": "🧏‍♂️", "deaf_person": "🧏", "deaf_woman": "🧏‍♀️", "deciduous_tree": "🌳", "deer": "🦌", "denmark": "🇩🇰", "department_store": "🏬", "derelict_house": "🏚️", "desert": "🏜️", "desert_island": "🏝️", "desktop_computer": "🖥️", "detective": "🕵️", "diamond_shape_with_a_dot_inside": "💠", "diamonds": "♦️", "diego_garcia": "🇩🇬", "disappointed": "😞", "disappointed_relieved": "😥", "disguised_face": "🥸", "diving_mask": "🤿", "diya_lamp": "🪔", "dizzy": "💫", "dizzy_face": "😵", "djibouti": "🇩🇯", "dna": "🧬", "do_not_litter": "🚯", "dodo": "🦤", "dog": "🐶", "dog2": "🐕", "dollar": "💵", "dolls": "🎎", "dolphin": "🐬", "dominica": "🇩🇲", "dominican_republic": "🇩🇴", "door": "🚪", "doughnut": "🍩", "dove": "🕊️", "dragon": "🐉", "dragon_face": "🐲", "dress": "👗", "dromedary_camel": "🐪", "drooling_face": "🤤", "drop_of_blood": "🩸", "droplet": "💧", "drum": "🥁", "duck": "🦆", "dumpling": "🥟", "dvd": "📀", "e-mail": "📧", "eagle": "🦅", "ear": "👂", "ear_of_rice": "🌾", "ear_with_hearing_aid": "🦻", "earth_africa": "🌍", "earth_americas": "🌎", "earth_asia": "🌏", "ecuador": "🇪🇨", "egg": "🥚", "eggplant": "🍆", "egypt": "🇪🇬", "eight": "8️⃣", "eight_pointed_black_star": "✴️", "eight_spoked_asterisk": "✳️", "eject_button": "⏏️", "el_salvador": "🇸🇻", "electric_plug": "🔌", "elephant": "🐘", "elevator": "🛗", "elf": "🧝", "elf_man": "🧝‍♂️", "elf_woman": "🧝‍♀️", "email": "📧", "end": "🔚", "england": "🏴󠁧󠁢󠁥󠁮󠁧󠁿", "envelope": "✉️", "envelope_with_arrow": "📩", "equatorial_guinea": "🇬🇶", "eritrea": "🇪🇷", "es": "🇪🇸", "estonia": "🇪🇪", "ethiopia": "🇪🇹", "eu": "🇪🇺", "euro": "💶", "european_castle": "🏰", "european_post_office": "🏤", "european_union": "🇪🇺", "evergreen_tree": "🌲", "exclamation": "❗", "exploding_head": "🤯", "expressionless": "😑", "eye": "👁️", "eye_speech_bubble": "👁️‍🗨️", "eyeglasses": "👓", "eyes": "👀", "face_exhaling": "😮‍💨", "face_in_clouds": "😶‍🌫️", "face_with_head_bandage": "🤕", "face_with_spiral_eyes": "😵‍💫", "face_with_thermometer": "🤒", "facepalm": "🤦", "facepunch": "👊", "factory": "🏭", "factory_worker": "🧑‍🏭", "fairy": "🧚", "fairy_man": "🧚‍♂️", "fairy_woman": "🧚‍♀️", "falafel": "🧆", "falkland_islands": "🇫🇰", "fallen_leaf": "🍂", "family": "👪", "family_man_boy": "👨‍👦", "family_man_boy_boy": "👨‍👦‍👦", "family_man_girl": "👨‍👧", "family_man_girl_boy": "👨‍👧‍👦", "family_man_girl_girl": "👨‍👧‍👧", "family_man_man_boy": "👨‍👨‍👦", "family_man_man_boy_boy": "👨‍👨‍👦‍👦", "family_man_man_girl": "👨‍👨‍👧", "family_man_man_girl_boy": "👨‍👨‍👧‍👦", "family_man_man_girl_girl": "👨‍👨‍👧‍👧", "family_man_woman_boy": "👨‍👩‍👦", "family_man_woman_boy_boy": "👨‍👩‍👦‍👦", "family_man_woman_girl": "👨‍👩‍👧", "family_man_woman_girl_boy": "👨‍👩‍👧‍👦", "family_man_woman_girl_girl": "👨‍👩‍👧‍👧", "family_woman_boy": "👩‍👦", "family_woman_boy_boy": "👩‍👦‍👦", "family_woman_girl": "👩‍👧", "family_woman_girl_boy": "👩‍👧‍👦", "family_woman_girl_girl": "👩‍👧‍👧", "family_woman_woman_boy": "👩‍👩‍👦", "family_woman_woman_boy_boy": "👩‍👩‍👦‍👦", "family_woman_woman_girl": "👩‍👩‍👧", "family_woman_woman_girl_boy": "👩‍👩‍👧‍👦", "family_woman_woman_girl_girl": "👩‍👩‍👧‍👧", "farmer": "🧑‍🌾", "faroe_islands": "🇫🇴", "fast_forward": "⏩", "fax": "📠", "fearful": "😨", "feather": "🪶", "feet": "🐾", "female_detective": "🕵️‍♀️", "female_sign": "♀️", "ferris_wheel": "🎡", "ferry": "⛴️", "field_hockey": "🏑", "fiji": "🇫🇯", "file_cabinet": "🗄️", "file_folder": "📁", "film_projector": "📽️", "film_strip": "🎞️", "finland": "🇫🇮", "fire": "🔥", "fire_engine": "🚒", "fire_extinguisher": "🧯", "firecracker": "🧨", "firefighter": "🧑‍🚒", "fireworks": "🎆", "first_quarter_moon": "🌓", "first_quarter_moon_with_face": "🌛", "fish": "🐟", "fish_cake": "🍥", "fishing_pole_and_fish": "🎣", "fist": "✊", "fist_left": "🤛", "fist_oncoming": "👊", "fist_raised": "✊", "fist_right": "🤜", "five": "5️⃣", "flags": "🎏", "flamingo": "🦩", "flashlight": "🔦", "flat_shoe": "🥿", "flatbread": "🫓", "fleur_de_lis": "⚜️", "flight_arrival": "🛬", "flight_departure": "🛫", "flipper": "🐬", "floppy_disk": "💾", "flower_playing_cards": "🎴", "flushed": "😳", "fly": "🪰", "flying_disc": "🥏", "flying_saucer": "🛸", "fog": "🌫️", "foggy": "🌁", "fondue": "🫕", "foot": "🦶", "football": "🏈", "footprints": "👣", "fork_and_knife": "🍴", "fortune_cookie": "🥠", "fountain": "⛲", "fountain_pen": "🖋️", "four": "4️⃣", "four_leaf_clover": "🍀", "fox_face": "🦊", "fr": "🇫🇷", "framed_picture": "🖼️", "free": "🆓", "french_guiana": "🇬🇫", "french_polynesia": "🇵🇫", "french_southern_territories": "🇹🇫", "fried_egg": "🍳", "fried_shrimp": "🍤", "fries": "🍟", "frog": "🐸", "frowning": "😦", "frowning_face": "☹️", "frowning_man": "🙍‍♂️", "frowning_person": "🙍", "frowning_woman": "🙍‍♀️", "fu": "🖕", "fuelpump": "⛽", "full_moon": "🌕", "full_moon_with_face": "🌝", "funeral_urn": "⚱️", "gabon": "🇬🇦", "gambia": "🇬🇲", "game_die": "🎲", "garlic": "🧄", "gb": "🇬🇧", "gear": "⚙️", "gem": "💎", "gemini": "♊", "genie": "🧞", "genie_man": "🧞‍♂️", "genie_woman": "🧞‍♀️", "georgia": "🇬🇪", "ghana": "🇬🇭", "ghost": "👻", "gibraltar": "🇬🇮", "gift": "🎁", "gift_heart": "💝", "giraffe": "🦒", "girl": "👧", "globe_with_meridians": "🌐", "gloves": "🧤", "goal_net": "🥅", "goat": "🐐", "goggles": "🥽", "golf": "⛳", "golfing": "🏌️", "golfing_man": "🏌️‍♂️", "golfing_woman": "🏌️‍♀️", "gorilla": "🦍", "grapes": "🍇", "greece": "🇬🇷", "green_apple": "🍏", "green_book": "📗", "green_circle": "🟢", "green_heart": "💚", "green_salad": "🥗", "green_square": "🟩", "greenland": "🇬🇱", "grenada": "🇬🇩", "grey_exclamation": "❕", "grey_question": "❔", "grimacing": "😬", "grin": "😁", "grinning": "😀", "guadeloupe": "🇬🇵", "guam": "🇬🇺", "guard": "💂", "guardsman": "💂‍♂️", "guardswoman": "💂‍♀️", "guatemala": "🇬🇹", "guernsey": "🇬🇬", "guide_dog": "🦮", "guinea": "🇬🇳", "guinea_bissau": "🇬🇼", "guitar": "🎸", "gun": "🔫", "guyana": "🇬🇾", "haircut": "💇", "haircut_man": "💇‍♂️", "haircut_woman": "💇‍♀️", "haiti": "🇭🇹", "hamburger": "🍔", "hammer": "🔨", "hammer_and_pick": "⚒️", "hammer_and_wrench": "🛠️", "hamster": "🐹", "hand": "✋", "hand_over_mouth": "🤭", "handbag": "👜", "handball_person": "🤾", "handshake": "🤝", "hankey": "💩", "hash": "#️⃣", "hatched_chick": "🐥", "hatching_chick": "🐣", "headphones": "🎧", "headstone": "🪦", "health_worker": "🧑‍⚕️", "hear_no_evil": "🙉", "heard_mcdonald_islands": "🇭🇲", "heart": "❤️", "heart_decoration": "💟", "heart_eyes": "😍", "heart_eyes_cat": "😻", "heart_on_fire": "❤️‍🔥", "heartbeat": "💓", "heartpulse": "💗", "hearts": "♥️", "heavy_check_mark": "✔️", "heavy_division_sign": "➗", "heavy_dollar_sign": "💲", "heavy_exclamation_mark": "❗", "heavy_heart_exclamation": "❣️", "heavy_minus_sign": "➖", "heavy_multiplication_x": "✖️", "heavy_plus_sign": "➕", "hedgehog": "🦔", "helicopter": "🚁", "herb": "🌿", "hibiscus": "🌺", "high_brightness": "🔆", "high_heel": "👠", "hiking_boot": "🥾", "hindu_temple": "🛕", "hippopotamus": "🦛", "hocho": "🔪", "hole": "🕳️", "honduras": "🇭🇳", "honey_pot": "🍯", "honeybee": "🐝", "hong_kong": "🇭🇰", "hook": "🪝", "horse": "🐴", "horse_racing": "🏇", "hospital": "🏥", "hot_face": "🥵", "hot_pepper": "🌶️", "hotdog": "🌭", "hotel": "🏨", "hotsprings": "♨️", "hourglass": "⌛", "hourglass_flowing_sand": "⏳", "house": "🏠", "house_with_garden": "🏡", "houses": "🏘️", "hugs": "🤗", "hungary": "🇭🇺", "hushed": "😯", "hut": "🛖", "ice_cream": "🍨", "ice_cube": "🧊", "ice_hockey": "🏒", "ice_skate": "⛸️", "icecream": "🍦", "iceland": "🇮🇸", "id": "🆔", "ideograph_advantage": "🉐", "imp": "👿", "inbox_tray": "📥", "incoming_envelope": "📨", "india": "🇮🇳", "indonesia": "🇮🇩", "infinity": "♾️", "information_desk_person": "💁", "information_source": "ℹ️", "innocent": "😇", "interrobang": "⁉️", "iphone": "📱", "iran": "🇮🇷", "iraq": "🇮🇶", "ireland": "🇮🇪", "isle_of_man": "🇮🇲", "israel": "🇮🇱", "it": "🇮🇹", "izakaya_lantern": "🏮", "jack_o_lantern": "🎃", "jamaica": "🇯🇲", "japan": "🗾", "japanese_castle": "🏯", "japanese_goblin": "👺", "japanese_ogre": "👹", "jeans": "👖", "jersey": "🇯🇪", "jigsaw": "🧩", "jordan": "🇯🇴", "joy": "😂", "joy_cat": "😹", "joystick": "🕹️", "jp": "🇯🇵", "judge": "🧑‍⚖️", "juggling_person": "🤹", "kaaba": "🕋", "kangaroo": "🦘", "kazakhstan": "🇰🇿", "kenya": "🇰🇪", "key": "🔑", "keyboard": "⌨️", "keycap_ten": "🔟", "kick_scooter": "🛴", "kimono": "👘", "kiribati": "🇰🇮", "kiss": "💋", "kissing": "😗", "kissing_cat": "😽", "kissing_closed_eyes": "😚", "kissing_heart": "😘", "kissing_smiling_eyes": "😙", "kite": "🪁", "kiwi_fruit": "🥝", "kneeling_man": "🧎‍♂️", "kneeling_person": "🧎", "kneeling_woman": "🧎‍♀️", "knife": "🔪", "knot": "🪢", "koala": "🐨", "koko": "🈁", "kosovo": "🇽🇰", "kr": "🇰🇷", "kuwait": "🇰🇼", "kyrgyzstan": "🇰🇬", "lab_coat": "🥼", "label": "🏷️", "lacrosse": "🥍", "ladder": "🪜", "lady_beetle": "🐞", "lantern": "🏮", "laos": "🇱🇦", "large_blue_circle": "🔵", "large_blue_diamond": "🔷", "large_orange_diamond": "🔶", "last_quarter_moon": "🌗", "last_quarter_moon_with_face": "🌜", "latin_cross": "✝️", "latvia": "🇱🇻", "laughing": "😆", "leafy_green": "🥬", "leaves": "🍃", "lebanon": "🇱🇧", "ledger": "📒", "left_luggage": "🛅", "left_right_arrow": "↔️", "left_speech_bubble": "🗨️", "leftwards_arrow_with_hook": "↩️", "leg": "🦵", "lemon": "🍋", "leo": "♌", "leopard": "🐆", "lesotho": "🇱🇸", "level_slider": "🎚️", "liberia": "🇱🇷", "libra": "♎", "libya": "🇱🇾", "liechtenstein": "🇱🇮", "light_rail": "🚈", "link": "🔗", "lion": "🦁", "lips": "👄", "lipstick": "💄", "lithuania": "🇱🇹", "lizard": "🦎", "llama": "🦙", "lobster": "🦞", "lock": "🔒", "lock_with_ink_pen": "🔏", "lollipop": "🍭", "long_drum": "🪘", "loop": "➿", "lotion_bottle": "🧴", "lotus_position": "🧘", "lotus_position_man": "🧘‍♂️", "lotus_position_woman": "🧘‍♀️", "loud_sound": "🔊", "loudspeaker": "📢", "love_hotel": "🏩", "love_letter": "💌", "love_you_gesture": "🤟", "low_brightness": "🔅", "luggage": "🧳", "lungs": "🫁", "luxembourg": "🇱🇺", "lying_face": "🤥", "m": "Ⓜ️", "macau": "🇲🇴", "macedonia": "🇲🇰", "madagascar": "🇲🇬", "mag": "🔍", "mag_right": "🔎", "mage": "🧙", "mage_man": "🧙‍♂️", "mage_woman": "🧙‍♀️", "magic_wand": "🪄", "magnet": "🧲", "mahjong": "🀄", "mailbox": "📫", "mailbox_closed": "📪", "mailbox_with_mail": "📬", "mailbox_with_no_mail": "📭", "malawi": "🇲🇼", "malaysia": "🇲🇾", "maldives": "🇲🇻", "male_detective": "🕵️‍♂️", "male_sign": "♂️", "mali": "🇲🇱", "malta": "🇲🇹", "mammoth": "🦣", "man": "👨", "man_artist": "👨‍🎨", "man_astronaut": "👨‍🚀", "man_beard": "🧔‍♂️", "man_cartwheeling": "🤸‍♂️", "man_cook": "👨‍🍳", "man_dancing": "🕺", "man_facepalming": "🤦‍♂️", "man_factory_worker": "👨‍🏭", "man_farmer": "👨‍🌾", "man_feeding_baby": "👨‍🍼", "man_firefighter": "👨‍🚒", "man_health_worker": "👨‍⚕️", "man_in_manual_wheelchair": "👨‍🦽", "man_in_motorized_wheelchair": "👨‍🦼", "man_in_tuxedo": "🤵‍♂️", "man_judge": "👨‍⚖️", "man_juggling": "🤹‍♂️", "man_mechanic": "👨‍🔧", "man_office_worker": "👨‍💼", "man_pilot": "👨‍✈️", "man_playing_handball": "🤾‍♂️", "man_playing_water_polo": "🤽‍♂️", "man_scientist": "👨‍🔬", "man_shrugging": "🤷‍♂️", "man_singer": "👨‍🎤", "man_student": "👨‍🎓", "man_teacher": "👨‍🏫", "man_technologist": "👨‍💻", "man_with_gua_pi_mao": "👲", "man_with_probing_cane": "👨‍🦯", "man_with_turban": "👳‍♂️", "man_with_veil": "👰‍♂️", "mandarin": "🍊", "mango": "🥭", "mans_shoe": "👞", "mantelpiece_clock": "🕰️", "manual_wheelchair": "🦽", "maple_leaf": "🍁", "marshall_islands": "🇲🇭", "martial_arts_uniform": "🥋", "martinique": "🇲🇶", "mask": "😷", "massage": "💆", "massage_man": "💆‍♂️", "massage_woman": "💆‍♀️", "mate": "🧉", "mauritania": "🇲🇷", "mauritius": "🇲🇺", "mayotte": "🇾🇹", "meat_on_bone": "🍖", "mechanic": "🧑‍🔧", "mechanical_arm": "🦾", "mechanical_leg": "🦿", "medal_military": "🎖️", "medal_sports": "🏅", "medical_symbol": "⚕️", "mega": "📣", "melon": "🍈", "memo": "📝", "men_wrestling": "🤼‍♂️", "mending_heart": "❤️‍🩹", "menorah": "🕎", "mens": "🚹", "mermaid": "🧜‍♀️", "merman": "🧜‍♂️", "merperson": "🧜", "metal": "🤘", "metro": "🚇", "mexico": "🇲🇽", "microbe": "🦠", "micronesia": "🇫🇲", "microphone": "🎤", "microscope": "🔬", "middle_finger": "🖕", "military_helmet": "🪖", "milk_glass": "🥛", "milky_way": "🌌", "minibus": "🚐", "minidisc": "💽", "mirror": "🪞", "mobile_phone_off": "📴", "moldova": "🇲🇩", "monaco": "🇲🇨", "money_mouth_face": "🤑", "money_with_wings": "💸", "moneybag": "💰", "mongolia": "🇲🇳", "monkey": "🐒", "monkey_face": "🐵", "monocle_face": "🧐", "monorail": "🚝", "montenegro": "🇲🇪", "montserrat": "🇲🇸", "moon": "🌔", "moon_cake": "🥮", "morocco": "🇲🇦", "mortar_board": "🎓", "mosque": "🕌", "mosquito": "🦟", "motor_boat": "🛥️", "motor_scooter": "🛵", "motorcycle": "🏍️", "motorized_wheelchair": "🦼", "motorway": "🛣️", "mount_fuji": "🗻", "mountain": "⛰️", "mountain_bicyclist": "🚵", "mountain_biking_man": "🚵‍♂️", "mountain_biking_woman": "🚵‍♀️", "mountain_cableway": "🚠", "mountain_railway": "🚞", "mountain_snow": "🏔️", "mouse": "🐭", "mouse2": "🐁", "mouse_trap": "🪤", "movie_camera": "🎥", "moyai": "🗿", "mozambique": "🇲🇿", "mrs_claus": "🤶", "muscle": "💪", "mushroom": "🍄", "musical_keyboard": "🎹", "musical_note": "🎵", "musical_score": "🎼", "mute": "🔇", "mx_claus": "🧑‍🎄", "myanmar": "🇲🇲", "nail_care": "💅", "name_badge": "📛", "namibia": "🇳🇦", "national_park": "🏞️", "nauru": "🇳🇷", "nauseated_face": "🤢", "nazar_amulet": "🧿", "necktie": "👔", "negative_squared_cross_mark": "❎", "nepal": "🇳🇵", "nerd_face": "🤓", "nesting_dolls": "🪆", "netherlands": "🇳🇱", "neutral_face": "😐", "new": "🆕", "new_caledonia": "🇳🇨", "new_moon": "🌑", "new_moon_with_face": "🌚", "new_zealand": "🇳🇿", "newspaper": "📰", "newspaper_roll": "🗞️", "next_track_button": "⏭️", "ng": "🆖", "ng_man": "🙅‍♂️", "ng_woman": "🙅‍♀️", "nicaragua": "🇳🇮", "niger": "🇳🇪", "nigeria": "🇳🇬", "night_with_stars": "🌃", "nine": "9️⃣", "ninja": "🥷", "niue": "🇳🇺", "no_bell": "🔕", "no_bicycles": "🚳", "no_entry": "⛔", "no_entry_sign": "🚫", "no_good": "🙅", "no_good_man": "🙅‍♂️", "no_good_woman": "🙅‍♀️", "no_mobile_phones": "📵", "no_mouth": "😶", "no_pedestrians": "🚷", "no_smoking": "🚭", "non-potable_water": "🚱", "norfolk_island": "🇳🇫", "north_korea": "🇰🇵", "northern_mariana_islands": "🇲🇵", "norway": "🇳🇴", "nose": "👃", "notebook": "📓", "notebook_with_decorative_cover": "📔", "notes": "🎶", "nut_and_bolt": "🔩", "o": "⭕", "o2": "🅾️", "ocean": "🌊", "octopus": "🐙", "oden": "🍢", "office": "🏢", "office_worker": "🧑‍💼", "oil_drum": "🛢️", "ok": "🆗", "ok_hand": "👌", "ok_man": "🙆‍♂️", "ok_person": "🙆", "ok_woman": "🙆‍♀️", "old_key": "🗝️", "older_adult": "🧓", "older_man": "👴", "older_woman": "👵", "olive": "🫒", "om": "🕉️", "oman": "🇴🇲", "on": "🔛", "oncoming_automobile": "🚘", "oncoming_bus": "🚍", "oncoming_police_car": "🚔", "oncoming_taxi": "🚖", "one": "1️⃣", "one_piece_swimsuit": "🩱", "onion": "🧅", "open_book": "📖", "open_file_folder": "📂", "open_hands": "👐", "open_mouth": "😮", "open_umbrella": "☂️", "ophiuchus": "⛎", "orange": "🍊", "orange_book": "📙", "orange_circle": "🟠", "orange_heart": "🧡", "orange_square": "🟧", "orangutan": "🦧", "orthodox_cross": "☦️", "otter": "🦦", "outbox_tray": "📤", "owl": "🦉", "ox": "🐂", "oyster": "🦪", "package": "📦", "page_facing_up": "📄", "page_with_curl": "📃", "pager": "📟", "paintbrush": "🖌️", "pakistan": "🇵🇰", "palau": "🇵🇼", "palestinian_territories": "🇵🇸", "palm_tree": "🌴", "palms_up_together": "🤲", "panama": "🇵🇦", "pancakes": "🥞", "panda_face": "🐼", "paperclip": "📎", "paperclips": "🖇️", "papua_new_guinea": "🇵🇬", "parachute": "🪂", "paraguay": "🇵🇾", "parasol_on_ground": "⛱️", "parking": "🅿️", "parrot": "🦜", "part_alternation_mark": "〽️", "partly_sunny": "⛅", "partying_face": "🥳", "passenger_ship": "🛳️", "passport_control": "🛂", "pause_button": "⏸️", "paw_prints": "🐾", "peace_symbol": "☮️", "peach": "🍑", "peacock": "🦚", "peanuts": "🥜", "pear": "🍐", "pen": "🖊️", "pencil": "📝", "pencil2": "✏️", "penguin": "🐧", "pensive": "😔", "people_holding_hands": "🧑‍🤝‍🧑", "people_hugging": "🫂", "performing_arts": "🎭", "persevere": "😣", "person_bald": "🧑‍🦲", "person_curly_hair": "🧑‍🦱", "person_feeding_baby": "🧑‍🍼", "person_fencing": "🤺", "person_in_manual_wheelchair": "🧑‍🦽", "person_in_motorized_wheelchair": "🧑‍🦼", "person_in_tuxedo": "🤵", "person_red_hair": "🧑‍🦰", "person_white_hair": "🧑‍🦳", "person_with_probing_cane": "🧑‍🦯", "person_with_turban": "👳", "person_with_veil": "👰", "peru": "🇵🇪", "petri_dish": "🧫", "philippines": "🇵🇭", "phone": "☎️", "pick": "⛏️", "pickup_truck": "🛻", "pie": "🥧", "pig": "🐷", "pig2": "🐖", "pig_nose": "🐽", "pill": "💊", "pilot": "🧑‍✈️", "pinata": "🪅", "pinched_fingers": "🤌", "pinching_hand": "🤏", "pineapple": "🍍", "ping_pong": "🏓", "pirate_flag": "🏴‍☠️", "pisces": "♓", "pitcairn_islands": "🇵🇳", "pizza": "🍕", "placard": "🪧", "place_of_worship": "🛐", "plate_with_cutlery": "🍽️", "play_or_pause_button": "⏯️", "pleading_face": "🥺", "plunger": "🪠", "point_down": "👇", "point_left": "👈", "point_right": "👉", "point_up": "☝️", "point_up_2": "👆", "poland": "🇵🇱", "polar_bear": "🐻‍❄️", "police_car": "🚓", "police_officer": "👮", "policeman": "👮‍♂️", "policewoman": "👮‍♀️", "poodle": "🐩", "poop": "💩", "popcorn": "🍿", "portugal": "🇵🇹", "post_office": "🏣", "postal_horn": "📯", "postbox": "📮", "potable_water": "🚰", "potato": "🥔", "potted_plant": "🪴", "pouch": "👝", "poultry_leg": "🍗", "pound": "💷", "pout": "😡", "pouting_cat": "😾", "pouting_face": "🙎", "pouting_man": "🙎‍♂️", "pouting_woman": "🙎‍♀️", "pray": "🙏", "prayer_beads": "📿", "pregnant_woman": "🤰", "pretzel": "🥨", "previous_track_button": "⏮️", "prince": "🤴", "princess": "👸", "printer": "🖨️", "probing_cane": "🦯", "puerto_rico": "🇵🇷", "punch": "👊", "purple_circle": "🟣", "purple_heart": "💜", "purple_square": "🟪", "purse": "👛", "pushpin": "📌", "put_litter_in_its_place": "🚮", "qatar": "🇶🇦", "question": "❓", "rabbit": "🐰", "rabbit2": "🐇", "raccoon": "🦝", "racehorse": "🐎", "racing_car": "🏎️", "radio": "📻", "radio_button": "🔘", "radioactive": "☢️", "rage": "😡", "railway_car": "🚃", "railway_track": "🛤️", "rainbow": "🌈", "rainbow_flag": "🏳️‍🌈", "raised_back_of_hand": "🤚", "raised_eyebrow": "🤨", "raised_hand": "✋", "raised_hand_with_fingers_splayed": "🖐️", "raised_hands": "🙌", "raising_hand": "🙋", "raising_hand_man": "🙋‍♂️", "raising_hand_woman": "🙋‍♀️", "ram": "🐏", "ramen": "🍜", "rat": "🐀", "razor": "🪒", "receipt": "🧾", "record_button": "⏺️", "recycle": "♻️", "red_car": "🚗", "red_circle": "🔴", "red_envelope": "🧧", "red_haired_man": "👨‍🦰", "red_haired_woman": "👩‍🦰", "red_square": "🟥", "registered": "®️", "relaxed": "☺️", "relieved": "😌", "reminder_ribbon": "🎗️", "repeat": "🔁", "repeat_one": "🔂", "rescue_worker_helmet": "⛑️", "restroom": "🚻", "reunion": "🇷🇪", "revolving_hearts": "💞", "rewind": "⏪", "rhinoceros": "🦏", "ribbon": "🎀", "rice": "🍚", "rice_ball": "🍙", "rice_cracker": "🍘", "rice_scene": "🎑", "right_anger_bubble": "🗯️", "ring": "💍", "ringed_planet": "🪐", "robot": "🤖", "rock": "🪨", "rocket": "🚀", "rofl": "🤣", "roll_eyes": "🙄", "roll_of_paper": "🧻", "roller_coaster": "🎢", "roller_skate": "🛼", "romania": "🇷🇴", "rooster": "🐓", "rose": "🌹", "rosette": "🏵️", "rotating_light": "🚨", "round_pushpin": "📍", "rowboat": "🚣", "rowing_man": "🚣‍♂️", "rowing_woman": "🚣‍♀️", "ru": "🇷🇺", "rugby_football": "🏉", "runner": "🏃", "running": "🏃", "running_man": "🏃‍♂️", "running_shirt_with_sash": "🎽", "running_woman": "🏃‍♀️", "rwanda": "🇷🇼", "sa": "🈂️", "safety_pin": "🧷", "safety_vest": "🦺", "sagittarius": "♐", "sailboat": "⛵", "sake": "🍶", "salt": "🧂", "samoa": "🇼🇸", "san_marino": "🇸🇲", "sandal": "👡", "sandwich": "🥪", "santa": "🎅", "sao_tome_principe": "🇸🇹", "sari": "🥻", "sassy_man": "💁‍♂️", "sassy_woman": "💁‍♀️", "satellite": "📡", "satisfied": "😆", "saudi_arabia": "🇸🇦", "sauna_man": "🧖‍♂️", "sauna_person": "🧖", "sauna_woman": "🧖‍♀️", "sauropod": "🦕", "saxophone": "🎷", "scarf": "🧣", "school": "🏫", "school_satchel": "🎒", "scientist": "🧑‍🔬", "scissors": "✂️", "scorpion": "🦂", "scorpius": "♏", "scotland": "🏴󠁧󠁢󠁳󠁣󠁴󠁿", "scream": "😱", "scream_cat": "🙀", "screwdriver": "🪛", "scroll": "📜", "seal": "🦭", "seat": "💺", "secret": "㊙️", "see_no_evil": "🙈", "seedling": "🌱", "selfie": "🤳", "senegal": "🇸🇳", "serbia": "🇷🇸", "service_dog": "🐕‍🦺", "seven": "7️⃣", "sewing_needle": "🪡", "seychelles": "🇸🇨", "shallow_pan_of_food": "🥘", "shamrock": "☘️", "shark": "🦈", "shaved_ice": "🍧", "sheep": "🐑", "shell": "🐚", "shield": "🛡️", "shinto_shrine": "⛩️", "ship": "🚢", "shirt": "👕", "shit": "💩", "shoe": "👞", "shopping": "🛍️", "shopping_cart": "🛒", "shorts": "🩳", "shower": "🚿", "shrimp": "🦐", "shrug": "🤷", "shushing_face": "🤫", "sierra_leone": "🇸🇱", "signal_strength": "📶", "singapore": "🇸🇬", "singer": "🧑‍🎤", "sint_maarten": "🇸🇽", "six": "6️⃣", "six_pointed_star": "🔯", "skateboard": "🛹", "ski": "🎿", "skier": "⛷️", "skull": "💀", "skull_and_crossbones": "☠️", "skunk": "🦨", "sled": "🛷", "sleeping": "😴", "sleeping_bed": "🛌", "sleepy": "😪", "slightly_frowning_face": "🙁", "slightly_smiling_face": "🙂", "slot_machine": "🎰", "sloth": "🦥", "slovakia": "🇸🇰", "slovenia": "🇸🇮", "small_airplane": "🛩️", "small_blue_diamond": "🔹", "small_orange_diamond": "🔸", "small_red_triangle": "🔺", "small_red_triangle_down": "🔻", "smile": "😄", "smile_cat": "😸", "smiley": "😃", "smiley_cat": "😺", "smiling_face_with_tear": "🥲", "smiling_face_with_three_hearts": "🥰", "smiling_imp": "😈", "smirk": "😏", "smirk_cat": "😼", "smoking": "🚬", "snail": "🐌", "snake": "🐍", "sneezing_face": "🤧", "snowboarder": "🏂", "snowflake": "❄️", "snowman": "⛄", "snowman_with_snow": "☃️", "soap": "🧼", "sob": "😭", "soccer": "⚽", "socks": "🧦", "softball": "🥎", "solomon_islands": "🇸🇧", "somalia": "🇸🇴", "soon": "🔜", "sos": "🆘", "sound": "🔉", "south_africa": "🇿🇦", "south_georgia_south_sandwich_islands": "🇬🇸", "south_sudan": "🇸🇸", "space_invader": "👾", "spades": "♠️", "spaghetti": "🍝", "sparkle": "❇️", "sparkler": "🎇", "sparkles": "✨", "sparkling_heart": "💖", "speak_no_evil": "🙊", "speaker": "🔈", "speaking_head": "🗣️", "speech_balloon": "💬", "speedboat": "🚤", "spider": "🕷️", "spider_web": "🕸️", "spiral_calendar": "🗓️", "spiral_notepad": "🗒️", "sponge": "🧽", "spoon": "🥄", "squid": "🦑", "sri_lanka": "🇱🇰", "st_barthelemy": "🇧🇱", "st_helena": "🇸🇭", "st_kitts_nevis": "🇰🇳", "st_lucia": "🇱🇨", "st_martin": "🇲🇫", "st_pierre_miquelon": "🇵🇲", "st_vincent_grenadines": "🇻🇨", "stadium": "🏟️", "standing_man": "🧍‍♂️", "standing_person": "🧍", "standing_woman": "🧍‍♀️", "star": "⭐", "star2": "🌟", "star_and_crescent": "☪️", "star_of_david": "✡️", "star_struck": "🤩", "stars": "🌠", "station": "🚉", "statue_of_liberty": "🗽", "steam_locomotive": "🚂", "stethoscope": "🩺", "stew": "🍲", "stop_button": "⏹️", "stop_sign": "🛑", "stopwatch": "⏱️", "straight_ruler": "📏", "strawberry": "🍓", "stuck_out_tongue": "😛", "stuck_out_tongue_closed_eyes": "😝", "stuck_out_tongue_winking_eye": "😜", "student": "🧑‍🎓", "studio_microphone": "🎙️", "stuffed_flatbread": "🥙", "sudan": "🇸🇩", "sun_behind_large_cloud": "🌥️", "sun_behind_rain_cloud": "🌦️", "sun_behind_small_cloud": "🌤️", "sun_with_face": "🌞", "sunflower": "🌻", "sunglasses": "😎", "sunny": "☀️", "sunrise": "🌅", "sunrise_over_mountains": "🌄", "superhero": "🦸", "superhero_man": "🦸‍♂️", "superhero_woman": "🦸‍♀️", "supervillain": "🦹", "supervillain_man": "🦹‍♂️", "supervillain_woman": "🦹‍♀️", "surfer": "🏄", "surfing_man": "🏄‍♂️", "surfing_woman": "🏄‍♀️", "suriname": "🇸🇷", "sushi": "🍣", "suspension_railway": "🚟", "svalbard_jan_mayen": "🇸🇯", "swan": "🦢", "swaziland": "🇸🇿", "sweat": "😓", "sweat_drops": "💦", "sweat_smile": "😅", "sweden": "🇸🇪", "sweet_potato": "🍠", "swim_brief": "🩲", "swimmer": "🏊", "swimming_man": "🏊‍♂️", "swimming_woman": "🏊‍♀️", "switzerland": "🇨🇭", "symbols": "🔣", "synagogue": "🕍", "syria": "🇸🇾", "syringe": "💉", "t-rex": "🦖", "taco": "🌮", "tada": "🎉", "taiwan": "🇹🇼", "tajikistan": "🇹🇯", "takeout_box": "🥡", "tamale": "🫔", "tanabata_tree": "🎋", "tangerine": "🍊", "tanzania": "🇹🇿", "taurus": "♉", "taxi": "🚕", "tea": "🍵", "teacher": "🧑‍🏫", "teapot": "🫖", "technologist": "🧑‍💻", "teddy_bear": "🧸", "telephone": "☎️", "telephone_receiver": "📞", "telescope": "🔭", "tennis": "🎾", "tent": "⛺", "test_tube": "🧪", "thailand": "🇹🇭", "thermometer": "🌡️", "thinking": "🤔", "thong_sandal": "🩴", "thought_balloon": "💭", "thread": "🧵", "three": "3️⃣", "thumbsdown": "👎", "thumbsup": "👍", "ticket": "🎫", "tickets": "🎟️", "tiger": "🐯", "tiger2": "🐅", "timer_clock": "⏲️", "timor_leste": "🇹🇱", "tipping_hand_man": "💁‍♂️", "tipping_hand_person": "💁", "tipping_hand_woman": "💁‍♀️", "tired_face": "😫", "tm": "™️", "togo": "🇹🇬", "toilet": "🚽", "tokelau": "🇹🇰", "tokyo_tower": "🗼", "tomato": "🍅", "tonga": "🇹🇴", "tongue": "👅", "toolbox": "🧰", "tooth": "🦷", "toothbrush": "🪥", "top": "🔝", "tophat": "🎩", "tornado": "🌪️", "tr": "🇹🇷", "trackball": "🖲️", "tractor": "🚜", "traffic_light": "🚥", "train": "🚋", "train2": "🚆", "tram": "🚊", "transgender_flag": "🏳️‍⚧️", "transgender_symbol": "⚧️", "triangular_flag_on_post": "🚩", "triangular_ruler": "📐", "trident": "🔱", "trinidad_tobago": "🇹🇹", "tristan_da_cunha": "🇹🇦", "triumph": "😤", "trolleybus": "🚎", "trophy": "🏆", "tropical_drink": "🍹", "tropical_fish": "🐠", "truck": "🚚", "trumpet": "🎺", "tshirt": "👕", "tulip": "🌷", "tumbler_glass": "🥃", "tunisia": "🇹🇳", "turkey": "🦃", "turkmenistan": "🇹🇲", "turks_caicos_islands": "🇹🇨", "turtle": "🐢", "tuvalu": "🇹🇻", "tv": "📺", "twisted_rightwards_arrows": "🔀", "two": "2️⃣", "two_hearts": "💕", "two_men_holding_hands": "👬", "two_women_holding_hands": "👭", "u5272": "🈹", "u5408": "🈴", "u55b6": "🈺", "u6307": "🈯", "u6708": "🈷️", "u6709": "🈶", "u6e80": "🈵", "u7121": "🈚", "u7533": "🈸", "u7981": "🈲", "u7a7a": "🈳", "uganda": "🇺🇬", "uk": "🇬🇧", "ukraine": "🇺🇦", "umbrella": "☔", "unamused": "😒", "underage": "🔞", "unicorn": "🦄", "united_arab_emirates": "🇦🇪", "united_nations": "🇺🇳", "unlock": "🔓", "up": "🆙", "upside_down_face": "🙃", "uruguay": "🇺🇾", "us": "🇺🇸", "us_outlying_islands": "🇺🇲", "us_virgin_islands": "🇻🇮", "uzbekistan": "🇺🇿", "v": "✌️", "vampire": "🧛", "vampire_man": "🧛‍♂️", "vampire_woman": "🧛‍♀️", "vanuatu": "🇻🇺", "vatican_city": "🇻🇦", "venezuela": "🇻🇪", "vertical_traffic_light": "🚦", "vhs": "📼", "vibration_mode": "📳", "video_camera": "📹", "video_game": "🎮", "vietnam": "🇻🇳", "violin": "🎻", "virgo": "♍", "volcano": "🌋", "volleyball": "🏐", "vomiting_face": "🤮", "vs": "🆚", "vulcan_salute": "🖖", "waffle": "🧇", "wales": "🏴󠁧󠁢󠁷󠁬󠁳󠁿", "walking": "🚶", "walking_man": "🚶‍♂️", "walking_woman": "🚶‍♀️", "wallis_futuna": "🇼🇫", "waning_crescent_moon": "🌘", "waning_gibbous_moon": "🌖", "warning": "⚠️", "wastebasket": "🗑️", "watch": "⌚", "water_buffalo": "🐃", "water_polo": "🤽", "watermelon": "🍉", "wave": "👋", "wavy_dash": "〰️", "waxing_crescent_moon": "🌒", "waxing_gibbous_moon": "🌔", "wc": "🚾", "weary": "😩", "wedding": "💒", "weight_lifting": "🏋️", "weight_lifting_man": "🏋️‍♂️", "weight_lifting_woman": "🏋️‍♀️", "western_sahara": "🇪🇭", "whale": "🐳", "whale2": "🐋", "wheel_of_dharma": "☸️", "wheelchair": "♿", "white_check_mark": "✅", "white_circle": "⚪", "white_flag": "🏳️", "white_flower": "💮", "white_haired_man": "👨‍🦳", "white_haired_woman": "👩‍🦳", "white_heart": "🤍", "white_large_square": "⬜", "white_medium_small_square": "◽", "white_medium_square": "◻️", "white_small_square": "▫️", "white_square_button": "🔳", "wilted_flower": "🥀", "wind_chime": "🎐", "wind_face": "🌬️", "window": "🪟", "wine_glass": "🍷", "wink": "😉", "wolf": "🐺", "woman": "👩", "woman_artist": "👩‍🎨", "woman_astronaut": "👩‍🚀", "woman_beard": "🧔‍♀️", "woman_cartwheeling": "🤸‍♀️", "woman_cook": "👩‍🍳", "woman_dancing": "💃", "woman_facepalming": "🤦‍♀️", "woman_factory_worker": "👩‍🏭", "woman_farmer": "👩‍🌾", "woman_feeding_baby": "👩‍🍼", "woman_firefighter": "👩‍🚒", "woman_health_worker": "👩‍⚕️", "woman_in_manual_wheelchair": "👩‍🦽", "woman_in_motorized_wheelchair": "👩‍🦼", "woman_in_tuxedo": "🤵‍♀️", "woman_judge": "👩‍⚖️", "woman_juggling": "🤹‍♀️", "woman_mechanic": "👩‍🔧", "woman_office_worker": "👩‍💼", "woman_pilot": "👩‍✈️", "woman_playing_handball": "🤾‍♀️", "woman_playing_water_polo": "🤽‍♀️", "woman_scientist": "👩‍🔬", "woman_shrugging": "🤷‍♀️", "woman_singer": "👩‍🎤", "woman_student": "👩‍🎓", "woman_teacher": "👩‍🏫", "woman_technologist": "👩‍💻", "woman_with_headscarf": "🧕", "woman_with_probing_cane": "👩‍🦯", "woman_with_turban": "👳‍♀️", "woman_with_veil": "👰‍♀️", "womans_clothes": "👚", "womans_hat": "👒", "women_wrestling": "🤼‍♀️", "womens": "🚺", "wood": "🪵", "woozy_face": "🥴", "world_map": "🗺️", "worm": "🪱", "worried": "😟", "wrench": "🔧", "wrestling": "🤼", "writing_hand": "✍️", "x": "❌", "yarn": "🧶", "yawning_face": "🥱", "yellow_circle": "🟡", "yellow_heart": "💛", "yellow_square": "🟨", "yemen": "🇾🇪", "yen": "💴", "yin_yang": "☯️", "yo_yo": "🪀", "yum": "😋", "zambia": "🇿🇲", "zany_face": "🤪", "zap": "⚡", "zebra": "🦓", "zero": "0️⃣", "zimbabwe": "🇿🇼", "zipper_mouth_face": "🤐", "zombie": "🧟", "zombie_man": "🧟‍♂️", "zombie_woman": "🧟‍♀️", "zzz": "💤" }ntfy-2.11.0/server/message_cache.go000066400000000000000000000702301462047176100171710ustar00rootroot00000000000000package server import ( "database/sql" "encoding/json" "errors" "fmt" "net/netip" "strings" "time" _ "github.com/mattn/go-sqlite3" // SQLite driver "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/util" ) var ( errUnexpectedMessageType = errors.New("unexpected message type") errMessageNotFound = errors.New("message not found") errNoRows = errors.New("no rows found") ) // Messages cache const ( createMessagesTableQuery = ` BEGIN; CREATE TABLE IF NOT EXISTS messages ( id INTEGER PRIMARY KEY AUTOINCREMENT, mid TEXT NOT NULL, time INT NOT NULL, expires INT NOT NULL, topic TEXT NOT NULL, message TEXT NOT NULL, title TEXT NOT NULL, priority INT NOT NULL, tags TEXT NOT NULL, click TEXT NOT NULL, icon TEXT NOT NULL, actions TEXT NOT NULL, attachment_name TEXT NOT NULL, attachment_type TEXT NOT NULL, attachment_size INT NOT NULL, attachment_expires INT NOT NULL, attachment_url TEXT NOT NULL, attachment_deleted INT NOT NULL, sender TEXT NOT NULL, user TEXT NOT NULL, content_type TEXT NOT NULL, encoding TEXT NOT NULL, published INT NOT NULL ); CREATE INDEX IF NOT EXISTS idx_mid ON messages (mid); CREATE INDEX IF NOT EXISTS idx_time ON messages (time); CREATE INDEX IF NOT EXISTS idx_topic ON messages (topic); CREATE INDEX IF NOT EXISTS idx_expires ON messages (expires); CREATE INDEX IF NOT EXISTS idx_sender ON messages (sender); CREATE INDEX IF NOT EXISTS idx_user ON messages (user); CREATE INDEX IF NOT EXISTS idx_attachment_expires ON messages (attachment_expires); CREATE TABLE IF NOT EXISTS stats ( key TEXT PRIMARY KEY, value INT ); INSERT INTO stats (key, value) VALUES ('messages', 0); COMMIT; ` insertMessageQuery = ` INSERT INTO messages (mid, time, expires, topic, message, title, priority, tags, click, icon, actions, attachment_name, attachment_type, attachment_size, attachment_expires, attachment_url, attachment_deleted, sender, user, content_type, encoding, published) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ` deleteMessageQuery = `DELETE FROM messages WHERE mid = ?` updateMessagesForTopicExpiryQuery = `UPDATE messages SET expires = ? WHERE topic = ?` selectRowIDFromMessageID = `SELECT id FROM messages WHERE mid = ?` // Do not include topic, see #336 and TestServer_PollSinceID_MultipleTopics selectMessagesByIDQuery = ` SELECT mid, time, expires, topic, message, title, priority, tags, click, icon, actions, attachment_name, attachment_type, attachment_size, attachment_expires, attachment_url, sender, user, content_type, encoding FROM messages WHERE mid = ? ` selectMessagesSinceTimeQuery = ` SELECT mid, time, expires, topic, message, title, priority, tags, click, icon, actions, attachment_name, attachment_type, attachment_size, attachment_expires, attachment_url, sender, user, content_type, encoding FROM messages WHERE topic = ? AND time >= ? AND published = 1 ORDER BY time, id ` selectMessagesSinceTimeIncludeScheduledQuery = ` SELECT mid, time, expires, topic, message, title, priority, tags, click, icon, actions, attachment_name, attachment_type, attachment_size, attachment_expires, attachment_url, sender, user, content_type, encoding FROM messages WHERE topic = ? AND time >= ? ORDER BY time, id ` selectMessagesSinceIDQuery = ` SELECT mid, time, expires, topic, message, title, priority, tags, click, icon, actions, attachment_name, attachment_type, attachment_size, attachment_expires, attachment_url, sender, user, content_type, encoding FROM messages WHERE topic = ? AND id > ? AND published = 1 ORDER BY time, id ` selectMessagesSinceIDIncludeScheduledQuery = ` SELECT mid, time, expires, topic, message, title, priority, tags, click, icon, actions, attachment_name, attachment_type, attachment_size, attachment_expires, attachment_url, sender, user, content_type, encoding FROM messages WHERE topic = ? AND (id > ? OR published = 0) ORDER BY time, id ` selectMessagesDueQuery = ` SELECT mid, time, expires, topic, message, title, priority, tags, click, icon, actions, attachment_name, attachment_type, attachment_size, attachment_expires, attachment_url, sender, user, content_type, encoding FROM messages WHERE time <= ? AND published = 0 ORDER BY time, id ` selectMessagesExpiredQuery = `SELECT mid FROM messages WHERE expires <= ? AND published = 1` updateMessagePublishedQuery = `UPDATE messages SET published = 1 WHERE mid = ?` selectMessagesCountQuery = `SELECT COUNT(*) FROM messages` selectMessageCountPerTopicQuery = `SELECT topic, COUNT(*) FROM messages GROUP BY topic` selectTopicsQuery = `SELECT topic FROM messages GROUP BY topic` updateAttachmentDeleted = `UPDATE messages SET attachment_deleted = 1 WHERE mid = ?` selectAttachmentsExpiredQuery = `SELECT mid FROM messages WHERE attachment_expires > 0 AND attachment_expires <= ? AND attachment_deleted = 0` selectAttachmentsSizeBySenderQuery = `SELECT IFNULL(SUM(attachment_size), 0) FROM messages WHERE user = '' AND sender = ? AND attachment_expires >= ?` selectAttachmentsSizeByUserIDQuery = `SELECT IFNULL(SUM(attachment_size), 0) FROM messages WHERE user = ? AND attachment_expires >= ?` selectStatsQuery = `SELECT value FROM stats WHERE key = 'messages'` updateStatsQuery = `UPDATE stats SET value = ? WHERE key = 'messages'` ) // Schema management queries const ( currentSchemaVersion = 13 createSchemaVersionTableQuery = ` CREATE TABLE IF NOT EXISTS schemaVersion ( id INT PRIMARY KEY, version INT NOT NULL ); ` insertSchemaVersion = `INSERT INTO schemaVersion VALUES (1, ?)` updateSchemaVersion = `UPDATE schemaVersion SET version = ? WHERE id = 1` selectSchemaVersionQuery = `SELECT version FROM schemaVersion WHERE id = 1` // 0 -> 1 migrate0To1AlterMessagesTableQuery = ` BEGIN; ALTER TABLE messages ADD COLUMN title TEXT NOT NULL DEFAULT(''); ALTER TABLE messages ADD COLUMN priority INT NOT NULL DEFAULT(0); ALTER TABLE messages ADD COLUMN tags TEXT NOT NULL DEFAULT(''); COMMIT; ` // 1 -> 2 migrate1To2AlterMessagesTableQuery = ` ALTER TABLE messages ADD COLUMN published INT NOT NULL DEFAULT(1); ` // 2 -> 3 migrate2To3AlterMessagesTableQuery = ` BEGIN; ALTER TABLE messages ADD COLUMN click TEXT NOT NULL DEFAULT(''); ALTER TABLE messages ADD COLUMN attachment_name TEXT NOT NULL DEFAULT(''); ALTER TABLE messages ADD COLUMN attachment_type TEXT NOT NULL DEFAULT(''); ALTER TABLE messages ADD COLUMN attachment_size INT NOT NULL DEFAULT('0'); ALTER TABLE messages ADD COLUMN attachment_expires INT NOT NULL DEFAULT('0'); ALTER TABLE messages ADD COLUMN attachment_owner TEXT NOT NULL DEFAULT(''); ALTER TABLE messages ADD COLUMN attachment_url TEXT NOT NULL DEFAULT(''); COMMIT; ` // 3 -> 4 migrate3To4AlterMessagesTableQuery = ` ALTER TABLE messages ADD COLUMN encoding TEXT NOT NULL DEFAULT(''); ` // 4 -> 5 migrate4To5AlterMessagesTableQuery = ` BEGIN; CREATE TABLE IF NOT EXISTS messages_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, mid TEXT NOT NULL, time INT NOT NULL, topic TEXT NOT NULL, message TEXT NOT NULL, title TEXT NOT NULL, priority INT NOT NULL, tags TEXT NOT NULL, click TEXT NOT NULL, attachment_name TEXT NOT NULL, attachment_type TEXT NOT NULL, attachment_size INT NOT NULL, attachment_expires INT NOT NULL, attachment_url TEXT NOT NULL, attachment_owner TEXT NOT NULL, encoding TEXT NOT NULL, published INT NOT NULL ); CREATE INDEX IF NOT EXISTS idx_mid ON messages_new (mid); CREATE INDEX IF NOT EXISTS idx_topic ON messages_new (topic); INSERT INTO messages_new ( mid, time, topic, message, title, priority, tags, click, attachment_name, attachment_type, attachment_size, attachment_expires, attachment_url, attachment_owner, encoding, published) SELECT id, time, topic, message, title, priority, tags, click, attachment_name, attachment_type, attachment_size, attachment_expires, attachment_url, attachment_owner, encoding, published FROM messages; DROP TABLE messages; ALTER TABLE messages_new RENAME TO messages; COMMIT; ` // 5 -> 6 migrate5To6AlterMessagesTableQuery = ` ALTER TABLE messages ADD COLUMN actions TEXT NOT NULL DEFAULT(''); ` // 6 -> 7 migrate6To7AlterMessagesTableQuery = ` ALTER TABLE messages RENAME COLUMN attachment_owner TO sender; ` // 7 -> 8 migrate7To8AlterMessagesTableQuery = ` ALTER TABLE messages ADD COLUMN icon TEXT NOT NULL DEFAULT(''); ` // 8 -> 9 migrate8To9AlterMessagesTableQuery = ` CREATE INDEX IF NOT EXISTS idx_time ON messages (time); ` // 9 -> 10 migrate9To10AlterMessagesTableQuery = ` ALTER TABLE messages ADD COLUMN user TEXT NOT NULL DEFAULT(''); ALTER TABLE messages ADD COLUMN attachment_deleted INT NOT NULL DEFAULT('0'); ALTER TABLE messages ADD COLUMN expires INT NOT NULL DEFAULT('0'); CREATE INDEX IF NOT EXISTS idx_expires ON messages (expires); CREATE INDEX IF NOT EXISTS idx_sender ON messages (sender); CREATE INDEX IF NOT EXISTS idx_user ON messages (user); CREATE INDEX IF NOT EXISTS idx_attachment_expires ON messages (attachment_expires); ` migrate9To10UpdateMessageExpiryQuery = `UPDATE messages SET expires = time + ?` // 10 -> 11 migrate10To11AlterMessagesTableQuery = ` CREATE TABLE IF NOT EXISTS stats ( key TEXT PRIMARY KEY, value INT ); INSERT INTO stats (key, value) VALUES ('messages', 0); ` // 11 -> 12 migrate11To12AlterMessagesTableQuery = ` ALTER TABLE messages ADD COLUMN content_type TEXT NOT NULL DEFAULT(''); ` // 12 -> 13 migrate12To13AlterMessagesTableQuery = ` CREATE INDEX IF NOT EXISTS idx_topic ON messages (topic); ` ) var ( migrations = map[int]func(db *sql.DB, cacheDuration time.Duration) error{ 0: migrateFrom0, 1: migrateFrom1, 2: migrateFrom2, 3: migrateFrom3, 4: migrateFrom4, 5: migrateFrom5, 6: migrateFrom6, 7: migrateFrom7, 8: migrateFrom8, 9: migrateFrom9, 10: migrateFrom10, 11: migrateFrom11, 12: migrateFrom12, } ) type messageCache struct { db *sql.DB queue *util.BatchingQueue[*message] nop bool } // newSqliteCache creates a SQLite file-backed cache func newSqliteCache(filename, startupQueries string, cacheDuration time.Duration, batchSize int, batchTimeout time.Duration, nop bool) (*messageCache, error) { db, err := sql.Open("sqlite3", filename) if err != nil { return nil, err } if err := setupMessagesDB(db, startupQueries, cacheDuration); err != nil { return nil, err } var queue *util.BatchingQueue[*message] if batchSize > 0 || batchTimeout > 0 { queue = util.NewBatchingQueue[*message](batchSize, batchTimeout) } cache := &messageCache{ db: db, queue: queue, nop: nop, } go cache.processMessageBatches() return cache, nil } // newMemCache creates an in-memory cache func newMemCache() (*messageCache, error) { return newSqliteCache(createMemoryFilename(), "", 0, 0, 0, false) } // newNopCache creates an in-memory cache that discards all messages; // it is always empty and can be used if caching is entirely disabled func newNopCache() (*messageCache, error) { return newSqliteCache(createMemoryFilename(), "", 0, 0, 0, true) } // createMemoryFilename creates a unique memory filename to use for the SQLite backend. // From mattn/go-sqlite3: "Each connection to ":memory:" opens a brand new in-memory // sql database, so if the stdlib's sql engine happens to open another connection and // you've only specified ":memory:", that connection will see a brand new database. // A workaround is to use "file::memory:?cache=shared" (or "file:foobar?mode=memory&cache=shared"). // Every connection to this string will point to the same in-memory database." func createMemoryFilename() string { return fmt.Sprintf("file:%s?mode=memory&cache=shared", util.RandomString(10)) } // AddMessage stores a message to the message cache synchronously, or queues it to be stored at a later date asyncronously. // The message is queued only if "batchSize" or "batchTimeout" are passed to the constructor. func (c *messageCache) AddMessage(m *message) error { if c.queue != nil { c.queue.Enqueue(m) return nil } return c.addMessages([]*message{m}) } // addMessages synchronously stores a match of messages. If the database is locked, the transaction waits until // SQLite's busy_timeout is exceeded before erroring out. func (c *messageCache) addMessages(ms []*message) error { if c.nop { return nil } if len(ms) == 0 { return nil } start := time.Now() tx, err := c.db.Begin() if err != nil { return err } defer tx.Rollback() stmt, err := tx.Prepare(insertMessageQuery) if err != nil { return err } defer stmt.Close() for _, m := range ms { if m.Event != messageEvent { return errUnexpectedMessageType } published := m.Time <= time.Now().Unix() tags := strings.Join(m.Tags, ",") var attachmentName, attachmentType, attachmentURL string var attachmentSize, attachmentExpires, attachmentDeleted int64 if m.Attachment != nil { attachmentName = m.Attachment.Name attachmentType = m.Attachment.Type attachmentSize = m.Attachment.Size attachmentExpires = m.Attachment.Expires attachmentURL = m.Attachment.URL } var actionsStr string if len(m.Actions) > 0 { actionsBytes, err := json.Marshal(m.Actions) if err != nil { return err } actionsStr = string(actionsBytes) } var sender string if m.Sender.IsValid() { sender = m.Sender.String() } _, err := stmt.Exec( m.ID, m.Time, m.Expires, m.Topic, m.Message, m.Title, m.Priority, tags, m.Click, m.Icon, actionsStr, attachmentName, attachmentType, attachmentSize, attachmentExpires, attachmentURL, attachmentDeleted, // Always zero sender, m.User, m.ContentType, m.Encoding, published, ) if err != nil { return err } } if err := tx.Commit(); err != nil { log.Tag(tagMessageCache).Err(err).Error("Writing %d message(s) failed (took %v)", len(ms), time.Since(start)) return err } log.Tag(tagMessageCache).Debug("Wrote %d message(s) in %v", len(ms), time.Since(start)) return nil } func (c *messageCache) Messages(topic string, since sinceMarker, scheduled bool) ([]*message, error) { if since.IsNone() { return make([]*message, 0), nil } else if since.IsID() { return c.messagesSinceID(topic, since, scheduled) } return c.messagesSinceTime(topic, since, scheduled) } func (c *messageCache) messagesSinceTime(topic string, since sinceMarker, scheduled bool) ([]*message, error) { var rows *sql.Rows var err error if scheduled { rows, err = c.db.Query(selectMessagesSinceTimeIncludeScheduledQuery, topic, since.Time().Unix()) } else { rows, err = c.db.Query(selectMessagesSinceTimeQuery, topic, since.Time().Unix()) } if err != nil { return nil, err } return readMessages(rows) } func (c *messageCache) messagesSinceID(topic string, since sinceMarker, scheduled bool) ([]*message, error) { idrows, err := c.db.Query(selectRowIDFromMessageID, since.ID()) if err != nil { return nil, err } defer idrows.Close() if !idrows.Next() { return c.messagesSinceTime(topic, sinceAllMessages, scheduled) } var rowID int64 if err := idrows.Scan(&rowID); err != nil { return nil, err } idrows.Close() var rows *sql.Rows if scheduled { rows, err = c.db.Query(selectMessagesSinceIDIncludeScheduledQuery, topic, rowID) } else { rows, err = c.db.Query(selectMessagesSinceIDQuery, topic, rowID) } if err != nil { return nil, err } return readMessages(rows) } func (c *messageCache) MessagesDue() ([]*message, error) { rows, err := c.db.Query(selectMessagesDueQuery, time.Now().Unix()) if err != nil { return nil, err } return readMessages(rows) } // MessagesExpired returns a list of IDs for messages that have expires (should be deleted) func (c *messageCache) MessagesExpired() ([]string, error) { rows, err := c.db.Query(selectMessagesExpiredQuery, time.Now().Unix()) if err != nil { return nil, err } defer rows.Close() ids := make([]string, 0) for rows.Next() { var id string if err := rows.Scan(&id); err != nil { return nil, err } ids = append(ids, id) } if err := rows.Err(); err != nil { return nil, err } return ids, nil } func (c *messageCache) Message(id string) (*message, error) { rows, err := c.db.Query(selectMessagesByIDQuery, id) if err != nil { return nil, err } if !rows.Next() { return nil, errMessageNotFound } defer rows.Close() return readMessage(rows) } func (c *messageCache) MarkPublished(m *message) error { _, err := c.db.Exec(updateMessagePublishedQuery, m.ID) return err } func (c *messageCache) MessageCounts() (map[string]int, error) { rows, err := c.db.Query(selectMessageCountPerTopicQuery) if err != nil { return nil, err } defer rows.Close() var topic string var count int counts := make(map[string]int) for rows.Next() { if err := rows.Scan(&topic, &count); err != nil { return nil, err } else if err := rows.Err(); err != nil { return nil, err } counts[topic] = count } return counts, nil } func (c *messageCache) Topics() (map[string]*topic, error) { rows, err := c.db.Query(selectTopicsQuery) if err != nil { return nil, err } defer rows.Close() topics := make(map[string]*topic) for rows.Next() { var id string if err := rows.Scan(&id); err != nil { return nil, err } topics[id] = newTopic(id) } if err := rows.Err(); err != nil { return nil, err } return topics, nil } func (c *messageCache) DeleteMessages(ids ...string) error { tx, err := c.db.Begin() if err != nil { return err } defer tx.Rollback() for _, id := range ids { if _, err := tx.Exec(deleteMessageQuery, id); err != nil { return err } } return tx.Commit() } func (c *messageCache) ExpireMessages(topics ...string) error { tx, err := c.db.Begin() if err != nil { return err } defer tx.Rollback() for _, t := range topics { if _, err := tx.Exec(updateMessagesForTopicExpiryQuery, time.Now().Unix()-1, t); err != nil { return err } } return tx.Commit() } func (c *messageCache) AttachmentsExpired() ([]string, error) { rows, err := c.db.Query(selectAttachmentsExpiredQuery, time.Now().Unix()) if err != nil { return nil, err } defer rows.Close() ids := make([]string, 0) for rows.Next() { var id string if err := rows.Scan(&id); err != nil { return nil, err } ids = append(ids, id) } if err := rows.Err(); err != nil { return nil, err } return ids, nil } func (c *messageCache) MarkAttachmentsDeleted(ids ...string) error { tx, err := c.db.Begin() if err != nil { return err } defer tx.Rollback() for _, id := range ids { if _, err := tx.Exec(updateAttachmentDeleted, id); err != nil { return err } } return tx.Commit() } func (c *messageCache) AttachmentBytesUsedBySender(sender string) (int64, error) { rows, err := c.db.Query(selectAttachmentsSizeBySenderQuery, sender, time.Now().Unix()) if err != nil { return 0, err } return c.readAttachmentBytesUsed(rows) } func (c *messageCache) AttachmentBytesUsedByUser(userID string) (int64, error) { rows, err := c.db.Query(selectAttachmentsSizeByUserIDQuery, userID, time.Now().Unix()) if err != nil { return 0, err } return c.readAttachmentBytesUsed(rows) } func (c *messageCache) readAttachmentBytesUsed(rows *sql.Rows) (int64, error) { defer rows.Close() var size int64 if !rows.Next() { return 0, errors.New("no rows found") } if err := rows.Scan(&size); err != nil { return 0, err } else if err := rows.Err(); err != nil { return 0, err } return size, nil } func (c *messageCache) processMessageBatches() { if c.queue == nil { return } for messages := range c.queue.Dequeue() { if err := c.addMessages(messages); err != nil { log.Tag(tagMessageCache).Err(err).Error("Cannot write message batch") } } } func readMessages(rows *sql.Rows) ([]*message, error) { defer rows.Close() messages := make([]*message, 0) for rows.Next() { m, err := readMessage(rows) if err != nil { return nil, err } messages = append(messages, m) } if err := rows.Err(); err != nil { return nil, err } return messages, nil } func readMessage(rows *sql.Rows) (*message, error) { var timestamp, expires, attachmentSize, attachmentExpires int64 var priority int var id, topic, msg, title, tagsStr, click, icon, actionsStr, attachmentName, attachmentType, attachmentURL, sender, user, contentType, encoding string err := rows.Scan( &id, ×tamp, &expires, &topic, &msg, &title, &priority, &tagsStr, &click, &icon, &actionsStr, &attachmentName, &attachmentType, &attachmentSize, &attachmentExpires, &attachmentURL, &sender, &user, &contentType, &encoding, ) if err != nil { return nil, err } var tags []string if tagsStr != "" { tags = strings.Split(tagsStr, ",") } var actions []*action if actionsStr != "" { if err := json.Unmarshal([]byte(actionsStr), &actions); err != nil { return nil, err } } senderIP, err := netip.ParseAddr(sender) if err != nil { senderIP = netip.Addr{} // if no IP stored in database, return invalid address } var att *attachment if attachmentName != "" && attachmentURL != "" { att = &attachment{ Name: attachmentName, Type: attachmentType, Size: attachmentSize, Expires: attachmentExpires, URL: attachmentURL, } } return &message{ ID: id, Time: timestamp, Expires: expires, Event: messageEvent, Topic: topic, Message: msg, Title: title, Priority: priority, Tags: tags, Click: click, Icon: icon, Actions: actions, Attachment: att, Sender: senderIP, // Must parse assuming database must be correct User: user, ContentType: contentType, Encoding: encoding, }, nil } func (c *messageCache) UpdateStats(messages int64) error { _, err := c.db.Exec(updateStatsQuery, messages) return err } func (c *messageCache) Stats() (messages int64, err error) { rows, err := c.db.Query(selectStatsQuery) if err != nil { return 0, err } defer rows.Close() if !rows.Next() { return 0, errNoRows } if err := rows.Scan(&messages); err != nil { return 0, err } return messages, nil } func (c *messageCache) Close() error { return c.db.Close() } func setupMessagesDB(db *sql.DB, startupQueries string, cacheDuration time.Duration) error { // Run startup queries if startupQueries != "" { if _, err := db.Exec(startupQueries); err != nil { return err } } // If 'messages' table does not exist, this must be a new database rowsMC, err := db.Query(selectMessagesCountQuery) if err != nil { return setupNewCacheDB(db) } rowsMC.Close() // If 'messages' table exists, check 'schemaVersion' table schemaVersion := 0 rowsSV, err := db.Query(selectSchemaVersionQuery) if err == nil { defer rowsSV.Close() if !rowsSV.Next() { return errors.New("cannot determine schema version: cache file may be corrupt") } if err := rowsSV.Scan(&schemaVersion); err != nil { return err } rowsSV.Close() } // Do migrations if schemaVersion == currentSchemaVersion { return nil } else if schemaVersion > currentSchemaVersion { return fmt.Errorf("unexpected schema version: version %d is higher than current version %d", schemaVersion, currentSchemaVersion) } for i := schemaVersion; i < currentSchemaVersion; i++ { fn, ok := migrations[i] if !ok { return fmt.Errorf("cannot find migration step from schema version %d to %d", i, i+1) } else if err := fn(db, cacheDuration); err != nil { return err } } return nil } func setupNewCacheDB(db *sql.DB) error { if _, err := db.Exec(createMessagesTableQuery); err != nil { return err } if _, err := db.Exec(createSchemaVersionTableQuery); err != nil { return err } if _, err := db.Exec(insertSchemaVersion, currentSchemaVersion); err != nil { return err } return nil } func migrateFrom0(db *sql.DB, _ time.Duration) error { log.Tag(tagMessageCache).Info("Migrating cache database schema: from 0 to 1") if _, err := db.Exec(migrate0To1AlterMessagesTableQuery); err != nil { return err } if _, err := db.Exec(createSchemaVersionTableQuery); err != nil { return err } if _, err := db.Exec(insertSchemaVersion, 1); err != nil { return err } return nil } func migrateFrom1(db *sql.DB, _ time.Duration) error { log.Tag(tagMessageCache).Info("Migrating cache database schema: from 1 to 2") if _, err := db.Exec(migrate1To2AlterMessagesTableQuery); err != nil { return err } if _, err := db.Exec(updateSchemaVersion, 2); err != nil { return err } return nil } func migrateFrom2(db *sql.DB, _ time.Duration) error { log.Tag(tagMessageCache).Info("Migrating cache database schema: from 2 to 3") if _, err := db.Exec(migrate2To3AlterMessagesTableQuery); err != nil { return err } if _, err := db.Exec(updateSchemaVersion, 3); err != nil { return err } return nil } func migrateFrom3(db *sql.DB, _ time.Duration) error { log.Tag(tagMessageCache).Info("Migrating cache database schema: from 3 to 4") if _, err := db.Exec(migrate3To4AlterMessagesTableQuery); err != nil { return err } if _, err := db.Exec(updateSchemaVersion, 4); err != nil { return err } return nil } func migrateFrom4(db *sql.DB, _ time.Duration) error { log.Tag(tagMessageCache).Info("Migrating cache database schema: from 4 to 5") if _, err := db.Exec(migrate4To5AlterMessagesTableQuery); err != nil { return err } if _, err := db.Exec(updateSchemaVersion, 5); err != nil { return err } return nil } func migrateFrom5(db *sql.DB, _ time.Duration) error { log.Tag(tagMessageCache).Info("Migrating cache database schema: from 5 to 6") if _, err := db.Exec(migrate5To6AlterMessagesTableQuery); err != nil { return err } if _, err := db.Exec(updateSchemaVersion, 6); err != nil { return err } return nil } func migrateFrom6(db *sql.DB, _ time.Duration) error { log.Tag(tagMessageCache).Info("Migrating cache database schema: from 6 to 7") if _, err := db.Exec(migrate6To7AlterMessagesTableQuery); err != nil { return err } if _, err := db.Exec(updateSchemaVersion, 7); err != nil { return err } return nil } func migrateFrom7(db *sql.DB, _ time.Duration) error { log.Tag(tagMessageCache).Info("Migrating cache database schema: from 7 to 8") if _, err := db.Exec(migrate7To8AlterMessagesTableQuery); err != nil { return err } if _, err := db.Exec(updateSchemaVersion, 8); err != nil { return err } return nil } func migrateFrom8(db *sql.DB, _ time.Duration) error { log.Tag(tagMessageCache).Info("Migrating cache database schema: from 8 to 9") if _, err := db.Exec(migrate8To9AlterMessagesTableQuery); err != nil { return err } if _, err := db.Exec(updateSchemaVersion, 9); err != nil { return err } return nil } func migrateFrom9(db *sql.DB, cacheDuration time.Duration) error { log.Tag(tagMessageCache).Info("Migrating cache database schema: from 9 to 10") tx, err := db.Begin() if err != nil { return err } defer tx.Rollback() if _, err := tx.Exec(migrate9To10AlterMessagesTableQuery); err != nil { return err } if _, err := tx.Exec(migrate9To10UpdateMessageExpiryQuery, int64(cacheDuration.Seconds())); err != nil { return err } if _, err := tx.Exec(updateSchemaVersion, 10); err != nil { return err } return tx.Commit() } func migrateFrom10(db *sql.DB, _ time.Duration) error { log.Tag(tagMessageCache).Info("Migrating cache database schema: from 10 to 11") tx, err := db.Begin() if err != nil { return err } defer tx.Rollback() if _, err := tx.Exec(migrate10To11AlterMessagesTableQuery); err != nil { return err } if _, err := tx.Exec(updateSchemaVersion, 11); err != nil { return err } return tx.Commit() } func migrateFrom11(db *sql.DB, _ time.Duration) error { log.Tag(tagMessageCache).Info("Migrating cache database schema: from 11 to 12") tx, err := db.Begin() if err != nil { return err } defer tx.Rollback() if _, err := tx.Exec(migrate11To12AlterMessagesTableQuery); err != nil { return err } if _, err := tx.Exec(updateSchemaVersion, 12); err != nil { return err } return tx.Commit() } func migrateFrom12(db *sql.DB, _ time.Duration) error { log.Tag(tagMessageCache).Info("Migrating cache database schema: from 12 to 13") tx, err := db.Begin() if err != nil { return err } defer tx.Rollback() if _, err := tx.Exec(migrate12To13AlterMessagesTableQuery); err != nil { return err } if _, err := tx.Exec(updateSchemaVersion, 13); err != nil { return err } return tx.Commit() } ntfy-2.11.0/server/message_cache_test.go000066400000000000000000000547531462047176100202440ustar00rootroot00000000000000package server import ( "database/sql" "fmt" "net/netip" "path/filepath" "testing" "time" "github.com/stretchr/testify/require" ) func TestSqliteCache_Messages(t *testing.T) { testCacheMessages(t, newSqliteTestCache(t)) } func TestMemCache_Messages(t *testing.T) { testCacheMessages(t, newMemTestCache(t)) } func testCacheMessages(t *testing.T, c *messageCache) { m1 := newDefaultMessage("mytopic", "my message") m1.Time = 1 m2 := newDefaultMessage("mytopic", "my other message") m2.Time = 2 require.Nil(t, c.AddMessage(m1)) require.Nil(t, c.AddMessage(newDefaultMessage("example", "my example message"))) require.Nil(t, c.AddMessage(m2)) // Adding invalid require.Equal(t, errUnexpectedMessageType, c.AddMessage(newKeepaliveMessage("mytopic"))) // These should not be added! require.Equal(t, errUnexpectedMessageType, c.AddMessage(newOpenMessage("example"))) // These should not be added! // mytopic: count counts, err := c.MessageCounts() require.Nil(t, err) require.Equal(t, 2, counts["mytopic"]) // mytopic: since all messages, _ := c.Messages("mytopic", sinceAllMessages, false) require.Equal(t, 2, len(messages)) require.Equal(t, "my message", messages[0].Message) require.Equal(t, "mytopic", messages[0].Topic) require.Equal(t, messageEvent, messages[0].Event) require.Equal(t, "", messages[0].Title) require.Equal(t, 0, messages[0].Priority) require.Nil(t, messages[0].Tags) require.Equal(t, "my other message", messages[1].Message) // mytopic: since none messages, _ = c.Messages("mytopic", sinceNoMessages, false) require.Empty(t, messages) // mytopic: since m1 (by ID) messages, _ = c.Messages("mytopic", newSinceID(m1.ID), false) require.Equal(t, 1, len(messages)) require.Equal(t, m2.ID, messages[0].ID) require.Equal(t, "my other message", messages[0].Message) require.Equal(t, "mytopic", messages[0].Topic) // mytopic: since 2 messages, _ = c.Messages("mytopic", newSinceTime(2), false) require.Equal(t, 1, len(messages)) require.Equal(t, "my other message", messages[0].Message) // example: count counts, err = c.MessageCounts() require.Nil(t, err) require.Equal(t, 1, counts["example"]) // example: since all messages, _ = c.Messages("example", sinceAllMessages, false) require.Equal(t, "my example message", messages[0].Message) // non-existing: count counts, err = c.MessageCounts() require.Nil(t, err) require.Equal(t, 0, counts["doesnotexist"]) // non-existing: since all messages, _ = c.Messages("doesnotexist", sinceAllMessages, false) require.Empty(t, messages) } func TestSqliteCache_MessagesScheduled(t *testing.T) { testCacheMessagesScheduled(t, newSqliteTestCache(t)) } func TestMemCache_MessagesScheduled(t *testing.T) { testCacheMessagesScheduled(t, newMemTestCache(t)) } func testCacheMessagesScheduled(t *testing.T, c *messageCache) { m1 := newDefaultMessage("mytopic", "message 1") m2 := newDefaultMessage("mytopic", "message 2") m2.Time = time.Now().Add(time.Hour).Unix() m3 := newDefaultMessage("mytopic", "message 3") m3.Time = time.Now().Add(time.Minute).Unix() // earlier than m2! m4 := newDefaultMessage("mytopic2", "message 4") m4.Time = time.Now().Add(time.Minute).Unix() require.Nil(t, c.AddMessage(m1)) require.Nil(t, c.AddMessage(m2)) require.Nil(t, c.AddMessage(m3)) messages, _ := c.Messages("mytopic", sinceAllMessages, false) // exclude scheduled require.Equal(t, 1, len(messages)) require.Equal(t, "message 1", messages[0].Message) messages, _ = c.Messages("mytopic", sinceAllMessages, true) // include scheduled require.Equal(t, 3, len(messages)) require.Equal(t, "message 1", messages[0].Message) require.Equal(t, "message 3", messages[1].Message) // Order! require.Equal(t, "message 2", messages[2].Message) messages, _ = c.MessagesDue() require.Empty(t, messages) } func TestSqliteCache_Topics(t *testing.T) { testCacheTopics(t, newSqliteTestCache(t)) } func TestMemCache_Topics(t *testing.T) { testCacheTopics(t, newMemTestCache(t)) } func testCacheTopics(t *testing.T, c *messageCache) { require.Nil(t, c.AddMessage(newDefaultMessage("topic1", "my example message"))) require.Nil(t, c.AddMessage(newDefaultMessage("topic2", "message 1"))) require.Nil(t, c.AddMessage(newDefaultMessage("topic2", "message 2"))) require.Nil(t, c.AddMessage(newDefaultMessage("topic2", "message 3"))) topics, err := c.Topics() if err != nil { t.Fatal(err) } require.Equal(t, 2, len(topics)) require.Equal(t, "topic1", topics["topic1"].ID) require.Equal(t, "topic2", topics["topic2"].ID) } func TestSqliteCache_MessagesTagsPrioAndTitle(t *testing.T) { testCacheMessagesTagsPrioAndTitle(t, newSqliteTestCache(t)) } func TestMemCache_MessagesTagsPrioAndTitle(t *testing.T) { testCacheMessagesTagsPrioAndTitle(t, newMemTestCache(t)) } func testCacheMessagesTagsPrioAndTitle(t *testing.T, c *messageCache) { m := newDefaultMessage("mytopic", "some message") m.Tags = []string{"tag1", "tag2"} m.Priority = 5 m.Title = "some title" require.Nil(t, c.AddMessage(m)) messages, _ := c.Messages("mytopic", sinceAllMessages, false) require.Equal(t, []string{"tag1", "tag2"}, messages[0].Tags) require.Equal(t, 5, messages[0].Priority) require.Equal(t, "some title", messages[0].Title) } func TestSqliteCache_MessagesSinceID(t *testing.T) { testCacheMessagesSinceID(t, newSqliteTestCache(t)) } func TestMemCache_MessagesSinceID(t *testing.T) { testCacheMessagesSinceID(t, newMemTestCache(t)) } func testCacheMessagesSinceID(t *testing.T, c *messageCache) { m1 := newDefaultMessage("mytopic", "message 1") m1.Time = 100 m2 := newDefaultMessage("mytopic", "message 2") m2.Time = 200 m3 := newDefaultMessage("mytopic", "message 3") m3.Time = time.Now().Add(time.Hour).Unix() // Scheduled, in the future, later than m7 and m5 m4 := newDefaultMessage("mytopic", "message 4") m4.Time = 400 m5 := newDefaultMessage("mytopic", "message 5") m5.Time = time.Now().Add(time.Minute).Unix() // Scheduled, in the future, later than m7 m6 := newDefaultMessage("mytopic", "message 6") m6.Time = 600 m7 := newDefaultMessage("mytopic", "message 7") m7.Time = 700 require.Nil(t, c.AddMessage(m1)) require.Nil(t, c.AddMessage(m2)) require.Nil(t, c.AddMessage(m3)) require.Nil(t, c.AddMessage(m4)) require.Nil(t, c.AddMessage(m5)) require.Nil(t, c.AddMessage(m6)) require.Nil(t, c.AddMessage(m7)) // Case 1: Since ID exists, exclude scheduled messages, _ := c.Messages("mytopic", newSinceID(m2.ID), false) require.Equal(t, 3, len(messages)) require.Equal(t, "message 4", messages[0].Message) require.Equal(t, "message 6", messages[1].Message) // Not scheduled m3/m5! require.Equal(t, "message 7", messages[2].Message) // Case 2: Since ID exists, include scheduled messages, _ = c.Messages("mytopic", newSinceID(m2.ID), true) require.Equal(t, 5, len(messages)) require.Equal(t, "message 4", messages[0].Message) require.Equal(t, "message 6", messages[1].Message) require.Equal(t, "message 7", messages[2].Message) require.Equal(t, "message 5", messages[3].Message) // Order! require.Equal(t, "message 3", messages[4].Message) // Order! // Case 3: Since ID does not exist (-> Return all messages), include scheduled messages, _ = c.Messages("mytopic", newSinceID("doesntexist"), true) require.Equal(t, 7, len(messages)) require.Equal(t, "message 1", messages[0].Message) require.Equal(t, "message 2", messages[1].Message) require.Equal(t, "message 4", messages[2].Message) require.Equal(t, "message 6", messages[3].Message) require.Equal(t, "message 7", messages[4].Message) require.Equal(t, "message 5", messages[5].Message) // Order! require.Equal(t, "message 3", messages[6].Message) // Order! // Case 4: Since ID exists and is last message (-> Return no messages), exclude scheduled messages, _ = c.Messages("mytopic", newSinceID(m7.ID), false) require.Equal(t, 0, len(messages)) // Case 5: Since ID exists and is last message (-> Return no messages), include scheduled messages, _ = c.Messages("mytopic", newSinceID(m7.ID), true) require.Equal(t, 2, len(messages)) require.Equal(t, "message 5", messages[0].Message) require.Equal(t, "message 3", messages[1].Message) } func TestSqliteCache_Prune(t *testing.T) { testCachePrune(t, newSqliteTestCache(t)) } func TestMemCache_Prune(t *testing.T) { testCachePrune(t, newMemTestCache(t)) } func testCachePrune(t *testing.T, c *messageCache) { now := time.Now().Unix() m1 := newDefaultMessage("mytopic", "my message") m1.Time = now - 10 m1.Expires = now - 5 m2 := newDefaultMessage("mytopic", "my other message") m2.Time = now - 5 m2.Expires = now + 5 // In the future m3 := newDefaultMessage("another_topic", "and another one") m3.Time = now - 12 m3.Expires = now - 2 require.Nil(t, c.AddMessage(m1)) require.Nil(t, c.AddMessage(m2)) require.Nil(t, c.AddMessage(m3)) counts, err := c.MessageCounts() require.Nil(t, err) require.Equal(t, 2, counts["mytopic"]) require.Equal(t, 1, counts["another_topic"]) expiredMessageIDs, err := c.MessagesExpired() require.Nil(t, err) require.Nil(t, c.DeleteMessages(expiredMessageIDs...)) counts, err = c.MessageCounts() require.Nil(t, err) require.Equal(t, 1, counts["mytopic"]) require.Equal(t, 0, counts["another_topic"]) messages, err := c.Messages("mytopic", sinceAllMessages, false) require.Nil(t, err) require.Equal(t, 1, len(messages)) require.Equal(t, "my other message", messages[0].Message) } func TestSqliteCache_Attachments(t *testing.T) { testCacheAttachments(t, newSqliteTestCache(t)) } func TestMemCache_Attachments(t *testing.T) { testCacheAttachments(t, newMemTestCache(t)) } func testCacheAttachments(t *testing.T, c *messageCache) { expires1 := time.Now().Add(-4 * time.Hour).Unix() // Expired m := newDefaultMessage("mytopic", "flower for you") m.ID = "m1" m.Sender = netip.MustParseAddr("1.2.3.4") m.Attachment = &attachment{ Name: "flower.jpg", Type: "image/jpeg", Size: 5000, Expires: expires1, URL: "https://ntfy.sh/file/AbDeFgJhal.jpg", } require.Nil(t, c.AddMessage(m)) expires2 := time.Now().Add(2 * time.Hour).Unix() // Future m = newDefaultMessage("mytopic", "sending you a car") m.ID = "m2" m.Sender = netip.MustParseAddr("1.2.3.4") m.Attachment = &attachment{ Name: "car.jpg", Type: "image/jpeg", Size: 10000, Expires: expires2, URL: "https://ntfy.sh/file/aCaRURL.jpg", } require.Nil(t, c.AddMessage(m)) expires3 := time.Now().Add(1 * time.Hour).Unix() // Future m = newDefaultMessage("another-topic", "sending you another car") m.ID = "m3" m.User = "u_BAsbaAa" m.Sender = netip.MustParseAddr("5.6.7.8") m.Attachment = &attachment{ Name: "another-car.jpg", Type: "image/jpeg", Size: 20000, Expires: expires3, URL: "https://ntfy.sh/file/zakaDHFW.jpg", } require.Nil(t, c.AddMessage(m)) messages, err := c.Messages("mytopic", sinceAllMessages, false) require.Nil(t, err) require.Equal(t, 2, len(messages)) require.Equal(t, "flower for you", messages[0].Message) require.Equal(t, "flower.jpg", messages[0].Attachment.Name) require.Equal(t, "image/jpeg", messages[0].Attachment.Type) require.Equal(t, int64(5000), messages[0].Attachment.Size) require.Equal(t, expires1, messages[0].Attachment.Expires) require.Equal(t, "https://ntfy.sh/file/AbDeFgJhal.jpg", messages[0].Attachment.URL) require.Equal(t, "1.2.3.4", messages[0].Sender.String()) require.Equal(t, "sending you a car", messages[1].Message) require.Equal(t, "car.jpg", messages[1].Attachment.Name) require.Equal(t, "image/jpeg", messages[1].Attachment.Type) require.Equal(t, int64(10000), messages[1].Attachment.Size) require.Equal(t, expires2, messages[1].Attachment.Expires) require.Equal(t, "https://ntfy.sh/file/aCaRURL.jpg", messages[1].Attachment.URL) require.Equal(t, "1.2.3.4", messages[1].Sender.String()) size, err := c.AttachmentBytesUsedBySender("1.2.3.4") require.Nil(t, err) require.Equal(t, int64(10000), size) size, err = c.AttachmentBytesUsedBySender("5.6.7.8") require.Nil(t, err) require.Equal(t, int64(0), size) // Accounted to the user, not the IP! size, err = c.AttachmentBytesUsedByUser("u_BAsbaAa") require.Nil(t, err) require.Equal(t, int64(20000), size) } func TestSqliteCache_Attachments_Expired(t *testing.T) { testCacheAttachmentsExpired(t, newSqliteTestCache(t)) } func TestMemCache_Attachments_Expired(t *testing.T) { testCacheAttachmentsExpired(t, newMemTestCache(t)) } func testCacheAttachmentsExpired(t *testing.T, c *messageCache) { m := newDefaultMessage("mytopic", "flower for you") m.ID = "m1" m.Expires = time.Now().Add(time.Hour).Unix() require.Nil(t, c.AddMessage(m)) m = newDefaultMessage("mytopic", "message with attachment") m.ID = "m2" m.Expires = time.Now().Add(2 * time.Hour).Unix() m.Attachment = &attachment{ Name: "car.jpg", Type: "image/jpeg", Size: 10000, Expires: time.Now().Add(2 * time.Hour).Unix(), URL: "https://ntfy.sh/file/aCaRURL.jpg", } require.Nil(t, c.AddMessage(m)) m = newDefaultMessage("mytopic", "message with external attachment") m.ID = "m3" m.Expires = time.Now().Add(2 * time.Hour).Unix() m.Attachment = &attachment{ Name: "car.jpg", Type: "image/jpeg", Expires: 0, // Unknown! URL: "https://somedomain.com/car.jpg", } require.Nil(t, c.AddMessage(m)) m = newDefaultMessage("mytopic2", "message with expired attachment") m.ID = "m4" m.Expires = time.Now().Add(2 * time.Hour).Unix() m.Attachment = &attachment{ Name: "expired-car.jpg", Type: "image/jpeg", Size: 20000, Expires: time.Now().Add(-1 * time.Hour).Unix(), URL: "https://ntfy.sh/file/aCaRURL.jpg", } require.Nil(t, c.AddMessage(m)) ids, err := c.AttachmentsExpired() require.Nil(t, err) require.Equal(t, 1, len(ids)) require.Equal(t, "m4", ids[0]) } func TestSqliteCache_Migration_From0(t *testing.T) { filename := newSqliteTestCacheFile(t) db, err := sql.Open("sqlite3", filename) require.Nil(t, err) // Create "version 0" schema _, err = db.Exec(` BEGIN; CREATE TABLE IF NOT EXISTS messages ( id VARCHAR(20) PRIMARY KEY, time INT NOT NULL, topic VARCHAR(64) NOT NULL, message VARCHAR(1024) NOT NULL ); CREATE INDEX IF NOT EXISTS idx_topic ON messages (topic); COMMIT; `) require.Nil(t, err) // Insert a bunch of messages for i := 0; i < 10; i++ { _, err = db.Exec(`INSERT INTO messages (id, time, topic, message) VALUES (?, ?, ?, ?)`, fmt.Sprintf("abcd%d", i), time.Now().Unix(), "mytopic", fmt.Sprintf("some message %d", i)) require.Nil(t, err) } require.Nil(t, db.Close()) // Create cache to trigger migration c := newSqliteTestCacheFromFile(t, filename, "") checkSchemaVersion(t, c.db) messages, err := c.Messages("mytopic", sinceAllMessages, false) require.Nil(t, err) require.Equal(t, 10, len(messages)) require.Equal(t, "some message 5", messages[5].Message) require.Equal(t, "", messages[5].Title) require.Nil(t, messages[5].Tags) require.Equal(t, 0, messages[5].Priority) } func TestSqliteCache_Migration_From1(t *testing.T) { filename := newSqliteTestCacheFile(t) db, err := sql.Open("sqlite3", filename) require.Nil(t, err) // Create "version 1" schema _, err = db.Exec(` CREATE TABLE IF NOT EXISTS messages ( id VARCHAR(20) PRIMARY KEY, time INT NOT NULL, topic VARCHAR(64) NOT NULL, message VARCHAR(512) NOT NULL, title VARCHAR(256) NOT NULL, priority INT NOT NULL, tags VARCHAR(256) NOT NULL ); CREATE INDEX IF NOT EXISTS idx_topic ON messages (topic); CREATE TABLE IF NOT EXISTS schemaVersion ( id INT PRIMARY KEY, version INT NOT NULL ); INSERT INTO schemaVersion (id, version) VALUES (1, 1); `) require.Nil(t, err) // Insert a bunch of messages for i := 0; i < 10; i++ { _, err = db.Exec(`INSERT INTO messages (id, time, topic, message, title, priority, tags) VALUES (?, ?, ?, ?, ?, ?, ?)`, fmt.Sprintf("abcd%d", i), time.Now().Unix(), "mytopic", fmt.Sprintf("some message %d", i), "", 0, "") require.Nil(t, err) } require.Nil(t, db.Close()) // Create cache to trigger migration c := newSqliteTestCacheFromFile(t, filename, "") checkSchemaVersion(t, c.db) // Add delayed message delayedMessage := newDefaultMessage("mytopic", "some delayed message") delayedMessage.Time = time.Now().Add(time.Minute).Unix() require.Nil(t, c.AddMessage(delayedMessage)) // 10, not 11! messages, err := c.Messages("mytopic", sinceAllMessages, false) require.Nil(t, err) require.Equal(t, 10, len(messages)) // 11! messages, err = c.Messages("mytopic", sinceAllMessages, true) require.Nil(t, err) require.Equal(t, 11, len(messages)) // Check that index "idx_topic" exists rows, err := c.db.Query(`SELECT name FROM sqlite_master WHERE type='index' AND name='idx_topic'`) require.Nil(t, err) require.True(t, rows.Next()) var indexName string require.Nil(t, rows.Scan(&indexName)) require.Equal(t, "idx_topic", indexName) } func TestSqliteCache_Migration_From9(t *testing.T) { // This primarily tests the awkward migration that introduces the "expires" column. // The migration logic has to update the column, using the existing "cache-duration" value. filename := newSqliteTestCacheFile(t) db, err := sql.Open("sqlite3", filename) require.Nil(t, err) // Create "version 8" schema _, err = db.Exec(` BEGIN; CREATE TABLE IF NOT EXISTS messages ( id INTEGER PRIMARY KEY AUTOINCREMENT, mid TEXT NOT NULL, time INT NOT NULL, topic TEXT NOT NULL, message TEXT NOT NULL, title TEXT NOT NULL, priority INT NOT NULL, tags TEXT NOT NULL, click TEXT NOT NULL, icon TEXT NOT NULL, actions TEXT NOT NULL, attachment_name TEXT NOT NULL, attachment_type TEXT NOT NULL, attachment_size INT NOT NULL, attachment_expires INT NOT NULL, attachment_url TEXT NOT NULL, sender TEXT NOT NULL, encoding TEXT NOT NULL, published INT NOT NULL ); CREATE INDEX IF NOT EXISTS idx_mid ON messages (mid); CREATE INDEX IF NOT EXISTS idx_time ON messages (time); CREATE INDEX IF NOT EXISTS idx_topic ON messages (topic); CREATE TABLE IF NOT EXISTS schemaVersion ( id INT PRIMARY KEY, version INT NOT NULL ); INSERT INTO schemaVersion (id, version) VALUES (1, 9); COMMIT; `) require.Nil(t, err) // Insert a bunch of messages insertQuery := ` INSERT INTO messages (mid, time, topic, message, title, priority, tags, click, icon, actions, attachment_name, attachment_type, attachment_size, attachment_expires, attachment_url, sender, encoding, published) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ` for i := 0; i < 10; i++ { _, err = db.Exec( insertQuery, fmt.Sprintf("abcd%d", i), time.Now().Unix(), "mytopic", fmt.Sprintf("some message %d", i), "", // title 0, // priority "", // tags "", // click "", // icon "", // actions "", // attachment_name "", // attachment_type 0, // attachment_size 0, // attachment_type "", // attachment_url "9.9.9.9", // sender "", // encoding 1, // published ) require.Nil(t, err) } // Create cache to trigger migration cacheDuration := 17 * time.Hour c, err := newSqliteCache(filename, "", cacheDuration, 0, 0, false) require.Nil(t, err) checkSchemaVersion(t, c.db) // Check version rows, err := db.Query(`SELECT version FROM main.schemaVersion WHERE id = 1`) require.Nil(t, err) require.True(t, rows.Next()) var version int require.Nil(t, rows.Scan(&version)) require.Equal(t, currentSchemaVersion, version) messages, err := c.Messages("mytopic", sinceAllMessages, false) require.Nil(t, err) require.Equal(t, 10, len(messages)) for _, m := range messages { require.True(t, m.Expires > time.Now().Add(cacheDuration-5*time.Second).Unix()) require.True(t, m.Expires < time.Now().Add(cacheDuration+5*time.Second).Unix()) } } func TestSqliteCache_StartupQueries_WAL(t *testing.T) { filename := newSqliteTestCacheFile(t) startupQueries := `pragma journal_mode = WAL; pragma synchronous = normal; pragma temp_store = memory;` db, err := newSqliteCache(filename, startupQueries, time.Hour, 0, 0, false) require.Nil(t, err) require.Nil(t, db.AddMessage(newDefaultMessage("mytopic", "some message"))) require.FileExists(t, filename) require.FileExists(t, filename+"-wal") require.FileExists(t, filename+"-shm") } func TestSqliteCache_StartupQueries_None(t *testing.T) { filename := newSqliteTestCacheFile(t) startupQueries := "" db, err := newSqliteCache(filename, startupQueries, time.Hour, 0, 0, false) require.Nil(t, err) require.Nil(t, db.AddMessage(newDefaultMessage("mytopic", "some message"))) require.FileExists(t, filename) require.NoFileExists(t, filename+"-wal") require.NoFileExists(t, filename+"-shm") } func TestSqliteCache_StartupQueries_Fail(t *testing.T) { filename := newSqliteTestCacheFile(t) startupQueries := `xx error` _, err := newSqliteCache(filename, startupQueries, time.Hour, 0, 0, false) require.Error(t, err) } func TestSqliteCache_Sender(t *testing.T) { testSender(t, newSqliteTestCache(t)) } func TestMemCache_Sender(t *testing.T) { testSender(t, newMemTestCache(t)) } func testSender(t *testing.T, c *messageCache) { m1 := newDefaultMessage("mytopic", "mymessage") m1.Sender = netip.MustParseAddr("1.2.3.4") require.Nil(t, c.AddMessage(m1)) m2 := newDefaultMessage("mytopic", "mymessage without sender") require.Nil(t, c.AddMessage(m2)) messages, err := c.Messages("mytopic", sinceAllMessages, false) require.Nil(t, err) require.Equal(t, 2, len(messages)) require.Equal(t, messages[0].Sender, netip.MustParseAddr("1.2.3.4")) require.Equal(t, messages[1].Sender, netip.Addr{}) } func checkSchemaVersion(t *testing.T, db *sql.DB) { rows, err := db.Query(`SELECT version FROM schemaVersion`) require.Nil(t, err) require.True(t, rows.Next()) var schemaVersion int require.Nil(t, rows.Scan(&schemaVersion)) require.Equal(t, currentSchemaVersion, schemaVersion) require.Nil(t, rows.Close()) } func TestMemCache_NopCache(t *testing.T) { c, _ := newNopCache() require.Nil(t, c.AddMessage(newDefaultMessage("mytopic", "my message"))) messages, err := c.Messages("mytopic", sinceAllMessages, false) require.Nil(t, err) require.Empty(t, messages) topics, err := c.Topics() require.Nil(t, err) require.Empty(t, topics) } func newSqliteTestCache(t *testing.T) *messageCache { c, err := newSqliteCache(newSqliteTestCacheFile(t), "", time.Hour, 0, 0, false) if err != nil { t.Fatal(err) } return c } func newSqliteTestCacheFile(t *testing.T) string { return filepath.Join(t.TempDir(), "cache.db") } func newSqliteTestCacheFromFile(t *testing.T, filename, startupQueries string) *messageCache { c, err := newSqliteCache(filename, startupQueries, time.Hour, 0, 0, false) require.Nil(t, err) return c } func newMemTestCache(t *testing.T) *messageCache { c, err := newMemCache() require.Nil(t, err) return c } ntfy-2.11.0/server/ntfy.service000066400000000000000000000004401462047176100164310ustar00rootroot00000000000000[Unit] Description=ntfy server After=network.target [Service] User=ntfy Group=ntfy ExecStart=/usr/bin/ntfy serve --no-log-dates ExecReload=/bin/kill --signal HUP $MAINPID Restart=on-failure AmbientCapabilities=CAP_NET_BIND_SERVICE LimitNOFILE=10000 [Install] WantedBy=multi-user.target ntfy-2.11.0/server/server.go000066400000000000000000002267061462047176100157430ustar00rootroot00000000000000package server import ( "bytes" "context" "crypto/sha256" "embed" "encoding/base64" "encoding/json" "errors" "fmt" "io" "net" "net/http" "net/http/pprof" "net/netip" "net/url" "os" "path" "path/filepath" "regexp" "sort" "strconv" "strings" "sync" "text/template" "time" "unicode/utf8" "github.com/emersion/go-smtp" "github.com/gorilla/websocket" "github.com/prometheus/client_golang/prometheus/promhttp" "golang.org/x/sync/errgroup" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" ) // Server is the main server, providing the UI and API for ntfy type Server struct { config *Config httpServer *http.Server httpsServer *http.Server httpMetricsServer *http.Server httpProfileServer *http.Server unixListener net.Listener smtpServer *smtp.Server smtpServerBackend *smtpBackend smtpSender mailer topics map[string]*topic visitors map[string]*visitor // ip: or user: firebaseClient *firebaseClient messages int64 // Total number of messages (persisted if messageCache enabled) messagesHistory []int64 // Last n values of the messages counter, used to determine rate userManager *user.Manager // Might be nil! messageCache *messageCache // Database that stores the messages webPush *webPushStore // Database that stores web push subscriptions fileCache *fileCache // File system based cache that stores attachments stripe stripeAPI // Stripe API, can be replaced with a mock priceCache *util.LookupCache[map[string]int64] // Stripe price ID -> price as cents (USD implied!) metricsHandler http.Handler // Handles /metrics if enable-metrics set, and listen-metrics-http not set closeChan chan bool mu sync.RWMutex } // handleFunc extends the normal http.HandlerFunc to be able to easily return errors type handleFunc func(http.ResponseWriter, *http.Request, *visitor) error var ( // If changed, don't forget to update Android App and auth_sqlite.go topicRegex = regexp.MustCompile(`^[-_A-Za-z0-9]{1,64}$`) // No /! topicPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}$`) // Regex must match JS & Android app! externalTopicPathRegex = regexp.MustCompile(`^/[^/]+\.[^/]+/[-_A-Za-z0-9]{1,64}$`) // Extended topic path, for web-app, e.g. /example.com/mytopic jsonPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/json$`) ssePathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/sse$`) rawPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/raw$`) wsPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/ws$`) authPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/auth$`) publishPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}/(publish|send|trigger)$`) webConfigPath = "/config.js" webManifestPath = "/manifest.webmanifest" webRootHTMLPath = "/app.html" webServiceWorkerPath = "/sw.js" accountPath = "/account" matrixPushPath = "/_matrix/push/v1/notify" metricsPath = "/metrics" apiHealthPath = "/v1/health" apiStatsPath = "/v1/stats" apiWebPushPath = "/v1/webpush" apiTiersPath = "/v1/tiers" apiUsersPath = "/v1/users" apiUsersAccessPath = "/v1/users/access" apiAccountPath = "/v1/account" apiAccountTokenPath = "/v1/account/token" apiAccountPasswordPath = "/v1/account/password" apiAccountSettingsPath = "/v1/account/settings" apiAccountSubscriptionPath = "/v1/account/subscription" apiAccountReservationPath = "/v1/account/reservation" apiAccountPhonePath = "/v1/account/phone" apiAccountPhoneVerifyPath = "/v1/account/phone/verify" apiAccountBillingPortalPath = "/v1/account/billing/portal" apiAccountBillingWebhookPath = "/v1/account/billing/webhook" apiAccountBillingSubscriptionPath = "/v1/account/billing/subscription" apiAccountBillingSubscriptionCheckoutSuccessTemplate = "/v1/account/billing/subscription/success/{CHECKOUT_SESSION_ID}" apiAccountBillingSubscriptionCheckoutSuccessRegex = regexp.MustCompile(`/v1/account/billing/subscription/success/(.+)$`) apiAccountReservationSingleRegex = regexp.MustCompile(`/v1/account/reservation/([-_A-Za-z0-9]{1,64})$`) staticRegex = regexp.MustCompile(`^/static/.+`) docsRegex = regexp.MustCompile(`^/docs(|/.*)$`) fileRegex = regexp.MustCompile(`^/file/([-_A-Za-z0-9]{1,64})(?:\.[A-Za-z0-9]{1,16})?$`) urlRegex = regexp.MustCompile(`^https?://`) phoneNumberRegex = regexp.MustCompile(`^\+\d{1,100}$`) //go:embed site webFs embed.FS webFsCached = &util.CachingEmbedFS{ModTime: time.Now(), FS: webFs} webSiteDir = "/site" webAppIndex = "/app.html" // React app //go:embed docs docsStaticFs embed.FS docsStaticCached = &util.CachingEmbedFS{ModTime: time.Now(), FS: docsStaticFs} ) const ( firebaseControlTopic = "~control" // See Android if changed firebasePollTopic = "~poll" // See iOS if changed (DISABLED for now) emptyMessageBody = "triggered" // Used if message body is empty newMessageBody = "New message" // Used in poll requests as generic message defaultAttachmentMessage = "You received a file: %s" // Used if message body is empty, and there is an attachment encodingBase64 = "base64" // Used mainly for binary UnifiedPush messages jsonBodyBytesLimit = 32768 // Max number of bytes for a request bodys (unless MessageLimit is higher) unifiedPushTopicPrefix = "up" // Temporarily, we rate limit all "up*" topics based on the subscriber unifiedPushTopicLength = 14 // Length of UnifiedPush topics, including the "up" part messagesHistoryMax = 10 // Number of message count values to keep in memory templateMaxExecutionTime = 100 * time.Millisecond ) var ( // templateDisallowedRegex tests a template for disallowed expressions. While not really dangerous, they // are not useful, and seem potentially troublesome. templateDisallowedRegex = regexp.MustCompile(`(?m)\{\{-?\s*(call|template|define)\b`) ) // WebSocket constants const ( wsWriteWait = 2 * time.Second wsBufferSize = 1024 wsReadLimit = 64 // We only ever receive PINGs wsPongWait = 15 * time.Second ) // New instantiates a new Server. It creates the cache and adds a Firebase // subscriber (if configured). func New(conf *Config) (*Server, error) { var mailer mailer if conf.SMTPSenderAddr != "" { mailer = &smtpSender{config: conf} } var stripe stripeAPI if conf.StripeSecretKey != "" { stripe = newStripeAPI() } messageCache, err := createMessageCache(conf) if err != nil { return nil, err } var webPush *webPushStore if conf.WebPushPublicKey != "" { webPush, err = newWebPushStore(conf.WebPushFile, conf.WebPushStartupQueries) if err != nil { return nil, err } } topics, err := messageCache.Topics() if err != nil { return nil, err } messages, err := messageCache.Stats() if err != nil { return nil, err } var fileCache *fileCache if conf.AttachmentCacheDir != "" { fileCache, err = newFileCache(conf.AttachmentCacheDir, conf.AttachmentTotalSizeLimit) if err != nil { return nil, err } } var userManager *user.Manager if conf.AuthFile != "" { userManager, err = user.NewManager(conf.AuthFile, conf.AuthStartupQueries, conf.AuthDefault, conf.AuthBcryptCost, conf.AuthStatsQueueWriterInterval) if err != nil { return nil, err } } var firebaseClient *firebaseClient if conf.FirebaseKeyFile != "" { sender, err := newFirebaseSender(conf.FirebaseKeyFile) if err != nil { return nil, err } // This awkward logic is required because Go is weird about nil types and interfaces. // See issue #641, and https://go.dev/play/p/uur1flrv1t3 for an example var auther user.Auther if userManager != nil { auther = userManager } firebaseClient = newFirebaseClient(sender, auther) } s := &Server{ config: conf, messageCache: messageCache, webPush: webPush, fileCache: fileCache, firebaseClient: firebaseClient, smtpSender: mailer, topics: topics, userManager: userManager, messages: messages, messagesHistory: []int64{messages}, visitors: make(map[string]*visitor), stripe: stripe, } s.priceCache = util.NewLookupCache(s.fetchStripePrices, conf.StripePriceCacheDuration) return s, nil } func createMessageCache(conf *Config) (*messageCache, error) { if conf.CacheDuration == 0 { return newNopCache() } else if conf.CacheFile != "" { return newSqliteCache(conf.CacheFile, conf.CacheStartupQueries, conf.CacheDuration, conf.CacheBatchSize, conf.CacheBatchTimeout, false) } return newMemCache() } // Run executes the main server. It listens on HTTP (+ HTTPS, if configured), and starts // a manager go routine to print stats and prune messages. func (s *Server) Run() error { var listenStr string if s.config.ListenHTTP != "" { listenStr += fmt.Sprintf(" %s[http]", s.config.ListenHTTP) } if s.config.ListenHTTPS != "" { listenStr += fmt.Sprintf(" %s[https]", s.config.ListenHTTPS) } if s.config.ListenUnix != "" { listenStr += fmt.Sprintf(" %s[unix]", s.config.ListenUnix) } if s.config.SMTPServerListen != "" { listenStr += fmt.Sprintf(" %s[smtp]", s.config.SMTPServerListen) } if s.config.MetricsListenHTTP != "" { listenStr += fmt.Sprintf(" %s[http/metrics]", s.config.MetricsListenHTTP) } if s.config.ProfileListenHTTP != "" { listenStr += fmt.Sprintf(" %s[http/profile]", s.config.ProfileListenHTTP) } log.Tag(tagStartup).Info("Listening on%s, ntfy %s, log level is %s", listenStr, s.config.Version, log.CurrentLevel().String()) if log.IsFile() { fmt.Fprintf(os.Stderr, "Listening on%s, ntfy %s\n", listenStr, s.config.Version) fmt.Fprintf(os.Stderr, "Logs are written to %s\n", log.File()) } mux := http.NewServeMux() mux.HandleFunc("/", s.handle) errChan := make(chan error) s.mu.Lock() s.closeChan = make(chan bool) if s.config.ListenHTTP != "" { s.httpServer = &http.Server{Addr: s.config.ListenHTTP, Handler: mux} go func() { errChan <- s.httpServer.ListenAndServe() }() } if s.config.ListenHTTPS != "" { s.httpsServer = &http.Server{Addr: s.config.ListenHTTPS, Handler: mux} go func() { errChan <- s.httpsServer.ListenAndServeTLS(s.config.CertFile, s.config.KeyFile) }() } if s.config.ListenUnix != "" { go func() { var err error s.mu.Lock() os.Remove(s.config.ListenUnix) s.unixListener, err = net.Listen("unix", s.config.ListenUnix) if err != nil { s.mu.Unlock() errChan <- err return } defer s.unixListener.Close() if s.config.ListenUnixMode > 0 { if err := os.Chmod(s.config.ListenUnix, s.config.ListenUnixMode); err != nil { s.mu.Unlock() errChan <- err return } } s.mu.Unlock() httpServer := &http.Server{Handler: mux} errChan <- httpServer.Serve(s.unixListener) }() } if s.config.MetricsListenHTTP != "" { initMetrics() s.httpMetricsServer = &http.Server{Addr: s.config.MetricsListenHTTP, Handler: promhttp.Handler()} go func() { errChan <- s.httpMetricsServer.ListenAndServe() }() } else if s.config.EnableMetrics { initMetrics() s.metricsHandler = promhttp.Handler() } if s.config.ProfileListenHTTP != "" { profileMux := http.NewServeMux() profileMux.HandleFunc("/debug/pprof/", pprof.Index) profileMux.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline) profileMux.HandleFunc("/debug/pprof/profile", pprof.Profile) profileMux.HandleFunc("/debug/pprof/symbol", pprof.Symbol) profileMux.HandleFunc("/debug/pprof/trace", pprof.Trace) s.httpProfileServer = &http.Server{Addr: s.config.ProfileListenHTTP, Handler: profileMux} go func() { errChan <- s.httpProfileServer.ListenAndServe() }() } if s.config.SMTPServerListen != "" { go func() { errChan <- s.runSMTPServer() }() } s.mu.Unlock() go s.runManager() go s.runStatsResetter() go s.runDelayedSender() go s.runFirebaseKeepaliver() return <-errChan } // Stop stops HTTP (+HTTPS) server and all managers func (s *Server) Stop() { s.mu.Lock() defer s.mu.Unlock() if s.httpServer != nil { s.httpServer.Close() } if s.httpsServer != nil { s.httpsServer.Close() } if s.unixListener != nil { s.unixListener.Close() } if s.smtpServer != nil { s.smtpServer.Close() } s.closeDatabases() close(s.closeChan) } func (s *Server) closeDatabases() { if s.userManager != nil { s.userManager.Close() } s.messageCache.Close() if s.webPush != nil { s.webPush.Close() } } // handle is the main entry point for all HTTP requests func (s *Server) handle(w http.ResponseWriter, r *http.Request) { v, err := s.maybeAuthenticate(r) // Note: Always returns v, even when error is returned if err != nil { s.handleError(w, r, v, err) return } ev := logvr(v, r) if ev.IsTrace() { ev.Field("http_request", renderHTTPRequest(r)).Trace("HTTP request started") } else if logvr(v, r).IsDebug() { ev.Debug("HTTP request started") } logvr(v, r). Timing(func() { if err := s.handleInternal(w, r, v); err != nil { s.handleError(w, r, v, err) return } if metricHTTPRequests != nil { metricHTTPRequests.WithLabelValues("200", "20000", r.Method).Inc() } }). Debug("HTTP request finished") } func (s *Server) handleError(w http.ResponseWriter, r *http.Request, v *visitor, err error) { httpErr, ok := err.(*errHTTP) if !ok { httpErr = errHTTPInternalError } if metricHTTPRequests != nil { metricHTTPRequests.WithLabelValues(fmt.Sprintf("%d", httpErr.HTTPCode), fmt.Sprintf("%d", httpErr.Code), r.Method).Inc() } isRateLimiting := util.Contains(rateLimitingErrorCodes, httpErr.HTTPCode) isNormalError := strings.Contains(err.Error(), "i/o timeout") || util.Contains(normalErrorCodes, httpErr.HTTPCode) ev := logvr(v, r).Err(err) if websocket.IsWebSocketUpgrade(r) { ev.Tag(tagWebsocket).Fields(websocketErrorContext(err)) if isNormalError { ev.Debug("WebSocket error (this error is okay, it happens a lot): %s", err.Error()) } else { ev.Info("WebSocket error: %s", err.Error()) } return // Do not attempt to write to upgraded connection } if isNormalError { ev.Debug("Connection closed with HTTP %d (ntfy error %d)", httpErr.HTTPCode, httpErr.Code) } else { ev.Info("Connection closed with HTTP %d (ntfy error %d)", httpErr.HTTPCode, httpErr.Code) } if isRateLimiting && s.config.StripeSecretKey != "" { u := v.User() if u == nil || u.Tier == nil { httpErr = httpErr.Wrap("increase your limits with a paid plan, see %s", s.config.BaseURL) } } w.Header().Set("Content-Type", "application/json") w.Header().Set("Access-Control-Allow-Origin", s.config.AccessControlAllowOrigin) // CORS, allow cross-origin requests w.WriteHeader(httpErr.HTTPCode) io.WriteString(w, httpErr.JSON()+"\n") } func (s *Server) handleInternal(w http.ResponseWriter, r *http.Request, v *visitor) error { if r.Method == http.MethodGet && r.URL.Path == "/" && s.config.WebRoot == "/" { return s.ensureWebEnabled(s.handleRoot)(w, r, v) } else if r.Method == http.MethodHead && r.URL.Path == "/" { return s.ensureWebEnabled(s.handleEmpty)(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == apiHealthPath { return s.handleHealth(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == webConfigPath { return s.ensureWebEnabled(s.handleWebConfig)(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == webManifestPath { return s.ensureWebPushEnabled(s.handleWebManifest)(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == apiUsersPath { return s.ensureAdmin(s.handleUsersGet)(w, r, v) } else if r.Method == http.MethodPut && r.URL.Path == apiUsersPath { return s.ensureAdmin(s.handleUsersAdd)(w, r, v) } else if r.Method == http.MethodDelete && r.URL.Path == apiUsersPath { return s.ensureAdmin(s.handleUsersDelete)(w, r, v) } else if (r.Method == http.MethodPut || r.Method == http.MethodPost) && r.URL.Path == apiUsersAccessPath { return s.ensureAdmin(s.handleAccessAllow)(w, r, v) } else if r.Method == http.MethodDelete && r.URL.Path == apiUsersAccessPath { return s.ensureAdmin(s.handleAccessReset)(w, r, v) } else if r.Method == http.MethodPost && r.URL.Path == apiAccountPath { return s.ensureUserManager(s.handleAccountCreate)(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == apiAccountPath { return s.handleAccountGet(w, r, v) // Allowed by anonymous } else if r.Method == http.MethodDelete && r.URL.Path == apiAccountPath { return s.ensureUser(s.withAccountSync(s.handleAccountDelete))(w, r, v) } else if r.Method == http.MethodPost && r.URL.Path == apiAccountPasswordPath { return s.ensureUser(s.handleAccountPasswordChange)(w, r, v) } else if r.Method == http.MethodPost && r.URL.Path == apiAccountTokenPath { return s.ensureUser(s.withAccountSync(s.handleAccountTokenCreate))(w, r, v) } else if r.Method == http.MethodPatch && r.URL.Path == apiAccountTokenPath { return s.ensureUser(s.withAccountSync(s.handleAccountTokenUpdate))(w, r, v) } else if r.Method == http.MethodDelete && r.URL.Path == apiAccountTokenPath { return s.ensureUser(s.withAccountSync(s.handleAccountTokenDelete))(w, r, v) } else if r.Method == http.MethodPatch && r.URL.Path == apiAccountSettingsPath { return s.ensureUser(s.withAccountSync(s.handleAccountSettingsChange))(w, r, v) } else if r.Method == http.MethodPost && r.URL.Path == apiAccountSubscriptionPath { return s.ensureUser(s.withAccountSync(s.handleAccountSubscriptionAdd))(w, r, v) } else if r.Method == http.MethodPatch && r.URL.Path == apiAccountSubscriptionPath { return s.ensureUser(s.withAccountSync(s.handleAccountSubscriptionChange))(w, r, v) } else if r.Method == http.MethodDelete && r.URL.Path == apiAccountSubscriptionPath { return s.ensureUser(s.withAccountSync(s.handleAccountSubscriptionDelete))(w, r, v) } else if r.Method == http.MethodPost && r.URL.Path == apiAccountReservationPath { return s.ensureUser(s.withAccountSync(s.handleAccountReservationAdd))(w, r, v) } else if r.Method == http.MethodDelete && apiAccountReservationSingleRegex.MatchString(r.URL.Path) { return s.ensureUser(s.withAccountSync(s.handleAccountReservationDelete))(w, r, v) } else if r.Method == http.MethodPost && r.URL.Path == apiAccountBillingSubscriptionPath { return s.ensurePaymentsEnabled(s.ensureUser(s.handleAccountBillingSubscriptionCreate))(w, r, v) // Account sync via incoming Stripe webhook } else if r.Method == http.MethodGet && apiAccountBillingSubscriptionCheckoutSuccessRegex.MatchString(r.URL.Path) { return s.ensurePaymentsEnabled(s.ensureUserManager(s.handleAccountBillingSubscriptionCreateSuccess))(w, r, v) // No user context! } else if r.Method == http.MethodPut && r.URL.Path == apiAccountBillingSubscriptionPath { return s.ensurePaymentsEnabled(s.ensureStripeCustomer(s.handleAccountBillingSubscriptionUpdate))(w, r, v) // Account sync via incoming Stripe webhook } else if r.Method == http.MethodDelete && r.URL.Path == apiAccountBillingSubscriptionPath { return s.ensurePaymentsEnabled(s.ensureStripeCustomer(s.handleAccountBillingSubscriptionDelete))(w, r, v) // Account sync via incoming Stripe webhook } else if r.Method == http.MethodPost && r.URL.Path == apiAccountBillingPortalPath { return s.ensurePaymentsEnabled(s.ensureStripeCustomer(s.handleAccountBillingPortalSessionCreate))(w, r, v) } else if r.Method == http.MethodPost && r.URL.Path == apiAccountBillingWebhookPath { return s.ensurePaymentsEnabled(s.ensureUserManager(s.handleAccountBillingWebhook))(w, r, v) // This request comes from Stripe! } else if r.Method == http.MethodPut && r.URL.Path == apiAccountPhoneVerifyPath { return s.ensureUser(s.ensureCallsEnabled(s.withAccountSync(s.handleAccountPhoneNumberVerify)))(w, r, v) } else if r.Method == http.MethodPut && r.URL.Path == apiAccountPhonePath { return s.ensureUser(s.ensureCallsEnabled(s.withAccountSync(s.handleAccountPhoneNumberAdd)))(w, r, v) } else if r.Method == http.MethodDelete && r.URL.Path == apiAccountPhonePath { return s.ensureUser(s.ensureCallsEnabled(s.withAccountSync(s.handleAccountPhoneNumberDelete)))(w, r, v) } else if r.Method == http.MethodPost && apiWebPushPath == r.URL.Path { return s.ensureWebPushEnabled(s.limitRequests(s.handleWebPushUpdate))(w, r, v) } else if r.Method == http.MethodDelete && apiWebPushPath == r.URL.Path { return s.ensureWebPushEnabled(s.limitRequests(s.handleWebPushDelete))(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == apiStatsPath { return s.handleStats(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == apiTiersPath { return s.ensurePaymentsEnabled(s.handleBillingTiersGet)(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == matrixPushPath { return s.handleMatrixDiscovery(w) } else if r.Method == http.MethodGet && r.URL.Path == metricsPath && s.metricsHandler != nil { return s.handleMetrics(w, r, v) } else if r.Method == http.MethodGet && (staticRegex.MatchString(r.URL.Path) || r.URL.Path == webServiceWorkerPath || r.URL.Path == webRootHTMLPath) { return s.ensureWebEnabled(s.handleStatic)(w, r, v) } else if r.Method == http.MethodGet && docsRegex.MatchString(r.URL.Path) { return s.ensureWebEnabled(s.handleDocs)(w, r, v) } else if (r.Method == http.MethodGet || r.Method == http.MethodHead) && fileRegex.MatchString(r.URL.Path) && s.config.AttachmentCacheDir != "" { return s.limitRequests(s.handleFile)(w, r, v) } else if r.Method == http.MethodOptions { return s.limitRequests(s.handleOptions)(w, r, v) // Should work even if the web app is not enabled, see #598 } else if (r.Method == http.MethodPut || r.Method == http.MethodPost) && r.URL.Path == "/" { return s.transformBodyJSON(s.limitRequestsWithTopic(s.authorizeTopicWrite(s.handlePublish)))(w, r, v) } else if r.Method == http.MethodPost && r.URL.Path == matrixPushPath { return s.transformMatrixJSON(s.limitRequestsWithTopic(s.authorizeTopicWrite(s.handlePublishMatrix)))(w, r, v) } else if (r.Method == http.MethodPut || r.Method == http.MethodPost) && topicPathRegex.MatchString(r.URL.Path) { return s.limitRequestsWithTopic(s.authorizeTopicWrite(s.handlePublish))(w, r, v) } else if r.Method == http.MethodGet && publishPathRegex.MatchString(r.URL.Path) { return s.limitRequestsWithTopic(s.authorizeTopicWrite(s.handlePublish))(w, r, v) } else if r.Method == http.MethodGet && jsonPathRegex.MatchString(r.URL.Path) { return s.limitRequests(s.authorizeTopicRead(s.handleSubscribeJSON))(w, r, v) } else if r.Method == http.MethodGet && ssePathRegex.MatchString(r.URL.Path) { return s.limitRequests(s.authorizeTopicRead(s.handleSubscribeSSE))(w, r, v) } else if r.Method == http.MethodGet && rawPathRegex.MatchString(r.URL.Path) { return s.limitRequests(s.authorizeTopicRead(s.handleSubscribeRaw))(w, r, v) } else if r.Method == http.MethodGet && wsPathRegex.MatchString(r.URL.Path) { return s.limitRequests(s.authorizeTopicRead(s.handleSubscribeWS))(w, r, v) } else if r.Method == http.MethodGet && authPathRegex.MatchString(r.URL.Path) { return s.limitRequests(s.authorizeTopicRead(s.handleTopicAuth))(w, r, v) } else if r.Method == http.MethodGet && (topicPathRegex.MatchString(r.URL.Path) || externalTopicPathRegex.MatchString(r.URL.Path)) { return s.ensureWebEnabled(s.handleTopic)(w, r, v) } return errHTTPNotFound } func (s *Server) handleRoot(w http.ResponseWriter, r *http.Request, v *visitor) error { r.URL.Path = webAppIndex return s.handleStatic(w, r, v) } func (s *Server) handleTopic(w http.ResponseWriter, r *http.Request, v *visitor) error { unifiedpush := readBoolParam(r, false, "x-unifiedpush", "unifiedpush", "up") // see PUT/POST too! if unifiedpush { w.Header().Set("Content-Type", "application/json") w.Header().Set("Access-Control-Allow-Origin", s.config.AccessControlAllowOrigin) // CORS, allow cross-origin requests _, err := io.WriteString(w, `{"unifiedpush":{"version":1}}`+"\n") return err } r.URL.Path = webAppIndex return s.handleStatic(w, r, v) } func (s *Server) handleEmpty(_ http.ResponseWriter, _ *http.Request, _ *visitor) error { return nil } func (s *Server) handleTopicAuth(w http.ResponseWriter, _ *http.Request, _ *visitor) error { return s.writeJSON(w, newSuccessResponse()) } func (s *Server) handleHealth(w http.ResponseWriter, _ *http.Request, _ *visitor) error { response := &apiHealthResponse{ Healthy: true, } return s.writeJSON(w, response) } func (s *Server) handleWebConfig(w http.ResponseWriter, _ *http.Request, _ *visitor) error { response := &apiConfigResponse{ BaseURL: "", // Will translate to window.location.origin AppRoot: s.config.WebRoot, EnableLogin: s.config.EnableLogin, EnableSignup: s.config.EnableSignup, EnablePayments: s.config.StripeSecretKey != "", EnableCalls: s.config.TwilioAccount != "", EnableEmails: s.config.SMTPSenderFrom != "", EnableReservations: s.config.EnableReservations, EnableWebPush: s.config.WebPushPublicKey != "", BillingContact: s.config.BillingContact, WebPushPublicKey: s.config.WebPushPublicKey, DisallowedTopics: s.config.DisallowedTopics, } b, err := json.MarshalIndent(response, "", " ") if err != nil { return err } w.Header().Set("Content-Type", "text/javascript") w.Header().Set("Cache-Control", "no-cache") _, err = io.WriteString(w, fmt.Sprintf("// Generated server configuration\nvar config = %s;\n", string(b))) return err } // handleWebManifest serves the web app manifest for the progressive web app (PWA) func (s *Server) handleWebManifest(w http.ResponseWriter, _ *http.Request, _ *visitor) error { response := &webManifestResponse{ Name: "ntfy web", Description: "ntfy lets you send push notifications via scripts from any computer or phone", ShortName: "ntfy", Scope: "/", StartURL: s.config.WebRoot, Display: "standalone", BackgroundColor: "#ffffff", ThemeColor: "#317f6f", Icons: []*webManifestIcon{ {SRC: "/static/images/pwa-192x192.png", Sizes: "192x192", Type: "image/png"}, {SRC: "/static/images/pwa-512x512.png", Sizes: "512x512", Type: "image/png"}, }, } return s.writeJSONWithContentType(w, response, "application/manifest+json") } // handleMetrics returns Prometheus metrics. This endpoint is only called if enable-metrics is set, // and listen-metrics-http is not set. func (s *Server) handleMetrics(w http.ResponseWriter, r *http.Request, _ *visitor) error { s.metricsHandler.ServeHTTP(w, r) return nil } // handleStatic returns all static resources (excluding the docs), including the web app func (s *Server) handleStatic(w http.ResponseWriter, r *http.Request, _ *visitor) error { r.URL.Path = webSiteDir + r.URL.Path util.Gzip(http.FileServer(http.FS(webFsCached))).ServeHTTP(w, r) return nil } // handleDocs returns static resources related to the docs func (s *Server) handleDocs(w http.ResponseWriter, r *http.Request, _ *visitor) error { util.Gzip(http.FileServer(http.FS(docsStaticCached))).ServeHTTP(w, r) return nil } // handleStats returns the publicly available server stats func (s *Server) handleStats(w http.ResponseWriter, _ *http.Request, _ *visitor) error { s.mu.RLock() messages, n, rate := s.messages, len(s.messagesHistory), float64(0) if n > 1 { rate = float64(s.messagesHistory[n-1]-s.messagesHistory[0]) / (float64(n-1) * s.config.ManagerInterval.Seconds()) } s.mu.RUnlock() response := &apiStatsResponse{ Messages: messages, MessagesRate: rate, } return s.writeJSON(w, response) } // handleFile processes the download of attachment files. The method handles GET and HEAD requests against a file. // Before streaming the file to a client, it locates uploader (m.Sender or m.User) in the message cache, so it // can associate the download bandwidth with the uploader. func (s *Server) handleFile(w http.ResponseWriter, r *http.Request, v *visitor) error { if s.config.AttachmentCacheDir == "" { return errHTTPInternalError } matches := fileRegex.FindStringSubmatch(r.URL.Path) if len(matches) != 2 { return errHTTPInternalErrorInvalidPath } messageID := matches[1] file := filepath.Join(s.config.AttachmentCacheDir, messageID) stat, err := os.Stat(file) if err != nil { return errHTTPNotFound.Fields(log.Context{ "message_id": messageID, "error_context": "filesystem", }) } w.Header().Set("Access-Control-Allow-Origin", s.config.AccessControlAllowOrigin) // CORS, allow cross-origin requests w.Header().Set("Content-Length", fmt.Sprintf("%d", stat.Size())) if r.Method == http.MethodHead { return nil } // Find message in database, and associate bandwidth to the uploader user // This is an easy way to // - avoid abuse (e.g. 1 uploader, 1k downloaders) // - and also uses the higher bandwidth limits of a paying user m, err := s.messageCache.Message(messageID) if errors.Is(err, errMessageNotFound) { if s.config.CacheBatchTimeout > 0 { // Strange edge case: If we immediately after upload request the file (the web app does this for images), // and messages are persisted asynchronously, retry fetching from the database m, err = util.Retry(func() (*message, error) { return s.messageCache.Message(messageID) }, s.config.CacheBatchTimeout, 100*time.Millisecond, 300*time.Millisecond, 600*time.Millisecond) } if err != nil { return errHTTPNotFound.Fields(log.Context{ "message_id": messageID, "error_context": "message_cache", }) } } else if err != nil { return err } bandwidthVisitor := v if s.userManager != nil && m.User != "" { u, err := s.userManager.UserByID(m.User) if err != nil { return err } bandwidthVisitor = s.visitor(v.IP(), u) } else if m.Sender.IsValid() { bandwidthVisitor = s.visitor(m.Sender, nil) } if !bandwidthVisitor.BandwidthAllowed(stat.Size()) { return errHTTPTooManyRequestsLimitAttachmentBandwidth.With(m) } // Actually send file f, err := os.Open(file) if err != nil { return err } defer f.Close() if m.Attachment.Name != "" { w.Header().Set("Content-Disposition", "attachment; filename="+strconv.Quote(m.Attachment.Name)) } _, err = io.Copy(util.NewContentTypeWriter(w, r.URL.Path), f) return err } func (s *Server) handleMatrixDiscovery(w http.ResponseWriter) error { if s.config.BaseURL == "" { return errHTTPInternalErrorMissingBaseURL } return writeMatrixDiscoveryResponse(w) } func (s *Server) handlePublishInternal(r *http.Request, v *visitor) (*message, error) { start := time.Now() t, err := fromContext[*topic](r, contextTopic) if err != nil { return nil, err } vrate, err := fromContext[*visitor](r, contextRateVisitor) if err != nil { return nil, err } body, err := util.Peek(r.Body, s.config.MessageSizeLimit) if err != nil { return nil, err } m := newDefaultMessage(t.ID, "") cache, firebase, email, call, template, unifiedpush, e := s.parsePublishParams(r, m) if e != nil { return nil, e.With(t) } if unifiedpush && s.config.VisitorSubscriberRateLimiting && t.RateVisitor() == nil { // UnifiedPush clients must subscribe before publishing to allow proper subscriber-based rate limiting. // The 5xx response is because some app servers (in particular Mastodon) will remove // the subscription as invalid if any 400-499 code (except 429/408) is returned. // See https://github.com/mastodon/mastodon/blob/730bb3e211a84a2f30e3e2bbeae3f77149824a68/app/workers/web/push_notification_worker.rb#L35-L46 return nil, errHTTPInsufficientStorageUnifiedPush.With(t) } else if !util.ContainsIP(s.config.VisitorRequestExemptIPAddrs, v.ip) && !vrate.MessageAllowed() { return nil, errHTTPTooManyRequestsLimitMessages.With(t) } else if email != "" && !vrate.EmailAllowed() { return nil, errHTTPTooManyRequestsLimitEmails.With(t) } else if call != "" { var httpErr *errHTTP call, httpErr = s.convertPhoneNumber(v.User(), call) if httpErr != nil { return nil, httpErr.With(t) } else if !vrate.CallAllowed() { return nil, errHTTPTooManyRequestsLimitCalls.With(t) } } if m.PollID != "" { m = newPollRequestMessage(t.ID, m.PollID) } m.Sender = v.IP() m.User = v.MaybeUserID() if cache { m.Expires = time.Unix(m.Time, 0).Add(v.Limits().MessageExpiryDuration).Unix() } if err := s.handlePublishBody(r, v, m, body, template, unifiedpush); err != nil { return nil, err } if m.Message == "" { m.Message = emptyMessageBody } delayed := m.Time > time.Now().Unix() ev := logvrm(v, r, m). Tag(tagPublish). With(t). Fields(log.Context{ "message_delayed": delayed, "message_firebase": firebase, "message_unifiedpush": unifiedpush, "message_email": email, "message_call": call, }) if ev.IsTrace() { ev.Field("message_body", util.MaybeMarshalJSON(m)).Trace("Received message") } else if ev.IsDebug() { ev.Debug("Received message") } if !delayed { if err := t.Publish(v, m); err != nil { return nil, err } if s.firebaseClient != nil && firebase { go s.sendToFirebase(v, m) } if s.smtpSender != nil && email != "" { go s.sendEmail(v, m, email) } if s.config.TwilioAccount != "" && call != "" { go s.callPhone(v, r, m, call) } if s.config.UpstreamBaseURL != "" && !unifiedpush { // UP messages are not sent to upstream go s.forwardPollRequest(v, m) } if s.config.WebPushPublicKey != "" { go s.publishToWebPushEndpoints(v, m) } } else { logvrm(v, r, m).Tag(tagPublish).Debug("Message delayed, will process later") } if cache { logvrm(v, r, m).Tag(tagPublish).Debug("Adding message to cache") if err := s.messageCache.AddMessage(m); err != nil { return nil, err } } u := v.User() if s.userManager != nil && u != nil && u.Tier != nil { go s.userManager.EnqueueUserStats(u.ID, v.Stats()) } s.mu.Lock() s.messages++ s.mu.Unlock() if unifiedpush { minc(metricUnifiedPushPublishedSuccess) } mset(metricMessagePublishDurationMillis, time.Since(start).Milliseconds()) return m, nil } func (s *Server) handlePublish(w http.ResponseWriter, r *http.Request, v *visitor) error { m, err := s.handlePublishInternal(r, v) if err != nil { minc(metricMessagesPublishedFailure) return err } minc(metricMessagesPublishedSuccess) return s.writeJSON(w, m) } func (s *Server) handlePublishMatrix(w http.ResponseWriter, r *http.Request, v *visitor) error { _, err := s.handlePublishInternal(r, v) if err != nil { minc(metricMessagesPublishedFailure) minc(metricMatrixPublishedFailure) if e, ok := err.(*errHTTP); ok && e.HTTPCode == errHTTPInsufficientStorageUnifiedPush.HTTPCode { topic, err := fromContext[*topic](r, contextTopic) if err != nil { return err } pushKey, err := fromContext[string](r, contextMatrixPushKey) if err != nil { return err } if time.Since(topic.LastAccess()) > matrixRejectPushKeyForUnifiedPushTopicWithoutRateVisitorAfter { return writeMatrixResponse(w, pushKey) } } return err } minc(metricMessagesPublishedSuccess) minc(metricMatrixPublishedSuccess) return writeMatrixSuccess(w) } func (s *Server) sendToFirebase(v *visitor, m *message) { logvm(v, m).Tag(tagFirebase).Debug("Publishing to Firebase") if err := s.firebaseClient.Send(v, m); err != nil { minc(metricFirebasePublishedFailure) if errors.Is(err, errFirebaseTemporarilyBanned) { logvm(v, m).Tag(tagFirebase).Err(err).Debug("Unable to publish to Firebase: %v", err.Error()) } else { logvm(v, m).Tag(tagFirebase).Err(err).Warn("Unable to publish to Firebase: %v", err.Error()) } return } minc(metricFirebasePublishedSuccess) } func (s *Server) sendEmail(v *visitor, m *message, email string) { logvm(v, m).Tag(tagEmail).Field("email", email).Debug("Sending email to %s", email) if err := s.smtpSender.Send(v, m, email); err != nil { logvm(v, m).Tag(tagEmail).Field("email", email).Err(err).Warn("Unable to send email to %s: %v", email, err.Error()) minc(metricEmailsPublishedFailure) return } minc(metricEmailsPublishedSuccess) } func (s *Server) forwardPollRequest(v *visitor, m *message) { topicURL := fmt.Sprintf("%s/%s", s.config.BaseURL, m.Topic) topicHash := fmt.Sprintf("%x", sha256.Sum256([]byte(topicURL))) forwardURL := fmt.Sprintf("%s/%s", s.config.UpstreamBaseURL, topicHash) logvm(v, m).Debug("Publishing poll request to %s", forwardURL) req, err := http.NewRequest("POST", forwardURL, strings.NewReader("")) if err != nil { logvm(v, m).Err(err).Warn("Unable to publish poll request") return } req.Header.Set("User-Agent", "ntfy/"+s.config.Version) req.Header.Set("X-Poll-ID", m.ID) if s.config.UpstreamAccessToken != "" { req.Header.Set("Authorization", util.BearerAuth(s.config.UpstreamAccessToken)) } var httpClient = &http.Client{ Timeout: time.Second * 10, } response, err := httpClient.Do(req) if err != nil { logvm(v, m).Err(err).Warn("Unable to publish poll request") return } else if response.StatusCode != http.StatusOK { if response.StatusCode == http.StatusTooManyRequests { logvm(v, m).Err(err).Warn("Unable to publish poll request, the upstream server %s responded with HTTP %s; you may solve this by sending fewer daily messages, or by configuring upstream-access-token (assuming you have an account with higher rate limits) ", s.config.UpstreamBaseURL, response.Status) } else { logvm(v, m).Err(err).Warn("Unable to publish poll request, the upstream server %s responded with HTTP %s", s.config.UpstreamBaseURL, response.Status) } return } } func (s *Server) parsePublishParams(r *http.Request, m *message) (cache bool, firebase bool, email, call string, template bool, unifiedpush bool, err *errHTTP) { cache = readBoolParam(r, true, "x-cache", "cache") firebase = readBoolParam(r, true, "x-firebase", "firebase") m.Title = readParam(r, "x-title", "title", "t") m.Click = readParam(r, "x-click", "click") icon := readParam(r, "x-icon", "icon") filename := readParam(r, "x-filename", "filename", "file", "f") attach := readParam(r, "x-attach", "attach", "a") if attach != "" || filename != "" { m.Attachment = &attachment{} } if filename != "" { m.Attachment.Name = filename } if attach != "" { if !urlRegex.MatchString(attach) { return false, false, "", "", false, false, errHTTPBadRequestAttachmentURLInvalid } m.Attachment.URL = attach if m.Attachment.Name == "" { u, err := url.Parse(m.Attachment.URL) if err == nil { m.Attachment.Name = path.Base(u.Path) if m.Attachment.Name == "." || m.Attachment.Name == "/" { m.Attachment.Name = "" } } } if m.Attachment.Name == "" { m.Attachment.Name = "attachment" } } if icon != "" { if !urlRegex.MatchString(icon) { return false, false, "", "", false, false, errHTTPBadRequestIconURLInvalid } m.Icon = icon } email = readParam(r, "x-email", "x-e-mail", "email", "e-mail", "mail", "e") if s.smtpSender == nil && email != "" { return false, false, "", "", false, false, errHTTPBadRequestEmailDisabled } call = readParam(r, "x-call", "call") if call != "" && (s.config.TwilioAccount == "" || s.userManager == nil) { return false, false, "", "", false, false, errHTTPBadRequestPhoneCallsDisabled } else if call != "" && !isBoolValue(call) && !phoneNumberRegex.MatchString(call) { return false, false, "", "", false, false, errHTTPBadRequestPhoneNumberInvalid } messageStr := strings.ReplaceAll(readParam(r, "x-message", "message", "m"), "\\n", "\n") if messageStr != "" { m.Message = messageStr } var e error m.Priority, e = util.ParsePriority(readParam(r, "x-priority", "priority", "prio", "p")) if e != nil { return false, false, "", "", false, false, errHTTPBadRequestPriorityInvalid } m.Tags = readCommaSeparatedParam(r, "x-tags", "tags", "tag", "ta") delayStr := readParam(r, "x-delay", "delay", "x-at", "at", "x-in", "in") if delayStr != "" { if !cache { return false, false, "", "", false, false, errHTTPBadRequestDelayNoCache } if email != "" { return false, false, "", "", false, false, errHTTPBadRequestDelayNoEmail // we cannot store the email address (yet) } if call != "" { return false, false, "", "", false, false, errHTTPBadRequestDelayNoCall // we cannot store the phone number (yet) } delay, err := util.ParseFutureTime(delayStr, time.Now()) if err != nil { return false, false, "", "", false, false, errHTTPBadRequestDelayCannotParse } else if delay.Unix() < time.Now().Add(s.config.MessageDelayMin).Unix() { return false, false, "", "", false, false, errHTTPBadRequestDelayTooSmall } else if delay.Unix() > time.Now().Add(s.config.MessageDelayMax).Unix() { return false, false, "", "", false, false, errHTTPBadRequestDelayTooLarge } m.Time = delay.Unix() } actionsStr := readParam(r, "x-actions", "actions", "action") if actionsStr != "" { m.Actions, e = parseActions(actionsStr) if e != nil { return false, false, "", "", false, false, errHTTPBadRequestActionsInvalid.Wrap(e.Error()) } } contentType, markdown := readParam(r, "content-type", "content_type"), readBoolParam(r, false, "x-markdown", "markdown", "md") if markdown || strings.ToLower(contentType) == "text/markdown" { m.ContentType = "text/markdown" } template = readBoolParam(r, false, "x-template", "template", "tpl") unifiedpush = readBoolParam(r, false, "x-unifiedpush", "unifiedpush", "up") // see GET too! if unifiedpush { firebase = false unifiedpush = true } m.PollID = readParam(r, "x-poll-id", "poll-id") if m.PollID != "" { unifiedpush = false cache = false email = "" } return cache, firebase, email, call, template, unifiedpush, nil } // handlePublishBody consumes the PUT/POST body and decides whether the body is an attachment or the message. // // 1. curl -X POST -H "Poll: 1234" ntfy.sh/... // If a message is flagged as poll request, the body does not matter and is discarded // 2. curl -T somebinarydata.bin "ntfy.sh/mytopic?up=1" // If UnifiedPush is enabled, encode as base64 if body is binary, and do not trim // 3. curl -H "Attach: http://example.com/file.jpg" ntfy.sh/mytopic // Body must be a message, because we attached an external URL // 4. curl -T short.txt -H "Filename: short.txt" ntfy.sh/mytopic // Body must be attachment, because we passed a filename // 5. curl -H "Template: yes" -T file.txt ntfy.sh/mytopic // If templating is enabled, read up to 32k and treat message body as JSON // 6. curl -T file.txt ntfy.sh/mytopic // If file.txt is <= 4096 (message limit) and valid UTF-8, treat it as a message // 7. curl -T file.txt ntfy.sh/mytopic // In all other cases, mostly if file.txt is > message limit, treat it as an attachment func (s *Server) handlePublishBody(r *http.Request, v *visitor, m *message, body *util.PeekedReadCloser, template, unifiedpush bool) error { if m.Event == pollRequestEvent { // Case 1 return s.handleBodyDiscard(body) } else if unifiedpush { return s.handleBodyAsMessageAutoDetect(m, body) // Case 2 } else if m.Attachment != nil && m.Attachment.URL != "" { return s.handleBodyAsTextMessage(m, body) // Case 3 } else if m.Attachment != nil && m.Attachment.Name != "" { return s.handleBodyAsAttachment(r, v, m, body) // Case 4 } else if template { return s.handleBodyAsTemplatedTextMessage(m, body) // Case 5 } else if !body.LimitReached && utf8.Valid(body.PeekedBytes) { return s.handleBodyAsTextMessage(m, body) // Case 6 } return s.handleBodyAsAttachment(r, v, m, body) // Case 7 } func (s *Server) handleBodyDiscard(body *util.PeekedReadCloser) error { _, err := io.Copy(io.Discard, body) _ = body.Close() return err } func (s *Server) handleBodyAsMessageAutoDetect(m *message, body *util.PeekedReadCloser) error { if utf8.Valid(body.PeekedBytes) { m.Message = string(body.PeekedBytes) // Do not trim } else { m.Message = base64.StdEncoding.EncodeToString(body.PeekedBytes) m.Encoding = encodingBase64 } return nil } func (s *Server) handleBodyAsTextMessage(m *message, body *util.PeekedReadCloser) error { if !utf8.Valid(body.PeekedBytes) { return errHTTPBadRequestMessageNotUTF8.With(m) } if len(body.PeekedBytes) > 0 { // Empty body should not override message (publish via GET!) m.Message = strings.TrimSpace(string(body.PeekedBytes)) // Truncates the message to the peek limit if required } if m.Attachment != nil && m.Attachment.Name != "" && m.Message == "" { m.Message = fmt.Sprintf(defaultAttachmentMessage, m.Attachment.Name) } return nil } func (s *Server) handleBodyAsTemplatedTextMessage(m *message, body *util.PeekedReadCloser) error { body, err := util.Peek(body, max(s.config.MessageSizeLimit, jsonBodyBytesLimit)) if err != nil { return err } else if body.LimitReached { return errHTTPEntityTooLargeJSONBody } peekedBody := strings.TrimSpace(string(body.PeekedBytes)) if m.Message, err = replaceTemplate(m.Message, peekedBody); err != nil { return err } if m.Title, err = replaceTemplate(m.Title, peekedBody); err != nil { return err } if len(m.Message) > s.config.MessageSizeLimit { return errHTTPBadRequestTemplateMessageTooLarge } return nil } func replaceTemplate(tpl string, source string) (string, error) { if templateDisallowedRegex.MatchString(tpl) { return "", errHTTPBadRequestTemplateDisallowedFunctionCalls } var data any if err := json.Unmarshal([]byte(source), &data); err != nil { return "", errHTTPBadRequestTemplateMessageNotJSON } t, err := template.New("").Parse(tpl) if err != nil { return "", errHTTPBadRequestTemplateInvalid } var buf bytes.Buffer if err := t.Execute(util.NewTimeoutWriter(&buf, templateMaxExecutionTime), data); err != nil { return "", errHTTPBadRequestTemplateExecuteFailed } return buf.String(), nil } func (s *Server) handleBodyAsAttachment(r *http.Request, v *visitor, m *message, body *util.PeekedReadCloser) error { if s.fileCache == nil || s.config.BaseURL == "" || s.config.AttachmentCacheDir == "" { return errHTTPBadRequestAttachmentsDisallowed.With(m) } vinfo, err := v.Info() if err != nil { return err } attachmentExpiry := time.Now().Add(vinfo.Limits.AttachmentExpiryDuration).Unix() if m.Time > attachmentExpiry { return errHTTPBadRequestAttachmentsExpiryBeforeDelivery.With(m) } contentLengthStr := r.Header.Get("Content-Length") if contentLengthStr != "" { // Early "do-not-trust" check, hard limit see below contentLength, err := strconv.ParseInt(contentLengthStr, 10, 64) if err == nil && (contentLength > vinfo.Stats.AttachmentTotalSizeRemaining || contentLength > vinfo.Limits.AttachmentFileSizeLimit) { return errHTTPEntityTooLargeAttachment.With(m).Fields(log.Context{ "message_content_length": contentLength, "attachment_total_size_remaining": vinfo.Stats.AttachmentTotalSizeRemaining, "attachment_file_size_limit": vinfo.Limits.AttachmentFileSizeLimit, }) } } if m.Attachment == nil { m.Attachment = &attachment{} } var ext string m.Attachment.Expires = attachmentExpiry m.Attachment.Type, ext = util.DetectContentType(body.PeekedBytes, m.Attachment.Name) m.Attachment.URL = fmt.Sprintf("%s/file/%s%s", s.config.BaseURL, m.ID, ext) if m.Attachment.Name == "" { m.Attachment.Name = fmt.Sprintf("attachment%s", ext) } if m.Message == "" { m.Message = fmt.Sprintf(defaultAttachmentMessage, m.Attachment.Name) } limiters := []util.Limiter{ v.BandwidthLimiter(), util.NewFixedLimiter(vinfo.Limits.AttachmentFileSizeLimit), util.NewFixedLimiter(vinfo.Stats.AttachmentTotalSizeRemaining), } m.Attachment.Size, err = s.fileCache.Write(m.ID, body, limiters...) if errors.Is(err, util.ErrLimitReached) { return errHTTPEntityTooLargeAttachment.With(m) } else if err != nil { return err } return nil } func (s *Server) handleSubscribeJSON(w http.ResponseWriter, r *http.Request, v *visitor) error { encoder := func(msg *message) (string, error) { var buf bytes.Buffer if err := json.NewEncoder(&buf).Encode(&msg); err != nil { return "", err } return buf.String(), nil } return s.handleSubscribeHTTP(w, r, v, "application/x-ndjson", encoder) } func (s *Server) handleSubscribeSSE(w http.ResponseWriter, r *http.Request, v *visitor) error { encoder := func(msg *message) (string, error) { var buf bytes.Buffer if err := json.NewEncoder(&buf).Encode(&msg); err != nil { return "", err } if msg.Event != messageEvent { return fmt.Sprintf("event: %s\ndata: %s\n", msg.Event, buf.String()), nil // Browser's .onmessage() does not fire on this! } return fmt.Sprintf("data: %s\n", buf.String()), nil } return s.handleSubscribeHTTP(w, r, v, "text/event-stream", encoder) } func (s *Server) handleSubscribeRaw(w http.ResponseWriter, r *http.Request, v *visitor) error { encoder := func(msg *message) (string, error) { if msg.Event == messageEvent { // only handle default events return strings.ReplaceAll(msg.Message, "\n", " ") + "\n", nil } return "\n", nil // "keepalive" and "open" events just send an empty line } return s.handleSubscribeHTTP(w, r, v, "text/plain", encoder) } func (s *Server) handleSubscribeHTTP(w http.ResponseWriter, r *http.Request, v *visitor, contentType string, encoder messageEncoder) error { logvr(v, r).Tag(tagSubscribe).Debug("HTTP stream connection opened") defer logvr(v, r).Tag(tagSubscribe).Debug("HTTP stream connection closed") if !v.SubscriptionAllowed() { return errHTTPTooManyRequestsLimitSubscriptions } defer v.RemoveSubscription() topics, topicsStr, err := s.topicsFromPath(r.URL.Path) if err != nil { return err } poll, since, scheduled, filters, err := parseSubscribeParams(r) if err != nil { return err } var wlock sync.Mutex defer func() { // Hack: This is the fix for a horrible data race that I have not been able to figure out in quite some time. // It appears to be happening when the Go HTTP code reads from the socket when closing the request (i.e. AFTER // this function returns), and causes a data race with the ResponseWriter. Locking wlock here silences the // data race detector. See https://github.com/binwiederhier/ntfy/issues/338#issuecomment-1163425889. wlock.TryLock() }() sub := func(v *visitor, msg *message) error { if !filters.Pass(msg) { return nil } m, err := encoder(msg) if err != nil { return err } wlock.Lock() defer wlock.Unlock() if _, err := w.Write([]byte(m)); err != nil { return err } if fl, ok := w.(http.Flusher); ok { fl.Flush() } return nil } if err := s.maybeSetRateVisitors(r, v, topics); err != nil { return err } w.Header().Set("Access-Control-Allow-Origin", s.config.AccessControlAllowOrigin) // CORS, allow cross-origin requests w.Header().Set("Content-Type", contentType+"; charset=utf-8") // Android/Volley client needs charset! if poll { for _, t := range topics { t.Keepalive() } return s.sendOldMessages(topics, since, scheduled, v, sub) } ctx, cancel := context.WithCancel(context.Background()) defer cancel() subscriberIDs := make([]int, 0) for _, t := range topics { subscriberIDs = append(subscriberIDs, t.Subscribe(sub, v.MaybeUserID(), cancel)) } defer func() { for i, subscriberID := range subscriberIDs { topics[i].Unsubscribe(subscriberID) // Order! } }() if err := sub(v, newOpenMessage(topicsStr)); err != nil { // Send out open message return err } if err := s.sendOldMessages(topics, since, scheduled, v, sub); err != nil { return err } for { select { case <-ctx.Done(): return nil case <-r.Context().Done(): return nil case <-time.After(s.config.KeepaliveInterval): ev := logvr(v, r).Tag(tagSubscribe) if len(topics) == 1 { ev.With(topics[0]).Trace("Sending keepalive message to %s", topics[0].ID) } else { ev.Trace("Sending keepalive message to %d topics", len(topics)) } v.Keepalive() for _, t := range topics { t.Keepalive() } if err := sub(v, newKeepaliveMessage(topicsStr)); err != nil { // Send keepalive message return err } } } } func (s *Server) handleSubscribeWS(w http.ResponseWriter, r *http.Request, v *visitor) error { if strings.ToLower(r.Header.Get("Upgrade")) != "websocket" { return errHTTPBadRequestWebSocketsUpgradeHeaderMissing } if !v.SubscriptionAllowed() { return errHTTPTooManyRequestsLimitSubscriptions } defer v.RemoveSubscription() logvr(v, r).Tag(tagWebsocket).Debug("WebSocket connection opened") defer logvr(v, r).Tag(tagWebsocket).Debug("WebSocket connection closed") topics, topicsStr, err := s.topicsFromPath(r.URL.Path) if err != nil { return err } poll, since, scheduled, filters, err := parseSubscribeParams(r) if err != nil { return err } upgrader := &websocket.Upgrader{ ReadBufferSize: wsBufferSize, WriteBufferSize: wsBufferSize, CheckOrigin: func(r *http.Request) bool { return true // We're open for business! }, } conn, err := upgrader.Upgrade(w, r, nil) if err != nil { return err } defer conn.Close() // Subscription connections can be canceled externally, see topic.CancelSubscribersExceptUser cancelCtx, cancel := context.WithCancel(context.Background()) defer cancel() // Use errgroup to run WebSocket reader and writer in Go routines var wlock sync.Mutex g, gctx := errgroup.WithContext(cancelCtx) g.Go(func() error { pongWait := s.config.KeepaliveInterval + wsPongWait conn.SetReadLimit(wsReadLimit) if err := conn.SetReadDeadline(time.Now().Add(pongWait)); err != nil { return err } conn.SetPongHandler(func(appData string) error { logvr(v, r).Tag(tagWebsocket).Trace("Received WebSocket pong") return conn.SetReadDeadline(time.Now().Add(pongWait)) }) for { _, _, err := conn.NextReader() if err != nil { return err } select { case <-gctx.Done(): return nil default: } } }) g.Go(func() error { ping := func() error { wlock.Lock() defer wlock.Unlock() if err := conn.SetWriteDeadline(time.Now().Add(wsWriteWait)); err != nil { return err } logvr(v, r).Tag(tagWebsocket).Trace("Sending WebSocket ping") return conn.WriteMessage(websocket.PingMessage, nil) } for { select { case <-gctx.Done(): return nil case <-cancelCtx.Done(): logvr(v, r).Tag(tagWebsocket).Trace("Cancel received, closing subscriber connection") conn.Close() return &websocket.CloseError{Code: websocket.CloseNormalClosure, Text: "subscription was canceled"} case <-time.After(s.config.KeepaliveInterval): v.Keepalive() for _, t := range topics { t.Keepalive() } if err := ping(); err != nil { return err } } } }) sub := func(v *visitor, msg *message) error { if !filters.Pass(msg) { return nil } wlock.Lock() defer wlock.Unlock() if err := conn.SetWriteDeadline(time.Now().Add(wsWriteWait)); err != nil { return err } return conn.WriteJSON(msg) } if err := s.maybeSetRateVisitors(r, v, topics); err != nil { return err } w.Header().Set("Access-Control-Allow-Origin", s.config.AccessControlAllowOrigin) // CORS, allow cross-origin requests if poll { for _, t := range topics { t.Keepalive() } return s.sendOldMessages(topics, since, scheduled, v, sub) } subscriberIDs := make([]int, 0) for _, t := range topics { subscriberIDs = append(subscriberIDs, t.Subscribe(sub, v.MaybeUserID(), cancel)) } defer func() { for i, subscriberID := range subscriberIDs { topics[i].Unsubscribe(subscriberID) // Order! } }() if err := sub(v, newOpenMessage(topicsStr)); err != nil { // Send out open message return err } if err := s.sendOldMessages(topics, since, scheduled, v, sub); err != nil { return err } err = g.Wait() if err != nil && websocket.IsCloseError(err, websocket.CloseNormalClosure, websocket.CloseGoingAway, websocket.CloseAbnormalClosure, websocket.CloseNoStatusReceived) { logvr(v, r).Tag(tagWebsocket).Err(err).Fields(websocketErrorContext(err)).Trace("WebSocket connection closed") return nil // Normal closures are not errors; note: "1006 (abnormal closure)" is treated as normal, because people disconnect a lot } return err } func parseSubscribeParams(r *http.Request) (poll bool, since sinceMarker, scheduled bool, filters *queryFilter, err error) { poll = readBoolParam(r, false, "x-poll", "poll", "po") scheduled = readBoolParam(r, false, "x-scheduled", "scheduled", "sched") since, err = parseSince(r, poll) if err != nil { return } filters, err = parseQueryFilters(r) if err != nil { return } return } // maybeSetRateVisitors sets the rate visitor on a topic (v.SetRateVisitor), indicating that all messages published // to that topic will be rate limited against the rate visitor instead of the publishing visitor. // // Setting the rate visitor is ony allowed if the `visitor-subscriber-rate-limiting` setting is enabled, AND // - auth-file is not set (everything is open by default) // - or the topic is reserved, and v.user is the owner // - or the topic is not reserved, and v.user has write access // // This only applies to UnifiedPush topics ("up..."). func (s *Server) maybeSetRateVisitors(r *http.Request, v *visitor, topics []*topic) error { // Bail out if not enabled if !s.config.VisitorSubscriberRateLimiting { return nil } // Make a list of topics that we'll actually set the RateVisitor on eligibleRateTopics := make([]*topic, 0) for _, t := range topics { if strings.HasPrefix(t.ID, unifiedPushTopicPrefix) && len(t.ID) == unifiedPushTopicLength { eligibleRateTopics = append(eligibleRateTopics, t) } } if len(eligibleRateTopics) == 0 { return nil } // If access controls are turned off, v has access to everything, and we can set the rate visitor if s.userManager == nil { return s.setRateVisitors(r, v, eligibleRateTopics) } // If access controls are enabled, only set rate visitor if // - topic is reserved, and v.user is the owner // - topic is not reserved, and v.user has write access writableRateTopics := make([]*topic, 0) for _, t := range topics { if !util.Contains(eligibleRateTopics, t) { continue } ownerUserID, err := s.userManager.ReservationOwner(t.ID) if err != nil { return err } if ownerUserID == "" { if err := s.userManager.Authorize(v.User(), t.ID, user.PermissionWrite); err == nil { writableRateTopics = append(writableRateTopics, t) } } else if ownerUserID == v.MaybeUserID() { writableRateTopics = append(writableRateTopics, t) } } return s.setRateVisitors(r, v, writableRateTopics) } func (s *Server) setRateVisitors(r *http.Request, v *visitor, rateTopics []*topic) error { for _, t := range rateTopics { logvr(v, r). Tag(tagSubscribe). With(t). Debug("Setting visitor as rate visitor for topic %s", t.ID) t.SetRateVisitor(v) } return nil } // sendOldMessages selects old messages from the messageCache and calls sub for each of them. It uses since as the // marker, returning only messages that are newer than the marker. func (s *Server) sendOldMessages(topics []*topic, since sinceMarker, scheduled bool, v *visitor, sub subscriber) error { if since.IsNone() { return nil } messages := make([]*message, 0) for _, t := range topics { topicMessages, err := s.messageCache.Messages(t.ID, since, scheduled) if err != nil { return err } messages = append(messages, topicMessages...) } sort.Slice(messages, func(i, j int) bool { return messages[i].Time < messages[j].Time }) for _, m := range messages { if err := sub(v, m); err != nil { return err } } return nil } // parseSince returns a timestamp identifying the time span from which cached messages should be received. // // Values in the "since=..." parameter can be either a unix timestamp or a duration (e.g. 12h), or // "all" for all messages. func parseSince(r *http.Request, poll bool) (sinceMarker, error) { since := readParam(r, "x-since", "since", "si") // Easy cases (empty, all, none) if since == "" { if poll { return sinceAllMessages, nil } return sinceNoMessages, nil } else if since == "all" { return sinceAllMessages, nil } else if since == "none" { return sinceNoMessages, nil } // ID, timestamp, duration if validMessageID(since) { return newSinceID(since), nil } else if s, err := strconv.ParseInt(since, 10, 64); err == nil { return newSinceTime(s), nil } else if d, err := time.ParseDuration(since); err == nil { return newSinceTime(time.Now().Add(-1 * d).Unix()), nil } return sinceNoMessages, errHTTPBadRequestSinceInvalid } func (s *Server) handleOptions(w http.ResponseWriter, _ *http.Request, _ *visitor) error { w.Header().Set("Access-Control-Allow-Methods", "GET, PUT, POST, PATCH, DELETE") w.Header().Set("Access-Control-Allow-Origin", s.config.AccessControlAllowOrigin) // CORS, allow cross-origin requests w.Header().Set("Access-Control-Allow-Headers", "*") // CORS, allow auth via JS // FIXME is this terrible? return nil } // topicFromPath returns the topic from a root path (e.g. /mytopic), creating it if it doesn't exist. func (s *Server) topicFromPath(path string) (*topic, error) { parts := strings.Split(path, "/") if len(parts) < 2 { return nil, errHTTPBadRequestTopicInvalid } return s.topicFromID(parts[1]) } // topicsFromPath returns the topic from a root path (e.g. /mytopic,mytopic2), creating it if it doesn't exist. func (s *Server) topicsFromPath(path string) ([]*topic, string, error) { parts := strings.Split(path, "/") if len(parts) < 2 { return nil, "", errHTTPBadRequestTopicInvalid } topicIDs := util.SplitNoEmpty(parts[1], ",") topics, err := s.topicsFromIDs(topicIDs...) if err != nil { return nil, "", errHTTPBadRequestTopicInvalid } return topics, parts[1], nil } // topicsFromIDs returns the topics with the given IDs, creating them if they don't exist. func (s *Server) topicsFromIDs(ids ...string) ([]*topic, error) { s.mu.Lock() defer s.mu.Unlock() topics := make([]*topic, 0) for _, id := range ids { if util.Contains(s.config.DisallowedTopics, id) { return nil, errHTTPBadRequestTopicDisallowed } if _, ok := s.topics[id]; !ok { if len(s.topics) >= s.config.TotalTopicLimit { return nil, errHTTPTooManyRequestsLimitTotalTopics } s.topics[id] = newTopic(id) } topics = append(topics, s.topics[id]) } return topics, nil } // topicFromID returns the topic with the given ID, creating it if it doesn't exist. func (s *Server) topicFromID(id string) (*topic, error) { topics, err := s.topicsFromIDs(id) if err != nil { return nil, err } return topics[0], nil } // topicsFromPattern returns a list of topics matching the given pattern, but it does not create them. func (s *Server) topicsFromPattern(pattern string) ([]*topic, error) { s.mu.RLock() defer s.mu.RUnlock() patternRegexp, err := regexp.Compile("^" + strings.ReplaceAll(pattern, "*", ".*") + "$") if err != nil { return nil, err } topics := make([]*topic, 0) for _, t := range s.topics { if patternRegexp.MatchString(t.ID) { topics = append(topics, t) } } return topics, nil } func (s *Server) runSMTPServer() error { s.smtpServerBackend = newMailBackend(s.config, s.handle) s.smtpServer = smtp.NewServer(s.smtpServerBackend) s.smtpServer.Addr = s.config.SMTPServerListen s.smtpServer.Domain = s.config.SMTPServerDomain s.smtpServer.ReadTimeout = 10 * time.Second s.smtpServer.WriteTimeout = 10 * time.Second s.smtpServer.MaxMessageBytes = 1024 * 1024 // Must be much larger than message size (headers, multipart, etc.) s.smtpServer.MaxRecipients = 1 s.smtpServer.AllowInsecureAuth = true return s.smtpServer.ListenAndServe() } func (s *Server) runManager() { for { select { case <-time.After(s.config.ManagerInterval): log. Tag(tagManager). Timing(s.execManager). Debug("Manager finished") case <-s.closeChan: return } } } // runStatsResetter runs once a day (usually midnight UTC) to reset all the visitor's message and // email counters. The stats are used to display the counters in the web app, as well as for rate limiting. func (s *Server) runStatsResetter() { for { runAt := util.NextOccurrenceUTC(s.config.VisitorStatsResetTime, time.Now()) timer := time.NewTimer(time.Until(runAt)) log.Tag(tagResetter).Debug("Waiting until %v to reset visitor stats", runAt) select { case <-timer.C: log.Tag(tagResetter).Debug("Running stats resetter") s.resetStats() case <-s.closeChan: log.Tag(tagResetter).Debug("Stopping stats resetter") timer.Stop() return } } } func (s *Server) resetStats() { log.Info("Resetting all visitor stats (daily task)") s.mu.Lock() defer s.mu.Unlock() // Includes the database query to avoid races with other processes for _, v := range s.visitors { v.ResetStats() } if s.userManager != nil { if err := s.userManager.ResetStats(); err != nil { log.Tag(tagResetter).Warn("Failed to write to database: %s", err.Error()) } } } func (s *Server) runFirebaseKeepaliver() { if s.firebaseClient == nil { return } v := newVisitor(s.config, s.messageCache, s.userManager, netip.IPv4Unspecified(), nil) // Background process, not a real visitor, uses IP 0.0.0.0 for { select { case <-time.After(s.config.FirebaseKeepaliveInterval): s.sendToFirebase(v, newKeepaliveMessage(firebaseControlTopic)) /* FIXME: Disable iOS polling entirely for now due to thundering herd problem (see #677) To solve this, we'd have to shard the iOS poll topics to spread out the polling evenly. Given that it's not really necessary to poll, turning it off for now should not have any impact. case <-time.After(s.config.FirebasePollInterval): s.sendToFirebase(v, newKeepaliveMessage(firebasePollTopic)) */ case <-s.closeChan: return } } } func (s *Server) runDelayedSender() { for { select { case <-time.After(s.config.DelayedSenderInterval): if err := s.sendDelayedMessages(); err != nil { log.Tag(tagPublish).Err(err).Warn("Error sending delayed messages") } case <-s.closeChan: return } } } func (s *Server) sendDelayedMessages() error { messages, err := s.messageCache.MessagesDue() if err != nil { return err } for _, m := range messages { var u *user.User if s.userManager != nil && m.User != "" { u, err = s.userManager.UserByID(m.User) if err != nil { log.With(m).Err(err).Warn("Error sending delayed message") continue } } v := s.visitor(m.Sender, u) if err := s.sendDelayedMessage(v, m); err != nil { logvm(v, m).Err(err).Warn("Error sending delayed message") } } return nil } func (s *Server) sendDelayedMessage(v *visitor, m *message) error { logvm(v, m).Debug("Sending delayed message") s.mu.RLock() t, ok := s.topics[m.Topic] // If no subscribers, just mark message as published s.mu.RUnlock() if ok { go func() { // We do not rate-limit messages here, since we've rate limited them in the PUT/POST handler if err := t.Publish(v, m); err != nil { logvm(v, m).Err(err).Warn("Unable to publish message") } }() } if s.firebaseClient != nil { // Firebase subscribers may not show up in topics map go s.sendToFirebase(v, m) } if s.config.UpstreamBaseURL != "" { go s.forwardPollRequest(v, m) } if s.config.WebPushPublicKey != "" { go s.publishToWebPushEndpoints(v, m) } if err := s.messageCache.MarkPublished(m); err != nil { return err } return nil } // transformBodyJSON peeks the request body, reads the JSON, and converts it to headers // before passing it on to the next handler. This is meant to be used in combination with handlePublish. func (s *Server) transformBodyJSON(next handleFunc) handleFunc { return func(w http.ResponseWriter, r *http.Request, v *visitor) error { m, err := readJSONWithLimit[publishMessage](r.Body, s.config.MessageSizeLimit*2, false) // 2x to account for JSON format overhead if err != nil { return err } if !topicRegex.MatchString(m.Topic) { return errHTTPBadRequestTopicInvalid } if m.Message == "" { m.Message = emptyMessageBody } r.URL.Path = "/" + m.Topic r.Body = io.NopCloser(strings.NewReader(m.Message)) if m.Title != "" { r.Header.Set("X-Title", m.Title) } if m.Priority != 0 { r.Header.Set("X-Priority", fmt.Sprintf("%d", m.Priority)) } if m.Tags != nil && len(m.Tags) > 0 { r.Header.Set("X-Tags", strings.Join(m.Tags, ",")) } if m.Attach != "" { r.Header.Set("X-Attach", m.Attach) } if m.Filename != "" { r.Header.Set("X-Filename", m.Filename) } if m.Click != "" { r.Header.Set("X-Click", m.Click) } if m.Icon != "" { r.Header.Set("X-Icon", m.Icon) } if m.Markdown { r.Header.Set("X-Markdown", "yes") } if len(m.Actions) > 0 { actionsStr, err := json.Marshal(m.Actions) if err != nil { return errHTTPBadRequestMessageJSONInvalid } r.Header.Set("X-Actions", string(actionsStr)) } if m.Email != "" { r.Header.Set("X-Email", m.Email) } if m.Delay != "" { r.Header.Set("X-Delay", m.Delay) } if m.Call != "" { r.Header.Set("X-Call", m.Call) } return next(w, r, v) } } func (s *Server) transformMatrixJSON(next handleFunc) handleFunc { return func(w http.ResponseWriter, r *http.Request, v *visitor) error { newRequest, err := newRequestFromMatrixJSON(r, s.config.BaseURL, s.config.MessageSizeLimit) if err != nil { logvr(v, r).Tag(tagMatrix).Err(err).Debug("Invalid Matrix request") if e, ok := err.(*errMatrixPushkeyRejected); ok { return writeMatrixResponse(w, e.rejectedPushKey) } return err } if err := next(w, newRequest, v); err != nil { logvr(v, r).Tag(tagMatrix).Err(err).Debug("Error handling Matrix request") return err } return nil } } func (s *Server) authorizeTopicWrite(next handleFunc) handleFunc { return s.autorizeTopic(next, user.PermissionWrite) } func (s *Server) authorizeTopicRead(next handleFunc) handleFunc { return s.autorizeTopic(next, user.PermissionRead) } func (s *Server) autorizeTopic(next handleFunc, perm user.Permission) handleFunc { return func(w http.ResponseWriter, r *http.Request, v *visitor) error { if s.userManager == nil { return next(w, r, v) } topics, _, err := s.topicsFromPath(r.URL.Path) if err != nil { return err } u := v.User() for _, t := range topics { if err := s.userManager.Authorize(u, t.ID, perm); err != nil { logvr(v, r).With(t).Err(err).Debug("Access to topic %s not authorized", t.ID) return errHTTPForbidden.With(t) } } return next(w, r, v) } } // maybeAuthenticate reads the "Authorization" header and will try to authenticate the user // if it is set. // // - If auth-file is not configured, immediately return an IP-based visitor // - If the header is not set or not supported (anything non-Basic and non-Bearer), // an IP-based visitor is returned // - If the header is set, authenticate will be called to check the username/password (Basic auth), // or the token (Bearer auth), and read the user from the database // // This function will ALWAYS return a visitor, even if an error occurs (e.g. unauthorized), so // that subsequent logging calls still have a visitor context. func (s *Server) maybeAuthenticate(r *http.Request) (*visitor, error) { // Read "Authorization" header value, and exit out early if it's not set ip := extractIPAddress(r, s.config.BehindProxy) vip := s.visitor(ip, nil) if s.userManager == nil { return vip, nil } header, err := readAuthHeader(r) if err != nil { return vip, err } else if !supportedAuthHeader(header) { return vip, nil } // If we're trying to auth, check the rate limiter first if !vip.AuthAllowed() { return vip, errHTTPTooManyRequestsLimitAuthFailure // Always return visitor, even when error occurs! } u, err := s.authenticate(r, header) if err != nil { vip.AuthFailed() logr(r).Err(err).Debug("Authentication failed") return vip, errHTTPUnauthorized // Always return visitor, even when error occurs! } // Authentication with user was successful return s.visitor(ip, u), nil } // authenticate a user based on basic auth username/password (Authorization: Basic ...), or token auth (Authorization: Bearer ...). // The Authorization header can be passed as a header or the ?auth=... query param. The latter is required only to // support the WebSocket JavaScript class, which does not support passing headers during the initial request. The auth // query param is effectively doubly base64 encoded. Its format is base64(Basic base64(user:pass)). func (s *Server) authenticate(r *http.Request, header string) (user *user.User, err error) { if strings.HasPrefix(header, "Bearer") { return s.authenticateBearerAuth(r, strings.TrimSpace(strings.TrimPrefix(header, "Bearer"))) } return s.authenticateBasicAuth(r, header) } // readAuthHeader reads the raw value of the Authorization header, either from the actual HTTP header, // or from the ?auth... query parameter func readAuthHeader(r *http.Request) (string, error) { value := strings.TrimSpace(r.Header.Get("Authorization")) queryParam := readQueryParam(r, "authorization", "auth") if queryParam != "" { a, err := base64.RawURLEncoding.DecodeString(queryParam) if err != nil { return "", err } value = strings.TrimSpace(string(a)) } return value, nil } // supportedAuthHeader returns true only if the Authorization header value starts // with "Basic" or "Bearer". In particular, an empty value is not supported, and neither // are things like "WebPush", or "vapid" (see #629). func supportedAuthHeader(value string) bool { value = strings.ToLower(value) return strings.HasPrefix(value, "basic ") || strings.HasPrefix(value, "bearer ") } func (s *Server) authenticateBasicAuth(r *http.Request, value string) (user *user.User, err error) { r.Header.Set("Authorization", value) username, password, ok := r.BasicAuth() if !ok { return nil, errors.New("invalid basic auth") } else if username == "" { return s.authenticateBearerAuth(r, password) // Treat password as token } return s.userManager.Authenticate(username, password) } func (s *Server) authenticateBearerAuth(r *http.Request, token string) (*user.User, error) { u, err := s.userManager.AuthenticateToken(token) if err != nil { return nil, err } ip := extractIPAddress(r, s.config.BehindProxy) go s.userManager.EnqueueTokenUpdate(token, &user.TokenUpdate{ LastAccess: time.Now(), LastOrigin: ip, }) return u, nil } func (s *Server) visitor(ip netip.Addr, user *user.User) *visitor { s.mu.Lock() defer s.mu.Unlock() id := visitorID(ip, user) v, exists := s.visitors[id] if !exists { s.visitors[id] = newVisitor(s.config, s.messageCache, s.userManager, ip, user) return s.visitors[id] } v.Keepalive() v.SetUser(user) // Always update with the latest user, may be nil! return v } func (s *Server) writeJSON(w http.ResponseWriter, v any) error { return s.writeJSONWithContentType(w, v, "application/json") } func (s *Server) writeJSONWithContentType(w http.ResponseWriter, v any, contentType string) error { w.Header().Set("Content-Type", contentType) w.Header().Set("Access-Control-Allow-Origin", s.config.AccessControlAllowOrigin) // CORS, allow cross-origin requests if err := json.NewEncoder(w).Encode(v); err != nil { return err } return nil } func (s *Server) updateAndWriteStats(messagesCount int64) { s.mu.Lock() s.messagesHistory = append(s.messagesHistory, messagesCount) if len(s.messagesHistory) > messagesHistoryMax { s.messagesHistory = s.messagesHistory[1:] } s.mu.Unlock() go func() { if err := s.messageCache.UpdateStats(messagesCount); err != nil { log.Tag(tagManager).Err(err).Warn("Cannot write messages stats") } }() } ntfy-2.11.0/server/server.yml000066400000000000000000000421531462047176100161270ustar00rootroot00000000000000# ntfy server config file # # Please refer to the documentation at https://ntfy.sh/docs/config/ for details. # All options also support underscores (_) instead of dashes (-) to comply with the YAML spec. # Public facing base URL of the service (e.g. https://ntfy.sh or https://ntfy.example.com) # # This setting is required for any of the following features: # - attachments (to return a download URL) # - e-mail sending (for the topic URL in the email footer) # - iOS push notifications for self-hosted servers (to calculate the Firebase poll_request topic) # - Matrix Push Gateway (to validate that the pushkey is correct) # # base-url: # Listen address for the HTTP & HTTPS web server. If "listen-https" is set, you must also # set "key-file" and "cert-file". Format: []:, e.g. "1.2.3.4:8080". # # To listen on all interfaces, you may omit the IP address, e.g. ":443". # To disable HTTP, set "listen-http" to "-". # # listen-http: ":80" # listen-https: # Listen on a Unix socket, e.g. /var/lib/ntfy/ntfy.sock # This can be useful to avoid port issues on local systems, and to simplify permissions. # # listen-unix: # listen-unix-mode: # Path to the private key & cert file for the HTTPS web server. Not used if "listen-https" is not set. # # key-file: # cert-file: # If set, also publish messages to a Firebase Cloud Messaging (FCM) topic for your app. # This is optional and only required to save battery when using the Android app. # # firebase-key-file: # If "cache-file" is set, messages are cached in a local SQLite database instead of only in-memory. # This allows for service restarts without losing messages in support of the since= parameter. # # The "cache-duration" parameter defines the duration for which messages will be buffered # before they are deleted. This is required to support the "since=..." and "poll=1" parameter. # To disable the cache entirely (on-disk/in-memory), set "cache-duration" to 0. # The cache file is created automatically, provided that the correct permissions are set. # # The "cache-startup-queries" parameter allows you to run commands when the database is initialized, # e.g. to enable WAL mode (see https://phiresky.github.io/blog/2020/sqlite-performance-tuning/)). # Example: # cache-startup-queries: | # pragma journal_mode = WAL; # pragma synchronous = normal; # pragma temp_store = memory; # pragma busy_timeout = 15000; # vacuum; # # The "cache-batch-size" and "cache-batch-timeout" parameter allow enabling async batch writing # of messages. If set, messages will be queued and written to the database in batches of the given # size, or after the given timeout. This is only required for high volume servers. # # Debian/RPM package users: # Use /var/cache/ntfy/cache.db as cache file to avoid permission issues. The package # creates this folder for you. # # Check your permissions: # If you are running ntfy with systemd, make sure this cache file is owned by the # ntfy user and group by running: chown ntfy.ntfy . # # cache-file: # cache-duration: "12h" # cache-startup-queries: # cache-batch-size: 0 # cache-batch-timeout: "0ms" # If set, access to the ntfy server and API can be controlled on a granular level using # the 'ntfy user' and 'ntfy access' commands. See the --help pages for details, or check the docs. # # - auth-file is the SQLite user/access database; it is created automatically if it doesn't already exist # - auth-default-access defines the default/fallback access if no access control entry is found; it can be # set to "read-write" (default), "read-only", "write-only" or "deny-all". # - auth-startup-queries allows you to run commands when the database is initialized, e.g. to enable # WAL mode. This is similar to cache-startup-queries. See above for details. # # Debian/RPM package users: # Use /var/lib/ntfy/user.db as user database to avoid permission issues. The package # creates this folder for you. # # Check your permissions: # If you are running ntfy with systemd, make sure this user database file is owned by the # ntfy user and group by running: chown ntfy.ntfy . # # auth-file: # auth-default-access: "read-write" # auth-startup-queries: # If set, the X-Forwarded-For header is used to determine the visitor IP address # instead of the remote address of the connection. # # WARNING: If you are behind a proxy, you must set this, otherwise all visitors are rate limited # as if they are one. # # behind-proxy: false # If enabled, clients can attach files to notifications as attachments. Minimum settings to enable attachments # are "attachment-cache-dir" and "base-url". # # - attachment-cache-dir is the cache directory for attached files # - attachment-total-size-limit is the limit of the on-disk attachment cache directory (total size) # - attachment-file-size-limit is the per-file attachment size limit (e.g. 300k, 2M, 100M) # - attachment-expiry-duration is the duration after which uploaded attachments will be deleted (e.g. 3h, 20h) # # attachment-cache-dir: # attachment-total-size-limit: "5G" # attachment-file-size-limit: "15M" # attachment-expiry-duration: "3h" # If enabled, allow outgoing e-mail notifications via the 'X-Email' header. If this header is set, # messages will additionally be sent out as e-mail using an external SMTP server. # # As of today, only SMTP servers with plain text auth (or no auth at all), and STARTLS are supported. # Please also refer to the rate limiting settings below (visitor-email-limit-burst & visitor-email-limit-burst). # # - smtp-sender-addr is the hostname:port of the SMTP server # - smtp-sender-from is the e-mail address of the sender # - smtp-sender-user/smtp-sender-pass are the username and password of the SMTP user (leave blank for no auth) # # smtp-sender-addr: # smtp-sender-from: # smtp-sender-user: # smtp-sender-pass: # If enabled, ntfy will launch a lightweight SMTP server for incoming messages. Once configured, users can send # emails to a topic e-mail address to publish messages to a topic. # # - smtp-server-listen defines the IP address and port the SMTP server will listen on, e.g. :25 or 1.2.3.4:25 # - smtp-server-domain is the e-mail domain, e.g. ntfy.sh # - smtp-server-addr-prefix is an optional prefix for the e-mail addresses to prevent spam. If set to "ntfy-", # for instance, only e-mails to ntfy-$topic@ntfy.sh will be accepted. If this is not set, all emails to # $topic@ntfy.sh will be accepted (which may obviously be a spam problem). # # smtp-server-listen: # smtp-server-domain: # smtp-server-addr-prefix: # Web Push support (background notifications for browsers) # # If enabled, allows ntfy to receive push notifications, even when the ntfy web app is closed. When enabled, users # can enable background notifications in the web app. Once enabled, ntfy will forward published messages to the push # endpoint, which will then forward it to the browser. # # You must configure web-push-public/private key, web-push-file, and web-push-email-address below to enable Web Push. # Run "ntfy webpush keys" to generate the keys. # # - web-push-public-key is the generated VAPID public key, e.g. AA1234BBCCddvveekaabcdfqwertyuiopasdfghjklzxcvbnm1234567890 # - web-push-private-key is the generated VAPID private key, e.g. AA2BB1234567890abcdefzxcvbnm1234567890 # - web-push-file is a database file to keep track of browser subscription endpoints, e.g. `/var/cache/ntfy/webpush.db` # - web-push-email-address is the admin email address send to the push provider, e.g. `sysadmin@example.com` # - web-push-startup-queries is an optional list of queries to run on startup` # # web-push-public-key: # web-push-private-key: # web-push-file: # web-push-email-address: # web-push-startup-queries: # If enabled, ntfy can perform voice calls via Twilio via the "X-Call" header. # # - twilio-account is the Twilio account SID, e.g. AC12345beefbeef67890beefbeef122586 # - twilio-auth-token is the Twilio auth token, e.g. affebeef258625862586258625862586 # - twilio-phone-number is the outgoing phone number you purchased, e.g. +18775132586 # - twilio-verify-service is the Twilio Verify service SID, e.g. VA12345beefbeef67890beefbeef122586 # # twilio-account: # twilio-auth-token: # twilio-phone-number: # twilio-verify-service: # Interval in which keepalive messages are sent to the client. This is to prevent # intermediaries closing the connection for inactivity. # # Note that the Android app has a hardcoded timeout at 77s, so it should be less than that. # # keepalive-interval: "45s" # Interval in which the manager prunes old messages, deletes topics # and prints the stats. # # manager-interval: "1m" # Defines topic names that are not allowed, because they are otherwise used. There are a few default topics # that cannot be used (e.g. app, account, settings, ...). To extend the default list, define them here. # # Example: # disallowed-topics: # - about # - pricing # - contact # # disallowed-topics: # Defines the root path of the web app, or disables the web app entirely. # # Can be any simple path, e.g. "/", "/app", or "/ntfy". For backwards-compatibility reasons, # the values "app" (maps to "/"), "home" (maps to "/app"), or "disable" (maps to "") to disable # the web app entirely. # # web-root: / # Various feature flags used to control the web app, and API access, mainly around user and # account management. # # - enable-signup allows users to sign up via the web app, or API # - enable-login allows users to log in via the web app, or API # - enable-reservations allows users to reserve topics (if their tier allows it) # # enable-signup: false # enable-login: false # enable-reservations: false # Server URL of a Firebase/APNS-connected ntfy server (likely "https://ntfy.sh"). # # iOS users: # If you use the iOS ntfy app, you MUST configure this to receive timely notifications. You'll like want this: # upstream-base-url: "https://ntfy.sh" # # If set, all incoming messages will publish a "poll_request" message to the configured upstream server, containing # the message ID of the original message, instructing the iOS app to poll this server for the actual message contents. # This is to prevent the upstream server and Firebase/APNS from being able to read the message. # # - upstream-base-url is the base URL of the upstream server. Should be "https://ntfy.sh". # - upstream-access-token is the token used to authenticate with the upstream server. This is only required # if you exceed the upstream rate limits, or the uptream server requires authentication. # # upstream-base-url: # upstream-access-token: # Configures message-specific limits # # - message-size-limit defines the max size of a message body. Please note message sizes >4K are NOT RECOMMENDED, # and largely untested. If FCM and/or APNS is used, the limit should stay 4K, because their limits are around that size. # If you increase this size limit regardless, FCM and APNS will NOT work for large messages. # - message-delay-limit defines the max delay of a message when using the "Delay" header. # # message-size-limit: "4k" # message-delay-limit: "3d" # Rate limiting: Total number of topics before the server rejects new topics. # # global-topic-limit: 15000 # Rate limiting: Number of subscriptions per visitor (IP address) # # visitor-subscription-limit: 30 # Rate limiting: Allowed GET/PUT/POST requests per second, per visitor: # - visitor-request-limit-burst is the initial bucket of requests each visitor has # - visitor-request-limit-replenish is the rate at which the bucket is refilled # - visitor-request-limit-exempt-hosts is a comma-separated list of hostnames, IPs or CIDRs to be # exempt from request rate limiting. Hostnames are resolved at the time the server is started. # Example: "1.2.3.4,ntfy.example.com,8.7.6.0/24" # # visitor-request-limit-burst: 60 # visitor-request-limit-replenish: "5s" # visitor-request-limit-exempt-hosts: "" # Rate limiting: Hard daily limit of messages per visitor and day. The limit is reset # every day at midnight UTC. If the limit is not set (or set to zero), the request # limit (see above) governs the upper limit. # # visitor-message-daily-limit: 0 # Rate limiting: Allowed emails per visitor: # - visitor-email-limit-burst is the initial bucket of emails each visitor has # - visitor-email-limit-replenish is the rate at which the bucket is refilled # # visitor-email-limit-burst: 16 # visitor-email-limit-replenish: "1h" # Rate limiting: Attachment size and bandwidth limits per visitor: # - visitor-attachment-total-size-limit is the total storage limit used for attachments per visitor # - visitor-attachment-daily-bandwidth-limit is the total daily attachment download/upload traffic limit per visitor # # visitor-attachment-total-size-limit: "100M" # visitor-attachment-daily-bandwidth-limit: "500M" # Rate limiting: Enable subscriber-based rate limiting (mostly used for UnifiedPush) # # If subscriber-based rate limiting is enabled, messages published on UnifiedPush topics** (topics starting with "up") # will be counted towards the "rate visitor" of the topic. A "rate visitor" is the first subscriber to the topic. # # Once enabled, a client subscribing to UnifiedPush topics via HTTP stream, or websockets, will be automatically registered as # a "rate visitor", i.e. the visitor whose rate limits will be used when publishing on this topic. Note that setting the rate visitor # requires **read-write permission** on the topic. # # If this setting is enabled, publishing to UnifiedPush topics will lead to a HTTP 507 response if # no "rate visitor" has been previously registered. This is to avoid burning the publisher's "visitor-message-daily-limit". # # visitor-subscriber-rate-limiting: false # Payments integration via Stripe # # - stripe-secret-key is the key used for the Stripe API communication. Setting this values # enables payments in the ntfy web app (e.g. Upgrade dialog). See https://dashboard.stripe.com/apikeys. # - stripe-webhook-key is the key required to validate the authenticity of incoming webhooks from Stripe. # Webhooks are essential up keep the local database in sync with the payment provider. See https://dashboard.stripe.com/webhooks. # - billing-contact is an email address or website displayed in the "Upgrade tier" dialog to let people reach # out with billing questions. If unset, nothing will be displayed. # # stripe-secret-key: # stripe-webhook-key: # billing-contact: # Metrics # # ntfy can expose Prometheus-style metrics via a /metrics endpoint, or on a dedicated listen IP/port. # Metrics may be considered sensitive information, so before you enable them, be sure you know what you are # doing, and/or secure access to the endpoint in your reverse proxy. # # - enable-metrics enables the /metrics endpoint for the default ntfy server (i.e. HTTP, HTTPS and/or Unix socket) # - metrics-listen-http exposes the metrics endpoint via a dedicated [IP]:port. If set, this option implicitly # enables metrics as well, e.g. "10.0.1.1:9090" or ":9090" # # enable-metrics: false # metrics-listen-http: # Profiling # # ntfy can expose Go's net/http/pprof endpoints to support profiling of the ntfy server. If enabled, ntfy will listen # on a dedicated listen IP/port, which can be accessed via the web browser on http://:/debug/pprof/. # This can be helpful to expose bottlenecks, and visualize call flows. See https://pkg.go.dev/net/http/pprof for details. # # profile-listen-http: # Logging options # # By default, ntfy logs to the console (stderr), with an "info" log level, and in a human-readable text format. # ntfy supports five different log levels, can also write to a file, log as JSON, and even supports granular # log level overrides for easier debugging. Some options (log-level and log-level-overrides) can be hot reloaded # by calling "kill -HUP $pid" or "systemctl reload ntfy". # # - log-format defines the output format, can be "text" (default) or "json" # - log-file is a filename to write logs to. If this is not set, ntfy logs to stderr. # - log-level defines the default log level, can be one of "trace", "debug", "info" (default), "warn" or "error". # Be aware that "debug" (and particularly "trace") can be VERY CHATTY. Only turn them on briefly for debugging purposes. # - log-level-overrides lets you override the log level if certain fields match. This is incredibly powerful # for debugging certain parts of the system (e.g. only the account management, or only a certain visitor). # This is an array of strings in the format: # - "field=value -> level" to match a value exactly, e.g. "tag=manager -> trace" # - "field -> level" to match any value, e.g. "time_taken_ms -> debug" # Warning: Using log-level-overrides has a performance penalty. Only use it for temporary debugging. # # Check your permissions: # If you are running ntfy with systemd, make sure this log file is owned by the # ntfy user and group by running: chown ntfy.ntfy . # # Example (good for production): # log-level: info # log-format: json # log-file: /var/log/ntfy.log # # Example level overrides (for debugging, only use temporarily): # log-level-overrides: # - "tag=manager -> trace" # - "visitor_ip=1.2.3.4 -> debug" # - "time_taken_ms -> debug" # # log-level: info # log-level-overrides: # log-format: text # log-file: ntfy-2.11.0/server/server_account.go000066400000000000000000000506501462047176100174500ustar00rootroot00000000000000package server import ( "encoding/json" "errors" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" "net/http" "net/netip" "strings" "time" ) const ( syncTopicAccountSyncEvent = "sync" tokenExpiryDuration = 72 * time.Hour // Extend tokens by this much ) func (s *Server) handleAccountCreate(w http.ResponseWriter, r *http.Request, v *visitor) error { u := v.User() if !u.IsAdmin() { // u may be nil, but that's fine if !s.config.EnableSignup { return errHTTPBadRequestSignupNotEnabled } else if u != nil { return errHTTPUnauthorized // Cannot create account from user context } if !v.AccountCreationAllowed() { return errHTTPTooManyRequestsLimitAccountCreation } } newAccount, err := readJSONWithLimit[apiAccountCreateRequest](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } if existingUser, _ := s.userManager.User(newAccount.Username); existingUser != nil { return errHTTPConflictUserExists } logvr(v, r).Tag(tagAccount).Field("user_name", newAccount.Username).Info("Creating user %s", newAccount.Username) if err := s.userManager.AddUser(newAccount.Username, newAccount.Password, user.RoleUser); err != nil { if errors.Is(err, user.ErrInvalidArgument) { return errHTTPBadRequestInvalidUsername } return err } v.AccountCreated() return s.writeJSON(w, newSuccessResponse()) } func (s *Server) handleAccountGet(w http.ResponseWriter, r *http.Request, v *visitor) error { info, err := v.Info() if err != nil { return err } logvr(v, r).Tag(tagAccount).Fields(visitorExtendedInfoContext(info)).Debug("Retrieving account stats") limits, stats := info.Limits, info.Stats response := &apiAccountResponse{ Limits: &apiAccountLimits{ Basis: string(limits.Basis), Messages: limits.MessageLimit, MessagesExpiryDuration: int64(limits.MessageExpiryDuration.Seconds()), Emails: limits.EmailLimit, Calls: limits.CallLimit, Reservations: limits.ReservationsLimit, AttachmentTotalSize: limits.AttachmentTotalSizeLimit, AttachmentFileSize: limits.AttachmentFileSizeLimit, AttachmentExpiryDuration: int64(limits.AttachmentExpiryDuration.Seconds()), AttachmentBandwidth: limits.AttachmentBandwidthLimit, }, Stats: &apiAccountStats{ Messages: stats.Messages, MessagesRemaining: stats.MessagesRemaining, Emails: stats.Emails, EmailsRemaining: stats.EmailsRemaining, Calls: stats.Calls, CallsRemaining: stats.CallsRemaining, Reservations: stats.Reservations, ReservationsRemaining: stats.ReservationsRemaining, AttachmentTotalSize: stats.AttachmentTotalSize, AttachmentTotalSizeRemaining: stats.AttachmentTotalSizeRemaining, }, } u := v.User() if u != nil { response.Username = u.Name response.Role = string(u.Role) response.SyncTopic = u.SyncTopic if u.Prefs != nil { if u.Prefs.Language != nil { response.Language = *u.Prefs.Language } if u.Prefs.Notification != nil { response.Notification = u.Prefs.Notification } if u.Prefs.Subscriptions != nil { response.Subscriptions = u.Prefs.Subscriptions } } if u.Tier != nil { response.Tier = &apiAccountTier{ Code: u.Tier.Code, Name: u.Tier.Name, } } if u.Billing.StripeCustomerID != "" { response.Billing = &apiAccountBilling{ Customer: true, Subscription: u.Billing.StripeSubscriptionID != "", Status: string(u.Billing.StripeSubscriptionStatus), Interval: string(u.Billing.StripeSubscriptionInterval), PaidUntil: u.Billing.StripeSubscriptionPaidUntil.Unix(), CancelAt: u.Billing.StripeSubscriptionCancelAt.Unix(), } } if s.config.EnableReservations { reservations, err := s.userManager.Reservations(u.Name) if err != nil { return err } if len(reservations) > 0 { response.Reservations = make([]*apiAccountReservation, 0) for _, r := range reservations { response.Reservations = append(response.Reservations, &apiAccountReservation{ Topic: r.Topic, Everyone: r.Everyone.String(), }) } } } tokens, err := s.userManager.Tokens(u.ID) if err != nil { return err } if len(tokens) > 0 { response.Tokens = make([]*apiAccountTokenResponse, 0) for _, t := range tokens { var lastOrigin string if t.LastOrigin != netip.IPv4Unspecified() { lastOrigin = t.LastOrigin.String() } response.Tokens = append(response.Tokens, &apiAccountTokenResponse{ Token: t.Value, Label: t.Label, LastAccess: t.LastAccess.Unix(), LastOrigin: lastOrigin, Expires: t.Expires.Unix(), }) } } if s.config.TwilioAccount != "" { phoneNumbers, err := s.userManager.PhoneNumbers(u.ID) if err != nil { return err } if len(phoneNumbers) > 0 { response.PhoneNumbers = phoneNumbers } } } else { response.Username = user.Everyone response.Role = string(user.RoleAnonymous) } return s.writeJSON(w, response) } func (s *Server) handleAccountDelete(w http.ResponseWriter, r *http.Request, v *visitor) error { req, err := readJSONWithLimit[apiAccountDeleteRequest](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } else if req.Password == "" { return errHTTPBadRequest } u := v.User() if _, err := s.userManager.Authenticate(u.Name, req.Password); err != nil { return errHTTPBadRequestIncorrectPasswordConfirmation } if s.webPush != nil && u.ID != "" { if err := s.webPush.RemoveSubscriptionsByUserID(u.ID); err != nil { logvr(v, r).Err(err).Warn("Error removing web push subscriptions for %s", u.Name) } } if u.Billing.StripeSubscriptionID != "" { logvr(v, r).Tag(tagStripe).Info("Canceling billing subscription for user %s", u.Name) if _, err := s.stripe.CancelSubscription(u.Billing.StripeSubscriptionID); err != nil { return err } } if err := s.maybeRemoveMessagesAndExcessReservations(r, v, u, 0); err != nil { return err } logvr(v, r).Tag(tagAccount).Info("Marking user %s as deleted", u.Name) if err := s.userManager.MarkUserRemoved(u); err != nil { return err } return s.writeJSON(w, newSuccessResponse()) } func (s *Server) handleAccountPasswordChange(w http.ResponseWriter, r *http.Request, v *visitor) error { req, err := readJSONWithLimit[apiAccountPasswordChangeRequest](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } else if req.Password == "" || req.NewPassword == "" { return errHTTPBadRequest } u := v.User() if _, err := s.userManager.Authenticate(u.Name, req.Password); err != nil { return errHTTPBadRequestIncorrectPasswordConfirmation } logvr(v, r).Tag(tagAccount).Debug("Changing password for user %s", u.Name) if err := s.userManager.ChangePassword(u.Name, req.NewPassword); err != nil { return err } return s.writeJSON(w, newSuccessResponse()) } func (s *Server) handleAccountTokenCreate(w http.ResponseWriter, r *http.Request, v *visitor) error { req, err := readJSONWithLimit[apiAccountTokenIssueRequest](r.Body, jsonBodyBytesLimit, true) // Allow empty body! if err != nil { return err } var label string if req.Label != nil { label = *req.Label } expires := time.Now().Add(tokenExpiryDuration) if req.Expires != nil { expires = time.Unix(*req.Expires, 0) } u := v.User() logvr(v, r). Tag(tagAccount). Fields(log.Context{ "token_label": label, "token_expires": expires, }). Debug("Creating token for user %s", u.Name) token, err := s.userManager.CreateToken(u.ID, label, expires, v.IP()) if err != nil { return err } response := &apiAccountTokenResponse{ Token: token.Value, Label: token.Label, LastAccess: token.LastAccess.Unix(), LastOrigin: token.LastOrigin.String(), Expires: token.Expires.Unix(), } return s.writeJSON(w, response) } func (s *Server) handleAccountTokenUpdate(w http.ResponseWriter, r *http.Request, v *visitor) error { u := v.User() req, err := readJSONWithLimit[apiAccountTokenUpdateRequest](r.Body, jsonBodyBytesLimit, true) // Allow empty body! if err != nil { return err } else if req.Token == "" { req.Token = u.Token if req.Token == "" { return errHTTPBadRequestNoTokenProvided } } var expires *time.Time if req.Expires != nil { expires = util.Time(time.Unix(*req.Expires, 0)) } else if req.Label == nil { expires = util.Time(time.Now().Add(tokenExpiryDuration)) // If label/expires not set, extend token by 72 hours } logvr(v, r). Tag(tagAccount). Fields(log.Context{ "token_label": req.Label, "token_expires": expires, }). Debug("Updating token for user %s as deleted", u.Name) token, err := s.userManager.ChangeToken(u.ID, req.Token, req.Label, expires) if err != nil { return err } response := &apiAccountTokenResponse{ Token: token.Value, Label: token.Label, LastAccess: token.LastAccess.Unix(), LastOrigin: token.LastOrigin.String(), Expires: token.Expires.Unix(), } return s.writeJSON(w, response) } func (s *Server) handleAccountTokenDelete(w http.ResponseWriter, r *http.Request, v *visitor) error { u := v.User() token := readParam(r, "X-Token", "Token") // DELETEs cannot have a body, and we don't want it in the path if token == "" { token = u.Token if token == "" { return errHTTPBadRequestNoTokenProvided } } if err := s.userManager.RemoveToken(u.ID, token); err != nil { return err } logvr(v, r). Tag(tagAccount). Field("token", token). Debug("Deleted token for user %s", u.Name) return s.writeJSON(w, newSuccessResponse()) } func (s *Server) handleAccountSettingsChange(w http.ResponseWriter, r *http.Request, v *visitor) error { newPrefs, err := readJSONWithLimit[user.Prefs](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } u := v.User() if u.Prefs == nil { u.Prefs = &user.Prefs{} } prefs := u.Prefs if newPrefs.Language != nil { prefs.Language = newPrefs.Language } if newPrefs.Notification != nil { if prefs.Notification == nil { prefs.Notification = &user.NotificationPrefs{} } if newPrefs.Notification.DeleteAfter != nil { prefs.Notification.DeleteAfter = newPrefs.Notification.DeleteAfter } if newPrefs.Notification.Sound != nil { prefs.Notification.Sound = newPrefs.Notification.Sound } if newPrefs.Notification.MinPriority != nil { prefs.Notification.MinPriority = newPrefs.Notification.MinPriority } } logvr(v, r).Tag(tagAccount).Debug("Changing account settings for user %s", u.Name) if err := s.userManager.ChangeSettings(u.ID, prefs); err != nil { return err } return s.writeJSON(w, newSuccessResponse()) } func (s *Server) handleAccountSubscriptionAdd(w http.ResponseWriter, r *http.Request, v *visitor) error { newSubscription, err := readJSONWithLimit[user.Subscription](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } u := v.User() prefs := u.Prefs if prefs == nil { prefs = &user.Prefs{} } for _, subscription := range prefs.Subscriptions { if newSubscription.BaseURL == subscription.BaseURL && newSubscription.Topic == subscription.Topic { return errHTTPConflictSubscriptionExists } } prefs.Subscriptions = append(prefs.Subscriptions, newSubscription) logvr(v, r).Tag(tagAccount).With(newSubscription).Debug("Adding subscription for user %s", u.Name) if err := s.userManager.ChangeSettings(u.ID, prefs); err != nil { return err } return s.writeJSON(w, newSubscription) } func (s *Server) handleAccountSubscriptionChange(w http.ResponseWriter, r *http.Request, v *visitor) error { updatedSubscription, err := readJSONWithLimit[user.Subscription](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } u := v.User() prefs := u.Prefs if prefs == nil || prefs.Subscriptions == nil { return errHTTPNotFound } var subscription *user.Subscription for _, sub := range prefs.Subscriptions { if sub.BaseURL == updatedSubscription.BaseURL && sub.Topic == updatedSubscription.Topic { sub.DisplayName = updatedSubscription.DisplayName subscription = sub break } } if subscription == nil { return errHTTPNotFound } logvr(v, r).Tag(tagAccount).With(subscription).Debug("Changing subscription for user %s", u.Name) if err := s.userManager.ChangeSettings(u.ID, prefs); err != nil { return err } return s.writeJSON(w, subscription) } func (s *Server) handleAccountSubscriptionDelete(w http.ResponseWriter, r *http.Request, v *visitor) error { // DELETEs cannot have a body, and we don't want it in the path deleteBaseURL := readParam(r, "X-BaseURL", "BaseURL") deleteTopic := readParam(r, "X-Topic", "Topic") u := v.User() prefs := u.Prefs if prefs == nil || prefs.Subscriptions == nil { return nil } newSubscriptions := make([]*user.Subscription, 0) for _, sub := range u.Prefs.Subscriptions { if sub.BaseURL == deleteBaseURL && sub.Topic == deleteTopic { logvr(v, r).Tag(tagAccount).With(sub).Debug("Removing subscription for user %s", u.Name) } else { newSubscriptions = append(newSubscriptions, sub) } } if len(newSubscriptions) < len(prefs.Subscriptions) { prefs.Subscriptions = newSubscriptions if err := s.userManager.ChangeSettings(u.ID, prefs); err != nil { return err } } return s.writeJSON(w, newSuccessResponse()) } // handleAccountReservationAdd adds a topic reservation for the logged-in user, but only if the user has a tier // with enough remaining reservations left, or if the user is an admin. Admins can always reserve a topic, unless // it is already reserved by someone else. func (s *Server) handleAccountReservationAdd(w http.ResponseWriter, r *http.Request, v *visitor) error { u := v.User() req, err := readJSONWithLimit[apiAccountReservationRequest](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } if !topicRegex.MatchString(req.Topic) { return errHTTPBadRequestTopicInvalid } everyone, err := user.ParsePermission(req.Everyone) if err != nil { return errHTTPBadRequestPermissionInvalid } // Check if we are allowed to reserve this topic if u.IsUser() && u.Tier == nil { return errHTTPUnauthorized } else if err := s.userManager.AllowReservation(u.Name, req.Topic); err != nil { return errHTTPConflictTopicReserved } else if u.IsUser() { hasReservation, err := s.userManager.HasReservation(u.Name, req.Topic) if err != nil { return err } if !hasReservation { reservations, err := s.userManager.ReservationsCount(u.Name) if err != nil { return err } else if reservations >= u.Tier.ReservationLimit { return errHTTPTooManyRequestsLimitReservations } } } // Actually add the reservation logvr(v, r). Tag(tagAccount). Fields(log.Context{ "topic": req.Topic, "everyone": everyone.String(), }). Debug("Adding topic reservation") if err := s.userManager.AddReservation(u.Name, req.Topic, everyone); err != nil { return err } // Kill existing subscribers t, err := s.topicFromID(req.Topic) if err != nil { return err } t.CancelSubscribersExceptUser(u.ID) return s.writeJSON(w, newSuccessResponse()) } // handleAccountReservationDelete deletes a topic reservation if it is owned by the current user func (s *Server) handleAccountReservationDelete(w http.ResponseWriter, r *http.Request, v *visitor) error { matches := apiAccountReservationSingleRegex.FindStringSubmatch(r.URL.Path) if len(matches) != 2 { return errHTTPInternalErrorInvalidPath } topic := matches[1] if !topicRegex.MatchString(topic) { return errHTTPBadRequestTopicInvalid } u := v.User() authorized, err := s.userManager.HasReservation(u.Name, topic) if err != nil { return err } else if !authorized { return errHTTPUnauthorized } deleteMessages := readBoolParam(r, false, "X-Delete-Messages", "Delete-Messages") logvr(v, r). Tag(tagAccount). Fields(log.Context{ "topic": topic, "delete_messages": deleteMessages, }). Debug("Removing topic reservation") if err := s.userManager.RemoveReservations(u.Name, topic); err != nil { return err } if deleteMessages { if err := s.messageCache.ExpireMessages(topic); err != nil { return err } s.pruneMessages() } return s.writeJSON(w, newSuccessResponse()) } // maybeRemoveMessagesAndExcessReservations deletes topic reservations for the given user (if too many for tier), // and marks associated messages for the topics as deleted. This also eventually deletes attachments. // The process relies on the manager to perform the actual deletions (see runManager). func (s *Server) maybeRemoveMessagesAndExcessReservations(r *http.Request, v *visitor, u *user.User, reservationsLimit int64) error { reservations, err := s.userManager.Reservations(u.Name) if err != nil { return err } else if int64(len(reservations)) <= reservationsLimit { logvr(v, r).Tag(tagAccount).Debug("No excess reservations to remove") return nil } topics := make([]string, 0) for i := int64(len(reservations)) - 1; i >= reservationsLimit; i-- { topics = append(topics, reservations[i].Topic) } logvr(v, r).Tag(tagAccount).Info("Removing excess reservations for topics %s", strings.Join(topics, ", ")) if err := s.userManager.RemoveReservations(u.Name, topics...); err != nil { return err } if err := s.messageCache.ExpireMessages(topics...); err != nil { return err } go s.pruneMessages() return nil } func (s *Server) handleAccountPhoneNumberVerify(w http.ResponseWriter, r *http.Request, v *visitor) error { u := v.User() req, err := readJSONWithLimit[apiAccountPhoneNumberVerifyRequest](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } else if !phoneNumberRegex.MatchString(req.Number) { return errHTTPBadRequestPhoneNumberInvalid } else if req.Channel != "sms" && req.Channel != "call" { return errHTTPBadRequestPhoneNumberVerifyChannelInvalid } // Check user is allowed to add phone numbers if u == nil || (u.IsUser() && u.Tier == nil) { return errHTTPUnauthorized } else if u.IsUser() && u.Tier.CallLimit == 0 { return errHTTPUnauthorized } // Check if phone number exists phoneNumbers, err := s.userManager.PhoneNumbers(u.ID) if err != nil { return err } else if util.Contains(phoneNumbers, req.Number) { return errHTTPConflictPhoneNumberExists } // Actually add the unverified number, and send verification logvr(v, r).Tag(tagAccount).Field("phone_number", req.Number).Debug("Sending phone number verification") if err := s.verifyPhoneNumber(v, r, req.Number, req.Channel); err != nil { return err } return s.writeJSON(w, newSuccessResponse()) } func (s *Server) handleAccountPhoneNumberAdd(w http.ResponseWriter, r *http.Request, v *visitor) error { u := v.User() req, err := readJSONWithLimit[apiAccountPhoneNumberAddRequest](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } if !phoneNumberRegex.MatchString(req.Number) { return errHTTPBadRequestPhoneNumberInvalid } if err := s.verifyPhoneNumberCheck(v, r, req.Number, req.Code); err != nil { return err } logvr(v, r).Tag(tagAccount).Field("phone_number", req.Number).Debug("Adding phone number as verified") if err := s.userManager.AddPhoneNumber(u.ID, req.Number); err != nil { return err } return s.writeJSON(w, newSuccessResponse()) } func (s *Server) handleAccountPhoneNumberDelete(w http.ResponseWriter, r *http.Request, v *visitor) error { u := v.User() req, err := readJSONWithLimit[apiAccountPhoneNumberAddRequest](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } if !phoneNumberRegex.MatchString(req.Number) { return errHTTPBadRequestPhoneNumberInvalid } logvr(v, r).Tag(tagAccount).Field("phone_number", req.Number).Debug("Deleting phone number") if err := s.userManager.RemovePhoneNumber(u.ID, req.Number); err != nil { return err } return s.writeJSON(w, newSuccessResponse()) } // publishSyncEventAsync kicks of a Go routine to publish a sync message to the user's sync topic func (s *Server) publishSyncEventAsync(v *visitor) { go func() { if err := s.publishSyncEvent(v); err != nil { logv(v).Err(err).Trace("Error publishing to user's sync topic") } }() } // publishSyncEvent publishes a sync message to the user's sync topic func (s *Server) publishSyncEvent(v *visitor) error { u := v.User() if u == nil || u.SyncTopic == "" { return nil } logv(v).Field("sync_topic", u.SyncTopic).Trace("Publishing sync event to user's sync topic") syncTopic, err := s.topicFromID(u.SyncTopic) if err != nil { return err } messageBytes, err := json.Marshal(&apiAccountSyncTopicResponse{Event: syncTopicAccountSyncEvent}) if err != nil { return err } m := newDefaultMessage(syncTopic.ID, string(messageBytes)) if err := syncTopic.Publish(v, m); err != nil { return err } return nil } ntfy-2.11.0/server/server_account_test.go000066400000000000000000000701511462047176100205050ustar00rootroot00000000000000package server import ( "fmt" "github.com/stretchr/testify/require" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" "io" "net/netip" "path/filepath" "strings" "testing" "time" ) func TestAccount_Signup_Success(t *testing.T) { conf := newTestConfigWithAuthFile(t) conf.EnableSignup = true s := newTestServer(t, conf) defer s.closeDatabases() rr := request(t, s, "POST", "/v1/account", `{"username":"phil", "password":"mypass"}`, nil) require.Equal(t, 200, rr.Code) rr = request(t, s, "POST", "/v1/account/token", "", map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) token, _ := util.UnmarshalJSON[apiAccountTokenResponse](io.NopCloser(rr.Body)) require.NotEmpty(t, token.Token) require.True(t, time.Now().Add(71*time.Hour).Unix() < token.Expires) require.True(t, strings.HasPrefix(token.Token, "tk_")) require.Equal(t, "9.9.9.9", token.LastOrigin) require.True(t, token.LastAccess > time.Now().Unix()-2) require.True(t, token.LastAccess < time.Now().Unix()+2) rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BearerAuth(token.Token), }) require.Equal(t, 200, rr.Code) account, _ := util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, "phil", account.Username) require.Equal(t, "user", account.Role) rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("", token.Token), // We allow a fake basic auth to make curl-ing easier (curl -u :) }) require.Equal(t, 200, rr.Code) account, _ = util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, "phil", account.Username) } func TestAccount_Signup_UserExists(t *testing.T) { conf := newTestConfigWithAuthFile(t) conf.EnableSignup = true s := newTestServer(t, conf) defer s.closeDatabases() rr := request(t, s, "POST", "/v1/account", `{"username":"phil", "password":"mypass"}`, nil) require.Equal(t, 200, rr.Code) rr = request(t, s, "POST", "/v1/account", `{"username":"phil", "password":"mypass"}`, nil) require.Equal(t, 409, rr.Code) require.Equal(t, 40901, toHTTPError(t, rr.Body.String()).Code) } func TestAccount_Signup_LimitReached(t *testing.T) { conf := newTestConfigWithAuthFile(t) conf.EnableSignup = true s := newTestServer(t, conf) defer s.closeDatabases() for i := 0; i < 3; i++ { rr := request(t, s, "POST", "/v1/account", fmt.Sprintf(`{"username":"phil%d", "password":"mypass"}`, i), nil) require.Equal(t, 200, rr.Code) } rr := request(t, s, "POST", "/v1/account", `{"username":"thiswontwork", "password":"mypass"}`, nil) require.Equal(t, 429, rr.Code) require.Equal(t, 42906, toHTTPError(t, rr.Body.String()).Code) } func TestAccount_Signup_AsUser(t *testing.T) { conf := newTestConfigWithAuthFile(t) conf.EnableSignup = true s := newTestServer(t, conf) defer s.closeDatabases() log.Info("1") require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleAdmin)) log.Info("2") require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) log.Info("3") rr := request(t, s, "POST", "/v1/account", `{"username":"emma", "password":"emma"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) log.Info("4") rr = request(t, s, "POST", "/v1/account", `{"username":"marian", "password":"marian"}`, map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 401, rr.Code) } func TestAccount_Signup_Disabled(t *testing.T) { conf := newTestConfigWithAuthFile(t) conf.EnableSignup = false s := newTestServer(t, conf) defer s.closeDatabases() rr := request(t, s, "POST", "/v1/account", `{"username":"phil", "password":"mypass"}`, nil) require.Equal(t, 400, rr.Code) require.Equal(t, 40022, toHTTPError(t, rr.Body.String()).Code) } func TestAccount_Signup_Rate_Limit(t *testing.T) { conf := newTestConfigWithAuthFile(t) conf.EnableSignup = true s := newTestServer(t, conf) for i := 0; i < 3; i++ { rr := request(t, s, "POST", "/v1/account", fmt.Sprintf(`{"username":"phil%d", "password":"mypass"}`, i), nil) require.Equal(t, 200, rr.Code, "failed on iteration %d", i) } rr := request(t, s, "POST", "/v1/account", `{"username":"notallowed", "password":"mypass"}`, nil) require.Equal(t, 429, rr.Code) require.Equal(t, 42906, toHTTPError(t, rr.Body.String()).Code) } func TestAccount_Get_Anonymous(t *testing.T) { conf := newTestConfigWithAuthFile(t) conf.VisitorRequestLimitReplenish = 86 * time.Second conf.VisitorEmailLimitReplenish = time.Hour conf.VisitorAttachmentTotalSizeLimit = 5123 conf.AttachmentFileSizeLimit = 512 s := newTestServer(t, conf) s.smtpSender = &testMailer{} defer s.closeDatabases() rr := request(t, s, "GET", "/v1/account", "", nil) require.Equal(t, 200, rr.Code) account, _ := util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, "*", account.Username) require.Equal(t, string(user.RoleAnonymous), account.Role) require.Equal(t, "ip", account.Limits.Basis) require.Equal(t, int64(1004), account.Limits.Messages) // I hate this require.Equal(t, int64(24), account.Limits.Emails) // I hate this require.Equal(t, int64(5123), account.Limits.AttachmentTotalSize) require.Equal(t, int64(512), account.Limits.AttachmentFileSize) require.Equal(t, int64(0), account.Stats.Messages) require.Equal(t, int64(1004), account.Stats.MessagesRemaining) require.Equal(t, int64(0), account.Stats.Emails) require.Equal(t, int64(24), account.Stats.EmailsRemaining) require.Equal(t, int64(0), account.Stats.Calls) require.Equal(t, int64(0), account.Stats.CallsRemaining) rr = request(t, s, "POST", "/mytopic", "", nil) require.Equal(t, 200, rr.Code) rr = request(t, s, "POST", "/mytopic", "", map[string]string{ "Email": "phil@ntfy.sh", }) require.Equal(t, 200, rr.Code) rr = request(t, s, "GET", "/v1/account", "", nil) require.Equal(t, 200, rr.Code) account, _ = util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, int64(2), account.Stats.Messages) require.Equal(t, int64(1002), account.Stats.MessagesRemaining) require.Equal(t, int64(1), account.Stats.Emails) require.Equal(t, int64(23), account.Stats.EmailsRemaining) } func TestAccount_ChangeSettings(t *testing.T) { s := newTestServer(t, newTestConfigWithAuthFile(t)) defer s.closeDatabases() require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) u, _ := s.userManager.User("phil") token, _ := s.userManager.CreateToken(u.ID, "", time.Unix(0, 0), netip.IPv4Unspecified()) rr := request(t, s, "PATCH", "/v1/account/settings", `{"notification": {"sound": "juntos"},"ignored": true}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) rr = request(t, s, "PATCH", "/v1/account/settings", `{"notification": {"delete_after": 86400}, "language": "de"}`, map[string]string{ "Authorization": util.BearerAuth(token.Value), }) require.Equal(t, 200, rr.Code) rr = request(t, s, "GET", "/v1/account", `{"username":"marian", "password":"marian"}`, map[string]string{ "Authorization": util.BearerAuth(token.Value), }) require.Equal(t, 200, rr.Code) account, _ := util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, "de", account.Language) require.Equal(t, util.Int(86400), account.Notification.DeleteAfter) require.Equal(t, util.String("juntos"), account.Notification.Sound) require.Nil(t, account.Notification.MinPriority) // Not set } func TestAccount_Subscription_AddUpdateDelete(t *testing.T) { s := newTestServer(t, newTestConfigWithAuthFile(t)) defer s.closeDatabases() require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) rr := request(t, s, "POST", "/v1/account/subscription", `{"base_url": "http://abc.com", "topic": "def"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) account, _ := util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, 1, len(account.Subscriptions)) require.Equal(t, "http://abc.com", account.Subscriptions[0].BaseURL) require.Equal(t, "def", account.Subscriptions[0].Topic) require.Nil(t, account.Subscriptions[0].DisplayName) rr = request(t, s, "PATCH", "/v1/account/subscription", `{"base_url": "http://abc.com", "topic": "def", "display_name": "ding dong"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) account, _ = util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, 1, len(account.Subscriptions)) require.Equal(t, "http://abc.com", account.Subscriptions[0].BaseURL) require.Equal(t, "def", account.Subscriptions[0].Topic) require.Equal(t, util.String("ding dong"), account.Subscriptions[0].DisplayName) rr = request(t, s, "DELETE", "/v1/account/subscription", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), "X-BaseURL": "http://abc.com", "X-Topic": "def", }) require.Equal(t, 200, rr.Code) rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) account, _ = util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, 0, len(account.Subscriptions)) } func TestAccount_ChangePassword(t *testing.T) { s := newTestServer(t, newTestConfigWithAuthFile(t)) defer s.closeDatabases() require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) rr := request(t, s, "POST", "/v1/account/password", `{"password": "WRONG", "new_password": ""}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 400, rr.Code) rr = request(t, s, "POST", "/v1/account/password", `{"password": "WRONG", "new_password": "new password"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 400, rr.Code) require.Equal(t, 40026, toHTTPError(t, rr.Body.String()).Code) rr = request(t, s, "POST", "/v1/account/password", `{"password": "phil", "new_password": "new password"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 401, rr.Code) rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "new password"), }) require.Equal(t, 200, rr.Code) } func TestAccount_ChangePassword_NoAccount(t *testing.T) { s := newTestServer(t, newTestConfigWithAuthFile(t)) defer s.closeDatabases() rr := request(t, s, "POST", "/v1/account/password", `{"password": "new password"}`, nil) require.Equal(t, 401, rr.Code) } func TestAccount_ExtendToken(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfigWithAuthFile(t)) defer s.closeDatabases() require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) rr := request(t, s, "POST", "/v1/account/token", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) token, err := util.UnmarshalJSON[apiAccountTokenResponse](io.NopCloser(rr.Body)) require.Nil(t, err) time.Sleep(time.Second) rr = request(t, s, "PATCH", "/v1/account/token", "", map[string]string{ "Authorization": util.BearerAuth(token.Token), }) require.Equal(t, 200, rr.Code) extendedToken, err := util.UnmarshalJSON[apiAccountTokenResponse](io.NopCloser(rr.Body)) require.Nil(t, err) require.Equal(t, token.Token, extendedToken.Token) require.True(t, token.Expires < extendedToken.Expires) expires := time.Now().Add(999 * time.Hour) body := fmt.Sprintf(`{"token":"%s", "label":"some label", "expires": %d}`, token.Token, expires.Unix()) rr = request(t, s, "PATCH", "/v1/account/token", body, map[string]string{ "Authorization": util.BearerAuth(token.Token), }) require.Equal(t, 200, rr.Code) token, err = util.UnmarshalJSON[apiAccountTokenResponse](io.NopCloser(rr.Body)) require.Nil(t, err) require.Equal(t, "some label", token.Label) require.Equal(t, expires.Unix(), token.Expires) } func TestAccount_ExtendToken_NoTokenProvided(t *testing.T) { s := newTestServer(t, newTestConfigWithAuthFile(t)) defer s.closeDatabases() require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) rr := request(t, s, "PATCH", "/v1/account/token", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), // Not Bearer! }) require.Equal(t, 400, rr.Code) require.Equal(t, 40023, toHTTPError(t, rr.Body.String()).Code) } func TestAccount_DeleteToken(t *testing.T) { s := newTestServer(t, newTestConfigWithAuthFile(t)) defer s.closeDatabases() require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) rr := request(t, s, "POST", "/v1/account/token", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) token, err := util.UnmarshalJSON[apiAccountTokenResponse](io.NopCloser(rr.Body)) require.Nil(t, err) require.True(t, token.Expires > time.Now().Add(71*time.Hour).Unix()) // Delete token failure (using basic auth) rr = request(t, s, "DELETE", "/v1/account/token", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), // Not Bearer! }) require.Equal(t, 400, rr.Code) require.Equal(t, 40023, toHTTPError(t, rr.Body.String()).Code) // Delete token with wrong token rr = request(t, s, "DELETE", "/v1/account/token", "", map[string]string{ "Authorization": util.BearerAuth("invalidtoken"), }) require.Equal(t, 401, rr.Code) // Delete token with correct token rr = request(t, s, "DELETE", "/v1/account/token", "", map[string]string{ "Authorization": util.BearerAuth(token.Token), }) require.Equal(t, 200, rr.Code) // Cannot get account anymore rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BearerAuth(token.Token), }) require.Equal(t, 401, rr.Code) } func TestAccount_Delete_Success(t *testing.T) { conf := newTestConfigWithAuthFile(t) conf.EnableSignup = true s := newTestServer(t, conf) rr := request(t, s, "POST", "/v1/account", `{"username":"phil", "password":"mypass"}`, nil) require.Equal(t, 200, rr.Code) rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) rr = request(t, s, "DELETE", "/v1/account", `{"password":"mypass"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) // Account was marked deleted rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 401, rr.Code) // Cannot re-create account, since still exists rr = request(t, s, "POST", "/v1/account", `{"username":"phil", "password":"mypass"}`, nil) require.Equal(t, 409, rr.Code) } func TestAccount_Delete_Not_Allowed(t *testing.T) { conf := newTestConfigWithAuthFile(t) conf.EnableSignup = true s := newTestServer(t, conf) rr := request(t, s, "POST", "/v1/account", `{"username":"phil", "password":"mypass"}`, nil) require.Equal(t, 200, rr.Code) rr = request(t, s, "DELETE", "/v1/account", "", nil) require.Equal(t, 401, rr.Code) rr = request(t, s, "DELETE", "/v1/account", `{"password":"mypass"}`, nil) require.Equal(t, 401, rr.Code) rr = request(t, s, "DELETE", "/v1/account", `{"password":"INCORRECT"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 400, rr.Code) require.Equal(t, 40026, toHTTPError(t, rr.Body.String()).Code) } func TestAccount_Reservation_AddWithoutTierFails(t *testing.T) { conf := newTestConfigWithAuthFile(t) conf.EnableSignup = true s := newTestServer(t, conf) rr := request(t, s, "POST", "/v1/account", `{"username":"phil", "password":"mypass"}`, nil) require.Equal(t, 200, rr.Code) rr = request(t, s, "POST", "/v1/account/reservation", `{"topic":"mytopic", "everyone":"deny-all"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 401, rr.Code) } func TestAccount_Reservation_AddAdminSuccess(t *testing.T) { conf := newTestConfigWithAuthFile(t) conf.EnableSignup = true s := newTestServer(t, conf) // A user, an admin, and a reservation walk into a bar require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "pro", ReservationLimit: 2, })) require.Nil(t, s.userManager.AddUser("noadmin1", "pass", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("noadmin1", "pro")) require.Nil(t, s.userManager.AddReservation("noadmin1", "mytopic", user.PermissionDenyAll)) require.Nil(t, s.userManager.AddUser("noadmin2", "pass", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("noadmin2", "pro")) require.Nil(t, s.userManager.AddUser("phil", "adminpass", user.RoleAdmin)) // Admin can reserve topic rr := request(t, s, "POST", "/v1/account/reservation", `{"topic":"sometopic","everyone":"deny-all"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "adminpass"), }) require.Equal(t, 200, rr.Code) // User cannot reserve already reserved topic rr = request(t, s, "POST", "/v1/account/reservation", `{"topic":"mytopic","everyone":"deny-all"}`, map[string]string{ "Authorization": util.BasicAuth("noadmin2", "pass"), }) require.Equal(t, 409, rr.Code) // Admin cannot reserve already reserved topic rr = request(t, s, "POST", "/v1/account/reservation", `{"topic":"mytopic","everyone":"deny-all"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "adminpass"), }) require.Equal(t, 409, rr.Code) reservations, err := s.userManager.Reservations("phil") require.Nil(t, err) require.Equal(t, 1, len(reservations)) require.Equal(t, "sometopic", reservations[0].Topic) reservations, err = s.userManager.Reservations("noadmin1") require.Nil(t, err) require.Equal(t, 1, len(reservations)) require.Equal(t, "mytopic", reservations[0].Topic) reservations, err = s.userManager.Reservations("noadmin2") require.Nil(t, err) require.Equal(t, 0, len(reservations)) } func TestAccount_Reservation_AddRemoveUserWithTierSuccess(t *testing.T) { conf := newTestConfigWithAuthFile(t) conf.EnableSignup = true conf.EnableReservations = true conf.TwilioAccount = "dummy" s := newTestServer(t, conf) // Create user rr := request(t, s, "POST", "/v1/account", `{"username":"phil", "password":"mypass"}`, nil) require.Equal(t, 200, rr.Code) // Create a tier require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "pro", MessageLimit: 123, MessageExpiryDuration: 86400 * time.Second, EmailLimit: 32, CallLimit: 10, ReservationLimit: 2, AttachmentFileSizeLimit: 1231231, AttachmentTotalSizeLimit: 123123, AttachmentExpiryDuration: 10800 * time.Second, AttachmentBandwidthLimit: 21474836480, })) require.Nil(t, s.userManager.ChangeTier("phil", "pro")) // Reserve two topics rr = request(t, s, "POST", "/v1/account/reservation", `{"topic": "mytopic", "everyone":"deny-all"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) rr = request(t, s, "POST", "/v1/account/reservation", `{"topic": "another", "everyone":"read-only"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) // Trying to reserve a third should fail rr = request(t, s, "POST", "/v1/account/reservation", `{"topic": "yet-another", "everyone":"deny-all"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 429, rr.Code) // Modify existing should still work rr = request(t, s, "POST", "/v1/account/reservation", `{"topic": "another", "everyone":"write-only"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) // Check account result rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) account, _ := util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, "pro", account.Tier.Code) require.Equal(t, int64(123), account.Limits.Messages) require.Equal(t, int64(86400), account.Limits.MessagesExpiryDuration) require.Equal(t, int64(32), account.Limits.Emails) require.Equal(t, int64(10), account.Limits.Calls) require.Equal(t, int64(2), account.Limits.Reservations) require.Equal(t, int64(1231231), account.Limits.AttachmentFileSize) require.Equal(t, int64(123123), account.Limits.AttachmentTotalSize) require.Equal(t, int64(10800), account.Limits.AttachmentExpiryDuration) require.Equal(t, int64(21474836480), account.Limits.AttachmentBandwidth) require.Equal(t, 2, len(account.Reservations)) require.Equal(t, "another", account.Reservations[0].Topic) require.Equal(t, "write-only", account.Reservations[0].Everyone) require.Equal(t, "mytopic", account.Reservations[1].Topic) require.Equal(t, "deny-all", account.Reservations[1].Everyone) // Delete and re-check rr = request(t, s, "DELETE", "/v1/account/reservation/another", "", map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) account, _ = util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, 1, len(account.Reservations)) require.Equal(t, "mytopic", account.Reservations[0].Topic) } func TestAccount_Reservation_PublishByAnonymousFails(t *testing.T) { conf := newTestConfigWithAuthFile(t) conf.AuthDefault = user.PermissionReadWrite conf.EnableSignup = true s := newTestServer(t, conf) // Create user with tier rr := request(t, s, "POST", "/v1/account", `{"username":"phil", "password":"mypass"}`, nil) require.Equal(t, 200, rr.Code) require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "pro", MessageLimit: 20, ReservationLimit: 2, })) require.Nil(t, s.userManager.ChangeTier("phil", "pro")) // Reserve a topic rr = request(t, s, "POST", "/v1/account/reservation", `{"topic": "mytopic", "everyone":"deny-all"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) // Publish a message rr = request(t, s, "POST", "/mytopic", `Howdy`, map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) // Publish a message (as anonymous) rr = request(t, s, "POST", "/mytopic", `Howdy`, nil) require.Equal(t, 403, rr.Code) } func TestAccount_Reservation_Delete_Messages_And_Attachments(t *testing.T) { t.Parallel() conf := newTestConfigWithAuthFile(t) conf.AuthDefault = user.PermissionReadWrite s := newTestServer(t, conf) // Create user with tier require.Nil(t, s.userManager.AddUser("phil", "mypass", user.RoleUser)) require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "pro", MessageLimit: 20, MessageExpiryDuration: time.Hour, ReservationLimit: 2, AttachmentTotalSizeLimit: 10000, AttachmentFileSizeLimit: 10000, AttachmentExpiryDuration: time.Hour, AttachmentBandwidthLimit: 10000, })) require.Nil(t, s.userManager.ChangeTier("phil", "pro")) // Reserve two topics "mytopic1" and "mytopic2" rr := request(t, s, "POST", "/v1/account/reservation", `{"topic": "mytopic1", "everyone":"deny-all"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) rr = request(t, s, "POST", "/v1/account/reservation", `{"topic": "mytopic2", "everyone":"deny-all"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) // Publish a message with attachment to each topic rr = request(t, s, "POST", "/mytopic1?f=attach.txt", `Howdy`, map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) m1 := toMessage(t, rr.Body.String()) require.FileExists(t, filepath.Join(s.config.AttachmentCacheDir, m1.ID)) rr = request(t, s, "POST", "/mytopic2?f=attach.txt", `Howdy`, map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) m2 := toMessage(t, rr.Body.String()) require.FileExists(t, filepath.Join(s.config.AttachmentCacheDir, m2.ID)) // Pre-verify message count and file ms, err := s.messageCache.Messages("mytopic1", sinceAllMessages, false) require.Nil(t, err) require.Equal(t, 1, len(ms)) require.FileExists(t, filepath.Join(s.config.AttachmentCacheDir, m1.ID)) ms, err = s.messageCache.Messages("mytopic2", sinceAllMessages, false) require.Nil(t, err) require.Equal(t, 1, len(ms)) require.FileExists(t, filepath.Join(s.config.AttachmentCacheDir, m2.ID)) // Delete reservation rr = request(t, s, "DELETE", "/v1/account/reservation/mytopic1", ``, map[string]string{ "X-Delete-Messages": "true", "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) rr = request(t, s, "DELETE", "/v1/account/reservation/mytopic2", ``, map[string]string{ "X-Delete-Messages": "false", "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 200, rr.Code) // Verify that messages and attachments were deleted // This does not explicitly call the manager! waitFor(t, func() bool { ms, err := s.messageCache.Messages("mytopic1", sinceAllMessages, false) require.Nil(t, err) return len(ms) == 0 && !util.FileExists(filepath.Join(s.config.AttachmentCacheDir, m1.ID)) }) ms, err = s.messageCache.Messages("mytopic1", sinceAllMessages, false) require.Nil(t, err) require.Equal(t, 0, len(ms)) require.NoFileExists(t, filepath.Join(s.config.AttachmentCacheDir, m1.ID)) ms, err = s.messageCache.Messages("mytopic2", sinceAllMessages, false) require.Nil(t, err) require.Equal(t, 1, len(ms)) require.Equal(t, m2.ID, ms[0].ID) require.FileExists(t, filepath.Join(s.config.AttachmentCacheDir, m2.ID)) } /*func TestAccount_Persist_UserStats_After_Tier_Change(t *testing.T) { conf := newTestConfigWithAuthFile(t) conf.AuthDefault = user.PermissionReadWrite conf.AuthStatsQueueWriterInterval = 300 * time.Millisecond s := newTestServer(t, conf) defer s.closeDatabases() // Create user with tier require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "starter", MessageSizeLimit: 10, })) require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "pro", MessageSizeLimit: 20, })) require.Nil(t, s.userManager.ChangeTier("phil", "starter")) // Publish a message rr := request(t, s, "POST", "/mytopic", "hi", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) // Wait for stats queue writer, verify that message stats were persisted waitFor(t, func() bool { u, err := s.userManager.User("phil") require.Nil(t, err) return int64(1) == u.Stats.Messages }) // Change tier, make a request (to reset limiters) require.Nil(t, s.userManager.ChangeTier("phil", "pro")) rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) account, _ := util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, int64(1), account.Stats.Messages) // Is not reset! // Publish another message rr = request(t, s, "POST", "/mytopic", "hi", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) // Verify that message stats were persisted waitFor(t, func() bool { u, err := s.userManager.User("phil") require.Nil(t, err) return int64(2) == u.Stats.Messages // v.EnqueueUserStats had run! }) // Stats keep counting rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) account, _ = util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, int64(2), account.Stats.Messages) // Is not reset! }*/ ntfy-2.11.0/server/server_admin.go000066400000000000000000000076401462047176100171050ustar00rootroot00000000000000package server import ( "errors" "heckel.io/ntfy/v2/user" "net/http" ) func (s *Server) handleUsersGet(w http.ResponseWriter, r *http.Request, v *visitor) error { users, err := s.userManager.Users() if err != nil { return err } grants, err := s.userManager.AllGrants() if err != nil { return err } usersResponse := make([]*apiUserResponse, len(users)) for i, u := range users { tier := "" if u.Tier != nil { tier = u.Tier.Code } userGrants := make([]*apiUserGrantResponse, len(grants[u.ID])) for i, g := range grants[u.ID] { userGrants[i] = &apiUserGrantResponse{ Topic: g.TopicPattern, Permission: g.Allow.String(), } } usersResponse[i] = &apiUserResponse{ Username: u.Name, Role: string(u.Role), Tier: tier, Grants: userGrants, } } return s.writeJSON(w, usersResponse) } func (s *Server) handleUsersAdd(w http.ResponseWriter, r *http.Request, v *visitor) error { req, err := readJSONWithLimit[apiUserAddRequest](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } else if !user.AllowedUsername(req.Username) || req.Password == "" { return errHTTPBadRequest.Wrap("username invalid, or password missing") } u, err := s.userManager.User(req.Username) if err != nil && !errors.Is(err, user.ErrUserNotFound) { return err } else if u != nil { return errHTTPConflictUserExists } var tier *user.Tier if req.Tier != "" { tier, err = s.userManager.Tier(req.Tier) if errors.Is(err, user.ErrTierNotFound) { return errHTTPBadRequestTierInvalid } else if err != nil { return err } } if err := s.userManager.AddUser(req.Username, req.Password, user.RoleUser); err != nil { return err } if tier != nil { if err := s.userManager.ChangeTier(req.Username, req.Tier); err != nil { return err } } return s.writeJSON(w, newSuccessResponse()) } func (s *Server) handleUsersDelete(w http.ResponseWriter, r *http.Request, v *visitor) error { req, err := readJSONWithLimit[apiUserDeleteRequest](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } u, err := s.userManager.User(req.Username) if errors.Is(err, user.ErrUserNotFound) { return errHTTPBadRequestUserNotFound } else if err != nil { return err } else if !u.IsUser() { return errHTTPUnauthorized.Wrap("can only remove regular users from API") } if err := s.userManager.RemoveUser(req.Username); err != nil { return err } if err := s.killUserSubscriber(u, "*"); err != nil { // FIXME super inefficient return err } return s.writeJSON(w, newSuccessResponse()) } func (s *Server) handleAccessAllow(w http.ResponseWriter, r *http.Request, v *visitor) error { req, err := readJSONWithLimit[apiAccessAllowRequest](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } _, err = s.userManager.User(req.Username) if errors.Is(err, user.ErrUserNotFound) { return errHTTPBadRequestUserNotFound } else if err != nil { return err } permission, err := user.ParsePermission(req.Permission) if err != nil { return errHTTPBadRequestPermissionInvalid } if err := s.userManager.AllowAccess(req.Username, req.Topic, permission); err != nil { return err } return s.writeJSON(w, newSuccessResponse()) } func (s *Server) handleAccessReset(w http.ResponseWriter, r *http.Request, v *visitor) error { req, err := readJSONWithLimit[apiAccessResetRequest](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } u, err := s.userManager.User(req.Username) if err != nil { return err } if err := s.userManager.ResetAccess(req.Username, req.Topic); err != nil { return err } if err := s.killUserSubscriber(u, req.Topic); err != nil { // This may be a pattern return err } return s.writeJSON(w, newSuccessResponse()) } func (s *Server) killUserSubscriber(u *user.User, topicPattern string) error { topics, err := s.topicsFromPattern(topicPattern) if err != nil { return err } for _, t := range topics { t.CancelSubscriberUser(u.ID) } return nil } ntfy-2.11.0/server/server_admin_test.go000066400000000000000000000136211462047176100201400ustar00rootroot00000000000000package server import ( "github.com/stretchr/testify/require" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" "sync/atomic" "testing" "time" ) func TestUser_AddRemove(t *testing.T) { s := newTestServer(t, newTestConfigWithAuthFile(t)) defer s.closeDatabases() // Create admin, tier require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleAdmin)) require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "tier1", })) // Create user via API rr := request(t, s, "PUT", "/v1/users", `{"username": "ben", "password":"ben"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) // Create user with tier via API rr = request(t, s, "PUT", "/v1/users", `{"username": "emma", "password":"emma", "tier": "tier1"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) // Check users users, err := s.userManager.Users() require.Nil(t, err) require.Equal(t, 4, len(users)) require.Equal(t, "phil", users[0].Name) require.Equal(t, "ben", users[1].Name) require.Equal(t, user.RoleUser, users[1].Role) require.Nil(t, users[1].Tier) require.Equal(t, "emma", users[2].Name) require.Equal(t, user.RoleUser, users[2].Role) require.Equal(t, "tier1", users[2].Tier.Code) require.Equal(t, user.Everyone, users[3].Name) // Delete user via API rr = request(t, s, "DELETE", "/v1/users", `{"username": "ben"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) } func TestUser_AddRemove_Failures(t *testing.T) { s := newTestServer(t, newTestConfigWithAuthFile(t)) defer s.closeDatabases() // Create admin require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleAdmin)) require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) // Cannot create user with invalid username rr := request(t, s, "PUT", "/v1/users", `{"username": "not valid", "password":"ben"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 400, rr.Code) // Cannot create user if user already exists rr = request(t, s, "PUT", "/v1/users", `{"username": "phil", "password":"phil"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 40901, toHTTPError(t, rr.Body.String()).Code) // Cannot create user with invalid tier rr = request(t, s, "PUT", "/v1/users", `{"username": "emma", "password":"emma", "tier": "invalid"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 40030, toHTTPError(t, rr.Body.String()).Code) // Cannot delete user as non-admin rr = request(t, s, "DELETE", "/v1/users", `{"username": "ben"}`, map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 401, rr.Code) // Delete user via API rr = request(t, s, "DELETE", "/v1/users", `{"username": "ben"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) } func TestAccess_AllowReset(t *testing.T) { c := newTestConfigWithAuthFile(t) c.AuthDefault = user.PermissionDenyAll s := newTestServer(t, c) defer s.closeDatabases() // User and admin require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleAdmin)) require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) // Subscribing not allowed rr := request(t, s, "GET", "/gold/json?poll=1", "", map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 403, rr.Code) // Grant access rr = request(t, s, "POST", "/v1/users/access", `{"username": "ben", "topic":"gold", "permission":"ro"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) // Now subscribing is allowed rr = request(t, s, "GET", "/gold/json?poll=1", "", map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 200, rr.Code) // Reset access rr = request(t, s, "DELETE", "/v1/users/access", `{"username": "ben", "topic":"gold"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) // Subscribing not allowed (again) rr = request(t, s, "GET", "/gold/json?poll=1", "", map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 403, rr.Code) } func TestAccess_AllowReset_NonAdminAttempt(t *testing.T) { c := newTestConfigWithAuthFile(t) c.AuthDefault = user.PermissionDenyAll s := newTestServer(t, c) defer s.closeDatabases() // User require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) // Grant access fails, because non-admin rr := request(t, s, "POST", "/v1/users/access", `{"username": "ben", "topic":"gold", "permission":"ro"}`, map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 401, rr.Code) } func TestAccess_AllowReset_KillConnection(t *testing.T) { c := newTestConfigWithAuthFile(t) c.AuthDefault = user.PermissionDenyAll s := newTestServer(t, c) defer s.closeDatabases() // User and admin, grant access to "gol*" topics require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleAdmin)) require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "gol*", user.PermissionRead)) // Wildcard! start, timeTaken := time.Now(), atomic.Int64{} go func() { rr := request(t, s, "GET", "/gold/json", "", map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 200, rr.Code) timeTaken.Store(time.Since(start).Milliseconds()) }() time.Sleep(500 * time.Millisecond) // Reset access rr := request(t, s, "DELETE", "/v1/users/access", `{"username": "ben", "topic":"gol*"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) // Wait for connection to be killed; this will fail if the connection is never killed waitFor(t, func() bool { return timeTaken.Load() >= 500 }) } ntfy-2.11.0/server/server_firebase.go000066400000000000000000000225631462047176100175760ustar00rootroot00000000000000package server import ( "context" "encoding/json" "errors" firebase "firebase.google.com/go/v4" "firebase.google.com/go/v4/messaging" "fmt" "google.golang.org/api/option" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" "strings" ) const ( fcmMessageLimit = 4000 fcmApnsBodyMessageLimit = 100 ) var ( errFirebaseQuotaExceeded = errors.New("quota exceeded for Firebase messages to topic") errFirebaseTemporarilyBanned = errors.New("visitor temporarily banned from using Firebase") ) // firebaseClient is a generic client that formats and sends messages to Firebase. // The actual Firebase implementation is implemented in firebaseSenderImpl, to make it testable. type firebaseClient struct { sender firebaseSender auther user.Auther } func newFirebaseClient(sender firebaseSender, auther user.Auther) *firebaseClient { return &firebaseClient{ sender: sender, auther: auther, } } func (c *firebaseClient) Send(v *visitor, m *message) error { if !v.FirebaseAllowed() { return errFirebaseTemporarilyBanned } fbm, err := toFirebaseMessage(m, c.auther) if err != nil { return err } ev := logvm(v, m).Tag(tagFirebase) if ev.IsTrace() { ev.Field("firebase_message", util.MaybeMarshalJSON(fbm)).Trace("Firebase message") } err = c.sender.Send(fbm) if err == errFirebaseQuotaExceeded { logvm(v, m). Tag(tagFirebase). Err(err). Warn("Firebase quota exceeded (likely for topic), temporarily denying Firebase access to visitor") v.FirebaseTemporarilyDeny() } return err } // firebaseSender is an interface that represents a client that can send to Firebase Cloud Messaging. // In tests, this can be implemented with a mock. type firebaseSender interface { // Send sends a message to Firebase, or returns an error. It returns errFirebaseQuotaExceeded // if a rate limit has reached. Send(m *messaging.Message) error } // firebaseSenderImpl is a firebaseSender that actually talks to Firebase type firebaseSenderImpl struct { client *messaging.Client } func newFirebaseSender(credentialsFile string) (*firebaseSenderImpl, error) { fb, err := firebase.NewApp(context.Background(), nil, option.WithCredentialsFile(credentialsFile)) if err != nil { return nil, err } client, err := fb.Messaging(context.Background()) if err != nil { return nil, err } return &firebaseSenderImpl{ client: client, }, nil } func (c *firebaseSenderImpl) Send(m *messaging.Message) error { _, err := c.client.Send(context.Background(), m) if err != nil && messaging.IsQuotaExceeded(err) { return errFirebaseQuotaExceeded } return err } // toFirebaseMessage converts a message to a Firebase message. // // Normal messages ("message"): // - For Android, we can receive data messages from Firebase and process them as code, so we just send all fields // in the "data" attribute. In the Android app, we then turn those into a notification and display it. // - On iOS, we are not allowed to receive data-only messages, so we build messages with an "alert" (with title and // message), and still send the rest of the data along in the "aps" attribute. We can then locally modify the // message in the Notification Service Extension. // // Keepalive messages ("keepalive"): // - On Android, we subscribe to the "~control" topic, which is used to restart the foreground service (if it died, // e.g. after an app update). We send these keepalive messages regularly (see Config.FirebaseKeepaliveInterval). // - On iOS, we subscribe to the "~poll" topic, which is used to poll all topics regularly. This is because iOS // does not allow any background or scheduled activity at all. // // Poll request messages ("poll_request"): // - Normal messages are turned into poll request messages if anonymous users are not allowed to read the message. // On Android, this will trigger the app to poll the topic and thereby displaying new messages. // - If UpstreamBaseURL is set, messages are forwarded as poll requests to an upstream server and then forwarded // to Firebase here. This is mainly for iOS to support self-hosted servers. func toFirebaseMessage(m *message, auther user.Auther) (*messaging.Message, error) { var data map[string]string // Mostly matches https://ntfy.sh/docs/subscribe/api/#json-message-format var apnsConfig *messaging.APNSConfig switch m.Event { case keepaliveEvent, openEvent: data = map[string]string{ "id": m.ID, "time": fmt.Sprintf("%d", m.Time), "event": m.Event, "topic": m.Topic, } apnsConfig = createAPNSBackgroundConfig(data) case pollRequestEvent: data = map[string]string{ "id": m.ID, "time": fmt.Sprintf("%d", m.Time), "event": m.Event, "topic": m.Topic, "message": m.Message, "poll_id": m.PollID, } apnsConfig = createAPNSAlertConfig(m, data) case messageEvent: allowForward := true if auther != nil { allowForward = auther.Authorize(nil, m.Topic, user.PermissionRead) == nil } if allowForward { data = map[string]string{ "id": m.ID, "time": fmt.Sprintf("%d", m.Time), "event": m.Event, "topic": m.Topic, "priority": fmt.Sprintf("%d", m.Priority), "tags": strings.Join(m.Tags, ","), "click": m.Click, "icon": m.Icon, "title": m.Title, "message": m.Message, "content_type": m.ContentType, "encoding": m.Encoding, } if len(m.Actions) > 0 { actions, err := json.Marshal(m.Actions) if err != nil { return nil, err } data["actions"] = string(actions) } if m.Attachment != nil { data["attachment_name"] = m.Attachment.Name data["attachment_type"] = m.Attachment.Type data["attachment_size"] = fmt.Sprintf("%d", m.Attachment.Size) data["attachment_expires"] = fmt.Sprintf("%d", m.Attachment.Expires) data["attachment_url"] = m.Attachment.URL } apnsConfig = createAPNSAlertConfig(m, data) } else { // If anonymous read for a topic is not allowed, we cannot send the message along // via Firebase. Instead, we send a "poll_request" message, asking the client to poll. data = map[string]string{ "id": m.ID, "time": fmt.Sprintf("%d", m.Time), "event": pollRequestEvent, "topic": m.Topic, } // TODO Handle APNS? } } var androidConfig *messaging.AndroidConfig if m.Priority >= 4 { androidConfig = &messaging.AndroidConfig{ Priority: "high", } } return maybeTruncateFCMMessage(&messaging.Message{ Topic: m.Topic, Data: data, Android: androidConfig, APNS: apnsConfig, }), nil } // maybeTruncateFCMMessage performs best-effort truncation of FCM messages. // The docs say the limit is 4000 characters, but during testing it wasn't quite clear // what fields matter; so we're just capping the serialized JSON to 4000 bytes. func maybeTruncateFCMMessage(m *messaging.Message) *messaging.Message { s, err := json.Marshal(m) if err != nil { return m } if len(s) > fcmMessageLimit { over := len(s) - fcmMessageLimit + 16 // = len("truncated":"1",), sigh ... message, ok := m.Data["message"] if ok && len(message) > over { m.Data["truncated"] = "1" m.Data["message"] = message[:len(message)-over] } } return m } // createAPNSAlertConfig creates an APNS config for iOS notifications that show up as an alert (only relevant for iOS). // We must set the Alert struct ("alert"), and we need to set MutableContent ("mutable-content"), so the Notification Service // Extension in iOS can modify the message. func createAPNSAlertConfig(m *message, data map[string]string) *messaging.APNSConfig { apnsData := make(map[string]any) for k, v := range data { apnsData[k] = v } return &messaging.APNSConfig{ Payload: &messaging.APNSPayload{ CustomData: apnsData, Aps: &messaging.Aps{ MutableContent: true, Alert: &messaging.ApsAlert{ Title: m.Title, Body: maybeTruncateAPNSBodyMessage(m.Message), }, }, }, } } // createAPNSBackgroundConfig creates an APNS config for a silent background message (only relevant for iOS). Apple only // allows us to send 2-3 of these notifications per hour, and delivery not guaranteed. We use this only for the ~poll // topic, which triggers the iOS app to poll all topics for changes. // // See https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app func createAPNSBackgroundConfig(data map[string]string) *messaging.APNSConfig { apnsData := make(map[string]any) for k, v := range data { apnsData[k] = v } return &messaging.APNSConfig{ Headers: map[string]string{ "apns-push-type": "background", "apns-priority": "5", }, Payload: &messaging.APNSPayload{ Aps: &messaging.Aps{ ContentAvailable: true, }, CustomData: apnsData, }, } } // maybeTruncateAPNSBodyMessage truncates the body for APNS. // // The "body" of the push notification can contain the entire message, which would count doubly for the overall length // of the APNS payload. I set a limit of 100 characters before truncating the notification "body" with ellipsis. // The message would not be changed (unless truncated for being too long). Note: if the payload is too large (>4KB), // APNS will simply reject / discard the notification, meaning it will never arrive on the iOS device. func maybeTruncateAPNSBodyMessage(s string) string { if len(s) >= fcmApnsBodyMessageLimit { over := len(s) - fcmApnsBodyMessageLimit + 3 // len("...") return s[:len(s)-over] + "..." } return s } ntfy-2.11.0/server/server_firebase_test.go000066400000000000000000000242251462047176100206320ustar00rootroot00000000000000package server import ( "encoding/json" "errors" "fmt" "heckel.io/ntfy/v2/user" "net/netip" "strings" "sync" "testing" "firebase.google.com/go/v4/messaging" "github.com/stretchr/testify/require" ) type testAuther struct { Allow bool } var _ user.Auther = (*testAuther)(nil) func (t testAuther) Authenticate(_, _ string) (*user.User, error) { return nil, errors.New("not used") } func (t testAuther) Authorize(_ *user.User, _ string, _ user.Permission) error { if t.Allow { return nil } return errors.New("unauthorized") } type testFirebaseSender struct { allowed int messages []*messaging.Message mu sync.Mutex } func newTestFirebaseSender(allowed int) *testFirebaseSender { return &testFirebaseSender{ allowed: allowed, messages: make([]*messaging.Message, 0), } } func (s *testFirebaseSender) Send(m *messaging.Message) error { s.mu.Lock() defer s.mu.Unlock() if len(s.messages)+1 > s.allowed { return errFirebaseQuotaExceeded } s.messages = append(s.messages, m) return nil } func (s *testFirebaseSender) Messages() []*messaging.Message { s.mu.Lock() defer s.mu.Unlock() return append(make([]*messaging.Message, 0), s.messages...) } func TestToFirebaseMessage_Keepalive(t *testing.T) { m := newKeepaliveMessage("mytopic") fbm, err := toFirebaseMessage(m, nil) require.Nil(t, err) require.Equal(t, "mytopic", fbm.Topic) require.Nil(t, fbm.Android) require.Equal(t, &messaging.APNSConfig{ Headers: map[string]string{ "apns-push-type": "background", "apns-priority": "5", }, Payload: &messaging.APNSPayload{ Aps: &messaging.Aps{ ContentAvailable: true, }, CustomData: map[string]any{ "id": m.ID, "time": fmt.Sprintf("%d", m.Time), "event": m.Event, "topic": m.Topic, }, }, }, fbm.APNS) require.Equal(t, map[string]string{ "id": m.ID, "time": fmt.Sprintf("%d", m.Time), "event": m.Event, "topic": m.Topic, }, fbm.Data) } func TestToFirebaseMessage_Open(t *testing.T) { m := newOpenMessage("mytopic") fbm, err := toFirebaseMessage(m, nil) require.Nil(t, err) require.Equal(t, "mytopic", fbm.Topic) require.Nil(t, fbm.Android) require.Equal(t, &messaging.APNSConfig{ Headers: map[string]string{ "apns-push-type": "background", "apns-priority": "5", }, Payload: &messaging.APNSPayload{ Aps: &messaging.Aps{ ContentAvailable: true, }, CustomData: map[string]any{ "id": m.ID, "time": fmt.Sprintf("%d", m.Time), "event": m.Event, "topic": m.Topic, }, }, }, fbm.APNS) require.Equal(t, map[string]string{ "id": m.ID, "time": fmt.Sprintf("%d", m.Time), "event": m.Event, "topic": m.Topic, }, fbm.Data) } func TestToFirebaseMessage_Message_Normal_Allowed(t *testing.T) { m := newDefaultMessage("mytopic", "this is a message") m.Priority = 4 m.Tags = []string{"tag 1", "tag2"} m.Click = "https://google.com" m.Icon = "https://ntfy.sh/static/img/ntfy.png" m.Title = "some title" m.Actions = []*action{ { ID: "123", Action: "view", Label: "Open page", Clear: true, URL: "https://ntfy.sh", }, { ID: "456", Action: "http", Label: "Close door", URL: "https://door.com/close", Method: "PUT", Headers: map[string]string{ "really": "yes", }, }, } m.Attachment = &attachment{ Name: "some file.jpg", Type: "image/jpeg", Size: 12345, Expires: 98765543, URL: "https://example.com/file.jpg", } fbm, err := toFirebaseMessage(m, &testAuther{Allow: true}) require.Nil(t, err) require.Equal(t, "mytopic", fbm.Topic) require.Equal(t, &messaging.AndroidConfig{ Priority: "high", }, fbm.Android) require.Equal(t, &messaging.APNSConfig{ Payload: &messaging.APNSPayload{ Aps: &messaging.Aps{ MutableContent: true, Alert: &messaging.ApsAlert{ Title: "some title", Body: "this is a message", }, }, CustomData: map[string]any{ "id": m.ID, "time": fmt.Sprintf("%d", m.Time), "event": "message", "topic": "mytopic", "priority": "4", "tags": strings.Join(m.Tags, ","), "click": "https://google.com", "icon": "https://ntfy.sh/static/img/ntfy.png", "title": "some title", "message": "this is a message", "actions": `[{"id":"123","action":"view","label":"Open page","clear":true,"url":"https://ntfy.sh"},{"id":"456","action":"http","label":"Close door","clear":false,"url":"https://door.com/close","method":"PUT","headers":{"really":"yes"}}]`, "content_type": "", "encoding": "", "attachment_name": "some file.jpg", "attachment_type": "image/jpeg", "attachment_size": "12345", "attachment_expires": "98765543", "attachment_url": "https://example.com/file.jpg", }, }, }, fbm.APNS) require.Equal(t, map[string]string{ "id": m.ID, "time": fmt.Sprintf("%d", m.Time), "event": "message", "topic": "mytopic", "priority": "4", "tags": strings.Join(m.Tags, ","), "click": "https://google.com", "icon": "https://ntfy.sh/static/img/ntfy.png", "title": "some title", "message": "this is a message", "actions": `[{"id":"123","action":"view","label":"Open page","clear":true,"url":"https://ntfy.sh"},{"id":"456","action":"http","label":"Close door","clear":false,"url":"https://door.com/close","method":"PUT","headers":{"really":"yes"}}]`, "content_type": "", "encoding": "", "attachment_name": "some file.jpg", "attachment_type": "image/jpeg", "attachment_size": "12345", "attachment_expires": "98765543", "attachment_url": "https://example.com/file.jpg", }, fbm.Data) } func TestToFirebaseMessage_Message_Normal_Not_Allowed(t *testing.T) { m := newDefaultMessage("mytopic", "this is a message") m.Priority = 5 fbm, err := toFirebaseMessage(m, &testAuther{Allow: false}) // Not allowed! require.Nil(t, err) require.Equal(t, "mytopic", fbm.Topic) require.Equal(t, &messaging.AndroidConfig{ Priority: "high", }, fbm.Android) require.Equal(t, "", fbm.Data["message"]) require.Equal(t, "", fbm.Data["priority"]) require.Equal(t, map[string]string{ "id": m.ID, "time": fmt.Sprintf("%d", m.Time), "event": "poll_request", "topic": "mytopic", }, fbm.Data) } func TestToFirebaseMessage_PollRequest(t *testing.T) { m := newPollRequestMessage("mytopic", "fOv6k1QbCzo6") fbm, err := toFirebaseMessage(m, nil) require.Nil(t, err) require.Equal(t, "mytopic", fbm.Topic) require.Nil(t, fbm.Android) require.Equal(t, &messaging.APNSConfig{ Payload: &messaging.APNSPayload{ Aps: &messaging.Aps{ MutableContent: true, Alert: &messaging.ApsAlert{ Title: "", Body: "New message", }, }, CustomData: map[string]any{ "id": m.ID, "time": fmt.Sprintf("%d", m.Time), "event": "poll_request", "topic": "mytopic", "message": "New message", "poll_id": "fOv6k1QbCzo6", }, }, }, fbm.APNS) require.Equal(t, map[string]string{ "id": m.ID, "time": fmt.Sprintf("%d", m.Time), "event": "poll_request", "topic": "mytopic", "message": "New message", "poll_id": "fOv6k1QbCzo6", }, fbm.Data) } func TestMaybeTruncateFCMMessage(t *testing.T) { origMessage := strings.Repeat("this is a long string", 300) origFCMMessage := &messaging.Message{ Topic: "mytopic", Data: map[string]string{ "id": "abcdefg", "time": "1641324761", "event": "message", "topic": "mytopic", "priority": "0", "tags": "", "title": "", "message": origMessage, }, Android: &messaging.AndroidConfig{ Priority: "high", }, } origMessageLength := len(origFCMMessage.Data["message"]) serializedOrigFCMMessage, _ := json.Marshal(origFCMMessage) require.Greater(t, len(serializedOrigFCMMessage), fcmMessageLimit) // Pre-condition truncatedFCMMessage := maybeTruncateFCMMessage(origFCMMessage) truncatedMessageLength := len(truncatedFCMMessage.Data["message"]) serializedTruncatedFCMMessage, _ := json.Marshal(truncatedFCMMessage) require.Equal(t, fcmMessageLimit, len(serializedTruncatedFCMMessage)) require.Equal(t, "1", truncatedFCMMessage.Data["truncated"]) require.NotEqual(t, origMessageLength, truncatedMessageLength) } func TestMaybeTruncateFCMMessage_NotTooLong(t *testing.T) { origMessage := "not really a long string" origFCMMessage := &messaging.Message{ Topic: "mytopic", Data: map[string]string{ "id": "abcdefg", "time": "1641324761", "event": "message", "topic": "mytopic", "priority": "0", "tags": "", "title": "", "message": origMessage, }, } origMessageLength := len(origFCMMessage.Data["message"]) serializedOrigFCMMessage, _ := json.Marshal(origFCMMessage) require.LessOrEqual(t, len(serializedOrigFCMMessage), fcmMessageLimit) // Pre-condition notTruncatedFCMMessage := maybeTruncateFCMMessage(origFCMMessage) notTruncatedMessageLength := len(notTruncatedFCMMessage.Data["message"]) serializedNotTruncatedFCMMessage, _ := json.Marshal(notTruncatedFCMMessage) require.Equal(t, origMessageLength, notTruncatedMessageLength) require.Equal(t, len(serializedOrigFCMMessage), len(serializedNotTruncatedFCMMessage)) require.Equal(t, "", notTruncatedFCMMessage.Data["truncated"]) } func TestToFirebaseSender_Abuse(t *testing.T) { sender := &testFirebaseSender{allowed: 2} client := newFirebaseClient(sender, &testAuther{}) visitor := newVisitor(newTestConfig(t), newMemTestCache(t), nil, netip.MustParseAddr("1.2.3.4"), nil) require.Nil(t, client.Send(visitor, &message{Topic: "mytopic"})) require.Equal(t, 1, len(sender.Messages())) require.Nil(t, client.Send(visitor, &message{Topic: "mytopic"})) require.Equal(t, 2, len(sender.Messages())) require.Equal(t, errFirebaseQuotaExceeded, client.Send(visitor, &message{Topic: "mytopic"})) require.Equal(t, 2, len(sender.Messages())) sender.messages = make([]*messaging.Message, 0) // Reset to test that time limit is working require.Equal(t, errFirebaseTemporarilyBanned, client.Send(visitor, &message{Topic: "mytopic"})) require.Equal(t, 0, len(sender.Messages())) } ntfy-2.11.0/server/server_manager.go000066400000000000000000000126061462047176100174250ustar00rootroot00000000000000package server import ( "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/util" "strings" ) func (s *Server) execManager() { // WARNING: Make sure to only selectively lock with the mutex, and be aware that this // there is no mutex for the entire function. // Prune all the things s.pruneVisitors() s.pruneTokens() s.pruneAttachments() s.pruneMessages() s.pruneAndNotifyWebPushSubscriptions() // Message count per topic var messagesCached int messageCounts, err := s.messageCache.MessageCounts() if err != nil { log.Tag(tagManager).Err(err).Warn("Cannot get message counts") messageCounts = make(map[string]int) // Empty, so we can continue } for _, count := range messageCounts { messagesCached += count } // Remove subscriptions without subscribers var emptyTopics, subscribers int log. Tag(tagManager). Timing(func() { s.mu.Lock() defer s.mu.Unlock() for _, t := range s.topics { subs, lastAccess := t.Stats() ev := log.Tag(tagManager).With(t) if t.Stale() { if ev.IsTrace() { ev.Trace("- topic %s: Deleting stale topic (%d subscribers, accessed %s)", t.ID, subs, util.FormatTime(lastAccess)) } emptyTopics++ delete(s.topics, t.ID) } else { if ev.IsTrace() { ev.Trace("- topic %s: %d subscribers, accessed %s", t.ID, subs, util.FormatTime(lastAccess)) } subscribers += subs } } }). Debug("Removed %d empty topic(s)", emptyTopics) // Mail stats var receivedMailTotal, receivedMailSuccess, receivedMailFailure int64 if s.smtpServerBackend != nil { receivedMailTotal, receivedMailSuccess, receivedMailFailure = s.smtpServerBackend.Counts() } var sentMailTotal, sentMailSuccess, sentMailFailure int64 if s.smtpSender != nil { sentMailTotal, sentMailSuccess, sentMailFailure = s.smtpSender.Counts() } // Users var usersCount int64 if s.userManager != nil { usersCount, err = s.userManager.UsersCount() if err != nil { log.Tag(tagManager).Err(err).Warn("Error counting users") } } // Print stats s.mu.RLock() messagesCount, topicsCount, visitorsCount := s.messages, len(s.topics), len(s.visitors) s.mu.RUnlock() // Update stats s.updateAndWriteStats(messagesCount) // Log stats log. Tag(tagManager). Fields(log.Context{ "messages_published": messagesCount, "messages_cached": messagesCached, "topics_active": topicsCount, "subscribers": subscribers, "visitors": visitorsCount, "users": usersCount, "emails_received": receivedMailTotal, "emails_received_success": receivedMailSuccess, "emails_received_failure": receivedMailFailure, "emails_sent": sentMailTotal, "emails_sent_success": sentMailSuccess, "emails_sent_failure": sentMailFailure, }). Info("Server stats") mset(metricMessagesCached, messagesCached) mset(metricVisitors, visitorsCount) mset(metricUsers, usersCount) mset(metricSubscribers, subscribers) mset(metricTopics, topicsCount) } func (s *Server) pruneVisitors() { staleVisitors := 0 log. Tag(tagManager). Timing(func() { s.mu.Lock() defer s.mu.Unlock() for ip, v := range s.visitors { if v.Stale() { log.Tag(tagManager).With(v).Trace("Deleting stale visitor") delete(s.visitors, ip) staleVisitors++ } } }). Field("stale_visitors", staleVisitors). Debug("Deleted %d stale visitor(s)", staleVisitors) } func (s *Server) pruneTokens() { if s.userManager != nil { log. Tag(tagManager). Timing(func() { if err := s.userManager.RemoveExpiredTokens(); err != nil { log.Tag(tagManager).Err(err).Warn("Error expiring user tokens") } if err := s.userManager.RemoveDeletedUsers(); err != nil { log.Tag(tagManager).Err(err).Warn("Error deleting soft-deleted users") } }). Debug("Removed expired tokens and users") } } func (s *Server) pruneAttachments() { if s.fileCache == nil { return } log. Tag(tagManager). Timing(func() { ids, err := s.messageCache.AttachmentsExpired() if err != nil { log.Tag(tagManager).Err(err).Warn("Error retrieving expired attachments") } else if len(ids) > 0 { if log.Tag(tagManager).IsDebug() { log.Tag(tagManager).Debug("Deleting attachments %s", strings.Join(ids, ", ")) } if err := s.fileCache.Remove(ids...); err != nil { log.Tag(tagManager).Err(err).Warn("Error deleting attachments") } if err := s.messageCache.MarkAttachmentsDeleted(ids...); err != nil { log.Tag(tagManager).Err(err).Warn("Error marking attachments deleted") } } else { log.Tag(tagManager).Debug("No expired attachments to delete") } }). Debug("Deleted expired attachments") } func (s *Server) pruneMessages() { log. Tag(tagManager). Timing(func() { expiredMessageIDs, err := s.messageCache.MessagesExpired() if err != nil { log.Tag(tagManager).Err(err).Warn("Error retrieving expired messages") } else if len(expiredMessageIDs) > 0 { if s.fileCache != nil { if err := s.fileCache.Remove(expiredMessageIDs...); err != nil { log.Tag(tagManager).Err(err).Warn("Error deleting attachments for expired messages") } } if err := s.messageCache.DeleteMessages(expiredMessageIDs...); err != nil { log.Tag(tagManager).Err(err).Warn("Error marking attachments deleted") } } else { log.Tag(tagManager).Debug("No expired messages to delete") } }). Debug("Pruned messages") } ntfy-2.11.0/server/server_manager_test.go000066400000000000000000000012551462047176100204620ustar00rootroot00000000000000package server import ( "github.com/stretchr/testify/require" "testing" ) func TestServer_Manager_Prune_Messages_Without_Attachments_DoesNotPanic(t *testing.T) { // Tests that the manager runs without attachment-cache-dir set, see #617 c := newTestConfig(t) c.AttachmentCacheDir = "" s := newTestServer(t, c) // Publish a message rr := request(t, s, "POST", "/mytopic", "hi", nil) require.Equal(t, 200, rr.Code) m := toMessage(t, rr.Body.String()) // Expire message require.Nil(t, s.messageCache.ExpireMessages("mytopic")) // Does not panic s.pruneMessages() // Actually deleted _, err := s.messageCache.Message(m.ID) require.Equal(t, errMessageNotFound, err) } ntfy-2.11.0/server/server_matrix.go000066400000000000000000000156261462047176100173240ustar00rootroot00000000000000package server import ( "bytes" "encoding/json" "fmt" "heckel.io/ntfy/v2/util" "io" "net/http" "strings" "time" ) // Matrix Push Gateway / UnifiedPush / ntfy integration: // // ntfy implements a Matrix Push Gateway (as defined in https://spec.matrix.org/v1.2/push-gateway-api/), // in combination with UnifiedPush as the Provider Push Protocol (as defined in https://unifiedpush.org/developers/gateway/). // // In the picture below, ntfy is the Push Gateway (mostly in this file), as well as the Push Provider (ntfy's // main functionality). UnifiedPush is the Provider Push Protocol, as implemented by the ntfy server and the // ntfy Android app. // // +--------------------+ +-------------------+ // Matrix HTTP | | | | // Notification Protocol | App Developer | | Device Vendor | // | | | | // +-------------------+ | +----------------+ | | +---------------+ | // | | | | | | | | | | // | Matrix homeserver +-----> Push Gateway +------> Push Provider | | // | | | | | | | | | | // +-^-----------------+ | +----------------+ | | +----+----------+ | // | | | | | | // Matrix | | | | | | // Client/Server API + | | | | | // | | +--------------------+ +-------------------+ // | +--+-+ | // | | <-------------------------------------------+ // +---+ | // | | Provider Push Protocol // +----+ // // Mobile Device or Client // // matrixRequest represents a Matrix message, as it is sent to a Push Gateway (as per // this spec: https://spec.matrix.org/v1.2/push-gateway-api/). // // From the message, we only require the "pushkey", as it represents our target topic URL. // A message may look like this (excerpt): // // { // "notification": { // "devices": [ // { // "pushkey": "https://ntfy.sh/upDAHJKFFDFD?up=1", // ... // } // ] // } // } type matrixRequest struct { Notification *struct { Devices []*struct { PushKey string `json:"pushkey"` } `json:"devices"` } `json:"notification"` } // matrixResponse represents the response to a Matrix push gateway message, as defined // in the spec (https://spec.matrix.org/v1.2/push-gateway-api/). type matrixResponse struct { Rejected []string `json:"rejected"` } const ( // matrixRejectPushKeyForUnifiedPushTopicWithoutRateVisitorAfter is the time after which a Matrix response // will return an HTTP 200 with the push key (i.e. "rejected":[""]}), if no rate visitor has been set on // the topic. Rejecting the push key will instruct the Matrix server to invalidate the pushkey and stop sending // messages to it. This must be longer than topicExpungeAfter. See https://spec.matrix.org/v1.6/push-gateway-api/ matrixRejectPushKeyForUnifiedPushTopicWithoutRateVisitorAfter = 12 * time.Hour ) // errMatrixPushkeyRejected represents an error when handing Matrix gateway messages // // If the push key is set, the app server will remove it and will never send messages using the same // push key again, until the user repairs it. type errMatrixPushkeyRejected struct { rejectedPushKey string configuredBaseURL string } func (e errMatrixPushkeyRejected) Error() string { return fmt.Sprintf("push key must be prefixed with base URL, received push key: %s, configured base URL: %s", e.rejectedPushKey, e.configuredBaseURL) } // newRequestFromMatrixJSON reads the request body as a Matrix JSON message, parses the "pushkey", and creates a new // HTTP request that looks like a normal ntfy request from it. // // It basically converts a Matrix push gatewqy request: // // POST /_matrix/push/v1/notify HTTP/1.1 // { "notification": { "devices": [ { "pushkey": "https://ntfy.sh/upDAHJKFFDFD?up=1", ... } ] } } // // to a ntfy request, looking like this: // // POST /upDAHJKFFDFD?up=1 HTTP/1.1 // { "notification": { "devices": [ { "pushkey": "https://ntfy.sh/upDAHJKFFDFD?up=1", ... } ] } } func newRequestFromMatrixJSON(r *http.Request, baseURL string, messageLimit int) (*http.Request, error) { if baseURL == "" { return nil, errHTTPInternalErrorMissingBaseURL } body, err := util.Peek(r.Body, messageLimit) if err != nil { return nil, err } defer r.Body.Close() if body.LimitReached { return nil, errHTTPEntityTooLargeMatrixRequest } var m matrixRequest if err := json.Unmarshal(body.PeekedBytes, &m); err != nil { return nil, errHTTPBadRequestMatrixMessageInvalid } else if m.Notification == nil || len(m.Notification.Devices) == 0 || m.Notification.Devices[0].PushKey == "" { return nil, errHTTPBadRequestMatrixMessageInvalid } pushKey := m.Notification.Devices[0].PushKey // We ignore other devices for now, see discussion in #316 if !strings.HasPrefix(pushKey, baseURL+"/") { return nil, &errMatrixPushkeyRejected{rejectedPushKey: pushKey, configuredBaseURL: baseURL} } newRequest, err := http.NewRequest(http.MethodPost, pushKey, io.NopCloser(bytes.NewReader(body.PeekedBytes))) if err != nil { return nil, err } newRequest.RemoteAddr = r.RemoteAddr // Not strictly necessary, since visitor was already extracted if r.Header.Get("X-Forwarded-For") != "" { newRequest.Header.Set("X-Forwarded-For", r.Header.Get("X-Forwarded-For")) } newRequest = withContext(newRequest, map[contextKey]any{ contextMatrixPushKey: pushKey, }) return newRequest, nil } // writeMatrixDiscoveryResponse writes the UnifiedPush Matrix Gateway Discovery response to the given http.ResponseWriter, // as per the spec (https://unifiedpush.org/developers/gateway/). func writeMatrixDiscoveryResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") _, err := io.WriteString(w, `{"unifiedpush":{"gateway":"matrix"}}`+"\n") return err } // writeMatrixSuccess writes a successful matrixResponse (no rejected push key) to the given http.ResponseWriter func writeMatrixSuccess(w http.ResponseWriter) error { return writeMatrixResponse(w, "") } // writeMatrixResponse writes a matrixResponse to the given http.ResponseWriter, as defined in // the spec (https://spec.matrix.org/v1.2/push-gateway-api/) func writeMatrixResponse(w http.ResponseWriter, rejectedPushKey string) error { rejected := make([]string, 0) if rejectedPushKey != "" { rejected = append(rejected, rejectedPushKey) } response := &matrixResponse{ Rejected: rejected, } w.Header().Set("Content-Type", "application/json") if err := json.NewEncoder(w).Encode(response); err != nil { return err } return nil } ntfy-2.11.0/server/server_matrix_test.go000066400000000000000000000114331462047176100203530ustar00rootroot00000000000000package server import ( "net/http" "net/http/httptest" "strings" "testing" "github.com/stretchr/testify/require" ) func TestMatrix_NewRequestFromMatrixJSON_Success(t *testing.T) { baseURL := "https://ntfy.sh" maxLength := 4096 body := `{"notification":{"content":{"body":"I'm floating in a most peculiar way.","msgtype":"m.text"},"counts":{"missed_calls":1,"unread":2},"devices":[{"app_id":"org.matrix.matrixConsole.ios","data":{},"pushkey":"https://ntfy.sh/upABCDEFGHI?up=1","pushkey_ts":12345678,"tweaks":{"sound":"bing"}}],"event_id":"$3957tyerfgewrf384","prio":"high","room_alias":"#exampleroom:matrix.org","room_id":"!slw48wfj34rtnrf:example.com","room_name":"Mission Control","sender":"@exampleuser:matrix.org","sender_display_name":"Major Tom","type":"m.room.message"}}` r, _ := http.NewRequest("POST", "http://ntfy.example.com/_matrix/push/v1/notify", strings.NewReader(body)) newRequest, err := newRequestFromMatrixJSON(r, baseURL, maxLength) require.Nil(t, err) require.Equal(t, "POST", newRequest.Method) require.Equal(t, "https://ntfy.sh/upABCDEFGHI?up=1", newRequest.URL.String()) require.Equal(t, body, readAll(t, newRequest.Body)) } func TestMatrix_NewRequestFromMatrixJSON_TooLarge(t *testing.T) { baseURL := "https://ntfy.sh" maxLength := 10 // Small body := `{"notification":{"content":{"body":"I'm floating in a most peculiar way.","msgtype":"m.text"},"counts":{"missed_calls":1,"unread":2},"devices":[{"app_id":"org.matrix.matrixConsole.ios","data":{},"pushkey":"https://ntfy.sh/upABCDEFGHI?up=1","pushkey_ts":12345678,"tweaks":{"sound":"bing"}}],"event_id":"$3957tyerfgewrf384","prio":"high","room_alias":"#exampleroom:matrix.org","room_id":"!slw48wfj34rtnrf:example.com","room_name":"Mission Control","sender":"@exampleuser:matrix.org","sender_display_name":"Major Tom","type":"m.room.message"}}` r, _ := http.NewRequest("POST", "http://ntfy.example.com/_matrix/push/v1/notify", strings.NewReader(body)) _, err := newRequestFromMatrixJSON(r, baseURL, maxLength) require.Equal(t, errHTTPEntityTooLargeMatrixRequest, err) } func TestMatrix_NewRequestFromMatrixJSON_InvalidJSON(t *testing.T) { baseURL := "https://ntfy.sh" maxLength := 4096 body := `this is not json` r, _ := http.NewRequest("POST", "http://ntfy.example.com/_matrix/push/v1/notify", strings.NewReader(body)) _, err := newRequestFromMatrixJSON(r, baseURL, maxLength) require.Equal(t, errHTTPBadRequestMatrixMessageInvalid, err) } func TestMatrix_NewRequestFromMatrixJSON_NotAMatrixMessage(t *testing.T) { baseURL := "https://ntfy.sh" maxLength := 4096 body := `{"message":"this is not a matrix message, but valid json"}` r, _ := http.NewRequest("POST", "http://ntfy.example.com/_matrix/push/v1/notify", strings.NewReader(body)) _, err := newRequestFromMatrixJSON(r, baseURL, maxLength) require.Equal(t, errHTTPBadRequestMatrixMessageInvalid, err) } func TestMatrix_NewRequestFromMatrixJSON_MismatchingPushKey(t *testing.T) { baseURL := "https://ntfy.sh" // Mismatch! maxLength := 4096 body := `{"notification":{"content":{"body":"I'm floating in a most peculiar way.","msgtype":"m.text"},"counts":{"missed_calls":1,"unread":2},"devices":[{"app_id":"org.matrix.matrixConsole.ios","data":{},"pushkey":"https://ntfy.example.com/upABCDEFGHI?up=1","pushkey_ts":12345678,"tweaks":{"sound":"bing"}}],"event_id":"$3957tyerfgewrf384","prio":"high","room_alias":"#exampleroom:matrix.org","room_id":"!slw48wfj34rtnrf:example.com","room_name":"Mission Control","sender":"@exampleuser:matrix.org","sender_display_name":"Major Tom","type":"m.room.message"}}` r, _ := http.NewRequest("POST", "http://ntfy.example.com/_matrix/push/v1/notify", strings.NewReader(body)) _, err := newRequestFromMatrixJSON(r, baseURL, maxLength) matrixErr, ok := err.(*errMatrixPushkeyRejected) require.True(t, ok) require.Equal(t, "push key must be prefixed with base URL, received push key: https://ntfy.example.com/upABCDEFGHI?up=1, configured base URL: https://ntfy.sh", matrixErr.Error()) require.Equal(t, "https://ntfy.example.com/upABCDEFGHI?up=1", matrixErr.rejectedPushKey) } func TestMatrix_WriteMatrixDiscoveryResponse(t *testing.T) { w := httptest.NewRecorder() require.Nil(t, writeMatrixDiscoveryResponse(w)) require.Equal(t, 200, w.Result().StatusCode) require.Equal(t, `{"unifiedpush":{"gateway":"matrix"}}`+"\n", w.Body.String()) } func TestMatrix_WriteMatrixError(t *testing.T) { w := httptest.NewRecorder() require.Nil(t, writeMatrixResponse(w, "https://ntfy.example.com/upABCDEFGHI?up=1")) require.Equal(t, 200, w.Result().StatusCode) require.Equal(t, `{"rejected":["https://ntfy.example.com/upABCDEFGHI?up=1"]}`+"\n", w.Body.String()) } func TestMatrix_WriteMatrixSuccess(t *testing.T) { w := httptest.NewRecorder() require.Nil(t, writeMatrixSuccess(w)) require.Equal(t, 200, w.Result().StatusCode) require.Equal(t, `{"rejected":[]}`+"\n", w.Body.String()) } ntfy-2.11.0/server/server_metrics.go000066400000000000000000000110771462047176100174620ustar00rootroot00000000000000package server import ( "github.com/prometheus/client_golang/prometheus" ) var ( metricMessagesPublishedSuccess prometheus.Counter metricMessagesPublishedFailure prometheus.Counter metricMessagesCached prometheus.Gauge metricMessagePublishDurationMillis prometheus.Gauge metricFirebasePublishedSuccess prometheus.Counter metricFirebasePublishedFailure prometheus.Counter metricEmailsPublishedSuccess prometheus.Counter metricEmailsPublishedFailure prometheus.Counter metricEmailsReceivedSuccess prometheus.Counter metricEmailsReceivedFailure prometheus.Counter metricCallsMadeSuccess prometheus.Counter metricCallsMadeFailure prometheus.Counter metricUnifiedPushPublishedSuccess prometheus.Counter metricMatrixPublishedSuccess prometheus.Counter metricMatrixPublishedFailure prometheus.Counter metricAttachmentsTotalSize prometheus.Gauge metricVisitors prometheus.Gauge metricSubscribers prometheus.Gauge metricTopics prometheus.Gauge metricUsers prometheus.Gauge metricHTTPRequests *prometheus.CounterVec ) func initMetrics() { metricMessagesPublishedSuccess = prometheus.NewCounter(prometheus.CounterOpts{ Name: "ntfy_messages_published_success", }) metricMessagesPublishedFailure = prometheus.NewCounter(prometheus.CounterOpts{ Name: "ntfy_messages_published_failure", }) metricMessagesCached = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "ntfy_messages_cached_total", }) metricMessagePublishDurationMillis = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "ntfy_message_publish_duration_ms", }) metricFirebasePublishedSuccess = prometheus.NewCounter(prometheus.CounterOpts{ Name: "ntfy_firebase_published_success", }) metricFirebasePublishedFailure = prometheus.NewCounter(prometheus.CounterOpts{ Name: "ntfy_firebase_published_failure", }) metricEmailsPublishedSuccess = prometheus.NewCounter(prometheus.CounterOpts{ Name: "ntfy_emails_sent_success", }) metricEmailsPublishedFailure = prometheus.NewCounter(prometheus.CounterOpts{ Name: "ntfy_emails_sent_failure", }) metricEmailsReceivedSuccess = prometheus.NewCounter(prometheus.CounterOpts{ Name: "ntfy_emails_received_success", }) metricEmailsReceivedFailure = prometheus.NewCounter(prometheus.CounterOpts{ Name: "ntfy_emails_received_failure", }) metricCallsMadeSuccess = prometheus.NewCounter(prometheus.CounterOpts{ Name: "ntfy_calls_made_success", }) metricCallsMadeFailure = prometheus.NewCounter(prometheus.CounterOpts{ Name: "ntfy_calls_made_failure", }) metricUnifiedPushPublishedSuccess = prometheus.NewCounter(prometheus.CounterOpts{ Name: "ntfy_unifiedpush_published_success", }) metricMatrixPublishedSuccess = prometheus.NewCounter(prometheus.CounterOpts{ Name: "ntfy_matrix_published_success", }) metricMatrixPublishedFailure = prometheus.NewCounter(prometheus.CounterOpts{ Name: "ntfy_matrix_published_failure", }) metricAttachmentsTotalSize = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "ntfy_attachments_total_size", }) metricVisitors = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "ntfy_visitors_total", }) metricUsers = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "ntfy_users_total", }) metricSubscribers = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "ntfy_subscribers_total", }) metricTopics = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "ntfy_topics_total", }) metricHTTPRequests = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "ntfy_http_requests_total", }, []string{"http_code", "ntfy_code", "http_method"}) prometheus.MustRegister( metricMessagesPublishedSuccess, metricMessagesPublishedFailure, metricMessagesCached, metricMessagePublishDurationMillis, metricFirebasePublishedSuccess, metricFirebasePublishedFailure, metricEmailsPublishedSuccess, metricEmailsPublishedFailure, metricEmailsReceivedSuccess, metricEmailsReceivedFailure, metricCallsMadeSuccess, metricCallsMadeFailure, metricUnifiedPushPublishedSuccess, metricMatrixPublishedSuccess, metricMatrixPublishedFailure, metricAttachmentsTotalSize, metricVisitors, metricUsers, metricSubscribers, metricTopics, metricHTTPRequests, ) } // minc increments a prometheus.Counter if it is non-nil func minc(counter prometheus.Counter) { if counter != nil { counter.Inc() } } // mset sets a prometheus.Gauge if it is non-nil func mset[T int | int64 | float64](gauge prometheus.Gauge, value T) { if gauge != nil { gauge.Set(float64(value)) } } ntfy-2.11.0/server/server_middleware.go000066400000000000000000000066401462047176100201310ustar00rootroot00000000000000package server import ( "net/http" "heckel.io/ntfy/v2/util" ) type contextKey int const ( contextRateVisitor contextKey = iota + 2586 contextTopic contextMatrixPushKey ) func (s *Server) limitRequests(next handleFunc) handleFunc { return func(w http.ResponseWriter, r *http.Request, v *visitor) error { if util.ContainsIP(s.config.VisitorRequestExemptIPAddrs, v.ip) { return next(w, r, v) } else if !v.RequestAllowed() { return errHTTPTooManyRequestsLimitRequests } return next(w, r, v) } } // limitRequestsWithTopic limits requests with a topic and stores the rate-limiting-subscriber and topic into request.Context func (s *Server) limitRequestsWithTopic(next handleFunc) handleFunc { return func(w http.ResponseWriter, r *http.Request, v *visitor) error { t, err := s.topicFromPath(r.URL.Path) if err != nil { return err } vrate := v if rateVisitor := t.RateVisitor(); rateVisitor != nil { vrate = rateVisitor } r = withContext(r, map[contextKey]any{ contextRateVisitor: vrate, contextTopic: t, }) if util.ContainsIP(s.config.VisitorRequestExemptIPAddrs, v.ip) { return next(w, r, v) } else if !vrate.RequestAllowed() { return errHTTPTooManyRequestsLimitRequests } return next(w, r, v) } } func (s *Server) ensureWebEnabled(next handleFunc) handleFunc { return func(w http.ResponseWriter, r *http.Request, v *visitor) error { if s.config.WebRoot == "" { return errHTTPNotFound } return next(w, r, v) } } func (s *Server) ensureWebPushEnabled(next handleFunc) handleFunc { return func(w http.ResponseWriter, r *http.Request, v *visitor) error { if s.config.WebRoot == "" || s.config.WebPushPublicKey == "" { return errHTTPNotFound } return next(w, r, v) } } func (s *Server) ensureUserManager(next handleFunc) handleFunc { return func(w http.ResponseWriter, r *http.Request, v *visitor) error { if s.userManager == nil { return errHTTPNotFound } return next(w, r, v) } } func (s *Server) ensureUser(next handleFunc) handleFunc { return s.ensureUserManager(func(w http.ResponseWriter, r *http.Request, v *visitor) error { if v.User() == nil { return errHTTPUnauthorized } return next(w, r, v) }) } func (s *Server) ensureAdmin(next handleFunc) handleFunc { return s.ensureUserManager(func(w http.ResponseWriter, r *http.Request, v *visitor) error { if !v.User().IsAdmin() { return errHTTPUnauthorized } return next(w, r, v) }) } func (s *Server) ensureCallsEnabled(next handleFunc) handleFunc { return func(w http.ResponseWriter, r *http.Request, v *visitor) error { if s.config.TwilioAccount == "" || s.userManager == nil { return errHTTPNotFound } return next(w, r, v) } } func (s *Server) ensurePaymentsEnabled(next handleFunc) handleFunc { return func(w http.ResponseWriter, r *http.Request, v *visitor) error { if s.config.StripeSecretKey == "" || s.stripe == nil { return errHTTPNotFound } return next(w, r, v) } } func (s *Server) ensureStripeCustomer(next handleFunc) handleFunc { return s.ensureUser(func(w http.ResponseWriter, r *http.Request, v *visitor) error { if v.User().Billing.StripeCustomerID == "" { return errHTTPBadRequestNotAPaidUser } return next(w, r, v) }) } func (s *Server) withAccountSync(next handleFunc) handleFunc { return func(w http.ResponseWriter, r *http.Request, v *visitor) error { err := next(w, r, v) if err == nil { s.publishSyncEventAsync(v) } return err } } ntfy-2.11.0/server/server_payments.go000066400000000000000000000533471462047176100176620ustar00rootroot00000000000000package server import ( "bytes" "errors" "fmt" "github.com/stripe/stripe-go/v74" portalsession "github.com/stripe/stripe-go/v74/billingportal/session" "github.com/stripe/stripe-go/v74/checkout/session" "github.com/stripe/stripe-go/v74/customer" "github.com/stripe/stripe-go/v74/price" "github.com/stripe/stripe-go/v74/subscription" "github.com/stripe/stripe-go/v74/webhook" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" "io" "net/http" "net/netip" "time" ) // Payments in ntfy are done via Stripe. // // Pretty much all payments related things are in this file. The following processes // handle payments: // // - Checkout: // Creating a Stripe customer and subscription via the Checkout flow. This flow is only used if the // ntfy user is not already a Stripe customer. This requires redirecting to the Stripe checkout page. // It is implemented in handleAccountBillingSubscriptionCreate and the success callback // handleAccountBillingSubscriptionCreateSuccess. // - Update subscription: // Switching between Stripe subscriptions (upgrade/downgrade) is handled via // handleAccountBillingSubscriptionUpdate. This also handles proration. // - Cancel subscription (at period end): // Users can cancel the Stripe subscription via the web app at the end of the billing period. This // simply updates the subscription and Stripe will cancel it. Users cannot immediately cancel the // subscription. // - Webhooks: // Whenever a subscription changes (updated, deleted), Stripe sends us a request via a webhook. // This is used to keep the local user database fields up to date. Stripe is the source of truth. // What Stripe says is mirrored and not questioned. var ( errNotAPaidTier = errors.New("tier does not have billing price identifier") errMultipleBillingSubscriptions = errors.New("cannot have multiple billing subscriptions") errNoBillingSubscription = errors.New("user does not have an active billing subscription") ) var ( retryUserDelays = []time.Duration{3 * time.Second, 5 * time.Second, 7 * time.Second} ) // handleBillingTiersGet returns all available paid tiers, and the free tier. This is to populate the upgrade dialog // in the UI. Note that this endpoint does NOT have a user context (no u!). func (s *Server) handleBillingTiersGet(w http.ResponseWriter, _ *http.Request, _ *visitor) error { tiers, err := s.userManager.Tiers() if err != nil { return err } freeTier := configBasedVisitorLimits(s.config) response := []*apiAccountBillingTier{ { // This is a bit of a hack: This is the "Free" tier. It has no tier code, name or price. Limits: &apiAccountLimits{ Basis: string(visitorLimitBasisIP), Messages: freeTier.MessageLimit, MessagesExpiryDuration: int64(freeTier.MessageExpiryDuration.Seconds()), Emails: freeTier.EmailLimit, Calls: freeTier.CallLimit, Reservations: freeTier.ReservationsLimit, AttachmentTotalSize: freeTier.AttachmentTotalSizeLimit, AttachmentFileSize: freeTier.AttachmentFileSizeLimit, AttachmentExpiryDuration: int64(freeTier.AttachmentExpiryDuration.Seconds()), }, }, } prices, err := s.priceCache.Value() if err != nil { return err } for _, tier := range tiers { priceMonth, priceYear := prices[tier.StripeMonthlyPriceID], prices[tier.StripeYearlyPriceID] if priceMonth == 0 || priceYear == 0 { // Only allow tiers that have both prices! continue } response = append(response, &apiAccountBillingTier{ Code: tier.Code, Name: tier.Name, Prices: &apiAccountBillingPrices{ Month: priceMonth, Year: priceYear, }, Limits: &apiAccountLimits{ Basis: string(visitorLimitBasisTier), Messages: tier.MessageLimit, MessagesExpiryDuration: int64(tier.MessageExpiryDuration.Seconds()), Emails: tier.EmailLimit, Calls: tier.CallLimit, Reservations: tier.ReservationLimit, AttachmentTotalSize: tier.AttachmentTotalSizeLimit, AttachmentFileSize: tier.AttachmentFileSizeLimit, AttachmentExpiryDuration: int64(tier.AttachmentExpiryDuration.Seconds()), }, }) } return s.writeJSON(w, response) } // handleAccountBillingSubscriptionCreate creates a Stripe checkout flow to create a user subscription. The tier // will be updated by a subsequent webhook from Stripe, once the subscription becomes active. func (s *Server) handleAccountBillingSubscriptionCreate(w http.ResponseWriter, r *http.Request, v *visitor) error { u := v.User() if u.Billing.StripeSubscriptionID != "" { return errHTTPBadRequestBillingSubscriptionExists } req, err := readJSONWithLimit[apiAccountBillingSubscriptionChangeRequest](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } tier, err := s.userManager.Tier(req.Tier) if err != nil { return err } var priceID string if req.Interval == string(stripe.PriceRecurringIntervalMonth) && tier.StripeMonthlyPriceID != "" { priceID = tier.StripeMonthlyPriceID } else if req.Interval == string(stripe.PriceRecurringIntervalYear) && tier.StripeYearlyPriceID != "" { priceID = tier.StripeYearlyPriceID } else { return errNotAPaidTier } logvr(v, r). With(tier). Fields(log.Context{ "stripe_price_id": priceID, "stripe_subscription_interval": req.Interval, }). Tag(tagStripe). Info("Creating Stripe checkout flow") var stripeCustomerID *string if u.Billing.StripeCustomerID != "" { stripeCustomerID = &u.Billing.StripeCustomerID stripeCustomer, err := s.stripe.GetCustomer(u.Billing.StripeCustomerID) if err != nil { return err } else if stripeCustomer.Subscriptions != nil && len(stripeCustomer.Subscriptions.Data) > 0 { return errMultipleBillingSubscriptions } } successURL := s.config.BaseURL + apiAccountBillingSubscriptionCheckoutSuccessTemplate params := &stripe.CheckoutSessionParams{ Customer: stripeCustomerID, // A user may have previously deleted their subscription ClientReferenceID: &u.ID, SuccessURL: &successURL, Mode: stripe.String(string(stripe.CheckoutSessionModeSubscription)), AllowPromotionCodes: stripe.Bool(true), LineItems: []*stripe.CheckoutSessionLineItemParams{ { Price: stripe.String(priceID), Quantity: stripe.Int64(1), }, }, AutomaticTax: &stripe.CheckoutSessionAutomaticTaxParams{ Enabled: stripe.Bool(true), }, } sess, err := s.stripe.NewCheckoutSession(params) if err != nil { return err } response := &apiAccountBillingSubscriptionCreateResponse{ RedirectURL: sess.URL, } return s.writeJSON(w, response) } // handleAccountBillingSubscriptionCreateSuccess is called after the Stripe checkout session has succeeded. We use // the session ID in the URL to retrieve the Stripe subscription and update the local database. This is the first // and only time we can map the local username with the Stripe customer ID. func (s *Server) handleAccountBillingSubscriptionCreateSuccess(w http.ResponseWriter, r *http.Request, v *visitor) error { // We don't have v.User() in this endpoint, only a userManager! matches := apiAccountBillingSubscriptionCheckoutSuccessRegex.FindStringSubmatch(r.URL.Path) if len(matches) != 2 { return errHTTPInternalErrorInvalidPath } sessionID := matches[1] sess, err := s.stripe.GetSession(sessionID) // FIXME How do we rate limit this? if err != nil { return err } else if sess.Customer == nil || sess.Subscription == nil || sess.ClientReferenceID == "" { return errHTTPBadRequestBillingRequestInvalid.Wrap("customer or subscription not found") } sub, err := s.stripe.GetSubscription(sess.Subscription.ID) if err != nil { return err } else if sub.Items == nil || len(sub.Items.Data) != 1 || sub.Items.Data[0].Price == nil || sub.Items.Data[0].Price.Recurring == nil { return errHTTPBadRequestBillingRequestInvalid.Wrap("more than one line item in existing subscription") } priceID, interval := sub.Items.Data[0].Price.ID, sub.Items.Data[0].Price.Recurring.Interval tier, err := s.userManager.TierByStripePrice(priceID) if err != nil { return err } u, err := s.userManager.UserByID(sess.ClientReferenceID) if err != nil { return err } v.SetUser(u) logvr(v, r). With(tier). Tag(tagStripe). Fields(log.Context{ "stripe_customer_id": sess.Customer.ID, "stripe_price_id": priceID, "stripe_subscription_id": sub.ID, "stripe_subscription_status": string(sub.Status), "stripe_subscription_interval": string(interval), "stripe_subscription_paid_until": sub.CurrentPeriodEnd, }). Info("Stripe checkout flow succeeded, updating user tier and subscription") customerParams := &stripe.CustomerParams{ Params: stripe.Params{ Metadata: map[string]string{ "user_id": u.ID, "user_name": u.Name, }, }, } if _, err := s.stripe.UpdateCustomer(sess.Customer.ID, customerParams); err != nil { return err } if err := s.updateSubscriptionAndTier(r, v, u, tier, sess.Customer.ID, sub.ID, string(sub.Status), string(interval), sub.CurrentPeriodEnd, sub.CancelAt); err != nil { return err } http.Redirect(w, r, s.config.BaseURL+accountPath, http.StatusSeeOther) return nil } // handleAccountBillingSubscriptionUpdate updates an existing Stripe subscription to a new price, and updates // a user's tier accordingly. This endpoint only works if there is an existing subscription. func (s *Server) handleAccountBillingSubscriptionUpdate(w http.ResponseWriter, r *http.Request, v *visitor) error { u := v.User() if u.Billing.StripeSubscriptionID == "" { return errNoBillingSubscription } req, err := readJSONWithLimit[apiAccountBillingSubscriptionChangeRequest](r.Body, jsonBodyBytesLimit, false) if err != nil { return err } tier, err := s.userManager.Tier(req.Tier) if err != nil { return err } var priceID string if req.Interval == string(stripe.PriceRecurringIntervalMonth) && tier.StripeMonthlyPriceID != "" { priceID = tier.StripeMonthlyPriceID } else if req.Interval == string(stripe.PriceRecurringIntervalYear) && tier.StripeYearlyPriceID != "" { priceID = tier.StripeYearlyPriceID } else { return errNotAPaidTier } logvr(v, r). Tag(tagStripe). Fields(log.Context{ "new_tier_id": tier.ID, "new_tier_code": tier.Code, "new_tier_stripe_price_id": priceID, "new_tier_stripe_subscription_interval": req.Interval, // Other stripe_* fields filled by visitor context }). Info("Changing Stripe subscription and billing tier to %s/%s (price %s, %s)", tier.ID, tier.Name, priceID, req.Interval) sub, err := s.stripe.GetSubscription(u.Billing.StripeSubscriptionID) if err != nil { return err } else if sub.Items == nil || len(sub.Items.Data) != 1 { return errHTTPBadRequestBillingRequestInvalid.Wrap("no items, or more than one item") } params := &stripe.SubscriptionParams{ CancelAtPeriodEnd: stripe.Bool(false), ProrationBehavior: stripe.String(string(stripe.SubscriptionSchedulePhaseProrationBehaviorAlwaysInvoice)), Items: []*stripe.SubscriptionItemsParams{ { ID: stripe.String(sub.Items.Data[0].ID), Price: stripe.String(priceID), }, }, } _, err = s.stripe.UpdateSubscription(sub.ID, params) if err != nil { return err } return s.writeJSON(w, newSuccessResponse()) } // handleAccountBillingSubscriptionDelete facilitates downgrading a paid user to a tier-less user, // and cancelling the Stripe subscription entirely. Note that this does not actually change the tier. // That is done by a webhook at the period end (in X days). func (s *Server) handleAccountBillingSubscriptionDelete(w http.ResponseWriter, r *http.Request, v *visitor) error { logvr(v, r).Tag(tagStripe).Info("Deleting Stripe subscription") u := v.User() if u.Billing.StripeSubscriptionID != "" { params := &stripe.SubscriptionParams{ CancelAtPeriodEnd: stripe.Bool(true), } _, err := s.stripe.UpdateSubscription(u.Billing.StripeSubscriptionID, params) if err != nil { return err } } return s.writeJSON(w, newSuccessResponse()) } // handleAccountBillingPortalSessionCreate creates a session to the customer billing portal, and returns the // redirect URL. The billing portal allows customers to change their payment methods, and cancel the subscription. func (s *Server) handleAccountBillingPortalSessionCreate(w http.ResponseWriter, r *http.Request, v *visitor) error { logvr(v, r).Tag(tagStripe).Info("Creating Stripe billing portal session") u := v.User() if u.Billing.StripeCustomerID == "" { return errHTTPBadRequestNotAPaidUser } params := &stripe.BillingPortalSessionParams{ Customer: stripe.String(u.Billing.StripeCustomerID), ReturnURL: stripe.String(s.config.BaseURL), } ps, err := s.stripe.NewPortalSession(params) if err != nil { return err } response := &apiAccountBillingPortalRedirectResponse{ RedirectURL: ps.URL, } return s.writeJSON(w, response) } // handleAccountBillingWebhook handles incoming Stripe webhooks. It mainly keeps the local user database in sync // with the Stripe view of the world. This endpoint is authorized via the Stripe webhook secret. Note that the // visitor (v) in this endpoint is the Stripe API, so we don't have u available. func (s *Server) handleAccountBillingWebhook(_ http.ResponseWriter, r *http.Request, v *visitor) error { stripeSignature := r.Header.Get("Stripe-Signature") if stripeSignature == "" { return errHTTPBadRequestBillingRequestInvalid } body, err := util.Peek(r.Body, jsonBodyBytesLimit) if err != nil { return err } else if body.LimitReached { return errHTTPEntityTooLargeJSONBody } event, err := s.stripe.ConstructWebhookEvent(body.PeekedBytes, stripeSignature, s.config.StripeWebhookKey) if err != nil { return err } else if event.Data == nil || event.Data.Raw == nil { return errHTTPBadRequestBillingRequestInvalid } switch event.Type { case "customer.subscription.updated": return s.handleAccountBillingWebhookSubscriptionUpdated(r, v, event) case "customer.subscription.deleted": return s.handleAccountBillingWebhookSubscriptionDeleted(r, v, event) default: logvr(v, r). Tag(tagStripe). Field("stripe_webhook_type", event.Type). Warn("Unhandled Stripe webhook event %s received", event.Type) return nil } } func (s *Server) handleAccountBillingWebhookSubscriptionUpdated(r *http.Request, v *visitor, event stripe.Event) error { ev, err := util.UnmarshalJSON[apiStripeSubscriptionUpdatedEvent](io.NopCloser(bytes.NewReader(event.Data.Raw))) if err != nil { return err } else if ev.ID == "" || ev.Customer == "" || ev.Status == "" || ev.CurrentPeriodEnd == 0 || ev.Items == nil || len(ev.Items.Data) != 1 || ev.Items.Data[0].Price == nil || ev.Items.Data[0].Price.ID == "" || ev.Items.Data[0].Price.Recurring == nil { logvr(v, r).Tag(tagStripe).Field("stripe_request", fmt.Sprintf("%#v", ev)).Warn("Unexpected request from Stripe") return errHTTPBadRequestBillingRequestInvalid } subscriptionID, priceID, interval := ev.ID, ev.Items.Data[0].Price.ID, ev.Items.Data[0].Price.Recurring.Interval logvr(v, r). Tag(tagStripe). Fields(log.Context{ "stripe_webhook_type": event.Type, "stripe_customer_id": ev.Customer, "stripe_price_id": priceID, "stripe_subscription_id": ev.ID, "stripe_subscription_status": ev.Status, "stripe_subscription_interval": interval, "stripe_subscription_paid_until": ev.CurrentPeriodEnd, "stripe_subscription_cancel_at": ev.CancelAt, }). Info("Updating subscription to status %s, with price %s", ev.Status, priceID) userFn := func() (*user.User, error) { return s.userManager.UserByStripeCustomer(ev.Customer) } // We retry the user retrieval function, because during the Stripe checkout, there a race between the browser // checkout success redirect (see handleAccountBillingSubscriptionCreateSuccess), and this webhook. The checkout // success call is the one that updates the user with the Stripe customer ID. u, err := util.Retry[user.User](userFn, retryUserDelays...) if err != nil { return err } v.SetUser(u) tier, err := s.userManager.TierByStripePrice(priceID) if err != nil { return err } if err := s.updateSubscriptionAndTier(r, v, u, tier, ev.Customer, subscriptionID, ev.Status, string(interval), ev.CurrentPeriodEnd, ev.CancelAt); err != nil { return err } s.publishSyncEventAsync(s.visitor(netip.IPv4Unspecified(), u)) return nil } func (s *Server) handleAccountBillingWebhookSubscriptionDeleted(r *http.Request, v *visitor, event stripe.Event) error { ev, err := util.UnmarshalJSON[apiStripeSubscriptionDeletedEvent](io.NopCloser(bytes.NewReader(event.Data.Raw))) if err != nil { return err } else if ev.Customer == "" { return errHTTPBadRequestBillingRequestInvalid } u, err := s.userManager.UserByStripeCustomer(ev.Customer) if err != nil { return err } v.SetUser(u) logvr(v, r). Tag(tagStripe). Field("stripe_webhook_type", event.Type). Info("Subscription deleted, downgrading to unpaid tier") if err := s.updateSubscriptionAndTier(r, v, u, nil, ev.Customer, "", "", "", 0, 0); err != nil { return err } s.publishSyncEventAsync(s.visitor(netip.IPv4Unspecified(), u)) return nil } func (s *Server) updateSubscriptionAndTier(r *http.Request, v *visitor, u *user.User, tier *user.Tier, customerID, subscriptionID, status, interval string, paidUntil, cancelAt int64) error { reservationsLimit := visitorDefaultReservationsLimit if tier != nil { reservationsLimit = tier.ReservationLimit } if err := s.maybeRemoveMessagesAndExcessReservations(r, v, u, reservationsLimit); err != nil { return err } if tier == nil && u.Tier != nil { logvr(v, r).Tag(tagStripe).Info("Resetting tier for user %s", u.Name) if err := s.userManager.ResetTier(u.Name); err != nil { return err } } else if tier != nil && u.TierID() != tier.ID { logvr(v, r). Tag(tagStripe). Fields(log.Context{ "new_tier_id": tier.ID, "new_tier_code": tier.Code, }). Info("Changing tier to tier %s (%s) for user %s", tier.ID, tier.Name, u.Name) if err := s.userManager.ChangeTier(u.Name, tier.Code); err != nil { return err } } // Update billing fields billing := &user.Billing{ StripeCustomerID: customerID, StripeSubscriptionID: subscriptionID, StripeSubscriptionStatus: stripe.SubscriptionStatus(status), StripeSubscriptionInterval: stripe.PriceRecurringInterval(interval), StripeSubscriptionPaidUntil: time.Unix(paidUntil, 0), StripeSubscriptionCancelAt: time.Unix(cancelAt, 0), } if err := s.userManager.ChangeBilling(u.Name, billing); err != nil { return err } return nil } // fetchStripePrices contacts the Stripe API to retrieve all prices. This is used by the server to cache the prices // in memory, and ultimately for the web app to display the price table. func (s *Server) fetchStripePrices() (map[string]int64, error) { log.Debug("Caching prices from Stripe API") priceMap := make(map[string]int64) prices, err := s.stripe.ListPrices(&stripe.PriceListParams{Active: stripe.Bool(true)}) if err != nil { log.Warn("Fetching Stripe prices failed: %s", err.Error()) return nil, err } for _, p := range prices { priceMap[p.ID] = p.UnitAmount log.Trace("- Caching price %s = %v", p.ID, priceMap[p.ID]) } return priceMap, nil } // stripeAPI is a small interface to facilitate mocking of the Stripe API type stripeAPI interface { NewCheckoutSession(params *stripe.CheckoutSessionParams) (*stripe.CheckoutSession, error) NewPortalSession(params *stripe.BillingPortalSessionParams) (*stripe.BillingPortalSession, error) ListPrices(params *stripe.PriceListParams) ([]*stripe.Price, error) GetCustomer(id string) (*stripe.Customer, error) GetSession(id string) (*stripe.CheckoutSession, error) GetSubscription(id string) (*stripe.Subscription, error) UpdateCustomer(id string, params *stripe.CustomerParams) (*stripe.Customer, error) UpdateSubscription(id string, params *stripe.SubscriptionParams) (*stripe.Subscription, error) CancelSubscription(id string) (*stripe.Subscription, error) ConstructWebhookEvent(payload []byte, header string, secret string) (stripe.Event, error) } // realStripeAPI is a thin shim around the Stripe functions to facilitate mocking type realStripeAPI struct{} var _ stripeAPI = (*realStripeAPI)(nil) func newStripeAPI() stripeAPI { return &realStripeAPI{} } func (s *realStripeAPI) NewCheckoutSession(params *stripe.CheckoutSessionParams) (*stripe.CheckoutSession, error) { return session.New(params) } func (s *realStripeAPI) NewPortalSession(params *stripe.BillingPortalSessionParams) (*stripe.BillingPortalSession, error) { return portalsession.New(params) } func (s *realStripeAPI) ListPrices(params *stripe.PriceListParams) ([]*stripe.Price, error) { prices := make([]*stripe.Price, 0) iter := price.List(params) for iter.Next() { prices = append(prices, iter.Price()) } if iter.Err() != nil { return nil, iter.Err() } return prices, nil } func (s *realStripeAPI) GetCustomer(id string) (*stripe.Customer, error) { return customer.Get(id, nil) } func (s *realStripeAPI) GetSession(id string) (*stripe.CheckoutSession, error) { return session.Get(id, nil) } func (s *realStripeAPI) GetSubscription(id string) (*stripe.Subscription, error) { return subscription.Get(id, nil) } func (s *realStripeAPI) UpdateCustomer(id string, params *stripe.CustomerParams) (*stripe.Customer, error) { return customer.Update(id, params) } func (s *realStripeAPI) UpdateSubscription(id string, params *stripe.SubscriptionParams) (*stripe.Subscription, error) { return subscription.Update(id, params) } func (s *realStripeAPI) CancelSubscription(id string) (*stripe.Subscription, error) { return subscription.Cancel(id, nil) } func (s *realStripeAPI) ConstructWebhookEvent(payload []byte, header string, secret string) (stripe.Event, error) { return webhook.ConstructEvent(payload, header, secret) } ntfy-2.11.0/server/server_payments_test.go000066400000000000000000000710561462047176100207160ustar00rootroot00000000000000package server import ( "encoding/json" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "github.com/stripe/stripe-go/v74" "golang.org/x/time/rate" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" "io" "net/netip" "path/filepath" "strings" "sync" "testing" "time" ) func TestPayments_Tiers(t *testing.T) { stripeMock := &testStripeAPI{} defer stripeMock.AssertExpectations(t) c := newTestConfigWithAuthFile(t) c.StripeSecretKey = "secret key" c.StripeWebhookKey = "webhook key" c.VisitorRequestLimitReplenish = 12 * time.Hour c.CacheDuration = 13 * time.Hour c.AttachmentFileSizeLimit = 111 c.VisitorAttachmentTotalSizeLimit = 222 c.AttachmentExpiryDuration = 123 * time.Second s := newTestServer(t, c) s.stripe = stripeMock // Define how the mock should react stripeMock. On("ListPrices", mock.Anything). Return([]*stripe.Price{ {ID: "price_123", UnitAmount: 500}, {ID: "price_124", UnitAmount: 5000}, {ID: "price_456", UnitAmount: 1000}, {ID: "price_457", UnitAmount: 10000}, {ID: "price_999", UnitAmount: 9999}, }, nil) // Create tiers require.Nil(t, s.userManager.AddTier(&user.Tier{ ID: "ti_1", Code: "admin", Name: "Admin", })) require.Nil(t, s.userManager.AddTier(&user.Tier{ ID: "ti_123", Code: "pro", Name: "Pro", MessageLimit: 1000, MessageExpiryDuration: time.Hour, EmailLimit: 123, ReservationLimit: 777, AttachmentFileSizeLimit: 999, AttachmentTotalSizeLimit: 888, AttachmentExpiryDuration: time.Minute, StripeMonthlyPriceID: "price_123", StripeYearlyPriceID: "price_124", })) require.Nil(t, s.userManager.AddTier(&user.Tier{ ID: "ti_444", Code: "business", Name: "Business", MessageLimit: 2000, MessageExpiryDuration: 10 * time.Hour, EmailLimit: 123123, ReservationLimit: 777333, AttachmentFileSizeLimit: 999111, AttachmentTotalSizeLimit: 888111, AttachmentExpiryDuration: time.Hour, StripeMonthlyPriceID: "price_456", StripeYearlyPriceID: "price_457", })) response := request(t, s, "GET", "/v1/tiers", "", nil) require.Equal(t, 200, response.Code) var tiers []apiAccountBillingTier require.Nil(t, json.NewDecoder(response.Body).Decode(&tiers)) require.Equal(t, 3, len(tiers)) // Free tier tier := tiers[0] require.Equal(t, "", tier.Code) require.Equal(t, "", tier.Name) require.Equal(t, "ip", tier.Limits.Basis) require.Equal(t, int64(0), tier.Limits.Reservations) require.Equal(t, int64(2), tier.Limits.Messages) // :-( require.Equal(t, int64(13*3600), tier.Limits.MessagesExpiryDuration) require.Equal(t, int64(24), tier.Limits.Emails) require.Equal(t, int64(111), tier.Limits.AttachmentFileSize) require.Equal(t, int64(222), tier.Limits.AttachmentTotalSize) require.Equal(t, int64(123), tier.Limits.AttachmentExpiryDuration) // Admin tier is not included, because it is not paid! tier = tiers[1] require.Equal(t, "pro", tier.Code) require.Equal(t, "Pro", tier.Name) require.Equal(t, "tier", tier.Limits.Basis) require.Equal(t, int64(500), tier.Prices.Month) require.Equal(t, int64(5000), tier.Prices.Year) require.Equal(t, int64(777), tier.Limits.Reservations) require.Equal(t, int64(1000), tier.Limits.Messages) require.Equal(t, int64(3600), tier.Limits.MessagesExpiryDuration) require.Equal(t, int64(123), tier.Limits.Emails) require.Equal(t, int64(999), tier.Limits.AttachmentFileSize) require.Equal(t, int64(888), tier.Limits.AttachmentTotalSize) require.Equal(t, int64(60), tier.Limits.AttachmentExpiryDuration) tier = tiers[2] require.Equal(t, "business", tier.Code) require.Equal(t, "Business", tier.Name) require.Equal(t, int64(1000), tier.Prices.Month) require.Equal(t, int64(10000), tier.Prices.Year) require.Equal(t, "tier", tier.Limits.Basis) require.Equal(t, int64(777333), tier.Limits.Reservations) require.Equal(t, int64(2000), tier.Limits.Messages) require.Equal(t, int64(36000), tier.Limits.MessagesExpiryDuration) require.Equal(t, int64(123123), tier.Limits.Emails) require.Equal(t, int64(999111), tier.Limits.AttachmentFileSize) require.Equal(t, int64(888111), tier.Limits.AttachmentTotalSize) require.Equal(t, int64(3600), tier.Limits.AttachmentExpiryDuration) } func TestPayments_SubscriptionCreate_NotAStripeCustomer_Success(t *testing.T) { stripeMock := &testStripeAPI{} defer stripeMock.AssertExpectations(t) c := newTestConfigWithAuthFile(t) c.StripeSecretKey = "secret key" c.StripeWebhookKey = "webhook key" s := newTestServer(t, c) s.stripe = stripeMock // Define how the mock should react stripeMock. On("NewCheckoutSession", mock.Anything). Return(&stripe.CheckoutSession{URL: "https://billing.stripe.com/abc/def"}, nil) // Create tier and user require.Nil(t, s.userManager.AddTier(&user.Tier{ ID: "ti_123", Code: "pro", StripeMonthlyPriceID: "price_123", })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) // Create subscription response := request(t, s, "POST", "/v1/account/billing/subscription", `{"tier": "pro", "interval": "month"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) redirectResponse, err := util.UnmarshalJSON[apiAccountBillingSubscriptionCreateResponse](io.NopCloser(response.Body)) require.Nil(t, err) require.Equal(t, "https://billing.stripe.com/abc/def", redirectResponse.RedirectURL) } func TestPayments_SubscriptionCreate_StripeCustomer_Success(t *testing.T) { stripeMock := &testStripeAPI{} defer stripeMock.AssertExpectations(t) c := newTestConfigWithAuthFile(t) c.StripeSecretKey = "secret key" c.StripeWebhookKey = "webhook key" s := newTestServer(t, c) s.stripe = stripeMock // Define how the mock should react stripeMock. On("GetCustomer", "acct_123"). Return(&stripe.Customer{Subscriptions: &stripe.SubscriptionList{}}, nil) stripeMock. On("NewCheckoutSession", mock.Anything). Return(&stripe.CheckoutSession{URL: "https://billing.stripe.com/abc/def"}, nil) // Create tier and user require.Nil(t, s.userManager.AddTier(&user.Tier{ ID: "ti_123", Code: "pro", StripeMonthlyPriceID: "price_123", })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) u, err := s.userManager.User("phil") require.Nil(t, err) billing := &user.Billing{ StripeCustomerID: "acct_123", } require.Nil(t, s.userManager.ChangeBilling(u.Name, billing)) // Create subscription response := request(t, s, "POST", "/v1/account/billing/subscription", `{"tier": "pro", "interval": "month"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) redirectResponse, err := util.UnmarshalJSON[apiAccountBillingSubscriptionCreateResponse](io.NopCloser(response.Body)) require.Nil(t, err) require.Equal(t, "https://billing.stripe.com/abc/def", redirectResponse.RedirectURL) } func TestPayments_AccountDelete_Cancels_Subscription(t *testing.T) { stripeMock := &testStripeAPI{} defer stripeMock.AssertExpectations(t) c := newTestConfigWithAuthFile(t) c.EnableSignup = true c.StripeSecretKey = "secret key" c.StripeWebhookKey = "webhook key" s := newTestServer(t, c) s.stripe = stripeMock // Define how the mock should react stripeMock. On("CancelSubscription", "sub_123"). Return(&stripe.Subscription{}, nil) // Create tier and user require.Nil(t, s.userManager.AddTier(&user.Tier{ ID: "ti_123", Code: "pro", StripeMonthlyPriceID: "price_123", })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) u, err := s.userManager.User("phil") require.Nil(t, err) billing := &user.Billing{ StripeCustomerID: "acct_123", StripeSubscriptionID: "sub_123", } require.Nil(t, s.userManager.ChangeBilling(u.Name, billing)) // Delete account rr := request(t, s, "DELETE", "/v1/account", `{"password": "phil"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "mypass"), }) require.Equal(t, 401, rr.Code) } func TestPayments_Checkout_Success_And_Increase_Rate_Limits_Reset_Visitor(t *testing.T) { // This test is too overloaded, but it's also a great end-to-end a test. // // It tests: // - A successful checkout flow (not a paying customer -> paying customer) // - Tier-changes reset the rate limits for the user // - The request limits for tier-less user and a tier-user // - The message limits for a tier-user stripeMock := &testStripeAPI{} defer stripeMock.AssertExpectations(t) c := newTestConfigWithAuthFile(t) c.StripeSecretKey = "secret key" c.StripeWebhookKey = "webhook key" c.VisitorRequestLimitBurst = 5 c.VisitorRequestLimitReplenish = time.Hour c.CacheBatchSize = 500 c.CacheBatchTimeout = time.Second s := newTestServer(t, c) s.stripe = stripeMock // Create a user with a Stripe subscription and 3 reservations require.Nil(t, s.userManager.AddTier(&user.Tier{ ID: "ti_123", Code: "starter", StripeMonthlyPriceID: "price_1234", ReservationLimit: 1, MessageLimit: 220, // 220 * 5% = 11 requests before rate limiting kicks in MessageExpiryDuration: time.Hour, })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) // No tier u, err := s.userManager.User("phil") require.Nil(t, err) // Define how the mock should react stripeMock. On("GetSession", "SOMETOKEN"). Return(&stripe.CheckoutSession{ ClientReferenceID: u.ID, // ntfy user ID Customer: &stripe.Customer{ ID: "acct_5555", }, Subscription: &stripe.Subscription{ ID: "sub_1234", }, }, nil) stripeMock. On("GetSubscription", "sub_1234"). Return(&stripe.Subscription{ ID: "sub_1234", Status: stripe.SubscriptionStatusActive, CurrentPeriodEnd: 123456789, CancelAt: 0, Items: &stripe.SubscriptionItemList{ Data: []*stripe.SubscriptionItem{ { Price: &stripe.Price{ ID: "price_1234", Recurring: &stripe.PriceRecurring{ Interval: stripe.PriceRecurringIntervalMonth, }, }, }, }, }, }, nil) stripeMock. On("UpdateCustomer", "acct_5555", &stripe.CustomerParams{ Params: stripe.Params{ Metadata: map[string]string{ "user_id": u.ID, "user_name": u.Name, }, }, }). Return(&stripe.Customer{}, nil) // Send messages until rate limit of free tier is hit for i := 0; i < 5; i++ { rr := request(t, s, "PUT", "/mytopic", "some message", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) } rr := request(t, s, "PUT", "/mytopic", "some message", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 429, rr.Code) // Verify some "before-stats" u, err = s.userManager.User("phil") require.Nil(t, err) require.Nil(t, u.Tier) require.Equal(t, "", u.Billing.StripeCustomerID) require.Equal(t, "", u.Billing.StripeSubscriptionID) require.Equal(t, stripe.SubscriptionStatus(""), u.Billing.StripeSubscriptionStatus) require.Equal(t, stripe.PriceRecurringInterval(""), u.Billing.StripeSubscriptionInterval) require.Equal(t, int64(0), u.Billing.StripeSubscriptionPaidUntil.Unix()) require.Equal(t, int64(0), u.Billing.StripeSubscriptionCancelAt.Unix()) require.Equal(t, int64(0), u.Stats.Messages) // Messages and emails are not persisted for no-tier users! require.Equal(t, int64(0), u.Stats.Emails) // Simulate Stripe success return URL call (no user context) rr = request(t, s, "GET", "/v1/account/billing/subscription/success/SOMETOKEN", "", nil) require.Equal(t, 303, rr.Code) // Verify that database columns were updated u, err = s.userManager.User("phil") require.Nil(t, err) require.Equal(t, "starter", u.Tier.Code) // Not "pro" require.Equal(t, "acct_5555", u.Billing.StripeCustomerID) require.Equal(t, "sub_1234", u.Billing.StripeSubscriptionID) require.Equal(t, stripe.SubscriptionStatusActive, u.Billing.StripeSubscriptionStatus) require.Equal(t, stripe.PriceRecurringIntervalMonth, u.Billing.StripeSubscriptionInterval) require.Equal(t, int64(123456789), u.Billing.StripeSubscriptionPaidUntil.Unix()) require.Equal(t, int64(0), u.Billing.StripeSubscriptionCancelAt.Unix()) require.Equal(t, int64(0), u.Stats.Messages) require.Equal(t, int64(0), u.Stats.Emails) // Now for the fun part: Verify that new rate limits are immediately applied // This only tests the request limiter, which kicks in before the message limiter. for i := 0; i < 11; i++ { rr := request(t, s, "PUT", "/mytopic", "some message", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code, "failed on iteration %d", i) } rr = request(t, s, "PUT", "/mytopic", "some message", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 429, rr.Code) // Now let's test the message limiter by faking a ridiculously generous rate limiter v := s.visitor(netip.MustParseAddr("9.9.9.9"), u) v.requestLimiter = rate.NewLimiter(rate.Every(time.Millisecond), 1000000) var wg sync.WaitGroup for i := 0; i < 209; i++ { wg.Add(1) go func(i int) { defer wg.Done() rr := request(t, s, "PUT", "/mytopic", "some message", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code, "Failed on %d", i) }(i) } wg.Wait() rr = request(t, s, "PUT", "/mytopic", "some message", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 429, rr.Code) // And now let's cross-check that the stats are correct too rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) account, _ := util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, int64(220), account.Limits.Messages) require.Equal(t, int64(220), account.Stats.Messages) require.Equal(t, int64(0), account.Stats.MessagesRemaining) } func TestPayments_Webhook_Subscription_Updated_Downgrade_From_PastDue_To_Active(t *testing.T) { t.Parallel() // This tests incoming webhooks from Stripe to update a subscription: // - All Stripe columns are updated in the user table // - When downgrading, excess reservations are deleted, including messages and attachments in // the corresponding topics stripeMock := &testStripeAPI{} defer stripeMock.AssertExpectations(t) c := newTestConfigWithAuthFile(t) c.StripeSecretKey = "secret key" c.StripeWebhookKey = "webhook key" s := newTestServer(t, c) s.stripe = stripeMock // Define how the mock should react stripeMock. On("ConstructWebhookEvent", mock.Anything, "stripe signature", "webhook key"). Return(jsonToStripeEvent(t, subscriptionUpdatedEventJSON), nil) // Create a user with a Stripe subscription and 3 reservations require.Nil(t, s.userManager.AddTier(&user.Tier{ ID: "ti_1", Code: "starter", StripeMonthlyPriceID: "price_1234", // ! ReservationLimit: 1, // ! MessageLimit: 100, MessageExpiryDuration: time.Hour, AttachmentExpiryDuration: time.Hour, AttachmentFileSizeLimit: 1000000, AttachmentTotalSizeLimit: 1000000, AttachmentBandwidthLimit: 1000000, })) require.Nil(t, s.userManager.AddTier(&user.Tier{ ID: "ti_2", Code: "pro", StripeMonthlyPriceID: "price_1111", // ! ReservationLimit: 3, // ! MessageLimit: 200, MessageExpiryDuration: time.Hour, AttachmentExpiryDuration: time.Hour, AttachmentFileSizeLimit: 1000000, AttachmentTotalSizeLimit: 1000000, AttachmentBandwidthLimit: 1000000, })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("phil", "pro")) require.Nil(t, s.userManager.AddReservation("phil", "atopic", user.PermissionDenyAll)) require.Nil(t, s.userManager.AddReservation("phil", "ztopic", user.PermissionDenyAll)) // Add billing details u, err := s.userManager.User("phil") require.Nil(t, err) billing := &user.Billing{ StripeCustomerID: "acct_5555", StripeSubscriptionID: "sub_1234", StripeSubscriptionStatus: stripe.SubscriptionStatusPastDue, StripeSubscriptionInterval: stripe.PriceRecurringIntervalMonth, StripeSubscriptionPaidUntil: time.Unix(123, 0), StripeSubscriptionCancelAt: time.Unix(456, 0), } require.Nil(t, s.userManager.ChangeBilling(u.Name, billing)) // Add some messages to "atopic" and "ztopic", everything in "ztopic" will be deleted rr := request(t, s, "PUT", "/atopic", "some aaa message", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) rr = request(t, s, "PUT", "/atopic", strings.Repeat("a", 5000), map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) a2 := toMessage(t, rr.Body.String()) require.FileExists(t, filepath.Join(s.config.AttachmentCacheDir, a2.ID)) rr = request(t, s, "PUT", "/ztopic", "some zzz message", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) rr = request(t, s, "PUT", "/ztopic", strings.Repeat("z", 5000), map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) z2 := toMessage(t, rr.Body.String()) require.FileExists(t, filepath.Join(s.config.AttachmentCacheDir, z2.ID)) // Call the webhook: This does all the magic rr = request(t, s, "POST", "/v1/account/billing/webhook", "dummy", map[string]string{ "Stripe-Signature": "stripe signature", }) require.Equal(t, 200, rr.Code) // Verify that database columns were updated u, err = s.userManager.User("phil") require.Nil(t, err) require.Equal(t, "starter", u.Tier.Code) // Not "pro" require.Equal(t, "acct_5555", u.Billing.StripeCustomerID) require.Equal(t, "sub_1234", u.Billing.StripeSubscriptionID) require.Equal(t, stripe.SubscriptionStatusActive, u.Billing.StripeSubscriptionStatus) // Not "past_due" require.Equal(t, stripe.PriceRecurringIntervalYear, u.Billing.StripeSubscriptionInterval) // Not "month" require.Equal(t, int64(1674268231), u.Billing.StripeSubscriptionPaidUntil.Unix()) // Updated require.Equal(t, int64(1674299999), u.Billing.StripeSubscriptionCancelAt.Unix()) // Updated // Verify that reservations were deleted r, err := s.userManager.Reservations("phil") require.Nil(t, err) require.Equal(t, 1, len(r)) // "ztopic" reservation was deleted require.Equal(t, "atopic", r[0].Topic) // Verify that messages and attachments were deleted time.Sleep(time.Second) s.execManager() ms, err := s.messageCache.Messages("atopic", sinceAllMessages, false) require.Nil(t, err) require.Equal(t, 2, len(ms)) require.FileExists(t, filepath.Join(s.config.AttachmentCacheDir, a2.ID)) ms, err = s.messageCache.Messages("ztopic", sinceAllMessages, false) require.Nil(t, err) require.Equal(t, 0, len(ms)) require.NoFileExists(t, filepath.Join(s.config.AttachmentCacheDir, z2.ID)) } func TestPayments_Webhook_Subscription_Deleted(t *testing.T) { // This tests incoming webhooks from Stripe to delete a subscription. It verifies that the database is // updated (all Stripe fields are deleted, and the tier is removed). // // It doesn't fully test the message/attachment deletion. That is tested above in the subscription update call. stripeMock := &testStripeAPI{} defer stripeMock.AssertExpectations(t) c := newTestConfigWithAuthFile(t) c.StripeSecretKey = "secret key" c.StripeWebhookKey = "webhook key" s := newTestServer(t, c) s.stripe = stripeMock // Define how the mock should react stripeMock. On("ConstructWebhookEvent", mock.Anything, "stripe signature", "webhook key"). Return(jsonToStripeEvent(t, subscriptionDeletedEventJSON), nil) // Create a user with a Stripe subscription and 3 reservations require.Nil(t, s.userManager.AddTier(&user.Tier{ ID: "ti_1", Code: "pro", StripeMonthlyPriceID: "price_1234", ReservationLimit: 1, })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("phil", "pro")) require.Nil(t, s.userManager.AddReservation("phil", "atopic", user.PermissionDenyAll)) // Add billing details u, err := s.userManager.User("phil") require.Nil(t, err) require.Nil(t, s.userManager.ChangeBilling(u.Name, &user.Billing{ StripeCustomerID: "acct_5555", StripeSubscriptionID: "sub_1234", StripeSubscriptionStatus: stripe.SubscriptionStatusPastDue, StripeSubscriptionInterval: stripe.PriceRecurringIntervalMonth, StripeSubscriptionPaidUntil: time.Unix(123, 0), StripeSubscriptionCancelAt: time.Unix(0, 0), })) // Call the webhook: This does all the magic rr := request(t, s, "POST", "/v1/account/billing/webhook", "dummy", map[string]string{ "Stripe-Signature": "stripe signature", }) require.Equal(t, 200, rr.Code) // Verify that database columns were updated u, err = s.userManager.User("phil") require.Nil(t, err) require.Nil(t, u.Tier) require.Equal(t, "acct_5555", u.Billing.StripeCustomerID) require.Equal(t, "", u.Billing.StripeSubscriptionID) require.Equal(t, stripe.SubscriptionStatus(""), u.Billing.StripeSubscriptionStatus) require.Equal(t, int64(0), u.Billing.StripeSubscriptionPaidUntil.Unix()) require.Equal(t, int64(0), u.Billing.StripeSubscriptionCancelAt.Unix()) // Verify that reservations were deleted r, err := s.userManager.Reservations("phil") require.Nil(t, err) require.Equal(t, 0, len(r)) } func TestPayments_Subscription_Update_Different_Tier(t *testing.T) { stripeMock := &testStripeAPI{} defer stripeMock.AssertExpectations(t) c := newTestConfigWithAuthFile(t) c.StripeSecretKey = "secret key" c.StripeWebhookKey = "webhook key" s := newTestServer(t, c) s.stripe = stripeMock // Define how the mock should react stripeMock. On("GetSubscription", "sub_123"). Return(&stripe.Subscription{ ID: "sub_123", Items: &stripe.SubscriptionItemList{ Data: []*stripe.SubscriptionItem{ { ID: "someid_123", Price: &stripe.Price{ID: "price_123"}, }, }, }, }, nil) stripeMock. On("UpdateSubscription", "sub_123", &stripe.SubscriptionParams{ CancelAtPeriodEnd: stripe.Bool(false), ProrationBehavior: stripe.String(string(stripe.SubscriptionSchedulePhaseProrationBehaviorAlwaysInvoice)), Items: []*stripe.SubscriptionItemsParams{ { ID: stripe.String("someid_123"), Price: stripe.String("price_457"), }, }, }). Return(&stripe.Subscription{}, nil) // Create tier and user require.Nil(t, s.userManager.AddTier(&user.Tier{ ID: "ti_123", Code: "pro", StripeMonthlyPriceID: "price_123", StripeYearlyPriceID: "price_124", })) require.Nil(t, s.userManager.AddTier(&user.Tier{ ID: "ti_456", Code: "business", StripeMonthlyPriceID: "price_456", StripeYearlyPriceID: "price_457", })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("phil", "pro")) require.Nil(t, s.userManager.ChangeBilling("phil", &user.Billing{ StripeCustomerID: "acct_123", StripeSubscriptionID: "sub_123", })) // Call endpoint to change subscription rr := request(t, s, "PUT", "/v1/account/billing/subscription", `{"tier":"business","interval":"year"}`, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) } func TestPayments_Subscription_Delete_At_Period_End(t *testing.T) { stripeMock := &testStripeAPI{} defer stripeMock.AssertExpectations(t) c := newTestConfigWithAuthFile(t) c.StripeSecretKey = "secret key" c.StripeWebhookKey = "webhook key" s := newTestServer(t, c) s.stripe = stripeMock // Define how the mock should react stripeMock. On("UpdateSubscription", "sub_123", mock.MatchedBy(func(s *stripe.SubscriptionParams) bool { return *s.CancelAtPeriodEnd // Is true })). Return(&stripe.Subscription{}, nil) // Create user require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.ChangeBilling("phil", &user.Billing{ StripeCustomerID: "acct_123", StripeSubscriptionID: "sub_123", })) // Delete subscription rr := request(t, s, "DELETE", "/v1/account/billing/subscription", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) } func TestPayments_CreatePortalSession(t *testing.T) { stripeMock := &testStripeAPI{} defer stripeMock.AssertExpectations(t) c := newTestConfigWithAuthFile(t) c.StripeSecretKey = "secret key" c.StripeWebhookKey = "webhook key" s := newTestServer(t, c) s.stripe = stripeMock // Define how the mock should react stripeMock. On("NewPortalSession", &stripe.BillingPortalSessionParams{ Customer: stripe.String("acct_123"), ReturnURL: stripe.String(s.config.BaseURL), }). Return(&stripe.BillingPortalSession{ URL: "https://billing.stripe.com/blablabla", }, nil) // Create user require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.ChangeBilling("phil", &user.Billing{ StripeCustomerID: "acct_123", StripeSubscriptionID: "sub_123", })) // Create portal session rr := request(t, s, "POST", "/v1/account/billing/portal", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) ps, _ := util.UnmarshalJSON[apiAccountBillingPortalRedirectResponse](io.NopCloser(rr.Body)) require.Equal(t, "https://billing.stripe.com/blablabla", ps.RedirectURL) } type testStripeAPI struct { mock.Mock } var _ stripeAPI = (*testStripeAPI)(nil) func (s *testStripeAPI) NewCheckoutSession(params *stripe.CheckoutSessionParams) (*stripe.CheckoutSession, error) { args := s.Called(params) return args.Get(0).(*stripe.CheckoutSession), args.Error(1) } func (s *testStripeAPI) NewPortalSession(params *stripe.BillingPortalSessionParams) (*stripe.BillingPortalSession, error) { args := s.Called(params) return args.Get(0).(*stripe.BillingPortalSession), args.Error(1) } func (s *testStripeAPI) ListPrices(params *stripe.PriceListParams) ([]*stripe.Price, error) { args := s.Called(params) return args.Get(0).([]*stripe.Price), args.Error(1) } func (s *testStripeAPI) GetCustomer(id string) (*stripe.Customer, error) { args := s.Called(id) return args.Get(0).(*stripe.Customer), args.Error(1) } func (s *testStripeAPI) GetSession(id string) (*stripe.CheckoutSession, error) { args := s.Called(id) return args.Get(0).(*stripe.CheckoutSession), args.Error(1) } func (s *testStripeAPI) GetSubscription(id string) (*stripe.Subscription, error) { args := s.Called(id) return args.Get(0).(*stripe.Subscription), args.Error(1) } func (s *testStripeAPI) UpdateCustomer(id string, params *stripe.CustomerParams) (*stripe.Customer, error) { args := s.Called(id, params) return args.Get(0).(*stripe.Customer), args.Error(1) } func (s *testStripeAPI) UpdateSubscription(id string, params *stripe.SubscriptionParams) (*stripe.Subscription, error) { args := s.Called(id, params) return args.Get(0).(*stripe.Subscription), args.Error(1) } func (s *testStripeAPI) CancelSubscription(id string) (*stripe.Subscription, error) { args := s.Called(id) return args.Get(0).(*stripe.Subscription), args.Error(1) } func (s *testStripeAPI) ConstructWebhookEvent(payload []byte, header string, secret string) (stripe.Event, error) { args := s.Called(payload, header, secret) return args.Get(0).(stripe.Event), args.Error(1) } func jsonToStripeEvent(t *testing.T, v string) stripe.Event { var e stripe.Event if err := json.Unmarshal([]byte(v), &e); err != nil { t.Fatal(err) } return e } const subscriptionUpdatedEventJSON = ` { "type": "customer.subscription.updated", "data": { "object": { "id": "sub_1234", "customer": "acct_5555", "status": "active", "current_period_end": 1674268231, "cancel_at": 1674299999, "items": { "data": [ { "price": { "id": "price_1234", "recurring": { "interval": "year" } } } ] } } } }` const subscriptionDeletedEventJSON = ` { "type": "customer.subscription.deleted", "data": { "object": { "id": "sub_1234", "customer": "acct_5555", "status": "active", "current_period_end": 1674268231, "cancel_at": 1674299999, "items": { "data": [ { "price": { "id": "price_1234", "recurring": { "interval": "month" } } } ] } } } }` ntfy-2.11.0/server/server_test.go000066400000000000000000004566441462047176100170100ustar00rootroot00000000000000package server import ( "bufio" "context" "crypto/rand" "encoding/base64" "encoding/json" "fmt" "golang.org/x/crypto/bcrypt" "heckel.io/ntfy/v2/user" "io" "net/http" "net/http/httptest" "net/netip" "os" "path/filepath" "runtime/debug" "strings" "sync" "sync/atomic" "testing" "time" "github.com/SherClockHolmes/webpush-go" "github.com/stretchr/testify/require" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/util" ) func TestMain(m *testing.M) { log.SetLevel(log.ErrorLevel) os.Exit(m.Run()) } func TestServer_PublishAndPoll(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response1 := request(t, s, "PUT", "/mytopic", "my first message", nil) msg1 := toMessage(t, response1.Body.String()) require.NotEmpty(t, msg1.ID) require.Equal(t, "my first message", msg1.Message) response2 := request(t, s, "PUT", "/mytopic", "my second\n\nmessage", nil) msg2 := toMessage(t, response2.Body.String()) require.NotEqual(t, msg1.ID, msg2.ID) require.NotEmpty(t, msg2.ID) require.Equal(t, "my second\n\nmessage", msg2.Message) response := request(t, s, "GET", "/mytopic/json?poll=1", "", nil) messages := toMessages(t, response.Body.String()) require.Equal(t, 2, len(messages)) require.Equal(t, "my first message", messages[0].Message) require.Equal(t, "my second\n\nmessage", messages[1].Message) response = request(t, s, "GET", "/mytopic/sse?poll=1&since=all", "", nil) lines := strings.Split(strings.TrimSpace(response.Body.String()), "\n") require.Equal(t, 3, len(lines)) require.Equal(t, "my first message", toMessage(t, strings.TrimPrefix(lines[0], "data: ")).Message) require.Equal(t, "", lines[1]) require.Equal(t, "my second\n\nmessage", toMessage(t, strings.TrimPrefix(lines[2], "data: ")).Message) response = request(t, s, "GET", "/mytopic/raw?poll=1", "", nil) lines = strings.Split(strings.TrimSpace(response.Body.String()), "\n") require.Equal(t, 2, len(lines)) require.Equal(t, "my first message", lines[0]) require.Equal(t, "my second message", lines[1]) // \n -> " " } func TestServer_PublishWithFirebase(t *testing.T) { sender := newTestFirebaseSender(10) s := newTestServer(t, newTestConfig(t)) s.firebaseClient = newFirebaseClient(sender, &testAuther{Allow: true}) response := request(t, s, "PUT", "/mytopic", "my first message", nil) msg1 := toMessage(t, response.Body.String()) require.NotEmpty(t, msg1.ID) require.Equal(t, "my first message", msg1.Message) time.Sleep(100 * time.Millisecond) // Firebase publishing happens require.Equal(t, 1, len(sender.Messages())) require.Equal(t, "my first message", sender.Messages()[0].Data["message"]) require.Equal(t, "my first message", sender.Messages()[0].APNS.Payload.Aps.Alert.Body) require.Equal(t, "my first message", sender.Messages()[0].APNS.Payload.CustomData["message"]) } func TestServer_PublishWithFirebase_WithoutUsers_AndWithoutPanic(t *testing.T) { // This tests issue #641, which used to panic before the fix firebaseKeyFile := filepath.Join(t.TempDir(), "firebase.json") contents := `{ "type": "service_account", "project_id": "ntfy-test", "private_key_id": "fsfhskjdfhskdhfskdjfhsdf", "private_key": "lalala", "client_email": "firebase-adminsdk-muv04@ntfy-test.iam.gserviceaccount.com", "client_id": "123123213", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-muv04%40ntfy-test.iam.gserviceaccount.com" } ` require.Nil(t, os.WriteFile(firebaseKeyFile, []byte(contents), 0600)) c := newTestConfig(t) c.FirebaseKeyFile = firebaseKeyFile s := newTestServer(t, c) response := request(t, s, "PUT", "/mytopic", "my first message", nil) require.Equal(t, "my first message", toMessage(t, response.Body.String()).Message) } func TestServer_SubscribeOpenAndKeepalive(t *testing.T) { t.Parallel() c := newTestConfig(t) c.KeepaliveInterval = time.Second s := newTestServer(t, c) rr := httptest.NewRecorder() ctx, cancel := context.WithCancel(context.Background()) req, err := http.NewRequestWithContext(ctx, "GET", "/mytopic/json", nil) if err != nil { t.Fatal(err) } doneChan := make(chan bool) go func() { s.handle(rr, req) doneChan <- true }() time.Sleep(1300 * time.Millisecond) cancel() <-doneChan messages := toMessages(t, rr.Body.String()) require.Equal(t, 2, len(messages)) require.Equal(t, openEvent, messages[0].Event) require.Equal(t, "mytopic", messages[0].Topic) require.Equal(t, "", messages[0].Message) require.Equal(t, "", messages[0].Title) require.Equal(t, 0, messages[0].Priority) require.Nil(t, messages[0].Tags) require.Equal(t, keepaliveEvent, messages[1].Event) require.Equal(t, "mytopic", messages[1].Topic) require.Equal(t, "", messages[1].Message) require.Equal(t, "", messages[1].Title) require.Equal(t, 0, messages[1].Priority) require.Nil(t, messages[1].Tags) } func TestServer_PublishAndSubscribe(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) subscribeRR := httptest.NewRecorder() subscribeCancel := subscribe(t, s, "/mytopic/json", subscribeRR) publishFirstRR := request(t, s, "PUT", "/mytopic", "my first message", nil) require.Equal(t, 200, publishFirstRR.Code) time.Sleep(500 * time.Millisecond) // Publishing is done asynchronously, this avoids races publishSecondRR := request(t, s, "PUT", "/mytopic", "my other message", map[string]string{ "Title": " This is a title ", "X-Tags": "tag1,tag 2, tag3", "p": "1", }) require.Equal(t, 200, publishSecondRR.Code) subscribeCancel() messages := toMessages(t, subscribeRR.Body.String()) require.Equal(t, 3, len(messages)) require.Equal(t, openEvent, messages[0].Event) require.Equal(t, messageEvent, messages[1].Event) require.Equal(t, "mytopic", messages[1].Topic) require.Equal(t, "my first message", messages[1].Message) require.Equal(t, "", messages[1].Title) require.Equal(t, 0, messages[1].Priority) require.Nil(t, messages[1].Tags) require.True(t, time.Now().Add(12*time.Hour-5*time.Second).Unix() < messages[1].Expires) require.True(t, time.Now().Add(12*time.Hour+5*time.Second).Unix() > messages[1].Expires) require.Equal(t, messageEvent, messages[2].Event) require.Equal(t, "mytopic", messages[2].Topic) require.Equal(t, "my other message", messages[2].Message) require.Equal(t, "This is a title", messages[2].Title) require.Equal(t, 1, messages[2].Priority) require.Equal(t, []string{"tag1", "tag 2", "tag3"}, messages[2].Tags) } func TestServer_Publish_Disallowed_Topic(t *testing.T) { c := newTestConfig(t) c.DisallowedTopics = []string{"about", "time", "this", "got", "added"} s := newTestServer(t, c) rr := request(t, s, "PUT", "/mytopic", "my first message", nil) require.Equal(t, 200, rr.Code) rr = request(t, s, "PUT", "/about", "another message", nil) require.Equal(t, 400, rr.Code) require.Equal(t, 40010, toHTTPError(t, rr.Body.String()).Code) } func TestServer_StaticSites(t *testing.T) { s := newTestServer(t, newTestConfig(t)) rr := request(t, s, "GET", "/", "", nil) require.Equal(t, 200, rr.Code) require.Contains(t, rr.Body.String(), "") rr = request(t, s, "HEAD", "/", "", nil) require.Equal(t, 200, rr.Code) rr = request(t, s, "OPTIONS", "/", "", nil) require.Equal(t, 200, rr.Code) rr = request(t, s, "GET", "/does-not-exist.txt", "", nil) require.Equal(t, 404, rr.Code) rr = request(t, s, "GET", "/mytopic", "", nil) require.Equal(t, 200, rr.Code) require.Contains(t, rr.Body.String(), ``) rr = request(t, s, "GET", "/docs", "", nil) require.Equal(t, 301, rr.Code) // Docs test removed, it was failing annoyingly. } func TestServer_WebEnabled(t *testing.T) { conf := newTestConfig(t) conf.WebRoot = "" // Disable web app s := newTestServer(t, conf) rr := request(t, s, "GET", "/", "", nil) require.Equal(t, 404, rr.Code) rr = request(t, s, "GET", "/config.js", "", nil) require.Equal(t, 404, rr.Code) rr = request(t, s, "GET", "/sw.js", "", nil) require.Equal(t, 404, rr.Code) rr = request(t, s, "GET", "/app.html", "", nil) require.Equal(t, 404, rr.Code) rr = request(t, s, "GET", "/static/css/home.css", "", nil) require.Equal(t, 404, rr.Code) conf2 := newTestConfig(t) conf2.WebRoot = "/" s2 := newTestServer(t, conf2) rr = request(t, s2, "GET", "/", "", nil) require.Equal(t, 200, rr.Code) rr = request(t, s2, "GET", "/config.js", "", nil) require.Equal(t, 200, rr.Code) rr = request(t, s2, "GET", "/sw.js", "", nil) require.Equal(t, 200, rr.Code) rr = request(t, s2, "GET", "/app.html", "", nil) require.Equal(t, 200, rr.Code) } func TestServer_WebPushEnabled(t *testing.T) { conf := newTestConfig(t) conf.WebRoot = "" // Disable web app s := newTestServer(t, conf) rr := request(t, s, "GET", "/manifest.webmanifest", "", nil) require.Equal(t, 404, rr.Code) conf2 := newTestConfig(t) s2 := newTestServer(t, conf2) rr = request(t, s2, "GET", "/manifest.webmanifest", "", nil) require.Equal(t, 404, rr.Code) conf3 := newTestConfigWithWebPush(t) s3 := newTestServer(t, conf3) rr = request(t, s3, "GET", "/manifest.webmanifest", "", nil) require.Equal(t, 200, rr.Code) require.Equal(t, "application/manifest+json", rr.Header().Get("Content-Type")) } func TestServer_PublishLargeMessage(t *testing.T) { c := newTestConfig(t) c.AttachmentCacheDir = "" // Disable attachments s := newTestServer(t, c) body := strings.Repeat("this is a large message", 5000) response := request(t, s, "PUT", "/mytopic", body, nil) require.Equal(t, 400, response.Code) } func TestServer_PublishPriority(t *testing.T) { s := newTestServer(t, newTestConfig(t)) for prio := 1; prio <= 5; prio++ { response := request(t, s, "GET", fmt.Sprintf("/mytopic/publish?priority=%d", prio), fmt.Sprintf("priority %d", prio), nil) msg := toMessage(t, response.Body.String()) require.Equal(t, prio, msg.Priority) } response := request(t, s, "GET", "/mytopic/publish?priority=min", "test", nil) require.Equal(t, 1, toMessage(t, response.Body.String()).Priority) response = request(t, s, "GET", "/mytopic/send?priority=low", "test", nil) require.Equal(t, 2, toMessage(t, response.Body.String()).Priority) response = request(t, s, "GET", "/mytopic/send?priority=default", "test", nil) require.Equal(t, 3, toMessage(t, response.Body.String()).Priority) response = request(t, s, "GET", "/mytopic/send?priority=high", "test", nil) require.Equal(t, 4, toMessage(t, response.Body.String()).Priority) response = request(t, s, "GET", "/mytopic/send?priority=max", "test", nil) require.Equal(t, 5, toMessage(t, response.Body.String()).Priority) response = request(t, s, "GET", "/mytopic/trigger?priority=urgent", "test", nil) require.Equal(t, 5, toMessage(t, response.Body.String()).Priority) response = request(t, s, "GET", "/mytopic/trigger?priority=INVALID", "test", nil) require.Equal(t, 40007, toHTTPError(t, response.Body.String()).Code) } func TestServer_PublishPriority_SpecialHTTPHeader(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "POST", "/mytopic", "test", map[string]string{ "Priority": "u=4", "X-Priority": "5", }) require.Equal(t, 5, toMessage(t, response.Body.String()).Priority) response = request(t, s, "POST", "/mytopic?priority=4", "test", map[string]string{ "Priority": "u=9", }) require.Equal(t, 4, toMessage(t, response.Body.String()).Priority) response = request(t, s, "POST", "/mytopic", "test", map[string]string{ "p": "2", "priority": "u=9, i", }) require.Equal(t, 2, toMessage(t, response.Body.String()).Priority) } func TestServer_PublishGETOnlyOneTopic(t *testing.T) { // This tests a bug that allowed publishing topics with a comma in the name (no ticket) s := newTestServer(t, newTestConfig(t)) response := request(t, s, "GET", "/mytopic,mytopic2/publish?m=hi", "", nil) require.Equal(t, 404, response.Code) } func TestServer_PublishNoCache(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", "this message is not cached", map[string]string{ "Cache": "no", }) msg := toMessage(t, response.Body.String()) require.NotEmpty(t, msg.ID) require.Equal(t, "this message is not cached", msg.Message) require.Equal(t, int64(0), msg.Expires) response = request(t, s, "GET", "/mytopic/json?poll=1", "", nil) messages := toMessages(t, response.Body.String()) require.Empty(t, messages) } func TestServer_PublishAt(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", "a message", map[string]string{ "In": "1h", }) require.Equal(t, 200, response.Code) response = request(t, s, "GET", "/mytopic/json?poll=1", "", nil) messages := toMessages(t, response.Body.String()) require.Equal(t, 0, len(messages)) // Update message time to the past fakeTime := time.Now().Add(-10 * time.Second).Unix() _, err := s.messageCache.db.Exec(`UPDATE messages SET time=?`, fakeTime) require.Nil(t, err) // Trigger delayed message sending require.Nil(t, s.sendDelayedMessages()) response = request(t, s, "GET", "/mytopic/json?poll=1", "", nil) messages = toMessages(t, response.Body.String()) require.Equal(t, 1, len(messages)) require.Equal(t, "a message", messages[0].Message) require.Equal(t, netip.Addr{}, messages[0].Sender) // Never return the sender! messages, err = s.messageCache.Messages("mytopic", sinceAllMessages, true) require.Nil(t, err) require.Equal(t, 1, len(messages)) require.Equal(t, "a message", messages[0].Message) require.Equal(t, "9.9.9.9", messages[0].Sender.String()) // It's stored in the DB though! } func TestServer_PublishAt_FromUser(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfigWithAuthFile(t)) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleAdmin)) response := request(t, s, "PUT", "/mytopic", "a message", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), "In": "1h", }) require.Equal(t, 200, response.Code) // Message doesn't show up immediately response = request(t, s, "GET", "/mytopic/json?poll=1", "", nil) messages := toMessages(t, response.Body.String()) require.Equal(t, 0, len(messages)) // Update message time to the past fakeTime := time.Now().Add(-10 * time.Second).Unix() _, err := s.messageCache.db.Exec(`UPDATE messages SET time=?`, fakeTime) require.Nil(t, err) // Trigger delayed message sending require.Nil(t, s.sendDelayedMessages()) response = request(t, s, "GET", "/mytopic/json?poll=1", "", nil) messages = toMessages(t, response.Body.String()) require.Equal(t, 1, len(messages)) require.Equal(t, fakeTime, messages[0].Time) require.Equal(t, "a message", messages[0].Message) messages, err = s.messageCache.Messages("mytopic", sinceAllMessages, true) require.Nil(t, err) require.Equal(t, 1, len(messages)) require.Equal(t, "a message", messages[0].Message) require.True(t, strings.HasPrefix(messages[0].User, "u_")) } func TestServer_PublishAt_Expires(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", "a message", map[string]string{ "In": "2 days", }) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.True(t, m.Expires > time.Now().Add(12*time.Hour+48*time.Hour-time.Minute).Unix()) require.True(t, m.Expires < time.Now().Add(12*time.Hour+48*time.Hour+time.Minute).Unix()) } func TestServer_PublishAtWithCacheError(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", "a message", map[string]string{ "Cache": "no", "In": "30 min", }) require.Equal(t, 400, response.Code) require.Equal(t, errHTTPBadRequestDelayNoCache, toHTTPError(t, response.Body.String())) } func TestServer_PublishAtTooShortDelay(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", "a message", map[string]string{ "In": "1s", }) require.Equal(t, 400, response.Code) } func TestServer_PublishAtTooLongDelay(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", "a message", map[string]string{ "In": "99999999h", }) require.Equal(t, 400, response.Code) } func TestServer_PublishAtInvalidDelay(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic?delay=INVALID", "a message", nil) err := toHTTPError(t, response.Body.String()) require.Equal(t, 400, response.Code) require.Equal(t, 40004, err.Code) } func TestServer_PublishAtTooLarge(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic?x-in=99999h", "a message", nil) err := toHTTPError(t, response.Body.String()) require.Equal(t, 400, response.Code) require.Equal(t, 40006, err.Code) } func TestServer_PublishAtAndPrune(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", "a message", map[string]string{ "In": "1h", }) require.Equal(t, 200, response.Code) s.execManager() // Fire pruning response = request(t, s, "GET", "/mytopic/json?poll=1&scheduled=1", "", nil) messages := toMessages(t, response.Body.String()) require.Equal(t, 1, len(messages)) // Not affected by pruning require.Equal(t, "a message", messages[0].Message) time.Sleep(time.Second) // FIXME CI failing not sure why } func TestServer_PublishAndMultiPoll(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic1", "message 1", nil) msg := toMessage(t, response.Body.String()) require.NotEmpty(t, msg.ID) require.Equal(t, "mytopic1", msg.Topic) require.Equal(t, "message 1", msg.Message) response = request(t, s, "PUT", "/mytopic2", "message 2", nil) msg = toMessage(t, response.Body.String()) require.NotEmpty(t, msg.ID) require.Equal(t, "mytopic2", msg.Topic) require.Equal(t, "message 2", msg.Message) response = request(t, s, "GET", "/mytopic1/json?poll=1", "", nil) messages := toMessages(t, response.Body.String()) require.Equal(t, 1, len(messages)) require.Equal(t, "mytopic1", messages[0].Topic) require.Equal(t, "message 1", messages[0].Message) response = request(t, s, "GET", "/mytopic1,mytopic2/json?poll=1", "", nil) messages = toMessages(t, response.Body.String()) require.Equal(t, 2, len(messages)) require.Equal(t, "mytopic1", messages[0].Topic) require.Equal(t, "message 1", messages[0].Message) require.Equal(t, "mytopic2", messages[1].Topic) require.Equal(t, "message 2", messages[1].Message) } func TestServer_PublishWithNopCache(t *testing.T) { c := newTestConfig(t) c.CacheDuration = 0 s := newTestServer(t, c) subscribeRR := httptest.NewRecorder() subscribeCancel := subscribe(t, s, "/mytopic/json", subscribeRR) publishRR := request(t, s, "PUT", "/mytopic", "my first message", nil) require.Equal(t, 200, publishRR.Code) subscribeCancel() messages := toMessages(t, subscribeRR.Body.String()) require.Equal(t, 2, len(messages)) require.Equal(t, openEvent, messages[0].Event) require.Equal(t, messageEvent, messages[1].Event) require.Equal(t, "my first message", messages[1].Message) response := request(t, s, "GET", "/mytopic/json?poll=1", "", nil) messages = toMessages(t, response.Body.String()) require.Empty(t, messages) } func TestServer_PublishAndPollSince(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) request(t, s, "PUT", "/mytopic", "test 1", nil) time.Sleep(1100 * time.Millisecond) since := time.Now().Unix() request(t, s, "PUT", "/mytopic", "test 2", nil) response := request(t, s, "GET", fmt.Sprintf("/mytopic/json?poll=1&since=%d", since), "", nil) messages := toMessages(t, response.Body.String()) require.Equal(t, 1, len(messages)) require.Equal(t, "test 2", messages[0].Message) response = request(t, s, "GET", "/mytopic/json?poll=1&since=10s", "", nil) messages = toMessages(t, response.Body.String()) require.Equal(t, 2, len(messages)) require.Equal(t, "test 1", messages[0].Message) response = request(t, s, "GET", "/mytopic/json?poll=1&since=100ms", "", nil) messages = toMessages(t, response.Body.String()) require.Equal(t, 1, len(messages)) require.Equal(t, "test 2", messages[0].Message) response = request(t, s, "GET", "/mytopic/json?poll=1&since=INVALID", "", nil) require.Equal(t, 40008, toHTTPError(t, response.Body.String()).Code) } func newMessageWithTimestamp(topic, message string, timestamp int64) *message { m := newDefaultMessage(topic, message) m.Time = timestamp return m } func TestServer_PollSinceID_MultipleTopics(t *testing.T) { s := newTestServer(t, newTestConfig(t)) require.Nil(t, s.messageCache.AddMessage(newMessageWithTimestamp("mytopic1", "test 1", 1655740277))) markerMessage := newMessageWithTimestamp("mytopic2", "test 2", 1655740283) require.Nil(t, s.messageCache.AddMessage(markerMessage)) require.Nil(t, s.messageCache.AddMessage(newMessageWithTimestamp("mytopic1", "test 3", 1655740289))) require.Nil(t, s.messageCache.AddMessage(newMessageWithTimestamp("mytopic2", "test 4", 1655740293))) require.Nil(t, s.messageCache.AddMessage(newMessageWithTimestamp("mytopic1", "test 5", 1655740297))) require.Nil(t, s.messageCache.AddMessage(newMessageWithTimestamp("mytopic2", "test 6", 1655740303))) response := request(t, s, "GET", fmt.Sprintf("/mytopic1,mytopic2/json?poll=1&since=%s", markerMessage.ID), "", nil) messages := toMessages(t, response.Body.String()) require.Equal(t, 4, len(messages)) require.Equal(t, "test 3", messages[0].Message) require.Equal(t, "mytopic1", messages[0].Topic) require.Equal(t, "test 4", messages[1].Message) require.Equal(t, "mytopic2", messages[1].Topic) require.Equal(t, "test 5", messages[2].Message) require.Equal(t, "mytopic1", messages[2].Topic) require.Equal(t, "test 6", messages[3].Message) require.Equal(t, "mytopic2", messages[3].Topic) } func TestServer_PollSinceID_MultipleTopics_IDDoesNotMatch(t *testing.T) { s := newTestServer(t, newTestConfig(t)) require.Nil(t, s.messageCache.AddMessage(newMessageWithTimestamp("mytopic1", "test 3", 1655740289))) require.Nil(t, s.messageCache.AddMessage(newMessageWithTimestamp("mytopic2", "test 4", 1655740293))) require.Nil(t, s.messageCache.AddMessage(newMessageWithTimestamp("mytopic1", "test 5", 1655740297))) require.Nil(t, s.messageCache.AddMessage(newMessageWithTimestamp("mytopic2", "test 6", 1655740303))) response := request(t, s, "GET", "/mytopic1,mytopic2/json?poll=1&since=NoMatchForID", "", nil) messages := toMessages(t, response.Body.String()) require.Equal(t, 4, len(messages)) require.Equal(t, "test 3", messages[0].Message) require.Equal(t, "test 4", messages[1].Message) require.Equal(t, "test 5", messages[2].Message) require.Equal(t, "test 6", messages[3].Message) } func TestServer_PublishViaGET(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "GET", "/mytopic/trigger", "", nil) msg := toMessage(t, response.Body.String()) require.NotEmpty(t, msg.ID) require.Equal(t, "triggered", msg.Message) response = request(t, s, "GET", "/mytopic/send?message=This+is+a+test&t=This+is+a+title&tags=skull&x-priority=5&delay=24h", "", nil) msg = toMessage(t, response.Body.String()) require.NotEmpty(t, msg.ID) require.Equal(t, "This is a test", msg.Message) require.Equal(t, "This is a title", msg.Title) require.Equal(t, []string{"skull"}, msg.Tags) require.Equal(t, 5, msg.Priority) require.Greater(t, msg.Time, time.Now().Add(23*time.Hour).Unix()) } func TestServer_PublishMessageInHeaderWithNewlines(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", "", map[string]string{ "Message": "Line 1\\nLine 2", }) msg := toMessage(t, response.Body.String()) require.NotEmpty(t, msg.ID) require.Equal(t, "Line 1\nLine 2", msg.Message) // \\n -> \n ! } func TestServer_PublishInvalidTopic(t *testing.T) { s := newTestServer(t, newTestConfig(t)) s.smtpSender = &testMailer{} response := request(t, s, "PUT", "/docs", "fail", nil) require.Equal(t, 40010, toHTTPError(t, response.Body.String()).Code) } func TestServer_PollWithQueryFilters(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic?priority=1&tags=tag1,tag2", "my first message", nil) msg := toMessage(t, response.Body.String()) require.NotEmpty(t, msg.ID) response = request(t, s, "PUT", "/mytopic?title=a+title", "my second message", map[string]string{ "Tags": "tag2,tag3", }) msg = toMessage(t, response.Body.String()) require.NotEmpty(t, msg.ID) queriesThatShouldReturnMessageOne := []string{ "/mytopic/json?poll=1&priority=1", "/mytopic/json?poll=1&priority=min", "/mytopic/json?poll=1&priority=min,low", "/mytopic/json?poll=1&priority=1,2", "/mytopic/json?poll=1&p=2,min", "/mytopic/json?poll=1&tags=tag1", "/mytopic/json?poll=1&tags=tag1,tag2", "/mytopic/json?poll=1&message=my+first+message", } for _, query := range queriesThatShouldReturnMessageOne { response = request(t, s, "GET", query, "", nil) messages := toMessages(t, response.Body.String()) require.Equal(t, 1, len(messages), "Query failed: "+query) require.Equal(t, "my first message", messages[0].Message, "Query failed: "+query) } queriesThatShouldReturnMessageTwo := []string{ "/mytopic/json?poll=1&x-priority=3", // ! "/mytopic/json?poll=1&priority=3", "/mytopic/json?poll=1&priority=default", "/mytopic/json?poll=1&p=3", "/mytopic/json?poll=1&x-tags=tag2,tag3", "/mytopic/json?poll=1&tags=tag2,tag3", "/mytopic/json?poll=1&tag=tag2,tag3", "/mytopic/json?poll=1&ta=tag2,tag3", "/mytopic/json?poll=1&x-title=a+title", "/mytopic/json?poll=1&title=a+title", "/mytopic/json?poll=1&t=a+title", "/mytopic/json?poll=1&x-message=my+second+message", "/mytopic/json?poll=1&message=my+second+message", "/mytopic/json?poll=1&m=my+second+message", "/mytopic/json?x-poll=1&m=my+second+message", "/mytopic/json?po=1&m=my+second+message", } for _, query := range queriesThatShouldReturnMessageTwo { response = request(t, s, "GET", query, "", nil) messages := toMessages(t, response.Body.String()) require.Equal(t, 1, len(messages), "Query failed: "+query) require.Equal(t, "my second message", messages[0].Message, "Query failed: "+query) } queriesThatShouldReturnNoMessages := []string{ "/mytopic/json?poll=1&priority=4", "/mytopic/json?poll=1&tags=tag1,tag2,tag3", "/mytopic/json?poll=1&title=another+title", "/mytopic/json?poll=1&message=my+third+message", "/mytopic/json?poll=1&message=my+third+message", } for _, query := range queriesThatShouldReturnNoMessages { response = request(t, s, "GET", query, "", nil) messages := toMessages(t, response.Body.String()) require.Equal(t, 0, len(messages), "Query failed: "+query) } } func TestServer_SubscribeWithQueryFilters(t *testing.T) { t.Parallel() c := newTestConfig(t) c.KeepaliveInterval = 800 * time.Millisecond s := newTestServer(t, c) subscribeResponse := httptest.NewRecorder() subscribeCancel := subscribe(t, s, "/mytopic/json?tags=zfs-issue", subscribeResponse) response := request(t, s, "PUT", "/mytopic", "my first message", nil) require.Equal(t, 200, response.Code) response = request(t, s, "PUT", "/mytopic", "ZFS scrub failed", map[string]string{ "Tags": "zfs-issue,zfs-scrub", }) require.Equal(t, 200, response.Code) time.Sleep(850 * time.Millisecond) subscribeCancel() messages := toMessages(t, subscribeResponse.Body.String()) require.Equal(t, 3, len(messages)) require.Equal(t, openEvent, messages[0].Event) require.Equal(t, messageEvent, messages[1].Event) require.Equal(t, "ZFS scrub failed", messages[1].Message) require.Equal(t, keepaliveEvent, messages[2].Event) } func TestServer_Auth_Success_Admin(t *testing.T) { c := newTestConfigWithAuthFile(t) s := newTestServer(t, c) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleAdmin)) response := request(t, s, "GET", "/mytopic/auth", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) } func TestServer_Auth_Success_User(t *testing.T) { c := newTestConfigWithAuthFile(t) c.AuthDefault = user.PermissionDenyAll s := newTestServer(t, c) require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "mytopic", user.PermissionReadWrite)) response := request(t, s, "GET", "/mytopic/auth", "", map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 200, response.Code) } func TestServer_Auth_Success_User_MultipleTopics(t *testing.T) { c := newTestConfigWithAuthFile(t) c.AuthDefault = user.PermissionDenyAll s := newTestServer(t, c) require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "mytopic", user.PermissionReadWrite)) require.Nil(t, s.userManager.AllowAccess("ben", "anothertopic", user.PermissionReadWrite)) response := request(t, s, "GET", "/mytopic,anothertopic/auth", "", map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 200, response.Code) response = request(t, s, "GET", "/mytopic,anothertopic,NOT-THIS-ONE/auth", "", map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 403, response.Code) } func TestServer_Auth_Fail_InvalidPass(t *testing.T) { c := newTestConfig(t) c.AuthFile = filepath.Join(t.TempDir(), "user.db") c.AuthDefault = user.PermissionDenyAll s := newTestServer(t, c) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleAdmin)) response := request(t, s, "GET", "/mytopic/auth", "", map[string]string{ "Authorization": util.BasicAuth("phil", "INVALID"), }) require.Equal(t, 401, response.Code) } func TestServer_Auth_Fail_Unauthorized(t *testing.T) { c := newTestConfigWithAuthFile(t) c.AuthDefault = user.PermissionDenyAll s := newTestServer(t, c) require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "sometopic", user.PermissionReadWrite)) // Not mytopic! response := request(t, s, "GET", "/mytopic/auth", "", map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 403, response.Code) } func TestServer_Auth_Fail_CannotPublish(t *testing.T) { c := newTestConfigWithAuthFile(t) c.AuthDefault = user.PermissionReadWrite // Open by default s := newTestServer(t, c) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleAdmin)) require.Nil(t, s.userManager.AllowAccess(user.Everyone, "private", user.PermissionDenyAll)) require.Nil(t, s.userManager.AllowAccess(user.Everyone, "announcements", user.PermissionRead)) response := request(t, s, "PUT", "/mytopic", "test", nil) require.Equal(t, 200, response.Code) response = request(t, s, "GET", "/mytopic/json?poll=1", "", nil) require.Equal(t, 200, response.Code) response = request(t, s, "PUT", "/announcements", "test", nil) require.Equal(t, 403, response.Code) // Cannot write as anonymous response = request(t, s, "PUT", "/announcements", "test", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) response = request(t, s, "GET", "/announcements/json?poll=1", "", nil) require.Equal(t, 200, response.Code) // Anonymous read allowed response = request(t, s, "GET", "/private/json?poll=1", "", nil) require.Equal(t, 403, response.Code) // Anonymous read not allowed } func TestServer_Auth_Fail_Rate_Limiting(t *testing.T) { c := newTestConfigWithAuthFile(t) c.VisitorAuthFailureLimitBurst = 10 s := newTestServer(t, c) for i := 0; i < 10; i++ { response := request(t, s, "PUT", "/announcements", "test", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 401, response.Code) } response := request(t, s, "PUT", "/announcements", "test", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 429, response.Code) require.Equal(t, 42909, toHTTPError(t, response.Body.String()).Code) } func TestServer_Auth_ViaQuery(t *testing.T) { c := newTestConfigWithAuthFile(t) c.AuthDefault = user.PermissionDenyAll s := newTestServer(t, c) require.Nil(t, s.userManager.AddUser("ben", "some pass", user.RoleAdmin)) u := fmt.Sprintf("/mytopic/json?poll=1&auth=%s", base64.RawURLEncoding.EncodeToString([]byte(util.BasicAuth("ben", "some pass")))) response := request(t, s, "GET", u, "", nil) require.Equal(t, 200, response.Code) u = fmt.Sprintf("/mytopic/json?poll=1&auth=%s", base64.RawURLEncoding.EncodeToString([]byte(util.BasicAuth("ben", "WRONNNGGGG")))) response = request(t, s, "GET", u, "", nil) require.Equal(t, 401, response.Code) } func TestServer_Auth_NonBasicHeader(t *testing.T) { s := newTestServer(t, newTestConfigWithAuthFile(t)) response := request(t, s, "PUT", "/mytopic", "test", map[string]string{ "Authorization": "WebPush not-supported", }) require.Equal(t, 200, response.Code) response = request(t, s, "PUT", "/mytopic", "test", map[string]string{ "Authorization": "Bearer supported", }) require.Equal(t, 401, response.Code) response = request(t, s, "PUT", "/mytopic", "test", map[string]string{ "Authorization": "basic supported", }) require.Equal(t, 401, response.Code) } func TestServer_StatsResetter(t *testing.T) { t.Parallel() // This tests the stats resetter for // - an anonymous user // - a user without a tier (treated like the same as the anonymous user) // - a user with a tier c := newTestConfigWithAuthFile(t) c.VisitorStatsResetTime = time.Now().Add(2 * time.Second) s := newTestServer(t, c) go s.runStatsResetter() // Create user with tier (tieruser) and user without tier (phil) require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "test", MessageLimit: 5, MessageExpiryDuration: -5 * time.Second, // Second, what a hack! })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.AddUser("tieruser", "tieruser", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("tieruser", "test")) // Send an anonymous message response := request(t, s, "PUT", "/mytopic", "test", nil) require.Equal(t, 200, response.Code) // Send messages from user without tier (phil) for i := 0; i < 5; i++ { response := request(t, s, "PUT", "/mytopic", "test", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) } // Send messages from user with tier for i := 0; i < 2; i++ { response := request(t, s, "PUT", "/mytopic", "test", map[string]string{ "Authorization": util.BasicAuth("tieruser", "tieruser"), }) require.Equal(t, 200, response.Code) } // User stats show 6 messages (for user without tier) response = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) account, err := util.UnmarshalJSON[apiAccountResponse](io.NopCloser(response.Body)) require.Nil(t, err) require.Equal(t, int64(6), account.Stats.Messages) // User stats show 6 messages (for anonymous visitor) response = request(t, s, "GET", "/v1/account", "", nil) require.Equal(t, 200, response.Code) account, err = util.UnmarshalJSON[apiAccountResponse](io.NopCloser(response.Body)) require.Nil(t, err) require.Equal(t, int64(6), account.Stats.Messages) // User stats show 2 messages (for user with tier) response = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("tieruser", "tieruser"), }) require.Equal(t, 200, response.Code) account, err = util.UnmarshalJSON[apiAccountResponse](io.NopCloser(response.Body)) require.Nil(t, err) require.Equal(t, int64(2), account.Stats.Messages) // Wait for stats resetter to run waitFor(t, func() bool { response = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) account, err = util.UnmarshalJSON[apiAccountResponse](io.NopCloser(response.Body)) require.Nil(t, err) return account.Stats.Messages == 0 }) // User stats show 0 messages now! response = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) account, err = util.UnmarshalJSON[apiAccountResponse](io.NopCloser(response.Body)) require.Nil(t, err) require.Equal(t, int64(0), account.Stats.Messages) // Since this is a user without a tier, the anonymous user should have the same stats response = request(t, s, "GET", "/v1/account", "", nil) require.Equal(t, 200, response.Code) account, err = util.UnmarshalJSON[apiAccountResponse](io.NopCloser(response.Body)) require.Nil(t, err) require.Equal(t, int64(0), account.Stats.Messages) // User stats show 0 messages (for user with tier) response = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("tieruser", "tieruser"), }) require.Equal(t, 200, response.Code) account, err = util.UnmarshalJSON[apiAccountResponse](io.NopCloser(response.Body)) require.Nil(t, err) require.Equal(t, int64(0), account.Stats.Messages) } func TestServer_StatsResetter_MessageLimiter_EmailsLimiter(t *testing.T) { // This tests that the messageLimiter (the only fixed limiter) and the emailsLimiter (token bucket) // is reset by the stats resetter c := newTestConfigWithAuthFile(t) s := newTestServer(t, c) s.smtpSender = &testMailer{} // Publish some messages, and check stats for i := 0; i < 3; i++ { response := request(t, s, "PUT", "/mytopic", "test", nil) require.Equal(t, 200, response.Code) } response := request(t, s, "PUT", "/mytopic", "test", map[string]string{ "Email": "test@email.com", }) require.Equal(t, 200, response.Code) rr := request(t, s, "GET", "/v1/account", "", nil) require.Equal(t, 200, rr.Code) account, err := util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Nil(t, err) require.Equal(t, int64(4), account.Stats.Messages) require.Equal(t, int64(1), account.Stats.Emails) v := s.visitor(netip.MustParseAddr("9.9.9.9"), nil) require.Equal(t, int64(4), v.Stats().Messages) require.Equal(t, int64(4), v.messagesLimiter.Value()) require.Equal(t, int64(1), v.Stats().Emails) require.Equal(t, int64(1), v.emailsLimiter.Value()) // Reset stats and check again s.resetStats() rr = request(t, s, "GET", "/v1/account", "", nil) require.Equal(t, 200, rr.Code) account, err = util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Nil(t, err) require.Equal(t, int64(0), account.Stats.Messages) require.Equal(t, int64(0), account.Stats.Emails) v = s.visitor(netip.MustParseAddr("9.9.9.9"), nil) require.Equal(t, int64(0), v.Stats().Messages) require.Equal(t, int64(0), v.messagesLimiter.Value()) require.Equal(t, int64(0), v.Stats().Emails) require.Equal(t, int64(0), v.emailsLimiter.Value()) } func TestServer_DailyMessageQuotaFromDatabase(t *testing.T) { t.Parallel() // This tests that the daily message quota is prefilled originally from the database, // if the visitor is unknown c := newTestConfigWithAuthFile(t) c.AuthStatsQueueWriterInterval = 100 * time.Millisecond s := newTestServer(t, c) // Create user, and update it with some message and email stats require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "test", })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("phil", "test")) u, err := s.userManager.User("phil") require.Nil(t, err) s.userManager.EnqueueUserStats(u.ID, &user.Stats{ Messages: 123456, Emails: 999, }) time.Sleep(400 * time.Millisecond) // Get account and verify stats are read from the DB, and that the visitor also has these stats rr := request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) account, err := util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Nil(t, err) require.Equal(t, int64(123456), account.Stats.Messages) require.Equal(t, int64(999), account.Stats.Emails) v := s.visitor(netip.MustParseAddr("9.9.9.9"), u) require.Equal(t, int64(123456), v.Stats().Messages) require.Equal(t, int64(123456), v.messagesLimiter.Value()) require.Equal(t, int64(999), v.Stats().Emails) require.Equal(t, int64(999), v.emailsLimiter.Value()) } type testMailer struct { count int mu sync.Mutex } func (t *testMailer) Send(v *visitor, m *message, to string) error { t.mu.Lock() defer t.mu.Unlock() t.count++ return nil } func (t *testMailer) Counts() (total int64, success int64, failure int64) { return 0, 0, 0 } func (t *testMailer) Count() int { t.mu.Lock() defer t.mu.Unlock() return t.count } func TestServer_PublishTooRequests_Defaults(t *testing.T) { s := newTestServer(t, newTestConfig(t)) for i := 0; i < 60; i++ { response := request(t, s, "PUT", "/mytopic", fmt.Sprintf("message %d", i), nil) require.Equal(t, 200, response.Code) } response := request(t, s, "PUT", "/mytopic", "message", nil) require.Equal(t, 429, response.Code) } func TestServer_PublishTooRequests_Defaults_ExemptHosts(t *testing.T) { c := newTestConfig(t) c.VisitorRequestLimitBurst = 3 c.VisitorRequestExemptIPAddrs = []netip.Prefix{netip.MustParsePrefix("9.9.9.9/32")} // see request() s := newTestServer(t, c) for i := 0; i < 5; i++ { // > 3 response := request(t, s, "PUT", "/mytopic", fmt.Sprintf("message %d", i), nil) require.Equal(t, 200, response.Code) } } func TestServer_PublishTooRequests_Defaults_ExemptHosts_MessageDailyLimit(t *testing.T) { c := newTestConfig(t) c.VisitorRequestLimitBurst = 10 c.VisitorMessageDailyLimit = 4 c.VisitorRequestExemptIPAddrs = []netip.Prefix{netip.MustParsePrefix("9.9.9.9/32")} // see request() s := newTestServer(t, c) for i := 0; i < 8; i++ { // 4 response := request(t, s, "PUT", "/mytopic", "message", nil) require.Equal(t, 200, response.Code) } } func TestServer_PublishTooRequests_ShortReplenish(t *testing.T) { t.Parallel() c := newTestConfig(t) c.VisitorRequestLimitBurst = 60 c.VisitorRequestLimitReplenish = time.Second s := newTestServer(t, c) for i := 0; i < 60; i++ { response := request(t, s, "PUT", "/mytopic", fmt.Sprintf("message %d", i), nil) require.Equal(t, 200, response.Code) } response := request(t, s, "PUT", "/mytopic", "message", nil) require.Equal(t, 429, response.Code) time.Sleep(1020 * time.Millisecond) response = request(t, s, "PUT", "/mytopic", "message", nil) require.Equal(t, 200, response.Code) } func TestServer_PublishTooManyEmails_Defaults(t *testing.T) { s := newTestServer(t, newTestConfig(t)) s.smtpSender = &testMailer{} for i := 0; i < 16; i++ { response := request(t, s, "PUT", "/mytopic", fmt.Sprintf("message %d", i), map[string]string{ "E-Mail": "test@example.com", }) require.Equal(t, 200, response.Code) } response := request(t, s, "PUT", "/mytopic", "one too many", map[string]string{ "E-Mail": "test@example.com", }) require.Equal(t, 429, response.Code) } func TestServer_PublishTooManyEmails_Replenish(t *testing.T) { t.Parallel() c := newTestConfig(t) c.VisitorEmailLimitReplenish = 500 * time.Millisecond s := newTestServer(t, c) s.smtpSender = &testMailer{} for i := 0; i < 16; i++ { response := request(t, s, "PUT", "/mytopic", fmt.Sprintf("message %d", i), map[string]string{ "E-Mail": "test@example.com", }) require.Equal(t, 200, response.Code) } response := request(t, s, "PUT", "/mytopic", "one too many", map[string]string{ "E-Mail": "test@example.com", }) require.Equal(t, 429, response.Code) time.Sleep(510 * time.Millisecond) response = request(t, s, "PUT", "/mytopic", "this should be okay again too many", map[string]string{ "E-Mail": "test@example.com", }) require.Equal(t, 200, response.Code) response = request(t, s, "PUT", "/mytopic", "and bad again", map[string]string{ "E-Mail": "test@example.com", }) require.Equal(t, 429, response.Code) } func TestServer_PublishDelayedEmail_Fail(t *testing.T) { s := newTestServer(t, newTestConfig(t)) s.smtpSender = &testMailer{} response := request(t, s, "PUT", "/mytopic", "fail", map[string]string{ "E-Mail": "test@example.com", "Delay": "20 min", }) require.Equal(t, 40003, toHTTPError(t, response.Body.String()).Code) } func TestServer_PublishDelayedCall_Fail(t *testing.T) { c := newTestConfigWithAuthFile(t) c.TwilioAccount = "AC1234567890" c.TwilioAuthToken = "AAEAA1234567890" c.TwilioPhoneNumber = "+1234567890" s := newTestServer(t, c) response := request(t, s, "PUT", "/mytopic", "fail", map[string]string{ "Call": "yes", "Delay": "20 min", }) require.Equal(t, 40037, toHTTPError(t, response.Body.String()).Code) } func TestServer_PublishEmailNoMailer_Fail(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", "fail", map[string]string{ "E-Mail": "test@example.com", }) require.Equal(t, 400, response.Code) } func TestServer_PublishAndExpungeTopicAfter16Hours(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) subFn := func(v *visitor, msg *message) error { return nil } // Publish and check last access response := request(t, s, "POST", "/mytopic", "test", map[string]string{ "Cache": "no", }) require.Equal(t, 200, response.Code) waitFor(t, func() bool { // .lastAccess set in t.Publish() -> t.Keepalive() in Goroutine s.topics["mytopic"].mu.RLock() defer s.topics["mytopic"].mu.RUnlock() return s.topics["mytopic"].lastAccess.Unix() >= time.Now().Unix()-2 && s.topics["mytopic"].lastAccess.Unix() <= time.Now().Unix()+2 }) // Topic won't get pruned s.execManager() require.NotNil(t, s.topics["mytopic"]) // Fudge with last access, but subscribe, and see that it won't get pruned (because of subscriber) subID := s.topics["mytopic"].Subscribe(subFn, "", func() {}) s.topics["mytopic"].mu.Lock() s.topics["mytopic"].lastAccess = time.Now().Add(-17 * time.Hour) s.topics["mytopic"].mu.Unlock() s.execManager() require.NotNil(t, s.topics["mytopic"]) // It'll finally get pruned now that there are no subscribers and last access is 17 hours ago s.topics["mytopic"].Unsubscribe(subID) s.execManager() require.Nil(t, s.topics["mytopic"]) } func TestServer_TopicKeepaliveOnPoll(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) // Create topic by polling once response := request(t, s, "GET", "/mytopic/json?poll=1", "", nil) require.Equal(t, 200, response.Code) // Mess with last access time s.topics["mytopic"].lastAccess = time.Now().Add(-17 * time.Hour) // Poll again and check keepalive time response = request(t, s, "GET", "/mytopic/json?poll=1", "", nil) require.Equal(t, 200, response.Code) require.True(t, s.topics["mytopic"].lastAccess.Unix() >= time.Now().Unix()-2) require.True(t, s.topics["mytopic"].lastAccess.Unix() <= time.Now().Unix()+2) } func TestServer_UnifiedPushDiscovery(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "GET", "/mytopic?up=1", "", nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"unifiedpush":{"version":1}}`+"\n", response.Body.String()) } func TestServer_PublishUnifiedPushBinary_AndPoll(t *testing.T) { b := make([]byte, 12) // Max length _, err := rand.Read(b) require.Nil(t, err) s := newTestServer(t, newTestConfig(t)) // Register a UnifiedPush subscriber response := request(t, s, "GET", "/up123456789012/json?poll=1", "", nil) require.Equal(t, 200, response.Code) // Publish message to topic response = request(t, s, "PUT", "/up123456789012?up=1", string(b), nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "base64", m.Encoding) b2, err := base64.StdEncoding.DecodeString(m.Message) require.Nil(t, err) require.Equal(t, b, b2) // Retrieve and check published message response = request(t, s, "GET", "/up123456789012/json?poll=1", string(b), nil) require.Equal(t, 200, response.Code) m = toMessage(t, response.Body.String()) require.Equal(t, "base64", m.Encoding) b2, err = base64.StdEncoding.DecodeString(m.Message) require.Nil(t, err) require.Equal(t, b, b2) } func TestServer_PublishUnifiedPushBinary_Truncated(t *testing.T) { b := make([]byte, 5000) // Longer than max length _, err := rand.Read(b) require.Nil(t, err) s := newTestServer(t, newTestConfig(t)) // Register a UnifiedPush subscriber response := request(t, s, "GET", "/mytopic/json?poll=1", "", nil) require.Equal(t, 200, response.Code) // Publish message to topic response = request(t, s, "PUT", "/mytopic?up=1", string(b), nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "base64", m.Encoding) b2, err := base64.StdEncoding.DecodeString(m.Message) require.Nil(t, err) require.Equal(t, 4096, len(b2)) require.Equal(t, b[:4096], b2) } func TestServer_PublishUnifiedPushText(t *testing.T) { s := newTestServer(t, newTestConfig(t)) // Register a UnifiedPush subscriber response := request(t, s, "GET", "/mytopic/json?poll=1", "", nil) require.Equal(t, 200, response.Code) // Publish UnifiedPush text message response = request(t, s, "PUT", "/mytopic?up=1", "this is a unifiedpush text message", nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "", m.Encoding) require.Equal(t, "this is a unifiedpush text message", m.Message) } func TestServer_MatrixGateway_Discovery_Success(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "GET", "/_matrix/push/v1/notify", "", nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"unifiedpush":{"gateway":"matrix"}}`+"\n", response.Body.String()) } func TestServer_MatrixGateway_Discovery_Failure_Unconfigured(t *testing.T) { c := newTestConfig(t) c.BaseURL = "" s := newTestServer(t, c) response := request(t, s, "GET", "/_matrix/push/v1/notify", "", nil) require.Equal(t, 500, response.Code) err := toHTTPError(t, response.Body.String()) require.Equal(t, 50003, err.Code) } func TestServer_MatrixGateway_Push_Success(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "GET", "/mytopic/json?poll=1", "", nil) require.Equal(t, 200, response.Code) notification := `{"notification":{"devices":[{"pushkey":"http://127.0.0.1:12345/mytopic?up=1"}]}}` response = request(t, s, "POST", "/_matrix/push/v1/notify", notification, nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"rejected":[]}`+"\n", response.Body.String()) response = request(t, s, "GET", "/mytopic/json?poll=1", "", nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, notification, m.Message) } func TestServer_MatrixGateway_Push_Failure_NoSubscriber(t *testing.T) { c := newTestConfig(t) c.VisitorSubscriberRateLimiting = true s := newTestServer(t, c) notification := `{"notification":{"devices":[{"pushkey":"http://127.0.0.1:12345/mytopic?up=1"}]}}` response := request(t, s, "POST", "/_matrix/push/v1/notify", notification, nil) require.Equal(t, 507, response.Code) require.Equal(t, 50701, toHTTPError(t, response.Body.String()).Code) } func TestServer_MatrixGateway_Push_Failure_NoSubscriber_After13Hours(t *testing.T) { c := newTestConfig(t) c.VisitorSubscriberRateLimiting = true s := newTestServer(t, c) notification := `{"notification":{"devices":[{"pushkey":"http://127.0.0.1:12345/mytopic?up=1"}]}}` // No success if no rate visitor set (this also creates the topic in memory) response := request(t, s, "POST", "/_matrix/push/v1/notify", notification, nil) require.Equal(t, 507, response.Code) require.Equal(t, 50701, toHTTPError(t, response.Body.String()).Code) require.Nil(t, s.topics["mytopic"].rateVisitor) // Fake: This topic has been around for 13 hours without a rate visitor s.topics["mytopic"].lastAccess = time.Now().Add(-13 * time.Hour) // Same request should now return HTTP 200 with a rejected pushkey response = request(t, s, "POST", "/_matrix/push/v1/notify", notification, nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"rejected":["http://127.0.0.1:12345/mytopic?up=1"]}`, strings.TrimSpace(response.Body.String())) // Slightly unrelated: Test that topic is pruned after 16 hours s.topics["mytopic"].lastAccess = time.Now().Add(-17 * time.Hour) s.execManager() require.Nil(t, s.topics["mytopic"]) } func TestServer_MatrixGateway_Push_Failure_InvalidPushkey(t *testing.T) { s := newTestServer(t, newTestConfig(t)) notification := `{"notification":{"devices":[{"pushkey":"http://wrong-base-url.com/mytopic?up=1"}]}}` response := request(t, s, "POST", "/_matrix/push/v1/notify", notification, nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"rejected":["http://wrong-base-url.com/mytopic?up=1"]}`+"\n", response.Body.String()) response = request(t, s, "GET", "/mytopic/json?poll=1", "", nil) require.Equal(t, 200, response.Code) require.Equal(t, "", response.Body.String()) // Empty! } func TestServer_MatrixGateway_Push_Failure_EverythingIsWrong(t *testing.T) { s := newTestServer(t, newTestConfig(t)) notification := `{"message":"this is not really a Matrix message"}` response := request(t, s, "POST", "/_matrix/push/v1/notify", notification, nil) require.Equal(t, 400, response.Code) require.Equal(t, 40019, toHTTPError(t, response.Body.String()).Code) notification = `this isn't even JSON'` response = request(t, s, "POST", "/_matrix/push/v1/notify", notification, nil) require.Equal(t, 400, response.Code) require.Equal(t, 40019, toHTTPError(t, response.Body.String()).Code) } func TestServer_MatrixGateway_Push_Failure_Unconfigured(t *testing.T) { c := newTestConfig(t) c.BaseURL = "" s := newTestServer(t, c) notification := `{"notification":{"devices":[{"pushkey":"http://127.0.0.1:12345/mytopic?up=1"}]}}` response := request(t, s, "POST", "/_matrix/push/v1/notify", notification, nil) require.Equal(t, 500, response.Code) require.Equal(t, 50003, toHTTPError(t, response.Body.String()).Code) } func TestServer_PublishActions_AndPoll(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", "my message", map[string]string{ "Actions": "view, Open portal, https://home.nest.com/; http, Turn down, https://api.nest.com/device/XZ1D2, body=target_temp_f=65", }) require.Equal(t, 200, response.Code) response = request(t, s, "GET", "/mytopic/json?poll=1", "", nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, 2, len(m.Actions)) require.Equal(t, "view", m.Actions[0].Action) require.Equal(t, "Open portal", m.Actions[0].Label) require.Equal(t, "https://home.nest.com/", m.Actions[0].URL) require.Equal(t, "http", m.Actions[1].Action) require.Equal(t, "Turn down", m.Actions[1].Label) require.Equal(t, "https://api.nest.com/device/XZ1D2", m.Actions[1].URL) require.Equal(t, "target_temp_f=65", m.Actions[1].Body) } func TestServer_PublishMarkdown(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", "**make this bold**", map[string]string{ "Content-Type": "text/markdown", }) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "**make this bold**", m.Message) require.Equal(t, "text/markdown", m.ContentType) } func TestServer_PublishMarkdown_QueryParam(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic?md=1", "**make this bold**", nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "**make this bold**", m.Message) require.Equal(t, "text/markdown", m.ContentType) } func TestServer_PublishMarkdown_NotMarkdown(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", "**make this bold**", map[string]string{ "Content-Type": "not-markdown", }) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "", m.ContentType) } func TestServer_PublishAsJSON(t *testing.T) { s := newTestServer(t, newTestConfig(t)) body := `{"topic":"mytopic","message":"A message","title":"a title\nwith lines","tags":["tag1","tag 2"],` + `"not-a-thing":"ok", "attach":"http://google.com","filename":"google.pdf", "click":"http://ntfy.sh","priority":4,` + `"icon":"https://ntfy.sh/static/img/ntfy.png", "delay":"30min"}` response := request(t, s, "PUT", "/", body, nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "mytopic", m.Topic) require.Equal(t, "A message", m.Message) require.Equal(t, "a title\nwith lines", m.Title) require.Equal(t, []string{"tag1", "tag 2"}, m.Tags) require.Equal(t, "http://google.com", m.Attachment.URL) require.Equal(t, "google.pdf", m.Attachment.Name) require.Equal(t, "http://ntfy.sh", m.Click) require.Equal(t, "https://ntfy.sh/static/img/ntfy.png", m.Icon) require.Equal(t, "", m.ContentType) require.Equal(t, 4, m.Priority) require.True(t, m.Time > time.Now().Unix()+29*60) require.True(t, m.Time < time.Now().Unix()+31*60) } func TestServer_PublishAsJSON_Markdown(t *testing.T) { s := newTestServer(t, newTestConfig(t)) body := `{"topic":"mytopic","message":"**This is bold**","markdown":true}` response := request(t, s, "PUT", "/", body, nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "mytopic", m.Topic) require.Equal(t, "**This is bold**", m.Message) require.Equal(t, "text/markdown", m.ContentType) } func TestServer_PublishAsJSON_RateLimit_MessageDailyLimit(t *testing.T) { // Publishing as JSON follows a different path. This ensures that rate // limiting works for this endpoint as well c := newTestConfig(t) c.VisitorMessageDailyLimit = 3 s := newTestServer(t, c) for i := 0; i < 3; i++ { response := request(t, s, "PUT", "/", `{"topic":"mytopic","message":"A message"}`, nil) require.Equal(t, 200, response.Code) } response := request(t, s, "PUT", "/", `{"topic":"mytopic","message":"A message"}`, nil) require.Equal(t, 429, response.Code) require.Equal(t, 42908, toHTTPError(t, response.Body.String()).Code) } func TestServer_PublishAsJSON_WithEmail(t *testing.T) { t.Parallel() mailer := &testMailer{} s := newTestServer(t, newTestConfig(t)) s.smtpSender = mailer body := `{"topic":"mytopic","message":"A message","email":"phil@example.com"}` response := request(t, s, "PUT", "/", body, nil) require.Equal(t, 200, response.Code) time.Sleep(100 * time.Millisecond) // E-Mail publishing happens in a Go routine m := toMessage(t, response.Body.String()) require.Equal(t, "mytopic", m.Topic) require.Equal(t, "A message", m.Message) require.Equal(t, 1, mailer.Count()) } func TestServer_PublishAsJSON_WithActions(t *testing.T) { s := newTestServer(t, newTestConfig(t)) body := `{ "topic":"mytopic", "message":"A message", "actions": [ { "action": "view", "label": "Open portal", "url": "https://home.nest.com/" }, { "action": "http", "label": "Turn down", "url": "https://api.nest.com/device/XZ1D2", "body": "target_temp_f=65" } ] }` response := request(t, s, "POST", "/", body, nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "mytopic", m.Topic) require.Equal(t, "A message", m.Message) require.Equal(t, 2, len(m.Actions)) require.Equal(t, "view", m.Actions[0].Action) require.Equal(t, "Open portal", m.Actions[0].Label) require.Equal(t, "https://home.nest.com/", m.Actions[0].URL) require.Equal(t, "http", m.Actions[1].Action) require.Equal(t, "Turn down", m.Actions[1].Label) require.Equal(t, "https://api.nest.com/device/XZ1D2", m.Actions[1].URL) require.Equal(t, "target_temp_f=65", m.Actions[1].Body) } func TestServer_PublishAsJSON_Invalid(t *testing.T) { s := newTestServer(t, newTestConfig(t)) body := `{"topic":"mytopic",INVALID` response := request(t, s, "PUT", "/", body, nil) require.Equal(t, 400, response.Code) } func TestServer_PublishWithTierBasedMessageLimitAndExpiry(t *testing.T) { c := newTestConfigWithAuthFile(t) s := newTestServer(t, c) // Create tier with certain limits require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "test", MessageLimit: 5, MessageExpiryDuration: -5 * time.Second, // Second, what a hack! })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("phil", "test")) // Publish to reach message limit for i := 0; i < 5; i++ { response := request(t, s, "PUT", "/mytopic", fmt.Sprintf("this is message %d", i+1), map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) msg := toMessage(t, response.Body.String()) require.True(t, msg.Expires < time.Now().Unix()+5) } response := request(t, s, "PUT", "/mytopic", "this is too much", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 429, response.Code) // Run pruning and see if they are gone s.execManager() response = request(t, s, "GET", "/mytopic/json?poll=1", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) require.Empty(t, response.Body) } func TestServer_PublishAttachment(t *testing.T) { content := "text file!" + util.RandomString(4990) // > 4096 s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", content, nil) msg := toMessage(t, response.Body.String()) require.Equal(t, "attachment.txt", msg.Attachment.Name) require.Equal(t, "text/plain; charset=utf-8", msg.Attachment.Type) require.Equal(t, int64(5000), msg.Attachment.Size) require.GreaterOrEqual(t, msg.Attachment.Expires, time.Now().Add(179*time.Minute).Unix()) // Almost 3 hours require.Contains(t, msg.Attachment.URL, "http://127.0.0.1:12345/file/") require.Equal(t, netip.Addr{}, msg.Sender) // Should never be returned require.FileExists(t, filepath.Join(s.config.AttachmentCacheDir, msg.ID)) // GET path := strings.TrimPrefix(msg.Attachment.URL, "http://127.0.0.1:12345") response = request(t, s, "GET", path, "", nil) require.Equal(t, 200, response.Code) require.Equal(t, "5000", response.Header().Get("Content-Length")) require.Equal(t, content, response.Body.String()) // HEAD response = request(t, s, "HEAD", path, "", nil) require.Equal(t, 200, response.Code) require.Equal(t, "5000", response.Header().Get("Content-Length")) require.Equal(t, "", response.Body.String()) // Slightly unrelated cross-test: make sure we add an owner for internal attachments size, err := s.messageCache.AttachmentBytesUsedBySender("9.9.9.9") // See request() require.Nil(t, err) require.Equal(t, int64(5000), size) } func TestServer_PublishAttachmentShortWithFilename(t *testing.T) { c := newTestConfig(t) c.BehindProxy = true s := newTestServer(t, c) content := "this is an ATTACHMENT" response := request(t, s, "PUT", "/mytopic?f=myfile.txt", content, map[string]string{ "X-Forwarded-For": "1.2.3.4", }) msg := toMessage(t, response.Body.String()) require.Equal(t, "myfile.txt", msg.Attachment.Name) require.Equal(t, "text/plain; charset=utf-8", msg.Attachment.Type) require.Equal(t, int64(21), msg.Attachment.Size) require.GreaterOrEqual(t, msg.Attachment.Expires, time.Now().Add(3*time.Hour).Unix()) require.Contains(t, msg.Attachment.URL, "http://127.0.0.1:12345/file/") require.Equal(t, netip.Addr{}, msg.Sender) // Should never be returned require.FileExists(t, filepath.Join(s.config.AttachmentCacheDir, msg.ID)) path := strings.TrimPrefix(msg.Attachment.URL, "http://127.0.0.1:12345") response = request(t, s, "GET", path, "", nil) require.Equal(t, 200, response.Code) require.Equal(t, "21", response.Header().Get("Content-Length")) require.Equal(t, content, response.Body.String()) // Slightly unrelated cross-test: make sure we add an owner for internal attachments size, err := s.messageCache.AttachmentBytesUsedBySender("1.2.3.4") require.Nil(t, err) require.Equal(t, int64(21), size) } func TestServer_PublishAttachmentExternalWithoutFilename(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", "", map[string]string{ "Attach": "https://upload.wikimedia.org/wikipedia/commons/f/fd/Pink_flower.jpg", }) msg := toMessage(t, response.Body.String()) require.Equal(t, "You received a file: Pink_flower.jpg", msg.Message) require.Equal(t, "Pink_flower.jpg", msg.Attachment.Name) require.Equal(t, "https://upload.wikimedia.org/wikipedia/commons/f/fd/Pink_flower.jpg", msg.Attachment.URL) require.Equal(t, "", msg.Attachment.Type) require.Equal(t, int64(0), msg.Attachment.Size) require.Equal(t, int64(0), msg.Attachment.Expires) require.Equal(t, netip.Addr{}, msg.Sender) // Slightly unrelated cross-test: make sure we don't add an owner for external attachments size, err := s.messageCache.AttachmentBytesUsedBySender("127.0.0.1") require.Nil(t, err) require.Equal(t, int64(0), size) } func TestServer_PublishAttachmentExternalWithFilename(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", "This is a custom message", map[string]string{ "X-Attach": "https://upload.wikimedia.org/wikipedia/commons/f/fd/Pink_flower.jpg", "File": "some file.jpg", }) msg := toMessage(t, response.Body.String()) require.Equal(t, "This is a custom message", msg.Message) require.Equal(t, "some file.jpg", msg.Attachment.Name) require.Equal(t, "https://upload.wikimedia.org/wikipedia/commons/f/fd/Pink_flower.jpg", msg.Attachment.URL) require.Equal(t, "", msg.Attachment.Type) require.Equal(t, int64(0), msg.Attachment.Size) require.Equal(t, int64(0), msg.Attachment.Expires) require.Equal(t, netip.Addr{}, msg.Sender) } func TestServer_PublishAttachmentBadURL(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic?a=not+a+URL", "", nil) err := toHTTPError(t, response.Body.String()) require.Equal(t, 400, response.Code) require.Equal(t, 400, err.HTTPCode) require.Equal(t, 40013, err.Code) } func TestServer_PublishAttachmentTooLargeContentLength(t *testing.T) { content := util.RandomString(5000) // > 4096 s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", content, map[string]string{ "Content-Length": "20000000", }) err := toHTTPError(t, response.Body.String()) require.Equal(t, 413, response.Code) require.Equal(t, 413, err.HTTPCode) require.Equal(t, 41301, err.Code) } func TestServer_PublishAttachmentTooLargeBodyAttachmentFileSizeLimit(t *testing.T) { content := util.RandomString(5001) // > 5000, see below c := newTestConfig(t) c.AttachmentFileSizeLimit = 5000 s := newTestServer(t, c) response := request(t, s, "PUT", "/mytopic", content, nil) err := toHTTPError(t, response.Body.String()) require.Equal(t, 413, response.Code) require.Equal(t, 413, err.HTTPCode) require.Equal(t, 41301, err.Code) } func TestServer_PublishAttachmentExpiryBeforeDelivery(t *testing.T) { c := newTestConfig(t) c.AttachmentExpiryDuration = 10 * time.Minute s := newTestServer(t, c) response := request(t, s, "PUT", "/mytopic", util.RandomString(5000), map[string]string{ "Delay": "11 min", // > AttachmentExpiryDuration }) err := toHTTPError(t, response.Body.String()) require.Equal(t, 400, response.Code) require.Equal(t, 400, err.HTTPCode) require.Equal(t, 40015, err.Code) } func TestServer_PublishAttachmentTooLargeBodyVisitorAttachmentTotalSizeLimit(t *testing.T) { c := newTestConfig(t) c.VisitorAttachmentTotalSizeLimit = 10000 s := newTestServer(t, c) response := request(t, s, "PUT", "/mytopic", "text file!"+util.RandomString(4990), nil) msg := toMessage(t, response.Body.String()) require.Equal(t, 200, response.Code) require.Equal(t, "You received a file: attachment.txt", msg.Message) require.Equal(t, int64(5000), msg.Attachment.Size) content := util.RandomString(5001) // 5000+5001 > , see below response = request(t, s, "PUT", "/mytopic", content, nil) err := toHTTPError(t, response.Body.String()) require.Equal(t, 413, response.Code) require.Equal(t, 413, err.HTTPCode) require.Equal(t, 41301, err.Code) } func TestServer_PublishAttachmentAndExpire(t *testing.T) { t.Parallel() content := util.RandomString(5000) // > 4096 c := newTestConfig(t) c.AttachmentExpiryDuration = time.Millisecond // Hack s := newTestServer(t, c) // Publish and make sure we can retrieve it response := request(t, s, "PUT", "/mytopic", content, nil) msg := toMessage(t, response.Body.String()) require.Contains(t, msg.Attachment.URL, "http://127.0.0.1:12345/file/") file := filepath.Join(s.config.AttachmentCacheDir, msg.ID) require.FileExists(t, file) path := strings.TrimPrefix(msg.Attachment.URL, "http://127.0.0.1:12345") response = request(t, s, "GET", path, "", nil) require.Equal(t, 200, response.Code) require.Equal(t, content, response.Body.String()) // Prune and makes sure it's gone waitFor(t, func() bool { s.execManager() // May run many times return !util.FileExists(file) }) response = request(t, s, "GET", path, "", nil) require.Equal(t, 404, response.Code) } func TestServer_PublishAttachmentWithTierBasedExpiry(t *testing.T) { t.Parallel() content := util.RandomString(5000) // > 4096 c := newTestConfigWithAuthFile(t) c.AttachmentExpiryDuration = time.Millisecond // Hack s := newTestServer(t, c) // Create tier with certain limits sevenDays := time.Duration(604800) * time.Second require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "test", MessageLimit: 10, MessageExpiryDuration: sevenDays, AttachmentFileSizeLimit: 50_000, AttachmentTotalSizeLimit: 200_000, AttachmentExpiryDuration: sevenDays, // 7 days AttachmentBandwidthLimit: 100000, })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("phil", "test")) // Publish and make sure we can retrieve it response := request(t, s, "PUT", "/mytopic", content, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) msg := toMessage(t, response.Body.String()) require.Contains(t, msg.Attachment.URL, "http://127.0.0.1:12345/file/") require.True(t, msg.Attachment.Expires > time.Now().Add(sevenDays-30*time.Second).Unix()) require.True(t, msg.Expires > time.Now().Add(sevenDays-30*time.Second).Unix()) file := filepath.Join(s.config.AttachmentCacheDir, msg.ID) require.FileExists(t, file) path := strings.TrimPrefix(msg.Attachment.URL, "http://127.0.0.1:12345") response = request(t, s, "GET", path, "", nil) require.Equal(t, 200, response.Code) require.Equal(t, content, response.Body.String()) // Prune and makes sure it's still there time.Sleep(time.Second) // Sigh ... s.execManager() require.FileExists(t, file) response = request(t, s, "GET", path, "", nil) require.Equal(t, 200, response.Code) } func TestServer_PublishAttachmentWithTierBasedBandwidthLimit(t *testing.T) { content := util.RandomString(5000) // > 4096 c := newTestConfigWithAuthFile(t) c.VisitorAttachmentDailyBandwidthLimit = 1000 // Much lower than tier bandwidth! s := newTestServer(t, c) // Create tier with certain limits require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "test", MessageLimit: 10, MessageExpiryDuration: time.Hour, AttachmentFileSizeLimit: 50_000, AttachmentTotalSizeLimit: 200_000, AttachmentExpiryDuration: time.Hour, AttachmentBandwidthLimit: 14000, // < 3x5000 bytes -> enough for one upload, one download })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("phil", "test")) // Publish and make sure we can retrieve it rr := request(t, s, "PUT", "/mytopic", content, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) msg := toMessage(t, rr.Body.String()) // Retrieve it (first time succeeds) rr = request(t, s, "GET", "/file/"+msg.ID, content, nil) // File downloads do not send auth headers!! require.Equal(t, 200, rr.Code) require.Equal(t, content, rr.Body.String()) // Retrieve it AGAIN (fails, due to bandwidth limit) rr = request(t, s, "GET", "/file/"+msg.ID, content, nil) require.Equal(t, 429, rr.Code) } func TestServer_PublishAttachmentWithTierBasedLimits(t *testing.T) { smallFile := util.RandomString(20_000) largeFile := util.RandomString(50_000) c := newTestConfigWithAuthFile(t) c.AttachmentFileSizeLimit = 20_000 c.VisitorAttachmentTotalSizeLimit = 40_000 s := newTestServer(t, c) // Create tier with certain limits require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "test", MessageLimit: 100, AttachmentFileSizeLimit: 50_000, AttachmentTotalSizeLimit: 200_000, AttachmentExpiryDuration: 30 * time.Second, AttachmentBandwidthLimit: 1000000, })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("phil", "test")) // Publish small file as anonymous response := request(t, s, "PUT", "/mytopic", smallFile, nil) msg := toMessage(t, response.Body.String()) require.Contains(t, msg.Attachment.URL, "http://127.0.0.1:12345/file/") require.FileExists(t, filepath.Join(s.config.AttachmentCacheDir, msg.ID)) // Publish large file as anonymous response = request(t, s, "PUT", "/mytopic", largeFile, nil) require.Equal(t, 413, response.Code) require.Equal(t, 41301, toHTTPError(t, response.Body.String()).Code) // Publish too large file as phil response = request(t, s, "PUT", "/mytopic", largeFile+" a few more bytes", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 413, response.Code) require.Equal(t, 41301, toHTTPError(t, response.Body.String()).Code) // Publish large file as phil (4x) for i := 0; i < 4; i++ { response = request(t, s, "PUT", "/mytopic", largeFile, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) msg = toMessage(t, response.Body.String()) require.Contains(t, msg.Attachment.URL, "http://127.0.0.1:12345/file/") require.FileExists(t, filepath.Join(s.config.AttachmentCacheDir, msg.ID)) } response = request(t, s, "PUT", "/mytopic", largeFile, map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 413, response.Code) require.Equal(t, 41301, toHTTPError(t, response.Body.String()).Code) } func TestServer_PublishAttachmentBandwidthLimit(t *testing.T) { content := util.RandomString(5000) // > 4096 c := newTestConfig(t) c.VisitorAttachmentDailyBandwidthLimit = 5*5000 + 123 // A little more than 1 upload and 3 downloads s := newTestServer(t, c) // Publish attachment response := request(t, s, "PUT", "/mytopic", content, nil) msg := toMessage(t, response.Body.String()) require.Contains(t, msg.Attachment.URL, "http://127.0.0.1:12345/file/") // Value it 4 times successfully path := strings.TrimPrefix(msg.Attachment.URL, "http://127.0.0.1:12345") for i := 1; i <= 4; i++ { // 4 successful downloads response = request(t, s, "GET", path, "", nil) require.Equal(t, 200, response.Code) require.Equal(t, content, response.Body.String()) } // And then fail with a 429 response = request(t, s, "GET", path, "", nil) err := toHTTPError(t, response.Body.String()) require.Equal(t, 429, response.Code) require.Equal(t, 42905, err.Code) } func TestServer_PublishAttachmentBandwidthLimitUploadOnly(t *testing.T) { content := util.RandomString(5000) // > 4096 c := newTestConfig(t) c.VisitorAttachmentDailyBandwidthLimit = 5*5000 + 500 // 5 successful uploads s := newTestServer(t, c) // 5 successful uploads for i := 1; i <= 5; i++ { response := request(t, s, "PUT", "/mytopic", content, nil) msg := toMessage(t, response.Body.String()) require.Contains(t, msg.Attachment.URL, "http://127.0.0.1:12345/file/") } // And a failed one response := request(t, s, "PUT", "/mytopic", content, nil) err := toHTTPError(t, response.Body.String()) require.Equal(t, 413, response.Code) require.Equal(t, 41301, err.Code) } func TestServer_PublishAttachmentAndImmediatelyGetItWithCacheTimeout(t *testing.T) { // This tests the awkward util.Retry in handleFile: Due to the async persisting of messages, // the message is not immediately available when attempting to download it. c := newTestConfig(t) c.CacheBatchTimeout = 500 * time.Millisecond c.CacheBatchSize = 10 s := newTestServer(t, c) content := "this is an ATTACHMENT" rr := request(t, s, "PUT", "/mytopic?f=myfile.txt", content, nil) m := toMessage(t, rr.Body.String()) require.Equal(t, "myfile.txt", m.Attachment.Name) path := strings.TrimPrefix(m.Attachment.URL, "http://127.0.0.1:12345") rr = request(t, s, "GET", path, "", nil) require.Equal(t, 200, rr.Code) // Not 404! require.Equal(t, content, rr.Body.String()) } func TestServer_PublishAttachmentAccountStats(t *testing.T) { content := util.RandomString(4999) // > 4096 c := newTestConfig(t) c.AttachmentFileSizeLimit = 5000 c.VisitorAttachmentTotalSizeLimit = 6000 s := newTestServer(t, c) // Upload one attachment response := request(t, s, "PUT", "/mytopic", content, nil) msg := toMessage(t, response.Body.String()) require.Contains(t, msg.Attachment.URL, "http://127.0.0.1:12345/file/") // User stats response = request(t, s, "GET", "/v1/account", "", nil) require.Equal(t, 200, response.Code) account, err := util.UnmarshalJSON[apiAccountResponse](io.NopCloser(response.Body)) require.Nil(t, err) require.Equal(t, int64(5000), account.Limits.AttachmentFileSize) require.Equal(t, int64(6000), account.Limits.AttachmentTotalSize) require.Equal(t, int64(4999), account.Stats.AttachmentTotalSize) require.Equal(t, int64(1001), account.Stats.AttachmentTotalSizeRemaining) require.Equal(t, int64(1), account.Stats.Messages) } func TestServer_Visitor_XForwardedFor_None(t *testing.T) { c := newTestConfig(t) c.BehindProxy = true s := newTestServer(t, c) r, _ := http.NewRequest("GET", "/bla", nil) r.RemoteAddr = "8.9.10.11" r.Header.Set("X-Forwarded-For", " ") // Spaces, not empty! v, err := s.maybeAuthenticate(r) require.Nil(t, err) require.Equal(t, "8.9.10.11", v.ip.String()) } func TestServer_Visitor_XForwardedFor_Single(t *testing.T) { c := newTestConfig(t) c.BehindProxy = true s := newTestServer(t, c) r, _ := http.NewRequest("GET", "/bla", nil) r.RemoteAddr = "8.9.10.11" r.Header.Set("X-Forwarded-For", "1.1.1.1") v, err := s.maybeAuthenticate(r) require.Nil(t, err) require.Equal(t, "1.1.1.1", v.ip.String()) } func TestServer_Visitor_XForwardedFor_Multiple(t *testing.T) { c := newTestConfig(t) c.BehindProxy = true s := newTestServer(t, c) r, _ := http.NewRequest("GET", "/bla", nil) r.RemoteAddr = "8.9.10.11" r.Header.Set("X-Forwarded-For", "1.2.3.4 , 2.4.4.2,234.5.2.1 ") v, err := s.maybeAuthenticate(r) require.Nil(t, err) require.Equal(t, "234.5.2.1", v.ip.String()) } func TestServer_PublishWhileUpdatingStatsWithLotsOfMessages(t *testing.T) { t.Parallel() count := 50000 c := newTestConfig(t) c.TotalTopicLimit = 50001 c.CacheStartupQueries = "pragma journal_mode = WAL; pragma synchronous = normal; pragma temp_store = memory;" s := newTestServer(t, c) // Add lots of messages log.Info("Adding %d messages", count) start := time.Now() messages := make([]*message, 0) for i := 0; i < count; i++ { topicID := fmt.Sprintf("topic%d", i) _, err := s.topicsFromIDs(topicID) // Add topic to internal s.topics array require.Nil(t, err) messages = append(messages, newDefaultMessage(topicID, "some message")) } require.Nil(t, s.messageCache.addMessages(messages)) log.Info("Done: Adding %d messages; took %s", count, time.Since(start).Round(time.Millisecond)) // Update stats statsChan := make(chan bool) go func() { log.Info("Updating stats") start := time.Now() s.execManager() log.Info("Done: Updating stats; took %s", time.Since(start).Round(time.Millisecond)) statsChan <- true }() time.Sleep(50 * time.Millisecond) // Make sure it starts first // Publish message (during stats update) log.Info("Publishing message") start = time.Now() response := request(t, s, "PUT", "/mytopic", "some body", nil) m := toMessage(t, response.Body.String()) require.Equal(t, "some body", m.Message) require.True(t, time.Since(start) < 100*time.Millisecond) log.Info("Done: Publishing message; took %s", time.Since(start).Round(time.Millisecond)) // Wait for all goroutines select { case <-statsChan: case <-time.After(10 * time.Second): t.Fatal("Timed out waiting for Go routines") } log.Info("Done: Waiting for all locks") } func TestServer_AnonymousUser_And_NonTierUser_Are_Same_Visitor(t *testing.T) { conf := newTestConfigWithAuthFile(t) s := newTestServer(t, conf) defer s.closeDatabases() // Create user without tier require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) // Publish a message (anonymous user) rr := request(t, s, "POST", "/mytopic", "hi", nil) require.Equal(t, 200, rr.Code) // Publish a message (non-tier user) rr = request(t, s, "POST", "/mytopic", "hi", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, rr.Code) // User stats (anonymous user) rr = request(t, s, "GET", "/v1/account", "", nil) account, _ := util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, int64(2), account.Stats.Messages) // User stats (non-tier user) rr = request(t, s, "GET", "/v1/account", "", map[string]string{ "Authorization": util.BasicAuth("phil", "phil"), }) account, _ = util.UnmarshalJSON[apiAccountResponse](io.NopCloser(rr.Body)) require.Equal(t, int64(2), account.Stats.Messages) } func TestServer_SubscriberRateLimiting_Success(t *testing.T) { c := newTestConfigWithAuthFile(t) c.VisitorRequestLimitBurst = 3 c.VisitorSubscriberRateLimiting = true s := newTestServer(t, c) // "Register" visitor 1.2.3.4 to topic "upAAAAAAAAAAAA" as a rate limit visitor subscriber1Fn := func(r *http.Request) { r.RemoteAddr = "1.2.3.4" } rr := request(t, s, "GET", "/upAAAAAAAAAAAA/json?poll=1", "", nil, subscriber1Fn) require.Equal(t, 200, rr.Code) require.Equal(t, "", rr.Body.String()) require.Equal(t, "1.2.3.4", s.topics["upAAAAAAAAAAAA"].rateVisitor.ip.String()) // "Register" visitor 8.7.7.1 to topic "up012345678912" as a rate limit visitor (implicitly via topic name) subscriber2Fn := func(r *http.Request) { r.RemoteAddr = "8.7.7.1" } rr = request(t, s, "GET", "/up012345678912/json?poll=1", "", nil, subscriber2Fn) require.Equal(t, 200, rr.Code) require.Equal(t, "", rr.Body.String()) require.Equal(t, "8.7.7.1", s.topics["up012345678912"].rateVisitor.ip.String()) // Publish 2 messages to "subscriber1topic" as visitor 9.9.9.9. It'd be 3 normally, but the // GET request before is also counted towards the request limiter. for i := 0; i < 2; i++ { rr := request(t, s, "PUT", "/upAAAAAAAAAAAA", "some message", nil) require.Equal(t, 200, rr.Code) } rr = request(t, s, "PUT", "/upAAAAAAAAAAAA", "some message", nil) require.Equal(t, 429, rr.Code) // Publish another 2 messages to "up012345678912" as visitor 9.9.9.9 for i := 0; i < 2; i++ { rr := request(t, s, "PUT", "/up012345678912", "some message", nil) require.Equal(t, 200, rr.Code) // If we fail here, handlePublish is using the wrong visitor! } rr = request(t, s, "PUT", "/up012345678912", "some message", nil) require.Equal(t, 429, rr.Code) // Hurray! At this point, visitor 9.9.9.9 has published 4 messages, even though // VisitorRequestLimitBurst is 3. That means it's working. // Now let's confirm that so far we haven't used up any of visitor 9.9.9.9's request limiter // by publishing another 3 requests from it. for i := 0; i < 3; i++ { rr := request(t, s, "PUT", "/some-other-topic", "some message", nil) require.Equal(t, 200, rr.Code) } rr = request(t, s, "PUT", "/some-other-topic", "some message", nil) require.Equal(t, 429, rr.Code) } func TestServer_SubscriberRateLimiting_NotWrongTopic(t *testing.T) { c := newTestConfigWithAuthFile(t) c.VisitorSubscriberRateLimiting = true s := newTestServer(t, c) subscriberFn := func(r *http.Request) { r.RemoteAddr = "1.2.3.4" } rr := request(t, s, "GET", "/alerts,upAAAAAAAAAAAA,upBBBBBBBBBBBB/json?poll=1", "", nil, subscriberFn) require.Equal(t, 200, rr.Code) require.Equal(t, "", rr.Body.String()) require.Nil(t, s.topics["alerts"].rateVisitor) require.Equal(t, "1.2.3.4", s.topics["upAAAAAAAAAAAA"].rateVisitor.ip.String()) require.Equal(t, "1.2.3.4", s.topics["upBBBBBBBBBBBB"].rateVisitor.ip.String()) } func TestServer_SubscriberRateLimiting_NotEnabled_Failed(t *testing.T) { c := newTestConfigWithAuthFile(t) c.VisitorRequestLimitBurst = 3 c.VisitorSubscriberRateLimiting = false s := newTestServer(t, c) // Subscriber rate limiting is disabled! // Registering visitor 1.2.3.4 to topic has no effect rr := request(t, s, "GET", "/upAAAAAAAAAAAA/json?poll=1", "", nil, func(r *http.Request) { r.RemoteAddr = "1.2.3.4" }) require.Equal(t, 200, rr.Code) require.Equal(t, "", rr.Body.String()) require.Nil(t, s.topics["upAAAAAAAAAAAA"].rateVisitor) // Registering visitor 8.7.7.1 to topic has no effect rr = request(t, s, "GET", "/up012345678912/json?poll=1", "", nil, func(r *http.Request) { r.RemoteAddr = "8.7.7.1" }) require.Equal(t, 200, rr.Code) require.Equal(t, "", rr.Body.String()) require.Nil(t, s.topics["up012345678912"].rateVisitor) // Publish 3 messages to "upAAAAAAAAAAAA" as visitor 9.9.9.9 for i := 0; i < 3; i++ { rr := request(t, s, "PUT", "/subscriber1topic", "some message", nil) require.Equal(t, 200, rr.Code) } rr = request(t, s, "PUT", "/subscriber1topic", "some message", nil) require.Equal(t, 429, rr.Code) rr = request(t, s, "PUT", "/up012345678912", "some message", nil) require.Equal(t, 429, rr.Code) } func TestServer_SubscriberRateLimiting_UP_Only(t *testing.T) { c := newTestConfigWithAuthFile(t) c.VisitorRequestLimitBurst = 3 c.VisitorSubscriberRateLimiting = true s := newTestServer(t, c) // "Register" 5 different UnifiedPush visitors for i := 0; i < 5; i++ { subscriberFn := func(r *http.Request) { r.RemoteAddr = fmt.Sprintf("1.2.3.%d", i+1) } rr := request(t, s, "GET", fmt.Sprintf("/up12345678901%d/json?poll=1", i), "", nil, subscriberFn) require.Equal(t, 200, rr.Code) } // Publish 2 messages per topic for i := 0; i < 5; i++ { for j := 0; j < 2; j++ { rr := request(t, s, "PUT", fmt.Sprintf("/up12345678901%d?up=1", i), "some message", nil) require.Equal(t, 200, rr.Code) } } } func TestServer_Matrix_SubscriberRateLimiting_UP_Only(t *testing.T) { c := newTestConfig(t) c.VisitorRequestLimitBurst = 3 c.VisitorSubscriberRateLimiting = true s := newTestServer(t, c) // "Register" 5 different UnifiedPush visitors for i := 0; i < 5; i++ { rr := request(t, s, "GET", fmt.Sprintf("/up12345678901%d/json?poll=1", i), "", nil, func(r *http.Request) { r.RemoteAddr = fmt.Sprintf("1.2.3.%d", i+1) }) require.Equal(t, 200, rr.Code) } // Publish 2 messages per topic for i := 0; i < 5; i++ { notification := fmt.Sprintf(`{"notification":{"devices":[{"pushkey":"http://127.0.0.1:12345/up12345678901%d?up=1"}]}}`, i) for j := 0; j < 2; j++ { response := request(t, s, "POST", "/_matrix/push/v1/notify", notification, nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"rejected":[]}`+"\n", response.Body.String()) } response := request(t, s, "POST", "/_matrix/push/v1/notify", notification, nil) require.Equal(t, 429, response.Code, notification) require.Equal(t, 42901, toHTTPError(t, response.Body.String()).Code) } } func TestServer_SubscriberRateLimiting_VisitorExpiration(t *testing.T) { c := newTestConfig(t) c.VisitorRequestLimitBurst = 3 c.VisitorSubscriberRateLimiting = true s := newTestServer(t, c) // "Register" rate visitor subscriberFn := func(r *http.Request) { r.RemoteAddr = "1.2.3.4" } rr := request(t, s, "GET", "/upAAAAAAAAAAAA/json?poll=1", "", nil, subscriberFn) require.Equal(t, 200, rr.Code) require.Equal(t, "1.2.3.4", s.topics["upAAAAAAAAAAAA"].rateVisitor.ip.String()) require.Equal(t, s.visitors["ip:1.2.3.4"], s.topics["upAAAAAAAAAAAA"].rateVisitor) // Publish message, observe rate visitor tokens being decreased response := request(t, s, "POST", "/upAAAAAAAAAAAA", "some message", nil) require.Equal(t, 200, response.Code) require.Equal(t, int64(0), s.visitors["ip:9.9.9.9"].messagesLimiter.Value()) require.Equal(t, int64(1), s.topics["upAAAAAAAAAAAA"].rateVisitor.messagesLimiter.Value()) require.Equal(t, s.visitors["ip:1.2.3.4"], s.topics["upAAAAAAAAAAAA"].rateVisitor) // Expire visitor s.visitors["ip:1.2.3.4"].seen = time.Now().Add(-1 * 25 * time.Hour) s.pruneVisitors() // Publish message again, observe that rateVisitor is not used anymore and is reset response = request(t, s, "POST", "/upAAAAAAAAAAAA", "some message", nil) require.Equal(t, 200, response.Code) require.Equal(t, int64(1), s.visitors["ip:9.9.9.9"].messagesLimiter.Value()) require.Nil(t, s.topics["upAAAAAAAAAAAA"].rateVisitor) require.Nil(t, s.visitors["ip:1.2.3.4"]) } func TestServer_SubscriberRateLimiting_ProtectedTopics_WithDefaultReadWrite(t *testing.T) { c := newTestConfigWithAuthFile(t) c.AuthDefault = user.PermissionReadWrite c.VisitorSubscriberRateLimiting = true s := newTestServer(t, c) // Create some ACLs require.Nil(t, s.userManager.AllowAccess(user.Everyone, "announcements", user.PermissionRead)) // Set rate visitor as ip:1.2.3.4 on topic // - "up123456789012": Allowed, because no ACLs and nobody owns the topic // - "announcements": NOT allowed, because it has read-only permissions for everyone rr := request(t, s, "GET", "/up123456789012,announcements/json?poll=1", "", nil, func(r *http.Request) { r.RemoteAddr = "1.2.3.4" }) require.Equal(t, 200, rr.Code) require.Equal(t, "1.2.3.4", s.topics["up123456789012"].rateVisitor.ip.String()) require.Nil(t, s.topics["announcements"].rateVisitor) } func TestServer_MessageHistoryAndStatsEndpoint(t *testing.T) { c := newTestConfig(t) c.ManagerInterval = 2 * time.Second s := newTestServer(t, c) // Publish some messages, and get stats for i := 0; i < 5; i++ { response := request(t, s, "POST", "/mytopic", "some message", nil) require.Equal(t, 200, response.Code) } require.Equal(t, int64(5), s.messages) require.Equal(t, []int64{0}, s.messagesHistory) response := request(t, s, "GET", "/v1/stats", "", nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"messages":5,"messages_rate":0}`+"\n", response.Body.String()) // Run manager and see message history update s.execManager() require.Equal(t, []int64{0, 5}, s.messagesHistory) response = request(t, s, "GET", "/v1/stats", "", nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"messages":5,"messages_rate":2.5}`+"\n", response.Body.String()) // 5 messages in 2 seconds = 2.5 messages per second // Publish some more messages for i := 0; i < 10; i++ { response := request(t, s, "POST", "/mytopic", "some message", nil) require.Equal(t, 200, response.Code) } require.Equal(t, int64(15), s.messages) require.Equal(t, []int64{0, 5}, s.messagesHistory) response = request(t, s, "GET", "/v1/stats", "", nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"messages":15,"messages_rate":2.5}`+"\n", response.Body.String()) // Rate did not update yet // Run manager and see message history update s.execManager() require.Equal(t, []int64{0, 5, 15}, s.messagesHistory) response = request(t, s, "GET", "/v1/stats", "", nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"messages":15,"messages_rate":3.75}`+"\n", response.Body.String()) // 15 messages in 4 seconds = 3.75 messages per second } func TestServer_MessageHistoryMaxSize(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) for i := 0; i < 20; i++ { s.messages = int64(i) s.execManager() } require.Equal(t, []int64{10, 11, 12, 13, 14, 15, 16, 17, 18, 19}, s.messagesHistory) } func TestServer_MessageCountPersistence(t *testing.T) { t.Parallel() c := newTestConfig(t) s := newTestServer(t, c) s.messages = 1234 s.execManager() waitFor(t, func() bool { messages, err := s.messageCache.Stats() require.Nil(t, err) return messages == 1234 }) s = newTestServer(t, c) require.Equal(t, int64(1234), s.messages) } func TestServer_PublishWithUTF8MimeHeader(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) response := request(t, s, "POST", "/mytopic", "some attachment", map[string]string{ "X-Filename": "some =?UTF-8?q?=C3=A4?=ttachment.txt", "X-Message": "=?UTF-8?B?8J+HqfCfh6o=?=", "X-Title": "=?UTF-8?B?bnRmeSDlvojmo5I=?=, no really I mean it! =?UTF-8?Q?This is q=C3=BC=C3=B6ted-print=C3=A4ble.?=", "X-Tags": "=?UTF-8?B?8J+HqfCfh6o=?=, =?UTF-8?B?bnRmeSDlvojmo5I=?=", "X-Click": "=?uTf-8?b?aHR0cHM6Ly/wn5KpLmxh?=", "X-Actions": "http, \"=?utf-8?q?Mettre =C3=A0 jour?=\", \"https://my.tld/webhook/netbird-update\"; =?utf-8?b?aHR0cCwg6L+Z5piv5LiA5Liq5qCH562+LCBodHRwczovL/CfkqkubGE=?=", }) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "🇩🇪", m.Message) require.Equal(t, "ntfy 很棒, no really I mean it! This is qüöted-printäble.", m.Title) require.Equal(t, "some ättachment.txt", m.Attachment.Name) require.Equal(t, "🇩🇪", m.Tags[0]) require.Equal(t, "ntfy 很棒", m.Tags[1]) require.Equal(t, "https://💩.la", m.Click) require.Equal(t, "Mettre à jour", m.Actions[0].Label) require.Equal(t, "http", m.Actions[1].Action) require.Equal(t, "这是一个标签", m.Actions[1].Label) require.Equal(t, "https://💩.la", m.Actions[1].URL) } func TestServer_UpstreamBaseURL_Success(t *testing.T) { t.Parallel() var pollID atomic.Pointer[string] upstreamServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { body, err := io.ReadAll(r.Body) require.Nil(t, err) require.Equal(t, "/87c9cddf7b0105f5fe849bf084c6e600be0fde99be3223335199b4965bd7b735", r.URL.Path) require.Equal(t, "", string(body)) require.NotEmpty(t, r.Header.Get("X-Poll-ID")) pollID.Store(util.String(r.Header.Get("X-Poll-ID"))) })) defer upstreamServer.Close() c := newTestConfigWithAuthFile(t) c.BaseURL = "http://myserver.internal" c.UpstreamBaseURL = upstreamServer.URL s := newTestServer(t, c) // Send message, and wait for upstream server to receive it response := request(t, s, "PUT", "/mytopic", `hi there`, nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.NotEmpty(t, m.ID) require.Equal(t, "hi there", m.Message) waitFor(t, func() bool { pID := pollID.Load() return pID != nil && *pID == m.ID }) } func TestServer_UpstreamBaseURL_With_Access_Token_Success(t *testing.T) { t.Parallel() var pollID atomic.Pointer[string] upstreamServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { body, err := io.ReadAll(r.Body) require.Nil(t, err) require.Equal(t, "/a1c72bcb4daf5af54d13ef86aea8f76c11e8b88320d55f1811d5d7b173bcc1df", r.URL.Path) require.Equal(t, "Bearer tk_1234567890", r.Header.Get("Authorization")) require.Equal(t, "", string(body)) require.NotEmpty(t, r.Header.Get("X-Poll-ID")) pollID.Store(util.String(r.Header.Get("X-Poll-ID"))) })) defer upstreamServer.Close() c := newTestConfigWithAuthFile(t) c.BaseURL = "http://myserver.internal" c.UpstreamBaseURL = upstreamServer.URL c.UpstreamAccessToken = "tk_1234567890" s := newTestServer(t, c) // Send message, and wait for upstream server to receive it response := request(t, s, "PUT", "/mytopic1", `hi there`, nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.NotEmpty(t, m.ID) require.Equal(t, "hi there", m.Message) waitFor(t, func() bool { pID := pollID.Load() return pID != nil && *pID == m.ID }) } func TestServer_UpstreamBaseURL_DoNotForwardUnifiedPush(t *testing.T) { t.Parallel() upstreamServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { t.Fatal("UnifiedPush messages should not be forwarded") })) defer upstreamServer.Close() c := newTestConfigWithAuthFile(t) c.BaseURL = "http://myserver.internal" c.UpstreamBaseURL = upstreamServer.URL s := newTestServer(t, c) // Send UP message, this should not forward to upstream server response := request(t, s, "PUT", "/mytopic?up=1", `hi there`, nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.NotEmpty(t, m.ID) require.Equal(t, "hi there", m.Message) // Forwarding is done asynchronously, so wait a bit. // This ensures that the t.Fatal above is actually not triggered. time.Sleep(500 * time.Millisecond) } func TestServer_MessageTemplate(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", `{"foo":"bar", "nested":{"title":"here"}}`, map[string]string{ "X-Message": "{{.foo}}", "X-Title": "{{.nested.title}}", "X-Template": "1", }) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "bar", m.Message) require.Equal(t, "here", m.Title) } func TestServer_MessageTemplate_RepeatPlaceholder(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", `{"foo":"bar", "nested":{"title":"here"}}`, map[string]string{ "Message": "{{.foo}} is {{.foo}}", "Title": "{{.nested.title}} is {{.nested.title}}", "Template": "1", }) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "bar is bar", m.Message) require.Equal(t, "here is here", m.Title) } func TestServer_MessageTemplate_JSONBody(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) body := `{"topic": "mytopic", "message": "{\"foo\":\"bar\",\"nested\":{\"title\":\"here\"}}"}` response := request(t, s, "PUT", "/", body, map[string]string{ "m": "{{.foo}}", "t": "{{.nested.title}}", "tpl": "1", }) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "bar", m.Message) require.Equal(t, "here", m.Title) } func TestServer_MessageTemplate_MalformedJSONBody(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) body := `{"topic": "mytopic", "message": "{\"foo\":\"bar\",\"nested\":{\"title\":\"here\"INVALID"}` response := request(t, s, "PUT", "/", body, map[string]string{ "X-Message": "{{.foo}}", "X-Title": "{{.nested.title}}", "X-Template": "1", }) require.Equal(t, 400, response.Code) require.Equal(t, 40042, toHTTPError(t, response.Body.String()).Code) } func TestServer_MessageTemplate_PlaceholderTypo(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", `{"foo":"bar", "nested":{"title":"here"}}`, map[string]string{ "X-Message": "{{.food}}", "X-Title": "{{.neste.title}}", "X-Template": "1", }) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "", m.Message) require.Equal(t, "", m.Title) } func TestServer_MessageTemplate_MultiplePlaceholders(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) response := request(t, s, "PUT", "/mytopic", `{"foo":"bar", "nested":{"title":"here"}}`, map[string]string{ "X-Message": "{{.foo}} is {{.nested.title}}", "X-Template": "1", }) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "bar is here", m.Message) } func TestServer_MessageTemplate_Range(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) jsonBody := `{"foo": "bar", "errors": [{"level": "severe", "url": "https://severe1.com"},{"level": "warning", "url": "https://warning.com"},{"level": "severe", "url": "https://severe2.com"}]}` response := request(t, s, "PUT", "/mytopic", jsonBody, map[string]string{ "X-Message": `Severe URLs:\n{{range .errors}}{{if eq .level "severe"}}- {{.url}}\n{{end}}{{end}}`, "X-Template": "1", }) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "Severe URLs:\n- https://severe1.com\n- https://severe2.com\n", m.Message) } func TestServer_MessageTemplate_ExceedMessageSize_TemplatedMessageOK(t *testing.T) { t.Parallel() c := newTestConfig(t) c.MessageSizeLimit = 25 // 25 < len(HTTP body) < 32k, and len(m.Message) < 25 s := newTestServer(t, c) response := request(t, s, "PUT", "/mytopic", `{"foo":"bar", "nested":{"title":"here"}}`, map[string]string{ "X-Message": "{{.foo}}", "X-Title": "{{.nested.title}}", "X-Template": "yes", }) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "bar", m.Message) require.Equal(t, "here", m.Title) } func TestServer_MessageTemplate_ExceedMessageSize_TemplatedMessageTooLong(t *testing.T) { t.Parallel() c := newTestConfig(t) c.MessageSizeLimit = 21 // 21 < len(HTTP body) < 32k, but !len(m.Message) < 21 s := newTestServer(t, c) response := request(t, s, "PUT", "/mytopic", `{"foo":"This is a long message"}`, map[string]string{ "X-Message": "{{.foo}}", "X-Template": "1", }) require.Equal(t, 400, response.Code) require.Equal(t, 40041, toHTTPError(t, response.Body.String()).Code) } func TestServer_MessageTemplate_Grafana(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) body := `{"receiver":"ntfy\\.example\\.com/alerts","status":"resolved","alerts":[{"status":"resolved","labels":{"alertname":"Load avg 15m too high","grafana_folder":"Node alerts","instance":"10.108.0.2:9100","job":"node-exporter"},"annotations":{"summary":"15m load average too high"},"startsAt":"2024-03-15T02:28:00Z","endsAt":"2024-03-15T02:42:00Z","generatorURL":"localhost:3000/alerting/grafana/NW9oDw-4z/view","fingerprint":"becbfb94bd81ef48","silenceURL":"localhost:3000/alerting/silence/new?alertmanager=grafana&matcher=alertname%3DLoad+avg+15m+too+high&matcher=grafana_folder%3DNode+alerts&matcher=instance%3D10.108.0.2%3A9100&matcher=job%3Dnode-exporter","dashboardURL":"","panelURL":"","values":{"B":18.98211314475876,"C":0},"valueString":"[ var='B' labels={__name__=node_load15, instance=10.108.0.2:9100, job=node-exporter} value=18.98211314475876 ], [ var='C' labels={__name__=node_load15, instance=10.108.0.2:9100, job=node-exporter} value=0 ]"}],"groupLabels":{"alertname":"Load avg 15m too high","grafana_folder":"Node alerts"},"commonLabels":{"alertname":"Load avg 15m too high","grafana_folder":"Node alerts","instance":"10.108.0.2:9100","job":"node-exporter"},"commonAnnotations":{"summary":"15m load average too high"},"externalURL":"localhost:3000/","version":"1","groupKey":"{}:{alertname=\"Load avg 15m too high\", grafana_folder=\"Node alerts\"}","truncatedAlerts":0,"orgId":1,"title":"[RESOLVED] Load avg 15m too high Node alerts (10.108.0.2:9100 node-exporter)","state":"ok","message":"**Resolved**\n\nValue: B=18.98211314475876, C=0\nLabels:\n - alertname = Load avg 15m too high\n - grafana_folder = Node alerts\n - instance = 10.108.0.2:9100\n - job = node-exporter\nAnnotations:\n - summary = 15m load average too high\nSource: localhost:3000/alerting/grafana/NW9oDw-4z/view\nSilence: localhost:3000/alerting/silence/new?alertmanager=grafana&matcher=alertname%3DLoad+avg+15m+too+high&matcher=grafana_folder%3DNode+alerts&matcher=instance%3D10.108.0.2%3A9100&matcher=job%3Dnode-exporter\n"}` response := request(t, s, "PUT", "/mytopic?tpl=yes&title=Grafana+alert:+{{.title}}&message={{.message}}", body, nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "Grafana alert: [RESOLVED] Load avg 15m too high Node alerts (10.108.0.2:9100 node-exporter)", m.Title) require.Equal(t, `**Resolved** Value: B=18.98211314475876, C=0 Labels: - alertname = Load avg 15m too high - grafana_folder = Node alerts - instance = 10.108.0.2:9100 - job = node-exporter Annotations: - summary = 15m load average too high Source: localhost:3000/alerting/grafana/NW9oDw-4z/view Silence: localhost:3000/alerting/silence/new?alertmanager=grafana&matcher=alertname%3DLoad+avg+15m+too+high&matcher=grafana_folder%3DNode+alerts&matcher=instance%3D10.108.0.2%3A9100&matcher=job%3Dnode-exporter `, m.Message) } func TestServer_MessageTemplate_GitHub(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) body := `{"action":"opened","number":1,"pull_request":{"url":"https://api.github.com/repos/binwiederhier/dabble/pulls/1","id":1783420972,"node_id":"PR_kwDOHAbdo85qTNgs","html_url":"https://github.com/binwiederhier/dabble/pull/1","diff_url":"https://github.com/binwiederhier/dabble/pull/1.diff","patch_url":"https://github.com/binwiederhier/dabble/pull/1.patch","issue_url":"https://api.github.com/repos/binwiederhier/dabble/issues/1","number":1,"state":"open","locked":false,"title":"A sample PR from Phil","user":{"login":"binwiederhier","id":664597,"node_id":"MDQ6VXNlcjY2NDU5Nw==","avatar_url":"https://avatars.githubusercontent.com/u/664597?v=4","gravatar_id":"","url":"https://api.github.com/users/binwiederhier","html_url":"https://github.com/binwiederhier","followers_url":"https://api.github.com/users/binwiederhier/followers","following_url":"https://api.github.com/users/binwiederhier/following{/other_user}","gists_url":"https://api.github.com/users/binwiederhier/gists{/gist_id}","starred_url":"https://api.github.com/users/binwiederhier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/binwiederhier/subscriptions","organizations_url":"https://api.github.com/users/binwiederhier/orgs","repos_url":"https://api.github.com/users/binwiederhier/repos","events_url":"https://api.github.com/users/binwiederhier/events{/privacy}","received_events_url":"https://api.github.com/users/binwiederhier/received_events","type":"User","site_admin":false},"body":null,"created_at":"2024-03-21T02:52:09Z","updated_at":"2024-03-21T02:52:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/binwiederhier/dabble/pulls/1/commits","review_comments_url":"https://api.github.com/repos/binwiederhier/dabble/pulls/1/comments","review_comment_url":"https://api.github.com/repos/binwiederhier/dabble/pulls/comments{/number}","comments_url":"https://api.github.com/repos/binwiederhier/dabble/issues/1/comments","statuses_url":"https://api.github.com/repos/binwiederhier/dabble/statuses/5703842cc5715ed1e358d23ebb693db09747ae9b","head":{"label":"binwiederhier:aa","ref":"aa","sha":"5703842cc5715ed1e358d23ebb693db09747ae9b","user":{"login":"binwiederhier","id":664597,"node_id":"MDQ6VXNlcjY2NDU5Nw==","avatar_url":"https://avatars.githubusercontent.com/u/664597?v=4","gravatar_id":"","url":"https://api.github.com/users/binwiederhier","html_url":"https://github.com/binwiederhier","followers_url":"https://api.github.com/users/binwiederhier/followers","following_url":"https://api.github.com/users/binwiederhier/following{/other_user}","gists_url":"https://api.github.com/users/binwiederhier/gists{/gist_id}","starred_url":"https://api.github.com/users/binwiederhier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/binwiederhier/subscriptions","organizations_url":"https://api.github.com/users/binwiederhier/orgs","repos_url":"https://api.github.com/users/binwiederhier/repos","events_url":"https://api.github.com/users/binwiederhier/events{/privacy}","received_events_url":"https://api.github.com/users/binwiederhier/received_events","type":"User","site_admin":false},"repo":{"id":470212003,"node_id":"R_kgDOHAbdow","name":"dabble","full_name":"binwiederhier/dabble","private":false,"owner":{"login":"binwiederhier","id":664597,"node_id":"MDQ6VXNlcjY2NDU5Nw==","avatar_url":"https://avatars.githubusercontent.com/u/664597?v=4","gravatar_id":"","url":"https://api.github.com/users/binwiederhier","html_url":"https://github.com/binwiederhier","followers_url":"https://api.github.com/users/binwiederhier/followers","following_url":"https://api.github.com/users/binwiederhier/following{/other_user}","gists_url":"https://api.github.com/users/binwiederhier/gists{/gist_id}","starred_url":"https://api.github.com/users/binwiederhier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/binwiederhier/subscriptions","organizations_url":"https://api.github.com/users/binwiederhier/orgs","repos_url":"https://api.github.com/users/binwiederhier/repos","events_url":"https://api.github.com/users/binwiederhier/events{/privacy}","received_events_url":"https://api.github.com/users/binwiederhier/received_events","type":"User","site_admin":false},"html_url":"https://github.com/binwiederhier/dabble","description":"A repo for dabbling","fork":false,"url":"https://api.github.com/repos/binwiederhier/dabble","forks_url":"https://api.github.com/repos/binwiederhier/dabble/forks","keys_url":"https://api.github.com/repos/binwiederhier/dabble/keys{/key_id}","collaborators_url":"https://api.github.com/repos/binwiederhier/dabble/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/binwiederhier/dabble/teams","hooks_url":"https://api.github.com/repos/binwiederhier/dabble/hooks","issue_events_url":"https://api.github.com/repos/binwiederhier/dabble/issues/events{/number}","events_url":"https://api.github.com/repos/binwiederhier/dabble/events","assignees_url":"https://api.github.com/repos/binwiederhier/dabble/assignees{/user}","branches_url":"https://api.github.com/repos/binwiederhier/dabble/branches{/branch}","tags_url":"https://api.github.com/repos/binwiederhier/dabble/tags","blobs_url":"https://api.github.com/repos/binwiederhier/dabble/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/binwiederhier/dabble/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/binwiederhier/dabble/git/refs{/sha}","trees_url":"https://api.github.com/repos/binwiederhier/dabble/git/trees{/sha}","statuses_url":"https://api.github.com/repos/binwiederhier/dabble/statuses/{sha}","languages_url":"https://api.github.com/repos/binwiederhier/dabble/languages","stargazers_url":"https://api.github.com/repos/binwiederhier/dabble/stargazers","contributors_url":"https://api.github.com/repos/binwiederhier/dabble/contributors","subscribers_url":"https://api.github.com/repos/binwiederhier/dabble/subscribers","subscription_url":"https://api.github.com/repos/binwiederhier/dabble/subscription","commits_url":"https://api.github.com/repos/binwiederhier/dabble/commits{/sha}","git_commits_url":"https://api.github.com/repos/binwiederhier/dabble/git/commits{/sha}","comments_url":"https://api.github.com/repos/binwiederhier/dabble/comments{/number}","issue_comment_url":"https://api.github.com/repos/binwiederhier/dabble/issues/comments{/number}","contents_url":"https://api.github.com/repos/binwiederhier/dabble/contents/{+path}","compare_url":"https://api.github.com/repos/binwiederhier/dabble/compare/{base}...{head}","merges_url":"https://api.github.com/repos/binwiederhier/dabble/merges","archive_url":"https://api.github.com/repos/binwiederhier/dabble/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/binwiederhier/dabble/downloads","issues_url":"https://api.github.com/repos/binwiederhier/dabble/issues{/number}","pulls_url":"https://api.github.com/repos/binwiederhier/dabble/pulls{/number}","milestones_url":"https://api.github.com/repos/binwiederhier/dabble/milestones{/number}","notifications_url":"https://api.github.com/repos/binwiederhier/dabble/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/binwiederhier/dabble/labels{/name}","releases_url":"https://api.github.com/repos/binwiederhier/dabble/releases{/id}","deployments_url":"https://api.github.com/repos/binwiederhier/dabble/deployments","created_at":"2022-03-15T15:06:17Z","updated_at":"2022-03-15T15:06:17Z","pushed_at":"2024-03-21T02:52:10Z","git_url":"git://github.com/binwiederhier/dabble.git","ssh_url":"git@github.com:binwiederhier/dabble.git","clone_url":"https://github.com/binwiederhier/dabble.git","svn_url":"https://github.com/binwiederhier/dabble","homepage":null,"size":1,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"main","allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"allow_auto_merge":false,"delete_branch_on_merge":false,"allow_update_branch":false,"use_squash_pr_title_as_default":false,"squash_merge_commit_message":"COMMIT_MESSAGES","squash_merge_commit_title":"COMMIT_OR_PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE"}},"base":{"label":"binwiederhier:main","ref":"main","sha":"72d931a20bb83d123ab45accaf761150c8b01211","user":{"login":"binwiederhier","id":664597,"node_id":"MDQ6VXNlcjY2NDU5Nw==","avatar_url":"https://avatars.githubusercontent.com/u/664597?v=4","gravatar_id":"","url":"https://api.github.com/users/binwiederhier","html_url":"https://github.com/binwiederhier","followers_url":"https://api.github.com/users/binwiederhier/followers","following_url":"https://api.github.com/users/binwiederhier/following{/other_user}","gists_url":"https://api.github.com/users/binwiederhier/gists{/gist_id}","starred_url":"https://api.github.com/users/binwiederhier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/binwiederhier/subscriptions","organizations_url":"https://api.github.com/users/binwiederhier/orgs","repos_url":"https://api.github.com/users/binwiederhier/repos","events_url":"https://api.github.com/users/binwiederhier/events{/privacy}","received_events_url":"https://api.github.com/users/binwiederhier/received_events","type":"User","site_admin":false},"repo":{"id":470212003,"node_id":"R_kgDOHAbdow","name":"dabble","full_name":"binwiederhier/dabble","private":false,"owner":{"login":"binwiederhier","id":664597,"node_id":"MDQ6VXNlcjY2NDU5Nw==","avatar_url":"https://avatars.githubusercontent.com/u/664597?v=4","gravatar_id":"","url":"https://api.github.com/users/binwiederhier","html_url":"https://github.com/binwiederhier","followers_url":"https://api.github.com/users/binwiederhier/followers","following_url":"https://api.github.com/users/binwiederhier/following{/other_user}","gists_url":"https://api.github.com/users/binwiederhier/gists{/gist_id}","starred_url":"https://api.github.com/users/binwiederhier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/binwiederhier/subscriptions","organizations_url":"https://api.github.com/users/binwiederhier/orgs","repos_url":"https://api.github.com/users/binwiederhier/repos","events_url":"https://api.github.com/users/binwiederhier/events{/privacy}","received_events_url":"https://api.github.com/users/binwiederhier/received_events","type":"User","site_admin":false},"html_url":"https://github.com/binwiederhier/dabble","description":"A repo for dabbling","fork":false,"url":"https://api.github.com/repos/binwiederhier/dabble","forks_url":"https://api.github.com/repos/binwiederhier/dabble/forks","keys_url":"https://api.github.com/repos/binwiederhier/dabble/keys{/key_id}","collaborators_url":"https://api.github.com/repos/binwiederhier/dabble/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/binwiederhier/dabble/teams","hooks_url":"https://api.github.com/repos/binwiederhier/dabble/hooks","issue_events_url":"https://api.github.com/repos/binwiederhier/dabble/issues/events{/number}","events_url":"https://api.github.com/repos/binwiederhier/dabble/events","assignees_url":"https://api.github.com/repos/binwiederhier/dabble/assignees{/user}","branches_url":"https://api.github.com/repos/binwiederhier/dabble/branches{/branch}","tags_url":"https://api.github.com/repos/binwiederhier/dabble/tags","blobs_url":"https://api.github.com/repos/binwiederhier/dabble/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/binwiederhier/dabble/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/binwiederhier/dabble/git/refs{/sha}","trees_url":"https://api.github.com/repos/binwiederhier/dabble/git/trees{/sha}","statuses_url":"https://api.github.com/repos/binwiederhier/dabble/statuses/{sha}","languages_url":"https://api.github.com/repos/binwiederhier/dabble/languages","stargazers_url":"https://api.github.com/repos/binwiederhier/dabble/stargazers","contributors_url":"https://api.github.com/repos/binwiederhier/dabble/contributors","subscribers_url":"https://api.github.com/repos/binwiederhier/dabble/subscribers","subscription_url":"https://api.github.com/repos/binwiederhier/dabble/subscription","commits_url":"https://api.github.com/repos/binwiederhier/dabble/commits{/sha}","git_commits_url":"https://api.github.com/repos/binwiederhier/dabble/git/commits{/sha}","comments_url":"https://api.github.com/repos/binwiederhier/dabble/comments{/number}","issue_comment_url":"https://api.github.com/repos/binwiederhier/dabble/issues/comments{/number}","contents_url":"https://api.github.com/repos/binwiederhier/dabble/contents/{+path}","compare_url":"https://api.github.com/repos/binwiederhier/dabble/compare/{base}...{head}","merges_url":"https://api.github.com/repos/binwiederhier/dabble/merges","archive_url":"https://api.github.com/repos/binwiederhier/dabble/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/binwiederhier/dabble/downloads","issues_url":"https://api.github.com/repos/binwiederhier/dabble/issues{/number}","pulls_url":"https://api.github.com/repos/binwiederhier/dabble/pulls{/number}","milestones_url":"https://api.github.com/repos/binwiederhier/dabble/milestones{/number}","notifications_url":"https://api.github.com/repos/binwiederhier/dabble/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/binwiederhier/dabble/labels{/name}","releases_url":"https://api.github.com/repos/binwiederhier/dabble/releases{/id}","deployments_url":"https://api.github.com/repos/binwiederhier/dabble/deployments","created_at":"2022-03-15T15:06:17Z","updated_at":"2022-03-15T15:06:17Z","pushed_at":"2024-03-21T02:52:10Z","git_url":"git://github.com/binwiederhier/dabble.git","ssh_url":"git@github.com:binwiederhier/dabble.git","clone_url":"https://github.com/binwiederhier/dabble.git","svn_url":"https://github.com/binwiederhier/dabble","homepage":null,"size":1,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"main","allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"allow_auto_merge":false,"delete_branch_on_merge":false,"allow_update_branch":false,"use_squash_pr_title_as_default":false,"squash_merge_commit_message":"COMMIT_MESSAGES","squash_merge_commit_title":"COMMIT_OR_PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE"}},"_links":{"self":{"href":"https://api.github.com/repos/binwiederhier/dabble/pulls/1"},"html":{"href":"https://github.com/binwiederhier/dabble/pull/1"},"issue":{"href":"https://api.github.com/repos/binwiederhier/dabble/issues/1"},"comments":{"href":"https://api.github.com/repos/binwiederhier/dabble/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/binwiederhier/dabble/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/binwiederhier/dabble/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/binwiederhier/dabble/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/binwiederhier/dabble/statuses/5703842cc5715ed1e358d23ebb693db09747ae9b"}},"author_association":"OWNER","auto_merge":null,"active_lock_reason":null,"merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":1,"deletions":1,"changed_files":1},"repository":{"id":470212003,"node_id":"R_kgDOHAbdow","name":"dabble","full_name":"binwiederhier/dabble","private":false,"owner":{"login":"binwiederhier","id":664597,"node_id":"MDQ6VXNlcjY2NDU5Nw==","avatar_url":"https://avatars.githubusercontent.com/u/664597?v=4","gravatar_id":"","url":"https://api.github.com/users/binwiederhier","html_url":"https://github.com/binwiederhier","followers_url":"https://api.github.com/users/binwiederhier/followers","following_url":"https://api.github.com/users/binwiederhier/following{/other_user}","gists_url":"https://api.github.com/users/binwiederhier/gists{/gist_id}","starred_url":"https://api.github.com/users/binwiederhier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/binwiederhier/subscriptions","organizations_url":"https://api.github.com/users/binwiederhier/orgs","repos_url":"https://api.github.com/users/binwiederhier/repos","events_url":"https://api.github.com/users/binwiederhier/events{/privacy}","received_events_url":"https://api.github.com/users/binwiederhier/received_events","type":"User","site_admin":false},"html_url":"https://github.com/binwiederhier/dabble","description":"A repo for dabbling","fork":false,"url":"https://api.github.com/repos/binwiederhier/dabble","forks_url":"https://api.github.com/repos/binwiederhier/dabble/forks","keys_url":"https://api.github.com/repos/binwiederhier/dabble/keys{/key_id}","collaborators_url":"https://api.github.com/repos/binwiederhier/dabble/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/binwiederhier/dabble/teams","hooks_url":"https://api.github.com/repos/binwiederhier/dabble/hooks","issue_events_url":"https://api.github.com/repos/binwiederhier/dabble/issues/events{/number}","events_url":"https://api.github.com/repos/binwiederhier/dabble/events","assignees_url":"https://api.github.com/repos/binwiederhier/dabble/assignees{/user}","branches_url":"https://api.github.com/repos/binwiederhier/dabble/branches{/branch}","tags_url":"https://api.github.com/repos/binwiederhier/dabble/tags","blobs_url":"https://api.github.com/repos/binwiederhier/dabble/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/binwiederhier/dabble/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/binwiederhier/dabble/git/refs{/sha}","trees_url":"https://api.github.com/repos/binwiederhier/dabble/git/trees{/sha}","statuses_url":"https://api.github.com/repos/binwiederhier/dabble/statuses/{sha}","languages_url":"https://api.github.com/repos/binwiederhier/dabble/languages","stargazers_url":"https://api.github.com/repos/binwiederhier/dabble/stargazers","contributors_url":"https://api.github.com/repos/binwiederhier/dabble/contributors","subscribers_url":"https://api.github.com/repos/binwiederhier/dabble/subscribers","subscription_url":"https://api.github.com/repos/binwiederhier/dabble/subscription","commits_url":"https://api.github.com/repos/binwiederhier/dabble/commits{/sha}","git_commits_url":"https://api.github.com/repos/binwiederhier/dabble/git/commits{/sha}","comments_url":"https://api.github.com/repos/binwiederhier/dabble/comments{/number}","issue_comment_url":"https://api.github.com/repos/binwiederhier/dabble/issues/comments{/number}","contents_url":"https://api.github.com/repos/binwiederhier/dabble/contents/{+path}","compare_url":"https://api.github.com/repos/binwiederhier/dabble/compare/{base}...{head}","merges_url":"https://api.github.com/repos/binwiederhier/dabble/merges","archive_url":"https://api.github.com/repos/binwiederhier/dabble/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/binwiederhier/dabble/downloads","issues_url":"https://api.github.com/repos/binwiederhier/dabble/issues{/number}","pulls_url":"https://api.github.com/repos/binwiederhier/dabble/pulls{/number}","milestones_url":"https://api.github.com/repos/binwiederhier/dabble/milestones{/number}","notifications_url":"https://api.github.com/repos/binwiederhier/dabble/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/binwiederhier/dabble/labels{/name}","releases_url":"https://api.github.com/repos/binwiederhier/dabble/releases{/id}","deployments_url":"https://api.github.com/repos/binwiederhier/dabble/deployments","created_at":"2022-03-15T15:06:17Z","updated_at":"2022-03-15T15:06:17Z","pushed_at":"2024-03-21T02:52:10Z","git_url":"git://github.com/binwiederhier/dabble.git","ssh_url":"git@github.com:binwiederhier/dabble.git","clone_url":"https://github.com/binwiederhier/dabble.git","svn_url":"https://github.com/binwiederhier/dabble","homepage":null,"size":1,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"main"},"sender":{"login":"binwiederhier","id":664597,"node_id":"MDQ6VXNlcjY2NDU5Nw==","avatar_url":"https://avatars.githubusercontent.com/u/664597?v=4","gravatar_id":"","url":"https://api.github.com/users/binwiederhier","html_url":"https://github.com/binwiederhier","followers_url":"https://api.github.com/users/binwiederhier/followers","following_url":"https://api.github.com/users/binwiederhier/following{/other_user}","gists_url":"https://api.github.com/users/binwiederhier/gists{/gist_id}","starred_url":"https://api.github.com/users/binwiederhier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/binwiederhier/subscriptions","organizations_url":"https://api.github.com/users/binwiederhier/orgs","repos_url":"https://api.github.com/users/binwiederhier/repos","events_url":"https://api.github.com/users/binwiederhier/events{/privacy}","received_events_url":"https://api.github.com/users/binwiederhier/received_events","type":"User","site_admin":false}}` response := request(t, s, "PUT", `/mytopic?tpl=yes&message=[{{.pull_request.head.repo.full_name}}]+Pull+request+{{if+eq+.action+"opened"}}OPENED{{else}}CLOSED{{end}}:+{{.pull_request.title}}`, body, nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, "", m.Title) require.Equal(t, `[binwiederhier/dabble] Pull request OPENED: A sample PR from Phil`, m.Message) } func TestServer_MessageTemplate_GitHub2(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) body := `{"action":"opened","number":1,"pull_request":{"url":"https://api.github.com/repos/binwiederhier/dabble/pulls/1","id":1783420972,"node_id":"PR_kwDOHAbdo85qTNgs","html_url":"https://github.com/binwiederhier/dabble/pull/1","diff_url":"https://github.com/binwiederhier/dabble/pull/1.diff","patch_url":"https://github.com/binwiederhier/dabble/pull/1.patch","issue_url":"https://api.github.com/repos/binwiederhier/dabble/issues/1","number":1,"state":"open","locked":false,"title":"A sample PR from Phil","user":{"login":"binwiederhier","id":664597,"node_id":"MDQ6VXNlcjY2NDU5Nw==","avatar_url":"https://avatars.githubusercontent.com/u/664597?v=4","gravatar_id":"","url":"https://api.github.com/users/binwiederhier","html_url":"https://github.com/binwiederhier","followers_url":"https://api.github.com/users/binwiederhier/followers","following_url":"https://api.github.com/users/binwiederhier/following{/other_user}","gists_url":"https://api.github.com/users/binwiederhier/gists{/gist_id}","starred_url":"https://api.github.com/users/binwiederhier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/binwiederhier/subscriptions","organizations_url":"https://api.github.com/users/binwiederhier/orgs","repos_url":"https://api.github.com/users/binwiederhier/repos","events_url":"https://api.github.com/users/binwiederhier/events{/privacy}","received_events_url":"https://api.github.com/users/binwiederhier/received_events","type":"User","site_admin":false},"body":null,"created_at":"2024-03-21T02:52:09Z","updated_at":"2024-03-21T02:52:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/binwiederhier/dabble/pulls/1/commits","review_comments_url":"https://api.github.com/repos/binwiederhier/dabble/pulls/1/comments","review_comment_url":"https://api.github.com/repos/binwiederhier/dabble/pulls/comments{/number}","comments_url":"https://api.github.com/repos/binwiederhier/dabble/issues/1/comments","statuses_url":"https://api.github.com/repos/binwiederhier/dabble/statuses/5703842cc5715ed1e358d23ebb693db09747ae9b","head":{"label":"binwiederhier:aa","ref":"aa","sha":"5703842cc5715ed1e358d23ebb693db09747ae9b","user":{"login":"binwiederhier","id":664597,"node_id":"MDQ6VXNlcjY2NDU5Nw==","avatar_url":"https://avatars.githubusercontent.com/u/664597?v=4","gravatar_id":"","url":"https://api.github.com/users/binwiederhier","html_url":"https://github.com/binwiederhier","followers_url":"https://api.github.com/users/binwiederhier/followers","following_url":"https://api.github.com/users/binwiederhier/following{/other_user}","gists_url":"https://api.github.com/users/binwiederhier/gists{/gist_id}","starred_url":"https://api.github.com/users/binwiederhier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/binwiederhier/subscriptions","organizations_url":"https://api.github.com/users/binwiederhier/orgs","repos_url":"https://api.github.com/users/binwiederhier/repos","events_url":"https://api.github.com/users/binwiederhier/events{/privacy}","received_events_url":"https://api.github.com/users/binwiederhier/received_events","type":"User","site_admin":false},"repo":{"id":470212003,"node_id":"R_kgDOHAbdow","name":"dabble","full_name":"binwiederhier/dabble","private":false,"owner":{"login":"binwiederhier","id":664597,"node_id":"MDQ6VXNlcjY2NDU5Nw==","avatar_url":"https://avatars.githubusercontent.com/u/664597?v=4","gravatar_id":"","url":"https://api.github.com/users/binwiederhier","html_url":"https://github.com/binwiederhier","followers_url":"https://api.github.com/users/binwiederhier/followers","following_url":"https://api.github.com/users/binwiederhier/following{/other_user}","gists_url":"https://api.github.com/users/binwiederhier/gists{/gist_id}","starred_url":"https://api.github.com/users/binwiederhier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/binwiederhier/subscriptions","organizations_url":"https://api.github.com/users/binwiederhier/orgs","repos_url":"https://api.github.com/users/binwiederhier/repos","events_url":"https://api.github.com/users/binwiederhier/events{/privacy}","received_events_url":"https://api.github.com/users/binwiederhier/received_events","type":"User","site_admin":false},"html_url":"https://github.com/binwiederhier/dabble","description":"A repo for dabbling","fork":false,"url":"https://api.github.com/repos/binwiederhier/dabble","forks_url":"https://api.github.com/repos/binwiederhier/dabble/forks","keys_url":"https://api.github.com/repos/binwiederhier/dabble/keys{/key_id}","collaborators_url":"https://api.github.com/repos/binwiederhier/dabble/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/binwiederhier/dabble/teams","hooks_url":"https://api.github.com/repos/binwiederhier/dabble/hooks","issue_events_url":"https://api.github.com/repos/binwiederhier/dabble/issues/events{/number}","events_url":"https://api.github.com/repos/binwiederhier/dabble/events","assignees_url":"https://api.github.com/repos/binwiederhier/dabble/assignees{/user}","branches_url":"https://api.github.com/repos/binwiederhier/dabble/branches{/branch}","tags_url":"https://api.github.com/repos/binwiederhier/dabble/tags","blobs_url":"https://api.github.com/repos/binwiederhier/dabble/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/binwiederhier/dabble/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/binwiederhier/dabble/git/refs{/sha}","trees_url":"https://api.github.com/repos/binwiederhier/dabble/git/trees{/sha}","statuses_url":"https://api.github.com/repos/binwiederhier/dabble/statuses/{sha}","languages_url":"https://api.github.com/repos/binwiederhier/dabble/languages","stargazers_url":"https://api.github.com/repos/binwiederhier/dabble/stargazers","contributors_url":"https://api.github.com/repos/binwiederhier/dabble/contributors","subscribers_url":"https://api.github.com/repos/binwiederhier/dabble/subscribers","subscription_url":"https://api.github.com/repos/binwiederhier/dabble/subscription","commits_url":"https://api.github.com/repos/binwiederhier/dabble/commits{/sha}","git_commits_url":"https://api.github.com/repos/binwiederhier/dabble/git/commits{/sha}","comments_url":"https://api.github.com/repos/binwiederhier/dabble/comments{/number}","issue_comment_url":"https://api.github.com/repos/binwiederhier/dabble/issues/comments{/number}","contents_url":"https://api.github.com/repos/binwiederhier/dabble/contents/{+path}","compare_url":"https://api.github.com/repos/binwiederhier/dabble/compare/{base}...{head}","merges_url":"https://api.github.com/repos/binwiederhier/dabble/merges","archive_url":"https://api.github.com/repos/binwiederhier/dabble/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/binwiederhier/dabble/downloads","issues_url":"https://api.github.com/repos/binwiederhier/dabble/issues{/number}","pulls_url":"https://api.github.com/repos/binwiederhier/dabble/pulls{/number}","milestones_url":"https://api.github.com/repos/binwiederhier/dabble/milestones{/number}","notifications_url":"https://api.github.com/repos/binwiederhier/dabble/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/binwiederhier/dabble/labels{/name}","releases_url":"https://api.github.com/repos/binwiederhier/dabble/releases{/id}","deployments_url":"https://api.github.com/repos/binwiederhier/dabble/deployments","created_at":"2022-03-15T15:06:17Z","updated_at":"2022-03-15T15:06:17Z","pushed_at":"2024-03-21T02:52:10Z","git_url":"git://github.com/binwiederhier/dabble.git","ssh_url":"git@github.com:binwiederhier/dabble.git","clone_url":"https://github.com/binwiederhier/dabble.git","svn_url":"https://github.com/binwiederhier/dabble","homepage":null,"size":1,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"main","allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"allow_auto_merge":false,"delete_branch_on_merge":false,"allow_update_branch":false,"use_squash_pr_title_as_default":false,"squash_merge_commit_message":"COMMIT_MESSAGES","squash_merge_commit_title":"COMMIT_OR_PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE"}},"base":{"label":"binwiederhier:main","ref":"main","sha":"72d931a20bb83d123ab45accaf761150c8b01211","user":{"login":"binwiederhier","id":664597,"node_id":"MDQ6VXNlcjY2NDU5Nw==","avatar_url":"https://avatars.githubusercontent.com/u/664597?v=4","gravatar_id":"","url":"https://api.github.com/users/binwiederhier","html_url":"https://github.com/binwiederhier","followers_url":"https://api.github.com/users/binwiederhier/followers","following_url":"https://api.github.com/users/binwiederhier/following{/other_user}","gists_url":"https://api.github.com/users/binwiederhier/gists{/gist_id}","starred_url":"https://api.github.com/users/binwiederhier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/binwiederhier/subscriptions","organizations_url":"https://api.github.com/users/binwiederhier/orgs","repos_url":"https://api.github.com/users/binwiederhier/repos","events_url":"https://api.github.com/users/binwiederhier/events{/privacy}","received_events_url":"https://api.github.com/users/binwiederhier/received_events","type":"User","site_admin":false},"repo":{"id":470212003,"node_id":"R_kgDOHAbdow","name":"dabble","full_name":"binwiederhier/dabble","private":false,"owner":{"login":"binwiederhier","id":664597,"node_id":"MDQ6VXNlcjY2NDU5Nw==","avatar_url":"https://avatars.githubusercontent.com/u/664597?v=4","gravatar_id":"","url":"https://api.github.com/users/binwiederhier","html_url":"https://github.com/binwiederhier","followers_url":"https://api.github.com/users/binwiederhier/followers","following_url":"https://api.github.com/users/binwiederhier/following{/other_user}","gists_url":"https://api.github.com/users/binwiederhier/gists{/gist_id}","starred_url":"https://api.github.com/users/binwiederhier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/binwiederhier/subscriptions","organizations_url":"https://api.github.com/users/binwiederhier/orgs","repos_url":"https://api.github.com/users/binwiederhier/repos","events_url":"https://api.github.com/users/binwiederhier/events{/privacy}","received_events_url":"https://api.github.com/users/binwiederhier/received_events","type":"User","site_admin":false},"html_url":"https://github.com/binwiederhier/dabble","description":"A repo for dabbling","fork":false,"url":"https://api.github.com/repos/binwiederhier/dabble","forks_url":"https://api.github.com/repos/binwiederhier/dabble/forks","keys_url":"https://api.github.com/repos/binwiederhier/dabble/keys{/key_id}","collaborators_url":"https://api.github.com/repos/binwiederhier/dabble/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/binwiederhier/dabble/teams","hooks_url":"https://api.github.com/repos/binwiederhier/dabble/hooks","issue_events_url":"https://api.github.com/repos/binwiederhier/dabble/issues/events{/number}","events_url":"https://api.github.com/repos/binwiederhier/dabble/events","assignees_url":"https://api.github.com/repos/binwiederhier/dabble/assignees{/user}","branches_url":"https://api.github.com/repos/binwiederhier/dabble/branches{/branch}","tags_url":"https://api.github.com/repos/binwiederhier/dabble/tags","blobs_url":"https://api.github.com/repos/binwiederhier/dabble/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/binwiederhier/dabble/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/binwiederhier/dabble/git/refs{/sha}","trees_url":"https://api.github.com/repos/binwiederhier/dabble/git/trees{/sha}","statuses_url":"https://api.github.com/repos/binwiederhier/dabble/statuses/{sha}","languages_url":"https://api.github.com/repos/binwiederhier/dabble/languages","stargazers_url":"https://api.github.com/repos/binwiederhier/dabble/stargazers","contributors_url":"https://api.github.com/repos/binwiederhier/dabble/contributors","subscribers_url":"https://api.github.com/repos/binwiederhier/dabble/subscribers","subscription_url":"https://api.github.com/repos/binwiederhier/dabble/subscription","commits_url":"https://api.github.com/repos/binwiederhier/dabble/commits{/sha}","git_commits_url":"https://api.github.com/repos/binwiederhier/dabble/git/commits{/sha}","comments_url":"https://api.github.com/repos/binwiederhier/dabble/comments{/number}","issue_comment_url":"https://api.github.com/repos/binwiederhier/dabble/issues/comments{/number}","contents_url":"https://api.github.com/repos/binwiederhier/dabble/contents/{+path}","compare_url":"https://api.github.com/repos/binwiederhier/dabble/compare/{base}...{head}","merges_url":"https://api.github.com/repos/binwiederhier/dabble/merges","archive_url":"https://api.github.com/repos/binwiederhier/dabble/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/binwiederhier/dabble/downloads","issues_url":"https://api.github.com/repos/binwiederhier/dabble/issues{/number}","pulls_url":"https://api.github.com/repos/binwiederhier/dabble/pulls{/number}","milestones_url":"https://api.github.com/repos/binwiederhier/dabble/milestones{/number}","notifications_url":"https://api.github.com/repos/binwiederhier/dabble/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/binwiederhier/dabble/labels{/name}","releases_url":"https://api.github.com/repos/binwiederhier/dabble/releases{/id}","deployments_url":"https://api.github.com/repos/binwiederhier/dabble/deployments","created_at":"2022-03-15T15:06:17Z","updated_at":"2022-03-15T15:06:17Z","pushed_at":"2024-03-21T02:52:10Z","git_url":"git://github.com/binwiederhier/dabble.git","ssh_url":"git@github.com:binwiederhier/dabble.git","clone_url":"https://github.com/binwiederhier/dabble.git","svn_url":"https://github.com/binwiederhier/dabble","homepage":null,"size":1,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"main","allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"allow_auto_merge":false,"delete_branch_on_merge":false,"allow_update_branch":false,"use_squash_pr_title_as_default":false,"squash_merge_commit_message":"COMMIT_MESSAGES","squash_merge_commit_title":"COMMIT_OR_PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE"}},"_links":{"self":{"href":"https://api.github.com/repos/binwiederhier/dabble/pulls/1"},"html":{"href":"https://github.com/binwiederhier/dabble/pull/1"},"issue":{"href":"https://api.github.com/repos/binwiederhier/dabble/issues/1"},"comments":{"href":"https://api.github.com/repos/binwiederhier/dabble/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/binwiederhier/dabble/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/binwiederhier/dabble/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/binwiederhier/dabble/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/binwiederhier/dabble/statuses/5703842cc5715ed1e358d23ebb693db09747ae9b"}},"author_association":"OWNER","auto_merge":null,"active_lock_reason":null,"merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":1,"deletions":1,"changed_files":1},"repository":{"id":470212003,"node_id":"R_kgDOHAbdow","name":"dabble","full_name":"binwiederhier/dabble","private":false,"owner":{"login":"binwiederhier","id":664597,"node_id":"MDQ6VXNlcjY2NDU5Nw==","avatar_url":"https://avatars.githubusercontent.com/u/664597?v=4","gravatar_id":"","url":"https://api.github.com/users/binwiederhier","html_url":"https://github.com/binwiederhier","followers_url":"https://api.github.com/users/binwiederhier/followers","following_url":"https://api.github.com/users/binwiederhier/following{/other_user}","gists_url":"https://api.github.com/users/binwiederhier/gists{/gist_id}","starred_url":"https://api.github.com/users/binwiederhier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/binwiederhier/subscriptions","organizations_url":"https://api.github.com/users/binwiederhier/orgs","repos_url":"https://api.github.com/users/binwiederhier/repos","events_url":"https://api.github.com/users/binwiederhier/events{/privacy}","received_events_url":"https://api.github.com/users/binwiederhier/received_events","type":"User","site_admin":false},"html_url":"https://github.com/binwiederhier/dabble","description":"A repo for dabbling","fork":false,"url":"https://api.github.com/repos/binwiederhier/dabble","forks_url":"https://api.github.com/repos/binwiederhier/dabble/forks","keys_url":"https://api.github.com/repos/binwiederhier/dabble/keys{/key_id}","collaborators_url":"https://api.github.com/repos/binwiederhier/dabble/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/binwiederhier/dabble/teams","hooks_url":"https://api.github.com/repos/binwiederhier/dabble/hooks","issue_events_url":"https://api.github.com/repos/binwiederhier/dabble/issues/events{/number}","events_url":"https://api.github.com/repos/binwiederhier/dabble/events","assignees_url":"https://api.github.com/repos/binwiederhier/dabble/assignees{/user}","branches_url":"https://api.github.com/repos/binwiederhier/dabble/branches{/branch}","tags_url":"https://api.github.com/repos/binwiederhier/dabble/tags","blobs_url":"https://api.github.com/repos/binwiederhier/dabble/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/binwiederhier/dabble/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/binwiederhier/dabble/git/refs{/sha}","trees_url":"https://api.github.com/repos/binwiederhier/dabble/git/trees{/sha}","statuses_url":"https://api.github.com/repos/binwiederhier/dabble/statuses/{sha}","languages_url":"https://api.github.com/repos/binwiederhier/dabble/languages","stargazers_url":"https://api.github.com/repos/binwiederhier/dabble/stargazers","contributors_url":"https://api.github.com/repos/binwiederhier/dabble/contributors","subscribers_url":"https://api.github.com/repos/binwiederhier/dabble/subscribers","subscription_url":"https://api.github.com/repos/binwiederhier/dabble/subscription","commits_url":"https://api.github.com/repos/binwiederhier/dabble/commits{/sha}","git_commits_url":"https://api.github.com/repos/binwiederhier/dabble/git/commits{/sha}","comments_url":"https://api.github.com/repos/binwiederhier/dabble/comments{/number}","issue_comment_url":"https://api.github.com/repos/binwiederhier/dabble/issues/comments{/number}","contents_url":"https://api.github.com/repos/binwiederhier/dabble/contents/{+path}","compare_url":"https://api.github.com/repos/binwiederhier/dabble/compare/{base}...{head}","merges_url":"https://api.github.com/repos/binwiederhier/dabble/merges","archive_url":"https://api.github.com/repos/binwiederhier/dabble/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/binwiederhier/dabble/downloads","issues_url":"https://api.github.com/repos/binwiederhier/dabble/issues{/number}","pulls_url":"https://api.github.com/repos/binwiederhier/dabble/pulls{/number}","milestones_url":"https://api.github.com/repos/binwiederhier/dabble/milestones{/number}","notifications_url":"https://api.github.com/repos/binwiederhier/dabble/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/binwiederhier/dabble/labels{/name}","releases_url":"https://api.github.com/repos/binwiederhier/dabble/releases{/id}","deployments_url":"https://api.github.com/repos/binwiederhier/dabble/deployments","created_at":"2022-03-15T15:06:17Z","updated_at":"2022-03-15T15:06:17Z","pushed_at":"2024-03-21T02:52:10Z","git_url":"git://github.com/binwiederhier/dabble.git","ssh_url":"git@github.com:binwiederhier/dabble.git","clone_url":"https://github.com/binwiederhier/dabble.git","svn_url":"https://github.com/binwiederhier/dabble","homepage":null,"size":1,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"main"},"sender":{"login":"binwiederhier","id":664597,"node_id":"MDQ6VXNlcjY2NDU5Nw==","avatar_url":"https://avatars.githubusercontent.com/u/664597?v=4","gravatar_id":"","url":"https://api.github.com/users/binwiederhier","html_url":"https://github.com/binwiederhier","followers_url":"https://api.github.com/users/binwiederhier/followers","following_url":"https://api.github.com/users/binwiederhier/following{/other_user}","gists_url":"https://api.github.com/users/binwiederhier/gists{/gist_id}","starred_url":"https://api.github.com/users/binwiederhier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/binwiederhier/subscriptions","organizations_url":"https://api.github.com/users/binwiederhier/orgs","repos_url":"https://api.github.com/users/binwiederhier/repos","events_url":"https://api.github.com/users/binwiederhier/events{/privacy}","received_events_url":"https://api.github.com/users/binwiederhier/received_events","type":"User","site_admin":false}}` response := request(t, s, "PUT", `/mytopic?tpl=yes&title={{if+eq+.action+"opened"}}New+PR:+%23{{.number}}+by+{{.pull_request.user.login}}{{else}}[{{.action}}]+PR:+%23{{.number}}+by+{{.pull_request.user.login}}{{end}}&message={{.pull_request.title}}+in+{{.repository.full_name}}.+View+more+at+{{.pull_request.html_url}}`, body, nil) require.Equal(t, 200, response.Code) m := toMessage(t, response.Body.String()) require.Equal(t, `New PR: #1 by binwiederhier`, m.Title) require.Equal(t, `A sample PR from Phil in binwiederhier/dabble. View more at https://github.com/binwiederhier/dabble/pull/1`, m.Message) } func TestServer_MessageTemplate_DisallowedCalls(t *testing.T) { t.Parallel() s := newTestServer(t, newTestConfig(t)) disallowedTemplates := []string{ `{{template ""}}`, `{{- template ""}}`, `{{- template ""}}`, `{{ call abc}}`, `{{ define "aa"}}`, `We cannot {{define "aa"}}`, `We cannot {{ call "aa"}}`, `We cannot {{- template "aa"}}`, } for _, disallowedTemplate := range disallowedTemplates { messageTemplate := disallowedTemplate t.Run(disallowedTemplate, func(t *testing.T) { t.Parallel() response := request(t, s, "PUT", `/mytopic`, `{}`, map[string]string{ "Template": "yes", "Message": messageTemplate, }) require.Equal(t, 400, response.Code) require.Equal(t, 40044, toHTTPError(t, response.Body.String()).Code) }) } } func newTestConfig(t *testing.T) *Config { conf := NewConfig() conf.BaseURL = "http://127.0.0.1:12345" conf.CacheFile = filepath.Join(t.TempDir(), "cache.db") conf.CacheStartupQueries = "pragma journal_mode = WAL; pragma synchronous = normal; pragma temp_store = memory;" conf.AttachmentCacheDir = t.TempDir() return conf } func configureAuth(t *testing.T, conf *Config) *Config { conf.AuthFile = filepath.Join(t.TempDir(), "user.db") conf.AuthStartupQueries = "pragma journal_mode = WAL; pragma synchronous = normal; pragma temp_store = memory;" conf.AuthBcryptCost = bcrypt.MinCost // This speeds up tests a lot return conf } func newTestConfigWithAuthFile(t *testing.T) *Config { conf := newTestConfig(t) conf = configureAuth(t, conf) return conf } func newTestConfigWithWebPush(t *testing.T) *Config { conf := newTestConfig(t) privateKey, publicKey, err := webpush.GenerateVAPIDKeys() require.Nil(t, err) conf.WebPushFile = filepath.Join(t.TempDir(), "webpush.db") conf.WebPushEmailAddress = "testing@example.com" conf.WebPushPrivateKey = privateKey conf.WebPushPublicKey = publicKey return conf } func newTestServer(t *testing.T, config *Config) *Server { server, err := New(config) require.Nil(t, err) return server } func request(t *testing.T, s *Server, method, url, body string, headers map[string]string, fn ...func(r *http.Request)) *httptest.ResponseRecorder { rr := httptest.NewRecorder() r, err := http.NewRequest(method, url, strings.NewReader(body)) if err != nil { t.Fatal(err) } r.RemoteAddr = "9.9.9.9" // Used for tests for k, v := range headers { r.Header.Set(k, v) } for _, f := range fn { f(r) } s.handle(rr, r) return rr } func subscribe(t *testing.T, s *Server, url string, rr *httptest.ResponseRecorder) context.CancelFunc { ctx, cancel := context.WithCancel(context.Background()) req, err := http.NewRequestWithContext(ctx, "GET", url, nil) if err != nil { t.Fatal(err) } done := make(chan bool) go func() { s.handle(rr, req) done <- true }() cancelAndWaitForDone := func() { time.Sleep(200 * time.Millisecond) cancel() <-done } time.Sleep(200 * time.Millisecond) return cancelAndWaitForDone } func toMessages(t *testing.T, s string) []*message { messages := make([]*message, 0) scanner := bufio.NewScanner(strings.NewReader(s)) for scanner.Scan() { messages = append(messages, toMessage(t, scanner.Text())) } return messages } func toMessage(t *testing.T, s string) *message { var m message require.Nil(t, json.NewDecoder(strings.NewReader(s)).Decode(&m)) return &m } func toHTTPError(t *testing.T, s string) *errHTTP { var e errHTTP require.Nil(t, json.NewDecoder(strings.NewReader(s)).Decode(&e)) return &e } func readAll(t *testing.T, rc io.ReadCloser) string { b, err := io.ReadAll(rc) if err != nil { t.Fatal(err) } return string(b) } func waitFor(t *testing.T, f func() bool) { waitForWithMaxWait(t, 5*time.Second, f) } func waitForWithMaxWait(t *testing.T, maxWait time.Duration, f func() bool) { start := time.Now() for time.Since(start) < maxWait { if f() { return } time.Sleep(50 * time.Millisecond) } t.Fatalf("Function f did not succeed after %v: %v", maxWait, string(debug.Stack())) } ntfy-2.11.0/server/server_twilio.go000066400000000000000000000137401462047176100173220ustar00rootroot00000000000000package server import ( "bytes" "encoding/xml" "fmt" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" "io" "net/http" "net/url" "strings" ) const ( twilioCallFormat = ` You have a message from notify on topic %s. Message: %s End of message. This message was sent by user %s. It will be repeated three times. To unsubscribe from calls like this, remove your phone number in the notify web app. Goodbye. ` ) // convertPhoneNumber checks if the given phone number is verified for the given user, and if so, returns the verified // phone number. It also converts a boolean string ("yes", "1", "true") to the first verified phone number. // If the user is anonymous, it will return an error. func (s *Server) convertPhoneNumber(u *user.User, phoneNumber string) (string, *errHTTP) { if u == nil { return "", errHTTPBadRequestAnonymousCallsNotAllowed } phoneNumbers, err := s.userManager.PhoneNumbers(u.ID) if err != nil { return "", errHTTPInternalError } else if len(phoneNumbers) == 0 { return "", errHTTPBadRequestPhoneNumberNotVerified } if toBool(phoneNumber) { return phoneNumbers[0], nil } else if util.Contains(phoneNumbers, phoneNumber) { return phoneNumber, nil } for _, p := range phoneNumbers { if p == phoneNumber { return phoneNumber, nil } } return "", errHTTPBadRequestPhoneNumberNotVerified } // callPhone calls the Twilio API to make a phone call to the given phone number, using the given message. // Failures will be logged, but not returned to the caller. func (s *Server) callPhone(v *visitor, r *http.Request, m *message, to string) { u, sender := v.User(), m.Sender.String() if u != nil { sender = u.Name } body := fmt.Sprintf(twilioCallFormat, xmlEscapeText(m.Topic), xmlEscapeText(m.Message), xmlEscapeText(sender)) data := url.Values{} data.Set("From", s.config.TwilioPhoneNumber) data.Set("To", to) data.Set("Twiml", body) ev := logvrm(v, r, m).Tag(tagTwilio).Field("twilio_to", to).FieldIf("twilio_body", body, log.TraceLevel).Debug("Sending Twilio request") response, err := s.callPhoneInternal(data) if err != nil { ev.Field("twilio_response", response).Err(err).Warn("Error sending Twilio request") minc(metricCallsMadeFailure) return } ev.FieldIf("twilio_response", response, log.TraceLevel).Debug("Received successful Twilio response") minc(metricCallsMadeSuccess) } func (s *Server) callPhoneInternal(data url.Values) (string, error) { requestURL := fmt.Sprintf("%s/2010-04-01/Accounts/%s/Calls.json", s.config.TwilioCallsBaseURL, s.config.TwilioAccount) req, err := http.NewRequest(http.MethodPost, requestURL, strings.NewReader(data.Encode())) if err != nil { return "", err } req.Header.Set("User-Agent", "ntfy/"+s.config.Version) req.Header.Add("Content-Type", "application/x-www-form-urlencoded") req.Header.Set("Authorization", util.BasicAuth(s.config.TwilioAccount, s.config.TwilioAuthToken)) resp, err := http.DefaultClient.Do(req) if err != nil { return "", err } response, err := io.ReadAll(resp.Body) if err != nil { return "", err } return string(response), nil } func (s *Server) verifyPhoneNumber(v *visitor, r *http.Request, phoneNumber, channel string) error { ev := logvr(v, r).Tag(tagTwilio).Field("twilio_to", phoneNumber).Field("twilio_channel", channel).Debug("Sending phone verification") data := url.Values{} data.Set("To", phoneNumber) data.Set("Channel", channel) requestURL := fmt.Sprintf("%s/v2/Services/%s/Verifications", s.config.TwilioVerifyBaseURL, s.config.TwilioVerifyService) req, err := http.NewRequest(http.MethodPost, requestURL, strings.NewReader(data.Encode())) if err != nil { return err } req.Header.Set("User-Agent", "ntfy/"+s.config.Version) req.Header.Add("Content-Type", "application/x-www-form-urlencoded") req.Header.Set("Authorization", util.BasicAuth(s.config.TwilioAccount, s.config.TwilioAuthToken)) resp, err := http.DefaultClient.Do(req) if err != nil { return err } response, err := io.ReadAll(resp.Body) if err != nil { ev.Err(err).Warn("Error sending Twilio phone verification request") return err } ev.FieldIf("twilio_response", string(response), log.TraceLevel).Debug("Received Twilio phone verification response") return nil } func (s *Server) verifyPhoneNumberCheck(v *visitor, r *http.Request, phoneNumber, code string) error { ev := logvr(v, r).Tag(tagTwilio).Field("twilio_to", phoneNumber).Debug("Checking phone verification") data := url.Values{} data.Set("To", phoneNumber) data.Set("Code", code) requestURL := fmt.Sprintf("%s/v2/Services/%s/VerificationCheck", s.config.TwilioVerifyBaseURL, s.config.TwilioVerifyService) req, err := http.NewRequest(http.MethodPost, requestURL, strings.NewReader(data.Encode())) if err != nil { return err } req.Header.Set("User-Agent", "ntfy/"+s.config.Version) req.Header.Add("Content-Type", "application/x-www-form-urlencoded") req.Header.Set("Authorization", util.BasicAuth(s.config.TwilioAccount, s.config.TwilioAuthToken)) resp, err := http.DefaultClient.Do(req) if err != nil { return err } else if resp.StatusCode != http.StatusOK { if ev.IsTrace() { response, err := io.ReadAll(resp.Body) if err != nil { return err } ev.Field("twilio_response", string(response)) } ev.Warn("Twilio phone verification failed with status code %d", resp.StatusCode) if resp.StatusCode == http.StatusNotFound { return errHTTPGonePhoneVerificationExpired } return errHTTPInternalError } response, err := io.ReadAll(resp.Body) if err != nil { return err } if ev.IsTrace() { ev.Field("twilio_response", string(response)).Trace("Received successful Twilio phone verification response") } else if ev.IsDebug() { ev.Debug("Received successful Twilio phone verification response") } return nil } func xmlEscapeText(text string) string { var buf bytes.Buffer _ = xml.EscapeText(&buf, []byte(text)) return buf.String() } ntfy-2.11.0/server/server_twilio_test.go000066400000000000000000000246451462047176100203670ustar00rootroot00000000000000package server import ( "github.com/stretchr/testify/require" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" "io" "net/http" "net/http/httptest" "sync/atomic" "testing" ) func TestServer_Twilio_Call_Add_Verify_Call_Delete_Success(t *testing.T) { var called, verified atomic.Bool var code atomic.Pointer[string] twilioVerifyServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { body, err := io.ReadAll(r.Body) require.Nil(t, err) require.Equal(t, "Basic QUMxMjM0NTY3ODkwOkFBRUFBMTIzNDU2Nzg5MA==", r.Header.Get("Authorization")) if r.URL.Path == "/v2/Services/VA1234567890/Verifications" { if code.Load() != nil { t.Fatal("Should be only called once") } require.Equal(t, "Channel=sms&To=%2B12223334444", string(body)) code.Store(util.String("123456")) } else if r.URL.Path == "/v2/Services/VA1234567890/VerificationCheck" { if verified.Load() { t.Fatal("Should be only called once") } require.Equal(t, "Code=123456&To=%2B12223334444", string(body)) verified.Store(true) } else { t.Fatal("Unexpected path:", r.URL.Path) } })) defer twilioVerifyServer.Close() twilioCallsServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if called.Load() { t.Fatal("Should be only called once") } body, err := io.ReadAll(r.Body) require.Nil(t, err) require.Equal(t, "/2010-04-01/Accounts/AC1234567890/Calls.json", r.URL.Path) require.Equal(t, "Basic QUMxMjM0NTY3ODkwOkFBRUFBMTIzNDU2Nzg5MA==", r.Header.Get("Authorization")) require.Equal(t, "From=%2B1234567890&To=%2B12223334444&Twiml=%0A%3CResponse%3E%0A%09%3CPause+length%3D%221%22%2F%3E%0A%09%3CSay+loop%3D%223%22%3E%0A%09%09You+have+a+message+from+notify+on+topic+mytopic.+Message%3A%0A%09%09%3Cbreak+time%3D%221s%22%2F%3E%0A%09%09hi+there%0A%09%09%3Cbreak+time%3D%221s%22%2F%3E%0A%09%09End+of+message.%0A%09%09%3Cbreak+time%3D%221s%22%2F%3E%0A%09%09This+message+was+sent+by+user+phil.+It+will+be+repeated+three+times.%0A%09%09To+unsubscribe+from+calls+like+this%2C+remove+your+phone+number+in+the+notify+web+app.%0A%09%09%3Cbreak+time%3D%223s%22%2F%3E%0A%09%3C%2FSay%3E%0A%09%3CSay%3EGoodbye.%3C%2FSay%3E%0A%3C%2FResponse%3E", string(body)) called.Store(true) })) defer twilioCallsServer.Close() c := newTestConfigWithAuthFile(t) c.TwilioVerifyBaseURL = twilioVerifyServer.URL c.TwilioCallsBaseURL = twilioCallsServer.URL c.TwilioAccount = "AC1234567890" c.TwilioAuthToken = "AAEAA1234567890" c.TwilioPhoneNumber = "+1234567890" c.TwilioVerifyService = "VA1234567890" s := newTestServer(t, c) // Add tier and user require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "pro", MessageLimit: 10, CallLimit: 1, })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("phil", "pro")) u, err := s.userManager.User("phil") require.Nil(t, err) // Send verification code for phone number response := request(t, s, "PUT", "/v1/account/phone/verify", `{"number":"+12223334444","channel":"sms"}`, map[string]string{ "authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) waitFor(t, func() bool { return *code.Load() == "123456" }) // Add phone number with code response = request(t, s, "PUT", "/v1/account/phone", `{"number":"+12223334444","code":"123456"}`, map[string]string{ "authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) waitFor(t, func() bool { return verified.Load() }) phoneNumbers, err := s.userManager.PhoneNumbers(u.ID) require.Nil(t, err) require.Equal(t, 1, len(phoneNumbers)) require.Equal(t, "+12223334444", phoneNumbers[0]) // Do the thing response = request(t, s, "POST", "/mytopic", "hi there", map[string]string{ "authorization": util.BasicAuth("phil", "phil"), "x-call": "yes", }) require.Equal(t, "hi there", toMessage(t, response.Body.String()).Message) waitFor(t, func() bool { return called.Load() }) // Remove the phone number response = request(t, s, "DELETE", "/v1/account/phone", `{"number":"+12223334444"}`, map[string]string{ "authorization": util.BasicAuth("phil", "phil"), }) require.Equal(t, 200, response.Code) // Verify the phone number is gone from the DB phoneNumbers, err = s.userManager.PhoneNumbers(u.ID) require.Nil(t, err) require.Equal(t, 0, len(phoneNumbers)) } func TestServer_Twilio_Call_Success(t *testing.T) { var called atomic.Bool twilioServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if called.Load() { t.Fatal("Should be only called once") } body, err := io.ReadAll(r.Body) require.Nil(t, err) require.Equal(t, "/2010-04-01/Accounts/AC1234567890/Calls.json", r.URL.Path) require.Equal(t, "Basic QUMxMjM0NTY3ODkwOkFBRUFBMTIzNDU2Nzg5MA==", r.Header.Get("Authorization")) require.Equal(t, "From=%2B1234567890&To=%2B11122233344&Twiml=%0A%3CResponse%3E%0A%09%3CPause+length%3D%221%22%2F%3E%0A%09%3CSay+loop%3D%223%22%3E%0A%09%09You+have+a+message+from+notify+on+topic+mytopic.+Message%3A%0A%09%09%3Cbreak+time%3D%221s%22%2F%3E%0A%09%09hi+there%0A%09%09%3Cbreak+time%3D%221s%22%2F%3E%0A%09%09End+of+message.%0A%09%09%3Cbreak+time%3D%221s%22%2F%3E%0A%09%09This+message+was+sent+by+user+phil.+It+will+be+repeated+three+times.%0A%09%09To+unsubscribe+from+calls+like+this%2C+remove+your+phone+number+in+the+notify+web+app.%0A%09%09%3Cbreak+time%3D%223s%22%2F%3E%0A%09%3C%2FSay%3E%0A%09%3CSay%3EGoodbye.%3C%2FSay%3E%0A%3C%2FResponse%3E", string(body)) called.Store(true) })) defer twilioServer.Close() c := newTestConfigWithAuthFile(t) c.TwilioCallsBaseURL = twilioServer.URL c.TwilioAccount = "AC1234567890" c.TwilioAuthToken = "AAEAA1234567890" c.TwilioPhoneNumber = "+1234567890" s := newTestServer(t, c) // Add tier and user require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "pro", MessageLimit: 10, CallLimit: 1, })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("phil", "pro")) u, err := s.userManager.User("phil") require.Nil(t, err) require.Nil(t, s.userManager.AddPhoneNumber(u.ID, "+11122233344")) // Do the thing response := request(t, s, "POST", "/mytopic", "hi there", map[string]string{ "authorization": util.BasicAuth("phil", "phil"), "x-call": "+11122233344", }) require.Equal(t, "hi there", toMessage(t, response.Body.String()).Message) waitFor(t, func() bool { return called.Load() }) } func TestServer_Twilio_Call_Success_With_Yes(t *testing.T) { var called atomic.Bool twilioServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if called.Load() { t.Fatal("Should be only called once") } body, err := io.ReadAll(r.Body) require.Nil(t, err) require.Equal(t, "/2010-04-01/Accounts/AC1234567890/Calls.json", r.URL.Path) require.Equal(t, "Basic QUMxMjM0NTY3ODkwOkFBRUFBMTIzNDU2Nzg5MA==", r.Header.Get("Authorization")) require.Equal(t, "From=%2B1234567890&To=%2B11122233344&Twiml=%0A%3CResponse%3E%0A%09%3CPause+length%3D%221%22%2F%3E%0A%09%3CSay+loop%3D%223%22%3E%0A%09%09You+have+a+message+from+notify+on+topic+mytopic.+Message%3A%0A%09%09%3Cbreak+time%3D%221s%22%2F%3E%0A%09%09hi+there%0A%09%09%3Cbreak+time%3D%221s%22%2F%3E%0A%09%09End+of+message.%0A%09%09%3Cbreak+time%3D%221s%22%2F%3E%0A%09%09This+message+was+sent+by+user+phil.+It+will+be+repeated+three+times.%0A%09%09To+unsubscribe+from+calls+like+this%2C+remove+your+phone+number+in+the+notify+web+app.%0A%09%09%3Cbreak+time%3D%223s%22%2F%3E%0A%09%3C%2FSay%3E%0A%09%3CSay%3EGoodbye.%3C%2FSay%3E%0A%3C%2FResponse%3E", string(body)) called.Store(true) })) defer twilioServer.Close() c := newTestConfigWithAuthFile(t) c.TwilioCallsBaseURL = twilioServer.URL c.TwilioAccount = "AC1234567890" c.TwilioAuthToken = "AAEAA1234567890" c.TwilioPhoneNumber = "+1234567890" s := newTestServer(t, c) // Add tier and user require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "pro", MessageLimit: 10, CallLimit: 1, })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("phil", "pro")) u, err := s.userManager.User("phil") require.Nil(t, err) require.Nil(t, s.userManager.AddPhoneNumber(u.ID, "+11122233344")) // Do the thing response := request(t, s, "POST", "/mytopic", "hi there", map[string]string{ "authorization": util.BasicAuth("phil", "phil"), "x-call": "yes", // <<<------ }) require.Equal(t, "hi there", toMessage(t, response.Body.String()).Message) waitFor(t, func() bool { return called.Load() }) } func TestServer_Twilio_Call_UnverifiedNumber(t *testing.T) { c := newTestConfigWithAuthFile(t) c.TwilioCallsBaseURL = "http://dummy.invalid" c.TwilioAccount = "AC1234567890" c.TwilioAuthToken = "AAEAA1234567890" c.TwilioPhoneNumber = "+1234567890" s := newTestServer(t, c) // Add tier and user require.Nil(t, s.userManager.AddTier(&user.Tier{ Code: "pro", MessageLimit: 10, CallLimit: 1, })) require.Nil(t, s.userManager.AddUser("phil", "phil", user.RoleUser)) require.Nil(t, s.userManager.ChangeTier("phil", "pro")) // Do the thing response := request(t, s, "POST", "/mytopic", "test", map[string]string{ "authorization": util.BasicAuth("phil", "phil"), "x-call": "+11122233344", }) require.Equal(t, 40034, toHTTPError(t, response.Body.String()).Code) } func TestServer_Twilio_Call_InvalidNumber(t *testing.T) { c := newTestConfigWithAuthFile(t) c.TwilioCallsBaseURL = "https://127.0.0.1" c.TwilioAccount = "AC1234567890" c.TwilioAuthToken = "AAEAA1234567890" c.TwilioPhoneNumber = "+1234567890" s := newTestServer(t, c) response := request(t, s, "POST", "/mytopic", "test", map[string]string{ "x-call": "+invalid", }) require.Equal(t, 40033, toHTTPError(t, response.Body.String()).Code) } func TestServer_Twilio_Call_Anonymous(t *testing.T) { c := newTestConfigWithAuthFile(t) c.TwilioCallsBaseURL = "https://127.0.0.1" c.TwilioAccount = "AC1234567890" c.TwilioAuthToken = "AAEAA1234567890" c.TwilioPhoneNumber = "+1234567890" s := newTestServer(t, c) response := request(t, s, "POST", "/mytopic", "test", map[string]string{ "x-call": "+123123", }) require.Equal(t, 40035, toHTTPError(t, response.Body.String()).Code) } func TestServer_Twilio_Call_Unconfigured(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "POST", "/mytopic", "test", map[string]string{ "x-call": "+1234", }) require.Equal(t, 40032, toHTTPError(t, response.Body.String()).Code) } ntfy-2.11.0/server/server_webpush.go000066400000000000000000000135471462047176100174750ustar00rootroot00000000000000package server import ( "encoding/json" "fmt" "net/http" "regexp" "strings" "github.com/SherClockHolmes/webpush-go" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/user" ) const ( webPushTopicSubscribeLimit = 50 ) var ( webPushAllowedEndpointsPatterns = []string{ "https://*.google.com/", "https://*.googleapis.com/", "https://*.mozilla.com/", "https://*.mozaws.net/", "https://*.windows.com/", "https://*.microsoft.com/", "https://*.apple.com/", } webPushAllowedEndpointsRegex *regexp.Regexp ) func init() { for i, pattern := range webPushAllowedEndpointsPatterns { webPushAllowedEndpointsPatterns[i] = strings.ReplaceAll(strings.ReplaceAll(pattern, ".", "\\."), "*", ".+") } allPatterns := fmt.Sprintf("^(%s)", strings.Join(webPushAllowedEndpointsPatterns, "|")) webPushAllowedEndpointsRegex = regexp.MustCompile(allPatterns) } func (s *Server) handleWebPushUpdate(w http.ResponseWriter, r *http.Request, v *visitor) error { req, err := readJSONWithLimit[apiWebPushUpdateSubscriptionRequest](r.Body, jsonBodyBytesLimit, false) if err != nil || req.Endpoint == "" || req.P256dh == "" || req.Auth == "" { return errHTTPBadRequestWebPushSubscriptionInvalid } else if !webPushAllowedEndpointsRegex.MatchString(req.Endpoint) { return errHTTPBadRequestWebPushEndpointUnknown } else if len(req.Topics) > webPushTopicSubscribeLimit { return errHTTPBadRequestWebPushTopicCountTooHigh } topics, err := s.topicsFromIDs(req.Topics...) if err != nil { return err } if s.userManager != nil { u := v.User() for _, t := range topics { if err := s.userManager.Authorize(u, t.ID, user.PermissionRead); err != nil { logvr(v, r).With(t).Err(err).Debug("Access to topic %s not authorized", t.ID) return errHTTPForbidden.With(t) } } } if err := s.webPush.UpsertSubscription(req.Endpoint, req.Auth, req.P256dh, v.MaybeUserID(), v.IP(), req.Topics); err != nil { return err } return s.writeJSON(w, newSuccessResponse()) } func (s *Server) handleWebPushDelete(w http.ResponseWriter, r *http.Request, _ *visitor) error { req, err := readJSONWithLimit[apiWebPushUpdateSubscriptionRequest](r.Body, jsonBodyBytesLimit, false) if err != nil || req.Endpoint == "" { return errHTTPBadRequestWebPushSubscriptionInvalid } if err := s.webPush.RemoveSubscriptionsByEndpoint(req.Endpoint); err != nil { return err } return s.writeJSON(w, newSuccessResponse()) } func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { subscriptions, err := s.webPush.SubscriptionsForTopic(m.Topic) if err != nil { logvm(v, m).Err(err).With(v, m).Warn("Unable to publish web push messages") return } log.Tag(tagWebPush).With(v, m).Debug("Publishing web push message to %d subscribers", len(subscriptions)) payload, err := json.Marshal(newWebPushPayload(fmt.Sprintf("%s/%s", s.config.BaseURL, m.Topic), m)) if err != nil { log.Tag(tagWebPush).Err(err).With(v, m).Warn("Unable to marshal expiring payload") return } for _, subscription := range subscriptions { if err := s.sendWebPushNotification(subscription, payload, v, m); err != nil { log.Tag(tagWebPush).Err(err).With(v, m, subscription).Warn("Unable to publish web push message") } } } func (s *Server) pruneAndNotifyWebPushSubscriptions() { if s.config.WebPushPublicKey == "" { return } go func() { if err := s.pruneAndNotifyWebPushSubscriptionsInternal(); err != nil { log.Tag(tagWebPush).Err(err).Warn("Unable to prune or notify web push subscriptions") } }() } func (s *Server) pruneAndNotifyWebPushSubscriptionsInternal() error { // Expire old subscriptions if err := s.webPush.RemoveExpiredSubscriptions(s.config.WebPushExpiryDuration); err != nil { return err } // Notify subscriptions that will expire soon subscriptions, err := s.webPush.SubscriptionsExpiring(s.config.WebPushExpiryWarningDuration) if err != nil { return err } else if len(subscriptions) == 0 { return nil } payload, err := json.Marshal(newWebPushSubscriptionExpiringPayload()) if err != nil { return err } warningSent := make([]*webPushSubscription, 0) for _, subscription := range subscriptions { if err := s.sendWebPushNotification(subscription, payload); err != nil { log.Tag(tagWebPush).Err(err).With(subscription).Warn("Unable to publish expiry imminent warning") continue } warningSent = append(warningSent, subscription) } if err := s.webPush.MarkExpiryWarningSent(warningSent); err != nil { return err } log.Tag(tagWebPush).Debug("Expired old subscriptions and published %d expiry imminent warnings", len(subscriptions)) return nil } func (s *Server) sendWebPushNotification(sub *webPushSubscription, message []byte, contexters ...log.Contexter) error { log.Tag(tagWebPush).With(sub).With(contexters...).Debug("Sending web push message") payload := &webpush.Subscription{ Endpoint: sub.Endpoint, Keys: webpush.Keys{ Auth: sub.Auth, P256dh: sub.P256dh, }, } resp, err := webpush.SendNotification(message, payload, &webpush.Options{ Subscriber: s.config.WebPushEmailAddress, VAPIDPublicKey: s.config.WebPushPublicKey, VAPIDPrivateKey: s.config.WebPushPrivateKey, Urgency: webpush.UrgencyHigh, // iOS requires this to ensure delivery TTL: int(s.config.CacheDuration.Seconds()), }) if err != nil { log.Tag(tagWebPush).With(sub).With(contexters...).Err(err).Debug("Unable to publish web push message, removing endpoint") if err := s.webPush.RemoveSubscriptionsByEndpoint(sub.Endpoint); err != nil { return err } return err } if (resp.StatusCode < 200 || resp.StatusCode > 299) && resp.StatusCode != 429 { log.Tag(tagWebPush).With(sub).With(contexters...).Field("response_code", resp.StatusCode).Debug("Unable to publish web push message, unexpected response") if err := s.webPush.RemoveSubscriptionsByEndpoint(sub.Endpoint); err != nil { return err } return errHTTPInternalErrorWebPushUnableToPublish.With(sub).With(contexters...) } return nil } ntfy-2.11.0/server/server_webpush_test.go000066400000000000000000000210241462047176100205210ustar00rootroot00000000000000package server import ( "encoding/json" "fmt" "github.com/stretchr/testify/require" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" "io" "net/http" "net/http/httptest" "net/netip" "strings" "sync/atomic" "testing" "time" ) const ( testWebPushEndpoint = "https://updates.push.services.mozilla.com/wpush/v1/AAABBCCCDDEEEFFF" ) func TestServer_WebPush_Disabled(t *testing.T) { s := newTestServer(t, newTestConfig(t)) response := request(t, s, "POST", "/v1/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), nil) require.Equal(t, 404, response.Code) } func TestServer_WebPush_TopicAdd(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) response := request(t, s, "POST", "/v1/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) subs, err := s.webPush.SubscriptionsForTopic("test-topic") require.Nil(t, err) require.Len(t, subs, 1) require.Equal(t, subs[0].Endpoint, testWebPushEndpoint) require.Equal(t, subs[0].P256dh, "p256dh-key") require.Equal(t, subs[0].Auth, "auth-key") require.Equal(t, subs[0].UserID, "") } func TestServer_WebPush_TopicAdd_InvalidEndpoint(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) response := request(t, s, "POST", "/v1/webpush", payloadForTopics(t, []string{"test-topic"}, "https://ddos-target.example.com/webpush"), nil) require.Equal(t, 400, response.Code) require.Equal(t, `{"code":40039,"http":400,"error":"invalid request: web push endpoint unknown"}`+"\n", response.Body.String()) } func TestServer_WebPush_TopicAdd_TooManyTopics(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) topicList := make([]string, 51) for i := range topicList { topicList[i] = util.RandomString(5) } response := request(t, s, "POST", "/v1/webpush", payloadForTopics(t, topicList, testWebPushEndpoint), nil) require.Equal(t, 400, response.Code) require.Equal(t, `{"code":40040,"http":400,"error":"invalid request: too many web push topic subscriptions"}`+"\n", response.Body.String()) } func TestServer_WebPush_TopicUnsubscribe(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) addSubscription(t, s, testWebPushEndpoint, "test-topic") requireSubscriptionCount(t, s, "test-topic", 1) response := request(t, s, "POST", "/v1/webpush", payloadForTopics(t, []string{}, testWebPushEndpoint), nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) requireSubscriptionCount(t, s, "test-topic", 0) } func TestServer_WebPush_Delete(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) addSubscription(t, s, testWebPushEndpoint, "test-topic") requireSubscriptionCount(t, s, "test-topic", 1) response := request(t, s, "DELETE", "/v1/webpush", fmt.Sprintf(`{"endpoint":"%s"}`, testWebPushEndpoint), nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) requireSubscriptionCount(t, s, "test-topic", 0) } func TestServer_WebPush_TopicSubscribeProtected_Allowed(t *testing.T) { config := configureAuth(t, newTestConfigWithWebPush(t)) config.AuthDefault = user.PermissionDenyAll s := newTestServer(t, config) require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "test-topic", user.PermissionReadWrite)) response := request(t, s, "POST", "/v1/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) subs, err := s.webPush.SubscriptionsForTopic("test-topic") require.Nil(t, err) require.Len(t, subs, 1) require.True(t, strings.HasPrefix(subs[0].UserID, "u_")) } func TestServer_WebPush_TopicSubscribeProtected_Denied(t *testing.T) { config := configureAuth(t, newTestConfigWithWebPush(t)) config.AuthDefault = user.PermissionDenyAll s := newTestServer(t, config) response := request(t, s, "POST", "/v1/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), nil) require.Equal(t, 403, response.Code) requireSubscriptionCount(t, s, "test-topic", 0) } func TestServer_WebPush_DeleteAccountUnsubscribe(t *testing.T) { config := configureAuth(t, newTestConfigWithWebPush(t)) s := newTestServer(t, config) require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "test-topic", user.PermissionReadWrite)) response := request(t, s, "POST", "/v1/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) requireSubscriptionCount(t, s, "test-topic", 1) request(t, s, "DELETE", "/v1/account", `{"password":"ben"}`, map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) // should've been deleted with the account requireSubscriptionCount(t, s, "test-topic", 0) } func TestServer_WebPush_Publish(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) var received atomic.Bool pushService := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, err := io.ReadAll(r.Body) require.Nil(t, err) require.Equal(t, "/push-receive", r.URL.Path) require.Equal(t, "high", r.Header.Get("Urgency")) require.Equal(t, "", r.Header.Get("Topic")) received.Store(true) })) defer pushService.Close() addSubscription(t, s, pushService.URL+"/push-receive", "test-topic") request(t, s, "POST", "/test-topic", "web push test", nil) waitFor(t, func() bool { return received.Load() }) } func TestServer_WebPush_Publish_RemoveOnError(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) var received atomic.Bool pushService := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, err := io.ReadAll(r.Body) require.Nil(t, err) w.WriteHeader(http.StatusGone) received.Store(true) })) defer pushService.Close() addSubscription(t, s, pushService.URL+"/push-receive", "test-topic", "test-topic-abc") requireSubscriptionCount(t, s, "test-topic", 1) requireSubscriptionCount(t, s, "test-topic-abc", 1) request(t, s, "POST", "/test-topic", "web push test", nil) waitFor(t, func() bool { return received.Load() }) // Receiving the 410 should've caused the publisher to expire all subscriptions on the endpoint requireSubscriptionCount(t, s, "test-topic", 0) requireSubscriptionCount(t, s, "test-topic-abc", 0) } func TestServer_WebPush_Expiry(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) var received atomic.Bool pushService := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, err := io.ReadAll(r.Body) require.Nil(t, err) w.WriteHeader(200) w.Write([]byte(``)) received.Store(true) })) defer pushService.Close() addSubscription(t, s, pushService.URL+"/push-receive", "test-topic") requireSubscriptionCount(t, s, "test-topic", 1) _, err := s.webPush.db.Exec("UPDATE subscription SET updated_at = ?", time.Now().Add(-7*24*time.Hour).Unix()) require.Nil(t, err) s.pruneAndNotifyWebPushSubscriptions() requireSubscriptionCount(t, s, "test-topic", 1) waitFor(t, func() bool { return received.Load() }) _, err = s.webPush.db.Exec("UPDATE subscription SET updated_at = ?", time.Now().Add(-9*24*time.Hour).Unix()) require.Nil(t, err) s.pruneAndNotifyWebPushSubscriptions() waitFor(t, func() bool { subs, err := s.webPush.SubscriptionsForTopic("test-topic") require.Nil(t, err) return len(subs) == 0 }) } func payloadForTopics(t *testing.T, topics []string, endpoint string) string { topicsJSON, err := json.Marshal(topics) require.Nil(t, err) return fmt.Sprintf(`{ "topics": %s, "endpoint": "%s", "p256dh": "p256dh-key", "auth": "auth-key" }`, topicsJSON, endpoint) } func addSubscription(t *testing.T, s *Server, endpoint string, topics ...string) { require.Nil(t, s.webPush.UpsertSubscription(endpoint, "kSC3T8aN1JCQxxPdrFLrZg", "BMKKbxdUU_xLS7G1Wh5AN8PvWOjCzkCuKZYb8apcqYrDxjOF_2piggBnoJLQYx9IeSD70fNuwawI3e9Y8m3S3PE", "u_123", netip.MustParseAddr("1.2.3.4"), topics)) // Test auth and p256dh } func requireSubscriptionCount(t *testing.T, s *Server, topic string, expectedLength int) { subs, err := s.webPush.SubscriptionsForTopic(topic) require.Nil(t, err) require.Len(t, subs, expectedLength) } ntfy-2.11.0/server/smtp_sender.go000066400000000000000000000073661462047176100167570ustar00rootroot00000000000000package server import ( _ "embed" // required by go:embed "encoding/json" "fmt" "mime" "net" "net/smtp" "strings" "sync" "time" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/util" ) type mailer interface { Send(v *visitor, m *message, to string) error Counts() (total int64, success int64, failure int64) } type smtpSender struct { config *Config success int64 failure int64 mu sync.Mutex } func (s *smtpSender) Send(v *visitor, m *message, to string) error { return s.withCount(v, m, func() error { host, _, err := net.SplitHostPort(s.config.SMTPSenderAddr) if err != nil { return err } message, err := formatMail(s.config.BaseURL, v.ip.String(), s.config.SMTPSenderFrom, to, m) if err != nil { return err } var auth smtp.Auth if s.config.SMTPSenderUser != "" { auth = smtp.PlainAuth("", s.config.SMTPSenderUser, s.config.SMTPSenderPass, host) } ev := logvm(v, m). Tag(tagEmail). Fields(log.Context{ "email_via": s.config.SMTPSenderAddr, "email_user": s.config.SMTPSenderUser, "email_to": to, }) if ev.IsTrace() { ev.Field("email_body", message).Trace("Sending email") } else if ev.IsDebug() { ev.Debug("Sending email") } return smtp.SendMail(s.config.SMTPSenderAddr, auth, s.config.SMTPSenderFrom, []string{to}, []byte(message)) }) } func (s *smtpSender) Counts() (total int64, success int64, failure int64) { s.mu.Lock() defer s.mu.Unlock() return s.success + s.failure, s.success, s.failure } func (s *smtpSender) withCount(v *visitor, m *message, fn func() error) error { err := fn() s.mu.Lock() defer s.mu.Unlock() if err != nil { logvm(v, m).Err(err).Debug("Sending mail failed") s.failure++ } else { s.success++ } return err } func formatMail(baseURL, senderIP, from, to string, m *message) (string, error) { topicURL := baseURL + "/" + m.Topic subject := m.Title if subject == "" { subject = m.Message } subject = strings.ReplaceAll(strings.ReplaceAll(subject, "\r", ""), "\n", " ") message := m.Message trailer := "" if len(m.Tags) > 0 { emojis, tags, err := toEmojis(m.Tags) if err != nil { return "", err } if len(emojis) > 0 { subject = strings.Join(emojis, " ") + " " + subject } if len(tags) > 0 { trailer = "Tags: " + strings.Join(tags, ", ") } } if m.Priority != 0 && m.Priority != 3 { priority, err := util.PriorityString(m.Priority) if err != nil { return "", err } if trailer != "" { trailer += "\n" } trailer += fmt.Sprintf("Priority: %s", priority) } if trailer != "" { message += "\n\n" + trailer } subject = mime.BEncoding.Encode("utf-8", subject) body := `From: "{shortTopicURL}" <{from}> To: {to} Subject: {subject} Content-Type: text/plain; charset="utf-8" {message} -- This message was sent by {ip} at {time} via {topicURL}` body = strings.ReplaceAll(body, "{from}", from) body = strings.ReplaceAll(body, "{to}", to) body = strings.ReplaceAll(body, "{subject}", subject) body = strings.ReplaceAll(body, "{message}", message) body = strings.ReplaceAll(body, "{topicURL}", topicURL) body = strings.ReplaceAll(body, "{shortTopicURL}", util.ShortTopicURL(topicURL)) body = strings.ReplaceAll(body, "{time}", time.Unix(m.Time, 0).UTC().Format(time.RFC1123)) body = strings.ReplaceAll(body, "{ip}", senderIP) return body, nil } var ( //go:embed "mailer_emoji_map.json" emojisJSON string ) func toEmojis(tags []string) (emojisOut []string, tagsOut []string, err error) { var emojiMap map[string]string if err = json.Unmarshal([]byte(emojisJSON), &emojiMap); err != nil { return nil, nil, err } tagsOut = make([]string, 0) emojisOut = make([]string, 0) for _, t := range tags { if emoji, ok := emojiMap[t]; ok { emojisOut = append(emojisOut, emoji) } else { tagsOut = append(tagsOut, t) } } return } ntfy-2.11.0/server/smtp_sender_test.go000066400000000000000000000100371462047176100200030ustar00rootroot00000000000000package server import ( "github.com/stretchr/testify/require" "testing" ) func TestFormatMail_Basic(t *testing.T) { actual, _ := formatMail("https://ntfy.sh", "1.2.3.4", "ntfy@ntfy.sh", "phil@example.com", &message{ ID: "abc", Time: 1640382204, Event: "message", Topic: "alerts", Message: "A simple message", }) expected := `From: "ntfy.sh/alerts" To: phil@example.com Subject: A simple message Content-Type: text/plain; charset="utf-8" A simple message -- This message was sent by 1.2.3.4 at Fri, 24 Dec 2021 21:43:24 UTC via https://ntfy.sh/alerts` require.Equal(t, expected, actual) } func TestFormatMail_JustEmojis(t *testing.T) { actual, _ := formatMail("https://ntfy.sh", "1.2.3.4", "ntfy@ntfy.sh", "phil@example.com", &message{ ID: "abc", Time: 1640382204, Event: "message", Topic: "alerts", Message: "A simple message", Tags: []string{"grinning"}, }) expected := `From: "ntfy.sh/alerts" To: phil@example.com Subject: =?utf-8?b?8J+YgCBBIHNpbXBsZSBtZXNzYWdl?= Content-Type: text/plain; charset="utf-8" A simple message -- This message was sent by 1.2.3.4 at Fri, 24 Dec 2021 21:43:24 UTC via https://ntfy.sh/alerts` require.Equal(t, expected, actual) } func TestFormatMail_JustOtherTags(t *testing.T) { actual, _ := formatMail("https://ntfy.sh", "1.2.3.4", "ntfy@ntfy.sh", "phil@example.com", &message{ ID: "abc", Time: 1640382204, Event: "message", Topic: "alerts", Message: "A simple message", Tags: []string{"not-an-emoji"}, }) expected := `From: "ntfy.sh/alerts" To: phil@example.com Subject: A simple message Content-Type: text/plain; charset="utf-8" A simple message Tags: not-an-emoji -- This message was sent by 1.2.3.4 at Fri, 24 Dec 2021 21:43:24 UTC via https://ntfy.sh/alerts` require.Equal(t, expected, actual) } func TestFormatMail_JustPriority(t *testing.T) { actual, _ := formatMail("https://ntfy.sh", "1.2.3.4", "ntfy@ntfy.sh", "phil@example.com", &message{ ID: "abc", Time: 1640382204, Event: "message", Topic: "alerts", Message: "A simple message", Priority: 2, }) expected := `From: "ntfy.sh/alerts" To: phil@example.com Subject: A simple message Content-Type: text/plain; charset="utf-8" A simple message Priority: low -- This message was sent by 1.2.3.4 at Fri, 24 Dec 2021 21:43:24 UTC via https://ntfy.sh/alerts` require.Equal(t, expected, actual) } func TestFormatMail_UTF8Subject(t *testing.T) { actual, _ := formatMail("https://ntfy.sh", "1.2.3.4", "ntfy@ntfy.sh", "phil@example.com", &message{ ID: "abc", Time: 1640382204, Event: "message", Topic: "alerts", Message: "A simple message", Title: " :: A not so simple title öäüß ¡Hola, señor!", }) expected := `From: "ntfy.sh/alerts" To: phil@example.com Subject: =?utf-8?b?IDo6IEEgbm90IHNvIHNpbXBsZSB0aXRsZSDDtsOkw7zDnyDCoUhvbGEsIHNl?= =?utf-8?b?w7FvciE=?= Content-Type: text/plain; charset="utf-8" A simple message -- This message was sent by 1.2.3.4 at Fri, 24 Dec 2021 21:43:24 UTC via https://ntfy.sh/alerts` require.Equal(t, expected, actual) } func TestFormatMail_WithAllTheThings(t *testing.T) { actual, _ := formatMail("https://ntfy.sh", "1.2.3.4", "ntfy@ntfy.sh", "phil@example.com", &message{ ID: "abc", Time: 1640382204, Event: "message", Topic: "alerts", Priority: 5, Tags: []string{"warning", "skull", "tag123", "other"}, Title: "Oh no 🙈\nThis is a message across\nmultiple lines", Message: "A message that contains monkeys 🙉\nNo really, though. Monkeys!", }) expected := `From: "ntfy.sh/alerts" To: phil@example.com Subject: =?utf-8?b?4pqg77iPIPCfkoAgT2ggbm8g8J+ZiCBUaGlzIGlzIGEgbWVzc2FnZSBhY3Jv?= =?utf-8?b?c3MgbXVsdGlwbGUgbGluZXM=?= Content-Type: text/plain; charset="utf-8" A message that contains monkeys 🙉 No really, though. Monkeys! Tags: tag123, other Priority: max -- This message was sent by 1.2.3.4 at Fri, 24 Dec 2021 21:43:24 UTC via https://ntfy.sh/alerts` require.Equal(t, expected, actual) } ntfy-2.11.0/server/smtp_server.go000066400000000000000000000220041462047176100167670ustar00rootroot00000000000000package server import ( "bytes" "encoding/base64" "errors" "fmt" "github.com/emersion/go-smtp" "github.com/microcosm-cc/bluemonday" "io" "mime" "mime/multipart" "mime/quotedprintable" "net" "net/http" "net/http/httptest" "net/mail" "regexp" "strings" "sync" ) var ( errInvalidDomain = errors.New("invalid domain") errInvalidAddress = errors.New("invalid address") errInvalidTopic = errors.New("invalid topic") errTooManyRecipients = errors.New("too many recipients") errMultipartNestedTooDeep = errors.New("multipart message nested too deep") errUnsupportedContentType = errors.New("unsupported content type") ) var ( onlySpacesRegex = regexp.MustCompile(`(?m)^\s+$`) consecutiveNewLinesRegex = regexp.MustCompile(`\n{3,}`) ) const ( maxMultipartDepth = 2 ) // smtpBackend implements SMTP server methods. type smtpBackend struct { config *Config handler func(http.ResponseWriter, *http.Request) success int64 failure int64 mu sync.Mutex } var _ smtp.Backend = (*smtpBackend)(nil) var _ smtp.Session = (*smtpSession)(nil) func newMailBackend(conf *Config, handler func(http.ResponseWriter, *http.Request)) *smtpBackend { return &smtpBackend{ config: conf, handler: handler, } } func (b *smtpBackend) NewSession(conn *smtp.Conn) (smtp.Session, error) { logem(conn).Debug("Incoming mail") return &smtpSession{backend: b, conn: conn}, nil } func (b *smtpBackend) Counts() (total int64, success int64, failure int64) { b.mu.Lock() defer b.mu.Unlock() return b.success + b.failure, b.success, b.failure } // smtpSession is returned after EHLO. type smtpSession struct { backend *smtpBackend conn *smtp.Conn topic string token string mu sync.Mutex } func (s *smtpSession) AuthPlain(username, _ string) error { logem(s.conn).Field("smtp_username", username).Debug("AUTH PLAIN (with username %s)", username) return nil } func (s *smtpSession) Mail(from string, opts *smtp.MailOptions) error { logem(s.conn).Field("smtp_mail_from", from).Debug("MAIL FROM: %s", from) return nil } func (s *smtpSession) Rcpt(to string) error { logem(s.conn).Field("smtp_rcpt_to", to).Debug("RCPT TO: %s", to) return s.withFailCount(func() error { token := "" conf := s.backend.config addressList, err := mail.ParseAddressList(to) if err != nil { return err } else if len(addressList) != 1 { return errTooManyRecipients } to = addressList[0].Address if !strings.HasSuffix(to, "@"+conf.SMTPServerDomain) { return errInvalidDomain } // Remove @ntfy.sh from end of email to = strings.TrimSuffix(to, "@"+conf.SMTPServerDomain) if conf.SMTPServerAddrPrefix != "" { if !strings.HasPrefix(to, conf.SMTPServerAddrPrefix) { return errInvalidAddress } // remove ntfy- from beginning of email to = strings.TrimPrefix(to, conf.SMTPServerAddrPrefix) } // If email contains token, split topic and token if strings.Contains(to, "+") { parts := strings.Split(to, "+") to = parts[0] token = parts[1] } if !topicRegex.MatchString(to) { return errInvalidTopic } s.mu.Lock() s.topic = to s.token = token s.mu.Unlock() return nil }) } func (s *smtpSession) Data(r io.Reader) error { return s.withFailCount(func() error { conf := s.backend.config b, err := io.ReadAll(r) // Protected by MaxMessageBytes if err != nil { return err } ev := logem(s.conn) if ev.IsTrace() { ev.Field("smtp_data", string(b)).Trace("DATA") } else if ev.IsDebug() { ev.Field("smtp_data_len", len(b)).Debug("DATA") } msg, err := mail.ReadMessage(bytes.NewReader(b)) if err != nil { return err } body, err := readMailBody(msg.Body, msg.Header) if err != nil { return err } body = strings.TrimSpace(body) if len(body) > conf.MessageSizeLimit { body = body[:conf.MessageSizeLimit] } m := newDefaultMessage(s.topic, body) subject := strings.TrimSpace(msg.Header.Get("Subject")) if subject != "" { dec := mime.WordDecoder{} subject, err := dec.DecodeHeader(subject) if err != nil { return err } m.Title = subject } if m.Title != "" && m.Message == "" { m.Message = m.Title // Flip them, this makes more sense m.Title = "" } if err := s.publishMessage(m); err != nil { return err } s.backend.mu.Lock() s.backend.success++ s.backend.mu.Unlock() minc(metricEmailsReceivedSuccess) return nil }) } func (s *smtpSession) publishMessage(m *message) error { // Extract remote address (for rate limiting) remoteAddr, _, err := net.SplitHostPort(s.conn.Conn().RemoteAddr().String()) if err != nil { remoteAddr = s.conn.Conn().RemoteAddr().String() } // Call HTTP handler with fake HTTP request url := fmt.Sprintf("%s/%s", s.backend.config.BaseURL, m.Topic) req, err := http.NewRequest("POST", url, strings.NewReader(m.Message)) req.RequestURI = "/" + m.Topic // just for the logs req.RemoteAddr = remoteAddr // rate limiting!! req.Header.Set("X-Forwarded-For", remoteAddr) if err != nil { return err } if m.Title != "" { req.Header.Set("Title", m.Title) } if s.token != "" { req.Header.Add("Authorization", "Bearer "+s.token) } rr := httptest.NewRecorder() s.backend.handler(rr, req) if rr.Code != http.StatusOK { return errors.New("error: " + rr.Body.String()) } return nil } func (s *smtpSession) Reset() { s.mu.Lock() s.topic = "" s.mu.Unlock() } func (s *smtpSession) Logout() error { return nil } func (s *smtpSession) withFailCount(fn func() error) error { err := fn() s.backend.mu.Lock() defer s.backend.mu.Unlock() if err != nil { // Almost all of these errors are parse errors, and user input errors. // We do not want to spam the log with WARN messages. logem(s.conn).Err(err).Debug("Incoming mail error") s.backend.failure++ minc(metricEmailsReceivedFailure) } return err } func readMailBody(body io.Reader, header mail.Header) (string, error) { if header.Get("Content-Type") == "" { return readPlainTextMailBody(body, header.Get("Content-Transfer-Encoding")) } contentType, params, err := mime.ParseMediaType(header.Get("Content-Type")) if err != nil { return "", err } canonicalContentType := strings.ToLower(contentType) if canonicalContentType == "text/plain" || canonicalContentType == "text/html" { return readTextMailBody(body, canonicalContentType, header.Get("Content-Transfer-Encoding")) } else if strings.HasPrefix(canonicalContentType, "multipart/") { return readMultipartMailBody(body, params) } return "", errUnsupportedContentType } func readMultipartMailBody(body io.Reader, params map[string]string) (string, error) { parts := make(map[string]string) if err := readMultipartMailBodyParts(body, params, 0, parts); err != nil && err != io.EOF { return "", err } else if s, ok := parts["text/plain"]; ok { return s, nil } else if s, ok := parts["text/html"]; ok { return s, nil } return "", io.EOF } func readMultipartMailBodyParts(body io.Reader, params map[string]string, depth int, parts map[string]string) error { if depth >= maxMultipartDepth { return errMultipartNestedTooDeep } mr := multipart.NewReader(body, params["boundary"]) for { part, err := mr.NextPart() if err != nil { // may be io.EOF return err } partContentType, partParams, err := mime.ParseMediaType(part.Header.Get("Content-Type")) if err != nil { return err } canonicalPartContentType := strings.ToLower(partContentType) if canonicalPartContentType == "text/plain" || canonicalPartContentType == "text/html" { s, err := readTextMailBody(part, canonicalPartContentType, part.Header.Get("Content-Transfer-Encoding")) if err != nil { return err } parts[canonicalPartContentType] = s } else if strings.HasPrefix(strings.ToLower(partContentType), "multipart/") { if err := readMultipartMailBodyParts(part, partParams, depth+1, parts); err != nil { return err } } // Continue with next part } } func readTextMailBody(reader io.Reader, contentType, transferEncoding string) (string, error) { if contentType == "text/plain" { return readPlainTextMailBody(reader, transferEncoding) } else if contentType == "text/html" { return readHTMLMailBody(reader, transferEncoding) } return "", fmt.Errorf("unsupported content type: %s", contentType) } func readPlainTextMailBody(reader io.Reader, transferEncoding string) (string, error) { if strings.ToLower(transferEncoding) == "base64" { reader = base64.NewDecoder(base64.StdEncoding, reader) } else if strings.ToLower(transferEncoding) == "quoted-printable" { reader = quotedprintable.NewReader(reader) } body, err := io.ReadAll(reader) if err != nil { return "", err } return string(body), nil } func readHTMLMailBody(reader io.Reader, transferEncoding string) (string, error) { body, err := readPlainTextMailBody(reader, transferEncoding) if err != nil { return "", err } stripped := bluemonday. StrictPolicy(). AddSpaceWhenStrippingTag(true). Sanitize(body) return removeExtraEmptyLines(stripped), nil } func removeExtraEmptyLines(s string) string { s = onlySpacesRegex.ReplaceAllString(s, "") s = consecutiveNewLinesRegex.ReplaceAllString(s, "\n\n") return s } ntfy-2.11.0/server/smtp_server_test.go000066400000000000000000002051271462047176100200370ustar00rootroot00000000000000package server import ( "bufio" "github.com/emersion/go-smtp" "github.com/stretchr/testify/require" "io" "net" "net/http" "strings" "testing" "time" ) func TestSmtpBackend_Multipart(t *testing.T) { email := `EHLO example.com MAIL FROM: phil@example.com RCPT TO: ntfy-mytopic@ntfy.sh DATA MIME-Version: 1.0 Date: Tue, 28 Dec 2021 00:30:10 +0100 Message-ID: Subject: and one more From: Phil To: ntfy-mytopic@ntfy.sh Content-Type: multipart/alternative; boundary="000000000000f3320b05d42915c9" --000000000000f3320b05d42915c9 Content-Type: text/plain; charset="UTF-8" what's up --000000000000f3320b05d42915c9 Content-Type: text/html; charset="UTF-8"
      what's up

      --000000000000f3320b05d42915c9-- . ` s, c, _, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "and one more", r.Header.Get("Title")) require.Equal(t, "what's up", readAll(t, r.Body)) }) defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } func TestSmtpBackend_MultipartNoBody(t *testing.T) { email := `EHLO example.com MAIL FROM: phil@example.com RCPT TO: ntfy-emailtest@ntfy.sh DATA MIME-Version: 1.0 Date: Tue, 28 Dec 2021 01:33:34 +0100 Message-ID: Subject: This email has a subject but no body From: Phil To: ntfy-emailtest@ntfy.sh Content-Type: multipart/alternative; boundary="000000000000bcf4a405d429f8d4" --000000000000bcf4a405d429f8d4 Content-Type: text/plain; charset="UTF-8" --000000000000bcf4a405d429f8d4 Content-Type: text/html; charset="UTF-8"

      --000000000000bcf4a405d429f8d4-- . ` s, c, _, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/emailtest", r.URL.Path) require.Equal(t, "", r.Header.Get("Title")) // We flipped message and body require.Equal(t, "This email has a subject but no body", readAll(t, r.Body)) }) defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } func TestSmtpBackend_Plaintext(t *testing.T) { email := `EHLO example.com MAIL FROM: phil@example.com RCPT TO: mytopic@ntfy.sh DATA Date: Tue, 28 Dec 2021 00:30:10 +0100 Message-ID: Subject: and one more From: Phil To: mytopic@ntfy.sh Content-Type: text/plain; charset="UTF-8" what's up . ` s, c, conf, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "and one more", r.Header.Get("Title")) require.Equal(t, "what's up", readAll(t, r.Body)) }) conf.SMTPServerAddrPrefix = "" defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } func TestSmtpBackend_Plaintext_No_ContentType(t *testing.T) { email := `EHLO example.com MAIL FROM: phil@example.com RCPT TO: mytopic@ntfy.sh DATA Subject: Very short mail what's up . ` s, c, conf, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "Very short mail", r.Header.Get("Title")) require.Equal(t, "what's up", readAll(t, r.Body)) }) conf.SMTPServerAddrPrefix = "" defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } func TestSmtpBackend_Plaintext_EncodedSubject(t *testing.T) { email := `EHLO example.com MAIL FROM: phil@example.com RCPT TO: ntfy-mytopic@ntfy.sh DATA Date: Tue, 28 Dec 2021 00:30:10 +0100 Subject: =?UTF-8?B?VGhyZWUgc2FudGFzIPCfjoXwn46F8J+OhQ==?= From: Phil To: ntfy-mytopic@ntfy.sh Content-Type: text/plain; charset="UTF-8" what's up . ` s, c, _, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "Three santas 🎅🎅🎅", r.Header.Get("Title")) }) defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } func TestSmtpBackend_Plaintext_TooLongTruncate(t *testing.T) { email := `EHLO example.com MAIL FROM: phil@example.com RCPT TO: mytopic@ntfy.sh DATA Date: Tue, 28 Dec 2021 00:30:10 +0100 Message-ID: Subject: and one more From: Phil To: mytopic@ntfy.sh Content-Type: text/plain; charset="UTF-8" you know this is a string. it's a long string. it's supposed to be longer than the max message length which is 4096 bytes, it used to be 512 bytes, but I increased that for the UnifiedPush support the 512 bytes was a little short, some people said but it kinda makes sense when you look at what it looks like one a phone heck this wasn't even half of it so far. so i'm gonna fill the rest of this with AAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp and with BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB that should do it . ` s, c, conf, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { expected := `you know this is a string. it's a long string. it's supposed to be longer than the max message length which is 4096 bytes, it used to be 512 bytes, but I increased that for the UnifiedPush support the 512 bytes was a little short, some people said but it kinda makes sense when you look at what it looks like one a phone heck this wasn't even half of it so far. so i'm gonna fill the rest of this with AAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp and with BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBBBBBBB` require.Equal(t, 4096, len(expected)) // Sanity check require.Equal(t, expected, readAll(t, r.Body)) }) defer s.Close() defer c.Close() conf.SMTPServerAddrPrefix = "" writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } func TestSmtpBackend_Plaintext_QuotedPrintable(t *testing.T) { email := `EHLO example.com MAIL FROM: phil@example.com RCPT TO: mytopic@ntfy.sh DATA Date: Tue, 28 Dec 2021 00:30:10 +0100 Message-ID: Subject: and one more From: Phil To: mytopic@ntfy.sh Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable what's =C3=A0&=C3=A9"'(-=C3=A8_=C3=A7=C3=A0) =3D=3D=3D=3D=3D up . ` s, c, conf, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "and one more", r.Header.Get("Title")) require.Equal(t, `what's à&é"'(-è_çà) ===== up`, readAll(t, r.Body)) }) conf.SMTPServerAddrPrefix = "" defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } func TestSmtpBackend_Unsupported(t *testing.T) { email := `EHLO example.com MAIL FROM: phil@example.com RCPT TO: ntfy-mytopic@ntfy.sh DATA Date: Tue, 28 Dec 2021 00:30:10 +0100 Message-ID: Subject: and one more From: Phil To: mytopic@ntfy.sh Content-Type: text/SOMETHINGELSE what's up . ` s, c, _, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { t.Fatal("This should not be called") }) defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "554 5.0.0 Error: transaction failed, blame it on the weather: unsupported content type") } func TestSmtpBackend_InvalidAddress(t *testing.T) { email := `EHLO example.com MAIL FROM: phil@example.com RCPT TO: unsupported@ntfy.sh DATA Date: Tue, 28 Dec 2021 00:30:10 +0100 Subject: and one more From: Phil To: mytopic@ntfy.sh Content-Type: text/plain what's up . ` s, c, _, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { t.Fatal("This should not be called") }) defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "451 4.0.0 invalid address") } func TestSmtpBackend_Base64Body(t *testing.T) { email := `EHLO example.com MAIL FROM: test@mydomain.me RCPT TO: ntfy-mytopic@ntfy.sh DATA Content-Type: multipart/mixed; boundary="===============2138658284696597373==" MIME-Version: 1.0 Subject: TrueNAS truenas.local: TrueNAS Test Message hostname: truenas.local From: =?utf-8?q?Robbie?= To: test@mydomain.me Date: Thu, 16 Feb 2023 01:04:00 -0000 Message-ID: This is a multi-part message in MIME format. --===============2138658284696597373== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhIHRlc3QgbWVzc2FnZSBmcm9tIFRydWVOQVMgQ09SRS4= --===============2138658284696597373== Content-Type: text/html; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv L0VOIj4KClRoaXMgaXMgYSB0ZXN0IG1lc3NhZ2UgZnJvbSBUcnVlTkFTIENPUkUuCg== --===============2138658284696597373==-- . ` s, c, _, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "TrueNAS truenas.local: TrueNAS Test Message hostname: truenas.local", r.Header.Get("Title")) require.Equal(t, "This is a test message from TrueNAS CORE.", readAll(t, r.Body)) }) defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } func TestSmtpBackend_MultipartQuotedPrintable(t *testing.T) { email := `EHLO example.com MAIL FROM: phil@example.com RCPT TO: ntfy-mytopic@ntfy.sh DATA MIME-Version: 1.0 Date: Tue, 28 Dec 2021 00:30:10 +0100 Message-ID: Subject: and one more From: Phil To: ntfy-mytopic@ntfy.sh Content-Type: multipart/alternative; boundary="000000000000f3320b05d42915c9" --000000000000f3320b05d42915c9 Content-Type: text/html; charset="UTF-8" html, ignore me --000000000000f3320b05d42915c9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable what's =C3=A0&=C3=A9"'(-=C3=A8_=C3=A7=C3=A0) =3D=3D=3D=3D=3D up --000000000000f3320b05d42915c9-- . ` s, c, _, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "and one more", r.Header.Get("Title")) require.Equal(t, `what's à&é"'(-è_çà) ===== up`, readAll(t, r.Body)) }) defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } func TestSmtpBackend_NestedMultipartBase64(t *testing.T) { email := `EHLO example.com MAIL FROM: test@mydomain.me RCPT TO: ntfy-mytopic@ntfy.sh DATA Content-Type: multipart/mixed; boundary="===============2138658284696597373==" MIME-Version: 1.0 Subject: TrueNAS truenas.local: TrueNAS Test Message hostname: truenas.local From: =?utf-8?q?Robbie?= To: test@mydomain.me Date: Thu, 16 Feb 2023 01:04:00 -0000 Message-ID: This is a multi-part message in MIME format. --===============2138658284696597373== Content-Type: multipart/alternative; boundary="===============2233989480071754745==" MIME-Version: 1.0 --===============2233989480071754745== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhIHRlc3QgbWVzc2FnZSBmcm9tIFRydWVOQVMgQ09SRS4= --===============2233989480071754745== Content-Type: text/html; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv L0VOIj4KClRoaXMgaXMgYSB0ZXN0IG1lc3NhZ2UgZnJvbSBUcnVlTkFTIENPUkUuCg== --===============2233989480071754745==-- --===============2138658284696597373==-- . ` s, c, _, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "TrueNAS truenas.local: TrueNAS Test Message hostname: truenas.local", r.Header.Get("Title")) require.Equal(t, "This is a test message from TrueNAS CORE.", readAll(t, r.Body)) }) defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } func TestSmtpBackend_NestedMultipartTooDeep(t *testing.T) { email := `EHLO example.com MAIL FROM: test@mydomain.me RCPT TO: ntfy-mytopic@ntfy.sh DATA Content-Type: multipart/mixed; boundary="===============1==" MIME-Version: 1.0 Subject: TrueNAS truenas.local: TrueNAS Test Message hostname: truenas.local From: =?utf-8?q?Robbie?= To: test@mydomain.me Date: Thu, 16 Feb 2023 01:04:00 -0000 Message-ID: This is a multi-part message in MIME format. --===============1== Content-Type: multipart/alternative; boundary="===============2==" MIME-Version: 1.0 --===============2== Content-Type: multipart/alternative; boundary="===============3==" MIME-Version: 1.0 --===============3== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhIHRlc3QgbWVzc2FnZSBmcm9tIFRydWVOQVMgQ09SRS4= --===============3== Content-Type: text/html; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv L0VOIj4KClRoaXMgaXMgYSB0ZXN0IG1lc3NhZ2UgZnJvbSBUcnVlTkFTIENPUkUuCg== --===============3==-- --===============2==-- --===============1==-- . ` s, c, _, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { t.Fatal("This should not be called") }) defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "554 5.0.0 Error: transaction failed, blame it on the weather: multipart message nested too deep") } func TestSmtpBackend_HTMLEmail(t *testing.T) { email := `EHLO example.com MAIL FROM: test@mydomain.me RCPT TO: ntfy-mytopic@ntfy.sh DATA Message-Id: <51610934ss4.mmailer@fritz.box> From: To: , Date: Thu, 30 Mar 2023 02:56:53 +0000 Subject: A HTML email Mime-Version: 1.0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable <=21DOCTYPE html> Alerttitle
      headertext of table
      " Very important information about a change in your home automation setup Now the light is on

      If you don't want to receive this message anymore, stop the push services in your FRITZ=21Box=2E
      Here you can see the active push services: "System > Push Service"=2E
      This mail has ben sent by your FRITZ=21Box automatically=2E
      . ` s, c, _, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "A HTML email", r.Header.Get("Title")) expected := `headertext of table " Very important information about a change in your home automation setup Now the light is on If you don't want to receive this message anymore, stop the push services in your FRITZ!Box . Here you can see the active push services: "System > Push Service". This mail has ben sent by your FRITZ!Box automatically.` require.Equal(t, expected, readAll(t, r.Body)) }) defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } const spamEmail = ` EHLO example.com MAIL FROM: test@mydomain.me RCPT TO: ntfy-mytopic@ntfy.sh DATA Delivered-To: somebody@gmail.com Received: by 2002:a05:651c:1248:b0:2bf:c263:285 with SMTP id h8csp1096496ljh; Mon, 30 Oct 2023 06:23:08 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFsB3WqbwbeefbeefbeefbeefbeefiXRNDHnIy2xBeaYHZCM3EC8DfPv55qDtgq9djTeBCF X-Received: by 2002:a05:6808:147:b0:3af:66e5:5d3c with SMTP id h7-20020a056808014700b003af66e55d3cmr11662458oie.26.1698672188132; Mon, 30 Oct 2023 06:23:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698672188; cv=none; d=google.com; s=arc-20160816; b=XM96KvnTbr4h6bqrTPTuuDNXmFCr9Be/HvVhu+UsSQjP9RxPk0wDTPUPZ/HWIJs52y beeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef BUmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe-post:list-unsubscribe:mime-version:subject:to :reply-to:from:date:message-id:dkim-signature:dkim-signature; bh=BERwBIp6fBgrZePFKQjyNMmgPkcnq1Zy1jPO8M0T4Ok=; fh=+kTCcNpX22TOI/SVSLygnrDqWeUt4zW7QKiv0TOVSGs=; b=lyIBRuOxPOTY2s36OqP7M7awlBKd4t5PX9mJOEJB0eTnTZqML+cplrXUIg2ZTlAAi9 beeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef tgVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@spamspam.com header.s=2020294246 header.b=G8y6xmtK; dkim=pass header.i=@auth.ccsend.com header.s=1000073432 header.b=ht8IksVK; spf=pass (google.com: domain of aigxeklyirlg+dvwkrmsgua==_1133104752381_suqcukvbeeynm/owplvdba==@in.constantcontact.com designates 208.75.123.226 as permitted sender) smtp.mailfrom="AigXeKlyIRLG+DvWkRMsGUA==_1133104752381_sUQcUKVBEeynm/oWPlvDBA==@in.constantcontact.com"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=spamspam.com Return-Path: Received: from ccm30.constantcontact.com (ccm30.constantcontact.com. [208.75.123.226]) by mx.google.com with ESMTPS id h2-20020a05620a21c200b0076eeed38118si5450962qka.131.2023.10.30.06.23.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 30 Oct 2023 06:23:08 -0700 (PDT) Received-SPF: pass (google.com: domain of aigxeklyirlg+dvwkrmsgua==_1133104752381_suqcukvbeeynm/owplvdba==@in.constantcontact.com designates 208.75.123.226 as permitted sender) client-ip=208.75.123.226; Authentication-Results: mx.google.com; dkim=pass header.i=@spamspam.com header.s=2020294246 header.b=G8y6xmtK; dkim=pass header.i=@auth.ccsend.com header.s=1000073432 header.b=ht8IksVK; spf=pass (google.com: domain of aigxeklyirlg+dvwkrmsgua==_1133104752381_suqcukvbeeynm/owplvdba==@in.constantcontact.com designates 208.75.123.226 as permitted sender) smtp.mailfrom="AigXeKlyIRLG+DvWkRMsGUA==_1133104752381_sUQcUKVBEeynm/oWPlvDBA==@in.constantcontact.com"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=spamspam.com Return-Path: Received: from [10.252.0.3] ([10.252.0.3:53254] helo=p2-jbemailsyndicator12.ctct.net) by 10.249.225.20 (envelope-from ) (ecelerity 4.3.1.999 r(:)) with ESMTP id A4/82-60517-B3EAF356; Mon, 30 Oct 2023 09:23:07 -0400 DKIM-Signature: v=1; q=dns/txt; a=rsa-sha256; c=relaxed/relaxed; s=2020294246; d=spamspam.com; h=date:mime-version:subject:X-Feedback-ID:X-250ok-CID:message-id:from:reply-to:list-unsubscribe:list-unsubscribe-post:to; bh=BERwBIp6fBgrZePFKQjyNMmgPkcnq1Zy1jPO8M0T4Ok=; b=G8y6xmtKv8asfEXA9o8dP+6foQjclo6j5sFREYVIJBbj5YJ5tqoiv5B04/qoRkoTBFDhmjt+BUua7AqDgPSnwbP2iPSA4fTJehnHhut1PyVUp/9vqSYlhxQehfdhma8tPg8ArKfYIKmfKJwKRaQBU0JHCaB1m+5LNQQX3UjkxAg= DKIM-Signature: v=1; q=dns/txt; a=rsa-sha256; c=relaxed/relaxed; s=1000073432; d=auth.ccsend.com; h=date:mime-version:subject:X-Feedback-ID:X-250ok-CID:message-id:from:reply-to:list-unsubscribe:list-unsubscribe-post:to; bh=BERwBIp6fBgrZePFKQjyNMmgPkcnq1Zy1jPO8M0T4Ok=; b=ht8IksVKYY/Kb3dUERWoeW4eVdYjKL6F4PEoIZOhfFXor6XAIbPnd3A/CPmbmoqFZjnKh5OdcUy1N5qEoj8w1Q3TmN8/ySQkqrlrmSDSZIHZMY7Qp9/TJrqUe4RMFOO1KKIN6Y0vGP1+dWe98msMAHwvi2qMjG9aEKLfFr2JUTQ= Message-ID: <1140728754828.1133104752381.1941549819.0.260913JL.2002@synd.ccsend.com> Date: Mon, 30 Oct 2023 09:23:07 -0400 (EDT) From: spamspam Loan Servicing Reply-To: marklake@spamspam.com To: somebody@gmail.com Subject: Buying a home? You deserve the confidence of Pre-Approval MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_75055660_144854819.1698672187348" List-Unsubscribe: List-Unsubscribe-Post: List-Unsubscribe=One-Click X-Campaign-Activity-ID: 8a05de2a-5c88-44b1-be0e-f5a444cb0650 X-250ok-CID: 8a05de2a-5c88-44b1-be0e-f5a444cb0650 X-Channel-ID: b1441c50-a541-11ec-a79b-fa163e5bc304 X-Return-Path-Hint: AbeefbeefbeefbeefbeefUA==_1133104752381_sUQcUKVBEeynm/oWPlvDBA==@in.constantcontact.com X-Roving-Campaignid: 1140728754811 X-Roving-Id: 1133104752381.1111111111 X-Feedback-ID: b1441c50-a541-11ec-beef-beefbeefbeefbeef5de2a-5c88-44b1-be0e-f5a444cb0650:1133104752381:CTCT X-CTCT-ID: b13a9586-a541-11ec-beef-beefbeefbeef ------=_Part_75055660_144854819.1698672187348 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable When you're buying a home, Pre-Approval gives you confidence you're in the = right price range and shows sellers you mean business. xxxxxxxxx SELLING or= BUYING? Call: 844-590-2275 Get Your Homebuying PRE-APPROVAL IN 24-HOURS* G= et Pre-Approved When you're buying a home, Pre-Approval gives you confidenc= e you're in the right price range and shows sellers you mean business. xxx= xxxxxxGet Pre-Approved today! Click or Call to Get Pre-Approved 844-590-227= 5 Get Pre-Approved nmlsconsumeraccess.org/ *The 24 hour timeframe is for mo= st approvals, however if additional information is needed or a request is o= n a holiday, the time for preapproval may be greater than 24 hours. This em= ail is for informational purposes only and is not an offer, loan approval o= r loan commitment. Mortgage rates are subject to change without notice. Som= e terms and restrictions may apply to certain loan programs. Refinancing ex= isting loans may result in total finance charges being higher over the life= of the loan, reduction in payments may partially reflect a longer loan ter= m. This information is provided as guidance and illustrative purposes only = and does not constitute legal or financial advice. We are not liable or bou= nd legally for any answers provided to any user for our process or position= on an issue. This information may change from time to time and at any time= without notification. The most current information will be updated periodi= cally and posted in the online forum. spamspam Loan Servicing, LLC. NMLS#39= 1521. nmlsconsumeraccess.org. You are receiving this information as a curre= nt loan customer with spamspam Loan Servicing, LLC. Not licensed for lendin= g activities in any of the U.S. territories. Not authorized to originate lo= ans in the State of New York. Licensed by the Dept. of Financial Protection= and Innovation under the California Residential Mortgage .Lending Act #413= 1216. This email was sent to somebody@gmail.com Version 103023PCHPrAp= 9 xxxxxxxxx spamspam Loan Servicing | 4425 Ponce de Leon Blvd 5-251, Coral = Gables, FL 33146-1837 Unsubscribe somebody@gmail.com Update Profile |= Our Privacy Policy | Constant Contact Data Notice Sent by marklake@spamspa= m.com ------=_Part_75055660_144854819.1698672187348 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
      When you're buying a home, Pre-Approval = gives you confidence you're in the right price range and shows sellers= you mean business.
      3D""
      =
      3D""
      =
      3D""

      SELLING or BUYING?

      Call: 844-590-2275

      Get Your Homebuying

      PRE-APPROVAL IN 24-HOURS*

      = 3D"" =
      Get Pre-Approved
      =


      When you're buying= a home, Pre-Approval gives you confidence you're in the right price range = and shows sellers you mean business.

      Get Pre-Ap= proved today!


      Click or Call to Get Pre-Approved

      844-590-2275=

      Get Pre-Approved
      3D""
      <= tr>


      nmlsconsumeraccess.org/

      *The 24 hour timeframe is for= most approvals, however if additional information is needed or a request i= s on a holiday, the time for preapproval may be greater than 24 hours.

      This email is for informational purposes only and is not an offer,= loan approval or loan commitment. Mortgage rates are subject to change wit= hout notice. Some terms and restrictions may apply to certain loan programs= . Refinancing existing loans may result in total finance charges being high= er over the life of the loan, reduction in payments may partially reflect a= longer loan term. This information is provided as guidance and illustrativ= e purposes only and does not constitute legal or financial advice. We are n= ot liable or bound legally for any answers provided to any user for our pro= cess or position on an issue. This information may change from time to time= and at any time without notification. The most current information will be= updated periodically and posted in the online forum.

      spamspam Loan Servicing, LLC. NMLS#391521. nmlsconsumeraccess.org.= You are receiving this information as a current loan customer with spamspa= m Loan Servicing, LLC. Not licensed for lending activities in any of the U.= S. territories. Not authorized to originate loans in the State of New York.= Licensed by the Dept. of Financial Protection and Innovation under the Cal= ifornia Residential Mortgage .Lending Act #4131216.


      This email was sent to somebody@gmail.com

      Version 103023PCHPrAp9

      

      =
      3D""
      =
      =
      spamspam Loan Servicing | 4425 Ponce de= Leon Blvd 5-251, Coral Gables, FL 33146-1837
      Uns= ubscribe somebody@gmail.com
      Upd= ate Profile | Our Privacy Policy | Constant Contact Data Noti= ce
      Sent by marklake@spamspam.com
      =
      ------=_Part_75055660_144854819.1698672187348-- . ` func TestSmtpBackend_Spam_Text(t *testing.T) { email := spamEmail s, c, _, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "Buying a home? You deserve the confidence of Pre-Approval", r.Header.Get("Title")) actual := readAll(t, r.Body) expected := "When you're buying a home, Pre-Approval gives you confidence you're in the right price range and shows sellers you mean business. xxxxxxxxx SELLING or BUYING? Call: 844-590-2275 Get Your Homebuying PRE-APPROVAL IN 24-HOURS* Get Pre-Approved When you're buying a home, Pre-Approval gives you confidence you're in the right price range and shows sellers you mean business. xxxxxxxxxGet Pre-Approved today! Click or Call to Get Pre-Approved 844-590-2275 Get Pre-Approved nmlsconsumeraccess.org/ *The 24 hour timeframe is for most approvals, however if additional information is needed or a request is on a holiday, the time for preapproval may be greater than 24 hours. This email is for informational purposes only and is not an offer, loan approval or loan commitment. Mortgage rates are subject to change without notice. Some terms and restrictions may apply to certain loan programs. Refinancing existing loans may result in total finance charges being higher over the life of the loan, reduction in payments may partially reflect a longer loan term. This information is provided as guidance and illustrative purposes only and does not constitute legal or financial advice. We are not liable or bound legally for any answers provided to any user for our process or position on an issue. This information may change from time to time and at any time without notification. The most current information will be updated periodically and posted in the online forum. spamspam Loan Servicing, LLC. NMLS#391521. nmlsconsumeraccess.org. You are receiving this information as a current loan customer with spamspam Loan Servicing, LLC. Not licensed for lending activities in any of the U.S. territories. Not authorized to originate loans in the State of New York. Licensed by the Dept. of Financial Protection and Innovation under the California Residential Mortgage .Lending Act #4131216. This email was sent to somebody@gmail.com Version 103023PCHPrAp9 xxxxxxxxx spamspam Loan Servicing | 4425 Ponce de Leon Blvd 5-251, Coral Gables, FL 33146-1837 Unsubscribe somebody@gmail.com Update Profile | Our Privacy Policy | Constant Contact Data Notice Sent by marklake@spamspam.com" require.Equal(t, expected, actual) }) defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } func TestSmtpBackend_Spam_HTML(t *testing.T) { email := strings.ReplaceAll(spamEmail, "text/plain", "text/not-plain-anymore") // We artificially force HTML parsing here s, c, _, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "Buying a home? You deserve the confidence of Pre-Approval", r.Header.Get("Title")) actual := readAll(t, r.Body) expected := `When you're buying a home, Pre-Approval gives you confidence you're in the right price range and shows sellers you mean business. ` + "\u200a" + ` SELLING or BUYING? Call: 844-590-2275 Get Your Homebuying PRE-APPROVAL IN 24-HOURS * Get Pre-Approved When you're buying a home, Pre-Approval gives you confidence you're in the right price range and shows sellers you mean business. ` + "\ufeff" + `Get Pre-Approved today! Click or Call to Get Pre-Approved 844-590-2275 Get Pre-Approved nmlsconsumeraccess.org/ *The 24 hour timeframe is for most approvals, however if additional information is needed or a request is on a holiday, the time for preapproval may be greater than 24 hours. This email is for informational purposes only and is not an offer, loan approval or loan commitment. Mortgage rates are subject to change without notice. Some terms and restrictions may apply to certain loan programs Refinancing existing loans may result in total finance charges being higher over the life of the loan, reduction in payments may partially reflect a longer loan term. This information is provided as guidance and illustrative purposes only and does not constitute legal or financial advice. We are not liable or bound legally for any answers provided to any user for our process or position on an issue. This information may change from time to time and at any time without notification. The most current information will be updated periodically and posted in the online forum. spamspam Loan Servicing, LLC. NMLS#391521. nmlsconsumeraccess.org. You are receiving this information as a current loan customer with spamspam Loan Servicing, LLC. Not licensed for lending activities in any of the U.S. territories. Not authorized to originate loans in the State of New York. Licensed by the Dept. of Financial Protection and Innovation under the California Residential Mortgage .Lending Act #4131216. This email was sent to somebody@gmail.com Version 103023PCHPrAp9 ` + "\ufeff" + ` spamspam Loan Servicing | 4425 Ponce de Leon Blvd 5-251 , Coral Gables, FL 33146-1837 Unsubscribe somebody@gmail.com Update Profile | Our Privacy Policy | Constant Contact Data Notice Sent by marklake@spamspam.com` require.Equal(t, expected, actual) }) defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } func TestSmtpBackend_HTMLOnly_FromDiskStation(t *testing.T) { email := `EHLO example.com MAIL FROM: synology@mydomain.me RCPT TO: synology@mydomain.me DATA From: "=?UTF-8?B?Um9iYmll?=" To: Message-Id: <640e6f562895d.6c9584bcfa491ac9c546b480b32ffc1d@mydomain.me> MIME-Version: 1.0 Subject: =?UTF-8?B?W1N5bm9sb2d5IE5BU10gVGVzdCBNZXNzYWdlIGZyb20gTGl0dHNfTkFT?= Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit Congratulations! You have successfully set up the email notification on Synology_NAS.
      For further system configurations, please visit http://192.168.1.28:5000/, http://172.16.60.5:5000/.
      (If you cannot connect to the server, please contact the administrator.)

      From Synology_NAS


      . ` s, c, conf, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/synology", r.URL.Path) require.Equal(t, "[Synology NAS] Test Message from Litts_NAS", r.Header.Get("Title")) actual := readAll(t, r.Body) expected := `Congratulations! You have successfully set up the email notification on Synology_NAS. For further system configurations, please visit http://192.168.1.28:5000/, http://172.16.60.5:5000/. (If you cannot connect to the server, please contact the administrator.) From Synology_NAS` require.Equal(t, expected, actual) }) conf.SMTPServerDomain = "mydomain.me" conf.SMTPServerAddrPrefix = "" defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } func TestSmtpBackend_PlaintextWithToken(t *testing.T) { email := `EHLO example.com MAIL FROM: phil@example.com RCPT TO: ntfy-mytopic+tk_KLORUqSqvNRLpY11DfkHVbHu9NGG2@ntfy.sh DATA Subject: Very short mail what's up . ` s, c, _, scanner := newTestSMTPServer(t, func(w http.ResponseWriter, r *http.Request) { require.Equal(t, "/mytopic", r.URL.Path) require.Equal(t, "Very short mail", r.Header.Get("Title")) require.Equal(t, "Bearer tk_KLORUqSqvNRLpY11DfkHVbHu9NGG2", r.Header.Get("Authorization")) require.Equal(t, "what's up", readAll(t, r.Body)) }) defer s.Close() defer c.Close() writeAndReadUntilLine(t, email, c, scanner, "250 2.0.0 OK: queued") } type smtpHandlerFunc func(http.ResponseWriter, *http.Request) func newTestSMTPServer(t *testing.T, handler smtpHandlerFunc) (s *smtp.Server, c net.Conn, conf *Config, scanner *bufio.Scanner) { conf = newTestConfig(t) conf.SMTPServerListen = ":25" conf.SMTPServerDomain = "ntfy.sh" conf.SMTPServerAddrPrefix = "ntfy-" backend := newMailBackend(conf, handler) l, err := net.Listen("tcp", "127.0.0.1:0") if err != nil { t.Fatal(err) } s = smtp.NewServer(backend) s.Domain = conf.SMTPServerDomain s.AllowInsecureAuth = true go func() { require.Nil(t, s.Serve(l)) }() c, err = net.Dial("tcp", l.Addr().String()) if err != nil { t.Fatal(err) } scanner = bufio.NewScanner(c) return } func writeAndReadUntilLine(t *testing.T, email string, conn net.Conn, scanner *bufio.Scanner, expectedLine string) { _, err := io.WriteString(conn, email) require.Nil(t, err) readUntilLine(t, conn, scanner, expectedLine) } func readUntilLine(t *testing.T, conn net.Conn, scanner *bufio.Scanner, expectedLine string) { cancelChan := make(chan bool) go func() { select { case <-cancelChan: case <-time.After(3 * time.Second): conn.Close() t.Error("Failed waiting for expected output") } }() var output string for scanner.Scan() { text := scanner.Text() if strings.TrimSpace(text) == expectedLine { cancelChan <- true return } output += text + "\n" } t.Fatalf("Expected line '%s' not found in output:\n%s", expectedLine, output) } ntfy-2.11.0/server/topic.go000066400000000000000000000123501462047176100155370ustar00rootroot00000000000000package server import ( "math/rand" "sync" "time" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/util" ) const ( // topicExpungeAfter defines how long a topic is active before it is removed from memory. // This must be larger than matrixRejectPushKeyForUnifiedPushTopicWithoutRateVisitorAfter to give // time for more requests to come in, so that we can send a {"rejected":[""]} response back. topicExpungeAfter = 16 * time.Hour ) // topic represents a channel to which subscribers can subscribe, and publishers // can publish a message type topic struct { ID string subscribers map[int]*topicSubscriber rateVisitor *visitor lastAccess time.Time mu sync.RWMutex } type topicSubscriber struct { userID string // User ID associated with this subscription, may be empty subscriber subscriber cancel func() } // subscriber is a function that is called for every new message on a topic type subscriber func(v *visitor, msg *message) error // newTopic creates a new topic func newTopic(id string) *topic { return &topic{ ID: id, subscribers: make(map[int]*topicSubscriber), lastAccess: time.Now(), } } // Subscribe subscribes to this topic func (t *topic) Subscribe(s subscriber, userID string, cancel func()) (subscriberID int) { t.mu.Lock() defer t.mu.Unlock() for i := 0; i < 5; i++ { // Best effort retry subscriberID = rand.Int() _, exists := t.subscribers[subscriberID] if !exists { break } } t.subscribers[subscriberID] = &topicSubscriber{ userID: userID, // May be empty subscriber: s, cancel: cancel, } t.lastAccess = time.Now() return subscriberID } func (t *topic) Stale() bool { t.mu.Lock() defer t.mu.Unlock() if t.rateVisitor != nil && !t.rateVisitor.Stale() { return false } return len(t.subscribers) == 0 && time.Since(t.lastAccess) > topicExpungeAfter } func (t *topic) LastAccess() time.Time { t.mu.RLock() defer t.mu.RUnlock() return t.lastAccess } func (t *topic) SetRateVisitor(v *visitor) { t.mu.Lock() defer t.mu.Unlock() t.rateVisitor = v t.lastAccess = time.Now() } func (t *topic) RateVisitor() *visitor { t.mu.Lock() defer t.mu.Unlock() if t.rateVisitor != nil && t.rateVisitor.Stale() { t.rateVisitor = nil } return t.rateVisitor } // Unsubscribe removes the subscription from the list of subscribers func (t *topic) Unsubscribe(id int) { t.mu.Lock() defer t.mu.Unlock() delete(t.subscribers, id) } // Publish asynchronously publishes to all subscribers func (t *topic) Publish(v *visitor, m *message) error { go func() { // We want to lock the topic as short as possible, so we make a shallow copy of the // subscribers map here. Actually sending out the messages then doesn't have to lock. subscribers := t.subscribersCopy() if len(subscribers) > 0 { logvm(v, m).Tag(tagPublish).Debug("Forwarding to %d subscriber(s)", len(subscribers)) for _, s := range subscribers { // We call the subscriber functions in their own Go routines because they are blocking, and // we don't want individual slow subscribers to be able to block others. go func(s subscriber) { if err := s(v, m); err != nil { logvm(v, m).Tag(tagPublish).Err(err).Warn("Error forwarding to subscriber") } }(s.subscriber) } } else { logvm(v, m).Tag(tagPublish).Trace("No stream or WebSocket subscribers, not forwarding") } t.Keepalive() }() return nil } // Stats returns the number of subscribers and last access to this topic func (t *topic) Stats() (int, time.Time) { t.mu.RLock() defer t.mu.RUnlock() return len(t.subscribers), t.lastAccess } // Keepalive sets the last access time and ensures that Stale does not return true func (t *topic) Keepalive() { t.mu.Lock() defer t.mu.Unlock() t.lastAccess = time.Now() } // CancelSubscribersExceptUser calls the cancel function for all subscribers, forcing func (t *topic) CancelSubscribersExceptUser(exceptUserID string) { t.mu.Lock() defer t.mu.Unlock() for _, s := range t.subscribers { if s.userID != exceptUserID { t.cancelUserSubscriber(s) } } } // CancelSubscriberUser kills the subscriber with the given user ID func (t *topic) CancelSubscriberUser(userID string) { t.mu.RLock() defer t.mu.RUnlock() for _, s := range t.subscribers { if s.userID == userID { t.cancelUserSubscriber(s) return } } } func (t *topic) cancelUserSubscriber(s *topicSubscriber) { log. Tag(tagSubscribe). With(t). Fields(log.Context{ "user_id": s.userID, }). Debug("Canceling subscriber with user ID %s", s.userID) s.cancel() } func (t *topic) Context() log.Context { t.mu.RLock() defer t.mu.RUnlock() fields := map[string]any{ "topic": t.ID, "topic_subscribers": len(t.subscribers), "topic_last_access": util.FormatTime(t.lastAccess), } if t.rateVisitor != nil { for k, v := range t.rateVisitor.Context() { fields["topic_rate_"+k] = v } } return fields } // subscribersCopy returns a shallow copy of the subscribers map func (t *topic) subscribersCopy() map[int]*topicSubscriber { t.mu.Lock() defer t.mu.Unlock() subscribers := make(map[int]*topicSubscriber) for k, sub := range t.subscribers { subscribers[k] = &topicSubscriber{ userID: sub.userID, subscriber: sub.subscriber, cancel: sub.cancel, } } return subscribers } ntfy-2.11.0/server/topic_test.go000066400000000000000000000037411462047176100166020ustar00rootroot00000000000000package server import ( "math/rand" "sync/atomic" "testing" "time" "github.com/stretchr/testify/require" ) func TestTopic_CancelSubscribersExceptUser(t *testing.T) { t.Parallel() subFn := func(v *visitor, msg *message) error { return nil } canceled1 := atomic.Bool{} cancelFn1 := func() { canceled1.Store(true) } canceled2 := atomic.Bool{} cancelFn2 := func() { canceled2.Store(true) } to := newTopic("mytopic") to.Subscribe(subFn, "", cancelFn1) to.Subscribe(subFn, "u_phil", cancelFn2) to.CancelSubscribersExceptUser("u_phil") require.True(t, canceled1.Load()) require.False(t, canceled2.Load()) } func TestTopic_CancelSubscribersUser(t *testing.T) { t.Parallel() subFn := func(v *visitor, msg *message) error { return nil } canceled1 := atomic.Bool{} cancelFn1 := func() { canceled1.Store(true) } canceled2 := atomic.Bool{} cancelFn2 := func() { canceled2.Store(true) } to := newTopic("mytopic") to.Subscribe(subFn, "u_another", cancelFn1) to.Subscribe(subFn, "u_phil", cancelFn2) to.CancelSubscriberUser("u_phil") require.False(t, canceled1.Load()) require.True(t, canceled2.Load()) } func TestTopic_Keepalive(t *testing.T) { t.Parallel() to := newTopic("mytopic") to.lastAccess = time.Now().Add(-1 * time.Hour) to.Keepalive() require.True(t, to.LastAccess().Unix() >= time.Now().Unix()-2) require.True(t, to.LastAccess().Unix() <= time.Now().Unix()+2) } func TestTopic_Subscribe_DuplicateID(t *testing.T) { t.Parallel() to := newTopic("mytopic") //lint:ignore SA1019 Fix random seed to force same number generation rand.Seed(1) a := rand.Int() to.subscribers[a] = &topicSubscriber{ userID: "a", subscriber: nil, cancel: func() {}, } subFn := func(v *visitor, msg *message) error { return nil } //lint:ignore SA1019 Force rand.Int to generate the same id once more rand.Seed(1) id := to.Subscribe(subFn, "b", func() {}) res := to.subscribers[id] require.NotEqual(t, id, a) require.Equal(t, "b", res.userID, "b") } ntfy-2.11.0/server/types.go000066400000000000000000000403771462047176100155770ustar00rootroot00000000000000package server import ( "net/http" "net/netip" "time" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/user" "heckel.io/ntfy/v2/util" ) // List of possible events const ( openEvent = "open" keepaliveEvent = "keepalive" messageEvent = "message" pollRequestEvent = "poll_request" ) const ( messageIDLength = 12 ) // message represents a message published to a topic type message struct { ID string `json:"id"` // Random message ID Time int64 `json:"time"` // Unix time in seconds Expires int64 `json:"expires,omitempty"` // Unix time in seconds (not required for open/keepalive) Event string `json:"event"` // One of the above Topic string `json:"topic"` Title string `json:"title,omitempty"` Message string `json:"message,omitempty"` Priority int `json:"priority,omitempty"` Tags []string `json:"tags,omitempty"` Click string `json:"click,omitempty"` Icon string `json:"icon,omitempty"` Actions []*action `json:"actions,omitempty"` Attachment *attachment `json:"attachment,omitempty"` PollID string `json:"poll_id,omitempty"` ContentType string `json:"content_type,omitempty"` // text/plain by default (if empty), or text/markdown Encoding string `json:"encoding,omitempty"` // empty for raw UTF-8, or "base64" for encoded bytes Sender netip.Addr `json:"-"` // IP address of uploader, used for rate limiting User string `json:"-"` // UserID of the uploader, used to associated attachments } func (m *message) Context() log.Context { fields := map[string]any{ "topic": m.Topic, "message_id": m.ID, "message_time": m.Time, "message_event": m.Event, "message_body_size": len(m.Message), } if m.Sender.IsValid() { fields["message_sender"] = m.Sender.String() } if m.User != "" { fields["message_user"] = m.User } return fields } type attachment struct { Name string `json:"name"` Type string `json:"type,omitempty"` Size int64 `json:"size,omitempty"` Expires int64 `json:"expires,omitempty"` URL string `json:"url"` } type action struct { ID string `json:"id"` Action string `json:"action"` // "view", "broadcast", or "http" Label string `json:"label"` // action button label Clear bool `json:"clear"` // clear notification after successful execution URL string `json:"url,omitempty"` // used in "view" and "http" actions Method string `json:"method,omitempty"` // used in "http" action, default is POST (!) Headers map[string]string `json:"headers,omitempty"` // used in "http" action Body string `json:"body,omitempty"` // used in "http" action Intent string `json:"intent,omitempty"` // used in "broadcast" action Extras map[string]string `json:"extras,omitempty"` // used in "broadcast" action } func newAction() *action { return &action{ Headers: make(map[string]string), Extras: make(map[string]string), } } // publishMessage is used as input when publishing as JSON type publishMessage struct { Topic string `json:"topic"` Title string `json:"title"` Message string `json:"message"` Priority int `json:"priority"` Tags []string `json:"tags"` Click string `json:"click"` Icon string `json:"icon"` Actions []action `json:"actions"` Attach string `json:"attach"` Markdown bool `json:"markdown"` Filename string `json:"filename"` Email string `json:"email"` Call string `json:"call"` Delay string `json:"delay"` } // messageEncoder is a function that knows how to encode a message type messageEncoder func(msg *message) (string, error) // newMessage creates a new message with the current timestamp func newMessage(event, topic, msg string) *message { return &message{ ID: util.RandomString(messageIDLength), Time: time.Now().Unix(), Event: event, Topic: topic, Message: msg, } } // newOpenMessage is a convenience method to create an open message func newOpenMessage(topic string) *message { return newMessage(openEvent, topic, "") } // newKeepaliveMessage is a convenience method to create a keepalive message func newKeepaliveMessage(topic string) *message { return newMessage(keepaliveEvent, topic, "") } // newDefaultMessage is a convenience method to create a notification message func newDefaultMessage(topic, msg string) *message { return newMessage(messageEvent, topic, msg) } // newPollRequestMessage is a convenience method to create a poll request message func newPollRequestMessage(topic, pollID string) *message { m := newMessage(pollRequestEvent, topic, newMessageBody) m.PollID = pollID return m } func validMessageID(s string) bool { return util.ValidRandomString(s, messageIDLength) } type sinceMarker struct { time time.Time id string } func newSinceTime(timestamp int64) sinceMarker { return sinceMarker{time.Unix(timestamp, 0), ""} } func newSinceID(id string) sinceMarker { return sinceMarker{time.Unix(0, 0), id} } func (t sinceMarker) IsAll() bool { return t == sinceAllMessages } func (t sinceMarker) IsNone() bool { return t == sinceNoMessages } func (t sinceMarker) IsID() bool { return t.id != "" } func (t sinceMarker) Time() time.Time { return t.time } func (t sinceMarker) ID() string { return t.id } var ( sinceAllMessages = sinceMarker{time.Unix(0, 0), ""} sinceNoMessages = sinceMarker{time.Unix(1, 0), ""} ) type queryFilter struct { ID string Message string Title string Tags []string Priority []int } func parseQueryFilters(r *http.Request) (*queryFilter, error) { idFilter := readParam(r, "x-id", "id") messageFilter := readParam(r, "x-message", "message", "m") titleFilter := readParam(r, "x-title", "title", "t") tagsFilter := util.SplitNoEmpty(readParam(r, "x-tags", "tags", "tag", "ta"), ",") priorityFilter := make([]int, 0) for _, p := range util.SplitNoEmpty(readParam(r, "x-priority", "priority", "prio", "p"), ",") { priority, err := util.ParsePriority(p) if err != nil { return nil, errHTTPBadRequestPriorityInvalid } priorityFilter = append(priorityFilter, priority) } return &queryFilter{ ID: idFilter, Message: messageFilter, Title: titleFilter, Tags: tagsFilter, Priority: priorityFilter, }, nil } func (q *queryFilter) Pass(msg *message) bool { if msg.Event != messageEvent { return true // filters only apply to messages } else if q.ID != "" && msg.ID != q.ID { return false } else if q.Message != "" && msg.Message != q.Message { return false } else if q.Title != "" && msg.Title != q.Title { return false } messagePriority := msg.Priority if messagePriority == 0 { messagePriority = 3 // For query filters, default priority (3) is the same as "not set" (0) } if len(q.Priority) > 0 && !util.Contains(q.Priority, messagePriority) { return false } if len(q.Tags) > 0 && !util.ContainsAll(msg.Tags, q.Tags) { return false } return true } type apiHealthResponse struct { Healthy bool `json:"healthy"` } type apiStatsResponse struct { Messages int64 `json:"messages"` MessagesRate float64 `json:"messages_rate"` // Average number of messages per second } type apiUserAddRequest struct { Username string `json:"username"` Password string `json:"password"` Tier string `json:"tier"` // Do not add 'role' here. We don't want to add admins via the API. } type apiUserResponse struct { Username string `json:"username"` Role string `json:"role"` Tier string `json:"tier,omitempty"` Grants []*apiUserGrantResponse `json:"grants,omitempty"` } type apiUserGrantResponse struct { Topic string `json:"topic"` // This may be a pattern Permission string `json:"permission"` } type apiUserDeleteRequest struct { Username string `json:"username"` } type apiAccessAllowRequest struct { Username string `json:"username"` Topic string `json:"topic"` // This may be a pattern Permission string `json:"permission"` } type apiAccessResetRequest struct { Username string `json:"username"` Topic string `json:"topic"` } type apiAccountCreateRequest struct { Username string `json:"username"` Password string `json:"password"` } type apiAccountPasswordChangeRequest struct { Password string `json:"password"` NewPassword string `json:"new_password"` } type apiAccountDeleteRequest struct { Password string `json:"password"` } type apiAccountTokenIssueRequest struct { Label *string `json:"label"` Expires *int64 `json:"expires"` // Unix timestamp } type apiAccountTokenUpdateRequest struct { Token string `json:"token"` Label *string `json:"label"` Expires *int64 `json:"expires"` // Unix timestamp } type apiAccountTokenResponse struct { Token string `json:"token"` Label string `json:"label,omitempty"` LastAccess int64 `json:"last_access,omitempty"` LastOrigin string `json:"last_origin,omitempty"` Expires int64 `json:"expires,omitempty"` // Unix timestamp } type apiAccountPhoneNumberVerifyRequest struct { Number string `json:"number"` Channel string `json:"channel"` } type apiAccountPhoneNumberAddRequest struct { Number string `json:"number"` Code string `json:"code"` // Only set when adding a phone number } type apiAccountTier struct { Code string `json:"code"` Name string `json:"name"` } type apiAccountLimits struct { Basis string `json:"basis,omitempty"` // "ip" or "tier" Messages int64 `json:"messages"` MessagesExpiryDuration int64 `json:"messages_expiry_duration"` Emails int64 `json:"emails"` Calls int64 `json:"calls"` Reservations int64 `json:"reservations"` AttachmentTotalSize int64 `json:"attachment_total_size"` AttachmentFileSize int64 `json:"attachment_file_size"` AttachmentExpiryDuration int64 `json:"attachment_expiry_duration"` AttachmentBandwidth int64 `json:"attachment_bandwidth"` } type apiAccountStats struct { Messages int64 `json:"messages"` MessagesRemaining int64 `json:"messages_remaining"` Emails int64 `json:"emails"` EmailsRemaining int64 `json:"emails_remaining"` Calls int64 `json:"calls"` CallsRemaining int64 `json:"calls_remaining"` Reservations int64 `json:"reservations"` ReservationsRemaining int64 `json:"reservations_remaining"` AttachmentTotalSize int64 `json:"attachment_total_size"` AttachmentTotalSizeRemaining int64 `json:"attachment_total_size_remaining"` } type apiAccountReservation struct { Topic string `json:"topic"` Everyone string `json:"everyone"` } type apiAccountBilling struct { Customer bool `json:"customer"` Subscription bool `json:"subscription"` Status string `json:"status,omitempty"` Interval string `json:"interval,omitempty"` PaidUntil int64 `json:"paid_until,omitempty"` CancelAt int64 `json:"cancel_at,omitempty"` } type apiAccountResponse struct { Username string `json:"username"` Role string `json:"role,omitempty"` SyncTopic string `json:"sync_topic,omitempty"` Language string `json:"language,omitempty"` Notification *user.NotificationPrefs `json:"notification,omitempty"` Subscriptions []*user.Subscription `json:"subscriptions,omitempty"` Reservations []*apiAccountReservation `json:"reservations,omitempty"` Tokens []*apiAccountTokenResponse `json:"tokens,omitempty"` PhoneNumbers []string `json:"phone_numbers,omitempty"` Tier *apiAccountTier `json:"tier,omitempty"` Limits *apiAccountLimits `json:"limits,omitempty"` Stats *apiAccountStats `json:"stats,omitempty"` Billing *apiAccountBilling `json:"billing,omitempty"` } type apiAccountReservationRequest struct { Topic string `json:"topic"` Everyone string `json:"everyone"` } type apiConfigResponse struct { BaseURL string `json:"base_url"` AppRoot string `json:"app_root"` EnableLogin bool `json:"enable_login"` EnableSignup bool `json:"enable_signup"` EnablePayments bool `json:"enable_payments"` EnableCalls bool `json:"enable_calls"` EnableEmails bool `json:"enable_emails"` EnableReservations bool `json:"enable_reservations"` EnableWebPush bool `json:"enable_web_push"` BillingContact string `json:"billing_contact"` WebPushPublicKey string `json:"web_push_public_key"` DisallowedTopics []string `json:"disallowed_topics"` } type apiAccountBillingPrices struct { Month int64 `json:"month"` Year int64 `json:"year"` } type apiAccountBillingTier struct { Code string `json:"code,omitempty"` Name string `json:"name,omitempty"` Prices *apiAccountBillingPrices `json:"prices,omitempty"` Limits *apiAccountLimits `json:"limits"` } type apiAccountBillingSubscriptionCreateResponse struct { RedirectURL string `json:"redirect_url"` } type apiAccountBillingSubscriptionChangeRequest struct { Tier string `json:"tier"` Interval string `json:"interval"` } type apiAccountBillingPortalRedirectResponse struct { RedirectURL string `json:"redirect_url"` } type apiAccountSyncTopicResponse struct { Event string `json:"event"` } type apiSuccessResponse struct { Success bool `json:"success"` } func newSuccessResponse() *apiSuccessResponse { return &apiSuccessResponse{ Success: true, } } type apiStripeSubscriptionUpdatedEvent struct { ID string `json:"id"` Customer string `json:"customer"` Status string `json:"status"` CurrentPeriodEnd int64 `json:"current_period_end"` CancelAt int64 `json:"cancel_at"` Items *struct { Data []*struct { Price *struct { ID string `json:"id"` Recurring *struct { Interval string `json:"interval"` } `json:"recurring"` } `json:"price"` } `json:"data"` } `json:"items"` } type apiStripeSubscriptionDeletedEvent struct { ID string `json:"id"` Customer string `json:"customer"` } type apiWebPushUpdateSubscriptionRequest struct { Endpoint string `json:"endpoint"` Auth string `json:"auth"` P256dh string `json:"p256dh"` Topics []string `json:"topics"` } // List of possible Web Push events (see sw.js) const ( webPushMessageEvent = "message" webPushExpiringEvent = "subscription_expiring" ) type webPushPayload struct { Event string `json:"event"` SubscriptionID string `json:"subscription_id"` Message *message `json:"message"` } func newWebPushPayload(subscriptionID string, message *message) *webPushPayload { return &webPushPayload{ Event: webPushMessageEvent, SubscriptionID: subscriptionID, Message: message, } } type webPushControlMessagePayload struct { Event string `json:"event"` } func newWebPushSubscriptionExpiringPayload() *webPushControlMessagePayload { return &webPushControlMessagePayload{ Event: webPushExpiringEvent, } } type webPushSubscription struct { ID string Endpoint string Auth string P256dh string UserID string } func (w *webPushSubscription) Context() log.Context { return map[string]any{ "web_push_subscription_id": w.ID, "web_push_subscription_user_id": w.UserID, "web_push_subscription_endpoint": w.Endpoint, } } // https://developer.mozilla.org/en-US/docs/Web/Manifest type webManifestResponse struct { Name string `json:"name"` Description string `json:"description"` ShortName string `json:"short_name"` Scope string `json:"scope"` StartURL string `json:"start_url"` Display string `json:"display"` BackgroundColor string `json:"background_color"` ThemeColor string `json:"theme_color"` Icons []*webManifestIcon `json:"icons"` } type webManifestIcon struct { SRC string `json:"src"` Sizes string `json:"sizes"` Type string `json:"type"` } ntfy-2.11.0/server/util.go000066400000000000000000000115361462047176100154030ustar00rootroot00000000000000package server import ( "context" "errors" "fmt" "heckel.io/ntfy/v2/util" "io" "mime" "net/http" "net/netip" "regexp" "strings" ) var ( mimeDecoder mime.WordDecoder priorityHeaderIgnoreRegex = regexp.MustCompile(`^u=\d,\s*(i|\d)$|^u=\d$`) ) func readBoolParam(r *http.Request, defaultValue bool, names ...string) bool { value := strings.ToLower(readParam(r, names...)) if value == "" { return defaultValue } return toBool(value) } func isBoolValue(value string) bool { return value == "1" || value == "yes" || value == "true" || value == "0" || value == "no" || value == "false" } func toBool(value string) bool { return value == "1" || value == "yes" || value == "true" } func readCommaSeparatedParam(r *http.Request, names ...string) (params []string) { paramStr := readParam(r, names...) if paramStr != "" { params = make([]string, 0) for _, s := range util.SplitNoEmpty(paramStr, ",") { params = append(params, strings.TrimSpace(s)) } } return params } func readParam(r *http.Request, names ...string) string { value := readHeaderParam(r, names...) if value != "" { return value } return readQueryParam(r, names...) } func readHeaderParam(r *http.Request, names ...string) string { for _, name := range names { value := strings.TrimSpace(maybeDecodeHeader(name, r.Header.Get(name))) if value != "" { return value } } return "" } func readQueryParam(r *http.Request, names ...string) string { for _, name := range names { value := r.URL.Query().Get(strings.ToLower(name)) if value != "" { return strings.TrimSpace(value) } } return "" } func extractIPAddress(r *http.Request, behindProxy bool) netip.Addr { remoteAddr := r.RemoteAddr addrPort, err := netip.ParseAddrPort(remoteAddr) ip := addrPort.Addr() if err != nil { // This should not happen in real life; only in tests. So, using falling back to 0.0.0.0 if address unspecified ip, err = netip.ParseAddr(remoteAddr) if err != nil { ip = netip.IPv4Unspecified() if remoteAddr != "@" || !behindProxy { // RemoteAddr is @ when unix socket is used logr(r).Err(err).Warn("unable to parse IP (%s), new visitor with unspecified IP (0.0.0.0) created", remoteAddr) } } } if behindProxy && strings.TrimSpace(r.Header.Get("X-Forwarded-For")) != "" { // X-Forwarded-For can contain multiple addresses (see #328). If we are behind a proxy, // only the right-most address can be trusted (as this is the one added by our proxy server). // See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For for details. ips := util.SplitNoEmpty(r.Header.Get("X-Forwarded-For"), ",") realIP, err := netip.ParseAddr(strings.TrimSpace(util.LastString(ips, remoteAddr))) if err != nil { logr(r).Err(err).Error("invalid IP address %s received in X-Forwarded-For header", ip) // Fall back to regular remote address if X-Forwarded-For is damaged } else { ip = realIP } } return ip } func readJSONWithLimit[T any](r io.ReadCloser, limit int, allowEmpty bool) (*T, error) { obj, err := util.UnmarshalJSONWithLimit[T](r, limit, allowEmpty) if errors.Is(err, util.ErrUnmarshalJSON) { return nil, errHTTPBadRequestJSONInvalid } else if errors.Is(err, util.ErrTooLargeJSON) { return nil, errHTTPEntityTooLargeJSONBody } else if err != nil { return nil, err } return obj, nil } func withContext(r *http.Request, ctx map[contextKey]any) *http.Request { c := r.Context() for k, v := range ctx { c = context.WithValue(c, k, v) } return r.WithContext(c) } func fromContext[T any](r *http.Request, key contextKey) (T, error) { t, ok := r.Context().Value(key).(T) if !ok { return t, fmt.Errorf("cannot find key %v in request context", key) } return t, nil } // maybeDecodeHeader decodes the given header value if it is MIME encoded, e.g. "=?utf-8?q?Hello_World?=", // or returns the original header value if it is not MIME encoded. It also calls maybeIgnoreSpecialHeader // to ignore new HTTP "Priority" header. func maybeDecodeHeader(name, value string) string { decoded, err := mimeDecoder.DecodeHeader(value) if err != nil { return maybeIgnoreSpecialHeader(name, value) } return maybeIgnoreSpecialHeader(name, decoded) } // maybeIgnoreSpecialHeader ignores new HTTP "Priority" header (see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-priority) // // Cloudflare (and potentially other providers) add this to requests when forwarding to the backend (ntfy), // so we just ignore it. If the "Priority" header is set to "u=*, i" or "u=*" (by Cloudflare), the header will be ignored. // Returning an empty string will allow the rest of the logic to continue searching for another header (x-priority, prio, p), // or in the Query parameters. func maybeIgnoreSpecialHeader(name, value string) string { if strings.ToLower(name) == "priority" && priorityHeaderIgnoreRegex.MatchString(strings.TrimSpace(value)) { return "" } return value } ntfy-2.11.0/server/util_test.go000066400000000000000000000057041462047176100164420ustar00rootroot00000000000000package server import ( "bytes" "crypto/rand" "fmt" "github.com/stretchr/testify/require" "net/http" "strings" "testing" ) func TestReadBoolParam(t *testing.T) { r, _ := http.NewRequest("GET", "https://ntfy.sh/mytopic?up=1&firebase=no", nil) up := readBoolParam(r, false, "x-up", "up") firebase := readBoolParam(r, true, "x-firebase", "firebase") require.Equal(t, true, up) require.Equal(t, false, firebase) r, _ = http.NewRequest("GET", "https://ntfy.sh/mytopic", nil) r.Header.Set("X-Up", "yes") r.Header.Set("X-Firebase", "0") up = readBoolParam(r, false, "x-up", "up") firebase = readBoolParam(r, true, "x-firebase", "firebase") require.Equal(t, true, up) require.Equal(t, false, firebase) r, _ = http.NewRequest("GET", "https://ntfy.sh/mytopic", nil) up = readBoolParam(r, false, "x-up", "up") firebase = readBoolParam(r, true, "x-up", "up") require.Equal(t, false, up) require.Equal(t, true, firebase) } func TestRenderHTTPRequest_ValidShort(t *testing.T) { r, _ := http.NewRequest("POST", "http://ntfy.sh/mytopic?p=2", strings.NewReader("some message")) r.Header.Set("Title", "A title") expected := `POST /mytopic?p=2 HTTP/1.1 Title: A title some message` require.Equal(t, expected, renderHTTPRequest(r)) } func TestRenderHTTPRequest_ValidLong(t *testing.T) { body := strings.Repeat("a", 5000) r, _ := http.NewRequest("POST", "http://ntfy.sh/mytopic?p=2", strings.NewReader(body)) r.Header.Set("Accept", "*/*") expected := `POST /mytopic?p=2 HTTP/1.1 Accept: */* ` + strings.Repeat("a", 4096) + " ... (peeked 4096 bytes)" require.Equal(t, expected, renderHTTPRequest(r)) } func TestRenderHTTPRequest_InvalidShort(t *testing.T) { body := []byte{0xc3, 0x28} r, _ := http.NewRequest("GET", "http://ntfy.sh/mytopic/json?since=all", bytes.NewReader(body)) r.Header.Set("Accept", "*/*") expected := `GET /mytopic/json?since=all HTTP/1.1 Accept: */* (peeked bytes not UTF-8, 2 bytes, hex: c328)` require.Equal(t, expected, renderHTTPRequest(r)) } func TestRenderHTTPRequest_InvalidLong(t *testing.T) { body := make([]byte, 5000) rand.Read(body) r, _ := http.NewRequest("GET", "http://ntfy.sh/mytopic/json?since=all", bytes.NewReader(body)) r.Header.Set("Accept", "*/*") expected := `GET /mytopic/json?since=all HTTP/1.1 Accept: */* (peeked bytes not UTF-8, peek limit of 4096 bytes reached, hex: ` + fmt.Sprintf("%x", body[:4096]) + ` ...)` require.Equal(t, expected, renderHTTPRequest(r)) } func TestMaybeIgnoreSpecialHeader(t *testing.T) { require.Empty(t, maybeIgnoreSpecialHeader("priority", "u=1")) require.Empty(t, maybeIgnoreSpecialHeader("Priority", "u=1")) require.Empty(t, maybeIgnoreSpecialHeader("Priority", "u=1, i")) } func TestMaybeDecodeHeaders(t *testing.T) { r, _ := http.NewRequest("GET", "http://ntfy.sh/mytopic/json?since=all", nil) r.Header.Set("Priority", "u=1") // Cloudflare priority header r.Header.Set("X-Priority", "5") // ntfy priority header require.Equal(t, "5", readHeaderParam(r, "x-priority", "priority", "p")) } ntfy-2.11.0/server/visitor.go000066400000000000000000000434201462047176100161220ustar00rootroot00000000000000package server import ( "fmt" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/user" "net/netip" "sync" "time" "golang.org/x/time/rate" "heckel.io/ntfy/v2/util" ) const ( // oneDay is an approximation of a day as a time.Duration oneDay = 24 * time.Hour // visitorExpungeAfter defines how long a visitor is active before it is removed from memory. This number // has to be very high to prevent e-mail abuse, but it doesn't really affect the other limits anyway, since // they are replenished faster (typically). visitorExpungeAfter = oneDay // visitorDefaultReservationsLimit is the amount of topic names a user without a tier is allowed to reserve. // This number is zero, and changing it may have unintended consequences in the web app, or otherwise visitorDefaultReservationsLimit = int64(0) // visitorDefaultCallsLimit is the amount of calls a user without a tier is allowed to make. // This number is zero, because phone numbers have to be verified first. visitorDefaultCallsLimit = int64(0) ) // Constants used to convert a tier-user's MessageSizeLimit (see user.Tier) into adequate request limiter // values (token bucket). This is only used to increase the values in server.yml, never decrease them. // // Example: Assuming a user.Tier's MessageSizeLimit is 10,000: // - the allowed burst is 500 (= 10,000 * 5%), which is < 1000 (the max) // - the replenish rate is 2 * 10,000 / 24 hours const ( visitorMessageToRequestLimitBurstRate = 0.05 visitorMessageToRequestLimitBurstMax = 1000 visitorMessageToRequestLimitReplenishFactor = 2 ) // Constants used to convert a tier-user's EmailLimit (see user.Tier) into adequate email limiter // values (token bucket). Example: Assuming a user.Tier's EmailLimit is 200, the allowed burst is // 40 (= 200 * 20%), which is <150 (the max). const ( visitorEmailLimitBurstRate = 0.2 visitorEmailLimitBurstMax = 150 ) // visitor represents an API user, and its associated rate.Limiter used for rate limiting type visitor struct { config *Config messageCache *messageCache userManager *user.Manager // May be nil ip netip.Addr // Visitor IP address user *user.User // Only set if authenticated user, otherwise nil requestLimiter *rate.Limiter // Rate limiter for (almost) all requests (including messages) messagesLimiter *util.FixedLimiter // Rate limiter for messages emailsLimiter *util.RateLimiter // Rate limiter for emails callsLimiter *util.FixedLimiter // Rate limiter for calls subscriptionLimiter *util.FixedLimiter // Fixed limiter for active subscriptions (ongoing connections) bandwidthLimiter *util.RateLimiter // Limiter for attachment bandwidth downloads accountLimiter *rate.Limiter // Rate limiter for account creation, may be nil authLimiter *rate.Limiter // Limiter for incorrect login attempts, may be nil firebase time.Time // Next allowed Firebase message seen time.Time // Last seen time of this visitor (needed for removal of stale visitors) mu sync.RWMutex } type visitorInfo struct { Limits *visitorLimits Stats *visitorStats } type visitorLimits struct { Basis visitorLimitBasis RequestLimitBurst int RequestLimitReplenish rate.Limit MessageLimit int64 MessageExpiryDuration time.Duration EmailLimit int64 EmailLimitBurst int EmailLimitReplenish rate.Limit CallLimit int64 ReservationsLimit int64 AttachmentTotalSizeLimit int64 AttachmentFileSizeLimit int64 AttachmentExpiryDuration time.Duration AttachmentBandwidthLimit int64 } type visitorStats struct { Messages int64 MessagesRemaining int64 Emails int64 EmailsRemaining int64 Calls int64 CallsRemaining int64 Reservations int64 ReservationsRemaining int64 AttachmentTotalSize int64 AttachmentTotalSizeRemaining int64 } // visitorLimitBasis describes how the visitor limits were derived, either from a user's // IP address (default config), or from its tier type visitorLimitBasis string const ( visitorLimitBasisIP = visitorLimitBasis("ip") visitorLimitBasisTier = visitorLimitBasis("tier") ) func newVisitor(conf *Config, messageCache *messageCache, userManager *user.Manager, ip netip.Addr, user *user.User) *visitor { var messages, emails, calls int64 if user != nil { messages = user.Stats.Messages emails = user.Stats.Emails calls = user.Stats.Calls } v := &visitor{ config: conf, messageCache: messageCache, userManager: userManager, // May be nil ip: ip, user: user, firebase: time.Unix(0, 0), seen: time.Now(), subscriptionLimiter: util.NewFixedLimiter(int64(conf.VisitorSubscriptionLimit)), requestLimiter: nil, // Set in resetLimiters messagesLimiter: nil, // Set in resetLimiters, may be nil emailsLimiter: nil, // Set in resetLimiters callsLimiter: nil, // Set in resetLimiters, may be nil bandwidthLimiter: nil, // Set in resetLimiters accountLimiter: nil, // Set in resetLimiters, may be nil authLimiter: nil, // Set in resetLimiters, may be nil } v.resetLimitersNoLock(messages, emails, calls, false) return v } func (v *visitor) Context() log.Context { v.mu.RLock() defer v.mu.RUnlock() return v.contextNoLock() } func (v *visitor) contextNoLock() log.Context { info := v.infoLightNoLock() fields := log.Context{ "visitor_id": visitorID(v.ip, v.user), "visitor_ip": v.ip.String(), "visitor_seen": util.FormatTime(v.seen), "visitor_messages": info.Stats.Messages, "visitor_messages_limit": info.Limits.MessageLimit, "visitor_messages_remaining": info.Stats.MessagesRemaining, "visitor_request_limiter_limit": v.requestLimiter.Limit(), "visitor_request_limiter_tokens": v.requestLimiter.Tokens(), } if v.config.SMTPSenderFrom != "" { fields["visitor_emails"] = info.Stats.Emails fields["visitor_emails_limit"] = info.Limits.EmailLimit fields["visitor_emails_remaining"] = info.Stats.EmailsRemaining } if v.config.TwilioAccount != "" { fields["visitor_calls"] = info.Stats.Calls fields["visitor_calls_limit"] = info.Limits.CallLimit fields["visitor_calls_remaining"] = info.Stats.CallsRemaining } if v.authLimiter != nil { fields["visitor_auth_limiter_limit"] = v.authLimiter.Limit() fields["visitor_auth_limiter_tokens"] = v.authLimiter.Tokens() } if v.user != nil { fields["user_id"] = v.user.ID fields["user_name"] = v.user.Name if v.user.Tier != nil { for field, value := range v.user.Tier.Context() { fields[field] = value } } if v.user.Billing.StripeCustomerID != "" { fields["stripe_customer_id"] = v.user.Billing.StripeCustomerID } if v.user.Billing.StripeSubscriptionID != "" { fields["stripe_subscription_id"] = v.user.Billing.StripeSubscriptionID } } return fields } func visitorExtendedInfoContext(info *visitorInfo) log.Context { return log.Context{ "visitor_reservations": info.Stats.Reservations, "visitor_reservations_limit": info.Limits.ReservationsLimit, "visitor_reservations_remaining": info.Stats.ReservationsRemaining, "visitor_attachment_total_size": info.Stats.AttachmentTotalSize, "visitor_attachment_total_size_limit": info.Limits.AttachmentTotalSizeLimit, "visitor_attachment_total_size_remaining": info.Stats.AttachmentTotalSizeRemaining, } } func (v *visitor) RequestAllowed() bool { v.mu.RLock() // limiters could be replaced! defer v.mu.RUnlock() return v.requestLimiter.Allow() } func (v *visitor) FirebaseAllowed() bool { v.mu.RLock() defer v.mu.RUnlock() return !time.Now().Before(v.firebase) } func (v *visitor) FirebaseTemporarilyDeny() { v.mu.Lock() defer v.mu.Unlock() v.firebase = time.Now().Add(v.config.FirebaseQuotaExceededPenaltyDuration) } func (v *visitor) MessageAllowed() bool { v.mu.RLock() // limiters could be replaced! defer v.mu.RUnlock() return v.messagesLimiter.Allow() } func (v *visitor) EmailAllowed() bool { v.mu.RLock() // limiters could be replaced! defer v.mu.RUnlock() return v.emailsLimiter.Allow() } func (v *visitor) CallAllowed() bool { v.mu.RLock() // limiters could be replaced! defer v.mu.RUnlock() return v.callsLimiter.Allow() } func (v *visitor) SubscriptionAllowed() bool { v.mu.RLock() // limiters could be replaced! defer v.mu.RUnlock() return v.subscriptionLimiter.Allow() } // AuthAllowed returns true if an auth request can be attempted (> 1 token available) func (v *visitor) AuthAllowed() bool { v.mu.RLock() // limiters could be replaced! defer v.mu.RUnlock() if v.authLimiter == nil { return true } return v.authLimiter.Tokens() > 1 } // AuthFailed records an auth failure func (v *visitor) AuthFailed() { v.mu.RLock() // limiters could be replaced! defer v.mu.RUnlock() if v.authLimiter != nil { v.authLimiter.Allow() } } // AccountCreationAllowed returns true if a new account can be created func (v *visitor) AccountCreationAllowed() bool { v.mu.RLock() // limiters could be replaced! defer v.mu.RUnlock() if v.accountLimiter == nil || (v.accountLimiter != nil && v.accountLimiter.Tokens() < 1) { return false } return true } // AccountCreated decreases the account limiter. This is to be called after an account was created. func (v *visitor) AccountCreated() { v.mu.RLock() // limiters could be replaced! defer v.mu.RUnlock() if v.accountLimiter != nil { v.accountLimiter.Allow() } } func (v *visitor) BandwidthAllowed(bytes int64) bool { v.mu.RLock() // limiters could be replaced! defer v.mu.RUnlock() return v.bandwidthLimiter.AllowN(bytes) } func (v *visitor) RemoveSubscription() { v.mu.RLock() defer v.mu.RUnlock() v.subscriptionLimiter.AllowN(-1) } func (v *visitor) Keepalive() { v.mu.Lock() defer v.mu.Unlock() v.seen = time.Now() } func (v *visitor) BandwidthLimiter() util.Limiter { v.mu.RLock() // limiters could be replaced! defer v.mu.RUnlock() return v.bandwidthLimiter } func (v *visitor) Stale() bool { v.mu.RLock() defer v.mu.RUnlock() return time.Since(v.seen) > visitorExpungeAfter } func (v *visitor) Stats() *user.Stats { v.mu.RLock() // limiters could be replaced! defer v.mu.RUnlock() return &user.Stats{ Messages: v.messagesLimiter.Value(), Emails: v.emailsLimiter.Value(), Calls: v.callsLimiter.Value(), } } func (v *visitor) ResetStats() { v.mu.RLock() // limiters could be replaced! defer v.mu.RUnlock() v.emailsLimiter.Reset() v.messagesLimiter.Reset() v.callsLimiter.Reset() } // User returns the visitor user, or nil if there is none func (v *visitor) User() *user.User { v.mu.RLock() defer v.mu.RUnlock() return v.user // May be nil } // IP returns the visitor IP address func (v *visitor) IP() netip.Addr { v.mu.RLock() defer v.mu.RUnlock() return v.ip } // Authenticated returns true if a user successfully authenticated func (v *visitor) Authenticated() bool { v.mu.RLock() defer v.mu.RUnlock() return v.user != nil } // SetUser sets the visitors user to the given value func (v *visitor) SetUser(u *user.User) { v.mu.Lock() defer v.mu.Unlock() shouldResetLimiters := v.user.TierID() != u.TierID() // TierID works with nil receiver v.user = u // u may be nil! if shouldResetLimiters { var messages, emails, calls int64 if u != nil { messages, emails, calls = u.Stats.Messages, u.Stats.Emails, u.Stats.Calls } v.resetLimitersNoLock(messages, emails, calls, true) } } // MaybeUserID returns the user ID of the visitor (if any). If this is an anonymous visitor, // an empty string is returned. func (v *visitor) MaybeUserID() string { v.mu.RLock() defer v.mu.RUnlock() if v.user != nil { return v.user.ID } return "" } func (v *visitor) resetLimitersNoLock(messages, emails, calls int64, enqueueUpdate bool) { limits := v.limitsNoLock() v.requestLimiter = rate.NewLimiter(limits.RequestLimitReplenish, limits.RequestLimitBurst) v.messagesLimiter = util.NewFixedLimiterWithValue(limits.MessageLimit, messages) v.emailsLimiter = util.NewRateLimiterWithValue(limits.EmailLimitReplenish, limits.EmailLimitBurst, emails) v.callsLimiter = util.NewFixedLimiterWithValue(limits.CallLimit, calls) v.bandwidthLimiter = util.NewBytesLimiter(int(limits.AttachmentBandwidthLimit), oneDay) if v.user == nil { v.accountLimiter = rate.NewLimiter(rate.Every(v.config.VisitorAccountCreationLimitReplenish), v.config.VisitorAccountCreationLimitBurst) v.authLimiter = rate.NewLimiter(rate.Every(v.config.VisitorAuthFailureLimitReplenish), v.config.VisitorAuthFailureLimitBurst) } else { v.accountLimiter = nil // Users cannot create accounts when logged in v.authLimiter = nil // Users are already logged in, no need to limit requests } if enqueueUpdate && v.user != nil { go v.userManager.EnqueueUserStats(v.user.ID, &user.Stats{ Messages: messages, Emails: emails, Calls: calls, }) } log.Fields(v.contextNoLock()).Debug("Rate limiters reset for visitor") // Must be after function, because contextNoLock() describes rate limiters } func (v *visitor) Limits() *visitorLimits { v.mu.RLock() defer v.mu.RUnlock() return v.limitsNoLock() } func (v *visitor) limitsNoLock() *visitorLimits { if v.user != nil && v.user.Tier != nil { return tierBasedVisitorLimits(v.config, v.user.Tier) } return configBasedVisitorLimits(v.config) } func tierBasedVisitorLimits(conf *Config, tier *user.Tier) *visitorLimits { return &visitorLimits{ Basis: visitorLimitBasisTier, RequestLimitBurst: util.MinMax(int(float64(tier.MessageLimit)*visitorMessageToRequestLimitBurstRate), conf.VisitorRequestLimitBurst, visitorMessageToRequestLimitBurstMax), RequestLimitReplenish: util.Max(rate.Every(conf.VisitorRequestLimitReplenish), dailyLimitToRate(tier.MessageLimit*visitorMessageToRequestLimitReplenishFactor)), MessageLimit: tier.MessageLimit, MessageExpiryDuration: tier.MessageExpiryDuration, EmailLimit: tier.EmailLimit, EmailLimitBurst: util.MinMax(int(float64(tier.EmailLimit)*visitorEmailLimitBurstRate), conf.VisitorEmailLimitBurst, visitorEmailLimitBurstMax), EmailLimitReplenish: dailyLimitToRate(tier.EmailLimit), CallLimit: tier.CallLimit, ReservationsLimit: tier.ReservationLimit, AttachmentTotalSizeLimit: tier.AttachmentTotalSizeLimit, AttachmentFileSizeLimit: tier.AttachmentFileSizeLimit, AttachmentExpiryDuration: tier.AttachmentExpiryDuration, AttachmentBandwidthLimit: tier.AttachmentBandwidthLimit, } } func configBasedVisitorLimits(conf *Config) *visitorLimits { messagesLimit := replenishDurationToDailyLimit(conf.VisitorRequestLimitReplenish) // Approximation! if conf.VisitorMessageDailyLimit > 0 { messagesLimit = int64(conf.VisitorMessageDailyLimit) } return &visitorLimits{ Basis: visitorLimitBasisIP, RequestLimitBurst: conf.VisitorRequestLimitBurst, RequestLimitReplenish: rate.Every(conf.VisitorRequestLimitReplenish), MessageLimit: messagesLimit, MessageExpiryDuration: conf.CacheDuration, EmailLimit: replenishDurationToDailyLimit(conf.VisitorEmailLimitReplenish), // Approximation! EmailLimitBurst: conf.VisitorEmailLimitBurst, EmailLimitReplenish: rate.Every(conf.VisitorEmailLimitReplenish), CallLimit: visitorDefaultCallsLimit, ReservationsLimit: visitorDefaultReservationsLimit, AttachmentTotalSizeLimit: conf.VisitorAttachmentTotalSizeLimit, AttachmentFileSizeLimit: conf.AttachmentFileSizeLimit, AttachmentExpiryDuration: conf.AttachmentExpiryDuration, AttachmentBandwidthLimit: conf.VisitorAttachmentDailyBandwidthLimit, } } func (v *visitor) Info() (*visitorInfo, error) { v.mu.RLock() info := v.infoLightNoLock() v.mu.RUnlock() // Attachment stats from database var attachmentsBytesUsed int64 var err error u := v.User() if u != nil { attachmentsBytesUsed, err = v.messageCache.AttachmentBytesUsedByUser(u.ID) } else { attachmentsBytesUsed, err = v.messageCache.AttachmentBytesUsedBySender(v.IP().String()) } if err != nil { return nil, err } info.Stats.AttachmentTotalSize = attachmentsBytesUsed info.Stats.AttachmentTotalSizeRemaining = zeroIfNegative(info.Limits.AttachmentTotalSizeLimit - attachmentsBytesUsed) // Reservation stats from database var reservations int64 if v.userManager != nil && u != nil { reservations, err = v.userManager.ReservationsCount(u.Name) if err != nil { return nil, err } } info.Stats.Reservations = reservations info.Stats.ReservationsRemaining = zeroIfNegative(info.Limits.ReservationsLimit - reservations) return info, nil } func (v *visitor) infoLightNoLock() *visitorInfo { messages := v.messagesLimiter.Value() emails := v.emailsLimiter.Value() calls := v.callsLimiter.Value() limits := v.limitsNoLock() stats := &visitorStats{ Messages: messages, MessagesRemaining: zeroIfNegative(limits.MessageLimit - messages), Emails: emails, EmailsRemaining: zeroIfNegative(limits.EmailLimit - emails), Calls: calls, CallsRemaining: zeroIfNegative(limits.CallLimit - calls), } return &visitorInfo{ Limits: limits, Stats: stats, } } func zeroIfNegative(value int64) int64 { if value < 0 { return 0 } return value } func replenishDurationToDailyLimit(duration time.Duration) int64 { return int64(oneDay / duration) } func dailyLimitToRate(limit int64) rate.Limit { return rate.Limit(limit) * rate.Every(oneDay) } func visitorID(ip netip.Addr, u *user.User) string { if u != nil && u.Tier != nil { return fmt.Sprintf("user:%s", u.ID) } return fmt.Sprintf("ip:%s", ip.String()) } ntfy-2.11.0/server/webpush_store.go000066400000000000000000000217041462047176100173150ustar00rootroot00000000000000package server import ( "database/sql" "errors" "heckel.io/ntfy/v2/util" "net/netip" "time" _ "github.com/mattn/go-sqlite3" // SQLite driver ) const ( subscriptionIDPrefix = "wps_" subscriptionIDLength = 10 subscriptionEndpointLimitPerSubscriberIP = 10 ) var ( errWebPushNoRows = errors.New("no rows found") errWebPushTooManySubscriptions = errors.New("too many subscriptions") errWebPushUserIDCannotBeEmpty = errors.New("user ID cannot be empty") ) const ( createWebPushSubscriptionsTableQuery = ` BEGIN; CREATE TABLE IF NOT EXISTS subscription ( id TEXT PRIMARY KEY, endpoint TEXT NOT NULL, key_auth TEXT NOT NULL, key_p256dh TEXT NOT NULL, user_id TEXT NOT NULL, subscriber_ip TEXT NOT NULL, updated_at INT NOT NULL, warned_at INT NOT NULL DEFAULT 0 ); CREATE UNIQUE INDEX IF NOT EXISTS idx_endpoint ON subscription (endpoint); CREATE INDEX IF NOT EXISTS idx_subscriber_ip ON subscription (subscriber_ip); CREATE TABLE IF NOT EXISTS subscription_topic ( subscription_id TEXT NOT NULL, topic TEXT NOT NULL, PRIMARY KEY (subscription_id, topic), FOREIGN KEY (subscription_id) REFERENCES subscription (id) ON DELETE CASCADE ); CREATE INDEX IF NOT EXISTS idx_topic ON subscription_topic (topic); CREATE TABLE IF NOT EXISTS schemaVersion ( id INT PRIMARY KEY, version INT NOT NULL ); COMMIT; ` builtinStartupQueries = ` PRAGMA foreign_keys = ON; ` selectWebPushSubscriptionIDByEndpoint = `SELECT id FROM subscription WHERE endpoint = ?` selectWebPushSubscriptionCountBySubscriberIP = `SELECT COUNT(*) FROM subscription WHERE subscriber_ip = ?` selectWebPushSubscriptionsForTopicQuery = ` SELECT id, endpoint, key_auth, key_p256dh, user_id FROM subscription_topic st JOIN subscription s ON s.id = st.subscription_id WHERE st.topic = ? ORDER BY endpoint ` selectWebPushSubscriptionsExpiringSoonQuery = ` SELECT id, endpoint, key_auth, key_p256dh, user_id FROM subscription WHERE warned_at = 0 AND updated_at <= ? ` insertWebPushSubscriptionQuery = ` INSERT INTO subscription (id, endpoint, key_auth, key_p256dh, user_id, subscriber_ip, updated_at, warned_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT (endpoint) DO UPDATE SET key_auth = excluded.key_auth, key_p256dh = excluded.key_p256dh, user_id = excluded.user_id, subscriber_ip = excluded.subscriber_ip, updated_at = excluded.updated_at, warned_at = excluded.warned_at ` updateWebPushSubscriptionWarningSentQuery = `UPDATE subscription SET warned_at = ? WHERE id = ?` deleteWebPushSubscriptionByEndpointQuery = `DELETE FROM subscription WHERE endpoint = ?` deleteWebPushSubscriptionByUserIDQuery = `DELETE FROM subscription WHERE user_id = ?` deleteWebPushSubscriptionByAgeQuery = `DELETE FROM subscription WHERE updated_at <= ?` // Full table scan! insertWebPushSubscriptionTopicQuery = `INSERT INTO subscription_topic (subscription_id, topic) VALUES (?, ?)` deleteWebPushSubscriptionTopicAllQuery = `DELETE FROM subscription_topic WHERE subscription_id = ?` ) // Schema management queries const ( currentWebPushSchemaVersion = 1 insertWebPushSchemaVersion = `INSERT INTO schemaVersion VALUES (1, ?)` selectWebPushSchemaVersionQuery = `SELECT version FROM schemaVersion WHERE id = 1` ) type webPushStore struct { db *sql.DB } func newWebPushStore(filename, startupQueries string) (*webPushStore, error) { db, err := sql.Open("sqlite3", filename) if err != nil { return nil, err } if err := setupWebPushDB(db); err != nil { return nil, err } if err := runWebPushStartupQueries(db, startupQueries); err != nil { return nil, err } return &webPushStore{ db: db, }, nil } func setupWebPushDB(db *sql.DB) error { // If 'schemaVersion' table does not exist, this must be a new database rows, err := db.Query(selectWebPushSchemaVersionQuery) if err != nil { return setupNewWebPushDB(db) } return rows.Close() } func setupNewWebPushDB(db *sql.DB) error { if _, err := db.Exec(createWebPushSubscriptionsTableQuery); err != nil { return err } if _, err := db.Exec(insertWebPushSchemaVersion, currentWebPushSchemaVersion); err != nil { return err } return nil } func runWebPushStartupQueries(db *sql.DB, startupQueries string) error { if _, err := db.Exec(startupQueries); err != nil { return err } if _, err := db.Exec(builtinStartupQueries); err != nil { return err } return nil } // UpsertSubscription adds or updates Web Push subscriptions for the given topics and user ID. It always first deletes all // existing entries for a given endpoint. func (c *webPushStore) UpsertSubscription(endpoint string, auth, p256dh, userID string, subscriberIP netip.Addr, topics []string) error { tx, err := c.db.Begin() if err != nil { return err } defer tx.Rollback() // Read number of subscriptions for subscriber IP address rowsCount, err := tx.Query(selectWebPushSubscriptionCountBySubscriberIP, subscriberIP.String()) if err != nil { return err } defer rowsCount.Close() var subscriptionCount int if !rowsCount.Next() { return errWebPushNoRows } if err := rowsCount.Scan(&subscriptionCount); err != nil { return err } if err := rowsCount.Close(); err != nil { return err } // Read existing subscription ID for endpoint (or create new ID) rows, err := tx.Query(selectWebPushSubscriptionIDByEndpoint, endpoint) if err != nil { return err } defer rows.Close() var subscriptionID string if rows.Next() { if err := rows.Scan(&subscriptionID); err != nil { return err } } else { if subscriptionCount >= subscriptionEndpointLimitPerSubscriberIP { return errWebPushTooManySubscriptions } subscriptionID = util.RandomStringPrefix(subscriptionIDPrefix, subscriptionIDLength) } if err := rows.Close(); err != nil { return err } // Insert or update subscription updatedAt, warnedAt := time.Now().Unix(), 0 if _, err = tx.Exec(insertWebPushSubscriptionQuery, subscriptionID, endpoint, auth, p256dh, userID, subscriberIP.String(), updatedAt, warnedAt); err != nil { return err } // Replace all subscription topics if _, err := tx.Exec(deleteWebPushSubscriptionTopicAllQuery, subscriptionID); err != nil { return err } for _, topic := range topics { if _, err = tx.Exec(insertWebPushSubscriptionTopicQuery, subscriptionID, topic); err != nil { return err } } return tx.Commit() } // SubscriptionsForTopic returns all subscriptions for the given topic func (c *webPushStore) SubscriptionsForTopic(topic string) ([]*webPushSubscription, error) { rows, err := c.db.Query(selectWebPushSubscriptionsForTopicQuery, topic) if err != nil { return nil, err } defer rows.Close() return c.subscriptionsFromRows(rows) } // SubscriptionsExpiring returns all subscriptions that have not been updated for a given time period func (c *webPushStore) SubscriptionsExpiring(warnAfter time.Duration) ([]*webPushSubscription, error) { rows, err := c.db.Query(selectWebPushSubscriptionsExpiringSoonQuery, time.Now().Add(-warnAfter).Unix()) if err != nil { return nil, err } defer rows.Close() return c.subscriptionsFromRows(rows) } // MarkExpiryWarningSent marks the given subscriptions as having received a warning about expiring soon func (c *webPushStore) MarkExpiryWarningSent(subscriptions []*webPushSubscription) error { tx, err := c.db.Begin() if err != nil { return err } defer tx.Rollback() for _, subscription := range subscriptions { if _, err := tx.Exec(updateWebPushSubscriptionWarningSentQuery, time.Now().Unix(), subscription.ID); err != nil { return err } } return tx.Commit() } func (c *webPushStore) subscriptionsFromRows(rows *sql.Rows) ([]*webPushSubscription, error) { subscriptions := make([]*webPushSubscription, 0) for rows.Next() { var id, endpoint, auth, p256dh, userID string if err := rows.Scan(&id, &endpoint, &auth, &p256dh, &userID); err != nil { return nil, err } subscriptions = append(subscriptions, &webPushSubscription{ ID: id, Endpoint: endpoint, Auth: auth, P256dh: p256dh, UserID: userID, }) } return subscriptions, nil } // RemoveSubscriptionsByEndpoint removes the subscription for the given endpoint func (c *webPushStore) RemoveSubscriptionsByEndpoint(endpoint string) error { _, err := c.db.Exec(deleteWebPushSubscriptionByEndpointQuery, endpoint) return err } // RemoveSubscriptionsByUserID removes all subscriptions for the given user ID func (c *webPushStore) RemoveSubscriptionsByUserID(userID string) error { if userID == "" { return errWebPushUserIDCannotBeEmpty } _, err := c.db.Exec(deleteWebPushSubscriptionByUserIDQuery, userID) return err } // RemoveExpiredSubscriptions removes all subscriptions that have not been updated for a given time period func (c *webPushStore) RemoveExpiredSubscriptions(expireAfter time.Duration) error { _, err := c.db.Exec(deleteWebPushSubscriptionByAgeQuery, time.Now().Add(-expireAfter).Unix()) return err } // Close closes the underlying database connection func (c *webPushStore) Close() error { return c.db.Close() } ntfy-2.11.0/server/webpush_store_test.go000066400000000000000000000167631462047176100203650ustar00rootroot00000000000000package server import ( "fmt" "github.com/stretchr/testify/require" "net/netip" "path/filepath" "testing" "time" ) func TestWebPushStore_UpsertSubscription_SubscriptionsForTopic(t *testing.T) { webPush := newTestWebPushStore(t) defer webPush.Close() require.Nil(t, webPush.UpsertSubscription(testWebPushEndpoint, "auth-key", "p256dh-key", "u_1234", netip.MustParseAddr("1.2.3.4"), []string{"test-topic", "mytopic"})) subs, err := webPush.SubscriptionsForTopic("test-topic") require.Nil(t, err) require.Len(t, subs, 1) require.Equal(t, subs[0].Endpoint, testWebPushEndpoint) require.Equal(t, subs[0].P256dh, "p256dh-key") require.Equal(t, subs[0].Auth, "auth-key") require.Equal(t, subs[0].UserID, "u_1234") subs2, err := webPush.SubscriptionsForTopic("mytopic") require.Nil(t, err) require.Len(t, subs2, 1) require.Equal(t, subs[0].Endpoint, subs2[0].Endpoint) } func TestWebPushStore_UpsertSubscription_SubscriberIPLimitReached(t *testing.T) { webPush := newTestWebPushStore(t) defer webPush.Close() // Insert 10 subscriptions with the same IP address for i := 0; i < 10; i++ { endpoint := fmt.Sprintf(testWebPushEndpoint+"%d", i) require.Nil(t, webPush.UpsertSubscription(endpoint, "auth-key", "p256dh-key", "u_1234", netip.MustParseAddr("1.2.3.4"), []string{"test-topic", "mytopic"})) } // Another one for the same endpoint should be fine require.Nil(t, webPush.UpsertSubscription(testWebPushEndpoint+"0", "auth-key", "p256dh-key", "u_1234", netip.MustParseAddr("1.2.3.4"), []string{"test-topic", "mytopic"})) // But with a different endpoint it should fail require.Equal(t, errWebPushTooManySubscriptions, webPush.UpsertSubscription(testWebPushEndpoint+"11", "auth-key", "p256dh-key", "u_1234", netip.MustParseAddr("1.2.3.4"), []string{"test-topic", "mytopic"})) // But with a different IP address it should be fine again require.Nil(t, webPush.UpsertSubscription(testWebPushEndpoint+"99", "auth-key", "p256dh-key", "u_1234", netip.MustParseAddr("9.9.9.9"), []string{"test-topic", "mytopic"})) } func TestWebPushStore_UpsertSubscription_UpdateTopics(t *testing.T) { webPush := newTestWebPushStore(t) defer webPush.Close() // Insert subscription with two topics, and another with one topic require.Nil(t, webPush.UpsertSubscription(testWebPushEndpoint+"0", "auth-key", "p256dh-key", "u_1234", netip.MustParseAddr("1.2.3.4"), []string{"topic1", "topic2"})) require.Nil(t, webPush.UpsertSubscription(testWebPushEndpoint+"1", "auth-key", "p256dh-key", "", netip.MustParseAddr("9.9.9.9"), []string{"topic1"})) subs, err := webPush.SubscriptionsForTopic("topic1") require.Nil(t, err) require.Len(t, subs, 2) require.Equal(t, testWebPushEndpoint+"0", subs[0].Endpoint) require.Equal(t, testWebPushEndpoint+"1", subs[1].Endpoint) subs, err = webPush.SubscriptionsForTopic("topic2") require.Nil(t, err) require.Len(t, subs, 1) require.Equal(t, testWebPushEndpoint+"0", subs[0].Endpoint) // Update the first subscription to have only one topic require.Nil(t, webPush.UpsertSubscription(testWebPushEndpoint+"0", "auth-key", "p256dh-key", "u_1234", netip.MustParseAddr("1.2.3.4"), []string{"topic1"})) subs, err = webPush.SubscriptionsForTopic("topic1") require.Nil(t, err) require.Len(t, subs, 2) require.Equal(t, testWebPushEndpoint+"0", subs[0].Endpoint) subs, err = webPush.SubscriptionsForTopic("topic2") require.Nil(t, err) require.Len(t, subs, 0) } func TestWebPushStore_RemoveSubscriptionsByEndpoint(t *testing.T) { webPush := newTestWebPushStore(t) defer webPush.Close() // Insert subscription with two topics require.Nil(t, webPush.UpsertSubscription(testWebPushEndpoint, "auth-key", "p256dh-key", "u_1234", netip.MustParseAddr("1.2.3.4"), []string{"topic1", "topic2"})) subs, err := webPush.SubscriptionsForTopic("topic1") require.Nil(t, err) require.Len(t, subs, 1) // And remove it again require.Nil(t, webPush.RemoveSubscriptionsByEndpoint(testWebPushEndpoint)) subs, err = webPush.SubscriptionsForTopic("topic1") require.Nil(t, err) require.Len(t, subs, 0) } func TestWebPushStore_RemoveSubscriptionsByUserID(t *testing.T) { webPush := newTestWebPushStore(t) defer webPush.Close() // Insert subscription with two topics require.Nil(t, webPush.UpsertSubscription(testWebPushEndpoint, "auth-key", "p256dh-key", "u_1234", netip.MustParseAddr("1.2.3.4"), []string{"topic1", "topic2"})) subs, err := webPush.SubscriptionsForTopic("topic1") require.Nil(t, err) require.Len(t, subs, 1) // And remove it again require.Nil(t, webPush.RemoveSubscriptionsByUserID("u_1234")) subs, err = webPush.SubscriptionsForTopic("topic1") require.Nil(t, err) require.Len(t, subs, 0) } func TestWebPushStore_RemoveSubscriptionsByUserID_Empty(t *testing.T) { webPush := newTestWebPushStore(t) defer webPush.Close() require.Equal(t, errWebPushUserIDCannotBeEmpty, webPush.RemoveSubscriptionsByUserID("")) } func TestWebPushStore_MarkExpiryWarningSent(t *testing.T) { webPush := newTestWebPushStore(t) defer webPush.Close() // Insert subscription with two topics require.Nil(t, webPush.UpsertSubscription(testWebPushEndpoint, "auth-key", "p256dh-key", "u_1234", netip.MustParseAddr("1.2.3.4"), []string{"topic1", "topic2"})) subs, err := webPush.SubscriptionsForTopic("topic1") require.Nil(t, err) require.Len(t, subs, 1) // Mark them as warning sent require.Nil(t, webPush.MarkExpiryWarningSent(subs)) rows, err := webPush.db.Query("SELECT endpoint FROM subscription WHERE warned_at > 0") require.Nil(t, err) defer rows.Close() var endpoint string require.True(t, rows.Next()) require.Nil(t, rows.Scan(&endpoint)) require.Nil(t, err) require.Equal(t, testWebPushEndpoint, endpoint) require.False(t, rows.Next()) } func TestWebPushStore_SubscriptionsExpiring(t *testing.T) { webPush := newTestWebPushStore(t) defer webPush.Close() // Insert subscription with two topics require.Nil(t, webPush.UpsertSubscription(testWebPushEndpoint, "auth-key", "p256dh-key", "u_1234", netip.MustParseAddr("1.2.3.4"), []string{"topic1", "topic2"})) subs, err := webPush.SubscriptionsForTopic("topic1") require.Nil(t, err) require.Len(t, subs, 1) // Fake-mark them as soon-to-expire _, err = webPush.db.Exec("UPDATE subscription SET updated_at = ? WHERE endpoint = ?", time.Now().Add(-8*24*time.Hour).Unix(), testWebPushEndpoint) require.Nil(t, err) // Should not be cleaned up yet require.Nil(t, webPush.RemoveExpiredSubscriptions(9*24*time.Hour)) // Run expiration subs, err = webPush.SubscriptionsExpiring(7 * 24 * time.Hour) require.Nil(t, err) require.Len(t, subs, 1) require.Equal(t, testWebPushEndpoint, subs[0].Endpoint) } func TestWebPushStore_RemoveExpiredSubscriptions(t *testing.T) { webPush := newTestWebPushStore(t) defer webPush.Close() // Insert subscription with two topics require.Nil(t, webPush.UpsertSubscription(testWebPushEndpoint, "auth-key", "p256dh-key", "u_1234", netip.MustParseAddr("1.2.3.4"), []string{"topic1", "topic2"})) subs, err := webPush.SubscriptionsForTopic("topic1") require.Nil(t, err) require.Len(t, subs, 1) // Fake-mark them as expired _, err = webPush.db.Exec("UPDATE subscription SET updated_at = ? WHERE endpoint = ?", time.Now().Add(-10*24*time.Hour).Unix(), testWebPushEndpoint) require.Nil(t, err) // Run expiration require.Nil(t, webPush.RemoveExpiredSubscriptions(9*24*time.Hour)) // List again, should be 0 subs, err = webPush.SubscriptionsForTopic("topic1") require.Nil(t, err) require.Len(t, subs, 0) } func newTestWebPushStore(t *testing.T) *webPushStore { webPush, err := newWebPushStore(filepath.Join(t.TempDir(), "webpush.db"), "") require.Nil(t, err) return webPush } ntfy-2.11.0/test/000077500000000000000000000000001462047176100135425ustar00rootroot00000000000000ntfy-2.11.0/test/server.go000066400000000000000000000021071462047176100153770ustar00rootroot00000000000000package test import ( "fmt" "heckel.io/ntfy/v2/server" "math/rand" "net/http" "path/filepath" "testing" ) // StartServer starts a server.Server with a random port and waits for the server to be up func StartServer(t *testing.T) (*server.Server, int) { return StartServerWithConfig(t, server.NewConfig()) } // StartServerWithConfig starts a server.Server with a random port and waits for the server to be up func StartServerWithConfig(t *testing.T, conf *server.Config) (*server.Server, int) { port := 10000 + rand.Intn(30000) conf.ListenHTTP = fmt.Sprintf(":%d", port) conf.AttachmentCacheDir = t.TempDir() conf.CacheFile = filepath.Join(t.TempDir(), "cache.db") s, err := server.New(conf) if err != nil { t.Fatal(err) } go func() { if err := s.Run(); err != nil && err != http.ErrServerClosed { panic(err) // 'go vet' complains about 't.Fatal(err)' } }() WaitForPortUp(t, port) return s, port } // StopServer stops the test server and waits for the port to be down func StopServer(t *testing.T, s *server.Server, port int) { s.Stop() WaitForPortDown(t, port) } ntfy-2.11.0/test/test.go000066400000000000000000000002121462047176100150430ustar00rootroot00000000000000// Package test provides test helpers for unit and integration tests. // This code is not meant to be used outside of tests. package test ntfy-2.11.0/test/util.go000066400000000000000000000020321462047176100150430ustar00rootroot00000000000000package test import ( "net" "strconv" "testing" "time" ) // WaitForPortUp waits up to 7s for a port to come up and fails t if that fails func WaitForPortUp(t *testing.T, port int) { success := false for i := 0; i < 500; i++ { startTime := time.Now() conn, _ := net.DialTimeout("tcp", net.JoinHostPort("127.0.0.1", strconv.Itoa(port)), 10*time.Millisecond) if conn != nil { success = true conn.Close() break } if time.Since(startTime) < 10*time.Millisecond { time.Sleep(10*time.Millisecond - time.Since(startTime)) } } if !success { t.Fatalf("Failed waiting for port %d to be UP", port) } } // WaitForPortDown waits up to 5s for a port to come down and fails t if that fails func WaitForPortDown(t *testing.T, port int) { success := false for i := 0; i < 100; i++ { conn, _ := net.DialTimeout("tcp", net.JoinHostPort("", strconv.Itoa(port)), 50*time.Millisecond) if conn == nil { success = true break } conn.Close() } if !success { t.Fatalf("Failed waiting for port %d to be DOWN", port) } } ntfy-2.11.0/tools/000077500000000000000000000000001462047176100137235ustar00rootroot00000000000000ntfy-2.11.0/tools/fbsend/000077500000000000000000000000001462047176100151645ustar00rootroot00000000000000ntfy-2.11.0/tools/fbsend/README.md000066400000000000000000000001361462047176100164430ustar00rootroot00000000000000# fbsend fbsend is a tiny tool to send data messages to Firebase. It's only used for testing. ntfy-2.11.0/tools/fbsend/main.go000066400000000000000000000020521462047176100164360ustar00rootroot00000000000000package main import ( "context" firebase "firebase.google.com/go/v4" "firebase.google.com/go/v4/messaging" "flag" "fmt" "google.golang.org/api/option" "os" "strings" ) func main() { conffile := flag.String("config", "/etc/fbsend/fbsend.json", "config file") flag.Parse() if flag.NArg() < 2 { fail("Syntax: fbsend [-config FILE] topic key=value ...") } topic := flag.Arg(0) data := make(map[string]string) for i := 1; i < flag.NArg(); i++ { kv := strings.SplitN(flag.Arg(i), "=", 2) if len(kv) != 2 { fail(fmt.Sprintf("Invalid argument: %s (%v)", flag.Arg(i), kv)) } data[kv[0]] = kv[1] } fb, err := firebase.NewApp(context.Background(), nil, option.WithCredentialsFile(*conffile)) if err != nil { fail(err.Error()) } msg, err := fb.Messaging(context.Background()) if err != nil { fail(err.Error()) } _, err = msg.Send(context.Background(), &messaging.Message{ Topic: topic, Data: data, }) if err != nil { fail(err.Error()) } fmt.Println("Sent successfully") } func fail(s string) { fmt.Println(s) os.Exit(1) } ntfy-2.11.0/tools/loadgen/000077500000000000000000000000001462047176100153345ustar00rootroot00000000000000ntfy-2.11.0/tools/loadgen/main.go000066400000000000000000000040401462047176100166050ustar00rootroot00000000000000package main import ( "bufio" "context" "fmt" "net/http" "os" "time" ) func main() { baseURL := "https://staging.ntfy.sh" if len(os.Args) > 1 { baseURL = os.Args[1] } for i := 0; i < 2000; i++ { go subscribe(i, baseURL) } time.Sleep(5 * time.Second) for i := 0; i < 2000; i++ { go func(worker int) { for { poll(worker, baseURL) } }(i) } time.Sleep(time.Hour) } func subscribe(worker int, baseURL string) { fmt.Printf("[subscribe] worker=%d STARTING\n", worker) start := time.Now() topic, ip := fmt.Sprintf("subtopic%d", worker), fmt.Sprintf("1.2.%d.%d", (worker/255)%255, worker%255) req, _ := http.NewRequest("GET", fmt.Sprintf("%s/%s/json", baseURL, topic), nil) req.Header.Set("X-Forwarded-For", ip) resp, err := http.DefaultClient.Do(req) if err != nil { fmt.Printf("[subscribe] worker=%d time=%d error=%s\n", worker, time.Since(start).Milliseconds(), err.Error()) return } defer resp.Body.Close() scanner := bufio.NewScanner(resp.Body) for scanner.Scan() { // Do nothing } fmt.Printf("[subscribe] worker=%d status=%d time=%d EXITED\n", worker, resp.StatusCode, time.Since(start).Milliseconds()) } func poll(worker int, baseURL string) { fmt.Printf("[poll] worker=%d STARTING\n", worker) topic, ip := fmt.Sprintf("polltopic%d", worker), fmt.Sprintf("1.2.%d.%d", (worker/255)%255, worker%255) start := time.Now() ctx, cancel := context.WithTimeout(context.Background(), time.Second*2) defer cancel() //req, _ := http.NewRequestWithContext(ctx, "GET", fmt.Sprintf("https://staging.ntfy.sh/%s/json?poll=1&since=all", topic), nil) req, _ := http.NewRequestWithContext(ctx, "GET", fmt.Sprintf("%s/%s/json?poll=1&since=all", baseURL, topic), nil) req.Header.Set("X-Forwarded-For", ip) resp, err := http.DefaultClient.Do(req) if err != nil { fmt.Printf("[poll] worker=%d time=%d status=- error=%s\n", worker, time.Since(start).Milliseconds(), err.Error()) cancel() return } defer resp.Body.Close() fmt.Printf("[poll] worker=%d time=%d status=%s\n", worker, time.Since(start).Milliseconds(), resp.Status) } ntfy-2.11.0/user/000077500000000000000000000000001462047176100135415ustar00rootroot00000000000000ntfy-2.11.0/user/manager.go000066400000000000000000001633041462047176100155110ustar00rootroot00000000000000// Package user deals with authentication and authorization against topics package user import ( "database/sql" "encoding/json" "errors" "fmt" "github.com/mattn/go-sqlite3" "github.com/stripe/stripe-go/v74" "golang.org/x/crypto/bcrypt" "heckel.io/ntfy/v2/log" "heckel.io/ntfy/v2/util" "net/netip" "strings" "sync" "time" ) const ( tierIDPrefix = "ti_" tierIDLength = 8 syncTopicPrefix = "st_" syncTopicLength = 16 userIDPrefix = "u_" userIDLength = 12 userAuthIntentionalSlowDownHash = "$2a$10$YFCQvqQDwIIwnJM1xkAYOeih0dg17UVGanaTStnrSzC8NCWxcLDwy" // Cost should match DefaultUserPasswordBcryptCost userHardDeleteAfterDuration = 7 * 24 * time.Hour tokenPrefix = "tk_" tokenLength = 32 tokenMaxCount = 20 // Only keep this many tokens in the table per user tag = "user_manager" ) // Default constants that may be overridden by configs const ( DefaultUserStatsQueueWriterInterval = 33 * time.Second DefaultUserPasswordBcryptCost = 10 ) var ( errNoTokenProvided = errors.New("no token provided") errTopicOwnedByOthers = errors.New("topic owned by others") errNoRows = errors.New("no rows found") ) // Manager-related queries const ( createTablesQueries = ` BEGIN; CREATE TABLE IF NOT EXISTS tier ( id TEXT PRIMARY KEY, code TEXT NOT NULL, name TEXT NOT NULL, messages_limit INT NOT NULL, messages_expiry_duration INT NOT NULL, emails_limit INT NOT NULL, calls_limit INT NOT NULL, reservations_limit INT NOT NULL, attachment_file_size_limit INT NOT NULL, attachment_total_size_limit INT NOT NULL, attachment_expiry_duration INT NOT NULL, attachment_bandwidth_limit INT NOT NULL, stripe_monthly_price_id TEXT, stripe_yearly_price_id TEXT ); CREATE UNIQUE INDEX idx_tier_code ON tier (code); CREATE UNIQUE INDEX idx_tier_stripe_monthly_price_id ON tier (stripe_monthly_price_id); CREATE UNIQUE INDEX idx_tier_stripe_yearly_price_id ON tier (stripe_yearly_price_id); CREATE TABLE IF NOT EXISTS user ( id TEXT PRIMARY KEY, tier_id TEXT, user TEXT NOT NULL, pass TEXT NOT NULL, role TEXT CHECK (role IN ('anonymous', 'admin', 'user')) NOT NULL, prefs JSON NOT NULL DEFAULT '{}', sync_topic TEXT NOT NULL, stats_messages INT NOT NULL DEFAULT (0), stats_emails INT NOT NULL DEFAULT (0), stats_calls INT NOT NULL DEFAULT (0), stripe_customer_id TEXT, stripe_subscription_id TEXT, stripe_subscription_status TEXT, stripe_subscription_interval TEXT, stripe_subscription_paid_until INT, stripe_subscription_cancel_at INT, created INT NOT NULL, deleted INT, FOREIGN KEY (tier_id) REFERENCES tier (id) ); CREATE UNIQUE INDEX idx_user ON user (user); CREATE UNIQUE INDEX idx_user_stripe_customer_id ON user (stripe_customer_id); CREATE UNIQUE INDEX idx_user_stripe_subscription_id ON user (stripe_subscription_id); CREATE TABLE IF NOT EXISTS user_access ( user_id TEXT NOT NULL, topic TEXT NOT NULL, read INT NOT NULL, write INT NOT NULL, owner_user_id INT, PRIMARY KEY (user_id, topic), FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE, FOREIGN KEY (owner_user_id) REFERENCES user (id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS user_token ( user_id TEXT NOT NULL, token TEXT NOT NULL, label TEXT NOT NULL, last_access INT NOT NULL, last_origin TEXT NOT NULL, expires INT NOT NULL, PRIMARY KEY (user_id, token), FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS user_phone ( user_id TEXT NOT NULL, phone_number TEXT NOT NULL, PRIMARY KEY (user_id, phone_number), FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS schemaVersion ( id INT PRIMARY KEY, version INT NOT NULL ); INSERT INTO user (id, user, pass, role, sync_topic, created) VALUES ('` + everyoneID + `', '*', '', 'anonymous', '', UNIXEPOCH()) ON CONFLICT (id) DO NOTHING; COMMIT; ` builtinStartupQueries = ` PRAGMA foreign_keys = ON; ` selectUserByIDQuery = ` SELECT u.id, u.user, u.pass, u.role, u.prefs, u.sync_topic, u.stats_messages, u.stats_emails, u.stats_calls, u.stripe_customer_id, u.stripe_subscription_id, u.stripe_subscription_status, u.stripe_subscription_interval, u.stripe_subscription_paid_until, u.stripe_subscription_cancel_at, deleted, t.id, t.code, t.name, t.messages_limit, t.messages_expiry_duration, t.emails_limit, t.calls_limit, t.reservations_limit, t.attachment_file_size_limit, t.attachment_total_size_limit, t.attachment_expiry_duration, t.attachment_bandwidth_limit, t.stripe_monthly_price_id, t.stripe_yearly_price_id FROM user u LEFT JOIN tier t on t.id = u.tier_id WHERE u.id = ? ` selectUserByNameQuery = ` SELECT u.id, u.user, u.pass, u.role, u.prefs, u.sync_topic, u.stats_messages, u.stats_emails, u.stats_calls, u.stripe_customer_id, u.stripe_subscription_id, u.stripe_subscription_status, u.stripe_subscription_interval, u.stripe_subscription_paid_until, u.stripe_subscription_cancel_at, deleted, t.id, t.code, t.name, t.messages_limit, t.messages_expiry_duration, t.emails_limit, t.calls_limit, t.reservations_limit, t.attachment_file_size_limit, t.attachment_total_size_limit, t.attachment_expiry_duration, t.attachment_bandwidth_limit, t.stripe_monthly_price_id, t.stripe_yearly_price_id FROM user u LEFT JOIN tier t on t.id = u.tier_id WHERE user = ? ` selectUserByTokenQuery = ` SELECT u.id, u.user, u.pass, u.role, u.prefs, u.sync_topic, u.stats_messages, u.stats_emails, u.stats_calls, u.stripe_customer_id, u.stripe_subscription_id, u.stripe_subscription_status, u.stripe_subscription_interval, u.stripe_subscription_paid_until, u.stripe_subscription_cancel_at, deleted, t.id, t.code, t.name, t.messages_limit, t.messages_expiry_duration, t.emails_limit, t.calls_limit, t.reservations_limit, t.attachment_file_size_limit, t.attachment_total_size_limit, t.attachment_expiry_duration, t.attachment_bandwidth_limit, t.stripe_monthly_price_id, t.stripe_yearly_price_id FROM user u JOIN user_token tk on u.id = tk.user_id LEFT JOIN tier t on t.id = u.tier_id WHERE tk.token = ? AND (tk.expires = 0 OR tk.expires >= ?) ` selectUserByStripeCustomerIDQuery = ` SELECT u.id, u.user, u.pass, u.role, u.prefs, u.sync_topic, u.stats_messages, u.stats_emails, u.stats_calls, u.stripe_customer_id, u.stripe_subscription_id, u.stripe_subscription_status, u.stripe_subscription_interval, u.stripe_subscription_paid_until, u.stripe_subscription_cancel_at, deleted, t.id, t.code, t.name, t.messages_limit, t.messages_expiry_duration, t.emails_limit, t.calls_limit, t.reservations_limit, t.attachment_file_size_limit, t.attachment_total_size_limit, t.attachment_expiry_duration, t.attachment_bandwidth_limit, t.stripe_monthly_price_id, t.stripe_yearly_price_id FROM user u LEFT JOIN tier t on t.id = u.tier_id WHERE u.stripe_customer_id = ? ` selectTopicPermsQuery = ` SELECT read, write FROM user_access a JOIN user u ON u.id = a.user_id WHERE (u.user = ? OR u.user = ?) AND ? LIKE a.topic ESCAPE '\' ORDER BY u.user DESC, LENGTH(a.topic) DESC, a.write DESC ` insertUserQuery = ` INSERT INTO user (id, user, pass, role, sync_topic, created) VALUES (?, ?, ?, ?, ?, ?) ` selectUsernamesQuery = ` SELECT user FROM user ORDER BY CASE role WHEN 'admin' THEN 1 WHEN 'anonymous' THEN 3 ELSE 2 END, user ` selectUserCountQuery = `SELECT COUNT(*) FROM user` updateUserPassQuery = `UPDATE user SET pass = ? WHERE user = ?` updateUserRoleQuery = `UPDATE user SET role = ? WHERE user = ?` updateUserPrefsQuery = `UPDATE user SET prefs = ? WHERE id = ?` updateUserStatsQuery = `UPDATE user SET stats_messages = ?, stats_emails = ?, stats_calls = ? WHERE id = ?` updateUserStatsResetAllQuery = `UPDATE user SET stats_messages = 0, stats_emails = 0, stats_calls = 0` updateUserDeletedQuery = `UPDATE user SET deleted = ? WHERE id = ?` deleteUsersMarkedQuery = `DELETE FROM user WHERE deleted < ?` deleteUserQuery = `DELETE FROM user WHERE user = ?` upsertUserAccessQuery = ` INSERT INTO user_access (user_id, topic, read, write, owner_user_id) VALUES ((SELECT id FROM user WHERE user = ?), ?, ?, ?, (SELECT IIF(?='',NULL,(SELECT id FROM user WHERE user=?)))) ON CONFLICT (user_id, topic) DO UPDATE SET read=excluded.read, write=excluded.write, owner_user_id=excluded.owner_user_id ` selectUserAllAccessQuery = ` SELECT user_id, topic, read, write FROM user_access ORDER BY LENGTH(topic) DESC, write DESC, read DESC, topic ` selectUserAccessQuery = ` SELECT topic, read, write FROM user_access WHERE user_id = (SELECT id FROM user WHERE user = ?) ORDER BY LENGTH(topic) DESC, write DESC, read DESC, topic ` selectUserReservationsQuery = ` SELECT a_user.topic, a_user.read, a_user.write, a_everyone.read AS everyone_read, a_everyone.write AS everyone_write FROM user_access a_user LEFT JOIN user_access a_everyone ON a_user.topic = a_everyone.topic AND a_everyone.user_id = (SELECT id FROM user WHERE user = ?) WHERE a_user.user_id = a_user.owner_user_id AND a_user.owner_user_id = (SELECT id FROM user WHERE user = ?) ORDER BY a_user.topic ` selectUserReservationsCountQuery = ` SELECT COUNT(*) FROM user_access WHERE user_id = owner_user_id AND owner_user_id = (SELECT id FROM user WHERE user = ?) ` selectUserReservationsOwnerQuery = ` SELECT owner_user_id FROM user_access WHERE topic = ? AND user_id = owner_user_id ` selectUserHasReservationQuery = ` SELECT COUNT(*) FROM user_access WHERE user_id = owner_user_id AND owner_user_id = (SELECT id FROM user WHERE user = ?) AND topic = ? ` selectOtherAccessCountQuery = ` SELECT COUNT(*) FROM user_access WHERE (topic = ? OR ? LIKE topic ESCAPE '\') AND (owner_user_id IS NULL OR owner_user_id != (SELECT id FROM user WHERE user = ?)) ` deleteAllAccessQuery = `DELETE FROM user_access` deleteUserAccessQuery = ` DELETE FROM user_access WHERE user_id = (SELECT id FROM user WHERE user = ?) OR owner_user_id = (SELECT id FROM user WHERE user = ?) ` deleteTopicAccessQuery = ` DELETE FROM user_access WHERE (user_id = (SELECT id FROM user WHERE user = ?) OR owner_user_id = (SELECT id FROM user WHERE user = ?)) AND topic = ? ` selectTokenCountQuery = `SELECT COUNT(*) FROM user_token WHERE user_id = ?` selectTokensQuery = `SELECT token, label, last_access, last_origin, expires FROM user_token WHERE user_id = ?` selectTokenQuery = `SELECT token, label, last_access, last_origin, expires FROM user_token WHERE user_id = ? AND token = ?` insertTokenQuery = `INSERT INTO user_token (user_id, token, label, last_access, last_origin, expires) VALUES (?, ?, ?, ?, ?, ?)` updateTokenExpiryQuery = `UPDATE user_token SET expires = ? WHERE user_id = ? AND token = ?` updateTokenLabelQuery = `UPDATE user_token SET label = ? WHERE user_id = ? AND token = ?` updateTokenLastAccessQuery = `UPDATE user_token SET last_access = ?, last_origin = ? WHERE token = ?` deleteTokenQuery = `DELETE FROM user_token WHERE user_id = ? AND token = ?` deleteAllTokenQuery = `DELETE FROM user_token WHERE user_id = ?` deleteExpiredTokensQuery = `DELETE FROM user_token WHERE expires > 0 AND expires < ?` deleteExcessTokensQuery = ` DELETE FROM user_token WHERE user_id = ? AND (user_id, token) NOT IN ( SELECT user_id, token FROM user_token WHERE user_id = ? ORDER BY expires DESC LIMIT ? ) ` selectPhoneNumbersQuery = `SELECT phone_number FROM user_phone WHERE user_id = ?` insertPhoneNumberQuery = `INSERT INTO user_phone (user_id, phone_number) VALUES (?, ?)` deletePhoneNumberQuery = `DELETE FROM user_phone WHERE user_id = ? AND phone_number = ?` insertTierQuery = ` INSERT INTO tier (id, code, name, messages_limit, messages_expiry_duration, emails_limit, calls_limit, reservations_limit, attachment_file_size_limit, attachment_total_size_limit, attachment_expiry_duration, attachment_bandwidth_limit, stripe_monthly_price_id, stripe_yearly_price_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ` updateTierQuery = ` UPDATE tier SET name = ?, messages_limit = ?, messages_expiry_duration = ?, emails_limit = ?, calls_limit = ?, reservations_limit = ?, attachment_file_size_limit = ?, attachment_total_size_limit = ?, attachment_expiry_duration = ?, attachment_bandwidth_limit = ?, stripe_monthly_price_id = ?, stripe_yearly_price_id = ? WHERE code = ? ` selectTiersQuery = ` SELECT id, code, name, messages_limit, messages_expiry_duration, emails_limit, calls_limit, reservations_limit, attachment_file_size_limit, attachment_total_size_limit, attachment_expiry_duration, attachment_bandwidth_limit, stripe_monthly_price_id, stripe_yearly_price_id FROM tier ` selectTierByCodeQuery = ` SELECT id, code, name, messages_limit, messages_expiry_duration, emails_limit, calls_limit, reservations_limit, attachment_file_size_limit, attachment_total_size_limit, attachment_expiry_duration, attachment_bandwidth_limit, stripe_monthly_price_id, stripe_yearly_price_id FROM tier WHERE code = ? ` selectTierByPriceIDQuery = ` SELECT id, code, name, messages_limit, messages_expiry_duration, emails_limit, calls_limit, reservations_limit, attachment_file_size_limit, attachment_total_size_limit, attachment_expiry_duration, attachment_bandwidth_limit, stripe_monthly_price_id, stripe_yearly_price_id FROM tier WHERE (stripe_monthly_price_id = ? OR stripe_yearly_price_id = ?) ` updateUserTierQuery = `UPDATE user SET tier_id = (SELECT id FROM tier WHERE code = ?) WHERE user = ?` deleteUserTierQuery = `UPDATE user SET tier_id = null WHERE user = ?` deleteTierQuery = `DELETE FROM tier WHERE code = ?` updateBillingQuery = ` UPDATE user SET stripe_customer_id = ?, stripe_subscription_id = ?, stripe_subscription_status = ?, stripe_subscription_interval = ?, stripe_subscription_paid_until = ?, stripe_subscription_cancel_at = ? WHERE user = ? ` ) // Schema management queries const ( currentSchemaVersion = 5 insertSchemaVersion = `INSERT INTO schemaVersion VALUES (1, ?)` updateSchemaVersion = `UPDATE schemaVersion SET version = ? WHERE id = 1` selectSchemaVersionQuery = `SELECT version FROM schemaVersion WHERE id = 1` // 1 -> 2 (complex migration!) migrate1To2CreateTablesQueries = ` ALTER TABLE user RENAME TO user_old; CREATE TABLE IF NOT EXISTS tier ( id TEXT PRIMARY KEY, code TEXT NOT NULL, name TEXT NOT NULL, messages_limit INT NOT NULL, messages_expiry_duration INT NOT NULL, emails_limit INT NOT NULL, reservations_limit INT NOT NULL, attachment_file_size_limit INT NOT NULL, attachment_total_size_limit INT NOT NULL, attachment_expiry_duration INT NOT NULL, attachment_bandwidth_limit INT NOT NULL, stripe_price_id TEXT ); CREATE UNIQUE INDEX idx_tier_code ON tier (code); CREATE UNIQUE INDEX idx_tier_price_id ON tier (stripe_price_id); CREATE TABLE IF NOT EXISTS user ( id TEXT PRIMARY KEY, tier_id TEXT, user TEXT NOT NULL, pass TEXT NOT NULL, role TEXT CHECK (role IN ('anonymous', 'admin', 'user')) NOT NULL, prefs JSON NOT NULL DEFAULT '{}', sync_topic TEXT NOT NULL, stats_messages INT NOT NULL DEFAULT (0), stats_emails INT NOT NULL DEFAULT (0), stripe_customer_id TEXT, stripe_subscription_id TEXT, stripe_subscription_status TEXT, stripe_subscription_paid_until INT, stripe_subscription_cancel_at INT, created INT NOT NULL, deleted INT, FOREIGN KEY (tier_id) REFERENCES tier (id) ); CREATE UNIQUE INDEX idx_user ON user (user); CREATE UNIQUE INDEX idx_user_stripe_customer_id ON user (stripe_customer_id); CREATE UNIQUE INDEX idx_user_stripe_subscription_id ON user (stripe_subscription_id); CREATE TABLE IF NOT EXISTS user_access ( user_id TEXT NOT NULL, topic TEXT NOT NULL, read INT NOT NULL, write INT NOT NULL, owner_user_id INT, PRIMARY KEY (user_id, topic), FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE, FOREIGN KEY (owner_user_id) REFERENCES user (id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS user_token ( user_id TEXT NOT NULL, token TEXT NOT NULL, label TEXT NOT NULL, last_access INT NOT NULL, last_origin TEXT NOT NULL, expires INT NOT NULL, PRIMARY KEY (user_id, token), FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS schemaVersion ( id INT PRIMARY KEY, version INT NOT NULL ); INSERT INTO user (id, user, pass, role, sync_topic, created) VALUES ('u_everyone', '*', '', 'anonymous', '', UNIXEPOCH()) ON CONFLICT (id) DO NOTHING; ` migrate1To2SelectAllOldUsernamesNoTx = `SELECT user FROM user_old` migrate1To2InsertUserNoTx = ` INSERT INTO user (id, user, pass, role, sync_topic, created) SELECT ?, user, pass, role, ?, UNIXEPOCH() FROM user_old WHERE user = ? ` migrate1To2InsertFromOldTablesAndDropNoTx = ` INSERT INTO user_access (user_id, topic, read, write) SELECT u.id, a.topic, a.read, a.write FROM user u JOIN access a ON u.user = a.user; DROP TABLE access; DROP TABLE user_old; ` // 2 -> 3 migrate2To3UpdateQueries = ` ALTER TABLE user ADD COLUMN stripe_subscription_interval TEXT; ALTER TABLE tier RENAME COLUMN stripe_price_id TO stripe_monthly_price_id; ALTER TABLE tier ADD COLUMN stripe_yearly_price_id TEXT; DROP INDEX IF EXISTS idx_tier_price_id; CREATE UNIQUE INDEX idx_tier_stripe_monthly_price_id ON tier (stripe_monthly_price_id); CREATE UNIQUE INDEX idx_tier_stripe_yearly_price_id ON tier (stripe_yearly_price_id); ` // 3 -> 4 migrate3To4UpdateQueries = ` ALTER TABLE tier ADD COLUMN calls_limit INT NOT NULL DEFAULT (0); ALTER TABLE user ADD COLUMN stats_calls INT NOT NULL DEFAULT (0); CREATE TABLE IF NOT EXISTS user_phone ( user_id TEXT NOT NULL, phone_number TEXT NOT NULL, PRIMARY KEY (user_id, phone_number), FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE ); ` // 4 -> 5 migrate4To5UpdateQueries = ` UPDATE user_access SET topic = REPLACE(topic, '_', '\_'); ` ) var ( migrations = map[int]func(db *sql.DB) error{ 1: migrateFrom1, 2: migrateFrom2, 3: migrateFrom3, 4: migrateFrom4, } ) // Manager is an implementation of Manager. It stores users and access control list // in a SQLite database. type Manager struct { db *sql.DB defaultAccess Permission // Default permission if no ACL matches statsQueue map[string]*Stats // "Queue" to asynchronously write user stats to the database (UserID -> Stats) tokenQueue map[string]*TokenUpdate // "Queue" to asynchronously write token access stats to the database (Token ID -> TokenUpdate) bcryptCost int // Makes testing easier mu sync.Mutex } var _ Auther = (*Manager)(nil) // NewManager creates a new Manager instance func NewManager(filename, startupQueries string, defaultAccess Permission, bcryptCost int, queueWriterInterval time.Duration) (*Manager, error) { db, err := sql.Open("sqlite3", filename) if err != nil { return nil, err } if err := setupDB(db); err != nil { return nil, err } if err := runStartupQueries(db, startupQueries); err != nil { return nil, err } manager := &Manager{ db: db, defaultAccess: defaultAccess, statsQueue: make(map[string]*Stats), tokenQueue: make(map[string]*TokenUpdate), bcryptCost: bcryptCost, } go manager.asyncQueueWriter(queueWriterInterval) return manager, nil } // Authenticate checks username and password and returns a User if correct, and the user has not been // marked as deleted. The method returns in constant-ish time, regardless of whether the user exists or // the password is correct or incorrect. func (a *Manager) Authenticate(username, password string) (*User, error) { if username == Everyone { return nil, ErrUnauthenticated } user, err := a.User(username) if err != nil { log.Tag(tag).Field("user_name", username).Err(err).Trace("Authentication of user failed (1)") bcrypt.CompareHashAndPassword([]byte(userAuthIntentionalSlowDownHash), []byte("intentional slow-down to avoid timing attacks")) return nil, ErrUnauthenticated } else if user.Deleted { log.Tag(tag).Field("user_name", username).Trace("Authentication of user failed (2): user marked deleted") bcrypt.CompareHashAndPassword([]byte(userAuthIntentionalSlowDownHash), []byte("intentional slow-down to avoid timing attacks")) return nil, ErrUnauthenticated } else if err := bcrypt.CompareHashAndPassword([]byte(user.Hash), []byte(password)); err != nil { log.Tag(tag).Field("user_name", username).Err(err).Trace("Authentication of user failed (3)") return nil, ErrUnauthenticated } return user, nil } // AuthenticateToken checks if the token exists and returns the associated User if it does. // The method sets the User.Token value to the token that was used for authentication. func (a *Manager) AuthenticateToken(token string) (*User, error) { if len(token) != tokenLength { return nil, ErrUnauthenticated } user, err := a.userByToken(token) if err != nil { log.Tag(tag).Field("token", token).Err(err).Trace("Authentication of token failed") return nil, ErrUnauthenticated } user.Token = token return user, nil } // CreateToken generates a random token for the given user and returns it. The token expires // after a fixed duration unless ChangeToken is called. This function also prunes tokens for the // given user, if there are too many of them. func (a *Manager) CreateToken(userID, label string, expires time.Time, origin netip.Addr) (*Token, error) { token := util.RandomLowerStringPrefix(tokenPrefix, tokenLength) // Lowercase only to support "+@" email addresses tx, err := a.db.Begin() if err != nil { return nil, err } defer tx.Rollback() access := time.Now() if _, err := tx.Exec(insertTokenQuery, userID, token, label, access.Unix(), origin.String(), expires.Unix()); err != nil { return nil, err } rows, err := tx.Query(selectTokenCountQuery, userID) if err != nil { return nil, err } defer rows.Close() if !rows.Next() { return nil, errNoRows } var tokenCount int if err := rows.Scan(&tokenCount); err != nil { return nil, err } if tokenCount >= tokenMaxCount { // This pruning logic is done in two queries for efficiency. The SELECT above is a lookup // on two indices, whereas the query below is a full table scan. if _, err := tx.Exec(deleteExcessTokensQuery, userID, userID, tokenMaxCount); err != nil { return nil, err } } if err := tx.Commit(); err != nil { return nil, err } return &Token{ Value: token, Label: label, LastAccess: access, LastOrigin: origin, Expires: expires, }, nil } // Tokens returns all existing tokens for the user with the given user ID func (a *Manager) Tokens(userID string) ([]*Token, error) { rows, err := a.db.Query(selectTokensQuery, userID) if err != nil { return nil, err } defer rows.Close() tokens := make([]*Token, 0) for { token, err := a.readToken(rows) if err == ErrTokenNotFound { break } else if err != nil { return nil, err } tokens = append(tokens, token) } return tokens, nil } // Token returns a specific token for a user func (a *Manager) Token(userID, token string) (*Token, error) { rows, err := a.db.Query(selectTokenQuery, userID, token) if err != nil { return nil, err } defer rows.Close() return a.readToken(rows) } func (a *Manager) readToken(rows *sql.Rows) (*Token, error) { var token, label, lastOrigin string var lastAccess, expires int64 if !rows.Next() { return nil, ErrTokenNotFound } if err := rows.Scan(&token, &label, &lastAccess, &lastOrigin, &expires); err != nil { return nil, err } else if err := rows.Err(); err != nil { return nil, err } lastOriginIP, err := netip.ParseAddr(lastOrigin) if err != nil { lastOriginIP = netip.IPv4Unspecified() } return &Token{ Value: token, Label: label, LastAccess: time.Unix(lastAccess, 0), LastOrigin: lastOriginIP, Expires: time.Unix(expires, 0), }, nil } // ChangeToken updates a token's label and/or expiry date func (a *Manager) ChangeToken(userID, token string, label *string, expires *time.Time) (*Token, error) { if token == "" { return nil, errNoTokenProvided } tx, err := a.db.Begin() if err != nil { return nil, err } defer tx.Rollback() if label != nil { if _, err := tx.Exec(updateTokenLabelQuery, *label, userID, token); err != nil { return nil, err } } if expires != nil { if _, err := tx.Exec(updateTokenExpiryQuery, expires.Unix(), userID, token); err != nil { return nil, err } } if err := tx.Commit(); err != nil { return nil, err } return a.Token(userID, token) } // RemoveToken deletes the token defined in User.Token func (a *Manager) RemoveToken(userID, token string) error { if token == "" { return errNoTokenProvided } if _, err := a.db.Exec(deleteTokenQuery, userID, token); err != nil { return err } return nil } // RemoveExpiredTokens deletes all expired tokens from the database func (a *Manager) RemoveExpiredTokens() error { if _, err := a.db.Exec(deleteExpiredTokensQuery, time.Now().Unix()); err != nil { return err } return nil } // PhoneNumbers returns all phone numbers for the user with the given user ID func (a *Manager) PhoneNumbers(userID string) ([]string, error) { rows, err := a.db.Query(selectPhoneNumbersQuery, userID) if err != nil { return nil, err } defer rows.Close() phoneNumbers := make([]string, 0) for { phoneNumber, err := a.readPhoneNumber(rows) if err == ErrPhoneNumberNotFound { break } else if err != nil { return nil, err } phoneNumbers = append(phoneNumbers, phoneNumber) } return phoneNumbers, nil } func (a *Manager) readPhoneNumber(rows *sql.Rows) (string, error) { var phoneNumber string if !rows.Next() { return "", ErrPhoneNumberNotFound } if err := rows.Scan(&phoneNumber); err != nil { return "", err } else if err := rows.Err(); err != nil { return "", err } return phoneNumber, nil } // AddPhoneNumber adds a phone number to the user with the given user ID func (a *Manager) AddPhoneNumber(userID string, phoneNumber string) error { if _, err := a.db.Exec(insertPhoneNumberQuery, userID, phoneNumber); err != nil { if sqliteErr, ok := err.(sqlite3.Error); ok && sqliteErr.ExtendedCode == sqlite3.ErrConstraintUnique { return ErrPhoneNumberExists } return err } return nil } // RemovePhoneNumber deletes a phone number from the user with the given user ID func (a *Manager) RemovePhoneNumber(userID string, phoneNumber string) error { _, err := a.db.Exec(deletePhoneNumberQuery, userID, phoneNumber) return err } // RemoveDeletedUsers deletes all users that have been marked deleted for func (a *Manager) RemoveDeletedUsers() error { if _, err := a.db.Exec(deleteUsersMarkedQuery, time.Now().Unix()); err != nil { return err } return nil } // ChangeSettings persists the user settings func (a *Manager) ChangeSettings(userID string, prefs *Prefs) error { b, err := json.Marshal(prefs) if err != nil { return err } if _, err := a.db.Exec(updateUserPrefsQuery, string(b), userID); err != nil { return err } return nil } // ResetStats resets all user stats in the user database. This touches all users. func (a *Manager) ResetStats() error { a.mu.Lock() // Includes database query to avoid races! defer a.mu.Unlock() if _, err := a.db.Exec(updateUserStatsResetAllQuery); err != nil { return err } a.statsQueue = make(map[string]*Stats) return nil } // EnqueueUserStats adds the user to a queue which writes out user stats (messages, emails, ..) in // batches at a regular interval func (a *Manager) EnqueueUserStats(userID string, stats *Stats) { a.mu.Lock() defer a.mu.Unlock() a.statsQueue[userID] = stats } // EnqueueTokenUpdate adds the token update to a queue which writes out token access times // in batches at a regular interval func (a *Manager) EnqueueTokenUpdate(tokenID string, update *TokenUpdate) { a.mu.Lock() defer a.mu.Unlock() a.tokenQueue[tokenID] = update } func (a *Manager) asyncQueueWriter(interval time.Duration) { ticker := time.NewTicker(interval) for range ticker.C { if err := a.writeUserStatsQueue(); err != nil { log.Tag(tag).Err(err).Warn("Writing user stats queue failed") } if err := a.writeTokenUpdateQueue(); err != nil { log.Tag(tag).Err(err).Warn("Writing token update queue failed") } } } func (a *Manager) writeUserStatsQueue() error { a.mu.Lock() if len(a.statsQueue) == 0 { a.mu.Unlock() log.Tag(tag).Trace("No user stats updates to commit") return nil } statsQueue := a.statsQueue a.statsQueue = make(map[string]*Stats) a.mu.Unlock() tx, err := a.db.Begin() if err != nil { return err } defer tx.Rollback() log.Tag(tag).Debug("Writing user stats queue for %d user(s)", len(statsQueue)) for userID, update := range statsQueue { log. Tag(tag). Fields(log.Context{ "user_id": userID, "messages_count": update.Messages, "emails_count": update.Emails, "calls_count": update.Calls, }). Trace("Updating stats for user %s", userID) if _, err := tx.Exec(updateUserStatsQuery, update.Messages, update.Emails, update.Calls, userID); err != nil { return err } } return tx.Commit() } func (a *Manager) writeTokenUpdateQueue() error { a.mu.Lock() if len(a.tokenQueue) == 0 { a.mu.Unlock() log.Tag(tag).Trace("No token updates to commit") return nil } tokenQueue := a.tokenQueue a.tokenQueue = make(map[string]*TokenUpdate) a.mu.Unlock() tx, err := a.db.Begin() if err != nil { return err } defer tx.Rollback() log.Tag(tag).Debug("Writing token update queue for %d token(s)", len(tokenQueue)) for tokenID, update := range tokenQueue { log.Tag(tag).Trace("Updating token %s with last access time %v", tokenID, update.LastAccess.Unix()) if _, err := tx.Exec(updateTokenLastAccessQuery, update.LastAccess.Unix(), update.LastOrigin.String(), tokenID); err != nil { return err } } return tx.Commit() } // Authorize returns nil if the given user has access to the given topic using the desired // permission. The user param may be nil to signal an anonymous user. func (a *Manager) Authorize(user *User, topic string, perm Permission) error { if user != nil && user.Role == RoleAdmin { return nil // Admin can do everything } username := Everyone if user != nil { username = user.Name } // Select the read/write permissions for this user/topic combo. // - The query may return two rows (one for everyone, and one for the user), but prioritizes the user. // - Furthermore, the query prioritizes more specific permissions (longer!) over more generic ones, e.g. "test*" > "*" // - It also prioritizes write permissions over read permissions rows, err := a.db.Query(selectTopicPermsQuery, Everyone, username, topic) if err != nil { return err } defer rows.Close() if !rows.Next() { return a.resolvePerms(a.defaultAccess, perm) } var read, write bool if err := rows.Scan(&read, &write); err != nil { return err } else if err := rows.Err(); err != nil { return err } return a.resolvePerms(NewPermission(read, write), perm) } func (a *Manager) resolvePerms(base, perm Permission) error { if perm == PermissionRead && base.IsRead() { return nil } else if perm == PermissionWrite && base.IsWrite() { return nil } return ErrUnauthorized } // AddUser adds a user with the given username, password and role func (a *Manager) AddUser(username, password string, role Role) error { if !AllowedUsername(username) || !AllowedRole(role) { return ErrInvalidArgument } hash, err := bcrypt.GenerateFromPassword([]byte(password), a.bcryptCost) if err != nil { return err } userID := util.RandomStringPrefix(userIDPrefix, userIDLength) syncTopic, now := util.RandomStringPrefix(syncTopicPrefix, syncTopicLength), time.Now().Unix() if _, err = a.db.Exec(insertUserQuery, userID, username, hash, role, syncTopic, now); err != nil { if sqliteErr, ok := err.(sqlite3.Error); ok && sqliteErr.ExtendedCode == sqlite3.ErrConstraintUnique { return ErrUserExists } return err } return nil } // RemoveUser deletes the user with the given username. The function returns nil on success, even // if the user did not exist in the first place. func (a *Manager) RemoveUser(username string) error { if !AllowedUsername(username) { return ErrInvalidArgument } // Rows in user_access, user_token, etc. are deleted via foreign keys if _, err := a.db.Exec(deleteUserQuery, username); err != nil { return err } return nil } // MarkUserRemoved sets the deleted flag on the user, and deletes all access tokens. This prevents // successful auth via Authenticate. A background process will delete the user at a later date. func (a *Manager) MarkUserRemoved(user *User) error { if !AllowedUsername(user.Name) { return ErrInvalidArgument } tx, err := a.db.Begin() if err != nil { return err } defer tx.Rollback() if _, err := tx.Exec(deleteUserAccessQuery, user.Name, user.Name); err != nil { return err } if _, err := tx.Exec(deleteAllTokenQuery, user.ID); err != nil { return err } if _, err := tx.Exec(updateUserDeletedQuery, time.Now().Add(userHardDeleteAfterDuration).Unix(), user.ID); err != nil { return err } return tx.Commit() } // Users returns a list of users. It always also returns the Everyone user ("*"). func (a *Manager) Users() ([]*User, error) { rows, err := a.db.Query(selectUsernamesQuery) if err != nil { return nil, err } defer rows.Close() usernames := make([]string, 0) for rows.Next() { var username string if err := rows.Scan(&username); err != nil { return nil, err } else if err := rows.Err(); err != nil { return nil, err } usernames = append(usernames, username) } rows.Close() users := make([]*User, 0) for _, username := range usernames { user, err := a.User(username) if err != nil { return nil, err } users = append(users, user) } return users, nil } // UsersCount returns the number of users in the databsae func (a *Manager) UsersCount() (int64, error) { rows, err := a.db.Query(selectUserCountQuery) if err != nil { return 0, err } defer rows.Close() if !rows.Next() { return 0, errNoRows } var count int64 if err := rows.Scan(&count); err != nil { return 0, err } return count, nil } // User returns the user with the given username if it exists, or ErrUserNotFound otherwise. // You may also pass Everyone to retrieve the anonymous user and its Grant list. func (a *Manager) User(username string) (*User, error) { rows, err := a.db.Query(selectUserByNameQuery, username) if err != nil { return nil, err } return a.readUser(rows) } // UserByID returns the user with the given ID if it exists, or ErrUserNotFound otherwise func (a *Manager) UserByID(id string) (*User, error) { rows, err := a.db.Query(selectUserByIDQuery, id) if err != nil { return nil, err } return a.readUser(rows) } // UserByStripeCustomer returns the user with the given Stripe customer ID if it exists, or ErrUserNotFound otherwise. func (a *Manager) UserByStripeCustomer(stripeCustomerID string) (*User, error) { rows, err := a.db.Query(selectUserByStripeCustomerIDQuery, stripeCustomerID) if err != nil { return nil, err } return a.readUser(rows) } func (a *Manager) userByToken(token string) (*User, error) { rows, err := a.db.Query(selectUserByTokenQuery, token, time.Now().Unix()) if err != nil { return nil, err } return a.readUser(rows) } func (a *Manager) readUser(rows *sql.Rows) (*User, error) { defer rows.Close() var id, username, hash, role, prefs, syncTopic string var stripeCustomerID, stripeSubscriptionID, stripeSubscriptionStatus, stripeSubscriptionInterval, stripeMonthlyPriceID, stripeYearlyPriceID, tierID, tierCode, tierName sql.NullString var messages, emails, calls int64 var messagesLimit, messagesExpiryDuration, emailsLimit, callsLimit, reservationsLimit, attachmentFileSizeLimit, attachmentTotalSizeLimit, attachmentExpiryDuration, attachmentBandwidthLimit, stripeSubscriptionPaidUntil, stripeSubscriptionCancelAt, deleted sql.NullInt64 if !rows.Next() { return nil, ErrUserNotFound } if err := rows.Scan(&id, &username, &hash, &role, &prefs, &syncTopic, &messages, &emails, &calls, &stripeCustomerID, &stripeSubscriptionID, &stripeSubscriptionStatus, &stripeSubscriptionInterval, &stripeSubscriptionPaidUntil, &stripeSubscriptionCancelAt, &deleted, &tierID, &tierCode, &tierName, &messagesLimit, &messagesExpiryDuration, &emailsLimit, &callsLimit, &reservationsLimit, &attachmentFileSizeLimit, &attachmentTotalSizeLimit, &attachmentExpiryDuration, &attachmentBandwidthLimit, &stripeMonthlyPriceID, &stripeYearlyPriceID); err != nil { return nil, err } else if err := rows.Err(); err != nil { return nil, err } user := &User{ ID: id, Name: username, Hash: hash, Role: Role(role), Prefs: &Prefs{}, SyncTopic: syncTopic, Stats: &Stats{ Messages: messages, Emails: emails, Calls: calls, }, Billing: &Billing{ StripeCustomerID: stripeCustomerID.String, // May be empty StripeSubscriptionID: stripeSubscriptionID.String, // May be empty StripeSubscriptionStatus: stripe.SubscriptionStatus(stripeSubscriptionStatus.String), // May be empty StripeSubscriptionInterval: stripe.PriceRecurringInterval(stripeSubscriptionInterval.String), // May be empty StripeSubscriptionPaidUntil: time.Unix(stripeSubscriptionPaidUntil.Int64, 0), // May be zero StripeSubscriptionCancelAt: time.Unix(stripeSubscriptionCancelAt.Int64, 0), // May be zero }, Deleted: deleted.Valid, } if err := json.Unmarshal([]byte(prefs), user.Prefs); err != nil { return nil, err } if tierCode.Valid { // See readTier() when this is changed! user.Tier = &Tier{ ID: tierID.String, Code: tierCode.String, Name: tierName.String, MessageLimit: messagesLimit.Int64, MessageExpiryDuration: time.Duration(messagesExpiryDuration.Int64) * time.Second, EmailLimit: emailsLimit.Int64, CallLimit: callsLimit.Int64, ReservationLimit: reservationsLimit.Int64, AttachmentFileSizeLimit: attachmentFileSizeLimit.Int64, AttachmentTotalSizeLimit: attachmentTotalSizeLimit.Int64, AttachmentExpiryDuration: time.Duration(attachmentExpiryDuration.Int64) * time.Second, AttachmentBandwidthLimit: attachmentBandwidthLimit.Int64, StripeMonthlyPriceID: stripeMonthlyPriceID.String, // May be empty StripeYearlyPriceID: stripeYearlyPriceID.String, // May be empty } } return user, nil } // AllGrants returns all user-specific access control entries, mapped to their respective user IDs func (a *Manager) AllGrants() (map[string][]Grant, error) { rows, err := a.db.Query(selectUserAllAccessQuery) if err != nil { return nil, err } defer rows.Close() grants := make(map[string][]Grant, 0) for rows.Next() { var userID, topic string var read, write bool if err := rows.Scan(&userID, &topic, &read, &write); err != nil { return nil, err } else if err := rows.Err(); err != nil { return nil, err } if _, ok := grants[userID]; !ok { grants[userID] = make([]Grant, 0) } grants[userID] = append(grants[userID], Grant{ TopicPattern: fromSQLWildcard(topic), Allow: NewPermission(read, write), }) } return grants, nil } // Grants returns all user-specific access control entries func (a *Manager) Grants(username string) ([]Grant, error) { rows, err := a.db.Query(selectUserAccessQuery, username) if err != nil { return nil, err } defer rows.Close() grants := make([]Grant, 0) for rows.Next() { var topic string var read, write bool if err := rows.Scan(&topic, &read, &write); err != nil { return nil, err } else if err := rows.Err(); err != nil { return nil, err } grants = append(grants, Grant{ TopicPattern: fromSQLWildcard(topic), Allow: NewPermission(read, write), }) } return grants, nil } // Reservations returns all user-owned topics, and the associated everyone-access func (a *Manager) Reservations(username string) ([]Reservation, error) { rows, err := a.db.Query(selectUserReservationsQuery, Everyone, username) if err != nil { return nil, err } defer rows.Close() reservations := make([]Reservation, 0) for rows.Next() { var topic string var ownerRead, ownerWrite bool var everyoneRead, everyoneWrite sql.NullBool if err := rows.Scan(&topic, &ownerRead, &ownerWrite, &everyoneRead, &everyoneWrite); err != nil { return nil, err } else if err := rows.Err(); err != nil { return nil, err } reservations = append(reservations, Reservation{ Topic: unescapeUnderscore(topic), Owner: NewPermission(ownerRead, ownerWrite), Everyone: NewPermission(everyoneRead.Bool, everyoneWrite.Bool), // false if null }) } return reservations, nil } // HasReservation returns true if the given topic access is owned by the user func (a *Manager) HasReservation(username, topic string) (bool, error) { rows, err := a.db.Query(selectUserHasReservationQuery, username, escapeUnderscore(topic)) if err != nil { return false, err } defer rows.Close() if !rows.Next() { return false, errNoRows } var count int64 if err := rows.Scan(&count); err != nil { return false, err } return count > 0, nil } // ReservationsCount returns the number of reservations owned by this user func (a *Manager) ReservationsCount(username string) (int64, error) { rows, err := a.db.Query(selectUserReservationsCountQuery, username) if err != nil { return 0, err } defer rows.Close() if !rows.Next() { return 0, errNoRows } var count int64 if err := rows.Scan(&count); err != nil { return 0, err } return count, nil } // ReservationOwner returns user ID of the user that owns this topic, or an // empty string if it's not owned by anyone func (a *Manager) ReservationOwner(topic string) (string, error) { rows, err := a.db.Query(selectUserReservationsOwnerQuery, escapeUnderscore(topic)) if err != nil { return "", err } defer rows.Close() if !rows.Next() { return "", nil } var ownerUserID string if err := rows.Scan(&ownerUserID); err != nil { return "", err } return ownerUserID, nil } // ChangePassword changes a user's password func (a *Manager) ChangePassword(username, password string) error { hash, err := bcrypt.GenerateFromPassword([]byte(password), a.bcryptCost) if err != nil { return err } if _, err := a.db.Exec(updateUserPassQuery, hash, username); err != nil { return err } return nil } // ChangeRole changes a user's role. When a role is changed from RoleUser to RoleAdmin, // all existing access control entries (Grant) are removed, since they are no longer needed. func (a *Manager) ChangeRole(username string, role Role) error { if !AllowedUsername(username) || !AllowedRole(role) { return ErrInvalidArgument } if _, err := a.db.Exec(updateUserRoleQuery, string(role), username); err != nil { return err } if role == RoleAdmin { if _, err := a.db.Exec(deleteUserAccessQuery, username, username); err != nil { return err } } return nil } // ChangeTier changes a user's tier using the tier code. This function does not delete reservations, messages, // or attachments, even if the new tier has lower limits in this regard. That has to be done elsewhere. func (a *Manager) ChangeTier(username, tier string) error { if !AllowedUsername(username) { return ErrInvalidArgument } t, err := a.Tier(tier) if err != nil { return err } else if err := a.checkReservationsLimit(username, t.ReservationLimit); err != nil { return err } if _, err := a.db.Exec(updateUserTierQuery, tier, username); err != nil { return err } return nil } // ResetTier removes the tier from the given user func (a *Manager) ResetTier(username string) error { if !AllowedUsername(username) && username != Everyone && username != "" { return ErrInvalidArgument } else if err := a.checkReservationsLimit(username, 0); err != nil { return err } _, err := a.db.Exec(deleteUserTierQuery, username) return err } func (a *Manager) checkReservationsLimit(username string, reservationsLimit int64) error { u, err := a.User(username) if err != nil { return err } if u.Tier != nil && reservationsLimit < u.Tier.ReservationLimit { reservations, err := a.Reservations(username) if err != nil { return err } else if int64(len(reservations)) > reservationsLimit { return ErrTooManyReservations } } return nil } // AllowReservation tests if a user may create an access control entry for the given topic. // If there are any ACL entries that are not owned by the user, an error is returned. func (a *Manager) AllowReservation(username string, topic string) error { if (!AllowedUsername(username) && username != Everyone) || !AllowedTopic(topic) { return ErrInvalidArgument } rows, err := a.db.Query(selectOtherAccessCountQuery, escapeUnderscore(topic), escapeUnderscore(topic), username) if err != nil { return err } defer rows.Close() if !rows.Next() { return errNoRows } var otherCount int if err := rows.Scan(&otherCount); err != nil { return err } if otherCount > 0 { return errTopicOwnedByOthers } return nil } // AllowAccess adds or updates an entry in th access control list for a specific user. It controls // read/write access to a topic. The parameter topicPattern may include wildcards (*). The ACL entry // owner may either be a user (username), or the system (empty). func (a *Manager) AllowAccess(username string, topicPattern string, permission Permission) error { if !AllowedUsername(username) && username != Everyone { return ErrInvalidArgument } else if !AllowedTopicPattern(topicPattern) { return ErrInvalidArgument } owner := "" if _, err := a.db.Exec(upsertUserAccessQuery, username, toSQLWildcard(topicPattern), permission.IsRead(), permission.IsWrite(), owner, owner); err != nil { return err } return nil } // ResetAccess removes an access control list entry for a specific username/topic, or (if topic is // empty) for an entire user. The parameter topicPattern may include wildcards (*). func (a *Manager) ResetAccess(username string, topicPattern string) error { if !AllowedUsername(username) && username != Everyone && username != "" { return ErrInvalidArgument } else if !AllowedTopicPattern(topicPattern) && topicPattern != "" { return ErrInvalidArgument } if username == "" && topicPattern == "" { _, err := a.db.Exec(deleteAllAccessQuery, username) return err } else if topicPattern == "" { _, err := a.db.Exec(deleteUserAccessQuery, username, username) return err } _, err := a.db.Exec(deleteTopicAccessQuery, username, username, toSQLWildcard(topicPattern)) return err } // AddReservation creates two access control entries for the given topic: one with full read/write access for the // given user, and one for Everyone with the permission passed as everyone. The user also owns the entries, and // can modify or delete them. func (a *Manager) AddReservation(username string, topic string, everyone Permission) error { if !AllowedUsername(username) || username == Everyone || !AllowedTopic(topic) { return ErrInvalidArgument } tx, err := a.db.Begin() if err != nil { return err } defer tx.Rollback() if _, err := tx.Exec(upsertUserAccessQuery, username, escapeUnderscore(topic), true, true, username, username); err != nil { return err } if _, err := tx.Exec(upsertUserAccessQuery, Everyone, escapeUnderscore(topic), everyone.IsRead(), everyone.IsWrite(), username, username); err != nil { return err } return tx.Commit() } // RemoveReservations deletes the access control entries associated with the given username/topic, as // well as all entries with Everyone/topic. This is the counterpart for AddReservation. func (a *Manager) RemoveReservations(username string, topics ...string) error { if !AllowedUsername(username) || username == Everyone || len(topics) == 0 { return ErrInvalidArgument } for _, topic := range topics { if !AllowedTopic(topic) { return ErrInvalidArgument } } tx, err := a.db.Begin() if err != nil { return err } defer tx.Rollback() for _, topic := range topics { if _, err := tx.Exec(deleteTopicAccessQuery, username, username, escapeUnderscore(topic)); err != nil { return err } if _, err := tx.Exec(deleteTopicAccessQuery, Everyone, Everyone, escapeUnderscore(topic)); err != nil { return err } } return tx.Commit() } // DefaultAccess returns the default read/write access if no access control entry matches func (a *Manager) DefaultAccess() Permission { return a.defaultAccess } // AddTier creates a new tier in the database func (a *Manager) AddTier(tier *Tier) error { if tier.ID == "" { tier.ID = util.RandomStringPrefix(tierIDPrefix, tierIDLength) } if _, err := a.db.Exec(insertTierQuery, tier.ID, tier.Code, tier.Name, tier.MessageLimit, int64(tier.MessageExpiryDuration.Seconds()), tier.EmailLimit, tier.CallLimit, tier.ReservationLimit, tier.AttachmentFileSizeLimit, tier.AttachmentTotalSizeLimit, int64(tier.AttachmentExpiryDuration.Seconds()), tier.AttachmentBandwidthLimit, nullString(tier.StripeMonthlyPriceID), nullString(tier.StripeYearlyPriceID)); err != nil { return err } return nil } // UpdateTier updates a tier's properties in the database func (a *Manager) UpdateTier(tier *Tier) error { if _, err := a.db.Exec(updateTierQuery, tier.Name, tier.MessageLimit, int64(tier.MessageExpiryDuration.Seconds()), tier.EmailLimit, tier.CallLimit, tier.ReservationLimit, tier.AttachmentFileSizeLimit, tier.AttachmentTotalSizeLimit, int64(tier.AttachmentExpiryDuration.Seconds()), tier.AttachmentBandwidthLimit, nullString(tier.StripeMonthlyPriceID), nullString(tier.StripeYearlyPriceID), tier.Code); err != nil { return err } return nil } // RemoveTier deletes the tier with the given code func (a *Manager) RemoveTier(code string) error { if !AllowedTier(code) { return ErrInvalidArgument } // This fails if any user has this tier if _, err := a.db.Exec(deleteTierQuery, code); err != nil { return err } return nil } // ChangeBilling updates a user's billing fields, namely the Stripe customer ID, and subscription information func (a *Manager) ChangeBilling(username string, billing *Billing) error { if _, err := a.db.Exec(updateBillingQuery, nullString(billing.StripeCustomerID), nullString(billing.StripeSubscriptionID), nullString(string(billing.StripeSubscriptionStatus)), nullString(string(billing.StripeSubscriptionInterval)), nullInt64(billing.StripeSubscriptionPaidUntil.Unix()), nullInt64(billing.StripeSubscriptionCancelAt.Unix()), username); err != nil { return err } return nil } // Tiers returns a list of all Tier structs func (a *Manager) Tiers() ([]*Tier, error) { rows, err := a.db.Query(selectTiersQuery) if err != nil { return nil, err } defer rows.Close() tiers := make([]*Tier, 0) for { tier, err := a.readTier(rows) if err == ErrTierNotFound { break } else if err != nil { return nil, err } tiers = append(tiers, tier) } return tiers, nil } // Tier returns a Tier based on the code, or ErrTierNotFound if it does not exist func (a *Manager) Tier(code string) (*Tier, error) { rows, err := a.db.Query(selectTierByCodeQuery, code) if err != nil { return nil, err } defer rows.Close() return a.readTier(rows) } // TierByStripePrice returns a Tier based on the Stripe price ID, or ErrTierNotFound if it does not exist func (a *Manager) TierByStripePrice(priceID string) (*Tier, error) { rows, err := a.db.Query(selectTierByPriceIDQuery, priceID, priceID) if err != nil { return nil, err } defer rows.Close() return a.readTier(rows) } func (a *Manager) readTier(rows *sql.Rows) (*Tier, error) { var id, code, name string var stripeMonthlyPriceID, stripeYearlyPriceID sql.NullString var messagesLimit, messagesExpiryDuration, emailsLimit, callsLimit, reservationsLimit, attachmentFileSizeLimit, attachmentTotalSizeLimit, attachmentExpiryDuration, attachmentBandwidthLimit sql.NullInt64 if !rows.Next() { return nil, ErrTierNotFound } if err := rows.Scan(&id, &code, &name, &messagesLimit, &messagesExpiryDuration, &emailsLimit, &callsLimit, &reservationsLimit, &attachmentFileSizeLimit, &attachmentTotalSizeLimit, &attachmentExpiryDuration, &attachmentBandwidthLimit, &stripeMonthlyPriceID, &stripeYearlyPriceID); err != nil { return nil, err } else if err := rows.Err(); err != nil { return nil, err } // When changed, note readUser() as well return &Tier{ ID: id, Code: code, Name: name, MessageLimit: messagesLimit.Int64, MessageExpiryDuration: time.Duration(messagesExpiryDuration.Int64) * time.Second, EmailLimit: emailsLimit.Int64, CallLimit: callsLimit.Int64, ReservationLimit: reservationsLimit.Int64, AttachmentFileSizeLimit: attachmentFileSizeLimit.Int64, AttachmentTotalSizeLimit: attachmentTotalSizeLimit.Int64, AttachmentExpiryDuration: time.Duration(attachmentExpiryDuration.Int64) * time.Second, AttachmentBandwidthLimit: attachmentBandwidthLimit.Int64, StripeMonthlyPriceID: stripeMonthlyPriceID.String, // May be empty StripeYearlyPriceID: stripeYearlyPriceID.String, // May be empty }, nil } // Close closes the underlying database func (a *Manager) Close() error { return a.db.Close() } // toSQLWildcard converts a wildcard string to a SQL wildcard string. It only allows '*' as wildcards, // and escapes '_', assuming '\' as escape character. func toSQLWildcard(s string) string { return escapeUnderscore(strings.ReplaceAll(s, "*", "%")) } // fromSQLWildcard converts a SQL wildcard string to a wildcard string. It converts '%' to '*', // and removes the '\_' escape character. func fromSQLWildcard(s string) string { return strings.ReplaceAll(unescapeUnderscore(s), "%", "*") } func escapeUnderscore(s string) string { return strings.ReplaceAll(s, "_", "\\_") } func unescapeUnderscore(s string) string { return strings.ReplaceAll(s, "\\_", "_") } func runStartupQueries(db *sql.DB, startupQueries string) error { if _, err := db.Exec(startupQueries); err != nil { return err } if _, err := db.Exec(builtinStartupQueries); err != nil { return err } return nil } func setupDB(db *sql.DB) error { // If 'schemaVersion' table does not exist, this must be a new database rowsSV, err := db.Query(selectSchemaVersionQuery) if err != nil { return setupNewDB(db) } defer rowsSV.Close() // If 'schemaVersion' table exists, read version and potentially upgrade schemaVersion := 0 if !rowsSV.Next() { return errors.New("cannot determine schema version: database file may be corrupt") } if err := rowsSV.Scan(&schemaVersion); err != nil { return err } rowsSV.Close() // Do migrations if schemaVersion == currentSchemaVersion { return nil } else if schemaVersion > currentSchemaVersion { return fmt.Errorf("unexpected schema version: version %d is higher than current version %d", schemaVersion, currentSchemaVersion) } for i := schemaVersion; i < currentSchemaVersion; i++ { fn, ok := migrations[i] if !ok { return fmt.Errorf("cannot find migration step from schema version %d to %d", i, i+1) } else if err := fn(db); err != nil { return err } } return nil } func setupNewDB(db *sql.DB) error { if _, err := db.Exec(createTablesQueries); err != nil { return err } if _, err := db.Exec(insertSchemaVersion, currentSchemaVersion); err != nil { return err } return nil } func migrateFrom1(db *sql.DB) error { log.Tag(tag).Info("Migrating user database schema: from 1 to 2") tx, err := db.Begin() if err != nil { return err } defer tx.Rollback() // Rename user -> user_old, and create new tables if _, err := tx.Exec(migrate1To2CreateTablesQueries); err != nil { return err } // Insert users from user_old into new user table, with ID and sync_topic rows, err := tx.Query(migrate1To2SelectAllOldUsernamesNoTx) if err != nil { return err } defer rows.Close() usernames := make([]string, 0) for rows.Next() { var username string if err := rows.Scan(&username); err != nil { return err } usernames = append(usernames, username) } if err := rows.Close(); err != nil { return err } for _, username := range usernames { userID := util.RandomStringPrefix(userIDPrefix, userIDLength) syncTopic := util.RandomStringPrefix(syncTopicPrefix, syncTopicLength) if _, err := tx.Exec(migrate1To2InsertUserNoTx, userID, syncTopic, username); err != nil { return err } } // Migrate old "access" table to "user_access" and drop "access" and "user_old" if _, err := tx.Exec(migrate1To2InsertFromOldTablesAndDropNoTx); err != nil { return err } if _, err := tx.Exec(updateSchemaVersion, 2); err != nil { return err } if err := tx.Commit(); err != nil { return err } return nil } func migrateFrom2(db *sql.DB) error { log.Tag(tag).Info("Migrating user database schema: from 2 to 3") tx, err := db.Begin() if err != nil { return err } defer tx.Rollback() if _, err := tx.Exec(migrate2To3UpdateQueries); err != nil { return err } if _, err := tx.Exec(updateSchemaVersion, 3); err != nil { return err } return tx.Commit() } func migrateFrom3(db *sql.DB) error { log.Tag(tag).Info("Migrating user database schema: from 3 to 4") tx, err := db.Begin() if err != nil { return err } defer tx.Rollback() if _, err := tx.Exec(migrate3To4UpdateQueries); err != nil { return err } if _, err := tx.Exec(updateSchemaVersion, 4); err != nil { return err } return tx.Commit() } func migrateFrom4(db *sql.DB) error { log.Tag(tag).Info("Migrating user database schema: from 4 to 5") tx, err := db.Begin() if err != nil { return err } defer tx.Rollback() if _, err := tx.Exec(migrate4To5UpdateQueries); err != nil { return err } if _, err := tx.Exec(updateSchemaVersion, 5); err != nil { return err } return tx.Commit() } func nullString(s string) sql.NullString { if s == "" { return sql.NullString{} } return sql.NullString{String: s, Valid: true} } func nullInt64(v int64) sql.NullInt64 { if v == 0 { return sql.NullInt64{} } return sql.NullInt64{Int64: v, Valid: true} } ntfy-2.11.0/user/manager_test.go000066400000000000000000001354701462047176100165530ustar00rootroot00000000000000package user import ( "database/sql" "fmt" "github.com/stretchr/testify/require" "github.com/stripe/stripe-go/v74" "golang.org/x/crypto/bcrypt" "heckel.io/ntfy/v2/util" "net/netip" "path/filepath" "strings" "testing" "time" ) const minBcryptTimingMillis = int64(50) // Ideally should be >100ms, but this should also run on a Raspberry Pi without massive resources func TestManager_FullScenario_Default_DenyAll(t *testing.T) { a := newTestManagerFromFile(t, filepath.Join(t.TempDir(), "user.db"), "", PermissionDenyAll, DefaultUserPasswordBcryptCost, DefaultUserStatsQueueWriterInterval) require.Nil(t, a.AddUser("phil", "phil", RoleAdmin)) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) require.Nil(t, a.AddUser("john", "john", RoleUser)) require.Nil(t, a.AllowAccess("ben", "mytopic", PermissionReadWrite)) require.Nil(t, a.AllowAccess("ben", "readme", PermissionRead)) require.Nil(t, a.AllowAccess("ben", "writeme", PermissionWrite)) require.Nil(t, a.AllowAccess("ben", "everyonewrite", PermissionDenyAll)) // How unfair! require.Nil(t, a.AllowAccess("john", "*", PermissionRead)) require.Nil(t, a.AllowAccess("john", "mytopic*", PermissionReadWrite)) require.Nil(t, a.AllowAccess("john", "mytopic_ro*", PermissionRead)) require.Nil(t, a.AllowAccess("john", "mytopic_deny*", PermissionDenyAll)) require.Nil(t, a.AllowAccess(Everyone, "announcements", PermissionRead)) require.Nil(t, a.AllowAccess(Everyone, "everyonewrite", PermissionReadWrite)) require.Nil(t, a.AllowAccess(Everyone, "up*", PermissionWrite)) // Everyone can write to /up* phil, err := a.Authenticate("phil", "phil") require.Nil(t, err) require.Equal(t, "phil", phil.Name) require.True(t, strings.HasPrefix(phil.Hash, "$2a$10$")) require.Equal(t, RoleAdmin, phil.Role) philGrants, err := a.Grants("phil") require.Nil(t, err) require.Equal(t, []Grant{}, philGrants) ben, err := a.Authenticate("ben", "ben") require.Nil(t, err) require.Equal(t, "ben", ben.Name) require.True(t, strings.HasPrefix(ben.Hash, "$2a$10$")) require.Equal(t, RoleUser, ben.Role) benGrants, err := a.Grants("ben") require.Nil(t, err) require.Equal(t, []Grant{ {"everyonewrite", PermissionDenyAll}, {"mytopic", PermissionReadWrite}, {"writeme", PermissionWrite}, {"readme", PermissionRead}, }, benGrants) john, err := a.Authenticate("john", "john") require.Nil(t, err) require.Equal(t, "john", john.Name) require.True(t, strings.HasPrefix(john.Hash, "$2a$10$")) require.Equal(t, RoleUser, john.Role) johnGrants, err := a.Grants("john") require.Nil(t, err) require.Equal(t, []Grant{ {"mytopic_deny*", PermissionDenyAll}, {"mytopic_ro*", PermissionRead}, {"mytopic*", PermissionReadWrite}, {"*", PermissionRead}, }, johnGrants) notben, err := a.Authenticate("ben", "this is wrong") require.Nil(t, notben) require.Equal(t, ErrUnauthenticated, err) // Admin can do everything require.Nil(t, a.Authorize(phil, "sometopic", PermissionWrite)) require.Nil(t, a.Authorize(phil, "mytopic", PermissionRead)) require.Nil(t, a.Authorize(phil, "readme", PermissionWrite)) require.Nil(t, a.Authorize(phil, "writeme", PermissionWrite)) require.Nil(t, a.Authorize(phil, "announcements", PermissionWrite)) require.Nil(t, a.Authorize(phil, "everyonewrite", PermissionWrite)) // User cannot do everything require.Nil(t, a.Authorize(ben, "mytopic", PermissionWrite)) require.Nil(t, a.Authorize(ben, "mytopic", PermissionRead)) require.Nil(t, a.Authorize(ben, "readme", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(ben, "readme", PermissionWrite)) require.Equal(t, ErrUnauthorized, a.Authorize(ben, "writeme", PermissionRead)) require.Nil(t, a.Authorize(ben, "writeme", PermissionWrite)) require.Nil(t, a.Authorize(ben, "writeme", PermissionWrite)) require.Equal(t, ErrUnauthorized, a.Authorize(ben, "everyonewrite", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(ben, "everyonewrite", PermissionWrite)) require.Nil(t, a.Authorize(ben, "announcements", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(ben, "announcements", PermissionWrite)) // User john should have // "deny" to mytopic_deny*, // "ro" to mytopic_ro*, // "rw" to mytopic*, // "ro" to the rest require.Equal(t, ErrUnauthorized, a.Authorize(john, "mytopic_deny_case", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(john, "mytopic_deny_case", PermissionWrite)) require.Nil(t, a.Authorize(john, "mytopic_ro_test_case", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(john, "mytopic_ro_test_case", PermissionWrite)) require.Nil(t, a.Authorize(john, "mytopic_case1", PermissionRead)) require.Nil(t, a.Authorize(john, "mytopic_case1", PermissionWrite)) require.Nil(t, a.Authorize(john, "readme", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(john, "writeme", PermissionWrite)) // Everyone else can do barely anything require.Equal(t, ErrUnauthorized, a.Authorize(nil, "sometopicnotinthelist", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "sometopicnotinthelist", PermissionWrite)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "mytopic", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "mytopic", PermissionWrite)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "readme", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "readme", PermissionWrite)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "writeme", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "writeme", PermissionWrite)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "announcements", PermissionWrite)) require.Nil(t, a.Authorize(nil, "announcements", PermissionRead)) require.Nil(t, a.Authorize(nil, "everyonewrite", PermissionRead)) require.Nil(t, a.Authorize(nil, "everyonewrite", PermissionWrite)) require.Nil(t, a.Authorize(nil, "up1234", PermissionWrite)) // Wildcard permission require.Nil(t, a.Authorize(nil, "up5678", PermissionWrite)) } func TestManager_Access_Order_LengthWriteRead(t *testing.T) { // This test validates issue #914 / #917, i.e. that write permissions are prioritized over read permissions, // and longer ACL rules are prioritized as well. a := newTestManagerFromFile(t, filepath.Join(t.TempDir(), "user.db"), "", PermissionDenyAll, DefaultUserPasswordBcryptCost, DefaultUserStatsQueueWriterInterval) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) require.Nil(t, a.AllowAccess("ben", "test*", PermissionReadWrite)) require.Nil(t, a.AllowAccess("ben", "*", PermissionRead)) ben, err := a.Authenticate("ben", "ben") require.Nil(t, err) require.Nil(t, a.Authorize(ben, "any-topic-can-be-read", PermissionRead)) require.Nil(t, a.Authorize(ben, "this-too", PermissionRead)) require.Nil(t, a.Authorize(ben, "test123", PermissionWrite)) } func TestManager_AddUser_Invalid(t *testing.T) { a := newTestManager(t, PermissionDenyAll) require.Equal(t, ErrInvalidArgument, a.AddUser(" invalid ", "pass", RoleAdmin)) require.Equal(t, ErrInvalidArgument, a.AddUser("validuser", "pass", "invalid-role")) } func TestManager_AddUser_Timing(t *testing.T) { a := newTestManagerFromFile(t, filepath.Join(t.TempDir(), "user.db"), "", PermissionDenyAll, DefaultUserPasswordBcryptCost, DefaultUserStatsQueueWriterInterval) start := time.Now().UnixMilli() require.Nil(t, a.AddUser("user", "pass", RoleAdmin)) require.GreaterOrEqual(t, time.Now().UnixMilli()-start, minBcryptTimingMillis) } func TestManager_AddUser_And_Query(t *testing.T) { a := newTestManagerFromFile(t, filepath.Join(t.TempDir(), "user.db"), "", PermissionDenyAll, DefaultUserPasswordBcryptCost, DefaultUserStatsQueueWriterInterval) require.Nil(t, a.AddUser("user", "pass", RoleAdmin)) require.Nil(t, a.ChangeBilling("user", &Billing{ StripeCustomerID: "acct_123", StripeSubscriptionID: "sub_123", StripeSubscriptionStatus: stripe.SubscriptionStatusActive, StripeSubscriptionInterval: stripe.PriceRecurringIntervalMonth, StripeSubscriptionPaidUntil: time.Now().Add(time.Hour), StripeSubscriptionCancelAt: time.Unix(0, 0), })) u, err := a.User("user") require.Nil(t, err) require.Equal(t, "user", u.Name) u2, err := a.UserByID(u.ID) require.Nil(t, err) require.Equal(t, u.Name, u2.Name) u3, err := a.UserByStripeCustomer("acct_123") require.Nil(t, err) require.Equal(t, u.ID, u3.ID) } func TestManager_MarkUserRemoved_RemoveDeletedUsers(t *testing.T) { a := newTestManager(t, PermissionDenyAll) // Create user, add reservations and token require.Nil(t, a.AddUser("user", "pass", RoleAdmin)) require.Nil(t, a.AddReservation("user", "mytopic", PermissionRead)) u, err := a.User("user") require.Nil(t, err) require.False(t, u.Deleted) token, err := a.CreateToken(u.ID, "", time.Now().Add(time.Hour), netip.IPv4Unspecified()) require.Nil(t, err) u, err = a.Authenticate("user", "pass") require.Nil(t, err) _, err = a.AuthenticateToken(token.Value) require.Nil(t, err) reservations, err := a.Reservations("user") require.Nil(t, err) require.Equal(t, 1, len(reservations)) // Mark deleted: cannot auth anymore, and all reservations are gone require.Nil(t, a.MarkUserRemoved(u)) _, err = a.Authenticate("user", "pass") require.Equal(t, ErrUnauthenticated, err) _, err = a.AuthenticateToken(token.Value) require.Equal(t, ErrUnauthenticated, err) reservations, err = a.Reservations("user") require.Nil(t, err) require.Equal(t, 0, len(reservations)) // Make sure user is still there u, err = a.User("user") require.Nil(t, err) require.True(t, u.Deleted) _, err = a.db.Exec("UPDATE user SET deleted = ? WHERE id = ?", time.Now().Add(-1*(userHardDeleteAfterDuration+time.Hour)).Unix(), u.ID) require.Nil(t, err) require.Nil(t, a.RemoveDeletedUsers()) _, err = a.User("user") require.Equal(t, ErrUserNotFound, err) } func TestManager_CreateToken_Only_Lower(t *testing.T) { a := newTestManager(t, PermissionDenyAll) // Create user, add reservations and token require.Nil(t, a.AddUser("user", "pass", RoleAdmin)) u, err := a.User("user") require.Nil(t, err) token, err := a.CreateToken(u.ID, "", time.Now().Add(time.Hour), netip.IPv4Unspecified()) require.Nil(t, err) require.Equal(t, token.Value, strings.ToLower(token.Value)) } func TestManager_UserManagement(t *testing.T) { a := newTestManager(t, PermissionDenyAll) require.Nil(t, a.AddUser("phil", "phil", RoleAdmin)) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) require.Nil(t, a.AllowAccess("ben", "mytopic", PermissionReadWrite)) require.Nil(t, a.AllowAccess("ben", "readme", PermissionRead)) require.Nil(t, a.AllowAccess("ben", "writeme", PermissionWrite)) require.Nil(t, a.AllowAccess("ben", "everyonewrite", PermissionDenyAll)) // How unfair! require.Nil(t, a.AllowAccess(Everyone, "announcements", PermissionRead)) require.Nil(t, a.AllowAccess(Everyone, "everyonewrite", PermissionReadWrite)) // Query user details phil, err := a.User("phil") require.Nil(t, err) require.Equal(t, "phil", phil.Name) require.True(t, strings.HasPrefix(phil.Hash, "$2a$04$")) // Min cost for testing require.Equal(t, RoleAdmin, phil.Role) philGrants, err := a.Grants("phil") require.Nil(t, err) require.Equal(t, []Grant{}, philGrants) ben, err := a.User("ben") require.Nil(t, err) require.Equal(t, "ben", ben.Name) require.True(t, strings.HasPrefix(ben.Hash, "$2a$04$")) // Min cost for testing require.Equal(t, RoleUser, ben.Role) benGrants, err := a.Grants("ben") require.Nil(t, err) require.Equal(t, []Grant{ {"everyonewrite", PermissionDenyAll}, {"mytopic", PermissionReadWrite}, {"writeme", PermissionWrite}, {"readme", PermissionRead}, }, benGrants) everyone, err := a.User(Everyone) require.Nil(t, err) require.Equal(t, "*", everyone.Name) require.Equal(t, "", everyone.Hash) require.Equal(t, RoleAnonymous, everyone.Role) everyoneGrants, err := a.Grants(Everyone) require.Nil(t, err) require.Equal(t, []Grant{ {"everyonewrite", PermissionReadWrite}, {"announcements", PermissionRead}, }, everyoneGrants) // Ben: Before revoking require.Nil(t, a.AllowAccess("ben", "mytopic", PermissionReadWrite)) // Overwrite! require.Nil(t, a.AllowAccess("ben", "readme", PermissionRead)) require.Nil(t, a.AllowAccess("ben", "writeme", PermissionWrite)) require.Nil(t, a.Authorize(ben, "mytopic", PermissionRead)) require.Nil(t, a.Authorize(ben, "mytopic", PermissionWrite)) require.Nil(t, a.Authorize(ben, "readme", PermissionRead)) require.Nil(t, a.Authorize(ben, "writeme", PermissionWrite)) // Revoke access for "ben" to "mytopic", then check again require.Nil(t, a.ResetAccess("ben", "mytopic")) require.Equal(t, ErrUnauthorized, a.Authorize(ben, "mytopic", PermissionWrite)) // Revoked require.Equal(t, ErrUnauthorized, a.Authorize(ben, "mytopic", PermissionRead)) // Revoked require.Nil(t, a.Authorize(ben, "readme", PermissionRead)) // Unchanged require.Nil(t, a.Authorize(ben, "writeme", PermissionWrite)) // Unchanged // Revoke rest of the access require.Nil(t, a.ResetAccess("ben", "")) require.Equal(t, ErrUnauthorized, a.Authorize(ben, "readme", PermissionRead)) // Revoked require.Equal(t, ErrUnauthorized, a.Authorize(ben, "wrtiteme", PermissionWrite)) // Revoked // User list users, err := a.Users() require.Nil(t, err) require.Equal(t, 3, len(users)) require.Equal(t, "phil", users[0].Name) require.Equal(t, "ben", users[1].Name) require.Equal(t, "*", users[2].Name) // Remove user require.Nil(t, a.RemoveUser("ben")) _, err = a.User("ben") require.Equal(t, ErrUserNotFound, err) users, err = a.Users() require.Nil(t, err) require.Equal(t, 2, len(users)) require.Equal(t, "phil", users[0].Name) require.Equal(t, "*", users[1].Name) } func TestManager_ChangePassword(t *testing.T) { a := newTestManager(t, PermissionDenyAll) require.Nil(t, a.AddUser("phil", "phil", RoleAdmin)) _, err := a.Authenticate("phil", "phil") require.Nil(t, err) require.Nil(t, a.ChangePassword("phil", "newpass")) _, err = a.Authenticate("phil", "phil") require.Equal(t, ErrUnauthenticated, err) _, err = a.Authenticate("phil", "newpass") require.Nil(t, err) } func TestManager_ChangeRole(t *testing.T) { a := newTestManager(t, PermissionDenyAll) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) require.Nil(t, a.AllowAccess("ben", "mytopic", PermissionReadWrite)) require.Nil(t, a.AllowAccess("ben", "readme", PermissionRead)) ben, err := a.User("ben") require.Nil(t, err) require.Equal(t, RoleUser, ben.Role) benGrants, err := a.Grants("ben") require.Nil(t, err) require.Equal(t, 2, len(benGrants)) require.Nil(t, a.ChangeRole("ben", RoleAdmin)) ben, err = a.User("ben") require.Nil(t, err) require.Equal(t, RoleAdmin, ben.Role) benGrants, err = a.Grants("ben") require.Nil(t, err) require.Equal(t, 0, len(benGrants)) } func TestManager_Reservations(t *testing.T) { a := newTestManager(t, PermissionDenyAll) require.Nil(t, a.AddUser("phil", "phil", RoleUser)) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) require.Nil(t, a.AddReservation("ben", "ztopic_", PermissionDenyAll)) require.Nil(t, a.AddReservation("ben", "readme", PermissionRead)) require.Nil(t, a.AllowAccess("ben", "something-else", PermissionRead)) reservations, err := a.Reservations("ben") require.Nil(t, err) require.Equal(t, 2, len(reservations)) require.Equal(t, Reservation{ Topic: "readme", Owner: PermissionReadWrite, Everyone: PermissionRead, }, reservations[0]) require.Equal(t, Reservation{ Topic: "ztopic_", Owner: PermissionReadWrite, Everyone: PermissionDenyAll, }, reservations[1]) b, err := a.HasReservation("ben", "readme") require.Nil(t, err) require.True(t, b) b, err = a.HasReservation("ben", "ztopic_") require.Nil(t, err) require.True(t, b) b, err = a.HasReservation("ben", "ztopicX") // _ != X (used to be a SQL wildcard issue) require.Nil(t, err) require.False(t, b) b, err = a.HasReservation("notben", "readme") require.Nil(t, err) require.False(t, b) b, err = a.HasReservation("ben", "something-else") require.Nil(t, err) require.False(t, b) count, err := a.ReservationsCount("ben") require.Nil(t, err) require.Equal(t, int64(2), count) count, err = a.ReservationsCount("phil") require.Nil(t, err) require.Equal(t, int64(0), count) err = a.AllowReservation("phil", "readme") require.Equal(t, errTopicOwnedByOthers, err) err = a.AllowReservation("phil", "ztopic_") require.Equal(t, errTopicOwnedByOthers, err) err = a.AllowReservation("phil", "ztopicX") require.Nil(t, err) err = a.AllowReservation("phil", "not-reserved") require.Nil(t, err) // Now remove them again require.Nil(t, a.RemoveReservations("ben", "ztopic_", "readme")) count, err = a.ReservationsCount("ben") require.Nil(t, err) require.Equal(t, int64(0), count) } func TestManager_ChangeRoleFromTierUserToAdmin(t *testing.T) { a := newTestManager(t, PermissionDenyAll) require.Nil(t, a.AddTier(&Tier{ Code: "pro", Name: "ntfy Pro", StripeMonthlyPriceID: "price123", MessageLimit: 5_000, MessageExpiryDuration: 3 * 24 * time.Hour, EmailLimit: 50, ReservationLimit: 5, AttachmentFileSizeLimit: 52428800, AttachmentTotalSizeLimit: 524288000, AttachmentExpiryDuration: 24 * time.Hour, })) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) require.Nil(t, a.ChangeTier("ben", "pro")) require.Nil(t, a.AddReservation("ben", "mytopic", PermissionDenyAll)) ben, err := a.User("ben") require.Nil(t, err) require.Equal(t, RoleUser, ben.Role) require.Equal(t, "pro", ben.Tier.Code) require.Equal(t, int64(5000), ben.Tier.MessageLimit) require.Equal(t, 3*24*time.Hour, ben.Tier.MessageExpiryDuration) require.Equal(t, int64(50), ben.Tier.EmailLimit) require.Equal(t, int64(5), ben.Tier.ReservationLimit) require.Equal(t, int64(52428800), ben.Tier.AttachmentFileSizeLimit) require.Equal(t, int64(524288000), ben.Tier.AttachmentTotalSizeLimit) require.Equal(t, 24*time.Hour, ben.Tier.AttachmentExpiryDuration) benGrants, err := a.Grants("ben") require.Nil(t, err) require.Equal(t, 1, len(benGrants)) require.Equal(t, PermissionReadWrite, benGrants[0].Allow) everyoneGrants, err := a.Grants(Everyone) require.Nil(t, err) require.Equal(t, 1, len(everyoneGrants)) require.Equal(t, PermissionDenyAll, everyoneGrants[0].Allow) benReservations, err := a.Reservations("ben") require.Nil(t, err) require.Equal(t, 1, len(benReservations)) require.Equal(t, "mytopic", benReservations[0].Topic) require.Equal(t, PermissionReadWrite, benReservations[0].Owner) require.Equal(t, PermissionDenyAll, benReservations[0].Everyone) // Switch to admin, this should remove all grants and owned ACL entries require.Nil(t, a.ChangeRole("ben", RoleAdmin)) benGrants, err = a.Grants("ben") require.Nil(t, err) require.Equal(t, 0, len(benGrants)) everyoneGrants, err = a.Grants(Everyone) require.Nil(t, err) require.Equal(t, 0, len(everyoneGrants)) } func TestManager_Token_Valid(t *testing.T) { a := newTestManager(t, PermissionDenyAll) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) u, err := a.User("ben") require.Nil(t, err) // Create token for user token, err := a.CreateToken(u.ID, "some label", time.Now().Add(72*time.Hour), netip.IPv4Unspecified()) require.Nil(t, err) require.NotEmpty(t, token.Value) require.Equal(t, "some label", token.Label) require.True(t, time.Now().Add(71*time.Hour).Unix() < token.Expires.Unix()) u2, err := a.AuthenticateToken(token.Value) require.Nil(t, err) require.Equal(t, u.Name, u2.Name) require.Equal(t, token.Value, u2.Token) token2, err := a.Token(u.ID, token.Value) require.Nil(t, err) require.Equal(t, token.Value, token2.Value) require.Equal(t, "some label", token2.Label) tokens, err := a.Tokens(u.ID) require.Nil(t, err) require.Equal(t, 1, len(tokens)) require.Equal(t, "some label", tokens[0].Label) tokens, err = a.Tokens("u_notauser") require.Nil(t, err) require.Equal(t, 0, len(tokens)) // Remove token and auth again require.Nil(t, a.RemoveToken(u2.ID, u2.Token)) u3, err := a.AuthenticateToken(token.Value) require.Equal(t, ErrUnauthenticated, err) require.Nil(t, u3) tokens, err = a.Tokens(u.ID) require.Nil(t, err) require.Equal(t, 0, len(tokens)) } func TestManager_Token_Invalid(t *testing.T) { a := newTestManager(t, PermissionDenyAll) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) u, err := a.AuthenticateToken(strings.Repeat("x", 32)) // 32 == token length require.Nil(t, u) require.Equal(t, ErrUnauthenticated, err) u, err = a.AuthenticateToken("not long enough anyway") require.Nil(t, u) require.Equal(t, ErrUnauthenticated, err) } func TestManager_Token_NotFound(t *testing.T) { a := newTestManager(t, PermissionDenyAll) _, err := a.Token("u_bla", "notfound") require.Equal(t, ErrTokenNotFound, err) } func TestManager_Token_Expire(t *testing.T) { a := newTestManager(t, PermissionDenyAll) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) u, err := a.User("ben") require.Nil(t, err) // Create tokens for user token1, err := a.CreateToken(u.ID, "", time.Now().Add(72*time.Hour), netip.IPv4Unspecified()) require.Nil(t, err) require.NotEmpty(t, token1.Value) require.True(t, time.Now().Add(71*time.Hour).Unix() < token1.Expires.Unix()) token2, err := a.CreateToken(u.ID, "", time.Now().Add(72*time.Hour), netip.IPv4Unspecified()) require.Nil(t, err) require.NotEmpty(t, token2.Value) require.NotEqual(t, token1.Value, token2.Value) require.True(t, time.Now().Add(71*time.Hour).Unix() < token2.Expires.Unix()) // See that tokens work _, err = a.AuthenticateToken(token1.Value) require.Nil(t, err) _, err = a.AuthenticateToken(token2.Value) require.Nil(t, err) // Modify token expiration in database _, err = a.db.Exec("UPDATE user_token SET expires = 1 WHERE token = ?", token1.Value) require.Nil(t, err) // Now token1 shouldn't work anymore _, err = a.AuthenticateToken(token1.Value) require.Equal(t, ErrUnauthenticated, err) result, err := a.db.Query("SELECT * from user_token WHERE token = ?", token1.Value) require.Nil(t, err) require.True(t, result.Next()) // Still a matching row require.Nil(t, result.Close()) // Expire tokens and check database rows require.Nil(t, a.RemoveExpiredTokens()) result, err = a.db.Query("SELECT * from user_token WHERE token = ?", token1.Value) require.Nil(t, err) require.False(t, result.Next()) // No matching row! require.Nil(t, result.Close()) } func TestManager_Token_Extend(t *testing.T) { a := newTestManager(t, PermissionDenyAll) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) // Try to extend token for user without token u, err := a.User("ben") require.Nil(t, err) _, err = a.ChangeToken(u.ID, u.Token, util.String("some label"), util.Time(time.Now().Add(time.Hour))) require.Equal(t, errNoTokenProvided, err) // Create token for user token, err := a.CreateToken(u.ID, "", time.Now().Add(72*time.Hour), netip.IPv4Unspecified()) require.Nil(t, err) require.NotEmpty(t, token.Value) userWithToken, err := a.AuthenticateToken(token.Value) require.Nil(t, err) extendedToken, err := a.ChangeToken(userWithToken.ID, userWithToken.Token, util.String("changed label"), util.Time(time.Now().Add(100*time.Hour))) require.Nil(t, err) require.Equal(t, token.Value, extendedToken.Value) require.Equal(t, "changed label", extendedToken.Label) require.True(t, token.Expires.Unix() < extendedToken.Expires.Unix()) require.True(t, time.Now().Add(99*time.Hour).Unix() < extendedToken.Expires.Unix()) } func TestManager_Token_MaxCount_AutoDelete(t *testing.T) { // Tests that tokens are automatically deleted when the maximum number of tokens is reached a := newTestManager(t, PermissionDenyAll) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) require.Nil(t, a.AddUser("phil", "phil", RoleUser)) ben, err := a.User("ben") require.Nil(t, err) phil, err := a.User("phil") require.Nil(t, err) // Create 2 tokens for phil philTokens := make([]string, 0) token, err := a.CreateToken(phil.ID, "", time.Now().Add(72*time.Hour), netip.IPv4Unspecified()) require.Nil(t, err) require.NotEmpty(t, token.Value) philTokens = append(philTokens, token.Value) token, err = a.CreateToken(phil.ID, "", time.Unix(0, 0), netip.IPv4Unspecified()) require.Nil(t, err) require.NotEmpty(t, token.Value) philTokens = append(philTokens, token.Value) // Create 22 tokens for ben (only 20 allowed!) baseTime := time.Now().Add(24 * time.Hour) benTokens := make([]string, 0) for i := 0; i < 22; i++ { // token, err := a.CreateToken(ben.ID, "", time.Now().Add(72*time.Hour), netip.IPv4Unspecified()) require.Nil(t, err) require.NotEmpty(t, token.Value) benTokens = append(benTokens, token.Value) // Manually modify expiry date to avoid sorting issues (this is a hack) _, err = a.db.Exec(`UPDATE user_token SET expires=? WHERE token=?`, baseTime.Add(time.Duration(i)*time.Minute).Unix(), token.Value) require.Nil(t, err) } // Ben: The first 2 tokens should have been wiped and should not work anymore! _, err = a.AuthenticateToken(benTokens[0]) require.Equal(t, ErrUnauthenticated, err) _, err = a.AuthenticateToken(benTokens[1]) require.Equal(t, ErrUnauthenticated, err) // Ben: The other tokens should still work for i := 2; i < 22; i++ { userWithToken, err := a.AuthenticateToken(benTokens[i]) require.Nil(t, err, "token[%d]=%s failed", i, benTokens[i]) require.Equal(t, "ben", userWithToken.Name) require.Equal(t, benTokens[i], userWithToken.Token) } // Phil: All tokens should still work for i := 0; i < 2; i++ { userWithToken, err := a.AuthenticateToken(philTokens[i]) require.Nil(t, err, "token[%d]=%s failed", i, philTokens[i]) require.Equal(t, "phil", userWithToken.Name) require.Equal(t, philTokens[i], userWithToken.Token) } var benCount int rows, err := a.db.Query(`SELECT COUNT(*) FROM user_token WHERE user_id=?`, ben.ID) require.Nil(t, err) require.True(t, rows.Next()) require.Nil(t, rows.Scan(&benCount)) require.Equal(t, 20, benCount) var philCount int rows, err = a.db.Query(`SELECT COUNT(*) FROM user_token WHERE user_id=?`, phil.ID) require.Nil(t, err) require.True(t, rows.Next()) require.Nil(t, rows.Scan(&philCount)) require.Equal(t, 2, philCount) } func TestManager_EnqueueStats_ResetStats(t *testing.T) { a, err := NewManager(filepath.Join(t.TempDir(), "db"), "", PermissionReadWrite, bcrypt.MinCost, 1500*time.Millisecond) require.Nil(t, err) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) // Baseline: No messages or emails u, err := a.User("ben") require.Nil(t, err) require.Equal(t, int64(0), u.Stats.Messages) require.Equal(t, int64(0), u.Stats.Emails) a.EnqueueUserStats(u.ID, &Stats{ Messages: 11, Emails: 2, }) // Still no change, because it's queued asynchronously u, err = a.User("ben") require.Nil(t, err) require.Equal(t, int64(0), u.Stats.Messages) require.Equal(t, int64(0), u.Stats.Emails) // After 2 seconds they should be persisted time.Sleep(2 * time.Second) u, err = a.User("ben") require.Nil(t, err) require.Equal(t, int64(11), u.Stats.Messages) require.Equal(t, int64(2), u.Stats.Emails) // Now reset stats (enqueued stats will be thrown out) a.EnqueueUserStats(u.ID, &Stats{ Messages: 99, Emails: 23, }) require.Nil(t, a.ResetStats()) u, err = a.User("ben") require.Nil(t, err) require.Equal(t, int64(0), u.Stats.Messages) require.Equal(t, int64(0), u.Stats.Emails) } func TestManager_EnqueueTokenUpdate(t *testing.T) { a, err := NewManager(filepath.Join(t.TempDir(), "db"), "", PermissionReadWrite, bcrypt.MinCost, 500*time.Millisecond) require.Nil(t, err) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) // Create user and token u, err := a.User("ben") require.Nil(t, err) token, err := a.CreateToken(u.ID, "", time.Now().Add(time.Hour), netip.IPv4Unspecified()) require.Nil(t, err) // Queue token update a.EnqueueTokenUpdate(token.Value, &TokenUpdate{ LastAccess: time.Unix(111, 0).UTC(), LastOrigin: netip.MustParseAddr("1.2.3.3"), }) // Token has not changed yet. token2, err := a.Token(u.ID, token.Value) require.Nil(t, err) require.Equal(t, token.LastAccess.Unix(), token2.LastAccess.Unix()) require.Equal(t, token.LastOrigin, token2.LastOrigin) // After a second or so they should be persisted time.Sleep(time.Second) token3, err := a.Token(u.ID, token.Value) require.Nil(t, err) require.Equal(t, time.Unix(111, 0).UTC().Unix(), token3.LastAccess.Unix()) require.Equal(t, netip.MustParseAddr("1.2.3.3"), token3.LastOrigin) } func TestManager_ChangeSettings(t *testing.T) { a, err := NewManager(filepath.Join(t.TempDir(), "db"), "", PermissionReadWrite, bcrypt.MinCost, 1500*time.Millisecond) require.Nil(t, err) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) // No settings u, err := a.User("ben") require.Nil(t, err) require.Nil(t, u.Prefs.Subscriptions) require.Nil(t, u.Prefs.Notification) require.Nil(t, u.Prefs.Language) // Save with new settings prefs := &Prefs{ Language: util.String("de"), Notification: &NotificationPrefs{ Sound: util.String("ding"), MinPriority: util.Int(2), }, Subscriptions: []*Subscription{ { BaseURL: "https://ntfy.sh", Topic: "mytopic", DisplayName: util.String("My Topic"), }, }, } require.Nil(t, a.ChangeSettings(u.ID, prefs)) // Read again u, err = a.User("ben") require.Nil(t, err) require.Equal(t, util.String("de"), u.Prefs.Language) require.Equal(t, util.String("ding"), u.Prefs.Notification.Sound) require.Equal(t, util.Int(2), u.Prefs.Notification.MinPriority) require.Nil(t, u.Prefs.Notification.DeleteAfter) require.Equal(t, "https://ntfy.sh", u.Prefs.Subscriptions[0].BaseURL) require.Equal(t, "mytopic", u.Prefs.Subscriptions[0].Topic) require.Equal(t, util.String("My Topic"), u.Prefs.Subscriptions[0].DisplayName) } func TestManager_Tier_Create_Update_List_Delete(t *testing.T) { a := newTestManager(t, PermissionDenyAll) // Create tier and user require.Nil(t, a.AddTier(&Tier{ Code: "supporter", Name: "Supporter", MessageLimit: 1, MessageExpiryDuration: time.Second, EmailLimit: 1, ReservationLimit: 1, AttachmentFileSizeLimit: 1, AttachmentTotalSizeLimit: 1, AttachmentExpiryDuration: time.Second, AttachmentBandwidthLimit: 1, StripeMonthlyPriceID: "price_1", })) require.Nil(t, a.AddTier(&Tier{ Code: "pro", Name: "Pro", MessageLimit: 123, MessageExpiryDuration: 86400 * time.Second, EmailLimit: 32, ReservationLimit: 2, AttachmentFileSizeLimit: 1231231, AttachmentTotalSizeLimit: 123123, AttachmentExpiryDuration: 10800 * time.Second, AttachmentBandwidthLimit: 21474836480, StripeMonthlyPriceID: "price_2", })) require.Nil(t, a.AddUser("phil", "phil", RoleUser)) require.Nil(t, a.ChangeTier("phil", "pro")) ti, err := a.Tier("pro") require.Nil(t, err) u, err := a.User("phil") require.Nil(t, err) // These are populated by different SQL queries require.Equal(t, ti, u.Tier) // Fields require.True(t, strings.HasPrefix(ti.ID, "ti_")) require.Equal(t, "pro", ti.Code) require.Equal(t, "Pro", ti.Name) require.Equal(t, int64(123), ti.MessageLimit) require.Equal(t, 86400*time.Second, ti.MessageExpiryDuration) require.Equal(t, int64(32), ti.EmailLimit) require.Equal(t, int64(2), ti.ReservationLimit) require.Equal(t, int64(1231231), ti.AttachmentFileSizeLimit) require.Equal(t, int64(123123), ti.AttachmentTotalSizeLimit) require.Equal(t, 10800*time.Second, ti.AttachmentExpiryDuration) require.Equal(t, int64(21474836480), ti.AttachmentBandwidthLimit) require.Equal(t, "price_2", ti.StripeMonthlyPriceID) // Update tier ti.EmailLimit = 999999 require.Nil(t, a.UpdateTier(ti)) // List tiers tiers, err := a.Tiers() require.Nil(t, err) require.Equal(t, 2, len(tiers)) ti = tiers[0] require.Equal(t, "supporter", ti.Code) require.Equal(t, "Supporter", ti.Name) require.Equal(t, int64(1), ti.MessageLimit) require.Equal(t, time.Second, ti.MessageExpiryDuration) require.Equal(t, int64(1), ti.EmailLimit) require.Equal(t, int64(1), ti.ReservationLimit) require.Equal(t, int64(1), ti.AttachmentFileSizeLimit) require.Equal(t, int64(1), ti.AttachmentTotalSizeLimit) require.Equal(t, time.Second, ti.AttachmentExpiryDuration) require.Equal(t, int64(1), ti.AttachmentBandwidthLimit) require.Equal(t, "price_1", ti.StripeMonthlyPriceID) ti = tiers[1] require.Equal(t, "pro", ti.Code) require.Equal(t, "Pro", ti.Name) require.Equal(t, int64(123), ti.MessageLimit) require.Equal(t, 86400*time.Second, ti.MessageExpiryDuration) require.Equal(t, int64(999999), ti.EmailLimit) // Updatedd! require.Equal(t, int64(2), ti.ReservationLimit) require.Equal(t, int64(1231231), ti.AttachmentFileSizeLimit) require.Equal(t, int64(123123), ti.AttachmentTotalSizeLimit) require.Equal(t, 10800*time.Second, ti.AttachmentExpiryDuration) require.Equal(t, int64(21474836480), ti.AttachmentBandwidthLimit) require.Equal(t, "price_2", ti.StripeMonthlyPriceID) ti, err = a.TierByStripePrice("price_1") require.Nil(t, err) require.Equal(t, "supporter", ti.Code) require.Equal(t, "Supporter", ti.Name) require.Equal(t, int64(1), ti.MessageLimit) require.Equal(t, time.Second, ti.MessageExpiryDuration) require.Equal(t, int64(1), ti.EmailLimit) require.Equal(t, int64(1), ti.ReservationLimit) require.Equal(t, int64(1), ti.AttachmentFileSizeLimit) require.Equal(t, int64(1), ti.AttachmentTotalSizeLimit) require.Equal(t, time.Second, ti.AttachmentExpiryDuration) require.Equal(t, int64(1), ti.AttachmentBandwidthLimit) require.Equal(t, "price_1", ti.StripeMonthlyPriceID) // Cannot remove tier, since user has this tier require.Error(t, a.RemoveTier("pro")) // CAN remove this tier require.Nil(t, a.RemoveTier("supporter")) tiers, err = a.Tiers() require.Nil(t, err) require.Equal(t, 1, len(tiers)) require.Equal(t, "pro", tiers[0].Code) require.Equal(t, "pro", tiers[0].Code) } func TestAccount_Tier_Create_With_ID(t *testing.T) { a := newTestManager(t, PermissionDenyAll) require.Nil(t, a.AddTier(&Tier{ ID: "ti_123", Code: "pro", })) ti, err := a.Tier("pro") require.Nil(t, err) require.Equal(t, "ti_123", ti.ID) } func TestManager_Tier_Change_And_Reset(t *testing.T) { a := newTestManager(t, PermissionDenyAll) // Create tier and user require.Nil(t, a.AddTier(&Tier{ Code: "supporter", Name: "Supporter", ReservationLimit: 3, })) require.Nil(t, a.AddTier(&Tier{ Code: "pro", Name: "Pro", ReservationLimit: 4, })) require.Nil(t, a.AddUser("phil", "phil", RoleUser)) require.Nil(t, a.ChangeTier("phil", "pro")) // Add 10 reservations (pro tier allows that) for i := 0; i < 4; i++ { require.Nil(t, a.AddReservation("phil", fmt.Sprintf("topic%d", i), PermissionWrite)) } // Downgrading will not work (too many reservations) require.Equal(t, ErrTooManyReservations, a.ChangeTier("phil", "supporter")) // Downgrade after removing a reservation require.Nil(t, a.RemoveReservations("phil", "topic0")) require.Nil(t, a.ChangeTier("phil", "supporter")) // Resetting will not work (too many reservations) require.Equal(t, ErrTooManyReservations, a.ResetTier("phil")) // Resetting after removing all reservations require.Nil(t, a.RemoveReservations("phil", "topic1", "topic2", "topic3")) require.Nil(t, a.ResetTier("phil")) } func TestUser_PhoneNumberAddListRemove(t *testing.T) { a := newTestManager(t, PermissionDenyAll) require.Nil(t, a.AddUser("phil", "phil", RoleUser)) phil, err := a.User("phil") require.Nil(t, err) require.Nil(t, a.AddPhoneNumber(phil.ID, "+1234567890")) phoneNumbers, err := a.PhoneNumbers(phil.ID) require.Nil(t, err) require.Equal(t, 1, len(phoneNumbers)) require.Equal(t, "+1234567890", phoneNumbers[0]) require.Nil(t, a.RemovePhoneNumber(phil.ID, "+1234567890")) phoneNumbers, err = a.PhoneNumbers(phil.ID) require.Nil(t, err) require.Equal(t, 0, len(phoneNumbers)) // Paranoia check: We do NOT want to keep phone numbers in there rows, err := a.db.Query(`SELECT * FROM user_phone`) require.Nil(t, err) require.False(t, rows.Next()) require.Nil(t, rows.Close()) } func TestUser_PhoneNumberAdd_Multiple_Users_Same_Number(t *testing.T) { a := newTestManager(t, PermissionDenyAll) require.Nil(t, a.AddUser("phil", "phil", RoleUser)) require.Nil(t, a.AddUser("ben", "ben", RoleUser)) phil, err := a.User("phil") require.Nil(t, err) ben, err := a.User("ben") require.Nil(t, err) require.Nil(t, a.AddPhoneNumber(phil.ID, "+1234567890")) require.Nil(t, a.AddPhoneNumber(ben.ID, "+1234567890")) } func TestManager_Topic_Wildcard_With_Asterisk_Underscore(t *testing.T) { f := filepath.Join(t.TempDir(), "user.db") a := newTestManagerFromFile(t, f, "", PermissionDenyAll, DefaultUserPasswordBcryptCost, DefaultUserStatsQueueWriterInterval) require.Nil(t, a.AllowAccess(Everyone, "*_", PermissionRead)) require.Nil(t, a.AllowAccess(Everyone, "__*_", PermissionRead)) require.Nil(t, a.Authorize(nil, "allowed_", PermissionRead)) require.Nil(t, a.Authorize(nil, "__allowed_", PermissionRead)) require.Nil(t, a.Authorize(nil, "_allowed_", PermissionRead)) // The "%" in "%\_" matches the first "_" require.Equal(t, ErrUnauthorized, a.Authorize(nil, "notallowed", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "_notallowed", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "__notallowed", PermissionRead)) } func TestManager_Topic_Wildcard_With_Underscore(t *testing.T) { f := filepath.Join(t.TempDir(), "user.db") a := newTestManagerFromFile(t, f, "", PermissionDenyAll, DefaultUserPasswordBcryptCost, DefaultUserStatsQueueWriterInterval) require.Nil(t, a.AllowAccess(Everyone, "mytopic_", PermissionReadWrite)) require.Nil(t, a.Authorize(nil, "mytopic_", PermissionRead)) require.Nil(t, a.Authorize(nil, "mytopic_", PermissionWrite)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "mytopicX", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "mytopicX", PermissionWrite)) } func TestToFromSQLWildcard(t *testing.T) { require.Equal(t, "up%", toSQLWildcard("up*")) require.Equal(t, "up\\_%", toSQLWildcard("up_*")) require.Equal(t, "foo", toSQLWildcard("foo")) require.Equal(t, "up*", fromSQLWildcard("up%")) require.Equal(t, "up_*", fromSQLWildcard("up\\_%")) require.Equal(t, "foo", fromSQLWildcard("foo")) require.Equal(t, "up*", fromSQLWildcard(toSQLWildcard("up*"))) require.Equal(t, "up_*", fromSQLWildcard(toSQLWildcard("up_*"))) require.Equal(t, "foo", fromSQLWildcard(toSQLWildcard("foo"))) } func TestMigrationFrom1(t *testing.T) { filename := filepath.Join(t.TempDir(), "user.db") db, err := sql.Open("sqlite3", filename) require.Nil(t, err) // Create "version 1" schema _, err = db.Exec(` BEGIN; CREATE TABLE IF NOT EXISTS user ( user TEXT NOT NULL PRIMARY KEY, pass TEXT NOT NULL, role TEXT NOT NULL ); CREATE TABLE IF NOT EXISTS access ( user TEXT NOT NULL, topic TEXT NOT NULL, read INT NOT NULL, write INT NOT NULL, PRIMARY KEY (topic, user) ); CREATE TABLE IF NOT EXISTS schemaVersion ( id INT PRIMARY KEY, version INT NOT NULL ); INSERT INTO schemaVersion (id, version) VALUES (1, 1); COMMIT; `) require.Nil(t, err) // Insert a bunch of users and ACL entries _, err = db.Exec(` BEGIN; INSERT INTO user (user, pass, role) VALUES ('ben', '$2a$10$EEp6gBheOsqEFsXlo523E.gBVoeg1ytphXiEvTPlNzkenBlHZBPQy', 'user'); INSERT INTO user (user, pass, role) VALUES ('phil', '$2a$10$YLiO8U21sX1uhZamTLJXHuxgVC0Z/GKISibrKCLohPgtG7yIxSk4C', 'admin'); INSERT INTO access (user, topic, read, write) VALUES ('ben', 'stats', 1, 1); INSERT INTO access (user, topic, read, write) VALUES ('ben', 'secret', 1, 0); INSERT INTO access (user, topic, read, write) VALUES ('*', 'stats', 1, 0); COMMIT; `) require.Nil(t, err) // Create manager to trigger migration a := newTestManagerFromFile(t, filename, "", PermissionDenyAll, bcrypt.MinCost, DefaultUserStatsQueueWriterInterval) checkSchemaVersion(t, a.db) users, err := a.Users() require.Nil(t, err) require.Equal(t, 3, len(users)) phil, ben, everyone := users[0], users[1], users[2] philGrants, err := a.Grants("phil") require.Nil(t, err) benGrants, err := a.Grants("ben") require.Nil(t, err) everyoneGrants, err := a.Grants(Everyone) require.Nil(t, err) require.True(t, strings.HasPrefix(phil.ID, "u_")) require.Equal(t, "phil", phil.Name) require.Equal(t, RoleAdmin, phil.Role) require.Equal(t, syncTopicLength, len(phil.SyncTopic)) require.Equal(t, 0, len(philGrants)) require.True(t, strings.HasPrefix(ben.ID, "u_")) require.NotEqual(t, phil.ID, ben.ID) require.Equal(t, "ben", ben.Name) require.Equal(t, RoleUser, ben.Role) require.Equal(t, syncTopicLength, len(ben.SyncTopic)) require.NotEqual(t, ben.SyncTopic, phil.SyncTopic) require.Equal(t, 2, len(benGrants)) require.Equal(t, "secret", benGrants[0].TopicPattern) require.Equal(t, PermissionRead, benGrants[0].Allow) require.Equal(t, "stats", benGrants[1].TopicPattern) require.Equal(t, PermissionReadWrite, benGrants[1].Allow) require.Equal(t, "u_everyone", everyone.ID) require.Equal(t, Everyone, everyone.Name) require.Equal(t, RoleAnonymous, everyone.Role) require.Equal(t, 1, len(everyoneGrants)) require.Equal(t, "stats", everyoneGrants[0].TopicPattern) require.Equal(t, PermissionRead, everyoneGrants[0].Allow) } func TestMigrationFrom4(t *testing.T) { filename := filepath.Join(t.TempDir(), "user.db") db, err := sql.Open("sqlite3", filename) require.Nil(t, err) // Create "version 4" schema _, err = db.Exec(` BEGIN; CREATE TABLE IF NOT EXISTS tier ( id TEXT PRIMARY KEY, code TEXT NOT NULL, name TEXT NOT NULL, messages_limit INT NOT NULL, messages_expiry_duration INT NOT NULL, emails_limit INT NOT NULL, calls_limit INT NOT NULL, reservations_limit INT NOT NULL, attachment_file_size_limit INT NOT NULL, attachment_total_size_limit INT NOT NULL, attachment_expiry_duration INT NOT NULL, attachment_bandwidth_limit INT NOT NULL, stripe_monthly_price_id TEXT, stripe_yearly_price_id TEXT ); CREATE UNIQUE INDEX idx_tier_code ON tier (code); CREATE UNIQUE INDEX idx_tier_stripe_monthly_price_id ON tier (stripe_monthly_price_id); CREATE UNIQUE INDEX idx_tier_stripe_yearly_price_id ON tier (stripe_yearly_price_id); CREATE TABLE IF NOT EXISTS user ( id TEXT PRIMARY KEY, tier_id TEXT, user TEXT NOT NULL, pass TEXT NOT NULL, role TEXT CHECK (role IN ('anonymous', 'admin', 'user')) NOT NULL, prefs JSON NOT NULL DEFAULT '{}', sync_topic TEXT NOT NULL, stats_messages INT NOT NULL DEFAULT (0), stats_emails INT NOT NULL DEFAULT (0), stats_calls INT NOT NULL DEFAULT (0), stripe_customer_id TEXT, stripe_subscription_id TEXT, stripe_subscription_status TEXT, stripe_subscription_interval TEXT, stripe_subscription_paid_until INT, stripe_subscription_cancel_at INT, created INT NOT NULL, deleted INT, FOREIGN KEY (tier_id) REFERENCES tier (id) ); CREATE UNIQUE INDEX idx_user ON user (user); CREATE UNIQUE INDEX idx_user_stripe_customer_id ON user (stripe_customer_id); CREATE UNIQUE INDEX idx_user_stripe_subscription_id ON user (stripe_subscription_id); CREATE TABLE IF NOT EXISTS user_access ( user_id TEXT NOT NULL, topic TEXT NOT NULL, read INT NOT NULL, write INT NOT NULL, owner_user_id INT, PRIMARY KEY (user_id, topic), FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE, FOREIGN KEY (owner_user_id) REFERENCES user (id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS user_token ( user_id TEXT NOT NULL, token TEXT NOT NULL, label TEXT NOT NULL, last_access INT NOT NULL, last_origin TEXT NOT NULL, expires INT NOT NULL, PRIMARY KEY (user_id, token), FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS user_phone ( user_id TEXT NOT NULL, phone_number TEXT NOT NULL, PRIMARY KEY (user_id, phone_number), FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS schemaVersion ( id INT PRIMARY KEY, version INT NOT NULL ); INSERT INTO user (id, user, pass, role, sync_topic, created) VALUES ('u_everyone', '*', '', 'anonymous', '', UNIXEPOCH()) ON CONFLICT (id) DO NOTHING; INSERT INTO schemaVersion (id, version) VALUES (1, 4); COMMIT; `) require.Nil(t, err) // Insert a few ACL entries _, err = db.Exec(` BEGIN; INSERT INTO user_access (user_id, topic, read, write) values ('u_everyone', 'mytopic_', 1, 1); INSERT INTO user_access (user_id, topic, read, write) values ('u_everyone', 'up%', 1, 1); INSERT INTO user_access (user_id, topic, read, write) values ('u_everyone', 'down_%', 1, 1); COMMIT; `) require.Nil(t, err) // Create manager to trigger migration a := newTestManagerFromFile(t, filename, "", PermissionDenyAll, bcrypt.MinCost, DefaultUserStatsQueueWriterInterval) checkSchemaVersion(t, a.db) // Add another require.Nil(t, a.AllowAccess(Everyone, "left_*", PermissionReadWrite)) // Check "external view" of grants everyoneGrants, err := a.Grants(Everyone) require.Nil(t, err) require.Equal(t, 4, len(everyoneGrants)) require.Equal(t, "mytopic_", everyoneGrants[0].TopicPattern) require.Equal(t, "down_*", everyoneGrants[1].TopicPattern) require.Equal(t, "left_*", everyoneGrants[2].TopicPattern) require.Equal(t, "up*", everyoneGrants[3].TopicPattern) // Check they are stored correctly in the database rows, err := db.Query(`SELECT topic FROM user_access WHERE user_id = 'u_everyone' ORDER BY topic`) require.Nil(t, err) topicPatterns := make([]string, 0) for rows.Next() { var topicPattern string require.Nil(t, rows.Scan(&topicPattern)) topicPatterns = append(topicPatterns, topicPattern) } require.Nil(t, rows.Close()) require.Equal(t, 4, len(topicPatterns)) require.Equal(t, "down\\_%", topicPatterns[0]) require.Equal(t, "left\\_%", topicPatterns[1]) require.Equal(t, "mytopic\\_", topicPatterns[2]) require.Equal(t, "up%", topicPatterns[3]) // Check that ACL works as excepted require.Nil(t, a.Authorize(nil, "down_123", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "downX123", PermissionRead)) require.Nil(t, a.Authorize(nil, "left_abc", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "leftX123", PermissionRead)) require.Nil(t, a.Authorize(nil, "mytopic_", PermissionRead)) require.Equal(t, ErrUnauthorized, a.Authorize(nil, "mytopicX", PermissionRead)) require.Nil(t, a.Authorize(nil, "up123", PermissionRead)) require.Nil(t, a.Authorize(nil, "up", PermissionRead)) // % matches 0 or more characters } func checkSchemaVersion(t *testing.T, db *sql.DB) { rows, err := db.Query(`SELECT version FROM schemaVersion`) require.Nil(t, err) require.True(t, rows.Next()) var schemaVersion int require.Nil(t, rows.Scan(&schemaVersion)) require.Equal(t, currentSchemaVersion, schemaVersion) require.Nil(t, rows.Close()) } func newTestManager(t *testing.T, defaultAccess Permission) *Manager { return newTestManagerFromFile(t, filepath.Join(t.TempDir(), "user.db"), "", defaultAccess, bcrypt.MinCost, DefaultUserStatsQueueWriterInterval) } func newTestManagerFromFile(t *testing.T, filename, startupQueries string, defaultAccess Permission, bcryptCost int, statsWriterInterval time.Duration) *Manager { a, err := NewManager(filename, startupQueries, defaultAccess, bcryptCost, statsWriterInterval) require.Nil(t, err) return a } ntfy-2.11.0/user/types.go000066400000000000000000000211741462047176100152410ustar00rootroot00000000000000package user import ( "errors" "github.com/stripe/stripe-go/v74" "heckel.io/ntfy/v2/log" "net/netip" "regexp" "strings" "time" ) // User is a struct that represents a user type User struct { ID string Name string Hash string // password hash (bcrypt) Token string // Only set if token was used to log in Role Role Prefs *Prefs Tier *Tier Stats *Stats Billing *Billing SyncTopic string Deleted bool } // TierID returns the ID of the User.Tier, or an empty string if the user has no tier, // or if the user itself is nil. func (u *User) TierID() string { if u == nil || u.Tier == nil { return "" } return u.Tier.ID } // IsAdmin returns true if the user is an admin func (u *User) IsAdmin() bool { return u != nil && u.Role == RoleAdmin } // IsUser returns true if the user is a regular user, not an admin func (u *User) IsUser() bool { return u != nil && u.Role == RoleUser } // Auther is an interface for authentication and authorization type Auther interface { // Authenticate checks username and password and returns a user if correct. The method // returns in constant-ish time, regardless of whether the user exists or the password is // correct or incorrect. Authenticate(username, password string) (*User, error) // Authorize returns nil if the given user has access to the given topic using the desired // permission. The user param may be nil to signal an anonymous user. Authorize(user *User, topic string, perm Permission) error } // Token represents a user token, including expiry date type Token struct { Value string Label string LastAccess time.Time LastOrigin netip.Addr Expires time.Time } // TokenUpdate holds information about the last access time and origin IP address of a token type TokenUpdate struct { LastAccess time.Time LastOrigin netip.Addr } // Prefs represents a user's configuration settings type Prefs struct { Language *string `json:"language,omitempty"` Notification *NotificationPrefs `json:"notification,omitempty"` Subscriptions []*Subscription `json:"subscriptions,omitempty"` } // Tier represents a user's account type, including its account limits type Tier struct { ID string // Tier identifier (ti_...) Code string // Code of the tier Name string // Name of the tier MessageLimit int64 // Daily message limit MessageExpiryDuration time.Duration // Cache duration for messages EmailLimit int64 // Daily email limit CallLimit int64 // Daily phone call limit ReservationLimit int64 // Number of topic reservations allowed by user AttachmentFileSizeLimit int64 // Max file size per file (bytes) AttachmentTotalSizeLimit int64 // Total file size for all files of this user (bytes) AttachmentExpiryDuration time.Duration // Duration after which attachments will be deleted AttachmentBandwidthLimit int64 // Daily bandwidth limit for the user StripeMonthlyPriceID string // Monthly price ID for paid tiers (price_...) StripeYearlyPriceID string // Yearly price ID for paid tiers (price_...) } // Context returns fields for the log func (t *Tier) Context() log.Context { return log.Context{ "tier_id": t.ID, "tier_code": t.Code, "stripe_monthly_price_id": t.StripeMonthlyPriceID, "stripe_yearly_price_id": t.StripeYearlyPriceID, } } // Subscription represents a user's topic subscription type Subscription struct { BaseURL string `json:"base_url"` Topic string `json:"topic"` DisplayName *string `json:"display_name"` } // Context returns fields for the log func (s *Subscription) Context() log.Context { return log.Context{ "base_url": s.BaseURL, "topic": s.Topic, } } // NotificationPrefs represents the user's notification settings type NotificationPrefs struct { Sound *string `json:"sound,omitempty"` MinPriority *int `json:"min_priority,omitempty"` DeleteAfter *int `json:"delete_after,omitempty"` } // Stats is a struct holding daily user statistics type Stats struct { Messages int64 Emails int64 Calls int64 } // Billing is a struct holding a user's billing information type Billing struct { StripeCustomerID string StripeSubscriptionID string StripeSubscriptionStatus stripe.SubscriptionStatus StripeSubscriptionInterval stripe.PriceRecurringInterval StripeSubscriptionPaidUntil time.Time StripeSubscriptionCancelAt time.Time } // Grant is a struct that represents an access control entry to a topic by a user type Grant struct { TopicPattern string // May include wildcard (*) Allow Permission } // Reservation is a struct that represents the ownership over a topic by a user type Reservation struct { Topic string Owner Permission Everyone Permission } // Permission represents a read or write permission to a topic type Permission uint8 // Permissions to a topic const ( PermissionDenyAll Permission = iota PermissionRead PermissionWrite PermissionReadWrite // 3! ) // NewPermission is a helper to create a Permission based on read/write bool values func NewPermission(read, write bool) Permission { p := uint8(0) if read { p |= uint8(PermissionRead) } if write { p |= uint8(PermissionWrite) } return Permission(p) } // ParsePermission parses the string representation and returns a Permission func ParsePermission(s string) (Permission, error) { switch strings.ToLower(s) { case "read-write", "rw": return NewPermission(true, true), nil case "read-only", "read", "ro": return NewPermission(true, false), nil case "write-only", "write", "wo": return NewPermission(false, true), nil case "deny-all", "deny", "none": return NewPermission(false, false), nil default: return NewPermission(false, false), errors.New("invalid permission") } } // IsRead returns true if readable func (p Permission) IsRead() bool { return p&PermissionRead != 0 } // IsWrite returns true if writable func (p Permission) IsWrite() bool { return p&PermissionWrite != 0 } // IsReadWrite returns true if readable and writable func (p Permission) IsReadWrite() bool { return p.IsRead() && p.IsWrite() } // String returns a string representation of the permission func (p Permission) String() string { if p.IsReadWrite() { return "read-write" } else if p.IsRead() { return "read-only" } else if p.IsWrite() { return "write-only" } return "deny-all" } // Role represents a user's role, either admin or regular user type Role string // User roles const ( RoleAdmin = Role("admin") // Some queries have these values hardcoded! RoleUser = Role("user") RoleAnonymous = Role("anonymous") ) // Everyone is a special username representing anonymous users const ( Everyone = "*" everyoneID = "u_everyone" ) var ( allowedUsernameRegex = regexp.MustCompile(`^[-_.+@a-zA-Z0-9]+$`) // Does not include Everyone (*) allowedTopicRegex = regexp.MustCompile(`^[-_A-Za-z0-9]{1,64}$`) // No '*' allowedTopicPatternRegex = regexp.MustCompile(`^[-_*A-Za-z0-9]{1,64}$`) // Adds '*' for wildcards! allowedTierRegex = regexp.MustCompile(`^[-_A-Za-z0-9]{1,64}$`) ) // AllowedRole returns true if the given role can be used for new users func AllowedRole(role Role) bool { return role == RoleUser || role == RoleAdmin } // AllowedUsername returns true if the given username is valid func AllowedUsername(username string) bool { return allowedUsernameRegex.MatchString(username) } // AllowedTopic returns true if the given topic name is valid func AllowedTopic(topic string) bool { return allowedTopicRegex.MatchString(topic) } // AllowedTopicPattern returns true if the given topic pattern is valid; this includes the wildcard character (*) func AllowedTopicPattern(topic string) bool { return allowedTopicPatternRegex.MatchString(topic) } // AllowedTier returns true if the given tier name is valid func AllowedTier(tier string) bool { return allowedTierRegex.MatchString(tier) } // Error constants used by the package var ( ErrUnauthenticated = errors.New("unauthenticated") ErrUnauthorized = errors.New("unauthorized") ErrInvalidArgument = errors.New("invalid argument") ErrUserNotFound = errors.New("user not found") ErrUserExists = errors.New("user already exists") ErrTierNotFound = errors.New("tier not found") ErrTokenNotFound = errors.New("token not found") ErrPhoneNumberNotFound = errors.New("phone number not found") ErrTooManyReservations = errors.New("new tier has lower reservation limit") ErrPhoneNumberExists = errors.New("phone number already exists") ) ntfy-2.11.0/user/types_test.go000066400000000000000000000041351462047176100162760ustar00rootroot00000000000000package user import ( "github.com/stretchr/testify/require" "testing" ) func TestPermission(t *testing.T) { require.Equal(t, PermissionReadWrite, NewPermission(true, true)) require.Equal(t, PermissionRead, NewPermission(true, false)) require.Equal(t, PermissionWrite, NewPermission(false, true)) require.Equal(t, PermissionDenyAll, NewPermission(false, false)) require.True(t, PermissionReadWrite.IsReadWrite()) require.True(t, PermissionReadWrite.IsRead()) require.True(t, PermissionReadWrite.IsWrite()) require.True(t, PermissionRead.IsRead()) require.True(t, PermissionWrite.IsWrite()) } func TestParsePermission(t *testing.T) { _, err := ParsePermission("no") require.NotNil(t, err) p, err := ParsePermission("read-write") require.Nil(t, err) require.Equal(t, PermissionReadWrite, p) p, err = ParsePermission("rw") require.Nil(t, err) require.Equal(t, PermissionReadWrite, p) p, err = ParsePermission("read-only") require.Nil(t, err) require.Equal(t, PermissionRead, p) p, err = ParsePermission("WRITE") require.Nil(t, err) require.Equal(t, PermissionWrite, p) p, err = ParsePermission("deny-all") require.Nil(t, err) require.Equal(t, PermissionDenyAll, p) } func TestAllowedTier(t *testing.T) { require.False(t, AllowedTier(" no")) require.True(t, AllowedTier("yes")) } func TestTierContext(t *testing.T) { tier := &Tier{ ID: "ti_abc", Code: "pro", StripeMonthlyPriceID: "price_123", StripeYearlyPriceID: "price_456", } context := tier.Context() require.Equal(t, "ti_abc", context["tier_id"]) require.Equal(t, "pro", context["tier_code"]) require.Equal(t, "price_123", context["stripe_monthly_price_id"]) require.Equal(t, "price_456", context["stripe_yearly_price_id"]) } func TestUsernameRegex(t *testing.T) { username := "phil" usernameEmail := "phil@ntfy.sh" usernameEmailAlias := "phil+alias@ntfy.sh" usernameInvalid := "phil\rocks" require.True(t, AllowedUsername(username)) require.True(t, AllowedUsername(usernameEmail)) require.True(t, AllowedUsername(usernameEmailAlias)) require.False(t, AllowedUsername(usernameInvalid)) } ntfy-2.11.0/util/000077500000000000000000000000001462047176100135405ustar00rootroot00000000000000ntfy-2.11.0/util/batching_queue.go000066400000000000000000000034601462047176100170550ustar00rootroot00000000000000package util import ( "sync" "time" ) // BatchingQueue is a queue that creates batches of the enqueued elements based on a // max batch size and a batch timeout. // // Example: // // q := NewBatchingQueue[int](2, 500 * time.Millisecond) // go func() { // for batch := range q.Dequeue() { // fmt.Println(batch) // } // }() // q.Enqueue(1) // q.Enqueue(2) // q.Enqueue(3) // time.Sleep(time.Second) // // This example will emit batch [1, 2] immediately (because the batch size is 2), and // a batch [3] after 500ms. type BatchingQueue[T any] struct { batchSize int timeout time.Duration in []T out chan []T mu sync.Mutex } // NewBatchingQueue creates a new BatchingQueue func NewBatchingQueue[T any](batchSize int, timeout time.Duration) *BatchingQueue[T] { q := &BatchingQueue[T]{ batchSize: batchSize, timeout: timeout, in: make([]T, 0), out: make(chan []T), } go q.timeoutTicker() return q } // Enqueue enqueues an element to the queue. If the configured batch size is reached, // the batch will be emitted immediately. func (q *BatchingQueue[T]) Enqueue(element T) { q.mu.Lock() q.in = append(q.in, element) var elements []T if len(q.in) == q.batchSize { elements = q.dequeueAll() } q.mu.Unlock() if len(elements) > 0 { q.out <- elements } } // Dequeue returns a channel emitting batches of elements func (q *BatchingQueue[T]) Dequeue() <-chan []T { return q.out } func (q *BatchingQueue[T]) dequeueAll() []T { elements := make([]T, len(q.in)) copy(elements, q.in) q.in = q.in[:0] return elements } func (q *BatchingQueue[T]) timeoutTicker() { if q.timeout == 0 { return } ticker := time.NewTicker(q.timeout) for range ticker.C { q.mu.Lock() elements := q.dequeueAll() q.mu.Unlock() if len(elements) > 0 { q.out <- elements } } } ntfy-2.11.0/util/batching_queue_test.go000066400000000000000000000023531462047176100201140ustar00rootroot00000000000000package util_test import ( "github.com/stretchr/testify/require" "heckel.io/ntfy/v2/util" "math/rand" "sync" "testing" "time" ) func TestBatchingQueue_InfTimeout(t *testing.T) { q := util.NewBatchingQueue[int](25, 1*time.Hour) batches, total := make([][]int, 0), 0 var mu sync.Mutex go func() { for batch := range q.Dequeue() { mu.Lock() batches = append(batches, batch) total += len(batch) mu.Unlock() } }() for i := 0; i < 101; i++ { go q.Enqueue(i) } time.Sleep(time.Second) mu.Lock() require.Equal(t, 100, total) // One is missing, stuck in the last batch! require.Equal(t, 4, len(batches)) mu.Unlock() } func TestBatchingQueue_WithTimeout(t *testing.T) { q := util.NewBatchingQueue[int](25, 100*time.Millisecond) batches, total := make([][]int, 0), 0 var mu sync.Mutex go func() { for batch := range q.Dequeue() { mu.Lock() batches = append(batches, batch) total += len(batch) mu.Unlock() } }() for i := 0; i < 101; i++ { go func(i int) { time.Sleep(time.Duration(rand.Intn(700)) * time.Millisecond) q.Enqueue(i) }(i) } time.Sleep(time.Second) mu.Lock() require.Equal(t, 101, total) require.True(t, len(batches) > 4) // 101/25 require.True(t, len(batches) < 21) mu.Unlock() } ntfy-2.11.0/util/content_type_writer.go000066400000000000000000000025531462047176100202030ustar00rootroot00000000000000package util import ( "net/http" "strings" ) // ContentTypeWriter is an implementation of http.ResponseWriter that will detect the content type and set the // Content-Type and (optionally) Content-Disposition headers accordingly. // // It will always set a Content-Type based on http.DetectContentType, but will never send the "text/html" // content type. type ContentTypeWriter struct { w http.ResponseWriter filename string sniffed bool } // NewContentTypeWriter creates a new ContentTypeWriter func NewContentTypeWriter(w http.ResponseWriter, filename string) *ContentTypeWriter { return &ContentTypeWriter{w, filename, false} } func (w *ContentTypeWriter) Write(p []byte) (n int, err error) { if w.sniffed { return w.w.Write(p) } // Detect and set Content-Type header // Fix content types that we don't want to inline-render in the browser. In particular, // we don't want to render HTML in the browser for security reasons. contentType, _ := DetectContentType(p, w.filename) if strings.HasPrefix(contentType, "text/html") { contentType = strings.ReplaceAll(contentType, "text/html", "text/plain") } else if contentType == "application/octet-stream" { contentType = "" // Reset to let downstream http.ResponseWriter take care of it } if contentType != "" { w.w.Header().Set("Content-Type", contentType) } w.sniffed = true return w.w.Write(p) } ntfy-2.11.0/util/content_type_writer_test.go000066400000000000000000000037471462047176100212500ustar00rootroot00000000000000package util import ( "crypto/rand" "github.com/stretchr/testify/require" "net/http/httptest" "testing" ) func TestSniffWriter_WriteHTML(t *testing.T) { rr := httptest.NewRecorder() sw := NewContentTypeWriter(rr, "") sw.Write([]byte("")) require.Equal(t, "text/plain; charset=utf-8", rr.Header().Get("Content-Type")) } func TestSniffWriter_WriteTwoWriteCalls(t *testing.T) { rr := httptest.NewRecorder() sw := NewContentTypeWriter(rr, "") sw.Write([]byte{0x25, 0x50, 0x44, 0x46, 0x2d, 0x11, 0x22, 0x33}) sw.Write([]byte("")) require.Equal(t, "application/pdf", rr.Header().Get("Content-Type")) } func TestSniffWriter_NoSniffWriterWriteHTML(t *testing.T) { // This test just makes sure that without the sniff-w, we would get text/html rr := httptest.NewRecorder() rr.Write([]byte("")) require.Equal(t, "text/html; charset=utf-8", rr.Header().Get("Content-Type")) } func TestSniffWriter_WriteHTMLSplitIntoTwoWrites(t *testing.T) { // This test shows how splitting the HTML into two Write() calls will still yield text/plain rr := httptest.NewRecorder() sw := NewContentTypeWriter(rr, "") sw.Write([]byte("alert('hi')")) require.Equal(t, "text/plain; charset=utf-8", rr.Header().Get("Content-Type")) } func TestSniffWriter_WriteUnknownMimeType(t *testing.T) { rr := httptest.NewRecorder() sw := NewContentTypeWriter(rr, "") randomBytes := make([]byte, 199) rand.Read(randomBytes[5:]) // Start at an offset; the test kept failing randomly because it hit random magic strings sw.Write(randomBytes) require.Equal(t, "application/octet-stream", rr.Header().Get("Content-Type")) } func TestSniffWriter_WriteWithFilenameAPK(t *testing.T) { rr := httptest.NewRecorder() sw := NewContentTypeWriter(rr, "https://example.com/ntfy.apk") sw.Write([]byte{0x50, 0x4B, 0x03, 0x04}) require.Equal(t, "application/vnd.android.package-archive", rr.Header().Get("Content-Type")) } ntfy-2.11.0/util/embedfs.go000066400000000000000000000027301462047176100154760ustar00rootroot00000000000000package util import ( "embed" "errors" "io" "io/fs" "time" ) // CachingEmbedFS is a wrapper around embed.FS that allows setting a ModTime, so that the // default static file server can send 304s back. It can be used like this: // // var ( // //go:embed docs // docsStaticFs embed.FS // docsStaticCached = &util.CachingEmbedFS{ModTime: time.Now(), FS: docsStaticFs} // ) // // http.FileServer(http.FS(docsStaticCached)).ServeHTTP(w, r) type CachingEmbedFS struct { ModTime time.Time FS embed.FS } // Open opens a file in the embedded filesystem and returns a fs.File with the static ModTime func (f CachingEmbedFS) Open(name string) (fs.File, error) { file, err := f.FS.Open(name) if err != nil { return nil, err } stat, err := file.Stat() if err != nil { return nil, err } return &cachingEmbedFile{file, f.ModTime, stat}, nil } type cachingEmbedFile struct { file fs.File modTime time.Time fs.FileInfo } func (f cachingEmbedFile) Stat() (fs.FileInfo, error) { return f, nil } func (f cachingEmbedFile) Read(bytes []byte) (int, error) { return f.file.Read(bytes) } func (f *cachingEmbedFile) Seek(offset int64, whence int) (int64, error) { if seeker, ok := f.file.(io.Seeker); ok { return seeker.Seek(offset, whence) } return 0, errors.New("io.Seeker not implemented") } func (f cachingEmbedFile) ModTime() time.Time { return f.modTime // We override this! } func (f cachingEmbedFile) Close() error { return f.file.Close() } ntfy-2.11.0/util/embedfs/000077500000000000000000000000001462047176100151455ustar00rootroot00000000000000ntfy-2.11.0/util/embedfs/test.txt000066400000000000000000000000501462047176100166600ustar00rootroot00000000000000This is a test file for embedfs_test.go ntfy-2.11.0/util/embedfs_test.go000066400000000000000000000020771462047176100165410ustar00rootroot00000000000000package util import ( "embed" "github.com/stretchr/testify/require" "net/http" "net/http/httptest" "testing" "time" ) var ( modTime = time.Now() //go:embed embedfs testFs embed.FS testFsCached = &CachingEmbedFS{ModTime: modTime, FS: testFs} ) func TestCachingEmbedFS(t *testing.T) { s := http.FileServer(http.FS(testFsCached)) rr := httptest.NewRecorder() req, _ := http.NewRequest("GET", "/embedfs/test.txt", nil) s.ServeHTTP(rr, req) require.Equal(t, 200, rr.Code) lastModified := rr.Header().Get("Last-Modified") rr = httptest.NewRecorder() req, _ = http.NewRequest("GET", "/embedfs/test.txt", nil) req.Header.Set("If-Modified-Since", lastModified) s.ServeHTTP(rr, req) require.Equal(t, 304, rr.Code) // Huzzah! } func TestCachingEmbedFS_Range(t *testing.T) { s := http.FileServer(http.FS(testFsCached)) rr := httptest.NewRecorder() req, _ := http.NewRequest("GET", "/embedfs/test.txt", nil) req.Header.Set("Range", "bytes=1-20") s.ServeHTTP(rr, req) require.Equal(t, 206, rr.Code) require.Equal(t, "his is a test file f", rr.Body.String()) } ntfy-2.11.0/util/gzip_handler.go000066400000000000000000000021551462047176100165400ustar00rootroot00000000000000package util import ( "compress/gzip" "io" "net/http" "strings" "sync" ) // Gzip is a HTTP middleware to transparently compress responses using gzip. // Original code from https://gist.github.com/CJEnright/bc2d8b8dc0c1389a9feeddb110f822d7 (MIT) func Gzip(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if !strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") { next.ServeHTTP(w, r) return } w.Header().Set("Content-Encoding", "gzip") gz := gzPool.Get().(*gzip.Writer) defer gzPool.Put(gz) gz.Reset(w) defer gz.Close() r.Header.Del("Accept-Encoding") // prevent double-gzipping next.ServeHTTP(&gzipResponseWriter{ResponseWriter: w, Writer: gz}, r) }) } var gzPool = sync.Pool{ New: func() any { w := gzip.NewWriter(io.Discard) return w }, } type gzipResponseWriter struct { io.Writer http.ResponseWriter } func (w *gzipResponseWriter) WriteHeader(status int) { w.Header().Del("Content-Length") w.ResponseWriter.WriteHeader(status) } func (w *gzipResponseWriter) Write(b []byte) (int, error) { return w.Writer.Write(b) } ntfy-2.11.0/util/gzip_handler_test.go000066400000000000000000000021451462047176100175760ustar00rootroot00000000000000package util import ( "compress/gzip" "github.com/stretchr/testify/require" "io" "net/http" "net/http/httptest" "testing" ) func TestGzipHandler(t *testing.T) { s := Gzip(http.FileServer(http.FS(testFs))) rr := httptest.NewRecorder() req, _ := http.NewRequest("GET", "/embedfs/test.txt", nil) req.Header.Set("Accept-Encoding", "gzip, deflate") s.ServeHTTP(rr, req) require.Equal(t, 200, rr.Code) require.Equal(t, "gzip", rr.Header().Get("Content-Encoding")) require.Equal(t, "", rr.Header().Get("Content-Length")) gz, _ := gzip.NewReader(rr.Body) b, _ := io.ReadAll(gz) require.Equal(t, "This is a test file for embedfs_test.go\n", string(b)) } func TestGzipHandler_NoGzip(t *testing.T) { s := Gzip(http.FileServer(http.FS(testFs))) rr := httptest.NewRecorder() req, _ := http.NewRequest("GET", "/embedfs/test.txt", nil) s.ServeHTTP(rr, req) require.Equal(t, 200, rr.Code) require.Equal(t, "", rr.Header().Get("Content-Encoding")) require.Equal(t, "40", rr.Header().Get("Content-Length")) b, _ := io.ReadAll(rr.Body) require.Equal(t, "This is a test file for embedfs_test.go\n", string(b)) } ntfy-2.11.0/util/limit.go000066400000000000000000000122501462047176100152050ustar00rootroot00000000000000package util import ( "errors" "golang.org/x/time/rate" "io" "sync" "time" ) // ErrLimitReached is the error returned by the Limiter and LimitWriter when the predefined limit has been reached var ErrLimitReached = errors.New("limit reached") // Limiter is an interface that implements a rate limiting mechanism, e.g. based on time or a fixed value type Limiter interface { // Allow adds one to the limiters value, or returns false if the limit has been reached Allow() bool // AllowN adds n to the limiters value, or returns false if the limit has been reached AllowN(n int64) bool // Value returns the current internal limiter value Value() int64 // Reset resets the state of the limiter Reset() } // FixedLimiter is a helper that allows adding values up to a well-defined limit. Once the limit is reached // ErrLimitReached will be returned. FixedLimiter may be used by multiple goroutines. type FixedLimiter struct { value int64 limit int64 mu sync.Mutex } var _ Limiter = (*FixedLimiter)(nil) // NewFixedLimiter creates a new Limiter func NewFixedLimiter(limit int64) *FixedLimiter { return NewFixedLimiterWithValue(limit, 0) } // NewFixedLimiterWithValue creates a new Limiter and sets the initial value func NewFixedLimiterWithValue(limit, value int64) *FixedLimiter { return &FixedLimiter{ limit: limit, value: value, } } // Allow adds one to the limiters internal value, but only if the limit has not been reached. If the limit was // exceeded, false is returned. func (l *FixedLimiter) Allow() bool { return l.AllowN(1) } // AllowN adds n to the limiters internal value, but only if the limit has not been reached. If the limit was // exceeded after adding n, false is returned. func (l *FixedLimiter) AllowN(n int64) bool { l.mu.Lock() defer l.mu.Unlock() if l.value+n > l.limit { return false } l.value += n return true } // Value returns the current limiter value func (l *FixedLimiter) Value() int64 { l.mu.Lock() defer l.mu.Unlock() return l.value } // Reset sets the limiter's value back to zero func (l *FixedLimiter) Reset() { l.mu.Lock() defer l.mu.Unlock() l.value = 0 } // RateLimiter is a Limiter that wraps a rate.Limiter, allowing a floating time-based limit. type RateLimiter struct { r rate.Limit b int value int64 limiter *rate.Limiter mu sync.Mutex } var _ Limiter = (*RateLimiter)(nil) // NewRateLimiter creates a new RateLimiter func NewRateLimiter(r rate.Limit, b int) *RateLimiter { return NewRateLimiterWithValue(r, b, 0) } // NewRateLimiterWithValue creates a new RateLimiter with the given starting value. // // Note that the starting value only has informational value. It does not impact the underlying // value of the rate.Limiter. func NewRateLimiterWithValue(r rate.Limit, b int, value int64) *RateLimiter { return &RateLimiter{ r: r, b: b, value: value, limiter: rate.NewLimiter(r, b), } } // NewBytesLimiter creates a RateLimiter that is meant to be used for a bytes-per-interval limit, // e.g. 250 MB per day. And example of the underlying idea can be found here: https://go.dev/play/p/0ljgzIZQ6dJ func NewBytesLimiter(bytes int, interval time.Duration) *RateLimiter { return NewRateLimiter(rate.Limit(bytes)*rate.Every(interval), bytes) } // Allow adds one to the limiters internal value, but only if the limit has not been reached. If the limit was // exceeded, false is returned. func (l *RateLimiter) Allow() bool { return l.AllowN(1) } // AllowN adds n to the limiters internal value, but only if the limit has not been reached. If the limit was // exceeded after adding n, false is returned. func (l *RateLimiter) AllowN(n int64) bool { if n <= 0 { return false // No-op. Can't take back bytes you're written! } l.mu.Lock() defer l.mu.Unlock() if !l.limiter.AllowN(time.Now(), int(n)) { return false } l.value += n return true } // Value returns the current limiter value func (l *RateLimiter) Value() int64 { l.mu.Lock() defer l.mu.Unlock() return l.value } // Reset sets the limiter's value back to zero, and resets the underlying rate.Limiter func (l *RateLimiter) Reset() { l.mu.Lock() defer l.mu.Unlock() l.limiter = rate.NewLimiter(l.r, l.b) l.value = 0 } // LimitWriter implements an io.Writer that will pass through all Write calls to the underlying // writer w until any of the limiter's limit is reached, at which point a Write will return ErrLimitReached. // Each limiter's value is increased with every write. type LimitWriter struct { w io.Writer written int64 limiters []Limiter mu sync.Mutex } // NewLimitWriter creates a new LimitWriter func NewLimitWriter(w io.Writer, limiters ...Limiter) *LimitWriter { return &LimitWriter{ w: w, limiters: limiters, } } // Write passes through all writes to the underlying writer until any of the given limiter's limit is reached func (w *LimitWriter) Write(p []byte) (n int, err error) { w.mu.Lock() defer w.mu.Unlock() for i := 0; i < len(w.limiters); i++ { if !w.limiters[i].AllowN(int64(len(p))) { for j := i - 1; j >= 0; j-- { w.limiters[j].AllowN(-int64(len(p))) // Revert limiters limits if not allowed } return 0, ErrLimitReached } } n, err = w.w.Write(p) w.written += int64(n) return } ntfy-2.11.0/util/limit_test.go000066400000000000000000000101161462047176100162430ustar00rootroot00000000000000package util import ( "bytes" "github.com/stretchr/testify/require" "testing" "time" ) func TestFixedLimiter_AllowValueReset(t *testing.T) { l := NewFixedLimiter(10) require.True(t, l.AllowN(5)) require.Equal(t, int64(5), l.Value()) require.True(t, l.AllowN(5)) require.Equal(t, int64(10), l.Value()) require.False(t, l.Allow()) require.Equal(t, int64(10), l.Value()) l.Reset() require.Equal(t, int64(0), l.Value()) require.True(t, l.Allow()) require.True(t, l.AllowN(9)) require.False(t, l.Allow()) } func TestFixedLimiter_AddSub(t *testing.T) { l := NewFixedLimiter(10) l.AllowN(5) if l.value != 5 { t.Fatalf("expected value to be %d, got %d", 5, l.value) } l.AllowN(-2) if l.value != 3 { t.Fatalf("expected value to be %d, got %d", 7, l.value) } } func TestBytesLimiter_Add_Simple(t *testing.T) { l := NewBytesLimiter(250*1024*1024, 24*time.Hour) // 250 MB per 24h require.True(t, l.AllowN(100*1024*1024)) require.Equal(t, int64(100*1024*1024), l.Value()) require.True(t, l.AllowN(100*1024*1024)) require.Equal(t, int64(200*1024*1024), l.Value()) require.False(t, l.AllowN(300*1024*1024)) require.Equal(t, int64(200*1024*1024), l.Value()) } func TestBytesLimiter_Add_Wait(t *testing.T) { l := NewBytesLimiter(250*1024*1024, 24*time.Hour) // 250 MB per 24h (~ 303 bytes per 100ms) require.True(t, l.AllowN(250*1024*1024)) require.False(t, l.AllowN(400)) time.Sleep(200 * time.Millisecond) require.True(t, l.AllowN(400)) } func TestLimitWriter_WriteNoLimiter(t *testing.T) { var buf bytes.Buffer lw := NewLimitWriter(&buf) if _, err := lw.Write(make([]byte, 10)); err != nil { t.Fatal(err) } if _, err := lw.Write(make([]byte, 1)); err != nil { t.Fatal(err) } if buf.Len() != 11 { t.Fatalf("expected buffer length to be %d, got %d", 11, buf.Len()) } } func TestLimitWriter_WriteOneLimiter(t *testing.T) { var buf bytes.Buffer l := NewFixedLimiter(10) lw := NewLimitWriter(&buf, l) if _, err := lw.Write(make([]byte, 10)); err != nil { t.Fatal(err) } if _, err := lw.Write(make([]byte, 1)); err != ErrLimitReached { t.Fatalf("expected ErrLimitReached, got %#v", err) } if buf.Len() != 10 { t.Fatalf("expected buffer length to be %d, got %d", 10, buf.Len()) } if l.value != 10 { t.Fatalf("expected limiter value to be %d, got %d", 10, l.value) } } func TestLimitWriter_WriteTwoLimiters(t *testing.T) { var buf bytes.Buffer l1 := NewFixedLimiter(11) l2 := NewFixedLimiter(9) lw := NewLimitWriter(&buf, l1, l2) if _, err := lw.Write(make([]byte, 8)); err != nil { t.Fatal(err) } if _, err := lw.Write(make([]byte, 2)); err != ErrLimitReached { t.Fatalf("expected ErrLimitReached, got %#v", err) } if buf.Len() != 8 { t.Fatalf("expected buffer length to be %d, got %d", 8, buf.Len()) } if l1.value != 8 { t.Fatalf("expected limiter 1 value to be %d, got %d", 8, l1.value) } if l2.value != 8 { t.Fatalf("expected limiter 2 value to be %d, got %d", 8, l2.value) } } func TestLimitWriter_WriteTwoDifferentLimiters(t *testing.T) { var buf bytes.Buffer l1 := NewFixedLimiter(32) l2 := NewBytesLimiter(8, 200*time.Millisecond) lw := NewLimitWriter(&buf, l1, l2) _, err := lw.Write(make([]byte, 8)) require.Nil(t, err) _, err = lw.Write(make([]byte, 4)) require.Equal(t, ErrLimitReached, err) } func TestLimitWriter_WriteTwoDifferentLimiters_Wait(t *testing.T) { var buf bytes.Buffer l1 := NewFixedLimiter(32) l2 := NewBytesLimiter(8, 200*time.Millisecond) lw := NewLimitWriter(&buf, l1, l2) _, err := lw.Write(make([]byte, 8)) require.Nil(t, err) time.Sleep(250 * time.Millisecond) _, err = lw.Write(make([]byte, 8)) require.Nil(t, err) _, err = lw.Write(make([]byte, 4)) require.Equal(t, ErrLimitReached, err) } func TestLimitWriter_WriteTwoDifferentLimiters_Wait_FixedLimiterFail(t *testing.T) { var buf bytes.Buffer l1 := NewFixedLimiter(11) // <<< This fails below l2 := NewBytesLimiter(8, 200*time.Millisecond) lw := NewLimitWriter(&buf, l1, l2) _, err := lw.Write(make([]byte, 8)) require.Nil(t, err) time.Sleep(250 * time.Millisecond) _, err = lw.Write(make([]byte, 8)) // <<< FixedLimiter fails require.Equal(t, ErrLimitReached, err) } ntfy-2.11.0/util/lookup_cache.go000066400000000000000000000026371462047176100165330ustar00rootroot00000000000000package util import ( "sync" "time" ) // LookupCache is a single-value cache with a time-to-live (TTL). The cache has a lookup function // to retrieve the value and stores it until TTL is reached. // // Example: // // lookup := func() (string, error) { // r, _ := http.Get("...") // s, _ := io.ReadAll(r.Body) // return string(s), nil // } // c := NewLookupCache[string](lookup, time.Hour) // fmt.Println(c.Get()) // Fetches the string via HTTP // fmt.Println(c.Get()) // Uses cached value type LookupCache[T any] struct { value *T lookup func() (T, error) ttl time.Duration updated time.Time mu sync.Mutex } // LookupFunc is a function that is called by the LookupCache if the underlying // value is out-of-date. It returns the new value, or an error. type LookupFunc[T any] func() (T, error) // NewLookupCache creates a new LookupCache with a given time-to-live (TTL) func NewLookupCache[T any](lookup LookupFunc[T], ttl time.Duration) *LookupCache[T] { return &LookupCache[T]{ value: nil, lookup: lookup, ttl: ttl, } } // Value returns the cached value, or retrieves it via the lookup function func (c *LookupCache[T]) Value() (T, error) { c.mu.Lock() defer c.mu.Unlock() if c.value == nil || (c.ttl > 0 && time.Since(c.updated) > c.ttl) { value, err := c.lookup() if err != nil { var t T return t, err } c.value = &value c.updated = time.Now() } return *c.value, nil } ntfy-2.11.0/util/lookup_cache_test.go000066400000000000000000000027321462047176100175660ustar00rootroot00000000000000package util import ( "errors" "github.com/stretchr/testify/require" "testing" "time" ) func TestLookupCache_Success(t *testing.T) { values, i := []string{"first", "second"}, 0 c := NewLookupCache[string](func() (string, error) { time.Sleep(300 * time.Millisecond) v := values[i] i++ return v, nil }, 500*time.Millisecond) start := time.Now() v, err := c.Value() require.Nil(t, err) require.Equal(t, values[0], v) require.True(t, time.Since(start) >= 300*time.Millisecond) start = time.Now() v, err = c.Value() require.Nil(t, err) require.Equal(t, values[0], v) require.True(t, time.Since(start) < 200*time.Millisecond) time.Sleep(550 * time.Millisecond) start = time.Now() v, err = c.Value() require.Nil(t, err) require.Equal(t, values[1], v) require.True(t, time.Since(start) >= 300*time.Millisecond) start = time.Now() v, err = c.Value() require.Nil(t, err) require.Equal(t, values[1], v) require.True(t, time.Since(start) < 200*time.Millisecond) } func TestLookupCache_Error(t *testing.T) { c := NewLookupCache[string](func() (string, error) { time.Sleep(200 * time.Millisecond) return "", errors.New("some error") }, 500*time.Millisecond) start := time.Now() v, err := c.Value() require.NotNil(t, err) require.Equal(t, "", v) require.True(t, time.Since(start) >= 200*time.Millisecond) start = time.Now() v, err = c.Value() require.NotNil(t, err) require.Equal(t, "", v) require.True(t, time.Since(start) >= 200*time.Millisecond) } ntfy-2.11.0/util/peek.go000066400000000000000000000033141462047176100150140ustar00rootroot00000000000000package util import ( "bytes" "errors" "io" "strings" ) // PeekedReadCloser is a ReadCloser that allows peeking into a stream and buffering it in memory. // It can be instantiated using the Peek function. After a stream has been peeked, it can still be fully // read by reading the PeekedReadCloser. It first drained from the memory buffer, and then from the remaining // underlying reader. type PeekedReadCloser struct { PeekedBytes []byte LimitReached bool peeked io.Reader underlying io.ReadCloser closed bool } // Peek reads the underlying ReadCloser into memory up until the limit and returns a PeekedReadCloser. // It does not return an error if limit is reached. Instead, LimitReached will be set to true. func Peek(underlying io.ReadCloser, limit int) (*PeekedReadCloser, error) { if underlying == nil { underlying = io.NopCloser(strings.NewReader("")) } peeked := make([]byte, limit) read, err := io.ReadFull(underlying, peeked) if err != nil && !errors.Is(err, io.ErrUnexpectedEOF) && err != io.EOF { return nil, err } return &PeekedReadCloser{ PeekedBytes: peeked[:read], LimitReached: read == limit, underlying: underlying, peeked: bytes.NewReader(peeked[:read]), closed: false, }, nil } // Read reads from the peeked bytes and then from the underlying stream func (r *PeekedReadCloser) Read(p []byte) (n int, err error) { if r.closed { return 0, io.EOF } n, err = r.peeked.Read(p) if errors.Is(err, io.EOF) { return r.underlying.Read(p) } else if err != nil { return 0, err } return } // Close closes the underlying stream func (r *PeekedReadCloser) Close() error { if r.closed { return io.EOF } r.closed = true return r.underlying.Close() } ntfy-2.11.0/util/peek_test.go000066400000000000000000000024031462047176100160510ustar00rootroot00000000000000package util import ( "github.com/stretchr/testify/require" "io" "strings" "testing" ) func TestPeak_LimitReached(t *testing.T) { underlying := io.NopCloser(strings.NewReader("1234567890")) peaked, err := Peek(underlying, 5) if err != nil { t.Fatal(err) } require.Equal(t, []byte("12345"), peaked.PeekedBytes) require.Equal(t, true, peaked.LimitReached) all, err := io.ReadAll(peaked) if err != nil { t.Fatal(err) } require.Equal(t, []byte("1234567890"), all) require.Equal(t, []byte("12345"), peaked.PeekedBytes) require.Equal(t, true, peaked.LimitReached) } func TestPeak_LimitNotReached(t *testing.T) { underlying := io.NopCloser(strings.NewReader("1234567890")) peaked, err := Peek(underlying, 15) if err != nil { t.Fatal(err) } all, err := io.ReadAll(peaked) if err != nil { t.Fatal(err) } require.Equal(t, []byte("1234567890"), all) require.Equal(t, []byte("1234567890"), peaked.PeekedBytes) require.Equal(t, false, peaked.LimitReached) } func TestPeak_Nil(t *testing.T) { peaked, err := Peek(nil, 15) if err != nil { t.Fatal(err) } all, err := io.ReadAll(peaked) if err != nil { t.Fatal(err) } require.Equal(t, []byte(""), all) require.Equal(t, []byte(""), peaked.PeekedBytes) require.Equal(t, false, peaked.LimitReached) } ntfy-2.11.0/util/time.go000066400000000000000000000074271462047176100150370ustar00rootroot00000000000000package util import ( "errors" "github.com/olebedev/when" "regexp" "strconv" "strings" "time" ) var ( errInvalidDuration = errors.New("unable to parse duration") durationStrRegex = regexp.MustCompile(`(?i)^(\d+)\s*(d|days?|h|hours?|m|mins?|minutes?|s|secs?|seconds?)$`) ) const ( timestampFormat = "2006-01-02T15:04:05.999Z07:00" // Like RFC3339, but with milliseconds ) // FormatTime formats a time.Time in a RFC339-like format that includes milliseconds func FormatTime(t time.Time) string { return t.Format(timestampFormat) } // NextOccurrenceUTC takes a time of day (e.g. 9:00am), and returns the next occurrence // of that time from the current time (in UTC). func NextOccurrenceUTC(timeOfDay, base time.Time) time.Time { hour, minute, seconds := timeOfDay.UTC().Clock() now := base.UTC() next := time.Date(now.Year(), now.Month(), now.Day(), hour, minute, seconds, 0, time.UTC) if next.Before(now) { next = next.AddDate(0, 0, 1) } return next } // ParseFutureTime parses a date/time string to a time.Time. It supports unix timestamps, durations // and natural language dates func ParseFutureTime(s string, now time.Time) (time.Time, error) { s = strings.TrimSpace(s) t, err := parseUnixTime(s, now) if err == nil { return t, nil } t, err = parseFromDuration(s, now) if err == nil { return t, nil } t, err = parseNaturalTime(s, now) if err == nil { return t, nil } return time.Time{}, errInvalidDuration } // ParseDuration is like time.ParseDuration, except that it also understands days (d), which // translates to 24 hours, e.g. "2d" or "20h". func ParseDuration(s string) (time.Duration, error) { d, err := time.ParseDuration(s) if err == nil { return d, nil } matches := durationStrRegex.FindStringSubmatch(s) if matches != nil { number, err := strconv.Atoi(matches[1]) if err != nil { return 0, errInvalidDuration } switch unit := matches[2][0:1]; unit { case "d": return time.Duration(number) * 24 * time.Hour, nil case "h": return time.Duration(number) * time.Hour, nil case "m": return time.Duration(number) * time.Minute, nil case "s": return time.Duration(number) * time.Second, nil default: return 0, errInvalidDuration } } return 0, errInvalidDuration } // FormatDuration formats a time.Duration into a human-readable string, e.g. "2d", "20h", "30m", "40s". // It rounds to the largest unit that is not zero, thereby effectively rounding down. func FormatDuration(d time.Duration) string { if d >= 24*time.Hour { return strconv.Itoa(int(d/(24*time.Hour))) + "d" } if d >= time.Hour { return strconv.Itoa(int(d/time.Hour)) + "h" } if d >= time.Minute { return strconv.Itoa(int(d/time.Minute)) + "m" } if d >= time.Second { return strconv.Itoa(int(d/time.Second)) + "s" } return "0s" } func parseFromDuration(s string, now time.Time) (time.Time, error) { d, err := ParseDuration(s) if err == nil { return now.Add(d), nil } return time.Time{}, errInvalidDuration } func parseUnixTime(s string, now time.Time) (time.Time, error) { t, err := strconv.Atoi(s) if err != nil { return time.Time{}, err } else if int64(t) < now.Unix() { return time.Time{}, errInvalidDuration } return time.Unix(int64(t), 0).UTC(), nil } func parseNaturalTime(s string, now time.Time) (time.Time, error) { r, err := when.EN.Parse(s, now) // returns "nil, nil" if no matches! if err != nil || r == nil { return time.Time{}, errInvalidDuration } else if r.Time.After(now) { return r.Time, nil } // Hack: If the time is parsable, but not in the future, // simply append "tomorrow, " to it. r, err = when.EN.Parse("tomorrow, "+s, now) // returns "nil, nil" if no matches! if err != nil || r == nil { return time.Time{}, errInvalidDuration } else if r.Time.After(now) { return r.Time, nil } return time.Time{}, errInvalidDuration } ntfy-2.11.0/util/time_test.go000066400000000000000000000067101462047176100160700ustar00rootroot00000000000000package util import ( "github.com/stretchr/testify/require" "testing" "time" ) var ( // 2021-12-10 10:17:23 (Friday) base = time.Date(2021, 12, 10, 10, 17, 23, 0, time.UTC) ) func TestNextOccurrenceUTC_NextDate(t *testing.T) { loc, err := time.LoadLocation("America/New_York") require.Nil(t, err) timeOfDay := time.Date(0, 0, 0, 0, 0, 0, 0, time.UTC) // Run at midnight UTC nowInFairfieldCT := time.Date(2023, time.January, 10, 22, 19, 12, 0, loc) nextRunTme := NextOccurrenceUTC(timeOfDay, nowInFairfieldCT) require.Equal(t, time.Date(2023, time.January, 12, 0, 0, 0, 0, time.UTC), nextRunTme) } func TestNextOccurrenceUTC_SameDay(t *testing.T) { loc, err := time.LoadLocation("America/New_York") require.Nil(t, err) timeOfDay := time.Date(0, 0, 0, 4, 0, 0, 0, time.UTC) // Run at 4am UTC nowInFairfieldCT := time.Date(2023, time.January, 10, 22, 19, 12, 0, loc) nextRunTme := NextOccurrenceUTC(timeOfDay, nowInFairfieldCT) require.Equal(t, time.Date(2023, time.January, 11, 4, 0, 0, 0, time.UTC), nextRunTme) } func TestParseFutureTime_11am_FutureTime(t *testing.T) { d, err := ParseFutureTime("11am", base) require.Nil(t, err) require.Equal(t, time.Date(2021, 12, 10, 11, 0, 0, 0, time.UTC), d) // Same day } func TestParseFutureTime_9am_PastTime(t *testing.T) { d, err := ParseFutureTime("9am", base) require.Nil(t, err) require.Equal(t, time.Date(2021, 12, 11, 9, 0, 0, 0, time.UTC), d) // Next day } func TestParseFutureTime_Monday_10_30pm_FutureTime(t *testing.T) { d, err := ParseFutureTime("Monday, 10:30pm", base) require.Nil(t, err) require.Equal(t, time.Date(2021, 12, 13, 22, 30, 0, 0, time.UTC), d) } func TestParseFutureTime_30m(t *testing.T) { d, err := ParseFutureTime("30m", base) require.Nil(t, err) require.Equal(t, time.Date(2021, 12, 10, 10, 47, 23, 0, time.UTC), d) } func TestParseFutureTime_30min(t *testing.T) { d, err := ParseFutureTime("30min", base) require.Nil(t, err) require.Equal(t, time.Date(2021, 12, 10, 10, 47, 23, 0, time.UTC), d) } func TestParseFutureTime_3h(t *testing.T) { d, err := ParseFutureTime("3h", base) require.Nil(t, err) require.Equal(t, time.Date(2021, 12, 10, 13, 17, 23, 0, time.UTC), d) } func TestParseFutureTime_1day(t *testing.T) { d, err := ParseFutureTime("1 day", base) require.Nil(t, err) require.Equal(t, time.Date(2021, 12, 11, 10, 17, 23, 0, time.UTC), d) } func TestParseFutureTime_UnixTime(t *testing.T) { d, err := ParseFutureTime("1639183911", base) require.Nil(t, err) require.Equal(t, time.Date(2021, 12, 11, 0, 51, 51, 0, time.UTC), d) } func TestParseDuration(t *testing.T) { d, err := ParseDuration("2d") require.Nil(t, err) require.Equal(t, 48*time.Hour, d) d, err = ParseDuration("2h") require.Nil(t, err) require.Equal(t, 2*time.Hour, d) d, err = ParseDuration("0") require.Nil(t, err) require.Equal(t, time.Duration(0), d) } func TestFormatDuration(t *testing.T) { values := []struct { duration time.Duration expected string }{ {24 * time.Second, "24s"}, {56 * time.Minute, "56m"}, {time.Hour, "1h"}, {2 * time.Hour, "2h"}, {24 * time.Hour, "1d"}, {3 * 24 * time.Hour, "3d"}, } for _, value := range values { require.Equal(t, value.expected, FormatDuration(value.duration)) d, err := ParseDuration(FormatDuration(value.duration)) require.Nil(t, err) require.Equalf(t, value.duration, d, "duration does not match: %v != %v", value.duration, d) } } func TestFormatDuration_Rounded(t *testing.T) { require.Equal(t, "1d", FormatDuration(47*time.Hour)) } ntfy-2.11.0/util/timeout_writer.go000066400000000000000000000015731462047176100171570ustar00rootroot00000000000000package util import ( "errors" "io" "time" ) // ErrWriteTimeout is returned when a write timed out var ErrWriteTimeout = errors.New("write operation failed due to timeout since creation") // TimeoutWriter wraps an io.Writer that will time out after the given timeout type TimeoutWriter struct { writer io.Writer timeout time.Duration start time.Time } // NewTimeoutWriter creates a new TimeoutWriter func NewTimeoutWriter(w io.Writer, timeout time.Duration) *TimeoutWriter { return &TimeoutWriter{ writer: w, timeout: timeout, start: time.Now(), } } // Write implements the io.Writer interface, failing if called after the timeout period from creation. func (tw *TimeoutWriter) Write(p []byte) (n int, err error) { if time.Since(tw.start) > tw.timeout { return 0, errors.New("write operation failed due to timeout since creation") } return tw.writer.Write(p) } ntfy-2.11.0/util/util.go000066400000000000000000000261221462047176100150470ustar00rootroot00000000000000package util import ( "bytes" "encoding/base64" "encoding/json" "errors" "fmt" "io" "math" "math/rand" "net/netip" "os" "regexp" "strconv" "strings" "sync" "time" "golang.org/x/time/rate" "github.com/gabriel-vasile/mimetype" "golang.org/x/term" ) const ( randomStringCharset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" randomStringLowerCaseCharset = "abcdefghijklmnopqrstuvwxyz0123456789" ) var ( random = rand.New(rand.NewSource(time.Now().UnixNano())) randomMutex = sync.Mutex{} sizeStrRegex = regexp.MustCompile(`(?i)^(\d+)([gmkb])?$`) errInvalidPriority = errors.New("invalid priority") noQuotesRegex = regexp.MustCompile(`^[-_./:@a-zA-Z0-9]+$`) ) // Errors for UnmarshalJSON and UnmarshalJSONWithLimit functions var ( ErrUnmarshalJSON = errors.New("unmarshalling JSON failed") ErrTooLargeJSON = errors.New("too large JSON") ) // FileExists checks if a file exists, and returns true if it does func FileExists(filename string) bool { stat, _ := os.Stat(filename) return stat != nil } // Contains returns true if needle is contained in haystack func Contains[T comparable](haystack []T, needle T) bool { for _, s := range haystack { if s == needle { return true } } return false } // ContainsIP returns true if any one of the of prefixes contains the ip. func ContainsIP(haystack []netip.Prefix, needle netip.Addr) bool { for _, s := range haystack { if s.Contains(needle) { return true } } return false } // ContainsAll returns true if all needles are contained in haystack func ContainsAll[T comparable](haystack []T, needles []T) bool { for _, needle := range needles { if !Contains(haystack, needle) { return false } } return true } // SplitNoEmpty splits a string using strings.Split, but filters out empty strings func SplitNoEmpty(s string, sep string) []string { res := make([]string, 0) for _, r := range strings.Split(s, sep) { if r != "" { res = append(res, r) } } return res } // SplitKV splits a string into a key/value pair using a separator, and trimming space. If the separator // is not found, key is empty. func SplitKV(s string, sep string) (key string, value string) { kv := strings.SplitN(strings.TrimSpace(s), sep, 2) if len(kv) == 2 { return strings.TrimSpace(kv[0]), strings.TrimSpace(kv[1]) } return "", strings.TrimSpace(kv[0]) } // LastString returns the last string in a slice, or def if s is empty func LastString(s []string, def string) string { if len(s) == 0 { return def } return s[len(s)-1] } // RandomString returns a random string with a given length func RandomString(length int) string { return RandomStringPrefix("", length) } // RandomStringPrefix returns a random string with a given length, with a prefix func RandomStringPrefix(prefix string, length int) string { return randomStringPrefixWithCharset(prefix, length, randomStringCharset) } // RandomLowerStringPrefix returns a random lowercase-only string with a given length, with a prefix func RandomLowerStringPrefix(prefix string, length int) string { return randomStringPrefixWithCharset(prefix, length, randomStringLowerCaseCharset) } func randomStringPrefixWithCharset(prefix string, length int, charset string) string { randomMutex.Lock() // Who would have thought that random.Intn() is not thread-safe?! defer randomMutex.Unlock() b := make([]byte, length-len(prefix)) for i := range b { b[i] = charset[random.Intn(len(charset))] } return prefix + string(b) } // ValidRandomString returns true if the given string matches the format created by RandomString func ValidRandomString(s string, length int) bool { if len(s) != length { return false } for _, c := range strings.Split(s, "") { if !strings.Contains(randomStringCharset, c) { return false } } return true } // ParsePriority parses a priority string into its equivalent integer value func ParsePriority(priority string) (int, error) { p := strings.TrimSpace(strings.ToLower(priority)) switch p { case "": return 0, nil case "1", "min": return 1, nil case "2", "low": return 2, nil case "3", "default": return 3, nil case "4", "high": return 4, nil case "5", "max", "urgent": return 5, nil default: return 0, errInvalidPriority } } // PriorityString converts a priority number to a string func PriorityString(priority int) (string, error) { switch priority { case 0: return "default", nil case 1: return "min", nil case 2: return "low", nil case 3: return "default", nil case 4: return "high", nil case 5: return "max", nil default: return "", errInvalidPriority } } // ShortTopicURL shortens the topic URL to be human-friendly, removing the http:// or https:// func ShortTopicURL(s string) string { return strings.TrimPrefix(strings.TrimPrefix(s, "https://"), "http://") } // DetectContentType probes the byte array b and returns mime type and file extension. // The filename is only used to override certain special cases. func DetectContentType(b []byte, filename string) (mimeType string, ext string) { if strings.HasSuffix(strings.ToLower(filename), ".apk") { return "application/vnd.android.package-archive", ".apk" } m := mimetype.Detect(b) mimeType, ext = m.String(), m.Extension() if ext == "" { ext = ".bin" } return } // ParseSize parses a size string like 2K or 2M into bytes. If no unit is found, e.g. 123, bytes is assumed. func ParseSize(s string) (int64, error) { matches := sizeStrRegex.FindStringSubmatch(s) if matches == nil { return -1, fmt.Errorf("invalid size %s", s) } value, err := strconv.Atoi(matches[1]) if err != nil { return -1, fmt.Errorf("cannot convert number %s", matches[1]) } switch strings.ToUpper(matches[2]) { case "T": return int64(value) * 1024 * 1024 * 1024 * 1024, nil case "G": return int64(value) * 1024 * 1024 * 1024, nil case "M": return int64(value) * 1024 * 1024, nil case "K": return int64(value) * 1024, nil default: return int64(value), nil } } // FormatSize formats the size in a way that it can be parsed by ParseSize. // It does not include decimal places. Uneven sizes are rounded down. func FormatSize(b int64) string { const unit = 1024 if b < unit { return fmt.Sprintf("%d", b) } div, exp := int64(unit), 0 for n := b / unit; n >= unit; n /= unit { div *= unit exp++ } return fmt.Sprintf("%d%c", int(math.Floor(float64(b)/float64(div))), "KMGT"[exp]) } // FormatSizeHuman formats bytes into a human-readable notation, e.g. 2.1 MB func FormatSizeHuman(b int64) string { const unit = 1024 if b < unit { return fmt.Sprintf("%d bytes", b) } div, exp := int64(unit), 0 for n := b / unit; n >= unit; n /= unit { div *= unit exp++ } return fmt.Sprintf("%.1f %cB", float64(b)/float64(div), "KMGT"[exp]) } // ReadPassword will read a password from STDIN. If the terminal supports it, it will not print the // input characters to the screen. If not, it'll just read using normal readline semantics (useful for testing). func ReadPassword(in io.Reader) ([]byte, error) { // If in is a file and a character device (a TTY), use term.ReadPassword if f, ok := in.(*os.File); ok { stat, err := f.Stat() if err != nil { return nil, err } if (stat.Mode() & os.ModeCharDevice) == os.ModeCharDevice { password, err := term.ReadPassword(int(f.Fd())) // This is always going to be 0 if err != nil { return nil, err } else if len(password) == 0 { return nil, errors.New("password cannot be empty") } return password, nil } } // Fallback: Manually read util \n if found, see #69 for details why this is so manual password := make([]byte, 0) buf := make([]byte, 1) for { _, err := in.Read(buf) if err == io.EOF || buf[0] == '\n' { break } else if err != nil { return nil, err } else if len(password) > 10240 { return nil, errors.New("passwords this long are not supported") } password = append(password, buf[0]) } if len(password) == 0 { return nil, errors.New("password cannot be empty") } return password, nil } // BasicAuth encodes the Authorization header value for basic auth func BasicAuth(user, pass string) string { return fmt.Sprintf("Basic %s", base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s:%s", user, pass)))) } // BearerAuth encodes the Authorization header value for a bearer/token auth func BearerAuth(token string) string { return fmt.Sprintf("Bearer %s", token) } // MaybeMarshalJSON returns a JSON string of the given object, or "" if serialization failed. // This is useful for logging purposes where a failure doesn't matter that much. func MaybeMarshalJSON(v any) string { jsonBytes, err := json.MarshalIndent(v, "", " ") if err != nil { return "" } if len(jsonBytes) > 5000 { return string(jsonBytes)[:5000] } return string(jsonBytes) } // QuoteCommand combines a command array to a string, quoting arguments that need quoting. // This function is naive, and sometimes wrong. It is only meant for lo pretty-printing a command. // // Warning: Never use this function with the intent to run the resulting command. // // Example: // // []string{"ls", "-al", "Document Folder"} -> ls -al "Document Folder" func QuoteCommand(command []string) string { var quoted []string for _, c := range command { if noQuotesRegex.MatchString(c) { quoted = append(quoted, c) } else { quoted = append(quoted, fmt.Sprintf(`"%s"`, c)) } } return strings.Join(quoted, " ") } // UnmarshalJSON reads the given io.ReadCloser into a struct func UnmarshalJSON[T any](body io.ReadCloser) (*T, error) { var obj T if err := json.NewDecoder(body).Decode(&obj); err != nil { return nil, ErrUnmarshalJSON } return &obj, nil } // UnmarshalJSONWithLimit reads the given io.ReadCloser into a struct, but only until limit is reached func UnmarshalJSONWithLimit[T any](r io.ReadCloser, limit int, allowEmpty bool) (*T, error) { defer r.Close() p, err := Peek(r, limit) if err != nil { return nil, err } else if p.LimitReached { return nil, ErrTooLargeJSON } var obj T if len(bytes.TrimSpace(p.PeekedBytes)) == 0 && allowEmpty { return &obj, nil } else if err := json.NewDecoder(p).Decode(&obj); err != nil { return nil, ErrUnmarshalJSON } return &obj, nil } // Retry executes function f until if succeeds, and then returns t. If f fails, it sleeps // and tries again. The sleep durations are passed as the after params. func Retry[T any](f func() (*T, error), after ...time.Duration) (t *T, err error) { for _, delay := range after { if t, err = f(); err == nil { return t, nil } time.Sleep(delay) } return nil, err } // MinMax returns value if it is between min and max, or either // min or max if it is out of range func MinMax[T int | int64](value, min, max T) T { if value < min { return min } else if value > max { return max } return value } // Max returns the maximum value of the two given values func Max[T int | int64 | rate.Limit](a, b T) T { if a > b { return a } return b } // String turns a string into a pointer of a string func String(v string) *string { return &v } // Int turns an int into a pointer of an int func Int(v int) *int { return &v } // Time turns a time.Time into a pointer func Time(v time.Time) *time.Time { return &v } ntfy-2.11.0/util/util_test.go000066400000000000000000000211251462047176100161040ustar00rootroot00000000000000package util import ( "errors" "io" "net/netip" "os" "path/filepath" "strings" "testing" "time" "golang.org/x/time/rate" "github.com/stretchr/testify/require" ) func TestRandomString(t *testing.T) { s1 := RandomString(10) s2 := RandomString(10) s3 := RandomString(12) require.Equal(t, 10, len(s1)) require.Equal(t, 10, len(s2)) require.Equal(t, 12, len(s3)) require.NotEqual(t, s1, s2) } func TestFileExists(t *testing.T) { filename := filepath.Join(t.TempDir(), "somefile.txt") require.Nil(t, os.WriteFile(filename, []byte{0x25, 0x86}, 0600)) require.True(t, FileExists(filename)) require.False(t, FileExists(filename+".doesnotexist")) } func TestInStringList(t *testing.T) { s := []string{"one", "two"} require.True(t, Contains(s, "two")) require.False(t, Contains(s, "three")) } func TestInStringListAll(t *testing.T) { s := []string{"one", "two", "three", "four"} require.True(t, ContainsAll(s, []string{"two", "four"})) require.False(t, ContainsAll(s, []string{"three", "five"})) } func TestContains(t *testing.T) { s := []int{1, 2} require.True(t, Contains(s, 2)) require.False(t, Contains(s, 3)) } func TestContainsAll(t *testing.T) { require.True(t, ContainsAll([]int{1, 2, 3}, []int{2, 3})) require.False(t, ContainsAll([]int{1, 1}, []int{1, 2})) } func TestContainsIP(t *testing.T) { require.True(t, ContainsIP([]netip.Prefix{netip.MustParsePrefix("fd00::/8"), netip.MustParsePrefix("1.1.0.0/16")}, netip.MustParseAddr("1.1.1.1"))) require.True(t, ContainsIP([]netip.Prefix{netip.MustParsePrefix("fd00::/8"), netip.MustParsePrefix("1.1.0.0/16")}, netip.MustParseAddr("fd12:1234:5678::9876"))) require.False(t, ContainsIP([]netip.Prefix{netip.MustParsePrefix("fd00::/8"), netip.MustParsePrefix("1.1.0.0/16")}, netip.MustParseAddr("1.2.0.1"))) require.False(t, ContainsIP([]netip.Prefix{netip.MustParsePrefix("fd00::/8"), netip.MustParsePrefix("1.1.0.0/16")}, netip.MustParseAddr("fc00::1"))) } func TestSplitNoEmpty(t *testing.T) { require.Equal(t, []string{}, SplitNoEmpty("", ",")) require.Equal(t, []string{}, SplitNoEmpty(",,,", ",")) require.Equal(t, []string{"tag1", "tag2"}, SplitNoEmpty("tag1,tag2", ",")) require.Equal(t, []string{"tag1", "tag2"}, SplitNoEmpty("tag1,tag2,", ",")) } func TestParsePriority(t *testing.T) { priorities := []string{"", "1", "2", "3", "4", "5", "min", "LOW", " default ", "HIgh", "max", "urgent"} expected := []int{0, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 5} for i, priority := range priorities { actual, err := ParsePriority(priority) require.Nil(t, err) require.Equal(t, expected[i], actual) } } func TestParsePriority_Invalid(t *testing.T) { priorities := []string{"-1", "6", "aa", "-", "o=1"} for _, priority := range priorities { _, err := ParsePriority(priority) require.Equal(t, errInvalidPriority, err) } } func TestPriorityString(t *testing.T) { priorities := []int{0, 1, 2, 3, 4, 5} expected := []string{"default", "min", "low", "default", "high", "max"} for i, priority := range priorities { actual, err := PriorityString(priority) require.Nil(t, err) require.Equal(t, expected[i], actual) } } func TestPriorityString_Invalid(t *testing.T) { _, err := PriorityString(99) require.Equal(t, err, errInvalidPriority) } func TestShortTopicURL(t *testing.T) { require.Equal(t, "ntfy.sh/mytopic", ShortTopicURL("https://ntfy.sh/mytopic")) require.Equal(t, "ntfy.sh/mytopic", ShortTopicURL("http://ntfy.sh/mytopic")) require.Equal(t, "lalala", ShortTopicURL("lalala")) } func TestParseSize_10GSuccess(t *testing.T) { s, err := ParseSize("10G") require.Nil(t, err) require.Equal(t, int64(10*1024*1024*1024), s) } func TestParseSize_10MUpperCaseSuccess(t *testing.T) { s, err := ParseSize("10M") require.Nil(t, err) require.Equal(t, int64(10*1024*1024), s) } func TestParseSize_10kLowerCaseSuccess(t *testing.T) { s, err := ParseSize("10k") require.Nil(t, err) require.Equal(t, int64(10*1024), s) } func TestParseSize_FailureInvalid(t *testing.T) { _, err := ParseSize("not a size") require.Error(t, err) } func TestFormatSize(t *testing.T) { values := []struct { size int64 expected string }{ {10, "10"}, {10 * 1024, "10K"}, {10 * 1024 * 1024, "10M"}, {10 * 1024 * 1024 * 1024, "10G"}, } for _, value := range values { require.Equal(t, value.expected, FormatSize(value.size)) s, err := ParseSize(FormatSize(value.size)) require.Nil(t, err) require.Equalf(t, value.size, s, "size does not match: %d != %d", value.size, s) } } func TestFormatSize_Rounded(t *testing.T) { require.Equal(t, "10K", FormatSize(10*1024+999)) } func TestSplitKV(t *testing.T) { key, value := SplitKV(" key = value ", "=") require.Equal(t, "key", key) require.Equal(t, "value", value) key, value = SplitKV(" value ", "=") require.Equal(t, "", key) require.Equal(t, "value", value) key, value = SplitKV("mykey=value=with=separator ", "=") require.Equal(t, "mykey", key) require.Equal(t, "value=with=separator", value) } func TestLastString(t *testing.T) { require.Equal(t, "last", LastString([]string{"first", "second", "last"}, "default")) require.Equal(t, "default", LastString([]string{}, "default")) } func TestQuoteCommand(t *testing.T) { require.Equal(t, `ls -al "Document Folder"`, QuoteCommand([]string{"ls", "-al", "Document Folder"})) require.Equal(t, `rsync -av /home/phil/ root@example.com:/home/phil/`, QuoteCommand([]string{"rsync", "-av", "/home/phil/", "root@example.com:/home/phil/"})) require.Equal(t, `/home/sweet/home "Äöü this is a test" "\a\b"`, QuoteCommand([]string{"/home/sweet/home", "Äöü this is a test", "\\a\\b"})) } func TestBasicAuth(t *testing.T) { require.Equal(t, "Basic cGhpbDpwaGls", BasicAuth("phil", "phil")) } func TestBearerAuth(t *testing.T) { require.Equal(t, "Bearer sometoken", BearerAuth("sometoken")) } type testJSON struct { Name string `json:"name"` Something int `json:"something"` } func TestReadJSON_Success(t *testing.T) { v, err := UnmarshalJSON[testJSON](io.NopCloser(strings.NewReader(`{"name":"some name","something":99}`))) require.Nil(t, err) require.Equal(t, "some name", v.Name) require.Equal(t, 99, v.Something) } func TestReadJSON_Failure(t *testing.T) { _, err := UnmarshalJSON[testJSON](io.NopCloser(strings.NewReader(`{"na`))) require.Equal(t, ErrUnmarshalJSON, err) } func TestReadJSONWithLimit_Success(t *testing.T) { v, err := UnmarshalJSONWithLimit[testJSON](io.NopCloser(strings.NewReader(`{"name":"some name","something":99}`)), 100, false) require.Nil(t, err) require.Equal(t, "some name", v.Name) require.Equal(t, 99, v.Something) } func TestReadJSONWithLimit_FailureTooLong(t *testing.T) { _, err := UnmarshalJSONWithLimit[testJSON](io.NopCloser(strings.NewReader(`{"name":"some name","something":99}`)), 10, false) require.Equal(t, ErrTooLargeJSON, err) } func TestReadJSONWithLimit_AllowEmpty(t *testing.T) { v, err := UnmarshalJSONWithLimit[testJSON](io.NopCloser(strings.NewReader(` `)), 10, true) require.Nil(t, err) require.Equal(t, "", v.Name) require.Equal(t, 0, v.Something) } func TestReadJSONWithLimit_NoAllowEmpty(t *testing.T) { _, err := UnmarshalJSONWithLimit[testJSON](io.NopCloser(strings.NewReader(` `)), 10, false) require.Equal(t, ErrUnmarshalJSON, err) } func TestRetry_Succeeds(t *testing.T) { start := time.Now() delays, i := []time.Duration{10 * time.Millisecond, 50 * time.Millisecond, 100 * time.Millisecond, time.Second}, 0 fn := func() (*int, error) { i++ if i < len(delays) { return nil, errors.New("error") } return Int(99), nil } result, err := Retry[int](fn, delays...) require.Nil(t, err) require.Equal(t, 99, *result) require.True(t, time.Since(start).Milliseconds() > 150) } func TestRetry_Fails(t *testing.T) { fn := func() (*int, error) { return nil, errors.New("fails") } _, err := Retry[int](fn, 10*time.Millisecond) require.Error(t, err) } func TestMinMax(t *testing.T) { require.Equal(t, 10, MinMax(9, 10, 99)) require.Equal(t, 99, MinMax(100, 10, 99)) require.Equal(t, 50, MinMax(50, 10, 99)) } func TestMax(t *testing.T) { require.Equal(t, 9, Max(1, 9)) require.Equal(t, 9, Max(9, 1)) require.Equal(t, rate.Every(time.Minute), Max(rate.Every(time.Hour), rate.Every(time.Minute))) } func TestPointerFunctions(t *testing.T) { i, s, ti := Int(99), String("abc"), Time(time.Unix(99, 0)) require.Equal(t, 99, *i) require.Equal(t, "abc", *s) require.Equal(t, time.Unix(99, 0), *ti) } func TestMaybeMarshalJSON(t *testing.T) { require.Equal(t, `"aa"`, MaybeMarshalJSON("aa")) require.Equal(t, `[ "aa", "bb" ]`, MaybeMarshalJSON([]string{"aa", "bb"})) require.Equal(t, "", MaybeMarshalJSON(func() {})) require.Equal(t, `"`+strings.Repeat("x", 4999), MaybeMarshalJSON(strings.Repeat("x", 6000))) } ntfy-2.11.0/web/000077500000000000000000000000001462047176100133405ustar00rootroot00000000000000ntfy-2.11.0/web/.eslintignore000066400000000000000000000000211462047176100160340ustar00rootroot00000000000000src/app/emojis.jsntfy-2.11.0/web/.eslintrc000066400000000000000000000017761462047176100151770ustar00rootroot00000000000000{ "extends": ["airbnb", "prettier"], "env": { "browser": true }, "globals": { "config": "readonly" }, "parserOptions": { "ecmaVersion": 2023 }, "rules": { "no-console": "off", "class-methods-use-this": "off", "func-style": ["error", "expression"], "no-restricted-syntax": ["error", "ForInStatement", "LabeledStatement", "WithStatement"], "no-await-in-loop": "error", "import/no-cycle": "warn", "react/prop-types": "off", "react/destructuring-assignment": "off", "react/jsx-no-useless-fragment": "off", "react/jsx-props-no-spreading": "off", "react/jsx-no-duplicate-props": [ "error", { "ignoreCase": false // For 's [iI]nputProps } ], "react/function-component-definition": [ "error", { "namedComponents": "arrow-function", "unnamedComponents": "arrow-function" } ] }, "overrides": [{ "files": ["./public/sw.js"], "rules": { "no-restricted-globals": "off" } }] } ntfy-2.11.0/web/.prettierignore000066400000000000000000000000641462047176100164030ustar00rootroot00000000000000build/ dist/ public/static/langs/ src/app/emojis.js ntfy-2.11.0/web/index.html000066400000000000000000000046531462047176100153450ustar00rootroot00000000000000 ntfy web
      ntfy-2.11.0/web/package-lock.json000066400000000000000000011632131462047176100165630ustar00rootroot00000000000000{ "name": "ntfy", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ntfy", "version": "1.0.0", "dependencies": { "@emotion/cache": "^11.11.0", "@emotion/react": "^11.11.0", "@emotion/styled": "^11.11.0", "@mui/icons-material": "^5.4.2", "@mui/material": "latest", "dexie": "^3.2.1", "dexie-react-hooks": "^1.1.1", "humanize-duration": "^3.27.3", "i18next": "^21.6.14", "i18next-browser-languagedetector": "^6.1.4", "i18next-http-backend": "^1.4.0", "js-base64": "^3.7.2", "react": "latest", "react-dom": "latest", "react-i18next": "^11.16.2", "react-infinite-scroll-component": "^6.1.0", "react-remark": "^2.1.0", "react-router-dom": "^6.2.2", "stacktrace-gps": "^3.0.4", "stacktrace-js": "^2.0.2", "stylis": "^4.3.0", "stylis-plugin-rtl": "^2.1.1" }, "devDependencies": { "@vitejs/plugin-react": "^4.0.0", "eslint": "^8.41.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-prettier": "^8.8.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", "prettier": "^2.8.8", "vite": "^4.3.9", "vite-plugin-pwa": "^0.15.0" } }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { "version": "7.24.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dependencies": { "@babel/highlight": "^7.24.2", "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.2", "@babel/generator": "^7.24.5", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.24.5", "@babel/helpers": "^7.24.5", "@babel/parser": "^7.24.5", "@babel/template": "^7.24.0", "@babel/traverse": "^7.24.5", "@babel/types": "^7.24.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/babel" } }, "node_modules/@babel/core/node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, "node_modules/@babel/generator": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", "dev": true, "dependencies": { "@babel/types": "^7.24.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, "dependencies": { "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-validator-option": "^7.23.5", "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-member-expression-to-functions": "^7.24.5", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-replace-supers": "^7.24.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/helper-split-export-declaration": "^7.24.5", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "regexpu-core": "^5.3.1", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { "version": "7.23.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { "@babel/template": "^7.22.15", "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", "dev": true, "dependencies": { "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { "version": "7.24.3", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", "dependencies": { "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.24.3", "@babel/helper-simple-access": "^7.24.5", "@babel/helper-split-export-declaration": "^7.24.5", "@babel/helper-validator-identifier": "^7.24.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-wrap-function": "^7.22.20" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-replace-supers": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", "dev": true, "dependencies": { "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", "dev": true, "dependencies": { "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz", "integrity": "sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==", "dev": true, "dependencies": { "@babel/helper-function-name": "^7.23.0", "@babel/template": "^7.24.0", "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", "dev": true, "dependencies": { "@babel/template": "^7.24.0", "@babel/traverse": "^7.24.5", "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", "dependencies": { "@babel/helper-validator-identifier": "^7.24.5", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz", "integrity": "sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/plugin-transform-optional-chaining": "^7.24.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.13.0" } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-import-attributes": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-unicode-sets-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-async-generator-functions": { "version": "7.24.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-remap-async-to-generator": "^7.22.20", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.24.1", "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-remap-async-to-generator": "^7.22.20" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-block-scoping": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-class-properties": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.24.1", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-class-static-block": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.24.4", "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.12.0" } }, "node_modules/@babel/plugin-transform-classes": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-plugin-utils": "^7.24.5", "@babel/helper-replace-supers": "^7.24.1", "@babel/helper-split-export-declaration": "^7.24.5", "globals": "^11.1.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/template": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-destructuring": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-dynamic-import": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", "dev": true, "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-export-namespace-from": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-for-of": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-function-name": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-function-name": "^7.23.0", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-json-strings": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-literals": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-amd": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-simple-access": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-systemjs": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-umd": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-transform-new-target": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-numeric-separator": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-object-rest-spread": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz", "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-plugin-utils": "^7.24.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.24.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-object-super": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-replace-supers": "^7.24.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-optional-chaining": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz", "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-parameters": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-private-methods": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.24.1", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-private-property-in-object": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz", "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-create-class-features-plugin": "^7.24.5", "@babel/helper-plugin-utils": "^7.24.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-property-literals": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-react-jsx-self": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.5.tgz", "integrity": "sha512-RtCJoUO2oYrYwFPtR1/jkoBEcFuI1ae9a9IMxeyAVa3a1Ap4AnxmyIKG2b2FaJKqkidw/0cxRbWN+HOs6ZWd1w==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-react-jsx-source": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.1.tgz", "integrity": "sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-regenerator": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-reserved-words": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-spread": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-template-literals": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz", "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/preset-env": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.5.tgz", "integrity": "sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==", "dev": true, "dependencies": { "@babel/compat-data": "^7.24.4", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-plugin-utils": "^7.24.5", "@babel/helper-validator-option": "^7.23.5", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-import-assertions": "^7.24.1", "@babel/plugin-syntax-import-attributes": "^7.24.1", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.24.1", "@babel/plugin-transform-async-generator-functions": "^7.24.3", "@babel/plugin-transform-async-to-generator": "^7.24.1", "@babel/plugin-transform-block-scoped-functions": "^7.24.1", "@babel/plugin-transform-block-scoping": "^7.24.5", "@babel/plugin-transform-class-properties": "^7.24.1", "@babel/plugin-transform-class-static-block": "^7.24.4", "@babel/plugin-transform-classes": "^7.24.5", "@babel/plugin-transform-computed-properties": "^7.24.1", "@babel/plugin-transform-destructuring": "^7.24.5", "@babel/plugin-transform-dotall-regex": "^7.24.1", "@babel/plugin-transform-duplicate-keys": "^7.24.1", "@babel/plugin-transform-dynamic-import": "^7.24.1", "@babel/plugin-transform-exponentiation-operator": "^7.24.1", "@babel/plugin-transform-export-namespace-from": "^7.24.1", "@babel/plugin-transform-for-of": "^7.24.1", "@babel/plugin-transform-function-name": "^7.24.1", "@babel/plugin-transform-json-strings": "^7.24.1", "@babel/plugin-transform-literals": "^7.24.1", "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", "@babel/plugin-transform-member-expression-literals": "^7.24.1", "@babel/plugin-transform-modules-amd": "^7.24.1", "@babel/plugin-transform-modules-commonjs": "^7.24.1", "@babel/plugin-transform-modules-systemjs": "^7.24.1", "@babel/plugin-transform-modules-umd": "^7.24.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", "@babel/plugin-transform-new-target": "^7.24.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", "@babel/plugin-transform-numeric-separator": "^7.24.1", "@babel/plugin-transform-object-rest-spread": "^7.24.5", "@babel/plugin-transform-object-super": "^7.24.1", "@babel/plugin-transform-optional-catch-binding": "^7.24.1", "@babel/plugin-transform-optional-chaining": "^7.24.5", "@babel/plugin-transform-parameters": "^7.24.5", "@babel/plugin-transform-private-methods": "^7.24.1", "@babel/plugin-transform-private-property-in-object": "^7.24.5", "@babel/plugin-transform-property-literals": "^7.24.1", "@babel/plugin-transform-regenerator": "^7.24.1", "@babel/plugin-transform-reserved-words": "^7.24.1", "@babel/plugin-transform-shorthand-properties": "^7.24.1", "@babel/plugin-transform-spread": "^7.24.1", "@babel/plugin-transform-sticky-regex": "^7.24.1", "@babel/plugin-transform-template-literals": "^7.24.1", "@babel/plugin-transform-typeof-symbol": "^7.24.5", "@babel/plugin-transform-unicode-escapes": "^7.24.1", "@babel/plugin-transform-unicode-property-regex": "^7.24.1", "@babel/plugin-transform-unicode-regex": "^7.24.1", "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.4", "babel-plugin-polyfill-regenerator": "^0.6.1", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/preset-modules": { "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/regjsgen": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", "dev": true }, "node_modules/@babel/runtime": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", "dependencies": { "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { "version": "7.24.0", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/parser": "^7.24.0", "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.24.2", "@babel/generator": "^7.24.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.24.5", "@babel/parser": "^7.24.5", "@babel/types": "^7.24.5", "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", "dependencies": { "@babel/helper-string-parser": "^7.24.1", "@babel/helper-validator-identifier": "^7.24.5", "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@emotion/babel-plugin": { "version": "11.11.0", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/runtime": "^7.18.3", "@emotion/hash": "^0.9.1", "@emotion/memoize": "^0.8.1", "@emotion/serialize": "^1.1.2", "babel-plugin-macros": "^3.1.0", "convert-source-map": "^1.5.0", "escape-string-regexp": "^4.0.0", "find-root": "^1.1.0", "source-map": "^0.5.7", "stylis": "4.2.0" } }, "node_modules/@emotion/babel-plugin/node_modules/stylis": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" }, "node_modules/@emotion/cache": { "version": "11.11.0", "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", "dependencies": { "@emotion/memoize": "^0.8.1", "@emotion/sheet": "^1.2.2", "@emotion/utils": "^1.2.1", "@emotion/weak-memoize": "^0.3.1", "stylis": "4.2.0" } }, "node_modules/@emotion/cache/node_modules/stylis": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" }, "node_modules/@emotion/hash": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" }, "node_modules/@emotion/is-prop-valid": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", "dependencies": { "@emotion/memoize": "^0.8.1" } }, "node_modules/@emotion/memoize": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" }, "node_modules/@emotion/react": { "version": "11.11.4", "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.11.0", "@emotion/cache": "^11.11.0", "@emotion/serialize": "^1.1.3", "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", "@emotion/utils": "^1.2.1", "@emotion/weak-memoize": "^0.3.1", "hoist-non-react-statics": "^3.3.1" }, "peerDependencies": { "react": ">=16.8.0" }, "peerDependenciesMeta": { "@types/react": { "optional": true } } }, "node_modules/@emotion/serialize": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.4.tgz", "integrity": "sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==", "dependencies": { "@emotion/hash": "^0.9.1", "@emotion/memoize": "^0.8.1", "@emotion/unitless": "^0.8.1", "@emotion/utils": "^1.2.1", "csstype": "^3.0.2" } }, "node_modules/@emotion/sheet": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" }, "node_modules/@emotion/styled": { "version": "11.11.5", "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.5.tgz", "integrity": "sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.11.0", "@emotion/is-prop-valid": "^1.2.2", "@emotion/serialize": "^1.1.4", "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", "@emotion/utils": "^1.2.1" }, "peerDependencies": { "@emotion/react": "^11.0.0-rc.0", "react": ">=16.8.0" }, "peerDependenciesMeta": { "@types/react": { "optional": true } } }, "node_modules/@emotion/unitless": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", "peerDependencies": { "react": ">=16.8.0" } }, "node_modules/@emotion/utils": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" }, "node_modules/@emotion/weak-memoize": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" }, "node_modules/@esbuild/android-arm": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", "cpu": [ "arm" ], "dev": true, "optional": true, "os": [ "android" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/android-arm64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "android" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/android-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "android" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/darwin-arm64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "darwin" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/darwin-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "darwin" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/freebsd-arm64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "freebsd" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/freebsd-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "freebsd" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-arm": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", "cpu": [ "arm" ], "dev": true, "optional": true, "os": [ "linux" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-arm64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "linux" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-ia32": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", "cpu": [ "ia32" ], "dev": true, "optional": true, "os": [ "linux" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-loong64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", "cpu": [ "loong64" ], "dev": true, "optional": true, "os": [ "linux" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-mips64el": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", "cpu": [ "mips64el" ], "dev": true, "optional": true, "os": [ "linux" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-ppc64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", "cpu": [ "ppc64" ], "dev": true, "optional": true, "os": [ "linux" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-riscv64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", "cpu": [ "riscv64" ], "dev": true, "optional": true, "os": [ "linux" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-s390x": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", "cpu": [ "s390x" ], "dev": true, "optional": true, "os": [ "linux" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "linux" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/netbsd-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "netbsd" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/openbsd-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "openbsd" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/sunos-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "sunos" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/win32-arm64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "win32" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/win32-ia32": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", "cpu": [ "ia32" ], "dev": true, "optional": true, "os": [ "win32" ], "engines": { "node": ">=12" } }, "node_modules/@esbuild/win32-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "win32" ], "engines": { "node": ">=12" } }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "dependencies": { "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { "version": "4.10.0", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@eslint/js": { "version": "8.57.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@floating-ui/core": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.1.tgz", "integrity": "sha512-42UH54oPZHPdRHdw6BgoBD6cg/eVTmVrFcgeRDM3jbO7uxSoipVcmcIGFcA5jmOHO5apcyvBhkSKES3fQJnu7A==", "dependencies": { "@floating-ui/utils": "^0.2.0" } }, "node_modules/@floating-ui/dom": { "version": "1.6.5", "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.5.tgz", "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", "dependencies": { "@floating-ui/core": "^1.0.0", "@floating-ui/utils": "^0.2.0" } }, "node_modules/@floating-ui/react-dom": { "version": "2.0.9", "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.9.tgz", "integrity": "sha512-q0umO0+LQK4+p6aGyvzASqKbKOJcAHJ7ycE9CuUvfx3s9zTHWmGJTPOIlM/hmSBfUfg/XfY5YhLBLR/LHwShQQ==", "dependencies": { "@floating-ui/dom": "^1.0.0" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "node_modules/@floating-ui/utils": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "engines": { "node": ">=12.22" }, "funding": { "type": "github", "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/object-schema": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@mapbox/hast-util-table-cell-style": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/@mapbox/hast-util-table-cell-style/-/hast-util-table-cell-style-0.2.1.tgz", "integrity": "sha512-LyQz4XJIdCdY/+temIhD/Ed0x/p4GAOUycpFSEK2Ads1CPKZy6b7V/2ROEtQiLLQ8soIs0xe/QAoR6kwpyW/yw==", "dependencies": { "unist-util-visit": "^1.4.1" }, "engines": { "node": ">=12" } }, "node_modules/@mui/base": { "version": "5.0.0-beta.40", "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", "dependencies": { "@babel/runtime": "^7.23.9", "@floating-ui/react-dom": "^2.0.8", "@mui/types": "^7.2.14", "@mui/utils": "^5.15.14", "@popperjs/core": "^2.11.8", "clsx": "^2.1.0", "prop-types": "^15.8.1" }, "engines": { "node": ">=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0", "react": "^17.0.0 || ^18.0.0", "react-dom": "^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { "optional": true } } }, "node_modules/@mui/core-downloads-tracker": { "version": "5.15.17", "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.17.tgz", "integrity": "sha512-DVAejDQkjNnIac7MfP8sLzuo7fyrBPxNdXe+6bYqOqg1z2OPTlfFAejSNzWe7UenRMuFu9/AyFXj/X2vN2w6dA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" } }, "node_modules/@mui/icons-material": { "version": "5.15.17", "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.17.tgz", "integrity": "sha512-xVzl2De7IY36s/keHX45YMiCpsIx3mNv2xwDgtBkRSnZQtVk+Gqufwj1ktUxEyjzEhBl0+PiNJqYC31C+n1n6A==", "dependencies": { "@babel/runtime": "^7.23.9" }, "engines": { "node": ">=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@mui/material": "^5.0.0", "@types/react": "^17.0.0 || ^18.0.0", "react": "^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { "optional": true } } }, "node_modules/@mui/material": { "version": "5.15.17", "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.17.tgz", "integrity": "sha512-ru/MLvTkCh0AZXmqwIpqGTOoVBS/sX48zArXq/DvktxXZx4fskiRA2PEc7Rk5ZlFiZhKh4moL4an+l8zZwq49Q==", "dependencies": { "@babel/runtime": "^7.23.9", "@mui/base": "5.0.0-beta.40", "@mui/core-downloads-tracker": "^5.15.17", "@mui/system": "^5.15.15", "@mui/types": "^7.2.14", "@mui/utils": "^5.15.14", "@types/react-transition-group": "^4.4.10", "clsx": "^2.1.0", "csstype": "^3.1.3", "prop-types": "^15.8.1", "react-is": "^18.2.0", "react-transition-group": "^4.4.5" }, "engines": { "node": ">=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", "@types/react": "^17.0.0 || ^18.0.0", "react": "^17.0.0 || ^18.0.0", "react-dom": "^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@emotion/react": { "optional": true }, "@emotion/styled": { "optional": true }, "@types/react": { "optional": true } } }, "node_modules/@mui/private-theming": { "version": "5.15.14", "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.14.tgz", "integrity": "sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==", "dependencies": { "@babel/runtime": "^7.23.9", "@mui/utils": "^5.15.14", "prop-types": "^15.8.1" }, "engines": { "node": ">=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0", "react": "^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { "optional": true } } }, "node_modules/@mui/styled-engine": { "version": "5.15.14", "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.14.tgz", "integrity": "sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==", "dependencies": { "@babel/runtime": "^7.23.9", "@emotion/cache": "^11.11.0", "csstype": "^3.1.3", "prop-types": "^15.8.1" }, "engines": { "node": ">=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@emotion/react": "^11.4.1", "@emotion/styled": "^11.3.0", "react": "^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@emotion/react": { "optional": true }, "@emotion/styled": { "optional": true } } }, "node_modules/@mui/system": { "version": "5.15.15", "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.15.tgz", "integrity": "sha512-aulox6N1dnu5PABsfxVGOZffDVmlxPOVgj56HrUnJE8MCSh8lOvvkd47cebIVQQYAjpwieXQXiDPj5pwM40jTQ==", "dependencies": { "@babel/runtime": "^7.23.9", "@mui/private-theming": "^5.15.14", "@mui/styled-engine": "^5.15.14", "@mui/types": "^7.2.14", "@mui/utils": "^5.15.14", "clsx": "^2.1.0", "csstype": "^3.1.3", "prop-types": "^15.8.1" }, "engines": { "node": ">=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", "@types/react": "^17.0.0 || ^18.0.0", "react": "^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@emotion/react": { "optional": true }, "@emotion/styled": { "optional": true }, "@types/react": { "optional": true } } }, "node_modules/@mui/types": { "version": "7.2.14", "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.14.tgz", "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==", "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { "optional": true } } }, "node_modules/@mui/utils": { "version": "5.15.14", "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.14.tgz", "integrity": "sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==", "dependencies": { "@babel/runtime": "^7.23.9", "@types/prop-types": "^15.7.11", "prop-types": "^15.8.1", "react-is": "^18.2.0" }, "engines": { "node": ">=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0", "react": "^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { "optional": true } } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" }, "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" }, "engines": { "node": ">= 8" } }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" } }, "node_modules/@remix-run/router": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.16.1.tgz", "integrity": "sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==", "engines": { "node": ">=14.0.0" } }, "node_modules/@surma/rollup-plugin-off-main-thread": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", "dev": true, "dependencies": { "ejs": "^3.1.6", "json5": "^2.2.0", "magic-string": "^0.25.0", "string.prototype.matchall": "^4.0.6" } }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "node_modules/@types/babel__generator": { "version": "7.6.8", "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__traverse": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", "dev": true, "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "node_modules/@types/mdast": { "version": "3.0.15", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", "dependencies": { "@types/unist": "^2" } }, "node_modules/@types/node": { "version": "20.12.11", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz", "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/prop-types": { "version": "15.7.12", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" }, "node_modules/@types/react": { "version": "18.3.2", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.2.tgz", "integrity": "sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-transition-group": { "version": "4.4.10", "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", "dependencies": { "@types/react": "*" } }, "node_modules/@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "dev": true }, "node_modules/@types/unist": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, "node_modules/@vitejs/plugin-react": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", "dev": true, "dependencies": { "@babel/core": "^7.23.5", "@babel/plugin-transform-react-jsx-self": "^7.23.3", "@babel/plugin-transform-react-jsx-source": "^7.23.3", "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.0" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0" } }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { "color-convert": "^1.9.0" }, "engines": { "node": ">=4" } }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "node_modules/aria-query": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, "dependencies": { "dequal": "^2.0.3" } }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { "call-bind": "^1.0.5", "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array-includes": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.findlastindex": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.flat": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.flatmap": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.toreversed": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" } }, "node_modules/array.prototype.tosorted": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", "dev": true, "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", "es-abstract": "^1.22.3", "es-errors": "^1.1.0", "es-shim-unscopables": "^1.0.2" } }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.5", "define-properties": "^1.2.1", "es-abstract": "^1.22.3", "es-errors": "^1.2.1", "get-intrinsic": "^1.2.3", "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/ast-types-flow": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", "dev": true }, "node_modules/async": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, "engines": { "node": ">= 4.0.0" } }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, "dependencies": { "possible-typed-array-names": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/axe-core": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/axobject-query": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", "dev": true, "dependencies": { "dequal": "^2.0.3" } }, "node_modules/babel-plugin-macros": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", "dependencies": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", "resolve": "^1.19.0" }, "engines": { "node": ">=10", "npm": ">=6" } }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.11", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.6", "@babel/helper-define-polyfill-provider": "^0.6.2", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", "dev": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.1", "core-js-compat": "^3.36.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, "node_modules/browserslist": { "version": "4.23.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/browserslist" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ], "dependencies": { "caniuse-lite": "^1.0.30001587", "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { "version": "1.0.30001617", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001617.tgz", "integrity": "sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA==", "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/browserslist" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ] }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" }, "engines": { "node": ">=4" } }, "node_modules/chalk/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "engines": { "node": ">=0.8.0" } }, "node_modules/character-entities": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-entities-legacy": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-reference-invalid": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "engines": { "node": ">=6" } }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { "color-name": "1.1.3" } }, "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/comma-separated-tokens": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "node_modules/common-tags": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", "dev": true, "engines": { "node": ">=4.0.0" } }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "node_modules/confusing-browser-globals": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, "node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/core-js-compat": { "version": "3.37.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz", "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==", "dev": true, "dependencies": { "browserslist": "^4.23.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.10.0" }, "engines": { "node": ">=10" } }, "node_modules/cross-fetch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "dependencies": { "node-fetch": "2.6.7" } }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/cssjanus": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cssjanus/-/cssjanus-2.1.0.tgz", "integrity": "sha512-kAijbny3GmdOi9k+QT6DGIXqFvL96aksNlGr4Rhk9qXDZYWUojU4bRc3IHWxdaLNOqgEZHuXoe5Wl2l7dxLW5g==", "engines": { "node": ">=10.0.0" } }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, "node_modules/data-view-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dev": true, "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/data-view-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/data-view-byte-offset": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", "dev": true, "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-properties": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/dexie": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/dexie/-/dexie-3.2.7.tgz", "integrity": "sha512-2a+BXvVhY5op+smDRLxeBAivE7YcYaneXJ1la3HOkUfX9zKkE/AJ8CNgjiXbtXepFyFmJNGSbmjOwqbT749r/w==", "engines": { "node": ">=6.0" } }, "node_modules/dexie-react-hooks": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/dexie-react-hooks/-/dexie-react-hooks-1.1.7.tgz", "integrity": "sha512-Lwv5W0Hk+uOW3kGnsU9GZoR1er1B7WQ5DSdonoNG+focTNeJbHW6vi6nBoX534VKI3/uwHebYzSw1fwY6a7mTw==", "peerDependencies": { "@types/react": ">=16", "dexie": "^3.2 || ^4.0.1-alpha", "react": ">=16" } }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { "esutils": "^2.0.2" }, "engines": { "node": ">=6.0.0" } }, "node_modules/dom-helpers": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", "dependencies": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" } }, "node_modules/ejs": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, "dependencies": { "jake": "^10.8.5" }, "bin": { "ejs": "bin/cli.js" }, "engines": { "node": ">=0.10.0" } }, "node_modules/electron-to-chromium": { "version": "1.4.764", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.764.tgz", "integrity": "sha512-ZXbPV46Y4dNCA+k7YHB+BYlzcoMtZ1yH6V0tQ1ul0wmA7RiwJfS29LSdRlE1myWBXRzEgm/Lz6tryj5WVQiLmg==", "dev": true }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/error-stack-parser": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", "dependencies": { "stackframe": "^1.3.4" } }, "node_modules/es-abstract": { "version": "1.23.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", "data-view-buffer": "^1.0.1", "data-view-byte-length": "^1.0.1", "data-view-byte-offset": "^1.0.0", "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", "get-intrinsic": "^1.2.4", "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", "has-symbols": "^1.0.3", "hasown": "^2.0.2", "internal-slot": "^1.0.7", "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", "is-data-view": "^1.0.1", "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", "object.assign": "^4.1.5", "regexp.prototype.flags": "^1.5.2", "safe-array-concat": "^1.1.2", "safe-regex-test": "^1.0.3", "string.prototype.trim": "^1.2.9", "string.prototype.trimend": "^1.0.8", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.2", "typed-array-byte-length": "^1.0.1", "typed-array-byte-offset": "^1.0.2", "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dev": true, "dependencies": { "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, "engines": { "node": ">= 0.4" } }, "node_modules/es-iterator-helpers": { "version": "1.0.19", "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", "has-symbols": "^1.0.3", "internal-slot": "^1.0.7", "iterator.prototype": "^1.1.2", "safe-array-concat": "^1.1.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-object-atoms": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, "dependencies": { "es-errors": "^1.3.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-set-tostringtag": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "dependencies": { "get-intrinsic": "^1.2.4", "has-tostringtag": "^1.0.2", "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "dependencies": { "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/esbuild": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" }, "engines": { "node": ">=12" }, "optionalDependencies": { "@esbuild/android-arm": "0.18.20", "@esbuild/android-arm64": "0.18.20", "@esbuild/android-x64": "0.18.20", "@esbuild/darwin-arm64": "0.18.20", "@esbuild/darwin-x64": "0.18.20", "@esbuild/freebsd-arm64": "0.18.20", "@esbuild/freebsd-x64": "0.18.20", "@esbuild/linux-arm": "0.18.20", "@esbuild/linux-arm64": "0.18.20", "@esbuild/linux-ia32": "0.18.20", "@esbuild/linux-loong64": "0.18.20", "@esbuild/linux-mips64el": "0.18.20", "@esbuild/linux-ppc64": "0.18.20", "@esbuild/linux-riscv64": "0.18.20", "@esbuild/linux-s390x": "0.18.20", "@esbuild/linux-x64": "0.18.20", "@esbuild/netbsd-x64": "0.18.20", "@esbuild/openbsd-x64": "0.18.20", "@esbuild/sunos-x64": "0.18.20", "@esbuild/win32-arm64": "0.18.20", "@esbuild/win32-ia32": "0.18.20", "@esbuild/win32-x64": "0.18.20" } }, "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint": { "version": "8.57.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", "@eslint/js": "8.57.0", "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.2", "eslint-visitor-keys": "^3.4.3", "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3", "strip-ansi": "^6.0.1", "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-config-airbnb": { "version": "19.0.4", "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz", "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==", "dev": true, "dependencies": { "eslint-config-airbnb-base": "^15.0.0", "object.assign": "^4.1.2", "object.entries": "^1.1.5" }, "engines": { "node": "^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { "eslint": "^7.32.0 || ^8.2.0", "eslint-plugin-import": "^2.25.3", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-react": "^7.28.0", "eslint-plugin-react-hooks": "^4.3.0" } }, "node_modules/eslint-config-airbnb-base": { "version": "15.0.0", "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, "dependencies": { "confusing-browser-globals": "^1.0.10", "object.assign": "^4.1.2", "object.entries": "^1.1.5", "semver": "^6.3.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" }, "peerDependencies": { "eslint": "^7.32.0 || ^8.2.0", "eslint-plugin-import": "^2.25.2" } }, "node_modules/eslint-config-prettier": { "version": "8.10.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, "peerDependencies": { "eslint": ">=7.0.0" } }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", "resolve": "^1.22.4" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-module-utils": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, "dependencies": { "debug": "^3.2.7" }, "engines": { "node": ">=4" }, "peerDependenciesMeta": { "eslint": { "optional": true } } }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import": { "version": "2.29.1", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", "array.prototype.flat": "^1.3.2", "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.8.0", "hasown": "^2.0.0", "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.7", "object.groupby": "^1.0.1", "object.values": "^1.1.7", "semver": "^6.3.1", "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, "peerDependencies": { "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "dependencies": { "esutils": "^2.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.8.0", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", "dev": true, "dependencies": { "@babel/runtime": "^7.23.2", "aria-query": "^5.3.0", "array-includes": "^3.1.7", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", "axe-core": "=4.7.0", "axobject-query": "^3.2.1", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "es-iterator-helpers": "^1.0.15", "hasown": "^2.0.0", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", "object.entries": "^1.1.7", "object.fromentries": "^2.0.7" }, "engines": { "node": ">=4.0" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, "node_modules/eslint-plugin-react": { "version": "7.34.1", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", "dev": true, "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlast": "^1.2.4", "array.prototype.flatmap": "^1.3.2", "array.prototype.toreversed": "^1.1.2", "array.prototype.tosorted": "^1.1.3", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.0.17", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.7", "object.fromentries": "^2.0.7", "object.hasown": "^1.1.3", "object.values": "^1.1.7", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", "string.prototype.matchall": "^4.0.10" }, "engines": { "node": ">=4" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, "node_modules/eslint-plugin-react-hooks": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", "dev": true, "engines": { "node": ">=10" }, "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, "node_modules/eslint-plugin-react/node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "dependencies": { "esutils": "^2.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/eslint/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/eslint/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/eslint/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" }, "engines": { "node": ">=0.10" } }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { "estraverse": "^5.2.0" }, "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/estree-walker": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", "dev": true }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" }, "engines": { "node": ">=8.6.0" } }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { "is-glob": "^4.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" } }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "dependencies": { "flat-cache": "^3.0.4" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, "dependencies": { "minimatch": "^5.0.1" } }, "node_modules/filelist/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/filelist/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { "node": ">=10" } }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat-cache": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, "dependencies": { "is-callable": "^1.1.3" } }, "node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { "node": ">=10" } }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", "dev": true }, "node_modules/get-symbol-description": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "dependencies": { "call-bind": "^1.0.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { "is-glob": "^4.0.3" }, "engines": { "node": ">=10.13.0" } }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/globalthis": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, "dependencies": { "get-intrinsic": "^1.1.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { "node": ">=4" } }, "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-tostringtag": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { "function-bind": "^1.1.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/hast-to-hyperscript": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", "dependencies": { "@types/unist": "^2.0.3", "comma-separated-tokens": "^1.0.0", "property-information": "^5.3.0", "space-separated-tokens": "^1.0.0", "style-to-object": "^0.3.0", "unist-util-is": "^4.0.0", "web-namespaces": "^1.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", "dependencies": { "react-is": "^16.7.0" } }, "node_modules/hoist-non-react-statics/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/html-parse-stringify": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", "dependencies": { "void-elements": "3.1.0" } }, "node_modules/humanize-duration": { "version": "3.32.0", "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.32.0.tgz", "integrity": "sha512-6WsXYTHJr7hXKqoqf5zoWza/lANRAqGlbnZnm0cjDykbXuez1JVXOQGmq0EPB45pXYAJyueRA3S3hfhmMbrMEQ==" }, "node_modules/i18next": { "version": "21.10.0", "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz", "integrity": "sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==", "funding": [ { "type": "individual", "url": "https://locize.com" }, { "type": "individual", "url": "https://locize.com/i18next.html" }, { "type": "individual", "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" } ], "dependencies": { "@babel/runtime": "^7.17.2" } }, "node_modules/i18next-browser-languagedetector": { "version": "6.1.8", "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-6.1.8.tgz", "integrity": "sha512-Svm+MduCElO0Meqpj1kJAriTC6OhI41VhlT/A0UPjGoPZBhAHIaGE5EfsHlTpgdH09UVX7rcc72pSDDBeKSQQA==", "dependencies": { "@babel/runtime": "^7.19.0" } }, "node_modules/i18next-http-backend": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-1.4.5.tgz", "integrity": "sha512-tLuHWuLWl6CmS07o+UB6EcQCaUjrZ1yhdseIN7sfq0u7phsMePJ8pqlGhIAdRDPF/q7ooyo5MID5DRFBCH+x5w==", "dependencies": { "cross-fetch": "3.1.5" } }, "node_modules/idb": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", "dev": true }, "node_modules/ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { "node": ">=0.8.19" } }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "node_modules/inline-style-parser": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" }, "node_modules/internal-slot": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { "node": ">= 0.4" } }, "node_modules/is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-alphanumerical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "dependencies": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-array-buffer": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-async-function": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "dependencies": { "has-bigints": "^1.0.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ], "engines": { "node": ">=4" } }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dependencies": { "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-data-view": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, "dependencies": { "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-decimal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-finalizationregistry": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", "dev": true, "dependencies": { "call-bind": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-hexadecimal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", "dev": true }, "node_modules/is-negative-zero": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "engines": { "node": ">=8" } }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-set": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "dependencies": { "call-bind": "^1.0.7" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-symbol": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-typed-array": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "dependencies": { "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakmap": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakset": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "node_modules/iterator.prototype": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", "dev": true, "dependencies": { "define-properties": "^1.2.1", "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", "reflect.getprototypeof": "^1.0.4", "set-function-name": "^2.0.1" } }, "node_modules/jake": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz", "integrity": "sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==", "dev": true, "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", "filelist": "^1.0.4", "minimatch": "^3.1.2" }, "bin": { "jake": "bin/cli.js" }, "engines": { "node": ">=10" } }, "node_modules/jake/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jake/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jake/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/jake/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jake/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/jake/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/jest-worker": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^7.0.0" }, "engines": { "node": ">= 10.13.0" } }, "node_modules/jest-worker/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/jest-worker/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/js-base64": { "version": "3.7.7", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz", "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==" }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, "bin": { "jsesc": "bin/jsesc" }, "engines": { "node": ">=4" } }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", "dev": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "bin": { "json5": "lib/cli.js" }, "engines": { "node": ">=6" } }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/jsonpointer": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", "object.assign": "^4.1.4", "object.values": "^1.1.6" }, "engines": { "node": ">=4.0" } }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/language-subtag-registry": { "version": "0.3.22", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", "dev": true }, "node_modules/language-tags": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", "dev": true, "dependencies": { "language-subtag-registry": "^0.3.20" }, "engines": { "node": ">=0.10" } }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { "p-locate": "^5.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", "dev": true }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { "yallist": "^3.0.2" } }, "node_modules/magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", "dev": true, "dependencies": { "sourcemap-codec": "^1.4.8" } }, "node_modules/mdast-util-definitions": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", "dependencies": { "unist-util-visit": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-definitions/node_modules/unist-util-visit": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", "unist-util-visit-parents": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-from-markdown": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-string": "^2.0.0", "micromark": "~2.11.0", "parse-entities": "^2.0.0", "unist-util-stringify-position": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-to-hast": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.2.0.tgz", "integrity": "sha512-JoPBfJ3gBnHZ18icCwHR50orC9kNH81tiR1gs01D8Q5YpV6adHNO9nKNuFBCJQ941/32PT1a63UF/DitmS3amQ==", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", "mdast-util-definitions": "^4.0.0", "mdurl": "^1.0.0", "unist-builder": "^2.0.0", "unist-util-generated": "^1.0.0", "unist-util-position": "^3.0.0", "unist-util-visit": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-to-hast/node_modules/unist-util-visit": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", "unist-util-visit-parents": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-to-hast/node_modules/unist-util-visit-parents": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-to-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/micromark": { "version": "2.11.4", "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "dependencies": { "debug": "^4.0.0", "parse-entities": "^2.0.0" } }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" } }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], "bin": { "nanoid": "bin/nanoid.cjs" }, "engines": { "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dependencies": { "whatwg-url": "^5.0.0" }, "engines": { "node": "4.x || >=6.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "peerDependenciesMeta": { "encoding": { "optional": true } } }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.entries": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.groupby": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.hasown": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", "dev": true, "dependencies": { "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.values": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { "wrappy": "1" } }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { "p-limit": "^3.0.2" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dependencies": { "callsites": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/parse-entities": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "dependencies": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", "character-reference-invalid": "^1.0.0", "is-alphanumerical": "^1.0.0", "is-decimal": "^1.0.0", "is-hexadecimal": "^1.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "engines": { "node": ">=8" } }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", "dev": true, "engines": { "node": ">= 0.4" } }, "node_modules/postcss": { "version": "8.4.38", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ], "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, "bin": { "prettier": "bin-prettier.js" }, "engines": { "node": ">=10.13.0" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/pretty-bytes": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", "dev": true, "engines": { "node": "^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/property-information": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", "dependencies": { "xtend": "^4.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dependencies": { "loose-envify": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" }, "peerDependencies": { "react": "^18.3.1" } }, "node_modules/react-i18next": { "version": "11.18.6", "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.18.6.tgz", "integrity": "sha512-yHb2F9BiT0lqoQDt8loZ5gWP331GwctHz9tYQ8A2EIEUu+CcEdjBLQWli1USG3RdWQt3W+jqQLg/d4rrQR96LA==", "dependencies": { "@babel/runtime": "^7.14.5", "html-parse-stringify": "^3.0.1" }, "peerDependencies": { "i18next": ">= 19.0.0", "react": ">= 16.8.0" }, "peerDependenciesMeta": { "react-dom": { "optional": true }, "react-native": { "optional": true } } }, "node_modules/react-infinite-scroll-component": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/react-infinite-scroll-component/-/react-infinite-scroll-component-6.1.0.tgz", "integrity": "sha512-SQu5nCqy8DxQWpnUVLx7V7b7LcA37aM7tvoWjTLZp1dk6EJibM5/4EJKzOnl07/BsM1Y40sKLuqjCwwH/xV0TQ==", "dependencies": { "throttle-debounce": "^2.1.0" }, "peerDependencies": { "react": ">=16.0.0" } }, "node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/react-remark": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/react-remark/-/react-remark-2.1.0.tgz", "integrity": "sha512-7dEPxRGQ23sOdvteuRGaQAs9cEOH/BOeCN4CqsJdk3laUDIDYRCWnM6a3z92PzXHUuxIRLXQNZx7SiO0ijUcbw==", "dependencies": { "rehype-react": "^6.0.0", "remark-parse": "^9.0.0", "remark-rehype": "^8.0.0", "unified": "^9.0.0" }, "engines": { "node": ">=10" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" }, "peerDependencies": { "react": ">=16.8" } }, "node_modules/react-router": { "version": "6.23.1", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.23.1.tgz", "integrity": "sha512-fzcOaRF69uvqbbM7OhvQyBTFDVrrGlsFdS3AL+1KfIBtGETibHzi3FkoTRyiDJnWNc2VxrfvR+657ROHjaNjqQ==", "dependencies": { "@remix-run/router": "1.16.1" }, "engines": { "node": ">=14.0.0" }, "peerDependencies": { "react": ">=16.8" } }, "node_modules/react-router-dom": { "version": "6.23.1", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.23.1.tgz", "integrity": "sha512-utP+K+aSTtEdbWpC+4gxhdlPFwuEfDKq8ZrPFU65bbRJY+l706qjR7yaidBpo3MSeA/fzwbXWbKBI6ftOnP3OQ==", "dependencies": { "@remix-run/router": "1.16.1", "react-router": "6.23.1" }, "engines": { "node": ">=14.0.0" }, "peerDependencies": { "react": ">=16.8", "react-dom": ">=16.8" } }, "node_modules/react-transition-group": { "version": "4.4.5", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", "loose-envify": "^1.4.0", "prop-types": "^15.6.2" }, "peerDependencies": { "react": ">=16.6.0", "react-dom": ">=16.6.0" } }, "node_modules/reflect.getprototypeof": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.1", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", "which-builtin-type": "^1.1.3" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, "node_modules/regenerate-unicode-properties": { "version": "10.1.1", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, "dependencies": { "regenerate": "^1.4.2" }, "engines": { "node": ">=4" } }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regenerator-transform": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" } }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "dependencies": { "call-bind": "^1.0.6", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" } }, "node_modules/regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "dependencies": { "jsesc": "~0.5.0" }, "bin": { "regjsparser": "bin/parser" } }, "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, "bin": { "jsesc": "bin/jsesc" } }, "node_modules/rehype-react": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/rehype-react/-/rehype-react-6.2.1.tgz", "integrity": "sha512-f9KIrjktvLvmbGc7si25HepocOg4z0MuNOtweigKzBcDjiGSTGhyz6VSgaV5K421Cq1O+z4/oxRJ5G9owo0KVg==", "dependencies": { "@mapbox/hast-util-table-cell-style": "^0.2.0", "hast-to-hyperscript": "^9.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark-parse": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", "dependencies": { "mdast-util-from-markdown": "^0.8.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark-rehype": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-8.1.0.tgz", "integrity": "sha512-EbCu9kHgAxKmW1yEYjx3QafMyGY3q8noUbNUI5xyKbaFP89wbhDrKxyIQNukNYthzjNHZu6J7hwFg7hRm1svYA==", "dependencies": { "mdast-util-to-hast": "^10.2.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "engines": { "node": ">=4" } }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/rollup": { "version": "3.29.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, "bin": { "rollup": "dist/bin/rollup" }, "engines": { "node": ">=14.18.0", "npm": ">=8.0.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ], "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/safe-array-concat": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, "engines": { "node": ">=0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/safe-regex-test": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "dependencies": { "loose-envify": "^1.1.0" } }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/serialize-javascript": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "object-inspect": "^1.13.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "node_modules/source-map-support/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "deprecated": "Please use @jridgewell/sourcemap-codec instead", "dev": true }, "node_modules/space-separated-tokens": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/stack-generator": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", "dependencies": { "stackframe": "^1.3.4" } }, "node_modules/stackframe": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, "node_modules/stacktrace-gps": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz", "integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==", "dependencies": { "source-map": "0.5.6", "stackframe": "^1.3.4" } }, "node_modules/stacktrace-gps/node_modules/source-map": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", "engines": { "node": ">=0.10.0" } }, "node_modules/stacktrace-js": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", "dependencies": { "error-stack-parser": "^2.0.6", "stack-generator": "^2.0.5", "stacktrace-gps": "^3.0.4" } }, "node_modules/string.prototype.matchall": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-symbols": "^1.0.3", "internal-slot": "^1.0.7", "regexp.prototype.flags": "^1.5.2", "set-function-name": "^2.0.2", "side-channel": "^1.0.6" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trim": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.0", "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimend": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/stringify-object": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "dev": true, "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", "is-regexp": "^1.0.0" }, "engines": { "node": ">=4" } }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/strip-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/style-to-object": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", "dependencies": { "inline-style-parser": "0.1.1" } }, "node_modules/stylis": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" }, "node_modules/stylis-plugin-rtl": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/stylis-plugin-rtl/-/stylis-plugin-rtl-2.1.1.tgz", "integrity": "sha512-q6xIkri6fBufIO/sV55md2CbgS5c6gg9EhSVATtHHCdOnbN/jcI0u3lYhNVeuI65c4lQPo67g8xmq5jrREvzlg==", "dependencies": { "cssjanus": "^2.0.1" }, "peerDependencies": { "stylis": "4.x" } }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/tempy": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", "dev": true, "dependencies": { "is-stream": "^2.0.0", "temp-dir": "^2.0.0", "type-fest": "^0.16.0", "unique-string": "^2.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/terser": { "version": "5.31.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz", "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" }, "engines": { "node": ">=10" } }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "node_modules/throttle-debounce": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.3.0.tgz", "integrity": "sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==", "engines": { "node": ">=8" } }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { "is-number": "^7.0.0" }, "engines": { "node": ">=8.0" } }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/trough": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "node_modules/tsconfig-paths/node_modules/json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "dependencies": { "prelude-ls": "^1.2.1" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/type-fest": { "version": "0.16.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/typed-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-proto": "^1.0.3", "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/typed-array-byte-offset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-proto": "^1.0.3", "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/typed-array-length": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-proto": "^1.0.3", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/unicode-match-property-value-ecmascript": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unified": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", "dependencies": { "bail": "^1.0.0", "extend": "^3.0.0", "is-buffer": "^2.0.0", "is-plain-obj": "^2.0.0", "trough": "^1.0.0", "vfile": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, "dependencies": { "crypto-random-string": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/unist-builder": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-generated": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-is": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-position": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-stringify-position": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "dependencies": { "@types/unist": "^2.0.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-visit": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", "dependencies": { "unist-util-visit-parents": "^2.0.0" } }, "node_modules/unist-util-visit-parents": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", "dependencies": { "unist-util-is": "^3.0.0" } }, "node_modules/unist-util-visit-parents/node_modules/unist-util-is": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "engines": { "node": ">= 10.0.0" } }, "node_modules/upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true, "engines": { "node": ">=4", "yarn": "*" } }, "node_modules/update-browserslist-db": { "version": "1.0.15", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.15.tgz", "integrity": "sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA==", "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/browserslist" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ], "dependencies": { "escalade": "^3.1.2", "picocolors": "^1.0.0" }, "bin": { "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" } }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "dependencies": { "punycode": "^2.1.0" } }, "node_modules/vfile": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", "unist-util-stringify-position": "^2.0.0", "vfile-message": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/vfile-message": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/vite": { "version": "4.5.3", "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", "dev": true, "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.27", "rollup": "^3.27.1" }, "bin": { "vite": "bin/vite.js" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@types/node": ">= 14", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, "less": { "optional": true }, "lightningcss": { "optional": true }, "sass": { "optional": true }, "stylus": { "optional": true }, "sugarss": { "optional": true }, "terser": { "optional": true } } }, "node_modules/vite-plugin-pwa": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.15.2.tgz", "integrity": "sha512-l1srtaad5NMNrAtAuub6ArTYG5Ci9AwofXXQ6IsbpCMYQ/0HUndwI7RB2x95+1UBFm7VGttQtT7woBlVnNhBRw==", "dev": true, "dependencies": { "debug": "^4.3.4", "fast-glob": "^3.2.12", "pretty-bytes": "^6.0.0", "workbox-build": "^6.5.4", "workbox-window": "^6.5.4" }, "funding": { "url": "https://github.com/sponsors/antfu" }, "peerDependencies": { "vite": "^3.1.0 || ^4.0.0", "workbox-build": "^6.5.4", "workbox-window": "^6.5.4" } }, "node_modules/void-elements": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", "engines": { "node": ">=0.10.0" } }, "node_modules/web-namespaces": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-builtin-type": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", "dev": true, "dependencies": { "function.prototype.name": "^1.1.5", "has-tostringtag": "^1.0.0", "is-async-function": "^2.0.0", "is-date-object": "^1.0.5", "is-finalizationregistry": "^1.0.2", "is-generator-function": "^1.0.10", "is-regex": "^1.1.4", "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.0.2", "which-collection": "^1.0.1", "which-typed-array": "^1.1.9" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-collection": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/workbox-background-sync": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", "dev": true, "dependencies": { "idb": "^7.0.1", "workbox-core": "6.6.0" } }, "node_modules/workbox-broadcast-update": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", "dev": true, "dependencies": { "workbox-core": "6.6.0" } }, "node_modules/workbox-build": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", "dev": true, "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", "@babel/core": "^7.11.1", "@babel/preset-env": "^7.11.0", "@babel/runtime": "^7.11.2", "@rollup/plugin-babel": "^5.2.0", "@rollup/plugin-node-resolve": "^11.2.1", "@rollup/plugin-replace": "^2.4.1", "@surma/rollup-plugin-off-main-thread": "^2.2.3", "ajv": "^8.6.0", "common-tags": "^1.8.0", "fast-json-stable-stringify": "^2.1.0", "fs-extra": "^9.0.1", "glob": "^7.1.6", "lodash": "^4.17.20", "pretty-bytes": "^5.3.0", "rollup": "^2.43.1", "rollup-plugin-terser": "^7.0.0", "source-map": "^0.8.0-beta.0", "stringify-object": "^3.3.0", "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", "workbox-background-sync": "6.6.0", "workbox-broadcast-update": "6.6.0", "workbox-cacheable-response": "6.6.0", "workbox-core": "6.6.0", "workbox-expiration": "6.6.0", "workbox-google-analytics": "6.6.0", "workbox-navigation-preload": "6.6.0", "workbox-precaching": "6.6.0", "workbox-range-requests": "6.6.0", "workbox-recipes": "6.6.0", "workbox-routing": "6.6.0", "workbox-strategies": "6.6.0", "workbox-streams": "6.6.0", "workbox-sw": "6.6.0", "workbox-window": "6.6.0" }, "engines": { "node": ">=10.0.0" } }, "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", "dev": true, "dependencies": { "json-schema": "^0.4.0", "jsonpointer": "^5.0.0", "leven": "^3.1.0" }, "engines": { "node": ">=10" }, "peerDependencies": { "ajv": ">=8" } }, "node_modules/workbox-build/node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.10.4", "@rollup/pluginutils": "^3.1.0" }, "engines": { "node": ">= 10.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0", "@types/babel__core": "^7.1.9", "rollup": "^1.20.0||^2.0.0" }, "peerDependenciesMeta": { "@types/babel__core": { "optional": true } } }, "node_modules/workbox-build/node_modules/@rollup/plugin-node-resolve": { "version": "11.2.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", "builtin-modules": "^3.1.0", "deepmerge": "^4.2.2", "is-module": "^1.0.0", "resolve": "^1.19.0" }, "engines": { "node": ">= 10.0.0" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0" } }, "node_modules/workbox-build/node_modules/@rollup/plugin-replace": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", "magic-string": "^0.25.7" }, "peerDependencies": { "rollup": "^1.20.0 || ^2.0.0" } }, "node_modules/workbox-build/node_modules/@rollup/pluginutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "dev": true, "dependencies": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" }, "engines": { "node": ">= 8.0.0" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0" } }, "node_modules/workbox-build/node_modules/ajv": { "version": "8.13.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.4.1" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/workbox-build/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/workbox-build/node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/workbox-build/node_modules/rollup": { "version": "2.79.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, "bin": { "rollup": "dist/bin/rollup" }, "engines": { "node": ">=10.0.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "node_modules/workbox-build/node_modules/rollup-plugin-terser": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", "dev": true, "dependencies": { "@babel/code-frame": "^7.10.4", "jest-worker": "^26.2.1", "serialize-javascript": "^4.0.0", "terser": "^5.0.0" }, "peerDependencies": { "rollup": "^2.0.0" } }, "node_modules/workbox-build/node_modules/source-map": { "version": "0.8.0-beta.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", "dev": true, "dependencies": { "whatwg-url": "^7.0.0" }, "engines": { "node": ">= 8" } }, "node_modules/workbox-build/node_modules/tr46": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", "dev": true, "dependencies": { "punycode": "^2.1.0" } }, "node_modules/workbox-build/node_modules/webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", "dev": true }, "node_modules/workbox-build/node_modules/whatwg-url": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", "dev": true, "dependencies": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", "webidl-conversions": "^4.0.2" } }, "node_modules/workbox-cacheable-response": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", "deprecated": "workbox-background-sync@6.6.0", "dev": true, "dependencies": { "workbox-core": "6.6.0" } }, "node_modules/workbox-core": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", "dev": true }, "node_modules/workbox-expiration": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", "dev": true, "dependencies": { "idb": "^7.0.1", "workbox-core": "6.6.0" } }, "node_modules/workbox-google-analytics": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", "dev": true, "dependencies": { "workbox-background-sync": "6.6.0", "workbox-core": "6.6.0", "workbox-routing": "6.6.0", "workbox-strategies": "6.6.0" } }, "node_modules/workbox-navigation-preload": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", "dev": true, "dependencies": { "workbox-core": "6.6.0" } }, "node_modules/workbox-precaching": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", "dev": true, "dependencies": { "workbox-core": "6.6.0", "workbox-routing": "6.6.0", "workbox-strategies": "6.6.0" } }, "node_modules/workbox-range-requests": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", "dev": true, "dependencies": { "workbox-core": "6.6.0" } }, "node_modules/workbox-recipes": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", "dev": true, "dependencies": { "workbox-cacheable-response": "6.6.0", "workbox-core": "6.6.0", "workbox-expiration": "6.6.0", "workbox-precaching": "6.6.0", "workbox-routing": "6.6.0", "workbox-strategies": "6.6.0" } }, "node_modules/workbox-routing": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", "dev": true, "dependencies": { "workbox-core": "6.6.0" } }, "node_modules/workbox-strategies": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", "dev": true, "dependencies": { "workbox-core": "6.6.0" } }, "node_modules/workbox-streams": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", "dev": true, "dependencies": { "workbox-core": "6.6.0", "workbox-routing": "6.6.0" } }, "node_modules/workbox-sw": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", "dev": true }, "node_modules/workbox-window": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", "dev": true, "dependencies": { "@types/trusted-types": "^2.0.2", "workbox-core": "6.6.0" } }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "engines": { "node": ">=0.4" } }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "engines": { "node": ">= 6" } }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } } } } ntfy-2.11.0/web/package.json000066400000000000000000000033711462047176100156320ustar00rootroot00000000000000{ "name": "ntfy", "version": "1.0.0", "private": true, "scripts": { "start": "NODE_OPTIONS=\"--enable-source-maps\" vite", "build": "vite build", "serve": "vite preview", "format": "prettier . --write", "format:check": "prettier . --check", "lint": "eslint --report-unused-disable-directives --ext .js,.jsx ./src/" }, "dependencies": { "@emotion/cache": "^11.11.0", "@emotion/react": "^11.11.0", "@emotion/styled": "^11.11.0", "@mui/icons-material": "^5.4.2", "@mui/material": "latest", "dexie": "^3.2.1", "dexie-react-hooks": "^1.1.1", "humanize-duration": "^3.27.3", "i18next": "^21.6.14", "i18next-browser-languagedetector": "^6.1.4", "i18next-http-backend": "^1.4.0", "js-base64": "^3.7.2", "react": "latest", "react-dom": "latest", "react-i18next": "^11.16.2", "react-infinite-scroll-component": "^6.1.0", "react-remark": "^2.1.0", "react-router-dom": "^6.2.2", "stacktrace-gps": "^3.0.4", "stacktrace-js": "^2.0.2", "stylis": "^4.3.0", "stylis-plugin-rtl": "^2.1.1" }, "devDependencies": { "@vitejs/plugin-react": "^4.0.0", "eslint": "^8.41.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-prettier": "^8.8.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", "prettier": "^2.8.8", "vite": "^4.3.9", "vite-plugin-pwa": "^0.15.0" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] }, "prettier": { "printWidth": 140 } } ntfy-2.11.0/web/public/000077500000000000000000000000001462047176100146165ustar00rootroot00000000000000ntfy-2.11.0/web/public/config.js000066400000000000000000000012541462047176100164230ustar00rootroot00000000000000// THIS FILE IS JUST AN EXAMPLE // // It is removed during the build process. The actual config is dynamically // generated server-side and served by the ntfy server. // // During web development, you may change values here for rapid testing. var config = { base_url: window.location.origin, // Change to test against a different server app_root: "/", enable_login: true, enable_signup: true, enable_payments: false, enable_reservations: true, enable_emails: true, enable_calls: true, enable_web_push: true, billing_contact: "", web_push_public_key: "", disallowed_topics: ["docs", "static", "file", "app", "account", "settings", "signup", "login", "v1"], }; ntfy-2.11.0/web/public/static/000077500000000000000000000000001462047176100161055ustar00rootroot00000000000000ntfy-2.11.0/web/public/static/css/000077500000000000000000000000001462047176100166755ustar00rootroot00000000000000ntfy-2.11.0/web/public/static/css/app.css000066400000000000000000000001741462047176100201710ustar00rootroot00000000000000/* web app styling overrides */ a, a:visited { color: #338574; } a:hover { text-decoration: none; color: #317f6f; } ntfy-2.11.0/web/public/static/css/fonts.css000066400000000000000000000015451462047176100205450ustar00rootroot00000000000000/* Roboto font, embedded with the help of https://google-webfonts-helper.herokuapp.com/fonts/roboto?subsets=latin */ /* roboto-300 - latin */ @font-face { font-family: "Roboto"; font-style: normal; font-weight: 300; src: local(""), url("../fonts/roboto-v29-latin-300.woff2") format("woff2"); } /* roboto-regular - latin */ @font-face { font-family: "Roboto"; font-style: normal; font-weight: 400; src: local(""), url("../fonts/roboto-v29-latin-regular.woff2") format("woff2"); } /* roboto-500 - latin */ @font-face { font-family: "Roboto"; font-style: normal; font-weight: 500; src: local(""), url("../fonts/roboto-v29-latin-500.woff2") format("woff2"); } /* roboto-700 - latin */ @font-face { font-family: "Roboto"; font-style: normal; font-weight: 700; src: local(""), url("../fonts/roboto-v29-latin-700.woff2") format("woff2"); } ntfy-2.11.0/web/public/static/fonts/000077500000000000000000000000001462047176100172365ustar00rootroot00000000000000ntfy-2.11.0/web/public/static/fonts/roboto-v29-latin-300.woff2000066400000000000000000000365641462047176100235500ustar00rootroot00000000000000wOF2=tl=dd^` X < xs 6$ | :(K@C i91cC>"$'@:!N (4MAe.~vd>L51=F")XjEŘ~h7gEUD2S;jS,] aLHWx%{-YCc G3+-{oHvfa DHf7k$[z_I篑&&߱:hml+sVۜ-ݻXMGmCkXC#vB̷ML1BI:gg/Jݽ@1/: Eh#EΣ=Νg":r@8;媤H?(IC31@@Z*/ڤҲpM:8xe "hű2eN|`[ +. @c~n@Lx$HI!$[6H<E zL Huz\wR%DC0 _l z:`7V^Wjcj,7EgMJ%>#2ueYVRKiډ7>HyQ'G%xӒ^xG_@^C@ M<Q儓NѦKY,ٲ 7_~rW &L@ЍNv4&Yeޱ G.o+^I+`gz{r'Nxة\,$ȣ]`,~sq3}OE8^Ƣ»Hf}C^_K "=K|TN\E$Q޽ն~<׼߀JRjI^yOীVjl{ºOUBs|c0T^On_"+h6(Šo*mhWu j=˽i=|kB}3oGA7]9|K7؁`6uӃZ.$ H 뉄P\1DDAFFװ 7B-@DB!8BA A 5/N)^P0B`!*B"q7!$LOC\r$_Dp8mW1 JuEvq-\Tq\x /vp"e] wsdkJy "F44;QJU*a}p, 69}<".?N I H$y'S99K0,dJB;M4F8.AeQ_¯7mJACtI;֠e] aۇ |9 sI9F!]Mf;@q$桖NZ0%! 0e^F섆'Udt4ƋӋryA?Huc%'-YLZOUk=)3ϽaӖl9?#|+W|CsE3 ͱ`D`ySs"UDp,DӃr`b#>g&t {~4Ұ@.mqZ>#ui7_qg XA$֖izܨC&tAenpM brRda꥖+ϩ>*x!/ۍKB NH+6=($f>`w2Ve{T7D̫C{oh(ٚC! "8ܲ^c8itSSCf/h@n3`opL,n4vZn!_vGnK5p 5d8 r0 x)U@0l^^0Apx# Ұ"4o h!G=l tz,60XV8LWع3b}yYk2-]P}PDjd쭷7Lץ"Z]KvnO&lsS٧۶P/@@rRG9Y;4Sk:O$h3ޘ_^3Zq5Zk۠i NEh꭯ʱVo 1J9oO x򩴩,KiBf }ۮYrs̭Ald#++q <OM b@M~㶖@ )u9ϓOa9<ⳤ9i#9EQ,![5_-^6ekv ;֑E wtYd65}t  $t+(IQ=AYJ}m38\ۮa/nS=cNo% YTipThoꔤRY#@'][1X8+PNkbK p2 fFKddA YLMܔ\2;o mL f|+8L0$^,NfwR-3uovWq,&R?eMP]ϢJMZc<ZO'΂leji^d˿( 惖݂[6B$ƣ7%{'.gӴ{rˠWC*W/?О͈$d9aL?s['X0;WbT|*C<[SXՎ:z>.r&u(}37N?ڿ[zo|ֻ xTW3Y=y1<p2ѓΕ!#sӂ3 A(ap H%.tZ-")FrM)`Z\fA獁h]d&ZE屭IKO&m 1MP e"XىiSHWꕏk,_ɝBKY,ΖXyaQR&~o)qYyLRb3?ME,<۳NZP/W3ށ^㒥] mF7J3yi*]CLXf˾HQ< ?rE`a{4aWp\qg8=odSkR9C-x: .y[,T ,z)KB'-& gKP^Q-;wW 2Fc˴":9ǃ:̲+=*x}1+ ] DQӓy$~3dnOl*Ii}H a)a 5mxZ zEŕ4csiEh2ROՋ dĨ-}06E+_ϯ ,OCs;\ws.xEAuH9MCjKe .8onUKZUsVϤ:/ѵ-{U/!I&˯ץ3PUnyXeJM)3r2'Vn &JIw/3{.:~7tl 5g7b/Tϥhpqkg8+}pjJGV ʅ(`*sWF6~BGD,lmAs3Ejp#⾊6M hT&}׮!ҳo Jqކͺم | _RZGlF͹sl+skӴ!V]EG=No>|Yjy+E:|-hN@=[\2p//))(.KK5hKI#)`v ͌&z1ϔ3/KJmʘqodZdSe`#\D%1#=}MXL_6FP!_I-Z>v[3PM$Ӛz!`ql؁\)鬓+SL:e}wv')ub寬ŽZ%£9b1gNzTt0q[ HbtS{,..龰ss>C'Fhm譯윆)![k+[p*w~Gk/_-0e/$KJz{:CZiO on<cJ#|P8&>YΚ2m-A/؝H}y%G\r3Gkǣ3oʓ7&GF GU5xQfdmcB'̞슪#Ruo8$++[E`e2V;.HV nix6%RMwۻnXaѦ|>2d8شC!cn=7v4V_osm{Tۄr xlн`+(:Ē@J!w>S,\@JrzAy?ƠWzϐOVjBv@v3Q[{JwV1״m^޺^TPxOudkwL+džsJ؋9wڊTT[~߮P[\">xUث[Γȍ[my a|ѳ u k'{<B .J)ItFŭK]hhbSxZ9JvN ft_5MPUlծoӷOF,߿51<7Gz֘U8=AAgjx%+,̊i9V|XXL + 5 *߸qC/yѿUx~ TX!(#X$i37Ï"18':T+#V%z$/,u:V鑻XSb1W%Ḡz7e5.}Bef%Sš`-cÙ6OxdSs5=WӅ(QןCRa:^U4E*_nm|MRK.DQbQ5S*d.qp$w֥_/~i&ҍ^*((n{>h{z빸V.@,J13yzB|dko6tU!ߜitgkye0{ʸ3v@xbT6&u2u;hh\wύnZRާ_f>A dJOB I09C%,|P-eh8Z;Y“2*ΨvU+r}V܌(@{PY09^&E{H~Qo/, ADi$ h劽M[Q-rɻ4Mp  yKqNzگߒ k9Ey27~-<&)PdulﳛH*^ꈆ@%&Hm'ע:e[y4WmbCc1a.ʑ LK*.}mQ󶙦 ;hO]Ze|Nn8zG867Å4TpklvRMx(VÆ\t `qV~^X9h:uo#.]Hy]'n))'hCD8%̷@_‘n $t;N~t!,W%E9~dLuSndRL 7׈np:#M0ewil?x65%mXY~26gb|DPWhNv/]7ngY狕y<O{64輖f89쪠I ϖlL]{C=SnAIḾ J28+2WwLk0wsFpߞ,ئ팈-z}٢̨:mV`j_)^Hz- {NщNwËrV[p)+l.jɹ޵y뼓KgO{Ao{QO[ۜ]7SӞ|/H4V <Px3]zOerVaZ7t;鰩Ou[Ґ{J/VBSZ>dhb7 \.* $30 IFnήF&CAOC 7)bǾ jΞ 8kur!7-q î] o3=g {.ķNM-N[y(iAzvNV̻T0(9,tǸ4Y}0FÅjG\\T*\4&a2Rn}sgvW~.R&D¹(qLWZ(Ka]-+g]mx|`) AɜΉ353Ҳ REP, x0u0G gf;ȐqKϨ=V0i'(˗4,&YHz]u(auq^kI c(GdYpis󡴰؍ĢK~zfv[}jwfPne\>ZN!C!4}55􊱎G[ >H`Ō]Z~֏<]۳~eLR$4GW, /9P7K[E}  `.9/soJjN>s-_7S;i4yzCӟky_s뤭=wx6O}'>9C]˺FzU.}t wp a400Ǟ01P04P/ ?4IIPT78ǿ+lIR#=-{МNVX O|b"8J/IhuKQӟxZ&hP-1с >ND?{JD4CyYr)w)'CG\h0Mʧ84Wh̡_ea ۯ_?+ 0">v{[{[YSUMZU]M}M}Zy (5f]k=Wo.Ϥ;3 j.i-?Nĺ%!$]e=z]HIbA8%NpL)TϹA=e (͍K,a$Q>&}#"芋Zg35|XV`7)ʇdk]81%||ey̚H:5P3AƎsf%qx{glZ$@+"V--,ؔS.../$ӉrY;ul~!־h ZP&[:[H/c \71 ASm ZaC~+uQi})Iwtsչ|K+oa7, ܇Բx=<Ջo* OED)^/ 3쇯cl4GqX>)4=ˆqݙ2CuFcә4VI c{ >o0VKϰ m?b\. D&T7"SqEiNf[[8c|gt0W Clnc4ЂXvaGDÎvc6bL@lׂjwOP5CHHSs)bָ",'/t'_RlB bJ߆-fj"{߻KEqY%O |?+F=l,9bj҇lV MW!z>,*aw W K; /Vm1(%clݧ{#c~ X[%}9^m-P_O)@P$q.i 6{UStR|es9ߜkSX׼Ӫ,,Ɔ V"PЦy;B'j9_B즫'K䊁JspKzhN!~wD"y' $ (Z!(21 &^~CE( kH6iJSQX &`/ p'e{5"EpG1v?lA@b.(I %"A\"s cH qU3rfË|Ewo+==|BX65#PWrCXy0G:GWշoG~'8٣f۞ITVEYBRlpi5ϙiZ32Ⱥu'*REjBKu蛤a ce%$oAΝeP F3vQ!;+`Y x®qMoFsGXͭGd$cE(sA4ONe b̰EW|G?dV~bڏ9V:QWHxhXN,4WJ:8Z崥X! 6j×BAE(XRq̠ClH*X|XSىMvl\k >M lqryO=BoU[8tx+(juq1KYs(UqP-C/nr5! RK \4"+`bJ'1@GxG޸@FYsd6Ӱ3$+3ڱCv4|$N,ΘۯSH;mr+V*Ј!2M~HY4flJjr{.}.QD6 #xTrW};U½d2W$K\0 x1& 8i٫ JzBܝ*WYl[Dvs1ڇhYB#$܃ΧA3 x1 yK,jA&7}Mj9yHN jsj|Qڊek6" Aʫ i1GZH 1z=]I LH {HNX5TR6Y 7O )N7j.w&E eV%w>n"")_SȜ׌!ǜ]]2.6Zۨ8ڱά0?Ё, hT5!AzӊQa=+LX.ЈJ6?mr[f+ ,]=Gnap%Y'_M%eڵ7  rܬLi͞l-||<87TR $9A]#75K[XP,=,C9oP=G˳GmP wc,OW{6Q|xT UV6X+#r]dElimu81^Y&^\VsŨGEPb&HI3;{RŽ.-<&@,>3{u km*J(x0+p %Bsw4X}Xh|?}}열;V5{Hn1n%}ߙÒvzzTֹ/uD(FWHyA}oǢNɬN~H?_ Ykd4NHcLo4}ؘ]ez.N$]x);sZ:WLwZbweC-q&'7g+[m+'i}o Tg֫z?ݾ[hyluzA=|W.W "9Κ` l0ɢt6Ŭ?e` 08+67r]'b/alM ̠hk*[0\uQfJSW=jiٻX_-܆e[OI<yH^;7I#}fI;TA(e| msū:N[xB!TAx!DO =a+JǕ㙴w%68wοHЉ e*l4|z%O5]\$Ȩ `Gp5҃U %Y"m7bκ"U,lbTmLB^&IN2L|fHWȭl3X)fq蛧/1>'C"HX?%5=sްt=Huݯtn~/nM~U%.`maW|i CS m(r T,Hj`G?f ogt>ϬYg}d"|`vܹh!7鞊~Wh7XY O"щ/3yd0ؿ_B#O >, >w}7cd xd0/ oq]!'.A+A{J"2 ׯ!#F=Fs$TB)knҬYV 13z&E-xPb1s5Dc^KQR}'0a '\Q9̵7\t='A0e%`$9O<6^>>iV(Y8R%T=oEB]U$`鴼ޱDܩ6nW$]vn& ʇת쉧RUJx KE{gTX2},Ľ<<\2qWqSV"`SgMJp=gKܞf0$ݎGlvdh$]_4]Οffiox/ w#2RY6 ȣs~[ N<"']sp{!pz/{T Eֲ!5ЏrHUVξ43rciSvJJ1-J x_+3ᔫY).>~봺PEM]߂)wIj.))R^~_/"KnoE ytה-r/uZ% XS N7`}oRq@4@tyDIB~5:ASͦ sG9t4F Y6Vi7k: !BG^^Ħ*,Jѹ]H ̇SW<, 8e(`ywdw ku"#GRUJ rp io%+>cRA -A* 6??2 6L6KaMc٩ rb'|@Ijcٶ E)V.*#*q BX0尡iQ{ʾ8VØ (ntfy-2.11.0/web/public/static/fonts/roboto-v29-latin-500.woff2000066400000000000000000000370601462047176100235420ustar00rootroot00000000000000wOF2>0T=d^` \ <  6$  S!%̳~ХL: h6j"֠H$6L9pgӥm$u,+T*`P(&Y0DM)O :t{*| Od~TACa+,裤I~^ڢ"JhOwX+Ov=ߩy_h:u7A;"R#{jBo zU"-,"Kx(ꕞ܏N.3R@ ]Nmɖy&Q.qky,d'ϽLFj&V >r٦׭lۤ Z#>F$ (dO`s>D$H'̬*[< Wa rI.QsakGOVZ13Uu%"]N{{w[id "% KnLp6ݽ]^}>%^^g D1ʴǛx>}cמ}G8ut}Wh@.,0[ȹ`0FB]+yX[&:ν'=Ue ~j&868T|Ge^ҫ"?8O`g Vl[ՀPKvvڳ?߯ nJl۱kl(xxҀYbĥ[Gĩ" Ĥr]8؁-/*rT˒ʥXn#X)6ٱk~؉Sg3 =o` &}1ک XwWdX{]<#{y=F5(-W1γ1W>ƾϐaDYǶmK}}m OwB_֗q/7o2 DwgO!x8v䋶~iq^k_65E{_iWiW=`8@I{nnًwP N\sH^9=3<ն66*?d P Gf{"F?B׉9^Oc{y3Ò8,ӡ;xEr2ʾҒֲ :˲կ1?sPniz!9Ni:zE;K4^%:lh=0GgۚT[zvwL{J{Flz*ve jA]#9 AV`"l=E9q%ƝIKF 4R:tw`Ah~a*,A1A)2BRc|4Hc $b\fY0F[c9& M9rc-Me0.>/P(?:]& Mp8-Z9 x<ټܶ'և:r&co'pg'q>SxC\$i2m9,, pX楬lH@ @Y}L$ؿڄ!AUT0 >\@0+e龁%iFXͱxT0^zM8 [(HdʿrdB..ecѼz(Q8qWhR /.j.p -dyS(r:d0n= >J%tܐ#XF! JИ@ÄЍ5; RK8 }@ai̹K;! mdKƋ?hظOıHhT͈3-^(CP[F)kպ㯺{A~h vS[}WoAO/`Lkt^BBWwWߜ 0 ":i$H`M_Ht|5P`vEOX_pØxuHHH*_ ,x?A?v'E;k͞1gy+| -/}G$9^+CzƿϕdLR]}|ʣ>>iKZUv0A 'b??4|–^yB.o{|D%@OZTD Ν{?1aVZS% "2"pP` ű.#K2%ܥ:o#a'6GCoq4 E5}MCxg.,9j"Y -)f93"cqU,ȬoD\Emd$VL~֪Y'mIM_Z!#_ 5,tu3! tbhtٵ;`|O3XyiKU3d6o\#+|&{Z)nؑHʭjcM }) n/D^f{_< Pv@3[7ʐ!B8C)b`ٺ Dg2dvDk"(A N9Xn)h b[*a$šWL`  A!3qQMXTz3E49X݄/TiPI&7EۨzCqDd:wԴA1ш8NYim> &1iWۀ5J%6Zkx ;l/ ,V)`05[ 0 FJE.q}ڼ B";\]5"H RD(!x@R\8U*k40ME-JVoX6õd0KWC`͊)\c۫9^ԡыtXev y<1mm6zгtЕ\e}kZC pLL8}JBlo5c?ݱLq4n9N$A7LY_G+-͵?e$~.J)ZZq@KnnH1iRb9l }Z] @kW! NX6>-XRmm$Z#f1Oc]iT\kyԳo&ITUkĪzgd({fשbwɯ9*R}"DZ(kEp59pB᮰9p?' I\] !MyO1!j̹ϖYˋFv*'NY'.4Կ6.h4V+m ޭ=<=2)l'ތ`_6;dܸAհfۗ2U{:j#[#Z 7AS!c!ڏN%uDoCHnrPqZ8&1j(T٠W2ZDZJ(TO]9tōfTX)s: 17!'xQByPxe1m2\4MS*xI@9Ph5K@9X%%b8FFl<'e/wȂֹAMUI&99fFnDyεoY8K-A^zqϏg%Ye#p\,H[Bo Вk:Tl\s}9m+eb? r!C7qTLfj%!Vϱ3$+do#9sT^1Tn?Zna8뙳ЂZ[EuBAGw'&L G{^*"Pm4RPbf;$)tmE9뽁JÅJH9Z/pU?Y寰>wHjN*\XԾy<37&/V⨺UTf9D͕N_[ܩ9\B_K*nOo(|!jFV=sh5ˆӧ+{3_=*G.yk97Y^ lXR9 g4edRW }ć*B$>JI:xQ} ܄ɶV^@D ;_aeԷ63"XJ=T~m*dtrpQ;G~?=Q;^yB yb7BLY=N^]GF< AYeܤwĪ/Rj0WcX,=6z(ed`ZEB͔)Xߎɤ,R|B^*,xg݌G?%Г/n=533yl~.7ţ9#RccӚ s MRQ:!|o.ʵas$ ~Hyz+SfG:DQ&Do'NjdԮDui#1{ 1~jdK/5"ɔ+iRRRFB#DdrG md1fAyMKL)+֜gi0Dt-'⸖oDg]/5ñH >}&k0@op:H;Xx1%,XY738\aCv9wFl4ڕn5@塦T&XO qbwV]ʟϮEEm鷟[CuO lyVN:~ΗTcȗ]ΌR!RDSX3,*ѿSW.ɴe˯峂\b=|`d_X-ПLe }DϭSY9gCeai:V]]ojop\`j]_g%x[cvts(} -ݮtw2 4qexd1|OV om/L=yCK9=M8y^St"yEy-=k>v.K;us9!D%ign݌"ɋ\* )NӄpBZ8 \wYBہw4 VTf)W!k5s`j~= v'דQXg?,ED|b~)p҂Z^IFRbYq:T9B9Veɂ_5t{7۽m0w$zՄ׿t7+ҵ,|/ȱDJfȊ{JEfibwjcV2Kɹi~Uxe_g]&&Brﴶ >=k{b)GfYåʪ2Z3W/$ILӾJtx[9xa3NWyt^gźB uv{O_My*~H@,VXUzi'rpn``|V {t v-(m)n.듟T?t]WyBRw`ጢ{< ߯Tp ZfnsGKqS~JxJx{Y38-fbqcTqs|j7%E00Ce3*la%p<-^=XW19wR?;!VQVL3GC=Ĥny_RD8ɒPO fY)EU.43j펠۳QN#-W_Qݜd.Mݏ D`!_CiO.δ '|||2Xe,*79XpZ8IVb`t`L: Y.[.ƒbaiߎllFy%CrxNֳyz%:@%'*9TL$<62¡رykpy{`ˉ:2w O#O:ò<C0j/לc՗A}_v1u<~{dRCs4Ga<9 52N~ A~TJyg~=k/gOqND;9ۢGNr3!M<>7dLGp' oG>rs{w(?68ydیpas}AhM P3T^ ? Ge&e6,~LJ?Cn~}S]_~~ ~]]W.[hß;nw>2ZtGchokMr)Nӽo*! sﻳu՚,1GĸT?)AXbt1֦&kc/Ra!ojBܧbD6J{(:+:&v oe˷!3+x+k3{ .RLG[YVzixIҊZVxb*O,Wi7(?oSU}gfjpt<*bD"m, ڙ}?qSt$]4~ Nbb{,ݩGz}쁥HP^;upx3>v[ʻ4]H`rRXH*UPo0ZB%}/䔩7~2)wd(w1FN#ܤuj8;w9oOfJo? ԛXU5ATLL/iΨ' Y\eΨoҒT5J@j7 5Q/[l!Mak)v\*H3̰s͇4oWtԂ2`rpQ.s*(5#R@N=,|@|PWmt4h|;|JI{A 0:NԬ6aΟ;ݜJAzO- eT?JБL{|<ۄl@_Q\E"_Zakͅ`"WEL-?7Jk;л`} JMf_i67W6466T77!M#=떬O%?پ~5~mB"<"lmXdhV\s$ݨ-CzhS4&JZZzE/["$UKWv[DzW"SmCsrθ}-IsoI.-nKBιC#feŵϼQgzݧU/\6Π'QZ;k|*Kr 쳗64Aiiu AeJJڭ=Qh薣SPhs矺ջw<G$ (v R!PX9\5Y+MACmٜaZ2V7G-n5a, 7 pS‰^;~rvF3oXpSUj5[VQkWzc4[CJ& I-6I`Njj^j6ii&&nbR&G3=݃DJ޼~R33M\J~[fߝjti5?a9kti 9]];==l/!)yӫ͡ f''儕d% @2@LÌF^.Q oO{~ʉv򭧇>}]?AaG5ETզTkUdI"U{ |x~Όx46Q=2l9jW}GEE{̃R{·$ē}&XV3IW$Ar\RO VCHFu`|'mxJX|R7\/ -A֣,te[}LkN?5_tLźs{W2 `|*ċP:ϭ_Ӓdpi}{ 4gض׳M#z^~p^꒞7yaj랦2.'S+gڶsC{(HB `\ UN j̚ QDX_C6O)?oMmt*7,K|IHC>P=SI#i.ZG TSuߘ`0!ؐ("QUөIYqi;u C]}GRue,R'\=멋 rD)6.μ!+o ;0p+20 s!n?8uI{;J]g`lNtQűL7Ly,~늦|#r/9l#YQ1<!Y]ehKӺc墊(0H]Y6EI8e" w1q )~/590 0ȬslI#ʿ dX jxR5H>pnjysHPq!cZIokEk7["f/X S}:m#A[<:\#'Z^_K< HOSXzw)s!4\] )+wL:gNE3&(!yC/،g5,B Fy@P#Xjwy9, uHÈ ^}rw˚7Fkk1ȑpC2r_[]O&We`åkűߏnUs BRP+5,|Qmm{t)ֳ/e> 0)}@.hARW |,V ?)b[ea6؎Ծl$*E_x,W)>Chg iNAGdmBT{ XG"L2pZO)͈K\a/)쌟aT,=)nN2\2R<@T|"Ll)PN\2U;lyA흧z@*H2: wyn6hۿ FeZ[o3\ 0JАQU+%[Y61&a>xqKf ZiOF X>|@"@y*eQhlSW&9LWV7:T vR@std7boSl,ܹ;h[8ؼYTa9ΉxXv{ |\$*,;EQiP\=އиE @؀N"pP?[!fa%)ADYS,\ܼRVTUQ/ayD ɃAj|hǙAb_V:.FVbtLcV}q.Ҝ1E6eC)p?P3cc@EukdeȤ6,B6$`WjOmH͚qCjXING4 -cZuFp3rɷN CksWlviuQ?MLMNd3ncO`6fF5-b酮dOb"t!;$/RӒ{c؁EmeygkEE-BIofo#thj[}Xo9vٗAM# ^b[NHB2=DŽ/\+|WqfWtA'6MY-؞,)&e,YRf'm1@:ƆߴefvJV~ )Tɪd0NDTOô]8 yPf֛mqm WS&Hyflʟ&ԉy$ Bj)ͤ}K0ZbFDvBK(%~5ϳvt:(ߎqz[-%TmyZO}I9sq|As(ZOH_&<'o~X/DCt~Րʔ{0V`nF+'GTi>.%UbS_Of3T m}lnͭcH+*N?Qg(s"VTw2E!ڣ9y,|֛*ri6Gg@yn+b;07NhIUTA2ޏuƦB⸦ 4Hߙ5?M/V|fJyW0dUIղ:rtKlKMj):V& gG:/ hu)#!{}/Ph Omg"b_m:`5Vn>i7nvM#ي| %bs:J="`0QWu,l(]ކu&$ szLs`` Nڕ zmj!?K{MWCRPR}¾)tYM6|3yK^AuOm=YIiʑh-UW_% V37,ʦ7  u( M t$tp.# sCu*a$8<.iћU@"5HKosw\>,n}>8֯^тEc#-YgOUEטC~Ws`ǭ{Kc\I.^ܣ'@ ԕƲbv,E 0_pfnhR!r^nQkը6z_C7eq]ʹgq1{ٕzha'K&'Jw !?)lZpV;k:KL%C;Z`1øg3tl-Zٻ6[\,pVȪW|? Ll%3vN5þw$΃)g%*U,}㬻f`̀j4% =Ti B  /-Ҏ^j7n+arȻ8nnUj D2 u6haR?tVmf% <>_P>?-| fh*i<֫a4jp (ɊJJ*B u3w/$_-ש:>x AhQhHGŦ KIe,t9i`!$-qCpeFn:~4m."8*rϠ*486}/6R#HM̍9;ΠˌXt-,q(}H;]6XRt];C9ʢ"V -.겺h/s/ٶ0Lٙ`+`kJ="^ՋWUUD.7i*wr"B}FiU ;%4Dz. pxl}=5kja~;eНādmrXTR*-WM2]Yl&.-1,Yͫ߅HVGɱ{*\=7SE]' cnjGJA4 dpЩtId:U%` QF=AE=&m?\uE鬅PM2B9H-wpIȦuK4](V'i檭=Y&II8 (8Otvr5ngG;;9Y>luOyٌr>[aAw{t=;N7MW&ٹ]9F€DD..&խ> F \n)71*sD^Tņ˛]kWgώ֪^KBݪu]klM)I U[2;`N҃*rMxiYf͔Jq> TORq`}6&Ԭ2*?*HeQ+>C(9, \DfcHeygFNԁj,J4 qcJq2. 킫\m}t yT[QnVVJ{Ф QͿ) I6у^_ɂl9n GC ȧPXޙg1J_K"7V7yR<' ոcCcFLadSaċ@9Ѯb,r4U7zHyߜ WI&jCu6uvNܶ $X5!d{lh=QМkd*'^a赆 yDY\62@xL?=(,/k2|=r 8`#v#AB|GBpHjoH9Trp5-Fd" G Au咀#E J *C#"5Cl*DD [%D%Ek#Eap= BD+*K52RWt|e u b!* TfP(BǎFUhfٲfΞ*jvi v7EÃ#{tY("+b5]޶FGsOr "࿦{DE23)Kq;_! H0~@`ہ$Ĺ[;{L ŀ h7: @lGK/2 X ֘pa"w v+qiN%2q0aaR QUEDDynihutnARK60 E#"0X7 $B9䈣9, xg%kv8pFʍ/T!ƌ0iʴ=Ь9Ͻ+-ZlŦ-۾ڱ_} u> IⅅTn7bHV۹%.qmǦ_.XF1ILaOXgKe` Z{alů*ĭ ԽB  aVmx}1 sИ )vWA8c(]h_M-: o䒸! b dXJT+!UQc}i"?Hc7*m m T eG$FQ1J ,e킯ɹ Z6$(Ī@ULZO'ō|G}!,b XbW`͇Smn̓jq1e[a o1,s 1]ZnDNw]ngHX"-S'9R8?ŝ\f\<`U_C};|cUe+u̎~n4,-<e|Z):w^Ϋ~)䑀o )\݃έalrY?"{70HgU" !#u]/8H Wn )z=tuѫOWAmtFh\wMug}4nƾ¹}V\#)~s$9ś?J+@.#iSzkt;e>Y[֯vr~qe 7'I3oLAK|y+l3= !_/0qOQFn^5J>Q$K^l N na*m }X[}w/hKR83Jl>wox[zDFzxj_IFGm_Nr6jGy'j֟n61U74bFӻMadS~)=_^_ ^:6Y׏'KoވWFc=#J,i{|S [ v>8yW:0\b L,J1݁M5 lÝ ,Y+\f1O:DF l&'q9VoY\*Ë"-NtW M*kT c%ˤ\Zmb&ΝUԑEj(bo]fhRp̸Jϕ5Ͱ fN2W+4bNnr;JENxB1>M;.P= $`b-)N$Ifaʯš A4J;QRŒc6_?qV'1]]d Z3$.Fp':cW>e 5ZpoA@'z֡:w&VwR3eb+?M8|,wŶQ*8g:*x`yD*(:Xqⶢ!{NB6͜l "4EwqE n*8ɪ\m~5Ȇ?S(`G#f#8U+N$jsgRe\vr?#G |dYYz!C8|0J7K^|UvW'@97)]Wi//jyY~xXk mUS^פQ#[W uAr8?pFVb)ϑ/j±`+ArL*7)htudٞ0Ӻq{:2:4T& Y}CPX6,Y1TG(U $(S!O4Z@#r%T\כVyXF*>Ttŋ-KȲ:8}u/Ƴi:~VަŇgfv0W3E%/)KÓc7zK[Z-RيK*Zn`ɳ[S̒ޢD?2E1l=fMQrEy a6KfT򬞯qw6=/$G|d}>6xnntGȆ_dWxHuǮMRxoj|DnQ߫U9=+ ߷^9RF1GwGn[^ lϞxp㏇8V2ٚ_ٜOl/j3#zd)X1TVws^AWc!}%gE=MVFuS]ɘ32OhU9s";;3AAL7_/6lYmR <3-S>cwL5C+ޟH'*2iԤtVZ-QָdwTLмȇ3, o2l'ށW+ ȒbOxa5e58$䎥'&8i$!/Xĸ_o8sPGH'#T-%ŏvڅL`#-Xa#˼ 3 @g^g%dv#,%q kU4ΔIJ0]KHmٌfDp3mhIs씠ݗOVܢZUx[[}M] \_y:J[ڍ:'7}GM6ɜB5uc>[M{ N;!?rr3EG7M2pXЅY,7jnV@Qy {>E_ajiiWcQɣɺ*~' 1 CsML\|3c!>eS: %@XYس H礧vŋ5m! eOvyZj(vy7NHrO?[QQ|v2_ݻW; o=9<(X|G`!Έݼpqf݌h#lˎA{u{#;r:37%7?d/-"q_~#<"Ulɶ*6#_[yG/Ck/UC\|bBdbM[[P!Ƙ zvCCp$ђf\9Y %U?+'Yy#2R7_,LU(slfA3xFN"Gn"=}!{ pIG?#ՐIVa9zgvB)sp 9gsx#OEU-/t+<"hZ:iSxDdf6Qx]͜dXYPȎϨgSkScbSF!u7ʁy ^iDn94QhűhD;#n; D@h|V[E _c@`IB[@? 'kc*" a_^RA75YW'~ި{rMgRnهPl=#>} z3#J8D  lkp|~>NBmSgOPe?ZPfn{J%x#ƞ4G4?\y0ۧNtrKSKKO2%Q3/YFM*6 M9z 7$TYP8CTG521=1-!fsӧTF#bF|ctKe|DW`/zǏ8x_ /S>mU;vY=l CIq.^$^?֋LYuwdH ΞJ3a] /eP~+;P y{Қ"}revKgnc%בC}šQܨ㶨PݧrkS7).HyqSP#::L{`ΐ+7QNm@4nTs/X}4"Ǜwm MlJz^!;ۯf_T9r:TV0jgF|jrE;216df(:֯\+xC2Ѳ*1{ksKǁ9qdAruqw˔ kne97QD(`E}6&eS?tOsxTwޥ;M]_P{[mjg #/e7Ֆj*m\] { 4uUUr} ڪ8GT!Vk!ί ga"9 EKR'(Z]SvJ]X)6٪osS킝{:v;ׁx+swBHѽe }#<ݶ.Qy(ڲGeXpVعmĮ"x^|LjXr\8Ҏyssaxi isHMEfYKKq/>; P<;΂hVs(3ٛ{. u6hrϢBφOBs;+.G&ؤ):X&i0`ͩEia}m{5fWf 3Y9_.ey5Cth19cw+le4k(&;Xzu~TOeuĕ7eߠZW3u]I̕B";8ZZis$g^t*k^҆gh6p FTPeABWcQz%徱qb- |0>( CVTB֮Y/$ Mdoy p!ZEupiUx!e/ߡVZR5b{(n|YNSp4O ɈĠG486>"pwb EGP:<1'Sc=ӢisQ^>gc"UjkUT|k|H:\NVRm ORy+V5]Rʲfη-VxawܮlXaR4_YXh4߇fW?M-(@^3S!AiI zFbvMLdM$Fo..D^f]Ci- %%5t'D u$דধ)(z(ʠmJ 3vüHa>) gR6zR aJN^^b'ɏ:tǻOYw Ƕ|B3}*f)25T>˱62P-:Ag*]Y48?1P"(t^fзM27u}}duZ|؍mZQ^T %+=sN]HzueBx~Dh<̟/W׷׵@%5M%MW.`NF۩ sZak6lqsg8{<#'LbGԾ n~|:RP{I U($6 ! WaeVjna'F4W ilxezWgl/.jgX:Kq17n90aO剅OS6ETMp{ZӋ[AwVEx#EC. \+$B(saLflemW?-.RS6ן%5!$@6!wQK2|ac-GA:QE7 EcƉ.uwGièj"Ik঺F -oJ\E 6V~U>"6[%pa;4Lc}f1Pd `9Q38d!2N>f};̣3R (G1,%f^ q~ĺR'|a _h0؅%7qM3q|)C5?Sw:-)y)<=٤j12..{kODn 2JV, ߳p4 ϳ<OHv[$wAc)GBWƤpŸ(A1NP{C^ipKxBƝ*JyQR ܼKpI.Ť1ܘ<%ҭEdz~+w:3eyURd˜VsxVUTi$4iaTrM N,Lf1| F~u\,Ѿ^O96S{-eJzL ^ac? o5_LSys{LPW:/B5b# |BD08/:kz:ذ`@fM#uQH0K]㽃xr oGM8:P  W 7D&vʂo.)Xz3mYgHh?zѲ‘r;Lx˯E)Լ[;xe*ӦGإ |~\^($=nDܓj`T d26Ġ{>~_y4 "ڇlbu ۢһvv~Xd}YoݓZtA7> e0g-&3OnJ`R &ux>@xrQIcXGuL^́cb׺ڛ8׉ ]4>uMq c1/蜚|rݴ^wjhov(ȴnjH\GUN:G'}tR'[1=OQH9 ǶiqB0EJ*IMTڧe4>D4ZfC-'}-|)2(z-#d3Ia4 tϒwcnp96Z ~c]3Q\l8ù?wP1r.}xl{'?AIebH=ayjUR}ID|)IF t=$!\ [PCe=cr]*5d,d5  nj'C!0X>ㇶ)nO㎧@@8D06|j/e:X`ѥVYZ; &(˒2Af,R CN΋(6VQYۈEsGr=?aFR;ZWA<{3F=ۜ y7/KtӀxǍvd}/97GcRHHQҍPז"~ڈNϗO&ǶN6olbs|jMަ%]ZgQICM4-K:%Qe4Sѻǰ4nT`6E).>5! xr֠/`9IX Yj13MK bS]DC)]5HiSm{DV6&y; %HL 鐯;7Pm&$*4R2~@J Wxw@0ڊz,)Yh2Bc@.x%lua]7:~z),`39KR )x(~Ok#%`ϏGڋv(ѹxڢCsJh4aB 5>e|7^$# kvtw'l lG(X1MɅ!P=ha"BAPz \(JLPClIrk,-Y&[9<.cYfdJMCy6؟ ܾ t#Y^X̓qܳ5pEtΩѫS#VJ./~ؙC $f+i~҅Íyu씦d862Ɠf6n\s*Hhh9ttԢV/؁@0Pzǫ$HL+4h"8 wj;Vޣ!9,IC¼ v K,M1FDrl1<9iz=BAjX.дk2S8ܨͲbX|\-k6B2c>(hH!.KTч7L`+ԝ@y4Yϩjo3 iقdBQqtE0_A0[ }cʮWôY|A2Cq!=K"CF:YQMƶR)Cu'"L,'Dɭ<2432QM Z wԨN i4<ՂqD"+e :bbIM Kl˺bQ,ؼ3Vβ>Ǥ/JNO`;D]DxaQ풁 /&N44ֳ"碢@N/`PDT,QSή]GS!--<=-OVuLGrJJӜl@ "F&v pL ŰTR۶8KG0BݝRrM&g}CGGW2DZHɽT^ Wdb%(T{.AǐΩя7y}G0cx ƭ:~Ÿ;M& &zCN4Y98\%Ps(a 2lֿ6qB.D=1m:kJ{%d1O9ks`+İ8)ǎ)vP DnrQ"વW7WxX5Trh=#2:9sL^kqeT$ 6xxzoڮzۑҾK }P[@^jXvT+G̞$#3GQՎC}ӳʢ!7Fʍbw  ŴeRe9*ύ (Qd9B~a8M&XE8fvR𱃜o ;,+T]h/ŷi3c>ZRZ;\t(t.& I$owx~?j=뙰)7L؜*/nuw>KGBǑ$^Pm}5R _~dU7;<&p#i"72EQUS@/ef'ܘY_'l)ә&jĝ -NZn:7JRrzT²GFa$k-Eꚸ0-U⾞E4ƐQ-V!Srz]@Dd<֓-j5H#O[9.,b{y8uL5KUsğIkU1?pfsfsOu/ GTFN&4bb38p^w33J7ZE~Y FcMG-)6{j#a0%ޝf=3QNaA%Eh:C}s8tJf.%|U=I(_(#+5;h[{I'Zg^{&3ѭgZ}DϑCG|zq:|J4ʒY /&Ƥ(H|33CQh/ e!<%O+LYf.֩QvXJ́Bdh nbW#:CY⏒<6ɂsTtiOYe%iZl MsUA/+?!$)g33LƝΣ>lAYTE +I5y?%eqZLXoj:74JsaeH ,UɥDW@ϡ@m,q4=\J$܊@ɶ hҪ:믈aQpS_bx Lt'ް?{D@Q x7/c dۆp #xyE 6e9]0nqG2x.N t3:hWZ}@`4 A:}:*;C~QMT*N 3i%FP jϩEp%hlg4bhv//{a'nn.(ԣ/k%H CGd` ":`ӥn(T!PZN"ƒ.EZ߼41hr80mfӇ-k R#iH=J0Jimw!>@ƙZ3昭Uv8 !23[7?ksH [EyHȑLn?cyb]db$]:H|B $$R  =VuL'c@II@GcQH =n#Z$nY?^M<2^`H&J.GKn`Jnx0 m)0Ua}ԾCQXB@aG4(QFMZtgk8qƃo5jҢ՜y -aيnm՚u=ئr|'/A1ta㵉bayIZ~RX<5>; +676Hs`ђl۱^oO^o(B{6{908w'$^{t-޴0;|BCcn=ldCJ 7c\sp͛5_BQkO` Vlεa4^^A/Ӭ,-KVl}Ƀ*o\PVxG>S EHO=q-1<]Z8>T>G{{3/c$U;.kOt`Lj˸I^!Qz\ty#R@0\ͦͬPNmL.zѦm6}cXƻ8J:N+NMsbn֚/W1MTf+梔tBv;.ʛCnUKiͶi)wqvZuk%ZƱc?n_'7TE0$ A:fZ TsX -‰ QnTW|9FmdtUEs(yW F#|D 1P)*@rYHY(QVʔSnZ6eCR~zC1)iĂX  gxP8o%ffXP&^>B/6P!T\mȼe0+gM<ybͩ6-/w}M~$\%r(80'Aa)5 AaNq+fCp FB)Op-?Pr0z x]%\pnu^I`b&x'%, ~ -ORewt1 8uKUcigi]du"X"ATAJ$`x!j^RF)Y`ozfO qi;I1 Iqj$" h/y + L/9\a!AaQSQFȄAF&QpT Z7zwÌ??g$H 7\"VJ ?!{@ظ0h DQ = @c0_(ֽaqFfX^!QIS.G, ֩ y0B/p"m`c֖bwՓF8∌"߬nW.CM[tǾ#!\̧q"-v*e\+w#$?PKLn.W>J8obů;'[xz0J7{u4J vrȔfRmB.#ox o΃ ^x ۲mǮ^ ){g_|we~.O4kBR"sŨJ#VbCk]*`& 'zp-38AXŊD@v{iB_HzԧU};ڸk}$4 Kߕ:PpDZ }Gq(i]%W c5)ɃuitEyGHoαutEC]¦XM2Ei`5$ PCX|zcH3 2\/6=؎l ĩ LUSL^CY#R32߂8ڏ yӒ-wz(&>b\mA@XA"'X[iˣ[tׂOzߛ6qm_M{A 'cQ mæZTiW5 8L7 9 tå#fkpEn5X\}QEW/VE_ZkҸX%;:7#H;"8K"KJkSz tzw O3W0kB6羐I^d~={NFF}#N\̰P}2xZMX;{1 p5lЅpCBJyv܈WB+*q%G!Ph7|fly;0p%,Yõx(@{&"-58r_ 14-sx9$mP=}wٙz)h3- 8X2l˓QZ9&aE]JQU Gk܊-ex-Z%9ԝ-tȔ^?7YjG\SR+*.QƎY/ԳnoP@[Z]\Eو)GY*d9IrsA"3yx@2qCd x, B2kHhxW^r7fC3Q)Y "IUuEyt-\.6 DWke7]}ڽܳ^^ƛS物aEiA)Q+/atJu=>;UT_X|nlQӓ_C)EٻX[Zٻֹ:S*CR,##~YZ;[Yxa,D0 !E&K H6Z]kPQeoZ`?c+heh>M c(HiLMv6URq30 u-\["iG~3D>O߶xK/3j3 SaŸy55y^&&F&]&*euk53!PJ-I ˌC/]rqm4?oM\Vp)s~q. v6)W@M_@FaN7/ZKeJ5~r-_;=K~o7ڍgplЋ =Vew/+(@X- }sHƻs3amrb䩼Z}l &QflB@_Y~Jwoa.w |]UBc,ZivC]{9] v5u"6V`-Izap @HMf"Q\Okɻs >!&1Tu[lЭdiԆ!8}QDy6tכ{O>nޘ&S RkIIũSO.΁^YȶDkYYA+ٴ+XdVd pj1dTX ]u*| uH5` 1hA#W Q֯A;ܗ/}}_θ黆5w6ϖUg[+a!ii-tq֧tD$tff'5*lՇԾڬ.j#Yml4N̻>[\ِّz+#lEګ8|)wz٦̇I!V5N$AGy 8ŏ hwӎ g;D\/@z"4-38UCzDt,/m;/KEfZ}tҡͥv~Apm*'w>8v!}qIݥOG"*I-+3/7/I|8}-6_P=:1d[S;$cG!r0[NDwƟ[uK 1lLB!ΤJwu#e|] KbZꎻRwͭ'?Iv}& RS(+/5SBiHbvxIK*cK&-t4ܸ$`xIuf*nbTwڡl`T=O+o,m>17~}Wav!>Oѩ璨)dr\;Xv?OLla q?SLݪgHk1u *Z]gUիyBYM39}c:m^LPhi)s{ %stOŸlZtke6X̳: @ռ{7 k8/̜U~3 "Zf]ԥu0z;^sN>ۅǁ?~="H>Ŀ;(¾!aր?bݐM 6N]YV.tΨ$ʋϗ0mcUSzVZ1B1oǏ;k"I\S֪>\߽j2W긜=>ʯ ꚼMtK7km-fUR1^A8_8,L{N߮~wŻ`˲L ӳ}MІnKS)Lۻ/n\|pq::'3.29 7l5QxNG~qI>->a.X|L@a=2YɬAyl;j|7#W.f%!}Ž̵oӡ6ϊJӱ>-q wc%!=,K[Je1Hԡ">@;OtZkb~ZáXȉfÇ{PWPla9WAkPWGbiv s.LH.+<=ou@8 w8ig\Ys`:9s5/5?3<'u^en>_Z\I p8.ͨwj~q tq#Ea&>4&kMqpn+5JWnHL?>fkZ酔 v ODԵFEԴDFGDѴ:ceyڞ`m"SFh$tv7rs6m2hq' ѳ9mNE7FDEGn0k =e֪Ag2J["N{PE糣;uMO[%BE*YG]' kMZoc>ZGpvVHh}߇فyntX'2$XOEE9) D+6yH+/( kt.3=֝Y C\~P ``lzAL KwL"1&$+ޛuܜ_16yolW3|"=A"G秐ɦ1CFK+W эLK+ K{Kb S֎UP6J|tfGf@F_ˏCc{.e8_:U O2L/~vF"i|"Rfs3j3F"SِPCS֮J&*ʦA&f*rj/7>cC²*4Dmc'L0H X y*),`I7'F,^9zHhr /2N?GaH"c|11~|"PyT!NÑ8q+ s&&vS34"yc':SE~@ff2#E?GDqsWD[TR#6V F28g{~t04=y1TN UIۢn}氨;g3h@:`ч:ONYIyz:ˠړڹ>^F޶^++cEy0"Ěmfg+(l0qjkC͔ƮS$Tdh;p[:@zȗH:YEJF2Z[ HrBO-l)Ԥ"JF/n!lOrJ8gq:a,DhFua:ӢL~h7$g4$ 5lsl)G_ſ(44'Lg~i9X~[9. 00OAOojleapN@_%YSRLL 4~D/샟dSO8ᙒV>Ih;%P0{@?0%TڵQ3 I~X!yԡihVF6TN;3`-0ɗ{Q{ڸ0*h C6-`7t ȷ1즹/Gcqi"%Pr0`e\zNPPӾ0:[C 0F҈'=w";1orV2O|ͺ7oeUGujΡV+ܥ9*WRPdh&`ViN}`'ʧ̪`naCe71t[mpaxFU&2ta(NGbn0mJ7q_ZQQ,O%$n.O0RŤ'Bķ,ލ VA&K?@* w '\|o?C׈)3ۭpt2J51'__egRCBT?(o^_k=ٚ'cVd5%:B?Zeu֋9vyE'܁|ٜ$ǒ=?LǭKj[3{<uL uD(C|{ʔ5s,pZ_*؁Us7N>Pn8[B7ߖ=_l ;^?x (/~9?oyc7P_W3F~nmHS  saŘ9o CCn% MyQQm9/%@}z'9HF'%zG0]0A|! ?uIiwúi(c Z~'?[zA1u,1=ؕ8xX{>O SakMB|BvVt,u%j ڑ3K4ΞZ4MJ}\hV®_߽h _XOG 1+a(I78FM>֧PU(?xonMJ[J^/yqU:6Ajv ^n꼪G>{c$8zTy2#&ah=u!'%84kN `^[M(3agty8b.!˕U3 Rj~4m̍%&-[w%띤uaM``ʟWiGym&}ٽ*c]F|I ӥy囘ija@q8=%88iBa=/~ë2*{_#NsG٭VN)<16Wl}IfR+`g!0発R¬j3 Icи^3PxxgrjKjCVΠSNRVK"X+88I3a0t/츠`s=^@hIJЦNZ#5[R)خf;oS/& sL7vG\gS}`qj^x>S@ļhiBHkb6ańZ;"pabc3@*"5ڼ٫D;X?"Kc򿛵:MV uMHPBB6p4+y]9I3Ӧ uB'e.U 8H'32d(X[m3e="dJhd5*:< :gC2$6Unb`$S:t1[g;TAAyen|S؍b;NZmɤddY" ayK1Y%Q!sLyVБI87 f)Em0r<>ݮ[f7axуE x pexasAK$˻s{Z`4,+gowFYF?W-YOE 2IhĦgJI ;(QfppdL=hsl yuЏ7LS tiV!=4de#~DN =oqW tY#M+4S$׉Ҭ y ^5Kr«aiz$^V*;d 2KhݼC]q{h__B"{z9V%Q^eEjI\*/1j7i9_*AƐ&=ײ^%'lߟo+ևO=3/zSzڟ#aQ-M#C|odMAh j;Ac~I WrmЅ5iƒ@5D)6v]!-֦ }GʏpEt*f$N*m?]oG\N0?sH?&p$hʂ,7N(Jȑ|mv5c6(6)!tz JWnX>Ǹ3Fҝ)0=UGnì+'ؼzw~';Y PkyE=ʏpqzgqe{Y Vpō)-t̨<{D5+'V,Mgn%͙çhړ{0 6ݷseXWjx)שT9i%X7OdLZ!M6&j2+t:I_z4O=*eGe\L2fiS־c=M M঱:t+;UEKb^Ic $~>R͙MΔMɇCokE#BڥÍr]y2kHu*O};> |PRMyFјV;UF^y.UG}C4ydhП\*l؏' z? N596 m L $kPp0 |a+b=-CD/̖T?w -{ ?'!:)<$e S Gs ]C4ݏ ^\'zyvj 3[ic؄!:lcynPdS64dA#zqyQDET`@07p}EޫF!j.Q>BK-[OSx`pYb_܈ *)&_qNd)߳E* >l@P&;ؿRpsSQN6h똿;ʛD'mعYW ͝r!vu%IsCdAj W)!$SHհ9a/?ZwH|@deh*EfU5oSC4_S c2xF*(a?<)-7iHe*+|WAVq׹15Ò̔ϧ]^b*[y)B7Y*By|T=xRQʫ< +s=y_Nd2iGN0F"n&(Բ( zxqpƟ!t=jՎYa+w5T_uZ`1#Y Z!U%呌qVƘ67.mqcٚџʌ̓R =uee_49U͢ȼM}ҺvXy9,},,n ,Y@4SF'rMD>N䨲.28K7hV }XQ-ks'2#5+Ǝ/1#{!ʍS&Gv Q aуeQM2 }'p9r9q/\0&/Mգq(]x@; !laa8D˅,$%maa Sq#.B1T1P[L060!,ʉPD) h8qU:(Qm9EHS:<5I<JIM( ?JQ bJNcjJlY1e&epkQBF'c 30yޜayŹ[0K-T] gwR )/!J=*Ts -b)Œ`)Zb_d,XϋƌS4Rq467Ų2oJ5GO\T4 ITiDU%JR) } cUIU#GUɣqq%1(QAntfy-2.11.0/web/public/static/images/000077500000000000000000000000001462047176100173525ustar00rootroot00000000000000ntfy-2.11.0/web/public/static/images/apple-touch-icon.png000066400000000000000000000363401462047176100232350ustar00rootroot00000000000000PNG  IHDRe cHRMz&u0`:pQ<bKGD pHYsHHFk>tIME!+qzTXtRaw profile type 8bimxEA BOXSŤZd tmJYd@bfra־y8.L?0$ t7C0S33(azTXtRaw profile type exifmMQB1a¶];b"pyf;|'wOzTXtRaw profile type iptcx,(IR# .c #K D4d#T ˀHJ.(*"m9VIDATx}ٳ^q_s;A AR&E6HZ\I%rUN^<%O~krU!v*)'#ْҖ,J"Bp0[LϜ9߽ %KG,sΙuO̿]Dj)$b7M.!/!DD Hy9#r$@:J9""pP*G}!n!9k~!"AL?B!S%)yKhyKв%wdF8V$i_ ʣu%#$To*Z ȻgːL*,ͻ,"Bo$#:? rE5Н&ƚN7&\gbB%4]I±s4X2 M%#iE*kR9^hWYa(0dd$H(j0n#ұAEoqqmFe,."hۮCqJoGq =J1dք=*2Ψ]ΈlA3R}^48 $+7xlF%"әo'!P؊U%#fZi$`H2RM ܏bt:D(ጌ1QmvM2T#7:`蛔-08'މ/E !PJFIZ{r]Zq, OHXYSK3PM#5@,R o235•e5tF7 :N( d(X9GH[I^v/. op4(HFdIu>A)b8LC0b$@bM $C41<`h]YJL],ZL&@!W '9GEkRTԍINHZ#[(8yekp'%2'(b/ʆ9"a q+o7aRg\.JFNJGz.&h3$1m'2 Y8@uA&Zj |9:nZ$:ɮu.v!:Ӿ@?xJ&INʱ^6o"[2bXS k"!w~oroVƾ EǹmM8H0}t< \cM 1pGJFAU(‚dp}4:.9K%#G I-d\+0 IFjwtUI%:Mt|U3wxtJ(&3&Q ;qp<-l,T(] U):ߤtd_&2X5dZq5\d}j1(WrHi2wV5:>7dvfeh3w`U@;Wq?5;arߊH2w$FǓb3I2nInu\q}&%#^ɭG CZM7b7;g?s'{G, Ē! 5׼rk^Qŏ,sGbtT9&ChBtNj/Qpɚܘ2h8sLeʋ?~}NHd3TMeT#]COf,Jis}1+܉(oceֱ\2HĦWgn ^>վVo\k۽;8 gSQ_j.):}Jt\guy'NQwtQIKZGIf"}? ;R~FԊ'3"2w|ˉ5!6[%c7AL3p_kT(J.XC*APɫ v/1kb^y=&9S,1_̝1qlin܊uu( Kϸ@}vs /ԭ4<[Yo#dU0Ӌ(!}]tK30Uf[G2{@䡡FV/^MR~kB'[.&)MctCʊIc 0vH:Њ ӻ(!=H/$:wGfBkPN='@jGVdU6t@G)S^}Lk$2 @9sJ,( 3<rTZe{,YS3HA (Fަ-1Pk˰-s'!)Z{9]@"!/{`؈#?j u4B8+6B4q{xyTHH,*D1K6W$4!af5Q<$ ,^"!$_)At3zi<7VA8s*ߚ}rB=ӨlǏU@H9>mq߅O[!ФA빮ߴfݎ7[?` iӒE`}os n{!qƏu2\܂ts兛n߼xwJ)M. ~,ggȝ(FdqL{9:4Z".B"Ԩ&Z=~ӧz[?73)mpPԤdr{q܍k.#ϝvwzE 3F/@C|NFqpq)s b-YRa* h~i{/}ᕧ۳i묪y. g7;w(sH .dQѦ9k{& BPDz''/};gHv9InOЕ0D}2,6ypX%tk x=>d$1P қٯ]7wVVW:_Vx\L3 l̃\~Kj-VAмt 1ʹ sPcm ^+-? /f |~#_R-k?K 7]:O97־͝$EWڢ4{x$#v->_^o>94PERj>C?WXqHsͺo~[' cr%k˕LuMP"im%Z[W|7_9(1s% ߲+ٱvoG6lDdcp3˜:El&\&S&&!jG7nǟ~IL GNLq?o?Cii;*m; ] ċcKچ),Qծd@q]"TW}[ww1>EÐV%0>ӯz{gbX2B`ȅdQ\Ո+m\bwm'*urMr^Κ #~is<_"RZkD"7%"X/7C O?[B8n/W.qeq2Q.>%k<[+leCn0*Q;"cfc~vnM׮"~GZ+K3"B"tGCZnMߋ}FEL֠zGz! Q!M:P?xG.ޞ 6=$ LW}ݲ['munp GCiBDMJѫnǚ}_{⹭sԎ]G]$R y3w,lno 2|@m߽mG^1Ojy9:0}~BP_ĐA)ǓA/ؑ~0K q ";=_(})'Mnݺzz.ݼ;/~~,i"$WSE3dM ^QMm^^o//9{TG<1 0rߵd:m!pa<~cشu;럐sEgd[G|IF&:1gT썫|aG:ηԏr*LG^SˢF@-}D v^(eìx"=Pq!Yt旉ȼ0uFOsXTQXFiǞ~Y e`<7J\L9͡jf9ߕR?>T7VΉC<:J{"h\fdǿkwJ`#X-B [ Tc Sb3ŴSs7=*?#REGgY]cەH"T+ POwMdFÔ8' 1n25ꠊ{ZAboJB|\#W/2q^䧬y#}5ʓe}~t8p5(Qˆ܄BA#:ptzHc#,/%MO,&3w xCIl=#Ф޹F'Zֵ͇m)6ClĶ(^mwX2> Kܹ֞J4 %ڦ _9 . l,[c߉c7>{򮞠R~TҢ6S⛩¤O!"Zi@+Մ [W^Ayi ޷f?zz;u'a 5A@-Q2ް*dȊ_}dMV?聏QpqEwe˘h]upϦ-ѽ")vv-l9 nTrm$ pT!91e Z*`^E1݉|36Vz@RS'Ǜ;y{/nA!>m|o~ѽ[9phes1.d9$ 4 9 ŸY9ypIFdDFdFYbD8hE_|}׭Gnh}I§w~zo9ٓw&R (B&k8nŐ3j1گdu{n3/L#gї [cY|"&Q!VI#$5)\u~ bI@,*o=;w#wAOR@QO˲F#MF j`_Ȍ PNCz]R3@PV8Q ޾x׿g3/C8;'L46~?k~C.뵷,!Ηߦ i5]Ȫ!,:6Vs߄dD͸"\s{N-y 6L~p'ϟzq#_S?gm?91o|iM0?5@Tq'_x_Gni) -;P0W&-%4Wein`')y6Чa5Rm;lYoq@?2!,T?އޯ<٢F(^=b5ެy1Gy I ((B!N؅?P&nL5V z᝛~ `0kup_xPb019O)e4 3ߤ3B<@SWqCBoP:8Dx#T=䒑B &k Hqԗ"(>jؽv䗞z[zg\΋a jwIf0o;Jt S3_l+]dW?X#]Y)SWL=}?ؓ_ز|o)4Aj&=oX^[^v!`ĭS]a*x .Ѧ&3lD+7Qz&ޚ hlY=ս/<}RUߊ$w GѼ%."vV!!JxOVY7ߌ%( PE!HFa?KʙmRmj 5"&Mg~ec_3;w@ 3Pg/jׯw_;v[T' ǕS^}WY $H{ g 0 ;Rfb莈V! Lhj_⋻{ H/YgIi3nő=ީW'JL*ՠ?\^ykqDkrMd]lnIF>CݑzjzG+gܼ$m1wewww;tW=:$wU2oxuǘqAg@f-sxX HDyvv,MЮI/1:?\85(|2 C~!;"ps(&͓>CE+JH!@i[њKfҊ4؏l(g5D5iHx[O;o;MZՁ  (Q4h4_BZE$wh@U M=8E?<ڙo(r`8@a`Ͻz`OtG)J9jVKs@dI^3fM[Wlr$}!NC"dFߤB0!Ѹe+1L=Tbnq)W/;v u"(+@ﺭkP#2FRH ;uf /p9\,G1*oR`dcWZS7:DD˞]{7ő{o]ETPs?Y#zb}/*rLS^"+[ߡ1 n浑 1Mj 1&RKSzLHP]s\:^h%>/ޡ;~ s_)8pWlOSHy2F^FE (e@~Gy`;,iSB :9G ] C`1Bf}!|mF+D0B ,zl D.]I1c,¿9Y~o߷zҡ4<7\ll3r|1xl0iS<ĠGKƤ3XLeYŁ;Q)t aIν>եR #b~Huw>tU#ݚ%0u7jFZFP<&ld5D)bWegKf|-on/R=p* 爴 /\ uq߮`dP-hgrѕmM͙9ĪFyrnD ?sUB]VO`^cdsU/fggO*I~ ~oexEVlB, &{÷OdH:%S`+3(n~14x.7t`]k7o]ðyX2^&1H]^4!Pc#WUj<=ŅpTđ4"OVմ/":VVԢh+ HYS&rS!? c&XB*3q6V]2'ĊeIbr }6קgC|zjW#\bq/}NQvʔˇSa/PG_YlW6SB0c*)n;J2@Z53SIFc&A#:_Z*T~8 Ց 6@@Xӄ E?! `D$\볯tT /$#CObȈaN=YM(je z]xx@P btа n (\7ۧ-Ē~)>(k=WhJ*#~ :K !\ ?V݉i\^Y/2Iqxʉq:v7樰3qJ5еBnu `%Qƀب1}s@"+=PXzpT 01NQ&' m4.BG}Nr%lR>^$ }:iijl.5<_/|eσT2J2-Ψc<:dQS?(t$Op+8 JBTFcXS$Ix0\ٶxlM<-KFy@WݨHF̲3Y0IyCi0 Ljٙjh!̎09$&OwHI.1Njx`]U)0vp;UzY(j`q/t2E' W[eMY {f5 KtcR w5 t. 41:o /:KLʂ t5R?g=CA_[pCK"(`@5q"0#J:`N FMU@MD x@)4:/ÛB#(ϰM!~NHNL!iq,)$#ٸ&Km$4,|~`Ɵzd0}sL3w"ߤ@h; JCЈOK(zu36m~];lTnQD +`('铥7 4TE\9y@ه6l޳~JCNkd &ܮ8)u8$ B^`貱BOH4Ce~͞-۟3;wټm|1: |bDx.wJYfb*2k++dQi1΁(ת~Ǻo?c1QW4C m9̣p-菢*0o-/w&N͠`66|=j뺺83MO=6OG'^ 3i>COkD4)K{RQar?;$V|C1C$I_ e݆3 DcCv>=[wl[;BO@rh}jdlSb}bG/;{ELcZt!Aވ gY"v:/ JaW%4ǸxKˆ@. `wĄ׮:wS';uڕ[w̘YB,#.^Ojq',yi[%/`ѮZQ. E%ɨI|!b_iCB+)cFǬ{4奋ׯ;<{^"Q){3[5A4.G!m3e`"X(eJ0`FQr) Ŕ<:^ArΠdF+]u&Wz;[7]<&9NX[E$I_[X8q';}snܸ t9%يayAi!1c]w3 w\_E4gQzSGoRީ>2at\dD;H@6YJ][{ڕCgO?\r] pfSN"xOqjĜ¸# q -[]rf$N 8qW!Ui{a>2J:1hMpL3&¡8Tw:sșS^xD[#13cW=D~i@p[ NRGB=q *C#άa[{RI}?hܼiLL=>cADFH[bdȐKK<=cF̛LGݹȐJJ<ACEHJƊFG~89?XEF}7~89:ABCDDEFGDCDE{5}7~89:;;<=>?@ABCCz3{{6}7~89:;;<=>?@ABA|z3{{5}7~89:;<<=>?@拞?|( @ ARCDEFFGGHHIIJJJKKLLMMNNNMKT. @CDDEEFFGGHHIIJJJKKLLMMNNOOME ABCCDDEEFFGGHHIIJJJKKLLMMNNOOM?PABCCCDDEEFFGGHHIIJJJKKLLMMNNOOMR?ABBCCDDDEEFFGGHHIIJJJKKLLMMNNON@닞AABBDFFEEEEFFGGHHIIJJJKKLLMMNNN퉜?@AAB˗ʕhQLIHHHIIJJKKLLMMMLLLMMNM?@@AAܸ֯ǎÅąņƆƆƇLJLJLjȈɈɈɈxWPLLMMN??@@Aɖ_NLLMM>??@@‰ڸ_ʘצRLLLM>>??@ٷABDEFGHJKLMNOQRSяTKKLL=>>??ٷ@BCDEFHI_vvwxxRRΈTKKKL==>>?ط?JmCDEGHҡVQ͇TJJKK<==>>ض?SbEFGÃSP̆SJJJK<<==>׶>JزXFGIJKLMNPˆSIJJJ<<<==׶=>CUFHIJKLMOʅRIIJJ;;<<=ֵ<=>G˜YFGHIJKMNɅRHIIJ;;;<<ִ;?ѦHEFGHIJLMȄQHHII:;;;<Գ:OصWACDEFGHJKLȃQGHHI::;;;Գ9M`>?@BCDEFGIJKǃPGGHH9::;;Ӳ8:;<=>@ABCDEGHIJƂOFGGH99::;;;<=>?ABCDEFHIJKΗMFFGG~899::NŊHEFFG~8~899::nϟIEEEFF}7~8~899::=FHHIIJJKKKLLMMNNJDCDDEEF|6}7~8~899::;;;<<==>>??@@AABBCCCDDEE{6|7}7~8~899::;;;<<==>>??@@AABBCCCDDD{4|6|7}7~8~899::;;;<<==>>??@@AABBCCCDBx3Jz5|6|7}7~8~899::;;;<<==>>??@@AABBCCC?Ly4{6|6|7}7~8~899::;;;<<==>>??@@AABBBAf y4z5|6|7}7~8~899::;;;<<==>>??@@AAAA3 z3Kz4{6|6}7~8~899::;;<<<==>>????ꋝ??L(0` 8 <.B{C‘DEFFFFGGGHHHIIIJJJJKKKLLLMMMNNNNMŸKH1L :ABᐣCDEEEFFFFGGGHHHIIIJJJKKKLLLMMMMNNNONN梶MG 9AȏBCDDDEEEFFFGGGHHHIIIJJJJKKKLLLMMMMNNNOONM̠H#9AŽBCCCDDDEEEEFFFGGGHHHIIIJJJJKKKLLLMMMNNNOOOMΟG *@BBCCCCDDDEEEFFFFGGGHHHIIIJJJKKKLLLMMMNNNOOONNL 7 A㍟ABBCCCCDDDEEEFFFGGGHHHIIIJJJJKKKLLLMMMNNNOOOO堶M.>j@ABBBCCCDDDDEEEFFFFGGGHHHIIIJJJJKKKLLLMMMNNNONLx?AAABBBCCDDDDEEEEFFFFGGGHHHIIIJJJKKKLLLMMMNNNNOM>鋝@AAABBCEGHGEEEEEEFFFGGGHHHIIIJJJJKKKLLLMMMNNNNM쉜>@@AAABXpaVOKJHFFFFGGGHHHHIIIJJJKKKKLLLLLMMMNNM@@@@AAA^۷̚y]QONNOOOOPPPQQQRRRSSSSRQOMLLMMMMNN??@@@AAO֭֬֬֬׬ججححح٭٭٭٭٭٭ڭڭڭ٬ҚrXRNLLMMMMN???@@@AGՠ^RLLLLMMM????@@@B۹ݾֱњWNLLLMMM>>???@@AشËGQfǐ˘̘͙͙ΚϚЛЛќҜӝӝԝԝ՞՟֟ןؠ١cPLLLLMM>>>???@AشŠABBDDEFGGHIJKKLMNNOPQRRSfsQKKKLLL>>>>???AشŠAABCDDFFGHIIJKLLMNOPPQRSayQKKKLLL=>>>>??@ش@AACCDEFFGHIV̑ϖϖϖЖїҗҖTQR`yQKKKKLL===>>>?@ش?@HYFCDEEGGHhYQQ`yQJJJKKK===>>>>@ش?@^ʘZDDEFGGhYPQ_yQJJJKKK<===>>>?״>?^ɔLEFFGUʐ͕͕̔ΕϖЗЕRPP^xPJJJJKK<<<===>?״>>YwPFFGHIIJKLMMNOP^xPIIJJJJ<<<===>?״=>Apص޽qHGGHIJJKLMNNO]xPIIIJJJ<<<<===?׵==>?FdۼٳMFGHIIJKLLMNO]wOIIIJJJ;;;<<<=>׵<==>?D_ڶLFFGHHIJKKLMN\wOHHIIIJ;;;<<<=>׵<<=?_˝ҦJEFFGHHJJKLMM\wOHHHIII;;;;<<<>׵;??@ABCCDEFFGHIJJKYvMGGGHHH99:::;;<ֵ~89;<;<=>>@@ABCCDEEFGHIJJYuLFFGGGH999:::;<ֵ~899:;<==>?@@ABCDDEFGGHIJYtLFFFGGG999:::;;Υָ?;<<>>?@AABCCEEFGHHIJKLLtdJFFFGGG~88999:::jRGEFFFFG~8~88999::>ɞnIEEEEFFF~8~8~8999:::BڵdHDDEEEFFF}7}7~8~88999:::BMNOOPPPQQQRRRRRRSSSTTTUURGECDDDEEEFF}7}7}7~8~88999:::;;<<<===>>>????@@@AAABBBCCCCCDDDEEEF|5}7}7~8~8~8999:::;;;;<<<===>>>????@@@AAABBBCCCCDDDEEEz6|7|7}7}7~8~88999:::;;;;<<<===>>>???@@@AAABBBCCCCDDDECy5|6|7}7}7}7~8~88999:::;;;<<<===>>>>???@@@AAABBBCCCCDDDBz0^z5|6|7}7}7~8~8~8999:::;;;;<<<===>>>>???@@@AAABBBCCCCDC@nz/z4{5|6|7|7}7}7~8~88999:::;;;;<<<===>>>???@@@AAABBBCCCCCܒ?(ff3z3y4{6|6|7}7}7}7~8~88999:::;;;<<<===>>>>???@@@AAABBBCCBA?y0y3{6{6|6|7}7}7~8~8~8999:::;;;;<<<===>>>>???@@@AAABBBBAÅ7u'y4z4{5|6|7|7}7}7~8~88999:::;;;;<<<===>>>???@@@AAAAA@=n,x3z4z5|6|7}7}7}7~8~88999:::;;;<<<===>>>>???@@@A@Aߍ>4f3v-x1]z5{5{5}7}7~8~8~8999:::;;;<<<<===>>>???@>?抜?>b43ntfy-2.11.0/web/public/static/images/mask-icon.svg000066400000000000000000000021561462047176100217600ustar00rootroot00000000000000 ntfy-2.11.0/web/public/static/images/ntfy.png000066400000000000000000000070531462047176100210450ustar00rootroot00000000000000PNG  IHDReV֒X pHYs  .tEXtSoftwarewww.inkscape.org< IDATx]mpT~n&!D.AI"Ih ~@mDji[c8ZhkG3tvuhSv*کh-VCD"DHBB0a_眻 $g&{}{sݻ@EQĸgv 'x?^d"* ) D">ӓxD}}}K___@ ɌYR>%De_p\q q~5H5E@G />0/M4`$S3n)}b®8tP^^^T(XY<*LX 3e>`tV3MĶZě'De1crNS?$‰rqK/ PL Ā2 h"!xDT:}`3Rr„`B"Dy:`͋#yY"yuEGԮFH&'6xe*K2zA2g1̭\02؋#zL6 ~zLRn#9{, 6:bV@.RL?hIP\b`p3~/82h~iWR{:^'纯-q#2mBE#n~qhu `)Vnی߼#C+_]+pkK:B\Hµ%yږ x#xxprtVW5U .0a@ZQ^GBo#ʀ!01|y!oi {Y8ʢK.T$ 1DqܷY<"a{5ř05 ԸZT:"T h/^~էhߡpo_JYGp.d4>V`/ƫd狫#Ծ-™0;:=.`nihƊES5bY4`GGcR  7ڟoBf+Vq2 ud:<|\3J]Lj}Eϸゎh;cRH ?XԆ m5 cK^v$qV#ĆOp|Yӑո5]m;c88v{p6b$0# ni)J[u-޼d=9>Nu>SGa8g_' Y06!O~gwؙA)`uO1uĽKz">:} w"BtPG\ŹЛNr=|=u!0¬tT03 k^=|D\(%} EnیU/5$ Vw<#/#6 B(v]{qdΫf ^Ap<2J^K:\"ǥ#:dcy6|gB甃ͩ# e r~laj* ?vZ4Ha#xC{qx$43d녷_#Ht:|ȥ#>o^ނB/X#(S۟ u |l]JK#ǽfGG/6tp ?y)B_Bh,\R+z3?殎ж  ' do8ɕ?LzzD:B/`E>-۠.}i(!6uD0>dZ<8 OO=R]1 M(zP'"]h$ۦZp~%[_GR3?Bj3MȴJ=[c6EL;V`T'Ӕ}1TU t$up]eΟ??u|%7h2 >)Be4 I )ݺUhU3 %/I8,T@ :2-Wy_k~z;!gus_j|%X<*6Sn"?3M nkJ0&Hʹ*6 gעoW|%DE yԻhkBkm#f\ X,6` &Ǐ=gB.=3Dtڵ0~!y)-_ [͘+z1k>;w\j$3$o2&l^NxM6u,[mdCSMz 넇a񡡡=vdD+^EJԺwEaD"D"ݯ,_ԏ E'DynfcڛDp8 Xb { Aqn>NAO^ -[t vrSlap8;<<穧OCNxݭܖ'CF`BJ rEagCCC_z?^S $Ֆx_ҒԴDٻaxddHǺUl?wBh 8%-dg;Ξ=Kgj603 j*O glln֬Yeݺuȿ'g!Ș[X ) ɅeL3̈h%Kո,UU&?H~1Qɠkf4S~$LblCw˿/Ju,!GH{!␶K E\BɾEjH$D"H$D"H$D"H$D"H$D"H$D"H$D"H$R*\8E@9H28'la}jr# qKpڒHJ:ՌaVfan]7Z/qx1v& B'87x ĸAZx2,$R:cl q,0(nI$c^w8-!ON^Hm01v>=#4uODJ~Rz jqDFqD =3yP@4D s܍Rr/e'uotp% ⶜D2:W2v4Gq*|%nI$ꁶɜN GqV)nI$rLbm#8@OL1A@ 㶒D 8~Mo"Nբ>u&w/nsQ` ^Τ:*C"/0i[d=˛޼Cx}Fl>r`4W1N[,ͽFism:%u_8~1I{ Ԉ7'nw g8~1ea13f< aPs<~ ;&P MaG_u=4t{6if:YkZ-:yjO"?DŽCaH `aҌo,_K=lIm2oOMM~7Zf#~1N[bu:yaYwy͘> 4w<ĚyݶOHF}{޲/^ & Vݹf/,H~s_@0E`ɟg+ #tPCl~)@op`(ù_|R[s(Sݲ@2{v~RV^;vVae:7?f?]Ow1q?oQ~s`g$u#W[@`_nWҊAX)`/~e !|aRe+h7<Dp&8<ƌsw`gzOy?Z q?+ K ґX|-s1`Y~ww/a*r[^|!CO:=3G\;7mQ{1y ~ !;g p ⁿ*Pz|^p?+j~yxl vo%xlxeccܗ_&~-Y,Ӡa_3Գ߻6tـxzc !7&/Ӎ5-te>a0t$܋EMw4>3E RA?Cpru.ebJlzoj$W%2&=`ټp薛O/5:7[ pၠSia=3FM:Eܯm&?`0o蘒K{܂sKFwmY"NOȨ~[CGe}㉛Cy5F\g}HH/] }}!Ҕa#]gƠ%I>~'y;qj3 $".׶14fuީڅ%[֣_櫎UL{B~3F\̹l^`L I+aLC@9=QQ~7< *C"0uxr;XE0K^oW܈>E^O~qq݇YIR{'i T>'VGw crr0|~>,g(+-}_~~ƻ37VǏ؋By7~*ܽ˯L1 Zɟeoq4~?|G Ξ5@x|ƍXtǃR+ JEoX 3_}~l8 fcYZۆJ%ymI/*4~I,K7xb_%q9?­)WoaFc-m*nge/1ٝ}[[Z[=/⥭#?FuMWVd_UB/m/_/wnFNKT/ 2~Q<Ԁ7/odq978X|2\m!ɺxjJ<뗰^[o}:_teR{-rsss5ocoCCnp OUaDho7v|q4{e`f yܦ5Pt٥+^o,>N`tܟN!%?a:nJɋ,?u-{g߿'M;'"?7x4T@/Aegņp-.WN×Mk<&"Lq L{y㧢G.Kb+^m$Dr?3c#yys<8qF+Q.j3ԹfO~DQ)1\[VG\a1]iMd[_Ϥ~`cfaL߁V#*ҿKl-Ul˚/#@cU`]~ePYp?0O< y5tt\5n߈Ϗ&):`-XA8pqo?q:f>O5M X{+~ͭ+Kbo숸QO<9 hliƊ;ڮͨod+q_[o4̽bX]tZxy&iS+u"KBT2w&ci$J[[ӚE=/Kpo, N6: +IW_Q7{N}?Gq(Ӊ͡O%} #zǏn{fԜ '\R*6;~,_ 5klǟb\t:!~ ~) (;ӠKr\jliƛ{㵝Qr:U Ix+[Z[񻪝xeǟPX1[2 ٪~㥮?=EM!+ո-K>y/l]]'%KGfҳAÚM#5gʍX{c|':r#{uAXĸ?U_Wvl;Ufv:[CfQ*Vor5al74cŞJ,fF_K*n;;$bȤ _}k(< dό9ڊwp<׌1,o"%2>,޺jw// scCmjDGuw Jܯ?3d`5gr#v 3'AREդ15 JQw4h(Ol4~^Q#ԤgS\~׈ڽw~}siuB!O9~H[~M tn-|$r~Qgj~d sR"~Uq) ~HPY{I0/?>'~[p26o'.VFtLs_L~F*o!8b'?ÏRݲx&8?M]~QOn~Om_&eN14e?kpEͷ7}\IIۘf C1DAP$G@Ӡ]hp>&׳I&k!iPI/)uoN=쬒>+/N/uZ6UJ_`9] /"~N<&k|puYA 9ߔ:(Q¼|e4t@Mܯ᫜2 tj #Z0G n)TgM}lX}U@/'\ci{q~Xԓ _fN8$xS8Nv\]7o }K a6=4 >NT^ 1t {abF`_?;3JGt$FG$kR{w;ba1l$d4/R4[/߫>݋0tf!^ɫŌ&C{aF{O\\iR֪;>x ?/'bQ(A=K)cDo4|IAwL+p2囫3ɇ[F1;bhT"'kDJQXkp7z `-}kƍSX$[[mq(I)7<[cⶔD2x1ƽ@"pWǜ?O8No}㶘D2g=}lDY51LH&?Xtz1e !)]M2>w@Ju>ڦ6bՆ]a:kIV̞p@*b8N7r\SVX`clW_#@R/l@[¯1QRG؆_k(Rf+8 #d(fNX_;wH-#@=@OJQ.*ѕdWHq9zW1<C/Ol*0TyP؈V5$R) qJ"PG9~%c&nHH~D"H$D"HQ^%tEXtdate:create2023-05-24T19:22:35+00:000n%tEXtdate:modify2023-05-24T19:22:35+00:00tEXtSoftwarewww.inkscape.org<WzTXtRaw profile type iptcx qV((OIR# .c #K D4d#T ˀHJ.tB5IENDB`ntfy-2.11.0/web/public/static/images/pwa-512x512.png000066400000000000000000000464041462047176100216040ustar00rootroot00000000000000PNG  IHDRxgAMA a cHRMz&u0`:pQ<bKGD pHYs''mtIME$#=KkIDATxyU]D&H@<FęQq@m{־{nm}|~SmL" $̙ 3aHB !pNN?N}ٻ֪]Uk}>ϣZowթ]S3DEK:T ISo1no/f{GҪ])UIlƘe'DQ4F fI:^aےH2ƼYvRy N;<@&^t?H1ݲʊ0RǶwD9@gI7IV  c$}Q@qtKt1fS ś >'+-;%]!ƘN&O(*o%}F|kIdZQ @EJ$}ZҠC$6I71De%Q @E%K+%yc+et>ѷ"HzBgEx(ZEms+QuH{IV'(9rcVJMxUyƘYe>aGQtGD0*inEݎ*1b|ٹH( }] `M([ePAnIc"v^ y <"Lcy︔ @EC$(2OI:"ϝ}7J:}Ԕ%gy3u,Ct1*-,c.M$]ҁU6ƼjX="?@t (dEْ$mP =%=!ibG $hy4m@+.?@;t'" } Ifƹ)w?&@lt1夆y|K2&iE8I/HU@'ck E ?Wx[y }$=/)P8gcnk1j|;nc(KzE=7@x1f|UZmp^&=:hJ$ cs}7dY(UHb NDQtSIƘ/:le+C}_tUfra@EIYhͶnanޤۺq[rJеx֤iT2&Զs{>qa[ӷ;4x@#ḭᚱX}՘9 6󹆡E({yS-xP,_6oJqޛ}z?>j.1=rѶ['pP{7H4iTxot;4~O:$E݇x2D}LEVKQ(W_Znvo_b-σt,當ֵӿۤU6y/.wOwh[_m`}tƌC|Tcj:8(:^egQ?*R䋤t6{oh\@o ?auZoi`Ky۽_<㿎k}5|W+ƘwJٙŦέ.).Kqp?%frNI8?KL>@*Yo5>l盵b:N*N+;<թo|x^wUlCO^wY԰r'9% *zSTtJ %&?iLǠ?.kG k٬dپr< ]}0U".Z;)xݾB˗/?y8D+38 "o$?5??U ?>oSԹ򉇴n 9W}% eg?=kx/xxLjSf[L7tnկ]zxx T@'zCL+=}mByF~gVߺw?_xS-:=޿SN?Kg1Fj_VIڈϞk[K+?޿eL޿'% ڧm޿q/fJ}sQE_+: |L?K_ޯO ?ngxW=$ o5p}[l縪o{`, ?{.}C마_"} s xC; *;ܪPYA~?޿z5SY%K/ W+?iC߃y1M1ax,ogn?CPw2?~C߃/py o)G?bqS&&xO @ {8?_kxxmskڬ_keCx x$PMfm޿@}~x҆%_&/S-zh>iI*f/Nqx?xN 1xܖS6WXsx#{|8KYO'޿F3(;Hx۸ wo>LW UK.x?nic_hwEwQ3_?sx>y CDR%]7yowͭ^ߗ/H+8́:49r&ƆV_@V(|?ݴeE3yg{s^aM،O& @[r?x]ߥۄd̅`w`6pFxܩwS-݆$4޿߃/ |nxT{EO:]Loô1?RJ1cbicZ$#E\xaLRQ'o oxC'mXvylO?>.I+Jw%|xAPTʆ @Q{8tЬſx[xeoa@Pi/IkO%âm=@o6wvK/VLx3z^i7ۈN/C{O>uFJڒ>SZxXŖ2O_x!C"O_a tP/6rh ]x᢯£NԠkO}:mr{m=t<}o/x>s̢$ⴗxYow]Pb/&;]SS_B'xB/Rpx{kEs.оcgK}x1.?0W;~z2]?&fM)xы뤡sj?-{=Xk=[XUhOzo޿s@?-C;£f TIglcbY5/R vz{2L_^]{_C"߬#9"]$_QY|O1J:C.ѓ'o| ,xښ" ?/2x4n/ ó&w;oc?yx3xt;e|s>FCxحxL ߥ ߺ޿3q7N~nyj?OlvH xx½OA#<Ac..8jl2oRӲkXwxrNQCK'Wל%}ȑ1P9oOm+x7MyS?+?8u}޿1[tU[xfI wf=?? lG3yo L{0xQ_̑o$#=3IKܧw7oOccg'~x~ sgЀ:#8Av܈Oj@Of䐡YյIg| H?+knH[os%=/N8qGꛧ+?ygA wWCq۩7m=ysbH*mwSYs[ ^9|=y.%mtc.-WNx@pbIqNvn_򸮜?W7ml9@xH,xW@x*1`>H]{ޗt1'kȠ4Q|?xG]ߥ$K,?ҿl߄f_Au1'O~Qg7Y?ힼm ˾7@{re#SB?0G-x MO,?Swa9 SoxH[o3޿x@R9v9[ )N=Bj=?Yy߾13@-+x-=og_7ex ]~J&xPno$P e;1O^K;5x1xg= bP?v 3O?z3];_a 7Ngus8.x1xVWL_g=Fs\i W)2k~~/&Y{j-onN/f{N׾c5ok$#Obmқ?uXpA:~rE{o -Zmr[a/OȨ;tKj+Cg=Ycwp ;1p>wK=[[IN_zxj G?m\Wwn}f.2]=Zusa1`>rQ}^v?iexCOj.LZ} mvCຟLM1oO{a8N~էWV[-c^KXcѩ>}}5z0?aژ  _q0yok^o=Ä c@yKÎm.4K;g@x>/-x}7?[ ɈCOU~Fgp킃?O[ 0KnBL>㠞*Uv;L{B -xOH:ut έcgv ji=WL?ޯ-Rpݖͺjuc0ZZw?ߪaC@Nߗ{=y.^]|c鞗aWs|*+x+[}k ?B?yxt1w[cҞxݗnzMmoo-`(|nx _T |U_ޟnaBjJ,o! 1{_^_}^gp>sԉ ?>_3Th ޿@Gg-bv>L+tZeCB!a@Pi/Ik/›t-]tэstckKWMG|nx'{\~KKYj-Xe̟~unyvskVy߃ف+=mL? w_][<ÄҀ7l:%U95~?6O̊k/j=KB ok?:4! U+wwZ_:=|w=9zv6_w $Q=d<>)QOxC_:]֋V|$jJ!KYn'{ y?f?3޿ݭ[ORS)́{mܪxD ]#ܶ~@Uo،ϞQ޿0؄yM Y nޤ9 3R=Ä_g\o㲼 o_yn]۫u+Ϲv^[_+O5޿1&fYoƨW}G߿V]*xR, k[w+cN SWi ~ 9Իy .Rjô=GipYMw@x|s-OL2428bΟyr{5Ho>?'?\]˱VYF#g>ނ'5單C »_wg@ȡCua#!}'oueo^yt!GÏ׈Cl*{멫v-4Ή*U%⽿&;%|w; GN݆;tVWj]ئ{Mi܃/r]c\13G#F]=7ۈOjoOc:yz_p_)>sǜiu?m'4@HZD׻KLx4UGL[_82n/ۄ`k,P; cNq9OO;t-]l?e'z+??Uc|nazF_7|.>rV?cV x @ڋ޿?j0]0x}#5y`.xv@ mC;܃3O), >ro=t 3?L9DC|4$bMe  ޿-S/{&!IOOD@ ѾcvO޿t_h ޿؄1h)AjMCxBYA7C;Ǟ:mx!xxVx )>=z._L,aMC邙'6ֆuza7 rs^`U{RtsoЎA!G'Yunxjn^X[m޿EH-ϭ`A b@CLǀ:ct'ަ[RCZuKx{oP+S+ʶ!>‰Hs_{A?]t_g?Rh?, i9 ŝKOxy^z_iRE?ld]z):|)W+寷ho<rӟGtQ<ħa{QS"5_Dl5fgccN֩മ6n/Zpgxw+?~p~\%cr(zqG#gCC| fKW~1;sxxz)@P$@?j0}jqh)(4w bZ&xlnAʏAC|G<ħp.{M/WB'q;E?ߗy<; vbzl<;監{a/_ ]w<ǝxOذNW?~Y7w,oO{x~%.?dzISޣ}njw?N[6Ƨ.R]{xF}V % @KrSuDS4[tźйE-?P`Kx5ZSx7Q>Dgߜ""%yzgӆf)b'xC+F ?i/ -e wξ3IxVQ^z,ſ@_ nx!>b;5g<=&[]?׼KMZRO&L.Ѐ^_ZW.~@/}ǧOjEcY_Y6klүZ]VYK{qK1s/x=&fcsW~1]ģص^=|ߴY8_ eВ2nvaܫۢnӺjƞS^ &Sw K˖'+ᄈBvQza#??._E65g<=V; +xѽONé0Nպj ;x'xMPCfMGt˒ǵ-v?;> jϞ[-_X0HQ$츳'Ѧ 5+xw݃ &OWwn{ f&zY7yT-ӷ,sQh^Y?\Wy[7=]Ɖu)޿,4O]ߥ+i¹z7s:;?oհ!o$˧γt*u߫K+z @#xx{zu O;Y)v6ϞZz DM]S tÓ󵥻k,1xVQxA`xݭ;_xJW-~PnN~\޿i޿XHzOfD~p\a(?knxQ+p Oƭ)9 wwr?nic\_-wN-htm+FypkVŻ{(%SHd<[u޿TVn\kX?NWkuu3e[W놕Z't3] *D`sϩkսo"`뢟޿ 'ݧDW6fGS{ OtC#-_?bOxxXhJ]ootyZnln+SN~{Ix9%zO$.[9 U;/]H@xXξW}G?]8OR18 S4xtA=H~!A4Dܰ)7xvnf|E~|x Ayަ-y\W/~Pni1&|S?ԄhBeA{.(t׋Oju1I'O,U._)OQx*~ -eKVfORߦTHPQ޿ &>yϽBsբe.:Uז0?7~gRQ,:Pcoc?y5;E +Xe~|Bun:??<_W›3Kyv{QmqgIr"B",MGQ^}^/&lK,Q| -OW/^4ټo'XPMˣ>E;:6\\/ǖ2"jmN7O|*/ALVV_~Z~&&Z];"1a/t @ ,[ٟ#.R]T ꮟx1hJ|w |U?~^ )"p?>ttĊ72$ P?@VY_>9_>ob:bב &oHo޿omkTߝ]yߐRw@o @@TU/._ISe@?eW);"1KJߓC*,{-"_Yº 2n+xy3/@]PVRQiOb ߻ {SqmB=B$^ø BNk+x\ZoY"wӫ޿61h}ǿO'@HxIq!zϯ;x* @s lO{.`E!K-b`Zx^xvѡ'\ ! m -~g1 ?sx?ӄ{o h/x|rB|Z}wse:S칝4m5z릦}A_4?> ?N_8[,7z[/g!µO 9WPnU+oOzaQ߶Zm :z~ek/0&=* 8b'#abrt3ۇl5E* T O֚۹Ш-?}LdYCD݋ @~Co' @?}?ligߗy@>xx|stf8x*=hkeC*R=Y??uB)b 2z}bs$޿bKTR\ ?,q)w$Re\mfz7>)nΧgS>cx}-RWi7ۈO)?{nx BVg޿bKg_>Ɣ_v;Lg3N}75/'x+?Ed/ Oy|=[n!x? `xM_?g~ZhHŠιſRj){[&sl\iLߺ3`߼NkxZ=$nx]=(Rp >3q~vrx{;  ̄|TQkOoo~Ŋ?ߢ 02xĆxR{ [u#7;?[nH;%WK;b[jPl[sk4֟:"g3vx }޿:Mla?FR7tx[r)A(bϖ /\\=ߺAͼc4iQ2XMj{C ޿1G"xzKq-b9FCtHtJZ @v)Rȱ{Mc$unވo'ߥJ_1:mimɩ VJ< ?FNWv{T਱{ץ'xj{Bx|sg̭o$}jaW@&&Ϛkaex?? >]w MÎ+KR(Ols#?A{m?M)3d.ȶU0K$ @+S?FNsHZDg_'? =Q,YUx{E]c7F_9x+1oJREPm'}O \!xCny{O'Luq%Y v߯y 0 +~xaCg?}p&x΍jX/wg1ߨ!'hFrJ?1 Hsmҿ65h>9p>i8+&IG ȵR޿MayO1qx| ޿? 3'0?oƟ1[v#woxEnWM5\<|cNrk?X5d+m̎>V&,2~RLխ6O:|$͚2C'ﳟmDG1[m b~a:~4͚2CMaz˛.k5zi Sk:d^2?Ww1L=Wv✽5s 0e& UPtUR# G!CuĽ5{=eR1f[R# eș}?gfNr14 SM(*iR٣r%{}_h5k {&ܽ!$F76N0]Rm?nغuOF &Oqje `71omvP[ԬO1ZNGc'M@]3e̕W Fyǖ@Vޒtm蔩h3t=fK1lS}>I:Q@/oK`j{!{+QIT'x3fcָ dQ Ige)R `4ƼuGi&Glt1fa;cl c̟!jUnj14BZI1)~K:3/ߗDQ4ZһexJƘ >%Td'-!?iHY)Ƙ;!+{I3Y ~Y+KY_Γ+sc@˯FQ4XFIJ3^cn+;80U +%1*c:N @4z;1kN/hz0 $SOf $w`QX'azނlR߃70OEUc6@hYUvBE JIh^);!v`kk$*;tc@UعEўwowcV@UiTu[Kҽ)wc@]`L'}=}Ƙe'*<|檧nyb$)yXɶ~tIzL Ƙβ :;Vf(4Ƭ-{Л,$SOFكx\&$=]O[P FЊMWO_CƘwtKZ]1fsى@~tKz 1N F_j%tEXtdate:create2023-05-24T19:22:36+00:00?*%tEXtdate:modify2023-05-24T19:22:36+00:00bOtEXtSoftwarewww.inkscape.org<WzTXtRaw profile type iptcx qV((OIR# .c #K D4d#T ˀHJ.tB5IENDB`ntfy-2.11.0/web/public/static/langs/000077500000000000000000000000001462047176100172115ustar00rootroot00000000000000ntfy-2.11.0/web/public/static/langs/ar.json000066400000000000000000000761351462047176100205220ustar00rootroot00000000000000{ "action_bar_logo_alt": "شعار ntfy", "action_bar_settings": "اﻹعدادات", "action_bar_clear_notifications": "محو كافة الإشعارات", "action_bar_unsubscribe": "إلغاء الاشتراك", "message_bar_show_dialog": "إظهار مربع حوار النشر", "message_bar_publish": "نشر الرسالة", "nav_topics_title": "المواضيع التي تم الاشتراك فيها", "nav_button_all_notifications": "كافة الإشعارات", "nav_button_settings": "اﻹعدادات", "nav_button_documentation": "الدليل", "nav_button_publish_message": "نشر الإشعار", "nav_button_subscribe": "اشترك في الموضوع", "nav_button_connecting": "جارٍ الاتصال", "alert_notification_permission_required_title": "تم تعطيل الإشعارات", "alert_notification_permission_required_description": "امنح متصفحك الإذن لعرض إشعارات سطح المكتب.", "notifications_list": "قائمة الإشعارات", "notifications_list_item": "إشعار", "notifications_mark_read": "وضع علامة كمقروء", "notifications_tags": "الوسوم", "notifications_priority_x": "الأولوية {{priority}}", "notifications_new_indicator": "إشعار جديد", "notifications_attachment_image": "صورة مرفقة", "notifications_attachment_copy_url_button": "نسخ عنوان URL", "notifications_attachment_open_title": "انتقل إلى {{url}}", "notifications_attachment_link_expires": "تنتهي صلاحية الرابط {{date}}", "notifications_attachment_link_expired": "انتهت صلاحية رابط التنزيل", "notifications_attachment_file_image": "ملف الصورة", "notifications_attachment_file_video": "ملف فيديو", "notifications_attachment_file_audio": "ملف صوتي", "notifications_attachment_file_app": "ملف تطبيق Android", "notifications_attachment_file_document": "وثيقة أخرى", "notifications_click_copy_url_button": "نسخ الرابط", "notifications_click_open_button": "فتح الرابط", "notifications_actions_open_url_title": "انتقل إلى {{url}}", "notifications_actions_not_supported": "هذا الإجراء غير مدعوم في تطبيق الويب", "action_bar_send_test_notification": "إرسال إشعار للاختبار", "action_bar_show_menu": "عرض القائمة", "message_bar_type_message": "اكتب رسالة هنا", "alert_not_supported_title": "الإشعارات غير مدعومة", "alert_not_supported_description": "الإشعارات غير مدعومة في متصفحك.", "message_bar_error_publishing": "خطأ خلال نشر الإشعار", "notifications_delete": "حذف", "notifications_copied_to_clipboard": "تم نسخه إلى الحافظة", "action_bar_toggle_mute": "كتم / إلغاء كتم الإشعارات", "action_bar_toggle_action_menu": "فتح/إغلاق قائمة الإجراءات", "alert_notification_permission_required_button": "امنح الآن", "notifications_attachment_open_button": "فتح المرفق", "notifications_attachment_copy_url_title": "نسخ عنوان URL للمرفق إلى الحافظة", "notifications_click_copy_url_title": "انسخ رابط URL إلى الحافظة", "notifications_none_for_topic_title": "لم تتلق بعد أية إشعارات حول هذا الموضوع.", "notifications_none_for_any_title": "لم تتلق أية إشعارات.", "notifications_no_subscriptions_title": "يبدو أنك لا تملك أي اشتراكات بعد.", "notifications_example": "مثال", "notifications_loading": "تحميل الإشعارات…", "publish_dialog_title_topic": "أنشُر إلى {{topic}}", "publish_dialog_title_no_topic": "انشُر الإشعار", "publish_dialog_emoji_picker_show": "اختر رمزًا تعبيريًا", "publish_dialog_priority_min": "أولوية دنيا", "publish_dialog_priority_low": "أولوية منخفضة", "publish_dialog_priority_default": "الأولوية الافتراضية", "publish_dialog_priority_high": "أولوية عالية", "publish_dialog_base_url_label": "الرابط التشعبي للخدمة", "publish_dialog_priority_max": "أولوية قصوى", "publish_dialog_topic_placeholder": "اسم الموضوع، على سبيل المثال phil_alerts", "publish_dialog_title_label": "العنوان", "publish_dialog_title_placeholder": "عنوان الإشعار، على سبيل المثال تنبيه مساحة القرص", "publish_dialog_message_label": "الرسالة", "publish_dialog_message_placeholder": "اكتب رسالة هنا", "publish_dialog_tags_label": "الوسوم", "publish_dialog_priority_label": "الأولوية", "publish_dialog_click_placeholder": "العنوان التشعبي URL الذي يتم فتحه عند النقر فوق الإشعار", "publish_dialog_email_label": "البريد الإلكتروني", "publish_dialog_filename_label": "اسم الملف", "publish_dialog_attach_label": "الرابط التشعبي URL للمرفق", "publish_dialog_filename_placeholder": "اسم ملف المرفق", "publish_dialog_delay_label": "تأخير", "publish_dialog_delay_reset": "إزالة تأخر التسليم", "publish_dialog_chip_click_label": "انقر على عنوان URL", "publish_dialog_chip_email_label": "إعادة التوجيه إلى البريد الإلكتروني", "publish_dialog_chip_attach_file_label": "إرفاق ملف محلي", "publish_dialog_chip_topic_label": "تغيير الموضوع", "publish_dialog_button_cancel_sending": "إلغاء الإرسال", "publish_dialog_button_send": "أرسل", "publish_dialog_checkbox_publish_another": "نشر آخر", "publish_dialog_attached_file_title": "الملف المرفق:", "publish_dialog_attached_file_filename_placeholder": "اسم الملف المرفق", "publish_dialog_attached_file_remove": "إزالة الملف المرفق", "publish_dialog_drop_file_here": "قم بإسقاط ملف هنا", "emoji_picker_search_placeholder": "البحث عن رمز تعبيري", "emoji_picker_search_clear": "مسح البحث", "subscribe_dialog_subscribe_title": "الإشتراك في الموضوع", "subscribe_dialog_subscribe_use_another_label": "استخدام خادم آخر", "subscribe_dialog_subscribe_base_url_label": "الرابط التشعبي URL للخدمة", "subscribe_dialog_subscribe_button_subscribe": "اشترِك", "subscribe_dialog_login_title": "تسجيل الدخول مطلوب", "subscribe_dialog_login_username_label": "اسم المستخدم، على سبيل المثال phil", "subscribe_dialog_login_password_label": "كلمة المرور", "subscribe_dialog_login_button_login": "الولوج", "subscribe_dialog_error_user_anonymous": "مجهول", "prefs_notifications_title": "الإشعارات", "prefs_notifications_sound_title": "صوت الإشعار", "prefs_notifications_sound_no_sound": "لا صوت", "prefs_notifications_min_priority_description_any": "عرض جميع الإشعارات، بغض النظر عن الأولوية", "prefs_notifications_delete_after_title": "حذف الإشعارات", "prefs_notifications_delete_after_never": "أبداً", "prefs_notifications_delete_after_three_hours": "بعد ثلاث ساعات", "prefs_notifications_delete_after_one_day": "بعد يوم واحد", "prefs_notifications_delete_after_one_month": "بعد شهر واحد", "prefs_notifications_delete_after_never_description": "لا يتم حذف الإشعارات تلقائيا مطلقا", "prefs_notifications_delete_after_one_week_description": "يتم حذف الإشعارات تلقائيا بعد يوم واحد", "prefs_notifications_delete_after_one_month_description": "يتم حذف الإشعارات تلقائيا بعد شهر واحد", "prefs_users_table": "قائمة المستخدمين", "prefs_users_edit_button": "تعديل المستخدم", "prefs_users_table_user_header": "المستخدم", "prefs_users_table_base_url_header": "الرابط التشعبي للخدمة", "priority_default": "افتراضية", "prefs_users_dialog_username_label": "اسم المستخدم، على سبيل المثال phil", "prefs_users_dialog_button_cancel": "إلغاء", "prefs_users_dialog_button_add": "اضافة", "prefs_users_dialog_button_save": "حفظ", "prefs_appearance_title": "المظهر", "prefs_appearance_language_title": "اللغة", "error_boundary_gathering_info": "جمع مزيد من المعلومات …", "error_boundary_unsupported_indexeddb_title": "التصفح الخاص غير مدعوم", "priority_high": "عالية", "priority_max": "قصوى", "error_boundary_title": "أوه لا ، لقد تحطم ntfy", "prefs_users_delete_button": "حذف المستخدم", "prefs_users_add_button": "إضافة مستخدم", "prefs_notifications_min_priority_any": "مهما كانت الأولوية", "prefs_notifications_delete_after_one_week": "بعد أسبوع واحد", "prefs_notifications_delete_after_three_hours_description": "يتم حذف الإشعارات تلقائيا بعد ثلاث ساعات", "prefs_notifications_delete_after_one_day_description": "يتم حذف الإشعارات تلقائيا بعد يوم واحد", "prefs_users_title": "إدارة المستخدمين", "prefs_users_dialog_title_add": "إضافة مستخدم", "prefs_users_dialog_title_edit": "تعديل المستخدم", "prefs_users_dialog_base_url_label": "عنوان URL للخدمة، على سبيل المثال، https://ntfy.sh", "publish_dialog_button_cancel": "إلغاء", "publish_dialog_message_published": "تم نشر الإشعار", "prefs_users_dialog_password_label": "كلمة المرور", "publish_dialog_base_url_placeholder": "عنوان URL للخدمة، على سبيل المثال، https://example.com", "publish_dialog_progress_uploading": "جارٍ التحميل…", "publish_dialog_topic_label": "اسم الموضوع", "publish_dialog_topic_reset": "إعادة تعيين الموضوع", "publish_dialog_email_reset": "إزالة إعادة توجيه البريد الإلكتروني", "publish_dialog_email_placeholder": "عنوان لإعادة توجيه الإشعار إليه، على سبيل المثال phil@example.com", "publish_dialog_other_features": "ميزات أخرى:", "publish_dialog_chip_attach_url_label": "إرفاق ملف عن طريق عنوان URL", "subscribe_dialog_subscribe_topic_placeholder": "اسم الموضوع، على سبيل المثال phil_alerts", "prefs_notifications_sound_description_none": "لا تصدر الإشعارات أي صوت عند وصولها", "publish_dialog_chip_delay_label": "تأخير التسليم", "subscribe_dialog_login_description": "هذا الموضوع محمي بكلمة مرور. الرجاء إدخال اسم المستخدم وكلمة المرور للاشتراك.", "subscribe_dialog_subscribe_button_cancel": "إلغاء", "common_back": "الرجوع", "prefs_notifications_sound_play": "تشغيل الصوت المحدد", "prefs_notifications_min_priority_title": "أولوية دنيا", "prefs_notifications_min_priority_max_only": "الأولوية القصوى فقط", "notifications_no_subscriptions_description": "انقر فوق الرابط \"{{linktext}}\" لإنشاء موضوع أو الاشتراك فيه. بعد ذلك، يمكنك إرسال رسائل عبر PUT أو POST وستتلقى إشعارات هنا.", "publish_dialog_click_label": "الرابط التشعبي URL للنقر", "publish_dialog_tags_placeholder": "قائمة علامات مفصولة بفواصل، على سبيل المثال تحذير, srv1-backup", "publish_dialog_attach_placeholder": "إرفاق ملف بعنوان URL ، على سبيل المثال https://f-droid.org/F-Droid.apk", "publish_dialog_attach_reset": "إزالة عنوان URL للمرفق", "subscribe_dialog_error_user_not_authorized": "المستخدم {{username}} غير مصرح به", "common_save": "حفظ", "common_add": "إضافة", "signup_form_username": "إسم المستخدم", "signup_form_confirm_password": "تأكيد كلمة المرور", "login_title": "تسجيل الدخول إلى حسابك ntfy", "login_form_button_submit": "الولوج", "login_link_signup": "إنشاء حساب", "login_disabled": "تم تعطيل تسجيل الدخول", "action_bar_account": "الحساب", "action_bar_change_display_name": "تغيير الإسم المعروض", "signup_error_creation_limit_reached": "تم بلوغ حد إنشاء الحسابات", "action_bar_reservation_add": "حجز الموضوع", "action_bar_reservation_edit": "تغيير الحجز", "action_bar_profile_title": "الملف التعريفي", "action_bar_profile_settings": "اﻹعدادات", "action_bar_profile_logout": "الخروج", "action_bar_sign_in": "الولوج", "action_bar_sign_up": "إنشاء حساب", "nav_button_account": "الحساب", "nav_upgrade_banner_label": "قم بالترقية إلى NTFY Pro", "reserve_dialog_checkbox_label": "حجز الموضوع وإعداد الوصول", "subscribe_dialog_subscribe_button_generate_topic_name": "توليد إسم", "subscribe_dialog_error_topic_already_reserved": "الموضوع محجوز بالفعل", "account_basics_title": "الحساب", "account_basics_username_title": "إسم المستخدم", "account_basics_username_description": "مرحبًا، هذا أنت ❤", "account_basics_username_admin_tooltip": "أنت مدير", "account_basics_password_title": "كلمة المرور", "account_basics_password_description": "غيّر كلمة مرور حسابك", "account_basics_password_dialog_title": "تغيير كلمة المرور", "account_basics_password_dialog_current_password_label": "كلمة المرور الحالية", "account_basics_password_dialog_new_password_label": "كلمة المرور الجديدة", "account_basics_password_dialog_confirm_password_label": "تأكيد كلمة المرور", "account_basics_password_dialog_button_submit": "تغيير كلمة المرور", "account_basics_password_dialog_current_password_incorrect": "الكلمة السرية خاطئة", "account_usage_title": "الإستخدام", "account_usage_of_limit": "من {{limit}}", "account_usage_unlimited": "غير محدود", "account_basics_tier_title": "نوع الحساب", "account_basics_tier_description": "مستوى قوة حسابك", "account_basics_tier_admin": "مدير", "account_basics_tier_free": "مجاني", "account_basics_tier_upgrade_button": "الترقية إلى Pro", "account_basics_tier_change_button": "تغيير", "account_basics_tier_manage_billing_button": "إدارة الفوترة", "account_usage_messages_title": "الرسائل المنشورة", "account_usage_reservations_title": "المواضيع المحجوزة", "account_usage_attachment_storage_title": "تخزين المرفقات", "account_delete_title": "حذف الحساب", "account_delete_description": "احذف حسابك نهائيا", "account_delete_dialog_label": "كلمة المرور", "account_upgrade_dialog_title": "تغيير فئة الحساب", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} رسائل يومية", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} من رسائل البريد الإلكتروني اليومية", "account_upgrade_dialog_button_cancel": "إلغاء", "account_upgrade_dialog_button_pay_now": "ادفع الآن واشترك", "account_upgrade_dialog_button_cancel_subscription": "إلغاء الاشتراك", "account_tokens_title": "رموز الوصول", "account_tokens_table_token_header": "الرمز المميز", "account_tokens_table_last_access_header": "آخر وصول", "account_tokens_table_expires_header": "تنتهي مدة صلاحيته في", "account_tokens_table_never_expires": "لا تنتهي صلاحيتها أبدا", "account_tokens_table_current_session": "جلسة المتصفح الحالية", "common_copy_to_clipboard": "انسخ إلى الحافظة", "account_tokens_table_cannot_delete_or_edit": "لا يمكن تحرير أو حذف الرمز المميز للجلسة الحالية", "account_tokens_table_create_token_button": "إنشاء رمز مميز للوصول", "account_tokens_table_last_origin_tooltip": "من عنوان IP {{ip}}، انقر للبحث", "account_tokens_dialog_title_create": "إنشاء رمز مميز للوصول", "account_tokens_dialog_title_edit": "تعديل الرمز المميز للوصول", "account_tokens_dialog_title_delete": "حذف الرمز المميز للوصول", "account_tokens_dialog_label": "التسمية، على سبيل المثال إشعارات الرادار", "account_tokens_dialog_button_create": "إنشاء رمز مميز", "account_tokens_dialog_button_update": "تحديث الرمز المميز", "account_tokens_dialog_button_cancel": "إلغاء", "account_tokens_dialog_expires_label": "تنتهي صلاحية الرمز المميز للوصول في", "account_tokens_dialog_expires_unchanged": "اترك تاريخ انتهاء الصلاحية دون تغيير", "account_tokens_dialog_expires_x_hours": "تنتهي صلاحية الرمز المميز في {{hours}} ساعات", "account_tokens_dialog_expires_never": "لا تنتهي صلاحية الرمز المميز أبدًا", "account_tokens_delete_dialog_title": "حذف الرمز المميز للوصول", "account_tokens_delete_dialog_submit_button": "حذف الرمز المميز نهائيا", "prefs_users_table_cannot_delete_or_edit": "لا يمكن حذف أو تحرير المستخدم الذي قام بتسجيل الدخول", "prefs_reservations_add_button": "إضافة موضوع محجوز", "prefs_reservations_table": "جدول المواضيع المحجوزة", "prefs_reservations_table_topic_header": "الموضوع", "prefs_reservations_table_access_header": "الوصول", "prefs_reservations_table_everyone_deny_all": "أنا فقط من يستطيع النشر والاشتراك", "prefs_reservations_table_everyone_write_only": "يمكنني النشر والاشتراك ، ويمكن للجميع النشر", "prefs_reservations_table_everyone_read_write": "يمكن للجميع النشر والاشتراك", "prefs_reservations_table_not_subscribed": "غير مشترك", "prefs_reservations_dialog_title_edit": "تحرير الموضوع المحجوز", "prefs_reservations_dialog_topic_label": "الموضوع", "prefs_reservations_dialog_access_label": "الوصول", "reservation_delete_dialog_action_delete_title": "حذف الرسائل والمرفقات المخزنة مؤقتا", "reservation_delete_dialog_submit_button": "حذف الحجز", "signup_title": "إنشاء حساب ntfy", "common_cancel": "إلغاء", "signup_form_password": "كلمة المرور", "signup_already_have_account": "هل لديك حساب؟ قم بتسجيل الدخول!", "signup_form_button_submit": "إنشاء حساب", "signup_disabled": "تم تعطيل التسجيل", "display_name_dialog_placeholder": "الإسم المعروض", "display_name_dialog_title": "تغيير الإسم المعروض", "account_basics_tier_basic": "أساسي", "account_usage_emails_title": "رسائل البريد الإلكتروني المرسلة", "account_usage_reservations_none": "لا توجد مواضيع محجوزة لهذا الحساب", "account_usage_cannot_create_portal_session": "تعذر فتح بوابة الفوترة", "account_delete_dialog_button_cancel": "إلغاء", "account_delete_dialog_button_submit": "حذف الحساب نهائيا", "account_upgrade_dialog_button_update_subscription": "تحديث الاشتراك", "account_tokens_table_copied_to_clipboard": "تم نسخ الرمز المميز للوصول", "prefs_reservations_title": "المواضيع المحجوزة", "prefs_reservations_table_everyone_read_only": "يمكنني النشر والاشتراك ، ويمكن للجميع الاشتراك", "prefs_reservations_table_click_to_subscribe": "انقر للاشتراك", "reservation_delete_dialog_action_keep_title": "الاحتفاظ بالرسائل والمرفقات المخزنة مؤقتًا", "action_bar_reservation_delete": "إزالة الحجز", "display_name_dialog_description": "قم بتعيين اسم بديل للموضوع المعروض في قائمة الاشتراك. يساعد هذا في تحديد الموضوعات ذات الأسماء المعقدة بسهولة أكبر.", "prefs_users_description": "إضافة / إزالة المستخدمين لمواضيعك المحمية هنا. يرجى الأخذ بعين الاعتبار أنه يتم تخزين اسم المستخدم وكلمة المرور في التخزين المحلي للمتصفح.", "notifications_more_details": "لمزيد من المعلومات، الرجاء الاطّلاع على موقع الويب أو على الدليل.", "publish_dialog_details_examples_description": "للحصول على أمثلة ووصف مُفصّل لجميع ميزات الإرسال، يرجى الاستناد إلى الدليل.", "subscribe_dialog_subscribe_description": "قد لا تكون الموضوعات محمية بكلمة سر لذا اختر اسمًا ليس من السهل تخمينه وبمجرد اشتراكك، يمكنك الحصول على إشعارات عبر \"PUT/POST\".", "prefs_notifications_sound_description_some": "تقوم الإشعارات بتشغيل صوت {{sound}} عند وصولها", "notifications_none_for_topic_description": "لإرسال إشعارات إلى هذا الموضوع، ما عليك سوى PUT أو POST إلى عنوان URL الخاص بالموضوع.", "priority_low": "منخفضة", "signup_form_toggle_password_visibility": "تبديل رؤية كلمة المرور", "account_usage_limits_reset_daily": "يعاد تحديد حدود الاستخدام يوميا في منتصف الليل (UTC)", "account_tokens_table_label_header": "المُلصَقة", "account_upgrade_dialog_button_redirect_signup": "تسجيل فوري", "account_upgrade_dialog_tier_current_label": "الحالي", "account_tokens_dialog_expires_x_days": "تنتهي صلاحية الرمز المميز في غضون {{days}} أيام", "prefs_reservations_dialog_title_add": "حجز موضوع", "prefs_reservations_description": "يمكنك حجز أسماء الموضوعات للاستخدام الشخصي هنا. يمنحك حجز موضوع ما ملكية الموضوع، ويسمح لك بتحديد تصريحات الوصول للمستخدمين الآخرين إلى الموضوع.", "prefs_users_description_no_sync": "لا تتم مزامنة المستخدمين وكلمات المرور مع حسابك.", "reservation_delete_dialog_action_delete_description": "سيتم حذف الرسائل والمرفقات المخزنة مؤقتا نهائيا. لا يمكن التراجع عن هذا الإجراء.", "notifications_actions_http_request_title": "إرسال طلب HTTP {{method}} إلى {{url}}", "notifications_none_for_any_description": "لإرسال إشعارات إلى موضوع ما، ما عليك سوى إرسال طلب PUT أو POST إلى الرابط التشعبي URL للموضوع. إليك مثال باستخدام أحد مواضيعك.", "error_boundary_description": "من الواضح أن هذا لا ينبغي أن يحدث. آسف جدًا بشأن هذا.
      إن كان لديك دقيقة، يرجى الإبلاغ عن ذلك على GitHub ، أو إعلامنا عبر Discord أو Matrix .", "nav_button_muted": "الإشعارات المكتومة", "priority_min": "دنيا", "signup_error_username_taken": "تم حجز اسم المستخدم {{username}} مِن قَبلُ", "action_bar_reservation_limit_reached": "بلغت الحد الأقصى", "prefs_reservations_delete_button": "إعادة تعيين الوصول إلى الموضوع", "prefs_reservations_edit_button": "تعديل الوصول إلى موضوع", "prefs_reservations_limit_reached": "لقد بلغت الحد الأقصى من المواضيع المحجوزة.", "reservation_delete_dialog_action_keep_description": "ستصبح الرسائل والمرفقات المخزنة مؤقتًا على الخادم مرئية للعموم وللأشخاص الذين لديهم معرفة باسم الموضوع.", "reservation_delete_dialog_description": "تؤدي إزالة الحجز إلى التخلي عن ملكية الموضوع، مما يسمح للآخرين بحجزه. يمكنك الاحتفاظ بالرسائل والمرفقات الموجودة أو حذفها.", "prefs_reservations_dialog_description": "يمنحك حجز موضوع ما ملكية الموضوع، ويسمح لك بتحديد تصريحات وصول المستخدمين الآخرين إليه.", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "توفير ما يصل إلى {{discount}}٪", "account_upgrade_dialog_interval_monthly": "شهريا", "account_upgrade_dialog_tier_features_attachment_total_size": "إجمالي مساحة التخزين {{totalsize}}", "publish_dialog_progress_uploading_detail": "تحميل {{loaded}}/{{total}} ({{percent}}٪) …", "account_basics_tier_interval_monthly": "شهريا", "account_basics_tier_interval_yearly": "سنويا", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} مواضيع محجوزة", "account_upgrade_dialog_billing_contact_website": "للأسئلة المتعلقة بالفوترة، يرجى الرجوع إلى موقعنا على الويب.", "prefs_notifications_min_priority_description_x_or_higher": "إظهار الإشعارات إذا كانت الأولوية {{number}} ({{name}}) أو أعلى", "account_upgrade_dialog_billing_contact_email": "للأسئلة المتعلقة بالفوترة، الرجاء الاتصال بنا مباشرة.", "account_upgrade_dialog_tier_selected_label": "المحدد", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} لكل ملف", "account_upgrade_dialog_interval_yearly": "سنويا", "account_upgrade_dialog_tier_features_no_reservations": "لا توجد مواضيع محجوزة", "account_upgrade_dialog_interval_yearly_discount_save": "وفر {{discount}}٪", "publish_dialog_click_reset": "إزالة الرابط التشعبي URL للنقر", "prefs_notifications_min_priority_description_max": "إظهار الإشعارات إذا كانت الأولوية 5 (كحد أقصى)", "publish_dialog_attachment_limits_file_reached": "يتجاوز الحد الأقصى للملف {{fileSizeLimit}}", "publish_dialog_attachment_limits_quota_reached": "يتجاوز الحصة، {{remainingBytes}} متبقية", "account_basics_tier_paid_until": "تم دفع مبلغ الاشتراك إلى غاية {{date}}، وسيتم تجديده تِلْقائيًا", "account_basics_tier_canceled_subscription": "تم إلغاء اشتراكك وسيتم إعادته إلى مستوى حساب مجاني بداية مِن {{date}}.", "account_delete_dialog_billing_warning": "إلغاء حسابك أيضاً يلغي اشتراكك في الفوترة فوراً ولن تتمكن من الوصول إلى لوح الفوترة بعد الآن.", "nav_upgrade_banner_description": "حجز المواضيع والمزيد من الرسائل ورسائل البريد الإلكتروني والمرفقات الأكبر حجمًا", "prefs_appearance_theme_dark": "الوضع الليلي", "prefs_appearance_theme_light": "الوضع النهاري", "publish_dialog_checkbox_markdown": "تنسيق على هيئة ماركداون", "alert_not_supported_context_description": "الإشعارات مسموحة فقط على بروتوكول HTTPS المأمن, هذه القيود خصائص الإشعارات", "publish_dialog_call_reset": "حذف اتصال بالهاتف", "publish_dialog_call_label": "اتصال هاتفي", "publish_dialog_chip_call_label": "اتصال هاتفي", "publish_dialog_delay_placeholder": "تأخير التوصيل, مثال {{unixTimestamp}}, {{relativeTime}}, او \"{{naturalLanguage}}\" (اللغة الإنجليزية فقط)", "publish_dialog_attachment_limits_file_and_quota_reached": "تجاوز حجم {{fileSizeLimit}} الملف, {{remainingBytes}} متبقي", "prefs_reservations_dialog_title_delete": "حذف حجز موضوع", "publish_dialog_call_item": "اتصل برقم الهاتف {{number}}", "publish_dialog_chip_call_no_verified_numbers_tooltip": "لا يوجد ارقام هواتف معرفة", "action_bar_mute_notifications": "كتم الإشعارات", "action_bar_unmute_notifications": "إلغاء كتم الإشعارات", "alert_notification_ios_install_required_description": "اضغط على زر المشاركة ثم إضافة إلى الصفحة الرئيسية لتستقبل الإشعارات على أجهزة أبل", "alert_notification_ios_install_required_title": "يجب تثبيت الصفحة", "alert_notification_permission_denied_description": "الرجاء اعادة منح الصلاحيات في المتصفح", "alert_notification_permission_denied_title": "الإشعارات مغلقة", "notifications_actions_failed_notification": "حدث غير منفذ", "prefs_notifications_web_push_disabled": "ملغي", "account_basics_phone_numbers_dialog_channel_call": "اتصل", "account_basics_phone_numbers_title": "أرقام الهواتف", "account_basics_phone_numbers_dialog_channel_sms": "رسالة نصية قصيرة", "account_basics_phone_numbers_dialog_check_verification_button": "رمز التأكيد", "account_basics_phone_numbers_dialog_number_label": "رقم الهاتف", "account_basics_phone_numbers_dialog_verify_button_call": "اتصل بي", "account_basics_phone_numbers_dialog_code_label": "رمز التحقّق", "account_upgrade_dialog_tier_price_per_month": "شهر", "prefs_appearance_theme_title": "الحُلّة" } ntfy-2.11.0/web/public/static/langs/bg.json000066400000000000000000001252171462047176100205040ustar00rootroot00000000000000{ "action_bar_clear_notifications": "Премахване на известия", "alert_notification_permission_required_description": "Разрешете на мрежовия четец да показва известия", "notifications_attachment_copy_url_title": "Копиране на адреса на прикачения файл", "notifications_example": "Пример", "notifications_no_subscriptions_title": "Липсват абонаменти", "nav_topics_title": "Абонаменти", "action_bar_send_test_notification": "Пробно известие", "action_bar_unsubscribe": "Отписване", "nav_button_all_notifications": "Всички известия", "action_bar_settings": "Настройки", "publish_dialog_title_topic": "Публикуване в темата {{topic}}", "publish_dialog_title_no_topic": "Изпращане", "publish_dialog_progress_uploading": "Изпращане…", "publish_dialog_progress_uploading_detail": "Изпращане {{loaded}}/{{total}} ({{percent}}%)…", "publish_dialog_message_published": "Известието е публикувано", "publish_dialog_attachment_limits_file_and_quota_reached": "надвишава ограничението от {{fileSizeLimit}} за размер на файл и квотата, остават {{remainingBytes}}", "publish_dialog_message_label": "Съобщение", "publish_dialog_message_placeholder": "Въведете съобщение", "publish_dialog_other_features": "Други възможности:", "publish_dialog_chip_click_label": "Адрес", "publish_dialog_chip_email_label": "Препращане към ел. поща", "publish_dialog_chip_attach_url_label": "Прикачване на файл от адрес", "publish_dialog_chip_attach_file_label": "Прикачване местен файл", "publish_dialog_chip_delay_label": "Отлагане на изпращането", "publish_dialog_chip_topic_label": "Промяна на темата", "publish_dialog_button_cancel_sending": "Отменяне на изпращането", "publish_dialog_button_cancel": "Отказ", "subscribe_dialog_error_user_anonymous": "анонимен", "prefs_notifications_title": "Известия", "prefs_notifications_sound_title": "Звук при получаване", "prefs_notifications_sound_no_sound": "Без звук", "prefs_notifications_min_priority_title": "Най-нисък приоритет", "prefs_notifications_min_priority_any": "Всички", "prefs_notifications_min_priority_low_and_higher": "Нисък приоритет и по-висок", "prefs_notifications_min_priority_default_and_higher": "Подразбиран приоритет и по-висок", "prefs_notifications_min_priority_high_and_higher": "Висок приоритет и по-висок", "prefs_notifications_min_priority_max_only": "Само най-висок приоритет", "prefs_notifications_delete_after_never": "Никога", "prefs_users_add_button": "Добавяне", "prefs_users_dialog_password_label": "Парола", "alert_not_supported_description": "Мрежовият четец не поддържа известия", "message_bar_type_message": "Въведете съобщение", "message_bar_error_publishing": "Грешка при изпращане на известието", "notifications_copied_to_clipboard": "Копирано в междинната памет", "notifications_attachment_link_expired": "препратката за изтегляне е с изтекла давност", "nav_button_settings": "Настройки", "nav_button_documentation": "Ръководство", "nav_button_subscribe": "Абониране за тема", "alert_notification_permission_required_title": "Известията са изключени", "alert_notification_permission_required_button": "Разрешаване", "notifications_tags": "Етикети", "nav_button_publish_message": "Изпращане", "alert_not_supported_title": "Не се поддържат известия", "notifications_attachment_open_title": "Към {{url}}", "notifications_attachment_copy_url_button": "Копиране на адреса", "notifications_attachment_open_button": "Отваряне на прикачения файл", "notifications_attachment_link_expires": "давността на препратката изтича на {{date}}", "notifications_actions_open_url_title": "Към {{url}}", "notifications_click_copy_url_button": "Копиране на препратка", "notifications_click_open_button": "Отваряне", "notifications_click_copy_url_title": "Копиране на препратката в междинната памет", "notifications_none_for_topic_title": "Темата е все още празна", "notifications_none_for_any_title": "Липсват известия", "notifications_none_for_topic_description": "За да изпратите известия в тази тема направете заявка чрез методите PUT или POST към адреса ѝ.", "notifications_none_for_any_description": "За да изпратите известия в тема направете заявка чрез методите PUT или POST към адреса ѝ. Ето пример с една от вашите теми.", "notifications_no_subscriptions_description": "Щракнете върху „{{linktext}}“, за да създадете или да се абонирате за тема. След това като изпратите съобщение с методите PUT или POST ще го получите тук.", "notifications_more_details": "За допълнителна информация посетете страницата или документацията.", "publish_dialog_priority_min": "Най-нисък приоритет", "publish_dialog_attachment_limits_file_reached": "надвишава ограничението от {{fileSizeLimit}} за размер на файл", "publish_dialog_base_url_label": "Адрес на услугата", "publish_dialog_base_url_placeholder": "Адрес на услугата, напр. https://example.com", "publish_dialog_topic_placeholder": "Име на темата, напр. phils_alerts", "publish_dialog_priority_low": "Нисък приоритет", "publish_dialog_attachment_limits_quota_reached": "надвишава квотата, остават {{remainingBytes}}", "publish_dialog_priority_high": "Висок приоритет", "publish_dialog_priority_default": "Подразбиран приоритет", "publish_dialog_title_placeholder": "Заглавие на известието, напр. Предупреждение за диска", "publish_dialog_tags_label": "Етикети", "publish_dialog_email_label": "Адрес на електронна поща", "publish_dialog_priority_max": "Най-висок приоритет", "publish_dialog_tags_placeholder": "Разделени със запетая етикети, напр. warning, srv1-backup", "publish_dialog_click_label": "Адрес", "publish_dialog_topic_label": "Име на темата", "publish_dialog_title_label": "Заглавие", "publish_dialog_priority_label": "Приоритет", "publish_dialog_click_placeholder": "Адрес, който се отваря при докосване на известието", "publish_dialog_email_placeholder": "Адрес, към който да бъдат препращани известия, напр. phil@example.com", "publish_dialog_attach_label": "Адрес на прикачения файл", "publish_dialog_filename_placeholder": "Име на прикачения файл", "publish_dialog_attach_placeholder": "Прикачете файл от адрес, напр. https://f-droid.org/F-Droid.apk", "prefs_notifications_delete_after_three_hours": "След три часа", "publish_dialog_filename_label": "Име на файла", "publish_dialog_delay_label": "Отлагане", "publish_dialog_details_examples_description": "За примери и подробно описание на всички възможности при изпращане, вижте документацията.", "publish_dialog_button_send": "Изпращане", "publish_dialog_checkbox_publish_another": "Изпращане на повече", "publish_dialog_attached_file_title": "Прикачен файл:", "publish_dialog_attached_file_filename_placeholder": "Име на прикачения файл", "publish_dialog_drop_file_here": "Пуснете файла тук", "subscribe_dialog_subscribe_description": "Възможно е темите да не са защитени с парола, затова изберете име, което е трудно за отгатване. След като се абонирате, можете да изпращате известия чрез методите PUT или POST.", "emoji_picker_search_placeholder": "Търсете емоция", "subscribe_dialog_subscribe_title": "Абониране за тема", "subscribe_dialog_subscribe_topic_placeholder": "Име на темата, напр. phils_alerts", "subscribe_dialog_subscribe_use_another_label": "Използване на друг сървър", "subscribe_dialog_login_username_label": "Потребител, напр. phil", "common_back": "Назад", "subscribe_dialog_subscribe_button_cancel": "Отказ", "subscribe_dialog_login_description": "Темата е защитена. За да се абонирате въведете потребител и парола.", "subscribe_dialog_subscribe_button_subscribe": "Абониране", "subscribe_dialog_login_title": "Изисква се вход", "prefs_notifications_delete_after_title": "Автоматично премахване", "prefs_notifications_delete_after_one_day": "След един ден", "prefs_users_table_user_header": "Потребител", "prefs_users_dialog_title_edit": "Промяна на потребител", "prefs_users_dialog_base_url_label": "Адрес на услугата, e.g. https://ntfy.sh", "common_cancel": "Отказ", "common_save": "Запазване", "prefs_appearance_language_title": "Език", "subscribe_dialog_login_password_label": "Парола", "subscribe_dialog_login_button_login": "Вход", "subscribe_dialog_error_user_not_authorized": "Потребителят {{username}} няма достъп", "prefs_appearance_title": "Външен вид", "publish_dialog_delay_placeholder": "Отлагане на изпращането, {{unixTimestamp}}, {{relativeTime}} или „{{naturalLanguage}}“ (на английски)", "prefs_notifications_delete_after_one_week": "След една седмица", "prefs_users_title": "Управление на потребители", "prefs_users_table_base_url_header": "Адрес на услугата", "prefs_users_dialog_title_add": "Добавяне на потребител", "prefs_notifications_delete_after_one_month": "След един месец", "prefs_users_dialog_username_label": "Потребител, напр. phil", "common_add": "Добавяне", "error_boundary_title": "О, не, ntfy се срина", "error_boundary_description": "Това очевидно не трябва да се случва. Много съжаляваме!
      Ако имате минута, докладвайте в GitHub или ни уведомете в Discord или Matrix.", "error_boundary_stack_trace": "Следа от стека", "error_boundary_gathering_info": "Събиране на допълнителна информация…", "notifications_loading": "Зареждане на известия…", "error_boundary_button_copy_stack_trace": "Копиране на следата от стека", "prefs_users_description": "Добавяйте и премахвайте потребители за защитените теми. Имайте предвид, че потребителското име и паролата се съхраняват в местната памет на мрежовия четец.", "prefs_notifications_sound_description_none": "Известията не са съпроводени със звук", "prefs_notifications_sound_description_some": "При пристигане известията са съпроводени от звука „{{sound}}“", "prefs_notifications_delete_after_never_description": "Известията никога не се премахват автоматично", "prefs_notifications_delete_after_three_hours_description": "Известията се премахват автоматично след три часа", "priority_min": "най-нисък", "priority_low": "нисък", "priority_high": "висок", "priority_max": "най-висок", "priority_default": "подразбиран", "prefs_notifications_delete_after_one_week_description": "Известията се премахват автоматично след една седмица", "prefs_notifications_delete_after_one_day_description": "Известията се премахват автоматично след един ден", "prefs_notifications_min_priority_description_max": "Показват се известията с приоритет 5 (най-висок)", "prefs_notifications_delete_after_one_month_description": "Известията се премахват автоматично след един месец", "prefs_notifications_min_priority_description_any": "Показват се всички известия, независимо от приоритета", "prefs_notifications_min_priority_description_x_or_higher": "Показват се известията с приоритет {{number}} ({{name}}) или по-висок", "notifications_actions_http_request_title": "Изпращане на HTTP {{method}} до {{url}}", "notifications_actions_not_supported": "Действието не се поддържа от приложението за интернет", "action_bar_show_menu": "Показване на менюто", "action_bar_logo_alt": "Логотип на ntfy", "action_bar_toggle_mute": "Заглушаване или пускане на известията", "action_bar_toggle_action_menu": "Отваряне или затваряне на менюто с действията", "nav_button_muted": "Известията са заглушени", "notifications_list": "Списък с известия", "notifications_list_item": "Известие", "notifications_delete": "Премахване", "notifications_mark_read": "Отбелязване като прочетено", "nav_button_connecting": "свързване", "message_bar_show_dialog": "Показване на диалога за публикуване", "message_bar_publish": "Публикуване на съобщение", "notifications_priority_x": "Приоритет {{priority}}", "notifications_new_indicator": "Ново известие", "notifications_attachment_image": "Прикачено изображение", "notifications_attachment_file_image": "файл на изображение", "notifications_attachment_file_video": "видео", "notifications_attachment_file_audio": "аудио", "notifications_attachment_file_app": "инсталационен файл на приложение за Android", "notifications_attachment_file_document": "друг документ", "publish_dialog_emoji_picker_show": "Избор на емоция", "publish_dialog_topic_reset": "Нулиране на тема", "publish_dialog_click_reset": "Премахване на адрес", "publish_dialog_email_reset": "Премахване на препращането към ел. поща", "publish_dialog_delay_reset": "Премахва отлагането на изпращането", "publish_dialog_attached_file_remove": "Премахване на прикачения файл", "emoji_picker_search_clear": "Изчистване на търсенето", "subscribe_dialog_subscribe_base_url_label": "Адрес на услугата", "prefs_notifications_sound_play": "Възпроизвеждане на избрания звук", "publish_dialog_attach_reset": "Премахване на адреса на файла за прикачане", "prefs_users_delete_button": "Премахване", "prefs_users_table": "Таблица с потребители", "prefs_users_edit_button": "Промяна на потребител", "error_boundary_unsupported_indexeddb_title": "Поверително разглеждане не се поддържа", "error_boundary_unsupported_indexeddb_description": "За да работи интернет-приложението ntfy се нуждае от IndexedDB, а мрежовият четец не поддържа IndexedDB в режим на поверително разглеждане.

      Въпреки това, няма смисъл да използвате интернет-приложението ntfy в режим на поверително разглеждане, тъй като всичко се пази в хранилището на четеца. Можете да прочетете повече по проблема в GitHub или да се свържете с нас в Discord или Matrix.", "signup_title": "Създаване на профил в ntfy", "signup_form_username": "Потребител", "signup_form_password": "Парола", "signup_form_button_submit": "Регистриране", "signup_form_toggle_password_visibility": "Превключване видимостта на паролата", "signup_already_have_account": "Имате профил? Впишете се!", "signup_error_username_taken": "Потребителското име {{username}} е заето", "login_title": "Впишете се в профила си в ntfy", "login_form_button_submit": "Вписване", "login_link_signup": "Регистриране", "login_disabled": "Вписването е изключено", "action_bar_account": "Профил", "action_bar_change_display_name": "Промяна на показваното име", "action_bar_reservation_add": "Резервиране на тема", "action_bar_reservation_delete": "Премахване на резервацията", "action_bar_reservation_limit_reached": "Ограничението е достигнато", "action_bar_profile_title": "Профил", "action_bar_profile_settings": "Настройки", "action_bar_profile_logout": "Изход", "action_bar_sign_in": "Вписване", "nav_button_account": "Профил", "nav_upgrade_banner_label": "Надграждане до ntfy Pro", "signup_form_confirm_password": "Парола отново", "signup_disabled": "Регистрациите са затворени", "signup_error_creation_limit_reached": "Достигнатео е ограничението за създаване на профили", "display_name_dialog_title": "Промяна на показваното име", "action_bar_reservation_edit": "Промяна на резервацията", "action_bar_sign_up": "Регистриране", "account_basics_title": "Профил", "alert_not_supported_context_description": "Известията се поддържат само през HTTPS. Това е ограничение на Notifications API.", "display_name_dialog_description": "Изберете друго име за темата, което да се показва в списъка с абонаменти. Помага за по-лесното разпознаване на теми със сложни имена.", "subscribe_dialog_error_topic_already_reserved": "Темата вече е резервирана", "nav_upgrade_banner_description": "Резервиране на теми, повече съобщения и писма, по-големи прикачени файлове", "display_name_dialog_placeholder": "Наименование", "reserve_dialog_checkbox_label": "Резервиране на тема и настройки за достъп", "subscribe_dialog_subscribe_button_generate_topic_name": "Произволно име", "account_basics_username_title": "Потребител", "account_basics_username_description": "Хей, това сте вие ❤", "account_basics_username_admin_tooltip": "Вие сте администратор", "account_basics_password_title": "Парола", "account_delete_dialog_label": "Парола", "account_basics_password_dialog_title": "Смяна на парола", "account_basics_password_dialog_current_password_label": "Текуща парола", "account_basics_password_dialog_new_password_label": "Нова парола", "account_basics_password_dialog_confirm_password_label": "Парола отново", "account_basics_password_dialog_button_submit": "Смяна на парола", "account_usage_title": "Употреба", "account_usage_of_limit": "от {{limit}}", "account_usage_unlimited": "Неограничено", "account_usage_limits_reset_daily": "Ограниченията се нулират всеки ден в полунощ (UTC)", "account_basics_tier_interval_monthly": "месечно", "account_basics_tier_interval_yearly": "годишно", "account_basics_password_description": "Промяна на паролата на профила", "account_basics_tier_title": "Вид на профила", "account_basics_tier_admin": "Администратор", "account_basics_tier_admin_suffix_with_tier": "(с {{tier}} ниво)", "account_basics_tier_admin_suffix_no_tier": "(без ниво)", "account_basics_tier_free": "безплатен", "account_basics_tier_basic": "базов", "account_basics_tier_change_button": "Променяне", "account_basics_tier_paid_until": "Абонаментът е платен до {{date}} и автоматично ще се поднови", "account_usage_attachment_storage_title": "Хранилище за прикачени файлове", "account_delete_dialog_button_cancel": "Отказ", "account_upgrade_dialog_interval_monthly": "Месечно", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} резервирани теми", "account_upgrade_dialog_tier_features_no_reservations": "Няма резервирани теми", "account_tokens_dialog_button_cancel": "Отказ", "account_delete_title": "Премахване на профила", "account_upgrade_dialog_title": "Промяна нивото на профила", "account_usage_emails_title": "Изпратени електронни писма", "account_usage_reservations_title": "Резервирани теми", "account_usage_reservations_none": "Няма резервирани теми", "account_usage_cannot_create_portal_session": "Порталът за разплащане не може да бъде отворен", "account_upgrade_dialog_interval_yearly": "Годишно", "account_delete_description": "Безвъзвратно премахване на профила", "account_delete_dialog_button_submit": "Безвъзвратно премахване на профила", "account_upgrade_dialog_interval_yearly_discount_save": "отстъпка {{discount}}%", "account_upgrade_dialog_button_cancel": "Отказ", "account_upgrade_dialog_button_redirect_signup": "Регистриране", "account_tokens_table_label_header": "Етикет", "prefs_reservations_edit_button": "Настройки на достъпа", "prefs_reservations_table_topic_header": "Тема", "prefs_reservations_table_access_header": "Достъп", "prefs_reservations_dialog_topic_label": "Тема", "prefs_reservations_dialog_access_label": "Достъп", "account_basics_password_dialog_current_password_incorrect": "Грешна парола", "account_basics_tier_description": "Ниво на профила", "account_basics_tier_upgrade_button": "Надграждане до Pro", "account_usage_messages_title": "Публикувани съобщения", "account_tokens_table_last_access_header": "Последен достъп", "account_basics_tier_payment_overdue": "Имате просрочено задължение. Обновете начина на плащане, защото в противен случай скоро профилът ви ще загуби предимствата на абонамента.", "account_usage_basis_ip_description": "Статистиката и ограниченията на използване се отчитат по IP адрес, така че може да бъдат споделени с други потребители. Показаните по-горе ограничения са приблизителни и се основават на съществуващите ограничения на използване.", "account_delete_dialog_description": "Това действие ще доведе до безвъзвратното изтриване на профила ви, включително на всички данни, които се съхраняват на сървъра. След изтриването потребителското ви име няма да бъде достъпно в продължение на 7 дни. Ако наистина искате да продължите, потвърдете с паролата си в полето по-долу.", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} резервирана тема", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "спестете до {{discount}}%", "account_delete_dialog_billing_warning": "Изтриването на профила незабавно отменя и платения абонамент. Няма да имате достъп до таблото за плащания.", "account_upgrade_dialog_cancel_warning": "Това действие ще прекрати абонамента и ще промени профила ви на неплатен на {{date}}. На тази дата резервираните теми, както и пазените на сървъра съобщения, ще бъдат премахнати.", "account_upgrade_dialog_proration_info": "Преизчисляване на плащания: При надграждане между платени планове разликата в цената ще бъде начислена незабавно. При преминаване към по-евтин план надплатената сума ще бъде използвана за плащане за бъдещи периоди.", "account_basics_tier_manage_billing_button": "Управление на плащанията", "account_basics_tier_canceled_subscription": "Абонаментът е прекратен и профилът ще бъде променен на неплатен на {{date}}.", "account_basics_phone_numbers_dialog_verify_button_sms": "Изпращане на SMS", "account_basics_phone_numbers_dialog_verify_button_call": "Обаждане до мен", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} телефонни обаждания на ден", "common_copy_to_clipboard": "Копиране в междинната памет", "publish_dialog_call_label": "Телефонно обаждане", "publish_dialog_call_reset": "Премахване на телефонно обаждане", "publish_dialog_chip_call_label": "Телефонно обаждане", "account_basics_phone_numbers_dialog_description": "За да възползвате от услугата известяване чрез телефонно обаждане, трябва да добавите и потвърдите поне един телефонен номер. Проверката може да бъде извършена чрез SMS или телефонно обаждане.", "account_basics_phone_numbers_title": "Телефонни номера", "account_basics_phone_numbers_dialog_number_placeholder": "напр. +1222333444", "account_basics_phone_numbers_dialog_number_label": "Телефонен номер", "account_basics_phone_numbers_dialog_title": "Добавяне на телефонен номер", "account_basics_phone_numbers_copied_to_clipboard": "Телефонният номер е копиран в междинната памет", "account_basics_phone_numbers_no_phone_numbers_yet": "Все още няма телефонни номера", "account_basics_phone_numbers_description": "За известяване чрез телефонно обаждане", "publish_dialog_call_item": "Обаждане на телефонен номер {{number}}", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Няма потвърдени телефонни номера", "account_basics_phone_numbers_dialog_channel_call": "Обаждане", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_basics_phone_numbers_dialog_check_verification_button": "Код за потвърждаване", "account_basics_phone_numbers_dialog_code_placeholder": "напр. 123456", "account_basics_phone_numbers_dialog_code_label": "Код за потвърждение", "account_usage_calls_none": "С този профил не могат да се извършват телефонни обаждания", "account_usage_calls_title": "Извършени телефонни обаждания", "account_upgrade_dialog_tier_features_no_calls": "Без телефонни обаждания", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} съобщение на ден", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} съобщения на ден", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} ел. писмо на ден", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} ел. писма на ден", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} телефонни обаждания на ден", "account_usage_attachment_storage_description": "{{filesize}} на файл, изтриване след {{expiry}}", "account_upgrade_dialog_billing_contact_email": "За въпроси относно плащанията се свържете с нас.", "account_upgrade_dialog_tier_current_label": "Текущо", "account_upgrade_dialog_billing_contact_website": "За въпроси относно плащанията се обърнете към страницата.", "account_upgrade_dialog_button_cancel_subscription": "Прекратяване на абонамент", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} на файл", "account_upgrade_dialog_reservations_warning_one": "Избраното ниво разрешава по-малко резервирани теми, от колкото текущото. Преди промяна на нивото изтрийте най-малко една резервирана тема. Можете да премахвате теми в Настройки.", "account_tokens_title": "Кодове за достъп", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} на година. Плаща се всеки месец.", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} плащане на година. Спестявате {{save}}.", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} общ обем", "account_upgrade_dialog_tier_price_per_month": "на месец", "account_upgrade_dialog_button_pay_now": "Плащане и абониране", "account_upgrade_dialog_tier_selected_label": "Избрано", "account_upgrade_dialog_button_update_subscription": "Промяна на абонамент", "account_upgrade_dialog_reservations_warning_other": "Избраното ниво разрешава по-малко резервирани теми, от колкото текущото. Преди промяна на нивото изтрийте най-малко {{count}} резервирани теми. Можете да премахвате теми в Настройки.", "account_tokens_table_expires_header": "Изтича", "account_tokens_table_never_expires": "Никога", "prefs_reservations_title": "Резервирани теми", "prefs_reservations_table_click_to_subscribe": "Докоснете, за да се абонирате", "prefs_reservations_dialog_title_delete": "Премахване на резервирането", "prefs_reservations_table_everyone_read_only": "Аз мога да публикувам и да се абонирам, всички останали могат да се абонират", "prefs_reservations_table_not_subscribed": "Без абонамент", "account_tokens_table_token_header": "Код за достъп", "account_tokens_table_create_token_button": "Създаване на код за достъп", "account_tokens_dialog_expires_x_days": "Кодът за достъп изтича след {{days}} дена", "account_tokens_dialog_expires_never": "Кодът за достъп не изтича", "account_tokens_delete_dialog_title": "Премахване на код за достъп", "prefs_reservations_limit_reached": "Достигнахте ограничението за брой резервирани теми.", "prefs_reservations_add_button": "Добавяне на тема", "prefs_reservations_delete_button": "Нулиране на правата за достъп", "prefs_reservations_table": "Списък с резервирани теми", "prefs_reservations_dialog_title_add": "Резервиране на тема", "prefs_reservations_dialog_title_edit": "Променяне на резервирана тема", "account_tokens_table_current_session": "Текущ сеанс на четеца", "account_tokens_table_copied_to_clipboard": "Кодът за достъп е копиран", "account_tokens_table_cannot_delete_or_edit": "Не можете да променяте или премахвате кода за достъп на текущия сеанс", "account_tokens_table_last_origin_tooltip": "От адрес по IP {{ip}}, щракнете за подробности", "account_tokens_dialog_title_create": "Създаване на код за достъп", "account_tokens_dialog_title_edit": "Променяне на код за достъп", "account_tokens_dialog_title_delete": "Премахване на код за достъп", "account_tokens_dialog_label": "Етикет, напр. Известия от Radarr", "account_tokens_dialog_button_create": "Създаване на код за достъп", "account_tokens_dialog_button_update": "Променяне на код за достъп", "account_tokens_dialog_expires_label": "Кодът за достъп изтича след", "account_tokens_dialog_expires_x_hours": "Кодът за достъп изтича след {{hours}} часа", "account_tokens_dialog_expires_unchanged": "Без промяна на давността", "account_tokens_delete_dialog_submit_button": "Безвъзвратно премахване на код за достъп", "prefs_users_description_no_sync": "Потребителите и паролите не се синхронизират заедно с профила.", "prefs_users_table_cannot_delete_or_edit": "Влезлият потребител не може да бъде премахнат", "prefs_reservations_table_everyone_deny_all": "Само аз мога да публикувам и да се абонирам", "prefs_reservations_table_everyone_write_only": "Аз мога да публикувам и да се абонирам, всички останали могат да публикуват", "prefs_reservations_table_everyone_read_write": "Всички могат да публикуват и да се абонират", "reservation_delete_dialog_submit_button": "Премахване на резервирането", "account_tokens_description": "Използвайте код за достъп когато публикувате или се абонирате през ППИ на ntfy, за да не се налага да изпращате потребителско име и парола. Прочетете документацията за повече информация.", "account_tokens_delete_dialog_description": "Преди да премахвате код за достъп се уверете, че не се използва от приложения или скриптове. Действието е необратимо.", "prefs_reservations_dialog_description": "Резервирането ви осигурява собственост върху темата и ви дава възможност да определяте права за достъп от други потребители.", "reservation_delete_dialog_action_keep_title": "Пазене на съобщения и прикачени файлове", "reservation_delete_dialog_action_keep_description": "Съобщенията и прикачените файлове, които са във временната памет на сървъра ще бъдат достъпни за всеки, който знае името на темата.", "reservation_delete_dialog_action_delete_title": "Премахване на съобщения и прикачени файлове", "reservation_delete_dialog_action_delete_description": "Съобщенията и прикачените файлове, които са във временната памет ще бъдат премахнати. Действието е необратимо.", "prefs_reservations_description": "Тук можете да резервирате тема за собствено ползване. Резервирането ви осигурява собственост върху темата и ви дава възможност да определяте права за достъп от други потребители.", "reservation_delete_dialog_description": "С премахването на резервирането вие се отказвате от собствеността върху темата и давате възможност друг потребител да я резервира. Можете да оставите или да премахнете съществуващите съобщения и прикачени файлове.", "alert_notification_permission_denied_description": "Включете ги от мрежовия четец", "alert_notification_permission_denied_title": "Известията са изключени", "notifications_actions_failed_notification": "Действието е неуспешно", "publish_dialog_checkbox_markdown": "Съобщението е Markdown", "prefs_notifications_web_push_disabled_description": "Известията ще бъдат получавани докато приложението за уеб работи (чрез WebSocket)", "prefs_notifications_web_push_enabled": "Включено за {{server}}", "prefs_notifications_web_push_disabled": "Изключено", "prefs_appearance_theme_dark": "Тъмна", "prefs_appearance_theme_light": "Светла", "error_boundary_button_reload_ntfy": "Презареждне на ntfy", "web_push_unknown_notification_title": "Получено е неочаквано известие", "web_push_unknown_notification_body": "Вероятно ще трябва да обновите ntfy като отворите приложението за уеб", "alert_notification_ios_install_required_title": "Необходимо е инсталиране за iOS", "alert_notification_ios_install_required_description": "Докоснете бутона Споделяне и Добавяне към началния екран, за да включите известията под iOS", "subscribe_dialog_subscribe_use_another_background_info": "Известията от други сървъри няма да бъдат получавани ако приложението за уеб не е отворено", "action_bar_mute_notifications": "Заглушаване на известия", "prefs_notifications_web_push_title": "Известия във фонов режим", "prefs_notifications_web_push_enabled_description": "Известията ще бъдат получавани даже и ако приложението за уеб не работи (чрез Web Push)", "prefs_appearance_theme_title": "Цветова тема", "prefs_appearance_theme_system": "Системна (подразбирана)", "web_push_subscription_expiring_title": "Известията временно ще бъдат спрени", "web_push_subscription_expiring_body": "За да продължите да получавате известия, отворете ntfy", "action_bar_unmute_notifications": "Включване звука на известията" } ntfy-2.11.0/web/public/static/langs/cs.json000066400000000000000000000753511462047176100205240ustar00rootroot00000000000000{ "action_bar_settings": "Nastavení", "action_bar_send_test_notification": "Odeslání testovacího oznámení", "action_bar_clear_notifications": "Vymazat všechna oznámení", "action_bar_unsubscribe": "Odhlásit odběr", "message_bar_type_message": "Zde napište zprávu", "message_bar_error_publishing": "Chyba při odesílání oznámení", "nav_topics_title": "Odebíraná témata", "nav_button_all_notifications": "Všechna oznámení", "nav_button_settings": "Nastavení", "nav_button_documentation": "Dokumentace", "nav_button_publish_message": "Odeslat oznámení", "nav_button_subscribe": "Přihlásit se k odběru tématu", "alert_notification_permission_required_title": "Oznámení jsou zakázána", "alert_notification_permission_required_description": "Udělte prohlížeči oprávnění k zobrazování oznámení na ploše.", "alert_notification_permission_required_button": "Udělit nyní", "alert_not_supported_title": "Oznámení nejsou podporována", "alert_not_supported_description": "Oznámení nejsou ve vašem prohlížeči podporována.", "notifications_copied_to_clipboard": "Zkopírováno do schránky", "notifications_tags": "Značky", "notifications_attachment_copy_url_title": "Kopírovat URL přílohy do schránky", "notifications_attachment_copy_url_button": "Kopírovat URL", "notifications_attachment_open_title": "Přejít na {{url}}", "notifications_attachment_open_button": "Otevřít přílohu", "notifications_attachment_link_expires": "platnost odkazu končí {{date}}", "notifications_attachment_link_expired": "platnost odkazu ke stažení vypršela", "notifications_click_copy_url_title": "Kopírovat URL odkazu do schránky", "notifications_click_copy_url_button": "Kopírovat odkaz", "notifications_click_open_button": "Otevřít odkaz", "notifications_none_for_topic_title": "K tomuto tématu jste zatím neobdrželi žádné oznámení.", "notifications_none_for_topic_description": "Pro odeslání oznámení k tomuto tématu, odešlete PUT nebo POST požadavek na URL tématu.", "notifications_example": "Příklad", "publish_dialog_base_url_placeholder": "URL služby, např. https://example.com", "publish_dialog_topic_label": "Název tématu", "publish_dialog_topic_placeholder": "Název tématu, např. phil_alerts", "publish_dialog_priority_default": "Výchozí priorita", "publish_dialog_priority_high": "Vysoká priorita", "publish_dialog_priority_max": "Nevyšší priorita", "publish_dialog_base_url_label": "URL služby", "prefs_users_dialog_password_label": "Heslo", "prefs_users_dialog_title_add": "Přidat uživatele", "prefs_users_dialog_title_edit": "Upravit uživatele", "prefs_users_dialog_base_url_label": "URL služby, např. https://ntfy.sh", "prefs_users_dialog_username_label": "Uživatelské jméno, např. phil", "notifications_actions_open_url_title": "Přejít na {{url}}", "notifications_none_for_any_title": "Neobdrželi jste žádná oznámení.", "notifications_none_for_any_description": "Pro odeslání oznámení k tématu stačí na URL tématu odeslat PUT nebo POST požadavek. Zde je příklad s použitím jednoho z vašich témat.", "notifications_no_subscriptions_description": "Kliknutím na \"{{linktext}}\" vytvoříte téma nebo se k němu přihlásíte. Poté můžete odesílat zprávy prostřednictvím PUT nebo POST požadavků a zde budete dostávat oznámení.", "notifications_more_details": "Další informace naleznete na webových stránkách nebo v dokumentaci.", "publish_dialog_title_topic": "Odeslat do {{téma}}", "publish_dialog_title_no_topic": "Odeslat oznámení", "publish_dialog_progress_uploading": "Nahrávání …", "publish_dialog_message_published": "Oznámení odesláno", "publish_dialog_attachment_limits_file_and_quota_reached": "překračuje {{fileSizeLimit}} limit souboru a kvótu, {{remainingBytes}} zbývá", "publish_dialog_attachment_limits_quota_reached": "překračuje kvótu, {{remainingBytes}} zbývá", "publish_dialog_priority_min": "Nejnižší priorita", "publish_dialog_title_label": "Název", "publish_dialog_title_placeholder": "Název oznámení, např. Upozornění na volné místo na disku", "publish_dialog_message_placeholder": "Zde napište zprávu", "publish_dialog_tags_label": "Značky", "publish_dialog_priority_label": "Priorita", "publish_dialog_click_label": "Klikněte na URL", "publish_dialog_click_placeholder": "Adresa URL, která se otevře po kliknutí na oznámení", "publish_dialog_email_label": "E-mail", "publish_dialog_email_placeholder": "Adresa pro odeslání oznámení, např. phil@example.com", "publish_dialog_attach_label": "URL přílohy", "publish_dialog_filename_label": "Název souboru", "publish_dialog_filename_placeholder": "Název souboru přílohy", "publish_dialog_delay_label": "Zpoždění", "publish_dialog_delay_placeholder": "Zpožděné doručení, např. {{unixTimestamp}}, {{relativeTime}} nebo \"{{naturalLanguage}}\". (pouze v angličtině)", "publish_dialog_chip_click_label": "Klikněte na URL", "publish_dialog_chip_email_label": "Přeposlat na e-mail", "publish_dialog_chip_delay_label": "Zpožděné doručení", "publish_dialog_chip_topic_label": "Změnit téma", "publish_dialog_details_examples_description": "Příklady a podrobný popis všech funkcí odesílání naleznete v dokumentaci.", "publish_dialog_chip_attach_url_label": "Připojit soubor pomocí URL", "publish_dialog_chip_attach_file_label": "Připojit místní soubor", "publish_dialog_button_send": "Odeslat", "publish_dialog_checkbox_publish_another": "Odeslat další", "publish_dialog_attached_file_title": "Přiložený soubor:", "publish_dialog_attached_file_filename_placeholder": "Název souboru přílohy", "publish_dialog_drop_file_here": "Přetáhněte soubor sem", "emoji_picker_search_placeholder": "Hledat emodži", "subscribe_dialog_subscribe_title": "Přihlásit odběr tématu", "subscribe_dialog_subscribe_description": "Témata nemusí být chráněna heslem, proto zvolte název, který není snadné uhodnout. Jakmile se přihlásíte k odběru, můžete odesílat oznámení pomocí PUT/POST požadavků.", "subscribe_dialog_subscribe_topic_placeholder": "Název tématu, např. phil_alerts", "subscribe_dialog_subscribe_use_another_label": "Použít jiný server", "subscribe_dialog_login_title": "Vyžadováno přihlášení", "subscribe_dialog_login_description": "Toto téma je chráněno heslem. Pro přihlášení k odběru zadejte prosím uživatelské jméno a heslo.", "subscribe_dialog_subscribe_button_cancel": "Zrušit", "subscribe_dialog_subscribe_button_subscribe": "Přihlásit odběr", "subscribe_dialog_login_username_label": "Uživatelské jméno, např. phil", "subscribe_dialog_login_password_label": "Heslo", "common_back": "Zpět", "subscribe_dialog_login_button_login": "Přihlásit se", "subscribe_dialog_error_user_not_authorized": "Uživatel {{username}} není autorizován", "subscribe_dialog_error_user_anonymous": "anonymně", "prefs_notifications_title": "Oznámení", "prefs_notifications_sound_description_some": "Oznámení přehrají při doručení zvuk {{sound}}", "prefs_notifications_min_priority_description_x_or_higher": "Zobrazit oznámení, pokud je priorita {{number}} ({{name}}) nebo vyšší", "prefs_notifications_min_priority_description_max": "Zobrazit oznámení, pokud je priorita 5 (nejvyšší)", "prefs_notifications_min_priority_any": "Jakákoli priorita", "prefs_notifications_min_priority_low_and_higher": "Nízká priorita a vyšší", "prefs_notifications_min_priority_default_and_higher": "Výchozí priorita a vyšší", "prefs_notifications_min_priority_high_and_higher": "Vysoká priorita a vyšší", "prefs_notifications_delete_after_three_hours": "Po třech hodinách", "prefs_notifications_delete_after_one_day": "Po jednom dni", "prefs_notifications_delete_after_one_week": "Po jednom týdnu", "prefs_notifications_delete_after_one_month": "Po jednom měsíci", "prefs_notifications_delete_after_never_description": "Oznámení nejsou nikdy automaticky mazána", "prefs_notifications_delete_after_three_hours_description": "Oznámení se automaticky odstraní po třech hodinách", "prefs_notifications_delete_after_one_day_description": "Oznámení se automaticky odstraní po jednom dni", "prefs_notifications_delete_after_one_week_description": "Oznámení se automaticky odstraní po jednom týdnu", "prefs_notifications_delete_after_one_month_description": "Oznámení se automaticky odstraní po jednom měsíci", "prefs_users_title": "Správa uživatelů", "prefs_users_add_button": "Přidat uživatele", "prefs_users_table_user_header": "Uživatel", "prefs_users_table_base_url_header": "URL služby", "common_cancel": "Zrušit", "common_add": "Přidat", "common_save": "Uložit", "priority_min": "nejnižší", "priority_low": "nízká", "priority_default": "výchozí", "priority_high": "vysoká", "priority_max": "nejvyšší", "error_boundary_title": "Ale ne, ntfy havaroval", "error_boundary_description": "K tomu by samozřejmě nemělo docházet. Velmi se za to omlouváme.
      Pokud máte chvilku, nahlaste to prosím na GitHubu nebo nám dejte vědět prostřednictvím Discordu nebo Matrixu.", "error_boundary_button_copy_stack_trace": "Kopírovat výpis zásobníku", "error_boundary_stack_trace": "Výpis zásobníku", "publish_dialog_tags_placeholder": "Seznam značek oddělených čárkou, např. warning, srv1-backup", "notifications_actions_not_supported": "Akce není podporována ve webové aplikaci", "notifications_actions_http_request_title": "Odeslat HTTP {{metoda}} na {{url}}", "notifications_no_subscriptions_title": "Vypadá to, že ještě nemáte žádné odběry.", "prefs_notifications_min_priority_description_any": "Zobrazit všechna oznámení bez ohledu na prioritu", "publish_dialog_priority_low": "Nízká priorita", "publish_dialog_message_label": "Zpráva", "publish_dialog_button_cancel": "Zrušit", "notifications_loading": "Načítání oznámení …", "publish_dialog_progress_uploading_detail": "Nahrávání {{loaded}}/{{total}} ({{percent}}%) …", "publish_dialog_attachment_limits_file_reached": "překračuje {{fileSizeLimit}} limit souboru", "publish_dialog_attach_placeholder": "Připojit soubor pomocí URL, např. https://f-droid.org/F-Droid.apk", "publish_dialog_button_cancel_sending": "Zrušit odesílání", "publish_dialog_other_features": "Další funkce:", "prefs_notifications_sound_title": "Zvuk oznámení", "prefs_notifications_min_priority_max_only": "Pouze nejvyšší priorita", "prefs_notifications_min_priority_title": "Nejnižší priorita", "prefs_notifications_delete_after_title": "Odstranit oznámení", "prefs_notifications_delete_after_never": "Nikdy", "prefs_notifications_sound_no_sound": "Žádný zvuk", "prefs_notifications_sound_description_none": "Oznámení nepřehrají při doručení žádný zvuk", "prefs_users_description": "Zde můžete přidávat/odebírat uživatele pro chráněná témata. Upozorňujeme, že uživatelské jméno a heslo jsou uloženy v místním úložišti prohlížeče.", "error_boundary_gathering_info": "Získejte více informací …", "prefs_appearance_language_title": "Jazyk", "prefs_appearance_title": "Vzhled", "action_bar_show_menu": "Zobrazit nabídku", "action_bar_logo_alt": "logo ntfy", "action_bar_toggle_mute": "Ztlumení/zrušení ztlumení oznámení", "action_bar_toggle_action_menu": "Otevřít/zavřít nabídku akcí", "message_bar_show_dialog": "Zobrazit okno pro odesílání oznámení", "message_bar_publish": "Odeslat zprávu", "nav_button_muted": "Oznámení ztlumena", "nav_button_connecting": "připojování", "notifications_list": "Seznam oznámení", "notifications_list_item": "Oznámení", "notifications_mark_read": "Označit jako přečtené", "notifications_delete": "Smazat", "notifications_new_indicator": "Nové oznámení", "notifications_attachment_image": "Obrázek přílohy", "notifications_attachment_file_image": "soubor s obrázkem", "notifications_attachment_file_video": "video soubor", "notifications_attachment_file_audio": "zvukový soubor", "notifications_attachment_file_app": "Soubor s aplikací pro Android", "publish_dialog_emoji_picker_show": "Vybrat emoji", "publish_dialog_topic_reset": "Obnovení tématu", "publish_dialog_click_reset": "Odebrat URL kliknutím", "publish_dialog_email_reset": "Odebrat přeposlání e-mailu", "publish_dialog_attach_reset": "Odebrat URL přílohy", "publish_dialog_attached_file_remove": "Odebrat přiložený soubor", "emoji_picker_search_clear": "Vyčistit vyhledávání", "prefs_users_edit_button": "Upravit uživatele", "prefs_users_delete_button": "Odstranit uživatele", "error_boundary_unsupported_indexeddb_title": "Soukromé prohlížení není podporováno", "error_boundary_unsupported_indexeddb_description": "Webová aplikace ntfy potřebuje ke svému fungování databázi IndexedDB a váš prohlížeč v režimu soukromého prohlížení databázi IndexedDB nepodporuje.

      To je sice nepříjemné, ale používat webovou aplikaci ntfy v režimu soukromého prohlížení stejně nemá smysl, protože vše je uloženo v úložišti prohlížeče. Více se o tom můžete dočíst v tomto tématu na GitHubu, nebo se na nás obrátit pomocí služeb Discord nebo Matrix.", "notifications_priority_x": "Priorita {{priority}}", "subscribe_dialog_subscribe_base_url_label": "URL služby", "prefs_notifications_sound_play": "Přehrát vybraný zvuk", "prefs_users_table": "Tabulka uživatelů", "notifications_attachment_file_document": "jiný dokument", "publish_dialog_delay_reset": "Odebrat odložené doručení", "signup_form_confirm_password": "Potvrdit heslo", "signup_form_button_submit": "Zaregistrovat se", "signup_form_username": "Uživatelské jméno", "signup_form_toggle_password_visibility": "Přepnout viditelnost hesla", "signup_already_have_account": "Už máte účet? Přihlašte se!", "signup_error_username_taken": "Uživatelské jméno {{username}} je již obsazeno", "signup_error_creation_limit_reached": "Dosažen limit pro vytvoření účtu", "login_title": "Přihlaste se do svého ntfy účtu", "login_form_button_submit": "Přihlásit se", "login_link_signup": "Zaregistrovat se", "login_disabled": "Přihlašování je zakázáno", "action_bar_account": "Účet", "action_bar_reservation_add": "Rezervovat téma", "action_bar_reservation_edit": "Změnit rezervaci", "action_bar_reservation_delete": "Odstranit rezervaci", "action_bar_reservation_limit_reached": "Limit dosažen", "action_bar_profile_title": "Profil", "action_bar_profile_settings": "Nastavení", "action_bar_profile_logout": "Odhlásit se", "action_bar_sign_up": "Zaregistrovat se", "nav_button_account": "Účet", "nav_upgrade_banner_label": "Upgradovat na nfty Pro", "nav_upgrade_banner_description": "Rezervace témat, více zpráv a emailů a větší přílohy", "signup_title": "Vytvořit nfty účet", "signup_form_password": "Heslo", "display_name_dialog_description": "Nastaví alternativní název pro téma, které se zobrazí v seznamu odběrů. Toto pomáhá jednodušeji identifikovat témata s komplikovanými jmény.", "action_bar_change_display_name": "Změnit zobrazovaný název", "action_bar_sign_in": "Přihlásit se", "alert_not_supported_context_description": "Oznámení jsou podporována pouze přes HTTPS. Toto je limitace Notifications API.", "display_name_dialog_title": "Změnit zobrazovaný název", "account_basics_password_title": "Heslo", "account_basics_password_dialog_title": "Změna hesla", "subscribe_dialog_error_topic_already_reserved": "Téma již rezervováno", "subscribe_dialog_subscribe_button_generate_topic_name": "Generovat název", "account_delete_dialog_description": "Dojde k trvalému odstranění vašeho účtu včetně všech dat uložených na serveru. Po smazání bude vaše uživatelské jméno po dobu 7 dnů nedostupné. Pokud opravdu chcete pokračovat, potvrďte prosím své heslo.", "account_basics_tier_admin_suffix_with_tier": "(s úrovní {{tier}})", "account_basics_tier_admin": "Administrátor", "account_basics_tier_basic": "Základní", "account_basics_tier_free": "Zdarma", "account_basics_tier_admin_suffix_no_tier": "(žádná úroveň)", "account_basics_tier_upgrade_button": "Přejít na verzi Pro", "account_upgrade_dialog_cancel_warning": "Vaše předplatné se tímto zruší a váš účet se k datu {{date}} degraduje na nižší úroveň. K tomuto datu budou smazány rezervace témat i zprávy uložené v mezipaměti serveru.", "account_upgrade_dialog_reservations_warning_other": "Vybraná úroveň umožňuje méně rezervovaných témat než vaše aktuální úroveň. Před změnou úrovně odstraňte alespoň {{počet}} rezervací. Rezervace můžete odstranit v Nastavení.", "reservation_delete_dialog_description": "Odstraněním rezervace se vzdáte vlastnictví tématu a umožníte ostatním, aby si ho rezervovali. Stávající zprávy a přílohy si můžete ponechat nebo je odstranit.", "account_tokens_description": "Při publikování a odběru prostřednictvím rozhraní ntfy API používejte přístupové tokeny, abyste nemuseli odesílat přihlašovací údaje k účtu. Více informací najdete v dokumentaci.", "account_tokens_table_copied_to_clipboard": "Přístupový token zkopírován", "account_tokens_table_last_origin_tooltip": "Z IP adresy {{ip}}, klikněte pro vyhledání", "account_tokens_dialog_button_cancel": "Zrušit", "account_tokens_dialog_expires_never": "Token nikdy nevyprší", "account_tokens_delete_dialog_description": "Před odstraněním přístupového tokenu se ujistěte, že jej aktivně nepoužívají žádné aplikace ani skripty. Tuto akci nelze vrátit zpět.", "prefs_users_description_no_sync": "Uživatelé a hesla nejsou synchronizováni s vaším účtem.", "prefs_users_table_cannot_delete_or_edit": "Nelze odstranit ani upravit přihlášeného uživatele", "prefs_reservations_title": "Rezervovaná témata", "prefs_reservations_description": "Zde si můžete rezervovat názvy témat pro osobní použití. Rezervací tématu získáte vlastnické právo k tématu a můžete definovat přístupová práva pro ostatní uživatele k tématu.", "prefs_reservations_table_click_to_subscribe": "Kliknutím se přihlásíte k odběru", "prefs_reservations_dialog_description": "Rezervací tématu získáte vlastnictví tématu a můžete definovat přístupová oprávnění pro ostatní uživatele.", "prefs_reservations_dialog_access_label": "Přístup", "reservation_delete_dialog_action_keep_title": "Zachovat zprávy a přílohy v mezipaměti", "signup_disabled": "Přihlášení je zakázáno", "display_name_dialog_placeholder": "Zobrazovaný název", "reserve_dialog_checkbox_label": "Rezervace tématu a nastavení přístupu", "account_basics_title": "Účet", "account_basics_username_title": "Uživatelské jméno", "account_basics_username_description": "Hej, to jsi ty ❤", "account_basics_username_admin_tooltip": "Jste správce", "account_basics_password_description": "Změna hesla k účtu", "account_basics_password_dialog_current_password_label": "Současné heslo", "account_basics_password_dialog_new_password_label": "Nové heslo", "account_basics_password_dialog_confirm_password_label": "Potvrzení hesla", "account_basics_password_dialog_button_submit": "Změnit heslo", "account_basics_password_dialog_current_password_incorrect": "Nesprávné heslo", "account_usage_title": "Použití", "account_usage_of_limit": "z {{limit}}", "account_usage_unlimited": "Neomezeně", "account_usage_limits_reset_daily": "Limity používání se resetují denně o půlnoci (UTC)", "account_basics_tier_title": "Typ účtu", "account_basics_tier_description": "Úroveň oprávnění vašeho účtu", "account_basics_tier_change_button": "Změnit", "account_basics_tier_paid_until": "Předplatné zaplaceno do {{date}} a bude automaticky obnoveno", "account_basics_tier_payment_overdue": "Vaše platba je po splatnosti. Aktualizujte prosím svůj způsob platby, jinak bude váš účet brzy degradován.", "account_basics_tier_canceled_subscription": "Vaše předplatné bylo zrušeno a ke dni {{date}} bude převedeno na bezplatný účet.", "account_basics_tier_manage_billing_button": "Správa vyúčtování", "account_usage_messages_title": "Zveřejněné zprávy", "account_usage_emails_title": "Odeslané e-maily", "account_usage_reservations_title": "Rezervovaná témata", "account_usage_reservations_none": "Žádná rezervovaná témata pro tento účet", "account_usage_attachment_storage_title": "Úložiště příloh", "account_usage_attachment_storage_description": "{{filesize}} na soubor, maže se po {{expiry}}", "account_usage_basis_ip_description": "Statistiky a limity používání tohoto účtu jsou založeny na vaší IP adrese, takže mohou být sdíleny s ostatními uživateli. Výše uvedené limity jsou přibližné a vycházejí ze stávajících limitů.", "account_usage_cannot_create_portal_session": "Nelze otevřít portál pro fakturaci", "account_delete_title": "Odstranit účet", "account_delete_description": "Trvale odstranit účet", "account_delete_dialog_label": "Heslo", "account_delete_dialog_button_cancel": "Zrušit", "account_delete_dialog_button_submit": "Trvale odstranit účet", "account_delete_dialog_billing_warning": "Odstraněním účtu se také okamžitě zruší vaše předplatné. Nebudete již mít přístup k fakturačnímu panelu.", "account_upgrade_dialog_title": "Změna úrovně účtu", "account_upgrade_dialog_proration_info": "Prohlášení: Při přechodu mezi placenými úrovněmi bude rozdíl v ceně zaúčtován okamžitě. Při přechodu na nižší úroveň se zůstatek použije na platbu za budoucí zúčtovací období.", "account_upgrade_dialog_reservations_warning_one": "Vybraná úroveň umožňuje méně rezervovaných témat než vaše aktuální úroveň. Než změníte svou úroveň, odstraňte alespoň jednu rezervaci. Rezervace můžete odstranit v Nastavení.", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} rezervovaných témat", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} denních zpráv", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} denních e-mailů", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} na soubor", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} celkový úložný prostor", "account_upgrade_dialog_tier_selected_label": "Vybráno", "account_upgrade_dialog_tier_current_label": "Současné", "account_upgrade_dialog_button_cancel": "Zrušit", "account_upgrade_dialog_button_redirect_signup": "Zaregistrovat se nyní", "account_upgrade_dialog_button_pay_now": "Zaplatit a předplatit si", "account_upgrade_dialog_button_cancel_subscription": "Zrušit předplatné", "account_upgrade_dialog_button_update_subscription": "Aktualizovat předplatné", "account_tokens_title": "Přístupové tokeny", "account_tokens_table_token_header": "Token", "account_tokens_table_last_access_header": "Poslední přístup", "account_tokens_table_expires_header": "Vyprší", "account_tokens_table_never_expires": "Nikdy nevyprší", "account_tokens_table_current_session": "Současná relace prohlížeče", "common_copy_to_clipboard": "Kopírování do schránky", "account_tokens_table_label_header": "Popisek", "account_tokens_table_cannot_delete_or_edit": "Nelze upravit nebo odstranit aktuální token relace", "account_tokens_table_create_token_button": "Vytvořit přístupový token", "account_tokens_dialog_title_create": "Vytvoření přístupového tokenu", "account_tokens_dialog_title_edit": "Úprava přístupového tokenu", "account_tokens_dialog_title_delete": "Odstranění přístupového tokenu", "account_tokens_dialog_label": "Popisek, např. Radarr notifications", "account_tokens_dialog_button_create": "Vytvořit token", "account_tokens_dialog_button_update": "Aktualizovat token", "account_tokens_dialog_expires_label": "Platnost přístupového tokenu vyprší za", "account_tokens_dialog_expires_unchanged": "Ponechat datum vypršení platnosti beze změny", "account_tokens_dialog_expires_x_hours": "Token vyprší za {{hours}} hodin", "account_tokens_dialog_expires_x_days": "Token vyprší za {{days}} dní", "account_tokens_delete_dialog_title": "Odstranění přístupového tokenu", "account_tokens_delete_dialog_submit_button": "Trvale odstranit token", "prefs_reservations_limit_reached": "Dosáhli jste limitu rezervovaných témat.", "prefs_reservations_add_button": "Přidat rezervované téma", "prefs_reservations_edit_button": "Upravit přístup k tématu", "prefs_reservations_delete_button": "Resetovat přístup k tématu", "prefs_reservations_table": "Tabulka rezervovaných témat", "prefs_reservations_table_topic_header": "Téma", "prefs_reservations_table_access_header": "Přístup", "prefs_reservations_table_everyone_deny_all": "Pouze já mohu publikovat a přihlásit se k odběru", "prefs_reservations_table_everyone_read_only": "Mohu publikovat a přihlásit se k odběru, kdokoli se může přihlásit k odběru", "prefs_reservations_table_everyone_write_only": "Mohu publikovat a přihlásit se k odběru, kdokoli může publikovat", "prefs_reservations_table_everyone_read_write": "Kdokoli může publikovat a přihlásit se k odběru", "prefs_reservations_table_not_subscribed": "Odběr není přihlášen", "prefs_reservations_dialog_title_add": "Rezervovat téma", "prefs_reservations_dialog_title_edit": "Úprava rezervovaného tématu", "prefs_reservations_dialog_title_delete": "Odstranění rezervovaného tématu", "prefs_reservations_dialog_topic_label": "Téma", "reservation_delete_dialog_action_keep_description": "Zprávy a přílohy, které jsou uloženy v mezipaměti serveru, se stanou veřejně viditelnými pro osoby, které znají název tématu.", "reservation_delete_dialog_action_delete_title": "Odstranění zpráv a příloh uložených v mezipaměti", "reservation_delete_dialog_action_delete_description": "Zprávy a přílohy uložené v mezipaměti budou trvale odstraněny. Tuto akci nelze vrátit zpět.", "reservation_delete_dialog_submit_button": "Odstranit rezervaci", "account_basics_tier_interval_yearly": "roční", "account_upgrade_dialog_interval_yearly_discount_save": "ušetříte {{discount}}%", "account_upgrade_dialog_tier_price_per_month": "měsíc", "account_upgrade_dialog_tier_features_no_reservations": "Žádná rezervovaná témata", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "ušetříte až {{discount}}%", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} účtováno ročně. Ušetříte {{save}}.", "account_basics_tier_interval_monthly": "měsíční", "account_upgrade_dialog_interval_monthly": "Měsíční", "account_upgrade_dialog_interval_yearly": "Roční", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} za rok. Účtuje se měsíčně.", "account_upgrade_dialog_billing_contact_email": "V případě dotazů týkajících se fakturace nás prosím kontaktujte přímo.", "account_upgrade_dialog_billing_contact_website": "Otázky týkající se fakturace naleznete na našich webových stránkách.", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} rezervované téma", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} denní zpráva", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} denní e-mail", "publish_dialog_call_label": "Telefonát", "publish_dialog_call_reset": "Odstranit telefonát", "publish_dialog_chip_call_label": "Telefonát", "account_basics_phone_numbers_title": "Telefonní čísla", "account_basics_phone_numbers_dialog_description": "Pro oznámení prostřednictvím tel. hovoru, musíte přidat a ověřit alespoň jedno telefonní číslo. Ověření lze provést pomocí SMS nebo telefonátu.", "account_basics_phone_numbers_description": "K oznámení telefonátem", "account_basics_phone_numbers_no_phone_numbers_yet": "Zatím žádná telefonní čísla", "account_basics_phone_numbers_copied_to_clipboard": "Telefonní číslo zkopírováno do schránky", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Žádná ověřená telefonní čísla", "publish_dialog_call_item": "Vytočit číslo {{number}}", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_basics_phone_numbers_dialog_title": "Přidat telefonní číslo", "account_basics_phone_numbers_dialog_number_label": "Telefonní číslo", "account_basics_phone_numbers_dialog_code_placeholder": "např. 123456", "account_basics_phone_numbers_dialog_code_label": "Ověřovací kód", "account_usage_calls_none": "S tímto účtem nelze uskutečňovat žádné telefonní hovory", "account_basics_phone_numbers_dialog_check_verification_button": "Potvrdit kód", "account_basics_phone_numbers_dialog_number_placeholder": "např. +1222333444", "account_basics_phone_numbers_dialog_verify_button_sms": "Odeslat SMS", "account_basics_phone_numbers_dialog_verify_button_call": "Zavolat mi", "account_basics_phone_numbers_dialog_channel_call": "Zavolat", "account_usage_calls_title": "Uskutečněné telefonáty", "account_upgrade_dialog_tier_features_no_calls": "Žádné telefonní hovory", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} denní telefonní hovor", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} denních telefonních hovorů" } ntfy-2.11.0/web/public/static/langs/cy.json000066400000000000000000000046211462047176100205220ustar00rootroot00000000000000{ "notifications_delete": "Dileu", "action_bar_sign_in": "Mewngofnodi", "notifications_copied_to_clipboard": "Wedi'i gopio i'r clipfwrdd", "common_cancel": "Canslo", "nav_button_account": "Cyfrif", "common_save": "Arbed", "common_add": "Ychwanegu", "signup_title": "Creu cyfrif ntfy", "signup_form_username": "Enw defnyddiwr", "signup_form_password": "Cyfrinair", "action_bar_logo_alt": "logo ntfy", "action_bar_settings": "Gosodiadau", "action_bar_profile_title": "Proffil", "action_bar_profile_logout": "Allgofnodi", "message_bar_publish": "Cyhoeddi neges", "notifications_attachment_copy_url_button": "Copio URL", "notifications_attachment_open_title": "Ewch i {{url}}", "publish_dialog_base_url_label": "URL y Gwasanaeth", "publish_dialog_priority_high": "Blaenoriaeth uchel", "publish_dialog_title_label": "Teitl", "publish_dialog_message_label": "Neges", "publish_dialog_attach_label": "URL Atodiad", "publish_dialog_filename_label": "Enw ffeil", "publish_dialog_filename_placeholder": "Enw ffeil yr atodiad", "action_bar_account": "Cyfrif", "action_bar_unsubscribe": "Dad-danysgrifio", "login_title": "Mewngofnodi i'ch cyfrif ntfy", "login_form_button_submit": "Mewngofnodi", "action_bar_change_display_name": "Newid enw arddangos", "action_bar_profile_settings": "Gosodiadau", "nav_button_settings": "Gosodiadau", "nav_button_documentation": "Dogfennaeth", "alert_not_supported_context_description": "Dim ond dros HTTPS y gellir derbyn cyhoeddiadau. Mae hyn yn gyfyngiad ar yr API Notifications.", "notifications_attachment_open_button": "Agor atodiad", "notifications_attachment_file_document": "dogfen arall", "notifications_click_open_button": "Agor linc", "publish_dialog_base_url_placeholder": "URL y Gwasanaeth, e.e. https://example.com", "publish_dialog_attach_placeholder": "Atodi ffeil drwy URL, e.e. https://f-droid.org/F-Droid.apk", "notifications_click_copy_url_button": "Copio linc", "notifications_actions_open_url_title": "Ewch i {{url}}", "publish_dialog_email_label": "Ebost", "signup_form_confirm_password": "Cadarnhau cyfrinair", "signup_form_button_submit": "Cofrestru", "common_back": "Yn ôl", "common_copy_to_clipboard": "Copio i'r clipfwrdd", "signup_already_have_account": "Gyda chyfrif yn barod? Mewngofnodi!" } ntfy-2.11.0/web/public/static/langs/da.json000066400000000000000000000723251462047176100205010ustar00rootroot00000000000000{ "common_save": "Gem", "common_add": "Tilføj", "signup_title": "Opret en ntfy-konto", "signup_form_username": "Brugernavn", "signup_form_password": "Kodeord", "signup_form_confirm_password": "Bekræft kodeord", "common_cancel": "Annuller", "action_bar_account": "Konto", "signup_error_username_taken": "Brugernavnet {{username}} er optaget", "login_form_button_submit": "Log ind", "action_bar_show_menu": "Vis menu", "action_bar_logo_alt": "ntfy-logo", "action_bar_settings": "Indstillinger", "signup_form_button_submit": "Opret konto", "signup_form_toggle_password_visibility": "Skift synlighed af adgangskode", "signup_disabled": "Tilmelding er deaktiveret", "signup_error_creation_limit_reached": "Grænsen for kontooprettelse er nået", "login_title": "Log ind på din ntfy-konto", "login_link_signup": "Opret konto", "login_disabled": "Login er deaktiveret", "action_bar_reservation_add": "Reserver emne", "action_bar_reservation_edit": "Rediger reservation", "action_bar_reservation_delete": "Fjern reservation", "action_bar_reservation_limit_reached": "Grænsen er nået", "action_bar_send_test_notification": "Send testnotifikation", "action_bar_unsubscribe": "Afmeld", "action_bar_toggle_mute": "Slå lyden fra/til for notifikationer", "action_bar_change_display_name": "Skift visningsnavn", "action_bar_toggle_action_menu": "Åben/luk handlingsmenu", "action_bar_profile_title": "Profil", "action_bar_profile_settings": "Indstillinger", "action_bar_profile_logout": "Log ud", "action_bar_sign_in": "Log ind", "action_bar_sign_up": "Opret konto", "message_bar_type_message": "Skriv en besked her", "nav_button_settings": "Indstillinger", "message_bar_publish": "Udgiv besked", "nav_topics_title": "Tilmeldte emner", "nav_button_all_notifications": "Alle notifikationer", "nav_button_connecting": "forbinder", "nav_upgrade_banner_label": "Opgrader til ntfy Pro", "alert_notification_permission_required_title": "Notifikationer er deaktiveret", "alert_notification_permission_required_description": "Giv din browser tilladelse til at vise skrivebordsnotifikationer.", "alert_not_supported_title": "Notifikationer understøttes ikke", "alert_not_supported_description": "Notifikationer understøttes ikke i din browser.", "alert_not_supported_context_description": "Notifikationer understøttes kun via HTTPS. Dette skyldes en begrænsning i Notifications API.", "nav_button_subscribe": "Abonner på emne", "notifications_list_item": "Notifikation", "notifications_delete": "Slet", "notifications_tags": "Tags", "notifications_list": "Notifikationsliste", "notifications_mark_read": "Marker som læst", "notifications_copied_to_clipboard": "Kopieret til udklipsholder", "notifications_priority_x": "Prioritet {{priority}}", "notifications_attachment_copy_url_title": "Kopier URL-adresse til vedhæftet fil til udklipsholder", "notifications_attachment_copy_url_button": "Kopier URL", "notifications_attachment_open_title": "Gå til {{url}}", "notifications_attachment_open_button": "Åben vedhæftning", "notifications_attachment_link_expires": "link udløber {{date}}", "notifications_attachment_link_expired": "download-link er udløbet", "notifications_attachment_file_image": "billedfil", "notifications_attachment_file_app": "Android-appfil", "notifications_attachment_file_document": "andet dokument", "notifications_click_copy_url_title": "Kopier linkets URL til udklipsholderen", "notifications_click_copy_url_button": "Kopier link", "notifications_example": "Eksempel", "notifications_click_open_button": "Åbn link", "notifications_actions_not_supported": "Handlingen understøttes ikke i webappen", "notifications_actions_http_request_title": "Send HTTP {{method}} til {{url}}", "notifications_none_for_topic_title": "Du har ikke modtaget nogen notifikationer om dette emne endnu.", "notifications_none_for_any_title": "Du har ikke modtaget nogen notifikationer.", "display_name_dialog_placeholder": "Vist navn", "publish_dialog_progress_uploading": "Uploader…", "display_name_dialog_title": "Skift visningsnavn", "publish_dialog_progress_uploading_detail": "Uploader {{loaded}}/{{total}} ({{percent}}%) …", "publish_dialog_emoji_picker_show": "Vælg emoji", "publish_dialog_priority_min": "Min. prioritet", "publish_dialog_priority_low": "Lav prioritet", "publish_dialog_priority_default": "Standardprioritet", "publish_dialog_priority_high": "Høj prioritet", "publish_dialog_title_label": "Titel", "publish_dialog_message_label": "Besked", "publish_dialog_tags_label": "Tags", "publish_dialog_priority_label": "Prioritet", "publish_dialog_message_placeholder": "Skriv en besked her", "publish_dialog_tags_placeholder": "Komma-separeret liste over tags, f.eks. warning, srv1-backup", "publish_dialog_click_label": "Klik på URL", "publish_dialog_email_reset": "Fjern videresendelse af e-mail", "publish_dialog_attach_placeholder": "Vedhæft fil via URL, f.eks. https://f-droid.org/F-Droid.apk", "publish_dialog_delay_label": "Forsinkelse", "publish_dialog_button_send": "Send", "subscribe_dialog_subscribe_button_subscribe": "Tilmeld", "common_back": "Tilbage", "subscribe_dialog_login_username_label": "Brugernavn, f.eks. phil", "account_basics_title": "Konto", "subscribe_dialog_error_topic_already_reserved": "Emnet er allerede reserveret", "account_basics_username_admin_tooltip": "Du er Admin", "account_basics_password_dialog_confirm_password_label": "Bekræft kodeord", "account_basics_password_dialog_current_password_incorrect": "Forkert kodeord", "account_usage_of_limit": "af {{limit}}", "account_basics_tier_basic": "Grundlæggende", "account_basics_tier_free": "Gratis", "account_basics_tier_admin_suffix_no_tier": "(intet niveau)", "account_basics_tier_admin_suffix_with_tier": "(med {{tier}}} niveau)", "account_usage_messages_title": "Udgivne beskeder", "account_delete_dialog_button_submit": "Slet konto permanent", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} pr. fil", "account_upgrade_dialog_button_redirect_signup": "Tilmeld dig nu", "account_tokens_table_expires_header": "Udløber", "account_tokens_table_last_access_header": "Seneste adgang", "account_tokens_delete_dialog_title": "Slet adgangstoken", "prefs_notifications_sound_no_sound": "Ingen lyd", "prefs_notifications_min_priority_title": "Minimumsprioritet", "prefs_notifications_sound_play": "Afspil den valgte lyd", "prefs_notifications_min_priority_max_only": "Kun maks. prioritet", "prefs_notifications_delete_after_three_hours": "Efter tre timer", "prefs_users_add_button": "Tilføj bruger", "prefs_users_dialog_title_edit": "Rediger bruger", "prefs_reservations_title": "Reserverede emner", "prefs_reservations_add_button": "Tilføj reserveret emne", "prefs_reservations_table_access_header": "Adgang", "prefs_reservations_delete_button": "Nulstil emneadgang", "prefs_reservations_dialog_title_edit": "Rediger reserveret emne", "prefs_reservations_dialog_access_label": "Adgang", "prefs_reservations_dialog_title_delete": "Slet emnereservation", "priority_low": "lav", "priority_min": "min", "reservation_delete_dialog_submit_button": "Slet reservation", "priority_high": "høj", "priority_max": "maks", "error_boundary_stack_trace": "Strack trace", "error_boundary_button_copy_stack_trace": "Kopier stack trace", "signup_already_have_account": "Har du allerede en konto? Log ind!", "action_bar_clear_notifications": "Ryd alle notifikationer", "notifications_new_indicator": "Ny notifikation", "notifications_attachment_image": "Vedhæftet billede", "account_delete_dialog_label": "Kodeord", "error_boundary_unsupported_indexeddb_title": "Privat browsing understøttes ikke", "notifications_actions_open_url_title": "Gå til {{url}}", "notifications_attachment_file_audio": "lydfil", "publish_dialog_click_placeholder": "URL der åbnes, når der klikkes på notifikationen", "publish_dialog_email_placeholder": "Adresse, som meddelelsen skal videresendes til, f.eks. phil@example.com", "notifications_attachment_file_video": "videofil", "account_basics_tier_title": "Kontotype", "publish_dialog_filename_label": "Filnavn", "account_basics_tier_manage_billing_button": "Administrer fakturering", "account_usage_emails_title": "Afsendte e-mails", "account_usage_reservations_title": "Reserverede emner", "account_delete_title": "Slet konto", "nav_button_account": "Konto", "nav_button_documentation": "Dokumentation", "publish_dialog_priority_max": "Maks. prioritet", "account_upgrade_dialog_button_cancel_subscription": "Opsig abonnement", "account_upgrade_dialog_button_update_subscription": "Opdater abonnement", "publish_dialog_button_cancel": "Annuller", "publish_dialog_email_label": "Email", "account_tokens_title": "Adgangstokens", "account_tokens_table_never_expires": "Udløber aldrig", "prefs_notifications_sound_title": "Notifikationslyd", "account_tokens_dialog_button_update": "Opdater token", "account_tokens_dialog_button_create": "Opret token", "subscribe_dialog_subscribe_button_cancel": "Annuller", "prefs_users_table_user_header": "Bruger", "prefs_appearance_title": "Udseende", "subscribe_dialog_login_button_login": "Log ind", "subscribe_dialog_login_password_label": "Kodeord", "subscribe_dialog_error_user_anonymous": "anonym", "account_usage_title": "Anvendelse", "account_basics_username_title": "Brugernavn", "account_basics_tier_admin": "Admin", "account_basics_password_title": "Kodeord", "account_upgrade_dialog_tier_selected_label": "Valgt", "account_usage_unlimited": "Ubegrænset", "account_tokens_table_label_header": "Label", "account_tokens_dialog_button_cancel": "Annuller", "account_basics_tier_change_button": "Rediger", "account_delete_dialog_button_cancel": "Annuller", "account_upgrade_dialog_button_cancel": "Annuller", "account_tokens_table_token_header": "Token", "account_upgrade_dialog_tier_current_label": "Nuværende", "prefs_notifications_title": "Notifikationer", "prefs_notifications_delete_after_never": "Aldrig", "prefs_reservations_table_topic_header": "Emne", "prefs_users_dialog_password_label": "Kodeord", "prefs_appearance_language_title": "Sprog", "prefs_reservations_dialog_topic_label": "Emne", "priority_default": "standard", "publish_dialog_attached_file_remove": "Fjern vedhæftet fil", "prefs_users_table": "Bruger tabel", "prefs_users_edit_button": "Rediger bruger", "prefs_users_dialog_title_add": "Tilføj bruger", "prefs_users_delete_button": "Slet bruger", "account_tokens_table_copied_to_clipboard": "Adgangstoken kopieret", "prefs_notifications_min_priority_any": "Enhver prioritet", "prefs_notifications_delete_after_title": "Slet notifikationer", "publish_dialog_delay_reset": "Fjern forsinket levering", "prefs_users_title": "Administrer brugere", "account_basics_password_dialog_button_submit": "Skift kodeord", "prefs_reservations_dialog_title_add": "Reserver emne", "account_basics_password_dialog_current_password_label": "Nuværende kodeord", "account_basics_password_dialog_new_password_label": "Nyt kodeord", "notifications_loading": "Indlæser notifikationer…", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} daglige e-mails", "account_tokens_table_create_token_button": "Opret adgangstoken", "account_tokens_dialog_title_delete": "Slet adgangstoken", "publish_dialog_chip_email_label": "Videresend til e-mail", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} samlet lagerplads", "subscribe_dialog_subscribe_use_another_label": "Brug en anden server", "account_basics_tier_upgrade_button": "Opgrader til Pro", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} daglige beskeder", "common_copy_to_clipboard": "Kopier til udklipsholder", "prefs_reservations_edit_button": "Rediger emneadgang", "account_upgrade_dialog_title": "Skift kontoniveau", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} reserverede emner", "account_tokens_dialog_expires_never": "Token udløber aldrig", "account_tokens_table_current_session": "Nuværende browsersession", "account_tokens_dialog_title_edit": "Rediger adgangstoken", "account_tokens_dialog_title_create": "Opret adgangstoken", "prefs_notifications_delete_after_one_day": "Efter en dag", "account_tokens_delete_dialog_submit_button": "Slet token permanent", "prefs_notifications_delete_after_one_month": "Efter en måned", "prefs_notifications_delete_after_one_week": "Efter en uge", "prefs_users_dialog_username_label": "Brugernavn, f.eks. phil", "prefs_notifications_delete_after_one_day_description": "Notifikationer slettes automatisk efter en dag", "notifications_none_for_topic_description": "For at sende en notifikation til dette emne, skal du blot sende en PUT eller POST til emne-URL'en.", "notifications_none_for_any_description": "For at sende en notifikation til et emne, skal du blot sende en PUT eller POST til emne-URL'en. Her er et eksempel med et af dine emner.", "notifications_no_subscriptions_title": "Det ser ud til, at du ikke har nogen abonnementer endnu.", "notifications_more_details": "For mere information, se webstedet eller dokumentationen.", "display_name_dialog_description": "Angiv et alternativt navn for et emne, der vises på abonnementslisten. Dette gør det nemmere at identificere emner med komplicerede navne.", "reserve_dialog_checkbox_label": "Reserver emne og konfigurer adgang", "publish_dialog_attachment_limits_file_reached": "overskrider {{fileSizeLimit}} filgrænse", "publish_dialog_attachment_limits_quota_reached": "overskrider kvote, {{remainingBytes}} tilbage", "publish_dialog_topic_label": "Emnenavn", "publish_dialog_topic_placeholder": "Emnenavn, f.eks. phil_alerts", "publish_dialog_topic_reset": "Nulstil emne", "publish_dialog_click_reset": "Fjern klik-URL", "publish_dialog_delay_placeholder": "Forsink levering, f.eks. {{unixTimestamp}}, {{relativeTime}} eller \"{{naturalLanguage}}\" (kun på engelsk)", "publish_dialog_other_features": "Andre funktioner:", "publish_dialog_chip_attach_url_label": "Vedhæft fil via URL", "publish_dialog_chip_attach_file_label": "Vedhæft lokal fil", "publish_dialog_details_examples_description": "For eksempler og en detaljeret beskrivelse af alle afsendelsesfunktioner henvises til dokumentationen.", "publish_dialog_button_cancel_sending": "Annuller afsendelse", "publish_dialog_attached_file_title": "Vedhæftet fil:", "emoji_picker_search_placeholder": "Søg emoji", "emoji_picker_search_clear": "Ryd søgning", "subscribe_dialog_subscribe_title": "Abonner på emne", "subscribe_dialog_subscribe_topic_placeholder": "Emnenavn, f.eks. phil_alerts", "subscribe_dialog_subscribe_button_generate_topic_name": "Generer navn", "subscribe_dialog_login_title": "Login påkrævet", "subscribe_dialog_login_description": "Dette emne er adgangskodebeskyttet. Indtast venligst brugernavn og adgangskode for at abonnere.", "subscribe_dialog_error_user_not_authorized": "Brugeren {{username}} er ikke autoriseret", "account_basics_password_description": "Skift adgangskoden til din konto", "account_usage_limits_reset_daily": "Brugsgrænser nulstilles dagligt ved midnat (UTC)", "account_basics_tier_paid_until": "Abonnementet er betalt indtil {{date}} og fornys automatisk", "account_basics_tier_payment_overdue": "Din betaling er forfalden. Opdater venligst din betalingsmetode, ellers bliver din konto snart nedgraderet.", "account_basics_tier_canceled_subscription": "Dit abonnement blev annulleret og vil blive nedgraderet til en gratis konto den {{date}}.", "account_usage_cannot_create_portal_session": "Kan ikke åbne faktureringsportalen", "account_delete_description": "Slet din konto permanent", "account_delete_dialog_description": "Dette vil slette din konto permanent, inklusive alle data, der er gemt på serveren. Efter sletning vil dit brugernavn være utilgængeligt i 7 dage. Hvis du virkelig ønsker at fortsætte, bedes du bekræfte med dit kodeord i feltet nedenfor.", "account_upgrade_dialog_button_pay_now": "Betal nu og abonner", "account_tokens_table_last_origin_tooltip": "Fra IP-adresse {{ip}}, klik for at slå op", "account_tokens_dialog_label": "Label, f.eks. radarmeddelelser", "account_tokens_dialog_expires_label": "Adgangstoken udløber om", "account_tokens_dialog_expires_unchanged": "Lad udløbsdatoen forblive uændret", "account_tokens_dialog_expires_x_hours": "Token udløber om {{hours}} timer", "account_tokens_dialog_expires_x_days": "Token udløber om {{days}} dage", "prefs_notifications_sound_description_none": "Notifikationer afspiller ingen lyd, når de ankommer", "prefs_notifications_sound_description_some": "Notifikationer afspiller {{sound}}-lyden, når de ankommer", "prefs_notifications_min_priority_low_and_higher": "Lav prioritet og højere", "prefs_notifications_min_priority_default_and_higher": "Standardprioritet og højere", "prefs_notifications_min_priority_high_and_higher": "Høj prioritet og højere", "prefs_notifications_delete_after_never_description": "Notifikationer slettes aldrig automatisk", "prefs_notifications_delete_after_three_hours_description": "Notifikationer slettes automatisk efter tre timer", "prefs_notifications_delete_after_one_week_description": "Notifikationer slettes automatisk efter en uge", "prefs_notifications_delete_after_one_month_description": "Notifikationer slettes automatisk efter en måned", "prefs_reservations_limit_reached": "Du har nået din grænse for reserverede emner.", "prefs_reservations_table_click_to_subscribe": "Klik for at abonnere", "reservation_delete_dialog_action_keep_title": "Behold cachelagrede meddelelser og vedhæftede filer", "reservation_delete_dialog_action_delete_title": "Slet cachelagrede meddelelser og vedhæftede filer", "error_boundary_title": "Oh nej, ntfy brød sammen", "error_boundary_description": "Dette bør naturligvis ikke ske. Det beklager vi meget.
      Hvis du har et øjeblik, bedes du rapportere dette på GitHub, eller give os besked via Discord eller Matrix.", "account_upgrade_dialog_tier_features_no_calls": "Ingen telefonopkald", "account_upgrade_dialog_billing_contact_email": "For faktureringsspørgsmål bedes du kontakte os direkte.", "account_basics_tier_interval_monthly": "månedlig", "publish_dialog_checkbox_publish_another": "Udgiv en anden", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} daglige telefonopkald", "publish_dialog_filename_placeholder": "Vedhæftet filnavn", "prefs_users_description": "Tilføj/fjern brugere til dine beskyttede emner her. Vær opmærksom på, at brugernavn og adgangskode er gemt i browserens lokale lager.", "account_basics_phone_numbers_dialog_number_label": "Telefonnummer", "subscribe_dialog_subscribe_description": "Emner kan ikke beskyttes med adgangskode, så vælg et navn, der ikke er let at gætte. Når du har abonneret, kan du PUT/POST notifikationer.", "account_basics_phone_numbers_dialog_check_verification_button": "Bekræft kode", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "spar op til {{discount}}%", "account_upgrade_dialog_proration_info": "Proration: Når du opgraderer mellem betalte planer, vil prisforskellen blive opkrævet med det samme. Ved nedgradering til et lavere niveau, vil saldoen blive brugt til at betale for fremtidige faktureringsperioder.", "account_usage_attachment_storage_title": "opbevaring af vedhæftede filer", "message_bar_error_publishing": "Der opstod en fejl under udgivelse af meddelelse", "publish_dialog_chip_delay_label": "Forsinke leveringen", "prefs_reservations_table_not_subscribed": "Ikke abonneret", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} daglige telefonopkald", "account_basics_phone_numbers_dialog_verify_button_sms": "Send SMS", "prefs_reservations_table_everyone_read_only": "Jeg kan udgive og abonnere, alle kan abonnere", "prefs_reservations_table_everyone_deny_all": "Kun jeg kan udgive og abonnere", "publish_dialog_chip_topic_label": "Skift emne", "account_basics_phone_numbers_dialog_description": "For at bruge opkaldsmeddelelsesfunktionen skal du tilføje og bekræfte mindst ét telefonnummer. Bekræftelse kan gøres via SMS eller et telefonopkald.", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} reserveret emne", "account_upgrade_dialog_tier_features_no_reservations": "Ingen reserverede emner", "publish_dialog_base_url_label": "Tjeneste-URL", "prefs_users_table_cannot_delete_or_edit": "Kan ikke slette eller redigere en aktiv bruger", "publish_dialog_title_no_topic": "Udgiv notifikation", "publish_dialog_attach_label": "URL til vedhæftede filer", "nav_button_muted": "Notifikationer slået fra", "prefs_notifications_min_priority_description_x_or_higher": "Vis notifikationer hvis prioritet er {{number}} ({{name}}) eller højere", "reservation_delete_dialog_description": "Fjernelse af en reservation opgiver ejerskabet over emnet og giver andre mulighed for at reservere det. Du kan beholde eller slette eksisterende beskeder og vedhæftede filer.", "prefs_reservations_table_everyone_read_write": "Alle kan udgive og abonnere", "account_upgrade_dialog_interval_monthly": "månedlig", "account_basics_phone_numbers_no_phone_numbers_yet": "Ingen telefonnumre endnu", "notifications_no_subscriptions_description": "Klik på linket \"{{linktext}}\" for at oprette eller abonnere på et emne. Derefter kan du sende beskeder via PUT eller POST, og du vil modtage notifikationer her.", "publish_dialog_message_published": "Notifikation udgivet", "publish_dialog_chip_call_label": "Telefon opkald", "account_basics_phone_numbers_dialog_title": "Tilføj telefonnummer", "account_tokens_delete_dialog_description": "Før du sletter et adgangstoken, skal du sikre dig, at ingen programmer eller scripts aktivt bruger det. Denne handling kan ikke fortrydes.", "account_upgrade_dialog_billing_contact_website": "For spørgsmål om fakturering, se venligst vores hjemmeside.", "account_usage_reservations_none": "Ingen reserverede emner til denne konto", "account_tokens_description": "Brug adgangstokens, når du udgiver og abonnerer via ntfy API, så du ikke behøver at sende dine kontooplysninger. Tjek dokumentationen for at få mere at vide.", "prefs_reservations_table": "Reserverede emner tabel", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} daglig e-mail", "prefs_reservations_description": "Her kan du reservere emnenavne til personlig brug. Reservering af et emne giver dig ejerskab over emnet og giver dig mulighed for at definere adgangstilladelser for andre brugere over emnet.", "prefs_users_description_no_sync": "Brugere og adgangskoder er ikke synkroniseret til din konto.", "nav_button_publish_message": "Udgiv notifikation", "prefs_users_table_base_url_header": "Tjeneste-URL", "publish_dialog_attach_reset": "Fjern URL til vedhæftede filer", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} daglig besked", "account_upgrade_dialog_reservations_warning_one": "Det valgte niveau tillader færre reserverede emner end dit nuværende niveau. Før du ændrer dit niveau, slet venligst mindst én reservation. Du kan fjerne reservationer i Indstillinger.", "error_boundary_unsupported_indexeddb_description": "ntfy-webappen har brug for IndexedDB for at fungere, og din browser understøtter ikke IndexedDB i privat browsing-tilstand.

      Selv om dette er uheldigt, giver det heller ikke ret meget mening at bruge ntfy-webappen i privat browsing-tilstand alligevel, fordi alt er gemt i browserens lager. Du kan læse mere om det i dette GitHub issue, eller tale med os på Discord eller Matrix.", "publish_dialog_title_placeholder": "Notifikationstitel, f.eks. Advarsel om diskplads", "account_basics_tier_description": "Din kontos niveau", "account_basics_phone_numbers_description": "For notifikationer via telefonopkald", "account_upgrade_dialog_cancel_warning": "Dette vil annullere dit abonnement og nedgradere din konto den {{date}}. På den dato slettes emnereservationer samt meddelelser, der er gemt på serveren.", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Ingen verificerede telefonnumre", "publish_dialog_call_label": "Telefon opkald", "account_usage_calls_title": "Telefonopkald foretaget", "prefs_notifications_min_priority_description_any": "Viser alle notifikationer, uanset prioritet", "error_boundary_gathering_info": "Indsaml mere info…", "reservation_delete_dialog_action_keep_description": "Beskeder og vedhæftede filer, der er cachelagret på serveren, bliver offentligt synlige for personer med kendskab til emnenavnet.", "account_basics_phone_numbers_copied_to_clipboard": "Telefonnummer kopieret til udklipsholder", "prefs_reservations_dialog_description": "Reservering af et emne giver dig ejerskab over emnet og giver dig mulighed for at definere adgangstilladelser for andre brugere over emnet.", "publish_dialog_title_topic": "Udgiv til {{topic}}", "account_basics_phone_numbers_dialog_number_placeholder": "f.eks. +4512345678", "account_basics_phone_numbers_dialog_code_placeholder": "f.eks. 123456", "account_basics_username_description": "Hej, der er du ❤", "publish_dialog_base_url_placeholder": "Tjeneste-URL, f.eks. https://example.com", "account_basics_tier_interval_yearly": "årligt", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} årligt. Faktureres månedligt.", "account_basics_phone_numbers_dialog_channel_call": "Opkald", "publish_dialog_attachment_limits_file_and_quota_reached": "overskrider filgrænsen og kvoten på {{fileSizeLimit}}, {{remainingBytes}} tilbage", "account_upgrade_dialog_interval_yearly": "årligt", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} faktureres årligt. Spar {{save}}.", "account_usage_basis_ip_description": "Brugsstatistikker og begrænsninger for denne konto er baseret på din IP-adresse, så de kan være delt med andre brugere. Ovenstående grænser er omtrentlige baseret på de eksisterende hastigheds grænser.", "account_basics_password_dialog_title": "Skift kodeord", "account_basics_phone_numbers_title": "Telefonnumre", "account_upgrade_dialog_interval_yearly_discount_save": "spar {{discount}}%", "publish_dialog_drop_file_here": "Smid filen her", "prefs_reservations_table_everyone_write_only": "Jeg kan udgive og abonnere, alle kan udgive", "account_tokens_table_cannot_delete_or_edit": "Kan ikke redigere eller slette nuværende sessionstoken", "publish_dialog_attached_file_filename_placeholder": "Vedhæftet filnavn", "subscribe_dialog_subscribe_base_url_label": "Tjeneste-URL", "account_upgrade_dialog_tier_price_per_month": "måned", "message_bar_show_dialog": "Vis udgivelsesdialogen", "account_usage_calls_none": "Der kan ikke foretages telefonopkald med denne konto", "nav_upgrade_banner_description": "Reserver emner, flere beskeder og e-mails og større vedhæftede filer", "publish_dialog_call_reset": "Fjern telefon opkald", "account_basics_phone_numbers_dialog_code_label": "Verifikationskode", "reservation_delete_dialog_action_delete_description": "Cachelagrede beskeder og vedhæftede filer slettes permanent. Denne handling kan ikke fortrydes.", "alert_grant_button": "Tillad nu", "account_usage_attachment_storage_description": "{{filesize}} pr. fil, slettet efter {{expiry}}", "publish_dialog_chip_click_label": "Klik på URL", "account_basics_phone_numbers_dialog_verify_button_call": "Ring til mig", "publish_dialog_call_item": "Ring til tlf. {{number}}", "prefs_users_dialog_base_url_label": "Tjeneste-URL, f.eks. https://ntfy.sh", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_delete_dialog_billing_warning": "Hvis du sletter din konto, så annulleres dit abonnement med det samme. Du vil ikke længere have adgang til faktureringspanelet.", "prefs_notifications_min_priority_description_max": "Vis notifikationer, hvis prioritet er 5 (maks.)", "account_upgrade_dialog_reservations_warning_other": "Det valgte niveau tillader færre reserverede emner end dit nuværende niveau. Før du ændrer dit niveau, slet venligst mindst {{count}} reservationer. Du kan fjerne reservationer i Indstillinger." } ntfy-2.11.0/web/public/static/langs/de.json000066400000000000000000000747641462047176100205160ustar00rootroot00000000000000{ "nav_topics_title": "Abonnierte Themen", "nav_button_all_notifications": "Alle Benachrichtigungen", "nav_button_settings": "Einstellungen", "nav_button_documentation": "Dokumentation", "nav_button_publish_message": "Benachrichtigung senden", "nav_button_subscribe": "Thema abonnieren", "alert_notification_permission_required_title": "Benachrichtigungen sind deaktiviert", "publish_dialog_base_url_label": "Service-URL", "publish_dialog_details_examples_description": "Beispiele und ausführliche Informationen zu allen Optionen findest Du in der Dokumentation.", "publish_dialog_attached_file_filename_placeholder": "Dateiname des Anhangs", "subscribe_dialog_login_description": "Dieses Thema benötigt eine Anmeldung. Bitte gib Benutzernamen und Kennwort ein.", "prefs_notifications_title": "Benachrichtigungen", "prefs_notifications_sound_title": "Benachrichtigungston", "prefs_notifications_min_priority_max_only": "Nur höchste Priorität", "prefs_notifications_delete_after_never": "Nie", "prefs_users_dialog_password_label": "Kennwort", "common_cancel": "Abbrechen", "common_add": "Hinzufügen", "common_save": "Speichern", "prefs_appearance_language_title": "Sprache", "notifications_none_for_any_description": "Um Benachrichtigungen an ein Thema zu senden, schicke einen PUT/POST-Request an die Themen-URL. Hier ist ein Beispiel mit einem Deiner Themen.", "publish_dialog_message_placeholder": "Gib hier eine Nachricht ein", "notifications_attachment_link_expires": "Link läuft ab am/um {{date}}", "notifications_click_copy_url_title": "Link-URL in Zwischenablage kopieren", "publish_dialog_priority_low": "Niedrige Priorität", "publish_dialog_message_label": "Nachricht", "action_bar_unsubscribe": "Abbestellen", "notifications_copied_to_clipboard": "In Zwischenablage kopiert", "notifications_loading": "Benachrichtigungen werden geladen …", "notifications_attachment_open_title": "Gehe zu {{url}}", "notifications_none_for_any_title": "Du hast keine Benachrichtigungen empfangen.", "action_bar_send_test_notification": "Test-Benachrichtigung senden", "alert_notification_permission_required_description": "Dem Browser erlauben, Desktop-Benachrichtigungen anzuzeigen.", "notifications_tags": "Tags", "message_bar_type_message": "Gib hier eine Nachricht ein", "message_bar_error_publishing": "Fehler beim Senden der Benachrichtigung", "alert_not_supported_title": "Benachrichtigungen werden nicht unterstützt", "alert_not_supported_description": "Benachrichtigungen werden von Deinem Browser nicht unterstützt.", "action_bar_settings": "Einstellungen", "action_bar_clear_notifications": "Alle Benachrichtigungen löschen", "alert_notification_permission_required_button": "Jetzt erlauben", "notifications_none_for_topic_title": "Du hast für dieses Thema noch keine Benachrichtigungen empfangen.", "notifications_click_open_button": "Link öffnen", "notifications_more_details": "Ausführlichere Informationen findest Du auf der Website und in der Dokumentation.", "notifications_attachment_copy_url_title": "URL des Anhangs in Zwischenablage kopieren", "notifications_attachment_copy_url_button": "URL kopieren", "notifications_attachment_open_button": "Anhang öffnen", "notifications_attachment_link_expired": "Download-Link ist abgelaufen", "notifications_click_copy_url_button": "Link kopieren", "notifications_actions_open_url_title": "Gehe zu {{url}}", "publish_dialog_other_features": "Andere Optionen:", "notifications_none_for_topic_description": "Um Benachrichtigungen an dieses Thema zu senden, PUTe/POSTe an die Themen-URL.", "notifications_no_subscriptions_title": "Anscheinend hast Du noch keine Themen abonniert.", "notifications_no_subscriptions_description": "Klicke den „{{linktext}}“-Link um ein Thema zu erstellen oder zu abonnieren. Danach kannst Du Nachrichten per PUT oder POST senden und erhältst hier die Benachrichtigungen.", "notifications_example": "Beispiel", "publish_dialog_progress_uploading": "Wird hochgeladen …", "publish_dialog_title_topic": "Senden an {{topic}}", "publish_dialog_title_no_topic": "Benachrichtigung senden", "publish_dialog_message_published": "Benachrichtigung gesendet", "publish_dialog_attachment_limits_file_and_quota_reached": "überschreitet das Dateigrößen-Limit {{fileSizeLimit}} und die Quota, {{remainingBytes}} übrig", "publish_dialog_progress_uploading_detail": "Hochladen {{loaded}}/{{total}} ({{percent}} %) …", "publish_dialog_priority_max": "Max. Priorität", "publish_dialog_topic_placeholder": "Thema, z.B. phil_alerts", "publish_dialog_attachment_limits_file_reached": "überschreitet das Dateigrößen-Limit {{fileSizeLimit}}", "publish_dialog_topic_label": "Thema", "publish_dialog_priority_default": "Standard-Priorität", "publish_dialog_base_url_placeholder": "Service-URL, z.B. https://example.com", "publish_dialog_attachment_limits_quota_reached": "überschreitet die Quota, {{remainingBytes}} übrig", "publish_dialog_priority_min": "Min. Priorität", "publish_dialog_priority_high": "Hohe Priorität", "publish_dialog_title_label": "Titel", "publish_dialog_tags_placeholder": "Komma-getrennte Liste von Tags, z.B. Warnung, srv1-Backup", "publish_dialog_priority_label": "Priorität", "publish_dialog_filename_label": "Dateiname", "publish_dialog_title_placeholder": "Benachrichtigungs-Titel, z.B. CPU-Last-Warnung", "publish_dialog_tags_label": "Tags", "publish_dialog_click_label": "Klick-URL", "publish_dialog_click_placeholder": "URL die geöffnet werden soll, wenn die Benachrichtigung angeklickt wird", "publish_dialog_email_label": "E-Mail", "publish_dialog_attach_label": "URL des Anhangs", "publish_dialog_attach_placeholder": "Datei von URL anhängen, z.B. https://f-droid.org/F-Droid.apk", "publish_dialog_filename_placeholder": "Dateiname des Anhangs", "publish_dialog_delay_label": "Verzögerung", "publish_dialog_email_placeholder": "E-Mail-Adresse, an welche die Benachrichtigung gesendet werden soll, z.B. phil@example.com", "publish_dialog_chip_click_label": "Klick-URL", "publish_dialog_button_cancel_sending": "Senden abbrechen", "publish_dialog_drop_file_here": "Datei hierher ziehen", "publish_dialog_chip_email_label": "An E-Mail weiterleiten", "publish_dialog_button_cancel": "Abbrechen", "publish_dialog_chip_attach_file_label": "Lokale Datei anhängen", "prefs_notifications_min_priority_title": "Minimale Priorität", "prefs_users_add_button": "Benutzer hinzufügen", "publish_dialog_delay_placeholder": "Auslieferung verzögern, z.B. {{unixTimestamp}}, {{relativeTime}}, oder \"{{naturalLanguage}}\" (nur Englisch)", "prefs_appearance_title": "Darstellung", "subscribe_dialog_login_password_label": "Kennwort", "common_back": "Zurück", "publish_dialog_chip_attach_url_label": "Datei von URL anhängen", "publish_dialog_chip_delay_label": "Auslieferung verzögern", "publish_dialog_chip_topic_label": "Thema ändern", "subscribe_dialog_subscribe_title": "Thema abonnieren", "subscribe_dialog_login_username_label": "Benutzername, z.B. phil", "subscribe_dialog_login_button_login": "Anmelden", "prefs_notifications_sound_no_sound": "Kein Ton", "prefs_notifications_min_priority_default_and_higher": "Standard-Priorität und höher", "subscribe_dialog_subscribe_topic_placeholder": "Thema, z.B. phil_alerts", "publish_dialog_button_send": "Senden", "publish_dialog_checkbox_publish_another": "Weitere Nachricht senden", "publish_dialog_attached_file_title": "Dateianhang:", "emoji_picker_search_placeholder": "Emoji suchen", "subscribe_dialog_subscribe_description": "Themen sind evtl. nicht kennwort-geschützt, also wähle einen schwer zu erratenden Namen. Nach dem Abonnieren kannst Du Benachrichtigungen per POST/PUT senden.", "subscribe_dialog_subscribe_use_another_label": "Anderen Server verwenden", "subscribe_dialog_subscribe_button_cancel": "Abbrechen", "subscribe_dialog_subscribe_button_subscribe": "Abonnieren", "subscribe_dialog_login_title": "Anmeldung erforderlich", "subscribe_dialog_error_user_anonymous": "anonym", "subscribe_dialog_error_user_not_authorized": "Benutzer {{username}} hat keine Berechtigung", "prefs_notifications_min_priority_any": "Alle Prioritäten", "prefs_notifications_min_priority_low_and_higher": "Niedrige Priorität und höher", "prefs_notifications_min_priority_high_and_higher": "Hohe Priorität und höher", "prefs_notifications_delete_after_title": "Benachrichtigungen löschen", "prefs_notifications_delete_after_three_hours": "Nach drei Stunden", "prefs_users_dialog_title_edit": "Benutzer bearbeiten", "prefs_notifications_delete_after_one_day": "Nach einem Tag", "prefs_notifications_delete_after_one_week": "Nach einer Woche", "prefs_notifications_delete_after_one_month": "Nach einem Monat", "prefs_users_title": "Benutzer verwalten", "prefs_users_table_user_header": "Benutzer", "prefs_users_table_base_url_header": "Service-URL", "prefs_users_dialog_base_url_label": "Service-URL, z.B. https://ntfy.sh", "prefs_users_dialog_username_label": "Benutzername, z.B. phil", "prefs_users_description": "Benutzer für kennwort-geschützte Themen hinzufügen/löschen. Achtung: Benutzername und Kennwort werden im lokalen Browser-Speicher abgelegt.", "prefs_users_dialog_title_add": "Benutzer hinzufügen", "error_boundary_title": "Oh nein, ntfy ist abgestürzt", "error_boundary_description": "Das sollte offensichtlich nicht passieren. Sorry.
      Wenn möglich, melde den Fehler auf GitHub oder schreibe uns auf Discord oder Matrix.", "error_boundary_stack_trace": "Stacktrace", "error_boundary_gathering_info": "Weitere Informationen sammeln …", "error_boundary_button_copy_stack_trace": "Stacktrace kopieren", "prefs_notifications_delete_after_never_description": "Benachrichtigungen werden nie automatisch gelöscht", "prefs_notifications_delete_after_one_month_description": "Benachrichtigungen werden nach einem Monat automatisch gelöscht", "prefs_notifications_min_priority_description_any": "Alle Benachrichtigungen (aller Prioritäten) anzeigen", "prefs_notifications_min_priority_description_max": "Zeige Benachrichtigungen wenn ihre Priorität5 (max) ist", "priority_low": "niedrig", "priority_default": "Standard", "priority_high": "hoch", "priority_max": "max", "prefs_notifications_sound_description_none": "Kein Ton beim Empfang einer Benachrichtigung", "prefs_notifications_sound_description_some": "Sound {{sound}} beim Eintreffen einer Benachrichtigung abspielen", "prefs_notifications_min_priority_description_x_or_higher": "Zeige Benachrichtigungen wenn ihre Priorität {{number}} ({{name}}) oder höher ist", "prefs_notifications_delete_after_three_hours_description": "Benachrichtigungen werden nach drei Stunden automatisch gelöscht", "prefs_notifications_delete_after_one_day_description": "Benachrichtigungen werden nach einem Tag automatisch gelöscht", "prefs_notifications_delete_after_one_week_description": "Benachrichtigungen werden nach einer Woche automatisch gelöscht", "priority_min": "min", "notifications_actions_not_supported": "Diese Aktion wird in der Web-App nicht unterstützt", "notifications_actions_http_request_title": "Sende HTTP {{method}} an {{url}}", "action_bar_show_menu": "Menü anzeigen", "action_bar_toggle_mute": "Stummschaltung an/aus", "message_bar_show_dialog": "Dialog zur Veröffentlichung anzeigen", "message_bar_publish": "Benachrichtigung veröffentlichen", "nav_button_connecting": "verbinde", "notifications_list": "Benachrichtigungsliste", "notifications_mark_read": "Als gelesen markieren", "notifications_delete": "Löschen", "notifications_priority_x": "Priorität {{priority}}", "notifications_attachment_file_image": "Bilddatei", "notifications_attachment_image": "Bild des Anhangs", "notifications_attachment_file_video": "Videodatei", "notifications_attachment_file_audio": "Audiodatei", "notifications_attachment_file_app": "Android App-Datei", "notifications_attachment_file_document": "anderes Dokument", "publish_dialog_attached_file_remove": "Angehängte Datei entfernen", "emoji_picker_search_clear": "Suche leeren", "subscribe_dialog_subscribe_base_url_label": "Service URL", "prefs_notifications_sound_play": "Gewählten Sound abspielen", "prefs_users_table": "Benutzertabelle", "prefs_users_edit_button": "Benutzer bearbeiten", "prefs_users_delete_button": "Benutzer löschen", "error_boundary_unsupported_indexeddb_title": "Private Browser-Tabs werden nicht unterstützt", "publish_dialog_delay_reset": "Verzögerte Zustellung entfernen", "error_boundary_unsupported_indexeddb_description": "Die ntfy Web-App benötigt eine IndexedDB für eine korrekte Funktion, und Dein Browser unterstützt in privaten Tabs keinen IndexedDB.

      Das ist zwar ärgerlich, eine Nutzung von ntfy in einem privaten Tab macht aber auch wenig Sinn da alle Daten im Browser gespeichert werden. Weitere Informationen gibt es in diesem GitHub-Issue, oder im Chat bei Discord oder Matrix.", "action_bar_toggle_action_menu": "Aktionsmenü öffnen/schließen", "notifications_new_indicator": "Neue Benachrichtigung", "publish_dialog_email_reset": "E-Mail-Weiterleitung entfernen", "action_bar_logo_alt": "ntfy Logo", "nav_button_muted": "Benachrichtigungen stummgeschaltet", "notifications_list_item": "Benachrichtigung", "publish_dialog_emoji_picker_show": "Emoji wählen", "publish_dialog_topic_reset": "Thema zurücksetzen", "publish_dialog_attach_reset": "angehängte URL entfernen", "publish_dialog_click_reset": "Klick-URL entfernen", "account_tokens_delete_dialog_description": "Stelle vor dem Löschen eines Access-Tokens sicher, dass keine Anwendung oder Skripte dieses Token verwenden. Diese Aktion kann nicht rückgängig gemacht werden.", "account_upgrade_dialog_cancel_warning": "Dies wird Dein Abo stornieren und Dein Konto am {{date}} herabstufen. An diesem Datum werden reservierte Themen und auch auf dem Server gecachte Nachrichten gelöscht.", "prefs_reservations_table_everyone_read_write": "Jeder kann veröffentlichen und lesen", "prefs_reservations_table_everyone_read_only": "Ich kann veröffentlichen und lesen, jeder kann lesen", "prefs_reservations_table_access_header": "Zugriff", "account_tokens_dialog_button_cancel": "Abbrechen", "account_tokens_dialog_expires_x_hours": "Token verfällt in {{hours}} Stunden", "account_tokens_dialog_expires_never": "Token verfällt nie", "signup_form_username": "Benutzername", "signup_form_button_submit": "Konto anlegen", "signup_already_have_account": "Du hast schon ein Konto? Melde Dich an!", "signup_disabled": "Die Anmeldung ist deaktiviert", "login_title": "Melde Dich mit Deinem ntfy-Konto an", "login_form_button_submit": "Anmelden", "login_link_signup": "Konto erstellen", "login_disabled": "Anmeldung ist deaktiviert", "action_bar_account": "Konto", "action_bar_change_display_name": "Anzeigenamen ändern", "action_bar_reservation_add": "Thema reservieren", "action_bar_reservation_edit": "Reservierung ändern", "action_bar_reservation_delete": "Reservierung löschen", "action_bar_reservation_limit_reached": "Grenze erreicht", "action_bar_profile_title": "Profil", "action_bar_profile_settings": "Einstellungen", "action_bar_profile_logout": "Abmelden", "action_bar_sign_in": "Anmelden", "signup_form_password": "Kennwort", "signup_form_toggle_password_visibility": "Kennwort-Sichtbarkeit umschalten", "nav_button_account": "Konto", "nav_upgrade_banner_description": "Themen reservieren, mehr Nachrichten & E-Mails und größere Anhänge", "display_name_dialog_title": "Anzeigennamen ändern", "display_name_dialog_placeholder": "Anzeigename", "reserve_dialog_checkbox_label": "Thema reservieren und Zugriffsrechte konfigurieren", "subscribe_dialog_error_topic_already_reserved": "Thema ist bereits reserviert", "account_basics_username_title": "Benutzername", "account_basics_username_description": "Hey, das bist Du ❤", "account_basics_password_description": "Konto-Kennwort ändern", "account_basics_password_dialog_title": "Kennwort ändern", "account_basics_password_dialog_current_password_label": "Aktuelles Kennwort", "account_basics_password_dialog_new_password_label": "Neues Kennwort", "account_basics_password_dialog_confirm_password_label": "Kennwort bestätigen", "account_basics_password_dialog_current_password_incorrect": "Kennwort falsch", "account_usage_title": "Verbrauch", "account_usage_of_limit": "von {{limit}}", "account_usage_unlimited": "unbegrenzt", "account_usage_limits_reset_daily": "Verbrauchslimits werden täglich um Mitternacht (UTC) zurückgesetzt", "account_basics_password_title": "Kennwort", "account_basics_tier_description": "Der Funktionsumfang Deines Konto-Levels", "account_basics_tier_admin_suffix_with_tier": "(mit Level {{tier}})", "account_basics_tier_admin_suffix_no_tier": "(kein Level)", "account_basics_tier_admin": "Admin", "account_basics_tier_basic": "Basic", "account_basics_tier_free": "Kostenlos", "account_basics_tier_paid_until": "Abo bezahlt bis {{date}} mit automatischer Verlängerung", "account_basics_tier_payment_overdue": "Deine Zahlung ist überfällig. Bitte aktualisiere Deine Zahlungsmethode, oder Dein Konto wird herabgestuft.", "account_basics_tier_manage_billing_button": "Zahlung verwalten", "account_usage_messages_title": "Veröffentlichte Nachrichten", "account_usage_emails_title": "Gesendete E-Mails", "account_usage_reservations_title": "Reservierte Themen", "account_usage_reservations_none": "Keine reservierten Themen für dieses Konto", "account_usage_attachment_storage_title": "Speicherplatz für Anhänge", "account_usage_attachment_storage_description": "{{filesize}} pro Datei, Löschung nach {{expiry}}", "account_usage_cannot_create_portal_session": "Kann Abrechnungsportal nicht öffnen", "account_delete_title": "Konto löschen", "account_delete_description": "Konto endgültig löschen", "account_delete_dialog_label": "Kennwort", "account_delete_dialog_button_cancel": "Abbrechen", "account_delete_dialog_button_submit": "Lösche mein Konto endgültig", "account_basics_tier_change_button": "Wechseln", "account_basics_tier_canceled_subscription": "Dein Abo wurde storniert und wird am {{date}} auf ein kostenloses Konto herabgestuft.", "account_usage_basis_ip_description": "Nutzungsstatistiken und Limits für diesen Account basieren auf Deiner IP-Adresse, können also mit anderen Usern geteilt sein. Die oben gezeigten Limits sind Schätzungen basierend auf den bestehenden Limits.", "account_delete_dialog_billing_warning": "Das Löschen Deines Kontos storniert auch sofort Deine Zahlung. Du wirst dann keinen Zugang zum Abrechnungs-Dashboard haben.", "account_upgrade_dialog_title": "Konto-Level ändern", "account_upgrade_dialog_proration_info": "Anrechnung: Wenn Du auf einen höheren kostenpflichtigen Level wechselst wird die Differenz sofort berechnet. Beim Wechsel auf ein kleineres Level verwenden wir Dein Guthaben für zukünftige Abrechnungsperioden.", "account_upgrade_dialog_reservations_warning_one": "Das gewählte Level erlaubt weniger reservierte Themen als Dein aktueller Level. Bitte löschen vor dem Wechsel Deines Levels mindestens eine Reservierung. Du kannst Reservierungen in den Einstellungen löschen.", "account_upgrade_dialog_reservations_warning_other": "Das gewählte Level erlaubt weniger reservierte Themen als Dein aktueller Level. Bitte löschen vor dem Wechsel Deines Levels mindestens {{count}} Reservierungen. Du kannst Reservierungen in den Einstellungen löschen.", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} reservierte Themen", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} Nachrichten pro Tag", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} E-Mails pro Tag", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} pro Datei", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} gesamter Speicherplatz", "account_upgrade_dialog_tier_selected_label": "Ausgewählt", "account_upgrade_dialog_tier_current_label": "Aktuell", "account_upgrade_dialog_button_cancel": "Abbrechen", "account_upgrade_dialog_button_redirect_signup": "Jetzt ein Konto anlegen", "account_upgrade_dialog_button_pay_now": "Jetzt bezahlen und abonnieren", "account_upgrade_dialog_button_cancel_subscription": "Abo stornieren", "account_upgrade_dialog_button_update_subscription": "Abo aktualisieren", "account_tokens_title": "Access-Token", "account_tokens_description": "Verwende Access-Token zum Versenden und Empfangen über die ntfy-API, um nicht Deine Zugangsdaten verwenden zu müssen. Lies die Dokumentation für mehr Info.", "account_tokens_table_token_header": "Token", "account_tokens_table_label_header": "Bezeichnung", "account_tokens_table_last_access_header": "Letzter Zugriff", "account_tokens_table_expires_header": "Verfällt", "account_tokens_table_never_expires": "Verfällt nie", "account_tokens_table_current_session": "Aktuelle Browser-Sitzung", "common_copy_to_clipboard": "In die Zwischenablage kopieren", "account_tokens_table_copied_to_clipboard": "Access-Token kopiert", "account_tokens_table_cannot_delete_or_edit": "Aktuelles Token kann nicht bearbeitet oder gelöscht werden", "account_tokens_table_create_token_button": "Access-Token erzeugen", "account_tokens_table_last_origin_tooltip": "Von IP-Adresse {{ip}}, klicke zum Nachschlagen", "account_tokens_dialog_title_create": "Access-Token erzeugen", "account_tokens_dialog_title_edit": "Access-Token bearbeiten", "account_tokens_dialog_title_delete": "Access-Token löschen", "account_tokens_dialog_label": "Bezeichnung, z.B. Radarr Benachrichtigungen", "account_tokens_dialog_button_create": "Token erzeugen", "account_tokens_dialog_button_update": "Token aktualisieren", "account_tokens_dialog_expires_label": "Access-Token verfällt in", "account_tokens_dialog_expires_unchanged": "Verfallsdatum nicht ändern", "account_tokens_dialog_expires_x_days": "Token verfällt in {{days}} Tagen", "account_tokens_delete_dialog_title": "Access-Token löschen", "account_tokens_delete_dialog_submit_button": "Token endgültig löschen", "prefs_users_description_no_sync": "Benutzernamen und Kennwörter werden nicht im Konto synchronisiert.", "prefs_users_table_cannot_delete_or_edit": "Angemeldeter Benutzer kann nicht gelöscht oder bearbeitet werden", "prefs_reservations_title": "Reservierte Themen", "prefs_reservations_description": "Du kannst hier Themen-Namen für Deine persönliche Verwendung reservieren. Das Reservieren eines Themas macht Dich zum Besitzer des Themas. Du kannst damit auch Zugriffsrechte für andere Benutzer auf das Thema festlegen.", "prefs_reservations_limit_reached": "Du hast Dein Limit an reservierten Themen erreicht.", "prefs_reservations_add_button": "Reserviertes Thema hinzufügen", "prefs_reservations_edit_button": "Zugriff auf Thema bearbeiten", "prefs_reservations_delete_button": "Zugriff auf Thema zurücksetzen", "prefs_reservations_table": "Übersicht reservierter Themen", "prefs_reservations_table_topic_header": "Thema", "prefs_reservations_table_everyone_deny_all": "Nur ich kann veröffentlichen und lesen", "prefs_reservations_table_everyone_write_only": "Ich kann veröffentlichen und lesen, jeder kann veröffentlichen", "prefs_reservations_table_not_subscribed": "Nicht abonniert", "prefs_reservations_table_click_to_subscribe": "Klicken um zu abonnieren", "prefs_reservations_dialog_title_add": "Thema reservieren", "prefs_reservations_dialog_title_edit": "Reserviertes Thema bearbeiten", "prefs_reservations_dialog_title_delete": "Thema-Reservierung löschen", "prefs_reservations_dialog_description": "Ein Thema zu reservieren macht Dich zum Besitzer des Themas, und erlaubt Dir Zugriffsrechte für andere auf dieses Thema festzulegen.", "prefs_reservations_dialog_topic_label": "Thema", "prefs_reservations_dialog_access_label": "Zugriff", "reservation_delete_dialog_description": "Mit dem Löschen einer Reservierung gibst du den Besitz des Themas auf und ermöglichst anderen, es zu reservieren. Du kannst vorhandene Nachrichten und Dateien behalten oder löschen.", "reservation_delete_dialog_action_keep_title": "Behalte gecachte Nachrichten und Dateien", "reservation_delete_dialog_action_keep_description": "Nachrichten und Dateien, die auf dem Server gecached sind, werden für alle sichtbar die den Themen-Namen kennen.", "reservation_delete_dialog_action_delete_title": "Löschen gecachte Nachrichten und Dateien", "reservation_delete_dialog_action_delete_description": "Gecachte Nachrichten und Dateien werden endgültig gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.", "reservation_delete_dialog_submit_button": "Reservierung löschen", "account_basics_password_dialog_button_submit": "Kennwort ändern", "account_basics_tier_title": "Kontotyp", "account_basics_tier_upgrade_button": "Upgrade auf Pro", "account_delete_dialog_description": "Hiermit wird Dein Konto endgültig gelöscht, inklusive aller Daten auf dem Server. Nach dem Löschen wird Dein Benutzername für 7 Tage gesperrt sein. Wenn Du fortfahren willst, bestätige das durch Eingabe Deines Kennwortes.", "signup_form_confirm_password": "Kennwort wiederholen", "signup_title": "Erstelle ein ntfy-Konto", "signup_error_username_taken": "Benutzername {{username}} ist bereits vergeben", "signup_error_creation_limit_reached": "Grenze der Account-Erstellung erreicht", "subscribe_dialog_subscribe_button_generate_topic_name": "Namen erzeugen", "account_basics_title": "Konto", "action_bar_sign_up": "Konto erstellen", "nav_upgrade_banner_label": "Upgrade auf ntfy Pro", "alert_not_supported_context_description": "Benachrichtigungen werden nur über HTTPS unterstützt. Das ist eine Einschränkung der Notifications API.", "display_name_dialog_description": "Lege einen alternativen Namen für ein Thema fest, der in der Abo-Liste angezeigt wird. So kannst Du Themen mit komplizierten Namen leichter finden.", "account_basics_username_admin_tooltip": "Du bist Admin", "account_upgrade_dialog_interval_yearly_discount_save": "spare {{discount}}%", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "spare bis zu {{discount}}%", "account_upgrade_dialog_tier_price_per_month": "Monat", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} pro Jahr. Spare {{save}}.", "account_upgrade_dialog_billing_contact_email": "Bei Fragen zur Abrechnung, kontaktiere uns bitte direkt.", "account_upgrade_dialog_billing_contact_website": "Bei Fragen zur Abrechnung sieh bitte auf unserer Webseite nach.", "account_upgrade_dialog_tier_features_no_reservations": "Keine reservierten Themen", "account_basics_tier_interval_yearly": "jährlich", "account_basics_tier_interval_monthly": "monatlich", "account_upgrade_dialog_interval_monthly": "Monatlich", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} pro Jahr. Monatlich abgerechnet.", "account_upgrade_dialog_interval_yearly": "Jährlich", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} tägliche Nachricht", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} reserviertes Thema", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} tägliche E-Mail", "publish_dialog_call_label": "Telefonanruf", "publish_dialog_call_item": "Telefonnummer {{number}} anrufen", "publish_dialog_chip_call_label": "Telefonanruf", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Keine verifizierten Telefonnummern", "account_basics_phone_numbers_title": "Telefonnummern", "account_basics_phone_numbers_copied_to_clipboard": "Telefonnummer wurde in die Zwischenablage kopiert", "account_basics_phone_numbers_dialog_title": "Telefonnummer hinzufügen", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} Telefonanrufe pro Tag", "account_upgrade_dialog_tier_features_no_calls": "Keine Telefonanrufe", "publish_dialog_call_reset": "Telefonanruf entfernen", "account_basics_phone_numbers_dialog_description": "Um die Benachrichtigung per Telefonanruf zu nutzen musst Du mindestens eine Telefonnummer hinzufügen und verifizieren. Die Verifizierung kann per SMS oder über einen Anruf erfolgen.", "account_basics_phone_numbers_description": "Für Telefon-Benachrichtigungen", "account_basics_phone_numbers_no_phone_numbers_yet": "Noch keine Telefonnummern", "account_basics_phone_numbers_dialog_number_label": "Telefonnummer", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_basics_phone_numbers_dialog_channel_call": "Anruf", "account_basics_phone_numbers_dialog_number_placeholder": "z.B. +49123456789", "account_basics_phone_numbers_dialog_verify_button_call": "Ruf mich an", "account_basics_phone_numbers_dialog_verify_button_sms": "SMS senden", "account_basics_phone_numbers_dialog_code_label": "Verifizierungs-Code", "account_basics_phone_numbers_dialog_code_placeholder": "z.B. 123456", "account_basics_phone_numbers_dialog_check_verification_button": "Code bestätigen", "account_usage_calls_title": "Getätigte Anrufe", "account_usage_calls_none": "Noch keine Anrufe mit diesem Account getätigt", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} Telefonanrufe pro Tag", "action_bar_mute_notifications": "Benachrichtigungen stummschalten", "action_bar_unmute_notifications": "Benachrichtigungen lautschalten", "alert_notification_permission_denied_title": "Benachrichtigungen sind blockiert" } ntfy-2.11.0/web/public/static/langs/en.json000066400000000000000000000726401462047176100205170ustar00rootroot00000000000000{ "common_cancel": "Cancel", "common_save": "Save", "common_add": "Add", "common_back": "Back", "common_copy_to_clipboard": "Copy to clipboard", "signup_title": "Create a ntfy account", "signup_form_username": "Username", "signup_form_password": "Password", "signup_form_confirm_password": "Confirm password", "signup_form_button_submit": "Sign up", "signup_form_toggle_password_visibility": "Toggle password visibility", "signup_already_have_account": "Already have an account? Sign in!", "signup_disabled": "Signup is disabled", "signup_error_username_taken": "Username {{username}} is already taken", "signup_error_creation_limit_reached": "Account creation limit reached", "login_title": "Sign in to your ntfy account", "login_form_button_submit": "Sign in", "login_link_signup": "Sign up", "login_disabled": "Login is disabled", "action_bar_show_menu": "Show menu", "action_bar_logo_alt": "ntfy logo", "action_bar_settings": "Settings", "action_bar_account": "Account", "action_bar_change_display_name": "Change display name", "action_bar_reservation_add": "Reserve topic", "action_bar_reservation_edit": "Change reservation", "action_bar_reservation_delete": "Remove reservation", "action_bar_reservation_limit_reached": "Limit reached", "action_bar_send_test_notification": "Send test notification", "action_bar_clear_notifications": "Clear all notifications", "action_bar_mute_notifications": "Mute notifications", "action_bar_unmute_notifications": "Unmute notifications", "action_bar_unsubscribe": "Unsubscribe", "action_bar_toggle_mute": "Mute/unmute notifications", "action_bar_toggle_action_menu": "Open/close action menu", "action_bar_profile_title": "Profile", "action_bar_profile_settings": "Settings", "action_bar_profile_logout": "Logout", "action_bar_sign_in": "Sign in", "action_bar_sign_up": "Sign up", "message_bar_type_message": "Type a message here", "message_bar_error_publishing": "Error publishing notification", "message_bar_show_dialog": "Show publish dialog", "message_bar_publish": "Publish message", "nav_topics_title": "Subscribed topics", "nav_button_all_notifications": "All notifications", "nav_button_account": "Account", "nav_button_settings": "Settings", "nav_button_documentation": "Documentation", "nav_button_publish_message": "Publish notification", "nav_button_subscribe": "Subscribe to topic", "nav_button_muted": "Notifications muted", "nav_button_connecting": "connecting", "nav_upgrade_banner_label": "Upgrade to ntfy Pro", "nav_upgrade_banner_description": "Reserve topics, more messages & emails, and larger attachments", "alert_notification_permission_required_title": "Notifications are disabled", "alert_notification_permission_required_description": "Grant your browser permission to display desktop notifications", "alert_notification_permission_required_button": "Grant now", "alert_notification_permission_denied_title": "Notifications are blocked", "alert_notification_permission_denied_description": "Please re-enable them in your browser", "alert_notification_ios_install_required_title": "iOS install required", "alert_notification_ios_install_required_description": "Click on the Share icon and Add to Home Screen to enable notifications on iOS", "alert_not_supported_title": "Notifications not supported", "alert_not_supported_description": "Notifications are not supported in your browser", "alert_not_supported_context_description": "Notifications are only supported over HTTPS. This is a limitation of the Notifications API.", "notifications_list": "Notifications list", "notifications_list_item": "Notification", "notifications_mark_read": "Mark as read", "notifications_delete": "Delete", "notifications_copied_to_clipboard": "Copied to clipboard", "notifications_tags": "Tags", "notifications_priority_x": "Priority {{priority}}", "notifications_new_indicator": "New notification", "notifications_attachment_image": "Attachment image", "notifications_attachment_copy_url_title": "Copy attachment URL to clipboard", "notifications_attachment_copy_url_button": "Copy URL", "notifications_attachment_open_title": "Go to {{url}}", "notifications_attachment_open_button": "Open attachment", "notifications_attachment_link_expires": "link expires {{date}}", "notifications_attachment_link_expired": "download link expired", "notifications_attachment_file_image": "image file", "notifications_attachment_file_video": "video file", "notifications_attachment_file_audio": "audio file", "notifications_attachment_file_app": "Android app file", "notifications_attachment_file_document": "other document", "notifications_click_copy_url_title": "Copy link URL to clipboard", "notifications_click_copy_url_button": "Copy link", "notifications_click_open_button": "Open link", "notifications_actions_open_url_title": "Go to {{url}}", "notifications_actions_not_supported": "Action not supported in web app", "notifications_actions_http_request_title": "Send HTTP {{method}} to {{url}}", "notifications_actions_failed_notification": "Unsuccessful action", "notifications_none_for_topic_title": "You haven't received any notifications for this topic yet.", "notifications_none_for_topic_description": "To send notifications to this topic, simply PUT or POST to the topic URL.", "notifications_none_for_any_title": "You haven't received any notifications.", "notifications_none_for_any_description": "To send notifications to a topic, simply PUT or POST to the topic URL. Here's an example using one of your topics.", "notifications_no_subscriptions_title": "It looks like you don't have any subscriptions yet.", "notifications_no_subscriptions_description": "Click the \"{{linktext}}\" link to create or subscribe to a topic. After that, you can send messages via PUT or POST and you'll receive notifications here.", "notifications_example": "Example", "notifications_more_details": "For more information, check out the website or documentation.", "display_name_dialog_title": "Change display name", "display_name_dialog_description": "Set an alternative name for a topic that is displayed in the subscription list. This helps identify topics with complicated names more easily.", "display_name_dialog_placeholder": "Display name", "reserve_dialog_checkbox_label": "Reserve topic and configure access", "notifications_loading": "Loading notifications …", "publish_dialog_title_topic": "Publish to {{topic}}", "publish_dialog_title_no_topic": "Publish notification", "publish_dialog_progress_uploading": "Uploading …", "publish_dialog_progress_uploading_detail": "Uploading {{loaded}}/{{total}} ({{percent}}%) …", "publish_dialog_message_published": "Notification published", "publish_dialog_attachment_limits_file_and_quota_reached": "exceeds {{fileSizeLimit}} file limit and quota, {{remainingBytes}} remaining", "publish_dialog_attachment_limits_file_reached": "exceeds {{fileSizeLimit}} file limit", "publish_dialog_attachment_limits_quota_reached": "exceeds quota, {{remainingBytes}} remaining", "publish_dialog_emoji_picker_show": "Pick emoji", "publish_dialog_priority_min": "Min. priority", "publish_dialog_priority_low": "Low priority", "publish_dialog_priority_default": "Default priority", "publish_dialog_priority_high": "High priority", "publish_dialog_priority_max": "Max. priority", "publish_dialog_base_url_label": "Service URL", "publish_dialog_base_url_placeholder": "Service URL, e.g. https://example.com", "publish_dialog_topic_label": "Topic name", "publish_dialog_topic_placeholder": "Topic name, e.g. phil_alerts", "publish_dialog_topic_reset": "Reset topic", "publish_dialog_title_label": "Title", "publish_dialog_title_placeholder": "Notification title, e.g. Disk space alert", "publish_dialog_message_label": "Message", "publish_dialog_message_placeholder": "Type a message here", "publish_dialog_tags_label": "Tags", "publish_dialog_tags_placeholder": "Comma-separated list of tags, e.g. warning, srv1-backup", "publish_dialog_priority_label": "Priority", "publish_dialog_click_label": "Click URL", "publish_dialog_click_placeholder": "URL that is opened when notification is clicked", "publish_dialog_click_reset": "Remove click URL", "publish_dialog_email_label": "Email", "publish_dialog_email_placeholder": "Address to forward the notification to, e.g. phil@example.com", "publish_dialog_email_reset": "Remove email forward", "publish_dialog_call_label": "Phone call", "publish_dialog_call_item": "Call phone number {{number}}", "publish_dialog_call_reset": "Remove phone call", "publish_dialog_attach_label": "Attachment URL", "publish_dialog_attach_placeholder": "Attach file by URL, e.g. https://f-droid.org/F-Droid.apk", "publish_dialog_attach_reset": "Remove attachment URL", "publish_dialog_filename_label": "Filename", "publish_dialog_filename_placeholder": "Attachment filename", "publish_dialog_delay_label": "Delay", "publish_dialog_delay_placeholder": "Delay delivery, e.g. {{unixTimestamp}}, {{relativeTime}}, or \"{{naturalLanguage}}\" (English only)", "publish_dialog_delay_reset": "Remove delayed delivery", "publish_dialog_other_features": "Other features:", "publish_dialog_chip_click_label": "Click URL", "publish_dialog_chip_email_label": "Forward to email", "publish_dialog_chip_call_label": "Phone call", "publish_dialog_chip_call_no_verified_numbers_tooltip": "No verified phone numbers", "publish_dialog_chip_attach_url_label": "Attach file by URL", "publish_dialog_chip_attach_file_label": "Attach local file", "publish_dialog_chip_delay_label": "Delay delivery", "publish_dialog_chip_topic_label": "Change topic", "publish_dialog_details_examples_description": "For examples and a detailed description of all send features, please refer to the documentation.", "publish_dialog_button_cancel_sending": "Cancel sending", "publish_dialog_button_cancel": "Cancel", "publish_dialog_button_send": "Send", "publish_dialog_checkbox_markdown": "Format as Markdown", "publish_dialog_checkbox_publish_another": "Publish another", "publish_dialog_attached_file_title": "Attached file:", "publish_dialog_attached_file_filename_placeholder": "Attachment filename", "publish_dialog_attached_file_remove": "Remove attached file", "publish_dialog_drop_file_here": "Drop file here", "emoji_picker_search_placeholder": "Search emoji", "emoji_picker_search_clear": "Clear search", "subscribe_dialog_subscribe_title": "Subscribe to topic", "subscribe_dialog_subscribe_description": "Topics may not be password-protected, so choose a name that's not easy to guess. Once subscribed, you can PUT/POST notifications.", "subscribe_dialog_subscribe_topic_placeholder": "Topic name, e.g. phil_alerts", "subscribe_dialog_subscribe_use_another_label": "Use another server", "subscribe_dialog_subscribe_use_another_background_info": "Notifications from other servers will not be received when the web app is not open", "subscribe_dialog_subscribe_base_url_label": "Service URL", "subscribe_dialog_subscribe_button_generate_topic_name": "Generate name", "subscribe_dialog_subscribe_button_cancel": "Cancel", "subscribe_dialog_subscribe_button_subscribe": "Subscribe", "subscribe_dialog_login_title": "Login required", "subscribe_dialog_login_description": "This topic is password-protected. Please enter username and password to subscribe.", "subscribe_dialog_login_username_label": "Username, e.g. phil", "subscribe_dialog_login_password_label": "Password", "subscribe_dialog_login_button_login": "Login", "subscribe_dialog_error_user_not_authorized": "User {{username}} not authorized", "subscribe_dialog_error_topic_already_reserved": "Topic already reserved", "subscribe_dialog_error_user_anonymous": "anonymous", "account_basics_title": "Account", "account_basics_username_title": "Username", "account_basics_username_description": "Hey, that's you ❤", "account_basics_username_admin_tooltip": "You are Admin", "account_basics_password_title": "Password", "account_basics_password_description": "Change your account password", "account_basics_password_dialog_title": "Change password", "account_basics_password_dialog_current_password_label": "Current password", "account_basics_password_dialog_new_password_label": "New password", "account_basics_password_dialog_confirm_password_label": "Confirm password", "account_basics_password_dialog_button_submit": "Change password", "account_basics_password_dialog_current_password_incorrect": "Password incorrect", "account_basics_phone_numbers_title": "Phone numbers", "account_basics_phone_numbers_dialog_description": "To use the call notification feature, you need to add and verify at least one phone number. Verification can be done via SMS or a phone call.", "account_basics_phone_numbers_description": "For phone call notifications", "account_basics_phone_numbers_no_phone_numbers_yet": "No phone numbers yet", "account_basics_phone_numbers_copied_to_clipboard": "Phone number copied to clipboard", "account_basics_phone_numbers_dialog_title": "Add phone number", "account_basics_phone_numbers_dialog_number_label": "Phone number", "account_basics_phone_numbers_dialog_number_placeholder": "e.g. +1222333444", "account_basics_phone_numbers_dialog_verify_button_sms": "Send SMS", "account_basics_phone_numbers_dialog_verify_button_call": "Call me", "account_basics_phone_numbers_dialog_code_label": "Verification code", "account_basics_phone_numbers_dialog_code_placeholder": "e.g. 123456", "account_basics_phone_numbers_dialog_check_verification_button": "Confirm code", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_basics_phone_numbers_dialog_channel_call": "Call", "account_usage_title": "Usage", "account_usage_of_limit": "of {{limit}}", "account_usage_unlimited": "Unlimited", "account_usage_limits_reset_daily": "Usage limits are reset daily at midnight (UTC)", "account_basics_tier_title": "Account type", "account_basics_tier_description": "Your account's power level", "account_basics_tier_admin": "Admin", "account_basics_tier_admin_suffix_with_tier": "(with {{tier}} tier)", "account_basics_tier_admin_suffix_no_tier": "(no tier)", "account_basics_tier_basic": "Basic", "account_basics_tier_free": "Free", "account_basics_tier_interval_monthly": "monthly", "account_basics_tier_interval_yearly": "annually", "account_basics_tier_upgrade_button": "Upgrade to Pro", "account_basics_tier_change_button": "Change", "account_basics_tier_paid_until": "Subscription paid until {{date}}, and will auto-renew", "account_basics_tier_payment_overdue": "Your payment is overdue. Please update your payment method, or your account will be downgraded soon.", "account_basics_tier_canceled_subscription": "Your subscription was canceled and will be downgraded to a free account on {{date}}.", "account_basics_tier_manage_billing_button": "Manage billing", "account_usage_messages_title": "Published messages", "account_usage_emails_title": "Emails sent", "account_usage_calls_title": "Phone calls made", "account_usage_calls_none": "No phone calls can be made with this account", "account_usage_reservations_title": "Reserved topics", "account_usage_reservations_none": "No reserved topics for this account", "account_usage_attachment_storage_title": "Attachment storage", "account_usage_attachment_storage_description": "{{filesize}} per file, deleted after {{expiry}}", "account_usage_basis_ip_description": "Usage stats and limits for this account are based on your IP address, so they may be shared with other users. Limits shown above are approximates based on the existing rate limits.", "account_usage_cannot_create_portal_session": "Unable to open billing portal", "account_delete_title": "Delete account", "account_delete_description": "Permanently delete your account", "account_delete_dialog_description": "This will permanently delete your account, including all data that is stored on the server. After deletion, your username will be unavailable for 7 days. If you really want to proceed, please confirm with your password in the box below.", "account_delete_dialog_label": "Password", "account_delete_dialog_button_cancel": "Cancel", "account_delete_dialog_button_submit": "Permanently delete account", "account_delete_dialog_billing_warning": "Deleting your account also cancels your billing subscription immediately. You will not have access to the billing dashboard anymore.", "account_upgrade_dialog_title": "Change account tier", "account_upgrade_dialog_interval_monthly": "Monthly", "account_upgrade_dialog_interval_yearly": "Annually", "account_upgrade_dialog_interval_yearly_discount_save": "save {{discount}}%", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "save up to {{discount}}%", "account_upgrade_dialog_cancel_warning": "This will cancel your subscription, and downgrade your account on {{date}}. On that date, topic reservations as well as messages cached on the server will be deleted.", "account_upgrade_dialog_proration_info": "Proration: When upgrading between paid plans, the price difference will be charged immediately. When downgrading to a lower tier, the balance will be used to pay for future billing periods.", "account_upgrade_dialog_reservations_warning_one": "The selected tier allows fewer reserved topics than your current tier. Before changing your tier, please delete at least one reservation. You can remove reservations in the Settings.", "account_upgrade_dialog_reservations_warning_other": "The selected tier allows fewer reserved topics than your current tier. Before changing your tier, please delete at least {{count}} reservations. You can remove reservations in the Settings.", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} reserved topic", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} reserved topics", "account_upgrade_dialog_tier_features_no_reservations": "No reserved topics", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} daily message", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} daily messages", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} daily email", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} daily emails", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} daily phone calls", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} daily phone calls", "account_upgrade_dialog_tier_features_no_calls": "No phone calls", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} per file", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} total storage", "account_upgrade_dialog_tier_price_per_month": "month", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} per year. Billed monthly.", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} billed annually. Save {{save}}.", "account_upgrade_dialog_tier_selected_label": "Selected", "account_upgrade_dialog_tier_current_label": "Current", "account_upgrade_dialog_billing_contact_email": "For billing questions, please contact us directly.", "account_upgrade_dialog_billing_contact_website": "For billing questions, please refer to our website.", "account_upgrade_dialog_button_cancel": "Cancel", "account_upgrade_dialog_button_redirect_signup": "Sign up now", "account_upgrade_dialog_button_pay_now": "Pay now and subscribe", "account_upgrade_dialog_button_cancel_subscription": "Cancel subscription", "account_upgrade_dialog_button_update_subscription": "Update subscription", "account_tokens_title": "Access tokens", "account_tokens_description": "Use access tokens when publishing and subscribing via the ntfy API, so you don't have to send your account credentials. Check out the documentation to learn more.", "account_tokens_table_token_header": "Token", "account_tokens_table_label_header": "Label", "account_tokens_table_last_access_header": "Last access", "account_tokens_table_expires_header": "Expires", "account_tokens_table_never_expires": "Never expires", "account_tokens_table_current_session": "Current browser session", "account_tokens_table_copied_to_clipboard": "Access token copied", "account_tokens_table_cannot_delete_or_edit": "Cannot edit or delete current session token", "account_tokens_table_create_token_button": "Create access token", "account_tokens_table_last_origin_tooltip": "From IP address {{ip}}, click to lookup", "account_tokens_dialog_title_create": "Create access token", "account_tokens_dialog_title_edit": "Edit access token", "account_tokens_dialog_title_delete": "Delete access token", "account_tokens_dialog_label": "Label, e.g. Radarr notifications", "account_tokens_dialog_button_create": "Create token", "account_tokens_dialog_button_update": "Update token", "account_tokens_dialog_button_cancel": "Cancel", "account_tokens_dialog_expires_label": "Access token expires in", "account_tokens_dialog_expires_unchanged": "Leave expiry date unchanged", "account_tokens_dialog_expires_x_hours": "Token expires in {{hours}} hours", "account_tokens_dialog_expires_x_days": "Token expires in {{days}} days", "account_tokens_dialog_expires_never": "Token never expires", "account_tokens_delete_dialog_title": "Delete access token", "account_tokens_delete_dialog_description": "Before deleting an access token, be sure that no applications or scripts are actively using it. This action cannot be undone.", "account_tokens_delete_dialog_submit_button": "Permanently delete token", "prefs_notifications_title": "Notifications", "prefs_notifications_sound_title": "Notification sound", "prefs_notifications_sound_description_none": "Notifications do not play any sound when they arrive", "prefs_notifications_sound_description_some": "Notifications play the {{sound}} sound when they arrive", "prefs_notifications_sound_no_sound": "No sound", "prefs_notifications_sound_play": "Play selected sound", "prefs_notifications_min_priority_title": "Minimum priority", "prefs_notifications_min_priority_description_any": "Showing all notifications, regardless of priority", "prefs_notifications_min_priority_description_x_or_higher": "Show notifications if priority is {{number}} ({{name}}) or above", "prefs_notifications_min_priority_description_max": "Show notifications if priority is 5 (max)", "prefs_notifications_min_priority_any": "Any priority", "prefs_notifications_min_priority_low_and_higher": "Low priority and higher", "prefs_notifications_min_priority_default_and_higher": "Default priority and higher", "prefs_notifications_min_priority_high_and_higher": "High priority and higher", "prefs_notifications_min_priority_max_only": "Only max priority", "prefs_notifications_delete_after_title": "Delete notifications", "prefs_notifications_delete_after_never": "Never", "prefs_notifications_delete_after_three_hours": "After three hours", "prefs_notifications_delete_after_one_day": "After one day", "prefs_notifications_delete_after_one_week": "After one week", "prefs_notifications_delete_after_one_month": "After one month", "prefs_notifications_delete_after_never_description": "Notifications are never auto-deleted", "prefs_notifications_delete_after_three_hours_description": "Notifications are auto-deleted after three hours", "prefs_notifications_delete_after_one_day_description": "Notifications are auto-deleted after one day", "prefs_notifications_delete_after_one_week_description": "Notifications are auto-deleted after one week", "prefs_notifications_delete_after_one_month_description": "Notifications are auto-deleted after one month", "prefs_notifications_web_push_title": "Background notifications", "prefs_notifications_web_push_enabled_description": "Notifications are received even when the web app is not running (via Web Push)", "prefs_notifications_web_push_disabled_description": "Notification are received when the web app is running (via WebSocket)", "prefs_notifications_web_push_enabled": "Enabled for {{server}}", "prefs_notifications_web_push_disabled": "Disabled", "prefs_users_title": "Manage users", "prefs_users_description": "Add/remove users for your protected topics here. Please note that username and password are stored in the browser's local storage.", "prefs_users_description_no_sync": "Users and passwords are not synchronized to your account.", "prefs_users_table": "Users table", "prefs_users_add_button": "Add user", "prefs_users_edit_button": "Edit user", "prefs_users_delete_button": "Delete user", "prefs_users_table_cannot_delete_or_edit": "Cannot delete or edit logged in user", "prefs_users_table_user_header": "User", "prefs_users_table_base_url_header": "Service URL", "prefs_users_dialog_title_add": "Add user", "prefs_users_dialog_title_edit": "Edit user", "prefs_users_dialog_base_url_label": "Service URL, e.g. https://ntfy.sh", "prefs_users_dialog_username_label": "Username, e.g. phil", "prefs_users_dialog_password_label": "Password", "prefs_appearance_title": "Appearance", "prefs_appearance_language_title": "Language", "prefs_appearance_theme_title": "Theme", "prefs_appearance_theme_system": "System (default)", "prefs_appearance_theme_dark": "Dark mode", "prefs_appearance_theme_light": "Light mode", "prefs_reservations_title": "Reserved topics", "prefs_reservations_description": "You can reserve topic names for personal use here. Reserving a topic gives you ownership over the topic, and allows you to define access permissions for other users over the topic.", "prefs_reservations_limit_reached": "You reached your reserved topics limit.", "prefs_reservations_add_button": "Add reserved topic", "prefs_reservations_edit_button": "Edit topic access", "prefs_reservations_delete_button": "Reset topic access", "prefs_reservations_table": "Reserved topics table", "prefs_reservations_table_topic_header": "Topic", "prefs_reservations_table_access_header": "Access", "prefs_reservations_table_everyone_deny_all": "Only I can publish and subscribe", "prefs_reservations_table_everyone_read_only": "I can publish and subscribe, everyone can subscribe", "prefs_reservations_table_everyone_write_only": "I can publish and subscribe, everyone can publish", "prefs_reservations_table_everyone_read_write": "Everyone can publish and subscribe", "prefs_reservations_table_not_subscribed": "Not subscribed", "prefs_reservations_table_click_to_subscribe": "Click to subscribe", "prefs_reservations_dialog_title_add": "Reserve topic", "prefs_reservations_dialog_title_edit": "Edit reserved topic", "prefs_reservations_dialog_title_delete": "Delete topic reservation", "prefs_reservations_dialog_description": "Reserving a topic gives you ownership over the topic, and allows you to define access permissions for other users over the topic.", "prefs_reservations_dialog_topic_label": "Topic", "prefs_reservations_dialog_access_label": "Access", "reservation_delete_dialog_description": "Removing a reservation gives up ownership over the topic, and allows others to reserve it. You can keep, or delete existing messages and attachments.", "reservation_delete_dialog_action_keep_title": "Keep cached messages and attachments", "reservation_delete_dialog_action_keep_description": "Messages and attachments that are cached on the server will become publicly visible for people with knowledge of the topic name.", "reservation_delete_dialog_action_delete_title": "Delete cached messages and attachments", "reservation_delete_dialog_action_delete_description": "Cached messages and attachments will be permanently deleted. This action cannot be undone.", "reservation_delete_dialog_submit_button": "Delete reservation", "priority_min": "min", "priority_low": "low", "priority_default": "default", "priority_high": "high", "priority_max": "max", "error_boundary_title": "Oh no, ntfy crashed", "error_boundary_description": "This should obviously not happen. Very sorry about this.
      If you have a minute, please report this on GitHub, or let us know via Discord or Matrix.", "error_boundary_button_copy_stack_trace": "Copy stack trace", "error_boundary_button_reload_ntfy": "Reload ntfy", "error_boundary_stack_trace": "Stack trace", "error_boundary_gathering_info": "Gather more info …", "error_boundary_unsupported_indexeddb_title": "Private browsing not supported", "error_boundary_unsupported_indexeddb_description": "The ntfy web app needs IndexedDB to function, and your browser does not support IndexedDB in private browsing mode.

      While this is unfortunate, it also doesn't really make a lot of sense to use the ntfy web app in private browsing mode anyway, because everything is stored in the browser storage. You can read more about it in this GitHub issue, or talk to us on Discord or Matrix.", "web_push_subscription_expiring_title": "Notifications will be paused", "web_push_subscription_expiring_body": "Open ntfy to continue receiving notifications", "web_push_unknown_notification_title": "Unknown notification received from server", "web_push_unknown_notification_body": "You may need to update ntfy by opening the web app" } ntfy-2.11.0/web/public/static/langs/eo.json000066400000000000000000000000031462047176100205000ustar00rootroot00000000000000{} ntfy-2.11.0/web/public/static/langs/es.json000066400000000000000000001021171462047176100205150ustar00rootroot00000000000000{ "action_bar_settings": "Configuración", "action_bar_send_test_notification": "Enviar notificación de prueba", "action_bar_clear_notifications": "Borrar todas las notificaciones", "nav_topics_title": "Tópicos suscritos", "alert_notification_permission_required_button": "Conceder ahora", "action_bar_unsubscribe": "Cancelar la suscripción", "message_bar_type_message": "Escriba un mensaje aquí", "message_bar_error_publishing": "Error al publicar la notificación", "alert_notification_permission_required_title": "Las notificaciones están deshabilitadas", "alert_notification_permission_required_description": "Concede a tu navegador permiso para mostrar notificaciones de escritorio", "nav_button_all_notifications": "Todas las notificaciones", "nav_button_settings": "Ajustes", "nav_button_subscribe": "Suscribirse al tópico", "nav_button_documentation": "Documentación", "nav_button_publish_message": "Publicar notificación", "notifications_copied_to_clipboard": "Copiado al portapapeles", "alert_not_supported_title": "Notificaciones no soportadas", "alert_not_supported_description": "Su navegador no admite notificaciones", "notifications_tags": "Etiquetas", "notifications_attachment_copy_url_title": "Copiar la URL del archivo adjunto en el portapapeles", "notifications_attachment_copy_url_button": "Copiar URL", "notifications_attachment_open_title": "Ir a {{url}}", "notifications_attachment_open_button": "Abrir archivo adjunto", "notifications_attachment_link_expires": "el enlace expira el día {{fecha}}", "notifications_attachment_link_expired": "el enlace de descarga ha expirado", "notifications_click_copy_url_title": "Copiar la URL del enlace en el portapapeles", "notifications_click_copy_url_button": "Copiar enlace", "notifications_actions_open_url_title": "Ir a {{url}}", "notifications_click_open_button": "Abrir enlace", "notifications_none_for_topic_title": "Aún no has recibido ninguna notificación en este tópico.", "notifications_none_for_topic_description": "Para enviar notificaciones a este tópico, simplemente realice un PUT o POST a la URL del tópico.", "notifications_none_for_any_title": "No ha recibido ninguna notificación.", "notifications_no_subscriptions_title": "Parece que aún no tiene ninguna suscripción.", "notifications_no_subscriptions_description": "Haga clic en el enlace \"{{linktext}}\" para crear o suscribirse a un tópico. Después, puede enviar mensajes a través de un PUT o POST y recibirá notificaciones aquí.", "notifications_more_details": "Para más información, consulta la página web o la documentación.", "notifications_loading": "Cargando notificaciones …", "publish_dialog_title_topic": "Publicar en {{topic}}", "publish_dialog_title_no_topic": "Publicar notificación", "publish_dialog_progress_uploading": "Cargando …", "publish_dialog_progress_uploading_detail": "Cargando {{loaded}}/{{total}} ({{percent}}%) …", "publish_dialog_message_published": "Notificación publicada", "publish_dialog_attachment_limits_file_and_quota_reached": "supera el límite y la cuota de archivos de {{fileSizeLimit}}, restan {{remainingBytes}}", "publish_dialog_attachment_limits_file_reached": "supera el límite de archivos de {{fileSizeLimit}}", "publish_dialog_attachment_limits_quota_reached": "supera la cuota, restan {{remainingBytes}}", "publish_dialog_priority_min": "Prioridad mínima", "publish_dialog_priority_default": "Prioridad predeterminada", "publish_dialog_priority_max": "Prioridad máxima", "publish_dialog_base_url_label": "URL del servicio", "publish_dialog_base_url_placeholder": "URL del servicio, por ejemplo, https://example.com", "publish_dialog_topic_label": "Nombre del tópico", "publish_dialog_topic_placeholder": "Nombre del tópico, ej. phil_alerts", "publish_dialog_title_label": "Título", "publish_dialog_message_label": "Mensaje", "publish_dialog_tags_placeholder": "Lista de etiquetas separadas por comas, por ejemplo: warning, srv1-backup", "publish_dialog_click_label": "Click URL", "publish_dialog_click_placeholder": "URL que se abre cuando se hace click en la notificación", "publish_dialog_email_label": "Email", "publish_dialog_email_placeholder": "Dirección a la que se reenviará la notificación, por ejemplo, phil@example.com", "publish_dialog_attach_label": "URL del archivo adjunto", "publish_dialog_filename_label": "Nombre del archivo", "publish_dialog_delay_placeholder": "Retraso en la entrega, por ejemplo, {{unixTimestamp}}, {{relativeTime}}, o \"{{naturalLanguage}}\" (sólo en inglés)", "publish_dialog_other_features": "Otras características:", "publish_dialog_chip_click_label": "Click URL", "publish_dialog_chip_email_label": "Reenviar al email", "publish_dialog_chip_attach_url_label": "Adjuntar un archivo por URL", "publish_dialog_chip_attach_file_label": "Adjuntar archivo local", "publish_dialog_chip_topic_label": "Cambiar de tópico", "publish_dialog_button_cancel_sending": "Cancelar el envío", "publish_dialog_button_cancel": "Cancelar", "publish_dialog_checkbox_publish_another": "Publicar otro", "publish_dialog_attached_file_title": "Archivo adjunto:", "publish_dialog_attached_file_filename_placeholder": "Nombre del archivo adjunto", "publish_dialog_drop_file_here": "Suelta el archivo aquí", "emoji_picker_search_placeholder": "Buscar emojis", "subscribe_dialog_subscribe_title": "Suscribirse al tópico", "subscribe_dialog_subscribe_description": "Los tópicos pueden no estar protegidos por contraseña, así que elija un nombre que no sea fácil de adivinar. Una vez suscrito, puede hacer PUT/POST de notificaciones.", "subscribe_dialog_subscribe_topic_placeholder": "Nombre del tópico, ej. phil_alerts", "subscribe_dialog_subscribe_use_another_label": "Usar otro servidor", "subscribe_dialog_login_title": "Es necesario iniciar sesión", "subscribe_dialog_login_description": "Este tópico está protegido por contraseña. Por favor, introduzca su nombre de usuario y contraseña para suscribirse.", "subscribe_dialog_login_username_label": "Nombre de usuario, ej. phil", "subscribe_dialog_login_password_label": "Contraseña", "common_back": "Volver", "subscribe_dialog_login_button_login": "Iniciar sesión", "subscribe_dialog_error_user_not_authorized": "Usuario {{username}} no autorizado", "subscribe_dialog_error_user_anonymous": "anónimo", "prefs_notifications_title": "Notificaciones", "prefs_notifications_sound_title": "Sonido de notificación", "prefs_notifications_min_priority_any": "Cualquier prioridad", "prefs_notifications_min_priority_low_and_higher": "Prioridad baja y superior", "prefs_notifications_min_priority_max_only": "Solo prioridad máxima", "prefs_notifications_delete_after_title": "Eliminar notificaciones", "prefs_notifications_delete_after_never": "Nunca", "prefs_notifications_delete_after_three_hours": "Después de tres horas", "prefs_notifications_delete_after_one_day": "Después de un día", "prefs_notifications_delete_after_one_week": "Después de una semana", "prefs_notifications_delete_after_one_month": "Después de un mes", "prefs_users_title": "Administrar usuarios", "prefs_users_description": "Añada/elimine usuarios para sus tópicos protegidos aquí. Tenga en cuenta que el nombre de usuario y la contraseña se guardan en el almacenamiento local del navegador.", "prefs_users_add_button": "Añadir usuario", "prefs_users_dialog_title_edit": "Editar usuario", "prefs_users_dialog_base_url_label": "URL del servicio, ej. https://ntfy.sh", "common_add": "Añadir", "common_save": "Guardar", "prefs_appearance_title": "Apariencia", "prefs_appearance_language_title": "Idioma", "error_boundary_title": "Oh no, ntfy tuvo un error", "error_boundary_button_copy_stack_trace": "Copiar el stack trace", "error_boundary_stack_trace": "Rastreo de pila", "error_boundary_gathering_info": "Reunir más información …", "notifications_example": "Ejemplo", "prefs_notifications_min_priority_title": "Prioridad mínima", "notifications_none_for_any_description": "Para enviar notificaciones a un tópico, simplemente realice un PUT o POST a la URL del tópico. Aquí hay un ejemplo usando uno de sus tópicos.", "subscribe_dialog_subscribe_button_cancel": "Cancelar", "subscribe_dialog_subscribe_button_subscribe": "Suscribir", "publish_dialog_message_placeholder": "Escriba un mensaje aquí", "publish_dialog_tags_label": "Etiquetas", "publish_dialog_priority_label": "Prioridad", "publish_dialog_priority_low": "Prioridad baja", "publish_dialog_priority_high": "Prioridad alta", "publish_dialog_delay_label": "Retraso", "publish_dialog_title_placeholder": "Título de la notificación, por ejemplo, Alerta de espacio en disco", "publish_dialog_details_examples_description": "Para ver ejemplos y una descripción detallada de todas las funciones de envío, consulte la documentación.", "publish_dialog_attach_placeholder": "Adjuntar un archivo por URL, por ejemplo, https://f-droid.org/F-Droid.apk", "publish_dialog_filename_placeholder": "Nombre del archivo adjunto", "publish_dialog_chip_delay_label": "Retraso en la entrega", "prefs_notifications_min_priority_default_and_higher": "Prioridad predeterminada y superior", "prefs_notifications_min_priority_high_and_higher": "Prioridad alta y superior", "prefs_users_table_user_header": "Usuario", "prefs_users_table_base_url_header": "URL del servicio", "publish_dialog_button_send": "Enviar", "prefs_notifications_sound_no_sound": "Sin sonido", "prefs_users_dialog_password_label": "Contraseña", "error_boundary_description": "Obviamente, esto no debería ocurrir. Lo sentimos mucho.
      Si tienes un minuto, por favor informa de esto en GitHub, o avísanos vía Discord o Matrix.", "prefs_users_dialog_title_add": "Añadir usuario", "common_cancel": "Cancelar", "prefs_users_dialog_username_label": "Nombre de usuario, ej. phil", "priority_max": "máx", "priority_high": "alta", "prefs_notifications_delete_after_one_month_description": "Las notificaciones se eliminan automáticamente después de un mes", "priority_min": "mín", "prefs_notifications_delete_after_three_hours_description": "Las notificaciones se eliminan automáticamente después de tres horas", "prefs_notifications_sound_description_none": "Las notificaciones no reproducen ningún sonido cuando llegan", "prefs_notifications_min_priority_description_x_or_higher": "Mostrar notificaciones si la prioridad es {{number}} ({{name}}) o superior", "prefs_notifications_min_priority_description_max": "Mostrar notificaciones si la prioridad es 5 (máxima)", "prefs_notifications_sound_description_some": "Las notificaciones reproducen el sonido {{sound}} cuando llegan", "prefs_notifications_min_priority_description_any": "Mostrando todas las notificaciones, independientemente de su prioridad", "prefs_notifications_delete_after_never_description": "Las notificaciones nunca se borran automáticamente", "priority_default": "predeterminada", "prefs_notifications_delete_after_one_day_description": "Las notificaciones se eliminan automáticamente después de un día", "prefs_notifications_delete_after_one_week_description": "Las notificaciones se eliminan automáticamente después de una semana", "priority_low": "baja", "notifications_actions_not_supported": "Acción no soportada en la aplicación web", "notifications_actions_http_request_title": "Enviar HTTP {{method}} a {{url}}", "error_boundary_unsupported_indexeddb_description": "La aplicación web ntfy necesita IndexedDB para funcionar y su navegador no soporta IndexedDB en modo de navegación privada.

      Si bien esto es desafortunado, tampoco tiene mucho sentido usar la aplicación web ntfy en modo de navegación privada de todos modos, porque todo está almacenado en el almacenamiento del navegador. Puede leer más sobre esto en este issue de GitHub, o hablar con nosotros en Discord o Matrix.", "action_bar_show_menu": "Mostrar menú", "action_bar_logo_alt": "logo de ntfy", "action_bar_toggle_action_menu": "Abrir/cerrar el menú de acción", "message_bar_show_dialog": "Mostrar diálogo de publicación", "message_bar_publish": "Publicar mensaje", "nav_button_muted": "Notificaciones silenciadas", "nav_button_connecting": "conectando", "notifications_list": "Lista de notificaciones", "notifications_list_item": "Notificación", "notifications_mark_read": "Marcar como leído", "notifications_delete": "Eliminar", "notifications_priority_x": "Prioridad {{priority}}", "notifications_new_indicator": "Nueva notificación", "notifications_attachment_image": "Imagen adjunta", "notifications_attachment_file_image": "archivo de imagen", "notifications_attachment_file_video": "archivo de video", "notifications_attachment_file_audio": "archivo de audio", "notifications_attachment_file_app": "Archivo de aplicación de Android", "notifications_attachment_file_document": "otro documento", "action_bar_toggle_mute": "Silenciar/reactivar notificaciones", "publish_dialog_emoji_picker_show": "Elige un emoji", "publish_dialog_topic_reset": "Restablecer tópico", "publish_dialog_click_reset": "Eliminar URL de clic", "publish_dialog_email_reset": "Eliminar el reenvío de correo electrónico", "publish_dialog_attach_reset": "Eliminar la URL del archivo adjunto", "publish_dialog_delay_reset": "Eliminar entrega retrasada", "publish_dialog_attached_file_remove": "Eliminar el archivo adjunto", "emoji_picker_search_clear": "Limpiar búsqueda", "subscribe_dialog_subscribe_base_url_label": "URL del servicio", "prefs_notifications_sound_play": "Reproducir el sonido seleccionado", "prefs_users_table": "Tabla de usuarios", "prefs_users_edit_button": "Editar usuario", "prefs_users_delete_button": "Eliminar usuario", "error_boundary_unsupported_indexeddb_title": "Navegación privada no soportada", "action_bar_profile_title": "Perfil", "action_bar_profile_settings": "Configuración", "signup_title": "Crear una cuenta ntfy", "signup_form_username": "Nombre de usuario", "signup_form_password": "Contraseña", "signup_form_confirm_password": "Confirmar contraseña", "signup_form_button_submit": "Registro", "signup_form_toggle_password_visibility": "Alternar la visibilidad de la contraseña", "signup_already_have_account": "¿Ya tienes una cuenta? ¡Iniciar sesión!", "signup_disabled": "El registro está deshabilitado", "signup_error_username_taken": "El nombre de usuario {{username}} ya está en uso", "signup_error_creation_limit_reached": "Límite de creación de cuenta alcanzado", "login_title": "Inicie sesión en su cuenta ntfy", "login_form_button_submit": "Iniciar sesión", "login_link_signup": "Registro", "login_disabled": "Inicio de sesión deshabilitado", "action_bar_account": "Cuenta", "action_bar_change_display_name": "Cambiar nombre de usuario", "action_bar_reservation_add": "Reservar tema", "action_bar_reservation_edit": "Modificar reserva", "action_bar_reservation_delete": "Quitar reserva", "action_bar_reservation_limit_reached": "Límite alcanzado", "action_bar_profile_logout": "Cerrar sesión", "action_bar_sign_in": "Iniciar sesión", "action_bar_sign_up": "Registro", "nav_button_account": "Cuenta", "nav_upgrade_banner_label": "Actualizar a ntfy Pro", "nav_upgrade_banner_description": "Reserve temas, más mensajes y correos electrónicos, y archivos adjuntos más grandes", "display_name_dialog_title": "Cambiar el nombre para mostrar", "display_name_dialog_description": "Establezca un nombre alternativo para un tópico que se muestra en la lista de suscripciones. Esto ayuda a identificar más fácilmente los temas con nombres complicados.", "display_name_dialog_placeholder": "Nombre para mostrar", "account_basics_username_admin_tooltip": "Eres Administrador", "account_basics_password_description": "Cambiar la contraseña de tu cuenta", "account_basics_password_dialog_confirm_password_label": "Confirmar contraseña", "account_basics_password_dialog_button_submit": "Cambiar contraseña", "account_basics_password_dialog_current_password_incorrect": "Contraseña incorrecta", "account_usage_unlimited": "Ilimitado", "account_usage_title": "Uso", "account_usage_of_limit": "de {{límite}}", "account_usage_limits_reset_daily": "Los límites de uso se restablecen diariamente a la medianoche (UTC)", "account_basics_tier_description": "Nivel de poder de tu cuenta", "account_basics_tier_admin": "Administrador", "alert_not_supported_context_description": "Las notificaciones sólo se admiten a través de HTTPS. Esta es una limitante de la API de notificaciones .", "reserve_dialog_checkbox_label": "Reservar tópico y configurar el acceso", "subscribe_dialog_subscribe_button_generate_topic_name": "Generar nombre", "subscribe_dialog_error_topic_already_reserved": "Tópico ya reservado", "account_basics_title": "Cuenta", "account_basics_username_title": "Nombre de usuario", "account_basics_username_description": "Hey, ese eres tú ❤", "account_basics_password_title": "Contraseña", "account_basics_password_dialog_title": "Cambiar contraseña", "account_basics_password_dialog_current_password_label": "Contraseña actual", "account_basics_password_dialog_new_password_label": "Contraseña nueva", "account_basics_tier_basic": "Básico", "account_basics_tier_admin_suffix_with_tier": "(con nivel {{tier}})", "account_basics_tier_admin_suffix_no_tier": "(sin nivel)", "account_basics_tier_free": "Gratis", "account_basics_tier_upgrade_button": "Actualizar a Pro", "account_basics_tier_change_button": "Cambiar", "account_basics_tier_paid_until": "Suscripción pagada hasta {{fecha}}, y se renovará automáticamente", "account_basics_tier_manage_billing_button": "Administrar la facturación", "account_basics_tier_title": "Tipo de cuenta", "account_tokens_description": "Utilice tokens de acceso al publicar y suscribirse a través de la API de ntfy para no tener que enviar las credenciales de su cuenta. Consulte la documentación para obtener más información.", "account_tokens_table_token_header": "Token", "account_tokens_table_label_header": "Etiqueta", "account_tokens_table_last_access_header": "Último acceso", "account_tokens_table_expires_header": "Expira", "account_tokens_table_never_expires": "Nunca expira", "account_tokens_table_current_session": "Sesión del navegador actual", "common_copy_to_clipboard": "Copiar al portapapeles", "account_tokens_table_copied_to_clipboard": "Token de acceso copiado", "account_tokens_table_cannot_delete_or_edit": "No se puede editar ni eliminar el token de sesión actual", "account_tokens_table_create_token_button": "Crear token de acceso", "account_tokens_table_last_origin_tooltip": "Desde la dirección IP {{ip}}, haga clic para buscar", "account_tokens_dialog_title_create": "Crear token de acceso", "account_tokens_dialog_title_edit": "Editar token de acceso", "account_tokens_dialog_title_delete": "Eliminar token de acceso", "account_tokens_dialog_label": "Etiqueta, por ejemplo, notificaciones de Radarr", "account_tokens_dialog_button_create": "Crear token", "prefs_reservations_table_everyone_write_only": "Puedo publicar y suscribirme, todo el mundo puede publicar", "account_usage_messages_title": "Mensajes publicados", "account_usage_reservations_title": "Tópicos reservados", "account_usage_reservations_none": "No hay tópicos reservados para esta cuenta", "account_usage_cannot_create_portal_session": "No se puede abrir el portal de facturación", "account_upgrade_dialog_title": "Cambiar nivel de cuenta", "account_basics_tier_payment_overdue": "Su pago ha vencido. Por favor actualice su método de pago o su cuenta será degradada en breve.", "account_basics_tier_canceled_subscription": "Su suscripción fue cancelada y será degradada a una cuenta gratuita el {{date}}.", "account_usage_emails_title": "Correos enviados", "account_usage_attachment_storage_title": "Almacenamiento de archivos adjuntos", "account_usage_attachment_storage_description": "{{filesize}} por archivo, eliminado después de {{expiry}}", "account_usage_basis_ip_description": "Las estadísticas de uso y los límites de esta cuenta se basan en su dirección IP, por lo que podrían ser compartidos con otros usuarios. Los límites mostrados anteriormente son aproximados basados en los límites existentes.", "account_delete_title": "Elimina cuenta", "account_delete_dialog_button_cancel": "Cancelar", "account_delete_dialog_billing_warning": "La eliminación de su cuenta también cancela su suscripción de facturación inmediatamente. Ya no tendrá acceso al panel de facturación.", "account_upgrade_dialog_reservations_warning_one": "El nivel seleccionado permite menos tópicos reservados que su nivel actual. Antes de cambiar de nivel, por favor elimine al menos una reserva. Puede eliminar reservas en Configuración.", "account_upgrade_dialog_tier_selected_label": "Seleccionado", "account_upgrade_dialog_button_cancel": "Cancelar", "account_upgrade_dialog_button_cancel_subscription": "Cancelar suscripción", "account_tokens_title": "Tokens de acceso", "account_delete_description": "Eliminar permanentemente su cuenta", "account_delete_dialog_description": "Esto borrará permanentemente su cuenta, incluyendo todos los datos almacenados en el servidor. Tras la eliminación, su nombre de usuario no estará disponible durante 7 días. Si realmente desea continuar, por favor confirme su contraseña en la casilla de abajo.", "account_delete_dialog_label": "Contraseña", "account_delete_dialog_button_submit": "Eliminar permanentemente la cuenta", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} tópicos reservados", "account_upgrade_dialog_cancel_warning": "Esto cancelará su suscripción y degradará su cuenta en {{date}}. En esa fecha, sus tópicos reservados y sus mensajes almacenados en caché en el servidor serán eliminados.", "account_upgrade_dialog_proration_info": "Prorrateo: al actualizar entre planes pagos, la diferencia de precio se cobrará de inmediato. Al cambiar a un nivel inferior, el saldo se utilizará para pagar futuros períodos de facturación.", "account_upgrade_dialog_reservations_warning_other": "El nivel seleccionado permite menos tópicos reservados que su nivel actual. Antes de cambiar de nivel, por favor elimine al menos {{count}} reservaciones. Puede eliminar reservaciones en Configuración.", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} mensajes diarios", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} correos diarios", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} por archivo", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} almacenamiento total", "account_upgrade_dialog_tier_current_label": "Actual", "account_upgrade_dialog_button_redirect_signup": "Regístrese ahora", "account_upgrade_dialog_button_pay_now": "Pague ahora y suscríbase", "account_upgrade_dialog_button_update_subscription": "Actualizar suscripción", "account_tokens_dialog_button_update": "Actualizar token", "account_tokens_dialog_expires_label": "El token de acceso expira en", "prefs_reservations_table": "Tabla de tópicos reservados", "prefs_reservations_dialog_description": "Reservar un tópico le otorga la propiedad sobre el mismo y le permite definir permisos de acceso para otros usuarios sobre el tópico.", "account_tokens_dialog_button_cancel": "Cancelar", "account_tokens_dialog_expires_unchanged": "No modificar la fecha de expiración", "prefs_reservations_add_button": "Agregar tópico reservado", "prefs_reservations_table_access_header": "Acceso", "reservation_delete_dialog_action_delete_description": "Los mensajes y archivos adjuntos almacenados en caché se eliminarán de forma permanente. Esta acción no se puede deshacer.", "account_tokens_dialog_expires_x_hours": "El token expira en {{hours}} horas", "account_tokens_delete_dialog_title": "Eliminar token de acceso", "prefs_reservations_limit_reached": "Ha alcanzado su límite de tópicos reservados.", "prefs_reservations_table_everyone_read_write": "Todo el mundo puede publicar y suscribirse", "reservation_delete_dialog_action_keep_description": "Los mensajes y archivos adjuntos que se almacenen en caché en el servidor pasarán a ser visibles públicamente para las personas que conozcan el nombre del tópico.", "account_tokens_dialog_expires_x_days": "El token expira en {{days}} días", "account_tokens_dialog_expires_never": "El token nunca expira", "account_tokens_delete_dialog_description": "Antes de eliminar un token de acceso, asegúrese de que ninguna aplicación o script lo está utilizando activamente. Esta acción no se puede deshacer.", "prefs_users_table_cannot_delete_or_edit": "No se puede eliminar o editar el usuario conectado", "prefs_reservations_title": "Tópicos reservados", "prefs_reservations_edit_button": "Editar acceso al tópico", "prefs_reservations_table_topic_header": "Tópico", "prefs_reservations_table_everyone_read_only": "Puedo publicar y suscribirme, todo el mundo puede suscribirse", "prefs_reservations_table_everyone_deny_all": "Sólo yo puedo publicar y suscribirme", "prefs_reservations_table_click_to_subscribe": "Haga clic para suscribirse", "prefs_reservations_dialog_title_edit": "Edita tópico reservado", "account_tokens_delete_dialog_submit_button": "Eliminar permanentemente el token", "prefs_reservations_description": "Aquí puede reservar nombres de tópicos para uso personal. Reservar un tópico le otorga la propiedad sobre el mismo y le permite definir permisos de acceso para otros usuarios sobre el tópico.", "prefs_reservations_delete_button": "Restablecer acceso a tópico", "prefs_reservations_table_not_subscribed": "No suscrito", "prefs_reservations_dialog_title_add": "Reservar tópico", "prefs_users_description_no_sync": "Los usuarios y las contraseñas no están sincronizados con su cuenta.", "prefs_reservations_dialog_title_delete": "Borrar reserva de tópico", "prefs_reservations_dialog_access_label": "Acceso", "reservation_delete_dialog_action_keep_title": "Conservar mensajes y archivos adjuntos en caché", "prefs_reservations_dialog_topic_label": "Tópico", "reservation_delete_dialog_description": "Al eliminar una reserva se renuncia a la propiedad sobre el tópico y se permite que otros lo reserven. Puede conservar o eliminar los mensajes y archivos adjuntos existentes.", "reservation_delete_dialog_action_delete_title": "Eliminar mensajes y archivos adjuntos en caché", "reservation_delete_dialog_submit_button": "Eliminar reserva", "account_basics_tier_interval_monthly": "mensualmente", "account_basics_tier_interval_yearly": "anualmente", "account_upgrade_dialog_interval_monthly": "Mensualmente", "account_upgrade_dialog_interval_yearly": "Anualmente", "account_upgrade_dialog_interval_yearly_discount_save": "ahorrar {{discount}}%", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "ahorra hasta un {{discount}}%", "account_upgrade_dialog_tier_features_no_reservations": "Ningún tema reservado", "account_upgrade_dialog_tier_price_per_month": "mes", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} facturado anualmente. Guardar {{save}}.", "account_upgrade_dialog_billing_contact_website": "Si tiene preguntas sobre facturación, consulte nuestra página web.", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} al año. Facturación mensual.", "account_upgrade_dialog_billing_contact_email": "Para preguntas sobre facturación, por favor contáctenos directamente.", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} mensaje diario", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} correo electrónico diario", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} tema reservado", "publish_dialog_call_label": "Llamada telefónica", "publish_dialog_call_placeholder": "Número de teléfono al cual llamar con el mensaje, por ejemplo +12223334444, o \"sí\"", "publish_dialog_chip_call_label": "Llamada telefónica", "account_basics_phone_numbers_title": "Números de teléfono", "account_basics_phone_numbers_description": "Para notificaciones por llamada teléfonica", "account_basics_phone_numbers_no_phone_numbers_yet": "Aún no hay números de teléfono", "account_basics_phone_numbers_dialog_number_label": "Número de teléfono", "account_basics_phone_numbers_dialog_number_placeholder": "p. ej. +1222333444", "account_basics_phone_numbers_dialog_verify_button_sms": "Envía SMS", "account_basics_phone_numbers_dialog_verify_button_call": "Llámame", "account_basics_phone_numbers_dialog_code_label": "Código de verificación", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_basics_phone_numbers_dialog_channel_call": "Llamar", "account_usage_calls_title": "Llamadas telefónicas realizadas", "account_usage_calls_none": "No se pueden hacer llamadas telefónicas con esta cuenta", "account_upgrade_dialog_tier_features_calls_one": "{{llamadas}} llamadas telefónicas diarias", "account_upgrade_dialog_tier_features_calls_other": "{{llamadas}} llamadas telefónicas diarias", "account_upgrade_dialog_tier_features_no_calls": "No hay llamadas telefónicas", "publish_dialog_call_reset": "Eliminar llamada telefónica", "account_basics_phone_numbers_dialog_description": "Para utilizar la función de notificación de llamadas, tiene que añadir y verificar al menos un número de teléfono. La verificación puede realizarse mediante un SMS o una llamada telefónica.", "account_basics_phone_numbers_copied_to_clipboard": "Número de teléfono copiado al portapapeles", "account_basics_phone_numbers_dialog_check_verification_button": "Confirmar código", "account_basics_phone_numbers_dialog_title": "Agregar número de teléfono", "account_basics_phone_numbers_dialog_code_placeholder": "p.ej. 123456", "publish_dialog_call_item": "Llamar al número de teléfono {{number}}", "publish_dialog_chip_call_no_verified_numbers_tooltip": "No hay números de teléfono verificados", "action_bar_mute_notifications": "Silenciar Notificaciones", "action_bar_unmute_notifications": "Reactivar notificaciones", "alert_notification_permission_denied_title": "Notificaciones bloqueadas", "alert_notification_permission_denied_description": "Porfavor, reactivelas en su navegador", "alert_notification_ios_install_required_title": "Requiere instalacion de iOS", "alert_notification_ios_install_required_description": "Haz click en el icono de compartir y Añadir a pantalla de inicio para activar las notificaciones de iOS", "notifications_actions_failed_notification": "Acción fallida", "publish_dialog_checkbox_markdown": "Formatear como Markdown", "subscribe_dialog_subscribe_use_another_background_info": "Las notificaciones de otros servidores no se recibirán cuando la aplicación web no esté abierta", "prefs_notifications_web_push_title": "Notificaciones en segundo plano", "prefs_notifications_web_push_enabled_description": "Las notificaciones se reciben incluso cuando la aplicación web no se está ejecutando (a través de Web Push)", "prefs_notifications_web_push_disabled": "Desactivado", "prefs_appearance_theme_title": "Tema", "prefs_appearance_theme_system": "Sistema (por defecto)", "error_boundary_button_reload_ntfy": "Volver a cargar ntfy", "web_push_subscription_expiring_title": "Las notificaciones se pausarán", "prefs_notifications_web_push_disabled_description": "Las notificaciones se reciben cuando la aplicación web se está ejecutando (a través de WebSocket)", "prefs_notifications_web_push_enabled": "Activado para {{server}}", "prefs_appearance_theme_light": "Claro", "prefs_appearance_theme_dark": "Oscuro", "web_push_subscription_expiring_body": "Abrir ntfy para seguir recibiendo notificaciones", "web_push_unknown_notification_title": "Notificación desconocida recibida del servidor", "web_push_unknown_notification_body": "Puede que necesites actualizar ntfy abriendo la aplicación web" } ntfy-2.11.0/web/public/static/langs/fa.json000066400000000000000000000040011462047176100204650ustar00rootroot00000000000000{ "signup_title": "ایجاد اکانت ntfy", "signup_form_button_submit": "ثبت نام", "signup_already_have_account": "قبلا اکانت دارید؟ وارد بشود", "signup_disabled": "ثبت نام غیرفعال است", "login_title": "ورود به اکانت ntfy", "login_link_signup": "ثبت نام", "login_disabled": "ورود غیرفعال است", "action_bar_show_menu": "نمایش منو", "action_bar_account": "اکانت", "action_bar_reservation_limit_reached": "دسترسی محدود", "action_bar_send_test_notification": "ارسال تستی اعلان", "action_bar_unmute_notifications": "لغو ساکت کردن اعلان ها", "action_bar_unsubscribe": "لغو اشتراک", "action_bar_toggle_mute": "بی صدا/لغو اعلان ها", "common_cancel": "لغو", "common_save": "ذخیره", "common_add": "اضافه کردن", "common_back": "عقب", "common_copy_to_clipboard": "کپی به کلیپ بورد", "signup_form_username": "نام کاربری", "signup_form_password": "کلمه عبور", "signup_form_confirm_password": "تایید پسورد", "signup_form_toggle_password_visibility": "تغییر وضعیت نمایش کلمه عبور", "signup_error_username_taken": "نام کاربری {{username}} قبلا استفاده شده است", "signup_error_creation_limit_reached": "به حد مجاز ایجاد حساب رسیده است", "login_form_button_submit": "ورود", "action_bar_logo_alt": "لوگوی ntfy", "action_bar_settings": "تنظیمات", "action_bar_change_display_name": "تغییر نام نمایشی", "action_bar_reservation_add": "رزرو موضوع", "action_bar_reservation_edit": "تغییر رزرو", "action_bar_reservation_delete": "حذف رزرو", "action_bar_mute_notifications": "ساکت کردن اعلان ها", "action_bar_clear_notifications": "پاک کردن تمام اعلان ها" } ntfy-2.11.0/web/public/static/langs/fi.json000066400000000000000000000732541462047176100205150ustar00rootroot00000000000000{ "publish_dialog_message_placeholder": "Kirjoita viesti tähän", "account_upgrade_dialog_tier_features_no_calls": "Ei puheluita", "account_upgrade_dialog_billing_contact_email": "Laskutukseen liittyvissä kysymyksissä contact us suoraan.", "account_tokens_dialog_title_create": "Luo käyttöoikeustunnus", "prefs_reservations_dialog_title_edit": "Muokkaa varattua topikkia", "account_basics_tier_interval_monthly": "Kuukausittain", "publish_dialog_checkbox_publish_another": "Julkaise toinen", "publish_dialog_details_examples_description": "Katso esimerkkejä ja yksityiskohtaisen kuvauksen kaikista lähetysominaisuuksista dokumentaatiosta.", "account_basics_tier_canceled_subscription": "Tilauksesi peruutettiin ja se muutetaan maksuttomaksi tiliksi {{date}}.", "priority_default": "oletus", "prefs_notifications_min_priority_title": "Vähimmäisprioriteetti", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} päivittäisiä puheluja", "account_upgrade_dialog_tier_current_label": "Nykyinen", "action_bar_account": "Kirjautuminen", "publish_dialog_filename_placeholder": "Liitetiedoston nimi", "account_basics_password_dialog_current_password_incorrect": "Salasana virheellinen", "account_tokens_table_token_header": "Token", "prefs_notifications_delete_after_never": "Ei koskaan", "prefs_users_description": "Lisää/poista käyttäjiä suojatuista topikeista täällä. Huomaa, että käyttäjätunnus ja salasana on tallennettu selaimen paikalliseen tallennustilaan.", "account_basics_phone_numbers_dialog_number_label": "Puhelinnumero", "subscribe_dialog_subscribe_description": "Aiheet eivät välttämättä ole salasanasuojattuja, joten valitse nimi, jota ei ole helposti arvatavissa. Kun olet tilannut, voit käyttää PUT/POST ilmoituksia.", "action_bar_logo_alt": "ntfy-logo", "account_basics_password_dialog_button_submit": "Vaihda salasana", "publish_dialog_emoji_picker_show": "Valitse emoji", "account_basics_username_title": "Käyttäjätunnus", "login_disabled": "Kirjautuminen poissa käytöstä", "account_basics_phone_numbers_dialog_check_verification_button": "Vahvista koodi", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "säästä jopa {{discount}}%", "account_tokens_dialog_label": "Etiketti, esim. Tutka-ilmoitukset", "common_add": "Lisää", "account_tokens_table_expires_header": "Vanhenee", "account_upgrade_dialog_proration_info": "Osuussuhde: Kun päivität maksullisten pakettien välillä, hintaero veloitetaan välittömästi. Kun siirryt alemmalle tasolle, saldoa käytetään tulevien laskutuskausien maksamiseen.", "prefs_reservations_dialog_access_label": "Oikeudet", "account_usage_attachment_storage_title": "Liiteiden säilytys", "prefs_users_dialog_username_label": "Username, esim pena", "message_bar_error_publishing": "Virhe ilmoituksen julkaisemisessa", "publish_dialog_chip_delay_label": "Viivästytä toimitusta", "account_usage_messages_title": "Julkaistut viestit", "notifications_attachment_open_button": "Avaa liite", "emoji_picker_search_clear": "Tyhjennä haku", "prefs_reservations_table_not_subscribed": "Ei tilattu", "publish_dialog_topic_placeholder": "Topikin nimi, esim. erkin_hälyt", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} päivittäisiä emaileja", "prefs_notifications_min_priority_max_only": "Vain maksimiprioriteetti", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} päivittäisiä puheluja", "prefs_notifications_sound_description_some": "Ilmoitukset soittavat {{sound}}-äänen saapuessaan", "prefs_reservations_edit_button": "Muokkaa topikin oikeuksia", "account_basics_phone_numbers_dialog_verify_button_sms": "Lähetä SMS", "account_basics_tier_change_button": "Vaihda", "account_tokens_dialog_expires_never": "Käyttöoikeus ei vanhene koskaan", "subscribe_dialog_login_title": "Kirjautuminen vaaditaan", "account_tokens_dialog_expires_x_days": "Tunnus vanhenee {{days}} päivän kuluttua", "notifications_new_indicator": "Uusi ilmoitus", "prefs_reservations_table_everyone_read_only": "Minä voin julkaista ja tilata, kaikki voivat tilata", "prefs_reservations_table_everyone_deny_all": "Vain minä voin julkaista ja tilata", "publish_dialog_chip_topic_label": "Vaihda topikkia", "account_basics_phone_numbers_dialog_description": "Jotta voit käyttää puheluilmoitusominaisuutta, sinun on lisättävä ja vahvistettava vähintään yksi puhelinnumero. Vahvistus voidaan tehdä tekstiviestillä tai puhelimitse.", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} varatut topikit", "publish_dialog_tags_placeholder": "Pilkuilla eroteltu luettelo tunnisteista, esim. varoitus, srv1-varmuuskopio", "account_delete_title": "Poista tili", "publish_dialog_attached_file_remove": "Poista liitetiedosto", "nav_button_connecting": "yhdistetään", "account_delete_dialog_label": "Salasana", "subscribe_dialog_login_button_login": "Kirjaudu", "account_upgrade_dialog_tier_features_no_reservations": "Ei varattuja topikkeja", "message_bar_type_message": "Kirjoita viesti tähän", "publish_dialog_base_url_label": "Palvelun URL", "signup_form_confirm_password": "Vahvista salasana", "prefs_users_table_cannot_delete_or_edit": "Kirjautunutta käyttäjää ei voi poistaa tai muokata", "account_basics_tier_admin_suffix_with_tier": "(mukana {{tier}} tier)", "prefs_notifications_delete_after_three_hours_description": "Ilmoitukset poistetaan automaattisesti kolmen tunnin kuluttua", "publish_dialog_chip_email_label": "Lähetä sähköpostiin", "publish_dialog_attach_label": "Liitteen URL-osoite", "signup_form_username": "Käyttäjätunnus", "prefs_notifications_delete_after_three_hours": "Kolmen tunnin jälkeen", "nav_button_muted": "Ilmoitukset mykistetty", "action_bar_profile_settings": "Asetukset", "signup_error_creation_limit_reached": "Tilin lisäämisraja saavutettu", "notifications_attachment_open_title": "Siirry osoitteeseen {{url}}", "prefs_notifications_min_priority_description_x_or_higher": "Näytä ilmoitukset, jos prioriteetti on {{number}} ({{name}}) tai suurempi", "reservation_delete_dialog_description": "Varauksen poistaminen luopuu topikin omistajuudesta ja antaa muiden varata sen. Voit säilyttää tai poistaa olemassa olevia viestejä ja liitteitä.", "subscribe_dialog_login_username_label": "Käyttäjätunnus, esim. pentti", "subscribe_dialog_error_user_not_authorized": "Käyttäjää {{username}} ei ole valtuutettu", "prefs_reservations_table_everyone_read_write": "Jokainen voi julkaista ja tilata", "prefs_reservations_dialog_title_delete": "Poista topikin varaus", "prefs_users_table": "Käyttäjätaulukko", "prefs_reservations_table_topic_header": "Topikki", "action_bar_toggle_mute": "Hiljennä/poista hiljennys", "reservation_delete_dialog_submit_button": "Poista varaus", "account_basics_title": "Tili", "nav_button_documentation": "Dokumentointi", "prefs_reservations_limit_reached": "Olet saavuttanut varattujen topikkien rajan.", "account_upgrade_dialog_interval_monthly": "Kuukausittain", "prefs_users_add_button": "Lisää käyttäjä", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} päivittäisiä viestejä", "publish_dialog_delay_reset": "Poista viivästetty toimitus", "account_basics_phone_numbers_no_phone_numbers_yet": "Ei puhelinnumeroita vielä", "action_bar_toggle_action_menu": "Avaa/sulje toimintovalikko", "subscribe_dialog_subscribe_button_generate_topic_name": "Luo nimi", "notifications_list_item": "Ilmoitus", "prefs_appearance_language_title": "Kieli", "notifications_attachment_link_expired": "latauslinkki vanhentunut", "subscribe_dialog_login_password_label": "Salasana", "prefs_notifications_delete_after_one_day_description": "Ilmoitukset poistetaan automaattisesti yhden päivän kuluttua", "subscribe_dialog_subscribe_button_subscribe": "Tilaa", "account_tokens_table_never_expires": "Ei vanhene koskaan", "account_tokens_delete_dialog_title": "Poista käyttöoikeustunnus", "prefs_notifications_delete_after_one_month": "Kuukauden kuluttua", "publish_dialog_chip_call_label": "Puhelu", "account_basics_phone_numbers_dialog_title": "Lisää puhelinnumero", "account_tokens_delete_dialog_description": "Ennen kuin poistat käyttöoikeustunnuksen, varmista, että mikään sovellus tai komentosarja ei käytä sitä aktiivisesti. Tätä toimintoa ei voi kumota.", "nav_button_all_notifications": "Kaikki ilmoitukset", "account_upgrade_dialog_button_cancel": "Peruuta", "notifications_attachment_image": "Liitekuva", "account_tokens_table_label_header": "Merkki", "notifications_attachment_file_document": "muu asiakirja", "publish_dialog_button_cancel": "Peruuta", "account_upgrade_dialog_billing_contact_website": "Laskutukseen liittyvissä kysymyksissä käy sivulla website.", "signup_form_button_submit": "Kirjaudu linkki", "account_basics_username_admin_tooltip": "Olet pääkäyttäjä", "prefs_notifications_delete_after_never_description": "Ilmoituksia ei koskaan poisteta automaattisesti", "account_delete_dialog_description": "Tämä poistaa pysyvästi tilisi, mukaan lukien kaikki palvelimelle tallennetut tiedot. Poistamisen jälkeen käyttäjätunnuksesi on poissa käytöstä 7 päivään. Jos todella haluat jatkaa, vahvista salasanasi alla olevaan kenttään.", "publish_dialog_email_reset": "Poista sähköpostin edelleenlähetys", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} varatut topikit", "account_usage_reservations_none": "Tälle tilille ei ole varattu topikkeja", "prefs_notifications_sound_description_none": "Ilmoitukset eivät toista ääntä saapuessaan", "account_tokens_description": "Käytä käyttjätunnuksia, kun julkaiset ja tilaat ntfy API:n kautta, jotta sinun ei tarvitse lähettää tilisi tunnistetietoja. Katso lisätietoja documentation.", "common_back": "Takaisin", "prefs_reservations_table": "Varattujen topikkien taulukko", "emoji_picker_search_placeholder": "Etsi emoji", "subscribe_dialog_subscribe_topic_placeholder": "Topikin nimi, esim. pentin_hälyt", "account_upgrade_dialog_button_cancel_subscription": "Peruuta tilaus", "notifications_attachment_file_audio": "äänitiedosto", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} päivittäisiä emaileja", "action_bar_sign_up": "Kirjautuminen", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} tiedostokoko", "notifications_mark_read": "Merkitse luetuksi", "prefs_reservations_description": "Voit varata topikien nimiä henkilökohtaiseen käyttöön täältä. Aiheen varaaminen antaa sinulle topikin omistajuuden ja voit määrittää topikkiin liittyviä käyttöoikeuksia muille käyttäjille.", "notifications_attachment_copy_url_title": "Kopioi liitteen URL-osoite leikepöydälle", "account_usage_title": "Käytössä", "account_basics_tier_upgrade_button": "Päivitä Pro-versioon", "prefs_users_description_no_sync": "Käyttäjiä ja salasanoja ei ole synkronoitu tiliisi.", "account_tokens_dialog_title_edit": "Muokkaa käyttöoikeustunnusta", "nav_button_publish_message": "Julkaise ilmoitus", "prefs_users_table_base_url_header": "Palvelin-URL", "notifications_click_copy_url_title": "Kopioi linkin URL-osoite leikepöydälle", "publish_dialog_attach_reset": "Poista liitteen URL-osoite", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} päivittäisiä viestejä", "account_upgrade_dialog_reservations_warning_one": "Valittu taso sallii vähemmän varattuja topikeita kuin nykyinen tasosi. Ennen kuin muutat tasosi, poista vähintään yksi varaus. Voit poistaa varauksia Asetuksista.", "common_copy_to_clipboard": "Kopioi leikkelepöydälle", "alert_not_supported_description": "Selaimesi ei tue ilmoituksia.", "subscribe_dialog_error_topic_already_reserved": "Topikki on jo varattu", "message_bar_publish": "Julkaise viesti", "alert_grant_description": "Myönnä selaimelle lupa näyttää työpöytäilmoituksia.", "prefs_users_table_user_header": "Käyttäjä", "error_boundary_stack_trace": "Pinon jälki", "prefs_users_dialog_password_label": "Salasana", "prefs_notifications_delete_after_one_week": "Viikon kuluttua", "publish_dialog_priority_low": "Matala tärkeys", "publish_dialog_priority_label": "Prioriteetti", "prefs_reservations_delete_button": "Poista topikin oikeudet", "account_basics_tier_admin_suffix_no_tier": "(ei tasoa)", "prefs_notifications_delete_after_one_week_description": "Ilmoitukset poistetaan automaattisesti viikon kuluttua", "error_boundary_unsupported_indexeddb_description": "Ntfy-verkkosovellus tarvitsee IndexedDB:n toimiakseen, eikä selaimesi tue IndexedDB:tä yksityisessä selaustilassa.

      Vaikka tämä on valitettavaa, ntfy-verkon käyttäminen ei myöskään ole kovin järkevää yksityisessä selaustilassa, koska kaikki on tallennettu selaimen tallennustilaan. Voit lukea siitä lisää tästä GitHub-numerosta tai puhua meille Discordissa tai Matrixissa.", "subscribe_dialog_subscribe_button_cancel": "Peruuta", "notifications_attachment_copy_url_button": "Kopioi URL", "account_basics_tier_payment_overdue": "Maksusi on myöhässä. Päivitä maksutapasi, tai tilisi poistetaan pian.", "publish_dialog_title_placeholder": "Ilmoituksen otsikko, esim. Levytilan hälytys", "account_basics_tier_description": "Tilisi taso", "account_basics_phone_numbers_description": "Puheluilmoituksia varten", "prefs_reservations_dialog_title_add": "Varaa topikki", "account_basics_tier_free": "Vapaa", "account_upgrade_dialog_cancel_warning": "Tämä peruuttaa tilauksesi ja alentaa tilisi {{date}}. Tuona päivänä topikit sekä palvelimen välimuistissa olevat viestit poistetaan.", "notifications_click_copy_url_button": "Kopioi linkki", "account_basics_tier_admin": "Admin", "subscribe_dialog_subscribe_title": "Tilaa topikki", "nav_topics_title": "Tilatut aiheet", "prefs_notifications_sound_title": "Ilmoitusääni", "prefs_notifications_min_priority_default_and_higher": "Oletusprioriteetti ja korkeammat", "prefs_reservations_table_access_header": "Oikeudet", "action_bar_show_menu": "Näytä menu", "action_bar_settings": "Asetukset", "notifications_copied_to_clipboard": "Kopioitu leikepöydälle", "account_delete_dialog_button_cancel": "Peruuta", "publish_dialog_delay_placeholder": "Toimituksen viivästyminen, esim. {{unixTimestamp}}, {{relativeTime}} tai \"{{naturalLanguage}}\" (vain englanti)", "account_tokens_table_copied_to_clipboard": "Käyttöoikeustunnus kopioitu", "alert_grant_title": "Ilmoitukset on poistettu käytöstä", "account_tokens_dialog_expires_x_hours": "Tunnus vanhenee {{hours}} tunnin kuluttua", "prefs_users_edit_button": "Muokkaa käyttäjää", "account_upgrade_dialog_title": "Muuta tilitasoa", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Ei vahvistettuja puhelinnumeroita", "priority_low": "matala", "prefs_reservations_table_click_to_subscribe": "Tilaa napsauttamalla", "account_basics_password_description": "Vaihda tilisi salasana", "publish_dialog_call_label": "Puhelu", "account_usage_calls_title": "Soitetut puhelut", "error_boundary_description": "Näin ei selvästikään pitäisi tapahtua. Pahoittelut tästä.
      Jos sinulla on hetki aikaa, ilmoita tästä GitHubissa tai ilmoita meille Discordin tai Matrix kautta.", "signup_form_toggle_password_visibility": "Vaihda salasanan näkyvyys", "login_link_signup": "Kirjautumislinkki", "publish_dialog_message_label": "Viesti", "publish_dialog_attached_file_title": "Liitetiedosto:", "priority_min": "min", "action_bar_sign_in": "Kirjaudu sisään", "action_bar_unsubscribe": "Peruuta tilaus", "account_basics_tier_basic": "Perus", "signup_title": "Lisää ntfy tili", "prefs_notifications_min_priority_description_any": "Näytetään kaikki ilmoitukset tärkeydestä riippumatta", "error_boundary_gathering_info": "Kerää lisätietoja…", "publish_dialog_priority_max": "Max. prioriteetti", "error_boundary_unsupported_indexeddb_title": "Yksityistä selaamista ei tueta", "prefs_notifications_delete_after_one_day": "Yhden päivän jälkeen", "error_boundary_title": "Voi ei, ntfy kaatui", "action_bar_change_display_name": "Näyttönimen vaihtaminen", "notifications_attachment_file_app": "Android-sovellustiedosto", "alert_not_supported_context_description": "Ilmoituksia tuetaan vain HTTPS:n kautta. Tämä on Ilmoitussovellusliittymän rajoitus.", "reservation_delete_dialog_action_keep_description": "Palvelimelle välimuistiin tallennetut viestit ja liitteet tulevat julkiseksi topikin nimen tietävälle henkilölle.", "prefs_reservations_add_button": "Lisää varattu topik", "prefs_reservations_title": "Varatut topikit", "account_basics_phone_numbers_copied_to_clipboard": "Puhelinnumero kopioitu leikepöydälle", "prefs_reservations_dialog_description": "Topikin varaaminen antaa sinulle aiheen omistajuuden ja voit määrittää aiheeseen liittyviä käyttöoikeuksia muille käyttäjille.", "account_basics_tier_title": "Tilin tyyppi", "account_usage_cannot_create_portal_session": "Laskutusportaalin avaaminen epäonnistui", "account_tokens_delete_dialog_submit_button": "Poista tunnus pysyvästi", "account_delete_description": "Poista tilisi pysyvästi", "account_basics_phone_numbers_dialog_number_placeholder": "esim. +35812345678", "account_basics_phone_numbers_dialog_code_placeholder": "esim. 123456", "prefs_notifications_title": "Ilmoitukset", "account_basics_tier_manage_billing_button": "Hallinnoi laskutusta", "account_tokens_title": "Käyttöoikeudet", "publish_dialog_email_label": "Email", "account_basics_username_description": "Hei, se olet sinä ❤", "prefs_reservations_dialog_topic_label": "Topik", "account_basics_password_dialog_confirm_password_label": "Vahvista salasana", "action_bar_reservation_edit": "Muokkaa varausta", "publish_dialog_base_url_placeholder": "Palvelun URL-osoite, esim. https://example.com", "prefs_users_title": "Hallinnoi käyttäjiä", "account_basics_tier_interval_yearly": "vuosittain", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} Laskutetaan kuukausittain.", "action_bar_clear_notifications": "Poista kaikki ilmoitukset", "account_delete_dialog_button_submit": "Poista tili pysyvästi", "account_basics_phone_numbers_dialog_channel_call": "Soitto", "account_basics_password_title": "Salasana", "account_basics_password_dialog_new_password_label": "Uusi salasana", "nav_upgrade_banner_label": "Päivitä ntfy Prohon", "account_tokens_dialog_expires_unchanged": "Jätä viimeinen käyttöpäivä ennalleen", "publish_dialog_delay_label": "Viive", "error_boundary_button_copy_stack_trace": "Kopioi pinon jälki", "publish_dialog_button_send": "Lähetä", "action_bar_reservation_delete": "Poista varaus", "publish_dialog_button_cancel_sending": "Peruuta lähetys", "account_tokens_dialog_title_delete": "Poista käyttöoikeustunnus", "account_usage_of_limit": "limiitistä {{limit}}", "publish_dialog_attach_placeholder": "Liitä tiedosto URL-osoitteen mukaan, esim. https://f-droid.org/F-Droid.apk", "publish_dialog_email_placeholder": "Osoite, johon ilmoitus välitetään, esim. urpo@example.com", "notifications_attachment_link_expires": "linkki vanhenee {{date}}", "action_bar_send_test_notification": "Lähetä testi-ilmoitus", "reservation_delete_dialog_action_keep_title": "Säilytä välimuistissa olevat viestit ja liitteet", "prefs_notifications_sound_no_sound": "Ei ääntä", "account_upgrade_dialog_interval_yearly": "Vuosittain", "publish_dialog_tags_label": "Tagit", "signup_form_password": "Salasana", "action_bar_reservation_limit_reached": "Raja saavutettu", "account_upgrade_dialog_button_redirect_signup": "Kirjaudu nyt", "publish_dialog_click_placeholder": "URL-osoite, joka avautuu, kun ilmoitusta napsautetaan", "alert_not_supported_title": "Ilmoituksia ei tueta", "account_tokens_dialog_button_cancel": "Peruuta", "subscribe_dialog_error_user_anonymous": "Anonyymi", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} laskutetaan vuosittain. Tallenna {{save}}.", "prefs_notifications_min_priority_high_and_higher": "Korkea prioriteetti ja korkeammat", "account_usage_basis_ip_description": "Tämän tilin käyttötilastot ja rajoitukset perustuvat IP-osoitteeseesi, joten ne voidaan jakaa muiden käyttäjien kanssa. Yllä esitetyt rajat ovat likimääräisiä perustuen olemassa oleviin rajoituksiin.", "publish_dialog_priority_high": "Korkea prioriteetti", "login_form_button_submit": "Kirjaudu", "account_basics_password_dialog_title": "Vaihda salasana", "priority_max": "max", "notifications_attachment_file_image": "kuvatiedosto", "account_usage_limits_reset_daily": "Käyttörajat nollataan päivittäin keskiyöllä (UTC)", "account_usage_unlimited": "Rajoittamaton", "prefs_users_delete_button": "Poista käyttäjä", "publish_dialog_click_label": "Napsauta URL-osoitetta", "prefs_notifications_min_priority_any": "Kaikki prioriteetit", "account_tokens_dialog_expires_label": "Käyttöoikeustunnus vanhenee", "publish_dialog_filename_label": "Tiedostonimi", "publish_dialog_chip_attach_file_label": "Liitä paikallinen tiedosto", "account_basics_phone_numbers_title": "Puhelinnumerot", "prefs_notifications_delete_after_title": "Poista ilmoitukset", "account_upgrade_dialog_interval_yearly_discount_save": "säästä {{discount}}%", "signup_disabled": "Kirjautuminen estetty", "publish_dialog_drop_file_here": "Pudota tiedosto tähän", "prefs_users_dialog_title_edit": "Muokkaa käyttäjää", "account_basics_password_dialog_current_password_label": "Nykyinen salasana", "prefs_notifications_min_priority_low_and_higher": "Matala prioriteetti ja korkeammat", "action_bar_profile_title": "Profiili", "account_tokens_dialog_button_update": "Päivitä tunnus", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} lopullinen tiedostokoko", "publish_dialog_title_label": "Otsikko", "prefs_reservations_table_everyone_write_only": "Minä voin julkaista ja tilata, kaikki voivat julkaista", "prefs_appearance_title": "Näkymä", "publish_dialog_topic_reset": "Resetoi topikki", "account_tokens_table_cannot_delete_or_edit": "Nykyistä istuntotunnusta ei voi muokata tai poistaa", "notifications_tags": "Tagit", "prefs_notifications_sound_play": "Toista valittu ääni", "account_tokens_table_last_access_header": "Viimeinen käynti", "action_bar_profile_logout": "Kirjaudu ulos", "publish_dialog_attached_file_filename_placeholder": "Liitetiedoston nimi", "publish_dialog_priority_default": "Oletusprioriteetti", "subscribe_dialog_subscribe_base_url_label": "Palvelimen URL", "account_tokens_table_last_origin_tooltip": "Napsauta IP-osoitteesta {{ip}} etsiäksesi", "account_usage_reservations_title": "Varatut topikit", "account_upgrade_dialog_tier_price_per_month": "Kuukausi", "message_bar_show_dialog": "Näytä julkaisudialogi", "publish_dialog_chip_attach_url_label": "Liitä tiedosto URL-osoitteen mukaan", "account_usage_calls_none": "Tällä tilillä ei voi soittaa puheluita", "notifications_click_open_button": "Avaa linkki", "account_tokens_table_current_session": "Nykyinen selainistunto", "account_upgrade_dialog_button_pay_now": "Maksa nyt ja tilaa", "nav_upgrade_banner_description": "Varaa aiheita, lisää viestejä ja sähköposteja, sekä suurempia liitteitä", "publish_dialog_call_reset": "Poista puhelu", "publish_dialog_other_features": "Muut ominaisuudet:", "subscribe_dialog_subscribe_use_another_label": "Käytä toista palvelinta", "reservation_delete_dialog_action_delete_title": "Poista välimuistissa olevat viestit ja liitteet", "signup_error_username_taken": "Käyttäjätunnus {{username}} on jo varattu", "account_basics_phone_numbers_dialog_code_label": "Vahvistuskoodi", "nav_button_subscribe": "Tilaa aihe", "publish_dialog_topic_label": "Topikin nimi", "reservation_delete_dialog_action_delete_description": "Välimuistissa olevat viestit ja liitteet poistetaan pysyvästi. Tätä toimintoa ei voi kumota.", "alert_grant_button": "Myönnä nyt", "account_basics_tier_paid_until": "Tilaus maksettu {{date}} asti, ja se uusitaan automaattisesti", "account_usage_attachment_storage_description": "{{tiedostokoko}} per tiedosto, poistettu {{expiry}} jälkeen", "publish_dialog_chip_click_label": "Napsauta URL-osoitetta", "prefs_notifications_delete_after_one_month_description": "Ilmoitukset poistetaan automaattisesti kuukauden kuluttua", "common_cancel": "Peruuta", "account_basics_phone_numbers_dialog_verify_button_call": "Soita minulle", "signup_already_have_account": "Onko sinulla jo tili? Kirjaudu sisään!", "publish_dialog_call_item": "Soita puhelinnumeroon {{number}}", "nav_button_account": "Tili", "publish_dialog_click_reset": "Poista napsautettava URL-osoite", "login_title": "Kirjaudu sisään ntfy-tilillesi", "notifications_list": "Ilmoitusluettelo", "common_save": "Tallenna", "prefs_users_dialog_base_url_label": "Palvelin URL, esim. https://ntfy.sh", "account_usage_emails_title": "Sähköpostit lähetetty", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "action_bar_reservation_add": "Varalla oleva aihe", "account_upgrade_dialog_tier_selected_label": "Valittu", "account_upgrade_dialog_button_update_subscription": "Päivitä tilaus", "notifications_attachment_file_video": "videotiedosto", "priority_high": "korkea", "notifications_priority_x": "Prioriteetti {{priority}}", "account_delete_dialog_billing_warning": "Tilin poistaminen peruuttaa myös laskutustilauksesi välittömästi. Et voi enää käyttää laskutuksen hallintapaneelia.", "prefs_notifications_min_priority_description_max": "Näytä ilmoitukset, jos prioriteetti on 5 (max)", "subscribe_dialog_login_description": "Tämä topikki on suojattu salasanalla. Anna käyttäjätunnus ja salasana.", "account_upgrade_dialog_reservations_warning_other": "Valittu taso sallii vähemmän varattuja topikkeja kuin nykyinen tasosi. Ennen kuin muutat tasosi, poista vähintään {{count}} varausta. Voit poistaa varauksia Asetuksista.", "prefs_users_dialog_title_add": "Lisää käyttäjä", "account_tokens_dialog_button_create": "Luo tunnus", "nav_button_settings": "Asetukset", "publish_dialog_priority_min": "Min. etusijalla", "account_tokens_table_create_token_button": "Luo käyttöoikeustunnus", "notifications_delete": "Poista", "notifications_actions_not_supported": "Toimintoa ei tueta verkkosovelluksessa", "notifications_actions_open_url_title": "Siirry osoitteeseen {{url}}", "notifications_none_for_any_title": "Et ole saanut ilmoituksia.", "notifications_none_for_topic_description": "Jos haluat lähettää ilmoituksia tähän topikkiin, lähetä PUT tai POST topikin URL-osoitteeseen.", "notifications_none_for_any_description": "Jos haluat lähettää ilmoituksia topikkiin, PUT tai POST topikin URL-osoitteeseen. Tässä on esimerkki yhden topikin käyttämisestä.", "notifications_no_subscriptions_title": "Näyttää siltä, että sinulla ei ole vielä tilauksia.", "notifications_none_for_topic_title": "Et ole vielä saanut ilmoituksia tästä aiheesta.", "notifications_actions_http_request_title": "Lähetä HTTP {{method}} osoitteeseen {{url}}", "reserve_dialog_checkbox_label": "Käänteinen aihe ja aseta pääsy", "publish_dialog_progress_uploading": "Lähetetään …", "publish_dialog_title_no_topic": "Julkaise ilmoitus", "notifications_example": "Esimerkki", "notifications_loading": "Ladataan ilmoituksia …", "notifications_no_subscriptions_description": "Klikkaa \"{{linktext}}\" linkkiä luodaksesi tai tilataksesi aihe. Sen jälkeen voit lähettää viestejä PUT tai POST metodeilla ja saat ilmoituksesi täällä.", "display_name_dialog_description": "Aseta vaihtoehtoinen nimi aiheelle, joka on näytetty tilaus-listassa. Tämä auttaa tunnistamaan aiheet helpommin, joilla on hankalat nimet.", "publish_dialog_message_published": "Ilmoitus julkaistu", "notifications_more_details": "Saadaksesi lisää tietoa, katso nettisivu tai documentointi.", "publish_dialog_attachment_limits_quota_reached": "ylittää kiintiön, {{remainingBytes}} jäljellä", "publish_dialog_title_topic": "Julkaise aiheeseen {{topic}}", "display_name_dialog_placeholder": "Näyttönimi", "publish_dialog_attachment_limits_file_and_quota_reached": "ylittää {{fileSizeLimit}} tiedostokoon rajan ja määrän, {{remainingBytes}} jäljellä", "publish_dialog_attachment_limits_file_reached": "ylittää {{fileSizeLimit}} tiedostokoon rajan", "publish_dialog_progress_uploading_detail": "Lähetetään {{loaded}}/{{total}} ({{percent}}%) …", "display_name_dialog_title": "Vaihda näyttönimi" } ntfy-2.11.0/web/public/static/langs/fr.json000066400000000000000000001030241462047176100205130ustar00rootroot00000000000000{ "nav_topics_title": "Sujets souscrits", "action_bar_settings": "Paramètres", "action_bar_send_test_notification": "Envoyer une notification de test", "action_bar_clear_notifications": "Effacer toutes les notifications", "action_bar_unsubscribe": "Se désabonner", "message_bar_type_message": "Tapez un message ici", "notifications_attachment_open_button": "Ouvrir la pièce jointe", "notifications_attachment_link_expires": "le lien expire {{date}}", "message_bar_error_publishing": "Erreur lors de la publication de la notification", "nav_button_all_notifications": "Toutes les notifications", "nav_button_settings": "Paramètres", "nav_button_documentation": "Documentation", "alert_not_supported_description": "Les notifications ne sont pas prises en charge par votre navigateur", "notifications_attachment_copy_url_title": "Copier l'URL de la pièce jointe dans le presse-papiers", "notifications_attachment_open_title": "Aller à {{url}}", "notifications_attachment_link_expired": "lien de téléchargement expiré", "nav_button_publish_message": "Publier la notification", "notifications_copied_to_clipboard": "Copié dans le presse-papiers", "alert_not_supported_title": "Notifications non prises en charge", "notifications_tags": "Étiquettes", "notifications_attachment_copy_url_button": "Copier l'URL", "notifications_click_copy_url_title": "Copier l'URL du lien dans le presse-papiers", "notifications_click_copy_url_button": "Copier le lien", "notifications_click_open_button": "Ouvrir le lien", "notifications_none_for_topic_title": "Vous n'avez pas encore reçu de notifications pour ce sujet.", "notifications_actions_open_url_title": "Aller à {{url}}", "notifications_example": "Exemple", "notifications_loading": "Chargement des notifications…", "publish_dialog_progress_uploading": "Téléversement…", "publish_dialog_priority_min": "Priorité minimum", "publish_dialog_priority_low": "Basse priorité", "publish_dialog_priority_default": "Priorité par défaut", "publish_dialog_base_url_label": "URL du service", "publish_dialog_base_url_placeholder": "URL du service, par ex. https://exemple.com", "publish_dialog_title_label": "Titre", "publish_dialog_message_label": "Message", "publish_dialog_topic_label": "Nom du sujet", "publish_dialog_message_placeholder": "Tapez un message ici", "publish_dialog_tags_label": "Étiquettes", "publish_dialog_email_label": "Courriel", "publish_dialog_email_placeholder": "Adresse à laquelle transmettre la notification, par exemple phil@exemple.com", "publish_dialog_chip_email_label": "Transférer vers le courriel", "notifications_no_subscriptions_title": "Il semble que vous n’ayez pas encore d’abonnements.", "publish_dialog_progress_uploading_detail": "Téléversement {{loaded}}/{{total}} ({{percent}} %) …", "publish_dialog_message_published": "Notification publiée", "publish_dialog_attachment_limits_file_and_quota_reached": "dépasse la limite et le quota du fichier {{fileSizeLimit}}, {{remainingBytes}} restant", "publish_dialog_priority_high": "Haute priorité", "publish_dialog_priority_max": "Priorité maximum", "publish_dialog_attachment_limits_file_reached": "Dépasse la limite du fichier {{fileSizeLimit}}", "nav_button_subscribe": "S'abonner au sujet", "notifications_no_subscriptions_description": "Cliquez sur le lien « {{linktext}} » pour créer ou vous abonner à un sujet. Après cela, vous pouvez envoyer des messages via PUT ou POST et vous recevrez des notifications ici.", "alert_notification_permission_required_title": "Les notifications sont désactivées", "alert_notification_permission_required_description": "Autorisez votre navigateur à afficher les notifications du bureau", "alert_notification_permission_required_button": "Accorder maintenant", "notifications_none_for_any_title": "Vous n'avez reçu aucune notification.", "publish_dialog_title_topic": "Publier vers {{topic}}", "publish_dialog_title_no_topic": "Publier la notification", "notifications_more_details": "Pour plus d'information, visitez le site web ou la documentation.", "publish_dialog_title_placeholder": "Titre de la notification, par ex. Alerte d'espace disque", "publish_dialog_topic_placeholder": "Nom du sujet, par ex. phil_alerts", "publish_dialog_delay_placeholder": "Délai de réception, par ex. {{unixTimestamp}}, {{relativeTime}}, ou « {{naturalLanguage}} » (en anglais seulement)", "publish_dialog_other_features": "Autres fonctionnalités :", "notifications_actions_not_supported": "Cette action n'est pas supportée dans l'application web", "notifications_actions_http_request_title": "Envoyer une requête HTTP {{method}} à {{url}}", "publish_dialog_attachment_limits_quota_reached": "quota dépassé, {{remainingBytes}} restants", "publish_dialog_tags_placeholder": "Liste séparée par des virgules d'étiquettes, par ex. avertissement,backup-srv1", "publish_dialog_priority_label": "Priorité", "publish_dialog_click_label": "URL du clic", "publish_dialog_click_placeholder": "URL ouverte lors d'un clic sur la notification", "publish_dialog_attach_label": "URL de la pièce jointe", "publish_dialog_attach_placeholder": "Attachez un fichier par une URL, par ex. https://f-droid.org/F-Droid.apk", "publish_dialog_filename_label": "Nom du fichier", "notifications_none_for_topic_description": "Pour envoyer des notifications à ce sujet, faites simplement une requête PUT ou POST à l'URL du sujet.", "notifications_none_for_any_description": "Pour envoyer des notifications à un sujet, faites simplement une requête PUT ou POST à l'URL du sujet. Voici un exemple utilisant un de vos sujets.", "publish_dialog_filename_placeholder": "Nom du fichier joint", "publish_dialog_delay_label": "Délai", "publish_dialog_chip_click_label": "Cliquez sur l'URL", "subscribe_dialog_subscribe_title": "S'abonner au sujet", "subscribe_dialog_login_title": "Connexion nécessaire", "prefs_notifications_min_priority_low_and_higher": "Priorité basse et au-dessus", "common_cancel": "Annuler", "error_boundary_button_copy_stack_trace": "Copier la trace d'appels", "publish_dialog_attached_file_title": "Fichier joint :", "publish_dialog_checkbox_publish_another": "Publier un autre", "publish_dialog_attached_file_filename_placeholder": "Nom du fichier joint", "subscribe_dialog_subscribe_use_another_label": "Utiliser un autre serveur", "subscribe_dialog_subscribe_button_cancel": "Annuler", "prefs_notifications_sound_description_none": "Les notifications ne font aucun son quand elles arrivent", "prefs_notifications_sound_description_some": "Les notifications jouent le son {{sound}} quand elles arrivent", "prefs_notifications_min_priority_description_x_or_higher": "Montrer les notifications si leur priorité est {{number}} ({{name}}) ou plus", "publish_dialog_button_cancel": "Annuler", "publish_dialog_button_send": "Envoyer", "publish_dialog_drop_file_here": "Déposez un fichier ici", "emoji_picker_search_placeholder": "Chercher un émoji", "subscribe_dialog_subscribe_description": "Le sujet n'est peut-être pas protégé par un mot de passe, choisissez un nom de sujet difficile à deviner. Une fois abonné, vous pouvez PUT/POST des notifications.", "subscribe_dialog_subscribe_topic_placeholder": "Nom de sujet, par ex. alertes_de_phil", "subscribe_dialog_subscribe_button_subscribe": "S'abonner", "subscribe_dialog_login_description": "Ce sujet est protégé par un mot de passe. Veuillez entrer le nom d'utilisateur et le mot de passe pour vous abonner.", "subscribe_dialog_login_username_label": "Nom d'utilisateur, par ex. phil", "subscribe_dialog_login_button_login": "Se connecter", "prefs_notifications_sound_title": "Son de notification", "prefs_notifications_delete_after_never": "Jamais", "prefs_users_table_base_url_header": "URL de service", "subscribe_dialog_login_password_label": "Mot de passe", "prefs_notifications_title": "Notifications", "prefs_notifications_delete_after_title": "Supprimer les notifications", "prefs_users_add_button": "Ajouter un utilisateur", "common_back": "Retour", "subscribe_dialog_error_user_anonymous": "anonyme", "prefs_notifications_sound_no_sound": "Aucun son", "prefs_notifications_min_priority_title": "Priorité minimum", "prefs_notifications_min_priority_description_any": "Montrer toutes les notifications, quelque soit leur priorité", "prefs_notifications_min_priority_description_max": "Montrer les notifications si la priorité est 5 (max)", "prefs_notifications_min_priority_default_and_higher": "Priorité par défaut et au-dessus", "prefs_notifications_min_priority_max_only": "Seulement la priorité maximale", "prefs_notifications_delete_after_three_hours": "Après trois heures", "prefs_notifications_delete_after_one_day": "Après un jour", "subscribe_dialog_error_user_not_authorized": "L'utilisateur {{username}} n'est pas autorisé", "prefs_notifications_min_priority_any": "N'importe quelle priorité", "prefs_notifications_min_priority_high_and_higher": "Priorité haute et au-dessus", "prefs_users_dialog_base_url_label": "URL du service, par ex. https://ntfy.sh", "prefs_notifications_delete_after_one_week_description": "Les notifications sont supprimées automatiquement après une semaine", "prefs_users_dialog_username_label": "Nom d'utilisateur, par ex. phil", "prefs_users_dialog_password_label": "Mot de passe", "prefs_notifications_delete_after_one_month_description": "Les notifications sont supprimées automatiquement après un mois", "prefs_users_title": "Gérer les utilisateurs", "prefs_users_description": "Ajoutez/supprimez des utilisateurs pour vos sujets protégés ici. Notez que cet utilisateur et ce mot de passe sont stockés dans le stockage local du navigateur.", "prefs_users_table_user_header": "Utilisateur", "prefs_users_dialog_title_edit": "Éditer l'utilisateur", "common_add": "Ajouter", "error_boundary_description": "Ceci ne devrait évidemment pas arriver. Désolé pour ça.
      Si vous avez une minute, merci de signaler ceci sur GitHub, ou faites-le nous savoir par Discord ou Matrix.", "prefs_users_dialog_title_add": "Ajouter un utilisateur", "error_boundary_stack_trace": "Trace de pile d'appels", "error_boundary_gathering_info": "Récupérer plus d'information…", "prefs_notifications_delete_after_one_week": "Après une semaine", "prefs_notifications_delete_after_one_month": "Après un mois", "prefs_notifications_delete_after_never_description": "Les notifications ne sont jamais supprimées automatiquement", "prefs_notifications_delete_after_three_hours_description": "Les notifications sont supprimées automatiquement après trois heures", "prefs_notifications_delete_after_one_day_description": "Les notifications sont supprimées automatiquement après un jour", "prefs_appearance_title": "Apparence", "prefs_appearance_language_title": "Langue", "priority_min": "min", "priority_low": "basse", "priority_default": "défault", "priority_high": "haute", "priority_max": "max", "error_boundary_title": "Oh non, ntfy a planté", "publish_dialog_chip_attach_url_label": "Joindre un fichier par URL", "publish_dialog_chip_attach_file_label": "Joindre un fichier local", "publish_dialog_chip_delay_label": "Délayer l'envoi", "publish_dialog_chip_topic_label": "Changer de sujet", "publish_dialog_details_examples_description": "Pour des exemples et une description détaillée des fonctionnalités d'envoi, voir la documentation.", "publish_dialog_button_cancel_sending": "Annuler l'envoi", "common_save": "Enregistrer", "notifications_new_indicator": "Nouvelle notification", "publish_dialog_delay_reset": "Retirer le délai de réception", "notifications_list_item": "Notification", "notifications_priority_x": "Priorité {{priority}}", "notifications_mark_read": "Marquer comme lu", "notifications_attachment_image": "Image jointe", "notifications_delete": "Supprimer", "notifications_attachment_file_video": "fichier vidéo", "notifications_attachment_file_audio": "fichier audio", "prefs_users_table": "Liste des utilisateurs", "notifications_attachment_file_image": "fichier image", "notifications_attachment_file_app": "fichier d'application Android", "notifications_attachment_file_document": "autre document", "prefs_notifications_sound_play": "Jouer le son sélectionné", "error_boundary_unsupported_indexeddb_description": "L'application web ntfy a besoin d'IndexedDB pour fonctionner, mais votre navigateur ne supporte pas IndexedDB en navigation privée.

      Bien que cela soit regrettable, il serait peu utile d'utiliser l'application web ntfy en navigation privée, car tout est stocké par votre navigateur. Vous pouvez vous renseigner plus amplement à ce propos dans ce ticket GitHub, ou en parler avec nous sur Discord ou Matrix.", "action_bar_show_menu": "Montrer le menu", "action_bar_toggle_mute": "Mettre en sourdine/réactiver les notifications", "action_bar_toggle_action_menu": "Ouvrir/fermer le menu d'actions", "publish_dialog_emoji_picker_show": "Choisir un emoji", "publish_dialog_topic_reset": "Réinitialiser le sujet", "message_bar_publish": "Publier le message", "nav_button_muted": "Notifications en sourdine", "nav_button_connecting": "connexion en cours", "notifications_list": "Liste des notifications", "message_bar_show_dialog": "Montrer le formulaire de publication", "action_bar_logo_alt": "Logo de ntfy", "publish_dialog_click_reset": "Retirer l'URL du clic", "publish_dialog_email_reset": "Retirer le transfert par courriel", "publish_dialog_attach_reset": "Retirer l'URL de la pièce jointe", "emoji_picker_search_clear": "Effacer la recherche", "subscribe_dialog_subscribe_base_url_label": "URL du service", "prefs_users_edit_button": "Éditer l'utilisateur", "prefs_users_delete_button": "Supprimer l'utilisateur", "error_boundary_unsupported_indexeddb_title": "Navigation privée non prise en charge", "publish_dialog_attached_file_remove": "Retirer le fichier joint", "signup_form_password": "Mot de passe", "signup_form_confirm_password": "Confirmation du mot de passe", "signup_disabled": "L'inscription est désactivée", "signup_error_username_taken": "L'identifiant {{username}} est déjà utilisé", "signup_error_creation_limit_reached": "Limite de création de comptes atteinte", "login_title": "Se connecter à son compte Ntfy", "login_form_button_submit": "Se connecter", "login_link_signup": "S'inscrire", "login_disabled": "La connection est désactivée", "action_bar_account": "Compte", "action_bar_profile_title": "Profil", "action_bar_profile_settings": "Paramètres", "action_bar_sign_in": "Se connecter", "action_bar_sign_up": "Inscription", "nav_button_account": "Compte", "signup_title": "Créer un compte Ntfy", "signup_form_username": "Identifiant", "signup_form_button_submit": "S'inscrire", "signup_already_have_account": "Vous avez déjà un compte ? Connectez-vous !", "action_bar_profile_logout": "Se déconnecter", "signup_form_toggle_password_visibility": "Afficher le mot de passe", "action_bar_change_display_name": "Changer le nom affiché", "prefs_reservations_table_click_to_subscribe": "Cliquer pour s'abonner", "account_tokens_table_cannot_delete_or_edit": "Impossible d'éditer ou de supprimer le jeton de la session actuelle", "account_tokens_dialog_button_cancel": "Annuler", "prefs_users_table_cannot_delete_or_edit": "Impossible de supprimer ou de modifier un utilisateur connecté", "prefs_users_description_no_sync": "Les utilisateurs et les mots de passe ne sont pas synchronisés avec votre compte.", "account_tokens_dialog_button_update": "Mettre à jour un jeton", "nav_upgrade_banner_description": "Réservation de sujets, plus de messages et d'emails, et des pièces jointes plus larges", "display_name_dialog_description": "Mettre un nom supplémentaire pour un sujet qui est affiché dans la liste des abonnements. Cela aide à identifier plus facilement les sujets ayant des noms compliqués.", "account_usage_basis_ip_description": "Les statistiques d'utilisation et les limites pour ce compte sont basées sur votre adresse IP, donc elles peuvent être partagées avec d'autres utilisateurs. Les limites affichées plus haut sont approximativement basées sur les limites de débit existantes.", "action_bar_reservation_add": "Réserver un sujet", "action_bar_reservation_edit": "Changer la réservation", "action_bar_reservation_delete": "Supprimer la réservation", "action_bar_reservation_limit_reached": "Limite atteinte", "nav_upgrade_banner_label": "Passer à ntfy Pro", "display_name_dialog_title": "Changer le nom affiché", "reserve_dialog_checkbox_label": "Réserver un sujet et en configurer l'accès", "display_name_dialog_placeholder": "Nom affiché", "subscribe_dialog_subscribe_button_generate_topic_name": "Générer un nom", "subscribe_dialog_error_topic_already_reserved": "Sujet déjà réservé", "account_basics_title": "Compte", "account_basics_username_title": "Nom d'utilisateur", "account_basics_username_description": "Hé, c'est toi ❤", "account_basics_username_admin_tooltip": "Vous êtes Administrateur", "account_basics_password_title": "Mot de passe", "account_basics_password_description": "Changer le mot de passe de votre compte", "account_basics_password_dialog_title": "Changer le mot de passe", "account_basics_password_dialog_current_password_label": "Mot de passe actuel", "account_basics_password_dialog_new_password_label": "Nouveau mot de passe", "account_basics_password_dialog_confirm_password_label": "Confirmer le mot de passe", "account_basics_password_dialog_button_submit": "Changer le mot de passe", "account_basics_password_dialog_current_password_incorrect": "Mot de passe incorrect", "account_usage_title": "Utilisation", "account_usage_of_limit": "sur {{limit}}", "account_usage_unlimited": "Illimité", "account_usage_limits_reset_daily": "Les limites d'utilisation sont réinitialisées chaque jour à minuit (UTC)", "account_basics_tier_title": "Type de compte", "account_basics_tier_description": "Le niveau de puissance de votre compte", "account_basics_tier_admin": "Administrateur", "account_basics_tier_admin_suffix_with_tier": "(avec le tarif {{tier}})", "account_basics_tier_admin_suffix_no_tier": "(pas de tarif)", "account_basics_tier_free": "Gratuit", "account_basics_tier_upgrade_button": "Passer à Pro", "account_basics_tier_change_button": "Changer", "account_basics_tier_paid_until": "Abonnement payé jusqu'à {{date}}, et va être automatiquement renouvelé", "account_basics_tier_canceled_subscription": "Votre abonnement a été annulé et va être rétrogradé vers un compte gratuit le {{date}}.", "account_basics_tier_manage_billing_button": "Gérer la facturation", "account_usage_messages_title": "Messages publiés", "account_usage_emails_title": "Emails envoyés", "account_usage_reservations_title": "Sujets réservés", "account_usage_reservations_none": "Pas de sujet réservé pour ce compte", "account_usage_attachment_storage_title": "Stockage des pièces jointes", "account_usage_attachment_storage_description": "{{filesize}} par fichier, supprimé après {{expiry}}", "account_usage_cannot_create_portal_session": "Impossible d'ouvrir le portail de facturation", "account_delete_title": "Supprimer le compte", "account_delete_description": "Supprimer définitivement votre compte", "account_basics_tier_basic": "Basique", "account_delete_dialog_description": "Cela supprimera définitivement votre compte, ainsi que toutes les données qui sont stockées sur le serveur. Après suppression, votre nom d'utilisateur sera indisponible pendant 7 jours. Si vous voulez vraiment faire cela, veuillez le confirmer en mettant votre mot de passe dans le champ ci-dessous.", "account_delete_dialog_label": "Mot de passe", "account_delete_dialog_button_cancel": "Annuler", "account_delete_dialog_button_submit": "Supprimer définitivement le compte", "account_delete_dialog_billing_warning": "Supprimer votre compte annule aussi immédiatement votre facturation. Vous n'aurez plus accès à votre tableau de bord de facturation.", "account_upgrade_dialog_title": "Changer le tarif du compte", "account_upgrade_dialog_proration_info": "Facturation : Lors d'un changement vers un tiers payant, la différence de prix sera débitée immédiatement. En passant d'un tiers payant a gratuit, votre solde sera utilisé pour payer de futur factures.", "account_upgrade_dialog_reservations_warning_other": "Le tarif sélectionné autorise moins de sujets réservés que votre tarif actuel. Avant de changer de tarif, veuillez supprimer au moins {{count}} sujets réservés. Vous pouvez supprimer des sujets réservés dans les Paramètres.", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} sujets réservés", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} messages journaliers", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} emails journaliers", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} par fichier", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} stockage total", "account_upgrade_dialog_tier_selected_label": "Sélectionné", "account_upgrade_dialog_tier_current_label": "Actuel", "account_upgrade_dialog_button_cancel": "Annuler", "account_upgrade_dialog_button_redirect_signup": "S'inscrire maintenant", "account_upgrade_dialog_button_pay_now": "Payer maintenant et s'abonner", "account_upgrade_dialog_button_cancel_subscription": "Annuler l'abonnement", "account_upgrade_dialog_button_update_subscription": "Mettre à jour l'abonnement", "account_tokens_title": "Jetons d'accès", "account_tokens_table_token_header": "Jeton", "account_tokens_table_label_header": "Étiquette", "account_tokens_table_last_access_header": "Dernier accès", "account_tokens_table_expires_header": "Expire", "account_tokens_table_never_expires": "N'expire jamais", "account_tokens_table_current_session": "Session de navigation actuelle", "common_copy_to_clipboard": "Copier dans le presse-papier", "account_tokens_table_copied_to_clipboard": "Jeton d'accès copié", "account_tokens_table_create_token_button": "Créer un jeton d'accès", "account_tokens_table_last_origin_tooltip": "Depuis l'adresse IP {{ip}}, cliquer pour rechercher", "account_tokens_dialog_title_create": "Créer un jeton d'accès", "account_tokens_dialog_title_edit": "Modifier le jeton d'accès", "account_tokens_dialog_title_delete": "Supprimer le jeton d'accès", "account_tokens_dialog_label": "Étiquette, par ex. Notifications Radarr", "account_tokens_dialog_button_create": "Créer un jeton", "account_tokens_dialog_expires_label": "Le jeton d'accès expire dans", "account_tokens_dialog_expires_unchanged": "Laisser la date d'expiration inchangée", "account_tokens_dialog_expires_x_hours": "Le jeton expire dans {{hours}} heures", "account_tokens_dialog_expires_x_days": "Le jeton expire dans {{days}} jours", "account_tokens_dialog_expires_never": "Le jeton n'expire jamais", "account_tokens_delete_dialog_title": "Supprimer le jeton d'accès", "account_tokens_delete_dialog_submit_button": "Supprimer définitivement le jeton", "prefs_reservations_title": "Sujets réservés", "prefs_reservations_limit_reached": "Vous avez atteint votre limite de réservation de sujets.", "prefs_reservations_add_button": "Ajouter un sujet réservé", "prefs_reservations_edit_button": "Modifier l'accès d'un sujet", "prefs_reservations_delete_button": "Réinitialiser l'accès d'un sujet", "prefs_reservations_table": "Tableau des sujets réservés", "prefs_reservations_table_topic_header": "Sujet", "prefs_reservations_table_access_header": "Accès", "prefs_reservations_table_everyone_deny_all": "Seulement moi peut publier et m'abonner", "prefs_reservations_table_everyone_read_only": "Je peux publier et m'abonner, tout le monde peut s'abonner", "prefs_reservations_table_everyone_write_only": "Je peux publier et m'abonner, tout le monde peut publier", "prefs_reservations_table_everyone_read_write": "Tout le monde peut publier et s'abonner", "prefs_reservations_table_not_subscribed": "Pas abonné", "prefs_reservations_dialog_title_add": "Réserver un sujet", "prefs_reservations_dialog_title_edit": "Modifier un sujet réservé", "prefs_reservations_dialog_title_delete": "Supprimé un sujet réservé", "prefs_reservations_dialog_description": "Réserver un sujet vous donne la propriété sur ce sujet et vous permet de définir les permissions d'accès à ce sujet pour d'autres utilisateurs.", "prefs_reservations_dialog_topic_label": "Sujet", "prefs_reservations_dialog_access_label": "Accès", "reservation_delete_dialog_description": "Supprimer un sujet réservé abandonne la propriété sur le sujet et permet aux autres de le réserver. Vous pouvez garder ou supprimer les messages et pièces jointes existantes.", "reservation_delete_dialog_action_keep_title": "Garder les messages et pièces jointes mises en cache", "reservation_delete_dialog_action_keep_description": "Les messages et pièces jointes qui sont dans le cache du serveur deviendront visibles publiquement pour les personnes ayant connaissance du nom du sujet.", "reservation_delete_dialog_action_delete_title": "Supprimer les messages et pièces jointes mises en cache", "reservation_delete_dialog_action_delete_description": "Les messages et pièces jointes mises en cache seront définitivement supprimées. Cette action ne peut pas être annulée.", "reservation_delete_dialog_submit_button": "Supprimer un sujet réservé", "alert_not_supported_context_description": "Les notifications ne sont supportées qu'en HTTPS. C'est une limitation de la Notifications API.", "account_basics_tier_payment_overdue": "Votre paiement est en retard. Veuillez mettre à jour votre méthode de paiement, ou votre compte va bientôt être rétrogradé.", "account_upgrade_dialog_cancel_warning": "Cela va annuler votre abonnement et rétrograder votre compte le {{date}}. Ce jour là, les sujets réservés ainsi que tous les messages dans le cache du serveur seront supprimés.", "account_upgrade_dialog_reservations_warning_one": "Le tarif sélectionné autorise moins de sujets réservés que votre tarif actuel. Avant de changer de tarif, veuillez supprimer au moins un sujet réservé. Vous pouvez supprimer des sujets réservés dans les Paramètres.", "account_tokens_description": "Utilisez des jetons d'accès lors de la publication ou de l'abonnement via l'API de ntfy, afin d'éviter d'envoyer vos identifiants de compte. Regardez la documentation pour en savoir plus.", "account_tokens_delete_dialog_description": "Avant de supprimer un jeton d'accès, assurez-vous qu'aucune application ou script ne soit en train de l'utiliser. Cette action ne peut pas être annulée.", "prefs_reservations_description": "Vous pouvez réserver les noms de sujet à usage personnel ici. Réserver un sujet vous donne la propriété sur ce sujet et vous permet de définir les permissions d'accès à ce sujet pour d'autres utilisateurs.", "account_basics_tier_interval_yearly": "annuel", "account_upgrade_dialog_interval_yearly": "Annuel", "account_upgrade_dialog_interval_yearly_discount_save": "économisez {{discount}}%", "account_upgrade_dialog_tier_features_no_reservations": "Aucun sujet(s) réservé(s)", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} par an. Prélevé mensuellement.", "account_upgrade_dialog_billing_contact_website": "Pour des questions en rapport avec la facturation, se référer à notre site internet.", "account_basics_tier_interval_monthly": "mensuel", "account_upgrade_dialog_interval_monthly": "Mensuel", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "économisez jusqu'à {{discount}}%", "account_upgrade_dialog_tier_price_per_month": "mois", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} prélevé annuellement. Économisez {{save}}.", "account_upgrade_dialog_billing_contact_email": "Pour des questions concernant la facturation, merci de nous contacter directement.", "publish_dialog_call_label": "Appel téléphonique", "account_basics_phone_numbers_title": "Numéros de téléphone", "account_basics_phone_numbers_dialog_description": "Pour utiliser la fonctionnalité de notification par appels, vous devez ajouter et vérifier au moins un numéro de téléphone. La vérification peut se faire par SMS ou appel téléphonique.", "account_basics_phone_numbers_description": "Pour des notifications par appel téléphoniques", "account_basics_phone_numbers_no_phone_numbers_yet": "Pas encore de numéros de téléphone", "account_basics_phone_numbers_copied_to_clipboard": "Numéro de téléphone copié dans le presse-papier", "account_basics_phone_numbers_dialog_title": "Ajouter un numéro de téléphone", "account_basics_phone_numbers_dialog_number_label": "Numéro de téléphone", "account_basics_phone_numbers_dialog_number_placeholder": "Ex : +33701020304", "account_basics_phone_numbers_dialog_verify_button_sms": "Envoyer un SMS", "account_basics_phone_numbers_dialog_verify_button_call": "Appelez moi", "account_basics_phone_numbers_dialog_code_label": "Code de vérification", "account_basics_phone_numbers_dialog_code_placeholder": "Ex : 123456", "account_basics_phone_numbers_dialog_check_verification_button": "Code de confirmarion", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_basics_phone_numbers_dialog_channel_call": "Appeler", "account_usage_calls_none": "Aucun appels téléphoniques ne peut être fait avec ce compte", "publish_dialog_call_reset": "Supprimer les appels téléphoniques", "publish_dialog_chip_call_label": "Appel téléphonique", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} message journalier", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} mail journalier", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} appels journaliers", "account_upgrade_dialog_tier_features_no_calls": "Aucun appel", "publish_dialog_call_item": "Appeler le numéro {{number}}", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Aucun numéro de téléphone vérifié", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} sujet réservé", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} appels journaliers", "account_usage_calls_title": "Appels téléphoniques passés", "action_bar_mute_notifications": "Désactiver les notifications", "action_bar_unmute_notifications": "Réactiver les notifications", "alert_notification_permission_denied_title": "Les notifications sont bloquées", "alert_notification_permission_denied_description": "Veuillez les réactiver dans votre navigateur", "alert_notification_ios_install_required_description": "Cliquez sur l'icône Partager, puis Sur l'écran d'accueil pour activer les notifications sur iOS", "alert_notification_ios_install_required_title": "Installation iOS nécessaire", "notifications_actions_failed_notification": "Échec de l'action", "publish_dialog_checkbox_markdown": "Formater en Markdown", "subscribe_dialog_subscribe_use_another_background_info": "Les notifications provenant d'autres serveurs ne seront pas reçues tant que l'application web n'est pas ouverte", "prefs_notifications_web_push_title": "Notifications en arrière-plan", "prefs_notifications_web_push_enabled_description": "Les notifications sont reçues même quand l'application web n'est pas en cours d'exécution (via Web Push)", "prefs_notifications_web_push_disabled_description": "Les notifications sont reçues quand l'application web est en cours d'exécution (via WebSocket)", "prefs_notifications_web_push_enabled": "Activé pour {{server}}", "prefs_notifications_web_push_disabled": "Désactivé", "prefs_appearance_theme_title": "Thème", "prefs_appearance_theme_system": "Système (défaut)", "prefs_appearance_theme_dark": "Mode sombre", "prefs_appearance_theme_light": "Mode clair", "error_boundary_button_reload_ntfy": "Recharger ntfy", "web_push_subscription_expiring_title": "Les notifications seront suspendues", "web_push_subscription_expiring_body": "Ouvrez ntfy pour continuer à recevoir les notifications", "web_push_unknown_notification_title": "Notification inconnue reçue du serveur", "web_push_unknown_notification_body": "Il est possible que vous deviez mettre à jour ntfy en ouvrant l'application web" } ntfy-2.11.0/web/public/static/langs/gl.json000066400000000000000000000773311462047176100205210ustar00rootroot00000000000000{ "common_cancel": "Cancelar", "common_save": "Gardar", "common_add": "Engadir", "signup_disabled": "O rexistro está desactivado", "signup_error_username_taken": "O identificador {{username}} xa está collido", "login_title": "Accede á túa conta ntfy", "action_bar_send_test_notification": "Enviar notificación de proba", "action_bar_clear_notifications": "Limpar todas as notificacións", "action_bar_unsubscribe": "Retirar subscrición", "action_bar_profile_settings": "Axustes", "message_bar_type_message": "Escribe aquí a mensaxe", "notifications_copied_to_clipboard": "Copiada ao portapapeis", "notifications_attachment_image": "Imaxe anexa", "notifications_attachment_copy_url_title": "Copiar URL do anexo ao portapapeis", "notifications_attachment_copy_url_button": "Copiar URL", "notifications_attachment_open_title": "Ir a {{url}}", "notifications_attachment_file_audio": "ficheiro de audio", "notifications_attachment_file_app": "ficheiro de app Android", "notifications_attachment_file_document": "outro documento", "notifications_click_copy_url_title": "Copiar URL da ligazón ao portapapeis", "notifications_click_copy_url_button": "Copiar ligazón", "notifications_actions_open_url_title": "Ir a {{url}}", "notifications_none_for_topic_description": "Para enviar notificacións a este tema, simplemente usa PUT ou POST co URL do tema.", "notifications_no_subscriptions_description": "Preme en \"{{linktext}} para crear ou subscribirte a un tema. Após, podes enviar mensaxes vía PUT ou POST e recibirás aquí as notificacións.", "display_name_dialog_description": "Establecer un nome alternativo para o tema que será mostrado na lista de subscrición. Isto axudará a identificar os temas que teñan nomes complicados.", "publish_dialog_tags_label": "Etiquetas", "publish_dialog_tags_placeholder": "Lista de etiquetas separadas por vírgulas, ex. aviso, tarefa1", "publish_dialog_priority_label": "Prioridade", "publish_dialog_click_label": "URL a premer", "publish_dialog_click_placeholder": "URL que se abre ao premer na notificación", "publish_dialog_click_reset": "Desbotar o URL a premer", "common_back": "Atrás", "common_copy_to_clipboard": "Copiar ao portapapeis", "signup_title": "Crear unha conta ntfy", "signup_form_username": "Identificador", "signup_form_password": "Contrasinal", "signup_form_confirm_password": "Confirmar contrasinal", "signup_form_button_submit": "Crear conta", "login_form_button_submit": "Acceder", "login_link_signup": "Crear conta", "login_disabled": "O acceso está desactivado", "action_bar_show_menu": "Mostrar menú", "action_bar_toggle_mute": "Acalar/Reactivar as notificacións", "message_bar_error_publishing": "Erro ao publicar a notificación", "message_bar_publish": "Publicar mensaxe", "nav_topics_title": "Temas subscritos", "nav_button_documentation": "Documentación", "nav_button_publish_message": "Publicar notificación", "nav_button_subscribe": "Subscribirse ao tema", "nav_button_muted": "Notificacións acaladas", "nav_button_connecting": "conectando", "nav_upgrade_banner_label": "Mellorar a ntfy Pro", "alert_not_supported_description": "O teu navegador non ten soporte para notificacións", "notifications_priority_x": "Prioridade {{priority}}", "notifications_attachment_link_expires": "a ligazón caduca o {{date}}", "notifications_attachment_link_expired": "a ligazón de descarga caducou", "notifications_attachment_file_image": "ficheiro de imaxe", "notifications_attachment_file_video": "ficheiro de vídeo", "notifications_actions_not_supported": "Acción non soportada na aplicación web", "notifications_actions_http_request_title": "Enviar HTTP {{method}} a {{url}}", "notifications_none_for_topic_title": "Aínda non recibiches ningunha notificación para este tema.", "reserve_dialog_checkbox_label": "Reservar tema e configurar acceso", "notifications_loading": "Cargando notificacións…", "publish_dialog_base_url_placeholder": "URL de servizo, ex. https://exemplo.com", "publish_dialog_topic_label": "Nome do tema", "publish_dialog_topic_placeholder": "Nome do tema, ex. alertas_equipo", "publish_dialog_topic_reset": "Restablecer tema", "publish_dialog_title_label": "Título", "publish_dialog_title_placeholder": "Título das notificacións, ex. Alerta de reunión", "publish_dialog_message_label": "Mensaxe", "publish_dialog_message_placeholder": "Escribe aquí a mensaxe", "publish_dialog_email_label": "Correo electrónico", "signup_form_toggle_password_visibility": "Cambiar visibilidade do contrasinal", "signup_already_have_account": "Xa tes unha conta? Accede!", "signup_error_creation_limit_reached": "Acadouse o límite de creación de contas", "action_bar_logo_alt": "logo ntfy", "action_bar_settings": "Axustes", "action_bar_account": "Conta", "action_bar_change_display_name": "Cambiar nome público", "action_bar_reservation_add": "Reservar tema", "action_bar_reservation_edit": "Cambiar a reserva", "action_bar_reservation_delete": "Desbotar a reserva", "action_bar_reservation_limit_reached": "Acadouse o límite", "action_bar_toggle_action_menu": "Abrir/Pechar menú de accións", "action_bar_profile_title": "Perfil", "action_bar_profile_logout": "Pechar sesión", "action_bar_sign_in": "Acceder", "action_bar_sign_up": "Crear conta", "message_bar_show_dialog": "Mostrar diálogo para publicar", "nav_button_all_notifications": "Todas as notificacións", "nav_button_account": "Conta", "nav_button_settings": "Axustes", "nav_upgrade_banner_description": "Reserva temas, máis mensaxes e correos electrónicos así como anexos máis grandes", "alert_grant_title": "As notificacións están desactivadas", "alert_grant_description": "Concede permiso no navegador para mostrar notificacións de escritorio.", "alert_grant_button": "Conceder agora", "alert_not_supported_title": "Non hai soporte para notificacións", "alert_not_supported_context_description": "Só hai soporte para notificacións ao usar HTTPS. Esta é unha limitación da API de Notificacións.", "notifications_list": "Lista de notificacións", "notifications_list_item": "Notificación", "notifications_mark_read": "Marcar como lida", "notifications_delete": "Eliminar", "notifications_tags": "Etiquetas", "notifications_new_indicator": "Nova notificación", "notifications_attachment_open_button": "Abrir anexo", "notifications_click_open_button": "Abrir ligazón", "notifications_none_for_any_title": "Non recibiches ningunha notificación.", "notifications_none_for_any_description": "Para enviar notificacións ao tema, simplemente usa PUT ou POST ao URL do tema. Aquí tes un exemplo usando un dos teus temas.", "notifications_no_subscriptions_title": "Semella que aínda non tes subscricións.", "notifications_example": "Exemplo", "display_name_dialog_title": "Cambiar nonme público", "display_name_dialog_placeholder": "Nome público", "publish_dialog_title_topic": "Publicar en {{topic}}", "publish_dialog_title_no_topic": "Publicar notificación", "publish_dialog_progress_uploading": "Enviando…", "publish_dialog_progress_uploading_detail": "Enviando {{loaded}}/{{total}} ({{percent}}%) …", "publish_dialog_message_published": "Notificación publicada", "publish_dialog_attachment_limits_file_and_quota_reached": "supera o límite de ficheiros e cota {{fileSizeLimit}}, quedan {{remainingBytes}}", "publish_dialog_attachment_limits_file_reached": "supera o límite para ficheiros {{fileSizeLimit}}", "publish_dialog_attachment_limits_quota_reached": "supera a cota, quedan {{remainingBytes}}", "publish_dialog_emoji_picker_show": "Elixe emoji", "publish_dialog_priority_min": "Prioridade Mínima", "publish_dialog_priority_low": "Prioridade baixa", "publish_dialog_priority_default": "Prioridade por defecto", "publish_dialog_priority_high": "Prioridade alta", "publish_dialog_priority_max": "Prioridade Máxima", "publish_dialog_base_url_label": "URL do servizo", "notifications_more_details": "Para máis información, visita o sitio web ou le a documentación.", "publish_dialog_call_label": "Chamada de teléfono", "publish_dialog_call_reset": "Retirar chamada de teléfono", "publish_dialog_delay_placeholder": "Adiar a entrega, ex. {{unixTimestamp}}, {{relativeTime}}, ou \"{{naturalLanguage}}\" (Só en inglés)", "publish_dialog_other_features": "Outras características:", "publish_dialog_chip_click_label": "Premer en URL", "publish_dialog_chip_email_label": "Reenvío por correo", "publish_dialog_chip_call_label": "Chamada de teléfono", "publish_dialog_chip_attach_url_label": "Anexar ficheiro por URL", "publish_dialog_button_cancel_sending": "Cancelar o envío", "publish_dialog_button_cancel": "Cancelar", "publish_dialog_button_send": "Enviar", "publish_dialog_attached_file_title": "Ficheiro anexo:", "publish_dialog_attached_file_filename_placeholder": "Nome do ficheiro anexo", "publish_dialog_drop_file_here": "Soltar aquí o ficheiro", "emoji_picker_search_placeholder": "Buscar emoji", "subscribe_dialog_subscribe_title": "Subscribirse a un tema", "publish_dialog_call_item": "Número de teléfono {{number}}", "publish_dialog_email_placeholder": "Enderezo ao que reenviar a notificación, ex. xoana@exemplo.com", "publish_dialog_email_reset": "Retirar reenvío ao correo", "publish_dialog_attach_label": "URL do anexo", "publish_dialog_attach_placeholder": "Anexa un ficheiro por URL, ex. https://f-droid.org/F-Droid.apk", "publish_dialog_attach_reset": "Retirar URL do anexo", "publish_dialog_filename_placeholder": "Nome do ficheiro anexo", "publish_dialog_filename_label": "Nome do ficheiro", "publish_dialog_delay_label": "Adiar", "publish_dialog_delay_reset": "Retirar o adiadamento da entrega", "publish_dialog_chip_attach_file_label": "Anexar ficheiro local", "publish_dialog_chip_delay_label": "Entrega adiada", "publish_dialog_chip_topic_label": "Cambiar tema", "publish_dialog_details_examples_description": "Para ver exemplos e unha descrición polo miúdo das ferramentas de envío, le a documentación.", "publish_dialog_checkbox_publish_another": "Publicar outra", "emoji_picker_search_clear": "Limpar busca", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Números de teléfono non verificados", "publish_dialog_attached_file_remove": "Retirar ficheiro anexo", "account_upgrade_dialog_tier_features_no_calls": "Sen chamadas", "account_upgrade_dialog_billing_contact_email": "Para preguntas sobre pagamentos, contacta con nós directamente.", "account_tokens_dialog_title_create": "Crear token de acceso", "prefs_reservations_dialog_title_edit": "Editar tema reservado", "priority_default": "por defecto", "prefs_notifications_min_priority_title": "Prioridade mínima", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} chamadas de teléfono diarias", "account_upgrade_dialog_tier_current_label": "Actual", "account_tokens_table_token_header": "Token", "prefs_notifications_delete_after_never": "Nunca", "prefs_users_description": "Engadir/eliminar usuarias dos temas protexidos. Ten en conta que as credenciais gárdanse na almacenaxe local do navegador.", "subscribe_dialog_subscribe_description": "Os temas poderían non estar proxetidos con contrasinal, así que elixe un nome complicado de adiviñar. Unha vez subscrita, podes PUT/POST notificacións.", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "aforro ata un {{discount}}%", "account_tokens_dialog_label": "Etiqueta, ex. notificación de Radarr", "account_tokens_table_expires_header": "Caducidade", "account_upgrade_dialog_proration_info": "Axuste: ao mellorar a un plan de pagamento superior, a diferencia vaise cobrar inmediatamente. Se degradas a conta a un plan inferior a diferencia usarase para pagar futuros períodos de pagamento.", "prefs_reservations_dialog_access_label": "Acceso", "account_usage_attachment_storage_title": "Almacenaxe dos anexos", "prefs_users_dialog_username_label": "Identificador, ex. xoana", "prefs_reservations_table_not_subscribed": "Non subscrita", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} correos diarios", "prefs_notifications_min_priority_max_only": "Só prioridade máxima", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} chamadas de teléfono diarias", "prefs_notifications_sound_description_some": "As notificacións sonan co ton {{sound}} ao chegar", "prefs_reservations_edit_button": "Editar acceso ao tema", "account_tokens_dialog_expires_never": "O token non caduca", "subscribe_dialog_login_title": "Require inciar sesión", "account_tokens_dialog_expires_x_days": "O token caduca en {{days}} días", "prefs_reservations_table_everyone_read_only": "Podo publicar e subscribirme, calquera pode subscribirse", "prefs_reservations_table_everyone_deny_all": "Só eu podo publicar e subscribirme", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} tema reservado", "subscribe_dialog_login_button_login": "Acceder", "account_upgrade_dialog_tier_features_no_reservations": "Sen temas reservados", "prefs_users_table_cannot_delete_or_edit": "Non se pode eliminar ou editar unha usuaria coa sesión iniciada", "prefs_notifications_delete_after_three_hours_description": "As notificacións autoelimínanse após tres horas", "prefs_notifications_delete_after_three_hours": "Após tres horas", "prefs_notifications_min_priority_description_x_or_higher": "Mostrar as notificacións se a prioridade é {{number}} {{name}} ou superior", "reservation_delete_dialog_description": "Ao eliminar a reserva cedes a propiedade do tema, e permites que outras persoas poidan reservalo. Podes manter ou eliminar as mensaxes e anexos existentes.", "prefs_reservations_table_everyone_read_write": "Calquera pode publicar e subscribirse", "prefs_reservations_dialog_title_delete": "Eliminar a reserva do tema", "prefs_users_table": "Táboa de usuarias", "prefs_reservations_table_topic_header": "Tema", "reservation_delete_dialog_submit_button": "Eliminar a reserva", "prefs_reservations_limit_reached": "Acadaches o límite de temas que podes reservar.", "account_upgrade_dialog_interval_monthly": "Mensual", "prefs_users_add_button": "Engadir usuaria", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} mensaxes diarias", "prefs_appearance_language_title": "Idioma", "prefs_notifications_delete_after_one_day_description": "As notificacións autoelimínanse após un día", "account_tokens_table_never_expires": "Non caduca", "account_tokens_delete_dialog_title": "Desbotar token de acceso", "prefs_notifications_delete_after_one_month": "Após un mes", "account_tokens_delete_dialog_description": "Antes de borrar o token de acceso mira que ningunha aplicación ou programa o está usando. Esta acción non pode desfacerse.", "account_upgrade_dialog_button_cancel": "Cancelar", "account_tokens_table_label_header": "Etiqueta", "account_upgrade_dialog_billing_contact_website": "Para preguntas sobre pagamentos, vai ao noso sitiio web.", "prefs_notifications_delete_after_never_description": "As notificacións non se eliminarán nunca automáticamente", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} temas reservados", "prefs_notifications_sound_description_none": "As notificacións non reproducen un ton ao chegar", "account_tokens_description": "Usar tokens de acceso ao publicar e subscribirte a través da API de ntfy, así non tes que enviar as credenciais. Le a documentación para saber máis.", "prefs_reservations_table": "Táboa cos temas reservados", "account_upgrade_dialog_button_cancel_subscription": "Cancelar subscrición", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} correo diario", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} por ficheiro", "prefs_reservations_description": "Podes reservar nomes de temas para uso personal. Ao reservar un tema tes a propiedade sobre del, e permíteche definir os permisos de acceso para outras usuarias sobre o tema.", "prefs_users_description_no_sync": "Usuarias e contrasinais non están sincronizados coa túa conta.", "account_tokens_dialog_title_edit": "Editar token de acceso", "prefs_users_table_base_url_header": "URL do servizo", "account_upgrade_dialog_tier_features_messages_one": "{{mensaxes}} mensaxe diaria", "account_upgrade_dialog_reservations_warning_one": "O nivel seleccionado permite reservar menos temas que o nivel actual. Antes de cambiar de nivel, elimina unha reserva polo menos. Podes eliminar as reservas nos Axustes.", "prefs_users_table_user_header": "Usuaria", "error_boundary_stack_trace": "Trazas do problema", "prefs_users_dialog_password_label": "Contrasinal", "prefs_notifications_delete_after_one_week": "Após unha semana", "prefs_reservations_delete_button": "Restablecer acceso ao tema", "prefs_notifications_delete_after_one_week_description": "As notificacións autoelimínanse após unha semana", "error_boundary_unsupported_indexeddb_description": "A app ntfy web precisa a función IndexedDB, e o teu navegador non ten soporte para IndexedDB no modo privado.

      Aínda que é unha mágoa, tampouco ten moito senso usar a app ntfy web en modo privado, porque todo se garda na almacenaxe do navegador. Podes aprender máis sobre isto neste tema de GitHub, ou comentarnos o que che parece en Discord ou Matrix.", "subscribe_dialog_subscribe_button_cancel": "Cancelar", "account_basics_tier_description": "O nivel da túa conta", "prefs_reservations_dialog_title_add": "Reservar tema", "account_upgrade_dialog_cancel_warning": "Isto vai cancelar a túa subscrición, e degradar a túa conta o {{date}}. Nesa data, as reservas de temas así como as mensaxes na caché do servidor van ser eliminadas.", "prefs_notifications_sound_title": "Ton da notificación", "prefs_notifications_min_priority_default_and_higher": "Prioridade por defecto e superior", "prefs_reservations_table_access_header": "Acceso", "account_tokens_table_copied_to_clipboard": "Copiouse o token de acceso", "account_tokens_dialog_expires_x_hours": "O token caduca en {{hours}} horas", "prefs_users_edit_button": "Editar usuaria", "account_upgrade_dialog_title": "Cambiar facturación da conta", "priority_low": "baixa", "prefs_reservations_table_click_to_subscribe": "Preme para subscribirte", "error_boundary_description": "Isto non debería pasar. Lamentámolo.
      Se tes un minuto, informa en GitHub, ou fáinolo saber en Discord ou Matrix.", "priority_min": "min", "prefs_notifications_min_priority_description_any": "Mostrar todas as notificacións, obviando a prioridade", "error_boundary_gathering_info": "Obter máis info…", "error_boundary_unsupported_indexeddb_title": "Non hai soporte para a navegación privada", "prefs_notifications_delete_after_one_day": "Após un día", "error_boundary_title": "vaite!, ntfy fallou", "reservation_delete_dialog_action_keep_description": "As mensaxes e anexos que están no servidor serán visibles públicamente para quen saiba o nome do tema.", "prefs_reservations_add_button": "Engadir tema reservado", "prefs_reservations_title": "Temas reservados", "prefs_reservations_dialog_description": "Ao reservar un tema tes a propiedade sobre el, e permíteche definir os permisos de acceso para outras usuarias.", "account_tokens_delete_dialog_submit_button": "Eliminar definitivamente o token", "prefs_notifications_title": "Notificacións", "account_tokens_title": "Tokens de acceso", "prefs_reservations_dialog_topic_label": "Tema", "prefs_users_title": "Xestionar usuarias", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} anual. Pagamento mensual.", "account_tokens_dialog_expires_unchanged": "Deixar a data de caducidade sen cambiar", "error_boundary_button_copy_stack_trace": "Copiar trazas do problema", "account_tokens_dialog_title_delete": "Eliminar token de acceso", "reservation_delete_dialog_action_keep_title": "Manter as mensaxes e anexos gardados", "prefs_notifications_sound_no_sound": "Sen ton", "account_upgrade_dialog_interval_yearly": "Anual", "account_upgrade_dialog_button_redirect_signup": "Crea unha conta", "account_tokens_dialog_button_cancel": "Cancelar", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} cobrado anualmente. Aforro {{save}}.", "prefs_notifications_min_priority_high_and_higher": "Prioridade alta e superior", "priority_max": "máx", "prefs_users_delete_button": "Eliminar usuaria", "prefs_notifications_min_priority_any": "Calquera prioridade", "account_tokens_dialog_expires_label": "O token caduca o", "prefs_notifications_delete_after_title": "Desbotar notificacións", "account_upgrade_dialog_interval_yearly_discount_save": "aforro {{discount}}%", "prefs_users_dialog_title_edit": "Editar usuaria", "prefs_notifications_min_priority_low_and_higher": "Prioridade baixa e superior", "account_tokens_dialog_button_update": "Actualizar token", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} almacenaxe total", "prefs_reservations_table_everyone_write_only": "Podo publicar e subscribirme, calquera pode publicar", "prefs_appearance_title": "Aparencia", "account_tokens_table_cannot_delete_or_edit": "Non se pode editar ou desbotar o token da sesión actual", "prefs_notifications_sound_play": "Reproducir ton seleccionado", "account_tokens_table_last_access_header": "Último acceso", "account_tokens_table_last_origin_tooltip": "Desde o enderezo IP {{ip}}, preme para detalles", "account_upgrade_dialog_tier_price_per_month": "mes", "account_tokens_table_current_session": "Sesión do navegador actual", "account_upgrade_dialog_button_pay_now": "Paga e subscríbete", "reservation_delete_dialog_action_delete_title": "Eliminar mensaxes e anexos gardados", "reservation_delete_dialog_action_delete_description": "As mensaxes e anexos vanse borrar definitivamente. Esta acción non ten volta.", "prefs_notifications_delete_after_one_month_description": "As notificacións autoelimínanse após un mes", "prefs_users_dialog_base_url_label": "URL do servizo, ex. https://ntfy.sh", "account_upgrade_dialog_tier_selected_label": "Seleccionado", "account_upgrade_dialog_button_update_subscription": "Actualizar subscrición", "priority_high": "alta", "account_delete_dialog_billing_warning": "Ao eliminar a conta tamén cancelas o pagamento das subscricións. Non poderás volver acceder ao taboleiro de pagamentos.", "prefs_notifications_min_priority_description_max": "Mostrar notificacións se a prioridade é 5 (máx)", "account_upgrade_dialog_reservations_warning_other": "O nivel seleccionado permite reservar menos temas que o nivel actual. Antes de cambiar de nivel, elimina {{count}} reservas polo menos. Podes eliminar as reservas nos Axustes.", "prefs_users_dialog_title_add": "Engadir usuaria", "account_tokens_dialog_button_create": "Crear token", "account_tokens_table_create_token_button": "Crear token de acceso", "account_basics_tier_interval_monthly": "mensual", "account_basics_tier_canceled_subscription": "A sua suscripción foi cancelada e vostede será degradado a unha conta gratuita o {{date}}.", "account_basics_password_dialog_current_password_incorrect": "Contrasinal incorrecto", "account_basics_phone_numbers_dialog_number_label": "Número de teléfono", "account_basics_password_dialog_button_submit": "Modificar contrasinal", "account_basics_username_title": "Usuario", "account_basics_phone_numbers_dialog_check_verification_button": "Código de confirmación", "account_usage_messages_title": "Mesaxes publicados", "account_basics_phone_numbers_dialog_verify_button_sms": "Enviar SMS", "account_basics_tier_change_button": "Cambiar", "account_basics_phone_numbers_dialog_description": "Para usar a característica de chamadas de teléfono, vostede debe engadir e verificar ao menos un número de teléfono. A verificación pode ser realizada vía SMS ou a través de chamada.", "account_delete_title": "Borrar conta", "account_delete_dialog_label": "Contrasinal", "account_basics_tier_admin_suffix_with_tier": "(con tier {{tier}})", "subscribe_dialog_login_username_label": "Nome de usuario, ex. phil", "subscribe_dialog_error_user_not_authorized": "Usuario {{username}} non autorizado", "account_basics_title": "Conta", "account_basics_phone_numbers_no_phone_numbers_yet": "Aínda non hay números de teléfono", "subscribe_dialog_subscribe_button_generate_topic_name": "Xerar nome", "subscribe_dialog_login_password_label": "Contrasinal", "subscribe_dialog_subscribe_button_subscribe": "Subscribirse", "account_basics_phone_numbers_dialog_title": "Engadir número de teléfono", "account_basics_username_admin_tooltip": "É vostede Admin", "account_delete_dialog_description": "Isto borrará permanentemente a túa conta, incluido todos os datos almacenados no servidor. Despois do borrado, o teu nome de usuario non estará dispoñible durante 7 días. Se realmente queres proceder, por favor confirme co seu contrasinal na caixa inferior.", "account_usage_reservations_none": "Non hai temas reservados para esta conta", "subscribe_dialog_subscribe_topic_placeholder": "Nome do tema, ex. phil_alertas", "account_usage_title": "Uso", "account_basics_tier_upgrade_button": "Mexorar a Pro", "subscribe_dialog_error_topic_already_reserved": "Tema xa reservado", "account_basics_tier_admin_suffix_no_tier": "(sen tier)", "account_basics_tier_payment_overdue": "O pago está retrasado. Por favor, revise o seu método de pago o a súa conta será degradada pronto.", "account_basics_phone_numbers_description": "Para notificacións telefónicas", "account_basics_tier_free": "De balde", "account_basics_tier_admin": "Admin", "account_delete_dialog_button_cancel": "Cancelar", "account_basics_password_description": "Modificar o contrasinal da conta", "account_usage_calls_title": "Chamadas realizadas", "account_basics_tier_basic": "Básico", "account_basics_phone_numbers_copied_to_clipboard": "Número de teléfono copiado no portapapeis", "account_basics_tier_title": "Tipo de conta", "account_usage_cannot_create_portal_session": "Non foi posible abrir o portal de pagos", "account_delete_description": "Borrar permanentemente a túa conta", "account_basics_phone_numbers_dialog_number_placeholder": "ex. +1222333444", "account_basics_phone_numbers_dialog_code_placeholder": "ex. 123456", "account_basics_tier_manage_billing_button": "Xestionar pagos", "account_basics_username_description": "Ei, ese eres ti ❤", "account_basics_password_dialog_confirm_password_label": "Confirmar contrasinal", "account_basics_tier_interval_yearly": "anual", "account_delete_dialog_button_submit": "Borrar permanentemente a conta", "account_basics_phone_numbers_dialog_channel_call": "Chamada", "account_basics_password_title": "Contrasinal", "account_basics_password_dialog_new_password_label": "Novo contrasinal", "account_usage_of_limit": "de {{limit}}", "subscribe_dialog_error_user_anonymous": "anónimo", "account_usage_basis_ip_description": "Estadísticas de uso e límites para esta conta están basados na sua IP, polo que poden estar compartidos con outros usuarios. Os limites mostrados son aproximados, basados nos ratios de limite existentes.", "account_basics_password_dialog_title": "Modificar contrasinal", "account_usage_limits_reset_daily": "Límite de uso é reiniciado diariamente a medianoite (UTC(", "account_usage_unlimited": "Sen límites", "account_basics_phone_numbers_title": "Números de teléfono", "account_basics_password_dialog_current_password_label": "Contrasinal actual", "subscribe_dialog_subscribe_base_url_label": "URL do servizo", "account_usage_reservations_title": "Temas reservados", "account_usage_calls_none": "Non se poden realizar chamadas con esta conta", "subscribe_dialog_subscribe_use_another_label": "Usar outro servidor", "account_basics_phone_numbers_dialog_code_label": "Código de verificación", "account_basics_tier_paid_until": "Suscripción pagada ata {{date}}, e vaise auto-renovar", "account_usage_attachment_storage_description": "{{filesize}} por arquivo, borrado despois de {{expiry}}", "account_basics_phone_numbers_dialog_verify_button_call": "Chámame", "account_usage_emails_title": "Emails enviados", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "subscribe_dialog_login_description": "Este tema está protexido por contrasinal. Por favor, introduza o usuario e contrasinal para subscribirse.", "action_bar_mute_notifications": "Acalar notificacións", "action_bar_unmute_notifications": "Reactivar notificacións", "alert_notification_permission_required_title": "Notificacións desactivadas", "alert_notification_permission_required_description": "Concederlle permisos ao navegador para mostrar notificacións de escritorio", "alert_notification_permission_required_button": "Conceder", "alert_notification_permission_denied_title": "Notificacións bloqueadas", "alert_notification_permission_denied_description": "Por favor reactívaas no navegador", "alert_notification_ios_install_required_title": "Require instalación iOS", "alert_notification_ios_install_required_description": "Preme na icona Compartir e Engadir a Pantalla de Inicio para activar as notificacións en iOS", "notifications_actions_failed_notification": "Non se puido realizar a acción", "publish_dialog_checkbox_markdown": "Dar formato Markdow", "prefs_notifications_web_push_title": "Notificacións en segundo plano", "prefs_notifications_web_push_enabled_description": "Recíbense notificacións incluso se a app web non está en execución (vía Web Push)", "prefs_notifications_web_push_disabled_description": "Recíbense as notificacións cando a app web está en execución (vía WebSocket)", "prefs_notifications_web_push_enabled": "Activadas para {{server}}", "prefs_notifications_web_push_disabled": "Desactivadas", "prefs_appearance_theme_title": "Decorado", "prefs_appearance_theme_system": "Sistema (por defecto)", "prefs_appearance_theme_dark": "Modo escuro", "prefs_appearance_theme_light": "Modo claro", "error_boundary_button_reload_ntfy": "Recargar ntfy", "web_push_subscription_expiring_title": "Vanse pausar as notificacións", "web_push_subscription_expiring_body": "Abrir ntfy para seguir recibindo notificacións", "web_push_unknown_notification_title": "Recibida unha notificación descoñecida desde o servidor", "web_push_unknown_notification_body": "Poderías ter que actualizar ntfy abrindo a app web", "subscribe_dialog_subscribe_use_another_background_info": "As notificacións procedentes doutros servidores non se van recibir cando a app web estea pechada" } ntfy-2.11.0/web/public/static/langs/hu.json000066400000000000000000000347231462047176100205310ustar00rootroot00000000000000{ "action_bar_send_test_notification": "Teszt értesítés küldése", "action_bar_clear_notifications": "Összes értesítés törlése", "alert_not_supported_description": "A böngésző nem támogatja az értesítések fogadását.", "action_bar_settings": "Beállítások", "action_bar_unsubscribe": "Leiratkozás", "message_bar_type_message": "Írd ide az üzenetet", "message_bar_error_publishing": "Hiba történt az értesítés elküldése közben", "nav_button_all_notifications": "Összes értesítés", "nav_topics_title": "Feliratkozott témák", "alert_notification_permission_required_title": "Az értesítések le vannak tiltva", "alert_notification_permission_required_description": "Engedélyezd a böngészőnek, hogy asztali értesítéseket jeleníttessen meg.", "nav_button_settings": "Beállítások", "nav_button_documentation": "Dokumentáció", "nav_button_publish_message": "Értesítés küldése", "alert_notification_permission_required_button": "Engedélyezés", "alert_not_supported_title": "Nem támogatott funkció", "notifications_copied_to_clipboard": "Másolva a vágólapra", "notifications_tags": "Címkék", "notifications_attachment_copy_url_title": "Másolja vágólapra a csatolmány URL-ét", "notifications_attachment_copy_url_button": "URL másolása", "notifications_attachment_open_title": "Menjen a(z) {{url}} címre", "notifications_attachment_open_button": "Csatolmány megnyitása", "notifications_attachment_link_expired": "A letöltési hivatkozás lejárt", "notifications_attachment_link_expires": "A hivatkozás {{date}}-kor jár le", "nav_button_subscribe": "Feliratkozás témára", "notifications_click_copy_url_title": "Másolja vágólapra a hivatkozás URL-ét", "notifications_actions_open_url_title": "Menjen a(z) {{url}} címre", "notifications_actions_not_supported": "A művelet nem támogatott a webes alkalmazásban", "notifications_actions_http_request_title": "Küldjön HTTP {{method}} kérést a(z) {{url}} címre", "notifications_none_for_topic_title": "Még nem érkezett értesítés erre a témára.", "notifications_none_for_any_title": "Még nem érkezett egy értesítés sem.", "notifications_none_for_any_description": "Értesítés beküldéséhez csak küldj egy PUT, vagy POST kérést a téma URL-ére. Itt egy példa az egyik témádhoz.", "notifications_no_subscriptions_title": "Úgy tűnik, még nem iratkoztál fel egy témára sem.", "publish_dialog_message_published": "Értesítés elküldve", "notifications_example": "Példa", "notifications_no_subscriptions_description": "Kattints a \"{{linktext}}\" linkre egy téma létrehozásához, vagy rá feliratkozáshoz. Ezután PUT, vagy POST kéréssel fogsz tudni értesítéseket küldeni rá, amik utána meg fognak itt jelenni.", "publish_dialog_priority_low": "Alacsony prioritás", "publish_dialog_priority_default": "Közepes prioritás", "publish_dialog_priority_high": "Magas prioritás", "notifications_more_details": "További információkért keresd fel a weboldalunkat vagy olvasd el a dokumentációt.", "publish_dialog_title_no_topic": "Értesítés küldése", "publish_dialog_attachment_limits_file_and_quota_reached": "túllépi a fájlméret korlátot ({{fileSizeLimit}}) és a kvótát is ({{remainingBytes}} maradt)", "publish_dialog_attachment_limits_quota_reached": "túllépi a kvótát, {{remainingBytes}} maradt", "publish_dialog_priority_min": "Legkisebb prioritás", "publish_dialog_base_url_label": "A szolgáltatás URL-e", "publish_dialog_base_url_placeholder": "A szolgáltatás URL-e, pl: https://example.com", "publish_dialog_topic_label": "Téma neve", "publish_dialog_priority_max": "Legmagasabb prioritás", "publish_dialog_topic_placeholder": "Téma neve, pl: jozsi_riasztasai", "publish_dialog_title_label": "Cím", "publish_dialog_title_placeholder": "Értesítés címe, pl: Fogy a szabad hely", "publish_dialog_message_label": "Üzenet", "publish_dialog_message_placeholder": "Írj ide egy üzenetet", "publish_dialog_tags_label": "Címkék", "publish_dialog_tags_placeholder": "Címkék vesszővel elválasztva, pl: fontos,srv1-backup", "publish_dialog_priority_label": "Prioritás", "publish_dialog_click_label": "URL", "publish_dialog_click_placeholder": "Webcím, ami megnyílik, ha az értesítésre kattintanak", "publish_dialog_email_label": "Email", "publish_dialog_email_placeholder": "Email cím, amire továbbítjuk az értesítést, pl: jozsi@example.com", "publish_dialog_attach_label": "Csatolmány URL-e", "publish_dialog_filename_label": "Fájlnév", "publish_dialog_filename_placeholder": "Csatolmány fájlneve", "publish_dialog_delay_label": "Késleltetés", "publish_dialog_delay_placeholder": "Késleltetett küldés, pl: {{unixTimestamp}}, {{relativeTime}}, vagy \"{{naturalLanguage}}\" (Csak angolul)", "publish_dialog_other_features": "Egyéb lehetőségek:", "publish_dialog_chip_click_label": "Kattintási URL", "publish_dialog_chip_attach_file_label": "Helyi fájl csatolása", "publish_dialog_chip_delay_label": "Késleltetett kézbesítés", "publish_dialog_chip_topic_label": "Téma megváltoztatása", "publish_dialog_button_cancel_sending": "Küldés megállítása", "publish_dialog_button_cancel": "Mégsem", "publish_dialog_checkbox_publish_another": "Küldök még egyet", "publish_dialog_attached_file_title": "Csatolt fájl:", "publish_dialog_attached_file_filename_placeholder": "Csatolmány fájlneve", "publish_dialog_drop_file_here": "Ejtsd ide a fájlt", "emoji_picker_search_placeholder": "Emoji keresése", "publish_dialog_details_examples_description": "Példákért és az összes küldési képesség részletes leírásához olvasd el a dokumentációt.", "subscribe_dialog_subscribe_use_another_label": "Használjon másik szervert", "subscribe_dialog_subscribe_button_subscribe": "Feliratkozás", "subscribe_dialog_login_title": "Be kell jelentkezni", "subscribe_dialog_subscribe_description": "A témák nem mindig vannak jelszóval védve, ezért olyan nevet válassz, ami nehezen található ki. Miután feliratkoztál, küldhetsz értesítéseket.", "subscribe_dialog_login_description": "Ez a téma jelszóval védett. Jelentkezz be a feliratkozáshoz.", "subscribe_dialog_login_username_label": "Felhasználónév, pl: jozsi", "subscribe_dialog_login_password_label": "Jelszó", "common_back": "Vissza", "subscribe_dialog_login_button_login": "Belépés", "subscribe_dialog_error_user_anonymous": "névtelen", "subscribe_dialog_error_user_not_authorized": "A(z) {{username}} felhasználónak nincs hozzáférése", "prefs_notifications_min_priority_description_any": "Minden értesítést mutat, prioritástól függetlenül", "prefs_notifications_min_priority_description_max": "Csak az 5-ös (legmagasabb) prioritású értesítések jelennek meg", "prefs_notifications_min_priority_any": "Bármilyen prioritás", "prefs_notifications_min_priority_low_and_higher": "Alacsony prioritás, vagy magasabb", "prefs_notifications_min_priority_high_and_higher": "Magas, vagy legmagasabb prioritás", "prefs_notifications_min_priority_max_only": "Csak a legmagasabb prioritás", "prefs_notifications_sound_title": "Értesítés hangja", "prefs_notifications_sound_description_none": "Az értesítések nem fognak hangot adni, amikor megérkeznek", "prefs_notifications_sound_no_sound": "Hang nélkül", "prefs_notifications_delete_after_one_week": "1 hét után", "prefs_notifications_delete_after_one_month": "1 hónap után", "prefs_notifications_delete_after_never_description": "Az értesítések soha nem lesznek automatikusan törölve", "prefs_notifications_delete_after_three_hours_description": "A 3 óránál régebbi értesítések automatikus törlése", "prefs_notifications_delete_after_one_day_description": "Az egy napnál régebbi értesítések automatikus törlése", "prefs_users_description": "Itt tudsz hozzáadni/eltávolítani felhasználókat a védett témákról. Fontos, hogy a felhasználónevet és a jelszót a böngésző helyi tárolójába fogjuk menteni.", "prefs_users_table_user_header": "Felhasználó", "prefs_users_table_base_url_header": "Szerver címe", "prefs_users_dialog_title_edit": "Felhasználó szerkesztése", "prefs_users_dialog_username_label": "Felhasználónév, pl: jozsi", "prefs_users_dialog_password_label": "Jelszó", "common_add": "Hozzáadás", "prefs_users_dialog_base_url_label": "Szerver címe, pl: https://ntfy.sh", "notifications_loading": "Értesítések betöltése …", "publish_dialog_progress_uploading": "Feltöltés …", "notifications_click_copy_url_button": "Hivatkozás másolása", "notifications_click_open_button": "Hivatkozás megnyitása", "publish_dialog_progress_uploading_detail": "Feltöltés folyamatban: {{loaded}}/{{total}} ({{percent}}%) …", "notifications_none_for_topic_description": "Értesítés beküldéséhez csak küldj egy PUT, vagy POST kérést a téma URL-ére.", "prefs_notifications_delete_after_one_day": "1 nap után", "publish_dialog_attach_placeholder": "Csatolandó fájl címe, pl: https://f-droid.org/F-Droid.apk", "publish_dialog_chip_email_label": "Továbbítás email-ben", "publish_dialog_chip_attach_url_label": "Fájl csatolása URL-lel", "publish_dialog_button_send": "Küldés", "subscribe_dialog_subscribe_title": "Feliratkozás témára", "subscribe_dialog_subscribe_button_cancel": "Mégsem", "prefs_notifications_min_priority_title": "Legkisebb megjelenítendő prioritás", "prefs_notifications_min_priority_description_x_or_higher": "Csak akkor jelenik meg egy értesítés, ha a prioritása {{number}} ({{name}}), vagy fontosabb", "prefs_notifications_min_priority_default_and_higher": "Közepes prioritás, vagy magasabb", "prefs_notifications_delete_after_one_week_description": "Az egy hétnél régebbi értesítések automatikus törlése", "prefs_users_add_button": "Felhasználó hozzáadása", "subscribe_dialog_subscribe_topic_placeholder": "Téma neve, pl: jozsi_riasztasai", "prefs_notifications_title": "Értesítések", "error_boundary_button_copy_stack_trace": "Verem nyomkövetés másolása", "prefs_notifications_delete_after_title": "Régi értesítések törlése", "prefs_notifications_delete_after_three_hours": "3 óra után", "error_boundary_title": "Jaj ne, az ntfy összeomlott", "prefs_notifications_delete_after_never": "Soha", "prefs_notifications_delete_after_one_month_description": "Az egy hónapnál régebbi értesítések automatikus törlése", "prefs_appearance_title": "Megjelenés", "priority_default": "közepes", "priority_high": "magas", "priority_max": "legmagasabb", "priority_min": "legkisebb", "error_boundary_gathering_info": "Több információ…", "publish_dialog_attachment_limits_file_reached": "túllépi a fájlméret korlátot ({{fileSizeLimit}})", "prefs_users_title": "Felhasználók kezelése", "common_cancel": "Mégsem", "common_save": "Mentés", "prefs_users_dialog_title_add": "Felhasználó hozzáadása", "prefs_appearance_language_title": "Nyelv", "priority_low": "alacsony", "error_boundary_stack_trace": "Verem nyomkövetés", "publish_dialog_title_topic": "A {{topic}} téma értesítése", "prefs_notifications_sound_description_some": "Az értesítéseket a(z) {{sound}} hang fogja jelezni", "error_boundary_description": "Ennek nem szabadott volna megtörténnie. Nagyon sajnáljuk.
      Ha van egy perced, jelentsd be GitHubon, vagy tudasd velünk Discordon, vagy Matrixon.", "action_bar_show_menu": "Menü mutatása", "action_bar_toggle_mute": "Üzenetek némítása/bekapcsolása", "notifications_list_item": "Értesítés", "error_boundary_unsupported_indexeddb_description": "A ntfy web alkalmazás működéséhez szükséges az IndexedDB funkció, az ön böngészője nem támogatja az IndexedDB használatát privát böngészés közben.

      Miközben privát mód sajnos nem lehetséges, szeretnénk értesíteni hogy magabiztosan használhatja normál módban mert a böngésző minden adatot az ön gépén tárol. Tovább tájékozódhat ezen a Github oldalon, vagy beszéljen velünk Discord-on vagy Matrix-on.", "notifications_priority_x": "Prioritás {{prioritás}}", "message_bar_show_dialog": "Küldött üzenetek megjelenítése", "action_bar_logo_alt": "ntfy logó", "action_bar_toggle_action_menu": "Tevékenységkezelő nyitása/zárása", "message_bar_publish": "Üzenet küldése", "nav_button_muted": "Értesítések némítva", "nav_button_connecting": "csatlakozás", "notifications_list": "Értesítés lista", "notifications_mark_read": "Jelölés olvasottként", "notifications_delete": "Törlés", "notifications_new_indicator": "Új értesítés", "notifications_attachment_image": "Csatolt kép", "notifications_attachment_file_image": "Kép fájl", "notifications_attachment_file_video": "Videó fájl", "notifications_attachment_file_audio": "Hang fájl", "notifications_attachment_file_app": "Android alkalmazás fájl", "notifications_attachment_file_document": "egyéb dokumentum", "publish_dialog_emoji_picker_show": "Emoji kiválasztása", "publish_dialog_topic_reset": "Téma visszaállítása", "publish_dialog_click_reset": "URL kattintás törlése", "publish_dialog_email_reset": "Email továbbítás törlése", "publish_dialog_attach_reset": "Csatolt URL törlése", "publish_dialog_delay_reset": "Késleltetett kézbesítés törlése", "publish_dialog_attached_file_remove": "Csatolt fájl törlése", "emoji_picker_search_clear": "Keresés törlése", "prefs_notifications_sound_play": "Kijelölt hang lejátszása", "prefs_users_table": "Felhasználó táblázat", "prefs_users_edit_button": "Felhasználó szerkesztése", "prefs_users_delete_button": "Felhasználó törlése", "error_boundary_unsupported_indexeddb_title": "Privát böngészés nem támogatott", "subscribe_dialog_subscribe_base_url_label": "Szolgáltató URL" } ntfy-2.11.0/web/public/static/langs/id.json000066400000000000000000000773441462047176100205170ustar00rootroot00000000000000{ "notifications_click_copy_url_title": "Salin URL tautan ke papan klip", "alert_not_supported_title": "Notifikasi tidak didukung", "notifications_click_copy_url_button": "Salin tautan", "notifications_no_subscriptions_description": "Klik pada tautan \"{{linktext}}\" untuk membuat atau berlangganan ke sebuah topik. Setelah itu, Anda dapat mengirim pesan via PUT atau POST dan Anda akan menerima notifikasi di sini.", "notifications_example": "Contoh", "subscribe_dialog_subscribe_description": "Topik mungkin tidak dilindungi oleh kata sandi, jadi pilih sebuah nama yang tidak mudah untuk ditebak. Setelah berlangganan, Anda dapat PUT/POST notifikasi.", "subscribe_dialog_login_title": "Login dibutuhkan", "prefs_appearance_language_title": "Bahasa", "nav_button_all_notifications": "Semua notifikasi", "notifications_none_for_any_title": "Anda belum menerima notifikasi apa pun.", "action_bar_settings": "Pengaturan", "action_bar_send_test_notification": "Kirim notifikasi uji coba", "action_bar_clear_notifications": "Hapus semua notifikasi", "action_bar_unsubscribe": "Batalkan langganan", "message_bar_type_message": "Ketika sebuah pesan di sini", "message_bar_error_publishing": "Terjadi kesalahan mempublikasikan notifikasi", "publish_dialog_title_label": "Judul", "publish_dialog_message_label": "Pesan", "nav_button_settings": "Pengaturan", "nav_button_documentation": "Dokumentasi", "common_add": "Tambahkan", "nav_topics_title": "Topik yang dilanggani", "nav_button_subscribe": "Berlangganan ke topik", "alert_notification_permission_required_title": "Notifikasi dinonaktifkan", "alert_notification_permission_required_description": "Berikan izin ke peramban untuk menampilkan notifikasi desktop.", "alert_not_supported_description": "Notifikasi tidak didukung dalam peramban Anda.", "notifications_attachment_open_title": "Pergi ke {{url}}", "notifications_attachment_open_button": "Buka lampiran", "notifications_attachment_link_expires": "tautan kadaluwarsa {{date}}", "notifications_attachment_link_expired": "tautan unduhan kadaluwarsa", "notifications_actions_open_url_title": "Pergi ke {{url}}", "notifications_click_open_button": "Buka tautan", "publish_dialog_topic_placeholder": "Nama topik, mis. pemberitahuan_andi", "nav_button_publish_message": "Publikasikan notifikasi", "alert_notification_permission_required_button": "Berikan sekarang", "notifications_copied_to_clipboard": "Disalin ke papan klip", "notifications_tags": "Tanda", "notifications_attachment_copy_url_title": "Salin URL lampiran ke papan klip", "notifications_attachment_copy_url_button": "Salin URL", "notifications_none_for_topic_title": "Anda belum menerima notifikasi apa pun untuk topik ini.", "notifications_none_for_topic_description": "Untuk mengirimkan notifikasi ke topik ini, tinggal PUT atau POST ke URL topik.", "notifications_none_for_any_description": "Untuk mengirimkan notifikasi ke sebuah topik, tinggal PUT atau POST ke URL topik. Ini adalah contoh menggunakan salah satu topik Anda.", "notifications_no_subscriptions_title": "Sepertinya Anda belum memiliki langganan apa pun.", "publish_dialog_title_topic": "Publikasikan ke {{topic}}", "subscribe_dialog_login_description": "Topik ini dilindungi oleh kata sandi. Mohon masukkan nama pengguna dan kata sandi untuk berlangganan.", "prefs_notifications_min_priority_title": "Prioritas minimum", "error_boundary_gathering_info": "Dapatkan info lanjut …", "publish_dialog_title_no_topic": "Publikasikan notifikasi", "publish_dialog_progress_uploading": "Mengunggah …", "notifications_more_details": "Untuk informasi lanjut, lihat situs web atau dokumentasi.", "publish_dialog_progress_uploading_detail": "Mengunggah {{loaded}}/{{total}} ({{percent}}%) …", "publish_dialog_message_published": "Notifikasi terpublikasi", "notifications_loading": "Memuat notifikasi …", "publish_dialog_base_url_label": "URL Layanan", "publish_dialog_title_placeholder": "Judul notifikasi, mis. Peringatan ruang disk", "publish_dialog_tags_label": "Tanda", "publish_dialog_priority_label": "Prioritas", "publish_dialog_base_url_placeholder": "URL Layanan, mis. https://contoh.com", "publish_dialog_attach_placeholder": "Lampirkan file dengan URL, mis. https://f-droid.org/F-Droid.apk", "publish_dialog_delay_label": "Jeda", "publish_dialog_chip_topic_label": "Ubah topik", "publish_dialog_button_cancel_sending": "Batalkan pengiriman", "publish_dialog_button_send": "Kirim", "publish_dialog_attachment_limits_file_reached": "melebihi batasan file {{fileSizeLimit}", "publish_dialog_attachment_limits_file_and_quota_reached": "melebihi batasan file dan kuota {{fileSizeLimit}}, hanya {{remainingBytes}}", "publish_dialog_attachment_limits_quota_reached": "melebihi kuota, hanya {{remainingBytes}}", "publish_dialog_priority_min": "Prioritas min.", "publish_dialog_priority_low": "Prioritas rendah", "publish_dialog_priority_default": "Prioritas bawaan", "publish_dialog_priority_high": "Prioritas tinggi", "publish_dialog_priority_max": "Prioritas maks.", "publish_dialog_topic_label": "Nama topik", "publish_dialog_message_placeholder": "Ketik sebuah pesan di sini", "publish_dialog_click_label": "Klik URL", "publish_dialog_tags_placeholder": "Daftar tanda yang dipisah dengan koma, mis. peringatan, cadangan-srv1", "publish_dialog_click_placeholder": "URL yang dibuka ketika notifikasi diklik", "publish_dialog_email_label": "Email", "publish_dialog_email_placeholder": "Alamat untuk meneruskan notifikasi, mis. andi@contoh.com", "publish_dialog_attach_label": "URL Lampiran", "publish_dialog_filename_label": "Nama File", "publish_dialog_filename_placeholder": "Nama file lampiran", "publish_dialog_delay_placeholder": "Penjedaan pengiriman, mis. {{unixTimestamp}}, {{relativeTime}}, atau \"{{naturalLanguage}}\" (hanya Inggris)", "publish_dialog_other_features": "Fitur lainnya:", "publish_dialog_chip_click_label": "Klik URL", "publish_dialog_chip_email_label": "Teruskan ke email", "publish_dialog_chip_attach_url_label": "Lampirkan file dengan URL", "publish_dialog_chip_attach_file_label": "Lampirkan file lokal", "publish_dialog_chip_delay_label": "Jeda pengiriman", "publish_dialog_button_cancel": "Batal", "publish_dialog_details_examples_description": "Untuk contoh dan deskripsi yang rinci oleh semua fitur pengiriman, lihat dokumentasi.", "publish_dialog_checkbox_publish_another": "Publikasi yang lain", "publish_dialog_attached_file_title": "File yang dilampirkan:", "publish_dialog_attached_file_filename_placeholder": "Nama file lampiran", "publish_dialog_drop_file_here": "Lepaskan file di sini", "emoji_picker_search_placeholder": "Cari emoji", "subscribe_dialog_subscribe_button_cancel": "Batal", "subscribe_dialog_subscribe_button_subscribe": "Berlangganan", "subscribe_dialog_error_user_anonymous": "anonim", "prefs_notifications_min_priority_any": "Prioritas apa saja", "prefs_notifications_delete_after_title": "Hapus notifikasi", "prefs_notifications_delete_after_three_hours": "Setelah tiga jam", "prefs_notifications_delete_after_one_day": "Setelah satu hari", "prefs_users_add_button": "Tambahkan pengguna", "prefs_users_dialog_username_label": "Nama pengguna, mis. andi", "subscribe_dialog_subscribe_title": "Berlangganan ke topik", "subscribe_dialog_subscribe_topic_placeholder": "Nama topik, mis. pemberitahuan_andi", "subscribe_dialog_subscribe_use_another_label": "Gunakan server lain", "subscribe_dialog_login_username_label": "Nama pengguna, mis. Andi", "subscribe_dialog_login_button_login": "Masuk", "subscribe_dialog_error_user_not_authorized": "Pengguna {{username}} tidak diizinkan", "prefs_notifications_title": "Notifikasi", "prefs_notifications_sound_no_sound": "Tidak ada suara", "prefs_users_table_user_header": "Pengguna", "prefs_users_dialog_base_url_label": "URL Layanan, mis. https://ntfy.sh", "common_save": "Simpan", "prefs_appearance_title": "Tampilan", "subscribe_dialog_login_password_label": "Kata sandi", "common_back": "Kembali", "prefs_notifications_sound_title": "Suara notifikasi", "prefs_notifications_min_priority_low_and_higher": "Prioritas rendah dan lebih tinggi", "prefs_notifications_min_priority_default_and_higher": "Prioritas bawaan dan lebih tinggi", "prefs_notifications_min_priority_high_and_higher": "Prioritas tinggi dan lebih tinggi", "prefs_notifications_min_priority_max_only": "Hanya prioritas maks", "prefs_notifications_delete_after_never": "Tidak pernah", "prefs_notifications_delete_after_one_week": "Setelah satu minggu", "prefs_notifications_delete_after_one_month": "Setelah satu bulan", "prefs_users_title": "Kelola pengguna", "prefs_users_description": "Tambahkan/hapus pengguna untuk topik yang dilindungi di sini. Dicatat bahwa nama pengguna dan kata sandi disimpan dalam penyimpanan lokal peramban.", "prefs_users_table_base_url_header": "URL Layanan", "prefs_users_dialog_title_add": "Tambahkan pengguna", "prefs_users_dialog_title_edit": "Edit pengguna", "prefs_users_dialog_password_label": "Kata sandi", "common_cancel": "Batal", "error_boundary_title": "Aduh, ntfy mogok", "error_boundary_description": "Seharusnya ini tidak terjadi. Maaf sekali tentang hal ini.
      Jika Anda punya beberapa menit, silakan laporkan ini di GitHub, atau beritahu kami melalui Discord atau Matrix.", "error_boundary_stack_trace": "Jejak tumpukan", "error_boundary_button_copy_stack_trace": "Salin jejak tumpukan", "prefs_notifications_sound_description_some": "Notifikasi memainkan suara {{sound}} ketika diterima", "prefs_notifications_min_priority_description_any": "Menampilkan semua notifikasi, apa pun prioritasnya", "prefs_notifications_min_priority_description_max": "Tampilkan notifikasi jika prioritas adalah 5 (maks)", "prefs_notifications_delete_after_three_hours_description": "Notifikasi dihapus secara otomatis setelah tiga jam", "prefs_notifications_delete_after_one_week_description": "Notifikasi dihapus secara otomatis setelah satu minggu", "prefs_notifications_delete_after_one_month_description": "Notifikasi dihapus secara otomatis setelah satu bulan", "priority_low": "rendah", "priority_high": "tinggi", "priority_max": "maks", "prefs_notifications_min_priority_description_x_or_higher": "Tampilkan notifikasi jika prioritas {{number}} ({{name}}) atau lebih", "prefs_notifications_sound_description_none": "Notifikasi tidak boleh memainkan suara apa pun ketika diterima", "prefs_notifications_delete_after_never_description": "Notifikasi tidak pernah dihapus secara otomatis", "prefs_notifications_delete_after_one_day_description": "Notifikasi dihapus secara otomatis setelah satu hari", "priority_default": "bawaan", "priority_min": "min", "notifications_actions_not_supported": "Tindakan tidak didukung di aplikasi web", "notifications_actions_http_request_title": "Kirim {{method}} HTTP ke {{url}}", "action_bar_show_menu": "Tampilkan menu", "action_bar_logo_alt": "logo ntfy", "action_bar_toggle_mute": "Bisu/suarakan notifikasi", "action_bar_toggle_action_menu": "Buka/tutup menu tindakan", "message_bar_show_dialog": "Tampilkan dialog publikasi", "message_bar_publish": "Publikasikan pesan", "nav_button_muted": "Notifikasi dibisukan", "nav_button_connecting": "menghubungkan", "notifications_list": "Daftar notifikasi", "notifications_list_item": "Notifikasi", "notifications_mark_read": "Tandai sebagai dibaca", "notifications_delete": "Hapus", "notifications_priority_x": "Prioritas {{priority}}", "notifications_new_indicator": "Notifikasi baru", "notifications_attachment_image": "Lampiran gambar", "notifications_attachment_file_image": "file gambar", "notifications_attachment_file_video": "file", "notifications_attachment_file_audio": "file audio", "notifications_attachment_file_app": "file aplikasi Android", "notifications_attachment_file_document": "dokumen lainnya", "publish_dialog_emoji_picker_show": "Pilih emoji", "publish_dialog_topic_reset": "Atur ulang topik", "publish_dialog_click_reset": "Hapus URL klik", "publish_dialog_email_reset": "Hapus terusan email", "publish_dialog_attach_reset": "Hapus URL lampiran", "publish_dialog_delay_reset": "Hapus pengiriman telat", "publish_dialog_attached_file_remove": "Hapus file yang dilampirkan", "emoji_picker_search_clear": "Hapus pencarian", "subscribe_dialog_subscribe_base_url_label": "URL layanan", "prefs_notifications_sound_play": "Mainkan suara yang dipilih", "prefs_users_table": "Tabel pengguna", "prefs_users_edit_button": "Edit pengguna", "prefs_users_delete_button": "Hapus pengguna", "error_boundary_unsupported_indexeddb_description": "Aplikasi web ntfy membutuhkan IndexedDB untuk berfungsi, dan peramban Anda tidak mendukung IndexedDB dalam mode penjelajahan pribadi.

      Meskipun ini disayangkan, penggunaan aplikasi web ntfy juga tidak masuk akal di mode penjelajahan pribadi, karena semuanya disimpan di penyimpanan peramban. Anda dapat membaca lebih lanjut tentangnya di masalah GitHub ini, atau berbicara dengan kami di Discord atau Matrix.", "error_boundary_unsupported_indexeddb_title": "Penjelajahan privat tidak didukung", "signup_form_confirm_password": "Konfirmasi kata sandi", "signup_form_button_submit": "Daftar", "signup_form_toggle_password_visibility": "Alih keterlihatan kata sandi", "signup_already_have_account": "Sudah punya akun? Masuk!", "signup_disabled": "Pendaftaran dinonaktifkan", "signup_error_username_taken": "Nama pengguna {{username}} telah digunakan", "signup_error_creation_limit_reached": "Batasan pembuatan akun tercapai", "login_title": "Masuk ke akun ntfy Anda", "login_disabled": "Pemasukan dinonaktifkan", "action_bar_account": "Akun", "action_bar_change_display_name": "Ubah nama tampilan", "action_bar_reservation_add": "Reservasi topik", "action_bar_reservation_edit": "Ubah reservasi", "action_bar_reservation_delete": "Hapus reservasi", "action_bar_reservation_limit_reached": "Batasan tercapai", "action_bar_profile_title": "Profil", "action_bar_profile_settings": "Pengaturan", "action_bar_profile_logout": "Keluar", "nav_button_account": "Akun", "display_name_dialog_placeholder": "Nama tampilan", "reserve_dialog_checkbox_label": "Reservasi topik dan atur akses", "nav_upgrade_banner_description": "Reservasikan topik, lebih banyak pesan & surel, dan lampiran lebih besar", "signup_title": "Buat sebuah akun ntfy", "signup_form_password": "Kata sandi", "login_link_signup": "Daftar", "action_bar_sign_up": "Daftar", "signup_form_username": "Nama pengguna", "login_form_button_submit": "Masuk", "action_bar_sign_in": "Masuk", "nav_upgrade_banner_label": "Tingkatkan ke ntfy Pro", "alert_not_supported_context_description": "Notifikasi hanya didukung melalui HTTPS. Ini adalah batasan API Notifikasi.", "display_name_dialog_title": "Ubah nama tampilan", "display_name_dialog_description": "Tetapkan nama alternatif untuk sebuah topik yang ditampilkan di daftar langganan. Ini membantu mengidentifikasi topik dengan nama yang rumit dengan lebih mudah.", "subscribe_dialog_error_topic_already_reserved": "Topik sudah direservasi", "account_basics_username_title": "Nama pengguna", "account_basics_username_admin_tooltip": "Anda adalah Admin", "account_basics_password_title": "Kata sandi", "account_basics_password_description": "Ubah kata sandi akun Anda", "account_basics_password_dialog_title": "Ubah kata sandi", "account_basics_password_dialog_current_password_label": "Kata sandi saat ini", "account_basics_password_dialog_confirm_password_label": "Konfirmasi kata sandi", "account_basics_password_dialog_button_submit": "Ubah kata sandi", "account_basics_password_dialog_current_password_incorrect": "Kata sandi salah", "account_usage_title": "Penggunaan", "account_usage_of_limit": "dari {{limit}}", "account_usage_unlimited": "Tidak terbatas", "account_usage_limits_reset_daily": "Batasan penggunaan diatur ulang setiap hari di tengah malam (UTC)", "account_basics_tier_title": "Jenis akun", "account_basics_tier_description": "Tingkat daya akun Anda", "account_basics_tier_admin_suffix_no_tier": "(tidak ada peringkat)", "account_basics_tier_basic": "Dasaran", "account_basics_tier_change_button": "Ubah", "account_basics_tier_paid_until": "Langganan dibayar sampai {{date}}, dan akan dibayar secara otomatis", "account_basics_tier_canceled_subscription": "Langganan Anda dibatalkan dan akan diturunkan ke akun gratis pada {{date}}.", "account_usage_messages_title": "Pesan terkirim", "account_usage_emails_title": "Surel terkirim", "account_usage_reservations_title": "Topik yang telah direservasi", "account_usage_reservations_none": "Tidak ada topik yang telah direservasi untuk akun ini", "account_usage_attachment_storage_title": "Penyimpanan lampiran", "account_usage_attachment_storage_description": "{{filesize}} per berkas, dihapus setelah {{expiry}}", "account_delete_title": "Hapus akun", "account_delete_description": "Hapus akun Anda secara permanen", "account_delete_dialog_label": "Kata sandi", "account_delete_dialog_button_cancel": "Batal", "account_delete_dialog_button_submit": "Hapus akun secara permanen", "account_usage_cannot_create_portal_session": "Tidak dapat membuka portal tagihan", "account_delete_dialog_billing_warning": "Menghapus akun Anda juga membatalkan tagihan langganan dengan segera. Anda tidak akan memiliki akses lagi ke dasbor tagihan.", "account_upgrade_dialog_title": "Ubah peringkat akun", "account_upgrade_dialog_proration_info": "Prorasi: Saat melakukan upgrade antar paket berbayar, selisih harga akan langsung dibebankan ke. Saat menurunkan ke tingkat yang lebih rendah, saldo akan digunakan untuk membayar periode penagihan di masa mendatang.", "account_upgrade_dialog_reservations_warning_other": "Peringkat yang dipilih memperbolehkan lebih sedikit reservasi topik daripada peringkat Anda saat ini. Sebelum mengubah peringkat Anda, silakan menghapus setidaknya {{count}} reservasi. Anda dapat menghapus reservasi di Pengaturan.", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} topik yang telah direservasi", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} pesan harian", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} surel harian", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} per berkas", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} jumlah penyimpanan", "account_upgrade_dialog_tier_selected_label": "Dipilih", "account_upgrade_dialog_tier_current_label": "Saat ini", "account_upgrade_dialog_button_cancel": "Batal", "account_upgrade_dialog_button_redirect_signup": "Daftar sekarang", "account_upgrade_dialog_button_pay_now": "Bayar sekaramg dan berlangganan", "account_upgrade_dialog_button_cancel_subscription": "Batalkan langganan", "account_upgrade_dialog_button_update_subscription": "Perbarui langganan", "account_tokens_title": "Token akses", "account_tokens_description": "Gunakan token akses saat mengirim dan berlangganan melalui API ntfy, sehingga Anda tidak perlu mengirimkan kredensial akun Anda. Lihat dokumentasi untuk mempelajari lebih lanjut.", "account_tokens_table_token_header": "Token", "account_tokens_table_label_header": "Label", "account_tokens_table_last_access_header": "Akses terakhir", "account_tokens_table_expires_header": "Kedaluwarsa", "account_tokens_table_never_expires": "Tidak pernah kedaluwarsa", "account_tokens_table_current_session": "Sesi peramban saat ini", "common_copy_to_clipboard": "Salin ke papan klip", "account_tokens_table_copied_to_clipboard": "Token akses disalin", "account_tokens_table_cannot_delete_or_edit": "Tidak dapat menyunting atau menghapus token sesi saat ini", "account_tokens_table_create_token_button": "Buat token akses", "account_tokens_dialog_expires_unchanged": "Tinggalkan tanggal kedaluwarsa tidak terganti", "account_tokens_dialog_expires_x_hours": "Token kedaluwarsa dalam {{hours}} jam", "account_tokens_dialog_expires_x_days": "Token kedaluwarsa dalam {{days}} hari", "account_tokens_dialog_expires_never": "Token tidak pernah kedaluwarsa", "account_tokens_delete_dialog_title": "Hapus token akses", "account_tokens_delete_dialog_description": "Sebelum menghapus sebuah token akses, pastikan bahwa tidak ada aplikasi atau skrip yang sedang menggunakannya secara aktif. Tindakan ini tidak dapat diurungkan.", "account_tokens_delete_dialog_submit_button": "Hapus token secara permanan", "prefs_reservations_title": "Topik yang direservasi", "reservation_delete_dialog_action_keep_title": "Jaga tembolok pesan dan lampiran", "reservation_delete_dialog_action_keep_description": "Tembolok pesan dan lampiran yang berada di server akan terlihat secara publik untuk orang-orang dengan pengetahuan nama topik.", "reservation_delete_dialog_action_delete_title": "Hapus tembolok pesan dan lampiran", "reservation_delete_dialog_action_delete_description": "Tembolok pesan dan lampiran akan dihapus secara permanen. Tindakan ini tidak dapat diurungkan.", "reservation_delete_dialog_submit_button": "Hapus reservasi", "prefs_reservations_table_everyone_read_only": "Saya dapat mengirim dan berlangganan, semuanya dapat berlangganan", "prefs_reservations_dialog_title_edit": "Sunting reservasi topik", "subscribe_dialog_subscribe_button_generate_topic_name": "Buat nama", "account_basics_title": "Akun", "account_basics_tier_admin_suffix_with_tier": "(dengan peringkat {{tier}})", "account_basics_tier_free": "Gratis", "account_tokens_dialog_expires_label": "Token akses kedaluwarsa dalam", "account_basics_username_description": "Hei, itu Anda ❤", "account_basics_password_dialog_new_password_label": "Kata sandi baru", "account_basics_tier_admin": "Admin", "account_basics_tier_upgrade_button": "Tingkatkan ke Pro", "account_basics_tier_payment_overdue": "Pembayaran Anda telah jatuh tempo. Mohon perbarui metode pembayaran Anda, atau akun Anda akan segera diturunkan.", "account_basics_tier_manage_billing_button": "Kelola pembayaran", "account_tokens_dialog_title_delete": "Hapus token akses", "account_usage_basis_ip_description": "Statistik dan batasan pengguna untuk akun ini berdasarkan alamat IP Anda, sehingga mereka mungkin terbagi dengan pengguna lain. Batasan yang ditampilkan di atas adalah perkiraan berdasarkan batas tarif yang sudah ada.", "account_delete_dialog_description": "Ini akan menghapus akun Anda secara permanen, termasuk semua data yang telah disimpan di server ini. Setelah penghapusan, nama pengguna Anda akan tidak tersedia selama 7 hari. Jika Anda ingin melanjutkan, silakan mengonfirmasi dengan kata sandi Anda di kotak bawah.", "account_upgrade_dialog_cancel_warning": "Ini akan membatalkan langganan Anda, dan menurunkan akun Anda pada tanggal {{date}}. Pada tanggal itu, reservasi topik maupun tembolok pesan di server akan dihapus.", "prefs_reservations_table_everyone_write_only": "Saya dapat mengirim dan berlangganan, semuanya dapat mengirim", "account_tokens_table_last_origin_tooltip": "Dari alamat IP {{ip}}, klik untuk melihat", "account_tokens_dialog_label": "Label, mis. notifikasi Radarr", "account_tokens_dialog_button_create": "Buat token", "prefs_reservations_description": "Anda dapat mereservasi nama topik untuk penggunaan pribadi di sini. Mereservasikan sebuah topik memberikan Anda kemilikan pada topik, dan memungkinkan Anda untuk mendefinisikan perizinan akses untuk pengguna lain melalui topik.", "account_upgrade_dialog_reservations_warning_one": "Peringkat yang dipilih memperbolehkan lebih sedikit reservasi topik daripada peringkat Anda saat ini. Sebelum mengubah peringkat Anda, silakan menghapus setidaknya satu reservasi. Anda dapat menghapus reservasi di Pengaturan.", "account_tokens_dialog_button_cancel": "Batal", "account_tokens_dialog_title_create": "Buat token akses", "account_tokens_dialog_title_edit": "Sunting token akses", "account_tokens_dialog_button_update": "Perbarui token", "prefs_reservations_add_button": "Tambahkan reservasi topik", "prefs_reservations_table": "Tabel topik yang telah direservasi", "prefs_reservations_table_topic_header": "Topik", "prefs_users_table_cannot_delete_or_edit": "Tidak dapat menghapus atau menyunting pengguna yang telah masuk", "prefs_reservations_table_everyone_deny_all": "Hanya saya yang dapat mengirim dan berlangganan", "prefs_reservations_table_everyone_read_write": "Semuanya dapat mengirim dan berlangganan", "prefs_users_description_no_sync": "Pengguna dan kata sandi tidak disinkronkan ke akun Anda.", "prefs_reservations_limit_reached": "Anda telah mencapai batasan reservasi topik.", "prefs_reservations_edit_button": "Sunting akses topik", "prefs_reservations_table_click_to_subscribe": "Klik untuk berlangganan", "prefs_reservations_delete_button": "Atur ulang akses topik", "prefs_reservations_table_access_header": "Akses", "prefs_reservations_dialog_title_add": "Reservasi topik", "prefs_reservations_dialog_title_delete": "Hapus reservasi topik", "prefs_reservations_table_not_subscribed": "Tidak berlangganan", "prefs_reservations_dialog_description": "Mereservasikan sebuah topik memberikan Anda kemilikan pada topik, dan memungkinkan Anda untuk mendefinisikan perizinan akses untuk pengguna lain melalui topik.", "prefs_reservations_dialog_topic_label": "Topik", "prefs_reservations_dialog_access_label": "Akses", "reservation_delete_dialog_description": "Menghapus sebuah reservasi menghapus kemilikan pada topik, dan memperbolehkan orang-orang lain untuk mereservasinya.", "account_upgrade_dialog_interval_yearly": "Setiap tahun", "account_upgrade_dialog_tier_price_billed_yearly": "Ditagih {{price}} setiap tahun. Hemat {{save}}.", "account_upgrade_dialog_interval_yearly_discount_save": "hemat {{discount}}%", "account_upgrade_dialog_interval_monthly": "Setiap bulan", "account_basics_tier_interval_monthly": "setiap bulan", "account_basics_tier_interval_yearly": "setiap tahun", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "hemat sampai {{discount}}%", "account_upgrade_dialog_tier_features_no_reservations": "Tidak ada topik yang direservasi", "account_upgrade_dialog_tier_price_per_month": "bulan", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} per bulan. Ditagih setiap bulan.", "account_upgrade_dialog_billing_contact_email": "Untuk pertanyaan penagihan, silakan hubungi kami secara langsung.", "account_upgrade_dialog_billing_contact_website": "Untuk pertanyaan penagihan, silakan menuju ke situs web kami.", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} topik yang direservasi", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} surel harian", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} pesan harian", "publish_dialog_call_label": "Panggilan telepon", "publish_dialog_call_placeholder": "Nomor telepon untuk dipanggil dengan pesan, mis. +622223334444, atau 'yes'", "account_basics_phone_numbers_title": "Nomor telepon", "account_basics_phone_numbers_dialog_description": "Untuk menggunakan fitur notifikasi telepon, Anda perlu menambahkan dan memverifikasi setidaknya satu nomor telepon. Verifikasi dapat dilakukan melalui SMS atau panggilan telepon.", "account_basics_phone_numbers_no_phone_numbers_yet": "Belum ada nomor telepon", "account_basics_phone_numbers_dialog_title": "Tambahkan nomor telepon", "account_basics_phone_numbers_dialog_number_label": "Nomor telepon", "account_basics_phone_numbers_dialog_number_placeholder": "mis. +62222333444", "account_basics_phone_numbers_dialog_verify_button_sms": "Kirim SMS", "account_basics_phone_numbers_dialog_channel_call": "Panggil", "account_usage_calls_title": "Panggilan telepon dilakukan", "account_usage_calls_none": "Tidak ada panggilan telepon yang dapat dilakukan dengan akun ini", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} panggilan telepon harian", "publish_dialog_call_reset": "Hapus panggilan telepon", "account_basics_phone_numbers_description": "Untuk notifikasi panggilan telepon", "account_basics_phone_numbers_copied_to_clipboard": "Nomor telepon disalin ke papan klip", "publish_dialog_chip_call_label": "Panggilan telepon", "account_basics_phone_numbers_dialog_verify_button_call": "Panggil saya", "account_basics_phone_numbers_dialog_code_placeholder": "mis. 123456", "account_basics_phone_numbers_dialog_check_verification_button": "Konfirmasi kode", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} panggilan telepon harian", "account_upgrade_dialog_tier_features_no_calls": "Tidak ada panggilan telepon", "account_basics_phone_numbers_dialog_code_label": "Kode verifikasi", "publish_dialog_call_item": "Panggil nomor telepon {{number}}", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Tidak ada nomor telepon terverifikasi", "action_bar_unmute_notifications": "Nyalakan notifikasi", "alert_notification_permission_denied_title": "Notifikasi sedang diblokir", "alert_notification_permission_denied_description": "Silakan aktifkan lagi dalam peramban Anda", "alert_notification_ios_install_required_title": "Pemasangan iOS diperlukan", "alert_notification_ios_install_required_description": "Klik ikon Bagikan dan Tambahkan ke Layar Beranda untuk mengaktifkan notifikasi di iOS", "notifications_actions_failed_notification": "Tindakan tidak berhasil", "publish_dialog_checkbox_markdown": "Format sebagai Markdown", "prefs_notifications_web_push_title": "Notifikasi latar belakang", "prefs_notifications_web_push_enabled_description": "Notifikasi diterima bahkan ketika aplikasi web tidak berjalan (melalui Web Push)", "prefs_notifications_web_push_disabled_description": "Notifikasi diterima ketika aplikasi web berjalan (melalui WebSocket)", "prefs_appearance_theme_title": "Tema", "error_boundary_button_reload_ntfy": "Muat ulang ntfy", "action_bar_mute_notifications": "Matikan notifikasi", "subscribe_dialog_subscribe_use_another_background_info": "Notifikasi dari server lain tidak akan diterima ketika aplikasi web tidak buka", "prefs_notifications_web_push_enabled": "Diaktifkan untuk {{server}}", "prefs_notifications_web_push_disabled": "Dinonaktifkan", "prefs_appearance_theme_dark": "Mode gelap", "prefs_appearance_theme_system": "Sistem (bawaan)", "prefs_appearance_theme_light": "Mode terang", "web_push_subscription_expiring_title": "Notifikasi akan dijeda", "web_push_subscription_expiring_body": "Buka ntfy untuk terus menerima notifikasi", "web_push_unknown_notification_title": "Notifikasi yang tidak diketahui diterima dari server", "web_push_unknown_notification_body": "Anda mungkin harus memperbarui ntfy dengan membuka aplikasi web" } ntfy-2.11.0/web/public/static/langs/it.json000066400000000000000000000563101462047176100205250ustar00rootroot00000000000000{ "action_bar_logo_alt": "logo ntfy", "action_bar_settings": "Impostazioni", "action_bar_clear_notifications": "Cancella tutte le notifiche", "action_bar_unsubscribe": "Annulla l'iscrizione", "action_bar_toggle_action_menu": "Apri/chiudi il menu delle azioni", "message_bar_type_message": "Digita un messaggio qui", "message_bar_error_publishing": "Errore durante la pubblicazione della notifica", "message_bar_show_dialog": "Mostra la finestra di dialogo di pubblicazione", "message_bar_publish": "Pubblica messaggio", "nav_topics_title": "Topic a cui si è iscritti", "nav_button_all_notifications": "Tutte le notifiche", "nav_button_settings": "Impostazioni", "nav_button_publish_message": "Pubblica notifica", "nav_button_subscribe": "Iscriviti al topic", "nav_button_muted": "Notifiche disattivate", "nav_button_connecting": "connessione", "alert_notification_permission_required_title": "Le notifiche sono disabilitate", "alert_notification_permission_required_button": "Concedi ora", "notifications_list": "Elenco notifiche", "notifications_list_item": "Notifiche", "notifications_mark_read": "Segna come letto", "notifications_delete": "Elimina", "notifications_copied_to_clipboard": "Copiato negli appunti", "notifications_tags": "Tags", "notifications_priority_x": "Priorità {{priority}}", "notifications_new_indicator": "Nuova notifica", "notifications_attachment_image": "Immagine allegata", "notifications_attachment_copy_url_title": "Copia l'URL dell'allegato negli appunti", "notifications_attachment_copy_url_button": "Copia URL", "notifications_attachment_open_title": "Vai a {{url}}", "notifications_attachment_open_button": "Apri allegato", "notifications_attachment_link_expires": "Il collegamento scade il {{date}}", "notifications_attachment_link_expired": "link per il download scaduto", "notifications_attachment_file_image": "file immagine", "notifications_attachment_file_video": "file video", "action_bar_toggle_mute": "Abilita/disabilita le notifiche", "notifications_attachment_file_document": "altro documento", "notifications_click_copy_url_button": "Copia link", "notifications_click_open_button": "Apri link", "notifications_actions_open_url_title": "Vai a {{url}}", "notifications_actions_not_supported": "Azione non supportata nell'app Web", "notifications_none_for_topic_title": "Non hai ancora ricevuto alcuna notifica per questo topic.", "notifications_none_for_topic_description": "Per inviare notifiche a questo argomento, è sufficiente PUT o POST all'URL del topic.", "notifications_none_for_any_title": "Non hai ricevuto alcuna notifica.", "notifications_no_subscriptions_title": "Sembra che tu non abbia ancora abbonamenti.", "notifications_example": "Esempio", "notifications_more_details": "Per ulteriori informazioni, consulta il sito web o documentazione.", "notifications_loading": "Caricamento notifiche in corso…", "publish_dialog_title_topic": "Pubblica su {{topic}}", "publish_dialog_title_no_topic": "Pubblica notifica", "publish_dialog_progress_uploading": "Caricamento in corso…", "publish_dialog_progress_uploading_detail": "Caricamento {{loaded}}/{{total}} ({{percent}}%)…", "publish_dialog_message_published": "Notifica pubblicata", "publish_dialog_attachment_limits_file_and_quota_reached": "supera {{fileSizeLimit}} limite di file e quota, {{remainingBytes}} rimanenti", "publish_dialog_attachment_limits_file_reached": "supera di {{fileSizeLimit}} il limite dei file", "publish_dialog_attachment_limits_quota_reached": "supera la quota, {{remainingBytes}} rimanenti", "publish_dialog_emoji_picker_show": "Scegli emoji", "publish_dialog_priority_min": "Min. priorità", "publish_dialog_priority_low": "Bassa priorità", "publish_dialog_priority_default": "Priorità predefinita", "publish_dialog_priority_high": "Priorità alta", "publish_dialog_priority_max": "Max. priorità", "publish_dialog_base_url_label": "URL del servizio", "publish_dialog_base_url_placeholder": "URL del servizio, ad es. https://esempio.com", "publish_dialog_topic_label": "Nome topic", "publish_dialog_topic_placeholder": "Nome topic, ad es. avvisi_di_phil", "publish_dialog_topic_reset": "Reset topic", "publish_dialog_title_label": "Titolo", "publish_dialog_title_placeholder": "Titolo della notifica, ad es. Avviso di spazio su disco", "publish_dialog_message_label": "Messaggio", "publish_dialog_message_placeholder": "Digita un messaggio qui", "publish_dialog_tags_label": "Tags", "publish_dialog_priority_label": "Priorità", "publish_dialog_click_label": "Clicca URL", "publish_dialog_click_reset": "Rimuovi l'URL del clic", "publish_dialog_email_label": "Email", "publish_dialog_email_placeholder": "Indirizzo a cui inoltrare la notifica, ad es. phil@example.com", "publish_dialog_email_reset": "Rimuovi inoltro email", "publish_dialog_attach_label": "URL Allegato", "publish_dialog_attach_reset": "Rimuovi l'URL dell'allegato", "publish_dialog_filename_label": "Nome del file", "publish_dialog_filename_placeholder": "Nome file allegato", "publish_dialog_delay_placeholder": "Consegna ritardata, ad es. {{unixTimestamp}}, {{relativeTime}} o \"{{naturalLanguage}}\" (solo in inglese)", "publish_dialog_delay_reset": "Rimuovere la consegna ritardata", "publish_dialog_other_features": "Altre funzionalità:", "publish_dialog_chip_click_label": "Fare clic su URL", "publish_dialog_chip_email_label": "Inoltra a e-mail", "publish_dialog_chip_attach_url_label": "Allega il file tramite URL", "publish_dialog_chip_attach_file_label": "Allega file locale", "publish_dialog_chip_delay_label": "Ritardo nella consegna", "publish_dialog_button_cancel_sending": "Annulla l'invio", "publish_dialog_button_cancel": "Annulla", "publish_dialog_button_send": "Invia", "publish_dialog_checkbox_publish_another": "Pubblica un altro", "publish_dialog_attached_file_title": "File allegato:", "publish_dialog_attached_file_remove": "Rimuovi il file allegato", "publish_dialog_drop_file_here": "Trascina il file qui", "emoji_picker_search_clear": "Cancella ricerca", "subscribe_dialog_subscribe_title": "Iscriviti al topic", "subscribe_dialog_subscribe_topic_placeholder": "Nome dell'argomento, ad es. avvisi_di_phil", "subscribe_dialog_subscribe_base_url_label": "URL del servizio", "subscribe_dialog_subscribe_button_cancel": "Annulla", "subscribe_dialog_login_title": "Accesso richiesto", "subscribe_dialog_login_username_label": "Nome utente, ad es. phil", "subscribe_dialog_login_button_login": "Login", "subscribe_dialog_error_user_anonymous": "anonimo", "prefs_notifications_sound_title": "Suono di notifica", "prefs_notifications_sound_description_some": "Le notifiche riproducono il suono {{sound}} quando arrivano", "prefs_notifications_sound_no_sound": "Nessun suono", "prefs_notifications_min_priority_description_any": "Visualizzazione di tutte le notifiche, indipendentemente dalla priorità", "prefs_notifications_min_priority_description_max": "Mostra notifiche se la priorità è 5 (max)", "prefs_notifications_min_priority_any": "Qualsiasi priorità", "prefs_notifications_min_priority_low_and_higher": "Priorità bassa e superiore", "prefs_notifications_min_priority_high_and_higher": "Priorità alta e superiore", "prefs_notifications_min_priority_max_only": "Solo priorità massima", "prefs_notifications_delete_after_never": "Mai", "prefs_notifications_delete_after_three_hours": "Dopo tre ore", "prefs_notifications_delete_after_one_day": "Dopo un giorno", "prefs_notifications_delete_after_never_description": "Le notifiche non vengono mai eliminate automaticamente", "prefs_notifications_delete_after_one_day_description": "Le notifiche vengono eliminate automaticamente dopo un giorno", "prefs_notifications_delete_after_one_week_description": "Le notifiche vengono eliminate automaticamente dopo una settimana", "prefs_notifications_delete_after_one_month_description": "Le notifiche vengono eliminate automaticamente dopo un mese", "prefs_users_title": "Gestisci gli utenti", "prefs_users_description": "Aggiungi/rimuovi utenti per i tuoi topic protetti qui. Tieni presente che nome utente e password sono memorizzati nella memoria locale del browser.", "prefs_users_table": "Tabella utenti", "prefs_users_add_button": "Aggiungi utente", "prefs_users_edit_button": "Modifica utente", "prefs_users_delete_button": "Elimina utente", "prefs_users_table_user_header": "Utente", "prefs_users_table_base_url_header": "URL del servizio", "prefs_users_dialog_title_add": "Aggiungi utente", "prefs_users_dialog_title_edit": "Modifica utente", "prefs_users_dialog_base_url_label": "URL del servizio, ad es. https://ntfy.sh", "prefs_users_dialog_username_label": "Nome utente, ad es. phil", "prefs_users_dialog_password_label": "Password", "common_cancel": "Annulla", "common_add": "Aggiungere", "common_save": "Salva", "prefs_appearance_title": "Aspetto", "prefs_appearance_language_title": "Lingua", "priority_min": "min", "priority_low": "basso", "priority_default": "predefinito", "priority_high": "alto", "priority_max": "max", "error_boundary_title": "Oh no, ntfy è andato in crash", "error_boundary_description": "Questo ovviamente non dovrebbe accadere. Mi dispiace molto per questo.
      Se hai un minuto, per favore segnala su GitHub, o faccelo sapere tramite Discord o Matrix .", "error_boundary_button_copy_stack_trace": "Copia traccia dello stack", "error_boundary_stack_trace": "Traccia dello stack", "error_boundary_gathering_info": "Raccogli più informazioni…", "error_boundary_unsupported_indexeddb_title": "Navigazione privata non supportata", "action_bar_show_menu": "Mostra menu", "action_bar_send_test_notification": "Inviare una notifica di prova", "alert_not_supported_description": "Le notifiche non sono supportate nel tuo browser.", "nav_button_documentation": "Documentazione", "notifications_actions_http_request_title": "Invia HTTP {{method}} a {{url}}", "alert_notification_permission_required_description": "Concedi al tuo browser l'autorizzazione a visualizzare le notifiche sul desktop.", "alert_not_supported_title": "Notifiche non supportate", "notifications_attachment_file_app": "file app Android", "notifications_no_subscriptions_description": "Fai clic sul link \"{{linktext}}\" per creare o iscriverti a un topic. Successivamente, puoi inviare messaggi tramite PUT o POST e riceverai le notifiche qui.", "notifications_attachment_file_audio": "file audio", "notifications_none_for_any_description": "Per inviare notifiche a un topic, è sufficiente PUT o POST all'URL del topic. Ecco un esempio utilizzando uno dei tuoi topic.", "notifications_click_copy_url_title": "Copia l'URL del collegamento negli appunti", "prefs_notifications_sound_description_none": "Le notifiche non emettono alcun suono quando arrivano", "publish_dialog_delay_label": "Ritardo", "publish_dialog_tags_placeholder": "Elenco di tag separato da virgole, ad es. avviso, backup-srv1", "publish_dialog_click_placeholder": "URL che viene aperto quando si fa clic sulla notifica", "publish_dialog_attach_placeholder": "Allega file tramite URL, ad es. https://f-droid.org/F-Droid.apk", "publish_dialog_chip_topic_label": "Cambia topic", "publish_dialog_details_examples_description": "Per esempi e una descrizione dettagliata di tutte le funzioni di invio, fare riferimento alla documentazione.", "publish_dialog_attached_file_filename_placeholder": "Nome file allegato", "emoji_picker_search_placeholder": "Cerca emoji", "subscribe_dialog_subscribe_description": "Gli argomenti potrebbero non essere protetti da password, quindi scegli un nome che non sia facile da indovinare. Una volta iscritto, puoi inviare le notifiche tramite PUT/POST.", "subscribe_dialog_subscribe_use_another_label": "Usa un altro server", "subscribe_dialog_login_password_label": "Password", "subscribe_dialog_subscribe_button_subscribe": "Iscriviti", "prefs_notifications_sound_play": "Riproduci il suono selezionato", "prefs_notifications_min_priority_title": "Priorità minima", "subscribe_dialog_login_description": "Questo argomento è protetto da password. Per favore inserisci username e password per iscriverti.", "common_back": "Indietro", "subscribe_dialog_error_user_not_authorized": "Utente {{username}} non autorizzato", "prefs_notifications_title": "Notifiche", "prefs_notifications_delete_after_title": "Elimina le notifiche", "prefs_notifications_min_priority_default_and_higher": "Priorità predefinita e superiore", "prefs_notifications_min_priority_description_x_or_higher": "Mostra le notifiche se la priorità è {{number}} ({{name}}) o superiore", "prefs_notifications_delete_after_one_week": "Dopo una settimana", "prefs_notifications_delete_after_one_month": "Dopo un mese", "prefs_notifications_delete_after_three_hours_description": "Le notifiche vengono eliminate automaticamente dopo tre ore", "error_boundary_unsupported_indexeddb_description": "L'app web ntfy ha bisogno di IndexedDB per funzionare e il tuo browser non supporta IndexedDB in modalità di navigazione privata.

      Anche se questo è un peccato, non ha molto senso usare il web ntfy app in modalità di navigazione privata comunque, perché tutto è archiviato nella memoria del browser. Puoi leggere di più a riguardo in questo numero di GitHub o parlarci su Discord o Matrix.", "nav_upgrade_banner_label": "Passa alla versione Pro di ntfy", "alert_not_supported_context_description": "Le Notifiche sono supportate solo tramite HTTPS. Questa è una limitazione delle Notifications API.", "account_basics_password_dialog_new_password_label": "Nuova password", "action_bar_profile_logout": "Esci", "account_basics_tier_interval_monthly": "mensile", "account_basics_tier_interval_yearly": "annuale", "account_basics_tier_upgrade_button": "Passa alla versione Pro", "account_basics_tier_change_button": "Cambia", "account_basics_tier_paid_until": "Abbonamento pagato fino a {{data}}, e si rinnoverà automaticamente", "account_basics_tier_payment_overdue": "Il pagamento è scaduto. La preghiamo di aggiornare il suo metodo di pagamento, altrimenti il suo account verrà presto declassato.", "account_basics_tier_canceled_subscription": "L'abbonamento è stato annullato e sarà declassato ad account gratuito a partire dalla {{data}}.", "account_basics_tier_manage_billing_button": "Gestire la fatturazione", "account_usage_messages_title": "Messaggi pubblicati", "account_usage_reservations_title": "Argomenti riservati", "account_usage_reservations_none": "Non ci sono argomenti riservati per questo account", "signup_form_toggle_password_visibility": "Imposta la visibilità della password", "signup_already_have_account": "Hai già un account? Accedi!", "signup_disabled": "Registrazione disabilitata", "signup_title": "Crea un account ntfy", "signup_form_username": "Nome utente", "signup_form_password": "Password", "signup_form_confirm_password": "Conferma password", "signup_form_button_submit": "Registrazione", "signup_error_username_taken": "Il nome utente {{username}} è già utilizzato", "signup_error_creation_limit_reached": "Il limite per la creazione di account è stato raggiunto", "login_title": "Accedi al tuo account ntfy", "login_form_button_submit": "Accedi", "login_link_signup": "Registrati", "login_disabled": "L'accesso è disabilitato", "action_bar_account": "Account", "action_bar_change_display_name": "Cambia il nome da visualizzare", "action_bar_reservation_limit_reached": "Limite raggiunto", "action_bar_profile_title": "Profilo", "action_bar_profile_settings": "Impostazioni", "action_bar_reservation_add": "Riserva un argomento", "action_bar_reservation_edit": "Modifica l'argomento riservato", "action_bar_reservation_delete": "Rimuovi l'argomento riservato", "action_bar_sign_in": "Accedi", "action_bar_sign_up": "Registrati", "nav_button_account": "Account", "nav_upgrade_banner_description": "Riserva argomenti, più messaggi ed e-mail e allegati più grandi", "display_name_dialog_description": "Imposta un nome alternativo per un argomento che viene visualizzato nell'elenco delle sottoscrizioni. Questo aiuta a identificare più facilmente gli argomenti con nomi complicati.", "display_name_dialog_title": "Cambia il nome visualizzato", "display_name_dialog_placeholder": "Nome visualizzato", "reserve_dialog_checkbox_label": "Riserva un argomento e configura l'accesso", "subscribe_dialog_subscribe_button_generate_topic_name": "Genera un nome", "subscribe_dialog_error_topic_already_reserved": "Argomento già in uso", "account_basics_title": "Account", "account_basics_username_title": "Nome utente", "account_basics_username_admin_tooltip": "Sei Amministratore", "account_basics_password_title": "Password", "account_basics_password_description": "Cambia la password del tuo account", "account_basics_password_dialog_title": "Cambia la password", "account_basics_password_dialog_current_password_label": "Password attuale", "account_basics_password_dialog_confirm_password_label": "Conferma la password", "account_basics_password_dialog_button_submit": "Cambia la password", "account_basics_password_dialog_current_password_incorrect": "Password errata", "account_usage_title": "Utilizzo", "account_usage_of_limit": "di {{limit}}", "account_usage_unlimited": "Illimitato", "account_usage_limits_reset_daily": "I limiti di utilizzo vengono azzerati ogni giorno a mezzanotte (orario UTC)", "account_basics_tier_title": "Tipo di account", "account_basics_tier_description": "Permessi del tuo account", "account_basics_tier_admin": "Amministratore", "account_basics_tier_admin_suffix_with_tier": "(con livello {{tier}})", "account_basics_tier_admin_suffix_no_tier": "(nessun livello)", "account_basics_tier_basic": "Base", "account_basics_tier_free": "Gratuito", "account_usage_emails_title": "Email inviate", "account_usage_cannot_create_portal_session": "Impossibile aprire il portale di pagamento", "account_delete_title": "Elimina account", "account_basics_username_description": "Hey, sei tu ❤", "publish_dialog_call_item": "Chiama numero {{number}}", "common_copy_to_clipboard": "Copia negli appunti", "publish_dialog_call_label": "Chiamata telefonica", "publish_dialog_call_reset": "Rimuovi chiamata telefonica", "publish_dialog_chip_call_label": "Chiamata telefonica", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Nessun numero verificato", "account_basics_phone_numbers_title": "Numeri di telefono", "account_basics_phone_numbers_dialog_description": "Per usare la funzionalità di notifica tramite chiamata telefonica, devi aggiungere e verificare almeno un numero di telefono. La verifica può essere fatta tramite SMS o chiamata telefonica.", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} topic riservato", "account_upgrade_dialog_billing_contact_email": "Per domande di fatturazione, contattaci direttamente.", "account_upgrade_dialog_tier_current_label": "Attuale", "account_basics_phone_numbers_dialog_number_label": "Numero di telefono", "account_basics_phone_numbers_dialog_check_verification_button": "Conferma codice", "account_basics_phone_numbers_dialog_verify_button_sms": "Invia SMS", "account_basics_phone_numbers_no_phone_numbers_yet": "Ancora nessun numero di telefono", "account_basics_phone_numbers_dialog_title": "Aggiungi un numero di telefono", "account_upgrade_dialog_button_cancel": "Cancella", "account_upgrade_dialog_billing_contact_website": "Per domande di fatturazione, visita per favore in nostro sito.", "account_upgrade_dialog_button_cancel_subscription": "Cancella iscrizione", "account_basics_phone_numbers_description": "Per notifiche via chiamata", "account_basics_phone_numbers_copied_to_clipboard": "Numero di telefono copiato negli appunti", "account_basics_phone_numbers_dialog_number_placeholder": "p. e. +391234567890", "account_basics_phone_numbers_dialog_code_placeholder": "p. e. 123456", "account_tokens_title": "Token d'accesso", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} all'anno. Addebitato annualmente.", "account_basics_phone_numbers_dialog_channel_call": "Chiama", "account_upgrade_dialog_button_redirect_signup": "Iscriviti ora", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} addebitato annualmente. Risparmia {{save}}.", "account_upgrade_dialog_tier_price_per_month": "mese", "account_upgrade_dialog_button_pay_now": "Paga ora e isciviti", "account_basics_phone_numbers_dialog_code_label": "Codice di verifica", "account_basics_phone_numbers_dialog_verify_button_call": "Chiamami", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_upgrade_dialog_tier_selected_label": "Selezionato", "account_upgrade_dialog_button_update_subscription": "Aggiorna iscrizione", "account_usage_attachment_storage_title": "Archivio allegati", "account_delete_dialog_description": "Il tuo account sarà permanentemente cancellato assieme a tutti i tuoi dati presenti sul server. Dopo la cancellazione, la tua username non sarà disponibile per 7 giorni. Se desideri davvero procedere, inserisci la tua password nella seguente casella.", "account_delete_dialog_button_cancel": "Annulla", "account_usage_calls_title": "Chiamate effettuate", "account_delete_description": "Elimina permanentemente il tuo account", "account_delete_dialog_button_submit": "Elimina il tuo account permanentemente", "account_usage_basis_ip_description": "Le statistiche di utilizzo e i limiti per questo account sono basati sul tuo indirizzo IP, quindi potrebbero essere in condivisione con altri utenti. I limiti mostrati sopra sono approssimazioni basate sui limiti esistenti.", "account_usage_calls_none": "Questo account non può effettuare chiamate", "account_delete_dialog_billing_warning": "Eliminando il tuo account perderai immediatamente il tuo abbonamento. Non potrai più accedere alla dashboard di fatturazione.", "account_delete_dialog_label": "Password", "account_upgrade_dialog_tier_features_no_reservations": "Nessun argomento riservato", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} messaggi giornalieri", "account_upgrade_dialog_reservations_warning_one": "Il livello selezionato consente meno argomenti riservati rispetto al livello corrente. Prima di cambiare il livello, si prega di eliminare almeno una prenotazione. È possibile rimuovere le prenotazioni nel Impostazioni." } ntfy-2.11.0/web/public/static/langs/ja.json000066400000000000000000001011751462047176100205030ustar00rootroot00000000000000{ "message_bar_error_publishing": "通知送信エラー", "nav_button_all_notifications": "全ての通知", "nav_button_settings": "設定", "notifications_click_open_button": "リンクを開く", "action_bar_send_test_notification": "テスト通知を送信", "action_bar_clear_notifications": "全ての通知を消去", "action_bar_unsubscribe": "購読解除", "nav_button_documentation": "ドキュメント", "alert_not_supported_description": "通知機能はこのブラウザではサポートされていません。", "notifications_copied_to_clipboard": "クリップボードにコピーしました", "notifications_example": "例", "publish_dialog_title_topic": "{{topic}}に送信", "publish_dialog_title_no_topic": "通知を送信", "publish_dialog_progress_uploading": "アップロード中…", "publish_dialog_progress_uploading_detail": "アップロード中 {{loaded}}/{{total}} ({{percent}}%) …", "publish_dialog_message_published": "通知を送信しました", "publish_dialog_title_label": "タイトル", "publish_dialog_filename_label": "ファイル名", "subscribe_dialog_login_description": "このトピックはログインする必要があります。ユーザー名とパスワードを入力してください。", "subscribe_dialog_login_username_label": "ユーザー名, 例) phil", "subscribe_dialog_login_password_label": "パスワード", "common_back": "戻る", "subscribe_dialog_login_button_login": "ログイン", "prefs_notifications_min_priority_high_and_higher": "優先度高 およびそれ以上", "prefs_notifications_min_priority_max_only": "優先度最高のみ", "action_bar_settings": "設定", "message_bar_type_message": "メッセージを入力してください", "nav_topics_title": "購読しているトピック", "nav_button_subscribe": "トピックを購読", "alert_notification_permission_required_description": "ブラウザのデスクトップ通知を許可してください。", "alert_notification_permission_required_button": "許可する", "notifications_attachment_link_expires": "リンクは {{date}} に失効します", "notifications_click_copy_url_button": "リンクをコピー", "notifications_none_for_topic_description": "トピックに通知を送信するには、トピックのURLにPUTかPOSTしてください。", "nav_button_publish_message": "通知を送信", "alert_notification_permission_required_title": "通知は無効化されています", "alert_not_supported_title": "通知機能はサポートされていません", "notifications_tags": "タグ", "notifications_attachment_copy_url_button": "URLをコピー", "notifications_attachment_open_title": "{{url}} に移動", "notifications_attachment_link_expired": "ダウンロードリンクは失効しました", "notifications_actions_open_url_title": "{{url}} に移動", "notifications_attachment_copy_url_title": "添付URLをクリップボードにコピー", "notifications_attachment_open_button": "添付ファイルを開く", "notifications_click_copy_url_title": "リンクURLをクリップボードにコピー", "notifications_none_for_topic_title": "このトピックではまだ通知を受信していません。", "notifications_no_subscriptions_description": "「{{linktext}}」リンクをクリックしてトピックを作成または購読してください。その後、メッセージをPUTまたはPOSTで送信すると通知が受信できます。", "publish_dialog_message_label": "メッセージ", "publish_dialog_email_label": "メール", "notifications_none_for_any_title": "まだ通知を受信していません。", "publish_dialog_priority_max": "優先度 最高", "publish_dialog_button_cancel_sending": "送信をキャンセル", "publish_dialog_attach_label": "添付URL", "notifications_none_for_any_description": "トピックに通知を送信するには、トピックURLにPUTまたはPOSTしてください。トピックのひとつを利用した例を示します。", "notifications_no_subscriptions_title": "まだ何も購読していないようです。", "publish_dialog_attachment_limits_file_and_quota_reached": "ファイル制限とクォータ {{fileSizeLimit}} を超えました、残り {{remainingBytes}}", "publish_dialog_priority_label": "優先度", "publish_dialog_click_label": "クリックURL", "publish_dialog_email_placeholder": "通知を転送するアドレス, 例) phil@example.com", "notifications_more_details": "詳しい情報は、ウェブサイト または ドキュメント を参照してください。", "publish_dialog_attachment_limits_file_reached": "ファイルサイズ制限 {{fileSizeLimit}} を超えました", "publish_dialog_priority_min": "優先度 最低", "publish_dialog_priority_low": "優先度 低", "publish_dialog_priority_default": "優先度 通常", "publish_dialog_base_url_label": "サービスURL", "publish_dialog_other_features": "他の機能:", "notifications_loading": "通知を読み込み中…", "publish_dialog_attachment_limits_quota_reached": "クォータを超過しました、残り{{remainingBytes}}", "publish_dialog_priority_high": "優先度 高", "publish_dialog_topic_placeholder": "トピック名の例 phil_alerts", "publish_dialog_title_placeholder": "通知タイトル 例: ディスクスペース警告", "publish_dialog_message_placeholder": "メッセージ本文を入力してください", "publish_dialog_tags_label": "タグ", "publish_dialog_tags_placeholder": "コンマ区切りでタグを列挙してください 例: warning, srv1-backup", "publish_dialog_topic_label": "トピック名", "publish_dialog_delay_label": "遅延", "publish_dialog_click_placeholder": "通知をクリックしたときに開くURL", "publish_dialog_filename_placeholder": "添付ファイルの名称", "publish_dialog_button_send": "送信", "publish_dialog_chip_click_label": "Click URL", "publish_dialog_chip_email_label": "メールに転送", "publish_dialog_details_examples_description": "送信機能の例や詳細な説明については、ドキュメントを参照してください。", "error_boundary_description": "明らかに起きてはならないことです。本当に申し訳ありません。
      もし時間があれば、GitHubにこれを報告するか、DiscordまたはMatrixで我々に知らせて下さい。", "publish_dialog_chip_attach_url_label": "URLでファイルを添付", "publish_dialog_chip_attach_file_label": "ローカルファイルを添付", "publish_dialog_chip_topic_label": "トピックを変更", "publish_dialog_chip_delay_label": "配信を遅延させる", "publish_dialog_attached_file_title": "添付ファイル:", "publish_dialog_button_cancel": "キャンセル", "publish_dialog_checkbox_publish_another": "送信後開いたままにする", "publish_dialog_attached_file_filename_placeholder": "添付ファイル名", "emoji_picker_search_placeholder": "絵文字を検索", "subscribe_dialog_subscribe_title": "トピックを購読", "prefs_users_title": "ユーザー管理", "publish_dialog_drop_file_here": "ここにファイルをドロップしてください", "subscribe_dialog_subscribe_topic_placeholder": "トピック名 例: phils_alerts", "prefs_notifications_min_priority_any": "全ての優先度", "prefs_notifications_delete_after_three_hours": "3時間後", "prefs_users_description": "保護トピックのユーザーを追加/削除できます。ユーザー名とパスワードはブラウザのローカルストレージに保存されることに留意してください。", "prefs_users_add_button": "ユーザー追加", "common_add": "追加", "subscribe_dialog_subscribe_use_another_label": "他のサーバーを使用", "subscribe_dialog_error_user_not_authorized": "ユーザー名 {{username}} は許可されていません", "prefs_notifications_delete_after_one_week": "1週間後", "prefs_notifications_delete_after_one_month": "1か月後", "subscribe_dialog_subscribe_description": "トピックはパスワード保護されないので、推測されにくい名前にしてください。購読した後、PUT/POSTで通知を送信できます。", "subscribe_dialog_subscribe_button_cancel": "キャンセル", "subscribe_dialog_subscribe_button_subscribe": "購読", "subscribe_dialog_login_title": "ログインが必要です", "subscribe_dialog_error_user_anonymous": "匿名", "prefs_notifications_title": "通知", "prefs_notifications_min_priority_low_and_higher": "優先度低 およびそれ以上", "prefs_notifications_delete_after_never": "削除しない", "prefs_notifications_delete_after_one_day": "1日後", "prefs_notifications_sound_title": "通知音", "prefs_notifications_sound_no_sound": "サウンドなし", "prefs_notifications_min_priority_title": "表示する優先度", "prefs_notifications_min_priority_default_and_higher": "優先度通常 およびそれ以上", "prefs_notifications_delete_after_title": "通知を削除", "common_cancel": "キャンセル", "common_save": "保存", "prefs_users_table_user_header": "ユーザー名", "prefs_users_dialog_title_add": "ユーザー追加", "prefs_users_dialog_title_edit": "ユーザー編集", "prefs_users_dialog_base_url_label": "サービスURL, 例) https://ntfy.sh", "prefs_appearance_title": "外観", "prefs_appearance_language_title": "言語", "prefs_users_table_base_url_header": "サービスURL", "prefs_users_dialog_username_label": "ユーザー名, 例) phil", "prefs_users_dialog_password_label": "パスワード", "error_boundary_title": "おっと、ntfyがクラッシュしました", "error_boundary_button_copy_stack_trace": "スタックトレースをコピー", "error_boundary_stack_trace": "スタックトレース", "error_boundary_gathering_info": "更に情報を集める…", "publish_dialog_base_url_placeholder": "サービスURL, 例) https://example.com", "publish_dialog_attach_placeholder": "添付ファイルをURLで指定, 例) https://f-droid.org/F-Droid.apk", "publish_dialog_delay_placeholder": "遅延時間, 例) {{unixTimestamp}}, {{relativeTime}}, or \"{{naturalLanguage}}\" (English only)", "prefs_notifications_sound_description_none": "通知受信時に音を鳴らしません", "prefs_notifications_sound_description_some": "通知受信時に {{sound}} を鳴らします", "prefs_notifications_min_priority_description_any": "優先度に関係なく全ての通知を表示します", "prefs_notifications_min_priority_description_x_or_higher": "優先度が {{number}} ({{name}}) 以上の時に通知を表示します", "prefs_notifications_delete_after_never_description": "通知は自動的に削除されません", "prefs_notifications_delete_after_one_day_description": "通知は1日後に自動的に削除されます", "prefs_notifications_delete_after_one_week_description": "通知は1週間後に自動的に削除されます", "prefs_notifications_delete_after_one_month_description": "通知は1か月後に自動的に削除されます", "priority_high": "高", "priority_max": "最高", "prefs_notifications_min_priority_description_max": "優先度が 5 (最高) の時にのみ通知を表示します", "priority_default": "通常", "prefs_notifications_delete_after_three_hours_description": "通知は3時間後に自動的に削除されます", "priority_low": "低", "priority_min": "最低", "notifications_actions_not_supported": "このアクションはWebアプリではサポートされていません", "notifications_actions_http_request_title": "{{url}}にHTTP {{method}}を送信", "prefs_users_edit_button": "ユーザーを編集", "publish_dialog_attached_file_remove": "添付ファイルを削除", "error_boundary_unsupported_indexeddb_description": "nfty webアプリは動作にIndexedDBを使用しますが、あなたのブラウザはプライベートブラウジングモード時にIndexedDBをサポートしていません。

      これは残念なことですが、ntfy webアプリは全ての情報をブラウザストレージに保存して動作するため、プライベートブラウジングモードで利用するのはあまり意味がないかも知れません。詳細については GitHub issueを参照するか、DiscordMatrixの議論に参加してください。", "action_bar_show_menu": "メニューを表示", "action_bar_logo_alt": "ntfyロゴ", "action_bar_toggle_mute": "通知をミュート/解除", "action_bar_toggle_action_menu": "動作メニューを開く/閉じる", "message_bar_show_dialog": "送信ダイアログを表示", "message_bar_publish": "メッセージを送信", "nav_button_muted": "ミュートされた通知", "nav_button_connecting": "接続中", "notifications_list": "通知一覧", "notifications_new_indicator": "新しい通知", "notifications_list_item": "通知", "notifications_mark_read": "既読にする", "notifications_delete": "削除", "notifications_priority_x": "優先度 {{priority}}", "notifications_attachment_image": "添付画像", "notifications_attachment_file_image": "画像ファイル", "notifications_attachment_file_video": "動画ファイル", "notifications_attachment_file_audio": "音声ファイル", "notifications_attachment_file_app": "Androidアプリファイル", "notifications_attachment_file_document": "その他文書", "publish_dialog_emoji_picker_show": "絵文字", "publish_dialog_topic_reset": "トピックをリセット", "publish_dialog_click_reset": "クリックURLを削除", "publish_dialog_email_reset": "メール転送を削除", "publish_dialog_attach_reset": "添付URLを削除", "publish_dialog_delay_reset": "配信遅延を削除", "emoji_picker_search_clear": "検索をクリア", "subscribe_dialog_subscribe_base_url_label": "サーバーURL", "prefs_notifications_sound_play": "選択されたサウンドを再生", "prefs_users_table": "ユーザー一覧", "prefs_users_delete_button": "ユーザーを削除", "error_boundary_unsupported_indexeddb_title": "プライベートブラウジングはサポートされていません", "signup_form_username": "ユーザー名", "signup_form_password": "パスワード", "signup_form_confirm_password": "パスワードを確認", "signup_already_have_account": "アカウントをお持ちならサインイン", "signup_disabled": "サインアップは無効化されています", "signup_error_creation_limit_reached": "アカウント作成制限に達しました", "login_title": "あなたのntfyアカウントにサインイン", "login_link_signup": "サインアップ", "login_disabled": "ログインは無効化されています", "action_bar_account": "アカウント", "action_bar_change_display_name": "表示名を変更する", "action_bar_reservation_add": "トピックを予約する", "action_bar_reservation_edit": "予約を編集する", "action_bar_reservation_limit_reached": "制限に達しました", "action_bar_profile_title": "プロファイル", "action_bar_profile_settings": "設定", "action_bar_profile_logout": "ログアウト", "action_bar_sign_in": "サインイン", "action_bar_sign_up": "サインアップ", "nav_button_account": "アカウント", "nav_upgrade_banner_label": "ntfy Proにアップグレード", "display_name_dialog_title": "表示名を変更", "display_name_dialog_placeholder": "表示名", "signup_form_button_submit": "サインアップ", "signup_form_toggle_password_visibility": "パスワードを表示/非表示", "signup_title": "ntfyアカウントを作成する", "login_form_button_submit": "サインイン", "alert_not_supported_context_description": "通知はHTTPSのみサポートされています。これはNotifications APIの制限によるものです。", "nav_upgrade_banner_description": "トピックを予約、より多くのメッセージとメール、より大きい添付ファイル", "signup_error_username_taken": "ユーザー名 {{username}} は既に使用されています", "action_bar_reservation_delete": "予約を削除する", "display_name_dialog_description": "購読リストに表示されるトピックの別名を設定して、複雑な名前のトピックの識別を容易にします。", "reserve_dialog_checkbox_label": "トピックを保存してアクセスを編集", "subscribe_dialog_subscribe_button_generate_topic_name": "名前を生成", "subscribe_dialog_error_topic_already_reserved": "このトピックは予約済みです", "account_basics_title": "アカウント", "account_basics_tier_description": "アカウントのパワーレベル", "account_basics_tier_admin": "管理者", "account_basics_tier_admin_suffix_with_tier": "(ティア {{tier}})", "account_basics_tier_free": "無料", "account_usage_attachment_storage_description": "1ファイルあたり{{filesize}}、{{expiry}}を過ぎると削除", "account_usage_basis_ip_description": "アカウントの使用量統計および制限はあなたのIPアドレスに基づいているため、他のユーザーと共有される可能性があります。上記制限は既存のレート制限に基づく概算値です。", "account_usage_cannot_create_portal_session": "支払いポータルを開けませんでした", "account_delete_title": "アカウントを削除", "account_delete_description": "アカウントを永久的に削除", "account_delete_dialog_description": "サーバーに保存されている全てのデータを含むあなたのアカウント情報を削除します。削除後、あなたのユーザー名は7日間利用できません。もし本当に先に進めたい場合、下の入力欄にパスワードを入力して確認して下さい。", "account_delete_dialog_label": "パスワード", "account_delete_dialog_button_cancel": "キャンセル", "account_delete_dialog_button_submit": "永久的にアカウントを削除", "account_delete_dialog_billing_warning": "アカウントを削除するとサブスクリプション支払いも即時キャンセルされます。支払いダッシュボードにもアクセスできなくなります。", "account_upgrade_dialog_title": "アカウントティアを変更", "account_upgrade_dialog_cancel_warning": "これによりサブスクリプションをキャンセルし{{date}}にアカウントをダウングレードします。同日、トピック予約およびサーバーにキャッシュされたメッセージは削除されます。", "account_upgrade_dialog_proration_info": "追記。有料プランをアップグレードする場合、価格差は即座に請求されます。ダウングレードする場合、差額は次の請求期間の支払いに利用されます。", "account_upgrade_dialog_tier_features_reservations_other": "予約のトピック{{reservations}}件", "account_upgrade_dialog_tier_features_emails_other": "日次メール{{emails}}件", "account_upgrade_dialog_tier_features_messages_other": "日次メッセージ{{messages}}件", "account_upgrade_dialog_tier_selected_label": "選択", "account_upgrade_dialog_tier_current_label": "現在", "account_upgrade_dialog_button_cancel": "キャンセル", "account_upgrade_dialog_button_redirect_signup": "サインアップ", "account_upgrade_dialog_button_pay_now": "支払いしてサブスクライブする", "account_upgrade_dialog_button_cancel_subscription": "サブスクリプションをキャンセル", "account_upgrade_dialog_button_update_subscription": "サブスクリプションを更新", "account_tokens_description": "ntfy APIで発行または購読する際にアクセストークンを使うことで、アカウント認証情報を送信する必要がなくなります。詳細はドキュメントを確認して下さい。", "account_tokens_table_token_header": "トークン", "account_tokens_table_label_header": "ラベル", "account_tokens_table_last_access_header": "最終アクセス", "account_tokens_table_expires_header": "期限", "account_tokens_table_never_expires": "無期限", "account_tokens_table_current_session": "現在のブラウザセッション", "common_copy_to_clipboard": "クリップボードにコピー", "account_tokens_table_copied_to_clipboard": "アクセストークンをコピーしました", "account_tokens_table_cannot_delete_or_edit": "現在のセッショントークンは編集または削除できません", "account_tokens_table_create_token_button": "アクセストークンを生成", "account_tokens_table_last_origin_tooltip": "IPアドレス {{ip}} から、クリックして参照", "account_tokens_dialog_title_create": "アクセストークンを生成", "account_tokens_dialog_title_edit": "アクセストークンを編集", "account_tokens_dialog_title_delete": "アクセストークンを削除", "account_tokens_dialog_label": "ラベル、例:Radarr通知", "account_tokens_dialog_button_create": "トークンを生成", "account_tokens_dialog_button_update": "トークンを更新", "account_tokens_dialog_button_cancel": "キャンセル", "account_tokens_dialog_expires_label": "アクセストークン有効期限", "account_tokens_dialog_expires_unchanged": "有効期限を変更しない", "account_tokens_dialog_expires_x_hours": "トークンは {{hours}} 時間後に失効します", "account_tokens_dialog_expires_x_days": "トークンは {{days}} 日後に失効します", "account_tokens_dialog_expires_never": "トークン失効なし", "account_tokens_delete_dialog_title": "アクセストークンを削除", "account_tokens_delete_dialog_submit_button": "トークンを永久削除", "prefs_users_description_no_sync": "ユーザー名とパスワードはアカウントと同期されません。", "prefs_users_table_cannot_delete_or_edit": "ログインしているユーザーは削除または編集できません", "prefs_reservations_title": "予約されたトピック", "prefs_reservations_description": "ここでトピック名を個人利用の為に予約する事ができます。トピックを予約する事でそのトピックの所有権が付与され、他のユーザーにアクセス権を付与する事ができるようになります。", "prefs_reservations_add_button": "予約トピックを追加する", "prefs_reservations_edit_button": "トピックへのアクセスを編集する", "prefs_reservations_delete_button": "トピックへのアクセスをリセットする", "prefs_reservations_table": "予約トピックの一覧", "prefs_reservations_table_topic_header": "トピック", "prefs_reservations_table_everyone_deny_all": "自分のみ発行と購読が可能", "prefs_reservations_table_everyone_read_only": "自分は発行と購読が可能、誰でも購読可能", "prefs_reservations_table_everyone_write_only": "自分は発行と購読可能、誰でも発行可能", "prefs_reservations_table_everyone_read_write": "誰でも発行と購読が可能", "prefs_reservations_table_not_subscribed": "購読されていません", "prefs_reservations_table_click_to_subscribe": "クリックして購読", "prefs_reservations_dialog_title_edit": "予約トピックを編集", "prefs_reservations_dialog_title_delete": "トピック予約を削除", "prefs_reservations_dialog_topic_label": "トピック", "prefs_reservations_dialog_access_label": "アクセス", "reservation_delete_dialog_action_keep_title": "キャッシュされたメッセージと添付ファイルを保持する", "reservation_delete_dialog_action_keep_description": "サーバーにキャッシュされたメッセージと添付ファイルは公開されてトピック名を知っている人が閲覧できるようになります。", "reservation_delete_dialog_action_delete_title": "キャッシュされたメッセージと添付ファイルを削除する", "reservation_delete_dialog_action_delete_description": "キャッシュされたメッセージと添付ファイルは永久的に削除されます。この操作は元に戻せません。", "account_basics_username_admin_tooltip": "あなたは管理者です", "account_basics_password_title": "パスワード", "account_basics_password_dialog_current_password_label": "現在のパスワード", "account_usage_limits_reset_daily": "使用量制限は世界協定時 (UTC) の深夜に毎日リセットされます", "account_basics_tier_basic": "ベーシック", "account_basics_tier_paid_until": "サブスクリプションは{{date}}まで有効で、自動更新されます", "account_basics_username_title": "ユーザー名", "account_basics_username_description": "あなたのお名前です ❤", "account_basics_password_description": "アカウントパスワードを変更", "account_basics_password_dialog_title": "パスワード変更", "account_basics_password_dialog_confirm_password_label": "パスワードを確認", "account_basics_password_dialog_current_password_incorrect": "パスワードが異なります", "account_usage_of_limit": ": {{limit}}", "account_usage_unlimited": "無制限", "account_basics_tier_upgrade_button": "プロにアップグレード", "account_basics_tier_manage_billing_button": "支払い方法を管理", "account_basics_password_dialog_new_password_label": "新しいパスワード", "account_basics_password_dialog_button_submit": "パスワードを変更", "account_usage_title": "使用量", "account_basics_tier_title": "アカウントタイプ", "account_basics_tier_admin_suffix_no_tier": "(ティアなし)", "account_basics_tier_change_button": "変更", "account_basics_tier_payment_overdue": "支払期限を過ぎています。支払い方法を更新しないと、近日中にアカウントはダウングレードされます。", "account_basics_tier_canceled_subscription": "あなたのサブスクリプションはキャンセルされ{{date}}に無料アカウントにダウングレードされます。", "account_usage_messages_title": "発行されたメッセージ", "account_usage_reservations_none": "このアカウントで予約されたトピックはありません", "account_usage_attachment_storage_title": "添付ストレージ", "account_usage_emails_title": "送信済みメール", "account_upgrade_dialog_reservations_warning_one": "選択されたティアは、現在のティアよりも少ない予約トピックを利用できます。ティアを変更する前に、少なくとも1つの予約を削除してください。予約の削除は、設定で行うことができます。", "account_usage_reservations_title": "予約されたトピック", "account_upgrade_dialog_reservations_warning_other": "選択されたティアは、現在のティアよりも少ない予約トピックを利用できます。ティアを変更する前に、少なくとも{{count}}個の予約を削除してください。予約の削除は、設定で行うことができます。", "account_tokens_delete_dialog_description": "アクセストークンを削除する前に、アプリやスクリプトが利用中でないか確認して下さい。この操作は元に戻せません。", "account_upgrade_dialog_tier_features_attachment_file_size": "1ファイルあたり{{filesize}}", "account_upgrade_dialog_tier_features_attachment_total_size": "総ストレージ{{totalsize}}", "account_tokens_title": "アクセストークン", "prefs_reservations_limit_reached": "予約トピック数の上限に達しました。", "prefs_reservations_table_access_header": "アクセス", "prefs_reservations_dialog_title_add": "トピックを予約", "prefs_reservations_dialog_description": "トピックを予約する事でそのトピックの所有権が付与され、他のユーザーにアクセス権を付与する事ができるようになります。", "reservation_delete_dialog_description": "予約を削除するとトピックの所有権を失い、他の人が予約できるようになります。既存のメッセージや添付ファイルは保持または削除することができます。", "reservation_delete_dialog_submit_button": "予約を削除", "account_basics_tier_interval_monthly": "毎月", "account_upgrade_dialog_interval_monthly": "毎月", "account_upgrade_dialog_interval_yearly": "毎年", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "最大{{discount}}%節約", "account_upgrade_dialog_tier_features_no_reservations": "予約トピックなし", "account_upgrade_dialog_billing_contact_email": "支払いについての問い合わせは、直接お問い合わせください。", "account_upgrade_dialog_interval_yearly_discount_save": "{{discount}}%節約", "account_basics_tier_interval_yearly": "毎年", "account_upgrade_dialog_tier_price_per_month": "月", "account_upgrade_dialog_tier_price_billed_monthly": "年間{{price}}。月毎の支払い。", "account_upgrade_dialog_tier_price_billed_yearly": "年間{{price}}の支払い。{{save}}節約。", "account_upgrade_dialog_billing_contact_website": "支払いに関する質問は、ウェブサイトを参照して下さい。", "account_upgrade_dialog_tier_features_messages_one": "毎日 {{messages}} メッセージ", "account_upgrade_dialog_tier_features_reservations_one": "予約済みトピック {{reservations}} 件", "account_upgrade_dialog_tier_features_emails_one": "毎日メール {{emails}} 件", "publish_dialog_call_label": "電話", "publish_dialog_call_item": "電話番号 {{number}}", "account_basics_phone_numbers_title": "電話番号", "account_usage_calls_none": "このアカウントからは電話を発信できません", "account_usage_calls_title": "電話を発信しました", "account_upgrade_dialog_tier_features_calls_one": "電話 1日 {{calls}} 回", "account_upgrade_dialog_tier_features_no_calls": "電話なし", "publish_dialog_call_reset": "電話番号を削除", "publish_dialog_chip_call_label": "電話番号", "account_basics_phone_numbers_dialog_description": "電話通知機能を使うには、最低ひとつの電話番号を追加して認証する必要があります。認証はSMSまたは電話で実施できます。", "account_basics_phone_numbers_description": "電話通知", "account_basics_phone_numbers_dialog_title": "電話番号を追加", "account_basics_phone_numbers_no_phone_numbers_yet": "電話番号はまだありません", "account_basics_phone_numbers_copied_to_clipboard": "電話番号がクリップボードにコピーされました", "account_basics_phone_numbers_dialog_number_label": "電話番号", "account_basics_phone_numbers_dialog_number_placeholder": "例 +1222333444", "account_basics_phone_numbers_dialog_verify_button_sms": "SMSを送信", "account_basics_phone_numbers_dialog_verify_button_call": "自分に電話する", "account_basics_phone_numbers_dialog_code_label": "確認コード", "account_basics_phone_numbers_dialog_code_placeholder": "例 123456", "account_basics_phone_numbers_dialog_check_verification_button": "確認コード", "account_upgrade_dialog_tier_features_calls_other": "電話 1日 {{calls}} 回", "publish_dialog_chip_call_no_verified_numbers_tooltip": "認証済み電話番号がありません", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_basics_phone_numbers_dialog_channel_call": "電話する" } ntfy-2.11.0/web/public/static/langs/ko.json000066400000000000000000000343211462047176100205200ustar00rootroot00000000000000{ "action_bar_show_menu": "메뉴 표시", "action_bar_logo_alt": "ntfy 로고", "action_bar_settings": "설정", "action_bar_send_test_notification": "시험용 알림 발송", "action_bar_clear_notifications": "모든 알림 초기화", "action_bar_unsubscribe": "구독 해제", "action_bar_toggle_mute": "알림 음소거/해제", "action_bar_toggle_action_menu": "액션 메뉴 열기/닫기", "message_bar_type_message": "여기에 메세지를 입력하세요", "message_bar_error_publishing": "메세지 발송 오류", "message_bar_show_dialog": "발송 창 표시", "message_bar_publish": "메세지 발송", "nav_topics_title": "구독한 주제", "nav_button_all_notifications": "모든 알림", "nav_button_publish_message": "알림 보내기", "nav_button_subscribe": "주제 구독하기", "nav_button_muted": "알림 음소거됨", "nav_button_connecting": "연결중", "alert_notification_permission_required_title": "알림이 비활성화되어 있습니다", "alert_notification_permission_required_description": "데스크톱 알림을 받기 위해서는 브라우저에서 권한을 부여해야 합니다.", "alert_notification_permission_required_button": "권한 부여하기", "alert_not_supported_title": "알림이 지원되지 않습니다", "notifications_list_item": "알림", "notifications_mark_read": "읽음으로 표시", "notifications_delete": "삭제", "notifications_copied_to_clipboard": "클립보드에 복사됨", "notifications_tags": "태그", "notifications_priority_x": "우선순위 {{priority}}", "notifications_new_indicator": "새 알림", "notifications_attachment_image": "첨부 이미지", "notifications_attachment_copy_url_title": "첨부 주소를 클립보드에 복사", "notifications_attachment_copy_url_button": "URL 복사", "notifications_attachment_open_title": "{{url}}로 가기", "publish_dialog_attachment_limits_file_and_quota_reached": "첨부파일 크기 제한({{fileSizeLimit}}) 초과 및 할당량 초과({{remainingBytes}} 남음)", "publish_dialog_attachment_limits_file_reached": "첨부파일 크기 제한({{fileSizeLimit}}) 초과", "publish_dialog_attachment_limits_quota_reached": "할당량 초과({{remainingBytes}} 남음)", "publish_dialog_emoji_picker_show": "이모지 선택", "publish_dialog_priority_min": "우선순위 최소", "publish_dialog_priority_low": "우선순위 낮음", "publish_dialog_priority_default": "우선순위 기본", "publish_dialog_priority_high": "우선순위 높음", "publish_dialog_priority_max": "우선순위 최상", "publish_dialog_base_url_label": "서비스 URL", "publish_dialog_base_url_placeholder": "서비스 URL, 예를 들면 https://example.com", "publish_dialog_topic_label": "주제 이름", "publish_dialog_topic_placeholder": "주제 이름, 예를 들면 phil_alerts", "publish_dialog_topic_reset": "주제 초기화", "publish_dialog_title_label": "제목", "publish_dialog_title_placeholder": "알림 제목, 예를 들면 디스크 공간 경고", "publish_dialog_message_label": "메세지", "publish_dialog_message_placeholder": "메세지를 여기에 입력하세요", "publish_dialog_tags_label": "태그", "publish_dialog_tags_placeholder": "반점으로 구분된 태그 목록, 예를 들면 warning, srv1-backup", "publish_dialog_priority_label": "우선순위", "publish_dialog_click_label": "클릭 URL", "publish_dialog_click_placeholder": "알림이 클릭되었을때 이동할 URL", "publish_dialog_click_reset": "클릭 URL 제거", "publish_dialog_email_label": "이메일", "publish_dialog_email_placeholder": "알림을 전달할 이메일 주소, 예를 들면 phil@example.com", "publish_dialog_email_reset": "이메일 전달 삭제", "publish_dialog_attach_label": "첨부 파일 URL", "publish_dialog_attach_placeholder": "파일을 URL로 첨부하기, 예를 들면 https://f-droid.org/F-Droid.apk", "publish_dialog_attach_reset": "첨부 파일 URL 삭제", "publish_dialog_filename_label": "파일 이름", "publish_dialog_filename_placeholder": "첨부 파일 이름", "publish_dialog_delay_label": "지연", "publish_dialog_chip_email_label": "이메일로 전달", "publish_dialog_chip_attach_url_label": "URL로 파일 첨부", "publish_dialog_chip_attach_file_label": "로컬 파일 첨부", "publish_dialog_chip_delay_label": "발송 지연", "publish_dialog_chip_topic_label": "주제 변경", "publish_dialog_details_examples_description": "예제와 모든 전송 기능의 자세한 설명은 문서를 참고해주세요.", "publish_dialog_button_cancel": "취소", "publish_dialog_button_send": "보내기", "publish_dialog_button_cancel_sending": "보내기 취소", "publish_dialog_checkbox_publish_another": "다른 메세지 보내기", "publish_dialog_attached_file_title": "첨부된 파일:", "publish_dialog_attached_file_filename_placeholder": "첨부 파일 이름", "publish_dialog_attached_file_remove": "첨부 파일 삭제", "publish_dialog_drop_file_here": "여기에 파일을 끌어다 놓으세요", "emoji_picker_search_placeholder": "이모지 검색", "emoji_picker_search_clear": "검색 초기화", "subscribe_dialog_subscribe_title": "주제 구독하기", "subscribe_dialog_subscribe_description": "주제는 비밀번호로 보호되지 않을 수 있으니 추측하기 어려운 이름을 사용하십시오. 구독한 뒤 PUT/POST 알림을 보낼 수 있습니다.", "subscribe_dialog_subscribe_topic_placeholder": "주제 이름, 예를 들면 phil_alerts", "subscribe_dialog_subscribe_use_another_label": "다른 서버 사용", "subscribe_dialog_subscribe_base_url_label": "서비스 URL", "subscribe_dialog_subscribe_button_cancel": "취소", "subscribe_dialog_subscribe_button_subscribe": "구독하기", "subscribe_dialog_login_title": "로그인 필요함", "subscribe_dialog_error_user_anonymous": "익명", "subscribe_dialog_error_user_not_authorized": "사용자 {{username}} 은(는) 인증되지 않았습니다", "subscribe_dialog_login_username_label": "사용자 이름, 예를 들면 phil", "subscribe_dialog_login_password_label": "비밀번호", "common_back": "뒤로가기", "subscribe_dialog_login_button_login": "로그인", "prefs_notifications_title": "알림", "prefs_notifications_sound_title": "알림 효과음", "prefs_notifications_sound_description_none": "알림 도착시 효과음을 재생하지 않습니다", "prefs_notifications_sound_description_some": "알림 도착시 {{sound}} 효과음이 재생됩니다", "prefs_notifications_sound_no_sound": "효과음 없음", "prefs_notifications_sound_play": "선택한 효과음 재생", "prefs_notifications_min_priority_title": "우선순위 최소", "prefs_notifications_min_priority_description_x_or_higher": "우선순위가 {{number}} ({{name}}) 이상인 알림만 보기", "prefs_notifications_min_priority_description_max": "우선순위가 5 (최상)인 알림만 보기", "prefs_notifications_min_priority_any": "아무 우선순위", "prefs_notifications_min_priority_default_and_higher": "우선순위 기본 이상", "prefs_notifications_min_priority_low_and_higher": "우선순위 낮음 이상", "prefs_notifications_delete_after_three_hours": "3시간 뒤", "prefs_notifications_delete_after_one_day": "1일 뒤", "prefs_notifications_delete_after_one_week": "1주 뒤", "prefs_notifications_delete_after_one_month": "1달 뒤", "prefs_notifications_delete_after_never_description": "알림이 자동으로 삭제되지 않습니다", "prefs_notifications_delete_after_three_hours_description": "알림이 3시간 뒤 자동으로 삭제됩니다", "prefs_notifications_delete_after_one_day_description": "알림이 1일 뒤 자동으로 삭제됩니다", "prefs_notifications_delete_after_one_week_description": "알림이 1주 뒤 자동으로 삭제됩니다", "prefs_notifications_delete_after_one_month_description": "알림이 1달 뒤 자동으로 삭제됩니다", "prefs_users_title": "사용자 관리", "prefs_users_description": "이곳에서 보호된 주제를 위한 사용자를 추가하거나 삭제할 수 있습니다. 사용자 이름과 비밀번호는 브라우저의 로컬 저장소에 보관됩니다.", "prefs_users_add_button": "사용자 추가", "prefs_users_edit_button": "사용자 편집", "prefs_users_delete_button": "사용자 삭제", "prefs_users_table_user_header": "사용자", "prefs_users_table_base_url_header": "서비스 URL", "prefs_users_dialog_title_add": "사용자 추가", "prefs_users_dialog_title_edit": "사용자 편집", "prefs_users_dialog_base_url_label": "서비스 URL, 예를 들면 https://ntfy.sh", "common_cancel": "취소", "common_save": "저장", "prefs_appearance_title": "표시 설정", "common_add": "추가", "prefs_appearance_language_title": "언어", "priority_min": "최하", "priority_low": "낮음", "priority_default": "기본", "priority_high": "높음", "error_boundary_title": "이런, ntfy가 충돌했습니다", "error_boundary_button_copy_stack_trace": "스택 트레이스 복사", "error_boundary_stack_trace": "스택 트레이스", "error_boundary_gathering_info": "더 많은 정보 모으기 …", "error_boundary_unsupported_indexeddb_title": "시크릿 모드는 지원되지 않습니다", "notifications_click_copy_url_button": "링크 복사", "notifications_click_copy_url_title": "링크 URL을 클립보드에 복사", "notifications_attachment_file_video": "동영상 파일", "notifications_attachment_file_app": "안드로이드 앱 파일", "notifications_attachment_file_document": "다른 문서", "notifications_click_open_button": "링크 열기", "notifications_actions_not_supported": "웹앱에서 지원되지 않는 동작입니다", "publish_dialog_title_topic": "{{topic}}에 발송", "alert_not_supported_description": "사용중인 브라우저에서 알림 기능을 지원하지 않습니다.", "notifications_example": "예제", "notifications_more_details": "더 많은 정보가 필요하시다면 웹사이트문서를 참고하세요.", "notifications_list": "알림 목록", "notifications_attachment_open_button": "첨부 파일 열기", "notifications_no_subscriptions_title": "아직 아무런 구독을 추가하지 않으신 것 같습니다.", "nav_button_settings": "설정", "nav_button_documentation": "문서", "notifications_attachment_link_expires": "링크가 {{date}}에 만료됨", "notifications_attachment_link_expired": "다운로드 링크 만료됨", "notifications_attachment_file_audio": "음성 파일", "notifications_attachment_file_image": "사진 파일", "notifications_actions_open_url_title": "{{url}]로 가기", "notifications_actions_http_request_title": "HTTP {{method}}를 {{url}}에 보내기", "notifications_none_for_topic_title": "아직 이 주제 관련 알림을 받지 않았습니다.", "notifications_none_for_any_title": "아직 어떤 알림도 받지 않았습니다.", "notifications_none_for_any_description": "알림을 받으려면 아래 주소로 PUT이나 POST 요청을 보내세요. 구독중이신 주제 중 하나로 예를 들자면 다음과 같습니다.", "notifications_loading": "알림 불러오는중 …", "publish_dialog_message_published": "알림 발송됨", "notifications_none_for_topic_description": "알림을 받으려면 아래 주소로 PUT이나 POST 요청을 보내세요.", "notifications_no_subscriptions_description": "\"{{linktext}}\" 링크를 눌러서 주제를 생성하거나 구독하세요. 그 다음, 메세지를 PUT이나 POST로 보내면 여기에서 알림을 받으실 수 있습니다.", "publish_dialog_progress_uploading": "업로드중 …", "publish_dialog_title_no_topic": "알림 발송", "publish_dialog_progress_uploading_detail": "업로드중 {{loaded}}/{{total}} ({{percent}}%) …", "publish_dialog_delay_placeholder": "알림 발송 지연, 예를 들면 {{unixTimestamp}}, {{relativeTime}} 또는 \"{{naturalLanguage}}\" (영어로 입력)", "publish_dialog_delay_reset": "발송 지연 삭제", "publish_dialog_chip_click_label": "클릭 URL", "subscribe_dialog_login_description": "이 주제는 비밀번호로 보호되어 있습니다. 구독하시려면 사용자 이름과 비밀번호를 입력해주세요.", "prefs_notifications_min_priority_max_only": "우선순위 최상만", "publish_dialog_other_features": "다른 기능:", "prefs_notifications_min_priority_description_any": "우선순위 무관 모든 알림 보기", "prefs_notifications_min_priority_high_and_higher": "우선순위 높음 이상", "error_boundary_unsupported_indexeddb_description": "ntfy 웹 앱은 동작하기 위해서 IndexedDB가 필요하지만 사용중이신 브라우저는 IndexedDB를 시크릿 모드에서 지원하지 않습니다.

      안타깝지만 모든 정보는 브라우저에만 저장되므로 ntfy 웹앱을 시크릿 모드에서 사용할 이유는 존재하지 않습니다. 이 깃허브 이슈를 참고해 보시거나, 디스코드 서버Matrix에서 저희와 이야기를 나눌 수 있습니다.", "prefs_notifications_delete_after_title": "알림 삭제", "prefs_notifications_delete_after_never": "삭제하지 않음", "prefs_users_table": "사용자 테이블", "prefs_users_dialog_username_label": "사용자 이름, 예를 들면 phil", "prefs_users_dialog_password_label": "비밀번호", "priority_max": "최상", "error_boundary_description": "이것은 당연히 발생되어서는 안됩니다. 굉장히 죄송합니다.
      가능하시다면 이 문제를 깃허브에 제보해 주시거나, 디스코드 서버Matrix를 통해 알려주세요." } ntfy-2.11.0/web/public/static/langs/nb_NO.json000066400000000000000000000332601462047176100211030ustar00rootroot00000000000000{ "nav_button_subscribe": "Abonner på emne", "action_bar_settings": "Innstillinger", "action_bar_send_test_notification": "Send testmerknad", "action_bar_clear_notifications": "Tøm alle merknader", "action_bar_unsubscribe": "Opphev abonnement", "message_bar_type_message": "Skriv en melding her", "nav_button_all_notifications": "Alle merknader", "nav_button_settings": "Innstillinger", "nav_button_documentation": "Dokumentasjon", "nav_topics_title": "Abonnerte emner", "alert_notification_permission_required_title": "Merknader er avskrudd", "alert_not_supported_title": "Merknader støttes ikke", "notifications_copied_to_clipboard": "Kopiert til utklippstavlen", "notifications_attachment_copy_url_title": "Kopier vedleggsnettadresse til utklippstavlen", "notifications_attachment_copy_url_button": "Kopier nettadresse", "notifications_attachment_open_button": "Åpne vedlegg", "notifications_attachment_open_title": "Gå til {{url}}", "notifications_attachment_link_expires": "lenken utløper {{date}}", "notifications_click_copy_url_title": "Kopier lenke-nettadresse til utklippstavlen", "notifications_actions_open_url_title": "Gå til {{url}}", "notifications_tags": "Etiketter", "notifications_attachment_link_expired": "nedlastingslenken har utløpt", "notifications_none_for_any_title": "Du har ikke mottatt noen merknader.", "notifications_click_open_button": "Åpne lenke", "notifications_none_for_topic_title": "Du har ikke mottatt noen merknader for dette emnet enda.", "notifications_example": "Eksempel", "publish_dialog_title_topic": "Publiser til {{topic}}", "publish_dialog_priority_min": "Min. prioritet", "publish_dialog_priority_low": "Lav prioritet", "publish_dialog_priority_default": "Forvalgt prioritet", "publish_dialog_priority_high": "Høy prioritet", "publish_dialog_priority_max": "Maks. prioritet", "publish_dialog_base_url_label": "Tjeneste-nettadresse", "publish_dialog_message_label": "Melding", "publish_dialog_priority_label": "Prioritet", "publish_dialog_tags_label": "Etiketter", "publish_dialog_click_placeholder": "Nettadresse som åpnes når merknaden klikkes", "publish_dialog_attach_label": "Vedleggs-nettadresse", "publish_dialog_attach_placeholder": "Legg ved fil per nettadresse, f.eks. https://f-droid.org/F-Droid.apk", "publish_dialog_filename_label": "Filnavn", "publish_dialog_delay_label": "Forsinkelse", "publish_dialog_filename_placeholder": "Vedleggets filnavn", "publish_dialog_other_features": "Andre funksjoner:", "publish_dialog_chip_email_label": "Videresend til e-post", "publish_dialog_chip_topic_label": "Endre emne", "publish_dialog_button_cancel_sending": "Avbryt forsendelse", "publish_dialog_chip_attach_file_label": "Legg ved lokal fil", "publish_dialog_attached_file_title": "Vedlagt fil:", "publish_dialog_attached_file_filename_placeholder": "Vedleggsfilnavn", "subscribe_dialog_subscribe_use_another_label": "Bruk en annen tjener", "subscribe_dialog_subscribe_button_cancel": "Avbryt", "publish_dialog_drop_file_here": "Slipp filen her", "subscribe_dialog_subscribe_title": "Abonner på emne", "emoji_picker_search_placeholder": "Søk etter emoji", "subscribe_dialog_login_button_login": "Logg inn", "subscribe_dialog_subscribe_button_subscribe": "Abonner", "subscribe_dialog_login_title": "Innlogging kreves", "subscribe_dialog_login_username_label": "Brukernavn, f.eks. phil", "subscribe_dialog_login_password_label": "Passord", "prefs_notifications_title": "Merknader", "prefs_notifications_sound_title": "Merknadslyd", "prefs_notifications_sound_no_sound": "Ingen lyd", "subscribe_dialog_error_user_anonymous": "anonym", "error_boundary_stack_trace": "Stabelspor", "error_boundary_button_copy_stack_trace": "Kopier stabelspor", "message_bar_error_publishing": "Kunne ikke publisere merknader", "nav_button_publish_message": "Publiser merknad", "publish_dialog_title_no_topic": "Publiser merknad", "publish_dialog_progress_uploading": "Laster opp …", "publish_dialog_progress_uploading_detail": "Laster opp {{loaded}}/{{total}} ({{percent}}%) …", "notifications_loading": "Laster inn merknader …", "publish_dialog_message_published": "Merknad publisert", "publish_dialog_email_placeholder": "Adresse å videresende merknaden til, f.eks. phil@example.com", "error_boundary_gathering_info": "Hent mer info …", "prefs_notifications_sound_description_some": "Merknader spiller {{sound}}-lyd når de mottas", "prefs_notifications_min_priority_description_any": "Viser alle merknader, uavhengig av prioritet", "prefs_notifications_min_priority_description_x_or_higher": "Vis merknader hvis prioritet er {{number}} ({{name}}) eller høyere", "prefs_notifications_min_priority_high_and_higher": "Høy prioritet og høyere", "prefs_notifications_min_priority_max_only": "Kun maks. prioritet", "prefs_notifications_delete_after_one_day": "Etter én dag", "prefs_notifications_delete_after_one_week": "Etter én uke", "prefs_notifications_delete_after_one_month": "Etter én måned", "prefs_notifications_delete_after_never_description": "Merknader blir aldri slettet automatisk", "prefs_notifications_delete_after_three_hours_description": "Merknader slettes automatisk etter tre timer", "prefs_users_title": "Håndter brukere", "prefs_users_add_button": "Legg til bruker", "prefs_users_table_user_header": "Bruker", "prefs_users_dialog_title_add": "Legg til bruker", "prefs_users_dialog_title_edit": "Rediger bruker", "prefs_users_dialog_base_url_label": "Tjeneste-nettadresse, f.eks. https://ntfy.sh", "prefs_users_dialog_password_label": "Passord", "common_save": "Lagre", "prefs_appearance_title": "Utseende", "prefs_appearance_language_title": "Språk", "prefs_users_dialog_username_label": "Brukernavn, f.eks. phil", "priority_low": "lav", "priority_default": "forvalg", "priority_high": "høy", "priority_max": "maks.", "alert_notification_permission_required_button": "Innvilg nå", "publish_dialog_topic_label": "Emnenavn", "prefs_notifications_delete_after_one_day_description": "Merknader slettes automatisk etter én dag", "notifications_click_copy_url_button": "Kopier lenke", "error_boundary_title": "Oida, ntfy krasjet", "publish_dialog_message_placeholder": "Skriv en melding her", "publish_dialog_button_cancel": "Avbryt", "prefs_notifications_min_priority_title": "Minimumsprioritet", "prefs_notifications_delete_after_title": "Slett merknader", "prefs_notifications_delete_after_never": "Aldri", "publish_dialog_email_label": "E-post", "publish_dialog_button_send": "Send", "prefs_notifications_delete_after_one_week_description": "Merknader slettes automatisk etter én uke", "prefs_notifications_delete_after_one_month_description": "Merknader slettes automatisk etter én måned", "priority_min": "min.", "common_back": "Tilbake", "prefs_notifications_delete_after_three_hours": "Etter tre timer", "prefs_users_table_base_url_header": "Tjeneste-nettadresse", "common_cancel": "Avbryt", "common_add": "Legg til", "publish_dialog_chip_attach_url_label": "Legg til fil med nettadresse", "publish_dialog_tags_placeholder": "Kommainndelt liste over etiketter, f.eks. advarsel, srv1-sikkerhetskopi", "prefs_notifications_sound_description_none": "Merknader spiller ikke lyd når de mottas", "subscribe_dialog_subscribe_topic_placeholder": "Emnenavn, f.eks. phil_varsler", "prefs_notifications_min_priority_default_and_higher": "Forvalgt prioritet og høyere", "notifications_no_subscriptions_title": "Det ser ut til at du ikke har noen abonnementer ennå.", "publish_dialog_attachment_limits_file_and_quota_reached": "overskrider {{fileSizeLimit}} filgrense og kvote, {{remainingBytes}} gjenstår", "publish_dialog_attachment_limits_file_reached": "overskrider filgrensen på {{fileSizeLimit}}", "publish_dialog_title_label": "Tittel", "publish_dialog_title_placeholder": "Varslingstittel, f.eks. Diskplassvarsel", "publish_dialog_topic_placeholder": "Emnenavn, f.eks. halgeir_varsler", "publish_dialog_chip_click_label": "Klikk URL", "publish_dialog_chip_delay_label": "Forsink leveringen", "publish_dialog_details_examples_description": "For eksempler og en detaljert beskrivelse av alle sendefunksjoner, se dokumentasjonen.", "publish_dialog_base_url_placeholder": "Tjeneste-URL, f.eks. https://example.com", "alert_notification_permission_required_description": "Gi nettleseren din tillatelse til å vise skrivebordsvarsler.", "alert_not_supported_description": "Varsler støttes ikke i nettleseren din.", "notifications_attachment_file_app": "Android-app-fil", "notifications_no_subscriptions_description": "Klikk på \"{{linktext}}\"-koblingen for å opprette eller abonnere på et emne. Etter det kan du sende meldinger via PUT eller POST, og du vil motta varsler her.", "notifications_actions_http_request_title": "Send HTTP {{metode}} til {{url}}", "notifications_none_for_any_description": "For å sende varsler til et emne, bare PUT eller POST til emne-URLen. Her er et eksempel som bruker et av emnene dine.", "notifications_more_details": "For mer informasjon, sjekk ut nettstedet eller dokumentasjonen.", "publish_dialog_attachment_limits_quota_reached": "overskrider kvoten, {{remainingBytes}} gjenstår", "publish_dialog_click_reset": "Fjern klikk-URL", "publish_dialog_delay_placeholder": "Forsinket levering, f.eks. {{unixTimestamp}}, {{relativeTime}} eller \"{{naturalLanguage}}\" (bare på engelsk)", "emoji_picker_search_clear": "Tøm søk", "subscribe_dialog_subscribe_description": "Det kan hende emner ikke er passordsbeskyttet, så velg et navn som ikke er enkelt å gjette. Når du har abonnert kan du utføre PUT/POST av merknader.", "publish_dialog_checkbox_publish_another": "Publiser enda en", "subscribe_dialog_login_description": "Dette emnet er passordbeskyttet. Vennligst skriv inn brukernavn og passord for å abonnere.", "prefs_notifications_sound_play": "Spill av valgt lyd", "subscribe_dialog_error_user_not_authorized": "Bruker {{brukernavn}} ikke autorisert", "prefs_users_delete_button": "Slett bruker", "error_boundary_unsupported_indexeddb_description": "ntfy-nettappen trenger IndexedDB for å fungere, og nettleseren din støtter ikke IndexedDB i privat nettlesingsmodus.

      Selv om dette er uheldig, gir det heller ikke så mye mening å bruke ntfy-nettappen i privat surfemodus uansett, fordi alt er lagret i nettleserlagringen. Du kan lese mer om det i denne GitHub-feilmeldingen, eller snakk med oss på Discord eller Matrix.", "action_bar_show_menu": "Vis meny", "action_bar_toggle_mute": "Aktiver/deaktiver notifikasjoner", "prefs_notifications_min_priority_description_max": "Vis merknader hvis prioritet er 5 (maks.)", "prefs_notifications_min_priority_any": "Hvilken som helst prioritet", "prefs_notifications_min_priority_low_and_higher": "Lav prioritet og høyere", "prefs_users_description": "Legg til/fjern brukere for dine beskyttede emner her. Vær oppmerksom på at brukernavn og passord er lagret i nettleserens lokale lagring.", "error_boundary_description": "Dette skal åpenbart ikke skje. Beklager dette.
      Hvis du har et minutt, vennligst rapporter dette på GitHub, eller gi oss beskjed via Discord eller Matrix.", "action_bar_logo_alt": "ntfy-logo", "message_bar_publish": "Publiser melding", "action_bar_toggle_action_menu": "Åpne/lukk handlingsmeny", "message_bar_show_dialog": "Vis publiseringsdialog", "nav_button_muted": "Varsler dempet", "nav_button_connecting": "kobler til", "notifications_list": "Varslingsliste", "notifications_list_item": "Varsling", "notifications_mark_read": "Merk som lest", "notifications_delete": "Slett", "notifications_priority_x": "Prioritet {{prioritet}}", "notifications_new_indicator": "Nytt varsel", "notifications_attachment_image": "Vedlagt bilde", "notifications_attachment_file_image": "bildefil", "notifications_attachment_file_video": "videofil", "notifications_attachment_file_audio": "lydfil", "notifications_attachment_file_document": "annet dokument", "notifications_actions_not_supported": "Handling støttes ikke i nettappen", "notifications_none_for_topic_description": "For å sende varsler til dette emnet, bare PUT eller POST til emne-URLen.", "publish_dialog_emoji_picker_show": "Velg emoji", "publish_dialog_topic_reset": "Tilbakestill emne", "publish_dialog_click_label": "Klikk URL", "publish_dialog_email_reset": "Fjern videresending av e-post", "publish_dialog_attach_reset": "Fjern URL-vedlegg", "publish_dialog_delay_reset": "Fjern forsinket levering", "publish_dialog_attached_file_remove": "Fjern vedlagt fil", "subscribe_dialog_subscribe_base_url_label": "Tjeneste-URL", "prefs_users_table": "Brukertabell", "prefs_users_edit_button": "Rediger bruker", "error_boundary_unsupported_indexeddb_title": "Privat surfing støttes ikke", "action_bar_account": "Konto", "action_bar_profile_settings": "Innstillinger", "nav_button_account": "Konto", "signup_title": "Opprett en ntfy-konto", "signup_form_username": "Brukernavn", "signup_form_password": "Passord", "signup_form_button_submit": "Meld deg på", "signup_form_confirm_password": "Bekreft passord" } ntfy-2.11.0/web/public/static/langs/nl.json000066400000000000000000001003361462047176100205200ustar00rootroot00000000000000{ "action_bar_settings": "Instellingen", "action_bar_send_test_notification": "Verstuur testnotificatie", "action_bar_clear_notifications": "Wis alle notificaties", "message_bar_type_message": "Typ hier een bericht", "action_bar_unsubscribe": "Afmelden", "message_bar_error_publishing": "Fout bij publiceren notificatie", "nav_topics_title": "Geabonneerde topics", "nav_button_settings": "Instellingen", "alert_not_supported_description": "Notificaties worden niet ondersteund door je browser", "notifications_none_for_any_title": "Je hebt nog geen notificaties ontvangen.", "publish_dialog_tags_label": "Tags", "publish_dialog_chip_attach_file_label": "Lokaal bestand bijvoegen", "prefs_users_dialog_title_edit": "Gebruiker bewerken", "error_boundary_title": "Oh nee, ntfy is vastgelopen", "error_boundary_description": "Dit hoort natuurlijk niet te gebeuren. Onze excuses.
      Wanneer het mogelijk is, meld deze fout op GitHub, of laat het ons weten via Discord of Matrix.", "error_boundary_button_copy_stack_trace": "Stack trace kopiëren", "error_boundary_stack_trace": "Stacktrace", "error_boundary_gathering_info": "Meer informatie verzamelen …", "prefs_users_delete_button": "Gebruiker verwijderen", "prefs_notifications_delete_after_one_week": "Na één week", "prefs_notifications_delete_after_one_month": "Na één maand", "prefs_users_dialog_title_add": "Gebruiker toevoegen", "prefs_users_dialog_password_label": "Wachtwoord", "error_boundary_unsupported_indexeddb_description": "De ntfy web applicatie heeft IndexedDB nodig om correct te kunnen functioneren, helaas ondersteund jouw browser IndexedDB niet in privé / incognito modus.

      Dit is jammer maar het is ook onlogisch om de ntfy web applicatie in privé / incognito modus te gebruiken want alle gegevens worden bewaard in de browser zijn lokale opslag. Je kan hier meer over lezen in deze GitHub issue, of praat met ons op Discord of Matrix.", "action_bar_show_menu": "Toon menu", "action_bar_logo_alt": "ntfy logo", "action_bar_toggle_mute": "Notificaties dempen/opheffen", "action_bar_toggle_action_menu": "Open/Sluit actiemenu", "message_bar_show_dialog": "Toon publicatie venster", "message_bar_publish": "Bericht publiceren", "nav_button_all_notifications": "Alle notificaties", "nav_button_documentation": "Documentatie", "nav_button_publish_message": "Notificatie publiceren", "nav_button_subscribe": "Abonneer op onderwerp", "nav_button_muted": "Notificaties gedempt", "nav_button_connecting": "verbinden", "alert_notification_permission_required_title": "Notificaties zijn uitgeschakeld", "alert_notification_permission_required_description": "Verleen je browser toestemming voor het weergeven van notificaties op desktop", "alert_notification_permission_required_button": "Nu toestaan", "alert_not_supported_title": "Notificaties zijn niet ondersteund", "notifications_list": "Notificatielijst", "notifications_list_item": "Notificatie", "notifications_mark_read": "Markeer als gelezen", "notifications_delete": "Verwijder", "notifications_copied_to_clipboard": "Gekopieerd naar klembord", "notifications_tags": "Labels", "notifications_priority_x": "Prioriteit {{priority}}", "notifications_new_indicator": "Nieuwe notificatie", "notifications_attachment_image": "Afbeelding bijlage", "notifications_attachment_copy_url_title": "Kopieer URL van bijlage naar klembord", "notifications_attachment_copy_url_button": "URL kopiëren", "notifications_attachment_open_title": "Ga naar {{url}}", "notifications_attachment_open_button": "Bijlage openen", "notifications_attachment_link_expires": "link vervalt op {{date}}", "notifications_attachment_link_expired": "download link is verlopen", "notifications_attachment_file_image": "afbeeldingsbestand", "notifications_attachment_file_video": "videobestand", "notifications_attachment_file_audio": "audiobestand", "notifications_attachment_file_app": "Android app bestand", "notifications_attachment_file_document": "overig document", "notifications_click_copy_url_title": "link URL naar klembord kopiëren", "notifications_click_copy_url_button": "Link kopiëren", "notifications_click_open_button": "Link openen", "notifications_none_for_topic_description": "Om notificaties naar dit onderwerp te sturen, doe een PUT of POST naar de URL van het onderwerp.", "notifications_none_for_any_description": "Om notificaties naar dit onderwerp te sturen, doe een PUT of POST naar de URL van het onderwerp. Hier is een voorbeeld met één van je onderwerpen.", "notifications_no_subscriptions_title": "Het lijkt erop dat je nog op geen onderwerpen geabonneerd bent.", "notifications_no_subscriptions_description": "Klik op de \"{{linktext}}\" link om een onderwerp te maken of erop te abonneren. Daarna kan je berichten sturen via PUT of POST and ontvang je hier notificaties.", "notifications_example": "Voorbeeld", "notifications_more_details": "Voor meer informatie, bezoek de website of documentatie.", "notifications_loading": "Notificaties laden …", "publish_dialog_title_topic": "Publiceren naar {{topic}}", "publish_dialog_title_no_topic": "Notificatie publiceren", "publish_dialog_progress_uploading": "Uploaden …", "notifications_actions_open_url_title": "Ga naar {{url}}", "notifications_actions_not_supported": "Actie wordt niet ondersteund in de webapplicatie", "notifications_actions_http_request_title": "Stuur HTTP {{method}} naar {{url}}", "notifications_none_for_topic_title": "Je hebt nog geen notificaties ontvangen voor dit onderwerp.", "publish_dialog_priority_low": "Lage prioriteit", "publish_dialog_progress_uploading_detail": "Uploaden {{loaded}}/{{total}} ({{percent}}%) …", "publish_dialog_message_published": "Notificatie gepubliceerd", "publish_dialog_attachment_limits_file_and_quota_reached": "overschrijd {{fileSizeLimit}} bestandslimiet en quotum, {{remainingBytes}} resterend", "publish_dialog_attachment_limits_file_reached": "overschrijd {{fileSizeLimit}} bestandslimiet", "publish_dialog_priority_default": "Standaard prioriteit", "publish_dialog_attachment_limits_quota_reached": "overschrijd quotum, {{remainingBytes}} resterend", "publish_dialog_emoji_picker_show": "Kies een emoji", "publish_dialog_priority_high": "Hoge prioriteit", "publish_dialog_priority_max": "Maximale prioriteit", "publish_dialog_priority_min": "Minimale prioriteit", "publish_dialog_base_url_label": "Service URL", "publish_dialog_base_url_placeholder": "Service URL, bijvoorbeeld: https://voorbeeld.com", "publish_dialog_topic_label": "Onderwerp", "publish_dialog_topic_placeholder": "Onderwerp, bijv. phil_alerts", "publish_dialog_topic_reset": "Onderwerp resetten", "publish_dialog_title_label": "Titel", "publish_dialog_title_placeholder": "Notificatie titel , bijv. Schijfruimte alarm", "publish_dialog_message_label": "Bericht", "publish_dialog_message_placeholder": "Typ hier een bericht", "publish_dialog_tags_placeholder": "Komma gescheiden lijst met tags, bijv. waarschuwing, srv1-backup", "publish_dialog_priority_label": "Prioriteit", "publish_dialog_click_label": "Klik URL", "publish_dialog_click_reset": "Verwijder klik URL", "publish_dialog_email_label": "Email", "publish_dialog_email_placeholder": "Adres om de notificatie naar door te sturen, bijv. phil@voorbeeld.com", "publish_dialog_email_reset": "Email doorsturen verwijderen", "publish_dialog_attach_label": "URL van bijlage", "publish_dialog_click_placeholder": "URL die geopend zal worden wanneer op de notificatie geklikt wordt", "publish_dialog_attach_placeholder": "Bestand bijvoegen via URL, bijv. https://f-droid.org/F-Droid.apk", "publish_dialog_attach_reset": "Bijlage URL verwijderen", "publish_dialog_filename_label": "Bestandsnaam", "publish_dialog_filename_placeholder": "Bestandsnaam van bijlage", "publish_dialog_delay_label": "Uitstellen", "publish_dialog_delay_placeholder": "Bezorging uitstellen, bijv. {{unixTimestamp}}, {{relativeTime}}, of \"{{naturalLanguage}}\" (alleen Engels)", "publish_dialog_delay_reset": "Verwijder uitgestelde bezorging", "publish_dialog_other_features": "Andere functionaliteiten:", "publish_dialog_chip_click_label": "Klik URL", "publish_dialog_chip_email_label": "Doorsturen naar email", "publish_dialog_chip_attach_url_label": "Bestand bijvoegen via URL", "publish_dialog_chip_delay_label": "Uitgestelde bezorging", "publish_dialog_chip_topic_label": "Onderwerp veranderen", "publish_dialog_details_examples_description": "Voor meer voorbeelden en gedetailleerde beschrijvingen van alle functionaliteiten, bekijk de documentatie.", "publish_dialog_button_cancel_sending": "Versturen annuleren", "publish_dialog_button_cancel": "Annuleer", "publish_dialog_button_send": "Verstuur", "publish_dialog_checkbox_publish_another": "Nog een bericht versturen", "publish_dialog_attached_file_title": "Bijgevoegd bestand:", "publish_dialog_attached_file_filename_placeholder": "Bijlage bestandsnaam", "publish_dialog_attached_file_remove": "Verwijder bijgevoegd bestand", "publish_dialog_drop_file_here": "Bestand hier slepen", "emoji_picker_search_placeholder": "Emoji zoeken", "emoji_picker_search_clear": "Zoeken leegmaken", "subscribe_dialog_subscribe_topic_placeholder": "Onderwerp naam, bijv. phils_waarschuwingen", "subscribe_dialog_subscribe_use_another_label": "Gebruik een andere server", "subscribe_dialog_subscribe_base_url_label": "Service URL", "subscribe_dialog_subscribe_button_cancel": "Annuleren", "subscribe_dialog_subscribe_button_subscribe": "Abonneren", "subscribe_dialog_login_title": "Aanmelding vereist", "subscribe_dialog_login_description": "Dit onderwerp is beveiligd met een wachtwoord. Geef een gebruikersnaam en wachtwoord op om te abonneren.", "subscribe_dialog_login_username_label": "Gebruikersnaam, bijv. phil", "subscribe_dialog_subscribe_title": "Onderwerp abonneren", "subscribe_dialog_subscribe_description": "Onderwerpen zijn mogelijk niet beschermd met een wachtwoord, kies daarom een moeilijk te raden naam. Na abonneren kun je notificaties via PUT/POST sturen.", "subscribe_dialog_login_password_label": "Wachtwoord", "common_back": "Terug", "subscribe_dialog_login_button_login": "Aanmelden", "subscribe_dialog_error_user_not_authorized": "Gebruiker {{username}} heeft geen toegang", "subscribe_dialog_error_user_anonymous": "anoniem", "prefs_notifications_title": "Notificaties", "prefs_notifications_sound_title": "Meldingsgeluid", "prefs_notifications_sound_description_none": "Notificaties zullen geen geluid geven", "prefs_notifications_sound_play": "Geselecteerd geluid afspelen", "prefs_notifications_sound_description_some": "Inkomende notificaties zullen het {{sound}} geluid afspelen", "prefs_notifications_sound_no_sound": "Geen geluid", "prefs_notifications_min_priority_title": "Minimale prioriteit", "prefs_notifications_min_priority_description_any": "Toon alle notificaties, ongeacht prioriteit", "prefs_notifications_min_priority_description_x_or_higher": "Toon notificaties als prioriteit {{number}} ({{name}}) is of hoger", "prefs_notifications_min_priority_description_max": "Toon notificaties als prioriteit 5 (maximaal) is", "prefs_notifications_min_priority_any": "Elke prioriteit", "prefs_notifications_min_priority_low_and_higher": "Lage prioriteit en hoger", "prefs_notifications_min_priority_default_and_higher": "Standaard prioriteit en hoger", "prefs_notifications_min_priority_high_and_higher": "Hoge prioriteit en hoger", "prefs_notifications_min_priority_max_only": "Alleen maximale prioriteit", "prefs_notifications_delete_after_title": "Notificaties verwijderen", "prefs_notifications_delete_after_never": "Nooit", "prefs_notifications_delete_after_three_hours": "Na drie uur", "prefs_notifications_delete_after_one_day": "Na één dag", "prefs_notifications_delete_after_never_description": "Notificaties worden nooit automatisch verwijderd", "prefs_notifications_delete_after_three_hours_description": "Notificaties worden na drie uur automatisch verwijderd", "prefs_notifications_delete_after_one_day_description": "Notificaties worden na één dag automatisch verwijderd", "prefs_notifications_delete_after_one_week_description": "Notificaties worden na één week automatisch verwijderd", "prefs_notifications_delete_after_one_month_description": "Notificaties worden na één maand automatisch verwijderd", "prefs_users_title": "Gebruikers beheren", "prefs_users_description": "Gebruikers voor beveiligde onderwerpen kunnen hier toegevoegd of verwijderd worden. Let op: gebruikersnaam en wachtwoord worden opgeslagen in lokale browser opslag.", "prefs_users_table": "Gebruikerstabel", "prefs_users_add_button": "Gebruiker toevoegen", "prefs_users_edit_button": "Gebruiker bewerken", "prefs_users_table_user_header": "Gebruiker", "prefs_users_table_base_url_header": "Service URL", "prefs_users_dialog_base_url_label": "Service URL, bijv. https://ntfy.sh", "prefs_users_dialog_username_label": "Gebruikersnaam, bijv. phil", "common_cancel": "Annuleren", "common_add": "Toevoegen", "common_save": "Bewaren", "prefs_appearance_title": "Weergave", "prefs_appearance_language_title": "Taal", "priority_min": "min", "priority_low": "laag", "priority_default": "standaard", "priority_high": "hoog", "priority_max": "max", "error_boundary_unsupported_indexeddb_title": "Privé / incognito browservensters worden niet ondersteund", "signup_form_username": "Gebruikersnaam", "signup_form_toggle_password_visibility": "Wachtwoord zichtbaar maken", "signup_already_have_account": "Heb je al een account? Log in!", "signup_form_button_submit": "Registreer", "signup_disabled": "Registreren is uitgeschakeld", "signup_error_username_taken": "Gebruikersnaam {{username}} is al bezet", "signup_error_creation_limit_reached": "Limiet voor aanmaken account bereikt", "login_title": "Inloggen met uw ntfy account", "login_form_button_submit": "Inloggen", "login_link_signup": "Registreren", "login_disabled": "Inloggen is uitgeschakeld", "action_bar_account": "Account", "action_bar_reservation_add": "Topic reserveren", "action_bar_reservation_edit": "Reservering wijzigen", "action_bar_reservation_delete": "Verwijder reservering", "action_bar_reservation_limit_reached": "Limiet bereikt", "action_bar_profile_title": "Profiel", "nav_upgrade_banner_label": "Upgrade naar ntfy Pro", "nav_upgrade_banner_description": "Onderwerpen reserveren, meer berichten & e-mails, en grotere bijlagen", "alert_not_supported_context_description": "Notificaties worden alleen ondersteund via HTTPS. Dit is een beperking van de Notificaties API.", "display_name_dialog_placeholder": "Weergavenaam", "reserve_dialog_checkbox_label": "Onderwerp reserveren en toegang configureren", "account_basics_title": "Account", "account_basics_username_title": "Gebruikersnaam", "account_basics_username_description": "Hé, dat ben jij ❤", "account_basics_username_admin_tooltip": "Je bent beheerder", "account_basics_password_title": "Wachtwoord", "account_basics_password_description": "Wijzig het wachtwoord van je account", "account_basics_password_dialog_current_password_label": "Huidig wachtwoord", "account_basics_password_dialog_new_password_label": "Nieuw wachtwoord", "account_basics_password_dialog_confirm_password_label": "Bevestig wachtwoord", "account_basics_password_dialog_button_submit": "Wijzig wachtwoord", "account_basics_password_dialog_current_password_incorrect": "Wachtwoord onjuist", "account_usage_title": "Gebruik", "account_usage_of_limit": "van {{limit}}", "account_usage_unlimited": "Onbeperkt", "account_basics_tier_title": "Account type", "account_basics_tier_admin": "Beheerder", "account_basics_tier_admin_suffix_with_tier": "(met {{tier}} niveau)", "account_basics_tier_basic": "Basis", "account_basics_tier_free": "Gratis", "account_basics_tier_change_button": "Wijzig", "account_basics_tier_paid_until": "Abonnement betaald tot {{date}}, en wordt automatisch verlengd", "account_basics_tier_payment_overdue": "Je betaling is te laat. Update je betalingsmethode, anders wordt je account binnenkort gedowngraded.", "account_basics_tier_canceled_subscription": "Je abonnement is opgezegd en wordt op {{date}} gedowngraded naar een gratis account.", "signup_form_password": "Wachtwoord", "signup_title": "Een ntfy account aanmaken", "signup_form_confirm_password": "Bevestig wachtwoord", "action_bar_change_display_name": "Weergavenaam wijzigen", "action_bar_profile_logout": "Uitloggen", "action_bar_profile_settings": "Instellingen", "action_bar_sign_up": "Registreer", "nav_button_account": "Account", "action_bar_sign_in": "Inloggen", "display_name_dialog_title": "Weergavenaam wijzigen", "display_name_dialog_description": "Stel een alternatieve naam in voor een onderwerp dat wordt weergeven in de abonnementenlijst. Dit helpt onderwerpen met gecompliceerde namen gemakkelijker te identificeren.", "subscribe_dialog_subscribe_button_generate_topic_name": "Naam genereren", "subscribe_dialog_error_topic_already_reserved": "Onderwerp al gereserveerd", "account_basics_password_dialog_title": "Wijzig wachtwoord", "account_usage_limits_reset_daily": "Gebruikslimieten worden dagelijks om middernacht (UTC) gereset", "account_basics_tier_upgrade_button": "Upgrade naar Pro", "account_upgrade_dialog_title": "Accountniveau wijzigen", "account_upgrade_dialog_interval_yearly_discount_save": "bespaar {{discount}}%", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} jaarlijks gefactureerd. Bespaar {{save}}.", "account_upgrade_dialog_cancel_warning": "Hiermee wordt uw abonnement opgezegd en wordt uw account gedowngraded op {{date}}. Op die datum worden onderwerpreserveringen en berichten in de cache op de server verwijderd .", "account_tokens_dialog_button_update": "Token bijwerken", "account_upgrade_dialog_proration_info": "Pro rata: Bij een upgrade tussen betaalde abonnementen wordt het prijsverschil onmiddellijk in rekening gebracht. Wanneer u downgradet naar een lager niveau, wordt het saldo gebruikt om toekomstige factureringsperioden te betalen.", "account_upgrade_dialog_reservations_warning_one": "Het geselecteerde niveau staat minder gereserveerde onderwerpen toe dan uw huidige niveau. Voordat u uw niveau wijzigt, , moet u ten minste één reservering verwijderen . U kunt reserveringen verwijderen in de Instellingen.", "account_upgrade_dialog_reservations_warning_other": "Het geselecteerde niveau staat minder gereserveerde onderwerpen toe dan uw huidige niveau. Voordat u uw niveau wijzigt, moet u ten minste {{count}} reserveringen verwijderen. U kunt reserveringen verwijderen in de Instellingen.", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} gereserveerde onderwerpen", "account_upgrade_dialog_billing_contact_email": "Neem voor vragen over facturering rechtstreeks contact met ons op.", "account_tokens_table_token_header": "Token", "account_tokens_table_never_expires": "Verloopt nooit", "account_tokens_table_current_session": "Huidige browsersessie", "prefs_reservations_table_everyone_read_only": "Ik kan publiceren en abonneren, iedereen kan zich abonneren", "prefs_reservations_table_everyone_write_only": "Ik kan publiceren en abonneren, iedereen kan publiceren", "account_usage_reservations_none": "Geen gereserveerde onderwerpen voor dit account", "account_usage_attachment_storage_title": "Bijlage-opslag", "account_usage_attachment_storage_description": "{{filesize}} per bestand, verwijderd na {{expiry}}", "account_delete_dialog_description": "Hiermee wordt uw account definitief verwijderd, inclusief alle gegevens die op de server zijn opgeslagen. Na verwijdering is uw gebruikersnaam 7 dagen niet beschikbaar. Als u echt wilt doorgaan, bevestig dan met uw wachtwoord in het onderstaande vak.", "account_delete_dialog_billing_warning": "Als u uw account verwijdert, wordt ook uw facturering onmiddellijk geannuleerd. U heeft dan geen toegang meer tot het factureringsdashboard.", "account_tokens_dialog_button_cancel": "Annuleren", "reservation_delete_dialog_submit_button": "Reservering verwijderen", "prefs_reservations_table_everyone_deny_all": "Alleen ik kan publiceren en abonneren", "reservation_delete_dialog_description": "Het verwijderen van een reservering geeft het eigendom van het onderwerp op en stelt anderen in staat het te reserveren. U kunt bestaande berichten en bijlagen behouden of verwijderen.", "account_basics_tier_interval_monthly": "maandelijks", "account_basics_tier_interval_yearly": "jaarlijks", "account_usage_basis_ip_description": "Gebruiksstatistieken en -limieten voor dit account zijn gebaseerd op uw IP-adres en kunnen dus worden gedeeld met andere gebruikers. De hierboven weergegeven limieten zijn bij benadering gebaseerd op de bestaande limieten.", "account_usage_cannot_create_portal_session": "Kan factureringsportaal niet openen", "account_delete_title": "Account verwijderen", "account_delete_description": "Verwijder uw account definitief", "account_delete_dialog_label": "Wachtwoord", "account_delete_dialog_button_cancel": "Annuleren", "account_delete_dialog_button_submit": "Verwijder uw account definitief", "account_upgrade_dialog_interval_monthly": "Maandelijks", "account_upgrade_dialog_interval_yearly": "Jaarlijks", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "bespaar tot {{discount}}%", "account_upgrade_dialog_tier_features_no_reservations": "Geen gereserveerde onderwerpen", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} totale opslag", "account_upgrade_dialog_tier_current_label": "Huidig", "account_upgrade_dialog_button_update_subscription": "Abonnement bijwerken", "account_tokens_title": "Toegangstokens", "account_tokens_description": "Gebruik toegangstokens bij het publiceren en abonneren via de ntfy API, zodat u uw accountgegevens niet hoeft op te sturen. Bekijk de documentatie voor meer informatie.", "account_tokens_table_label_header": "Label", "account_tokens_table_cannot_delete_or_edit": "Kan huidige sessietoken niet bewerken of verwijderen", "account_tokens_dialog_expires_label": "Toegangstoken verloopt over", "account_tokens_dialog_expires_unchanged": "Vervaldatum ongewijzigd laten", "account_tokens_dialog_expires_x_hours": "Token verloopt over {{hours}} uur", "account_tokens_dialog_expires_x_days": "Token verloopt over {{days}} dagen", "account_tokens_dialog_expires_never": "Token verloopt nooit", "account_tokens_delete_dialog_title": "Toegangstoken verwijderen", "account_tokens_delete_dialog_description": "Voordat u een toegangstoken verwijdert, moet u ervoor zorgen dat er geen toepassingen of scripts actief gebruik van maken. Deze actie kan niet ongedaan worden gemaakt.", "prefs_users_table_cannot_delete_or_edit": "Kan ingelogde gebruiker niet verwijderen of bewerken", "prefs_reservations_title": "Gereserveerde onderwerpen", "prefs_reservations_description": "U kunt hier onderwerpnamen reserveren voor persoonlijk gebruik. Door een onderwerp te reserveren, wordt u eigenaar van het onderwerp en kunt u toegangsmachtigingen voor andere gebruikers voor het onderwerp definiëren.", "prefs_reservations_limit_reached": "Je hebt je limiet voor gereserveerde onderwerpen bereikt.", "prefs_reservations_add_button": "Gereserveerd onderwerp toevoegen", "prefs_reservations_table_click_to_subscribe": "Klik om je te abonneren", "prefs_reservations_dialog_title_add": "Onderwerp reserveren", "prefs_reservations_dialog_title_edit": "Gereserveerd onderwerp bewerken", "prefs_reservations_dialog_title_delete": "Onderwerpreservering verwijderen", "prefs_reservations_dialog_description": "Door een onderwerp te reserveren, wordt u eigenaar van het onderwerp en kunt u toegangsmachtigingen voor andere gebruikers voor het onderwerp definiëren.", "prefs_reservations_dialog_topic_label": "Onderwerp", "prefs_reservations_dialog_access_label": "Toegang", "reservation_delete_dialog_action_keep_title": "Bewaar in de cache opgeslagen berichten en bijlagen", "reservation_delete_dialog_action_keep_description": "Berichten en bijlagen die in de cache op de server zijn opgeslagen, worden publiekelijk zichtbaar voor mensen die de onderwerpnaam kennen.", "reservation_delete_dialog_action_delete_description": "Berichten en bijlagen in de cache worden permanent verwijderd. Deze actie kan niet ongedaan gemaakt worden.", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} gereserveerd onderwerp", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} dagelijks bericht", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} dagelijkse berichten", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} dagelijkse e-mail", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} dagelijkse e-mails", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} per bestand", "account_upgrade_dialog_tier_price_per_month": "maand", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} per jaar. Maandelijks gefactureerd.", "account_upgrade_dialog_tier_selected_label": "Geselecteerd", "account_upgrade_dialog_billing_contact_website": "Raadpleeg voor vragen over facturering onze website.", "account_upgrade_dialog_button_cancel": "Annuleren", "account_upgrade_dialog_button_redirect_signup": "Nu aanmelden", "account_upgrade_dialog_button_pay_now": "Nu betalen en inschrijven", "account_upgrade_dialog_button_cancel_subscription": "Abonnement opzeggen", "account_tokens_table_last_access_header": "Laatste toegang", "account_tokens_table_expires_header": "Verloopt op", "common_copy_to_clipboard": "Kopieer naar klembord", "account_tokens_table_copied_to_clipboard": "Toegangstoken gekopieerd", "account_tokens_delete_dialog_submit_button": "Token definitief verwijderen", "prefs_users_description_no_sync": "Gebruikers en wachtwoorden worden niet gesynchroniseerd met uw account.", "reservation_delete_dialog_action_delete_title": "Verwijder in de cache opgeslagen berichten en bijlagen", "account_basics_tier_description": "Het niveau van uw account", "account_basics_tier_admin_suffix_no_tier": "(geen niveau)", "account_basics_tier_manage_billing_button": "Facturering beheren", "account_usage_messages_title": "Gepubliceerde berichten", "account_usage_emails_title": "E-mails verzonden", "account_usage_reservations_title": "Gereserveerde onderwerpen", "account_tokens_table_create_token_button": "Toegangstoken maken", "account_tokens_table_last_origin_tooltip": "Vanaf IP-adres {{ip}}, klik om op te zoeken", "account_tokens_dialog_title_create": "Toegangstoken maken", "account_tokens_dialog_title_edit": "Toegangstoken bewerken", "account_tokens_dialog_title_delete": "Toegangstoken verwijderen", "account_tokens_dialog_label": "Label, bijv. Radarr-meldingen", "account_tokens_dialog_button_create": "Token maken", "prefs_reservations_edit_button": "Onderwerptoegang bewerken", "prefs_reservations_delete_button": "Toegang tot onderwerp resetten", "prefs_reservations_table": "Tabel met gereserveerde onderwerpen", "prefs_reservations_table_topic_header": "Onderwerp", "prefs_reservations_table_access_header": "Toegang", "prefs_reservations_table_everyone_read_write": "Iedereen kan publiceren en abonneren", "prefs_reservations_table_not_subscribed": "Niet geabonneerd", "publish_dialog_call_label": "Telefoongesprek", "publish_dialog_call_reset": "Telefoongesprek verwijderen", "publish_dialog_chip_call_label": "Telefoongesprek", "account_basics_phone_numbers_title": "Telefoonnummers", "account_basics_phone_numbers_description": "Voor meldingen via telefoongesprekken", "account_basics_phone_numbers_no_phone_numbers_yet": "Nog geen telefoonnummers", "account_basics_phone_numbers_dialog_verify_button_call": "Bel me", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} dagelijkse telefoontjes", "account_basics_phone_numbers_copied_to_clipboard": "Telefoonnummer gekopieerd naar klembord", "publish_dialog_call_item": "Bel telefoonnummer {{nummer}}", "account_basics_phone_numbers_dialog_check_verification_button": "Bevestig code", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Geen geverifieerde telefoonnummers", "account_basics_phone_numbers_dialog_channel_call": "Telefoongesprek", "account_basics_phone_numbers_dialog_number_label": "Telefoonnummer", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_basics_phone_numbers_dialog_code_placeholder": "bijv. 123456", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} dagelijkse telefoontjes", "account_upgrade_dialog_tier_features_no_calls": "Geen telefoontjes", "account_basics_phone_numbers_dialog_description": "Als u de functie voor oproepmeldingen wilt gebruiken, moet u ten minste één telefoonnummer toevoegen en verifiëren. Verificatie kan worden gedaan via sms of een telefoontje.", "account_basics_phone_numbers_dialog_title": "Telefoonnummer toevoegen", "account_basics_phone_numbers_dialog_number_placeholder": "bijv. +1222333444", "account_basics_phone_numbers_dialog_verify_button_sms": "Stuur SMS", "account_basics_phone_numbers_dialog_code_label": "Verificatiecode", "account_usage_calls_title": "Aantal telefoontjes", "account_usage_calls_none": "Met dit account kan niet worden gebeld", "action_bar_mute_notifications": "Notificaties dempen", "prefs_notifications_web_push_disabled_description": "Notificaties worden ontvangen als de webapplicatie geopend is (via WebSocket)", "web_push_unknown_notification_body": "Het is mogelijk dat je ntfy moet updaten door de webapplicatie opnieuw te openen", "action_bar_unmute_notifications": "Dempen notificaties opheffen", "alert_notification_permission_denied_title": "Notificaties zijn geblokkeerd", "alert_notification_permission_denied_description": "Activeer ze in de browser", "alert_notification_ios_install_required_title": "iOS installatie vereist", "alert_notification_ios_install_required_description": "Klik op het Deel icoon, daarna op \"Add to Home Screen\" om notificaties op iOS toe te staan", "notifications_actions_failed_notification": "Actie onsuccesvol", "publish_dialog_checkbox_markdown": "Opmaken met Markdown", "subscribe_dialog_subscribe_use_another_background_info": "Notificaties van andere servers worden niet ontvangen als de webapplicatie niet geopend is", "prefs_notifications_web_push_title": "Achtergrond notificaties", "prefs_notifications_web_push_enabled": "Aan voor {{server}}", "prefs_notifications_web_push_disabled": "Uitgezet", "prefs_notifications_web_push_enabled_description": "Notificaties worden ontvangen, ook als de webapplicatie niet geopend is (via Web Push)", "prefs_appearance_theme_title": "Thema", "prefs_appearance_theme_system": "Systeem (standaard)", "prefs_appearance_theme_dark": "Donkere modus", "prefs_appearance_theme_light": "Lichte modus", "error_boundary_button_reload_ntfy": "Herlaad ntfy", "web_push_subscription_expiring_title": "Notificaties worden gepauzeerd", "web_push_subscription_expiring_body": "Open ntfy om weer notificaties te ontvangen", "web_push_unknown_notification_title": "Onbekende notificatie ontvangen van de server" } ntfy-2.11.0/web/public/static/langs/pl.json000066400000000000000000001005601462047176100205210ustar00rootroot00000000000000{ "action_bar_send_test_notification": "Wyślij powiadomienie testowe", "action_bar_clear_notifications": "Wyczyść powiadomienia", "action_bar_toggle_mute": "Włączanie/wyłączanie wyciszania powiadomień", "action_bar_toggle_action_menu": "Otwórz/zamknij menu działań", "message_bar_type_message": "Wpisz wiadomość tutaj", "message_bar_error_publishing": "Błąd przy wysyłaniu powiadomienia", "message_bar_show_dialog": "Pokaż okno dialogowe publikacji", "nav_button_all_notifications": "Wszystkie powiadomienia", "nav_button_documentation": "Dokumentacja", "nav_button_muted": "Powiadomienia wyciszone", "alert_notification_permission_required_title": "Powiadomienia są wyłączone", "alert_notification_permission_required_description": "Udziel przeglądarce pozwolenia na wyświetlanie powiadomień na pulpicie", "alert_notification_permission_required_button": "Pozwól teraz", "alert_not_supported_title": "Powiadomienia nie są obsługiwane", "alert_not_supported_description": "Powiadomienia nie są obsługiwane przez Twoją przeglądarkę", "notifications_list": "Lista powiadomień", "notifications_list_item": "Powiadomienie", "notifications_mark_read": "Oznacz jako przeczytane", "notifications_delete": "Usuń", "notifications_copied_to_clipboard": "Skopiowano do schowka", "notifications_tags": "Tagi", "message_bar_publish": "Opublikuj powiadomienie", "nav_topics_title": "Subskrybowane tematy", "nav_button_settings": "Ustawienia", "nav_button_publish_message": "Opublikuj powiadomienie", "nav_button_subscribe": "Zasubskrybuj temat", "nav_button_connecting": "łączenie", "notifications_attachment_image": "Obraz załącznika", "notifications_attachment_copy_url_button": "Kopiuj Adres URL", "notifications_attachment_link_expires": "Łącze wygasa w dniu {{date}}", "notifications_attachment_link_expired": "Łącze do pobrania wygasło", "notifications_attachment_file_image": "plik graficzny", "notifications_attachment_file_video": "plik wideo", "notifications_attachment_file_audio": "plik audio", "notifications_attachment_file_app": "plik aplikacji Android", "notifications_attachment_file_document": "inny dokument", "notifications_click_copy_url_title": "Skopiuj adres URL do schowka", "notifications_click_open_button": "Otwórz łącze", "notifications_actions_open_url_title": "Przejdź do {{url}}", "notifications_actions_not_supported": "Ta akcja nie jest obsługiwana w aplikacji internetowej", "notifications_actions_http_request_title": "Wyślij HTTP {{method}} do {{url}}", "notifications_none_for_topic_title": "Nie otrzymałeś jeszcze żadnych powiadomień dla tego tematu.", "notifications_none_for_any_description": "Aby wysłać powiadomienia do tematu, wyślij PUT/POST do adresu URL tematu. Oto przykład z jednym z twoich tematów.", "notifications_no_subscriptions_title": "Wygląda na to, że nie masz jeszcze żadnych subskrypcji.", "notifications_no_subscriptions_description": "Kliknij łącze \"{{linktext}}\", aby stworzyć lub zasubskrybować temat. Następnie możesz wysyłać wiadomości za pomocą PUT lub POST i otrzymywać powiadomienia tutaj.", "notifications_example": "Przykład", "notifications_loading": "Ładowanie powiadomień …", "publish_dialog_title_topic": "Opublikuj do {{topic}}", "publish_dialog_title_no_topic": "Opublikuj powiadomienie", "publish_dialog_progress_uploading": "Przesyłanie …", "publish_dialog_progress_uploading_detail": "Przesyłanie {{loaded}}/{{total}} ({{percent}}%) …", "publish_dialog_message_published": "Powiadomienie wysłane", "publish_dialog_attachment_limits_file_and_quota_reached": "przekracza limit rozmiaru pliku {{fileSizeLimit}}, pozostaje {{remainingBytes}}", "publish_dialog_attachment_limits_file_reached": "przekracza limit rozmiaru pliku {{filesizeLimit}}", "publish_dialog_attachment_limits_quota_reached": "przekracza limit, {{remainingBytes}} pozostało", "publish_dialog_emoji_picker_show": "Wybierz emotkę", "publish_dialog_priority_min": "Min. priorytet", "publish_dialog_priority_low": "Niski priorytet", "publish_dialog_base_url_label": "Adres URL usługi", "publish_dialog_base_url_placeholder": "Adres URL usługi, np. https://example.com", "publish_dialog_topic_label": "Nazwa tematu", "publish_dialog_topic_placeholder": "Nazwa tematu, np. moje_alerty", "publish_dialog_topic_reset": "Resetuj temat", "publish_dialog_title_label": "Tytuł", "publish_dialog_title_placeholder": "Tytuł notyfikacji, np. Niski poziom baterrii", "publish_dialog_message_label": "Wiadomość", "publish_dialog_message_placeholder": "Wpisz wiadomość tutaj", "publish_dialog_tags_label": "Tagi", "publish_dialog_tags_placeholder": "Lista tagów oddzielona przecinkami, np. ostrzeżenie, srv1-backup", "publish_dialog_priority_label": "Priorytet", "publish_dialog_click_label": "Kliknij Adres URL", "publish_dialog_click_placeholder": "Adres URL, który ma być otwarty po kliknięciu na powiadomienie", "publish_dialog_click_reset": "Usuń adres URL kliknięcia", "publish_dialog_email_label": "Email", "publish_dialog_email_placeholder": "Adres, na który ma być wysłane powiadomienie, np. phil@example.com", "publish_dialog_email_reset": "Usuń przekazywanie wiadomości email", "publish_dialog_attach_label": "Adres URL załącznika", "publish_dialog_attach_placeholder": "Dołączenie pliku z adresu URL, np. https://f-droid.org/F-Droid.apk", "publish_dialog_attach_reset": "Usuń adres URL załącznika", "publish_dialog_filename_label": "Nazwa pliku", "publish_dialog_filename_placeholder": "Nazwa pliku załącznika", "publish_dialog_delay_label": "Opóźnienie", "publish_dialog_delay_reset": "Usuń opóźnione dostarczenie", "publish_dialog_other_features": "Inne funkcje:", "publish_dialog_chip_click_label": "Adres URL kliknięcia", "publish_dialog_chip_email_label": "Przekaż na email", "publish_dialog_chip_attach_url_label": "Dołącz plik z adresu URL", "publish_dialog_chip_attach_file_label": "Dołącz plik lokalny", "publish_dialog_chip_delay_label": "Opóźnienie dostawy", "publish_dialog_chip_topic_label": "Zmień temat", "publish_dialog_details_examples_description": "Przykłady i szczegółowe informacje na temat wszystkich opcji można znaleźć w dokumentacji.", "publish_dialog_button_cancel_sending": "Anuluj wysyłanie", "publish_dialog_button_send": "Wyślij", "publish_dialog_checkbox_publish_another": "Wyślij kolejną wiadomość", "publish_dialog_attached_file_title": "Załączony plik:", "publish_dialog_attached_file_filename_placeholder": "Nazwa pliku załącznika", "publish_dialog_drop_file_here": "Upuść plik tutaj", "emoji_picker_search_placeholder": "Szukaj emotki", "emoji_picker_search_clear": "Wyczyść wyszukiwanie", "subscribe_dialog_subscribe_title": "Zasubskrybuj temat", "subscribe_dialog_subscribe_topic_placeholder": "Nazwa tematu, np. moje_alerty", "subscribe_dialog_subscribe_use_another_label": "Użyj innego serwera", "subscribe_dialog_subscribe_base_url_label": "Adres URL usługi", "subscribe_dialog_subscribe_button_cancel": "Anuluj", "subscribe_dialog_login_description": "Ten temat jest chroniony hasłem. Proszę podać nazwę użytkownika i hasło, aby zasubskrybować.", "subscribe_dialog_login_username_label": "Nazwa użytkownika, np. phil", "subscribe_dialog_login_password_label": "Hasło", "publish_dialog_button_cancel": "Anuluj", "common_back": "Powrót", "subscribe_dialog_login_button_login": "Zaloguj się", "subscribe_dialog_error_user_not_authorized": "Użytkownik {{username}} nie ma uprawnień", "subscribe_dialog_error_user_anonymous": "anonim", "prefs_notifications_title": "Powiadomienia", "prefs_notifications_sound_title": "Dźwięk powiadomienia", "prefs_notifications_sound_description_none": "Brak dźwięku po otrzymaniu powiadomienia", "prefs_notifications_sound_description_some": "Odtwarzaj dźwięk {{sound}}, gdy nadejdzie powiadomienie", "prefs_notifications_sound_play": "Odtwórz wybrany dźwięk", "prefs_notifications_min_priority_title": "Minimalny priorytet", "prefs_notifications_min_priority_description_any": "Pokaż wszystkie powiadomienia, niezależnie od priorytetu", "prefs_notifications_min_priority_description_x_or_higher": "Pokazuj powiadomienia, gdy ich priorytet to {{number}} ({{name}}) lub wyższy", "prefs_notifications_min_priority_description_max": "Pokaż powiadomienia, jeśli priorytet wynosi 5 (max)", "prefs_notifications_min_priority_any": "Dowolny priorytet", "prefs_notifications_min_priority_low_and_higher": "Niski priorytet i wyższy", "prefs_notifications_min_priority_default_and_higher": "Priorytet standardowy i wyższy", "prefs_notifications_min_priority_high_and_higher": "Wysoki priorytet i wyższy", "prefs_notifications_delete_after_one_day": "Po jednym dniu", "prefs_notifications_delete_after_one_week": "Po tygodniu", "prefs_notifications_delete_after_one_month": "Po miesiącu", "prefs_notifications_delete_after_never_description": "Powiadomienia nigdy nie są automatycznie usuwane", "prefs_notifications_delete_after_three_hours_description": "Powiadomienia są automatycznie usuwane po trzech godzinach", "prefs_notifications_delete_after_one_day_description": "Powiadomienia są automatycznie usuwane po jednym dniu", "prefs_notifications_delete_after_one_month_description": "Powiadomienia są automatycznie usuwane po upływie jednego miesiąca", "prefs_notifications_delete_after_one_week_description": "Powiadomienia są automatycznie usuwane po upływie jedego tygodnia", "prefs_users_title": "Zarządzaj użytkownikami", "prefs_users_description": "Dodaj/usuń użytkowników dla tematów chronionych hasłem. Uwaga: Nazwa użytkownika i hasło są przechowywane w lokalnej pamięci przeglądarki.", "prefs_users_table": "Tabela użytkowników", "prefs_users_add_button": "Dodaj użytkownika", "notifications_attachment_open_button": "Otwórz załącznik", "prefs_users_edit_button": "Edytuj użytkownika", "prefs_users_delete_button": "Usuń użytkownika", "prefs_users_table_base_url_header": "Adres URL usługi", "prefs_users_dialog_title_add": "Dodaj użytkownika", "common_cancel": "Anuluj", "common_add": "Dodaj", "common_save": "Zapisz", "prefs_appearance_title": "Wygląd", "prefs_appearance_language_title": "Język", "error_boundary_title": "Oh nie, ntfy przestało działać", "error_boundary_description": "Oczywiście, to nie miało się wydarzyć. Bardzo przepraszam za to.
      Jeśli masz minutę, proszę zgłoś to na GitHubie, albo daj nam znać przez Discord lub Matrix.", "error_boundary_button_copy_stack_trace": "Kopiuj stack trace", "error_boundary_stack_trace": "Stack trace", "error_boundary_gathering_info": "Zbierz więcej informacji …", "error_boundary_unsupported_indexeddb_title": "Prywatne karty przeglądarki nie są obsługiwane", "action_bar_show_menu": "Pokaż menu", "action_bar_logo_alt": "ntfy logo", "action_bar_unsubscribe": "Zrezygnuj z subskrypcji", "notifications_attachment_copy_url_title": "Kopiuj adres URL załącznika do schowka", "action_bar_settings": "Ustawienia", "notifications_priority_x": "Priorytet {{priority}}", "notifications_new_indicator": "Nowe powiadomienie", "notifications_attachment_open_title": "Przejdź do {{url}}", "notifications_click_copy_url_button": "Skopiuj łącze", "notifications_none_for_topic_description": "Aby wysłać powiadomienia do tego tematu, wyślij PUT lub POST-Request na adres URL tematu.", "notifications_none_for_any_title": "Nie otrzymałeś żadnych powiadomień.", "notifications_more_details": "Bardziej szczegółowe informacje można znaleźć na stronie internetowej oraz w dokumentacji.", "publish_dialog_priority_default": "Domyślny priorytet", "publish_dialog_priority_max": "Max. priorytet", "publish_dialog_priority_high": "Wysoki priorytet", "publish_dialog_delay_placeholder": "Opóźnienie dostarczenie, np.{{unixTimestamp}}, {{relativeTime}}, lub \"{{naturalLanguage}}\" (tylko w języku angielskim)", "subscribe_dialog_subscribe_button_subscribe": "Subskrybuj", "prefs_users_table_user_header": "Użytkownik", "publish_dialog_attached_file_remove": "Usuń załączony plik", "subscribe_dialog_subscribe_description": "Tematy nie mogą być chronione hasłem, więc wybierz trudną do odgadnięcia nazwę. Po zasubskrybowaniu możesz wysyłać powiadomienia poprzez POST/PUT.", "subscribe_dialog_login_title": "Wymagane jest zalogowanie się", "prefs_notifications_delete_after_title": "Usuń powiadomienia", "prefs_users_dialog_password_label": "Hasło", "priority_low": "niski", "priority_default": "podstawowy", "priority_max": "maksymalny", "prefs_notifications_delete_after_three_hours": "Po trzech godzinach", "prefs_users_dialog_base_url_label": "Adres URL usługi, np. https://ntfy.sh", "prefs_notifications_sound_no_sound": "Bez dzwięku", "prefs_users_dialog_username_label": "Nazwa użytkownika, np. phil", "priority_high": "wysoki", "prefs_notifications_min_priority_max_only": "Tylko maksymalny priorytet", "prefs_notifications_delete_after_never": "Nigdy", "prefs_users_dialog_title_edit": "Edytuj użytkownika", "priority_min": "minimum", "error_boundary_unsupported_indexeddb_description": "Aplikacja ntfy potrzebuje IndexedDB, aby działać poprawnie, a Twoja przeglądarka nie obsługuje IndexedDB w prywatnych zakładkach.

      To denerwujące, ale używanie ntfy w prywatnej zakładce nie ma sensu, ponieważ wszystkie dane są przechowywane w przeglądarce. Więcej informacji można uzyskać w tym wydaniu GitHub, lub na czacie w Discord lub Matrix.", "signup_form_password": "Hasło", "signup_title": "Załóż konto ntfy", "signup_error_creation_limit_reached": "Przekroczono limit zakładania kont", "action_bar_reservation_limit_reached": "Limit wyczerpany", "display_name_dialog_title": "Zmień wyświetlaną nazwę", "display_name_dialog_description": "Ustaw alternatywną nazwę dla tematu wyświetlanego na liście subskrybcji. To ułatwia identyfikację tematów o skomplikowanych nazwach.", "account_basics_title": "Konto", "account_basics_password_dialog_title": "Zmień hasło", "signup_form_username": "Nawa użytkownika", "signup_form_confirm_password": "Powtórz hasło", "signup_form_button_submit": "Załóż konto", "signup_form_toggle_password_visibility": "Pokaż lub ukryj hasło", "signup_already_have_account": "Masz już konto? Zaloguj się!", "signup_disabled": "Zakładanie kont jest wyłączone", "signup_error_username_taken": "Nazwa użytkownika {{username}} jest już zajęta", "login_title": "Zaloguj się do swojego konta ntfy", "login_form_button_submit": "Zaloguj się", "login_link_signup": "Załóż konto", "login_disabled": "Logowanie jet wyłączone", "action_bar_account": "Konto", "action_bar_change_display_name": "Zmień wyświetlaną nazwę", "action_bar_reservation_add": "Zarezerwuj temat", "action_bar_reservation_edit": "Zmień rezerwację", "action_bar_reservation_delete": "Usuń rezerwację", "action_bar_profile_title": "Profil", "action_bar_profile_settings": "Ustawienia", "action_bar_profile_logout": "Wyloguj", "action_bar_sign_in": "Zaloguj", "action_bar_sign_up": "Załóż konto", "nav_button_account": "Konto", "display_name_dialog_placeholder": "Nazwa wyświetlana", "reserve_dialog_checkbox_label": "Zarezerwuj temat i skonfiguruj dostęp", "subscribe_dialog_subscribe_button_generate_topic_name": "Wygeneruj nazwę", "subscribe_dialog_error_topic_already_reserved": "Temat już jest zarezerwowany", "account_basics_username_title": "Nazwa użytkownika", "account_basics_username_description": "Hej, to Ty ❤", "account_basics_username_admin_tooltip": "Jesteś Administratorem", "account_basics_password_title": "Hasło", "account_basics_password_description": "Zmień hasło do konta", "account_basics_password_dialog_current_password_label": "Aktualne hasło", "account_basics_password_dialog_new_password_label": "Nowe hasło", "account_basics_password_dialog_confirm_password_label": "Powtórz hasło", "account_basics_password_dialog_button_submit": "Zmień hasło", "account_basics_password_dialog_current_password_incorrect": "Błędne hasło", "account_usage_title": "Użycie", "account_usage_of_limit": "z {{limit}}", "account_usage_unlimited": "Bez limitu", "account_usage_limits_reset_daily": "Limity są resetowane codziennie o północy (UTC)", "account_delete_dialog_button_submit": "Nieodwracalnie usuń konto", "account_upgrade_dialog_tier_features_no_reservations": "Brak rezerwacji tematów", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} na plik", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} pamięci łącznie", "account_upgrade_dialog_tier_price_per_month": "miesiąc", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} na rok. Płatne miesięcznie.", "account_upgrade_dialog_billing_contact_email": "W razie pytań dotyczących rozliczeń skontaktuj się z nami bezpośrednio.", "account_upgrade_dialog_billing_contact_website": "W razie pytań dotyczących rozliczeń sprawdź naszą stronę.", "account_upgrade_dialog_button_cancel_subscription": "Anuluj subskrypcję", "account_upgrade_dialog_button_update_subscription": "Zmień subskrypcję", "account_tokens_title": "Tokeny dostępowe", "account_tokens_table_token_header": "Token", "account_tokens_table_label_header": "Etykieta", "account_tokens_table_last_access_header": "Ostatnie użycie", "account_tokens_table_expires_header": "Termin ważności", "account_tokens_table_never_expires": "Bezterminowy", "account_tokens_table_current_session": "Aktualna sesja przeglądarki", "common_copy_to_clipboard": "Kopiuj do schowka", "account_tokens_table_copied_to_clipboard": "Token został skopiowany", "account_tokens_table_cannot_delete_or_edit": "Nie można edytować ani usunąć tokenu aktualnej sesji", "account_tokens_table_create_token_button": "Utwórz token dostępowy", "account_tokens_dialog_label": "Etykieta, np. Powiadomienia Radarr", "account_tokens_dialog_button_update": "Zmień token", "account_basics_tier_interval_monthly": "miesięcznie", "account_basics_tier_interval_yearly": "rocznie", "account_upgrade_dialog_interval_monthly": "Miesięcznie", "account_upgrade_dialog_title": "Zmień plan konta", "account_delete_dialog_description": "Konto, wraz ze wszystkimi związanymi z nim danymi przechowywanymi na serwerze, będzie nieodwracalnie usunięte. Po usunięciu Twoja nazwa użytkownika będzie niedostępna jeszcze przez 7 dni. Jeśli chcesz kontynuować, potwierdź wpisując swoje hasło w polu poniżej.", "account_delete_dialog_billing_warning": "Usunięcie konta powoduje natychmiastowe anulowanie subskrypcji. Nie będziesz już mieć dostępu do strony z rachunkami.", "account_upgrade_dialog_interval_yearly": "Rocznie", "account_upgrade_dialog_interval_yearly_discount_save": "taniej o {{discount}}%", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "nawet {{discount}}% taniej", "account_upgrade_dialog_button_cancel": "Anuluj", "account_tokens_description": "Używaj tokenów do publikowania wiadomości i subskrybowania tematów przez API ntfy, żeby uniknąć konieczności podawania danych do logowania. Szczegóły znajdziesz w dokumentacji.", "account_tokens_dialog_title_create": "Utwórz token dostępowy", "account_tokens_table_last_origin_tooltip": "Z adresu IP {{ip}}, kliknij żeby sprawdzić", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} płatne jednorazowo. Oszczędzasz {{save}}.", "account_tokens_dialog_title_edit": "Edytuj token dostępowy", "account_tokens_dialog_title_delete": "Usuń token dostępowy", "account_tokens_dialog_button_create": "Utwórz token", "nav_upgrade_banner_label": "Przejdź na ntfy Pro", "nav_upgrade_banner_description": "Rezerwuj tematy, więcej powiadomień i maili oraz większe załączniki", "alert_not_supported_context_description": "Powiadomienia działają tylko przez HTTPS. To jest ograniczenie Notifications API.", "account_basics_tier_canceled_subscription": "Twoja subskrypcja została anulowana i konto zostanie ograniczone do wersji darmowej w dniu {{date}}.", "account_basics_tier_manage_billing_button": "Zarządzaj rachunkami", "account_usage_messages_title": "Wysłane wiadomości", "account_usage_emails_title": "Wysłane maile", "account_basics_tier_title": "Rodzaj konta", "account_basics_tier_description": "Mocarność Twojego konta", "account_basics_tier_admin": "Administrator", "account_basics_tier_admin_suffix_with_tier": "(plan {{tier}})", "account_basics_tier_admin_suffix_no_tier": "(brak planu)", "account_basics_tier_basic": "Podstawowe", "account_basics_tier_free": "Darmowe", "account_basics_tier_upgrade_button": "Przejdź na Pro", "account_basics_tier_change_button": "Zmień", "account_basics_tier_paid_until": "Subskrypcja opłacona do {{date}} i będzie odnowiona automatycznie", "account_basics_tier_payment_overdue": "Minął termin płatności. Zaktualizuj metodę płatności, w przeciwnym razie Twoje konto wkrótce zostanie ograniczone.", "account_usage_reservations_title": "Zarezerwowane tematy", "account_usage_reservations_none": "Brak zarezerwowanych tematów na tym koncie", "account_usage_attachment_storage_title": "Miejsce na załączniki", "account_usage_attachment_storage_description": "{{filesize}} na każdy plik, przechowywane przez {{expiry}}", "account_usage_basis_ip_description": "Statystyki i limity dla tego konta bazują na Twoim adresie IP, więc mogą być współdzielone z innymi użytkownikami. Limity pokazane powyżej to wartości przybliżone bazujące na rzeczywistych limitach.", "account_usage_cannot_create_portal_session": "Nie można otworzyć portalu z rachunkami", "account_delete_title": "Usuń konto", "account_delete_description": "Usuń swoje konto nieodwracalnie", "account_delete_dialog_label": "Hasło", "account_delete_dialog_button_cancel": "Anuluj", "account_upgrade_dialog_button_redirect_signup": "Załóż konto", "account_upgrade_dialog_button_pay_now": "Zapłać i aktywuj subskrypcję", "account_tokens_dialog_button_cancel": "Anuluj", "account_tokens_dialog_expires_label": "Token dostępowy wygasa po", "account_tokens_dialog_expires_unchanged": "Pozostaw termin ważności bez zmian", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} rezerwacja tematu", "account_upgrade_dialog_tier_features_reservations_few": "{{reservations}} rezerwacje tematów", "account_upgrade_dialog_tier_features_reservations_many": "{{reservations}} rezerwacji tematów", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} mail dziennie", "account_upgrade_dialog_tier_features_emails_few": "{{emails}} maile dziennie", "account_upgrade_dialog_tier_features_emails_many": "{{emails}} maili dziennie", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} wiadomość dziennie", "account_upgrade_dialog_tier_features_messages_few": "{{messages}} wiadomości dziennie", "account_upgrade_dialog_tier_features_messages_many": "{{messages}} wiadomości dziennie", "account_upgrade_dialog_tier_features_no_calls": "Brak połączeń telefonicznych", "account_upgrade_dialog_tier_features_calls_one": "Dzienne rozmowy telefoniczne: {{calls}}", "account_upgrade_dialog_tier_current_label": "Bieżące", "account_basics_phone_numbers_dialog_number_label": "Numer telefonu", "account_basics_phone_numbers_dialog_check_verification_button": "Potwierdź kod", "account_upgrade_dialog_proration_info": "Proporcja: Przy ulepszaniu pomiędzy płatnymi planami, różnica ceny będzie pobrana natychmiast. Przy obniżaniu planu do niższych planów, środki zostaną użyte do rozliczenia przyszłych okresów subskrypcji.", "account_upgrade_dialog_tier_features_emails_other": "Dzienne wiadomości e-mail: {{emails}}", "account_upgrade_dialog_tier_features_calls_other": "Dzienne rozmowy telefoniczne: {{calls}}", "account_basics_phone_numbers_dialog_verify_button_sms": "Wyślij SMS", "account_tokens_dialog_expires_never": "Token nigdy nie wygasa", "account_tokens_dialog_expires_x_days": "Token wygasa za {{days}} dni", "account_basics_phone_numbers_dialog_description": "Aby używać funkcji powiadomień telefonicznych, musisz dodać i zweryfikować no najmniej jeden numer telefonu. Weryfikacja może być dokonana przez SMS lub połączenie telefoniczne.", "account_upgrade_dialog_tier_features_messages_other": "Dzienne wiadomości: {{messages}}", "account_basics_phone_numbers_no_phone_numbers_yet": "Brak numerów telefonów", "account_tokens_delete_dialog_title": "Usuń token dostępu", "publish_dialog_chip_call_label": "Rozmowa telefoniczna", "account_basics_phone_numbers_dialog_title": "Dodaj numer telefonu", "account_upgrade_dialog_tier_features_reservations_other": "Zarezerwowane tematy: {{reservations}}", "account_upgrade_dialog_reservations_warning_one": "Wybrany plan zezwala na mniejszą liczbę zarezerwowanych tematów niż obecny. Przed zmianą planu, usuń co najmniej jedną rezerwację. Rezerwacje możesz usunąć w Ustawieniach.", "account_basics_phone_numbers_description": "Dla powiadomień telefonicznych", "account_upgrade_dialog_cancel_warning": "To anuluje Twoją subskrypcję i obniży status Twojego konta {{date}}. Tego dnia rezerwacja tematów oraz wiadomości przechowywane na serwerze zostaną usunięte.", "account_tokens_dialog_expires_x_hours": "Token wygasa za {{hours}} godzin(y)", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Brak zweryfikowanych numerów telefonów", "publish_dialog_call_label": "Rozmowa telefoniczna", "account_usage_calls_title": "Wykonane połączenia telefoniczne", "account_basics_phone_numbers_copied_to_clipboard": "Numer telefonu skopiowany do schowka", "account_basics_phone_numbers_dialog_number_placeholder": "np. +1222333444", "account_basics_phone_numbers_dialog_code_placeholder": "np. 123456", "account_basics_phone_numbers_dialog_channel_call": "Zadzwoń", "account_basics_phone_numbers_title": "Numery telefonów", "account_usage_calls_none": "Nie wykonano żadnych połączeń z tego konta", "publish_dialog_call_reset": "Usuń rozmowę telefoniczną", "account_basics_phone_numbers_dialog_code_label": "Kod weryfikacyjny", "account_basics_phone_numbers_dialog_verify_button_call": "Zadzwoń do mnie", "publish_dialog_call_item": "Zadzwoń pod numer {{number}}", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_upgrade_dialog_tier_selected_label": "Wybrane", "account_upgrade_dialog_reservations_warning_other": "Wybrany plan zezwala na mniejszą liczbę zarezerwowanych tematów niż obecny. Przed zmianą planu, usuń co najmniej tyle rezerwacji: {{count}}. Rezerwacje możesz usunąć w Ustawieniach.", "prefs_reservations_title": "Zarezerwowane tematy", "prefs_reservations_table_everyone_read_only": "Ja mogę publikować i subskrybować, każdy może subskrybować", "prefs_reservations_table_not_subscribed": "Nie jesteś zasubskrybowany", "prefs_reservations_dialog_title_delete": "Usuń rezerwacje tematu", "prefs_reservations_dialog_topic_label": "Temat", "reservation_delete_dialog_action_delete_title": "Usuń wiadomości i załączniki zapisane w pamięci cache", "prefs_reservations_description": "Możesz tutaj zarezerwować nazwy tematów do własnego użytku. Rezerwacja tematu daje ci go na własność i pozwala definiować permisje dla innych użytkowników.", "prefs_reservations_limit_reached": "Zużyłeś swój limit zarezerwowanych tematów.", "prefs_reservations_add_button": "Dodaj zarezerwowany temat", "account_tokens_delete_dialog_description": "Przed usuwaniem tokenu dostępu upewnij się, że nie jest on aktywnie używany przez inną aplikację lub skrypt. Ta akcja nie może być wycofana.", "prefs_reservations_table_everyone_read_write": "Każdy może publikować i subskrybować", "prefs_reservations_table_click_to_subscribe": "Kliknij aby subskrybować", "prefs_reservations_dialog_title_edit": "Modyfikuj zarezerwowany temat", "prefs_reservations_table_everyone_write_only": "Ja mogę publikować i subskrybować, każdy może publikować", "action_bar_mute_notifications": "Wycisz powiadomienia", "alert_notification_permission_denied_title": "Powiadomienia są blokowane", "alert_notification_ios_install_required_description": "Wciśnij ikonę Udostępniania i dodaj do Strony Głównej aby zezwolić na otrzymywanie powiadomień na IOS", "notifications_actions_failed_notification": "Akcja zakończona niepowodzeniem", "prefs_notifications_web_push_disabled_description": "Powiadomienia są dostarczane kiedy aplikacja jest aktywna (poprzez WebSocket)", "prefs_notifications_web_push_enabled": "Włączone dla {{server}}", "prefs_notifications_web_push_disabled": "Wyłączone", "prefs_appearance_theme_system": "Systemowy (domyślny)", "prefs_appearance_theme_dark": "Tryb ciemny", "prefs_appearance_theme_light": "Tryb jasny", "prefs_reservations_edit_button": "Modyfikuj ustawienia dostępu dla tematu", "prefs_reservations_table": "Tabela zarezerwowanych tematów", "prefs_reservations_table_topic_header": "Temat", "prefs_reservations_table_access_header": "Dostęp", "prefs_reservations_table_everyone_deny_all": "Tylko ja mogę publikować i subskrybować", "prefs_reservations_dialog_access_label": "Dostęp", "reservation_delete_dialog_action_delete_description": "Wiadomości i załączniki zapisane w pamięci cache zostaną pernamentie usunięte. Ta akcja nie może być wycofana.", "reservation_delete_dialog_submit_button": "Usuń rezerwację", "error_boundary_button_reload_ntfy": "Przeładuj ntfy", "web_push_subscription_expiring_title": "Powiadomienia będą wstrzymane", "web_push_subscription_expiring_body": "Otwórz ntfy aby nadal dostawać powiadomienia", "alert_notification_permission_denied_description": "Prosze ponownie pozwolić na otrzymywanie powiadomień w twojej przeglądarce", "subscribe_dialog_subscribe_use_another_background_info": "Powiadomienia z innych serwerów nie zostaną odebrane jeśli aplikacja nie jest otwarta", "alert_notification_ios_install_required_title": "Instalacja IOS wymagana", "publish_dialog_checkbox_markdown": "Formatuj jako Markdown", "account_tokens_delete_dialog_submit_button": "Pernamentnie usuń token dostępu", "prefs_notifications_web_push_title": "Powiadomienia w tle", "prefs_notifications_web_push_enabled_description": "Powiadomienia są dostarczane nawet kiedy aplikacja nie jest aktywna (poprzez Web Push)", "prefs_users_description_no_sync": "Nazwy użytkownika i hasła nie są synchronizowane z kontem.", "prefs_users_table_cannot_delete_or_edit": "Nie można usunąć lub modyfikować zalogowanego użytkownika", "prefs_reservations_delete_button": "Zresetuj ustawienia dostępu dla tematu", "prefs_reservations_dialog_title_add": "Zarezerwuj temat", "reservation_delete_dialog_action_keep_title": "Zachowaj wiadomości i załącznik w pamięci cache", "reservation_delete_dialog_action_keep_description": "Wiadomości i załączniki które są zapisane w pamięci cache będą dostępne publicznie dla każdego znającego nazwę powiązanego z nimi tematu.", "web_push_unknown_notification_title": "Nieznane powiadomienie otrzymane od serwera" } ntfy-2.11.0/web/public/static/langs/pt.json000066400000000000000000000414601462047176100205340ustar00rootroot00000000000000{ "action_bar_clear_notifications": "Limpar todas as notificações", "action_bar_send_test_notification": "Enviar notificação de teste", "action_bar_unsubscribe": "Anular subscrição", "action_bar_toggle_mute": "Ativa/Desativa notificações", "action_bar_toggle_action_menu": "Abrir/fechar menu de ação", "message_bar_type_message": "Escreva uma mensagem aqui", "message_bar_error_publishing": "Erro ao publicar notificação", "message_bar_publish": "Publicar mensagem", "nav_topics_title": "Tópicos subscritos", "nav_button_all_notifications": "Todas notificações", "nav_button_settings": "Configurações", "nav_button_documentation": "Documentação", "nav_button_publish_message": "Publicar notificação", "nav_button_subscribe": "Subscrever tópico", "nav_button_muted": "Notificações desativadas", "nav_button_connecting": "A ligar", "alert_notification_permission_required_title": "As notificações estão desativadas", "alert_notification_permission_required_description": "Conceder permissão ao seu navegador para mostrar notificações.", "alert_not_supported_title": "Notificações não suportadas", "notifications_list": "Lista de notificações", "alert_not_supported_description": "As notificações não são suportadas pelo seu navegador.", "notifications_list_item": "Notificação", "notifications_mark_read": "Marcar como lido", "notifications_delete": "Apagar", "notifications_copied_to_clipboard": "Copiado para a área de transferência", "notifications_tags": "Etiquetas", "notifications_priority_x": "Prioridade {{priority}}", "notifications_new_indicator": "Nova notificação", "notifications_attachment_image": "Imagem anexada", "notifications_attachment_copy_url_title": "Copiar URL do anexo para a área de transferência", "notifications_attachment_copy_url_button": "Copiar URL", "notifications_attachment_open_title": "Ir para {{url}}", "notifications_attachment_link_expired": "a ligação de descarga expirou", "notifications_attachment_open_button": "Abrir anexo", "notifications_attachment_link_expires": "a ligação expira em {{date}}", "notifications_attachment_file_image": "ficheiro de imagem", "notifications_attachment_file_video": "ficheiro de vídeo", "notifications_attachment_file_audio": "ficheiro de áudio", "notifications_attachment_file_app": "ficheiro apk Android", "notifications_attachment_file_document": "outros documentos", "notifications_click_copy_url_title": "Copiar URL da ligação para a área de transferência", "notifications_click_copy_url_button": "Copiar ligação", "notifications_click_open_button": "Abrir ligação", "notifications_actions_open_url_title": "Ir para {{url}}", "notifications_actions_not_supported": "Ação não suportada na app web", "notifications_actions_http_request_title": "Enviar HTTP {{method}} para {{url}}", "notifications_none_for_topic_title": "Ainda não recebeu nenhuma notificação deste tópico.", "notifications_none_for_topic_description": "Para enviar notificações deste tópico, basta usar os métodos PUT ou POST no URL do tópico.", "notifications_none_for_any_title": "Ainda não recebeu nenhuma notificação.", "notifications_none_for_any_description": "Para enviar notificações dum tópico, basta usar os métodos PUT ou POST no URL do tópico. Eis um exemplo usando um dos seus tópicos.", "notifications_no_subscriptions_title": "Parece que ainda não tem nenhuma inscrição.", "notifications_no_subscriptions_description": "Clique na ligação \"{{linktext}}\" para criar ou subscrever um tópico. Depois, poderá enviar mensagens via PUT ou POST e receberá notificações aqui.", "notifications_example": "Exemplo", "notifications_more_details": "Para mais informações, aceda ao site ou à documentação.", "notifications_loading": "A carregar notificações…", "publish_dialog_title_topic": "Publicar em {{topic}}", "publish_dialog_title_no_topic": "Publicar notificação", "publish_dialog_progress_uploading": "A enviar …", "publish_dialog_progress_uploading_detail": "A enviar {{loaded}}/{{total}} ({{percent}}%)…", "publish_dialog_message_published": "Notificação publicada", "publish_dialog_attachment_limits_file_and_quota_reached": "excede limite de ficheiro de {{fileSizeLimit}} e cota, {{remainingBytes}} restante(s)", "publish_dialog_attachment_limits_quota_reached": "excede a cota, {{remainingBytes}} restante(s)", "publish_dialog_priority_min": "Prioridade mínima", "publish_dialog_priority_low": "Prioridade baixa", "publish_dialog_priority_default": "Prioridade padrão", "publish_dialog_priority_high": "Prioridade alta", "publish_dialog_base_url_label": "URL de serviço", "publish_dialog_base_url_placeholder": "URL de serviço, por exemplo: https://exemplo.com", "publish_dialog_topic_label": "Nome do tópico", "publish_dialog_topic_placeholder": "Nome do tópico, por exemplo: \"avisos_do_filipe\"", "publish_dialog_topic_reset": "Limpar tópico", "publish_dialog_title_placeholder": "Título da notificação, por exemplo: \"Alerta de espaço em disco\"", "publish_dialog_message_label": "Mensagem", "publish_dialog_message_placeholder": "Escreva uma mensagem aqui", "publish_dialog_tags_label": "Etiquetas", "publish_dialog_tags_placeholder": "Lista de etiquetas, separadas por vírgula, por exemplo: aviso, srv1-backup", "publish_dialog_priority_label": "Prioridade", "publish_dialog_click_label": "URL de clique", "publish_dialog_click_placeholder": "URL que é aberto quando a notificação é clicada", "publish_dialog_click_reset": "Remover URL de clique", "publish_dialog_email_label": "Email", "publish_dialog_filename_placeholder": "Nome do ficheiro anexado", "publish_dialog_email_placeholder": "Endereça para o qual encaminhar a notificação, por exemplo: filipe@exemplo.com", "publish_dialog_email_reset": "Remover encaminhamento por email", "publish_dialog_attach_label": "URL de anexo", "publish_dialog_attach_placeholder": "Anexar ficheiro por URL, por exemplo: https://f-droid.org/F-Droid.apk", "publish_dialog_attach_reset": "Remover URL de anexo", "publish_dialog_filename_label": "Nome do ficheiro", "publish_dialog_delay_label": "Atraso", "publish_dialog_delay_placeholder": "Atraso na entrega, por exemplo \"{{{unixTimestamp}}\", \"{{relativeTime}}\", ou \"{{naturalLanguage}}\" (apenas em Inglês)", "publish_dialog_other_features": "Outras funcionalidades:", "publish_dialog_chip_click_label": "URL de clique", "publish_dialog_chip_topic_label": "Alterar tópico", "publish_dialog_details_examples_description": "Para obter exemplos e uma descrição detalhada de todas as funcionalidades de envio, consulte a documentação.", "publish_dialog_button_cancel_sending": "Cancelar o envio", "publish_dialog_attached_file_filename_placeholder": "Nome do ficheiro anexado", "publish_dialog_attached_file_remove": "Remover ficheiro anexado", "emoji_picker_search_clear": "Limpar pesquisa", "subscribe_dialog_subscribe_description": "Os tópicos podem não ser protegidos por palavra-passe, por isso escolha um nome que não seja fácil de adivinhar. Uma vez subscrito, pode usar os métodos PUT/POST para publicar notificações.", "subscribe_dialog_subscribe_use_another_label": "Usar outro servidor", "subscribe_dialog_error_user_not_authorized": "Utilizador {{username}} não autorizado", "prefs_notifications_min_priority_description_max": "Mostrar notificações se prioridade for 5 (máxima)", "prefs_notifications_delete_after_one_week": "Após uma semana", "prefs_notifications_delete_after_one_month": "Após um mês", "prefs_notifications_delete_after_never_description": "As notificações nunca serão eliminadas automaticamente", "prefs_notifications_delete_after_one_week_description": "As notificações serão eliminadas automaticamente após uma semana", "prefs_notifications_delete_after_one_month_description": "As notificações serão eliminadas automaticamente após um mês", "prefs_users_dialog_username_label": "Utilizador, por exemplo: \"filipe\"", "prefs_users_dialog_password_label": "Palavra-passe", "common_cancel": "Cancelar", "common_add": "Adicionar", "error_boundary_description": "Obviamente, isto não devia acontecer, lamentamos o sucedido.
      Se tiver um minuto, por favor relate isto no GitHub, ou informe-nos através de Discord ou Matrix.", "error_boundary_stack_trace": "Erro (\"stack trace\")", "error_boundary_gathering_info": "A recolher mais informações …", "error_boundary_unsupported_indexeddb_title": "Navegação anónima não suportada", "error_boundary_unsupported_indexeddb_description": "A aplicação web ntfy necessita da \"IndexedDB\" para funcionar e o seu navegador não a suporta no modo de navegação privada.

      Embora isso seja inconveniente, também não faz muito sentido usar a aplicação no modo de navegação privada de qualquer maneira, visto que tudo é guardado no armazenamento do navegador. Pode ler mais sobre isso nesta questão no GitHub, ou falar connosco por Discord ou Matrix.", "action_bar_show_menu": "Mostrar menu", "action_bar_logo_alt": "logótipo do ntfy", "action_bar_settings": "Configurações", "message_bar_show_dialog": "Mostrar caixa de publicação", "alert_notification_permission_required_button": "Conceder agora", "publish_dialog_attachment_limits_file_reached": "excede o limite de ficheiro de {{fileSizeLimit}}", "publish_dialog_emoji_picker_show": "Escolher emoji", "publish_dialog_priority_max": "Prioridade máxima", "publish_dialog_title_label": "Título", "publish_dialog_delay_reset": "Remover atraso de entrega", "publish_dialog_chip_email_label": "Encaminhar para email", "publish_dialog_chip_attach_url_label": "Anexar ficheiro por URL", "publish_dialog_chip_attach_file_label": "Anexar ficheiro local", "publish_dialog_chip_delay_label": "Atraso de entrega", "publish_dialog_button_cancel": "Cancelar", "publish_dialog_button_send": "Enviar", "publish_dialog_checkbox_publish_another": "Publicar outra", "publish_dialog_attached_file_title": "Ficheiro anexado:", "publish_dialog_drop_file_here": "Arraste o ficheiro para aqui", "emoji_picker_search_placeholder": "Pesquisar emoji", "subscribe_dialog_subscribe_title": "Subscrever tópico", "subscribe_dialog_subscribe_topic_placeholder": "Nome do tópico, por exemplo: \"alertas_do_filipe\"", "subscribe_dialog_subscribe_base_url_label": "URL de serviço", "subscribe_dialog_subscribe_button_cancel": "Cancelar", "subscribe_dialog_subscribe_button_subscribe": "Subscrever", "subscribe_dialog_login_title": "Autenticação necessária", "subscribe_dialog_login_description": "Esse tópico é protegido por palavra-passe. Por favor insira um nome de utilizador e palavra-passe para subscrever.", "subscribe_dialog_login_username_label": "Nome, por exemplo: \"filipe\"", "subscribe_dialog_login_password_label": "Palavra-passe", "common_back": "Voltar", "subscribe_dialog_login_button_login": "Autenticar", "subscribe_dialog_error_user_anonymous": "anónimo", "prefs_notifications_title": "Notificações", "prefs_notifications_sound_title": "Som de notificações", "prefs_notifications_sound_description_none": "Notificações não reproduzem nenhum som quando chegam", "prefs_notifications_sound_description_some": "Notificações reproduzem som {{sound}} quando chegam", "prefs_notifications_sound_no_sound": "Sem som", "prefs_notifications_sound_play": "Reproduzir som selecionado", "prefs_notifications_min_priority_title": "Prioridade mínima", "prefs_notifications_min_priority_description_any": "A mostrar todas as notificações, independentemente da prioridade", "prefs_notifications_min_priority_description_x_or_higher": "Mostrar notificações se prioridade for {{number}} ({{name}}) ou acima", "prefs_notifications_min_priority_any": "Qualquer prioridade", "prefs_notifications_min_priority_low_and_higher": "Prioridade baixa e acima", "prefs_notifications_min_priority_default_and_higher": "Prioridade padrão e acima", "prefs_notifications_min_priority_high_and_higher": "Prioridade alta e acima", "prefs_notifications_min_priority_max_only": "Apenas prioridade máxima", "prefs_notifications_delete_after_title": "Eliminar notificações", "prefs_notifications_delete_after_never": "Nunca", "prefs_notifications_delete_after_three_hours": "Após três horas", "prefs_notifications_delete_after_one_day": "Após um dia", "prefs_notifications_delete_after_three_hours_description": "As notificações serão eliminadas automaticamente após três horas", "prefs_notifications_delete_after_one_day_description": "As notificações serão eliminadas automaticamente após um dia", "prefs_users_title": "Gerir utilizadores", "prefs_users_description": "Adicionar/remover utilizadores aos seus tópicos protegidos. Note que o utilizador e palavra-passe são guardados no armazenamento local do navegador.", "prefs_users_table": "Tabela de utilizadores", "prefs_users_add_button": "Adicionar utilizador", "prefs_users_edit_button": "Editar utilizador", "prefs_users_delete_button": "Apagar utilizador", "prefs_users_table_user_header": "Utilizador", "prefs_users_table_base_url_header": "URL de serviço", "prefs_users_dialog_title_add": "Adicionar utilizador", "prefs_users_dialog_title_edit": "Editar utilizador", "prefs_users_dialog_base_url_label": "URL de serviço, por exemplo: https://ntfy.sh", "common_save": "Gravar", "prefs_appearance_title": "Aparência", "prefs_appearance_language_title": "Idioma", "priority_min": "mínima", "priority_low": "baixa", "priority_default": "padrão", "priority_high": "alta", "priority_max": "máxima", "error_boundary_title": "Oh não, o ntfy parou de funcionar", "error_boundary_button_copy_stack_trace": "Copiar erro (\"stack trace\")", "signup_title": "Criar uma conta ntfy", "signup_form_username": "Nome de utilizador", "signup_form_confirm_password": "Confirmar palavra-passe", "signup_form_button_submit": "Registar", "signup_form_toggle_password_visibility": "Alternar visibilidade da palavra-passe", "signup_already_have_account": "Já tem uma conta? Inicie sessão!", "signup_disabled": "Novos registos desativados", "signup_error_username_taken": "O nome \"{{username}}\" já está em uso", "signup_error_creation_limit_reached": "Limite de criação de contas atingido", "login_title": "Inicie sessão na sua conta ntfy", "login_form_button_submit": "Iniciar sessão", "login_disabled": "Início de sessão desativado", "action_bar_account": "Conta", "action_bar_change_display_name": "Alterar nome de exibição", "action_bar_reservation_delete": "Remover reserva", "action_bar_reservation_limit_reached": "Limite alcançado", "action_bar_profile_title": "Perfil", "action_bar_profile_settings": "Configurações", "action_bar_profile_logout": "Terminar sessão", "action_bar_sign_in": "Iniciar sessão", "nav_upgrade_banner_description": "Reserve tópicos, envie mais mensagens, emails e anexos maiores", "signup_form_password": "Palavra-passe", "action_bar_reservation_edit": "Alterar reserva", "login_link_signup": "Registar", "action_bar_reservation_add": "Reservar tópico", "action_bar_sign_up": "Registar", "nav_button_account": "Conta", "common_copy_to_clipboard": "Copiar", "nav_upgrade_banner_label": "Atualizar para ntfy Pro", "alert_not_supported_context_description": "Notificações são suportadas apenas sobre HTTPS. Essa é uma limitação da API de Notificações.", "display_name_dialog_title": "Alterar nome mostrado", "display_name_dialog_description": "Configura um nome alternativo ao tópico que é mostrado na lista de assinaturas. Isto ajuda a identificar tópicos com nomes complicados mais facilmente.", "display_name_dialog_placeholder": "Nome exibido", "reserve_dialog_checkbox_label": "Reservar tópico e configurar acesso", "publish_dialog_call_label": "Chamada telefônica", "publish_dialog_call_placeholder": "Número de telefone para ligar com a mensagem, ex: +12223334444, ou 'Sim'", "publish_dialog_call_reset": "Remover chamada telefônica", "publish_dialog_chip_call_label": "Chamada telefônica", "subscribe_dialog_subscribe_button_generate_topic_name": "Gerar nome" } ntfy-2.11.0/web/public/static/langs/pt_BR.json000066400000000000000000000612021462047176100211130ustar00rootroot00000000000000{ "notifications_attachment_open_button": "Abrir anexo", "action_bar_clear_notifications": "Limpar todas as notificações", "action_bar_unsubscribe": "Desinscrever", "message_bar_type_message": "Escreva uma mensagem aqui", "message_bar_error_publishing": "Erro ao publicar notificação", "nav_button_all_notifications": "Todas notificações", "nav_button_settings": "Configurações", "nav_button_subscribe": "Inscrever no tópico", "alert_notification_permission_required_title": "Notificações estão desativadas", "alert_notification_permission_required_description": "Conceder ao navegador permissão para mostrar notificações.", "alert_notification_permission_required_button": "Conceder agora", "alert_not_supported_title": "Notificações não são suportadas", "alert_not_supported_description": "Notificações não são suportadas pelo seu navagador.", "notifications_copied_to_clipboard": "Copiado para a área de transferência", "notifications_tags": "Etiquetas", "notifications_attachment_copy_url_title": "Copiar URL do anexo para a área de transferência", "notifications_click_copy_url_title": "Copiar URL do link para a área de transferência", "notifications_click_copy_url_button": "Copiar link", "notifications_click_open_title": "Ir para {{url}}", "notifications_click_open_button": "Abrir link", "notifications_none_for_topic_title": "Você ainda não recebeu nenhuma notificação para esse tópico.", "notifications_none_for_topic_description": "Para enviar notificações para esse tópico, basta usar os métodos PUT ou POST na URL do tópico.", "notifications_none_for_any_title": "Você ainda não recebeu nenhuma notificação.", "notifications_none_for_any_description": "Para enviar notificações a um tópico, basta usar os métodos PUT ou POST para o URL do tópico. Aqui um exemplo usando um dos seus tópicos.", "notifications_no_subscriptions_title": "Parece que você não tem nenhuma inscrição ainda.", "notifications_no_subscriptions_description": "Clique no link \"{{linktext}}\" para criar ou inscrever em um tópico. Depois disso, poderá enviar mensagens via PUT ou POST e você receberá notificações aqui.", "action_bar_settings": "Configurações", "action_bar_send_test_notification": "Enviar notificação de teste", "nav_button_documentation": "Documentação", "nav_button_publish_message": "Publicar notificação", "nav_topics_title": "Tópicos inscritos", "notifications_attachment_open_title": "Ir para {{url}}", "notifications_attachment_link_expires": "link expira em {{date}}", "notifications_attachment_copy_url_button": "Copiar URL", "notifications_attachment_link_expired": "link para transferência expirado", "notifications_example": "Exemplo", "notifications_more_details": "Para mais informações, confira site ou documentação.", "notifications_loading": "Carregando notificações…", "subscribe_dialog_error_user_anonymous": "anônimo", "prefs_notifications_delete_after_three_hours": "Após três horas", "prefs_notifications_delete_after_one_day": "Após um dia", "prefs_notifications_delete_after_one_week": "Após uma semana", "prefs_notifications_delete_after_one_month": "Após um mês", "notifications_actions_not_supported": "Ação não suportada no aplicativo web", "notifications_actions_http_request_title": "Enviar HTTP {{method}} para {{url}}", "notifications_actions_open_url_title": "Ir para {{url}}", "publish_dialog_title_topic": "Publicar em {{topic}}", "publish_dialog_title_no_topic": "Publicar notificação", "publish_dialog_progress_uploading": "Enviando …", "publish_dialog_progress_uploading_detail": "Fazendo upload de {{loaded}}/{{total}} ({{percent}}%)…", "publish_dialog_message_published": "Notificação publicada", "publish_dialog_attachment_limits_file_reached": "excede o limite de arquivo {{fileSizeLimit}}", "publish_dialog_priority_min": "Prioridade mínima", "publish_dialog_priority_low": "Baixa prioridade", "publish_dialog_priority_default": "Prioridade padrão", "publish_dialog_base_url_label": "URL de serviço", "publish_dialog_base_url_placeholder": "URL de serviço, por exemplo https://example.com", "publish_dialog_topic_label": "Nome do tópico", "publish_dialog_topic_placeholder": "Nome do tópico, por exemplo, phil_alerts", "publish_dialog_title_label": "Título", "publish_dialog_title_placeholder": "Título da notificação, por exemplo Alerta de espaço em disco", "publish_dialog_message_label": "Mensagem", "publish_dialog_message_placeholder": "Digite uma mensagem aqui", "publish_dialog_tags_label": "Etiquetas", "publish_dialog_tags_placeholder": "Lista de etiquetas, separadas por vírgula, por exemplo: srv1-backup", "publish_dialog_priority_label": "Prioridade", "publish_dialog_click_label": "Clique em URL", "publish_dialog_click_placeholder": "URL que é aberto quando a notificação é clicada", "publish_dialog_email_label": "Email", "publish_dialog_email_placeholder": "Email para encaminhar a notificação, por exemplo phil@example.com", "publish_dialog_filename_label": "Nome do arquivo", "publish_dialog_filename_placeholder": "Nome do arquivo anexado", "publish_dialog_delay_label": "Atraso", "publish_dialog_delay_placeholder": "Atraso na entrega, por exemplo {{{unixTimestamp}}, {{relativeTime}}, ou \"{{naturalLanguage}}\" (apenas em inglês)", "publish_dialog_other_features": "Outros recursos:", "publish_dialog_chip_click_label": "Clique em URL", "publish_dialog_chip_attach_file_label": "Anexar arquivo local", "publish_dialog_chip_delay_label": "Atraso na entrega", "publish_dialog_chip_topic_label": "Alterar tópico", "publish_dialog_button_cancel_sending": "Cancelar o envio", "publish_dialog_attached_file_filename_placeholder": "Nome do arquivo anexado", "publish_dialog_drop_file_here": "Solte o arquivo aqui", "emoji_picker_search_placeholder": "Pesquisar emoji", "subscribe_dialog_subscribe_title": "Inscrever no tópico", "subscribe_dialog_subscribe_use_another_label": "Usar outro servidor", "subscribe_dialog_subscribe_description": "Os tópicos podem não ser protegidos por senha, então escolha um nome que não seja fácil de adivinhar. Uma vez inscrito, você pode PUT/POST notificações.", "subscribe_dialog_subscribe_topic_placeholder": "Nome do tópico, por exemplo phil_alerts", "subscribe_dialog_subscribe_button_cancel": "Cancelar", "subscribe_dialog_subscribe_button_subscribe": "Inscrever", "prefs_notifications_min_priority_description_max": "Mostrar notificações se prioridade for 5 (máxima)", "prefs_notifications_min_priority_any": "Qualquer prioridade", "prefs_notifications_min_priority_low_and_higher": "Baixa prioridade e acima", "prefs_notifications_min_priority_default_and_higher": "Prioridade padrão e acima", "subscribe_dialog_login_password_label": "Senha", "common_back": "Voltar", "prefs_notifications_min_priority_high_and_higher": "Alta prioridade e acima", "prefs_notifications_min_priority_max_only": "Apenas prioridade máxima", "prefs_notifications_delete_after_title": "Apagar notificações", "prefs_notifications_delete_after_never": "Nunca", "prefs_notifications_delete_after_never_description": "Notificações nunca serão auto excluídas", "prefs_users_description": "Adicionar/remover usuários em seus tópicos protegidos. Note que o usuário e senha são salvos no armazenamento local do navegador.", "prefs_users_add_button": "Adicionar usuário", "prefs_users_table_user_header": "Usuário", "prefs_users_table_base_url_header": "URL de serviço", "prefs_users_dialog_title_add": "Adicionar usuário", "prefs_users_dialog_title_edit": "Editar usuário", "prefs_users_dialog_base_url_label": "URL de serviço, exemplo https://ntfy.sh", "prefs_users_dialog_username_label": "Usuário, por exemplo phil", "prefs_users_dialog_password_label": "Senha", "common_cancel": "Cancelar", "common_add": "Adicionar", "common_save": "Salvar", "prefs_appearance_title": "Aparência", "prefs_appearance_language_title": "LInguagem", "priority_min": "minima", "priority_low": "baixa", "priority_default": "padrão", "priority_high": "alta", "priority_max": "máxima", "error_boundary_title": "Ah não, ntfy parou de funcionar", "error_boundary_gathering_info": "Coletar mais informações …", "error_boundary_description": "Isto obviamente não deveria ter acontecido. Lamentamos muito por isto.
      Se tiver um minuto, por favor relate isto no GitHub, ou informe-nos através de Discord ou Matrix.", "error_boundary_button_copy_stack_trace": "Copiar rastreamento de pilha", "error_boundary_stack_trace": "Rastreamento de pilha", "publish_dialog_attachment_limits_file_and_quota_reached": "excede {{fileSizeLimit}} limite de arquivo e cota, {{remainingBytes}} restante", "publish_dialog_attachment_limits_quota_reached": "excede a cota, {{remainingBytes}} restantes", "publish_dialog_priority_high": "Alta prioridade", "publish_dialog_priority_max": "Prioridade máxima", "publish_dialog_button_send": "Enviar", "publish_dialog_attached_file_title": "Arquivo anexado:", "publish_dialog_attach_label": "URL de anexo", "publish_dialog_chip_attach_url_label": "Anexar arquivo por URL", "publish_dialog_attach_placeholder": "Anexar arquivo por URL, por exemplo, https://f-droid.org/F-Droid.apk", "publish_dialog_chip_email_label": "Encaminhar para email", "publish_dialog_checkbox_publish_another": "Publicar outro", "publish_dialog_details_examples_description": "Para obter exemplos e uma descrição detalhada de todos os recursos de envio, consulte a documentação.", "publish_dialog_button_cancel": "Cancelar", "prefs_notifications_delete_after_one_day_description": "Notificações são automaticamente excluídas após um dia", "prefs_notifications_delete_after_one_month_description": "Notificações são automaticamente excluídas após um mês", "prefs_users_title": "Gerenciar usuários", "subscribe_dialog_error_user_not_authorized": "Usuário {{username}} não autorizado", "prefs_notifications_title": "Notificações", "prefs_notifications_sound_no_sound": "Sem som", "subscribe_dialog_login_title": "Login necessário", "prefs_notifications_sound_title": "Som de notificações", "prefs_notifications_min_priority_title": "Mínima prioridade", "prefs_notifications_min_priority_description_any": "Mostrando todas as notificações, independente da prioridade", "prefs_notifications_delete_after_one_week_description": "Notificações são automaticamente excluídas após uma semana", "subscribe_dialog_login_description": "Esse tópico é protegido por senha. Por favor digite o nome de usuário e senha para inscrever.", "subscribe_dialog_login_username_label": "Nome, por exemplo phil", "subscribe_dialog_login_button_login": "Login", "prefs_notifications_sound_description_none": "Notificações não reproduzem nenhum som quando chegam", "prefs_notifications_sound_description_some": "Notificações reproduzem som {{sound}} quando chegam", "prefs_notifications_min_priority_description_x_or_higher": "Mostrar notificações se prioridade for {{number}} ({{name}}) ou acima", "prefs_notifications_delete_after_three_hours_description": "Notificações são automaticamente excluídas após três horas", "publish_dialog_attach_reset": "Remover URL do anexo", "publish_dialog_emoji_picker_show": "Escolher emoji", "publish_dialog_attached_file_remove": "Remover arquivo anexado", "emoji_picker_search_clear": "Limpar", "subscribe_dialog_subscribe_base_url_label": "URL de subscrição", "notifications_list": "Lista de notificações", "message_bar_show_dialog": "Mostrar caixa de publicação", "publish_dialog_topic_reset": "Resetar tópico", "publish_dialog_delay_reset": "Remover entrega adiada da notificação", "nav_button_connecting": "Conectando", "publish_dialog_email_reset": "Remover encaminhar email", "prefs_notifications_sound_play": "Reproduzir som selecionado", "action_bar_show_menu": "Mostrar menu", "action_bar_toggle_mute": "Habilita/Desabilita notificações", "action_bar_toggle_action_menu": "Abrir/fechar menu de ação", "action_bar_logo_alt": "nfty logo", "message_bar_publish": "Publicar mensagem", "nav_button_muted": "Notificações desabilitadas", "notifications_list_item": "Notificação", "notifications_mark_read": "Marcar como lido", "notifications_delete": "Excluir", "notifications_priority_x": "Prioridade {{priority}}", "notifications_new_indicator": "Nova notificação", "notifications_attachment_image": "Imagem anexada", "notifications_attachment_file_image": "Arquivo de imagem", "notifications_attachment_file_video": "Arquivo de vídeo", "notifications_attachment_file_audio": "Arquivo de áudio", "notifications_attachment_file_app": "Arquivo apk android", "notifications_attachment_file_document": "Outros documentos", "publish_dialog_click_reset": "Remover URL clicável", "prefs_users_table": "Tabela de usuários", "prefs_users_edit_button": "Editar usuário", "prefs_users_delete_button": "Excluir usuário", "error_boundary_unsupported_indexeddb_title": "Navegação anônima não suportada", "error_boundary_unsupported_indexeddb_description": "O ntfy web app precisa do IndexedDB para funcionar, e seu navegador não suporta IndexedDB no modo de navegação privada.

      Embora isso seja lamentável, também não faz muito sentido usar o ntfy web app no modo de navegação privada de qualquer maneira, porque tudo é armazenado no armazenamento do navegador. Você pode ler mais sobre isso nesta edição do GitHub, ou falar conosco em Discord ou Matrix.", "action_bar_reservation_add": "Reserve topic", "action_bar_reservation_edit": "Change reservation", "signup_disabled": "Registrar está desativado", "signup_error_username_taken": "Usuário {{username}} já existe", "signup_error_creation_limit_reached": "Limite de criação de contas atingido", "action_bar_reservation_delete": "Remover reserva", "action_bar_account": "Conta", "action_bar_change_display_name": "Change display name", "common_copy_to_clipboard": "Copiar para área de transferência", "login_link_signup": "Registrar", "login_title": "Entrar na sua conta ntfy", "login_form_button_submit": "Entrar", "login_disabled": "Login está desabilitado", "action_bar_reservation_limit_reached": "Limite atingido", "action_bar_profile_title": "Perfil", "action_bar_profile_settings": "Configurações", "action_bar_profile_logout": "Sair", "action_bar_sign_in": "Entrar", "action_bar_sign_up": "Registrar", "nav_button_account": "Conta", "signup_title": "Criar uma conta ntfy", "signup_form_username": "Usuário", "signup_form_password": "Senha", "signup_form_confirm_password": "Confirmar senha", "signup_form_button_submit": "Registrar", "account_basics_phone_numbers_title": "Telefones", "signup_form_toggle_password_visibility": "Ativar visibilidade de senha", "signup_already_have_account": "Já possui uma conta? Entrar!", "nav_upgrade_banner_label": "Atualizar para ntfy Pro", "account_basics_phone_numbers_dialog_description": "Para usar o recurso de notificação de chamada, é necessários adicionar e verificar pelo menos um número de telefone. A verificação pode ser feita por SMS ou chamada telefônica.", "account_basics_phone_numbers_description": "Para notificações de chamada telefônica", "account_basics_tier_interval_monthly": "mensal", "account_basics_tier_canceled_subscription": "Sua assinatura foi cancelada e será rebaixada para uma conta gratuita em {{date}}.", "account_basics_password_dialog_current_password_incorrect": "Senha incorreta", "account_basics_phone_numbers_dialog_number_label": "Número de telefone", "account_basics_password_dialog_button_submit": "Alterar senha", "reserve_dialog_checkbox_label": "Guardar tópico e configurar acesso", "account_basics_username_title": "Nome de usuário", "account_basics_phone_numbers_dialog_check_verification_button": "Confirmar código", "account_usage_attachment_storage_title": "Armazenamento de anexos", "account_usage_messages_title": "Mensagens publicadas", "account_basics_phone_numbers_dialog_verify_button_sms": "Enviar SMS", "account_basics_tier_change_button": "Mudar", "account_basics_tier_admin_suffix_with_tier": "(com nível {{tier}})", "account_basics_title": "Conta", "account_basics_phone_numbers_no_phone_numbers_yet": "Ainda não há números de telefone", "subscribe_dialog_subscribe_button_generate_topic_name": "Gerar nome", "display_name_dialog_description": "Defina um nome alternativo para o tópico exibido na lista de inscrições. Isso pode ajudar a identificar mais facilmente tópicos com nomes complicados.", "publish_dialog_chip_call_label": "Chamada telefônica", "account_basics_phone_numbers_dialog_title": "Adicionar número de telefone", "account_basics_username_admin_tooltip": "Você é Administrador", "account_usage_reservations_none": "Nenhum tópico reservado para esta conta", "account_usage_title": "Uso", "account_basics_tier_upgrade_button": "Atualizar para Pro", "subscribe_dialog_error_topic_already_reserved": "Tópico já reservado", "account_basics_tier_admin_suffix_no_tier": "(sem nível)", "account_basics_tier_payment_overdue": "O teu pagamento está atrasado. Por favor, atualize seu método de pagamento, ou sua conta será rebaixada em breve.", "account_basics_tier_description": "Nível de poder da sua conta", "account_basics_tier_free": "Grátis", "account_basics_tier_admin": "Administrador", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Nenhum número de telefone verificado", "account_basics_password_description": "Alterar a senha da sua conta", "publish_dialog_call_label": "Chamada telefônica", "account_usage_calls_title": "Chamadas de telefone feitas", "account_basics_tier_basic": "Básico", "alert_not_supported_context_description": "Notificações são suportadas apenas através de HTTPS. Esta é uma limitação da API de Notificações.", "account_basics_phone_numbers_copied_to_clipboard": "Número de telefone copiado para a área de transferência", "account_basics_tier_title": "Tipo de conta", "account_basics_phone_numbers_dialog_number_placeholder": "ex. +1222333444", "account_basics_phone_numbers_dialog_code_placeholder": "ex. 123456", "account_basics_tier_manage_billing_button": "Gerenciar faturamento", "account_basics_username_description": "Ei, é você ❤", "account_basics_password_dialog_confirm_password_label": "Confirmar senha", "account_basics_tier_interval_yearly": "anual", "account_basics_phone_numbers_dialog_channel_call": "Ligar", "account_basics_password_title": "Senha", "account_basics_password_dialog_new_password_label": "Nova senha", "display_name_dialog_placeholder": "Nome de exibição", "account_usage_of_limit": "de {{limit}}", "account_basics_password_dialog_title": "Alterar senha", "account_usage_limits_reset_daily": "Os limites de uso são redefinidos diariamente à meia-noite (UTC)", "account_usage_unlimited": "Ilimitado", "account_basics_password_dialog_current_password_label": "Senha atual", "account_usage_reservations_title": "Tópicos reservados", "account_usage_calls_none": "Nenhum telefonema pode ser feito com esta conta", "display_name_dialog_title": "Alterar o nome de exibição", "nav_upgrade_banner_description": "Guarde tópicos, mais mensagens & emails e anexos grandes", "publish_dialog_call_reset": "Remover chamada telefônica", "account_basics_phone_numbers_dialog_code_label": "Código de verificação", "account_basics_tier_paid_until": "Assinatura paga até {{date}}, será renovada automaticamente", "account_usage_attachment_storage_description": "{{filesize}} por arquivo, excluído após {{expiry}}", "account_basics_phone_numbers_dialog_verify_button_call": "Ligar pra mim", "publish_dialog_call_item": "Ligue para o número de telefone {{number}}", "account_usage_emails_title": "Emails enviados", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_delete_title": "Deletar conta", "account_delete_dialog_label": "Senha", "account_upgrade_dialog_interval_yearly": "Anual", "account_upgrade_dialog_title": "Alterar nível da conta", "alert_notification_ios_install_required_description": "Clique no ícone Compartilhar e adicione a tela inicial para ativar notificações no iOS", "account_delete_dialog_billing_warning": "Excluir sua conta também cancela imediatamente sua assinatura de cobrança. Você não terá mais acesso ao painel de faturamento.", "account_delete_dialog_description": "Isso excluirá permanentemente sua conta, incluindo todos os dados armazenados no servidor. Após a exclusão, seu nome de usuário ficará indisponível por 7 dias. Se você realmente deseja prosseguir, confirme sua senha na caixa abaixo.", "account_upgrade_dialog_proration_info": "Prorrogação: Ao atualizar entre planos pagos, a diferença de preço será cobrada imediatamente. Ao fazer downgrade para um nível inferior, o saldo será usado para pagar futuras cobranças.", "action_bar_mute_notifications": "Mutar notificações", "action_bar_unmute_notifications": "Desmutar notificações", "alert_notification_permission_denied_title": "Notificações estão bloqueadas", "alert_notification_permission_denied_description": "Por favor, reative elas no seu navegador", "alert_notification_ios_install_required_title": "Requer instalação no iOS", "notifications_actions_failed_notification": "Ação mal sucedida", "publish_dialog_checkbox_markdown": "Formatar como Markdown", "subscribe_dialog_subscribe_use_another_background_info": "Notificações de outros servidores não serão recebidas quando o web app não estiver aberto", "account_usage_basis_ip_description": "As estatísticas e limites de uso desta conta são baseados no seu endereço IP, portanto, podem ser compartilhados com outros usuários. Os limites mostrados acima são aproximados com base nos limites de taxa existentes.", "account_usage_cannot_create_portal_session": "Não foi possível abrir o portal de cobrança", "account_delete_description": "Deletar conta permanentemente", "account_delete_dialog_button_cancel": "Cancelar", "account_delete_dialog_button_submit": "Deletar conta permanentemente", "account_upgrade_dialog_interval_monthly": "Mensal", "account_upgrade_dialog_interval_yearly_discount_save": "desconto de {{discount}}%", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "desconto de até {{discount}}%", "account_upgrade_dialog_cancel_warning": "Isso cancelará sua assinatura e fará downgrade de sua conta em {{date}}. Nessa data, as reservas de tópicos, bem como as mensagens armazenadas em cache no servidor serão excluídas.", "account_upgrade_dialog_reservations_warning_one": "O nível selecionada permite menos tópicos reservados do que a camada atual. Antes de alterar seu nível, exclua pelo menos uma reserva. Você pode remover reservas nas Configurações", "account_upgrade_dialog_reservations_warning_other": "O plano selecionado permite menos tópicos reservados do que o seu plano atual. Antes de mudar seu plano, exclua por favor ao menos {{count}} reservas. Você pode remover reservas em Configurações.", "account_upgrade_dialog_tier_features_no_reservations": "Sem tópicos reservados", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} mensagen diária", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} email diário", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} tópico reservado", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} tópicos reservados", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} emails diários", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} mensagens diárias" } ntfy-2.11.0/web/public/static/langs/ro.json000066400000000000000000000201631462047176100205260ustar00rootroot00000000000000{ "action_bar_show_menu": "Afișează meniu", "action_bar_send_test_notification": "Trimite notificare de probă", "action_bar_clear_notifications": "Șterge toate notificările", "action_bar_settings": "Setări", "action_bar_unsubscribe": "Dezabonare", "action_bar_logo_alt": "logo-ul ntfy", "action_bar_toggle_mute": "Oprire/activare notificări", "message_bar_type_message": "Scrie un mesaj aici", "message_bar_error_publishing": "Eroare la publicarea notificării", "action_bar_profile_title": "Profil", "action_bar_profile_settings": "Setări", "nav_button_settings": "Setări", "nav_button_connecting": "conectare", "notifications_attachment_file_video": "fișier video", "publish_dialog_priority_default": "Prioritate default", "publish_dialog_priority_high": "Prioritate înaltă", "publish_dialog_priority_max": "Max. prioritate", "publish_dialog_message_placeholder": "Introdu un mesaj aici", "nav_button_subscribe": "Abonează-te la topic", "nav_upgrade_banner_label": "Upgrade la ntfy Pro", "nav_upgrade_banner_description": "Rezervă topic-uri, mai multe mesaje și email-uri, și atașamente mai mari", "common_back": "Înapoi", "nav_button_account": "Cont", "nav_button_documentation": "Documentație", "nav_button_publish_message": "Publică notificarea", "alert_notification_permission_required_title": "Notificările sunt dezactivate", "alert_notification_permission_required_button": "Permite acum", "alert_not_supported_title": "Notificările nu sunt acceptate", "alert_not_supported_description": "Notificările nu sunt acceptate în browser.", "alert_notification_permission_required_description": "Permite browser-ului să afișeze notificări.", "notifications_list": "Lista de notificări", "notifications_list_item": "Notificare", "notifications_mark_read": "Marchează ca citit", "notifications_delete": "Șterge", "notifications_copied_to_clipboard": "Copiat în clipboard", "notifications_tags": "Tag-uri", "notifications_new_indicator": "Notificare nouă", "notifications_attachment_image": "Imagine atașament", "notifications_attachment_copy_url_title": "Copiază URL-ul atașamentului în clipboard", "notifications_attachment_copy_url_button": "Copiază URL", "notifications_attachment_open_title": "Mergi la {{url}}", "notifications_attachment_link_expires": "link-ul expiră {{date}}", "notifications_actions_not_supported": "Acțiune neacceptată în aplicația web", "notifications_actions_http_request_title": "Trimite {{method}} HTTP la {{url}}", "notifications_none_for_topic_title": "N-ați primit încă notificări pe acest subiect.", "notifications_none_for_topic_description": "Pentru a trimite notificări pe acest subiect, setați PUT sau POST pe URL-ul subiectului.", "notifications_none_for_any_title": "N-ați primit nici o notificare.", "notifications_none_for_any_description": "Pentru a trimite notificări pe acest subiect, setează PUT sau POST pe URL-ul subiectului. Uite un exemplu cu unul dintre subiectele tale.", "notifications_no_subscriptions_title": "Se pare că nu ai nici o înscriere.", "notifications_no_subscriptions_description": "Click pe link-ul \"{{linktext}}\" ca sa creezi o înscriere la un subiect. După aceea, poți trimite mesaje via PUT sau POST și vei primi notificări aici.", "notifications_example": "Exemplu", "notifications_more_details": "Pentru mai multe informații, vezi site-ul web sau documentația.", "display_name_dialog_title": "Schimbă numele afișat", "display_name_dialog_description": "Setează un nume alternativ pentru subiect care este afișat în lista de înscrieri. Va ajuta la ușurarea identificării subiectelor cu nume complexe.", "display_name_dialog_placeholder": "Nume afișat", "reserve_dialog_checkbox_label": "Rezervă subiectul și configurează accesul", "publish_dialog_progress_uploading": "Încărcare…", "publish_dialog_progress_uploading_detail": "Încărcare {{loaded}}/{{total}} ({{percent}}%) …", "publish_dialog_message_published": "Notificare publicată", "publish_dialog_attachment_limits_file_and_quota_reached": "depășește {{fileSizeLimit}} limita fișierului și cota, {{remainingBytes}} mai rămân", "publish_dialog_attachment_limits_file_reached": "depășește {{fileSizeLimit}} limita fișierului", "publish_dialog_attachment_limits_quota_reached": "depășește cota, {{remainingBytes}} mai rămân", "publish_dialog_priority_min": "Min. prioritate", "publish_dialog_base_url_label": "URL serviciu", "publish_dialog_base_url_placeholder": "URL serviciu, ex: https://example.com", "publish_dialog_topic_label": "Nume subiect", "publish_dialog_topic_placeholder": "Nume subiect, ex: alerte_phil", "publish_dialog_topic_reset": "Resetare subiect", "publish_dialog_title_label": "Titlu", "publish_dialog_title_placeholder": "Titlu notificare, ex: Alerta spațiu disc", "publish_dialog_message_label": "Mesaj", "publish_dialog_tags_label": "Tag-uri", "publish_dialog_tags_placeholder": "Lista de tag-uri separate prin virgula, ex: avertizare,srv1-backup", "publish_dialog_priority_label": "Prioritate", "publish_dialog_click_label": "Click URL", "publish_dialog_click_placeholder": "URL deschis când notificarea este selectată", "publish_dialog_click_reset": "Șterge URL selecție", "publish_dialog_email_label": "E-mail", "signup_form_confirm_password": "Confirmă parola", "action_bar_account": "Cont", "action_bar_change_display_name": "Schimbă numele afișat", "action_bar_reservation_limit_reached": "Limita atinsă", "common_cancel": "Anulează", "common_save": "Salvează", "common_add": "Adaugă", "signup_form_password": "Parolă", "publish_dialog_title_topic": "Publică în {{topic}}", "publish_dialog_title_no_topic": "Publică notificare", "nav_button_all_notifications": "Toate notificările", "notifications_priority_x": "Prioritate {{priority}}", "notifications_attachment_file_image": "fișier imagine", "notifications_attachment_open_button": "Deschide atașament", "notifications_attachment_file_audio": "fișier audio", "notifications_actions_open_url_title": "Mergi la {{url}}", "notifications_attachment_file_document": "alt document", "notifications_attachment_link_expired": "link-ul de descărcare expirat", "notifications_attachment_file_app": "fișier aplicație Android", "notifications_click_copy_url_title": "Copiază URL-ul în clipboard", "notifications_click_copy_url_button": "Copiază link", "notifications_click_open_button": "Deschide link", "publish_dialog_emoji_picker_show": "Alege un emoji", "notifications_loading": "Încărcare notificări…", "publish_dialog_priority_low": "Prioritate joasă", "signup_form_username": "Nume de utilizator", "signup_form_button_submit": "Înscrie-te", "common_copy_to_clipboard": "Copiază în clipboard", "signup_form_toggle_password_visibility": "Schimbă vizibilitatea parolei", "signup_title": "Crează un cont ntfy", "signup_already_have_account": "Deja ai un cont? Autentifică-te!", "login_disabled": "Autentificarea este dezactivată", "signup_error_creation_limit_reached": "S-a atins limita de conturi", "action_bar_toggle_action_menu": "Deschide/Închide meniul de acțiuni", "action_bar_sign_up": "Înscriere", "message_bar_publish": "Publică mesajul", "login_link_signup": "Înscrie-te", "action_bar_sign_in": "Autentificare", "action_bar_reservation_edit": "Schimbă rezervarea", "action_bar_reservation_delete": "Șterge rezervarea", "login_form_button_submit": "Autentifică-te", "signup_disabled": "Înscrierea este dezactivată", "action_bar_profile_logout": "Ieșire", "message_bar_show_dialog": "Arată dialogul de publicare", "signup_error_username_taken": "Numele de utilizator {{username}} este deja folosit", "login_title": "Autentifică-te în contul ntfy", "action_bar_reservation_add": "Rezervă topicul" } ntfy-2.11.0/web/public/static/langs/ru.json000066400000000000000000001245461462047176100205460ustar00rootroot00000000000000{ "publish_dialog_priority_min": "Минимальный приоритет", "action_bar_settings": "Настройки", "action_bar_send_test_notification": "Отправить тестовое уведомление", "action_bar_clear_notifications": "Удалить все уведомления", "action_bar_unsubscribe": "Отписаться", "message_bar_type_message": "Введите сообщение здесь", "notifications_none_for_topic_description": "Чтобы отправить уведомление на данную тему, просто сделаете PUT или POST-запрос на URL-адрес этой темы.", "notifications_none_for_any_description": "Чтобы отправить уведомление на тему, просто сделаете PUT или POST-запрос на её URL-адрес. Вот пример с использованием одной из ваших тем.", "notifications_no_subscriptions_title": "Похоже, что у вас ещё нет подписок.", "alert_notification_permission_required_description": "Предоставьте браузеру разрешение на отображение уведомлений на рабочем столе", "notifications_no_subscriptions_description": "Нажмите на ссылку \"{{linktext}}\", чтобы создать или подписаться на тему. После этого Вы сможете отправлять сообщения используя PUT или POST-запросы и получать уведомления здесь.", "notifications_example": "Пример", "notifications_more_details": "Для более подробной информации, посетите наш сайт или документацию.", "notifications_loading": "Идет загрузка уведомлений …", "publish_dialog_title_topic": "Опубликовать в {{topic}}", "publish_dialog_title_no_topic": "Опубликовать уведомление", "publish_dialog_progress_uploading": "Идет загрузка …", "publish_dialog_progress_uploading_detail": "Загружается {{loaded}}/{{total}} ({{percent}}%) …", "publish_dialog_message_published": "Уведомление опубликовано", "publish_dialog_attachment_limits_file_and_quota_reached": "превышает максимальный размер файла {{fileSizeLimit}} и квоту, осталось {{remainingBytes}}", "publish_dialog_attachment_limits_file_reached": "превышает максимальный размер файла {{fileSizeLimit}}", "publish_dialog_attachment_limits_quota_reached": "превышает квоту, осталось {{remainingBytes}}", "publish_dialog_priority_low": "Низкий приоритет", "publish_dialog_priority_default": "Стандартный приоритет", "publish_dialog_priority_high": "Высокий приоритет", "publish_dialog_priority_max": "Максимальный приоритет", "publish_dialog_base_url_label": "URL-адрес сервиса", "publish_dialog_base_url_placeholder": "URL-адрес сервиса, например https://example.com", "publish_dialog_topic_label": "Название темы", "publish_dialog_topic_placeholder": "Название темы, например phil_alerts", "publish_dialog_title_label": "Заголовок", "publish_dialog_title_placeholder": "Заголовок уведомления, например Disk space alert", "publish_dialog_message_label": "Сообщение", "publish_dialog_message_placeholder": "Введите сообщение здесь", "publish_dialog_tags_label": "Тэги", "publish_dialog_tags_placeholder": "Список тэгов, разделённый запятой, например: warning, srv1-backup", "publish_dialog_priority_label": "Приоритет", "publish_dialog_click_label": "Ссылка при открытии", "publish_dialog_click_placeholder": "URL-адрес, который откроется при нажатии на уведомление", "publish_dialog_email_label": "Электронная почта", "message_bar_error_publishing": "Ошибка публикации уведомления", "alert_not_supported_title": "Уведомления не поддерживаются", "alert_not_supported_description": "Уведомления не поддерживаются в вашем браузере", "notifications_copied_to_clipboard": "Скопировано в буфер обмена", "notifications_attachment_open_button": "Открыть вложение", "notifications_none_for_topic_title": "Вы ещё не получали уведомления для этой темы.", "nav_topics_title": "Подписки на темы", "nav_button_all_notifications": "Все уведомления", "nav_button_settings": "Настройки", "nav_button_documentation": "Документация", "nav_button_publish_message": "Опубликовать уведомление", "nav_button_subscribe": "Подписаться на тему", "alert_notification_permission_required_button": "Разрешить", "notifications_attachment_copy_url_button": "Скопировать URL-адрес", "notifications_attachment_open_title": "Перейти на {{url}}", "notifications_attachment_link_expired": "срок действия ссылки для скачивания истёк", "notifications_click_copy_url_button": "Скопировать ссылку", "notifications_none_for_any_title": "Вы ещё не получали никаких уведомлений.", "alert_notification_permission_required_title": "Уведомления отключены", "notifications_attachment_copy_url_title": "Скопировать URL-адрес вложения", "notifications_actions_open_url_title": "Перейти на {{url}}", "notifications_tags": "Тэги", "notifications_attachment_link_expires": "срок действия ссылки истекает {{date}}", "notifications_click_copy_url_title": "Скопировать URL-адрес ссылки", "notifications_click_open_button": "Открыть ссылку", "subscribe_dialog_subscribe_title": "Подписаться на тему", "publish_dialog_button_cancel": "Отмена", "subscribe_dialog_subscribe_description": "Темы могут быть не защищены паролем, поэтому укажите сложное имя. После подписки Вы сможете отправлять уведомления используя PUT/POST-запросы.", "prefs_users_description": "Добавляйте/удаляйте пользователей для защищенных тем. Обратите внимание, что имя пользователя и пароль хранятся в локальном хранилище браузера.", "error_boundary_description": "Это не должно было случиться. Нам очень жаль.
      Если Вы можете уделить минуту своего времени, пожалуйста сообщите об этом на GitHub, или дайте нам знать через Discord или Matrix.", "publish_dialog_email_placeholder": "Адрес для пересылки уведомления. Например, phil@example.com", "publish_dialog_attach_placeholder": "Прикрепите файл по URL. Например, https://f-droid.org/F-Droid.apk", "publish_dialog_filename_label": "Имя файла", "publish_dialog_delay_label": "Задержка", "publish_dialog_delay_placeholder": "Задержка доставки. Например, {{unixTimestamp}}, {{relativeTime}}, или \"{{naturalLanguage}}\" (только по-английски)", "publish_dialog_chip_click_label": "URL-адрес при нажатии", "publish_dialog_chip_email_label": "Переслать на электронную почту", "publish_dialog_chip_attach_url_label": "Прикрепить файл по URL", "publish_dialog_chip_attach_file_label": "Прикрепить локальный файл", "publish_dialog_chip_delay_label": "Задержать доставку", "publish_dialog_chip_topic_label": "Изменить тему", "publish_dialog_details_examples_description": "Примеры и подробное описание всех функций смотрите в документации.", "publish_dialog_attach_label": "URL-адрес вложения", "publish_dialog_filename_placeholder": "Имя файла вложения", "publish_dialog_other_features": "Другие возможности:", "publish_dialog_button_cancel_sending": "Отменить отправку", "publish_dialog_button_send": "Отправить", "publish_dialog_checkbox_publish_another": "Опубликовать еще", "publish_dialog_attached_file_title": "Прикреплённый файл:", "publish_dialog_attached_file_filename_placeholder": "Имя прикреплённого файла", "emoji_picker_search_placeholder": "Поиск смайликов", "subscribe_dialog_subscribe_topic_placeholder": "Название темы. Например, phil_alerts", "subscribe_dialog_subscribe_use_another_label": "Использовать другой сервер", "subscribe_dialog_subscribe_button_cancel": "Отмена", "subscribe_dialog_subscribe_button_subscribe": "Подписаться", "subscribe_dialog_login_title": "Требуется авторизация", "subscribe_dialog_login_description": "Эта тема защищена паролем. Пожалуйста, введите имя пользователя и пароль, чтобы подписаться.", "subscribe_dialog_login_username_label": "Имя пользователя. Например, phil", "subscribe_dialog_login_password_label": "Пароль", "common_back": "Назад", "subscribe_dialog_login_button_login": "Войти", "subscribe_dialog_error_user_not_authorized": "Пользователь {{username}} не авторизован", "subscribe_dialog_error_user_anonymous": "анонимный пользователь", "prefs_notifications_title": "Уведомления", "prefs_notifications_sound_title": "Звук уведомления", "prefs_notifications_sound_description_none": "Уведомления не воспроизводят никаких звуков при получении", "prefs_notifications_sound_no_sound": "Без звука", "prefs_notifications_min_priority_title": "Минимальный приоритет", "prefs_notifications_min_priority_description_any": "Показывать все уведомления, независимо от приоритета", "prefs_notifications_min_priority_description_x_or_higher": "Показывать уведомления, если приоритет {{number}} ({{name}}) или выше", "prefs_notifications_min_priority_description_max": "Показывать уведомления, если приоритет равен 5 (максимальный)", "prefs_notifications_min_priority_any": "Любой приоритет", "prefs_notifications_min_priority_low_and_higher": "Низкий приоритет и выше", "prefs_notifications_min_priority_max_only": "Только максимальный приоритет", "prefs_notifications_delete_after_title": "Удалить уведомления", "prefs_notifications_delete_after_never": "Никогда", "prefs_notifications_delete_after_three_hours": "Через три часа", "prefs_notifications_sound_description_some": "Уведомления воспроизводят звук {{sound}}", "prefs_notifications_min_priority_default_and_higher": "Стандартный приоритет и выше", "prefs_notifications_delete_after_one_day": "Через день", "prefs_notifications_delete_after_one_week": "Через неделю", "prefs_notifications_delete_after_one_month": "Через месяц", "prefs_notifications_delete_after_never_description": "Уведомления никогда не удаляются автоматически", "prefs_notifications_delete_after_three_hours_description": "Уведомления автоматически удаляются через три часа", "prefs_notifications_delete_after_one_day_description": "Уведомления автоматически удаляются через один день", "prefs_notifications_delete_after_one_week_description": "Уведомления автоматически удаляются через неделю", "prefs_notifications_delete_after_one_month_description": "Уведомления автоматически удаляются через месяц", "prefs_users_title": "Управление пользователями", "prefs_users_add_button": "Добавить пользователя", "prefs_users_table_user_header": "Пользователь", "prefs_users_table_base_url_header": "URL сервера", "prefs_users_dialog_title_add": "Добавить пользователя", "prefs_users_dialog_title_edit": "Редактировать пользователя", "prefs_users_dialog_base_url_label": "URL-адрес сервера. Например, https://ntfy.sh", "prefs_users_dialog_username_label": "Имя пользователя. Например, phil", "prefs_users_dialog_password_label": "Пароль", "common_cancel": "Отмена", "common_add": "Добавить", "common_save": "Сохранить", "prefs_appearance_title": "Внешний вид", "prefs_appearance_language_title": "Язык", "priority_min": "минимальный", "priority_low": "низкий", "priority_default": "стандартный", "priority_high": "высокий", "priority_max": "максимальный", "error_boundary_title": "О нет, ntfy сломался", "error_boundary_button_copy_stack_trace": "Скопировать трассировку стека", "error_boundary_stack_trace": "Трассировка стека", "error_boundary_gathering_info": "Идет сбор дополнительной информации …", "publish_dialog_drop_file_here": "Перетащите файл сюда", "prefs_notifications_min_priority_high_and_higher": "Высокий приоритет и выше", "action_bar_toggle_action_menu": "Открыть/закрыть меню", "action_bar_show_menu": "Показать меню", "action_bar_logo_alt": "Логотип ntfy", "emoji_picker_search_clear": "Сбросить поиск", "account_upgrade_dialog_cancel_warning": "Это действие отменит Вашу подписку и переведет Вашую учетную запись на бесплатное обслуживание {{date}}. При наступлении этой даты, все резервирования и сообщения в кэше будут удалены.", "account_tokens_table_create_token_button": "Создать токен доступа", "account_tokens_table_last_origin_tooltip": "с IP-адреса {{ip}}, нажмите для подробностей", "account_tokens_dialog_title_edit": "Изменить токен доступа", "account_delete_dialog_button_cancel": "Отмена", "account_delete_dialog_billing_warning": "Удаление учетной записи также отменяет все платные подписки. У Вас не будет доступа к порталу оплаты.", "account_delete_dialog_description": "Это действие безвозвратно удалит Вашу учетную запись, включая все Ваши данные хранящиеся на сервере. После удаления, Ваше имя пользователя не будет доступно для регистрации в течении 7 дней. Если Вы действительно хотите продолжить, пожалуйста введите Ваш пароль ниже.", "account_delete_dialog_label": "Пароль", "reservation_delete_dialog_action_keep_description": "Сообщения и вложения которые находятся в кэше сервера станут доступны всем, кто знает имя темы.", "prefs_reservations_table": "Список зарезервированных тем", "prefs_reservations_table_access_header": "Доступ", "prefs_reservations_table_everyone_write_only": "Я могу публиковать и подписываться, все остальные могут публиковать", "prefs_reservations_dialog_description": "Резервирование дает Вам возможность управлять темой и настраивать правила доступа к ней для пользователей.", "reservation_delete_dialog_action_delete_title": "Удалить сообщения в кэше и вложения", "reservation_delete_dialog_action_delete_description": "Сообщения в кэше и вложения будут безвозвратно удалены. Это действие невозможно отменить.", "prefs_reservations_table_not_subscribed": "Не подписан", "prefs_reservations_table_everyone_deny_all": "Только я могу публиковать и подписываться", "prefs_reservations_table_everyone_read_write": "Все могут публиковать и подписываться", "prefs_reservations_table_click_to_subscribe": "Нажмите чтобы подписаться", "prefs_reservations_dialog_title_add": "Зарезервировать тему", "prefs_reservations_dialog_title_delete": "Удалить резервирование", "prefs_reservations_dialog_title_edit": "Изменение резервированной темы", "prefs_reservations_table_topic_header": "Тема", "prefs_users_description_no_sync": "Пользователи и пароли не синхронизируются с Вашей учетной записью.", "prefs_users_delete_button": "Удалить пользователя", "prefs_users_table_cannot_delete_or_edit": "Невозможно удалить или редактировать залогиненного пользователя", "account_upgrade_dialog_reservations_warning_one": "Выбранная подписка разрешает меньше зарезервированных тем, чем есть у Вас на данный момент. Перед сменой подписки, пожалуйста удалите хотя бы одну зарезервированную тему. Вы можете это сделать в Настройках.", "account_upgrade_dialog_proration_info": "Пересчёт оплаты: при расширении подписки, разница в цене от текущей спишется сразу. При упрощении подписки, неиспользованные средства пойдут в оплату баланса по следующим счетам.", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} на файл", "account_tokens_table_never_expires": "Никогда", "account_tokens_table_copied_to_clipboard": "Токен доступа скопирован", "account_tokens_table_cannot_delete_or_edit": "Невозможно изменить или удалить токен текущего сеанса", "account_tokens_delete_dialog_description": "Перед удалением токена доступа, убедитесь что он не используется приложениями и скриптами. Это действие невозможно отменить.", "error_boundary_unsupported_indexeddb_title": "Работа в приватном режиме не поддерживается", "account_tokens_dialog_button_create": "Создать токен", "account_tokens_delete_dialog_submit_button": "Безвозвратно удалить токен", "account_upgrade_dialog_reservations_warning_other": "Выбранная подписка разрешает меньше зарезервированных тем, чем есть у Вас на данный момент. Перед сменой подписки, пожалуйста удалите хотя бы {{count}} зарезервированных тем. Вы можете это сделать в Настройках.", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} сообщений в день", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} суммарный объем", "account_upgrade_dialog_tier_selected_label": "Выбранная", "account_tokens_table_current_session": "Текущий сеанс браузера", "account_tokens_dialog_button_update": "Изменить токен", "account_tokens_dialog_expires_label": "Токен доступа истекает", "account_tokens_dialog_expires_x_hours": "Токен истекает через {{hours}} часов", "account_tokens_dialog_expires_never": "Токен никогда не истекает", "prefs_notifications_sound_play": "Воспроизводить выбранный звук", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} зарезервированных тем", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} эл. сообщений в день", "account_basics_tier_free": "Бесплатный", "account_tokens_dialog_title_create": "Создать токен доступа", "account_tokens_dialog_title_delete": "Удалить токен доступа", "common_copy_to_clipboard": "Скопировать в буфер обмена", "account_tokens_dialog_button_cancel": "Отмена", "account_tokens_dialog_expires_unchanged": "Оставить срок истечения без изменений", "account_tokens_dialog_expires_x_days": "Токен истекает через {{days}} дней", "account_tokens_delete_dialog_title": "Удалить токен доступа", "prefs_users_table": "Список пользоваетелй", "account_upgrade_dialog_tier_current_label": "Текущая", "account_upgrade_dialog_button_cancel": "Отмена", "prefs_users_edit_button": "Редактировать пользователя", "account_basics_tier_upgrade_button": "Подписаться на Pro", "account_basics_tier_paid_until": "Подписка оплачена до {{date}} и будет продляться автоматически", "account_basics_tier_change_button": "Изменить", "account_delete_dialog_button_submit": "Безвозвратно удалить учетную запись", "account_upgrade_dialog_title": "Изменить уровень учетной записи", "account_usage_basis_ip_description": "Статистика и ограничения на использование учитываются по IP-адресу, поэтому они могут совмещаться с другими пользователями. Уровни, указанные выше, примерно соответствуют текущим ограничениям.", "publish_dialog_topic_reset": "Сбросить тему", "account_basics_tier_admin_suffix_no_tier": "(без подписки)", "prefs_reservations_dialog_topic_label": "Тема", "signup_form_username": "Имя пользователя", "signup_form_password": "Пароль", "signup_form_confirm_password": "Подтвердите пароль", "signup_form_button_submit": "Зарегистрироваться", "signup_form_toggle_password_visibility": "Показать/скрыть пароль", "signup_disabled": "Регистрация недоступна", "signup_error_username_taken": "Имя пользователя {{username}} уже занято", "signup_title": "Создать учетную запись ntfy", "signup_already_have_account": "Уже есть учетная запись? Войдите!", "signup_error_creation_limit_reached": "Лимит на создание учетных записей исчерпан", "login_form_button_submit": "Вход", "login_link_signup": "Регистрация", "login_disabled": "Вход недоступен", "action_bar_reservation_add": "Зарезервировать тему", "action_bar_reservation_edit": "Изменить резервирование", "action_bar_reservation_delete": "Удалить резервирование", "action_bar_profile_title": "Профиль", "action_bar_profile_settings": "Настройки", "action_bar_profile_logout": "Выход", "action_bar_sign_in": "Вход", "action_bar_sign_up": "Регистрация", "action_bar_change_display_name": "Изменить псевдоним", "message_bar_publish": "Опубликовать сообщение", "nav_button_muted": "Уведомления заглушены", "nav_button_connecting": "установка соединения", "action_bar_account": "Учетная запись", "login_title": "Вход в Вашу учетную запись ntfy", "action_bar_reservation_limit_reached": "Лимит исчерпан", "action_bar_toggle_mute": "Заглушить/разрешить уведомления", "nav_button_account": "Учетная запись", "nav_upgrade_banner_label": "Купить подписку ntfy Pro", "message_bar_show_dialog": "Открыть диалог публикации", "notifications_list": "Список уведомлений", "notifications_list_item": "Уведомление", "notifications_mark_read": "Пометить как прочитанное", "notifications_priority_x": "Приоритет {{priority}}", "notifications_attachment_image": "Приложенное изображение", "notifications_attachment_file_audio": "звуковой файл", "notifications_attachment_file_video": "видео файл", "notifications_attachment_file_image": "графический файл", "notifications_attachment_file_app": "Исполняемый файл Android", "notifications_attachment_file_document": "другой тип файла", "notifications_actions_not_supported": "Действие не поддерживается в веб-приложении", "display_name_dialog_title": "Изменить псевдоним", "display_name_dialog_description": "Создайте псевдоним для темы, который будет отображаться в списке Ваших подписок. Это помогает легче находить темы со сложными именами.", "reserve_dialog_checkbox_label": "Зарезервировать тему и настроить доступ", "publish_dialog_emoji_picker_show": "Выбрать смайлик", "publish_dialog_click_reset": "Удалить ссылку", "publish_dialog_email_reset": "Удалить адрес для пересылки", "publish_dialog_attach_reset": "Удалить URL-адрес вложения", "publish_dialog_delay_reset": "Удалить задержку доставки", "publish_dialog_attached_file_remove": "Удалить прикреплённый файл", "subscribe_dialog_subscribe_base_url_label": "URL-адрес сервера", "subscribe_dialog_subscribe_button_generate_topic_name": "Сгенерировать случайное имя", "subscribe_dialog_error_topic_already_reserved": "Тема уже зарезервирована", "account_basics_title": "Учетная запись", "account_basics_username_title": "Имя пользователя", "account_basics_username_admin_tooltip": "Вы Администратор", "account_basics_password_title": "Пароль", "account_basics_username_description": "Это Вы! :)", "account_basics_password_description": "Смена пароля учетной записи", "account_basics_password_dialog_title": "Смена пароля", "account_basics_password_dialog_current_password_label": "Текущий пароль", "account_basics_password_dialog_current_password_incorrect": "Введен неверный пароль", "account_usage_title": "Использование", "account_usage_of_limit": "из {{limit}}", "account_usage_unlimited": "Неограниченно", "account_usage_limits_reset_daily": "Ограничения сбрасываются ежедневно в полночь (UTC)", "account_basics_tier_description": "Уровень Вашей учетной записи", "account_basics_tier_admin": "Администратор", "account_basics_tier_admin_suffix_with_tier": "(с {{tier}} подпиской)", "account_basics_tier_payment_overdue": "У Вас задолженность по оплате. Пожалуйста проверьте метод оплаты, иначе Вы скоро потеряете преимущества Вашей подписки.", "account_basics_tier_canceled_subscription": "Ваша подписка была отменена; учетная запись перейдет на бесплатное обслуживание {{date}}.", "account_basics_tier_manage_billing_button": "Управление оплатой", "account_usage_messages_title": "Опубликованные сообщения", "account_usage_emails_title": "Отправленные электронные сообщения", "account_usage_reservations_title": "Зарезервированные темы", "account_usage_reservations_none": "Нет зарезервированных тем", "account_usage_attachment_storage_title": "Хранение вложений", "account_usage_attachment_storage_description": "{{filesize}} за файл, удаляются спустя {{expiry}}", "account_usage_cannot_create_portal_session": "Невозможно открыть портал оплаты", "account_delete_title": "Удалить учетную запись", "account_delete_description": "Безвозвратно удалить Вашу учетную запись", "account_upgrade_dialog_button_redirect_signup": "Зарегистрироваться", "account_upgrade_dialog_button_pay_now": "Оплатить и подписаться", "account_upgrade_dialog_button_cancel_subscription": "Отменить подписку", "account_upgrade_dialog_button_update_subscription": "Изменить подписку", "account_tokens_title": "Токены доступа", "account_tokens_description": "Используйте токены доступа для публикации и подписки через ntfy API чтобы не пересылать данные Вашей учетной записи. Смотрите документацию чтобы узнать больше.", "account_tokens_table_token_header": "Токен", "account_tokens_table_label_header": "Название", "account_tokens_table_last_access_header": "Последний доступ", "account_tokens_table_expires_header": "Истекает", "account_tokens_dialog_label": "Название, например Radarr notifications", "prefs_reservations_title": "Зарезервированные темы", "prefs_reservations_description": "Здесь Вы можете резервировать темы для личного пользования. Резервирование дает Вам возможность управлять темой и настраивать правила доступа к ней для пользователей.", "prefs_reservations_limit_reached": "Вы исчерпали Ваш лимит на количество зарезервированных тем.", "prefs_reservations_add_button": "Добавить тему", "prefs_reservations_edit_button": "Настройка доступа", "prefs_reservations_delete_button": "Сбросить правила доступа", "prefs_reservations_table_everyone_read_only": "Я могу публиковать и подписываться, все остальные могут подписываться", "prefs_reservations_dialog_access_label": "Доступ", "reservation_delete_dialog_description": "Удаление резервирования дает возможность зарезервировать эту тему другим. Вы можете оставить или удалить существующие сообщения и вложения.", "reservation_delete_dialog_action_keep_title": "Сохранить сообщения в кэше и вложения", "reservation_delete_dialog_submit_button": "Удалить резервирование", "account_basics_tier_basic": "Базовый", "nav_upgrade_banner_description": "Зарезервированные темы, больше сообщений и электронных писем, а также вложения большего размера", "alert_not_supported_context_description": "Уведомления поддерживаются только по протоколу HTTPS. Это ограничение Notifications API.", "notifications_delete": "Удалить", "notifications_new_indicator": "Новое уведомление", "notifications_actions_http_request_title": "Отправить HTTP {{method}}-запрос на {{url}}", "display_name_dialog_placeholder": "Псевдоним", "account_basics_password_dialog_new_password_label": "Новый пароль", "account_basics_password_dialog_confirm_password_label": "Подтвердите пароль", "account_basics_password_dialog_button_submit": "Сменить пароль", "account_basics_tier_title": "Тип учетной записи", "error_boundary_unsupported_indexeddb_description": "Веб-приложение ntfy использует IndexedDB, который не поддерживается Вашим браузером в приватном режиме.

      Хотя это и не лучший вариант, использовать веб-приложение ntfy в приватном режиме не имеет особого смысла, так как все данные храняться в локальном хранилище браузера. Вы можете узнать больше в этом отчете на GitHub или связавшись с нами через Discord или Matrix.", "account_basics_tier_interval_monthly": "ежемесячно", "account_basics_tier_interval_yearly": "ежегодно", "account_upgrade_dialog_interval_yearly": "Ежегодно", "account_upgrade_dialog_interval_yearly_discount_save": "скидка {{discount}}%", "account_upgrade_dialog_interval_monthly": "Ежемесячно", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "скидка до {{discount}}%", "account_upgrade_dialog_tier_features_no_reservations": "Нет зарезервированных тем", "account_upgrade_dialog_tier_price_per_month": "в месяц", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} в год. Оплата помесячно.", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} ежегодно. Сэкономьте {{save}}.", "account_upgrade_dialog_billing_contact_email": "По вопросам оплаты, пожалуйста свяжитесь с нами.", "account_upgrade_dialog_billing_contact_website": "По вопросам оплаты, пожалуйста обратитесь к нашему сайту.", "publish_dialog_call_reset": "Удалить вызов", "account_basics_phone_numbers_dialog_description": "Для того что бы использовать возможность уведомлений о вызовах, нужно добавить и проверить хотя бы один номер телефона. Проверить можно используя SMS или звонок.", "account_basics_phone_numbers_dialog_title": "Добавить номер телефона", "account_basics_phone_numbers_dialog_number_placeholder": "например +1222333444", "account_basics_phone_numbers_dialog_code_placeholder": "например 123456", "account_basics_phone_numbers_dialog_verify_button_sms": "Отправить SMS", "account_usage_calls_title": "Совершённые вызовы", "account_usage_calls_none": "Невозможно совершать вызовы с этим аккаунтом", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Нет проверенных номеров", "account_basics_phone_numbers_copied_to_clipboard": "Номер телефона скопирован в буфер обмена", "account_upgrade_dialog_tier_features_no_calls": "Нет вызовов", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} ежедневный звонок", "account_basics_phone_numbers_dialog_number_label": "Номер телефона", "account_basics_phone_numbers_dialog_check_verification_button": "Подтвердить код", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} ежедневных звонков", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} зарезервированная тема", "account_basics_phone_numbers_no_phone_numbers_yet": "Телефонных номеров пока нет", "publish_dialog_chip_call_label": "Звонок", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} ежедневное письмо", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} ежедневное сообщения", "account_basics_phone_numbers_description": "Для уведомлений о телефонных звонках", "publish_dialog_call_label": "Звонок", "account_basics_phone_numbers_dialog_channel_call": "Позвонить", "account_basics_phone_numbers_title": "Номера телефонов", "account_basics_phone_numbers_dialog_code_label": "Проверочный код", "account_basics_phone_numbers_dialog_verify_button_call": "Позвонить мне", "publish_dialog_call_item": "Вызов телефонного номера {{number}}", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "action_bar_mute_notifications": "Заглушить уведомления", "action_bar_unmute_notifications": "Разрешить уведомления", "alert_notification_permission_denied_title": "Уведомления заблокированы", "alert_notification_permission_denied_description": "Пожалуйста, разрешите их в своём браузере", "alert_notification_ios_install_required_title": "iOS требует установку", "alert_notification_ios_install_required_description": "Нажмите на значок \"Поделиться\" и \"Добавить на главный экран\", чтобы включить уведомления на iOS", "error_boundary_button_reload_ntfy": "Перезагрузить ntfy", "web_push_subscription_expiring_title": "Уведомления будут приостановлены", "web_push_subscription_expiring_body": "Откройте ntfy, чтобы продолжать получать уведомления", "web_push_unknown_notification_title": "Получено неизвестное уведомление от сервера", "web_push_unknown_notification_body": "Вам может потребоваться обновить ntfy, для этого откройте веб-приложение", "prefs_notifications_web_push_title": "Фоновые уведомления", "prefs_notifications_web_push_enabled_description": "Уведомления приходят даже когда веб-приложение не запущено (через Web Push)", "prefs_notifications_web_push_disabled_description": "Уведомления приходят, когда веб-приложение запущено (через WebSocket)", "prefs_appearance_theme_title": "Тема", "prefs_notifications_web_push_enabled": "Включено для {{server}}", "prefs_notifications_web_push_disabled": "Выключено", "notifications_actions_failed_notification": "Неудачное действие", "publish_dialog_checkbox_markdown": "Форматировать как Markdown", "subscribe_dialog_subscribe_use_another_background_info": "Уведомления с других серверов не будут получены, когда веб-приложение не открыто", "prefs_appearance_theme_system": "Системный (по умолчанию)", "prefs_appearance_theme_dark": "Ночной режим", "prefs_appearance_theme_light": "Дневной режим" } ntfy-2.11.0/web/public/static/langs/sk.json000066400000000000000000001016271462047176100205300ustar00rootroot00000000000000{ "common_save": "Uložiť", "common_back": "Späť", "common_copy_to_clipboard": "Kopírovať do schránky", "signup_title": "Vytvoriť ntfy účet", "signup_form_username": "Používateľské meno", "signup_form_confirm_password": "Potvrdenie hesla", "signup_form_button_submit": "Zaregistrovať sa", "signup_form_toggle_password_visibility": "Prepnúť viditeľnosť hesla", "signup_error_username_taken": "Používateľské meno {{username}} je už obsadené", "login_form_button_submit": "Prihlásiť sa", "login_disabled": "Prihlásenie je zakázané", "action_bar_logo_alt": "ntfy logo", "action_bar_settings": "Nastavenia", "action_bar_account": "Účet", "action_bar_sign_in": "Prihlásiť sa", "action_bar_profile_settings": "Nastavenia", "action_bar_reservation_edit": "Zmeniť rezerváciu", "action_bar_unsubscribe": "Odhlásiť odber", "action_bar_toggle_mute": "Stlmiť/zrušiť stlmenie upozornení", "action_bar_toggle_action_menu": "Otvoriť/zavrieť akčné menu", "action_bar_profile_title": "Profil", "nav_button_settings": "Nastavenia", "nav_button_account": "Účet", "message_bar_show_dialog": "Zobraziť okno pre odosielanie oznámení", "message_bar_publish": "Zverejniť správu", "nav_topics_title": "Odoberané témy", "nav_button_all_notifications": "Všetky oznámenia", "alert_grant_description": "Udeliť prehliadaču povolenie na zobrazovanie oznámení na ploche.", "alert_not_supported_context_description": "Oznámenia sú podporované len cez HTTPS. Ide o obmedzenie rozhrania Notifications API.", "notifications_list": "Zoznam oznámení", "notifications_list_item": "Oznámenie", "notifications_mark_read": "Označiť ako prečítané", "notifications_delete": "Zmazať", "notifications_copied_to_clipboard": "Skopírované do schránky", "notifications_tags": "Štítky", "notifications_priority_x": "Priorita {{priority}}", "notifications_new_indicator": "Nové oznámenie", "notifications_attachment_image": "Obrázok prílohy", "notifications_attachment_link_expired": "odkaz na stiahnutie vypršal", "notifications_attachment_file_image": "súbor s obrázkom", "notifications_attachment_file_video": "video súbor", "notifications_attachment_file_audio": "zvukový súbor", "notifications_attachment_file_app": "Súbor aplikácie pre Android", "notifications_attachment_file_document": "iný dokument", "notifications_click_copy_url_title": "Skopírovať URL adresu odkazu do schránky", "notifications_click_copy_url_button": "Kopírovať odkaz", "notifications_click_open_button": "Otvoriť odkaz", "notifications_actions_not_supported": "Akcia nie je podporovaná vo webovej aplikácii", "notifications_none_for_topic_title": "K tejto téme ste zatiaľ nedostali žiadne upozornenia.", "notifications_none_for_any_title": "Nedostali ste žiadne upozornenia.", "notifications_none_for_any_description": "Ak chcete posielať oznámenia do témy, jednoducho zadajte adresu PUT alebo POST na adresu URL témy. Tu je príklad s použitím jednej z vašich tém.", "notifications_no_subscriptions_title": "Zdá sa, že zatiaľ nemáte žiadne prihlásenia na odber.", "display_name_dialog_title": "Zmeniť zobrazovaný názov", "notifications_no_subscriptions_description": "Kliknutím na odkaz \"{{text odkazu}}\" vytvoríte tému alebo sa na ňu prihlásite. Potom môžete posielať správy prostredníctvom PUT alebo POST a budete tu dostávať oznámenia.", "notifications_example": "Príklad", "notifications_more_details": "Ďalšie informácie nájdete na webovej stránke alebo v dokumentácií.", "display_name_dialog_placeholder": "Zobrazený názov", "reserve_dialog_checkbox_label": "Rezervovať tému a nakonfigurovať prístup", "notifications_loading": "Načítavanie oznámení …", "publish_dialog_title_no_topic": "Zverejniť oznámenie", "publish_dialog_title_topic": "Zverejniť v {{topic}}", "publish_dialog_progress_uploading": "Nahrávanie…", "publish_dialog_progress_uploading_detail": "Nahrávanie {{loaded}}/{{total}} ({{percent}}%) …", "publish_dialog_message_published": "Oznámenie zverejnené", "publish_dialog_attachment_limits_file_and_quota_reached": "prekročí {{fileSizeLimit}} limit súboru a kvótu, {{remainingBytes}} zostáva", "publish_dialog_attachment_limits_file_reached": "prekračuje {{fileSizeLimit}} limit súboru", "publish_dialog_attachment_limits_quota_reached": "prekračuje kvótu, {{remainingBytes}} zostáva", "publish_dialog_emoji_picker_show": "Vyberte emoji", "publish_dialog_priority_min": "Min. priorita", "publish_dialog_priority_low": "Nízka priorita", "publish_dialog_priority_default": "Predvolená priorita", "publish_dialog_priority_high": "Vysoká priorita", "publish_dialog_priority_max": "Max. priorita", "publish_dialog_base_url_label": "URL Adresa služby", "publish_dialog_base_url_placeholder": "URL adresa služby, napr. https://example.com", "publish_dialog_topic_label": "Názov témy", "publish_dialog_topic_placeholder": "Názov témy, napr. phil_alerts", "publish_dialog_topic_reset": "Resetovať tému", "publish_dialog_title_label": "Názov", "publish_dialog_title_placeholder": "Názov oznámenia, napr. Upozornenie na miesto na disku", "publish_dialog_tags_label": "Štítky", "publish_dialog_message_label": "Správa", "publish_dialog_priority_label": "Priorita", "publish_dialog_click_label": "Kliknite na URL", "publish_dialog_click_placeholder": "URL adresa sa otvorí po kliknutí na oznámenie", "publish_dialog_email_label": "Email", "publish_dialog_email_placeholder": "Emailová adresa, na ktorú sa má oznámenie zaslať, napr. phil@example.com", "publish_dialog_call_label": "Telefonovať", "publish_dialog_call_item": "Zavolať na telefónne číslo {{number}}", "publish_dialog_call_reset": "Odstrániť telefón", "publish_dialog_attach_label": "URL prílohy", "publish_dialog_attach_reset": "Odstrániť URL prílohy", "publish_dialog_filename_label": "Názov súboru", "publish_dialog_filename_placeholder": "Názov súboru prílohy", "publish_dialog_delay_label": "Oneskorenie", "publish_dialog_delay_placeholder": "Oneskorenie doručenia, napr. {{unixTimestamp}}, {{relativeTime}} alebo \"{{naturalLanguage}}\" (len v angličtine)", "publish_dialog_delay_reset": "Odstrániť oneskorené doručenie", "publish_dialog_chip_call_label": "Telefonovať", "publish_dialog_other_features": "Ďalšie funkcie:", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Žiadne overené telefónne čísla", "publish_dialog_chip_attach_url_label": "Pripojiť súbor pomocou adresy URL", "publish_dialog_chip_delay_label": "Oneskoriť doručenie", "publish_dialog_chip_topic_label": "Zmeniť tému", "publish_dialog_button_cancel_sending": "Zrušiť odosielanie", "publish_dialog_button_send": "Odoslať", "publish_dialog_checkbox_publish_another": "Zverejniť ďalšie", "publish_dialog_attached_file_title": "Priložený súbor:", "subscribe_dialog_subscribe_button_cancel": "Zrušiť", "subscribe_dialog_subscribe_title": "Odoberať tému", "subscribe_dialog_subscribe_base_url_label": "URL Adresa služby", "subscribe_dialog_subscribe_topic_placeholder": "Názov témy, napr. phil_alerts", "publish_dialog_attached_file_filename_placeholder": "Názov súboru prílohy", "publish_dialog_attached_file_remove": "Odstrániť priložený súbor", "publish_dialog_drop_file_here": "Vložiť súbor", "subscribe_dialog_login_password_label": "Heslo", "account_basics_password_dialog_confirm_password_label": "Potvrdenie hesla", "account_basics_title": "Účet", "account_delete_dialog_button_cancel": "Zrušiť", "account_delete_dialog_label": "Heslo", "prefs_reservations_dialog_title_add": "Rezervovať tému", "publish_dialog_button_cancel": "Zrušiť", "account_upgrade_dialog_button_cancel": "Zrušiť", "account_tokens_dialog_button_cancel": "Zrušiť", "common_cancel": "Zrušiť", "common_add": "Pridať", "account_basics_username_title": "Používateľské meno", "signup_form_password": "Heslo", "signup_error_creation_limit_reached": "Dosiahnutý limit na vytvorenie konta", "account_basics_password_title": "Heslo", "action_bar_change_display_name": "Zmeniť zobrazovaný názov", "prefs_users_dialog_password_label": "Heslo", "action_bar_sign_up": "Zaregistrovať sa", "login_link_signup": "Zaregistrovať sa", "signup_already_have_account": "Už máte účet? Prihláste sa!", "signup_disabled": "Registrácia je vypnutá", "login_title": "Prihláste sa do svojho konta ntfy", "action_bar_show_menu": "Zobraziť menu", "action_bar_reservation_add": "Rezervovať tému", "action_bar_reservation_delete": "Odstrániť rezerváciu", "action_bar_reservation_limit_reached": "Dosiahnutý limit", "action_bar_send_test_notification": "Odoslať testovacie oznámenie", "action_bar_clear_notifications": "Vymazať všetky oznámenia", "publish_dialog_message_placeholder": "Sem napíšte správu", "action_bar_profile_logout": "Odhlásiť sa", "message_bar_type_message": "Sem napíšte správu", "message_bar_error_publishing": "Chyba pri zverejňovaní oznámenia", "nav_button_documentation": "Dokumentácia", "nav_button_publish_message": "Zverejniť oznámenie", "nav_button_subscribe": "Odoberať tému", "nav_button_muted": "Oznámenia stlmené", "nav_button_connecting": "pripájanie", "nav_upgrade_banner_description": "Rezervovať témy, viac správ a e-mailov a väčšie prílohy", "nav_upgrade_banner_label": "Vylepšiť na ntfy Pro", "alert_grant_title": "Oznámenia sú vypnuté", "alert_grant_button": "Prideliť teraz", "alert_not_supported_title": "Oznámenia nie sú podporované", "alert_not_supported_description": "Oznámenia nie sú vo vašom prehliadači podporované", "notifications_attachment_copy_url_title": "Kopírovať URL adresu prílohy do schránky", "notifications_attachment_copy_url_button": "Kopírovať adresu URL", "notifications_attachment_open_title": "Prejsť na {{url}}", "notifications_actions_open_url_title": "Prejsť na {{url}}", "notifications_attachment_open_button": "Otvoriť prílohu", "notifications_attachment_link_expires": "platnosť odkazu vyprší {{date}}", "notifications_none_for_topic_description": "Ak chcete posielať oznámenia do tejto témy, jednoducho zadajte adresu PUT alebo POST na URL adresu témy.", "notifications_actions_http_request_title": "Odoslať HTTP {{method}} na {{url}}", "display_name_dialog_description": "Nastavenie alternatívneho názvu témy, ktorá sa zobrazuje v zozname odberov. Pomáha to ľahšie identifikovať témy so zložitými názvami.", "prefs_users_table_base_url_header": "URL Adresa služby", "publish_dialog_tags_placeholder": "Zoznam štítkov oddelených čiarkou, napr. varovanie, srv1-backup", "publish_dialog_chip_click_label": "Kliknite na URL", "publish_dialog_email_reset": "Odstrániť email na preposielanie", "publish_dialog_click_reset": "Odobrať URL kliknutím", "publish_dialog_attach_placeholder": "Pripojiť súbor pomocou URL adresy, napr. https://f-droid.org/F-Droid.apk", "publish_dialog_chip_email_label": "Preposlanie na email", "publish_dialog_chip_attach_file_label": "Pripojiť miestny súbor", "publish_dialog_details_examples_description": "Príklady a podrobný opis všetkých funkcií odosielania nájdete v dokumentácii.", "account_upgrade_dialog_tier_features_no_calls": "Žiadne telefonáty", "account_upgrade_dialog_billing_contact_email": "V prípade otázok týkajúcich sa fakturácie nás prosím kontaktujte tu.", "account_tokens_dialog_title_create": "Vytvoriť prístupový token", "prefs_reservations_dialog_title_edit": "Upraviť rezervovanú tému", "account_basics_tier_interval_monthly": "mesačne", "account_basics_tier_canceled_subscription": "Vaše predplatné bolo zrušené a bude preradené na bezplatné konto k dátumu {{date}}.", "priority_default": "predvolená", "prefs_notifications_min_priority_title": "Najnižšia priorita", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} denný telefonát", "account_upgrade_dialog_tier_current_label": "Aktuálne", "account_basics_password_dialog_current_password_incorrect": "Nesprávne heslo", "account_tokens_table_token_header": "Token", "prefs_notifications_delete_after_never": "Nikdy", "prefs_users_description": "Tu môžete pridávať/odstraňovať používateľov pre svoje chránené témy. Upozorňujeme, že používateľské meno a heslo sú uložené v lokálnom úložisku prehliadača.", "account_basics_phone_numbers_dialog_number_label": "Telefónne číslo", "subscribe_dialog_subscribe_description": "Témy nemusia byť chránené heslom, preto vyberte názov, ktorý nie je ľahké uhádnuť. Po prihlásení sa na odber môžete PUT/POST oznámenia.", "account_basics_password_dialog_button_submit": "Zmeniť heslo", "account_basics_phone_numbers_dialog_check_verification_button": "Potvrdiť kód", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "ušetrite až {{discount}}%", "account_tokens_dialog_label": "Označenie, napr. Radarr notifications", "account_tokens_table_expires_header": "Vyprší", "account_upgrade_dialog_proration_info": "Vyhlásenie: Pri prechode medzi platenými plánmi sa rozdiel v cene účtuje okamžite. Pri prechode na nižšiu úroveň sa zostatok použije na platbu za budúce fakturačné obdobia.", "prefs_reservations_dialog_access_label": "Prístup", "account_usage_attachment_storage_title": "Ukladanie príloh", "prefs_users_dialog_username_label": "Používateľské meno, napr. phil", "account_usage_messages_title": "Zverejnené správy", "emoji_picker_search_clear": "Vymazať vyhľadávanie", "prefs_reservations_table_not_subscribed": "Odber nie je prihlásený", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} denné emaily", "prefs_notifications_min_priority_max_only": "Iba najvyššia priorita", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} denné telefonáty", "prefs_notifications_sound_description_some": "Oznámenia pri príchode prehrávajú zvuk {{sound}}", "prefs_reservations_edit_button": "Upraviť prístup k téme", "account_basics_phone_numbers_dialog_verify_button_sms": "Poslať SMS", "account_basics_tier_change_button": "Zmeniť", "account_tokens_dialog_expires_never": "Platnosť tokenu nikdy nevyprší", "subscribe_dialog_login_title": "Vyžaduje sa prihlásenie", "account_tokens_dialog_expires_x_days": "Token vyprší za {{days}} dní", "prefs_reservations_table_everyone_read_only": "Môžem publikovať a odoberať, každý môže odoberať", "prefs_reservations_table_everyone_deny_all": "Iba ja môžem publikovať a odoberať", "account_basics_phone_numbers_dialog_description": "Ak chcete používať funkciu oznamovanie hovorom, musíte pridať a overiť aspoň jedno telefónne číslo. Overenie je možné vykonať prostredníctvom SMS alebo telefonického hovoru.", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} rezervovaná téma", "account_delete_title": "Odstrániť účet", "subscribe_dialog_login_button_login": "Prihlásenie", "account_upgrade_dialog_tier_features_no_reservations": "Žiadne rezervované témy", "prefs_users_table_cannot_delete_or_edit": "Nie je možné odstrániť alebo upraviť prihláseného používateľa", "account_basics_tier_admin_suffix_with_tier": "(s úrovňou {{tier}})", "prefs_notifications_delete_after_three_hours_description": "Oznámenia sa automaticky odstránia po troch hodinách", "prefs_notifications_delete_after_three_hours": "Po troch hodinách", "prefs_notifications_min_priority_description_x_or_higher": "Zobraziť oznámenia, ak je priorita {{number}} ({{name}}) alebo vyššia", "reservation_delete_dialog_description": "Odstránením rezervácie sa vzdáte vlastníctva témy a umožníte ostatným, aby si ju rezervovali. Existujúce správy a prílohy si môžete ponechať alebo odstrániť.", "subscribe_dialog_login_username_label": "Používateľské meno, napr. phil", "subscribe_dialog_error_user_not_authorized": "Používateľ {{username}} nie je autorizovaný", "prefs_reservations_table_everyone_read_write": "Každý môže publikovať a odoberať", "prefs_reservations_dialog_title_delete": "Odstrániť rezervovanú tému", "prefs_users_table": "Tabuľka používateľov", "prefs_reservations_table_topic_header": "Téma", "reservation_delete_dialog_submit_button": "Vymazať rezerváciu", "prefs_reservations_limit_reached": "Dosiahli ste limit rezervovaných tém.", "account_upgrade_dialog_interval_monthly": "Mesačne", "prefs_users_add_button": "Pridať používateľa", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} denné správy", "account_basics_phone_numbers_no_phone_numbers_yet": "Zatiaľ žiadne telefónne čísla", "subscribe_dialog_subscribe_button_generate_topic_name": "Vygenerovať názov", "prefs_appearance_language_title": "Jazyk", "prefs_notifications_delete_after_one_day_description": "Oznámenia sa automaticky odstránia po jednom dni", "subscribe_dialog_subscribe_button_subscribe": "Odoberať", "account_tokens_table_never_expires": "Nikdy nevyprší", "account_tokens_delete_dialog_title": "Odstrániť prístupový token", "prefs_notifications_delete_after_one_month": "Po jednom mesiaci", "account_basics_phone_numbers_dialog_title": "Pridať telefónne číslo", "account_tokens_delete_dialog_description": "Pred odstránením prístupového tokenu sa uistite, že ho aktívne nepoužívajú žiadne aplikácie ani skripty. Túto akciu nie je možné vrátiť späť.", "account_tokens_table_label_header": "Označenie", "account_upgrade_dialog_billing_contact_website": "Otázky týkajúce sa fakturácie nájdete na našej webovej stránke.", "account_basics_username_admin_tooltip": "Ste Admin", "prefs_notifications_delete_after_never_description": "Oznámenia sa nikdy automaticky neodstránia", "account_delete_dialog_description": "Tým sa vaše konto natrvalo odstráni vrátane všetkých údajov uložených na serveri. Po vymazaní bude vaše používateľské meno 7 dní nedostupné. Ak naozaj chcete pokračovať, potvrďte svoje heslo v poli nižšie.", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} rezervované témy", "account_usage_reservations_none": "Žiadne rezervované témy pre toto konto", "prefs_notifications_sound_description_none": "Pri príchode oznámení sa neprehráva žiadny zvuk", "account_tokens_description": "Pri publikovaní a prihlasovaní prostredníctvom rozhrania ntfy API používajte prístupové tokeny, aby ste nemuseli posielať prihlasovacie údaje k účtu. Viacej informácií nájdete v dokumentácií.", "prefs_reservations_table": "Tabuľka rezervovaných tém", "emoji_picker_search_placeholder": "Vyhľadať emoji", "account_upgrade_dialog_button_cancel_subscription": "Zrušiť predplatné", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} denný email", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} na jeden súbor", "prefs_reservations_description": "Tu si môžete rezervovať názvy tém na osobné použitie. Rezervovaním témy získate vlastníctvo nad témou a môžete definovať prístupové práva pre ostatných používateľov k téme.", "account_usage_title": "Používanie", "account_basics_tier_upgrade_button": "Vylepšiť na PRO verziu", "prefs_users_description_no_sync": "Používatelia a heslá nie sú synchronizované s vaším účtom.", "account_tokens_dialog_title_edit": "Upraviť prístupový token", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} denná správa", "account_upgrade_dialog_reservations_warning_one": "Vybraná úroveň umožňuje menej rezervovaných tém ako vaša aktuálna úroveň. Pred zmenou úrovne vymažte aspoň jednu rezerváciu. Rezervácie môžete odstrániť v Nastaveniach.", "subscribe_dialog_error_topic_already_reserved": "Téma je už rezervovaná", "prefs_users_table_user_header": "Používateľ", "error_boundary_stack_trace": "Výpis zásobníka", "prefs_notifications_delete_after_one_week": "Po jednom týždni", "prefs_reservations_delete_button": "Resetovať prístup k téme", "account_basics_tier_admin_suffix_no_tier": "(bez úrovne)", "prefs_notifications_delete_after_one_week_description": "Oznámenia sa automaticky odstránia po jednom týždni", "error_boundary_unsupported_indexeddb_description": "Webová aplikácia ntfy potrebuje na fungovanie IndexedDB a váš prehliadač nepodporuje IndexedDB v režime súkromného prehliadania.

      Je to síce nešťastné, ale aj tak nemá veľký zmysel používať webovú aplikáciu ntfy v režime súkromného prehliadania, pretože všetko je uložené v úložisku prehliadača. Viac informácií si môžete prečítať v tomto probléme GitHubu alebo sa s nami porozprávať na Discord alebo Matrix.", "account_basics_tier_payment_overdue": "Vaša platba je po termíne splatnosti. Aktualizujte prosím svoj spôsob platby, inak bude váš účet preradený do nižšej kategórie.", "account_basics_tier_description": "Úroveň výkonu vášho účtu", "account_basics_phone_numbers_description": "Pre oznamovanie hovorom", "account_basics_tier_free": "Zadarmo", "account_upgrade_dialog_cancel_warning": "Týmto zrušíte svoje predplatné a {{date}} prejdete na nižšiu úroveň svojho účtu. V tento deň budú odstránené rezervácie tém, ako aj správy uložené vo vyrovnávacej pamäti servera.", "account_basics_tier_admin": "Admin", "prefs_notifications_sound_title": "Zvuk oznámenia", "prefs_notifications_min_priority_default_and_higher": "Predvolená priorita a vyššia", "prefs_reservations_table_access_header": "Prístup", "account_tokens_table_copied_to_clipboard": "Prístupový token skopírovaný", "account_tokens_dialog_expires_x_hours": "Token vyprší za {{hours}} hodín", "prefs_users_edit_button": "Upraviť používateľa", "account_upgrade_dialog_title": "Zmeniť úroveň účtu", "priority_low": "nízka", "prefs_reservations_table_click_to_subscribe": "Kliknutím sa prihlásite na odber", "account_basics_password_description": "Zmeniť heslo účtu", "account_usage_calls_title": "Uskutočnené telefonické hovory", "error_boundary_description": "Toto samozrejme nemalo nastať. Je mi to veľmi ľúto.
      Ak máte chvíľu, nahláste to na GitHub alebo nám dajte vedieť cez Discord alebo Matrix.", "priority_min": "najnižšia", "account_basics_tier_basic": "Základný", "prefs_notifications_min_priority_description_any": "Zobraziť všetky oznámenia bez ohľadu na prioritu", "error_boundary_gathering_info": "Získajte viac informácií…", "error_boundary_unsupported_indexeddb_title": "Súkromné prehliadanie nie je podporované", "prefs_notifications_delete_after_one_day": "Po jednom dni", "error_boundary_title": "Ale nie, ntfy prestalo fungovať", "reservation_delete_dialog_action_keep_description": "Správy a prílohy, ktoré sú uložené v medzipamäti na serveri, budú verejne viditeľné pre ľudí, ktorí poznajú názov témy.", "prefs_reservations_add_button": "Pridať rezervovanú tému", "prefs_reservations_title": "Rezervované témy", "account_basics_phone_numbers_copied_to_clipboard": "Telefónne číslo skopírované do schránky", "prefs_reservations_dialog_description": "Rezervovaním témy získate vlastníctvo nad témou a môžete definovať prístupové práva pre ostatných používateľov k téme.", "account_basics_tier_title": "Typ účtu", "account_usage_cannot_create_portal_session": "Nemožnosť otvoriť fakturačný portál", "account_tokens_delete_dialog_submit_button": "Trvalo odstrániť token", "account_delete_description": "Natrvalo odstrániť vaše konto", "account_basics_phone_numbers_dialog_number_placeholder": "napr. +1222333444", "account_basics_phone_numbers_dialog_code_placeholder": "napr. 123456", "prefs_notifications_title": "Oznámenia", "account_basics_tier_manage_billing_button": "Spravovať fakturáciu", "account_tokens_title": "Prístupové tokeny", "account_basics_username_description": "Hej, to si ty ❤", "prefs_reservations_dialog_topic_label": "Téma", "prefs_users_title": "Správa používateľov", "account_basics_tier_interval_yearly": "ročne", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} za rok. Účtuje sa mesačne.", "account_delete_dialog_button_submit": "Natrvalo odstrániť konto", "account_basics_phone_numbers_dialog_channel_call": "Hovor", "account_basics_password_dialog_new_password_label": "Nové heslo", "account_tokens_dialog_expires_unchanged": "Ponechať dátum skončenia platnosti nezmenený", "error_boundary_button_copy_stack_trace": "Kopírovať výpis zásobníka", "account_tokens_dialog_title_delete": "Odstrániť prístupový token", "account_usage_of_limit": "z {{limit}}", "reservation_delete_dialog_action_keep_title": "Ponechať správy a prílohy uložené v medzipamäti", "prefs_notifications_sound_no_sound": "Bez zvuku", "account_upgrade_dialog_interval_yearly": "Ročne", "account_upgrade_dialog_button_redirect_signup": "Zaregistrujte sa teraz", "subscribe_dialog_error_user_anonymous": "anonymný", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} účtovaná ročne. Uložiť {{save}}.", "prefs_notifications_min_priority_high_and_higher": "Vysoká priorita a vyššia", "account_usage_basis_ip_description": "Štatistiky a limity používania tohto účtu sú založené na vašej IP adrese, takže môžu byť zdieľané s ostatnými používateľmi. Vyššie uvedené limity sú približné hodnoty založené na existujúcich rýchlostných limitoch.", "account_basics_password_dialog_title": "Zmeniť heslo", "priority_max": "najvyššia", "account_usage_limits_reset_daily": "Limity používania sa obnovujú denne o polnoci (UTC)", "account_usage_unlimited": "Nekonečné", "prefs_users_delete_button": "Odstrániť používateľa", "prefs_notifications_min_priority_any": "Akákoľvek priorita", "account_tokens_dialog_expires_label": "Platnosť prístupového tokenu vyprší za", "account_basics_phone_numbers_title": "Telefónne čísla", "prefs_notifications_delete_after_title": "Odstrániť oznámenia", "account_upgrade_dialog_interval_yearly_discount_save": "ušetríte {{discount}}%", "prefs_users_dialog_title_edit": "Upraviť používateľa", "account_basics_password_dialog_current_password_label": "Aktuálne heslo", "prefs_notifications_min_priority_low_and_higher": "Nízka priorita a vyššia", "account_tokens_dialog_button_update": "Aktualizovať token", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} celkový úložný priestor", "prefs_reservations_table_everyone_write_only": "Môžem publikovať a odoberať, každý môže publikovať", "prefs_appearance_title": "Vzhlad", "account_tokens_table_cannot_delete_or_edit": "Nie je možné upraviť alebo odstrániť aktuálny token relácie", "prefs_notifications_sound_play": "Prehrať vybraný zvuk", "account_tokens_table_last_access_header": "Posledný prístup", "account_tokens_table_last_origin_tooltip": "Z IP adresy {{ip}}, kliknite na vyhľadávanie", "account_usage_reservations_title": "Rezervované témy", "account_upgrade_dialog_tier_price_per_month": "mesiac", "account_usage_calls_none": "S týmto účtom nie je možné uskutočňovať žiadne telefonické hovory", "account_tokens_table_current_session": "Aktuálna relácia prehliadača", "account_upgrade_dialog_button_pay_now": "Zaplatiť a predplatiť si", "subscribe_dialog_subscribe_use_another_label": "Použiť iný server", "reservation_delete_dialog_action_delete_title": "Odstrániť správy a prílohy uložené v medzipamäti", "account_basics_phone_numbers_dialog_code_label": "Overovací kód", "reservation_delete_dialog_action_delete_description": "Správy a prílohy uložené v medzipamäti sa natrvalo vymažú. Túto akciu nemožno vrátiť späť.", "account_basics_tier_paid_until": "Predplatné zaplatené do {{date}} s automatickou obnovou", "account_usage_attachment_storage_description": "{{filesize}} na súbor, vymazaný po {{expiry}}", "prefs_notifications_delete_after_one_month_description": "Oznámenia sa automaticky odstránia po jednom mesiaci", "account_basics_phone_numbers_dialog_verify_button_call": "Zavolajte mi", "prefs_users_dialog_base_url_label": "URL adresa služby, napr. https://ntfy.sh", "account_usage_emails_title": "Odoslané emaily", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_upgrade_dialog_tier_selected_label": "Vybrané", "account_upgrade_dialog_button_update_subscription": "Aktualizovať predplatné", "priority_high": "vysoká", "account_delete_dialog_billing_warning": "Odstránením konta sa okamžite zruší aj vaše fakturačné predplatné. Už nebudete mať prístup k fakturačnému panelu.", "prefs_notifications_min_priority_description_max": "Zobraziť oznámenia, ak je priorita 5 (max)", "subscribe_dialog_login_description": "Táto téma je chránená heslom. Ak sa chcete prihlásiť na odber témy, zadajte používateľské meno a heslo.", "account_upgrade_dialog_reservations_warning_other": "Vybraná úroveň umožňuje menej rezervovaných tém ako vaša aktuálna úroveň. Pred zmenou úrovne vymažte aspoň {{count}} rezervácií. Rezervácie môžete odstrániť v Nastaveniach.", "prefs_users_dialog_title_add": "Pridať používateľa", "account_tokens_dialog_button_create": "Vytvoriť token", "account_tokens_table_create_token_button": "Vytvoriť prístupový token", "action_bar_mute_notifications": "Stlmiť oznámenia", "action_bar_unmute_notifications": "Zrušiť stlmenie oznámení", "alert_notification_permission_required_description": "Udeliť povolenie prehliadaču na zobrazovanie oznámení na ploche", "alert_notification_permission_required_button": "Udeliť teraz", "alert_notification_permission_denied_title": "Oznámenia sú zablokované", "alert_notification_permission_denied_description": "Opätovne ich povoľte vo svojom prehliadači", "alert_notification_ios_install_required_title": "Vyžaduje sa inštalácia iOS", "notifications_actions_failed_notification": "Neúspešná akcia", "publish_dialog_checkbox_markdown": "Formátovať ako Markdown", "subscribe_dialog_subscribe_use_another_background_info": "Oznámenia z iných serverov sa nebudú prijímať, keď webová aplikácia nie je otvorená", "prefs_notifications_web_push_title": "Oznámenia na pozadí", "prefs_notifications_web_push_enabled_description": "Oznámenia sa prijímajú, aj keď webová aplikácia nie je spustená (prostredníctvom Web Push)", "prefs_notifications_web_push_disabled_description": "Oznámenia sa prijímajú, keď je webová aplikácia spustená (cez WebSocket)", "prefs_notifications_web_push_enabled": "Povolené pre {{server}}", "prefs_notifications_web_push_disabled": "Zakázané", "prefs_appearance_theme_title": "Téma", "prefs_appearance_theme_system": "Systémové (predvolené)", "prefs_appearance_theme_dark": "Tmavý režim", "prefs_appearance_theme_light": "Svetlý režim", "error_boundary_button_reload_ntfy": "Obnoviť ntfy", "web_push_subscription_expiring_title": "Oznámenia budú pozastavené", "web_push_subscription_expiring_body": "Ak chcete pokračovať v prijímaní upozornení, otvorte ntfy", "web_push_unknown_notification_title": "Neznáme oznámenie prijaté zo servera", "web_push_unknown_notification_body": "Možno budete musieť aktualizovať ntfy otvorením webovej aplikácie", "alert_notification_permission_required_title": "Oznámenia sú vypnuté", "alert_notification_ios_install_required_description": "Kliknutím na Zdieľať a Pridať na domovskú obrazovku povolíte oznámenia v systéme iOS" } ntfy-2.11.0/web/public/static/langs/sv.json000066400000000000000000000742541462047176100205500ustar00rootroot00000000000000{ "action_bar_settings": "Inställningar", "action_bar_send_test_notification": "Skicka testnotis", "action_bar_toggle_action_menu": "Öppna/stäng åtgärdsmeny", "message_bar_type_message": "Skriv ett meddelande här", "message_bar_error_publishing": "Fel vid publicering av notis", "message_bar_show_dialog": "Visa publiceringsdialog", "message_bar_publish": "Publicera meddelande", "nav_topics_title": "Prenumererade kategorier", "nav_button_all_notifications": "Alla notiser", "nav_button_documentation": "Dokumentation", "nav_button_publish_message": "Publicera notis", "nav_button_subscribe": "Prenumerera på kategori", "alert_notification_permission_required_title": "Notiser är avstängda", "alert_notification_permission_required_button": "Bevilja nu", "alert_not_supported_title": "Notiser stöds inte", "notifications_list": "Notifieringslista", "notifications_list_item": "Notis", "notifications_delete": "Radera", "notifications_copied_to_clipboard": "Kopierat till urklipp", "notifications_tags": "Taggar", "notifications_new_indicator": "Ny notis", "notifications_attachment_copy_url_title": "Kopiera bifogad URL till urklipp", "notifications_attachment_copy_url_button": "Kopiera URL", "notifications_attachment_open_title": "Gå till {{url}}", "notifications_attachment_open_button": "Öppna bilagan", "notifications_attachment_link_expired": "Nedladdningslänk utgått", "notifications_priority_x": "Prioritet {{priority}}", "action_bar_show_menu": "Visa meny", "action_bar_logo_alt": "ntfy-logga", "action_bar_unsubscribe": "Avprenumerera", "action_bar_toggle_mute": "Tysta/aktivera notiser", "action_bar_clear_notifications": "Rensa alla notiser", "nav_button_connecting": "ansluter", "notifications_attachment_image": "Bifogad bild", "nav_button_settings": "Inställningar", "nav_button_muted": "Notiser tystade", "notifications_attachment_link_expires": "länken utgår {{date}}", "notifications_attachment_file_image": "bildfil", "notifications_attachment_file_audio": "ljudfil", "alert_notification_permission_required_description": "Ge din webbläsare behörighet att visa skrivbordsnotiser.", "alert_not_supported_description": "Notiser stöds inte i din webbläsare.", "notifications_mark_read": "Markera som läst", "notifications_attachment_file_video": "videofil", "notifications_click_copy_url_button": "Kopiera länk", "notifications_click_open_button": "Öppna länk", "notifications_actions_open_url_title": "Gå till {{url}}", "notifications_none_for_any_title": "Du har inte fått några notiser.", "notifications_example": "Exempel", "notifications_loading": "Laddar notiser …", "signup_title": "Skapa ett nytt konto", "signup_form_confirm_password": "Bekräfta lösenord", "signup_form_button_submit": "Skapa konto", "login_title": "Logga in på ditt konto", "login_form_button_submit": "Logga in", "login_link_signup": "Registrera", "login_disabled": "Inloggning är inaktiverat", "action_bar_account": "Konto", "action_bar_change_display_name": "Ändra visningsnamn", "action_bar_reservation_add": "Reservera ämne", "action_bar_reservation_edit": "Ändra reservation", "action_bar_reservation_delete": "Ta bort reservation", "action_bar_reservation_limit_reached": "Gräns nådd", "action_bar_profile_title": "Profil", "action_bar_profile_settings": "Inställningar", "action_bar_profile_logout": "Logga ut", "action_bar_sign_in": "Logga in", "action_bar_sign_up": "Registrera", "nav_button_account": "Konto", "nav_upgrade_banner_label": "Uppgradera till Pro", "common_add": "Lägg till", "signup_form_password": "Lösenord", "signup_form_toggle_password_visibility": "Visa/dölj lösenord", "common_cancel": "Avbryt", "common_save": "Spara", "signup_form_username": "Användarnamn", "signup_already_have_account": "Har du redan ett konto? Logga in!", "signup_disabled": "Registrering är inaktiverad", "signup_error_username_taken": "Användarnamn [[username]] används redan", "notifications_attachment_file_document": "annat dokument", "notifications_attachment_file_app": "Android-appfil", "notifications_click_copy_url_title": "Kopiera länk till urklipp", "notifications_none_for_topic_title": "Du har inte fått några notiser för detta ämnet ännu.", "notifications_none_for_topic_description": "För att kunna skicka notiser till detta ämne, använd PUT eller POST till ämnets URL.", "notifications_actions_http_request_title": "Skicka HTTP {{method}} till {{url}}", "publish_dialog_progress_uploading": "Laddar upp …", "nav_upgrade_banner_description": "Reservera ämnen, fler meddelanden och e-postmeddelanden och större bilagor", "publish_dialog_attachment_limits_file_and_quota_reached": "överskrider {{fileSizeLimit}} filgräns och kvot, {{remainingBytes}} återstående", "publish_dialog_attachment_limits_file_reached": "överskrider {{fileSizeLimit}} filgräns", "publish_dialog_attachment_limits_quota_reached": "överskrider kvoten, {{remainingBytes}} återstår", "publish_dialog_message_placeholder": "Skriv ett meddelande här", "publish_dialog_checkbox_publish_another": "Publicera en till", "subscribe_dialog_error_user_anonymous": "anonym", "account_basics_password_dialog_confirm_password_label": "Bekräfta lösenord", "publish_dialog_email_placeholder": "Adress att vidarebefordra meddelandet till, t.ex. phil@example.com", "publish_dialog_details_examples_description": "Exempel och en detaljerad beskrivning av alla sändningsfunktioner finns i dokumentationen .", "publish_dialog_button_send": "Skicka", "common_back": "Tillbaka", "account_basics_tier_free": "Gratis", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} reserverat ämne", "account_delete_title": "Ta bort konto", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} dagliga meddelanden", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} dagligt e-postmeddelande", "account_upgrade_dialog_button_cancel": "Avbryt", "common_copy_to_clipboard": "Kopiera till urklipp", "account_tokens_table_copied_to_clipboard": "Åtkomsttoken kopierad", "account_tokens_description": "Använd åtkomsttoken när du publicerar och prenumererar via ntfy API, så att du inte behöver skicka dina kontouppgifter. Läs mer i dokumentationen.", "account_tokens_table_create_token_button": "Skapa åtkomsttoken", "prefs_users_description_no_sync": "Användare och lösenord synkroniseras inte till ditt konto.", "error_boundary_unsupported_indexeddb_description": "ntfy-webbappen behöver IndexedDB för att fungera och din webbläsare har inte stöd för IndexedDB i privat surfläge.

      Detta är beklagligt, men det är inte heller särskilt meningsfullt att använda ntfy-webbappen i privat surfläge, eftersom allt lagras i webbläsarens lagringsutrymme. Du kan läsa mer om det i detta GitHub-ärende, eller prata med oss på Discord eller Matrix.", "account_basics_tier_interval_monthly": "månadsvis", "account_basics_tier_interval_yearly": "årligen", "account_basics_tier_canceled_subscription": "Din prenumeration avbröts och kommer att nedgraderas till ett gratis konto den {{date}}.", "account_basics_tier_manage_billing_button": "Hantera fakturering", "account_usage_messages_title": "Publicerade meddelande", "account_usage_emails_title": "Skickade e-postmeddelanden", "account_usage_reservations_title": "Reserverade ämnen", "account_usage_reservations_none": "Inga reserverade ämnen för det här kontot", "account_usage_attachment_storage_title": "Lagring av bilagor", "account_usage_attachment_storage_description": "{{filesize}} per fil, raderas efter {{expiry}}", "account_delete_description": "Ta bort ditt konto permanent", "account_delete_dialog_description": "Detta kommer att radera ditt konto permanent, inklusive all data som lagras på servern. Efter raderingen kommer ditt användarnamn att vara otillgängligt i 7 dagar. Om du verkligen vill fortsätta, bekräfta med ditt lösenord i rutan nedan.", "account_delete_dialog_label": "Lösenord", "account_delete_dialog_button_cancel": "Avbryt", "account_delete_dialog_button_submit": "Ta bort kontot permanent", "account_delete_dialog_billing_warning": "Om du raderar ditt konto annulleras också din faktureringsprenumeration omedelbart. Du kommer inte längre att ha tillgång till instrumentpanelen för fakturering.", "account_upgrade_dialog_title": "Ändra kontonivå", "account_upgrade_dialog_interval_monthly": "Månadsvis", "account_upgrade_dialog_interval_yearly": "Årligen", "account_upgrade_dialog_interval_yearly_discount_save": "spara {{discount}}%", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "spara upp till {{discount}}%", "account_upgrade_dialog_cancel_warning": "Detta kommer att säga upp din prenumeration och nedgradera ditt konto {{date}}. På det datumet kommer ämnesreservationer och meddelanden som ligger i cacheminnet på servern att raderas.", "account_upgrade_dialog_proration_info": "Deklaration: När du uppgraderar mellan betalda planer kommer prisskillnaden att debiteras omedelbart. Vid nedgradering till en lägre nivå kommer saldot att användas för att betala för framtida faktureringsperioder.", "account_upgrade_dialog_reservations_warning_one": "Den valda nivån tillåter färre reserverade ämnen än din nuvarande nivå. Innan du ändrar nivå, bör du ta bort minst en reservation. Du kan ta bort reservationer i Inställningar.", "account_upgrade_dialog_reservations_warning_other": "Den valda nivån tillåter färre reserverade ämnen än din nuvarande nivå. Innan du ändrar nivå, ta bort minst {{count}} reservationer. Du kan ta bort reservationer i Inställningar.", "account_upgrade_dialog_tier_features_no_reservations": "Inga reserverade ämnen", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} per fil", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} total lagring", "account_upgrade_dialog_tier_price_per_month": "månad", "account_upgrade_dialog_tier_selected_label": "Vald", "account_tokens_table_token_header": "Token", "account_tokens_dialog_title_create": "Skapa åtkomsttoken", "account_tokens_dialog_title_delete": "Ta bort åtkomsttoken", "account_tokens_dialog_label": "Etikett, t.ex. Radarr-meddelanden", "account_tokens_dialog_title_edit": "Redigera åtkomsttoken", "account_tokens_dialog_button_create": "Skapa token", "account_tokens_dialog_button_update": "Uppdatera token", "account_tokens_delete_dialog_submit_button": "Ta bort token permanent", "prefs_notifications_delete_after_one_day": "Efter en dag", "reservation_delete_dialog_action_delete_description": "Cachade meddelanden och bilagor raderas permanent. Denna åtgärd kan inte ångras.", "error_boundary_gathering_info": "Samla mer information …", "error_boundary_unsupported_indexeddb_title": "Privat surfning stöds inte", "reservation_delete_dialog_submit_button": "Ta bort reservationen", "priority_low": "låg", "error_boundary_title": "Åh nej, ntfy kraschade", "error_boundary_description": "Detta får naturligtvis inte ske. Vi beklagar verkligen detta.
      Om du har tid, vänligen rapportera detta på GitHub, eller meddela oss via Discord eller Matrix.", "notifications_no_subscriptions_title": "Det ser ut som om du inte har några prenumerationer ännu.", "notifications_more_details": "Mer information finns på webbplatsen eller i dokumentationen .", "publish_dialog_title_topic": "Publicera till {{topic}}", "publish_dialog_message_published": "Meddelande publicerat", "publish_dialog_emoji_picker_show": "Välj emoji", "publish_dialog_base_url_placeholder": "Service-URL, t.ex. https://example.com", "publish_dialog_topic_label": "Ämnesnamn", "publish_dialog_topic_placeholder": "Ämnesnamn, t.ex. phils_alerts", "publish_dialog_topic_reset": "Återställ ämne", "publish_dialog_title_label": "Titel", "publish_dialog_title_placeholder": "Meddelandets rubrik, t.ex. Varning för diskutrymme", "publish_dialog_tags_label": "Taggar", "publish_dialog_message_label": "Meddelande", "publish_dialog_tags_placeholder": "Kommaseparerad lista med taggar, t.ex. warning, srv1-backup", "publish_dialog_priority_label": "Prioritet", "publish_dialog_click_label": "Klicka på URL", "publish_dialog_click_placeholder": "URL som öppnas när man klickar på anmälan", "publish_dialog_click_reset": "Ta bort klickbar URL", "publish_dialog_email_reset": "Ta bort vidarebefordran av e-post", "publish_dialog_attach_label": "URL för bifogade filer", "publish_dialog_attach_placeholder": "Bifoga fil via URL, t.ex. https://f-droid.org/F-Droid.apk", "publish_dialog_filename_label": "Filnamn", "publish_dialog_delay_label": "Fördröjning", "publish_dialog_filename_placeholder": "Filnamn för bifogad fil", "publish_dialog_delay_placeholder": "Fördröj leverans, t.ex. {{unixTimestamp}}, {{relativeTime}} eller \"{{naturalLanguage}}\" (endast engelska)", "publish_dialog_delay_reset": "Ta bort försenad leverans", "publish_dialog_other_features": "Andra funktioner:", "publish_dialog_chip_click_label": "Klicka på URL", "publish_dialog_attached_file_title": "Bifogad fil:", "publish_dialog_attached_file_filename_placeholder": "Filnamn för bifogad fil", "emoji_picker_search_placeholder": "Sök emoji", "subscribe_dialog_subscribe_button_cancel": "Avbryt", "prefs_notifications_sound_description_some": "Meddelanden spelar upp ljudet {{sound}} när de anländer", "prefs_notifications_sound_no_sound": "Inget ljud", "prefs_notifications_min_priority_any": "Alla prioriteringar", "prefs_notifications_min_priority_low_and_higher": "Låg prioritet och högre", "prefs_notifications_delete_after_three_hours": "Efter tre timmar", "prefs_notifications_delete_after_never": "Aldrig", "prefs_users_table": "Användartabell", "prefs_users_add_button": "Lägg till användare", "prefs_users_edit_button": "Redigera användare", "prefs_users_dialog_title_add": "Lägg till användare", "prefs_users_dialog_title_edit": "Redigera användare", "prefs_users_dialog_base_url_label": "Tjänstens URL, t.ex. https://ntfy.sh", "prefs_users_dialog_password_label": "Lösenord", "prefs_appearance_title": "Utseende", "prefs_appearance_language_title": "Språk", "priority_min": "min", "priority_default": "standard", "priority_high": "hög", "priority_max": "max", "error_boundary_button_copy_stack_trace": "Kopiera stackspårning", "error_boundary_stack_trace": "Stackspårning", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} reserverade ämnen", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} dagligt meddelande", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} dagliga e-postmeddelanden", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} per år. Faktureras månadsvis.", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} faktureras årligen. Spara {{save}}.", "account_upgrade_dialog_tier_current_label": "Aktuell", "account_upgrade_dialog_billing_contact_email": "För faktureringsfrågor, vänligen kontakta oss direkt.", "account_upgrade_dialog_billing_contact_website": "För frågor om fakturering hänvisar vi till vår webbplats.", "account_upgrade_dialog_button_redirect_signup": "Registrera dig nu", "account_upgrade_dialog_button_pay_now": "Betala nu och prenumerera", "account_upgrade_dialog_button_cancel_subscription": "Avbryt prenumeration", "account_upgrade_dialog_button_update_subscription": "Uppdatera prenumeration", "account_tokens_table_label_header": "Etikett", "account_tokens_table_last_access_header": "Sista åtkomst", "account_tokens_table_expires_header": "Upphör", "account_tokens_table_never_expires": "Upphör aldrig", "account_tokens_table_current_session": "Nuvarande webbläsarsession", "account_tokens_table_cannot_delete_or_edit": "Det går inte att redigera eller ta bort aktuell sessionstoken", "account_tokens_table_last_origin_tooltip": "Från IP-adress {{ip}}, klicka för att söka upp", "account_tokens_dialog_button_cancel": "Avbryt", "account_tokens_dialog_expires_label": "Åtkomsttoken löper ut om", "account_tokens_dialog_expires_unchanged": "Lämna utgångsdatumet oförändrat", "account_tokens_dialog_expires_x_hours": "Token går ut om {{hours}} timmar", "account_tokens_dialog_expires_x_days": "Token löper ut om {{days}} dagar", "account_tokens_dialog_expires_never": "Token upphör aldrig att gälla", "account_tokens_delete_dialog_title": "Ta bort åtkomsttoken", "account_tokens_delete_dialog_description": "Innan du tar bort en åtkomsttoken bör du se till att inga program eller skript använder den aktivt. Den här åtgärden kan inte ångras.", "prefs_notifications_title": "Notifieringar", "prefs_notifications_sound_title": "Ljud för meddelanden", "prefs_notifications_sound_description_none": "Meddelanden spelar inte upp något ljud när de kommer", "prefs_notifications_sound_play": "Spela upp valt ljud", "prefs_notifications_min_priority_title": "Lägsta prioritet", "prefs_notifications_min_priority_description_any": "Visa alla meddelanden, oavsett prioritet", "prefs_notifications_min_priority_description_x_or_higher": "Visa meddelanden om prioritet är {{number}} ({{name}}) eller högre", "prefs_notifications_min_priority_description_max": "Visa notifieringar om prioritet är 5 (max)", "prefs_notifications_min_priority_default_and_higher": "Standardprioritet och högre", "prefs_notifications_min_priority_high_and_higher": "Hög prioritet och högre", "prefs_notifications_min_priority_max_only": "Bara högsta prioritet", "prefs_notifications_delete_after_title": "Radera meddelanden", "prefs_notifications_delete_after_one_week": "Efter en vecka", "prefs_notifications_delete_after_one_month": "Efter en månad", "prefs_notifications_delete_after_never_description": "Meddelanden raderas aldrig automatiskt", "prefs_notifications_delete_after_three_hours_description": "Meddelanden raderas automatiskt efter tre timmar", "prefs_users_description": "Lägg till/ta bort användare för dina skyddade ämnen här. Observera att användarnamn och lösenord lagras i webbläsarens lokala lagring.", "prefs_users_delete_button": "Ta bort användare", "prefs_users_table_cannot_delete_or_edit": "Kan inte ta bort eller redigera inloggad användare", "prefs_users_table_user_header": "Användare", "prefs_users_table_base_url_header": "Service-URL", "prefs_users_dialog_username_label": "Användarnamn, t.ex. phil", "prefs_reservations_title": "Reserverade ämnen", "prefs_reservations_description": "Du kan reservera ämnesnamn för personligt bruk här. Genom att reservera ett ämne får du äganderätt till ämnet och kan definiera åtkomstbehörigheter för andra användare till ämnet.", "prefs_reservations_limit_reached": "Du har nått gränsen för reserverade ämnen.", "prefs_reservations_add_button": "Lägg till reserverat ämne", "prefs_reservations_dialog_title_edit": "Redigera reserverat ämne", "prefs_reservations_dialog_title_delete": "Ta bort ämnesreservation", "signup_error_creation_limit_reached": "Gränsen för skapande av konton har uppnåtts", "alert_not_supported_context_description": "Meddelanden stöds endast via HTTPS. Detta är en begränsning av Notifications API.", "notifications_actions_not_supported": "Åtgärd stöds inte i webbapplikationen", "notifications_none_for_any_description": "För att skicka meddelanden till ett ämne är det bara att PUT eller POST till ämnets URL. Här är ett exempel med ett av dina ämnen.", "notifications_no_subscriptions_description": "Klicka på länken \"{{linktext}}\" för att skapa eller prenumerera på ett ämne. Därefter kan du skicka meddelanden via PUT eller POST och du får meddelanden här.", "display_name_dialog_title": "Ändra visningsnamn", "display_name_dialog_description": "Ange ett alternativt namn för ett ämne som visas i prenumerationslistan. På så sätt kan du lättare identifiera ämnen med komplicerade namn.", "display_name_dialog_placeholder": "Visningsnamn", "reserve_dialog_checkbox_label": "Reservera ämne och konfigurera åtkomst", "publish_dialog_title_no_topic": "Publicera meddelande", "publish_dialog_progress_uploading_detail": "Laddar upp {{loaded}}/{{{total}} ({{procent}}}%) …", "publish_dialog_priority_min": "Lägsta prioritet", "publish_dialog_priority_low": "Låg prioritet", "publish_dialog_priority_default": "Standard prioritet", "publish_dialog_priority_high": "Hög prioritet", "publish_dialog_priority_max": "Max. prioritet", "publish_dialog_base_url_label": "Service-URL", "publish_dialog_email_label": "E-post", "publish_dialog_attach_reset": "Ta bort URL för bifogade filer", "publish_dialog_chip_email_label": "Vidarebefordra till e-post", "publish_dialog_chip_attach_url_label": "Bifoga fil via URL", "publish_dialog_chip_attach_file_label": "Bifoga lokal fil", "publish_dialog_chip_delay_label": "Fördröj leveransen", "publish_dialog_chip_topic_label": "Ändra ämne", "publish_dialog_button_cancel_sending": "Avbryt sändning", "publish_dialog_button_cancel": "Avbryt", "publish_dialog_attached_file_remove": "Ta bort bifogad fil", "publish_dialog_drop_file_here": "Släpp filen här", "emoji_picker_search_clear": "Rensa sökning", "subscribe_dialog_subscribe_title": "Prenumerera på ämnet", "subscribe_dialog_subscribe_description": "Ämnen kanske inte är lösenordsskyddade, så välj ett namn som inte är lätt att gissa. När du har prenumererat kan du lägga in/lägga in meddelanden.", "subscribe_dialog_subscribe_topic_placeholder": "Ämnesnamn, t.ex. phils_alerts", "subscribe_dialog_subscribe_use_another_label": "Använd en annan server", "subscribe_dialog_subscribe_base_url_label": "Service-URL", "subscribe_dialog_subscribe_button_generate_topic_name": "Generera namn", "subscribe_dialog_subscribe_button_subscribe": "Prenumerera", "subscribe_dialog_login_title": "Inloggning krävs", "subscribe_dialog_login_description": "Det här ämnet är lösenordsskyddat. Ange användarnamn och lösenord för att prenumerera.", "subscribe_dialog_login_username_label": "Användarnamn, t.ex. phil", "subscribe_dialog_login_password_label": "Lösenord", "subscribe_dialog_login_button_login": "Logga in", "subscribe_dialog_error_user_not_authorized": "Användaren {{användarnamn}} inte auktoriserad", "subscribe_dialog_error_topic_already_reserved": "Ämnet är redan reserverat", "account_basics_title": "Konto", "account_basics_tier_paid_until": "Prenumerationen är betald fram till {{datum}}, och kommer att förnyas automatiskt", "account_basics_username_title": "Användarnamn", "account_basics_username_description": "Hej, det är du ❤", "account_basics_username_admin_tooltip": "Du är admin", "account_basics_password_title": "Lösenord", "account_basics_password_description": "Ändra lösenordet till ditt konto", "account_basics_tier_payment_overdue": "Din betalning är försenad. Vänligen uppdatera din betalningsmetod, annars kommer ditt konto att nedgraderas inom kort.", "account_basics_password_dialog_title": "Byt lösenord", "account_basics_password_dialog_current_password_label": "Aktuellt lösenord", "account_basics_password_dialog_new_password_label": "Nytt lösenord", "account_basics_password_dialog_button_submit": "Byt lösenord", "account_basics_password_dialog_current_password_incorrect": "Felaktigt lösenord", "account_usage_title": "Användning", "account_usage_of_limit": "av {{limit}}", "account_usage_unlimited": "Obegränsad", "account_usage_limits_reset_daily": "Användningsgränserna återställs dagligen vid midnatt (UTC)", "account_basics_tier_title": "Kontotyp", "account_basics_tier_description": "Ditt kontos nivå", "account_basics_tier_admin": "Admin", "account_basics_tier_admin_suffix_with_tier": "(med {{tier}}} nivå)", "account_basics_tier_admin_suffix_no_tier": "(ingen nivå)", "account_basics_tier_basic": "Grundläggande", "account_basics_tier_upgrade_button": "Uppgradera till Pro", "account_basics_tier_change_button": "Ändra", "account_usage_cannot_create_portal_session": "Det går inte att öppna faktureringsportalen", "account_usage_basis_ip_description": "Användningsstatistik och begränsningar för det här kontot baseras på din IP-adress, så de kan delas med andra användare. De gränser som visas ovan är ungefärliga och baseras på befintliga gränser.", "account_tokens_title": "Åtkomsttoken", "prefs_notifications_delete_after_one_day_description": "Meddelanden raderas automatiskt efter en dag", "prefs_notifications_delete_after_one_week_description": "Meddelanden raderas automatiskt efter en vecka", "prefs_notifications_delete_after_one_month_description": "Meddelanden raderas automatiskt efter en månad", "prefs_users_title": "Hantera användare", "prefs_reservations_table_not_subscribed": "Prenumererar inte", "prefs_reservations_table_click_to_subscribe": "Klicka för att prenumerera", "prefs_reservations_edit_button": "Redigera ämnesåtkomst", "prefs_reservations_delete_button": "Återställ ämnesåtkomst", "prefs_reservations_table": "Tabell över reserverade ämnen", "prefs_reservations_table_topic_header": "Ämne", "prefs_reservations_table_access_header": "Tillgång", "prefs_reservations_table_everyone_deny_all": "Endast jag kan publicera och prenumerera", "prefs_reservations_table_everyone_read_only": "Jag kan publicera och prenumerera, alla kan prenumerera", "prefs_reservations_table_everyone_write_only": "Jag kan publicera och prenumerera, alla kan publicera", "prefs_reservations_table_everyone_read_write": "Alla kan publicera och prenumerera", "prefs_reservations_dialog_title_add": "Reserverade ämnen", "prefs_reservations_dialog_description": "Genom att reservera ett ämne får du äganderätt till ämnet och kan definiera åtkomstbehörigheter för andra användare till ämnet.", "prefs_reservations_dialog_topic_label": "Ämne", "prefs_reservations_dialog_access_label": "Tillgång", "reservation_delete_dialog_action_keep_title": "Behåll cachade meddelanden och bilagor", "reservation_delete_dialog_action_keep_description": "Meddelanden och bilagor som lagras på servern blir offentligt synliga för personer som känner till ämnesnamnet.", "reservation_delete_dialog_action_delete_title": "Ta bort meddelanden och bilagor som sparats i cacheminnet", "reservation_delete_dialog_description": "Om du tar bort en reservation ger du upp äganderätten till ämnet och låter andra reservera det. Du kan behålla eller radera befintliga meddelanden och bilagor.", "publish_dialog_call_label": "Telefonsamtal", "publish_dialog_call_reset": "Ta bort telefonsamtal", "publish_dialog_chip_call_label": "Telefonsamtal", "account_basics_phone_numbers_title": "Telefonnummer", "account_basics_phone_numbers_description": "För notifieringar via telefonsamtal", "account_basics_phone_numbers_no_phone_numbers_yet": "Inga telefonnummer ännu", "account_basics_phone_numbers_copied_to_clipboard": "Telefonnummer kopierat till urklipp", "account_basics_phone_numbers_dialog_title": "Lägg till telefonnummer", "account_basics_phone_numbers_dialog_number_label": "Telefonnummer", "account_basics_phone_numbers_dialog_number_placeholder": "t.ex. +1222333444", "account_basics_phone_numbers_dialog_verify_button_sms": "Skicka SMS", "account_basics_phone_numbers_dialog_verify_button_call": "Ring mig", "account_basics_phone_numbers_dialog_code_label": "Verifieringskod", "account_basics_phone_numbers_dialog_channel_call": "Ring", "account_usage_calls_title": "Telefonsamtal som gjorts", "account_usage_calls_none": "Inga telefonsamtal kan göras med detta konto", "publish_dialog_call_item": "Ring telefonnummer {{number}}", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Inga verifierade telefonnummer", "account_basics_phone_numbers_dialog_description": "För att använda funktionen för samtalsavisering måste du lägga till och verifiera minst ett telefonnummer. Verifieringen kan göras via SMS eller ett telefonsamtal.", "account_basics_phone_numbers_dialog_code_placeholder": "t.ex. 123456", "account_basics_phone_numbers_dialog_check_verification_button": "Bekräfta kod", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} dagliga telefonsamtal", "account_upgrade_dialog_tier_features_no_calls": "Inga telefonsamtal", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} dagliga telefonsamtal", "action_bar_mute_notifications": "Stäng av aviseringar", "action_bar_unmute_notifications": "Slå på aviseringar", "alert_notification_permission_denied_description": "Vänligen aktivera dem i din weblsäare", "alert_notification_ios_install_required_title": "iOS installation krävs", "notifications_actions_failed_notification": "Misslyckad åtgärd", "alert_notification_permission_denied_title": "Notifieringar är blockerade", "alert_notification_ios_install_required_description": "Klicka på delaikonen och Lägg till på hemskärmen för att aktivera notifieringarna i iOS" } ntfy-2.11.0/web/public/static/langs/tr.json000066400000000000000000001004141462047176100205310ustar00rootroot00000000000000{ "nav_button_subscribe": "Konuya abone ol", "nav_button_settings": "Ayarlar", "action_bar_send_test_notification": "Test bildirimi gönder", "message_bar_type_message": "Buraya bir mesaj yazın", "action_bar_clear_notifications": "Tüm bildirimleri temizle", "action_bar_unsubscribe": "Abonelikten çık", "action_bar_settings": "Ayarlar", "message_bar_error_publishing": "Bildirim yayınlanırken hata oluştu", "nav_topics_title": "Abone olunan konular", "nav_button_all_notifications": "Tüm bildirimler", "publish_dialog_tags_placeholder": "Virgülle ayrılmış etiket listesi, örn. uyarı, srv1-yedekleme", "publish_dialog_priority_label": "Öncelik", "publish_dialog_click_label": "Tıklama URL'si", "publish_dialog_click_placeholder": "Bildirim tıklandığında açılan URL", "publish_dialog_email_label": "E-posta adresi", "publish_dialog_email_placeholder": "Bildirimin iletileceği adres, örn. phil@example.com", "publish_dialog_attach_label": "Ek URL'si", "publish_dialog_filename_label": "Dosya adı", "publish_dialog_filename_placeholder": "Ek dosya adı", "publish_dialog_delay_label": "Gecikme", "publish_dialog_button_cancel": "İptal", "publish_dialog_button_send": "Gönder", "publish_dialog_checkbox_publish_another": "Başka bir tane yayınla", "publish_dialog_attached_file_title": "Ekli dosya:", "publish_dialog_attached_file_filename_placeholder": "Ek dosya adı", "subscribe_dialog_subscribe_title": "Konuya abone ol", "subscribe_dialog_subscribe_description": "Konular parola korumalı olmayabilir, bu nedenle tahmin edilmesi kolay olmayan bir ad seçin. Abone olduktan sonra PUT/POST bildirimleri yapabilirsiniz.", "subscribe_dialog_subscribe_topic_placeholder": "Konu adı, örn. benim_uyarilarim", "subscribe_dialog_subscribe_use_another_label": "Başka bir sunucu kullan", "subscribe_dialog_subscribe_button_cancel": "İptal", "subscribe_dialog_subscribe_button_subscribe": "Abone ol", "subscribe_dialog_login_title": "Oturum açma gerekli", "subscribe_dialog_login_description": "Bu konu parola korumalı. Abone olmak için lütfen kullanıcı adı ve parola girin.", "subscribe_dialog_login_username_label": "Kullanıcı adı, örn. phil", "subscribe_dialog_login_password_label": "Parola", "common_back": "Geri", "subscribe_dialog_login_button_login": "Oturum aç", "subscribe_dialog_error_user_not_authorized": "{{username}} kullanıcısı yetkili değil", "subscribe_dialog_error_user_anonymous": "anonim", "prefs_notifications_title": "Bildirimler", "prefs_notifications_sound_title": "Bildirim sesi", "prefs_notifications_sound_no_sound": "Ses yok", "prefs_notifications_min_priority_title": "En düşük öncelik", "prefs_notifications_min_priority_any": "Herhangi bir öncelik", "publish_dialog_topic_placeholder": "Konu adı, örn. benim_uyarilarim", "alert_notification_permission_required_button": "Şimdi ver", "alert_not_supported_title": "Bildirimler desteklenmiyor", "notifications_attachment_link_expires": "bağlantının süresi {{date}} tarihinde doluyor", "notifications_click_copy_url_title": "Bağlantı URL'sini panoya kopyala", "notifications_loading": "Bildirimler yükleniyor…", "publish_dialog_progress_uploading": "Karşıya yükleniyor…", "publish_dialog_attachment_limits_file_reached": "{{fileSizeLimit}} dosya sınırını aşıyor", "publish_dialog_priority_default": "Öntanımlı öncelik", "publish_dialog_chip_click_label": "Tıklama URL'si", "publish_dialog_attach_placeholder": "URL ile dosya ekle, örn. https://f-droid.org/F-Droid.apk", "prefs_notifications_delete_after_never": "Hiçbir zaman", "notifications_attachment_copy_url_button": "URL'yi kopyala", "notifications_attachment_open_button": "Eki aç", "nav_button_documentation": "Belgelendirme", "nav_button_publish_message": "Bildirim yayınla", "alert_notification_permission_required_title": "Bildirimler devre dışı", "alert_notification_permission_required_description": "Tarayıcınıza masaüstü bildirimlerini görüntüleme izni verin", "alert_not_supported_description": "Tarayıcınızda bildirimler desteklenmiyor", "notifications_copied_to_clipboard": "Panoya kopyalandı", "notifications_tags": "Etiketler", "notifications_attachment_copy_url_title": "Ek URL'sini panoya kopyala", "notifications_attachment_open_title": "{{url}} adresine git", "notifications_none_for_topic_title": "Bu konu için henüz herhangi bir bildirim almadınız.", "notifications_none_for_topic_description": "Bu konuya bildirim göndermek için konu URL'sine PUT veya POST göndermeniz yeterlidir.", "notifications_none_for_any_title": "Herhangi bir bildirim almadınız.", "notifications_attachment_link_expired": "indirme bağlantısının süresi doldu", "notifications_click_copy_url_button": "Bağlantıyı kopyala", "notifications_actions_open_url_title": "{{url}} adresine git", "notifications_click_open_button": "Bağlantıyı aç", "notifications_no_subscriptions_description": "Bir konu oluşturmak veya bir konuya abone olmak için \"{{linktext}}\" bağlantısına tıklayın. Bundan sonra PUT veya POST yoluyla mesaj gönderebilirsiniz ve buradan bildirimler alırsınız.", "notifications_example": "Örnek", "notifications_more_details": "Daha fazla bilgi için web sitesine veya belgelendirmeye bakın.", "publish_dialog_chip_attach_url_label": "URL ile dosya ekle", "prefs_notifications_min_priority_default_and_higher": "Varsayılan öncelik ve üstü", "prefs_notifications_delete_after_three_hours": "Üç saat sonra", "notifications_none_for_any_description": "Bir konuya bildirim göndermek için konu URL'sine PUT veya POST göndermeniz yeterlidir. İşte konularınızdan birini kullanan bir örnek.", "notifications_no_subscriptions_title": "Henüz aboneliğiniz yok gibi görünüyor.", "publish_dialog_title_topic": "{{topic}} konusuna yayınla", "publish_dialog_title_no_topic": "Bildirim yayınla", "publish_dialog_progress_uploading_detail": "Karşıya yükleniyor: {{loaded}}/{{total}} ({{percent}}%)…", "publish_dialog_attachment_limits_file_and_quota_reached": "{{fileSizeLimit}} dosya sınırını ve kotasını aşıyor, kalan {{remainingBytes}}", "publish_dialog_priority_min": "En düşük öncelik", "publish_dialog_priority_low": "Düşük öncelik", "publish_dialog_base_url_label": "Hizmet URL'si", "publish_dialog_attachment_limits_quota_reached": "kotayı aşıyor, kalan {{remainingBytes}}", "publish_dialog_message_published": "Bildirim yayınlandı", "publish_dialog_title_label": "Başlık", "publish_dialog_priority_high": "Yüksek öncelik", "publish_dialog_priority_max": "En yüksek öncelik", "publish_dialog_message_label": "Mesaj", "publish_dialog_other_features": "Diğer özellikler:", "publish_dialog_chip_email_label": "E-posta adresine ilet", "publish_dialog_topic_label": "Konu adı", "publish_dialog_base_url_placeholder": "Hizmet URL'si, örn. https://example.com", "publish_dialog_title_placeholder": "Bildirim başlığı, örn. Disk alanı uyarısı", "publish_dialog_message_placeholder": "Buraya bir mesaj yazın", "publish_dialog_tags_label": "Etiketler", "publish_dialog_delay_placeholder": "Teslimat gecikmesi, örn. {{unixTimestamp}}, {{relativeTime}} veya \"{{naturalLanguage}}\"", "publish_dialog_chip_attach_file_label": "Yerel dosya ekle", "publish_dialog_chip_delay_label": "Teslimat gecikmesi", "publish_dialog_chip_topic_label": "Konuyu değiştir", "publish_dialog_button_cancel_sending": "Göndermeyi iptal et", "prefs_notifications_delete_after_one_week": "Bir hafta sonra", "prefs_notifications_delete_after_one_month": "Bir ay sonra", "publish_dialog_details_examples_description": "Örnekler ve tüm gönderme özelliklerinin ayrıntılı açıklaması için lütfen belgelendirmeye bakın.", "emoji_picker_search_placeholder": "Emoji ara", "prefs_notifications_delete_after_title": "Bildirimleri sil", "prefs_notifications_delete_after_one_day": "Bir gün sonra", "publish_dialog_drop_file_here": "Dosyayı buraya bırakın", "prefs_notifications_min_priority_low_and_higher": "Düşük öncelik ve üstü", "prefs_notifications_min_priority_high_and_higher": "Yüksek öncelik ve üstü", "prefs_notifications_min_priority_max_only": "Yalnızca en yüksek öncelik", "prefs_users_title": "Kullanıcıları yönet", "prefs_users_dialog_title_edit": "Kullanıcıyı düzenle", "prefs_users_dialog_base_url_label": "Hizmet URL'si, örn. https://ntfy.sh", "prefs_users_description": "Burada korunan konularınız için kullanıcı ekleyin/kaldırın. Lütfen kullanıcı adı ve parolanın tarayıcının yerel deposunda saklandığını unutmayın.", "prefs_users_add_button": "Kullanıcı ekle", "prefs_users_table_base_url_header": "Hizmet URL'si", "prefs_users_dialog_title_add": "Kullanıcı ekle", "prefs_users_dialog_username_label": "Kullanıcı adı, örn. phil", "prefs_users_table_user_header": "Kullanıcı", "prefs_users_dialog_password_label": "Parola", "common_add": "Ekle", "common_cancel": "İptal", "common_save": "Kaydet", "prefs_appearance_title": "Görünüm", "prefs_appearance_language_title": "Dil", "error_boundary_title": "Olamaz, ntfy çöktü", "error_boundary_gathering_info": "Daha fazla bilgi topla…", "error_boundary_description": "Bunun olmaması gerekiyordu. Çok üzgünüm.
      Bir dakikanız varsa, lütfen bunu GitHub üzerinden bildirin ya da Discord veya Matrix aracılığıyla bize iletin.", "error_boundary_button_copy_stack_trace": "Yığın izlemeyi kopyala", "error_boundary_stack_trace": "Yığın izleme", "prefs_notifications_sound_description_none": "Bildirimler geldiğinde herhangi bir ses çalmaz", "prefs_notifications_sound_description_some": "Bildirimler geldiğinde {{sound}} sesini çalar", "prefs_notifications_min_priority_description_any": "Öncelikten bağımsız olarak tüm bildirimleri göster", "prefs_notifications_min_priority_description_x_or_higher": "Öncelik {{number}} ({{name}}) veya üstüyse bildirimleri göster", "prefs_notifications_delete_after_one_month_description": "Bildirimler bir ay sonra otomatik olarak silinir", "prefs_notifications_delete_after_three_hours_description": "Bildirimler üç saat sonra otomatik olarak silinir", "prefs_notifications_delete_after_one_week_description": "Bildirimler bir hafta sonra otomatik olarak silinir", "priority_min": "en düşük", "priority_low": "düşük", "priority_max": "en yüksek", "prefs_notifications_delete_after_one_day_description": "Bildirimler bir gün sonra otomatik olarak silinir", "priority_default": "öntanımlı", "prefs_notifications_min_priority_description_max": "Öncelik 5 (en fazla) ise bildirimleri göster", "prefs_notifications_delete_after_never_description": "Bildirimler asla otomatik olarak silinmez", "priority_high": "yüksek", "notifications_actions_not_supported": "Eylem, web uygulamasında desteklenmiyor", "notifications_actions_http_request_title": "{{url}} adresine HTTP {{method}} gönder", "action_bar_show_menu": "Menüyü göster", "action_bar_logo_alt": "ntfy logosu", "action_bar_toggle_action_menu": "Eylem menüsünü aç/kapat", "message_bar_show_dialog": "Yayınla iletişim kutusunu göster", "message_bar_publish": "Mesaj yayınla", "nav_button_connecting": "bağlanıyor", "notifications_list": "Bildirimler listesi", "notifications_list_item": "Bildirim", "notifications_delete": "Sil", "notifications_attachment_image": "Ek resmi", "notifications_attachment_file_image": "resim dosyası", "notifications_attachment_file_video": "video dosyası", "notifications_attachment_file_audio": "ses dosyası", "notifications_attachment_file_app": "Android uygulama dosyası", "notifications_attachment_file_document": "diğer belge", "publish_dialog_emoji_picker_show": "Emoji seç", "publish_dialog_topic_reset": "Konuyu sıfırla", "publish_dialog_attach_reset": "Ek URL'sini kaldır", "publish_dialog_delay_reset": "Gecikmeli teslimatı kaldır", "publish_dialog_attached_file_remove": "Ekli dosyayı kaldır", "emoji_picker_search_clear": "Aramayı temizle", "subscribe_dialog_subscribe_base_url_label": "Hizmet URL'si", "prefs_notifications_sound_play": "Seçilen sesi çal", "error_boundary_unsupported_indexeddb_description": "ntfy web uygulamasının çalışması için IndexedDB'ye ihtiyacı var ve tarayıcınız gizli tarama modunda IndexedDB'yi desteklemiyor.

      Bu talihsiz olsa da, ntfy web uygulamasını gizli tarama modunda kullanmak pek mantıklı değildir, çünkü her şey tarayıcı deposunda saklanır. Bu GitHub sorununda bununla ilgili daha fazla bilgi edinebilir veya Discord veya Matrix üzerinden bizimle konuşabilirsiniz.", "notifications_new_indicator": "Yeni bildirim", "action_bar_toggle_mute": "Bildirimleri sesini kapat/aç", "publish_dialog_click_reset": "Tıklama URL'sini kaldır", "prefs_users_table": "Kullanıcılar tablosu", "error_boundary_unsupported_indexeddb_title": "Gizli tarama desteklenmiyor", "nav_button_muted": "Bildirimler sessize alındı", "notifications_mark_read": "Okundu olarak işaretle", "notifications_priority_x": "Öncelik {{priority}}", "publish_dialog_email_reset": "E-posta yönlendirmesini kaldır", "prefs_users_edit_button": "Kullanıcıyı düzenle", "prefs_users_delete_button": "Kullanıcı sil", "signup_form_confirm_password": "Parolayı doğrula", "signup_form_button_submit": "Kaydol", "signup_form_toggle_password_visibility": "Parola görünürlüğünü değiştir", "signup_already_have_account": "Zaten hesabınız var mı? Oturum açın!", "signup_disabled": "Kayıt devre dışı bırakıldı", "signup_error_username_taken": "{{username}} kullanıcı adı zaten alındı", "signup_error_creation_limit_reached": "Hesap oluşturma sınırına ulaşıldı", "login_title": "ntfy hesabınızda oturum açın", "login_form_button_submit": "Oturum aç", "login_link_signup": "Kaydol", "login_disabled": "Oturum açma devre dışı bırakıldı", "action_bar_account": "Hesap", "action_bar_change_display_name": "Görünen adı değiştir", "action_bar_reservation_add": "Konuyu ayırt", "action_bar_reservation_edit": "Ayırtmayı değiştir", "action_bar_reservation_delete": "Ayırtmayı kaldır", "action_bar_reservation_limit_reached": "Sınıra ulaşıldı", "action_bar_sign_in": "Oturum aç", "action_bar_sign_up": "Kaydol", "nav_button_account": "Hesap", "nav_upgrade_banner_label": "ntfy Pro'ya yükselt", "alert_not_supported_context_description": "Bildirimler yalnızca HTTPS üzerinden desteklenir. Bu, Bildirim API'sinin bir sınırlamasıdır.", "display_name_dialog_description": "Abonelik listesinde görüntülenen bir konu için farklı bir ad belirleyin. Bu, karmaşık adlara sahip konuların daha kolay tanınmasına yardımcı olur.", "display_name_dialog_placeholder": "Görünen ad", "reserve_dialog_checkbox_label": "Konuyu ayırt ve erişimi yapılandır", "subscribe_dialog_error_topic_already_reserved": "Konu zaten ayırtıldı", "account_basics_title": "Hesap", "account_basics_username_title": "Kullanıcı adı", "account_basics_username_description": "Hey, bu sizsiniz ❤", "account_basics_username_admin_tooltip": "Siz Yöneticisiniz", "account_basics_password_title": "Parola", "account_basics_password_description": "Hesap parolanızı değiştirin", "account_basics_password_dialog_current_password_label": "Geçerli parola", "account_basics_password_dialog_title": "Parolayı değiştir", "account_basics_password_dialog_button_submit": "Parolayı değiştir", "account_basics_password_dialog_current_password_incorrect": "Parola yanlış", "account_usage_title": "Kullanım", "account_usage_of_limit": "/ {{limit}}", "account_usage_unlimited": "Sınırsız", "account_usage_limits_reset_daily": "Kullanım sınırları her gün gece yarısında (UTC) sıfırlanır", "account_basics_tier_title": "Hesap türü", "account_basics_tier_description": "Hesabınızın güç seviyesi", "account_basics_tier_admin": "Yönetici", "account_basics_tier_basic": "Temel", "account_basics_tier_free": "Ücretsiz", "account_basics_tier_upgrade_button": "Pro'ya yükselt", "account_basics_tier_change_button": "Değiştir", "account_basics_tier_paid_until": "Abonelik {{date}} tarihine kadar ödendi ve otomatik olarak yenilenecek", "account_basics_tier_admin_suffix_with_tier": "({{tier}} seviyesiyle)", "account_basics_tier_admin_suffix_no_tier": "(seviye yok)", "account_basics_tier_manage_billing_button": "Faturalandırmayı yönet", "account_usage_reservations_title": "Ayırtılan konular", "account_usage_reservations_none": "Bu hesap için ayırtılan konu yok", "account_usage_attachment_storage_title": "Ek depolama", "account_usage_attachment_storage_description": "Dosya başına {{filesize}}, {{expiry}} sonrasında silinir", "account_usage_cannot_create_portal_session": "Faturalandırma sayfası açılamıyor", "account_delete_title": "Hesabı sil", "account_delete_description": "Hesabınızı kalıcı olarak silin", "account_delete_dialog_description": "Bu işlem, sunucuda depolanan tüm veriler dahil olmak üzere hesabınızı kalıcı olarak silecektir. Silme işleminden sonra kullanıcı adınız 7 gün boyunca kullanılamayacaktır. Gerçekten devam etmek istiyorsanız, lütfen aşağıdaki kutuya parolanızı yazarak onaylayın.", "account_delete_dialog_button_cancel": "İptal", "account_delete_dialog_button_submit": "Hesabı kalıcı olarak sil", "account_delete_dialog_billing_warning": "Hesabınızı silmek, faturalandırma aboneliğinizi de anında iptal eder. Artık faturalandırma sayfasına erişiminiz olmayacak.", "account_upgrade_dialog_title": "Hesap seviyesini değiştir", "account_upgrade_dialog_proration_info": "Fiyatlandırma: Ücretli planlar arasında yükseltme yaparken, fiyat farkı hemen tahsil edilecektir. Daha düşük bir seviyeye inildiğinde, bakiye gelecek faturalandırma dönemleri için ödeme yapmak üzere kullanılacaktır.", "account_upgrade_dialog_reservations_warning_other": "Seçilen seviye, geçerli seviyenizden daha az konu ayırtmaya izin veriyor. Seviyenizi değiştirmeden önce lütfen en az {{count}} ayırtmayı silin. Ayırtmaları Ayarlar sayfasından kaldırabilirsiniz.", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} konu ayırtıldı", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} günlük mesaj", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} günlük e-posta", "account_upgrade_dialog_tier_features_attachment_file_size": "dosya başına {{filesize}}", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} toplam depolama", "account_upgrade_dialog_tier_selected_label": "Seçilen", "account_upgrade_dialog_tier_current_label": "Geçerli", "account_upgrade_dialog_button_cancel": "İptal", "account_upgrade_dialog_button_redirect_signup": "Şimdi kaydol", "account_upgrade_dialog_button_pay_now": "Şimdi öde ve abone ol", "account_upgrade_dialog_button_cancel_subscription": "Aboneliği iptal et", "account_tokens_title": "Erişim belirteçleri", "account_tokens_table_token_header": "Belirteç", "account_tokens_table_label_header": "Etiket", "account_tokens_table_current_session": "Geçerli tarayıcı oturumu", "common_copy_to_clipboard": "Panoya kopyala", "account_tokens_table_copied_to_clipboard": "Erişim belirteci kopyalandı", "account_tokens_table_cannot_delete_or_edit": "Geçerli oturum belirteci düzenlenemez veya silinemez", "account_tokens_table_create_token_button": "Erişim belirteci oluştur", "account_tokens_table_last_origin_tooltip": "{{ip}} IP adresinden, aramak için tıklayın", "account_tokens_dialog_title_edit": "Erişim belirtecini düzenle", "account_tokens_table_expires_header": "Süre dolumu", "account_tokens_table_never_expires": "Asla süresi dolmaz", "account_tokens_dialog_title_delete": "Erişim belirtecini sil", "account_tokens_dialog_label": "Etiket, örn. Radarr bildirimleri", "account_tokens_dialog_button_create": "Belirteç oluştur", "account_tokens_dialog_button_update": "Belirteci güncelle", "account_tokens_dialog_button_cancel": "İptal", "account_tokens_dialog_expires_label": "Erişim belirtecinin süre dolumu", "account_tokens_dialog_expires_unchanged": "Süre dolumu tarihini değiştirmeden bırak", "account_tokens_dialog_expires_x_hours": "Belirtecin süresi {{hours}} saat içinde dolacak", "account_tokens_dialog_expires_x_days": "Belirtecin süresi {{days}} gün içinde dolacak", "account_tokens_dialog_expires_never": "Belirtecin süresi asla dolmaz", "account_tokens_delete_dialog_title": "Erişim belirtecini sil", "account_tokens_delete_dialog_description": "Bir erişim belirtecini silmeden önce, hiçbir uygulamanın veya betiğin onu etkin olarak kullanmadığından emin olun. Bu işlem geri alınamaz.", "account_tokens_delete_dialog_submit_button": "Belirteci kalıcı olarak sil", "prefs_users_table_cannot_delete_or_edit": "Oturum açan kullanıcı silinemez veya düzenlenemez", "prefs_reservations_title": "Ayırtılan konular", "prefs_reservations_description": "Konu adlarını burada kişisel kullanım için ayırtabilirsiniz. Bir konuyu ayırtmak, size konu üzerinde sahiplik sağlar ve konu üzerinde diğer kullanıcılar için erişim izinleri tanımlamanıza olanak tanır.", "prefs_reservations_limit_reached": "Ayırtılan konu sınırınıza ulaştınız.", "prefs_reservations_edit_button": "Konu erişimini düzenle", "prefs_reservations_table": "Ayırtılan konular tablosu", "prefs_reservations_table_topic_header": "Konu", "prefs_reservations_table_access_header": "Erişim", "prefs_reservations_table_everyone_deny_all": "Yalnızca ben yayınlayabilir ve abone olabilirim", "prefs_reservations_table_everyone_write_only": "Ben yayınlayabilir ve abone olabilirim, herkes yayınlayabilir", "prefs_reservations_table_click_to_subscribe": "Abone olmak için tıklayın", "prefs_reservations_dialog_title_add": "Konuyu ayırt", "prefs_reservations_dialog_title_edit": "Ayırtılan konuyu düzenle", "prefs_reservations_dialog_title_delete": "Konu ayırtmasını sil", "prefs_reservations_dialog_description": "Bir konuyu ayırtmak, size konu üzerinde sahiplik sağlar ve konu üzerinde diğer kullanıcılar için erişim izinleri tanımlamanıza olanak tanır.", "prefs_reservations_dialog_topic_label": "Konu", "prefs_reservations_dialog_access_label": "Erişim", "reservation_delete_dialog_action_keep_title": "Önbelleğe alınan mesajları ve ekleri sakla", "reservation_delete_dialog_action_keep_description": "Sunucuda önbelleğe alınan mesajlar ve ekler, konu adını bilen kişiler için görülebilir hale gelecektir.", "reservation_delete_dialog_action_delete_title": "Önbelleğe alınan mesajları ve ekleri sil", "reservation_delete_dialog_action_delete_description": "Önbelleğe alınan mesajlar ve ekler kalıcı olarak silinecektir. Bu işlem geri alınamaz.", "reservation_delete_dialog_submit_button": "Ayırtmayı sil", "signup_title": "ntfy hesabı oluştur", "signup_form_username": "Kullanıcı adı", "signup_form_password": "Parola", "action_bar_profile_title": "Profil", "action_bar_profile_logout": "Oturumu kapat", "action_bar_profile_settings": "Ayarlar", "nav_upgrade_banner_description": "Konuları ayırtma, daha fazla mesaj ve e-posta, daha büyük ekler", "display_name_dialog_title": "Görünen adı değiştir", "account_basics_password_dialog_new_password_label": "Yeni parola", "account_usage_basis_ip_description": "Bu hesabın kullanım istatistikleri ve sınırları IP adresinize dayalıdır, bu nedenle diğer kullanıcılarla paylaşılabilir. Yukarıda gösterilen sınırlar, mevcut hız sınırlarına dayalı olarak yaklaşık değerlerdir.", "subscribe_dialog_subscribe_button_generate_topic_name": "Ad oluştur", "account_basics_password_dialog_confirm_password_label": "Parolayı doğrula", "account_basics_tier_payment_overdue": "Ödemenizin vadesi geçti. Lütfen ödeme yönteminizi güncelleyin, aksi takdirde hesabınızın seviyesi yakında düşürülecektir.", "account_usage_messages_title": "Yayınlanan mesajlar", "account_basics_tier_canceled_subscription": "Aboneliğiniz iptal edildi ve {{date}} tarihinde ücretsiz hesap seviyesine düşürülecek.", "account_usage_emails_title": "Gönderilen e-postalar", "account_upgrade_dialog_cancel_warning": "Bu, {{date}} tarihinde aboneliğinizi iptal edecek ve hesabınızın seviyesini düşürecektir. Bu tarihte, sunucuda önbelleğe alınan mesajlar ve ayırtılan konular silinecektir.", "account_delete_dialog_label": "Parola", "prefs_users_description_no_sync": "Kullanıcılar ve parolalar hesabınızla eşzamanlanmıyor.", "account_upgrade_dialog_reservations_warning_one": "Seçilen seviye, geçerli seviyenizden daha az konu ayırtmaya izin veriyor. Seviyenizi değiştirmeden önce lütfen en az bir ayırtmayı silin. Ayırtmaları Ayarlar sayfasından kaldırabilirsiniz.", "account_tokens_dialog_title_create": "Erişim belirteci oluştur", "account_tokens_description": "ntfy API aracılığıyla yayınlarken ve abone olurken erişim belirteçlerini kullanın, böylece hesap kimlik bilgilerinizi göndermek zorunda kalmazsınız. Daha fazla bilgi edinmek için belgelere bakın.", "account_upgrade_dialog_button_update_subscription": "Aboneliği güncelle", "account_tokens_table_last_access_header": "Son erişim", "prefs_reservations_add_button": "Ayırtılan konu ekle", "prefs_reservations_delete_button": "Konu erişimini sıfırla", "prefs_reservations_table_everyone_read_only": "Ben yayınlayabilir ve abone olabilirim, herkes abone olabilir", "prefs_reservations_table_not_subscribed": "Abone olunmadı", "prefs_reservations_table_everyone_read_write": "Herkes yayınlayabilir ve abone olabilir", "reservation_delete_dialog_description": "Ayırtmanın kaldırılması, konu üzerindeki sahiplikten vazgeçer ve başkalarının onu ayırtmasına izin verir. Mevcut mesajları ve ekleri saklayabilir veya silebilirsiniz.", "account_basics_tier_interval_yearly": "yıllık", "account_upgrade_dialog_tier_features_no_reservations": "Ayırtılan konu yok", "account_upgrade_dialog_tier_price_billed_monthly": "Yıllık {{price}}. Aylık faturalandırılır.", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} yıllık olarak faturalandırılır. {{save}} tasarruf edin.", "account_upgrade_dialog_interval_yearly": "Yıllık", "account_upgrade_dialog_interval_yearly_discount_save": "%{{discount}} tasarruf edin", "account_upgrade_dialog_tier_price_per_month": "ay", "account_upgrade_dialog_billing_contact_email": "Faturalama ile ilgili sorularınız için lütfen doğrudan bizimle iletişime geçin.", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "%{{discount}} kadar tasarruf edin", "account_upgrade_dialog_interval_monthly": "Aylık", "account_basics_tier_interval_monthly": "aylık", "account_upgrade_dialog_billing_contact_website": "Faturalama ile ilgili sorularınız için lütfen web sitemizi ziyaret edin.", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} ayırtılan konu", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} günlük e-posta", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} günlük mesaj", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} günlük telefon araması", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} günlük telefon araması", "publish_dialog_call_label": "Telefon araması", "publish_dialog_call_reset": "Telefon aramasını kaldır", "publish_dialog_chip_call_label": "Telefon araması", "account_basics_phone_numbers_title": "Telefon numaraları", "account_basics_phone_numbers_dialog_description": "Arama bildirimi özelliğini kullanmak için en az bir telefon numarası eklemeniz ve doğrulamanız gerekir. Doğrulama SMS veya telefon araması yoluyla yapılabilir.", "account_basics_phone_numbers_description": "Telefon araması bildirimleri için", "account_basics_phone_numbers_no_phone_numbers_yet": "Henüz telefon numarası yok", "account_basics_phone_numbers_copied_to_clipboard": "Telefon numarası panoya kopyalandı", "account_basics_phone_numbers_dialog_title": "Telefon numarası ekle", "account_basics_phone_numbers_dialog_number_label": "Telefon numarası", "account_basics_phone_numbers_dialog_check_verification_button": "Kodu doğrula", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_basics_phone_numbers_dialog_channel_call": "Ara", "account_usage_calls_none": "Bu hesapla telefon araması yapılamaz", "publish_dialog_call_item": "{{number}} telefon numarasını ara", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Doğrulanan telefon numarası yok", "account_basics_phone_numbers_dialog_number_placeholder": "örn. +905554443322", "account_basics_phone_numbers_dialog_verify_button_sms": "SMS gönder", "account_basics_phone_numbers_dialog_verify_button_call": "Beni ara", "account_basics_phone_numbers_dialog_code_label": "Doğrulama kodu", "account_basics_phone_numbers_dialog_code_placeholder": "örn. 123456", "account_usage_calls_title": "Yapılan telefon aramaları", "account_upgrade_dialog_tier_features_no_calls": "Telefon araması yok", "action_bar_mute_notifications": "Bildirimleri sessize al", "action_bar_unmute_notifications": "Bildirimlerin sesini aç", "alert_notification_permission_denied_title": "Bildirimler engellendi", "alert_notification_permission_denied_description": "Lütfen tarayıcınızda yeniden etkinleştirin", "alert_notification_ios_install_required_title": "iOS kurulumu gerekli", "alert_notification_ios_install_required_description": "iOS'ta bildirimleri etkinleştirmek için Paylaş simgesine ve Ana Ekrana Ekle'ye tıklayın", "notifications_actions_failed_notification": "Başarısız eylem", "publish_dialog_checkbox_markdown": "Markdown olarak biçimlendir", "prefs_notifications_web_push_title": "Arka plan bildirimleri", "prefs_notifications_web_push_enabled_description": "Web uygulaması çalışmadığında bile bildirimler alınır (Web Push aracılığıyla)", "prefs_notifications_web_push_disabled_description": "Web uygulaması çalışırken bildirim alınır (WebSocket aracılığıyla)", "prefs_notifications_web_push_enabled": "{{server}} için etkinleştirildi", "prefs_notifications_web_push_disabled": "Devre dışı", "prefs_appearance_theme_title": "Tema", "prefs_appearance_theme_system": "Sistem (öntanımlı)", "prefs_appearance_theme_dark": "Koyu mod", "prefs_appearance_theme_light": "Açık mod", "error_boundary_button_reload_ntfy": "ntfy'yi yeniden yükle", "web_push_subscription_expiring_title": "Bildirimler duraklatılacak", "web_push_subscription_expiring_body": "Bildirimleri almaya devam etmek için ntfy'yi açın", "web_push_unknown_notification_title": "Sunucudan bilinmeyen bildirim alındı", "web_push_unknown_notification_body": "Web uygulamasını açarak ntfy'yi güncellemeniz gerekebilir", "subscribe_dialog_subscribe_use_another_background_info": "Web uygulaması açık değilken diğer sunuculardan gelen bildirimler alınmayacaktır" } ntfy-2.11.0/web/public/static/langs/uk.json000066400000000000000000001205471462047176100205340ustar00rootroot00000000000000{ "action_bar_logo_alt": "логотип ntfy", "action_bar_settings": "Налаштування", "message_bar_type_message": "Введіть повідомлення тут", "message_bar_error_publishing": "Помилка публікації сповіщення", "message_bar_show_dialog": "Показати діалогове вікно публікації", "nav_topics_title": "Підписки на теми", "nav_button_settings": "Налаштування", "nav_button_documentation": "Документація", "nav_button_subscribe": "Підписатися на тему", "nav_button_muted": "Сповіщення вимкнено", "nav_button_connecting": "підключення", "alert_notification_permission_required_title": "Сповіщення вимкнено", "alert_notification_permission_required_description": "Дозвольте браузеру показувати сповіщення.", "alert_notification_permission_required_button": "Дозволити", "alert_not_supported_title": "Сповіщення не підтримуються", "notifications_list_item": "Сповіщення", "notifications_attachment_image": "Прикріплене зображення", "notifications_attachment_open_title": "Перейти на {{url}}", "notifications_attachment_open_button": "Відкрити вкладення", "notifications_attachment_link_expires": "термін дії посилання закінчується {{date}}", "notifications_actions_http_request_title": "Надіслати HTTP {{method}} на {{url}}", "notifications_none_for_any_title": "Ви не отримали жодних сповіщень.", "notifications_no_subscriptions_description": "Натисніть \"{{linktext}}\" посилання, щоб створити або підписатися на тему. Після цього ви зможете надсилати повідомлення за допомогою PUT або POST, і ви отримуватимете тут повідомлення.", "notifications_more_details": "Додаткову інформацію можна знайти на сайті або в документації.", "notifications_loading": "Завантаження сповіщень…", "publish_dialog_title_topic": "Опублікувати в {{topic}}", "publish_dialog_title_no_topic": "Опублікувати сповіщення", "publish_dialog_progress_uploading": "Завантаження…", "publish_dialog_message_published": "Сповіщення опубліковано", "publish_dialog_attachment_limits_quota_reached": "перевищує квоту, залишилося {{remainingBytes}}", "publish_dialog_priority_low": "Низький пріоритет", "publish_dialog_topic_label": "Назва теми", "publish_dialog_topic_placeholder": "Назва теми, наприклад phil_alerts", "publish_dialog_topic_reset": "Скинути тему", "publish_dialog_title_label": "Заголовок", "publish_dialog_title_placeholder": "Заголовок сповіщення, наприклад Сповіщення про дисковий простір", "publish_dialog_message_label": "Повідомлення", "publish_dialog_message_placeholder": "Введіть повідомлення", "publish_dialog_tags_label": "Теги", "publish_dialog_tags_placeholder": "Список тегів розділений комою, наприклад warning, srv1-backup", "publish_dialog_click_placeholder": "URL-адреса, яка відкривається після натискання сповіщення", "publish_dialog_email_label": "Електронна пошта", "publish_dialog_attach_placeholder": "Прикріпіть файл за URL-адресою, наприклад https://f-droid.org/F-Droid.apk", "publish_dialog_attach_reset": "Видалити URL вкладення", "publish_dialog_filename_placeholder": "Ім'я файлу вкладення", "publish_dialog_delay_reset": "Видалити затримку доставлення", "publish_dialog_chip_click_label": "Адреса", "publish_dialog_chip_email_label": "Переслати на електронну пошту", "publish_dialog_chip_topic_label": "Змінити тему", "publish_dialog_attached_file_remove": "Видалити прикріплений файл", "subscribe_dialog_subscribe_topic_placeholder": "Назва теми, наприклад phil_alerts", "subscribe_dialog_subscribe_use_another_label": "Використовувати інший сервер", "subscribe_dialog_subscribe_base_url_label": "URL служби", "subscribe_dialog_login_password_label": "Пароль", "common_back": "Назад", "subscribe_dialog_error_user_not_authorized": "{{username}} користувач не авторизований", "prefs_notifications_sound_description_none": "Сповіщення не відтворюють жодного звуку при надходженні", "prefs_notifications_sound_description_some": "Сповіщення відтворюють звук {{sound}}", "prefs_notifications_min_priority_description_any": "Показати всі сповіщень, незалежно від пріоритету", "prefs_notifications_min_priority_any": "Будь-який пріоритет", "prefs_notifications_min_priority_default_and_higher": "Пріоритет за замовчуванням та високий", "prefs_notifications_delete_after_title": "Видалити сповіщення", "prefs_notifications_delete_after_never": "Ніколи", "prefs_notifications_delete_after_one_day": "Через день", "prefs_notifications_delete_after_one_week": "Через тиждень", "prefs_notifications_delete_after_one_month": "Через місяць", "prefs_notifications_delete_after_never_description": "Сповіщення ніколи не видаляються автоматично", "prefs_notifications_delete_after_three_hours_description": "Сповіщення автоматично видаляються через три години", "prefs_notifications_delete_after_one_day_description": "Сповіщення автоматично видаляються через один день", "prefs_notifications_delete_after_one_week_description": "Сповіщення автоматично видаляються через тиждень", "prefs_notifications_delete_after_one_month_description": "Сповіщення автоматично видаляються через місяць", "prefs_users_title": "Керувати користувачами", "prefs_users_table": "Таблиця користувачів", "prefs_users_edit_button": "Редагувати користувача", "common_save": "Зберегти", "prefs_appearance_title": "Зовнішній вигляд", "priority_default": "за замовчуванням", "priority_high": "високий", "priority_max": "макс", "error_boundary_title": "Ой, ntfy впав", "error_boundary_button_copy_stack_trace": "Копіювати трасування стека", "action_bar_show_menu": "Показати меню", "action_bar_toggle_action_menu": "Відкрити/закрити меню", "action_bar_send_test_notification": "Надіслати тестове сповіщення", "action_bar_clear_notifications": "Очистити всі сповіщення", "action_bar_toggle_mute": "Вимкнути/увімкнути сповіщення", "action_bar_unsubscribe": "Відписатися", "message_bar_publish": "Опублікувати повідомлення", "nav_button_all_notifications": "Усі сповіщення", "alert_not_supported_description": "Ваш браузер не підтримує сповіщення.", "notifications_list": "Список сповіщень", "notifications_mark_read": "Позначити як прочитане", "notifications_delete": "Видалити", "notifications_tags": "Теги", "nav_button_publish_message": "Опублікувати сповіщення", "notifications_attachment_copy_url_title": "Копіювати URL-адресу вкладення", "notifications_attachment_link_expired": "термін дії посилання для завантаження закінчився", "publish_dialog_progress_uploading_detail": "Завантажується {{loaded}}/{{total}} ({{percent}}%) …", "notifications_priority_x": "Пріоритет {{priority}}", "notifications_attachment_copy_url_button": "Копіювати URL-адресу", "notifications_copied_to_clipboard": "Скопійовано в буфер обміну", "notifications_attachment_file_video": "відео файл", "notifications_attachment_file_audio": "звуковий файл", "publish_dialog_emoji_picker_show": "Виберіть емодзі", "notifications_new_indicator": "Нове сповіщення", "notifications_attachment_file_image": "файл зображення", "notifications_attachment_file_document": "інший документ", "notifications_click_copy_url_title": "Копіювати URL-адресу посилання", "notifications_click_copy_url_button": "Копіювати посилання", "notifications_actions_not_supported": "Дія не підтримується у браузері", "notifications_attachment_file_app": "Файл програми Android", "notifications_click_open_button": "Відкрити посилання", "notifications_actions_open_url_title": "Перейти на {{url}}", "notifications_none_for_topic_description": "Щоб надіслати сповіщення до цієї теми, просто надішліть PUT або POST на URL-адресу цієї теми.", "notifications_no_subscriptions_title": "Схоже, у вас ще немає жодної підписки.", "publish_dialog_drop_file_here": "Перетягніть файл сюди", "notifications_none_for_topic_title": "Ви ще не отримували сповіщення на цю тему.", "notifications_example": "Приклад", "notifications_none_for_any_description": "Щоб надіслати сповіщення до теми, просто надішліть PUT або POST на URL-адресу теми. Ось приклад, використовуючи одну з ваших тем.", "publish_dialog_attachment_limits_file_and_quota_reached": "перевищує {{fileSizeLimit}} розмір файлу, {{remainingBytes}} залишилося", "publish_dialog_priority_default": "Пріоритет за замовчуванням", "publish_dialog_attachment_limits_file_reached": "перевищує {{fileSizeLimit}} розмір файлу", "publish_dialog_priority_min": "Мін. пріоритет", "publish_dialog_priority_high": "Високий пріоритет", "publish_dialog_priority_max": "Макс. пріоритет", "publish_dialog_base_url_placeholder": "URL-адреса сервісу, наприклад https://example.com", "publish_dialog_base_url_label": "URL служби", "publish_dialog_other_features": "Інші можливості:", "publish_dialog_chip_attach_file_label": "Прикріпити локальний файл", "publish_dialog_priority_label": "Пріоритет", "publish_dialog_click_label": "Натисніть URL", "publish_dialog_click_reset": "Видалити URL-адресу для натискання", "publish_dialog_email_placeholder": "Адреса для пересилання сповіщення, наприклад phil@example.com", "publish_dialog_attach_label": "URL-адреса вкладення", "publish_dialog_filename_label": "Ім'я файлу", "publish_dialog_delay_label": "Затримка", "publish_dialog_email_reset": "Видалити пересилання електронної пошти", "publish_dialog_chip_attach_url_label": "Прикріпити файл за URL", "publish_dialog_details_examples_description": "Приклади та докладний опис усіх функцій, зверніться до документації.", "publish_dialog_button_cancel_sending": "Скасувати відправку", "publish_dialog_attached_file_filename_placeholder": "Ім'я прикріпленого файлу", "publish_dialog_delay_placeholder": "Затримка доставлення, наприклад {{unixTimestamp}}, {{relativeTime}} або \"{{naturalLanguage}}\" (лише англійською)", "publish_dialog_button_send": "Надіслати", "publish_dialog_checkbox_publish_another": "Опублікувати ще", "publish_dialog_chip_delay_label": "Затримка доставлення", "publish_dialog_button_cancel": "Скасувати", "publish_dialog_attached_file_title": "Прикріплений файл:", "subscribe_dialog_subscribe_description": "Теми можуть не бути захищені паролем, тому виберіть назву, яку нелегко вгадати. Після підписки ви можете PUT/POST сповіщення.", "emoji_picker_search_placeholder": "Пошук емодзі", "emoji_picker_search_clear": "Очистити пошук", "subscribe_dialog_subscribe_title": "Підпишіться на тему", "subscribe_dialog_login_username_label": "Ім'я користувача, наприклад phil", "prefs_notifications_title": "Сповіщення", "subscribe_dialog_subscribe_button_cancel": "Скасувати", "subscribe_dialog_subscribe_button_subscribe": "Підписатися", "subscribe_dialog_error_user_anonymous": "анонімний", "subscribe_dialog_login_title": "Потрібна авторизація", "subscribe_dialog_login_description": "Ця тема захищена паролем. Будь ласка, введіть ім'я користувача та пароль, щоб підписатися.", "prefs_notifications_sound_title": "Звук сповіщення", "subscribe_dialog_login_button_login": "Логін", "prefs_notifications_sound_no_sound": "Без звука", "prefs_notifications_sound_play": "Відтворення вибраного звуку", "prefs_users_description": "Додайте/видаляйте користувачів для захищених тем. Зверніть увагу, що ім'я користувача та пароль зберігаються у локальному сховищі браузера.", "prefs_notifications_min_priority_title": "Мінімальний пріоритет", "prefs_notifications_min_priority_high_and_higher": "Високий пріоритет і вище", "prefs_notifications_min_priority_description_x_or_higher": "Показувати сповіщення, якщо пріоритет {{number}} ({{name}}) або вище", "prefs_notifications_min_priority_description_max": "Показувати сповіщення, якщо пріоритет 5 (макс.)", "prefs_notifications_min_priority_low_and_higher": "Низький та високий пріоритет", "prefs_notifications_min_priority_max_only": "Тільки максимальний пріоритет", "prefs_users_table_base_url_header": "URL служби", "prefs_users_dialog_password_label": "Пароль", "prefs_notifications_delete_after_three_hours": "Через три години", "prefs_users_add_button": "Додати користувача", "prefs_users_dialog_title_edit": "Редагувати користувача", "prefs_users_dialog_base_url_label": "URL-адреса служби, наприклад https://ntfy.sh", "prefs_users_delete_button": "Видалити користувача", "prefs_users_table_user_header": "Користувач", "prefs_users_dialog_title_add": "Додати користувача", "prefs_users_dialog_username_label": "Ім'я користувача, наприклад phil", "common_cancel": "Скасувати", "common_add": "Додати", "prefs_appearance_language_title": "Мова", "error_boundary_gathering_info": "Зберіть більше інформації…", "priority_min": "мін", "error_boundary_description": "Очевидно, цього не повинно статися. Дуже шкода.
      Якщо у вас є хвилина, повідомте про це на GitHub або повідомте нам через Discord або Matrix .", "priority_low": "низький", "error_boundary_stack_trace": "Трасування стека", "error_boundary_unsupported_indexeddb_title": "Приватний перегляд не підтримується", "error_boundary_unsupported_indexeddb_description": "Веб-програма ntfy потребує IndexedDB для роботи, а ваш браузер не підтримує IndexedDB у режимі приватного перегляду.

      На жаль, використання ntfy web не має сенсу у режимі приватного перегляду, оскільки все зберігається в пам’яті браузера. Ви можете прочитати більше про це у цьому випуску GitHub або поспілкуватися з нами на Discord або Matrix.", "signup_title": "Створення облікового запису ntfy", "signup_form_username": "Ім'я користувача", "signup_form_password": "Пароль", "signup_form_confirm_password": "Підтвердіть пароль", "signup_form_button_submit": "Зареєструватися", "signup_form_toggle_password_visibility": "Перемкнути видимість пароля", "signup_already_have_account": "Вже маєте обліковий запис? Увійдіть!", "signup_disabled": "Реєстрацію вимкнено", "signup_error_username_taken": "Ім'я користувача {{username}} вже зайнято", "signup_error_creation_limit_reached": "Досягнуто обмеження на створення облікового запису", "login_title": "Увійдіть до свого облікового запису ntfy", "login_form_button_submit": "Увійти", "login_link_signup": "Зареєструватися", "login_disabled": "Вхід вимкнено", "action_bar_account": "Обліковий запис", "action_bar_reservation_add": "Зарезервувати тему", "action_bar_reservation_edit": "Змінити резервування", "action_bar_reservation_delete": "Видалити резервування", "action_bar_reservation_limit_reached": "Досягнуто ліміту", "action_bar_change_display_name": "Змінити відображувану назву", "action_bar_profile_title": "Профіль", "action_bar_profile_settings": "Налаштування", "action_bar_sign_up": "Зареєструватися", "nav_button_account": "Обліковий запис", "nav_upgrade_banner_description": "Резервування тем, більше повідомлень та імейлів, більші вкладення", "alert_not_supported_context_description": "Сповіщення підтримуються лише через HTTPS. Це обмеження Notifications API.", "display_name_dialog_title": "Змінити відображувану назву", "reserve_dialog_checkbox_label": "Зарезервувати тему та налаштувати доступ", "subscribe_dialog_subscribe_button_generate_topic_name": "Згенерувати назву", "subscribe_dialog_error_topic_already_reserved": "Тема вже зарезервована", "account_basics_title": "Обліковий запис", "account_basics_username_title": "Ім'я користувача", "account_basics_username_description": "Привіт, це ти ❤", "account_basics_password_dialog_title": "Змінити пароль", "account_basics_password_dialog_current_password_label": "Поточний пароль", "account_basics_password_dialog_new_password_label": "Новий пароль", "account_basics_password_dialog_confirm_password_label": "Підтвердіть пароль", "account_basics_password_dialog_button_submit": "Змінити пароль", "account_basics_password_dialog_current_password_incorrect": "Неправильний пароль", "account_usage_title": "Використання", "account_usage_limits_reset_daily": "Ліміти використання скидаються щодня опівночі (UTC)", "account_basics_tier_title": "Тип облікового запису", "account_basics_tier_admin": "Адміністратор", "action_bar_sign_in": "Увійти", "action_bar_profile_logout": "Вийти", "nav_upgrade_banner_label": "Оновлення до ntfy Pro", "display_name_dialog_description": "Задайте альтернативну назву для теми, яка відображатиметься у списку підписок. Це допоможе легше ідентифікувати теми зі складними назвами.", "display_name_dialog_placeholder": "Відображуване ім'я", "account_basics_password_title": "Пароль", "account_basics_username_admin_tooltip": "Ви адміністратор", "account_basics_tier_interval_monthly": "щомісяця", "common_copy_to_clipboard": "Скопіювати в буфер обміну", "account_basics_phone_numbers_title": "Номери телефонів", "account_basics_phone_numbers_description": "Для сповіщень через телефонні дзвінки", "account_basics_phone_numbers_no_phone_numbers_yet": "Поки що немає номерів телефонів", "account_basics_phone_numbers_copied_to_clipboard": "Номер телефону скопійовано в буфер обміну", "account_basics_phone_numbers_dialog_title": "Додати номер телефону", "account_basics_phone_numbers_dialog_number_label": "Номер телефону", "account_basics_phone_numbers_dialog_number_placeholder": "наприклад, +1222333444", "account_basics_phone_numbers_dialog_verify_button_sms": "Надіслати SMS", "account_basics_phone_numbers_dialog_verify_button_call": "Зателефонуйте мені", "account_basics_phone_numbers_dialog_code_label": "Код підтвердження", "account_basics_phone_numbers_dialog_code_placeholder": "наприклад, 123456", "account_basics_phone_numbers_dialog_check_verification_button": "Підтвердити код", "account_basics_phone_numbers_dialog_channel_sms": "SMS", "account_basics_phone_numbers_dialog_channel_call": "Дзвінок", "account_basics_tier_interval_yearly": "щороку", "account_usage_calls_title": "Здійснені телефонні дзвінки", "account_usage_calls_none": "З цього облікового запису не можна здійснювати телефонні дзвінки", "account_usage_attachment_storage_title": "Зберігання вкладень", "account_usage_attachment_storage_description": "{{filesize}} на файл, видаляється після {{expiry}}", "account_usage_basis_ip_description": "Статистика використання та ліміти для цього облікового запису базуються на вашій IP-адресі, тому вони можуть бути доступні іншим користувачам. Ліміти, показані вище, є приблизними і базуються на існуючих лімітах тарифів.", "account_usage_cannot_create_portal_session": "Не вдається відкрити білінговий портал", "account_delete_title": "Видалення облікового запису", "account_delete_description": "Назавжди видалити свій обліковий запис", "account_delete_dialog_label": "Пароль", "account_delete_dialog_button_cancel": "Скасувати", "account_delete_dialog_button_submit": "Видалити обліковий запис назавжди", "account_delete_dialog_billing_warning": "Видалення облікового запису також негайно скасовує вашу підписку. Ви більше не матимете доступу до білінгової панелі.", "account_upgrade_dialog_title": "Зміна рівня облікового запису", "account_upgrade_dialog_interval_monthly": "Щомісяця", "account_upgrade_dialog_interval_yearly": "Щорічно", "account_upgrade_dialog_interval_yearly_discount_save": "економія {{discount}}%", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "економія до {{discount}}%", "publish_dialog_call_label": "Телефонний дзвінок", "publish_dialog_call_placeholder": "Номер телефону, на який потрібно зателефонувати з повідомленням, наприклад, +12223334444 або \"yes\"", "publish_dialog_chip_call_label": "Телефонний дзвінок", "publish_dialog_call_reset": "Видалити телефонний дзвінок", "account_basics_phone_numbers_dialog_description": "Щоб користуватися функцією сповіщення про дзвінки, потрібно додати та верифікувати принаймні один телефонний номер. Верифікацію можна здійснити за допомогою SMS або телефонного дзвінка.", "account_delete_dialog_description": "Це призведе до остаточного видалення вашого облікового запису, включаючи всі дані, які зберігаються на сервері. Після видалення ваше ім'я користувача буде недоступне протягом 7 днів. Якщо ви дійсно хочете продовжити, будь ласка, підтвердьте свій пароль у полі нижче.", "account_basics_tier_upgrade_button": "Оновлення до Pro", "account_basics_password_description": "Зміна пароля облікового запису", "account_usage_of_limit": "з {{limit}}", "account_usage_unlimited": "Без обмежень", "account_basics_tier_description": "Рівень потужності вашого облікового запису", "account_basics_tier_admin_suffix_with_tier": "(з рівнем {{tier}})", "account_basics_tier_admin_suffix_no_tier": "(без рівня)", "account_basics_tier_basic": "Базовий", "account_basics_tier_free": "Безкоштовний", "account_basics_tier_change_button": "Змінити", "account_basics_tier_paid_until": "Підписка оплачена до {{date}} і буде автоматично поновлюватися", "account_basics_tier_payment_overdue": "Ваш платіж прострочено. Будь ласка, оновіть спосіб оплати, інакше ваш обліковий запис буде знижено до нижчого рівня.", "account_basics_tier_canceled_subscription": "Вашу підписку було скасовано, і з {{date}} вона буде знижена до безкоштовного акаунта.", "account_basics_tier_manage_billing_button": "Керувати рахунками", "account_usage_messages_title": "Опубліковані повідомлення", "account_usage_emails_title": "Надіслані електронні листи", "account_usage_reservations_title": "Зарезервовані теми", "account_usage_reservations_none": "Для цього облікового запису немає зарезервованих тем", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} на файл", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} загальне сховище", "account_upgrade_dialog_tier_current_label": "Поточний", "account_upgrade_dialog_tier_selected_label": "Вибране", "account_upgrade_dialog_cancel_warning": "Це скасує вашу підписку і знизить версію вашого облікового запису {{date}}. У цю дату резервування тем, а також повідомлення, кешовані на сервері , буде видалено.", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} зарезервовані теми", "account_upgrade_dialog_tier_features_no_reservations": "Немає зарезервованих тем", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} повідомлень в день", "account_upgrade_dialog_tier_features_emails_one": "{{emails}} електронний лист в день", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} електронних листів в день", "account_upgrade_dialog_tier_features_calls_one": "{{calls}} телефонний дзвінок в день", "account_upgrade_dialog_tier_features_calls_other": "{{дзвінки}} телефонних дзвінків в день", "account_upgrade_dialog_tier_features_no_calls": "Без телефонних дзвінків", "account_upgrade_dialog_tier_price_per_month": "місяць", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} на рік. Рахунок виставляється щомісяця.", "account_upgrade_dialog_tier_price_billed_yearly": "{{price}} виставляється щорічно. Збережіть {{save}}.", "account_upgrade_dialog_billing_contact_email": "Якщо у вас виникли запитання щодо оплати, зв’яжіться з нами безпосередньо.", "account_upgrade_dialog_billing_contact_website": "Якщо у вас виникли запитання щодо оплати, відвідайте наш веб-сайт.", "account_upgrade_dialog_button_cancel_subscription": "Скасувати підписку", "account_upgrade_dialog_button_update_subscription": "Оновити підписку", "account_tokens_title": "Токени доступу", "account_tokens_table_expires_header": "Термін дії закінчується", "account_tokens_description": "Використовуйте токени доступу при публікації та підписці через ntfy API, щоб не надсилати свої облікові дані. Ознайомтеся з документацією, щоб дізнатися більше.", "account_tokens_table_token_header": "Токен", "account_tokens_table_never_expires": "Ніколи не закінчується", "account_tokens_table_label_header": "Мітка", "account_tokens_table_current_session": "Поточний сеанс браузера", "account_tokens_table_last_access_header": "Останній доступ", "account_tokens_table_copied_to_clipboard": "Токен доступу скопійовано", "account_tokens_table_cannot_delete_or_edit": "Неможливо редагувати або видалити токен поточного сеансу", "account_tokens_table_create_token_button": "Створити токен доступу", "account_tokens_table_last_origin_tooltip": "З IP-адреси {{ip}} натисніть для пошуку", "account_tokens_dialog_title_create": "Створити токен доступу", "account_tokens_dialog_button_cancel": "Скасувати", "account_tokens_dialog_title_edit": "Редагувати токен доступу", "account_tokens_dialog_title_delete": "Видалити токен доступу", "account_tokens_dialog_label": "Мітка, наприклад, сповіщення Radarr", "account_tokens_dialog_button_create": "Створити токен", "account_tokens_dialog_button_update": "Оновити токен", "account_tokens_dialog_expires_label": "Термін дії токену доступу закінчується через", "account_tokens_dialog_expires_x_hours": "Термін дії токена закінчується через {{hours}} годин", "account_tokens_dialog_expires_x_days": "Термін дії токена закінчується через {{days}} днів", "account_tokens_delete_dialog_description": "Перш ніж видалити токен доступу, переконайтеся, що жодна програма або скрипт не використовує його. Ця дія не може бути скасована.", "prefs_users_description_no_sync": "Користувачі та паролі не синхронізуються з вашим акаунтом.", "prefs_users_table_cannot_delete_or_edit": "Неможливо видалити або відредагувати користувача, який увійшов у систему", "account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} зарезервована тема", "account_upgrade_dialog_tier_features_messages_one": "{{messages}} повідомлення в день", "account_tokens_dialog_expires_unchanged": "Залишити термін придатності без змін", "account_tokens_dialog_expires_never": "Термін дії токена ніколи не закінчується", "account_tokens_delete_dialog_title": "Видалити токен доступу", "account_tokens_delete_dialog_submit_button": "Видалити токен назавжди", "account_upgrade_dialog_proration_info": "Пропорція: При переході з одного тарифного плану на інший різниця в ціні буде списана негайно. При переході на нижчий рівень залишок коштів буде використано для оплати майбутніх розрахункових періодів.", "account_upgrade_dialog_reservations_warning_one": "Обраний рівень дозволяє менше зарезервованих тем, ніж ваш поточний рівень. Перш ніж змінити свій рівень, будь ласка, видаліть принаймні одне резервування. Ви можете видалити резервування в Налаштуваннях.", "account_upgrade_dialog_reservations_warning_other": "Обраний рівень дозволяє менше зарезервованих тем, ніж ваш поточний рівень. Перш ніж змінити свій рівень, будь ласка, видаліть принаймні {{count}} резервувань. Ви можете видалити резервування в Налаштуваннях.", "account_upgrade_dialog_button_cancel": "Скасувати", "account_upgrade_dialog_button_redirect_signup": "Зареєструватися зараз", "account_upgrade_dialog_button_pay_now": "Оплатити зараз і підписатися", "prefs_reservations_add_button": "Додати зарезервовану тему", "prefs_reservations_edit_button": "Редагувати доступ до теми", "prefs_reservations_limit_reached": "Ви досягли ліміту зарезервованих тем.", "prefs_reservations_table_click_to_subscribe": "Натисніть, щоб підписатися", "prefs_reservations_table_topic_header": "Тема", "prefs_reservations_description": "Тут ви можете зарезервувати назви тем для особистого користування. Резервування теми дає вам право власності на тему і дозволяє визначати права доступу до неї інших користувачів.", "prefs_reservations_table": "Таблиця зарезервованих тем", "prefs_reservations_table_access_header": "Доступ", "prefs_reservations_table_everyone_deny_all": "Тільки я можу публікувати та підписуватись", "prefs_reservations_table_everyone_read_only": "Я можу публікувати та підписуватись, кожен може підписатися", "prefs_reservations_table_everyone_write_only": "Я можу публікувати і підписуватися, кожен може публікувати", "prefs_reservations_table_everyone_read_write": "Кожен може публікувати та підписуватися", "prefs_reservations_table_not_subscribed": "Не підписаний", "prefs_reservations_dialog_title_add": "Зарезервувати тему", "prefs_reservations_dialog_title_edit": "Редагувати зарезервовану тему", "prefs_reservations_title": "Зарезервовані теми", "prefs_reservations_delete_button": "Скинути доступ до теми", "prefs_reservations_dialog_description": "Резервування теми дає вам право власності на цю тему і дозволяє визначати права доступу до неї інших користувачів.", "prefs_reservations_dialog_topic_label": "Тема", "prefs_reservations_dialog_access_label": "Доступ", "reservation_delete_dialog_description": "Видалення резервування позбавляє вас права власності на тему і дозволяє іншим зарезервувати її. Ви можете зберегти або видалити існуючі повідомлення і вкладення.", "reservation_delete_dialog_submit_button": "Видалити резервування", "publish_dialog_call_item": "Телефонувати за номером {{номер}}", "publish_dialog_chip_call_no_verified_numbers_tooltip": "Немає підтверджених номерів телефонів", "prefs_reservations_dialog_title_delete": "Видалити резервування теми", "reservation_delete_dialog_action_delete_title": "Видалення кешованих повідомлень і вкладень", "reservation_delete_dialog_action_keep_title": "Збереження кешованих повідомлень і вкладень", "reservation_delete_dialog_action_keep_description": "Повідомлення і вкладення, які кешуються на сервері, стають загальнодоступними для людей, які знають назву теми.", "reservation_delete_dialog_action_delete_description": "Кешовані повідомлення та вкладення будуть видалені назавжди. Ця дія не може бути скасована." } ntfy-2.11.0/web/public/static/langs/uz.json000066400000000000000000000024271462047176100205470ustar00rootroot00000000000000{ "signup_title": "ntfy hisobini yaratish", "signup_form_password": "Parol", "signup_form_confirm_password": "Parolni tasdiqlang", "signup_error_username_taken": "Foydalanuvchi nomi {{username}} allaqachon foydalanilmoqda", "signup_error_creation_limit_reached": "Boshqa hisob raqam ocha olmaysiz", "login_title": "Ntfy hisobingizga kiring", "login_form_button_submit": "Kirish", "login_link_signup": "Ro'yxatdan o'tish", "login_disabled": "Kirish o'chirilgan", "action_bar_show_menu": "Menyuni ko'rsatish", "action_bar_logo_alt": "ntfy logotipi", "action_bar_settings": "Sozlamalar", "action_bar_change_display_name": "Ko'rsatilgan nomni o'zgartiring", "action_bar_reservation_add": "Zaxira mavzusi", "common_cancel": "Bekor qilish", "common_save": "Saqlash", "common_add": "Qo‘shish", "common_back": "Orqaga", "common_copy_to_clipboard": "Xotiraga nusxalash", "signup_form_username": "Foydalanuvchi nomi", "signup_form_button_submit": "Ro‘yxatdan o‘tish", "signup_form_toggle_password_visibility": "Parol ko‘rinishini o‘zgartirish", "signup_already_have_account": "Hisobingiz bormi? Tizimga kiring!", "signup_disabled": "Ro‘yxatdan o‘tish o‘chirilgan", "action_bar_account": "Hisob" } ntfy-2.11.0/web/public/static/langs/vi.json000066400000000000000000000017601462047176100205260ustar00rootroot00000000000000{ "common_add": "Thêm", "common_back": "Quay lại", "signup_title": "Tạo tài khoản ntfy", "signup_form_toggle_password_visibility": "Hiện mật khẩu", "login_form_button_submit": "Đăng nhập", "common_copy_to_clipboard": "Lưu vào clipboard", "signup_form_username": "Tên user", "signup_already_have_account": "Đã có tài khoản? Đăng nhập!", "signup_disabled": "Đăng kí bị đóng", "signup_error_username_taken": "Tên {{username}} đã được sử dụng", "signup_error_creation_limit_reached": "Đã bị giới hạn tạo tài khoản", "login_title": "Đăng nhập vào tài khoản ntfy", "login_link_signup": "Đăng kí", "login_disabled": "Đăng nhập bị đóng", "action_bar_show_menu": "Hiện menu", "signup_form_password": "Mật khẩu", "action_bar_settings": "Cài đặt", "signup_form_confirm_password": "Xác nhận mật khẩu", "signup_form_button_submit": "Đăng kí" } ntfy-2.11.0/web/public/static/langs/zh_Hans.json000066400000000000000000000722521462047176100215060ustar00rootroot00000000000000{ "action_bar_show_menu": "显示菜单", "action_bar_logo_alt": "ntfy图标", "action_bar_mute_notifications": "静音", "action_bar_settings": "设置", "action_bar_send_test_notification": "发送测试通知", "action_bar_clear_notifications": "清除所有通知", "action_bar_unsubscribe": "取消订阅", "action_bar_toggle_action_menu": "开启或关闭操作菜单", "action_bar_unmute_notifications": "取消静音", "message_bar_type_message": "在此处输入消息", "message_bar_show_dialog": "显示发布对话框", "message_bar_publish": "发布消息", "nav_topics_title": "订阅主题", "nav_button_all_notifications": "全部通知", "nav_button_documentation": "文档", "nav_button_publish_message": "发布通知", "nav_button_subscribe": "订阅主题", "nav_button_connecting": "正在连接", "alert_notification_permission_required_title": "已禁用通知", "alert_notification_permission_required_description": "授予浏览器显示桌面通知的权限。", "alert_notification_permission_required_button": "现在授予", "alert_not_supported_title": "不支持通知", "alert_not_supported_description": "您的浏览器不支持通知。", "alert_notification_ios_install_required_description": "要接收通知,请在iOS上点击分享图标,然后添加到主屏幕。", "alert_notification_ios_install_required_title": "需要安装iOS应用程序", "alert_notification_permission_denied_description": "你已禁用通知。要重新启用通知,请在浏览器设置中启用通知。", "alert_notification_permission_denied_title": "已禁用通知", "notifications_list": "通知列表", "notifications_list_item": "通知", "notifications_mark_read": "标记为已读", "notifications_copied_to_clipboard": "复制到剪贴板", "notifications_tags": "标记", "notifications_priority_x": "优先级 {{priority}}", "notifications_new_indicator": "新通知", "notifications_attachment_open_button": "打开附件", "notifications_attachment_link_expires": "链接过期 {{date}}", "notifications_attachment_link_expired": "下载链接已过期", "notifications_attachment_file_image": "图片文件", "notifications_attachment_image": "附件图片", "notifications_attachment_file_video": "视频文件", "notifications_attachment_file_audio": "音频文件", "notifications_attachment_file_app": "安卓应用文件", "notifications_attachment_file_document": "其他文件", "notifications_click_copy_url_title": "复制链接地址到剪贴板", "notifications_click_copy_url_button": "复制链接", "notifications_click_open_button": "打开链接", "action_bar_toggle_mute": "暂停或恢复通知", "nav_button_muted": "已暂停通知", "notifications_actions_not_supported": "网页应用程序不支持操作", "notifications_none_for_topic_title": "您尚未收到有关此主题的任何通知。", "notifications_none_for_any_title": "您尚未收到任何通知。", "notifications_none_for_any_description": "要向此主题发送通知,只需使用 PUT 或 POST 到主题链接即可。以下是使用您的主题的示例。", "notifications_no_subscriptions_title": "看起来你还没有任何订阅。", "notifications_example": "示例", "notifications_more_details": "有关更多信息,请查看网站文档。", "notifications_loading": "正在加载通知……", "publish_dialog_title_topic": "发布到 {{topic}}", "publish_dialog_title_no_topic": "发布通知", "publish_dialog_progress_uploading": "正在上传……", "publish_dialog_progress_uploading_detail": "正在上传 {{loaded}}/{{total}} ({{percent}}%) ……", "publish_dialog_message_published": "已发布通知", "publish_dialog_attachment_limits_file_and_quota_reached": "超过 {{fileSizeLimit}} 文件限制和配额,剩余 {{remainingBytes}}", "publish_dialog_emoji_picker_show": "选择表情符号", "publish_dialog_priority_min": "最低优先级", "publish_dialog_priority_low": "低优先级", "publish_dialog_priority_default": "默认优先级", "publish_dialog_priority_high": "高优先级", "publish_dialog_priority_max": "最高优先级", "publish_dialog_topic_label": "主题名称", "publish_dialog_topic_placeholder": "主题名称,例如 phil_alerts", "publish_dialog_topic_reset": "重置主题", "publish_dialog_title_label": "主题", "publish_dialog_message_label": "消息", "publish_dialog_message_placeholder": "在此输入消息", "publish_dialog_tags_label": "标记", "publish_dialog_priority_label": "优先级", "publish_dialog_base_url_label": "服务链接地址", "publish_dialog_base_url_placeholder": "服务链接地址,例如 https://example.com", "publish_dialog_click_label": "点击链接地址", "publish_dialog_click_placeholder": "点击通知时打开链接地址", "publish_dialog_email_placeholder": "将通知转发到的地址,例如 phil@example.com", "publish_dialog_email_reset": "移除电子邮件转发", "publish_dialog_filename_label": "文件名", "publish_dialog_filename_placeholder": "附件文件名", "publish_dialog_delay_label": "延期", "publish_dialog_other_features": "其它功能:", "publish_dialog_attach_placeholder": "使用链接地址附加文件,例如 https://f-droid.org/F-Droid.apk", "publish_dialog_delay_reset": "删除延期投递", "publish_dialog_attach_reset": "移除附件链接地址", "publish_dialog_chip_click_label": "点击链接地址", "publish_dialog_chip_email_label": "转发邮件", "publish_dialog_chip_attach_file_label": "本地文件附件", "publish_dialog_chip_topic_label": "变更主题", "publish_dialog_button_cancel_sending": "取消发送", "publish_dialog_checkbox_publish_another": "发布另一个", "publish_dialog_attached_file_title": "附件文件:", "publish_dialog_attached_file_filename_placeholder": "附件文件名", "publish_dialog_attached_file_remove": "删除附件文件", "publish_dialog_drop_file_here": "将文件拖拽至此", "emoji_picker_search_placeholder": "查找表情符号", "emoji_picker_search_clear": "清除搜索", "subscribe_dialog_subscribe_title": "订阅主题", "publish_dialog_chip_delay_label": "延期投递", "publish_dialog_chip_attach_url_label": "链接附件地址", "subscribe_dialog_subscribe_use_another_label": "使用其他服务器", "subscribe_dialog_subscribe_button_subscribe": "订阅", "subscribe_dialog_login_title": "请登录", "subscribe_dialog_login_description": "本主题受密码保护,请输入用户名和密码进行订阅。", "subscribe_dialog_login_username_label": "用户名,例如 phil", "subscribe_dialog_login_password_label": "密码", "common_back": "返回", "subscribe_dialog_login_button_login": "登录", "subscribe_dialog_error_user_not_authorized": "未授权 {{username}} 用户", "subscribe_dialog_error_user_anonymous": "匿名", "prefs_notifications_title": "通知", "prefs_notifications_sound_title": "通知提示音", "prefs_notifications_sound_description_none": "收到通知时不播放任何声音", "prefs_notifications_sound_description_some": "收到通知时播放 {{sound}} 声音", "prefs_notifications_sound_no_sound": "静音", "prefs_notifications_sound_play": "播放选中声音", "prefs_notifications_min_priority_title": "最低优先级", "prefs_notifications_min_priority_description_x_or_higher": "仅显示优先级为{{number}}({{name}})或以上的通知", "prefs_notifications_min_priority_description_max": "仅显示最高优先级的通知", "prefs_notifications_min_priority_any": "任意优先级", "prefs_notifications_min_priority_low_and_higher": "低优先级或更高", "prefs_notifications_min_priority_default_and_higher": "默认优先级或更高", "prefs_notifications_min_priority_high_and_higher": "高优先级或更高", "prefs_notifications_min_priority_max_only": "仅最高优先级", "prefs_notifications_delete_after_never": "从不", "prefs_notifications_delete_after_one_month": "一月后", "prefs_notifications_delete_after_one_week": "一周后", "prefs_notifications_delete_after_never_description": "永不自动删除通知", "prefs_notifications_delete_after_three_hours_description": "三小时后自动删除通知", "prefs_notifications_delete_after_one_day_description": "一天后自动删除通知", "prefs_notifications_delete_after_one_week_description": "一周后自动删除通知", "prefs_notifications_delete_after_one_month_description": "一月后后自动删除通知", "prefs_notifications_web_push_disabled": "已暂用", "prefs_notifications_web_push_disabled_description": "当网页程序在运行时将会收到通知 (透过 WebSocket)", "prefs_notifications_web_push_enabled": "已为 {{server}} 启用", "prefs_notifications_web_push_enabled_description": "即使网页程序未有运行亦会收到通知 (via Web Push)", "prefs_notifications_web_push_title": "背景通知", "prefs_users_title": "管理用户", "prefs_users_description": "在此处添加/删除受保护主题的用户。请注意,用户名和密码存储在浏览器的本地存储中。", "prefs_users_add_button": "添加用户", "prefs_users_dialog_title_add": "添加用户", "prefs_users_dialog_title_edit": "编辑用户", "prefs_users_dialog_username_label": "用户名,例如 phil", "prefs_users_dialog_password_label": "密码", "common_cancel": "取消", "common_save": "保存", "prefs_appearance_title": "外观", "prefs_appearance_language_title": "语言", "prefs_appearance_theme_title": "主題", "prefs_appearance_theme_system": "系統 (預設)", "prefs_appearance_theme_dark": "黑暗模式", "prefs_appearance_theme_light": "光亮模式", "priority_min": "最低", "priority_low": "低", "priority_default": "默认", "priority_high": "高", "priority_max": "最高", "error_boundary_title": "天啊,ntfy 崩溃了", "prefs_users_table_base_url_header": "服务链接地址", "prefs_users_dialog_base_url_label": "服务链接地址,例如 https://ntfy.sh", "error_boundary_button_copy_stack_trace": "复制堆栈跟踪", "error_boundary_button_reload_ntfy": "重新加载 ntfy", "error_boundary_stack_trace": "堆栈跟踪", "error_boundary_gathering_info": "收集更多信息……", "error_boundary_unsupported_indexeddb_title": "不支持隐私浏览", "error_boundary_unsupported_indexeddb_description": "Ntfy Web应用程序需要IndexedDB才能运行,并且您的浏览器在私隐私浏览模式下不支持IndexedDB。

      虽然这很不幸,但在隐私浏览模式下使用ntfy Web应用程序也没有多大意义,因为所有东西都存储在浏览器存储中。您可以在本GitHub问题中阅读有关它的更多信息,或者在DiscordMatrix上与我们交谈。", "message_bar_error_publishing": "发布通知时出错", "nav_button_settings": "设置", "notifications_delete": "删除", "notifications_attachment_copy_url_title": "将附件中链接地址复制到剪贴板", "notifications_attachment_copy_url_button": "复制链接地址", "notifications_attachment_open_title": "转到 {{url}}", "notifications_actions_http_request_title": "发送 HTTP {{method}} 到 {{url}}", "notifications_actions_failed_notification": "通知失败", "notifications_actions_open_url_title": "转到 {{url}}", "notifications_none_for_topic_description": "要向此主题发送通知,只需使用 PUT 或 POST 到主题链接即可。", "subscribe_dialog_subscribe_topic_placeholder": "主题名,例如 phil_alerts", "notifications_no_subscriptions_description": "单击 \"{{linktext}}\" 链接以创建或订阅主题。之后,您可以使用 PUT 或 POST 发送消息,您将在这里收到通知。", "publish_dialog_attachment_limits_file_reached": "超过 {{fileSizeLimit}} 文件限制", "publish_dialog_title_placeholder": "主题标题,例如 磁盘空间告警", "publish_dialog_email_label": "电子邮件", "publish_dialog_button_send": "发送", "publish_dialog_checkbox_markdown": "格式化为 Markdown", "publish_dialog_attachment_limits_quota_reached": "超过配额,剩余 {{remainingBytes}}", "publish_dialog_attach_label": "附件链接地址", "publish_dialog_click_reset": "移除点击连接地址", "publish_dialog_button_cancel": "取消", "subscribe_dialog_subscribe_button_cancel": "取消", "subscribe_dialog_subscribe_base_url_label": "服务地址地址", "subscribe_dialog_subscribe_use_another_background_info": "当网页程序未开启, 将不会收到来自其他服务器的通知", "prefs_notifications_min_priority_description_any": "显示所有通知,无论优先级如何", "prefs_notifications_delete_after_title": "删除通知", "prefs_notifications_delete_after_three_hours": "三小时后", "prefs_users_delete_button": "删除用户", "prefs_users_table_user_header": "用户", "common_add": "添加", "prefs_notifications_delete_after_one_day": "一天后", "error_boundary_description": "这显然不应该发生。对此非常抱歉。
      如果您有时间,请在GitHub上报告,或通过DiscordMatrix告诉我们。", "prefs_users_table": "用户表", "prefs_users_edit_button": "编辑用户", "publish_dialog_tags_placeholder": "英文逗号分隔标记列表,例如 warning, srv1-backup", "publish_dialog_details_examples_description": "有关所有发送功能的示例和详细说明,请参阅文档。", "subscribe_dialog_subscribe_description": "主题可能不受密码保护,因此请选择一个不容易被猜中的名字。订阅后,您可以使用 PUT/POST 通知。", "publish_dialog_delay_placeholder": "延期投递,例如 {{unixTimestamp}}、{{relativeTime}}或「{{naturalLanguage}}」(仅限英语)", "account_usage_basis_ip_description": "此帐户的使用统计信息和限制基于您的 IP 地址,因此可能会与其他用户共享。上面显示的限制是基于现有速率限制的近似值。", "account_usage_cannot_create_portal_session": "无法打开计费门户", "account_delete_title": "删除帐户", "account_delete_description": "永久删除您的帐户", "signup_error_username_taken": "用户名 {{username}} 已被占用", "signup_error_creation_limit_reached": "已达到帐户创建限制", "login_title": "请登录你的 ntfy 帐户", "action_bar_change_display_name": "更改显示名称", "action_bar_reservation_add": "保留主题", "action_bar_reservation_delete": "移除保留", "action_bar_reservation_limit_reached": "达到限制", "action_bar_profile_title": "个人资料", "action_bar_profile_settings": "设置", "action_bar_profile_logout": "登出", "action_bar_sign_in": "登录", "action_bar_sign_up": "注册", "nav_button_account": "帐户", "nav_upgrade_banner_label": "升级到 ntfy Pro", "nav_upgrade_banner_description": "保留主题,更多消息和邮件,以及更大的附件", "alert_not_supported_context_description": "通知仅支持 HTTPS。这是 Notifications API 的限制。", "display_name_dialog_title": "更改显示名称", "display_name_dialog_description": "为订阅列表中显示的主题设置一个替代名称。这有助于更轻松地识别名称复杂的主题。", "display_name_dialog_placeholder": "显示名称", "reserve_dialog_checkbox_label": "保留主题并配置访问", "subscribe_dialog_subscribe_button_generate_topic_name": "生成名称", "account_basics_username_description": "嘿,那是你 ❤", "account_basics_password_description": "更改您的帐户密码", "account_basics_password_dialog_title": "更改密码", "account_basics_password_dialog_current_password_label": "当前密码", "account_basics_password_dialog_new_password_label": "新密码", "account_basics_password_dialog_confirm_password_label": "确认密码", "account_basics_password_dialog_button_submit": "更改密码", "account_basics_password_dialog_current_password_incorrect": "密码错误", "account_usage_title": "使用量", "account_usage_of_limit": "{{limit}} 的", "account_usage_unlimited": "无限", "account_usage_limits_reset_daily": "使用限制每天午夜 (UTC) 重置", "account_basics_tier_title": "帐户类型", "account_basics_tier_description": "您帐户的权限级别", "account_basics_tier_admin": "管理员", "account_basics_tier_admin_suffix_with_tier": "(有 {{tier}} 等级)", "account_basics_tier_admin_suffix_no_tier": "(无等级)", "account_basics_tier_basic": "基础版", "account_basics_tier_free": "免费", "account_basics_tier_upgrade_button": "升级到专业版", "account_basics_tier_change_button": "改变", "account_basics_tier_paid_until": "订阅已支付至 {{date}},并将自动续订", "account_basics_tier_manage_billing_button": "管理计费", "account_usage_messages_title": "已发布消息", "account_usage_emails_title": "已发送电子邮件", "account_usage_reservations_title": "保留主题", "account_usage_reservations_none": "此帐户没有保留主题", "account_usage_attachment_storage_title": "附件存储", "account_usage_attachment_storage_description": "每个文件 {{filesize}},在 {{expiry}} 后删除", "account_upgrade_dialog_button_pay_now": "立即付款并订阅", "account_upgrade_dialog_button_cancel_subscription": "取消订阅", "account_upgrade_dialog_button_update_subscription": "更新订阅", "account_tokens_dialog_title_create": "创建访问令牌", "account_tokens_dialog_title_edit": "编辑访问令牌", "account_tokens_dialog_title_delete": "删除访问令牌", "account_tokens_dialog_button_cancel": "取消", "account_tokens_dialog_expires_label": "访问令牌过期于", "account_tokens_dialog_expires_unchanged": "保持过期日期不变", "account_tokens_dialog_expires_x_hours": "令牌在 {{hours}} 小时后过期", "account_tokens_dialog_expires_x_days": "令牌在 {{days}} 天后过期", "account_tokens_dialog_expires_never": "令牌永不过期", "account_tokens_delete_dialog_title": "删除访问令牌", "account_tokens_delete_dialog_description": "在删除访问令牌之前,请确保没有应用程序或脚本正在活跃使用它。 此操作无法撤消。", "account_tokens_delete_dialog_submit_button": "永久删除令牌", "prefs_users_description_no_sync": "用户和密码不会同步到您的帐户。", "prefs_users_table_cannot_delete_or_edit": "无法删除或编辑已登录用户", "prefs_reservations_title": "保留主题", "prefs_reservations_description": "您可以在此处保留主题名称供个人使用。保留主题使您拥有该主题的所有权,并允许您为其他用户定义对该主题的访问权限。", "prefs_reservations_limit_reached": "您已达到保留主题限制。", "prefs_reservations_add_button": "添加保留主题", "prefs_reservations_edit_button": "编辑主题访问", "prefs_reservations_delete_button": "重置主题访问", "prefs_reservations_table": "保留主题表格", "prefs_reservations_table_topic_header": "主题", "prefs_reservations_table_access_header": "访问", "prefs_reservations_table_everyone_deny_all": "只有我可以发布和订阅", "prefs_reservations_table_everyone_read_only": "我可以发布和订阅,每个人都可以订阅", "prefs_reservations_table_everyone_write_only": "我可以发布和订阅,每个人都可以发布", "prefs_reservations_table_everyone_read_write": "每个人都可以发布和订阅", "prefs_reservations_table_not_subscribed": "未订阅", "prefs_reservations_table_click_to_subscribe": "点击以订阅", "prefs_reservations_dialog_title_add": "保留主题", "prefs_reservations_dialog_title_edit": "编辑保留主题", "prefs_reservations_dialog_title_delete": "删除主题保留", "prefs_reservations_dialog_description": "保留主题使您拥有该主题的所有权,并允许您为其他用户定义对该主题的访问权限。", "prefs_reservations_dialog_topic_label": "主题", "prefs_reservations_dialog_access_label": "访问", "reservation_delete_dialog_description": "删除保留会放弃对该主题的所有权,并允许其他人保留它。您可以保留或删除现有邮件和附件。", "reservation_delete_dialog_action_keep_title": "保留缓存的邮件和附件", "reservation_delete_dialog_action_keep_description": "缓存在服务器上的消息和附件将对知道主题名称的人公开可见。", "reservation_delete_dialog_action_delete_title": "删除缓存的邮件和附件", "reservation_delete_dialog_action_delete_description": "缓存的邮件和附件将被永久删除。此操作无法撤消。", "reservation_delete_dialog_submit_button": "删除保留", "account_delete_dialog_description": "这将永久删除您的帐户,包括存储在服务器上的所有数据。删除后,您的用户名将在 7 天内不可用。如果您真的想继续,请在下面的框中使用您的密码进行确认。", "account_delete_dialog_label": "密码", "account_delete_dialog_button_cancel": "取消", "account_delete_dialog_button_submit": "永久删除帐户", "account_delete_dialog_billing_warning": "删除您的帐户也会立即取消您的计费订阅。您将无法再访问计费仪表板。", "account_upgrade_dialog_title": "更改帐户等级", "account_upgrade_dialog_cancel_warning": "这将取消您的订阅,并在 {{date}} 降级您的帐户。在那一天,主题保留以及缓存在服务器上的消息将被删除。", "account_upgrade_dialog_proration_info": "按比例分配:在付费计划之间升级时,差价将被立刻收取。在降级到较低级别时,余额将被用于支付未来的账单周期。", "account_upgrade_dialog_reservations_warning_one": "所选等级允许的保留主题少于当前等级。在更改您的等级之前,请至少删除 1 项保留。您可以在设置中删除保留。", "account_upgrade_dialog_reservations_warning_other": "所选等级允许的保留主题少于当前等级。在更改您的等级之前,请至少删除 {{count}} 项保留。您可以在设置中删除保留。", "account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} 条保留主题", "account_upgrade_dialog_tier_features_messages_other": "{{messages}} 条每日消息", "account_upgrade_dialog_tier_features_emails_other": "{{emails}} 条每日邮件", "account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} 每个文件", "signup_form_confirm_password": "确认密码", "signup_form_button_submit": "注册", "signup_form_toggle_password_visibility": "切换密码可见性", "signup_title": "创建一个 ntfy 帐户", "signup_form_username": "用户名", "signup_form_password": "密码", "signup_already_have_account": "已有帐户?登录!", "signup_disabled": "注册已禁用", "login_form_button_submit": "登录", "login_link_signup": "注册", "login_disabled": "登录已禁用", "action_bar_account": "帐户", "action_bar_reservation_edit": "更改保留", "subscribe_dialog_error_topic_already_reserved": "主题已保留", "account_basics_title": "帐户", "account_basics_username_title": "用户名", "account_basics_username_admin_tooltip": "你是管理员", "account_basics_password_title": "密码", "account_basics_tier_payment_overdue": "您的付款已逾期。请更新您的付款方式,否则您的帐户将很快被降级。", "account_basics_tier_canceled_subscription": "您的订阅已取消,并将在 {{date}} 降级为免费帐户。", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} 总存储空间", "account_upgrade_dialog_tier_selected_label": "已选", "account_upgrade_dialog_tier_current_label": "当前", "account_upgrade_dialog_button_cancel": "取消", "account_upgrade_dialog_button_redirect_signup": "立即注册", "account_tokens_title": "访问令牌", "account_tokens_description": "通过 ntfy API 发布和订阅时使用访问令牌,因此您不必发送您的帐户凭据。查看文档以了解更多信息。", "account_tokens_table_token_header": "令牌", "account_tokens_table_label_header": "标签", "account_tokens_table_last_access_header": "最后访问", "account_tokens_table_expires_header": "过期", "account_tokens_table_never_expires": "永不过期", "account_tokens_table_current_session": "当前浏览器会话", "common_copy_to_clipboard": "复制到剪贴板", "account_tokens_table_copied_to_clipboard": "已复制访问令牌", "account_tokens_table_cannot_delete_or_edit": "无法编辑或删除当前会话令牌", "account_tokens_table_create_token_button": "创建访问令牌", "account_tokens_table_last_origin_tooltip": "于IP地址 {{ip}},点击查找", "account_tokens_dialog_label": "标签,例如:Radarr 通知", "account_tokens_dialog_button_create": "创建令牌", "account_tokens_dialog_button_update": "更新令牌", "account_basics_tier_interval_monthly": "每月", "account_basics_tier_interval_yearly": "每年", "account_upgrade_dialog_interval_monthly": "每月", "account_upgrade_dialog_interval_yearly": "每年", "account_upgrade_dialog_interval_yearly_discount_save": "节省 {{discount}}%", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "节省高达 {{discount}}%", "account_upgrade_dialog_tier_features_no_reservations": "无保留主题", "account_upgrade_dialog_tier_price_per_month": "月", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} 每年。按月计费。", "account_upgrade_dialog_tier_price_billed_yearly": "{{价格}} 按年计费。节省 {{save}}。", "account_upgrade_dialog_billing_contact_email": "有关账单问题,请直接联系我们 。", "account_upgrade_dialog_billing_contact_website": "有关账单问题,请参考我们的网站 。", "publish_dialog_call_item": "拨打电话 {{number}}", "publish_dialog_call_label": "拨号", "publish_dialog_chip_call_label": "拨号", "publish_dialog_chip_call_no_verified_numbers_tooltip": "未验证的手机号", "account_basics_phone_numbers_title": "电话号码", "account_basics_phone_numbers_description": "电话通知", "account_basics_phone_numbers_dialog_description": "要使用来电通知功能,您需要添加并验证至少一个电话号码。可以通过短信或电话进行验证。", "account_basics_phone_numbers_dialog_code_label": "验证码", "account_basics_phone_numbers_dialog_code_placeholder": "例如:123456", "account_basics_phone_numbers_dialog_check_verification_button": "确认码", "account_basics_phone_numbers_dialog_channel_sms": "短信", "account_basics_phone_numbers_dialog_channel_call": "拨打", "publish_dialog_call_reset": "清空拨号", "account_basics_phone_numbers_no_phone_numbers_yet": "无可执行的电话号码", "account_basics_phone_numbers_dialog_title": "添加电话号码", "account_basics_phone_numbers_copied_to_clipboard": "电话号码已复制到剪贴板", "account_basics_phone_numbers_dialog_number_label": "电话号码", "account_basics_phone_numbers_dialog_number_placeholder": "例如:+1222333444", "account_usage_calls_title": "已拨打电话", "account_usage_calls_none": "此帐号无法拨打电话", "account_upgrade_dialog_tier_features_reservations_one": "一条保留主题", "account_upgrade_dialog_tier_features_emails_one": "一封每日邮件", "account_upgrade_dialog_tier_features_calls_one": "一通每日电话", "account_basics_phone_numbers_dialog_verify_button_sms": "发送信息", "account_basics_phone_numbers_dialog_verify_button_call": "拨打电话", "account_upgrade_dialog_tier_features_messages_one": "一条每日消息", "account_upgrade_dialog_tier_features_calls_other": "{{calls}} 通每日电话", "account_upgrade_dialog_tier_features_no_calls": "无电话呼叫", "web_push_subscription_expiring_title": "通知将被暂停", "web_push_subscription_expiring_body": "打开ntfy以继续接收通知", "web_push_unknown_notification_title": "接收到未知通知", "web_push_unknown_notification_body": "你可能需要打开网页来更新ntfy" } ntfy-2.11.0/web/public/static/langs/zh_Hant.json000066400000000000000000000723051462047176100215060ustar00rootroot00000000000000{ "account_basics_password_description": "更改你的帳戶密碼", "account_basics_password_dialog_button_submit": "更改密碼", "account_basics_password_dialog_confirm_password_label": "確認密碼", "account_basics_password_dialog_current_password_incorrect": "密碼錯誤", "account_basics_password_dialog_current_password_label": "當前密碼", "account_basics_password_dialog_new_password_label": "新密碼", "account_basics_password_dialog_title": "更改密碼", "account_basics_password_title": "密碼", "account_basics_phone_numbers_copied_to_clipboard": "電話號碼已複製到剪貼板", "account_basics_phone_numbers_description": "電話通知", "account_basics_phone_numbers_dialog_channel_call": "撥打", "account_basics_phone_numbers_dialog_channel_sms": "短信", "account_basics_phone_numbers_dialog_check_verification_button": "確認碼", "account_basics_phone_numbers_dialog_code_label": "驗證碼", "account_basics_phone_numbers_dialog_code_placeholder": "例如:123456", "account_basics_phone_numbers_dialog_description": "要使用來電通知功能,你需要新增並驗證至少一個電話號碼。可以通過短信或電話驗證。", "account_basics_phone_numbers_dialog_number_label": "電話號碼", "account_basics_phone_numbers_dialog_number_placeholder": "例如:+1222333444", "account_basics_phone_numbers_dialog_title": "新增電話號碼", "account_basics_phone_numbers_dialog_verify_button_call": "撥打電話", "account_basics_phone_numbers_dialog_verify_button_sms": "發送資訊", "account_basics_phone_numbers_no_phone_numbers_yet": "無可執行的電話號碼", "account_basics_phone_numbers_title": "電話號碼", "account_basics_tier_admin_suffix_no_tier": "(無等級)", "account_basics_tier_admin_suffix_with_tier": "(有 {{tier}} 等級)", "account_basics_tier_admin": "管理員", "account_basics_tier_basic": "基礎版", "account_basics_tier_canceled_subscription": "你的訂閱已取消,並將在 {{date}} 降級為免費帳戶。", "account_basics_tier_change_button": "改變", "account_basics_tier_description": "你帳戶的權限級別", "account_basics_tier_free": "免費", "account_basics_tier_interval_monthly": "每月", "account_basics_tier_interval_yearly": "每年", "account_basics_tier_manage_billing_button": "管理計費", "account_basics_tier_paid_until": "訂閱已支付至 {{date}},並將自動續訂", "account_basics_tier_payment_overdue": "你的付款已逾期。請更新你的付款方式,否則你的帳戶將很快被降級。", "account_basics_tier_title": "帳戶類型", "account_basics_tier_upgrade_button": "升級到專業版", "account_basics_title": "帳戶", "account_basics_username_admin_tooltip": "你是管理員", "account_basics_username_description": "嘿,那是你 ❤", "account_basics_username_title": "用戶名", "account_delete_description": "永久刪除你的帳戶", "account_delete_dialog_billing_warning": "刪除你的帳戶也會立即取消你的計費訂閱。你將無法再訪問計費儀錶板。", "account_delete_dialog_button_cancel": "取消", "account_delete_dialog_button_submit": "永久刪除帳戶", "account_delete_dialog_description": "這將永久刪除你的帳戶,包括存儲在伺服器上的所有數據。刪除後,你的用戶名將在 7 天內不可用。如果你真的想繼續,請在下面的框中使用你的密碼作確認。", "account_delete_dialog_label": "密碼", "account_delete_title": "刪除帳戶", "account_tokens_delete_dialog_description": "在刪除訪問令牌之前,請確保沒有應用程序或腳本正在活躍使用它。 此操作無法撤銷。", "account_tokens_delete_dialog_submit_button": "永久删除令牌", "account_tokens_delete_dialog_title": "刪除訪問令牌", "account_tokens_description": "通過 ntfy API 發布和訂閱時使用訪問令牌,因此你不必發送你的帳戶憑證。查看文檔以了解更多資訊。", "account_tokens_dialog_button_cancel": "取消", "account_tokens_dialog_button_create": "創建令牌", "account_tokens_dialog_button_update": "更新令牌", "account_tokens_dialog_expires_label": "訪問令牌過期於", "account_tokens_dialog_expires_never": "令牌永不過期", "account_tokens_dialog_expires_unchanged": "保持過期日期不變", "account_tokens_dialog_expires_x_days": "令牌在 {{days}} 天後過期", "account_tokens_dialog_expires_x_hours": "令牌在 {{hours}} 小時後過期", "account_tokens_dialog_label": "標籤,例如:Radarr 通知", "account_tokens_dialog_title_create": "創建訪問令牌", "account_tokens_dialog_title_delete": "刪除訪問令牌", "account_tokens_dialog_title_edit": "編輯訪問令牌", "account_tokens_table_cannot_delete_or_edit": "無法編輯或刪除當前會話令牌", "account_tokens_table_copied_to_clipboard": "已複製訪問令牌", "account_tokens_table_create_token_button": "創建訪問令牌", "account_tokens_table_current_session": "當前瀏覽器會話", "account_tokens_table_expires_header": "過期", "account_tokens_table_label_header": "標籤", "account_tokens_table_last_access_header": "最後訪問", "account_tokens_table_last_origin_tooltip": "於IP地址 {{ip}},點擊查找", "account_tokens_table_never_expires": "永不過期", "account_tokens_table_token_header": "令牌", "account_tokens_title": "訪問令牌", "account_upgrade_dialog_billing_contact_email": "有關賬單問題,請直接聯繫我們 。", "account_upgrade_dialog_billing_contact_website": "有關賬單問題,請參考我們的網站 。", "account_upgrade_dialog_button_cancel_subscription": "取消訂閱", "account_upgrade_dialog_button_cancel": "取消", "account_upgrade_dialog_button_pay_now": "立即付款並訂閱", "account_upgrade_dialog_button_redirect_signup": "立即註冊", "account_upgrade_dialog_button_update_subscription": "更新訂閱", "account_upgrade_dialog_cancel_warning": "這將取消你的訂閱,並在 {{date}} 降級你的帳戶。在那一天,主題保留以及緩存在伺服器上的訊息將被刪除。", "account_upgrade_dialog_interval_monthly": "每月", "account_upgrade_dialog_interval_yearly_discount_save_up_to": "節省高達 {{discount}}%", "account_upgrade_dialog_interval_yearly_discount_save": "節省 {{discount}}%", "account_upgrade_dialog_interval_yearly": "每年", "account_upgrade_dialog_proration_info": "按比例分配:在付費計劃之間升級時,差價將被立刻收取。在降級到較低級別時,餘額將被用於支付未來的賬單周期。", "account_upgrade_dialog_reservations_warning_one": "所選等級允許的保留主題少於當前等級。在更改你的等級之前,請至少刪除 1 項保留。你可以在設置中刪除保留。", "account_upgrade_dialog_reservations_warning_other": "所選等級允許的保留主題少於當前等級。在更改你的等級之前,請至少刪除 {{count}} 項保留。你可以在設置中刪除保留。", "account_upgrade_dialog_tier_current_label": "當前", "account_upgrade_dialog_tier_features_attachment_file_size": "每個文件 {{filesize}} ", "account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} 總存儲空間", "account_upgrade_dialog_tier_features_calls_one": "每日一通電話", "account_upgrade_dialog_tier_features_calls_other": "每日{{calls}} 通電話", "account_upgrade_dialog_tier_features_emails_one": "每日一封郵件", "account_upgrade_dialog_tier_features_emails_other": "每日 {{emails}} 條郵件", "account_upgrade_dialog_tier_features_messages_one": "每日一條訊息", "account_upgrade_dialog_tier_features_messages_other": "每日 {{messages}} 條訊息", "account_upgrade_dialog_tier_features_no_calls": "沒有電話", "account_upgrade_dialog_tier_features_no_reservations": "無保留主題", "account_upgrade_dialog_tier_features_reservations_one": "保留一條主題", "account_upgrade_dialog_tier_features_reservations_other": "保留 {{reservations}} 條主題", "account_upgrade_dialog_tier_price_billed_monthly": "{{price}} 每年。按月計費。", "account_upgrade_dialog_tier_price_billed_yearly": "{{價格}} 按年計費。節省 {{save}}。", "account_upgrade_dialog_tier_price_per_month": "月", "account_upgrade_dialog_tier_selected_label": "已選", "account_upgrade_dialog_title": "更改帳戶等級", "account_usage_attachment_storage_description": "每個文件 {{filesize}},在 {{expiry}} 後刪除", "account_usage_attachment_storage_title": "附件存儲", "account_usage_basis_ip_description": "此帳戶的使用統計資訊和限制基於你的 IP 地址,因此可能會與其他用戶共享。上面顯示的限制是基於現有速率限制的近似值。", "account_usage_calls_none": "此帳號無法撥打電話", "account_usage_calls_title": "已撥打電話", "account_usage_cannot_create_portal_session": "無法打開計費門戶", "account_usage_emails_title": "已發送電子郵件", "account_usage_limits_reset_daily": "使用限制每天午夜 (UTC) 重置", "account_usage_messages_title": "已發布訊息", "account_usage_of_limit": "{{limit}} 的", "account_usage_reservations_none": "此帳戶沒有保留主題", "account_usage_reservations_title": "保留主題", "account_usage_title": "使用量", "account_usage_unlimited": "無限", "action_bar_account": "帳戶", "action_bar_change_display_name": "更改顯示名稱", "action_bar_clear_notifications": "清除所有通知", "action_bar_logo_alt": "ntfy 標識", "action_bar_mute_notifications": "靜音", "action_bar_profile_logout": "登出", "action_bar_profile_settings": "設定", "action_bar_profile_title": "個人資料", "action_bar_reservation_add": "保留主題", "action_bar_reservation_delete": "移除保留", "action_bar_reservation_edit": "更改保留", "action_bar_reservation_limit_reached": "達到限制", "action_bar_send_test_notification": "發送測試通知", "action_bar_settings": "設定", "action_bar_show_menu": "顯示選單", "action_bar_sign_in": "登錄", "action_bar_sign_up": "註冊", "action_bar_toggle_action_menu": "開啟或關閉操作選單", "action_bar_toggle_mute": "通知靜音/解除通知靜音", "action_bar_unmute_notifications": "取消靜音", "action_bar_unsubscribe": "取消訂閱", "alert_notification_ios_install_required_description": "要接收通知,請在 iOS 上點擊共享,然後添加到主屏幕", "alert_notification_ios_install_required_title": "需要安裝 iOS 應用程式", "alert_notification_permission_denied_description": "你已禁用通知。要重新啟用通知,請在瀏覽器設置中啟用通知。", "alert_notification_permission_denied_title": "已禁用通知", "alert_notification_permission_required_button": "現在授予", "alert_notification_permission_required_description": "授予瀏覽器顯示桌面通知的權限。", "alert_notification_permission_required_title": "已禁用通知", "alert_not_supported_context_description": "通知僅支援 HTTPS。這是 Notifications API 的限制。", "alert_not_supported_description": "你的瀏覽器不支援通知。", "alert_not_supported_title": "不支援通知", "common_add": "新增", "common_back": "返回", "common_cancel": "取消", "common_copy_to_clipboard": "複製到剪貼板", "common_save": "保存", "display_name_dialog_description": "為訂閱列表中顯示的主題設置一個替代名稱。這有助於更輕鬆地識別名稱複雜的主題。", "display_name_dialog_placeholder": "顯示名稱", "display_name_dialog_title": "更改顯示名稱", "emoji_picker_search_clear": "清除搜索", "emoji_picker_search_placeholder": "查找表情符號", "error_boundary_button_copy_stack_trace": "複製堆疊追踪", "error_boundary_button_reload_ntfy": "重新加載 ntfy", "error_boundary_description": "這顯然不應該發生。對此非常抱歉。
      如果你有時間,請在GitHub上報告,或通過DiscordMatrix告訴我們。", "error_boundary_gathering_info": "收集更多資訊……", "error_boundary_stack_trace": "堆疊追踪", "error_boundary_title": "天啊,ntfy 崩潰了", "error_boundary_unsupported_indexeddb_description": "Ntfy Web應用程式需要IndexedDB才能運行,且你的瀏覽器在隱私瀏覽模式下不支援IndexedDB。

      儘管這很不幸,但在隱私瀏覽模式下使用ntfy Web應用程式也沒有多大意義,因為所有東西都存儲在瀏覽器存儲中。你可以在本GitHub問題中閱讀有關它的更多資訊,或者在DiscordMatrix上與我們交談。", "error_boundary_unsupported_indexeddb_title": "不支援隱私瀏覽", "login_disabled": "登錄已禁用", "login_form_button_submit": "登錄", "login_link_signup": "註冊", "login_title": "請登錄你的 ntfy 帳戶", "message_bar_error_publishing": "發佈通知時出錯", "message_bar_publish": "發布訊息", "message_bar_show_dialog": "顯示發布對話框", "message_bar_type_message": "在此處輸入訊息", "nav_button_account": "帳戶", "nav_button_all_notifications": "全部通知", "nav_button_connecting": "正在連接", "nav_button_documentation": "文檔", "nav_button_muted": "已暫停通知", "nav_button_publish_message": "發布通知", "nav_button_settings": "設定", "nav_button_subscribe": "訂閱主題", "nav_topics_title": "訂閱主題", "nav_upgrade_banner_description": "保留主題,更多訊息和郵件,以及更大的附件", "nav_upgrade_banner_label": "升級到 ntfy Pro", "notifications_actions_failed_notification": "通知失敗", "notifications_actions_http_request_title": "發送 HTTP {{method}} 到 {{url}}", "notifications_actions_not_supported": "網頁應用程序不支援此操作", "notifications_actions_open_url_title": "轉到 {{url}}", "notifications_attachment_copy_url_button": "複製連結地址", "notifications_attachment_copy_url_title": "將附件中連結地址複製到剪貼板", "notifications_attachment_file_app": "安卓應用程式", "notifications_attachment_file_audio": "聲音文件", "notifications_attachment_file_document": "其他文件", "notifications_attachment_file_image": "圖片文件", "notifications_attachment_file_video": "影片文件", "notifications_attachment_image": "附件圖片", "notifications_attachment_link_expired": "下載連結已過期", "notifications_attachment_link_expires": "連結在 {{date}} 過期", "notifications_attachment_open_button": "打開附件", "notifications_attachment_open_title": "轉到 {{url}}", "notifications_click_copy_url_button": "複製鏈結", "notifications_click_copy_url_title": "複製鏈結地址到剪貼板", "notifications_click_open_button": "打開鏈結", "notifications_copied_to_clipboard": "複製到剪貼板", "notifications_delete": "刪除", "notifications_example": "示例", "notifications_list_item": "通知", "notifications_list": "通知列表", "notifications_loading": "正在加載通知……", "notifications_mark_read": "標記為已讀", "notifications_more_details": "有關更多資訊,請查看網站文檔。", "notifications_new_indicator": "新通知", "notifications_none_for_any_description": "要向此主題發送通知,只需使用 PUT 或 POST 到主題鏈結即可。以下是使用你的主題的示例。", "notifications_none_for_any_title": "你尚未收到任何通知。", "notifications_none_for_topic_description": "要向此主題發送通知,只需使用 PUT 或 POST 到主題連結即可。", "notifications_none_for_topic_title": "你尚未收到有關此主題的任何通知。", "notifications_no_subscriptions_description": "點擊 \"{{linktext}}\" 連結以建立或訂閱主題。之後,你可以使用 PUT 或 POST 發送訊息,你將在這裡收到通知。", "notifications_no_subscriptions_title": "看起來你還未有任何訂閱", "notifications_priority_x": "優先級 {{priority}}", "notifications_tags": "標記", "prefs_appearance_language_title": "語言", "prefs_appearance_theme_dark": "黑暗模式", "prefs_appearance_theme_light": "光亮模式", "prefs_appearance_theme_system": "系統 (預設)", "prefs_appearance_theme_title": "主題", "prefs_appearance_title": "外觀", "prefs_notifications_delete_after_never_description": "永不自動刪除通知", "prefs_notifications_delete_after_never": "從不", "prefs_notifications_delete_after_one_day_description": "一天後自動刪除通知", "prefs_notifications_delete_after_one_day": "一天後", "prefs_notifications_delete_after_one_month_description": "一個月後自動刪除通知", "prefs_notifications_delete_after_one_month": "一個月後", "prefs_notifications_delete_after_one_week_description": "一周後自動刪除通知", "prefs_notifications_delete_after_one_week": "一周後", "prefs_notifications_delete_after_three_hours_description": "三小時後自動刪除通知", "prefs_notifications_delete_after_three_hours": "三小時後", "prefs_notifications_delete_after_title": "刪除通知", "prefs_notifications_min_priority_any": "任意優先級", "prefs_notifications_min_priority_default_and_higher": "默認優先級或更高", "prefs_notifications_min_priority_description_any": "顯示所有通知,無論優先級如何", "prefs_notifications_min_priority_description_max": "僅顯示最高優先級的通知", "prefs_notifications_min_priority_description_x_or_higher": "僅顯示優先級為{{number}}({{name}})或以上的通知", "prefs_notifications_min_priority_high_and_higher": "高優先級或更高", "prefs_notifications_min_priority_low_and_higher": "低優先級或更高", "prefs_notifications_min_priority_max_only": "僅最高優先級", "prefs_notifications_min_priority_title": "最低優先級", "prefs_notifications_sound_description_none": "收到通知時不播放任何聲音", "prefs_notifications_sound_description_some": "收到通知時播放 {{sound}} 聲音", "prefs_notifications_sound_no_sound": "靜音", "prefs_notifications_sound_play": "播放選中聲音", "prefs_notifications_sound_title": "通知提示音", "prefs_notifications_title": "通知", "prefs_notifications_web_push_disabled_description": "當網頁程式在運行時將會收到通知 (透過 WebSocket)", "prefs_notifications_web_push_disabled": "己暫用", "prefs_notifications_web_push_enabled_description": "即使網頁程式未有運街亦會收到通知 (via Web Push)", "prefs_notifications_web_push_enabled": "己為 {{server}} 啟用", "prefs_notifications_web_push_title": "背景通知", "prefs_reservations_add_button": "新增保留主題", "prefs_reservations_delete_button": "重置主題訪問", "prefs_reservations_description": "你可以在此處保留主題名稱供個人使用。保留主題使你擁有該主題的所有權,並允許你為其他用戶定義對該主題的訪問權限。", "prefs_reservations_dialog_access_label": "訪問", "prefs_reservations_dialog_description": "保留主題使你擁有該主題的所有權,並允許你為其他用戶定義對該主題的訪問權限。", "prefs_reservations_dialog_title_add": "保留主題", "prefs_reservations_dialog_title_delete": "刪除主題保留", "prefs_reservations_dialog_title_edit": "編輯保留主題", "prefs_reservations_dialog_topic_label": "主題", "prefs_reservations_edit_button": "編輯主題訪問", "prefs_reservations_limit_reached": "你已達到保留主題限制。", "prefs_reservations_table_access_header": "訪問", "prefs_reservations_table_click_to_subscribe": "點擊以訂閱", "prefs_reservations_table_everyone_deny_all": "只有我可以發佈和訂閱", "prefs_reservations_table_everyone_read_only": "我可以發佈和訂閱,每個人都可以訂閱", "prefs_reservations_table_everyone_read_write": "每個人都可以發佈和訂閱", "prefs_reservations_table_everyone_write_only": "我可以發佈和訂閱,每個人都可以發佈", "prefs_reservations_table_not_subscribed": "未訂閱", "prefs_reservations_table_topic_header": "主題", "prefs_reservations_table": "保留主題表格", "prefs_reservations_title": "保留主題", "prefs_users_add_button": "新增使用者", "prefs_users_delete_button": "刪除用戶", "prefs_users_description_no_sync": "用戶和密碼不會同步到你的賬戶。", "prefs_users_description": "在此處新增/刪除受保護主題的使用者。請注意,使用者名和密碼將存儲在瀏覽器的本地存儲中。", "prefs_users_dialog_base_url_label": "服務連結地址,例如 https://ntfy.sh", "prefs_users_dialog_password_label": "密碼", "prefs_users_dialog_title_add": "新增使用者", "prefs_users_dialog_title_edit": "編輯使用者", "prefs_users_dialog_username_label": "使用者名,例如 phil", "prefs_users_edit_button": "編輯用戶", "prefs_users_table_base_url_header": "服務連結地址", "prefs_users_table_cannot_delete_or_edit": "無法刪除或編輯已登錄用戶", "prefs_users_table_user_header": "用戶", "prefs_users_table": "用戶表", "prefs_users_title": "管理使用者", "priority_default": "預設", "priority_high": "高", "priority_low": "低", "priority_max": "最高", "priority_min": "最低", "publish_dialog_attached_file_filename_placeholder": "附件文件名", "publish_dialog_attached_file_remove": "刪除附件文件", "publish_dialog_attached_file_title": "附件文件:", "publish_dialog_attach_label": "附件連結地址", "publish_dialog_attachment_limits_file_and_quota_reached": "超過 {{fileSizeLimit}} 文件限制和配額,剩餘 {{remainingBytes}}", "publish_dialog_attachment_limits_file_reached": "超過 {{fileSizeLimit}} 文件限制", "publish_dialog_attachment_limits_quota_reached": "超過配額,剩餘 {{remainingBytes}}", "publish_dialog_attach_placeholder": "使用鏈結地址附加文件,例如 https://f-droid.org/F-Droid.apk", "publish_dialog_attach_reset": "移除附件鏈結地址", "publish_dialog_base_url_label": "服務鏈結地址", "publish_dialog_base_url_placeholder": "服務鏈結地址,例如 https://example.com", "publish_dialog_button_cancel_sending": "取消發送", "publish_dialog_button_cancel": "取消", "publish_dialog_button_send": "發送", "publish_dialog_call_item": "撥打電話 {{number}}", "publish_dialog_call_label": "撥號", "publish_dialog_call_reset": "清空撥號", "publish_dialog_checkbox_markdown": "格式化為 Markdown", "publish_dialog_checkbox_publish_another": "發布另一個", "publish_dialog_chip_attach_file_label": "本地文件附件", "publish_dialog_chip_attach_url_label": "鏈結附件地址", "publish_dialog_chip_call_label": "撥號", "publish_dialog_chip_call_no_verified_numbers_tooltip": "未驗證的電話號碼", "publish_dialog_chip_click_label": "點擊鏈結地址", "publish_dialog_chip_delay_label": "延期投遞", "publish_dialog_chip_email_label": "轉發郵件", "publish_dialog_chip_topic_label": "變更主題", "publish_dialog_click_label": "點擊鏈結地址", "publish_dialog_click_placeholder": "點擊通知時打開鏈結地址", "publish_dialog_click_reset": "移除點擊連結地址", "publish_dialog_delay_label": "延期", "publish_dialog_delay_placeholder": "延期投遞,例如 {{unixTimestamp}}、{{relativeTime}}或「{{naturalLanguage}}」(僅限英語)", "publish_dialog_delay_reset": "刪除延期投遞", "publish_dialog_details_examples_description": "有關所有發送功能的範例和詳細說明,請參閱文檔。", "publish_dialog_drop_file_here": "將文件拖拽至此", "publish_dialog_email_label": "電子郵件", "publish_dialog_email_placeholder": "將通知轉發到的地址,例如 phil@example.com", "publish_dialog_email_reset": "移除電子郵件轉發", "publish_dialog_emoji_picker_show": "選擇表情符號", "publish_dialog_filename_label": "文件名", "publish_dialog_filename_placeholder": "附件文件名", "publish_dialog_message_label": "訊息", "publish_dialog_message_placeholder": "在此輸入訊息", "publish_dialog_message_published": "已發布通知", "publish_dialog_other_features": "其它功能:", "publish_dialog_priority_default": "默認優先級", "publish_dialog_priority_high": "高優先級", "publish_dialog_priority_label": "優先級", "publish_dialog_priority_low": "低優先級", "publish_dialog_priority_max": "最高優先級", "publish_dialog_priority_min": "最低優先級", "publish_dialog_progress_uploading_detail": "正在上傳 {{loaded}}/{{total}} ({{percent}}%) ……", "publish_dialog_progress_uploading": "正在上傳……", "publish_dialog_tags_label": "標記", "publish_dialog_tags_placeholder": "英文逗號分隔標記列表,例如 warning, srv1-backup", "publish_dialog_title_label": "主題", "publish_dialog_title_no_topic": "發布通知", "publish_dialog_title_placeholder": "主題標題,例如 磁碟空間警告", "publish_dialog_title_topic": "發布到 {{topic}}", "publish_dialog_topic_label": "主題名稱", "publish_dialog_topic_placeholder": "主題名稱,例如 phil_alerts", "publish_dialog_topic_reset": "重置主題", "reservation_delete_dialog_action_delete_description": "緩存的郵件和附件將被永久刪除。此操作無法撤銷。", "reservation_delete_dialog_action_delete_title": "刪除緩存的郵件和附件", "reservation_delete_dialog_action_keep_description": "緩存在伺服器上的訊息和附件將對知道主題名稱的人公開可見。", "reservation_delete_dialog_action_keep_title": "保留緩存的郵件和附件", "reservation_delete_dialog_description": "刪除保留會放棄對該主題的所有權,並允許其他人保留它。你可以保留或刪除現有郵件和附件。", "reservation_delete_dialog_submit_button": "刪除保留", "reserve_dialog_checkbox_label": "保留主題並配置訪問", "signup_already_have_account": "已有帳戶?登錄!", "signup_disabled": "註冊已禁用", "signup_error_creation_limit_reached": "已達到帳戶創建限制", "signup_error_username_taken": "用戶名 {{username}} 已被取用", "signup_form_button_submit": "註冊", "signup_form_confirm_password": "確認密碼", "signup_form_password": "密碼", "signup_form_toggle_password_visibility": "切換密碼可見性", "signup_form_username": "用戶名", "signup_title": "創建一個 ntfy 帳戶", "subscribe_dialog_error_topic_already_reserved": "主題已保留", "subscribe_dialog_error_user_anonymous": "匿名", "subscribe_dialog_error_user_not_authorized": "未授權 {{username}} 使用者", "subscribe_dialog_login_button_login": "登入", "subscribe_dialog_login_description": "本主題受密碼保護,請輸入用戶名和密碼以訂閱。", "subscribe_dialog_login_password_label": "密碼", "subscribe_dialog_login_title": "請登錄", "subscribe_dialog_login_username_label": "用戶名,例如 phil", "subscribe_dialog_subscribe_base_url_label": "服務地址地址", "subscribe_dialog_subscribe_button_cancel": "取消", "subscribe_dialog_subscribe_button_generate_topic_name": "生成名稱", "subscribe_dialog_subscribe_button_subscribe": "訂閱", "subscribe_dialog_subscribe_description": "主題可能不受密碼保護,因此請選擇一個不容易被猜中的名字。訂閱後,你可以使用 PUT/POST 通知。", "subscribe_dialog_subscribe_title": "訂閱主題", "subscribe_dialog_subscribe_topic_placeholder": "主題名,例如 phil_alerts", "subscribe_dialog_subscribe_use_another_background_info": "當網頁程式未開啟, 將不會收到來自其他伺服器的通知", "subscribe_dialog_subscribe_use_another_label": "使用其他伺服器", "web_push_subscription_expiring_body": "開啟ntfy以繼續接收通知", "web_push_subscription_expiring_title": "通知會被暫停", "web_push_unknown_notification_body": "你可能需要開啟網頁來更新ntfy", "web_push_unknown_notification_title": "接收到不明通知" } ntfy-2.11.0/web/public/sw.js000066400000000000000000000211711462047176100156070ustar00rootroot00000000000000/* eslint-disable import/no-extraneous-dependencies */ import { cleanupOutdatedCaches, createHandlerBoundToURL, precacheAndRoute } from "workbox-precaching"; import { NavigationRoute, registerRoute } from "workbox-routing"; import { NetworkFirst } from "workbox-strategies"; import { clientsClaim } from "workbox-core"; import { dbAsync } from "../src/app/db"; import { toNotificationParams, icon, badge } from "../src/app/notificationUtils"; import initI18n from "../src/app/i18n"; /** * General docs for service workers and PWAs: * https://vite-pwa-org.netlify.app/guide/ * https://developer.chrome.com/docs/workbox/ * * This file uses the (event) => event.waitUntil() pattern. * This is because the event handler itself cannot be async, but * the service worker needs to stay active while the promise completes. */ const broadcastChannel = new BroadcastChannel("web-push-broadcast"); const addNotification = async ({ subscriptionId, message }) => { const db = await dbAsync(); await db.notifications.add({ ...message, subscriptionId, // New marker (used for bubble indicator); cannot be boolean; Dexie index limitation new: 1, }); await db.subscriptions.update(subscriptionId, { last: message.id, }); const badgeCount = await db.notifications.where({ new: 1 }).count(); console.log("[ServiceWorker] Setting new app badge count", { badgeCount }); self.navigator.setAppBadge?.(badgeCount); }; /** * Handle a received web push message and show notification. * * Since the service worker cannot play a sound, we send a broadcast to the web app, which (if it is running) * receives the broadcast and plays a sound (see web/src/app/WebPush.js). */ const handlePushMessage = async (data) => { const { subscription_id: subscriptionId, message } = data; broadcastChannel.postMessage(message); // To potentially play sound await addNotification({ subscriptionId, message }); await self.registration.showNotification( ...toNotificationParams({ subscriptionId, message, defaultTitle: message.topic, topicRoute: new URL(message.topic, self.location.origin).toString(), }) ); }; /** * Handle a received web push subscription expiring. */ const handlePushSubscriptionExpiring = async (data) => { const t = await initI18n(); await self.registration.showNotification(t("web_push_subscription_expiring_title"), { body: t("web_push_subscription_expiring_body"), icon, data, badge, }); }; /** * Handle unknown push message. We can't ignore the push, since * permission can be revoked by the browser. */ const handlePushUnknown = async (data) => { const t = await initI18n(); await self.registration.showNotification(t("web_push_unknown_notification_title"), { body: t("web_push_unknown_notification_body"), icon, data, badge, }); }; /** * Handle a received web push notification * @param {object} data see server/types.go, type webPushPayload */ const handlePush = async (data) => { if (data.event === "message") { await handlePushMessage(data); } else if (data.event === "subscription_expiring") { await handlePushSubscriptionExpiring(data); } else { await handlePushUnknown(data); } }; /** * Handle a user clicking on the displayed notification from `showNotification`. * This is also called when the user clicks on an action button. */ const handleClick = async (event) => { const t = await initI18n(); const clients = await self.clients.matchAll({ type: "window" }); const rootUrl = new URL(self.location.origin); const rootClient = clients.find((client) => client.url === rootUrl.toString()); // perhaps open on another topic const fallbackClient = clients[0]; if (!event.notification.data?.message) { // e.g. something other than a message, e.g. a subscription_expiring event // simply open the web app on the root route (/) if (rootClient) { rootClient.focus(); } else if (fallbackClient) { fallbackClient.focus(); fallbackClient.navigate(rootUrl.toString()); } else { self.clients.openWindow(rootUrl); } event.notification.close(); } else { const { message, topicRoute } = event.notification.data; if (event.action) { const action = event.notification.data.message.actions.find(({ label }) => event.action === label); if (action.action === "view") { self.clients.openWindow(action.url); } else if (action.action === "http") { try { const response = await fetch(action.url, { method: action.method ?? "POST", headers: action.headers ?? {}, body: action.body, }); if (!response.ok) { throw new Error(`HTTP ${response.status} ${response.statusText}`); } } catch (e) { console.error("[ServiceWorker] Error performing http action", e); self.registration.showNotification(`${t("notifications_actions_failed_notification")}: ${action.label} (${action.action})`, { body: e.message, icon, badge, }); } } if (action.clear) { event.notification.close(); } } else if (message.click) { self.clients.openWindow(message.click); event.notification.close(); } else { // If no action was clicked, and the message doesn't have a click url: // - first try focus an open tab on the `/:topic` route // - if not, use an open tab on the root route (`/`) and navigate to the topic // - if not, use whichever tab we have open and navigate to the topic // - finally, open a new tab focused on the topic const topicClient = clients.find((client) => client.url === topicRoute); if (topicClient) { topicClient.focus(); } else if (rootClient) { rootClient.focus(); rootClient.navigate(topicRoute); } else if (fallbackClient) { fallbackClient.focus(); fallbackClient.navigate(topicRoute); } else { self.clients.openWindow(topicRoute); } event.notification.close(); } } }; self.addEventListener("install", () => { console.log("[ServiceWorker] Installed"); self.skipWaiting(); }); self.addEventListener("activate", () => { console.log("[ServiceWorker] Activated"); self.skipWaiting(); }); // There's no good way to test this, and Chrome doesn't seem to implement this, // so leaving it for now self.addEventListener("pushsubscriptionchange", (event) => { console.log("[ServiceWorker] PushSubscriptionChange"); console.log(event); }); self.addEventListener("push", (event) => { const data = event.data.json(); console.log("[ServiceWorker] Received Web Push Event", { event, data }); event.waitUntil(handlePush(data)); }); self.addEventListener("notificationclick", (event) => { console.log("[ServiceWorker] NotificationClick"); event.waitUntil(handleClick(event)); }); // See https://vite-pwa-org.netlify.app/guide/inject-manifest.html#service-worker-code // self.__WB_MANIFEST is the workbox injection point that injects the manifest of the // vite dist files and their revision ids, for example: // [{"revision":"aaabbbcccdddeeefff12345","url":"/index.html"},...] precacheAndRoute( // eslint-disable-next-line no-underscore-dangle self.__WB_MANIFEST ); // Claim all open windows clientsClaim(); // Delete any cached old dist files from previous service worker versions cleanupOutdatedCaches(); if (!import.meta.env.DEV) { // we need the app_root setting, so we import the config.js file from the go server // this does NOT include the same base_url as the web app running in a window, // since we don't have access to `window` like in `src/app/config.js` self.importScripts("/config.js"); // this is the fallback single-page-app route, matching vite.config.js PWA config, // and is served by the go web server. It is needed for the single-page-app to work. // https://developer.chrome.com/docs/workbox/modules/workbox-routing/#how-to-register-a-navigation-route registerRoute( new NavigationRoute(createHandlerBoundToURL("/app.html"), { allowlist: [ // the app root itself, could be /, or not new RegExp(`^${config.app_root}$`), ], }) ); // the manifest excludes config.js (see vite.config.js) since the dist-file differs from the // actual config served by the go server. this adds it back with `NetworkFirst`, so that the // most recent config from the go server is cached, but the app still works if the network // is unavailable. this is important since there's no "refresh" button in the installed pwa // to force a reload. registerRoute(({ url }) => url.pathname === "/config.js", new NetworkFirst()); } ntfy-2.11.0/web/src/000077500000000000000000000000001462047176100141275ustar00rootroot00000000000000ntfy-2.11.0/web/src/app/000077500000000000000000000000001462047176100147075ustar00rootroot00000000000000ntfy-2.11.0/web/src/app/AccountApi.js000066400000000000000000000303261462047176100172770ustar00rootroot00000000000000import i18n from "i18next"; import { accountBillingPortalUrl, accountBillingSubscriptionUrl, accountPasswordUrl, accountPhoneUrl, accountPhoneVerifyUrl, accountReservationSingleUrl, accountReservationUrl, accountSettingsUrl, accountSubscriptionUrl, accountTokenUrl, accountUrl, maybeWithBearerAuth, tiersUrl, withBasicAuth, withBearerAuth, } from "./utils"; import session from "./Session"; import subscriptionManager from "./SubscriptionManager"; import prefs from "./Prefs"; import routes from "../components/routes"; import { fetchOrThrow, UnauthorizedError } from "./errors"; const delayMillis = 45000; // 45 seconds const intervalMillis = 900000; // 15 minutes class AccountApi { constructor() { this.timer = null; this.listener = null; // Fired when account is fetched from remote this.tiers = null; // Cached } registerListener(listener) { this.listener = listener; } resetListener() { this.listener = null; } async login(user) { const url = accountTokenUrl(config.base_url); console.log(`[AccountApi] Checking auth for ${url}`); const response = await fetchOrThrow(url, { method: "POST", headers: withBasicAuth({}, user.username, user.password), }); const json = await response.json(); // May throw SyntaxError if (!json.token) { throw new Error(`Unexpected server response: Cannot find token`); } return json.token; } async logout() { const url = accountTokenUrl(config.base_url); console.log(`[AccountApi] Logging out from ${url} using token ${session.token()}`); await fetchOrThrow(url, { method: "DELETE", headers: withBearerAuth({}, session.token()), }); } async create(username, password) { const url = accountUrl(config.base_url); const body = JSON.stringify({ username, password, }); console.log(`[AccountApi] Creating user account ${url}`); await fetchOrThrow(url, { method: "POST", body, }); } async get() { const url = accountUrl(config.base_url); console.log(`[AccountApi] Fetching user account ${url}`); const response = await fetchOrThrow(url, { headers: maybeWithBearerAuth({}, session.token()), // GET /v1/account endpoint can be called by anonymous }); const account = await response.json(); // May throw SyntaxError console.log(`[AccountApi] Account`, account); if (this.listener) { this.listener(account); } return account; } async delete(password) { const url = accountUrl(config.base_url); console.log(`[AccountApi] Deleting user account ${url}`); await fetchOrThrow(url, { method: "DELETE", headers: withBearerAuth({}, session.token()), body: JSON.stringify({ password, }), }); } async changePassword(currentPassword, newPassword) { const url = accountPasswordUrl(config.base_url); console.log(`[AccountApi] Changing account password ${url}`); await fetchOrThrow(url, { method: "POST", headers: withBearerAuth({}, session.token()), body: JSON.stringify({ password: currentPassword, new_password: newPassword, }), }); } async createToken(label, expires) { const url = accountTokenUrl(config.base_url); const body = { label, expires: expires > 0 ? Math.floor(Date.now() / 1000) + expires : 0, }; console.log(`[AccountApi] Creating user access token ${url}`); await fetchOrThrow(url, { method: "POST", headers: withBearerAuth({}, session.token()), body: JSON.stringify(body), }); } async updateToken(token, label, expires) { const url = accountTokenUrl(config.base_url); const body = { token, label, }; if (expires > 0) { body.expires = Math.floor(Date.now() / 1000) + expires; } console.log(`[AccountApi] Creating user access token ${url}`); await fetchOrThrow(url, { method: "PATCH", headers: withBearerAuth({}, session.token()), body: JSON.stringify(body), }); } async extendToken() { const url = accountTokenUrl(config.base_url); console.log(`[AccountApi] Extending user access token ${url}`); await fetchOrThrow(url, { method: "PATCH", headers: withBearerAuth({}, session.token()), }); } async deleteToken(token) { const url = accountTokenUrl(config.base_url); console.log(`[AccountApi] Deleting user access token ${url}`); await fetchOrThrow(url, { method: "DELETE", headers: withBearerAuth({ "X-Token": token }, session.token()), }); } async updateSettings(payload) { const url = accountSettingsUrl(config.base_url); const body = JSON.stringify(payload); console.log(`[AccountApi] Updating user account ${url}: ${body}`); await fetchOrThrow(url, { method: "PATCH", headers: withBearerAuth({}, session.token()), body, }); } async addSubscription(baseUrl, topic) { const url = accountSubscriptionUrl(config.base_url); const body = JSON.stringify({ base_url: baseUrl, topic, }); console.log(`[AccountApi] Adding user subscription ${url}: ${body}`); const response = await fetchOrThrow(url, { method: "POST", headers: withBearerAuth({}, session.token()), body, }); const subscription = await response.json(); // May throw SyntaxError console.log(`[AccountApi] Subscription`, subscription); return subscription; } async updateSubscription(baseUrl, topic, payload) { const url = accountSubscriptionUrl(config.base_url); const body = JSON.stringify({ base_url: baseUrl, topic, ...payload, }); console.log(`[AccountApi] Updating user subscription ${url}: ${body}`); const response = await fetchOrThrow(url, { method: "PATCH", headers: withBearerAuth({}, session.token()), body, }); const subscription = await response.json(); // May throw SyntaxError console.log(`[AccountApi] Subscription`, subscription); return subscription; } async deleteSubscription(baseUrl, topic) { const url = accountSubscriptionUrl(config.base_url); console.log(`[AccountApi] Removing user subscription ${url}`); const headers = { "X-BaseURL": baseUrl, "X-Topic": topic, }; await fetchOrThrow(url, { method: "DELETE", headers: withBearerAuth(headers, session.token()), }); } async upsertReservation(topic, everyone) { const url = accountReservationUrl(config.base_url); console.log(`[AccountApi] Upserting user access to topic ${topic}, everyone=${everyone}`); await fetchOrThrow(url, { method: "POST", headers: withBearerAuth({}, session.token()), body: JSON.stringify({ topic, everyone, }), }); } async deleteReservation(topic, deleteMessages) { const url = accountReservationSingleUrl(config.base_url, topic); console.log(`[AccountApi] Removing topic reservation ${url}`); const headers = { "X-Delete-Messages": deleteMessages ? "true" : "false", }; await fetchOrThrow(url, { method: "DELETE", headers: withBearerAuth(headers, session.token()), }); } async billingTiers() { if (this.tiers) { return this.tiers; } const url = tiersUrl(config.base_url); console.log(`[AccountApi] Fetching billing tiers`); const response = await fetchOrThrow(url); // No auth needed! this.tiers = await response.json(); // May throw SyntaxError return this.tiers; } async createBillingSubscription(tier, interval) { console.log(`[AccountApi] Creating billing subscription with ${tier} and interval ${interval}`); return this.upsertBillingSubscription("POST", tier, interval); } async updateBillingSubscription(tier, interval) { console.log(`[AccountApi] Updating billing subscription with ${tier} and interval ${interval}`); return this.upsertBillingSubscription("PUT", tier, interval); } async upsertBillingSubscription(method, tier, interval) { const url = accountBillingSubscriptionUrl(config.base_url); const response = await fetchOrThrow(url, { method, headers: withBearerAuth({}, session.token()), body: JSON.stringify({ tier, interval, }), }); return response.json(); // May throw SyntaxError } async deleteBillingSubscription() { const url = accountBillingSubscriptionUrl(config.base_url); console.log(`[AccountApi] Cancelling billing subscription`); await fetchOrThrow(url, { method: "DELETE", headers: withBearerAuth({}, session.token()), }); } async createBillingPortalSession() { const url = accountBillingPortalUrl(config.base_url); console.log(`[AccountApi] Creating billing portal session`); const response = await fetchOrThrow(url, { method: "POST", headers: withBearerAuth({}, session.token()), }); return response.json(); // May throw SyntaxError } async verifyPhoneNumber(phoneNumber, channel) { const url = accountPhoneVerifyUrl(config.base_url); console.log(`[AccountApi] Sending phone verification ${url}`); await fetchOrThrow(url, { method: "PUT", headers: withBearerAuth({}, session.token()), body: JSON.stringify({ number: phoneNumber, channel, }), }); } async addPhoneNumber(phoneNumber, code) { const url = accountPhoneUrl(config.base_url); console.log(`[AccountApi] Adding phone number with verification code ${url}`); await fetchOrThrow(url, { method: "PUT", headers: withBearerAuth({}, session.token()), body: JSON.stringify({ number: phoneNumber, code, }), }); } async deletePhoneNumber(phoneNumber) { const url = accountPhoneUrl(config.base_url); console.log(`[AccountApi] Deleting phone number ${url}`); await fetchOrThrow(url, { method: "DELETE", headers: withBearerAuth({}, session.token()), body: JSON.stringify({ number: phoneNumber, }), }); } async sync() { try { if (!session.token()) { return null; } console.log(`[AccountApi] Syncing account`); const account = await this.get(); if (account.language) { await i18n.changeLanguage(account.language); } if (account.notification) { if (account.notification.sound) { await prefs.setSound(account.notification.sound); } if (account.notification.delete_after) { await prefs.setDeleteAfter(account.notification.delete_after); } if (account.notification.min_priority) { await prefs.setMinPriority(account.notification.min_priority); } } if (account.subscriptions) { await subscriptionManager.syncFromRemote(account.subscriptions, account.reservations); } return account; } catch (e) { console.log(`[AccountApi] Error fetching account`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } return undefined; } } startWorker() { if (this.timer !== null) { return; } console.log(`[AccountApi] Starting worker`); this.timer = setInterval(() => this.runWorker(), intervalMillis); setTimeout(() => this.runWorker(), delayMillis); } stopWorker() { clearTimeout(this.timer); } async runWorker() { if (!session.token()) { return; } console.log(`[AccountApi] Extending user access token`); try { await this.extendToken(); } catch (e) { console.log(`[AccountApi] Error extending user access token`, e); } } } // Maps to user.Role in user/types.go export const Role = { ADMIN: "admin", USER: "user", }; // Maps to server.visitorLimitBasis in server/visitor.go export const LimitBasis = { IP: "ip", TIER: "tier", }; // Maps to stripe.SubscriptionStatus export const SubscriptionStatus = { ACTIVE: "active", PAST_DUE: "past_due", }; // Maps to stripe.PriceRecurringInterval export const SubscriptionInterval = { MONTH: "month", YEAR: "year", }; // Maps to user.Permission in user/types.go export const Permission = { READ_WRITE: "read-write", READ_ONLY: "read-only", WRITE_ONLY: "write-only", DENY_ALL: "deny-all", }; const accountApi = new AccountApi(); export default accountApi; ntfy-2.11.0/web/src/app/Api.js000066400000000000000000000120551462047176100157610ustar00rootroot00000000000000import { fetchLinesIterator, maybeWithAuth, topicShortUrl, topicUrl, topicUrlAuth, topicUrlJsonPoll, topicUrlJsonPollWithSince, webPushUrl, } from "./utils"; import userManager from "./UserManager"; import { fetchOrThrow } from "./errors"; class Api { async poll(baseUrl, topic, since) { const user = await userManager.get(baseUrl); const shortUrl = topicShortUrl(baseUrl, topic); const url = since ? topicUrlJsonPollWithSince(baseUrl, topic, since) : topicUrlJsonPoll(baseUrl, topic); const messages = []; const headers = maybeWithAuth({}, user); console.log(`[Api] Polling ${url}`); for await (const line of fetchLinesIterator(url, headers)) { const message = JSON.parse(line); if (message.id) { console.log(`[Api, ${shortUrl}] Received message ${line}`); messages.push(message); } } return messages; } async publish(baseUrl, topic, message, options) { const user = await userManager.get(baseUrl); console.log(`[Api] Publishing message to ${topicUrl(baseUrl, topic)}`); const headers = {}; const body = { topic, message, ...options, }; await fetchOrThrow(baseUrl, { method: "PUT", body: JSON.stringify(body), headers: maybeWithAuth(headers, user), }); } /** * Publishes to a topic using XMLHttpRequest (XHR), and returns a Promise with the active request. * Unfortunately, fetch() does not support a progress hook, which is why XHR has to be used. * * Firefox XHR bug: * Firefox has a bug(?), which returns 0 and "" for all fields of the XHR response in the case of an error, * so we cannot determine the exact error. It also sometimes complains about CORS violations, even when the * correct headers are clearly set. It's quite the odd behavior. * * There is an example, and the bug report here: * - https://bugzilla.mozilla.org/show_bug.cgi?id=1733755 * - https://gist.github.com/binwiederhier/627f146d1959799be207ad8c17a8f345 */ publishXHR(url, body, headers, onProgress) { console.log(`[Api] Publishing message to ${url}`); const xhr = new XMLHttpRequest(); const send = new Promise((resolve, reject) => { xhr.open("PUT", url); if (body.type) { xhr.overrideMimeType(body.type); } for (const [key, value] of Object.entries(headers)) { xhr.setRequestHeader(key, value); } xhr.upload.addEventListener("progress", onProgress); xhr.addEventListener("readystatechange", () => { if (xhr.readyState === 4 && xhr.status >= 200 && xhr.status <= 299) { console.log(`[Api] Publish successful (HTTP ${xhr.status})`, xhr.response); resolve(xhr.response); } else if (xhr.readyState === 4) { // Firefox bug; see description above! console.log(`[Api] Publish failed (HTTP ${xhr.status})`, xhr.responseText); let errorText; try { const error = JSON.parse(xhr.responseText); if (error.code && error.error) { errorText = `Error ${error.code}: ${error.error}`; } } catch (e) { // Nothing } xhr.abort(); reject(errorText ?? "An error occurred"); } }); xhr.send(body); }); send.abort = () => { console.log(`[Api] Publish aborted by user`); xhr.abort(); }; return send; } async topicAuth(baseUrl, topic, user) { const url = topicUrlAuth(baseUrl, topic); console.log(`[Api] Checking auth for ${url}`); const response = await fetch(url, { headers: maybeWithAuth({}, user), }); if (response.status >= 200 && response.status <= 299) { return true; } if (response.status === 401 || response.status === 403) { // See server/server.go return false; } throw new Error(`Unexpected server response ${response.status}`); } async updateWebPush(pushSubscription, topics) { const user = await userManager.get(config.base_url); const url = webPushUrl(config.base_url); console.log(`[Api] Updating Web Push subscription`, { url, topics, endpoint: pushSubscription.endpoint }); const serializedSubscription = JSON.parse(JSON.stringify(pushSubscription)); // Ugh ... https://stackoverflow.com/a/40525434/1440785 await fetchOrThrow(url, { method: "POST", headers: maybeWithAuth({}, user), body: JSON.stringify({ endpoint: serializedSubscription.endpoint, auth: serializedSubscription.keys.auth, p256dh: serializedSubscription.keys.p256dh, topics, }), }); } async deleteWebPush(pushSubscription) { const user = await userManager.get(config.base_url); const url = webPushUrl(config.base_url); console.log(`[Api] Deleting Web Push subscription`, { url, endpoint: pushSubscription.endpoint }); await fetchOrThrow(url, { method: "DELETE", headers: maybeWithAuth({}, user), body: JSON.stringify({ endpoint: pushSubscription.endpoint, }), }); } } const api = new Api(); export default api; ntfy-2.11.0/web/src/app/Connection.js000066400000000000000000000101471462047176100173470ustar00rootroot00000000000000/* eslint-disable max-classes-per-file */ import { basicAuth, bearerAuth, encodeBase64Url, topicShortUrl, topicUrlWs } from "./utils"; const retryBackoffSeconds = [5, 10, 20, 30, 60, 120]; export class ConnectionState { static Connected = "connected"; static Connecting = "connecting"; } /** * A connection contains a single WebSocket connection for one topic. It handles its connection * status itself, including reconnect attempts and backoff. * * Incoming messages and state changes are forwarded via listeners. */ class Connection { constructor(connectionId, subscriptionId, baseUrl, topic, user, since, onNotification, onStateChanged) { this.connectionId = connectionId; this.subscriptionId = subscriptionId; this.baseUrl = baseUrl; this.topic = topic; this.user = user; this.since = since; this.shortUrl = topicShortUrl(baseUrl, topic); this.onNotification = onNotification; this.onStateChanged = onStateChanged; this.ws = null; this.retryCount = 0; this.retryTimeout = null; } start() { // Don't fetch old messages; we do that as a poll() when adding a subscription; // we don't want to re-trigger the main view re-render potentially hundreds of times. const wsUrl = this.wsUrl(); console.log(`[Connection, ${this.shortUrl}, ${this.connectionId}] Opening connection to ${wsUrl}`); this.ws = new WebSocket(wsUrl); this.ws.onopen = (event) => { console.log(`[Connection, ${this.shortUrl}, ${this.connectionId}] Connection established`, event); this.retryCount = 0; this.onStateChanged(this.subscriptionId, ConnectionState.Connected); }; this.ws.onmessage = (event) => { console.log(`[Connection, ${this.shortUrl}, ${this.connectionId}] Message received from server: ${event.data}`); try { const data = JSON.parse(event.data); if (data.event === "open") { return; } const relevantAndValid = data.event === "message" && "id" in data && "time" in data && "message" in data; if (!relevantAndValid) { console.log(`[Connection, ${this.shortUrl}, ${this.connectionId}] Unexpected message. Ignoring.`); return; } this.since = data.id; this.onNotification(this.subscriptionId, data); } catch (e) { console.log(`[Connection, ${this.shortUrl}, ${this.connectionId}] Error handling message: ${e}`); } }; this.ws.onclose = (event) => { if (event.wasClean) { console.log( `[Connection, ${this.shortUrl}, ${this.connectionId}] Connection closed cleanly, code=${event.code} reason=${event.reason}` ); this.ws = null; } else { const retrySeconds = retryBackoffSeconds[Math.min(this.retryCount, retryBackoffSeconds.length - 1)]; this.retryCount += 1; console.log(`[Connection, ${this.shortUrl}, ${this.connectionId}] Connection died, retrying in ${retrySeconds} seconds`); this.retryTimeout = setTimeout(() => this.start(), retrySeconds * 1000); this.onStateChanged(this.subscriptionId, ConnectionState.Connecting); } }; this.ws.onerror = (event) => { console.log(`[Connection, ${this.shortUrl}, ${this.connectionId}] Error occurred: ${event}`, event); }; } close() { console.log(`[Connection, ${this.shortUrl}, ${this.connectionId}] Closing connection`); const socket = this.ws; const { retryTimeout } = this; if (socket !== null) { socket.close(); } if (retryTimeout !== null) { clearTimeout(retryTimeout); } this.retryTimeout = null; this.ws = null; } wsUrl() { const params = []; if (this.since) { params.push(`since=${this.since}`); } if (this.user) { params.push(`auth=${this.authParam()}`); } const wsUrl = topicUrlWs(this.baseUrl, this.topic); return params.length === 0 ? wsUrl : `${wsUrl}?${params.join("&")}`; } authParam() { if (this.user.password) { return encodeBase64Url(basicAuth(this.user.username, this.user.password)); } return encodeBase64Url(bearerAuth(this.user.token)); } } export default Connection; ntfy-2.11.0/web/src/app/ConnectionManager.js000066400000000000000000000076231462047176100206470ustar00rootroot00000000000000import Connection from "./Connection"; import { hashCode } from "./utils"; const makeConnectionId = (subscription, user) => user ? hashCode(`${subscription.id}|${user.username}|${user.password ?? ""}|${user.token ?? ""}`) : hashCode(`${subscription.id}`); /** * The connection manager keeps track of active connections (WebSocket connections, see Connection). * * Its refresh() method reconciles state changes with the target state by closing/opening connections * as required. This is done pretty much exactly the same way as in the Android app. */ class ConnectionManager { constructor() { this.connections = new Map(); // ConnectionId -> Connection (hash, see below) this.stateListener = null; // Fired when connection state changes this.messageListener = null; // Fired when new notifications arrive } registerStateListener(listener) { this.stateListener = listener; } resetStateListener() { this.stateListener = null; } registerMessageListener(listener) { this.messageListener = listener; } resetMessageListener() { this.messageListener = null; } /** * This function figures out which websocket connections should be running by comparing the * current state of the world (connections) with the target state (targetIds). * * It uses a "connectionId", which is sha256($subscriptionId|$username|$password) to identify * connections. If any of them change, the connection is closed/replaced. */ async refresh(subscriptions, users) { if (!subscriptions || !users) { return; } console.log(`[ConnectionManager] Refreshing connections`); const subscriptionsWithUsersAndConnectionId = subscriptions.map((s) => { const [user] = users.filter((u) => u.baseUrl === s.baseUrl); const connectionId = makeConnectionId(s, user); return { ...s, user, connectionId }; }); const targetIds = subscriptionsWithUsersAndConnectionId.map((s) => s.connectionId); const deletedIds = Array.from(this.connections.keys()).filter((id) => !targetIds.includes(id)); // Create and add new connections subscriptionsWithUsersAndConnectionId.forEach((subscription) => { const subscriptionId = subscription.id; const { connectionId } = subscription; const added = !this.connections.get(connectionId); if (added) { const { baseUrl, topic, user } = subscription; const since = subscription.last; const connection = new Connection( connectionId, subscriptionId, baseUrl, topic, user, since, (subId, notification) => this.notificationReceived(subId, notification), (subId, state) => this.stateChanged(subId, state) ); this.connections.set(connectionId, connection); console.log( `[ConnectionManager] Starting new connection ${connectionId} (subscription ${subscriptionId} with user ${ user ? user.username : "anonymous" })` ); connection.start(); } }); // Delete old connections deletedIds.forEach((id) => { console.log(`[ConnectionManager] Closing connection ${id}`); const connection = this.connections.get(id); this.connections.delete(id); connection.close(); }); } stateChanged(subscriptionId, state) { if (this.stateListener) { try { this.stateListener(subscriptionId, state); } catch (e) { console.error(`[ConnectionManager] Error updating state of ${subscriptionId} to ${state}`, e); } } } notificationReceived(subscriptionId, notification) { if (this.messageListener) { try { this.messageListener(subscriptionId, notification); } catch (e) { console.error(`[ConnectionManager] Error handling notification for ${subscriptionId}`, e); } } } } const connectionManager = new ConnectionManager(); export default connectionManager; ntfy-2.11.0/web/src/app/Notifier.js000066400000000000000000000104241462047176100170250ustar00rootroot00000000000000import { playSound, topicDisplayName, topicShortUrl, urlB64ToUint8Array } from "./utils"; import { toNotificationParams } from "./notificationUtils"; import prefs from "./Prefs"; import routes from "../components/routes"; /** * The notifier is responsible for displaying desktop notifications. Note that not all modern browsers * support this; most importantly, all iOS browsers do not support window.Notification. */ class Notifier { async notify(subscription, notification) { if (!this.supported()) { return; } await this.playSound(); const shortUrl = topicShortUrl(subscription.baseUrl, subscription.topic); const defaultTitle = topicDisplayName(subscription); console.log(`[Notifier, ${shortUrl}] Displaying notification ${notification.id}`); const registration = await this.serviceWorkerRegistration(); await registration.showNotification( ...toNotificationParams({ subscriptionId: subscription.id, message: notification, defaultTitle, topicRoute: new URL(routes.forSubscription(subscription), window.location.origin).toString(), }) ); } async playSound() { // Play sound const sound = await prefs.sound(); if (sound && sound !== "none") { try { await playSound(sound); } catch (e) { console.log(`[Notifier] Error playing audio`, e); } } } async webPushSubscription(hasWebPushTopics) { const pushManager = await this.pushManager(); const existingSubscription = await pushManager.getSubscription(); if (existingSubscription) { return existingSubscription; } // Create a new subscription only if there are new topics to subscribe to. It is possible that Web Push // was previously enabled and then disabled again in which case there would be an existingSubscription. // If, however, it was _not_ enabled previously, we create a new subscription if it is now enabled. if (hasWebPushTopics) { return pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: urlB64ToUint8Array(config.web_push_public_key), }); } return undefined; } async pushManager() { return (await this.serviceWorkerRegistration()).pushManager; } async serviceWorkerRegistration() { const registration = await navigator.serviceWorker.getRegistration(); if (!registration) { throw new Error("No service worker registration found"); } return registration; } notRequested() { return this.supported() && Notification.permission === "default"; } granted() { return this.supported() && Notification.permission === "granted"; } denied() { return this.supported() && Notification.permission === "denied"; } async maybeRequestPermission() { if (!this.supported()) { return false; } return new Promise((resolve) => { Notification.requestPermission((permission) => { resolve(permission === "granted"); }); }); } supported() { return this.browserSupported() && this.contextSupported(); } browserSupported() { return "Notification" in window; } pushSupported() { return config.enable_web_push && "serviceWorker" in navigator && "PushManager" in window; } pushPossible() { return this.pushSupported() && this.contextSupported() && this.granted() && !this.iosSupportedButInstallRequired(); } /** * Returns true if this is a HTTPS site, or served over localhost. Otherwise the Notification API * is not supported, see https://developer.mozilla.org/en-US/docs/Web/API/notification */ contextSupported() { return window.location.protocol === "https:" || window.location.hostname.match("^127.") || window.location.hostname === "localhost"; } // no PushManager when not installed, but it _is_ supported. iosSupportedButInstallRequired() { return ( config.enable_web_push && // a service worker exists "serviceWorker" in navigator && // but the pushmanager API is missing, which implies we're on an iOS device without installing !("PushManager" in window) && // check that this is the case by checking for `standalone`, which only exists on Safari window.navigator.standalone === false ); } } const notifier = new Notifier(); export default notifier; ntfy-2.11.0/web/src/app/Poller.js000066400000000000000000000032561462047176100165100ustar00rootroot00000000000000import api from "./Api"; import subscriptionManager from "./SubscriptionManager"; const delayMillis = 2000; // 2 seconds const intervalMillis = 300000; // 5 minutes class Poller { constructor() { this.timer = null; } startWorker() { if (this.timer !== null) { return; } console.log(`[Poller] Starting worker`); this.timer = setInterval(() => this.pollAll(), intervalMillis); setTimeout(() => this.pollAll(), delayMillis); } stopWorker() { clearTimeout(this.timer); } async pollAll() { console.log(`[Poller] Polling all subscriptions`); const subscriptions = await subscriptionManager.all(); await Promise.all( subscriptions.map(async (s) => { try { await this.poll(s); } catch (e) { console.log(`[Poller] Error polling ${s.id}`, e); } }) ); } async poll(subscription) { console.log(`[Poller] Polling ${subscription.id}`); const since = subscription.last; const notifications = await api.poll(subscription.baseUrl, subscription.topic, since); if (!notifications || notifications.length === 0) { console.log(`[Poller] No new notifications found for ${subscription.id}`); return; } console.log(`[Poller] Adding ${notifications.length} notification(s) for ${subscription.id}`); await subscriptionManager.addNotifications(subscription.id, notifications); } pollInBackground(subscription) { (async () => { try { await this.poll(subscription); } catch (e) { console.error(`[App] Error polling subscription ${subscription.id}`, e); } })(); } } const poller = new Poller(); export default poller; ntfy-2.11.0/web/src/app/Prefs.js000066400000000000000000000026741462047176100163350ustar00rootroot00000000000000import db from "./db"; export const THEME = { DARK: "dark", LIGHT: "light", SYSTEM: "system", }; class Prefs { constructor(dbImpl) { this.db = dbImpl; } async setSound(sound) { this.db.prefs.put({ key: "sound", value: sound.toString() }); } async sound() { const sound = await this.db.prefs.get("sound"); return sound ? sound.value : "ding"; } async setMinPriority(minPriority) { this.db.prefs.put({ key: "minPriority", value: minPriority.toString() }); } async minPriority() { const minPriority = await this.db.prefs.get("minPriority"); return minPriority ? Number(minPriority.value) : 1; } async setDeleteAfter(deleteAfter) { await this.db.prefs.put({ key: "deleteAfter", value: deleteAfter.toString() }); } async deleteAfter() { const deleteAfter = await this.db.prefs.get("deleteAfter"); return deleteAfter ? Number(deleteAfter.value) : 604800; // Default is one week } async webPushEnabled() { const webPushEnabled = await this.db.prefs.get("webPushEnabled"); return webPushEnabled?.value; } async setWebPushEnabled(enabled) { await this.db.prefs.put({ key: "webPushEnabled", value: enabled }); } async theme() { const theme = await this.db.prefs.get("theme"); return theme?.value ?? THEME.SYSTEM; } async setTheme(mode) { await this.db.prefs.put({ key: "theme", value: mode }); } } const prefs = new Prefs(db()); export default prefs; ntfy-2.11.0/web/src/app/Pruner.js000066400000000000000000000022141462047176100165170ustar00rootroot00000000000000import prefs from "./Prefs"; import subscriptionManager from "./SubscriptionManager"; const delayMillis = 25000; // 25 seconds const intervalMillis = 1800000; // 30 minutes class Pruner { constructor() { this.timer = null; } startWorker() { if (this.timer !== null) { return; } console.log(`[Pruner] Starting worker`); this.timer = setInterval(() => this.prune(), intervalMillis); setTimeout(() => this.prune(), delayMillis); } stopWorker() { clearTimeout(this.timer); } async prune() { const deleteAfterSeconds = await prefs.deleteAfter(); const pruneThresholdTimestamp = Math.round(Date.now() / 1000) - deleteAfterSeconds; if (deleteAfterSeconds === 0) { console.log(`[Pruner] Pruning is disabled. Skipping.`); return; } console.log(`[Pruner] Pruning notifications older than ${deleteAfterSeconds}s (timestamp ${pruneThresholdTimestamp})`); try { await subscriptionManager.pruneNotifications(pruneThresholdTimestamp); } catch (e) { console.log(`[Pruner] Error pruning old subscriptions`, e); } } } const pruner = new Pruner(); export default pruner; ntfy-2.11.0/web/src/app/Session.js000066400000000000000000000033431462047176100166730ustar00rootroot00000000000000import Dexie from "dexie"; /** * Manages the logged-in user's session and access token. * The session replica is stored in IndexedDB so that the service worker can access it. */ class Session { constructor() { const db = new Dexie("session-replica"); db.version(1).stores({ kv: "&key", }); this.db = db; // existing sessions (pre-v2.6.0) haven't called `store` with the session-replica, // so attempt to sync any values from localStorage to IndexedDB if (typeof localStorage !== "undefined" && this.exists()) { const username = this.username(); const token = this.token(); this.db.kv .bulkPut([ { key: "user", value: username }, { key: "token", value: token }, ]) .then(() => { console.log("[Session] Synced localStorage session to IndexedDB", { username }); }) .catch((e) => { console.error("[Session] Failed to sync localStorage session to IndexedDB", e); }); } } async store(username, token) { await this.db.kv.bulkPut([ { key: "user", value: username }, { key: "token", value: token }, ]); localStorage.setItem("user", username); localStorage.setItem("token", token); } async resetAndRedirect(url) { await this.db.delete(); localStorage.removeItem("user"); localStorage.removeItem("token"); window.location.href = url; } async usernameAsync() { return (await this.db.kv.get({ key: "user" }))?.value; } exists() { return this.username() && this.token(); } username() { return localStorage.getItem("user"); } token() { return localStorage.getItem("token"); } } const session = new Session(); export default session; ntfy-2.11.0/web/src/app/SubscriptionManager.js000066400000000000000000000177541462047176100212420ustar00rootroot00000000000000import api from "./Api"; import notifier from "./Notifier"; import prefs from "./Prefs"; import db from "./db"; import { topicUrl } from "./utils"; class SubscriptionManager { constructor(dbImpl) { this.db = dbImpl; } /** All subscriptions, including "new count"; this is a JOIN, see https://dexie.org/docs/API-Reference#joining */ async all() { const subscriptions = await this.db.subscriptions.toArray(); return Promise.all( subscriptions.map(async (s) => ({ ...s, new: await this.db.notifications.where({ subscriptionId: s.id, new: 1 }).count(), })) ); } /** * List of topics for which Web Push is enabled. This excludes (a) internal topics, (b) topics that are muted, * and (c) topics from other hosts. Returns an empty list if Web Push is disabled. * * It is important to note that "mutedUntil" must be part of the where() query, otherwise the Dexie live query * will not react to it, and the Web Push topics will not be updated when the user mutes a topic. */ async webPushTopics(pushPossible) { if (!pushPossible) { return []; } // the Promise.resolve wrapper is not superfluous, without it the live query breaks: // https://dexie.org/docs/dexie-react-hooks/useLiveQuery()#calling-non-dexie-apis-from-querier const enabled = await Promise.resolve(prefs.webPushEnabled()); if (!enabled) { return []; } const subscriptions = await this.db.subscriptions.where({ baseUrl: config.base_url, mutedUntil: 0 }).toArray(); return subscriptions.filter(({ internal }) => !internal).map(({ topic }) => topic); } async get(subscriptionId) { return this.db.subscriptions.get(subscriptionId); } async notify(subscriptionId, notification) { const subscription = await this.get(subscriptionId); if (subscription.mutedUntil > 0) { return; } const priority = notification.priority ?? 3; if (priority < (await prefs.minPriority())) { return; } await notifier.notify(subscription, notification); } /** * @param {string} baseUrl * @param {string} topic * @param {object} opts * @param {boolean} opts.internal * @returns */ async add(baseUrl, topic, opts = {}) { const id = topicUrl(baseUrl, topic); const existingSubscription = await this.get(id); if (existingSubscription) { return existingSubscription; } const subscription = { ...opts, id: topicUrl(baseUrl, topic), baseUrl, topic, mutedUntil: 0, last: null, }; await this.db.subscriptions.put(subscription); return subscription; } async syncFromRemote(remoteSubscriptions, remoteReservations) { console.log(`[SubscriptionManager] Syncing subscriptions from remote`, remoteSubscriptions); // Add remote subscriptions const remoteIds = await Promise.all( remoteSubscriptions.map(async (remote) => { const reservation = remoteReservations?.find((r) => remote.base_url === config.base_url && remote.topic === r.topic) || null; const local = await this.add(remote.base_url, remote.topic, { displayName: remote.display_name, // May be undefined reservation, // May be null! }); return local.id; }) ); // Remove local subscriptions that do not exist remotely const localSubscriptions = await this.db.subscriptions.toArray(); await Promise.all( localSubscriptions.map(async (local) => { const remoteExists = remoteIds.includes(local.id); if (!local.internal && !remoteExists) { await this.remove(local); } }) ); } async updateWebPushSubscriptions(topics) { const hasWebPushTopics = topics.length > 0; const browserSubscription = await notifier.webPushSubscription(hasWebPushTopics); if (!browserSubscription) { console.log( "[SubscriptionManager] No browser subscription currently exists, so web push was never enabled or the notification permission was removed. Skipping." ); return; } if (hasWebPushTopics) { await api.updateWebPush(browserSubscription, topics); } else { await api.deleteWebPush(browserSubscription); } } async updateState(subscriptionId, state) { this.db.subscriptions.update(subscriptionId, { state }); } async remove(subscription) { await this.db.subscriptions.delete(subscription.id); await this.db.notifications.where({ subscriptionId: subscription.id }).delete(); } async first() { return this.db.subscriptions.toCollection().first(); // May be undefined } async getNotifications(subscriptionId) { // This is quite awkward, but it is the recommended approach as per the Dexie docs. // It's actually fine, because the reading and filtering is quite fast. The rendering is what's // killing performance. See https://dexie.org/docs/Collection/Collection.offset()#a-better-paging-approach return this.db.notifications .orderBy("time") // Sort by time first .filter((n) => n.subscriptionId === subscriptionId) .reverse() .toArray(); } async getAllNotifications() { return this.db.notifications .orderBy("time") // Efficient, see docs .reverse() .toArray(); } /** Adds notification, or returns false if it already exists */ async addNotification(subscriptionId, notification) { const exists = await this.db.notifications.get(notification.id); if (exists) { return false; } try { // sw.js duplicates this logic, so if you change it here, change it there too await this.db.notifications.add({ ...notification, subscriptionId, // New marker (used for bubble indicator); cannot be boolean; Dexie index limitation new: 1, }); // FIXME consider put() for double tab await this.db.subscriptions.update(subscriptionId, { last: notification.id, }); } catch (e) { console.error(`[SubscriptionManager] Error adding notification`, e); } return true; } /** Adds/replaces notifications, will not throw if they exist */ async addNotifications(subscriptionId, notifications) { const notificationsWithSubscriptionId = notifications.map((notification) => ({ ...notification, subscriptionId })); const lastNotificationId = notifications.at(-1).id; await this.db.notifications.bulkPut(notificationsWithSubscriptionId); await this.db.subscriptions.update(subscriptionId, { last: lastNotificationId, }); } async updateNotification(notification) { const exists = await this.db.notifications.get(notification.id); if (!exists) { return false; } try { await this.db.notifications.put({ ...notification }); } catch (e) { console.error(`[SubscriptionManager] Error updating notification`, e); } return true; } async deleteNotification(notificationId) { await this.db.notifications.delete(notificationId); } async deleteNotifications(subscriptionId) { await this.db.notifications.where({ subscriptionId }).delete(); } async markNotificationRead(notificationId) { await this.db.notifications.where({ id: notificationId }).modify({ new: 0 }); } async markNotificationsRead(subscriptionId) { await this.db.notifications.where({ subscriptionId, new: 1 }).modify({ new: 0 }); } async setMutedUntil(subscriptionId, mutedUntil) { await this.db.subscriptions.update(subscriptionId, { mutedUntil, }); } async setDisplayName(subscriptionId, displayName) { await this.db.subscriptions.update(subscriptionId, { displayName, }); } async setReservation(subscriptionId, reservation) { await this.db.subscriptions.update(subscriptionId, { reservation, }); } async update(subscriptionId, params) { await this.db.subscriptions.update(subscriptionId, params); } async pruneNotifications(thresholdTimestamp) { await this.db.notifications.where("time").below(thresholdTimestamp).delete(); } } export default new SubscriptionManager(db()); ntfy-2.11.0/web/src/app/UserManager.js000066400000000000000000000017501462047176100174610ustar00rootroot00000000000000import db from "./db"; import session from "./Session"; class UserManager { constructor(dbImpl) { this.db = dbImpl; } async all() { const users = await this.db.users.toArray(); if (session.exists()) { users.unshift(this.localUser()); } return users; } async get(baseUrl) { if (session.exists() && baseUrl === config.base_url) { return this.localUser(); } return this.db.users.get(baseUrl); } async save(user) { if (session.exists() && user.baseUrl === config.base_url) { return; } await this.db.users.put(user); } async delete(baseUrl) { if (session.exists() && baseUrl === config.base_url) { return; } await this.db.users.delete(baseUrl); } localUser() { if (!session.exists()) { return null; } return { baseUrl: config.base_url, username: session.username(), token: session.token(), // Not "password"! }; } } export default new UserManager(db()); ntfy-2.11.0/web/src/app/config.js000066400000000000000000000004271462047176100165150ustar00rootroot00000000000000const { config } = window; // The backend returns an empty base_url for the config struct, // so the frontend (hey, that's us!) can use the current location. if (!config.base_url || config.base_url === "") { config.base_url = window.location.origin; } export default config; ntfy-2.11.0/web/src/app/db.js000066400000000000000000000015421462047176100156340ustar00rootroot00000000000000import Dexie from "dexie"; import session from "./Session"; // Uses Dexie.js // https://dexie.org/docs/API-Reference#quick-reference // // Notes: // - As per docs, we only declare the indexable columns, not all columns const createDatabase = (username) => { const dbName = username ? `ntfy-${username}` : "ntfy"; // IndexedDB database is based on the logged-in user const db = new Dexie(dbName); db.version(2).stores({ subscriptions: "&id,baseUrl,[baseUrl+mutedUntil]", notifications: "&id,subscriptionId,time,new,[subscriptionId+new]", // compound key for query performance users: "&baseUrl,username", prefs: "&key", }); return db; }; export const dbAsync = async () => { const username = await session.usernameAsync(); return createDatabase(username); }; const db = () => createDatabase(session.username()); export default db; ntfy-2.11.0/web/src/app/emojis.js000066400000000000000000011207211462047176100165370ustar00rootroot00000000000000// This file is generated by scripts/emoji-convert.sh to reduce the size // Original data source: https://github.com/github/gemoji/blob/master/db/emoji.json export const rawEmojis = [ { emoji: "😀", aliases: ["grinning"], tags: ["smile", "happy"], category: "Smileys & Emotion", description: "grinning face", unicode_version: "6.1", }, { emoji: "😃", aliases: ["smiley"], tags: ["happy", "joy", "haha"], category: "Smileys & Emotion", description: "grinning face with big eyes", unicode_version: "6.0", }, { emoji: "😄", aliases: ["smile"], tags: ["happy", "joy", "laugh", "pleased"], category: "Smileys & Emotion", description: "grinning face with smiling eyes", unicode_version: "6.0", }, { emoji: "😁", aliases: ["grin"], tags: [], category: "Smileys & Emotion", description: "beaming face with smiling eyes", unicode_version: "6.0", }, { emoji: "😆", aliases: ["laughing", "satisfied"], tags: ["happy", "haha"], category: "Smileys & Emotion", description: "grinning squinting face", unicode_version: "6.0", }, { emoji: "😅", aliases: ["sweat_smile"], tags: ["hot"], category: "Smileys & Emotion", description: "grinning face with sweat", unicode_version: "6.0", }, { emoji: "🤣", aliases: ["rofl"], tags: ["lol", "laughing"], category: "Smileys & Emotion", description: "rolling on the floor laughing", unicode_version: "9.0", }, { emoji: "😂", aliases: ["joy"], tags: ["tears"], category: "Smileys & Emotion", description: "face with tears of joy", unicode_version: "6.0", }, { emoji: "🙂", aliases: ["slightly_smiling_face"], tags: [], category: "Smileys & Emotion", description: "slightly smiling face", unicode_version: "7.0", }, { emoji: "🙃", aliases: ["upside_down_face"], tags: [], category: "Smileys & Emotion", description: "upside-down face", unicode_version: "8.0", }, { emoji: "😉", aliases: ["wink"], tags: ["flirt"], category: "Smileys & Emotion", description: "winking face", unicode_version: "6.0", }, { emoji: "😊", aliases: ["blush"], tags: ["proud"], category: "Smileys & Emotion", description: "smiling face with smiling eyes", unicode_version: "6.0", }, { emoji: "😇", aliases: ["innocent"], tags: ["angel"], category: "Smileys & Emotion", description: "smiling face with halo", unicode_version: "6.0", }, { emoji: "🥰", aliases: ["smiling_face_with_three_hearts"], tags: ["love"], category: "Smileys & Emotion", description: "smiling face with hearts", unicode_version: "11.0", }, { emoji: "😍", aliases: ["heart_eyes"], tags: ["love", "crush"], category: "Smileys & Emotion", description: "smiling face with heart-eyes", unicode_version: "6.0", }, { emoji: "🤩", aliases: ["star_struck"], tags: ["eyes"], category: "Smileys & Emotion", description: "star-struck", unicode_version: "11.0", }, { emoji: "😘", aliases: ["kissing_heart"], tags: ["flirt"], category: "Smileys & Emotion", description: "face blowing a kiss", unicode_version: "6.0", }, { emoji: "😗", aliases: ["kissing"], tags: [], category: "Smileys & Emotion", description: "kissing face", unicode_version: "6.1", }, { emoji: "☺️", aliases: ["relaxed"], tags: ["blush", "pleased"], category: "Smileys & Emotion", description: "smiling face", unicode_version: "", }, { emoji: "😚", aliases: ["kissing_closed_eyes"], tags: [], category: "Smileys & Emotion", description: "kissing face with closed eyes", unicode_version: "6.0", }, { emoji: "😙", aliases: ["kissing_smiling_eyes"], tags: [], category: "Smileys & Emotion", description: "kissing face with smiling eyes", unicode_version: "6.1", }, { emoji: "🥲", aliases: ["smiling_face_with_tear"], tags: [], category: "Smileys & Emotion", description: "smiling face with tear", unicode_version: "13.0", }, { emoji: "😋", aliases: ["yum"], tags: ["tongue", "lick"], category: "Smileys & Emotion", description: "face savoring food", unicode_version: "6.0", }, { emoji: "😛", aliases: ["stuck_out_tongue"], tags: [], category: "Smileys & Emotion", description: "face with tongue", unicode_version: "6.1", }, { emoji: "😜", aliases: ["stuck_out_tongue_winking_eye"], tags: ["prank", "silly"], category: "Smileys & Emotion", description: "winking face with tongue", unicode_version: "6.0", }, { emoji: "🤪", aliases: ["zany_face"], tags: ["goofy", "wacky"], category: "Smileys & Emotion", description: "zany face", unicode_version: "11.0", }, { emoji: "😝", aliases: ["stuck_out_tongue_closed_eyes"], tags: ["prank"], category: "Smileys & Emotion", description: "squinting face with tongue", unicode_version: "6.0", }, { emoji: "🤑", aliases: ["money_mouth_face"], tags: ["rich"], category: "Smileys & Emotion", description: "money-mouth face", unicode_version: "8.0", }, { emoji: "🤗", aliases: ["hugs"], tags: [], category: "Smileys & Emotion", description: "hugging face", unicode_version: "8.0", }, { emoji: "🤭", aliases: ["hand_over_mouth"], tags: ["quiet", "whoops"], category: "Smileys & Emotion", description: "face with hand over mouth", unicode_version: "11.0", }, { emoji: "🤫", aliases: ["shushing_face"], tags: ["silence", "quiet"], category: "Smileys & Emotion", description: "shushing face", unicode_version: "11.0", }, { emoji: "🤔", aliases: ["thinking"], tags: [], category: "Smileys & Emotion", description: "thinking face", unicode_version: "8.0", }, { emoji: "🤐", aliases: ["zipper_mouth_face"], tags: ["silence", "hush"], category: "Smileys & Emotion", description: "zipper-mouth face", unicode_version: "8.0", }, { emoji: "🤨", aliases: ["raised_eyebrow"], tags: ["suspicious"], category: "Smileys & Emotion", description: "face with raised eyebrow", unicode_version: "11.0", }, { emoji: "😐", aliases: ["neutral_face"], tags: ["meh"], category: "Smileys & Emotion", description: "neutral face", unicode_version: "6.0", }, { emoji: "😑", aliases: ["expressionless"], tags: [], category: "Smileys & Emotion", description: "expressionless face", unicode_version: "6.1", }, { emoji: "😶", aliases: ["no_mouth"], tags: ["mute", "silence"], category: "Smileys & Emotion", description: "face without mouth", unicode_version: "6.0", }, { emoji: "😶‍🌫️", aliases: ["face_in_clouds"], tags: [], category: "Smileys & Emotion", description: "face in clouds", unicode_version: "13.1", }, { emoji: "😏", aliases: ["smirk"], tags: ["smug"], category: "Smileys & Emotion", description: "smirking face", unicode_version: "6.0", }, { emoji: "😒", aliases: ["unamused"], tags: ["meh"], category: "Smileys & Emotion", description: "unamused face", unicode_version: "6.0", }, { emoji: "🙄", aliases: ["roll_eyes"], tags: [], category: "Smileys & Emotion", description: "face with rolling eyes", unicode_version: "8.0", }, { emoji: "😬", aliases: ["grimacing"], tags: [], category: "Smileys & Emotion", description: "grimacing face", unicode_version: "6.1", }, { emoji: "😮‍💨", aliases: ["face_exhaling"], tags: [], category: "Smileys & Emotion", description: "face exhaling", unicode_version: "13.1", }, { emoji: "🤥", aliases: ["lying_face"], tags: ["liar"], category: "Smileys & Emotion", description: "lying face", unicode_version: "9.0", }, { emoji: "😌", aliases: ["relieved"], tags: ["whew"], category: "Smileys & Emotion", description: "relieved face", unicode_version: "6.0", }, { emoji: "😔", aliases: ["pensive"], tags: [], category: "Smileys & Emotion", description: "pensive face", unicode_version: "6.0", }, { emoji: "😪", aliases: ["sleepy"], tags: ["tired"], category: "Smileys & Emotion", description: "sleepy face", unicode_version: "6.0", }, { emoji: "🤤", aliases: ["drooling_face"], tags: [], category: "Smileys & Emotion", description: "drooling face", unicode_version: "9.0", }, { emoji: "😴", aliases: ["sleeping"], tags: ["zzz"], category: "Smileys & Emotion", description: "sleeping face", unicode_version: "6.1", }, { emoji: "😷", aliases: ["mask"], tags: ["sick", "ill"], category: "Smileys & Emotion", description: "face with medical mask", unicode_version: "6.0", }, { emoji: "🤒", aliases: ["face_with_thermometer"], tags: ["sick"], category: "Smileys & Emotion", description: "face with thermometer", unicode_version: "8.0", }, { emoji: "🤕", aliases: ["face_with_head_bandage"], tags: ["hurt"], category: "Smileys & Emotion", description: "face with head-bandage", unicode_version: "8.0", }, { emoji: "🤢", aliases: ["nauseated_face"], tags: ["sick", "barf", "disgusted"], category: "Smileys & Emotion", description: "nauseated face", unicode_version: "9.0", }, { emoji: "🤮", aliases: ["vomiting_face"], tags: ["barf", "sick"], category: "Smileys & Emotion", description: "face vomiting", unicode_version: "11.0", }, { emoji: "🤧", aliases: ["sneezing_face"], tags: ["achoo", "sick"], category: "Smileys & Emotion", description: "sneezing face", unicode_version: "9.0", }, { emoji: "🥵", aliases: ["hot_face"], tags: ["heat", "sweating"], category: "Smileys & Emotion", description: "hot face", unicode_version: "11.0", }, { emoji: "🥶", aliases: ["cold_face"], tags: ["freezing", "ice"], category: "Smileys & Emotion", description: "cold face", unicode_version: "11.0", }, { emoji: "🥴", aliases: ["woozy_face"], tags: ["groggy"], category: "Smileys & Emotion", description: "woozy face", unicode_version: "11.0", }, { emoji: "😵", aliases: ["dizzy_face"], tags: [], category: "Smileys & Emotion", description: "knocked-out face", unicode_version: "6.0", }, { emoji: "😵‍💫", aliases: ["face_with_spiral_eyes"], tags: [], category: "Smileys & Emotion", description: "face with spiral eyes", unicode_version: "13.1", }, { emoji: "🤯", aliases: ["exploding_head"], tags: ["mind", "blown"], category: "Smileys & Emotion", description: "exploding head", unicode_version: "11.0", }, { emoji: "🤠", aliases: ["cowboy_hat_face"], tags: [], category: "Smileys & Emotion", description: "cowboy hat face", unicode_version: "9.0", }, { emoji: "🥳", aliases: ["partying_face"], tags: ["celebration", "birthday"], category: "Smileys & Emotion", description: "partying face", unicode_version: "11.0", }, { emoji: "🥸", aliases: ["disguised_face"], tags: [], category: "Smileys & Emotion", description: "disguised face", unicode_version: "13.0", }, { emoji: "😎", aliases: ["sunglasses"], tags: ["cool"], category: "Smileys & Emotion", description: "smiling face with sunglasses", unicode_version: "6.0", }, { emoji: "🤓", aliases: ["nerd_face"], tags: ["geek", "glasses"], category: "Smileys & Emotion", description: "nerd face", unicode_version: "8.0", }, { emoji: "🧐", aliases: ["monocle_face"], tags: [], category: "Smileys & Emotion", description: "face with monocle", unicode_version: "11.0", }, { emoji: "😕", aliases: ["confused"], tags: [], category: "Smileys & Emotion", description: "confused face", unicode_version: "6.1", }, { emoji: "😟", aliases: ["worried"], tags: ["nervous"], category: "Smileys & Emotion", description: "worried face", unicode_version: "6.1", }, { emoji: "🙁", aliases: ["slightly_frowning_face"], tags: [], category: "Smileys & Emotion", description: "slightly frowning face", unicode_version: "7.0", }, { emoji: "☹️", aliases: ["frowning_face"], tags: [], category: "Smileys & Emotion", description: "frowning face", unicode_version: "", }, { emoji: "😮", aliases: ["open_mouth"], tags: ["surprise", "impressed", "wow"], category: "Smileys & Emotion", description: "face with open mouth", unicode_version: "6.1", }, { emoji: "😯", aliases: ["hushed"], tags: ["silence", "speechless"], category: "Smileys & Emotion", description: "hushed face", unicode_version: "6.1", }, { emoji: "😲", aliases: ["astonished"], tags: ["amazed", "gasp"], category: "Smileys & Emotion", description: "astonished face", unicode_version: "6.0", }, { emoji: "😳", aliases: ["flushed"], tags: [], category: "Smileys & Emotion", description: "flushed face", unicode_version: "6.0", }, { emoji: "🥺", aliases: ["pleading_face"], tags: ["puppy", "eyes"], category: "Smileys & Emotion", description: "pleading face", unicode_version: "11.0", }, { emoji: "😦", aliases: ["frowning"], tags: [], category: "Smileys & Emotion", description: "frowning face with open mouth", unicode_version: "6.1", }, { emoji: "😧", aliases: ["anguished"], tags: ["stunned"], category: "Smileys & Emotion", description: "anguished face", unicode_version: "6.1", }, { emoji: "😨", aliases: ["fearful"], tags: ["scared", "shocked", "oops"], category: "Smileys & Emotion", description: "fearful face", unicode_version: "6.0", }, { emoji: "😰", aliases: ["cold_sweat"], tags: ["nervous"], category: "Smileys & Emotion", description: "anxious face with sweat", unicode_version: "6.0", }, { emoji: "😥", aliases: ["disappointed_relieved"], tags: ["phew", "sweat", "nervous"], category: "Smileys & Emotion", description: "sad but relieved face", unicode_version: "6.0", }, { emoji: "😢", aliases: ["cry"], tags: ["sad", "tear"], category: "Smileys & Emotion", description: "crying face", unicode_version: "6.0", }, { emoji: "😭", aliases: ["sob"], tags: ["sad", "cry", "bawling"], category: "Smileys & Emotion", description: "loudly crying face", unicode_version: "6.0", }, { emoji: "😱", aliases: ["scream"], tags: ["horror", "shocked"], category: "Smileys & Emotion", description: "face screaming in fear", unicode_version: "6.0", }, { emoji: "😖", aliases: ["confounded"], tags: [], category: "Smileys & Emotion", description: "confounded face", unicode_version: "6.0", }, { emoji: "😣", aliases: ["persevere"], tags: ["struggling"], category: "Smileys & Emotion", description: "persevering face", unicode_version: "6.0", }, { emoji: "😞", aliases: ["disappointed"], tags: ["sad"], category: "Smileys & Emotion", description: "disappointed face", unicode_version: "6.0", }, { emoji: "😓", aliases: ["sweat"], tags: [], category: "Smileys & Emotion", description: "downcast face with sweat", unicode_version: "6.0", }, { emoji: "😩", aliases: ["weary"], tags: ["tired"], category: "Smileys & Emotion", description: "weary face", unicode_version: "6.0", }, { emoji: "😫", aliases: ["tired_face"], tags: ["upset", "whine"], category: "Smileys & Emotion", description: "tired face", unicode_version: "6.0", }, { emoji: "🥱", aliases: ["yawning_face"], tags: [], category: "Smileys & Emotion", description: "yawning face", unicode_version: "12.0", }, { emoji: "😤", aliases: ["triumph"], tags: ["smug"], category: "Smileys & Emotion", description: "face with steam from nose", unicode_version: "6.0", }, { emoji: "😡", aliases: ["rage", "pout"], tags: ["angry"], category: "Smileys & Emotion", description: "pouting face", unicode_version: "6.0", }, { emoji: "😠", aliases: ["angry"], tags: ["mad", "annoyed"], category: "Smileys & Emotion", description: "angry face", unicode_version: "6.0", }, { emoji: "🤬", aliases: ["cursing_face"], tags: ["foul"], category: "Smileys & Emotion", description: "face with symbols on mouth", unicode_version: "11.0", }, { emoji: "😈", aliases: ["smiling_imp"], tags: ["devil", "evil", "horns"], category: "Smileys & Emotion", description: "smiling face with horns", unicode_version: "6.0", }, { emoji: "👿", aliases: ["imp"], tags: ["angry", "devil", "evil", "horns"], category: "Smileys & Emotion", description: "angry face with horns", unicode_version: "6.0", }, { emoji: "💀", aliases: ["skull"], tags: ["dead", "danger", "poison"], category: "Smileys & Emotion", description: "skull", unicode_version: "6.0", }, { emoji: "☠️", aliases: ["skull_and_crossbones"], tags: ["danger", "pirate"], category: "Smileys & Emotion", description: "skull and crossbones", unicode_version: "", }, { emoji: "💩", aliases: ["hankey", "poop", "shit"], tags: ["crap"], category: "Smileys & Emotion", description: "pile of poo", unicode_version: "6.0", }, { emoji: "🤡", aliases: ["clown_face"], tags: [], category: "Smileys & Emotion", description: "clown face", unicode_version: "9.0", }, { emoji: "👹", aliases: ["japanese_ogre"], tags: ["monster"], category: "Smileys & Emotion", description: "ogre", unicode_version: "6.0", }, { emoji: "👺", aliases: ["japanese_goblin"], tags: [], category: "Smileys & Emotion", description: "goblin", unicode_version: "6.0", }, { emoji: "👻", aliases: ["ghost"], tags: ["halloween"], category: "Smileys & Emotion", description: "ghost", unicode_version: "6.0", }, { emoji: "👽", aliases: ["alien"], tags: ["ufo"], category: "Smileys & Emotion", description: "alien", unicode_version: "6.0", }, { emoji: "👾", aliases: ["space_invader"], tags: ["game", "retro"], category: "Smileys & Emotion", description: "alien monster", unicode_version: "6.0", }, { emoji: "🤖", aliases: ["robot"], tags: [], category: "Smileys & Emotion", description: "robot", unicode_version: "8.0", }, { emoji: "😺", aliases: ["smiley_cat"], tags: [], category: "Smileys & Emotion", description: "grinning cat", unicode_version: "6.0", }, { emoji: "😸", aliases: ["smile_cat"], tags: [], category: "Smileys & Emotion", description: "grinning cat with smiling eyes", unicode_version: "6.0", }, { emoji: "😹", aliases: ["joy_cat"], tags: [], category: "Smileys & Emotion", description: "cat with tears of joy", unicode_version: "6.0", }, { emoji: "😻", aliases: ["heart_eyes_cat"], tags: [], category: "Smileys & Emotion", description: "smiling cat with heart-eyes", unicode_version: "6.0", }, { emoji: "😼", aliases: ["smirk_cat"], tags: [], category: "Smileys & Emotion", description: "cat with wry smile", unicode_version: "6.0", }, { emoji: "😽", aliases: ["kissing_cat"], tags: [], category: "Smileys & Emotion", description: "kissing cat", unicode_version: "6.0", }, { emoji: "🙀", aliases: ["scream_cat"], tags: ["horror"], category: "Smileys & Emotion", description: "weary cat", unicode_version: "6.0", }, { emoji: "😿", aliases: ["crying_cat_face"], tags: ["sad", "tear"], category: "Smileys & Emotion", description: "crying cat", unicode_version: "6.0", }, { emoji: "😾", aliases: ["pouting_cat"], tags: [], category: "Smileys & Emotion", description: "pouting cat", unicode_version: "6.0", }, { emoji: "🙈", aliases: ["see_no_evil"], tags: ["monkey", "blind", "ignore"], category: "Smileys & Emotion", description: "see-no-evil monkey", unicode_version: "6.0", }, { emoji: "🙉", aliases: ["hear_no_evil"], tags: ["monkey", "deaf"], category: "Smileys & Emotion", description: "hear-no-evil monkey", unicode_version: "6.0", }, { emoji: "🙊", aliases: ["speak_no_evil"], tags: ["monkey", "mute", "hush"], category: "Smileys & Emotion", description: "speak-no-evil monkey", unicode_version: "6.0", }, { emoji: "💋", aliases: ["kiss"], tags: ["lipstick"], category: "Smileys & Emotion", description: "kiss mark", unicode_version: "6.0", }, { emoji: "💌", aliases: ["love_letter"], tags: ["email", "envelope"], category: "Smileys & Emotion", description: "love letter", unicode_version: "6.0", }, { emoji: "💘", aliases: ["cupid"], tags: ["love", "heart"], category: "Smileys & Emotion", description: "heart with arrow", unicode_version: "6.0", }, { emoji: "💝", aliases: ["gift_heart"], tags: ["chocolates"], category: "Smileys & Emotion", description: "heart with ribbon", unicode_version: "6.0", }, { emoji: "💖", aliases: ["sparkling_heart"], tags: [], category: "Smileys & Emotion", description: "sparkling heart", unicode_version: "6.0", }, { emoji: "💗", aliases: ["heartpulse"], tags: [], category: "Smileys & Emotion", description: "growing heart", unicode_version: "6.0", }, { emoji: "💓", aliases: ["heartbeat"], tags: [], category: "Smileys & Emotion", description: "beating heart", unicode_version: "6.0", }, { emoji: "💞", aliases: ["revolving_hearts"], tags: [], category: "Smileys & Emotion", description: "revolving hearts", unicode_version: "6.0", }, { emoji: "💕", aliases: ["two_hearts"], tags: [], category: "Smileys & Emotion", description: "two hearts", unicode_version: "6.0", }, { emoji: "💟", aliases: ["heart_decoration"], tags: [], category: "Smileys & Emotion", description: "heart decoration", unicode_version: "6.0", }, { emoji: "❣️", aliases: ["heavy_heart_exclamation"], tags: [], category: "Smileys & Emotion", description: "heart exclamation", unicode_version: "", }, { emoji: "💔", aliases: ["broken_heart"], tags: [], category: "Smileys & Emotion", description: "broken heart", unicode_version: "6.0", }, { emoji: "❤️‍🔥", aliases: ["heart_on_fire"], tags: [], category: "Smileys & Emotion", description: "heart on fire", unicode_version: "13.1", }, { emoji: "❤️‍🩹", aliases: ["mending_heart"], tags: [], category: "Smileys & Emotion", description: "mending heart", unicode_version: "13.1", }, { emoji: "❤️", aliases: ["heart"], tags: ["love"], category: "Smileys & Emotion", description: "red heart", unicode_version: "", }, { emoji: "🧡", aliases: ["orange_heart"], tags: [], category: "Smileys & Emotion", description: "orange heart", unicode_version: "11.0", }, { emoji: "💛", aliases: ["yellow_heart"], tags: [], category: "Smileys & Emotion", description: "yellow heart", unicode_version: "6.0", }, { emoji: "💚", aliases: ["green_heart"], tags: [], category: "Smileys & Emotion", description: "green heart", unicode_version: "6.0", }, { emoji: "💙", aliases: ["blue_heart"], tags: [], category: "Smileys & Emotion", description: "blue heart", unicode_version: "6.0", }, { emoji: "💜", aliases: ["purple_heart"], tags: [], category: "Smileys & Emotion", description: "purple heart", unicode_version: "6.0", }, { emoji: "🤎", aliases: ["brown_heart"], tags: [], category: "Smileys & Emotion", description: "brown heart", unicode_version: "12.0", }, { emoji: "🖤", aliases: ["black_heart"], tags: [], category: "Smileys & Emotion", description: "black heart", unicode_version: "9.0", }, { emoji: "🤍", aliases: ["white_heart"], tags: [], category: "Smileys & Emotion", description: "white heart", unicode_version: "12.0", }, { emoji: "💯", aliases: ["100"], tags: ["score", "perfect"], category: "Smileys & Emotion", description: "hundred points", unicode_version: "6.0", }, { emoji: "💢", aliases: ["anger"], tags: ["angry"], category: "Smileys & Emotion", description: "anger symbol", unicode_version: "6.0", }, { emoji: "💥", aliases: ["boom", "collision"], tags: ["explode"], category: "Smileys & Emotion", description: "collision", unicode_version: "6.0", }, { emoji: "💫", aliases: ["dizzy"], tags: ["star"], category: "Smileys & Emotion", description: "dizzy", unicode_version: "6.0", }, { emoji: "💦", aliases: ["sweat_drops"], tags: ["water", "workout"], category: "Smileys & Emotion", description: "sweat droplets", unicode_version: "6.0", }, { emoji: "💨", aliases: ["dash"], tags: ["wind", "blow", "fast"], category: "Smileys & Emotion", description: "dashing away", unicode_version: "6.0", }, { emoji: "🕳️", aliases: ["hole"], tags: [], category: "Smileys & Emotion", description: "hole", unicode_version: "7.0", }, { emoji: "💣", aliases: ["bomb"], tags: ["boom"], category: "Smileys & Emotion", description: "bomb", unicode_version: "6.0", }, { emoji: "💬", aliases: ["speech_balloon"], tags: ["comment"], category: "Smileys & Emotion", description: "speech balloon", unicode_version: "6.0", }, { emoji: "👁️‍🗨️", aliases: ["eye_speech_bubble"], tags: [], category: "Smileys & Emotion", description: "eye in speech bubble", unicode_version: "11.0", }, { emoji: "🗨️", aliases: ["left_speech_bubble"], tags: [], category: "Smileys & Emotion", description: "left speech bubble", unicode_version: "11.0", }, { emoji: "🗯️", aliases: ["right_anger_bubble"], tags: [], category: "Smileys & Emotion", description: "right anger bubble", unicode_version: "7.0", }, { emoji: "💭", aliases: ["thought_balloon"], tags: ["thinking"], category: "Smileys & Emotion", description: "thought balloon", unicode_version: "6.0", }, { emoji: "💤", aliases: ["zzz"], tags: ["sleeping"], category: "Smileys & Emotion", description: "zzz", unicode_version: "6.0", }, { emoji: "👋", aliases: ["wave"], tags: ["goodbye"], category: "People & Body", description: "waving hand", unicode_version: "6.0", }, { emoji: "🤚", aliases: ["raised_back_of_hand"], tags: [], category: "People & Body", description: "raised back of hand", unicode_version: "9.0", }, { emoji: "🖐️", aliases: ["raised_hand_with_fingers_splayed"], tags: [], category: "People & Body", description: "hand with fingers splayed", unicode_version: "7.0", }, { emoji: "✋", aliases: ["hand", "raised_hand"], tags: ["highfive", "stop"], category: "People & Body", description: "raised hand", unicode_version: "6.0", }, { emoji: "🖖", aliases: ["vulcan_salute"], tags: ["prosper", "spock"], category: "People & Body", description: "vulcan salute", unicode_version: "7.0", }, { emoji: "👌", aliases: ["ok_hand"], tags: [], category: "People & Body", description: "OK hand", unicode_version: "6.0", }, { emoji: "🤌", aliases: ["pinched_fingers"], tags: [], category: "People & Body", description: "pinched fingers", unicode_version: "13.0", }, { emoji: "🤏", aliases: ["pinching_hand"], tags: [], category: "People & Body", description: "pinching hand", unicode_version: "12.0", }, { emoji: "✌️", aliases: ["v"], tags: ["victory", "peace"], category: "People & Body", description: "victory hand", unicode_version: "", }, { emoji: "🤞", aliases: ["crossed_fingers"], tags: ["luck", "hopeful"], category: "People & Body", description: "crossed fingers", unicode_version: "9.0", }, { emoji: "🤟", aliases: ["love_you_gesture"], tags: [], category: "People & Body", description: "love-you gesture", unicode_version: "11.0", }, { emoji: "🤘", aliases: ["metal"], tags: [], category: "People & Body", description: "sign of the horns", unicode_version: "8.0", }, { emoji: "🤙", aliases: ["call_me_hand"], tags: [], category: "People & Body", description: "call me hand", unicode_version: "9.0", }, { emoji: "👈", aliases: ["point_left"], tags: [], category: "People & Body", description: "backhand index pointing left", unicode_version: "6.0", }, { emoji: "👉", aliases: ["point_right"], tags: [], category: "People & Body", description: "backhand index pointing right", unicode_version: "6.0", }, { emoji: "👆", aliases: ["point_up_2"], tags: [], category: "People & Body", description: "backhand index pointing up", unicode_version: "6.0", }, { emoji: "🖕", aliases: ["middle_finger", "fu"], tags: [], category: "People & Body", description: "middle finger", unicode_version: "7.0", }, { emoji: "👇", aliases: ["point_down"], tags: [], category: "People & Body", description: "backhand index pointing down", unicode_version: "6.0", }, { emoji: "☝️", aliases: ["point_up"], tags: [], category: "People & Body", description: "index pointing up", unicode_version: "", }, { emoji: "👍", aliases: ["+1", "thumbsup"], tags: ["approve", "ok"], category: "People & Body", description: "thumbs up", unicode_version: "6.0", }, { emoji: "👎", aliases: ["-1", "thumbsdown"], tags: ["disapprove", "bury"], category: "People & Body", description: "thumbs down", unicode_version: "6.0", }, { emoji: "✊", aliases: ["fist_raised", "fist"], tags: ["power"], category: "People & Body", description: "raised fist", unicode_version: "6.0", }, { emoji: "👊", aliases: ["fist_oncoming", "facepunch", "punch"], tags: ["attack"], category: "People & Body", description: "oncoming fist", unicode_version: "6.0", }, { emoji: "🤛", aliases: ["fist_left"], tags: [], category: "People & Body", description: "left-facing fist", unicode_version: "9.0", }, { emoji: "🤜", aliases: ["fist_right"], tags: [], category: "People & Body", description: "right-facing fist", unicode_version: "9.0", }, { emoji: "👏", aliases: ["clap"], tags: ["praise", "applause"], category: "People & Body", description: "clapping hands", unicode_version: "6.0", }, { emoji: "🙌", aliases: ["raised_hands"], tags: ["hooray"], category: "People & Body", description: "raising hands", unicode_version: "6.0", }, { emoji: "👐", aliases: ["open_hands"], tags: [], category: "People & Body", description: "open hands", unicode_version: "6.0", }, { emoji: "🤲", aliases: ["palms_up_together"], tags: [], category: "People & Body", description: "palms up together", unicode_version: "11.0", }, { emoji: "🤝", aliases: ["handshake"], tags: ["deal"], category: "People & Body", description: "handshake", unicode_version: "9.0", }, { emoji: "🙏", aliases: ["pray"], tags: ["please", "hope", "wish"], category: "People & Body", description: "folded hands", unicode_version: "6.0", }, { emoji: "✍️", aliases: ["writing_hand"], tags: [], category: "People & Body", description: "writing hand", unicode_version: "", }, { emoji: "💅", aliases: ["nail_care"], tags: ["beauty", "manicure"], category: "People & Body", description: "nail polish", unicode_version: "6.0", }, { emoji: "🤳", aliases: ["selfie"], tags: [], category: "People & Body", description: "selfie", unicode_version: "9.0", }, { emoji: "💪", aliases: ["muscle"], tags: ["flex", "bicep", "strong", "workout"], category: "People & Body", description: "flexed biceps", unicode_version: "6.0", }, { emoji: "🦾", aliases: ["mechanical_arm"], tags: [], category: "People & Body", description: "mechanical arm", unicode_version: "12.0", }, { emoji: "🦿", aliases: ["mechanical_leg"], tags: [], category: "People & Body", description: "mechanical leg", unicode_version: "12.0", }, { emoji: "🦵", aliases: ["leg"], tags: [], category: "People & Body", description: "leg", unicode_version: "11.0", }, { emoji: "🦶", aliases: ["foot"], tags: [], category: "People & Body", description: "foot", unicode_version: "11.0", }, { emoji: "👂", aliases: ["ear"], tags: ["hear", "sound", "listen"], category: "People & Body", description: "ear", unicode_version: "6.0", }, { emoji: "🦻", aliases: ["ear_with_hearing_aid"], tags: [], category: "People & Body", description: "ear with hearing aid", unicode_version: "12.0", }, { emoji: "👃", aliases: ["nose"], tags: ["smell"], category: "People & Body", description: "nose", unicode_version: "6.0", }, { emoji: "🧠", aliases: ["brain"], tags: [], category: "People & Body", description: "brain", unicode_version: "11.0", }, { emoji: "🫀", aliases: ["anatomical_heart"], tags: [], category: "People & Body", description: "anatomical heart", unicode_version: "13.0", }, { emoji: "🫁", aliases: ["lungs"], tags: [], category: "People & Body", description: "lungs", unicode_version: "13.0", }, { emoji: "🦷", aliases: ["tooth"], tags: [], category: "People & Body", description: "tooth", unicode_version: "11.0", }, { emoji: "🦴", aliases: ["bone"], tags: [], category: "People & Body", description: "bone", unicode_version: "11.0", }, { emoji: "👀", aliases: ["eyes"], tags: ["look", "see", "watch"], category: "People & Body", description: "eyes", unicode_version: "6.0", }, { emoji: "👁️", aliases: ["eye"], tags: [], category: "People & Body", description: "eye", unicode_version: "7.0", }, { emoji: "👅", aliases: ["tongue"], tags: ["taste"], category: "People & Body", description: "tongue", unicode_version: "6.0", }, { emoji: "👄", aliases: ["lips"], tags: ["kiss"], category: "People & Body", description: "mouth", unicode_version: "6.0", }, { emoji: "👶", aliases: ["baby"], tags: ["child", "newborn"], category: "People & Body", description: "baby", unicode_version: "6.0", }, { emoji: "🧒", aliases: ["child"], tags: [], category: "People & Body", description: "child", unicode_version: "11.0", }, { emoji: "👦", aliases: ["boy"], tags: ["child"], category: "People & Body", description: "boy", unicode_version: "6.0", }, { emoji: "👧", aliases: ["girl"], tags: ["child"], category: "People & Body", description: "girl", unicode_version: "6.0", }, { emoji: "🧑", aliases: ["adult"], tags: [], category: "People & Body", description: "person", unicode_version: "11.0", }, { emoji: "👱", aliases: ["blond_haired_person"], tags: [], category: "People & Body", description: "person: blond hair", unicode_version: "6.0", }, { emoji: "👨", aliases: ["man"], tags: ["mustache", "father", "dad"], category: "People & Body", description: "man", unicode_version: "6.0", }, { emoji: "🧔", aliases: ["bearded_person"], tags: [], category: "People & Body", description: "person: beard", unicode_version: "11.0", }, { emoji: "🧔‍♂️", aliases: ["man_beard"], tags: [], category: "People & Body", description: "man: beard", unicode_version: "13.1", }, { emoji: "🧔‍♀️", aliases: ["woman_beard"], tags: [], category: "People & Body", description: "woman: beard", unicode_version: "13.1", }, { emoji: "👨‍🦰", aliases: ["red_haired_man"], tags: [], category: "People & Body", description: "man: red hair", unicode_version: "11.0", }, { emoji: "👨‍🦱", aliases: ["curly_haired_man"], tags: [], category: "People & Body", description: "man: curly hair", unicode_version: "11.0", }, { emoji: "👨‍🦳", aliases: ["white_haired_man"], tags: [], category: "People & Body", description: "man: white hair", unicode_version: "11.0", }, { emoji: "👨‍🦲", aliases: ["bald_man"], tags: [], category: "People & Body", description: "man: bald", unicode_version: "11.0", }, { emoji: "👩", aliases: ["woman"], tags: ["girls"], category: "People & Body", description: "woman", unicode_version: "6.0", }, { emoji: "👩‍🦰", aliases: ["red_haired_woman"], tags: [], category: "People & Body", description: "woman: red hair", unicode_version: "11.0", }, { emoji: "🧑‍🦰", aliases: ["person_red_hair"], tags: [], category: "People & Body", description: "person: red hair", unicode_version: "12.1", }, { emoji: "👩‍🦱", aliases: ["curly_haired_woman"], tags: [], category: "People & Body", description: "woman: curly hair", unicode_version: "11.0", }, { emoji: "🧑‍🦱", aliases: ["person_curly_hair"], tags: [], category: "People & Body", description: "person: curly hair", unicode_version: "12.1", }, { emoji: "👩‍🦳", aliases: ["white_haired_woman"], tags: [], category: "People & Body", description: "woman: white hair", unicode_version: "11.0", }, { emoji: "🧑‍🦳", aliases: ["person_white_hair"], tags: [], category: "People & Body", description: "person: white hair", unicode_version: "12.1", }, { emoji: "👩‍🦲", aliases: ["bald_woman"], tags: [], category: "People & Body", description: "woman: bald", unicode_version: "11.0", }, { emoji: "🧑‍🦲", aliases: ["person_bald"], tags: [], category: "People & Body", description: "person: bald", unicode_version: "12.1", }, { emoji: "👱‍♀️", aliases: ["blond_haired_woman", "blonde_woman"], tags: [], category: "People & Body", description: "woman: blond hair", unicode_version: "6.0", }, { emoji: "👱‍♂️", aliases: ["blond_haired_man"], tags: [], category: "People & Body", description: "man: blond hair", unicode_version: "11.0", }, { emoji: "🧓", aliases: ["older_adult"], tags: [], category: "People & Body", description: "older person", unicode_version: "11.0", }, { emoji: "👴", aliases: ["older_man"], tags: [], category: "People & Body", description: "old man", unicode_version: "6.0", }, { emoji: "👵", aliases: ["older_woman"], tags: [], category: "People & Body", description: "old woman", unicode_version: "6.0", }, { emoji: "🙍", aliases: ["frowning_person"], tags: [], category: "People & Body", description: "person frowning", unicode_version: "6.0", }, { emoji: "🙍‍♂️", aliases: ["frowning_man"], tags: [], category: "People & Body", description: "man frowning", unicode_version: "6.0", }, { emoji: "🙍‍♀️", aliases: ["frowning_woman"], tags: [], category: "People & Body", description: "woman frowning", unicode_version: "11.0", }, { emoji: "🙎", aliases: ["pouting_face"], tags: [], category: "People & Body", description: "person pouting", unicode_version: "6.0", }, { emoji: "🙎‍♂️", aliases: ["pouting_man"], tags: [], category: "People & Body", description: "man pouting", unicode_version: "6.0", }, { emoji: "🙎‍♀️", aliases: ["pouting_woman"], tags: [], category: "People & Body", description: "woman pouting", unicode_version: "11.0", }, { emoji: "🙅", aliases: ["no_good"], tags: ["stop", "halt", "denied"], category: "People & Body", description: "person gesturing NO", unicode_version: "6.0", }, { emoji: "🙅‍♂️", aliases: ["no_good_man", "ng_man"], tags: ["stop", "halt", "denied"], category: "People & Body", description: "man gesturing NO", unicode_version: "6.0", }, { emoji: "🙅‍♀️", aliases: ["no_good_woman", "ng_woman"], tags: ["stop", "halt", "denied"], category: "People & Body", description: "woman gesturing NO", unicode_version: "11.0", }, { emoji: "🙆", aliases: ["ok_person"], tags: [], category: "People & Body", description: "person gesturing OK", unicode_version: "6.0", }, { emoji: "🙆‍♂️", aliases: ["ok_man"], tags: [], category: "People & Body", description: "man gesturing OK", unicode_version: "6.0", }, { emoji: "🙆‍♀️", aliases: ["ok_woman"], tags: [], category: "People & Body", description: "woman gesturing OK", unicode_version: "11.0", }, { emoji: "💁", aliases: ["tipping_hand_person", "information_desk_person"], tags: [], category: "People & Body", description: "person tipping hand", unicode_version: "6.0", }, { emoji: "💁‍♂️", aliases: ["tipping_hand_man", "sassy_man"], tags: ["information"], category: "People & Body", description: "man tipping hand", unicode_version: "6.0", }, { emoji: "💁‍♀️", aliases: ["tipping_hand_woman", "sassy_woman"], tags: ["information"], category: "People & Body", description: "woman tipping hand", unicode_version: "11.0", }, { emoji: "🙋", aliases: ["raising_hand"], tags: [], category: "People & Body", description: "person raising hand", unicode_version: "6.0", }, { emoji: "🙋‍♂️", aliases: ["raising_hand_man"], tags: [], category: "People & Body", description: "man raising hand", unicode_version: "6.0", }, { emoji: "🙋‍♀️", aliases: ["raising_hand_woman"], tags: [], category: "People & Body", description: "woman raising hand", unicode_version: "11.0", }, { emoji: "🧏", aliases: ["deaf_person"], tags: [], category: "People & Body", description: "deaf person", unicode_version: "12.0", }, { emoji: "🧏‍♂️", aliases: ["deaf_man"], tags: [], category: "People & Body", description: "deaf man", unicode_version: "12.0", }, { emoji: "🧏‍♀️", aliases: ["deaf_woman"], tags: [], category: "People & Body", description: "deaf woman", unicode_version: "12.0", }, { emoji: "🙇", aliases: ["bow"], tags: ["respect", "thanks"], category: "People & Body", description: "person bowing", unicode_version: "6.0", }, { emoji: "🙇‍♂️", aliases: ["bowing_man"], tags: ["respect", "thanks"], category: "People & Body", description: "man bowing", unicode_version: "11.0", }, { emoji: "🙇‍♀️", aliases: ["bowing_woman"], tags: ["respect", "thanks"], category: "People & Body", description: "woman bowing", unicode_version: "6.0", }, { emoji: "🤦", aliases: ["facepalm"], tags: [], category: "People & Body", description: "person facepalming", unicode_version: "11.0", }, { emoji: "🤦‍♂️", aliases: ["man_facepalming"], tags: [], category: "People & Body", description: "man facepalming", unicode_version: "9.0", }, { emoji: "🤦‍♀️", aliases: ["woman_facepalming"], tags: [], category: "People & Body", description: "woman facepalming", unicode_version: "9.0", }, { emoji: "🤷", aliases: ["shrug"], tags: [], category: "People & Body", description: "person shrugging", unicode_version: "11.0", }, { emoji: "🤷‍♂️", aliases: ["man_shrugging"], tags: [], category: "People & Body", description: "man shrugging", unicode_version: "9.0", }, { emoji: "🤷‍♀️", aliases: ["woman_shrugging"], tags: [], category: "People & Body", description: "woman shrugging", unicode_version: "9.0", }, { emoji: "🧑‍⚕️", aliases: ["health_worker"], tags: [], category: "People & Body", description: "health worker", unicode_version: "12.1", }, { emoji: "👨‍⚕️", aliases: ["man_health_worker"], tags: ["doctor", "nurse"], category: "People & Body", description: "man health worker", unicode_version: "", }, { emoji: "👩‍⚕️", aliases: ["woman_health_worker"], tags: ["doctor", "nurse"], category: "People & Body", description: "woman health worker", unicode_version: "", }, { emoji: "🧑‍🎓", aliases: ["student"], tags: [], category: "People & Body", description: "student", unicode_version: "12.1", }, { emoji: "👨‍🎓", aliases: ["man_student"], tags: ["graduation"], category: "People & Body", description: "man student", unicode_version: "", }, { emoji: "👩‍🎓", aliases: ["woman_student"], tags: ["graduation"], category: "People & Body", description: "woman student", unicode_version: "", }, { emoji: "🧑‍🏫", aliases: ["teacher"], tags: [], category: "People & Body", description: "teacher", unicode_version: "12.1", }, { emoji: "👨‍🏫", aliases: ["man_teacher"], tags: ["school", "professor"], category: "People & Body", description: "man teacher", unicode_version: "", }, { emoji: "👩‍🏫", aliases: ["woman_teacher"], tags: ["school", "professor"], category: "People & Body", description: "woman teacher", unicode_version: "", }, { emoji: "🧑‍⚖️", aliases: ["judge"], tags: [], category: "People & Body", description: "judge", unicode_version: "12.1", }, { emoji: "👨‍⚖️", aliases: ["man_judge"], tags: ["justice"], category: "People & Body", description: "man judge", unicode_version: "", }, { emoji: "👩‍⚖️", aliases: ["woman_judge"], tags: ["justice"], category: "People & Body", description: "woman judge", unicode_version: "", }, { emoji: "🧑‍🌾", aliases: ["farmer"], tags: [], category: "People & Body", description: "farmer", unicode_version: "12.1", }, { emoji: "👨‍🌾", aliases: ["man_farmer"], tags: [], category: "People & Body", description: "man farmer", unicode_version: "", }, { emoji: "👩‍🌾", aliases: ["woman_farmer"], tags: [], category: "People & Body", description: "woman farmer", unicode_version: "", }, { emoji: "🧑‍🍳", aliases: ["cook"], tags: [], category: "People & Body", description: "cook", unicode_version: "12.1", }, { emoji: "👨‍🍳", aliases: ["man_cook"], tags: ["chef"], category: "People & Body", description: "man cook", unicode_version: "", }, { emoji: "👩‍🍳", aliases: ["woman_cook"], tags: ["chef"], category: "People & Body", description: "woman cook", unicode_version: "", }, { emoji: "🧑‍🔧", aliases: ["mechanic"], tags: [], category: "People & Body", description: "mechanic", unicode_version: "12.1", }, { emoji: "👨‍🔧", aliases: ["man_mechanic"], tags: [], category: "People & Body", description: "man mechanic", unicode_version: "", }, { emoji: "👩‍🔧", aliases: ["woman_mechanic"], tags: [], category: "People & Body", description: "woman mechanic", unicode_version: "", }, { emoji: "🧑‍🏭", aliases: ["factory_worker"], tags: [], category: "People & Body", description: "factory worker", unicode_version: "12.1", }, { emoji: "👨‍🏭", aliases: ["man_factory_worker"], tags: [], category: "People & Body", description: "man factory worker", unicode_version: "", }, { emoji: "👩‍🏭", aliases: ["woman_factory_worker"], tags: [], category: "People & Body", description: "woman factory worker", unicode_version: "", }, { emoji: "🧑‍💼", aliases: ["office_worker"], tags: [], category: "People & Body", description: "office worker", unicode_version: "12.1", }, { emoji: "👨‍💼", aliases: ["man_office_worker"], tags: ["business"], category: "People & Body", description: "man office worker", unicode_version: "", }, { emoji: "👩‍💼", aliases: ["woman_office_worker"], tags: ["business"], category: "People & Body", description: "woman office worker", unicode_version: "", }, { emoji: "🧑‍🔬", aliases: ["scientist"], tags: [], category: "People & Body", description: "scientist", unicode_version: "12.1", }, { emoji: "👨‍🔬", aliases: ["man_scientist"], tags: ["research"], category: "People & Body", description: "man scientist", unicode_version: "", }, { emoji: "👩‍🔬", aliases: ["woman_scientist"], tags: ["research"], category: "People & Body", description: "woman scientist", unicode_version: "", }, { emoji: "🧑‍💻", aliases: ["technologist"], tags: [], category: "People & Body", description: "technologist", unicode_version: "12.1", }, { emoji: "👨‍💻", aliases: ["man_technologist"], tags: ["coder"], category: "People & Body", description: "man technologist", unicode_version: "", }, { emoji: "👩‍💻", aliases: ["woman_technologist"], tags: ["coder"], category: "People & Body", description: "woman technologist", unicode_version: "", }, { emoji: "🧑‍🎤", aliases: ["singer"], tags: [], category: "People & Body", description: "singer", unicode_version: "12.1", }, { emoji: "👨‍🎤", aliases: ["man_singer"], tags: ["rockstar"], category: "People & Body", description: "man singer", unicode_version: "", }, { emoji: "👩‍🎤", aliases: ["woman_singer"], tags: ["rockstar"], category: "People & Body", description: "woman singer", unicode_version: "", }, { emoji: "🧑‍🎨", aliases: ["artist"], tags: [], category: "People & Body", description: "artist", unicode_version: "12.1", }, { emoji: "👨‍🎨", aliases: ["man_artist"], tags: ["painter"], category: "People & Body", description: "man artist", unicode_version: "", }, { emoji: "👩‍🎨", aliases: ["woman_artist"], tags: ["painter"], category: "People & Body", description: "woman artist", unicode_version: "", }, { emoji: "🧑‍✈️", aliases: ["pilot"], tags: [], category: "People & Body", description: "pilot", unicode_version: "12.1", }, { emoji: "👨‍✈️", aliases: ["man_pilot"], tags: [], category: "People & Body", description: "man pilot", unicode_version: "", }, { emoji: "👩‍✈️", aliases: ["woman_pilot"], tags: [], category: "People & Body", description: "woman pilot", unicode_version: "", }, { emoji: "🧑‍🚀", aliases: ["astronaut"], tags: [], category: "People & Body", description: "astronaut", unicode_version: "12.1", }, { emoji: "👨‍🚀", aliases: ["man_astronaut"], tags: ["space"], category: "People & Body", description: "man astronaut", unicode_version: "", }, { emoji: "👩‍🚀", aliases: ["woman_astronaut"], tags: ["space"], category: "People & Body", description: "woman astronaut", unicode_version: "", }, { emoji: "🧑‍🚒", aliases: ["firefighter"], tags: [], category: "People & Body", description: "firefighter", unicode_version: "12.1", }, { emoji: "👨‍🚒", aliases: ["man_firefighter"], tags: [], category: "People & Body", description: "man firefighter", unicode_version: "", }, { emoji: "👩‍🚒", aliases: ["woman_firefighter"], tags: [], category: "People & Body", description: "woman firefighter", unicode_version: "", }, { emoji: "👮", aliases: ["police_officer", "cop"], tags: ["law"], category: "People & Body", description: "police officer", unicode_version: "6.0", }, { emoji: "👮‍♂️", aliases: ["policeman"], tags: ["law", "cop"], category: "People & Body", description: "man police officer", unicode_version: "11.0", }, { emoji: "👮‍♀️", aliases: ["policewoman"], tags: ["law", "cop"], category: "People & Body", description: "woman police officer", unicode_version: "6.0", }, { emoji: "🕵️", aliases: ["detective"], tags: ["sleuth"], category: "People & Body", description: "detective", unicode_version: "7.0", }, { emoji: "🕵️‍♂️", aliases: ["male_detective"], tags: ["sleuth"], category: "People & Body", description: "man detective", unicode_version: "11.0", }, { emoji: "🕵️‍♀️", aliases: ["female_detective"], tags: ["sleuth"], category: "People & Body", description: "woman detective", unicode_version: "6.0", }, { emoji: "💂", aliases: ["guard"], tags: [], category: "People & Body", description: "guard", unicode_version: "6.0", }, { emoji: "💂‍♂️", aliases: ["guardsman"], tags: [], category: "People & Body", description: "man guard", unicode_version: "11.0", }, { emoji: "💂‍♀️", aliases: ["guardswoman"], tags: [], category: "People & Body", description: "woman guard", unicode_version: "6.0", }, { emoji: "🥷", aliases: ["ninja"], tags: [], category: "People & Body", description: "ninja", unicode_version: "13.0", }, { emoji: "👷", aliases: ["construction_worker"], tags: ["helmet"], category: "People & Body", description: "construction worker", unicode_version: "6.0", }, { emoji: "👷‍♂️", aliases: ["construction_worker_man"], tags: ["helmet"], category: "People & Body", description: "man construction worker", unicode_version: "11.0", }, { emoji: "👷‍♀️", aliases: ["construction_worker_woman"], tags: ["helmet"], category: "People & Body", description: "woman construction worker", unicode_version: "6.0", }, { emoji: "🤴", aliases: ["prince"], tags: ["crown", "royal"], category: "People & Body", description: "prince", unicode_version: "9.0", }, { emoji: "👸", aliases: ["princess"], tags: ["crown", "royal"], category: "People & Body", description: "princess", unicode_version: "6.0", }, { emoji: "👳", aliases: ["person_with_turban"], tags: [], category: "People & Body", description: "person wearing turban", unicode_version: "6.0", }, { emoji: "👳‍♂️", aliases: ["man_with_turban"], tags: [], category: "People & Body", description: "man wearing turban", unicode_version: "11.0", }, { emoji: "👳‍♀️", aliases: ["woman_with_turban"], tags: [], category: "People & Body", description: "woman wearing turban", unicode_version: "6.0", }, { emoji: "👲", aliases: ["man_with_gua_pi_mao"], tags: [], category: "People & Body", description: "person with skullcap", unicode_version: "6.0", }, { emoji: "🧕", aliases: ["woman_with_headscarf"], tags: ["hijab"], category: "People & Body", description: "woman with headscarf", unicode_version: "11.0", }, { emoji: "🤵", aliases: ["person_in_tuxedo"], tags: ["groom", "marriage", "wedding"], category: "People & Body", description: "person in tuxedo", unicode_version: "9.0", }, { emoji: "🤵‍♂️", aliases: ["man_in_tuxedo"], tags: [], category: "People & Body", description: "man in tuxedo", unicode_version: "13.0", }, { emoji: "🤵‍♀️", aliases: ["woman_in_tuxedo"], tags: [], category: "People & Body", description: "woman in tuxedo", unicode_version: "13.0", }, { emoji: "👰", aliases: ["person_with_veil"], tags: ["marriage", "wedding"], category: "People & Body", description: "person with veil", unicode_version: "6.0", }, { emoji: "👰‍♂️", aliases: ["man_with_veil"], tags: [], category: "People & Body", description: "man with veil", unicode_version: "13.0", }, { emoji: "👰‍♀️", aliases: ["woman_with_veil", "bride_with_veil"], tags: [], category: "People & Body", description: "woman with veil", unicode_version: "13.0", }, { emoji: "🤰", aliases: ["pregnant_woman"], tags: [], category: "People & Body", description: "pregnant woman", unicode_version: "9.0", }, { emoji: "🤱", aliases: ["breast_feeding"], tags: ["nursing"], category: "People & Body", description: "breast-feeding", unicode_version: "11.0", }, { emoji: "👩‍🍼", aliases: ["woman_feeding_baby"], tags: [], category: "People & Body", description: "woman feeding baby", unicode_version: "13.0", }, { emoji: "👨‍🍼", aliases: ["man_feeding_baby"], tags: [], category: "People & Body", description: "man feeding baby", unicode_version: "13.0", }, { emoji: "🧑‍🍼", aliases: ["person_feeding_baby"], tags: [], category: "People & Body", description: "person feeding baby", unicode_version: "13.0", }, { emoji: "👼", aliases: ["angel"], tags: [], category: "People & Body", description: "baby angel", unicode_version: "6.0", }, { emoji: "🎅", aliases: ["santa"], tags: ["christmas"], category: "People & Body", description: "Santa Claus", unicode_version: "6.0", }, { emoji: "🤶", aliases: ["mrs_claus"], tags: ["santa"], category: "People & Body", description: "Mrs. Claus", unicode_version: "9.0", }, { emoji: "🧑‍🎄", aliases: ["mx_claus"], tags: [], category: "People & Body", description: "mx claus", unicode_version: "13.0", }, { emoji: "🦸", aliases: ["superhero"], tags: [], category: "People & Body", description: "superhero", unicode_version: "11.0", }, { emoji: "🦸‍♂️", aliases: ["superhero_man"], tags: [], category: "People & Body", description: "man superhero", unicode_version: "11.0", }, { emoji: "🦸‍♀️", aliases: ["superhero_woman"], tags: [], category: "People & Body", description: "woman superhero", unicode_version: "11.0", }, { emoji: "🦹", aliases: ["supervillain"], tags: [], category: "People & Body", description: "supervillain", unicode_version: "11.0", }, { emoji: "🦹‍♂️", aliases: ["supervillain_man"], tags: [], category: "People & Body", description: "man supervillain", unicode_version: "11.0", }, { emoji: "🦹‍♀️", aliases: ["supervillain_woman"], tags: [], category: "People & Body", description: "woman supervillain", unicode_version: "11.0", }, { emoji: "🧙", aliases: ["mage"], tags: ["wizard"], category: "People & Body", description: "mage", unicode_version: "11.0", }, { emoji: "🧙‍♂️", aliases: ["mage_man"], tags: ["wizard"], category: "People & Body", description: "man mage", unicode_version: "11.0", }, { emoji: "🧙‍♀️", aliases: ["mage_woman"], tags: ["wizard"], category: "People & Body", description: "woman mage", unicode_version: "11.0", }, { emoji: "🧚", aliases: ["fairy"], tags: [], category: "People & Body", description: "fairy", unicode_version: "11.0", }, { emoji: "🧚‍♂️", aliases: ["fairy_man"], tags: [], category: "People & Body", description: "man fairy", unicode_version: "11.0", }, { emoji: "🧚‍♀️", aliases: ["fairy_woman"], tags: [], category: "People & Body", description: "woman fairy", unicode_version: "11.0", }, { emoji: "🧛", aliases: ["vampire"], tags: [], category: "People & Body", description: "vampire", unicode_version: "11.0", }, { emoji: "🧛‍♂️", aliases: ["vampire_man"], tags: [], category: "People & Body", description: "man vampire", unicode_version: "11.0", }, { emoji: "🧛‍♀️", aliases: ["vampire_woman"], tags: [], category: "People & Body", description: "woman vampire", unicode_version: "11.0", }, { emoji: "🧜", aliases: ["merperson"], tags: [], category: "People & Body", description: "merperson", unicode_version: "11.0", }, { emoji: "🧜‍♂️", aliases: ["merman"], tags: [], category: "People & Body", description: "merman", unicode_version: "11.0", }, { emoji: "🧜‍♀️", aliases: ["mermaid"], tags: [], category: "People & Body", description: "mermaid", unicode_version: "11.0", }, { emoji: "🧝", aliases: ["elf"], tags: [], category: "People & Body", description: "elf", unicode_version: "11.0", }, { emoji: "🧝‍♂️", aliases: ["elf_man"], tags: [], category: "People & Body", description: "man elf", unicode_version: "11.0", }, { emoji: "🧝‍♀️", aliases: ["elf_woman"], tags: [], category: "People & Body", description: "woman elf", unicode_version: "11.0", }, { emoji: "🧞", aliases: ["genie"], tags: [], category: "People & Body", description: "genie", unicode_version: "11.0", }, { emoji: "🧞‍♂️", aliases: ["genie_man"], tags: [], category: "People & Body", description: "man genie", unicode_version: "11.0", }, { emoji: "🧞‍♀️", aliases: ["genie_woman"], tags: [], category: "People & Body", description: "woman genie", unicode_version: "11.0", }, { emoji: "🧟", aliases: ["zombie"], tags: [], category: "People & Body", description: "zombie", unicode_version: "11.0", }, { emoji: "🧟‍♂️", aliases: ["zombie_man"], tags: [], category: "People & Body", description: "man zombie", unicode_version: "11.0", }, { emoji: "🧟‍♀️", aliases: ["zombie_woman"], tags: [], category: "People & Body", description: "woman zombie", unicode_version: "11.0", }, { emoji: "💆", aliases: ["massage"], tags: ["spa"], category: "People & Body", description: "person getting massage", unicode_version: "6.0", }, { emoji: "💆‍♂️", aliases: ["massage_man"], tags: ["spa"], category: "People & Body", description: "man getting massage", unicode_version: "6.0", }, { emoji: "💆‍♀️", aliases: ["massage_woman"], tags: ["spa"], category: "People & Body", description: "woman getting massage", unicode_version: "11.0", }, { emoji: "💇", aliases: ["haircut"], tags: ["beauty"], category: "People & Body", description: "person getting haircut", unicode_version: "6.0", }, { emoji: "💇‍♂️", aliases: ["haircut_man"], tags: [], category: "People & Body", description: "man getting haircut", unicode_version: "6.0", }, { emoji: "💇‍♀️", aliases: ["haircut_woman"], tags: [], category: "People & Body", description: "woman getting haircut", unicode_version: "11.0", }, { emoji: "🚶", aliases: ["walking"], tags: [], category: "People & Body", description: "person walking", unicode_version: "6.0", }, { emoji: "🚶‍♂️", aliases: ["walking_man"], tags: [], category: "People & Body", description: "man walking", unicode_version: "11.0", }, { emoji: "🚶‍♀️", aliases: ["walking_woman"], tags: [], category: "People & Body", description: "woman walking", unicode_version: "6.0", }, { emoji: "🧍", aliases: ["standing_person"], tags: [], category: "People & Body", description: "person standing", unicode_version: "12.0", }, { emoji: "🧍‍♂️", aliases: ["standing_man"], tags: [], category: "People & Body", description: "man standing", unicode_version: "12.0", }, { emoji: "🧍‍♀️", aliases: ["standing_woman"], tags: [], category: "People & Body", description: "woman standing", unicode_version: "12.0", }, { emoji: "🧎", aliases: ["kneeling_person"], tags: [], category: "People & Body", description: "person kneeling", unicode_version: "12.0", }, { emoji: "🧎‍♂️", aliases: ["kneeling_man"], tags: [], category: "People & Body", description: "man kneeling", unicode_version: "12.0", }, { emoji: "🧎‍♀️", aliases: ["kneeling_woman"], tags: [], category: "People & Body", description: "woman kneeling", unicode_version: "12.0", }, { emoji: "🧑‍🦯", aliases: ["person_with_probing_cane"], tags: [], category: "People & Body", description: "person with white cane", unicode_version: "12.1", }, { emoji: "👨‍🦯", aliases: ["man_with_probing_cane"], tags: [], category: "People & Body", description: "man with white cane", unicode_version: "12.0", }, { emoji: "👩‍🦯", aliases: ["woman_with_probing_cane"], tags: [], category: "People & Body", description: "woman with white cane", unicode_version: "12.0", }, { emoji: "🧑‍🦼", aliases: ["person_in_motorized_wheelchair"], tags: [], category: "People & Body", description: "person in motorized wheelchair", unicode_version: "12.1", }, { emoji: "👨‍🦼", aliases: ["man_in_motorized_wheelchair"], tags: [], category: "People & Body", description: "man in motorized wheelchair", unicode_version: "12.0", }, { emoji: "👩‍🦼", aliases: ["woman_in_motorized_wheelchair"], tags: [], category: "People & Body", description: "woman in motorized wheelchair", unicode_version: "12.0", }, { emoji: "🧑‍🦽", aliases: ["person_in_manual_wheelchair"], tags: [], category: "People & Body", description: "person in manual wheelchair", unicode_version: "12.1", }, { emoji: "👨‍🦽", aliases: ["man_in_manual_wheelchair"], tags: [], category: "People & Body", description: "man in manual wheelchair", unicode_version: "12.0", }, { emoji: "👩‍🦽", aliases: ["woman_in_manual_wheelchair"], tags: [], category: "People & Body", description: "woman in manual wheelchair", unicode_version: "12.0", }, { emoji: "🏃", aliases: ["runner", "running"], tags: ["exercise", "workout", "marathon"], category: "People & Body", description: "person running", unicode_version: "6.0", }, { emoji: "🏃‍♂️", aliases: ["running_man"], tags: ["exercise", "workout", "marathon"], category: "People & Body", description: "man running", unicode_version: "11.0", }, { emoji: "🏃‍♀️", aliases: ["running_woman"], tags: ["exercise", "workout", "marathon"], category: "People & Body", description: "woman running", unicode_version: "6.0", }, { emoji: "💃", aliases: ["woman_dancing", "dancer"], tags: ["dress"], category: "People & Body", description: "woman dancing", unicode_version: "6.0", }, { emoji: "🕺", aliases: ["man_dancing"], tags: ["dancer"], category: "People & Body", description: "man dancing", unicode_version: "9.0", }, { emoji: "🕴️", aliases: ["business_suit_levitating"], tags: [], category: "People & Body", description: "person in suit levitating", unicode_version: "7.0", }, { emoji: "👯", aliases: ["dancers"], tags: ["bunny"], category: "People & Body", description: "people with bunny ears", unicode_version: "6.0", }, { emoji: "👯‍♂️", aliases: ["dancing_men"], tags: ["bunny"], category: "People & Body", description: "men with bunny ears", unicode_version: "6.0", }, { emoji: "👯‍♀️", aliases: ["dancing_women"], tags: ["bunny"], category: "People & Body", description: "women with bunny ears", unicode_version: "11.0", }, { emoji: "🧖", aliases: ["sauna_person"], tags: ["steamy"], category: "People & Body", description: "person in steamy room", unicode_version: "11.0", }, { emoji: "🧖‍♂️", aliases: ["sauna_man"], tags: ["steamy"], category: "People & Body", description: "man in steamy room", unicode_version: "11.0", }, { emoji: "🧖‍♀️", aliases: ["sauna_woman"], tags: ["steamy"], category: "People & Body", description: "woman in steamy room", unicode_version: "11.0", }, { emoji: "🧗", aliases: ["climbing"], tags: ["bouldering"], category: "People & Body", description: "person climbing", unicode_version: "11.0", }, { emoji: "🧗‍♂️", aliases: ["climbing_man"], tags: ["bouldering"], category: "People & Body", description: "man climbing", unicode_version: "11.0", }, { emoji: "🧗‍♀️", aliases: ["climbing_woman"], tags: ["bouldering"], category: "People & Body", description: "woman climbing", unicode_version: "11.0", }, { emoji: "🤺", aliases: ["person_fencing"], tags: [], category: "People & Body", description: "person fencing", unicode_version: "9.0", }, { emoji: "🏇", aliases: ["horse_racing"], tags: [], category: "People & Body", description: "horse racing", unicode_version: "6.0", }, { emoji: "⛷️", aliases: ["skier"], tags: [], category: "People & Body", description: "skier", unicode_version: "5.2", }, { emoji: "🏂", aliases: ["snowboarder"], tags: [], category: "People & Body", description: "snowboarder", unicode_version: "6.0", }, { emoji: "🏌️", aliases: ["golfing"], tags: [], category: "People & Body", description: "person golfing", unicode_version: "7.0", }, { emoji: "🏌️‍♂️", aliases: ["golfing_man"], tags: [], category: "People & Body", description: "man golfing", unicode_version: "11.0", }, { emoji: "🏌️‍♀️", aliases: ["golfing_woman"], tags: [], category: "People & Body", description: "woman golfing", unicode_version: "", }, { emoji: "🏄", aliases: ["surfer"], tags: [], category: "People & Body", description: "person surfing", unicode_version: "6.0", }, { emoji: "🏄‍♂️", aliases: ["surfing_man"], tags: [], category: "People & Body", description: "man surfing", unicode_version: "11.0", }, { emoji: "🏄‍♀️", aliases: ["surfing_woman"], tags: [], category: "People & Body", description: "woman surfing", unicode_version: "7.0", }, { emoji: "🚣", aliases: ["rowboat"], tags: [], category: "People & Body", description: "person rowing boat", unicode_version: "6.0", }, { emoji: "🚣‍♂️", aliases: ["rowing_man"], tags: [], category: "People & Body", description: "man rowing boat", unicode_version: "11.0", }, { emoji: "🚣‍♀️", aliases: ["rowing_woman"], tags: [], category: "People & Body", description: "woman rowing boat", unicode_version: "6.0", }, { emoji: "🏊", aliases: ["swimmer"], tags: [], category: "People & Body", description: "person swimming", unicode_version: "6.0", }, { emoji: "🏊‍♂️", aliases: ["swimming_man"], tags: [], category: "People & Body", description: "man swimming", unicode_version: "11.0", }, { emoji: "🏊‍♀️", aliases: ["swimming_woman"], tags: [], category: "People & Body", description: "woman swimming", unicode_version: "6.0", }, { emoji: "⛹️", aliases: ["bouncing_ball_person"], tags: ["basketball"], category: "People & Body", description: "person bouncing ball", unicode_version: "5.2", }, { emoji: "⛹️‍♂️", aliases: ["bouncing_ball_man", "basketball_man"], tags: [], category: "People & Body", description: "man bouncing ball", unicode_version: "11.0", }, { emoji: "⛹️‍♀️", aliases: ["bouncing_ball_woman", "basketball_woman"], tags: [], category: "People & Body", description: "woman bouncing ball", unicode_version: "7.0", }, { emoji: "🏋️", aliases: ["weight_lifting"], tags: ["gym", "workout"], category: "People & Body", description: "person lifting weights", unicode_version: "7.0", }, { emoji: "🏋️‍♂️", aliases: ["weight_lifting_man"], tags: ["gym", "workout"], category: "People & Body", description: "man lifting weights", unicode_version: "11.0", }, { emoji: "🏋️‍♀️", aliases: ["weight_lifting_woman"], tags: ["gym", "workout"], category: "People & Body", description: "woman lifting weights", unicode_version: "6.0", }, { emoji: "🚴", aliases: ["bicyclist"], tags: [], category: "People & Body", description: "person biking", unicode_version: "6.0", }, { emoji: "🚴‍♂️", aliases: ["biking_man"], tags: [], category: "People & Body", description: "man biking", unicode_version: "11.0", }, { emoji: "🚴‍♀️", aliases: ["biking_woman"], tags: [], category: "People & Body", description: "woman biking", unicode_version: "6.0", }, { emoji: "🚵", aliases: ["mountain_bicyclist"], tags: [], category: "People & Body", description: "person mountain biking", unicode_version: "6.0", }, { emoji: "🚵‍♂️", aliases: ["mountain_biking_man"], tags: [], category: "People & Body", description: "man mountain biking", unicode_version: "11.0", }, { emoji: "🚵‍♀️", aliases: ["mountain_biking_woman"], tags: [], category: "People & Body", description: "woman mountain biking", unicode_version: "6.0", }, { emoji: "🤸", aliases: ["cartwheeling"], tags: [], category: "People & Body", description: "person cartwheeling", unicode_version: "11.0", }, { emoji: "🤸‍♂️", aliases: ["man_cartwheeling"], tags: [], category: "People & Body", description: "man cartwheeling", unicode_version: "", }, { emoji: "🤸‍♀️", aliases: ["woman_cartwheeling"], tags: [], category: "People & Body", description: "woman cartwheeling", unicode_version: "", }, { emoji: "🤼", aliases: ["wrestling"], tags: [], category: "People & Body", description: "people wrestling", unicode_version: "11.0", }, { emoji: "🤼‍♂️", aliases: ["men_wrestling"], tags: [], category: "People & Body", description: "men wrestling", unicode_version: "9.0", }, { emoji: "🤼‍♀️", aliases: ["women_wrestling"], tags: [], category: "People & Body", description: "women wrestling", unicode_version: "9.0", }, { emoji: "🤽", aliases: ["water_polo"], tags: [], category: "People & Body", description: "person playing water polo", unicode_version: "11.0", }, { emoji: "🤽‍♂️", aliases: ["man_playing_water_polo"], tags: [], category: "People & Body", description: "man playing water polo", unicode_version: "9.0", }, { emoji: "🤽‍♀️", aliases: ["woman_playing_water_polo"], tags: [], category: "People & Body", description: "woman playing water polo", unicode_version: "9.0", }, { emoji: "🤾", aliases: ["handball_person"], tags: [], category: "People & Body", description: "person playing handball", unicode_version: "11.0", }, { emoji: "🤾‍♂️", aliases: ["man_playing_handball"], tags: [], category: "People & Body", description: "man playing handball", unicode_version: "9.0", }, { emoji: "🤾‍♀️", aliases: ["woman_playing_handball"], tags: [], category: "People & Body", description: "woman playing handball", unicode_version: "9.0", }, { emoji: "🤹", aliases: ["juggling_person"], tags: [], category: "People & Body", description: "person juggling", unicode_version: "11.0", }, { emoji: "🤹‍♂️", aliases: ["man_juggling"], tags: [], category: "People & Body", description: "man juggling", unicode_version: "9.0", }, { emoji: "🤹‍♀️", aliases: ["woman_juggling"], tags: [], category: "People & Body", description: "woman juggling", unicode_version: "9.0", }, { emoji: "🧘", aliases: ["lotus_position"], tags: ["meditation"], category: "People & Body", description: "person in lotus position", unicode_version: "11.0", }, { emoji: "🧘‍♂️", aliases: ["lotus_position_man"], tags: ["meditation"], category: "People & Body", description: "man in lotus position", unicode_version: "11.0", }, { emoji: "🧘‍♀️", aliases: ["lotus_position_woman"], tags: ["meditation"], category: "People & Body", description: "woman in lotus position", unicode_version: "11.0", }, { emoji: "🛀", aliases: ["bath"], tags: ["shower"], category: "People & Body", description: "person taking bath", unicode_version: "6.0", }, { emoji: "🛌", aliases: ["sleeping_bed"], tags: [], category: "People & Body", description: "person in bed", unicode_version: "7.0", }, { emoji: "🧑‍🤝‍🧑", aliases: ["people_holding_hands"], tags: ["couple", "date"], category: "People & Body", description: "people holding hands", unicode_version: "12.0", }, { emoji: "👭", aliases: ["two_women_holding_hands"], tags: ["couple", "date"], category: "People & Body", description: "women holding hands", unicode_version: "6.0", }, { emoji: "👫", aliases: ["couple"], tags: ["date"], category: "People & Body", description: "woman and man holding hands", unicode_version: "6.0", }, { emoji: "👬", aliases: ["two_men_holding_hands"], tags: ["couple", "date"], category: "People & Body", description: "men holding hands", unicode_version: "6.0", }, { emoji: "💏", aliases: ["couplekiss"], tags: [], category: "People & Body", description: "kiss", unicode_version: "6.0", }, { emoji: "👩‍❤️‍💋‍👨", aliases: ["couplekiss_man_woman"], tags: [], category: "People & Body", description: "kiss: woman, man", unicode_version: "11.0", }, { emoji: "👨‍❤️‍💋‍👨", aliases: ["couplekiss_man_man"], tags: [], category: "People & Body", description: "kiss: man, man", unicode_version: "6.0", }, { emoji: "👩‍❤️‍💋‍👩", aliases: ["couplekiss_woman_woman"], tags: [], category: "People & Body", description: "kiss: woman, woman", unicode_version: "6.0", }, { emoji: "💑", aliases: ["couple_with_heart"], tags: [], category: "People & Body", description: "couple with heart", unicode_version: "6.0", }, { emoji: "👩‍❤️‍👨", aliases: ["couple_with_heart_woman_man"], tags: [], category: "People & Body", description: "couple with heart: woman, man", unicode_version: "11.0", }, { emoji: "👨‍❤️‍👨", aliases: ["couple_with_heart_man_man"], tags: [], category: "People & Body", description: "couple with heart: man, man", unicode_version: "6.0", }, { emoji: "👩‍❤️‍👩", aliases: ["couple_with_heart_woman_woman"], tags: [], category: "People & Body", description: "couple with heart: woman, woman", unicode_version: "6.0", }, { emoji: "👪", aliases: ["family"], tags: ["home", "parents", "child"], category: "People & Body", description: "family", unicode_version: "6.0", }, { emoji: "👨‍👩‍👦", aliases: ["family_man_woman_boy"], tags: [], category: "People & Body", description: "family: man, woman, boy", unicode_version: "11.0", }, { emoji: "👨‍👩‍👧", aliases: ["family_man_woman_girl"], tags: [], category: "People & Body", description: "family: man, woman, girl", unicode_version: "6.0", }, { emoji: "👨‍👩‍👧‍👦", aliases: ["family_man_woman_girl_boy"], tags: [], category: "People & Body", description: "family: man, woman, girl, boy", unicode_version: "6.0", }, { emoji: "👨‍👩‍👦‍👦", aliases: ["family_man_woman_boy_boy"], tags: [], category: "People & Body", description: "family: man, woman, boy, boy", unicode_version: "6.0", }, { emoji: "👨‍👩‍👧‍👧", aliases: ["family_man_woman_girl_girl"], tags: [], category: "People & Body", description: "family: man, woman, girl, girl", unicode_version: "6.0", }, { emoji: "👨‍👨‍👦", aliases: ["family_man_man_boy"], tags: [], category: "People & Body", description: "family: man, man, boy", unicode_version: "6.0", }, { emoji: "👨‍👨‍👧", aliases: ["family_man_man_girl"], tags: [], category: "People & Body", description: "family: man, man, girl", unicode_version: "6.0", }, { emoji: "👨‍👨‍👧‍👦", aliases: ["family_man_man_girl_boy"], tags: [], category: "People & Body", description: "family: man, man, girl, boy", unicode_version: "6.0", }, { emoji: "👨‍👨‍👦‍👦", aliases: ["family_man_man_boy_boy"], tags: [], category: "People & Body", description: "family: man, man, boy, boy", unicode_version: "6.0", }, { emoji: "👨‍👨‍👧‍👧", aliases: ["family_man_man_girl_girl"], tags: [], category: "People & Body", description: "family: man, man, girl, girl", unicode_version: "6.0", }, { emoji: "👩‍👩‍👦", aliases: ["family_woman_woman_boy"], tags: [], category: "People & Body", description: "family: woman, woman, boy", unicode_version: "6.0", }, { emoji: "👩‍👩‍👧", aliases: ["family_woman_woman_girl"], tags: [], category: "People & Body", description: "family: woman, woman, girl", unicode_version: "6.0", }, { emoji: "👩‍👩‍👧‍👦", aliases: ["family_woman_woman_girl_boy"], tags: [], category: "People & Body", description: "family: woman, woman, girl, boy", unicode_version: "6.0", }, { emoji: "👩‍👩‍👦‍👦", aliases: ["family_woman_woman_boy_boy"], tags: [], category: "People & Body", description: "family: woman, woman, boy, boy", unicode_version: "6.0", }, { emoji: "👩‍👩‍👧‍👧", aliases: ["family_woman_woman_girl_girl"], tags: [], category: "People & Body", description: "family: woman, woman, girl, girl", unicode_version: "6.0", }, { emoji: "👨‍👦", aliases: ["family_man_boy"], tags: [], category: "People & Body", description: "family: man, boy", unicode_version: "6.0", }, { emoji: "👨‍👦‍👦", aliases: ["family_man_boy_boy"], tags: [], category: "People & Body", description: "family: man, boy, boy", unicode_version: "6.0", }, { emoji: "👨‍👧", aliases: ["family_man_girl"], tags: [], category: "People & Body", description: "family: man, girl", unicode_version: "6.0", }, { emoji: "👨‍👧‍👦", aliases: ["family_man_girl_boy"], tags: [], category: "People & Body", description: "family: man, girl, boy", unicode_version: "6.0", }, { emoji: "👨‍👧‍👧", aliases: ["family_man_girl_girl"], tags: [], category: "People & Body", description: "family: man, girl, girl", unicode_version: "6.0", }, { emoji: "👩‍👦", aliases: ["family_woman_boy"], tags: [], category: "People & Body", description: "family: woman, boy", unicode_version: "6.0", }, { emoji: "👩‍👦‍👦", aliases: ["family_woman_boy_boy"], tags: [], category: "People & Body", description: "family: woman, boy, boy", unicode_version: "6.0", }, { emoji: "👩‍👧", aliases: ["family_woman_girl"], tags: [], category: "People & Body", description: "family: woman, girl", unicode_version: "6.0", }, { emoji: "👩‍👧‍👦", aliases: ["family_woman_girl_boy"], tags: [], category: "People & Body", description: "family: woman, girl, boy", unicode_version: "6.0", }, { emoji: "👩‍👧‍👧", aliases: ["family_woman_girl_girl"], tags: [], category: "People & Body", description: "family: woman, girl, girl", unicode_version: "6.0", }, { emoji: "🗣️", aliases: ["speaking_head"], tags: [], category: "People & Body", description: "speaking head", unicode_version: "7.0", }, { emoji: "👤", aliases: ["bust_in_silhouette"], tags: ["user"], category: "People & Body", description: "bust in silhouette", unicode_version: "6.0", }, { emoji: "👥", aliases: ["busts_in_silhouette"], tags: ["users", "group", "team"], category: "People & Body", description: "busts in silhouette", unicode_version: "6.0", }, { emoji: "🫂", aliases: ["people_hugging"], tags: [], category: "People & Body", description: "people hugging", unicode_version: "13.0", }, { emoji: "👣", aliases: ["footprints"], tags: ["feet", "tracks"], category: "People & Body", description: "footprints", unicode_version: "6.0", }, { emoji: "🐵", aliases: ["monkey_face"], tags: [], category: "Animals & Nature", description: "monkey face", unicode_version: "6.0", }, { emoji: "🐒", aliases: ["monkey"], tags: [], category: "Animals & Nature", description: "monkey", unicode_version: "6.0", }, { emoji: "🦍", aliases: ["gorilla"], tags: [], category: "Animals & Nature", description: "gorilla", unicode_version: "9.0", }, { emoji: "🦧", aliases: ["orangutan"], tags: [], category: "Animals & Nature", description: "orangutan", unicode_version: "12.0", }, { emoji: "🐶", aliases: ["dog"], tags: ["pet"], category: "Animals & Nature", description: "dog face", unicode_version: "6.0", }, { emoji: "🐕", aliases: ["dog2"], tags: [], category: "Animals & Nature", description: "dog", unicode_version: "6.0", }, { emoji: "🦮", aliases: ["guide_dog"], tags: [], category: "Animals & Nature", description: "guide dog", unicode_version: "12.0", }, { emoji: "🐕‍🦺", aliases: ["service_dog"], tags: [], category: "Animals & Nature", description: "service dog", unicode_version: "12.0", }, { emoji: "🐩", aliases: ["poodle"], tags: ["dog"], category: "Animals & Nature", description: "poodle", unicode_version: "6.0", }, { emoji: "🐺", aliases: ["wolf"], tags: [], category: "Animals & Nature", description: "wolf", unicode_version: "6.0", }, { emoji: "🦊", aliases: ["fox_face"], tags: [], category: "Animals & Nature", description: "fox", unicode_version: "9.0", }, { emoji: "🦝", aliases: ["raccoon"], tags: [], category: "Animals & Nature", description: "raccoon", unicode_version: "11.0", }, { emoji: "🐱", aliases: ["cat"], tags: ["pet"], category: "Animals & Nature", description: "cat face", unicode_version: "6.0", }, { emoji: "🐈", aliases: ["cat2"], tags: [], category: "Animals & Nature", description: "cat", unicode_version: "6.0", }, { emoji: "🐈‍⬛", aliases: ["black_cat"], tags: [], category: "Animals & Nature", description: "black cat", unicode_version: "13.0", }, { emoji: "🦁", aliases: ["lion"], tags: [], category: "Animals & Nature", description: "lion", unicode_version: "8.0", }, { emoji: "🐯", aliases: ["tiger"], tags: [], category: "Animals & Nature", description: "tiger face", unicode_version: "6.0", }, { emoji: "🐅", aliases: ["tiger2"], tags: [], category: "Animals & Nature", description: "tiger", unicode_version: "6.0", }, { emoji: "🐆", aliases: ["leopard"], tags: [], category: "Animals & Nature", description: "leopard", unicode_version: "6.0", }, { emoji: "🐴", aliases: ["horse"], tags: [], category: "Animals & Nature", description: "horse face", unicode_version: "6.0", }, { emoji: "🐎", aliases: ["racehorse"], tags: ["speed"], category: "Animals & Nature", description: "horse", unicode_version: "6.0", }, { emoji: "🦄", aliases: ["unicorn"], tags: [], category: "Animals & Nature", description: "unicorn", unicode_version: "8.0", }, { emoji: "🦓", aliases: ["zebra"], tags: [], category: "Animals & Nature", description: "zebra", unicode_version: "11.0", }, { emoji: "🦌", aliases: ["deer"], tags: [], category: "Animals & Nature", description: "deer", unicode_version: "9.0", }, { emoji: "🦬", aliases: ["bison"], tags: [], category: "Animals & Nature", description: "bison", unicode_version: "13.0", }, { emoji: "🐮", aliases: ["cow"], tags: [], category: "Animals & Nature", description: "cow face", unicode_version: "6.0", }, { emoji: "🐂", aliases: ["ox"], tags: [], category: "Animals & Nature", description: "ox", unicode_version: "6.0", }, { emoji: "🐃", aliases: ["water_buffalo"], tags: [], category: "Animals & Nature", description: "water buffalo", unicode_version: "6.0", }, { emoji: "🐄", aliases: ["cow2"], tags: [], category: "Animals & Nature", description: "cow", unicode_version: "6.0", }, { emoji: "🐷", aliases: ["pig"], tags: [], category: "Animals & Nature", description: "pig face", unicode_version: "6.0", }, { emoji: "🐖", aliases: ["pig2"], tags: [], category: "Animals & Nature", description: "pig", unicode_version: "6.0", }, { emoji: "🐗", aliases: ["boar"], tags: [], category: "Animals & Nature", description: "boar", unicode_version: "6.0", }, { emoji: "🐽", aliases: ["pig_nose"], tags: [], category: "Animals & Nature", description: "pig nose", unicode_version: "6.0", }, { emoji: "🐏", aliases: ["ram"], tags: [], category: "Animals & Nature", description: "ram", unicode_version: "6.0", }, { emoji: "🐑", aliases: ["sheep"], tags: [], category: "Animals & Nature", description: "ewe", unicode_version: "6.0", }, { emoji: "🐐", aliases: ["goat"], tags: [], category: "Animals & Nature", description: "goat", unicode_version: "6.0", }, { emoji: "🐪", aliases: ["dromedary_camel"], tags: ["desert"], category: "Animals & Nature", description: "camel", unicode_version: "6.0", }, { emoji: "🐫", aliases: ["camel"], tags: [], category: "Animals & Nature", description: "two-hump camel", unicode_version: "6.0", }, { emoji: "🦙", aliases: ["llama"], tags: [], category: "Animals & Nature", description: "llama", unicode_version: "11.0", }, { emoji: "🦒", aliases: ["giraffe"], tags: [], category: "Animals & Nature", description: "giraffe", unicode_version: "11.0", }, { emoji: "🐘", aliases: ["elephant"], tags: [], category: "Animals & Nature", description: "elephant", unicode_version: "6.0", }, { emoji: "🦣", aliases: ["mammoth"], tags: [], category: "Animals & Nature", description: "mammoth", unicode_version: "13.0", }, { emoji: "🦏", aliases: ["rhinoceros"], tags: [], category: "Animals & Nature", description: "rhinoceros", unicode_version: "9.0", }, { emoji: "🦛", aliases: ["hippopotamus"], tags: [], category: "Animals & Nature", description: "hippopotamus", unicode_version: "11.0", }, { emoji: "🐭", aliases: ["mouse"], tags: [], category: "Animals & Nature", description: "mouse face", unicode_version: "6.0", }, { emoji: "🐁", aliases: ["mouse2"], tags: [], category: "Animals & Nature", description: "mouse", unicode_version: "6.0", }, { emoji: "🐀", aliases: ["rat"], tags: [], category: "Animals & Nature", description: "rat", unicode_version: "6.0", }, { emoji: "🐹", aliases: ["hamster"], tags: ["pet"], category: "Animals & Nature", description: "hamster", unicode_version: "6.0", }, { emoji: "🐰", aliases: ["rabbit"], tags: ["bunny"], category: "Animals & Nature", description: "rabbit face", unicode_version: "6.0", }, { emoji: "🐇", aliases: ["rabbit2"], tags: [], category: "Animals & Nature", description: "rabbit", unicode_version: "6.0", }, { emoji: "🐿️", aliases: ["chipmunk"], tags: [], category: "Animals & Nature", description: "chipmunk", unicode_version: "7.0", }, { emoji: "🦫", aliases: ["beaver"], tags: [], category: "Animals & Nature", description: "beaver", unicode_version: "13.0", }, { emoji: "🦔", aliases: ["hedgehog"], tags: [], category: "Animals & Nature", description: "hedgehog", unicode_version: "11.0", }, { emoji: "🦇", aliases: ["bat"], tags: [], category: "Animals & Nature", description: "bat", unicode_version: "9.0", }, { emoji: "🐻", aliases: ["bear"], tags: [], category: "Animals & Nature", description: "bear", unicode_version: "6.0", }, { emoji: "🐻‍❄️", aliases: ["polar_bear"], tags: [], category: "Animals & Nature", description: "polar bear", unicode_version: "13.0", }, { emoji: "🐨", aliases: ["koala"], tags: [], category: "Animals & Nature", description: "koala", unicode_version: "6.0", }, { emoji: "🐼", aliases: ["panda_face"], tags: [], category: "Animals & Nature", description: "panda", unicode_version: "6.0", }, { emoji: "🦥", aliases: ["sloth"], tags: [], category: "Animals & Nature", description: "sloth", unicode_version: "12.0", }, { emoji: "🦦", aliases: ["otter"], tags: [], category: "Animals & Nature", description: "otter", unicode_version: "12.0", }, { emoji: "🦨", aliases: ["skunk"], tags: [], category: "Animals & Nature", description: "skunk", unicode_version: "12.0", }, { emoji: "🦘", aliases: ["kangaroo"], tags: [], category: "Animals & Nature", description: "kangaroo", unicode_version: "11.0", }, { emoji: "🦡", aliases: ["badger"], tags: [], category: "Animals & Nature", description: "badger", unicode_version: "11.0", }, { emoji: "🐾", aliases: ["feet", "paw_prints"], tags: [], category: "Animals & Nature", description: "paw prints", unicode_version: "6.0", }, { emoji: "🦃", aliases: ["turkey"], tags: ["thanksgiving"], category: "Animals & Nature", description: "turkey", unicode_version: "8.0", }, { emoji: "🐔", aliases: ["chicken"], tags: [], category: "Animals & Nature", description: "chicken", unicode_version: "6.0", }, { emoji: "🐓", aliases: ["rooster"], tags: [], category: "Animals & Nature", description: "rooster", unicode_version: "6.0", }, { emoji: "🐣", aliases: ["hatching_chick"], tags: [], category: "Animals & Nature", description: "hatching chick", unicode_version: "6.0", }, { emoji: "🐤", aliases: ["baby_chick"], tags: [], category: "Animals & Nature", description: "baby chick", unicode_version: "6.0", }, { emoji: "🐥", aliases: ["hatched_chick"], tags: [], category: "Animals & Nature", description: "front-facing baby chick", unicode_version: "6.0", }, { emoji: "🐦", aliases: ["bird"], tags: [], category: "Animals & Nature", description: "bird", unicode_version: "6.0", }, { emoji: "🐧", aliases: ["penguin"], tags: [], category: "Animals & Nature", description: "penguin", unicode_version: "6.0", }, { emoji: "🕊️", aliases: ["dove"], tags: ["peace"], category: "Animals & Nature", description: "dove", unicode_version: "7.0", }, { emoji: "🦅", aliases: ["eagle"], tags: [], category: "Animals & Nature", description: "eagle", unicode_version: "9.0", }, { emoji: "🦆", aliases: ["duck"], tags: [], category: "Animals & Nature", description: "duck", unicode_version: "9.0", }, { emoji: "🦢", aliases: ["swan"], tags: [], category: "Animals & Nature", description: "swan", unicode_version: "11.0", }, { emoji: "🦉", aliases: ["owl"], tags: [], category: "Animals & Nature", description: "owl", unicode_version: "9.0", }, { emoji: "🦤", aliases: ["dodo"], tags: [], category: "Animals & Nature", description: "dodo", unicode_version: "13.0", }, { emoji: "🪶", aliases: ["feather"], tags: [], category: "Animals & Nature", description: "feather", unicode_version: "13.0", }, { emoji: "🦩", aliases: ["flamingo"], tags: [], category: "Animals & Nature", description: "flamingo", unicode_version: "12.0", }, { emoji: "🦚", aliases: ["peacock"], tags: [], category: "Animals & Nature", description: "peacock", unicode_version: "11.0", }, { emoji: "🦜", aliases: ["parrot"], tags: [], category: "Animals & Nature", description: "parrot", unicode_version: "11.0", }, { emoji: "🐸", aliases: ["frog"], tags: [], category: "Animals & Nature", description: "frog", unicode_version: "6.0", }, { emoji: "🐊", aliases: ["crocodile"], tags: [], category: "Animals & Nature", description: "crocodile", unicode_version: "6.0", }, { emoji: "🐢", aliases: ["turtle"], tags: ["slow"], category: "Animals & Nature", description: "turtle", unicode_version: "6.0", }, { emoji: "🦎", aliases: ["lizard"], tags: [], category: "Animals & Nature", description: "lizard", unicode_version: "9.0", }, { emoji: "🐍", aliases: ["snake"], tags: [], category: "Animals & Nature", description: "snake", unicode_version: "6.0", }, { emoji: "🐲", aliases: ["dragon_face"], tags: [], category: "Animals & Nature", description: "dragon face", unicode_version: "6.0", }, { emoji: "🐉", aliases: ["dragon"], tags: [], category: "Animals & Nature", description: "dragon", unicode_version: "6.0", }, { emoji: "🦕", aliases: ["sauropod"], tags: ["dinosaur"], category: "Animals & Nature", description: "sauropod", unicode_version: "11.0", }, { emoji: "🦖", aliases: ["t-rex"], tags: ["dinosaur"], category: "Animals & Nature", description: "T-Rex", unicode_version: "11.0", }, { emoji: "🐳", aliases: ["whale"], tags: ["sea"], category: "Animals & Nature", description: "spouting whale", unicode_version: "6.0", }, { emoji: "🐋", aliases: ["whale2"], tags: [], category: "Animals & Nature", description: "whale", unicode_version: "6.0", }, { emoji: "🐬", aliases: ["dolphin", "flipper"], tags: [], category: "Animals & Nature", description: "dolphin", unicode_version: "6.0", }, { emoji: "🦭", aliases: ["seal"], tags: [], category: "Animals & Nature", description: "seal", unicode_version: "13.0", }, { emoji: "🐟", aliases: ["fish"], tags: [], category: "Animals & Nature", description: "fish", unicode_version: "6.0", }, { emoji: "🐠", aliases: ["tropical_fish"], tags: [], category: "Animals & Nature", description: "tropical fish", unicode_version: "6.0", }, { emoji: "🐡", aliases: ["blowfish"], tags: [], category: "Animals & Nature", description: "blowfish", unicode_version: "6.0", }, { emoji: "🦈", aliases: ["shark"], tags: [], category: "Animals & Nature", description: "shark", unicode_version: "9.0", }, { emoji: "🐙", aliases: ["octopus"], tags: [], category: "Animals & Nature", description: "octopus", unicode_version: "6.0", }, { emoji: "🐚", aliases: ["shell"], tags: ["sea", "beach"], category: "Animals & Nature", description: "spiral shell", unicode_version: "6.0", }, { emoji: "🐌", aliases: ["snail"], tags: ["slow"], category: "Animals & Nature", description: "snail", unicode_version: "6.0", }, { emoji: "🦋", aliases: ["butterfly"], tags: [], category: "Animals & Nature", description: "butterfly", unicode_version: "9.0", }, { emoji: "🐛", aliases: ["bug"], tags: [], category: "Animals & Nature", description: "bug", unicode_version: "6.0", }, { emoji: "🐜", aliases: ["ant"], tags: [], category: "Animals & Nature", description: "ant", unicode_version: "6.0", }, { emoji: "🐝", aliases: ["bee", "honeybee"], tags: [], category: "Animals & Nature", description: "honeybee", unicode_version: "6.0", }, { emoji: "🪲", aliases: ["beetle"], tags: [], category: "Animals & Nature", description: "beetle", unicode_version: "13.0", }, { emoji: "🐞", aliases: ["lady_beetle"], tags: ["bug"], category: "Animals & Nature", description: "lady beetle", unicode_version: "6.0", }, { emoji: "🦗", aliases: ["cricket"], tags: [], category: "Animals & Nature", description: "cricket", unicode_version: "11.0", }, { emoji: "🪳", aliases: ["cockroach"], tags: [], category: "Animals & Nature", description: "cockroach", unicode_version: "13.0", }, { emoji: "🕷️", aliases: ["spider"], tags: [], category: "Animals & Nature", description: "spider", unicode_version: "7.0", }, { emoji: "🕸️", aliases: ["spider_web"], tags: [], category: "Animals & Nature", description: "spider web", unicode_version: "7.0", }, { emoji: "🦂", aliases: ["scorpion"], tags: [], category: "Animals & Nature", description: "scorpion", unicode_version: "8.0", }, { emoji: "🦟", aliases: ["mosquito"], tags: [], category: "Animals & Nature", description: "mosquito", unicode_version: "11.0", }, { emoji: "🪰", aliases: ["fly"], tags: [], category: "Animals & Nature", description: "fly", unicode_version: "13.0", }, { emoji: "🪱", aliases: ["worm"], tags: [], category: "Animals & Nature", description: "worm", unicode_version: "13.0", }, { emoji: "🦠", aliases: ["microbe"], tags: ["germ"], category: "Animals & Nature", description: "microbe", unicode_version: "11.0", }, { emoji: "💐", aliases: ["bouquet"], tags: ["flowers"], category: "Animals & Nature", description: "bouquet", unicode_version: "6.0", }, { emoji: "🌸", aliases: ["cherry_blossom"], tags: ["flower", "spring"], category: "Animals & Nature", description: "cherry blossom", unicode_version: "6.0", }, { emoji: "💮", aliases: ["white_flower"], tags: [], category: "Animals & Nature", description: "white flower", unicode_version: "6.0", }, { emoji: "🏵️", aliases: ["rosette"], tags: [], category: "Animals & Nature", description: "rosette", unicode_version: "7.0", }, { emoji: "🌹", aliases: ["rose"], tags: ["flower"], category: "Animals & Nature", description: "rose", unicode_version: "6.0", }, { emoji: "🥀", aliases: ["wilted_flower"], tags: [], category: "Animals & Nature", description: "wilted flower", unicode_version: "9.0", }, { emoji: "🌺", aliases: ["hibiscus"], tags: [], category: "Animals & Nature", description: "hibiscus", unicode_version: "6.0", }, { emoji: "🌻", aliases: ["sunflower"], tags: [], category: "Animals & Nature", description: "sunflower", unicode_version: "6.0", }, { emoji: "🌼", aliases: ["blossom"], tags: [], category: "Animals & Nature", description: "blossom", unicode_version: "6.0", }, { emoji: "🌷", aliases: ["tulip"], tags: ["flower"], category: "Animals & Nature", description: "tulip", unicode_version: "6.0", }, { emoji: "🌱", aliases: ["seedling"], tags: ["plant"], category: "Animals & Nature", description: "seedling", unicode_version: "6.0", }, { emoji: "🪴", aliases: ["potted_plant"], tags: [], category: "Animals & Nature", description: "potted plant", unicode_version: "13.0", }, { emoji: "🌲", aliases: ["evergreen_tree"], tags: ["wood"], category: "Animals & Nature", description: "evergreen tree", unicode_version: "6.0", }, { emoji: "🌳", aliases: ["deciduous_tree"], tags: ["wood"], category: "Animals & Nature", description: "deciduous tree", unicode_version: "6.0", }, { emoji: "🌴", aliases: ["palm_tree"], tags: [], category: "Animals & Nature", description: "palm tree", unicode_version: "6.0", }, { emoji: "🌵", aliases: ["cactus"], tags: [], category: "Animals & Nature", description: "cactus", unicode_version: "6.0", }, { emoji: "🌾", aliases: ["ear_of_rice"], tags: [], category: "Animals & Nature", description: "sheaf of rice", unicode_version: "6.0", }, { emoji: "🌿", aliases: ["herb"], tags: [], category: "Animals & Nature", description: "herb", unicode_version: "6.0", }, { emoji: "☘️", aliases: ["shamrock"], tags: [], category: "Animals & Nature", description: "shamrock", unicode_version: "4.1", }, { emoji: "🍀", aliases: ["four_leaf_clover"], tags: ["luck"], category: "Animals & Nature", description: "four leaf clover", unicode_version: "6.0", }, { emoji: "🍁", aliases: ["maple_leaf"], tags: ["canada"], category: "Animals & Nature", description: "maple leaf", unicode_version: "6.0", }, { emoji: "🍂", aliases: ["fallen_leaf"], tags: ["autumn"], category: "Animals & Nature", description: "fallen leaf", unicode_version: "6.0", }, { emoji: "🍃", aliases: ["leaves"], tags: ["leaf"], category: "Animals & Nature", description: "leaf fluttering in wind", unicode_version: "6.0", }, { emoji: "🍇", aliases: ["grapes"], tags: [], category: "Food & Drink", description: "grapes", unicode_version: "6.0", }, { emoji: "🍈", aliases: ["melon"], tags: [], category: "Food & Drink", description: "melon", unicode_version: "6.0", }, { emoji: "🍉", aliases: ["watermelon"], tags: [], category: "Food & Drink", description: "watermelon", unicode_version: "6.0", }, { emoji: "🍊", aliases: ["tangerine", "orange", "mandarin"], tags: [], category: "Food & Drink", description: "tangerine", unicode_version: "6.0", }, { emoji: "🍋", aliases: ["lemon"], tags: [], category: "Food & Drink", description: "lemon", unicode_version: "6.0", }, { emoji: "🍌", aliases: ["banana"], tags: ["fruit"], category: "Food & Drink", description: "banana", unicode_version: "6.0", }, { emoji: "🍍", aliases: ["pineapple"], tags: [], category: "Food & Drink", description: "pineapple", unicode_version: "6.0", }, { emoji: "🥭", aliases: ["mango"], tags: [], category: "Food & Drink", description: "mango", unicode_version: "11.0", }, { emoji: "🍎", aliases: ["apple"], tags: [], category: "Food & Drink", description: "red apple", unicode_version: "6.0", }, { emoji: "🍏", aliases: ["green_apple"], tags: ["fruit"], category: "Food & Drink", description: "green apple", unicode_version: "6.0", }, { emoji: "🍐", aliases: ["pear"], tags: [], category: "Food & Drink", description: "pear", unicode_version: "6.0", }, { emoji: "🍑", aliases: ["peach"], tags: [], category: "Food & Drink", description: "peach", unicode_version: "6.0", }, { emoji: "🍒", aliases: ["cherries"], tags: ["fruit"], category: "Food & Drink", description: "cherries", unicode_version: "6.0", }, { emoji: "🍓", aliases: ["strawberry"], tags: ["fruit"], category: "Food & Drink", description: "strawberry", unicode_version: "6.0", }, { emoji: "🫐", aliases: ["blueberries"], tags: [], category: "Food & Drink", description: "blueberries", unicode_version: "13.0", }, { emoji: "🥝", aliases: ["kiwi_fruit"], tags: [], category: "Food & Drink", description: "kiwi fruit", unicode_version: "9.0", }, { emoji: "🍅", aliases: ["tomato"], tags: [], category: "Food & Drink", description: "tomato", unicode_version: "6.0", }, { emoji: "🫒", aliases: ["olive"], tags: [], category: "Food & Drink", description: "olive", unicode_version: "13.0", }, { emoji: "🥥", aliases: ["coconut"], tags: [], category: "Food & Drink", description: "coconut", unicode_version: "11.0", }, { emoji: "🥑", aliases: ["avocado"], tags: [], category: "Food & Drink", description: "avocado", unicode_version: "9.0", }, { emoji: "🍆", aliases: ["eggplant"], tags: ["aubergine"], category: "Food & Drink", description: "eggplant", unicode_version: "6.0", }, { emoji: "🥔", aliases: ["potato"], tags: [], category: "Food & Drink", description: "potato", unicode_version: "9.0", }, { emoji: "🥕", aliases: ["carrot"], tags: [], category: "Food & Drink", description: "carrot", unicode_version: "9.0", }, { emoji: "🌽", aliases: ["corn"], tags: [], category: "Food & Drink", description: "ear of corn", unicode_version: "6.0", }, { emoji: "🌶️", aliases: ["hot_pepper"], tags: ["spicy"], category: "Food & Drink", description: "hot pepper", unicode_version: "7.0", }, { emoji: "🫑", aliases: ["bell_pepper"], tags: [], category: "Food & Drink", description: "bell pepper", unicode_version: "13.0", }, { emoji: "🥒", aliases: ["cucumber"], tags: [], category: "Food & Drink", description: "cucumber", unicode_version: "9.0", }, { emoji: "🥬", aliases: ["leafy_green"], tags: [], category: "Food & Drink", description: "leafy green", unicode_version: "11.0", }, { emoji: "🥦", aliases: ["broccoli"], tags: [], category: "Food & Drink", description: "broccoli", unicode_version: "11.0", }, { emoji: "🧄", aliases: ["garlic"], tags: [], category: "Food & Drink", description: "garlic", unicode_version: "12.0", }, { emoji: "🧅", aliases: ["onion"], tags: [], category: "Food & Drink", description: "onion", unicode_version: "12.0", }, { emoji: "🍄", aliases: ["mushroom"], tags: [], category: "Food & Drink", description: "mushroom", unicode_version: "6.0", }, { emoji: "🥜", aliases: ["peanuts"], tags: [], category: "Food & Drink", description: "peanuts", unicode_version: "9.0", }, { emoji: "🌰", aliases: ["chestnut"], tags: [], category: "Food & Drink", description: "chestnut", unicode_version: "6.0", }, { emoji: "🍞", aliases: ["bread"], tags: ["toast"], category: "Food & Drink", description: "bread", unicode_version: "6.0", }, { emoji: "🥐", aliases: ["croissant"], tags: [], category: "Food & Drink", description: "croissant", unicode_version: "9.0", }, { emoji: "🥖", aliases: ["baguette_bread"], tags: [], category: "Food & Drink", description: "baguette bread", unicode_version: "9.0", }, { emoji: "🫓", aliases: ["flatbread"], tags: [], category: "Food & Drink", description: "flatbread", unicode_version: "13.0", }, { emoji: "🥨", aliases: ["pretzel"], tags: [], category: "Food & Drink", description: "pretzel", unicode_version: "11.0", }, { emoji: "🥯", aliases: ["bagel"], tags: [], category: "Food & Drink", description: "bagel", unicode_version: "11.0", }, { emoji: "🥞", aliases: ["pancakes"], tags: [], category: "Food & Drink", description: "pancakes", unicode_version: "9.0", }, { emoji: "🧇", aliases: ["waffle"], tags: [], category: "Food & Drink", description: "waffle", unicode_version: "12.0", }, { emoji: "🧀", aliases: ["cheese"], tags: [], category: "Food & Drink", description: "cheese wedge", unicode_version: "8.0", }, { emoji: "🍖", aliases: ["meat_on_bone"], tags: [], category: "Food & Drink", description: "meat on bone", unicode_version: "6.0", }, { emoji: "🍗", aliases: ["poultry_leg"], tags: ["meat", "chicken"], category: "Food & Drink", description: "poultry leg", unicode_version: "6.0", }, { emoji: "🥩", aliases: ["cut_of_meat"], tags: [], category: "Food & Drink", description: "cut of meat", unicode_version: "11.0", }, { emoji: "🥓", aliases: ["bacon"], tags: [], category: "Food & Drink", description: "bacon", unicode_version: "9.0", }, { emoji: "🍔", aliases: ["hamburger"], tags: ["burger"], category: "Food & Drink", description: "hamburger", unicode_version: "6.0", }, { emoji: "🍟", aliases: ["fries"], tags: [], category: "Food & Drink", description: "french fries", unicode_version: "6.0", }, { emoji: "🍕", aliases: ["pizza"], tags: [], category: "Food & Drink", description: "pizza", unicode_version: "6.0", }, { emoji: "🌭", aliases: ["hotdog"], tags: [], category: "Food & Drink", description: "hot dog", unicode_version: "8.0", }, { emoji: "🥪", aliases: ["sandwich"], tags: [], category: "Food & Drink", description: "sandwich", unicode_version: "11.0", }, { emoji: "🌮", aliases: ["taco"], tags: [], category: "Food & Drink", description: "taco", unicode_version: "8.0", }, { emoji: "🌯", aliases: ["burrito"], tags: [], category: "Food & Drink", description: "burrito", unicode_version: "8.0", }, { emoji: "🫔", aliases: ["tamale"], tags: [], category: "Food & Drink", description: "tamale", unicode_version: "13.0", }, { emoji: "🥙", aliases: ["stuffed_flatbread"], tags: [], category: "Food & Drink", description: "stuffed flatbread", unicode_version: "9.0", }, { emoji: "🧆", aliases: ["falafel"], tags: [], category: "Food & Drink", description: "falafel", unicode_version: "12.0", }, { emoji: "🥚", aliases: ["egg"], tags: [], category: "Food & Drink", description: "egg", unicode_version: "9.0", }, { emoji: "🍳", aliases: ["fried_egg"], tags: ["breakfast"], category: "Food & Drink", description: "cooking", unicode_version: "6.0", }, { emoji: "🥘", aliases: ["shallow_pan_of_food"], tags: ["paella", "curry"], category: "Food & Drink", description: "shallow pan of food", unicode_version: "", }, { emoji: "🍲", aliases: ["stew"], tags: [], category: "Food & Drink", description: "pot of food", unicode_version: "6.0", }, { emoji: "🫕", aliases: ["fondue"], tags: [], category: "Food & Drink", description: "fondue", unicode_version: "13.0", }, { emoji: "🥣", aliases: ["bowl_with_spoon"], tags: [], category: "Food & Drink", description: "bowl with spoon", unicode_version: "11.0", }, { emoji: "🥗", aliases: ["green_salad"], tags: [], category: "Food & Drink", description: "green salad", unicode_version: "9.0", }, { emoji: "🍿", aliases: ["popcorn"], tags: [], category: "Food & Drink", description: "popcorn", unicode_version: "8.0", }, { emoji: "🧈", aliases: ["butter"], tags: [], category: "Food & Drink", description: "butter", unicode_version: "12.0", }, { emoji: "🧂", aliases: ["salt"], tags: [], category: "Food & Drink", description: "salt", unicode_version: "11.0", }, { emoji: "🥫", aliases: ["canned_food"], tags: [], category: "Food & Drink", description: "canned food", unicode_version: "11.0", }, { emoji: "🍱", aliases: ["bento"], tags: [], category: "Food & Drink", description: "bento box", unicode_version: "6.0", }, { emoji: "🍘", aliases: ["rice_cracker"], tags: [], category: "Food & Drink", description: "rice cracker", unicode_version: "6.0", }, { emoji: "🍙", aliases: ["rice_ball"], tags: [], category: "Food & Drink", description: "rice ball", unicode_version: "6.0", }, { emoji: "🍚", aliases: ["rice"], tags: [], category: "Food & Drink", description: "cooked rice", unicode_version: "6.0", }, { emoji: "🍛", aliases: ["curry"], tags: [], category: "Food & Drink", description: "curry rice", unicode_version: "6.0", }, { emoji: "🍜", aliases: ["ramen"], tags: ["noodle"], category: "Food & Drink", description: "steaming bowl", unicode_version: "6.0", }, { emoji: "🍝", aliases: ["spaghetti"], tags: ["pasta"], category: "Food & Drink", description: "spaghetti", unicode_version: "6.0", }, { emoji: "🍠", aliases: ["sweet_potato"], tags: [], category: "Food & Drink", description: "roasted sweet potato", unicode_version: "6.0", }, { emoji: "🍢", aliases: ["oden"], tags: [], category: "Food & Drink", description: "oden", unicode_version: "6.0", }, { emoji: "🍣", aliases: ["sushi"], tags: [], category: "Food & Drink", description: "sushi", unicode_version: "6.0", }, { emoji: "🍤", aliases: ["fried_shrimp"], tags: ["tempura"], category: "Food & Drink", description: "fried shrimp", unicode_version: "6.0", }, { emoji: "🍥", aliases: ["fish_cake"], tags: [], category: "Food & Drink", description: "fish cake with swirl", unicode_version: "6.0", }, { emoji: "🥮", aliases: ["moon_cake"], tags: [], category: "Food & Drink", description: "moon cake", unicode_version: "11.0", }, { emoji: "🍡", aliases: ["dango"], tags: [], category: "Food & Drink", description: "dango", unicode_version: "6.0", }, { emoji: "🥟", aliases: ["dumpling"], tags: [], category: "Food & Drink", description: "dumpling", unicode_version: "11.0", }, { emoji: "🥠", aliases: ["fortune_cookie"], tags: [], category: "Food & Drink", description: "fortune cookie", unicode_version: "11.0", }, { emoji: "🥡", aliases: ["takeout_box"], tags: [], category: "Food & Drink", description: "takeout box", unicode_version: "11.0", }, { emoji: "🦀", aliases: ["crab"], tags: [], category: "Food & Drink", description: "crab", unicode_version: "8.0", }, { emoji: "🦞", aliases: ["lobster"], tags: [], category: "Food & Drink", description: "lobster", unicode_version: "11.0", }, { emoji: "🦐", aliases: ["shrimp"], tags: [], category: "Food & Drink", description: "shrimp", unicode_version: "9.0", }, { emoji: "🦑", aliases: ["squid"], tags: [], category: "Food & Drink", description: "squid", unicode_version: "9.0", }, { emoji: "🦪", aliases: ["oyster"], tags: [], category: "Food & Drink", description: "oyster", unicode_version: "12.0", }, { emoji: "🍦", aliases: ["icecream"], tags: [], category: "Food & Drink", description: "soft ice cream", unicode_version: "6.0", }, { emoji: "🍧", aliases: ["shaved_ice"], tags: [], category: "Food & Drink", description: "shaved ice", unicode_version: "6.0", }, { emoji: "🍨", aliases: ["ice_cream"], tags: [], category: "Food & Drink", description: "ice cream", unicode_version: "6.0", }, { emoji: "🍩", aliases: ["doughnut"], tags: [], category: "Food & Drink", description: "doughnut", unicode_version: "6.0", }, { emoji: "🍪", aliases: ["cookie"], tags: [], category: "Food & Drink", description: "cookie", unicode_version: "6.0", }, { emoji: "🎂", aliases: ["birthday"], tags: ["party"], category: "Food & Drink", description: "birthday cake", unicode_version: "6.0", }, { emoji: "🍰", aliases: ["cake"], tags: ["dessert"], category: "Food & Drink", description: "shortcake", unicode_version: "6.0", }, { emoji: "🧁", aliases: ["cupcake"], tags: [], category: "Food & Drink", description: "cupcake", unicode_version: "11.0", }, { emoji: "🥧", aliases: ["pie"], tags: [], category: "Food & Drink", description: "pie", unicode_version: "11.0", }, { emoji: "🍫", aliases: ["chocolate_bar"], tags: [], category: "Food & Drink", description: "chocolate bar", unicode_version: "6.0", }, { emoji: "🍬", aliases: ["candy"], tags: ["sweet"], category: "Food & Drink", description: "candy", unicode_version: "6.0", }, { emoji: "🍭", aliases: ["lollipop"], tags: [], category: "Food & Drink", description: "lollipop", unicode_version: "6.0", }, { emoji: "🍮", aliases: ["custard"], tags: [], category: "Food & Drink", description: "custard", unicode_version: "6.0", }, { emoji: "🍯", aliases: ["honey_pot"], tags: [], category: "Food & Drink", description: "honey pot", unicode_version: "6.0", }, { emoji: "🍼", aliases: ["baby_bottle"], tags: ["milk"], category: "Food & Drink", description: "baby bottle", unicode_version: "6.0", }, { emoji: "🥛", aliases: ["milk_glass"], tags: [], category: "Food & Drink", description: "glass of milk", unicode_version: "9.0", }, { emoji: "☕", aliases: ["coffee"], tags: ["cafe", "espresso"], category: "Food & Drink", description: "hot beverage", unicode_version: "4.0", }, { emoji: "🫖", aliases: ["teapot"], tags: [], category: "Food & Drink", description: "teapot", unicode_version: "13.0", }, { emoji: "🍵", aliases: ["tea"], tags: ["green", "breakfast"], category: "Food & Drink", description: "teacup without handle", unicode_version: "6.0", }, { emoji: "🍶", aliases: ["sake"], tags: [], category: "Food & Drink", description: "sake", unicode_version: "6.0", }, { emoji: "🍾", aliases: ["champagne"], tags: ["bottle", "bubbly", "celebration"], category: "Food & Drink", description: "bottle with popping cork", unicode_version: "8.0", }, { emoji: "🍷", aliases: ["wine_glass"], tags: [], category: "Food & Drink", description: "wine glass", unicode_version: "6.0", }, { emoji: "🍸", aliases: ["cocktail"], tags: ["drink"], category: "Food & Drink", description: "cocktail glass", unicode_version: "6.0", }, { emoji: "🍹", aliases: ["tropical_drink"], tags: ["summer", "vacation"], category: "Food & Drink", description: "tropical drink", unicode_version: "6.0", }, { emoji: "🍺", aliases: ["beer"], tags: ["drink"], category: "Food & Drink", description: "beer mug", unicode_version: "6.0", }, { emoji: "🍻", aliases: ["beers"], tags: ["drinks"], category: "Food & Drink", description: "clinking beer mugs", unicode_version: "6.0", }, { emoji: "🥂", aliases: ["clinking_glasses"], tags: ["cheers", "toast"], category: "Food & Drink", description: "clinking glasses", unicode_version: "9.0", }, { emoji: "🥃", aliases: ["tumbler_glass"], tags: ["whisky"], category: "Food & Drink", description: "tumbler glass", unicode_version: "9.0", }, { emoji: "🥤", aliases: ["cup_with_straw"], tags: [], category: "Food & Drink", description: "cup with straw", unicode_version: "11.0", }, { emoji: "🧋", aliases: ["bubble_tea"], tags: [], category: "Food & Drink", description: "bubble tea", unicode_version: "13.0", }, { emoji: "🧃", aliases: ["beverage_box"], tags: [], category: "Food & Drink", description: "beverage box", unicode_version: "12.0", }, { emoji: "🧉", aliases: ["mate"], tags: [], category: "Food & Drink", description: "mate", unicode_version: "12.0", }, { emoji: "🧊", aliases: ["ice_cube"], tags: [], category: "Food & Drink", description: "ice", unicode_version: "12.0", }, { emoji: "🥢", aliases: ["chopsticks"], tags: [], category: "Food & Drink", description: "chopsticks", unicode_version: "11.0", }, { emoji: "🍽️", aliases: ["plate_with_cutlery"], tags: ["dining", "dinner"], category: "Food & Drink", description: "fork and knife with plate", unicode_version: "7.0", }, { emoji: "🍴", aliases: ["fork_and_knife"], tags: ["cutlery"], category: "Food & Drink", description: "fork and knife", unicode_version: "6.0", }, { emoji: "🥄", aliases: ["spoon"], tags: [], category: "Food & Drink", description: "spoon", unicode_version: "9.0", }, { emoji: "🔪", aliases: ["hocho", "knife"], tags: ["cut", "chop"], category: "Food & Drink", description: "kitchen knife", unicode_version: "6.0", }, { emoji: "🏺", aliases: ["amphora"], tags: [], category: "Food & Drink", description: "amphora", unicode_version: "8.0", }, { emoji: "🌍", aliases: ["earth_africa"], tags: ["globe", "world", "international"], category: "Travel & Places", description: "globe showing Europe-Africa", unicode_version: "6.0", }, { emoji: "🌎", aliases: ["earth_americas"], tags: ["globe", "world", "international"], category: "Travel & Places", description: "globe showing Americas", unicode_version: "6.0", }, { emoji: "🌏", aliases: ["earth_asia"], tags: ["globe", "world", "international"], category: "Travel & Places", description: "globe showing Asia-Australia", unicode_version: "6.0", }, { emoji: "🌐", aliases: ["globe_with_meridians"], tags: ["world", "global", "international"], category: "Travel & Places", description: "globe with meridians", unicode_version: "6.0", }, { emoji: "🗺️", aliases: ["world_map"], tags: ["travel"], category: "Travel & Places", description: "world map", unicode_version: "7.0", }, { emoji: "🗾", aliases: ["japan"], tags: [], category: "Travel & Places", description: "map of Japan", unicode_version: "6.0", }, { emoji: "🧭", aliases: ["compass"], tags: [], category: "Travel & Places", description: "compass", unicode_version: "11.0", }, { emoji: "🏔️", aliases: ["mountain_snow"], tags: [], category: "Travel & Places", description: "snow-capped mountain", unicode_version: "7.0", }, { emoji: "⛰️", aliases: ["mountain"], tags: [], category: "Travel & Places", description: "mountain", unicode_version: "5.2", }, { emoji: "🌋", aliases: ["volcano"], tags: [], category: "Travel & Places", description: "volcano", unicode_version: "6.0", }, { emoji: "🗻", aliases: ["mount_fuji"], tags: [], category: "Travel & Places", description: "mount fuji", unicode_version: "6.0", }, { emoji: "🏕️", aliases: ["camping"], tags: [], category: "Travel & Places", description: "camping", unicode_version: "7.0", }, { emoji: "🏖️", aliases: ["beach_umbrella"], tags: [], category: "Travel & Places", description: "beach with umbrella", unicode_version: "7.0", }, { emoji: "🏜️", aliases: ["desert"], tags: [], category: "Travel & Places", description: "desert", unicode_version: "7.0", }, { emoji: "🏝️", aliases: ["desert_island"], tags: [], category: "Travel & Places", description: "desert island", unicode_version: "7.0", }, { emoji: "🏞️", aliases: ["national_park"], tags: [], category: "Travel & Places", description: "national park", unicode_version: "7.0", }, { emoji: "🏟️", aliases: ["stadium"], tags: [], category: "Travel & Places", description: "stadium", unicode_version: "7.0", }, { emoji: "🏛️", aliases: ["classical_building"], tags: [], category: "Travel & Places", description: "classical building", unicode_version: "7.0", }, { emoji: "🏗️", aliases: ["building_construction"], tags: [], category: "Travel & Places", description: "building construction", unicode_version: "7.0", }, { emoji: "🧱", aliases: ["bricks"], tags: [], category: "Travel & Places", description: "brick", unicode_version: "11.0", }, { emoji: "🪨", aliases: ["rock"], tags: [], category: "Travel & Places", description: "rock", unicode_version: "13.0", }, { emoji: "🪵", aliases: ["wood"], tags: [], category: "Travel & Places", description: "wood", unicode_version: "13.0", }, { emoji: "🛖", aliases: ["hut"], tags: [], category: "Travel & Places", description: "hut", unicode_version: "13.0", }, { emoji: "🏘️", aliases: ["houses"], tags: [], category: "Travel & Places", description: "houses", unicode_version: "7.0", }, { emoji: "🏚️", aliases: ["derelict_house"], tags: [], category: "Travel & Places", description: "derelict house", unicode_version: "7.0", }, { emoji: "🏠", aliases: ["house"], tags: [], category: "Travel & Places", description: "house", unicode_version: "6.0", }, { emoji: "🏡", aliases: ["house_with_garden"], tags: [], category: "Travel & Places", description: "house with garden", unicode_version: "6.0", }, { emoji: "🏢", aliases: ["office"], tags: [], category: "Travel & Places", description: "office building", unicode_version: "6.0", }, { emoji: "🏣", aliases: ["post_office"], tags: [], category: "Travel & Places", description: "Japanese post office", unicode_version: "6.0", }, { emoji: "🏤", aliases: ["european_post_office"], tags: [], category: "Travel & Places", description: "post office", unicode_version: "6.0", }, { emoji: "🏥", aliases: ["hospital"], tags: [], category: "Travel & Places", description: "hospital", unicode_version: "6.0", }, { emoji: "🏦", aliases: ["bank"], tags: [], category: "Travel & Places", description: "bank", unicode_version: "6.0", }, { emoji: "🏨", aliases: ["hotel"], tags: [], category: "Travel & Places", description: "hotel", unicode_version: "6.0", }, { emoji: "🏩", aliases: ["love_hotel"], tags: [], category: "Travel & Places", description: "love hotel", unicode_version: "6.0", }, { emoji: "🏪", aliases: ["convenience_store"], tags: [], category: "Travel & Places", description: "convenience store", unicode_version: "6.0", }, { emoji: "🏫", aliases: ["school"], tags: [], category: "Travel & Places", description: "school", unicode_version: "6.0", }, { emoji: "🏬", aliases: ["department_store"], tags: [], category: "Travel & Places", description: "department store", unicode_version: "6.0", }, { emoji: "🏭", aliases: ["factory"], tags: [], category: "Travel & Places", description: "factory", unicode_version: "6.0", }, { emoji: "🏯", aliases: ["japanese_castle"], tags: [], category: "Travel & Places", description: "Japanese castle", unicode_version: "6.0", }, { emoji: "🏰", aliases: ["european_castle"], tags: [], category: "Travel & Places", description: "castle", unicode_version: "6.0", }, { emoji: "💒", aliases: ["wedding"], tags: ["marriage"], category: "Travel & Places", description: "wedding", unicode_version: "6.0", }, { emoji: "🗼", aliases: ["tokyo_tower"], tags: [], category: "Travel & Places", description: "Tokyo tower", unicode_version: "6.0", }, { emoji: "🗽", aliases: ["statue_of_liberty"], tags: [], category: "Travel & Places", description: "Statue of Liberty", unicode_version: "6.0", }, { emoji: "⛪", aliases: ["church"], tags: [], category: "Travel & Places", description: "church", unicode_version: "5.2", }, { emoji: "🕌", aliases: ["mosque"], tags: [], category: "Travel & Places", description: "mosque", unicode_version: "8.0", }, { emoji: "🛕", aliases: ["hindu_temple"], tags: [], category: "Travel & Places", description: "hindu temple", unicode_version: "12.0", }, { emoji: "🕍", aliases: ["synagogue"], tags: [], category: "Travel & Places", description: "synagogue", unicode_version: "8.0", }, { emoji: "⛩️", aliases: ["shinto_shrine"], tags: [], category: "Travel & Places", description: "shinto shrine", unicode_version: "5.2", }, { emoji: "🕋", aliases: ["kaaba"], tags: [], category: "Travel & Places", description: "kaaba", unicode_version: "8.0", }, { emoji: "⛲", aliases: ["fountain"], tags: [], category: "Travel & Places", description: "fountain", unicode_version: "5.2", }, { emoji: "⛺", aliases: ["tent"], tags: ["camping"], category: "Travel & Places", description: "tent", unicode_version: "5.2", }, { emoji: "🌁", aliases: ["foggy"], tags: ["karl"], category: "Travel & Places", description: "foggy", unicode_version: "6.0", }, { emoji: "🌃", aliases: ["night_with_stars"], tags: [], category: "Travel & Places", description: "night with stars", unicode_version: "6.0", }, { emoji: "🏙️", aliases: ["cityscape"], tags: ["skyline"], category: "Travel & Places", description: "cityscape", unicode_version: "7.0", }, { emoji: "🌄", aliases: ["sunrise_over_mountains"], tags: [], category: "Travel & Places", description: "sunrise over mountains", unicode_version: "6.0", }, { emoji: "🌅", aliases: ["sunrise"], tags: [], category: "Travel & Places", description: "sunrise", unicode_version: "6.0", }, { emoji: "🌆", aliases: ["city_sunset"], tags: [], category: "Travel & Places", description: "cityscape at dusk", unicode_version: "6.0", }, { emoji: "🌇", aliases: ["city_sunrise"], tags: [], category: "Travel & Places", description: "sunset", unicode_version: "6.0", }, { emoji: "🌉", aliases: ["bridge_at_night"], tags: [], category: "Travel & Places", description: "bridge at night", unicode_version: "6.0", }, { emoji: "♨️", aliases: ["hotsprings"], tags: [], category: "Travel & Places", description: "hot springs", unicode_version: "", }, { emoji: "🎠", aliases: ["carousel_horse"], tags: [], category: "Travel & Places", description: "carousel horse", unicode_version: "6.0", }, { emoji: "🎡", aliases: ["ferris_wheel"], tags: [], category: "Travel & Places", description: "ferris wheel", unicode_version: "6.0", }, { emoji: "🎢", aliases: ["roller_coaster"], tags: [], category: "Travel & Places", description: "roller coaster", unicode_version: "6.0", }, { emoji: "💈", aliases: ["barber"], tags: [], category: "Travel & Places", description: "barber pole", unicode_version: "6.0", }, { emoji: "🎪", aliases: ["circus_tent"], tags: [], category: "Travel & Places", description: "circus tent", unicode_version: "6.0", }, { emoji: "🚂", aliases: ["steam_locomotive"], tags: ["train"], category: "Travel & Places", description: "locomotive", unicode_version: "6.0", }, { emoji: "🚃", aliases: ["railway_car"], tags: [], category: "Travel & Places", description: "railway car", unicode_version: "6.0", }, { emoji: "🚄", aliases: ["bullettrain_side"], tags: ["train"], category: "Travel & Places", description: "high-speed train", unicode_version: "6.0", }, { emoji: "🚅", aliases: ["bullettrain_front"], tags: ["train"], category: "Travel & Places", description: "bullet train", unicode_version: "6.0", }, { emoji: "🚆", aliases: ["train2"], tags: [], category: "Travel & Places", description: "train", unicode_version: "6.0", }, { emoji: "🚇", aliases: ["metro"], tags: [], category: "Travel & Places", description: "metro", unicode_version: "6.0", }, { emoji: "🚈", aliases: ["light_rail"], tags: [], category: "Travel & Places", description: "light rail", unicode_version: "6.0", }, { emoji: "🚉", aliases: ["station"], tags: [], category: "Travel & Places", description: "station", unicode_version: "6.0", }, { emoji: "🚊", aliases: ["tram"], tags: [], category: "Travel & Places", description: "tram", unicode_version: "6.0", }, { emoji: "🚝", aliases: ["monorail"], tags: [], category: "Travel & Places", description: "monorail", unicode_version: "6.0", }, { emoji: "🚞", aliases: ["mountain_railway"], tags: [], category: "Travel & Places", description: "mountain railway", unicode_version: "6.0", }, { emoji: "🚋", aliases: ["train"], tags: [], category: "Travel & Places", description: "tram car", unicode_version: "6.0", }, { emoji: "🚌", aliases: ["bus"], tags: [], category: "Travel & Places", description: "bus", unicode_version: "6.0", }, { emoji: "🚍", aliases: ["oncoming_bus"], tags: [], category: "Travel & Places", description: "oncoming bus", unicode_version: "6.0", }, { emoji: "🚎", aliases: ["trolleybus"], tags: [], category: "Travel & Places", description: "trolleybus", unicode_version: "6.0", }, { emoji: "🚐", aliases: ["minibus"], tags: [], category: "Travel & Places", description: "minibus", unicode_version: "6.0", }, { emoji: "🚑", aliases: ["ambulance"], tags: [], category: "Travel & Places", description: "ambulance", unicode_version: "6.0", }, { emoji: "🚒", aliases: ["fire_engine"], tags: [], category: "Travel & Places", description: "fire engine", unicode_version: "6.0", }, { emoji: "🚓", aliases: ["police_car"], tags: [], category: "Travel & Places", description: "police car", unicode_version: "6.0", }, { emoji: "🚔", aliases: ["oncoming_police_car"], tags: [], category: "Travel & Places", description: "oncoming police car", unicode_version: "6.0", }, { emoji: "🚕", aliases: ["taxi"], tags: [], category: "Travel & Places", description: "taxi", unicode_version: "6.0", }, { emoji: "🚖", aliases: ["oncoming_taxi"], tags: [], category: "Travel & Places", description: "oncoming taxi", unicode_version: "6.0", }, { emoji: "🚗", aliases: ["car", "red_car"], tags: [], category: "Travel & Places", description: "automobile", unicode_version: "6.0", }, { emoji: "🚘", aliases: ["oncoming_automobile"], tags: [], category: "Travel & Places", description: "oncoming automobile", unicode_version: "6.0", }, { emoji: "🚙", aliases: ["blue_car"], tags: [], category: "Travel & Places", description: "sport utility vehicle", unicode_version: "6.0", }, { emoji: "🛻", aliases: ["pickup_truck"], tags: [], category: "Travel & Places", description: "pickup truck", unicode_version: "13.0", }, { emoji: "🚚", aliases: ["truck"], tags: [], category: "Travel & Places", description: "delivery truck", unicode_version: "6.0", }, { emoji: "🚛", aliases: ["articulated_lorry"], tags: [], category: "Travel & Places", description: "articulated lorry", unicode_version: "6.0", }, { emoji: "🚜", aliases: ["tractor"], tags: [], category: "Travel & Places", description: "tractor", unicode_version: "6.0", }, { emoji: "🏎️", aliases: ["racing_car"], tags: [], category: "Travel & Places", description: "racing car", unicode_version: "7.0", }, { emoji: "🏍️", aliases: ["motorcycle"], tags: [], category: "Travel & Places", description: "motorcycle", unicode_version: "7.0", }, { emoji: "🛵", aliases: ["motor_scooter"], tags: [], category: "Travel & Places", description: "motor scooter", unicode_version: "9.0", }, { emoji: "🦽", aliases: ["manual_wheelchair"], tags: [], category: "Travel & Places", description: "manual wheelchair", unicode_version: "12.0", }, { emoji: "🦼", aliases: ["motorized_wheelchair"], tags: [], category: "Travel & Places", description: "motorized wheelchair", unicode_version: "12.0", }, { emoji: "🛺", aliases: ["auto_rickshaw"], tags: [], category: "Travel & Places", description: "auto rickshaw", unicode_version: "12.0", }, { emoji: "🚲", aliases: ["bike"], tags: ["bicycle"], category: "Travel & Places", description: "bicycle", unicode_version: "6.0", }, { emoji: "🛴", aliases: ["kick_scooter"], tags: [], category: "Travel & Places", description: "kick scooter", unicode_version: "9.0", }, { emoji: "🛹", aliases: ["skateboard"], tags: [], category: "Travel & Places", description: "skateboard", unicode_version: "11.0", }, { emoji: "🛼", aliases: ["roller_skate"], tags: [], category: "Travel & Places", description: "roller skate", unicode_version: "13.0", }, { emoji: "🚏", aliases: ["busstop"], tags: [], category: "Travel & Places", description: "bus stop", unicode_version: "6.0", }, { emoji: "🛣️", aliases: ["motorway"], tags: [], category: "Travel & Places", description: "motorway", unicode_version: "7.0", }, { emoji: "🛤️", aliases: ["railway_track"], tags: [], category: "Travel & Places", description: "railway track", unicode_version: "7.0", }, { emoji: "🛢️", aliases: ["oil_drum"], tags: [], category: "Travel & Places", description: "oil drum", unicode_version: "7.0", }, { emoji: "⛽", aliases: ["fuelpump"], tags: [], category: "Travel & Places", description: "fuel pump", unicode_version: "5.2", }, { emoji: "🚨", aliases: ["rotating_light"], tags: ["911", "emergency"], category: "Travel & Places", description: "police car light", unicode_version: "6.0", }, { emoji: "🚥", aliases: ["traffic_light"], tags: [], category: "Travel & Places", description: "horizontal traffic light", unicode_version: "6.0", }, { emoji: "🚦", aliases: ["vertical_traffic_light"], tags: ["semaphore"], category: "Travel & Places", description: "vertical traffic light", unicode_version: "6.0", }, { emoji: "🛑", aliases: ["stop_sign"], tags: [], category: "Travel & Places", description: "stop sign", unicode_version: "9.0", }, { emoji: "🚧", aliases: ["construction"], tags: ["wip"], category: "Travel & Places", description: "construction", unicode_version: "6.0", }, { emoji: "⚓", aliases: ["anchor"], tags: ["ship"], category: "Travel & Places", description: "anchor", unicode_version: "4.1", }, { emoji: "⛵", aliases: ["boat", "sailboat"], tags: [], category: "Travel & Places", description: "sailboat", unicode_version: "5.2", }, { emoji: "🛶", aliases: ["canoe"], tags: [], category: "Travel & Places", description: "canoe", unicode_version: "9.0", }, { emoji: "🚤", aliases: ["speedboat"], tags: ["ship"], category: "Travel & Places", description: "speedboat", unicode_version: "6.0", }, { emoji: "🛳️", aliases: ["passenger_ship"], tags: ["cruise"], category: "Travel & Places", description: "passenger ship", unicode_version: "7.0", }, { emoji: "⛴️", aliases: ["ferry"], tags: [], category: "Travel & Places", description: "ferry", unicode_version: "5.2", }, { emoji: "🛥️", aliases: ["motor_boat"], tags: [], category: "Travel & Places", description: "motor boat", unicode_version: "7.0", }, { emoji: "🚢", aliases: ["ship"], tags: [], category: "Travel & Places", description: "ship", unicode_version: "6.0", }, { emoji: "✈️", aliases: ["airplane"], tags: ["flight"], category: "Travel & Places", description: "airplane", unicode_version: "", }, { emoji: "🛩️", aliases: ["small_airplane"], tags: ["flight"], category: "Travel & Places", description: "small airplane", unicode_version: "7.0", }, { emoji: "🛫", aliases: ["flight_departure"], tags: [], category: "Travel & Places", description: "airplane departure", unicode_version: "7.0", }, { emoji: "🛬", aliases: ["flight_arrival"], tags: [], category: "Travel & Places", description: "airplane arrival", unicode_version: "7.0", }, { emoji: "🪂", aliases: ["parachute"], tags: [], category: "Travel & Places", description: "parachute", unicode_version: "12.0", }, { emoji: "💺", aliases: ["seat"], tags: [], category: "Travel & Places", description: "seat", unicode_version: "6.0", }, { emoji: "🚁", aliases: ["helicopter"], tags: [], category: "Travel & Places", description: "helicopter", unicode_version: "6.0", }, { emoji: "🚟", aliases: ["suspension_railway"], tags: [], category: "Travel & Places", description: "suspension railway", unicode_version: "6.0", }, { emoji: "🚠", aliases: ["mountain_cableway"], tags: [], category: "Travel & Places", description: "mountain cableway", unicode_version: "6.0", }, { emoji: "🚡", aliases: ["aerial_tramway"], tags: [], category: "Travel & Places", description: "aerial tramway", unicode_version: "6.0", }, { emoji: "🛰️", aliases: ["artificial_satellite"], tags: ["orbit", "space"], category: "Travel & Places", description: "satellite", unicode_version: "7.0", }, { emoji: "🚀", aliases: ["rocket"], tags: ["ship", "launch"], category: "Travel & Places", description: "rocket", unicode_version: "6.0", }, { emoji: "🛸", aliases: ["flying_saucer"], tags: ["ufo"], category: "Travel & Places", description: "flying saucer", unicode_version: "11.0", }, { emoji: "🛎️", aliases: ["bellhop_bell"], tags: [], category: "Travel & Places", description: "bellhop bell", unicode_version: "7.0", }, { emoji: "🧳", aliases: ["luggage"], tags: [], category: "Travel & Places", description: "luggage", unicode_version: "11.0", }, { emoji: "⌛", aliases: ["hourglass"], tags: ["time"], category: "Travel & Places", description: "hourglass done", unicode_version: "", }, { emoji: "⏳", aliases: ["hourglass_flowing_sand"], tags: ["time"], category: "Travel & Places", description: "hourglass not done", unicode_version: "6.0", }, { emoji: "⌚", aliases: ["watch"], tags: ["time"], category: "Travel & Places", description: "watch", unicode_version: "", }, { emoji: "⏰", aliases: ["alarm_clock"], tags: ["morning"], category: "Travel & Places", description: "alarm clock", unicode_version: "6.0", }, { emoji: "⏱️", aliases: ["stopwatch"], tags: [], category: "Travel & Places", description: "stopwatch", unicode_version: "6.0", }, { emoji: "⏲️", aliases: ["timer_clock"], tags: [], category: "Travel & Places", description: "timer clock", unicode_version: "6.0", }, { emoji: "🕰️", aliases: ["mantelpiece_clock"], tags: [], category: "Travel & Places", description: "mantelpiece clock", unicode_version: "7.0", }, { emoji: "🕛", aliases: ["clock12"], tags: [], category: "Travel & Places", description: "twelve o’clock", unicode_version: "6.0", }, { emoji: "🕧", aliases: ["clock1230"], tags: [], category: "Travel & Places", description: "twelve-thirty", unicode_version: "6.0", }, { emoji: "🕐", aliases: ["clock1"], tags: [], category: "Travel & Places", description: "one o’clock", unicode_version: "6.0", }, { emoji: "🕜", aliases: ["clock130"], tags: [], category: "Travel & Places", description: "one-thirty", unicode_version: "6.0", }, { emoji: "🕑", aliases: ["clock2"], tags: [], category: "Travel & Places", description: "two o’clock", unicode_version: "6.0", }, { emoji: "🕝", aliases: ["clock230"], tags: [], category: "Travel & Places", description: "two-thirty", unicode_version: "6.0", }, { emoji: "🕒", aliases: ["clock3"], tags: [], category: "Travel & Places", description: "three o’clock", unicode_version: "6.0", }, { emoji: "🕞", aliases: ["clock330"], tags: [], category: "Travel & Places", description: "three-thirty", unicode_version: "6.0", }, { emoji: "🕓", aliases: ["clock4"], tags: [], category: "Travel & Places", description: "four o’clock", unicode_version: "6.0", }, { emoji: "🕟", aliases: ["clock430"], tags: [], category: "Travel & Places", description: "four-thirty", unicode_version: "6.0", }, { emoji: "🕔", aliases: ["clock5"], tags: [], category: "Travel & Places", description: "five o’clock", unicode_version: "6.0", }, { emoji: "🕠", aliases: ["clock530"], tags: [], category: "Travel & Places", description: "five-thirty", unicode_version: "6.0", }, { emoji: "🕕", aliases: ["clock6"], tags: [], category: "Travel & Places", description: "six o’clock", unicode_version: "6.0", }, { emoji: "🕡", aliases: ["clock630"], tags: [], category: "Travel & Places", description: "six-thirty", unicode_version: "6.0", }, { emoji: "🕖", aliases: ["clock7"], tags: [], category: "Travel & Places", description: "seven o’clock", unicode_version: "6.0", }, { emoji: "🕢", aliases: ["clock730"], tags: [], category: "Travel & Places", description: "seven-thirty", unicode_version: "6.0", }, { emoji: "🕗", aliases: ["clock8"], tags: [], category: "Travel & Places", description: "eight o’clock", unicode_version: "6.0", }, { emoji: "🕣", aliases: ["clock830"], tags: [], category: "Travel & Places", description: "eight-thirty", unicode_version: "6.0", }, { emoji: "🕘", aliases: ["clock9"], tags: [], category: "Travel & Places", description: "nine o’clock", unicode_version: "6.0", }, { emoji: "🕤", aliases: ["clock930"], tags: [], category: "Travel & Places", description: "nine-thirty", unicode_version: "6.0", }, { emoji: "🕙", aliases: ["clock10"], tags: [], category: "Travel & Places", description: "ten o’clock", unicode_version: "6.0", }, { emoji: "🕥", aliases: ["clock1030"], tags: [], category: "Travel & Places", description: "ten-thirty", unicode_version: "6.0", }, { emoji: "🕚", aliases: ["clock11"], tags: [], category: "Travel & Places", description: "eleven o’clock", unicode_version: "6.0", }, { emoji: "🕦", aliases: ["clock1130"], tags: [], category: "Travel & Places", description: "eleven-thirty", unicode_version: "6.0", }, { emoji: "🌑", aliases: ["new_moon"], tags: [], category: "Travel & Places", description: "new moon", unicode_version: "6.0", }, { emoji: "🌒", aliases: ["waxing_crescent_moon"], tags: [], category: "Travel & Places", description: "waxing crescent moon", unicode_version: "6.0", }, { emoji: "🌓", aliases: ["first_quarter_moon"], tags: [], category: "Travel & Places", description: "first quarter moon", unicode_version: "6.0", }, { emoji: "🌔", aliases: ["moon", "waxing_gibbous_moon"], tags: [], category: "Travel & Places", description: "waxing gibbous moon", unicode_version: "6.0", }, { emoji: "🌕", aliases: ["full_moon"], tags: [], category: "Travel & Places", description: "full moon", unicode_version: "6.0", }, { emoji: "🌖", aliases: ["waning_gibbous_moon"], tags: [], category: "Travel & Places", description: "waning gibbous moon", unicode_version: "6.0", }, { emoji: "🌗", aliases: ["last_quarter_moon"], tags: [], category: "Travel & Places", description: "last quarter moon", unicode_version: "6.0", }, { emoji: "🌘", aliases: ["waning_crescent_moon"], tags: [], category: "Travel & Places", description: "waning crescent moon", unicode_version: "6.0", }, { emoji: "🌙", aliases: ["crescent_moon"], tags: ["night"], category: "Travel & Places", description: "crescent moon", unicode_version: "6.0", }, { emoji: "🌚", aliases: ["new_moon_with_face"], tags: [], category: "Travel & Places", description: "new moon face", unicode_version: "6.0", }, { emoji: "🌛", aliases: ["first_quarter_moon_with_face"], tags: [], category: "Travel & Places", description: "first quarter moon face", unicode_version: "6.0", }, { emoji: "🌜", aliases: ["last_quarter_moon_with_face"], tags: [], category: "Travel & Places", description: "last quarter moon face", unicode_version: "6.0", }, { emoji: "🌡️", aliases: ["thermometer"], tags: [], category: "Travel & Places", description: "thermometer", unicode_version: "7.0", }, { emoji: "☀️", aliases: ["sunny"], tags: ["weather"], category: "Travel & Places", description: "sun", unicode_version: "", }, { emoji: "🌝", aliases: ["full_moon_with_face"], tags: [], category: "Travel & Places", description: "full moon face", unicode_version: "6.0", }, { emoji: "🌞", aliases: ["sun_with_face"], tags: ["summer"], category: "Travel & Places", description: "sun with face", unicode_version: "6.0", }, { emoji: "🪐", aliases: ["ringed_planet"], tags: [], category: "Travel & Places", description: "ringed planet", unicode_version: "12.0", }, { emoji: "⭐", aliases: ["star"], tags: [], category: "Travel & Places", description: "star", unicode_version: "5.1", }, { emoji: "🌟", aliases: ["star2"], tags: [], category: "Travel & Places", description: "glowing star", unicode_version: "6.0", }, { emoji: "🌠", aliases: ["stars"], tags: [], category: "Travel & Places", description: "shooting star", unicode_version: "6.0", }, { emoji: "🌌", aliases: ["milky_way"], tags: [], category: "Travel & Places", description: "milky way", unicode_version: "6.0", }, { emoji: "☁️", aliases: ["cloud"], tags: [], category: "Travel & Places", description: "cloud", unicode_version: "", }, { emoji: "⛅", aliases: ["partly_sunny"], tags: ["weather", "cloud"], category: "Travel & Places", description: "sun behind cloud", unicode_version: "5.2", }, { emoji: "⛈️", aliases: ["cloud_with_lightning_and_rain"], tags: [], category: "Travel & Places", description: "cloud with lightning and rain", unicode_version: "5.2", }, { emoji: "🌤️", aliases: ["sun_behind_small_cloud"], tags: [], category: "Travel & Places", description: "sun behind small cloud", unicode_version: "7.0", }, { emoji: "🌥️", aliases: ["sun_behind_large_cloud"], tags: [], category: "Travel & Places", description: "sun behind large cloud", unicode_version: "7.0", }, { emoji: "🌦️", aliases: ["sun_behind_rain_cloud"], tags: [], category: "Travel & Places", description: "sun behind rain cloud", unicode_version: "7.0", }, { emoji: "🌧️", aliases: ["cloud_with_rain"], tags: [], category: "Travel & Places", description: "cloud with rain", unicode_version: "7.0", }, { emoji: "🌨️", aliases: ["cloud_with_snow"], tags: [], category: "Travel & Places", description: "cloud with snow", unicode_version: "7.0", }, { emoji: "🌩️", aliases: ["cloud_with_lightning"], tags: [], category: "Travel & Places", description: "cloud with lightning", unicode_version: "7.0", }, { emoji: "🌪️", aliases: ["tornado"], tags: [], category: "Travel & Places", description: "tornado", unicode_version: "7.0", }, { emoji: "🌫️", aliases: ["fog"], tags: [], category: "Travel & Places", description: "fog", unicode_version: "7.0", }, { emoji: "🌬️", aliases: ["wind_face"], tags: [], category: "Travel & Places", description: "wind face", unicode_version: "7.0", }, { emoji: "🌀", aliases: ["cyclone"], tags: ["swirl"], category: "Travel & Places", description: "cyclone", unicode_version: "6.0", }, { emoji: "🌈", aliases: ["rainbow"], tags: [], category: "Travel & Places", description: "rainbow", unicode_version: "6.0", }, { emoji: "🌂", aliases: ["closed_umbrella"], tags: ["weather", "rain"], category: "Travel & Places", description: "closed umbrella", unicode_version: "6.0", }, { emoji: "☂️", aliases: ["open_umbrella"], tags: [], category: "Travel & Places", description: "umbrella", unicode_version: "", }, { emoji: "☔", aliases: ["umbrella"], tags: ["rain", "weather"], category: "Travel & Places", description: "umbrella with rain drops", unicode_version: "4.0", }, { emoji: "⛱️", aliases: ["parasol_on_ground"], tags: ["beach_umbrella"], category: "Travel & Places", description: "umbrella on ground", unicode_version: "5.2", }, { emoji: "⚡", aliases: ["zap"], tags: ["lightning", "thunder"], category: "Travel & Places", description: "high voltage", unicode_version: "4.0", }, { emoji: "❄️", aliases: ["snowflake"], tags: ["winter", "cold", "weather"], category: "Travel & Places", description: "snowflake", unicode_version: "", }, { emoji: "☃️", aliases: ["snowman_with_snow"], tags: ["winter", "christmas"], category: "Travel & Places", description: "snowman", unicode_version: "", }, { emoji: "⛄", aliases: ["snowman"], tags: ["winter"], category: "Travel & Places", description: "snowman without snow", unicode_version: "5.2", }, { emoji: "☄️", aliases: ["comet"], tags: [], category: "Travel & Places", description: "comet", unicode_version: "", }, { emoji: "🔥", aliases: ["fire"], tags: ["burn"], category: "Travel & Places", description: "fire", unicode_version: "6.0", }, { emoji: "💧", aliases: ["droplet"], tags: ["water"], category: "Travel & Places", description: "droplet", unicode_version: "6.0", }, { emoji: "🌊", aliases: ["ocean"], tags: ["sea"], category: "Travel & Places", description: "water wave", unicode_version: "6.0", }, { emoji: "🎃", aliases: ["jack_o_lantern"], tags: ["halloween"], category: "Activities", description: "jack-o-lantern", unicode_version: "6.0", }, { emoji: "🎄", aliases: ["christmas_tree"], tags: [], category: "Activities", description: "Christmas tree", unicode_version: "6.0", }, { emoji: "🎆", aliases: ["fireworks"], tags: ["festival", "celebration"], category: "Activities", description: "fireworks", unicode_version: "6.0", }, { emoji: "🎇", aliases: ["sparkler"], tags: [], category: "Activities", description: "sparkler", unicode_version: "6.0", }, { emoji: "🧨", aliases: ["firecracker"], tags: [], category: "Activities", description: "firecracker", unicode_version: "11.0", }, { emoji: "✨", aliases: ["sparkles"], tags: ["shiny"], category: "Activities", description: "sparkles", unicode_version: "6.0", }, { emoji: "🎈", aliases: ["balloon"], tags: ["party", "birthday"], category: "Activities", description: "balloon", unicode_version: "6.0", }, { emoji: "🎉", aliases: ["tada"], tags: ["hooray", "party"], category: "Activities", description: "party popper", unicode_version: "6.0", }, { emoji: "🎊", aliases: ["confetti_ball"], tags: [], category: "Activities", description: "confetti ball", unicode_version: "6.0", }, { emoji: "🎋", aliases: ["tanabata_tree"], tags: [], category: "Activities", description: "tanabata tree", unicode_version: "6.0", }, { emoji: "🎍", aliases: ["bamboo"], tags: [], category: "Activities", description: "pine decoration", unicode_version: "6.0", }, { emoji: "🎎", aliases: ["dolls"], tags: [], category: "Activities", description: "Japanese dolls", unicode_version: "6.0", }, { emoji: "🎏", aliases: ["flags"], tags: [], category: "Activities", description: "carp streamer", unicode_version: "6.0", }, { emoji: "🎐", aliases: ["wind_chime"], tags: [], category: "Activities", description: "wind chime", unicode_version: "6.0", }, { emoji: "🎑", aliases: ["rice_scene"], tags: [], category: "Activities", description: "moon viewing ceremony", unicode_version: "6.0", }, { emoji: "🧧", aliases: ["red_envelope"], tags: [], category: "Activities", description: "red envelope", unicode_version: "11.0", }, { emoji: "🎀", aliases: ["ribbon"], tags: [], category: "Activities", description: "ribbon", unicode_version: "6.0", }, { emoji: "🎁", aliases: ["gift"], tags: ["present", "birthday", "christmas"], category: "Activities", description: "wrapped gift", unicode_version: "6.0", }, { emoji: "🎗️", aliases: ["reminder_ribbon"], tags: [], category: "Activities", description: "reminder ribbon", unicode_version: "7.0", }, { emoji: "🎟️", aliases: ["tickets"], tags: [], category: "Activities", description: "admission tickets", unicode_version: "7.0", }, { emoji: "🎫", aliases: ["ticket"], tags: [], category: "Activities", description: "ticket", unicode_version: "6.0", }, { emoji: "🎖️", aliases: ["medal_military"], tags: [], category: "Activities", description: "military medal", unicode_version: "7.0", }, { emoji: "🏆", aliases: ["trophy"], tags: ["award", "contest", "winner"], category: "Activities", description: "trophy", unicode_version: "6.0", }, { emoji: "🏅", aliases: ["medal_sports"], tags: ["gold", "winner"], category: "Activities", description: "sports medal", unicode_version: "7.0", }, { emoji: "🥇", aliases: ["1st_place_medal"], tags: ["gold"], category: "Activities", description: "1st place medal", unicode_version: "9.0", }, { emoji: "🥈", aliases: ["2nd_place_medal"], tags: ["silver"], category: "Activities", description: "2nd place medal", unicode_version: "9.0", }, { emoji: "🥉", aliases: ["3rd_place_medal"], tags: ["bronze"], category: "Activities", description: "3rd place medal", unicode_version: "9.0", }, { emoji: "⚽", aliases: ["soccer"], tags: ["sports"], category: "Activities", description: "soccer ball", unicode_version: "5.2", }, { emoji: "⚾", aliases: ["baseball"], tags: ["sports"], category: "Activities", description: "baseball", unicode_version: "5.2", }, { emoji: "🥎", aliases: ["softball"], tags: [], category: "Activities", description: "softball", unicode_version: "11.0", }, { emoji: "🏀", aliases: ["basketball"], tags: ["sports"], category: "Activities", description: "basketball", unicode_version: "6.0", }, { emoji: "🏐", aliases: ["volleyball"], tags: [], category: "Activities", description: "volleyball", unicode_version: "8.0", }, { emoji: "🏈", aliases: ["football"], tags: ["sports"], category: "Activities", description: "american football", unicode_version: "6.0", }, { emoji: "🏉", aliases: ["rugby_football"], tags: [], category: "Activities", description: "rugby football", unicode_version: "6.0", }, { emoji: "🎾", aliases: ["tennis"], tags: ["sports"], category: "Activities", description: "tennis", unicode_version: "6.0", }, { emoji: "🥏", aliases: ["flying_disc"], tags: [], category: "Activities", description: "flying disc", unicode_version: "11.0", }, { emoji: "🎳", aliases: ["bowling"], tags: [], category: "Activities", description: "bowling", unicode_version: "6.0", }, { emoji: "🏏", aliases: ["cricket_game"], tags: [], category: "Activities", description: "cricket game", unicode_version: "8.0", }, { emoji: "🏑", aliases: ["field_hockey"], tags: [], category: "Activities", description: "field hockey", unicode_version: "8.0", }, { emoji: "🏒", aliases: ["ice_hockey"], tags: [], category: "Activities", description: "ice hockey", unicode_version: "8.0", }, { emoji: "🥍", aliases: ["lacrosse"], tags: [], category: "Activities", description: "lacrosse", unicode_version: "11.0", }, { emoji: "🏓", aliases: ["ping_pong"], tags: [], category: "Activities", description: "ping pong", unicode_version: "8.0", }, { emoji: "🏸", aliases: ["badminton"], tags: [], category: "Activities", description: "badminton", unicode_version: "8.0", }, { emoji: "🥊", aliases: ["boxing_glove"], tags: [], category: "Activities", description: "boxing glove", unicode_version: "9.0", }, { emoji: "🥋", aliases: ["martial_arts_uniform"], tags: [], category: "Activities", description: "martial arts uniform", unicode_version: "9.0", }, { emoji: "🥅", aliases: ["goal_net"], tags: [], category: "Activities", description: "goal net", unicode_version: "9.0", }, { emoji: "⛳", aliases: ["golf"], tags: [], category: "Activities", description: "flag in hole", unicode_version: "5.2", }, { emoji: "⛸️", aliases: ["ice_skate"], tags: ["skating"], category: "Activities", description: "ice skate", unicode_version: "5.2", }, { emoji: "🎣", aliases: ["fishing_pole_and_fish"], tags: [], category: "Activities", description: "fishing pole", unicode_version: "6.0", }, { emoji: "🤿", aliases: ["diving_mask"], tags: [], category: "Activities", description: "diving mask", unicode_version: "12.0", }, { emoji: "🎽", aliases: ["running_shirt_with_sash"], tags: ["marathon"], category: "Activities", description: "running shirt", unicode_version: "6.0", }, { emoji: "🎿", aliases: ["ski"], tags: [], category: "Activities", description: "skis", unicode_version: "6.0", }, { emoji: "🛷", aliases: ["sled"], tags: [], category: "Activities", description: "sled", unicode_version: "11.0", }, { emoji: "🥌", aliases: ["curling_stone"], tags: [], category: "Activities", description: "curling stone", unicode_version: "11.0", }, { emoji: "🎯", aliases: ["dart"], tags: ["target"], category: "Activities", description: "bullseye", unicode_version: "6.0", }, { emoji: "🪀", aliases: ["yo_yo"], tags: [], category: "Activities", description: "yo-yo", unicode_version: "12.0", }, { emoji: "🪁", aliases: ["kite"], tags: [], category: "Activities", description: "kite", unicode_version: "12.0", }, { emoji: "🎱", aliases: ["8ball"], tags: ["pool", "billiards"], category: "Activities", description: "pool 8 ball", unicode_version: "6.0", }, { emoji: "🔮", aliases: ["crystal_ball"], tags: ["fortune"], category: "Activities", description: "crystal ball", unicode_version: "6.0", }, { emoji: "🪄", aliases: ["magic_wand"], tags: [], category: "Activities", description: "magic wand", unicode_version: "13.0", }, { emoji: "🧿", aliases: ["nazar_amulet"], tags: [], category: "Activities", description: "nazar amulet", unicode_version: "11.0", }, { emoji: "🎮", aliases: ["video_game"], tags: ["play", "controller", "console"], category: "Activities", description: "video game", unicode_version: "6.0", }, { emoji: "🕹️", aliases: ["joystick"], tags: [], category: "Activities", description: "joystick", unicode_version: "7.0", }, { emoji: "🎰", aliases: ["slot_machine"], tags: [], category: "Activities", description: "slot machine", unicode_version: "6.0", }, { emoji: "🎲", aliases: ["game_die"], tags: ["dice", "gambling"], category: "Activities", description: "game die", unicode_version: "6.0", }, { emoji: "🧩", aliases: ["jigsaw"], tags: [], category: "Activities", description: "puzzle piece", unicode_version: "11.0", }, { emoji: "🧸", aliases: ["teddy_bear"], tags: [], category: "Activities", description: "teddy bear", unicode_version: "11.0", }, { emoji: "🪅", aliases: ["pinata"], tags: [], category: "Activities", description: "piñata", unicode_version: "13.0", }, { emoji: "🪆", aliases: ["nesting_dolls"], tags: [], category: "Activities", description: "nesting dolls", unicode_version: "13.0", }, { emoji: "♠️", aliases: ["spades"], tags: [], category: "Activities", description: "spade suit", unicode_version: "", }, { emoji: "♥️", aliases: ["hearts"], tags: [], category: "Activities", description: "heart suit", unicode_version: "", }, { emoji: "♦️", aliases: ["diamonds"], tags: [], category: "Activities", description: "diamond suit", unicode_version: "", }, { emoji: "♣️", aliases: ["clubs"], tags: [], category: "Activities", description: "club suit", unicode_version: "", }, { emoji: "♟️", aliases: ["chess_pawn"], tags: [], category: "Activities", description: "chess pawn", unicode_version: "11.0", }, { emoji: "🃏", aliases: ["black_joker"], tags: [], category: "Activities", description: "joker", unicode_version: "6.0", }, { emoji: "🀄", aliases: ["mahjong"], tags: [], category: "Activities", description: "mahjong red dragon", unicode_version: "", }, { emoji: "🎴", aliases: ["flower_playing_cards"], tags: [], category: "Activities", description: "flower playing cards", unicode_version: "6.0", }, { emoji: "🎭", aliases: ["performing_arts"], tags: ["theater", "drama"], category: "Activities", description: "performing arts", unicode_version: "6.0", }, { emoji: "🖼️", aliases: ["framed_picture"], tags: [], category: "Activities", description: "framed picture", unicode_version: "7.0", }, { emoji: "🎨", aliases: ["art"], tags: ["design", "paint"], category: "Activities", description: "artist palette", unicode_version: "6.0", }, { emoji: "🧵", aliases: ["thread"], tags: [], category: "Activities", description: "thread", unicode_version: "11.0", }, { emoji: "🪡", aliases: ["sewing_needle"], tags: [], category: "Activities", description: "sewing needle", unicode_version: "13.0", }, { emoji: "🧶", aliases: ["yarn"], tags: [], category: "Activities", description: "yarn", unicode_version: "11.0", }, { emoji: "🪢", aliases: ["knot"], tags: [], category: "Activities", description: "knot", unicode_version: "13.0", }, { emoji: "👓", aliases: ["eyeglasses"], tags: ["glasses"], category: "Objects", description: "glasses", unicode_version: "6.0", }, { emoji: "🕶️", aliases: ["dark_sunglasses"], tags: [], category: "Objects", description: "sunglasses", unicode_version: "7.0", }, { emoji: "🥽", aliases: ["goggles"], tags: [], category: "Objects", description: "goggles", unicode_version: "11.0", }, { emoji: "🥼", aliases: ["lab_coat"], tags: [], category: "Objects", description: "lab coat", unicode_version: "11.0", }, { emoji: "🦺", aliases: ["safety_vest"], tags: [], category: "Objects", description: "safety vest", unicode_version: "12.0", }, { emoji: "👔", aliases: ["necktie"], tags: ["shirt", "formal"], category: "Objects", description: "necktie", unicode_version: "6.0", }, { emoji: "👕", aliases: ["shirt", "tshirt"], tags: [], category: "Objects", description: "t-shirt", unicode_version: "6.0", }, { emoji: "👖", aliases: ["jeans"], tags: ["pants"], category: "Objects", description: "jeans", unicode_version: "6.0", }, { emoji: "🧣", aliases: ["scarf"], tags: [], category: "Objects", description: "scarf", unicode_version: "11.0", }, { emoji: "🧤", aliases: ["gloves"], tags: [], category: "Objects", description: "gloves", unicode_version: "11.0", }, { emoji: "🧥", aliases: ["coat"], tags: [], category: "Objects", description: "coat", unicode_version: "11.0", }, { emoji: "🧦", aliases: ["socks"], tags: [], category: "Objects", description: "socks", unicode_version: "11.0", }, { emoji: "👗", aliases: ["dress"], tags: [], category: "Objects", description: "dress", unicode_version: "6.0", }, { emoji: "👘", aliases: ["kimono"], tags: [], category: "Objects", description: "kimono", unicode_version: "6.0", }, { emoji: "🥻", aliases: ["sari"], tags: [], category: "Objects", description: "sari", unicode_version: "12.0", }, { emoji: "🩱", aliases: ["one_piece_swimsuit"], tags: [], category: "Objects", description: "one-piece swimsuit", unicode_version: "12.0", }, { emoji: "🩲", aliases: ["swim_brief"], tags: [], category: "Objects", description: "briefs", unicode_version: "12.0", }, { emoji: "🩳", aliases: ["shorts"], tags: [], category: "Objects", description: "shorts", unicode_version: "12.0", }, { emoji: "👙", aliases: ["bikini"], tags: ["beach"], category: "Objects", description: "bikini", unicode_version: "6.0", }, { emoji: "👚", aliases: ["womans_clothes"], tags: [], category: "Objects", description: "woman’s clothes", unicode_version: "6.0", }, { emoji: "👛", aliases: ["purse"], tags: [], category: "Objects", description: "purse", unicode_version: "6.0", }, { emoji: "👜", aliases: ["handbag"], tags: ["bag"], category: "Objects", description: "handbag", unicode_version: "6.0", }, { emoji: "👝", aliases: ["pouch"], tags: ["bag"], category: "Objects", description: "clutch bag", unicode_version: "6.0", }, { emoji: "🛍️", aliases: ["shopping"], tags: ["bags"], category: "Objects", description: "shopping bags", unicode_version: "7.0", }, { emoji: "🎒", aliases: ["school_satchel"], tags: [], category: "Objects", description: "backpack", unicode_version: "6.0", }, { emoji: "🩴", aliases: ["thong_sandal"], tags: [], category: "Objects", description: "thong sandal", unicode_version: "13.0", }, { emoji: "👞", aliases: ["mans_shoe", "shoe"], tags: [], category: "Objects", description: "man’s shoe", unicode_version: "6.0", }, { emoji: "👟", aliases: ["athletic_shoe"], tags: ["sneaker", "sport", "running"], category: "Objects", description: "running shoe", unicode_version: "6.0", }, { emoji: "🥾", aliases: ["hiking_boot"], tags: [], category: "Objects", description: "hiking boot", unicode_version: "11.0", }, { emoji: "🥿", aliases: ["flat_shoe"], tags: [], category: "Objects", description: "flat shoe", unicode_version: "11.0", }, { emoji: "👠", aliases: ["high_heel"], tags: ["shoe"], category: "Objects", description: "high-heeled shoe", unicode_version: "6.0", }, { emoji: "👡", aliases: ["sandal"], tags: ["shoe"], category: "Objects", description: "woman’s sandal", unicode_version: "6.0", }, { emoji: "🩰", aliases: ["ballet_shoes"], tags: [], category: "Objects", description: "ballet shoes", unicode_version: "12.0", }, { emoji: "👢", aliases: ["boot"], tags: [], category: "Objects", description: "woman’s boot", unicode_version: "6.0", }, { emoji: "👑", aliases: ["crown"], tags: ["king", "queen", "royal"], category: "Objects", description: "crown", unicode_version: "6.0", }, { emoji: "👒", aliases: ["womans_hat"], tags: [], category: "Objects", description: "woman’s hat", unicode_version: "6.0", }, { emoji: "🎩", aliases: ["tophat"], tags: ["hat", "classy"], category: "Objects", description: "top hat", unicode_version: "6.0", }, { emoji: "🎓", aliases: ["mortar_board"], tags: ["education", "college", "university", "graduation"], category: "Objects", description: "graduation cap", unicode_version: "6.0", }, { emoji: "🧢", aliases: ["billed_cap"], tags: [], category: "Objects", description: "billed cap", unicode_version: "11.0", }, { emoji: "🪖", aliases: ["military_helmet"], tags: [], category: "Objects", description: "military helmet", unicode_version: "13.0", }, { emoji: "⛑️", aliases: ["rescue_worker_helmet"], tags: [], category: "Objects", description: "rescue worker’s helmet", unicode_version: "5.2", }, { emoji: "📿", aliases: ["prayer_beads"], tags: [], category: "Objects", description: "prayer beads", unicode_version: "8.0", }, { emoji: "💄", aliases: ["lipstick"], tags: ["makeup"], category: "Objects", description: "lipstick", unicode_version: "6.0", }, { emoji: "💍", aliases: ["ring"], tags: ["wedding", "marriage", "engaged"], category: "Objects", description: "ring", unicode_version: "6.0", }, { emoji: "💎", aliases: ["gem"], tags: ["diamond"], category: "Objects", description: "gem stone", unicode_version: "6.0", }, { emoji: "🔇", aliases: ["mute"], tags: ["sound", "volume"], category: "Objects", description: "muted speaker", unicode_version: "6.0", }, { emoji: "🔈", aliases: ["speaker"], tags: [], category: "Objects", description: "speaker low volume", unicode_version: "6.0", }, { emoji: "🔉", aliases: ["sound"], tags: ["volume"], category: "Objects", description: "speaker medium volume", unicode_version: "6.0", }, { emoji: "🔊", aliases: ["loud_sound"], tags: ["volume"], category: "Objects", description: "speaker high volume", unicode_version: "6.0", }, { emoji: "📢", aliases: ["loudspeaker"], tags: ["announcement"], category: "Objects", description: "loudspeaker", unicode_version: "6.0", }, { emoji: "📣", aliases: ["mega"], tags: [], category: "Objects", description: "megaphone", unicode_version: "6.0", }, { emoji: "📯", aliases: ["postal_horn"], tags: [], category: "Objects", description: "postal horn", unicode_version: "6.0", }, { emoji: "🔔", aliases: ["bell"], tags: ["sound", "notification"], category: "Objects", description: "bell", unicode_version: "6.0", }, { emoji: "🔕", aliases: ["no_bell"], tags: ["volume", "off"], category: "Objects", description: "bell with slash", unicode_version: "6.0", }, { emoji: "🎼", aliases: ["musical_score"], tags: [], category: "Objects", description: "musical score", unicode_version: "6.0", }, { emoji: "🎵", aliases: ["musical_note"], tags: [], category: "Objects", description: "musical note", unicode_version: "6.0", }, { emoji: "🎶", aliases: ["notes"], tags: ["music"], category: "Objects", description: "musical notes", unicode_version: "6.0", }, { emoji: "🎙️", aliases: ["studio_microphone"], tags: ["podcast"], category: "Objects", description: "studio microphone", unicode_version: "7.0", }, { emoji: "🎚️", aliases: ["level_slider"], tags: [], category: "Objects", description: "level slider", unicode_version: "7.0", }, { emoji: "🎛️", aliases: ["control_knobs"], tags: [], category: "Objects", description: "control knobs", unicode_version: "7.0", }, { emoji: "🎤", aliases: ["microphone"], tags: ["sing"], category: "Objects", description: "microphone", unicode_version: "6.0", }, { emoji: "🎧", aliases: ["headphones"], tags: ["music", "earphones"], category: "Objects", description: "headphone", unicode_version: "6.0", }, { emoji: "📻", aliases: ["radio"], tags: ["podcast"], category: "Objects", description: "radio", unicode_version: "6.0", }, { emoji: "🎷", aliases: ["saxophone"], tags: [], category: "Objects", description: "saxophone", unicode_version: "6.0", }, { emoji: "🪗", aliases: ["accordion"], tags: [], category: "Objects", description: "accordion", unicode_version: "13.0", }, { emoji: "🎸", aliases: ["guitar"], tags: ["rock"], category: "Objects", description: "guitar", unicode_version: "6.0", }, { emoji: "🎹", aliases: ["musical_keyboard"], tags: ["piano"], category: "Objects", description: "musical keyboard", unicode_version: "6.0", }, { emoji: "🎺", aliases: ["trumpet"], tags: [], category: "Objects", description: "trumpet", unicode_version: "6.0", }, { emoji: "🎻", aliases: ["violin"], tags: [], category: "Objects", description: "violin", unicode_version: "6.0", }, { emoji: "🪕", aliases: ["banjo"], tags: [], category: "Objects", description: "banjo", unicode_version: "12.0", }, { emoji: "🥁", aliases: ["drum"], tags: [], category: "Objects", description: "drum", unicode_version: "", }, { emoji: "🪘", aliases: ["long_drum"], tags: [], category: "Objects", description: "long drum", unicode_version: "13.0", }, { emoji: "📱", aliases: ["iphone"], tags: ["smartphone", "mobile"], category: "Objects", description: "mobile phone", unicode_version: "6.0", }, { emoji: "📲", aliases: ["calling"], tags: ["call", "incoming"], category: "Objects", description: "mobile phone with arrow", unicode_version: "6.0", }, { emoji: "☎️", aliases: ["phone", "telephone"], tags: [], category: "Objects", description: "telephone", unicode_version: "", }, { emoji: "📞", aliases: ["telephone_receiver"], tags: ["phone", "call"], category: "Objects", description: "telephone receiver", unicode_version: "6.0", }, { emoji: "📟", aliases: ["pager"], tags: [], category: "Objects", description: "pager", unicode_version: "6.0", }, { emoji: "📠", aliases: ["fax"], tags: [], category: "Objects", description: "fax machine", unicode_version: "6.0", }, { emoji: "🔋", aliases: ["battery"], tags: ["power"], category: "Objects", description: "battery", unicode_version: "6.0", }, { emoji: "🔌", aliases: ["electric_plug"], tags: [], category: "Objects", description: "electric plug", unicode_version: "6.0", }, { emoji: "💻", aliases: ["computer"], tags: ["desktop", "screen"], category: "Objects", description: "laptop", unicode_version: "6.0", }, { emoji: "🖥️", aliases: ["desktop_computer"], tags: [], category: "Objects", description: "desktop computer", unicode_version: "7.0", }, { emoji: "🖨️", aliases: ["printer"], tags: [], category: "Objects", description: "printer", unicode_version: "7.0", }, { emoji: "⌨️", aliases: ["keyboard"], tags: [], category: "Objects", description: "keyboard", unicode_version: "", }, { emoji: "🖱️", aliases: ["computer_mouse"], tags: [], category: "Objects", description: "computer mouse", unicode_version: "7.0", }, { emoji: "🖲️", aliases: ["trackball"], tags: [], category: "Objects", description: "trackball", unicode_version: "7.0", }, { emoji: "💽", aliases: ["minidisc"], tags: [], category: "Objects", description: "computer disk", unicode_version: "6.0", }, { emoji: "💾", aliases: ["floppy_disk"], tags: ["save"], category: "Objects", description: "floppy disk", unicode_version: "6.0", }, { emoji: "💿", aliases: ["cd"], tags: [], category: "Objects", description: "optical disk", unicode_version: "6.0", }, { emoji: "📀", aliases: ["dvd"], tags: [], category: "Objects", description: "dvd", unicode_version: "6.0", }, { emoji: "🧮", aliases: ["abacus"], tags: [], category: "Objects", description: "abacus", unicode_version: "11.0", }, { emoji: "🎥", aliases: ["movie_camera"], tags: ["film", "video"], category: "Objects", description: "movie camera", unicode_version: "6.0", }, { emoji: "🎞️", aliases: ["film_strip"], tags: [], category: "Objects", description: "film frames", unicode_version: "7.0", }, { emoji: "📽️", aliases: ["film_projector"], tags: [], category: "Objects", description: "film projector", unicode_version: "7.0", }, { emoji: "🎬", aliases: ["clapper"], tags: ["film"], category: "Objects", description: "clapper board", unicode_version: "6.0", }, { emoji: "📺", aliases: ["tv"], tags: [], category: "Objects", description: "television", unicode_version: "6.0", }, { emoji: "📷", aliases: ["camera"], tags: ["photo"], category: "Objects", description: "camera", unicode_version: "6.0", }, { emoji: "📸", aliases: ["camera_flash"], tags: ["photo"], category: "Objects", description: "camera with flash", unicode_version: "7.0", }, { emoji: "📹", aliases: ["video_camera"], tags: [], category: "Objects", description: "video camera", unicode_version: "6.0", }, { emoji: "📼", aliases: ["vhs"], tags: [], category: "Objects", description: "videocassette", unicode_version: "6.0", }, { emoji: "🔍", aliases: ["mag"], tags: ["search", "zoom"], category: "Objects", description: "magnifying glass tilted left", unicode_version: "6.0", }, { emoji: "🔎", aliases: ["mag_right"], tags: [], category: "Objects", description: "magnifying glass tilted right", unicode_version: "6.0", }, { emoji: "🕯️", aliases: ["candle"], tags: [], category: "Objects", description: "candle", unicode_version: "7.0", }, { emoji: "💡", aliases: ["bulb"], tags: ["idea", "light"], category: "Objects", description: "light bulb", unicode_version: "6.0", }, { emoji: "🔦", aliases: ["flashlight"], tags: [], category: "Objects", description: "flashlight", unicode_version: "6.0", }, { emoji: "🏮", aliases: ["izakaya_lantern", "lantern"], tags: [], category: "Objects", description: "red paper lantern", unicode_version: "6.0", }, { emoji: "🪔", aliases: ["diya_lamp"], tags: [], category: "Objects", description: "diya lamp", unicode_version: "12.0", }, { emoji: "📔", aliases: ["notebook_with_decorative_cover"], tags: [], category: "Objects", description: "notebook with decorative cover", unicode_version: "6.0", }, { emoji: "📕", aliases: ["closed_book"], tags: [], category: "Objects", description: "closed book", unicode_version: "6.0", }, { emoji: "📖", aliases: ["book", "open_book"], tags: [], category: "Objects", description: "open book", unicode_version: "6.0", }, { emoji: "📗", aliases: ["green_book"], tags: [], category: "Objects", description: "green book", unicode_version: "6.0", }, { emoji: "📘", aliases: ["blue_book"], tags: [], category: "Objects", description: "blue book", unicode_version: "6.0", }, { emoji: "📙", aliases: ["orange_book"], tags: [], category: "Objects", description: "orange book", unicode_version: "6.0", }, { emoji: "📚", aliases: ["books"], tags: ["library"], category: "Objects", description: "books", unicode_version: "6.0", }, { emoji: "📓", aliases: ["notebook"], tags: [], category: "Objects", description: "notebook", unicode_version: "6.0", }, { emoji: "📒", aliases: ["ledger"], tags: [], category: "Objects", description: "ledger", unicode_version: "6.0", }, { emoji: "📃", aliases: ["page_with_curl"], tags: [], category: "Objects", description: "page with curl", unicode_version: "6.0", }, { emoji: "📜", aliases: ["scroll"], tags: ["document"], category: "Objects", description: "scroll", unicode_version: "6.0", }, { emoji: "📄", aliases: ["page_facing_up"], tags: ["document"], category: "Objects", description: "page facing up", unicode_version: "6.0", }, { emoji: "📰", aliases: ["newspaper"], tags: ["press"], category: "Objects", description: "newspaper", unicode_version: "6.0", }, { emoji: "🗞️", aliases: ["newspaper_roll"], tags: ["press"], category: "Objects", description: "rolled-up newspaper", unicode_version: "7.0", }, { emoji: "📑", aliases: ["bookmark_tabs"], tags: [], category: "Objects", description: "bookmark tabs", unicode_version: "6.0", }, { emoji: "🔖", aliases: ["bookmark"], tags: [], category: "Objects", description: "bookmark", unicode_version: "6.0", }, { emoji: "🏷️", aliases: ["label"], tags: ["tag"], category: "Objects", description: "label", unicode_version: "7.0", }, { emoji: "💰", aliases: ["moneybag"], tags: ["dollar", "cream"], category: "Objects", description: "money bag", unicode_version: "6.0", }, { emoji: "🪙", aliases: ["coin"], tags: [], category: "Objects", description: "coin", unicode_version: "13.0", }, { emoji: "💴", aliases: ["yen"], tags: [], category: "Objects", description: "yen banknote", unicode_version: "6.0", }, { emoji: "💵", aliases: ["dollar"], tags: ["money"], category: "Objects", description: "dollar banknote", unicode_version: "6.0", }, { emoji: "💶", aliases: ["euro"], tags: [], category: "Objects", description: "euro banknote", unicode_version: "6.0", }, { emoji: "💷", aliases: ["pound"], tags: [], category: "Objects", description: "pound banknote", unicode_version: "6.0", }, { emoji: "💸", aliases: ["money_with_wings"], tags: ["dollar"], category: "Objects", description: "money with wings", unicode_version: "6.0", }, { emoji: "💳", aliases: ["credit_card"], tags: ["subscription"], category: "Objects", description: "credit card", unicode_version: "6.0", }, { emoji: "🧾", aliases: ["receipt"], tags: [], category: "Objects", description: "receipt", unicode_version: "11.0", }, { emoji: "💹", aliases: ["chart"], tags: [], category: "Objects", description: "chart increasing with yen", unicode_version: "6.0", }, { emoji: "✉️", aliases: ["envelope"], tags: ["letter", "email"], category: "Objects", description: "envelope", unicode_version: "", }, { emoji: "📧", aliases: ["email", "e-mail"], tags: [], category: "Objects", description: "e-mail", unicode_version: "6.0", }, { emoji: "📨", aliases: ["incoming_envelope"], tags: [], category: "Objects", description: "incoming envelope", unicode_version: "6.0", }, { emoji: "📩", aliases: ["envelope_with_arrow"], tags: [], category: "Objects", description: "envelope with arrow", unicode_version: "6.0", }, { emoji: "📤", aliases: ["outbox_tray"], tags: [], category: "Objects", description: "outbox tray", unicode_version: "6.0", }, { emoji: "📥", aliases: ["inbox_tray"], tags: [], category: "Objects", description: "inbox tray", unicode_version: "6.0", }, { emoji: "📦", aliases: ["package"], tags: ["shipping"], category: "Objects", description: "package", unicode_version: "6.0", }, { emoji: "📫", aliases: ["mailbox"], tags: [], category: "Objects", description: "closed mailbox with raised flag", unicode_version: "6.0", }, { emoji: "📪", aliases: ["mailbox_closed"], tags: [], category: "Objects", description: "closed mailbox with lowered flag", unicode_version: "6.0", }, { emoji: "📬", aliases: ["mailbox_with_mail"], tags: [], category: "Objects", description: "open mailbox with raised flag", unicode_version: "6.0", }, { emoji: "📭", aliases: ["mailbox_with_no_mail"], tags: [], category: "Objects", description: "open mailbox with lowered flag", unicode_version: "6.0", }, { emoji: "📮", aliases: ["postbox"], tags: [], category: "Objects", description: "postbox", unicode_version: "6.0", }, { emoji: "🗳️", aliases: ["ballot_box"], tags: [], category: "Objects", description: "ballot box with ballot", unicode_version: "7.0", }, { emoji: "✏️", aliases: ["pencil2"], tags: [], category: "Objects", description: "pencil", unicode_version: "", }, { emoji: "✒️", aliases: ["black_nib"], tags: [], category: "Objects", description: "black nib", unicode_version: "", }, { emoji: "🖋️", aliases: ["fountain_pen"], tags: [], category: "Objects", description: "fountain pen", unicode_version: "7.0", }, { emoji: "🖊️", aliases: ["pen"], tags: [], category: "Objects", description: "pen", unicode_version: "7.0", }, { emoji: "🖌️", aliases: ["paintbrush"], tags: [], category: "Objects", description: "paintbrush", unicode_version: "7.0", }, { emoji: "🖍️", aliases: ["crayon"], tags: [], category: "Objects", description: "crayon", unicode_version: "7.0", }, { emoji: "📝", aliases: ["memo", "pencil"], tags: ["document", "note"], category: "Objects", description: "memo", unicode_version: "6.0", }, { emoji: "💼", aliases: ["briefcase"], tags: ["business"], category: "Objects", description: "briefcase", unicode_version: "6.0", }, { emoji: "📁", aliases: ["file_folder"], tags: ["directory"], category: "Objects", description: "file folder", unicode_version: "6.0", }, { emoji: "📂", aliases: ["open_file_folder"], tags: [], category: "Objects", description: "open file folder", unicode_version: "6.0", }, { emoji: "🗂️", aliases: ["card_index_dividers"], tags: [], category: "Objects", description: "card index dividers", unicode_version: "7.0", }, { emoji: "📅", aliases: ["date"], tags: ["calendar", "schedule"], category: "Objects", description: "calendar", unicode_version: "6.0", }, { emoji: "📆", aliases: ["calendar"], tags: ["schedule"], category: "Objects", description: "tear-off calendar", unicode_version: "6.0", }, { emoji: "🗒️", aliases: ["spiral_notepad"], tags: [], category: "Objects", description: "spiral notepad", unicode_version: "7.0", }, { emoji: "🗓️", aliases: ["spiral_calendar"], tags: [], category: "Objects", description: "spiral calendar", unicode_version: "7.0", }, { emoji: "📇", aliases: ["card_index"], tags: [], category: "Objects", description: "card index", unicode_version: "6.0", }, { emoji: "📈", aliases: ["chart_with_upwards_trend"], tags: ["graph", "metrics"], category: "Objects", description: "chart increasing", unicode_version: "6.0", }, { emoji: "📉", aliases: ["chart_with_downwards_trend"], tags: ["graph", "metrics"], category: "Objects", description: "chart decreasing", unicode_version: "6.0", }, { emoji: "📊", aliases: ["bar_chart"], tags: ["stats", "metrics"], category: "Objects", description: "bar chart", unicode_version: "6.0", }, { emoji: "📋", aliases: ["clipboard"], tags: [], category: "Objects", description: "clipboard", unicode_version: "6.0", }, { emoji: "📌", aliases: ["pushpin"], tags: ["location"], category: "Objects", description: "pushpin", unicode_version: "6.0", }, { emoji: "📍", aliases: ["round_pushpin"], tags: ["location"], category: "Objects", description: "round pushpin", unicode_version: "6.0", }, { emoji: "📎", aliases: ["paperclip"], tags: [], category: "Objects", description: "paperclip", unicode_version: "6.0", }, { emoji: "🖇️", aliases: ["paperclips"], tags: [], category: "Objects", description: "linked paperclips", unicode_version: "7.0", }, { emoji: "📏", aliases: ["straight_ruler"], tags: [], category: "Objects", description: "straight ruler", unicode_version: "6.0", }, { emoji: "📐", aliases: ["triangular_ruler"], tags: [], category: "Objects", description: "triangular ruler", unicode_version: "6.0", }, { emoji: "✂️", aliases: ["scissors"], tags: ["cut"], category: "Objects", description: "scissors", unicode_version: "", }, { emoji: "🗃️", aliases: ["card_file_box"], tags: [], category: "Objects", description: "card file box", unicode_version: "7.0", }, { emoji: "🗄️", aliases: ["file_cabinet"], tags: [], category: "Objects", description: "file cabinet", unicode_version: "7.0", }, { emoji: "🗑️", aliases: ["wastebasket"], tags: ["trash"], category: "Objects", description: "wastebasket", unicode_version: "7.0", }, { emoji: "🔒", aliases: ["lock"], tags: ["security", "private"], category: "Objects", description: "locked", unicode_version: "6.0", }, { emoji: "🔓", aliases: ["unlock"], tags: ["security"], category: "Objects", description: "unlocked", unicode_version: "6.0", }, { emoji: "🔏", aliases: ["lock_with_ink_pen"], tags: [], category: "Objects", description: "locked with pen", unicode_version: "6.0", }, { emoji: "🔐", aliases: ["closed_lock_with_key"], tags: ["security"], category: "Objects", description: "locked with key", unicode_version: "6.0", }, { emoji: "🔑", aliases: ["key"], tags: ["lock", "password"], category: "Objects", description: "key", unicode_version: "6.0", }, { emoji: "🗝️", aliases: ["old_key"], tags: [], category: "Objects", description: "old key", unicode_version: "7.0", }, { emoji: "🔨", aliases: ["hammer"], tags: ["tool"], category: "Objects", description: "hammer", unicode_version: "6.0", }, { emoji: "🪓", aliases: ["axe"], tags: [], category: "Objects", description: "axe", unicode_version: "12.0", }, { emoji: "⛏️", aliases: ["pick"], tags: [], category: "Objects", description: "pick", unicode_version: "5.2", }, { emoji: "⚒️", aliases: ["hammer_and_pick"], tags: [], category: "Objects", description: "hammer and pick", unicode_version: "4.1", }, { emoji: "🛠️", aliases: ["hammer_and_wrench"], tags: [], category: "Objects", description: "hammer and wrench", unicode_version: "7.0", }, { emoji: "🗡️", aliases: ["dagger"], tags: [], category: "Objects", description: "dagger", unicode_version: "7.0", }, { emoji: "⚔️", aliases: ["crossed_swords"], tags: [], category: "Objects", description: "crossed swords", unicode_version: "4.1", }, { emoji: "🔫", aliases: ["gun"], tags: ["shoot", "weapon"], category: "Objects", description: "water pistol", unicode_version: "6.0", }, { emoji: "🪃", aliases: ["boomerang"], tags: [], category: "Objects", description: "boomerang", unicode_version: "13.0", }, { emoji: "🏹", aliases: ["bow_and_arrow"], tags: ["archery"], category: "Objects", description: "bow and arrow", unicode_version: "8.0", }, { emoji: "🛡️", aliases: ["shield"], tags: [], category: "Objects", description: "shield", unicode_version: "7.0", }, { emoji: "🪚", aliases: ["carpentry_saw"], tags: [], category: "Objects", description: "carpentry saw", unicode_version: "13.0", }, { emoji: "🔧", aliases: ["wrench"], tags: ["tool"], category: "Objects", description: "wrench", unicode_version: "6.0", }, { emoji: "🪛", aliases: ["screwdriver"], tags: [], category: "Objects", description: "screwdriver", unicode_version: "13.0", }, { emoji: "🔩", aliases: ["nut_and_bolt"], tags: [], category: "Objects", description: "nut and bolt", unicode_version: "6.0", }, { emoji: "⚙️", aliases: ["gear"], tags: [], category: "Objects", description: "gear", unicode_version: "4.1", }, { emoji: "🗜️", aliases: ["clamp"], tags: [], category: "Objects", description: "clamp", unicode_version: "7.0", }, { emoji: "⚖️", aliases: ["balance_scale"], tags: [], category: "Objects", description: "balance scale", unicode_version: "4.1", }, { emoji: "🦯", aliases: ["probing_cane"], tags: [], category: "Objects", description: "white cane", unicode_version: "12.0", }, { emoji: "🔗", aliases: ["link"], tags: [], category: "Objects", description: "link", unicode_version: "6.0", }, { emoji: "⛓️", aliases: ["chains"], tags: [], category: "Objects", description: "chains", unicode_version: "5.2", }, { emoji: "🪝", aliases: ["hook"], tags: [], category: "Objects", description: "hook", unicode_version: "13.0", }, { emoji: "🧰", aliases: ["toolbox"], tags: [], category: "Objects", description: "toolbox", unicode_version: "11.0", }, { emoji: "🧲", aliases: ["magnet"], tags: [], category: "Objects", description: "magnet", unicode_version: "11.0", }, { emoji: "🪜", aliases: ["ladder"], tags: [], category: "Objects", description: "ladder", unicode_version: "13.0", }, { emoji: "⚗️", aliases: ["alembic"], tags: [], category: "Objects", description: "alembic", unicode_version: "4.1", }, { emoji: "🧪", aliases: ["test_tube"], tags: [], category: "Objects", description: "test tube", unicode_version: "11.0", }, { emoji: "🧫", aliases: ["petri_dish"], tags: [], category: "Objects", description: "petri dish", unicode_version: "11.0", }, { emoji: "🧬", aliases: ["dna"], tags: [], category: "Objects", description: "dna", unicode_version: "11.0", }, { emoji: "🔬", aliases: ["microscope"], tags: ["science", "laboratory", "investigate"], category: "Objects", description: "microscope", unicode_version: "6.0", }, { emoji: "🔭", aliases: ["telescope"], tags: [], category: "Objects", description: "telescope", unicode_version: "6.0", }, { emoji: "📡", aliases: ["satellite"], tags: ["signal"], category: "Objects", description: "satellite antenna", unicode_version: "6.0", }, { emoji: "💉", aliases: ["syringe"], tags: ["health", "hospital", "needle"], category: "Objects", description: "syringe", unicode_version: "6.0", }, { emoji: "🩸", aliases: ["drop_of_blood"], tags: [], category: "Objects", description: "drop of blood", unicode_version: "12.0", }, { emoji: "💊", aliases: ["pill"], tags: ["health", "medicine"], category: "Objects", description: "pill", unicode_version: "6.0", }, { emoji: "🩹", aliases: ["adhesive_bandage"], tags: [], category: "Objects", description: "adhesive bandage", unicode_version: "12.0", }, { emoji: "🩺", aliases: ["stethoscope"], tags: [], category: "Objects", description: "stethoscope", unicode_version: "12.0", }, { emoji: "🚪", aliases: ["door"], tags: [], category: "Objects", description: "door", unicode_version: "6.0", }, { emoji: "🛗", aliases: ["elevator"], tags: [], category: "Objects", description: "elevator", unicode_version: "13.0", }, { emoji: "🪞", aliases: ["mirror"], tags: [], category: "Objects", description: "mirror", unicode_version: "13.0", }, { emoji: "🪟", aliases: ["window"], tags: [], category: "Objects", description: "window", unicode_version: "13.0", }, { emoji: "🛏️", aliases: ["bed"], tags: [], category: "Objects", description: "bed", unicode_version: "7.0", }, { emoji: "🛋️", aliases: ["couch_and_lamp"], tags: [], category: "Objects", description: "couch and lamp", unicode_version: "7.0", }, { emoji: "🪑", aliases: ["chair"], tags: [], category: "Objects", description: "chair", unicode_version: "12.0", }, { emoji: "🚽", aliases: ["toilet"], tags: ["wc"], category: "Objects", description: "toilet", unicode_version: "6.0", }, { emoji: "🪠", aliases: ["plunger"], tags: [], category: "Objects", description: "plunger", unicode_version: "13.0", }, { emoji: "🚿", aliases: ["shower"], tags: ["bath"], category: "Objects", description: "shower", unicode_version: "6.0", }, { emoji: "🛁", aliases: ["bathtub"], tags: [], category: "Objects", description: "bathtub", unicode_version: "6.0", }, { emoji: "🪤", aliases: ["mouse_trap"], tags: [], category: "Objects", description: "mouse trap", unicode_version: "13.0", }, { emoji: "🪒", aliases: ["razor"], tags: [], category: "Objects", description: "razor", unicode_version: "12.0", }, { emoji: "🧴", aliases: ["lotion_bottle"], tags: [], category: "Objects", description: "lotion bottle", unicode_version: "11.0", }, { emoji: "🧷", aliases: ["safety_pin"], tags: [], category: "Objects", description: "safety pin", unicode_version: "11.0", }, { emoji: "🧹", aliases: ["broom"], tags: [], category: "Objects", description: "broom", unicode_version: "11.0", }, { emoji: "🧺", aliases: ["basket"], tags: [], category: "Objects", description: "basket", unicode_version: "11.0", }, { emoji: "🧻", aliases: ["roll_of_paper"], tags: ["toilet"], category: "Objects", description: "roll of paper", unicode_version: "11.0", }, { emoji: "🪣", aliases: ["bucket"], tags: [], category: "Objects", description: "bucket", unicode_version: "13.0", }, { emoji: "🧼", aliases: ["soap"], tags: [], category: "Objects", description: "soap", unicode_version: "11.0", }, { emoji: "🪥", aliases: ["toothbrush"], tags: [], category: "Objects", description: "toothbrush", unicode_version: "13.0", }, { emoji: "🧽", aliases: ["sponge"], tags: [], category: "Objects", description: "sponge", unicode_version: "11.0", }, { emoji: "🧯", aliases: ["fire_extinguisher"], tags: [], category: "Objects", description: "fire extinguisher", unicode_version: "11.0", }, { emoji: "🛒", aliases: ["shopping_cart"], tags: [], category: "Objects", description: "shopping cart", unicode_version: "9.0", }, { emoji: "🚬", aliases: ["smoking"], tags: ["cigarette"], category: "Objects", description: "cigarette", unicode_version: "6.0", }, { emoji: "⚰️", aliases: ["coffin"], tags: ["funeral"], category: "Objects", description: "coffin", unicode_version: "4.1", }, { emoji: "🪦", aliases: ["headstone"], tags: [], category: "Objects", description: "headstone", unicode_version: "13.0", }, { emoji: "⚱️", aliases: ["funeral_urn"], tags: [], category: "Objects", description: "funeral urn", unicode_version: "4.1", }, { emoji: "🗿", aliases: ["moyai"], tags: ["stone"], category: "Objects", description: "moai", unicode_version: "6.0", }, { emoji: "🪧", aliases: ["placard"], tags: [], category: "Objects", description: "placard", unicode_version: "13.0", }, { emoji: "🏧", aliases: ["atm"], tags: [], category: "Symbols", description: "ATM sign", unicode_version: "6.0", }, { emoji: "🚮", aliases: ["put_litter_in_its_place"], tags: [], category: "Symbols", description: "litter in bin sign", unicode_version: "6.0", }, { emoji: "🚰", aliases: ["potable_water"], tags: [], category: "Symbols", description: "potable water", unicode_version: "6.0", }, { emoji: "♿", aliases: ["wheelchair"], tags: ["accessibility"], category: "Symbols", description: "wheelchair symbol", unicode_version: "4.1", }, { emoji: "🚹", aliases: ["mens"], tags: [], category: "Symbols", description: "men’s room", unicode_version: "6.0", }, { emoji: "🚺", aliases: ["womens"], tags: [], category: "Symbols", description: "women’s room", unicode_version: "6.0", }, { emoji: "🚻", aliases: ["restroom"], tags: ["toilet"], category: "Symbols", description: "restroom", unicode_version: "6.0", }, { emoji: "🚼", aliases: ["baby_symbol"], tags: [], category: "Symbols", description: "baby symbol", unicode_version: "6.0", }, { emoji: "🚾", aliases: ["wc"], tags: ["toilet", "restroom"], category: "Symbols", description: "water closet", unicode_version: "6.0", }, { emoji: "🛂", aliases: ["passport_control"], tags: [], category: "Symbols", description: "passport control", unicode_version: "6.0", }, { emoji: "🛃", aliases: ["customs"], tags: [], category: "Symbols", description: "customs", unicode_version: "6.0", }, { emoji: "🛄", aliases: ["baggage_claim"], tags: ["airport"], category: "Symbols", description: "baggage claim", unicode_version: "6.0", }, { emoji: "🛅", aliases: ["left_luggage"], tags: [], category: "Symbols", description: "left luggage", unicode_version: "6.0", }, { emoji: "⚠️", aliases: ["warning"], tags: ["wip"], category: "Symbols", description: "warning", unicode_version: "4.0", }, { emoji: "🚸", aliases: ["children_crossing"], tags: [], category: "Symbols", description: "children crossing", unicode_version: "6.0", }, { emoji: "⛔", aliases: ["no_entry"], tags: ["limit"], category: "Symbols", description: "no entry", unicode_version: "5.2", }, { emoji: "🚫", aliases: ["no_entry_sign"], tags: ["block", "forbidden"], category: "Symbols", description: "prohibited", unicode_version: "6.0", }, { emoji: "🚳", aliases: ["no_bicycles"], tags: [], category: "Symbols", description: "no bicycles", unicode_version: "6.0", }, { emoji: "🚭", aliases: ["no_smoking"], tags: [], category: "Symbols", description: "no smoking", unicode_version: "6.0", }, { emoji: "🚯", aliases: ["do_not_litter"], tags: [], category: "Symbols", description: "no littering", unicode_version: "6.0", }, { emoji: "🚱", aliases: ["non-potable_water"], tags: [], category: "Symbols", description: "non-potable water", unicode_version: "6.0", }, { emoji: "🚷", aliases: ["no_pedestrians"], tags: [], category: "Symbols", description: "no pedestrians", unicode_version: "6.0", }, { emoji: "📵", aliases: ["no_mobile_phones"], tags: [], category: "Symbols", description: "no mobile phones", unicode_version: "6.0", }, { emoji: "🔞", aliases: ["underage"], tags: [], category: "Symbols", description: "no one under eighteen", unicode_version: "6.0", }, { emoji: "☢️", aliases: ["radioactive"], tags: [], category: "Symbols", description: "radioactive", unicode_version: "", }, { emoji: "☣️", aliases: ["biohazard"], tags: [], category: "Symbols", description: "biohazard", unicode_version: "", }, { emoji: "⬆️", aliases: ["arrow_up"], tags: [], category: "Symbols", description: "up arrow", unicode_version: "4.0", }, { emoji: "↗️", aliases: ["arrow_upper_right"], tags: [], category: "Symbols", description: "up-right arrow", unicode_version: "", }, { emoji: "➡️", aliases: ["arrow_right"], tags: [], category: "Symbols", description: "right arrow", unicode_version: "", }, { emoji: "↘️", aliases: ["arrow_lower_right"], tags: [], category: "Symbols", description: "down-right arrow", unicode_version: "", }, { emoji: "⬇️", aliases: ["arrow_down"], tags: [], category: "Symbols", description: "down arrow", unicode_version: "4.0", }, { emoji: "↙️", aliases: ["arrow_lower_left"], tags: [], category: "Symbols", description: "down-left arrow", unicode_version: "", }, { emoji: "⬅️", aliases: ["arrow_left"], tags: [], category: "Symbols", description: "left arrow", unicode_version: "4.0", }, { emoji: "↖️", aliases: ["arrow_upper_left"], tags: [], category: "Symbols", description: "up-left arrow", unicode_version: "", }, { emoji: "↕️", aliases: ["arrow_up_down"], tags: [], category: "Symbols", description: "up-down arrow", unicode_version: "", }, { emoji: "↔️", aliases: ["left_right_arrow"], tags: [], category: "Symbols", description: "left-right arrow", unicode_version: "", }, { emoji: "↩️", aliases: ["leftwards_arrow_with_hook"], tags: ["return"], category: "Symbols", description: "right arrow curving left", unicode_version: "", }, { emoji: "↪️", aliases: ["arrow_right_hook"], tags: [], category: "Symbols", description: "left arrow curving right", unicode_version: "", }, { emoji: "⤴️", aliases: ["arrow_heading_up"], tags: [], category: "Symbols", description: "right arrow curving up", unicode_version: "", }, { emoji: "⤵️", aliases: ["arrow_heading_down"], tags: [], category: "Symbols", description: "right arrow curving down", unicode_version: "", }, { emoji: "🔃", aliases: ["arrows_clockwise"], tags: [], category: "Symbols", description: "clockwise vertical arrows", unicode_version: "6.0", }, { emoji: "🔄", aliases: ["arrows_counterclockwise"], tags: ["sync"], category: "Symbols", description: "counterclockwise arrows button", unicode_version: "6.0", }, { emoji: "🔙", aliases: ["back"], tags: [], category: "Symbols", description: "BACK arrow", unicode_version: "6.0", }, { emoji: "🔚", aliases: ["end"], tags: [], category: "Symbols", description: "END arrow", unicode_version: "6.0", }, { emoji: "🔛", aliases: ["on"], tags: [], category: "Symbols", description: "ON! arrow", unicode_version: "6.0", }, { emoji: "🔜", aliases: ["soon"], tags: [], category: "Symbols", description: "SOON arrow", unicode_version: "6.0", }, { emoji: "🔝", aliases: ["top"], tags: [], category: "Symbols", description: "TOP arrow", unicode_version: "6.0", }, { emoji: "🛐", aliases: ["place_of_worship"], tags: [], category: "Symbols", description: "place of worship", unicode_version: "8.0", }, { emoji: "⚛️", aliases: ["atom_symbol"], tags: [], category: "Symbols", description: "atom symbol", unicode_version: "4.1", }, { emoji: "🕉️", aliases: ["om"], tags: [], category: "Symbols", description: "om", unicode_version: "7.0", }, { emoji: "✡️", aliases: ["star_of_david"], tags: [], category: "Symbols", description: "star of David", unicode_version: "", }, { emoji: "☸️", aliases: ["wheel_of_dharma"], tags: [], category: "Symbols", description: "wheel of dharma", unicode_version: "", }, { emoji: "☯️", aliases: ["yin_yang"], tags: [], category: "Symbols", description: "yin yang", unicode_version: "", }, { emoji: "✝️", aliases: ["latin_cross"], tags: [], category: "Symbols", description: "latin cross", unicode_version: "", }, { emoji: "☦️", aliases: ["orthodox_cross"], tags: [], category: "Symbols", description: "orthodox cross", unicode_version: "", }, { emoji: "☪️", aliases: ["star_and_crescent"], tags: [], category: "Symbols", description: "star and crescent", unicode_version: "", }, { emoji: "☮️", aliases: ["peace_symbol"], tags: [], category: "Symbols", description: "peace symbol", unicode_version: "", }, { emoji: "🕎", aliases: ["menorah"], tags: [], category: "Symbols", description: "menorah", unicode_version: "8.0", }, { emoji: "🔯", aliases: ["six_pointed_star"], tags: [], category: "Symbols", description: "dotted six-pointed star", unicode_version: "6.0", }, { emoji: "♈", aliases: ["aries"], tags: [], category: "Symbols", description: "Aries", unicode_version: "", }, { emoji: "♉", aliases: ["taurus"], tags: [], category: "Symbols", description: "Taurus", unicode_version: "", }, { emoji: "♊", aliases: ["gemini"], tags: [], category: "Symbols", description: "Gemini", unicode_version: "", }, { emoji: "♋", aliases: ["cancer"], tags: [], category: "Symbols", description: "Cancer", unicode_version: "", }, { emoji: "♌", aliases: ["leo"], tags: [], category: "Symbols", description: "Leo", unicode_version: "", }, { emoji: "♍", aliases: ["virgo"], tags: [], category: "Symbols", description: "Virgo", unicode_version: "", }, { emoji: "♎", aliases: ["libra"], tags: [], category: "Symbols", description: "Libra", unicode_version: "", }, { emoji: "♏", aliases: ["scorpius"], tags: [], category: "Symbols", description: "Scorpio", unicode_version: "", }, { emoji: "♐", aliases: ["sagittarius"], tags: [], category: "Symbols", description: "Sagittarius", unicode_version: "", }, { emoji: "♑", aliases: ["capricorn"], tags: [], category: "Symbols", description: "Capricorn", unicode_version: "", }, { emoji: "♒", aliases: ["aquarius"], tags: [], category: "Symbols", description: "Aquarius", unicode_version: "", }, { emoji: "♓", aliases: ["pisces"], tags: [], category: "Symbols", description: "Pisces", unicode_version: "", }, { emoji: "⛎", aliases: ["ophiuchus"], tags: [], category: "Symbols", description: "Ophiuchus", unicode_version: "6.0", }, { emoji: "🔀", aliases: ["twisted_rightwards_arrows"], tags: ["shuffle"], category: "Symbols", description: "shuffle tracks button", unicode_version: "6.0", }, { emoji: "🔁", aliases: ["repeat"], tags: ["loop"], category: "Symbols", description: "repeat button", unicode_version: "6.0", }, { emoji: "🔂", aliases: ["repeat_one"], tags: [], category: "Symbols", description: "repeat single button", unicode_version: "6.0", }, { emoji: "▶️", aliases: ["arrow_forward"], tags: [], category: "Symbols", description: "play button", unicode_version: "", }, { emoji: "⏩", aliases: ["fast_forward"], tags: [], category: "Symbols", description: "fast-forward button", unicode_version: "6.0", }, { emoji: "⏭️", aliases: ["next_track_button"], tags: [], category: "Symbols", description: "next track button", unicode_version: "6.0", }, { emoji: "⏯️", aliases: ["play_or_pause_button"], tags: [], category: "Symbols", description: "play or pause button", unicode_version: "6.0", }, { emoji: "◀️", aliases: ["arrow_backward"], tags: [], category: "Symbols", description: "reverse button", unicode_version: "", }, { emoji: "⏪", aliases: ["rewind"], tags: [], category: "Symbols", description: "fast reverse button", unicode_version: "6.0", }, { emoji: "⏮️", aliases: ["previous_track_button"], tags: [], category: "Symbols", description: "last track button", unicode_version: "6.0", }, { emoji: "🔼", aliases: ["arrow_up_small"], tags: [], category: "Symbols", description: "upwards button", unicode_version: "6.0", }, { emoji: "⏫", aliases: ["arrow_double_up"], tags: [], category: "Symbols", description: "fast up button", unicode_version: "6.0", }, { emoji: "🔽", aliases: ["arrow_down_small"], tags: [], category: "Symbols", description: "downwards button", unicode_version: "6.0", }, { emoji: "⏬", aliases: ["arrow_double_down"], tags: [], category: "Symbols", description: "fast down button", unicode_version: "6.0", }, { emoji: "⏸️", aliases: ["pause_button"], tags: [], category: "Symbols", description: "pause button", unicode_version: "7.0", }, { emoji: "⏹️", aliases: ["stop_button"], tags: [], category: "Symbols", description: "stop button", unicode_version: "7.0", }, { emoji: "⏺️", aliases: ["record_button"], tags: [], category: "Symbols", description: "record button", unicode_version: "7.0", }, { emoji: "⏏️", aliases: ["eject_button"], tags: [], category: "Symbols", description: "eject button", unicode_version: "11.0", }, { emoji: "🎦", aliases: ["cinema"], tags: ["film", "movie"], category: "Symbols", description: "cinema", unicode_version: "6.0", }, { emoji: "🔅", aliases: ["low_brightness"], tags: [], category: "Symbols", description: "dim button", unicode_version: "6.0", }, { emoji: "🔆", aliases: ["high_brightness"], tags: [], category: "Symbols", description: "bright button", unicode_version: "6.0", }, { emoji: "📶", aliases: ["signal_strength"], tags: ["wifi"], category: "Symbols", description: "antenna bars", unicode_version: "6.0", }, { emoji: "📳", aliases: ["vibration_mode"], tags: [], category: "Symbols", description: "vibration mode", unicode_version: "6.0", }, { emoji: "📴", aliases: ["mobile_phone_off"], tags: ["mute", "off"], category: "Symbols", description: "mobile phone off", unicode_version: "6.0", }, { emoji: "♀️", aliases: ["female_sign"], tags: [], category: "Symbols", description: "female sign", unicode_version: "11.0", }, { emoji: "♂️", aliases: ["male_sign"], tags: [], category: "Symbols", description: "male sign", unicode_version: "11.0", }, { emoji: "⚧️", aliases: ["transgender_symbol"], tags: [], category: "Symbols", description: "transgender symbol", unicode_version: "13.0", }, { emoji: "✖️", aliases: ["heavy_multiplication_x"], tags: [], category: "Symbols", description: "multiply", unicode_version: "", }, { emoji: "➕", aliases: ["heavy_plus_sign"], tags: [], category: "Symbols", description: "plus", unicode_version: "6.0", }, { emoji: "➖", aliases: ["heavy_minus_sign"], tags: [], category: "Symbols", description: "minus", unicode_version: "6.0", }, { emoji: "➗", aliases: ["heavy_division_sign"], tags: [], category: "Symbols", description: "divide", unicode_version: "6.0", }, { emoji: "♾️", aliases: ["infinity"], tags: [], category: "Symbols", description: "infinity", unicode_version: "11.0", }, { emoji: "‼️", aliases: ["bangbang"], tags: [], category: "Symbols", description: "double exclamation mark", unicode_version: "", }, { emoji: "⁉️", aliases: ["interrobang"], tags: [], category: "Symbols", description: "exclamation question mark", unicode_version: "3.0", }, { emoji: "❓", aliases: ["question"], tags: ["confused"], category: "Symbols", description: "red question mark", unicode_version: "6.0", }, { emoji: "❔", aliases: ["grey_question"], tags: [], category: "Symbols", description: "white question mark", unicode_version: "6.0", }, { emoji: "❕", aliases: ["grey_exclamation"], tags: [], category: "Symbols", description: "white exclamation mark", unicode_version: "6.0", }, { emoji: "❗", aliases: ["exclamation", "heavy_exclamation_mark"], tags: ["bang"], category: "Symbols", description: "red exclamation mark", unicode_version: "5.2", }, { emoji: "〰️", aliases: ["wavy_dash"], tags: [], category: "Symbols", description: "wavy dash", unicode_version: "", }, { emoji: "💱", aliases: ["currency_exchange"], tags: [], category: "Symbols", description: "currency exchange", unicode_version: "6.0", }, { emoji: "💲", aliases: ["heavy_dollar_sign"], tags: [], category: "Symbols", description: "heavy dollar sign", unicode_version: "6.0", }, { emoji: "⚕️", aliases: ["medical_symbol"], tags: [], category: "Symbols", description: "medical symbol", unicode_version: "11.0", }, { emoji: "♻️", aliases: ["recycle"], tags: ["environment", "green"], category: "Symbols", description: "recycling symbol", unicode_version: "3.2", }, { emoji: "⚜️", aliases: ["fleur_de_lis"], tags: [], category: "Symbols", description: "fleur-de-lis", unicode_version: "4.1", }, { emoji: "🔱", aliases: ["trident"], tags: [], category: "Symbols", description: "trident emblem", unicode_version: "6.0", }, { emoji: "📛", aliases: ["name_badge"], tags: [], category: "Symbols", description: "name badge", unicode_version: "6.0", }, { emoji: "🔰", aliases: ["beginner"], tags: [], category: "Symbols", description: "Japanese symbol for beginner", unicode_version: "6.0", }, { emoji: "⭕", aliases: ["o"], tags: [], category: "Symbols", description: "hollow red circle", unicode_version: "5.2", }, { emoji: "✅", aliases: ["white_check_mark"], tags: [], category: "Symbols", description: "check mark button", unicode_version: "6.0", }, { emoji: "☑️", aliases: ["ballot_box_with_check"], tags: [], category: "Symbols", description: "check box with check", unicode_version: "", }, { emoji: "✔️", aliases: ["heavy_check_mark"], tags: [], category: "Symbols", description: "check mark", unicode_version: "", }, { emoji: "❌", aliases: ["x"], tags: [], category: "Symbols", description: "cross mark", unicode_version: "6.0", }, { emoji: "❎", aliases: ["negative_squared_cross_mark"], tags: [], category: "Symbols", description: "cross mark button", unicode_version: "6.0", }, { emoji: "➰", aliases: ["curly_loop"], tags: [], category: "Symbols", description: "curly loop", unicode_version: "6.0", }, { emoji: "➿", aliases: ["loop"], tags: [], category: "Symbols", description: "double curly loop", unicode_version: "6.0", }, { emoji: "〽️", aliases: ["part_alternation_mark"], tags: [], category: "Symbols", description: "part alternation mark", unicode_version: "3.2", }, { emoji: "✳️", aliases: ["eight_spoked_asterisk"], tags: [], category: "Symbols", description: "eight-spoked asterisk", unicode_version: "", }, { emoji: "✴️", aliases: ["eight_pointed_black_star"], tags: [], category: "Symbols", description: "eight-pointed star", unicode_version: "", }, { emoji: "❇️", aliases: ["sparkle"], tags: [], category: "Symbols", description: "sparkle", unicode_version: "", }, { emoji: "©️", aliases: ["copyright"], tags: [], category: "Symbols", description: "copyright", unicode_version: "", }, { emoji: "®️", aliases: ["registered"], tags: [], category: "Symbols", description: "registered", unicode_version: "", }, { emoji: "™️", aliases: ["tm"], tags: ["trademark"], category: "Symbols", description: "trade mark", unicode_version: "", }, { emoji: "#️⃣", aliases: ["hash"], tags: ["number"], category: "Symbols", description: "keycap: #", unicode_version: "", }, { emoji: "*️⃣", aliases: ["asterisk"], tags: [], category: "Symbols", description: "keycap: *", unicode_version: "", }, { emoji: "0️⃣", aliases: ["zero"], tags: [], category: "Symbols", description: "keycap: 0", unicode_version: "", }, { emoji: "1️⃣", aliases: ["one"], tags: [], category: "Symbols", description: "keycap: 1", unicode_version: "", }, { emoji: "2️⃣", aliases: ["two"], tags: [], category: "Symbols", description: "keycap: 2", unicode_version: "", }, { emoji: "3️⃣", aliases: ["three"], tags: [], category: "Symbols", description: "keycap: 3", unicode_version: "", }, { emoji: "4️⃣", aliases: ["four"], tags: [], category: "Symbols", description: "keycap: 4", unicode_version: "", }, { emoji: "5️⃣", aliases: ["five"], tags: [], category: "Symbols", description: "keycap: 5", unicode_version: "", }, { emoji: "6️⃣", aliases: ["six"], tags: [], category: "Symbols", description: "keycap: 6", unicode_version: "", }, { emoji: "7️⃣", aliases: ["seven"], tags: [], category: "Symbols", description: "keycap: 7", unicode_version: "", }, { emoji: "8️⃣", aliases: ["eight"], tags: [], category: "Symbols", description: "keycap: 8", unicode_version: "", }, { emoji: "9️⃣", aliases: ["nine"], tags: [], category: "Symbols", description: "keycap: 9", unicode_version: "", }, { emoji: "🔟", aliases: ["keycap_ten"], tags: [], category: "Symbols", description: "keycap: 10", unicode_version: "6.0", }, { emoji: "🔠", aliases: ["capital_abcd"], tags: ["letters"], category: "Symbols", description: "input latin uppercase", unicode_version: "6.0", }, { emoji: "🔡", aliases: ["abcd"], tags: [], category: "Symbols", description: "input latin lowercase", unicode_version: "6.0", }, { emoji: "🔢", aliases: ["1234"], tags: ["numbers"], category: "Symbols", description: "input numbers", unicode_version: "6.0", }, { emoji: "🔣", aliases: ["symbols"], tags: [], category: "Symbols", description: "input symbols", unicode_version: "6.0", }, { emoji: "🔤", aliases: ["abc"], tags: ["alphabet"], category: "Symbols", description: "input latin letters", unicode_version: "6.0", }, { emoji: "🅰️", aliases: ["a"], tags: [], category: "Symbols", description: "A button (blood type)", unicode_version: "6.0", }, { emoji: "🆎", aliases: ["ab"], tags: [], category: "Symbols", description: "AB button (blood type)", unicode_version: "6.0", }, { emoji: "🅱️", aliases: ["b"], tags: [], category: "Symbols", description: "B button (blood type)", unicode_version: "6.0", }, { emoji: "🆑", aliases: ["cl"], tags: [], category: "Symbols", description: "CL button", unicode_version: "6.0", }, { emoji: "🆒", aliases: ["cool"], tags: [], category: "Symbols", description: "COOL button", unicode_version: "6.0", }, { emoji: "🆓", aliases: ["free"], tags: [], category: "Symbols", description: "FREE button", unicode_version: "6.0", }, { emoji: "ℹ️", aliases: ["information_source"], tags: [], category: "Symbols", description: "information", unicode_version: "3.0", }, { emoji: "🆔", aliases: ["id"], tags: [], category: "Symbols", description: "ID button", unicode_version: "6.0", }, { emoji: "Ⓜ️", aliases: ["m"], tags: [], category: "Symbols", description: "circled M", unicode_version: "", }, { emoji: "🆕", aliases: ["new"], tags: ["fresh"], category: "Symbols", description: "NEW button", unicode_version: "6.0", }, { emoji: "🆖", aliases: ["ng"], tags: [], category: "Symbols", description: "NG button", unicode_version: "6.0", }, { emoji: "🅾️", aliases: ["o2"], tags: [], category: "Symbols", description: "O button (blood type)", unicode_version: "6.0", }, { emoji: "🆗", aliases: ["ok"], tags: ["yes"], category: "Symbols", description: "OK button", unicode_version: "6.0", }, { emoji: "🅿️", aliases: ["parking"], tags: [], category: "Symbols", description: "P button", unicode_version: "5.2", }, { emoji: "🆘", aliases: ["sos"], tags: ["help", "emergency"], category: "Symbols", description: "SOS button", unicode_version: "6.0", }, { emoji: "🆙", aliases: ["up"], tags: [], category: "Symbols", description: "UP! button", unicode_version: "6.0", }, { emoji: "🆚", aliases: ["vs"], tags: [], category: "Symbols", description: "VS button", unicode_version: "6.0", }, { emoji: "🈁", aliases: ["koko"], tags: [], category: "Symbols", description: "Japanese “here” button", unicode_version: "6.0", }, { emoji: "🈂️", aliases: ["sa"], tags: [], category: "Symbols", description: "Japanese “service charge” button", unicode_version: "6.0", }, { emoji: "🈷️", aliases: ["u6708"], tags: [], category: "Symbols", description: "Japanese “monthly amount” button", unicode_version: "6.0", }, { emoji: "🈶", aliases: ["u6709"], tags: [], category: "Symbols", description: "Japanese “not free of charge” button", unicode_version: "6.0", }, { emoji: "🈯", aliases: ["u6307"], tags: [], category: "Symbols", description: "Japanese “reserved” button", unicode_version: "", }, { emoji: "🉐", aliases: ["ideograph_advantage"], tags: [], category: "Symbols", description: "Japanese “bargain” button", unicode_version: "6.0", }, { emoji: "🈹", aliases: ["u5272"], tags: [], category: "Symbols", description: "Japanese “discount” button", unicode_version: "6.0", }, { emoji: "🈚", aliases: ["u7121"], tags: [], category: "Symbols", description: "Japanese “free of charge” button", unicode_version: "", }, { emoji: "🈲", aliases: ["u7981"], tags: [], category: "Symbols", description: "Japanese “prohibited” button", unicode_version: "6.0", }, { emoji: "🉑", aliases: ["accept"], tags: [], category: "Symbols", description: "Japanese “acceptable” button", unicode_version: "6.0", }, { emoji: "🈸", aliases: ["u7533"], tags: [], category: "Symbols", description: "Japanese “application” button", unicode_version: "6.0", }, { emoji: "🈴", aliases: ["u5408"], tags: [], category: "Symbols", description: "Japanese “passing grade” button", unicode_version: "6.0", }, { emoji: "🈳", aliases: ["u7a7a"], tags: [], category: "Symbols", description: "Japanese “vacancy” button", unicode_version: "6.0", }, { emoji: "㊗️", aliases: ["congratulations"], tags: [], category: "Symbols", description: "Japanese “congratulations” button", unicode_version: "", }, { emoji: "㊙️", aliases: ["secret"], tags: [], category: "Symbols", description: "Japanese “secret” button", unicode_version: "", }, { emoji: "🈺", aliases: ["u55b6"], tags: [], category: "Symbols", description: "Japanese “open for business” button", unicode_version: "6.0", }, { emoji: "🈵", aliases: ["u6e80"], tags: [], category: "Symbols", description: "Japanese “no vacancy” button", unicode_version: "6.0", }, { emoji: "🔴", aliases: ["red_circle"], tags: [], category: "Symbols", description: "red circle", unicode_version: "6.0", }, { emoji: "🟠", aliases: ["orange_circle"], tags: [], category: "Symbols", description: "orange circle", unicode_version: "12.0", }, { emoji: "🟡", aliases: ["yellow_circle"], tags: [], category: "Symbols", description: "yellow circle", unicode_version: "12.0", }, { emoji: "🟢", aliases: ["green_circle"], tags: [], category: "Symbols", description: "green circle", unicode_version: "12.0", }, { emoji: "🔵", aliases: ["large_blue_circle"], tags: [], category: "Symbols", description: "blue circle", unicode_version: "6.0", }, { emoji: "🟣", aliases: ["purple_circle"], tags: [], category: "Symbols", description: "purple circle", unicode_version: "12.0", }, { emoji: "🟤", aliases: ["brown_circle"], tags: [], category: "Symbols", description: "brown circle", unicode_version: "12.0", }, { emoji: "⚫", aliases: ["black_circle"], tags: [], category: "Symbols", description: "black circle", unicode_version: "4.1", }, { emoji: "⚪", aliases: ["white_circle"], tags: [], category: "Symbols", description: "white circle", unicode_version: "4.1", }, { emoji: "🟥", aliases: ["red_square"], tags: [], category: "Symbols", description: "red square", unicode_version: "12.0", }, { emoji: "🟧", aliases: ["orange_square"], tags: [], category: "Symbols", description: "orange square", unicode_version: "12.0", }, { emoji: "🟨", aliases: ["yellow_square"], tags: [], category: "Symbols", description: "yellow square", unicode_version: "12.0", }, { emoji: "🟩", aliases: ["green_square"], tags: [], category: "Symbols", description: "green square", unicode_version: "12.0", }, { emoji: "🟦", aliases: ["blue_square"], tags: [], category: "Symbols", description: "blue square", unicode_version: "12.0", }, { emoji: "🟪", aliases: ["purple_square"], tags: [], category: "Symbols", description: "purple square", unicode_version: "12.0", }, { emoji: "🟫", aliases: ["brown_square"], tags: [], category: "Symbols", description: "brown square", unicode_version: "12.0", }, { emoji: "⬛", aliases: ["black_large_square"], tags: [], category: "Symbols", description: "black large square", unicode_version: "5.1", }, { emoji: "⬜", aliases: ["white_large_square"], tags: [], category: "Symbols", description: "white large square", unicode_version: "5.1", }, { emoji: "◼️", aliases: ["black_medium_square"], tags: [], category: "Symbols", description: "black medium square", unicode_version: "3.2", }, { emoji: "◻️", aliases: ["white_medium_square"], tags: [], category: "Symbols", description: "white medium square", unicode_version: "3.2", }, { emoji: "◾", aliases: ["black_medium_small_square"], tags: [], category: "Symbols", description: "black medium-small square", unicode_version: "3.2", }, { emoji: "◽", aliases: ["white_medium_small_square"], tags: [], category: "Symbols", description: "white medium-small square", unicode_version: "3.2", }, { emoji: "▪️", aliases: ["black_small_square"], tags: [], category: "Symbols", description: "black small square", unicode_version: "", }, { emoji: "▫️", aliases: ["white_small_square"], tags: [], category: "Symbols", description: "white small square", unicode_version: "", }, { emoji: "🔶", aliases: ["large_orange_diamond"], tags: [], category: "Symbols", description: "large orange diamond", unicode_version: "6.0", }, { emoji: "🔷", aliases: ["large_blue_diamond"], tags: [], category: "Symbols", description: "large blue diamond", unicode_version: "6.0", }, { emoji: "🔸", aliases: ["small_orange_diamond"], tags: [], category: "Symbols", description: "small orange diamond", unicode_version: "6.0", }, { emoji: "🔹", aliases: ["small_blue_diamond"], tags: [], category: "Symbols", description: "small blue diamond", unicode_version: "6.0", }, { emoji: "🔺", aliases: ["small_red_triangle"], tags: [], category: "Symbols", description: "red triangle pointed up", unicode_version: "6.0", }, { emoji: "🔻", aliases: ["small_red_triangle_down"], tags: [], category: "Symbols", description: "red triangle pointed down", unicode_version: "6.0", }, { emoji: "💠", aliases: ["diamond_shape_with_a_dot_inside"], tags: [], category: "Symbols", description: "diamond with a dot", unicode_version: "6.0", }, { emoji: "🔘", aliases: ["radio_button"], tags: [], category: "Symbols", description: "radio button", unicode_version: "6.0", }, { emoji: "🔳", aliases: ["white_square_button"], tags: [], category: "Symbols", description: "white square button", unicode_version: "6.0", }, { emoji: "🔲", aliases: ["black_square_button"], tags: [], category: "Symbols", description: "black square button", unicode_version: "6.0", }, { emoji: "🏁", aliases: ["checkered_flag"], tags: ["milestone", "finish"], category: "Flags", description: "chequered flag", unicode_version: "6.0", }, { emoji: "🚩", aliases: ["triangular_flag_on_post"], tags: [], category: "Flags", description: "triangular flag", unicode_version: "6.0", }, { emoji: "🎌", aliases: ["crossed_flags"], tags: [], category: "Flags", description: "crossed flags", unicode_version: "6.0", }, { emoji: "🏴", aliases: ["black_flag"], tags: [], category: "Flags", description: "black flag", unicode_version: "7.0", }, { emoji: "🏳️", aliases: ["white_flag"], tags: [], category: "Flags", description: "white flag", unicode_version: "7.0", }, { emoji: "🏳️‍🌈", aliases: ["rainbow_flag"], tags: ["pride"], category: "Flags", description: "rainbow flag", unicode_version: "6.0", }, { emoji: "🏳️‍⚧️", aliases: ["transgender_flag"], tags: [], category: "Flags", description: "transgender flag", unicode_version: "13.0", }, { emoji: "🏴‍☠️", aliases: ["pirate_flag"], tags: [], category: "Flags", description: "pirate flag", unicode_version: "11.0", }, { emoji: "🇦🇨", aliases: ["ascension_island"], tags: [], category: "Flags", description: "flag: Ascension Island", unicode_version: "11.0", }, { emoji: "🇦🇩", aliases: ["andorra"], tags: [], category: "Flags", description: "flag: Andorra", unicode_version: "6.0", }, { emoji: "🇦🇪", aliases: ["united_arab_emirates"], tags: [], category: "Flags", description: "flag: United Arab Emirates", unicode_version: "6.0", }, { emoji: "🇦🇫", aliases: ["afghanistan"], tags: [], category: "Flags", description: "flag: Afghanistan", unicode_version: "6.0", }, { emoji: "🇦🇬", aliases: ["antigua_barbuda"], tags: [], category: "Flags", description: "flag: Antigua & Barbuda", unicode_version: "6.0", }, { emoji: "🇦🇮", aliases: ["anguilla"], tags: [], category: "Flags", description: "flag: Anguilla", unicode_version: "6.0", }, { emoji: "🇦🇱", aliases: ["albania"], tags: [], category: "Flags", description: "flag: Albania", unicode_version: "6.0", }, { emoji: "🇦🇲", aliases: ["armenia"], tags: [], category: "Flags", description: "flag: Armenia", unicode_version: "6.0", }, { emoji: "🇦🇴", aliases: ["angola"], tags: [], category: "Flags", description: "flag: Angola", unicode_version: "6.0", }, { emoji: "🇦🇶", aliases: ["antarctica"], tags: [], category: "Flags", description: "flag: Antarctica", unicode_version: "6.0", }, { emoji: "🇦🇷", aliases: ["argentina"], tags: [], category: "Flags", description: "flag: Argentina", unicode_version: "6.0", }, { emoji: "🇦🇸", aliases: ["american_samoa"], tags: [], category: "Flags", description: "flag: American Samoa", unicode_version: "6.0", }, { emoji: "🇦🇹", aliases: ["austria"], tags: [], category: "Flags", description: "flag: Austria", unicode_version: "6.0", }, { emoji: "🇦🇺", aliases: ["australia"], tags: [], category: "Flags", description: "flag: Australia", unicode_version: "6.0", }, { emoji: "🇦🇼", aliases: ["aruba"], tags: [], category: "Flags", description: "flag: Aruba", unicode_version: "6.0", }, { emoji: "🇦🇽", aliases: ["aland_islands"], tags: [], category: "Flags", description: "flag: Åland Islands", unicode_version: "6.0", }, { emoji: "🇦🇿", aliases: ["azerbaijan"], tags: [], category: "Flags", description: "flag: Azerbaijan", unicode_version: "6.0", }, { emoji: "🇧🇦", aliases: ["bosnia_herzegovina"], tags: [], category: "Flags", description: "flag: Bosnia & Herzegovina", unicode_version: "6.0", }, { emoji: "🇧🇧", aliases: ["barbados"], tags: [], category: "Flags", description: "flag: Barbados", unicode_version: "6.0", }, { emoji: "🇧🇩", aliases: ["bangladesh"], tags: [], category: "Flags", description: "flag: Bangladesh", unicode_version: "6.0", }, { emoji: "🇧🇪", aliases: ["belgium"], tags: [], category: "Flags", description: "flag: Belgium", unicode_version: "6.0", }, { emoji: "🇧🇫", aliases: ["burkina_faso"], tags: [], category: "Flags", description: "flag: Burkina Faso", unicode_version: "6.0", }, { emoji: "🇧🇬", aliases: ["bulgaria"], tags: [], category: "Flags", description: "flag: Bulgaria", unicode_version: "6.0", }, { emoji: "🇧🇭", aliases: ["bahrain"], tags: [], category: "Flags", description: "flag: Bahrain", unicode_version: "6.0", }, { emoji: "🇧🇮", aliases: ["burundi"], tags: [], category: "Flags", description: "flag: Burundi", unicode_version: "6.0", }, { emoji: "🇧🇯", aliases: ["benin"], tags: [], category: "Flags", description: "flag: Benin", unicode_version: "6.0", }, { emoji: "🇧🇱", aliases: ["st_barthelemy"], tags: [], category: "Flags", description: "flag: St. Barthélemy", unicode_version: "6.0", }, { emoji: "🇧🇲", aliases: ["bermuda"], tags: [], category: "Flags", description: "flag: Bermuda", unicode_version: "6.0", }, { emoji: "🇧🇳", aliases: ["brunei"], tags: [], category: "Flags", description: "flag: Brunei", unicode_version: "6.0", }, { emoji: "🇧🇴", aliases: ["bolivia"], tags: [], category: "Flags", description: "flag: Bolivia", unicode_version: "6.0", }, { emoji: "🇧🇶", aliases: ["caribbean_netherlands"], tags: [], category: "Flags", description: "flag: Caribbean Netherlands", unicode_version: "6.0", }, { emoji: "🇧🇷", aliases: ["brazil"], tags: [], category: "Flags", description: "flag: Brazil", unicode_version: "6.0", }, { emoji: "🇧🇸", aliases: ["bahamas"], tags: [], category: "Flags", description: "flag: Bahamas", unicode_version: "6.0", }, { emoji: "🇧🇹", aliases: ["bhutan"], tags: [], category: "Flags", description: "flag: Bhutan", unicode_version: "6.0", }, { emoji: "🇧🇻", aliases: ["bouvet_island"], tags: [], category: "Flags", description: "flag: Bouvet Island", unicode_version: "11.0", }, { emoji: "🇧🇼", aliases: ["botswana"], tags: [], category: "Flags", description: "flag: Botswana", unicode_version: "6.0", }, { emoji: "🇧🇾", aliases: ["belarus"], tags: [], category: "Flags", description: "flag: Belarus", unicode_version: "6.0", }, { emoji: "🇧🇿", aliases: ["belize"], tags: [], category: "Flags", description: "flag: Belize", unicode_version: "6.0", }, { emoji: "🇨🇦", aliases: ["canada"], tags: [], category: "Flags", description: "flag: Canada", unicode_version: "6.0", }, { emoji: "🇨🇨", aliases: ["cocos_islands"], tags: ["keeling"], category: "Flags", description: "flag: Cocos (Keeling) Islands", unicode_version: "6.0", }, { emoji: "🇨🇩", aliases: ["congo_kinshasa"], tags: [], category: "Flags", description: "flag: Congo - Kinshasa", unicode_version: "6.0", }, { emoji: "🇨🇫", aliases: ["central_african_republic"], tags: [], category: "Flags", description: "flag: Central African Republic", unicode_version: "6.0", }, { emoji: "🇨🇬", aliases: ["congo_brazzaville"], tags: [], category: "Flags", description: "flag: Congo - Brazzaville", unicode_version: "6.0", }, { emoji: "🇨🇭", aliases: ["switzerland"], tags: [], category: "Flags", description: "flag: Switzerland", unicode_version: "6.0", }, { emoji: "🇨🇮", aliases: ["cote_divoire"], tags: ["ivory"], category: "Flags", description: "flag: Côte d’Ivoire", unicode_version: "6.0", }, { emoji: "🇨🇰", aliases: ["cook_islands"], tags: [], category: "Flags", description: "flag: Cook Islands", unicode_version: "6.0", }, { emoji: "🇨🇱", aliases: ["chile"], tags: [], category: "Flags", description: "flag: Chile", unicode_version: "6.0", }, { emoji: "🇨🇲", aliases: ["cameroon"], tags: [], category: "Flags", description: "flag: Cameroon", unicode_version: "6.0", }, { emoji: "🇨🇳", aliases: ["cn"], tags: ["china"], category: "Flags", description: "flag: China", unicode_version: "6.0", }, { emoji: "🇨🇴", aliases: ["colombia"], tags: [], category: "Flags", description: "flag: Colombia", unicode_version: "6.0", }, { emoji: "🇨🇵", aliases: ["clipperton_island"], tags: [], category: "Flags", description: "flag: Clipperton Island", unicode_version: "11.0", }, { emoji: "🇨🇷", aliases: ["costa_rica"], tags: [], category: "Flags", description: "flag: Costa Rica", unicode_version: "6.0", }, { emoji: "🇨🇺", aliases: ["cuba"], tags: [], category: "Flags", description: "flag: Cuba", unicode_version: "6.0", }, { emoji: "🇨🇻", aliases: ["cape_verde"], tags: [], category: "Flags", description: "flag: Cape Verde", unicode_version: "6.0", }, { emoji: "🇨🇼", aliases: ["curacao"], tags: [], category: "Flags", description: "flag: Curaçao", unicode_version: "6.0", }, { emoji: "🇨🇽", aliases: ["christmas_island"], tags: [], category: "Flags", description: "flag: Christmas Island", unicode_version: "6.0", }, { emoji: "🇨🇾", aliases: ["cyprus"], tags: [], category: "Flags", description: "flag: Cyprus", unicode_version: "6.0", }, { emoji: "🇨🇿", aliases: ["czech_republic"], tags: [], category: "Flags", description: "flag: Czechia", unicode_version: "6.0", }, { emoji: "🇩🇪", aliases: ["de"], tags: ["flag", "germany"], category: "Flags", description: "flag: Germany", unicode_version: "6.0", }, { emoji: "🇩🇬", aliases: ["diego_garcia"], tags: [], category: "Flags", description: "flag: Diego Garcia", unicode_version: "11.0", }, { emoji: "🇩🇯", aliases: ["djibouti"], tags: [], category: "Flags", description: "flag: Djibouti", unicode_version: "6.0", }, { emoji: "🇩🇰", aliases: ["denmark"], tags: [], category: "Flags", description: "flag: Denmark", unicode_version: "6.0", }, { emoji: "🇩🇲", aliases: ["dominica"], tags: [], category: "Flags", description: "flag: Dominica", unicode_version: "6.0", }, { emoji: "🇩🇴", aliases: ["dominican_republic"], tags: [], category: "Flags", description: "flag: Dominican Republic", unicode_version: "6.0", }, { emoji: "🇩🇿", aliases: ["algeria"], tags: [], category: "Flags", description: "flag: Algeria", unicode_version: "6.0", }, { emoji: "🇪🇦", aliases: ["ceuta_melilla"], tags: [], category: "Flags", description: "flag: Ceuta & Melilla", unicode_version: "11.0", }, { emoji: "🇪🇨", aliases: ["ecuador"], tags: [], category: "Flags", description: "flag: Ecuador", unicode_version: "6.0", }, { emoji: "🇪🇪", aliases: ["estonia"], tags: [], category: "Flags", description: "flag: Estonia", unicode_version: "6.0", }, { emoji: "🇪🇬", aliases: ["egypt"], tags: [], category: "Flags", description: "flag: Egypt", unicode_version: "6.0", }, { emoji: "🇪🇭", aliases: ["western_sahara"], tags: [], category: "Flags", description: "flag: Western Sahara", unicode_version: "6.0", }, { emoji: "🇪🇷", aliases: ["eritrea"], tags: [], category: "Flags", description: "flag: Eritrea", unicode_version: "6.0", }, { emoji: "🇪🇸", aliases: ["es"], tags: ["spain"], category: "Flags", description: "flag: Spain", unicode_version: "6.0", }, { emoji: "🇪🇹", aliases: ["ethiopia"], tags: [], category: "Flags", description: "flag: Ethiopia", unicode_version: "6.0", }, { emoji: "🇪🇺", aliases: ["eu", "european_union"], tags: [], category: "Flags", description: "flag: European Union", unicode_version: "6.0", }, { emoji: "🇫🇮", aliases: ["finland"], tags: [], category: "Flags", description: "flag: Finland", unicode_version: "6.0", }, { emoji: "🇫🇯", aliases: ["fiji"], tags: [], category: "Flags", description: "flag: Fiji", unicode_version: "6.0", }, { emoji: "🇫🇰", aliases: ["falkland_islands"], tags: [], category: "Flags", description: "flag: Falkland Islands", unicode_version: "6.0", }, { emoji: "🇫🇲", aliases: ["micronesia"], tags: [], category: "Flags", description: "flag: Micronesia", unicode_version: "6.0", }, { emoji: "🇫🇴", aliases: ["faroe_islands"], tags: [], category: "Flags", description: "flag: Faroe Islands", unicode_version: "6.0", }, { emoji: "🇫🇷", aliases: ["fr"], tags: ["france", "french"], category: "Flags", description: "flag: France", unicode_version: "6.0", }, { emoji: "🇬🇦", aliases: ["gabon"], tags: [], category: "Flags", description: "flag: Gabon", unicode_version: "6.0", }, { emoji: "🇬🇧", aliases: ["gb", "uk"], tags: ["flag", "british"], category: "Flags", description: "flag: United Kingdom", unicode_version: "6.0", }, { emoji: "🇬🇩", aliases: ["grenada"], tags: [], category: "Flags", description: "flag: Grenada", unicode_version: "6.0", }, { emoji: "🇬🇪", aliases: ["georgia"], tags: [], category: "Flags", description: "flag: Georgia", unicode_version: "6.0", }, { emoji: "🇬🇫", aliases: ["french_guiana"], tags: [], category: "Flags", description: "flag: French Guiana", unicode_version: "6.0", }, { emoji: "🇬🇬", aliases: ["guernsey"], tags: [], category: "Flags", description: "flag: Guernsey", unicode_version: "6.0", }, { emoji: "🇬🇭", aliases: ["ghana"], tags: [], category: "Flags", description: "flag: Ghana", unicode_version: "6.0", }, { emoji: "🇬🇮", aliases: ["gibraltar"], tags: [], category: "Flags", description: "flag: Gibraltar", unicode_version: "6.0", }, { emoji: "🇬🇱", aliases: ["greenland"], tags: [], category: "Flags", description: "flag: Greenland", unicode_version: "6.0", }, { emoji: "🇬🇲", aliases: ["gambia"], tags: [], category: "Flags", description: "flag: Gambia", unicode_version: "6.0", }, { emoji: "🇬🇳", aliases: ["guinea"], tags: [], category: "Flags", description: "flag: Guinea", unicode_version: "6.0", }, { emoji: "🇬🇵", aliases: ["guadeloupe"], tags: [], category: "Flags", description: "flag: Guadeloupe", unicode_version: "6.0", }, { emoji: "🇬🇶", aliases: ["equatorial_guinea"], tags: [], category: "Flags", description: "flag: Equatorial Guinea", unicode_version: "6.0", }, { emoji: "🇬🇷", aliases: ["greece"], tags: [], category: "Flags", description: "flag: Greece", unicode_version: "6.0", }, { emoji: "🇬🇸", aliases: ["south_georgia_south_sandwich_islands"], tags: [], category: "Flags", description: "flag: South Georgia & South Sandwich Islands", unicode_version: "6.0", }, { emoji: "🇬🇹", aliases: ["guatemala"], tags: [], category: "Flags", description: "flag: Guatemala", unicode_version: "6.0", }, { emoji: "🇬🇺", aliases: ["guam"], tags: [], category: "Flags", description: "flag: Guam", unicode_version: "6.0", }, { emoji: "🇬🇼", aliases: ["guinea_bissau"], tags: [], category: "Flags", description: "flag: Guinea-Bissau", unicode_version: "6.0", }, { emoji: "🇬🇾", aliases: ["guyana"], tags: [], category: "Flags", description: "flag: Guyana", unicode_version: "6.0", }, { emoji: "🇭🇰", aliases: ["hong_kong"], tags: [], category: "Flags", description: "flag: Hong Kong SAR China", unicode_version: "6.0", }, { emoji: "🇭🇲", aliases: ["heard_mcdonald_islands"], tags: [], category: "Flags", description: "flag: Heard & McDonald Islands", unicode_version: "11.0", }, { emoji: "🇭🇳", aliases: ["honduras"], tags: [], category: "Flags", description: "flag: Honduras", unicode_version: "6.0", }, { emoji: "🇭🇷", aliases: ["croatia"], tags: [], category: "Flags", description: "flag: Croatia", unicode_version: "6.0", }, { emoji: "🇭🇹", aliases: ["haiti"], tags: [], category: "Flags", description: "flag: Haiti", unicode_version: "6.0", }, { emoji: "🇭🇺", aliases: ["hungary"], tags: [], category: "Flags", description: "flag: Hungary", unicode_version: "6.0", }, { emoji: "🇮🇨", aliases: ["canary_islands"], tags: [], category: "Flags", description: "flag: Canary Islands", unicode_version: "6.0", }, { emoji: "🇮🇩", aliases: ["indonesia"], tags: [], category: "Flags", description: "flag: Indonesia", unicode_version: "6.0", }, { emoji: "🇮🇪", aliases: ["ireland"], tags: [], category: "Flags", description: "flag: Ireland", unicode_version: "6.0", }, { emoji: "🇮🇱", aliases: ["israel"], tags: [], category: "Flags", description: "flag: Israel", unicode_version: "6.0", }, { emoji: "🇮🇲", aliases: ["isle_of_man"], tags: [], category: "Flags", description: "flag: Isle of Man", unicode_version: "6.0", }, { emoji: "🇮🇳", aliases: ["india"], tags: [], category: "Flags", description: "flag: India", unicode_version: "6.0", }, { emoji: "🇮🇴", aliases: ["british_indian_ocean_territory"], tags: [], category: "Flags", description: "flag: British Indian Ocean Territory", unicode_version: "6.0", }, { emoji: "🇮🇶", aliases: ["iraq"], tags: [], category: "Flags", description: "flag: Iraq", unicode_version: "6.0", }, { emoji: "🇮🇷", aliases: ["iran"], tags: [], category: "Flags", description: "flag: Iran", unicode_version: "6.0", }, { emoji: "🇮🇸", aliases: ["iceland"], tags: [], category: "Flags", description: "flag: Iceland", unicode_version: "6.0", }, { emoji: "🇮🇹", aliases: ["it"], tags: ["italy"], category: "Flags", description: "flag: Italy", unicode_version: "6.0", }, { emoji: "🇯🇪", aliases: ["jersey"], tags: [], category: "Flags", description: "flag: Jersey", unicode_version: "6.0", }, { emoji: "🇯🇲", aliases: ["jamaica"], tags: [], category: "Flags", description: "flag: Jamaica", unicode_version: "6.0", }, { emoji: "🇯🇴", aliases: ["jordan"], tags: [], category: "Flags", description: "flag: Jordan", unicode_version: "6.0", }, { emoji: "🇯🇵", aliases: ["jp"], tags: ["japan"], category: "Flags", description: "flag: Japan", unicode_version: "6.0", }, { emoji: "🇰🇪", aliases: ["kenya"], tags: [], category: "Flags", description: "flag: Kenya", unicode_version: "6.0", }, { emoji: "🇰🇬", aliases: ["kyrgyzstan"], tags: [], category: "Flags", description: "flag: Kyrgyzstan", unicode_version: "6.0", }, { emoji: "🇰🇭", aliases: ["cambodia"], tags: [], category: "Flags", description: "flag: Cambodia", unicode_version: "6.0", }, { emoji: "🇰🇮", aliases: ["kiribati"], tags: [], category: "Flags", description: "flag: Kiribati", unicode_version: "6.0", }, { emoji: "🇰🇲", aliases: ["comoros"], tags: [], category: "Flags", description: "flag: Comoros", unicode_version: "6.0", }, { emoji: "🇰🇳", aliases: ["st_kitts_nevis"], tags: [], category: "Flags", description: "flag: St. Kitts & Nevis", unicode_version: "6.0", }, { emoji: "🇰🇵", aliases: ["north_korea"], tags: [], category: "Flags", description: "flag: North Korea", unicode_version: "6.0", }, { emoji: "🇰🇷", aliases: ["kr"], tags: ["korea"], category: "Flags", description: "flag: South Korea", unicode_version: "6.0", }, { emoji: "🇰🇼", aliases: ["kuwait"], tags: [], category: "Flags", description: "flag: Kuwait", unicode_version: "6.0", }, { emoji: "🇰🇾", aliases: ["cayman_islands"], tags: [], category: "Flags", description: "flag: Cayman Islands", unicode_version: "6.0", }, { emoji: "🇰🇿", aliases: ["kazakhstan"], tags: [], category: "Flags", description: "flag: Kazakhstan", unicode_version: "6.0", }, { emoji: "🇱🇦", aliases: ["laos"], tags: [], category: "Flags", description: "flag: Laos", unicode_version: "6.0", }, { emoji: "🇱🇧", aliases: ["lebanon"], tags: [], category: "Flags", description: "flag: Lebanon", unicode_version: "6.0", }, { emoji: "🇱🇨", aliases: ["st_lucia"], tags: [], category: "Flags", description: "flag: St. Lucia", unicode_version: "6.0", }, { emoji: "🇱🇮", aliases: ["liechtenstein"], tags: [], category: "Flags", description: "flag: Liechtenstein", unicode_version: "6.0", }, { emoji: "🇱🇰", aliases: ["sri_lanka"], tags: [], category: "Flags", description: "flag: Sri Lanka", unicode_version: "6.0", }, { emoji: "🇱🇷", aliases: ["liberia"], tags: [], category: "Flags", description: "flag: Liberia", unicode_version: "6.0", }, { emoji: "🇱🇸", aliases: ["lesotho"], tags: [], category: "Flags", description: "flag: Lesotho", unicode_version: "6.0", }, { emoji: "🇱🇹", aliases: ["lithuania"], tags: [], category: "Flags", description: "flag: Lithuania", unicode_version: "6.0", }, { emoji: "🇱🇺", aliases: ["luxembourg"], tags: [], category: "Flags", description: "flag: Luxembourg", unicode_version: "6.0", }, { emoji: "🇱🇻", aliases: ["latvia"], tags: [], category: "Flags", description: "flag: Latvia", unicode_version: "6.0", }, { emoji: "🇱🇾", aliases: ["libya"], tags: [], category: "Flags", description: "flag: Libya", unicode_version: "6.0", }, { emoji: "🇲🇦", aliases: ["morocco"], tags: [], category: "Flags", description: "flag: Morocco", unicode_version: "6.0", }, { emoji: "🇲🇨", aliases: ["monaco"], tags: [], category: "Flags", description: "flag: Monaco", unicode_version: "6.0", }, { emoji: "🇲🇩", aliases: ["moldova"], tags: [], category: "Flags", description: "flag: Moldova", unicode_version: "6.0", }, { emoji: "🇲🇪", aliases: ["montenegro"], tags: [], category: "Flags", description: "flag: Montenegro", unicode_version: "6.0", }, { emoji: "🇲🇫", aliases: ["st_martin"], tags: [], category: "Flags", description: "flag: St. Martin", unicode_version: "11.0", }, { emoji: "🇲🇬", aliases: ["madagascar"], tags: [], category: "Flags", description: "flag: Madagascar", unicode_version: "6.0", }, { emoji: "🇲🇭", aliases: ["marshall_islands"], tags: [], category: "Flags", description: "flag: Marshall Islands", unicode_version: "6.0", }, { emoji: "🇲🇰", aliases: ["macedonia"], tags: [], category: "Flags", description: "flag: North Macedonia", unicode_version: "6.0", }, { emoji: "🇲🇱", aliases: ["mali"], tags: [], category: "Flags", description: "flag: Mali", unicode_version: "6.0", }, { emoji: "🇲🇲", aliases: ["myanmar"], tags: ["burma"], category: "Flags", description: "flag: Myanmar (Burma)", unicode_version: "6.0", }, { emoji: "🇲🇳", aliases: ["mongolia"], tags: [], category: "Flags", description: "flag: Mongolia", unicode_version: "6.0", }, { emoji: "🇲🇴", aliases: ["macau"], tags: [], category: "Flags", description: "flag: Macao SAR China", unicode_version: "6.0", }, { emoji: "🇲🇵", aliases: ["northern_mariana_islands"], tags: [], category: "Flags", description: "flag: Northern Mariana Islands", unicode_version: "6.0", }, { emoji: "🇲🇶", aliases: ["martinique"], tags: [], category: "Flags", description: "flag: Martinique", unicode_version: "6.0", }, { emoji: "🇲🇷", aliases: ["mauritania"], tags: [], category: "Flags", description: "flag: Mauritania", unicode_version: "6.0", }, { emoji: "🇲🇸", aliases: ["montserrat"], tags: [], category: "Flags", description: "flag: Montserrat", unicode_version: "6.0", }, { emoji: "🇲🇹", aliases: ["malta"], tags: [], category: "Flags", description: "flag: Malta", unicode_version: "6.0", }, { emoji: "🇲🇺", aliases: ["mauritius"], tags: [], category: "Flags", description: "flag: Mauritius", unicode_version: "6.0", }, { emoji: "🇲🇻", aliases: ["maldives"], tags: [], category: "Flags", description: "flag: Maldives", unicode_version: "6.0", }, { emoji: "🇲🇼", aliases: ["malawi"], tags: [], category: "Flags", description: "flag: Malawi", unicode_version: "6.0", }, { emoji: "🇲🇽", aliases: ["mexico"], tags: [], category: "Flags", description: "flag: Mexico", unicode_version: "6.0", }, { emoji: "🇲🇾", aliases: ["malaysia"], tags: [], category: "Flags", description: "flag: Malaysia", unicode_version: "6.0", }, { emoji: "🇲🇿", aliases: ["mozambique"], tags: [], category: "Flags", description: "flag: Mozambique", unicode_version: "6.0", }, { emoji: "🇳🇦", aliases: ["namibia"], tags: [], category: "Flags", description: "flag: Namibia", unicode_version: "6.0", }, { emoji: "🇳🇨", aliases: ["new_caledonia"], tags: [], category: "Flags", description: "flag: New Caledonia", unicode_version: "6.0", }, { emoji: "🇳🇪", aliases: ["niger"], tags: [], category: "Flags", description: "flag: Niger", unicode_version: "6.0", }, { emoji: "🇳🇫", aliases: ["norfolk_island"], tags: [], category: "Flags", description: "flag: Norfolk Island", unicode_version: "6.0", }, { emoji: "🇳🇬", aliases: ["nigeria"], tags: [], category: "Flags", description: "flag: Nigeria", unicode_version: "6.0", }, { emoji: "🇳🇮", aliases: ["nicaragua"], tags: [], category: "Flags", description: "flag: Nicaragua", unicode_version: "6.0", }, { emoji: "🇳🇱", aliases: ["netherlands"], tags: [], category: "Flags", description: "flag: Netherlands", unicode_version: "6.0", }, { emoji: "🇳🇴", aliases: ["norway"], tags: [], category: "Flags", description: "flag: Norway", unicode_version: "6.0", }, { emoji: "🇳🇵", aliases: ["nepal"], tags: [], category: "Flags", description: "flag: Nepal", unicode_version: "6.0", }, { emoji: "🇳🇷", aliases: ["nauru"], tags: [], category: "Flags", description: "flag: Nauru", unicode_version: "6.0", }, { emoji: "🇳🇺", aliases: ["niue"], tags: [], category: "Flags", description: "flag: Niue", unicode_version: "6.0", }, { emoji: "🇳🇿", aliases: ["new_zealand"], tags: [], category: "Flags", description: "flag: New Zealand", unicode_version: "6.0", }, { emoji: "🇴🇲", aliases: ["oman"], tags: [], category: "Flags", description: "flag: Oman", unicode_version: "6.0", }, { emoji: "🇵🇦", aliases: ["panama"], tags: [], category: "Flags", description: "flag: Panama", unicode_version: "6.0", }, { emoji: "🇵🇪", aliases: ["peru"], tags: [], category: "Flags", description: "flag: Peru", unicode_version: "6.0", }, { emoji: "🇵🇫", aliases: ["french_polynesia"], tags: [], category: "Flags", description: "flag: French Polynesia", unicode_version: "6.0", }, { emoji: "🇵🇬", aliases: ["papua_new_guinea"], tags: [], category: "Flags", description: "flag: Papua New Guinea", unicode_version: "6.0", }, { emoji: "🇵🇭", aliases: ["philippines"], tags: [], category: "Flags", description: "flag: Philippines", unicode_version: "6.0", }, { emoji: "🇵🇰", aliases: ["pakistan"], tags: [], category: "Flags", description: "flag: Pakistan", unicode_version: "6.0", }, { emoji: "🇵🇱", aliases: ["poland"], tags: [], category: "Flags", description: "flag: Poland", unicode_version: "6.0", }, { emoji: "🇵🇲", aliases: ["st_pierre_miquelon"], tags: [], category: "Flags", description: "flag: St. Pierre & Miquelon", unicode_version: "6.0", }, { emoji: "🇵🇳", aliases: ["pitcairn_islands"], tags: [], category: "Flags", description: "flag: Pitcairn Islands", unicode_version: "6.0", }, { emoji: "🇵🇷", aliases: ["puerto_rico"], tags: [], category: "Flags", description: "flag: Puerto Rico", unicode_version: "6.0", }, { emoji: "🇵🇸", aliases: ["palestinian_territories"], tags: [], category: "Flags", description: "flag: Palestinian Territories", unicode_version: "6.0", }, { emoji: "🇵🇹", aliases: ["portugal"], tags: [], category: "Flags", description: "flag: Portugal", unicode_version: "6.0", }, { emoji: "🇵🇼", aliases: ["palau"], tags: [], category: "Flags", description: "flag: Palau", unicode_version: "6.0", }, { emoji: "🇵🇾", aliases: ["paraguay"], tags: [], category: "Flags", description: "flag: Paraguay", unicode_version: "6.0", }, { emoji: "🇶🇦", aliases: ["qatar"], tags: [], category: "Flags", description: "flag: Qatar", unicode_version: "6.0", }, { emoji: "🇷🇪", aliases: ["reunion"], tags: [], category: "Flags", description: "flag: Réunion", unicode_version: "6.0", }, { emoji: "🇷🇴", aliases: ["romania"], tags: [], category: "Flags", description: "flag: Romania", unicode_version: "6.0", }, { emoji: "🇷🇸", aliases: ["serbia"], tags: [], category: "Flags", description: "flag: Serbia", unicode_version: "6.0", }, { emoji: "🇷🇺", aliases: ["ru"], tags: ["russia"], category: "Flags", description: "flag: Russia", unicode_version: "6.0", }, { emoji: "🇷🇼", aliases: ["rwanda"], tags: [], category: "Flags", description: "flag: Rwanda", unicode_version: "6.0", }, { emoji: "🇸🇦", aliases: ["saudi_arabia"], tags: [], category: "Flags", description: "flag: Saudi Arabia", unicode_version: "6.0", }, { emoji: "🇸🇧", aliases: ["solomon_islands"], tags: [], category: "Flags", description: "flag: Solomon Islands", unicode_version: "6.0", }, { emoji: "🇸🇨", aliases: ["seychelles"], tags: [], category: "Flags", description: "flag: Seychelles", unicode_version: "6.0", }, { emoji: "🇸🇩", aliases: ["sudan"], tags: [], category: "Flags", description: "flag: Sudan", unicode_version: "6.0", }, { emoji: "🇸🇪", aliases: ["sweden"], tags: [], category: "Flags", description: "flag: Sweden", unicode_version: "6.0", }, { emoji: "🇸🇬", aliases: ["singapore"], tags: [], category: "Flags", description: "flag: Singapore", unicode_version: "6.0", }, { emoji: "🇸🇭", aliases: ["st_helena"], tags: [], category: "Flags", description: "flag: St. Helena", unicode_version: "6.0", }, { emoji: "🇸🇮", aliases: ["slovenia"], tags: [], category: "Flags", description: "flag: Slovenia", unicode_version: "6.0", }, { emoji: "🇸🇯", aliases: ["svalbard_jan_mayen"], tags: [], category: "Flags", description: "flag: Svalbard & Jan Mayen", unicode_version: "11.0", }, { emoji: "🇸🇰", aliases: ["slovakia"], tags: [], category: "Flags", description: "flag: Slovakia", unicode_version: "6.0", }, { emoji: "🇸🇱", aliases: ["sierra_leone"], tags: [], category: "Flags", description: "flag: Sierra Leone", unicode_version: "6.0", }, { emoji: "🇸🇲", aliases: ["san_marino"], tags: [], category: "Flags", description: "flag: San Marino", unicode_version: "6.0", }, { emoji: "🇸🇳", aliases: ["senegal"], tags: [], category: "Flags", description: "flag: Senegal", unicode_version: "6.0", }, { emoji: "🇸🇴", aliases: ["somalia"], tags: [], category: "Flags", description: "flag: Somalia", unicode_version: "6.0", }, { emoji: "🇸🇷", aliases: ["suriname"], tags: [], category: "Flags", description: "flag: Suriname", unicode_version: "6.0", }, { emoji: "🇸🇸", aliases: ["south_sudan"], tags: [], category: "Flags", description: "flag: South Sudan", unicode_version: "6.0", }, { emoji: "🇸🇹", aliases: ["sao_tome_principe"], tags: [], category: "Flags", description: "flag: São Tomé & Príncipe", unicode_version: "6.0", }, { emoji: "🇸🇻", aliases: ["el_salvador"], tags: [], category: "Flags", description: "flag: El Salvador", unicode_version: "6.0", }, { emoji: "🇸🇽", aliases: ["sint_maarten"], tags: [], category: "Flags", description: "flag: Sint Maarten", unicode_version: "6.0", }, { emoji: "🇸🇾", aliases: ["syria"], tags: [], category: "Flags", description: "flag: Syria", unicode_version: "6.0", }, { emoji: "🇸🇿", aliases: ["swaziland"], tags: [], category: "Flags", description: "flag: Eswatini", unicode_version: "6.0", }, { emoji: "🇹🇦", aliases: ["tristan_da_cunha"], tags: [], category: "Flags", description: "flag: Tristan da Cunha", unicode_version: "11.0", }, { emoji: "🇹🇨", aliases: ["turks_caicos_islands"], tags: [], category: "Flags", description: "flag: Turks & Caicos Islands", unicode_version: "6.0", }, { emoji: "🇹🇩", aliases: ["chad"], tags: [], category: "Flags", description: "flag: Chad", unicode_version: "6.0", }, { emoji: "🇹🇫", aliases: ["french_southern_territories"], tags: [], category: "Flags", description: "flag: French Southern Territories", unicode_version: "6.0", }, { emoji: "🇹🇬", aliases: ["togo"], tags: [], category: "Flags", description: "flag: Togo", unicode_version: "6.0", }, { emoji: "🇹🇭", aliases: ["thailand"], tags: [], category: "Flags", description: "flag: Thailand", unicode_version: "6.0", }, { emoji: "🇹🇯", aliases: ["tajikistan"], tags: [], category: "Flags", description: "flag: Tajikistan", unicode_version: "6.0", }, { emoji: "🇹🇰", aliases: ["tokelau"], tags: [], category: "Flags", description: "flag: Tokelau", unicode_version: "6.0", }, { emoji: "🇹🇱", aliases: ["timor_leste"], tags: [], category: "Flags", description: "flag: Timor-Leste", unicode_version: "6.0", }, { emoji: "🇹🇲", aliases: ["turkmenistan"], tags: [], category: "Flags", description: "flag: Turkmenistan", unicode_version: "6.0", }, { emoji: "🇹🇳", aliases: ["tunisia"], tags: [], category: "Flags", description: "flag: Tunisia", unicode_version: "6.0", }, { emoji: "🇹🇴", aliases: ["tonga"], tags: [], category: "Flags", description: "flag: Tonga", unicode_version: "6.0", }, { emoji: "🇹🇷", aliases: ["tr"], tags: ["turkey"], category: "Flags", description: "flag: Turkey", unicode_version: "8.0", }, { emoji: "🇹🇹", aliases: ["trinidad_tobago"], tags: [], category: "Flags", description: "flag: Trinidad & Tobago", unicode_version: "6.0", }, { emoji: "🇹🇻", aliases: ["tuvalu"], tags: [], category: "Flags", description: "flag: Tuvalu", unicode_version: "6.0", }, { emoji: "🇹🇼", aliases: ["taiwan"], tags: [], category: "Flags", description: "flag: Taiwan", unicode_version: "6.0", }, { emoji: "🇹🇿", aliases: ["tanzania"], tags: [], category: "Flags", description: "flag: Tanzania", unicode_version: "6.0", }, { emoji: "🇺🇦", aliases: ["ukraine"], tags: [], category: "Flags", description: "flag: Ukraine", unicode_version: "6.0", }, { emoji: "🇺🇬", aliases: ["uganda"], tags: [], category: "Flags", description: "flag: Uganda", unicode_version: "6.0", }, { emoji: "🇺🇲", aliases: ["us_outlying_islands"], tags: [], category: "Flags", description: "flag: U.S. Outlying Islands", unicode_version: "11.0", }, { emoji: "🇺🇳", aliases: ["united_nations"], tags: [], category: "Flags", description: "flag: United Nations", unicode_version: "11.0", }, { emoji: "🇺🇸", aliases: ["us"], tags: ["flag", "united", "america"], category: "Flags", description: "flag: United States", unicode_version: "6.0", }, { emoji: "🇺🇾", aliases: ["uruguay"], tags: [], category: "Flags", description: "flag: Uruguay", unicode_version: "6.0", }, { emoji: "🇺🇿", aliases: ["uzbekistan"], tags: [], category: "Flags", description: "flag: Uzbekistan", unicode_version: "6.0", }, { emoji: "🇻🇦", aliases: ["vatican_city"], tags: [], category: "Flags", description: "flag: Vatican City", unicode_version: "6.0", }, { emoji: "🇻🇨", aliases: ["st_vincent_grenadines"], tags: [], category: "Flags", description: "flag: St. Vincent & Grenadines", unicode_version: "6.0", }, { emoji: "🇻🇪", aliases: ["venezuela"], tags: [], category: "Flags", description: "flag: Venezuela", unicode_version: "6.0", }, { emoji: "🇻🇬", aliases: ["british_virgin_islands"], tags: [], category: "Flags", description: "flag: British Virgin Islands", unicode_version: "6.0", }, { emoji: "🇻🇮", aliases: ["us_virgin_islands"], tags: [], category: "Flags", description: "flag: U.S. Virgin Islands", unicode_version: "6.0", }, { emoji: "🇻🇳", aliases: ["vietnam"], tags: [], category: "Flags", description: "flag: Vietnam", unicode_version: "6.0", }, { emoji: "🇻🇺", aliases: ["vanuatu"], tags: [], category: "Flags", description: "flag: Vanuatu", unicode_version: "6.0", }, { emoji: "🇼🇫", aliases: ["wallis_futuna"], tags: [], category: "Flags", description: "flag: Wallis & Futuna", unicode_version: "6.0", }, { emoji: "🇼🇸", aliases: ["samoa"], tags: [], category: "Flags", description: "flag: Samoa", unicode_version: "6.0", }, { emoji: "🇽🇰", aliases: ["kosovo"], tags: [], category: "Flags", description: "flag: Kosovo", unicode_version: "6.0", }, { emoji: "🇾🇪", aliases: ["yemen"], tags: [], category: "Flags", description: "flag: Yemen", unicode_version: "6.0", }, { emoji: "🇾🇹", aliases: ["mayotte"], tags: [], category: "Flags", description: "flag: Mayotte", unicode_version: "6.0", }, { emoji: "🇿🇦", aliases: ["south_africa"], tags: [], category: "Flags", description: "flag: South Africa", unicode_version: "6.0", }, { emoji: "🇿🇲", aliases: ["zambia"], tags: [], category: "Flags", description: "flag: Zambia", unicode_version: "6.0", }, { emoji: "🇿🇼", aliases: ["zimbabwe"], tags: [], category: "Flags", description: "flag: Zimbabwe", unicode_version: "6.0", }, { emoji: "🏴󠁧󠁢󠁥󠁮󠁧󠁿", aliases: ["england"], tags: [], category: "Flags", description: "flag: England", unicode_version: "11.0", }, { emoji: "🏴󠁧󠁢󠁳󠁣󠁴󠁿", aliases: ["scotland"], tags: [], category: "Flags", description: "flag: Scotland", unicode_version: "11.0", }, { emoji: "🏴󠁧󠁢󠁷󠁬󠁳󠁿", aliases: ["wales"], tags: [], category: "Flags", description: "flag: Wales", unicode_version: "11.0", }, ]; ntfy-2.11.0/web/src/app/emojisMapped.js000066400000000000000000000002741462047176100176650ustar00rootroot00000000000000import { rawEmojis } from "./emojis"; // Format emojis (see emoji.js) export default Object.fromEntries(rawEmojis.flatMap((emoji) => emoji.aliases.map((alias) => [alias, emoji.emoji]))); ntfy-2.11.0/web/src/app/errors.js000066400000000000000000000043421462047176100165640ustar00rootroot00000000000000/* eslint-disable max-classes-per-file */ // This is a subset of, and the counterpart to errors.go const maybeToJson = async (response) => { try { return await response.json(); } catch (e) { return null; } }; export class UnauthorizedError extends Error { constructor() { super("Unauthorized"); } } export class UserExistsError extends Error { static CODE = 40901; // errHTTPConflictUserExists constructor() { super("Username already exists"); } } export class TopicReservedError extends Error { static CODE = 40902; // errHTTPConflictTopicReserved constructor() { super("Topic already reserved"); } } export class AccountCreateLimitReachedError extends Error { static CODE = 42906; // errHTTPTooManyRequestsLimitAccountCreation constructor() { super("Account creation limit reached"); } } export class IncorrectPasswordError extends Error { static CODE = 40026; // errHTTPBadRequestIncorrectPasswordConfirmation constructor() { super("Password incorrect"); } } export const throwAppError = async (response) => { if (response.status === 401 || response.status === 403) { console.log(`[Error] HTTP ${response.status}`, response); throw new UnauthorizedError(); } const error = await maybeToJson(response); if (error?.code) { console.log(`[Error] HTTP ${response.status}, ntfy error ${error.code}: ${error.error || ""}`, response); if (error.code === UserExistsError.CODE) { throw new UserExistsError(); } else if (error.code === TopicReservedError.CODE) { throw new TopicReservedError(); } else if (error.code === AccountCreateLimitReachedError.CODE) { throw new AccountCreateLimitReachedError(); } else if (error.code === IncorrectPasswordError.CODE) { throw new IncorrectPasswordError(); } else if (error?.error) { throw new Error(`Error ${error.code}: ${error.error}`); } } console.log(`[Error] HTTP ${response.status}, not a ntfy error`, response); throw new Error(`Unexpected response ${response.status}`); }; export const fetchOrThrow = async (url, options) => { const response = await fetch(url, options); if (response.status !== 200) { await throwAppError(response); } return response; // Promise! }; ntfy-2.11.0/web/src/app/i18n.js000066400000000000000000000016711462047176100160310ustar00rootroot00000000000000import i18next from "i18next"; import Backend from "i18next-http-backend"; import LanguageDetector from "i18next-browser-languagedetector"; import { initReactI18next } from "react-i18next"; // Translations using i18next // - Options: https://www.i18next.com/overview/configuration-options // - Browser Language Detector: https://github.com/i18next/i18next-browser-languageDetector // - HTTP Backend (load files via fetch): https://github.com/i18next/i18next-http-backend // // See example project here: // https://github.com/i18next/react-i18next/tree/master/example/react const initI18n = () => i18next .use(Backend) .use(LanguageDetector) .use(initReactI18next) .init({ fallbackLng: "en", debug: true, interpolation: { escapeValue: false, // not needed for react as it escapes by default }, backend: { loadPath: "/static/langs/{{lng}}.json", }, }); export default initI18n; ntfy-2.11.0/web/src/app/notificationUtils.js000066400000000000000000000041561462047176100207620ustar00rootroot00000000000000// This is a separate file since the other utils import `config.js`, which depends on `window` // and cannot be used in the service worker import emojisMapped from "./emojisMapped"; const toEmojis = (tags) => { if (!tags) return []; return tags.filter((tag) => tag in emojisMapped).map((tag) => emojisMapped[tag]); }; export const formatTitle = (m) => { const emojiList = toEmojis(m.tags); if (emojiList.length > 0) { return `${emojiList.join(" ")} ${m.title}`; } return m.title; }; const formatTitleWithDefault = (m, fallback) => { if (m.title) { return formatTitle(m); } return fallback; }; export const formatMessage = (m) => { if (m.title) { return m.message; } const emojiList = toEmojis(m.tags); if (emojiList.length > 0) { return `${emojiList.join(" ")} ${m.message}`; } return m.message; }; const imageRegex = /\.(png|jpe?g|gif|webp)$/i; export const isImage = (attachment) => { if (!attachment) return false; // if there's a type, only take that into account if (attachment.type) { return attachment.type.startsWith("image/"); } // otherwise, check the extension return attachment.name?.match(imageRegex) || attachment.url?.match(imageRegex); }; export const icon = "/static/images/ntfy.png"; export const badge = "/static/images/mask-icon.svg"; export const toNotificationParams = ({ subscriptionId, message, defaultTitle, topicRoute }) => { const image = isImage(message.attachment) ? message.attachment.url : undefined; // https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API return [ formatTitleWithDefault(message, defaultTitle), { body: formatMessage(message), badge, icon, image, timestamp: message.time * 1_000, tag: subscriptionId, renotify: true, silent: false, // This is used by the notification onclick event data: { message, topicRoute, }, actions: message.actions ?.filter(({ action }) => action === "view" || action === "http") .map(({ label }) => ({ action: label, title: label, })), }, ]; }; ntfy-2.11.0/web/src/app/utils.js000066400000000000000000000212421462047176100164060ustar00rootroot00000000000000import { Base64 } from "js-base64"; import beep from "../sounds/beep.mp3"; import juntos from "../sounds/juntos.mp3"; import pristine from "../sounds/pristine.mp3"; import ding from "../sounds/ding.mp3"; import dadum from "../sounds/dadum.mp3"; import pop from "../sounds/pop.mp3"; import popSwoosh from "../sounds/pop-swoosh.mp3"; import config from "./config"; import emojisMapped from "./emojisMapped"; export const tiersUrl = (baseUrl) => `${baseUrl}/v1/tiers`; export const shortUrl = (url) => url.replaceAll(/https?:\/\//g, ""); export const expandUrl = (url) => [`https://${url}`, `http://${url}`]; export const expandSecureUrl = (url) => `https://${url}`; export const topicUrl = (baseUrl, topic) => `${baseUrl}/${topic}`; export const topicUrlWs = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/ws`.replaceAll("https://", "wss://").replaceAll("http://", "ws://"); export const topicUrlJson = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/json`; export const topicUrlJsonPoll = (baseUrl, topic) => `${topicUrlJson(baseUrl, topic)}?poll=1`; export const topicUrlJsonPollWithSince = (baseUrl, topic, since) => `${topicUrlJson(baseUrl, topic)}?poll=1&since=${since}`; export const topicUrlAuth = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/auth`; export const topicShortUrl = (baseUrl, topic) => shortUrl(topicUrl(baseUrl, topic)); export const webPushUrl = (baseUrl) => `${baseUrl}/v1/webpush`; export const accountUrl = (baseUrl) => `${baseUrl}/v1/account`; export const accountPasswordUrl = (baseUrl) => `${baseUrl}/v1/account/password`; export const accountTokenUrl = (baseUrl) => `${baseUrl}/v1/account/token`; export const accountSettingsUrl = (baseUrl) => `${baseUrl}/v1/account/settings`; export const accountSubscriptionUrl = (baseUrl) => `${baseUrl}/v1/account/subscription`; export const accountReservationUrl = (baseUrl) => `${baseUrl}/v1/account/reservation`; export const accountReservationSingleUrl = (baseUrl, topic) => `${baseUrl}/v1/account/reservation/${topic}`; export const accountBillingSubscriptionUrl = (baseUrl) => `${baseUrl}/v1/account/billing/subscription`; export const accountBillingPortalUrl = (baseUrl) => `${baseUrl}/v1/account/billing/portal`; export const accountPhoneUrl = (baseUrl) => `${baseUrl}/v1/account/phone`; export const accountPhoneVerifyUrl = (baseUrl) => `${baseUrl}/v1/account/phone/verify`; export const validUrl = (url) => url.match(/^https?:\/\/.+/); export const disallowedTopic = (topic) => config.disallowed_topics.includes(topic); export const validTopic = (topic) => { if (disallowedTopic(topic)) { return false; } return topic.match(/^([-_a-zA-Z0-9]{1,64})$/); // Regex must match Go & Android app! }; export const topicDisplayName = (subscription) => { if (subscription.displayName) { return subscription.displayName; } if (subscription.baseUrl === config.base_url) { return subscription.topic; } return topicShortUrl(subscription.baseUrl, subscription.topic); }; export const unmatchedTags = (tags) => { if (!tags) return []; return tags.filter((tag) => !(tag in emojisMapped)); }; export const encodeBase64 = (s) => Base64.encode(s); export const encodeBase64Url = (s) => Base64.encodeURI(s); export const bearerAuth = (token) => `Bearer ${token}`; export const basicAuth = (username, password) => `Basic ${encodeBase64(`${username}:${password}`)}`; export const withBearerAuth = (headers, token) => ({ ...headers, Authorization: bearerAuth(token) }); export const maybeWithBearerAuth = (headers, token) => { if (token) { return withBearerAuth(headers, token); } return headers; }; export const withBasicAuth = (headers, username, password) => ({ ...headers, Authorization: basicAuth(username, password) }); export const maybeWithAuth = (headers, user) => { if (user?.password) { return withBasicAuth(headers, user.username, user.password); } if (user?.token) { return withBearerAuth(headers, user.token); } return headers; }; export const maybeActionErrors = (notification) => { const actionErrors = (notification.actions ?? []) .map((action) => action.error) .filter((action) => !!action) .join("\n"); if (actionErrors.length === 0) { return undefined; } return actionErrors; }; export const shuffle = (arr) => { const returnArr = [...arr]; for (let index = returnArr.length - 1; index > 0; index -= 1) { const j = Math.floor(Math.random() * (index + 1)); [returnArr[index], returnArr[j]] = [returnArr[j], returnArr[index]]; } return returnArr; }; export const splitNoEmpty = (s, delimiter) => s .split(delimiter) .map((x) => x.trim()) .filter((x) => x !== ""); /** Non-cryptographic hash function, see https://stackoverflow.com/a/8831937/1440785 */ export const hashCode = (s) => { let hash = 0; for (let i = 0; i < s.length; i += 1) { const char = s.charCodeAt(i); // eslint-disable-next-line no-bitwise hash = (hash << 5) - hash + char; // eslint-disable-next-line no-bitwise hash &= hash; // Convert to 32bit integer } return hash; }; /** * convert `i18n.language` style str (e.g.: `en_US`) to kebab-case (e.g.: `en-US`), * which is expected by `` and `Intl.DateTimeFormat` */ export const getKebabCaseLangStr = (language) => language.replace(/_/g, "-"); export const formatShortDateTime = (timestamp, language) => new Intl.DateTimeFormat(getKebabCaseLangStr(language), { dateStyle: "short", timeStyle: "short", }).format(new Date(timestamp * 1000)); export const formatShortDate = (timestamp, language) => new Intl.DateTimeFormat(getKebabCaseLangStr(language), { dateStyle: "short" }).format(new Date(timestamp * 1000)); export const formatBytes = (bytes, decimals = 2) => { if (bytes === 0) return "0 bytes"; const k = 1024; const dm = decimals < 0 ? 0 : decimals; const sizes = ["bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]; const i = Math.floor(Math.log(bytes) / Math.log(k)); return `${parseFloat((bytes / k ** i).toFixed(dm))} ${sizes[i]}`; }; export const formatNumber = (n) => { if (n === 0) { return n; } if (n % 1000 === 0) { return `${n / 1000}k`; } return n.toLocaleString(); }; export const formatPrice = (n) => { if (n % 100 === 0) { return `$${n / 100}`; } return `$${(n / 100).toPrecision(2)}`; }; export const openUrl = (url) => { window.open(url, "_blank", "noopener,noreferrer"); }; export const sounds = { ding: { file: ding, label: "Ding", }, juntos: { file: juntos, label: "Juntos", }, pristine: { file: pristine, label: "Pristine", }, dadum: { file: dadum, label: "Dadum", }, pop: { file: pop, label: "Pop", }, "pop-swoosh": { file: popSwoosh, label: "Pop swoosh", }, beep: { file: beep, label: "Beep", }, }; export const playSound = async (id) => { const audio = new Audio(sounds[id].file); return audio.play(); }; // From: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch // eslint-disable-next-line func-style export async function* fetchLinesIterator(fileURL, headers) { const utf8Decoder = new TextDecoder("utf-8"); const response = await fetch(fileURL, { headers, }); const reader = response.body.getReader(); let { value: chunk, done: readerDone } = await reader.read(); chunk = chunk ? utf8Decoder.decode(chunk) : ""; const re = /\n|\r|\r\n/gm; let startIndex = 0; for (;;) { const result = re.exec(chunk); if (!result) { if (readerDone) { break; } const remainder = chunk.substr(startIndex); // eslint-disable-next-line no-await-in-loop ({ value: chunk, done: readerDone } = await reader.read()); chunk = remainder + (chunk ? utf8Decoder.decode(chunk) : ""); startIndex = 0; re.lastIndex = 0; // eslint-disable-next-line no-continue continue; } yield chunk.substring(startIndex, result.index); startIndex = re.lastIndex; } if (startIndex < chunk.length) { yield chunk.substr(startIndex); // last line didn't end in a newline char } } export const randomAlphanumericString = (len) => { const alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; let id = ""; for (let i = 0; i < len; i += 1) { // eslint-disable-next-line no-bitwise id += alphabet[(Math.random() * alphabet.length) | 0]; } return id; }; export const urlB64ToUint8Array = (base64String) => { const padding = "=".repeat((4 - (base64String.length % 4)) % 4); const base64 = (base64String + padding).replace(/-/g, "+").replace(/_/g, "/"); const rawData = window.atob(base64); const outputArray = new Uint8Array(rawData.length); for (let i = 0; i < rawData.length; i += 1) { outputArray[i] = rawData.charCodeAt(i); } return outputArray; }; ntfy-2.11.0/web/src/components/000077500000000000000000000000001462047176100163145ustar00rootroot00000000000000ntfy-2.11.0/web/src/components/Account.jsx000066400000000000000000001146601462047176100204460ustar00rootroot00000000000000import * as React from "react"; import { useContext, useState } from "react"; import { Alert, CardActions, CardContent, Chip, FormControl, FormControlLabel, LinearProgress, Link, Portal, Radio, RadioGroup, Select, Snackbar, Stack, Table, TableBody, TableCell, TableHead, TableRow, useMediaQuery, Tooltip, Typography, Container, Card, Button, Dialog, DialogTitle, DialogContent, TextField, IconButton, MenuItem, DialogContentText, useTheme, } from "@mui/material"; import EditIcon from "@mui/icons-material/Edit"; import { Trans, useTranslation } from "react-i18next"; import DeleteOutlineIcon from "@mui/icons-material/DeleteOutline"; import InfoOutlinedIcon from "@mui/icons-material/InfoOutlined"; import humanizeDuration from "humanize-duration"; import CelebrationIcon from "@mui/icons-material/Celebration"; import CloseIcon from "@mui/icons-material/Close"; import { ContentCopy, Public } from "@mui/icons-material"; import AddIcon from "@mui/icons-material/Add"; import routes from "./routes"; import { formatBytes, formatShortDate, formatShortDateTime, openUrl } from "../app/utils"; import accountApi, { LimitBasis, Role, SubscriptionInterval, SubscriptionStatus } from "../app/AccountApi"; import { Pref, PrefGroup } from "./Pref"; import db from "../app/db"; import UpgradeDialog from "./UpgradeDialog"; import { AccountContext } from "./App"; import DialogFooter from "./DialogFooter"; import { Paragraph } from "./styles"; import { IncorrectPasswordError, UnauthorizedError } from "../app/errors"; import { ProChip } from "./SubscriptionPopup"; import session from "../app/Session"; const Account = () => { if (!session.exists()) { window.location.href = routes.app; return <>; } return ( ); }; const Basics = () => { const { t } = useTranslation(); return ( {t("account_basics_title")} ); }; const Username = () => { const { t } = useTranslation(); const { account } = useContext(AccountContext); const labelId = "prefUsername"; return (
      {session.username()} {account?.role === Role.ADMIN ? ( <> {" "} 👑 ) : ( "" )}
      ); }; const ChangePassword = () => { const { t } = useTranslation(); const [dialogKey, setDialogKey] = useState(0); const [dialogOpen, setDialogOpen] = useState(false); const labelId = "prefChangePassword"; const handleDialogOpen = () => { setDialogKey((prev) => prev + 1); setDialogOpen(true); }; const handleDialogClose = () => { setDialogOpen(false); }; return (
      ⬤⬤⬤⬤⬤⬤⬤⬤⬤⬤
      ); }; const ChangePasswordDialog = (props) => { const theme = useTheme(); const { t } = useTranslation(); const [error, setError] = useState(""); const [currentPassword, setCurrentPassword] = useState(""); const [newPassword, setNewPassword] = useState(""); const [confirmPassword, setConfirmPassword] = useState(""); const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); const handleDialogSubmit = async () => { try { console.debug(`[Account] Changing password`); await accountApi.changePassword(currentPassword, newPassword); props.onClose(); } catch (e) { console.log(`[Account] Error changing password`, e); if (e instanceof IncorrectPasswordError) { setError(t("account_basics_password_dialog_current_password_incorrect")); } else if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } else { setError(e.message); } } }; return ( {t("account_basics_password_dialog_title")} setCurrentPassword(ev.target.value)} fullWidth variant="standard" /> setNewPassword(ev.target.value)} fullWidth variant="standard" /> setConfirmPassword(ev.target.value)} fullWidth variant="standard" /> ); }; const AccountType = () => { const { t, i18n } = useTranslation(); const { account } = useContext(AccountContext); const [upgradeDialogKey, setUpgradeDialogKey] = useState(0); const [upgradeDialogOpen, setUpgradeDialogOpen] = useState(false); const [showPortalError, setShowPortalError] = useState(false); if (!account) { return <>; } const handleUpgradeClick = () => { setUpgradeDialogKey((k) => k + 1); setUpgradeDialogOpen(true); }; const handleManageBilling = async () => { try { const response = await accountApi.createBillingPortalSession(); window.open(response.redirect_url, "billing_portal"); } catch (e) { console.log(`[Account] Error opening billing portal`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } else { setShowPortalError(true); } } }; let accountType; if (account.role === Role.ADMIN) { const tierSuffix = account.tier ? t("account_basics_tier_admin_suffix_with_tier", { tier: account.tier.name, }) : t("account_basics_tier_admin_suffix_no_tier"); accountType = `${t("account_basics_tier_admin")} ${tierSuffix}`; } else if (!account.tier) { accountType = config.enable_payments ? t("account_basics_tier_free") : t("account_basics_tier_basic"); } else { accountType = account.tier.name; if (account.billing?.interval === SubscriptionInterval.MONTH) { accountType += ` (${t("account_basics_tier_interval_monthly")})`; } else if (account.billing?.interval === SubscriptionInterval.YEAR) { accountType += ` (${t("account_basics_tier_interval_yearly")})`; } } return ( 0} title={t("account_basics_tier_title")} description={t("account_basics_tier_description")} >
      {accountType} {account.billing?.paid_until && !account.billing?.cancel_at && ( )} {config.enable_payments && account.role === Role.USER && !account.billing?.subscription && ( )} {config.enable_payments && account.role === Role.USER && account.billing?.subscription && ( )} {config.enable_payments && account.role === Role.USER && account.billing?.customer && ( )} {config.enable_payments && ( setUpgradeDialogOpen(false)} /> )}
      {account.billing?.status === SubscriptionStatus.PAST_DUE && ( {t("account_basics_tier_payment_overdue")} )} {account.billing?.cancel_at > 0 && ( {t("account_basics_tier_canceled_subscription", { date: formatShortDate(account.billing.cancel_at, i18n.language), })} )} setShowPortalError(false)} message={t("account_usage_cannot_create_portal_session")} />
      ); }; const PhoneNumbers = () => { const { t } = useTranslation(); const { account } = useContext(AccountContext); const [dialogKey, setDialogKey] = useState(0); const [dialogOpen, setDialogOpen] = useState(false); const [snackOpen, setSnackOpen] = useState(false); const labelId = "prefPhoneNumbers"; const handleDialogOpen = () => { setDialogKey((prev) => prev + 1); setDialogOpen(true); }; const handleDialogClose = () => { setDialogOpen(false); }; const handleCopy = (phoneNumber) => { navigator.clipboard.writeText(phoneNumber); setSnackOpen(true); }; const handleDelete = async (phoneNumber) => { try { await accountApi.deletePhoneNumber(phoneNumber); } catch (e) { console.log(`[Account] Error deleting phone number`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } } }; if (!config.enable_calls) { return null; } if (account?.limits.calls === 0) { return ( {t("account_basics_phone_numbers_title")} {config.enable_payments && } } description={t("account_basics_phone_numbers_description")} > {t("account_usage_calls_none")} ); } return (
      {account?.phone_numbers?.map((phoneNumber) => ( {phoneNumber} } variant="outlined" onClick={() => handleCopy(phoneNumber)} onDelete={() => handleDelete(phoneNumber)} /> ))} {!account?.phone_numbers && {t("account_basics_phone_numbers_no_phone_numbers_yet")}}
      setSnackOpen(false)} message={t("account_basics_phone_numbers_copied_to_clipboard")} />
      ); }; const AddPhoneNumberDialog = (props) => { const theme = useTheme(); const { t } = useTranslation(); const [error, setError] = useState(""); const [phoneNumber, setPhoneNumber] = useState(""); const [channel, setChannel] = useState("sms"); const [code, setCode] = useState(""); const [sending, setSending] = useState(false); const [verificationCodeSent, setVerificationCodeSent] = useState(false); const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); const verifyPhone = async () => { try { setSending(true); await accountApi.verifyPhoneNumber(phoneNumber, channel); setVerificationCodeSent(true); } catch (e) { console.log(`[Account] Error sending verification`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } else { setError(e.message); } } finally { setSending(false); } }; const checkVerifyPhone = async () => { try { setSending(true); await accountApi.addPhoneNumber(phoneNumber, code); props.onClose(); } catch (e) { console.log(`[Account] Error confirming verification`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } else { setError(e.message); } } finally { setSending(false); } }; const handleDialogSubmit = async () => { if (!verificationCodeSent) { await verifyPhone(); } else { await checkVerifyPhone(); } }; const handleCancel = () => { if (verificationCodeSent) { setVerificationCodeSent(false); setCode(""); } else { props.onClose(); } }; return ( {t("account_basics_phone_numbers_dialog_title")} {t("account_basics_phone_numbers_dialog_description")} {!verificationCodeSent && (
      setPhoneNumber(ev.target.value)} inputProps={{ inputMode: "tel", pattern: "+[0-9]*" }} variant="standard" sx={{ flexGrow: 1 }} /> setChannel(e.target.value)} />} label={t("account_basics_phone_numbers_dialog_channel_sms")} /> setChannel(e.target.value)} />} label={t("account_basics_phone_numbers_dialog_channel_call")} sx={{ marginRight: 0 }} />
      )} {verificationCodeSent && ( setCode(ev.target.value)} fullWidth inputProps={{ inputMode: "numeric", pattern: "[0-9]*" }} variant="standard" /> )}
      ); }; const Stats = () => { const { t, i18n } = useTranslation(); const { account } = useContext(AccountContext); if (!account) { return <>; } const normalize = (value, max) => Math.min((value / max) * 100, 100); return ( {t("account_usage_title")} {(account.role === Role.ADMIN || account.limits.reservations > 0) && (
      {account.stats.reservations.toLocaleString()} {account.role === Role.USER ? t("account_usage_of_limit", { limit: account.limits.reservations.toLocaleString(), }) : t("account_usage_unlimited")}
      0 ? normalize(account.stats.reservations, account.limits.reservations) : 100 } />
      )} {t("account_usage_messages_title")} } >
      {account.stats.messages.toLocaleString()} {account.role === Role.USER ? t("account_usage_of_limit", { limit: account.limits.messages.toLocaleString(), }) : t("account_usage_unlimited")}
      {config.enable_emails && ( {t("account_usage_emails_title")} } >
      {account.stats.emails.toLocaleString()} {account.role === Role.USER ? t("account_usage_of_limit", { limit: account.limits.emails.toLocaleString(), }) : t("account_usage_unlimited")}
      )} {config.enable_calls && (account.role === Role.ADMIN || account.limits.calls > 0) && ( {t("account_usage_calls_title")} } >
      {account.stats.calls.toLocaleString()} {account.role === Role.USER ? t("account_usage_of_limit", { limit: account.limits.calls.toLocaleString(), }) : t("account_usage_unlimited")}
      0 ? normalize(account.stats.calls, account.limits.calls) : 100} />
      )}
      {formatBytes(account.stats.attachment_total_size)} {account.role === Role.USER ? t("account_usage_of_limit", { limit: formatBytes(account.limits.attachment_total_size), }) : t("account_usage_unlimited")}
      {config.enable_reservations && account.role === Role.USER && account.limits.reservations === 0 && ( {t("account_usage_reservations_title")} {config.enable_payments && } } > {t("account_usage_reservations_none")} )} {config.enable_calls && account.role === Role.USER && account.limits.calls === 0 && ( {t("account_usage_calls_title")} {config.enable_payments && } } > {t("account_usage_calls_none")} )}
      {account.role === Role.USER && account.limits.basis === LimitBasis.IP && ( {t("account_usage_basis_ip_description")} )}
      ); }; const InfoIcon = () => ( ); const Tokens = () => { const { t } = useTranslation(); const { account } = useContext(AccountContext); const [dialogKey, setDialogKey] = useState(0); const [dialogOpen, setDialogOpen] = useState(false); const tokens = account?.tokens || []; const handleCreateClick = () => { setDialogKey((prev) => prev + 1); setDialogOpen(true); }; const handleDialogClose = () => { setDialogOpen(false); }; return ( {t("account_tokens_title")} , }} />
      {tokens?.length > 0 && }
      ); }; const TokensTable = (props) => { const { t, i18n } = useTranslation(); const [snackOpen, setSnackOpen] = useState(false); const [upsertDialogKey, setUpsertDialogKey] = useState(0); const [upsertDialogOpen, setUpsertDialogOpen] = useState(false); const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); const [selectedToken, setSelectedToken] = useState(null); const tokens = (props.tokens || []).sort((a, b) => { if (a.token === session.token()) { return -1; } if (b.token === session.token()) { return 1; } return a.token.localeCompare(b.token); }); const handleEditClick = (token) => { setUpsertDialogKey((prev) => prev + 1); setSelectedToken(token); setUpsertDialogOpen(true); }; const handleDialogClose = () => { setUpsertDialogOpen(false); setDeleteDialogOpen(false); setSelectedToken(null); }; const handleDeleteClick = async (token) => { setSelectedToken(token); setDeleteDialogOpen(true); }; const handleCopy = async (token) => { await navigator.clipboard.writeText(token); setSnackOpen(true); }; return ( {t("account_tokens_table_token_header")} {t("account_tokens_table_label_header")} {t("account_tokens_table_expires_header")} {t("account_tokens_table_last_access_header")} {tokens.map((token) => ( {token.token.slice(0, 12)} ... handleCopy(token.token)}> {token.token === session.token() && {t("account_tokens_table_current_session")}} {token.token !== session.token() && (token.label || "-")} {token.expires ? formatShortDateTime(token.expires, i18n.language) : {t("account_tokens_table_never_expires")}}
      {formatShortDateTime(token.last_access, i18n.language)} openUrl(`https://whatismyipaddress.com/ip/${token.last_origin}`)}>
      {token.token !== session.token() && ( <> handleEditClick(token)} aria-label={t("account_tokens_dialog_title_edit")}> handleDeleteClick(token)} aria-label={t("account_tokens_dialog_title_delete")}> )} {token.token === session.token() && ( )}
      ))}
      setSnackOpen(false)} message={t("account_tokens_table_copied_to_clipboard")} />
      ); }; const TokenDialog = (props) => { const theme = useTheme(); const { t } = useTranslation(); const [error, setError] = useState(""); const [label, setLabel] = useState(props.token?.label || ""); const [expires, setExpires] = useState(props.token ? -1 : 0); const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); const editMode = !!props.token; const handleSubmit = async () => { try { if (editMode) { await accountApi.updateToken(props.token.token, label, expires); } else { await accountApi.createToken(label, expires); } props.onClose(); } catch (e) { console.log(`[Account] Error creating token`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } else { setError(e.message); } } }; return ( {editMode ? t("account_tokens_dialog_title_edit") : t("account_tokens_dialog_title_create")} setLabel(ev.target.value)} fullWidth variant="standard" /> ); }; const TokenDeleteDialog = (props) => { const { t } = useTranslation(); const [error, setError] = useState(""); const handleSubmit = async () => { try { await accountApi.deleteToken(props.token.token); props.onClose(); } catch (e) { console.log(`[Account] Error deleting token`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } else { setError(e.message); } } }; return ( {t("account_tokens_delete_dialog_title")} ); }; const Delete = () => { const { t } = useTranslation(); return ( {t("account_delete_title")} ); }; const DeleteAccount = () => { const { t } = useTranslation(); const [dialogKey, setDialogKey] = useState(0); const [dialogOpen, setDialogOpen] = useState(false); const handleDialogOpen = () => { setDialogKey((prev) => prev + 1); setDialogOpen(true); }; const handleDialogClose = () => { setDialogOpen(false); }; return (
      ); }; const DeleteAccountDialog = (props) => { const theme = useTheme(); const { t } = useTranslation(); const { account } = useContext(AccountContext); const [error, setError] = useState(""); const [password, setPassword] = useState(""); const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); const handleSubmit = async () => { try { await accountApi.delete(password); await db().delete(); console.debug(`[Account] Account deleted`); await session.resetAndRedirect(routes.app); } catch (e) { console.log(`[Account] Error deleting account`, e); if (e instanceof IncorrectPasswordError) { setError(t("account_basics_password_dialog_current_password_incorrect")); } else if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } else { setError(e.message); } } }; return ( {t("account_delete_title")} {t("account_delete_dialog_description")} setPassword(ev.target.value)} fullWidth variant="standard" /> {account?.billing?.subscription && ( {t("account_delete_dialog_billing_warning")} )} ); }; export default Account; ntfy-2.11.0/web/src/components/ActionBar.jsx000066400000000000000000000137371462047176100207170ustar00rootroot00000000000000import { AppBar, Toolbar, IconButton, Typography, Box, MenuItem, Button, Divider, ListItemIcon, useTheme } from "@mui/material"; import MenuIcon from "@mui/icons-material/Menu"; import * as React from "react"; import { useState } from "react"; import { useLocation, useNavigate } from "react-router-dom"; import MoreVertIcon from "@mui/icons-material/MoreVert"; import NotificationsIcon from "@mui/icons-material/Notifications"; import NotificationsOffIcon from "@mui/icons-material/NotificationsOff"; import { useTranslation } from "react-i18next"; import AccountCircleIcon from "@mui/icons-material/AccountCircle"; import { Logout, Person, Settings } from "@mui/icons-material"; import session from "../app/Session"; import logo from "../img/ntfy.svg"; import subscriptionManager from "../app/SubscriptionManager"; import routes from "./routes"; import db from "../app/db"; import { topicDisplayName } from "../app/utils"; import Navigation from "./Navigation"; import accountApi from "../app/AccountApi"; import PopupMenu from "./PopupMenu"; import { SubscriptionPopup } from "./SubscriptionPopup"; import { useIsLaunchedPWA } from "./hooks"; const ActionBar = (props) => { const theme = useTheme(); const { t } = useTranslation(); const location = useLocation(); const isLaunchedPWA = useIsLaunchedPWA(); let title = "ntfy"; if (props.selected) { title = topicDisplayName(props.selected); } else if (location.pathname === routes.settings) { title = t("action_bar_settings"); } else if (location.pathname === routes.account) { title = t("action_bar_account"); } const getActionBarBackground = () => { if (isLaunchedPWA) { return "#317f6f"; } switch (theme.palette.mode) { case "dark": return "linear-gradient(150deg, #203631 0%, #2a6e60 100%)"; case "light": default: return "linear-gradient(150deg, #338574 0%, #56bda8 100%)"; } }; return ( Navigation (1200), but < Dialog (1300) ml: { sm: `${Navigation.width}px` }, }} > {title} {props.selected && } ); }; const SettingsIcons = (props) => { const { t } = useTranslation(); const [anchorEl, setAnchorEl] = useState(null); const { subscription } = props; const handleToggleMute = async () => { const mutedUntil = subscription.mutedUntil ? 0 : 1; // Make this a timestamp in the future await subscriptionManager.setMutedUntil(subscription.id, mutedUntil); }; return ( <> {subscription.mutedUntil ? : } setAnchorEl(ev.currentTarget)} aria-label={t("action_bar_toggle_action_menu")} > setAnchorEl(null)} /> ); }; const ProfileIcon = () => { const { t } = useTranslation(); const [anchorEl, setAnchorEl] = useState(null); const open = Boolean(anchorEl); const navigate = useNavigate(); const handleClick = (event) => { setAnchorEl(event.currentTarget); }; const handleClose = () => { setAnchorEl(null); }; const handleLogout = async () => { try { await accountApi.logout(); await db().delete(); } finally { await session.resetAndRedirect(routes.app); } }; return ( <> {session.exists() && ( )} {!session.exists() && config.enable_login && ( )} {!session.exists() && config.enable_signup && ( )} navigate(routes.account)}> {session.username()} navigate(routes.settings)}> {t("action_bar_profile_settings")} {t("action_bar_profile_logout")} ); }; export default ActionBar; ntfy-2.11.0/web/src/components/App.jsx000066400000000000000000000143421462047176100175660ustar00rootroot00000000000000import * as React from "react"; import { createContext, Suspense, useContext, useEffect, useState, useMemo } from "react"; import { Box, Toolbar, CssBaseline, Backdrop, CircularProgress, useMediaQuery, ThemeProvider, createTheme } from "@mui/material"; import { useLiveQuery } from "dexie-react-hooks"; import { BrowserRouter, Outlet, Route, Routes, useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { AllSubscriptions, SingleSubscription } from "./Notifications"; import { darkTheme, lightTheme } from "./theme"; import Navigation from "./Navigation"; import ActionBar from "./ActionBar"; import Preferences from "./Preferences"; import subscriptionManager from "../app/SubscriptionManager"; import userManager from "../app/UserManager"; import { expandUrl, getKebabCaseLangStr } from "../app/utils"; import ErrorBoundary from "./ErrorBoundary"; import routes from "./routes"; import { useAccountListener, useBackgroundProcesses, useConnectionListeners, useWebPushTopics } from "./hooks"; import PublishDialog from "./PublishDialog"; import Messaging from "./Messaging"; import Login from "./Login"; import Signup from "./Signup"; import Account from "./Account"; import initI18n from "../app/i18n"; // Translations! import prefs, { THEME } from "../app/Prefs"; import RTLCacheProvider from "./RTLCacheProvider"; initI18n(); export const AccountContext = createContext(null); const darkModeEnabled = (prefersDarkMode, themePreference) => { switch (themePreference) { case THEME.DARK: return true; case THEME.LIGHT: return false; case THEME.SYSTEM: default: return prefersDarkMode; } }; const App = () => { const { i18n } = useTranslation(); const languageDir = i18n.dir(); const [account, setAccount] = useState(null); const accountMemo = useMemo(() => ({ account, setAccount }), [account, setAccount]); const prefersDarkMode = useMediaQuery("(prefers-color-scheme: dark)"); const themePreference = useLiveQuery(() => prefs.theme()); const theme = React.useMemo( () => createTheme({ ...(darkModeEnabled(prefersDarkMode, themePreference) ? darkTheme : lightTheme), direction: languageDir }), [prefersDarkMode, themePreference, languageDir] ); useEffect(() => { document.documentElement.setAttribute("lang", getKebabCaseLangStr(i18n.language)); document.dir = languageDir; }, [i18n.language, languageDir]); return ( }> } /> } /> }> } /> } /> } /> } /> } /> ); }; const updateTitle = (newNotificationsCount) => { document.title = newNotificationsCount > 0 ? `(${newNotificationsCount}) ntfy` : "ntfy"; window.navigator.setAppBadge?.(newNotificationsCount); }; const Layout = () => { const params = useParams(); const { account, setAccount } = useContext(AccountContext); const [mobileDrawerOpen, setMobileDrawerOpen] = useState(false); const [sendDialogOpenMode, setSendDialogOpenMode] = useState(""); const users = useLiveQuery(() => userManager.all()); const subscriptions = useLiveQuery(() => subscriptionManager.all()); const webPushTopics = useWebPushTopics(); const subscriptionsWithoutInternal = subscriptions?.filter((s) => !s.internal); const newNotificationsCount = subscriptionsWithoutInternal?.reduce((prev, cur) => prev + cur.new, 0) || 0; const [selected] = (subscriptionsWithoutInternal || []).filter( (s) => (params.baseUrl && expandUrl(params.baseUrl).includes(s.baseUrl) && params.topic === s.topic) || (config.base_url === s.baseUrl && params.topic === s.topic) ); useConnectionListeners(account, subscriptions, users, webPushTopics); useAccountListener(setAccount); useBackgroundProcesses(); useEffect(() => updateTitle(newNotificationsCount), [newNotificationsCount]); return ( setMobileDrawerOpen(!mobileDrawerOpen)} /> setMobileDrawerOpen(!mobileDrawerOpen)} onPublishMessageClick={() => setSendDialogOpenMode(PublishDialog.OPEN_MODE_DEFAULT)} />
      ); }; const Main = (props) => ( (palette.mode === "light" ? palette.grey[100] : palette.grey[900]), }} > {props.children} ); const Loader = () => ( (palette.mode === "light" ? palette.grey[100] : palette.grey[900]), }} > ); export default App; ntfy-2.11.0/web/src/components/AttachmentIcon.jsx000066400000000000000000000030001462047176100217340ustar00rootroot00000000000000import * as React from "react"; import { Box, Link } from "@mui/material"; import { useTranslation } from "react-i18next"; import fileDocument from "../img/file-document.svg"; import fileImage from "../img/file-image.svg"; import fileVideo from "../img/file-video.svg"; import fileAudio from "../img/file-audio.svg"; import fileApp from "../img/file-app.svg"; const AttachmentIcon = (props) => { const { t } = useTranslation(); const { type } = props; let imageFile; let imageLabel; if (!type) { imageFile = fileDocument; imageLabel = t("notifications_attachment_file_image"); } else if (type.startsWith("image/")) { imageFile = fileImage; imageLabel = t("notifications_attachment_file_video"); } else if (type.startsWith("video/")) { imageFile = fileVideo; imageLabel = t("notifications_attachment_file_video"); } else if (type.startsWith("audio/")) { imageFile = fileAudio; imageLabel = t("notifications_attachment_file_audio"); } else if (type === "application/vnd.android.package-archive") { imageFile = fileApp; imageLabel = t("notifications_attachment_file_app"); } else { imageFile = fileDocument; imageLabel = t("notifications_attachment_file_document"); } return ( ); }; export default AttachmentIcon; ntfy-2.11.0/web/src/components/AvatarBox.jsx000066400000000000000000000011271462047176100207320ustar00rootroot00000000000000import * as React from "react"; import { Avatar, Box, styled } from "@mui/material"; import logo from "../img/ntfy-filled.svg"; const AvatarBoxContainer = styled(Box)` display: flex; flex-grow: 1; justify-content: center; flex-direction: column; align-content: center; align-items: center; height: 100dvh; max-width: min(400px, 90dvw); margin: auto; `; const AvatarBox = (props) => ( {props.children} ); export default AvatarBox; ntfy-2.11.0/web/src/components/DialogFooter.jsx000066400000000000000000000012161462047176100214200ustar00rootroot00000000000000import * as React from "react"; import { Box, DialogContentText, DialogActions } from "@mui/material"; const DialogFooter = (props) => ( {props.status} {props.children} ); export default DialogFooter; ntfy-2.11.0/web/src/components/EmojiPicker.jsx000066400000000000000000000122721462047176100212470ustar00rootroot00000000000000import * as React from "react"; import { useRef, useState } from "react"; import { Typography, Box, TextField, ClickAwayListener, Fade, InputAdornment, styled, IconButton, Popper } from "@mui/material"; import { Close } from "@mui/icons-material"; import { useTranslation } from "react-i18next"; import { splitNoEmpty } from "../app/utils"; import { rawEmojis } from "../app/emojis"; // Create emoji list by category and create a search base (string with all search words) // // This also filters emojis that are not supported by Desktop Chrome. // This is a hack, but on Ubuntu 18.04, with Chrome 99, only Emoji <= 11 are supported. const emojisByCategory = {}; const isDesktopChrome = /Chrome/.test(navigator.userAgent) && !/Mobile/.test(navigator.userAgent); const maxSupportedVersionForDesktopChrome = 11; rawEmojis.forEach((emoji) => { if (!emojisByCategory[emoji.category]) { emojisByCategory[emoji.category] = []; } try { const unicodeVersion = parseFloat(emoji.unicode_version); const supportedEmoji = unicodeVersion <= maxSupportedVersionForDesktopChrome || !isDesktopChrome; if (supportedEmoji) { const searchBase = `${emoji.description.toLowerCase()} ${emoji.aliases.join(" ")} ${emoji.tags.join(" ")}`; const emojiWithSearchBase = { ...emoji, searchBase }; emojisByCategory[emoji.category].push(emojiWithSearchBase); } } catch (e) { // Nothing. Ignore. } }); const EmojiPicker = (props) => { const { t } = useTranslation(); const open = Boolean(props.anchorEl); const [search, setSearch] = useState(""); const searchRef = useRef(null); const searchFields = splitNoEmpty(search.toLowerCase(), " "); const handleSearchClear = () => { setSearch(""); searchRef.current?.focus(); }; return ( {({ TransitionProps }) => ( setSearch(ev.target.value)} type="text" variant="standard" fullWidth sx={{ marginTop: 0, marginBottom: "12px", paddingRight: 2 }} inputProps={{ role: "searchbox", "aria-label": t("emoji_picker_search_placeholder"), }} InputProps={{ endAdornment: ( ), }} /> {Object.keys(emojisByCategory).map((category) => ( ))} )} ); }; const Category = (props) => { const showTitle = props.search.length === 0; return ( <> {showTitle && ( {props.title} )} {props.emojis.map((emoji) => ( props.onPick(emoji.aliases[0])} /> ))} ); }; const emojiMatches = (emoji, words) => words.length === 0 || words.some((word) => emoji.searchBase.includes(word)); const Emoji = (props) => { const { emoji } = props; const matches = emojiMatches(emoji, props.search); const title = `${emoji.description} (${emoji.aliases[0]})`; return ( {props.emoji.emoji} ); }; const EmojiDiv = styled("div")({ fontSize: "30px", width: "30px", height: "30px", marginTop: "8px", marginBottom: "8px", marginRight: "8px", lineHeight: "30px", cursor: "pointer", opacity: 0.85, "&:hover": { opacity: 1, }, }); export default EmojiPicker; ntfy-2.11.0/web/src/components/ErrorBoundary.jsx000066400000000000000000000104441462047176100216420ustar00rootroot00000000000000import * as React from "react"; import StackTrace from "stacktrace-js"; import { CircularProgress, Link, Button } from "@mui/material"; import { Trans, withTranslation } from "react-i18next"; class ErrorBoundaryImpl extends React.Component { constructor(props) { super(props); this.state = { error: false, originalStack: null, niceStack: null, unsupportedIndexedDB: false, }; } componentDidCatch(error, info) { console.error("[ErrorBoundary] Error caught", error, info); // Special case for unsupported IndexedDB in Private Browsing mode (Firefox, Safari), see // - https://github.com/dexie/Dexie.js/issues/312 // - https://bugzilla.mozilla.org/show_bug.cgi?id=781982 const isUnsupportedIndexedDB = error?.name === "InvalidStateError" || (error?.name === "DatabaseClosedError" && error?.message?.indexOf("InvalidStateError") !== -1); if (isUnsupportedIndexedDB) { this.handleUnsupportedIndexedDB(); } else { this.handleError(error, info); } } handleError(error, info) { // Immediately render original stack trace const prettierOriginalStack = info.componentStack .trim() .split("\n") .map((line) => ` at ${line}`) .join("\n"); this.setState({ error: true, originalStack: `${error.toString()}\n${prettierOriginalStack}`, }); // Fetch additional info and a better stack trace StackTrace.fromError(error).then((stack) => { console.error("[ErrorBoundary] Stacktrace fetched", stack); const stackString = stack.map((el) => ` at ${el.functionName} (${el.fileName}:${el.columnNumber}:${el.lineNumber})`).join("\n"); const niceStack = `${error.toString()}\n${stackString}`; this.setState({ niceStack }); }); } handleUnsupportedIndexedDB() { this.setState({ error: true, unsupportedIndexedDB: true, }); } copyStack() { let stack = ""; if (this.state.niceStack) { stack += `${this.state.niceStack}\n\n`; } stack += `${this.state.originalStack}\n`; navigator.clipboard.writeText(stack); } renderUnsupportedIndexedDB() { const { t } = this.props; return (

      {t("error_boundary_unsupported_indexeddb_title")} 😮

      , discordLink: , matrixLink: , }} />

      ); } renderError() { const { t } = this.props; return (

      {t("error_boundary_title")} 😮

      , discordLink: , matrixLink: , }} />

      {t("error_boundary_stack_trace")}

      {this.state.niceStack ? (
      {this.state.niceStack}
      ) : ( <> {t("error_boundary_gathering_info")} )}
      {this.state.originalStack}
      ); } render() { if (this.state.error) { if (this.state.unsupportedIndexedDB) { return this.renderUnsupportedIndexedDB(); } return this.renderError(); } return this.props.children; } } const ErrorBoundary = withTranslation()(ErrorBoundaryImpl); // Adds props.t export default ErrorBoundary; ntfy-2.11.0/web/src/components/Login.jsx000066400000000000000000000076331462047176100201230ustar00rootroot00000000000000import * as React from "react"; import { useState } from "react"; import { Typography, TextField, Button, Box, IconButton, InputAdornment } from "@mui/material"; import WarningAmberIcon from "@mui/icons-material/WarningAmber"; import { NavLink } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { Visibility, VisibilityOff } from "@mui/icons-material"; import accountApi from "../app/AccountApi"; import AvatarBox from "./AvatarBox"; import session from "../app/Session"; import routes from "./routes"; import { UnauthorizedError } from "../app/errors"; const Login = () => { const { t } = useTranslation(); const [error, setError] = useState(""); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [showPassword, setShowPassword] = useState(false); const handleSubmit = async (event) => { event.preventDefault(); const user = { username, password }; try { const token = await accountApi.login(user); console.log(`[Login] User auth for user ${user.username} successful, token is ${token}`); await session.store(user.username, token); window.location.href = routes.app; } catch (e) { console.log(`[Login] User auth for user ${user.username} failed`, e); if (e instanceof UnauthorizedError) { setError(t("Login failed: Invalid username or password")); } else { setError(e.message); } } }; if (!config.enable_login) { return ( {t("login_disabled")} ); } return ( {t("login_title")} setUsername(ev.target.value.trim())} autoFocus /> setPassword(ev.target.value.trim())} autoComplete="current-password" InputProps={{ endAdornment: ( setShowPassword(!showPassword)} onMouseDown={(ev) => ev.preventDefault()} edge="end" > {showPassword ? : } ), }} /> {error && ( {error} )} {/* This is where the password reset link would go */} {config.enable_signup && (
      {t("login_link_signup")}
      )}
      ); }; export default Login; ntfy-2.11.0/web/src/components/Messaging.jsx000066400000000000000000000102641462047176100207620ustar00rootroot00000000000000import * as React from "react"; import { useState } from "react"; import { Paper, IconButton, TextField, Portal, Snackbar } from "@mui/material"; import SendIcon from "@mui/icons-material/Send"; import KeyboardArrowUpIcon from "@mui/icons-material/KeyboardArrowUp"; import { useTranslation } from "react-i18next"; import PublishDialog from "./PublishDialog"; import api from "../app/Api"; import Navigation from "./Navigation"; const Messaging = (props) => { const [message, setMessage] = useState(""); const [attachFile, setAttachFile] = useState(null); const [dialogKey, setDialogKey] = useState(0); const { dialogOpenMode } = props; const subscription = props.selected; const handleOpenDialogClick = () => { props.onDialogOpenModeChange(PublishDialog.OPEN_MODE_DEFAULT); }; const handleDialogClose = () => { props.onDialogOpenModeChange(""); setDialogKey((prev) => prev + 1); setAttachFile(null); }; const getPastedImage = (ev) => { const { items } = ev.clipboardData; for (let i = 0; i < items.length; i += 1) { if (items[i].type.indexOf("image") !== -1) { return items[i].getAsFile(); } } return null; }; return ( <> {subscription && ( )} props.onDialogOpenModeChange((prev) => prev || PublishDialog.OPEN_MODE_DRAG)} // Only update if not already open onResetOpenMode={() => props.onDialogOpenModeChange(PublishDialog.OPEN_MODE_DEFAULT)} /> ); }; const MessageBar = (props) => { const { t } = useTranslation(); const { subscription } = props; const [snackOpen, setSnackOpen] = useState(false); const handleSendClick = async () => { try { await api.publish(subscription.baseUrl, subscription.topic, props.message); } catch (e) { console.log(`[MessageBar] Error publishing message`, e); setSnackOpen(true); } props.onMessageChange(""); }; const handlePaste = (ev) => { const blob = props.getPastedImage(ev); if (blob) { props.onFilePasted(blob); props.onOpenDialogClick(); } }; return ( (theme.palette.mode === "light" ? theme.palette.grey[100] : theme.palette.grey[900]), }} > props.onMessageChange(ev.target.value)} onKeyPress={(ev) => { if (ev.key === "Enter") { ev.preventDefault(); handleSendClick(); } }} onPaste={handlePaste} /> setSnackOpen(false)} message={t("message_bar_error_publishing")} /> ); }; export default Messaging; ntfy-2.11.0/web/src/components/Navigation.jsx000066400000000000000000000373051462047176100211510ustar00rootroot00000000000000import { Drawer, ListItemButton, ListItemIcon, ListItemText, Toolbar, Divider, List, Alert, AlertTitle, Badge, CircularProgress, Link, ListSubheader, Portal, Tooltip, Typography, Box, IconButton, Button, useTheme, } from "@mui/material"; import * as React from "react"; import { useContext, useState } from "react"; import ChatBubbleOutlineIcon from "@mui/icons-material/ChatBubbleOutline"; import Person from "@mui/icons-material/Person"; import SettingsIcon from "@mui/icons-material/Settings"; import AddIcon from "@mui/icons-material/Add"; import { useLocation, useNavigate } from "react-router-dom"; import { ChatBubble, MoreVert, NotificationsOffOutlined, Send } from "@mui/icons-material"; import ArticleIcon from "@mui/icons-material/Article"; import { Trans, useTranslation } from "react-i18next"; import CelebrationIcon from "@mui/icons-material/Celebration"; import SubscribeDialog from "./SubscribeDialog"; import { openUrl, topicDisplayName, topicUrl } from "../app/utils"; import routes from "./routes"; import { ConnectionState } from "../app/Connection"; import subscriptionManager from "../app/SubscriptionManager"; import notifier from "../app/Notifier"; import config from "../app/config"; import session from "../app/Session"; import accountApi, { Permission, Role } from "../app/AccountApi"; import UpgradeDialog from "./UpgradeDialog"; import { AccountContext } from "./App"; import { PermissionDenyAll, PermissionRead, PermissionReadWrite, PermissionWrite } from "./ReserveIcons"; import { SubscriptionPopup } from "./SubscriptionPopup"; import { useNotificationPermissionListener } from "./hooks"; const navWidth = 280; const Navigation = (props) => { const navigationList = ; return ( {/* Mobile drawer; only shown if menu icon clicked (mobile open) and display is small */} {navigationList} {/* Big screen drawer; persistent, shown if screen is big */} {navigationList} ); }; Navigation.width = navWidth; const NavList = (props) => { const theme = useTheme(); const { t } = useTranslation(); const navigate = useNavigate(); const location = useLocation(); const { account } = useContext(AccountContext); const [subscribeDialogKey, setSubscribeDialogKey] = useState(0); const [subscribeDialogOpen, setSubscribeDialogOpen] = useState(false); const handleSubscribeReset = () => { setSubscribeDialogOpen(false); setSubscribeDialogKey((prev) => prev + 1); }; const handleSubscribeSubmit = (subscription) => { console.log(`[Navigation] New subscription: ${subscription.id}`, subscription); handleSubscribeReset(); navigate(routes.forSubscription(subscription)); }; const handleAccountClick = () => { accountApi.sync(); // Dangle! navigate(routes.account); }; const isAdmin = account?.role === Role.ADMIN; const isPaid = account?.billing?.subscription; const showUpgradeBanner = config.enable_payments && !isAdmin && !isPaid; const showSubscriptionsList = props.subscriptions?.length > 0; const showNotificationPermissionRequired = useNotificationPermissionListener(() => notifier.notRequested()); const showNotificationPermissionDenied = useNotificationPermissionListener(() => notifier.denied()); const showNotificationIOSInstallRequired = notifier.iosSupportedButInstallRequired(); const showNotificationBrowserNotSupportedBox = !showNotificationIOSInstallRequired && !notifier.browserSupported(); const showNotificationContextNotSupportedBox = notifier.browserSupported() && !notifier.contextSupported(); // Only show if notifications are generally supported in the browser const alertVisible = showNotificationPermissionRequired || showNotificationPermissionDenied || showNotificationIOSInstallRequired || showNotificationBrowserNotSupportedBox || showNotificationContextNotSupportedBox; return ( <> {showNotificationPermissionRequired && } {showNotificationPermissionDenied && } {showNotificationBrowserNotSupportedBox && } {showNotificationContextNotSupportedBox && } {showNotificationIOSInstallRequired && } {alertVisible && } {!showSubscriptionsList && ( navigate(routes.app)} selected={location.pathname === config.app_root}> )} {showSubscriptionsList && ( <> {t("nav_topics_title")} navigate(routes.app)} selected={location.pathname === config.app_root}> )} {session.exists() && ( )} navigate(routes.settings)} selected={location.pathname === routes.settings}> openUrl("/docs")}> props.onPublishMessageClick()}> setSubscribeDialogOpen(true)}> {showUpgradeBanner && ( // The text background gradient didn't seem to do well with switching between light/dark mode, // So adding a `key` forces React to replace the entire component when the theme changes )} ); }; const UpgradeBanner = ({ mode }) => { const { t } = useTranslation(); const [dialogKey, setDialogKey] = useState(0); const [dialogOpen, setDialogOpen] = useState(false); const handleClick = () => { setDialogKey((k) => k + 1); setDialogOpen(true); }; return ( setDialogOpen(false)} /> ); }; const SubscriptionList = (props) => { const sortedSubscriptions = props.subscriptions .filter((s) => !s.internal) .sort((a, b) => (topicUrl(a.baseUrl, a.topic) < topicUrl(b.baseUrl, b.topic) ? -1 : 1)); return ( <> {sortedSubscriptions.map((subscription) => ( ))} ); }; const SubscriptionItem = (props) => { const { t } = useTranslation(); const navigate = useNavigate(); const [menuAnchorEl, setMenuAnchorEl] = useState(null); const { subscription } = props; const iconBadge = subscription.new <= 99 ? subscription.new : "99+"; const displayName = topicDisplayName(subscription); const ariaLabel = subscription.state === ConnectionState.Connecting ? `${displayName} (${t("nav_button_connecting")})` : displayName; const icon = subscription.state === ConnectionState.Connecting ? ( ) : ( ); const handleClick = async () => { navigate(routes.forSubscription(subscription)); await subscriptionManager.markNotificationsRead(subscription.id); }; return ( <> {icon} {subscription.reservation?.everyone && ( {subscription.reservation?.everyone === Permission.READ_WRITE && ( )} {subscription.reservation?.everyone === Permission.READ_ONLY && ( )} {subscription.reservation?.everyone === Permission.WRITE_ONLY && ( )} {subscription.reservation?.everyone === Permission.DENY_ALL && ( )} )} {subscription.mutedUntil > 0 && ( )} e.stopPropagation()} onClick={(e) => { e.stopPropagation(); setMenuAnchorEl(e.currentTarget); }} > setMenuAnchorEl(null)} /> ); }; const NotificationPermissionRequired = () => { const { t } = useTranslation(); const requestPermission = async () => { await notifier.maybeRequestPermission(); }; return ( {t("alert_notification_permission_required_title")} {t("alert_notification_permission_required_description")} ); }; const NotificationPermissionDeniedAlert = () => { const { t } = useTranslation(); return ( {t("alert_notification_permission_denied_title")} {t("alert_notification_permission_denied_description")} ); }; const NotificationIOSInstallRequiredAlert = () => { const { t } = useTranslation(); return ( {t("alert_notification_ios_install_required_title")} {t("alert_notification_ios_install_required_description")} ); }; const NotificationBrowserNotSupportedAlert = () => { const { t } = useTranslation(); return ( {t("alert_not_supported_title")} {t("alert_not_supported_description")} ); }; const NotificationContextNotSupportedAlert = () => { const { t } = useTranslation(); return ( {t("alert_not_supported_title")} , }} /> ); }; export default Navigation; ntfy-2.11.0/web/src/components/Notifications.jsx000066400000000000000000000501041462047176100216530ustar00rootroot00000000000000import { Container, ButtonBase, CardActions, CardContent, CircularProgress, Fade, Link, Modal, Snackbar, Stack, Tooltip, Card, Typography, IconButton, Box, Button, } from "@mui/material"; import * as React from "react"; import { useEffect, useState } from "react"; import CheckIcon from "@mui/icons-material/Check"; import CloseIcon from "@mui/icons-material/Close"; import { useLiveQuery } from "dexie-react-hooks"; import InfiniteScroll from "react-infinite-scroll-component"; import { Trans, useTranslation } from "react-i18next"; import { useOutletContext } from "react-router-dom"; import { useRemark } from "react-remark"; import styled from "@emotion/styled"; import { formatBytes, formatShortDateTime, maybeActionErrors, openUrl, shortUrl, topicShortUrl, unmatchedTags } from "../app/utils"; import { formatMessage, formatTitle, isImage } from "../app/notificationUtils"; import { LightboxBackdrop, Paragraph, VerticallyCenteredContainer } from "./styles"; import subscriptionManager from "../app/SubscriptionManager"; import priority1 from "../img/priority-1.svg"; import priority2 from "../img/priority-2.svg"; import priority4 from "../img/priority-4.svg"; import priority5 from "../img/priority-5.svg"; import logoOutline from "../img/ntfy-outline.svg"; import AttachmentIcon from "./AttachmentIcon"; import { useAutoSubscribe } from "./hooks"; const priorityFiles = { 1: priority1, 2: priority2, 4: priority4, 5: priority5, }; export const AllSubscriptions = () => { const { subscriptions } = useOutletContext(); if (!subscriptions) { return ; } return ; }; export const SingleSubscription = () => { const { subscriptions, selected } = useOutletContext(); useAutoSubscribe(subscriptions, selected); if (!selected) { return ; } return ; }; const AllSubscriptionsList = (props) => { const { subscriptions } = props; const notifications = useLiveQuery(() => subscriptionManager.getAllNotifications(), []); if (notifications === null || notifications === undefined) { return ; } if (subscriptions.length === 0) { return ; } if (notifications.length === 0) { return ; } return ; }; const SingleSubscriptionList = (props) => { const { subscription } = props; const notifications = useLiveQuery(() => subscriptionManager.getNotifications(subscription.id), [subscription]); if (notifications === null || notifications === undefined) { return ; } if (notifications.length === 0) { return ; } return ; }; const NotificationList = (props) => { const { t } = useTranslation(); const pageSize = 20; const { notifications } = props; const [snackOpen, setSnackOpen] = useState(false); const [maxCount, setMaxCount] = useState(pageSize); const count = Math.min(notifications.length, maxCount); useEffect( () => () => { setMaxCount(pageSize); const main = document.getElementById("main"); if (main) { main.scrollTo(0, 0); } }, [props.id] ); return ( setMaxCount((prev) => prev + pageSize)} hasMore={count < notifications.length} loader={<>Loading ...} scrollThreshold={0.7} scrollableTarget="main" > {notifications.slice(0, count).map((notification) => ( setSnackOpen(true)} /> ))} setSnackOpen(false)} message={t("notifications_copied_to_clipboard")} /> ); }; /** * Replace links with components; this is a combination of the genius function * in [1] and the regex in [2]. * * [1] https://github.com/facebook/react/issues/3386#issuecomment-78605760 * [2] https://github.com/bryanwoods/autolink-js/blob/master/autolink.js#L9 */ const autolink = (s) => { const parts = s.split(/(\bhttps?:\/\/[-A-Z0-9+\u0026\u2019@#/%?=()~_|!:,.;]*[-A-Z0-9+\u0026@#/%=~()_|]\b)/gi); for (let i = 1; i < parts.length; i += 2) { parts[i] = ( {shortUrl(parts[i])} ); } return <>{parts}; }; const MarkdownContainer = styled("div")` line-height: 1; h1, h2, h3, h4, h5, h6, p, pre, ul, ol, blockquote { margin: 0; } p { line-height: 1.2; } blockquote, pre { border-radius: 3px; background: ${(props) => (props.theme.palette.mode === "light" ? "#f5f5f5" : "#333")}; } pre { padding: 0.9rem; } ul, ol, blockquote { padding-inline: 1rem; } img { max-width: 100%; } `; const MarkdownContent = ({ content }) => { const [reactContent, setMarkdownSource] = useRemark(); useEffect(() => { setMarkdownSource(content); }, [content]); return {reactContent}; }; const NotificationBody = ({ notification }) => { const displayAsMarkdown = notification.content_type === "text/markdown"; const formatted = formatMessage(notification); if (displayAsMarkdown) { return ; } return autolink(formatted); }; const NotificationItem = (props) => { const { t, i18n } = useTranslation(); const { notification } = props; const { attachment } = notification; const date = formatShortDateTime(notification.time, i18n.language); const otherTags = unmatchedTags(notification.tags); const tags = otherTags.length > 0 ? otherTags.join(", ") : null; const handleDelete = async () => { console.log(`[Notifications] Deleting notification ${notification.id}`); await subscriptionManager.deleteNotification(notification.id); }; const handleMarkRead = async () => { console.log(`[Notifications] Marking notification ${notification.id} as read`); await subscriptionManager.markNotificationRead(notification.id); }; const handleCopy = (s) => { navigator.clipboard.writeText(s); props.onShowSnack(); }; const expired = attachment && attachment.expires && attachment.expires < Date.now() / 1000; const hasAttachmentActions = attachment && !expired; const hasClickAction = notification.click; const hasUserActions = notification.actions && notification.actions.length > 0; const showActions = hasAttachmentActions || hasClickAction || hasUserActions; return ( {notification.new === 1 && ( )} {date} {[1, 2, 4, 5].includes(notification.priority) && ( {t("notifications_priority_x", )} {notification.new === 1 && ( )} {notification.title && ( {formatTitle(notification)} )} {maybeActionErrors(notification)} {attachment && } {tags && ( {t("notifications_tags")}: {tags} )} {showActions && ( {hasAttachmentActions && ( <> )} {hasClickAction && ( <> )} {hasUserActions && } )} ); }; const Attachment = (props) => { const { t, i18n } = useTranslation(); const { attachment } = props; const expired = attachment.expires && attachment.expires < Date.now() / 1000; const expires = attachment.expires && attachment.expires > Date.now() / 1000; const displayableImage = !expired && isImage(attachment); // Unexpired image if (displayableImage) { return ; } // Anything else: Show box const infos = []; if (attachment.size) { infos.push(formatBytes(attachment.size)); } if (expires) { infos.push( t("notifications_attachment_link_expires", { date: formatShortDateTime(attachment.expires, i18n.language), }) ); } if (expired) { infos.push(t("notifications_attachment_link_expired")); } const maybeInfoText = infos.length > 0 ? ( <>
      {infos.join(", ")} ) : null; // If expired, just show infos without click target if (expired) { return ( {attachment.name} {maybeInfoText} ); } // Not expired return ( {attachment.name} {maybeInfoText} ); }; const Image = (props) => { const { t } = useTranslation(); const [open, setOpen] = useState(false); return ( <> setOpen(true)} sx={{ marginTop: 2, borderRadius: "4px", boxShadow: 2, width: 1, maxHeight: "400px", objectFit: "cover", cursor: "pointer", }} /> setOpen(false)} BackdropComponent={LightboxBackdrop}> ); }; const UserActions = (props) => ( <> {props.notification.actions.map((action) => ( ))} ); const ACTION_PROGRESS_ONGOING = 1; const ACTION_PROGRESS_SUCCESS = 2; const ACTION_PROGRESS_FAILED = 3; const ACTION_LABEL_SUFFIX = { [ACTION_PROGRESS_ONGOING]: " …", [ACTION_PROGRESS_SUCCESS]: " ✔", [ACTION_PROGRESS_FAILED]: " ❌", }; const updateActionStatus = (notification, action, progress, error) => { subscriptionManager.updateNotification({ ...notification, actions: notification.actions.map((a) => (a.id === action.id ? { ...a, progress, error } : a)), }); }; const performHttpAction = async (notification, action) => { console.log(`[Notifications] Performing HTTP user action`, action); try { updateActionStatus(notification, action, ACTION_PROGRESS_ONGOING, null); const response = await fetch(action.url, { method: action.method ?? "POST", headers: action.headers ?? {}, // This must not null-coalesce to a non nullish value. Otherwise, the fetch API // will reject it for "having a body" body: action.body, }); console.log(`[Notifications] HTTP user action response`, response); const success = response.status >= 200 && response.status <= 299; if (success) { updateActionStatus(notification, action, ACTION_PROGRESS_SUCCESS, null); } else { updateActionStatus(notification, action, ACTION_PROGRESS_FAILED, `${action.label}: Unexpected response HTTP ${response.status}`); } } catch (e) { console.log(`[Notifications] HTTP action failed`, e); updateActionStatus(notification, action, ACTION_PROGRESS_FAILED, `${action.label}: ${e} Check developer console for details.`); } }; const UserAction = (props) => { const { t } = useTranslation(); const { notification } = props; const { action } = props; if (action.action === "broadcast") { return ( ); } if (action.action === "view") { return ( ); } if (action.action === "http") { const method = action.method ?? "POST"; const label = action.label + (ACTION_LABEL_SUFFIX[action.progress ?? 0] ?? ""); return ( ); } return null; // Others }; const NoNotifications = (props) => { const { t } = useTranslation(); const topicShortUrlResolved = topicShortUrl(props.subscription.baseUrl, props.subscription.topic); return ( {t("action_bar_logo_alt")}
      {t("notifications_none_for_topic_title")}
      {t("notifications_none_for_topic_description")} {t("notifications_example")}:
      {'$ curl -d "Hi" '} {topicShortUrlResolved}
      ); }; const NoNotificationsWithoutSubscription = (props) => { const { t } = useTranslation(); const subscription = props.subscriptions[0]; const topicShortUrlResolved = topicShortUrl(subscription.baseUrl, subscription.topic); return ( {t("action_bar_logo_alt")}
      {t("notifications_none_for_any_title")}
      {t("notifications_none_for_any_description")} {t("notifications_example")}:
      {'$ curl -d "Hi" '} {topicShortUrlResolved}
      ); }; const NoSubscriptions = () => { const { t } = useTranslation(); return ( {t("action_bar_logo_alt")}
      {t("notifications_no_subscriptions_title")}
      {t("notifications_no_subscriptions_description", { linktext: t("nav_button_subscribe"), })}
      ); }; const ForMoreDetails = () => ( , docsLink: , }} /> ); const Loading = () => { const { t } = useTranslation(); return (
      {t("notifications_loading")}
      ); }; ntfy-2.11.0/web/src/components/PopupMenu.jsx000066400000000000000000000023371462047176100207770ustar00rootroot00000000000000import { Fade, Menu } from "@mui/material"; import * as React from "react"; const PopupMenu = (props) => { const horizontal = props.horizontal ?? "left"; const arrow = horizontal === "right" ? { right: 19 } : { left: 19 }; return ( {props.children} ); }; export default PopupMenu; ntfy-2.11.0/web/src/components/Pref.jsx000066400000000000000000000024461462047176100177440ustar00rootroot00000000000000import { styled } from "@mui/material"; import * as React from "react"; export const PrefGroup = styled("div", { attrs: { role: "table" } })` display: flex; flex-direction: column; gap: 20px; `; const PrefRow = styled("div")` display: flex; flex-direction: row; > div:first-of-type { flex: 1 0 40%; display: flex; flex-direction: column; justify-content: ${(props) => (props.alignTop ? "normal" : "center")}; } > div:last-of-type { flex: 1 0 calc(60% - 50px); display: flex; flex-direction: column; justify-content: ${(props) => (props.alignTop ? "normal" : "center")}; } @media (max-width: 1000px) { flex-direction: column; gap: 10px; > :div:first-of-type, > :div:last-of-type { flex: unset; } > div:last-of-type { .MuiFormControl-root { margin: 0; } } } `; export const Pref = (props) => (
      {props.title} {props.subtitle && ({props.subtitle})}
      {props.description && (
      {props.description}
      )}
      {props.children}
      ); ntfy-2.11.0/web/src/components/Preferences.jsx000066400000000000000000000632701462047176100213130ustar00rootroot00000000000000import * as React from "react"; import { useContext, useEffect, useState } from "react"; import { Alert, CardActions, CardContent, Chip, FormControl, Select, Stack, Table, TableBody, TableCell, TableHead, TableRow, Tooltip, useMediaQuery, Typography, IconButton, Container, TextField, MenuItem, Card, Button, Dialog, DialogTitle, DialogContent, DialogActions, useTheme, } from "@mui/material"; import EditIcon from "@mui/icons-material/Edit"; import CloseIcon from "@mui/icons-material/Close"; import PlayArrowIcon from "@mui/icons-material/PlayArrow"; import { useLiveQuery } from "dexie-react-hooks"; import { useTranslation } from "react-i18next"; import { Info } from "@mui/icons-material"; import { useOutletContext } from "react-router-dom"; import userManager from "../app/UserManager"; import { playSound, shortUrl, shuffle, sounds, validUrl } from "../app/utils"; import session from "../app/Session"; import routes from "./routes"; import accountApi, { Permission, Role } from "../app/AccountApi"; import { Pref, PrefGroup } from "./Pref"; import { AccountContext } from "./App"; import { Paragraph } from "./styles"; import prefs, { THEME } from "../app/Prefs"; import { PermissionDenyAll, PermissionRead, PermissionReadWrite, PermissionWrite } from "./ReserveIcons"; import { ReserveAddDialog, ReserveDeleteDialog, ReserveEditDialog } from "./ReserveDialogs"; import { UnauthorizedError } from "../app/errors"; import { subscribeTopic } from "./SubscribeDialog"; import notifier from "../app/Notifier"; import { useIsLaunchedPWA, useNotificationPermissionListener } from "./hooks"; const maybeUpdateAccountSettings = async (payload) => { if (!session.exists()) { return; } try { await accountApi.updateSettings(payload); } catch (e) { console.log(`[Preferences] Error updating account settings`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } } }; const Preferences = () => ( ); const Notifications = () => { const { t } = useTranslation(); const isLaunchedPWA = useIsLaunchedPWA(); const pushPossible = useNotificationPermissionListener(() => notifier.pushPossible()); return ( {t("prefs_notifications_title")} {!isLaunchedPWA && pushPossible && } ); }; const Sound = () => { const { t } = useTranslation(); const labelId = "prefSound"; const sound = useLiveQuery(async () => prefs.sound()); const handleChange = async (ev) => { await prefs.setSound(ev.target.value); await maybeUpdateAccountSettings({ notification: { sound: ev.target.value, }, }); }; if (!sound) { return null; // While loading } let description; if (sound === "none") { description = t("prefs_notifications_sound_description_none"); } else { description = t("prefs_notifications_sound_description_some", { sound: sounds[sound].label, }); } return (
      playSound(sound)} disabled={sound === "none"} aria-label={t("prefs_notifications_sound_play")}>
      ); }; const MinPriority = () => { const { t } = useTranslation(); const labelId = "prefMinPriority"; const minPriority = useLiveQuery(async () => prefs.minPriority()); const handleChange = async (ev) => { await prefs.setMinPriority(ev.target.value); await maybeUpdateAccountSettings({ notification: { min_priority: ev.target.value, }, }); }; if (!minPriority) { return null; // While loading } const priorities = { 1: t("priority_min"), 2: t("priority_low"), 3: t("priority_default"), 4: t("priority_high"), 5: t("priority_max"), }; let description; if (minPriority === 1) { description = t("prefs_notifications_min_priority_description_any"); } else if (minPriority === 5) { description = t("prefs_notifications_min_priority_description_max"); } else { description = t("prefs_notifications_min_priority_description_x_or_higher", { number: minPriority, name: priorities[minPriority], }); } return ( ); }; const DeleteAfter = () => { const { t } = useTranslation(); const labelId = "prefDeleteAfter"; const deleteAfter = useLiveQuery(async () => prefs.deleteAfter()); const handleChange = async (ev) => { await prefs.setDeleteAfter(ev.target.value); await maybeUpdateAccountSettings({ notification: { delete_after: ev.target.value, }, }); }; if (deleteAfter === null || deleteAfter === undefined) { // !deleteAfter will not work with "0" return null; // While loading } const description = (() => { switch (deleteAfter) { case 0: return t("prefs_notifications_delete_after_never_description"); case 10800: return t("prefs_notifications_delete_after_three_hours_description"); case 86400: return t("prefs_notifications_delete_after_one_day_description"); case 604800: return t("prefs_notifications_delete_after_one_week_description"); case 2592000: return t("prefs_notifications_delete_after_one_month_description"); default: return ""; } })(); return ( ); }; const Theme = () => { const { t } = useTranslation(); const labelId = "prefTheme"; const theme = useLiveQuery(async () => prefs.theme()); const handleChange = async (ev) => { await prefs.setTheme(ev.target.value); }; return ( ); }; const WebPushEnabled = () => { const { t } = useTranslation(); const labelId = "prefWebPushEnabled"; const enabled = useLiveQuery(async () => prefs.webPushEnabled()); const handleChange = async (ev) => { await prefs.setWebPushEnabled(ev.target.value); }; return ( ); }; const Users = () => { const { t } = useTranslation(); const [dialogKey, setDialogKey] = useState(0); const [dialogOpen, setDialogOpen] = useState(false); const users = useLiveQuery(() => userManager.all()); const handleAddClick = () => { setDialogKey((prev) => prev + 1); setDialogOpen(true); }; const handleDialogCancel = () => { setDialogOpen(false); }; const handleDialogSubmit = async (user) => { setDialogOpen(false); try { await userManager.save(user); console.debug(`[Preferences] User ${user.username} for ${user.baseUrl} added`); } catch (e) { console.log(`[Preferences] Error adding user.`, e); } }; return ( {t("prefs_users_title")} {t("prefs_users_description")} {session.exists() && <>{` ${t("prefs_users_description_no_sync")}`}} {users?.length > 0 && } ); }; const UserTable = (props) => { const { t } = useTranslation(); const [dialogKey, setDialogKey] = useState(0); const [dialogOpen, setDialogOpen] = useState(false); const [dialogUser, setDialogUser] = useState(null); const handleEditClick = (user) => { setDialogKey((prev) => prev + 1); setDialogUser(user); setDialogOpen(true); }; const handleDialogCancel = () => { setDialogOpen(false); }; const handleDialogSubmit = async (user) => { setDialogOpen(false); try { await userManager.save(user); console.debug(`[Preferences] User ${user.username} for ${user.baseUrl} updated`); } catch (e) { console.log(`[Preferences] Error updating user.`, e); } }; const handleDeleteClick = async (user) => { try { await userManager.delete(user.baseUrl); console.debug(`[Preferences] User ${user.username} for ${user.baseUrl} deleted`); } catch (e) { console.error(`[Preferences] Error deleting user for ${user.baseUrl}`, e); } }; return ( {t("prefs_users_table_user_header")} {t("prefs_users_table_base_url_header")} {props.users?.map((user) => ( {user.username} {user.baseUrl} {(!session.exists() || user.baseUrl !== config.base_url) && ( <> handleEditClick(user)} aria-label={t("prefs_users_edit_button")}> handleDeleteClick(user)} aria-label={t("prefs_users_delete_button")}> )} {session.exists() && user.baseUrl === config.base_url && ( )} ))}
      ); }; const UserDialog = (props) => { const theme = useTheme(); const { t } = useTranslation(); const [baseUrl, setBaseUrl] = useState(""); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); const editMode = props.user !== null; const addButtonEnabled = (() => { if (editMode) { return username.length > 0 && password.length > 0; } const baseUrlValid = validUrl(baseUrl); const baseUrlExists = props.users?.map((user) => user.baseUrl).includes(baseUrl); return baseUrlValid && !baseUrlExists && username.length > 0 && password.length > 0; })(); const handleSubmit = async () => { props.onSubmit({ baseUrl, username, password, }); }; useEffect(() => { if (editMode) { setBaseUrl(props.user.baseUrl); setUsername(props.user.username); setPassword(props.user.password); } }, [editMode, props.user]); return ( {editMode ? t("prefs_users_dialog_title_edit") : t("prefs_users_dialog_title_add")} {!editMode && ( setBaseUrl(ev.target.value)} type="url" fullWidth variant="standard" /> )} setUsername(ev.target.value)} type="text" fullWidth variant="standard" /> setPassword(ev.target.value)} fullWidth variant="standard" /> ); }; const Appearance = () => { const { t } = useTranslation(); return ( {t("prefs_appearance_title")} ); }; const Language = () => { const { t, i18n } = useTranslation(); const labelId = "prefLanguage"; const lang = i18n.resolvedLanguage ?? "en"; // Country flags are displayed using emoji. Emoji rendering is handled by platform fonts. // Windows in particular does not yet play nicely with flag emoji so for now, hide flags on Windows. const randomFlags = shuffle([ "🇬🇧", "🇺🇸", "🇪🇸", "🇫🇷", "🇧🇬", "🇨🇿", "🇩🇪", "🇵🇱", "🇺🇦", "🇨🇳", "🇮🇹", "🇭🇺", "🇧🇷", "🇳🇱", "🇮🇩", "🇯🇵", "🇷🇺", "🇹🇷", "🇫🇮", ]).slice(0, 3); const showFlags = !navigator.userAgent.includes("Windows"); let title = t("prefs_appearance_language_title"); if (showFlags) { title += ` ${randomFlags.join(" ")}`; } const handleChange = async (ev) => { await i18n.changeLanguage(ev.target.value); await maybeUpdateAccountSettings({ language: ev.target.value, }); }; // Remember: Flags are not languages. Don't put flags next to the language in the list. // Languages names from: https://www.omniglot.com/language/names.htm // Better: Sidebar in Wikipedia: https://en.wikipedia.org/wiki/Bokm%C3%A5l return ( ); }; const Reservations = () => { const { t } = useTranslation(); const { account } = useContext(AccountContext); const [dialogKey, setDialogKey] = useState(0); const [dialogOpen, setDialogOpen] = useState(false); if (!config.enable_reservations || !session.exists() || !account) { return <>; } const reservations = account.reservations || []; const limitReached = account.role === Role.USER && account.stats.reservations_remaining === 0; const handleAddClick = () => { setDialogKey((prev) => prev + 1); setDialogOpen(true); }; return ( {t("prefs_reservations_title")} {t("prefs_reservations_description")} {reservations.length > 0 && } {limitReached && {t("prefs_reservations_limit_reached")}} setDialogOpen(false)} /> ); }; const ReservationsTable = (props) => { const { t } = useTranslation(); const [dialogKey, setDialogKey] = useState(0); const [dialogReservation, setDialogReservation] = useState(null); const [editDialogOpen, setEditDialogOpen] = useState(false); const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); const { subscriptions } = useOutletContext(); const localSubscriptions = subscriptions?.length > 0 ? Object.assign({}, ...subscriptions.filter((s) => s.baseUrl === config.base_url).map((s) => ({ [s.topic]: s }))) : {}; const handleEditClick = (reservation) => { setDialogKey((prev) => prev + 1); setDialogReservation(reservation); setEditDialogOpen(true); }; const handleDeleteClick = async (reservation) => { setDialogKey((prev) => prev + 1); setDialogReservation(reservation); setDeleteDialogOpen(true); }; const handleSubscribeClick = async (reservation) => { await subscribeTopic(config.base_url, reservation.topic, {}); }; return ( {t("prefs_reservations_table_topic_header")} {t("prefs_reservations_table_access_header")} {props.reservations.map((reservation) => ( {reservation.topic} {reservation.everyone === Permission.READ_WRITE && ( <> {t("prefs_reservations_table_everyone_read_write")} )} {reservation.everyone === Permission.READ_ONLY && ( <> {t("prefs_reservations_table_everyone_read_only")} )} {reservation.everyone === Permission.WRITE_ONLY && ( <> {t("prefs_reservations_table_everyone_write_only")} )} {reservation.everyone === Permission.DENY_ALL && ( <> {t("prefs_reservations_table_everyone_deny_all")} )} {!localSubscriptions[reservation.topic] && ( } onClick={() => handleSubscribeClick(reservation)} label={t("prefs_reservations_table_not_subscribed")} color="primary" variant="outlined" /> )} handleEditClick(reservation)} aria-label={t("prefs_reservations_edit_button")}> handleDeleteClick(reservation)} aria-label={t("prefs_reservations_delete_button")}> ))} setEditDialogOpen(false)} /> setDeleteDialogOpen(false)} />
      ); }; export default Preferences; ntfy-2.11.0/web/src/components/PublishDialog.jsx000066400000000000000000000761521462047176100216030ustar00rootroot00000000000000import * as React from "react"; import { useContext, useEffect, useRef, useState } from "react"; import { Checkbox, Chip, FormControl, FormControlLabel, InputLabel, Link, Select, Tooltip, useMediaQuery, TextField, Dialog, DialogTitle, DialogContent, Button, Typography, IconButton, MenuItem, Box, useTheme, } from "@mui/material"; import InsertEmoticonIcon from "@mui/icons-material/InsertEmoticon"; import { Close } from "@mui/icons-material"; import { Trans, useTranslation } from "react-i18next"; import priority1 from "../img/priority-1.svg"; import priority2 from "../img/priority-2.svg"; import priority3 from "../img/priority-3.svg"; import priority4 from "../img/priority-4.svg"; import priority5 from "../img/priority-5.svg"; import { formatBytes, maybeWithAuth, topicShortUrl, topicUrl, validTopic, validUrl } from "../app/utils"; import AttachmentIcon from "./AttachmentIcon"; import DialogFooter from "./DialogFooter"; import api from "../app/Api"; import userManager from "../app/UserManager"; import EmojiPicker from "./EmojiPicker"; import session from "../app/Session"; import routes from "./routes"; import accountApi from "../app/AccountApi"; import { UnauthorizedError } from "../app/errors"; import { AccountContext } from "./App"; const PublishDialog = (props) => { const theme = useTheme(); const { t } = useTranslation(); const { account } = useContext(AccountContext); const [baseUrl, setBaseUrl] = useState(""); const [topic, setTopic] = useState(""); const [message, setMessage] = useState(""); const [messageFocused, setMessageFocused] = useState(true); const [title, setTitle] = useState(""); const [tags, setTags] = useState(""); const [priority, setPriority] = useState(3); const [clickUrl, setClickUrl] = useState(""); const [attachUrl, setAttachUrl] = useState(""); const [attachFile, setAttachFile] = useState(null); const [filename, setFilename] = useState(""); const [filenameEdited, setFilenameEdited] = useState(false); const [email, setEmail] = useState(""); const [call, setCall] = useState(""); const [delay, setDelay] = useState(""); const [publishAnother, setPublishAnother] = useState(false); const [markdownEnabled, setMarkdownEnabled] = useState(false); const [showTopicUrl, setShowTopicUrl] = useState(""); const [showClickUrl, setShowClickUrl] = useState(false); const [showAttachUrl, setShowAttachUrl] = useState(false); const [showEmail, setShowEmail] = useState(false); const [showCall, setShowCall] = useState(false); const [showDelay, setShowDelay] = useState(false); const showAttachFile = !!attachFile && !showAttachUrl; const attachFileInput = useRef(); const [attachFileError, setAttachFileError] = useState(""); const [activeRequest, setActiveRequest] = useState(null); const [status, setStatus] = useState(""); const disabled = !!activeRequest; const [emojiPickerAnchorEl, setEmojiPickerAnchorEl] = useState(null); const [dropZone, setDropZone] = useState(false); const [sendButtonEnabled, setSendButtonEnabled] = useState(true); const open = !!props.openMode; const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); useEffect(() => { window.addEventListener("dragenter", () => { props.onDragEnter(); setDropZone(true); }); }, []); useEffect(() => { setBaseUrl(props.baseUrl); setTopic(props.topic); setShowTopicUrl(!props.baseUrl || !props.topic); setMessageFocused(!!props.topic); // Focus message only if topic is set }, [props.baseUrl, props.topic]); useEffect(() => { const valid = validUrl(baseUrl) && validTopic(topic) && !attachFileError; setSendButtonEnabled(valid); }, [baseUrl, topic, attachFileError]); useEffect(() => { setMessage(props.message); }, [props.message]); const updateBaseUrl = (newVal) => { if (validUrl(newVal)) { setBaseUrl(newVal.replace(/\/$/, "")); // strip traililng slash after https?:// } else { setBaseUrl(newVal); } }; const handleSubmit = async () => { const url = new URL(topicUrl(baseUrl, topic)); if (title.trim()) { url.searchParams.append("title", title.trim()); } if (tags.trim()) { url.searchParams.append("tags", tags.trim()); } if (priority && priority !== 3) { url.searchParams.append("priority", priority.toString()); } if (clickUrl.trim()) { url.searchParams.append("click", clickUrl.trim()); } if (attachUrl.trim()) { url.searchParams.append("attach", attachUrl.trim()); } if (filename.trim()) { url.searchParams.append("filename", filename.trim()); } if (email.trim()) { url.searchParams.append("email", email.trim()); } if (call.trim()) { url.searchParams.append("call", call.trim()); } if (delay.trim()) { url.searchParams.append("delay", delay.trim()); } if (attachFile && message.trim()) { url.searchParams.append("message", message.replaceAll("\n", "\\n").trim()); } if (markdownEnabled) { url.searchParams.append("markdown", "true"); } const body = attachFile || message; try { const user = await userManager.get(baseUrl); const headers = maybeWithAuth({}, user); const progressFn = (ev) => { if (ev.loaded > 0 && ev.total > 0) { setStatus( t("publish_dialog_progress_uploading_detail", { loaded: formatBytes(ev.loaded), total: formatBytes(ev.total), percent: Math.round((ev.loaded * 100.0) / ev.total), }) ); } else { setStatus(t("publish_dialog_progress_uploading")); } }; const request = api.publishXHR(url, body, headers, progressFn); setActiveRequest(request); await request; if (!publishAnother) { props.onClose(); } else { setStatus(t("publish_dialog_message_published")); setActiveRequest(null); } } catch (e) { setStatus({e}); setActiveRequest(null); } }; const checkAttachmentLimits = async (file) => { try { const apiAccount = await accountApi.get(); const fileSizeLimit = apiAccount.limits.attachment_file_size ?? 0; const remainingBytes = apiAccount.stats.attachment_total_size_remaining; const fileSizeLimitReached = fileSizeLimit > 0 && file.size > fileSizeLimit; const quotaReached = remainingBytes > 0 && file.size > remainingBytes; if (fileSizeLimitReached && quotaReached) { setAttachFileError( t("publish_dialog_attachment_limits_file_and_quota_reached", { fileSizeLimit: formatBytes(fileSizeLimit), remainingBytes: formatBytes(remainingBytes), }) ); } else if (fileSizeLimitReached) { setAttachFileError( t("publish_dialog_attachment_limits_file_reached", { fileSizeLimit: formatBytes(fileSizeLimit), }) ); } else if (quotaReached) { setAttachFileError( t("publish_dialog_attachment_limits_quota_reached", { remainingBytes: formatBytes(remainingBytes), }) ); } else { setAttachFileError(""); } } catch (e) { console.log(`[PublishDialog] Retrieving attachment limits failed`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } else { setAttachFileError(""); // Reset error (rely on server-side checking) } } }; const handleAttachFileClick = () => { attachFileInput.current.click(); }; const updateAttachFile = async (file) => { setAttachFile(file); setFilename(file.name); props.onResetOpenMode(); await checkAttachmentLimits(file); }; useEffect(() => { if (props.attachFile) { updateAttachFile(props.attachFile); } }, [props.attachFile]); const handlePaste = (ev) => { const blob = props.getPastedImage(ev); if (blob) { updateAttachFile(blob); } }; const handleAttachFileChanged = async (ev) => { await updateAttachFile(ev.target.files[0]); }; const handleAttachFileDrop = async (ev) => { ev.preventDefault(); setDropZone(false); await updateAttachFile(ev.dataTransfer.files[0]); }; const handleAttachFileDragLeave = () => { setDropZone(false); if (props.openMode === PublishDialog.OPEN_MODE_DRAG) { props.onClose(); // Only close dialog if it was not open before dragging file in } }; const handleEmojiClick = (ev) => { setEmojiPickerAnchorEl(ev.currentTarget); }; const handleEmojiPick = (emoji) => { setTags((prevTags) => (prevTags.trim() ? `${prevTags.trim()}, ${emoji}` : emoji)); }; const handleEmojiClose = () => { setEmojiPickerAnchorEl(null); }; const priorities = { 1: { label: t("publish_dialog_priority_min"), file: priority1 }, 2: { label: t("publish_dialog_priority_low"), file: priority2 }, 3: { label: t("publish_dialog_priority_default"), file: priority3 }, 4: { label: t("publish_dialog_priority_high"), file: priority4 }, 5: { label: t("publish_dialog_priority_max"), file: priority5 }, }; return ( <> {dropZone && } {baseUrl && topic ? t("publish_dialog_title_topic", { topic: topicShortUrl(baseUrl, topic), }) : t("publish_dialog_title_no_topic")} {dropZone && } {showTopicUrl && ( { setBaseUrl(props.baseUrl); setTopic(props.topic); setShowTopicUrl(false); }} > updateBaseUrl(ev.target.value)} disabled={disabled} type="url" variant="standard" sx={{ flexGrow: 1, marginRight: 1 }} inputProps={{ "aria-label": t("publish_dialog_base_url_label"), }} /> setTopic(ev.target.value)} disabled={disabled} type="text" variant="standard" autoFocus={!messageFocused} sx={{ flexGrow: 1 }} inputProps={{ "aria-label": t("publish_dialog_topic_label"), }} /> )} setTitle(ev.target.value)} disabled={disabled} type="text" fullWidth variant="standard" inputProps={{ "aria-label": t("publish_dialog_title_label"), }} /> setMessage(ev.target.value)} disabled={disabled} type="text" variant="standard" rows={5} autoFocus={messageFocused} fullWidth multiline inputProps={{ "aria-label": t("publish_dialog_message_label"), }} onPaste={handlePaste} /> setMarkdownEnabled(ev.target.checked)} inputProps={{ "aria-label": t("publish_dialog_checkbox_markdown"), }} /> } />
      setTags(ev.target.value)} disabled={disabled} type="text" variant="standard" sx={{ flexGrow: 1, marginRight: 1 }} inputProps={{ "aria-label": t("publish_dialog_tags_label"), }} />
      {showClickUrl && ( { setClickUrl(""); setShowClickUrl(false); }} > setClickUrl(ev.target.value)} disabled={disabled} type="url" fullWidth variant="standard" inputProps={{ "aria-label": t("publish_dialog_click_label"), }} /> )} {showEmail && ( { setEmail(""); setShowEmail(false); }} > setEmail(ev.target.value)} disabled={disabled} type="email" variant="standard" fullWidth inputProps={{ "aria-label": t("publish_dialog_email_label"), }} /> )} {showCall && ( { setCall(""); setShowCall(false); }} > )} {showAttachUrl && ( { setAttachUrl(""); setFilename(""); setFilenameEdited(false); setShowAttachUrl(false); }} > { const url = ev.target.value; setAttachUrl(url); if (!filenameEdited) { try { const u = new URL(url); const parts = u.pathname.split("/"); if (parts.length > 0) { setFilename(parts[parts.length - 1]); } } catch (e) { // Do nothing } } }} disabled={disabled} type="url" variant="standard" sx={{ flexGrow: 5, marginRight: 1 }} inputProps={{ "aria-label": t("publish_dialog_attach_label"), }} /> { setFilename(ev.target.value); setFilenameEdited(true); }} disabled={disabled} type="text" variant="standard" sx={{ flexGrow: 1 }} inputProps={{ "aria-label": t("publish_dialog_filename_label"), }} /> )} {showAttachFile && ( setFilename(f)} onClose={() => { setAttachFile(null); setAttachFileError(""); setFilename(""); }} /> )} {showDelay && ( { setDelay(""); setShowDelay(false); }} > setDelay(ev.target.value)} disabled={disabled} type="text" variant="standard" fullWidth inputProps={{ "aria-label": t("publish_dialog_delay_label"), }} /> )} {t("publish_dialog_other_features")}
      {!showClickUrl && ( setShowClickUrl(true)} sx={{ marginRight: 1, marginBottom: 1 }} /> )} {!showEmail && ( setShowEmail(true)} sx={{ marginRight: 1, marginBottom: 1 }} /> )} {account?.phone_numbers?.length > 0 && !showCall && ( { setShowCall(true); setCall(account.phone_numbers[0]); }} sx={{ marginRight: 1, marginBottom: 1 }} /> )} {!showAttachUrl && !showAttachFile && ( setShowAttachUrl(true)} sx={{ marginRight: 1, marginBottom: 1 }} /> )} {!showAttachFile && !showAttachUrl && ( handleAttachFileClick()} sx={{ marginRight: 1, marginBottom: 1 }} /> )} {!showDelay && ( setShowDelay(true)} sx={{ marginRight: 1, marginBottom: 1 }} /> )} {!showTopicUrl && ( setShowTopicUrl(true)} sx={{ marginRight: 1, marginBottom: 1 }} /> )} {account && !account?.phone_numbers && ( )}
      , }} />
      {activeRequest && } {!activeRequest && ( <> setPublishAnother(ev.target.checked)} inputProps={{ "aria-label": t("publish_dialog_checkbox_publish_another"), }} /> } /> )}
      ); }; const Row = (props) => (
      {props.children}
      ); const ClosableRow = (props) => { const closable = props.closable !== undefined ? props.closable : true; return ( {props.children} {closable && ( )} ); }; const DialogIconButton = (props) => { const sx = props.sx || {}; return ( {props.children} ); }; const AttachmentBox = (props) => { const { t } = useTranslation(); const { file } = props; return ( <> {t("publish_dialog_attached_file_title")} props.onChangeFilename(ev.target.value)} disabled={props.disabled} />
      {formatBytes(file.size)} {props.error && ( {" "} ({props.error}) )}
      ); }; const ExpandingTextField = (props) => { const theme = useTheme(); const invisibleFieldRef = useRef(); const [textWidth, setTextWidth] = useState(props.minWidth); const determineTextWidth = () => { const boundingRect = invisibleFieldRef?.current?.getBoundingClientRect(); if (!boundingRect) { return props.minWidth; } return boundingRect.width >= props.minWidth ? Math.round(boundingRect.width) : props.minWidth; }; useEffect(() => { setTextWidth(determineTextWidth() + 5); }, [props.value]); return ( <> {props.value} ); }; const DropArea = (props) => { const allowDrag = (ev) => { // This is where we could disallow certain files to be dragged in. // For now we allow all files. // eslint-disable-next-line no-param-reassign ev.dataTransfer.dropEffect = "copy"; ev.preventDefault(); }; return ( ); }; const DropBox = () => { const { t } = useTranslation(); return ( {t("publish_dialog_drop_file_here")} ); }; PublishDialog.OPEN_MODE_DEFAULT = "default"; PublishDialog.OPEN_MODE_DRAG = "drag"; export default PublishDialog; ntfy-2.11.0/web/src/components/RTLCacheProvider.jsx000066400000000000000000000011461462047176100221440ustar00rootroot00000000000000import React from "react"; import rtlPlugin from "stylis-plugin-rtl"; import { CacheProvider } from "@emotion/react"; import createCache from "@emotion/cache"; import { prefixer } from "stylis"; import { useTranslation } from "react-i18next"; // https://mui.com/material-ui/guides/right-to-left const cacheRtl = createCache({ key: "muirtl", stylisPlugins: [prefixer, rtlPlugin], }); const RTLCacheProvider = ({ children }) => { const { i18n } = useTranslation(); return i18n.dir() === "rtl" ? {children} : children; }; export default RTLCacheProvider; ntfy-2.11.0/web/src/components/ReserveDialogs.jsx000066400000000000000000000160051462047176100217620ustar00rootroot00000000000000import * as React from "react"; import { useState } from "react"; import { Button, TextField, Dialog, DialogContent, DialogContentText, DialogTitle, Alert, FormControl, Select, useMediaQuery, MenuItem, ListItemIcon, ListItemText, useTheme, } from "@mui/material"; import { useTranslation } from "react-i18next"; import { Check, DeleteForever } from "@mui/icons-material"; import { validTopic } from "../app/utils"; import DialogFooter from "./DialogFooter"; import session from "../app/Session"; import routes from "./routes"; import accountApi, { Permission } from "../app/AccountApi"; import ReserveTopicSelect from "./ReserveTopicSelect"; import { TopicReservedError, UnauthorizedError } from "../app/errors"; export const ReserveAddDialog = (props) => { const theme = useTheme(); const { t } = useTranslation(); const [error, setError] = useState(""); const [topic, setTopic] = useState(props.topic || ""); const [everyone, setEveryone] = useState(Permission.DENY_ALL); const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); const allowTopicEdit = !props.topic; const alreadyReserved = props.reservations.filter((r) => r.topic === topic).length > 0; const submitButtonEnabled = validTopic(topic) && !alreadyReserved; const handleSubmit = async () => { try { await accountApi.upsertReservation(topic, everyone); console.debug(`[ReserveAddDialog] Added reservation for topic ${topic}: ${everyone}`); } catch (e) { console.log(`[ReserveAddDialog] Error adding topic reservation.`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } else if (e instanceof TopicReservedError) { setError(t("subscribe_dialog_error_topic_already_reserved")); return; } else { setError(e.message); return; } } props.onClose(); }; return ( {t("prefs_reservations_dialog_title_add")} {t("prefs_reservations_dialog_description")} {allowTopicEdit && ( setTopic(ev.target.value)} type="url" fullWidth variant="standard" /> )} ); }; export const ReserveEditDialog = (props) => { const theme = useTheme(); const { t } = useTranslation(); const [error, setError] = useState(""); const [everyone, setEveryone] = useState(props.reservation?.everyone || Permission.DENY_ALL); const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); const handleSubmit = async () => { try { await accountApi.upsertReservation(props.reservation.topic, everyone); console.debug(`[ReserveEditDialog] Updated reservation for topic ${t}: ${everyone}`); } catch (e) { console.log(`[ReserveEditDialog] Error updating topic reservation.`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } else { setError(e.message); return; } } props.onClose(); }; return ( {t("prefs_reservations_dialog_title_edit")} {t("prefs_reservations_dialog_description")} ); }; export const ReserveDeleteDialog = (props) => { const theme = useTheme(); const { t } = useTranslation(); const [error, setError] = useState(""); const [deleteMessages, setDeleteMessages] = useState(false); const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); const handleSubmit = async () => { try { await accountApi.deleteReservation(props.topic, deleteMessages); console.debug(`[ReserveDeleteDialog] Deleted reservation for topic ${props.topic}`); } catch (e) { console.log(`[ReserveDeleteDialog] Error deleting topic reservation.`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } else { setError(e.message); return; } } props.onClose(); }; return ( {t("prefs_reservations_dialog_title_delete")} {t("reservation_delete_dialog_description")} {!deleteMessages && ( {t("reservation_delete_dialog_action_keep_description")} )} {deleteMessages && ( {t("reservation_delete_dialog_action_delete_description")} )} ); }; ntfy-2.11.0/web/src/components/ReserveIcons.jsx000066400000000000000000000026161462047176100214560ustar00rootroot00000000000000import * as React from "react"; import { Lock, Public } from "@mui/icons-material"; import { Box } from "@mui/material"; export const PermissionReadWrite = React.forwardRef((props, ref) => ); export const PermissionDenyAll = React.forwardRef((props, ref) => ); export const PermissionRead = React.forwardRef((props, ref) => ); export const PermissionWrite = React.forwardRef((props, ref) => ); const PermissionInternal = React.forwardRef((props, ref) => { const size = props.size ?? "medium"; const Icon = props.icon; return ( {props.text && ( {props.text} )} ); }); ntfy-2.11.0/web/src/components/ReserveTopicSelect.jsx000066400000000000000000000035601462047176100226200ustar00rootroot00000000000000import * as React from "react"; import { FormControl, Select, MenuItem, ListItemIcon, ListItemText } from "@mui/material"; import { useTranslation } from "react-i18next"; import { PermissionDenyAll, PermissionRead, PermissionReadWrite, PermissionWrite } from "./ReserveIcons"; import { Permission } from "../app/AccountApi"; const ReserveTopicSelect = (props) => { const { t } = useTranslation(); const sx = props.sx || {}; return ( ); }; export default ReserveTopicSelect; ntfy-2.11.0/web/src/components/Signup.jsx000066400000000000000000000120731462047176100203120ustar00rootroot00000000000000import * as React from "react"; import { useState } from "react"; import { TextField, Button, Box, Typography, InputAdornment, IconButton } from "@mui/material"; import { NavLink } from "react-router-dom"; import { useTranslation } from "react-i18next"; import WarningAmberIcon from "@mui/icons-material/WarningAmber"; import { Visibility, VisibilityOff } from "@mui/icons-material"; import accountApi from "../app/AccountApi"; import AvatarBox from "./AvatarBox"; import session from "../app/Session"; import routes from "./routes"; import { AccountCreateLimitReachedError, UserExistsError } from "../app/errors"; const Signup = () => { const { t } = useTranslation(); const [error, setError] = useState(""); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [confirm, setConfirm] = useState(""); const [showPassword, setShowPassword] = useState(false); const [showConfirm, setShowConfirm] = useState(false); const handleSubmit = async (event) => { event.preventDefault(); const user = { username, password }; try { await accountApi.create(user.username, user.password); const token = await accountApi.login(user); console.log(`[Signup] User signup for user ${user.username} successful, token is ${token}`); await session.store(user.username, token); window.location.href = routes.app; } catch (e) { console.log(`[Signup] Signup for user ${user.username} failed`, e); if (e instanceof UserExistsError) { setError(t("signup_error_username_taken", { username: e.username })); } else if (e instanceof AccountCreateLimitReachedError) { setError(t("signup_error_creation_limit_reached")); } else { setError(e.message); } } }; if (!config.enable_signup) { return ( {t("signup_disabled")} ); } return ( {t("signup_title")} setUsername(ev.target.value.trim())} autoFocus /> setPassword(ev.target.value.trim())} InputProps={{ endAdornment: ( setShowPassword(!showPassword)} onMouseDown={(ev) => ev.preventDefault()} edge="end" > {showPassword ? : } ), }} /> setConfirm(ev.target.value.trim())} InputProps={{ endAdornment: ( setShowConfirm(!showConfirm)} onMouseDown={(ev) => ev.preventDefault()} edge="end" > {showConfirm ? : } ), }} /> {error && ( {error} )} {config.enable_login && ( {t("signup_already_have_account")} )} ); }; export default Signup; ntfy-2.11.0/web/src/components/SubscribeDialog.jsx000066400000000000000000000272261462047176100221140ustar00rootroot00000000000000import * as React from "react"; import { useContext, useState } from "react"; import { Button, TextField, Dialog, DialogContent, DialogContentText, DialogTitle, Autocomplete, FormControlLabel, FormGroup, useMediaQuery, Switch, useTheme, } from "@mui/material"; import { useTranslation } from "react-i18next"; import { useLiveQuery } from "dexie-react-hooks"; import api from "../app/Api"; import { randomAlphanumericString, topicUrl, validTopic, validUrl } from "../app/utils"; import userManager from "../app/UserManager"; import subscriptionManager from "../app/SubscriptionManager"; import poller from "../app/Poller"; import DialogFooter from "./DialogFooter"; import session from "../app/Session"; import routes from "./routes"; import accountApi, { Permission, Role } from "../app/AccountApi"; import ReserveTopicSelect from "./ReserveTopicSelect"; import { AccountContext } from "./App"; import { TopicReservedError, UnauthorizedError } from "../app/errors"; import { ReserveLimitChip } from "./SubscriptionPopup"; import prefs from "../app/Prefs"; const publicBaseUrl = "https://ntfy.sh"; export const subscribeTopic = async (baseUrl, topic, opts) => { const subscription = await subscriptionManager.add(baseUrl, topic, opts); if (session.exists()) { try { await accountApi.addSubscription(baseUrl, topic); } catch (e) { console.log(`[SubscribeDialog] Subscribing to topic ${topic} failed`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } } } return subscription; }; const SubscribeDialog = (props) => { const theme = useTheme(); const [baseUrl, setBaseUrl] = useState(""); const [topic, setTopic] = useState(""); const [showLoginPage, setShowLoginPage] = useState(false); const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); const handleSuccess = async () => { console.log(`[SubscribeDialog] Subscribing to topic ${topic}`); const actualBaseUrl = baseUrl || config.base_url; const subscription = await subscribeTopic(actualBaseUrl, topic, {}); poller.pollInBackground(subscription); // Dangle! props.onSuccess(subscription); }; return ( {!showLoginPage && ( setShowLoginPage(true)} onSuccess={handleSuccess} /> )} {showLoginPage && setShowLoginPage(false)} onSuccess={handleSuccess} />} ); }; const SubscribePage = (props) => { const { t } = useTranslation(); const { account } = useContext(AccountContext); const [error, setError] = useState(""); const [reserveTopicVisible, setReserveTopicVisible] = useState(false); const [anotherServerVisible, setAnotherServerVisible] = useState(false); const [everyone, setEveryone] = useState(Permission.DENY_ALL); const baseUrl = anotherServerVisible ? props.baseUrl : config.base_url; const { topic } = props; const existingTopicUrls = props.subscriptions.map((s) => topicUrl(s.baseUrl, s.topic)); const existingBaseUrls = Array.from(new Set([publicBaseUrl, ...props.subscriptions.map((s) => s.baseUrl)])).filter( (s) => s !== config.base_url ); const showReserveTopicCheckbox = config.enable_reservations && !anotherServerVisible && (config.enable_payments || account); const reserveTopicEnabled = session.exists() && (account?.role === Role.ADMIN || (account?.role === Role.USER && (account?.stats.reservations_remaining || 0) > 0)); const webPushEnabled = useLiveQuery(() => prefs.webPushEnabled()); const handleSubscribe = async () => { const user = await userManager.get(baseUrl); // May be undefined const username = user ? user.username : t("subscribe_dialog_error_user_anonymous"); // Check read access to topic const success = await api.topicAuth(baseUrl, topic, user); if (!success) { console.log(`[SubscribeDialog] Login to ${topicUrl(baseUrl, topic)} failed for user ${username}`); if (user) { setError( t("subscribe_dialog_error_user_not_authorized", { username, }) ); return; } props.onNeedsLogin(); return; } // Reserve topic (if requested) if (session.exists() && baseUrl === config.base_url && reserveTopicVisible) { console.log(`[SubscribeDialog] Reserving topic ${topic} with everyone access ${everyone}`); try { await accountApi.upsertReservation(topic, everyone); } catch (e) { console.log(`[SubscribeDialog] Error reserving topic`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } else if (e instanceof TopicReservedError) { setError(t("subscribe_dialog_error_topic_already_reserved")); return; } } } console.log(`[SubscribeDialog] Successful login to ${topicUrl(baseUrl, topic)} for user ${username}`); props.onSuccess(); }; const handleUseAnotherChanged = (e) => { props.setBaseUrl(""); setAnotherServerVisible(e.target.checked); }; const subscribeButtonEnabled = (() => { if (anotherServerVisible) { const isExistingTopicUrl = existingTopicUrls.includes(topicUrl(baseUrl, topic)); return validTopic(topic) && validUrl(baseUrl) && !isExistingTopicUrl; } const isExistingTopicUrl = existingTopicUrls.includes(topicUrl(config.base_url, topic)); return validTopic(topic) && !isExistingTopicUrl; })(); const updateBaseUrl = (ev, newVal) => { if (validUrl(newVal)) { props.setBaseUrl(newVal.replace(/\/$/, "")); // strip trailing slash after https?:// } else { props.setBaseUrl(newVal); } }; return ( <> {t("subscribe_dialog_subscribe_title")} {t("subscribe_dialog_subscribe_description")}
      props.setTopic(ev.target.value)} type="text" fullWidth variant="standard" inputProps={{ maxLength: 64, "aria-label": t("subscribe_dialog_subscribe_topic_placeholder"), }} />
      {showReserveTopicCheckbox && ( setReserveTopicVisible(ev.target.checked)} inputProps={{ "aria-label": t("reserve_dialog_checkbox_label"), }} /> } label={ <> {t("reserve_dialog_checkbox_label")} } /> {reserveTopicVisible && } )} {!reserveTopicVisible && ( } label={t("subscribe_dialog_subscribe_use_another_label")} /> {anotherServerVisible && ( ( <> {webPushEnabled && (
      {t("subscribe_dialog_subscribe_use_another_background_info")}
      )} )} /> )}
      )}
      ); }; const LoginPage = (props) => { const { t } = useTranslation(); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [error, setError] = useState(""); const baseUrl = props.baseUrl ? props.baseUrl : config.base_url; const { topic } = props; const handleLogin = async () => { const user = { baseUrl, username, password }; const success = await api.topicAuth(baseUrl, topic, user); if (!success) { console.log(`[SubscribeDialog] Login to ${topicUrl(baseUrl, topic)} failed for user ${username}`); setError(t("subscribe_dialog_error_user_not_authorized", { username })); return; } console.log(`[SubscribeDialog] Successful login to ${topicUrl(baseUrl, topic)} for user ${username}`); await userManager.save(user); props.onSuccess(); }; return ( <> {t("subscribe_dialog_login_title")} {t("subscribe_dialog_login_description")} setUsername(ev.target.value)} type="text" fullWidth variant="standard" inputProps={{ "aria-label": t("subscribe_dialog_login_username_label"), }} /> setPassword(ev.target.value)} fullWidth variant="standard" inputProps={{ "aria-label": t("subscribe_dialog_login_password_label"), }} /> ); }; export default SubscribeDialog; ntfy-2.11.0/web/src/components/SubscriptionPopup.jsx000066400000000000000000000320461462047176100225570ustar00rootroot00000000000000import * as React from "react"; import { useContext, useState } from "react"; import { Button, TextField, Dialog, DialogContent, DialogContentText, DialogTitle, Chip, InputAdornment, Portal, Snackbar, useMediaQuery, MenuItem, IconButton, ListItemIcon, useTheme, } from "@mui/material"; import { useTranslation } from "react-i18next"; import { useNavigate } from "react-router-dom"; import { Clear, ClearAll, Edit, EnhancedEncryption, Lock, LockOpen, Notifications, NotificationsOff, RemoveCircle, Send, } from "@mui/icons-material"; import subscriptionManager from "../app/SubscriptionManager"; import DialogFooter from "./DialogFooter"; import accountApi, { Role } from "../app/AccountApi"; import session from "../app/Session"; import routes from "./routes"; import PopupMenu from "./PopupMenu"; import { formatShortDateTime, shuffle } from "../app/utils"; import api from "../app/Api"; import { AccountContext } from "./App"; import { ReserveAddDialog, ReserveDeleteDialog, ReserveEditDialog } from "./ReserveDialogs"; import { UnauthorizedError } from "../app/errors"; export const SubscriptionPopup = (props) => { const { t } = useTranslation(); const { account } = useContext(AccountContext); const navigate = useNavigate(); const [displayNameDialogOpen, setDisplayNameDialogOpen] = useState(false); const [reserveAddDialogOpen, setReserveAddDialogOpen] = useState(false); const [reserveEditDialogOpen, setReserveEditDialogOpen] = useState(false); const [reserveDeleteDialogOpen, setReserveDeleteDialogOpen] = useState(false); const [showPublishError, setShowPublishError] = useState(false); const { subscription } = props; const placement = props.placement ?? "left"; const reservations = account?.reservations || []; const showReservationAdd = config.enable_reservations && !subscription?.reservation && account?.stats.reservations_remaining > 0; const showReservationAddDisabled = !showReservationAdd && config.enable_reservations && !subscription?.reservation && (config.enable_payments || account?.stats.reservations_remaining === 0); const showReservationEdit = config.enable_reservations && !!subscription?.reservation; const showReservationDelete = config.enable_reservations && !!subscription?.reservation; const handleChangeDisplayName = async () => { setDisplayNameDialogOpen(true); }; const handleReserveAdd = async () => { setReserveAddDialogOpen(true); }; const handleReserveEdit = async () => { setReserveEditDialogOpen(true); }; const handleReserveDelete = async () => { setReserveDeleteDialogOpen(true); }; const handleSendTestMessage = async () => { const { baseUrl, topic } = props.subscription; const tags = shuffle([ "grinning", "octopus", "upside_down_face", "palm_tree", "maple_leaf", "apple", "skull", "warning", "jack_o_lantern", "de-server-1", "backups", "cron-script", "script-error", "phils-automation", "mouse", "go-rocks", "hi-ben", ]).slice(0, Math.round(Math.random() * 4)); const priority = shuffle([1, 2, 3, 4, 5])[0]; const title = shuffle([ "", "", "", // Higher chance of no title "Oh my, another test message?", "Titles are optional, did you know that?", "ntfy is open source, and will always be free. Cool, right?", "I don't really like apples", "My favorite TV show is The Wire. You should watch it!", "You can attach files and URLs to messages too", "You can delay messages up to 3 days", ])[0]; const nowSeconds = Math.round(Date.now() / 1000); const message = shuffle([ `Hello friend, this is a test notification from ntfy web. It's ${formatShortDateTime( nowSeconds, "en-US" )} right now. Is that early or late?`, `So I heard you like ntfy? If that's true, go to GitHub and star it, or to the Play store and rate it. Thanks! Oh yeah, this is a test notification.`, `It's almost like you want to hear what I have to say. I'm not even a machine. I'm just a sentence that Phil typed on a random Thursday.`, `Alright then, it's ${formatShortDateTime( nowSeconds, "en-US" )} already. Boy oh boy, where did the time go? I hope you're alright, friend.`, `There are nine million bicycles in Beijing That's a fact; It's a thing we can't deny. I wonder if that's true ...`, `I'm really excited that you're trying out ntfy. Did you know that there are a few public topics, such as ntfy.sh/stats and ntfy.sh/announcements.`, `It's interesting to hear what people use ntfy for. I've heard people talk about using it for so many cool things. What do you use it for?`, ])[0]; try { await api.publish(baseUrl, topic, message, { title, priority, tags, }); } catch (e) { console.log(`[SubscriptionPopup] Error publishing message`, e); setShowPublishError(true); } }; const handleClearAll = async () => { console.log(`[SubscriptionPopup] Deleting all notifications from ${props.subscription.id}`); await subscriptionManager.deleteNotifications(props.subscription.id); }; const handleSetMutedUntil = async (mutedUntil) => { await subscriptionManager.setMutedUntil(subscription.id, mutedUntil); }; const handleUnsubscribe = async () => { console.log(`[SubscriptionPopup] Unsubscribing from ${props.subscription.id}`, props.subscription); await subscriptionManager.remove(props.subscription); if (session.exists() && !subscription.internal) { try { await accountApi.deleteSubscription(props.subscription.baseUrl, props.subscription.topic); } catch (e) { console.log(`[SubscriptionPopup] Error unsubscribing`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } } } const newSelected = await subscriptionManager.first(); // May be undefined if (newSelected && !newSelected.internal) { navigate(routes.forSubscription(newSelected)); } else { navigate(routes.app); } }; return ( <> {t("action_bar_change_display_name")} {showReservationAdd && ( {t("action_bar_reservation_add")} )} {showReservationAddDisabled && ( {t("action_bar_reservation_add")} )} {showReservationEdit && ( {t("action_bar_reservation_edit")} )} {showReservationDelete && ( {t("action_bar_reservation_delete")} )} {t("action_bar_send_test_notification")} {t("action_bar_clear_notifications")} {!!subscription.mutedUntil && ( handleSetMutedUntil(0)}> {t("action_bar_unmute_notifications")} )} {!subscription.mutedUntil && ( handleSetMutedUntil(1)}> {t("action_bar_mute_notifications")} )} {t("action_bar_unsubscribe")} setShowPublishError(false)} message={t("message_bar_error_publishing")} /> setDisplayNameDialogOpen(false)} /> {showReservationAdd && ( setReserveAddDialogOpen(false)} /> )} {showReservationEdit && ( setReserveEditDialogOpen(false)} /> )} {showReservationDelete && ( setReserveDeleteDialogOpen(false)} /> )} ); }; const DisplayNameDialog = (props) => { const theme = useTheme(); const { t } = useTranslation(); const { subscription } = props; const [error, setError] = useState(""); const [displayName, setDisplayName] = useState(subscription.displayName ?? ""); const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); const handleSave = async () => { await subscriptionManager.setDisplayName(subscription.id, displayName); if (session.exists() && !subscription.internal) { try { console.log(`[SubscriptionSettingsDialog] Updating subscription display name to ${displayName}`); await accountApi.updateSubscription(subscription.baseUrl, subscription.topic, { display_name: displayName }); } catch (e) { console.log(`[SubscriptionSettingsDialog] Error updating subscription`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } else { setError(e.message); return; } } } props.onClose(); }; return ( {t("display_name_dialog_title")} {t("display_name_dialog_description")} setDisplayName(ev.target.value)} type="text" fullWidth variant="standard" inputProps={{ maxLength: 64, "aria-label": t("display_name_dialog_placeholder"), }} InputProps={{ endAdornment: ( setDisplayName("")} edge="end"> ), }} /> ); }; export const ReserveLimitChip = () => { const { account } = useContext(AccountContext); if (account?.role === Role.ADMIN || account?.stats.reservations_remaining > 0) { return <>; } if (config.enable_payments) { return account?.limits.reservations > 0 ? : ; } if (account) { return ; } return <>; }; const LimitReachedChip = () => { const { t } = useTranslation(); return ( ); }; export const ProChip = () => ( ); ntfy-2.11.0/web/src/components/UpgradeDialog.jsx000066400000000000000000000353131462047176100215560ustar00rootroot00000000000000import * as React from "react"; import { useContext, useEffect, useState } from "react"; import { Dialog, DialogContent, DialogTitle, Alert, CardActionArea, CardContent, Chip, Link, ListItem, Switch, useMediaQuery, Button, Card, Typography, List, ListItemIcon, ListItemText, Box, DialogContentText, DialogActions, useTheme, } from "@mui/material"; import { Trans, useTranslation } from "react-i18next"; import { Check, Close } from "@mui/icons-material"; import { NavLink } from "react-router-dom"; import { UnauthorizedError } from "../app/errors"; import { formatBytes, formatNumber, formatPrice, formatShortDate } from "../app/utils"; import { AccountContext } from "./App"; import routes from "./routes"; import session from "../app/Session"; import accountApi, { SubscriptionInterval } from "../app/AccountApi"; const Feature = (props) => {props.children}; const NoFeature = (props) => {props.children}; const FeatureItem = (props) => ( {props.feature && } {!props.feature && } {props.children}} /> ); const Action = { REDIRECT_SIGNUP: 1, CREATE_SUBSCRIPTION: 2, UPDATE_SUBSCRIPTION: 3, CANCEL_SUBSCRIPTION: 4, }; const Banner = { CANCEL_WARNING: 1, PRORATION_INFO: 2, RESERVATIONS_WARNING: 3, }; const UpgradeDialog = (props) => { const theme = useTheme(); const { t, i18n } = useTranslation(); const { account } = useContext(AccountContext); // May be undefined! const [error, setError] = useState(""); const [tiers, setTiers] = useState(null); const [interval, setInterval] = useState(account?.billing?.interval || SubscriptionInterval.YEAR); const [newTierCode, setNewTierCode] = useState(account?.tier?.code); // May be undefined const [loading, setLoading] = useState(false); const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); useEffect(() => { const fetchTiers = async () => { setTiers(await accountApi.billingTiers()); }; fetchTiers(); // Dangle }, []); if (!tiers) { return <>; } const tiersMap = Object.assign(...tiers.map((tier) => ({ [tier.code]: tier }))); const newTier = tiersMap[newTierCode]; // May be undefined const currentTier = account?.tier; // May be undefined const currentInterval = account?.billing?.interval; // May be undefined const currentTierCode = currentTier?.code; // May be undefined // Figure out buttons, labels and the submit action let submitAction; let submitButtonLabel; let banner; if (!account) { submitButtonLabel = t("account_upgrade_dialog_button_redirect_signup"); submitAction = Action.REDIRECT_SIGNUP; banner = null; } else if (currentTierCode === newTierCode && (currentInterval === undefined || currentInterval === interval)) { submitButtonLabel = t("account_upgrade_dialog_button_update_subscription"); submitAction = null; banner = currentTierCode ? Banner.PRORATION_INFO : null; } else if (!currentTierCode) { submitButtonLabel = t("account_upgrade_dialog_button_pay_now"); submitAction = Action.CREATE_SUBSCRIPTION; banner = null; } else if (!newTierCode) { submitButtonLabel = t("account_upgrade_dialog_button_cancel_subscription"); submitAction = Action.CANCEL_SUBSCRIPTION; banner = Banner.CANCEL_WARNING; } else { submitButtonLabel = t("account_upgrade_dialog_button_update_subscription"); submitAction = Action.UPDATE_SUBSCRIPTION; banner = Banner.PRORATION_INFO; } // Exceptional conditions if (loading) { submitAction = null; } else if (newTier?.code && account?.reservations?.length > newTier?.limits?.reservations) { submitAction = null; banner = Banner.RESERVATIONS_WARNING; } const handleSubmit = async () => { if (submitAction === Action.REDIRECT_SIGNUP) { window.location.href = routes.signup; return; } try { setLoading(true); if (submitAction === Action.CREATE_SUBSCRIPTION) { const response = await accountApi.createBillingSubscription(newTierCode, interval); window.location.href = response.redirect_url; } else if (submitAction === Action.UPDATE_SUBSCRIPTION) { await accountApi.updateBillingSubscription(newTierCode, interval); } else if (submitAction === Action.CANCEL_SUBSCRIPTION) { await accountApi.deleteBillingSubscription(); } props.onCancel(); } catch (e) { console.log(`[UpgradeDialog] Error changing billing subscription`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } else { setError(e.message); } } finally { setLoading(false); } }; // Figure out discount let discount = 0; let upto = false; if (newTier?.prices) { discount = Math.round(((newTier.prices.month * 12) / newTier.prices.year - 1) * 100); } else { let n = 0; for (const tier of tiers) { if (tier.prices) { const tierDiscount = Math.round(((tier.prices.month * 12) / tier.prices.year - 1) * 100); if (tierDiscount > discount) { discount = tierDiscount; n += 1; } } } upto = n > 1; } return (
      {t("account_upgrade_dialog_title")}
      {t("account_upgrade_dialog_interval_monthly")} setInterval(ev.target.checked ? SubscriptionInterval.YEAR : SubscriptionInterval.MONTH)} /> {t("account_upgrade_dialog_interval_yearly")} {discount > 0 && ( )}
      {tiers.map((tier) => ( setNewTierCode(tier.code)} // tier.code may be undefined! /> ))}
      {banner === Banner.CANCEL_WARNING && ( )} {banner === Banner.PRORATION_INFO && ( )} {banner === Banner.RESERVATIONS_WARNING && ( , }} /> )}
      {config.billing_contact.indexOf("@") !== -1 && ( <> , }} />{" "} )} {config.billing_contact.match(`^http?s://`) && ( <> , }} />{" "} )} {error}
      ); }; const TierCard = (props) => { const { t } = useTranslation(); const { tier } = props; let cardStyle; let labelStyle; let labelText; if (props.selected) { cardStyle = { background: "#eee", border: "3px solid #338574" }; labelStyle = { background: "#338574", color: "white" }; labelText = t("account_upgrade_dialog_tier_selected_label"); } else if (props.current) { cardStyle = { border: "3px solid #eee" }; labelStyle = { background: "#eee", color: "black" }; labelText = t("account_upgrade_dialog_tier_current_label"); } else { cardStyle = { border: "3px solid transparent" }; } let monthlyPrice; if (!tier.prices) { monthlyPrice = 0; } else if (props.interval === SubscriptionInterval.YEAR) { monthlyPrice = tier.prices.year / 12; } else if (props.interval === SubscriptionInterval.MONTH) { monthlyPrice = tier.prices.month; } return ( {labelStyle && (
      {labelText}
      )} {tier.name || t("account_basics_tier_free")}
      {formatPrice(monthlyPrice)} {monthlyPrice > 0 && <>/ {t("account_upgrade_dialog_tier_price_per_month")}}
      {tier.limits.reservations > 0 && ( {t("account_upgrade_dialog_tier_features_reservations", { reservations: tier.limits.reservations, count: tier.limits.reservations, })} )} {t("account_upgrade_dialog_tier_features_messages", { messages: formatNumber(tier.limits.messages), count: tier.limits.messages, })} {t("account_upgrade_dialog_tier_features_emails", { emails: formatNumber(tier.limits.emails), count: tier.limits.emails, })} {tier.limits.calls > 0 && ( {t("account_upgrade_dialog_tier_features_calls", { calls: formatNumber(tier.limits.calls), count: tier.limits.calls, })} )} {t("account_upgrade_dialog_tier_features_attachment_file_size", { filesize: formatBytes(tier.limits.attachment_file_size, 0), })} {tier.limits.reservations === 0 && {t("account_upgrade_dialog_tier_features_no_reservations")}} {tier.limits.calls === 0 && {t("account_upgrade_dialog_tier_features_no_calls")}} {tier.prices && props.interval === SubscriptionInterval.MONTH && ( {t("account_upgrade_dialog_tier_price_billed_monthly", { price: formatPrice(tier.prices.month * 12), })} )} {tier.prices && props.interval === SubscriptionInterval.YEAR && ( {t("account_upgrade_dialog_tier_price_billed_yearly", { price: formatPrice(tier.prices.year), save: formatPrice(tier.prices.month * 12 - tier.prices.year), })} )}
      ); }; export default UpgradeDialog; ntfy-2.11.0/web/src/components/hooks.js000066400000000000000000000242061462047176100200010ustar00rootroot00000000000000import { useParams } from "react-router-dom"; import { useEffect, useMemo, useState } from "react"; import { useLiveQuery } from "dexie-react-hooks"; import subscriptionManager from "../app/SubscriptionManager"; import { disallowedTopic, expandSecureUrl, topicUrl } from "../app/utils"; import routes from "./routes"; import connectionManager from "../app/ConnectionManager"; import poller from "../app/Poller"; import pruner from "../app/Pruner"; import session from "../app/Session"; import accountApi from "../app/AccountApi"; import { UnauthorizedError } from "../app/errors"; import notifier from "../app/Notifier"; import prefs from "../app/Prefs"; /** * Wire connectionManager and subscriptionManager so that subscriptions are updated when the connection * state changes. Conversely, when the subscription changes, the connection is refreshed (which may lead * to the connection being re-established). * * When Web Push is enabled, we do not need to connect to our home server via WebSocket, since notifications * will be delivered via Web Push. However, we still need to connect to other servers via WebSocket, or for internal * topics, such as sync topics (st_...). */ export const useConnectionListeners = (account, subscriptions, users, webPushTopics) => { const wsSubscriptions = useMemo( () => (subscriptions && webPushTopics ? subscriptions.filter((s) => !webPushTopics.includes(s.topic)) : []), // wsSubscriptions should stay stable unless the list of subscription IDs changes. Without the memo, the connection // listener calls a refresh for no reason. This isn't a problem due to the makeConnectionId, but it triggers an // unnecessary recomputation for every received message. [JSON.stringify({ subscriptions: subscriptions?.map(({ id }) => id), webPushTopics })] ); // Register listeners for incoming messages, and connection state changes useEffect( () => { const handleInternalMessage = async (message) => { console.log(`[ConnectionListener] Received message on sync topic`, message.message); try { const data = JSON.parse(message.message); if (data.event === "sync") { console.log(`[ConnectionListener] Triggering account sync`); await accountApi.sync(); } else { console.log(`[ConnectionListener] Unknown message type. Doing nothing.`); } } catch (e) { console.log(`[ConnectionListener] Error parsing sync topic message`, e); } }; const handleNotification = async (subscriptionId, notification) => { const added = await subscriptionManager.addNotification(subscriptionId, notification); if (added) { await subscriptionManager.notify(subscriptionId, notification); } }; const handleMessage = async (subscriptionId, message) => { const subscription = await subscriptionManager.get(subscriptionId); // Race condition: sometimes the subscription is already unsubscribed from account // sync before the message is handled if (!subscription) { return; } if (subscription.internal) { await handleInternalMessage(message); } else { await handleNotification(subscriptionId, message); } }; connectionManager.registerStateListener((id, state) => subscriptionManager.updateState(id, state)); connectionManager.registerMessageListener(handleMessage); return () => { connectionManager.resetStateListener(); connectionManager.resetMessageListener(); }; }, // We have to disable dep checking for "navigate". This is fine, it never changes. [] ); // Sync topic listener: For accounts with sync_topic, subscribe to an internal topic useEffect(() => { if (!account || !account.sync_topic) { return; } subscriptionManager.add(config.base_url, account.sync_topic, { internal: true }); // Dangle! }, [account]); // When subscriptions or users change, refresh the connections useEffect(() => { connectionManager.refresh(wsSubscriptions, users); // Dangle }, [wsSubscriptions, users]); }; /** * Automatically adds a subscription if we navigate to a page that has not been subscribed to. * This will only be run once after the initial page load. */ export const useAutoSubscribe = (subscriptions, selected) => { const [hasRun, setHasRun] = useState(false); const params = useParams(); useEffect(() => { const loaded = subscriptions !== null && subscriptions !== undefined; if (!loaded || hasRun) { return; } setHasRun(true); const eligible = params.topic && !selected && !disallowedTopic(params.topic); if (eligible) { const baseUrl = params.baseUrl ? expandSecureUrl(params.baseUrl) : config.base_url; console.log(`[Hooks] Auto-subscribing to ${topicUrl(baseUrl, params.topic)}`); (async () => { const subscription = await subscriptionManager.add(baseUrl, params.topic); if (session.exists()) { try { await accountApi.addSubscription(baseUrl, params.topic); } catch (e) { console.log(`[Hooks] Auto-subscribing failed`, e); if (e instanceof UnauthorizedError) { await session.resetAndRedirect(routes.login); } } } poller.pollInBackground(subscription); // Dangle! })(); } }, [params, subscriptions, selected, hasRun]); }; const webPushBroadcastChannel = new BroadcastChannel("web-push-broadcast"); /** * Hook to return a value that's refreshed when the notification permission changes */ export const useNotificationPermissionListener = (query) => { const [result, setResult] = useState(query()); useEffect(() => { const handler = () => { setResult(query()); }; if ("permissions" in navigator) { navigator.permissions.query({ name: "notifications" }).then((permission) => { permission.addEventListener("change", handler); return () => { permission.removeEventListener("change", handler); }; }); } }, []); return result; }; /** * Updates the Web Push subscriptions when the list of topics changes, * as well as plays a sound when a new broadcast message is received from * the service worker, since the service worker cannot play sounds. */ const useWebPushListener = (topics) => { const [prevUpdate, setPrevUpdate] = useState(); const pushPossible = useNotificationPermissionListener(() => notifier.pushPossible()); useEffect(() => { const nextUpdate = JSON.stringify({ topics, pushPossible }); if (topics === undefined || nextUpdate === prevUpdate) { return; } (async () => { try { console.log("[useWebPushListener] Refreshing web push subscriptions", topics); await subscriptionManager.updateWebPushSubscriptions(topics); setPrevUpdate(nextUpdate); } catch (e) { console.error("[useWebPushListener] Error refreshing web push subscriptions", e); } })(); }, [topics, pushPossible, prevUpdate]); useEffect(() => { const onMessage = () => { notifier.playSound(); // Service Worker cannot play sound, so we do it here! }; webPushBroadcastChannel.addEventListener("message", onMessage); return () => { webPushBroadcastChannel.removeEventListener("message", onMessage); }; }); }; /** * Hook to return a list of Web Push enabled topics using a live query. This hook will return an empty list if * permissions are not granted, or if the browser does not support Web Push. Notification permissions are acted upon * automatically. */ export const useWebPushTopics = () => { const pushPossible = useNotificationPermissionListener(() => notifier.pushPossible()); const topics = useLiveQuery( async () => subscriptionManager.webPushTopics(pushPossible), // invalidate (reload) query when these values change [pushPossible] ); useWebPushListener(topics); return topics; }; const matchMedia = window.matchMedia("(display-mode: standalone)"); const isIOSStandalone = window.navigator.standalone === true; /* * Watches the "display-mode" to detect if the app is running as a standalone app (PWA). */ export const useIsLaunchedPWA = () => { const [isStandalone, setIsStandalone] = useState(matchMedia.matches); useEffect(() => { if (isIOSStandalone) { return () => {}; // No need to listen for events on iOS } const handler = (evt) => { console.log(`[useIsLaunchedPWA] App is now running ${evt.matches ? "standalone" : "in the browser"}`); setIsStandalone(evt.matches); }; matchMedia.addEventListener("change", handler); return () => { matchMedia.removeEventListener("change", handler); }; }, []); return isIOSStandalone || isStandalone; }; /** * Watches the result of `useIsLaunchedPWA` and enables "Web Push" if it is. */ export const useStandaloneWebPushAutoSubscribe = () => { const isLaunchedPWA = useIsLaunchedPWA(); useEffect(() => { if (isLaunchedPWA) { console.log(`[useStandaloneWebPushAutoSubscribe] Turning on web push automatically`); prefs.setWebPushEnabled(true); // Dangle! } }, [isLaunchedPWA]); }; /** * Start the poller and the pruner. This is done in a side effect as opposed to just in Pruner.js * and Poller.js, because side effect imports are not a thing in JS, and "Optimize imports" cleans * up "unused" imports. See https://github.com/binwiederhier/ntfy/issues/186. */ const startWorkers = () => { poller.startWorker(); pruner.startWorker(); accountApi.startWorker(); }; const stopWorkers = () => { poller.stopWorker(); pruner.stopWorker(); accountApi.stopWorker(); }; export const useBackgroundProcesses = () => { useStandaloneWebPushAutoSubscribe(); useEffect(() => { console.log("[useBackgroundProcesses] mounting"); startWorkers(); return () => { console.log("[useBackgroundProcesses] unloading"); stopWorkers(); }; }, []); }; export const useAccountListener = (setAccount) => { useEffect(() => { accountApi.registerListener(setAccount); accountApi.sync(); // Dangle return () => { accountApi.resetListener(); }; }, []); }; ntfy-2.11.0/web/src/components/routes.js000066400000000000000000000010051462047176100201670ustar00rootroot00000000000000import config from "../app/config"; import { shortUrl } from "../app/utils"; const routes = { login: "/login", signup: "/signup", app: config.app_root, account: "/account", settings: "/settings", subscription: "/:topic", subscriptionExternal: "/:baseUrl/:topic", forSubscription: (subscription) => { if (subscription.baseUrl !== config.base_url) { return `/${shortUrl(subscription.baseUrl)}/${subscription.topic}`; } return `/${subscription.topic}`; }, }; export default routes; ntfy-2.11.0/web/src/components/styles.js000066400000000000000000000007731462047176100202040ustar00rootroot00000000000000import { Typography, Container, Backdrop, styled } from "@mui/material"; export const Paragraph = styled(Typography)({ paddingTop: 8, paddingBottom: 8, }); export const VerticallyCenteredContainer = styled(Container)(({ theme }) => ({ display: "flex", flexGrow: 1, flexDirection: "column", justifyContent: "center", alignContent: "center", color: theme.palette.text.primary, })); export const LightboxBackdrop = styled(Backdrop)({ backgroundColor: "rgba(0, 0, 0, 0.8)", // was: 0.5 }); ntfy-2.11.0/web/src/components/theme.js000066400000000000000000000025131462047176100177550ustar00rootroot00000000000000/** @type {import("@mui/material").ThemeOptions} */ const baseThemeOptions = { components: { MuiListItemIcon: { styleOverrides: { root: { minWidth: "36px", }, }, }, MuiCardContent: { styleOverrides: { root: { ":last-child": { paddingBottom: "16px", }, }, }, }, }, }; // https://github.com/binwiederhier/ntfy-android/blob/main/app/src/main/res/values/colors.xml /** @type {import("@mui/material").ThemeOptions} */ export const lightTheme = { ...baseThemeOptions, components: { ...baseThemeOptions.components, }, palette: { mode: "light", primary: { main: "#338574", }, secondary: { main: "#6cead0", }, error: { main: "#c30000", }, }, }; /** @type {import("@mui/material").ThemeOptions} */ export const darkTheme = { ...baseThemeOptions, components: { ...baseThemeOptions.components, MuiSnackbarContent: { styleOverrides: { root: { color: "#000", backgroundColor: "#aeaeae", }, }, }, }, palette: { mode: "dark", background: { paper: "#1b2124", }, primary: { main: "#65b5a3", }, secondary: { main: "#6cead0", }, error: { main: "#fe4d2e", }, }, }; ntfy-2.11.0/web/src/img/000077500000000000000000000000001462047176100147035ustar00rootroot00000000000000ntfy-2.11.0/web/src/img/file-app.svg000066400000000000000000000007071462047176100171250ustar00rootroot00000000000000ntfy-2.11.0/web/src/img/file-audio.svg000066400000000000000000000004331462047176100174420ustar00rootroot00000000000000ntfy-2.11.0/web/src/img/file-document.svg000066400000000000000000000003671462047176100201650ustar00rootroot00000000000000ntfy-2.11.0/web/src/img/file-image.svg000066400000000000000000000004171462047176100174250ustar00rootroot00000000000000ntfy-2.11.0/web/src/img/file-video.svg000066400000000000000000000004201462047176100174430ustar00rootroot00000000000000ntfy-2.11.0/web/src/img/ntfy-filled.svg000066400000000000000000000104441462047176100176440ustar00rootroot00000000000000ntfy-2.11.0/web/src/img/ntfy-outline.svg000066400000000000000000000044401462047176100200630ustar00rootroot00000000000000ntfy-2.11.0/web/src/img/ntfy.png000066400000000000000000000111351462047176100163720ustar00rootroot00000000000000PNG  IHDR>a pHYs >FtEXtSoftwarewww.inkscape.org<IDATx]k=}.<WUX_RC4ƒ $+&eɿ4$>r;dnjAt9<ԟ5l#Ҍ;^(_Z2d7Mu];er&>d$DLF5 >/ )Os[}?x{LNQq|q v9fY2BBXZ|eIdi jn xbL;4|t`u pF8v6Ҏ /SedgUDMF=AP:9i>m NXgM-lT%,Yf"ϼ|5_{(WU4+D;4x> *T?iy1 |v.0gB} M.QH,R Ftv< RR& '6ި|R/&@+ Bכ}?d5*CS%LCPy*..|Tno''gg:}_ÇMFv#6Jt1Hw]jU>l 6NgS$gGd>q碬i'|2P&Pӯ?y5ξ hi)l؀HIjK(ȰRggW^kuD}n'.-@&6ev ϩ?z 00 VjefRK'dI K03G Gҍuq9]cG+l78)i57߷ >0(>[2|yxjηqԙ*4Km,>M­T4Ex3/Fdѷs&M7Μt*::je|LXcAsl6&鐪~ ̆lfMTTWHq? y ͚ 3Drv3OsO}{>PE*qC| .ǀUr+}~W3FŅƲ-ocIOZ*tA|v7/@q.)c-hڲT ׎_{˳t4`gf+eP@d3I) (+8s=gmD{GUs+s/cH>T|n y!| p: uZ=.{+-~/mduZ z̸V#-m2,LX>fS.yUŤ>d:_+28_)?xYgMI1 0t5MRky6hYQ1_ẁ,qFjRg=n^ ] M-ͱ(y6M3wCv#_ᥟ zMՑ?ڊ'_ܧ_^7p| ڐb3 A~v87^ƭ˶lfZ|>rYIǀoUR[[ :XllZg 9}R|Z0|pe`tAǘKq'uZ(+tu#cԠ ߷I@Cż~7"L+ӑ(@Q|"J\IݕYV żaZ}=MF_<+%G9O4 `;DTtv_5Lnj 9QPtgnrNGv'P'Lox2$̝8׌} 49hRۍ|9 l&R 0*ٿ;ֆ%5/oES[|62;eU I+z7&ŏJc A(/ho1WD^ ;|UԺ>KQTI )vZ,lVLӺz`dt6߷;&/0{vuaNOMM2GYF+}ed.&"?+mA<~5V}~FH2;ef h+ i 8Z];P1,&ٴRu+tr=-$yIjHokMoa_Ѷ |͞piX̋˶lo+/F!R_J/j:'}?&uok_ƶ糃V&qNY:< }u=6م\{wѣf|j|Ű}\,*oEB>:t5lD:ivB,߷}t>yY:~ OnXB{g}.;~ rZF,ڰGZ 9 ~|?Da ł/~[G_<*?*g7+}X&R~nw~lo[v>F;PZno !;|Tc8Q-h}S!$g/}}߾/EO:݃]-l|ߒ9tz4TJƕ;MzGVm8 u Yw;~m~+O'4QDyK{g:7T/>j9qW\Ѹ+}hri ‡Ou+A"=\j e:K-60 HJ`r 24̲IjLge³RC6|O?("$>z Z:>6'}02+߷x4f}Tڠ m0RajLFDސ[vN`,gʴe}|Dh7t b|*60 -(&p)?FB1ԧToʣpLD4E};@,p> ˪R@c)3}SJ@Lpr1p4A0Ce٦6%Jx8;*+23ipmkO3ql ҂2³(Y$#'E}1%rd[ͣ&:fNȴ`hߓp1jZH9~}4 !Vt*K2zC=LU}9B$gYS)1cJM]Pφx:a&A5V׀iu#1zPf=x ><'8`P^;OĔacz} +3B45'"@m^߀iu pJ]zH +rk*h!D bZ}׏ˆ~YQL=ҩA<নGYc9%QB%Mn%o8K(y !6鄾M|1A 0Ԍ7a BHZ-V&+,QM ~[mP*hЈL#s'*b&V\qmx8BAP$|` 2!vWrG uB?<H#S_!h1ݑ !G@`79!Ď.aQ2 @B]Mã$?ɬW)IENDB`ntfy-2.11.0/web/src/img/ntfy.svg000066400000000000000000000055621462047176100164140ustar00rootroot00000000000000ntfy-2.11.0/web/src/img/priority-1.svg000066400000000000000000000023041462047176100174420ustar00rootroot00000000000000ntfy-2.11.0/web/src/img/priority-2.svg000066400000000000000000000015011462047176100174410ustar00rootroot00000000000000ntfy-2.11.0/web/src/img/priority-3.svg000066400000000000000000000011351462047176100174450ustar00rootroot00000000000000ntfy-2.11.0/web/src/img/priority-4.svg000066400000000000000000000015171462047176100174520ustar00rootroot00000000000000ntfy-2.11.0/web/src/img/priority-5.svg000066400000000000000000000023031462047176100174450ustar00rootroot00000000000000ntfy-2.11.0/web/src/index.jsx000066400000000000000000000003721462047176100157660ustar00rootroot00000000000000import * as React from "react"; import { createRoot } from "react-dom/client"; import App from "./components/App"; import registerSW from "./registerSW"; registerSW(); const root = createRoot(document.querySelector("#root")); root.render(); ntfy-2.11.0/web/src/registerSW.js000066400000000000000000000015261462047176100165670ustar00rootroot00000000000000// eslint-disable-next-line import/no-unresolved import { registerSW as viteRegisterSW } from "virtual:pwa-register"; // fetch new sw every hour, i.e. update app every hour while running const intervalMS = 60 * 60 * 1000; // https://vite-pwa-org.netlify.app/guide/periodic-sw-updates.html const registerSW = () => viteRegisterSW({ onRegisteredSW(swUrl, registration) { if (!registration) { return; } setInterval(async () => { if (registration.installing || navigator?.onLine === false) return; const resp = await fetch(swUrl, { cache: "no-store", headers: { cache: "no-store", "cache-control": "no-cache", }, }); if (resp?.status === 200) await registration.update(); }, intervalMS); }, }); export default registerSW; ntfy-2.11.0/web/src/sounds/000077500000000000000000000000001462047176100154425ustar00rootroot00000000000000ntfy-2.11.0/web/src/sounds/beep.mp3000066400000000000000000000053751462047176100170100ustar00rootroot00000000000000Xing 77777777HHHHHHHHiiiiiiii}}}}}}}}}PLAME3.100 $@A Xf4 vc0?Y]Yw \x*kGhnBYt[VX *M5RȈ25 Sˢ )@-@`0@P)(iL0S.hCh֊G*u:>f+6C Gf.L r*ԨX\lzb& F&'CmzRQu@iv#r :\6h 5Â"D@%1EZ I@LA Q0~f 0gU !lI}C0H c,03""3EcS3f/@Xrs"$`Ha9k[Ds=  6伦 :L#NG7YU ) H)|2iqK\fRh+Yo&0GPCTaݮjڢ݌ , 0r $BS *f9Y}Q,(L ְuINwd8U,#UwX`/#;!= q' HiE#Z 8-Ɨ<PA掩ef=rHi[ ..=htZVɤJa"{aՄH H ܼyWe[ݎ 0Ŀ[ۨYv b_>S/A;$/ut@qφlGNōLLY@R#Mۡk%Zn LAME3.100`H5wL|*Ę8h+ Sj(܀2ؙTs4/ (SBKLAMEUw=?ɩMX~XҁJ`>3AulW e3mPB@ LcCđO.Ԭ*՞F%2 qH+02 `F8h(#B)``f-0 - M4LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU Eܧ7 f DUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUCU1fХ0UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDQ+怪dUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUI %XrbUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUntfy-2.11.0/web/src/sounds/dadum.mp3000066400000000000000000000447001462047176100171620ustar00rootroot00000000000000ID3@-  #%'"TXXXSoftwareLavf58.76.100DXing]I $(,/2588u![  E!l50` fh*Gc0iցA 2r@E@c@{[/{?SsBI@YR̘d9Yš| S[3N",J'Ge3b0$fj -e NKEَakX k?{1*@ 8d 1~k@%U4y@?%)0CQsh dpx2U#.+AKP@$ƑiZIocNWv[Zd,&]M )R?Zֲ˓:2`aNyZ.s-nYo}2B'|e1p0`G,P#ҟYr݉&0Ce*RIHr׺j[lg$s3 K `ah*  =nԆ4I@At8<̡nΌÅ]KyR~Z,Gm*ğ4Z:r$Gd0٭?o;@ {wb K ŬXDIqB(> (ay&Fr "=/g qjxMIe1uʙ_ bc~4s !Pan`]&dzfh5*;$a[-\ڶ.a~-YV?Pd-M?o  5ag?(W 0,Q ّYᩊY#zaQKip.#HvW1'Tbi#SeON?ca_9 L5bj(J@i%3 pn6LBzMc"A"02 \ 7^zJ*I|ޅ+,&޵[~ja] BI $/3G cFÖɓ&C Bc< KD0"2"OS1PmXXLTp|p&dcHRcF>2e%ppJ>q -SPdJa 8)'?ENe]fB86u!8^Ջ6 $bJ01P@Y pR۷L H0Ra6+P!F+BBCL)/5fn|RF%F4 dDdfG hDS0PuMYڻPd Ӛy w/̀ ?€WpWլ[!M/ZYJ4*l-+ 2wv_mC`r/ƖRСleS.YW 2!0 M(p Â(BDh(az*N75a.-!gX"|v[͙cW`NƔ^6ʯd?MnwdG ?Àet[}f`_o.F._ `^= \`< A g"AY5HY!&ɱ"q\?$6׹Lrs\|y cp,I(V@&t2p;I+O(UhG93MXdebRs]0JRzɒ @rѢIC& 1wXDPi ImCmzF/x~vNZFԭXTaΊmNr5!L ̌xc3`dw2Xkx ԩ1N+?6} DvP[-s( ǐcvIk+kV;30i/+_j\@ eg6r!*`8R),- (vU"P\;YV4ADrL-_9;0t:6(Ӂ>ÁF<H/g0.Nӣ|e4bȶdi&@)(thΜƳ^l?U ItOaT hrXM3$+[B:@dkyx k)M?ntc}ݳGꄨYy 0-> Aԯ@hvY7@`A&}ΰpho)\ǁ e*j32O " 'ǒ2`%!PšEHPdpJSx1 Lk% 4 ?8P?5U 0"$wo &S!VD @q~µ L  $}DYfs0tۋD>8%& '+*>'(Og[(t+'s`}d5SYBq6>0]y @dAJkx `k)#?A4`O%#6;Tnx)ޡqرa^ Q\A*T8CS44c ,8LfWFsoP :|1BHP,>-r׶D@dxkxQ'%?ˡBw e[23>հɺ [HĎ(weRyN7JfLJ'.#N|}l`kP18b)!IhH Bt^ W%TIY:ue#0d"XxU-e? 5N S񠀬P h쳍P-< 5Lbzm:P8؀a>[V\7FHE2Cy%fy8 Q42U73cMNm0dL{8xE-e?ޢ#,dWB@ ^$)#L[VR).$;,kLvK^5C+c^@$ ald0*UePf3Q=<3<ȝnES C0dXxTC+a?..D1D,*l*n@8Q2w PѐqPF1HT e5]h:S*%!!aH -L6rBAō@bacd$4j"%:S0d?Ixah?-ah?϶dU0$@;2r1ت ?%7ʩ(.$. F/U\)>&XќB.+R{e[*yˮ# dL8`$A/e?(!}!=yDOwC* j@6d L*,ak˦ w_^[I5[Y Y5b (Hd,5eWBmwdy0dH#E\@ s cs 4s_w[^ ;GR. :(FM *0$_y=lE .rc',=}kmIQ]{P@dHx(F`@K:c 1nDQv9=~/Ѐ)rr?'ʐvU]cA$X( -u%%Uzߥ9;9,s!Pdcy"F`b`9 ;6ݬCGs;9f !'@|`k)]RJUdDK*ǧ(4ۺC*YUcNffcdmp;Dg9_oڎ^VUy]](vCs7y:Lu%PdGcHE `Wc@ `dt+=0!S""R 'Mݩ:5f͘=8pʲPxt(Fec1 B2c3ò8EčT e ٭F̟_QU4o&ꑩg A/Pd\0*8#}Qm# Bg8{륩uB0ҢgG0' fC`˾< pM ouE1wKY =lN!T|HBK3/zQEjavq;O:2$` 0BPΈcgΛߵ-.zPdvlGZ@)naWn< ֧wWrN>ړJuJVsn̈iC595b$ 0  (g e[%=Vf(>c(;榶Z6gT5iu2 NrPt\D G P#`,._~6jPPdxFb`,r'OFSȎ yT\;"Waf1XG`#L#gmX*vA$@CYeC%kH?+Y])d U%CP'~[ΈGjBK)JS J,A!Pd[(GQȚ=# :5t@kV> 6Ooggzݬt:JsUh"#S//`1ٝrY0#&%~(D$h8 6W_c8o:1*>rCH WL$މo}4#)=s}`duF`.GqQȱ<mu%ы@.ZF |^=R5uns#:&FYYCW3229EKq?drscQKP5/U IWH  dm5O$rza!qAPTRPn\_Td)'iIFT8Pd.vFb`r (EhWȟ"#0ՙ Y&U8@nB!dN5FS%:alScH2f #0˒^ec'@9o;, To(),*L&p,q@ٝjIC=^>u%L5"c8B `dyFZ`-5O8FQ8?!P^+,.*0 ЀH? 0e4?OOo~HTfvsa-Nc3HS5!/}?,%Eߚs<߉YP7l AaaI5 @ )קE2ޗ\ouD"X: RrTqe$bk#e8B"TB GkSOއv:LJ0u9c2*:_k<}Q`d5zEb ,p*.رJGȚ< :̏G,eB.rVs<fsҨD]tm[T"89!}]Yf{gM9Y z!TꤱuVA&x476g:e=Z鴺t] V-P9Q B DFX?DPDvwF r2o@SȵcY/xz`Zk}nU7. pVM10P`tD lज़_qU)IRWW:s3U U/5Z2_V:*jFrwAjcȦer YHǂ?`Dy p8/H@ü 9硐f;veUW>sf9]!Er2-QPysDȒ o[vo[WnҴj:=έx3;%w8 xΫT}Tdu,G;wB0VS xWm۽^eLNS?GjB ;$Nb#!k`]?^Pdy0@,'(#![Q|=VuETyRU^BSܣ&gpB]zUY٧l]ѶC]iEujg(Ld(Ri~_6l[u%}Y qpo8~L{?U`Dx >E Oڽ# MV]YUOEDg E1E%@ %gw~ҨȊWkyYNZsGY)*"̒v~7on脲膣1(NRA;RUQ)?f`h$j ƤiF`0&JO Q5Z=nӲ;<:2e->F`DxF r7nF`Oƽ# /{*#kQ뭏JY:%]/՚tFmB&E,C0NPz.j-G.=o339]ǣUDVD+{~Ά}ingUC<9[J9qD*?3zu}ڌYObz5uDW;2̊S_$D<<v=hD`DyF p1n~Fi@Q#<3d1gTz)Z*1#7On5]V楑{lf9 etdd,sЦs{ #4~bg][z+tFV9 [1eQHwQi uj}ʴ-YiTٷfr ;NbXƿNwvPDs r5E@Q;c ]r̗k#)V~djXXov}ms*znmVd] #t*as"#Sʄ2΋!Ut6G_clGvS]T誈b S#ő:!琏WD`DoF 5(G @O D}$^ѝD)z us^.ީmkǺֳe[!\w;Zd[,Ȕ{/'#v*MShI1 D-HUH/TmdR}dI[sP3)*9v4=i?rv#}jʔCNecQܦ`Dx 0F@O弣  9RJ V`VIV?vȯukdjI:5ܤGc4Sk>WH "\T!$S1<_^rSv"fcB) CٙS4 2+9#-c#gM:̩rjbuuw#B;`DwF r1EQ  98@J. Vj殓Z*CMwVd)΀=2:)WE}/{}ɢG7Uou_{њVٵ?KѴo{nMP)0Ѧ*'!%D#94AyaJbA™P œhb2n0@113o 1vFLĜ@$s<${9ϝZXkaM0F%thZ[udd4QC 0&u)0ݷLjO"! p߻ݿu)~{^m`@N=rCB|O0=QcW}?9KբSd!H$NI)fv>My)sCB3tdJ\.:0 2eYgذ0sUf.ff"ebL  , Hf*-,~mJYD^F$7]*X tMpX&?+5k怉%j}Y?@߼-pp/}i?%3[6f#6P[`s7\ [ /y}dKyt8fоl'1 ?kJy[L_m7w59:~۹K5Cw.4*vEO5AR2~@k>m$bSap_\.'C5(o@yV룲C} OӃinF& )1800@t0 La9 \'  O.?| 7Bd ވ~kdN$44;ނI.h?4Hz`(!LʤBX@$NP(@#@D\ ȁ@PI1Ke+D* 10PXpF "#B!)Q h0$ `#!as@DTPZk 24 W$Wjr՜ȏ3Z1W!AfT Z3TZQJؼqNq~ wj9.B4ՐPʯ IT>ݯ*ДFt8TPWh+HQfSed!+ҩw%#*x,0 M B/L@ H#sr `f8 PY0颂 >U5/PI$O ظG5 t-$#/PpIn+Lv5.J]1j\6xCET}V̗DԎlZZ^R)jEkR&gY*F(eEDLDVC."=)b7:X%nX?D"X@Y/ v@*;gDxZw|~si艰g%WJALUgjvqMxA!@Mq1TqQAπnP)Յo.1]* NP'U g`$(2Zc[,ri!v۶ʻ-$$ -2ѹce+d)PMB35 mqzZ6k &A1|YE2r`14-?r݅ IwC(hawi#go 7?dCOMvF,$,=P+A e0 0P`D:0T`).< . 'Fþ毄fFaAeyHaBY!PP0T` +)U~v@`aic@ KF0!1&l!g˵$#,ibC,쨵(xdqOXOiY'*S%)3+7eu7,Q D@Wrpj, e=1:ӗXG2G%Mc~1غT0VCA)JrY~S7%{_}f3( `&`XA"K&$ (`esebTn ౹+쩥ɀ!"i銂D!モD_r^elʤL݇q.QZ([LpF5CSxAA @d0TF+GCG;?,,?S}ֹiau]wbn?XCsRW 'l_0E#~"[DT< O0H z,a Fz\ep]gQDR,Aץ+]81ҫZƖ[Ֆ|HkW6QlS^QU۲XZ9vX2kT0_11pܭЖ$ J fhʊ^@50PCvxzμy7x+YfK-az3?AKޞv^){MuZ7z"wY`ޒyGepWPl/$ 3$D(>@mh0X sX8 ߄WXf0$#QW5ugrح!u&KfJ]#sSU P,MY:c~Kl ,g5 lJ㍍(sIob%M@5SYKZآ޷1/}MڪYԿ3 4 tG.2&He, ..2EFgrMgZ9}; I#3@W $KM;uFe>qZIJȞv܀S?N»p6@qaqdDIpSDa3@-zF9e^aTc2a !o?~Sۍ UߖIBwtu :`.@CyTB&6c3Eep#/4?)RٴdJ{C] Y`M+Ataf%];آ $&5m} yI'\J͟y/?M5ůbu1Xj0Sm~|}op  Be Җ.T8D5D[› _àԽ BH[>>GrKhO|Է^3w=:R%p%(LCagFaP8iךuXy"Suz򧦑[ o$0J q|kE^f̦ԂKgbZ[4SXH4%j`C5z^Wݪ[4'8eeG߂7El咞$d݀J{zrZ`/?Q%h=HԺEVn,5 uK5?w=Gf=M{Q1"7^65d=US ! }.!bjNg#`IGC,9a ܙ{JY$Yj)Kycw(uIߖo@]}f (S͋:qmwAOZkZ͓ENQtԔ$ $60[* K:Bb`Jx#4%8QLycI^rp`ȨX ډebʦ`i°MGsGtkR loϘ:1DNb|jR]HQFw1ќx TEz w R qM,]2aLtEST}a>%C ehecwQ4r@/D@ 8++(Qn%֝ZI$93)ܬI*]fHJWLD1q zd$dTJ&~iYj9/?&a%gRb) 2`*(5Q`$@K3C՘Nu4xYwl&sI+NS4ʛZ=t." [ݷ b,0+1 *a̋&}VeV'6+<m?̄EYb;Zd㠽FjuHz褁ـHE&Y]!'8ROtљR0Zjx,tD9[ouX341.P$8rl&txj& ݖJunKmXy5U#/U"iu艡hꈖx6 CG4VHDVjB"B/\pI j\7S4;▒4!'rw"蟈@7H\2'Sظ!;)4ΆoMk-jMM [8u۰u??z4@K܋2L8f jUq"]n =1'<8&u]"*QEE9M=tTuy ^ ainBĎ ],2TH@Y3dLO{&jieC1?ta%gaeY:ltVlcZI`,c_3j=(܎$ '޵=NeniIMSEHVZhB# 0&}@@$ m Z:<.S@ԡ6hJTq9I`BA(A'O[YzQ? WS]Nid7Omۻ sAN$Ėp'dNY Ң( WRgbWJ E|ӏWs>`¹<՘1F&)rn$DRtڄ(*sΝf=IY:E"#Agn^EҜ° aL]e'-s95VߥJYD3R%l'!Ād=v0dрL)X&dg/;좔a!g*u,>ͥp\(]\ƴ]Rtsw\ C Dي

      hnL_E~X50RHJ}Ԣ^\)#ӳY6E&d\Yt*4Lzebm"wR{׬BdWvp? R)Ar],X2WVZq "~*`@6t@#nzT&) @sLͺd̀JNV:VEdʣ /;taF'}Him=/$pNi,HWm༗ĺ7Xxd\T|%{$E" aW8?>eZ? &h+DKɢ6`6οv[{m@=R/V=иbXEa NTc1xRK:WE2H4&x>d&T8J]xjfeE(06!-|zVFeɛ-f grrVb@q'{۷Aa12M ,Xjḍ0j Dֽ@5"v}URM}R:S˼}P do4,@ե$kekf+q}z99mHVvS:m*P[ vFT+: 쳯"/L4ak! eJ\LDJp#o̓WAlN$'ִTDQ(BUH7oJduJS e'M)7iH&[Y&HC}z݈uTPV{Q$!0X}ʦgk Gzs@@lssBn7Ձl+U$ -OFs PH._y$Or%{R/-g$a x)eb@0E^MWz~tUV^^jx@D{P]{=n -moGއٜ\)*K  N$}"MHXrڊ]XIӦ];]CU &R/D8q_f5@ #gN5F i(IT21fjOz;6^|wb$$B*d`LM{&MF `ţM +;Xa'ujN0zWMEr)Ш Ye5]?{4z<$H.6?E \BP[*QQZ*.(tdt^=K6k$\ |mBJF&ȩLGdd l> % z.BK5$u$XOơI"$0}kxԊ ǠUόƤ l"0etj"VE\)<*I=EA seza'qqnHW͋11~$4ͪUM"Pł^CG0A හVq(UHY(It.]+f*:+K2<[663:cQYѶI:2nGdAho5Řp:  ˲P6EL.vY)lSs4 2䐴a|2ʴbh# Pu]dR@2t0 \sêƴ z~^I(>WI.e dJ{IM m% U+3요a%@5dB IUWW(4`:3J V(M 8RH^0" I?G# >us jdэR@ܔ'H} %WuTtSRu6. )!TЂ_o? ^MDRb_뽐0f_]<[ G-1GF*67 fņr+^ qcY}P& :$Ԓgme=DHK \]P]F.}x4)[6ncʩ{%ÒdJL<=ٯ?KL)1t`&|D(y qc3r/,k0rZq_@H3Xglu18ؾyh h,fB)D`.]o=er眧H /2! W_yh`9N8"b[FbNt;LJ`W䝩> X-K&j*F(YR@&EGK<dJ&9aw )5ta%G)®5@E * _煴r`1x|PL&/i{f^DiW AfvE?%1#B]I~Ll\\(K+ ;J 2/]Du6w>\ܠW 6Wzso9iwOLpd2JL=ofڜQD=vf*IS vx;?'kr*g9$ roc,®> &Ȟ菂}};ڣӉQ~u˿KFU*-1#&1jtZe@HW6@I5Sh4XV @A_|)4MYr)W;,0҅F'DPCMyƜ~`zpdJL#>Ù?=' m)/>e؎%5Lfwik{x̀Pž$Ov0 x9/BlUIRHj9Љ\3fEQ;i7S6 mW_U ֤8׫m@Sm18CO# S ++`%|_ұzs.d,C.S?` 6g$iuhwOosua``'ƛ4uC _ٱt GHf WG__,0 .0Ϊ|(,oQqygYPTKKL|%`D|=NUZN ɊÖ^Vn']pay4zm]38~A`Rlmpd2JJ/H<ÙO%Y )'&t`%x5kq3sR+ʕgyx/ѻqKs}C >x|r0h ݿh?i Yb?8|ܦ2L-esז>HM2;H&ui~5M_0g殔K~p7{XT>\GnՌ!.vg(w]  $$w`dAJ2=C+-j੎e|D7zhgF(6,4_T?j[3|2V |PXřȟYNpg +] DGZv$s6sG^rDo0܌+?Z4;obsꮎLP1ޝB5Q -? O?ՖxfI_`d>JJy#_Q )'t`%4'D [_RQvQ/gW]uIѶ>`lٿSO p|MvwEopO`_A!Wp%|zrA%\ܐIlH1.vHڊh柭"( oY}_t}XWwu ϐt42z}'ڎ_ڿuw}Tլ$MOxM}s̿HuT52Ȧn&`d:JJ,oQ )+'l`%|<D(BH޿@ ghiQ1z)kJ S>reu L*M@'@yab/M]?0=ITȟȪvv_l+(z%-9֥N02a%@T{o?m?'D;D![(TN9TJ;WPdoJ)'P))^u&<Lppju)'=.|1:֣kO!_f~P-~ 0aHV󤿯Y gwoE.qjB@?qMr#ICo\x6$?\NLF`-jPdJ(ɯ 'P}+fHf8H0'HՕp3REsyb^XO=3u֑p2lZi)\Csܚ?Oj]@ !Hǀ*mwn؟Zj:1baE]i QKttU.(ȾST`/`dEJJziH/y_JQq)@tx-AHk; SQߧ@HPlAbPdJ(-Ps+j S&|,@<]VHPz2t MoO T3<TE>}l8g Ђ7 ʫ2¬ oW=$oYf~b" '0QCNDvz'ak?[3Pdzz(ɾ-P4s)騀i%DMnLc.Av-)PI?ӽ:m\j<@RQoEo$0_ZPB4~+<p ?!Z;rU 54` VnDmFAcSGY%-5_PdYi!o 50u+``&x)HQxԲ,;sTCCf" " itMIY_}M+p]=R֠ˊ 牼P?O*PhpX$CcE9!wo\Tb@dIxjC Qhs'b(d@jĜrZ& ĝc ?R垟N R_7Bu%WWۘ1B 0cb@$qbAKOG:&H ]g'` 3Cuá@dIb`mo'Qs%遴@W&X'>pP``@mG3OnBON8Æğ_>1K]& djOwۯCШP(Ste7H9Pdj Ɏq)Ɂ@%@_ZL[ !I"HHɐZ@1} !"2hNJ̄1>?ݹQu $-#6Ta5 p8cF*&J6*lZJ2=C 6a3Wf.@.O^ky.9xաu@dm qeI&|$&-8:X,Q=@ XJ`-O_ pQ6 }̑61 (ktvww֬f80}^ɀfھsP<;PdHjm ! Lw'b*`$5* gK Y _*^ZO'Q<#E**J`?R7Ϡ *P20-AT &)>G&`ހ_t#ixR@`#!Pd聑Hjm$! ds!l|` o~*`u8 <tfԿR銁n1lYtb 0 .;Xt؛?D%+Ҳ`P`K6pR? .5j*NSܫ% Pdj`!MDq)@?%< 2@bahRu'j2_ɀ0=oo1 ?Oh$#9ήD!r5`̂z 6Ru]CtyX[ 0%Z TE&oBPdHjm`osa|$@]3GASAS>Dg>64(71^<؈kJ$ ` X\Z6?Djۮz' Qz[ ( >od.դB! `PdrHj@,x(F}] < d ^=_OnbJ쎨.Ra%@ 0 Xj[oW!YH,X&+@ S?pφA5˥莪r9Ntx`dHj@/È4du!4@˻t Q\pO}ƵE9Y~5@Rzz;6fwWbT 80 w7|UsOFb:Y_*@" U=afHKn۵SϳQ+"ZÑ3TA @`7Hh[ZPdtGj@B#@u\ļc sWyDXbY ;*9Zmv#C91\ -΀SKտJ>nJK G@(1W6 ZE}`d vF@% /P]ҹc nG֔KU0"3Bo?ҒZIU @@@Pó%LC"#-JI%9!8KE_>D1fPRC3AŰXe 11 FE0Gm?,C"Y¢E F\`dvF4Θ@Ej]%-U(\-tڂ ! 6`P`@ QY*ҫ>_Ӭ]nW{3C<")*p,# @*`edI8BKɿ>AԳ6d0E1A 1x1T=ҔTGC;#;vb)JR5G:9rpDyE`/"9F Dj}\O(PG\I="@fj=W_'ޗٜ*@+oDgr? hb6էia*p!* @"M (mřAa}x mS5]fU61ՕT1IP"(W 4$ i̝7~`DyEʀ,4jqM#%0qgMI*+9Έ4CFc4,D`c6zڵ{5k3>g5SVK[JgCLڱ1wu# @=Qodϗsd{ B9dT ep*  ∇@2=5J_]FMέUs2JAc 6YBH @Le/`DayGi?H#FMH#e0 7eU`ֹh0ѿMUD>WJY.sʪG@ d(3D|?[ 5,Ft%\"ÁpU aYLWo%HaDZhx m D@ $(G"he̩%X3 `D BxE@;R@PNGI 𼢅0 Q|E6ֲ@GB1"d*fUΨ<ïzD`pBK(UTH#+u6tȭ&s(?v8wzm_{tKRΏErr1J o`DavJR*oHF QϢSY*уDuaǟMZꎽi]?Oё!O">@N] Q0#;_nA5/Fy߻$B䒔.Mjɍ9VH(Ψ=C誤b@} 8?l]nݾi,Jh`DwE`1oH@~)M# y2f(Qo+!'tftaZ +U"_Gvt*D4♐B! @!uٝ>^ db&b 9ئsŸABD#ݴ3U==klL;)wsNdJYF`j9z36-7"m#m6rRK)))û"""";"!"";!`DazE`P4PH Iy:c@ ;:%kOWfGe9dJ=YumVֵVUR#^ gQJUsYg(2s}ȭ!2+J}XEX=@de&ܖ5FUUUUYUT)Jc1e)JRݖܶVJwC#,tbIW2ѤDcA0ĐTRTK?`DayJ,r7LFMɀQѹL 9gτyʈ`F{Ш ] "Ph? yIòNyڌE 8\x68LP=Hp]sT~ƆgqDDdlbRLAME3.100pdzE3H#  b᪪0Dy+O# ?ntfy-2.11.0/web/src/sounds/juntos.mp3000066400000000000000000000446231462047176100174160ustar00rootroot00000000000000XingI )-03:=@EHJLQTVY^acilnqvxz|PLAME3.100 $@AIRE J# tֶW=Pz0ub#*y؅wm0._A H͌jWJ>g{0%:IZ#EA 4ᾚ73^e %)YrKbC0 *QD0aAIyM&0N 0 Ƅ!`;8s\*C _h. T`4 5WpZG]ɐZ)l.H,0eٟv0 Ir⢫&z4ɳ @0 GO(h (`lc ~%k @"&JϵYeā-ysR`_<$ aTBu@N|3)Ɨ}2F;ˢӓWV߂}w+J*pf! e Qȿp yUE!Tr[CCGDU_өF0F6:J%$ɠ\G%`0NE]T%Ժ#`Gi*Iz(W[lKE$-*4Q8hTD+4e?9VtD\fi ,d&hM8T J`:\ JO˭ГԜ}4EtR:U$Gy(^- _ AzBF5Qj{`DE@jQQJ}I[,Wsg04P 5=M |Qpb nAH1)p;,-5hFJoOQ tg^ȯStBa$:b5լ*L_Xb%q"~4#3SU0CBpL`B k%_EqHhtBuE LP5ܵ3s1@ d'a 4l!01h\|]-l) -.n&WmD\wޘ mt*iڱI E"shApA,]E*\GǕevsEd7?A_)k?9}=kO>}dfʺ@ L!aa!# (,04 =޺^` sJ$#,3UɃE$Pޢq@ B|I16b:hd Ո/E_ $G|I|.VnMֳ֨ɟF ȩښD;nCDS9og E1 (7@"7fH@F’4C-]zW5i[=~uMj /gzWmbyOF2ٵտy*S9䕬g+79'3G u| `FP \3CqCY Α,# 8 (Kj8L᠖z[2AHF0$<:.kIhʚjg$1@ F cuY"<&0bm&@`b `$1yt75*[ +Mұ(P.X.C5"/W򂠻^ a;p7Oi[vnU%W;&GU6; 5Le rDHhӝdb(ґ#zIԕYCUcR韶eShc׀Ğ4&HsgW[H1^(_E:IeIRp v< B8Mt!Q 5^Qnڻl3gUh>HPPڵ?oF>w}I&'iS?zN . \?b3dUMUb ct(}/u.7ehd`t[ozA@q`[_ (rV HVqn oFB @ި* i?X" ,DGJx[,P?kdCA11q$ߢZ@h}OK]U%h? H`G!ɱ?E\g][!^h bŠ^"$H$0E;=mP4!Rd6G@fU p.tIɉ'qE>sQdž*AJk E`abd~u:h틘u, WJΩj%Lk ?:ZAﳷZ G©`Uj!^gZgo|(zX@ ?b% Υ @`` WALwa#%R?IԠf:C8aը?K͑RdDITui,PXZT4*5jLM[4T`2u*,/.a f"0b8r#[0k~Y6Yh62F$!tjhD7詑j&rq fwov?SmXRqbG9IӱckvQƇ*]q~뛈MHP 5&pẪ潘 Rki&]A)"a$ѦTu.h}uU2(S3F>" ~Wh,np7!Ȍhɒi$JBÇ<Fug!;BnyʛH4ZhǬ?R>I e-( ` +=jx)O /.MP[TTGU_>՜E?WJ@V#TKӕq,Lr$SꞶ_WՕkXР~2O=i7{RLbm5hwwױ?{7_B pp<Ab#.ǿtNCϤ'J>D͖ƮV%VTAP x)2P}<2?hvOQYh Ÿ7WlԎZ~w\9jмv{k>dEs]N%˜?H5ױ?3-\dMx,U)YtGks1FT=F%G3P H)&Po%}61K`3ٴWpms14EC Z ج[ZiY$%dwEj]zc?H)I$tʫA0Bs|lqy[j]Zթ}εDLG؀#t“fcyP <)챯!B}T$__Mޢ&v0Lh}W-@xfhﱀ?W0T+v:՚q7YRI})փ3SAS:(]*zo)PR1 vgfki)#|yZJ̣~VFOo:e]"xtbMkM>P +-aQ}6K߿{A`Ns.52UˆuZvex߁m잵:zt kTTd[M٩;j/W衂# MD^$!%?ZSVf AIm[{>&A$n=wRK]}ݲ?x@ +;|T?>(P⩠R+'}h$ ΥeI_}U}[5{vZTx) 301Qmu4-93n1Oa(uUeo?Fjg)u@y:tP )!A 4t#P|o 7r u A?{P)o5mm03He ģx۸?cJ0Q3P- (/}gw9Q;4f#ZGvKhr|jlFtsHR8+Kk_S0(Q0 ! (%|a1!4j XΛN3>' 4OOcb-Õjv[iqٺQB3ZNS7L Q#AWUm-._K|߯߿얲YVBbEm۰1u09x0I4i/ ѭU8u%P7,dp͜Z}s uUO~ۣSOTT7}VTueyU\AE u\Qd,QJC 6`%] >ŅSI52"I{gP FɀYqکνj1 t_'PKi&g ]gYֵX©6R%475gʇɑRfAAD[!E-k R=U_r fdh;ʿ?oYe3tar Jc#4Yz5lSaX&aJ{Jwh9a-Xo&A)Px<1@KF#u s[3r+쓣FHsߔSogjNtWADrZiRAԡ $L;!!e!gP5(pډV%S]UM dh- hÓ9!FrPL&z"hқ8R LW`Z:]"\s\l3d̅Ӈ<˝-k.S_3?py@Σ2Bp@\C!.Ճn/blUؑ=_\׳xF`4}R?/_wfGH$B&;j W>pSEIeJi X!:@G HgHFTM7jND7"*婆JB'YIX\A a@$jŽY>Jxgz2!/^/ٲ.4ȭWa5H4i d:rP "L="0`j=8<+s9 ȪMes?i]%:o_s>3uH7(,f oE r))JTItCYj^9"#=/=M le1BVQ%>"C#A7:"b2#2)M@ #8 )&k߽Ώ'~}^ng?z{_AQ.e 20P$[ :DpLApt!=Խ :DtL eb8FPfTg&LMm[%[Gv'Q# A 2/"@ !wRdPLAME3.100_0  ۈm4t- Tq : 6 LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUD߲)cL1m}?MfWgC]f5$SQi6LAME3.100 !yd4ܶ̆N J @.:O_[*Uec UPspLAME3.1000 OK}ԧSxRtWE8LAME3.100crނA8`<^f/X&b@dH`LAME3.100F$4 m-{Jٍr7Q"VK̎LAME3.100uWT9 Ok[C3: ,Ƭ˼Q3+Wj5?+^3fD|LAME3.100UUUU WZ UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU=~=֕-3<0\#JLAME3.100f;@ ~K.FEPnv;)?CuFC"֪ Eb<;i13ULAME3.100UUUU%WFc UUUUUUUUkճhU5W*5j0OQqͶmZ]&CLAME3.100UUUUðucUUUUi+ EU,D[@g#A5cNOR43}HLAME3.100UUUU [9c@ UUUUUUUU?W/ɗV;2-s Dl)Ѳ^ΪczK!zӍ1LAME3.100UUUU5S[9@ UUUUUUUUUUJ)b-;go*$AwN4R$LAME3.100?ĵ Q?9?{ jȗ  EBuEfgѯlիʈT1䳨ALAM?f^ÅWȘ: y2F*e{++|37 ݄IT. ɟC^]ܡ:"LAME3.100UUUUWț<#UE.e]rK!*\B3/O0T,>*45Kj ?jGĩSsksԨs|y[Vž͐=  {y@xYj^E@x58<btfa ߗ[WR1ŒGZ*`(w1 x@z̪r[Z¨%@a;ٚߞd]0fQ2ؕBIj;Ab S#,j苪}ّ;Fql5&Q"Q(} \֟*ɳ1XLe(bP 9@_<"RHA_{4933*fk^,6x|s?}R O2(J嶵QȮ`}:@2=ݴR}5+*;J9 \T A*+{jy?Wi Ȯol~Ds+ʼn,YFAUfMkOڞ;Tf"ecΡ#EujuWvFի @ÐdG$45r,t :*gZ=H@8#L 9*4Uo9Eԇ"b%A"3*D\"FioF!˅/6DTX1p@Q̼ =I#\(*8`KVx`M02|@40"yH.nCF2@t, @˼m Rݩ2( tHY,&>ORQ^h@$,0-uը"P@5Y]#̦!RcҩON @ȼ I[]* Ǫ9B?{iO?v?/hY|̘9X _4TL\aXq*чZJ.QJd 9 D]N (EJrj r.dd\7eב">vne"f,nD ?;*GdyY\̖efzEn;l%J(_` ^#L(|EE4stHLi JD1B 斥SAEL-? ?F"))qd `; k5"*Ai[2ٻFΎTC‡U: XT2p'S܋B=*d {ُj_30~ɑh q@һ ;4-bY! &ls[)TtX2 W[nM XIeA]EªklNjy)x:k@p((@dtP8`唀7Q0 T- WȚR Ah7lؔ lDiחriqG (` 4e (TsxyEE6kd u/`NLsDFG}ONgYl^CU>!I,. $Qn :Z_dIT<^UB袖:VlJ<@ɗڦ_h^@$E$ʪV*LZs@%L nӵ .<4k)Zpʓ B_RƪťC4䪲ev]󃄐(` eL3:$]?܋*$ WB سHb\Hس'v;dERkZPV| "` dD̰Bt w(?Z7T- 5$ x}-\:(**,vPN2\1ZGKUfZ?ۭe(` dr;eT`Qȫ<2=+4vj?$YY0e46?Rk.gLAM-~n $<"y1I70 _Hal"@q਀% Bs9SB4Md%u)]Vt4xeBBj;u< eؿTo}Nj(W_P u"` ^3Ԍ>ܷx`#ZC*("uF]);URSL#j3%پ˪w, @$I_|(`^"% ̞K T2 r+5cS8`t2,2f} vҖt:2f&额V&ѯ}f$` $9ȢW# HAfF?$!\FNY$x Fo؈OB>hgU4uPDڏGSȍD ; 4# A4D6paP`HmF0 MXdpzE1X&x# YmJ3P;҄RD&AVu F"$`Nor?fҲdYVEJ}vZTgo7TJS `&H@tLV0%Lx$L`0ौD,LBf̍EPicd yF{`?p#/Aw02<) *86S]Y232G1rS/93# "4`qh# 12 a THtLXAl` 0, Lp7݉àt &ac*^F VxX;`0n^.kL-XB51HӬK9Zѧ9&ʤn̪3BF2FNEFY2  [1U TfnJ(havḼpwiNğa%;Si)ߵ3RI'ռ(|yϧAZKjs($J8%znJb`"ZpDT4/ m>~+!'՞JsЕDSV[F]Ȩ)b,QQ"]KfHȒZa^&T}QɫY "OG1aaoJ,^.2ⵃV M}I)io+o~Lޡ x{z,7f||ֿÆ-# ygp%F,.d,H 5m"XXQ$G#{F&LqeȃUj@O%K9N*|hlt~TY\`Q檴ih=a0WH5Ա«=Sr_:h,u|ۈB=ڽ<)Ss(ߧ<-wc2E W̆>`eJ]$S+e-'$;TM5_ddV$fqGRGvfdudbe `191gxIoû`P9l+*lt $!6J̦sFQΚ;SNi1w(\8Fڢ5fx*Yϴ:NJTKL(.ʗٹ>^Yd bvsRQc9uhkSaLNNiی07<DTH$38ffYȤEWԒ"Lc?dSI5Z,<ԊZH[_ 5:oTܪ!Q;.FQwdԀu%s{  T-yHXdsv"8UqXAdNk9DZW"Bh{a6K?RչeQ2ѓȲ7?#k~ki #H#b)x/RuC2̦ؐ- VtKJ@x@/B](pZ, T۳ $R!b <$ HlTߠ uBXah4|MO 3v%8[ܤՠԉ=rI6֭5YwtP @2(%akWk,$sBWLw늩Dy9λ8wWFFj [nzfU* *EU(P]08p|De"{4x}.ᆉ#cd8yKsR! 1\$Ĝ3b 8xTL6 !]J3SIiYnX dh<ҭ=WYc쨸M΀A8Z"D^a;*d|b+R'r,UZgf؝)$@4}VB Fc6 w/,(LKkZ+2 !$D2; "Q=3zDN"Zke]tL)xڥG -7MYu8[!ρK3W޻o :ֈNJZNz{0rXAGJu.3Kh:BC-qqn'΅QJ{/myԮf)ZpZUvevp6B($ȾdӀuIwK)θT50s;# qhT9#-5m}"A.u!BBf͡F0xDӼXTH!^6eiN) YID;$E#_oa0ʶA-wܔ&pX-UUS;E 9̆ylE #tb+'kC;!*C !xVL*)D(%<1Ո %7#l!IQĒI`$4t뗢`X- 3I_)ܮ6(o!Th2?Y(62m7F 'Gκ1l{Թ3[XL{<'dpm[?"/&D=M=4C1GduJf{ r#(T5$s"@C&\^Jpx҃A1G A,}eMHI8eE33y++~֩iS^E!UƤ Z".b#i6Q56ӓf~F&ihD9U[CRC4ӀJ]@x"]Qߚ[܉'vg2JGo:9S?Y~|$)S0a@QqYRX8r={*rHP&B01z[3`h4 -27T\3q]n.}H6L}K$ًHf"Ӂer5[nxsvS.PCNÁ4$ ֛>.Xj'v86 LJUBjKOEдvZ=V0(c:,R*wnKLc4e0/JEVxÈ2ZW̃)_d\uҹ5tgXRmEʂ,dOYP{ xA?R~:{ecx|`a,' 1BUT((keW vI#mRc~[ڗo. Ff9`#uQ5HY؀)$&Mm h-fzGULbh]RQ6.$vaqJ3S l3x]Dj6aXaTS15=;o g}^nO=Ds.!!R\TL`9 ;P<,ŽI51ɢt" rnR&!͚J";S.Pn4SS8+6Hd^WP{JCq?X\$r(K&Q%)PLe ,O PS -]!zl@DV!plcrJ?qIٵ`yǠ-r!Ab)(%]MX3A0 LF 0PPD&r |"nb+,uTTi25򪉎;⾧dﻹn <r@]t}bQ@pԀpFI#Ñ ^oXɕˁUȘOq8F$U-zIe%$= ԓ}VYjIߨnW|کݭX,68)f!aƉ5KC)JO&k6)nʔ%n:F0 m"! -&D]cenfrix봩/X{~zy%˘]P c"H, Ne7]K.f620Mf{L)jJ*4x9ӆl ӨTXa35,Sr)KBf #Tf׭!d}g{ KB]A%?f.Ubdԙà\86 TG8r@> .N=, =gm(Z1C]K&"r&do^ Db5?%?:^a 2@:@nfK- `BE{K4*3QMZkR4{x[W&YM-z#zU'ޔk 6mď)ĈpHq,=tF0cIr;ս׮9o붼IeKـ^7@x8CWɏN2*ФqU(%5DH8Til鳅DVҧV\E@sY/gb6d1-ea$k\ 4T:0,zXR! B!GT&#.A#Vۦm6Nr4r(&*t4|W]odZ{E}A$@?ǰHՆ$:8I"6JOKG!re`#I]b %Ҷ @"h-9n]1t2jKܦ UpuY/\/-RlK3~cwթRZ U6SBnBP{ZIeVkd 7bռ޺؏X%OAdnW@:>D%na$2Jo3wa:BM zS*Y϶O#Q%%E20jӁ9( 5eލD~gK)n]i[~zk{[9Ԭe?''s%k{W{-:v?#qbIQ :0\epƛ+.s2#דŤB5NX͸=@ W%#Nzv$L\-s3WfzP éޔQ嶘Cov52 䶲r "/T\9[Kv~}9ch´䚏8 $6qg8}:ﳼG榊t P)Ćiar@0@[Ihb\}dֽJGWVa"?2v:Y솳qQTe( uW%_޽*%jTU:L Ծy?=?fG qsc՗ޜ"p М~Sg1N`9!(U0.g+"wҙz"%jB _gn{{wESc@\h j_}7B-dZϺ\r3lB\ .j줜4S5#1)SN$0ä@a<'+`DG'.hi ؆# y{򼰺g}&s60Q V2"<(cQC,Յ$ÔSn "wUԽLZ֤uVn/ YLh&fjT`(;96p眶cA8u$ dᱮoά$=u j<"@DpyŐ728#D@d<@ YaW0WD5H` )B"CT3\X.0, ̐ mS+RQ_͗Y"b Jp0$l@<`P!'D 9h!?PDOwFr oD@=bW FCO `Z7 3!,\S@sC BGX81  H 1L `dC@@0 ;aXl4>hh\?TTuw [z0`2 8DzEeW̭Sa#Dg;Pa((bFUK`@  `BBeP.%J`fa$ > # Xf`bD[AEckg#*/* *"袤mUZf ګ(60&<L+`ǁ R  Dp:g4 _4Cc xp*߈B 4sD/ qQ!r:ȱ:jE$OO eh< @SCX+>&1 @aZ"U" כ`BACV[JUDˀ#l~z zQ t+忰K@UAƝץ֟ Bt$}Ȏ*qOΝS:Rʴcx#B!݈Pe>)Eu$H~[ r-udEh .XLD..V~թGʋg'Uҟ;$=DP!P6<՟4f٣<v)a6MY2%z%MD_mk#2V+W#tXr9 A))UuUZ߷Zw~Y(eFN4<(yY"PP*$P"%hzIQ?hYk,̛& B__RW?Jo?2RT9LѱCG9jpD܇1y"`r7!(`8 1 9 G˫PHA s\O˕9Ԅ5iTw(0 %P}-jU~@mYY:6{ދ$D7Lヅw=65QڬCȏz pIC ".:D K9 0h|ƖλS0ˌzV~OUBnV`D`?;WdݩGj4@E$ҿk-/e#HR'VFV)_~ed+)\\O"%Pa3B&*grղVqN/;Ġ@DOH Wd#@ 4p2)9U8 ɜwàfmfM"N\p<#ˆ1eg uf DyFHWK c3eT΋R|iYs>%0cJ8ɲc\]?%?^_{y0DyƀP; 83Q3VsE"uWsRK3Y݅ZJ")cd6?Iݪ8 ]5P%I*etΒ:GDwBfcηy2[ DzF(CW_c@ QShOUK+U9̮Z,A8 U1Wb (¿׿Sy3Uȴ!HB: 39 Z5^T4@DGy)Wț<FDMzt;-J* m#;+*bUFuBDNJ#JW?0DKxF(8C)WZ:#@ ۻRZYd:;E6"-i"QȂתd^gr#F=ڄ1)XHC(?3̿ fr'V%0DxF!8DSl# Hov\=N 8"yAqF3 R`X@@V"@Dw"ݘ*9*`a ?^hܾPDtzF,p%BW"Es3 je!1Ő}7L+ :NZE-MCh8Ӥt'ܵ^vUN+B5H:G<*E G_JFE W\3@%(@Dwŀ2O8&E< 9OK̍X;c^$r"ũ"dN2쌍q>U(^g?M]vx2 FaCsVM k (\eTRfIPgt"PY3PD>y)o(#9i<# 5JPE]nCZ0LG}?zR4!vKti8(qmi?߻dRbbuT)PSgJm h]'Ҋ{kiH-rb  Єpz/5ZZ23ّΥ(q0D\yE8DaQȒ; {Ό:QN rE*TQ.dF4 u#ӷRTv*Mc1r ,J?`!5&Tyxk,s*r eLPDmyŐ#nq<yפv1#^QoPha4gsn(*QH4 \X͔~m]_4[9 wv*q(n<2+?'ϧHUuTTݕ"mᐌ9'UۿZr.[LsՎ0Dx.D Qȓ<# ;4qtV( iYNȒ9TSE)N:tO<͔  3hl FA RBomo_)Q?c$+w+M+ae PD\yFr(/Hwȣ8r80IW2άaLJPD\zE,tX" 9M -O/dOWSV*#JRqWgF9S1B`HB]kWrLYP#C Bb#EYTI~'1.jy(V16uS<ENZE1l>HNo2PDy7-8#Ņ x< ?hϳ3˲oaDFIYHx1C@!JT ,"Ywl7`@Eǜd3Vp,l]/D;^w,u3*q,> 3BBOJ]gBJ٧fD"WWGf0E-PDdyE./8& 9^p|Ys_/x =2S'FgE_9a*gFم w( Cj>?dHicQ!dWaсa3_C(" n05ls4A=@DFxEvȰE;?WՕ]J%ʂ4ess퀞loyNr9aUH28hb 4#Us?$ 33@.#$8 Oo ]j!s)T~kPDfy0n&M@QȖ< :9 UNDrSzaFʤ DA6<~rFr\ф嗙bGݗ%V~ X+ԟ#c1E?c' c7h>JY(xХȔrPDOyF,nE SЪNmlHՎKjS]3/_}޻zZF_Dr̒2AD*Ј Oges&?NztÙenщCY PZ1\!B :4@b6cNPD9vv0o8@#.dCU$̛$ i@TA2s?~|fM!!" 7vks7_/dE4uŃRU Q7  dadfNʴ~x,S6Ll# K 'PDyŐ(#U@< ;Zڄ!В0F._ȥ3e fC3`e 7HHI fTSZc~YNKnBr0qVAVqMHd(N 5 ӂ9ZϹn%AbPDGuFr/#QǼ>p̟)}]le>R23c,t!ف{A`TԩG7HER8T8$q FTقqIqλL7>T[V7N DϏ(90̏ ұ/.GdKw4AsPDzyE/.#@#L s'),Ɍg.yBQq qKz["PdV̥6B(*ne/һtJ(hhq!0= L08E> ]ЩrYr3=)$c!t9cI7DkS\8<:]=te`DzE:oX& ᭾&moo~M!Pϙ?do3Χ8vD"!$- )ǜ>EOo7"e" DbD< ڕ?=wzM*;tؕt@Wu@ l8?@fG59?KR%mq0ቼ PSID `DzE70H#F@۽"LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPDyŐ-EbUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU Dnxň0(# ?UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUntfy-2.11.0/web/src/sounds/pristine.mp3000066400000000000000000000757661462047176100177450ustar00rootroot00000000000000Xing{ %).258Z9j:r{+YQC)h2Z%MnA.fF_ࢅs9Ec6 X]v" n#)Ȅ! U .U޷wN犾**9"$G!H ŕ@#@ɯ?Z"܈#(S~a\zԑ`0t$kn~Dd<ƒ9X~޶/:DՑXȨ=e|(-@Qν"fL-ivP*!FB0yR}sԲÌEᛒRBqr(O% Q؆9 y.eOY21#;bg׊Fb bNEEg(0a28` >7"'36aƭ@c@ ;Dͥkʊv}tK^^!WeDQFgrǻ@d (XPXB@T@#@ XȈec7s:_=\@dP5Ĉ4p@ i/q12o ƥP3X x2. m@"@bPTv'hN@ǂ1P D@`-4Ԁ`0Pax/olpJ 7,b7  L5x A?oy@bW.16AP9LAZM6R(~נ 48fR_gc @(<{ Z-a&V 8d2KB 8k!k JL"K{?uL˚XWkZ9V F&C>kVRF ]+nDeFڞ'Z~ /$fH^eGc~P$Uo3J/.R2ҞZ"PsIR0YsAaCPz pYE.P8=RT(E ї!luCPu^CJs>Tb $QfZh-.ccc ԻkւG c8@ c, ,lhDjpb j:"澡vqE?% `O <"'^<dA)b9p,~`h~%MRqQeL'E# :u^{b2I?zKMq5Lfq-d+o^i\jF+YPcl E{rN*CP̷k˘kKAOfyOV S x!Mq VkAY3c)<^du-ˊ<"xYG"_5n32`sTi2φf&C\8SXJ;ѼxPN]Y#5AC8D},΂g ȻdjoR&2fJ_iwZPa?>%=Lu1}Ơ`x,'s$'~UP -;a ȼ3 R* wDQ2 3tPi5Ș`&Ba?lhv FQĪ-]FJ1u o-J'~ztN;5yP!?C,~QI?Qr5}} 2;@ܘRKM$ْ` ]-7a&LG%ǯ|xY/N1lڗuvwp%=3$^Q! 1MQb葜 G,\(yԖE,|#9XQU,foZfxPa<3Or e(9i2GS#UwFD?IiFV|/ȥ̇<R5{$uW/7P -/)a< wrj !  4-mu&̺;#zO{Adt,N[_,fx@=)49d:ٷl->`goNb0/"]IQSB=byӧ0/J']adP !--)ae-,@: fj ZP|5fя@.ep]F]d|)@ëgovRGjk7BAȼ_C  (Aȼb>n{3¦7uf \ZpPL1-+aq|Do[EE0:ʴuD Ub$4;P2S:3XԲt-+(:aer*jOmBl/FAx` 2F!NB ~YYُbĹ 3S դ2b<BޓSP m+a|%< 5ՐȏWZ_ l/`>1 ! x FekJ;@8bɢt"ou ʌ"ABO@ [eAK@7lߢ eDz̤yGaW] A38e$R_mC#}`L%r%#i8X$?ߠ)@ʴ&$ /?Kޠ-0pۧ&}Oԏ| VdjoRh@ 5¯I؊ ,ڼ"6( {p 6 i,y&̛WsP?O7ٳ6^kX3B 88B.a9 8/(0HgP ) #D4]tyS2GR)ì|ʾ!65U_Up1]@ E  SP6zXȁLo%2lX}4{ J pPńʒ&g#Ho$m4=!ZORm&*|Hh֗AEESP +m3 h@ ?ye-Y5'q4UiLX0FiLOG+ǩ!"ox{ 8;GRWR&#&J(額(BUAU!g18bn8X,;c WZ^dLŵ)~U ?p_2DJfg :d.)MbH8 o)X[3'jg:-3z*{S@ȹ/mO%< B1Zd=㹼b U/04( D7(vИ:e!O8@@LrHRR/DwHbppZkϢ`hp 9^C G@`.ui>l7y@ )m>$,!aN+S){zJnc/;C ~ ~pĭNq,w%/AX҅5yR'!?tzhP2ʕvhA¦aNɚaB/Jl]0 )a|5,-D A0m?&P$6.r#^1Q1ND2JŚ>A ifhp~9h4˴KT0fT Œy8@ d)aH< 4Нxlm2_׏84+~RmA_aw6_Ih ޴0h0VՒc_I"o0%}xp 2ʖU)pBzYlZ 9U{d@ )a4 8Ӏ Ha y|,PPU!AMlV?vYuhP~ ;qDkDUX9-dWF EKV]dwW  /F܅0 'm%5,֖`IdY7v]ussL Ğt)! !UVT$!F>.a4$'9r/Â.)ޚ"]rhdrQگ6zrÌ@'a%<),"LY$ /q2Yv)"~& ?Ȏ3G!@5kL)uD9G@|CL&x `I `K;25+=%86$ +i%4 ,@Bjx`?9YC:o.2R[c? 0PcpNKYtW [8Q"5?0Hl)iE%<,?Ux`9|5nIUGugJh~ϝ))?ؗ {³cBv3?69-4x@>9Y T ֥(HI*[0u'a 4-5dd31_@~ ~?[<^3! E"k IνQH/~[[jxP>9VT^J<%H,fHxg?69#?0w)I`4),ȱA2Rkq{4ߚ~2ߑ*jA˲FUTKMLJMvIn~?FOz r5 u-`4-5d9>]˱?69@ਔU (At[D,H%{p$jV4|0frCW斐u-`,:QB U[oR~yVߨ3e !crm[eAzBwͬN_)~0GHw)I`4 JZoA㝓=.(~\yC+ S~T aܯR>%:[Wh!]O"{6-@g ~;;QtNT@I:Ԗ7 Fu+h4 ,6qfFNKTe`Aj\Q(evGh|9=~F̤ȃۯ~y7~TO F|u-eG<,w=9]7t5^|$TC왨" FXw+d`e< 6x& 0ef\hy  I =7*LAME3.100 q>/3 0,)Q)M^!s3Fpu+d 4LGIMLAME3.100UUUUUUUU ?5^MUWg%"6c"|Y1oyaj 9EX]Du1b) E?cD MLAMEUQ) MTѤxJZ?C3&VD 3>Du/`G| `# \sLAME3.100UUUUUUUUUU =0(pӑ*;"q:_h@q$ /^ Es-b 4 ?3g*LAME>76 0p*@O"0k_QWHD񨭖+v]te-7-&O=MLAME3.100UUUUDxu/b ,UUUUUUUU ?1v`5G?F,O0@ J,KUM~8<7DPe/BF_ ?3wEc+a%tOwZ*! LAME3.100  89$mr@cJ!? $0WPF@c+aஇe= x xULAME3.100UU@8΀SZ j #= _En/6/ AP@e/a e 5f?P830A83wW"R<4'y@H3@)Pc-a e AmB?08 omvO3˅_yaA(X= @()Ŭe/a r )"}䃠wL0U$ n<@8A?x+iu[oh ;1 Ҍe 5$qA _K, PԃZ 1,H T_v{!k.Aj@|?`LnԀ^ "I6`4j0FÈ91ape,9<®X?ge)FŀP KH`/^)t*" p89/ e Hۗ#(h?cOI7.5`$%A\N%AXS ;-aj`f݉zʐcSb15CU0[w)ɕnvpBeZ\^/ E(C;- f|LPK̘g d|o8Pr|qJ &K/zʑ /#lQ ;/3 %t$e^3 .j\X[Rg/JUw1@tgP1Cp|n"Sf|O9@mSr Y?8V,xh93a`%t\. hqj\a*`Q59U4-$9, ޴"U SBh;7a`eD 8"|]AVӡ|NԹ>҄ _[nr5ŪNHl;31`f< r.Ac<%^ pć,Me+UCp6,S9)aj`&<<$X QVpa܆`˼F&|U "|PPp `11±H{.n'W })Wf|L."WƦ cڠ`7 -GHt]tbeVI88+iD B] xd^7#vvQImOIV=Zaj"Fn  t1'I4 ]UB=)uUsGTu 4ДJ'z# 8p?b/f 垇(c6HAE+,FJ: 9+Aj`$ n-H"sS}& (yA$4ROj&(prN _$lM s妓ݥj !^At˚v0=!U ԇ$T397W8 αvtkuAfHٴ{A!HAew6D@]t8P2[!AZb-YT(PsU `V*0e)U e< Y^s^gMVW&C՜%9ܑT07۵Iw | Oykf(9PRIT"%O|VEa*  :,Okc:tU !!U 6WEb1lj \ q$1“.>-kp4ũJ`nѦx=Z**XvUA͚ȈC=fT 41' $$% "fTu̫z TAz4U0M@ {}FWR+i(C&K6D*qoUEU+jpcҗw 1#Ej`=Debu00!% < BL6:j;;la=8g4C>T7"Mޤj+q|2QD4o/OuD jR"l0i)U ܅DFjn4kqF0cOpa M3IB`J` :0C-e&c4Tuz7#-Rid[V U)Po, P1#5j`PDt=hH0%!:Lx/2gB.1Mh#i[0 CpꎺߕْUb=,U_QHfrH $څR0%S`Ӆ=DPI% H44!q:Ec '1+bmr}B8L{ r^N?N b No3cpf}C0E-Ȼ9ZI iN7{F? /' $LS{R5[ѓ~ ?Y#ǃZG^Ȝ2T+zeeymO߶u(?ɚ{X0ht_^J'Z]I:0/# d lVޫN޺Ȫu*6Wqrg[atjeZn)SfE"̭r} s#tRKeC۩qo5ز%3l0}gѥh`|-R` 's`dlE4!5‡D?۲VՂ=cqcL9JRى_]P9- K֥5PC.N@ /ljyij[0+S`tD8u8*b?f੝i>jеҕr J+JϝKOG]8w^PGWwl,8#񾱟)ei_F6u;ǁbQErG.CB#U1' К t6cZJ88PE9Hfrݩ3nETC ~ XjӏK܎EUB;01%! 4$ l9dwC*Ҩkݕ8O̻>:ҐF@ ̯5!F N( (@0Jp pp:ȴweшwrҪIU݈YCS[}\i}Ժj׾2:AY ,/)@ʠԤ%8 lR!J6F4bUGR ߲+ `Y@U4XN:8Htm͐oXrJ=t`_nע$%R /'` thyG!qoQʭIHXDC`A@&l!D.X:XM2ڛcG֚Bs /'= Dd XNѳ=7 (_ke$<[̥uFtaBv拏wAsko<[Wwc:18 |/<D%F%*s.їmȊ X3Aa*-u;JNRbYzϤk$ @V$H"j6x`@kܶ 7 'S`d t+:9G#c%gF&DkJl͖ ' {F@Ь ]"H" 9I"d- Pt:i0 's`ͅ|DE~aN,#1|^Z.Yi9JFFps _ˇ Q3Z"&e17 Utb+c:oYluZ3 #s`d l'1?n]aXhtVN @Q%@$"N,v1L}):8aC`JWؼ?٦Jĥ*<)m0 'S`ӡ=tԦ%OWJ WX5vTi#z^cZB*OƮ_tWVR*B+3ufN JfITCG9!@k(C+ 'Sp+?]V*#Y&[+QQUQYY ߉ bR%-|IbU;pũQ9僝DD-hk~_Ő$i] %sӅp157vt2'#1Q6[knwMTZm * _Zέ 8Py Ny%hLwd8I&Hݨ 5 !!Sh΅|0,8*Hc-t &*4Һ[0_E.khW=w =,Nc 42c&@!4@v%3w1)` lS=.u+6P5qEU %1"0=f.ZZE@u 21_wQ1ah6LEزfb, { =#Sß=t1I5@96ܵE?҅fG9<.0 .UԐF\hj 5!'s`$tlmȼՐ ,;(0j$6 KX_1wU1hRhiAA[Ut9B]#:"]Nk3+NkoZ x/)=L d lt"QPC[B;uU;.Eolj8 u="2]!+$dK#@|ͯ5y4 Fű{ E)S`d lEab]^5Z4>dIb%)T!4hԂGu;?-U$,i7H5 3\^Y%ԹZ %S`$}t& iim(F;S鬚7,a0TIr&  &QR!_K#ݐ"/\Y=tm[ V /'< 4Fc(@*1?T`4YGF %5{=H@ SLEd}%:eb$2zPr*p)I!LJH0՗)S`!dlt9_.`qA@'88(a<-2n_QQ :RYmr#g3 RFq!\D(r厴7B&aQcB H,=PCkCbk>\-66<&NJiE^GgUd@3~#O#Gt2fѐNConh? !q4(jE>rB"c!`ƒdc!*/>FwԑwJIrTj0@U e'qt`gQHmA/Vzu-<'3rt;AЕDp3&40@\*EŖEXxMӜ%VU0X-!0  l*!MyѽژB)ȥ*UNxVs٥2g7Sу>Ǒ^"C2w9Rס XQx-o BjsȬK }1d rGf#w* %s<4K1QΥ}ՑGJR'rv:x>lapkp9Ԏɳ=ؽͨ18aDžOm' > @pY#'sᅤt! h,5B P"mEEZQRL݊տoV 6}SS)%N -#$ PAS$1ʊ0sZB0'q2䴠 lU""G5Dz$*6 ?^Ħ !c_&l ZQRJth令Ǣ2OĀ[_C%f[BpF@S%KQU)A%q@18æ9)Q྅.'Ȉo H__#N*#str,qR]L$kou (_^ !S`dtCgto2I\x%ʭAP٣ºzz` ~t!1T18؆04\$TVc_o﮿ /'L ʝ 4 ]!Z/'w=$Navd;J@08yB?s hX?8~Z 'S`!$<=B!X&ʳ֗E!9[М]}ZYTj( 2>._:, ,`} *~0kufN+ !SП$4pDNpM*$9z ^)>,8pp40 PHaI&RڙY#,`I&G;K˳3 %k( a%qϡd l '*`qoi(Έw* cD0e , cvCVf 0'[5DT,I xMd@o 'qڳd0p m`b`|Y*c3MZn{v CHC Q}G8.IyPG8_OH hDC`ٱÆ,T/' `3$t lGx!U` INGUW".cV5R"NcPrZ)՝I"1@2_ %Q(,-okhuVTȍD@]dNU0<8B,^Geʪh*Yrzgb&EC0I`ؿ؆tQ"ICfCi[VeJ];'[Q)0Q$d 41RVC {ʦYOjQ3$OFPo֛S^JDBXOHLYKhl:)3r; ydS:j `Lh6wD 5'qұdp 4@(?󢮬Y'eE EgyuFeD)?kVJ,rh! E`~6=UȃzDJX!T9A@lR!T<./# `d,<s2LG! )Q4dP 4 e`$1rJDmB} :B1!7Psa/ ZY5%Q,nYƙdK0*' @O" 9%ec"pjWS l_]`kTE .kҘ EYK0fT;L[nU+V{Ψ fV0;͡'Q0d ,$WFBReI մ/2Xb\{Xg&*d ݣ'Q$ +XOX8ᩓա??\r2]$ê1DNմ Mw \ʗ8tLOG"b+M m@Ѽ%% uʟj3€IBCEłt)l*5 $|*- ]/A%F*l <\XE p% d̝ZMf 1d  Th(PUCBhL-1CFú~XX @ƛ@l>4V_"`Q࡟PZfH>gPG8PYɊ> aXP!`xkجD *#q4e X CBgqBg(111 K?WxLTaSC(`RH:J`C("H  &` 1H IXֆ<!JSXdl̛RٟDuFQ&ĨGة%SFʵ,x`1>TZP$`^`% ({ build: { outDir: "build", assetsDir: "static/media", sourcemap: true, }, server: { port: 3000, }, plugins: [ react(), VitePWA({ registerType: "autoUpdate", // see registerSW.js imported by index.jsx injectRegister: null, strategies: "injectManifest", devOptions: { enabled: true, /* when using generateSW the PWA plugin will switch to classic */ type: "module", navigateFallback: "index.html", }, injectManifest: { globPatterns: ["**/*.{js,css,html,ico,png,svg,json}"], globIgnores: ["config.js"], manifestTransforms: [ (entries) => ({ manifest: entries.map((entry) => // this matches the build step in the Makefile. // since ntfy needs the ability to serve another page on /index.html, // it's renamed and served from server.go as app.html as well. entry.url === "index.html" ? { ...entry, url: "app.html", } : entry ), }), ], }, // The actual prod manifest is served from the go server, see server.go handleWebManifest. manifest: mode === "development" && { theme_color: "#317f6f", icons: [ { src: "/static/images/pwa-192x192.png", sizes: "192x192", type: "image/png", }, ], }, }), ], }));

    2. {E VU"(rowE! g0 %UɌegʗ=u֨l:TGȑ$GHJJH '~>S)y$LQDM SDu*tfr^*{xq ](gm`^dJ]f0 ioo$d?1L==b'xMH!T] d} <@*t!ʝ@]dgUiԨ[oWHԩsO6 7|saa!sŊ'tRaÆePRo]~f͚vaA7>O<ѢE](*`0 F=a([nA ={ᚇz(0==]o.!< ?zy櫯zѢEժU{`BrСwuWh:+VW!oM'vN8)mp9z$ω;N1`0 =F=K/AD"pA ,PC_ o>33S u˖-o4͜9Gk֬)}ӧN O4 /a,fLM}7u%6k̑#G /P^z͛7oAtO񂙙[WV,\?ʈg~gӆ`<-*cNl&?%UVRAR:)#/G֨+orL M@^];;Mz-;\RbD\%`0 F=KkN%ElxdggJY@ehbd9F2b p)ƱD}q?錅N,GW(= ;gݪf 40#-Xl.Nm7~;72h$ĝ ( GO:Ν;SvipqHP g:Mz-x≐SO=yJ;ʚ8$d_~=6;CvaYVx$ \s tt `0 F=Kk@YD4Ep)&t^{edd|K,o;w.tfYvm4{‚-[|p$ZjxԩS[~ٲ'xr;J}qT MeCvB1'sA9k+^?ᛜE+8ԌvG^wkVՔ[vl #&㾭$tǣq$,g?>{-<2 ݤB5>"(޷o/ 3?4h~%#>4333crn/B);8Ilhw5ʬ, `5,X 5IKK|HϞ=agqFFy'FG}tf֭[wѣSiGuԤIZjՠA}۴_) %|=‘hK%a >'N~~AުJG^{[yWurٝU.ÕB_l%axnG[.iթSꫯx_z%"ڵɓAI;WRv'|;O;Ck~~i)$#G;16lЫWYfAUC 9sunݺ<ԘΝ;vm`0 Q[H8n۶ N 2tTw~WZa*V߿ժUsI'$N9xS+W^v-jpx-x/1 ޣѸ;`qeg4 b]h,^-ޖl]?w7Ni'Rw|KǍ-ߒ_lD63RSB~/1nSfM%jX8?>g}v뭷~_|14jd.H,%4ѝ:];PL_u]Æ 9s&.xr*sG ʗ/$''HP裏ywySO=մiӱcR5^~`0 PB ,8 !~g/_{W\/+|)1`m7`ɂ  'sҲE>5`Sp$Zf9Ѣ‚ȶpz 5Fq}ˡ ]6q}Ƞ9Ν;~={\h'w}7t}5/;4wc2.[bEo߾=uZ̙3VtR] `5,(%tB]/>.רQnq'xU$0OR 姦1O=Y22OxN߉E|iWRTqx$3=- *h%cBVl۶-BHn>O?=z+ҰaCRG7r#<΂&BB *T}fIAA+WJ&FO8q V\1 0?憑rAݻw.]%\ҭ[7X {E`=Pʕ饾Dȋ$UCQ'z|SN>pqjfqrS81f)jB*i)Y nڹ RS޵*Iw5ke l2Fqq*0,..FH=iS7SCܹ;lذwygF_"hb B*# :蠏?x_|Ň~8x`0  4{Y3nFH 8`fZp_-^A,:|gN=kI$"ݝ@SJicrr}OKO8[n4qk^Ӄw*)?G;~ƍaxtVZ5q-Z}QQ()%J*t6KUQR|]LiӦ=?| G? 233[拺޹_2@ 7oϗ)Wa0 aas Cyp*1a*\B~( Tb:hO1}Ԃ\pK.%i`ٲe^{m6l%\QB%!H+L% '˗/ܶm߿zj}'= AX@"af͚_|ڵk82#8C꒧=zlٲE`0v F=wP"8 u*0'xzUUsԴJja>8M[F%pN^*i@(uH}-sqH,Zvy>+}s=r .Ȟ $i?"BD*P.lРA{,DK.:u2e M\BM,/Ν;I&˗G!''G <-r-0c<ꨣ~RJ `e}i; 0%%%zy&ڔ\#~-6D}AŃwfĉm>_ ^䮯VX- `v Ь*8QRX&`QQd>x!P<\} |"'(@w$^̂(>Ȁ&W)&M"3 WY*2 0 ҩd'.!4 &9h_(愂G?(Ao/N88Ѱxa,V^fFNNZO-B_FJ^)b1[dGKuN)$&2W˂vEtف#j (- @NT R`0 _6%,G|c-z˃p\FB G`Q,LF"GN01_Z6D)A]d%PN%r-K=v2+Rz/PQd3) 7GʈIn0 a`s #%%?SGhbiw2'@N,fgCQh|x$a; #7OIcׇ"QEHT~AȥZ=HzTRқP*('V$a `0iix"J߆o2r$+% `0y0i0 `(#ا`0 2QO`0 C`0 ``0 PF0i0 `(#4 `0z `0F= `0 e`0 2QO`0 C`0 ``0 PF0i0 `(#4 `0z `0F= `0 e`0 2QO`0 C`0 ``0 PF0i0 `(#4 `0z `0F= `0 e`0 2QO`0 C`0 ``0 PF0i0 `(#4 `0z `0F= `0 e`0 2QO`0 C`0 ``0 PF0i0 `(#4 `0~3㥵0FbG"U~uI@qq*,? 5d/!MEw `0 o>/B!$ p ]/˄k\bPyG@N4AE5c :P#l꒺5 `0G=![%%%ދd*)$w^F_Q:&e~~>㤤PKuW}g`VbH'\Q|y=S#@=/i0 k^5(%^%~=b25`p8SJ /MJ琬429 3FA ^ZSQ%uOn0 7S* 9`u+));˝1Ub&L=@(=k>.DghGEd]퟇u6 `0fb$iWQxAxT$?;T`hp8>ԥ;;3T0>,Pz be1%F~W`0 ~3&RTIM|lܸq~ ^aj )7owyUV>wڵI&o}ϧH/PF"f։N`0 N=SRRV0*} oqi=}BZ322`~_?X,K袋͛%]N?tꔸXhѬYx9szC}镙>gI ,--mرgqW_:ڪ"@C/Hֈ r̨E=/ FNxM]_,G駑JG [{mwK.)UKh&7{՝y `0~30*T齣lo߾999 a`. %0n|zoдqwAuK΅1ms? ָa#ʷxs ]ۧW ̛f3u=0S%E}Qu\ƣ.],͚ㅎhvl/H wۖp7nȣpC3zG֭]l޸LYxGݰaúu~0W%oE&: O>3f@X[7yT('KBN>%$T"X Jx4,_$әgQ.;:.HI(cmaAhIqq,q>㋹a>O.*Kb* / 3/,L sVYLWi`0 '|YfO<ڵk;|^ANΈ#֯_?p@:t۶-d#.r=lw{fCM'tmرs9䓧Odɒvay…/[믣Im۶Æ \^r% ZjU` r`/UV'N$A`byyy'xܹsGYnݙ3gKi*^(.Troݺu9[`YV-_2?3N4iՋ-ZnDx7o"SFBTh %~W4ոP+VXPPt9<U*\ Z I׫7dȐ_FG\ +W5'K\ _,u&6/j&1`}ye˖:u?~7|f($ҪU k}EY(2LH9sKϟ^`p3f{Vm{}/}d6zҲ &- ⾂p ) <_< S2R2V=MTOa>> 8a'ACNA,w4=qKݏ=5vE΃O2~@J8ݏ/'.)`0 ;8[n?zUfMIvv6TRJϝ;8p`ݺu+TPJG"XK_ZwIg:o233]& DEp_/VQaA˗oѢF t%'j+~ڛNqbUM$sɧ쭧`0 ?v4B k0M^|*8-s޹g}VV-nނO8Q͘~RM[6QF^ \F^X\_XpP྇z̙3<֭[:uQG0 [W* &Ҫ!&ű(G{ ^/Ƣu=A&M$iohzϞ=͚5#u>(e <2Fި5P(k"XhY/;3f/J(Wo`d9ξ3mry!Vq~K5xAƿ_{}zG_xx9~UO^>jc f%ufXܡP)ޖ8*;l'--v&.|ꃯ7x=^W?ɳny~fG_"?g} tnɹ׾]Οl(\B`0:aS)!gеN:q8XLoKhB{븄?+T@w/tD/ygqF^^[o^~mڴ;^޽ rrrO;Go׿U\\ի'~8rIePXXxS,@Nk 7oa&xQFСa ?|j233W^`wXϸqbŊTEwܙ93g>I9Ԫi9V\A:u8/ t.P}"-s[.xCIlW9G_N6k׍*W\Rtt|q{N  !p pd,ݣM~5z }._._nmag[Ĵ\x1ǎ3oU+V(:`궨SܟEv_pnj3!1 7 wQ^$ annnϞ=kJX߾}_xjՊKxȜ,M@Hw}ȡPL(2nݺ}`Ǐ?u:u@'Ob RS?|nرP |0 x{1S  tZ) 4k㦜sInM<^G'ر 9/רY[AVmq|pBEN|n*Qeģha(Pw>s˶ޙxן}RJЙ!gȇy Uuܯy2S{^xk7|>ʽГ;?U4nxO~ђ`0 {8u9wyxzMH j\B슊nqw)G*g)`ʴ˗ᇍ7\¼رc >M6E8j#9툃[մi< FO"s.شq''/ ‘B' j9xgA<-Dj{I8S}%.>tb 6u=nm7]~W_su6b SSS'bxxlZ㏆qdže+x4#NJ0Vqs~`0 ? ;&wPIenn.l,//O>=zh֬e]GLEW/8؛ K.]vχ;zG}4B2T?ru֝ynݺ4b4Q'LɈ\x]z駟2u51'Bo}#7_Wٲ^%_ ~'3N V\9Wjj*%j\s ;%^-[fwy鄆3Q̸D\5Vz&Ǫe}ՙxى."YW(`$uj+߉4p,rId E3`9qVA_~~po,r%bx=A7B(T ‘H,L:x u|  O>nEᬌLJ/ 8 }>w5hIܡo/ `0$`s!U0b2ؕ*S-JՑ*V4т?[nF ZFx/' -B "70TLM nnq-XeF.7s>VԲZ/Qc`~>;8ҢrU&30*8Nrv=z}^n\f 15Pӗ ܓ8#)Ʃ1_~n q Gc=ȥPϒ/z])//t>­kAA$?;=+ mH23ׇdb0 C;,~#apJ%(L zQQLN\"X'F#<{nAA%F\~h(RLPGtʕ+Wn*Udq|U\#F<ƌ3>s¡Yrlg_s6nrΙUr֭ϙjׯ_ F5_jko4*ͫ_c}Vpxݯ,ZdƔYSꋱӧ=aܗ_=glΉj8=ٚnT.;MV \.L;yYiHMܴn*N0Q폞$īP`0}}w{P1NKQ4Hb.J``^&^=<@J$bkR2(OHG*ءIgJ?\P%^"ci>jE Vj);T'-b~SHkO]:h<)ϸ9cic~4+3E%`x? ܟ:S~^yG4Oif? :D(`0<]bBDJĴ(S{S*fo/O@ NNK4V͝}_ }䩩1  0ڑGu>RҋK41yGk.e;iB¥HS|Q)**B5% E:ԁD O ^L+T4IMA^W$Dťg!MTF8& jDxBiBz* Tr e.өlw)*)BYݶm6 C EApeQ `D&Ƌ>PJlJG LF)JPQFЪlF PG5.ѤWAAH})Ѥ"S\JNG偅DRBbS;vhUeSc1L4)Ք".?jd @Ej壃>tW!})zф B,#ĚA.#;0@44r$SrIP5( _wG+<0yyyllDaSM4E]d f˔@SA.&Y'] #B&QE\^'Q C#!E(P&@KlzCtmd&C';.*CC-9*CaPj͝cQ:J"o!'x #(E"SԽɬJ&SНKY7RCgYx333I hRx1PI_E JA"D(MDFDrI3,.HK#F\PW_J]/*3y`0y睥UÞvsm[l6lo駟~כ6mj֬tYkΩ.Uܾ} :6(]T0Х: rҗ}Ru WwUt @&uYgV>#ʕ{5 >hʕ+UDRFQtDuTG@J*_<5jܸqmڴٶm[VP5٧/u"Ŭ"QTG"/r !vPO(BEH}(oϛ7yLhT|IDwUR}"W}֭ Z–2uYD(ĈOK*rꔲI9vÇhBVK.Y5J),Z7,;5*JL! :M$߸q3Bw*:R/ bVb֐k(Z7ON ﴢl@J$T(P,rkB9K/e԰VMe!&P҄uy~?nݺnL:"#2Lg4 kiհaN=UdժUO?%\A/[~׿.]?[֭[e /雛{K8x-5 '~z>3i$фtAaÆ^xa˖-xڵٳ'ѣG[^ӧOgu/haNdȟxիW5F 60`6mЊ~{+V$r4hX&\r<_p<uY-[$3ŋՋo߾VZgb[hf!A)ΝKbssz-Lb/"Ǐ*U0+V2ֈ y^uQw7 6 2S:Rټy3nݚU7d+n)`0A(̜9 ƌC${G$0T0}E_ +̚5 k׮TtâL,fdM'ܩS'FꢉiB<,,6͗O?uMYbņ&dԗ]v/_~ƌV ZFkz}DM6e8b\Xkײ kkƸ GSN9V\Tr;&q_&[@u>pC^n~ pɖ;͑Ӻ9[0? > N:!N>{/YX`8H8BзI&XFC弜3g8+:)aA"̉Sk͛7G:r>_Y7i]k0θ5l@G"& :J %,HUǎ9)"ιɓ' 8tB CSL9蠃8GI $G;UP q( b8SN& s#hE[nְ@)>4#y 3DaFŠx 'Ջ Ja d!` eC`4/#I FFNT$uÎ'Rf'>e@G69Nz5r/\Xc 9"̃dT)JwQ=lw#<9裏>C˗/焻[9n馻&N,6>`!q k}ꩧ`Jg9oej\bԩS '䌔Y(H@JI//64h}~a8zqQ]PM5qɨ! ѧ7tԡFE@\"$TFM*䀺u0j.ѡKz) LNN Q#.+șԩk,:(#I0jԤ2apPCA6 ``҅b`tD&],T%">=㰱ceJ/B٠|3P̀ qz}$<2|@_t䒒IW_ +b0;GcP U6\Km s=#`tTSkԨQ<``0ZjJdM)ء8%r|!1|4@ 9u* 3мPI2d-q 2D1`$:r>"6ZC`y6F;ciRիknFu],*Sǎs&a_nRGwn%RH _~`˖-_|E|A͕%J3uJZZ@+ -H[P1o 4ee$ #R\Չ'H ф¦`as6'r0/sTsPq̟?޸q#PF(dZU: 98uJIZw޸̠Dv8`ԅKY^{텾G/MxNbRgڵxLE2P;^t@<R:u]eH@$kA(,DRE^$Y#D5.TJ$$Vx 2a#|qHc$XB_,&.bZj+V}S^:W&l k#P#uČGZ9_c^T-BZ`jMSo޼9ʐ"!bD g>9(ڀ>sp_}w+VT$X#5k֠ll)Z\o> H>*¹2/"f oɒ%M?Qqc+-ohR2iB !7 5 YuJJ_*WiӦaTOO>$B͙3FXI`UtH2+ˆĦ%5# $p pD^x!$:܉#F`cy̙wq8RDE!uJSJN*ڵkpMM_b<2BSҗ&a&L -A!#m{^/GrB.\HVa8&j^qt!0$0d+>|8iat 4"¾BaT09qW$kݺ5aÆ3tUWqppTS焘1c{Vh?dbjƎۦM*(k=:tDĠRq@ }N=zЗCq(s#エ |*Tx8\4BܰaCtDa`0DfЁ}wq9)Rlٲߟ8Cw8!azg !$8q Q (L>/&M]_0'-pB0D_.ZꫯfD qN“tGo "9Q?*8"l.PI8\ 7q-Z`0VZY lsaPLq )F:X# j@Ν1XkCS#&@Iqj0;wg@aTG:h05iJJ6\9b52.Y*0T{Q,Cf g%` fIIQG$qf2Yׯ:E 2Y G+Wb fw~c!1J#Q 2)fgh0>});c!' ^zt!-t5??Ya 0(s1^Q^A`-aYgŪ`Ӆx!+eg (sG׉T~<pe ).×'< t a3!x\ЅygPd :% "'o<30jF 5L,C#ZfIJ #+W/G[=L=.!G ;lEtAgs\ujG(pZ@U%u,qXґEy8~iM@+ ;$82g PFSDGqF_ϯ45Rٔ$y:X/,j9M1p) %B%_v r(}\.RG 讎Kk.5p+!((l@7w< 2H/M NPVz ]DKAgS,w,AQءoMWYe}J6nm ' jt"5U HM*XֈAkƳLl( ƢOIr/݊{(ةCBG,w*h !'[9On2MO騯 By&N^G#1C)/RP J޹0IF!CB`2@Q' xR Q.àCw/3^@cD&o2 00(SԑpI/٤.Aw 5bLN%$bϊ&J^2%4AXP$\/od_J5 @Bw###]q$& o޼yjB]`t T"L)s/YwvGeKtxI󲄎>PY?Ѕh5F jT\# %# b C9$R@yAV/PhTREB@a Ll!fQeAPOwŰrJ&9B @%5Uh%c_b\ V*z ĈPLwձᯇݍ{(+ٲYqs~ttBpN#9DqOĩ&g %:Kd .xBB) cRt[U`P:MC INU/҂*Pr‹!L#$GN0h b' ԅKa5$FJ+BEN4i(.DYcDAEvPY*fI(/^#љgYrezy:S(`HSTH ujh4)tP ¨%.Ț#J4LI9:T*҅ Q eZ'ȽJ;V$1eS `0慺BսA&"^s]w-Y# BiָĩAiA5* WY !0F<ȑ ԄK`; 7 `0l> `0 6z `0F= `0 e`0 2QO`0 C`0 ``0 PF0i0 `(#4 `0z `0F= `0 e`0 2QO`0 C`0 ``0 PF0i0 `(#4 `0z `0F= `0 e`0 2QO`0 C`0 ``0 PF0i0 `(#4 `0z `0F= `0 e`0 2QO`0 C`0 ``0 PFҪaD$%%%AѸS`0 X,#A9jJQh,h/5&߈`0 `$(/.F=w{Ĵ%Rpz4 G6;D`sK=>mE4 `LKMMLe,s_w3z_)+.C: 33Ԛ`0 . _ڨE,l޼ җI0i0 aWFqVT)gashsYjmVVv)$y]Jk0 +p?bVa9èH$ x[bMvv9&]v`0v {n}ﶋ~ ~,Y>##3!m`0 W ɂ¼5o.g `0sǎ_xi `=H,(Qc/_b6[O`0 C B`0 Ŀ_:z `0?~YϸfڌtMl% `5 ӅQ\lxuҫ̘ZZ+ӱ~jD`0f!]R" *+~?Oe@H n$ V*EEE)))k< p>wP>r*x<&`a|v̘H$x &j :P(GP5s\M'Fyyy^5IRʄ$IB~N$f"[IJJ0v2wwONti0 ??E=wgCo0%(Qqq1lVYRRB)]㝻to۶IJJN C`YYY ظafgߺu+L^H\NIV;AP.Unn.1BI0H$: 9E/ȨB%jr)l<Υ qKJ. h#XhBA`0AeR-#uvx@hkٳT!,Bp9ٺmKځ~5RL )|ÇK;v( }ao޿}Uq)]<^.rԴP,?|>pIt|3dfd9]\M|ΟC$$IAh`0 zGz ~9sSN9;쳙 &HG P. =53 gee@1zzM<^VV+rům*Vx~a8cO~ϝ8qsz(;;1+ǯFʬ5h"xgff͛LTFF3m۶ըQ֭#Hʕ+MIISŊ 2w?[)k`00,#r& I %~FMf̘~As]to.\M^OO j3$*}с QQG 7oN4lRJX}c ذa/_\5{k׆>h* ${UV%$(|~~>!@ȉ˺uBg7oL0TPJ ``Գ7|@Sbx\B=W\٬Y3;#DkD k]kѤ)eBh"f8%!Y&5k̙3.[nꪫn喗^zI+ 5 TԩQS' 6TV ȕ7fthEH}"ffϞm۶R2( F`0i0CR iސCÖ!T? p}Êĥ]IS˗"ހ$Mcǎ%g!^ _ %X;eʔuֽkݻwoРMP[R?/hիW'5k@!m)Yz m6hРC9K`[lI?&A#BA%33BBJ5jT˖-}'z75VF`0 zň'~^A.{}ᇷoj׮W_\j\OEIG)tRR 0ZjzgCH 6nܸJ7o^TTN~5f |Yyy:u6mZ*Uz5tPr2k֭֬[ǷzGMVfYPPMPgqL/]즛nڴi 1p6n4y2YgETd. ~_ Ȅ_b&C|~lQzE5t}0_ {j PJtFmظn={ܫjuDq JKKsQq݁rk1m"Tyz5krG@)//pM^}啁7nˈ-^TzzF8\GJJ+VDiiEE fSG:y &\zpxm_Fh4'n2P?Ґ~`0ٰTG$$T S魧74۲QHM%$P̒7U+PX" [nK0jZXXBfFvhTW6s_C!]tј1cE!!$+Wx㍰kC7̲+U &r+k(+кm[S<@b&ۘ\04?SI)S/`0=ao=z^l7{>]&0z5o=AktTIFqz4.##eS^}MoCU!Үrq$=#5VT 9O%^L㍹߸ţիW8pÆu)-ҙMHy. o=5a'ں?@kT0,]^hҤqύE_)DV~~>1"5}a,o z)4 ?4AJރ} VOh|Eotm.e$NLI.RPWeee۶-733^9.U_=jp#3ӌ}}%?i%~ /EG~_/&5ABR\`H\f\RAt)sEۇ̼j@SQ(0ęq{e+`0 _ң~sGg=US?? WqcNA32RTAv o\999.ۼe[*tq ׯ\Rf/m`0 QO_M=˖6uaV ׯY*܎KV͜]&kW7i0 NpO7wb?{eӰ5k6̞;A5;̙K֬~(o0 'F=wG-݊ZRRpHB/ĦO__+dvBŊۯ4 GZ@0RBX)я`sDnw\$,=Q%WW\ZJAj*U,4 ! q?=#?~s:?nQ #EEE,oۗ,Rc̨WwP*y[eٲ: `0 tff2 vas7G,ގ'D|; YvA:wRĿ=A7m޶jՆR`[կiY`0 ?T#`$~ta0,ipܸY6l)뷠ЦM` `0~ wE8YlIMobؼyg\ԾCڵ?`0 C)"薜ys]zQnn5jTnڬN}n0 îèbX$+,(ڸikA22ҪT) W `0:z ;"}[sGt`0 z `0`0 `s7*$KaG7MDP] F S^Ń.եRu5{Vl#ZB\#'Ф.r RBy6%*h.ꂧA &礰Pϯ*S$PW: Lr^<^PT,;O sR&Rr{DDH*P2x| `纲1-TAg kAWzOE^E;e߳wPK9Bo+9BJ r&ɥ$>BU@E=G @%MԋK>?m۶˖-cVZJcc@Ku(͛|IF_.תU Pv * !oįkh M H^ԕgjJ e u61pnݺG}tڵCعhjժeJQ @ԥ`PP)u)x)SץV`jsrr22_y&5$#Gr \<*TOoph<<4jhŬ֭[)6(CS,`r#H,upI# D*UF駟*X2@DEKӪ`4} >()2ӪW_}uAᮠ@{C=7a۝#0/QcD;JT$)J.Z"_|q͚5GNOOZ*M?eʔzի{eB$泥w3ʻ"!0qIx\"'-Je;ԑJEYQE q!@uIu$e&R$Sxgyʕ+3#ҡ M@ /lذ/`͚59˾o߾ gEib ۿ*V( hBf$ʥf#^V)Q@]LDW$H&+.R(#NSLn4Y<+ԽK۴i*[_6m$c}>n -t)$Z[ۃ} $I )k,S" %.)2.u3s+l<#PCB$Zr.Q@0P4L԰FH"Tb@QB~hEMB9(H9` "E>㢤c ann.ESMy^t`_HgS}E@˳ftA(3\2Rwza}M2Ʈ&̢Pkbٳ'>#6 pرݺuH.)e*P@5`GN O+DuJE#U(%{CÔS饗лw@00ȿetH*8 Zۄ4C]41|>%} 41./`Xr& DdV٠;d Mx۲eKq̑Gyw@=׮]hA*\biհ;B1 ^|s=NJGr)}aҧrdzYDꈙR,/_3Ԯ<'Q կ_᫯^{Ê+0u~Dt娣"\ڹ*Ut5@>#BU ΫS1a!3|B"9oذ֭[O>֭[aƏߴiS6zoI_WkS `O0A~9*?|-[rs9 BP k͚5 Xcr$$]hcE7@=|}ˆ %7xsES|!mdu`.]6DMn N=P/ ;w͛\,jՊPe M_.l2ל0fgrk֬ꌈ9_$]F* \ɓ1K/:tO3e2/!1R<'x#ӑYbI37H^9sIA?av3g2L1CH޸{MB%>(k;͚5#T;=c,!r#/^ٿKe u~uױGpp0(R >tPJm;rdqFySO=-GbKή=E_fqUX,TϟOwZ%ܶ ?}ݗ㤅k׎MB%$;L4dN`Oy0¨o p֬Y4z&Z^[+'B6ÚdW E}n(v*!+MBbP&%(9SR9YMT%V/IaUQH S,{47tyøc9[9N6v 62F ;pk$t$ٳ!C5jʜ9sidoMFF<ʰ;= cv"uG$w97g#~,PZn0"a;fDBZPH('وY6ƍc'Be}攘;v6:r1 ̲&15kLF 2, RGB̆I eLV$5ғ 2_\,{\@(``]L*CB,Xxvil$e''ӡ#DG( } M;٣X],Ntv]l;{E#b ƃa +:cFRʼh26i %A2ZbЅČHýL;' ԽO*9qL {HBz C&wiGN0HY{[{A)rу2JR)+r裏,s` Rܑ!IJdM`?4Rg@wTnB,_HKÏM{Æmsg2ԸA}-m6 6\bS܍賕pcp }fG)ʊ/{/b&nxss@+Gقc1qݹ1>Z˸B~abF`x$xH29gHޑЅVF) u†Gqq1C >2pt~i%*$,Lx^ʱYRf䊄39b ѡ jȱ79du:! ke XR\0Sbҋ{\qB Qɑ)/ GqD JVXAVXEXYx q#1\ +U!`Sǽϲ/5ƒf^0Υ2òDիW!wABpAًH>ZmD`Pۮ]b$@( N: M.#ďIH KQK}F08}0@>$Z㗻 9 5ƅYt ܕȹQ ɢf\$X`J\xV d{ QaRA,3;&(lzs]ICx3{8OȹqA_E>3X$Āk-? c i MQS  X8%Q;$pͦ0sWsf^+IZ0 Gp87ހgwy 1P gk'03TBؤpIK %+`$GB1\j /M(kuRAԋ3}s 2.ɼ 2w !,_F7b>hFxtSɪ%al2 "'c$-:pG }$,L1Mިu7y7^& ftA!ˏ8;  ݻwgъҥKyYVGF!.tar(d ?3[l! kPA4`dX&a1 /0w"=C"'KƳפINl_VLSac߻p 8%FAAD&jB@ ޕpK4 Z $(06!j "Znj|{Dsa!(!A󈄊rw="⅝Ype5Rc(ktgl?8M:--fۧ¥j5%9de>裟~)d3VbDaF3'ҝ:!M"q@ج}C4e8V;LCk*]|G0Ke]Ft裆w.&v{ ;p2 t H{r喡)E4ܱq%3"؋>qHa$w\pAƍ96`pxE'|2N=T?;eʔ!CSNt<&Ƕ*),t)\SʌK4 G:/T:BP͠z3f̨Ww߽a8(]hBY.0% FƩ \8gqrݛ&9v/zdRt1рN7sٓ^&#(cPݹa*e£ 97oޣG;Eye"@#& {ARr)F&Sy%[t<.6 f|K7#_ }52F֦Mu]pq2YV-i6 "\V;} HMn*D rbCYq£iyw>(ڄ nVmV;;v0YltЄ(`KlOR>#WDvg҅{_L.$fxydI4p/B]r%75{ kj/:a:feL!T2OSQ袗. 4vn@u;~x7|p=ЄxPb S(2kJ4 ?5@Kz/3Nw)sϜ9z S,4Ra" TN&Mț45F !U Pp<׏)bfaN&W̲w]#"!`$&e/Q\` b4<4!*DP1BJ!EF$uLa:^p^Xxll|ȃthbaM!Sԉ;1pKz# |'P)S B.Q9/XRD}- jg" Vz#G`*\Q#|1ǰ}h$l.,h슍G*TZɃ%tEM5kklJ yA 4dG"`؍2akp1M` 5joF9r~-Zn-ZٌD76GpG%q+*_~%xPm&rC bf쪝:u"<$q>ӦMc @ SG'NY&2b?^3h%~nrH%򫯾J钙`8ٹ>ӅaߨQ#̚5M:VQ #:蠏?- 뮻8hQ ?uzT )Sac\FhC<Jhґ,PApDo;v, 2e yCw% dgg~~le.۷oO$t'$5c=t½޻`"gx L"l.ZB,6$@:rJ.9~x06l2+W _Ι35::ۏB`H+HHV!)բ%4=Z90XT 1`X!u'O>#g裏PN̬y&wi/J*T R.Zhx#ÇI慓ӤT :;IcD!K5}K.%~qхG<4O|#eV-]@GƎ lbX" ID(lGM+h$ PՉY`}b#xƎD r€0Av̘1(!q=Wat!N45SANX'xI% M--,@zL`Fw$h%(V(9XwSV{١` 48S18<>hӈ#=XV97˝ݍ;ۃ3L{. QN66 3" nl۴i n7xw^edKd$6J9n?NbZzvʽepưGe* ٤_~eb_| 8" \ !NP!~!O>yѢExsg%f͚"L˲K׀,kF &<%4g3rv=kdcx<d)/w4] +Œ_b( lhv.߿?w$' a=0@rV>ia I!*LI !@nBxƽ̭Ax< L4#b,,%9$die dƍ@_S&kM`1r>c#Q@2cD bD\\Z5 6 |1 |90:ŝq,0MݺuctL(j]e%feɬ!'rzfIY6G}w38& ᰙ3 x|'q UeV>Dg+ #b8,C=:]p, ɐYKrKh v<"a]<@ҽH 1؉Jk?%;.$^EMunNUgiJ4*RDmN VA:޷v'W 8w!%ת4.;#T_5%dԞ zYP$R` ʅ,/:ޔyH#zХD5o,R&Mo$W)BaBRfemmK*R.,+OޜI’sF"""O$)Q1%%IAd"HAr,3so6%/òԩs=w–]ePeAbYw +1Ge+p726ЖYG 9.e neĐiQ•CqYfJ_*,J(.C(,*U&&BS闿УTC1J- 'yXB(c8, P,6ErڂGa Kųdp[/B)f 4OIiGC AD~}ևx-u{O;ln4;`sK4^ظ!%06apb%g5Yx5WF5zJ!hb\وHc) YҨ fLIQevPBz#C s"neDFW#q#^QrP#dGV-e$Cc% Mx0*B3fKz˲ځSc#nKKCce\F|ieY>NLeyuʥ@SaYRs2 -GbֆM#*-瑌CL b 3m AnJ PP"Rv&JJ)رcgm5wyˍɌõo* 5wN󩗙^rgE(ib8 +5'C_]lƥE!h'psK+$OIX/o.| |-VtA\OL̢wmh;n7eB_5XpIG'E1za&JKm&&2 ]TQ4,f-e#G2s%eSŪ36yӘceRj.1`fC̥QD[Bu pN8 J "2bFhi: `2!Vv* HLOȹdͼ$6e_ p/BYF!pRVK()}qRFTi>I2%{"r6oᜲHՒ# cZ D/K@mkԆ&!4p8)ul +P*h`!-O$! Sʹ$`eȵӑv0UCžܕe-}wy晞 xҪT.'J5t Yu$yAǐRa2D?RF7ԆDWї)hC>"?SNy衇-BDV%S:wy'1x.[Kx8%[;بXaƾ.Yk Z?<3`fz)' F8pyמ{kvA["qMuSyhs)7F܇%0!bTR"u2d~g2<$)P#\7G)OxX/!h`T𩝶js0,2Z zsL!JQze ĒpHBƌJmx`7JaPrZ6p-C1lt%K()*Q M_(G=K(r[ )Ehy3 %!(vLjQYNDqaC_JEQ<҈.-D2`f. 1 F216ۈuu.n6Pܲ4T !p.5Z!pNJ/'4r# A/a*?.kG ]|jM R&[R:rVaCAD~J̪*ʱe MQ6pĽ]bnq2e9][>BлX1$} qpa\)^4Ŧx+ܦʤLaP .`A9/c!F4u!Lu~J>\̋}EO(]r*Cʔ]amʥ0(A!jd((` (JV/Z~$K,gD.?)iicHXֆ(rVPkM(P KJse V_EJz w'YȭX1J%qsѐ"u Z ?&rheF!HR򪠗R!"pN'!0Ld6B$2aХ ڭ^p {&ȵALK~74bbuA# jOBK2|+!D&elm,CIIbE2(sYµ9\BI8aPwF"H$D"bD"H$D=BRD"H$D?!g"H$D3H$D"OHH$D"'$L$D"Hz&D"H$ I=D"H$D"H$~BRD"H$D?!g"H$D3H$D"OHH$D"'$L$D"Hz&D"H$ I=D"H$D"H$~BRD"H$D?!g"H$D3H$D"OHH$D"'$L$D"Hz&D"H$ I=D"H$D"H$~BRD"H$D?!g"H$D3H$D"OHH$D"'Y=}>#H$D!G"H$DzS|H$D" Yȇ15#H${I=?ToKD"HHaA}!wvv:wj&D"x(ԢoL.XI[T}]!H$ĻD}ϐ! 0p材sև%}@hݫɠCvInD"H$mUQXtihRY=== 0aB{[gc=h"H$Ĵ0`aÂc1z(k=~:o$Ω'$L$D"Tڊo >*ޞ;xpD"H$Qᓓ'Owo D"H$D Yzs$L$D"Hz&D"H$ I=D"H$D"H$~BRD"H$D?!g"H$D'*!]]]E.j>;Ⲙ''d-0+b^D"H$:z=Z"MMM !'SN8QK10zUGGG Wl?9E[OD%QƠѢ2^,1"!^NJ@]Mkç.?D"H$P$|tuua!RBSh%%^|N;l>&D"H|@ms1x#<_㎻뮻bAل1ՅM[[[`%#7lǟ51Q%>w{=؃hҐCN4i=z]wݵ^<.R;|<]xy@p]'WrJ$D"`"c;sύmfTW}wɟ'W^y/ e[[s=wwxkk=رcW]u՞=SN9r$!IߦFH$D"@"^x?7vyE' :t„ MxbJCS-8K/{bO<% z/nyI$D"@"kȑ#91c?"F6h %2LJAs1bĈ>6l%xg`@rv.ނ&D"H|@m/ 7qY==G#k~O>7ώe|Wu]:=L4iEYs5j6^x!O= ,r]~_'@UO mll-JN$D"" Gq1,m[l/~QWՇ~gKCbK.Oӟg묳NsssKK Acǎ]feviC=tc9W\ѐߟ2~A~=g}&L p*H$D⃈g8]n? Rц1&J{wq]wu76p0PoC%t(Q{ }"H$ ɓwe~LmUC.:b;]₸#R\3]vi[nϾ2dL`6_W2bL$D"yz=BGT+-蒾J+YMZ!>D$t*' +Qg"H$AEB 2BlVA@ S9YC銱D"H$P$D"H$z&D"H$ I=D"H$D"H$~BRD"H$D?!g"H$D3H$~d?'@柔Q"}gg{ ] ꩶD"xo1/V)T/tW=u mVĆgu9 ᧷{+6HOz[[[Ç_%)H9룬}ww *|xMAQ'&D=FfVg-`ZQR 6,8FR/^4{{wvvXiP-H$**_Ծ>6af/}!~BkۤAU11 }>UbsfH$./䱢DΪYϊƵx{!C 0`o~'@c}ogD"1[Z8Փ8}Tǐ)AORDa:MsGߓ o.?Ig"H 譥S7>+TҐbçaä@mʧz-F}PJC>DNbPgӻ/.t5U~j3;}O$f.䧞<D">;CSg& y0(#O y}. Џ>䦜 SyuwwtWʎBWWWԾЄ2"L)a<&.F E3U⁦x(Ca6]E CZ'PZ\%7%q,MU@S^i%P)a颇%ƑtEon(!&m̷V;6!R\O<9DWO5D[[RJd\!2v] ʄ6 S iKMfKC1вDkeB"Ǩֺ*mhڇ\la_2!-E(qIZ!j,kV~AdU4䢯ŬdR6q2vvḎr:wuOQgWyV !T?"arY\+xfsO=gq8SH >O{D6553 ==KM€(!0nii @Ɵ2aVN4R{{;2 (ʘo9'j."Fo8 }] QQ 5eQe),T(N*թމ.k^p,k4B2F{8E)6. Zȵ];LwᰴaY&+ A(kL\%%.r߾7FpiK}4hP덁 ˪םG!%oz#U- ?hРp!e>7pJ2o!bT]zp6@m,CDI-}ޥYj3`V녈\B?b+ -{z0ʨ Domi e<\r [[y]ƆΦfq+on5ֶMgscCtxg%qeo֠ȯʓOL̊`0؏iX@}x|W5dڸ,z&C(j ep(h2XXԞ%ZIL'.e%89-@tnFouNYh!bE?UFdȅUBND702Zr~ .CfK[ QVDvSe`aU813CCh"4$0(0{J5[KbI(QUm)g*fWKG kFlȐ9`(]6 Jz<%n"2EO2*fJ^\FMB_r4*!¦E,.aI1̌1e@S2\岔 왕UIu+3B]O埅M\Wo˒W*iotE2K$f.H̒G^:BYC@'3$S(Kf I0%3ٳ!8$ C\%%K1,,0 (`%1!  p׵ 4"h-*)i$6&尪KO/ᑹ<ÆPQKi'4%h֬\BTQ)i?CYVK[?Y0'.7΀Ҥb|- r zTp4Ftti]ƨ %A-l`80Ȗ&xpIr?*S$]M;~rC}1$fLV1D[WZS>rz3Micx8 ӆiBu\+T5[;h*u(fCKo}SZ6onioY^ )pI̪<dA@k@68l؈TiA$fE*Js9hbxd>J9tCnFژp*!ʡCjY܉ "JB,5;. "J@JʭbX?!١E kmknrg{qGO]{o]osc[oz5y7tu 4_fL"1 *<<=_y啳:{|gh=cĈ.A<AWyt* %0 С&,e~<qJdKpU)@2&A)!p '87h.H*})WјK,V\c>F c >_6[č%3!DbyGl喖 %m6d!#Ϻޖs uխԨU F&3Iz|?ݳC~ԨQw?tA믿RK-u﾿կNOIxJj=`sLx <#\؄q"AJ`lCe|uY|#< pMjF,~܆&.'N,ӡ?"p1Ё2OI)6&n{QGM03s{h׿VZ#<_t!+/Bzy~{=zu]CY9s9[odg< Ccnn馛 tb|f 7.| _x#b[ǟviH0墋.owgԧ?xDtcrꪫdF/8#7M8N?tt"|s z(j~]w1^dEƸ8 \s7T2E}Qkgi[oW_ |eUV 8AC~w aG2 oLwe4de\\Ć`'q1k_%p'>sv>1C PĹ[l1G=%&kJJ)%(ڍwhd"k.=K)7|gfy5܆R5k;ϯVzd" > Mlرrs9mQ=֑;Ӎ>evMNr}dQ:.[7)-=餓$/O.?77MPUl|I+e9DҗK,X-/ ,6lCy=vi#Grxn^APօ}Hsw41vyԘͳ[%{V[3͌v&lKi n5\r;j+/u.6#/c?=]6LbmTl%)C?׷Jqn WZiܱO[c?9g{l+bpuvֹ-L;*u'zNtT5m+Do"~q"ZgֳسSՁ>7l3O~~qtp OpO3p8/v#qe?b9 ]v}s=$If͉s@S>&yW_78zȴg3jhacי qzc9 RtP3}­ vz/<=},#+vi)#+zOoeY{}g`]Z7tnRwC8`x~>;T֎^Urk+ƇV~%Db"7gsԳ=k{N:sţ֓ӳgp>&pQI?8S;Η^zA;:pƒ@-}`D& df9H[2H@o|㎓!ΤKb=? (>biƍcD9(cKThՄ$)կ~evr/DwK\F?8)2l00 i$KВVpƹYG}Ժq1QZD1K=|L~.,Ll$O*+Ju˘^sdb-b13D=ui˙&Wէ=$b[JQ7woČYDG 9l,mތq h:a/K^x^5dm=uo\S/.#u i^> 2LЙר KC(?O;n0wk'C R̂X& 1kQ[xf@7.MPQ0s ,YD 4O9]tQ@CX`Ͽ}%+[-o!$2f^6]dǢMo=|+""foGX~3J/_2Х.2" Qc pd!ƀ[u@23Л;p" b6Trv6 _Qo$)j[n喅>2Ϡe:{Vˠ=M;qPKA7xuygq?oi{w;}{Uv+ uuڴɕ2L' H@$->A$㎘k,p&JS@5$dWM6G(W$f$!Da^xa EarŃr$DE6lc]1iLrxWdEte*]cs1M4Z!^\ K+!V^x.T=.dbo3I~F-wwu{_^:lC"+|^Uϵ?.1W j:n9F4vuT~hR<:&O)u=z.Gq~s{ڂ77xnxkoC=un/WUrլHjDAC`뭷!~:SK/=zQd ?3].TT(^/׿0|w$_wu#=xiaV]uճ>Su 78KVYe6:\ᶜ(FɜꃾLX&Qj7`~I㗿=!;9 ?9TӚo|aǒ+SO=5>/d/%35G.:￟Tx|+E]ĉ)uY-܂ .jN;Xq,:PQLCꪫ81MDEbZfe-3Ӽ%OZ [*`2rD8GVn2I't' .qȇU(5*:)QGK,6cc!(\!s9v<]J=Wr{}]w]S0G||Z85OV~aˁU- H(J((@265Op7Qj] (̸,S8qYzlbi \+pZEkwYy\rZknju4ԍsG34zioG4\(⺔/X/S+Ѓ>Ymk(K!9 mKM* H_~rS5\c-^JV[m@{>&aWoQf<$cSuvYxΊ64 ޮ6 qEk 8jn9ns>C䎺]Gdhc]}oA'Z1omi_vٿozVS}UBW7W4nپDb!C 'S9|yKx{&z{:7|#pB|xBZ”-v7 IQy +`.҉Xfeh1M7TE,rMJzyCDW׿kE7b C.1~pqEvg}uɉjKʼL\?N(Yk] e7ʞ^k܈lʊ[6QfglllR)wCGx"H̰@&A$f3veoVy7dkgi]vYJP Ss9n3ĮFLMż@Re筩Zi~Vcz$`i<&aB8qB(ftYkw[9۴8g?YEYdHNrvQg+ųu2#𜔛gv׿u2P*`=,87jyX}CQ~]cFpM .1k?-GwW];ǰ5sC B l9~U]2Km 1:m=<=+ ly'=W]Oyg\bzo}!ŕ\uDUihh] K qybOpuQz(Yqh3z 6. n4\pX@̥V$F]Nj+JQq͢vjzː@ w]m.(?, h)!dPru|r).(m+\%oA#ZMxJ52\+Cȵf*ƺ,-!BQR*U-ؘ8ⴚR)Dc@Q:і MKJ(p`ZBYE*%wml)c% WJY&d.wqm׏9e)#f FLм"Đ2SC]@Sl.U Q^o^0rKzn1Q/$^Ew8Ń./T[pHɃ!2mO>>z~@$(#Ԣ-;U+rK-i-oh2WC+mOUWC:=]૷3U[fw&l:;IdGW]sS]ϔ?#zfwU\MY~#:w7^x{{yzR\(W\sQQm dYBX@paL[($N N*ESq S+%hK~j(1<l܂w0acm+j5ͨ Vro2d*MC}lj2FEEt(C?z o,% "P.&Q7q [O?4=:律.C!G Q=DoJAм"Đ(VB.ʲX+4B*0z[4ꠋ(#<22*B -D(sBx0J&@5Gł/!,FN -mĈx''.{zƽZCcG+pJ2L-_ A9%K6PiκlsPD2UWcyA+~x_ASwx #5ݭ՟'@Yw&Gxӟ[oaÆuN]rv& *w9rk!Hߊɜr)slg-0Ë֨QpW6{wql͢., whbh\ƚ}7xGqe}srK׏G>Z((vi _c=X=$W)f\j7="v`qxx"NZ(//rbfì|Ɠxk.;[Y}vTI?#1dҤIho.%3U*}S+*e|ʗ*DZ۳.2c[{g`'4z{cv=UorTWo` opfVl{뛨T5*r_[qH;IkPS婞.dEKL%_2!* ~\p[Pn,>P9>1?u"@4U+ICıtXǶPXnip9 lB񴷷ML?w[xd3 hyŲ{ dЀPVLU]H`䧞wij2mS>щx@VPt?ss'Ռ;?]}@1 {;(˴)Zi8~x@g% F& ͕; +Q.gO7{*9~m#Z|V y *uF hC9mnh#0_t".Nחx*Q5E-'}c13>`GMAS8 EڄTLrXJ~<M2F89]JoaOAL$I=D"H$t=H$D"OHH$D"'$L$D"Hz&D"H$ I=D"H$D"H$~BRD"H$D?!g"H$D3H$D"OHH$D"'$L$D"Hz&D"H$ I=D"H$D"H$~BRD"H$D?!g"H$D3H$D"OHH$D"'$L$D"Hz&D"H$ I=D"H$D"H$~BRD"H$D?!g"H$D3H$D"OHH$D"'$L$D"Hz&D"H$ I=D"H$7{mȉD"H$3 I=gq ]]]NYT_}<SttwVdoD{JncŠC[;vZ-jSϨmfy%D"a@RY F ]]MrYzU#Pz=]] n<z vX__񂖖̲M! f9]DWss31ehoǶs *& żDzԄ\L$DbE[Y =ݝUWa8`]Ԣz;;ꛚ*8q-= U: ş7>.&G [ׂ2=E$Vݘ% 9hl,D"H̒H9 V%7tƩ\}7R޺Ʈ*ok4hڟ[nf3^|YTZZfV7y䖖NvBK9 |ތ@3"m)֞H$,8nGGWKs{uwu{_21[Wgd ,[M|Jʭ(hSk*he{z0qI]<D"xsG*$=0i҄m+o1Y>84iҖ[nyu׹ !^rP>Z&o7L.z'b) qW_}u]vyiз 7x袋/.$WgW%D!@@D <a*]L \P;ذ'3\IRDmtrH$I=?c@[[҃M#F7nlo|cV։/䒋.h*v8`aNy\p~E]dEN=԰;7޸zp =ܷ/xW@¥^*[7p„ l]wu9Gy{ꫯ*c`y H$,8{^ȭM#GbHtn7dήƦ '6|kr]o]}sc{뤫 /Dk'?}pdnРA84x`cҗ"U'| z衇mazӂ`]vaO>-rw} WGx>1C)Mcbm|ns=3BG}T믿#ău}R,u/W:WT|X"b )'rcƚ),\8apO$,8+3̐^W8Y#7K_dƖi%ZS{/2 +~jgz+F/tJe0a6B^yVҫ&o6(KO^uU^ziwe}ᇍE [x76zJ-K@Oef )?ƭB0,\b b`pYo>MuX+ð!WdJ-}D"HH9qO<޻t:;;Z|3G{ʍM=]'^~sNP"T2>} o"HR=A"a8.-%4YodbFl'9l.$/YnƷ~w?c\s",R]Ai'[LW!dAtƲQr5Qfd^JqMC93]̀ƨ(r"H$z@\-N܌B:aG~4 m4x".tvv^wuvn-uvu7T~S15!!dHD3|qM5b'A!\aÆaרQp Klj!8zzYflU ;vȐ!>X 1iҤ' <3=hDgEWFs:t) u XABaZ.MA 7 b,P&D"AGRYW)YXNP?{l멐K\ri 4 1b>]%D0q,5Ço[nimqV=O9x|O>d ^{.}/!#m7x[l> ʊ^bXk}䐓kV_}>xܸq{>({00#FlևrKe=cn3H9Bf:*Ihwwgǟ8Azz:.‹.8{$㫣V  aKS 2K_s̱k,?9眅WdMFx76poW\g[o%\ PuMM F'Ozs#mB"Pp2 reՅwC#FDK,< :VM H@\Awe /7QÇ/\i t)7p$RԚԫGXf&nH(Û<#zAa hD"C ѝ.3lذI&>X45x 5jTX^ȓ a ,3bGB&ʌ jBZ?I[Sֲ'|ѣ[nk?&9ԊNcl"@Q/D b CN>Ұ! I2MKrh&D"1 >룣[؝v_W{zQ-1ɓzfkooUM'OU=aHFG22Y!ƆᅥEZi nRB#(/JM!VL-FW}h7R%{2"B{x+~{H$Ĭ8zzpP%m?g^ySf^SP4wСkW3DFB< OD2`]ACiuUba„ Æ }x(,5P mpx 2dNbBɭz +Im 3CXJ&AeH$I=gq`_̀O {z*)nhl0>Vcu[ ʾH!pKT kĥ#ưrʯB COŘTQE(,-]/oOChC)(Al-]\EhYjF\FD"HJH9룫 ƣ0 u[iߔm*P( и":eX: d=!d 'S ک@Q,Ƈ0Z6dԦᒓXV@,)Ya4-DzZ%D"F߁Рc?u{$D"Axe+H$D}C~H$D"'g`D"H$~B~x?~F%H$;ED"H$D?!?ᝯ>%H$;ED"H$D?!?L$D"HSD"H$D?!g"H$D3H$D"OHH$D"'$L$D"Hz&D"H$ I=D"H$8vwweWW==E¾vTځp^0.ba SrY y(!h7&Ÿ$ƢŸh,k*=DP+8 0.&f!J"L;_>gr(1.#\vB_Pjk7CU;6i,dkaц v !~ڶ6m0sAI%@hj9ɵv9J>4w" 'eH$ڲ0y(`V+2v3}-ЉDb&DRYčnjjjmmmnn&cۃ(d)!0桡}h9 g("hD0@)mCheqZ6:@h+6---a# lD[h4(X6ci-XdL\R'YJ8mA0'Qr6+^z6 3zQ" 8 09 e YD]'ٱ4$(oН l#1, l³.ȑ9rg2l ] 3E9 8\Y ",C ҠJc%9em8̗ ʐL–*`L˧;[[ (g)h nˏekex l19g]ptAF+ e} N`8MYK S0ƐD"1sq"<=='导JqyR_uUsΪZ }2;Kb,FOy8Z /GO>? NqvR-qWz8ᔑ'?]*>i( pK,f@2-Xw#?]w݊+\6qH˨^`I#UbT>jB/WAߏ9r9eq&L8C3OIg2{p.b_a@CT)9F\sE]j 3u36DbaOڇ.(h虅 7ľb8Xc IX/g}v,944b39HV$p%m+ B|LR6@1cKaY96\JQ JlQD.mQJe]?B,6-[*V^yeZ/-,bZSFXM4yOsV,g =Зc/1gƒA`L.>i$ $wS{cأ/~]38C.c 6>wm|s9緿m [oq8(+2 .W^qqy?i_~4X׸qdzjGι{u?c_eD $(,W-is1u_y{V[m׿uرNo|s5u]sP`W\q]wݵ\?/_}Ղ.8rHC"y<@>].2X_BɃ~G>~,_/X`w'qwWf7eri(׿VXAю:ꨍ6ڈ75J α뮻sǏr饗k fb}uYJXJG?Q,\r` /g0j`|饗^~"r=z^{-|;1Y3m$cGq 6wq!;//Os袋87ɛ4b&L0e]_qɆ묳 ~֒YD ʏr_lŌ"\xᅦW waztI[o.*}b]Ę%X *.0KLPc+b.R8q":sYiCiXqJʬ_e.v9-`Z*<Ç ϛ$O E-NGVhd YuWDH/%6֤߬*XZP @$ FS>OpPd[8s%y oN'C=pEΜߏ8rKӼꪫWzuzϪaVxv?#R0lqZEVybH<mq YS*K0bĈʈzyP: D5\ aV>\:h ~jXM\D>(53B{'"86R+Y%SjI,)!U(:;쳣MV VsU5GQyNo?+b?QCDV@A)%%'2 "d,enmL Q uЦo,Xb-*%u^h"%/!!ReXQ 9m2",(ˀwx[݁E0FW%dpp r 6R\u1߱c❦6qZU İ~xԇfWѨ{NJ"FW . zWsvmw~'X, 8Mi%@ \"=J(YچXi"U ̀@ɿ[?{T! <7 6H_ك@1E$l!'?)̛7U|Z~#2Jj0)Fwܯ~(/mxn/GvO}Sw1J#C[`F.#FPg{/vKk!N1etQ=a8&"UzOd>ҺS-X&/-k~ѸYD#ZY$O]|@E{:<)p )pCx'ZJc 2?y)AiPFKCب z+fO=C=2LL SUe38jnV[ u΃>?1ҦQ" X J"ӐyN>ыMZ]ttY2415Qbg{G:똦){c#C" QTVeopi؇QX8.Cz衿oTSb2=i 'ƒFShfdo?–կK.=EO?tWXaL{%O)?&kwO~,nciKpObK7[{92Pr_H6lS[ c(on4֨XE) I\ng}A bA#V vy[YRHQjT˕|ďՆ>BoT2IV"uu4JF8sӔ{MW,ÇsID!z#(!&H$w8#gc lwOUW] ǝ׿Ns9瓟d7ƞ^;~?6{_^ S}sKp6\ƁKnEk:3\}/%\∥7JxcW\D.f_XW9oie]?lFby7%aXD^xa]w]%ﺺ>[̴l.H͝ܜ0 %M7={NU¼)?1r8yPO> 5f?͔K/tPXb3ٵ^Δ tY6q[R'> [{'ozn%"Br-V>vUW994Gŧ -xۯo]اb[,Pɐ0Dԧ,U{Wqt1˲Rnj?F?!^ņ` =뭷<J|bw=c?LR쇥wG۫6avW+%gL߿+TLJ@:,3a+.S"hC0+ cO {n7z10_ӏ*ccsnt|\*o(%,d+˛X,<5,7VܛL]xXi8?sc,]Qj]e,k!sʐHKH$fo'v9e)u{e]1я~SNq"э6ɁE9~X˒K.~ '8C$y AV\qEG@qbiW'/b' 8;Y[ouu8=p8I,V[-R585's9DDJvi''.ԓsd{a| m#QǏɔgf"oX1B㔂fKS֤Xv[q^ҘK_ ?z4lƆZJjGX.O?t)q,iƯ.aʸ+ 3?ˤn_W] % h{nrƍCgLS>/?.qɚU6YY*lrkg F}hS mEY#Ky1X_aM7Eկ~Mݱrk&h[o|t [{x7ˁkF`|s_Wg]q.r\Yf.uePrU4xVb`4 n8.AaY*2%R?[@s I!C$fUҎDUXD'w!R4huDEڹ<8SO=ԭ (YAأJa!7dDtG^6pC8~T> Y%h&EWrCCcxbqn:HE];c`2(l%4reiObQ@|Q1H|@ z12<_OtR*LeM N !˘r(666Krd%c!64(jYrLWȔ3!\B/P81.K,fa)h~\2Ģ6r,c61[exvI$:h>E22{Jbxis̝3s'󯅪˾@ȦC&82c-92^1vRBsPr0\XrUǏ~wwW]y啣G;o_W N^{kf5ֈù%k#ZXF2GzijH$gDbf.u18l! |,5)Y.8mݸ^d1W)64(M#]4aH$f736q>GQ_7-Zi!u"mlDe"#n7L.iC+y"3H$D"OD"H$D?!g"H$D3H$D"OHH$D"'$L$D"Hz&D"H$ I=D"H$D"H$~BRD"H$D?!g"H$D3H$D"OHH$D"'$L$D"Hz&D"H$ I=D"H$D"H$~BRD"H$D?!g"H$D3H$D"OHH$D"'$L$D"H{{{D&D"HSO3SD"H$D?!?a}.D"H$ %!I=?ʱe'D"Q%SQCX7D"H$3 o:z~asD"H(T?|Gp%!;D"H$S rOOOccc$ :Ig"H$o7z~fo!#wD"H$w7|sTmmm'O˩+mxxf^^D" a0hЀ|>z驫*⍤_niiijj%o$u&js\j}=fOim{?H$NyZm:::f} 멐i0UbCS䫺N`@l;)Tg8kD"#lD<;!Yjo1˔oM߬wZBEVSi{;A3z%Dbf[,mP ͨ籗1hll̟/H$P HꙨo{,M=klvxw)_o'P SXDگD"H$ϔe- 7-Q~,[GD"H$3F)uR [q%fty7k?o[wnH$Df8ދZ |#i?S+oD"H$%Pـ %3;4 tuuM$A pBgg6ȇpS~7p!_R,}CCe455bNAOcǰhl얪zJ;457vJ^e|45AKÍKz}2ܗXlm d=oaf`g{tJJ,]l8ѫ5JmWGg8Vmn䶧5^c^+.4K/7-i#ehjF{29Fz.MǤ4WVk}&˲jgeT"H$q9qq$557=q8VN]qB!XE"Mzb3ṔK#ٔmmmpp!oMx Prh mr#8h i|WBL0!,ɱ.?~筽]kkXV+!տ<ȀONN#:4j᭭lB'M4l0/IqQ<].MCiGVyy峳#4G=Ӊ%lɓ#pxfrĉQƓ&On-o<"s)JriADS䁱g$ [;j(h"H$E#ճB(q~9hOΔ8:,qp {hęϘ@PFsTPwf`2[yW2Տ3eY. M8mcVm.cƌ9ꨣ_|aÇtt> 9::;Xb'tЁ?߼Mr ch== lh.c\|\y\ftР&˶/mЀL4[N}C;te2dp{{ۈMe۠Mm}B)jkkg0|4\q/w2{OxΠ,4^s,VFuv6rVQ=|L'EdO07$innP"%W4bϒ+p7#68\"Ą B΅fjYmBfҋ߾+^r%j;h zT;^zm>W_e?lsI h3TSY'Lsķ(i"2s(il}(C462H,ǡC+aԨQry%;vذa{Oӝwy?Ux,"'dWOb \KS]F+7N%iLPǿʌUԹKjK6 ᇙ +x8#ĤIf~?Yv٥Ke"H$o a7hΛnCip|gnF4Nwp-f;dSdF39 G2JK< ?><$EccsucU>tw~r-YdSO}Gج:>c=f믿g>;W1bÐ/_~磌馛\/|󟷉+?R2 ʈ"g'p­*UVY^zZhX g}E2˶fG?0€[nX,OM_;ʬOfm=vǚfV3B^9K=l.he]q 5q]w9rd$3.h:vǍ'%_1cƈ.￟~_~UWvmm*9z)lw}ᓟkv1H~E?o7on↦D"1 t /X`s9p??{va[}oCɓ';\UvqU7b;`J4Nk;fxe`37uػ| P9כ#t" ;{OOcZZsQ$/G>ꪫxC YtE1Zꑇ|?OwW{93vi-bVېeYīH\+5vػk 6G/"^Pz}guםwy<̏~wǏSu]g8's5!A~'|-l֒ &QG%]weu5P)2^oZZQ&'?1/,[y_|q5M{Ku饗>眳o~l,?2wH 7\n:;;.&+^^}u!F}_]o̗~~Gn se=-G}s̱?FjEf}f^|.S[fekZ]~"H$o*i~" ~cǾ_ve_}s=8\s;+y>ʚ`>hP tױPj ;!r[? Bos|'N:i斖#K[旿G>2\`!v_~y晫m/2|[eƏu%ckv-nQF,G/|UWN4l8eM6>|!\V(=PDYs=<2iA+߃FDڲ1b7,V':ڍ-v]+FX⋯s2yxnM7tĈ\6B9aic{{+G~k76 񕭾l")*}=kzٞ{3cmdݹRKύ2!CIUc򷂖̱‰D"H= ;>쯾6c|Y?#7OSt[o>`qjjpr!yNM߾KtM,Hq!K.$L0Q><-ـzu^rTa? ,1;ltxN9R )c{|{a'B6|po+*s,U^j:Go믿^qJ wXw̛\ R>~{uw4UI;#%?.$km0 ֋s}ssSGG{KKs}C岭}rGgu箻uםk͕W^.[Ug٢V?va[lş_%9XgOA ;:tᇭu;9`榺zT]]O=n-昿",C34:ڭx%_7!tAÏ[5hiji:׆hlU{gWSˀ.^_7~5e_ᏇAA?mٺ;$#d=J$9cO~K׿e [5pАIۤS׍vہvLH$GIƦlha?}#m_S74"Dfq߰xv!Ѿ*h&Nx 7_-:yrOw9㠥wp t6{YgVXag3CIKxX.%Xbgup2,bE'>CvTnE]fw}wvOJ/~q /~<g>fE?kcd_bI[jX`m%g5Dr0 Y~#>H~Zn夺+2X1ZZJۥ V'*3W@]W0q|j2IV0UњQ4|J2Ze1޾jn`#wI~ED"١uD: MMy]veWgKGGg1rR6饗n馏}cg MCcoo} ];Ӿp38cBC1{ޯk|qn o0UC=6wytr`ʂ .xw,BF!4<}^{(s=1 '袋fc_n?!.0~2Guꫯ~mΤIO~7Y[*ef!ypO>9sH@3՚|ڕ?4o@E/:{'Mlmixw dmm -B b  :6]ǣ哺z_7xs7K7pkMhll~oG}|եhFz'Mj ./dܸW_|79|}c\:qW^y/hU(Ѐhٞx){?믿QÆ[`(!2ARb[a6T :]~^K^{uBcCǝx1ls*i[kzJ+OSvV2t+H$[d5`Ç?\(f2>7}&PYawu+2K/57g>-#2xȐ?%D9a~ ?'2jِEl5>c2~S 5s9c z+_ ޱAYgVYeaVv~W%G{ YbPI^yU1'38>,(r)'xQ^z?l`?OQ^x_"o"F)?Oka1뷿]s7nZ : x3uY_S{op HB֫ RcW2YvD b2~߼Ui=ֱ_?h>!C*SuR]o_{uC'M{9d!ȉ%6V~4F_oꪫ?8J0)cc9JSg]b@uB!W8AUuQҮ!C\FJs*PDMY˙>(Kaj|~/Vʇm\ዂ❕i}WU" Is9W@l,UY_RTx,9y ͏=%oE俵} 01d '+f1Ay@j0U"f460xqGnjl]@e*#>Z[PM:{tuvT>5jWpfXScVK$Dm4qp!*N01}&s.82{G.ґ5W5ǯ4camfm{G:+K,袋n/x{G6@4(Q-`x]=~c>h¤=uGLo=[UC 2XJs_'&/ /\p뮻n!XtIzl +[onUYlxFY |x a!v=6p`WmIZ_zsC+o2 [7-쨫oKi{z F2~~1ggwɭ-ݽu M]"76K桢wM;` ϒvtt 2LֆkRk[&Mp((e$P흸j^@W_8h_?aQ-ZSTa M,׺n !%X}k{h]i`̽Wbu*UwROnk7/J'Nb0O7V߃,eh̨ S:++]|9N-bfg ,tO:O ʙY_{{W^xᅃ ;kmꫯ:.x~3[t>džOK# \i2XӸT CȜEOK%2VH#ؐb.e 1d,CVDCp`@N$D Nxr0a5 'K6qTCT>112> X9Fp m݉'kpiHI66?sÆU{}}Äڹf3 3[D"0Ḯ}# 1yTJ9QH'D[[[nj{3rgjq~*%|OQMgB=?:hРlI{A[}/(ԍ7⿱qڿZ({ |*0UK$L Ùmޚ$8Cʇ?94QmL4z ,aY wNԆ24zkf;aSIڷoaD"H4y A<`@{&3]2s}PEYf3HjO\0T+IZEG@rjT7 PLҾ/xlm ӵO$D!!C*݅Tێw7VAS{HC wWX۷3d|sC}vO${KOOoc#bY$Џs|c}CĿʯ"1PYg(z{:*Q(~_ >;D"1|ђzxZGmP, a ujK?WzFfaF4YO>YD|T(H$ ħUBiʯ\OD"H$~B~1H$D"OHH$D"'$L$D"Hz&D"H$ I=D"H$D"H$~BRD"H$D?!g"H$D3H$D"OHH$D"'$L$D"Hz&D"H$ I=D"H$D"H$~BRD"H$D?!g"H$D3H$D"OHH$D"'$L$D"Hz&D"H$ I=D"H$D"H$~BRD"H$D?!g"H$D3H$D"OHH$D"'?}b"H$D"^OL$D"H$KD"H${3H$D"OO=D"H$3H$D"O?H$D"'$L$D"Hz&D"H$ I=D"H$D"H$~BRD"H$D?!g"H$DSC蝂ڿQ'n.BY0)BWW}K3v*Ո"b Q[^bH$D"13QdZZZȔQccc G,P̥&@&BSS%w&6BԂR;CmK83=JJIa"H$̌z"ttt8C xFCOOX̦05yo0 dT;g!fB`tgQBTjmeYD"H$zApMǍC{O>䫯aNōp2pС;sιKj.fJ 8)4ˏ>]wݥ}W"ǷX[ #{,Ȱa$O|̋ȑd"H$̌wM=N(+{ꪇ~xѫ ,- >R"#lmm}g_|Ez+⪫* vUX1{W@+y/ǰ\M_z &7 m,AdX4sFXvev N$D"]S5;ѯ޹WU _# $1@( 4!x/;H[^bmK[3zQA^ CAbb 4+"+/;!! y?ϹQ$!sgַ??>{'&$$ >di'P=6NtZZځM֯_?3mYYۜ XUU!!!HvLLLdddXX$yljǏ?>|c= ͏pxn&Uyb8||| ƀ/_b8' ((.SCw85fȜ=cᄑϿ0(8l$䏲ѥ`Ls5N[ebm I$M ۵k'ˉ{_7Mm&iiih_bb d@ `Vt&LGW󫝤t~~~,Kb;j|EQEQáYGt2kߝ`~``HS!Uc~q{\M #k-5? 11TGp1>w7+JΚAAA?׭[W\\,Aӥ/, i-,,ܸqchhĉnjM=?Le:@FqBNDVZoFǎ{ᠤ$i+(8Dh0*CǚƸOmb;>k|3!Ӄ)WUUaf8k]mwDŰX[J4h2&+r HϞ=G)$^F5LeMM͆ VZ'IMMAx VwPRb|oFy.\`/2G(( n%K*sx2M'G< 3haO[;;aLFdLtbI@ 4iҤ/c# RUXXXVV6{lVljR@7QLʲ(ZBFոJ(5>EEEΝ#O&u)(0 r)*vG?BBKTOO#Ch"_a"LR?>H,-)~,̚|21Zq]@={VNE9=uI1X_D$ѣ̙f͚vĉ*Z?ӧzg?YRRҫ-\ sϡ裏P3gΜ;w.Ou2N+OyС Ҥ((ʴb6l._tO>QI=GN0&.|AA1il?-Y}ҥŋ+Wz뭷"##?êjŊzPPȵj7xc߾}>jq1}Oze˖UVV~[d5dQQQQh8JYK`̾}RnnݺQ޲e 5l-Zr81W=555<ZO<ٽ{^{^333e.f`퀂eeeR((\O=Al H_lAmm<ăb_n/W*yy{S[ѕ+|Źsn۶c ưѷ k-**BȘ&>x^vv3fNN~,IDO1|GrT*Iʭ@GzEGG 2o&hYYY/[o%۱V;w.??x0JKJJ,Xw")ד e|Yd˘׮]kmEQEQԳ%ܿt3n Ҋuu-ͯ~'\?u2:W!X["9NkBB|jwVZa%KGVwZҶ1^(/YdX#8eAAgϞwޥKΛ7z"Ȉ믿>tPuu}g"RQr*iuc)+(?`ʲ)_^&| t|Uػw={?~/cFZYKݱcΟ?ߣG+WN~&7pMMM j%%%255n999UU4=}|^"P`@2k}Ddv{D3c /^/^H0;Ǿ}ʥE֭۲e֬YiӦ?Ͽo'RS\sɖb?;(( \O=' IDO9m6Oܺukzz:^^W _~xjD$t"Oe|; `icǎ-..Fd{vޝPQQسgϫSuEI2ULҥKzr^U@SPP,EX/p$l(+(#vZ*oN,PrKLLddۿpSWTTpgLϟ8t'U`!!! ((L~!77RIӭf74ԥ#(ۿ?n{m@nȘ1c!jׯߺys޽%%%/El|q̘1 KGe Ço^ԋʯSQQQFtK_4/]0`EwuX^^ /a#Gdu, CEM&ۙdRyx?t)ܽP*(2>7y}O?}w0'v`nSl7:Gw׮]֭[hh31s^.S潼D崦f۶mgϞ7nܔ)ST%YQEQfޮgb`rGGGKdY-P"I (YnSSSW\9mڴ'uwamܵkהo߾H!!je((Y=Q: J[P~99Yȑ# ٷ<6R WSSsҥ"9|СC^_ K()prÝ$*(,n9uBD-#Ibd l|9;T]]/шb}uUel1ZnM-_!RstlR+(zڣ6IAa`$w-i;^Բ((-[ԛ((Jz:EQEQc1O(Ʃ((t= TEQEQ:c;OEQEQ[S⪓ IENDB`ntfy-2.11.0/docs/static/img/screenshot-curl.png000066400000000000000000007717531462047176100214300ustar00rootroot00000000000000PNG  IHDR=AbKGD pHYs  tIME  WwN IDATxymWY&o{@ P!ŒQrlŖr,q_e5](-V+J@ B$ ܐwzZZ]k/8;%a<޿|'Ҙ۷( P^PNῑ}+jI C5)&l]>^y$=g,ǻ0I~xI=[mw܎-<{^h,7|z}溕>9Y#LÔ=+k9v>i)=䯧!9Sq^spL3{w mY9?"r<=s+{sL6Zw, lTƐ~6 0lw6X9CCT[Fy^BkshgzV- v}ir*=;N,e?ot^J+pޫҹ pdL}a'Nꠐqc@8SPN{p&X~ϥveasBHVzPeSKCƣdð`(?L%[WV,,<'h߰'8YObXK (-[wd4E8u|HŎ }n.km0nÉVb{ (*L-|Fj2ɜ0JSi|2`9$llrh Wesv)}&7Y6۬ٿfXv8sg-b JkkmtqwXJW7\(1 V=> LuiP ʜZ- ?6 Op+JnOB0#?DlڟYk۱ $ r&YO[ql 6\66jk2sn#MV&D2EﴵkD}o87N +7`Pk{~M@nr /w׷6 r@qNuIHvt*Vyӽ6CE+!̍[\ (#D~gS0x&߷akļGd5M_@C;fM ~,9T',ܾN~@OHo4pU_/4b%DA?J7RH },S Au.Z-`ܱHnI_GsJwףFg'|[;:MV!)#ֿm,t6l€gNgiMA[ cD;Cfsǘ)%cQF9ާ.үYwF: 4ɜճlM{ 15Fičlqz6 zCwl,Q1MǪgIƆ(v&eS%ڟ\qLs~#Wpzh:[w4rtzANdny`&i?nDEA!)H>K(';̒,(uFȸ4"D~b0 uBPBڔ Zan籇B`L}X}ma 779 st '6 ^z| N^׼6lng<Ϲ|+غ=8q"Ɠq n]pqOq1.=2{pq?DXms5s.[js?>ħͅ8O‰^`'n}}cHr4yxŘL& |zy<O~m8 NEeR@xW^'s[heW$c(qꞡ@ÁUfsNhD̘n;\ Ƨ>`A"F}Q,oT3|3'd砿b[df8,$XCv$ۭ2e4'(mPS@-H7 R%g鸁"tCpE_[s):AcUa|\j ީq5|5^j)32qPHcN\osM>HuxͩVo2HLaU\LFFA\aY/?X-Oчu(0bM=U I#^3c]dQ /7FY0>-Qlj v6AIn,Sm9-rloRo[Lǭ+p-`s؝葧eǷA A,cwo7I1V>έo&&5;3ơe,/-`a~6q~;۟ig4s'fffbckM`2ip~3+ˋX^ZV@D>0;;C+KXZb)A 3Ivs{ᒇ<'[b[n;ðgWa3A@,.Ƴ^\ݸ\V\u,kÛ+h<|f+w? \u%び?|  qّ3x?f{޽BoU'ga^vG=]8€ќjb8olX7Oh 6м3:O/T|fhsF0Z‹#ۙ%6\ߖ"*jd7Mc:h8Kaauu8ʘƼĮR{,jI-EHԌӴ3h#`r+WUJ `t"A" p[ymWK ^K,, [,H׎e0ujK=P(RjQNѴ׍{hIɱ!C8n_^\:9Ka).b.$%+]l):Lԯjiec )DRJЮr_sWdմ᠄B!-'KQϠѕ㙫l~ȱZ)ꕷg(:!'8*GF / tf8)#E8ĊS )seQ743Zc--旖1&xs'e?U@ˇͭwvw_<|͵C?p3q^6~w2g'| Ø 4la``<9IO㞇~GÀ}&?G> KyG>xG4fg_M8~oob~vI;7=dw]/-eXpe8qrϷ0Dcwg3^xy4{{b[;x' ?7_q>eG??k^?MmU=ĩ+~ OXݼg]F|ߵ׻τq[<37_Cx/Ʊk8Ck1k~/\t&8wu7FL~ &b)j9ŅZmĖ$dz78?,f~F:& R{=ATaߖtHm@0-SiVe8B|vQɻd'aƉo6<1H-hs%c&S-UcN%]Qq \ilR0z$9ñ *(#) }!~$i ,AF,fdQxRilxfZa&; b`j1T^lW.3!)"\܁>ڣhHM٤`ƂUyZqEO׃.Z%!UCjsyX(ŨA[qn ^=4#C~r0 ODyd=HCg"*hDT@ZN6f]xۇǿ ?{v? {(Waaz`[G3O!a{[Љp xONn#/a.xޅ|籘@wߏåx-.C{9' ;3SG̉'?O7-⶛o{ɕ87Cp+,>1X~XMumf2\Y[9Ƙ Dbvvn ;?'b~Xggaߊ~|q8~ԫǝlqh8[c.>cso|;߬`vn}816|h>#'/ĉ[߆;^u=B1VW`x͑c<cf<gq# y\8'xK~Q~gbx 4QFbzX0ʥV@ FFdHq%2.N:vp0dv6:&1e4Z JLT&Xo燂8j6ҚS")(7acr8>$E^(wjW ۢIfw-y*up*iiP쒐vfGc\0r1YQ 6Q;.V\M Z4 ӊvM畱~,O"dݿr)cP``I 4t$F*Agj(@?Xdc(3Z8 l(2'S%goch#T-P )@?73&@^|u(Jp IDAT?_nG[͟#^X[ZNk6 ^ya/Iy?۷FXcgq^qWc.±b,/bdL%c~?=#x vq{I-k+SO-mŇg\p .6۶Ϻ|cЌ(|[3338gx[G+=<_8)H..qN`k~5Z/3 !]2Xd5|g8oqte3 ]ٝzb ؿ6|Z%z+bv D8-an?{{?0^t)cxmNgR#dA ݢ:jRI±z`AqЧNSq%Qj݊:>#7yf'x]s4y/ԪJ%{E`:/(2$m~##cʩΙP P${mC#Ȩ)L6#3-*e`%]f7Jp'v}闉z p IzdRXOi8eKɽG܈Xk C=: %?bZ4 \w&%M!rPaQ]؋L uNNhG|]%Bk˜0AhĀݘF;Ȩ+ĹMST)dӓ%]ҋK#jPG"1Ʋp._J@ cl;b2HSd=:̒ 3wKq[.cex g߉>[Wmo_1u ؅vqEx1K0.hd\zb/|n }XDƖ﵅' ow5?:&wa7ލ^ťʼn>G6qܾ<ѕGs O7Mwl[-Xk1sXX[<}Gqjg`sW}x<&M$ ^93ayqkKm6GR3xt>t>.?I7g:X~O7s4kXߏG=n{Trݽ ?}{ۘ9^_?xgq~J}ÿ3)4y.aV?L~<,("L<G Fi|8ظ c`o oxU?Xf0;;fwmx^|“.j@ݭƵ?`o(;(\oocrg837p~2\qdf(kr4sζfΉl|/ dMYΠyg..X$0] 9_]LIM-2*[̶^qi/"xٿʋfA;sҽ sN46"V _' fZ7c\3$F1^|N]R6ѕϹF f07{uB128l;z1'g}(-|yt㮠FX9\.6O[<ĊMyd7  8'w@\ 6ӈ-VDN El\Vh{M5C$|Fe$E5^;0&ywH+#.L?nc/3zPhEOՃ#a5SۖSZ&rUAeb6D&`;fVb1@xf'n7a<䖏ணqh`2VnorG~K6'b 3q7[iZ5[ngfB Yaa~ksc\tӛ/!}pd^꧞/ݜ{xui8pr|Ϛ҇ގX([cpnfބn?Oy8q/>Y>7߂S/ xUevl.Hd08׷/g/tC #b6o]o~;n]Gi܉/.vw]̭38C{#}bϟg~/1-z77ܺvGi{ݴϬ~+ᒝs83*G?c?:I a4|,퍔,%.ࢋ "D~ 0pp.dޗiPZ6?:VJ `"g\893"" a2QVBXu=;Tne`Y~=ᦋv/EB1SQ-RY'"g /9 Fy`Ju%SC!d(ްE\߱et<6s)2J4MXXJˈ$GPu8U^[|M;[D">aT&$C 왜 bૡR:doP1"%Rԣ/P '튾&Ϻs_Oxcg{+GHVg7N+*(&R׺&)VTTJyek_β.fEg"/Ԁ%ܓˈ)Fs15,bqqGWdcPc3س/ؑ9\8ͯ˷>R<7滎a ^e;io4 fayu0Ņsȭxodz!xphuk+=r<7M= 1;k2-7^=Ȣ]]f~~z'uؼ*y έ<G,`uAݸ~opSE8֠9{+;q N`v`2wظ3>i] G/`e7Xݸ~X[Z‰#8rw[ޅp#^k3cCGX`aa.ˢ$L%"͜&Lў"" KjŹY^ʼTk74>6&fXq=Fz,F V' ExFcE4IЃF[T`4@b\űbeuܴӄ/Q q(F缄 nJv1QgsPz-IDև{%.bA,31ϫ?vzH ׷4u'lՉY|"Mj[Gº~$PfJV}TlЃCz,ChF-J4#1Z1#[LQYM:uKCĂfl!tIxRb˛ڵaC")D=*.z&m6 X) \ AMF?qo2}Iaѝ2ꚤ팉kp=TGFL~[8}vpxmK 0*13gXe,.̡ 76ݽ=`ei+Klm̹ Xkٙ1[ YZ]|0\-[lmV1;;~s71.can{X6v17f@[ "./byy3q CV&='w`-cvvˋ۟އ{{'q 177666aFV0}[FgYΌZem,v{C0cE,-baagm`kg,=Tȉm&v4 fc/0q=i,6vp~c #cphms^ݗUzBf" !d+N#ϲqXGą~M߁]ЗՠJPiZDR\w*:4%6?@045]6n:T.C+Fݯ\)ԫz6&3"̨z, 7-\:~wݑ10l#c7MʣQQH3rC0 QɄ62&RCcC]/rN3fc$MKr~0D5{5Rfr%S2~&J0u}%?P塪e5g1Sz9JJ@ [KPV;d#YٸwUTu EI(juӞG(@%n$4EE7GM1ARN8k"&qB 1'gtj&⋱DXA(ffV\i;`Me3]@nWRA(A1u`.ME:=ב:53j`=ёȢKXx/vbv ēRGj X􌥅Gv쓼`Cpϐ1$]Ԇa6$V)(K"/TG\P>-s129c)e2Y@xi|'|W*>}v@MQsЁTJ)VL03X"-rk"6HݗauV־TX桉;hs3QaxTNz3832))ͫzh{MZ &mf0{#D]A[ p- #)ÙC 2ZьʓbE.AEW#ARu촸\ zgƑhFnr9Lw(&u(,21dk'Zd k"_͎ՐQmejCJ2SxNkU"m U)dX#Ig̪ryVcba; `xVs02j<ΕJ#E/_oӗc"v-AQZ䍍d"Jb)foO5N׸+8s$@\h.D#U~hn3n5gR<W3rfSU^uȐSkmj|%pDⴼug;hq``yia.#X6f *՚JnF9%w&*O[#C>Q2 rGȀ'R(0U, S,XH%uο2:Q#aٙA۶UJ*b;ا(끑2E%89ET f؄XxIɚ>kQ.rC24EH2!Ε1TPCykzAg-k$K/"S16BđeN22)L쀦sIMTL2mMcf 6Q=+`w3fdQ6 ;`j3sCOc RH|Lq6=IY`)NIs+ÃiH'%uFB=wU%ƴόѲ 8Wb,"Md#.;/ԥHTH9TdHl*[45MɜH)#76H3;^=LX3Ď&)Mn 6)i@@)}V<@HIEj9 N1u텚U8҈`[vDĻ#(ਆMX,K BmqY) {Ir'pH*?K4ցӊs kD2)+1 UI/k#k6Z%a4rH(S!!`΀EgulIv;+L%~Q) j`.~Txlkǵ1<ӓ5$s=6~I,MNVdLOL7A`۱5sKHq> IJsCɜ\]Q0gbֳ,TqjH3FKra^Lw8.a&6{]~UKX0 \@H8΅ )ΆtpMÊ`|8Sn,2-!:\N{ IDATZ=[8s"'ȥJ(ghTAPX q8"Qaٽ(PB\^$,"13EVXuJ4Ҕgs,ÑBDLn{^Ŏ{x#Y٧qN%(d bsPJ[R?\SUc,=2!.]ԙÿzZF]TBXG^0xI!\B8M9dqQF9f!I&:4il.ZG-PH!6UxEB4s)둇j:XC]ƁZ{yWK}Γ ߞ̣Ӥ7uUY#%;:0GG Y?p~٣+2Ig3kb ZJP9hLj x*f:}X_fd VDbc x TLK2EDd~[+W'!hWW 3U~+d]ñL=EiE ӃҘAQh3< cݑuAvU EnS®KVHl>.{p4\r"6Cȋ'=Deo.}IS.e4TnT?s8}Գ s"b fgI@u+RBclR79~002-g+5ngh%T3H9Dy4dV 5o6.WA B31ii2cbqoo^0P)bMtl76(1q.%Qo38)wH[)2y:_K`MOcm:T;i^sxO*ZRE-IӾO!ECi EK%C02ѾA eƜN sRF"ƧO2~.I4G 5?@JxBYYe()ޗ6gnF)V9kl=UDs+dV"U=Zf}kOь~7³v<_2QƁHm&/PW<ůr`гL"~y ^<8=QAGja ȠZWwY=sr& 6"iBxt ֏-7^hhX}Mr/?H sԧڸD5M)sE0kqdWٿZl̗ 9Sju+Z{oaph̰7}s¸e[p72R]0\DGt[y@.'Y?Hgn4on³`ӀWBV9qB>VC!ƽ˾D0:;y[&gݩoǫuPa,FfLt(Xg+(d#{;p ƊY0( {X032}!NN+Qa,%潼!jx~^T"4dERkdcJ&׌`펽;kY8b2ssGQv ?|ˣ`Y]Qu.:3. '" 끌Ҩa:s^0ڠ1@yU-XŘ20S8t&Qql 5@[;#V{`d5Qc tϣjUir.- -mٌ1PkEx/< cgp`M+DX/c$ݢ3 L5 ,ZTsMM/mh]lA-(X田Po:cjAds17"dz*cc|`"dS=pDb5QC^KDJBGVX !U$qIֻP0Cd}~\(6:xY61Gjjv[n*DžfGi{3(]|%'ꋢӧג6ޘP%c2VĄSىu&GCg?]Suڼ6C{XvV XTK­4];@չE0qIԐltƆ\H %wI(H5uH:KpRP-*0֗8ٞI`"#qX~g~1/=(ʠARґ1H9qƐ~./zy1$b^#*g^MN ƕ !(ѳtR<X珮d⌞ks} RcpP~߽$8>OG0DOwBܺ(iz԰7R&QrQRȣ!:(bAqS UT/=cL,5[ E_u4ۄX\xRhLJ_d9tj Qΰ|>$5=70m>F%\WL KE"ۙlwHѧz9gW4("@) m~˯͍=Zw}} l,30 Ķ({= Ժ:-d*`ekoT mt TUlu<`K+N̺IdSAͨ V3gz}!( AS(Ar 1Z@:{M!Y1콎v^0 "VB>5Srf tXM|Lo1Յ]/.}o]3c{{6m6m6mO-ಋkh?;wT}jVc3 pxXv}}yƴM۴M۴M?ö߷c"6Zh$BB# ؑi1 `mh~^U$*-Dy[Ij67Q&e㮆59fCF`9|"HyrljqS &U{9-lj<%ZR9ؔ]HBW `(&@qDZ*5YP3 $&: Nk֖&T,tǞiiigVWm𶎷]݂ zU_ 4[FsHS$ X9CVt''V Twm`m9+#Pa1+}'{M:ɽ̙j:p:s׬͞18,̌qJ#*Ex0N)5е/SME*Qj$"p.FHS:|(ѨMڄtal4#fQ\J3L(L%&&D ]d.rX`Sw#zڦmڦmڦiퟻ/]0p#{UJEna*N2zuw""6$T^ӃKmD-ܧxZ{dt+3KQ$rV3L;y!%~U!Vbz276cm*捖<4fLGJ? ] gZ`UJ;B}="&zV7e`xVYG 95^ŭjXY!=/>rɱN6qf[O۴M۴M۴3mD;{8\kiCDMg!7c-sY߲Rà}Ge %jִ2H5w6 lG328&y6A[xfOJ .x:׉QŘՌkFs" C*Ufljm}q<ɏU&°20s˽lqtFT1T+?s2x meYeDɦKtiiii9$B(΀n=S BkoaP5>Ɂ~EA'Fj&n_ (V5hw1W C鸥i"&+0l3 5݅ݵeo (yoM`h.)$dHfB])0"/K3 Pb8MNow}w>m6m6m6me(@A3'q0^̆jJX0"P-cق"uA`f2 Ժ=> LjA>DM}khʷi q!31`7"$܃4C4h2#cSWQ*0aQ@jE\=Rb}]DNUᦏ<ԷМ(i+#ѫF[P)}s{uYL=N۴M۴M۴M?c&&mzNltFc:Q0ߏki#4#5 ds>C:Mg` J A~1ҒAk\Y`ňF,xRKcu޵6pM5vJzTPlkdpFPdjHnHhvi=2)%|K!q &0;!Rxns(wXsN8YfS!_´IlIFC /3%u\j>-lPj ,ؽeـ(ak+ҘHջ2we?I띎NĊy׉c*k 5/hx>A|",Ct 'n&(;29 +1&}j|U(ӑuDi k+7+m}:hvd Qkf hd[6m6m6m@·adA-< 8# BىYtN,G14繳!cᒀ DF1&S[RXI1~1g(~&wdϊ{ydƴ8 c;h4׺6Ѡ:9ha1&ۓGMjrB}65Y:8ScwtP 1)ȱA)ּY΀ FPZ-9D)/vߏz y>ru?vwgP?J4{)d:׍3{^]MԓG'G5Ws3X? <{q? `wK2m6m6m_`P{۩k6Bw1 S) m]oK aj%HVf o皝u}B?ˢ8"2Dj,ގ1n1%. K^f2"qeI݅K}5 RI1D4·meW1/:`ؤJ,XX҇+$\H"FS$2PU~yr$v啫| xӇm7=O׍dX‘gGw"~=~2OY.ĉlf0W=2}?;z.Zwx~ߊ{lanN}Χ^Ow-|{;⻮^k7{/}癦mڦmڦK,H9Zl2zuבt6ќ$Ν;5snsl1[rXdsJ(YNU5$iBnFo?"*?\@;|m4[r I[k Gݺ\~Vd?D_MXjԳD<%M㠪1D-P:ʚZm ~o3wΝ`l8=I@_T>*`D/hģ-ޏ=ΗCgg:owOb ~hh܂3|%;qᏼs|77q\od!8vz ?{omU~ss{jP}E#pGo v\6E첫I9q2TʕNbưQո- PmWsW=5_o.| ?x ne\x6zR5])|ҿ /y w]Hu2'Aq "0?~6gx&^~9p7¾|,7 _Sx3\~_s듾ofͿ3ON|ʅxO|ίß=+pze,cOA!1i)>9n{ns7w3! cUP3z.eEs[Ep$j(]D~]ҪȥJC6zXTsV cIG7'D6נs\GK5S;2UD "@|"hqê4)Ì:5}.Y dB6:6rpkln *]VQF cF Sx-hi￰w΁)|P_"d̂z0ӓ:TNMӸ|ذd;p|]/pן3ǧvu=É| /9=ns pm9Vwv {LX2'UFt4]P/w"!' 43Á d(vbClbրZp.V!:xZ uJR64՛Atw#6..q  8ZMNj^ X{FxT*DnB)rh`xvj]`⍁f{۶'jnX`imkԼ׹k~@{2@v `D25'ƾpao3FS5Y0 ^f^wUx){.~>y]ǻ?[-f|;߄7֏}~=xՅ7se<}ѿM8벟/;p7.Kr7w?\Bq.L帏iX2$(>M"zD/ω`@eJOmFG(ؗ1moQs`IJMlR GJ6pC5ʄ(TRһA3WxdqLc?~,z@dý#iAh!oՓA&S :񗠸h]P/'9AҼJ43WEcPT x(^$us; bV#hwl7\>r‹_t:ӸGM8GKo}{5ė}^t/Jg9t9w>]+n+pg#jw ޓqSvqm}ݼo'o7zz ^Ɨߋ}Cwp^^|N {C8,\xW܌r|CiX2]/u7J7[vݐ6(` Yu(4mf@"zNHJâR+ق!yX(c!1M1StkoTވ,6T09#,SQ&E? %ǐ-hH53'ڙ}^#`\`ww!:f[?$]ɴJDԲ/tϘz(`Nv蟛^_&5؍l6Pwd4@}F2AH!ͷ?nn__Z͸?ˮ}hkC 3SW-g _Vt쩯ϻL:pïgD ?}Xȃ+wfY+~R\k?{qcxCߏ~VG=%\q{o|Ǵe,cxb|n Sٓ-є$;t+!x&Yx#ҐRTě5WМBkc@<pk#*h^K] JWO @)&s.؋~0?c+n s 8wrSj/ùDo&!S ԓ1}c3)S;,$؜IDf66Ȗ u4>z~81n4'8[Cku7}~T]+(S0rsDDx˿O[v~-X{ ~ߔy%x ?mr <2S#T׌| 0aBVas ,HL*ZEGHjll([yiVk`EbD>:$cnĥڳ+\Tvs_W]`2{CY2%sV:eAonA/O&Cz[b&JHq鸃<@h=Ƈc_qpgr=0N=Y;܏<[&X2~x0k7U{Z)&S{mo[ {gkZ((¸O1K=c+z\Lk(g}쟆 |JYy7`"Hk*[)O64Kj8ZU#d3VCU#Y3եgkW/}X2e,0[ 1zhMvY/$ fiظsn®0┶yzb?D_ [ރ>/#ǂ(΅4U M^ K9(L&NF@'G|K (ᣄe&|_5A鄱4c(R\{29`b+seDm sCgl{.ְg? Ǥm5f1sk"3=/~ut~gK_ յxkpstfg_p^ړ|?<]e,c[ *aI .{C@@<а$[N)SHkx42+ep JS }W݉y=+T[Haȥ*6BSuOKb^z9L[0Ƣ ša.I#W3zRJW}-+ywySQ=MDڭr^ *F]91s( z4 ,%#swXSP"l\H]5t"c.F*Gb^6 9MLbH'jF'e Q5FS{1:SEbo6&Ů(p7k9~ݓE޴t58= \SHNm{~?)dD^?/9;;g.c-/)ә8畯ǷWOŹ'J|zOۏ=7~sn{L{ڹvV{肜O8g_s' ~/>yp]2ezU[^Kzɴ4ۙT̬S̲;E4tUQM \YqTe 5= KZ㿺ڣK }H =&8@"$P1U5RT*[ΒQk gU4  1ch# F嬍èbTKh$8xR10̇fI (s5t0m(,!4aZe+w<>%=>qp+^xaNĉ6Ƨ.}?w 7z~ g>Yo~r'bvՉ>gyg9e,c>l9򍨁?ǩD>+kOD9A>ʾ u JNbZ4>"no i>xB`ip7$BsjĦ=L*i7eݺX@y{9+k}@!Ұs;%"H"g *ܯO$N ?ވl?(Vk8O.&G rYhN`g^JXbw4\>$ u{g~ .ۖ\C@ }Iw]/^H˶\'w{Q_7M=N9}'e,c(ړ"E&3Y*K>u(u0GI,{ٔ)P: 4D#2dyЎi)2d)(s6S&s$\Xq3 )^ % !%r͙xংҳUH {Gɠ^18y0JBF|;Ja T-Reqpι \ZcH=6<|8N r{zlg{q<`T<)XTe,cU,S{[$*1ej NTw%hf9O[) (*~Ugg0Xƥb"l@ Ҏh.4!2jIuirVRփ4r`\4`uc1N.YK5u4ƬF]PӇAXtAAG8YD)'FR#9_  &㸶I|G-!`4+l/f) G41P< |[vDY^{鑻p-ö:mo{ZضoGaͿ۬F(:ps&|ʏq\tg? sN> ">06\w݇q5a߾5~GO{,Oe,cXFEbY騎^ʞ IDATLI%eP!P9fB9PߡĜG6 %jZ!'C68vښ ^zdv{X&!R@ Y]zٞ$3k(bu|YO@z'D>Jj6ϵV2s!$i|VbNuɅՋP\bQR"5趷t^ȶ>賹Յ\p^sXQ~oGwT[;?a?v !蹱;p.9}\0 xl>w]p5Ww]w=z{p"|p]_X22qi8+6J3[!Us{pszE5bП*'8 ;Ic9806<&!X Q+#=m@|H1 ՙ`)[ L1 9A5TX :U{8 rmQ|3zb" =6W kN՜&m@]7m_1Ҋf5^ 8ρ^LG6Me$UfL 4KͿ>Nݹ}/f֫p=“|y3##W|^7#;g73G]uߓqm'~< yND:\#n9'|3#򦓗'2e,+<5ۘ+j31#KlFή߶`36qXXP"=\`v03O\#l{i 9d4ЎDdJ@ t>“e;6s45 1'Z9bXׅk88 `\"LN:+ZIu "7(PKr5ȝ:/t^Cq Vܹ,q]=hˋyqڋÙs^L2qXpl<s `(oz-y|c>u. Gǡ—c;n/^R);[А|Jtr;QQ MHMnhyw]WG۷2MS>z\P*GCxkjDh/cc1'SrXiI.I W|3Es\Z|I~ "nezs%t_ݱ~+n܇cGs~a|5~^2e,SkY{L"pAk$|n6MMlѝZUK5QvmC]sbQbXGHVR:vP|8-DK66r! yv*N@{\[όig^, s6OM '"7J_b#zͲ2iTUU@ʆL"cDYcL9΀ ʲL)KV&{~ple[T~-_ŔդňPJr^9x#+!*e<}sp=\,cX2p h!0DB1%S$Em_{ arB͙Uƈf^\л0dJIM9\HYguRTi'Wxٹ`K,إG.9hT5nMk5\S4ʂdn/J-GL?aH'Vѥ)jxi,tnWLIi_[WQ_` ޳ZU"#Tx |_PUMUgzs@"s0BDw!j *aε: $F2e,c_;u R$5$GDB|]IFMJ6:]aNF~YH(8"ίļg8X H pǣ:6YQT'LWQV)*L|ՠ=QK_2 c{Pb'kym%%V[ X2e,kpr0 eV$m#xFIl\}fc Xu[걑M>Br8Ijr}0sQ&MǕdNi7Hq#r4&L'R)n%1}е*czAh:9UoY(bv}DzXXn݇v9:TmKа}GU(1Q!!jh*T5[ 쁲ZBCr,cX258AmNJpbz)bFka3<ӕi>(7DEyRe[`;T#NTpl&TC*#m,ԅ!XkO<9JzrÀE*LEU#q;."*)U0u<Yn%ijQhS;yt"䣋lE(^76wԗџT+}eЗ :}gU/φڦ)SjXj2e,c(ߵgW%"n211jظPd2i 49xW$՗x S+>fV p_g8cs;)V_r\5 QK+(:57ӊR["3I;f3y-G2=$#H+(JQB @@Ιso!hf'8 z;%p8M)oGz(F*lTnhJt/J Aly}J[FѼcC'08/cX2'8qR4Mw Sap'(kRkQYKbn"@(fxNKu{CEwB. *8A (9ę35 EŅPGFVo[1MUGkԴK)`c*Kso_ b<^+Kيx"D㘴V-x}@/2E [}Al@}A=^n$zH.ATҠH`G 9̙n"y-MD׿ }&|r^2e, 6xy@U 4znԶrQ݂^*1)\5k1pf rTD(H/~Wu+n'iYJ$kzc·xx^}dGXDƢ{\@$3c^f;UIw^w$xY񭷀`5 8Dk[:id,XsJVKiCPs}Qs&x )Vͼtˈ#82QiMnVwO_q)'a߾}KO2e,cšCq?8oa8X5P (zbcUSK4N(0~`-=Wm> kqK02pheCD FJ(wbQVq1sOqM3=A `acƆ=L|A`-yjebF9V)wlQtBhk##+5< hlلDۉBnlO|2 r\pEǣUh7ӳf̜8f{p@շ -mGڗ_. gWnG>їe,cxpY.>rEXM6JÔ<$do,U8*z:Yn'P$#Vc4x)^.{/kl"h)`k^;}WCqH06OmKQTwDR5%Qz[qU z5kIG?Kh .^;<^mT݅[wΩ#䣡Csѫ4lY' kfi?F`=='T   ܀n6^jO{ l͢R(WlΜ@}u,<}Zmו23[]Gc̳H"k~|we96xՓNTjlcwNuv=Ϛ|*7<C[uY#p [*JvI}ۛR3Xgnmֵ}遊22z=zs=ws2g'  _} ѣsE#2թ7^qgO"fؼ+.ҔFxb"i#^lTLs$i2VmbP5Ug^~sv\z jd}ЛsUgRSAW1~dsl'iZ޺OkJD^7Nށ hdvQ7sanV+V8=m\?4= /BnC5A65tA9 $?xXQe,uzO}lFBsܘ0VsLx^5„ K+oS ؃% iTLVyX#EMMFKG]6&N0+Q_}+PupSeT hez^y=6ko C)/G{L^:JMCms'1_#+w<!<4ܹ%И QGW#D!/a|6i`[MZqzusͤ Ad3jO5@ r0;rMoE S;] VNjE=YHu0\R#ta{1T26gK+̶s_; ܄.Uq\@I5T f*KV+S)d.' @}&2H`s;Qio^ dN3/[R@fMAs.)ZjT*5q{~f4Iqyߤ *ؘ"!,潄D|476f{#Us2< t6sn&QMA)L -.%Zz3(ayU24uu>\U66X@Gz??P{هYZg2s:3 >%>,l6eK@gcFu|Mhm {"5J44%AƋIR,(C~&3?4ٮ D2ěl~!iVW~=)8``6ms 6x^Jp!_˞J]'L"lI f3}Gy!F"=D6SZ; l 6kk[KpZ,8i5&B%o5rIjmѼ}N:/TT9UZqDit,L!hXkkG>)CK჌xm&sTӮemy"Y`O{PSQ3Vɰ D-ٜ)q!๸굓GxcPlAFCoRlrDȺ|lEʹDA',M0׻v5{U9& @LdƫcOCi?/M[43G'::ѳ Cܘ;94mHp`UUĒyi8U3)D(=+6#< u̘^XOa9Go_H1 @)U{&:M9e) \j/߫\́p䐧<=M<{UQ\T ۄm}+lpmk9UztssLaou=A~~ɠZ=%cs_Cd. V`>np IDATWOD.z)&VH1h(xI\F[(Դ )ηk|2&x[l򁉢Y|niwaJ-u؅?CE5̃qFY[jJeCzSvDZqV4lmU=%ۏ6C.2"P3Tz'tVVytuݰ6ǒNe9L(>i&nG..d({ED><e#=MR :֖v5UU_hJ{S )݀wF`&; 1}ePkR>&[S&i(^C6(|:6K J{8FTDohs4ܧ'i yM^bS݈µGY٨)oۃRT*5.5~ JIB MbkΩsR#P=:UO_̿2Jy@d@aD M'F&@nH0 \F:U0սғ#؊c21Vvb`bLєhgyr3ׇj.8&%P}(+ݞV5Q_m.gzT %G 0%8@U;=SNݠAns鹯2ßqgbW4J:C 2+`F#-T#@zZUpU?:rv3xg@C/Gč(r-flf (x(Jc8ʢY)Dd( n6IQ9ܐ:KAyQm𲟅 MљS';> ɠoxzMru<IT)+nzșm"ME0!f+VWEhVK nQdeKTy`t+_&U"d%{Lk&xN`-6T;I ~sӶ2b7$XOTe`liX1U!V'DnDOJ \'DŞR/ٜFUQ窦Y|]/ K%5i2%\U@!ZWOi]Ef~}nBo^nksxaE&nFW_3wCT,He/*sTJ>GH4\bʮGV͸zdBU!]C~dV\g'de3oaM{5h3zGzshl_Ǜ5Ё:ZveAsߘwχg}Խ5'}VyT YG.U&XKR"ɨ[!|6ӚQ|6٤E9(ys߈E7 SPfRP{(5sVî\PBfLU/ln6u-&-xeOu}yXj.\ Gоb.h^<]`1>YJPd ׳&3nVPCqm*rSxK!G::gIR-'#bJi"ju0MVi'V1d4( ;qAK#^_gb2~TᖾR7v$'%lss.4`s^F#uY ) jK'Q½18"&@έۋr˔ƑBq,af۷z]jN*zV.W,(hŵ@6wk߿?oJ9^VžM+Jߗ+ե4=_&rW N˫ǫ)3*ACy >:'DK`ٛ})_;yq(w3wd(Fh1@p=/Qjṯ+q1'@@ d*I-Tryp7uVhP9WQ:۞Ti.RҜ}7jJ,N)o5sңIY2Wԭ1ңLf `PEW&GV;/Sz>aZctpOTbL mu} beS@ kP]jzV2-'#pW'3?BA*&-/*rcTQ79m2jY;dnJefNeX4)u+x'&06Wfk :~Srx{fUN`(M5w,&AWie^؏VIJ]:Dз%mmeW-&>'U+hW{ƈMyE-Uy:mSsk\ӌgwm4Hv@ .]tF٫GQJXGy飯Vj252vhŵ Q \ͱRe .U4)#ڬl~ˠRo3 W$k,KH:q2g $]sQj% 7sjogH@4ۯH8ib#%\_#V$j=6a%m6w.xHѦL5P+y|p)I' eZE諹\E*ش$u+0snʀC!Q샂 %w7+[QĹ)d!1`@t$/ucYB{ȇ`K5m9?5p7eCHAk*+mOM~H34A 2|HTfOl|clCz]?&t24]c 8lz fTluQ]%a-eul =HKed~< -W~ ݩ̋~vAaBMp!_4ͅZK(@b9 ?'YL2N/<qƍ~ JκjcVE6x< M 9nkϊjVnIW۷7l.Xs4m;>mtIj#JrK,J-XeAEaGu_a d|`{h Jĺs^&P&ʼ`c¤1 RIek"BVik9ֹO=_C"lFCf*se[*j8~g{cX@iK* w3]*jT5tK_b1 )B/\jhHi*zD夒sTHΓ&٦J5iʊ(FP0Źp9*)46rlw* $44D PQ4 І&DKhZ ۔aNi+QׇDetzeXB/(w ۵"Rr~M\swt$H7Yj_? 7WPlZSҤJ|#9HWFq*UkϽ?ȚԔt^vΆI5]\ӼxqP zDIb(m6lFY'-n93MN&%ϲ=5mMup[Ra>nqY 8=3G\y¤wuSJ=a6}7I 46SxWJ= WjqMf*{R]7cBA2$a` P:0jխ5G^u̞Si [7K6hصS^eM1ƞV(ҹ&:6+."Yas3uʂKnu] MjSA$*F1McZMQ&4&zcշiA)Le}0>Ln?MSٴ^{蚳י:69UH~~{iGw *08dT[pz^c~F~S5a-UN>6fQOj>VnI-}YmKл[[iIk(ͯꀪʠRAԗ |v22fUF4J7ȑ,k:' H:ں*Fх9Z0T+߿}l[7jFAlXT">@lkS_@AջԨ\RPYe42sp|~f-W3~J)S` MF\Ic5#Kz$ϘMe(hyoUo\q%}wn'yশI7`"ٖ"} H{*(PvkI %pD@bXk\FD`2EJs5bC‰Ub漸69y+]yMi[2+%1(JCbPV䒲SMJ^c&$([2ۮՁ_)` T ŪRtXjU,9 Qp}JSj( 2Y-idGJ5uq^B<;JɵpuÕ$ȭEQ˃ulgqޔn0o]mUUfn2uVld3 J6ڄ-q١OJEٽh7 ?aL`c%gL`Pܨ*:@Q+Da=,D]G\[V,zg6Sx^=D 9,,Fj6f3km@HUak!Jw<2T+)4y fL36.T<d ε6%zy}:n,DDCZVOqܪ2׳ 5W{oJ(Igb$gqM:y89 ꑲEBKEdPd*RB+zڊy^b 푝]Ϩ0zJ8T,0.*Y*/ݎ=Ge_,pUسC~hp?N;ArqB( و XոZy?b%U FImM`)]6E5(ɷ%|<1CDqirW3fDqM5h[z4*N^.:K3 $/t^6R(;P2 j#Zzd|My$7S8@Ђ?|,ef:5۬cb]ñ_~ͺ24KFN#W؞ch^ךD׊mOl1}_V~rzlvRn ^*&kS⦾:N( +=qnf X۟5 ̻NT~qJf~[!J_{^ī=>ӃНMT1 ͮٷI'}[xEvvJ5M&4TxB%s^ |-݊Uh% ^Uݰ_3&BSˉ>6shfε hhmPTrt(C;nPKW['RHCVSHoOˆ|d`sIlƿG:hғd>(v] DP֟C)^{v|L&As@.ӶV'apçД)I@jȒ!3xh f+2Ѽեr$mO u{ML3^lhV)\Zu^38ALD k%QB3Nwm^}o+UH*+'4OCxmQ<i@Acxhh۔dw>6,mիIX*77RԐnfb>A U ~g1:92t4يdyMy&0[:O}K l%URzJdl ЫVIrSbV5tš6EKyV7mfI6JE,oNnJIWn¹UIu)z=`}OGćH>67 OiN#!a9(L֐gFq:*d򞶛8_xxM$RvM @h]וBu%RmLAL礬i}ki-HArZk9[ao/REJ)kOWc-+ςJT?dz`+/T2gޞuHASJfq"IJD`Q'_nⲂuVPRw&9xn#$R|g;EfC|C#`ZWZ9`=9F84{"nTYDR̓'WSYA͊\C= ^w( =@RhKOx;CYvXVאKX2?09Mx+DǶu6W5jO :%Gee2]=zPyџLlV8hmvܻ #ymlV-6ٹ!H)J/+JTA/=1Ev_tq-w[GӚR6=4=;Utӟcb*%O@IkEQT.rޯW 2* MΨlTQkeSFƨQTa%LKhTRUUmJ񒨌mX8-mNRuVe% pޞs h0W`]s&OYuɁ {Bc![zRf}(M^wV#v%WVـVX;;;DϮAg̨H֔l ,igg'Asb7D]em>X{ ]l&:u4mM;Z*$ ^4 IDAT?EXgP49]l`l -6Leqɢv{F}7,ʆҤk:~.._{Gv1Ԛ]2e,cX+9S.^31EZՔ@K6ФȪIn:[PTmvsOjZ@lnVC诠슔rsk|i4M! DYK]$ ?n&:9L6gSb1jR"ӊ@TtTD~^f1SœL*A!̸} yvVq2e,cXc:3{kx):A:TVElvbVB":*=q\ U=CT=b*0c ݶT*co-U#% +`IϏ~ E k 0dҿ%eD*D8M3=Bcn)E'%\!3TxE>UB1O"]vv^{2e,cX_pagg~: Wr~vV2Z"D}T\ 4O.9ﱻ@1ub=3֥Zpd`~"s5>aeS|YQ01۪\ M!P Y {LbaLϴY cν$wGtort?#{XV8vlw ,cX2e%=Yw3߃>t#0-I< Є$J[?HoʠC {O74kzKFF;m_HZqoq-*+1B쓩F H'!Ic$zA+ F- Q[/03&5x8)tfkؓfd?f-w?OrX2e,c*=VKZȝbJjuI=cطA|p΢BZ6Mv  jӵ׬a73koo^I5Ԍ7Ȑy]= 22dPAQ(3Yl35K)VP$Y.XV(|w. !Q0c"GvB$e,cX2Uk?(䳧;U RԴpڻ\9UG1kRD&쒶T,R( Zbk*HT!1{R|H`Hqb6{uUqPg|0 E2e,cXhÑ#رݠ `5ߏ}vcaM1>3׊E!X ψ_HLqԮUlXRAXڜ[)Mt?gLo# ׽6[PPR#{ԱU : չY Fô "5fI3+w];c{ڔVXs >ϒJ`:X2Gvql18eFձ?p9~9l8xp~5AaX ߊ&s*=/u;8Irϩٙl`%- &0pQ0aBpUDQ{pEAd%lf:8TY6h|f9Oߞ388:GIO`7Yf1v >)m!Jnx^qv30ip\}!3 DeLJ_ KXSY4 5$+i[S= 4O"ap-J:bD&pg7VcTKH*ʒ`^+)oUL'gܗjB~8LЂxoCVFd'["(b"Xi4TaD$R ȀYuS]K"$,W9j#J"Q5JgAnߊKwv23Dm껗+~q0KӷzVE!]BMoށu2,9Q5&/%]RkCEQG&Mۆ^RL{4f2z=T ;\XGy*䩝OUNٲ[ȍY;AcuVQڮmUlegD*&pN hLxy$D h5vxelE +Yh }f|cg ~ε[U򴁐y)\MA'^U&mUZkTl2#}/ZV%ݿ'Pϵ_J @=g I:EK 'ܵ'U$~{{BM|!$>&2^7ul,fyPsmUFxqg1:v"(bF(&]Y>q|ߟݶ } xk hSƔ?ق >^}jJcx'g;nޅ\ 5ߞc9pLG9;1NO?wOj*FيN9x\C׈;6c\U*2u*^p3KI㢷oMM}Ze#V1<B6%*{ȶn}C|G>l̒/ %y00g:#'ฏ'~t?}Fw䡛f5jޛ>s(#ݸE~""ƎCָ͸c$nÎTvjC CO;mJ/7̬DUↅQKX+P RRXK!0R]/y%U|RFnȴ^啩,mv>T:0AI):U1u%l7/N7[q`9 alHzLʖͅ1$oCGJ* IʖL#Ǵ k8g5dzZ@EhX(DǶt;t7|)U dJۭ QDE.,o] w?{6y⿖8讝DOϡ4j|>pe@.GǾnv4F?㷢Jշ6:GJJln?ϕ/-:h{xK'.95y,{ :笣'/?6O߅}܋+}3 ^1Ѷ{Ѹ6ZDJiJВCT.%/k<QGת9 Kϗ|9C׫B2Nx<р5Ah80F[p-%m"Rhժ%{ b&4V69m֫#Bojxsc$8_.^UJk!r^IU&#*er=y)\!rH}[YTeav#ӔWSCw ?-=#+GjHGRz)\ 4R𠛐{EQU}I>(%hoP {5k9zɌԊ2۽3q̎U_T2-ě*e#ƏMXڑWVѻLkT'5=$^^|iz݅P1fiL+ ؎]sޗlx ;ݭUHK6&0GeS;pN v4y, f`m!: ثEBJIsᇭr+{{P0x>y.r[RXVPo}$_}aΝ<]G3oΰrRB#\˻\@bIRkE ~T {y>G)r FXU_;YFn  Y H+$. n*F Ku} #IV)Ԑ.Y !xOy ڒdbO D #U{B)U@!{47&S[tvHe9ް϶ LB&Ix(nkx +MKk |^,4abp".e, xE7QYh &M͕/^BG{[ 'vlkP1s4TNn+jbԀ%`4 ѼQn((TiJ9Taa9z=&DxjfZ|(?T 0 s*WJZͩY@h'Kd_h-dXNk9ބʂIc0 G %aRhe5~mE?p͕VC%|Hwcաn.~&}O&-SީKa+Riґ*GEc-!嗯{W8fOP^< ʈ6,~o?x'ڬjVj:M(w)xѿCwaN:+2FƛΚ_EQĚG[ɛ)]0w| Ho[X=_2{ǐ(UςBON/s]H =?T?0[eR+4!2=^浾e#Ս[UAD|9+"Q LzԖu TA'kgg+Eۿco}kn^Nў1$tUYeFiT\ EBkCLfQ)+W.sĈ{C7?c8c('z۹x>{dAXHA&FHiʩ*\V6" K; !WGء \J ́2ndYmq> SnȩgSeE]vn~;S}xW22v _;7 diÑۧNc4yz'd/5NƶK% TNʂ xws("("6PJ18Te̘lؖ:e˖bE#F l񆆪1]|8\?[;V9֚}HkM0R svcL=7vW-i\4R%{c삻69X& QuMAm+Of\˜@q[!,x-^'W 6IS+2pZ0\+AmM$Z7Vi36HD7d8*[rK[*Ǭ|ж5KwRUDEQDElJ!EG{Aɮl(fpp~thvxCέՀ{6.* * Hx-g۲grblR?AR0_Ű"qDTwtRP.*EQDEQD'2u|ܵF7| 2rywu&i+  8\iJJj: ׫;XG*F<4 V֫Zm]dhH}= #A#ueUuJ'H}="=F/sR~a#h :\MJ$ yMRd?@ћݮt'n+ \ZH,:k{š'r`&0/[E!y)GEQDEQ80X<8s: DA k 4@qg&h7ziH"~RZ@ie˵Hh'dS8V ehtt$qyܵss !Ԯ2 m{lhb؁5+n5 GrT*}܆vqUFd^!IԠiYhh;` n+V#Ɓ|Zօ܏M(uR7 %+ƩSRmW)pQDEQDEހC,h&y1B1Ə$ن(wZmC^~7%=q,0y#A I$jAJA.{5h0L! 1j]x|ۖT 2y~|_rDQ&IJrkZ -=Ԫu* ƤW~Y^7?v!zjWqҳqCWa+ ZFm%mq8^cgSDWYo(SH6ؙyyilSy "5a,9)_2;A(/ڤi0̶Z%ix:|4`C}煅xXCw}w}Bj9]gmopa 2(,6^ORii :nt߫!ue4Κԉ3eve?_ڿo7-8` g_1v LgvD@W_°BmJX.% ieQ l^ǔKe G.Ey;0 VWBDu"DB\Ӥo'ʑx&a;s_b&]G$>\[Sc3JFl.rm2}q&gb{{]%Dgn~W=S< >6XeGg!y`QͯXs$@pO`2P_lƞ^e7s Y¼W_ӕd27(C~=s1{7m8?_n}):QmޥsysDŌS.۟`~Q%{I >g [\~qY3Dmhv?nXbD g3-0Gf Z܅#yXO3oj vgMPڃ>ZskNcƝ`~j!>?|ImuL2C.z{kgQ-k{]~x^[Biχ/tpg!ZtɝWuqaÓs:آ!7n.ee5"䥇3Bm&=LG'or(DOu;'j D<} _}xxN>ӵS-hN!~q#<;w)+Q஫©;\s=~,qwI |ey=JjIW4zjAc4' 6#{p%h; ;' >zzH5|%x~L] ;ֻ6b%{Fģ5C& h\j.m|tM#3b8kl;zoƞ_;QNyA1[[qWTS'ö́XX0n^t=VtoA\oͬ룚Y_D۳S|ǸAIa{E~0gDyw@`QOٕc?v)Go3|+V3Oa38 9c#ܭ|ͯϚƘ0vtl[Y VC^lco q>D,[:aW}A4yg$$XK*% ӚfH#Ff1:tr IjQsKZ*;cV c :-VL RF24XsrrND7| ͍SDi V"T^IhM2aԠTq0qvõI29MƖ/iʲS47y UOH>2I~ \,^^v80lԁ =iݰ[i# c@t||iz:>(迗 ;/\qzؘB IDATZ8)-Fg WxEL%y|uЏ} K$_b@q=4>s_] iic,MHˆgC26`O}%םͻ.tI @}7w)M7ݷgm Ѷ/&i?U^z\Dsm6=Dm/XH_fh$4`/CN6Z"eþg 5JL?HzKͲ~L&NzΙ)gP}V^;kYh 'pa#\0Zʁ )~B,׾N=esϦQ4(Qʠ`K%aP!cǹ"6((cpҷ0#|{RV0WH967:I&R(\&ZaFP&JV~2nr;'` H:#nHNe',r`dGEI{3:Ծ*?%U!v;erAbIp\VR$!™+[}Oܔ/=+9ɴP7&.4m^eWs"~%=M-﹑y ?nf9I\ 7ESeӏ14e][.SJgNYgUw䘷lCp7TGvS}{RtcǭSɩ_'S.vx)H0#БǶ!K $B.zyM\s9zd_?K c:iSdr/olnrF`OTsom>6uPwNUfNz1yLЉXʂ-ry`|gԁ@HJCjCT*+ *PZ%!Q#d ,TcsG#Cw@b۩u)N$@KbY7t+H rҔ_y tId R0F$+aH5~QƺBiM\A D:BHIo U]<HP + IU 0RX YbʨQe#d8I٬o#CH{s=*IJ5t//-L{oh8m(3XWÔ-[IU0onxpçƋ`w#> 9?4gcư֣{?33c@u7'λyi`ց̽݃xbRoOV'c__?)%Ǐg=JR+Wl2/^L\|% 0!^1s4zcճy'Ǘvjc8jR@Li]| |hT亙 =??}/ۗ'^~O&j>N~hM)R1a5.!}`v'8t9@|cΫT*h- V~Wk(MɌA8;EqDD J qnlx@64e4h/Wx0z#@>Vc ~jK7},^ŋS' >nʣe}=mk'*r3xE2c6] >O:d1sF;`OsyW￶QZ{F۵φfʡm9RPU6k $ҺAZJSl-U";1WIFݷjPJz_mDl,A D$ ^ (J2:q6OscrQdIʸTx(@0Xfbe+G mBxh4>ium՝&f& 2{qFFR['VJh$y-oI޷۟&!n{ z1Ǚ;]y9 of-6C1`@frC+x/s\,x쉼YnmJtp?Si+{YAĄpC]+5 '0yz>~\ܜwu275bPߍjLUstrx|{MٜwMۚ㷚1#[VƍSV 1kO۔vOn]N9o;D^\Ln|䊿cwrGve3ޘ 'LU_e;Vpݬj7g\;lЛAc7rX^$ڂ)aHxZiJA8 bcdqeRdd晡)!( 5 B[Mњd(FkK0 %jPJ FْߵXCTNLz1hwkTJ#)ժݷQBE5Ό[L"ҤR(@ ǹ։zH(2kegPVK'~-Ta2qȐ g<0[9s0TXa A%aٯNy|"qt|R#ì/|GNv`Ipw8gO֣3H lzk;Ս')¨@Sϴcx&Z;)+n>:#۷oo_EvؕmCϿ[Cνa )7^/8m L;δסG77c\!~/A/[rx=_pGЋ3gBeH޸f r|mo ijx9~ u;ZԹGq땟GgԆ$ӺXqdzAE+1 1]ی;͍ɷۋswߙn\y!\8nI[J~{^'h̀ ( ڔ%6赓.w^l=#t99z\7kU)_>x(q8g|h85+8}nTOѫ#=fgw߸5v6٠!ib5"׆"RhsNZ "9zQ01xl4 C]+iJ桂dA]JIl4VHPnZ8JaJ~J*c^52QG $AuĘD78m Yފk$EQ*F Cbա!q ũ˸n7*4 ԰nݍCX\h [q_ȁ ߒդJBHHGp2v8`"t\2KZ-pBwgࡕpLI'} ~_zk; G .ï..eX=7u?y`QwՃ]ɲp)},ǭ_'!l}^}-7鹅~!*wKcን,L>WoNo?/?=E/#p߃܂Wy1vy89ÿ_Ђn.=vSU۸WdNs,Y4ݽO/\v/ǂ '`ܹ,\{~|Gz;ss~ys糨{ ONk?.# ]} h3'{_fD+%_ \BgOw^y&#Dx饕MݰN6= r$˕zŵyў";79]M W&VUpyIQlmWݳ쒃dALD1s9`z׬ׄb+W@D(avw'leYPy]vfϩs4=Y|=v,_cnXocgޟ`-BmKd1U$ߐh$(X@ #]V @6; !T!J=G2b*M;V9}?a:}0 +eX\71/0 #A@T舁+TN-M| 0±%aV~B\U԰+ty]_wQN⮍3B[ʜ1Iس$ V|C>4.Sᄾ0t+r/Isgè!,gJ!0s5M/oނU3w`Zhz N1z'Nw׎}ݼZ(lފO`+/Bs~{w yBZoщ[QZ_ϤaGtߕjEyL|(<Նv٤g#V?hmjR!m9Bu,gf)$:X=Q>2λGc4KT)T243I L@JֳH=ah:b%0 DIcD"\ONUq#urMF^VГ)1svD`2@sZVS!ҩq"&,ZL#*klJN)^,@7>m`{kacpefrncReYYa oݐDaS6TO+U aHs_o9t~|to׋׏b63|@0:uݭdٕǑqdD}{,Mmmp<'誔Q7hzdn<,O-bu Dn?>*0oe8@` p\b&M",UFA~?+#҉ !,C ]؛*)gbYReǪ*a˨ڄV,ńhV l] `Y'>&`^d+-W5f:::=[U'='"z!F|$ײri1׽]lT9Բ]z~.~s{H3ߖS ]Plؙ6J"T*Ҏ[U"ґ81bDC/HsKGF@OE嘯HJ8^x~+[z $ ! @ۣ@' ūFtD,SXPH,'q![!IR8p/q X#]dP&_ޖǏλ.'w^UDk:F4)zג喍PUrtNasuGYFekᤧJ\ 7oha*(#([9e\Uק8;r9h9alE3)J \#YV(u= FɀUMp!Y:1&u=FYQ=5yyy(۬p% }8 ֳ3m7 ӕLIoeUTUPPLEB"K^IDNYr=ry (ݪq"&K%u `xiX 2P"b/ifCX]a8(E^% B<7-@X )";v *rs*JR "PҰE55:.]0A&Ҡj#2͐V|DxHFXGHaHF"&0QWr!ZAh~zC bl$"qg-H'na'{ƭN 꿪xg2e%I)*-#T1˜ -A3:7d+lF:K͢4 Jt]IUYYY_\! ^C+Z  PhK0%̥ nGi[!LT7h$06F۶xnRte6DAag&A r"lA9-҂]ǂΑqQ*sJh2. RbQF!ϔ>CԨ*⛑GqVyGj95ldY #12le~Rhn?pq֩{R-XlmXgKSa@*EX`PfnLzv&8kFT.~Gڑx9@ $3J|:%+xۡNqݓʹJ˘=a^w(k.{=5ڠDmI3x s'29pT56_~ae̙0g>yXZ|¤╔Oyh_3Xuu [+"m)Gtِ2ҷx^^7X"] |0DiMث$*$ZT:@1 &*`">*'dA 't*q' 4oQ"aY_RaHQiD:.*R:W*pd7xq*3,NLJ#E%MuGS\r[K)r)&c2edd>r4ەH^UX;q s].5 ɓ%Yf,Kє, O^EՓ6M; :4={& u~[˾uI'xqq ӡu>ScN㷹!ҋxQ1Lz]5>rKoM~G @-ecȜk=غ ,:_d(5ei~4~Nh*aɼy4nM_uclIZl;;uj7&Z^ڴgp1WҘykv'5^ιsVm(9>'rq7I_y=,\ҽ12keG1pJfլ<>mF <6NY!;ȹ/1%Un5mwIe,X&hڹ7<v{soem}ם:f i~>eU.>^'Q+wx F6.p6,Aҵ쬾~cP{}m! >FP(j=\fF݇梶 {_ٝ=ⷸ/YY-?5^>jK1 i<)E᎜л|=c)2VOgF}u?e9ݸ;xeYzml#qOs^ dLH k؈B&"U^j*V[jfuK/cfYvVXcp؛7ikF{uzTZ ppG"FiL3wVxIIsNܗKw>ϔ9KX RkX<[|voº~֯ #?OB@˜w͟<ʒ>k˒J! U.ޑl [•[5aR1&Z4LyBI?(q!Ï ZhEB J|"lP+q(0'b ‘(AJl8aZ@TɎlT&'L?\̢*?UdusJk6ȰW ,?<}t#GѸ'?K1f/3rd6ښwiWv}>}Z8^H"Aӝn[[z6$;N~q4MUMsY|ìe淣C=zt,[Yc>6c}Zqr+KK E̟m91yxBY.[UqN~G.aͨX4.qL0!gX&dB͝Х~lVl+5 s oșt ]?6φe֧Fx1J[o-3ƍ쒰fm3G^p/qLV~yL# W)M;&Mo_O&`,~i6gobCfzsʍMYǭ=smHчdmq=:^?;kގamYI\8x6au}~ dfٮEOݼJFw"7T<\`lх~:H8GdU?0uv ܤt}炞? oϭ9܍ьއ !B$rl\я] ֲt\؝#/1.f֝R"Q'$nA>aPDa"j\qOJ}ӧ_!{]0h>v7oMhڦ=#%6έÕLbAGTфm;!` U{s\p0}ӧ}<= l⃜uX]E˯Q8lM }s5 ]f@Ms_ߚm57؃0z1܉~w+N=stN9g߸`̿UNtэnNh ]?o=X+ /]|p4?ZOY|Ό`TLgf݌b&я3䊾g<]+툆i .lNx- lI4u#?r4W׿|!}0m .ܝfcSJIQDMٌ (ϝ-9X^<=R3XaD=ڶo^+8=lg"!.;=hzG]y1!sN{6E-Ծ9-vsϥ;nк~d-!yA<\Q@^F8^I#X E*Ta3%%%~D U!bA`e# z:WXR(p` 4=WaD1'%)Kxi$:Z S!13V6B)cwJSIJ0H eˆNZa)reL(Z̋ >C6he,ZWVѬ[E]mҚP+4 F` vPre\ fʠ2ҤXqҥTV">7_%UEw_ZHI϶=r>|j}fX|%I +<(5dK#g_yCVV䲆O %q a0/|qGPxYΧ7_ Kʕ6)֮*Y'VI&l=9xp&CYYY wDk=AUoxejbҤEhQD1_2=4j9.튛99,~isr=.]w)Oxۜ)y-vܞ"N9Э~eo]'GeaUi 0;pmS:,Rv6w\È[n%i<ټx\lD#?h\sĪ֒AȤ7_$48|8;ѰiBxBRP X6hvӕfM:sGVXE6NFMb9$za9@4AdzjɾA?1e0_Rxlӧ7sn`5z*G=4o"pg* uQAʁV[FF0UTs< 3€ַBX𺌁XY#!/f^ 6;LRA:.G&#  p"&W8k3Dk~ 1RNw3lS`G IDAT?*|?d4&Edә LT)2!Igk42 d&K̄lQŇl ` |W}o˳D? q;-qZpm*t"Ϝ7;wݏsHImɋLZ0l|43yߙ<5u2LygZ܌ݎSnsW 6:?ȑ_YLP.]nH` *}+7H҉-%e,IbUҬ&1g?Dgs65im 炚oC^O*?b3;a?(˗dڰv/(pڴ-0(DG"O'A!GyzqB, |?(M$ vHh.~}Bm,$Td|TCZ!qHDNFh%Pa$h$aizq "Z"_VItfDe2a" ->$+Tq2* 06ӁD#AQQ:Di&A ӿkA6HsUЕXT$U> ~?;&~LN *eZ*!֦:R e{~z4f%?2cvgִkZ~e7TVbҤY툉pУ0OCk!hԸ!ͪH1k|ڵP~r%rv⼻/d[x*/xÜЋ>$͚_Ɉ%Ԡ2߫,] ⸞Gp+a/sV':-9 [rΰJR=>IMK`X;wٵj 6^q:Q]GL@j$Dk*LlH;uW*ƣ>q-澃{pgsXя~XK=7._ZR>2&>z;87?s|B0ẗL kK EEy㖽v;s甑GQQ뚒Mrt.ȧGdc8eBX))<6œ3kVƀȯGA|z{H%H$L"%F%\sI|8nmʀ*t,sD  őR @w]b 2 5FX&l. ٪"[uT% BRcBVcy#u]P. ,RA %$s%0Z้(@P*mKDzYie*w6hdHMzc%w` d}Gem~GòWU{&tZ0S2eQh ^&n+mL_j'H 6˽%}#VSФd2} tl$Xz8Fs\]qpm_ d*ypP̜:ڙ!H֜t윗bmrCpr/sja,[Þ.33ݯʅ'B$mNy/ˑ7\FoY'VX<=԰ !w#ԕWՂkݞLKv@(J֖`hBQ7 ~aZa 揼/=gqmzҳSUMS#"vu]쁨 E>W 6%3۾\ݷ%߽E79y9ۣ\mX>ȌeЄ!٫ [\9;9ccJr9sK0Ѻ]kVV`7a”0oRb.hf*_޵'}ẕ⑙-O: K}s֪0"?a5$$hEMHI&4&?/BCHÁ)*H Rlh v20Xf+hYvڄ #v I ԚP ^,gwT$2PL9.!qFJIy.a#!@qH%} a$0R"g!!A)\/*_AgwUOlD(# xU1OUJncV|D`3 ./RiUu2Cd X+ɦd1TcFGGTdz(|h:nw.1c.ZGW:U"b܊jwDzci87Ji|= <Ϲ{IA8Ͽ\PſN[A1o G&c௄>r}O{Ri߸O3\}XgfVះOQrګSأw26pp'ܮaܸ>&V꨹v=hXE#SM1{lY-/Ɛ##%JUs[ HTȧ _ԸQؔ&ᴤKtCjC4z?|>?~]ܠY #۳u|vm ``_hw(&L+黳m]h 0Ή豍 &N7Щ\oGwz6+ =Wƪ?{tg\$FĀɣ(+P`(1%ZbI%e %C-H:(5iN=~*DAa _>7ƑM!h~5'ФϽtIY1jjΝ5}ЪYUd ZtjwnW4M \>9%[qZc {΁ƕhދs1$T=~,Lj܎8t?%\e/7OySk ))Iphզeuٌ֛9KY*؀>*يӟ~ :IsY0߇Ʊ9 kIcOeBA0y#fM;O7d.|̛ ?:;?<ϳ_'9Wu5kZP(xIz4Mp T=N|J5/h%À \dTƤ ^BG:u=фDZق }Y2eAJ#8C*A)kP[ RȈZ@(\!R!RHR>Rz*$4@: jJLe2°f.e63aJDm ) \GJXc0twbyp ]u]ź:6q!T2NkQH_ObY`!v~̔lr0N"rر;4x+ E{L-N[Ys964V}~2S7a.3^xޕ#nT@Gq'5ۙ7/{YfTސ^y滞SG౯2\]}`σx{d(+L 7?WG]+gIJM &=]Cf'˻VG^8OYa q@ܡζjk_{1k%ɤ_K0G^ڟcPhm:70kb>c+1O+8`FYzvk|m 8)A4>} [Jp֣BX ޚMo>}_ld Zq!=w!⡯2"K&l2 zxwiYeCvaW|o ꃜZԞ'ī_ 'vDmrUA<:l%A؂Rtg8f%#}jS e_< ddzKLQ9Wu/__CPO%p4 )T (Es/ Ix qF:!4@3XEp2BA#RoD1 VbAH̀uIF$0Q-t\֖}{Gʪˈu*T*1,$K竱HZ<0W.T^!)tM R{rY^RxeJN&5UIEg=g6M5~iҚO,Bٚ^b ~|Ke3=Y{Km aޢBm zRԣ06#/gO?gWnr̞ɜk)]2OM'n9֧p!h~ OØ1>Wكcכ> y|-׮؝ƫqs9mg%̙1Y3 RDѯ3}ќcVnȴ͇9Aa{, :={{sD ?f|tw7x5zSp?8~3Q{=˹cZ׃k9< iђ\_aF(hqd9aM.ݠ]g8۟0LYʚ ;g WG>rW?i=}'8~m ٞ) 5(5o?W sy]ݎG0q~z-вSvk<1p8sjU3k<4v%k`4Unm}ؾWh&/LQU;Z0gg|E\rRV̷Ȇ[tW^^{܎z"gIYd;ӡax~}/:AƓOΈo~e^IuM#xcu x/D٦Q5O=3"'9gM ]/M[ŸY J@6b*^zeCNz?[hܗ߱z7^8]åkJMK133F#pw3X ٬MKsrυ׎sCC3enՔT1GUF_f۲{<؎<>ہV圚OpnGr jݺ/^ϡ=iᾗ<ة=M2~>O\}8]{^JַooSx|@MXJ=ot[>=8an@$hl2 =eOk܄S_fmu=VM͠k)YtCa[l&ɷO<9Wu/_U{/IUOwNdf JTĀb.u5,늋YӺ5`eEѯ fI  UuSU zݹsN~|@ڱ\v:h M̐Fe!|L$i50*$>t =dXɭŘ@nN`'J"GE)U!%ZFR9HFLvR |Tf71O&=^&Ci9}P-[- ҶBQ9 uZO4(g9$A._'bq]CI! % \PzIbVCAh'~qL]IBPTTe8U$qk]wۺ0p忚rqkҫ_>Ϲ5Nu쒡v;w_v9 O=7p>)uQߧu<  DCG ("bIL$NDȳI2{&-2#W)| :QDIyR+8&( Q |PT}֠(!qcCIRYP*UkR$oCw$$J&ڄܞr"s&|2Ply. *?amP2& RUXuu\p⧺bBLWh]s:`$ V_p#}ݔWB9zɮ]-yW;c=Wr$:Gk<(+Y㱹G83 " I&"q De1I6D[DI#M#"If&tHȠ8`gLuy@ p)$<8ɍBSm(\(m %jG^1$Fn|%fB Sk_@B!{&.q R ̠UL(![}{:(D0< ePũ* \1[HZLy_?o5\}>O9 ǿ1o/gu-]GS{.?Xfm>ॷ?uQG}ֱ}aSGcܶi6y\Z D6&$^8d$1B+DfD !FMLH%CgC* vT qwYmGq\@KAfc%CWA+1(* Z`H~8a Pn#s  UT9 9P]俽vA5+@鈢TT4O Y =EJÛYmL' PAVH4p"E<4A->. $^f{OAp#V[ݗ㑍͗񪥗1%FŇm~[+DpݾWG#U`z07| So':"elK}ꨣOx@iBb0;tlbIq9 Ӑ (.L)h55'743<4-&8 IDAT4(: *,NfIE!2,ܣtH{EypD(^"r$xCl0XdQUaQr RT*k2~/"WO S^i`Ry+t\3\#%nqT^V4ma{ _[ptE^eQv6!QGuQGuF"cXcgm:ar 6%^(d2)$"b3my>ߔCXb1hĝ< B0dY(`I!';w7w.( QȕRXȳ-±EepEI|I" >k=j" AVj˃l8TLFtҜ$\gƄA5bd$k%|*Έ-,4JBMeGř^@y-.!SAL@RP2{}8\a ޗPQGuQGuڛcT:~+PcDa (PXΠ%t:912h00'Ũp4B({$X牜c<ƅ=i>ZN 8SQ ]wJjpq])Eݮ%)pp(2[@[ ms(Vsi oYl@`Ї{L`+-tW0xJx3= 'G0sHױC,͝|8w`|z!Ѷyf;͛[g=F}}l͌kCDp8)sC 7.?{zmS!;5(^/=<k}PDz GƘPT򸥄/4^(ީPpt:fwjOU]nt<[-" ՟eP1jwqNump.8SS9)')Ӛֱwhw|סw;$j5.89wZ5w&j-^ls儧>>֍uho_^.xof(p%8 $O͟g=6}}БqbO8|w8؎@1s hFô#HE-xFAT&swHXx&X@' Nq4:16G֘(0bEH<ynD,C\P)p@I  |4-y lB> ]'/>W5{ƛ=ZV/_mO5GK_i<,. Ɋs'N=|s-<.̚UIYO߹:o={cW[OXB,gW}j>'C̒K_\x56}Xauܱu,3O:5|sd3? 9`n<VN2sP~]5z}4ͽbs ݧ9Xs1g,fd>7|nKW/Cygp /pNyNH/t<["'02Xkhg&7,佹 aM D#Id4hY4/*xf%6<:N!)* 2,.+d:`̋zTٹ6E$XPvGH\!TrVݕ41֑a5{-؋c:hȼ('7*s1|t>tɻ5> X޻=߮lOT3QJ5ۢpq=a( ]˝F2g#bw񂅰}i9+缉 rDӽkBI᷿[CuΧV+$3&|6 o=y<U]݈O ]2} &v2c?~Zn.zhG;^=q=qVqꉁ{2yx>x4D=sNu4 ן8v>ĺ$bkɈysrg;v.YI5 iI%csG\*89CYOL4xcqaMIhAGRC͹HPI)5˂NI/_2"G|WQV+a N c ι\t )ɍ(MQ|Y\EF)Ud`1g4Xv0%>sĻSbG嘮1]z![y2[g0񫊍`OA y_gZ[Ηp'[ kLXXhVO~ξ(/ &lr'j ?qQIo^Zk/炿=}-9mtxyYCyr%\|'y!9gm%:s }'=k/_& \npUx7~lKlj!mbӞxIYM|UO#k>sGztW3<{w1p۾ê__tڏ]Iǚo`v5݅7-Uk*2ckQ "8 J&Mdfx'Q.I!q |Yz.1M^ [ YrЩZXH9W.$UW"$BITN^u@@xB" *xXtB-D0Q2QZ;u6J!#y'PnаCN[te HBA((* ZӽWmQծʓXyӵ z!^E9@].ͻm+1KgOr1~l=}dHV<>_|4\>׮_M6xېo>Ϸ>rK S{^ ܽ-6 1~tҸޙNg2|+מcȨ}CNؑ^ԈBUIz iFlXD2'4 pk˂DabI9z^R0&udi Y4ptYOZ]zT\DQPΣt(P Ȝ,Y\,%dhUu oT%6 내;$@dR2JcS{ܡXC2brm)޸!-c} ԭK"IwI壢ߘ(/dtυE~}۩w_'UYkt=] ^o[.)>-?)wnuDz򮉾]//mOuoo"ocϧ֛9h->!qMwݱD /pq w98tDf-ZH"s^D@G@,5 2 ZCFtLIjQH'h ylHtP%d*( 8r$}qc (T$I)L1)Cnۣ:H+5V@|5 gM̅8n WP h}#awܴB IDATVZ7^P*k~} %|-8oy;{'/V6oxL~qŬ-+]Ýt-s0{{-7۰`Z~dݮ %<~! KPXVܻrMW~kRm7|8xHX(r`\O]/֡ĸs.swCgG>It;FǒXPD^ D:Y M FkHH$43Lʌa$2`J3,X(G;YsECK+!o&'7\%@zp! DQJ[#D+T%Ɔb8[u $Z*, BIG y8)9C;v&CybJE8C(602k-%ls;L7nwO)6ĀI^/Nj*A-/n|Op=tBTS8rLȘ#w"ӡJ.t:\hnwAo-;qB>tGL6~trܝ|Ëc{f#7ݼ%v#Yt8:ޞmq#AMlBg~+f᤿l94'>pMmed@X,{"JVRhXHEXgR# %(䦃D9@6ASm=qiȰp,QJ~J/OcJQCu)l3\5 i?l$g1'Oo;N}~p1}" %kg=7N0MO į-|_#g͂bg'Yz (B *TuđfѠ%P̊Z(% J( b2PXkHLd)XX27+gr-H%ILIBSP Wxth4wE1u $!tu>8Lq)D`Rޚ'3f]PK^)&taLscB(T(`&I3o_rq(m;OM+&ؒҔqwcSDlOM;}wazժؚޫtM p-'#y^5cfZHm |ٿ-prt?+dͦ >!} x`Ӛ;?_Wύv*Y?~o6[^N_?_w?Սw3O5qYb=%o>rҙxSnYÿ6 /.#y6zrVoe//~"{ׅk\NxwszV߿o;~mk^fȉ#xſfզ ^ ={#ܘo~E_#Eu;k׬d7yӓzvz|_E-9s.7oaXMcJ~쎓?LZ Td}md\??ƪ=9wv Voº?|?}d>xtsܻϽ罽ݱsNOwָޕ3q%R+p.ԅh}2pƒL)^v&u$K$+&3CIFB3Б& tYChFB36> 8T t/>nG>ov GfR󾇇ЛXWDl픐%$A AZiNrXй+RjؾcP>z U X b:ᳺig_9gƏ]n=vO3]MW}]{;|=ncŹGñOZnnΧSf&ېO~4|w39/O<iWrOW|ھlk r;fࢯ\Fd)߾s wp}oUgs7~~,fVk$K_q=3of?}9Zg/|Jn٠`v⹼؍*÷_}{aMJsBK~@x79)|/_[hZ;Ƥo䊋OqϗcJ~wr;d\MZxf>~KGv\ox|(wW{{{mw׻~Z"uL-YX$ V1:AzAC'EV%¡d&E sɼVMƲ L۴6HQB0 MۢAa$+"3[4FоA#Ƣi1 \X/yʥ_ZjS;O _HJQo)[H@=qy6QvK$Zвs{X‚}`'sNo0(PZoyё!?{/:=DŽPLVoqRhװIa.|z-Nʿ}s(! .FwT*]{xty0[;\vm私yg~Bw=_%6>dTۉ9\xac3n?QVǮ{{c׎AD*W$NT S3LZB@DUP"JJH2oHC Wv c*cBѓx R;& &d dlٴo;h T#A0D)$Q],`V-ZxlAmP AC%(>yq1~(o?Ӣ Hkf]T^x!!/MT)\13٠5q [iY_CBa#dX@ZDo[3W:!W16dk8Xϯ啜:񩣎:xt!tހH |2q!1" Ur@Y3x1)͖';̐ bhDFa2Iɰ 72;Ja@"g@n-*sv;YgRmRn7f% ?tunf͍!md[XEڋ2UQo 'D1&{e`1R*Rӗ.)5+k`Pb G&zuEߥ[SvrdPxv<='C,Ka"4-anh,\q6gy#j s92o/aq:{{c@*" # щ-$Z) Ð8 %fc~k6rѮƳXz"'YC%M$ϰ9K[6l6X*/<ȥSc`jU#k-q$MSRaC)Y5J4R)kr.xnH(Q)NҌyAǓZpYɊ,7@gK +I@Nz!Tu=>`R^?:gq~걺S;Q9ؾCV}y?@_Go\Ev!d&txW?.Տ4gejeoITu\=Qc$6œ9r<`]@8K8GH.bŽHMrނXJ3+j3i34"kFi$Qy\b3c'0J8$f3Ԓvu+ [PBTJj*I(nJzT l^&! Y"ey6DP DJ b8hi<5('h R7Ix%W5%nKi0zAþ4tENI$B1p%d()-z_|9–`i:xE#[Rj8!kG^{ZN?mE?VuQGuQG|"zINT)&SC4;J9m MDJ2gȽgHt0DcD A X!h 3ɝ3Fm\F#G bfLELh$h,: tmqk= bm^u0͉4M+t @`lbF;K1b~;@"tS,i^y{35YI 7kYK:L:%( 8$X!:Bwq_I}R=PCtĽG6H殞+!Wi5Vbl7c:e銗>+<]2. vuQGuQGp#Cy4Xb!$9("ADtH* f3+y pfV@#hO2[%K'a֛x 8^ͨT=i)J{lUk}NfV}uVKnF!7f"Á a -{v`L 36XBa#`dyAB гխV}Ve9{}2+*mI-d|̪}oJ @.3eM4VW5*!a,6d骎W qjggtҼ <|ŒB\zl4!È䴠 u+O[9;V^h=%P?|-eX'~of >V\׹hs;ذۺL՝㮿ro&ބSs~L1bĈ#FJ(0ѢXS@2IE PI!~d>T@*ReYRU=)g\2(]Ց8/scsIjKІЖ {瘴{Rr%MR31p Yz6H.憤T@ѵU1.kFhqxp9Z9??xfѢI)9"%+tݜEJ# * w`Цv%_wA\PtG3Pm6uv=w+$+}mL"oS?6yo+5+?\!7}ɌbK,?D^#"ے}}2ww 5_P#F1bĈ?A\tc>FMW%] T5TVoBQy%@2+9èa8.,LI2R-cC]vjFoaWNR$ZlzڪvUS;A9'ۧúhF ]u W` 4Mj2WY.A,O~.2eovgR ^ZΤb͙Ѹ KVpr=t #W +kccH'Gܑ]ACmLCʛG8b;;+<V\5AC'csy~Sy]-|ۧO_pܙk~׿!Yw4\^oUO -'Ɍ]3a||>#ų xqJkĈ#FxF`:[C,ǣpf4ҐJf['\3 å$SD&1xa9RqL2 v't.9f0w<.7L)iK)OHuk5c92匉TP V>jtƯB/$㆝9w3m3S%5bĈ#FxyO1'*sM8TrM{yA#3J3y@2MΣ# !zW_\Ǖl Wj`2e¢䒹zw6OβS49mBІSn@5Ţ[՝B%) Zf"T*}՜x_u4 ZFfz6>r˹ |G._fq0VDrQ\!zw3\Ņ*^7ū +*8" z Z1E8s!}epnl] 7LJNhd7n=_R_c'] 8I|twhh{},:#F1bĈ_AV1Q'kG(RQW%|9*=Qd"V2q&!`ɁIbr[txgL2 s6/l҆)ef.ˮg6=|9Y4M[ݨoט ]P%x? 1HB?Mܓo N<;禘|)  EL)8pC5xWcI/zbۈ⟡;b8)ʚ:٭bEzg0Nxxɓj{K;pL@&4L85w?_xo)G>B7~71bĈ#>IP!?/1 2n0iH >P cw$ǔJUJMv"*Ϯ +U\|;-xCSF]AO(WcrMI~7_좴~HF1bĈs8qI939S7E.. M&y)#O5یIlٲ75Ɏ4ibd5L!J K}OFtvr;`)uX)}f6\шW8iP-6UvR9 w#ēRZw@x'@D#2U1)9?ŢpK؁,,/3U MH3` .C8 L}CH6 68T׃Fk^Nk?Fwŀ&yX9AlQjjk '9-vlEvE@P: ՙ6"5vނ܊?u;ͭw/e˞fRpBä`@*=D6N>r.x(Z[܂GM))#S>#7ӳ Wg'|fP"<4gr9%IGL u"wDUh [N̓(Äp?:Juy8ZYvNzz=wdtjSvpJ1 ҹ'W2B3|? /y[g|36b@¡v;$x_u~5<~e&9??W]{^oWq1bĈ#F<0LYjT@#gnx) A41b٪ ,hy#?߆FH}!k"XwP9TT,dKP Q؟ĩ[1y|x|jmsW ~NJ Ղlh9B`?]7UZ0šL]d/§|gnd6;Ed|P.yLK8y8f$(4Lip4![:d ' vI (븮8PA>Gq;ܶW.jL1tp2?3?=/,N:E'eǻv?z o:]0E+'|K#1bĈ#F<TmD V u"eoZ"W'-UR[e zʵSҘGN978XSqNh/= W>Dp\#QװR.P ;=!Dx0r"C6O8qXyP~d[gd%;>B4η^à \^w'oj7gd]zzO!"?sڶ•+Wxy|F|Ò/yUyŋ_9/_QF>bĈ#Fx|*@NY+M R]2-FKaJOO-eT j*>UQSsx֮,Lj&x93dfiPOi;M" }iw4A ;K? M\ 6XrΑKM/7ǩ!8$NplF" >G|v^#=|c*/75a$#F1bĈ7j-(7$x( ְ9H3dev”d6\Di8%./T!.1GPВ F'D0,\;r?`'(Y\SJ :((9YևYiewYvt}r)s9gD<9ב+?nlip x0kNq-O`wB⑇$0Gvv@V(;RFC׼dKZ#l;][ŮqɼHC#$g?Z׿.P]jj[Nno:hp#;D0t N;_{3|/xo*9{Ν }2q*p?ݖsaK/ypUNo`l1bĈ#)!>:_*-Bē4R3&bƆ&6L6GBqV#ВMڲ'tg@CCROu İơ$ D=.+xi04>BCviG{"Z__=(u,6FWщ;:-vDxWzcQG;'ǹ6+- 596fZ_\jU !'mUH8 9r^5mg?eO95tF1#ӡ"85ZQfL ^1:arxrx\gwx-0m8aX\J+} 3a K]bk͊EfG_EuKժuḓYd86tly'u۞_gö}۱}1<̻)$7 ;t:v8Y~^}6qxuДlPkny>?F~cXfkV׮Jҕ7Wђݴ~)3Ft^{>Ōgxf[t1[I?!/UG#F1bĈ~SJOz;19s,5-ÈQg !≸Yؒ(ݒ,BKDI$SZ7CJ&`ȮK^JnI#JK"LAM (pqy#8 3;avs=}_at%r$Hʉ&`Mc!$ #+H ;Y+k&h?VmZ`mqekj=?O<{ϸf+$LSuWFx/g~2ˉ8+ E)%+у%#@ .<#1kgRGwnQ\Rݪբp=32 DLh枃B0O.3UQ|ZZ5 1mv%M\ 悩')['׏B9T,W6݌c.S0%'ơ#>e,6ǪԆݶ%&pe#廿"_Kٛ&ŬGsGOG?1%xn0J[Oc~flp1bĈ#íjq,u4>A6$U-VSU&x%j,8Hq7HT-) % CkbhUkV2):h.rv I(MĬC]MPNsᚭ ]ת>xdx7Ӝ0WU旔Us)rTiP4%`9| 8N%e-[Q9 Ŵ(lm-YYeH|}OQi:6k-:އwFh Zqzz.1 | 8LNOO}v4{Koą._J;Y{侯NUi@$d)u*J5U`5&;:11TƚL뛢oqE6qdS }ɑuWb㖻Gt5-ֈ#F1bĈ0J:A)4N( N崡8JJ$s8T B.6R{T KyZh\ACLeijVc;ЀZ%;bu`MF=sd-̦320H)98vF(`X.`pzgO}泸I'XjI; Rp"MOQT\3F&3RI4f8W;Bʩ֎ݞ7s0x?. ujXD r:֦Ma-~{T Lj#F1bĈOYPC&jK="x! ,KOBn 5}1H"bી`q\M56DrIT}Jxr?# VRܜ Z<g 16nDOh" 1GؒRϩݳ\E0(g[O9];32_RH3 xQ7L%0e'xh!D3X;ɌF=]Ψbb6cV[Z e5$Zfu0SGW]k݆яgq\duG1bĈ#F_x(1z~ 4M$;HM&wDHW B TbԨ "7L0aA!$HDLCG3jJ@WGve;iul>G IDAT}K릸i\&5{H|lP 8۟9N4""DJcLbG %-;̗K\aNH٘)wX2&2,mbN8מOy&w<霿fCLs9#9瞤 ze/MJNb0ysp~wٌSHUyW̹NH6\kMrsւtW)> +Q. !?՟w?OF1bĈ#>8K֕΢k:Ц E3_f ]63ϘM#&+1#Z.Rx"8'Q-bjLbiѪpU&ր L,0+a7Q8eo<.P0 GθPSΓ!igD'NR8qZ뮇3]#bzzp[+Wg[g儫ՆCn`l*M aaq+GѮ/WOOW~= w2[^`7~31bĈ#>P ?u߻Ńjkp d:T5>rO"T"Ԋm% 8p!$K4Σ0cXڣYYaksф!ӕ PVG@h$2M|[ʄLΝSwƒo{2YO+(~d*qW0$$xd:d.9 `9mC8Rd%˿\/?]7G^ݧ>Z~߹w:r|' -gldflI|>Ï}%po˿  Lj#F1H7\ K?8 3Wǡ -Ft8_ݠJ .qy Ό8 wU\Y]v4ҐQ%LAA9V2ԫ91*"ӂɩ# ]1 ʰdBM%zAav{Smjַw _Ͻǎȭ{^w G.:gnp,Ex֟#F1bĈ38:8)iД0ZP;FFN3ׂOF Vy ZN˼ u%1&2gM8`b ̆ I\IhJ"id+&NJ8&PrfoOyޏ.Ӵ<{L3cQ2QyRrF#޳P*&2q }Na>ェ I{2S;nUVƦr7s|]O۪muc  ?fK{k3^+7<ɇ_M/?w;W;em';?#F1bĈO J-U\ `NhB`AZ99QBg0-lJg 5C 2Ud@]f}]r̳x4LJG2`Rc&!:O*faJ:D )eJ_JK}=J),qySwͷJ_8e*3U{dLS.WRG~)}>ƈIMdwY鴐Rb-13؀s4V挔PC* j],fI{-q0\'0GFd6Q8dYy0>!7A285ON pĈ#F:13eȚIq҈#,W AOaZ\&x0u,-c'V{Ym0!PCYىS/.{Jɴ̈́VZh )EY)--)_\P8/ѽc<~A*Kpxv&`;̵vnV@9e2O=}VcjNNpԻ|Upєk;mM2p4lu&VGH ۻ[+fe Yuk ]#JG1decҪ0w>y S[?:臷ҽ *u >6WF`/}%CpĈ#FAPފ#`Rxz fBy(kM(Jć@> Q"#Jd8h%RL1b f'J?˦AJ#8{"ud5H *)g"iصS;+Bo&N.,a'N8;=˙,IT3hɘJ)]WCd w8yYEk.m趾φ0{vn{gx'`l.#"'^*|0e5]#]MPa;'8lE:G::tyvx /~ C)t 6D?`W_}|aig_޻ʶf]1YUo9N|iۤ;nljH0+N@G$B +<"H,E APB&!2N"츯>T9o Yj]vc}aJ֬o~Ukc> ,X`7AEA@89DQk3ӧ̎ L $ j$ex<`BS#Y"[OeXtҿs6z:FPl cXӃu:auHk_j&KG}3'9N4sP#HUٍ j<ޜ䄍v rP+*ueqh'O8טI ("p4u̧x9>}G!icX!ެ4fqUK_ ݼ|7@8>boOm倫5on{O|?oCYc_|~#_ ,X`7]0ml<0:ntEN LP)JeWlB: jP|b;:۲E9P\>0զsFSxe5HQQ*}B. e`[ gyJ%ӀzN2Q sOpmxz7|/KZGAR+#$Lg-a*//8Y9ie)nMTa`1SrI*sgF.䆀>nzhAp\,w&&p,wj jG5׸+8gockD:Mq_.G(cua _u\^/~?+? »Kɂ ,XK=exATI//XU{N*j㿌3EmŽB"fwwt!HFg uځZ*Y3(\O#'JLXQ@B)tt)p2rlFUp&RMD*$y^SJ*sx}#Pm׸]KGaVLL[z뙼m8$T6}BP:6y2P$Dyq}IɄ/ݛ!MCt=nDrD& yօP$~spd;A*YӞy8UH̐f y~k/d Pn*|~z_~{2q۸` ,`uZ#tR1MdInh7;s_%yJ$QbBP122y! Ԑ*ZNTzCJv515JA}Z!тju?٤SN{&ntPE X=0o}%zّ V2d=rM,v*/x4 03K2M:Ua`7xT.{"J&;[}Q* c;گsq{z ::ȡv.e] PGs Uqru7)o\]G-<|J}{F˿;M-X` |73ʎS{b6jeWSTIP ăke;"R JnMQn 謣#J3(Jx!xkbi@m )6Ii Z0B}gO)T8نgwNj_c]3$aYʺG -ᵠ.M])L3+m2w{8ίNš`(Ha;cq8+Fyi8^&Wn˫,xU O8߫ާki˸` ,Q>?I ;IwAsՉ03Sj !ST%ZntkRFLa]ms-'$"hZ^FmfDMl5G}qWp᭻3NLEHb-!ݢ%+r:m!U4UV9[:J%XD$g* HȝuHʽ"n"zs?>6⮍+I4zwm疃&DpZjL p) ?P^r|e@|o9)?O$\~*< O/߸}]P$+o_@:|m WƂ ,X_8W wXنO؆$3ՃNN(E#$i aXʬٕB\u>avTubrcVSLT7jjv:)ӹPB@$B::˄' 2v~? >B޽P/;û֡YIb\c@#1ԊZB9eRRT|rǏϸRő\L൴fڒ-|˼_30~qGUA_ED^̈ƽ=P;>v3w8G4 5xr 1W;?_gxk?__2`|W>ǯwo_?g.ჟ!}ꟃ?)/Wq ,X%5N8|3FѧVFBDkW%6ݸe@dUbWJ`ZZob&Tʮ DKFc½bUq/l^ԫ9ׂU)MsGdN\}\+ _}+P䅔D Tq jizR鲑PgےJs * Vj#ocFzp(Z '}I#*77%AEE\ygx?H79!7ǭʯ[p? ?u?!K _8_ ,X7Q"o$>gg Qk 1dvQjvX(U!!.*U;K` 2UFXtxHpY{K![Ίf3@ Њ~PH7mxgL}cz NP]S%Kbm RYY\k$QJs}8T*5*%λZ\ב,7EjmMŁFDƮVng\s&YB!թ1r7:^ aBV C),^IEF\poTQxul~0Q˹M#N5}e%n /m|,RGDe8MLYJCTV9iG Ci#UcP:QS%wРR}6E+{K *gهO )r;$X7 tڻT7{nh@T_Wb]Oq ,X`o*t4C,Pݱ3x?+JK\PĄPmM\ T2(:ցdqzB\kOFVgº8A |ȄiBӫuT(\1F&uIvt /%/~% ֯>@uc(>NV+ro{:d3*'tuոzau4|je=' 5j SeevjQ)BWݹ [#Q'C0j=}K=f7:=d{xn61j.1C'p]J&J6qyo ,X`AjdE*ԩW; ~.LLANTwJ x{bN+9ɘT6f IDATu ,X`Bx˶z2y_<rTm_!LR913Y֑p}I8]6 e&L)um(JԖЭ"`k)5Sex)ċq6k^|t}B#+]++p&"XzVVbWGBlOc!s1]әAi ZBpnueJ]8*Y7]rKƜ<&u rb?.uD($udpEC` ,X𞣚"4Odً5}+>X󆼎za YmVF Cd]pU2Jc(#GZ)^I2d 2m]6J N OhO~ ۫ W۟yGe#-u$6wAreNCswwR:J/a;*A)\mncȱa_cuM1Ʒ}J#n&XHpb w(F!`R=}GьDĮV,D'$OO~}s֎˫kd2̕,*uub:shb)3;:Ǟ$q =r*ޓ ,X`-VQ!nB TU"?OfDbbBX}u:U!.t$|Ji(/tRɹcmw$8hL GM-j))U E։N9>SJei3&:@e3lxmz56z}<=9m&2p=l^1bPkN+$ c(QQ̌d$Jz3SӞUFUZq-7]]۾?㇂6^Eʝ̯t.}&1]F`|wnȍۖ~LJ߿ئ]B` ,X=DUn  olZ\&< \'uMٍ5k$ۊ܃.@6g dΧVbb|L2^E[cm); wkOکy[gX-#KN 5}dboʹ+~`T(1QHDucc eDҬOjcFg8I&SS=L;4l ?"xCCa/ঀo9iQnj݅NE\숥:ӑ&A15zv5# ,X`V ISud,g8u*NJvD8Osd{3DYƁ$s$*n*aFRD ^Q(EI*Q钁s,bRG/ !rF b LQnŚ^$ >Q7Οr>$R&JS`7옦 Dt1&O5]AwFnx!Gڎ}x_;!5ABRSDG{(=I5T[٣Ǭ,SH/sX#+eBMf4R/^{vmF!;D#ws-g_M:`?t,?>k;ogѯ$^5sPZM$8$ajp,X` *fR(D .Rw3-軹*$R+dcm=#HV%Iˬ]2N=bB.f\ LP)[YE$uL1lrZ3l=/~ߺIF:Pj%a\WT᪌$3zULxtb$SX]WAPD{6!ڴ ŐG!MĽ/UrbCн W$b&"To)m Kǂ ,X`{(]m dڒ!*#^$t'=lzW//*R1+P;*)N+LL01 pֶaW-YP%46Bɹ#IN>UT^Olg7?Y◮xy*oub7fGe ۲%Rg'Ɵ r Kxu.+L#8?9?5&&\e%'⊓ذ}gD X}@o34'['swyq@އN o68(Fۛyom,X` ,xG8Nф`7:*LM,.ř|+^uZ3R}"4R1H4WPG&]ْq*BDS06$)#HT BMƦ_m6} њDO6MԜI0 xTλ QkZyVkGT.3y!YZzlUH`LmGVJm)z=JѹnɸSK#wʏ;Fq :1q?=b@T"͘=³` ,Xཀڜ!%twK0جb2PŇu!#㿃ߢU% cٶF$ @7pٱA{Jں$kLǭf C=:j.eȋ—] (xN)A4G/r[.Nǁxvgs%yɭa! !: $};N#q$ ,X`*aEy'=ݵy(&2/#R4g#pb* 6?G攢2)Kibl<cA Y3"׻+*Dɱ/1:زtsX r"9Qc*)ӊ/}+dOL3 RJJEq`mɪ'k&.-5*5fJJƺ_{j8'57́|a[q9P~%3>قUPKC-qY$>H<(/v'lW*ȭcMW 1 zgYܿ3C8v x ,X`j¡Ѯ c%#2kMZf*.DHARU.g?g/P,dAS)LVXӡY ^hN:ҁ9Vk]r;LzZdRU8{+/>.ӋֈWe։Z+Pyڰ֜+"[Դ;\J/mP'9gFHpүH /ys_EL8țlwu/A\qܡ{q}!0EuSv8:y8X1eSkwHs9f{8pl{Lh(kCQ&ژYEp&c]` ,fD&„1uQ]ci?ujnVI$h=Qȧ=.mmT+J@zqT:K8`煔zhcXS4{aJ3DBT)c7 : 'yJzvuz %0TiCfI:wxq q]v솑i#A `Jf#|ڝaf$I\_Lx%#C~'x߈hAw*: ոoq0,>E˅۷{1Cم+ѨJ#WE4` ,X̀L(C#Iqo!$a=w[(т ǯpb*u '8ХG!K" ʌ4'H{YPĝ@`R S8g3LB̓cKP|䝫x'4*NgN6ŔS"D4Q]LG-1띳O.e,q\]&&R[!P: T=b,8Zitֆǜ}>C1ձ G 0^݈;&wH,{77Zgw*0 ,X`H RTKrBD$ cdtUXQ?~hNTLzE5! UGuCDYIb7]#S mF&Tamӊ%卧OJ)\N+Niw¦KM|wI'.+Wt LF2auOy3pvѰ&0z@Rnh"{4n7un6Vǡ9<J`Ms#>W]۱j`$U AC1MM2dIn:*wǯz;St5ѸQӛQ.U 7Bz=J0_` ,X"4*B9 c KiPf*Nyu==.eI[Q n"tYuB5*HL11N>ZMtu'ys^] ۂyi:ȹ M0 up] es撵eje65NXg-a;QV'+(iqt'='g$9mA{;&ix]|N{st=%D`Co Gaԛq{Llr:r?#=Zu-mҵ` ,XG?w~vu1w5Z ):iaQa!At$PB@lw~>,Bi0)e˼,e;IPIX"%;XIT !Km=E[}c;j%q=0 Rp˼uNq7Ug #MzÄ́KyₚR0m͆d+ V͓swI֡٭#9#7wB?uOt_ǝs;ms3; އlt].U{J=d֍etjTo,X` l|ΚY)A7=+ BЖrP%qSp Q3O25JY?&Hַȏ0:n0MAZ"Ceb^!#}57؎Do$Qgٔ4my*Vv@%{eJNFe.^q@H9i PȫIR= 5 >⨠Y]qu܌+5!ps mP>(>Powȭ0&^ُA2mgMͺݐۢ{` ,XཇdEFAxE7RQ^a5"HQkŭE2F {NQLV;Vqp<-ND%|@UbD^(^0i~R%:aoNˎ[Wg?O5Su0vuZTcSpV 5D-qNj5"BZ+O$5֛ ]ߣ0#e*Ls:5zx3SU$EDXM񯇂nBtfFO Iis=8^tO4n9L|9P:wBb*7Trq;s#nDǎ\{8"0G % ,X`7" ]6.ʶ@Oz"*tl4r!s HMM[03ɏӑG”[;VlǑ0jLmdb9d8fc-V^;}V\}%\ &J0DKmZ(- &-vk5}٤GjwERpݢ"<ǛSTqt=ru52f'+}(7[@yw\72s b-s%RaD=ԑ1Nh9gPK!fVsLQ8Y3ȊbT9IkLNX6Xso]܃e$*zƩ#\m݉E%xRx>^"އJa D@$#)2NDe#9i6MjL^[;s˯ fIH+cxu[sga x&#RGEz@;dd& {+wq] \U%͖{bs@}N>?$P$ZˡCCx4nn-X` ,xIw:'=gC{ V{R|i&>iA+{w ec#a¶TL Dd UUv= mZV<{t}Ͼ6iMմVGxNYujkg7t9sjkN']ORQ^ [vQ8kV)dםuW7i0TF8az9_x+v/ɉHhK>M|mAC#Xwm_3~7{#t_{Є@s=䍰nq"x;\yj` ,Xཅ fMJhj Z'd#jFjDj IDATIAAgo m%jܲUXӖcIc89Y2f=Cx}oI'w.yw 1XODl}֒ka,#:PܱJ'тLeʷJ}ȫjQk6ՠei$.tS>\"{-:hf&kI'8wZƢ7o6u{c1!MƁ@LHx|G6s -\ F:\X,X` PjKf+GJ``,3YHYm>!5Z y2d,DNO#f yb7y{_;l]r^3N;TƶDsZۏ$[v[k̪>g.CrhʦH*!,I ŀn 9t]2#bvvD^{ǞDWgEEDV.∹BOhmC17'h|NҚȁNIf:Q BZ?t-V17OF -$C E弜Ƒ)f QKe)xyFH+%Ϙy΄(]>7r߶axq[CkMt_wW\n]~[;_bvum,|#2ڶVεmҫ>#>;vرcǎ; .ڷ-a&AR [DZCj H#t'Hs?dQ}fH1q!C?bű!l E-}USRU^_͟UbHD"C1DPI5w)q1[sk,~S9UQF8ׅ䂈V(*d b"8:(0|<(XKxJ|q.>W/>Y+ͯr.\T%]ݜݍϜ%FB3mӾ/9vرcǎ;>$\] C*k_ USRy7eYC{m3cR$RNcb?ɿmbGMk S@^q]E%g<ʔ^EF0Mgz@@.yt!ѩI &(m~ ~TfƧőj0kKRKr#=]j#Aݧ5+ی"6wѶZm2,wՐ5ڹ>/{OFo>H\soI]7mc# ;vرcǎ;>,՗αGƒԜȳaġ:mkoGJmv)ad>;y/@%Ч+ՄȊPEWcVGo>px;RgGg!Řs!a"&N!@{0i:!bD C>s<qH^|Ñn^(pE*^ qE4!96ߚ/*jm {'o' I?o[9A;tl,#tu3Mϸ?< ;vرcǎ;. ̎R13VKnqvR1|)ZI_w=к8QBS&=cO?$4?17˘ejt 13a-bt'!|Tjʇ̧X>ԝB iC?H*TLxyj7*gA#OG?X3\Y'+ tBc*$rAݯ)Nfׄ([g7y15U{}{{y{㎩jr_׾%=XeWf*򛟹D&qMJ>Z ;vرcǎZ#,*)LrZUp)T!Z]\+iJ3Wǒ  Kj<ё??-ʹfBLDUp8D{KN3*BP8 <};r=RJҺ?|_^^bEjZףLR) 9Ym9#x#IxPaZV^='b߼0ׅ!G\Y@: :viq<5̚DʩW:3=J?tWry]Um]FK$5 `-jk[j[5 NpZjg-5cǎ;vաnG.֧ ]ߺ  gdXJsN ex?%??_$pSy`ѧ Tz}|${/Xf`<ƞ[' C3{i!3J;܍<;>>jD~9IcDR+QJuE+vq#r1l}llv|5_H2!>5䲕s% ۶X͈g.]lC. _!'/B*׺DZcǎ;v;H?#@XVݑ%!՛|(4BAj%D9/^*S0ԝ39$؉&e\ju0hZgJH02^K>pGy&F: 'b0emBZР(0#HbcP /gO ^9|<N)3KFP6a[G{n,{ʿϚ8vc,o/F^W)sO~MucR$U镰l}[ׄ\WubrR:x}xJn wرcǎ;v|%H؞AۃccS̙ 1Q9#R fC} $%Om:e9OǻH 9F9x9A#VjͨDD cLT.b|#O?}mybF.LS%iϘb+5(!>2gJ- H7EYIJ6jڀ' җ-8O/Cx#/WoC#)kC_\yˍLk}Do:7>.zrs~|&f-/Xu5qJŅen1ăvF ǎ;vرc׆$kŶ^b; fwMB]NR@ig҇G>>>y!*-TO<@uR 3,HGTi'N'^_I}d{eg򼐭08d0PSǟ}  AJA)U븮*`kd,h8$P?mᶈo3g_(Mb{\LE}-{-.Fkx7Y{fmcf=ϵc+;vرcǎ_ \T:Ս:uIjX=yjHPsV{Y&;#BAC*t݈RQQ6ksg&KRQ{cތ1`&)67kw&YeWzcܾ/\D6 ſm;8#;vرcǎ, }#6s5Qz$:mn\*"|ڬ8&*ʭ}h%f-#8pӿK^SK =NJ)mK4=s!A^+zTcz.%bKi}S"FLopgԷjT#a黏 a9ѠL?t}O=M;eJYoW1:t*Ηbqe1荑nлt) rGgn\4@rIjMe3M2֎;vرcǎ MOBuG[;k/[ӂCǀih s'-Zml2-ErfC%Bͅ|#8L1݀i`J&$VD<cHT..ZVVvUB#&|^煗Sd<\ӄDYftP@) ˴)Mxljf&[m_$K Jk&ԷM_f.u{?nBoq-D;b@gX e3qJ$VޓUXъh]ˍR\6#@f0϶>;vرcǎ;ZCZz4CC c /47o3#<$Гzm2} QJ\p' <O03bNy-4)5gZ)XԷ;&7%_?|&Vݥ*= LQ"r&=!^__qwRR4 S>cJa~yeHM,9 Q6w1T_n[B?3msi .{1hټ%r=}%Aڎz0Խv:۱ޣV[IPoef{ߎ;vرc݀)Cꐥ`c:}D_g5(޴c/#@8h\RH.a ON茞%Ϙ 8JR%? jdgRHw)K湾k hr1l> R9v! c$SXBM 3c>,\xak <|xƾNw<'ѧH3,ȡ,-+# [mHo.~oQzN~/~ DndY}#_c]ߤ]*k\RK. rͽsX ǎ;vرc׆ xX|Uյ Kh8'WcKX-ҤHnHT G:|d /Od2b.S>GϾ!*y3]hyf~>&N 3zzcDIB) GJ]03bLfe&q.3Kc (ϰJ;yݐ~ϸ%8w+A6!=n>;ޞlL_>&#gR?aOXu;vرcǎ@Ѐ6ڒsjyrsDr쐟<@p1 ΩILJ^Zdj?%Y 5%VXt I+e1Č p莜BJpEC ncMAQ5:1?ӷ.pǧR7 &jiRA93?Q4o>ܚE`7|kn-V}u4O]Rin[1.W#v.Ϸ ה)*[#~-,7dn!﫶&Z=,wرcǎ;6+RX7o 4)RKs8m˱ lU5 %-uAAM`u\H3i)IR9>9/8N#jP WaFbyfɍe*}ZyfLyf) ZVW s[7; # #x aGX|7gX.,; CG:o^8+Ruay[Z\= ' o]mL 7D@3Džl@}\kK:u%5Wv-U]ۺ2ʕpy4$+Ӷ$mw$;vرcǎ;*$tR0+0'\.!&n*ܑOgدlzlY~J9M.? :6jt-|_ooK B?@yS\>v,6!h.!)Y3A2s-$%A]ht>G;ΟHcBN=68)tI`^P"ӧJ-:?fC{蟆FDJdAE{q#۱cǎ;v Jŝ nv O bxz=FCWG $(M0:-L;@@SZDV":4?iy s@?NggJ͜WTCHKJ VR xKM:躎R+V穵Y:gC8V\Hȡ c>'!)`떦@E *Ȟ@Z:EoiU7>j_*~!&fͱ~ݸmf;K\d>EhHĶ-iV*PNj: zۣرcǎ;v0l% <%ۜ\u^5TkG_5(rf2ga<#q#?G>><QZʇK Ai"E!ITA|9O3I :h-g83 c>/H <̕ [)w(缼TBQrV^ICj`ćcKjpK46'ncq5b8Qt)]/[|FYWc7?pnn9n;EZ3fBI⮬pKڒD}M~H3o8vرcǎ;~ !"FyhZy:] )F.bm EՑc>)cUؔ  G?/ZW%DIJs-H\ d2RwH[ ]O ! "A)Pȹv~rxz >D)IJ̯ !ϭ;<#TΞqq܌| q snL:nѶkn~A|\KC|1Nm@ѡA*y]Mu۱`;7n2FtZΖܥoٍ|JX:x^wرcǎ;v|eirN papXâ*Qc.ij\UZFup^Zij+ƎVj+ JT#_hQ*{1jmz5D[-:c\Ze\S!LYirfHb׊Rp*M4 ޾ Mʒ+?@DZ+eZifuq0exnRd;"u3 Yi k$TV@i[ .}zBԝ@{EiDFh( d]o.([}!~o۲رcǎ;v.TmKgormȴ\‘ `$~k <:2&$(W-%*GxÀlq{?͈k|~!i"iŠO8s\V 2!V JVjX9/Xu^'8V?> B)pxL#㡅/,?.'#Ч B"5 Tlmlm?oڪm )Ks׿V*w-w-Jɥ+ϣ6/U}n|V%\H8!Fp!\z|g;vرcǎ#ۭ1DblUD8m bB WF Տ\%HJ{<}cR??yfGD=gj.,ӌW%32] + V25Rn,/˥6D[Mo/m,ҶZ >kAwA@T\= ~fݮNEC$*&J;vرcǎ_Ry&,#MG@Hj֤QHo)Vo37iV4/M{JGla$F8TxRXJ!Hd);zM@ucʹd+,8R-mFBA4Li  SFA9`iێ0VBJ`0¨Hjd:4$RYB }3޷6t~KT[M;2q۩m!=i+[;9|%zq)"΍1@F^_!V~[^%?}awرcǎ;:pΥ͵}űs>mG8#<*;/H N0 BkI0zHuLƟ'iZx zz3w#_d N!%\qi<0ȐC+jJ$p_ ƎpoO#wJH 3c@Q#tq`{?g >8|)9jYn0^t[wk$N7W.\H\%ض-~WwO65.}qx\ϻ;vرcǎqSKSx4Po97"<ڤX>-X3 kR`Mr 恶8bMsn Oto~/D^\ ,L[a5ι:SU8-od3LA멶V<BqAsDb?1#CLhKj^g2T3V܈9N ~U_I_% V}.ͨr9Mr(d`=[n:BDkw*ٺC4TX;[$zMQ_9=;vرcǎ |t \1@1BP8kKGKz.*w/h#A sif2ű)`rSTJSƀ# ܄[~90KM(91$ȥr^a[Z3S/$<=C@J>vt)Qe;>cM+9W3^j!P B>DȕX*|^f oiQWӵ r3˥y\uk_v7Ogy%_nw!rgJ~n~M9Vian0֤~OI"f7a& BmL|"O/~Ie!ѐC,4@j>E B WJx.o?_8^PU1̔'<5yXXN:bTУa!1ߜ =48Á2hit⥢i*P_2͂^Jؼ!Rq7y`i66DByC/wې/ݯ^*Y6iVcǎ;vرwɳ t쨹6ٕ!/gBePU9htVVji 膁j@h! TRK$$^韎`D5ƄH0DZV?u,HI:T'fqp| 2kdrθ]K#:*S(5_&i2!I)]!FD }ďcksځHz-_\}cKxڎC֡~0\ؾjwmDa:-9έEX ;*nAcǎ;vرk!ATj1RLX{H RLw5Z`uU o3+"1tNҊ eZ!`B`>-Dw¿?oNTR ,n\2Q.6, I{j6T:']d"pQbHג!Iӹ"@(Ck@_b#Y7R^aHwHy~Eھ>㥉{S DnJq^Wb[^ m5D[y.M\߿nx>V2p! ^8~ *vUuKvƱcǎ;v G6VCf͋"OC@ hRRS:I|ZƉ3Ticvw'R0d,S&G:L:Ȝm",QƉ NR$DL+?'4QZ)jA%ӧc G`sm&X֍z3Z ̨.TcEpZR~ۭq[2-^w"H\~?g ծoY\~3if$JnK ݋vرcǎ;>DZ2UaCDk,JFJk8FX6cAZ f:9*N-PDI:<]뒡V48DE`υ*1tg8gc˙"pR ( 㕎^YĘ=D^%G<|]i:8{^!CA"5N'Se)*|xzD-7$ٺ{D̬=lunLOWeDs JTJI R*3w'H\jDU.H&AS}x6ٞ4w|~~sFطV!Qylt+Tu}@c^}{ԝcUwYV׬[ ε뾲5 `038vHYMQZ_$l͘Yר r%"mkzK{wm f Zo\RojܝbϨhgk"ZIkF- Zf 6R!&b o,I4S[c8Ls#4"m|9Wh1J#Ӂ*LuFJIۑu_IsRPB Zi!>6Vucz\GӎRor5n? ]o(W~% *6 =MBD[E)/@`0 Āh@VЄL _ B5ܔ}Œ,7װķ|j`N+৅xHH \H U ? K/ͱQjYI0@d0Q *\ZEb"ICt&P'Z]o X~iN//MJpkTk\~)4uw旙yۙ8L_ftVjx#~3s3jm4_Dj* >`+ ? ؿ۸j) *9tפl/Czn?}qwaƻ?N[(nqm{oܱ Xe.[`0 ?ph sTCB_ias.eC@E[ip}>ȦyV*-W")Tt ΊM \(4u8qPӆxzb Rq!11d#1(M^*gOAyu%Tm&{*L/3ut9o_C3$)b646ک@=}Ļ-oY{ >4&+J4ŋA!:CxQH:3}y,uyp\? ĸNBn -9m:! [޻=b9ۿp@UnY =އ^Sį߭w״> `0֖\W%#z."O 84*LbH|sNk~b8D"5g<ݬ zu)4q&n|9]PU/OU$Dh4 JL rHSBTȗnM˧pP_ |\ %{tw!zЈkzK y-P(b81E\nM?~H: `0 ÖZ+>H47U I+ !lMRǯE=kڄ c?OݱnYzoSL+\vkn[`0 ?qÁ#[sTT8N=+ZaB5WښZ!hˊ!L|^Pm={JHmvC*׵Z%VJʑ 4VQ ZHX rLr]@RE`-#<X%B@1VWJL?t7^{F[59R~ *CtHK@=>dR' 7[iBzf}\ןwkP,ݯ[ٶuK8݆v'IU_b=9l]7S`0 8ҧےĥf7MB7)Ju^RdNpLHxg@\Pw,Эh {yoMR.h5yF5RVDbBBH(ը!L]cg<xZ3)D,<@7 IDATZúUz~?~_8|]3 Y_/*oOI)pfAdʒŨo ).ֿefH m'NQ]X}̳ 3GϟO\Pw`C!kFѹ>MIiֈnZs_(%Z/rZ.i<8[N 5X/S@5VH/)u/wO3jZnW[\ü"u|G'jZ^ Mg6wQmk& WDz4ft;lqG͂@~=?=lP`0 _' 4GY*n}퓏{6vm ǘڦehPE3F]3A0'dו8DYV IZVRH$ Zrf V֘@FDh#˅酥q ZWNeo?ЄzF3r@'8|3LFfBsA 5GksϟXii|뵰!nH}"\+O׵k=WQjBqk$4m 1TоYʯ6Ѹi9>Q\Iŧӕsr Ktg 'v`0 y$*Ζ  j7kvB#WER$g.P3W'jqn?i ra SXh*+Bx_9̩wW&"E*ok$ T5O;˚| p L@+8t]!p3O'0J&=f I6!\<~_~}לl f%Fy)HCwnހl.":~`0  ךPArAsCmb,Wh~Uͱ׫hPw1*ܻ$Dl)=zJ~3ܶ@)Qs&|9X 9ȄԖ DKғƵoנ“1qN\ډgH)p 5!f93KB@pSTI˲&xkx3%Ӽ1=Msi#|RkOZ$,P}!{C3!~pׯz@]-8s&y,c?Y|g+о~}?8mmymHYs8F`0 _մ SpޙU!XZm[1)A&wvܬ{RU[m-۹yÖ%>q'9WNBPY[e+vIB8x`e)B"J L 4)s7,w.p^/xs^O _3 nt|3 ֶܴ%;ݝ:h8`0 |E]L'%mlC JaSĴ-!%JVZՊ?~8m ~hP@HFBBY*!Έ*ѕ5^.z" ϗKf ƬG2bZmmiW&fV7H9\D\Wj^f2\Z8~;t Gv&ڶJ!޵ͯ`yدP},W A4᱉uv+X}CMm@sz]`fxX `0la{kڍQz])bӶnꆧQѨ4֌li1yňV C$H5fݙuؿP~+y#dlBq!&!|?Ip`|/TxP|`&BJ"p8¿/4SYvn*if~"Ĉ^ Z;i9`PA\0úBsj~O\meNMݭqpoC8iKUc}@w"}3p6lE;Yd G9(hNoq_z~$h˻T]{`0 ?)b M&-r;MJ[3Hjlw^iC:9pCBSDjߌi""+1F|h33Urk4+^-M <HI0A/'v(rYVYs)5y:|JE Yx:QqĿ Uy;?i3nM~}po0{~*|O25zTisk# AZ{Ko*lc4`0  lueU:S 474x:@kЬפA5SNV{ŒjZܙb֕ D%.ݵuNSJUÌW4EϘ6p`Y4wзVD7+v?pO\V9 i M\XJ^Yx ds/Ͼ&P[CYFu&}}">'~[=|rD(a[ ` M;}&c?y rTӼkXk,;zެmkK]#;Gker|fZY)xcG`0 Oܬ'%E ͐jpLo\2<ѬUںyHԜq"0k!D<̘5D" yKFC^VR+TH!PHm6)1ŀ .ouaO(SgIxkOpf X]UI5X$ oLL!%s-ukqPHotV$9rTlv/GV j)} L&]J[mM`f>WdJJF] (n_&iyw~yt˺5k6H[ڤ`0 l'bkwCӴ@@'ȭg6lzvY г:RF(:GpVxLԞN.I i9#d?x%$\.Kw*T&I9r7VnrA%QB`Fy3IfF HD Pi45P~3)BrUD *LXՍF(gT!R"n!!}]qO[.*~y8B[{ȵVdk]ò?gbwrz)IKwBt`0 ?'i׋(vp$̎E+Zo9IIEF-F#ѡJ%6hfؤF+sVԕ5˙-hD"FP'h$i"Xʥ,ib QhE; @`VqVz浜@ ?&tby'¬7X. dR: j3/O)"AISA}ZBwWsnqZpkҷ{iHSa|ckכ~dƃ{}Jt=}B`0 8'J[{[5dfDpךOTS nOf)j*.A!11JZfKO7G4O'^뉷rfZȭqH\5C_k$_%RC_Ob2C5r$leY/47~֕s=Bl0rL<1m dĕT2X@xI45\ =5? VO' 4M}_CNQ)叢ߛ{S[ڷu*Z5F9&(NlݱQg7~_YE7- |oCļҰxP:Rfib,-c̑|6ĺBڞbS-ʩ.p=ˀVwj739/0m|KOda~+ \YϨ+6^*F@[b(^J&f4YOx?/Է iW-,Mē~ݟƮx]"{7-χi%Wu&}'ݴe0 `89K1Z KFWN/+epFdA]rzJ6^7N"G_JV*ՌW l7P \Jϟ)^D 5i~b !=bQJ1.Z8JLy Bqn+sH [=Fy)}R$΁pļջӬxx8U张hؤ] s߅=5 ܽc!Ӕ|w׫USa1wB'(|r{]in@ͩC'6 `0SiӄcAsZ+D"T':(א)ʹ F\8nSDL=-x}!̩VS ϤpHhi0G<qV^FX7)-V.ikZcJPX(q+"'`椘(8Co7DXe'rm,Pey&L4'8y.$✘A#pW ٺ}W4:1-@mB2'h!Owq=rn*pq{ t!']t`0 @ñd)Z*yY7FB+[] nD,N=ngjm9Q) .ްO@Fb M4w !DaI!qz"LK!P1 ʗp_7^hH(qiaI(n4o!5cωlR]7h*BL5+ OkSؾ5ۚTtUIy} s߭f=^1z&(kx7u*{#`0 _zδ5T/F'qFrjP <*j]VB55Lj&ywhA-3*v Zߒ6X6g,+sR^S^`C^DabgčV +Kp"R2p)$Bf9~ACZ DzTZ0?qpR櫽+J+aJvk-kUٺ>BtJ@BvO[NU O(F~z E|^+=xlwX`0 ?oKhӌ*5X zb[HƈĈ8x ƈx*:EPǚc93gdVJ&U/+2)\ IGFA02͝$ FXZI& YjI1ѼZw\KˬRIMh+Rm+i[mX\N'j8A#J`oBn'5V}1~x![mm-?rܿva$٤őJ.ooyѯAoڑE?`0 |d[P8'@XMsJi)nru;֌9VJ.@APAՑ爾$1"/3e`?NDQ!ue*`-,$Ai\օ\2?ƭL3Gi**F@rЙuͽbpHpei+STfZ3o_"TbT#VZn<HֳFJ#D] Tm|]>r<z1}cZtfSա nV\zӖ~8K _Pi:FYh8`0 §]ɵ4 7\ ֆ';Dmuܝrds('8 6+M2*6}Lqꖹ2c[e+&f(e0-4?sjTh<%H ;ĘX3CU~.e]ޘ3iN1p8l9C@o:uj%v{ w?}3qnzw*ծ!a}UMr1s?ޭW!#l͐X3Y IDATf4`0 ~|@c7o&kEcR@CÕ4<n5ek;Lnwkp yR>wz`©N4ۺM*Z{=_9c8nWDaD oktI1y#ʼn&j_W@ Cm_̓r~OsQ"&˗g[OiRJI岒/  ^ m>̉{q]u'`?wg)5L< s^~ܟOiv'ܚr?ڌ #p0 ுJk80ERiVCV9wMȽO\v&-\'k{yj׀]Uhצi/N:`0 ?_3"4x6͉qB`Ց9  &Vqo/ :AR(a4aM(^ * B М"0n!aͩkAP"N 5{9qTemA X6}*XyEMqui7f$c1'FA\ $ֲ->qZOm@Q[0XkA jxt ~f%Ϻد=WMTՃbx8CH]qnbwX-MWֲ\zW(`w!0A `0 ckFmSA0 |AH w ,˙L%ߏ.=G] vL beƪ!R (jh-D=ҬR=Sqz7hbCDֺ ԝV2ݶ\)-hd[PTobkbLDOd[2 Xഞ z&炉sAuDP8  0)D ?)-3U 0sh8.Η*yʹsF[^UL#4,c$IJ)jŻ.Ub1to:NUVM}Mwrw͈ݎFd'lZ?W>U,%EY`0 :TDʺrQ"jt; 2M -np†ӊ17H]k^*P!(Y52OGC-V'>ʹ(nQj-Oao\j!x]PsDB_^yͯaR Xc6a 3 ;B#њbx X xJu,c9E8䒉r9J)LDuef̶W}.pc 4coMX?:]O FPg'-Rί׷q~iC˾xo$CD`0 8!E FgP!օC궵SkD3&^ 1v6h3gC x1j+󡋮:V 5!SL²,HuU]XrFpwkn$Y>L{t4#Sc̜9ݗ*@f\ YmG$e+ݗ/ӁBkʢ U$5C]ɵUR1zƤl/ڙ(3"BM*۶NT̍|#אyYsFű4~ĽRmp<ѷ}{|r?.uo>K=wrwS|].QzL_Ç `0 8 g^&J-9|9kv4h 4%$(m˔_Oozhq<bo =BzHQQzv&S?s&f;).-hsĢR ŰzeNꄽn<-l-h3T#"k}ŵ2lj%NBڋV LO䍭7aa3X!"*1)ULi8<%(h֐Ru%J:N#U!dQD܆գLpB}l BOxMTfwAB7F5> `0W`ARDb0q~}CB$ B[g$h!)Z##RO:Z0pǣ2}9V(VR l k eb~>0}k`V{*e{ fN9oȷXҔs9Q[ExZ,1!Q5PR&DDА0i+p3B`sΘP `mjثKYjFAoj}ݫĉ)Ң!PR4~9T ֍V x'3un\ La9WP&GtwRJnv5oң_!tǾV+r}NTA·|ܮu|v$ `0 lNhJ2Ob7xO4O#&C0fH -\\H掦D&ۙ0%BH%a8M!Ήt9_Ol XՀYŶʬ34!V^ S Uėx` *7TA qH&62 e Pqih(sިXqssZݍ0BPrvuӸ5,R`0 (}ǢJLle%,E0wn&R Lsupk8lV[BwI!߷C}ֹd퇴=+<>`uvM_dt8`0 CmL *ڮVfOϴSF Fڶ2/G|"çIz3.NGCL) zh[!Xt~>}#hȭ$6-8"1q7n@Nn}5⼖P4DnT3LXR$B8//~o$p8,#U eiӰMЛi^wwǹͱ{<(6>Jafeuh `0fħ B D X5d\R6G^Io+:/Li2/к< M BDkō$2)-4}#AԀ#k^(Ih"&8aQgb8E ) SSUty<(p#[#Vfo*Fjۧ/OX3Zl[0M [] k>O/oZY䒱ib^YьhVUTnLc ˪Kg*xNʩ{6p&b??`@1D[F`0 .8VMsRiNh5^.>&0iFDB\ Am뙷^X4M<<}|@m`B˕L/).d47fQbb¦NZ&h*lR 0<5SkE QJE'?Y\XkA tEga&09νB [-;ōmG~^_xmY}_:zQ&1 `ӊB@T)N#. = j[Qh[%@vZU5gJ3ڌ/@@۶ wÓcd};Q)sEqjθ(ogs\@Fp(2eIc_9D++UrD0*YmcN SBFa[~j%Ű=r˯_7/Z`B ⬾u);\·>:]]fkzåSߏo].L~A _"{7]{/=K `0 7ˉhƲX 1#6m4 fP'ĀY VQG[h}jui>F%sYӑ GgQdNbH8FP8W#bq'&)\Ϡ༶BT9Z_D/?@MJryYOD03~[XW ,̝FckP[{*eS]B^wS_U{ߘoywp@sz1yF'_So6f1<`0 ̌f „. úߢ:)(ۚ ͎4rYEbM34abژBpzzzjͩm8-*EP-x6Zil0&'f _+3핃.-3(C KC%0kDBt0^+)ZbHor G,VgPxGLG9~9 IB Mׯ[Q^r=M_چ.t޻z|{\r|L!]/ xYPur{a[} 뭏?"~Mts0D˽ !:3I.P* `0 TTqFBU/g)F m A=fLKKAJ_BP[C,bTL2W_.þjm9?y܈kS9捤Jҹ,LHSG~VYR [FU6bAԖ9\ SHh /l[e&޶3_/ηr|oL1Q(,1Q(eCDxJ lLIw!vQ'kb+;wE {B".w Ĺ5on_8Ճ.{uZRK 53U`0 8fs5Yb HS<)Djc Ե F F!px>P) 1"*ո,ey"׊CJ?Zg Sܰ#loX+SD]y++__+O1p fB7L`V3'ZYh .ℨa^%$kZa~eF/& aXƩU~XG#GM!~<|׼}:V\Ew2.cLwۥFX=곭ZRi7_ϭ+tk `0 W࿔hbhؽCb=gh5ps᪼g)zXk)jY#&CQO4-s<J } ?#u͔mﯿQT)x+Ʋ,dɭ2*=#>? S}ͱ2ne"׮Ѝx7|~ t4bwҋVo `09vLO̴j4bDb"Cw8(0G$)7[LMhhwX9W)&i"J-BYAQ:41Y!x@L?MOǙT1>KFJ&ֲ@@Œ e%?Lf6m'~{}7~^{7qLűGR#k݈pihfpݯcNBWـu+^7]]{~ wψ|LE*9y`0 ?0EZX5yO IDATܠcP{}طNDN  A]{B LPiދ ;BX-SJ҃S `Rֻ ֺoyF B), ll+"/o2/ۉQ'L8x 9oȭp3O:zWۉ=ƷnTmi|!W9 U*p1S?v+6>ɯH( mr#Xv}]t~O˨#2nG} #n1 `'@1v(/] (3.X5b 47p 4J9fPk&L I"aJ3_D *5W) dHBJ3A@VhXڗ:SY36;s "Laphwc޶3g8p 327m㭬¹VnoXwu f9% a1{={v=?lzVQ@uecc yzV?n~O3wIn+W#Jb?,`0 ߟ!B*@x{}ëc٩猸g2$oF9o7L)ouzx:%d 8 wr 할 ;oH@'x(XYb@DJ#Ĩ=C yIq:ROiN $HZ"1A2Paoe ]QsN-ԗ)!̘fQ9*ջ]C  Iޏ\6I] } (sӿoRj;qt#&WnN{G"܇l׽u`0 OcH,_uo oaE@EjN21&rhZ}F/KЂp訴 sêgwъ@)LCXMLBu@ &g,BDn+i<ˁs]X2%X|k8p=p9,*݋]C%ûxq7%;waoPlRcS"p۞?H՞ǮnMv  `0\inLm D VZT3\ ij%KQsFMyb텴,eׯ9OGZ |Ā J͙JeB-{ L2&T&PiTNۙ\+Սc K{')!&diBYV#ƙ 3؆H%8N3iQW_kp?0yƒQ(̇/ӄc41bJ!A*fF>h\[oCcvǭ; Hw~}u"u:U){wpo+r/>zz`0 6"ʖ31FBJɴR4n.Ԝ)"*\Ҙ<$ AԆLO\Z^[a Q ĐP (/o+)$b0 |c sBP5|7W,ND㵝 bNuC BK9Q(d&߶__Q"',)rza2'DZ bNLEl<4 4#@*$TJO }!aj/˹k~~#gůɇ~snyw|"zd͹{E`0 ,)zgՠif)R$NS/7ucb%!1f ^4 hf̍VG(%Upx'fh@A0UHA1CEH8ĸ,4˘wF훦1k_o3f 2w?4Ғh8)$C n VεD^ZР?[m.Lןo&l%}D>|:=ݓrin=#wp1ӭT>`0 @Hf=Gֺͩ@0GCvh>vT+#Qy f) (yh[a{;t񧅼eueY&$䜉sqWVz`ǻܻWO)EB A Zx+'/D&BDvXyz^xi'~9#[E?w 4cލՍJV=50ו23o!nw6hاn OO{:-nA{HO>h~ZnC`0 ?[9_ymszAf *4 oFkx$*1͉؝n665̝v:#"w ؊ Dp:-ꀂOƬeY=!0Ǚ"')LIIsr!_*M{2-3 uߎ%ėyt 0xi5Sr0-\ֻ>mT#>C2t'<V@UO`s?.ojL#[I?A`0 ?7{Eh Bm Mm AY*^nzd_pR*t`[WZ)E/OhT[5BmnI^t?5-83;BT_'jj?ov)-{m2.yc(3T4Fovea&Jx'<8D* tf JÜ0k ֍0%!~{(_ӣxvy߿: v|>Zu/CwB `0 hNk}o}UҋWAb7bӌ4#֪&5bRPA#%o:BY Di?w.9mRHD;|9,O|+r*)x+ ՜{bnK70PuN-S(^4Z_XBT5bl 11!Hx:NB !`)2yPCCPCӾ2ĩݰ̄܏nlgEk>TGOF_={a\~]W{vr+׹lR*A7Y-V`0 ?kj Zw+LkfP/ #i%7jĠkr. Og pd;8FnBSk!F":)'V/z| SD"% zD3IZuCH`lLƷr?VVO4)oۙZ7Ly 4j_\r75SsE8*A b[}#^ p 0~VO]>qr>Pܚovo^O_sn4z^l_|0 `w[J%n pۚp mc"*V6bR4!hF0GMqsnGIh 5✐9aק)N$lo58NG~ZG\fGi[e<]i!œ&mQ[ZUJ7KYB)Nm=<4ѱ tS;*QTFI4.gfwSP8]޿e?Y_+"rowghf(&qйDu= `tㄹaf`uaJ k˞QRVs\p&\{*}xqQV+jq!bڷ-YL4ېx-/|Nmx~L,qFRqI}p7;e_ouݨ{:+}=o<z#DfcI hxH47rX!iZK~(J$?J7ĿڃAUnݬmfw@D0#L3vH?Vd~Z=Dʭؐ&yL~и}?;|nDյ+>M엔[5<`0 ̸Wt_-;o-c4rP K JJFn dBگyhXpYFɯw*׍W}d?|{A q3ݻPTߝEqkױQE̹}`0 !! םZ#4`RhQ!3Ht:1 sV$lk14%ܜiBsbRZR6Bl5FRh~8j⎨rg5C@b옧H3䚙B Wd4O<H+{G%|BLx:4|Y(DC1k8zƯm!v=YE`:1п[vQtMm.Mur>:]tx 00ycb!8`0 h{--WB>WhlSJëaͨu2hQ9Z*ǥ{/JR) uZ67U@ \ u+X51ȯ *2Q# g@X$A׬A)VѻcQP0A܏݋G1rN.h.$ތ~`0 TrjkCm#VURhf}ixီ/{$9dg~j=UMFFY; {̒ y ̌pwTgaGddU$%22p\ zTmEBS t.t^ޮ!ԅKHs:3-¬kk85 +PzlaalW\Mj^Y36Ü2-))sΙ )3OyRVk'Jmc[3C͘Z Iyg~p2>x -@O|Jh0o' X;(țFs wǥ0@|7|#G<x_'aO}Tm2DJ֐ȴ& /v-wABuo^ OYB&iIU V+'z89D7imKʷQ̂2ԭ11Fmo]7lw6RSףj^|fG<x#Wx;i6t6xy*lFVekLӌMy_/__f}PjfI)ӤOĺE ^IMa̭ј󌚓5, iҸf!2ی ѿq V\+$KyM¥ɰ,ix:My/[ n}򕙑UqRbmNk붒Tw8Do xQv]GT .wnaXQ^o)iS^7C6<>x#GkSc 81B+m/ ob$N3]W 5/7+N+:0O3e݆>hk%StکI$%ֵ3V ԔܩNHRZ+].AALYiLd˸( WV-pBɆT@<1O^id0#LJJi] 6/DVeBZs2+%B%NmwGǿ'o\>&YG>/E>_|ػ~x&?{?jN#sa2G<x#$άN"1%ܻ//]< o7(k^*FYW~G,g|uԭJC|+PB-Sݢ"UׯrfccVs{[e\ "Xހ /V8 ˍZ+)%/L)SY&6 dDHcuD< ))rcmUpn&ˍ&[l`S+S6\!4q?@d]Mx:;+a[QJa G5J$J-9> IDAT]oC IjGS=@w0|e5xGӎ?=r'N411c/̰q|G<x#bxCvf|vŹ8_R B`O'y!jCB|y0l 5zmy6!}&v_<=?s\Xәe9Dhҽ1nuRzdŸk4N$FZ7 y2GToep`3BBL[%n+&<rNqBVZVllcRqKE:&L0|?Fx ~T)yg7 S~?j߃OwtGDwG<x#'.=?=Skś,\ݘhB'ya]7u+|+/߾jPۗ __[RF]~Z ZK.Fucz:Q[PVn`anqZ$K bc#pr\}cxJD$O+*t9ZpN!)3%SNۍd}-I$H{kD(ZPP-ÖnmcԏuJ:! PZiDÛWoi;x=Hw܍  ڋ 6xf.f}_?Nz#G<x_ qt-B.֤x)?N:M%cٰ([T4<kCخ"(p+?B()gZ0>JjģzfݼM:iZdƤLd[+\R +76mllAZN+"\~g4)yt RݑV<`Iuq-+[(MEqݧ+I|ǛyvM7|?> GO̽Q 0P:c_T??Q>?x#G<,2ML)yNN YЪfۆ'7pHҥ!ЮR3jւTZɦJU3N@JS#tEIK6i&L[)6D4Q.qkySbETS"/?DyBIt(uZc B2e{ZύEfZddE e}C臄\C7? 'KVpݏ'O'qOOZ_.MQb7>LRD>x.q<x#G#V+uHz5g|rẮ^oh(T^pED eڝV]һAPdJ`PJւCsTT~-0il 'ZXv%A)Q٢Qh:7*/J(\}ÛSr t2MZť{LDHt>9ɌS)lMcN݉N)󲾒s#r o9O$^0zT?~.t#MĽ3@!"GgkKS"o!N'"v`tw*DQвB!}#G<+ ]# ض3+2![ k4Mܶb+`pg'ZHs'ʺ$biJV5n I0U i!Lte}eQ%o$敧I# {@!l巀 c4.7!nB՝A=y9@ Q w7$@QMDZǔG<x#z*eOO`"aIb k v"hQm;-iI Ą|@{q}^n5eFDh5P+uL=Hmi$!}:jlZGp@z>wݽx}bHC4Wycf#G<+bb=r5ӔY>5Boњ3O ]4Sm-la6eԔ:} V$w֩Xkrcڵ!jD8m"B3Y7LsnmcBtq_SFw)i12.uV_IZSJ70, VY[ӷޜNR庭GB]/iW8#Q;]0Y|w&RɾMԭl|_ᎾȎo(HW؇9!{䷿#G<x#EUiѴ1yѸ+YS6NZ+A(Pzc'3L-}:U5!e#LDtZ9͑ٸ7Ȃj:֕-2Ѩ ccC^kcIMoظDT^cclͬPb)T*A#P6bjB 'p )wEiyw:!O*$JΎr3#YLDrL}FwħVծ@&?hs|Q{7*szLpa21h].Xg=#G<xĿXo9}푳k'Som$7't}0)VL#Pݏa;"ՄY^ jN;x#G<evېPfTX* 1ZIxBh EFs3qU4]-i\_.l/W$m+d袄_eru-y)7~8-9牟N'M7RZOWnK· ׺ph~2o ,Ђm3e:<5u%Jy鴳h6#NfpZM{^|1[8C9-wC ~r|fh>w=iǑNw?Cmɠ ]޼{DjHo)]X0x#G<%446g\y!Z%kH3D^.[ "%kfˬ )H$ֵӏOx`S"({s gqqyO&M)6>xɐc4! jr x/yw 3#i<x#G<y񩏫5a2d݁[ 3leT%P嶮]Q*y]=gO'ĔGFempHt0͉ia]/LSUm+\ۊ21mK|%OKQOB!<%k!6-SEtSV!ỡHBȥ/ :PL.e=O>㴧|6J>O5"?E2~?sG-w[)So]aM62k&Hd*`cXh%T)MG<x#0iviYpo|Fhlו4;sʺDy$˅֜+bْ#nuq9,3[I2s&*J֞6+ |^־Mds2X2e0?pTL g pO' ѽTE[V ݴLWkEU9/ YSw04b׊%%y<3ӏk8?(m 7*J{>{X'r)wD yThC2 s2&0)-D4hBB #J8 e~C`|+< 0A<8rc({O~:qao'*6wۍ yHpwo}N;=cѝ?>O{\D>֏>%rø1N7ƶ}`DԱ9z؃z|~ T>A c'>@$94X@RZ~#hxp_iBs v:6\gvꎎNm_F## C-NJ6ZFnJiƽ]0-} ۚ5u'3SqyGT8֟`%gT>%)}Dn^?LnL1U c2֏׿?=ܚ@ywsZHFgn)n.ݬbD? G99M}L>EEx ^DSbc Wctv!N:Sxb@YTu+̓/YۍnzVNL)@Ř5$ R~/#5LE21LWY'ZTlFmMT&lf fqyNP g~'x牦@ '\7?C zvl7L#LB W|L U CCe2`xyzd$r4vDZ{'v2oR!L܁#ۮ!"Ω.1a~8{|6ƷBsoפr}HݑF_~TGCހHo:OФM ׎;衃8}qL=jOoޯ3lœdv Ҹĩuy*edq?Qܯq?:OLXޯ> TS`鯛&{Q䓎mOZ≙]^:oHlݏ!֫a>@( 11f~`oU3q3q7lkt:ϸ]뎸ɪBwxzxw}=KmsyJm Z}"vt'$)px5׀a4d1DޣAD6؆M?9 ?gf?O_R.\nW$)ФqZkSZw&V(Hdu9FJ qp<Ҍ!JX6 =p6ln4\kcI m@Ϥ@LyaLG0@Ӵ/P[_G_[ia”2e3mn0&8X"j号? 7/ۯ*sNcFm'U\|Yct"'VņRjd d4"bL"zGBd4%.Jk^(___lA KAX/8n _?t>;{U8C~yό*# ZUPOeDb+22P݋3)&E:}V">8w Hݗ*Ӕȓa{94UBbTn@wdMjS!v~8Lju@wߡ/ޱ83z qt#SftF,[!$TixjO+ft82]U(֤dm'c:Eގí֓Bӻ6 :ӽ گ)&/ :cQkޥBqķW@KPyJօ)MmE%ӼQ P5ZT%(I =|7Nj&qLg$LE%a[#YТB(-J-c+='?&$+f覤Ye9j%|W:ШA,^ MP~a+F%'ձL7ܩj`Gcz) s2aAAu|Q?3^m4W"S~jt1m K65%J8VC*hc6A'aхjBLZ!d,eF#]{mVz[#Oy'ã0iZTMᣋDFs.I&ffJǠR+Sƽ '[)4U)As4'r0 Of|4 h歃=3eš&:fSz1gj4ҔI猈ZŦL>Oz[Q8; HO ZlZTMK JYdw)?<=Qi<%„J-s;_sdnis+)DPkcrCXO{SĨN_C檿O>wDUd8 A4aC@Ψ).GONB z}$ջ;c`RpU{kegs/oݜ(+ɑInȇz!0 Zj IDATkO-ӑԹxj8}J~x_c#¸&܏?nh;Jk*]կ3NۑFԝl5>GG7HѽQu@2:iW;Ԅ^zRER 1LXDN3)*YJP;4JvAE,گeA(FqA;xk媇qu۽Qz&GInDqGw@cBtʣuxGߪ(8.4z缃ѱ@<监H]5]CS}ELd?7~)iNB{+ҫN lJ'yT } $,JƔ&f)$Yd4aDA8N̵m55KU__3Zi h<u$"h{}uFtz$^{@b& [P )BR/c'V{>Rm;X!Z*i9łNWw.ia++me]H=SJ`ɚmnh9/1Nwl*2^P #,-n.;J [xjD &eR[kAܟd͐H4ugN3z#IJ-H;nkzGDǓ):[ylu(>N3֤hhLlkښפ3^4]f$ʔ2]a9OLi]Ք֍h>NӠA3Mח ck*J`2[]+jSYw)?@k%e# FuJ!\8-39 ׸lmeF7R$T?!r^NHwsfz Yg.uы]፪Fۯ;'41fJJѢ?v q޽r9pK~e<+qD|}č@!FnrUtPsD`^:v{Zٿ#?QُXujA[R(F Q)"ΌGGh4w}7v؆bNa[>*] @EAx2]/<>.2 DmHs#a3%G{'3 V9hu;-wNNW!b=ى z mvsA{뉻G hC1ixS?qOQqzb$fש޷N `b9~$&KL91MBl"X֥J[xPJJt͒p~=M ǽ NRelnf'ֽ ]b߮8 ǎYoZ1G 9dQf2 $#~&c-l ub#)٘{Cr?͗dudvhGNC єlTt$1r]s(G#!4:;+U0. GGx%UW4N ԙN`cIQS!X# *3* ҴsӍ?A?̟8k5&^o74)P2r"јs٢w2;'SL'΃7DLԷk6v1Ԟ ̵\ɦ$z2d>q-+9e)^: k Fxy]?? Ni]&2i]! l?Ak"qj%+H&`_aH?/gҠ2(~ζ]ɧ܍ٚ@~̗?t=EʬJNx)HN8'ZSV6Ӄ^{Hl~X+?OrU+.7dnV; 0%Z$˔u'G%@=1>k"(YZ؉ֵyZJt"JC+?-U<ꕧD AzY([iE@3k[!e~NOXkxN'Vo,Y KB?gֵ0GYt=/h̑Xi`9 S8̃4Ccs‹*^?Uhu|^Xt~ ר)Y)x>h^JkT~ۿvY?]nvE)gRQ[<;75Zx:͜NK2X[3­n ^eI,9Ucyk7ф` pY\re8 @ߪ22fv.ʅ9fNC Unnn\V )}Km8Ox (ߦӄe궩mBK)vn)m wwX6fdХbq5pq j_ 7GMh (eBF0X5{2}"bM3;db4L4MT|Bf[[s)W`k>썅^wxN^HU A:6̓P`ݫK7}nT>ߎ| xDyS[ Z3M_^ ݩ՛ޔN?TXKvS:(ؤʷ%J}hC*e}",.ˣ9k~c::%:!R@MxC`͎ j͒MѠP{yCLϣkA58kiIrV4FԶYbޮG@ۖʎoFpvqИFKahy< `à79WCd?kqb0sC *f$ն 4fK'p0pp! R0&B;7ܻc8ӛ8`!ݷ7Nb"59 zfFFܽ,vI-m-~. k[JX'ŷ猷߼·ߝVoo|qXGyʽI#tB٥WW}YkJTN kEOL`U"4L(RPJ)Lhȵ)ন $yh0s2 .oG|=v Nk%M JJu _?%{!R0ս @'P,֭ )%PZ$a lZsu9A1o5$ Prp|>W?~T7pXq3@ۂ@4$ A"t \Q izFܪ {Ԧ"ybpX,gD1zFpV2*2.tBS\Qƺ(bwmĂ>agE b4AfϽ߾U9PmL*+H#6?BsN&4(*1(e>#oa FDtiSCںL2 V9o0gT(=*`bOO+j o{oF%ۤ _45#Ǐ?#?O>1=]M PƇ 64f>Pyd68j{a!b3m$>?.-/yƺ{* [-3[k*j.PNxI/Ev m{1u_-HzQѱC2nD.)AGP2v.e(Ѩ4"(c0اޤ|'['Wv¶{8}T~L\fuSWE52Ppأ+HhqжaIXΗCGbFtV0<|լj`vGqIh+DDDz:ShH]lКI(!\SL+lmŚV)0R셫aZC|E@ԊJb*P-> A2E߾pˆ9!y:#:PNikfڈRVPAY~/65& mڽ_n Xcw{x(@kqr^0Tmtƹv\:DfZ0tͭ]䛥vk>WjWR N QF3_3hдt46~lTA!Tw`YfśKx|40NSqzrun5bbC:傷_?sH@Uq 3.a{D9!#ߕڠzpmCbӯ튙g0OJ$o)X L2ra}x5?dSh3jXD6UR\+BKxaY3+twA)2xbSdo!'_{؎IWbL А@rBDɚBCK&œhlϗ 6WEXa[IFUC\A dS(Iq *5\b֌_$ VL|“>NN(pgl5#[)CD!k g;$;l369kF֌@0DmqBZMg92s+DPkx(CœQl`hAb3D~KD 3$d Xg2t%O364*jjE'< ͶI eb.%n:a` )H}o ϶9 Ѣ bVĔD@"4&9!MZ+eE f !ByPO]˂~-(9숁4H.+JMH+?\㻏n ί"'x(+3bF ڲ5ɮuWNZJLz[KSs٬̖4NмSDՊSLV)6*V wh U(HQK1AXQfC1-joN~ezs2!\hӂ̎9hLa|@. o @&) :Ddf:#05cnQ+/n5؛ŭOTs}DRb4|uigT/_ؑk2@v֑_2[tP BC(veťQrE'aaߨh6#Ç#CŪAcE r#&jDA2NPToZ[!4Unux7Y-H1G;-r3 z6jg6\a풞~mtM ~~L{$(5U|ؤL:5f0Gs gnQnl щOX(RvtzI휝cAƷ؇h!l>++DԚC6G+va*mj_iX92: fN }fk@)hٿ&R-bd ~W7?aӻW*P טq}B0ZMQ ZVLHnR*2Q[ &)j" f r 2 ECAط{ 5̜@dғek`.xa-g"O 6a}~I'm3E@eؼ+[os wJ =(rJ(j. lM-U<Z62X8c-W0Aad'ou೰mk<>(xn [B(!"fT~fb2jvc+$hD&RDϾ.wa:!R@ EL&Sg[.6LHis;넪gb4)&}1?cL.3tLа4Mj-`, ȭ=6j~fLqœx`Ӝ Dlnrwȹ"N<|zw&~?Pt:aYSa-V4^ٌ׊!-lg|~xZVx^?4jv\Ǻ*Ca51dH m``-)0ȭt$R 4<#͗E Bȭ0)⺭}&eYaD Xs8?qbRtx%Q¤y+~1ý>4]O| 4JK |zh{ o'G9x4MޠF]c.QE  )nLvא8/#ś!/bmMx@ˡ82 kpM .{0NP݃:7 &heKz5yZ9P gKt02Ln8:#=ķCv<6F`jVځe)05m&Hb7%,}K CDJNi1(_nޫ~nV ̊AKUHQK@o$=h; ˬ& f0y7`̞ P D $ْZa.;y$ ,2.x/2|[Y7Fm¶8AO_;o^i@tz-b۬=cI&4g r)hv|M^,d;puCh&q sʈbW T2a F5cL4c@,*ԄȂAQMzo~u`¢8 tJ&z/\5m4LZL lrT@ܠ%[TB0Zuq|luEl"[C6ԧIL@l{J 0r"b$ M+*+"ֺ!4B& BrSj,#^^95JXި +Tb p ࠔ!mסs`Uڔ ]A|ƚ 8A霶X0\+X[Kmۻ;h ?><_Ɩ7L| ."|>ye@+@+`hCR2ˆ[m:XPQp~u0MQcOص|9cY3~|LX+y6:KP;M6H @,X7t:Ame?klض >䟑R+Y%!ky:. 9b'&ӊ)!k #|%y6 V b8W@.Iޖ_z\3XE38ԆV2t̨ (e448JDLzsFlLNZwċ30Ф~ƴ"_bn7_p(L폚z:64&?fȡ ! y *v}w` 혉wH NcӍDwSgˁ:voуꅄKF%^jo ?٧0s/*T}c®yMz?6NncvЁ2tLmJ__;iPʼ3z#=9\-V+.1ïњurb=PA# jSb4L4DR?i Lf7[+u$z(@J@b|O-!&C) !L,*ReG{ ;}vY po0meWBN"LO/?5Cx5oeE A@ Sw3=HVJ,M{ !r WVx^7L(>EԶ ʞ ȸ g\R-(P6Sn'p,es)my?woOkFybLwDFP|!mmdK3~ o<w_ϛmHJ~F8UZyN@g@P!=mSH&ek-[y{\dFCCr ؚ[eXQ,d (Sk;g`I&(Xʊl$VL4ae[p(` P9nWpBm+D*0Upµ`oQs]R"h:q[\~m_@o+ af|'%R 6Co}_oW[9m؃-2Eכ.wi`䒶y6A,̬uꅺFe8`\A?=Me:d2'0BkE)6D` A hRC`y/ 7;\aRnJƳW3ԉ`ȥf^Ƭw9ZB/$YϨ셽mS{/3CqQ66G5p]ӛ!Is#Z|%e)Qk+ݒɖČ|#"CW) zauxD ^?bN'\1˄(3f K p,mkM\'2I&\bF+!00!f33a?SwO_5HVŷՕ# sY?ڶ { y 35 9S.+\(bk&{ .rOP&EdĉLcp;D2bH$4hx.S4S- #{fXF*s {&yErACCEŒ702P3 f1do3L`r%2r#$g3S2RJ DTmN^Cg\$x `g N\*.a O'Ę@̸48dZq"F l!2V4"|M98a%r9efsZ\!ծ%&$'Fb@ONeN56iuC 2)XP# R)-x8-Ac+ H1`>4cYC 8f _ED/S1n]!MVՎgH[c"/lF+ ًh/`Hj=M]V,'WMLWbE#7 GPq+gF9vCnHw-pT;’f:礷[Rm_ڌ!<M_Hn=7ݿ}aAuHfj5ǍG'^9CI'x=Ϧ nV˶e6s۾s9 )BlR0dQf_-w+gQP^\9AJx|+W@MNنql*tʟ۴7/`ǸSihuۀJXR{ݪ.TLAP9}pҚ*Lߡ᛻7o+<iLPGkkPbPE- Ҍxr_c)hTqJgJJ~L nM3$(&NȭbwXFMr1T ̑Q ˶b@"PlACº-fHɞDbgHLa,I#uQtChXkkf7TY ,=C])[ɣn+ Hu]|.Ztiѽ4½q{H mgs|g |CQۿ·ˇd4}aG9\7%,}Z7f>]fU/A|#@Oick xˎM#B/}7W|Sa ;8b/{@dh8C(|tO;4@uxFNj0h~7w(OQGPQenBKo[j:@3<3[C &5 V@8G0~Myb+XEj7Ix1*Pq"{LoՐz11MDf+|Bn#ᾕդZA0f-=7c Fs÷&Ʊ0Bkq6lH|%cVYkeP8h!ѳN m=m8rTDŽV\boHoE[kv~p /xH 60w2Վ%'ٵE`QfԚ=}f|&+bҵhix;,m5VV4Gz2{Gjt=z!MdC'7_w_/Hxs5dz&bɤ}M1m Y"jAȰk}F9uūp AT|ҠԐxF ˺"f$`"+FskTX~:dۄ~3Mhт )N'hf`At (>uO"?mPN V!(Z|8X1 W#XEon=LYBd` {[A@> B O2"PXBъHY!]ޕ>5'aC#@V,7D}RfR O"%Dk,YHPg[ ؠ ƀl8` dx㘒5,X P=ϥ˺rV,&M3~"ObfPȨ[9pqge+X'R'hU<ӆO+~~X𗏏a=Iޤ`kd\N~zRtC6sOk[B1OdL>b1[S(SV(؆rխasm)Du5̇s0_N(yCO?~P_/u7}(/tTQ/f,&mĮQO:z5L>Y9\͇- YwPIaevl90 bi<̖,ؑn+CM`j?Ccُ\g/PbpO9?6q׷:|=e<93covJAk6vb̨7=KVp{|:tPV-uLb jEaσІI +BQ#@N ЌVF#c2.A59{ "[Yٷ%2n_dŶKXLN>ycejE\`OhWLSB) =g}^ Ouw<> gpsS%1J8 AF^B 46:ڊ{Vؿn^/6#F"{]€ =\jO[uC$Zye^\=')=>a~kjo] p0ch^"C!b9%nu'$$3Z- X(b Xd 5|tUAtA`оx]vC@3 dvck+ޤ jkƜ&DbwlރAtE3R(7UD QϏ!hx`R J0E۞ƀӂ@v?[AN'KYpɺ;Bn4W ?O ~ft+Z0ǖ7Y ~||o#bnxTqI'Q\+ b9 (hɐ 1' } @)*ږֆ3ThiBqx` ]Ub ~RߩU0ֲY2`Ϥly94`E]7Z<{#z|lfiPaZ-7@;`.Lvo'N7+cH8 s&۠(_DVxG)8MST4@#@ʞk/MЖ0vhZquA0(?1"7\`&!!t8Qa cv֐8aaϛ?'F'zQZ=$*t,uh8R 4Ӈ;6ty8+*z ߛaPV8B)c3V-`!bA5?u ha1kK}4BE#0!bJqx^BVmyB!uXSSz+1 rvIjmȌuY1]&0LhDۖcD*R izE˖TQ@3u[E.WK޾.(~_O~+r)N a\3Fت!͗I|\>A$TW(V Mӌ|7oP,I[~DA\V TdHjt/%K2|h`bԦCJ5 aZWbX}Z%w!YqI>:Pǁ4;Uw67s_0w=w"wL|jZ9Bz!<ĎǣaL?ۭ!Gr~ã^7/4|߽o$bBƒI!%rן{O#˦ ![&N=t H' J1fNk7 Pbu+ %JѰD_.S1ip7zla$S y617g.?K 'v+;Vhl.l;;usmC0eM??|3ᯕF#d5 =7{$̚Bas*/) j3Ů=uZ9|oB}raFCI^6>3, Go"Oς?jze͉O)z@ dS{cETӘ &Z*Jڐ/7,+F}p)%7|zzB׵z}œ A<  el'N Y2 Ą."h@gXE v,.]avT FYT11Eќ ېQ[z#j  3"Վ3glu %TDaoFQSR˨L2C (U3`rJ"ѯdZ6\9?# ӽ շ,xܮfӌ0/uë٦uV*KUmEJūήAۚzv뷯QZ5hoų|P| d۲yiJhgl는ʲ/?x~pњ1y!Ar|.mtC儿k<M.Roz({]3ɗ:J7= P x lzR4 /̀qmsc[p)0vRFd)oئ4!lCqa%b)Xfnh.R/50YPYӷo/~ τeM}bP1f~\DYkKR؉8fnECiL'R[EJ=>5$ ( Ն\ *;q2iSzS&PC2{|ه6AAN2cisCdAΞ+㟉a0VۨvL1bk1$~=ME) Z%ZU 6a怼Ujt/Ĥf(CLmKX6M&/Pm&ʄ7N)&9 lH ߟQZZ'ـK( óԮʀV3*.2$٦mAD"$QX0 BdQ3W 3*Rpڰ |0 ˄0'P0yEԵUI PRLӄm[o QlKd{yz3V<.QXػF$YGDT̝dDfUf}~ zg*oALUEADIfT! ^UhZUo&ձ(}ER+ >XêiJ^/N$sX (.SF;$. @-<`AW1z:3YȀH|+ҞA^"/$_J_|ֿaYw1vwwms!nq襃ʾ/KzTXR'UC\Èo`:pd`lgfy"N9_qԍ,B Z~]@3Gac\`o,6:XhoRI;iG.N'1š9-:|{v>ѽw; + u`PQ504h7e LaoT+Ԧ56%I:bIr|%5,'%KGy %0<2%4 &bx9IxJ{:GxL$p2}I̒{Ո6vc81@,*,]'˚&^2E#SU& 2 7؈Ҭ4ٽ\_] c:#Ⱥq(Le|2c%ԌG_x^N6ak;c-&!RGBaR0OO7`]ސ)#́#nJP斓mȒְ[!,tMap m/hZԶcIۊ3J\0s{ ]A$"~e!\1VVAm6oΙ產Y&T0y^D7 J ?,iFm;Y9g|Z$x&vr1y¦~} P ^v03+"'5T-XQ6 e,|#VvW #/n[_Kp^`Q3]h^7ۿo6|v6ty˶$H"C_7-H"T(taL䋃Oed;t"ف)j8iSVQ:Sn\9Cq/),j))z!$_'|4:]F)vG~4X+<ۦο3vR<~u)㉔P~D‡0o6 {ϑG~dى::CNgcEd=^d>o6C4W HtN]$PfXxz{ m,w*k bs'T~8uM2~Ȝ2]7?Q:w@5;+@qжkq1$VdnX&A~|"`̓Xaؠ¬Udga?N)l*^V] fħ0vW|Cb`qwtvnkTFr٩NF.xC&:Bn# cN۰uނB ҳ5K>r甠%\ѱ)>s9 pwaB!~rKeɇWzÆ)*utĐʈtO=,BgdjV$ǾFh^m>p_Le2 Hŷ0Kҡk!%&Hlǐ!pJeԱ &*ZuAa9CoSFСK ?9(V?ņa@d'Q6a Ad:i}+o+$!'Cn_ mNMBCQ74AMY &hlc`H{|к})"od1LuƑ?Dhwd|];{9i2P71vM'p.>ѨHnC2(< ^ [/R7\]_SP`ƭ5,ZBnGq=$߉͉L&vKsi 36a5K>; 1K}4ө)Ǡѭ*FzN tx|9m~)hj!2|fV`y>lzFGM[ nȒp5h_yhIl$ J)Mq3v@42$mPE&/ {0-^R9TPˌA\X'@") ۫-yjd;5`h!Z$¶m*p fɡmGJh&. 3l13c01.yqI({3[Y SbXݻRc-As`3 DYf1LFaUW$n #z rv &e# 0%/,!S|)^"XKAJ~ݮeCW'wV0Oٱ+yHNd [` XeX) ֐gĎ+#z[þX//?/߾yݑ-b kݱn"F2+VAa)[ieumNFn[^2Z!@v('/6 eǒ&)&NH7d)%C$8>ŋsmP5Muǐ }ha'E~Nvz*BӠA>L~_xDnGI۩蔙q(F&߁o: ]un~¹C۹e|;j?2~>Ypr#§ [.2΁s ш~DN a%ң,EcSVE]z(ԣo[i P4PiP>LCmhq`!gLԯA) TI(Tm)hS< I4d1ܪ$grG2"S1[)qh#[Nmaڔ@Vqqs 0RMu,S"X=g :Ahic^3W{k:~Bic'Fů45__g}6l0O;uVQDˮY4}K;IQs e;9Y {2]4= eC? vL1Clo;j {gH`->xkdWGI=|qHӌj -[A*j#,4&d u*IS"}G+@) Z@ ]OW1D$3JC1DC7 *sr3ƈմ# \mP}IauF@ C$9[k-x>"*ZPHxViJ <Ў2pDs IDATdB] W_ -}Ɣ xAx3913EiR]GtɠyuvE 4 6òlhAaJ ZHX_oӿ? ~ϯ5YB)ё=ԀCwq Mc#}s<L~mhZ9ܢ۬!*r-~ՂRi(ȑkb޳3I|QLa^׿ PuO ?zPոCؾ); $}g}iyW3;5{w =eZCq`; (A26ǰr ,QW;FW?0OD(8Ns?Wx M]#}0>r47x )8A) g\h>NC1z},SwsLUtTuŶXlOq 7s^F4y~#Kl9Sv> `j fTc 5]|H>rQ˰N.'n郜75 `pאg#0>wq/7~M8GZȽ}~w!MgANP>(yuMHLpL~ۂ'|Ywܶʊ>xF/c6BA۴`aq a!­VEa\K҄̓qz„ ^]m #i *v|VnHVu sPE*P}V@wxtQJސja1\ ZMɱ=`w|V^ ^8ùMQͰ[0@I5wP\_r:e~sΦfA7uoSA9G(wndSGlίuKN]YOPKtJlHRpɌ9M= L')HQs,H0s{Ǔ/!˂>d#} taÔoV):{;J8m'I`}DSU +"IzE:D|kETw Oh0얠,r ݮM, m;ؼѱ-ΆČDEx䇞,>Q"voDWl=K 1pow^KP^5hQIܞŦc1>ؤv%g'xJuǔӑQ uֻAr Br_7NX9Kvkv:-zFkOiP,,D}tnxpEGaWs˛ =ρZ6SL?PHCT[`V1saW4>)M"36]1 m!n ^p`%(%qS:`ėpyĺp/4c ۈ+/ۆku+%bKdei )h$*Vڑs-9)JxVȌKΡh7 ֊ݼ,w4|ؼ-22>_0gW=2y5ϰ]F$ijzyķU>?>u[$lO4zP"05Ŕo,]Ո ПmxTdNq[TlzK]@YP1po]~=琀CrRL%66j>MFm%KKzSN!Nj>)yP,Rc__஠i "Naǁ89WBRojFUp{CWI|kn얇ZXխr,{8mCPdm0/\%Q2lmGVtL ~tŪfп2Ul a[AU&ǟ*:{ J,}Y.(`Vxyj Vk`p뎱_dd6MVn~}5$In1ynBi*aNKּ(! ۫+Z?Ey~ x]d`%zP{!얮\1rhXێKPu?]- rJH d0yъMv&'$7@V?}nhXg9VZ }A@(EwZ[˷W?{uVҀlHInW;f {-|YEQQp+c#C2Y >=>VP &S_AvTTsƛNNV}=lSz4ߨw֪K)$r ~?иN?D#~g3J"9 U2]Gqxvt ;Y)Lo$ɒuVn(3 NsH>ڝMGC[NEm#3+}p(#/āMy rb6lKغd1$j={*+1NQs TeI8$5;Gʎe `g˒ȢZ:!@ʧ9&S脡S_8PazHRLOX]F8C nPF]`KUG"B$ ĩ;HO"YCf1C<|л|LQ$cr9~}ʁµqsNPK-hMխB8E S"OԮkQChuk[7A;gy锕ٿN;/,W= wSаHD;Cu4xbw"]m1,ۿ^+`A ñ y9ECxNOyU(4AI@_euXkjL6Cz8v/Ȝ? //+| __n`^n/fF P%A\uPbYeCQ`τ۶2CܖIT|~|$Biθ/P<̔Z E\鮵"@4eR'rJhj(Nn5SZ4[,(8#tu$gB#cBvbzRETz0'J'ED -m[9S2A/[M℣Pρ>92#nb (w AE7y}p?Q|GaTBg| WwNg☽ICe}΃a|$Jm"(|.]e Fssj?& CQI5,)I` ̋okhmjf0 a2^(q7G9Q r ++&Ӱ 3L]Q<~ IzdQOD w)ZhЂ?D(Ũ#q hSè-:cfM#i7G|NV-W7RrEHK"72c2Ns7蜉 I{4C3T#t;Qccx瓊rS.BYE]Y!d̆؆*/`#/e56ד x z{ߕk>nघ/+ 3Ϡ˷ b3vl~! bOq#l`4sTg*卷vCb!>ДBure8Մjoehahe|Y+v1sU2R&*r s"D(CEs[J>^=an%P)L15`I EV#GBSl{Fq;_C[D˚RԱ|'Ѝx:۝Ɵ9p,N{zկqNq6r 7'hi08q4P7׺Gt`4)Zn/zҷyw9U}S5B?wt{;ƛ[y"bڼo>}X?,?avU4)lz?tU)@r|>S[r1Ct\  ? PX8v*n50vƅ&MqMxFpcuD) ps_#A cr<P+4|%BG Οg^B^ӣIZGV  ZeIJ菠KaƱ)~{\Ž|o bItNz*w&,WBVz;vW T >>)kN-"1SqC _T)l@%ahQ͝<>ޣ݇}v9Dn@ xKHG]P8Yte?AzXƽi`2xj8@۞Uѓ޽9@Ԑ+_}ƿ7|{-Ҍm+X_w.(1;$ C`sKN(K |YIp7,)!L {tWV]a93BfV7\?~ '|fdqxI 06&"3(ϸmh(z^p enk&ϧO8,Kl˜L0O-2YjkxW\̘ T#LtL_B Ěe4coy U+(fͭӔ^-NrU@r1]v^J:w]) AϷ)$yIGb)N|l,E?XStxÕ5;r$ooCwl>,o.v{,$vL:pC 5m~wīSo ^D8aY#aa;q*_b>L}V|\tNoa*Ԥs-P=2;[:S<(S!P(`r, f;-Ra(>tZbM|~`1c}BۺE jnѱ͈'zGSt d6#@g1|K&g+ZG66^ 4^ʙ3꾏EK?׶ F9EV! j`j+pRQi{\) ~ArY[okÄf-T&n!W S\W91=#8Tql 8)V:m 0 uQdA#(ek8Ű@ nR DQ ~6^a<e` PQǧo/m -ԡČ?|${ /w$̮rh@  zY*6f( 54zÅ7׶š$dX 'uۂig_CҠvԪp|Ns ;85\dNZ/C0R} #ۂ ՙ6lp ʄ $ =Y4x)7?e߱iCZ$y"3#b|YcKU/8C7D`q@Ѵb_W0_6^WR ᗟQۊPQ1Z)Pu[Q8a-e-;[iLlkA7_~:#O_~߷$P5( unȐw/Șy9`{r8[Bm(5pzY6&A ӹ%#Y 9Z݊p췇?~?I2Ý8E}r HJp`{hNh]tݻ6;dnP𶧟Ϩ⮓hS'I}nOq0~g%r@ywOqO叟k`}gUBJ؝MO}lb8Kzw]*{Czj { o{-)lڷ:F^\8JD DxO`ܲD5ZMK&zQ@<yiNցPL, P/샣F7F^&@BcHE A۶aC1s6xDcj/#C ݩo9Hp nXJap8 D{1(ʽB84i v>NhСw.G3,]qPj87:+p"G'фT-23WpW/;zU=)Fxρd(w~Tj* (=е7q}XsQxBZ{W7Ayxpcv zj+u5\O7g nuƟ~6­q!L@@H){1{u{'Z |kgmR 2S3E `Gu' XZ7d]aӆĄ'le%͘rL32c؂D, &I 4rvX.jtM\9۟@qIxf󔑅QwMU֊kX $Z›y!cJ)s«*/K(~@W*Z#}&<9h:lF1;%-R)%ZΊII.}lwy pyLކAO>ΔF5p#=3د(iП 0ow{B Y6dޣAR`۹;9aP3F0 2U:.l-=Uvp I)EqS[pC1ЂG(Ay=]m]} aO_t30 슎p į+bAW0 oTբsv:Fƿ{.B]?u?(0Q-gio]堎*I]R=TJ^(Pޥqz׺u_/P:hت1U{J\>]ҙ8nC\$<f-]Gي[` d@yywϿo~.@la/M(Aca+jfg@愼Z rf̸UQC΅v+PT ,X91*1DyZu ۾{ ,x}?$~|ӵy(>z) 1Z%w846hn^4O_=+$x6Fh-1VE6p؅K&ߴg/7_ӌyPn@;C0/EǁUD&C j؛9к[^KTè` *֐Q䯷PU|^Pዉy:l? PI3 (I1 -XEiZ0O;H$f o q KN ~z? Zn7^oXw+ݶ5.zYَ*y/;l_5iڏoY01N(iey5c?ӆij 9!HEWsr|u&iMq/asdW:|AX%r_AA5P&+W qֻ#{OᡷApg5ǻ68a8$aCOڣǂ>,r.sRLMe~`ាC7|1ȅDv-!u~3h?<<{!nw';mvoV¯M7;Oݻ/>>H;eAuxq>e=F{eŴlQ  I3J8ޠZtZCU6U=Qrf]!et99]8~D"EY]_MW}֭i 94+QAyrU=ld'ptX$P]q};2 y&"ws䍢ieW62+qȆx( #iMޣt܏*(z]yv&U7`<ǟ?W0%˦P!qB&^gY/3 = `.Bqk`pbN3)r3nT=ۤH "MDE2n7ĭ|* v}9s05.ᾟFqiMl I͆gؖ{nyZmt{,Vl{w%JxȖ։nM)#㹅N]^gyp?+vGH~Y;=.M )A A]ҽG~:&DŽ* b'8NYíZ$ZAg<-ϖެȗ0 ">\>i-l0"*rqQɷ^ <!am)%(TfzK=v|Cfz 0O3>;(~8!F>`ᇁO1EDi apc k&Xʸ*ZmfkF5)%`A,XxQNߡ,^_.x#޿OXZ4y-$!5l9FܴB`&yJof#~RFd4e,\ i][4I?MJ HbLhLDvJ[1OJXeLy2o666YHuE 6tH1|-< ]=T֊-^ MftpS{.CZ˵>M6u=4w0CW]&S Ov92rFsH\m:v穘@]icŜ\iI!@yd?aN1kC-E:%ASNXj<0Z`XCURdszvC[n+3.W_% P-X \ 1\oR"Z̓)fϸ\i""c%8! q4AV(p:-xw W7/Oɲ bL1XqUT(ѢhFhmxs:# N2R4R b-Jk(}8a4Yr|Ѡ OrP&s5 8h"`r6n͖E h Us]n9 2i6Ct+ \4. Qm)f\˂9OXew4Qj*1!4vIJ!a%A">ޞqʓSBC6#(*(2TsƇ31}7vj#á1ov>ll SaAl~v!//؄o,Bhk W~nxUb8Hϭ C:x ߾Qߒ776 WBWv4pxq(ŷ 4Z)5y=\|4Ϻ ӓŻ+%!#lS]ئ5=iH쟛 .o^Tl"~7w +(zcIvoD(D0854ٽ-!luk Z:${z{ ȓe@*uH:rᅴgpLNSb 0 zmQ  ~NW&!O ]>сie\8dB@[BHB8Bm0bDnvO(X 2.862 2RolF 2U{ Y'1:Оe^jMol lz$/⋯ß?X>P3hZu0"F*aIҢ"OsL 5Q$y"TTRъçLu?ׄ IDAT#s(P*zMzCNg2/E MJq"SJh`6H83V(qB GTj&i%8z&#vo\E Q|-+J[r"P`!7 FMsF *+Nw NmKY·9OszxIsFNqH9N\2@#l,1 v)]˲ N3ΤTTZV\?=|}Z >>Uۚ]ʂZBqZm R&Adp^J1ZFGZ2 J3?-ܖ&e"H IZsǫhЗ׷c_*/tfDx)) (ܝ$V{]_;WǴPݶgqR*`а >ҬDѬ FHw׼ G }GciqGE _v;i~4Z[ ۺ.zV9) `EK?{2Cy h'P"`>qv y*bM+ZD M&>mݮ4H>D@QQjyZP 9F ˃Lj5Z/:jTRU3`wWG`t.|:?/7bk\+,S5B'y!!Y""pr0So8{wᤰ~mv 8Ic+@tP՛h+IŦX}ߡ^f~= 5=c .i #f{:(l;g DoT&n'9?aV0tvssl|Z}C5"WސznOlt@ҽ:@X# *63 %=Oo~;/O&|w-XAh6p{9Mn%زP8"QXФS|傆6#`C2S4kx,@hu?AX3>;(uݮsb$;rB4AV+gYFH  &Xaf+=:]24msJ8MDdFѰ8X9r”mK]q:0{#%S"=4'<<,bbB"9!`vVɊ[0AH<\NթV6O1`4Ec !X`&X 5 2eMॹgLl)m.j&{[Y'ۂϟOa [+"FutybIJoj3n%ZZq&Cz8nU +fol@[=)GLsi6ZWc{Lɞ?uCgr &IߵoZZm#77 w nh&KC_&(+CAɪ M^ i wF(0<<cB"7*ǿV^2E;9?JhnGBw30o'66WCݿAk]o%%PwK <]_MrXǼ moڈݡk׭}«8wEF9ޥcpЋ&eK>/U^ '^g$nt1;F4ٺ_髥|Y՚IE{Ct?c:wX0;IR]a-dou-PPo>I޾1܌W{腸s+$"۽ܡ"ͤ [#i6ͳ%Lbf+nlVrr@azQF1`W7{Dn[+Tdx~f0Lh[z4#=aoEPYmlZn}S˜Rg6<Y qMdaSeK7< ys)؜5oN зΩlqw*聚"k۩@ f [Ͽŷ?2*  ECCuL" Ŋb(޾;b57]QP+X^}RՑ -"o_}r8"'ÊFĠgF̐(x{~ӣPBU"rNl`CA'!!$2^ œ8& Dx3i]AhF@J4e K*: o ` nΈqO810& 9M؛ZZ܇ٱ=|1)w&^}a(MƲMd>j^@4aۂֱ cK>!ZK0M ҷMЏpuaT5C]z۸n #`Ly`o2Ylp0\Mܥ+ؙ֥[r71}ݣuM33k-DwBߠIk sAuu3?4P ]ӡ>?Gu&cgEM@=X쳇KB ٽ "|=K5HH>#`C6xq?^[M+1@nj$uiUl"'!:TySaHe g27N&#Ww8o2)Co~urjA.kR{:&SJ,iH'QAK$@h!G{vn8a& ֈ,i'm6m}@φq1. 3t0 6T%gY&7n5PvRMv 4h//A }1?So*~#/w\ |RЛ,6Z1M B!":AP!TMfW'R̮77ӱ*\KAD3P/N0m!HL 6]U"'ӯ>{8#Ngx' Sx{~sJĎ!qd)Ӕ kE+bP3ǀ+RG'BDSjk6&-0| fK(UP iFϒ؆d&88]j-r V0YP c@m@(0z_?>Ecm[0U F1 abl[%M-Oj9"朐S§?5s6§ ^8F nӝN*sr㈾;zg;.NAK.c^ReaO;$Ͼqϱ3 M1Lr|cDUGWǸB(ȜkڌL,uHA_+eU>2-<3iɯQfgxRyU@ a4oЈ`rN CzHyr h*()uLziP IV=54!M)䈐y@%@s?֢8S~TnKK/}ۖE?ʻ-o{3x?îtTwmo@78ަ.7FB.Ga}nȏ3:\+xKts ?vG*-Z7~l[(}uv߄߇nλSc N>,BTⴂ ГNi1N 2N6݅xJCSVf6>o\Bn'2EBfmuGLL&4lp`VQ96 yZwm5lps9 ~%t0cD@;Svu0H BR!<2LUn4 )IӋ{bUy7>Npr mLzL ţetT ť_6y׷ i{էxP6 {Z7 ? t9b m|y0CJ_C@q]+| N%i`Jp*]"`x9FkRu|(mL[IiD3o4\hgA*A-I UdMXyیo?<׿9_~] yB]@*VLWi镡P֊½ Ni*aŜwW@rs6a>E/ য় }C 낚)(g9@2e<\[Y1`#TBS҄oD9Ns IDAT FN NkŜ#{ pi θ5 D BUmOx3H>(j9=7ӄmƢj)=h[(?d!L 벢YB!)Z~-x<#,e)%AYoSMm-xyFPn2prG(i<ϸ=&1˺9z5D7(D ctkY,=r6cF rbf۔,؛U8HQqgH&M"^!mhZ fO=1:>B0)U2]0K2?䰽8N镬 =t7ĝi~ s\]4LV ` S OG1Ao qkJ^p'En.uJ"7ՆVXBi"Llo:[3'(U4Z[PZ!}Dt Iǀb6E !JC׾O]Z$fL!#@3J];6YC3rp#CG]}m(i\ڶ&ԚӢdaR>&W"{/+b[`< jx\L[>]kPv9mN| eAmAxd@m./5mV;% *NF>@?u0i })k]jqmNJ hͽ0nC |`n&'Җμ͛?y?_{/'?~hhE.V B `j+`*l, f$"T'.eu#o²V|.hU =a].͊[ɜΞQՙ1GlyiGo&(G@["1gذ%vA$]1!K!"3SƗqR~CuYnj&YZwrU i]*Γ5N"69*R0BcF;kSF K frG({k}aIkmXj1ŁKUQG{ 8I 7jޥ t,7mA#?0zcq4Тkҽ>wd0]&fMp@npcjbgb6iuaqLd"?cbkxW˯ݿ#.HQ7q3CwF-|fL?eٙ7ɓ"~4-]&2/7#Zw{ kvw*:|-㏲B l&GɁ9wYR@ πGt:pB9 V27u)SE0.3V z9Έ![ v|Qާ5 \)9sR0r^f3gt/cmry@S!jCNfo@Uj> Djn֑-QdL tCxY(ZCMlɊ^Dѹg-XHGs?,{\qc݀a{RlFpNj U!lfzB<& MuQOF~:`m+,hNrsw4LvyλJRွ5Rmao [oܴn?;]jk u'S1!6)vc" 4pj$HHw ~7?  쿛0hZͧ F @F tB`E/JuyPJXoό|"<=]ti 2RNi!<("B SsBk+iy= dġ#8!bJ )E4m/J?ೇbiFΐrЬW8)%L*VpRBDrhŜOaiʘ'PTɌĄ-ۣsgIy .crZea|:X#svVO. y俔2ֵ@ Pp؆yvrsIp L7V41dM!??us=o_<}-lZ-unx:^찷[v'AڙM{ݙ>#Ɵ B[ HȞ [Ҧ}\][wH;M7 n7#)n{r_ОDWļF[ဎ,9 I#waŖ c ݚɦ+(]gp'0&LibHkhR7DfVۣi< /mV4f95RF g%0.:}>8DF g!̞lݎB_ i&υȘ}d7'n?@pQnT* _gcceGB-}hÖO-=Pmg}AȀvuYTt2T͡Fpwm)kmrDi,51@2oQ!)pD(ܳԇ "M2ż*\*?w7Ѓ<qM7l K$ u ]gn|4L jA]l鹾E^M{%+~A׈1=|C"1@y-!w~z|~?/YO7<.hٙ * fP8T?Yav]VA@D)uix){7?\ d8R8I8Ih:g)<z0O iHtN&ɦHSIӖH3pBbO+neA 鄈(HC|"8MHyF5Z rfRq>MlϜ a2sIZ-#6󩥔Pʲ\op6T{)VLj P-QGbG~m]֊eY9q:Aa5Ґ("(!9b8FC{hĈ!,s`F",uEN=M!S U,u4Z{Vd|Lg3x~ZeN^+d#O+Ê :goTTdcjgYA/v xAyQ‰ 'Q VoWFn' =սY%ЀnU>p^c*v\Sw3AmM9{6hvr5|"]oǰ4?xd{aٛ|+qxw }a|%[[w ^Gvf+:ރ òkx}Z).M Z@ 8@ dLm~懰{YȟZn⍽.1F70 G'!Ae]sVWax:Y:]Cjqm|I[+cFK1A .A@ɸ3@ ?G:>^OD{$̰oK|!%X#K= :CJg_tAsu]5o7?Ca72;tdfD'őO B5Vh]w?6-~;UFu}s?L_ *Kdzw/6[Xuh>Z3DF.ޟ;;+!'2;bW}F3)⹋.Gq)D`Qn)Zq~[?}R%w'Ozw_O>ܞKf|hśZs!͚',R!V1mǀu'4'<=7/~/_ڵpMD8 >@jC-r[ Aӊ<lK! L!$@!'<F_j;Əo ^ȪzXo qo? Ŏ KId9A=A=_&HU~"š?Nd畡a@yKA?63OƮEZ 3u89ɑ/_;L.3gKLp;'&D`D{!e5󆌩nYL-v%P]C:6,QtA%H\Tǖ|jn3B034uOc#"kaFX!= -fv/6Auu#ov4Z`ߓ@ڿn7tv{LNBtQ]6QJWNA8`k3U~8{<O8fϿ~I6Tw-f @%m C5M}@Vk,(a[дmʡ}G1 ) TO3HdTjHL [I<ā PrAQ\j&~@JT!TL8@Mgu`@/UggАK{jGkU '?+׿̸OG~ty)PdeShB֊'3| i>sυDݣBfQ&-PomTIZxDS0X?T͸?íVߎX쟝qtZ7uˁ``<#ږhLjj AyV0zk k7SB;/aRhCqHBg^bb(60WhϏ'OXsZZ2lgD3TVo;+7O߂fۆ?NW,|A*F+Zrŀ=o8bӂ) ~O_o?_6k7x7 '3AryB.?/@-cDdi) JaՄ 3+ ~!^~LPV0D .2!2C$nҨ1s,B #vd ,IJ)"-aK !0ҾC Ud]P1 _~bhҞٷ[ٰovoy"tAONDۍц]ڼkeYL͚Ҷ#  *ֲ!sXRvb^"PB ZfH%a` zیy1̊--(9#2J-d|bҦe[^'\sA`GB#sHۖ #DX+W߰3M5Cw4 QM-ȥ8aQpѡ zQ/$&KO}m hH7obOQ+2PN޽CVDx_C->`;!w|}h\oEPFԙ|5#fv`U=+JjRgsFfRX :E1nn4Bq+HtqB$E , Y)xE.[FӅxR!Xp`-EstC+tsG9V̘Œgi:po7XmG}мJwHKَQ5-г#0<F`5We!q)1vۯY 1{ZCgPt|n-t堽?AU3&ͫv3&L^ W6{@0UBm8˳M KBGʖ;Rx B x -۾Dl۽H~^쾤,ٞK"b IDATb2zabsBu[y~5@QLb~u["d5KvU!"1Lnw94tCižwQ*'0ŀo;#9aO6%)x~~ Fnr&cd*ԠZc澕MRFa4 pyI~Zm@U~U\Rm?fc* cz2"lr[!fBg.Іs8.ѭ8C5qjTZDZ|G55q㷟POr߉AT(:м9}h©!9Xt0ݽ,tPF:HnD67^Q l.R4ێ8oY[77o M6=`F ɫ UJF)S@ێb9:MN0&"LRI $pS~^2g0ۈzcn{s4OW|h%z6&FCAZekf2yF%$K|S'&rp(:d;4yS J@Wıe!v5 ̄zfHuCREIooWdaE-<0&iApJ옂.}%˪!Ev@Dc&l9a-hn R Lfy]2P1MY XI-BL$pS£@Mݏ!t04Bϱi8KcC?gPV0CI=E1Ighɭ@@ 0^J`J  = "٦n6J3 *L?RRfD)qÊ#NT [zC B&D Ѫ3L `zJ򂔝Ht܉gd!qkUZ6/ސӚ,C0 Czbsjȓt&W=*ڥmsÖ/y(r/Z1dp球(8 t|ҽ4Lh~qaV:kΌ.ձ\ KbyANZpG EA'htXVV54noh0˗ڀF2Pr;̓o:R *C?Pe n;/w-6 29#튯ߐwƗz[ut[p{{r=@B(Jd̗[nl8^o0D  %\>=2a#iA6 fl9cFCba$ eBsx"(YC)gKξ#'Ru~)@cVH "lm߱'K7ހlzLsJ'DDZv-{Ŕ0%g(I,wF2cfL1 !a"ӆԿNk-*=³=@KF \"-)&)CɯK! L3.OYA"DB3=9?: <񻔌= O6y. ׼-WUؖ^bX$ `7( YK)% -S纘T\ϗ 򄭢Af`gL}ς/r2H$Kɘ8+! n("Y?h:c.V 3z24ky̙Z݇ iZ[n!fn-Z# Te=|`z˨Z ^=p#,c}~pI#*8q˾{ O=p*%|XtbK7oqژ<27O0YŽoH ]AկX a(Z"}/ݵ"I?PӟOpiHvWM.D0f9>&A AЊfEBpH|1'`LHmZEC9/k1Iir9uHQ*AJkVGE>Al?#G1i#4nZ>(Bp5#qmTIc6ެ Q^SpdGbB=-6]b7h=m_bA3I絓7a k]L'w ty4;DMjI&SIЀ39.:&nx7l7<6ڽ?uŇU:^ ~B?d`X aѾ?]CC#3G|#gis595aC0OWL7zYW*_ laHDdA-vÞ^X߮n+ޯoAOa %z%R%F"R \0LʆxoG&bc3y4$K%XuEgQ5! d8E(0!f~&j R0RВ@* umˈHe^, fȞJŎ VfB,$` ,}]L&}LBƂMS#M-bޗ;F#9b/ !.OIٿK)aOy2`6hg(̆)a&gY$OWmD}OsmO6@sY$Ā8 m1-;;7H$DNJ;?f^řȣ?tO>`uԏa;VZ7o {㨩:20SNk#(w$WJi?Guj) hB]?n7N~uO0c:̑e(%h~*K{dPuq}g[zjjB{~^6>pQ0. zBumN: i,Z #a8N=q$.!&RUAnӹ௨lI [+2.IVOp&ctA$>$7wO;^n('EAڞT0T)?m( T0V(=^٠(jU@=6,*!AyWǒ{fJi͟6,6q4)V.miiMZ(36S`Q\G }{h3JO~-Qґ wcAI4u J+w fo0@O@5e^+_n醿~!#A?cC.O \o9aK+ ?|+~z}}K({3O6H&stAλ76e? J@eRoRŚ؝bÛJ, M4K`8`aWYMZ&lRHm-!@-f8h %yK()O_ Ĉ=e+v(Bto 63"D 8cSt(t;XԎECmhcѽ܋[!'Z4n-hiȴ87]B oMH@ˇopۖmpݯ_; LP}9;!{_$! `B![OzZfnlEM=a+˵awc" f0g- m~hi6*u&xUo;xkE5 F̵(დҊk#b̈́,dM1]9 M}i͆Aa)s?=G^*NcpMkIA֢wߟ:6z4zi[۴ŽhBl$s>w ˒9nx\;KK^.32cRL%NCzmi!m  @duݱ|{nԭ=AP|HѦ19/ي=,z5x .O_Ixj~f`j}STqLqpˮ rzg2 R!sS8V}M9aoF Tž۾!{ΎDx{{`u4س2.HP u c!F2ny4C`ېa0SH9bhygV)aqQ^ 1,gßꊉA7t1zmT"r )#bdD le#hrvPy; o(֖ő!BqݟAd(9wO_sZ Ccdu{@uэ(UU:)(NP)wӗ`#<̰h |8J?PFm?T+CcigO9-!{e4נ-=RYƤ1wAAgPæ<;T7ߠ`37ڊ _PGQЪō*M̃{ZFQˌ)ʊ#a-#+ﺬLŒ!IskνjZZs_u=9x)t4}.A _ASW9C34ǡ Ň{(Y_BÙ>J׏u݌Y&8_zĒ׿+B<^Cc6;*Az]MTcmAC7ly$Z!Ջ7L<*d~53j0\+L5֍{\E-[qq\ Stp⁈ÖjC5&0Ybmka fo SSXsw=.M@v6xpmey+5Gtx+]Ї] |HC_9 30jQB);pŴ\$< ?gx#ddLASyrI߾߾" eBoW5#(YSFl!!ocmL¾%#^f|r,(TWmվ3 %F1; kFssiVg/-d@0m(((fOS.7=9 ܒ4$u{s@g[) &l^ ـ+'CCuUc$I!X$f^| ۖ{ۖitmp7O咐a\ H%#|@e-*L`mېN )" PtG8\1H|#?tWMIpĥwVG's49JFY =XxA"ȧ&Ҋ\F?4!2kpjDĴڕmݖlI~(;Xqb1 |83== Lth86MXjDvձ!PMBB"TbϹn31$[,OߠE AC1KD xj m m9#@M-Eܐ'{L _+v-_{k>G' x" \`D=Vl"TھTH 9J١bm *X  GK Gtsn8=$cw5?ø`8X`$W%:n6ΡGt}(p,ϖaPѰoڎ\@yѨ޼'B"AN8*ՠChEiؤ27nݸRuMM(:lkQ5 r`&3Y^lKR1LYݮndGbh9q;z3u- |k1ؗ+gAg4Ty8 aӮP05XVD%7bCIvg}qP/,F7+I4wMCS3۪5dЯk`o>m+BwPIa0^}qۚvY_FφM+hp؄9qxC:!$ o I^Z`%pa=? 5x0kmlg=AVF>SfeJ |w92_f;8#Se3" imO ~Oz{C*v~ 2GIBAşYv,Mbl)19>/Ox}Lۊ/ov-x x`E!@(fFb&Fe( }O+7]o.7rԞ,{%A*kk#2m9͛!_K&l  , a$NO&ciɶ'Ĭɞ7jY5ZlPXѸŶkj[}f|A;:כZ>{P9|Cj{qyOWв#7r獆 @wRm*[ÁwY5 '@:}.=R  ҂j!- 6ðWe_2]Q=w=}*qBt{G?t_p|0vat_=ȳpʊn^6*ܴUIn|8` _eHF# `|;qIQ64D][VJF0eo*4xoVix ++a䰨%E쌔w %crVSP ލbcktjSUyτ" |6л֌L{ CͰu#ɖ6O¶lܲ D͞nv{V|0g/bn dqBQ%iU(K)ƯxNA {]SO]DbgQ h$jwL nh8aC| s?= yۍrQ4!L;ttIn'eW4-c{ΘwM(AGwzG8>e2`j5h foшB [sf`14u]AŇ$r~7<F3j,VؓYN/m86RroT?hA%M! JNJi'?e9}..=pݻ(6(n(W~n(FC0g0}p!L^VOЩGShCւ7K"ZL$5+=5;i<{',qA&ܴ=ȋ!VhuEV_14,V8TYbˇ6"fY=@*Pݭ+Ty`v 0   |l*˾MZ }j@J۩'V3I6R8Hb\N&ob۷LN㦨J3)˹oz>͔@-C^ޯU&SJ8VՓڵ"p:/'k\Pwj^Prt"&x.NE)P&Ѧ2@QJYh0zfJY)$c q*X+(~2EE{(x\Mg$__7㷯H") 튯 eHkB6j.Sjn ƶXB ADxzOOR7L ϗsb}۰ĩ54t>lyPɨr߾[I-!"Іo77=l?^u^ӊ_=oP"=oHy7f)-&=nV\btTHԂH&,bTI`yjF)fRY+&ڶKv Rr-vo8ڠ ,gnC)FcgXr<'d|\22=Ӊ ?b2 cVN^[P83۩ ݘ;:%i țc cL P.iUjic; 4z<$ȧ)?Oyu{.$No_HFIQ6) ϑqF 7 zIiAwбpjV眍*Y9JQJ!}H2a 9oPWnb*yaz#PLYmQuJyEf*CsoM}%֟`,ӄ%HsFjM6e[Zsj;poO[Ph k,f^ϹAJCtM=|p;^=6Cw&ܴ44h21@ $孁8ܣ>MN2Hl  biG+LCЧ-:E0IK*g_M2\gY #UħePH]uQJL]:sˢ)ӊfG  0TW6*TqK6$.u*e؈:>P=5q1צ}R}^śe?wymњJU;V1)9f<0f TqvQS1'FƩ0oR0Qm&C GA< <]{㾈9GG}ܐD1+q'̹C^CT> Љs8/pv詩PO8!.ood g:PU}+|1yx{0B 6KZ6pijmBL;^}aO& 7 0~Ɔ\ްW$>^>Qs0 O~ h`Ct < -ɸ0uG՗njc@7WARerp͋n=ٳ1sbˉFـKG׮|!Ǩ[AGטҽ|#BlM%y'Oe/^FŽF=jt0 eRXkr*Ed6 ]!];yi7Sj ի mW >/i|C;:ʇMYJq,qzM.i z ~3tl'M 9BqeƤiB 6ӥK 0e( y~0Mͥ`9Č_BBp+eF櫻\.X#kƚWޮX@ _nМ]gXv$=χ #%KDl= 1 26 c/ am̈z 9`_-dtC9\kir{ q;|zmJ4 4Lj$ס"i睛:9E{j}1xFI 9*8A E ? 7c @;?xSa>q˞64X2O~=j/!L*Pڱ_Mf08A.fLd2z5v 0j4`t'cwI[rmˢD]b!g&bݬЭ#[HaA$ca!&!7LG}4 g}&` .c6v=>o>uw tMz/@[POȮ(?C}o(\rh]yMLN&sܐ{AMSZeDAm^u-5+x2*f+P۽*R=rjr%{3ێi[N9&!?@46J(W8 c`c4Jto10j[5AJiHWD} LNU%a=Z,.A3A;dM x^sd% N3^ rUW*eFp ^ LֲI7ܶb-A+tQɰ В|˺'0}GgŰE Ŷ'99k2tlm5[1 {Ql &me:a]k !+U R #er9 /|!.OOPXȌy1`2MH%a IIn,_s 0 e|ڃŶ'd=o$FcH3|vVOG4{+s L b[>fƾ%w0:BYRJ+Ppmكn;.2*o>Y ;kǂ= J/M^[)4LQ9d K:$Am}pr/Vx Ej뎒VPq$b=J>@붿|,ĈE߃<Ǣt(?[0C@d$gGٓ_LlCrp?n>m5X͉%+PBh "V?T/`1͸h51GlV׫UV(EFWS%ȰMn[ˊBv|l>O0I%^٠ɂ ёm[iO,`͢`Ō>'Gi Sh߮ 'V_OÒ]mcؘp#U<=\`DY3S4/#:-Eg8;X}J.ȴU+i21wFޢÖ]uٽWxiŝD\vono:_z/C=ɍnɽ䞔 :`/JH#~U)}3V3<}jFNTk> \ !s}sT)e禑A8$ok|.f>&2(Zs_lR}$[#*J̄ .?LܬX9d̓eP<ňfKfӂyB OD; =hx/7Wr{Z]w}60eDd`!k'M {#HRtieߡ̸L x!"(>/\fόlÜﻝ%C&S)NץA9<2m0h^alnN@Hg$W (X)` D,R1MNp,v%GCۺb'wM t)pH)(XR>ieY҆m[`e4@F01EY=iA$&lۆyK7$\KVPA.ڈnVy]D i\ zZ2Gù6 $[G'B`Xڸ_FK+:&G}ݎF+9O Ou86 H*MaN 9cuYʪEױ?fVׄJ.a>4!({vCkknLN۳982Ɲ]Xu6h.[BqJT)(l+![k , t`1sECMɥ̝z9{Ju#ךIDAT )[ՖqСQsU4(5pE3eWX?d,2ia9 59U硩v+΀z/hqZmr y]Ieh羪^)LF(4 ##l#{ 5M1 SP,uP P;Ex'Ap+Ҿ#iƗ?BRmϋ/޾b}CblW<&mjf|z ;%9r dtK)6~,'ڳ#uWf/2Y V2$s2yV0z88j`Gq{=vH]p9qf<"$n@Xo.wb0LًČ{ {#Ac&?4pL))RB#}VNHثoAKs$q$G6x]&,3UI ٟ07SrN !R0SL'*ǁL=k| 54ͨZlێyF3<\ ΀\vHxq'XO*fHJV)__9gZmnqo+!еq YpxdItE90|Ҭ˫V g,]?w=xU!Ӯ81׾!ڞ \dhS^1T:ɐPكqU{p*"1]`ݴ:,6_!,Qoo؝j"@BHaPQchckA^g8g0-+4&D)e]\ YTQ`d`Ͷʽ&沣HSFm 6Cd`T*a]Dzq333o6e&u΃DE HWvaӽ{oKvȔu@ ρ^ ]v)2eq=<Ӌk3^M8^}e"IM9l3$Kaohh^Pk8 sfD.K!MkEfO6T&7qݺQ 3 A (بYUi~"xBPTřp& xPG8ZqTQH{.`KdX٧t#>Ey҈GtJ݆.~K]CFNTC3QO]hp!hw(OdI}-iEkPדr˂8n0oap.Pڛ'~)fqelO)eD 퐇 1뤀\{]:3.)av+rnҮK ]x󵈻ɦTAwP S^e|s9y L EhE#gL@QpxT#E%aM1 Gp@c/Q>Pt?~vxR$ΘIVg|rAޞ2ᝆIpϿR:Q@~% f`|.9hJC.tV/uX~6~U0 .=N",DܥDm`Kks~d T2wr #)KCn(O>+_#\0Cj(ך|xhR7@bF-`Vv~uXCMPU׏9?F(/$f}j%@m82@zu89з^F^ OlY[/pN* hd'ͪ-ܧ,P?A.&ʈS2DS'lc- (R*@s: U-Ϥw+2 DPX&3wv]flBB[ŋ6@V,y"߷<>(GЩ P 0(aʳ3H4̽J(܇/oH9IB VGJS/K17$N^#y^! 2a6ؽVѹoFuU]ck u38q3TSJk۴@Cxs%3p_KV yq0Jٰ,N2,(Y>!SUuq]%)W|P % 婒EO/Bcj|Z`.?imlC,8mQ@?k[h1Խ#8ωڰ L z!LM; Vpx!rpuT&^.t2}O+}70ՖMU1%60_ɴ Y Cz̮;?Uaw =?o|g8AܯD}ݲ^I.hOAB2A7ZDj{jJ?CO=Ռ[}!q2šG7 * !R (d- #큣>cIPņI 26pۺFlױNܧ 4zc/E 'D#$m1P4pLsӦcmb#IpUJ0K1X=Ż`r5bN*6~03B%_wx_3ַĆo/q5$u@ ͞c$9߿{ޔ0*LiF^˺³||$oo+jX*i`uq:JXS2a} >;xWT+wQqj9Ap#k#}wv%{"% xTk,N œwa'#}xqܳ:$^{Zfd9c]lۆQj>9gGAj%@}{`Ys?, ǛD'yv}?mFjED_@J<(G?Z\q.񂫝|VƷ%IENDB`ntfy-2.11.0/docs/static/img/screenshot-email-publishing-dns.png000066400000000000000000000415021462047176100244540ustar00rootroot00000000000000PNG  IHDRdksBITOtEXtSoftwareShutterc IDATxu\ݍJ+ ( v`؝؁v]((**e P}~Gsoofv3WX!B2a) BFb B B!B! 4!@B!!B B!BaA!@B!!B a%XXXaA!@B!!BhB!0 BaA gت|!˧L2}{Lɼ{ı6mj~nU G7"jwߜF-og<;o1!C;4147q3[XZYwpYW&ӿysySwO_w&k- ~?)-))%!.wf/>)N{˯qqphe&AHHp.+M9E"X? eUEN}7u̔^2!eq@3qK|%Ě[9AjB:%8&=fW`]|?<4n}EvTK#>RܽW!U+oȡ2ъ o*\Ie)!4//JX@Ӳr0;% 5w3\&J{ ƕRݘ,pF=:(F|(n;#IP)Ŀ5kwKhR Ƚmnأg=qi%7/e _ ΘTʝeN>:mbrߔ"0GC9Fal?Wl>tdGa~EӘ;N<.x}}>Ci16uڼ눪+TV"تjUd{Y\+o[kWFiG7 [{J<[vTT!Cp,:7VRwඨ)i{۷^MGތJKm:%2~Ue|T3Э]bKXRYWW '8g1`c]~uFz!cJ[wD픜>WFշk' 2bN_T $lwX'S)ɸsdt\rVq-%Ӭg2$O]rTzO\i5qMTKF=xYJ;|%זN=l2`J1r*@JۺǐT9ï')** Iiu\&xң"~o\*ZHܫbKwgԈw7P}?p/s+h9n>}%{*kk=-k<2*(fw%$TW.UI0xO[uwȿ0ЩG'-2m' 1vX{ÔjwNt'?}YP b 6m9joa~22J7s0QJaZKQv{g9&OzhA`d>Ȼ^ÔON(g+l5hH•1 oY''ZD̙ݍ^bb Flϫw |Ж"io%!EQN)(cL %A|߶ \{t Vl>s#)3p4n8oSl1% !dө'!oёeO_n׮}6.5ձr5f@[E xQ쇜,&]85ʐޥi͆(̦;ƘQc_ӕLVbʙWO@p{]{kZh B*Iˆ>A]h0~M]IH-Z{ 7pQa N&weѤǿފ?_n .l]{/ - K"SlVX70;0W6v>yt'F&Ÿv4Ͳ!W.s.!G m)Z2-g2hڴAE=zYXM{/KYlwW5GP}0xĊw!ɿ}ǹU&eo0\ IW/$[|_5cC)aز/\{YXCIȈQ/y[n uIUWyu'ʫڒWR[1I yMb d_ϲWKC B/H=p`_=*"Ր#,L!"U?i}HȥZU)!('\|%tIVPYVC qH1%]]}=]}=] D~*!Nx0&)Ț磟4}X^e@H#(J[tqv~K>/qE-cB+ /M<=ڴPk;:(pҜcqN l3i,)8xMwnYe QytdbK/ ھqi&1/4Ԝxq.%$-{XbUkze%5ڌ\a~B|=iuȚ׮XD`yS_Kܸd$@]rUÛJs3h 6<*Stf7Ht**n޻gfgr)Q:J0 [`mm()˶,۲z| ݎsf!#j:0pidȁ{S.\~\)gTۮs[-)+#MҪ.b{N2!jV-r: "Z:oY_ W-KKw3y?.8&^`+oU0bh e]=[Iu7]?3ޒL齸&n|P]='#w'Ξ3Nߪf ]<>9dy5jZdK#7ƕ1wpݧon& {3{aY{)#"&ܶZOzVi-xJtŕoNv6>{ĬVbvG}zgM;`kBTŰ i|m6Ѓ_\H27׮io%'&~gތY>$2>f .Ï؊\^<([@I iJ MkABF4jnmBB@g%1@ZvPWZ櫛 ]}Ea@^OSH*auuڊjVHLEEH,`<] qT$HQUi ,MB0 >KJ NlyY ?Qhk{DI^WRsl0FWɏs=g_,hgxsu)Q njv>3yN}M!,HtjWtyY% _lq6eQmA&B/];J|Fs&lm}B5mDhQxzmH~Zr}+,)ƻ!cLX~eQa%!n#D$T|wm ߾O!RvkxI` yܺ3'XR]*SB|uB\| P{J_G !!ہ]|'HS/O6* ',gBB![[]ۘ'[,-F7lbn~&`AȺ+)@קŷo% ?`aYUMY$uA ȶ70(^Nop#.!F54 @JJBBnRTVTVTT2Tc6+J{#O j8T#g~Js/?Zn[lzmZhOQbi{K6sd%$T2U,Sr|ʻWp$D$8RJBٯ+Aߨ^ׯ_/hLII)@pe8/[>a{o O\jTpX?T&?;jH.42yui׎K:)IY|>K*Ȅ*Y ]ma!LYI9 @Ϗr$K1 OѹW Dt[R\B߷Y-+)e|}dIȧKKK5Fi.BfK.޴:(_~v}MLUiM_ﳲ7l~&4kM_vmFMr9ĿhkK`j6a\ -l}4iP@@S晴?.(=O/Of^pvK*y5su1:W<{_]O@JJlaѵU?V 'S@wn}5})&{̍=aP'cRRTEE,STXTJ篜wx R)ag̋g5:HHJ,0NHJ,~ .*(fHiF}ʟTv^ک7rJ@`kG>._~9%|! LfjU%Lݫ V&_R73/J[ʍL+,(o 3-]\Nm5וnl7l񝨈u,";|bݼ1Mڱ1jXPjvjjH!gd(D+S@g:y=~g6nZ}w/ 1c"3k$ `i`r_7/Og,hE3jْ[ >eJC?_Đmfc'3hkoD/.&r 2*)H|!ʞgk-O ~w˳^{Im4P^>'J̑"P+cV:;rL>0wv/cFx{B<*API&B\` _eT,~$ߛr }YLO+YLGn!KJZ5,[[_#+LY"eYR΀Cށ e ԦP)kgo֨1'M"p={rVb[[z=>E)RBtui@G|E%'V[ cw,#"B(l1*;'$)~Eycx{QORR͍ OFX4=$!e5AX}pA_9㊤GVB۹ͭv-?()%JVW O]ӯ)*LBciiG.OTⵣ.DRMNk߿HؒOJh2rPL~ݴ { h+LۯkX&Njb#O+gSneXaV{7oPoVmrĽdhHTNCϬeǷS[+;|͹y֜.(vޖWWֶ~RLM/86G!'=IF բ QlCWNib(JU-mceޮP:1FNG%ŠZ}䱈YMSgiZ}ik2,ω^bjrq쮮>lǀA}(7x&l> j>8fDnea\{$;!c cι~{M_s_fbD^E|pWKS}3emOL<6逈S3yHFi51& +86+$iSJӺ~(AHf;%*Kʶ0ƹq]6s!ي{GOWB:fLKA+*yC+cI $ ߫Дy3}98nSf n%/9ҪƮc*~q䮶"$MsUӨ'RpMAv!hiJ>0]UQ)ױpY_n%",lmDDX4@HZ;k9TJVOhny̘>"ҎC'Obo*WWz.VԿV{v>?qfktUOF$H6?pU5tQTq2UUnLJPZD\EK _(geeIQKA fl#}gTEE95Q ҵka$-,nLS+ IaIvF_]F/+.{۷g-d=y.VJWyv7{7sLF:js(aiyYa }fn,FqEetZpc?MQd9UՄ~ n$@ٕ ck_$f? ]X*=bd&LU-WE#dt̝DA7v2K,Ž5$IIhJ_:ų|T$8ɕ7/Ru[K rehw\0KGe-cefE]\-?,n9 S)bb@!x]8ՌG6 kT !rI1zA-fٕwǰ`YZ `CaWPpw=W|s<r$GDB~N ym޹뻝a#ztKp;ӻsD Qg1{"y$bCS/{g2hE|?kb7.(4uԬ߫[19 vB?#oQ;7LנCȽ{boe{|vN3< t4J<6qW ޲:jF8:B`ˤo8zMvyTG'#]#&-}$cmVكXji7?A; w,x7UV~-d=)ߵ:R;pV]7?ɻjaDEÍ0μ*+UVԭ^ywPEsq{Gx841oqɗjom1l 7/vs1L4 l]8!i=>2M+E^bݠl\RƩ5D?j9U/?KtV޹ĶEosw456tRV;٘k{L:먦.{ ta-|ë}*Ȗ=ٹe3mmLJ=x7=%(w(pems!hu߾[_(6gt;ko9vva-B6iڴYC ![6R]625E6s!2b/=6q+d+FQeoF~sUFGMלجDzph `KHt) !NJ,Fs}S ջ͛Zzӏ曎X6„`Ku+m2iۮW~k3vw OcY~fms}l>Sgo%=io"&c!SoQ}m~+n}j7ٮAgɷxƅ}t=h]4L'%Ʀj/!cJ٧6׎Uc3b֔څ7kjͶgLh%H84w" Q&q>>2gkQZ #cg.l m%o_~pȃmM>Q8;RZ^]ȨbQͮ\΅UF^uOX6ZԭSGq])M&/:7SJVCg (0PϳmW=OIA g~Ha-Cvtz%d[| $> GnN ##d3qgP—kywZs0A$M^_CMn^Y":qsЫbOeYcV]ݴ&f= m^9u,~M KC@SZT̒2 7R2$[V\*Xqu@j҅ :4ReeS2h(y8{cٻ[ٖj0XKqd_?N,"&[A)0UX/`I7~'%%ka9Y eh;{F^*b؂Qwhξ ;Hi 5 G BDJB,MM$d[pd'ˬGi-{{/,Y7mGD{,;wh;WVOrxsCéHyi(2r_ ^ mL{Y<.ruUQ7S:##Ofv1`wJG# /Ir\r2K3u;7-zGT1ߏN -4|֨&,Κ/Qb-|{9iкG;5w6D2>gu=2m& (?3kJ=| ^&d͉|,OSO^sr3GqRJV`***>R;ZHSHSHmCGX/csw&sȒ!RMICHJ!ݧ<+"~}d~hVKuhju|̱7ҧ-b@-vG=Ss ^<ՏQj`&>8xO $,:Uf1=ph8f<<|<lykϼ!aʊKYRVN0%-Ert'\ng2Aɨ=JHNްkaҰ~@hjHI~q~sKIzFsM ~j֯ PV~;`{QHMmG'EXbŜAU7{bofhHV Ǩs؈SҶ]6'7-l;aVsIJ.? )ҫAs ;ܔ߂I34Я(7{vڻX(v4[wpWeXdsz"n?Vg7l|f4vסE }.?K{m ?{dȚZ4ԑ*KN>?5GתU [e+Wuljي uZAA^kM&_:7FjjIžcI(z;Tĭ}(SǾDf =smwiLV5͛j(ˉ^ B-߇sAΏR#^] |8RR$[S.#6?r=\L%9iO &,3i &8rћuLi&{j1Sؗn!Qk M4~_j뽣κ%?v_Y#-Bs %"d{p 2fH7}5:ts$KJ8.] RF[_I\Y_KFɭL3e&6[TY;oWI.oW2DYx |s͌xq̮!ɢÂa+ε:α궥K'y:ܔ 1>n͍+>*gk:rŽrmZ<}F`Ψ<&NK klmG=vնL.vj-C>yˌ z,g- @i\4ƪ3zrz4FFRPp*dw$]s^+1l@MĿݎX.=.q"~:B#ccKu<"G3B!#cc+GⳲ/l;X`n'^>\̩UiSrfƆfF=OlplËy45jbj/ؓf ߛy}a{bXy!F rR2WFޣ7E{!a2)lQI1/brJ[uIC.IKJyP\TWVWWU*{PFfԏs[Bo&&/L5gꚈ qiw&a}Ex,#aL\EX1ܯdLyY916ЛieG? $ .n [FT;Ry6} >}tLbѨu\xWwxՕaz&U3uǥ<n3mkϮS]oq>:6Mp8f~@~KlMm Mc1LAwvS$>MGy2Ŗ&cu=yVĬi;"0eO_ޮ[8liGâ[kP0Ǡ!Q7xɼҶwSC98s2`g s}ǙwftptPju^u*̣4_6fC 80a?%!uIZNc/r1;ԨiKr?e]ӖSO<Zi~\7 WqՏj8pa8ėw6x0־C8ZY;^9 z< 66p$4VCwbW36{͵L|%I[O5 )ֶ1.fFF͜{ٻK^ЀaV6H~狵q=ܭGv63xX&VUTRghnA6跙y{N6M:=щգ[4|vN_ ߫iCVEe~nR-rl@okss]S6yQu_#6(A 2]ǡ_=M" ZThuRF̝6ܳw}B\[W![QVR_{7iutUIq֮>GMO tuu-@elTLSn֣HՈ؊- 7zzQ 5Θ]xkHQs4܆Lߒ~x$p"=[:i>:/,d Q7;Y6ta"V M9z'qW(i7 wT0}pkyq~ !AcZhwq]XhK|DSJN^|a>TeH:yՆ^'Oc&xtbnlBxq:5m몣ܮuęۘsr& q=LqiXsCIlA^ۛVBBGWLOrd݊}ƈ76yQ$%e߼-D laky{k)fMUҳjRX݇42U'SSVi*p6{T$_n0Z,|IG#`I9L"vW$vNS^ ^r2lcQ4:j=\-c[g >ΝZؽL^Lf VKO+[6K @i ;9ZEj3y&%0CDw.5E{ Y۶l¢c ҲͯgsehG P%@`*wO+0.[WHIc@`93Կz+q_zhv>2ږͷXK+]䳝F9q.#(l=.ȵϤ\5?8,l` N?Wİ_o`r#n^[RGmlRXu9[+snEUl5Αv_njLII)Ch6 }dc;? \*Iᾙp#dd귱i,7E+i_:Jqo'!f4$dd,1.Tjn.b+ :u2kت(G.")&)2rK >9᩠֐ ۸5 Nݨi Qnވ:|D[3kL9!ipJ@qN,ib۸UܾWDY#9 SY:#͟8&{pqcXz*=;o~xBDLA:i q+F5eKVڴecVz9h؈G_Z_6k]3Z}45^Y2vS9|ﺗ?ZTbmf" v޷?2[g&:bO@2KRYA;5aT#1Z?! PS*+'+enROcV˞[W:as\xITJVd+>ZbKX@{o~B hamh'2[trbW 3lA.\lx:S+ʣoOv㈚93ifIN_)|>ɋ(N78dN6sZ{SB}0/[l؜A[h7`i$eeHͷZV\Ɛ2Xw 457:W&#$$ θK7؂@I=JH9Oͼ,!a>^USbyܟ{JR^ߺ_1o–X:|%a+=U8Z$s[hӈ[^W3YHsЎm#}*mSCQRbr9ۤ,<55+jmlp`nr O~\HgH$k+@CΟ 'b|⍄,;qZPRJ!{띓لNUK;ka .vrOWEL47yѠjyXi*N3|>[?/Mt7%Gߦ̦2#}Ұv[yʅ|JȠn.}0KTEǎ6\N ]{$K$@MӤjuK=iزF Y`׆B? b?ǣOMrSB7pi@qfҀ7l=wȜpsǶϏQ#Bk8y%)IkM4?:`0?/FA)&Ο7JJ)ji΄V 7a#Wviv$r~{e7Ҹf\8i]U9{+P=s>0?k w͋P3s;U1owVʲbG]NLG '~8*~ywXٔR$|~LnjZ][*rkJr^&[1oa#z *EϮ]m9ys}-gR(VqJ.$uqY?= l^s}ώ7_4Cz7>3be--4gghu[Ϙ0{zJ#_G{Gwܫ?!i^z`rTwRN9r]hQ2&w #;1%IDAT6z}݌ɞ2lbcfN{/Ypewo/ kxַ,J[ nuۣ!hZ ˧< ijXu@TѰc9]*\HY 1|mݝ߼v22@uL4ߌu|s\I5#!Gn)ε<աS A5sp8]=JHDtAkFnYWҵt⍿P7m^ё )(7<usdWg |Rг;TQfm'M26>JiOJ?4i6gS/fzJMVϏ_w.T g#`ݸ>ćQXxwW,JJH籂K#OBj- ([ܮpֱhnF3O}?n{Ӷ[l/wowspѕ~+qNUhߩ5B/I}q[!Bh@y ō}/7ŝ!__CB>B! 4!BhB!0 B B!B_SR^B?,B!hB! 4!BhB!0 B B!B_kKlIENDB`ntfy-2.11.0/docs/static/img/screenshot-email-publishing-gmail.png000066400000000000000000000721411462047176100247640ustar00rootroot00000000000000PNG  IHDR8msBITOtEXtSoftwareShutterc IDATxw|Uǟ33$7M p! ^c&/+뺋 uqmkaW,k %  fLri sg̜93s~ysΐ{A`AAAAiAAAAAiAAAAa @)EQX҂ #*/E (-"AiAc9 H[`A +҂  C8R#J t$" HK A: (-҂e (- M纇LJ8J &/?AQZ$9I('EAg~9ag4ݻ+:H]`=E@Y0hS@Ave/Ct*99`FhYuP r@pR&x)G( },NSJ BjJxi2+xƻS*- 4ʀeJEvs*;GZHIIj5:**ÒDEEa!BpNƍ-;̊WrvQQ P*=训H!D5C  ((AQ9E"e׽[\訖a4e>cXdr9K]$! â"%S6GpJJK]Oz(((DiAnCi!@ {!zIֽxQsJB .kCٰ  WCAFPrAQCj"@/_*,*jT~}twߕ)UjP5bBH+ͤ#K+v9!dbеK]_ UUBbBi-keU5{|=f7 걛MVË*m@`F~L+)h;ii˜ *hC"C,`.+vBb#;FWEP7J_+)a\ѹOjgԾD.E*mPB "r|SFAD^bZ.\e$]kYeݯ`F8k+MACEPhŦ#k.L@XBC- Lnκ: '+ZװȝvaY*RJ酋ݻwZ9gkd2RQK=uJ.^ta$3E\ޥslnq9S_oRkTÆ Ɓ,+fJp:ܔ(t]i2ѠUt0wt9 V;xP9 ӺSPJ(8@D@:pT4[ Ct saQ P^Qw1_wbq:Bs2+.-XPj2)6'0 Vљ܋ H@QTJe2].y'17<ϋ@c]bٔgh?2дkVSpm>*8-&EXB]N+)1 :cRb2YlNG +StjיvbwyD`eJM@P\:j6֙.226 8OΈnK}p"j@ޫph@dcŧ0Np;نmxo)Rw[cPwE{N0:ۊKUg afs aJE.(ƺz>BCCx<.^ N A=S%s:Of͖֚ҲNQ`2/ ɸ@A7O8p:/}cBh 5<_RZV1p8UTnjY+*>=o*xS(Za5Vجz K\Q^cSTPi+6wDTo1WY"#duuNXJev:̵=(""P b *F."IZ1WZDVkW;BV]bjF!M#L*Z$!fX@ "waEJ)CRC؋r"ҎrT/nIZ y ƺ3i D*TAVTR/Je䤄˲I=j&RP)}Q6NʢVzi/˲5t-냽 r1Qee!`)>OSo΁w=>EfhhHޅ =Tvgzn( *XacjVj*,, ,,HӸAtkLJEȔ*LhkPaDʥv)"*#UGUF(ӆvu[+ƪ:UtBQ[\0]Ɗ:g}?Lô)[_htƲz{mUGR\\QRc7l -ӾmMݹ^GI.@B[ d,v5|\*ԀPrEZiwl\j3 @÷xQ:]5 xw$Q1 :E)ˏ ZR)ryА^)z}4[,fb:K;\(ȭJ :|h4W>RWWZzWU3(¢cBf*-*.?]C:9=D''bJ]Hh* XUNPe Vwizҫ _\oZndD S9vx^m$JN%jT`&,,fWVUEGE5xwtJ F% o MFk} _*rӵKP\&6?xnmFJrRtTdAaaUUMJgYZVs7R]DisZgL8mVr?2  Jcz@ Fյ~J, @ߘk Zn| R>p("9$=M&l &dwb#xn|#ҩSTaQppEZxƼ0 SpP(Bh9($'EEFOA55&1N'V˭oHt:{$T*RA)=}ZRi<@.*IG+*B3*,8/Jp̢*@#g͋@*o])KVKcGuB!lqi6S+e iuG=ZZ͒RJū o yǾ)7\cuKP3*!%c(Mb#}eϮ(iFN V'A -*eOaJK RRr=UR0 v{<<J2*2BYA(Vjks6"銗ȤDi3ee7$ w}euDS*V+Q(꬯z U_UUk6Zy"V=R]m4jc*sگc!GسEW5C&o}Kd9 gϞ 9eV ]VQ7)61Fɲ+dѱm]64VbE`t+*Aѝmx+Diyα/kYk(w--+/.. @cXNq114MK{w d7LN-0(/uT]N$)O+6G$fUI~r!=UZ@]yϳԷd."zK#3W9Z{jT#.#@)q 6d2YVq\& ir{\.`Y;<<d!^)r:R3\fZf@ECMj׽}W88P(*..A ƍ34J6L''B[;C>D:jgZ kZ ٳ\"r'JJNDA&j^w,jAH"տ UQ˕% wH`-ćU'-#ΒKi㔗>H{$EUQ?KJJ ȝk0 XTC>.@%^,?©'4K؄@C_-X-}_-mf?E[-M$. &. (f?H?%ui (A;QZ|2rCD,hfn Le6qDEz "9 ig[m6>0X7YrZ5Y9ʰAiAєiI AFɂ J .8KAQ (-ȵ1- ҂t4]APZfl> J 1v J ^hk pO~=iU4̬M $XJ rsV}_/-qG֎OnrOUiO~=+kO퐯PN]koܚu)!W3 wCs~pXl4 ֬[ߝ2ݞ}%̌~_lqՓw%{^ޒ}q (-/:C(@x„5&?[{m[GKxSƇj[c'^+S$ss c,{`U$k|Zխs@k҂,-Huq& ={\DmU$O{ U|[:uZ\Uʓ}vgO9{YK֞C`OL(y\Sfګ;?/Vyx<(-J (M ߽.P6Y#ѸcycVn֌Xݴmndem|A?_5+kGwe?TPݸW6{6VlG?ٖ#㟓=<_eӺOzzz65u&t}|EUWm^[5 w~lزe㷫\2_x[3 ʑ/n䠶|BD[K5MU ;O~22nOLxd.zpEy*"v&HE,">f0F?uF?58slE: _ۋw: 7',osol.LvwP&䮻${],uܹH9cAA 5~?\طpIZ?)LIoڳRe]ˏ٨{OZnz.ʏoݒyfWqET&fDܙu7~/_0oPtHv,OlZl'y pJ qrͧ,T5#nxCIC}&y_/~pX$(xrv*BMvS6,0wQɝ(ӗZ IDATo{ {hs\{7SǍ  "@e5W1KA7|#<` =+g}ỳdc5D\1rb֌)5:љ~_}pI4)㻷K[<em.5V}{C&AZ0,e0ZI5Fj1QˡGm_n,uع(SGbĪk~,t8/l kSnae!@=ey=X&t^Jrd8.xChFU} {*mP)FE3܌X/?a ?j?_^\OB<ǃ8r"o7߮6!r>Fbt /9axB58*J _R롬#! wjG 8<`LHh&|ۙSVAzƦ!L.t8{꤉yH\|1B.xmR%po׉(rDZʱSSƎaMMڸzΫ ミ27pȝZ<9Y{EȜ~]C3)A(ݵ< >%5VDe԰6 ڏe4SeiZb?PC/4u,2<:`;]1ѭp\'p]f=ץoRS޿3In鏌(b'><>c$Mk0Xvuw˶gp!z*Ų[ae2hZ~Ncc3NZNBZ|bc_ _,"@)E(EQ37=?y%DM߼6YESgw{kGZᝂ@h[2L2vxakc*Z{,Y\P%tQQVRB¯_~ӣG=nj&BNlP|û+ uҕ=gԐΝt2j<2k%%;Kk8v l̈66܏[r[vtAS,\s э^ҁJK3_äET`)TiEiYZ~[O_wʷҁfN'>*,Nڿ6=_>o7CWVdoX꫃ @-? vΩ@ƞ㴧3:vǫ9<92&xa''䝺rp9|Ox~^ 䎃} A  (- J ҂  (- J ҂  (- J ҂  (- J ҂   J ҂   550"r BoIbQ w~ 4~ҨjA;UZxR6U !B)0 B(eAEP`)\3xPJEQA/ edeeay"rH .D00LV J r0 #Ɍ OH?% (-ȵò,0^ Z/l,m(rBQEAZ/eevEt!V QBr9!y h opv{AjA:F&AEmAPZS\Σ ҂t L (-H.Ià ҂t ,˲,+  (-H O ҂t$2L,APZ". nj⽸1Lh"(-HxIIIz:~8ދ[UVӧO>o;䀏{饗 0y={viMJJJzz]|x̙yիgϞosssۺ̀TV>`JJJJJʂ JKK ƍ'n_|СCƎG<7dee}嗾eС˖-[l$$$OڴiӤIGzji… CiiinntS w})))><55x`0HeҬs :499eΥ'''8g*!;|p,"-x'؟0auȑ#۶m_zzzpppFFÇgΜRO8p'$$t֭gϞ;v3fҥKj*8sL֭۵kדO>ٽ{fxԩS#<2hР'O^::::11?g0ĉ|IDDT}7P{oΝݻaÆݻwN6-11q߾}֭:~xRRNѣ_|^yyΝ;'L0xs}III]v5jԾ}zo1|شw}wʔ) eϞ={ҥ{g"##z){xC͘1cܸqfO?-++`ӦMcǎl7nt:CA҄ɓ'?2!䫯*..9rTIII9r$3 .FڸqcqqqN 33SV{aoif͚_ťKNC=4u^xaсFJgߴiB{,33s޼yҿ֭S*0qqƽZKkg^yI&!Ck>ͮ?^lx衇zUSRRva٦O.%^dɾ}^xVOYg vcǎV?TSLxȑ#U*bnv2Zѣ_T̚5K@V?ccs˻*+ UR泳Ǐ͆F֭Ç[vf **ʻh ???8p_{1c 8⍎ K.^+6 m۶I/"%%88X2Ѥ[}ٳg%]\U;a+++q/ [-N¢"*V(+_ri.Æ t6m?;Agݻ~;mڴ{W0`a&O,հ̇&霴JΨ_-z3/{=߽Ud3!r<<<Ҩ(߱G}J_`4h+-j R9$5^y={1"33311e񸸸KwuWjj!Cӽe)EGGXnt{RգF7((?uX}'ޙi]Z;3Uwʕ(*]GZ֭Yz3fIJ%Ł$anܸqS0q޽}F^>1c߿_VEQX,: rb b04w;w>2^uA:Q#>RVVql'n<|FEFnRfupȑJaR{ "'LuM ݻ8y?qԥݮT:EGIMN̲sN2{o{XbEqq)SZBȽ_6\pᣏ>:}_V޽=zWϟ(ܹsԓjQ(˖-[hɓgϞgϞ[>SR奵'/ٳgw~ĉ̘1٥^U<̩S㳳׭[7qDݺu;uꔔrȐ!?äIF_|!ׯ_?uTiД)Snݺ|$~7nܳ>p8Cvرc{%u={_|h"isέ]655;r;[-%%н{$ޱs}kjj^Jʶlݖs7ڸyKQQ1!t:sNi 7KBSPXg^]l6͛KJJ¸¢ 7UVVzؒYRZxajkk?}Gw]srnO^Ox7n6sNܶRժժҲ[/_UE}f )jW6O? }^}e˖-^ػ/ڵ~\ҷ2nܸ5k$%%^W^)//7Ӵd`ٲe-[ƌvV(5k7ٱcK/tŋ[֡C8p@i?9**_}ɓkkkW^ŋ?3*ReaƏ/8<<|ݺuÆ ꫯ^|]v͛7oժUX!7s]>o2&Og:R I)˻AJ `j^?zHR{쁃@RgT```eU-LSՒ:ݰaCu:uK4O%u?l0LEE実~}&'%_|q/EQ!{nzPJsϞM9*z8J!GOC2r@NjT2f)I ==aÆ2L&Pa?)1AStyJiϔPgxXX8ST\r'<VvvBFbŊ/&:''ȑ#!MZb-~Zl7]jEd23 $sI14KBPXyOOBMg*Mgԛ꣢"4&˭6C Ӟ?x0Dα,H=vc.~ۀ{ĉ;vxW ! &xzx*qh iؘ)!VUEF)*GFj3rכHNJi`XsCGTTTr,,,4WO߾I AA99!AAAݻu#4>aؓ fL&ҹsjޜLI 9}G84Cye\/4E>0mꭖf\ kAAPZAA䎂; V ҂  (- J ra֛AiA.t::,FAn!#43 J 1X, (-Ha;DJ (-HSnaq2e4m/&I!,KA.A5* 'CYA{VTrWAPZkvuJ8a QXAiAfXJL&# #,hADQ4QP)LUB:AiAXrRXaAPZktUjXb8 IDATV2W.{P`AiAtB 9' 0 %+ ?(nfvLP(88NiacAPZ6DErv,˱FnTa")  a)\-F`9+ۋeYa@2U#+R?_ifsŊs>^ƍr(h5,4J " WiѷF_ٴiO<1y_va<Ν;u:uEPtlvʕ+7mTTT$;uꔞ>k,J#UV:߿ڵk[nu: 0͋-{w>4tӧϟ?ɒ% wF|B,f}uR[n2a„իWoܸ_jh\tuꊔy??̳l={vnn'N#G^~匌>2f6y睹s%-pB\\\6l0jZӵijAÏP]K=+/FI}~x-{g7|?d2}G:u;w^2ߑI^|ynns=CyW~'|2:Jr:k׮}gmZfFl<Լy͛& ]`>0ҫWɓ'o۶ɓҚ?l6/Yۀ6pcǮ\;޽{ ç~= o-ovddݻ ʕ+AHKK6mg߿bbޛjnV듓}u~͙3Ƿ?z脄A&Iڔ6l0Xz`hfȐ!֭s8srrN:5iҤGyw޽z6mڎ;yPQQіWzi 0a|a\xBx7*O>IKK?~WWuM0aɒ%/r;M4IR 4($$dӦMMOOOSfdd̚5k-\~hySNÇ7[/_xGyD)⣏>o$&&.]tذa}̙3v;_Z|9=?ly4 5g?63YX|Wݻw֬YO>SO=eϟwޟ-"Zrs#vR>8x֭[3<*//s]xu&M$˲&MZzuyyyDDddd,;qDx׫~G)1gΜ &{oTUUtJor`ݺuw^pSO=T~K,2dHII DGG9<\#FDEEYfJIiƎx:u믵Z-L4i_}ՠAPZV m?lٲkN}XRRRVVֲ_52k,i/{1oSnذv݄Yfdgg{%p̙3Gʉ_}풮@pp^/--EAPZ\4\Bŋ+**o1h(((StU=zZUWW[-+V|~ogHOyBH|||YY*u1cL&[ff͚5qqqoyGydРAݻw7 J Zp4mɔ)Su]ޕRزya"##CV=Z2$nsHBSN.{Wj6%BPP7l׿577… =7~|?󡡡2bDAPZnO|x yyy+l6[llB=[om޼y˖-GVql^zt )Vؓ'O:,Ji^^^dd53g?nݺcǎ{wę7 }#pKN xU#Z[ʪ}ݭB-Vl=HRڪܷ\j/#\cl"ZZI&vSSSPqqӴ'fjjD!(o^^^jjb&qqq!yP)ϙ3%uuuq]\\x<ީSRRR*êDMkkkOF  Fnݚ;ܼy ,xɒ%/^F2NAI2\Z Z- gL&i~ؕr!DVXCDz3n#h>*PZ uvA! ɀB:E64R \: / i2]'uS?H`dee+K.ҁ ݅H$e=}#Y[!$躔,*,sSB*#1f&Q!_\WT{eRzlhH1A_IPSL*tMWz~&͒vˤ`}mB$M BhZ,io!T-,!+Z|4W`#dC?'73f%#4=hB VW"T,hoLTTe7 "0U87/7!F&9W<[[4<;b 'Sl:nɃF@U%B#+S=Z*,s5{G'4?Dajy"+%uu8~Z+R}x{bݍ"ihȻ^^x5x:·Qhyz}X_ur-D60xlp@hyAB_"Jj!%:!$z$J'ho{\?Sw'L2W iG8'XB60Duے"Eo@e!*ݗ?I\,"ol`R T5VWVWbJJTOF%qL䊑I5U2/7>mBxk-~F&ʱh~o \H L)(ҧ+ ѓO+Skk_ _R(:-D K\d2ǥR)ˎ< Z Z@h B 5w:u !zQWx".-- SyΝX>sd(9浴gS?S7!6Y=ٳgs={ aÆ 62۷oy!cT\'oG2% !8x8&b8;;::x]ZZN,{uP## /?.N6ƍ^:نW_}U__b=JnO^xيb@pm]5cz@@kZ tuu\bQ(ή!L[YY߶svww/l f5|.nnnnnn ^/$9s&G,Wldǎ>}ҥKG'm۶Mvݺul6Ν;N|Mm$<<ÃΝ;733SQcc|oxiӦ:ujأMMMl6;::?">MJJbOj0pѢE|>5$$dps bcL |I__Qxx|׮]z駟f͚r}||=Zbő#G*++lg}ݽ{ƍG]7$$ϯ@(:99o۶>>uuuWvvvطoSϫ#GX!pBX3frAAAsn9d;;I&mܸB xYUWWF֭[-[_/?{~AUUU;wĉ}ݨ~1???ssM6!֮]e˖-]w***mmmϏ'Wsssi4ڢE󽽽󽼼|~~~C\n||}!t={\|966J\κUVGGG8pr劑B x4779rn˖-ai L X,۽{wtt4ZjkkBEEECCCBP1XYYLPϺ(CCð0ggg//pWSS\&fB̙3"HYY}EۛL&gdd+77whh!t箲 <==寝H$ҽ{zZZZNNN'FAðqc()A䝝DiTcڰtuub'SNaq{ _[T**'G=SǏ'-iՊS_utt?UwZbũS_`dd4yivرcǎs9rDIIh};w>5:^UU5{:J^þTt)"*L* x AhpppطoߓR|}}ϟ?fkkK4deddr>URƆhhkkP(A Ɠ.D'b31(o((J{utt)"ZoZ[[cnnaVieeBf۷o'?Ѱ8.77绩borrrRRR``Iqq?,Oi&''aE=RFFF__<*@ hnnV YYY9::>>"ʁPTŲ%%%iO:5fddH$y;[@@C1_"H=zhԱr(bcc׭[Z[[+>,<<iʕ)))"hĒ?\(/֭=|IIS|}Zcd744$$$?~|…ú|js.]:qD}}}IIIppL&[fS:E;::6mڔGutt4z5I$ 6[*֦\>}\_vwҢneeuQggQ={w%ڪ677c{qƍ+**/^N:d2g۷oƍ]]]ZZZo͛TCZjUkkP(겱9y$;p߾}prr o֭[SVVFRWZE ꝐBStCEDD455lll:%K,_OjXl… o߾;w2)S|cD' ޻wŋwM ft:}*]UUS!zjLaƍ{ァ9sߎ Ɍ _fMooڵkׯ_9y5m4gg]vXWS3g|g 9..f?|W_OCSL WQQQTt˵d%)PCC#B!$׷<\k!plWYYURRr"y#Ƕ?b?!IoET*ԞX}5GMM7ukGGАĉ6O~ijZjjj|[[͛KKK잺L&S" @TǷI?5H$oT BR\JѦN}sd]&cZbbh (.oniO/H6mff̘B1zkk+ @L۷okjj:LMk׮{;A]]Ν;.]z*. 9bllsڣG3{۷j*>?>lՁ ;vRm'O 'N utttrr 1cIpo߾N&FSS1222>y!X,VXXP(tP(kkkKHH033C655߿s===BOϜ9cnn}vQSS[tbhinnNLL$ٲeKrrrNN1m|9:gϞq>jW 1 &M$_"H$Rqq1BP__+Н;wuK\]]G]~}wwwI&+&rD\A-{<O"W^}cǎ9ZD266Qf$2M+ħS>u L&{QR||1?),,ϟ?HI$oVUUuh?^ܹ֒H$---D"qss[d  hC$)ޏ2N>>>D%%%}Q__ߢEHx@x~xccclll9)Z%2 +W\-yy=dɄ=tښdqsw{xsJJJ'jZZZ23; _kdW\/^h``@,p?s&O?YXCgPWWjoo'+!''7~/*23::;h4Q ꚚAnkg$`sHs%ʕˉfܶ6eEK!=:%M^˙LMTOO)++[,2cZ[AWp dHfjblhhI\\\tttI$˗hhj"QEѝ;6[~3KA~˰[^t^1|b \F,px!=q">ꊊ 4kLobK<=<-,̉YX?i%WRRB'&+-+ /wh _&4Fz`]{{Zw[x&>QiTeiiϔꡅJ! QL"ԔtNG[}2Y9--]q# 555ueeZ <#Ö'T e2oF:q311Ztɜ9mm9p-ffZZ⒒V*K~AYaǓ _q;X___cSR@E"B4c9sey8< b͚53g\MM{ӦN66"QEBb{ΛFe>zri4svv ZZXHqiYi9kG^Ђ Z]U]-UUU ]\ƙÙ1cZNN^n^Jusu!wvvhTǤ‚¼| K zyy;ŷn&Io/?l3HT`$0- @hB - Z@hB - Zo5DRTTT~ޣGC::vv<w6ՕD"AW"H&ܼuF8 q\r5%ꄅ̌,DG^ZKIIIkK$bGj%%666ff,(Vl:;!X,SŅ mmҒ(C2c##oo//8Y4M(8" nH{סּ/߳WQQ㸥%aB**8ocJ@``hPUYUTTlešP(잞jk++3.TWWgL⾮Yfx6Rd2_x}k-\MUUUYYyS>ᰙL4?%B2:MVviSR\,h)@x'Nݿ/d0 H23cAW?`?KTQQ_%pt%*1>4mppppp! +!FQtuu48l6뫬*))v}h~<%%NPVVvVV*O:%L ǥp<-555[[-[yyvvvR\ruu111mu-J-&//!ĠBAyuu555 kkkBt:!dddVTtG8 q8BZZ|[[[; s=== <|X]UaogO7ߜr9`oOQkk*D^ m-еk \\8+Zh4ڲeA"SRb0 a/ZvffV~A iik͘9kc3ίoiko/,$$Jaov_$Bq5qTxdd$ C@hӋ+UIENDB`ntfy-2.11.0/docs/static/img/screenshot-email.png000066400000000000000000001416261462047176100215400ustar00rootroot00000000000000PNG  IHDRh<:sBITOtEXtSoftwareShutterc IDATxe\U} 6}V^[;PQQD鎓{yq@7|?5YS BP(`hP( BPpP( BPHP( B‘BP( B#BP( G BP(  BP(  BP(*) BP(T8R( BPpP( BPHP( B±$ !wNȷcB8UVqä( BP(*guE`t68Ėo*.Gʑ* sy>'౺Zb籴) BPʋr8 )"@U*OIireE B btsRZBzBRY BP(/RG,ǡ~"Βc aPFKNGBB(53;5[&2[ @SGGW! tԯP( B)3q$@5FrˆD*¼ỨPrzV8.+3` @Ճ !B0dff0!3jP( BG`+!8VzFR"h@L'>,,KɥR1a`s' R\I!sX.pTt BP(?/  :+TJgRۤ~la#0&q)Ø`OA@D0!Ḕ :[|"yAbS}UER?7'_Դuj7if1wwԮIjk6jfd<`'5$Ţ¡=k;Wsq~oҊ9?AUT!˿ݳpH9Usmq=rC~7Ԧq=u=7$Q%]1k..u?ség^hmgx.8P_;}mAɥ+pBJ$;as}X)7ea:[үtTMȑ22` \vl"@7 Bt2Rm?/qQn--ȩk,!"2^N؀Y$=hȱ[JOύD_ȉҭetHT+va@pi;Xȑ2qٮ/΄gOxԁ)D:]ƏZWv?=:uJsGڰe:6pÄ51k֠amV֑ņ^ۿ@@LUNVyAqUw0cĔ!\LC-;\^+|Qa>m0 YYYNAHJJdpD@BJ K{8qn9փYm}iD<#tB2lV8\ zzOwݘO>j'# Is&JGwAтswzF ˫_>lζ,XZH+) UVZTڗYy3Ugc^*yr߭1u;#.iII۟d~#s&-6PdО{*]4|'S*qsjXIcQ]zn} B`gS۱]_qj< jD%;nV!e0":&ڐxCmKUW0!cB#DD! @0 rV!!J`+dY!GXQn^rVI9vR$ɚ}_ Tn9}ǟ} iX6ga3'7?P8%0୪tqXr$׵$Xˎ=Q }qe(JĈ(^Bo$Y/ȾUzلT_@/W&,Ȉ7cp !j8}"P8X "y::zz`0 ALØH,RQ\ݮ۞N{i-8:֬}䲣A%Y?§m[;k9e g`Tf \]yt6k˥W·wZxU;ڻ〃_ eb[k.gOb5qsgYǥc-f=F.{#"K d?hxwu]3qoPdd'qp0纲NrZ,W/w\LErn;c:5\\u6wO@L1Qr.uX;vPϭcc'uo;GJ97MUMe%KfHfczk8;lnز!,V%^6SW'{gq]Od$'66knYl^wQE׮}< ;Ƅ˨ ٹu%G/gOۏ]3Sq`nC@22on*Y4_}*âf2ߕ .mAb ePyE).;k;mUAVx F1@#n?G}Ggz_siMHʸ3f iٰS5]G^p+>sukZs]foPG\쵙^^aP̭ q~væ vքr ߷lx'/. <]rُGGNֽv {u< ~{`nߒ9̋o gcm_ێ΍qs8z. H'3չ?&taڤ5r㭈wvk8:9hآ̭7']ʻM9w{zln^ k8UV׳;GwíC]Fy]FI+k5Sn\S-z]v0@C!(_?{]j9~/Ң2gNI9Q\%]E>Qz=ڿ =$PB+Pt#̱B4N[4.|Ę0 „|@Tb859YMB^[Je2) B|,@ ]X*,O)wÙiC^ȭdO/nxyV*=Y#69|`KS8.&#e8cX*#/] Uc\VmMΣ#~ɻ鋒20C&c}W×2܌[%%)WU^-ƌ|!PFk5^SUښn$]i(Y^|ԩa|f55&׹:۶#'EG={Ê?vY&M0A݊ļ 8gl^SȘ{ˇ@2Ͼyp1[wLv7BXv_:Ƴ7B}:11!Dn$Up<=e«_rmˋ뻦߿v1Bs06<_~lWA7Iyy+?nu}ʼn淇gYy U%G~qa>ê[/Lxg&D\ w6ߢ*:x߰G] z@!s~-q,%dL+ڐsDӃ#d݀^klZE.#؞~ÛVOLeb$@ `  #" !DGD!B8ۉ2NGn!aX,XCSd| :hKD65whOC?wxͰ6{i֏k."a'X(mteޮ|ԦI,O~g,zꃤ_>rƩ9Z6mlyГ;w/UR;pXtY:1X'H^u-mP.ץ59z-0ۧx@yCNi?k7,뢋${|Ϝ.('شq[Bey_}Mӫwow-[lѲe %.Kܗ䌌l:E|JZbWm5yQQ<\eGr.wZIۮL"|gk[sW^`ge]kX7K&QʦN ,͞n;[Or!Ddy[[س>korւNv==$vRGٛhQSmw9jWuݜm%Nݶ͚eV6#G, pu;';+}rAi/i&D?Vg\O_LJֱ:𹸺 ]Vbk?7`Vs_J[ͽ*P JH:6_ -W/7Z~2_()&ձ8 8[dqV%[?WK%l:~V'fk~2|[g[]bRZԀE-$j}|TJ R}9LuKoĪ4wӷ%NG IyFɯL.8/T&h ZvP\em%z={ QȠZV6M*rO/'k[SeJ{yZ#[;EWuN[ ѧֺ΀]/7{+nn KlljY qz..vVNx "wr8@*NZNTfѕMĹRnOvV6nJ=;ĮZoܘʺZYn#C㛁t k(a)ub5oʵ|ayk[A_Sׇ=d=z tN[SRTFd>ei%@M&la2v/BEGҩƬEυLز'3/^&@ Vf8`FJ =Z #>- 2R}+{Ym$復SD%D.<]i#U}>U"#5KCG RddKEJԲ-.cMTu=fX(ƨeY" =zeފJAf#FxB^ծ=uN}<UáR[5QA̚m*a51n t),Qqk(8WLX3EdHGWA@ҢO}!"cg?pL>s'p~ NmmrBwby䚉ud9L;O^=>ipc^(Yr})bm/YVLo؋GoirÑkG/Ń W@:G7F\̵"W\Vk\Fݾԝ=s%c֢%+2̬YyZpFa\ygN* L}7$ih8%Q$ɠ|{{gWB-K&|nٰaӮÿ/P= [&Yv8 Nlt,(Eabu!O8#wR6WdPYDƬoӆԏRBX@|T>QjabN2P^%<%,-7,1 |c̲$'wV 44gʞ"AHl6Z϶[|%= xga$nعj+աE/F3eb)q5'cv%"YqBG"#cݶPJEF:pNfTafnEVc֫*?ܾ~Nı޻w;k:5oi67w)5Z=YXNqP}86).=fo;~kv,_(YG}a1Σ/2GMu\X4X&=kZ %ѭ=/T IDATYC6uhTa.ç?^!bdfd.{VӐȸV&6z[Q~:3}ci)?;fTڭDC+u\8i`8I^ N4SS"-zItqV枅\M#@di=ƼM4tIbqq,JGFYcCsw7e LS±Ui4i!Bú!9ȇ#]Vpw ={"-m&Twp^* [mF:فrΜj#bj!aq,8#dUf976裱{:Dݹ2oKIT83Ok;K&'/e0lP⨫'GH==%A/qλVhТd0zNm{}?u~stVn(pT˲At"BA"yDB> `„BCF7ހ%_2 2,*UU*,UW@@E *UrrYeyi鿦&AC HʽfBnS}6*ҋ\8ū~}׍h_ϱj*uZY~ꖦ(-{?DFRR~1O\ia~]xX4Uv6w?U%8>F}6mש[|7T$f?syLѵ(КY2|*Cu3SFꌙ>8ku\}`Yel?f kȵWq+܊(V+b89ӧ_SȤ2,hmTJ%rK+ao<o` mABfcm,Y?N*%@TY !^O+-X޺ V"~K攦H\ 1?9֖(p+Y#cmvlMmԪ IIy/7o^g:o’@VXkCV&nž tyyX=uHm&E]֨FǞ^V8t:{TjK-1; 0 J>`" !+X"!"!1#ڊpU8L&ff{!gfWvڐ MyWٮ͠XZ >C~R>ǪWA(?(y$ﱡ<~E'Cvl1&J|rC`3. LzJM,+,E%sHJHkhd)v)J 9+!^_?<9dVbc+X'b !|S E 򳺠~KTruKWw1cW]oecC\xLf#ƌѧZk/@ P7eJ,.">{/#XTYV<ye+G5Eѱ̽?EǽEmE޿~ra2hUxyY[/R1+ie[&JZ"ID y% >1 8ct梉/KpȎo5J#-@.L+LPպ2SS"=~Ԏ,]}S\55`,Tf5{K$|{6Zêʺ SS?V/#E4  }tJDS-QB^Hdz`3cnQ>BJ۲n͌FtlѦL@iqdM RqRDDQ1hX}coʣv䠍'.^GmC7oJ~gCH9d|1,qxI#Q_10f?ƨMXY$3FE~vS@Uq.}kQ⟻ +qj ~!'' hn05?r%GR(>+;}ЩUٯ.ތEXC1 ;.琝 {"B6TX$b A"Y--PR,Bx-J>W.;V6h؈=z/_D"H勬LN244ڣUDmm%F;sCWBϜܭU; ر{b]]Fe+H K}[ëָCd.h$8A yě4w#ͽOn^#YUX.N{qja 4vB8DM%E9$LF,ϩ~]D/L4Ɨ]d6tiŠ ~ kbg[}}zwGѝ#FeNG~p?-fk8sQT:h34@Eкa.(/T8شSO~GM }4I<3UZYdZ w$GUz,^;i<')31XNxlK&5ǣ6}1::kLaH[O5mF"gkGq| úYe} *8q߂&bn] Ra-]uP=?{.\ N{*(m!E-sǜ^fJ^].g g_5sש_CCTA-"9/j:vL+ҋDkNuF&tȰ~C>>_ܓJUÆ K?rω28>Wi;OƈS坠i&!&6_ĘtIS37\ w>{ҴG:i.Y+Q-}Ma*xwDO,$OxB1!BW:$34R[9Ø $332232J@ HNNJJJ+r,9))%%+̌̌ \r*E~tp_ZĻA=zcDz/n떜Z(n<rn3 ;0gýLU67M = Azcޢweɪoͱ^οmCQA*8檹 -Alй"ݦ}:UbIƝK})hIMK~WN6 ݦ][T`p¹+n$(eWm;T ˻x0)do$3d  k6kT$IBCKxJҸ5ϧ6+S~<}8֬ISG+p2.g?hwR!Vúv!pfbwy AR`$}z0f&"8͛85?~>}@v d9I}atJߩZz,ʓ[:6"-r"Px1"%ihޙNdv?dlJ<:=W,"6[O$;:͠ \iUXP3wKH9SOf ow "C:[t=hEp*E?8`BYYd֬}FMkc@yI թ3ϛй͜y9S!ڙ8?*GӯE~*]4b'.)$ҹ۫B tGDE8)VatHP7ϗn͐ s @ՙgS2Rc^ܸػUG@RxjԭQzQt`bkjH˺y5 ! _ * *@3BW#ߝ"m9__:YHmhdL.C bYA8]]-רYͭDOO8!1LLDH%Bh. fy#UI]zvNwބܻkNA0xp4sE_r. sr6xqPO{)1-93w~  X18gգE->HHnUoirQ׮Sfͫ~_Kr$Yң-$&~~}Z;a[],y8^SbjG֏6b@y~)^)[0ܧS{ ^qVvkZv;2)MnuԘa].l<]>sؚC޽ qdݨ.CvfU?-2F, [4:cTdd_TEW'ck\&?vF[sߘsן~&wn}ci]H=ۤmFƥľrvn?u%cj zHuxl߉ۯRaU~E& 5S1c{ws(oP)rDϷ6nG) /nߧ2d"1ś= vJ~Z0Z㸋˖_M$rm|ccQ=F;]Lrj‡>^~?͝[Dw|,I Xջ"RS⢂vN5dsph`⅄[kV\hyiVI{vSF=165lݖٍ NA2M( z5)0/(8 LU6]pp ;nΑo/mvicY[W^&ʧ'?9ú7{1v- >Je,{ڗ?ؗSSݢ˾;)ׯ8M"nX`%ɞ4; w2e}Ϭz%i??=}"$5p654ITcKMGƭZ3n.nyqK~t։1fF/)вCTj1V[jLvtzϣLկ–OM`_?r邋gM<._~͡Lo>gՠ7z>G"D+'iy8oyxҔ-?5ή1sSZe"NO!dzf\t{ oYXGoy93~A۾sr[QwDm% \wR@^ ކ,s?k;f\ۑ?_u]n5.śvnz\u²pqu;&^iV3O|Vi3vE!y報^[?q [=IS#ƴ1 τ8z ɡvJeg?;f5|Uڶ5XAr"pb';7b 3⪀~a0ez^3q:_:OsPSniu51C_Z;VtZ _ZBXH9dz6QH A5jH0f<]az** DOYZ00,c׿BXiqBPBcD"1ˀSBv]ڷpP֦:6\ݣۤ'nkQ=CBs[08ƪ27|MxVbcyb}jOZw+_تnˏ2nϬ>ΖFbPԶAש}ϯmWm_/lӥĆw}#kY X1I{|)`,:yY2˥_kjSM.l2i"U\qܞ}=-]=;S]!Xi3d+VLȶ/ѡ M$u[Z;h3gPJ/HheV5 RhRD0 Wdic\'*k:iDw"!1, <lYj#AynoP Dx|j pu-:hP;(6~Z;V\NѶԔ~>!odKm`M"cQq|0_2euBL AT!W#Z" IDAT{8pֳܨ{+Һ KBP( "(##CPˣ*JK)Uz )Px$6-CÏ1O[7'Y}!ȊdtJ -0=;; /pXD,@Di08m>A6l7o ְҾv#jϙnP(?HG. xHQw^HDab@DdDQ{ k]^N1H B,AX[$Sd*T@WKDkJ4nݽ,P;캮9C.HP( &PqU6pStlRBJԜh[Bh怹>ɖ+Dʖ+ ]rH6_#N |!.]5ݤm!UP( wvĥUF RKQ `e $Or|oLC%#BP(?)) BP(04 ( BP(T8R( BPpP( BPHP( B‘BP( B#BP( G BP( G BP(  BP(*) BP(T8R( BPpP( BPHP( B‘BP( B‘BP( B#BP( G BP(  BP(*) BP(T8R( BPpP( BPpP( BPHP( B‘BP( B#BP( G BP(  BP(*) BP(*) BP(T8R( BPpP( BPHP( B‘BP( B#BP( G BP( G BP(  BP(*) BP(T8R( BPpP( BPX$5쾭8ٹ]RNw9󖢘Ǥg8+.0i5%&Z ( BPJ4bfQV@2n,\2F@ۀḿ%A9WS[Uagg5q*ޡC~w:xꖑ<3?*m±'FuUu˵_ZF\zqXWtUՃՇJ'GK P ڥC[Y6UMP7ݮ0|ٜ}5'B4Uz"^{EE,XWTT@t+MzBB23"ܟ\Y!3<枙!S3v3}h{TI\;y[?,zN_s4j42mMltwBK* Snp|g>9:]5,<^Ѥ8y9wp21oeMJ$-vg>y@!IQD';8 O-'U݃bk{{kԿ%$_KqV [ˍo=,g;t2ONE%um>$${k{ov=?c҈|E8?osw]M]oOn0 beURP5u4WeٚS<=i^|RJh:4Bܡ)W0G'yY| {rsΩL?˓5L'gqU:D1 FvHO\O#9 sĞ9MoTQt۸=eskq{E- \}Bemc`7 QwlJ =v<4*T\Z~,%^2?uJW^YT~sz5w׃nw,*O68o-zZ9aK 65*~;&@٠ cFw5 +|}G yUbw.fɊ8y@ϾӰqΪg,G-ev)QI3]Flr'r,ZpHxLVm~*َg׾CkД_^_ {2ebcLS6;s\^+4zYngԈN)zӑ>eᷢj>ækے ԧNߋ[y3 F~Te/cG35?1^i!9#*S8ԵɅR}]5cgGYǁq7_eUs[:4,9xhTn5G۱)}&Uh{è'G|<^yD'6g;u}X,뎝:8QѽO=OSLӇoe ܶOFT惻5 Ao`ej:f1QOւT'i꧷Uuˍk!Q`/87ǞPaמ);\Ƽ:3ƒ BR#u;->rv&v+z{7KXTu d\<M Z]k3jw\Otu\|Ķ!4ݽdqjQrk/WGؾx??W|8Y.9ԏ6 ޳r=f=:}͹?WkWTE*8U|}|Bѫvl[>4/ʿLD__7?6䃯A"T|{܍P)>vO *xfGaGƨ_XOPܛT:w 3۳_jw 3/m|;X+"J°Si\%`i+-_BXx1\ԟ>x.v*$)yUQVAUOn=`;[@ضo'F&(-4q*Z|u{y {ukt6]r-7̰~_4.0WO5@ˍ9`)pul < m|UݕWk3E 1e=ZtvCsU3() :B9?($G!q H%.Eni!IN:OUjODEb%3W'Ӗ<>kV'w: v=Of#}{}]Ӿ\õp䲲!{&I\sSa ݲ:g h)B>Zz,!~Pnqn:|Ǖg)KڒrC'7 =!7h2G3Cxl\0y~ءYv&}7/Uqk<z6F"2 )w_kGGY}usT"_gУYyr~`Ft~U$oo-W5@g䂔r|P=-ߝZdΘR%*=fuk5ԳӆZZxb|{yfA;`Sh^(^;XqN~VVB]Q0Ύw!Zvs-+[̘*a!Yَhx{ֽz[ٙMH1jѹOůתeޏ7"Ei֏qQ>P*sκO߲v_x@D5JS9 %ܹbvfw"#.r9@]}lOz(uDwV&MKm0%qqE]*PYpٵZnjWYC Jq\} M~2罣Wm ]O*?LpB.V}#i "˾og=3!5eNDB^$"?϶Ö_8:܂ Tr wJh^ߵdfe.u~St*4رDTF&M).<0wcgGg:W1#</۴9u]TŞys6-uB&,41B0r)a9h,~<.)*rAġK;)tQvTâabV悛9`P?\.@w*pwN.Nn,09Y%#/Zp+7;1>7*?Zظjaj#OB^vmVZrYBE!4XqDpp3H^}&ž9WI]z{+UNЭ3m"x6jǕZ6M\9@tboOJHJ*J,/YMP?k?l/8BXwiJom9+H$\T"m-.ՕbE\FsA6;UUe<=!\l51:&.IsZ,k+zV{ir?ݾQkϢ햎}f~?tQE=3F+'{[3lEuh0brF@M̉GsL_:թ2-\P]/m7WeʡBj=iBAdwv{bM ah 6lQ+vaP/_D(rjb&a`h|!)W d@6s "zvႬ&rW`Da'~+`>]ѭێ 6,mE P%YUǷVqwLi̛Zx=WGK5Av>,gz( ;X%XSQZNoeQWC^Uشvrj \&gs9J*y>TuOGV^C67J3JǮmϡVjz~?1,юzpjT*L%<$Fw q8Rrb 3u˸ʞyUp4utttt59@ӡ?TSWSU@K2nͥ`/.{ZfuФ';ݹ+vX|mh*TDqw.zM$+e!mg@?<|MQYT u/\!YpS]@rϊ? An~ F={;qsfۼrE ޮ_2䮿7|4K`T<ҭQ!llSSt\T0?+u&ɔ?1٩7n()edn&@۴?gRPX.mjI\jT(QVK}Oɥ4nxBZ2rxmko% )مMݪ49qutB;IU pW^.,O|_RJOq]N-201_+*s6ܪ$ϟCťrNzr&8cGqȩG) GGW 4R#_GID‚ȳnU@KČ72B&=,(싌icrdZ f&Tfܵ/ŀ=dUR Tt߸{J&c CXD}6]YCϱ{w|vM}w&*z~6Wɥ\ -:w7-pVh˵b?a{cKJ5 DB;rirVF9{1ܭLœOE\';dk^Xc*˷eւ7 p :G\zS!Uuj})T ~P:|I3ĂJd 5gzmzz=9:57hsYcoK|9YA_[23²E3s۠=~'Ǒ{9>c͇[wh"3zZrss#ExuV"YΕ9R%б2w7urAf^NM|q#i>z쥻 ;76v<$_(uNN^P3q_X],u䕭 Րj&nsF𿯧:}egjZVmLP;%7MZߋ)@E O:Ni-Okl n^polRTz*:x{f:d-S߽gdù6|z![VRmkO=0 ?hgª)+1_4}e9-=.IdƱh }Ҟ%' en3Al[tVԳ0vtkj4y4`sDM6cujS֞:~qO}YK5BS z]}ĨwW5"):Gk# ィE^Z:>/La؆/.ew>YⱹvMpтB|8J?x;!Իa9B~ţ$J}V1եU;Bġ)6o<:e9ULT{4/3)ne6qj433fddqBG`lkh?.ztp S:~sՎj;ck׎9bq=F2Qc9uk,Gi!7TB!B!08"B! !B#B!B!08"B! !BapD!BB!GB!ΩKk!BB!j0Ot)uFS\@% $>P5v?אO|޹WݽeQO $=F]<0c_C^+?>zƋJйLD(***,,JJJZZZ8!BԧJS IDATjdY7m{m Og-F&8Jk7bPCӧu{n),}trIg |d_X"Nz;zaS1%%b%*B!\8laHPK{؎*ŸGSKz};mmS#*wTGſ urmͰ477p8u?p8枞B!>?]/r1Q/ z&yyR0Yd݋." uds8,JN!/67{uK0T-mR&bjSSSEDll,xyyp"B#qa{ic3h@{sU$I}}}//>I8!B%ʱZngdU1-UӲ$ JdR)Utr@KKX"B='k3>iuJt'1SI'[u1S_kNĉwEEo['x<FBȱ[ Fo79{*yrk"/jϸKl S2ux[mIBOޖB!`Y!BapD!BB!GB!!BapD!BB!B!08"B! !B#B!B!08"B! !BapD!BB!GB!!BapD!BB!GB!Xpb{*OQڭ#onQ:'{ ?ieZ .TN6F1ǵw]7D9fYhus0xȒFAEÙ?K<&xЎnVξf}a"PőG hmk&ƧWG jkek5 ;|D7g+{Ϯ#`ޡBĴY&+֕y#夜}GYl?^hO=wjT$ȩ hK~JV?> ܼ} XTƝ\"B{]m~aDWog{{|y{d[%7#fk`n )W֎eommyزӱ PmHtJe`٪ȺEm۬~)~vRH;x:9xw&Q;m/|vp/~.6V6mL[1YiT'W[[g!_l4/KEuv_Q+5}GvzanGahڜ{'qu{e1 @lus#:{8:LJ;ukhvڻΈDb DW7?<6Ar8,Ghv~V BSkѷ85F{Hq+ BrIo[X{>̋q8XQ^bbLz3$pRⰐG^9kBUv'ُ8nMqfɌ #c,e̠kWj%Ngt?,j~7MTrDĘc^ȯCiamIvuǺ,NV9y7^k8㚼j{Oz7*DZ|B_$I*gvk<$fת_G\Z0';vvC6Ia_}C|a ) [>f=K_7ZqFZy1oKh`bdkhSq1$u[k{͖Ivd̫ c7\̽ɓ݊;mwH*\q&򞑂 d$I~?ڋF~1|u[.-o簙0GNGn;|u5gF:::m2l|vk/#;e[2|Uy<ә^}w_*(LjKC۫jhzC?YbhYMUYnlʜXZ<xv Wwȑ/k1!sm֛ZD-[ ǭ{XTR ._dywQKI?}`JW.~@;J@l.m,}:zI3_'8ǧku`녅͢WjrgOQ#& _,̹~ٷmmޜ\[L'*UڔV [* nڂ`b>o6ƪeΈ8yZ$fڅz2o ԫ֟4Ƒ ?>;]R@#w<}v4{45Ce36=Hl|Fej7Im}M0{;8f1tP4sj8%S);#B{#0V15݅|ܨ2T1m]Jf(Un$ 6T{7I~E]x+8ڶ5zѹX֞8 ƾN0?&+:'~+shZWb܆B`ѣ .ǏȢΝMrI'c].sW3̼tU-s74q~&oQ䉪*9UM]N{N\[| gv15rlaWLHbkٱJIqClTHgwO))%ߜ*1- ѧqx7ndl>Os#/=<0yD/1_oˢ;JX|EY:Gekmqu(4wuum{iq}As\,SRR`KAY]UK]=sњfz|'R|܃(ũ:6U+_ @pLHϿiKAǞ5ϒ4@ۢct;knÑȿ$!f+:CXi.tP6ќN&FStZLLk#-͗ؓ FuLQPoT! FzJ&ֺ[3N%&m?\ ]L5Y.QpaɼNI?|m5Y9YQ؂Ep8LC';{C&;} 7vw>r-sWn\?05שLٞ9hզd7-8THCKӊ2Yz.IqS3`ߋŪ;EZMr0LᬹM[ E, d"s>K#E;oO&XpX 4 wA_mH7p;qV-Zsڰ%n'X 1Ѫ|Ș9TMy"+^{ѷ_#~G)3VCqSS?<3b)RK~I-%GG!XPߞr!Xϗ$JBuɧ'M~w5 lt! @"фeaxl!Ul?Lݞ!O~ҀEtƈW|I<,b%|nKEM6+?/Wt_Al͚kj,?8\.&2f+WVіsozXbij= %9]W7A;* j-uHݺ[ڸqnXy3C|gX?F ' D"1 2Ru%F PSr}%U 4Iz̺R.KV-?N)^qfqXPKK¬YRw|Mr[mnsT*-ud})ŕ@(*`E[?5R'' 7fU7[hȯf-]L nB UM\*JxFBU~{4(gFD6"`I6B#KEMJ )"5?fNٵƤEK]Y,2Ebp'PTdKݣR-%Wc -I?z* ZL&F\B%!Ki#JtQ J } )T@ I+cSI5KE%#AQQTY]J^b 4n<}FΛ $/2HNƈ% mj+I_D =*l,FAoν#$݇qj j_>搊`B?f-~w!H+%7ݣ(`2Z°j|F?pmӺEne\yAY꓿T=zbe˷>m˜VvSEZڶ"HKOw^\-ZEgk/.Nn.i&Mn P(հCvjz}r?<{A @Y K>_&$ƥ2&vւ?6*7t̅'?(MMT 2"v/ᔽOͤUtt?G(Ȝ&xzgrS^Dhj}]ji ԗUs}Ł/? Izj.hj75[ۛ1)1 RVM="kܚBJ`$Ho8Ỳ@X.zSTWؼ^+rEž΂_F-w X<Q[CIPj^[tq`Bbߔ.` ym;wcH:L33RZ*PЫOR%I>;k0*^pE$`jiM)uNHgs nԩ=Y+׷JAO(sHlC-K&]ωS$@X!i[sߞB_AfꂎLa^{q|#3|d+'Aht]Š-˛9{t 2_^b=Yut,Ւ !WlZs upo%%XwҬCG;vKMmR4 }Gj*Ar^a+ܐzoAZ, yl0ew ^9Emm8*&2,pS&9LYĂZ:'Udd"^:p\J>RkvW ^%A݈9?r'2&-3=ڵ% z8iणeyfoDkF$uKg,:}s;!B(Mx:1Ĵ[[]*#SjjR{O-f|Z{JI 8;B|^ڸ>z-Ϋa4hp-E[dqйQ'T6U}*FƘǤ(b3W2W/Mx#qV5eQd/ٛc\ot~v\O dʳbc3}j`*ަ*w{h\Mς/8~HynT _LuD* 2dT3r4h`rc;OtQҷwdXsjq!=O-?z裙g.L~Ti =ٚ>9:C]}AIwFY˳SE,#{Z斑3ZlZhdRKHVWI*+}\űw;5Z]F+p6iT`^{.^=2}k$C2 UºWz^5Eǽ $ &2:qPTig؛O0rYj>gqK)Xh8`RG.+]~ʴ0Mu7ݥI {љ1I7pa'6Hm-ueM4ߓƚ:`ʺ &395@sD1|ǩ]R7J} ;@qΉW~Dk7g'"/euǥ yŌI9t岰!m\|lLѦMof%ݵZajD! ["U~φ% ^Cvmh_L}`ǭ1俩]qb# TB!~ ^F!BB!GB!!BapD!BB!GB!08"B! !B#B!B!08"B! !B#B!BB!GB!!BapD!BB!GB!!B! !B#B!B!08K> IDAT"B! !B#B!B!GB!!BapD!BҬI6C%{;+L6D[{|![I%aiK,On x뢇*LVGB!_/]d5 tA%4 5ؑC :2x\ᢰn_NW mHFB38: 4Y,M>>FҤtJ_x CB_q#S{j.Vu8<7lӨN~CV_0i^x-Хss8xщr3#G-fUofvu2f[DAaYn}ۺXZ{tzFm$\v.6f,o{^ޓ/JBF[;5ٺo@N6=82W*,AΣ7;C>;8?+} ϭ L}|kj6N֭,=Zs9E C\Vdi=L!oj0$:ج>6Gm}XHSޣecw|{|N?o{{^?ն@R5/B7loU B,8<6m#ݾw<=3ֆ3TO{8zyHe 2$@pi oaiܮ^ӕLy=\tV.T@9g9ewޟdv`2Tx,[sYLԭ&1VOC!u縎S]imJ|؋dy7-`<Ǩn-{vs2 ^h$i T h rkG l{7~T ^{ L,hG|S2JoG\ӊ^LeN%ߐ^..N !܇mَ9pҝ--l{>,˩.\"~ԹIC.ݹ+rYikiocDr- OII,euUfkr0bՃ9ֆc$%>?A jvճ-:wC7JZւ)]g7yV1ݻZ.Yx!BsTH/[2-Sj*ls ]u/cikF>gЦϴաae-h(( Bvn]]P&ѵՕD tbi}O@Ws./"zjCy4jUqCXfEIE9@pJ|Hm)eJ$RHJ*:[sVgno;RuiUCzq57vr?7~M/.li 6`)(T*ekwW|*512mV_$l썘I|Kk ں/7JJK B!_s:`Ko\hWFiX|!T>'N誔pz͸>n }!VF|H4jJPC޸yu]7UUd:ann\^".TL =!<H%!nu<ޫ|&Aԕ2qc,bQl9^#KFv17l0^Q+5j-PeP%o ba$/BGcהߖu|UJjuPqAZJtD K ^"+K{qЦm<;θS#0PS,Y[]˖TRW7STVqU5i"ٵƤEK]Yk$7ΔZKF,__`sJBi U#gjIQK{7L^@h(*>7nWYs* SyR@QS5`U0"B#SS-bTNa3h`RXSӌ(V1&,"=߫Qi q0ilcsC#A|RKZK.&&=84ѣ}+ל]i@xSԐTбvqb̕WVm䆪<-6Qac-~yI-. 4qӋfkX|ޕV30Κ6l2!>m6SeկV1GBvjO.^~WP9 ):Uٷ^J~nmKojocضS=J}{7[%ǻO!zd덄+_)F-Yn}]!y^ćՌvEgW.wqQ+mlveYz"w&EDb/X@. {GrT<*{JEQY`a,bys'l&䟙$E,ۑ2RnDŽBE}jYur[3Q2EABÏ??_JyZ?ykQfIH{!7|TXlHo[0dԀGfL< IKk.O C kkA-`B xzzH՞aY_E×.R}|r7wcԨp! sDܡ 'l7i֯<߻?ޟ;Wb ˮw5k9o3r, !qy{q}Ƹ/ E}ǁ<5XJ'83%)"V$ 4,74NU#BB!c8B!08"B! !B#B!B!08"B! !BHpMZ@w>[\4nyy55~^ƞ nWG!c =5bU]V얨~Oβkը%!ɏˤ%r =ü:06B!G1ec:6,ei _ufϞd ~6B!8&ndC{_NC͍L'n;5M9Lr462u<9{g]ȞgMMLPO!'7rޖVCd[WG!: B0#9^ 7dL'kS FYڡy'|Q`n^?'fbn@x%˨kCճ7ūEvW^Ie vu KIiAUuf*23oUl!B1J}oo L4?Kp6I_q `K' ]vZrzqo.^-qD|ט$h(> Ĺ eH6&!B[p,yssZn$4)~ɋD~BO,lJ YUl!B-gHjK-+] Z<[Ap9JK) m;VL%BGw73674e%|Tg/km`tEg^1جwF ɡp{lLLm;{b̝Cm]k݉ѱMc0k #M.<6xԧþ-wF '/U&`XWGKCcK#/fȕM4 wti&wZ1c.{EЂ]=V ӵWc3}{W8v,]k"uyI97j m_4|_L9*N2Ֆ @*d}KmeGM^;LjSՏ7Y`H?bͤN܁$_[%`N;YbԘ랊ɳ[R_=vIi9 ŋ^;} y"wW}WyrBZGj%d<)oF.MCFW@}3g=сfʳ?ƌS۴qQKBHCԔOZG];:e<+P\׽̘pe[J=ucpsgA~Zmb/)MޟՈoNu$i<CٹBR#K3 4_W~'W6a8˼3b!vDIRwGNqtV-ygu5o[1x1A~#H:wrʮoMXCkSMt§<ܱi,Y/:=A_+l̥j[%mestNwJk+츜T˳9J&Ytu4;D9UA9K[͊ p(LCg}~=x$3Uv^vV!uџWm|pJQ.|BFWR K˭]t흝wBxe'6{kWac7}O-7,maڿg?c]Tt2A;[V]| ZϥV K2o_tEl11<!SI[ؼcٱ|SկWr0205qoؽަWkOW{ SK+{wmNfÖ]xW7@%7ﮭܡГ|YmM :t?ԧf lkfhhj{~lZyWD0wkSƮh/sUY & 776w5qoEkWۛKՍEx|>ǤϦ !Tf ۫E>^Bk{ѬLR\0k(>]u~ZTwCӀsDP!LLG,9ZtIV#bN<Ō0 Hh<+xY!g_78 <ҥ/3ޱ,uiZ;} ~vT˒kG7\l`2Yͺ~h¾#}P)!.l,QY?f{:",V o/EMjcbhhn}ӯjn;YcKO= S#zogB's6LUΞ]7D򄠜߰QafLj?pޓJ~(NɽvWG ccNCa IDATzRJUwS2_!R&VrhC#5^F ?6!%2Řb1@p.e9qv8V)ע<x<~kZ GLj jn iǙێݷij_`{óiZ(nϡōEwIU>Ij}N H6V]8!|g]#K.2&;dӺgfcǦUYS7vLVU'K/4`dҀ5Cp']`nʓWHٰ '>Cufs&\\ChŮ2z+.cm }S"G|'=ө3bܖƞrh+Gʀ /Mg>{҉ _y._:mC֤-'Ο?eeӢT@ {>p$«tGHl$@\;xiǠg/_U{^*ѯSd E) &a!-+yߴPy6s ҂7GcuKyf˨h_urklPi4k\ү\[SŝWBY䖜{k8  ?[j2Lkxu"wJOj $mX@Y:re nvN /͜xpk̈ XL.+Ϛ;`uG͍Ѡ!r+Ş4S.YΆhhvWl!R-=5 ws7cv7DpogM@}ܪ^!u]V, ]fϪڱIq:Rc[Jx8`l!!2p1aϟ:=4@sr;]_jӣ,+ɊڔW,Q ?TuT>J102D?]&8}KVPc嶸Mcˈ.^7U0&zuKOO90 [:aS< f5az3f kt/&ٳ"+3_XY!$d45e2LI!^QIO.M&x}U<޺h[ܸ&36x}CN _lw}lg g\m}ehrQT#ei6WFVb<V&wL1.IϘ)]HhiQs +/H >TMmixQV)JJdbX=S`t% @^-%L-8Q\ .˿h~ZGǻܩ!eͼW_.CfҖ-usE"b dmZo8b-4&@W70byd|?tUS CEMm'׾+r'i2n_'ץQnm}SnVEcds99hǔZBL)'A@-Є\+݇Q3sU%RL%'l6#ݰʌ$t5.DrM&i{ $)}2ܔI)6!#1@\ApL9 B^`G5C=XЙř*rѺ_[^a.*{LSb!)珒k:ڈ?ݽc;auU hE,zq/8T5;J-Y<&>힟Mx%?߸У], ~dvJ+T<>d˝Z`0Y `R:bՂ⌳W+! &+qƁCh=Y1z"RO+rnz<2/cXt@9U\3]4eW?SkI k PJWUU~0ּ1 F[M~&B&G{Ζ`7i~6ٌ9]~B!$ݺYi u窬kXm8kBԝr]Cڻ!>N n~Jb_1a15~nDi˜͇\OaI۞^d>Ƶ.ʵw߽xƮb$l ö֭1MJ3jw BhkK4Y  u)o7(M+8\{u7#Q9֕*6/h,ww4U}Qi.IrK opld8]Z~+b$ImܘxbO9] :?I*_W|y`۴oi`FLmc&V߻`Y[S }B `KtE9<7xvC."rx\'\ iu|IN ,}PU|qMQ Tgզo?n/$d,2xʊJ:DH]j(~96ck$ ʖԊGɤY)II f=4 Xj,ɮ0/+؋&'eZ) $٨ 儐j8W*+)e3ܸԮL8!eکW rA拎06弎fY _8yFįGBFA\I !=%jwL?()&ؽ"]\}7=7ۙص3Cݦ6tw#FO98&4 ݻxa^OJqomFC#bbƳc:^W@ TZ\:94v;w[Ut@q$!;8ӤťV,=-ii 1fVvyivd^rX1\RG9.mjʵ GZP nTD0:\p>q-ϩ+=RK׭RD'hP : @sUwo*FUUUbuGJG =/ [/ )\+͊/S_|K^޼JʡUݣd{#} Bl֯ӶM?L&YutM]ܰVK zՍi-²ѮL9d؉7~n8h!)anwjUBcs  f)>O+x oFPeFi**e)=:*Gu RRZi(gA~W @KW|S8#sG)44vL(i-l4f}w t U;cV/> eSS귟hjɉe{ 73(v8oIˌ_I/%h=w{ oTex ʪ.42+ݫnR;>!|vG6GL{s&xG?Z7cV?ej,qJ}+\9|h/V(!ۺ2/߬{.v)s ʡj s6\nvYJ$F}sc ۾F zIosْKNnppӗ5tWw1'SO ); #{(dۚxL<,jq̱D/8tmEu?|6cW3PϲAMy/g i`2{IR^?ʞ n}mQ|;ԕ=]e}}ٟ`(kR0T>(" mlE%\fw|Y-WqT KB?\0#t㘐)K Qasn\|ɲO] >7ZcLƲh̓3n؞+xs慤D gwѓ OOa[2I1'‘ [SNF6'e>}Sbdֵҡk(s5-Şcn9䌞ܒkC6 6.yG!mmjRѽN0-8L,M[(&ל(މ~Cul_/K45MUm}̏]nHyC[=5=F%`5X |qdцTa NUN YHU0g^yi歄6wlܘM~c>O){⡘՝fvn2"d/1\[#xp9W"@ߟo2 .s8桼>v#sϊ,Ȫ.4:t]zWQhwn7/RwG͟WD_&(vd'sFݺ~|re׹Ub[Z;pb[GжݤňkVXYPEJE/ ςGA>NXyR$lY.5q $ BQWn?dMAQ[~;PS[]ϺϺp,l?':J\}FI]!|&{<ë K>irC慅8f!b[=W5=~k _?~\٫n:-|IiMΑQGZ ×mDu H%ZMfvA;2B7UP0=_vk%ps5lZчF+TOTZkF U}\]lFՇ!"w)rU'l7Z O._2 RS~ Шio{G颌nr|ia+=doԪTt:t5XIvցF~ZIDAT-J7w=pBg6݉ ;ac._,`kx>AىqxE)yymnЦن Q랿{')FJU3sH<6Cu s7n{bH-(@ '7Qv$Gi#EWaQš/5>5CQGWr]\5/^U@1 R6G.=na ԓY4GEgO$O:+tT|tsz,ɲuV];HP>g_F dґ~zۏٚVBrܵhiTk[.BLѵ 9/T]_>%A|Q%}<9jUxJbmm;GG)oؗuԖL*gY\w?}k'`pCCq$E65b^?Ę <05gYO7;ƿR:*)5Nu +lw4v`jDwmFo[轹V-anC @z5cg]X Nnh⏮R+Flr|JLiy5\ߴS,ѯéjB!&8B!08"B! !B#B!B!08"B! !BapD!BB!GB!!BapD!BB!GB!08"B! !Bw?ڍ8fIENDB`ntfy-2.11.0/docs/static/img/screenshot-phone-add.jpg000066400000000000000000007063751462047176100223140ustar00rootroot00000000000000JFIF(ICC_PROFILEmntrRGB XYZ acsp- desctrXYZdgXYZxbXYZrTRC(gTRC(bTRC(wtptcprtyG4'Z0:{9\6)O×s^%1cKYZR]>R^,CdYݲdgZ[+=nԨW FQZ[:znq"Fk*r9Riٍ-KvvoAm.-e]/37GSs=N-*#YKƠWb)\vn_ۚ͢fw_CK4tۈqLڌxgUm::cl)YMg鵣nMgikM%[iΰeݶ!㶸Aj&_r,IJ)(7aNi!cD7ahq]|=vc'hbc:m2uKIytZS鮢i<W&C[sJs0ݣ'(op>b6m>ݾMDMndx=yYeeﶳC=Hʼn5td淋WyvYT>m64Xɬ]-5/Lޑ,kjN;D+;E6㯛ŴG5Wo#W:&\m԰8K_Z.eF "1YgΟ;*ͻHqWtw#)r쌲go2ip!Z=uÜײ~|.k,磚3OqQUf44I#^*;ax.YaCSҞ\˕5=#O,79"luF(浭Y涴ۛn|xh.w,Xt?Q*uf X]"[lXkXc4[]萧ֆf59i~dշ`vڏZ]eLoWUWq7V5Qe)JܱFijpf>KW+8m\uӾLF3>:״#llCjWַ˘1܆-p,5rkC.E<Ň*kkckJͲL7knU6εS2qq}=/2P\(`ϔT8 nue{xkM3̰|q% K}M=[DʻXRBIZ_ %fZ͠%yۯdv 3 5خ!$^9)eAϻ7ox[samiחh;_俉p>CƳqa6Rm3{x瘬Z#xO@XI Y!D| Ҵ6g.5WDͰ-2~k,4IJڈ rz.aKYn4 VW-r_9̒Lff&"#ym6é`j:`[&mE|"=#cxa?؇xa?؏RW{[S9vO<ӝ9^s\5☦;CvwwvO&<1;"LTDPS) kN7|SpkLVc53+,DDDj&ffzDG]?(=b1FFddddfFF\ FG##{_qO%2Q= n;ܞ37u".'A(2$c-X"ˊ!jGq]hf߻kE{7!i$EyͺDܾ;v~vziKm N;S&8zSqa*Ί Lij(k!VK>Ke-O4t5>7ϼ2 JJ*ZN ʺQ䉓&b$86HyZBj֋w[Ӌٚ۟jD]n)$ǚYQ~ڡ4nu% ܓ2`Z\W21;};~bNūm],f$vL O<׼ZǖEb|}jviZZ_y.}ޛfq:r\ic\+Kyk,F[j~3Lc}jni;:v'QlShVegQQAj5\wu[2uQ%H̨+7Y@3 z3FYqjeͬ6#2y%8GQ/qK L^ǥU:#Q9«Wc,ȬwM A #6^VX TgtV}b}Qm_9KhLgۙ-vvRt! ۱oKmc7yʳͨ*ݩaf*\sgؖLs8¶ً nD/^AmiY5b eY$H2* FZ9qfʇ*1kt#j1;}nm 1ju=×Y86*mrL_6nNqR>p ^aOsMXq]6Ӽv-skoUլ@ oH}!%"FI#2^֒f;!e람EtܐI0дHRHu$'8h.; mCn$uSJ#"[k"Z_d)&FDc$Y]iSպioylcݮDπ&4Q/\i eUjڵi>;{aOj^j얼W&<|ǎ'{_^:DF3=<GяԽJg2.i-~$޵g`54ovs"Nō>RlAxvj PC:#v`FӍQ(z{vL ٱnR/6_%tYEHu HJ~E$}JdddddtY1F^!=khγtNϤk 2S{~\)JcV'jaɖokWՍh>z{ֵmsqkr, jJW2n,XqХ*yPR\xBÉa_otf&B0ɟ.$i1kSo0+CڔZVLJvki -XwAuRu|:7bOM<\Gz5I3A246lnW_G:t]}JT.!/Hw-f{h<ڮΦ)0,l "6Oǣѹ4IUw"<9_%{tu llp^kj3Vfbݮ,-f|v6ݿVSQ½l#H7 INs%VEsW߰5EuuT)ωLHMu`=vxf8=Naaz?wsy@mH?:1“bԲ%0׉nCRb.i1+0 7gRB)uD\F+&:Zb;yg[ }tٲNGɚQ-i^h)&v}ntewqn{M뼺M<9Xb49j$#JL̏Qll놏f?JL.͵DevɶYؾoIuc7 ~:MEXQ&ζՀG5[N/X1O16U^%&eKMl%+)HRɮnlcT/x[n]Of::;+dF[N=.3%|yLV-o4h뷍I]DwSJ_8ovYKs-Tds_Ԝ "`όH Uʒ[--N%+4}GYŦf=h(rYہH8d8J\ZPWƦnH]mT v" E!HUU3huz m.Sū|1_%izci,Eii;m?5a}FIǮ]jEw7kIB:*Mtr"ȞyuN7L ^KǷEwF| nTc=sLB=ķ3s Xf7R7=|f`œ*d˒IWzbdnzͫ>@}m%%5kt _%4Șe&yq]% lq X hwIQTj۞WYrU$}QΓhYA\v^E6+ wJ̎Sq*s"? _b3Rrj_n)7=\N/i0eh3|Xil0fR#&v/kLDC{bbN;@wQ+jV+W*nT $w0dfHjk$\ō8ϲ#]Q5il(˖H{vbm1;:=:t!7јi.1yI5 kXPn!VaeR%Ds(_N>@]C=˨N4KcZ-v;Rcsk)bWLMV3P[Iygnnodmǯ_?&Fˏ6r_=JӶ:O&ԬDmHۚ6 TT[dՔ457wv0)!I:m=2}3(&TZau ] ]݌*ZZRl OLc>cą #.ɕ%֘aq?h9ؾvm>wiIE}Ɨ噅u2vzJFgL{DqH]fzVn]aTVe9Fٓ+vk*lWBTݓ%JS-!R$%&3{v|w~^m6FՉֵҍ-εR]!~nU:a؍r,&j_DX-谟 ۇ[3HϼUjֱ6+ZLͭ3DDu#˸6ﲭ.Q;m ~&U? r =YlT˘|VYghmm)}by&6cO7˰̆ʱ&ɛ,OyO=RpB)Dq$}S66 O` MamQiX2%m_ǝK/zI;&D-d?翚`ZGzkkGz# mj_]3S`u1X"DV* Aßcքmӥcx~>. /mͫ96`×j')iZ#h蝺vovxmTu'g=6LwTĨyfW2 ), 4JCJCGdIn8ԗ9E JSϮ/]-idސlt2[XvVfO(־%&ӽGǚf4i_axQcitl ]. K9]v9Z(1ˬmVۼ :㚉j*qdz>$ÅV͎<ńhZ*="X=xw)8V|ٸv]pN׳: +{cjru絹ciLrFKWw i^[ZU^'Sʺzάt('P*%WMu6vX"N$Am#P_]}R"YL5mwMZ^Ϥ51iڜ6):LUvɞ֎yIm涬cm/z$͸쇱(Vʧ9~hXA&ΦJ0,wFrd+8/uy[ՖfiurL*;o;wΝmV&i3(0$h++6^Y4G4 0lVrF)6s8bɘ\+͵ả0ҧ0qsss]״h78:]`gZӽ4A YI%EʥqQq8f6b7LHnӿ{whjܙkIbHLߴebL|ŭ5uS,:[YۻR[-8$ʹ87 mkSi3Y4 5no[_xd8r3<'!oWGu2=u4F(W%3kRk!%̌I ?pq]ki/dkU,1@a/]Wf?7l2N rxP+eMB'-zkGHy߿o^M?N݇ Ǫj)Q'$[.<)DrOZWy .y0Te$S8#Oi22pAK푕{qB[Trҟbu"xuɩIm@GmۃU!Hk_sηg'MKDz{3x>;YKJe2m^o&cߞusd&Yx;V3=5#Iz=K|]N3=-ӏm$D1ovܻ 4Ь7oq <ߪ\(Όk}wsvUG@MfUR(&wBJߵ}ęVzδa=zwM嚫A\@lO<'I3Rlꐧu;Am.û-Z fz-j60XlJ=A,GO-SZßwm3*rίEt5QzrV͎֭Xym6 xBuN7{9EiGNI(m(_CS/j?{R3Z-{`Q9ar2XFئk]nLle}wIY)2dZ*ƢO!# mjQS:cVU48uL:ٗX*5%KS8=+6ϣksb&=i֚8V-YHfqobӷ,Lwgf{2V?1;\ܭ' mD ^F{81Tų̽g;~k<ӛ.L*wui^qgG+Q^L<Uf#"mv-|#ַabV3{nn 9ASy<ə+_Xԭx%GEk@q#CA\OmY&(6j8{b[(xw=:#/ɶywI" gQC>iDW&fzo^]Z/`uitx+m=oZR/^YhjrwӹgzG^}q|a8+CR'IUATճ"{gbgQٓ-q WƉnDm؆5YE$.sJcJ-~ueJK01tݰuf)(iгړwZ}j>#uZ˱lu=:z+BDЬKBuQË_ Oif^k_f&]xI-5~}nVOYI'&kY./p(C̘JӎbǫI#:Oq8`xD0&Z[Oc7ZKGũ#z{9;M43{ݡnm%^YM9=l\q ptVʜma Lv+3o2mLmRڋʹƠ:)s5,-NdTayr^a46?i}]u7Œ֘"jfUX ,:<.=^VãIrs !0v;ܶ(=-Xq&d3>bM6Jc#cI.R\=Gcg˿.㓨 xbVٳץq羒7sR]ū&gniGiއ_Ҽy ?zBѧz~J7ox[sa{_ mow۴6g$i~=#}af?h]M֘CGv5!~\l-NyؾFδ֝ޔ]rY['8pk3|Z4##zO wNl#&YQ\1o%6rP8 i&D*2rbm[D3Y=7_QZT41շ^Dv-}  U{H?TH|T8׻9۳kcKN2,4iӋۛ궩I̷Nuco?e+Wu4ZFyhDntmN6U"r^|qX~~מѽwEgsN 86WW☜ _ND?Nl.x)J9r)-%OZE}J[%rfխɔPT5!)INnOK:c<7F"`9%6+w>ZKRejZV6)JyX6ՏS+G=S*W BZʞafjR &$Uk3m6^1*ix嵿v:yj1kZ+^Iұmp`9j6aڑڷ7]}m) "Mڮ$$VBX3kf'tI1\u}6;~1m$k })YjPL+ѷw#UB\w%(Y}r^kDf Ǣ4o8znOQMBFmKtVc`IpX̝uXMc:3$@(Qݗ"mb'oGOg82ص0W6Jb˟8JVro1)ͫXG7yn/vk&YCE X{Tb/]5&Lmǯˏһk<=|ﳧK\n4oB] fh5WBҫl7 S]Tn6!ȴB6U7g@{UUK&ySnU9}EĤc8ljrlɖ7Rw{aet90++pk+9UV%Ȳ[GPqkݘQ˼v52* ƭiL՟ Ӥom1;[V˪,t:j+|l=1jmj)z8X;E1ny Vgh3#6 b?XНE&)CuIp2 L0"bB,i9Mλ;)1-k^oy3X4 5н0M3j+ϵ>5t.*,n$-IvuErA8Gfޙ\UyjŹm[iM0DzS̵YZR0aN1vY `YԚ&FtszkZuͩ,\o6ZརboXVpo<ϺDZj$ytx,J<{& |OE?{ u6U17\鞠morN* fl[:6JkE qm]VZjٙWC#R;ZV4 b=1چXԝ5fbe52TCU^x3Qe2W,\eSή{:'l?N5PrZ6nj<1s3ȗA,RO|*^sWXKrqlƵUm]9'hf[׳|𓪘oK3;oT4mbE˕ ܷ1J'}59hryN1=Ӽg˾'Ojjgf,XpktDWzisӒkuVg斝ׇl/ܿއ%oT>P / [ ܟOoOQBÔcXV9 &) o2L 5{,SzuWd24de̲=2c5͔cmBF?8YY{xgY,lAٙldbjm;GH[m=C]ݾOƗXEw Y4UE Nb6LdKXWJf3^eS!2' +I̴kOL'j+mβV+3Wqj2k6uۋI6Ŵu}}5[ 1MAo4vvbmluO`:A%Lmm{o{mt6ihqithN[HA&vv78te{ gnJ`d^GtԄųeԩIFBw}aWϯ19.uOe^3Ն5afC]{r>BS캞(U5W O7&l]>NN: [NvqVt^w{) fUm{/ S=%v6u<|m|6yT^"4\rz|V]Z}i~6awlFR>k{SKiVpV<2"H4ce]dw-8ѷv_׬| 6f'hfqβc9y"cḿ'sgEv9XLzcޠDh5Z!UњW50&HjOXz;>ӾΘv}H!\cFbmkU/[N{L%fZn[ z~KXۖmvۤ{z?]~tګǢɧS6J/=mˏ,o\X>gBʶd[ @CRN-?d9L-$ŒÍC.-ZmjB.c[RQg>5~a6c %:',l. ;Vi;O>#i1ql9b#ԚhhZ69fMWiZeySt򙭣M:&Q3+2&͐B"[ˣ״70܌ O4N=UI䱣83γbFK.juK H%og&?DAg{,NonWG0A,MjNt͎edtwrR r1=Sl|Ǚ F]*K0N:B.Tnu{L#U;yddFF9a 1wtžu}[F3?Ol|v\'80LToLT"-׳iҶ]=5;:^+Yw\F51vSedFzOaOFģ:?>j?kt{#kC;U5>qX=9WN\rP*-!2Ť4ܪD@\JVU<|{26;nn<؂wϬc\O4 U_K2*M6jňq]D!}ߥr!ȕ" ly7Mb"wçǬ>|XuZMvMN||]6-CVu949d]]C!i SSV̻Qc`Z iR2pncJ=M!7kB~w:;э-4>8mʫ zèf]BsyLFaKiHvAN];[K1sVLLsvQ3zVf"o<5yr}no |X4ݏW#@eѩW𺔘^>) D*C;?xwwwYn5Mqq|+W2iC>hN$RE{8KiK7}ݨ9οzKBUq3P#1:IIy`޾{TwlAJ1I==X۶;սzOaqu;HT>MTDVn3XKo#}b"6ۧ)I'>%zi}=}^|ډ&8ךyKDGNdPlcc΁GRugfV HV+Ty oeR/BKb}kRsh_Ӻ v?b\EyJ_+='=2PLkSuS%DžH$DXJ%&v{j7f^kAsfZժqZL'ڴWS&PhzDm6fZv;UReso|CYyMfeua9FA66WWז\agc6F"dI!ŭjQ򤌐PP{oigՉlu>ga%˪bkctohrVv31[D!7xM?^-,8F=&Dy2ܫ2CcF90eōTQLg҆wOKE]GqÃ;J Σ;X>yn[N}wNxL_]{WcR8j.}QB,M\ I̯+>~=pP%LEa]#d-r:m6j)޶n؎:+[kuz9.'NAjWDj] YwK8%{oU晈}g({lpFLFS-g.]m4<)OsuL0]tF4;@55¦D?$j,ẃ ,^zif}azE%l"\kJlTe8 Y(6:N޺¾/m~{{ԍbY&?u][YmL|.GbyniQ;4/F"VGBlَ^dѧ;nu_ OjEjQo)K嗱!䐘W Ŵw_->tbf|zG^?cںa$2'Om[$i)w+&X:Momh{+;ujq,/,# Bfc;otW]16ԗkIC8HCJFD|+kRjZԵgzڳ5O&&&'%z#cNaz׻ t6CF>PoZ-[>NwVʃMxi65ƌm)놽Mr,ʱ;ˌc( c?e2Ksk->ξc,ʅ>eEo0n!*,0DGtD|:%6lrɒ62ZִͺOXzϯ۸̹^cP53f%lQr,J2%\*J rG&T\]kWs -I̖Kl3>N3+IXAE4ر[Ψ Qϝ\zlhۧriߛisͿ^7ټԳnsZϪ!O+%z416eGR,rkFI$<"";#ьre>\yK];ͺMr"ăOL4m(" ;Xe+a>D9ڌθuEd~A{eFS\YY.KYͺ2,kW76Oɱ&}g͐O88߷_k{b{M+35fDόunϻCwsWOVR{ '*77ҿ{~r;;:C]O*-gLv/|c,^Tߗ-FZR֛[V7ͧh33=fSU5j?hj6oc]5Iw=Z.\t19a8eњMf?VR79됋jɗS-wV#rq!\^JūxzLZ"մEh11)shOx#uV"V5.jF{IWkqĪ./ Wb7E㐸k%lc;#V|{Ź2˒tDŽz3͚7lɍ7.1m^76 ]k\ eiM)K0f#j-NG*;o;ji-&+l13#6,f/8kL^k՘=Z=mE4z~F+]L&ZwSdv8ffcH*񌦫暸xEjױZ|0>u_t{H\)!qfz-gzak}T܇* Z:mBgε -62k fyn%/{(Mhww߻ovqLÂ1cZ4MU%_Ddן1NI_|Zik~6wt֌>Ai.e,[[]^X;cW;'oW彄\wlVp:[ZKӜ)RݷV:,?"$yq`H~D$a 6)Ea}/ S N|k| 2d]5dZ+tє-1V*WfMviffȎMwaghv}n6xWr[31Z, ɥKaX=DS#Z bˢp3hj59tz:< ՙbѼo1;LNbv*uµ[~MȱXEtՈ4F]}ҧAZɀCMTL]me'͝v}Ggs7n Gb^AάSUF˰x g^>\P+TVRlimmuXz~IɎ/XRkzm5陉D7;&?lI݁ =]/Πl.MFUXS]Z ci-mFe[9U T@nny^5WkNf-6UfϓorNkyo;YRWSMΪֲ[,,>ܨ6Ԩsai1%uo2BT^L^^%k4:Xw)T1`1+ϳj.bø,1xok<πMbo;Ǘ)uug*q,]jcx[M׬Z[G42Kcv|guvkc-c/9V5$l}soTc*<̱Wq&28{-EY mn*,x0 AeQDxŏHaُ-! )I|W|qymn6Ox_9N ç-7&k^,<{W$G-#խkXmk[;+nҖ0Z`+&^SjfzwoeUk<+3\r:ISDug*;Cmud+1V^^_u[]ujG&?{0ԽJ؟d6=/qyv^De2ia=n=UI{acx<SjjxV=fwgn<>7]læǦ1b9fg%im>Q/l^w1 %nY[k*&vT;|3\Wcb;rG]7;+nҖ0KEyHGO~h=(p6=.E)f˓he1o="""ҵ}O~˫,3m:~)BKsrDUdtF^q ȍJ.&CwYmi"^).ZmOYa5M!HUme;3SiHZOkZχuzIuܘWŧlSi{I"8&"-bvNh괳yݜZf}4TAW8r<_a=|[ƧønujLR Ȅ Echgῄ{"SxΡ7wF'$F_;ϦT~ O8X߷_j}NZמWܴkY33պ\[W\a;Eo)46d|oz'Q?Kˬ$.-2!muyum-ޑ:tXM}s%/8Z`-yge}mszǥXuʑ♥\iҍJc_D*m%\°lh5u(5+3%<-LġN2ZhTtЄ# " F|l1.Kc1) LkD]Zo+vZ_!Nuo-잌ӓ-A*EtS!9*ao”*%^}m<^,9cQ8Y1bw=׈|k%/b;s}z :=aq`Em&Sp[&GPܽ+KK!Dʾm!k|>鞿6eӵ|sxfkf"rm331sǀFgf~Ap9q҅ȋ!9ַuE-)%xLGiӻӼ?]x#KLeKRFt7s%N3]#Y|)♈)ŗ5bDLv昉~8'ܗ9rrɨ\V߉IìI#2d$2I8k3YRdJ24/_.v~nɃ$iVGT&N|x̱o~%NF ӧ-G,Mb;8T+7Umd،4",ҡ/Aq&C%5|i.Je0E'> c,sc2WhjMx՝mheH.c%uO5weItғRBY$j>TfgDDu ʃ!ؓcH)r=S.G˩C$| !@bzLLwDŽ6M6ݚjErFVPSSzӺ\eZq2Hi}ږ(e˜3b#ͳ{ &6#chZ1Z&b7o11 9ΠGH$PqO@%umᣨۍ8̲NK111uUL/5-.;MoKūh^Los6g>cS@pwkvtGQ0+bޛ,$jA=)55څ ZaΡ]SA[IIq3hfD{4F|\u458f+i S4x3r1S'^]kMy;6պUzƘ Zy7Ku7C<<)zfdpjuA},歉N&?tG*9̒}q&؛,Na[.+yM,[̧?ǭfi';DJmiL1컅G*\R %ĮK7r6gϫ83+|C蒙Wۭh#ҕwm=z6{^3xFI0立gg$EjV9m65׍3 ͽָmWFe{iTNNJtXmy,"Plukqe1O1Ii5BeMaE`6ol-uVTyE4K)LELo*3e9ږYNjVb:up8+O ϭ<:Sd*cM&-\IfיSܭFX>lmE}.:5 m3[oiYOk.@0[F;*y6,iL̆uuQۈYUZѾ{~.fgkfa6;^qo+49mxxm?t_M0]:]+wԮᔮ_AI7бh>Q<>I|lQ/W|V߾#ƾɟkn~.K+ɗ|6}6"7OXB^fH)IO6Ò$3-.rwy×. N[:xχKo,һDZyfky嘭-= Gv\ ,C;"T \Hn83"bG0BJv-ŋ1&M뱪)%IKm)]%JuH_+F̖VSmeWo4Nl4Î'yEm3i+;DLkJ6JT]3f5*KZՋ[5DiMDiQƑK4fdGף; ;nq;Df'ZQ!Lm0+'͞#Wt/4Vٴ'%q,sֻDjū6m13=*vvͤZy8u_w|<N*䥞]&W/jtMf)Z-i>72-R$jRϹ!4R#6/J_:)1 {2$wRRFk ~$u].)8HZҤfyۯ^OOhjrH:_ki)"vkkY{>'m(/ޟ?mF7+TtmrBD\¢HMDݗ!TíZJ[f;uՙDt˼|:ˣtyufuMnoɎ\mjֵfv"ghDX UQ$k1+C'-j"C; u$dD$t]B5$g\tzNdڌz &rB9qz-.%PBMN+iow=hv}VxrZm<6޵fV-YsLE1HX w4^|Ȓ1EɧgR% hIH37^AWFi3e}|v.V$?SPkJKE6K2y!%k֓;τFSx&&ls}NZ"&kYm13VZ31OltC52J`<\wYw\hifmq~ˉY5Y5 (̱+|%ŮJ'H)ZRYK.:}RJJJЕo|Lu8˖sN:{Mk5LפiGz:K*QcHMM bbʴTu3)pl5ĦRu5lY =W^)j4Yxw m!\fT8elN;wFk2fgs_?P!H !n"bKiKq]"rDI&KG  v#5r_})4mhD4hCrXuP,ia-<õ(S5uD9PEfN/l'ly]Z^48g~YϽôCI0iq=~֊UlݕZK㙚[_ZI. \"?3Umپ2IZfWJ#O%ܒn 5kM`V5}鬑z7vg^Y˛!<Ď]KI%Z֥~CiIj^CE$IJ]::deHvlE.m-3Yi+Y5N!z-&&yMYjcyv=uMDŽ\& L_\>W /ITHx!j4ij$jfֱ7hʝXR^hpސ"H}N%U3CJa8RYeD~ͻ=~[[={{tii1<r[;O),$>䷞K $+{a5-ivYMc7I^I9Sl9E+HJ"6捭m 4@QR#aVeKm֜AmҕhQ) "RL1[mlS'eUyr&;6%\.oLhfZuuJ1i{>;յeji0[rE'%-}[LLf+ӭ#twLG:ǯcjO*Rsa8E%]2IyKt5]gO)oa/8Zj_Qw&=-NpI::ᑭiiBSvÑ͢պ(L:łZPpߙ A"btV RMHmou|y6kgGOEysp!nDpٺљ-)uyBƶM)Bqb!F((R!mK"KΔ! Q)mM/ѷe'_vk}Nxŷ~kM߯g_z51pDSjz\U0УRPa)|yM <9ǛO0:]Qۼ_juq r4YQdϝLuYq.rs7ow I˗u6ߦGI_P^V* snx+Es3uW[sq QA7cȣ[Hf+EDZbfk3|NSYǬŏ-k׳1gxo8&lՕ'mWA&LIr=wTYqoO9R61))uo_4f;jF"L6%m'Mpl;II"!wMsdRIL@hEϯ82KY).$.[tf,[AD [*_5eklxp3iv+[W}תjm5z%^ߺ9ͫ6NkYDs XDxhnE%%*Vˆ\xl̏!i"RRdS[Nۃ%67JI bPȔ$FRh#G;ڽ$PR[pųi)_OwMgÝŶ%'{Ǧ8/)e:l':s"2Jd'"e).&!7z?ZM_~/inv\ݦNW;貚qOGv8+$ͯqCO8iDk$)I"߬x*F -;Ib;ʖ >iZJa4(ȸtF)X63T\4EudO|F rT} pvmJq5&ZU"Jz4Jt#q>&dNy9pu7cmYl7y7'oו[3_ߔJQۑ.-c(aa"DIl@ܐc& WL0GC:㎾)|4%jvgd)̔Oc?v aⶵ}խ|LZ"DZ#"b'i7 yo+6?r1:/??Wm 0c7'lӺgߢmұSzy5ˇm=iQ&!ې QƙRhKzsp=~yΔcoJrɊ[m^Ġs~,㸲M(qƉ|TLm8IK7ؽ_/7sr{}?6~ְG7Ԭ6oj%2+${LiTy ZRRlLvu14L~tg8}Ty#⤟M.(Ii97)Լ6Ksj҅)1j>{)%mn^]-jx v ^>7#;mۙE'K2TlZ)\T_e=`IyRܧ \~NJngJkh1o0{(5q_Jؐ'REҕ:zlM\gqpw$\ReVХ Q^oj/OrxRUU]cͥlSuP! 0n,JJmg%?4wzFMve"xDp.Zutl8eILek3i-r"_pʚ41]`ͥEfCq lЦU*lҦ-F&FdddfFFFFGFF^2? x#i@BliT+MrPJ7T!f(J$JQR>DE33AB>v->?ӱo9v9v1 Z=O!se)> \?[? ֣5-FjQLe^5: Q^O+EAs8حHQTD2(o ?%s~dͿ77&~w~Mx1ٚ2dZORs"/|ۺ~SCiQ b~?F}\V0zWq2⇓OMIӪHu'SjRLo.ҘDfI˪"3$̤ۤ8d4oC"㚱py4i-~*RXn[ozCv\?mn]v)EPuL.%$GGjWt>W x%َEvdR4OK4+ CH7M&BeҤђeyFaKzjDu⸊ZJ_RefK$$dCHv9KZK^p&*֌ԣ?t̻wx|z#G>h}};]7m9CL8 R"0 lO!ShZPi'bZYCumEҳJ$[f ]I}Ko4Lv. m*NoNY6]⎧Hq N!)mNh37,>KZm=ĠԈՕ2Z5TET=ҖdI}BUu6~YcS~ǟE77ggMo*#gAwcO.q8'kmqBL7e>k 8(wn#;,EL(#y)B|ENJG._B߰|7>] vwZ>O;8E=WF7F4K)$#"dI4kIV5ǿvT_/~;ݷe~}k5)NȔu_dj2O2&HA%  =,SZv6LeVU{{$2סTsi- ꣂA%)1s,)\k Lad]S.&iAUi4CnYNcɢZRAT&͉rr#!vdsҨE%>Au9}mwv^xok:\Eq^h{J牤}uLjLigqjM8ݫtO)u‰K#ÀIë5Of$mt<ڔNqKPۋiNG6Uuqgq]K֭3e%1dInk.TyQn:|Y=b:Ϸ( BBF?>\iZU\^eu;)1.(J~7--b|cyG[k34N5?.lzf+"kjVbc%}ZVfKooAuJae}}g~49IE 'j&|ëC ϟ싁]jVj} o5D& Чw**tiGM&8N0$ >!Z= h,͛٬ֱk[pl"|-?&;krNB|bhܑ[wy9tqx2%!)mf6I\'IQ$F"do?vZlYm4ᆵAZf1ž6M-rŢxP<`$BuOӧxG{ ƠmqM1&B;bm/R)Ht+elӭ1\\"RTwX}DV"t|\'U_ɮeMc&ֵ֕Vy]m 4@ɰ d岀ynFÅ9OĒٚhԕغ}GJ+&;Z1/Kf;՘11).7GZkseA&B6˻,ȸo3Q'c ĒnElDnj^~cn޴&CO?f7͗!s[TGyS Ϯef&/%:Q%=ǯl1ڜnš5E(7c: RF[O]FV(aNchquS[55j2ݔcJaۚ#w]Mf;M;FҙCmϨW.QЋl{(oRjSvT%$Hq/z]Qect{ZL웄ӛ!P s<3PDjc]O=ս.&tұX 3ߖ^m+yi^ouM3:]+^9I9ױ:Q\~*|:kڕiԬ趏Dwú eI.P']2|%vk4Tf1+4v{42qf^)[58)ґLkɒڳrL$F6;lC~ wRN5䂕tQڔ(alN$NeT>Xݍ-9jɟ!(Q(љ`2#B^ĒRFD";mOЯB&A|7l{L:dR'iy]H^G9- =i8n"lj%r[HRrC$ZCHG{&`asqT[AʓPSÕ_[2I1Tﰦ6ҳXHqmv]~!6ikZ2V6I^^^ZMyci5iJ 9/-+}nJ⸩58(T+ ijU*TknݸVT6:C1zKljBr eQkDwEx m:})[\z}.E|1> 5v1k׾^WϛU:taϯRW+Fq/0gȔۈJ ##295٭ )%/0֑leک).gRX UŦfM&O*\8+R}cco l4Es`YL-YDLh&bhS6קMɳdbѦ>١Hj;R|+(z4b&[R$Q;׷''L~}S3Ѭ2Asu4NU,sz?gxx͙7av51") frE}=f?1[RA:d Txcfwn}: ie[v9"ȤFH)U %Ol*7)V2ȔFV()I%4IF5XdC?_S!)+RM惕c5-m]&MkezͦqbfWm+Cq+s)m [E%"SRJ<Ki)Y&eP 9uj޳1j-Ygxү]%c ΢#RkxY O+݃9-:\HPCvLBOX4*x Lm3/1QB[4.!GԠ!\qI=<&čc&_64Ewѵҭv,8fsjqZiDDͫzLmEo;okZz^Bx"ԸXYNհv(R-cN Tre+W=nY֘gzf7e+.)!_yzYFky3xKRF3y.s%itDNԸ*f>mvdG0ĢbSخ!`Jm鎓93j\\9l|rtۚkܳ5-h:˶V+(ZZ~-Œz4Lr6֤*3d)-jFk{a dGJW]z;k*r[Shg[qދnqo31\uv{N|?]:H5Z4贶[&&.2LL[מi&b]#mhf.75cPỸa /2bJ&;6Nbim9ZCQ7^6wl+gLybKVmj-[V&&'0&eU1R!DZy;)SC0nCpЖcHm<ᴄ-3XDwGuNm^ynk-cjkZVkXTҘTҫ䩅 [*~#m-m6jR&XkkVbմ;ū3퉍'[_߭on7k)+a 2RH?ԑ~f?SwHf3ǩS}>G 0oٌo}I7c7x;jyg}~ RF 1=M#mO?Cϯ$Hf3ǩ$`߳>qsO#I7c7x>c1zD|#ԑ~f?Sw!}?菀$`߳0oٌovd8ϹAc1zRF 1=Mڞ#4_>H?ԑ~f?SwHf3ǩS}>G 0oٌo}I7c7x;jyg}~ RF 1=M#mO?Cϯ$Hf3ǩ$`߳>qsO#I7c7x>c1zD|#ԑ~f?Sw!}?菀$`߳0oٌovd8ϹAc1zRF 1=Mڞ#4_>H?ԑ~f?SwHf3ǩS}>G 0oٌo}I7c7x;jyg}~ RF 1=M#mO?Cϯ$Hf3ǩ$`߳>qsO#I7c7x>c1zD|#ԑ~f?Sw!}?菀$`߳0oٌovd8ϹAc1zRF 1=Mڞ#4_>H?ԑ~f?SwHf3ǩS}>G 0oٌo}I7c7x;jyg}~ RF 1=M#mO?Cϯ$Hf3ǩ$`߳>qsO#I7c7x>c1zD|#ԑ~f?Sw!}?菀$`߳0oٌovd8ϹAc1zRF 1=Mڞ#4_>H?ԑ~f?SwHf3ǩS}>G 0oٌo}I7c7x;jyg}~ RF 1=M#mO?Cϯ$Hf3ǩ$`߳>qsO#I7c7x>c1zD|#ԑ~f?Sw!}?菀$`߳0oٌovd8ϹAc1zRF 1=Mڞ#4_>H?ԑ~f?SwHf3ǩS}>G 0oٌo}I7c7x;jyg}~ RF 1=M#mO?Cϯ$Hf3ǩ$`߳>qsO#I7c7x>c1zD|#ԑ~f?Sw!}?菀$`߳0oٌovd8ϹAc1zRF 1=Mڞ#4_>H?ԑ~f?SwHf3ǩS}>G 0oٌo}I7c7x;jyg}~ RF 1=M#mO?Cϯ$Hf3ǩ$`߳>qsO#I7c7x>c1zD|#ԑ~f?Sw!}?菀$`߳0oٌovd8ϹAc1zRF 1=Mڞ#4_>H?ԑ~f?SwHf3ǩS}>G 0oٌo}I7c7x;jyg}~ RF 1=M#mO?Cϯ$Hf3ǩ$`߳>qsO#I7c7x>c1zD|#ԑ~f?Sw!}?菀$`߳0oٌovd8ϹAc1z?ܸO˩>qsO#0c%ڞ#4_rz àOdj>A?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXtA?zX A?zXt UխF/_Ų<3"k%^̫Z7+4*82'"shRVd!hRJ5S|"Pp[>w%\Yr\LgxD'<30 V4ť?kY0ILiQdF}7m~՝Ry\s#'os&!ToM&LohO<պOW߬iZ1~dGEYvpWQyIԫ&%xsCq2-0xX0?Y߈D2-0xX0ȴbzy:NI].N[?C7M69wmDՒ4JI%x/=&5fَJr"1|;mw/Oss'noj:VM3J7tM-k F~1QQXmtqN8%Il]$TFA]Z;ꦨjv?W(5y v,ɺz r!˴"7 XuMSTPc)V&/EMrC(+!Sv[J+؏ɔd)uǜ58(dN>#[پ =ªf.+&""ReGyJ} WM&JzdDe;?NAG lTZsebRd!r&c۴-XDrLtm$ ne Bep7k#sھ./l*2&fNb<34ff\DI̲i(sYL5e$(72dԦZX}<˕RI R<B5Oyus(kֻ%i#Y[2CGq+iFJzbcˁr&DrFNgpGQI>&E/(#%)&JJ*####.$de22𑗀C.;h[s;)a7Y2 RD;ʐ&ND|Zy0':U-kw9^b[rYn¶ure99OdXۦS~a]%B 9, 7e֤ e)kQ%)I4&fdD:,Sk^sT;,^̃ j|~%&i$#֪fr{L[ qدMe*K&O:̀$ǔV3hN0l\8;jRx\xkNgݞ:W\I2r*;Sq޾C=l[Lŗ$瞒=-E2QDk#S%x O'<|.͋[]ۋYfJy\Ƌ!Ue{I"cfpOe!+%Eq% Mɩacj4+"ld}i(ZrMQV$:ͭ6%kmt=Pfe"MNW6˥(}0'K6iLԫ[R̉N&,NWR&PG*I6BxOCG#>?S^xDknrڙ48;",UPi$bҧJaܾ4EIKX&THVl=qn$3*$S"Vss415Lu\lHL\2ӒJo"zS$p}XJȊЗLWV§gκjEYv{Yc*Sqo:IVi%Lmhr*#5jK+ѫ`xZvR%KZ$JRJ3"""𙙑xLt_Ub}2kmǴwn%mVt e,a g&B+1] ̇1ӽE[_9K}ĔuƗ_g~cwyl֮dhpJ[aTihEĖGuڔ>naִ6-jJ5)kQ%)IRfD"𙙑xLQ.,q$ǔ*JU)(3#r>)ځYj<^3Us2Q4 W6 "ՙ hqSDZnӺI7YR;**~z-{vIzm XWWٸ`M >e:x[M%"]NM]6UBbƙz[2JD[HR+q-j2@5sQcb^Zԗ[L.[e.$ FOȼHc;1hjVy)Zℨd|UHZ0QMF-"nTef,FJK$RF6\S轚Ǡ3 /пS#_E=H~ZͰ"Z? etSp3P5De(h-kb 56~N_LMm&O5tCiǷ/M)\JE|x$em#WF| {#`G,j,as]v6V%NbӭcUFmS D3u6&*㨣;uSFfЯ{,Zݮ[h8ښqVXVDmJmdJADFF:{'CmVU07s:ZdCa/ZXQ=a-DmE&a>QeHlҴ-HVvNڭalK؆c[ShϒWב!<QDsMF쌥 HhCi]>d=7SQ!ILڈ3 5>%$|I#>M(I0ܯFwwK޶%4[]_ȅDM)JT43_WiTlA, ܱ*qajjKNty Ɯ T#SC.'h6סJ/1_ӺUU Wq#8_%EkwU o-%nKGphqAi͎jyQJ34nBdÓs[)N'eiyV;KMusfp`Վ^WYČ2+%m&'ڤ1Ȍ뫎g!)D|ޯ|Қ- DhwYW+jg2JAJI^rKg:LHВ Xnif(X~]R٬kif(X~]R٬v]$cI?B2ph~лKӿF뷨W }DTLKG1t;k8r++PRr%{bDej4$Ih D;%?հmZoKT$Uܓ`bU)Y{5н7AͿM/%%ەcd\bqJbFi ==34p͌USR۬K<XU|dL`= շ*?7e~i=nئgFDì.]"?>IjdS3<;xw n?3KОy S%㙥\SƟϹuo8Rr6ihc5XX*4ɬbcD _Yc9n:[3v^|-sbOrW,$:Ir&KC*J4ٕ1n;rL؆N̯ыq7fB~?=ՈL۲4x 0&=ճ֫u{ wfJlA/Z⤑,'ZeZqg/=',*إO6-)fR]W8OMhzT.%y^Q4P6KmWmCM2enpAO+`2 CUCJzVCf DƝqt&}AOr5wtй%$GR)H5n:FvwtWhף9p9L촖dYb Ob\$4wLim:lOp):ژ2$HeƭVZDkcy6$͆-ibZQE|v+lؕ\yTjT[v4 KJ\lˏ0s-.ez[ZJ/,)-=|9l,qd?78Iz+ bKmICͣtnI})if53wN3OMK;Z ɋ&9(oyQIڐJ2\H\xp4wgw8Hc]g]`:$hAQd6J;5MdRQ&|xquEuN:lkn%ORyMnf9Q'>%smj~-c9fyLGUb6nr͵x?٬^cc KD.`f8DsSRJp)8jFvQN,[ʄ;і= LBJ_Ulr |Mq$x%"_E=H~Zͱ/f?D/zmPC- >f|3Xsn5M BvW"+%8Е)"L0fYǎlGhiiLdi%(m%(BII8^OyL̰,/-%DTJuU`~ )y]ʶn١&\Sd`5MooVK}K\~Oشܥ-RfCSVѦ RSPQaU1C*/pB(w?=>،xQpO =J)d4ا &[lOUɳl7 yYbjC?VRQ +Lryk%rq{Ɯn]8g\*Vβnzu'b⳥m,.n;~{КKFQ}*5e.Dus꡾ g&Mz^%*u>)m)%O')(처NS-)#l4](554vԤlŧxsj pXF5fCXY)w1wE)q8Q$HNdyЬ묣HJ%ɍEnD=y.:cǗ9#zlG+VqX-u3\>Qfk>&9`>!՝|w.w'bWpZƗ'&u['HRIj㐨ǫ PUVVGDJڊ1kk+\&;eC,4h/I fgbΰS4B‡cXrڙT!f<24B6Ԥ&d:{qZZ0-=:Y1v5R(p虄V51WEP!  Hi(حN Xe$6-GWAZ%:len}Ρu N<)J3>HbcT[RdsOE$GS3mΟ;j$)* hFeun \l!n1ʌGu,I2"F-7".pw2б˅-2&&nI$8-l8jiJA&č_ḮiYTdq"K6ʍXl&HC7"Gʀ(PaĮ,xP BXpi E+mc0!ZBm BH6FouZVn"IM_sO5aBXxSIғJȸr?n|sFU7eFdfsraFdDG.pcN4 ec`xf%asV^e%IYJܯpj3`8]C1ERU^CWHkJClMe3%'Ґ!M1O4{ctK'`?U\v䥲ֆTm%k$rǝpc0ʍq(nSjȇ>;nSNpspK t`@[f|LOTeˈfd\{ָ">$DES7y$?4؍'h-Ṛ-m; ۍ}ThZ,DiRTDi222#!8wT䵔2;̡0X4jL!DT:7e\!?M poOY .ȠƲ #L=5,i%N 3mA RTi2Q#-O8OſO>p ؊R?7#}p+O8OſO>p ؊R?7#}p+O8OſO>p ؊R?7#}p5l; U&@t7SԘ%504+[NV 2%%I? i_~߈hFeVB{ \][cqƘf,4; DL~M0%p6!Gn;kpI%:Ku|┳-L}5䨲n.8x2(DTt8-)IJyb;Qz~k68R#^2q82K-HL[ %)!8SgX rVirIeF܈rJ>ÄiW*ۈ4Q>VqZ84)!+1"ՈR!E)+\X)MbCu&8PpZehqƛ[)IZZJ[JZ~FڌjOبˉx Pike̝׮T#`>54¡lS2D-&>e{#Soɏl=kˑTW+-e)$RRz#&K""%'ģ(EqNƎϊadDDj[iRx B8?6#lMk&LX#RLnf*fWv[.>pF|81nAA exV?~Sjq gÁtZ\]ڇ:zp,XjO|+%B%<GfWUX-}qtYZ$*iiJ;5n8Qq`E:lbC˲eIZb; u\YPhJ(ȈƧ%6R*G1{-Dw8dj+K gah.K k8ʶGaOg&z\iדn 2)&PW)ّ\al)p} [PVsfN:_zL:Y !n . CiJREa3;M;M !-- iВ$ДIR"""!H=f_ JeX5OhAH6 K_I6!<>IH4ftq񧘸CL]u?qegw9Y6q4db";rB}+i u,{d0%}>Yi~E;Ua[mXiԅ!C/6UDwb28Ǔ/󺣪v.UG3)JjeKJdć }Ǝ*6ͦVeKJ}:d.<6KWPsMN%iSBɷ[9HQ,qVȒNpu6x6\|xYB<#%A5)UU}+ԲO|L:E곹cLg#Y[e?[Zɘ-SfiG>G"OY#`gQ2<;2:eL-LR}GOg i/a#WFp?k7`?tTMα/j3q 4 JbU|$!^Q|{8k RFOx%RuE!/q;|\/?B1ؚci'bhvd9l܁pֺ\aw$REq_-}G \W%I ^mمpzePkdCY-uͩ$<ԯ"Py.)sk_~b裠W'bY*PFu-OBy$)D_bIKD\I ]kḛ3e2:O9 J{&:bJҘI,[Ru>6Ȫ.]k^S32?u3-4:muD'[BSVޮ,6D;(Io2n!+iFf+BDF:S .Q(iZ['G4 `/,(r$vFvP52n +SyqF_jNH[ٜi0rt Ȓr54ͅΊUz-4S6Hu6lJ1-kApJ}2CΤjJ%-j%,%(JQ$Feǁx^Ƣj4b o=Edz o %R8*VŹ_gG>iZ=Xw`ZS Ūtjͅ! *eJJTM*Ip'_X(V~20±IUʔqDiދ\o7rQzd8g $놖Zw5SI0y픪jI.;ϼ܆Vj}&BuʒZm%YF^M^Ryx򚊖L%O1-DJ>sxm4Fn4C$4E6Q A$x8pzaUǣRVආmJ܎%ICε&+ɓД<\g<ռըUC{ 6CHfSL"K.|e0Rf+#雍a.FQ*fR?kHehY5wJHdEglދ)ew]̭Ѝ<ǐڍKzIiqq,)cuIqHS#N[ԇYyϥ?&$6ZW^(qBBIZginy۱7F` ڥnW^$/3"ݣSNp>GZ╲Hq3Ip0u&9v9? 覹%Ts;*TqS[`E8)nڏ.^d Fͱb7e%^mi:񶶗""\y-La O 5Kws^3 dΎ^[atQN(Epsx"1ROi\7qBڜuiy#L",F4㱍\%";iFu \M[V5Q/[aڥ0Hzc3I_n*LI54]ˤ {F5Fc߽v֜T"NΡ[j(/Ӣm 3hN"3P ^Ht8ilZR<{ CқI)]Ƙ!HSnRa\-^LTwN!7kKį o8di$-󨔞.b225cF!k;&LnYJl$5(5̧T}qؐv#yM5Z5Jm✬w#CAQ%(Hi]8B<7Z0uKW7yQ+qs<2r%'aK\WͶOUYiYne*ӈ]Cڪ^%QSc_2c|ԈDG2JIqFUs.nN7F4%=.DG=NC~#R#ʒssk4Mp\ٸHk9 5CrC4Km7f[PpW{ B1˶_YU)I\bP$2s! Q2? GTe1Jh/̦vlzXZe]nqڌëQs- 0nO8?wDi|ʦX[;iNe q mղfu+a&)|L3$ntQ BS1ݑ֒_uRRIfC2SF>%GW> n'[60\yzYo޺s!w'G)X.uR+?pˤRc!Jl*a)us6wO;!vm4*>qM} klԎXhߖ|jn:ȇٸReMmaE6jb%*ɵb"zJg. n v0Gn7Tu%SC } ECpe,)+j11cYcy93Փcjb-2XZcFmM[)<[]rhg-t~jkTg Vn{®Cߔ?KAbbt-`PP.kNqS˓Qe- %zgjIk. /2S!n)kQgSw**U1@ac%Klp"/e5)J>+qŚu-PdAk1hUb-nL[Ki,-)&K5%J4e>-⥴R\HHQq3".&e3"5nxFQy]gzԈw[.c)g[t9!JRr -vvt"Ab?^C}iNc[ζRctŴ62'tE[ֳ]xoH3/4-<.nU-*IvP׻)pYU|ɾږS,tR۬i}=Mv⵸rb%n̘a!]IsR C-sY_O\j5f/a)A16-v1b W>t;%M3))iƟBh.eX.UfKqCWvH#'R ~uζҽEXc8JR;NtF!uȋ<[5pA)FI>gͦp&{ƫ FYaޓ-F]q6d@_0y5g{m*}z{gtD6I;ƾ\k¢.۾c >qFcP,|!1Z2&R"w!ؚS6t.0l2ۼZx -'_?'8y.oL4dx|FWvSJyFymR$8H4]q5H!ķk!w}>l%2rrvT&۳aDN652i+%j%eH8vczm+O&v,\31waR'nɌFJ6{,En ̴6pQV랐w+uaܣ82tܙuԷ%4p4]\FQJ Wk5RKLd ڪ5pϠʌΜTg53ngaqZi5L"ZC.*RhțK=5J^ W^]W'2)@kySwyI!Q$RXfImNuUhIfɕWpm+1voo fLy$G}ғ"Q$%#2!Ǝ*V?cCsDW~*IrܖP&Bk%JвZHe-إ2|f"ma7tfAs"sbeũ_db:SL4j5LMaqo_-%&ceM#fji (JxnAty3D<)`Ƴ(7ɓUG m{Z.vj#N"fDa:?I!kVYiR$=ƖRPî"#j[irdFڜm y+Y${Ixg1{Kq!qrݮ<: I4 *0`x tnN4bu83ߥ&Ϻn(v=o[ut*:߸%Ӝ:Sw 3.mޅrmV+d\Jܔd2MiAjhAӭiͥ.,q9A}1Iʜ+s"#]n:c-/6΢.W48gJb KƷb<81=䩢T8B-1 :{2 ʗOr>it[͝<K]a2󭺥%+4n6p└JR)IR.&"""333E0kUvmGV̴O;qQUO[bk)+BTDGۺ]ZML<)6v|ʑ 潧ӶvlBˋJm[e6ԓ"My=/",e1wEjs'dfN!5%\{GsuSKmEzWszZTĩ]̉RI:WӾӟPO{ȴc_4E6/fsS7O)ރXew9S(#Oz2\2mrP)q۳ۧ5vB9ǣoAҷjrm㍡ 5 1_4Xl*tC;;g9][ 0!XwWIj*i/)LU/Ҏrʜ[z4(zc5ďɮvJShJIog6)mF՝͚M^˭#V7 hVOϸT'F!J0jib2mBxꉚ5Ɛ4{ah;WNzЂR$  Ndھ)rB6+jSy6IZҥej*iM AJOCO7yi^­baq3l+ěh UŅ%.ƪNArC\1--;'+!ΐnMȐLm^JpFq|IȮ _MōmUFdhXo=22:/@Co4RMLPPƢ|mb2;/?Bm-OI52fQx@s0#Pu ҼqܷP/xvTyYnT՛qYSueiJAe'q9v9cu9~%h9{RmjK M`mǒYqe>^b#I9 ܾd3 JLǗ[_ ӕ6%~lhm~vTf*:HA)soiJ֪eTfMru*RLm2,0f4˒0F%Jf XQ,ıpg̸S"q1eG[HaԕK[n IQ9^?g5>)Eiiv73ӏۋ 3zdI*6aiNʹOriiM7%njdO4Z2%9:V>>zFFF6#{WFnemTt"$Ȯ;C+/q22Č2`53wN3OM1qJl@pYFoP]YFoP}}_z"zE_j6vk轚Ǡ3 /пS@D_kG?Ll>lGiIkcP7NS8J\J+[C' L[גRlƍ↌2q)O(?}i;]gl*.^ą*&BVG 7O{O9W=yr>1= \buSb5I.(jT((%VLχdm߿đj_s*be/YDJ9R,X *.tƜɚTDt*p0vԴjiΠzu7 fs2:z#$\elRTJT`enO?<Էsq )a.܆ÐOg+/Hz-IY*[Q'+l^ލ}!$ ':5i%>k3|Tۮ.<3Beg3t5JT8]9KT+~M0#̐{6\BM&KXH^l+z*}Ȩq|%-cV}ڹlc*, i&JOV5_2=#?NcqJ-䱟WNՄHLJeDG -ӄm&|C"s()YCCaS~)Tg _]MՒ ,fYl%BBO\Mj؊#JcSBe`rZz]jb^R+]!qPhU^,v%Fkgd? Hq \$vtW᫂mn?7#A7j)xTDWeEKb\*,TlJ.$F 6 ,SpKmTFaC]c;l|mi+j9ܮ6SJeEZb#inK?bC`vYtKKf>MX 3 -cT2[UriMj"[ Ȓ䙨n1 W"u)CӉIpJ\9iIp. %>dEp!=?v~Gf?ЧL/7ZGH&t UJ-̶0YZԵ 1M6$CH͋\%.ro6U]X^#WSI INĒR]k+J|)~K.<niRݠ9,۽<5.#Q^p޻dPTrAvVOǣ呰{ jgR刪J H^]bv1)Q7c'1vOظq jD^EײG i\dW-R1$JNOR HiQ-k[itR&WSjkJ}fPӋ<鰫\ݜM!R2h'Z? et#*nT?QlPɤ܌l%}Njz9(DQ$λZ? et6AKTX55΢uڭUY6OTl8uQlV1K0vs9:_JMѴ?siWu%#+ ?!q!JU†on;ƥ^{qqE#JL;d~ !-'ܛDp `y"-rPJWjRQEO{gDq*LP{1٦gjnju-750?%DJy-pm/fns(i6c5]&d{rc̳Zm4JGuIw 3,%FyXKHQ-iS ˍǘ?]j 1 (2k&mGn)0cli Z$Fhu-<'i#<J1lR\;d7mσGZa1$4 aٲlNQIDDXuwk5|0m A/ae|:xRaLG.yݔ+q1 j )"L":2Me@E6m.Iĭ܍|5.( |^E~.F׶;ن[V?Kkk핝4)5613k$656 .(IqqQe' "ƫߒL-顽1ƞ}I$&uM0Auyam+VkƟ_?t'ڕl9WTƗS q12TܥiǛNrrW&^G:1FcV׋qRJelV؞Zp6Y-=/&B~L,Bs]2InqǞm6dpc?O_5;J c$ʖFD\On>)Jg d{TȌӐfd^2OW#ô]_YުSv~˿~;++:/_ٖbZ=c+ D. iؐiy-dVUQXiMdҨfTԶ$̔R0M&i4FQp!ݡWrftmL]gds!J9QZS\ͅ-e lf{c19}**#̀mq W_CR{[(}=زrjK.8^4\6y-:Tk<9Nv śɄv#*Df}5^}>^7ȴۆy 0fDKsmK9NVxt%'S[#ݎU˴SVd̝ /{ںnruQ(ۮG)Ҙ L@jf?ĜgҟcS7y$?4؀;tŠ Ro8Y̸;m-i^sq/t4?yi.o6"3#48B$f2^ƩN"]12W4FԉM4%DеpQxHEN3ZC4&]mSq$u$0kA%m&(TDۆ•dz9C2XQ,%֔iTJDi2.FF; kH& ܇cLMkmK-} qӊI- Jg̓#"0n'R,P{fTy2PӤ۩Yk4(TDfԻ _ 4ʈ'KuҌi2.#Kj뺺YLb|'Wshqe) +IiRUQxi_V6Ees1uʔR*C2R|RUJt_.kTIRm0|(y+5 ȼ$F^i)w!ҵra52O8 Aw{5Ag'_~֧3lGfٯz=p=" /޵?`;\{bM2EnAb%\o@fEuRvkT.+Oˏ֔*"LAbXi,D|vmmʣ| Vv!Z1ySFaW_|W]ศ}ZԿ-H(n4-m4ȗsDy.Omm<Lc &:JI6l4f O.u\l12r63t !6([ipWI qmgdr&9Y*Syɖ5JL׹F隓ࠇh]DyR3e .V-Ah2|yTY >ٲOpY6r' zi6NJ#. KMy;)zͥr߁gUi}t)0Ap̨㺕4y 6N%Hq Qk/6 *ȳ<Ȥ_e767aIN̖c2Za< 6D'KƌG83٣9]<ս1o q[yʏrL&Hxefvy|'V?O\MvA&ͨ cd=fcY6WV$Tĸ6PZOjK$#zDw5+xǨQ䘽=XC~l-k໋Ŀqd5vST+q)Gcr-nѨRqHHi崨-2jzȚmcnS)ZxSҘ'%F6iZ+N稖5fU=}]\œW q~;*Sc)DƷѶSϰiW;VT5mtZqE}Onܒ+:fsC$@ +)m>>u!|J(sM&⾮[H_e|}ד m,]p T16~^9-vmHje ;:ԫ&W$cաL6dZqk!5' ~7Γ#5WdlX%-sB&0ۍ\Lh龲nh->uT_P;rxdMmZV h sH(;EƶݤY=n4,iZ|,\&feq]6օe-*QpyAzh-m~U;~a!M}7cyM[7c!*TE)"Sٛ]ݎQ /cM*]楡q\x; I6n%Kr\m#`_ L &Uj.t)Q]nSu;yml~*Mg*2;%fW&<[t_V۪*9Kasf&cR)~,L"䘕* —2#|e|DŜl0>ŏ:Dsuz\ o'u)Z[HpfD $,$m˝ Wl ht[e?L?Pˀ֏L?X}UaSDl ht[e?L?Pk轚Ǡ3 /пS#/Tj>ZMuELƐ̒C5#+y> 2"q\SfdfdRm[zc%hRJUҮUehW"> BIQ(0K*p\[O1no*)Wn6# u`Sh@0"GFHPc$VP\x!YiKm(Ixq"2#2#>< q>>>1r%C4)V]djL2rmD #CdHO\b+qw_~$Iml(.I(I}ȬHf' DJ3W\nI})if53wN3OM fsW1)9[qHfZʉ IU16A8kCjOt`yF'MO]%fPNMG""GJxp54|AtySs*[Z^y&2D&*/2OdHvCHCM! mBB! "JP%)I$GԏxG%}R?fJ$LGgԏxG%}R?fJ$LGgԏxG%}R?fJ$Lh!{&U;Uĺ~<矞H>%ٓ+2"ylk &f+ ƌlGl0I$4,-hIPhJP""B=GWp6XeW]e;F5@LSysm2kkG$ѴSu 2Jv'Yϼ8jfI'*N- „QĒ[}53.5us3fdDfgf~"/)Mjfy> :\ Sn%|dRIdnlF&d9lƔ Jo:r[i!r89]JÂFl'N+$YXpRR&lx%+d)qPJҤ)Еj!Xnݩ b02^M9l`gEm tm'T#s nw/kBSI^fN:d=rI-$KmrpA v2 WE9=Ukj̪8]Uf{a" FgLh|^[ў5AWDv3ζ?sտ:_9Ԑֵ)EȒ%r JIBR _-zsLlei%&DӦM4o-fd~$#K1WRj !0+R!Bҟ"ZM;ˎL&"麍y/NkW!f\v=\4ɒeuDYJ~/ Khj#<w\D iRG,)i$JQp?\j]evσftoJn-˱LZ}1 5y2aq)\p<5g(ES48I"3V㲏U! .).?&cS)3hQt$Z5jĉ+q9J|dFB ҽCƴ]sL%̛2sᆲk፟F}?;LV/t~q8#UYT\ۚ3d1ղ9R#6Pb-$'ӰP(}y^u(&A%3$FAHHπ:UiΟȿa-jDiivsZFq#&j]n蚐NsSu7d6њ[p-YRO5)=hZPc4Fv K oe6LѼFC T5YaדNr:XvQEy6#Vq@u\w&ޠ=O=f9d;i2n=2Ya><:X7  >vzӝD0b9Ƴy-tȕipru ivdY]${h9]#lvxu;icm:c9k4˒Rʏ*.kTiq&A<ʒOG2˗K˶eBfUӭ:e%TFRS)FDnx t9mTXʇb3S ;q⫑r$-m>Ӧ [`ɒ7X#P\,c^Ek}dp뚽RMDm,HCi4zk6QT:UHOJWiJDsuyZ d(>*D1MQ-dc8yercYʷ#btK22Yi SI4/bڝ{G<2ܘS#Wȧv[}TؐvtH<]fH&PQ0+ժV3K~'&SQnn(-]1-ɅnʒNWNr=`PҎ*_6[hLz+L"KvݭHj+ܢL%zٷǖڎT|ք5:)29(&_2X7,[[@D \dR0hW>/dךIXV#J3"LuI.lPr]ϞhDJKn94&EwwYjjn&Z>jHn:TmRIs!lq&:{eSKROKkw䯕=I ȅ:+#o85wv2Ch&DWDB-H:[ M)*4L'ÉЮdY&cNQF]o-KCB&K~Li+hGI[:Ե_b)-Ε[p#"0S g5㡦 .%[!C3g9Ϥ kbbt8>kg@@Ȯ+W3b"ǘ%O2K+Q2p? Bi%m$6%BD)"JR"I̻iYu{z}S-mՍI..i;YIJຎ.YLYm$Fd| 32j]eז NYV]>1(<9˲u_/.DlHA$;KγMi^̩sJ$7Q FiJ5(䇍Rug٣[1S9w?]:a]Ćm<&mn: Oг;Xِ¿_ϖXn-}g{["{^suu<}>kY%yْw'pGtN7{gGz|;nN~)Ht ?zr?2JhǷYfՌ%:d[hd[5p#Qd*q!<4/ZtR_xB|N{S:tzeIM}NV!Q"|B('qy=HR7Yæu A&t\Q%陫ǕD^5($FfDzմ^hُmJvx!cBZ/֊J^GǏnG'7?>ES}.cx==*Jn?uw :GK/9kbo߂]4,K:ߏX)-Y̺EVdNHͭ!RVsH}*?ۺY?=sw Gsqgç,5GK 73lfB6z2460[ҕj!XKMTXe4qWr;Nё%f짐-+OHyjZ-4Ci[m=m_EAlWRLeݎ@qJ$!:rԔ,"qhM v " BM][$ɨnKxq-3ť[+[JHJJۢ7a*ɓUa -ٵ (bT8Bi[a ET/JzuM1W"MWIM6)"R=[m n el>imkpaOTd>mMQӫ5ڣN]Wx:'_}OOv:]_'P矽!7q>,Cb!Jk;&4id! \>1~qkk;ߺܽЎ^suu<}>\.tӺ;VϷֵ ǜpS5 +2:CkDKZЌ2v.XC6R+jBz8pdK&R\ sc51 [I͜(l{z@Xe w|z\B@r-I*OZHSlitAO(v_m~ p: &Ξhntx:XBtA,i'Ru42 3XCOؔY3ܱIÖSYٰ?|P8=eH]pI>-%Z}8)2uN,$$jޛh=`]@ec +PXGIG;^iM -jRX&iRVts:vUoP"źyP*D*km4 "33RW yϝ#K" yOȢ~m*1)6鶧,JTť$CzF-u'.r+<3Q;hJeQ$T\[5)57͸Mv~c6,G3!ekM\F%"22rKIxߎ¼9}-ﮫ㺟އxj[>u{z}UZm.N2K.(qPhqFFdO!d nShz&f[]6N%<5GZ L9(Wt]ΖYϑ*vk졬Z*DwM%E<hp3QD:MTȶzS mawD7 J8sA1.<.Ĩz)AU ȋ!&opQ)kRT[NuI*GPZ}Lqq"D- MiHRL$̔FFFdcΓ/e^;k6Ǜ>uÇK5-rS$tJMFk4KQ&=UdmEBdNˁG0[dxGPom2tO)4%̕>Iθtޟm=DdIqWIx̵N8ۇfxĞVnj2_FDM%yqIQuRQpBȉ\ iۭn s/mN-iPA2ҟe.,҅<(֒>a{yK `y,2v DN:tImJ&,Cꊙ&q[MkܣRnnr™\r+6t DGmu~WuGN3fXlV?Ф]gmsp頑ÉÏ'bx3Y^fE15_?Rg|?( ?2zE3x>B:d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ::d` z|^aOϏ:S^bNf\~~U%|KvKI=?>-~VG?cg?ω ?33?gĽόK|>AJLρ3/'|6Gg~wu[mEnYiWc]IL;dz5sTby+hօ{^歬nd2/[ְgd Mk}']S)uIymW}_?0]Q~/ݘ} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ}f~TD} zkGpkDIOٹ\ׯʈ/vsYVM BRUOָ2LL痔HhɴOj/c8>uUܶW/`UrM1**2jLX3a%cD~V`$" ]oǏ$M\;IGԃX(^.Oe}ERQ>$F~?t~\ W~ W?p^r⏁?X*,Eb~?pS>&g n/ {ygj?x~TZχYÇIcJmx<Š}Ю={n"Bj~'lvn@=4B{?Q2#aFsK?.<ϏɡGO|e WE??{.xHW#\E&^_e W#D~REl~aIg>g1IsS c>g."g" Tgu^3/p{.W9><~@Ic*xX}Z^ x1b>=mՋ?y<+ivg42/?v+iE tFs+>xH*~g?R_ 3z>SI_j?tZ/EBj~B~2|.>?d]?Ⱦ)|@$ӱ?U 1Hx)_;j,zMq͑z#l洢prܯ pn7U$K}`UFdэ2IHD\LMtoҝ_X݌ret c! ěoY\f &[/s/$Wz9T|^h/gB%|`߉>_#~^7Oų~$~Qr|E/UoQI>"߻|*~2+1Y^3(^R_ڟ_ Eh '}F-1w?b%tm~bGTǂeNzqoW_^XDoqi=A ]4$8"K)-kqfIIȍ5r~Y $*YYXfgKv7= ٺw _S3G.ƍu;Eu"iȱˎq /tUKZd v]hkާ$mUkV8N)/BRu,_U殲kn.FBdSY}fѐHiPJ.i=sv޷M3ty:]22+42U*I3W`Mhz÷WT;)i:ζRm٥CN#",Fʌ$7=[rHҢ33'E2O+=mkmwO_ߑ&RI" laDzOCmo~xlC@7<} SJW#Ms&/,,و2l%I-mu}mt4.D{ԕ$K-Zn[{ImQ~Ή'|Hycݮwl Gk5/Q1ޒͤTMS)/ bfa>̯d}=id _t)esinQȐ10˘y,dZuZٟzX*VTz9"O8kGo΄k*<;^766$,7&F,{toJ\Y8ZY0ϗ]si7)oj0|N_֡\֛h}SQ{翲g聴''[|&ϡå_Cj|jdZ{ȃS1 {.Zn"ȫ2#Ynto&>vxvEzQfWR[}=k鬾WpeYFKNrotE6Ӯoj5d `:yOꆠd1[E{CIR4yaolI5YrZi61mNeiX/txFvfc9|KjE@q;NS S-@vtn}j&M]Vm?鵺cdž[7$v7kȗcelrskǯ"Kȃ!Ծ"[&gRRɲRdcy,=2t#M3c#dL 2q5&C3lMÁ: @>pBmMoj#>W;>m]>յDZn l2|7ϴ7ac@nͪ n͵lڊi\gDͶqh;;cO%djUKjyO8֞oC\$_Dl-.3yb%ymu:oCzќMfO3 `eNۯgV1i浖DuE^-Tn}5"[NuJҐnegiufl;qI=L}e5x2{60SIGAs* ԨVC!WIcYJ}^&WK?*99yUǏ)wik6 @p:_Wv0N {x{'cc9I.CєMH'Y$%KQ9/dgoԝe{x8 gE}\,mwQ5XeؙP(Y;N>lYF{0Ez>L};;j6?syފecԹgZUW(jTMrvu2,{[4dnLn kNgftRUQc3krBΡ@Rm$X20V$}@$"KaqI#u6 WZ;eh mECk!Z :?v U0NF~X۸$9j5^CGVw0؃mH0~_eu o:5䒓Wd KiN9MqcfKj_Y̽ J[;P [l&3Ԝ"k1]VN3zMiNtν~ybr8[ A:nD 7^T'jjqV!kv{eNtzOFC! ONRʪT7 ׸ =$7Uڵa#oSrf4`YuZ 5Nٹ;G/=Uelfi>qlaט-fWe.>a%Ju H~9eSL, '#N^k;m*M6i4YdGL)RbFn$\fMAg*% Wj>ԟY\e;=q;wI5rM?2UN? Gq"*q#։&%Jv -=iNqD| Itc?r4B]D* nŬP}c ]AI53W_,TwٰgXS#:c<-m*0-!ê=[m:%U^d.Sp*0)IaN~~_hhkv~{VN̴hW{gqjv5%Xc:e}UI8;˓dY]#66v`z+J>xz=ql)P q}FэZfVbZUJMUr׆y!m*2y]sz=kƊep]0)CK㱥 B[WuMce=4晰:s,ˊiQ!-vAt[؅1V4Ԫ- VCy}4VdoܛX޴/_Bdvə->̞η{YlQewx-a'%qJer1ekHj^vje~螢iᚧ/T o*cUƪОQ::0O騖%I2Vv~n^x42j5 VUgI2V&$V*T&kqNH>u: rqGgiiݻ24zl+̗+6KTG3]EO()Q)DIMY(+,]Yy[c;`7 *~U>^M yU7q¹݅s`WmѠCC3SJЄp@CR}\.ѝ|u bNbjpW'9ڧ}J݌Od'lӦII[Me^1-%E}1܈cKͩM˭.6jR%IQUWӣB3Y2eIL+~ҡ{,Oxk”/?O@.'l߉>\/+7(z [}@?IN{+/Qs@W|d-/Gbj~B~2|jY{ ĿWFK_zOb1OcuX{%+JhZM+B%Dd&FJJ̌ˀ z f['Z' iļ/vN7KnyZݷoص".il %ɩ"VN]fkAb\>oDt$:ipޙ./ftv8aexݼuĶZv\. cSiT ^&;i0y;>~_eƾǴWvk*+۸7zQ^_sSj# T2dIWUiud_r22GďF^#/(F݋bM]U/#q`` N.)3{&q| ɥRMQ_X==U;o2_CgutQ>%v9=I\|G.fXMuMSfe2SxreD] <{vG72>)B<-ޞ4pz}$گ'F3=l1g6E>{۴w?De|զ&|Swҳ l'PP^ޖѢDZxt!;J951Lcƨ/,^9㵱)訩Dhu5pb0㶆cƌm4I)IlC@7<} x,͎`KcڋzIVQ#B{2r7̇$SM쭰j VmW̿`>2-v[m(쟹4&C-r'N=-zc.Zݕ&VEIR^y 1T SS^eFh Q%rmrgFdky4Xԅ$Ga2M츛6íܙn揪Tw <Ǟep.=Yq#-yv>!v6W;yo=VQ*\'`^햦O kO XmNȓx6$wzנYn#M#NY[ 3t3Rv-5̍eZQ^ vj#g w-om596Kv=5MZ).Wq_/qyҘ.m$qc>ϖNiI;?~Sy 7 =i^r8Q2:QE !]n=cE>e7 S֞Os<)v?72|c2vjE"]Urb:ԽJlVεoRf.d9sv]Qc܂s1?mk 7\"=[Gie隑U*c꼟PO5uhM&jT09r—A>NvR!,atuo1'Զ삾,t'.IG]h.m-]nBRMmhhw^N*.ZWd֞]us) =Q_ġY?E!MƢLw~DED^A?8 /h0iiMVf~}Cmz҄fإwM|+Pk/al;B-v\V3[*BmTZm_nOs$r|h1Ak2"Ko"dRt"7PݬX%Yi"mV*nB\Gq$I qy]eޟQ%G92#*8 8&#QplUZoHU:w r|9㱗_ǫUU5]/rȄE^y ^1y "9#}16&E9(|G0,? @>]Ci=k<}V˱mA `RuQI4|==PQ]eoʽl̮'N۳pwGͮ# z1_^yhK$CNg֔Rf*r˥! ?"B֣A}L}m;yS{okQjq6yqXP!r#ˌ(c^MG~GQR^|:{k.e7zQtV\ys{N5m;1uD4>ɲRnO?졲J M0G^B8r_}?[=fmfhޢH|ժ%-I.cNn{#% &"l9 %!D$ FA_O d edВҽU\[@{պ=c,$Gt=fȭ1{L\T-)qdkCn8B[mkRP?%z3-M=v[d];bL7ONj ȗ)yc*,vJ}1">i+qsjJL\n% KiZDzLf:=~-_-j"_C #=5}74H0<Np:Xt)n met&>՗:RR&"66RN>{=2Zvisv\g+t#Ȳmqj\U)$$~RJnZ.cʖp<}gnbZqlJUL4ӬU\j^ w=ld$ɩQ#ܔVd˴[ks*kv=+`N3:nDDW.(MQYQwOR B '?="M%FͻٯI[R^fv[l*!K:mmHnARt&K5",u2t&!ԖF"RLT~ɴpo-h/xefⴏ8+|e\GrܶѶ}_L7&ZZ5-KZ"DZ\tFMז 1T@۫{; [j:ߠ.O-1 2rhVXE\bR  4dR)/RAyW}dWN궝}b֝;&[睊VxWBa[pʓf4SiG&\μ9EgT/$Y"džO{vh=ni*'Pg.mQ:z3"> 0OǴ/1Ko&v;ۓZ0OǴ/1Ko&v;ۓ׽y֝D=W+zAkkq-%QZJdsXz` $e9ݱ)yx.i'E`E,wqTT4ub 2mN!_uu=eƲ{u[ƙ~ñ}MtKQ Cq%%,Җˤ}y ȜJSvͦ-`1Hʹ~ -"+xK]9eV{#dw $u&txR떕cjYEbR0g#9\^K~>O)XZe"m'3ܯG?Jf/AbLi>}:9T#5zoğO/?OBſ}?(G?!h׏2~4>A\t_}|E/VG?!?{!Ese .{eL]OZ/^Z;{jY{ ĿWFL;ްSؿLvXVlң{1ݮXGs0[oI_/}ݜ[oL_kx?LaNMCA1/w0S5A`ɾ͛&aˆƟjMwLt ѽ6!zo<#Ӝx"5Swu{)+ ͝އtN-ǟp>Zzzٷ~]kޱiYh0h2nq-F}Ng/Lj24e=7wZz۲p{oo6VYfSZ}$?-:Ѽ&/TҦ1K]ڝ33Z4#h)3K1؜bJrYɒ^;YsykCbS- Q;r|OsFDCOӴz@vL; M7,](wzXM5U|$T7?#Ie-#ײa mA(q||GMԼ=E@2+̬g㕓%aU%]&ÐyćoR)[/Rڞi~i+i;4R]=+_ac#9v/K: 5[BzZo+,1~MrmpEӍK)S }+EdTײYm)xEǒm!HZF7nz{p_t2 p9"Z:z 쉹z.rB(uTJC5,#f:Tfmݒzd|4!{}Xm6ϢQX:{d/i V˵*ڂuqHIEoN]ki`?A-z)چm'[eFmN+"\uع-~# <1Q}&>]K^͑R<{ov]DTl.2DwL[<.*c[ǥKhگm,Mr],ʷ2ںAv{S=.牙ÇzN]we&ݷo/M7'FuˇWTTY2qi^F\[VL7iUhS,Zq'߮~b:=bwot^]ebH5w9 ̟'8,ͦnsD7ڃaUNhڰ*<^"4G24խFNrm5v,sl8W"z{7 ᶥ7*4t)ŚHIfjQFffbT m;cLvXN 0Gq''i.oX[b$YI%%IQqJe.$eˉp2Gx@|);+{;WM&7qM=NM7]7ab님_Cc3^CZ*/ӼF5'Jh0)q9Mn32d&;${<6eds}Nk,3 =ՍO;;Xŕgl&rrYim0Q$:GaGϡԼv\`3-%*e>n{b>ne?D$0k𩈍-KR~wKD+?Z7\+#<|ӽ!%xյ;-S׍F^ă_>V2 1ƜuG=\J^Er#a72^̺]}0n\ y%uAruMj>B Ï6B'I_dˇhN57m& ќU>7u#CVH&\9_[_W R˳% m@mG6ĴsO[&*,o- ȭNuMFX6 Evlm{Dp!u&>J&͸el*z*TC{dW'\%mf~nv qyA"M}?5>ա-ʳz,TjH*flalߴWgoPVUiWzs?H7HvC#ILGzMb'#MNj%l6)- :r+ #1-TjF1w{gSXb)b.S*rVn`VH&Elxo}3?g%VmgUbs 939›[RHm%բ9UsN"e F$DMk֍@o0,8.k:O8 Rik Ը=iO()n]e̞=m7藻75Kr6˫S%U^dYl?mdV!b-uv~BIZJukv`X':E±u1$(݅g|Oۍ!g({t .sYXf3jlOms.u6 *%f+Y,&^=.ڲC-Ȯedx0OǴ/1Ko&v;ۓ v|cwe7_Lɱ:ߧJ{ya^uRf8th 6;TȍppwN~Ipm lc3K4ڟ^/߬"-Ouʝܝ-r+][Γ'[АA{P֭kݪgx.u}s txW ꬽ!L⚻OSW;3NmH&϶N֝55;X۞Dg2LO9ktik˱|ZU)S",ؗ`+x<ǕpGP{#> +TdYM_R&<(Oie|ԃ2#(HϲI26JTɵ}AaH,b @T>XO 5\ɺY~̨Zj]5cY.M-~1i>uy}:9T#5zoğO/?OBſ}?(G?!oƟG+ p/A|Bp,C)zeka!1Tu( >eB'6ڣ:쇘B%>R+1zb uu06ĢDH}K$(Ң.)3##WӣB3Y1&]trG*ψ7O!b߉>_#~^7Oi| !Y#(^dx +c"\=V_(OZ/^eLAƯeW K5|T`$ñP:==tm?aX.Og_Ng^ęv}=tsFk>",߉>_#~~$~Q|~Bxߍ>W +^dxz ?O@?`(QsAYl~B?{!hz>SkS20%1w^1/Qc@</?U`i>}:9T#5zeIL+~ҡ ~$~Q|~B-EA\PoƟG+z ?OB|E/VG?!?{!Ese .{eL]OZ/^Z;{jY{ ĿWFL;ްSؿLvXVn+xnrLW$2kW #ɣrَ|u+s# />vls_o?J 8۾6f7ej1Y;ܩ\WbŴ\v.BeԚMwF=ٹ}m |j(w#]<(5X]s%H:COFǎrKWiq!`8ΰ[5b\Zܳƞ36"+#~~Q_=Ej~B~2|.|d-/G`-W K5|Tc,b_&tm?aXx)_;i,z0&Y JyR$fdSQx>Lχ1t4uڮ:lXO+Fe͞cIW*Є̏H̏bg| X_ Uaz3.8Ni|I#ZХ""~""vJ`dQ*}(f[Qk,u&[if23I$&iILq">Hv[A&Wq>*&Q!x+ [:-حP*C̳acS(f;T}괿J5Pibؽ{/ڥb&^z#N$Ϧp#1]%Qw̲?#!e6}7&%8Pw-gKri k\|4ta]|ʭg2JKͮMS^1- ˢ $fq0Tn=) kNÙ$i%GlveÙECiu1iKiihq[Zq%hQDk0m: h_%XJ|f-(neJ}6܅@Tݍy! ty:\_<.?MLWm"|[J2? =UT *},Ged|?WEI*ki"tX18PQIɗ"mM;hVRyiQ85$2%յuZD]--Lj)&-TY<%%R CBҤ W ,%)+Gj#0bȞDIuD‰ܮɡyq/L㥉F5d7R4)b"xF8뤷]qJuũ)f{GuMuڅ; 63T W%5)8ҘrD]'SSe䣋n?VIqZYǎ9wZƇ"sR]p1SLFJ nO/14m//>,QeWG7q­xkRڢcPZbWOfWz~Zo $vECN1S{GSsV̷kG ca>N-F-II([7Zf;Zq&-,%g"\ښ\e>lS8^(۬Iaz6cC֝jvF=Co}rԢ4߳E=du=f[iĕ.+h}3 ;^m/-=њlV^}e:ZǸKy5\Q'W"][>v!AeCko0q4𫎂5s1Q"I nS}% 2Y(<"w[RWPdk}]2/[mϨBuU1ll,kL& YsfqD1Q3z ׋o-y݅eAjd)S.}lYa }paD5Q4ҝ9"ScSmikl,κ$ڕ)!^qZwb3.<=;ñ!ވl\fm{(7] Lhe޴-IlaN=&ScGuC@4^:ļ<IP ̫)$ 1M(n*&{[u e]Pi=LNٿUjj{Cnƥżyʈӭr3) R&׮z-|Uf_YL2>ˊ*]WWe)JڋbSI-hm{}[2 ȬDJPcZuIC1 V֤֔<fym{!oF@ro +ӋA"Ǭ-ecj&mz)>uuهc%qWb|KhWS:osZ>3S6tϙFoJu~_g3>&a{~mi.; - [QΰzɈ*s--uRԶa$/uֺ/i恿nڗ O%x- PR;.JF2"Q1_ʢF}i& :ݪ7Y,L9m-E ̧UJtжfK(LK[zJ)ɏe[]cN J:KṚU= *2+*y-mifSX[v;ζnC}?Ի\ o)adS Q7)ڒ&/G9T(N}Il@mZgE$՝54Qj"'fǥ,AOZxp$xFvk)XYm_&, ʊl>墱nvvVN͈JKɛ0R;ʴRXMFֲueY%0rcqdSZlC.6QKuSV÷ƮtMc>ٚiԕ$ "Q^ε鶈У!\=,i+[5[mٷ7$ت%K6!8IҳѽiΎ`65I&k_J""6RV>8 Ӌ Kh1MCMMvhYeX]$Lu@AYVPV`01\_8VE-o>˩}GC͡DKO12DfD~銂λσ`x8>jadȞ3Iܹ#BOsGzDVQ=)RT|%Ds+߃!.7﷪\:~BdYODb5Vsj6J+ >oED7P} = 6?`~sƅeյF(R,.-JԮT#Ah֓rbRJRz߳E4zHީcuי]Cbt)ˍלC&i%2R8eQ۾hSTc5^ɳQ9wWjV9"΄fEm,%ԩ*JT%%I24&\II2FFFFFGB7VfsABI8.dq 9Ї Y%k&qhޝ=mҁܝi[Y`%<)T”R+8VJqJt1;"\#VS,kp9R`ZK6V9߶afh8\iOҤaL>i./ԶA**Qi)jJ.> .L34 0ۘ~鮳JViƝKoƕ9\I-3*$bCMڐ]a;ޔ8'@^<(u^}r6L[y\ggiz[ew6V]Ϻ*lκ KZ뻧&塔FM4A%&piss,g^3yVԩcb qZ[5˓#lRe"ҵyZ"(RHtd|K 7C j>mOh]|osOҳ?5T趃Qkew{gk ]ҦW֩և.GZ$7l U=~!?W46{uf^_il%tQ'va rUN}6Lf$SMv*QneSͰͶMU\"Vmv!#Փ*pi q;Lẏ!Q%Ԙ:Ɏiu <Ҕ̼N!)+B&Fz˯|Ě#_ijؐKRq%ɵb%زwI8Ԅ$nj\ochse e,#۱DDDeJzCĚHn n; i(Hwp*TX1M%prDzf=Ye6q|V e qȉ6ƪƛBTX#tعi&֖lPKud!e+N2SwOb \7l$ω.B8.;)hpI>̻>`0̐s&Bҥ5 t=6{䅛0-6&2)hpp=rUi>iGm59̷b n%qRq3e}o<|v^K6!E'kdM G9$'2tO(\\"S mN~v7MuG^6a$88]bT z 5.Rj\y-!Jmh܎N[rk,5q8BvaRp;fR>jIqqK7 #WkVU+@\N]<j*!Ey9 uuI]M)tJ "63d%w& *Ϸ:Va-(;&Kq<#Qgh~ie.2jQgvv4X:yOOLخ#zRh:DD􊔖FMg& KF>nf}:9T#5zoğO/?OBſ}?(G?!oƟG+ p/A|Bң_{=_SO k~94/-> QܢF*﫬vOnf3уKѹ4Nӌ>o2ki]B\i֜Imdi[kAVI3Iv-=ޣm&eu3)JӻY0ZS"k[<˦A:܄|&xJZI-B.c$3 .K>aZRfb"4ȵ'_u G8QS4wםʕtzhBL ȓ![I i]bzM٭KOƫfA,FKS#ncQ!(W '!z xin婷\}33 2J5%tb %|X6B6ȻPp&E(^<AzL̈3"/{-51 l2qkxl'!,̈́lIƌBR{ ovc1,}{6TQ&T6dTVsZbPD!򫂃*yh~N"TZf[*8T9ՙ,%pv% $8oG*{g;*DF_}ַ녓7zV 3[r,m&{Kr hu+ߖ$HT E/Z ,oң1v/~()g'Twx}L:m%J ܋akkqIЌ>-4-!jZ5k3WڑxG+v3T_0k#"uHj+Gtf4UIYi 2qM:(n\i7.?a%6y_HͷiDFٷ%]Cȳm?YaY; Lbl+I1U:x5Kk%I~xJnCSW6C=* ٶ/ju|w%K2^pae^tțiRP|oN;Պ'm=hPx0+E":gJu38nF%oLWGtSՑɀqd!i-d.Cjm)}UJ} MZq%--ƴgO;GY92Qurlg)&|yHm)f;fV4dV{ŕ6T bڥA _UA.ٮ㴽tbϐԶUO$erqq(Jj ?OEDi7轷= foF\:rmΔ#}FvֶÙ RL{z7}x N(/OpsP] ˚2ƌL|R٭굾VkcdL_OD֠^ƫnM:uzLvY}2i.w˧zۮvsɮ"ʼnڶ\q.'X8+y9f[0YudWZ4Zt){ǜ!cXqH2Ym[}n㰋ףU>^`Xoh.٣L pN&^o-2+;DTrdm-ǟe[[on%U^iUdu?&̒d =Ń]4̋\㏶]BɤKCg>Ebkӷ懨2Bc9UV}e9- ݲ,kv(fYʟeCQhc2*qj&X3Li5\H6q:hnB|Yl#cGR E~%9s޶A,h4V{>+Fk2&O~6n]+9yca֣ⴭ),_$Ze(VT,Gki! 2֔`Uƿoo_0XΣW~12mS=Ǯ4:Is[[4M[O$BJ2tƮ-,O)iwLH}gcQ*,8=qKvu#Q\y{ Fm@tTVVܿqI'#z6ꞓ:$zwV)}}6J\BazC/Y./x톣_Dj;Lcb_tYoe\zD:e-:ໜYg@/5VfXvQVǹڶyhJ`YoQ Z效dPDOvފHt.ne*K31tWDR$u+-bڕN%E=NapDVTq)󳞩8ӧr9"t;(ynOe=|"m&+%6I.:$HrfyviaŇS\aC'܀jQ.{Kl1Ivo'V#zK<6iFq RIQ̄NKp{skEU+nK9-XLuFiG"ϝ|J"- C'aRZPzףӾFKe-̯,A<ٯXe)Md$\bi֚[߮a %;vxJI2-HԨS12TKfLY-%ﴲ-ZmERTF^1AЖI5JZJ#ZP04JO$nTeFUk{Cc 1 rM-Hu"LxMՃUďK$m"6(:ӏ3}za_gY: 6UQPw⥨$/'C0v98>)reH E]@iPSY '19LbTfqXrbW &dDzZN+2˲LB]7*T.VDI!}[k} DIN&SzT 7QYl6jJ~Hi ]ޟ] 82=cFFef|}t cac[pYOSp+z?QDO z+uɶlR3"%,%*QFq]aC SeԹ%9deuT]K.& "Yźe\jG82nΛ՚Z=.Mn+"%T2 6cW*cum8C7V|vcRM圤ȵ&´ϛRxƺ4~|iOGl܇'xax[5I jv\kBP&vDΥKPQ$7dZZC}VVA+շww͜#Iacq..%hHok&忽b0*-ab͖Qrlq}ige@ RG;JyZOe)#2.-ǵ&Ku-w`س)|zٶ:N>y$iZRHk>mOh]|of [7Aw~*;4ϕf}sGs0K{9:%|V4 n䳮1Qk{SUb4nwetc9\ÑfI0٤u[JKn5ϝ%iZGiؕ-LPŜ2训 q԰ZLҜGiġF?rQF(vY;6]e׍˰{h \L˭@}i[Kj,1cȖx6_;Lu+W?_]JZѨ;Uf8HK]6s+f͋ji "v"f=23Kl+F-͵V5Ƥf9%V]k.~My <,Z,nO?(LSg9>I= DvX0< {z &mHm7}E"Ί[W"JY,6+9EpƇʨUճkWOLWGIc9"/I}.h1nlqvu7v+a $4 :K)A$^ǭ{)݆Q2KH'GȨ!]cU؅ v%l ~hb$gmW9o˜%=>LiիXaʇ$uw2:r+\K.<rczԃu.0it1{)hptMaxU~Kͩzr+d;gqXOK} ]\6PMV[!dOv?4/U4BSj-#!S߼rvȏ\唦SIY!fU9or)XL7Cy \ĩʻjf#n*4I&0_[Om?'9ޘoC; M,ir+gF ƶ}C&***,D"u$*RO\ji? bF46ț,"iL*T+Y5,)J,M\k55^}VXUmr:m[L~SUUU9H)3%ZosL8hji}ƱCej2;Y?w5œ;ߝ%}W>liG__Vd;kpTkM|\'QSBi.8oMf4ŶӮ"+-q)I^ת7v]iJt'|oE:EU+Wi!d̓K&kMW:ŵKq҉,4˨Y~НI. -GI"\uI Jmǖl܉6$dri%je٣rMMa5=9D Hm"#B9/PDh2YiZmꞖ^1h݃-dYUlXi+n-kf#C5l4y1^6D,y -GrM&>"$˶WӣB3Y0fI#,['x i|ߍ>W]>"+#~_~BEl~B c"\= E_ڟ_)w^1/QAƯv/?UaৱP:=@r7J܁~^붪Pѣ }Hp4:g%FD%Fi2#3#"Q̼?. nE G;N}/$\|4DNc<ۑo%j(m0_-Ug%:s6k]h]Lv:OTΜV×*KqMXq,`Uc#7-fZ&4k3[i &1'+%K' ϹahQ9Jo#:_{kWuZ]= lr4Nυ]8ZdS9]E&(!sבQcFpŁ:m_Y ]TP[ gːhqʕ+)\3ˀ (^=_sYaQ=-[lI1;pZKmdԤ-&JIpl Ԋ3j*fs6mVG)Q>;2bY4fEir[Bļs?Rn?_Mg 3P`1"+#~~Q_=Ej~B~2|.|d-/G`-W K5|Tc,b_&tm?aXx)_;i,z9d߫j!vѼw!{ 5!wul*gJ7:# ">?tsߕ۔Ӎ7~V۔Ӎ7~VonSN7;]Z"#onSN7;]ZO8ywhKO8ywh>?tsߕ.">?tsߕ۔Ӎ7~V۔Ӎ7~VonSN7;]Z"#onSN7;]ZO8ywhKO8ywh>?tsߕ.">?tsߕ۔Ӎ7~V۔Ӎ7~VonSN7;]Z"#onSN7;]ZO8ywhKO8ywh>?tsߕ.">?tsߕ۔Ӎ7~V۔Ӎ7~VonSN7;]Z"#onSN7;]ZO8ywhKO8ywh>?tsߕ.">?tsߕ۔Ӎ7~V۔Ӎ7~VonSN7;]Z"#onSN7;]ZO8ywhKO8ywh>?tsߕ.">?tsߕ۔Ӎ7~V۔Ӎ7~VonSN7;]Z"#onSN7;]ZO8ywhKO8ywh>?tsߕ.">?tsߕ۔Ӎ7~V۔Ӎ7~VonSN7;]Z"#onSN7;]ZO8ywhKO8ywh>?tsߕ.">?tsߕ۔Ӎ7~V۔Ӎ7~VonSN7;]Z"#onSN7;]ZO8ywhKO8ywh>?tsߕ.">?tsߕ۔Ӎ7~V۔Ӎ7~VonSN7;]Z"#onSN7;]ZO8ywhKO8ywh>?tsߕ.">?tsߕ۔Ӎ7~V۔Ӎ7~VonSN7;]Z"#onSN7;]ZO8ywhKO8ywh>?tsߕ.">?tsߕ۔Ӎ7~V۔Ӎ7~VonSN7;]Z"#onSN7;]ZO8ywhKO8ywh>?tsߕ.">?tsߕ۔Ӎ7~V۔Ӎ7~VonSN7;]Z"#onSN7;]ZO8ywhKO8ywh>?tsߕ.">?tsߕ۔Ӎ7~V۔Ӎ7~VonSN7;]Z"#onSN7;]ZO8ywhKO8ywhv[U]CծɎRr71N"~>β}U+ADdd.Og_Ng^ęv}=tsFk>",߉>_#~~$~Q|~Bxߍ>W +^dxz ?O@?`(QsAYl~B?{!hz>SkS20%1w^1/Qc@</?U`i>}:9T#5zeIL+~ҡ ~$~Q|~B-EA\PoƟG+z ?OB|E/VG?!?{!Ese .{eL]OZ/^Z;{jY{ ĿWFL;ްSؿLvXVn/x: G1(ם"xAr ':tۛE][qFeǂez\ȐTңBI.Dڎ j$Ci5()#QdËUe4:<eVZuKmƜA6) IT#I 4mƥn+Jk0{L^^rq+;1,cdvAgk7q7t=!dƛ54+s@qR{eŧf0i*\U-_5Z&,R:V3T6P ӜŝDP#r +}2^g&tdQ!Ȉ} 4TٸJ$3i>}:9T#5zeIL+~ҡ ~$~Q|~B-EA\PoƟG+z ?OB|E/VG?!?{!Ese .{eL]OZ/^Z;{jY{ ĿWFL;ްSؿLvXVcy7A"x=u)#| |gMruzMst> ' 1;Z5Uuu.?sBQÊg}'yF|Ai`CÄA[I6pIwI(ݮ9ʥʵ3W2wM7MM Jk!}2m,BꤱK7jmN7v׭`&7 3*&H 猹i2U.=. %H9@nu;bZzK}'>oZߙ2,$] KlLLkN);đ`M XImߞc-ĒM2˳IU^KO(2父V&4RMSb;K8ŬM;k,OXN)/.v4{謢BS[-5V#IDUxGZͱ; NI&lǧΫSET޶4g\nC,o7λs)yftS37Ų JMFg̚F[2Ug5{kAvakjX卛Qs渄KTHq"5QƎJ&Xi ;2M<,g*ҍ_Ě~UΙ猴ū:{ 52RKUTb־u}U%8Ȝ݆gHkVh-JuC<:3%bN3U97ў|Mږi5GYIM6#XrȵG$DD{'5-Oc9o:1 +o١3L@ju8!Cf- ~L d"Rۋ tǝ_2PZ{Vr9ԋJMVE[msUɩ[qJuWt6)f;\$`;Y{7=Cj-۱S^C5 G/p"iSf$0 F,Jq4v vS<8ZBXf+Іl-" -1ܖj5=fc=qCKj+_k/2㍓EWK-ɻP3\ F5tmaS\ɲ? Ķn%6E"s*[.P#)NǶ;CvY{zp4%ڥ׫9)eFD& DĿj [d¢h%quێ_,Gu[ki\-]s+k{qL95Yc6Ud}%LA1J5 e9j,V Î LX61cG6UiǪ#^ۮyMk{gq:u]܏".V8kve,Fo3T$ªIh nti<|SqyU☞?/m JdDc:XN ^{\(tfõ?$!5kd[m&&+EUqE9ƸCY xK {2mLjf3:Z5byeXh#D.uK#*@ưz71'K9bHqK`k5f%c޺ʧ77fL®ʆˆre_KҔDtФ;Go kkJSq9z\RUu2g@5LyM$bL伕ll "eˊĉ4ޟO}ҷ`z5NȌ\kA.fiYf3bٮG{YMQS-)f ,8"醣kQ&8WQ&h+˵RVflqZtDt4*w!Hv$: S& (_H-z!\k0j^e nsVBҧ2!WkWP Jj2+oI \F zw +#BP+m1'=k 5=2l[<}i.gF'%Yi.֚r\6dI.C1['z$NmȈ,]*.i$&j1lgآNHnѱ]Sn$!*mDcDgjm j%d"&:}U&d _RG.oqs3?j[GJߵ~[{%]*F]RLW*U|ȰM|HZa4;VfFIf(]erv;jJ}oL[-\RM Rҕ(c,8f3(c01 Q1*zK:۪>]IҜw<b=SwO%\gVkۍ A&;D&TÏv;Ip=l5VduSjDe0WO5ɮVD* -[iɱZW|d+eH"}؁SYiezFOŸl՘z1LTFVj:[IJ<8mr41Q0WQ/&Oq'^nyP FiwV$De)Da.zZmm:T*,^َ]&U._9@l퍼6G!jDɏŁ\# jO-4)EnJnQTN̸ $Ti=fax,M(]~VVٌ2֫6WqV.l()*{T;3p>έvȰkxJfkM%e tU|ȊJDr#80-+Po.랜3MSKmݛrʎpj-!,RTZT8!HTYOivbvhhƨsSq%:eYuÉj]}z*\5Ӫik}fT8h륡z XѵY[Cu?e q\(3nCg\w+o.4G[/1%Yfx-!Ƕ ˩XvcmVdNɈv`ͪ.hNiZ5.@8}&c1شޏ[1V)ŲE&TC;ݶ'k+\s8^Dj+˭KJ}ȏ?;0ce2K9`AZs nQ:#%R۟cӷ{ÓKd ;3&A~[gHfjP H__mݜw'XVdy~Zɏ̆# Iu=h_iXDDې%STeAڭk9Su1Viذj Dlq6*:VMޒvS1M ޞ E]XGON.C[-pqncM3`S):[qmKe|vM˭0K 0Я-&WV3`8SDx} Gel.0L~ܶ *;Jn#q3l(J48/jη͇pZ[u:KcWv)5jSŒbA&CR^$Gg.,@cYXťBy7eJ)996JBI`?R.+Ͷ9L>b[ZT CKNJp!;"+&+RHb:$b>Dxoh"n]Q*C0M1c"P(v$g27ɕpCY;jW:ɹSSHyX:w[5&Zk+26!KnT)? ;sRnUlqz)2Ew3E)J#gm`팫3e{T֪qR+]qFb$uiu YV䚒]KZ,^=2M%F[)65M%ڲ[nĝQ!g)wM "L_J>\sRcjN O)yINq#3Dz~hu }L5+g`XcödHm{ p*T [fٺdƬyfr- 6=o]y*1̊YnUUXd/ƓI^C3&LnwK{\w=U ܒ ˬ,rJc_q8˯Գr\Q$d{ZHεwb;w}=SxiX+?`xd7Z *˲3A!vu&6v]c eZ6djW[ Q=m:[J8PQcr%JaFM ih~3HEܛ 4k;RԻhXdFU5i$0IC\v.3ղfj0U‹][]BH̥ G;M !-$"=W;Ѽ-k8gRqDM}*V5 &f9\81[JbM2K@in-6=ukOiH!gY3hq"lʶ$rCpBbP\8k 73]=yj,2|S# viK<??6ui^bMy.EzcZr2myc$wME|zB@I 26EqV.a24Mk#\7ze/QpZ,H˲ZT&)=RVgx m֗D,_(J2:-4V6HescR]̚z[]:.Mg˙f.fpr }&45#o]5otAs%AJ[UG(VAW4NEtҤ8هg]>:uKSE6/%:|+&k* 텵"<(IJ58Hu8JIOʺMRYQQ qW@ԝa 8%-G3MGiKm4BI)") Bu}3`ij&SÓ;٭19BR,Tjյcdr`/~ jfnCg=iN܎ kE/P0:XÖ Ebf8N!YȨ) \bU1MDORart$ʮ:(Jw&DgBm}VKȵ7S2D)VvRIVFKn3 #Nʙ-i5\I·azEXsE7 uE7k{&QS+nlQ(u52'Go΍v#:͈mC`z~󬕂ʰ<2 kAUynFiQ2C4)(ðV.k͐n[*Ѷ S#RWRhСT= !|*S 5rH';ڏNUJnj,Lmz KϦ,oyFq`L¹˻kk髠TT‹[UW -umt L"48Q#25,X6 4HJJH^ƊvFٮIa74bCQ[$@pm(a4hi,!9#SwU'U% 7&_KT #NplD:w\ĉQ6KS_n%tk (l,ɖl1+O!LGYQj"%2˦%Z]EwT$"#/;Y=nv4Rwmh͏PZ; )ÓcJ~ k OA[r=dy ;;̃Km7*]C].RYR\W}RN%i3#!!ZϤnoO/hN~"bk$sΈ,ZUHKLOu Sje;d.OEd=uE_&]vˑU[QlUyU֥:5kyvh:rܷ}iE{'¨ѵ "v};[V(*iZiZݽSL7S[L4wF)0f2WcW13c%)*Ej]6C8ٶ;Krc2ĐJQ,"d20!Ã"dyIڣe9u8kUldztisSqQ/ĨIke IBQ,)zy]96zvHI?ery^/$>)aBodGpDS%юTH͜ ʍ^4{[ ׼5j<^ ? VE<9kg K%>P\nq~g:]V9U6rֲcs!.C]Ov$z!E T2FPaZTkwZou6,8ڃuO*\(5iLw`chBBGft8S$SƳ c1)fibdTI :ٴlk>!6£,sM Cmm)ݽf;i{}aȫ ^(Ikce1.-lb`)l tE4K;7nݦ|n`YKJZ)Td1;tv"ab:C7}N0nBs]>"̆Tq4d2mJa7lOf;SޞnɰMFL|K(ʨ RRR&צcK!Hk#Z@rDB<ލmK؎8Q1ȗ-YʤͮY_`;vR\#nQXa]ڑ]tW ΰ\/UdgZy@:.{{;Qip\q Т[ۜN?j|;o1ʼSc\I^숌rGB\ WAKzOuKNȈg&mYF!+;nEx n.3,k,=Ǻ|ڵJ2β~[:aڟa-鶓NK*n$y69VvT&OYmyMv,Е>ZZ\1 5 Bq-L%'ki7"4KCRLejC.6Y)v|%> iFwvMdTZϛ&ŦTў6iTDĮ!(q=!+-ֈ>G2ʳkJm?AȒEZj3'`<v}=tsFk>"$˶WӣB3Y0fI#,['x i|ߍ>W]>"+#~_~BEl~B c"\= E_ڟ_)w^1/QAƯv/?UaৱP:=Gr8;mN&fN]]~s=nMj-̹˴j;)}a.f]Ƌ$~=|W ve~jk yWvfb"vNXVU[AWT)VHD: JV!iJдV)*JIRLi ." z_QBDٸl ~ }LИkԍfS6q- N9,eoɿɦF7H8KqֽxYEsTyEDt,Z\Kд-26Ыn:ƹ0\vZM iFtU5W;t/~~0&7c6L"T*gTtm3uqNe%*J4*"4&\ *#FFFddebmubtU8qEb"ִ0iRR~Pao˳9 =&nZK9KiGŵRR#66b?;_&Ei5Ypm3ս-eۖ^>6q*chLLn溽J7' ƾ >-'65j LVF}%XOk#a4\r$c"O,)K|h8x*KjEe{њ(gzRVҞoYpk>uU Hљz3Ga-0}ܣ!HT̊D(RJufdҺՒTDjV6P6]7G#9NֽOE,g1<Db<܎N+b;LVQ*e!33>T>'cPq8e3M4㎸,ԡВ5-kQPJ2"#3"C{8ޓZp\J/!5ǥddb#p\8WaRl=&'o('!ԽH[ܮ`Z=eLmErtf:2dK[ő* s{%[k j{_݈cEz&c!t=,ʹ/B{믵îEyl8lN)DRH ",FoN0zsLڛ3|{bveбɫo_\cU4?ŧvo?tHz*:Xn5gc/'*IT&ul՝)-?ڜj2qlZbpe FQ d[tA-5,&f"Fha332CM% ).&f~3A&JvʹkMCսIv]gr:*©qKT]33gehM.wG7Ԯ9EUՅ[)}9&OuA]yٿI4 m둣fDx\fQZz/* ]t9Oɋ4w25u^e8"3Rd@yt+泶z)nnS& qdbV5̥! eڷݞb:3Y$[yqZ4TtuUpe!l9v;uUWA 'CaǎfFf󌶅fdGjWd/Cb?;_9j^5 VtN5{Fd\j3αhU2ޕj[Q 'lmklz-cDC2b~R@❲}p}wE9[yI8TY5!M;sвm1ڹf9%tddv7ccʼnf]F=[zeqJ܄8$5[:S}.i.%s7YZ,Z݃zsqDQ.W%%}".U,^z KF'w 7siEvoJCA2qtGm]t=w7[ƯsxO^VSXϬdYv|XŮliIɎn/*d7@Xؾù\EoYHhWJqc3%cuKzQ )H罕tϴSEW!K-{dVQ%UBx2%ƹ*\k_*,i4Rf&+i<\H8pD6o<<p|;#E/UG}vmPuӝUh}OxC %~}uSJ[e*%=WAR譛Y ϰ:N]FҭC5O艇%ȵ,U62ɚd+v 8u״JvyhƪӮ;\R^ bEXE2#~icZ=Z*WfE>l:+Eb .9UV]DD!\Ɖ<9IJlAʲx.P[j/^ri bJ-ӕM2R`S]5HD-PWYNnMGIFz\SԽ'; {lbM92crJkE|y~UfJ‡`ωlW9zԖdڹTD$VYf;Mam2ii6 (B^JHDtoL\ݶ9O8%\<,[k$TAE0Lcw\ȖQ"CfktzO3t:+<,=ӍuFiU~[d.LȌC`ٻSpq)V y5V+e G>,96iK`ʟmjlx||>1"".\E"LvK٫M]ˬ& 'q HsWldܼf棲E&쨲"rvT2C}u:1Ud\SwReacq53}5Vlp&Nfs.ոBuq8ۉ%hQTDiRT2RTFFFdddbmuckf*qmBF šJeYzYgsđcZog}asfCf7!ƌS#Ww %(\H1owZEA"oP4D0|旹oe?Ȥ={6S:rbDqIgT(]*0ߖb;358h[53q3>$b5ӌHe :Ci.6) IRL(¯ZsA?1 31YWetCh>\Oq0ڗMB՝8Ӎ^Ѫ ~ULyکTClZx*e/%쌓N܆sx,6˱tDz+|Ul)[DgJ~#ORm%qdcz͸>sGaқvw$X$TǫȢ8Wf6_jNn*B^4,SRKȧ֔)=fM Y1+1GnݽD6!HĦ\%du I/8{ּFh&cjqX%rql)Qg\4ZL"dS_~ j~Lflz:om9s{nͱh(eYd]Dۈ̚Lm1 MJTY Oɤ*{ :ƾ(gȈa Ȉ\L^:N]FҭC5O艇%ȵ,U62ɚd+v 8u״JvyhƪӮ;\R^ bEXE2#~icZ=Z*WfE>l:+Eb .9UV]DD!\Ɖ<9IJlAʲx 9wEl3 'qV}}!.u WWԝ0a2OBV{ ü0C.a:M;` z;X\HɭSnȒܢ)ᰡ9m6H}9lV͵m}9d ŧ÷Y, mMJcKc.%{=N{^rfaU׭+`ArI9x}EO-ЧLρex7o#:UWnfN]]~s=nMj-̹˴j;)}a.f]Ƌ$~=|W ve~jk yWvfb"vNXVU[AWT)VHD: JV!iJдV)*JIRLi ." z_QBDٸl ~ hg[3r|i쓤'S< &E-t󾙶:Q vNɽL;?Hbo1ymP]&rBq+ٛEg] %1YQe6nʾmsb- hK/_d# 12i2|?iiWcZu5 .f`z<΍ +[Y1nجoi7;fNlUf+bwu(Ů7p_e[&"ؼm ooЖJP%(BJ%)JRDIJH"""""C 7MSmZmNc0/;YTMZ1;8ķf;+Dgif̳<j:)59q9OyRòYyDªg 6qMN:݌8Jv:Y擨_vTrד hdjHq&DgΥq2#? ȀmvU+Oǽ3>I!c(BbQaq,꙲ svIylަMXgL4[#L~I;yHǯ:SXudjd%syPiuemifʾHW:m~Hmĥ^""?]6lm 4Rm)Cm%(BD$DIJHpyU[h67Z:Q\gQQ3  ~- j*̍j-&*ۻ+NvL1RR*I)*#J#JeҢ>$ddfFF\ u6>mGJ5SUsN cx3kXD/+OuBvyGJf1WleVq'?pƘy$|[Znk%*"3jCk/QxUՈ[U!W[ZmK?uJ#QE]trG*ψ2{?iP|E?Y}?(G?! I#} (7OWO !E>"+#~~Q_=Ej~B~2|.|d-/G`-W K5|Tc,b_&tm?aXx)_;i,zmsOC V7[muiJ,%n+[AxF~ '%Խ8"jAmjdU[&$ HM:JI4'֖\VUs#ρ13"v,Ȏ;CFddN4fF\xk.qM݌:|x3\xx }<ϊB\ SkV%Qe?O:a1FI쌋`9 m= 5XVסmCK+MTYa+q_b d$f8Im_#/,b٦{$(hٲeܴ;̞\|H8sQ>6i^sY:,a*Z=WqF]6)R|qLoU41K>\D%o0ǯ,eg"eL ³qK|=!}-m+/d=.C㴶 #lٮ1p*##O06^fC-Hohyq.N$ۭ8Rm(FI3##]t{*z&}c#r-#eFmo9;⼤6KYwKJmEK(pЧ90}dI-&(RdqnˊYuPml"ZK/EHKRYz;˫&i֗Ԓ̱ #oV٦WGM4VyE]yf)ҢF5u9xxpd]X)ϩIbuXDjKSdIJIIDfEĀgZO 9+CiOK>K1!e?l2,48҂L 5_KsyUᚕeqj]f8އUc.CD#5I$9cCS˝sP>' r&Ƀ6l+O6ɩI'PJ7gݛ7O&OvwM;<:4XRŰXnOk{ia6[wv:aIRDeͅ3"R5z%|ʆ%ӱ^fBjKOw%i6KlԗjΈ}4.v,;0"qGu:L:oK$R*95/N0%FFuNGfUE*Qqq>F4J#Q|ddSdUzڙi5ĴκR̈́IuDF\80lV7䫭e ,%|!r&+;n:<9q{=XKKK奦<~t򬚱ZĹPƥq.|H?ʳ'݆mbt37**q莭$F7&\6V)Y 0XQȸ*,mZxs!kdI'qJ]3.%ļ#N=8 o$}55KM]58;zg9jlÈuDܕu#Jxt&u.hV7,1TUwY7UcpT|#Mv3Q㱸";8`1Tu6oM#$dF쩒f4v̈Iq9>g \ qxQGR L?qw]^kc7 DzMRӬ~KKI񚛅8Y>xɹclܳ=R5GQ-`"N?ZQi׹“i8!FAM癎˲$:mǟ},Mn4BTZ(IdDf1YUǮoa42V䡶\uȂ!4.),KnI%ęX*Ușqc"8 5SCN jKn))2B7euWaREUsJ=Jޗ2 h\ClEh#Dl%#aRf4h$:XakqמqImIԔ$f"#1qYҼLSR'gdz,rѣlNWI!xWr\`3n [8m7cUcV(Diq#Iᨈ̸ vuE(b21Oh9%3Rd*ZcǷnj|ЅnB4J$I.VWUV6+iIK1yGb\GٕS-H&;~<.46/6ӭHq JУIV&Qu\9aO H mK^ [̡J}$i3#q$w6Tu6oM#$dF쩒f4v̈IqᘞzR0СgyE.nN2t΁sy~|~uŖ5Y!;hF)nC,{+G(Zt*c=G[Wıiۂ6;S1j.r*\Jͣ1%MWBKٔzk(cO~1cv'Zԕm~OR_B/z$ ɲR*KCC2lIw(wE#({2b:eNU Fy[R-0u$rBTRLȹp8>cfU8M=?*r(l3Knʨ12J| `9HԔ%KZ!&fIJR3R2$$FffdDDfguni-ҽ>նK6~ksljuTh6,%ˉPrKӜ ،9=?pTXx]ݼjdi./.9 **1,!Zha])e2KqfFDN-&ddG(ȑ#J1GiHaZIמy%m 5Ԕ!$jQXi>Yl[S%mKKk\!M]uuRJd$Fj""`-'@"lJO8q#"7$Ie3"5ȸ2:ۈLYTXA4lN!(qm-LJ<:ۍ,qD$Ȃq3,A1ܯk0FI"*XzJDEhtƏ"AU6L0󦮛KRnՑȹo]22Z7ڢUܺ4򜶉xKiǑ 2",߉>_#~~$~Q|~Bxߍ>W +^dxz ?O@?`(QsAYl~B?{!hz>SkS20%1w^1/Qc@</?U`]k8Q]k8M-ӍG܋y>n}EkRi'㕲SƮhêƪL-R$3*Jb࣭6!Yh67Lpn$T)z8SdIC-ΛQVDYɥ-QQQ+f-~tB"ju{|sɧu[vN%Ri2R$ >{NX3j.ثs,fT]JܨEu5ʌzN_jj-T֟jyl{Z9u6+cD{pG+kMm_v{XH[ _m8%^m[ƴ"}>h܆_A9C/%nl sرd6rd#W/D=.tBz:d`(rd]Jy-SMd˘M":\wAݭ}t{}6}>bkKsWOȸ0 ٛJ 6ڳ+-Lϴ r 6RŶ7[>M@z%MS2aRCG,8dddoh##Sd~ OrOJ Wc}V7O|R)5~ LuK-;Bl˃NO}i.vU;Je:ax&\5Qejˬ,Pȸ*ʗ*I1n9ΛKDRm=$ҭ+A5qcyCIc 1vbWxrr+6įvSs\h"j:Jt܎MvifI꾜k3*e˫ʞ-FWtuwб粻kO9{a5).I CeΥE2MK:'RI"/LJ4kZ8yuƉDn!LӊGd0[Qӄ3Bdr i"&- #4ʹ(iQL2ɒTFdd~J%jo<6nnPm5 9`Pߢ}A&%e"ʱl c-W[ProM@#i j//axU6vCiM4L2C\n WDD*m}~bcD gCҷnm/,JjM}t"-yL' >""ZIU܇@yKiJr3a_n ԭE2v|dѕuRΥCŲie-UEn2 Qcb\ 2u7!Kw]toj2_Y"߳_qwvLvdI,ƶ:Kub[7E[7VaF#Q4Cj4;Zꅦ74 s!ql_T!D#TUSaWvV-[Z%~͌T.)4DJ2=khУCVZ]RÊV߰Tf\Wmj3#_S܋i:J(hOe8XsܶEkܒۆ*:4 Y? 6i6tS.+WXGfT_XMӋM[\< D"`4kV̝mmm8ZmQ-$/6f2%n4|hq B"PN{AɫyX)~&YrqsUɶ2U.EVFBtWQV=˛'۾߶cۥfSCYn6.3ӲhYV;qc)[eV"$w[~XlIg4_l{tAead٥qKʲB=̆)z{74ȷr*Kџ\mXxjLe67ffNbs}M"a8{cʼսP g>6j̔2q(jՍ"n]ͧ]FQ|tbueeWȩcarj"99_)ӜʊÅgg`p~of}S 3lYcwLiPY 7$9YתT1r;Fs-|ٸ9:vKʲi ijrge͜Y@ߢsӍJ9Ĵr]tSͬl7SXêrUۙ޹aVō@ևGMNV&a QK[&KݒY=D,ќZ3rtmVXq.T©j5aKM>t^{PM7IX5L L?ŅJ" wb|IW1.lTƦwO==MioM}$Rj Ns&ZY%iws.)/e4|K6iU՝vX2u,u'Cqa]>N2\S-&+G+9A}2C:ٶ P^;+f<~vyKy4w|˨Eokҟ`%'0%PLc%R=,[Udn'Juum]}C,3~-ؕìxOnSR݅)Kd̸r,Й^z;:o}'ݖ]Ef9Ɗ/*qo2ܥu"ȩ,cF}s c12ۡ۾߶cۥfSCYn6.3ӲhYV;qc)[eV"$w[~XlIgxwyInZj -){7'~\9 @l"/2g7)1ݛ:E7E*VB4I#C٫2S$yġu-dM֭pнme1L~MGOfYynUYYZɵTq28Pاg>m r6duT(77Vī֞)MjC$NO;]ڰJ540:lFխf&򬙛Kuʖ5-e\ aKÍ LdW_iQcJy&3hR5s%-ͭ[6RK]W6wȟG-\̜ܦj>g;WC0Nϱk̩ W2yWN%L)Ӛpy6.no8ֆny=mL W8i>YAwr<U<4KZ[̈́D;ߟvϬo;}cٵF7_gy46MKr&#rVL~-ռ~_(6qm$3=CطjL,F!v'_—&V YOBS bʲ)4M6ډGf6æ _A]nёWʩq+vq 8lV5gָ6 kc2*_RJHֶk\بi/>d߄hZ˦%[yKS|IGr ,-{5k;S0R9 Iwsb\ɯq5x! Iw~tNmXtn6)|c E!\厛 s+Dxxp=; ̲jqh{/}6VfÀM\GeI~;ioH Rk!55M_oNe%49bIi? #L"v;[N Iya{HՆdGg}g)J4Jug$܎}3 =9uGEKYW<IQz|ڱjj4Y8lmތlܚEVCpsR[17.m/nC.ML(+.IJ\dyJK4[e4*^Yv&qxt1]㸅Uq 0]SecsfV0$j,/Anj#9{ڂ6&uSx~Y{ksZX]`[ʝc:yMu=+kbuK ٯg'?lN;3Ǹ-v`yUW 6BjV 4J]F#Mt5ifgBK oOl>Vr # 񬮤REz{lVB&c9PE'x#hgjNw3qYu3#"y+)VsG(u 9jDey3bUu_Kn/'f=|:q%NIqikODK3ykmkq 0\w%?12ii*GwG̛EM7񻋖{Jռ)7鴍mX_7kDWs u2zv, LfyѤ9 RC^;XI}k K$21)d Jf{1xoQΈQK͎v|kny;^1(jL^Ý>oOˣƪEwc]meCm $l?\h}t8Lr0: xOF2[̑vm5Tپ8nXKM]w8 FcCԗڱIw9?:Ueܚ髉[pSI>Εٷ+r1:P7mu4Ɇ;!3H!ފj:ndžFuwVH&emU22Aifi< dvBdKv֒f9DI!J2$aW_:f<LoZFGo1yk~'gd5Pw#-Li4RV1,d82PE_񜻷V1w_z9.<N395+3LLmI}h2 -^LI.+4&"ůn$sZHe8if1X[L^ϩ ,;_qdgEM .tVr&h9if;ۈ_^[lqQcWu\ˈ10-曀u~on,fLb`dqz;\mVs,_0}HFn/U1}MԜ$ {z9H}kq"Dj:8$R,n]: ǂ5{( MО̻U: Qz22K\k)1 tuMhx-ߙېL<˪ BҭnZ!ۛxq Bo1;X-íwa_PIIYH[,CUj!V! wm7uw)V AmWLUr_6 ,N :[d헎XðrnJhLShzVm͵eIQmIE2v3DKZ7T)m)NFo\*^lSٖ!9~VJ,o4o [ƲL-LNbxQi(2X/ɪUaLPfw:M7{ V.e `J,袿!ma0(=d-y'l[{'q]Ɩd;W/4^:73oSqh2i"ͷ6sj%WZ;T#fDWzҞd=6yܦ7+jp cV˶ $V.sQCԱYݗ>7);e%\5 3N.9ս9; sM5Vƙ{w0ځWL!/$ÿ́PoX-)k-#$ ;osXMUɮQ5RNsd^`/-g\XIl`Ŏ!0BpzI7[fg͕ʵ-ɓSHMP'H3~iZYEdIrFRy)nJgcX{yTa+8NkޗȊD.Tn }6}Xv=,)t2dG ZD2uҀӎ}j}Fq2z!6Y˘}3uGwXfz]i& ߼)TVô{U43s{G+hݜ#XΥeWu—yo`y55)R]t=cR)LR:h[WnЍaM-F4Y(LFEm4kFoΗ4$dU/ASԊggeޓ7xVY֦qG4 &>R_,w@\tY{wP?[xR(%>7 ǐ\e)ytȷT9zl 3zڱ9jrYIUl;ubo4 `dtWkuD;̶;TA'=\&Lvl{eģ2Kx˫%17I^]bгznaLC&f1ѽDRbS}й.:hTJAxdr˜g:#YtάO'͹F/%w\W$)veXMr +HeMscWaؙ֔K5%*6IH]D#qErZ')ΊSIst7:"ϰ" <v}=tsFk>"$˶WӣB3Y0fI#,['x i|ߍ>W]>"+#~_~BEl~B c"\= E_ڟ_)w^1/QAƯv/?UaৱP:=ܞiMSO\YRɝMD+b!7t zYq)rխRZq8]8 `tΓO#U&YHbSA~象Evsa4cC qLaKH=?>5OtwyW)N$u(PnI˞~Ad+ i@~n[wAw)c(DTM-APݺ>+$CjkmW%͕,xz;ůS"+JKM^j,u1=[mdLfۧqOv;ܑT̩ aM`zڭ.zX\.M;6<ha>V->s, mÏ*Bl0?~t+*6n0n%4Wg;NKr488S1l9@>Ni5WswyW %p!p.cH<6]]..29^J-{P-2|fƖT:mM}o1i Rde !Rc[&+2q=813*!x^9SiBjj662Q -mD"4)+uD6XY2חZY;lAȶôP83v53 BMcgh -mLJͶm;EOǴK/fNSMeʏwo.M[1XQ]*Dx ȗ)LngM BVNŬd[bYn):4 5n+Y@a)p^K .+a{2qmg;eMT1}BF@_UXgL1¯~=M715k\ڻ$0k'[RoqQh>y\7FLUt YY^U5TvdUJc!-.:[MSMnIűW F,S["o̭sv"]c%5gMPnE%xEgvRj c(^̵NY5S+Fa ZkR䛽IFh9jOQ9U}MBSKSnЮɧŅMzSTyrYvSTh~h.A\;W?SMgʪ9^NIMAZ+3Lё!R$%/iفquN3[g0I =grYW,NJZԶd8lWʆ22L?JTJIQI2dd~#/ ";+=tmdIs1ԭW܆ԽTk&ɡ[GYT W@!dq$\D6i{vUծ꼞r3hfTYQ%2iv$Kl΋|m?a>o0Nռލ~ίl1z nS]YITNȆoKhmR2q.75#s&НرU'Rik2y9et94ryR[݃'ĵ\Xw5,+daz]Re:ݸ4c2&՛JRڤǫdm4N@~iTLm 3hJJҼW /ɏ)]_/ݘ'k9έNSY2ӌ&\fXʒ[ qy!f.t(5%zI3k3A;X1\1Jϡ-*-l6f@ʩ_%QcZMOK{QcpnjcK'`$fzYK$Tꄸӄ9]jzz 5%4u5Y]Y[F 8m"mXa!BPHdDclXiem9,,S*Unke!:?/#[jYٹ({ց|-)]rmcVjyg'6Ϙƚi7Ug}Jb*5>= &ș=~ھ5#NFi!ڗ▶Xm uվu0Qٗu]a17 lTvKZes#aحf9M -ڨvAT\qR)@.3*Cml\ MZy.'{3Q= 8uLGYefI'XeDy #'cWLV[vsa3ȸ=va\6IqUI!v{0 FZʩ&x<5:ED&%Hc#iS\.͗6Tws6Ŋ:MkYt1D,[ͩʒF> %Rùf ^Pߓ%vEGU&SZۃF3!2h1aYġ!MMLzoX6FDDП[-6gZwfwY5Ya9ozmȄBCDɴ72+rΞi2=EnYYHzCW6/[I5I,|Xqf|hj:;GNe&j$]ԝԻWyhIEacUmlLQ;Rd\}YݼsFՎ纵KȃBKoK׌p]r\#TDf4i2iNr 2k7cb1+aڦT[9m˫t2]PM'D\}mW&N^BɴSIq{P>;b2i_b]}Ei۵UsWE-1>xg|aod0Lf=CѤTWH_9EXuju- W 8YMLkkJ)*uvd*)Fn:m֐uFɭ[J&֒4LkvֶmMnfx̦.vfoaKer+h55XnE?B((f*iUꐗ\}NIq m bhoZՖ]N1{lbcRػCy,[,jdcQ"֙ӌOm涔uhFn/q55C*ۙWi.$GpwBԘz=?rݮurYIi.ȵ'ҒgܰjbGlɶPDRmlqS\^ k1Ob+qk+GArvCu u\qQϞvShkogxy:1 ]nEdk[qWU·JVI$Rv4l ʺ0Uy+n3jڵ6qydBEpD&Km?-1q˴=ȑ]_FwYF5vźߗ52Ϋ)&m IIlKimOlF\EtdɓS?֍jG! P3*mm$Y J-> h\5M%_c]]X~/ tRFfp"PN0RYf|k|SIܒG^s015G+l- )q3mKC6%0]$~Zbg`xV wUS1d9!Ndy$/dɢhVƍ\h]uZJK[ZiV#*Ʃ-5ܴFz&r&UJm؎lD}~yP_[ϰ *M@/yj_C =sl$Ut Y\PtXT l~%5=5tf@HU4HZmXB i I`e_fŷ|ם5=5r]S 5Sdִqe]ŊhLJ"H]lOBes\Q8EDo!fD!Ï!UձJm {SMi6ws0hڎj="j?/ɩ&FY˒7%[d! jRg"T\xɀqcOqM g Mםt_nE9VxgRJ]S]2KM!1:| q×2%Dkקz!J1.LzCg?IMeĶ%®;J+ꨰ8GTdԨ$uG'lFO;~t|'6nzEn7S E + %HHSf3 ZG)Ms i5N11J:H6T aASֵ1W&s[UH,u#י4%e5=G H46d{xuR(Udi,v9(&[qN5d'm@I:Z+MWv 3 9l"i}0+kA>D>H.${IiXF=:sZ kij;q\h>rD=D,NVc!LۦqRa!-Bȁe]bH(aMZ"$x/CtP*S1ʵK_3u_-u)g)J^$6r?ajPf%#ĜRQ#jVd:s !i6dbDy -pg’3+a?u|C2mu/cjeFM`A * u5R"$˶WӣB3Y0fI#,['x i|ߍ>W]>"+#~_~BEl~B c"\= E_ڟ_)w^1/QAƯv/?UaৱP:=ܾ:FSOKcֱmYgbIzT9nsmHu!В&Pqz9IV,/ gڡĔw14 ۊ2OMƍ~%'4wpٸ5\dcUsj-MST r;iӖ}$J92Z]+>;*v,Pc+KL°r7stiRa\tdn"<=j+E]9)jҊ5vuQ.iQQ+|RCdT?HF?JIi^?s-\_ y癌ɤWf[!:[m˰l0`{6i6(vSj+sZ>3M|}YyRhq[Y)6- Ii3J̀t֛nGMOKnk[GbPEKJwy]gv<WK-U&CQJ4#oFޟb:dv̧kV]iNRL>k hu"iݍy>9H@^/m[__RLc_;ezcrVip |Q5wUArΗ="qjeBfX;msR.EUP}mhzl2ŸK)9WY㕋Qsv3[/Τ!(|ģmʿmNL/DZN=ed#y&E+IPe.8N-ْ5;F<9;]oiP,#$#&wĘVQ㼔mM\6Ggx~geOeCʫyXj,jar:E3~}i)y8'; qKr$t1铮Z8~0^нjf%I}66#\;Pk!y4܉Ox8p3܎Gj#[uJYΤj6ڳ4w:rնʵMY"4DV$tS,3Qj>ܗ)1eMDxqޔ&K1S5(QRFj2Dfbjnj_gT}K.ˏ'V1|'T.'{{AxMhkG(d^EdsݿnGI7?ZZ73"ƩIXٴw4yDTûSs%JyM%qRp*a' z~A_4>(bza`#tQtEбp3bn%͗o/Z7v_b.WUΤgsӘ+b$elPXֹg>J,2Ҿ -%@*j6vl v{p"ݭd9~'ZKn#rpQ9o5 ɕp$r$+iݜ̴֞ƨ؞v 3J슆y!M-8Ȓ_aF9Ǚ'Ki%.sw/MM UDS'L5eG7> ԃ2%'O Go;,&ʁ8Scy Y䵰jLJרpzZnz,uKtK(T!QB4_M+g]uZ oqڅ48d >4f-Vūi!\0`1on-1%@;2AwH{41u1՛S'KJMv?Xs)iijRF!NIMe 3J+~+RՅLZ.7+z{ [GN뎤FaTy&(D; :ʊMzYꪴ4 [6u_Np5:v3Mzq څc8mND82l=A )ʨXosxǵ 3±B}uۤ:Sbdȇˋ家41k;U͌32 fl,i?t#>xMNL}LirJZK6,$kn_t ۾wOV?e3KG-Vո{G:5tTUR,e7!M̬Osx#OȎܷn[@mcu6EgG%“#)MTR>:/XV= q2eH/ o֍ur|[tA/; ۰4hM1kjzlK~Mr:,;ae|ص5m1XKeX~c_53smTn"{(qS䰧A0}7EY1_Vt?³ٷҰ޾<%NaE=f#PH}jэiԍcg}>kv-fWѥS %6u2ܞT+^miێY6{˫,kǔS8d rq9Ev|um\r$h(fvmo[BJ&+P\.e=3Wg1 _`-:QJ2m,1^y/.j\Qq]Ӽ3S+gX^KLIDK8f3] НS5(̎&4q0`8_e*. 6N6Pkdʎn6| h'ZAdJOAw}7Ydƹgpߍ tyڡ;訚p%Oe)&}J{X[KqꦬowZ%Hsы%EšD+F<+KRbF sFE*>ڸd7tLmV\e3WkykMT\VR52 L chkUrDҎOBkCmHrj6!VL/'rY5r;mxXĢ_;Lw>7OLkq+NHg ~75̸`eTՑKܸN͛ ֏cm!ưfnx<Lb"rC],E+vBT5FCd\sLm |P4K8IU`H~eSmAu'[7SD Ev[dJey&[6:̋0>Nsk"%1YoǾa]Z*S&6G.vѱ;Sm bã_P̰Ͼ:9jK5qJКhňsyI#p73I7,/Ͱz{d-GOuoLfDy uϓZSRǖǁl3%[O`jҭqaj cRt?$C;yӐ+S"[μ Tθ"1yh%GViZjKHvM{FbT"=-&+)İKw"D ;wf㛆FbV&k(o9X7]dUtԕ֥2ozrv+Pc:vǓa3#]TU6:]i"-}GPqĥVC&c޶3nԴt5vT AYQ-=Qq9U D ;BE^6KiqUu5X:]J]Bev\hڈ^aR  :km^  w'V:VUJf4Y**NY^*UU&J.YwQw%o-x YΰRr>=Víz#Ko*UL+k8PaeMgUgG )p[Yc1+-EM\,oK0>gLIˋC[s*52cqX4{ Ѓ{@C=x6?1~7.4:-N#-*S+ٶl$\}!o={2ݞ- !cP\Z{y%o'2Di+i&F}3VKSKz"| 6l|;^KH0;GԜz{x];.dl92 ʮ߄T$Au6 1-ߖ͵J(w+K5?H5w&F0gɭs1^y b3&r+.oX-\Y ;}ouNꦞ&M%bڳOaqd)1ΩV5uY5[$s2݃ڐC%8M:soX^OϟC(cPi=dJOhg.uq-kvƫ(f6$ZAw6ӧ-5HTrd)x짍)A#!vukxo^X5FMajiujU] \bJq^]2rYk? tllB7QZcڳ$4]tݙݻ\{صR:YAݕBc%\ MIFg5Wq~iu&E S!byR"U=isN!J%%%w%qᚉo_Qo+bbsT]tn^f% ur-E-*'LmWqV0VQɮWBVGO..FUIYjpWӣB3Y1&]trG*ψ7O!b߉>_#~^7Oi| !Y#(^dx +c"\=V_(OZ/^eLAƯeW K5|T`$ñP:==tm?aXk>4ImV1~;5cnQ8i]C)HB)%m׳d}֕׽&NuO*ݭ6Qe)pǖ|\2iRmAҧcPMަDn˻<&f_q˙Z˺%]kJe"OWe t۲/ܕ+ɑSI^Q=FUbgY%TZ.^u~lkϩHr!IA;d.4Wظ̈˨?е$7"kaJS$c$Uu')ʤMb)5s&9GCv7RiǔMQ֍4.&;Fv42uymKfi2aẓ6 nWmَA'%.xeXKi -˷'OcD* /ܵ(Of6ϻ kj_HGN Ъ ȹdĖ9$h .Ut2c_%~=\Ս'Ĵ٫Whg#J`iL'9W^bW#%q!˭hK8i Pqd+,!E:s->{vP,v$2m )%kN9%-5.M%d}H BS̡b)9hM|['X . C~kuDMݮkilq9;ʞT='v-A{:3dw*6ևbONY@Bf}X⺍yvdj˫+(&*m}O}QlcDiFԶu (׍?G9i]CƲl椪E2kFiB!%JysgUuKJΈw)NBwH5gJMh*-u9]FgDWϜfcŝ U e\5oot,ҽ8L&:58cL,1O_clˤSSʑ"ƮqUy<tLl8BBr;":L.9:%$r1{AU|]@^6]i-#+'͟dU*bzDkT13WK**jrt[lT5Qm1Onˡ9WU=X`r~q[5s7^\HwVs\],ِo Ӥ|ZLҴk&I2ƭ */ #n"׵?nZ͸:-~qmTk$ÊJ+g7QƕK7ޑ,ɎTڡB7lhv{?uRf7+V]m 2Ș6xYO>U !3fH|/vLymX4Lh& })ʽA''yU<^]d\fXG'zM2˜gX]{_-;j{Ø%e6EOﲎcW/ϠΓ\~p>:Ugjjn?9Ǟ*VdoM]. ʑ ZYADhZ} y(q:۬CtNI p%nN6QHWNHݾ_i&C`9ˇ9;QQ5g.DV5 'KޑSg9b6%26ӭo2֜͡An$ERV%$ddd ̓U4^9*O6I%$Ym&|9$WK}vkojqX11MKϪ&ϨDjWuvS)vX4I*l)]iF-SIx>昭U8Tm+18Ʋu&נm %әa]ST<1?vܵRdz}apiΕL}}0mV+Wz- ^pd ZY%(EjNe{oZa\R[4x*:&=_YWOʭmKoF%^zM% D^i&{'(l긻@;+J20,mmJN Qi`8TpnItjJ$DMSs:Գ3ѫZ5uݰPju3lYKfIݬDV)dQ%d|ͯp"fW}ӘT5y&u[3=>^X-=^&csy;/#c?Qun59GOTkϷqsA2+deĖ k*p !UOV%VYKjmq dZ],AҔw9-a%Bq ^MF1kc3d0.)5uuI6h)D!^DX~OKqAMvyKn6-ph:q]h:뮭mIWg0=閉[F]mK̩fǣK̛R,c'3BT\g$E.*¤!FQkaX_Q0UaA%&ڔXVO"3tkJ$m[hYas#cZ67c&-e\7Tb)1d@}lˈBI{ge7nY~Mz<ۨs Kn"<8E!nKM%9IU1˕*uKƨjη#{bNyy눅Eɖٔ""Juٰԫ Զ6}r=X"4:jsoLԻddG1v]JI\p`nGYzv/EbW ݖM' D[$$h4|[+m65unʩ.tJ+K*}CCZx3>r9yonj;MVKe3ΚKPکVW&EVWLԲa_AMI Pnإ7}- \7 *~R9mڵ %9c gzG|TjQ٨SƳbѨYk=O[ɆVo-lOlyw(lW "kj}'*lh}Ld,N :!J)vb!I\sYZ0,~._;|2)mHoIb%_%s$9/XvZ՚96d[uzNl]vY[ N,&AƝY6kb'){QW5F$ædD^r[kȤkn.{07`Ÿfݨ˒ff_ n ? 4ed᥅ _MKi og34Iz\jJ"֓L{} ۖ6c8qdg`̴J cyK~Ud$F.w{%@-N]-?)5V Yԝ6OG8NPBj^uGO}Wᨓ"3>,[c5`S'GnChK&KiWM}kjܪtϣd4QbXMs&Ț8VTx Wp:4x^&we~ۦi}^A]ezwafWͳe~}C, \"6g66n1蝙\iE)nGaCg) qlaI9S. ę1b=sJ/:f~$W .4;KJe_I^ԅFcê?{bMi:Jq}4q⋾$PsaDқj 7ۮmB33[0郎Vzߦ [#9vTį/3>)~Xq}QieV厳iS95MC&amjxm+Yv[EA_[60!LɭcIfCPT婆r|&cwu'G'wvkue^c]ys*FU}GB:8HqhA@-tVv\YOܶN=Ʋzk,N9ߊV'&s}ιCی֞4aI3JQ+j/UJM&e4T2)EmEɸ>"|NY[׽+.vQ޻ϋl{y{rmWȵG{k Q/~qZs|V캼宭#G_fz)hq=l!l=>ԭ!`+r|bbŴKd i -Qv0#XTMzlk=&#o5}$.F#*7ڪbb+)<6Z? Q;.] ]jngx핽<駶a##)l4btKZX<-Ϋ"TZ*K5Eжw>B$ڬɂWZbFͧX{[.jŧt`-e~OMEʯG-ej=>^ mieE ^p 1IAԬa L \~,83SMe2ՎAΆ%9-GEsX\{SSό[!Ȓu%ǒyHRjnuJ6ٞ/h"Ӽ2=f3Ee,S_5ѻ#I 1$TӺCV],t*~pM9CԭIΪ2\Ʀ[BT]dQV'yN ]=tiZ`mMC0upј9e'-l*W(iCWËtUg&ӇsKz>A&Уq6V}s촁o,5,+kZXf԰[|~K0I"3nI. .NF,SWEY\+~S.OcQMMMep)R_Gڞ߹-k,2sRքb5-{Oj^Ck(gM*XqÄݾ'3gױ}?+X=1p{7qNM8(:h`9bڬl*o>ϫj̈g7_/t=wQ_sCçOyN4.R}EQ\_ESXb,[ ǔVLD2 pܣ(`TK#fmK*m4o;v!L8ږ}3RvȊTj5yI&F+Y"Juz튤7Mfj[-lN묔J\%ȬZ5֪LϩaOKb2#! QheZNd IviŶ%%W")LPU,pQ&#nu G8e--gBSee&z!C{?#ؿ;A^ܭ^w55GSյndR\IZ v,!ki̓WVv鬺=jwMCaj0Tzo+m@-uf6}B"<8#"2"\3q]yXLuk.ed꼶oGQi-(#QFggҳ;ٮqkF5=#5y!?1qlmSbձp SbGBU-X`yf_KG5r|c$ϓz=s#fHem6Okź-gDT}q\,J6Jq=*z5ȪFx1Xh'hh-2Y]^!ӱu`\ĕLMe=ŒM2ehw3[޾h31i8i>'ed(+JlX‰NuXX4!QAfMȹ7PGwP7/+4R|%e#"Z8bmLvβJ6 +7&-+l[DKc5DסOOvP.fH8"b6{HWKm2jCzV&*QZBn"NCec,'ӘTӬ#5t5s2z1+2 M搦֪$-kⲮQj&cnS3j!y*&9OLQoM$J.M"=fqG;#E/UE>464ɥeRLC#JGĈ"?pxumYt'<֪J2lO+yFuZqˉkurs[2>k6Gc rŵQ/+*h!޾WyGW /szD&:iR%(k>4ImV1~;5cnQ8i]C)HB)%m׳d}֕׽&NuO*ݭ6Qe)pǖ|\2iRmAҧcPMަDn˻<&f_q˙Z˺%]kJe"OWe t۲/ܕ+ɑSI^Q=FUbgY%TZ.^u~lkϩHr!IA;d.4Wظ̈˨?е$7"kaJS$c$Uu')ʤMb)5s&9GCv7RiǔMQ֍4.&;Fv42uymKfi2aẓ6 nWmَA'%.xeXKi -˷'OcD* /ܵ(Of6ϻ kj_HGN Ъ ȹdĖ9$h .Ut2c_%~=\Ս'Ĵ٫Whg#J`iL'9W^bW#%q!˭hK8i Pqd+,!E:s->{vP,v$2m )%kN9%-5.M%d}H BS̡b)9hM|['X . C~kuDT;@XU{t<129'bS׸ݻJTXdţ/gT9fv,XVI:鬺o UpZSՈ6'#W:-sz8ĊXunw5UϺ 9 h%.Og_Ng^ęv}=tsFk>",߉>_#~~$~Q|~Bxߍ>W +^dxz ?O@?`(QsAYl~B?{!hz>SkS20%1w^1/Qc@</?U`ݥ6!@bZ{e/72Q5U>lԛ65lJ:Vܕ6qꈌhFhV&гmHS2 rcxT#'R܉ rDjwXnK7)G9%~j4Y_ӨixzZ9uG5$AYs7 ,PRaC /8o:ڎ]Q) ∈j""3 ݥ6!@bZ{e/72Q5U>lԛ65lJ:Vܕ6qꈌhFhV&гmHS2 rcxT#'R܉ rDjwx"{?iP|E?Im'3ܯG?Jf/A`2EShb_gU|_? 0_;i,zOb1OcuX{7炙pӫ RvPq rjj߸W2 & c'B-qiMH̻ElWͿ~zu'j_kδ-CVOع[[gb*m#ǒ{)S[ܦ|UҍPf6*9m~߷-{4s-g#)0.EWX- qwjd%>9$`X6ۮ@) :q ioE),ZA&A7 K}HSfϔZZbMim7v?LitJƣ,r/_rg3 0+תHE\;cBSu[[*CmśN6+ UNShb_gU|_? 0_;i,zOb1OcuX{qFoߞI GqFoߞIPڕ]y8n{Ξ4T6*\aA.bQv-gKwPwGMaE4uyk D'm$=K <\ yK>?2%RBcSIBCtoۭg3I؍oa76N @i9]qȌf6ű.3x9TsPPi)jBb4(iejQ!0UXA5 oILq#84 R`@U\B{w8X$]tLp}͙Pٞb\MmR?CyE%FIDv- ~]2`ψ~ҘuZ^:;qݍөYXb2_X|Fj!iR9הMEM3p\M cMoAfm&hU2(-d<͓V}Wɉ!oűV7SWc5)Q_OS%t$H&L;Dp-]uv][bSoM3ˈͥ.22ݸV <'<#*A\ `!5`oA7[~ڕӦaK>˪k;u/*lO+3^toFq rŢ)+qJVUQKt8i#qJ?tN2r?r| R!(RRd3-2q(lrbReWQ)!_P2Guo\tdP]8Ԩ jzR^*))d2I223#ˎIl3*,]&4yByq*m^mJm֜J-&2>)ޟ;`v?=G|bzK1ȱv NOFCŎRi)Dm{پ_FFz/q̊UjQڑi:}Uz[EhfSYkUgʳ]>ond7_45"ULچfɋPj>h5T PʼUf-Q֚vPJkLW%1y[u*tN=^ƪ1缂2Cή$e} QKS%'ʕ|:^wun+zZzEehw4ʪ#"{S.5J_U18鶞gL2,6̮69Qy3%2eK30VýXGeH<v}=tsFk>"$˶WӣB3Y0fI#,['x i|ߍ>W]>"+#~_~BEl~B c"\= E_ڟ_)w^1/QAƯv/?UaৱP:= u=MEW\@ZZAaN4|͸y-}h5 )21cF;"0XYj4hњCGa ieYem)ChJPHEIL+~ҡ.Og_Ng^e'xoğO/?O@/ ~4>A\t_~BS/A|B}:9T#5zoğO/?OBſ}?(G?!oƟG+ p/A|B"+#~~Q_=Ej~B~2|.|d-/G`-W K5|Tc,b_&tm?aXx)_;i,z<v}=tsFk>"$˶WӣB3Y0fI#,['x i|ߍ>W]>"+#~_~BEl~B c"\= E_ڟ_)w^1/QAƯv/?UaৱP:=1-u6j'@mT6NWWq_mdX*D6.5_{-HyV>LCɈ(JJ%ԎƟpv$)Onk:5lq-7jl_{h-=ispn|q?Hx wK[E,$m}|Iq,-Rjs.i*kg3-iöy8۱_x4ɹmԻeCE  :UE<bضmgzG;ϺKǒ\T=+4}؞iwN4+?: }k]:/I8Χ[\3$Lj.%IԮ:oym\ 7{ft{Jt1jVa*4!X[Gau Dfɳ_ȵ}.1u$܇vqȈ̈f~gku[nJ4EKm2t)0nL'MN6^䒜Ԗ/uR#$GMZ_--L4g֞]Ma}8w ojץ_K´=Q5O_L]6ǖiz)b&%Wu7ۨ+SO[/=yqeۨ+jpXcq+V,4ԛ:KW) 7aj&2 `zaeGBԈVdg;=ǜ3CK|Q1W,cjdOg-~t"#Fی긷8tO%ƸUokw LӃ.L5LuzΥcXYi^24m~>TV9eq=aW.c5jR3p1ņ=5iaXVZb9KʉR'MLi KεC.*jdkV=̕%{Pr9,6B!r!Pkxmc04YCv3fϻ>7'՗y|0 n5X]Y='ӌjΣ%r_3-fvAjmK8#-0%71f7n1~,U୫kvnqu;u+z+#=zP*$r x-ʅN98R[l y"𙟈cZ?7D?zMc[r9U;oAzgS)2r%ludi28IIW~2QHKoѼ=z{ Qo;UjxOF}F\߳q9+F[^0ai18: a zmm]IcٱiGvRk7 IxnףDl.7MT~{ev=\ro, T'*:3%jr?!T96Dxp٭?_m'BGe}-V ԣ ŎZJuz{{def\7&]✒En3&ϰ|sS0|NGeX#K\MULhYS[ C_&0<Sɖ25ŎqӖ/HDf3o1鿣QvүH~qxjV>sOZ4jhqD& [U7&\wXlc;ЌW`vJs[;|֡Yֵ+ ].$i+BvKmȕk7n{^hչ'P*)*%nl6jC^N%n6,j%lE}ReV_TTeb]dy Ue"&)8)ȪCR "|k.-$yqai~jI3lkCaI63]IO &L 塢uh7q2ikڌgirDO]LNzD-Y θ5׊/]^M+ᦛ$W>*W>\u\u61)V}OK Hð=:uPllq49 of5%JB',L,ЦI*'47hk_6%kۂK^bW8lo hg嗸2.Lt^_ϲNrKJas=`ŎjұmZ"&&f7wc7 B|n{IxGjos4v+ɗ>Uŋ$b8V'vqWA5uiO#BQ}C@$:.:U;\"Иѡ %1sАa[vWŎ\NWRdFJ;0!X*kRCyLDS|ڑi^;`19v=^(pLccdcK&5 O1pVukfYm3oՈg1י.Nez#-(NcZF'}SI9yM?- soV3D!sRdGrRe%íw-S]PDKz#FrMO-UKLnJ'Q=',c.{YhlEqٲ'Sf#yraom#1Kēi+i5p,h⒉sjwZIIl!3?LKiƽ`'Wp-!*D3i'[c3Y(އ TM6A؛>ݎg^CZ\vb؛6-DfW P+-kZO+n4eD'&ힹ&9quY")&*\KRof󦺦3JѼm"Tm‰4}'zmQеLk 8o6tEFśm8C|ڕŘɗSe)RLfcU-6M|ٽܶ<U\>$f}\ (6۴ t0,G5&lǢcٌwy ڣajF~Co"i-Vhu2`ئF3e&S(M@VZR)RqLXK Zkcf3]&Ch &+qkqfjQd۾cM$Ugwa[XTéW+uƜO4*4 3НMV$d bۘ5Ow>7\EN>!YFmdctWc 7S+y噭Mn:58+Q>m1 =VRr8Wp6=tsRWØi8nd}d;O5]tQua%9aȱ SmB%{)B3G:s>b\zx r|q`F\ԟHS4bFM +eQ܅]իrmϤ\Cota{׽\ӭF hq<qO}:9T#5zeIL+~ҡ ~$~Q|~B-EA\PoƟG+z ?OB|E/VG?!?{!Ese .{eL]OZ/^Z;{jY{ ĿWFL;ްSؿLvXVkfK") /ҍ@zɦuƫtP!6~ֲWO;jʉN5tOVe8I+2Wa+k*a%!K5Ӣ̫a-n=,7^}y~?'x̸p~\sQ`'&,֬L֙qeˎ-rM-oV&c`:ẑҾ[JlN$ßleTI1CHeŴkJУI;NrOVt35ʥ--MnƊ;c:EDmEK3+7Xy^aέU1/Ò_'q2Xw$<̼zSbY}w Rk:7';(э[Iß̵' RrVb3i"[TXlBTlo\ƚ&R'OW-Q]T ;kZRVgo^3ϤYQ_[q\G~ç[S֞}NXXx;c,g9n[\ZeRK%\K3h1_яeեJT%ٱ N4Nm51&yu'Eey_4 $y+JLg\}ޙ:~M³_ b\E=tI'nIi >}84o#Jv=W2 &dRjZޔ󮸵jYʙOS%^mb,NDv㴵xϡ_ҿN.#p.I=&]k')j~רW5s`=iqHqUAUKRdX;g2tFA˴1xUm5MwkG!P[0ׯ:-n=8mI*}C޴$->M`rg$d'%,ϥGoeQȦN@/{Cm5 )xΧZAR&% Ң"tB6\j[MU.,ech,þqn&xi:6<9}>\NN\Þ9L9EX&iiN1\Ydx“tˬDq&$ԫʶ΢QUkI+Ln_h&-ՊӗS81c-tR;kFj_q!+>LB}h;%4sټ^3m ϵ6w%ʦn(eC2Hi}Ky)6ºJV7ɲs8;UMEbI9`jIPʹ-Rd4ߖrbZgx:mm;hp? ku8 &W6l Nژ͢ycW4V1^$vsnSw~gw`雝T鶪cd$UzaQ-mN߬DH:^5f? C3F~'>M|i0&*ΓGhSS9/RPa[vWxV.9[U[:[Z;9iqzoϏ{@oN7K7v?bNkr趎jJ&Kz$@6ۡty(3ԓRI$)e6ΗV+[* Z2 @I˭8GM*Ć\%-$~5[I0]hĥa:-j_qc<5MIZXSK7Β[Oe"#0{6M77ė*wNq(2z,s9޸\d5޻lc ѫ ncLrڙX}^U7&=>BuZxLս&9.:=gKqR f"UjQ$ɶ߲n/ j2BTd^o6P5ڒVCT-j*&{Oێ"uu森2$'$mKsMmdI&4$ŐҶijBeNJLDd#& kœuA}65ۿJmp5I$$ˊNvdWFddM^2Z\ Ȑ=)X\A%'i7ݛ翙uZݖYvMXLyTZ"Ǿ&9Xbt^ z{s-|G;?0.Za cvPqPiZaHT[eX]̈́TW,,+Brki4-Z <˕mKkImIJ J226w}ڗ[C򸄭1YNCvkp( i;M0Ҝ6#BKo.OۮH"Q61ySri_Kh}ILNk̩%r[|R3fq,ݒ5VD;TKQ6 eKqFSeJ$8䙒8>ZVhWN%N3)ZNWUXٻV~Z ݣuxgGzVQ7bɌEDFdw⇪oVyY-3̓JJOuozq,u<ˮSN5$p8;G#G.c S,JCgFթ59A-VKe5U60Jt %TRXwŔ:[hdzeKUޞJQq2JTWkq,iqͩ#vm=C/]ڑϸ;񰬂ޞMb(d)eT %<"͖̌Ii6㴭:ۋ3Q??$." [r)q~f*kR$4N˗)XϷ+lfEVKYֵ['cL!&qn! I:+ej^%*j:%MPjusaE%']2A|ӹaNwd91z>el99Ξn9ljiԶ1Lh?NNQ#>7me//,^C3^ 3riTvUI"DI*Rn\tMUMVOGQQMfƖT%32;rHlB$Ң%u.t6pzmc\4̅kE"o\ApɹB\]҇2\rއ5&E ]94U6^s^:]TզJҲ bzIZ9ԾKF dohgLLA_O ?׭~m˃YW}/(_KEK=Oqg}{]w2/wrby9}rs#<8s'pen\D%|8x#ǁqCcG.uZ636)]%vq4'vx鬑!-<}T]9W{yFK[ZuI&!Uz{2OYOMLd&śdbAfǙcx-5?W-Ej*5Bnc-k9d-p Ʌ#K6$ᓉ؅4/2 uC]Z©oȔc0PR2Pf%GO6K^%j"HYUDF\HȄRTcTx |ZJX1*!4bA 3 'i Iq̥)Fj8.ϹVkd2nG6$ Bޛ*Qiө-\Ӻ5S$> +JMk =O]wQBBm mҔ!I%BH!)"JRRDDDDDDD"og-!vћM aF'#+*jt*Ȉ(rc[wҕ$h5<v}=tsFk>"$˶WӣB3Y0fI#,['x i|ߍ>W]>"+#~_~BEl~B c"\= E_ڟ_)w^1/QAƯv/?UaৱP:=EIL+~ҡ.Og_Ng^e'xoğO/?O@/ ~4>A\t_~BS/A|B}:9T#5zoğO/?OBſ}?(G?!oƟG+ p/A|B}:9T#5zeIL+~ҡ ~$~Q|~B-EA\[k|d.WO !E>"+#~` 1E~2|+&(^R_ڟ_) Eh '}F-~%xFQwxQ|^^nvgFmU&ɺ\&')cgZ}i3Ԅ*gd-$+_K\1c՗qۗ[oM>-]WRJjL.\wdaZL*2/wlj{f~%:>/f~<|Kz/([D|LNS$~|\>T=ChE?>>COϏ:)PS~|}>>T=ChE?>>COϏ:)PS~|}>>T=ChE?>>COϏ:)PS~|}>>T=ChE?>>COϏ:)PS~|}>>T=ChE?>>COϏ:)PS~|}>>T=ChE?>>COϏ:)PS~|}>>T=ChE?>>COϏ:)PS~|}>>T=ChE?>>COϏ:)PS~|}>>T=ChE?>>COϏ:)PS~|}>>T=ChE?>>COϏ:)PS~|}>>T=ChE?>>COϏ:)PS~|}>>T=ChE?>>COϏ:)PS~|}>>T=ChE?>>COϏ:)PS~|}>>T=ChE?>>FL>{b ^|~B}U2yPGr]uuZ#SgXNu#586Ԣ!m/yϋe|C d^wNM Uɻ" i.K&Z"KJe^U[E|ϑpp Ų q8O]pdT!bx^|~Bt߉>\fIt_߻|~Ծ~/߻|*~3z>S?Ibd? EWڟ 7K2?,^.>qP:^?9q?N/'b^OÏ?' s"Q?'3+Obi~#<_¸߄̼^?yE#.?2X̭#?_[?au52?1|&2ϐD KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D KtKtOtO OD D D D \<3d:'H~>zOv}%xAxHBj_?t~$~Qr(7OWO~I!Uw@TA^3BˊO@ˉyKYx8>_ Ae2~Yx8<?Y->2>Od d~G^/9|~0ŤjK.>O7χe>c/bM1jl^o?e*})d~D~Ήyy.y/77^oâ^oK^o/ht%藛0藛1K"~ {@cz%L:%LdEH߂^މyy.y/77^oâ^oK^o/ht%藛0藛1K"~ {@cz%L:%LdEH߂^މyy.y/77^oâ^oK^o/ht%藛0藛1K"~ {@cz%L:%LdEH߂^މyy.y/77^oâ^oK^o/ht%藛0藛1K"~ {@cz%L:%LdEH߂^މyy.y/77^oâ^oK^o/ht%藛0藛1K"~ {@cz%L:%LdEH߂^މyy.y/77^oâ^oK^o/ht%藛0藛1K"~ {@cz%L:%LdEH߂^މyy.y/77^oâ^oK^o/ht%藛0藛1K"~ {@cz%L:%LdEH߂^މyy.y/77^oâ^oK^o/ht%藛0藛1K"~ {@cz%L:%LdEH߂^މyy.y/77^oâ^oK^o/ht%藛0藛1K"~ {@cz%L:%LdEH߂^މyy.y/77^oâ^oK^o/ht%藛0藛1K"~ {@cz%L:%LdEH߂^މyy.y/77^oâ^oK^o/ht%藛0藛1K"~ {@cz%L:%LdEH߂^މyy.y/77^oâ^oK^o/ht%藛0藛1K"~ {@cz%L:%LdEH߂^މyy.y/77^oâ^oK^o/ht%藛0藛1K"~ {@cz%L:%LdEH߂^މyy.y/77^oâ^oK^o/ht%藛0藛1K"~ {@cz%LIzy/7[/pE|"[3?lU(?' )<<?^67g O^/Q|~!vE"x /'\ >\|EȼtrUG>HUA}  k/?X\H\ ?*.%/Ye??)Z}?R2#/H{>y[~__?p_x Гzc2//\}!?=/2~K"~ {EK̟A'P lyy ~`y,y ~`r^}/7:E/)^S{H߂^Kǐ!yO"~ {C^o/h B?W_t%y,y ~`r^}/7:E/)^S{H߂^Kǐ!yO"~ {C^o/h B?W_t%y,y ~`r^}/7:E/)^S{H߂^Kǐ!yO"~ {C^o/h B?W_t%y,y ~`r^}/7:E/)^S{H߂^Kǐ!yO"~ {C^o/h B?W_t%y,y ~`r^}/7:E/)^S{H߂^Kǐ!yO"~ {C^o/h B?W_t%y,y ~`r^}/7:E/)^S{H߂^Kǐ!yO"~ {C^o/h B?W_t%y,y ~`r^}/7:E/)^S{H߂^Kǐ!yO"~ {C^o/h B?W_t%y,y ~`r^}/7:E/)^S{H߂^Kǐ!yO"~ {C^o/h B?W_t%y,y ~`r^}/7:E/)^S{H߂^Kǐ!yO"~ {C^o/h B?W_t%y,y ~`r^}/7:E/)^S{H߂^Kǐ!yO"~ {C^o/h B?W_t%y,y ~`r^}/7:E/)^S{H߂^Kǐ!yO"~ {C^o/h B?W_t%y,y ~`r^}/7:E/)^S{H߂^Kǐ!yO"~ {C^o/h B?W_t%y,y ~`r^}/7:E/)^S{H߂^Kǐ!yO"~ {C^o/h B?W_t%y,y ~`fGd:EK̟@,:EH߃'Pt?ː o3-_WJ<\|1PCH3z}?\|%>|g^3?tS"!\yEr.E!I%+ K.?U.%%'_ddGH+^_?i2h?1L/y? i^S{ G. ,~Wç /!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.!yOB.OXt"?Cy 0&ˏ~o] rAy| )T"/ =BI@~R~TJ}Ip/9?t~ˏ3G D~2?&8 &D~2/D=f+t??/_B?WUWEy=eK!yOyyK>OY"|/_9^` \zz*~?)z)r'?hr'?h~Rȟ'ȟ'!KC"|"|/_9^` \zz*~?)z)r'?hr'?h~Rȟ'ȟ'!KC"|"|/_9^` \zz*~?)z)r'?hr'?h~Rȟ'ȟ'!KC"|"|/_9^` \zz*~?)z)r'?hr'?h~Rȟ'ȟ'!KC"|"|/_9^` \zz*~?)z)r'?hr'?h~Rȟ'ȟ'!KC"|"|/_9^` \zz*~?)z)r'?hr'?h~Rȟ'ȟ'!KC"|"|/_9^` \zz*~?)z)r'?hr'?h~Rȟ'ȟ'!KC"|"|/_9^` \zz*~?)z)r'?hr'?h~Rȟ'ȟ'!KC"|"|/_9^` \zz*~?)z)r'?hr'?h~Rȟ'ȟ'!KC"|"|/_9^` \zz*~?)z)r'?hr'?h~Rȟ'ȟ'!KC"|"|/_9^` \zz*~?)z)r'?hr'?h~Rȟ'ȟ'!KC"|"|/_9^` \zz*~?)z)r'?hr'?h~Rȟ'ȟ'!KC"|"|/_9^` \zz*~?)z)r'?hr'?h~Rȟ'ȟ'!KC"|"|/_9^` \z?܇/_9^` *;k}X}vy3G6džmYkb1D'5q$y.Tg|"n8ᑸ\֥(ȼ| ρq/ c|fg_Y64\U猙o\:l֙;,?VUzx2Qr9M3.'.É$WȚ秂"{yѯ_LN[Fӆ b|I:s~m1Z"6 wm+| nKn%*J$ %%IQI23#I222Ts!jBJq##9+gAXa!G o@_*A; ըI=ե*>S#6'GSKoɦq.M)*lw1d)aCZPwU 8_ʮZp)5b U lbY\Z <ٙp56A|x:ˤZW(6o? ^Atjw}vo1ѽ&zE##3՝R<}9lU%)#S)$jj cSj1aTVb&f"#yU>-61Yns3;Ekͭ1X]NcZoTry<ۊ_`> JԄ-&JNc;yvMR쥪KkI kn r%еT*N\[dFaÌeԻL-oi&x쑚Tha}dj>+u]s cug|E◶,6 NDmw1cMc̀9 9VY"~?bM!lxiQq#6T1mjf?|'"<nf|Jǁ&J%!mm8㍮QtCYUOr651 Me<$%2PZ8~*ɋ֯Zdz?Rwޑ׈5ZkbVu:EsDFzMca~b~h^ʓ?w@06A]XڽЯ.s,ҎovHy6&zmD\K3[ g3I%)&iJORSnk)~;-m>ʔulٯj[hū;^+n$w܌RZqh[k6IC&_Z~E"zs<+B̹̄Sc k?HhCu֒i#8҈*J; .Hp%EQby>|HWԟM//#xn.vRr[YϠVf9?|E#o?1pVR><Ġ<^Ne 86>n 7eQ3M='ogk[:cxj Yc߼"-w˥_}z̎NnN+}L3 HXs0χGϋ6:4mbvDtK4X11؎*Yi~NGW߾/.W_#dOn=^V%gbdMtzN5Kq; E{}=;<džM}jM;t7mgO~n.KU'/t}3H~~[KsZZ.mg}?Ckn5{eޑbXwœ$Fi  ͛ f,h4:rE +W|KZvm5̉JHǮ.?K#~gF8 N0c\1V⯊ ^C(ڸK~ >ͶcE#?!qf*{Ls#wQ9 D8TyuĿE{"x=<4_wH%\"Lqi#2R22~')>.&q;^<q[]4X oK99^MaTV0VR#FioRmdN,ȾJ3? ͪ3?fc6kұZj5b+Z>Zֵ""-"#hiG}i65I;y\vú YB{TfR+qsqm,II!6YLo~t+*Zttt=GN=QI\q`涉fffYSugS,ˮd ϋ"ؒ-8Ĩ[cڜ4츶BҴ)I2c@K&l٦'6\fNLOYLFʰym?[T)^.TXE5z R^thUsJ5/ء9ʒ6#3voOu)8ub7? 3LI$R?񗬾f8I{C2|I>eO/AK~?AC?#/) '}F6NrB*ȒS7!:q͌ ǒE9f^iĭ Z%hZIHZOM*ID|##/ 1>ɉQMV>s>,>Ƚfǝw=#ILLd| 9i|U9W(F]Ϲt=IQz'x鈟ydf˧^\r[&b~1;oʠ']⁗h2cjź;̴Dq%#y:Śm{#kM+XDDt6ُ ]R_vB9ȉI G:89(fnԄ,Dg4yKj;fi%u} ̹-ȏA %KO[_W JqGAPj2"%$ˊjQ3(mo^rjɧ8qI͗niÇĉ??'gğI|D0p3̗%EJj^c?(R3x̾KGQx'? :^?HO>r@j.Y6>W1xT&Ta)BT$)ff0G2x<F_ x^3,s>~!:奋mȩQoh>Jq}9*>h&mfpho?~/wV+cѵi":DmLȊ߻Zaii~ͮ u8 CRPFsþLԤQM.[EkkO)Xw^pEGmJS!Ddi.q_IF#>r-h1r|/A|e ǎli$M m$ J)/|"_k/|yGW3G<#O b<:L]y#|iɖrdOHVO/A.?q_22>?Gefˏ|=%?? /'!yHx}Gqm<^2󗛀!ʁ>3RLe$}ię)+I/ ˂ID.ːߏ&CKc>.HMm5&'I0S+ *SUzv4mn=[e5DL͹fuJ6O4ZuN!+m֓BqhZLҴ&Fd| P@N?ir#[O9ѫ]Z.SQ&BY!l_wny+k]9f4q=87ں¶ªSɃ-rK.2RUTmK-J;{Zhc&&"bc0"4nf&e̐mN8%KWI|B[9q!:jptRiR&fmLQx >hկޝgt8 Ȏ9;S=?/ \|=_6?^ql|^oY?"D_i\|?Gu$e|Dx<>B>??8u<|^tH*7>W#/W8Ըd||?||$; H9~|x91|~?x>tIQkI(qĚ$Ĕ6Q2>C]-087nL0QhPKmq..FEFD?'?W!zGL^/اEܕe LHIYYN//p|3ѯ_AJetQxHҼHcclkՂW(iS">Am6Y%J\"-A6|ڙzb^ad.y>2'5hw?G-Vfɶ=)yZ֏n1$UG#9LҹmHafHi C/j'9x|7ecx<{C33ힲbJÎ61ִcʵ-x#"|?38w?'||\s-7~oD\8Eqg/'Q~xTx PZ>p?_\bkp?9z}/#~<|~G\gxKEļ?=sxb̸z>jr?q}bb?s߇ /7_P{/%9/[*q{"#D#?pD9~/{w/*^/pmx>?^3xrDp! /{@0mBx>~owC(N<?c(R/p'x~_n?p//>pl"|~#$$K3 h_b  ?~.&.p!Iߟ8 u5Tp?|_ᤏ@1je>C/{/R8!63>6~Gb)HE/"?7d2/aQ=.?UK k^?d| ik~'ߛ_?W$>E?LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$aY$c2LfLf1!Y$`1;D4Pu%wLWGA8!yӨ&JSN &4yRcK}5,YICӷFm|<)jS٭s$ĵ`^!u?.Zܿ9v[epk_j.EfNm+/fBЅ) a$$8JIRq%(*rL0,˪eQTr%dGUyjK-$GÍI.3Ɨ֤u]BȈ̈&f~"M%nwIuٚĴ^3KdMDyl_!VײZӹy6ùdw/Ow_W\|OtK=Ynit+&L&3Q#Z%(AJzD0N Н"%ݔs"IȲ(N"R]sq*Bٛ-ʷ3\Ylf9 @q3| +r֔rg/ :[ eQ5mS/[=j.:{Y4L+=SʫOdLK=SRMӨ8o30mIS[JP wү|v5r%cVy .WKbm!IgA&֔qe*pԤm(ګ;&#`N:vjgX( b\Z<̊M2guw'&`Cwl3+dWD+.1LQe-< lS Zx\6I,/ <9icb%Y3M:܏ )z65]dZZ'\X$:qݎ9ecö\~F3sJ6B^Hd9`ѫ#-[2kRt`@7HSYu՞ >< ¥+._b|,Hxb&nvuu8ݛC\~>5>s&÷9/Q)f`k^#THRvR{=wӚ+׹ZC^5$1XI!%imftG]yLJb<E9]֍1ʮbN27%::)|Vq grT%sřD7kF5g]yB蚐on/^<[RkXgSdhu i@$^;G1,[1mzeI}F*r2M.Ϧ254ߏQ_IRVۈROqIl;iW_?վ`5 n(=&N.-lYNEQo&%"FIj%8$>ʇ[Trn%Ĝuk.dFW ]vbRfDFlfd(4.)qMxB\ Ki)M5k4DR𘜮NnQ .Of[eҐ fP&##)Of^VZzٶcjӌps,cV5! NS-tW3cʯq%)ƬҹťT<ߍlSQ4Mi:ҡllmP\UBΏ&j꽉 3&+2K7;gy;}:=_g},z&pa=Err,2]BMV㱤- >-%p|b̔\\ymb5Omiw)6ܭɲFR_{*FV|vDwRcv2vtHjfY>>kB_CW.lȡG^۵tjK٩m*:A*E!12L.#Ƹ,,X{oԄ>sro&?ס'uWЛ|l.]D!HY. D$z5IX[QiqR6Lz eYQf݆2&SKU\TV׋s&WK>T3܈!iqd4[Oǐ6%6KJТ%%DdFTuj޳2- ]}!7L'MM޻Ѓh5,ۇnuaAYZZPƭf56Tw5*¯hڑw& =%k鲋ruQqLJm4䬚 % ttIK4:. !i5t}rbcqe塣: '.tC1xtX] fW]Ni&M}{7q>!iQ-1Ap49il=Wݦ[;Vs&˜b]dSǙ\ItD:ᚣA٥[s:^r}%}ǭ.q~y=@[W9o&Xb%dB>dP'șb#%F;uhi%I)SDYdCgS BZX;}ДY +LC ƈ1mͲ>93{ 9W٩*\i IfB{)coÒa|\L^LL^SY$-'> {b!qQtMaVIn)53{;KiN[;&S=]3]>EUe=KƢ2HRfʰQ܆B&R{Qntfy-2.11.0/docs/static/img/screenshot-phone-detail.jpg000066400000000000000000007017501462047176100230160ustar00rootroot00000000000000JFIF(ICC_PROFILEmntrRGB XYZ acsp- desctrXYZdgXYZxbXYZrTRC(gTRC(bTRC(wtptcprt\z fw:.15{kOb1^f \+][nq_|bi&"Yw"|{W/r6LoT6jղ:XE!US4cg!ӏ+em4@ qT|.2L|t=#ڝ9uY򼾖>mmlů5yB]^q;㌳ RQ0e=vᄔdUGjt'I壶ni2j.q,CgBZ8ܧj:[l$"} ICA~buAYc-ym?F"au!}xt~v=gtf)kOobkw񏡃8^x-]}^8Zzg,y=gqesDǖ/Z^yS^'j2VMI8L29/(TuTQ>H$!Θ5lO8ѱc;Q&-fp \yb:'lH9c$xq'+mþj"$J!^a}Uv_wxUhy*)*E8ߘnVk mGd(:[g8h^IߢY?I|GM.yHŎ^6>;{{O}C)iz89rNb|,-_g|tVx k%$)fu̵Ulo$I,\%RMB0UϒH|_Ocڟ?քi~W}뮛)v ͪY=}8ɥӃxm|>џ Dx|t(wII^n5()ǣ\r*%c?<*)r'l|xW"yqE%|׵Zo5-+$YpD6j!ս+Er:ltP:ֺgwp¡Ki#3v1$NA<%5|ECfYKa%MǪ&[ kyMvqXy'>^^SݍW9u!xpg79 +-mҘqū9refmzN9@F篓S(HErN E;H #;|4QeYUHQ:8[[zWNגPҒp(vYF4w^\+̛lEeR)f)E-#^^RGyûB\1QFQpɹYO]Xfdb`&&HbT=  bcLwv=WP,;%-u߇!Xˋl;ާKck+VrTQl-uL V^R!T2hDz!ɒ?. .t ^TV"v(T1Æmߢɔ3v|`ŗz{s,GO@/L6k^#v(:Ģm|kh.rT. $UN{xn/\kh;fJEN5hi0nM2'LSC٫L>uZcxϴf";DM{=;wr<;m~K~` '?*JtC%߽:(Ʋn؊+'(l #tUZcA :]<( :u?{v6SBY=qLPY&1N'q=3/p{jo5{Vkk#ʳ1:/O%hr;r\)pN%56˽yڙx{Lcb& 7O_?T5Wius+lyOa4EH7?v (甦^1Ջen%pU]K*)60b(b2Sc81 t/NEY+lDIb$H32SJ)27~>Uw I$=ǒk5-޶DżQ{iW7\!1:4r6`ۭ7b;ͫ14)נ/4e4Md[t*<#23)Y%ݫrS pʨf܊x QUbIGȨ=וGz(/Jh[E;*'naF9ǠC{B-u6bt܊M3džڷ#+KXN{~w1P~^B-3qbre#^ LqRo:EN8aepYmɒ6MClĤ^Rz&h&Npcg4MhE|3ڵv;Hi\ƷommoOm{gTɹW69k^,c,8uV1eؚ!†s0䅭Jbr$5ڲe~\[Ra\4Yf7_9@&H;O:4in:tdlnVp*h)̢,I&SC!rlsy aHAgd;fo-oܵns2 |t1S29.3w?MgZ6EƸWOqtpt1qmSG `RJb2L5xxWE|QyhVi򈉘V?Mkܶ>"^>J{>CcswJ~(MoXZژ|cxt>%%嫎8x=oEe/3 %ҋpd3;eάAhMpK+NRѼR5C|ԤJ3i>3yr1uY`Oi{ڻٶrWK,ymţbBDOK08r"KF 6&#H(lԩ&7}uOM b#&:^k1lw^⧫vDDv){z]3)ZgCn6xKcl4|db"o /fԺa;&շESfdɈt˗I&Mo,v&uVP.s7G~}S\"HzЧW%.Nl&\0cLl =r6_CɌRֶ9.3(&LLHc9vrS39]]Nd,"ԛX6NQZBA5YurQB\#bqmx;DGzwrq]'gSZovub)[Sbmk־,ulϬ^ }@(ko4 뀼[ˎkWmUw152tv66rɗ tR˖~2աZ{=@}4*S%sI~ rJCQ#6SS/^'9!'/q9{&63La'W5"&-5'D3?O?Oo>N;Wvݾ,lϊL8R`Vcf"Lx:gJ*De#ÞU riW*A3)aB&O.+L&i=?~ktUlngnruLl~s Yϊkz[4Ge1sk>:BWSibmNf}j'ӈ拤O̓-;k< M>XTfZLtE|GrDTMWh5o"H;t=p6Z)HYݝQ[E7~yO'*Yrx"ٌT?Wm5ou~)Q便d:218>nѓ&ӕ1SEQUNl11;`C=i-;J1˴Q/춆#/f:=c'Ӣbsp|aMg"/; 9_Y2ZW$SVR, kfnOg3/v6+X;;wz=87t4# 2ڹkLxuzdkziu۵W}OWaidu'3HmY[?re!wu>|dMC&YV,鬶\̶ccoVM݆R^˔Đ;L;Ecg3" f{7[D69mgqũ{b'i/?PquݲESK޶ȳ.${YmX9|/$HQ#5"Ȯ|=%0c(l61۬vG2KvAu1Y:j!b8wn-hr,ebR:b\SOq9eDg})bFJHai Z޶юkyDӼsL1rHtf:k䫵9#6Mlw2c?N|thץqb+@$40e4Ed۫:~NpI'sIM$SvhŢ+zvY5"m6_\-Rm+rID)I2ptZ1h^ݣuNȱ=ec?hs'pVT W8AG$TTiSzgTk`Is/fCcA͚1cǖX?V=?f7< J9bϴ;SjפZ|y)kҙ!ϛ"\c-}C^`UuNeqR]#-ptY]5"(&pAqYx g-DyxgD=.w:p[vZ{Zئ˷WGsJֻL%qNZ-rRscsc;1|ys0;ӈ?(v=]Q elؓfZ ED[3lgΤLJԦhC)% 8aW&ضxWi!'lt,EnGJJqNSnܜ7'Gh4eǹ1~tHPrUrTF4\<4Z|(Ŋ+-oR"k<6O~:Kܜ^TN}qg18?dͽmYv/LRm࿮f,jXf9LD4etĕtΒ6IJ2a,c.p_s[u-^(vO/cCB9h*PMɻw`HɏWW>!;;r9Ool̤M {"aMvۺ["SK˩ +!Y~8m^]4Jwf)E+~&^z%n;O}}e1qg-kͯǏiX ,^:7ϓI9/Ưÿ{>M'> ,c4Wk^;^3^f-۷yxnoὗg_!k3cΕ"[4lb/"|$XǦ k8 (R:Lȫ[aK92iifk$'*U_e=1gK5u \a-yZ9|ՠĮY,RkeN&993̷#X>?y:vY$23]_ygQ8rj*c=mg&{LV{|w>s]q?ox'ɚvi|'8}NJNMls1>ZW%b8o0WN֛_]Zhg:9pђ:NIV(ɫ\ɴoNbiMVg))'6 &fÇβh%ܫܒ':ה< }ze-R352nh |as1Mc㰡d|лmksDIZU).a24r3*ئ ŧ=[u<$!9MB-eNj^okjRv3cǜQ?^9-ܵN4wښZ"]Z٩ڸާ "5tq:GqgNΫ~Q-) FK({r|`=$u%^+ov>VuHDݷk"F-1@d#dc%ݠQzbؿxi9jɉ.. <]& <.duhŠ/TWpq,{O-,;ͣQߴv.o5uԮƟҘrx㧪Պwy~>—[vν4FdTh9va|lld[fq/&ڤSu8pe2lYm]Sndlv7i+*ei%NB:xFͰRhІéY[F)8.K7v>}{jOmbf9,lGc $7!};BQG [()ⴞzmر X<,T_&fNEVS)F(Rt̹61cciZootEk]#~xeඳ_=[{~mw{{S;z6ɋ\Xga+gJGYRQkTͅvuYp&%]ˤF qY+'[W(N2S6W8ǘF7oS&~nБSvL]1n=@.vmOZXl9'%)YG÷e]ucv;R)KGxDq/+HX lHX8͙Ai5)J劉 !!e\ٵi:$e12Z'omi&+k~˛-6[+Ke82ly,uSm.(immڏU~E^~rB}w;R$\K陜HIYS9zFƊDnsj g`ѼqT_4B6𹞇r;1j'2Q#]u\fh4fenX{16U%!Wm➼xXe! "wfGhް+_h'h TgZ"keZeb-#s103hJ4k6rXم[:e334oYgD?ʬ)~^pB\|Vi cWW[9Ze8KbKe׽# oz[$.VXQ V2pj4q]۹%pHo-FJV3w$ݒ5*TE/)Ό>/ڿiMGٗiv[Y'ͣd6MWvLި*f:lC΁leHlg$;#LM战XQ@Hs^SvIj }`-{F-V&$NE:k^;h6(EynErQun+8Y}L[OH.ҕVM=a't®\9u=U 6 V[ŻmDϗ<ì6._ͿcBj_&ަKeǒo90'Yͫ7F՚R:6&W+PH*tj9 01veY7M ꫢi.B,FGooi-j߭';a|nrsR$h H"DI4ˎ 4JLGf\1ܦ8]Tu6;R+H^)HD+a7Lk;ңn[{^ζ- %?!_D8xfQ %$Wz5$0߮vʠrc*T]z TD '9'gL9KEu^B}$"kE3Rl$G]l]~DzqR˱$8ie圵ZŖ4o?sM^-]-.̉;Rb31R=ϴGitܯܦ ڹy,mL֤f㹞.&f–u}af{vdVo]֐6l5[)_h{W'YoE2ۗߪhiӶx{ZkA!(ph [݆&= N>M]G.|~΂ƼdҚzVժ&–rffD#춎ῦdԪëw5'W\V<0ɨ*١T4*mvDER <6Vּ-7DD#&շOy&>WCO?!py?[eϱ->|VM5v4o{NzΗjaͱ2r~;WoZ;?/nbl -0 zC8G&dSҡ)7=Ilr5[c#oV,mKN4q DuY}*&+)yxS%fZ)o7JUʦň;f,g?]1ɴU$KRlV6tQ4JxT_wv{sX#.WkSg'2n^6'ӭsV5-oYyσh,\D֨?>jkK>O5[hsډsU@fn)gIM(2yl.7IRͧbG# {/cFZ5Uͣ*Jn Xxῶ%yQfH{%QLfmg ٘RHneU'nJDʕL)'x ~)ҜRCH5T1;ĒYӕ_ %xS. P[Uet}fnX [y,0vB⾻u%ߘNZu 1xXc☛cv7zZ}ݧlWcq9o`7?k5IzΆǃ~k=L^c M|⶯ S \G+jP.E0Ğ?[m\k:?,КP9;yjui]LZ`ራƎA\6dURH !M ƶ>kɷ˧M~w-qZՋZi3e.[2y&ϑt֋fe]`wolqW'Iz|)垱4UmJPGR%}mx\ch;`:Pv}zԽ)S? xL6:>9NkZާ#cJroWݶ8<1Y:N?!e7$LUpQ+>%̳nmZk))9TcwZل|F m 2щM: dHMaf!'ŗe$teUˬ"J^lӚ鼸K3K$Ň_wQ4mŐb O9DrDK O ݎ◻Cm avڼ{]zIJ;j4STZ:P3lZUEK9I/4b350-rrҼɃ9!US1pr%61\E8-&њ1;LS{'_=x})W6==x6 鯱n^4Ŗkɓ f9kYR2SJf .Z|Pܼߥ@O4ȵۙzTZq}TYyz|k$ԒZ:R18dBY:I&FFcU5--S" #y㵲81~ȆhW85mVQ02RᙖmcM|C]] _])"N:;' K`;3m6Թ/zߓ}+_;No_9}=a mɦglr[CPKfYWY5#Y$4d+ru2i/r`b[&*~:@F iTX ua#QM۾QvQ)F3Mq<䬔>޷SNyO1w1Is|ͱjbեk޶Ó[-7o[OV'G#j`-5Ł>:gWE[sL(Je-EiW8kJɺ6U]o:A|f5T`-+uH ?cR<^6̑cΊo Hr<3 j"ULC.e?sN=U87WQlHy :&- {èwRH$اcvm>v'outy>|]AGc0sڜV-`^Kv8)iV1%<7ֺ0L(܃!ݽ6U] 9^TjX&YUM}q!rwQB®]B)~."%9I9)3a?|A6mU×+(DE3BdlWv81>鏌OO{>38]Ns3]L]L[-_\v,ݺ۷lu;qJR6QTJrqЎjeC.bQ3sX\ Rc)Txjq̚_-X%$3e&&Ql+dz=ڧrAi7豿ƷŶ`U݋0!AҴpxZk#38UeM|w-of~Gz?Wݧz[nݧpϊUf.*a 1t]w97ɺe9+>͡l5Y'̧hގ+&7\'5>i u/7u˴f&e'}T>pHV?1T>pHV?W5lDG(}>r7'I=8+hmꭘ3۶DL"O}zW۹N tO}tF[_e|3l)R-&_vME~._?sH"i&B÷nF-]۴nɩnɷWt:jo_7˗O>'yHIpۃыDWzvw8ӖJ-FZj"VBDÖpEUT:lS9Iv'h+xXخ ;±t}z?'px[y>Niޘi=(_<~uYٻR+\'| ֲOg@?KLmT_5f +3^?tT1U٬g'he-Y2F(zǏb-|0TLǢ!r81M81sߌ;헯%RwF|11t111 {4˒+۾Hxfbi]ѯ+)s%Fug~J{[ϋg4"vtF:%c%-8Ѡ-jun kDlL\섽6=wK\;xSA2Eq[moCl* ł];JF_P瞸=l*!wF)dD-HͽGLmF%6mYe9ij/ !~S'N NNEuũ{KO_{xe{/vGo9v:7Wtecх.8YyKbfXt2:Y9lٿM<ǏilNؽRmszTk`ץ5* ΛŲK% Vw+y f5#uM;K*DcTV~q.ZXdz#qp2ϚKR8p)Y$UTB,i9\]D?56iI^6xmK&b5WI: 'u| 6;VqW}dOko[LvNG٦|]U]Jƞbff6pzՙ_S8eGJh΅XH7Z UsojvYv&.ML~bxpժBwL^w/?SEt*f \pɢwcb͑T7v;ݎwvzدwzjtFN螡᯿n:7s+33K==_b"޷{:=u֜DNf^ c7#g({"uS>[I%pCllgshd}lț]]PANBOhDykL8)0R?s9۴|~t&.˚9OSN+ܙ=g޳#Lt|XY3іezh_.앉 &ID 2b)I G+5pIUɼ63//cmI,{>vD6ڧn-[8tZ/n(2MrIK&Tpw;߷oe-Fo/-""2[[͢""'?ld4|K1ұOZIF3T;a t3xtUrI6)˜;l6ʩ˝dMdIDc%@4ryg1;j 311?qmbŗ_|X3qLY11_[dŭ|h|6/O7M{}_<^zf^7]5xO"{OxL{N-=gϛ|VK2vrx-_+;wGx.AoW sXnΤWsBW:|3g-4q(]zj9.0bw g*f2m)3otsX&5k?Gr tŇ0bŻ+ҔG"!/yPOtmq7pFubEċVˆvIuG9M[z*.?t ri>ֶ5 )ΌNqs-a',JL29_s)P {v״yv=v[Gٝپ?U}b"q/[Dx&^S.sfmd"^"Y{ 5lY)ej"9j͗"*fUcɓJe{ˎɏ&;Z1ޓzZ-[Vbk1 ciVo`\i%O]f;sJeپ3Fr*R13r7D7?]O?Hk=ֳ;Gx(GyGr eG{ 䜹oce.YH-337ͦf{˥?o0ʻh֑2rrSrR332/%;v ;}#"ڊzUrەUpª,P6b#DG6w"ڮ9lDD#-169sJ'Mr;pCV&Qmof$c2kwJle[M*f9MMYeX%'e\܃Yi'jyȿYwݏQSclff+XDD{ݞGŇxgk>|X#nq彩;yvV;y{_|qqnZn /?H{ҋUp]1Y"L&ql|BC+8upU]ebN*|rccrcg9sZjq+WDwh1lOYu/_w6cig\tɒ'c_5o\8b-ڱ=KDcs <|?'}eI_/SsW$s|xM5#&.Ȓbepj`\!:aA&lSӮ!?pTʙ2I%4sd!qg&`*,xf6=f{{>{qa9 bӾ\z[Dk`o\Xf/ݼ\k ִhn8W+;Σ[EuiiCYniTO! NbAxN=IhK-_PQ˂E]oyǔϺ'f{N/pcǚ=lY&ώ)LQiŵ%m1j-x}%-F4 ;7W#"MfGm{@*iIx%nޜ[bS=f}:-[OޛtDtY:Rc`ƗhݼU|[d-:S9m籒}.ܒXLPS_iwMfX3f#n_t#SJ}I[m<[͏ζ,vï.{aM)9"}4 6y9oy6sgk( 4ۢZ=qp!d# 3]tݣɸFOζi*ua^]׷4: S+² dl5Gg pXFSW;8{yGno.]ً ]mZ4Nzfڶ={nbǷ}ZƽM/րV;'iP&md;kQIKZ +I7z|HeoG%*iKzu>qRߩWByD?hdk&k*Y  Qd?0 6c,QYh1=;wg&;]+Md5vczcN]LVrD[:$Q2-yU6RW(ìTO9U?sr8?L˄FiNХKc*Ny7+qfk|bS8xejǿc>L~ezk-;\钖ےzOnV5LW>A 3efn29pP08|\$GTfTE٦N/$+$L4Sn363=D}s>Si9h֦ϳզ=e2f0LCerD R)4~=&&-LD=\1 lj9˃&U>)S~rׄ˭jNJ}wy=ÉK~$&l6e1ro8Xc_+:eR;V~gwx;OϿH3|6>?Ƀ.-j5<ǥXf3kLmWhնvݲd]eMf9 ?Տά]$fd-)Zoa@ưMU[fzܬw&3$7I4r΢JSK;7E&;ʱǟn:x}k_6/\[Z}ᵽ\+3i nFxUL'pU o,)T;99Jsԯmj&99Y>Հ $tp!y[ij=&UPzXI ,l2tm6*½yq/%T2vH$)kHC3i5ɓ^ՏG?Z/KF8+>;e]irSnkVtbұZR3_$5\4"ymےb<@_X0~&78F ,(whb*))O9iLq1hɒ&|'Ov?ƞOmmp9(\lvE91՞g[;ǧUvHsɄ#MM=aѣWoЍbroݝAȹk^,qkZmk^ַnk{|7Rdqh|Ng|zQxH-+dv6WLKN~*XMl=[b!8W霛t]PmPT[8kgECaka@I8-SZ.‡#dѦKɒf}7I69jp_Nt*""ٲv[&|ɗ%mkOrd߇W)rNjK~=㽕tݓ;eܮr& r&6;͌|b+OW  u^ntj|EHdn!۷0pUEUoQ0lb WS:bmh3b^;v̈́+s^F|~N 7\~M7Ã?![cIٶJl&qbW{m1hOTSqqS,Umf5ehQ'ŷ%]jRy*=a՛-"V)3߷~b<#Gy{s|nsv1bűmbKǯL㵯96/kZm.KL*bR7n;jkiY{-CVڄdܷ#La^hZ&\rdG唥ƫDDLDDϾbSoZ0(դE]8$;x#\!dPLT>yr?~׋nU2]:r.9]uNuUTQCsyff+XDDzV}x0nmlկ[}ٱӴG9Jv9ԧ+ܸh1Ӑ2"1u8o 9h6]dLE E~sz_%mK֥zoKfh11jDx3[ouyk]ң`ZAHȧoGcq.^# NLkz|h: "$DǓ9bl/WjD d*E#ccmXVmXxE>1(NyX8v^!Sc&Nڦ9bLl}{0 @""' [̋(ƅ:IԄlU:HeܬX:&rlCɱc04m og]/)QW I5E&aII+ꥤس/f3(S@*JfլZՉDϺzy׷)OQLty>KŊgOӚ[\1)jHߵb'.Y*/¾ޚvs܎Q{b^GȪҶ)UJ.FF-%K'_x3{OR3QLH[dM2v Z^^o:\{OiJ׺KgQMZ;i lcC²u""XKǧ2(S,X͒otxOߴw~m}|-o\)k7ܼKaJJS$EZ+5i) J<A{Ce'iRvRflV]A`!WǰlS2$ r'Mf_gG~ݾ?K~[^W%JR}֔Lִ∭k3kLDDfS l΍|7Yֻas7{fZs1}uܔ,`I,՛'̽)ݹC]q^uz?jFzrBwG_\!%,)KhN3p$_T*Ehw(;֙m=b3tGo~>]ݪ[kC|nGb3g|,i`˵Xr^1F<mbKs(KSI(trPT&NC\z|9- W:+ԲqؗAiնqmEӏo%gy6)p#NW*!Vp2ąipZt 6]zbroø#fM/XY #$"&}::M(׹<(*UؖUE:jsyQ^0,y{Vն?)DDLD^=0z+N6?2ϣg.\YW\zǞjbh3f"h GQs.7"5vՁ_|va65 @l#O[Yݩ5vIb`ʧ]^roԴ ] Z@F5eڪ(%-ktI;39w,Wg2TNU|X#&#OyJcn^kN9Ǜfܔˇ&smJkW;Mc0G5=0^F!rziJn ϳaIg xR"؍UfoڵwXøwVLIGh#Cӝ9uW+F}նKMkleLJkv{S:_-KB Lȶ]%`NLf^Ƞ|)$-I%M3\#̢Y)9^$JNժgX+5!iD|gkwsszÈ{AlX}nJ_ɓ&\ŋ/%)Kxkkv,5o:Cd}SZǒaT¹.`peml^رc+K2} $lAUTy(Nl9i:4"թ䒅IJ+Hy^Y&m]:hy7b˿{LtNy~8pZmٝYo>< 2ޘ[&9_&cޱ ;6\T 6]x)EfG2SN"> zQ()rn'vT' @%):rDRV_|TI"'.3 /U7y1LS>^pRxoh) o"fkԝe[O_?#6c.?Jc\Z?DG{ׇm_bX!Kq.~`ŮUJ7Lx2^QL)p [U/9IHJs.2cUaDiψrogCGmAW-sXi TSulkiF6 -heI7M9cK4bT_S[SW^{vw|LGϿotDGhG=)1n 2N[K]>'Ol_>-z_>YxdBztm{qtⷖNҏXecpe9hVacPv_8HV]?lECZ^]4mYMLbBRY=b&jFOΉEısZZ1xf3=&}>S۷a;?h񛼧P{z.6#m|8oKؚ|/11? Sɣ~TE{: :?Z죊>$}zl,=_)밿xy?8꼭GM#`Vk8f[eG?clVe($r:'LΗ:ևV#PB)'Q|4̳:&1gy7LIa~@jڕm=hko g}Kk[׍4r)\6tuo=8ͭ<{#(kOi 펓3W fu Gi7$S]a4YLKZʼnL %qqo+n!-K>oaKFpE"*nMV`OjKI&Wq%;rb3Z-Jxv~13=c=A[]U~r:}7nɯf|80=1f{DN T˒xVp }3Y6xĺ)ɛ عe=v{#"deI?ĽkyTK%'0sף=ĂIB=:Lf-0Z6}Js%8e 5̜|d39ۮ;Z2cXϼ] 7K[ﱽ8_Sl^LlYÒ1Y܈+nu4}E~ԕ٘?Oa W&&,Y[A.K0lfƿ0~t\m˝oSNgggmHǸ]tدdɛ>9x%H0{!no=u\Ekh1۷iG诗's[s{:qmp؜i8Wk&Hi6Jv=aym9?iA5OSVe[:,lh=FUGdcضg&hE±ɯbt,xw=JFzhYw5eu%]pW,e"6A{ {.+>*E~l߿]˴{XosSsr7tkL8VLJ*R{ZDe[Yp<6 od7u,$6fqY;r˚2dI匫<'RI~kj}Iclu.j%ds66jTmJa^Y$W GHNALf<|N%u:»F#[vdcl$$qυD"FHEpc4x咱g˷idW;'Ggӛ٦Ɏ}'k,V_ 6 Ei:[E#6 Jó9Rc[jҧ"T ͊I7I!rRNN:O#Yᄛ #ܹfSɂ@N@u\ݤlvcXuD5pg q^b hF:xʄs!Us\ɼg?Q-c[#STUK :f<9CltGHU 6HGr g\18+zM&<b~]aK6xy>3'ɇgJa|z3U1o1cz7cdA`(4O&V9gíX^(Qr|:V=*oDvsc>f;$O^LMf&'|LLOvgv0Adͫ8&|-s3kZ3>L+uX܎~rb"=UQ^*D:zJBhjjʟ8.3$u7!c8)sQ{QCw?>Qk.?;q4s7nOȨ! ]W>#H??s?7zyjtoK}l5_OjY4݌--Q}8Ʃ+LHr}N%^Իwc܉5ʧuvf|zsl5ˋcW Njh~'!X-]#v 䬴D,?xԘ;q$fax[Zi{F_LV916o2U259YNfL!+,gqn%XHen4Q?. oYK NcV)&fdd ]Uʄ)3*&H@w8]Cxk_QIVݔw.f+HD^IVPslUXnÆd W*!/ R6͏/b#nLxΏӼGI^N_7oz?&~7>I<=u?`+dbkC1B8#44}lќ~wa,E1\(YCWFM4_X݋rd6\4j0y?'wWʖةEOH~gLj{&hQA^/wbBקԷZLYN-j^=֭&a|9ũ8gjx+*CkEU3HAHX l3fθ]"(V࠾ds2Uge:8Hc3tLL"&s1pѿ[ߜnG嵫?LGx|磙z(6pZOky|O}2aN)X8vk2jO1))3bͺ} ;P-yXt*۴Z-"feG3{2TfEg>cR?h?eT'$djd0SĬ*C<y[1Nuןx ,ʧ﯄nNi}Dd$|&38E_IJ;>^@`Q$Q8k0%oF[ՖoN-?6$M,ح}muDyw!4/)蓧sj9_⸞:Mح9R3_c%OzW1ŲJ@,GAY;=uI&mAڷEӢd%+MJiDZ0FQҸbGe41$;I tXP^qcf\vMcTM ̹U9Jy*Ff^ymĢ!龜(ZnqK(R-fԦ)lX׎*a8n6|%-xkGrww>vgO OC=E~K)kw1O9⧨[%k^':ECoMUbu#.rYMOJPE7 MוpE"Q<Xr|ZP~c:ʭ43F)Q3 ɲr',e͛0EEñlrdv֬͢O{DD;wX~}toV=;um<ɓlrϛ.F}خ]^pSQc^COMm/}Tߘ:%l;+eiqtaQplb홴M42y]umѿ}魥϶}u}?kD{VOi|\-}+\+/|{F8N??L|n]~WOZbσ,Œb afiz"ا#%w"zre7j~ЮJKL1K9_=IMf'De˥cac=S`S.S*:cSQ՚n1rqBYŏTvVE0R`6Y4k[~65iffOVA;-`\B)s2k * gzu7mGrvh;΢N%$l_U6YJŁ\8jFOr#k,]q=";=1ߴNj;tUz1زlsσS)ˋ.k ھ,~?nl1K&BdGI_)UQ?Y_1#cƑI"pc& mO$îfM~ԕ)ϘV4DEJ~4tq#4q+^= GʽXqXDNY2tU\\fl\8bIXkB9lh$\>M 5XrQ^inyϋDv߼v]3_'oP枏s;qhMqJ]f֜yi[['+YuS'zܤWE8J=="مbA#dk9fѧdB%Vs{+{Ta-.J1; > b^Y\ccdYXLZf؜Zٜe-=ͫ蛳۷fw__.m FәGõe#=llc8縉0VkI>)>/&}m-,Ull^&oH۴dw_ Dx;FaH Qum#]8k{ HҰKA-N$h&JR\f%1b1C`9s.{bJb38;@0m>;x1=#ە\6.K_^NZgbpVm;{1|18 {;gxn;n|>Zv: ejvqXo{*!g 2fVR#dǿL@ΜDɶMټ`I!fnPmnޥCUƧօ2n2%mbTf_\A-\i$ޖD1;wGyfҏ5<.|ٱƽgJv;dŎJLy;۶*LŁ@w\RwM~{ bߪT,C9σ9H9.֠ane+kӾ˚1J3.2ɒz9|v$js_4Mwbf<17XNK^S8p1-dܯmɯzvW\.gXvWV6oqf.MxM)qwp.̓ge.ާxI]rpc5~weZ'k.+#uL8CXn\- .Lg$O(Ե|u: Lt{4ծs1~IelE?d٤rm-)17/L]z|쾲D=nsuC|7)z>?dεvM+L|L1ś&kÆkVG Mj |o'E#&i9*ZʖLl9?~'xi][ݳLgu y)O⡛IC Q^ӬJ3Ôҏ~wN :h%톗ff+{b|Ǿ#xnGu+vNÏWc˹|[m{[zfj_Z1q[JZZwzZCo?W=&OWSJY={%..b3|ݤP1 J4jh$U%jf7ct - 6Z5ۥhטV瘕 W`!rzܾ`V\*f(IGԑTm|v\6"+3?:&#LO}y+뾠㺧s2{#X˛W&6ZZ;ս)3FjE&=dʛ:yIiw˾UVQ^QL筄$?X.k񓔺PtFb|gfzUAϨ+\kp^*. 4ͼXDLxg} GnW>_k9ϛͷWïxN|j{e: Ƌ}w_r;|*t۪my_H+ ԇlIdϤf+hwM#wT\Em1M ͮ"%kAÄ38WJJxM LɓKMb&;OOx>nW{4=CKc˳fxl3|[xp|[ꪖK]=6 M֭7h-B֕K%!tϗ>˓8^͋%2x݊ke˖il5o+dCv.U V rAf&l<=(9l&xU##T̮{Ŕ:q~8ǃ=ڐ^{.`ϵ,xhVޖ"-r-gJl& e+mb"gOYk鏥pm\&So}[Y60bάΝm/LN|[&k1 ^r]y `JAǬf❢6EgE'"庥 -OžfRQlغx,V^Y5䋐t[I H'yh+u6 y"=ζ~=ǟbcΏ{vs2 ֻ~;gڊxɎ1dJEˇ.;mjZmfq{ǣ~][Wq3#Q1y&D%]臞/EF eƪ ,u5TǙ棘-CLRy:pffʫr8"4:D¤Br 䖮vZ5%hH9U)|ej޵w//2ʸY1Q5$Dٱy<֟={yv1m}!zY<=|::^3.1am|i3N f1z_flWm[|M\z!ɕ6t:;X}`;xp+*ʾ ܮu *mbTiַtN-6ITv`1{67>Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯe8w=_?~/ȫ C9m/y?ͯe~w|~E^Zq{kx|9m/o''* g{_q{kx{~v_!=~/<_Ws;|^ g{_7 ?<s;|^߯ݟ?gwO__OUA6<i;Bz_x"-8w>A6ogOWxhy?ͯeជski?ogOWxhr[g&"xw\lZCEśM41Qs+T®Uv-Ն׽* 6ucr #Ǎʨ7 (l.('d soSs2)Zצ)MNԭF}2ys#&xR|%E{:jÓ&+t\/wI3)8~p\;n@p^9FhUb6lR흴|PS&rr&[ 2魕WK~Z@_蚭uwh]m!q;-&˜J.9ln65pwI~Wbkm9=ڬ ʕ׫zwHȻ: & X$YƺxijVDv1ԣGEG7Q훤\sd>_]>}=^IZŚIZ+bE"R$fa#ab'; Z`8A7Dk0Q|Iȹ<|TtU3*r+7s'GnTUvkCPm\7pcSɠ|hF1O1MWqȾA 1L^ɼmWI6,"wrv͐ME]S4!9R8(eѦb/ ȨjK\)ۚVK9b 䤎)gIiX|JQ?Hq[g+))EUk+z1b=ɷt̛7Ar?rde|ݷ8nܞ>%dlB%euKWo:e3gya^ sն٥~Qѵ ObҊ9X5vslRru`tS"/ 0]i]M1i^aHxQFnthF=(<`B@5.kFDknl :n)bC$eV|xτ#J{m-꪿OD %~SroG4pAj͋&çnܬb"ݳdQeTM$ubniح ǮBr*F=uJv法uy)#YRZV6+lnVFvJnǩUmE9wrm9A ³xEl\zie#I;l^EdY$n :]͛u8pAR.N*I&LdP)H\d1ߪ?g5>*MrT:AI$PUB#H[UgE.HW("Jl&)VL`>,7vs:|U;#e  B}ߑ(ө0r|eu\ݚP͟-,:dU9޽^=J_]>rf;jlHG[>ίCMZd9Ut!,c;ꦛI:" c: MƐYtr;[a$Օ]W _X󹪪ɳ\ u5j/e#'%Bc.&"ѲqroSEbd%^0U_}Be52L'D %6c𿓛ʾ`X.G2uӫvhD?61 d-L\F;%ۂDFqIY=Uevʢ+,*f,xLٮa6 [~Z TkUn 1q7!*ǘMG .uP9͜W1O"zxrݹSŖ1LJ1yy>"g 1(ܾ,xH 3_)WQڴ~ 35$D,,ybawcלQGLUZI=*ȩF! s 4v6BtH' uCM%t~&#{IM/NEmF<C[gd3;Jj zw˭m] a9&NVit"H69_;4vzAsV!GzL=Y\omITvF,bbige]4c4He8K[֐I^TutuM}Lv2r.~^3&O8|we[ҮO"i;'nxO8Q uq'yelsfX}~sNۻs'jj}'$(0OgҍL_ II(uN*">eT'aXͣ)}V^,*9Iq:UA՚xQ>։(pJR(hЛ6)eUL{l7h\&cww9g$ %4miCK5f28D"DGKK.D,q5+9D3Nc+-j#:ֻrAhfoYD!>udĴ*Fve9Icw:s[di6SA) hDZ3MxuVn>;X,jIʶXSts_q\lL5)z]YDmqE;y!ESk`Nk'"]9o:%~.!; ),LLr=YUeޙĢ2RlJ0Z)V2]/i xsLأ5 Ȋ)ǐnle#'JؐH,yduzp@5YkI;TeL*IV"ZD;7ܦ4E@^wp^zyeG $U4򪉤_ʜ1?sc!y>)}9'"tVjLn^Z&'Ka(NViH)\Ů2:B4UDXm g+Qͳįab9"2#=)%HxSq/ߛ3fpʧSܚss{~ϨS+3J~َV^rܨ;xHiHWBIjuXƨdxh1fOL괐'Abg#26>5#dGh3gLFnCgbz4,s9oU91L~R*#XW[ʆlǶkDV!_8iM֘J>S.x,U~fcVQ)ݙ2=;f.pqMXyZUvܕ\ՔnURi- Xv00I嶏nF&>Jxʫ*c:먢qÁdže;a$> |Z5DHYa-9™C%J?:Sǰ/R8,"6HȲaMbͱnћF馃f&("H! \N`=SA9{g831ߜ1].Vrf|]^kkrzb*!JWE"ng ݢY k &IdΒL5 92S9.s)Kg _.jlft#Ͱ3EDO1OoJXFc fd1ܙc`z;Ϥɂ,Z5_X"Spc+S5pj&9Q5uL+]R?P>= ֋ g]b6CX!CYg-wv;t zV1[_:CNBTga?upt*ͤteQ! r0 rqM G .|&C(sQkcƸO_#woX5q:S* ;s+t `ʅɽV:řz6,sd5U$CW8&0AlŏC ƽ# Mt?:ɜܬsg#bYlglcUUEmD 1LfVj&Zw!`li5Vho-8xSŊ[9PhuZ^rs%փԺ~+7QY$ХQFd3xͲ[$޶p 23*,T-ոKw;tq_\p*%׊LIw/eM`ŀqoP6M6?Ԣs}[% M4Ɖ3|fː##_E) %׊{/zOlIUn0+:wO!{'>Go3>@(.Zr]M{bM2 Yvm`)+-B."ar^\˖%Qh}J`զ7_Jz26Y(zFŢ᫰\RIYJ0.3Ms_ݡhVzQVIꅅ$500FzO 'f7[$]U]k__3M Z:-frݝk ȵ@]ʩ1DQSɱ#`L.N:n9<>rG ?`4]1~*xI8l%Y2(CǒRrpqftՊfFRVRF<>66=k;|j͛TUp©gT.w`[n֪% z^8WkG*ͳb61o'ˤc/%VQͯZG-eʆu-NIFMt֖D*UR;K3̑vIѓYl]|6}u/!I2OcMK5,F63[a)Wn8SIBZDR ?vYg|nͨ:_uڋ:m҄b&9'DeSTh5Fƹj6Pu5Vjz cӏYbGbmՠ&*B?+#╘q*:9ל ZTҫm ]W,I򳆁o1߄5E/v<^#!ۏG궼qSJfO,Zsaʡf:U#׍# [n t;{5yPNOm~qrس]IE$$e1C4BAiN6l"R zNcbU!z_u] Ɓ: skõ:[@5 ]!CD2Zy'1&؍Ď9Q;GK o 5"jR)6%qw=2 )٠u=y%)Z{s KaYJů+lD2IoiGƽE&$Tyab,lF8oyOo%iRV jZTϛU|i]&dr*ɠVV^^^MD3T6q/!r)23^$us9aM R+ k[x cYhWʒq~'SrSqzKTde*kwL7lK Ze&6M˸,uJS+Jr>XsZ>Xv T,V-I4#W33Lz&pK<ٛ#Pi+ݽh.^=ZaӅmfVEeiZ ^8H"&2dɃy߻h}Aټ}Քmk8~Je&fi̿l䙷4SfV]{w%fꨳW+wvMBOSf59E;p=)hz98~)ghzi+S NNt{s+bVJGXDQ ۻQF82K81qBڼ]^~uj9ݡ'q2+JYh< 8xE.3bW` ˭U}ç,:@qRkڅvV2xc)tcJ* ߕݦ3GUE~nrUdThؘ?|)sS$!9WoNU~^e;iBF"QY+X9n̒)4 /-cv^Qev]>NVFziÖ"l+WU$_`\|%@gwW.wW#6HlGZʹP5(7EF$ȨRn9q#V+=ro++g%V"I7d̚Iė;ת)NuS.2|Jp|_u\+wώvZPM-1^*]hpE#`;kD$9TUҖ\Ѥ5޻o5hWePS/ʼn xيQgՅ"nwrl:ý>8Q3|}OẀ[A'-EeUpR,ɛ:Jc& !\Gowm{{ b:P\J&ȭ&R1=]1| SppEHrB]2uNj7|k$݆|Y륝*s#,c9ɍ&s#3J61TEު!6;8oɴq>gvp?ء-~tjR,Gɲ9Hqʍ|8Nj=B42}Ok5m~;r>VqWn%E#(w 9\!ˎ^Ō٨YUyU 79U4R$ 3c$Qy_h)˟?> Ͻ M_Y xNYn\Y0$DQ}D9`Q+G[84I ⽚;aޙRv47īlyxK+1ʣ! 9 hG͗2 Kځڑ93k ',|y+EcN\g?v]gɳF9}}AxRb.HYRW+/;v+{1<>/~1}h_:~1?Uէg6~gc.mͳ͋sq=m]whM" ?~mQn5]:]EF"2l$L9W͏8<_3YVWtSq`IMxہ6e9彧ԤM+}F.0aud|e<6Ѷ}ٞ}n$=3<*Q2Yh'S-eղQO)/~3x|YWn޿:\:к{]H4jywctqzftgpf]gkDzD#_$\2apGai П{$` $:xqsîu\GRk;ҎnK`RWjc *Ugs᪱>KIW̑Aĺװ:wT @pߤ %;Rup[jD,*AZ0k7qY E<\. :cy4VՑz~ޫ: A:RKEbJdSgM9$3v O>U$u1Ǿhr[2 7oV+jil6^DRm^.٦,:BVZUAFJPCQGjmZbJcl}rJ9Fc-.\>{hʎT#6;f;M"nĩ;)H{S.ׯ-Nq;SMqK-l}ZzY߀?9#qXܮVT݋.jNv %Q7n[s-AM]g{.62@]m:;6kYscˇcU|tB)0P" ٝ08e~v cj5׏KҙLAB^>/VEL/>41Ost|:yoYWd-hj{Kl;KzX=zBeUVI0L5M ~kTf# "..!4{@6-)5D`H5<N[ܴ޻k>FDBmo'PO#pyw,,c9UEUPǗgmă7aZ"+$j3Yv.]1YbhVԸQcd6uYҐ/40?,e]$d[wZ^b!rv:JBT,83}[{Uڢcu)eV hr^bjI"wV\u^NB]H%W$$?:果ǺuklE7*bf\&[AjW*6GOB:;^NãEJjS۞ĬX"۽4Kj|fV=9v:]ʳ.xWvMP"Voi?7+-rCם:Tf-k%yGhy`W1FC%%,%g"R+do}Vz.س;]8[7۶+خ׉R&ȼ\Ha,LI y6ik㦉6CEU*b TRuHb{$VdII$ IȦ^ }zzN`zXfkEgpo ͵,PrM#%FBA˲)tQuNp<㞒ܜJn n`f숊$r9 V#0͹a=h7Egܕ'pI \|~ކ0jg-uz/(:mJ].&Un+)dYF-bKǴp)Wmu9*A,(57'R[P%97q-'`} HtK!.4"=Co:,tوhw:+ݹ#_=,DpЋSgj-cHxBH)D%fo=a]?K>S,gN Avv:ݩMvb UmfMfr̢іX,׫e^LZvYi1%^b:.5\l( 2!}FZMj wvU򅊲֟LǖJ!h]hfbt# )d~H,J=VMf$I~!NGwu*t 7[ZtS!1/?"T}dNAV:jLZ-3c+)(^6MU6#Pz^El~.u=/ {+^VxYC>c'^:A2sK+%k#˰ wpȪ2}>q75]TvEAJci8-V }иJx!v3`تM)=o-/ q@S]DX[xAK o&"{vbjoe}XU')$u n{XQ!I:s:m]2*p|ε=J- 5cli7&?ؤhҳǾ"V" 3ǎ@~TiȍkivjKMT25瘒pR;A43 7!^3Y2'hϠyS;knjsE ׭ jHeRVi*1_Ue$V:b'm%JGXB@(~9c-'qƂH0F+N@[ȹE}y}EMsд_`}#W,cpQEkghܥ紫wΠݕ_]a,kW/A,ϖŽzZ9)V°S)/NURcYgd{čt݁šrJnDZJYr=D<ܺv8O^Iә| 3.:U38rOطJ+X+۶cN0A%@/*7zZ9=Vxȭ,fF:aznvmZ5mFȻj #޳lv%rHɦSP\ ֟'݇_qPjGebI%Y+][ _a+fηsKuvEJ@7^Y 6zFC;ۥV΃3RrZWwO]mz˧&ev}&=.֬1+2)Uv%Dz9>9%F^'d9yjMh߃w~=Jwoo/݆ރϬXbߕ'%99H]; Eq{v;~g>BJ֔~V3K8d,鸧;E}] 5ozW_ҳoeO]$?ndHRzF%VoVr>K}!dyL'\5ₗS$.ב6zK7/b+X숻)mh덇"l՞+"1%_3dF2N9/cc G,1x7veRp ((ER9r!sAeUW9;&u. V2 c\p&5[#Ԗi uk',&P$`}bPܬ0oViV\s2͆aU(Qg MI hfk¤ *kuVF/ĮqTIaj*oV.(޿ pnA5Fd5XV>F1Y-3\v{֯udDHhSc.v,H&HJM Y,.HY(Y($iqe.)l$zAzu!],8>NRj-b[>(ݐ[k09xMAIEm}1 sɨL v֩.zw[:+]ӥ3iw^׵-7 Y ]N+]U8szkĞxe_W^.=65Kx N定r:n;Pnx|d TΛmh9WdBXu0ق vQVHX Ұsl&YEJ4IsUk1% l|Y#zVqO jHjmK^xcY%;&[euZ'e:˷<ݲ!2*ۓGRL+T&6LN<_Z6IK OlF)ͿjSˣa hm} =ïepxjEo}:q<6Ƥ}uK5J5J 76ZnYm˼!Jh[ k`^HvK@ؖφJ=wdŚm-^>.kPRDj_Ll;l2j$ r~|k:K7ΊtnLi״KgBGWjS`kUN5a\ޚ'A=8kH.w-m{_9P-/eNUd.5UlϤ5Cήd^Ȱ}3+*0<>G6(w G3OdWUQ"=,+5Pw3*I#(a=2'v\~"=K{{^89 ?z0p{LciLW~'j"fv/:sԧK<[eє&8׋S"HRkas"ΜrO i(_k vu'[hU8]BS+q5?UQ|LuF}핔&ǹ4ۈ.~}+?u ~,ؚO5fkZ.6"Ar rLO[8/!Hl⢚jZ 6wק!46S@%2N[u?OeEEfuf"['Uɳ`62o\KxT 8}o|~>WK.%޼Ѵ-njc5upV%T:{;l:!U2ܺrĄcW]"&N`}Oֱ;3(Mq)l ڎ 1(ֹ6w>:+U#'MDrqasoyŞcfEEqn:p7agn&2 AtsPM'厲|ȔOMXrb[VXp-a&Hݫu?Q#?()z/f15Z~Vq2E5sWOvv`xNrOi1s[ | \+A{2ɘ=D/.$E_SZd=ҹop)-Q3xǪj78QaP]6&LkL fjq7mt.)&nJl$Q3{1zԋ8c8vs?71$k6w:w n.82TY*-.uV,xۑr0(jd>~nT/;Þp?Oڇ?v;Lq_NٷP~DÎE/!$uou7t*Kw?o 62U`6Y *1E +sR T\\]pr*ZqTXH޹ԚUr[6SIyH2էo6$aT1)CϰWOʽ/#ήdiq{l[u[Jm}o|F:5JR`7h̑lt{B)U_SS۱Nj uFسNZ8@ =tϰYbݩѸtDxbeSsm(;.tqBV<!Whpblma#0~Fg 6Wqqc1cv1c1Ō?\ƟFvϧёUJ=xK%KGG&VmJbbdy%.)UgK*n9*b11M?:CE{_H98+ȷ-5os֊n\,Ĺon6_M X'u՞f"5lGHBՒ:+ʮTB4,Nfwpk(.P &ݔkXhȢѹO߱bRQH֎_ȿr6,DznգV騻+("T!Lly^^N3~&iv-5ҟ5*Tb/wf~ʴu#GtQ*:s ?#B-t-;~5kMcVQzCYa[aH̳/:xIHrۇ S߷ ?#B\x@4o{YEBmI8Cv~q!j+5?N.!].3UzG,Bz.'35/"5a(-"ʜ&sB9ۥpWerxgTTٹA R.C]US_ ߢl,) S .=:?to߮Qx*ߖŽu4u*Vڃ㲯LWd|Z  fɱXd/%X^ϷYʇRunἡ˓3-X^@Y̊e\qM-zw;Qe!l]Q 5ZfIWX0B21xыȠ3(TT*sOږP1_u#1zER+f* eH-+>S& ojU0DؗN'D pX/:uu pD,Ar>ؐv铻Tat%)gθsCc-]Vhe`;v w!L|GAѡd>"o v*z_PM&zC޵hF~uE/i,Ulշ yN% |tꝦx_ j#IYn۶=%4«&3~M|29D銴Ɗc+Y̽bəwQמci~rmWhUj fãSąf%Gw,3x0&::pnVrS{I.H*UDjtO>n$G<\Bn=jBT`u=dli(ވmVo_F}m_<H(]S3cE! +DXgU"3Ņ)\r)jSmʰ$_OX+_=d:[f2$khx~յFbyÎZT>X$9io C+ k\ldZ"rI2.'e)t6si=+ivf#"#edch;쐖x\S{Z;UkR[+~\4SRvW}ݮvE|Zy;CjY7rjH/p9)ȖgvVy#XlW ;`8Ϟ\I2x3\.kٓ}E\uH26[-‹s>o'(3b#&FrֿtR7f֚Z-W^1WXkww~&DfiHk *Ou)({~IXWG| :ogHcu%C]5]bbų1cC)8IT|3k|?Cgq꯾nXjӧ@X4:X3ɿ,%bAjyu~|qr不-xGg[hqI.h7z\"F7eE8!p_;\kk^^D5dfzv*JF] -NGK H`]R/=գ\uch`Xmhlev͖2,:{b{a ;o((&6퉭l f,N騧!!ZmԜ0+4#*ɾr)?//:"z۝=9Zβvյȭ;b%N̵֊ #M:1.Ia&F}|ŠʒO eknB۩wLQt,r WGϞ#88~~z[}=i1AX[ zVVնzձ(كk7FFLG[RQsG,yjw&;s3$hI.|jѮ:qco,6D462fVl^],5Ҷ?}v]`JcsWh+O5iצ#G P;7۸~^tE_*;zredkZwf?"J*kfFtb\:M760~,:{b{a ;o((&6퉭l f,N騧!!ZmԜ0+4#*ɾr)%pP;6}/=C8Q]R[c`MSP[u=2*;Aj`hdg ?afb31&о[,NƒI:C!\cɌc`>ns ]6#Np߅je lNVig>3W̓]B%HU& T֚Ѡ %\C|Klr ֗5e_~SR7+Rbɛu2l!^|DmRԹ+[RjcڠYv-K$.]'-!.uNՙ"|3`$.qtD:':wk]RRdASU&@2I5e,NI sϾoT+[Tu4vtmFWR3y&'Vv>֩L6>LGqJ[1}V& E~8YeL^avMuVdo{Wֺɭ3=dNMw 5ťT X ]z^+e1:Ι[s]qH`ZPetӘG`;F(5J"JD{l a|ͿN ~NJu|([łeٿklTnl5j ǽA'Q뾍X& +o5vw=3ūsW2F€ymY\-5JCw:EUs'IxqH:&¼ M=Z* Vr"s\YB9\xo'8FW{Z;wXjNR#5UkZyM&oU):>WrVTWM<#n_V:q\1]|һwUrX+#RYRk { j:mzI&Nmv:=Jz%_bu} +Z A)2 [nrDT-zzGjkFqʶmOWzcj5zf؊=Y^];x=u[zwV:z$]hRD7mKzݜZZZ7J%w;k}oeiSHKR`[aDHmR*e2ngC5u}BEb6ZVcDıA$l9MT/r(:&DגU٬Wծ潮PUU4RCE{U?\tu%t/oJ~--Wy dJ*T=Ly.e/0yu_O<v]ӤcM)*krunl"v4͟<~ OR Bqo93!|pW w{%C*az߂crƥ[RխOP2cMG/ZjPN&%xx(9$ٱV.;ai$GԐA4EQiE"4I8}DM2c"d&0RJ\`1`v|5 YtvzZ&[6#[a76K˹5iٲw22.*X]ҪzH֑ .56s;B#ڛ+)6 w g-MVҗ*޶len$^Awa׿ Ta/&QiFnX`x `ɮuTEtT)G1 J?4,־0Mqg{!c}4ərR] &U̍I&2gyac<m۫IwXkz =^1Xo#NVj;ʎI-8NL l'+Up9oAo^ޗ7yӯy'bZ'Qt :&RN@V;:,](xQN+rOkVxe#Fk/_@'Umhu *$zm|L+URޯdg=eVRlG][qlԪ~XQ)TʙrL):YGk 5r<_Pi5 !kU1,PI*dSh"[ҬvABYRJe"-9OSexDE˲rt)|]z:×9tq8wJJ܃[j[Hd,g/_9=C83SԵdk2}cyLw%](^P x4.܇VԵkf AcÖjɡg^J&Ey6lUZI!$M4QGZE$QHM$N`4L .0R)qc!ݟ gB]*އVb6MHM͒vrbfvľJt5|C,7`ͼWzwf{DΨBSF-QK*(ce((W"?Ԅ0_996[>Audݲ٦l9TjW_xyi2 {Ǎ5g_0=0u_Smǽ1DYhtGXڪ֦nZSؑ,Iӛ>N]l̺uwk-pm^#q@Z*RK`\kKzYVec}xH7x3I$ȡ:3W[jZnD$"BǷpeTx"m~4|XZ.m6E:~`uɎ,8~ֻsKn eg!3OA#^@bPel"::2e3Oۚ}vȋƴٵh.03mxJu L|\{\x..{'/c7n.ng%˝F;]Cx-Wu`D/cW6*7_~wuǞiE)x#sϔKqNK ȮA;#l։%R /e!;i[#N>rv❪Ʊ. h6x$C(]nw`;b]Zkv!<; 3' s-!>P<;]ڷ^[n6EL͵qqRn-kհ3\2AV{ zS;FO=Q@wZ*kv+lg<2{[_3'-!P1v]zw/ rNrpnd1ŭ_oN9`m4%Fr:KJr=9 쑭2$0eQ)!KZQ& lD",n1ܼlk9Xܳ7Lw|]LʮDnb)%l x"A0bh#d;&TW%eEP.JB`ʥ?7;'3- 6"9|l6fŚK:rSwa4QH)s|~<ᕁLqK^(| K{]D R2v;̶Nl|yS_+YڇXME(:MUHo1LW ox 1JՆ>'Trի=s~)Hש :.ZE%TMB1 0[p՛J~7RKƶYk-Tg'- 壦꜆)o 5MBpCi;Jgkt<^h"v<*!"&R6Ciݑ\SRU1*Ou:+_9QYQY/k"VQ2?H_ ||E9ZtP}ݗG&&oi(Q =ǟ.>^VlTt4unY R}=^q5 (bґܱzR' U% 8.6'dB髷Uft_qTKi{\a5ѡNZ*̼Oi^U ̭y>0e{ai]M]9˔.1xװ e+جhUٮnE8}gNH0>>G!{?>9yh%}ޓY~#X|(V/fwh.Kq'1ՈUiޥ%#iOe~F6(Iva`񒒮$9wozvmr P쭽y wM۴ӣ+ŴOؙS5n f%\eBD~!LnMC"gϏjc{';gW|w'A^=G4{Sv}SdH[ }/x\w~zEoG~"sK};ZWov?;>g^@-t:'W h!<$dHAw\.?&b)_S8|[oi|0{< O ؞'^_z+ӵ|Ŧ^T Q޿ھӫ5?jz_C/w!YCC^z?YGn?i m?4;Y}'/﷼W؞LgKڒ>/M};%Oy$zRgFovT :[)*}rFWl#'ڪFQ@c|j2K%)rGIHڕUh6xI]8IEI<_Ok.85k5Qod{.N fq3mbj.dᡝv|)T*(֛jvJ$ܲm]Hڔ[/ί/hr ikjV#VUrFۙIlőQG3eN'5RK5WuFeU]7LZ&/e\ ޓ樓u+; Bc]]Hcs!`h"fFZ8 Z-e(<6 gsep ~62 ַ 4ʭ 9I vqlƵUQe=_de>ahԘakK@Ple:26B,;Z6%]Umu7ҷ#7z? /K߄q ?g~C{GzÍn;_:ѾXVc£3W<- DžSxFR0c]&#]?3?UY-ŧ4]Yw[DNn*}X#eԏ%!,a^hSwv28vz^P^ۮVͻȭܶM{TSsRa5T52#k NHS4-j}ciV;{DU6g5O36vե&ljWȴs*Ħ3(f|v*9ȉb𧒻%Oɍe&r,|~­nV{hgo,Vfd8V_vNv&5KTN*a]ߧSQsvƝA$lS! 59lrIsk}qBv(ت*XB*[h Th&1C`ʬuQE V;9^6^W,p%# ZIC#z#ǯNHWt$ow0jAhTuć&V6n*,`"e;Z~CYqJJoV>Ckn[vVϖIbGjA6,bku6l!ärJbjKzVׯ .}ce$$+t6r 0kyxFVx]m[g8RnQlu+Hym~M;'Ypx\%T"27s(>}*8҇JjN9EMڻf圎ٳѭkӸQPHzf ŜD2odfefe䤰RvIn<[קQʦΔWM2LKUk7k5ٺO)`+3͜D1j՛ɹ+Hij'*{-ثܢ 7iG3Z]٠Nk(s+%!.cAt>|ojy&3:lZK5R_^E=9#iܴZgk{z՘w+|TcpuX*[nʞnR7+oJCl kHCG_׻]]ftS,c|XŁ@pPfi^;rvVX);X5r͍ʇ<ᜂ %j7c g#8dQs BBTySD\~@ #Э7- 82 Qxl0ɫ.xy7h5OL%>ɹ×M&[-ןFT'Wv⇿ _z½kzϺZ~/g{3wwz+s:7@rǻv-V.5.)TP@)lFsGQ:Qfݻvh[5jM6nAtHTAS)SI)SM4R)J\Ir3z[^BPa^1ȮpI TBBzIIzKrs ןFT'Wv⇿ _z½kzϺZ~/g{3wwz9şîC7߯/o/cOu=s__xj~=?w=ޏ5>E;?o}޳_JHZq+AD]Z mQ$SVe'*OQ hͳ2r5L ypO1pnj\e'*FfΎr+lXn9ӻT\V5e$@8aUٮO,6߹/RM60#;lNܦ >bsvw+9pږIY\wỄEtL*))D!E9LC)g8T] Ak_4wN˵ܫu!u\ܻ]ij__V^Lԧ(L YGD4Fk|RNdm"2N~c>A% =9}쫮ƅ~u߶N^pqR^ۨ”)HB.0RJR)qc1c1w`ԟ#e6)-_9NZ72&ٔJyPLptb,C"|SAD8uЪowF՝>Xg|%aS5+d"Ff$"1b˷Mפ"1ӂbA9&oLrq\q ?|vua҉U8W4y5I&T ]dJ|!9SG8I/NCJ+{.:qim'CU.Zl8$.$=M9IMLĎZ''wTΨd黐c X"2Qtw8uQ MmP ӗkpVdgMvͱXL./.66ݗ\xLkFhw3:El(?Qmض*mRtȳEߪհIh_wk`s\k{|*->pjVIV[8ABzfܢqdJeMK;e-^a Ә35^wT"EJ%͂8yi4`KĮ <8Y-4߿hڻ`\aI 0. j;XTsAHya>5,8׭f5]Sjct Nqc:r- F"zjJ~S9fYO1!Pzp˭E{FV5R=:K؆&J^) Z]U]ܫeRM?$1$B:k?/):o}8ӵĦ+V&ŀ]íد(qs2I/%R VRsslőjV7ZJs6zEy)H9[{ԒiDKDREo;m/INZ_a^uԱ00難[0*LooS*a_)\8ڴmi$AK^g{[O Zm{Kgr8Gyn}Ax޻1<ؓ0T@Uz|M' DY6Z^ľ\)&„1.BMDHmfrGo"^ o_j(i픣Ūr;',1?r9c*UVS2Le襥 s)졥RE骧c7I5L8*U6>39 1ysm:c\miD+{SIdꋢN6eYSd@|Z}W簴x% 3eYtߙ3ᴋPO$#l^5lwsslhڌF&i d(Vq$< r i"stES3$ Ln~Vr ԝ#[m&hA$[KidAZ#1aeZ#%ޣW\/3[Q͉wZSUX'SvGɱRAC G1-ELm̚OÑVaeksu>~bB)H,I?i{ueϣkxA/C]60s\ZJ7FJl[eF% 3`!#_MVU!|\d?AK.7n X d**"!O8|cC\nBo}x%Tׅ.7F1`M˖*G$+&\H1bĉ>k6GĠW.ܚѼ۝*V]b0[\z6b:HDWjqNu~R [PI$>i9 *;F]>GXMF<Ɍe*VuFO:Ah02l(bjecQvEqrmg.1ܙ]8PBmUSOkм=4}R~eI ݚ}dBAɐa.]>rݾ \TouצZnXk/`2Yvfȩ^td=)h"0xw\мSd˻V[l!lFS!$QFF9X*ftt-aU4zTlֈ.Tk4*!+Q50[Y[.ZP`h9ܵjruU2ge ͫ8Õ|ʰfYRqbG(4zޱTE㪴zE^th6(Dz#n u8v3nu-XP6a]-H{y8EREܼU6 2>P2 ᤤ;g k8\ysSKF4[4%NR?7A)ϒjF2$qlq\5ß#%cGF2- 6I S{L1R:Tr0|4G9쎥g85V"gUo3_A̖LG Ɏd1|62Qdtjܲ^D->Y'i 12YnLy].UTJP9˗QR;k !4ʲRMhmɽ\EU2it6] E\]Mn4~8~o3ft<<1 N<*'V5fKSJ\9`dLS`.d6 ݏUhNO!hso#LV! )׹ֽ$/]$D|L z~9G*b'k.<ܨkt܎iɭ^z髓dڲa;0a,.. ģ[ n]4<xs덕Tؘmee38ul6peLFMꢙNb"rB')xڮΒZ26>?+v(r]+SppʺPYDC6mV_NʦvYrZ]LLSa}ɲ63>qOz7R0xؽpX4; |ɋDTI͒xd##lnZ[\[ڷd괨LM-9 *Zŕ,WpxP+?ݝ[j5sBU)6E,Vu0<?wcz|_֋?5_|]@h%_"SYm8ʼn˞FŘ|X<ǙӗkCb<|k`)<%OUSOkм=4}R~eI ݚ}dBAɐa.]>rݾ \=u' ulRī.6U3Yc;__.M98kRp1:r]z#J 'EKhjFhbFQH®Y]US Ne[lq?nž|BacV*g\[s&~Pڹ{#9^̝| l:a'v.$rG5K^TZ:GDU,WJb{"8v]ӌ7nC8vYQuecf5۫׾'TU(0\[-\aa^/S*nJGܼ+N$焫v|骺EVL҄DHaLh䢚zdr MÉ\cִ{Xu;6K.!6{tdlvn(5W9m8!e0J9TUNI2͵e'rRjo)+Q'{ˎQ4MD!IR5SP:j&r!ld!˜639qd=qc.Uiz5^-)S;;X^VmG"RDeD0xT觬U\3Ukp[vFd qT MÆ&Pfo DXȲkeKRĺ3 w+-0SPtE s">\J"le͏MxmGź/OB?jNNjFyۉucbNYw$nVqMJRWXŽɂ60x'=e?6tpTE( wJ"gfN5 R!cG aRiiU!ium!!*)~)hl]?f"C*Udcٜv޻vk/ BEʅ&8hYEE)(y4Պ5,]gLG9pT>tȍ&?i"ы6*Mڶottq(IJBv0>U^nL;bu0ed}jϔ0p2 !*4}9x)X- x'>^I)&Ebq~ (R2z)Eo< zWU^̻ (()R2E,&ؤJy0`u$[Ǎ0"t&dl=j73U&UE53,4GPŦjQul%o+h8(ga4mdlg)/PnY\xQRHGG:D3*c]JS9;{cdJ6T'IL&ݣԄ(OɾTY&!Q.v>O#997IwB֢"dWutRqf񰟓SīLy],d67=8u',_U39F/eo8Ms a* ة*CU&rjwf+Q@W_ν&XezO6S4]mEKU$xG,K0YTfL(ɝfɒ'tM޼pY_ipUp[iKMVV=Ēھv]EGdmʡj\{uA\6rN8d7]2,+3EdU%S1g)r%62\w},9/p㔞h26lyQz&/M{Az5))<'W.RY$u2ky3mIy&ʸ!$aߍU~V Nfr.*ƲYJ9%4 2GL JG-1Y5S脃:*M}ߤȸ`B( Lڧy[K2M*sWP4N~Q"Lȣvo;E:)xI:tiE["v&tMDIQH"I$0R&d)HB) 1q9!m{E 8eO&˃ar`,OFԺTMAAS\rkW)q>MѼ%8v%t5Qe튦uA(RSbw0>Uقb}$`&r| l(BmbRbCQ͌9A%ꬒ&6 ݅3ݜmRn^: l\ϫ/Ԍ]vWjmVQ_IfQ".Q$#Qp# Cuae/ltcl|ui҅&>[EwdUtbc?wfݜ~ZqnjgkA7O0`T`$V`ԝ&6ꕒ2Cu}woױϹ9!Fi w_IT65;b#" Y D@?g/ DC7Oѓtt5ƷT!IO%vw"fdUc[֝@ ݢY巐d6#[æKu1;.i֗ |Kyʜ9AwrPO%&xeTu hs|wȞUﭡbktUb/aݵBQVRyIWY%*ٳ4rKĽM7F5I!ywjo;as q^E&ԉsE)O8?8ml 9]6t40YeFgE7Qs/V_u6^ƶE|~ηJ/dcS3Sb!DDnEEm^f=$Hݣ&Mҩ٫V馋t!E"4RKJR!JB)J\`)K┥v0\c1c;8՞n[Wh,"KoI4rE7 0Ѫ8: 63"3K=":Iwyռn}h`|εM]Z8/ݴ"k_,|졔FM&r U s(T HV6)nѭ6 (EvNB6C\g8M r;>Ab*=}3q!?ljE6 ˟|"DϜ`\J*x/!ѩCy)ئɳye*=bûØY13fgHY_[!y.M5{yr>4*c2.ƕlVJWɺttgC/Oh~ h-]NZ"EFܒ7Tk"r"Η[ WX'74։5duhe˃ cDQrF Cu͙BVaV121,lt"B0F=C6ĺUcLӺaQGTc1]d\U*zI]zӷR2Ca%RɞBc  qۏZ+8]W'cBqYmeV/rV89 (+tȍ;Zq@ӭܺsI8rƳւ`ˮQUPQU1c6sc`Dk k1MٰG/q狊ۢ7Ez}H2 91&Inm]db#y4cE0Dk&Qh3*2"L1Ϝd6Mu־~JI,[P%lFe Ŗe:l™CW^9O%jHUEUܑp$(ڬjôPɑh1d:=#F1:!z|_֋?5_|]nWjkuK]HH7/Avg̜I'1o>2v\E] S/XQrN_pyY"9̤d4sT *{p; ,Tͣ?UJ68GoIGD?dF~V;r8D<.G.9?>\(!Cx]eSfE˟kg9\*Jq(]x9 UTk&F*%fKV43{Y"^EmuɲzvsRHv1U]ԑV"&|7hwnMf ,6pR&e1sg)K8sO_kt{&c6mm~EE&dppRxnGI5_*wW`=YE9Δo BbrѲķSu;G$I,2jqò*+MV\跌R?lofX1<661dٙdK<&37u'KcTk(Ew/3R6C>"dzTvE*Ʋk/~t2]H`$˩ޚK=rovdGǠ=&9*=I* ]qq${5kB #h ъ+X.$#Q4sug%p/xړ&rkm;JlH+w'.3殰Ee#5"&Q1Ьw??b/$~2r1 dF!b*XċTX-ߖV-'wy7b G2VHpRN%nansT9̏uzV-Z VZ(Dd|M$V&Mrv>I:(3d6 l&.r\qߌg HPsvEpU5nVms}0k2|c*T3"EU6< 8s|?+r89Mן<8n<p`˳gLXdh+9ox}JEuSM И:!T+lFY&F!G'aaTd1s^;f|#I\*`6# s!^|MÜɲt~,2?~wi +vglW7nr]Ws/GY:C,IhE9p#0rZ{YwW\P9dpܤ%&9?„"j9lc'/h_Į_(z}oCcٺ?>L;V1tLpEfp7MJc1֛\Vmqxt}Ks:Zܮ8{DDFK7Lw,Xn|YDlKdA|[:H%9!S`&oML3.q?p0m`ƶ{޹0ɋ6,Ly1ڷ3[Vhp{VԵhڳ5m=&'&&&&''y@]]t=\BY9,:GGXêu\N%m.ۭ7Id%XT*r6kq28|wWSmԇfדkZj--X1g%[^^'7ծ_DDGv%'q4KpP<\[ogB^'s.Slp -dL2VgwĽBbUZĎOTU bܼ}:l]$ᮝθ`=񝶚]lJo4.̃S>F&uJ\MםC͑bHú26E:j4RF5!}5]mg3ϣJz],89e&&iO~ݢ`qo#\Bg *RgZ{wKG9y]ٻq]vn4Ja,H.= Vbcm{w7}l2ZWW72G1PIGFI3B~9 h|f{{AJkv͸:l\=:qDϘEV@yk^u]FlMK xB=5ެse<;o5, NHc~o`6ŗPMwsߢQ.z~S<`=Nea$Ur.+Ih띫RpʍܱP{a 1p0,gg5%"b+N.n{S QZSG,˦6ZuB'grbIu:u꣱Lݲ`㖃C TOXRӽXu㭫SoOk{Sl/\6Ls S@({'y=îܐ(qkOCȵ^A_LtF4RIo [dɡ$ۙWw?fc ysN`c 5hënMD+4 6&LIn(t!5Fl-ktI|srcb|Me`fX$+*ȉcOVnN֜憈?)^ͺA;%vܵmU1VM)֑*]e(;^v^u¯F[)7[lGS1NrRy_5PW_f(Cٱ]^yq>wSlMr)D^d"N7RujSZ-J^ݍi-|ؘ8&m(ԤwO4= )BGKb%GJhflG<^Q5YW2Y>k(鳄 Sǟ^;@+QWK_36k^׹Q%-/#%fטXfaL̒1*g*2~&.y]SckDڃ{CiēY妯``]2rs*U]lc38G (ma/f$ppٰV-W0[ߣ^Mݟ s63;|KjߙJ,pa3q_DǧgϞ2'yjcYMeܣ՗xԓLƪ)1c!J\c1̿H}7פ'Ex9]ErDem ξ^s<=_ئJvD/~O?9}^:}Nڳ5ɻ6| /:vp7$/s8IXS=6q3ǎ,d1swqq19ǎs~1ݢF6Ѷ"`&{XÒdq\ 6@sߓaq",9d\cA^g6q'?#VCٓH@8ǴPSɓQbQ<)p3qXHJs2%gn"9\qNS?}7gj_-9zѯW"g4[r;ϊ戉xtk;FC-QGf;W{{N?whzf"#_Xdl+[\M\ҕi,A§V:&qTد,aZ$Ti3ʸy$YՓdWOKM9%jNBW["6˴Z-^VCZdd\{v˘hǒ}sgqߌY~fq ?}<얞M?mܻʚfNi[VJUmɠS"ePtdȻGI*N]iVLa/{+׋L[l)We)vm]Gա즯RINЎ߽YzrWUl5:~s{mqj?!駍$DKNyǎۓiXw; jKӔA"MGQvn6*01JNc[=i%ʕpR^9%`'MWiHmdV9=R0⤲(H\䧕E|" xl1`%%֦J>IA˱^Ad5?jgzb' *1rS)g8<B^SE6Zuߔu4LϮ^NG*[~f+k+I=~4T>P}s>m 헽?oXi/&s65V&YƯb5zwkMJ!#vA+ERΪ2Órׁ3gn򖜾 sa$τ>rnFR#93ًM$~f|&1{M|tWHnɵyԪŶkwVY?6_IOcT[+ZD4 RvrTOf-.N}n9TuVbd;s"'L5KbjrK`nj(Q<&;M3oy5mMl5$X "#_C_՛}FʣDX-=SC, 1;}Oٮy$$UZd3! \'ʧ"(*rwf5/vN(Ks/|-zòv⣧KfYoiی0-oM5 +XPYm<\eˑ;;H8GH}il2ȲjKNyǎۓiXw; jKӔA"MGQvn6*01JNc[=i%ʕpR^9%`'MWiHmdV9=R0⤲(H\䧕E|" xl1`%%֦J>IA˱^Ad5?jgzb' *1rS)g8<B^SE6Zuߔu4LϮ^NG*[~f+k+I=~4T>P}s>m 헽?oXi/&s65V&YƯb5zwkMJ!#vA+ERΪ2Órׁ3gn򖜾 sa$τ>rnFR#93ًM$~f|&1{M|po#ܴKgP'KibSQ!7c,V-unXkSXlGuʩǝ@Z#eEetc'cKG_AgPas<eqw>PxZǷ}gww Xn՜л+6ZgTD+xI:̜:2hrvq]cb8Q(\'8c>ӻV-68S^=d̑߶(O*j]qKv6I503 VnlgG=ct6ui^ۛ:R^vÖKq3i[rh;'smYۆw.Ɋ9.wc̏= lj׷wՋ6QvB* 4W)S&w\$S1r\\Z&2knD(`6qd(U00,HK:-%&T~9ѳٖ&;#&Of1GLNAD'wp͔8G9}yL uk 屓3xrل<,GD~LS ߻ 㙮=FNp_yϐiP],2O V}5De.m`)dDMEGZvm[~Cr ok:CQحZ5ef-N̝e^#"&%ܲ]tqu}`m%xhSve0ת.FG_lr@77Xs^CODǦ)j%aQJ ncԪO|m ʼn) 󙪸r1GPqKT. ۽Lߟbx=^rgq3`3qg9].Xi.0Gyܵ֍І!$ kjDErZ6 ڶ5cdfЙk*ָzXQ &/xr[C\[F 3Jkݛiu)FE2Mk4 t]'q"aۍ&mw7l]9:ƺs<ՙɐ3.):ǾkJJ`9o\H.Jg?~3=RU]:X vœW1K'ғ+T=J׻>SnmpBbmQӗnc麳 ?#B[g "-6>GiS6܂m"-wJyX2afo]c漐4'Z6ZFqiJЗdDÔ$3H•crح T0L`*g+{-'ŮBm!zo'z/QV U8o4haqkIȨ0|3yK% ͩ$Kje)&)-{K|S畸.ݹ]LE9]EYS'QCMRG{N iOkR}_@)s.nڨ̓gwlK"Zc NwMWP[58ҵ}Ca[mNMwe^ӱ\3TDE )di^QxvAY#l)5H0Vm_FG vݚ"2*v=kKش*> >V|LcEtLP9C{掽˽hHSeâ<}JH)U/Uuʒ$S9f>pE^fS<OnLHpov^Y ݙN[/jmIq}%)#W6j:,n] t鳓g9;=TqcŁSI9oM7d6lNTy?!k[d*D(MGkZ勵ҖjU7_^qi{G[8ԍ#qrslЖVrR(CZl־QvFhɫ+tS. in\WSMݘ:R.xҧRW(kwԓnVrc=5n^'> :LםhjukxՋӚ\rSMڔE{'.wD-Kpq3JP'ƊJIk6qjsdVAhƬSAl vZ6d*]Y.SӴv]t-sGr@芩.\)fJH9՝*ִl/HEαFeUbAA/5_ t ;Y6_x^m~49Vm Ih{+xXn9g,VTO*dsc㴟hޑN5r"d("j8FR,ru=#FP K U,:2x78vE6yԄ:m~{zkYu& TʦՓ͹ AH(Bft" !bFT*z&c=jV̯F]"_h/PhIxfڷi}uCWVTB #%vV;_On]M:fdt~ꙶZ&ߚTu/d6Y@l  ش oaJ],f vNp(6 GH4j^QrE]?3JoUʝwDAk \MFaJRc!RYuӍbJAf1QIg)|kcw\? W)_ %B:w/^i{yH;d-#֧'no2~#cבy9gU|ލID6U( >mV4wWaYyӣT0Fjvtd.͏QT+Sas/kG_ O v!~O:#BtTeroၶj}Mmp)X:*zQZ9Eڶ١ kfr̙Wz()_׷vաO#ȯX6֗-m:@lER,VyִiF-ѧA6Zv͛:(7n ( o HJiR)JR'uhiw 덛*rhqVìW9 ,dճגj< ^W27r}~A18ScrJ)YEcXЎѹ[^uYS*~K4ˤv:H4lTZMqJ8gR3v6mJ9,9čOjU . =fX]6Ͽ%8V]'-#-obbBWqI8&{G-,\JgXǁo~P+WִmU(v5xq%mw]d\UYRN\W.U:7>o8Ū8yq#O-Y ]3\lZ X- }smf (7Js,b+ށ=M;<@Wmsfqu0Qtü_H c#}Y%HW4ЌMa;,c"D̶1ӦK01<7t 5K[=o++:Zbt67u16|Zl^?>PKlͩ߅Ԗ 'HS0ʗ8v||Ҟ>Fp4Uq(Y 'NfTʏ$V;g~35ʇ; x!{w3oӯKG>_%1sJqyg[jv#{f"+bsfy}ҽ.?_vr־Yxo;[L׿iW!:jx[K\SW:]xZSɣ3uF1/ )&h.)y)]2vMM!KĻYVSu- =䪇rE|MpFύQ%0Ub㙺jW- if6o1u2 24|κnB=Z=鲴(' N[x Q:ۋZ£ȹgd[X*2N";vZ:ALrt'dx[l㡺c/}S[6:e鏒4mup]DZ7i6[ۦ {OJ6zxoSry083l2ĦɁBD"W#ɨr'h8@߃&揬?=}z6ϭƾ|V̓5+\wo&;VfbմLOi|z_%mLj^Rh8f&&'&&ZqZfww%4+ժԬvW)뽌f띇mA>E*UgWC ųgTm,sFOJNY( Mz{sw܊3olD\lͤ]adzuÅa%ߨbg2zlݠWm$Λ8L. ,骒2j&c1Mf9 ټ S۽5MÇRRNzQo:X.2b˝ExުՎ8/)EhO2pZwrF'X1ԒQ(իIchZbNjE^6 2@CJϾ1{.ק2}?t-X7V.zvj*V:m qٽE)Mm ɷl*'ÛfCHlXG`Ztܒ,21V%r._LA˷[ªots$פW+;7]GOר1'{sOj[RO+ M[HoHk}O<=FxHɆM}ܶ2{oH;vt?xrRMSRm:3*(&+^P'-Xz43YR.5rT;)ZࢲcmE_'N**)Xc0(7e_%E]BoaqGݑ sn+]@zeZ{u,us6I޺hq; SVcd?v1>Ga! !(he&v?-M.QʳHWNV! 9R`'˿8-VW֠>WeZV"X@k|D$,[vq[&vlXAdHDH.1-%yt_|ڦwǷ|pݯ>)MmWGa2(T WpM$f^r&EHn⿸cSS%mA}yz<=3P 1mR{٨+~jh~Sv"n!b$9f9 dV> b8ϋouubGI6'+R7;eֱGOAJ3DM*CRm:HxOA[B`+|^* Lg˨K,KYV6pl+zXKcߜgW/O>[u 4m7K[{F&mƌ{Ѹ]i6oͻHvB3W/^EפW+;7]GOר1'{sOj[RO+ M[HoHk}O<=FxHɆM}ܶ2{oH;vt?xrRMSRm:3*(&+^P'-Xz43YR.5rT;)ZࢲcmE_'N**)Xc0(7e_%E]BoaqGݑ sn+]@zeZ{u,us6I޺hq; SVcd?v1>Ga! !(he&v?-M.QʳHWNV! 9R`'˿8-VW֠>WeZV"X@k|D$,[vq[&vlXAdHDH.1-%yt_|ڦwǷ|pݯ>)MmWGa2(T w>PxZ g{Yɝ=4ve>S݊ ݨb&OY>oA괁ehWZ߶б}_O߯v/;,+*Kâ6Iw*˓"ܭ&謱șxS^ih>%OLrJ[d&dw+.}acYcg,=ʛ{rjw M4nܯ{۫v&ˮ_Ӑ>m.P۬آ}_hAʴ|/8"k<ٷP + 7Ù\p7%K۫zpGEI\ѫ&gctrN$-I]b:{M\Ck}y]itd n 6qqCI&\pTrU*_\z0.= ?ggA^3u 26J97 hVD^B:|ki9$LnwꑪG1W9)q qqg%Joe^acVΜީj܅VJE”e9wt}+K$fjՙxbp_O>v\|Z*W_w?lW0?]xd#W͋;\ ,\C<6ܸ4]3 0rV]xIuNr2Gn+]$ʕ$Pgn3{FWk^Q;PJٓ(_%,_heXŰdZacBG9eԻoX{M.fQ ~nͧ?^9ֿ`z<5!ܬ鬓vӗHN[[IYZzwEE6 /xI2现Z9{zY3=T: VSkYӫOmTR+5Z326gMY5E&6 1G*!GU7:bEcfQZfXio[!zŮ! gba⟻kc2k읶rK<ٻ*]6{|xP@&w kȹSkv{WkfBH|JhE_;kspOf~ݢ~wK|<à(f-[15Tx H#Xc+.Zu{x8,w, ]V wkNQ͡됕U{fؔivQ):+N&9Ne:0i]xj RPqOf Kz)6dbš'OM6}yc c38W8jhݫڬ\5GkHk3"tؖ^B$b9:eF`.eSe$E d mrR,knv~kMZ?|օ ({Kd,b0|Ql#)6nͻvlۢգTRlիdAf ݺ ")e*i! |Gy iXV$TmLYz\%Wpu{+ԪurΞL8i;$ߔ^^o+4K-I3!k̷3[ qt]5<b]ڳ_Wϰ6qJT߹qA- o'ȆT3o u&{P˓ɰ-3Î+x) ?hu껱6]߶l'iTҐb9;OM5Lը줩47JCl }C7 d>ƕaw]'eon] R/;E:- n-#EC,E!UNӶ<)f!i;nvW,-:R[KUs]e7(>FYו;VĩtklS;M: cX);>.+!񛅚ն⾕i-|>q L&0ms5i|%|QEy[*:I&RNpGR-Z憖eղӓF_g] V̈́|ӯSotgr~c7<ƈ@LtQ:È6! eUtɃqT)4E%Y=R*tJvun.Nwڮj =R-׌;S2gޕd{)hEk˫WiPrR@k=Y0(f(FƴOVrϦd}C-,:`t=MM3 ǀٻR[ce֞AƙԺ<:pU}m s ^&\-Zdm]2 g&S,COm{.׮ch%|Ը-"x^+D\|f6Ȃʳt]|j!|w N \ѯ[~Cߵ풸JR5-\r E+"/AIq sw.T55c9turWSqɽ<|.Q4d3 QLaX)8zuCLODin>)Z'nJEJAG+\ڮX/,ʶA7V2XKIp@mbWtݢߵUo@;am79'( k̤Lbex!͙?#Ui2u;.ջ^*RmUkņ^7eJEn6ILgtzg@-VzrȝZx+%(uIk &P,lG3 iE' qѿig9ߜ=5xQԂ _ֹa5l6~•3a4ܟi/"ay1(*Sk5JZC@BܺQ0쐎iꞬLͲ(.oʪc@/҇9bK'FNW5Tjm_lB,ƾ{Bmkjܟ6 s֝tDSӂ[%+UWANQ4MDL (R59rS 9sJb83)ٽ7OWcSqpU7*ӚkDͱ-xf0H;M$֎$9>Z,sYj#FCrӵۛ;15{jT]J{6- kj z3:=fFؒBĶ -vcl]S|SϹ LuFG*u  뭅Jd <<0}o`K+bު-׭֝VCm=6>JF5)Ănj|1\r雷CZݜIFB]hh  T_4IWUL]67P\J%{?qo9ozݕ~e(qْn2DY*w)MVH7qq oώR}WwJ-%t-ZFmHYohGFV}"eDnD`ŷ"sGN΢OX9cjŴc !dכ9YW,#f9e%+#8\QS! =^]!L}wyGﵤhZv 3mu:VJzN^VYH4j'*pϺ}v󬋶!_im=U 8c5#xI1u*.;h"RQ6vSMi,]Gez:M67V+t=g}EQ%LȞ[2& S91uf۠Ѣh6l" ݳtTAR)SES)SI$R&B. c9>/P_ja1Nr @j>SiRPmH,֯oY݅3Ưٚ/&iyx_:8WDz/}~V"gZR]< ײfmAL8=r*ch{=]3wͅIU~ClI~7GLzPDYc>/nc-u}s_Lҭwx> Zө7Nmev4UxabN11ȱ}"Ϋg " ۼnKj~Gk֌mᩥjV2R:,jѥIRk&Z%Ce`QsJuROKjʭ({[Z.Ty71.KY6xP- 8UIh80tI'vOHe[H" B*8yq􋨥Pǣ]f[$4tu_/xWkkq֯`R_ѷs"싹UXȼz뼬Ѕ+Qݍߡa׻/Q3'y#6.|F٪J6S6 heg*VHTO[ 1"a8m.n4O.uoe":^Wۛ6sճGВ`/՚ (x:?vvk[in-lś _MfkjMmLL&8'n]|\wظ1`vD G56:OO_qF'nhK0Dj燤l>Z&FO?O'nhK0ulS8#1ȳxvrl{[,tbe:*fFUDwJ co_VţK]z[մwD,d!~yHj2U<9: ȹ2H92e /~q~9_ں.(Vi֞g+2g*/O11@gHrnAOy+dfQVd=*olt4xi & &ER9BV9.4FZ'ʒZypD;6\CXԎ;Z=LNR1#$NCd+)1[vqg38;׻JRr]d',Hl27XQpVMі:әp"Uc%sTY,# UUU7LQL(}l>U{ӓcO=|#hns@ ꙸ7 Z:е]s9?Gơe px4|aqNFC´L~eOst޺ۚlQ6[334 nL7|jF>3h3Q2$t*[!=>tL sHh eYg!Y犢ٲX1\&2bߜ Aq[|6#5Gutu'OTl^Z=gnZ(l3D*Si8Iyyk*+ӏJWkSzjY.HQieyI4dJmr |΄x76{թm.dm0i=:ĎdMU-V\3q޽T2p=`MܲIskmoVLʳEB8CᛢV-rN#k/#G=c% SSWM7>LwŸgzf1>c4FaTLЋAϙɡT&x} \lineO_[e[E6q 3lR5lBurIMjvZ5YTu0^*"zRRtFJ1|1o.Ͳ긍]RMCd >Pޗ}̮lXkvL;[o;-֏$JwQme,iuyQ"+4MɶA `Peɮ;r3q+6?[n -psS̢y2eU(^(2FS2qfNB{i}"#j֥OYlN^k$uIzϝype#^,Ww$T \]ShU▭4rS*[mKgVjB)f&=SАM$2BĨIsx yҚGY?v+zrۥ:UETQCs"[CRfmS&8eҵ%X/M؋Gٺ;5le[\PO%ũ3mVJ^k 7~T@J ʽ/T&$0U]2lHrlCc'Z֏:m&\~~SV\Ge-f1cx헺1JQ>bE.eN7"ʿZdV*M14U(:UV-,;i2MPAw/~59Џџb՞ڵ-̍ 4gX̃ݽIk&x;׳N H% _uSB*GLkf9ܓiNzWY_lz)Us' y2g T(rKE2g4#3LV(aM Q ,3`8_*MK[#IѶ [i (v,%XJ̄M~Յd[RFPQn؉7K5#R,g;kEԯLY8;U_Ll1YE|W~W77Jz{u?`k;%,qʓH2s/ 2R!&|B͖6w7m$v59ydy55 |6BMI<LvHaWp;SΣ{]t*7VjI1"yi9Yr;Gm^|u/?92b$4TaƏfcLceysys9 >pT>tȍ&LcLo݉Ajm嗀}Dq M`$YL)=wMOUӦk^k|l`📪1v#ܽ#u\="1S)|:q=!wzA7_7铖rɒof[#'\lfSՙUG) ,Qºn:sɴ]jVǵ; ZE ip"s]k3хɛ8,6Y"Zk]ƻ71Vo9>+>tAOۛ L!po3Ò>#H%>ܩ]-BHu=5!56}*ˌ"TkRm'9 K:fZJ\^<|xtmir#wE 5h^}+xa7U8Yc=;wP'ͮ$W7_G M+5NWJ!^vUE"ݱ3։GIƷp?BpQr\>׬}UM5e"+/Ĥ_e-Use3vWX ^qŬN;Qks&$PKrvm’3ԕ,\8HtfN#:Blf l.Q?6ZH epdJ|)<~$J{)·P18r<|3(}τvsf֔M4[VڡS4kՑnڤ  grPG-ecK* Mlg3ݑK.8 K˨qnn E]u6̫-Շ$SQ±K[_Pe%b'=dn_N^#IQm7|6̋X*MA1\!LGygԝUxtfpEΗî2r5Y׬a,S,JRsUYc[Uf~+ klDYɹtɩ]TH7WxLCjR:Qv3RFPRv8Տ#6SSiG6j?-W_Ms!mE+Pe'*me"NIYYh*T!*ZfMҵFiF&x6PQ׈9+3,v};&P9&)IYxsqбwҒ[GFC)rEdpcQeHLd~qB [:1iыRmY?kdkKOX#2ўޛ 񕲧j5:bjRH;l#L)B3l]S"Ѣ*,I ua70.A,nX6MQhմLA9K'yYŴvk.Lup꽷ԫp+P͎y\Ho|YʡX(l$bRfe(8AfLBr1<$SdEŰDٲf,"$) c=1c~!aՒFiX&(K$U<%I'X!)rE/wC<5X㮭RT);o7qMteiIucGcb=//&(1 -.TQ8^m])5״FJwJƲLUdc۝DW *i9u(pć4ys=~Vz}j:q1qdgYט,˭='>P\Qm_^Ly/; F*Ӷ϶b,\$6QxjtRj=͸i7'v]*V2,Aͽ?oݴ[xI̻f_KA$ٻg9sY+'e% MltS&.)dx*6J\}gA;_:`Ɋپ5"x{L[c8{1cq#H rco9glj5MBqg8_;-uTϽк]UOݺinN:4rV$TG;NSnǴ`5 v\,Dl30tR9UYDc+dݸX)-X;pp}:Us5j~?Eˏc_cԦW[qO@RZnWՍ2l`ǧ1#qav/$h1 |c&>8N?Jh_΃669:~ګ*tpT>tȍ>m#ct,c KM&FqMA2MȦGI)HK%r_SrRk(u `Zg I+2>Dr29Ǒ$s(0ge#{"#\޼eʾexG;1N6$IWn!3V2:H˼zGlE6޷]D6P֔dȨDTUظ{SXR."΂dgQS bY)R-n*կWFhJMxvkGr\&M9NEr [L5-ՖaXuI==ZBA<"|J0U_ S23]q`<( ʡSM5.1 IJ+&TI,S86\r_#woX5q:S*#u[>MokʻB6:YJ0e$C4jƪ3`ܦF2g.LM2?hRRQ4fBJE1`'pK6jպj,uDHQCpik*tŲ)RSwEG#HpR)f3*EDTYD4Apn`]zY uB5l|#.ѫi) 27yrfrOUhL\_:{oWu7TV'l6BPIbĥ˒Qq ce 5u~^!ժc8x(Hɳ`dͲX)EHR~{c1X*g\6nmE37~pW*,Lc? G563w^{B/QWippOv|)YA Ҋ,60͡drdN\L=`h4;ʲDZfvX%L"͜LIDNs>]vª.L"ŋ) -wʸAYJ'OwZ O\cg!aP;Xh*g 7bق .b3,tZfTɤ 䉐7!~m]6Omx# [ cc'lI n11'">x*!v%F$Bb03yfἪpz'9ȨjFKԃ.1댒cAq[ v*ϓnjYZoXV$N">唥!JB)q RKwc1c1cƽo}[ v;Ȳ)&6xw<"͡ QȵfRn\B]?W}a7L?&/9Bz: ؂g1̿Ւ@sO*x{#ʘB@EۣnQ!#f)9ݺ'fF`vDMI4ȪKt𰌠"k1a)e2d_$PUEPDI?"8&9o%ҼH3Ul6e3eN >=̛`pa_f-ǓX3'9hK׀#v&ٗy\{OiUc$ە&ȄbqƞoLz5Do?gTgwmfbt>s7Nbd7X9fb3]H$2N:=hzH-JƶtںbG+*+Yʩ9ө'4n?\jZJa:Q$YԄWsrΫYWxI"*h"ݛbdճdv}ĝqy97vw}KIA/Pb aH6 l&[8~M? wʹ'NJW)5Lz̔,1󩸂FMs5 a**.F*s%>p7TwFEߺ2^Meb#VhՋUՊJcQuKpEfշ뽫dl_6rк 3JPȰ3D;5~f7iflI;Gބ黢~Gn]ϵwflٞW^A4oدK'+i LJ>ah lw=]WjVXf&r]Oce#^d\xb5QU3gqSxNL)@N پ.ܼԕY /'ElT&U$ % ATΉHs2i_pLdTlfesPVZ`͔&ZfYT+SLK$KU29|CUWrhVrEzL+ܶ!aJ#(.gpde\VO. ]M7[d9#Ƽޡ>cjMfSc#Z,prȼlE'Pq$jBQ$W)lGBHq湦hq6IIO1ܥyT|yDVUK?"US4fGʕFPK:ɍGgwsFbp N%M9hr,O0C*%)O-TO/xN$^[“2غ1GqWp+,0l"=:";Ft[s&;dLʟ*(b7mRDQCIɍ9*%J\2|yY4a/jno$I6kvʹrb"ncH…œq5l%PfK_X*숉I;K:,,RGm k'*#s!F/?ҥ?b%qU@┥Z7-{;l-rQ.9EXt⪵ô]i R<&7\2<{p$nN컶UԭeX{b~ h.w/̾x$Iw)r筀&r?l1 Jæ'tO+eZUO}b,ߢѕsnW]e4cM.[w^嶡c]{EӋmlY&ad[~i |I #ȭ O֣i䕖&jZ yl'=z~2 L&U_E7Iq:K(,b..ڛ\Q5q̛ {R!^Mè[h+8b5l3U{&.c'\4;Xl$]6B6`QS ۬~fdfm>$HtL )HM)Bl9JBJRVc)q`1c1%Gzm7lPٻ91&sMVJj=h+8aExw"BHT 'zyڜW-m#`T ^GLʨ_i&rmlsD:eN(G+&6&ЭF8")݈H3e&21|qc\yCu}F둕:qX@!2dewrurVx;xVUSXnM\޺fwsBK9bqC8n*F`11x'Ǖg/~M/OӟNVE>`uuI.b![ T3hdELO'>vUt+EnLY4MG{8Ɇ c#u1J5Ut2|PD,wF>=C#)Mvɤ1h>TPnV 1ϒ9͓9sUzKZjeY =`h_fE=s ImRsVEt7QfU2, )Vn]-w WZzKMNX.vfH6TTujYol_ H 3g9L*e9]E\UW Nt큎4I䤲.^pL(tuwd]KV]B͓(s43y)%^}wNвq45r-%w4($˹prbNក]0:fM]k6NPQ4MKX+vv`f:HA\&tTȪ+tdջvM) L8DS*e\6J\dK翻?{i5k;߻"5UQHt̳x:"!$dd64dC<8>l~]R4VҼ6uܻK]jQ i(.d7q LvdMr93xhA#-bhS(K%JsK!ah1q-,dT[7R2rRf>= 9xM6IEܸ]B")UR~{1>$r Zk9p>3܄_$ʰ|hI ygSLB=Nzjn\g(='b_uMq`޴ω[siLa+]pWf#[xj1ˤIBi҃ p&uZJF^)9O0|ئrnU<@:4{έu'XIW!_I-e6 1mݗO!䛤|1ѷvj^!s)WNd9tɾ}8*SSKӏi;tsߥ7ssz8k^}L6Sڰ\7}d'oO.Hk=lR=D[^Bw8=^_Fɧ/3EL>YXm{Ԋ EZHg- exjK6U9 M~/UK$OJ{- AE2>$YYy{o7}wFue9S@[Ti&KdZHHi d\gK$o߄ݚ,v[Lp74kU72mtOf&/{}o =>>yҸXtIGLq~V&W:&J.R5A_2~Ulʤ᫦ꨃMdT:g)޽$wE7@n][iD>mfپյxL2H+S'!Sh9P!SH1qmT!5D 딍Zw.vJR VtLY E\+eྎ}O?sWuGڻSwAHjXzZ=VU_/Խ Ab³ EnK-..IyU(ۍ{xZn3RE^d#hzԄkU r'/Z Sgš3t+Cw7v f9 Պꇱ)lQmgU+i5,6ꥮBWB=sPSFڹg@|)  +fxˇSKD'gۜqM(AvXm]Žj6JQZTmkc_֊MfRqQ<[W>JDR9RSh~wRkq&rw%fjԥTt$aٖw++IL Yv4ʡw09,cl{ 9)1 ۍTo\Q.mu75MA!CLRJEuvQᘷ)ٺ)GBu%鵣 }Q~/3v,&Hlp(Bh Xx_Flݜ[:Q&o=>6Uis_1Ӣki)`m {mUHyދkX&^e) );+ 19Udppyl-Y1 HOl:nF]EzΜh/,9i6"#fՉ[)/7VmDm-4/t m{v|—Cl1T"9Mz2ȼ~j'c:K&Q<`bD&|C.Ҽ }UT]6$.9ySg]e&HS`*킧!\R δTDw.=Jv'PNշzFS.rβ~@$֭YgvlԻ Dm RA<"̓u9S")8.3lǜ9˖RkFh;P>SRA3ݜ%!(3swcޫW\ӝ9sunxmb|9obc[xgx:[%76k$wIyO{ٝtSaUt㎦TN|y/z p0_Pʮlc]NGh>1BI FB Hȕg[0E1aG dˌ쪫Tțrc*\c1/=sc]4גzSh6,kϧ.س˷jvw_bږ)|J$_+UO79nK=]+f߾ nC{]+mDcǓ>5J&?]On^NŇSGK-z`Ë1VյGd|^)vRJlѭ&:N=eQ-\'9sݜ|F!b1L\k *G|̣ {&4FIl28ʋx]8w ޗΐstϿMV5զ7i,"Nc јN' &CK$8;y-}Grtzz2 厚CIWF`qU *jJh"*S}%\)Wq4u9`X78>wft㘝mZSg.,0_h7qѹL9-p䶵b-L<-YZ|hw9IBA4}*mB+NS%ɱdAb-*k L!cuqej[rLQ d?`h"f[?(Bǽ Dl*վ1.8y0Kn_AOѬ4b;c*MQD H>Hcg9J"c&K2h"]~n>4őtoWS|Cu+49l9k k|5- ˯cgEmIGV_ӻ</X3W.+:yi--iOolaj_Vg3ĺ3بǧ{'F6M\}'b\رeLޱjlw;-j[1? v>1`XTWA 9/4?eFi;F:خwV[/+;o%Ȏۗm?5dO 6hm?FLMl_ƫwhQb+锛͞ad EQY#5S9rC)g8t֍=Pݹl܌郿*lJ0YWX^:k2qQIHJOL!P $SiTΒrIR5<1˒.upbL\83g聾:Jڟj,~oY7RޫsTvϽ09#DeS6y<,.N.٪qg\7]"wאG6M]_U9*0I3IBaіUMgpV nP5dvt x jiKKxTC3vMeaH\w)?jsFS9lhAi(ctE/[*\' vPPȨt\Y)uO꾒~˒0Ө-bf0ZqQyϪѓneNxNs+I1;^-m=z1J[V"*:k)bG&>Aٙ=?*y\K.u:,X%5r'VC639q3iṃjWI20$9R3b֖{]y8|Uk`y&6а0FZ;-Kڋ:rSxs eI#cÜg63h)1ƭg Lu-T"L]WpTxܐKӑBWcfE /T;閤62b!4ڰLZk#ӟDz3ӚڜFhu-mr\q{_1_wwmq\z5u#/}kgp)])u_Wgͽ\:/qӍ1֏]Z+6lT\mLXڒ,c2vr͓V>frw|c:Ǐ#1ҸեbdD>={Z֟ff Ԁ1M2EFdw1TÈ1yi1&38)HR)R)q.;Rqc1c?j[>d#r'q]:K$||GMBŜgѩU:=JV{ޞ_3}Ѷ\g-7H'!!P9S9pbJbpb \83gb[^bGKR "c]H9W|(l|Yx_PS7{0j1ׇP_d);2j.{Rp16Y#d3|jU'2#-je"3>F2lUK8*yTΤlx^"Y󿦟ӌ{t6xÆ5uO+l4 k75lkŏWg_LGJ=Mx}~KIn#LزZ~~],bɓF ݯ_-KVdCH`D*Z,SLj1ro"JVtcvppD4l|xs &$oߜwdOj))&C/~>!;BHq1`|Mv+kQxc{+//KѓՉSu;H<4Nh(iŻGn9fα[LyE~r& f~Gq%Ȼ\=XފZe.pLU̮(T@nxV*^),;dGFOA 1ߜCTUS'P>sfOxoRz]{9WmW-zhh`Ҍ|gz.0-kh~;kqxm1Zslڽm;> U\1\uzP7f]u&ծ],jΛTl"{ qHf*SIu۩ϟȪCc( ;h&#ulkaX"h6Iܕ"-bWpW+*ALC`1{sQ5i{8x(SR |\63Ag.WP"Hu[S[m5캺Vȭb4r=t[^=w,Y4U΂*E*x| 9Pl4e9RɌcgR9km5~};] # J),ٻ0p劫$tP1]%2_ v ՛Gxi'Smlvg ҍ͞qk5 "*2% qK_s`4^&zԊm~uv-o-7O!t[5QLe2:YLdS'p7@_sW:"ə J?.Ќrsܺl!3tZW@Zi(;ej] 9Jok9(4pL!!\ &SekKmz/vGm:NNu9o,JR: .=ܻp6n)d*\6lP]4r WۛBU8͔hYX謨y7lѢ"s9q骷Θ ޾{6RxJ6;4fY(/ x/ !@618U+%0&wr2#rZ)3 n ڵޯ|b6mN2G*]oH,gs7XE]/~;9Lװ^Vtjr9+dzj{;׮_=kowNU9xsSZW W]@>Z[עm %fy$!g.Q6v:.[F1 ݜ9һ+gݯ*vT4ȫcHŰ˷T._O8P 0ZZ]kܓUIl .9]rx~07S3aT7m {>ѻhRm[MZƭ,ǍvD3Ǿp75\pMi_^tUtNjSk]ӭ6uZ:~ ^1*vLStVl[)ɕŜx߰/_m;&WWQPj9g wMRs$k[8EQDž$h~!ofH6R"XR-Ehvn]ȼhɿ\EwB!_ßҿ^֕H@uP FA]*j[m+Hk0|FϚD3G5_>r訑Ccpl\檞qV[,/\X[=ʰ1kwl8S 6־ٺl@'jWz򺢧o튤 I:Oʭu#ԱyaIwH ᔔ{/3""&5de$ݷareE=zD5le]uSI2c&9g#95xFwSN]D}AjQnYшv䩷#gBC˜)NC`60bb1sgqg3jIoiRuu#Y'رI3xZ>$ʚQ ]EHT9Mc!i-U vR-A8r&yM ;qіI8O՝<|#v/[ lk^_oLZ#d;Iċ]&eG M$sP&MRD_NC!c8?͐8uЪowF!î΅P}ӿ"6PR9_nߝ^LrDH.c[̡#2-ƦI|/b̼ĴlLc!cJpov1xD[5EU7l0.X^/G|)05mGGV9yJ?)19=Qms`s_,Ku^/kg4Ն;WUXG*I(K: GJ5uS19 |0O筛W<x&2uenm:)E+4 ψLɖ{=v^[f+u{Yٗ0hL׎DQE2ɍ1R\~tұ8D/it2KciG֙1Hbɍc#z\@)7\[UVze^ 2n7{o{5 t1%)FɘdzpŌJlf0+^?eGe3tfUd˓$_u-]kT&XE*| "o/Z/c$-df)W q^hl5n^GD qLԅZ0?b*#"gO 8^AupEUE -a6u*?YWٕWQFPؘ#b ݤ=VR$],H Tޣ\KUft&.癇~<}p՚Y餛zhfqH.[mnt'oCV_zb (BDm'b!8@ctVl|zG=2nvL\÷Un{97:mG4Y5HLpJ9k-.JV7Q,jR򥄒dғ >gUv,ѹ n:$~Лybk:FɬwS{YH8P:B=vcc9:$~ЛybYn+.ط4b䬤*~TebPj2xJ>J/Qr>K'Op}쭡"N!_.nVEdNUY%骒Ɉj9Cd.pb82 t򗥲T+sOKqUG* Lt!F#3"텄'&Z7w<&$P⋖6hL*USU;!pYZk_RF.b ~w w KtqËO@ $[$k3b7xS&%dy)%s#ۡԣ8d~z M5=u0^Œ'cˤ]V?xK{kԷJDiɴ$5La![*FP #eE]"v=žB׵kLVJ.`UˮyT"z$|WS5.<w֐EFv5z87rPd+o5&9Jg8U EYP\>+4IC]`Xk86jʷnՓvvy0,D28'gd9dWYRw,nskzU(Ia|J ͨZ%-UO8 |9?yaKv":b%e2| έs<ck{֨ iJTCgs '^k 8EXrNؚID|%tG1UXq0?x>3u?x #F-;n3U!Mʉa,VIV21%k-vT IhH52=Gn)ٛ[})bҙ2bȿk2O9ndfг.Y5|Yh;DU Mw%2tggn;6wou"Y^{K!^|E=*ZrvyKWqBu96<۰3KړM_$nHj땤 g0(b䎙ES4Qnez &raU,5~f0qgܓ)mR[96p͍`i%^'<Xth rLwU4_@v+[N**=z奢3~2+^ž`W+Ӕ)Œzm#;1efmĨ ޺!?tu2|Y)eHJ|)PRD˓?Er!y>)}9&)b1M1vqg3gRѹ~1^c]<.q@#Ě ɖ|HIxVm+ tIHڊ}yǨ5]_m*5Y0X 8Ő|ڗHLr.՝gك|Ug7& 7E3w+g9tw+|ͺ)~4!di -2Dh jZe$G:f?L;+r^s9^F1 A7eId%Q?I.Tbppxr"2xxXf-"b&TZd-4lJ ۤ))R>ϢhZ>U;C6l= uΥX#YxG[9pr97_ѣ8ڽvEj_Xn4&9l+FN[J(+e 1l%\SR?a<>YlDYEE@D&qE;x\s@y뜜fM׼[a:QK!m+Layc4l|fB2SS垙6iHim, V <3p*UU{97gKDg e0VQew}[@.W(S׋% Fvb3QQf[yMrPAstCaS~dplu ˦uwں^L˾1d FYF2_z*UNFPIT3T3C kmyOZ*tZfwvGDDͩFUDd4A仂¸Y˟pl]S"=B9+mFv; uWM WN~s5Y)tU:+$|C%d'o+B#ZDŨHPg$6>5,u/"({mfz2T)(:lYG9h9Mq>MT|gɎlx<&4pg1db9)l=T*ce18ɛY9Y&QM5 y-Onh1M0h%+ocLrx8d b'̎>F6ښvNձ^-&5zW),%g?(IٴdwM# ;S]{<-uˍbj k lD&Ԓs|oZo&r\X? 5^AFHgO8tgIJ75/$746v8#?ASĸdEb'Y8p٢/ !L1QEo n礀`p>hrۣMTﻒ Ͳt,UZ::kb0,\b-eⳅlIKʸFOWjyw}aКtro ;Mm+(\},zǻIOc]qOUK>(ejfYa]S3LQr TJcnrrI7^m5G),\3.qG?cѳ5(ELKN7H5wS+FdlJ߶˳1IWLd#dJ5 lvnHG(CY2{M ۵TtJ V@6gwII44^/}"PUIe :gXC:8O&XS}o4&Nt+{ˇM{rN-W wU"+/ (r9LT)Kx}‰zܒ羪ж]VaL3kuʂ,?AV$aC/C7I\F4.-HΕo2o,3aKMIM1n1䫂5`v DHvfIHɶg<)BY! =tv]A3_ !î΅P}ӿ"6P5־׶UFU lBQZF2}$"pܤE ;CEA5g%5Eb^W-8p>Y4N)sM2\ÿO7[Ӷ}u*1U<2bB8OÔlK ܲQS-=eOB-Zbٻ&Mh͢hѪ)lճtʒ ۠H (Be)R1Z%gQi2NY֩!+2VbyHv,/(XHHóeLe1uP:n}ӣn^ӗٚޒέ^ogm]w.O8Mb*+U(S@cxg&R`| 7jgz;Mw |ݪa?,ܔ{ǐNdt{SUKk֨# -p`n(Z+jDy,^" Xe ͐uGﳂ.?ҹl*]үT3 s0M ]S8.-wMTZ5̤f8\"|V[7dɲ ٴE&Z5E67DMH(JI&B2!p\c!O?EӜ"Paq\V05 s`L-Yn5H(} m9eff;'_pCx{ۣ~ }^YtgM ˆkE׈h=eB.U,Rr eߝhG_Ǖ:$~Лyb..22:9<4;qqlEGM E Zfl$vMS"d)pa3 2T<61rr-g!%5>`5x*tU]3s!r aƷǫu}[ ۚKVVHPsKh2t.ĉ\Q&@HM5U{N+h8p 6XEܥ͋:W \.odn|͛d^3tnj3"᳖.ttER5S1r2ź.ӸZ&A~tQ4!1sݜg?p0ZMݷn(ӻ2Qjm[WMFؓd*r2nUwgNEYk}[YkF}7TJ F5쑐Ajl.H#<)W}HBdЌ"lL8_ʴtVq/sRq!O-Cpߊ,gԈr[gc)aX(u%.U1y0L'5|nZPGQru,<#hD䒊ʨ&00L`G>WzM!AzR܁ |9&L"nVTqTY{7"hW dYxBEߏw34Ź~Ts$ & (DE"4I2d DL`!qqc1EdP.Q.QI4|[&YDNV^p.0 [vA vu!W!qؚ5q-j  x #~9'mŹlٛ>Ƌޭ5V+PqL&CWwdtc4b;thNꍡ['/*z*BjCXLͫi(NbShɚʏ0Rd"QhGqun4MxI,Ӫw1۹qZyx0O06hR#Y1k5 kڎ.N"f-IHz8 u"ajtR]WpZZ,ټא]"j EJ9RW)cF6M$"p5Kba۶Ī[8KK|RFEn6MґVIL̝% 1 ,k05(p: 5DL{r9* nͪ%s$){ѳ]"pXiKN̓״y1{N8$f6OG2Rҩe7衔 /\\4u^"+ZrJW,'S Ejڿ.N\f&@1ʡTe Q9)'5gs+r^ia+-Td1R,F5c.P.'\ͭ)-^EM5 3A2T"/rNI5MUL`!s٫V[͓dllժ)n񂦒$R$D.0R&JRq;wx묬kf=~ʣ[4jOMRM"#YbKr U']袙.4z' M7؋tIuL5B<*`YyC!6+NX6Z_kvڼ$o-^E2E5po$PpRp.ȟ]$Oªd1~{uҋѩcB vDbpHL3;fj,LH(WsN3<9UMPd׏K9-Thki&s8I™23-ӐzXhXX^.LDwJBfvM)}9'`﵎D={G,T]ݡFakqs,-*Z~NN@O s.֕+j}y3.ߧ\[ye˺~xd3hU9C' SpR8M *>vhj-gk6Uwa` g.9Åo5uNpmmiD'f_F*:tct lS|YihYNLܺxlBH79ZrؚR(}7VWZk\;]2ݚ EfN3q1͓VF!k,6Zf pZI20VHFIt?"|c?15M8YPVzz k=^<M[1r-pdZJb6\[eWnDi-Ʈ=Ybl)!S厓_Q$VpA>Aw $NI8uu3V F{Tq!Gw=gw5',UhѰȮD\eIFkOũjVoYk4\͠pQNlcP-Z5ªxq36~1_:CNCxk R"du]B.;g6t\Ȯɜ6K.qm]k{eQ) e[+t% y$c'2I n W DPOwOZՐ7uɎ՛~qj(6P-_ X2![H 9!1KnO*6k֊r[Ekf-Y"|0|\*]E)>ƻid̫S54-XʕXlFn%!" d\td);U\W\ ^BY"#"]s&511w`>n@pqMjyۭgƊyEI'R'S WGJ "7Hy:ҝtW`Ci_TU$pu M*0&7rv$_kq1x#n4ǝ5 :\.UZ9f2.2l8+/;~Z,|8?vV:r%Y@BZks-^cc7*'"m%&D|麩!>"85jWW`utL"ZaGDEk.&!UE2\6C wKJkս:pҩH^j]Vm≦dl͓T`̇:H˔C ,M>YHU+mfa"7٢#砥MdDwqR#Q\n I*R iFq[*j,㴉g%*8Mt-6dú} g S&ZferQk _ ?).HLɰ`+6}'&&L rtOr|xR q/xY?Z~V+Z2R1i(9?~b9fĜ4xI & &ER9B]QW g͊}C[ F7c$󃔭;@h55a!3evLoQJlZօ]c_o"Kfl<*q^4vM[toNrٻv.EF[9Hp2k *ɪQ5 b1L\9QL;/]y~i7zNe2Ӌ)Y<æE|6s^Nx%klE۷UKc(-%@.>6 IUi!aI5Hc2 "9Gr[*鸚i[yu-a>=㖐=ABE)+gvFsӎ#I:u>=9rU8pKu]ueYeEUUC(s9c&r@ډYӷUQa⢬͘FFK 7l|X)K:]SuQePݻLVvVLo=UF6jEm'6#PpT'E3r\wiĿ]֟do8 V2WaY %rE &0T[5A$R/ʐ: ؂g1̿ՒZkfP);JU`lnrMc $7~Gڑ(rTkSf!!LM4R. BJBJRKc1cv'u%4v3{+V"5B1l"նYj^~KD;hiïtoQǙJr~GƒWV#xYW S^J-G9t"X9|&S`9lcBx=H\wm$.VJU*ѝ|68a'la9K r{O$]d&LLC)V)#dp// ;}ʘO[=4u7QS& |)J^tq׫ o\z+uj NMni ݒꌴ+X[K2V,2(vF/0u!fmʭ}yBR*5SNj_61Icd+𫜼dbMb`CYjq#RV%o-\n4z9R0 $juzͥBl;k=6yXY!Sis3Ne%}ՖoVl2xlfiDVvY;I6¥EdUQIDY<,bd(")L\WwN 0Ryͥe6`KZM!6hss1iǔhC 8装rjB UTIEQ4QE3ʜI'QE>pB&Bc&9͜Ll@@kSo6$ְܣ:S $);&ijxBT)Y+dg _C4UԼƲAgo_;]&훤R9d *}c+=F@c"^.T|5/4k<91: Ue/)vOܷXbMlu*U#-OsGC>Enh3b>fP52Ħ'5Lf!ի/k0s<Ƅ۹uFȅ{^ՙM̄MM6 %Um6W2$Yf$d ({s(V&rT3yka9zz^߱ٓjBB,q`3W&[|ݍZښi֨.$Eu_2g= rvK}8t'O-CKnN\iVv-.b馬lE+rɬf16E%xQ3I4Ahk]SHgAgRjNHEcHWUyOURhDRsl xӐ"5o[cܴbW ͋6"f%_.: !' 㢘y ֺ;]VuC9\of;_y#"DKT6jrw/^݋$\ )/ޏnVX"#z 2~˞xܮ+WHmZ ָl1{e!M,*fM4^JF)(],>Cet+156կ{eMeP2ۍ`e8+ NVfD %W 3xg1{lrG9 S}%SuEW {ʌ Zvd5:uiD_|cM@: sQq )v׫Se)k^붬Yo[A0Jf[j^y"%x&zcrgZZi"l k1 muO9 WH1qK]wηm3{a~BzxʶO8W,_59k4zl$=w1۶ztbiuG9?>%oF`C Tii{s\YO퐮BZADbd,vWTlX'ktޤqAg;MqQא"OQ^oB2e%4\p$Y#D_L괜/m֪֩Chr OfW [DYkYMYYMO6RV972 ZZG HNFo)I]3AsTbʨ5{v½+3+5' !>N14ыyhM%qt{#`Ke8Sq Mf!ԉYvȮجVjSeBguv]ƟQhl]Hz5}HVvs ?ŕ|&E0T^w'2CILAjmO{DMTRm - sG¿hJ6hG([PCM~\#ꫵzw۹] :StH*ȇ Vd>7*ND[ ߩsW .GS{~}F0ֈPuFuY<͎791cWjvl05P'tpתG*.R=Rbv%Y~mgR2G>ui*r&jbRoS:p}a9}i uf=S w[g>UE{=ky {:9p(GnPI`k>puG1S(hֲR6TbuZ]CqJkey[({g=zƾ)8YnټE[tw.i隹Y͹Bq=̧I< y|M8yog6 )UJxqݘY58]/x!t[Ry7X5n̅VZnreEUKn3bgos?+EbӔ#6VSv0c`;ߜwB=0L<0sR׻WFlŋ_m+b?55B=<$ҍˆEnl/%to'PwO:x''=Ϣv}N3pܬ[6%$]Pԛ=:-;[uU$!,EΨ{ԟZ󲪫ls^V|VI1jZ'+Ժ?:0Q%N u({z CO7nʪ:š m+S\hٗn&bBߓ0xc589WJO*ΎZ)=H"]H/#LSѺpyQP9:wr4sbbBz$&٨jɵ*(B"$z|w-zO~ga5^++ m1UigKjc'MGE$\8]\upgЏ:Fw^J#'lFkZ"[Sgmk-M/1H\W~T?&5vjtkN,M:uV[tsg/-2uF$U\dthrQetzheۮ>J׻/l[de~2֪&[֙dg?).> GK@eL"Veʲ]:?QY̖柳ia`nLg| |6fⲔfcyh '.<{In 8CyZIX9*pfkq2 n)#$R*N)ҭ_$Rl|ǔ&ڜ!˾gC$c`)zgKNFƹo!ST &|1U΃Bj0u,9u몯E[>Π36䭒RRΟJZbƒFQgTn8iY/W.^jGh}Z"ALR*ESNn^7b8wHDg ͲU^oY tP:Mum IlRUY"KW,1 <]Pre 9{mg~7mnSn4-ugbLi7gJ]>YrO1eqŞ:.c(7j )ӛ5>IhHU%5Z8modZN=ХWEs2W_E6N5PԻ.9= +)!m]ސך c6oui;Z$6&:2nP+|böɳVĝv*ٌZu$r0AE-[WE 5cT>?\x͢>js kC}*ZD>ڳ^#Wzy m4. V"2 zƽ#30YEG:IFỹ?Mo?]P]R>l=+%kO[-%\V|XS`"Nѷu\CJսt+<~Nq]#tExy)9$Q#v}KS#3ʞYgbL'R){2VvX>>rovlZG8a!)"cN9W"Z]'"}CŮzMvF-QD?fW2~ƺ$<$}=|z˭$ӝ1&\8fc)T5^nQa"dNǞM#0xfL͒3jf'UUY"*Tz}:SZ8s{7JMҶ<:ӎg:ѵ&ӁuhnٮZ4UU[3"k<~W!P:{1\TԹ=)c=#7FjVYHjZ `qYۥݵeŕTAnlv9ӶieROO_ZJs]ӂ&Sgҡ1!"8]C"':;vt:HuǎRئ9d[` 6*܈tv"Y9ضn8:S1/UFQP{V iy6Yr~e%Z{IKK^bWp2|*F+4a1(q9?]Ў,Rqjse!Җ~F#NɳX3Fq' +J.S")UWv&I&\EP"d&2cJ\d1M.ҼHv29@Q䮻NikDq%g};- eo]4 60ɚ HN驩EQP9aq1sCBqD 7Wڶ!R6%Ovv) XE4c7З@usIDR@VҰ|0on.YI7ZsPq)õkoȮzF=Dzܢbi%ʫbMHkaŝi/J+^v@1<"U 5;8Z;]69dE{`Uk+Mȭm';b34Hܩk͖Գ *d!\lֵtg%g*\SWuΟ [k[Xkhăi9xȳM9r VtӕfE.C]UUv. ^&J4yز3Ǎd,6nynU["ɛtyvҧ1uVrAKӮ!Txc4mɣVwå_ ,z\r?\Ohq101!bX'XIJm,e&f9DR!|f1͜_w5;V狛^fyL7qTaӱX!]{T3$3H6EC gW<6iu}BF)vjOT>!RbZå=zㅗ=)q:WG'G ;ގ ݪ^q/JE>6*FF}Y(8b:F1%H|uK']o}54r̵f2}.Q?RkfYk%)?.\"SIRP˔B#0=JzRs"ZЂm"WpFz;*gnY4kz/P:zXqGOhz?Yjj-=ejp7zU^Yv N%{(w0C5htjڥOtpnGyW*E}Q­{eI,|iNQʷ\EBUy;W;MjQr`FGQ,`<7 9AUH &s?;PHl{u ZG'6*h(l*xw%=](E&~ , ͹E ](Ҕ= v2ΫhWB]2%rS;#۪?)hߤR>5^nQa"dNǞM#0xfL͒3jf'UUY"*oDce&8C0ydgƭ?)"H+ydJG G5 EX9EVjC%F9.upp d..:%,bY6faS)4d$[7O'9ϒ" 1l15l`R.C>`HE۲p!Da".u0"5|d.1A*KSj$>dqYY/}ѯϧ#/x|k0ϡ&M׋TswJ ykʼcvّq#Nfη* f6ŴTs;"۽GO958oS;k]Hjjz]fGڼ~/i6n6jiYGfoO9fMm Vvo5j" ݳt6u$PATETI2! -v g]^q\BVC:{<;iԶܟ9;x=s~1dVŘ_U~W#7%-{!ecd[#%Afj:\C׫zK8vyݯ%fNjzNiPBs&[*j>^I,Sw0"w)kHisqILmU$]zՒ fk62lg90xV%QV}4FlO!WG5Q.3NJdXw#*^Fv;{.[o5R[SRܱ-`%b=i: vK>EpdC9R KI:t*L8'C^}|:uK"efl˶+[|,O+yGznNCi=k(tL;xٹuvm/4$l[+R;0rg%VU)эD5eڛݩ?O?޼Қk㌕1A3պquyPA8J}D݁\VLr?5"YM8E4g<?z.xvEWHg vC$ LȬ(SB9r\Ki5%"Tz.WojFע"XIx% fv>oZNb6 aӚb%}W+n;{,U{7t- 8;CڜIkrZ~~Urmy}W^=zdmA?o|'F}krAgR!}G'ejYF:[>`sU l(Gvk;xS2㐁Kj/|6n/|oV-A# z޴#Vifj񌢛%$B{=Bu飦,:[S`X2|T䋨D:lYtrh |yPubfGHhsRoz> :ח]}?y9hyn4Fli 8;[\dkCBg>kɨtfr[X 4nqJu.y{-)3Wb֦&εNVcg췋Kصd~ٚDd#Jջ4-ۇG:{}9-մ~Ժ:j=H=Z.vV}x̔MRF5G{~!&$岲3._=7q Qͽ^^ab֥[*a&Hl9_.HI8p٪j'(vLX7kt]~|#g75jXDZjfzGfJ~Hl;Gvs*wCBuFN^@̙ ȴKyu\x1 au ?9#ة d^5S]2:b%ڸ*k*U4.0r8yH:TV!xԥ$ѐ, I#K9j& \7S/\O֝&5VKStޟSU|k=FQ)jԎH1:9S1>eooSd\y5ScjbVERkuݴ2wf:Xy)TdG-'<??V={˲[3O'rkԗQdKl) }9CEk t>^BlɱAzJ*գӏQ4w1q]nĞDZFI-J[dˡi8zzǫ_<,U[g $wk-:Uf~ qU;VD}QO{s;U,ikiE0X<BXj~l !9D~okvžy ʦv(]~T5*6VOq4Y~kAgUO8ݱvܬB/ON$3nU a~&2r*{0k'+&dtKpTI%UR>i\`.qS.\/jcEbWJ[qND<ʹ+`𯙐^u0J:Eqm_A˧v%R:ig[m`/ZkX&6 s+ 8'Kڱ&CZ+x?{E&ΝUiSw WԪ&d[TU_1 SqN(K` 2i6Uah;][5r (+uzVUKզz)9v"rSioJU*j#*DNSLD[m=2;1SUZd9J;gj rgQ,.✓- ѕ`QPy6W8|t3Ysr(_]/ð+zDZK }1\zIպߨ\TZ5RUjTi]MN$*YEDhžUUrʪLsDZ>{ߙF9M5,:Q#6m]X]+*5e=r0y&IYEN#̫R_MuYs;IGZ܃S77ةeI~W+f|^!<$Yޫ5[uL~뭗_'"wUZV2ϓ*)$+4R*< KnMo?]P]R>l=+%kO[-%\V|XS`"Nѷu\C9"jnɳ\)*f_ (ǁB֍}90H ssi}mu[mnBWZSKVױK!#9!m}dVrqKv?jS,wtqu;._U85M{]Շkx]Ukn˽⎳ >AY-_c 6{7kz{67 ]V>R(E*X2Eӓ&L:vD͕^ v//<ސMzU[]U6zDh~Be]L"LGHٟ&NnvzQ+7,C6jIq~eY;*sVz` ^\'c`a1^{\F6C׋{Sehm]gQ3U>(HLc 迂fbF2B*ˈ)e-%!-IUTSu=mW6Xi.85[&bEV\&\} ylK2oYMXcys`j !IмED]l-IX]nQ@_;'ly}7N΃j5pjԍZ[R&s(M3K侌g& 5_;v{+X>k_[$%b eed?Q<5~Wp;|NۢRYr+tq\~iӐ Vuũ2+gҗ9xo.͍iҎTT12TJn3Lx6ٙR#^S+ 8vQX/Iba,&JL#ٔϗMAbR=Ǿ{QNk5n51ޣJyc!J,U8MGR1hG@6a<{A+j i,lOD5sXJ.s3w/OWE\c oC  ~9ңuڍ=O|FQp)Otn+E#B vcžL]3,”1~oNtvX> ,3:K@ΖWS\֋4OT[ޣ9KF=̧} #. )_g|+n\ rʒ}5_A.NgFA9ﯳ*^_)]KY'+B?jA"ٵ zl~vw# pY.o?af,KXVf^KpotYx7Kwx)֛Jmcjʈa#ĤaVlR~&VJiIu~I6 32(uveQGfv֑j:c(zlCrWg!w6lMack(B2f Fth7:{oڟZ(Z'iUi'S#)qynKX7ZoMaI:ʭ7\j (P;~{jo_4Tɕ$ѩ8JvԖ)}及a6V3PX([EFc[X-V{_4E_E1_fu݋oRn\ !bIoWm`w=.o)ـg4Q-Y)p;Ք[bh&xͦԞFd!|uwr`@FI u>Cy5;0~(e,Y3ٟ$HqDc&[ nWT酝w^mkԕnvl]5bX27Y ݝLdfJ6&o"vzNМ׺GOZ<td)+ңvڷ u]O+L1$b9j|9nI5A$ΒċC&̪4[7eZB4dlALDHFI u>Cy5;0~(soLb67 xH dQlnh $PE"a4E$R&d)Hd)HB.1cs֓?W.AK|jwi8`>QxqWaikʛ(^dL1Қx*uld|Cw cIf,$:G VqǥxoR9JmhDkg2u(&@ؔTlHE{& I.dV>R3lBGԻR2d[b jik4*.AC64Yk U{CkL^Zd5[jӮ˒D\ÞEnZc|00r([;_m16Vs[iH&>أa&X%2ҤTzh4e#|/2viwu{;;}d:8mI7$9_va0=wu۰և\c\}\Y8:FCF:b"u:D*ܤdVH.plDbg8vsݜgyh~|lMB/"E'55J3iyZ6vR6.2c'tQ۹,{cdFgy~mgZ]osK{anT-ڥheb]!(ȴ~ϧL)Es&ce"ˢw?\q|n]aME^i-~)v6({Hdiמl<)zNE @P|:t8W*{r#;aoV36#|oR=uݖ'5hיJ ͎`EtZTn(6'l+Y1J_Gq~uPnS^ˡYnfsdV'cy6k܎Ԛ -e KtOzAqZ8do"ſ6m?% ]EAJ_0i2rSؚU,Dπ ~umi>Ȏ3迄;QD;MPB1w iulS 1\#.VO^i~{3yE_{ `sEq?<1Otn+E#B vcžL]3,”1~oNtvX> ,3:KYvΉ쥺W6Cɪv nuHӚu>sfbA=U&;0:5 462m !16hR:H̝Xf)p=A?9u۫ ^,JA΅-[ n񛳝݊6.bNn\F;MY,M-2 %ai8f#6pv`}nAf=;#pe|b *sl0OѯKnvǙ-u,wߜsBJk&ϕdSRքKgHK5|m1VI{l繺n{&zqm*|f0͢yU-S{Cen؊HvzCC20ӈKnvBvw,_Ex M[7o^̻cٺa\e<}(zrdΑ]5t٪{B~ͬFO[/3ViꞬٓoR(nG8Y$u YM^ksCK| M-h6UnmuuM3;b0{IckZ>}u.r[;GsJ1iX?+_Z̡Uٛ=u]:u(hgjͷ34jѷ\wlUWi^ h=am]cie,sj;Sy?G r{4XVS9Vb8DיM+NȦy{Q ?bB^jHb#'rvsulpL`@ۢ,T9Ja E{0[#r%r"da#q͑fPj^Ymτ;u݆ {p2}e_5kz7gEohq򁸺@쭏jqcke%Qf'LuD5&g곏'lz ӴlIsɍ^9q}r ){z7Mͼ)7*𫙫ҥ-F9MC#b*)e<(\ 'IL&UU$l'P6)_?erRM$K}K[=iEzH @4%=7\{ݜrHaz^mab Y }&eg!URn:jf*&D9wpf ]MznFrEh{'j]4 bzd,(eR DJ0Y6!۝g~{l܌= k|&ُo3UwTϸ SdUk;ic$$U.=:Zs]NrZ/Oo-=QoNӗ/z`/VD2HH|7N 0h*=wʽ̦X:lmMdQJ3FIEOc$`Ixs۽T|Wԛhf`7}lA2N1]9rIKBf"%VZeG -zomoρ۳)s2'89#>5}CIҪPwml5-r (zU#:GƷupγx<; ۋhȘ*%? [۲ou)uU<qy$XE%$AgsL]qǞT뿂vC-Dno%l=Ty riqMˌ[%y=wv?-ҟN2p^Vx黤3a.Cg-:zR iN!zbѡ;S|+$)!SRUџ=v[jjC,Xu=_{w嘺< /-ww\-ceKnVUrJz7,Ժf3vBfg>Wߴz=uO>un:SCDuhkɳTsS?(sT'K>xpӫQKKE|i-t. rZI_n?hT-d+O/>i3 ?wEh> =]F/3)/:N?:SY5kGҌvQSX>X#x=llG!8ğ&=Y4 _j,PL1Sv fl`D\RPHU6QK^y{=b[3G56\̻IN=oiE-FPRt@[+tK\x B!HNz$~‘}?DV7ձ+onҴWIIv\  "+$g"\MUqĻzyusoXZ=*5"I6IuL2rp cd.@/Tݿb}!w}J)y}rţ&ŗ)yj$b27v=ǃ<&⦅ iv}}j'Rin; R"7k< >QÇpȮ(4?tWa?QwvL1wh@ DʙaƬJ" : GZGZ^n9ߘl5:;s;\Gbf2ZW6VQvsEps&36N3g%)2lc9 xsc93ߌ Ntxs=Nޖ[.mLB磞cpuC*E%Zn艮TNgP 3#^;Sy+P׵ҰOlJyWKo'cVlpj;ۧ.)Z+lzcxc򣈜`̭q>OZ Rny |kO6]̜HV\P|6MtL|P`jd}$Cx7٣#ZN 'u]a8Dg Ho xn*wnt-NfX^#!?^`Rf)sHMvΓˤf1> ?]Jh-XD}4٬ݹQIt*\թKȭFk9ITA5i(b`ab4 Z4ɀ2.ͣ1W-I'O% NTN|5#dCTw(N׿]&}';- V˧X)-ш뱳rG֡k{#01i04;Dr40/D9zFnf`;;ZVcȭM3n0*d_Q).8bCWU~?ycmm{Ֆa132]f;Ţ%Èi:Li39 %K:Ir'1^L}}ȴ{z7L>gU1z"dٺx" %83b;ܒ>H)ojju`yhf'[ZegFL.MLBA7 $bVz;vwT;1;ӖyUUU^(rYnE]bqlLDr㨟%,9-U'%'"U9ʺ|^VU"ryW[vy|HT{l;mIa,)kxSs?unikRamOǥ7T;̴Cf5/JvD!؈x&#`cpI 8I`luٴ9/z%g};!-Q*i4&&O5g q%_E2,"LwNF ehP̝lKD vf~#CuY0CmO7ptx rr/XN,D/UJrW`Ɲ,[X-1#'h0s1LY3Kv11sל?ypY|u^4O'l5 \]nH$-̐gLQܒ$UeU W"v*8S/[؈ .=K9 ԷVnk!x7)k곾dTt.,Q<1虺m$+ޑ5/Y|~8Q&-nj)@2v2-%w g-UJfn5X'-}n:^CqJ\VIi2UZ 2>~VZD-;n5 />9i۬M#fK/TԝA\Q/ i6,zJ!\3Uer[]znZB#aZܐp-9?;-EűAw2r.d\]$S9CK+`-:'%uVb%jY-'RfEXY zve,|{#\If(usQc'SqXk>|4=ipPkiaU[{BuTu4L5X-(^mF=sך[dmw{Xb޻[8:?(ݛ&.Eͣ:|uv]=WS3_vlMî5Ωuҳ |ŞHDצݨe8V>ay#d[t\pm;ۻ`nt4 eK\\RS8j:6[B.]jHF-l'ni {8h׮o8̎@pcpO Vʕ=b.\K__٪7%[ь8i `{8*:Gm~37 |ձPYZYfmv=h;㞺[a˙¶uDB–?эYbޝ!_ɞ] ֐ffqO>p͡R;sssDm_cT=8GKimCaouf/ƭ8-iV)zF ɒ(̓zvns6_ #7_8uͅ4m\:Vq cao׶Lk5IԶZNN8%Z^ CP5<=ˇ;#G!{%;9kT/~|%w9;1OĶu//9-!E;Vv B>kY`+K9˜J~^PFcHX#r՛.]J]*\(kєf4IyH.͓$\bKE6\ .;7Ο׻F"vUvUC[3T"N#^*nEs,_Ji"doP>o9lZ\ +gݲnRa?HjX<)] ިxWXN$,N3Oh}ed""w=NN9 qaQiܲ7wx_;S|IѼ?- lvY phz[Bʄa*rI;g,x+`#(l=w'ݾf;L}$ qG_6|t;{7IHEptkÙ[uܫ@ٚJMAϿqVۉxH9ju\hc5RIk72_m1, kI9F2~#YVٺETEC Sg8_Tn/VKn8J{[i_:&V43Ƒ8_w0.-.| -7#Οw.{S܇mc^Vr,*uYyg #1RIIW :3,$Iދ}o[C}Jkab=oO^T0[/BڣQO3jޯh)b7WG<"Mޗ0KDzHT׮n\:yq:_{F:C<+C_ < &4 E<>q dѿǔ{p+{0,?:nav'Guvƪ-qN_ٸ= -[}Ogkcđ<܎# n#_h-Ev)}kkȷhe'ua{ ˅ߢ6q,PUVUGj*hw>֩hA7uq}?:USD+TJ䕞m1L1#e?xKg93=޲Q-=;Fmvs;[6""¹ZM4LEH2WGf#Y &n BSùkR;.|#|fe?@vkj0N@;WpV)y+e/Mesp*/Re{WL]r۷=A0fFZ9 3Q:8Ip&]\oNOVkSKjI*ZABl5m3Z-Ve'WeEpd&w JN))Mvi+ވ*ċf/Y{݆6J2Σ{fN(vE}vNgRrTsJ}@՗}w&hjݎ;وh^?g|u <:s2bord"LlȞ=k\3=z04cM\ H=oj3GJo㺜B v$5^U7r imѯbp5l/ZScū|+'U:: #e%1NRl`1s6;b383gR/U'b*Yu<-VkE sJuflvKSr*jFFEͲe...VO 0XܛZrKKJ?v0gR/N&0\.0^b"yOzur-[FE[ywt9z^S6i{(ðHkhtPx1\صzQ܌J$/jKI5g) ]My&Mgr곳2mavAڲsp[u4зkQ7 EʺaluƉb0STb VnN)9Ϧ7^'_8P6_bX"=֓cۺ"^2 T]K5N`y30L~)}5xYgi;FtbñB~943$c)Igd_h*S. `Q<:q^MKLS`Z4g؃RQ' \۸1騃v{)(˫1h}[K\f: h iߥm}"W[\Q>ɡTQv=uD{<;YwWmIK*rCr1ߗ#汋,k=*U]3t4%̛X<6Kg:GuOVV-yLhHSX4>{BZVͤzЏ^7e6ݞ)UHe(PWJhqDZ|HPCOS_A%f:vE"y'\Tó.Ȍ_)5N;s('snhZ_aHJPS*`õd_8MJg߬&vQ Qz;Nsd],L.-s$E=~ͣ"#v&%'ZPgk~n=PrWz N2dR4NLF9k=i ZQ sm6|mFo&~~w:3{ yؽ˚<ض)PxG$I=dZzpÏZ#\kYWF5b,Ͷ*$v4E=ruc5Wَ>IP.<[)WtVʓg.cj3UC$yNhihsn"'wR.|N'*lZ[tFgu鰶tZ)r>:lMe2u .1(C:O ЌPrq+WtWsͯ҈nkPƿv6]iv {EnU584"]Y>͊Ց΢F_2 ]v+)]3uA֮:+&l!]2:[ޗۜme'OaUݛ8gڬ5_N ջD$$#䚑yڠv:lǮgj=*F4me'Y}g讫AR]\&Gmȋ/ΝKrո'qj%jQldk*tPSlcfMYi:휃tQj!r?֠!߳]emz{rGytU3&?3_w'2zFYU_XצI7&ywdUvml  83g'Ȱf$Ԗ%}UscVN?vpwm\h^%lf̬29#V D[(}d8ɳij kWm~nMf ۍEf _E7B8u/;*C_9ł))6ɇDL(Z&yCxsE3Ikrڑo]Ǻ\{/1s j5}aK4J:QOJK|ϤХvxoϳWh*hAFp=M%boFJJOAK9!$^]KR/b,(jR0{[L=]g3VMA1r5$ǒRUcGU |V.2uD\a5.H`]ڻ;+_NDXkn@!wwn ܹjm("P7/JzvE Udݢ8u^hY geG(a$lj=ηv1 cRyBFf!7WK7ˉ2u:kL= ^Ҵj rMG<MK8xO1䔓#+")'N:pJ :WlwEmqhTS`jS:&Vqjn +/'/(*?vP1W}[8-n7%x^6w$..`~\F4 G[ )aͺnU]|DWrHr+]LotEfN3se7GN{1lEP%V2MܻM ( MM[?ǂkӦ`]vznl-A}nQfvj;D:e[:HF7!5Ty"ؐ.Bƹ9 ">tlh?1 &#6N%"'X]mstx\&s &H靮rʜN]hȶm3?&Dy>9CY:(݂F,ȹ)sa1N)qY/&>2NIP^bĎz.ӔOiueOY=OiOR7k!Po5b㻕;@zuJ+$^Vox驏+w6<&Z<8]z_L)uNP)U (:_S)x0Cr5`؄IDqY\Š!khUu=n&NWJIh-1ČtQg#s&Xf'zuvSۖs}c[KWv; {jP'ՙ>BBhJQ dLMV偘+X:GEߴvyUhb7zQ q-#lSh앫D5̊2-`lb7VFUN'%=V1F=uH?l !4kcd~ǩG]r&RqhSQ"f.c,%/ ` 1z1zY 6QxUVޫX4\8#)$RrpS LD?YC:Ude#6kt eNV**b8kh;ֶ0m٢AIC dtŝN`.[ U^xs'Z:pwZAO ԣ^FMRceC*)\/,Xo eLxU])88HZR/yi{NEPÔ؝`ZBjZ\c(IO#۹Ni6q˒!ǒP[Y¸DxWM8h=>on}[[.M:宙L1L775_ЋCM5µdXMqv_B(Jʲu)$QϐQ9"2xU[j%p$\g|g7,{z6My?wxN# R#թUͣya6>6peT:*:f$19BCxܝ}K0˖5)6-;:p.pYfTL"'.[x|Xr߂x.{DvMWI@n~߼3UBnƛ.5mFfvvdH,VRp+BST{]D 1ʺmGcڴ2fYY-Ȉy~Ͽv^a³^cljA% 9538qlĹ+Y26D=VYؗpǍ))3u㫍ʒ$@V36bX O(&(0Q-ٻqD$ݺxS#lжNfj _Q^Al˥p:Fb)+-wmR:7g+9yʆ+vZv잽~{m^ךґzQ!6|%r+[/Zbh-7NO5UMkHGIKۯ Vt}lmUz/W_UjtZ> ݆jbr4G-cb$Y3o QM웿~Ӽx w08ѣyCTj*kl٥9'ȚE3!d#W5X㶄0zcWJRЧ5n\o;Uc2&$ɴD]:A &66¾CSf58(ZZ"YEGWa"Z.&9"X6웠ћTRnLQ+>: tvҮf$7jMG8ۧNvHFyUTȊg9r&'lvj:㐚;`[:-X’cdՅ$qHv2xyNٜNEoj4$6u3 3$ػ9򅵳GVf d s# nQF*VQӝ]gMs/"7棈qpPվ6<ᨖsCrTe*/ݡ6Ձq++OEǞ^{i%'[B.f1`o,/CI}!Վ5FP{KTd:ryt`9^곳q;cDyz|0mM|e7{=gzr7'E^4lU*v )]ڑGus+:-MX3۸,zTa!pvlޡ^JZ%]foFU@/-1%8,{وVžniLݑV;h6rn,Cs>|ݔh䫽c:t>qĈَy.o (wgd2:+jm:T{ެNj9ܤl_v8-ezcm,6~PQp<{?nkg'Rh:]ՊoWzSpd%v3tbYWHaɆofnb2fyoUd莻[Itߋ+6d&1ai rac$iN1)0JQ3`UvW(qqf7׭aiJtI<Ɓ,=S)/^(Pmk]]cUZHOט=\U۠,ѝ#8%uǒ2i֬qQ*+h4VUı<3W+l-Ol/ck72ۏ.HVH/ޱz ͩ9e]t۬5vXIԗ r/r2#ФKIbwtwjؿ1<\Sc;:y;l_.N.[n>5t٧tb&t~vemM%uhh"Ҫ%bpfߧ>3-$:`µl6e}j!ä@3UvNMkI3X {IV[//ڲZvw2٢D&T#(hiy2i]cXK(\qg91c9sc?1|y~`D;KG4;=~`Klj=Ӯ9,zkkuY>Ö?l)g?\j\c&qjl'Vj^BʆSݦV.KcTxZ%7hNٸA8b{l:Jm4=M];ϸVnAɠhthuu H8wtŞa3 9I]H/PqzW6gvF3}kk8iحl#ƢWHcAL#Y,,U"Y1rGH&ՂN>9Gn[$cyghd9IGL1Kn\:v::k־OH7-blAyJktx~I&)$wG:?Z:+#k]3.rSZN& Eb0xz,%]1dFHl=}`wxWod^"wz u}iIL8-Km2ѭQCNPYDTD3Y?t3ϡS>Zۨ>ަy:`f](#mFz25HbQ}fj:J:vii7<+Wڻ.1RJPW~GuCd ʋxn|b˶@;TUwƜB7ídHn+ԝ^e,qɣx0l9`;~=r5]]T^񒭵y*Dz\lJ.Nhc*O>#f/Ѷ^>qA6[ܒfsXͪ+UwD*6f#;U3ʮ=$vw$7&oZ'blNk-TKK^\%<ϰy|zxtf$mI(e[&Ia>JFiv  -(Տ\03 i7vҪ^׬ q vci1jxq ʎf(vCrr tm6ف Fshhg=%97ttԅSfʒ`.+.Zhޠi;,3MdJČZe=f]@ΏE \Lija[-j7W) bH_(U]Y7o\\ΜfX|~ZkXn: LIc^4٠YY*VH؋=u͜j%˶rA@fߣoNMӧNxh[-~aݰqZPRj=6RbF ͖^~E<*P/l! 874fr6MzRjkΤڌk(6 4jPEuOY#;IzߠghW4]t%`s4#WY%1?Zj+uXʹjAl(蕳FMw#;'>mBJW:ٶb#TE2'h3v壥"" XUYʡiѿWfi=;nc2Soc\}L=iW *{,,]<:(yʞ,s9!3A344c5 =5L\=ڜ(&bWնrE̳$vZGe lzmh Ůq_'NOXLlt)F4T֭UBJ[jTy%yNa5hE.{cH2lMg9;٫OtCnbFqJga?y)g6RҲ5*kʪI-c(kUK%aa],bSۊS\kTۼ_̫lvr-_z5ͦ]ƝHӆN$o#$lvmɻy0۵Ƚ ̓"Qi d)};+T}~v\*S/dO^xM]I]EctR ƕp;!.z^y37I[FQdA'onK▄~_k(('%6/,vPw`Nrbͬck?M:$-vFז*ʾ`i1II80*7L^֏k: ^!*\nLm άs$j /ixvhwJ>, ElrΔ+5FY&!O\wlsk'k[VVEgvu0_,srHsyI}Bqכ)yH|prÔ!Ar9EQcxk*՜'q07M"ٴG֬b[Uj<.*5P>ypW@ue׋8Z4D:ȱN5vHYE p2͝GJż1uRu'ou9O7Fsi)*oc=Je\PaS -`J"ZV:tR8#/Ӫy-*Lm-BG3^]IdB&+lb&UCct+;TXWpMY?56zݙ+S9V׶ي#:| $vBXwZNʬŘoW5_Na[[`^n .Nhg=o_8+*/T9^lg&Y斢(NW=7ʛ^| ϋ)|`q݌q\;]Ifuɫt6KsnGʺs 1-j:*9bctgvKzv{t`.SVJf6lT{C4Mmv[>=x9DZBH&or_7IT9\8Ks_ˤd|GqV:aa"EjI`Qzv?qwcĽRY%+LeqfNٙkSx̳ACJ &0tcT\Lca̜5S,"ceղWtu{3.LdP޵ݝG;7w|iq*f٫5VT{[_lL|l 3a'D@3YE{đH`M+~i!"uMkY*'!Z]WWv6L wj;rk(*GyԞCNfD6h-*35ֱmЎodM cՑs<19;\mh^,xR|qJ#zXaܟE8Mf_V_6CFC뻃 U)u4nT+S%^N:)p•+燷ه5MSm͒rN6EʋlJ5G $Jλ,/1^a= 87gsɜ3argb?vq U'ӳyi=9mȉ{h8Ԧo&DBX#gl0RL.YGrH>l!(z܈5kɷ zuZy`:jOA^bw<6]'Z3;M;\">8b2[|MۯuREa5 -ang&.0g)L\`yshG!qoK8ܴ*׮w=7!l7zyyN)]%s%h\ıc(S2%]4[8.o8OĎ7_k -rrI+6u騊'RQ.Ws) +FɅ:#_ؤ3xUDVeKUڟl&ِדsyODό6 e$a#dffdDD1w'+)$QѱNvIW8Q4[r&CgϲuȜÛ-ʱXޓR╎gezjͶ~j竩HX,zJv9Ww~du/59Y659syK5d;y t1˟-jzD%*䩨r]~zzsւGZFzMCGQ4upiK٭itDlcG*}ԟѧG^qn=1ҫ82NKh%k^fXkm tlh?>kS:poKvϔfXI>J|-EˮņE2S:#y!3G#ZrFnӻokW/5zB|Dk^6;eT`IwGi+N:͡!~rD INt+m}Xq rC>&V3$*tLmڶ|wE7MWm\&Ul%ۮȪ+$sg)ccWK.z&v"nݪ UqLu؁=IǿU'1c{:Ge0.OM3#vjQD5Olsܻ?O=LWm+p /.kg;j'[28?M[4vwm )9vnYu^ƹzSV"]"劚S| lc?lMu$>BDi-akLn"\ b&ϱ.# xz ZbA,Eyw{c.T8.=NAeFSVlJV# C6M];VaԤk|#%3Ż|0SltO?kf!#/偛F-~{fDpEoNwAͱOnZ__n}=xƝƊ! tg+)81O#aEed],oS 7K ǃ}{轗"{<-G_{KdImՍ0Y{-D$lZ2JUQg2 ۛЩURA%]DEΪ*rI&\EP 6pR1c9]Aҹ+eeƱ[75rWRfޭq;=jOS..wHg,CO7itdrשagպXaF;PYfJuCnӕa#t+v9s25{NDCLǑr&J$"F6|MZ:[*:rd.C8W8HSvb]/ȕ/pq>|ڵQMu#DW)z9=7TetDCSjWd &sDMlk[UD3a wU*ĒQ%%-bf$5*M?қʿfRyG%os1_̤,8|ڝK,i'XҫNF1[C%'_$mĢ}vfr cuSkcZ+Bu1V1\hJ2z5 b՛'ڭ'8yUg"MZCۧZ ,hzYvp'8/7R^YVIJ̌ vyhױ KcTV*B*!ԿpO\@!W_tQF4SHPZ+=ʼnYwZf..>1^ye U @g֮骍ʽmY#]Xh虻詨YVe#^s˵p̚sWn޸:G|tת+ǑT}akk|5,׌kӯd!GE_3/M TP5RAĝF.}]J:rw5K'P<5gZ^Ӭ/tg_O*| M(uaj&1 䍓qY.[J,Q\zumKncwZn.M6N䄋TylGmb{gbiǙHZp;zohx=fZE٧b7j,Aӳ۵n,&ݔ<4sv蘈fm#c8.tp#kqˊ; mt(+ aXQg4RVX83$21I;URԇ1%ɾtռkmAgWdl{l%};-ffP#Y3bܤ;B6LE% B,uqh.=?[lΤ]J9l"R5EjgƮ R)\{/F]"T\ 0ټ1ؒݻIӌas.Eqz2vUֆ$],h(j̧hJ.ˍmZཀྵ݋sٛx}wrW68}:VRsy)ںEF8yGIKۯ]<}^~FƔݒ[-%VOtS5U51{bZ r@pd8jrVxxuj/kkȬT<7))䙃N:ԇzV:RKM[-;($/uiGiMFCs Uxe"Ni>n~W4>zG;IYF12yr]t I'NPquV"hQNg5Ok{>b{ahZmVEX dfg F+74tԙ͇jg .X.AV*N%XM&#Y9rrO8Vvr6.gzt.=Jj{KֶUrNXWUn֏b]iVI gpW9@ԓIqA3]XS" tv:h8M)wdAjU~բ ]ض[wS]_ug+q /*4+vκB-:dn}yأ(_sg=%NSrsx?}f:KYےdVޣR2p1׭feEa< crxN{m1meXovY$|=zqq˖5XYҸZvu_E RB)WN.i}7MQ;0i\ecm/ Y:/.Yyt8xsi^5,}W`fq4YR2)H,{e٘QS;;^zIlZaVlB .:ߋ첡IYa]>Q\&Q]s}у@8?m5 [ִPkE{(j-M*gmm#9$fh,/%Qc$Y%Wl]LdL8nDR& |d) l8)d<{Q_?(w(8wVN>eغ~"0 u\LH ȋ(1#eߡbhrq.+ŢqW[v,مvָ[z,淓Flu %l!1];\5m?yU^*EB%]U0)ja֖hXePd6fܧ9 & r9+:+x;ŮQRycn>sж-xu5_C]D-(R2HerM4>U5JyS5ROg?5yxzbi;Hرo( 2=⬎=&12t{woIfzލX FpqheӆlMlr>5^Ke  _'3guZ;K9 ^_&m*Tս\e!]Ղg5jW]gP&ps7״mtO8VM{cLue[wǻG޲ѵAW(7ݡΧ6aJ]~7!(V9>*J&ܡVS-e)pN Jްvܿ4gL:c& *kWѵ#hƸf,iuܤ߼)ޙQSw]ʫ8QUOO.ۄ/[O}쥷T#-<))bOYihRqO-ژK'OGcYFd#Kľi%(ɬl :c!3|:.Z:lkpΒȨE1lg4hWmÂxS/5x۷"_++ k\ul"z>s5E+6ݳÞ̔ۏ]'Gʾxm?bp23:rҭYCu bbwN`)mf?*n2/h“15Qlɬ$+v[ ZLBJ1Ǎ2P)Gob7p$K k~9 ة1K bBRA ],cw3zW(QYư)K-:evēKR+S5,x7xOYh ]wvw ;deҼ:RSZtz֠#٩!*毱^G (;p4WvIR3КAlIhWQ Zً̭Xg "V*;h5ry[H,,jv훮ȷjWrtC(˪JhLuTP!SqkX]1nA Iȭ4#-˪<6YXSy(4XE3Y9L2V"QăG0sӽΣ|/LzVu+Q'3Hv^x\V'Q{TFY(Ežj,/xƥe֫EIW sQ*WуTIK_ydYrNL=q\/WoԅܫqЗz͒I+%[ Ez%5cgyBzҼ{ |fz{]ۖV%ڊ'2+(RWR0,[5"J /Ƌ̓gǏ.ثe;Ij͕vmɚ m~eVIe$d$A#"|0)Fp#Kk*JȌM/Z )hɪ.AVFƢl)#l(P7~EøKq1hOUPNyj4+Xmyuun_(d\cI$ʣ 9J7AԬܻ1MȽlP|6g&mFh1Tɧ`؝BWȕ@;a"6B;:gsqt8;-:D6ss& Jb)SoLc8H| |c)C{9M y5NWqفPɗ޵톹["'EʸX281wv-7S^_H*YX\JC8؇Iuֵ+Y^=3p$R~J]-cg8 \Qs9c~,`S3CAsL>n ,Btw39pye~ܶpæ.v 5/oVG=tDvͬJӨq u&2򤝖EJjna[ƻt+v48f5vvG+$9cT!h:Ak0_0G:Q\  w l콓|k?Q$O-y #ϠonjXVyz^:۶+߼k8I;zuq%. nf"ic*[2\E{1hnv͡7X66 "C>k=15~oXn솠tI>=) It}m(®VE n05J>Tx^sf1|-c#ӕf Ǚtv>Z[@凎M,URkpK5B%̸'檨*osθc١l\FZUTӠ> XJv8Z Mlb%fe\4jS3nQH9K&3vj .PBZ3 cʰ`.^-ègrȟ> >δ*%:q\Ʀ= &ggQF[kT%ur%A9 S[ yRi{܉eu|`]NLkj v뛽(5; [%+slUDsBHrUbuۗ{I'j{OdU%ճYu:læ9cqj;-g@:UFn&H'[I\TsD" ٲ$.NpO+,UU>r)I{!prwsՂoss ӎm4vEzM*vÏreUj ɶeGͲb/g"q p˳yʎ,rF"և򭨯w)7g[*a"5vVJWWxM\R*e!.rL nz: 957[2Sb{{iUֽ쯄_'zh{JO7OY4Q{g?aA;Xϲ}t]i/?z~WSgŗT^.":aŲvjGAbɜ"z=lU dܱNr1fK.׌M/O0G|iKn5h9[ܜ!jdfVK\zTw :,9(ܣYu"IH~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P6\e~~&P >xGcŋbG& bO.V]SX1qELy6T6*XY"2D\sa9`9SNc'?|x#GrZ-gNRc3iI3dd0UQ@ SLUAnr9 E$ySA"%Ʋ33En:]"e$L)sͲ2L?pl'!!qpجԕMXdp0oT Dg".r*6;3}}N3o3mr-f-JBH&*dEqݒ 92f9ڟYZ(^q8gw/2߿;n;!lR:tRE E#' &^&\]}ʠeɱyU21hR'5YpWEg SpK ~/Yu2LR9*iyirľĤTd F='dx;x{>MU$PL,4.N6~,.Ll1<RD#i4K¸b8Ϗ lgB\dlZ%fa$I~|E+tpG8pC$\7bHDkr/|IӴW.23Tn 媒Ǐ?.e+.u㜟ZNX-$ǜ6fs7vtNCDqݒg)IGa10E^d$wqRgt&g11Ԏ>yO =,S|yUqϘrUx:M|`GPa B?tŴ+?zXY/H!;ٶ)\' 9:eC& 2~flNtDYUU% 9sg.q?j/ HOWy8I7ՉE'9pvR&s?ݺʟ%pR9wYu`2"QsVʈ`psݞ~1ߎ,T#Q&TVBUI>Gl7!0o`8AJ#QAs?lE?O' ;'m ;`f?&3d)sݣ6% Fo$18dUg'Mr3ll;׻ѻ+vDˣlʙ(({fk3C.Szo?>[~[|`?H-(Y=)L%;KɚC>;*S$K쀭]uY tU :8KrL$nPP+ ^TVl2Uxx91rT<YE1]>vJVj3CZber[4tU#g$G,NrA*TW6szWɗ|˅ !K+ȪC&J$ Dσ63qg8s-#1fdBͰHf~<`ϙƳl. L.6sRsfd^t7ˆ:jnL&F2g~;lg~`>|Tt1|yMe!˟gP:K$b**)M9&]W5 V6Lr8KAw<8IJ_E62skx=y؈ow;rM[/ Nm$ؽ4l9Ϋ~f|.i7~tklhF "ŃDvB79suVTYe2e91CENV:aYKcۺH yˢ;HU#|g)9.Džʯ=ByO9EW$IR?R|tR>{t楳AQ)8]38AçN]U1Z,hI;0y"9O>n:ntfy-2.11.0/docs/static/img/screenshot-phone-main.jpg000066400000000000000000003773111462047176100225020ustar00rootroot00000000000000JFIF(ICC_PROFILEmntrRGB XYZ acsp- desctrXYZdgXYZxbXYZrTRC(gTRC(bTRC(wtptcprtcy<-m}`%okk[Nulݐm:_b[6[e<48f"fV|}yӴKi:shw}>j>fiC4p|y9çs,qBTl4vbca%$v2rd4vk/EuMdUԲ)!볡q4)MXط5ok{rB?O[E%.k5ܺcЭTɊ񊼶/(]r=,ZnSso󧛼\ǞL1Nbk_0}Cť7x4rjz{޳79?͏ji(l˵W7g8_:?,wr 9iuMJ*ҔXDmIQ(*~!~3L.5u=g#QM5]"­ [sbY.QBAd.5׹WKRǢ,E[|$.:l|1ָ;Yim= 9̞ޟm=-Ez>Ym{G,v ^նQ|>џ Dvqڇ0mޚl[TJZټL\+m8=ۛRڦ,Oq^1ܸiH^*fvdmǍ_:^*4X|d5mF6Wg g۶f/G+U%WN:!ފVQZ\ԷzZ#t stآ:h*kNRۯ캔g;^rǩ!2}E8T+en &1A'I8gQhVm㦣-^PMU.fojִikZwkY{g1t]6fn:f:r4Met[ji5yLeio6zǎ9㙘?F%YiF%Yi7R7^cŸA!,oe.lRkKw+Km+\SیG@)mD/w%^ϩx.Mŗ{YqkNS%-y/g<?>1CV.͖YAuTAtU*_TIK..D/RJҴhYQ~Rr/:iec$pͤV \:Uk}$mYN{;.Wnm?9$q佯|y+ZkKs[MbMgdV[Ok&=ACM4ڱW5ͫ14)@8;7d0X3g#ɦ#1vVQGS/Piekm/r!mnQ[i[NLWWjC^5dq/%(]gVY G+C+o[v#UZ6Z]UY{qēY9'X:29&*ҕQDnW{[ԡie>xݯ\])%͵>wU/룐בS)}k[k/Ze+}}mjX{ZWkģ/[^-J,߼Ʋ8{Is5xKu:]{R!Yodr.߫fِ\/|du~50v0k75S'Օ%\^4Zö1g7‹)*pׁ5j&|_p-ڢ{^c;# ,5rYv.0,Q}_umG3ZJ1^ɌqKV{M6Yg[]7{UtzXZ\i Vfixnŧz^i-X)['R-Mi^e(q,I*ctopӗ./I&Mo,v'z)eִﻺ8sNSXYv֖ޭmDQKR]KiZVRYeϭ[mYrmkeEֶ֝]u;+[nr+=a]';OoGV9%}8bGj fUEw \#Q\88t3>GD|zWo]:޳ާ{qi4|3b)-TMVkݎ?3D/{M}@,P9s[mo3~'aWƹV."uF+kK+ktR}m󏼆r٬6jGf2J/'JVBۤg*]w]JEس4;-#K?fG8R/hq=Vb{-Y|ݵn>z 'N݇suy6Z$eNy.O7m&MUy8mly1s[DKWʷN{;)&Rr)$c:nyr7MAJ%z&/,Q+۪z:ޝkJꚊ'޷ݺVĝ.kgxCo讥Ӷgd۴[[|Y3ٯlq`݂mYUvttv/&$2 17/bh4[&+Oy߿Z"V-JNf'#No8=hiZ2 vֳ1o"R{ע V]ZS.濇mGHc"׭fx9&ga:3d .,Ikśˢj5xt<1$jdnBܚtm$-WY}xj޺۩O]*d} yG7Z>ҒqrX匃e7mԧmp,}]m+SI9/ x ȍ3 Tx>5սҭlneÖW2˫kkK4p1k<:۰KtY 7F-Hڻo}Ux>m3Xbhm3϶>Q=F_\Foun˹RjZRU,v2blK5:uwvڱXصo[{b85y9i66h14;`j^i4[reé\ذV!ᆟo~;ml_$ts<F9)j?MvoY7QF,{%mԼ{N/]L}[8{|VMD19WW1^,$KTIRyW,7[R[I|ZAҖjaJ[JKoj[KK.+Zzqju3dE23Nbb''~i=?fzkOs353|S^ޗIpe1|ucF97hډt9"}_[~#pXClpM>XbOn֓6YmR>^Qʾ eQ4!]ռJ!"#{p6Z)HYݝ(y3r_ imzZvgڕk؝)H1uzknc虋|f1S>'WoF:[=su]U[I&WK&55oi54ַ5ČUŲ<}̃DUUr)&pJ։zT_ZRҵS ޲ɶ0 [ cheWJYk_ʺYD5iWԱ)d|:dZZm6."g?.i=LA"> w{XneT޺"֏}gWAY"N2G ZY[fB3YL1񈘉}>6fǸg]f1FÓ&*eɆפg6Śo:yёSR !KJ9EtdcGq}nѓ&ӕԺAU[Yuե cv3R`{+ZwJ1˴Q/涗XKͭoU6<'FTR%xӂ9>ay 9_fr,>m,yHNlhnܱz9}j j+LmkscowÎf6Gޏu}4Z}~-SZf+VɚKaӎ-o5j~ K#>-HmY-׮/_^yOR˩{a~ԽD%гYX鬶^-X!Ij[we^W RUK;yb)?}8F=F{kpa.g,ZH+=1ůi_?Pqn=7bЖ*^EKEm%~a;9uKm!uQ+ز+0Ig2w&ͤs4|t]xŗ$gm\X&+'zjYu_mִ*;Z8r,fyTGLC5\k1M:UKDw( _:ъWb(*=lTxwM9ǜǾyb#ǵ˽ zLdcUh괛6EiڻͭZ M z 08N~sj 02b/$ۼXSDW wIٔCMuVC˖6#iV#g:c7IbtEmoYZRxbYx^^<8o=%L5Sc"Ȝc-K? Gi.Z%ŰwR>,NF򿤢f 1~UPkYWVDgGO!'lcJ;QXkr,ЬaoO|'jx8DWǷyzAv=rtf۵5nUj'$fd[Sidǒѧqb+ 2#vN]x?'fTxoW/䟹{%gm&v[{n^F-]۴nɰ#-9v?xUeRm1~!\~$ؚImqz-EwWnѺ'dXYtX=BGdr2P]l_pF%!XITityLr Nq̼ O*4cⵎN}c3cpNɿWk[=+|޲R֦5tYuSjibiL͎d'{`s 3(6UGF;i)s z쉳{oBUG;-CV'$]VڹӒo\Vie]E֭S[UJ[N}ɇ<C޿vk|: cɒrEo3Zɒֵ|/}kLR+H`x顳NKL#LhV9|:cA6griZ'[;БzU+ݭbͮɩvf+kLDDLϲ"=t]FS0Qŧ`3gzŎj=C&Ktbγ}W3f[A/[ұe" x5RԪ)KO.[qO(?G -6Ȧqk0*ҋvWSW.UOs^kff{/=!4]1|[ frⶓm|:;c^Ǩyk^g OmH6pvl۬ۥlիd]× jH7nVު,֦Ir)uYmn)]8ȭ Akz^Y((l6Z]^=%u։V쭽t917WyQ>R3d\m;;b*Y#eSN)ʜD&E~*w:Fmcv2^m^`;Fխ,[SZ)mm/imSڞ5Xsƫ!ʷxv^"((z%}]m;[㎒W:iRTVzR]#-izw;hAWMlY"uAY<ʬȥ~75ś\3]^6\*Ba2Tkܬb$]k.~5[[fOr9\&qsOSOg=w0a"V˦e-/D6~{Ug'KdӲ3W #ǻ&}s1pt՗`{jitv1LJOmM.?y-1V^-\Nj>\8 ^9E/îiph66ZUgNӘjuJ1kV"%FrDǾeuE9#JڼLDϲ]1㖅욞krබ-&U7v]^?gu+Z1a,J✵kZ?R)JViJRk_U)JSZ־/O˳u/)+]'̴EED[3lyR7/mmeYjRm,Fq.3!W&ضx']#}+b͝]V}+j)uRhNSnܜ7'GBA0\VY{qy#|kjVڕljm:YoZ|ыV/zZ"X#:Kaܛ^z>Fټm~Mo3kŗQzezKo4Mk5cY_2S#9' %&] u3YQ~ؖY]ܕd_eZ6Wf_vNE˱T/RVM_6B/-۫we+^cBvv9Ool̤NExĶctevػҥL˨ܳwkYmօSƚd9{#Ls3lתnVíw3t˪Xږͪu{b4R!Z5ŀW@u^o' /_9/Ưÿ|fN^0Dw6?z%r;_?;+ ccۥ6/=20aYTD=~⩷6qv흼Y6JDZ9F6meJSf3]Yvqlm%4z8EUr7W. W[Ǥr(ey،z.UVFjAk*8[\KWzݝ5 [(3^a)Oe`Qyddu50q\fڦ_"<-^Ӟ++dd^o4|Qǟ?r}Vǡ}gE=pɛANilol[\tM.\FUvAqCUu6K$Q|=qKV5jZUX7y9N=~źl״OXG|1UOHW߶~}3Uh~7 SSh jnTMU:hYGاv/heTJݵRQ;M$)iWu33W:/u$|<_8`1`ֿ53׎bf-ϔyFm~oz˫Ϣޫj6Lj6}ךf]NiT$Od1wrxXAOr*FkVl)v7W+KK7u{$MU~zcOgmֺ/05iGeTt<β/®-n%tȤ֪N&993ˑ1 7[,I܇{fpw-`(QW8Fz#L1YSm>ȏ fяZ]=K&j;tZ\ls1>ZW%b8o0WN{]Uq%q޴hwލe={75rWrNYFMZ֜-ΔR)'6 qzIr нz8|ܛFi.^đ^St/{8 -eqI~u.B^p4I9__óHwB5v>ql6cZS vҹeUȦ-Y_WuVާv/PrzqmJWO13w< 7G=G{hk4vmV)ß':^ihtSx8i7U/ t5 'O'Ucwp|9/$,orUEWI=;%fuIjЯV7;ij,|S4Mv)a".k!#(l{.6v[lR]!T^6l.FNQݤ|覼Jmb+6]eN FFut-/2^M1b$c&'$r .. <]& ;dz4bQEWr٪+O8 Ot[&Ys6m|Dx.nꎺLjWE})CpnixO 3G6SכwC)}rui6Ȩфsf#Уhȶc!ou&ڥm޳Y.gWsgiX܆Fȫߖ0Ր3Q/ܵݏ|Z4RXuj->6|0:.Ռ'L"luWm[*G5}W*T:t (=s`ނKb,_8i*G#s|g'ʥI2~+:1w2e9X2RbbY."8=+b~yZ-Ot&jsYAjǸbLocUlǥo܂nǒ}:]72ԐY L]@ᯠr 8l&+,7@Hc7J̅ WOc\s7e_T]Y$􅂸%iMQu-t--OzFI\UY`|•f/im^z>6vnInTn P82Y[o1;nVڅ RKz;n+:2pyf^Umd69 tQO+se6Q^.r]TukeiR4>hŋc#|˞9ϱҴ&OYj5}?Tu6Y鵗d]c1T\lQgZs.>4vy(t3 N1 Lcb&Yԝbѷߎy|bͻ;[d}t[eVRӿuݲ+wmm]ZSikz+L9gֵgX㈙3 _B5t}&GrF]5'Q@? t:{ᮔ`q/NKcer< IO1#}8t21E*͊^V.RgVp83Mn\$rLzk$hg:gO%Ԣ\ު-aUbmx/lyOOz'|n[ٛ_QM-45zLˏ$ 590'YVoKuXO52"uLlL |EqXi5!j9-olLdL&颅Ϊ([H2ɥ%^t-i7JYf%}d2^fʚUͣW*^ қWX /Kʈܚ}#!Y %(3qlk\9'h1tN}:[:mzh:NXt֖8΃Ic{lF“n`U<\.y֣ʿ􋒘d-vQCud^n!r\wSʥ`UGh w2GW$宯rn{ mM|ɷOޖV-4u"ʔ;qSXVZgZG?Wu~]]VGkiL4>-qZՋZiDs)t<86|2 il2:X ݽ,q cgOdYZz[n6</lkO+ێy'կ1[%gl촛 MU5"')*}zժ,cj0Uk|F%6/+4%xMQV!'ղtl*jꈬqK.Gm9MY44ƺt<̻{.1|%IU襞QcZ,E-VvMwIOPp3"؜Jav~c9dqQ0Vfm_8a&B9fi0oUmKԾŴZk3J[`d.ܴclR(KڠY'S|y0ldR>[ xT1un,;m[.o WkؒUJ5i$=i"}jxG#$->Dq_yE6_Vi[r)l'S6|\8-lҺN4;dk3JplHn{e]3sNj7oJRɸ5^vygҶ+4BOx·8A,~7J) %IV~tAɠEUڤcKi<[g;]5̵z٬d^F)k{_GN4A0]]qdn;8D+X,\?u(x{w:nc8$e[\Yi^bŚ0|q7U܃ޛm׀[쓚U£R]eU1YbSoy5b v SK'' !30\DKrrrRf:9u>~ۋA6mU×+)bH"}[udlWv8wb}^=9{gTlMmq汗IOͧ5eۗ%/mgn㾭v͕V'5u(6zэnY*z,6(x9_#ۙmG]b蹽f]kᱨM /Vɭ{I/&l×7mWVG:sOKѬ=㖚[IoޙlŖŘm},dfG6\}[DZZ`}}KGgot<^;.Ӛݳ4iI뭧4Oh\TJms|?/IOſ9s6_7x2?7|LdfL~U{m?}}!ujۓ[Ymgh㙟8Æg)EGJms|?/IOſ9s6_7x2?7|Ld慎3`Ckq \ͩ{8ec<ܝ'wv\DtW:WL_S{fx:gDL"O_ w;Iwim?+gp#-9v?xUeRm1~!\~$ؚImqz-EwWnѺ&0dyVaIrI׸Vvbi'evb޽]F,:rĸiYeFe\ʣ,K(Xb UUbIX6u۱bQ >w? }Ϯ?~hޓsNiŽ[MukqV|lR+\| ֲOg@?Kv6zV`Y{~e ժrl qF,Dd;<c3o>.M7XǏS]sN[L+[ǎxj^֦\x[cC$9]W$D&Z g#)5 0]aX3Ag[;;sDE@jS1u[}.]mikJiZvo_~K[mGtgҔ5iOU;=f?z)S[.J֔ZnrD۶f+11^|>#.=]צ6=noF߹bΛ8T굔ϋS4"u:AD3nnF %u:psoas7Q-f/'Ѭ`)&f%\\:A:#eY[[SFSmy%]i5t4o{25r,fHZZۚ\֭l|V{q/=]-}{nam˨7=F׋.lYlAqdݳf4yi>5Nke:q='+\ΔT͝7brMfTBBco!"NWuM;Jڢr̩e1<'7"k d|ø8ig[sF nIU;leSJ}^y-Gtgm?56q\3$gR!i!\.ș׶t'FE,^ښ}5g{O^i^^_GF`]tv}C 6,|];hj)iv=R9+H$7m|Nة}錾6N؃|k5V;!uarѬXJ7UX8AYW 7vq7+xT<8_=;|JŸ{D+Uk5v-6oN={fϷx91dݷNJs$8ss-yA3ט\ͺxiEqm1HgeKHĿ?hMɱui|\lL}-2JD2JXNֳV,WMApAϙ8]V*wP^2n3=x{d,ٰ)4*ɤ#%rR\7 Uq֏#rte.=sa69,ƩmS.hdlU|Sv޹F5I:4i95Snq18{f+6tǛ/ W4=InɸgQ5]%cGWؼY&6N}t?S=V ;84An*F3uK2sNwջV_oYulJҴhZ1_{#&. ߧW!SnH'Jz4S+)Z-iZ֖Km}ugbui)统eˎ#Gnb}o7D>tWMܙc:F 2 ʰ̎{!W|srJ!sɈ $X/r *Vj%*'[Jem2Gc-m=Sx;mBEQ>|Ikdh^xxlآy"""x%! %1tS֒Q սl$omQ-\+eԽ5lkKM9ji($Md濫1Ҏ!rWӾQogmv]Z@q1339>ZXjs<)7lLW[E2vŭY&b=C۸Q{&/zU5g_;ޏyg|/9~MMOKW1툞'9c?>*qj3< د7\80{_nin#!.AoW 97~`[+3K9nѣE+HhUިUn͢*+rmѶf)6sXQ x}:bùqcbŭJDz2km}o=iRN>'?عeJiILr)_Q qF묏}X޸f"_mb}[1^%4$k 9d);e}ӾQ[n+@v׈8-N{jg]MWN7|S{Kcɴ׈(3|\YOd"ׯ2afUV +6YfRO Ul ݋oLS.+\wLy1Ɏ/KbսmjڳYeolS3ϲ,Z$-*9T]J1WZ7juר66+^Mk15qy{0}M}né͋SkdvK[=/\3y[fl϶<3[gegI&uwIɛ>K˒Ds|&״fxP'܎vd-q7uN&y Ћp&Z޳&YgĤ쫛JMM;vgxʝez"k>و_;:~UOijuYqyojbqjuQ|u^fS>Gcb}ѿkHWE85W5o|z6,{JS.UZ9+hɎxW[{m˴ :h;9,dC]װ{S &Bo/N-zӯ*:}|,5rRrE4 9<ý`kM]vO)sD==8zꐲҖ㮛7e7s֛;-XvC }hug s1ݧP^́2U yxxYG}8cG!bI\;Ng8sǗ8|K4Nnx*}t3Z;deT;_ĵEù?+ 6c,wEfDyϜL7}ͧu]+nY]ߛKǨcL9tj×xבuRI[(܂3}+TaF'Z꒪޶uq,?LcrA;K+;Kꜱ-.[ٯ!;{+6{e;]}.~bcZO|sow9iٗm鬴斚koY;%-55JE=tc/?L;k07=Q&;٦ΎoQ+'ae9㙙O33ߵ5i0[Sծ=N9˃&xQɟzAl }Rji;QͶуvY;!Ewv+ SO6˖x\N;=+o+N']o>myj.1'gH3pŵ{6=axɃ.-شpr9qvicL&mivݓ oRUNRiKom)^'\՘~OrRʧ7ϠcX&ŪdzFR$q{su̐l$ѪNE,JN=wo3_8LLsV=dMY;>dim>_0j/kJ_>=+kxshlx nF誔NKڥR;ۭJݭ}}iޥ]JV]u+_M;w+CW J$int]4AP,ؕpk6fe㘷՞'?6~ӣwoMt5ˤ=f+|Kڳ\yp䉋4^&O5_- =]飹] 0="c#ceK! HiNHY;,~Ie7n*ƋG4o`E뒳yt3sV?~zmfǮ4⦢=.昳bksұktsiDǵ]}RnNn[lkm+u]ZSݭj ܛ"k"*(u&RNkK˩Kn+JҴM%Ę [ܹ4A*e-i}-4NJ[7fi8_ũς|tN̵J]=9:I֬vJҩ9jZjeJ\_WM}i,Ncl&8ɚG6xʈHNQZEo_;Y®hOQlT{V&S1ϲcYmݣnvqϥuŸ|֬ cÚmZpIzcp$<۸lFM4-AI -u:c6WaDV>V%䴒 KGIoֿ8"f5ɓ^+]k.n=vb]N-uӪڜ-jӷ+Xӝ=i1V͓uϞ92ͭiD\<{.Bxw *u&mǻ}{YiGM0keܯ}Ku;n=d('Wp }æ_EM E6";v*誢5."cXM$dݳfLqa7J˸KY6, r5o}M[Q$mWf-4LZ$;0n,3"g[1fd%{j%kxդeƥ'[WAvدshH"Dyxf#"8/d4Mv;nzQ-FzE/ּ_kZm.KL)0=udd&[S\CL:haedڷ]Ȱǥ=uV֮n;mȈG_MF.<8r͓-1d{Z\qyE"ibjfv(_c-1WM㹶r(lDGrŻUnl]'O13\Xŏ=k\)-+hJffxDG=Yt>S7{a VfqMU^ 8+Ju]v+uYmug;t/rǯ^.oV场tkY× _zܢ]}խ|pyff+XDDzV}vUVUåf}Fl#J#<[\4>wս-ūxZfZ-}?lC=>2^-l gwX\{df!كx"t{;&#, &f^k-i$q J)T#DZxgXb#TusۓF,V=4?G*dF|r^Qˢ)L$])* վNRvwW{y>bޖ+jk1[D? |?Y{u47 _Ǭ_YiiKNM5s+M3T{z*kAdso}cJ$YKZǠۊ}F؝weִ*m{V{LVMkLb&ff|"&f|!f17Lz$حܵO 鲽Y+/_mݝRjյfm[Dūh&bbbbbc))]&Ku|ypj^b՘fk12G37+qVW"tC\p^ Q}*8Y45!cq/pUY>p%Ǣ~{<݌anM ]֦3Hŝ؛V^󧮛F.+.֦,sj\{x{[Hm-۪6 rf]گ˚I/YVrDb ۅp? =:Bܷm &Bn'Zw3aXbbY G̜O ȔϰwIyf\ʖN!2uYs&,8~VgY^~M91:%1-z8X.VA]{eqj Ŧ:sRp釘]Nb}<%?mڽm!d, vOQN彲wx)yyн}Q|ͱ׷tɶdMη㾦\8iM=c_7ZOK[km0y䘎 ڢبX<7+fŖ`$Zd(LHe"ڪjN;ViO_5aQX*sS?bb#lmt9*cINlZ^o~eiSq8Xwle*med17% 2֭ckU_j)+OWMhM+3wox\+myXWyLG?Vf'&cܺw#9w ɡir/+gͦjbݑ~"gE6=.ls #/} -ؘ|>l̋*Q9vWǫT+Ս\Ҳt?{*?]A~\GDwVZ"''3y]+:KrK3n:Tk#&ߓ>\}v+ݨirx8lD׋O3}p?]!'8_ìvr9|8YdZի7DHr=6?J:h]Gq9D 4֯-t^k[%5jwiYer~U 틪Z[e|i1jm395yұYt"7V,[D־lq+) j-ul엄&21)WyvR~^f.&Q Jc9my-( a,3Rc#hŪǖݜ^?<#ω#[}o1W|k_;6ڜZk񊞱[c5brZlw+h:Cpk\3ޚӜn="6ؘϒ"GoɭŎԘ""b<{'.Y=TfӼu.=u|6W\<4׿U{;zvR|mh)*.M靭!pɬ *F-ݽ߹i3oKUWQhڅ/TufK|OZi6^yW!_TkV-|FjTg"vтks.@Eap虝1IXEc&5>/9,݄YFi:tʷ%U$oIQ+zx<`y֌վS[cdSÈ!29F-Ǖ7f{R-#"392[VGCFt9s&Ŷݻ{ysO͓ipJsɎb1WI>$42O.oݮg?)}'7dssYyGVO'K^NJz-׭#Z"$ZG:zzެBY˒ս|qXffzGb/-vϷOSߦ.4i0~Q>ivbŇn^JZ4kN$9#d2;.R~=y;.ZZK\1{u.EJ:N=E!/=*JG'ԙw'I*ImY1J5A+!;jvяZEg?fV-V<}+xf"9gϏ>'/8r[M6gmvϩɨKff06+de,bo4aoc{ZFNY>-0UgA5TF:>őJl>t-|;! 6sαޯrhvݣEiwݳMJmlX\y/kmpV2eZڞnSK. |f H՜Jp^KZV*=FPӗZm$˼t꥿4q-i66)VK8mEk1$C*i(Lc,T4ֱ'v'F<5Zs4qh/?l{b9=_|:Mn.qڵnV{j4wk|x%[ն,g>g<[guNtk-ۍ)}AkriX*OjEh\6\Y+Y۶wVf13o3k]-927ґ;ac8"fjIn\Fvrk^1c'̚#ˮ]CgYV jh# {\a{[Yå7$xmUilo##3TɠTGNceKAI{f(;GJ'_S,i+>^S=s|y^zsj7kbozLٵΣ*j1j0Niy+kR̖\мR&Sz޴,Gv4dϤ]4c%>~IbUYl{(op)m) SgkE$NвcȯjvWOBU5-ƾf,wG,R_N1\b1/'dϏd8^#jQ/ҵO.+{M3N"M#xb}? sWM?Hnѥàu.],[eɷxϒmZ|kͧ'_u_O q̿G"510r)_dl6c ,f^ [ţ%VQqM񏒸wr>Y/Hf[%䇗iqmO|TX[ӒG_JJz3~lܴE;dJ"xӗfŒ^UcZ4dF==/ͣR8mǺ'bm3/~!n>L-_QWl_:.lwLzL8k]Dx홴x \{=8鶷Q{Z7oz/=S0nUL#w'V ԍcTjms/z4hd6w-_0B!\e:d0_XG0HVc#\r TfK1]v+MbH[ڱ~3<w1٘Ů%Ժm&6s7nߎovn\"fԦ,|Q|Ÿǒp1ۊ/1I=f=93Gbo]䒳-1K3.zSij R˨N[ZWպ#۩ˑrXSNτ?6ߧ:nblkX֟/ds|gH6Yt}WK۱]rs[My˒^rZ^)Lvة:0:wx.ԳY#&+=]{76b Ǵ3v](p xY.N*]]FԘ|6f#`Oa,!jP914\ŲvA.mi7d*XU%"W+m3>;{0gggrc.ĺPWJ2f쏗>Tںa8Z&o|N1(MG1pG_4Z 3vj馻w)bȭe'}mI{/ľ8r$vB}CBa&(_]hu_OfNEԹl8ìNckV۫om/\t51τsfwc&vl:uOW0FL82xZcjj64q6:7t3<*:/ 6"d1M&l:Y疶Jy[Um))k|d٩JvX8)m])ub;kq[nėոJJX:Ku<'iU(cb~4pu^Ѵ\2rƎrAtUPx ثU,֮WUU5mipfe665DL|+1ïw[tVSҝ[.Az87Z`:bˎ|yMUV`^&o/.!q5ꙇ=q 6qIEãee\?nr-fޑpH[rn%jw;>HiH6ur;(._OJ䉭j~ \n,N(o6.xV+c{6#Do[e^RY})uUWp}nRYmnmrɧR8xKǷ혟6_[dغюi'ku&S_,}g6f4ђ&aŗ:Ҷ@]xSbOO,%Mֈӭٮ\>Քc$4n&qGZKi[Q5<+ޢtNmSO3}2;x< {b|FA˹ӱ1d.m4[e\Lz9y|y`}(boL8k\wg­kiOT3o[Wj{bVfc(QR;>o_r=wGK?O{OoKߜG*Ȥ?|N*? y-ɗS.ڵ$l֏]mWE&TM-Ikp~=]Eeq][ZB 97r88Q;EޕWw)#+7U?7z7yQ ɖ,:^(uPE'F(/8{%ǵK,ɻc/GdsS)ˋ.k _>^l1K&Y:#9 ,kM5kcVޕ) 2suW2Q[Ev,$wWړZ]㲉[$dXzmآQv/bJY}.%Q8ky.]t9QRhV%b[[_VUG5FՖM; ŒqԲw=I5/N*E1G7mlM9TSME.VabT^1w{p:l92VS׳l1+YҴ"RdmQ_t޸^:"tQb}IW}M.J~lzYGJO^ 6ɜ@9BF"1,˶lpՒO#I5UzsgBOC$B_d dw|u͓|& 5&G5^FMSQpk?,Iڶdyn?S?sWvsN>7/-.gvSdb .IIyLk%wbwR +$vb"ً'U#urs!ɝ-qpL%wnS |iZ O*ݩV]mTE+wT徃`.l[(Y$UU(SiN$b"ܒJ8dΊxΑ8ubJcYlظ.;֗W_̲W毗kV6wSgMS"[{Sǭx;=u}KxSz?{?<>>}oQKf0:᫻춪1ɟlgz%Ѫt,sJ߷_&ysf~OmV|kӖFz}srgOUW56T#49FA&uڻ5dY',l ZcȴnV:MGwk4 N.OJu_UKmuIj䭪u}(ޭe׸tƥmZlE*'X?S/---Dx}Eܿ|퉧e5vvʈb5=pݪ -f$'cR/v=*$2x3 R$Ff5lq^H6p6\s=٬{5cj͵u]6o~\&MYγ/7FL69kEq䵫gVoGkhao3f<~U(.f܊׷Ja^WY(֗7]eeY}R/nmԭ+m֔+JҴ;i^T5de7~^,gfóLFbmdk=g/[~~bgȧ2&{9?5+\BI%3ǮoQ˥}w V*}BbA?cp[h'VWpNPV+e[Bcڞ8Ď8qp=[;F| -ѓiEZ;SVʪˮleY5/d-Y}ekuNx/RieUTvR)e뭥kӫbmq3sc(tscwqIgp%\Z$Ѣ%we6MU-Bswxo>]җ}1lso_ݼw] g/1IGmrMRR>E[uY,jFU[7]MNnhKpp:G+.z9 R]Dyv8@V4>U+zIKƽ.Sd32ZE=utխ19B?-WT|^eoW rcW5J%8r @p3QT" "]Ixڥ{86Y餬k+nwh?ow;q͹={C?x޽oG]S8˕:`7 $2wHYt6C܏/oRC%U5hJUJc.A~-1Λ}'y:^JlM)ZlAr|X({,wӭ{'K.A~-1Λȸg:W?9S{{[}[|;=5g^.gN=xhVQgY),%ÐUµ6uk3jbHe-ףarzxoNj*9E]-~;nV:Ow$pim_Kc|;(ql/sP9k[s%:=S*ų,>;p\V)u$(d}JV|uyk-"'[W}yaA路-fm?QMVpڷ^eS <3VjhۦQ^l|{vL_3Z(mq0D{:'rYdƽrd\\#_}^xr0 uG сaf[  '"e+I$׾[kYwvr+{}-Rfo7+f,6>AxCs)JV58M] dck;yCQ/vklk'0q[+lMDEbsJ}(K>:jqcq-=;x0Ѭ-zwԻdzgt[Mt$g$Mj=/H -o?՛[ccڛ>Ԙs9DDdо*Ps1lZBeدI GʽXqd{"'N%^]q36.1VexaXG2 mċɷ^A8cUw%W\65涏9|8ccz+mV-YeǬ&NpɩKM4LZ<.%b=W^a>Wn1s|H$E8K*A± ޠBģ0x=}g,]{'.ug0xgn{ hvQ8~_ R+ǖr:[1Yj}ug?bԩVҵRB`:|mҳmyyx=8;ηKX>ۯu|5Ż43O}@,$<\a< .b3[>Ǟ'Td0+E3MT#`LY2V|Pl|#hli`9<>SԾ׽xI5x'{)R)bzKTL 1NJJWs68(D9QPuNz5:4`WOtm8b2NK&k"oݵZӪ_5SXb53][n^X]SO!x]˸jɎ}2:'8w(Ǣ2O ^.g#lx5+{E5&w2i3#˱YWpy.1/?2J$.b%O, -g~캶wo+uĮAD5-LjQ>_5&hvYU_Y()h[jZVlwsmYLqcq>mS|ګmhխ5n:Z&+-i{/%bշnZEb#F~qS-on:c_1FD%!jl}KMCQ{RMJ'ZWg=2oH a Uݮ KhI.Vܓj^)F1Y)'+wlE<{b'xISm+=Į\v˦%o+:[&I+#,b$Rka>7%ۏrxBv&MPkaRorwžCɜE<ETTR&ӳ0mᳵߤx>a#'M^#,grma.ӱU0j{'T0)mݒ8{""'ٖtmw}:}vǚ3i3ũ%⚜q5yp^-6)Z-%f~{g'Ld^ntrM$6yQTX0t{ݴJ_sܠͥU !28B663<`Cf+wʼd\.J`_ /fmݏb&;g퉉`ںu:czM6oݾ场jmiǃlxRzOt٧Y:7m=~NM=ݗyV0_FINIdxcL|߈OJY4WTek4Uj*M}yvƻQf 6~ʰ܎ɥ1Lg,eJpqS0H*wWZ*`.[v|"#dǗ11˘L!t}-im; jts2dɋ&;dk\90]͎F4庺%l+Fkyr--kեԧrv,bwJҵ,.en-9Cb,kbhU~3ۆ Xٳb^]6؂>-5f9 aS |#8_VzHCiklc=vK:m>LՉ˞m%4ZkL~.f/lvZ,Ӌu59S))~ʹ펑y5ZfM}0+{`u{0Pʑ(Ss>Wt}2n7DS l+3ՑsU2rjeҔ51' ^VxhZxJwO6-[||ϟ><ͷ7Rv&שl{ŶSݯtY5:,cSQLiZWirmg5O37z;N[u2,w,l_mLX%+29E=ǟsH.2VVtj'z(Ә=0wMZbb8爏(<3ka׻[i2msśG6 ƚ3fMNlSثkV4Ưx&guc֯[肒x))8JU^.#uҾ bb}-7\2͊.ˋ%|L>魢&>pn+ԫ&e#[´fTn8A>cLYEd\8VMlcd~uu[TLq䶚ɧ1.Çxuǎk2ջzo}7c43{*Ƽ ?22#/SqHQU$p>WM^Y?5g1rfLCފnD63+mޣ{mY'u]SȲb368ӌS];\c12,"MǥJ٬;Lao!WmYAQ16L{='0ޛzS˭1=vr3s2edq.97ǒ"agx'gH-hJy$R|UR.YյnoUt]ڲKe=YW`4?"٫LqGvdE)1,6fȄx<)Y%FEJ{6nkj-^Ɏ9y{<HѷoMfqxgSq^ҹ1d^Zjds-kJพVQYb(9M yr>Zy^#}QbQ7v&m`GQ'1sj2b!#VjyMr>UF]<{gr.rPc&x"-/o`ҍES(e[3|H;9CĊp ҸZWϷ<|}{u):4fi8+Jbŋ&׵qaÏ,}){kHVWgƻR{_y^ 8%Uò)|bUX xYekrAU[z)P )c*Ɇˋ%dũKoYVc11,6ٛ#e8`cl?u\T9U ~FhiMNo뭶QG˗>Ke͓&lo-%""&׼ͭDDs3DG[h{qΕw:z}}.C9{~='ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_Ǵy?ý_ǯ7'ϵ'* CGs;{Gs;z?~\z_x"?y?ý_zqg{޿&^=Oݟ?._A=}<_WZއsiη=}_~7'ϵ''ʱiݶڏ6Y4Y-Zo0oכ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8כ,|?yϹ̗o}8"ӧmKܷk?B8OK*KK"0̫[ >gd᫨KEfEd .ķn <%斏\?|uIM,w=2 ^y0oUTj-[MU5U%uT:~sq yW:t G+͜$qΰl<τ8չժN.~%?u ۜUR;5Ccekng^괒bT좨w ]adչzdKbJ/USJ^kZF( ék`X^Õ8nqi86# ~ 3 Tkx,rTCI;úmmwmLNmɮj8g#- gw$Œ7A[ԪQIdɜ4?T{@<[8y̾Y'kIRYܧT]b.mշ?OC_zÃ0uTNC4]ֶ8ŮQ,ošBţZ׸тo Jڬ)Wg\8l靅чIj-ϓֻg[^ qKHHeiURVvF/r}کj RYN86m1 U;:od_/L{g\8l閱86m1 pٴ8/Tl띿 |[1s/xZ pٴ8/-ÏfྈSv6EotǶuȾ-_k-Ïfྈ?`?͛L|C ѽ_c3X5O"&Kc-tra4k[Y#YaJ)[O G1,z)Gͥcw}ru]T;;R[Zbz SBdtLb+Ւdɽ"rm)r)}~ԶÎ3~&0?&uh>~1d;;|Q*餝;}]Jl^Qi8ImýtČ:Q 9mzYښ]eu)Jon9WߚyLk"\HMcML=9hҙ, e"I/N11vZu5rgJORiɜ13`#)\/B~h{{U#਒vJR뮠pGe;߳c S1G/Bz_^B9yOyGc6֚7slxSW_ꍉFX!1:SDr:_eեZZTj>ZA@cϚ2T^]?cd<1}NYɼ27%ܺXNzט:'Y%]y#k81[% 8j`X9ڮȫ/me\ ؐ+<Ի<y;"7nr'ccә[ 3׸RNs3ʦ$klsnzJV~@ e5vãޛ.e`ǰL:1䛹Q- ļk6d;|]8Y[bo&ꥣ M+D<ջ_˜iYxؙҘ3I'1U$PUJFoM:6-IVKy9K8eVJ mh +]7Rwc[FTzxETYD/z_!q~YArc vR1K.E-e$\}>ǥW{ r/%uVZ8fsoVOe[@S ytd.M.5˩11`')r{Idy-jZԪ.E6Ly }YsljM2q~[3s;r\cX+HIh*pK5}WlOA MDjH)[iTЫe;vvNie+e'}&ޚ]KK˭mۭ.kZ]JҴiSOc&T>2k^{7%3}m=g'cnLqtr\fO&e)PpQ6/cv9e:gU0:R4uY9o|amش3\0\-_ wnI{u#u4cI4HL%و ƛIDO.n<9Y&#~ˮ"vZ^V,zm)hF?6$FvIή_l WBk,qGF-ibkmX9,/!d2 w,crr0uq{J6Z.eGʳ'Gq>mU,Qv*o[[{iJv//y9Y+ƮQp?[[(e+e7'%9'FSh'xsI[[cѲ1](Y89͢^v4?ñ}j+*c;EkJ[OK-}T9A Ne9$Hlw'DXB2^FRI$ы˺p}IWB2oR>mv$k LOjQ7Rp#H&p/6ZW.ˬv)}H櫞(5 d3'q bW-%B, ux#-BVI–?:sX$60^ܽ:zULcثjcK+bwމ%b%`Iiȱ+ d=Vҵ"6WJ[Ki[c]ҖJZU)ZBsƢq,~FWnf166}1[$}qz_b =F3 VX:#|hGy)niX}ϬhLġq=Quk1[A=W6߰{_ƱEWqE,vr˥O63ɍx*leOGꭗ6ƽlc bϰŖh9B!~!n|!(\jpVY&*ꦂz,I'moQETؚv[J}Vm+[JR8+{3 /8Ǹ6Dlk^M/.a13EJZ;s[i^rۮ+Jsg#xl}3*tu3uR.^ O~ml=ė1"iCɈw ),֗Vʹ|z_OvʬUSSۡOPko4y KCAN<'+uiVJ-Exoc$Үcl&R1(bnKSq%pޒY#v[!l^6Q70y'p55rr,19z/? c{G$Gc/&ce#Zߤgj1^VPyb seVK/)ZTbR3xlnSk{`B8!8~Qz#We΢̲,X󝀃21uR1COuMn0u9`15ȍ13 })I3`&.{CW`ًk%)>V>L=GF`N[.<ޙ%ș#N<ղk⯙7Al]u]3Z̬(5t#O6}ѽ팶 ./d!e\AC/ l2'ds׫Y;ݾ%Mel*"ꬺZ)%eRbim+uu-V)C$s%}RUh$MJVj(UV۩[.vҾUO)Chr;Ҳ tK[ʦ1n MӆJe9#[z; S;ƷrtOKZa?/k#(֝`VBrԠ=MA2l:v7'+3JrO0Nh;<ۿ!ԛD'0dX q_2`.'9J//ne˨ hԓ /|}З>Z:tܔk?<̲Y[N򻒟g'<dT\ܪq?++J^ۨ}TS־V}@yWʲ|oov G< ȱlăx+eMZ[mio&c?[`mhL+2L^N_6̮ѺRer)^*_mm*Zg]eTFiCaИ)gqfޤ'noeU/VbU[JY'mGhAhѸ !AQ]*ݲiTR^Ri[{-+`n;ux&;'?~Ԥ /a '5zD/B%^(Wm/ Ro9qoЪoS:P?}v_$sMKQRbV.o%|Z]wv˖v[ZR}@Pw1Qn G7r՞N|}R~6t]}BtPȳMGQl+sJZD=+9 7{dbNw"lv̜55= 'FlW՛u+m/P*"~Ďk/jY N.TqrRQꥊ#gzĜ#J9\?UTHY6" n=OؑVmKFcQ"QS6ːlKM1+kaBXR$,nA5AdY)FU;Ͻ2,+ؼO0lo$ b4ܗbe-VI;n}e:+n APMYxKBq B$gnxڅj~ط! ǒmr5Wɦ]!OO*Be-?L[^2M$g,xt'ϥ2LJ[*ݪ\pQiޥN\NNf!Ho2<_Ӫ(T[s7ǸvRqncy ){gWz:Y ==H4ڳ5O/wl7/\B[sk}m-ئ{>c\[7!"0pUrGd[)-|nW'](ٚsO`W"pd_Džۦ'`x-ZN}iN%_zw{tXf!(*m'IDW'ޝŇ^6~?ߚx3Zׄb-磭S=pj2}e7VV0zP~^O{ 2כcc!ghq=t玮h'Hc HdU{0G]6i]oua}u/ٻ#Dd#>E^ZlFZ}O\t&М!q|{V"s=o7]6w)-+yXqf9V`F"ǽ8L=2z[j39AEK)(œGǿ]}߰<e@@>z}s:L :k뫕BJqCLxgj^-,&"să6kB/zWQ&ub;<5&E̵v/7v?! c 6RU7vAVj׶Ю(=>x˝ήy̖˸kս4,'?]^/h@Aؚ5i.ɒ`}Zޚr0u阌{.ۧV]ZU4.KsR_YFēEE|ɞ d1{\/]gmۦ#`&2fF969-*d\'Zdے=>wxϑe\|X-d8)''m7!1 I۹\I4%FVA .iʮ%م]N=kN+]db9ktlLsSO- SLMG^&˱v5'LJ}wo)7`m=Z7!b3q)jسlBhCɕlY0v>}C_zI  ~csAO]OMG--jB(unxVVRk}Kԧe.om+SWrS92`Wg g⹆))ȼyxK?{;57QͬZKR{[+U5(oղSYٸ[ F-a^"\82H>Q{\/BѹkSvn!:0cuj~Ϸy=-ZU8I_^'eni{%ڽ헵:ުWҝ$ufi84`cK#:劒hF^ʬtGVD+mRzӳYqkzBeMpI9)V(r mTnԺj-g,)A7 Yp[87chU7o9qo_$ |: 1o$iȷhcl[7IXvۺ##ıgͬtddsTGGB̘dě4fѲIjպiI+,Nm+r -]æ̟-Ui%m3LnnGImHw,{֭]ں )o@on?9=۴9 N8mYsMMRLYg7823ڋ&+A5馝[^K P bxݚb%,qYH+1:cumXF턥!Vu]<'i!n7"ow`rY$&28M!p=QKkFMfp8rMkD?EwI5VԩK3pr#@-Jļg+ GklC_4~֗L[+QTa Uo$+W\DGuOޯ)rs&?^i|xd߄ߕFVf?h(\.Of5wuM6y>\Fitkqo_JNᳬjXeL9la7,GzM+WI%O't>&kDp\jJNl쌋::#flH̻nߵk+< 4j@hDdOa>I-Xw͚nXCՅ nFkmOt5ҍK{/}78RLe9zkw~gCqZ}SӢ_x]\':3RhIֺy]}/->mE[)!_JG^)[[whU-yOy5V|w}ůq2 z3M=7ne!^VN-AdYJ]` w^klA|N &Rh=-Hj=[iq,EvT cE$]_u;~K(l5~a2Zx{uSSv=bG.&Qju\շ6R#uSRݢzj_n ۩3Y&ج=!NKdUQ RAkm,;pα.q?}toND/=w(N@s (i֐pkfݐn6qӓp#5K]=nYmh89ٯtxQ rK ]vQk}xqÄ"m+WVBo+L[N~9[׋zϑrew ~K"+m-Rjvt~ӫ9sMxI=g_U"|gNa-k}/Lhku[~'mݶe-cƠs}pH?;B_hSWrS92z@p姚j5s06p$w+7bܚ)m&Y})#+tNpg'AdYC;K ԝUtͮfFSzђ+$]Z Ѵؾ:hlhv /clqc'&b]Kx/:c(#^tQۅ(?b-?w_Oe# ry_d?ΘJ8?p~<1pJ؁O]W5E=uǏ?Ҏ?LR ry_?b-?w_Oe msYO537AH AI3~XN0EHǬ᛫]PRID/il }fL`M h9f>Sf^fK#c-tdH|R&6%rlz5ȵ`~k|e;ǰ[)J?EZѱnxJ%AAt6_r}]%b`"/F)I77i{Uo 5orTSm[_Z{JgZ\lALK)#cg!5l 6h{eQm;#w1?ђW{2Zh>M͍4[5FY'iEY ˲c q K'É5U7)r(e }7X_a]ⰳ9[y˿b/UVk_rw$whzv.SU;vxNu,iJҗؕ[ZҽeiOU}Udi>s]-1?ѫA B8--bJ6I$[e^_UԥTXou;hcw?1pyivi kږeyAZ Y/=LTֽw ٓ!e I 2s ax֬Ɲal+wяFDZ-m[eMխ|F-<$i#r}Kp cYc1CiFX}g _%%_NbIow%$r)gvZR;ǵǚcX4ҍmNJJ<ĜēJI9xKRp0==흝YP&^]J\Pmgb,٣[)W:d6j*ҵZ.\@_Pslk]V0O_7>ًImyNI%s'uSܥno,.v,?a6޴dz=~Fg=u $cC5AȧD$>QW7_6^dk8~=0sBnt {F ҉Yr(:mV_߰&au$YtδںWqYڷF2)q~&j2s6K:ZBd&ΗǶpJJMy'\[Ԙ+%(݆U!p,gMf{mo$1iVKy%tvα.(znK%ɢjjk4$9 1l"&IGW$9KUì=)^ g]{3 sZ~},cN{iխ>!ւNDÜ-/C6iDPi~/ T6A{/R'ftڮfX12 &LړX ž)IR&ҍkbdVIE# ktᅍs6h<ܝTV4}oZm׹W)#})UlNF%=-B-[[R6%&HYkzYBFR߭tsK;ٛ+=%uMj7Zc9 4gzж,MtBA)xwLFUP|͔S;f{. &Nb탯[br+&VsHUyZX\Ku :qALf[4S]LƔ2N?rW)˙PC*[!֛;^>N6Z5B(VlǜR)S^z {La= v:HO'nST^-C|UՐdN+.:c=m,g eǮE(㘦n"˞JrORBJˮߩ0P$;ygfk%Ͷ3s$ŜkxwvTv#/5i}ZR [OS76+@)F>zVk3)Zk\9\lܽojUI><>ۤ){R9^BD[ĝ|m+t'Ӷ꽷Z`kJSNe{k쯸yDDU7Msv;ph66CAs%+ >yx'ڰe7XEʞm/U]oNq86ձcep5ҹdN*ENlY>qWWik58_)semYzYa vw"!ʫZǽHuhBn[蟌޺^mY5]Z] /[> <=T9|ӏWӨa Cb3YeXދc1sEZbԥ;)ozW1X54}/Yj1uF 哤,g/'^ӌy#R:(GhRiE-f.Zv^`팾񶴺ۮ{۩ZҴec:7/0v^1M@%kH܂/+ļq{;l2D|{MR ܳMN`pSZ}6R.+zqw*!-$Q&*GG]zӏetvQn$k>*ִ)Z۵Vzԓ=VVw쯻{7>k]ÍU ̣6$b+ZM]pzʡd|+ A\%3SH1RK#Hqc:o߉Q)yYe[ayِd Q75Uqe潙:qOwn)m\C˶+fr (UY79B :QU.]W:.8α|Zue]4f.fBl$֪\RꃋV[;*XǐC^xW^RUYch;"&᢬e)|m\UuZtu/|\ttIFx{-O3us;9^w+Ed*,ȴa'Hk^S:[h񷣎K3i8,Be##)%Lv~07Ad;뛦FQ'eUkJ֝߄F1jVEU=db1K]^m<[}r]Neݴ#n r1 IX}UO#*Ͳ+m+EYcV흴c0L*^x|.-M쭅^f&kPo޵w͐REㄤQhN>$),Ւ[e8Kݩ^;[7Uda:{Z0Q onň\[[ dN/ѐi|[gWDxb?)7HYjf)bli$)}Rԃ3G냲V_7zvl$gVua.,QN*08W6͟8h&:H'lls/9ԯ\OFsI1bvUcq*9J&"]UEl_zKSݯ4VnԻ/5[K sfig2VVT4֭jWgrmiV2xC*>Ϣ:}Kpw x')s>+ful/UmlmE@tܣ֎-p=W6grq/2X2ecb-4^Xk1[h=ߤ6tfkdKVV,VN.EI\kRjTJwxɇBl> %mk{4 Mns>1VSܩTJ[}Ҵ3r.g\%憛kv!E] Seʿmz*坹U;!3Z,F\.SF^UI?{1nȜ+6y/(M<Ȯv<ҹ$)E;et?)y͌7}W7Џq+#6Nŕ4e۠u[=F75Rm_?JԚZS]#,[69ooA*F_4ŸM5jH@CC+w{Exﶩ]J[g&tǺ-r3Dד쳶 r2&.?k(oFwݩ9ksx"s^+[*Ρ;_^;boo- 6d޷*MexYxqnQ6<'L ֘ܒ֘8AJeṭVkrēM xXה2u;ˎ{[v\n]ft4eXO&dWQ=D۸t˔VZĝ)}!G=hx"DŽmYM6;[ļ4#޳_T{lF W=_flƙq+i^9HK[UYv-v=h]7d-nŴʮz}[[#U#^BBk~<0p@&Ρ`>!m]1J3L H?:Bym!vVIyD;o&~AVW[9kKsiۼIøn{-r>78MTVvѻf=̅5܇Xߤ1 2$ߒ㳲b|6YDO81]؍ʶxaN:<Fݘmc"oސb<ƵҙYi9Yj/_އnإJĦܺqIG0Yb:M*!s)D˷r啊xt ݫcE&?sup$_]$7oli9u<:ΰ7:~b9" `a{zLYH*rV~%a%"7y} 1uA*#.~6VUbS9ɊCnZiT4'J:N4 ݘwY,ۓ#} Ų?)qaHJry=2y3I<[ڊ(!!7+8wv.^;}[? lyL=Q6FF)5y#"C9bEzM(Β7PL %d~)4rJ+cIQL֍ܹdi Cc_$m3r΢ :®2HqWyn>qK\,;?;<^8N%Ci#=!罓Iv31Ⱦv#uNZ^eCVb8>&h;OKtξ7ϡ0̽cQ<;+27پY?Vi#٫$s*kd䠂MPEQ4NJSNvֵim;kZSSp_Rm/2m1K3Y, e LW y&OڧzU^(iezF8v؎F-59= y%(.鋯%|t< xYRfpl|w41[ZlXn'.gc_<~NWj!ٹ_۝Xv= o湝/#\'T^Lc %>TarMrWl2i;;_F[#WYj(\5n}̓v:N▻]6~Q ԛ8C*u4/kFbp/ެșVsߦ5ܡG"bIEw2G?1Ub|u\SWjEv1Z 7Ww2-~im3Egdeڰcr\|G U&2X1B.+6SikQݽG0v̼J1}drهUC1:zm̡LQ]|N1թ)eRUɺNZݑCT:_gn:\G[SrDHbөrM;p(k7Mf j.kڗ\ݵ{:'c|ϖa_$W0l&1(ˢ>yxR^ۗXNâ٫`OysбqXw0Rr75XO"QFVzh2L[R&Rq#d,cgux93(N]-ų9jIx6+$hO#ƷtG,]dB'ӏ/yqp#6׭qY1LOkGU _☞BXy&E0rkVN;#N]AM]yAY#0e4$-Y;Ѻ$|#HܒA5YڤuNpq7Zpnu0o[ӑ -ՊcCd$Θ+:yO&9׭^i{{9j` EE5YKI+/QUTM;-רVeҷ_}եJֵ)Zw=ǜG\frhhn(WgMfZ pbg=xTUMvKm8kw=@e'sG&;?rLd1s}*լ:=۔VAJmw7Ժ[)ʨmAV0}k\&O5s69Zz@?6&ۂ}<4ؐ#D '7L6(Y(MqDĄJNﵪI@ܿF<5Z|2=+\fXs Ÿfq[shܲW~ѣgA7I^G5߈<xad׸™wa9OKʕs7ZҘee,ic]#;8d}rɣOtN&{FٖץԵkӮ3Ud-eFSE9lYdӺ^Ifj'^[uL#s}\іe&vyN\#k]{p qm*Qxp{$zK>_4܂ڬ^q%ntb2" X‰WU,Z/_F9b7.1w1һ%渷 ǥzxViYKn/nv4oFjUJlu\cX6.VcfM%$6{i-B_j !l*$]+ϳ|l kL^`y¬W31|H׹qdPleecB5P{FNU$wr ;;gMCa'ST=6^hCZ=`2e)( 3җp/GգQGRG%6KIķ_vQMI3  ɥ ,dOBIBUT\?MeNHrWqCD>GnӸkK3w.lbأ)Ik6bmѹDl玝H8Fo,eq-rxq"2qhhyGx  :|<t]݂h-H;3'A+*)}Im׷c;d}@zWy {q [k\*˙->]7{\YUQJf+¾?:VA5m,! d>ˎEk[8[\l[4ZA(GP,᭗Hw7ycߊh?r#'.K 0(v%v 8ZOUM2X*䨗ޅaѵnmUz[(g=/~%ߘMxyl:4AbX$DSY&JGFRQ& \0|ps~Ӝq]cybY:[!KaOD7y&u{eI5O/)t256>ȋ!a?ƤCN6IK +m\3VX&%uQ[;/os(cǞꇻǓ2+Rj\ue3ʰm5{Xf*5!%){ ފJэ[})EOo{0{Tr[RGf,Was)h9Jo9dR.Ѷc)U,MKl85W{ V&FCBk) &}xbWa ג,dx'i̋T+Z:tܔk?<̲Y[N򻒟g'KN~Cc vX)r\n)'GrJMjw{ )ҧmϊ-lKZk_mkm݋#e9*5En`ETMdR|W.lq?QeXc RКSţoHrv[wTMe/MM3M˦Y.I+MÖvqw^'glT850j~Y%g[]ӼC؀ּ1&glNѴ5&^K \^kbfQ[urW'}J+mۺH-Kfm]iI9(=G[8jڻ\65KbQN\!Kꔕd;gm[>\鿩6ވŦՒbmti((<z+jѼ~ϱ{fwWq[56Mk8!E8h "a]0hXEUc~%uc9z,:S]3xk!785&S=w[3C([ll")WN1w̶ehiP~kG8h-mh+^/6f(E'9 VmWe{-)ݧgaOfpddk <+<|q+y9pu=Cw~'%ǹY#7#zmY3SF,2UA);6>qqKY蒘՘diZ1W'ʜbi[I 'Zc'ԒwiR~(](Aޑqf-,k]r¼rlpj[{W6Klk@˴j.]$Jw>id8w2}'6Ib|N2VrhKCL:J*4yaMkhq7Y5}Wܒi0+HErw5ےN[߯|V"r%RH"mUNp/)45Ms_ L k0lw "[uu|y^M4aZnE]`Ma{G)JM.?1 {_MԃF/[YrF~K62/Ǐ*dz>:P?}vSڿ*-7i(^Oj@DvCow/^+x#|#˶I}'7˞gY.o]nf]`^w훞Ol^WwJOIVaĬٔ~Ekyv zQڣQs&uUjIJ}׹dpZ^UIH撺Pd[lZCaKEN.zwV28[ӝeeVlhrl۫j뤫~vw~+yEqg0UC79l>er-;8·#ڴf,;3;U7NC8;'e´ unQ{TY%s\Ӌڣ,0 괗(({Y3,+rT뭭՚mg1#.~Gc}<ЌH2#!*9ѹ/N".A:UdؾK1&S09 ײ1p9rlf. }^\tIcuk\s;P\} ѬfܼwAF?Ͳz_'EH]s쮉]#7oBf fdЋE#ڋ3ŶR[dW<ذ_d${Nu&QПB[A%{.)[Du)5$SK[e]_U*s3˺){m۪%Rkeۙ*S۫b_^or]_h_m c&U>rW6C~t;UoϜ /{ZWPeArb_*z(wM ?7@n,Ccg鴌{ pn2>Z7F &O2K>Kh Zk^/7Gdw[$-3hw(d03i5]Ūqs6g_Oawu\>QyrnBsxKdv6|]mxUJی|c4 +{ZV;wRcJ7yp^2& \;_~U<5m)vzV<='P-Jb.i{ kM5azJůMa RV[%%\oMF _vR}? &WS]% f |UZqI(8 <{gCI,IQv@.;Hj/!ng=A*g X\ dC]YǬUi$}"!<:#8Z=Ӗw_>JnR,>I3Fr#yIKFSǝŴQ_J5fr HickSles=YvOcƸ^dY4Ґ:ҙ|u~'ZH=Bd)!gH1p_V2 H Ccw4/|}З>Z:tܔk?<̱Bx նXCɽo[Eڲ]t}(+SWrS92/d=յۮۺJZ_enNK.)P*zs3$ϰ|zNo_]=PEkM2bԕ%*R)J˫KJօwM+jA^sx2hukJouijZ7*եKiKN"3zf"~/\d(ɰZ-bO$+jnNRۓR[kZVAn'2r,B} AePRdY"g#FH3tv.,QDmY0uXNֹt 1WIɓ"[ycW9܊Q5듻R>|ٙNN8JA,b䝴F˜R,pqkTkJ^Wu~WNd-%{2GV&vrQ)N]mkC6nkLxe<ϝƮ邪$$bE6ȻYޥm1CM1y+tdUHGH2b=brG)(W uӽ%lK.TGeIT=3r~@,[i3ns5drkJܲc ۔ftrηjս R9dK]sI6.[eimlVR۪Rҕi_p2n MuV5|嶣鹶9{n|DVOb.g8S;<6&6<ԖLWQg& "53}m4Gd^.]ObA 1B}|Qj#.6onzuܐ/yGۻ.f1MߪsQ/D6׭9 `JƷym|ڤڷQ[Ul.[#COFɩd;- ḐUE3v^uU #4?]=k|$u0OXk<&cIk)푺Gbv)M`:Qh^omhm7qIj-  ZYjwYjvrn}ګ.*JUgguZc^qBB\UxHK`a;V*,qsf6-sq )Fz+.uu\\xM&4bKوYRj̲)rRLsF"^"bM'YĺoI=Z8cfg1]rTU nV~ȇP.\FAf荒/t>GIEcI&B:ӃXaNGɍ7k7gv0{㐄ϰ}]БbţHEmej]6Wx^#WF<$IN /㗋l&v4vWcxfs9f}  #-bصyyvTcU+wr#5y3{l̑rSQs^jQKHy4{WY;NHFl :+x!6fk 91F#"rqPn-q&ɳ+ZQTmI4T'قqq7 ,i,/'~E:Qجn-nU)d圝 q_?yqM}LVS)qkHX&[dDL2iI9'w jux-'_,5wG(k a%WO*T2j՜8M'7\0jkno=ocAAc0?`1hhYdɺ-o֦VYOU=4NG$v'^z"x12Ǫ1α]Wi͌%FAl"w޲]U>N]=ZOA##y텉Y-?;yŰ}Ue0'WiR[%ʼLw3H0}An|9ӰU%q <'u#҈ͭ3heq7QZkw skLm7rDq|}yى{< g!$=Q;Qa4S›ƽ`Xf.:A"fozܼLtFq2^Ey'"vR XdĜxJ7titI[,R˭3}'9Snll ͹KِeI+rɌ/nR9a:ɫV[xpk3}ӞZZVϳ4lK|/gªlsg!57,Z6ьŐNKs`:ߕ|%ԻkNff69 ^],ݩ dEOCHdiݕȖE}pXN25qǡ`2W Ι1jẔI} Ttf> N9τ\'̮L6?c3`m#l,>v^EdqHx>vM; 'InglMN}q;eL]6ϳ 5CsC+x3A} 8V.*2O_#Kq<0[ȧ\N|sTs-}kv~!^Wʳn ꬓ57% &QXjקGTSm^'fic*,r}a+ŮY\5:ՖyAwRXsGM;E5 W>t,֭8C;;:W;қ+X\Fb7Q01s_ r R (Ʊ`94e |6웷.9tY\F3K%F3\vŕVCIJ0|_XrSOeFdlU2 <f[JX6ZWٮV'00-ce'/ǡlk`"JMOX}vfؑcwI?|єtnSxe 8ٔ[sf6 Y'Z\D'\Δ'7gY~>vÝK}i=5dYӜA%|5ɬ^m芿 Kzr#N..s|hjřS|vtu}˺ų,rVr'ٳqf-#Z(窢җ[?cdpc<Ү٬6Ka {EILkmͯ Jb9Z1 IŽ6%d?>o]U&?Y+Kl;#QY.aW0]o̥5ɝ`vuYd>+*Hȧ Hk'I8[t0; Q&gv&%ʰ-y3#\)uHC=g Q[ղ륄|+Ys;靉b"OŔI(骲%V[E .$i1C_,t>&I#=6:*1rCdFH`[5̏e6sOFz?UZot\*쪲x/i{?I^#Aҗ9nWrBK68g#u)Ol( yer ̺b![OM̼f37!Y\SvjJ#UimߠFߐO':!Nge͝ٻL=^~ Q>KprW_\~'~Ȳ"7"FInT^/1lk7dv4JZKc^l$yκ_.j*Hx\ec"3ldRU4@}З>ZNv>ǍAO,SWrS92ee8v]5c%'%&6.5W.ݹVlM4춽_[SNԾ.G=kh$pII7xM5.-ywj+J*qK.EZ\.Onχ{7?Ĉ/{v|8ٹ$A`K"۳" ݟ>n_qsH|ǷgÏD 9;9 #?0B\8n&ӗKeC:֢ZYv/ݭKwn[p]̓UnW_+ᮝ)ᯎ];[mŐQ5JXC !xH5G4ku#7(bՕ_cg3;yXske ?zlwDZ8c6iGB[H8x)A\Lj GF߭IF袝=VYmr'muRZenKֽRo``0WZYˑu }CK-'ct%X9FE=GMHr0HvAꏖ)=N1y'Z}ݨ [UKOW]8 ˯u1lO !m?VvPjE ùzNܓ:OwL;6ߐ˴ IID()KѕFX8*Jijj4l RVҍ6dٻ6mhѢ 6jղIٳd$A+lIJSI$4Ӷ,ҔUO1Cݗ#я-?~6k S}Z>:m1nU71Cݗ#я-?~6k otOC,e+ȭ#-\r95_E-w?c`X9Xv/gU^5I4lkxLGE2kb fͪ lպI)meYJ[m(y@+i6["kaKi\붭edx$ ZWz[lNc]sY>43ܓ/SUcWa}L"Uŕwsn&NWiJzJV}֔짽B7u&Vm+[iJRmkZJR־P<{t^٭xӶ#xƽ]:(o2rfˮ7mmqTw{YǛEHXYYur)8EVYE]5U;Q%mYwge{.^S^-C4kT#*b5.hɂ+)jeŵ몋Tl,Ӱv3qme%+^MqbO2x<{(ğS狷uȡ ]Wlnz*mDzBw/K-R˭/ۭۭ=UVi+B$68+IX.ancX">=+EU]0fUV2v&;I&I M$S$biK,Rk@?@r:$aȩHbjܕK|MrN;lN\bWmԩD_cȮFn31_kL%f;v >E%.ƶb,I x]>,}r_#UЫ-G$G (Jm#&l& //v,^h,KWEK/{#UTr8eј#m\5zͺ0nl]Zfg(`HRx"Vٽ0% 5xȞBn2)H<6g-:F=hFHft[c#reTUQ6ܼQv~fS4lK? =uĎk)Tm8K5f$[#Md'.Rۃr^;Gj22^KY-dxݓ4E{Ae9hg+нJS[OkfOv5,>]aXBnAr6kc+KYe7gvc//iݤ2zK_%7W.l²r8aozfTVǖͥe1SjXBv3uƣޑCu;+$048N^2?y7C8tk'^ $T`I(9t/tDy %pQ5^v\tBWuutBJ,u_5:?WQ ;'aaud3kf1Ȼm,>]b2кA6n%u'닲Y.}iMK5%|%3Sy*P쌅ħvXf!hmi>A)sV]1'|uWw{WIl7Nm41zje&ۮ؅]Dsoq;:5I+!0~JU%n45a->J_g.nY :f78=D_tf-2w Ռtŵl8bW~ɽȧc:.KjHP )f6Nr"YD:63_9mdS9kXHD$+(l^kk[~x7sH-wk̃doһ%xo%۔oId"UXBZG>(`_[[3~^oZt6V3q/QIjl(nrNRJ=Dhq8g ۟qq1zcmqJH+VKQ]YJem]]ݭNКoeuCC*O"64ӼbPg6Zדp&oAkMKK^bOh Sa~kLfq g&37f>BL%rSrg7G5n뤡z'Hp9-fߎ('٬؆sǬh1kxVDdҒ,v4HSq%"kʺM2^"D{h|k;܇!ja&252NTVNu(}dނ{Lsdc\ 7%p,:V[J`o3ִkK5vs܊"AsJ'8z0@$W[_rS{qyfZ!p u1pk`g2u7lضmu3q6fYR.,sZ+c;O]eΉ9$2[ǾRgkUE*V0[LZ)HMóB];C3=mYNX}n8(^4bε[199Tݥz,bpZVkXֵmkZFk_]kZZ=>=A$p>Bq]fņEy\W\gVbGr-dXEΫޢA_Fyb[X[6lɳvl۠ѣDlիdAf'jH7nVؒ("IjimYm-)O?K.$?pNmjbQ1>^gH>zPͽN_$bC])wهp[fX7xҮSmfnMf|nsθ6>Z; .$ӹ bXɉ (n's.s#"#J: %$ʛ~ܷMz޶ K\ٵ!mBăkCXFNʶV\SWd>%"ؒQ0udK5TU/]ܫ|Dl?"Kv+`2ɱ1s;r&R3o#-sEڭVMZhJR@0)P_}{0:o~꯫ZދP)L_5rK4#K6^' ^/J=3 /I|OevN睞xO|0|}\af*›Nt$a4J[mTu#e+ګ[Ծ.y8w3>M !yL0/%zK^G賞xUo{~Z\7y5/=l ϖ+kl^SB1E [ѣHVws/vS/1 lm,IѐV|RuE.;- V߲>+7ܓO{+jDcSnj^֖$&{^!wRNznrk7ar;;ejVNZ. ^1U5[%50C*j)1St;M76JZ 1(0̩͓kkKVru.Q׎TU.9]UokMRW_4W}^諭:4?4rn(2=lOS!s|bm:Vbbn"Q$ݱA}^A$~LK9I?)8ϴl1z²/7ҘG_(oOj`o#{$w_<_V蜛JzeRXԇޏzS~O0|w<ȼOWO`R}Io6xV Wq;yd7ygyxO厼?~_wߏ.Yr8:jTf ܦ64R7ɵzxkuAKKiZӺa؉}Q>_TLG?1U6x~s{[ߏ|ƹG]쬧AricVʱA%j$MBnUvYDV.UhjSV'vEn1DbNr#6k BQʸ^ۯM5An/D6pq_/x׍h<o$18XyVr!\,ƭf$L$k^\gM|eC̮S<ư1gn>F죜Yw&wx.ez^8f\ψZӗZ/{-9l'(ml'([sV3}G% ,AF|͋֡t8[6޻i%2L43.V%{fmѶVvڭYA( ,һƷl5-įt} Ț;chih&Aֹi)G2ȧ+(K&S2~(;OGp?jc"-x01x S.+hQԱX^D֧7v{QiO1ǼG}nn{U9BNgOB̗e} ä#3T/yDI ?L='OɻOz.*s1+Tnla:_Lr##ܩ۬~c)eY1Z?zEx6R5j&ymo{oWp/Qyя&#-zC=yΈU/Ob|vl|_sMa8kN*AqO6m68O;G"ɲ)"SZ)f~y.,lWyP천vOZd3HboY'חReQ.1ģU#rWg.Fr'w/9FUӏ`{(UImRA'W=!_6]t.zJ6JJbGCtV1xlqpnHv:YEF)6)EU]k]Wqu\GŧYd36Oͯ_ueQ{^(9$`WRiWJŃvD&f_MM:7^e}Q|ќ8G(!<釤7s)/Ew|@6-ϋq꼝{>!˿[X-+[~-h-m)Z֐oӷzϓpmo""ɱ כ*ǟ,B*P4_}(9U7N$F|5FɤUg]5$6GLh ^*,rUFĢ pc!;ÊB6nOқG#We"9 8v]%OfEv%Iì"FTY %|=u*U&Ya2/&uG,A8Jڝ'+խi[Ce1+L\B}Ru,aeeRBv!|Bҍ6~TGY^l+dc^ÿ#7D#]%PpV؄c.nR˛?h0ϙ2y% l#ڸ|-IVm×+}ibhwVe]uiJTo 8m sƫ"lo$.VfYdy=͚dQ.3yI7O y7(Htm n}B6VWN~VOA'OylS(FZr6n+m|5z]N='&V.w X'i Y:/祧oumwwޞZ;\+[N꽣 Y^rԕ 5NHR.VlUSvOv훀6'3/4vNZmnڪY,FEdDNR˭˫miZ>'Tq}Xl>^Kk qAy|xH\Pĵ:yZ&_r ӻ =VXoeaJdx-vOY5p֩V <խ{4`׻J+)n~k&$s|%Zڬ 'Kյ8pntEm7lv _H䐊K_lŬ]}ɶ¦+uֈm-SUG]G,6{ޱo2dt?A[*vHǤk,4|n Rᄎs9;Eqyeiۓ]fd9Ils-[,q/lF6^e' KCJhIƘٽ#}[eTc,V'ssw;{{;vvvߧ>{hm;k^Qc4CMEc y+77 .&5]O*F[ZڪޭVSkVjҔkZ&mkZf"DDDL.R}<%dOu>Oz@):ly[X6nB]&7hʹOcg$p+Uhޒ;u"]toz O:ڙp.s)j7DhhYIX*[nE:+}.C$sn1}0M鷤6ho5kjm֥tT{k}'8؛Dgժ7&E/fY܁ceg+JӵFm˩N<:p&mīu3WU9a<7|ź/;}ӷƳi^Ϸ}gp=h8_+C!1)U'1+\w;{)ڢ8ܮB攧_Ns+c1z|[ٳG>T%k&qiyh\N״K:gO,geod;3̐~JW]ݥִF],ȬWڢJ5SR,ouRVizEeEPUDU&R+m[Z^ZҾ=/FMTW*l7]yˊ$u]c2vǝ(]=t4տþ״}?O>sxsi1O)3}Nў4.f4z_b=vq%Y})ZV>s+}>12KG\,]O  ʱڼ(e$^Ar+8e$ܶ}v50ƤY?A;ԶV܍\ZKGAtUS\31GgLyt?'x鮳龭9=%+ͣ vύۖ+1_|*eeom?iNֵ?ֵ8w8哞 c3kk)U]Q:^,v"7ZfBVF1ii(UZ&mi"?^|-Ehu[Ǥh[6>Yⴥ|9{LS:E%Zϼ2'r]-o;F)tm}( HOdn|Kj6 cB6&5%oB:9jTV]ۗj7S Elv8+}'=+nc.A|oN=/4ͮLvoKL^fb/M-m80_+X% tex!)e&վCȚڝѬ*'epd[E)%긯4V-[DZ'bc6Vvߪϣ04/.;5&&>h^=B5o/1X,#yFK]{zLYӐ(U[$j $X$$$YZVogO e*0,s%KE9oVꦲJ[oorR,U ]WfuCӯ\<͑sbLPUcv .I]ullJj&V AjR:jL|?|{fc?~},DZoŧ c7V+\uZGŭL4ǖZv8x/Em{i~iJA܀ҴI:o{ooe>omSP`fd<ٌaeYeVqTQfɵ.r.B>-x]6jYJK]r ;rz_UqGbU];/+I5^A+ߔs!'mk3o.=ny`M NJ+ٞLWF@:V% ٕY ۹}7˓}mSŴ}{Ow~|ӗ\ݷ{t4ٳ?vf~?Zyj|{OtF9Op z_p#dc;_L޷Uދ&"VHEȳY*(r嵫:zLD1111>ɉ꽦gj0괹r`σ>+M2͊|y1޳hVbbba.*r;侟+wZ5UJ^ə&PNJFj)#:Q+mAT:5)u)WܩMܫ_Jod5FE%Frg K\(mb_r8uQdG/ZWqkX$m-Y+}}sݯv׳OvS5{'Rݟw>}}u:ӦtێIw4늼DWY;qjڙZ1Vg™d ,dvpH][}+جW'إ((2JBw];&h-,IYzevwm_Y hvҸ]Gi)_%Jq1^U8]ZwZ}[~%Bޚҗ1SJhG2u6]smF(WMy2j-?*uعcL2kQkF?]&w)m'/N=,ƌAVښ6RD|"9ef˨{d͟%yd϶ִ@Z-[6C8wN]51c:S|-c3CϩmP&.]lޓuęErRhZkh|q s ˧[\֋d|,%E3Hi `[r,p' 8AEjZw)k{;S]?J,h^=ǽ_pҳMrZ7 <urnt;Akҽ4{mɪe{aW6]ضED&ei;e3+ޣF c몝Xf,R1ayyo)ퟗ=6{iZV.)^s+']Ni [^.Rv%w{*A*Ee9EkujZ/m?e>ձt[OW3C+??r_Mڛ`yR5VmZbxq{8"-L\g }:}4Qԓ"o!MƼ|ʼ?4!/__oKp?ziqje牏)b.Ot7-l:&o./O\rxy,yqmٓ/^xk11s.Y)_WGq3q'f0ߪg yǜS#ɼoO7G_<8福߈ɖ֤yͦ'ʳǶ<:פG]eޏ^ZnՇuy05ةrW6)2LMfk^ n~_R-=as|V/)yοU?6y͞E7Hy>DɐǛhngGZ!Aͫ|zzދWb;[EҜ_˶1 p%ã>\R0Z5MT+ZR57qJvR*,zA+kZ֖޶#m">nZ'!fEzRCV.lreJ}΢9?"gSm/\JLomi9SKhbcP)r)+k!!m)w5Mg[m-?{}v o~~gooiC枺R?+o~jWJ]ڕ﮴JVWJ\zg]N?Ϙ\R:Mxײ-!^=SV믃yF9v=m~k-mULz%r[b9 (om)odsZ5ÖzgWz+m%1co9rd'ޮ ξt.&N. ֻh`j01^&.|VZ9MvuuR,]uթ~Ϟj&H9F3<)3>ٚ -|;*W,Xf)s*kr'}Lؕm)JϞj&H9 (p{K~$9a뺊{Dֳ'QyGvOI}nS\ǖ$ִ62,\flsb$'$q htA;n&uNkmաˠ+"#N!^5m^6Ԭ3Z[55Ϝf"gπz+*$-m1ޯ]rhkJ-*vzԶlaz68/KAVh>'\0V)rY{\{,jmۧ?M~żz4]׽+{ƛY1LoiiVVƕ?޷z{lWZ'OZ$=S|smvo|^~2diJOz0HI)3+uYc.iEcץݺXyJfb%.RҜl^|1?7w-SnݳYqjMF9W. n'5消՘yL >05=Z2 bp6Ϯ& ә)o?wܧW; mZz>di_AsO@_?˩Jݾ߇)6MKkO]i^{~ 6;{i_} J#KT=O{@YWn6f+sT|Dgu+W"5vK-N[9:}U;i_ݶ.WV+O]+Zc(jv[JZ|?'e)Jᓍ':XzJ1l#dVE"n:W%־17f14?gO~|1t zi7c-*~q\x7(y)H _t0{.Q؜<"sԮM sn/BzY3rʷ!⮺Rp-Y9Gf|>,ɲChnZHZGُEo*c>ăz^oܝmw4M~֩mDUJ7Q5k%lDJR]N{|=LXبMFEkŪTE&LVҲ4h",Nme)m֔}׳elo>dt{~3̿AG}%h6=6>Nڽf^-<߶lFVvRnwv{b1(V5~FpS=;{v S)Oz~g{>S~m.=u}FT;io.ޯ/RM2J꯫vzvV6n@cY$C) .cedNS"WR.}R,zMzzwz)g#{We~׿O{=oJdrc[RbԽ-[RMm[Vf-Y@yܧ3/ME޸VnYJw!򋬷Tm%mHKZI^f3 QG_2A5x lIv[e7\+e骝'} yI*f~,ԺwdZKԪQODe_b,i}8N=>ēa3ź蘊f''?[7N:5u;<{LZo3q~Ϗb+ǭ8Md{,ǦE1s ltJUꊗ5qm |7n̔LLsOL{&>/˃%œlV2bKcɎ-K115DL΍|2%Iٓ>xoMg.jw&Uu{Q$ﺝqEw\cpG`\fG&T"Z]u{Vk->^6 }u#D{= :?:YMC=bՍF8:JSvSюDLbŒNO/~EdHђ.!0F"̗mj.ح<)Yb-,c\5bZwRb°ؔ`%mOxiNR;.dr6mkJ6={[;-{KiuR)3qҭhy;/J,њ_oR)_~U>N_ZX Rޥ=ϗO_K?mϻr]{5m|t5zZm}kUcG~-k[Mm7^w*{'s lv+J&;,B5K]Z[ڰZVRҞsO G1xᦋs?ˋedž|;~}ܫ!^Ifj6 WE5^2b6ip's&V_k/%u-m.kNo{, ]ux[LuFR귮/)e{\wSJe=vSjݼ?Vkm 緕fcL!ނ#lr1뷬LcE&4:is4͗5ffb5kٙuG4]>K;qiqc1bi^}G3>s̽LT=k[>^~jCCw>Sߗ"*^={Mݥ[J{oxc~ 1kKiokV񘲥ꧯ2fwiOW_ܧh iOW?u)Nv_otﳽ}{PF}]}ݧguoghT{17t=_iUFR?{hzWk!)w{}[}gS_j6ۻ~֟ 9߭+z-(zӷ=O{ {L?JֿYm}oܧ=ߏ׷}T}o硾nǩoSC=O.~`48}_Y>^|/_mS{|_RYOt[;>짹z4;>kv~ ̚RϬo꩐;;-Oߧ= mgӳN.fƖ߭)onʖ}o޺W=HR?}@۷)OWv־)J~ڧ >s~~~O{~SzRz^+U+v~vȫm+~w%WP1%#ߵ{e=^ tzv{SҴv_@.}tNߗsE>ݴS}3O%}RKOm+)<㭧g}>s$joj~)Nߟ1[}^t ;=_-GS}%=_~}DZ*Sܧ)m)3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb +di_gSdd|iGze}eCdd|iG}3~~F.=3~~Fb =3~~F.=3~~Fb =3~~F.=3~~Fb \<׺رmm=|ڂw]e؝..颕.(w`XWhZC UD_YR~nJuE>')_t``O9OcܖYʼnb6mI4N)[AF1ZXV-Cc#:M{ԼVRozJu-ۓU%-DԶ{ ֔kZR־)4SieY$yVތ=*%i~{mRDlQ;oiMw&x/~'{nHJ ?n'%]J^ An!1jHUZ4ZSQkKJ3mϊUu<2mGǭeo}+ZVײTPoE+NRPN3]]+Tp\cgNXPB&yZzwYzI}x`nwԋITbYųmenm)[m->SZS)N#w "oDl^nպ ~IYbWEW*[N˖Q&6N^(kDu]d?ck5OGW C5T#=[X_r;T۫uVPw"pāx"h̦)Kouխ$׶V[wk^9O;kV93ym^V \)dثo֕Mwnשּׂ3.qr)'[(#uvћe\V_U{kv!!ilVjJu .PRi^nI ^˭Su;/hЎ'\fVk,] KYZVQ}owUtV>RIo[ҾgoNQqt#Fn&q'.DPBVj6%cmjPMʼnm7h:N@oq}nUSR)eom*}nk7Ym+"FQCD-ERDl9^mm;,j_Qtä{7OãɸvvMUZ('z+}imE/[e_U)J7l%z0)t)^w[T㓾[uhlR+Jhtvaql%0"Y\I/붾z[wEݨ5+K/+3ub Ee_$VTkm͚u,U%N?Nfxx7IZOnQ5o_]쾊$^-KaRn/*򶸒^RmnރDۡuim'uGed'C2e7wʯoJ.|D[u;+[kj{;ޓk/ †17#H37 ?wwP/I G$TOf7mmp#Zl$rEPV߲wPR?5RItEtYl5RVTIK.e(캕.V{+Je9 σ7ޫ-`RR̬ڵ-4\խ[J:Ur-zwYEtd7Z&W\mW+N~/?ĕN ԺƫKqܧ[_ڬ]=VX*Vӟ[HlMC/szE]QhR;)U,\)JʹhQ?$0#1,t1c7%Ub)_WcwhN"ҝSMËo?C_HK=M (cB&dMӥzJ^ؚĽ%S˓nMKMŶײ#3 jw߶Ȣ)ep;Cc @ǿǰлy! mtR=ŖYZ}֥m]^wku;lv + >}}MWTQ{nv[e"T$v[[Կ_)6d4_0vSp{{_m}Ҵ/MK+zK%u-Q+nrNSBU1}8KݯQ':8ImԢJv6{Ggw;?vrN-.U[}Ѱޫ}K]oN)F9v5Һަ`2),X4N7l,kZַUR(uWdt,׷tYK+KTNVMdTRr^oDžҪwPk[ /go%m}Vvk_'Nj\%G'j.`8t˶ʲ[hɢ&񔢷Tb5N-:ntfy-2.11.0/docs/static/img/screenshot-phone-notification.jpg000066400000000000000000007004321462047176100242360ustar00rootroot00000000000000JFIF(ICC_PROFILEmntrRGB XYZ acsp- desctrXYZdgXYZxbXYZrTRC(gTRC(bTRC(wtptcprtI؏NW&CSٝLg\t> 9suVWsx>Z{fg\bkYwL9^🏼E(q?xb+[jjf+[GVhź>l+ IU#V&*)(rT@NUsԟOF];ՎV(ugEOF#X&67\k)7^_6[iOP/h\ꊖ$&Ld񔣕F5@brW6 ꥷzޑ.ݛ9柜pZYD[U-@!OXqBzu-g$a.]K6Xi,HvzBOٸϠX?h9ՙ$]cTẼfd6]UΡKnM GMͱTGYInR7QA՚Iye[6AHE Ð1b^uI)^mckvFX}c͵"X<.߳}"śkIq7'="l w%6&y6y_lHyFU$F3ncW_c*Z ,sǹA8E?\Nܴ=:ؑ|l'piR**b W]g彆3[#&v+j2#,,-_6tա(jW(m;l EyW6 wb.okYlfe3x#RIuL2*R^t; R'լw9^o L2Sgr_d-KgOn\sèSTfv0r8y[ΫbIt)kB"ؤ*h<3ـ'Cةmukqsj J# EfY^4j740JC)6wkqi}K,f/t ]S4q0KRiJcw=D._-t/rg*(9^bj]X4Þw/'p $tQ*DW8gv Osw?_SG<_ף%?JGD֣}M{9!J+xX ut4nMv2/4{c@\^vUF#[9;Aiqܜ\Sޟ2iݹhsgV'`k ̺iTl쳖бѭ]9%拖<] 2鲬dtFTYݡhίylKb]ăat>wVyo.0A\&~ );kRqOsQ-Ε]8;>3$}j O׺_-j%+ŕǓxI/=>Kz⸶H~LV$i͝LJOh-WMmu7ftg aH: ӗL<}vf< /qJ8s[B 'MY(]LyQhXHK-*nLd-16^„InsU^bVU.܊GV|27n_ctV?nQ5w&4yQVYf_.'lkhyQBr5u,Yֺ1ycʮ`ZtUm,Ēf|3Y۔%T>wn˚uҧ'k֫ױuڭ>TĎY 5nPmP疚IB*E9TLJr)lc8xٲu!Lq[)K\v; ]o6 1yM߱AK3I'~&g6)/35rѪj61WDU{b;6HMM_^I'RwMNYenJY( W+ldL: MNʮfeN~^wV.03yno5ՇNlhi& ؋Lbi;̾;ohD{ʣIu'2|w? 2dF.[Iif&[pDUm &mk-N%M#\ZGD UF*n4n;4~qu-6)k}\'K21,-q%c]݅Cm3lY&hg7{#btw_48*uRz3ɷ6/B|V]6f&NCe!߳uVlma3Qk}Qnh*ooVߧ/[ToJZ1ioQ{%Y5\2Qh;h&lv&@[5vXHK¨caCXؤK7;_t(m"QG3Y:.O,c#Jj 嶉|dQ-nVѤɣьF liF32U,e‰&m21,/ _9v!˦,Tn$QH)wcһ7h N.>ߛ. xFl3!mv6P+%ᔆϵ)H$"z u=D^Զ^B)vnlZlĘHBVSc,ՙ]2~Rc{譵]л֑/6ޯ^wNa_J.\]|tLa"=|^%׭]+E+=HK .8]lN3FqZhw 4\.ѐl1Quvw16PA+`zZ7oy!ײQOPcs"ixy1ݷM̼%n^ &\Ѯ 뼻]='OoD,In=\,UgÛ@6ŕӬ3Qp~VnWѱ[edreTvLqcN]7+\ngPbc/YKܗ**=n{1[Gn|\?35RM\W'jUb" BIg%Ib}Je,B.sD&k~Sq~F=ʃ&E 7K718 R6|gns P+'SnbF~vUҳ eٝ~Z}9 9jw1.fC'JSU;;6wDݻM*.{dܶf= ;jv]))y${gҲNnE:Q[D;zRzYcK"Rn21R1h9fDUf)Ɍ"7xC#<0fr. 6]zchv Q* |^~ r/ucٔt.6Mڟ/iPc--jqn_BQg]d)[[T}f~61vms:6=ܺ TkEw}.r܎Ez2_vKܗ;\Zc:Kk@BϕND^S|$ٶEv{1ݨn pHi~drڏ9U SH^XgjXR4-/#)4ʾ7 ۼ iuU ۯr,eMvvɦ֥"AFW+D$4|$;[9iz gޣԃBh7IN%bUha[pSU9L>;S~ʹxʪrUYCs<$8s;܇nOh=haDՕ}]VxgI%$EQ4!sczϣ &רc˱AQ;+"Le#IF>C9nn0`[o$8KmŎ]6][9,UC_է.V3)_1{D˜6hpcEmuh%jڱmUSKd^)Oqivc$]1ERg!MW޸<ALϏT}:{-& ~_ZdUi)BD6N?k579`ATzdQ6qťͷ8OP>)}y*AB$[%FR]d zpRb=5'Ț>QI2d "2d625f"̓ #v4nD۵hպiٲ D!HRržUߠ:|uVn 3mHJʎK!IǙʋ/BzO D|+(g@7lNV>SJ׼8Kj]r_18P呝Z1j 4^ZGGU[[7w7:~Y %X=dJ2I1 xOZ8"4tErtEtT:J1'_d++v#ZnbwNċgWJU0,5\(U3X~MGpmO5lO,~ O,~7~P ?wr;}OSqAs>q^ǧ|65Z"uT| |㻣Qʔ&pG(CJ&U"(c(S>9.~ {ӫ1VV1&\4cc2H16R!Kc.1cGg/d-dUK1dkJH>aq16br9hQ!;Nԩ1T13Ƴuکxmnr&Z>z1SԎ\81lRq83'k|{}Ob?1}?]~?(wsc;޻}q3P{9`L?\3>?W4s1GXc>{ӽX}?.?{s`}}}OSsCWm<2\Ϝ~8cy?ZTvZ) .quDv*14Dž%&FqrsYMN hKs Էy4[9gR؛fQ ޯ966Ư ݛsC&pd#D?e+&ѼlkG0x4zUlMv[+r(C٧+[ sBS+\"AE.bRx.YZFE)Mu`qf8fqen3h G-?飳aeJhI$Y'^U%ܜۮ[ܐ ܐ.stQkbrBeC7|SqdZUL1.3c9z)Υv͖VngRHxgE P*Pe3;43;434{ 7{ 7 ^=0xM.w&cu$וgEY\ǢsvS*9p\/m6Ւhӫ ZwX6KRZ1o`{Mّ璇i̮)HR!!`G*}s,c y12]/?f R:jEzJ5cf] |=ʨ*tٞgv 1gێkpm6srM^׹o/+a-ˇo "rC3rŔhXY)TU~E'1_ߎS|3뽡 n:&.[k![ʻN˖+.fٹo1+WnmJdp7s>1^SsFY??yh7|@}OU-=_ɷr;O̓ǟG'/P ?#/Te13|T{?xg;/>l#ΰѝS-'X6=>wu%rGPmcObb$4BV%W^=G)u} gxVa0 C8>mzyswLw܆<$~-2n29cnNοN5;VZT%ȍ1VhQ{(ǷtLM\@uAOUe"_]ls壗p50df0DQڋ_@n4:Ėn{ 5 ?'l>G<ٯvh5bmU]6= g:ooi'ڏeW5]^i[P%6UB_ud֣&# MԴ#+9Q[RRT7fw}9uz{k$ZWu`˴;LdN;G6*^ܔu:ffV'mY=buj?b-3:zyj9)%rѬMdޤX U+S̋ifԌ:mjSrB9s+.ӺNR2_c_N8h*>pd\+] z\cC6e#lEY1!ӳF̢kbbRbWNW*j^n=LιOԚY5 [rvmKQR-)$#/+sNk+/?_I7Z2JueYWH'W4VUrIh\#]ϿjE^IsG3 R49 AMvϜ`5cn_VHmK[9y=$ljI\5ƦFJ;a3d=.Z9'2v(t=HwFۄ{_Ё5bhe!4Kti i!hX caL8Y@,!5oqoyZޞַ=,rlzƷ1y*DXLA"E \$71)ːܕְokU +2X(y9톸8Q" hQMQ"f Z*mEKm."WiEp5ӰWH*QJE_\D|أ#\޶}VQ˖ghqSwzqyfXk D%3'#rƻ>rEΒ,ck fjke)p}SV^%y`n\8|WE ͮkwYYyy{r+|]ϫOJɫC@i1;" L N=Gz -yܚWmpi ȫ ]HD,UFe >qCf9G>rW#tc-Geٿ7ҳ![:Tm%/FBf Qa._E5*Ǐ[c|1V>V̝޻TD-K$Jvi "I0 iJE&{cw(I#WkܫZ[lQzfX[ z~ =2 :Q`WY" cך/uaʗ3!+rϜgn2nH2(;]UT>yJn󚗚 crٴ5ݿnqa. ˇ:O׫6)6IdUۧ:]ӬFzХzqmnOk54numT¢[.Ս~F]L6Sba$ 5#v.]3ς2{֚܌ڳ^<{pReqXhĴ~WhkJ:VdbY&Uvn߶<r0}y_VAz_s2N,8HVzs&(9|ӵP8]UNct=l}}Gh])mIrz:j'QVm ƫ- EBg ^q[FM29HTOu Ni@&EZ奪?%X7֏NCYfB17:nY:37KmMs )M:%pNsי3}%:/6\R0猙"(;:np)ӜȦ3pa+>vW˟nic?8?Կ^}K6}YngKue2h©TH4#:OoMu)&bOceӐJ(UuHYTJ\uZ٭3 (C&HպK>a-.*o$>\[㛹z].gUyٱ~GQ$4D!¹\N5B'dN4bv6 $7,U4$7xEm$ѓ-9}VG_p%hWmm'umj ƞˢ*+puNjcSW=U6*,hoa n׌|k@.,t.KFp`߽-VpBՊI3CݷO 9C]!ʟi[/%$kTIVtX7<2̹%d\2nYb~푐< 1뾒-5şc:O=itr R ; ltQ)]ȢʇnCc 8 uO,9[/ّĽ'`@qՉc(EE]YYͷ|牦0gM^pKenM.כuGm݋Oӷv,Vݵ(Wq!{o3)jSo!lo`XN%sݣ_s1scZzh]W 5>!uvYiR]q,vg*,sCWT^EreR:^;-sqjl[KG^Cjv1:{lCK&%l㦶=|AԢd'ѵz]:Y<;Smٲx6SOQC; &@ʓ[{ȬfW%Ɇ2*xRce3vps 1]uWKkdXӐSo6"5kDneǽDMTttxw698mMim{"nɩZjp!avY4jo?tLK8[g}!Yz OS~6Whh=i\ګsr1kTbD̥ƮQfѡ^GQ&yzN$KZeBM޷k@-楼Mֶ?a킩$cX(x{3 RpZ{"DWJ hFvɼe!K<%J88۶3pH0u[=*:lqpYnۋV8DoՔnԆɓiZg LgiѲlME*~/6#perƷu >ٛmmMyӗR-Wjو=VUxy+J=V/qk`g (0rT#|9?s1*ŔFՅ >Ѱ,lۖ$KwSY;tu|dL3E4;lD[K7(һgxYZ+vOk%־I_,cdP}m4K2B[6l\avB6AF;|Nw>SɤcB11{[cMVHwȕ$/ >7? w"&o b73Pq8>vDv0J6-6q$4H2c|'x׽6&+GVga]"BGۃ\ fvx)f`"d#{{orz]ls*_칓"V4IbUL|۴f@><=]GuO׮4WD)t2x}Q7\(S5ZˤiNK&m']1ee []*ܕOKte7S.SʍMs \A/n<>~>'n>폧p_(~1z}k~(Gp_5d~qV:)ʱ\: i[cKZCq'e7쉔AI.ֵi_r'nfމwahf7"DdhL[+hňnwE4fm^9rGC@G}CE#IzQ8'dzk5>q40fK+Z0 {7tCEd{N$ˌdW5̩8qds7@2L|G(e/SrS >FV~]J`>5aWuKdT{K=b''^T*ZO V _/u{iuLt˩ӲEl]$݂BUK16qk+%&w7ZNeWpE:u!TO7(؎߃|R=ɜG~|* Xr2jwsB*F%+ۿ7Z#N=kuN'YԚ۲,1ڇt8 Ng \zҎ&'LrjS n{WF<m?aVa1R*RZr546QSGJEJGQ`YFGMl_v^3tNIDLƷ '7SZ:ll;'Y]duD 5b9j[^F3UMԋ&v܊5{DNN;wu+ܣ1b<+d˴[sfu91^Ƅ?I=@C!&)l`1Mg0bpb383g:R[2(f]JZS em4U6MޙǴpNf_cת6釪Z-:^HRe:Ci'fƺy[EL5m T]vDIe]H>B'V{ΪծUitȍKnXdNPde&Z序+ #SYpY{'\^)sjS]l{;EN)zJJ"Z9YnH0r=IRٍyÍk.05lHu/.jdۑĕUS6H 2k YG2 gd>?U{[SjmA>ٔvz,z-j}֣a6YqfJ8Q dWI^]/dGm}ٍk>-ܜɱq1 Iu=*2 D wgm2֫6;igXFꑯ)+Jd( 6Rx;c$Y`5??RCKCU;&|!_Aޘ6,Fi K[{{lH/9D 듮hsŷ:LB]$Syse)͹U|e{3w>{~( HEuBLE7L8ڴ#_e:р 7JS`]1mV|1fvKIף\9 d+,8XNQ52 ee$ܴӍA85n ?VΝZ=,9ք;+TZRj36:ŕ~ yj~46Kxj C3H%|t6陻5 aōW8cXٚN51" E*a'L7lʅcmiضN 4(ĬtԵ洵UÝJDzj})!@A+vkpT1v3#I/UJGT#-˜Y67V\з vm,glVC*rS1HLxO{h9TkRv٬[5cQբSw X$쯡2sn64ӷ*޻kt05wRaSVBZC) chYiiݥs^K@p=?oΊ.7U\^F\8ٲWJGmPEgXUߴze>iXaHK+b2֒\v: M&V{z/=s8l1jл>;7k^udŦ6aT׎q)YY_jE e`Ru܂J3l _c?v è궾*lܚ ﱢlCacmǣIflEOl}%HR* N2lB"3sP 6gp"7e{+Zڻ!lI5˽2ʸaK9]EHŃd9MKcMKVmcY+6QQS2H6no&P[50;ʽ1܅F a7Vƹ8VVj٭,hǻ5eM'h\{mGDFiILwYXݝXĩG_p%hzqũHgrV|:L2!&jY"+lZnU!$ܶdQL侥@^d 5AV-7xߙUDj3Gʰw/%۽b+"'L/i9ZdVe䦥їK1+fd"^FjFƤdzH1.Ed y˫u2ښuC'_Z[SڤbcYrqMu$f v f7Tjt;~TnYYr[]%Wif`IF'-Lyk]#Ӆ*3jOdhʛQPmMwRIՆ?3٨`F)$&9`)cg8$zpm3W.;qs\ا/)7ưrs>:ZlW1u:j5\ۿ,$G\(IK4k붭׼SqZ˫ù mMEIl54V*.#~eJعm:,|{'Br>3GUw-\̫QiMHN׫*ò__?`ki|.+hw*(@.]sTt&sn>4hK&Ak-_U3Iø 妬L9J=/lU"K z{uznF[:y 6ȵ2Y;5n䎦H\Kݪb.Cmg| NyNKEEDH:j#S!tKp樗= N };!q`AjnE-i#+:ujbN)nMAXg Qr ͺ&"SeBMtp ƋvΠ?^~[/0+0ouv38 %o1&<}u^|2܍TH|m]w2?xyhk#I!ԇpZ }yQ; d,\-p5!_zus|0ⴢr^?;e&'6sqLF]2Ѳ#d*)prleQ͑Ay|Q)'dd]8}! ޾zctQw.8pYeu9c!TU^'cYl(O8|es16ܲ<|r<ˌ;:ʝ~ݏLZskgq~ /6ji]Wo\ Ok,=*1 i|܊II Z->zZs=z#뻷mZk9OGγlhBCHUK>a$I5;133i|||7<;^|ӽX =??[ooGr{}\̓{;sC~(df<s8qgp_7 ͞y>ŜWOlzWK-Ղ[t7.jسЭQIXN4;lыyIjō&4bČl$ k(xL2,ccnɢFYU2mLQCd6sa$d§)HupBC6HCRKɍc{`38|~ dq`; "~dSS{!0ouR.1SEcE79l&1Lls~.7tL&\E"P3>DO; CFpl5lݶaSGKvv糷#(놻 MZuj/X5dUtL(S:! |.1BCO@4UCO@4UCO@4UU4Jn56dUbyz]3%Β3ne@ʹECC2gm9vV~婵utAy==, MVJV)n0 c$'_ O檉^ewQ5КY9ITm5Q3`騚r1\61g2.;M:]upbdM$jH=cUlyFL\aӜ.ѳWW)T@BQmhywmUHF8ĭȣUI}6sEXPvvQS,Y%F<H_7`1یfsčk,~ c\}f~s1u~v?oy|?;X?W_N9GM(lol{\wTN/qQi*ԝmeDVOޓǃ'Xuc*.Y:r}$Rp^~[>\5^04-a~4Tbw;#%n 0NvwgWɽ'pw=Y/-\urRfv89&=?KϘ-ڎfNsכS/X{zk-ͩ̓Kx;ܤy[dž4`g7dѹ2NIdqe1Hq){svŔkJ !e}t(ڠ*K`鿰 rg;3gim7ƓٛS-W;\Rݿs0)q4iN! ] >l_b_xZno<{hO{zl[ׂ `~[rd˒<-}]>/0ϏcsmjcdTIJF#Ī%lL^{\Wg{;{c:׭d way;5iZg`fv+_z˴o#y)iik83gb&}8L^ Y9H$[ >F=/Xf27mwM"r*(tL:g1M-*յ-j^ihڶZMmYڷoKEhV՘m[Gf 93Sеf3Z{0VM=^溗z{y_{'8<731[[L&Wӎ5fq<9h^=!maO>"rl_:ͭ1ZVm洤Zֈ!:mJϡ@հy9io$y]<=Ǒ*&4bPɖ!6)pݻ&M"$2iV󜜭ji\dC!% \b:?{x0/jC7wmh]763O;\fÊ՘F/m9t)~+g=Yy 4Lz ķղKUD.;TTK9*v%B T͏6Jr NL? gGEpʎ8.sQ\0,>s8;q7i59o1oyi18>#Q^cq~Tqc(5j9f1g)͌vv>l 浾4uTЧn]Sl]\#Zؕ U6sٌ&\ã9ϛ.3u+]kC0lxe;k [1؉RU6?x9l>͓Kj?]q B<\rR1|^mV]?#J"n/(';^6y\dfښj1"Y:?{Ә3nt/Dkt;ͱhrYq?&}9gSD}^w6-N9jY m17t1b)~k_7ɗb|m`>= b9 ͱӤqkt?zk Wk߿A$r3q G\Mr{|/P< [g+C{Zs6@RmdǛ.{ NO׌?dXe]g?&{{볷c9W>og]3D(rTqM`qM#\"ʂΜP21͟6LlM~@^R?bZ?ao?#8qg3? >ȸp {{RP{~y^ѥIqGi͜)NϴxǟrS>8cHw$)ÌrlD"k0^U; /gʈ+5$E'qO(`O'.\tIgཝ?It_Vu1:z6-+mKRc.\H*{3uW7p\f)#Lɓ0k㙜{7ǭ6OZa#cF xvM*8tt6A6dz6x&<[W͠ug/ByrL}Ulsj|]9eMy̓Ok#IO񦴩бFWO9ˆ R6.q6plc?csuJW'8&ѭ,cg.meP6{qٌ=?c W's>9i|2^#~3}rox:5|>}_}OH+-r%r\a vyɱ{Mg%?>1qX(U禫r)(E 862۹K81Jldόg>3CUӯ62XVG)%c͝e^P{. v7W)z9G]H׏xͮؼGaurʖ]33c۳3cսt-r Ϗ{[c_Ŋ>v6L>`!Cn8Vn SnI23Y 8bXBɋ4q %|N2EccܢnS*͝v7t'".ITSslsaݯ#뾘{k$v/\s|o)|o#k-MbUWp/t}<7H1=+dSخ#k_<(%f&q,R8*E%} x.߄.>3`Q-TJ7'Ģ«gԉ+| .^e]7O8pɓ6q sW)7qO1ြ~3ߩhv9 ԖI_5Ȳ{3>3/ DfMqޞ+ngU\gosg*6%$ŕ1T961$9ZIVd3`9M 8 ~Ȏ{3?WS/hDy}QyzE5|Ez6- Mr14mMOr^Y'oc9s1l1nrl9s9{sߗc~u|6a"{l}+N)?ȨvVd6O3"rqzٖԓ˺M!)yK +f"e;Gh*2U|2)ƹ'~S.#mHd)2+V*''6;cdS&^?o"f~]3 =].^wϏs+M[[\&k>=UVbg.<_'\v/`9-\׌6vq. :dj _Jqla^oqsycgζd[՜zZߗ˳|9>v=Il|v ڙ2S0+pLܚOc؋V=z1_>rgtzL]d*F3rLEg9yYA\+D vGNDΡ~*SM,0;8{;G 6y-\;[x/Ջc[b0D'Ţ--19NK83\{uvSr`jexǚc=lg-})~/莸̓_ai_[07[aS5-. 5dϭ dplש6dFkC`㺯kophD$|2_ݫ e;Ţ_ LWPH~u\1;=hnW Qe:߬Dd芵S !hɃh'nY;=$b~~eҏ$$*.ӅsaL*H"DA4I4~^V`p{uvc_${g4ϫkf|{;_S. a˰?iOistGCqVy>JDZ3b[5 վϳ5܃ kZ$g|V`WUx  2G2dGG1OpVZ(EɓU>)Ab(!2'hi^TW#Xe#X,mR" jwgo(بVf\炣)s}>p7⺯>S_JO>sh>"vt%[<^Kf?ыf6p}Y%{Kr=%_ fhς' _N#^M{fP\L,+|M ꯥ*0[a82N0-ogzLB,YHJӥTxh\9`GNLuWN\'kb'lkg.<|^rs+=9я$ڿM ;c.LS!b1M61g~< npk?WcKOX&2.9{rBTLҫt۠ff" qpQ&eMȨƪ|S&4Ag.WPMR:6 \iwԫݗW74j+;TerVNl:DڛLO=f {VJӤK2׃ϾϽ>u\zEDݯO; $|yyPVL]]&&;c%"ޛV"kSsm޶O0fxG=Qjs1npܾ74;}Uώ}Xszb8lS<زRfA2rQr[2ZwÙwIWd0[E2o)aE`dYlt\wGh\FJ/E=x=:MrDbY#B#0deH5UL#P{1psfɹn޷^+Z[,K\tË-oL{82Vsy߉嫯u\)jڔc1V2^қ^Yrco_6;Vˀ()[cSҨdTҨ>3g2gsvI#rX2>|J|yf{ETXUSE9c9c͏0c'Θ+qBgl}c.q8 gEKts1yΎs1>sdKsZIUPs&fr81M8?w;q6@^e+KLy~ ,L}ns9q!ybvS7%IDW ~ҝqyڶN嶱NZe0=XfdV à[ju܂ltT^x>UPg"&p=W>[DVŽL<[^\/6z e+-t;j 9545Tw3$s%v7*Җ |wxUB]^NM8x\9b* muLR;M]*|#‘B9|誑[67c3vy.ou.SxɦnF36jֽ4"wk;u\{Xӎ5l󜇫mI1je6qyحm~o #vpI%VyUCO9F#x vwæ\29][<>x7Cx+Sjkq:[OKS0kk`_,8q+*!Cwۼ!wwsb>[fϛ%7ɗ-{~v>]:bNWfh7tu [8DUTU9TIB1L\g9w[lM}ͪV ~>!Ihj2]JBY"(3YO8nsVKkC=C\N{Cƭr\Dc,f[$Q|2~T)ó:o)z%k:S=).ypG<3Uigy{5[?l;ͱSf: 1|C'2kzD{  f>k'3$8LV13>{{꩜c ɻk++2d7b ٞ̕>Տ.pNy1|\;|arEvMlTI<?2n@9> ]5zN9nrd 3%1PCg>+s.n1J!ڡ1v)+dUDMdܨʡ \8vg;q6EdbO&O!b$Y@(.?iMe*)?yS VQ$  g\Fµ1RaswyK8||)q'.|zںf"rfϗ:DDu9 N/CwM];Sgwg$ǯ9LDSwynUi!?dcw'PHk\dDΆYڬh\e2eZV߯]vl;֫Z`T\LY&SL܊)VEX*I_dUs|E}|G|_x{bry;[S^f8-q.u3՛Mlhkpz׽x*V&i\ӱjxm퍬=0,#@y}N:\K13զS|Of"4:IB5+̪llnjj[v5lMmx2Z4җbֶWfcSkf3[[[cbا>Űaɖ0aV4㭣(YM"֬L;.K_YwVyU[E}od2Ysb>«M,IzHۺ˩Tm2hzߣx.;ѽI]ˣ}E5oj1nx;X1dOG^ x][ow+3\rn`]]31ud31J.k"k"dU%R9TIT.LL C9)3؊#1 Jrfq3tȺK?@0nܔo62S|]yIJЫn~ wcrc;1͟+.{c}ܦ<\}>,c|ECM/o_ޱ~PzFzF5<۽y}>cy|WdzH|gwce|w2%tshڧHԬƭ|c=[dɋ(na%qRػ-b<Tg,63BJOKX\{\GB~e6hg9cҞϽ]A|H˱lj|^F=/Rwl}~g[30bᵱ_/[ؘx{G 2vpг)VUɹW)2dJNEQjŃ4t¦& CRurޒU)ti׼ަ:yG5H&lK*8LB*Ed?}^bDF {t{q]?ugxoc3{YmsͳW9{)=d7pz߶~T\y+NCf&bh˱qb|nͅoEJ#%ǰ4>0~5o2q&H>{WҽHWzTk{ rZR&/jƯq&b㳸p_>s4 1 =qu~{N֤Ϙc/5oklrWϪq[M>et,y:[SoVTd)=>6 |kBEd+5?̃ dL<aV),YiSJc0Kv-Iqv8t$:5Mئtb&M4UVmECa"&⣄l~55|~3.[Zⶳm[. 953W|x1xS\Os44 a:ya{lXkL<">>ǽI{S׼I÷{sV|[#H43Vca<ڱ[SFl/OZ[rɯ5{UܮVqT2;b̊S+7`t>S+o>7Kk6\۹qj`|4cof5˛$+6Ch ;MlYeç&jaMS-xlo\xůyVXmcnOt[=iNjȼ͑ +oSGj#gjTHx*7.Ǥ|ޣsҫ1$Wdꑧ@9NtaB ,Gr\ӓu~\sWd`gjgrNa%p:h]\dL1sیp,oҧvzg'#[]O28-+qM{ƶqN]-ckZ{GnNt.?ݱ9}-xvxcO#ExZ2ғ^1Ԍ{zzR9}kq9i.NVcDɈ1Lhyܝ$t6 <nV^^7#E&-T#$vq&1g+Dfb|!'q*9r2>3bǛ#|o[%F9>& Cwe9+jl[kqK,+"ܧgy %یB83g@a?LO\e˷tiÃ_N_[|6rl׼yN'/om΁ y&1rI'r͗pS_g6mW'z3pru7qAMD/)YqeV-DU>+ݶ1}8Á)AW!{x]̜/tw?qbSwWϛ_cddoX-_1_v/ j9>twΦY^qڗkVK'h<=4cOcV'^9mv-E I&u.;0%3($9!WߟiV-kk i<*yLIc5Ȗp͖ʘ\ɏBno_w|CmΏRQ|~9xCH4G4};'ton~,o}qnt/X':P=ܧ)ooh͇';ŵǣ\9yLϝXtSk}O}:cտˋ-<Þ6=Wˋ'0i(0\GJFH g4Tȹj麸*,1CcqqhNNNճlfq1Q-slNY#\VE<)$șUL(^n].qGzMNk鎶ϭ]klڙ|?n+յfя=3cj:o9+sNޭn_1lSkW/m[DMl2?72z'a?uᓪS[m 3W.i]Ɋ]&f&eJ̑.Lqj\-MJ J3)]«tKƐٌg*_9qقJ`w'qF -q++#u=84wV|GO;]L]ڞ2NmΛŽٹ:o6|3m1"$ iju3F>y|aLLhr-l~*`*MEa!>q8! ={1|Bof56|,$AP+řB5"9rљ.1rL/fa̓]I;A&Y˕E\56|*~lgX9 lL[TT$Οije 8"s+ZZH:N}4Jμj:&3ܕ-&A Ҏ+yW1].cUJr_i_c=$qU|*'Sf{;{s*LSҙ6Fm^庯.;Gn~>|N1Rm}I{#Ԕ8:gwul~C={Gr~>~O[}kmo_ӏ:Vb'&lZusǃ;Zϵӽ;ug5Oq>cخ|&Ky^almL80^kF-nMePuʾO<,VLg!cޣST2x&2|r%Ӥ79v{rRlOZOZm|\{ &t)4k%lzN2..bvP%CpL&2JHe;R*9Ɉ#c6徳89sfȦOL?G-? ɞ)n,Ӫ{N'~r=_tڽGo}._IzҼ!1-M3ͫcfWӽ/nG^qs5Όɋ3lKQÏ<Λl}kTiɺb46/;2wU8E",ܓR.v-Cd# $; )!yTZծ"Tj҈EJ0Yf2QrlU)b&rItr2 9ɝyX9cCTJrŕ2٘w$HUnr5IN T\^\E\W]yٞzO6Se5=Ux>kj:ml|=0嵼{vzoKGMi.-N|OZtަI˿N|z״ef*kiˎjk6 艹\O^uޠ}6r $m5i*|$gY:$R7z\W-9/I-KXQᱜ Ej$cp5[8zXq8-pwK_cXû1'?%ӻվŧf|>?aΤvzs>I=3ԓV&|?ծ0>jryqKomgkqp Fj+B0AGIe ߋ|xTp E OY1L$ӨpPqɕi)gdn,g!:vßM=ɻ;{1G{ {ji]H"۪ю*'nJ&^S=dr_LgC&.{<(3gqc8> >|gk8ī>r"?Tɗ ?b#2̓ y1}L~i|>c|__Aߵ;KY`8]e޿e޾~T~|_khv|K7R!_7XCx?K3g=}avEL$`T4Csܤ}5~ wl7#,JZ:ؒ*%% ͜vaD[R9slazrf/"}v6 LM+^oOk61e+}ŗwL}s[<'g7`iÓKH^&Q䞮/dU>LGPJyY&!{Ɍ|(L*S&L`@ wzS뎜St1r\'7K{W,|6VlƮ?51c͎b{3ԜHs_Rp49~#kޞ?Ŗuxydɋ$M/0+;_emf!%(Ub<(˒=۔H݇Eb(lb2ڙYBO_JjP8 D)\3|d!Gn9Jr!˃ SJb Sc83qg|wcsy(˷{'1$5E9 9䵣:2fdz]ỽAMoFPV^38ֱ3뾖Dhg ;gÞaj4yo읳ŘS0,wpD<#6IOdM3`Dt_P x~}\5Gņnm1KOrlzqa{x5۫~::>'&Kya'6kS_[ gL+_1f0kWP$#d;D|~1S9LߠHܺўJAUM;Iɹ{,̥~AԴRroT?ztu32*s=qܐ.0\uc#}t7<%i1]ΠgSgrR*FcWS:yY͗&{o]aܽZ&ڼ'&8+85ql<݈NQ9LGg%]63 T'g|g&3ϏqEak/zʫٮ)QYQɐs)q9}u6v6&#_lߓqc;Ems˟g_36|X~62VG>{˻vq%sv{sٕY%QG=rR?_Î?\6J hS\`>Vp94aǒmW̵{FKKiٕMO[0ulȒ>0rM"Y×LI%:MR$lurT7Oqwv+fycÇ/%1Zҳ3>!5x lۛu45.}ŃtLr޴+6#摎Hw7m@"rj;4hzW[ ƾse_ڈ= nu~ ѭ=C<A&q'Vj95m#H~ej߈zntkID]kZƕMU?ptQsT_%JNz"&Qcdx;ӝFӷUs"]ڬ9ZȪx9V&z0jYnt]$rS&r8pᆭó=_TuGw>MwsjܟRjӦ :]ŞeG{9{[=A^zw:w=ҸoL~|{9vW=8+e |x+: {BRulg b(h;F e;0>"+ fymUxN2t%uԎ-ՂgXr:ݴ)+TO> ŔHZSb0MB0!T rnAnлF/I4NI^"H 태t2p\c6tY>P>STP./ٓ:'vϮ+':~_fчN^o|7#|͏mlsXɡ={AtY_/'8Y{GKM`ɏ}<֍kЦ:bl_sZ#c^g99ƅs ˱EEe>,cl`h7s_Vn6G,Lw4{ lvg)[.{R2S?͆{L}#/rأKe3}}W5-,GGswd]7|>g`툷ϠmeHڬx%dsuL?Buۏ9Pg4wuFf/$&T;j|=;sjwJũ>hC(R_՛ =F.r9~:`-[Ӌ,wG3Ostqc]K|'g쉯唀%?_:?j,wX=[[u5Z>"J6A $7ycP6S.g*c`>3~׷D5=}  *܈RȯhM_һ3ޟ辛؏ſ_elYp8:,yO՜l8rc c\,sg9ϟ9s#>)ySUBgJlCWڸErߐSlG0n!ӻ*"t<ٶM}ֲ.('öh&YX×8p]|U;pCq|im=C^kܪGTe67'͔"db˗popI>ӚKXEIWyS'{u3 Lٓ$D{LVO1:&9KjYa VS9/iJlT)rc Ϧo&m&i)m]eUۆUγe2eMuèŴƦ٩gn: lSs{&JQ*`,))2}ȶ.QI~'5IS&|w FS;j蝸axM!1-tPy);DDA&lrDJn{MlɖqnjTwsk?k#'T@iڮzoTrF uCD1=GZgz1M|cwAZ:ؒ*%% ͜vaD[R9slazrf// /[N[76MG*[) DSîY{emmsf/A9TC1fǤ+]4ܷf}V*Քͅ|`~MIR-ؓQjWJw}mhRqyr;pEYR||dIMei1y*\Z\Ɗ-#18AEHbt7nRPiMfҺ_sx{/:=5tQtSt%f[tkp<+jxprJ0ɏ%1=3g֏k{79'8>\tŹ:<nhjlsh}s|tKٯk⛟~1mN)Ys,gYYw68uW7yxnU2<=˶.tcQKql~tUq=6G`kf&dp|&8c1|Rl|e)!Um0^+ 6Dl+"Ŋa\()'6Vd%'$ތl/x̐;ɤ針{%0EG8GpK7oozcwGWC_+l{z0k_5=7x~;|\t 6 Ӷ.OkKKgKg:;Kmҷ6ij\ xH-bdʴvJA0n|tXb&|㧻L~Jגbr_XXǛLDDGh7&)_Tk31X33{kڬ|rU:nc9.peHyqprc8=;| }`d7?hw% Y@8a޾~e~>J>#~`v|Ko1P% y}_&= }=Xfh]ăl奚?d^"6kQ\;Y<66{JpFלnՓ@cSbgR}XI2Rjv(aK):<⿹' qWsFeδ3@q83gqg8<3>3_t]\.MR? kW*$RASwn')H1~*g:a;굢Jj u&вNH3TpێҜ!d&L:g1s wӳ<{whǫt7nbsDz拾5h֛Wӱ_.)WEGxލ>\<|lL)?lLLجEX2ǓSbAblj,;Z&$657ɊcU{qT**3}w?jڶƔZFezuD!1{:1JDɓaELS\圅q鶥8J~BFF3lsu$x"+ʿ{OUٜܨ!1F^wy>~+.r-g&}./X#ϱiԦ#8pxÇ8t_$ڼw M;8ym G/NnOÃ6|1|Q{hc˗vRhpwt+mnrq*ݾƕ9 ݖlꉝcώR:362EW~'H:hmə&"*$~U^2i:5(2;cd\3O0v]o6xW[ ~wߐcO5iiL= mΉrj:)>8pWSnJlƵ4kiHkCe@[`n8Ͷ\jfL_.`1ZܝI;.sa,lY(0{W]^>_:c!T9XE8]r7YpLEI*ȡ r=tp+/l}7ԼG+m mV5gFv0|>?|pzbgYғ5u\[+~0n{o8Q,+LNi&_HYvʌ :bNNt!CMm]m pWZl7{37 >71詧((jGldu漦RHtWzt!{1s2PF2Ncg:d+ogk13WvԱʭKUyɜ7PU]߆%d_0ou/BvS5onN^+dé`D4aNͧu[ךx^L\ls9Q~Z|`6 o(m]G56RNuq yQ]*frLwXgL89Kyǽ}$VR1G3\\6X~TMD/n{8&[C;c(ɉTڸ۵UHRk]:=9&<)c )9C?tu m-IRŶ<9</>Ɵ#ƌfk,ۯ3npئwxRԯ1L[<~l8660z TPic<Ra`9gVZܓYxYxL ¨.Ãc9 ES1PL.wh2ubHMc),׈l"YI l: &4lK4̡X=ʈ!!4w~e4V9Z;g !_ ݓ):hgq83g))C*e%B } |'Tq'/O5u#k&2ڳ`\vm bo5ˏ4k/Ӽ#7=66kcM][O7m{d_Ǔ䪉-ТJTͲ*!Jb%1glόJɚBuNu9QC(sd9Ϝ91rl9s[ze6-jzu*d^!_;D&,MVɼoV]U۽톞Svg3˭{' 2ѲrW%햘bTNk[Yc88gcnc%|zlvk&hR%4t5m}Hu&ye`p90vEz+xRf+I4WrȊG9z{Z:;jih-}m|v͟6[˜b^k3?skkgÓckk>-ml7˛>|Ň:2diJִD|ۅtX+k &6gbsB+Dϟh\g[SY0z]Q5i>5tF2S9W"7]r9\M:S&9rssoW[{ֽg1zN]\y>TG99v8:,6Q­ڷn{A$rf \2+d19GBW޶z犑͛LUU>pR1) cG=>jlخ)OIs:Y#&)sis6;K|S|ԯTMΚILq1*馲*dV!ITUU5 j9)r!˜3D:Ov÷RӿThSLniLNo9KgϜg"E@:ґ\d&X# ^pˌ; w{SJl3f]'GnܠSI3.0[%ʉLc9Hl`;d}VT3ݹ<ɤD Oݛ QWYb=;qSq1xHǛ6;;{@wVd Vc4.ArI2NS/a{M5(Mc[=F%bg8#r`m #W&[}`mVv(egK,Px˅N!a3vhCѝ!{9|V)iSZ_gϏ56ޞ֞*وHA"q.1J~भH1>JzJ{c=TtR~T3Z=1VvckcLfR"LC\l޼2v&xLr@^ȍۂw3yNw$E'QL|'ަ*asے@ʭTAn1K6z]AwkOK50]=bb=74{cW4_{k5lޜ5. K`M΢sƒ_N^UéRʉ9htA0Ъ:$wP+*r?EۮZMIF21.Fm2wH`>Gxv2u9?C֯ҴWPBO t3Gr4JE `] e)r\@iԩOdjEu̫u2vX`fDErL"S9qׂP=;w~7wzs:gLs_,8JsrDɎs⯹Kj~}u}ޞ/SSޠѶq[!sTϛ&jF!L~Ӿ<<{3fəE2k+|C7>qLɇR.{.3۔O@/ӜOp\~Z;KpjkaW,X򈏍i&KZn[-cNGc&I˱ޫ{~ֱ"kJְgwLb' +iS kf.<.!c0Sc$Uw"|dot5)&fX:gV>z~LԣnSxV)rvTDUZYO8,ެv-[G׆7䥿]}:C7Nv)ǵ\7/_NH5鋋h,oa^^?ـ!>1ۖꤿFW&/^#AO9L\9on>q8ȳ+v*Q8s}v?3"_u\gJ7#S@NzFzFo}xQ9_K<6?g`$a ߃A>j(馲+&tERDIB&gHj9)ld.rSc8p4S?ǼH䵦D5W7RZ(S9aRT'j6Ɍ1CJ/Y{k:6JF7Y5]Rv֛CW52%$TD2g/P{+|y+]W 1XkqqR&/leZnr5Ë&=AnqxnzrfkIۛcyrZb)9kM)ɏf@*ۭ.: BpK;AJ#^GH>HG2dEB v|T]vA}}|zjaű5ҹp.\㵩iİǟm\p˓ƾ|wśl7ypxŒLwoKkh3\-sm(g㫐, 3\wkas$7(l댕oѵ6 uj"jxR8D+9 ٸ=~.mS.+fվ[e; [oZ~]=Llq=7 9hbW~6,8W-l ^8W^\Gqn6/ f+Dlb jVDI.K^|S$a9q<^۳?qk~'7NAG3xN¸h1`ਿ~b$[5z]͍ċ7T沴&FGv֠+7<1#DPFJ&l;z2>=~ݭ:&=m/t ɹմiׯO]1b;/ٻZ7;Qnn)?ResfjsS59;nal~J1(I/Dl&iB&֓:dJfMXʯsujۂ$ʶIiY\#^;YѼ[uF`xy<ck]+C=NUU9W|~wUtOkmOOLE|DQ^x㒜n^Ps's,MFWo$ŬS4peJ6l^&|XVnggӽo^)t%;ŷ"طx}˱dL[-ֽ#uJs#Rmstޱ[,rn~/tvכyg_1>j&OwN֭p}!u6ɋl8QèiZUGՕDG;r4 # c蛶o /[^-Y7W{1gngb__w5s˓={n.ל;fy3VnCO$ʹ-+#na+x3Wب](l?з'ܸEAT1%Lv;$mo孶؊ۖwF1v)b;>1/EYUy[lOcJ& S$ṅrxQ*R'Q$޳Xkj~ _@NGe_!f̝]E,Mݮȹt6ߝ^ߪR)6Jggό{CZΞ={yq6ϒ-vgcrKW[fm5&+&6yi毊']L4Oqv ̨8Z&TRd7gnH|y|}6>gggAF*TH!˞g.~s͑z%eˤ2g Y2β%&6?c1ٌvclc1WHG?a)өJ_OBOl6p;@U$IDM5Y3*$J$Q5>2EPNCc%1ssLLOLL|'&"bbcOb~SdO?ǼH䵦D5W7RZ(S9aRT'j6Ɍ1CJ/Yk:6JF7Y5]Rv֛CW52%$TD2g/o4{nX7 ¥,(yy""ɓY .sEPzu._~5;^7ܤHjjI$}'XԸ͏JӒ??-\zb91٭uh辨s?c%6b|rΞ 6Ɨ%ݹ վCց[m]蒄LKYPrюɉ gfKo7n0lJrr\sb (^Oۏ9zO?͏>KE1\հs!s2=.>i'ϟ7b~~7 r_o{hw/_8~ hy@N?o;.?> %7_;~?> %7_K3y_Pz"$C7;Aj̊ѯFU9 Xs qJsQ* rɉ_w\CZ#{M6ꋄdU)볲hvLP.9'rJhO:rd?.ZD&>Ҁ;[DCG ;X[(TP|dFV.T2kUCLroٗ>N{o)mrZfǒՎGϮl}8׽k_Ͻe O^hjuVB]`LVKH&1;hitݩ.{>+,W\z_{Zލ?nO{?SQ<^8>GqMpluJϦsiWխ3֞l[@S` g 9%4[-w"o!gʬ r-Vgh˶2fp(M͒?=<Kq{b&k/E<1ͲZ4UuSAYe"H DM2c'QE.2c8)q,69{ܩem3\w oq a7PtiOHI;?{Kq=xpY wx=b%!=qu7TH\&aZ5.ᙥtb[nzO>f6Ok6!k^-6O=;C>9gk٥_[Kg>G=}ūk[4-.;boál8/Zfͱc6~VOVU$62F$sam9 L8BV)c lLx>s_Gkx[w#pma1?1-.;_Z_Kys^ hr\W'SGoe/%'KkJ&;S%+hw#6υTnVp:sԯ)C9rTVs;EؾyCwniimT"٢.eS?j*m'АeT3xM$Yx;aE0m`kk2>/=KQQLFFF4ml#3DdͱnѣF馃f&("H! \r{|eGN{i=75cR"0 Lq-Lvky1;ԛko~jkcd3NrMm/P3*?G@6P vs)J9W&+2mldyi#2"B=RIIs% $Sd 5&ޅ63='>Rkoݵ{y7Y;btU  (u.¦\-VT+x TWȓI:zn5Wl:ĖTllq4I)d;iȹB0_9ɳ7~i^?Hs?m e~NNX[%k_nhLW1-Wf:[0uG r=>oމszٲ}Z[ݏ&2m;haeS . 9似+h\=x)T[M8F̙1Ǔ.\ŋ-.\1Jͯ%1ZRiֱ33-.JbK˒Ǐ:d+JRkLVLf""f]H^(qpb5kU foM%JYLD1f!4Arqcd:rۭCDvZ&S&3WDŽњ ,Ɩc*6V5S{?95#ZZU. SeTZg;TԤZBfezO/;wT),C۝!к9 ;&}{k{$՜33OC&M ;lyFꎱ绅ҝ)[c^3=g_q5ayceݮ=SjjMrs ou\vq9-#ǔJɥpBQH,a`˧Y00sR?;\3meyܳgok5Wɒզ:EqZbJb)\Gqz˶&<Õ.>ϓ?opRs1 \v1 a;ʏN^r\)ß͓|/ΎiJܝ‹ΪoRv&0_63}{ HzmUZ5⑈ʧ!kB}rU1Nt*7R!\91+.uGDqpT@U ]O~z9Vspܦp\¾]Si2b1 9 xs&';=]mx{f7m1~GVxұ5eZF [>$ꦂ (DE"EUUC`dN8)\d6pR902$+o܋\e*#$1ȶ]Yd.ɛ 14_6K|gm7[l m˸t(Ǚ) !단੿j2Drq5"ѯaw n]f56OP15:7śG}s8_TrdމܶM- ٬Nݧyuux>;=U`ˇCy_^{ǧeXmVv69{ܩk3^8&H>ݰ/+l&>IH8,a7}^UuvZxYN+szhq/kMbgvr;o-ݲKtLMk3\'#"Z&|y8/RokEM̂MLcG˟1s69zX{T˟8wD?;3;H9Ho?avdn{ \dɕaG9901 \c2S͌P:f1)r9rS?P1gg? ݫja&Ȩ7/g`8⡅VHYl&Eg #))|/tlg#*O%ZHT'g}>;2gBd.{dRK RJ\c116161I&dE4. B)qc9s9s!ԿC/;B^r}OK2|_PT)/_޾~vv}[> "^}~_hsC_y|_QH7l_k(JOaozڀ=󈼍UU*gVRÊ]G'6MᏥJ{`R!2fqf: r/s;9-3n+-8>l9-{[z&a}?.ޡḾs-kMLE,H\'[DK^M~uĂ^A\QNOs7*"=XO 1Ro%PTnM*3ۋ}Sc:,)R'x*cL6r'W ]~g893DG1hkogﱳrɝr=zK?$xo335rnja+:D~4@W*q+x2"Ml1QqHc|=˂>ncJ~E2r_e1ج#K{{=pm@v_mhK 78૚k? ߾)/qη}\zgLZz/1cҦHH-f>}$8GVg'ljXY%E Y4c*`],Mb䕋1lF3iڲ`ź-lpD[j܉4R!LJ\cN뮳:˪yަۤdy=Ez>[`>#\xqGHN5)ړҽ;tWl_ɾ\8k$92䟮 ~3.CG7tjzm%r&mQcf!sd؋i81LR5 гflT|)ɧkl$+Vo^d> ƝpDw0_^u jqtw [ wg/UV;ۯ-lYќ/xېDDVyn>5"Z}joS:3STeDbs]\c>l?˳+ܯxQ+NY^6p"{<16 ms1er'cg5ū"~U!=͖rcṽZL:(?(9}_?WwY_NCJF,rdq55O"Y7\}[z' donT ULLc:0 &-.)fb@Q]Qmxrju2Vk8:oWm-i>&|ս=ˏgS8s=I|Mft]:&&[Ϫsfk˒^3fe9k[Wml,tNj::V""bD@ZW֞c>m9C g(2EE# S>0lV 9vt0g\:r`\9Z1d&jypk˭ζz[}}T̓6;Njcˋ%m%- R|&&:"pbFKJc*Ti:{qBqhdnY" 00|VTHSLdQf&\ʒ!f[$ˑ8St{6q/mxqw1VI%s:{|DDx> G7}#Թl'fӛi4^:fg3m;O>u[W.JエvE;5{>r5+c8ǟs<⹭{TqZ J5ة 4eRȦq],gV>~,\Oclkt|?ŠbM{;Xɓ涩ϸ\qL}:5x٢~j΂|p,ٛ'jC%ʑщk8 lx!; vg&2n%]1}ǘF}QMD­bGrH.H\;c&/al߽}=/:y;Ϫe>Z1he4]f#z|Hj>Gu~ֳ&r_m?/Hqc%60bqc838ϛ8njr)rnoiO}:>r7UȧpP c\ o.(~B+?s)'`9pU1ʗwG2?g>Y4k. ԙSu^T1{v` O"5W[#MW<{[K 91o }/[V?Ǯ  {3ٔs'E?:Agu/ UTc(Uv'g9Qns,x`TU +=S{z"fZ[prZZ#W<[Ģwi.]ngw4ٹ EN/g}_o?T?cLeC*c?yX,F"91ܗY{MHpJO԰2J%;o&K8?w-"hTT)׫Y!pwx׫;2s]0fM. 4g_&+|-7gx8mb˞/鿪> =;39=e1jm3钳q~oY5,3I4b[6ьGGA61nFl"\Z"h7A"cMD.0R09@{Z֙iZִZgZֵkXkZֱZ#V"""""" ME[|M>f3oZx{Ӷ y }܋-*_q/N[9~|1$Lc':_w?+M6#^*~>%g~>y@&A$&>&B\c?W9#qs6>/Ms}L}Odb}.{ ?|BI/|/@8[_hs@_hsC_y|_y޾~TSS7}ߨ=iǓT1A*b)?I|=I/|/CO"cs*t__޾ѾvvqKo1~/>{~s?qG?E8,K#/PQRq/ ִE\Y=ly&՘E-iL<>:;sdެc M`y/͊LZ;YHV"&&%Z0˨$ +gj(7xFHC.fnں*JIdkEȻd T}E/MenK-Y|r91,` $Yqf -DLy@O&}9Oٗ#ghPSIht2z/1Uss9Oxnwflݲ(ϡR9B1l)K1`.191c9{~|]H"8l$n 0K"y2jf)P1C`Kd}@G~/??Xgrq7:IQ? xD'V]DL STG@)U){*T1xIb$HeW*hd 1 U/V9/XrI8zx]A\&iL(E"1KH9VK!Peegcɖ21vIlm- $%$r-ػ3Cl.qxu=s[7y Nt!J5E(ϐKw(o%fb$XM nm4ז^q1Ұ/]X,ne#8D˨Dh9O%P5єHI6jw#62Md["ߺ]&]t):)?\5Քn`CPO^ ٫ wg,R'`ǽ}*ngR,p|$ּk)s85Ch/o67 0lɰB9vg=uoJpux ;:[ܷ/FM<}<`إ<ر_%p_p=;]Nz3ԜXulfc\Xy6)//.JҹqM?n5~m\aۍ_GhwKYP߆gd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?w@j-ۍ_G{|6Wvo;ܟgd׺?wY)ֱjGh0 \ s%UF,L!Du2lX% p[oB=yLX_ቃt#wӧX37nB$[>N\ ŴYb yn ͂IwOU|EYy7(WM82]G9L32YZfpc>ii(;3{.E '-AGp6=T팼kM)$D0iѧxXW)$ij">ڢMF=Ul1|+9mp\tx:+Vޖ1ָ50ָJKƟn[?,@`@~t,}l?ۖ !KƟn[?,@`@~t1ۖ !=l?d i`@~tn[?,@,}l?ۖ !KƟn[?,@`@~t1ۖ !=l?d i`@~tn[?,@,}l?ۖ !KƟn[?,@`@~t1ۖ !=l?d i`@~tn[?,@,}l?ۖ !KƟn[?,@`@~t1ۖ !=l?d i`@~tn[?,@,}l?ۖ !KƟn[?,@`@~t1ۖ !=l?d i`@~tn[?,@,}l?ۖ !KƟn[?,@`@~t1ۖ !=l?d i`@~tn[?,@,}l?ۖ !KƟn[?,@`@~t1ۖ !1lv=ci g|i`]&ޕ=e TnSDD)8"MBg'. @62b18˂q`rdϟ9 ^}Mg1cs :zI=[v`ݓ"ɤr;tfK7nd"DSd ]|Q)'dd]8}! ޾zctQw.8pYeu9c!/deiEm0L-z#DA.'^k =n-UT*MגuTR)Tu'0͚+VuT~Z #wX"` dP\BN`&5UVXV '7?(|-t\/+E-2_uiT$]ujqSбs^ekbosF,n:R $ܙ}d|ekqbkJmfƽ[®;WjEЫ&XԘiObk;ܢ f8ƫ3y-5kz}޺l<{Ih,6>~M^3G.c޴z*$QY' $ EYDIB骒Ɉj9Cd.pb82SӥtU5YU81oTfȸE'DlS7QVECK-Coԙ[ɬÿ6)W"U?xa\_GdϜ%>TZ&,(-mdvr~G4*JuIF*gUdIeq:>^rXiAzIieshsOd6wϗlų $vm%yOSo1&CɝC̳'n:FN¹MBn((ecIEtuUQ~[n Y&9@F=W`t40wpWfV}?)~gYnaNEYpx[rFF>Ii~]G_V۷6[H6˹y8OP6w35?숵TXG)^ ԡxxۢ7 jYH]sn,:l6͢ n&r Y6\ݤT@ɓ-GgxlQ%.ee+.K2,{(UE(Ju1 JED.Q1CN9D-A o#$O&ۅ,t42R+ES*1x6=kKg4δm,B<16hKchlj%.;7,7ؑe@u)q3`:?61>)|8Svg\gv~>x--͞7R9wvs< ͻcniMͱіn=^t?V{]Osz7p~tcϱ_ja׶ [ ~v z<֍Q?GZѾ$Nc.KEOִo z<֍7~Hz v_~ z<֍Q?GZѾ__НY7?/_>Q?GZѾ܁'kZ7`"}+?1_qk"܁'kZ7`{=DkFO~Bug;Kb/MZ@=DkFrhYwNi]HrhY@y0n>[ ՟s/񋸿5i@y0=~?}f ߀?'޿k:n~1w_- }~?}fOִoDWo'Vc.KEOִo z<֍7~Hz v_~ z<֍Q?GZѾ__НY7?/_>Q?GZѾ܁'kZ7`"}+?1_qk"܁'kZ7`{=DkFO~Bug;Kb/M^u[Jl>lm[*SPmB+' 4DFp^%1 .9tV09EWMq=>eyWNۚ9'{ZE/h= Ύ59U;q#+[*'đ>v,ʹ3&^)86~cv'Iƫ.8I5TMRqg=rnǏSzNo܆*aכ^1bp@WG\6] AK[mgAW(FEaI|-\x[dɓ%JR;}uˏ |>|oŇ,qlr佫Lx[^V31  Pzmrk(mnIh!$묃|pIfAd6Z_ew?Ś-ҫ0GXvtNxZ59!hя1.WNrIM̾ny ݮrO捾.7qy6wLj#}+|i=lt'Gny.ySs}I[ǯCgūK,}#_Ѯ~XW^ؗew?Dm ~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<=OGx@~W'#<1 %ُsZ y**D!$'\'I[L7GgŠc+,u\`Bd'|=͞|)Gu] Xi4:TAtη>MٵLΤU|馉36#c1b.Ls8)JR91l)Kg9scs{!#]:C!T YpɪvLO5Y\PE N:Id½$&ɔGm^"z}D}XC=v~K2G4{4XEkW5]_#d*[7<=L55)ڢ>ϜŋIyw^­\,!]jn:vJ*dXЍ+HA Oثi)YN`nNRϪ޽xfমPF粤q$FIiP&eܙUR|Fdk Jy_`0W:҆M=Zf_]ILvNhuhS:hX6 z$ͥq##ҭTy7 iTlEj6EO;6LW]ȬcgdyQQ'~< /N#?cU~ _~@o \TrO?#pP/WQ6Y3aثWn 2.SdGh'(3p6]ErW.Vgͼ|dd{t1`ŢEEF)A!SM4R1؀!V =y,ߺxV&J4t,p7g0 mdY|$1`NEXbUc tv1@4ͣQ&)rD1S1rr;n,o>TL:+W_Pՙ+$֏:xgW3UCg9qd/[.1^Rk㩍Ǹv2f>5e;Z.5$aY`K9lQM }|+"+eI<*"I|#2( \K`0 缹wj"^rd-V/ru.\BQ6}̊Go$ xoy7.׺Tٶl]]Tl'e#'ErdCGn}l['2E&Y$,#t-4+: ޝS%ى1w؂L".n1t,srq$SIw!nn>冭&7-MT.3>2orv^F^E&&:1Q4-;e <ռ.ᦾ:{k;*kVlQ̣V^ /[M#M>T m(3 %$2'`0i%rбY,1 y*|UYfɢᲊⷾOC9_U'`]p(~OlOc(J-YΪQojAe)#ȨhՌFϙi{**+a뗚|(lZ~*wxr12 mrVE%Jr*<]Yr^zu6J̓E\NUYTrf1\ % 1%ō_HP]N[llE& dN%W8T'Ǻrk+f\|VuV_+K3o11^hgXF- t&tɒgJ&wمB&_ R7mnr-`ݙJ=5ЕH_05pX eC`箠ؼ:jgYڒ~\0vYR42)MUY(#3ZWQQVǮvbu9]rOw&g̞GG;AtK9h{2e5Ow@P?etƸ͟egQ6{ezVu3;.X3pSH.PIUM3h/ZGw9Exܚ w ^3H aab[}^ݟl%ݰwP=6Q5fCg`+PډkwۗuOl*UN|+=.|&jMIdK\XcšNdDכKthhXw:7^cb7ڷ#I̠ƭZǼ])C㫏`_ww0. C&ZY;*J*i_C T5jR']@%P[ug7 yM3 c%vsZc(ʶ.X\-~F0ruRcد*IB'h<F#o1FL$)ʴs)1So)ZUY(J3UVISW1=C-Q'\kFꝫQX"I=Wb8U. ŢY 쀺:QxևKtL"aj KUiHƞQ"g); f5)F_ф!0$7cGD*ĿK?)8$ǁV%_0uM9cRrO?#pyQQ?plc?SsHnQvedY UD)䢝tߺ1E7|@!$:j$U4wxaoQ+#c8=1plJHMb!onMo* iphY9W尙_%79]Dk?a=SJ&uK6s#cۜvY.~g9^6nnhѐDΐy\2etPrQIl*&:ɔ"lePVڿ#59sWew4xMUsqogqOxlt3׈BD4He\CDҍ%bd9 e?yzsk܊I4S)uZ۱om:V۾rѡW38 YYe !"Q:>"S:$S! 0dj@TT),͢vS/f1ƍ}N:iSr?/BaGF6SrX" L|H3C$^ Za֫+:Cr Dq Vr;zi-` R*X&+)d3V+Ƒg-%-֐G!*K- yd/ XGѣa S ١*Ԉ(b9wa3xMQ퍝5rkrx nJtEddIB51r3߱ClގwocˬW%"{,VwԪ2f$S::!Cw= 7(%%vomǺNz6Le ENU5um "ՠs<K疚L_)S [;Wol#'ԮYEV:=9:\~qԬ5V$":gFZ,|w]GmZ(kmY$e-b]vu"x엉H=P&tK/Gmިノ0sj~[Bn:#ٳuddݺ8+ǨE(i$Fr21 x?8׵/Lkn$~!D=Acghy)C,=?gUrߨα)JV#)P{߱eíOrѭ MPrѳqݦ.{k'uΧt[۪(X21/2铧U3|&٣t_$Bc\znQ zXAvfqk۬uo1 ҵ }Qᵞjh͈RWɷnAXَvgǎߏ|4{]$uClZ4s/w{W "oQI=U"Qb1`͡O6m\cIh,mf 2:ԎX\QuM )u9K(|u޿'5RQiīVX,qMC#I#al4Dk]sW~YZ]*JY(*C1+ a%p\aT1֞Rx=Ds:jwpsԭ"+Be>yl\K^b38˲IVn N(Yד_ZFQ@i]AΞ,Tī;ַIޢ_xxFmuݥ \cv\+lsd#mʎݭzivq6u:먖Uh8łR 7h쫶V;݋-8V'ᬽRWdUgS=yv˝ԩ&L#T3A[r"Lzukń窯ջs94Qj9C/q'vI7 5R!fP7E~W_f͉Lju6||"kc ᣤzfwh,qao*p+߂2'0~PܔE}~kv lmԖw^rlL?+rHGɵYXKUP9uaYԷM˥PwZN\-RY"d{ML*Rཝ6WɔK. VH)~DZ7IG{%gMtAӧ\U+\.0u4juƅo;F%X|zئ)e~M];5$p f&j-tfU^J3fw,VJ/A(/nn1 fj^O޼,ԓtw jEcVG0ʓлX%aeڑꜬ')|k5[)U̼yeigGq+WjWJ=t3˛}[q}Cpϋvs λkWkzO"Uᓦ(0V4"Jҕe7a^+WЍnWoulܼFnʻ-Cgv6 6zZ|K?l[ɨЉӡc!'obP]~_{Uy۴>ջUfDT^182G1ji2 %f6vR &VrƠZ5gy]nH{F۔Tqw(v Mp635uָ ^O(E>Ve7U35Pr $ b)l8:oK[A{5濸-={C`3*s۴MhkʻqDzjΟ:gh9궸y{ؒf˕Vw#{##f$zhh)\3 ޜ%5սo1-jȹ*jÈka3~}I}XԳ:<ռ-s7͎?⤢6}cH!Йܶ8k M. {9Pw3S z1Zz\XZOvӷgwJdKnY;dԎixϓ'1V>ܰ5fUpN*R &rEڽf.[L"\v6^Wk4Mwy:-[;\XN 3MGzK: |%멥c^ \th9v句t]Î7R]eO9UC6|1h?Tx&ZFlW_[ٯbg]2gsn5Y&%=62̣W>,Y6IrR+jj`ڧD֧#b+iN f&n*ɣr;:kV>F%裏xFxq 0yZ~.5gח[1OF$WI5Y%P=tlӆmIt$}OVttۤ$;2]۵t\*.eVTQC!spOޒ^JĚKeRX4UTwM 9IW|dxQ)rXعv|X/ŌcTq;c 'Nmii6TF Wh+FEڈ";AG EEW߹m.dS؛uw>2+,mʾ,#wj/ɵWpGeeڟEkK6{u]:I-:Dt+&b 2dЍf+xf1ݼrZc]~s2/}p[}4t$c.WL-ԅ= QQ&nl5wN}cofd#zu3н<:xiU?"8mQ/dT$[MF!{),ӼZ6RwaL/)ڦI;عn$ey3RnzNj .ԯ@:pi+U.ٯg$ZHK/DՓ6B 4%T;O/yˡE'ԉi/lezLMB'J+Sb[[z3ݍvijc(zbf *X+ Ų~9ivmYog/Q^Ef~L@R~Hr(Br9C`9 )63qg{2?@ʎ#?cU~RqIK`98?r_~GyGQFahO7Ō1ۜ~>Fx1|, 6/f hEF)dKt{ɊIS[8:CS %'lP._Ձ5J_ưmN_>I̛Ed&Y?u؟w]V8&Z?IyKOx"-#Jw87BFMNؓ#}cq95֌GkXqc3ܜsJcfx2uY?R۸J|A]4&4K0#y)DټUٴkgPvpbQ3"/uԟEJ]˒{iVII[lh\A{P[4Ä#SAme7%RVA]+]]jzՖ&{[آ?}VE̍$dM,"Q+Q6=66T6MA;]RA5 z^%*TWe5"E_E:MB)(aL9Mqw^3 Ͼ#xm=[al-m=Gfd)uJ1p[YH8s&W|)㮱>bX)䢈8Ⱦu3d]7Agl32Gnٳ4VwY6h}dӚbGmy Țd5L H B*7l"V+xԥ])xʭsɾ\u2]!I$+ںhurr}8[ Uc$껮zpYA\h_?63d,i5UkOcҟYوV=^cW3*Ée,hUUrHۊ)JuBR>iJuֈbl5oݒo'x3Vel]6bU^L^a*ֲչׯZ[vӸw08- ц7VCUsZ{jJ-{d$uzY = {`&w>,EcIa$﹛ oӣYhHQ}vz뵥*Sӭe¸hH9Mf]|.ANf@ܗA~kI]?- yh'jډLƧ&51=ٟdM>MxIw)}BSR}ENf`a/Zσx+2x պڏ\!5ro-x &iz+G֩6"Z,*bUjQMdb\w'@\onnDwv 7ZtE56>جhW,kESk<@$|gГ%Sɹdy<+-k&_ۛBȧ6vXTE&N}"Z˻8~jt~s#x/xx2Z&gUq3HQTe %!iVv8L@#95]FiC:KXPDҦ]Ĕ:FJF~)0FcH5}$v<K=5_NC_`lk4m'Uؓv]!'g/aZjQ2ap?YM{{oќ4ګCjnؚBR) m5sey^1 rG{#_bEl"轧tɝc-kʲ4&MT_;Y 03QSZ;)-,f g=IC*Br C7,(RWZ섵̏WqvYAS Bn˖Zjjb "‹X] jm[P]sKٵP c$nJ4FVTeBdTܲ;P&ǒ\c! ӻ]"Bx$)"~rYȶT@(ld{N<ྰ%ߘ)m[(ȨwzVxLKX?{YMV}?5 A%ʜ&EQ ='8x\q:WlQIPouY^ʈagXjp仴ͷ3P+nk&$oq'[㬻ma*17lVh;I,;-1U7+zG]Sˆ[6f!W ':u0^ONAUqچ W琭iɣ%Jlj|aR[[\*To>xqZްW;^3 C_r W/v,~ƾ QO=Wo*@C]N-o~dtٺ#_lmahzꇆG֯q3NsNs徭gZj4{lLog f]f;`+I|$}'WYyaBWL9R:Dm*kxAόl:=yE0NY_1FݭOJ>Y/-lsz1ū1)wşb)N@sŭѾIj/o=zrKYCk ;g ZV#<:ߡ}ѭ8դ(h۪b/KGǦƞcr^vwI,rdd}_EWvL%MHfv׹voen6pdp}^hr̉TMw&n \P=0}VulR|6K{2R.Ylm.Z+lX{\{A8q ܙԯoe?O^xgX0\zLZ )AԌmTbNHX+7&^'5.͜Tv,М`EϥMe?Kq׋Y]NwE?sq31k(DŶF%͛ "H ]|_ݘepRbYYsTkvƊuݪz^zmƹoyIwjFMg`Xխ;jvNUG26',A>-Dδtqe̫l ebX\ 6SOwjۭk8cuDkPb.aj1u`Zo.yffFz+.V+JuQY;O>Hqmѽ豚 ̨j Ef~djmG%ׄV Lw,$b.K2kB:iͶ45 nKDVY.Im4ζR{xiMڎXZc(j0qљטpӨO%&:8W6oyl${.b:Ɓ^c d>9u"sQdG3O#xnߑUv>_sjZ# zk{?wZ.&^ԙJSZQk*vfO=?xO+txçtTF;3LpGh¯4b(um ЍM; "i5Z27TՈT]s (Qɹ~U>pFm**`.@?tqEmvH6CwYJFVY.L۔6Y<紹dϓl}_1<bFݴ͟vdӻҖlw]g3(c* w݆)Sf߼F;P`rŗ]9ӓ+ ~>\(~12SB 9)"eew9VL)0KAH “ TgD>,v~<?dyuNR|YS3}Wi˲){QO+[P) 2ti% 0LPSNF#跎[dʡz یL':-7~3zt-iUەz)7WY\Ѥ6G.d1EU$0ye.Sp:aoWw/ozvTv ڃkwo(G.eR><_GJ6=Hjhmٚxi83k%L[LX76$)/S*`,1S:tڳIʿku!Lx랣?xsܦ]?'.~A8rsc+wϤdwϤd=n>O@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sO@'}n>O@q\OK>Kq\OK>sËG+ErGm۳/cL1LFɑ$FD3,lcvq9-fC(jjtmk dxwDy6{;뷪r7n^Gb43AȤ:ͻ7Lc?lݲ]1ۏs~~/qُd>?w?w`:xۏ0F7of>8*2{|ǟ;>/c6 ?辚w|"OJiM[)1\ɹr0c%lU+QJidZg91113xc‡ER"qH|`oC4W;qݠh yQ2doqcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLxcxYŎf`:z1瓏DNj<}~@~>Ǐ%XioN>qcy8XLbǞŏ<\ǟˏ}/1.\LLcG$&фt{箕I6Q× )C=s :r66DA )%N1 U%Yc n;1Zyrzc&eэp_ Z3k~)8dQi*jJV2W;2)Ce”U]Jv41n8ؘMc#"\3I[L`IB)qvuгqpmg%.ɴdE,,uIDWID\.q؀ n2\l{ͩud4sURkG&ܪ**)\S,'c ӨI* o]Ue<|D<{艈d8a%'FM'L2t4rn8IDLǨ'#kk[3RU2֟V*xO$s$W7|V*e]i' ?n1|cN =~?G-&k LDʤSwSLvy3iGi cs,n岙y/=JRKc>1˝<q{"ze+RTe,e4CCb1MdJlg3?k8`,wHo\goPs?2~KcU?Xoő~<&>SY#oSzKMTضn8)֬q+5e̩֔~Xol5.[+,Igf:^oM>]m ]2a lS-h8^.j-~T'ț&]w,]Mp&8)(IvY| .Vhc lr)4]dg!E3ܜ)Z,=zzYm٧Ӓ{C{`,SNm:Yٌ{.+un`'Sbs >qe55bֿbv[[T*;*YlyXşH-p$\6nB)*TKj~##YiTC\}q立i7֣6 u'REX $Z\&-V`Rq/j޻VRݷ晫5b+F!,6<8eTglR܄4;\K߻*)5GL |.6O-5PIw <AKo)hV*2u!nڌSYsάq_Ei&CEGC30vfxf1jQ[c_pt4ӳv˨oI}y5Z<e\avt)0{xH&H-2/wafc:uG.b8 /%w(en+|I:}6ibbC I6dKIXb_ q>掽Z{!9;5'hoܑ-ԄiϠUd1Ewѩ(wMUL U̹jfѾS9YW֫t[#V6ƚZ5fٮxYebUWܨ<]:zs[먗UnLoUЮ+vW{BðdDMk%se% u255һr˨Qfr+=:(]sm bʃCIND;)BvfKa~u4%#idžIjLaAW?6 Dus;e͏j/")ib;۝Ta1SICvr8{wGS7& ST_,or0L`rZa^Px? HwJ!H;<~ܚ'v5RCc;6B0`6aYlF*+2#dzjp/O /shM#jQ87%5*If0Fw/c" K b9>s"ę3ҍ}ZesjT%7lvV!&k 'OUX)]U:SnK4Ig*<73ps/bKIXruCUTaTKSrw&p#'Pz;>[2ҍI4,C`qq,[1!2(?z8Jw{q nh( avіrX썧2vļ(;0lT[6$"kԜt=VڔSx %an::‹>S13l#gPKF*WGG6[Ψ=vAĊ*]aIfٜB_^M/U^*6(uvIAE3;PX$ )Fhڠt+6?jw [VgeM˸x0MSf#kZ#D,K򃨇Qvs,UsUMbz2.̫L2>ݺJƺj>!9SZ &NnN:Wsƾl=?s%4YuWVWkxKKIx4JJ0E%C5X1JFOb>O ;`DҪ~ߋ#y`L}* =OkAӧ_Xēuc/tg)7ηy"*J 8mGW$ )WN*Z̋bͳ-w'5lG#Ca Nhz~вEp)=5;_j/twRR2;S)ܞJұ8Q$Y8Eai;w#[k#>B0gR΢YgVM.I,ţԡg E b2:Gq˗Z/79)x]ag`V"K*a6H$SjŨVaX [v|-C.lef|䅮,S]QW*pRJ0a)Ӗx"ǼqGVէ};!yU8yǎ*jjӏSqm,6=>F^XN=TQY gϗ$ :q#T^Jrct]\33nGr"stVlw&ifIՒIMDI! G6_lW9 xZ(7ޑ]f7p͔eWQ-'Ki-M]36Xc–ږaýuNߪnr*ѵ`e:}[M\He)Qoٺm Z2Φ(\(uD5Ϝ2 xP)1&sv8rCg.s읿I|:cPIW>:|螢zXnjsKZ}od"JHU7 $5P|ܭecd ImM ˀۗ.m/b֬ZQ흃 U$z1ɒյܵj՚/dB6}WMn@HƽydU+阒Z$CC:}<ʒV(E!zLceFWJ9cfsC{[J┛<֩YʸaSXi9+biMetٕH݃,Th:޴AvIP#\?n~AZ^6l0c2W^P4E>I&hV˅kZWX郞ys39`Jּ7%kݣ 9uanVj6rm)[NļRKUff'Wns$Yߊn-z#]UQZMְf5NQf n{UbBYN'//9WN];¾"kn ^oQ,Z[+oZ cc@]wߥq-!YT!+y;g^aQft.Z_Gh0U@'RCKr5G!6fmښiھk\BK>oZ{Lڊ DJR4PcY:<PssP!zXvyW:>Otj=ޓCٕfd8JeE9]')Q,l*:wWJī9e"lR#?*xrWz"o!|WemW] XJ":&1uǕҍs1 :=ۦI0dQ=S&>KcU?Xoő~<&>SYP߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-[r֟(toퟭ>P߅W (oliF-91|ǕSY<&~<1_Q/uJ~,S17?/Q/uJ~,S17?Y &2u]$.2cWn۪]"^U効⬕Y 9YD9y6ps6rrdUIB]}al7^|ZS<%NY7)8]rr:Y_.ILEC+ &r)r!l`9 \)ds83d~E,:tN6"`6sTZ9թݍ-TAfY bҶmdCʹm89i#dԓU"$}SY2*LC&lB|7sv)3@g.|^Y ˚gRjSYcU?Xoő~:+k8^F.{譫`:]Ǎ ѫ7hR|[Ƽ"͘Ҿl^wO_'r\r];ēZkֈ򲓂.:UvE]XɳHEɌVKwM˔#uyEkIjfG f [-3 3Snǝ2בx[rkI)hk3YEƔaZdum$UCGշYo2=܍13RIi;D(A29:ǀaF9N//%MUwa1[OмvmJʛ )[IfYݏ`J?DQ mVQ!^vȯC[ё穧P RpK/2QӏДJR *u̪uaHTI\lBN>;RX~W߹.wY64>+ G*opv`ZIT=d!,;nE"p~H*T\(|fG" V+vB6J?0̤#߳X>bIGm\&휷Q5Y2*r؝1lO?oGЅ%6Cykt-HbmEW/;{KRPnhֱgjH6X`"?Dx"<}gpa_QIwyo=ʽ6å~5v(Y$#|)ʄK%c!wn]"2|f ~oM>F-m]j:XK0Ifg㺤vGxDLr_N 7(v'(BJ{g\䖫evv #hVderVm s&V#\"`~rUpUN9Q)- E2|4}5 9v2ͫ]JbGY^zԴMg\ZwGyZɞlMl+|od1}ýh7%*OOw9\k=y/jZ5/a٫xLM23"MNao |[׼c۝T[+UoO>ܛ^1e&AFyR#SoqAzg]nn5OVl'u//VH{N֤<"f5w24':NpRVSYSYSYSY0Jӆ\9=;nr(jJtEE=M1ŒV ̂$XLN`!}K;1A7bjF~PcLRKp:xK6^#7]w)Up}rJyKԜF?"m3L'xΡ|Q|һ;+ V12--kZ:IsQ6pH*R]0coKlhZ;RSMҚlJՆIuÝD^2Z5_d2S$`z!(i&uU9I"EP"iB9l! 6pRs`k}/L!dZyxY4KR*2N|#g.ٺWVb$D""S뺅u67M}yҜМ]=}8![.P}~8O/$D3@M `|GعQDSl6GZS)_zҬ8YnWaOA h,W"9 IR)BR)ˌ9pnc60lgqQ|rnP]ka2ߺMFBo!m8vR r+ZPsA ɮ9q^Mg`+hk dJϮGJ5J@(:wݪ=Hmz;pԹ8lS"wVNNIC JŮI+ xTL7'|V:x궐[2%F@Ggӵø(聕Bzdr?m:Uı/Dk=M}.ʧBx]^EΡ%rZʹnU8iLV" ܼ}TKDU f!#ٰGu$6,y%&zѿvj]aԴɸGe!6-lT%Wg! t]2ze[nk"9M~sKLErB[y+cUٚvpuwI*mLu-rlUg)d"vDk}U`%h" HE]r%.sD)%n/|auuQ o):_nĮN])`cRP]5i$9/w]63Qc\Mxܚ6{t^k[5he{]);֕_mN*M lϻwjQӬ^>ls~9|3?vZ4ʒfr'Q ^AFɓtJ AmpIn|EQkgQ4ڄt|rQQj0MJ/g-#:6՜o!,Ɖ/W1ܗbۓ^9Jpl>WmS%)mXgaG#PCoZ7h'u=!"HU25WLHnٜ`f3d%=OMJn-F.2/*IĪe| /wl˨ ܷUP`SY4b?GɚN2ׂNm3/^:sۄYXvzTc[Z[<`Gѓ dM)-[A߳z> tmLؼpZ'^^sc Rf:JJ*r0NYւÈY?4|j#䙷jENV#[ТI%FטӤ C/9(We}/ %0%.Vv:?(88"{",lX8H;l311JUZ57Zr2U8t!=fdL<Ȳ27UtqZȚ<-&I vUD%$6.UCLշnۍZ-6/$XٻuF,s8UY^~ne3-vFnr +FW1Pr隻}zghYhJǻA#h<. 9G؇'y`3:hJ7Kd>sF3;8z4#g)JuRL0.#*ͰU?pO&A5+x,cb̮ԽM+G g(n rxnAtې1}xu3j4;dQttyN0dٰJe58¹.<@mckͮCn'>jE%̞´T~3la:S" esry~^c0u(C2B6.=(bv6 ([73E|Zu-bxjm$黷͑͟qOkgcfo3cPMgyxo lzUgLW I-E;Y/tLͅo0ɨ%yٱXMxifN9*UhaOӡeN++,3)guUڐpvW [Eyk<4Kwph3,;9 }!6uok`z='58gݵlc$ek`bӜ3ə5@#ѹٺ9֏9S{|U 3'T>-?rx1[2>)DYaU-9H6$]ǹM0,;V{}T߬,pjndVsT&gɞD;, \Iڰ,j߱m|>h]ev7o4]q4lZ2Mg"OIW/l7u湥qGg^֚طRj"/kŝŬq"lR٩# .֜v}Qϲ?Gt=UOW[AOO.HG]__j xV6f>)WVqqpw >߈Е'I5v)8M 5;WuZGJxQO-\4ouzFq8YUɿ!,:1ZUJ`&!XBj|0c8pK œ8LڠɄ{V옲jjћTfOME$R& B0X~:#&QCmy>J[j8z?ZK[KC)/7>w,Nb|W uN-X񿊻w\m^®I7h _:T$EJhi(g'iܶQS[+"$&9Aij%&hIz,ΦR5_iHjĢ,\50yg.1JKTذȺ?fN8t_UȲ*fQ/tl9Îw^˜ꩄ|[ܐ6F5$lg 5m>s(y (2\JXb$1/=(U *.sMMdCc.p,yEЧuw#b phʥ G6tKete${/Ӏ\k7~ a<BFϩU`Ŋټ;nko?.f_;lԩd8 .bc)M.sfyzqW ǧ5!l7n J(\J8pl=j~ PWlJ]?Yl;bkS1OxV+-qc4ru$h+$!ӳZkHІ0E2=B8 Brm[T$18zѕvv\&tTUWET{ PsO:^ƟFXgX$/nK`Yccڧ!+fkdEmw2I@{&to(Buj_ 8"5 +_qTh}y:@ 2-cvW)rSrRl8^_+ӜVgֺ`uBb_=v J$\;II25Annqz* -u6ksL7@a}IYbX;IߒSGYG.;E?]n8Nd퐜jJ]s &{E!^.SnX;lk6_seW^ Va(,San:SanUOdz, TaG 3ǞD4;ͅ]ו;W6kJ4" m2jl5̡OѬ!#DE1k1PM( ZVlYI&Z7I4h!Kpw\c㳹~㞈o ش<Ӻ_'v&j9Z1Uziv&QH!c+I7-zvL52A uwzuE'M GE־RkDPwNa6iQnYFە ? Y9)Dm9tԺZeFQА01lEjm2Q&ULBr(4f[agn-bXol5IMllFms3d[4I6/[&DR!KCi=Q'}ڞ$?xyO^-ѽ}Njg+˝"RͅQ^rr֦Z8ɚM} 3]Y<KہS (6~jsgiH8{fҚ累 ^ *'nJY2!CʋmJ޾ȡY$H֡ D] u )if=jH?d$6A QLڃSh+ޟzI/WRkZFIL-" N2&z6e]Ҙ‹1xq8<&suWѩt]xRgVn޴|MVDĎH}mj.Uzusz7廫+SMqw]V+G-IVpmL^EܴŖD9*( CXJ4F9Τnь.$#[Xcߒ6C.W<I `ֹuJWxCm}'ndz=NPVӺ6Y^Žjsf*7Dʀfxަ'M@hF$.ji3:c=Iy,2;]gu.ⓢs.ZT53dq :&)i#Z:Qkź˝&;1xG|oې~ӛ1aVs} SLXiط%S*Kn=72B:#Ri8Vea&G̊ncY;U} *I."f)qb xƝh7/4fۺғA*mfZ RIڧYZ)҈)B#Os(@,W3W6ۮ!a6m"rBARa%_Bqb,pTjvΖrLԺNjmCkZf́=VHJ3F^QOde ۅܻQeP l1ztZNn> Ff餤%hnr>U|װM9rsc98:[>Sm0%igSRV2de:~*ۥpLEU1ٜ~D4O'Րh^M#)Jfn:yEc2X].IAu~QwqV(xifT`w-dx˷̌檵I6l N{8 jAdePoqS2 ˃v|7(ʽǒxwu~e"*A%/u&f]IF%f&gXr $MitqR@I9 Ď1:ߗVKګ+rf{_Pޞ(!FEg &\e&, ]Gyp3vZ]-:|Tw;[xnէf,Z{ Σ&LTυ1߈TBvFjNvNai]sC s~YN*ճji ~a{L\,fJ+Mw'9:tz:oިu&;f\q]{lkK=AdQ3aFAN3w 6FN"5+̵':r!}'v3 pvVHYKsMbkmCMw8*`5MxI/rۗ}5r=^/c- +#Yy7˘GNQLzqC8˘v @S VUG]W\8]SdꬺYUܝE1sg=1*ǩ~{pQ6%8liivrk;I-~eZxAΰvs%UH$|W.2RkU qیfs߃9P]OyS jDZJu̪6&ޱ :2lDE+>Yw.K%)j*i&^8Pqc( ^ =D:ɭ\,2ylfξfud2H92UѤQ)IeXQ+Zf'ӮՂeLu)\q1⪎u-WF:]nO|,6~NtㄎuzBP?ҩD?ҩL}* =OǖҪ~ߋ#u/wm?C|b?W8uRh%pt۷E"ꮺ)E2:9HRϓ7ю)klw7j%Ow݇J|IFcl;-h%Ҁ3ykbmH'IqY'=uE岧)1 qʽyKu;_rv.ƴN!cKGR)lV/cf I(]fq=M-wAԞҏ:HښƝy2Wvv*QAɣ8VQ:2c%aeU:}/y)QPxj%Vr\f?U侢k NBV~Qd絻|sݝQ.$F/d2&Y%f‘iӧ3 RLnI߈$#gcOrn~??;{;1_?NW@=՛?j3Y>{p"W:"kY:DPFJq'y 'n\->-ˬ'̩݌sꭋ>1 Ft?%Ћ<ΚqF:WBSej^9 B׹e&T]ҝ >>QҘh/frsJJ`6z웺WTĔOPJϵmhNr&ԲnptdB霥Qt|%ljo}6FschmQv> z g;ԋoHˇR.]'\hUx NvGڛUxksR4$Вj٣Ndge^̟Mz?ݍ#fg?iPѿ.zt/hEէ5FU_&A)h 2KZ`HFxx%LѪZ֍w'/Iuj;Rȍ%GyR ͜$٫ V3SӍvVqLm]y#._-C9m+s~-ulSg#Ozkٞa\n,k}cPn,%T4S;̒Q"'QjKJͺb]mF-f1KCSsׁ]V=,Wr#_]7[m_IQ֪9 U[կgSW/Mj)uٴS5.#bXk2h7ÆKyv \!l`a8vDz)Erz^o^7ru伃JJT+踈s2/uy%;rS1t8p fSYC`ʛfh1TYdL}]"1VFPIwGk{̬[\1Jg9s61y^b}l+GoR΋@&wS-OV頦w#* mnyM חda@u[dP`̈́ԾHg9gӺt{Jc!mroQҬb7-VY*"8Ff8jV2chBW?/q֛ Ѭ@w|#U^9B׬%,[%($sƭ`sBHhh.Se9aG]E9ӆ;~ݭUumd`ؑu]ƉI]0JrT),XRkIhh?KJ:z8Ym^ƿ5ve`Ħ;Z#YC9hW nNӸUQ!e0Cjյ孛')]Y몑e^4Vy--2n*gdd9[kzUhYwW^N}]y_;y ~mpGVyh!Xغ~ZϥA%#c'VuLU]LW!WcE`~l ceٜݥw&rdݞe!,wړs=Q0[ ʣD;Bman֍-,԰YYtσɱpL%|7|^qeZuݒ|,Lm&eXtW'3wٷ)r™?iS]~qė'51&lL۸!#fRȻP8j.c]Lf>y exub.(= X!싞91ʆ>cʳ/ȜX> l9pl=ۜg$˛LmD[٣YXTqqXw F\mKv.di]G dG*:|u:{b-Mi查u,TD,/KHRix"T/}Eq#1/\պmqŲ9[o"6t^7j򤬃E)"kKq%f3v )?FTTQcX5:-~G,U[F`Jٰ,Q+Rjѻ7)N6|?: 隳QSAOwW1 K)59)(zbQ޿I%c/slRW]Xy/dhZݽv$l)WwrJ3^;׺&uINQdqbc&lwEr!cPta׻]C`o@L1KKkڹHR,eX-]l2"9$*)e|YN:nIF$AGo]|bTlTH$.Es'%:#)KQ&iMOW|oy&Hl.*[[!3EG2m u3JFL7Lae6 T]-U 5BtZ-R^qZ`+0W91`Uh:xd7h9R)_ZRCVEUvaS#(z왎#7)H:H;ַsR-i T~ɲApF3O2uc;ë^ڐ,BnDiT8KFCYݨ]Xgq~N a g{(u'zt|sQEuèG[Ppe}2ot-fKXj5sVL֜1:j2q):ΗjGjrnt̑}pAw~@?,\Sv(Yh5ժłN>=LwZqF3Zvt,|,|Vqɮ t9~po2|VdW,T-Q_¼mHW,)X2찵mC=ey7ULYt%lUbEAnWhhxNQ7M[' q̲=xmAhm8J/2Nk̾}uRLDQ4?Xnu]C!r|:ۺzvk 6&.)J0r-2-qlW+Ā~5:xn'a[eԚelzߢ_KL1"$$ݜ| ) Yo# "F=y#}yl6XMYܡ`-|dhvqvRЈL64~bSeܙc"d)c#0FtyKy˷5&wcLEi6JLMg4cXulmK6vqn+n0PTuJnn*TI 'gwMHy R"iɚpS:lsCvr<׽n{jdזxʽ ˪uV'[ezEɑ6``Řܷ%;¾|z)/9OF+b[Sn-2odZnF0n1TʛF@1̌tꕮzTX7!Y٬ Jʽj5h%vMk>a',lDQF|Q:mnX5)m^oƀ+0yR=n=F6X>˺Qhj| ͞__`7\h=JsmGBD{bo[ݣ!(KK{RtF>69 f)Uo*oy-uԚ51_]LF:zڵ! 9!^3*k\'bْPJ -5;¾AU@jݾ\4"4J@%p%a)FM%Tel&yTtEp h쟸gf v k0k)*NsWDk ZezDuMo6s2 4L[IeX6WES,NkZu A?2.}@=tn_SCRאV*1] F}KJ38ޛG2bjd?dU_Xz6UgO3`j̦:n}tYʉ1ő4Az.@&dVl18#Rp[n' 3K5N V7>RKm.0_?&WT"x^spm oR"#[8,SkYv$+58J7 daRاVo5,Bmm\S3$Xvp]rWoYhHUlzpي5+m0gźdWyoRk5'~}-3ppO8hvq,4^ffet3(taBR۾kk+_QRƞNǩ&\,j]5#a$uKx&jXkIccx }cOo6rVքNciҵq٨ekky߭V"/pi]sSVq2"[px Q_QhZk=uFR G-7 7-[#vq}YeMCŠT%#4v!2^qjjܡ7\unl^7B15یl|zZA#ȶ6VXhj$% ͓io-?ˋ?N^S/ 2Yuôaw7k5!ctgO"LG)S{KZ|/W|VەIqHw\`f#|Y*v|>Pn-ܬZot)l?F#}Z^D{^p㑎+tU?ԧ n~s'*a6:E.ٔ]ʾH;OMBۖQ~gzة#c,J&6=QG\&'x:u[]j1,hu6JBk*\l xYd. IcZl&,&^1X^G$MwW+$:9d|b뭧TwJܲ%2D|pr@/hw5/ ZBڝ:ʔ"x. #9)[ԂE/x!TryuƝrs][}kĖȱhir5JNS)p"B͛G ePCu鱞T3mNLh&aT1U ٤;]TV5x"g=]˖ʮ /{l]AtU41YdIBkd"1r8Ȯ2%:Wpk:6Gv5I: sIj ^t33r/ #9\&˖`~^=[x.޻Η{ԚebzĆi&7k؇ 6~G2QpTڽv ywWk}e#l;f hMۇNwmd}rH8YLCkNnAjh|Mtε1`U* 'wzߧ4 LTlcbzgj+{c4+F+VzʎI2de&=,nQ%MBaпl.kr9ɻgupD9H4$T"+gtw97Nyn.wu['h:j]U㬌 hڒ5Ux8ŴCLĹTXKC*޷Ü@mho#<":tUOcuS.Fw-lv='`1m@k}.F׋jfmirJM5)8%|[% fM$gg \״DcFjg-uvmLtFw-x_Fd dHE$*XXJ,uJ,Q17?XJ~,S'#I=gFTՠ۲!!!Ղt{E$$Qq9vdd5d" 90/[+c&6DBgopu |r'o܍K/PMpg45,y~ ]ţ%.3wF)3ߢJ~J]U Ԯ7EՃ]ܓh< Bz0\֜;dI6h휄TT4t bk0CUz=\.*e5f6[VbĖz ] ]97-g|04Ij! .h=+:ty:yyW+MR1^SP.X5IoIN+HztTjJ_P"uɭO5ch3j]md%~Bo;)E{ahjѲ˥$`XukMt*xquy{IP2agâ^)X*uk:6q~F!bWXNe@2|!@b[DMWvD+\m;_]V pKD,\zZDnfxtݗmNdQشU™D,Nk/Bh,Ⱦ]EI [Þzg8wP<ة R`O䘳hړgnɹ+дɈٔNlϋdsGM6y]z]ճaz;k:4H*-McQ*v a Uyq&R AUcjeYMO&a^5Uڈ"tڦnK2h|`<7M[8뿬:j#Y-hTZuqsJMHxsT3昄]g8QW6J$tm=ˑfLw'4>UQ`l&U'IjTZq3!c%]h^|ߜq1t4/tKf6y8'3R>] iBHNN@-aWBW[~[˩6'FZERWQof>lN[@!^;85i[ۗ3r#NlaL#M:=3kHFM2U!.6tpZ0άpohqyq'w})p87HnÎzwՉ(l+i;ۉag~nGwWZyO>L3IWR8ǯbM/5f֝9"=(/Yo&b :zz(&H#!#ȝfLl2IC$clcL&!3\YX>83m J*%iJ#’]e8Y]CF7+Uo6C Nt?Nd5êR\T5%7`:׵igrXzέ(%ݽ}T{dWcW:leF䈵nu@eHyCDn컬NSZ4G5rݡk䅏*.SOo{7Mr[2sM(n$+MH;Efm%k+pV%^UDKX ټ \w-880=㌐vW+i1x'$N~ K )29YH9+t+MӵI<њ gIdV t%`,Xޣ퍑2骩Xy=vX[#B31/k}mO]w^GuQ.TJ*'1ҭlξIx[BD!Ykpn}-ü^ߓ4y+&Ym%.ɇөqQX$M̃2玄n  Ct- E:_N>8Z-%"iYvkDZp2˻Ca,OjH饡kN_XNX Op;mq4Al}# t֝eY7+Qp>p%a,8X˔mLjRMHm{{HZ!^Rf=W ;~X'Vc-5:ed b;Z)ntd-x3[`ZgP64է%'l[1m"i:e[I T搓< e7v+jQimI͍]kRwp-tV1hhrȾr9>pAě XL7ZM>Uqc:n5ejT%eg\ä=ߛ%VHq2k/<CɸiOS@R*aj:ᖍzI1Y̓5%*&-iVv)YdyV{~=6d=%RPmam}g;fJAJ<jR%F0pv2fR:6QdhǸ~ ]@l#sis|zܰ*VEjFA{[>RRlR̓زRx! k%32:tym֝2Sݍ ^RbǪM9ÇMd+t|*I=~+PK?ti|\-ԗ}W7̥!TdRu&rqӨ5qWCΫZN^.6+4-'YTSS-ro}i Qt4UULǪ:AgqՀq R ef 'X,gxN֊[?^ V+V,M=iru |[{3NVx6G96u?F(5TfW.fnZ5?;exHXz,$4Z}#"Q^Bz}9r?PW=KqI˛ S!ଆxn|;֤XW!v)u3]X>7_QOO)FH%"jm,C&3sKw-X#[$^NkyrǨ'MWk^|:6lk:;Z΍: cyJXC/Uj\a Y 稿 v7ҕZVz6r-k՝PM7#uYPOٰpݛO$::Sqn<#\m6R;~ٴ~ Ͳ.S.e&^ž=Z!,djzY &ZK:RiKm嬮^١wu%ikLvo^WeCHعhɸ xg3WђҪ5GA'9 ZRKe9!guM_Mϫܬi{JE~\K4Iv _qk]ǰuZvII˕n#S*eNhrYg:q7p51[=WnGuSImS:bpFM"Xù7lg\I'Wkpo(v*/ONLRwFkT99 kQlf I.ƻsU#djL|xW?߫gE? nc84WhQ\tg-XxԔ>UC[Ʃo}qt" vB $UHsy- Ng158v̸LH&T2d2𩩒'Lw$!{cKٍ,:0GrsW: }/*_<ÓX6{ʶIĩG)f/+eg94K|9MkDޭsв1ғ3fXJPsYofTqYL@ٽA:iV']풁^!IU,E*1-9.<ݦC&'Kԃ_:_k*cv-SSV'墪SykVmD;*=I7.< ä;Lm 56ڲg6u)Wlɚ` dX=i-GI'L^$G dN\"&qp{6 Zo5v- '"{_bb{8MFi#ps6fDiK7ƞuý5cКW~[}_^K1$bAW31%r@f ͂a8{7jHNB4[ bW]5tTXo245е3ςhW.=_剱)-M#k""H(fIG,bZH.|쬺Pi5#7U~k@H8ee4:l3dks:rsݶ'19GUjm37t'ɯ"apmKkmZoUN2KV܉Y#;'.na#~Ҙ68v4sx"Q;#W~F›wXH5fsl; F͆OY͒!j9eGSy/z7u}CQLr+Z\m%l3.02y`C* ;qC* ;pDҪ~ߋ#y`L}* =OCQoewG~y}%v-ڣsU9x6 S;t]Vp넟#UM;~)@_gյGW{Fl2^Vmμw_;&u6Z2h4qpU «5?Y>}+>'|?[~?tG~r3oZVNFҷ},Yب4:bV_CN*tf$S:@Y<>5\ɪtb.H)I&̝NIR T]}XgfXU<5¯]go #?g?<oy>_~쟳^kqyT_{ıyuSӔi CFsRKTR梗^*j[Iq$:JEgFv2:7Ѥ?||?uNN]g*&<*i֕oa»_Q58j"q/EU#lK~^ 8x巶?-*M'{>?xPJw9GWΈ:]uKh\$e,ۿ |ڛ=徽T)/Z*JNxEX\.qQ},xhj"r[Sqib=kNbb-ExCT`Ğ,,VS,Qxgt$]$s(CL ruIWyfWtkJeiR, V).F9jUJ1d-|(!?a`<ӧ Cy3H cIϵ^Tn /Ml-'];:x@4-=6Ak!|wk#xW{Jߺ.$zLyF§U--ϛA%YT:j'6FMp#nI-Cuy/.TP391-/d6tXō-V$Za eI  A'xkN9=u5U$IM3v4eK&/s7{ʗ9QSS,K !?E^=uMj#W5lDYyV tf1cH#$$e U3#)3qH[6j =~U$˭_`$˿MZEDԐrf,˅lA; 87o\eiEWX\H /N"n>^2^?'Z_ʿl.xۿX>" 7ž-GF-ʡrL9pbEC`2Cg;3wqgPNvr>{3kwHӹ{_{姒dTHymLs xon2g#x.=IoںsC䷶mz9Gg9sns簻fX.1c1ć1:~+x}x?d_"f8U?`v㨇U?`v:TaGUOdzat;իދZ\H+̕_kcLNѨEdcn ESYSYrDNM{Zt^bl}mJMXvIMJJe Ѐ|[c7@ B2)erۂlTcw?u;s 'W -֍AX" Tr@$v1\$Oݧp͠2ťԨ6Irh3Izܺ)Ϋl$\%M21FmP7n:۳mSӽ<^=[|.9fӟNe %SeO$;x{ȮHT࡬=1Wz{I#UrUt/{2\Elt:f\ub-`o"̃V稭,FA\,)NKx qT+o 5=s}Yօo]XF; mkLx*˺$K3q)8!28y`C* ;qC* ;pLҪџᇩUO30>m:_:SӴj;m]f@Hfk§Qȶrh6K Rr|f7v߲n>-u}qZ$Ϧc8=YtII;H6fl$xC mޏu4[oB@oi÷fݼbQװm&(F3| 6M"TC)0O0Rn mmێ$íU ֆl"Dt2vi>q2K xX8Hyoꮬ9+9 9sU{\2n-ҡBnvuLJhIK];ԆDF(P{.VsNx{@]Pܼl]z cXv(ReJ:T1d!TpgcCP4$g쮫+/!tUUJV&6^wZd\hfT\Rќ]W1G5d^7׭oW])ʾۚaZ,25iTZlŜ2E#c'.S*sȢ9Φ!ꋯc]vrA<]LQGI96S&TغvM=$qR#g*Kq::%-D+5"C#ݧ"ɓ*6CX$nPUl mlm4ە}nTHwN1MZaZN/U+×N8HWGD@ɗϬFuZ >-M$+,EGklo2i^ b*,V3+`K0R1c1161605C| \2W7bDl1й\lZ42fhHJ5S_42l዗μYUۜRƇNjD\vg$nk:RJK^"lhG*@[i˼lx)]uJ~AG;KL9OWܻ@$*ڧMM"~?)^d 5x.\DR'_[Q:'HSv.h4Y5uXk՗ɆRPJlC"%|6&bH=I>E]x; Kߪ(T:Hw][5v5, )vx"O!r<'/13{~xW}qƪqֹ A*jy?gbW^YM">)ELI޾v>jrJk\Dimtev \-\"1 52e"fLz8M2$R0[OE6S|k XB<~&"xS'm*J' G>Nj7-/ T)>}2 4–tu62$WOwaԧ i Se%iRo$WpGu7%.7s։Us;4󊂭kRi-NN),ةUv)g$f eQZ6,J$⫮>18(9.דmu͛v+#8g]9 rlGS@{ФnΌm&CS'P"Rh3vd)jݥ,ܑ7,aVRMtTLMMUT"I%˝b4&҆:HB1l.3r8U_ئ;:Ctpc&o5> 9*HDRǛ#"dƓm.Eɰ9}Ա+I\*5|Γ1Ujptː=.ˤ $9_+ jH%iʖ-ɘ>NJQ8 & \=];zٷ).uO~gZ!ir6m)dՓ=4H݄WakЇCϡ7 qG H22IV]V/[8;:K"_.2xtlSG<8+oL{e!3Gv%bh[Oٗ22wp8nCErֳ)֦UI u]כ%Md592f}=vu/qFq~"WFq'j}eR3XULTųGĹx#>5j ,आa:|Ju,mukt]'aD\+{GZMXunu6QZsгV9ؕ$^S%,yuUiLh^u+ V gc!\u;7bPf?{b褜.U5T-=~W덗$"`BuFFuP2bO2a8Ia,-UbE\빦֛ޖ.U㆏Ng!qnӺ^WZIשG:mJZ%"wn[8M(tTvmQP JKǾ2R*Iddᚽ~i:fl飄]騊ɑBKbŮNqd- x[EN4Z`k&'qsA8סqjF<hpTʺY?AG}U|rORkKnfT{%9],hFcHIr^05-ͱY[k6f!--M?+ RXQ'JNpKMŗٚ"(Z-E>؎wdwe~wG2kbcaJPsA/Y? ei6i;^Hbˋl.)rNYnwKfOulXkuv=V4U:.`.ЮסmLceb?;ne:gSnjfћyk&qSeq[v ,&j{YV5N:gR0,ŒtYf4@~vȝǧN⧱\/g=95N3K$TH&IUb,{qbMhY[b c6ΎM_4ےNi{FeS-z2&aOUdFeAxʈ(qg}sD3w^6ڇ`Hч7΍RV-V$)wDC8{fg֗}w 7{(r;F5!L7CGQV)؞ggߚGImd?QIGY.扻깙RHUR688-t-1v\8NE $Btm7~anz~bUI RlZtqN6M}bc_̫Xk*`Mmuϫ~Ӑt۝ L봶-̤-LI`U89nJO6`{[--?x3w Em`r7E]KY9MgO`ŗU+93vPAHOF[W3y)ݡ?ҩD?ҩ*z,T?Snvjmk+g坥TrU2S(5.>PMOMBkꭶI)Wj2 ڰr*2ѫE3,˿3t("4Yє9t'!NM iVq_ןN{rkr5C^5FX?yuc?68g:ΞHyLeƱ|阶J1c7u"6: 1th1#e@8s G$ɳیP`1ی9~w˻~N};9-~Kbx=Ov-8kfŧg<5gKR)y1E-l?Jl4l^)r&՛&b'njYfXbcb~ܗ!&Sp\]Ȯs$j&l`1 V6´91 Ws$UPESg'ytRȦLv)PHʯf;ݮ\iN:䴫hs~5]9ִڥ&?f];4O7aǏ{IjA\x{RMr+mw: Md Px\Ĵr2y#\VMqq[61c󱦋_,728>Oˬ8 E}(I@B #SN#diX<غ9N?scf%]k%6Q)&q܃X0g!SJ,^89Q\&:Fs`-_tZʻp\Tw;65dDyE棱cQ67#1{Fz (͝%iIF,Q#2(6:FBkW˙I Xh6 Kb .Upi2nPy=Ň[VmaEo)[լ[VY)ɭS)4h] 9Y$ 񟨪dkLr:q[eVcĭŁ|9 NX;0}̞Y+@7n{r93qֱ7ye[+ոXŸ+TۖkflkXh#eXIJ +MmZVW+[ &e6kvO*/SAC*x.N':fTbX!+Nnfl2!bb7lE$6h.h U)YB$ s՚n:gѝTSYHvMk#9)Y7ڝ$& aM~+d]9d]K u lEj*M|y%***ꥌnɑ2N6j94h6?vtIfjrȪ+&bSc92\5:_8iբaя5gSNa9c2|/u}|y_z8n%XxP1={:MҥaC)]t4VA=dwq*nE1ЇMcimQ|9&ήdL!lI3iVBeӗwߤW [kfz-Bq^YFY%fRPT:H] 'd׷g5+8IoVOk;en&-f:|T[ _tҫ3]Dc"Ut͠u SxBN9.XON=V?el%s-L;GRSYl (ֈ>o2RY}^M#a-M07c=T3v;X[YjVSz4urb+H`Z- G١Y6#w8y`.^n5g^ǫ{Wnna~FxlsJ[LPM-4ubXፎ?e{)Ǹ3`EgnD5Ag.VIf( DPAIYeTSI$)1HB&6p\g#Mz :qH{EcS_U,rV}#,*(Rj**X[,g597NռCՋ Ӕ@VX<ˈVX]Iě75DEכϹAI$d{k 'xsO.^0Z4)^)z.}Ծ),lg/n;륧B?ft%FjIiUt%%L׶ hNb+ !6b=̑Tb-m̉t{405#whM[^,O\,~ nYZEpB%U&˽MYGFQ{Bg.:}i-uxcż),P.<0;eZuʫ|1LZ )VGbɊd9scn%lk~kTH6%?TФ.WZ־ <\jOŵzHXodK7w6LZE[{n|C~4T1/mwV!N[gw4LG7ioN6k۬p5XdE9x8pn&B,̮6|QS=}}^ۛZH:E6ac4YÅMUS=f,Z˶`-S)srYܑ}e;vL%0j6.\kilQ.kjSlovƁVݟީ̩[]Ve‡I,N28IꉜSc;'4vB>AwpOY;HvQ-\k7pIdE9l:&X:Gmf_WVb2.ݔlT\s4h:=fͪ)7l$E2&B)o'׊TRpZ:UK B)GZRd"uDQpeHߨd[jN&jyhFmEu>7u2Qy$B1#Vzr a Uw!Z7h \b#o{],<Mjm]bY$۲T/2rddNBh=6ض8*i*eqCeU~jAL#ێ };E}quƾ#qs]9anyq&wfv}],Vy#A{u6LRksV+0ݫx' >̒Rgk6[Kхh[WJ-"$+RRmX!TX6ls^ PY˕nٺJ.AeEVYU2TI$cRɍҳi_\qӕ>7̉uO-+Lҙȵ4FZrZ-{T;+ KLɦvL397-)܀x%찻/i7o#$k7r 4x7VIYט#uNk]lac76hS8)S!\|,Sc%2Yg2^v 5KN~K֌5]JKl}m1xМŁVC6m_{"R[ۣI oݞX۔.R+,v:](LWb\f$Ru*\|J:7N(-FVL4j{bT(H",fv\S'˜ʅ11+eW$cIl2r탢`rtP63FNw|N7>m{WYmjzp~NS_NgUlЏYЛ֢I6nJmm3mԞn5vߋ_z,:!jR6lhY+\ӎ`"א Ƽ;/ML;6.vM^j4d =6ič̞#Z{ $P2N0"9o{ >nr<%t}cY#QkJ!SZIUmjm= \t{} 4lG1qm6Cei5 ÷Pmm.`!2%Bl[=HwLug]Stmm_2Dl:c6RĝB9Use/V*R1h񓲧>z 3'4gEBFQqɉ椖MČomZIw]Y$MEP!Jlҫ;/dWe6-T;j.[h~P5fJx)  HQIHJ-H(txCɄ]vgl]P/+|#fQj2xbr,gAXO֦b0Rd9hpW $X,ᛴ Y'8dj gW?Ǹdu>~O*3rUݝeUkKAIlWARZ%WEBS4:Ohb]UߣvJO7Ao돲cbB~ Ս鈲H: kq/RpqMRfjATLkD;/A6]ɤNwFJ}D16Y$-s*w|śږܗd+2~cy%uF՟/ 嚡^4У7# 2 ^'M]]:;ߪ7gGUѨ;ZԦ[Nu-Jn#W/dzk;jЭvȤ'ߵlk I Ŗ!d|g>Ю/}?Ybx{=qU?`v㨇U?`v:T?S/ga|#m]rr 7Ӽ* Tv IBc 62l(U)Wf(-[^'N\39413?ab#ȏi{vXf&-[oݕ$Irc1l>Lcg9r1"=/;5zv}]8gpf_w㙭M LN-ٞɿov1Lֵx?VūY_3 X\9rǘk{&F|SQz>91Wdqw]Ҹqc>|cй,JbSm:˜w’Y~Mvc͌9ǜi]j퀆J5Z)˃/d4kC$BN Wcw:qV&!5]UmL ^BY, DvOH*,yI(>ogMDocyku|zvs?:wc=(ލӴRŖrGU[8=ݴcJNjjNM*Z53HkV')iq; VT̵vAf*O tGQ&G18rs%uudS*MGkcPO+6'۞j=hgH2oY]lR"Y2Y"S7oYE&ҩ)|ˎNujO1;|zUgm?nxvט6˹M[ɛئs^)2ڱ똏3?Fj^>.6%–1a:GؕMMiCxGͪ季tlf&[*%ZE/flZ>Wjm 4!zvc-UC{`b!Ye̤MΓ=s{ǁ?qӇO^>qs{vjPSj~jTYvl+f]M zNԚʥ}G`ƨ:zYgTk^]װTZm^!ӘQeŷZEv1xul#t&HORwU3.7OOI4ԩoVIk|SB&)2wLKWT~n}m7IAAJ7#2Q3$u9s>tV"k&eŦw uNnDWȥ!u \de]#vt2~-"e4jR)9k{~-EfsύOl/:Ѵ ; !9`}Y6tZs|K,TEʮA$:rWUly]`\opYsߍw-no_l7uSNqj*x,\qA7M0*&h;BKU5iW[S5uZN9~¹"*)Æ1":)̩GD@}G<ۛ]Zu K׶v1H&-aXgv9F5DȊ!a#M7)mfCZkV5! [r`Dvh3L꺥C9}۫IP^{;Z㳹FꚑFZ1I6R˙ [e@tBB6J9<6dmasa?_R@ ҎjVmQS-rȷ3BUSML%d!^13ҷWl>t6sK͈nm F'oplTZŭ-E"C$\|u%4jaN`V=]yGj$nCl#j7헬#]tc]VQTrnQn̉1Գ|UnXܼ[4ua\b!ULȹżV]gό`Wf*kNIɘ39}=F)a46N䕥$_R (w؛Fx9陊]ŗ$'̙Y˕2]rNg[){qّ\@Oþ*n6h*~ hP9H! T٥qq$]f 7%Es7f ԞƳUw5rη9Xo?V׭"D+/XDb+88=3pQl[W!Ryz&7k)ݬW;~f;bygoI8h״.,^)."^H'%-(sɨFYKţfH\a;b6h,6}fJ>s ;w Ts3\%)H_#z:s\ətrTrjG2LZ!q[e`JEg*QҬ$6RJGKG\ݓ@qwWvqoBmv1U{ 0YIg aiy)-4FYӧz?--COam@[ںcb!{1~|A;PFIlBsATSHRkv%= ݳ#7\xXV9y}{Xwk 仢JP2,#^0H.ގPw<]3OZBмؓ\>a X(vU| tPdsVݑDϙlm? ;Hĭ|e{5rM$利G.YZ1iRIݛmo^~O3a!2sX.ڹ*jK>Oa< h9)[f*:3;LP[9oY;h̪Ml1l"l,3IrOzF~]yi?H*82RHìHU_,Ĭq0v=bIF^{[Yntc6䯡&>M}#ǽfֺd°l{ff;g$" /i$QbRkWQQ,?]5IA'[Ot$S]-1t鹶6}Nx2y:=9tV"lj3&nΤk)=mf.#c8鯢mɞ&c&ũXR'i&v$/qK$I֘ U]X*"+t#'L++p>G֦|eOs$_l2l4TϜ4]w*a!U\:"/x<'mVxf:ݾm ϓzc'`"S¶3F8JS$5VֹINa|ӽH**GQNS,.=M&N4KbHv,e,Mm]dWe6-T1ǔR=vPcY 6B!+9w%u}ڃVu:BMptY-lƴ\ʯ\e۳!_}*NW*̹Ƽؘ)K3ޞ7=V7]ݹM;r}(y1p/7nI$C3k`Ѭl=eAzG:8ZսJѬRΌVI=}~)al3Ƈ"Fo/X]C}1k5qk_"BӪFfvrM6ڦ!xb۔jtRmo!UYU LB5DRBMJMOuGuy׌ゃm8Y7^g)=*I%mSnH+QAK 4|LZdb.VƟ\m1΢cW\d۶paɖ/yx9=Vf)V5gK5'%}i8x^Yͽ13&|Ϗ338??0֙(GG7\_|,? }iJYcemv2Z=DkƵtt[C5®$Yä].DMA5W*]NgCz{})s\^o܎H؊Zς/R/iǖ+1ڷmMKS6Pr[:4yd>-/TS0U`\}6H-1"ga7 B>lUį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-4\*W랿%\J~@nI|u_%~n?_!Uį-|#I'^ϟNR2H~)9Mybz&/Ì(˜\Tn~r];$;H旫ڲ*1 EY=sYIj=b%]~]0tc6AoN:Ŭ䪭׎oԍdbvR>cI7 ٦|wJd{'m td[s=3&l%:G&3EL| $]yNkw.\6ɸx"dp>҄{w*%N>cɸK>{&9*ݦbbtv3ǰq/S298$?`<;wMX62bcwtF\5`O`_$Ns,w;c !W̚MYI.ћCc970!YǷ\D˧m{K $vZ\b5v)8djF1Me1;8ӋHpfĕ7-#T^5ɹpT&UrJzkR4`~x μ.C@Gn1`厪'=S'1ڀ&>SYcU?Xoő~\t5WV?G5tVr'fXx~ёsM>JjvH+_tՌƼG^rL2ŒuU\kp"s˥gydSc͜|3+tw\w?zjJsVJ!NI/\xmH0vr0v~Lbvl:iu|:[lnN_9UZ.֠PDŠMl~Jt%sT,;]J!h2Osl Qn)l./0Q^% H#Ӻ4gksFڜ5H]AP]2,kh$6;:zI#c+HsaX8ܐ|tկz˧-aunWY4{sؒ w,|ɤNӟ>b9.:im; a/` ښɶnEw [1W\xk9%$5^NIdcOD^Zϖ;/Aw˖\tMo*Bk4[ۜXg[*z=&Qq!%%p Dr{Cym-=exgBm5UfѰJ:#ujyUsfMgXnQoat|m3wg9lPq뤶PX2+a3)*\ggOgρvsg/':yg'U\M߬_E{DR/d\>lm}%MHYxly#iy ^]w]I&!zJT /ڸlij)9I<]Ta|3vOboYf;j)5MGpM)Dʉ`ߥ\gڏiؤ#[躄+ F2 x8r1YaN5ӋW j\W١b!<S7^4_ϓ< üwª;*,7r|ڟiK{,[U *qXJG ɶ>tU]dH!p@ָ]9cK[ yQl6UU[ݳJ+uiH&i(w+s+ u}Wvꭦ6׎;;M6ŵjHQUܪ2r-YhlhmVo(2W\XFw8-Lױ6Xo{ h{SUi$O1H9yf#bOG?(N[YEMXX-%‡ ; Vҳө֏$LWpL۴-JMw.Q#52=#@u.\X1Dg91aO{3/f4<?.V&\O Hca<)ܘ3d6>1B1HB&9͜)q6s391g9`v8pwh&)Wjn1 $c9.| یّFY:c!PM|m(m1×%JG!M}2G[L%vOO@q}tevQUn\˹U/zGjZܞMmf6$JNZU g:F "#P^zDJ\5K2JP BA%OZxӺY9Sòշzf |6lDb"2g b]6j4\ |n.zǔ.N_yY_\AKWٯԚe ڏoP<9$]KӜz37qύ6􏉻{ o{r]ūUG_v{dYjr$delIet]rqwnTV_Xe?w|m7H+w]ZRjQ.j{W$i" $q,c18gx+ѷt8DZjQ5u5h9ޱLIF1 HF,] %SQhu9cx^䥢vߑ&jGaʝBnJ ȓ'q`Y\(XX,ul8uu$L_$sE 5o}֊pJ옮'ּ4XmZ@U!'ePr "ֶ[neQυ<8H|̍Qw#o14 U66H`iDVA61NδVMlGì l>j (ꦊ)'UUNTLiJB|1>r57g#h,r ۪8 א](8AbaDAB*7MDbǟ)YUIYuSE*i&BQC!K>Llǟ9pXӋow^%m.-jzb{emnhƓ*@:vr.ܷ2p3'̕yRݝeotO8^;G4qkTɵ\4̓t^)ga Y9AF4͝gCnF[^n5t/tipNf+ͻm">ʔ-O8gz73%.ouF-'W vcܴ/z넜wQ3E 5}Ћ7:ݲMqOWno#6֦d|kѓfOw GbdeiKb  PZEF0lL$ٔ|{$hɣtTlH!K`[-znrY>,LIHQ>$t1]Q9ʹH&C^>z~A+)|k굲$bbؚ!vҬTYs URQ̍˥!8GtZj1pH$5!A#NB5YB`MҖvdX 2oPLh.Qtm׏n+Q \̕tN#򸀰$e G!$m&ȫM1̜a;3ڬ޽Z$z&FFdJ˶BFiБJ236L $Bv(MkqT6ꞣ؎=m]LkBv٣7 [jx`ɦI.xjͳr 78{'ڛV/98ݗI4O 7VKc:uj*Qn4Yy5B4^IUA*5Hb Pa ٔTD[$TZGǴnѲE*hB7l>pmOv߰vto~$ J@8w2'󤤪 N`1`!Le3s5Y\WOq{{KZHݓv+# ke,/~;gaOaۯiQ$ddl$sxh11mh݄tsjM4lvMR!SL!qPzLi#35FPV+}XQjdfL1Hrv)qͽEy'm j{WB\^3ft95X+wvV.٫w*2-3.g6ZshMc=_|B#gg$HRN=e )3Z|Dڧ[u'\==j-_;E:T:٫`f/62W0fT9ѳ@hCWPo;-eel{8G>HRk,7u½;jGӉ;g6Zͷ+jSڻHliǶ1h<$JG]]&Ѭ+37:im\]wɰ:Uyk{V6t;ɦF1w,dpR Ȯ缔*]Kb/N9 E[ӕw9=zx*tq_AĜ- )XF:YFekC52e#Y}ۗn_ۗ&V+ 3qB"(Eqheh8`X"Yv@uß,*Z}W^YZڵeck1O mM[kUY)7!P^GsHl14',|o㹪sؗfqk sN7 enXeZV]+,S'Žuj1 \uJ~,S17?/Q/uJ~,S175Sd#0S}`(qqoZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$YIv-U0oZ`ygc%?|WK~jY坏`^\;.媽fv?]Uzp@[,$?EXl:Lg=9ufJ_eݟ.sy* ;qC* ;pDǙ0o͟?XJ~,SXv6>?#D?ҩL}* =OǖҪ~ߋ#?ҩD?ҩL}* =OǖҪ~ߋ#b%&7s9k;"WTxgϠ̖TcnɲDuU Hw0T.WBefAvpmHhxYnHo?_EFwl.a[ꦓgTKD)r1NC))SKgq8n6wz/W|# k"I{wyxoi 1xRV îtM>l;l5a˓qD#&sR*d*1 89 9\N=@ 6]Ë3W^˯&-rUida#̵qqdc&Ծ# V%.0f HiN&jf'\ cdӕrRnb?,i w PĈZDz*Č\ \sAjԫ/"7T=iO K.u5wFl[6-($cvn8$jC ݨ|'$[$O!NpPb5J?tnegi2!)KI3p1Ut$$#Ȱn!}Y:Zg't^icaGK]$vfJQi~ݳlLqt 7v\_׍bsC{`kLYH.WƨrO5m5E r>60y dҹetdMKd R 04T )yAwey(frŽ % 4u {OkEg#}l!|k_+ϑ7*< ==~K@X^TngFOZFiד~T_T>OAx~_K^SF)= ?~Nxjz '*nZ+;Wa6[$p0P+/-$DZ0dΞ;rhGQC@w cpys2I}kdX9-x!+au $j_4pjf1w+%lǞEi~Vj:؍Uqd{jKFH Z v%JbV5GAD -zP,X]Cz}MrEK\ Rœ;YfRXB3l|R+u;hn( qkk)٪R&T o9$VA96Z$q"}n퓵*<$9|g\f貋nT)P1.̭iƽX*"6:'s3]Xf]GF1Ojqt)!ϵë'M`G?\?7㿙'/Ӵu,Ԉ NIL2ĵtwRUznbL-F:2Mgʊ8oj _?lڇlO/}3??6~?{}m)TͽAr+ I(Hc9F#^3\69QTL\.Ӝصǎ 4Z[kobal]3-nBJ=;ub]2l&v=3&c~o"d9 fL^zT;FkOF)ضŶgpf02t^4p7X)s2/ONIfQjLXkfŃu]xNJnښjѢ%:ΜJ7AH* gW.tjt;޽M^/]ME{JɆhl Feti;ud"RI2ae],Gޗ~Jݡ7jzַGi[II2|E xCLH1Vnro&Q&E׍[5\DZ f#Y[b׀>'tؽ=mCvfw'3׷g%dեDp(;3!ld^E DluèGvZ H;qXj;3\$١&EtbUXjbI f$llNbu/!-1fl5)T6ٹEgltuqcVjI[:tAՍf޳ (wըy \`l)FzS)mDLv>6l]Z.ݜJ$GdXՐ:dHV{8?w=1 ?.N[Ce6U{r1-'KqS=񕹺C@x[XƯMd\$4s>*?:ǎVmsy6 x%jӵtmEk[d\,o&kXJ_g-Jv+Z'Ҵ5I$93Yo\3L7ufx\ ệJEE6N5[/^iM[!HZ,G45 -J(̶I$E&Kd @~&بO==ݗ<г#'mVhnwpcvɫRSH豭㕗Sޤ{cFqxuy,\yL:Az5DV֯)bͰJR7v4qPKQkXcwY'Yʖ&+[EBoӓΚ[>źBK88_BWߛ'eǔFMY&iM6F=tB7Kd{uǮѶu<Խ9y/ŝy,o4%b&M1)GПoCæ+-vB amk=ȾƚgQSGrJEs#Ӯƚ)c$ey.SrC%RW60lg;9WM^p(2}J7%'5?K^MScO4JL4pd<3 W#eaݑ tF^t^<)ƮopXXt%x7w6٘V5]`A'k*LWAYf.[1gcʆ:gkk*m3_nMWIG3QZI%gaI=#]L}Ϫ_+A}Aj{zS4vîMTʇ{(,y񫺎d`bW6?$w )b*HMۭ6Y&m [FZQRr*DEd-ncS,|j2vzMp VYp3c%37u!$%w&bdGר=ܣk4Ca°K&M<͊ 96rplU) 3GLΙcGd]nn/{XNM-##E&LS#&tA۹&tD].=.G2/!464*MNï+ Y)y6Gn6  l'tt|ESLKqqQ}EvtllsdGGl͋mf6I67M4A2$ \l57YFujqsWI%%,'ɭ)\Fֲ:l4%JfYH@/ʩOX.2l3ԟNS_O^ T4kwtڒ8bt`*T=khxyxFAf)3>"yEQЇsN(~4Hr*:*s\h4z*ikyr619J8T156.r^A2@;r5 ӓRx։(l-Gt([&i7u]fRdi(#/ZE1ezЋYCǾ)n79.&kY5.YBy≁vztndW1%>FO,b<V]Oާ>q S}5n fἶU_?K8.RxL{D}fӽZV&s} lgTiM`5tҚYÂJo0φg89.CZZi4}rm{a4\,l(Svvu^ͱۣA&'U#ݑ +0TqR@Z6ÎT-i[[ЯoFlnf CWeagԁNIƟmHhǘ=;cb͜y3Ìg ^tΞ,fͺ%8]B"#](*I$Lu9B19:]\EI`g/<(0qYrZECYY t\%h)hIN1pNM-V܄.a5#]g2v=U\a/UlrbF 0ƿxŔ2{~?'"oϩ_-桭qXm36kľ/-('H_[dfsake'DdNBiH?H0d =?-<ʣ}nݵȊ6u3aA&N´RA2.~>.6.<Ѭv*Nd"X!)Vץ"}rEh6t4rzW}R ĎHlNAuwTmIxkzz4oڢDŽGY{=!O-GQ+Pl[^f3]+\)㎮C9edƳJj+QE{#{)!u˴EteQ%1υ>qzw Gv{6ưgdl YuukZCmD,0 =}N^EG誅RaWCڽ?ÌjU[aا_>HJ@ =4BXzf l8"&t0DƠگebގ܏۔uG-k>o57Fs{RO#4`kyW{c`R"Y%H04PJQ]<]FTv~6mII5g+#eoPN[u b)t{ěٞ͸~yP-vGµ3ĭm#$ַ꺆a%c8Rk{7YA៷DL۱AJwy?ɞ]y{,_5ԖsuMyx`@*޵fYdzdjN[937pYZR+"y2jf)P1CKdI'T:"Z _׶:V5ڌ^R*4@A!n(JNWkL3'Թ=oZc榉dsckh(ԓuf7DlnIGLU|Tp|&ʘ9~GWt0lZ`L0Xf&M!m#.4 2|ܷnF6[g)Og,$n$t~٧ZQnzpX-R!'kTGn,lzĥt"ĺ IB'?PL"l:ҒDMc'QC4) lGB/GK nzp;Xs,6vNo0:cc0ĸdpŔuFfqKJ8FRIU7ǔRf03SmPhUgHZ) ~'UƝ`knJb/-ًjzXPAxT1\73[e5橮ADZ8`(%!hUE{(<9F%FY3:Y݀.:zh-vPѴ.W+mpȎuOm,ŒoeU|ݛ${cjkS\XNg+>j0ВڎV:&gv[F!͔J,VhGP;@C nijʭm7dwZk*|UZ-S1ԖnfERb#A\=MjP3-qt]e]-Z'tg!(2V5 `R$,m,#I09t}ӓil fͲm^LmmYlk*zKI敖i&E3g^¦9u|1rsI3[qz+LYdp.J'Vn1wpQ&}4G1vtm䬯4t-FA\Q'[h/tnLĽX$QwMvO#Q8V&xZMq;8f>Fq^[~_AlVgi., K]H. #K-"x%]U#s_5뾳QM v%Uk&GRVSգ"VHKF7H) ,&e :EDk&n*r9Hj*)&Et*!n3b89 c8c.q2.m7lK`F5,e J6l5Ȭ}j~lvcU| 1:Mu?l}Wܴ8{i5ZJj"\嫇Poσ8qc (Lbu83o'n; 9U?Ƌ){=U9ϒ;sR`116Lpnk[}w5:5ل$eiv禨)'Idq̃n- $(VGvj[l".udAtU)Y1U% b(C.K!"9\vJ4$cM"Vo̼LJ2+JGmeH|ާO7K h Z6%EkKIW+ڼG N-7j㉎t nx [p]?G{'zum܄4Ľ*uu~9i\y-u;ObU7'K WlcݏfP:*U9@Z MDZ.D82䌬ڹ@~[㉺lskKS&mθ?F*ɝT՝a2UWê'+ e;TX_ŁێTX_ŁۀeS =O Ҫџᇩ$J iɝ%TQ%RP"(Jr)3ch}-߱jM)cikNVJIJGGTόj_1 VIK>WtYݷWRns|[k>n0cJ- ]acwDMʱi ţ**i#ibi=&f\v\i=Ҕ_\uħF2)8J*QY)$$]9g 1r 'I|)+$#6T366=oV=qv ^=*vYD\9pFaT(|=愇rEe+]EdK/ R❪Ɛrutmgfs.jYC<)V5Ю zEfnz&.zao(BZvj-gtoR;j> lV0[?N6Vjw6;\rl_$d*iB"%<9p椦e".?).|ANUʅ"uF凒vJՂ=>cneݕI<Ԍ*m^EF==:ѭ6ŽG ]o+d\u+U kRIV$ʯ/1/$f\.%d^.R(Pq*_<`s8m}^XێK%T;"լК9W0iU9<76ww}ﴯ{n# l-߻gwgw ގpJQx?]oxG/iʣ9vwf:*x2:1WҎSgz{pwq>J_R0OzivxG|{pΤ;~amn:FhiOk^V{cnƝ۽8'wrԃw ϋ==Awk/|Q%Gڗ=%svK@F?S^gn?ihBUdž{^ayY|%|ˊ?|7ǝgquvI8}C8 q[; rEhς˯vyq&7|,c&$D]G;96Y5'EcnK'~Ӑwk4nhVԳ6 ڷfU!XKHVfd-< pc''IY eN#Vu^'w' xz(e%ՉK%,Y ̉˥#.-=wφw!$kRRZv׸_|3x 45xOh/&sʟkl5G'k;O)ܿ#Wf]io_`[i) sJ%!^GGfvy(\6(#/7Nd'×mt8ȊEEviTE@Ԗ# kb̪YW*|=Bzi΢+:gk=JXX^uvҦk)uu w \#&n1 &c3kb͝3_7NPuJMgLUDž1 ٶQvM7`!-RI)i@QCK8GX3nߓFyG) c_ߎ<[ /Ȏ?jTiMZJ۬6|D1U #e"ߡ8e;(=6f9䱓 uk] = ǮfŸEU;k֤R_F^۫"-Kǵ FeO ==tRZ?Mve9YW^vi-[nw dыeG 5.o?whzUr1t6b+*RAb++:QHGb<^"Z-3P)M?6 S \d~ csv_F<}oE5V V{gV)xQ?ٞDŷ0cwi1U\d,ɦLc91Իs2a7@KFܷ̌{ViEˊ~TLR'm!VC3-мGҪ3ɔ.AR rSM$2w+2IgjTTf%̌soKKw)//(9I9 ;%"tK,۷JӅT]e|-;ˏ_8c8?ygn><~~Ⱥ㣜8[fr[%Y޹S‹NթU c4Cqq$5Y#tyNO.2Oq|ܾ(oe9>MGSWҘ27s/uܛsٛ/קUv/lc|J._mNS)s|Zr>>32Hxtlئ" 28MIJ{P$xm> m{)!v :&Hbvڵf#dIu̓$B^%% +uMi(&Ef[)w!f3_E.JXk{ϝWYJΩi]õ,VSWSnp͔U|6Uw#cUR)wlcfyF3Vm_]$:>s۷kx#^qeUA -%ںLHY6q.1 b'1 9SfYUS8MzukUxV\נzśwVfoTW8W02^3ӻ-#-ەt6 3_ |VuKHX\^6gM*d$T̚}-="wglᲫqҖOcfs4΃=en7?TQBjVf*l!Q3 fݿ@^T=I\պrGod=eA_Vng%hg\[ <,MݖBztܓ궞JKn0ڞiߔDin*"©py`L$?Xq8^ As+^jjHz.r)URp {m}'^ c+夜[2/;n< vbwӜ4nA](69[\s܃}c mi9/{ev#%ֶMS89\]aTJPR&}ro.s&"LIeΛit G7۝J٬+F>]׫eQQth.1 6ͺq5dM%d%\\s?`E1BbѾ n$'orBA[,ڗ-ՖBVv2F2RIF"OF5v(c Ӄ)uUa;nZ,T0-HotNk"5{;8feZ(g'I'>0W Od|UG<.s׎Z߹Or ISEQ֙MB;Vij\axr"x.{-tW{JIj\w*ffY<$R+jy/&FQ+IάQw2?ox ߣ3Pk}KP˺o[k, d9H3Deb"07}64 U4ޜ][̊6ڽU9.u/V21-nd*~J㎚`S`S; LJ<ႝ_ZdUϑ >&NLzJH v K7 {pdV'0ܐ}B;MRvfʏw&].ڕaufR%bIjS˖H".AZoPm͠N葶F:n,S%2iPvȊc|G1 bW.']q8ߠ.֨FucڿYtq?V5Ce]C*tvș;co-ևOCHs?*,UWZ2nQɜsdjŊ2 *YzVL+O2ӽr8wzeAѷ 3Nٹ@h(% '-ܴf}qEBJMSbk˧z蕋 ]:%kbuU^&_)Ij`H L\U>JvꍙwH[#)+_(ѺJty[HTY(9ywM9l;n/p]j}_v?)TwSf=Hs;AgN/Qo/!/-lMElɻFmUld q (T`jIeGS e]skFnc=c7ۅt:X)|33+O7cG4\>أ1DC43_A%Z$tͷthYҲnGl9_^serFmRY) Rĝ?Z2M7 UҝZAɟ70hS؆&]oFSJU0 !F2Ìqs/`/tr2M(%1{3|;\wl4pDj騃EXIR1q} h0C[\MnHi\{4U] 9x ii&lT!O+.3zc`]Z횩XM>1JCHͩg9'hˍxH(&y"d݂#;Nt=05>ѻ^bd3uc59de@*?5vVUM]PNAMiIνm ٍR?6Vdr>ɾM,~\:JܦYZ"FqIh\`3cɶm\$6tPE2)I")q1cTY>yͩK:{?dmjZ&qOe,.1'1fpE&Zõsec2|fu$$E3GQddnʣNIcw\6zbv]<5 ~F}JٿQd`+U:Eb & &n1Q̋7dEgϲ㼸pT? qQ9]#zl B]EOe<ؗ jUK4 tW^VV"AF3t&!(n9˶p{r Am:AJ0ũ-N*~Bb-HotN䲵l22p3֊+k>{r @_xQA_\l[ Ƣ>.t]5YV[*tWAtNUY1TIT)N1NC)lc#Y-.}gNXޢ[$zY91PMă 1R)B # ݺeE{>a2jsRRǦlMoF1HB2.3㲞x.Qh}?5ƾh?s0n.[-jsH];\qRq2?j(UNuUTQE11s91sg&1s9~ɊR:{Dpa%2BdN)rlggP9/^v/ t;M$`X>_C#9;ݘtl1gGz֙:ثz&K|~gz| џ؎~eNIeQMN϶b2p}ȎP}N_)cZN)'RyL(fRI]^$搹ÞdWMB1LCc)ld.q%3qg3CILbg!Sc1slg| ε5%4%Y)l­9(ς8q'm\~#oR<}w״?6<>~ ? )nevS.es!nӹ1P \F9Ycc =<Y-ܵTc!\$Tˆ*(RԵ~qR sVr-<=Q~Vt>|g=~;dFk39\9ˆ}ɝ8)q(qdg+crdK]tS>3g,ٱkɟ5,u^DGLDLCg;Jc1r=)B\a2d!0I#`mK>yȺ3X4hc&ɿar{KtNse, ഭ3nu36ݺ?u紩{{%ے%E%O6{L<;to_~3FNJmN'qDXf8E1r<iLYh%}DI™+ڳp\cW1S&]u1qELDljĹ1eɇ%rά՘&?>SO5݂LȚF,|IwoaS>{.L>1rn•f e)YkS`f~q|J1޴XpEPɋy b:g)9iӻigI="b} oJO3.s>JW-rf2 6T\?_D5G^1%'f DT]e2DPKYB&\G(Mx؝?QBceY?j,ss2+:d&t=le.o1sv͡=faJbdU'JB;Xi=Swu6'Cpַ'?O\>}f9ؤ,fKBr(N̕DVOY1Y,Q#;K뒖^RՙV՟111ĥrau0q)=d"Zpc`)َD\c*1gǻ6[(^M ^ܑ̮c咸)re0P#RH qg|xIccҦi>bᒱW%f/cϦ\ǬS &^[o6 $:p1.2l{17Jh Pɭ;&ч}*|g9pTfٺǟ%sdfU>وu7cSOggÆ}Ho5w=1%0LE뗋ɋ,uLTc%D>J}i`p:Cvk^6mkOff|24dkC;lY[4Gų>+'֦ :l'K{v-[Zk-Yh>&<}T*騑r35 b!!Sc\ miŲ7˻fR=3 Mc%)"%.{61dV3OZ*X;k$ܦ#\~618rcdp毚 d?Tt-3x|C|_|oQLq~?S =~ꎪH@L?y UȨwH8Io/otDPL㳳63ճ?(Plb!j-8La19pǛ*42`o{[~ư^]olG(#>Oz'k5+l޻gwY 6NJDML|.ϋlZyi\[4ZШ9~1WGWђVkk5yڿ2ů']xge&<ɏ1](WwV}wޔ{H歫o>|BRx}ͲVmHyO8x37:` ㄂/5|K&W>1 T0cvc=w4ZKgW ؗ)s(r_.̑?^qo'd?E\q_>oșq?ٛqې~Wt?f3U~Frsny_Es|FQS>ogcϥ,3,_vʯ3lF4;pcI>~, _&on;&)x<98}\~gn@|M([L\z&P3c t̲US$R*(c>s콵_w41#QڬEkDV͒""""-$^OMH/]YPff?3X_9>|#~P9͌Ro/Y Zb6?3|U˽t4vyGJ"峔̊,NCc81 0刈DG c&\f'.L&#NKDg}:)5pSŽo^rc w~LJgXDogHD蘹${;ɼݽ2O[x?>t+<>3f)3e—gvwŸi—|?ő%Y$`GGS?G>|gWSόc۶ )q%F+! YqdT/n|پG1S)DC!˒ S S8 \={qv8bCc v0f͊~k>>Dfqg8;3< aUPJw+R.g11)9UKٞw઩r|l(w|L|"J͊2Ò=91^ei7OjTMm1%eh3NKY6ٕ;|'$kޜu>,e26T>sN{+Mb֛Ek*&g>f3U<1W| -&q> %z3X1"KGijknr\k;OYlc8E3=IkF&ՃT \cIEL6qc&6 =o~3V#7ͻhLX˗b&'t/þGg񎍶<ߋ{Gx;1y$4G~I.?g~qO6qgg;{kq;ϟ|߹_> \4SX! 6,Vb1)HSEZv{$äR.Ts_n><\ d~tSy>,}>, Z#ĤlI/ H&|Gk,;Wa'?Gآ:y-z]V>>"">3DVmiXkO2.YŽJv63u lc+nsH1tL`sgn?|8"$[RAI& i!JRlcff SkCl^c<{0;ٌ>7'W1>=oCk%یv~?<cǏSS|ݿn߷(ɸM\z'M.X:j|v&{|{qg.{ \qpO83݃tn3>oo &"bbb&&&&&<&&'11𘟚E}q>+9OXrGWf*#3lc9!\&M.;bgsVմ՚ڳ15LZ&>q1>&&>+8T7IUT"HUCiP3ܐ1\g"tLJE'dFX=_.; Y<1*\;mj;ON8+DZךW|8+d;?ٌ`-- >[ƷzBL.HYM3 3g>nbgtJY1ր28{pLQ;{{;;qH,&øf/n W63+7 Q{|oٟ01~{s3OO;L~֙b?7u>?cϋZ>cԸ x,Lj(+'vt6s[*-g9{ KL n?}_?sRk?>.-s}_~qLf|*,xic,uV~j"#871;>~n|ýl۳=vcroW7H#o;d>'I.7c۷搿1|yo!~?}168d| ^Ϸp(3pC}\w'8O>~ afo?gU3c;;~gÌ}QW gg_8Go_o7Ì)}LEdv?s1? ) ~>܏}~s23}{?c?ŜJ?Sc>oˁM|ݘ> Wvq9k7Ҥ}ϵgώvh۳{~m7|a}OIϵqؤggی}}}1vc9'oُns;01| O}_gϏ?.3\d1y)ge>.qXoP.3q:73>?P?K}_7̎wpo?O~_a,cc>)>?g?.>.~~0Lc?aJٿ{K0߳~c92{oLnj.Hs`I5TL(x2D˛i-}hV"RuϏB?q >?У}\H:N+ʠE"-\1[>V,J\%#) "i9bbN&ad\Wɓ7s%1 dMB$G:Jr(Csٌv>lcs^ڎZPEףYY'k%D#RIG]<4&pj!s?M{I=u7/eA*,1ELGr&.1+x$QEJBŲ`]_:O55{ Y$.Sfpv: !vT/nRpqnѲ0̥q7Unin(*(pWG 9U$̖JnÀ;6eb"By.u9K61A} 1;;r#Izj/Y[I÷ EuVPBdZcg$A5]8rS/a{QCvv~q6*gxӛdlRhʰFDEVw"ȩѦMeQ9„ɋx4'?{MLlF]4WR,99JRBEs2sj6s.;1`bWO˃d J ,Üj)`5E3Y#G SUuG͉f?݊#䑖Oሶ&O*=9Սp5lʫT6{O`#e5hf2MvTdV?fq]fqt-u8U4E;JcT[MKOͤ*U ˝ VKLccLvV9*y WNr3$qwRh"M5'xF&ȡøRv"|'j'+re%oۃ 2}_&XL -K7g*8zP7p(oܑԔ~^3K„n|v&l2E\l9T"I\ ֿQ7Đo'c,8$骟)fDo $3n+c󦩧`+~9ryh 峄̚ȬE g)ggn3y^ 5O^S"ϋ/h6YV.r&c$%$Ye;w.PD6q1?`]^WO˃]d̽ V5Nv7M#glc91=f{1T~U(S8L[8P/B'gg`ΞEį+p܆WIJ E)G*19dn L$#L# C5j.?1ĬIT_`,VtS(SM~#:Xze:fu)LwWpXpGPL;7fb_w] w=|_龇 Jz^:OJ9%rSgJc{yN;p|t=37pEUôRL ګ5K>pTσ+v1m5'ȆM\b.(U -f1u26;[SmIDO~/|I䋇 ǘ1of<á΋Z&N:QHe_4@c9L3p|%6I\3=|Hj A C%'\xȐO>&Lȝ `TC-)4lnu9TEtT:K$3UQ<9sd)b2+/ixۿHМ9$V!7iX??pv*/2R&\c*l8khn;AF>>"fq`n3FGy7#h?G$b|26SBLcS7ud;͌9$7YbXͦ{46ZĜG6JG͜'WU 6B4Đo~ߤ ;<); feSJ|]p Ee#|Iަ+/aI#XluJ_6Sh&I> VQS?|6K];x ydKMC({c&*(c8[$&UYCM<&(DLIȵz|50wMܨCc)d;H 謙ɝ3@fTy>muppf͌*]1ʺ)͞Hew {׉&ggowvwq3-ܟbF궥D8]ٻHY9ȋTUAw .ݙSZj*\e3b,ĜiHS*tl.1$/aA"SSI2&Rhrb)89qo5\2JcDˆ,UWT!P̪%-ͰLcj 1?K ,uXT|hU/S42<6pݛF$EE*o #߰u;pntfy-2.11.0/docs/static/img/uptimekuma-ios-down.jpg000066400000000000000000001461071462047176100222070ustar00rootroot00000000000000JFIF``CCO" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?(:((((\V+?U袾_4ۯj[ ]?i*^4?Z^Q½_זB||~iZ_spVI?nԓ}*?\>[~h&Y{>={~TO^UiUzC?zO7uGOWWU^E~V3OϧOzf?>;vOy<^/ׯ^oۿ]Y|՟?~c+?пƬ?^U6֝wb_m?>}J?O?Cެ??ƿ3 rߺ3:}_֔3k^ߧ_\zݜ#υ()${?ڟG ?/hϯo_j_ku_濭^kQ^QEQEQEQEQEQEQEQEQEQEQEb@X(((*PU&YO~@wi4_Q4_j͚<_ Uz+uMQob(RQEzK׵kfAsĺ@k-/=N-EMy>þ"x^5 YH if'DbQArካr~gMWn33}^(׵^vg,A%&Td }s<6׹|GMz7 /|5{/SO٘!v *Y"բU2rdA YP~kLJoxE֍͝1ª%Np|vffwjw_-7cI]jouf֖sS-šG;>ZD ]2A"T?,Qe8mMjZލwGe-cRq^;=oU{is>u =}~%g_ӡ^_ϷBמf?~?i/o_FOO?FͿO^_֫M?>=jx]k_^W~I'm}54_j&yYO8_>(➊~v,?zU0b3]O})/Eע (Ox\Un'@aG(g?~U?e97%Zjy8:m??ƶ#qk~?_Ҷ៧_֞xxȮmVtjQ¾W=z3z 󿯿_Ҹ ;?]%_^#j >dwZߖZ#3_Wvzkܢ+;^EW,QU Uz(^EW,QU Uz(^EW,QEQEUG x⾥qom,SX/?b-eP[88:o_6At]%{l`ޣs:+Kك~1no MnmhF\#u`q5W:ՍΙ`XZH #?gQ^z\Xzψcc^F;T*U@.(x ?&f?~?ƾHB?,xKu=Bo WVvn7\?^s㩧?? ;l=}KĐ[XͦX}MլeZ䦟t^%_M??{}ZĚ?'V$N?+-ݺv~|E"??~c+<.hۢOֱX_^]kB; VOkٞ^+ |k~wèj>ouuj׿`c⹿k7K  zwf,,/Ν{lWzWS=Xg> ~0xJƊERſ W/ `|DluE$hD%{N76yXw_?Du}}~k{/E߅KY:ρo,Kg\>$+2OpqLjψ'<붾ǃENB ly vF q>Ty} xjnƩ-J\|n{oNKׯz^~No^%#H]Oqussqimθ6SV_|M4 .IY5mo/f<ӿEQ#b !K;N+|Q[{X|ԵrY:=go<<3jx+YFO RI ։$y ;0 /S+5ߌ(xwymm]wmk_zR:,@*O??{}ZK~)1.ne[%oӭ} eXvvwMݟ?i/oU+2iO~wW󾿐ϴM?>;vOy<(m>*|"6i?J4ӏ ͚};{g{veYbVjY~_BOx5g򽏩VZ]~V󾿐Qr ӪwW <q :+3 <q-y_Q}!U|q j/[t_WiyGO?oj3^?+ <qW*q>1;hL^8vm?[;ho9鏯uwӑ¼?=Ig}?ŧ O޻;z}uԺo_6sY?¹+;?[~WA|Q"ɢߎ*y>5mo]^Qf?G3kզyYQUVo3y?E??~c+7? <s /?~c(?³|s? զyYQj<q?g(€4q ?g(K }ey?G3Vo3g> >U; OhOhoȸGy?h=ٿ_E`ksGoOg\@h5!D]};47>;E/=?N׽q϶Dz{gÞ6/ΡjZhls^3k.;[k2v ~ߌ>xvOs_}Zl=|Hӡ_i?z//K:E復g+"*:H,|.χ5uM[Y1ݿhR0F XP-WQo.uWPu+ۻp?^WW-_Q׵OYoE:c;p+;>o_-|}=?¾ǷWׅ(2\.lú2>e8*Ð@#yhgGt?"A~y+ sl㮋~?#'~4HxtŁ_whjzmΝvٛ +`_stZ<~NwWGjw7 t x?x?*ω?g+6i?J4ӏ 9.}5c~sv/<{B< h懬xR4\}5῀:E?hu\ϝJz1i5;]^[8bZv|_G}/?/ׯ )?P bmmeax^ygO}??OoWC&f,-"ݮ].{\[m_w_M<oU+WC& (xcz3Kmm}^,->?X?V~~~¾7 O~_q[U?a0qi~>v^gj͚~??_ҿG] FOzπ9>$Ѹ?\}g` ]=}?4;ׯu?πx/} #ǿ+З~?N_~#exe5s]m]u[Q .ܴ&>~fiq5'_V0?ҿL?\|>'_M1xg<5&9UeE$zh{~'ame]o#c#j5I Гh?:\W aӤ__iͿ?g)? & .'dJח??g)= $xgz/Q $xgz/W"bK[lw1O4?g+s<5Mq ?8gpn-Z۫o/??PߤKϿ'?Q/=5 &ԣπ?J} u.;œz}w޿w B>_uǫ~<~] 'qg̑hcW*Gˮs>(_OV?~'=G#{~}o?>'E}qG:2|dq,ܭi{u(a\%ۢnQ뽵om<]뭆09~?GEhE??$c- MnV[W?:xujvgoyߧ^?߿# G >?$e/?~z'x_/jpMo1ftOׯo@|BwMG >;&Sor9?>|oG?<1ox D>"?~z G+(xcu~z<o_>#$?G+$x_@ף?1 :¸B7?MP7O~¸B7?MQ 6@׫^y5 -??$燞y5O OUWP _G~/j?? 5?ּ/?пƿA?? 5W'x_ּ?пƪߧ^'[z&O ~_?w M5-7GN^˦54~8oJw-bq y̜6}Wo絔^G' ]t쿯P'{}CV;YEW6X']]l1}+QU;&?(Ļ_W|AEWKNGDtai{ERinn'kCߊLyV_uaq_ rwW|j_>xTGxdžu WH|GOcV}YA|j|}ST9iw|9yoKҴ ')Op=#x{}/?6*W]HoE]4P6ɸ)* i! a[o7h<%04hJTg{ni~ʱaxI6(T^~&%W^=&tZ[-zeEaU袼 \eM^wZ>ȋrxN'dڟ~ D6DigS_C>U<8 %'N7Ɵ 'o>xl|9𗃼ak#.r?m>w{N_MΫU~j=' ^Mʬz9<+so|[PƱ_+MnWrb^?>6eMki>u9oo$3km-'Ŷ^P~c<'¿¿3W[?ߓOOݫO٧A-I~5?MkIWf[+wZ}M/0{|ywſ_ x>@t4u [Zy1^_6*7Et+>6 5?5w<>%Vm?|Cc8 rSvVVzwv~wo|KlL?i{e꺇c5{ C߯*n^r%v/?U8h{(>8he _=J?~{~,e^_ojsN/?5v𯼾 ~џ;SV[5cWOty^7:ß q_kZMD4v|xج7Ga0Ky҇(qVhܞZkJ?}}ej_ԿW ??7>Woubw\NZJ;覮?];_n?_ď;oO^a>jڎok&w>h?zvh0A t\ G w/׮> jOcZ֧|2^Nxu[B # #q/ً +|lj?U:E#@UC1v¨O8q^yW N*Ĝ;VjgF4r;U9EԹCˣ,lZY rom'g*_ S狼-XG^okǏ$xĒx?bU/;a_Ɵ?w'7wo^+߉~Sgោ4mgC:mAn?'Ң#4"$kq]ux sFi=~,^2>.x;X bO޽|#߇"q׋4. %h"?moh~?׋#KG=`iyuW˿ X'Լ'姅ٓ&O xoľ/<**G\z>:?_߳uG>,xX5 x_ xoú+|HU8%F_oR=~ܷ&-|F|{g޼ gÏxa@?f\C<2>*reyP n*oJP-{Yf7nq2ݾ'-9m{_}Fk{7R[Omaόڿ]G5JǺ*ʿ |d>b"EtO+g)"v@kI_CHi @OzވULj,~.|Ov~OMgW<#'RCWƠA˦8 KO<3[ WU:p|K9#:r(GtkE\^\,8i9.[pmF6 ^~-͞'_ y?~ >.|ΗX:7Ki(c X~ğGψ)|{tY{ğUmkǭx}2io_(‹K/? #PoZ?s"-x{*6Wo۞'=/Ǐ_~YqͲ%0B/kG ,>s4N(d*Tbú ,7)BNPgtm/%&?cW6ѿ|O' |K{Cx@χ|GmzWߵ HMj?R='߃u/'ú>x7hM#T.wx>"~?|x[?xIk sL˷! y?w/^$n])<}|V?lσ߷a ~4M?ß3$._o>3cB Wk|?VBשnexk p}[o> ./<q-iRRCGկNRs7yRn1tjWo(6-Qvl&GOi)%E?|9Ҽ H 4[8.Is ݎM~e迶oU' jxK៎Ĭ*?~zl*p Pc/=;?<=075w¾ 'oKe6H||!~>c l~W~ki_ğxƧKMþ#>?a!B2H#ox=Ƽ W+.$ң :>:<]ў QR.UW/o SG Sj+t9sSMۢ }G(+nOD/ƿ,G,W׀]3<ľ%>R8YXx,"KR?lc C.+ue_A/ |Dׄ|1_z+* gE G]wAh22>`/$~##~8.+ +]ӾxwBָ$b2f6!#$p9?iO oe/~;|DF_h_xY- ٠Q׍%xن)f_,UL81>R NOa[skR18*JN[aq7VoG'fkں5۲ncM3äN_/#W)ig|S +qFy?+Euj'1/um{6o KKK?i_A֛BHφu[n8_:?zݿPkG;hkZOx/xb5 ,x$$_#&2]>֎WëxrAoFrX/?gKpoCS R8L!q*G*SG z91-E*yf6\EʊJ*kHjW𥪷}X@?6e%b?BX{jh~gAt}N{Zq 2(*I5w9g8;usN} iA>?ʿMH1HeUr]Ϙ̱̾EWd>%t>3?b^WYWC]~qbE~OŊ*XFyx%,QUK }}?]2^j֏֏֏փ>ZU~Z>Z: TQEQE8QEWgggg7S??d_ ^1 o_؞Z|?? ھPt 64 x'ug;/|a]f xW>|Q~i? o}_BI#''-8w<,u nj?e{_|O? ^O `SQC}+q?Ɖm?}<u-' )/GG"~>}o_Jߏ|?8?eO x"Io<7. +@,xsPn^ 🄾 $UW=?>?qp[> eO_oޏ▗~|AIj~w/737?Z9Ϣ~ZlT֩Ϩ?/?oh|x&~?|=m>}0]E~_ۿNz~} rsO@==O?׿M_};WO<:_g˳71c}9˃Og^Y~cN}O]}G7U>:þ25~6_>t6O9~Pr+$W6OO ߵǿX;Xh6𾆞(TωOwIf1[JO(3pO'lNMxuqci߱`.oMǍ0ǎʸ؃ǟ>)7B~9׼s>ok{|G w xz1oD'RVD'dZ.eg՗Dg.U_<dq<(>W.&q;Y{ݷ=q?ojt xq9kb;yz N8|af~w='_o&X];TӴuS X# _:X1/_ת8l+]s_z>; o6\|xMjk8{>^[yτf?W{3kv:i^O d|%QxE&U1%˭>w?*#/\-?¿#x?s'z+(ʍkjsOqzJrB:<ʜ#N $庌NTgEW~i^X]SXl?uB߯xŚ%ݗ?A???+_(>.&p-gO~*|Ls{ p )x ! |_n5ż.TգVSVS#MQМ-7O*ԏC Y=bɮ˧w|+h6? oI/ ?E4+OOָ ?>V!-:f %!x=_ U཯~!|{@j/BOoFFS<'p3h~jBkھ>"|?\,\:?A>xFO?9B4+*txF8ʤܝ(7R nx6)9n5]d$`~!x{B2rx/ v qv7.Y_N3PEƥ)9S|Bӝ:jnuq1FS=$S`'G=qQ[[uV`#Y?}3Bgkί]fivN!o\# Ols_wPF?d ?hJ%z_O y럊 7  bP Z__߈ ooW| J<[˻υƵ_x!ǀψWOS# qe:+{%MBXĪ8q-:qsQq8pڌSN;nڻ-Yn{VNJ|3oxwtWZ.o~x[_kȸT8 FzDu=W# Otv_f:t7|-| <:tSR*~ |;/i u/>s_Kgog'mU|Q#g h?>x#\o;^W_)  \E\l51u0ոVO2F#/i(rVQ:~Ҕ8~Fqj-+4+?Տ_'| ]|Ҿ3oMM7rGA=/G Uw,ᘧ?׍~0xGM>k&%ޱ__>xO^w6;(-Ğ<-cF өN"4qa2 aV&(a֫ tkNڔn]s'jMRK^Uv6I6#?r&#x#⯂۪h_|<6 sD 9S3//x?ៃ4+OwIg: 5:H]qp@8P k!֟QOV}pǿVeC/ ӞSx'zn.Gʲr?<ƚ=ڽܗ–/1brqmmuu>:h| 39Xz?#?vuKkgvҀ=r?0ڋy>W 4]S,l'O ;>Xh_] ?W?]KS,Ov k2NI'#?_:]~G+.jkqNkK<.RNFXSN=NsJn5.CKbxBQOeF.9B3Tꩧ.wkTRW /ژ,:'p SGv\ګ7{ߚj.3,PqZG;NSF9%ǙN2qmR_۰!GOWC`Ri_ދls-Z4cR5*`oأIxW;/|Cӵᾑx|=Cx~Ax"D:@F("{׭J140߹ sLF֎_ia1PM'lғ]<EWWdO9|}fź_|"S?V5JGxD $obZBM8n)tePxc͟[?H:?dž%˜݀2gp.6 typӧR.krZtdUT)'RKo9 7}QWW[KE~}~*~ Ek}#Y^}3x@0GE&x7x~|EƄuXk֤>:S>X?j*5'Ïzſ%x}Sg5;?߉|rq H7+ʱIZKX깹]z&/V+osO/CHk|?v|./O$PkàV 253Z[Y~vvvcLҴ `瑞Kܟ~ ~-|c;g߅mҼac~wkpNVAgIEkogJ,OoC^_k[~?o_>➩?i?u5 ^о$T|O>-2| r~6?l_'O޳GsƟ xLj4/HT@m_Q=ozWV_cĿ?\8@ߎ{Sk?l__# 3G?Gς)*Eh |6$<%!M< toz>^84M#,kSJY]?fw(߆ }7|q蚷'+-_^x#пg񏉫?m?e%ů6Gm !WO+~S`N_o߳׃l߃ w6ԛtG/h?տ$xo񧆝7&9g>-/>$x/|7ִMS^~ qw_!~f`m W~R{?ū/Zo?~|Ǐ7O'ogx?_ xXh#_I'8O/E<_4Y~W~ S߉V|WC|(1ׇ16 7]8)o%?>~+^⎧?|=7~ >>xd/C:W@OI:'<+iZY: 4_4?>'׿j5:_oBE*xKEϵ{C^}E-xIƏ?xO4#/ό|1C@U_֭U_ֹ>Z>Z>Z>Z95^MϨUzY~jjgMʏAU~ZU~Z9gs})^7~ZCy[OzcG{tھmx{'o 4_z׉<]?̈́:Nt-gi&0.$|c^Gsq}=z_zׇ}g]C_qZK}VZݿl-?Fq*Y9Zi٭f켏m܈>/?\M~Nh~MOǩ?K??gg=t[[:x}ygBx 3yrGc6Iw ^zw|_bg<9~5'M>Nib%Qs$cΒowkWU袿̜~R_ZrޟZ-?i7G{G'E#O[д]&|?}Oַfg!?އ?*FO#?7cr+럄߱Gmŝ/iǞ4?j 5|`, t$'Wl$`V:ֹ߭e~-qχNZ)B^d,I oaܻGEOߏ_%o|wğį>:WF?J_? n\FyWڊ2 T4%^ە.*G5ntuԃI5'B1K0UekW}Sy/+IԾ0+Y' K@'yoC~8h>b#s@Je_ZO8L.T¾ֵa,}ox^׼Vkk/ў>^1O~<}_Uoψց¿AA;w-ͯ֯"xR*yTJT񏴩NgߺIb J)K"xcI;$G^W]s eOh_^>f{ù: !|9cx>O@kO~fj~%g? :ixl1?⦸?I ;da~ Oy?9M~??J| ᬿ'0Y,jGVVk*j :؊&kFi9ԩ tK19.nu^noܱ]߱ic_(?g-~>^t s?<?I|K o~7&K FOßmOm3_^G|\B]L)񧅾xpx |?06D*﹂~_9QUڙ[K T*+Fn*•Z4+ӺTj5J1UN6\-1c}\M'i46v;G|,t|*>~Ǘ_Of |_4Dq h"A|Wxx׉}{+?xwu M{?>|d?{U#?m4|RH<I/ |Cx>2WH '죈O6uևߏ?<`+|e:04gŕMU\ʔRR6hYb*TKRU]TT[t?gdҏ~k(%~8?Z~ ?fY_^c⏌zTx=xw'to x#§ƌe 08,?_%*]/_+N4|AмB >%,$,W Jn?jG c~so|a=^ %F&X+S"ITq.*UW.uRK8SH~_y>eR2Wv}lҲI'f;E~|Q\GKգNr8FU?lr>\RrS}Ԕ[nݤN'?Jof$[ j?Nx5919Om[mV>#W~.>+s]wJ&@v9g˖jA jOW? ,^/|X?6mWOWH4 oC|:  H ^y5O2xO?}G!]?e]^3_{5?n_myCߨ&OWץO)?S߃5}?'47]o]|ҮHgM}qgv6Goh:u /ZW|KEkkߎ~!vw<k/$S_|}_!jCX|'ej^u\s]9d rq|$C#Z Ӓ^իUU:իRQ8TsreRO<,o}/ٻ`5*$x/7BcWYui' 7x?Q >$?;Tϣvɥ[®qgV)ӆ<|U5'߻ggUFk yH>\o;G~6?:g?|A#x xħxǀia oKا >;~֟5gEG /[px_*D6#n3\vKE*r4F)8*0 QigY/7כm+zXm?؇[;4 w>!~^5ռ7d@Q@ ?~<9}|ak $DM?N\~91_d\Yʹn7pw59n/WVֵW߅5*J>u__[Ox> O w*<; {€1r׹?OB>#j?i> |IO|yş_l?hQh ȷos|_qwEeu۷|'n?m߶ſ7>?~Jf[ /|h~2x/<%ῆ~{xU;-7o 75|)~~=3|W7@O؃rٟ_J)o/!AxCz?ݗDx%c>ߗZsq~:B~b~?_?m|7%"OWßǏд 8_-^-<\XįGq+??[MzN|Umwx^ g~,J;љE#]~y,]/D5oLCe-^YD]xCS?Β'/ĂnuZΫQw8JuGuG57u֏֏֨sQUifU_QرN;_>W/>رxÿW煟CW?קgu?>=?~6>?=¾['??ƿ|2i-'bZ{}jg#Y׭4xSOt]&ƖvEw~E}bK:Y T줓7WI_]6}?Ͽ)^hJJW̤6?\?=n??5ͯ~_Gysj /#N)~N4xxmkEhmvO+87h ч5K~70g[pدeMx  3z4߆eO7>OV>ӽ?!aOW?MC0|A="^н _yY_z?+Ԭෲ<12l(85MY+kMҪiinLj9To-Gq!4,t{:CЩ(tK:u]R8LJ'5UUyiƛmAӆŽUii+֍tzPٺo#YΞ0?uGĚ{]|  xw>ee#&*&Wt w^'bO-5?~#pTS៌  x!xi]ܘ}Vj  :~|kRߵe㿈3J?g0߄?k|=aOD7;#7[^?mW,iCOq @A_ ? $k'/??dߊ~ ?iOZŸ >jYKE s[^8_H䌡e P)&=uo[\t5o |A/< j6nG 0oJ>ץ)xN# aTZe(QT}VVՓ~S[^^_5_W7|MGFGCVv ?:ȟ~#~W'ux?'+>YF x[BkѧSAd6\? U^ƍ)ʌ' F}ҧ'Q?OKnOSe).iruVz_~~/4|3?b7|K8[_?-o^>x|+`)Ȯc?w_O٫5?3&#N[sUtOH?oi|/xÕ_EsfZW_v/'#SᎻ!~|KuxZ7|?:Wτ@*>%%[݂B`K?Y5>"LDڼxZ=N!Qq7<0hۥ:t*T9WSt/oQiG7i&}ܹەxl|u?ÿލP~~/ z>x?[1?:c .R?k#Ě߄|e?▽xv隞 ΅ ?1f'&~b7 cx_^߰//J|Ox>?~ w\д rpn-]?߲?Oٳ?hmG_$Ǐ|A#AV״s^Lȿ s39xc༎X.HfX4]|&gz1᪴EkFa7f784ԤJ 6j-.tm]Ӿ#?>!m֕ZFw_ |h<=+k)Wʾ%x0F񯉛JN|~>6$hڷ6_* Azg>T/| )'|G/+4n 85~Ծ{xUQ7_x#Q"T?c 8hݡ*Tdిq"+~9.E|<!Z?hE>sI1O/ ,sKb0JPKB cQ84#["YIAxUx ͱR\m/z 8ݶ5{L~п~/~_MOVo{¿?e;/x^hZֻ/dpg|] 8>`W`KU ~Ś|iÿ\|kZ/| FοO d `- mtKI_gQ}< ԫXJ5N'SB:ERZtbӴssqQW\nNkg_>ѳg+gS|+_>ς ӿ>|"?%J|Og᧊tǺ1GDRo xd'@?_$i_|6>Vѡ/lQx➽k t% ⟈<71DvFm_xo™^wq`vg\=txBWQR_mų$T)JKgTPW\,%<nx{ֿ"6y6׬=jڇ)6 KI _}Yh:t?+;x>"q'$S2v}_[G/xk 3zOZ^/x?xȺF['ÞO_C ~"Go64]#=cO/w+ Ŀ*O lv_ك?c?G~߶׌| _KxC  xU揯Ǎ{O~_xMŃGnoUj(kǞT>WS ż :_USZУW R+VY#ʰiۇr-Il媾ۨ]GZ/mjz+žiᖋuĚ>\įwM'jట-~3_O=i:HG_CG]}GSxC4 q&@Lֿ^HX #s_|6C +m!-!3:Y-Y7pJ%hÍrb*TR*nWwVJqtb1_[YyS+EA[34si~-O3S:M#6|Yg&-#~=s/ xwK*c"0mًmOxG[W+Oe|u 4]8Q#Njn_xO O卟 ~uN~ŷg_L?>1$ ,!Z+/?-UZ2=?UӿmOKÖ$xǿ >W?wn~ yn %.O._VU?EW1Ƽq- UGNXgt\E=mk-?G6ׂ񲌳 Q_R#ύ~m;zƯMᏅ`F4M 9_xcoOx3]@$Q_Gho o|/_-hVz扮x`߿j= `x`^U b}TggC: ,(fySYԥŴ%NP)aE:{u%IEM%>vgc^3T~W}um>/68?߷ǟKhO]ig7>?~g7t|p߈'|]"7e !>|ZG5gmmGY'+%>Y0 Sk8/ |NOM d+/|,P~ş^c_ýWdM y|Ox˭&f##:'w;~3̿V#n<N3_>~7*~[~gguy.iӕ(IK'uN-/ϲ> ~>~ڏ W.+Y|AѼ{ei^+Z_At AvH|a<9ZW3BӼP|)4^%Y|dܤ<V?k?%~^*C_/;'㿀;z^/ۋ o|!?q|1;ofoT|U5cxCNx~|ex4 tcah??_ozg[EZ]kä/ =&ժp4*gՊ9 *X,Uϫb|F(+EA7O:E^7Y?V~ҺrTUϟֲAW?%WAljS? A?V KgWlQ?s%ݿ?9g7ɳ|YUoVkkO^^6?O¾+x(\c2Y'+FϢU ^8Qmۮ{.Way}vJw碷)g}~I?G*W~ֿ?b竲WmeeH(O/y~Of߻omNb*sb&/{/AB?O2h_J ]%o?*+sJ9u^T~;=L.+[uݮ;B^[w6}myW_ښV*ϑ#<>{^W9 +%9{Oʯk{Ye{׿?u楨x;|/jyu-_k yEzWj%J9F٫쯱m wgwYSygҳ{gwwf?x=軲[k}!W*xʵt%6JSuugZ{=,}7ۦrgxsٿ|?je4]OZfP}+Oo,@?U(^Om>M}iS]_{jz a#,o_oz}n7?{[@Ю/=bFέaH%qj+\Ir'(9$'ҖMRw[6ީN;?JmY 3>?^ՙx['Þд}E}ktM;OꚮyM.i{_wzl[.ݣֵ۵0v:u~çڋϷ0jOɦŤ`Gц4!:~ S85c<:cZ,S+=e՞s<$յVqZ%拣o6隮t>{_XڞϮAHhVY[&hZmyY#L,|#οHʱ,z]6[mwg'#vVz]k++]G-?toO原_i_d},?ohز T]}-nYKe]V}6q}zΓeyyh</.n`mnn&z_iE>_r>2|A+w? Kx'?~~>? }t'~#K4_du8}[C_c>??,8cr~T.-mdݳ?iKFl$_A/d~Wd{_"6:u_+/e Wq^L3S[gg4WyfXߟ֭WX@bX^WZE^jPsW^ nu=A7O:W?WpYwV;gPMάϨ~Eq*\㎝~'Zk K½bT@, @]xL+ž5ymxR¦znX{ S7ac ۻ߰hO铜W?Gn+}OǽtVOGc-]<[MSG9'Պo~W#ךO-WK#;}|O|׺x?m_i\Ieּ63_º:W2LYSn/o{kViAw,dZk-4}æz_O}?sY*t h7> ~}I6v^'?"Ҿ2k;-ȅޓ{;?>\5R3)~Viw?t?<7XsVյ ?_Ç{^"/H0Iȯ൶a.|>xO>5˿> ÝSπF!<-dW\ 2p¹p~' KOݵݞk;N&9;6O(^j׶k#~1[o|EcRFqDJkrSo5|uCI[OCԆ3QUFyb_v<_l~_2[ |y ?ֿ$ds~zOS[Z&~sx'O92;5×՚v{+YZ=X|wGєl/W# lC_ڭ~w-oC>߫Fq8<^lŀ<^kڻ4Op|6kx[WԵy G\$<-2?+=ܩۮtit]/7xł٦;Bs:m7;8~>_5>kgy՟-gdvkhP@~-4L/m-"{;kW.Mg?_F8??޾zg4ֿ~\G\)༫ PԛKߥտ@9O8ϋ2O3_ $|IȊF'xR_huHm ;hu_ Q_+x*'nu}\m|7*V[DVU$Gvhi!_Gvl?=C73Oxn9ֺE۰o/?Š_ܿzwWPhR]ЃE?_ \1B_lkxe̲O<O?3_O?3]kc~CI/w5ݯz9R]&_C+lwoԞt^5wPZi&_C+,?+_<sk?(tPկk[O/(_.,=Ə#Gkqs_^KkxgWW} iЙ} ikB]?`GTˉpH_9Pxe̲VSwЙ}4g.?ӿLƒGz$7-V|?!5/Uk_Mݼs5BQ_[kM?Pl=*_h_ |}%/˟JA?}+{ƯeyeMքesE)oXyfp32ʊqnVJy/#7Y^/̷?_k'_w<̽~ ~a[?N1k>sO x:ଓ=emԩJW]._^W <2Z1Ҏ%+$$?\ͻw͟}ρw?S̿\&#U|F~˄0e-m}ϕ\stz*o?2E<@aQ|AO2m^ߏ4Oe}F+BOku?^랕R [y^V!_>OuDWxv?~M\U]tgOO(_wDn4Ti]7Uϯ}+{}??G|a4^ŸD?܋#SgjoL9uwݿ>ǿ7տGaA_2F!ߎkNkOdSO=+;?<붳z}?::5OK ЯB៟Ye4?O?uMfZ|'ꞹ։>k牠%?JLVG~Tu\헣4U}_Ӷ=Gכ=Oֽ\-vۏ7G>}{OK^~ߚ<_qSM|+緯>kޯ[8߯~}yQT|i|ȯ~X|/mn1}oTk=KG^ޟ}y>}Ӆ;Vwx8O?j!]i~1qǯT_3@?[Ug_(qkky>cݿ-C?ʶ~'ųS]9GOץtGp~og~=?V{GNj=_7E|@si|x?\OU;gOZz{_-WN~_O?ۼנ|xW[/W__lzT'W 7Rm7˭f x$ޗc%ӷʐqSڿH?Z~!k׾Q>k?_F~ߴGek_|g]^K¶meh?۞!YO1 :%{ =d^_v_x,2^cuds\m-դw??`o?/|IZމF5Myub-mk gˉX"W N+W{[D~㏋: 3|#r~ٿ^#o @G9#wHדZZo 귗:qujWyUd"ņ{|vҶM^>3`>YKEN|IXW{DokT1~?No+?W暿|҇ ?~]/>ǂb-ԉoo367v4c??4>_U|}vj3x/ xa_[_/cPx#jnχߥZw"z:voW5~\ӗsڴ'>ߟ !oo=s?1Vzz:ۇU?zZgN\fH|GO_NWj>>W=[=P7#}w_y~#n|zt\__?C֯pO_LcGWi^5~qAyӟHQ?/\U?Su_y>}=+d.{=o{~y=z<o^og}9+?}utsO^_ֱ/Z~wy>?w8g8 _Ǥj=OּR+Y-qv#QF~חj_׭Կ?j:~# 5.?u뒛ݻ}ҽS]~q7_*]=.z&?<,^;o?jЫb?o>G# 0{A_g?O?o?QI~z(4s>wJ~{ֳ| hnc5_/ϟ.g~>o>v?+y׿YF{=*RRjrQƬ*rSzY3eFYSUNNΝH^|wso?{˕=0g_CXgW7<[#g&M>B4n7đnjɧs&BO|Wѳ4(?ϚiYu; ן{z҆緯máެå\~;åJnSn)'.>jA)t\7yqSڴ?Va~^?O҆ǟ^yU.2 +rC%F/ gZ/V͆}D֔0q ׯ/QSO旻oo[[5ocWcj`*?cvwwdg8EO?kOJ{3k~G S"vߍ4tq[g?E0w0h<垞;_.{/e߱"3Y~?/Q>àb?~~ɧw=zZ*>?Xϟ g}9?]m|`>36^=[" v9ivQmQֺK=W6y=}a?hOʴ?C1\C{y?vnN_?.G{tsoW_M<}JUG|GG?~&ϳ}i_kt}S'>/|[fkALǮ.Ͽ⹱=~r_t]_>_q{[g}.׀{}ןϭww?yzۼZ{9s䡾_aqqD~8??y?u_۟'X|>=,7O|+'RWjSߗX[ZcO}zwS z~u)_޹+l~gs뒼˟Q?ϯj ߟQxNIb[w6}[_ں7iC$OkWWO(4<5c?]3> /;#U=ϧҫy }uGoOos}[5{鹥#4oǷ7i~Ǔ_L|=o x[tk?vvt:}8rnk6KK7'X5oviunj{4_jӿF3Z߃;{u+8 y#OcKH߀<_;9}e5Z487#$$i/P,YS}RK1nV-zjy9u9ڄJRR%)INqJ˭މáO~ʓ8Gz3׾9k__/až0 .4YtcGׁ d_ $gwUdYP?e F*VlgOV/9xj'fNV洶rQo>+Xl.q"C ^-Q?*aaI78VjRUʟ HCxg<;z{՟<{M7&⧉Zxhxg(w^H_<6$FsEr?k&iVڥ奚U[C'ZRF<+ɔdW ~wpVwᥘcW"{KBiY.ԒQ{_ggd}~]nc8ѩWqJ|xjWRW+KԌ8)AW3ϫ^y5+v[]o]=M/fC?zV| k?P[tfGY~y4y'|gwOjϟ?1W7տAw,5g ͆}wG3_7{M/?~c(?«}4}5_/I}!Y??ZO_~׬?~c*םs}[h??~yߧ^<)]?~zX׫׮_iy՟~z(?=&COK<{Bק4o^WvK+oRu4ƫ/'Zee컟&Z?Ϲ?9hk_o =L_!]^~Gw?ެϵǯfǧV?Ͽ8= Y_?J<x'Gׯoa֬ -/|f?}x-_*^G={} ͿU>ӧJ= q,.;yn׿ӯVZ= wzeV;u?ֻk=W5jJ;9,}9ֶ}? }gt[~.4}sW=?Lm]?׷4v,GOU]?ǿQm?wkM\Ǥ;ױ緗vG]yA}?z>x+-\_srYw7>5_x?S^O4W>[xJozW1{:ǧ^fmVxv.uΟEmêki}?z'9M{OV%?Abz~o7ԧ0CsR??NOy9?=zo&>_G??onoazz~8Ͻzۃ?>:?s K\?k}&?ϩg@ӡiCCO!{? *|ǯ[__5EuOV?=*4N H /?~c({x&?oJ|\V}??k??&_MW#B1lFld\G>$|0e~Ж:.c~ x߁MOaS^]->skm?]:}}L:||j.\:v_z[{s."zH+K4T*# On>,t Jxfdkt"0Υ|E"TV6 Ƞ|/x\|KN.u{XuaTk5t`:1Xںoo~?īz[>$^oSxgZ`ɷnvRɸC?>xSjceN#]g;M{ӊR=/?yާ?Yϯo_j_; _j}zNƍ׬>YOr}W~??Տ?7YOs}[w{Mg/Q)<oYף?_7{M?~zG_jB_Yע}WCm?G3~z<o\U_OhOk?k?пƹX]~O<{Bs}Ww4qu|ӾZڇ󾿐>׬?~c(?¹>w]Ϳ?7i w>yūė'.?+x 8Ȱ[^۪4xY˶w-Ob~0O-oO_L.~~^0%Z/ι)oo3pE](]hCNl3W3׿ˡgZQK4}?}sx={}=:vU?ϥV_z<5gs:z~gOVqQwן=3ڏ#=6?ӯ^?w-{՟c/_f.XU?=qzcCVa]5gq?Cx?ǚ<{Up( oZZtW?ih=ϵy?[vsXm}\ZVh}U?Ҹ?zNy<gw55}o|~?k4}V~:neQh{\ҽG?}:q~5^?矧5Z>qy~dzg?_oG?#QGŷ}}"Kе~u?\VgVz~_Ҷ+Nn<YyѿEq3j.ګM}q_*W"ɶ8>qt[XI YoH )Eo߾d0t~_z(7U>OΊ+;#ym^؞wÊJ(nH p>'ErG`ssW?${~7UŠ+Ȳ ›Eߟ¬>o7oѼƊ+ hO}Ee}Ag_4yƊ)g>Zdo׃#uU߿z̳7W7Y|+9?WxGN38/ ^=|_8KI߯j^KHa}ֳlgʋQ_˗ȶ:vV-_:K=?Ƣ34Q^_K돴?~1˯?L.?_j( ĚH7\G4Q@><)zdңtϦ}?Z( 9aV?gޠGHr{( 奕fV~ 1׭4By{Q@ٴysm֣U湷.ǪEY;YA15~Ez;0F,_:vǽPjV~_^+eKHَ`zqEXM0FM=;4FhOEg:O䧛n{qk4 RF#򳍻}4Q^yçI M.xIn=9jaλowٟExA FҭC,ջLQEz'H敼kC'9T ~4Q][s+qy"?ʊ+1]=?TS˜yߟ|>?Ug[׫x_O?~c(?}FCi_KZ[p~՘g?~??{Z҆~?_ҿx yiw?}<:Hg?_֔=}w[pϯo_j0X&ݯ.[ݺ߹N#zwFiQU~i5gU袘Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@U(((((*^*_~UUrNݫ(7or= ++KÚ&wD4.u^q=6/_X^onƌّmm2m۾C>/kOVcz_F?.0ii?V}vU+\>z> >z~-?>;vy5W?^i}۶Y^Y7}~z~zI/oYO~o+ʯ_my_U_?~c*6i?f֗t^eyv޾V,?>;vOy~_ַ/FמY±!QGzi~c+_/$tDw0q;&q5g}9+?5=}#ÚmcyHWdnB60 }[C?._n̽|c~z<o_g'|@seX,ռ4//5kIλ _f?| (|h>W} px/K&B -2vp9'zDߴ]kv;׈,͎h3z(#۹<^ ?kGV+L^ݴlzxL+n^oEp_g??NGL/`ċx..w}[λ{O>>g;Zu>5u6WL\5Gkze׽կO3ͭʹjϲײ> [z+8tk3g{v׽|y_^3֡/C{hvc8 9ɦq?A_{b^1jMWeTW)wOZ噧/S*꿟޿m{eye2OϧOz͚~~fwv>+v%vҚ~~V}vYO^UiWC~e{?F fi?J͚~ZiUq33~o> J??͚~ע<q ._ת4oEfyG?1~ע<q םYOfyG?1ۆڧ@$3 =1<&q5 knOWnKwѯoOr%="~,?^] Ͽ]%ȯW˗$o߬-|F乚V힓}!U|q9׮G? JrZ`cM=#EV˼뷯 M/?~c(?³|s? բs? բs? ??~c+7? <s /?~c(?³|s? ??~c+7? <s /?~c)P?1yYQiyG?1P?1yYU,V+3>> "GOƏ"G?JH|EqtӚ&oz?kBM_1M ϯNy;mkӷF\j O xľ:.hvΑxtͬ mː3Ag~19im9Q|P~nOU:&=0C~y}5 >0x6>TޑzMNu$`f } M7 tsśMdI61_(_+ZWƫ]ꚕ}?uWW_zx/.:1ǥg}4o##߅ׯϧWڞx:wsD[Ad~/ kVVbhC ]zsWX^#`P2O(uD`M6OwOM67w~2-Ԍx_ϿZjZu__>htx<mo\|>}?ƻcxެE,,{W%5Ϸ^粷.۞f+u"jĚV_g4?? ;קO?w}G}Yy5Zi?Jif:?XW/sJiq۵V/>_?Zq-BT;O]Ez2e?lyx[K~?#<{B< k~|?ϑ}.?i}~?xz?1e8V%Zߣk'// __u1UНyx^|O;8^vv_+?_? >?$_WC&,ʵ׽~lW߷K<oUo_}¿G 7^¿G 7^9+#\ vem{{O>">o/nOѾx? /g cjV?I_o==|/X;1w_ ztH+/u+wo_O͸on{WIg}x=BcsO= IsVFIaN+ftף^Wzݟq>mg\ͧzi{oϯ1~z/^^z1<:.;ˎMh_1QLϧֿDa8vRw-k`wmogף? <s2wL?h'x_Svo{_]>K3 ץ4t߾ϟO~/jN 'j/*}_%n瓊fYu]>ף?N _?C&׿-[fvDy"}s?yߧ^D?\>C&?V?]|?#'Z03{[t9>G?O~¸B7?MQ 6^ŷo?9Uף?3 6G+#xc%u~syߧ^?+#xc%>Ѝh~z<o_?>Ѝhc1m?7oG1mWF JOׯ/W#&Q $x_jOZ/WF J 6@y4y ?O ? A~xy__??$ D<{B< k7Пo ϟ~y4yߟ @|BwM]V}kϟ?yW/ >?$i/O ַzz9_q___ y}y?8k7eyṸ>uisğO9$ҵjW:?/R;_ǯ5х+'[8M}~{V$8ٯn;$?>ߗz~qX_Znϱq?AFckcsw{ _QO^_ֽ{ҾKXe//>o_l=z趿db~]-|?GѬ_?!޺_P~+?m{0-J"89X|oyz|c m_يӚVzY|;$}?5^_jΡZv?o5MWP—Uf+~gD|s׊}▛~g&3釋NK—Qm/9nI7[GzCO4CO4å[Ͻ˿۽mco>˧OG|^*~ov~'O9m_g?qNw~0ҼU|'k 5bSU5oBq̛'yKcV"_ܟ5N5Uoݯi8SO{ .Wu[.k^mkFx5XԵ}Ac~zUHӯ= (UR9'%i95 -JzbR~])E+MZ-t]5dM?;o+Em~ܧJw^EMQxOÓ<|(g/!ߍZΩ|(v^=t"A-h;K`v 5_;\}Ὴ%|Qտx{UsxS/CF4DSUK.K0pc?#OaWOFG*zT ʭHJ^VcpѼZMsE$ݬI[٦jۇ?LчϧZ֯wRqdi'fUzv gYzXvNZq?,IOo_)8b;jQ量o o=ȳEW6o澶۩b|N}M\kϵw9eM䰌:z#׭8~5pOQ[;?ҴaYwh?οXȵJ-_OEW.C>gfg{g5{g2?=?T????????~o_֭U_֭Wav+n ( BUz+8KQEtQEQEQEQEz( (*VAQwmd?$??znuw9}%jV*+ľ6|+&nIOn{mW~ Oq6[Zٯ]?z_ڣÖO"6ZOqc_3M?a&g 7m:3bokWZNer|:z_lOOރ2ӯ?"wZ< f gݯ?=?-ǀ*UWz^Ϣ1e[ WDcixmtG|Gv<|@~źi"\L:đ Y8L|b$iɫ]#+-W p<')g{<씔yboMyt>IOĿj;$Xd/3ߏ?Oǃ/~!x6x'Vu!;wz<,c@Wd-5!|qk&|kZMWG<~~ڶ~ܰjm},-[Tm5O5g@_r̰կȍ >"΅t{U7<,\")(\UeNmާYz?b5U3=ڭρ?ڿɬcŹ>]IP]^ZqW_ s#>ctW~>"|+|C.?tKuO[~"<p:G2Q>)3S;+M,x ĘxᎫoƓ ,G|{ /[~׾(R؟~ _ßoUǀ|+x4_%|C⯙#F^GOř8aiЅ*X^#Rï4TUkJ% 3ex;K+{TtҾݭc/Sׂ,"_h~Ov{ H5oD <# Cy8 MJjk{ះetK:|9x@濿Şׅяτ##ĥ%cM?&Y aZ~?~/ռ X׼u [@2E/~#*f3xq9F=:/j&U_A|q' G#  G/0Cs\Ӈ8cfpnMxX“T89F*#:5+?oB3%N4uag7_\wNOvڵnnUfmW&5c?l ^/ iW5>mȓĞlj`fVͱ3|RѿŸ-}-v? k)_4Bonz?%:(-?|USiad  `Tx&}j ա.'|_K JT*ӍiJ/: 0ӟR8'ʓm[9ZIkuXn˿̟٣~~L~+ou_G/KOWs|Pԩg.{k`xi[ڿ쿢^gxοQx]TfN$?'s?ॿ>%i?i3GH.mSP?L{BRço|?X #o㧊>*)C3O%V6<8u gÊ|)sHLjrGK2 a,<~)U*aFl%!PKCaR6aE '$wNrvq;)6Inw<SWٳQ#o<}9<|@66/ x?-\|[~_#x'wς>"&;bWI,qF}>|-CH#>f/x+Zߌ__7;:=cĺ/Q|;m @,#_ ?G 3'fɼ_ Q ~ >'|%i_5=3|^'d%Aσt# /1?l- }~$Ӽ iR׃7K|9&5pH<+cA|Wda(kl_{:5RptiBP览y9b"e([FqOcnOiuW2z{(ٸ#tgП_U/axh Wuv^] U\\¥^G#bOxËoBa'؟|NVD2Kb?}|}xbǿ*~>*=Z^xӡkm9y_27~xvL[k|RŅ ng̋fPa)k߱~7|Aд߈[_ |tӴ='Ƕ xYxs4}<; cdsP d096k3uAQb.'ØĿU<1u}ω5 hK - u啳RMF-84mbZn59ձWZV-9*Kn]iGk[Yj=}V_?8/mVy?z~Y~[WA/Y_B|FϪςtQ{gggg2֭U_֭Waz]~pQE]߯7QEz bV+((((+EQEU~Z>ZlT:cRƏ|?bx#IOk|ħkō[An>K|=}'^,16xo(~aώ(qk]o'({oT'&_޻'/ ؞/>x0 |X?%{?>*|/"Ur?}*_':(uׄ |(ִ_ȧHUogt;COGo/KO|yῆ?u> i>@#" Ly^C??io|XS/ |AI"]#g?gp]߀>}]h?Ux[=Ǩk>xGᧆlk_~_Zo5žs޻?ckiA'"MG'<LW(M\2zvOkx {ʟ"UUuur|2b } fOCǖ^_/`eL?cםTqNK\4浶y˧wmkٞ4_Tj_{?Z>%c'>>:Ѽ# 3x[O]'pqץWK_:Wz<x#^ >(eb%J|57|F~/_/ÿ9O;?h%׉di<+??XiY k"o~ 'w^0?#~z~oxQ +xPewF <9|А~ľOkx|^F0R6~[?n?uĿ x y_CeYƃ/ ῇ.Ɵq[Zߎg17{o? h>$/oǞ< xG|Ikg!9yeS 2KjW\2xgEb>VU,%JU)beF%qQ.׵|C_!?xxƽ/m' Y|O ?k8 ᷌4ͼv?/b.'/ڋ/t??ۣ'k(|:|/1~=UHօIPZQFJrVg tҜ^_7¬גJ7ZGUegZY{?f5)o me(Փ7ej׿hw)+BG }*ңsxG3[{jc^GVxEpHk sYiV"G28)Bx_%C NU*)bUiҦJC߄=81[꛷,=4Gۀ8}C_z6-I[R\|u8~!ך %MƯ ^U.?$6)O '$jTMGs?>/~)(|kmK]< >9xuBxW%~8X3RF )#*~ .x] CIż-õ##tքQyU#FuJ)(JI4^êQi95e}^hs>Gbxǯ'oċx{ a7>xk>9'^ h_E#<#HR@ O() ~Ğ0ŭ KﮏxqKN|(|g *HE0q5J: 2j\S u2uy8X1r2II)~m5Ѥ](z[]t?86v0\ kA{ixzr~_ .5|a~3wm_;n; >&8FvF6JH^|/qNz{QW N<dsM({]R1x.c0qSqWNڻ?&:Sn0s>OW䷈>2+/5mv A|Nҵ+N?f>7י+څMO?jO<ho~& σ^"|#ҼS+π |=ׁ~(Cw~?Jr-ʠ8sZUcK+3^fsJs*'JINiT|N[uv٫vvQeh׺jeΥGm[@?_2T +>k?W/t-/OĿ:C麧s?hZ6GOq(9NHC ÿ~؞,5+?Wlj|q !<0 O CM> ?bs//x*xfi7R%S7oba/cJ~E| -bVn=Y%dwE~u~?<?g>,k|\>{ύ7n?yf(4>6~&~ ?g3A|w:u x`xW7_xfMžx*A@\Ҳ>!YVN.jЂ):NQfdއ}M$ݤm}\lӶۧs(Ҳ^󘮿?*Tj_kuew/ۋTU_֏־ Z+玟OG?__QI]oR_3Έz'Wk魣>|^tk^χy=0}^?ButĆ:SL'\++'ͬ{-އ~~4?Cź񽖓+ċsH9<v?kzN/3K? xʿ/' q/ױ%;;;kno<ع#pjIlwkKuDo?>-| j^$ռUuo_"',52^iC~y_o'DO_%L )3{COٿ'\nu~}gX? I ?2G͠|?ށgÎ  mOO7%JbzůcO_E=o]?+ .?}[_?xஹ}z 5o 4𶡯jQŸ tkb&h_~\zA6܎O&UTW1?[5N*.WN/쬫ڭv:J}&Q|/-"eiFVqYYpk>/xc?o&NJ>_4ƕ 'IGIDž<^8y?5~̞' C^1}u챳5537ڮ㿌@W9 qθ><~zs1#0ԲkZ TJZ5gȽ1ruk:Z_j;=Z_n1}o5xCB_/i:Yo'ckTMGb 7(o?SGaߴ߅*x|05&glj|];!YFuGN''uT.t\FخXE.x{++vhr0;w/Ex@NC}xhzx#|3ER_T| ?i_Ϋxͼ3Z^SZ;*qGhg% F%nVp'Ҡ=+_yJUӖ#V&jpNI⚄_ NTJ**4iՏ"9}֍s$jҕ~7jwO { >19?ٟCnqiB 'JQqϟ?a߶Gߊh{ſl~].%?~_kx[A8<1o!a">~_ޓ?= ҷ v 8#SGVW¸Ln!:xRd{c0TɎsׅ. WY(~-OOto*ޛK+DŽZ|2G# ⭿Wv[Jxso +B׵?KI'_!SF:,l3%sm~;/Kqʧw$ϟWІErXǍ|g~!xg^ fCPǯ4x%z4S? |*?3SG|aԙ zSǥø2Y\uV)JVx|D)ԯSQtT*q-Ɵ:T4{9˚޲zFVM?x|y͵ů<( WAq ҿ=৾7Txc:~ t}săA|Fuo]{þN@t s:_p>F4ISdBU_7kkdOOw2o\M+[E}tv޺ }i_[o>D> dѿf|K<:+|J|MēIOc8!euv?ckw'~?Gşzn _zxt6|Z>k=?z+YSFju)mJ4էRueYR-9P;_ *X{$+_oV?/ks+o]Wndd?x>$?Y oU?&dTO3~! j/1WO|"mO*-@> ~xo:'0՘~k^-S.1dSnz Vxtav)%FUkWR^rRQQii;ݫ&vKsW7~ M8vxu<}9?ax 1(95鿵|oCCOO4 :F'm #.pq[nI=?*ͻdWe!e`W~䟴-9M3éJK~vm_"Mf/>x+ǭm~0|GG~O|0(|-3;Aci⿄<] B' 'XuE|n.b e&f>&OA?xZѵOHko oľ.2c>3o*_Y/[;k{߁>5>;C|E<5 \3x9XA9Nl'(Y⽖a|g ߏ h8m |O|5y)?ܲ^&f8<aT$rҫBT7wEӍ qQbNQY|&neZrn}i}V*d-Vwo__(G+z~?{g5{gp}Ib^֏֏֏־ ^E(S (*WQEQEQEz(*|||9Z('/ĂnuZΫQw8J^?P(=Oq[kCQMnWs7d-- >]s_B|}~?|Fk0%z4_S|;s^_}!_]>vi3^v>/ע3ViSӷ"iV{[mc??4r0-m|Ih~e^7WԵ^_<+uM6<{/Oo_~0 `k?G[~qGJ.׷cg5U_#;]9Z_ksºϊ?WS엺M4_^dx92,4][Qv]x|=2vRMVuk?__81^+ {?^ omxY:몋ffox\aUAbx@se+o{k{lxn;{j~yY('neEtznk[xҿO$rOOaO7;}v#_ X,vqQ_ NId꺝@~w 4Y ';ǻ]->Fo˸Y%mg}w_*q_d:#߇5oGM_-/Ĝ]wۻ}{u+ߩaQ-/*TW}y_ޛq|3i`5O:u{5;\q 7K^[YD˙y(}-pТT_~o|?J_ GjjBO)2o{}5}B%jt??Z_־;”7G5t$?//ރSU?*^^~h_qξ;”7SVBRK۹/i}}?z]M)+nt}{}2e`?_ղВRf᫤%??^kZn2N%E_?~}^~_>0/?Qs/lVBBJ 7]bNI]σ̢T}x_.- Ook)C_(?}% ׷.ZݣwVX| d?:+G7.ڑ?ۭ^ns׏돇$ ՈkxH+2x~Xu-t峽Ktvq<T+sQ}MYf<?d>-rx5ہ|0g3?# ۊï8?yG7M/Y9%}lOwqEi4uf~MYK_nXxſsxqN\%ie{?KK|+>?Kj_% OIf ]Yiݯ{n^+4;y>V~|| oD/3̽X^z^5w.?}~Vۺ^oZ緟i+^lv5./OG?|G=T?o~s2qV?SRO_jrrUr/ʴ|?Ic >Ѣ7'.KБ;-@[Q_$P_f*4IYb>[C+_ RwV>c;+ Q RwV*_2FԞv?3̽tTW~}~' ?ʃ^ʲ>Gs,_KO{Ww弿^^&4.s̿k cvv}U1|/8_MG5(<|?Oֵgְoڞ^'3[w~?'ʟ]7ROPUag h\hό!U ]#%zP;0g_/ֿܕ o? ҳǯ^x1Կ5>;<>x>yO ;K?֗N4z"Xi^"[+d~>qSڿE0u|/_P"=ӊ?_J?:ח/A|EZ[S/'p_º^Uj}̀ :᧊ u|~}Y~ğoKn|wŖZM'\?Fx7%2 pƏ+`}3}?N8\'3_'3]uQ4=%k U?|XDr*j;koC~xx&g'{7l쯣}~[Y~s_Կ_<|Zv|RkoڶF+ _)ITϞmax|=Ůs?7]wtq_[=On~kǞ\,&}w}WgK;Yafvu޽/ | ~ZJn??5g=t]#-^v 3?vWu3RE?V/%ߟ b_U]oߟ ࢬQ{j?.eG֢W'ռG֢QGռ/?/XyZe]W=_bv?(Qo/]SyMPh8sZ|yKnnE3ǐĞϧֿ]3YGϛ_^m< ON?Ov{t?5S\N>?_~|שc/Nno7=zUW&|\oP1==?TZ´m~oz՟?g+o l-?}KZO;z'Q}w^_?y<_ƿ Vg~.~)[q#Wd|M o_jWs!{̋/cU _=W e?nǸ'r+q=/+MU~'g[س8᷊}<.sտ?Ӻ~> o㨧!SV&_xV\<@IсW1?~z*s IN9W?x~sx\|7X? R;Fd0+ Rk袞[}mGx&0βuBS僋izo5 7{zwei <#Oi6o&a?\_2~*~/f? _Y{}֞6pn /Kx/F|C CF~K<ޚ}{}5׹ybF\4Hÿ_+s +K|=_ 9?hx'=Puj\3+5~(6sgUH?3vt/h:`{׺HЫ:)ᷦ쨿p/|/_lݢw33zgYw_/[B_/(ڝQ\U_*W?o{KbGտAw,QUyU?P(?L_j{yGאu~+}gYpܚ]n~0x\+ҹI-S5|f~K#SϷ5ƿ끟8"\wog}.|DsxrKZKnHux?˧ ҇} Ҽ;}{/k~CJ_^QqSN^l_\VGO|F:Oqus]$>#}sGտA?>?/CO}k??hǷֺK=sϚι =s?]mz\?+uq8:tszl_?zo?_+u\Z{=W=8]m{ҾxuF>ޝy\Nkk3{q,￧##?x>oz_ǷWUg}]mx}*l￯{ zD=5}+_]$3k 7_*!Y1&O?yΟBοy뮼7__1]=?TrZָ Gm?J5)y?ֺpLyׯ?{ZΣR/ƼX~k>_?Ƿ<?ֺK}?ϭqW+Yׯ)^ Q4s?Vn>_+1?JOZqtVt#χY*#?']3_8vgVf:~EOYצ?* *~-x'R(w?v㎞ϧz|yח~o~sߋoE~5ǂ^,`p:p%{1{ek*C>ks ]Oym8ogx}<6B~U ~B?h~3ּy/ k\VK¶ŧYV5xqƲf7>f\\O)-]41&⬟+!$|]n|֬k_'ÿx5h~ _hѴW5qM&y0ɹ-W KFg{6.ao^ҵ?f7ć+3__nK ':xM4Ӷ6?/[s޾X¶ơ\]kڕ~k4יC ӕ[iklYwOsşx'խRE%&,fVWkGwW؛ M+#oLUb'x8>>O#Ykߟx?Ap=u"'VC<}C0ŝkzȟkg~)M+P/WiC>߉G1_5_ 8Y_Ov*ojPj?c/{~ Դo7DmQo q,ºuK]]<{EM2[d|ž5׾/|K[Zk>?.]oAh;8,ORI&? ''ʵmYZwM?T~@]9+nzׯo+n\̿_ґWx?T}!gs{oºK?ǷGڿ|z?OC3OΏfϯκ?fo>|i;'>>fk=s=>7o_Ԋ>z?kuq|u}k?G'~_揫_Ԏ?O9k.?㞙|Ho>zmOW%g]s-7\WgGk7\nk4}s?}ƹw/gMz~_һm6x\.>O{}kOU8uw>Wovm<]c֡=yV+@s}W#y?N?nO2>ptQjSڻmJ~O7?~}OYbԧF?oN}b{>v~z}FO_uuOqWy??_ںMJ~\?'W/{;Vac_z'Z]gSF?Jҋ?LsXҶ>o^=Z8ϧ>Z ͆sVDW}W~?Ag>w2s-NqQ5/ 츓 I|=-uef|WѳFO1ߪv{[k?+J?3v|9c=s_OV oku/|r2^)_軸3%M[gC~YiCEieϿ?ƏU.x[k~T_\5h[6??5 o_j ;֔6?_ӊ(Sxx?<@|J0q m%hwyi¿C/V_dW勲sWKnl_OgA?ؑ?7"kt㷜d9 oZ''-?W}8 <2/#|NxE5%d]⭥4(~ztR%%ihiy_Yyߧ^s Vǟo0VמUĚ}5_Gy_U|՟?~c+7? e/jV+}5o{M?; ~zOjϟ?1_7{M:~z?­y_TѪzj_^_֫SĶ?Z&Imm/{mͩsLoϦ?W?^ K|{j?wTmniͯ[?ߧZćf?Q~z1s|;.:uoQZ_ڿwq6}zgGG>h}Lgy5gȸ?oÊN!_=\u>g~?ҼJ>o?[pDgG<Z u\qGvz_jog?*GZsL#k~=k|G.?yt#5< 緗vGB=#3\oǿҽ#M?#zz/M?_^?^W|gQ{_?tsϛ~=:+Gsmo|\ר5!}W~??^?Ϸ?޾f:#^긆#?ֹqX^Vw^O_?uy}W8}}xlG}^?O=?cX?LYnZk}ߟZ='/ԧsW?)y}.ϯڽ,7Oy8?ⵉRt?N+ԧ<}底gF|+n8KϿ::~# ԧ<}^?d?۵z6iGo?nosyOJ7YȟϮ?h>3}~l8=n'0?Z<#?˷z?ZHG?пƈg<;z{gm3k:\Uk=ubiAz~~zXg<{~O~\҆~?K\{$\z -oX?l:q&csgYe ~]^)=~vx_}Gn?׿V \x#]/n>Ӝ_^ӏlNk~|>8e|A'smkZ`֔.%u>#uV/c]LTD|-Z㟈<{gï^(|'.uim^o6x$_gAhO2_*9E pO:\5JE)ߗ>'iZI' !SVPQ?*aaI78ՍzMV:J4Np!|3ǯ_3ڬ^/S_x2އc|gO խm|4<2,N@$|Y Or@~-GomKᡥYڽemh)8ld8/wy_Vg}W+-|Aw,U?}V|qOiߧ^yߧ^<q^w}W~?G?c?I}!\h}lߧ^V43>׮-{Ы~z~zhQPk_jS>><{B>Vԧn^_{sNԧn^^o}].EihM4T4j1~xS?y-",GV_WW?՘g9=ò|[G?ڭwwGՏ>'j~ u?=j7?U0֏s G.= moLQ?7G /?6nyzu_#}uՇi{ҴCDOunq?O^ u/]d7 c>t럹?1]˼ULHI=jٿWjvigZoӧH|G/hsoo.\K_[W:?ZV)[G=.>W^Ok/G'~^ţ߾?~U>u-z]>^=z~|'|gwosw7U⴦xڬ=&ޥ{?pX)?oJ;~}3]^/WOO^ҼX^8D==?^Ou.'!?9S z~u)ǯCyӽrW{?O5<NʽCuo$3j=?ҺǟQ]]w4^޾եi?LٰϙJ#ӟ\;9uh8Oty>sޭw?s_7C??ƿKo3 ?WR??{ZGoGMm;A}I es۰^޾y?8+xr7G{-Yi5oD^,]7=C?<}⛝_e6-I$';;z_|6/H5߈EӦh=1X$ $wkSa.<]5Av6nYrOx?$y_U?GM}$vQ|n.up/Ì1%irq,/T\]ZZ>IrS.t/ V׾#:/ 7'i"ٯυZt6#k"[xu0w+5۪z߈5_!&05cU.y@`8vhu]C7B7?ooJV7x\3|.-+e*Mgc&=N2|DFPJckM9*%tԡ)ǟמfߧ^>W_Ͼ>icK?пƏ<{BOׯ7o04*ߟ3V<o\U?Si?G3~z<oEpO}X~׫_5{MO_y5o{MO֧?³|s? ?=&?1kB>>~ _%}{M8z'U?g?1y\U_OXOgy_R7տAw6<oEcy_U?o{M<{B$FYc5g?x~qN\{k/8"ϞqEwwů'7<^}|?^jHmϥyV֝^< X)'Z˧s:{@?7󞿆jZ}(u<YH~4Gl{@ Yy?qcZ{Y~?=5gϑ?j]Vl=hg=žy?շgJןƹ(qo?4Czgpnok{\}|g ]n7?8X>ӵˎ= WhZ_~{ʚ>MڽGG<\}sWNň_O4rֽ߬A<\Oq~+\/Z?}Zyx%=4}W=ֽGG3x?}s==o:?#qzz~utL?Oǿy1c;=rmêq\zD׿V%?$گf?f#]R?W7qtPs޹?Ly4C?ѽϾ*k|aw,C/[PcG?nۋ=˟~h8Omq1su%C'_E<]@zi[_Rh#0ƒ'ID=OQ\|3'?nC+c?~Q\ >6S~'췾{Eʻ~/*_ErGt Xw<C/+=?ϕՊ(!޿*(k.=}F(nH h@~!Q@7oѼƊ+˲濯<Eߟg>Z4_j(~H >s3y?W8 QEsYv_p 9p,=Wxiˍ6.)oIS>c[ R[S/Q3{_p珥rk/2#󏹏Z(TAveSάZd?–&i1Wp_Eڴ߻Y>~?~Q@ZiQ@ >Wo_=?b?Ejb%;cK"=eiy|z˥P,??=?^?OS[+8gnOVtR'tt~{EuMĭm3Ku M H(<=oG Xa;}u>}(.;0_?G:ws^IBN:yw_I\ںk-clmQAntfy-2.11.0/docs/static/img/uptimekuma-ios-up.jpg000066400000000000000000001312331462047176100216560ustar00rootroot00000000000000JFIF``CCO" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?(:((((*yxWVϫ_Ԃ*|ni_M?CaUY+Lӯ}0_4C}Nj~qjWm6=&VBU<s^&ϸ~,&W{[ZkXתO8_.kVWa2-tuác?yߧ^fNwviǫT伵_w}F!}ONӡg?yߧ^<q  io?4oV!QXU; kͥo~K>~Z~3JV+Z߶W`QEQEQEQEQEQEQEQEQEQEQEQV((((((Uz{<oU* |A9%Q^o֛Q]@Q]߇ZgJ'PZH$ܞpWo~>:ށǚOZx?JׁXʌocWu|4|EFގ] W_^+k]Rl5Q| *9p˜sX)%Mr_oKNE}aن ;_g-|6|Uk hڎi! q $H\!S i>/|Cokx čju-NT gm $ Y7|5}G +)=}ԯ}ts<(󾿐|iWn'|'.wI6^%CjtNAB\a?湻?ʿ4[Y5Y? ii?S}}?{X\'Od?? 4_j< k6i}=ew/4~VjOϧOz>?~GeyW/4k7 4z48ڿ3?FTY~~V³fOO8_sN27> yv~/Ɨy5~z+w/<{B 8ޱ<oG8}O?/?:O洡^޾ߧ^C?޿Z]}>VypZYoӯ=knq߽q0~gW/)7ȹ{O uOKVz}?:ۆ}{zWW`um[f_/iϲz.KTQE~|QEW Uz(^EW,QU Uz(^EW,QU Uz(Q@Q@(P+Ѿ|!o}JYndLA;QG@$*9#i~ϞcxlmQt9FYzψ诵/f xN56]k&,ߧ^?g?1y^׹UkBYq<&W_c_J?»GOzŭV:~A]V2x*AA_yaf ZŭƯhI| C189QFNG/ ־fiWG^Ϯ;a?h]n}S_KS7wo?80? ~Mo@xמ1?_?MLKo†b%3󎣢Gj] Y K OkkG>v—WY߫X[JW=7A>myRÖoٍ+Oոfgfo/W {e_q{suusuO/="̾ ljyi7 58BKk 8}+sŽC>,kW+߶^fgp{~/S!ӵ{ ?hZƼK^jweEdBVmׯ_ױaMUnu{'(x_} N}-\ bIy5(kúe[l WSO=RlaN+q?A_|w>ݬ(4ۋkZYYZƗUOgM??{}Z}!_ϙ|FW5б4j޳~~}W_Қ?f?>;vOy<٧WO;{|~ezy-?7u~/S*N?+6iUq=7E}OpoY}]??YQ|eZӢz=kBߧ^<q O?^_ֳ|q ¥/-xd~~C?zZPs_jaOZPqqfb>=]_uiB>%V_wݿ>ǿIg}?;l?~zIg}?+JśŽ7}|~<_ݾwGZ󾿐j?g/ҼM-_oN/ 9ZknM?+>Qf?G34q ?g(Vf?G3Vo3y?@^S+? <s /?~c(?³|s? ??~c+7? <s /?~c)P?1yYQiyO?g*}@|q ||x~Ѷ=.>]}9 7? Q7'ӿk_`g?@jC{ӷCqcב흵H?qo[_nlwƾ&Z6hvصs]/iBNvuv.pH|9q^nU4믟tg}^~Z-;Qgu Wι)2FF "=Giv|;i-,Ŏ m1wpT |jچ\ujWwnUExRunSֵ[߷]N8g}4o##߅ׯϧWڞxC{ 6] #MNVPÕer3]4ߴg?xgMzs[X~$$:u1g~ >(k/X VH|_>N6w~3a"翯^wWG}oO/x?:,:5mm,egg0'5M}yL}\V[s_)5OzĚGٯ{}JĚ|k {_qXù?}G}Yy5Zi?Jtkb˯kySOOݪYއxRpUnk?hu\ϥJNךe-v<^._n{#<{B< k>|???i1{UABvorZ㧭yw| h/? *?N VWXK4n+jp7ymS?пƪߧ^'h?&oWC&bYk|_ǽkm|~z~z?P ¿G 7^:*k?P ¿G 7^.xog4o> Zӷg}U_W ;#_^?'x_T5}{v8Vgoc?^i; Gd P]·'#.Zk>1v< r{?3i?lk|1A4ooyU\|>'$9Ak_Za8e/.ݵgg)e#9#o+h)?\?#_$?z Vo2T'2_ևaWGztا?_~GI5+#gz\v/ƸR}Oqy?G37 $xgz/Q $xgz/W/eO6_)yK_O?g)M >&»{BOI>ݵZ~ZdAޞ~o}G5G >&}=V\>+%}u;Œ5Iww/(_?N^?|3_ t<,|1Mz+gYbo7_}rt}5܆돧tw>&?xG@)zz?&,NEk.Wewק.&|4].}~ojO}ÿ I4b={/sZP'_G#~zzҿ>8\?*rI^m6g\{=-{j| ~z<o_>?'x_f@|BwM_|1{e;עϫ;auz[k#?yߧ^A? 5X'x_Opx":w͞N+1N[igv~xߧ^? ;'?ƏWP N1V鵽4VOVE=營O~¿B?Mף1_z=+-c_~xyߧ^?+$x_K 6^ŷ HOׯџWF J?\|?&+>lqף?3 6G+#xc%~syߧ^?+#xc%>Ѝh~z<o_?>Ѝh¸B7?MPO~¸B7?MQ 6@ף?E $x_jOWF J/?пƿC]|>C%??$燞y5 -7Пo?< h/@< BJ«/j>l~}__ /j^l~|ߧ^?~AG '^-OU[ӑ4wٯ<=?q_|9?/MK{%PrgOΉ955˿_^eV'?'?4cÚΏiZ^i.w~;W^'Z&<>5? Ěٯ_^w3X_Znϭ&q?AVtC\Դ:{ /f^>i_nVO2qϯߵ_C;-u׹+;G?鷟տA֮؞(;^o'|?̿hoxUd9qpoM6-5|gO5-VK6k;$}?5^_jΡZv?o5MWP—Uf+~gD|s׊xloC0I<)ee~#jͭuG^?,=?,=$Vky[pϽrW}>3'77R_De_B^&> ?D;uۯ ~n3)E\Fzkӷcڪßڝ\q7$>w<ϵV?ĺ/4kk#`灐O8<Qnwk&[chc"3沲jo-{oLy*;dW?_u^G.~UҾx GHN::% (辽_eR4 ʜ 9)Ir5+6zX|VWpRVO[oNltU֨縴M]j巫;~[袊lS]N漊>?FlnW@sg|3>ƝgUоxGV?^=մ2D` N-Iٞj'gs+|R|WOOVV}CuEWaw~<QE%(((((*XEPU~ZU~Z9g5{g[ygEz}?tڂnu=A7O:QG+׉|lWMͼ-l#~Q~O<\siyf:Xׯt<9o_$?mCe ?¾f~;vs ZswnU qM; |7}i5 ş?k3_-}KZVmWn#bokWZNer|:z_lOOރ2ӯ?"wZ< ftJ^~{şKYSN(]mnZU߲|1tҼ6[x>#}?]xЊePU$"GX$p>m㦷;kk,ѿ߷楢iՅ׌͆_fja \?W ';?5OاƟ? _xQ|KXc 4iHѮWĦpJH&I>Q82vRjڽr߹p R2~~g/JJ"|Iᯏ~jo]4FPdƐ2ϳρ>ߵ<#~߶߈72ûѪx_>>|D:uf_8U(Cpqfz4đB)VN(ʂ/c u(sbnIT7FXG,"Sw^[յGkX^?`߇w xz5O~Ѻ5A(t>9?8>#iqO)7+3| ~:Ǿ?^/K4_eއmǚxo^_)YǖM&Y a~>~!0acOмGڿ{9|CLOXf+xq5G {15/^+)MJ~ 8tG6^>?>_l 286j$^ 1 |=¿@, SwC]?V4ꟴm_`o/l;;ǎ|Ar\0~T$/'r?ॿ>%?i7HI.mSP?LohJXx(?<~>:x C□4g?]Z/c_q ¹a漌fw^cY8ZگT/ ?o|$N9G_gxZ>"Q5TX;?_2HﲃτQ߈>hd'OkZF7-'i:_xs q8_x(:?\|Kw5K*1$ՏNu1NF/ 18ZLw/8jqa[pY9ac-.%RZq)לj]K5<U K7{[yhړMj<_t?UnOVۚQI/$mࠟFu>2վ h,34=$PSĞ.| 70c ^˳dkW4L75*|eXGZT:ԫ:hJ*ܫ gkg7N IkN+^^󴗨;i G?gڋKoH֋ (AnʑY%WG~׷M)7{CK;$ićB xtW1`F!A?gGjglzW{_u _|UI?xvOK|As4B /l- }^%Ӽ |jR׃ x'LcG /~Ræ5[2 ?充9YBt!JeNx'*VYk R 2;JI%uRլӹB~UW?~!:5_ ֿexUt-WǾs sÔ_N' >!?BZz~POOKW h'G'c z<]/u /b|s:mY}/>_Ycዿ|4֚O v_|=k^:S 3uܡU\?e_o_&hu4AXciZk[@E <Ƀ&SdJ9L=JQ|-[g*RoΝ<=hIb3N<]Jf+ as8pǝ*_ȟ6mϜl'0OY_ö[|sOEuϋ+'>?|y.* !w O^| Eߊ 3 j:W\д,fM2m? _Oړ'<]z0<%2 ү)ech> |sӴ='Ƕ xXs'4|84/p'!2N1N|!lpFi![1S|7|HU3EXq6&'ѩ:G^Y_8|DQOFܢpisӺZF+SZqtfszZ׷s?X?Wjg񸮿?9NGjUhk}I?EWw~9Š(TXb((((bsQ@UjS r|1xGsT~?5ϵbx#VOhY'=5 ƫ|Q_ž>}ĖJI͞Wo{/>:Dž<>~7[4=/FOMKhƼ7bxX]_׼%cAT(~K}xKI{kG~ ?߉}o_S]'x<Exo]OO/G%w2[ğ<96?|? |A/^ #Oc8w_> |eO_ooG}GK`ֿQ߆xU۫|(o"V >/s.' 3U֗?IjB?O lO/@??gzc [MC^'ğz^>׿"#3}UW =x^g?пƾ\w0ׯeo]<^qmv}mt_/-߉ɦ?O؃2g_=Ex c?м;95 osg +v2mz *bݻ`.i{PƮo_x-~~~<#6/?U/7ĚΉgO ]fk9o]zـ'K'bQ*cPo gK׈|QkzlԵWUF822yUQּsJ\'խ|R6z_ :g 9_IY RFdg}KYkoy['jaxs̿\8M;*-լ+iZGRW=Si[3Uд[%n9N33< "Hx{J|C_ƺnھunZP*%@\(-5_'/px(s66r$zdry\_I?^ѵ}?|hzՖ֗$ 'Zcυ1B#4`m$WGTTRIY+՗-| of|E;y5.\KGd&Ŀe8۪k~b<)EAO/%lWUs0uK{;5.}n{/398~+skQi;fF4U_֏ֿzTךxea?l}W^j$7uOiJ?,ԎkoXҴsGԴ}sN4MZVu;i> wzC~xKt)7Hk~P[ ~(xO@$|x|2|V-0v M]|f/ | O|Ih3▇Q|}$O xI¤~*;mw5 <ˁs 㥃ٺJT*C|TƥfJNGN*&bWJk][ڟ_>0McßXo? ?!'^zux>v>mGljuH}o(%RWiٻ(o3㖑h?+ +O¯xsSsx?𙃑'7>Gl~ ~(~~+sIQA|I~њ+Q*G<ONp> c|vi(C)O֟5 c]H.lEi+NwJR(T"K-Yۗm.v?gDi5_ (>~^"qi<SW/,MWt5ND2O6?eo{Qu__|~WcLZ|vC?$|T 8?<3F4*n .RRr8IT8sT#Vn*upEʹԭѭTɣX{cgSs#g}8b,lM#kSc!^+?1]|6G~; j^ /GW5wd|+E_Y ?^:舦EQ.j?jOڇ4/>,+j@cxaT?nς?~^|~ yτ׾#q^9S?>( Ǡ~$w&GX?K[2Q_.fTO ѣVP^ c ʬpԡAbcJC`ya%umyRIݺ[Gk}aZVm麵5 , Jgs?._g'C>"?fυ:$ş_⎿^'okϋe|1[8vS ;L2>x~xDbk45o+;joDo\[Zi֖f7L99y#vچmVm/1^5Ϯ0eS ?ý_ă5L,ſxg^_xW|! sNσhg& w^1мxM"/{Ě*oxygfUOW7TSS^ saR\T14~UcԥJx~Y*򮩪3ϰxftmIF;|ەɩЙpk+Vt ihucYt.þ[\Uzc?ʾhT~ϟ f_@/? |/'L`k:`urٟ4_VW{at ]{º_Wßa @]GK¾%`Y>RR\=N^*G8VUt׫R%{XIg9?%DݔrIs^--RvhB'UkW:ߵִo]z*ub1BW9o Y||V{/da~좧H8>obH{n_|Q,Nn]v[tX~L>h*w[:?~Vڡb u{ÇExkBB>-|?=g+Vt |:֍ د<shz[# sW/@i|kּ%Y)=6W  R2nѪL0*E~tL_bӌԝT4ʚ:4[n1N'ɿc|[.O~ҵߊW_{^ä6@u]<~NtPrSr~4 $՟_3mU}d7[[o׌ZQz<5{; ~,om7KiKA~ Z h]kmSǟ|W|a>.x[Ğ? w{Cݿ뺎?g/~?7k^t}!UmGAy|YrW` x\&jj]g{&+<j~=e'w=[~ mρ_߂cZO|>?gGE ׀$G?:W}q׽3\Arȯ_*_imovZGƿ>1Y/.kǯ'K_ N?D*8<{$?kt|@Ҿ߈_I׿AP4W o_bF!~Nn~> |o_ #nGxlUφ?!ǟ<@>y|7;z'+>𞋤^iO_кEPEPEPz((GGM 7>թV'/+>~߇ ϣQG+Mʠ^s ?⯅ WD}_QY]o?= 3^??}>W#zOϧOzW~GW3O*?1-6wl{ڿNϖ2;'dt^n\aN=~Coj!b{|xIe?E9$xG[m* B_O+1pv7Dѻh請W?w$̺;Z]l]^~_i5oj4[ķI%W<4"_/(voف^y|XkO|nŭ_ss3ƨ0`cWzJҮ<orֿ$5M@Я_n> e tv~wWѦm[Zx r,^W|r([{WGsmV>196޽Wzzuc/=t;v+q]Y©wzyo<~2$ۇ]ݵ_->f..m9&? L~×>#񇄴 +\֓aߏktD}O?ڟOzM}oxlJ_8^ʲL8 g̠yZR\n%g3̪yKJq_(M>Xt>?Ly^|ۮW]S MrtR~in_gMJXU5cxƛwq?]9C UaW+u xt}35_A-G"6ox|w2 'c=qۉ!pgb%.s ДEMʏϝIV_]`kpqc+'}IVNh_ᮙ=ן<o?gAxw>ox[S?΅ђ|/7?1a7\~|8> K &W ^SH|u#Sq]GA1_e>D>\Mx?ُ e6YXpO I98ձ05:ݢ5n/1qkj<ֻәYvIngt~ ]i/<{/q/hn^(ϥx| ax[k◈>!|)Tn9঵ۻ-G%W3~2x? 6x #]rkO rڔ*Mtp%.K WBUNU)NmRrF5;tDž0kͳsKTZwI6O}|(|W [dښ<3+/9u< z귏S3Oƾx/Bds %6^_? tY>[x~)~)z39?kgo>(@̸i:Ow^7Õ(xf.UZqj8SZTЕJձSuGE._UKߴTtۖ^nRQVSx"#3?e?_| y?wO\_|d;xk!ح?[; ?8s56 ?_ď5z.W@>*xw^"93TZe3z= g|!|DcW>^gH] / s'93:h9Ru'V"JX'B\]TО"eN:~_xe~8LWWJ|*/nܶmNQ?>?7OEm1|M\Aς_OkZyeُo&x⿉]DSǚ׼@σ>#9,~߳gkQ/ix -h_.s<+<)'5JOϥAJ>x~t5i|.@z_c`8=˱ xs5UQZ3nV:$Fyb?Oǂ^<>O>ЧVN1,7JTBOI{rPV|I++Ti~-\⏈%7y$Ljw?2qW>_p:q_J_gUվ |%R^^]ƚNH'=IjςJxB~5xZ5yj# :|@t3m{\/|\IUPF0k8όq'TNrqB1Q((+(좝ܚr8*&Z)'S,TJ*N)߹w ?77cğU@'_*{/?|_x{[y>m"_d2k#o3ב.bQk8xqfY4dA*SqQRNpW䷵ZtE5Cq9C*=OwN֞u},m?EkS¿@?OE(|,?Ox@ ÿx[# ]v6?ࡰ_LOwfokm~LaCƿ|{+u )x|8#:N; CŹn7vQQ^\*ҍ^T9g&/fǚ2N>wbMs6mߙ].IC~^6-sϳZF? Gm_?i/C#F|5D_ ~?W1h/ m  >^ +kx]$Ǎ|<1j|~h/~Min.x|Qᨾ7Zg?xt[|qZ &R_zQ]??_ AKm 6vkޟ+|TGO u=#Y/ e\1@KF|W<W|~_:u??A |K__@$qW{ j??jW`? ?h?f eσ?<sqt'= @- 3&wXW_?<+KmiPses [|Zޏ@Oۿ`|E믃|+>wO_cs^?.1_kϾyD=}>5iZl[rXE$-.ߟ~;坷c}ĖZӕ^_|+ ӧ>1, YݴJ}o? 3ܕ']ݯoTk?ڿOw_z_%#s¯-a?M`_kL>,(Ȳ<d֖VVKwm8|=2^NvJRv~?G3mo 3࠾ w-:Zծ~&@UIffwʪ 1 ~޿igoq,5ùnmz-L?>M>-|owëo^i_>ܑ?E+Ƈυ~эr? 8d|]q 1k wmErM%]W^Ep? UY (>)._O]©'Z]G[V+ |1/./?ƾ_WNpjI;_f>0({{W+MVK[TW|=>u_^k{ǿιůx ĚYl>!H%܎<0C#) a_;xxJMYrﶩ>e_)qd|<,~{SL`Xa_i$`㞟_Ie_z7풷ve7BPOg>|/w:q%#ͽ>?/_>|>5<$O _nd+oޗ7 5*>]ߚ>~ެsϵ|u N%/?᫟˜5]x\&_jک=.#L//?5X?_GҦ??u5\! ?e OjH_)[q_CřJ6 +ZK$wv=ok>8T0h sۯ\X᫟$“o?co׎k6mijuk_G+n'K&ksJ+4y>jH=;ns9z@$ Տkxu3R_uxX=oIL߻T^JTv>Yᮥo1?QZ7À2;c?%'ťgo=G/qI\65m;W<*$ze<*@j#+%|]/lOOdK[$?_#v|Lb^gz .ChIim}{vg0NO????~s~[//Z0޶K_? Wo]8?Dhxny曞x?Z/هෟi~+a1&sk[+(m_Ҭe?p?=WWռԋ_תϹ*|K??WUj/>Т@?#/z5I#.vZ>R zܯ>gk(M˟z?NӔWѿ'o?N4oI[bFԞv?>jwo3fI?+\ W~?gQr[MXy#c?o%"'/nuZ'<s+5~G~in8c_ocJ7_*|~ۧ _KbZ=?3zuk vyx/ۣytOO~zw_?kn^kxA_?ϯj/l7:auBޏeJw{ lߗ-g[I`Ӯ;ǿcV,ſn#ӱmg^<֥u٧?OՏ+[pCj1y^om_=߁o/,?ʼO]n^{k?׵?*O u/ xLZ3O_O6I}ssV4+Rel:Z's??/{Wί _q_>k_ SgW/_-#t8WKߊm[m]z>ѿ\.>x?!^ <՗I_hfYe_~CungrS O hzk8G㎵~S5ς<u߇^HQ&]ǒeG)«F+öovտ(_ׯw^.;N+q6s<8Cٸ7cge}?Ϡ"?~04Ӵmw]G[xյU1_hR?JJ|mȿh^w|[-uK Ş##+ މeKs^=:IeX՛$ϵmt[Ya.`՚ 'E΋vznݿn6W?eG|?۩EMӫPy#»QEs}WD~2EUߟ ࢊ\U?S+V(_jt_pQV<G?_p%zEYv_p{BE]~f'\ݷ+Dɿ \ ͟8g-zs߯_gyO-=joG?ZxWx#{F-zjz\\ux} q>7~ï]~G?\O_MLwn+歧s}qS}-5{U#~Cj=ϑ3oZ<U|8Ě =h??5tG? ??k+ԿՏ\F}zw~=xx}Y@jxU~k=s,k_q[>M/?M/ OO#? ٟm{w8JSw[?vץ>x[xač?,vM_|O o_jWs!{̋/cU _=W e?nǸ'r+q=/+MU~'g[س8᷊}<.sտ?Ӻ~> o㨧!SV&_xV\<@IсW1?~z*s IN9W?x~sx\|7X? R;Fd0+ Rk袞[}mGx&0βuBS僋izo5 7{zwei <#Oi6o&a?\_2~*~/f? _Y{}֞6pn /Kx/F|C CF~K<ޚ}{}5׹ybF\4Hÿ_+s +K|=_ 9?hx'=Pugues\ j\͞MV#`?_Qھп׎a?^M-+Nox}eG_%S?T_{MZ}6iE'U fEr}W@EQ_/תb~w (>bV<o\V*W}[+ڇıEQ_/8K??eĺSS;oWj4mtg&o".}?;6\s^K?ϭ| [pn7uS_,suN3)h껾GƴO|ICZPOsߡ'q mî__(H>ںHux|g???_WIg? 7|`}3g?q]&'|O\A}!gq{ƺ=TO}^:_7x?럾_ncz?|\>=Wo{׀U?>;?'YqIg}x=NUD3]mo?uxzug}]mxoϯ1Yq zL?{_*?O=nq5?V~f͚sw~f\O!]zq:|ԿQ~نyׯ'WQ^o7Gϛۯן.'<~N/z/?zu)?[WYO~y~lS |VF$UO^f?ʳ+_?^]>ף?~z~z ?;_yů_?\O 7x>0xyvQ\UW_wm軽O8Lfo |)ĩ$n>Z]]!oQ59'\Cŷ3\>N!^?*??!_E~ge^<|5xU~[AӬ+C<8YGUv.Sv.'ߏK qVOoՋ[VrI>^kVH?wGεcf?ϽJdO 3?榿|}?k_ow Td>~!5p6fWO1FL$7_7ou{s֚ϏKvv=Pc%<09,KԒI.º5iz[ qO oYIo7*pG>nXn$-0^Ïkt?yd0=}a6~`MZ6ingnWxq|q&֗4g߹Vo3y?_{;Zg?1YOk#\+;g4}[OB; js}YУ?Z󾿐~z+;Bߧ^Xߧ^?C?Uz+k0<{BG=&A7*~zZ`p7A+N;;zy~'7ᗣOob^6?v?_}߿_j\wџ^}V\e9JݵV3">Va?Zuˁ7_XϷܬ?-ꏡ?>ե?:U|OzV:_=Yw}ϟCî;oku[pcK_jUB\?lKA־f~D]$>#>O9?kk3or>|U𯗬GMJ,GpaDL_jQt=_+|G?|gK'ϱt~?VYc7\t5i{[v9_.gW :.}3JW> פhyc]W}!O?/]'|gU}Y^?{x~>Ys漣g?_֔=C}Jӛ?sZOv=O)?? ;7y?NtQSڼRu񞞿S]?^oO>Y^8JW?LԿq^os?_k[T|+u#ԧÏ u)_tOxG[&cOqڽe_ׯٿ\?NUi?U1W\ < Op֟Ǿ?=uz~A}Ghggz͆~ ]^3_)_5E?=_ u0ϯo_jz3\V}!I16mq|oOV|qT]VZotB%vg )FW%$C:fTjЩ*J Kgɤkj|߯xrzΟ1?f}CZ??/{Wﭾm,Wyǎkux#$giFrk#fInGMxQx2RQ/ 9fI/a?VaoQ5 ˵/~cZ_ vxY]츓 I|:ZVVzClAѧEs>iꝮ7 ~B_=Gjr}uj>:'/Ӛ^:x:֞!-]'GKW/Zo}l0g`{:>;=?¬å\c}׭?oc\˗޶#%F/ gZ/V͆q=MiCڬcqN5 {~|?<57 I<2i[VK[_>Ӆ~_H1Ƭ ¾)J=d ʯ%m^M6~=y5V<o_//N;r![USI;&[Mu~Y'vTԕm,X?~z~zuݞ -dNht3K?пƏ<{BOשHVOs}WO? eWy'|=&MOk7?пƬ?\U_7ij|??+ Ug?׷by?V~?=&YOfyG?1}WO?c?Z󾿐V<oY׫׬#>Rɾm7}?;_p?n:Nय़~j[9?i!S㧍6_ngkm{_¬k{z<WO_f}7e~䎲W?GҴ?A_tY߸&8zΕs ="W?g{x^K ~oZ_5tiJ,_'zu_~K=V =_AZG\׀êOjl#}w_y?>??mg?x?O|ͦw|g~vzG};?'ZgNֻ=sx_W˺n.=u[~?X\?쿟M7?.'ǧc򥟈sHuο}?}W럾zF~goz7U}>6_o?Ϸ?޹qX^]ֽnu;_cWֻk;OGyO+޳~q֪OAljSX~jS9GvדϷּRι^/V?[Z)~_.'Ia'_x\D?뮼>|}^ǽq7gsՏT|K}jޏf?^t^'K0_[v>vX}s?iZO?_ӟA}!WLU?9?}~HgHϷz[A?Ͽ_?ۧ_=٤Qa}1\U~|>sn}Yף?_~Uӷ=Yy5?W\.ëYYh'rk<ɸK nuP{j]>}OE.ߧ~ҺOxWPFt{돵o;j8ף|11xlj#Nw<15׆oj7#n|7🋼cA'||qmk:`֔>iZF顬V7"_/l 9g/ퟏluׄ_0ot> x GIyFQe1e+.?x |-,̯ĉ3F+xl.q"G Z-Q5 KԥԥRp|3 ?y>^?23Oǡao/^'NkkFEthrDy$_x { w\2N-[=˸.1aRyjA)/ R*OrTM.nWR3=yOi?i?|2hEg <qi?i?s[ M4(󾿐ϴ援湾OBߧ^<q'|yߧ^Ohyߧ^yߧ^<+ >׫׬?~zvh}myk?՟?/|aw4 jjOZ/o0QUy5_/|՟?~c+*=&?1kBZo}X~n?R3˿f>S)i__$3(\ou8_h}Scm^WU{jV| ga[;Va_?AI{j_QwaGNv*YQ'Qw?hϾO"h˼oQwNs.8|V՞qn߇Msp}ҴCDG]C0\A^޶׷]%`6\GA>yG_vz?<+=V ?=MvzӟkiWK>?OJ}sϗ=>SM~^?_Huz};r}W~?zk>_~?9z\yۚ/Fn =G^^s}[t^OJ\?߷+-\?Oױ:Ywzv<.?ϯ>;=W<ͦoר麯?ӎ <z>zo&>3GO?\? zrS)?S +n+MϧGoy^< G?}ϧZڳ&~;q~ Ug?׷AӹR}WA~)?.s~!˿b|=?֏~V+_j誾}yhz[}Oy ?} B曤xO>Ӥ +;/? (q۩v8wqw0^_־G)|,pyqjҋjI$^1XE϶7zGxW>ͦV|ts v3Lu/H&SfMQ6k.H*X3K]8Zf P|0s_Md &*7ЫN5NzqnioKƿO^\l~3ǶFՅ IX~ab+?/? uOEf?<qsF.'MkEm~6-$<9?tU#_+i^2vot9;ԋƤc$ωbӌԏҔ&>nXr~wIx[ƽ#AԮ~xcwiK7^:B+:܆6PVESε W!"8ӊJ#w9sqNsiFQ(:w=/<{B!xYWV^ӱ_V|sO?~z? ?g(±<oV<o\U?Si?G3O:_\U_҆~~#i?aߧ^y_5{M/\3=ϟ3o{M/?~c(?³|s?i?yU?P*e4}4}WCi_U?}3 =&ߟǟB٫~z<o\U/>V'^ aIihNXhT}/?@_g# um|fԿW[_'8RO|Ro.I筴~;?Ҋ~~e胤>k?_{_}y#5VY~?_ҟaϵZ?GTZ|_^f?(߿?h|~? ǧӜ1O={~?V v?z˯שw'?OiCG_ֳa{/_!GO}G (n<tW~?UďiN^0y\zcu\swn.i;WwnMq7p??ڃ}3kרZZSG?zF[?W9ֱ+^~}'J=Ukvc*F3/<c٭ʹGDzi^?zǷg?縯4s?:> =x?+>o_zV۾xsӟtQ_85=zOJļd}>ǜUi~}/j3EmJs-?Wuח߹D}{y}zo>_G%y6gkϭmW>z\gӞ+n*|z~oooh?<fۇbC[V#?Zڡ׿_O#KlWYv_qEQq?1чoO9?›7W?${~PC+c?~Q\!rr~֒nTQ\]ۯ_= S&?Wl?Eʻ~/ ?7ך(;_.Eߟji8=(ƍ4Q\]zy~8?>#0 4(->y?W5e~(˲濯<Eߟg>Z4_j(~H oտ9?Š+o𫛛W5eڭJi_EQ5ua߭Jw4ijr d*BE C(1^pbI%+}gˍ|eZrO$`yҊ+_d}f?ޟ^MS*ChcS27_E7ZxC-i?sŠ(Mfk=IEm@?Tu<Q@ ͗>\Q{WDh἟ӭP"G>?ƽEIO=CzQ^yzF4O^k/m\y2Q\fH}/0?Ze|~j(<=?I_/xº; >a~J(<6ḓo;=?] }oC/=I0v\.w0=8E+KQmos{ #Ҋ+(eoz_*(ntfy-2.11.0/docs/static/img/uptimekuma-settings.png000066400000000000000000000355761462047176100223230ustar00rootroot00000000000000PNG  IHDR]D9/sRGBgAMA a pHYsodtEXtSoftwareGreenshot^U:IDATx^ݍs]}q w3v:al;tvf݊ҵӤ!*2Iff0Mc'HVlB$Uym!$B0m!ll,Ʋdk9+{y&sϋTϹGbT!]`.Q̑뢬.(wQ @ HJ=]Pr,NJt&(s@N4uQ&4˯Xh%ڱp+W"ǯ̻`ȳF?{F-+yOCǞ^6iS2ZLGVĜѦ.>ƋաUW!r߰ڥ._xLEE^WԮ{󧏽{SUՏOUWD+ZQhK.HwQ%[R ?we]Tdrӛo]hޖ3b]y.Zbת0EzZEń&4]-l3ژK4% 8 Q/\Hڝ?O7KzBz, _8*ƚ Fquunvhu{M /'wN27V}z%K\yݚ'wMF܇{GVƿۿj]uWUfY.*,3_nFWz/^s#O>].D}2on<1 >흿>'P$hIޭp豰_֫cWkS"4{-rUu^rީF 7.ap@=gr?Zo̳'ڵ^7W,j5Qt .Zql6>_GϿvOT<\<-q0{2PkF|ubC^—M}-/V͵S`N45=2 ܱ7{u<̽溨{푛'Μ_芛o4-L/ N"?Gd2K]\r.~:zG}73E@o{7>%0Zbʨ tt`[|^ /Af/e5L;r<ыe(o?]U_ .*Fsj~,wq9TsŬ ~OZ҆dbB<|ѳ_/3 .&ٷwډ^>zuFi]GWj{[eo{ۻM=7Fg{e@EykD^_Ňٖy~r(4mƺsJC4y;[\_y.y0뢼)żwqr{.&&~69.{L }»5?3 0ww8YG^%2%k^u,7dbND]xw]_Fz&'>3­0wQfTܩ=bhbov>U}%.}uxSco&pyw#;_ɾ=_-vъ6wqԿƿjydG17_Q_Z_|hk<oo픉V2KvXpMuo{+_l[|ʚ-J]tyEl[ pjW17N\55g1^څOx-[+s܌<]P]Eѳ'Q>綣ѓ<_Կ>Gų{&Ǹgf{[cѯųFu}R@<'YީC簞E1o3&x+?O?;M9k>o%qv'v)&^omL[>nՂV lP/)wF~g\s=YtQ1mm\T"9m_h0.JmMjȤin/GI|G"/7I\*}ϼ/%3O5LIf-r𶷏''yHNy P:d{BZIlYr7mfREEOkӐI3Lv.fnz(@%HE"1;--ƅ[vՍ_޳:rZWF-)aD6OssFS7͍m2\ (ŋԈL5ET9MlsuQ׼W9#Yk.tQx53dmd x9N{wĜ;wNC6mi̺yI_Ⱦا$k&.*6~1{hI٦M庨H~S.*R鑭`vetQjq e6@fQ& I_=R `]А'5vQ$e6Ff뢍% ;E)#Imbv"Ͻ.*l#l(IHjMl#et/ԩSȐF$}5IܦA2O/@%=Qz$}LftQFQd]tdN~5IZ% p]MJ"'}kl&"ɓ'QDM%)R$q-`V. ىd0/$% ϰSynHHj5O6YEy9d0EWT%̼yҽzjtQĵD7CILQOUQRob+qF&86O-^pɥ/w[2ìysCKz}'F^=rHФJ?vQ HIZ" `.^:ϟ)@Wn]x=2A;GnJ8_,:]G tQʵD@..Yګwm3vtq۠@9vQ5'gjU(3ڤtǖ`ْ38]3uK\O8!"!"!kl2.>ye/g\M(~S>$,ҷV&(E]<}de Mw=;Ǯ"5<42 W+7?_ 7c޶aQyQ9֦n=v ߰CjnU> }x[=W9nl+9A( 4SSIbD2"'kl285uޡdsȵ5źP~]nכQW?{]|n態e曟3{6$6VǝUUG\9OchWvߐ/GV"D^3B͸ 6#ȰO` `I\dCEuM(q=E+89VjъÊ]G͜n'&cŃKڌC/@Se_YTo]GbsoK\;֙hK)SZ7wfoμtql|ǏGaDEC*jŐԉznetq׽Kl]ݤpfg^^w`.6 jv9 6 =gͨETz HIZ"[ R]zuT'w\lѐgoP%ܠU4Ŧw~?%h<=?OG2ECjŐEߚĆ7ߒ]56)ϓ2;]Qtd]w?.6'"YԳrpw㋮htQI0Tb HsHZ"[ 2 J}}rdfe&OM.z^*7E=k}:6#<2Oϝ;'1HS$9$q P9]T-1wNWO?_Kg5dWi3;^{7y;ZE\3wlKn91.&$% GMg6ݪm eNٵHu W.oWoRZ^ito\;&.*R `I\Kd@.NMQ_M]bd$uXy#!si+g.+Rl>11."485WVkY{&*qw3{vd#{6/ӬUDGfDũ.6 w~r/P]b['!]!T򞶷Ty nT]_g*39v`d{-+~^=nZv;6\eIES>ojOK;fb ]t;nvFw.y_ڜ?Zw>"%L5O6EydO"̳311a.*Cd0EC*VO#L5etj60 ]NEydDCb HsH06_=i!T0qf ƫzu;蠙pK)J.*DCb HsHn~t㰙 Jt]L;N8r|2b_P\e%u6I!1 I CR.nIM)AtG~4BHI9O.E]Lv4Ёŋc*@Éy)zJD Ё6~NJ}*=H = `]-aႰS:Ȑ*h?L1੽JvQK#Cd0ECb$9_Ф]TL#R/z m|:P]<{$ѐ! ` ]dhJBuQZ"1H SYr͓Iꡋn0]T$tMOݠVU4J CR0y}1#Ÿ ]t~ t %8EEb$9r͓=}w>n0]TYr͓=}"]}ď".8F@X]t:]t'q *"1H C&>t.}*U&]L0~`REht.dw>Xji` ]dhE?}REht.4EEhH =i` ]dhCp"I4$#Lf5I@w>pGŏvjͳmp%Ix+F3]:EtH#i` ]dxPwҵ,2S_2t@.ūG6z'd]l],wQY$tM=0clyQ^OiqAuԋfǩCs JaYu]q '/^njQzK+A쟋g}{zl^|=ފIj{-;?ңr&k|D7}hd0x?-iqtPǛaW鯎ˎh}m~-<8"wgEsm9[n[l ԩѢdY_|fQNJR-+DCzz!i`]Ɔ+F/NMUdOC⪚.FnWS]S^=btx6Wf&ÝM◼E;̮dmB_$Gd?!'ox؆4/~'/lxc_@.Zlٔ*u[}7^L(xFQ̤@qL{99eCҢt٥y:P7#znRt^k*;^!Wo"i:#r|yC g .π2v;ϟJmyK?6`}pZ~/AtIfg6oV$A挖`7)zռJ|]w ,Q٘-UZ_;Kg)Nw.ZK*,疜$Ru`]_Jٖ}`XmQҌ9Y{v?HFⸯZ~lzd#vfDϦcCoĿLS`0ev!eR5;edwu1gg"1H C,6xٲ7_?2HIMI&b"/ǜE.&s],U.cKϟ1*:zgKE}MZ|5.z쇋KK3Web]f"vM@[tS}"{t.E3Eo6_-56`@;Eh~m^DUdD%N\ْOt79] s]]徛p҂(()E}M-.bx:.u. -q+Iaߛš /nl&`-Vn_2BTH8t.tVCp"]8t.ECp"]8t.ECp"]f_ \v3oW|fsGҍ'&&Op)P$tq1UGAPtqb$'@EcljS"1 @qEcǑ_Js.22ABc%9EB'䇲l&&ON<C57E}k7hˇ{{"Q1~5g>~'W?CQFR߲O.Bd FQP3{Y9,P8So'Bt(ʐbt]d,MW o|+}pi?JD$&0ڵF ,O5~yk8%gΊߝBeCY$wy2qdtPtwwqɛTcB#.?QjmL%L4UoFDB,N .&O5%7-WwCY$#&Ìo]:k7cuZ':aj̏㏘^EۉaZL|8_ /5ڼ.aZ{~gѕ9+tPƖCdxYYʑa݆guRat.~e./otD%/1.+{󻨷97t{5G@F ,&~8b6;x3gn͉*7Śsc[>4G!L7_.!]Ψ%ړS͆=9̹in2f3ꮇ%%o3CYwy*qlr}'3ŋ #Mk 'JE[ (E(1{E;cg ,i>G*$W"dLI/K-%Hn9yZ؞TcB#.37~Krѩ!;xTնY5/OYےx˧15::C5E|)t1R=kfkk^G܉,ıa6wrk|^(-&`Aᖩ&h L|]T/3{p!>dvĿxkvѤ4:{רDoLű. [?V$0"1H CCOۻ>DRÆ3zK= uQVw.چKS8x.Fw1䇲0VGtzF+fNR7,lRrJK] –3ې5 .&Y_fu뢭K(ά4E5e3{Mt4#1]YC~( O+1lD*.QəbFL%&]%ߨ62_K]TsljߛEoKW֞.rU[?V$0"1H CC480eCYӾ&1<@M-+u @]oX$È#% I =tPO#1FƱ;qx^ܡ%lRrJK]67{SffH aDb$`C~( cˇ{_Ґ;Md}t77gL9.&νm ( z/c6[6E.?{j A,6d7cxIz~_[?V$0"1H CC]d0!?11yrzFq#K@EwS,66HFfNyc(1jD[koj4 yMRA/W{F"Q!?ER qՃ7~Wܞx)X݊.2ECY$/zfQ]l~(nڴ駟SiLd).2ECY$'%͏hwxU ]d02䇲`~y}3c.6?oGmU/vnFBse|SM#Q[.GB#^1`PQ,4ux'W?;z_W{c'샟=}@"17c%|Z <8G'1cGSuv7_6"tӧOiUm˷|-}"]8t.ECp"]8t.ECpJűj_%04*;RLCbh(vxۘ.FA, GaMpS-ZQĿ .wLڕxr7&^JET.v .v $-9|8t.ECp"]8t.ECp"]8t.ECp"]8t.ECp"]8t.ECpb}Ju\:Y8V8}'3.@(Y D jGf> \]ܲ7_.t]UbCrq5us{ž68**}%Y=Ш}Y_G3W,ӼɢPve|qTRآšA*1xu.ZX`z%VnYc"]KKbQ-rBG@锱sZ'J2miU.oEeJ]J_Tʾ9]4`GՃ,PF+V*WhWfoL-79ɋg{C~rM^~ռ}:7Ea$niR ^2iqCu\8ռC=C2R*uԂ (18}aʈ.NWƝ8Ң h"tCp"]8t.ECp"]8t.ECp"]8t.ECp"]8t.ECp"]8t.E֡Jz@Pɺ8V#@땰cxitRwqjzmJũѡJehy4X TF99ԑ>zy:4恥t*x96W^t2]L^JD#bp&jjnaJŠ|:ugA`dO/E47]^rAtv+QdBw\> oq] .FK漓VSE. bk:NvuT} uzK:BvєϛbF2}I0:h)I`|IupFy9 EŤ1"̂(@)Y}]8t.ECp"]8t.ECp"]8t.ECp"]8t.ECp"]8t.ECp"].W+}# d]U|M %by<55:Timt]k.2T42U&2W=]o4oQs yj2.ŭ*v^T?R38#C.˩E%)iRnDD{!`Qn-PUFsj31Jb"J汕(rwфP2fjIjuߧ/Ej%M /J$2g^*:C\G eջ&FoޜP~&8>\y/ev4~fH]GuԈ"tu'{0{:]l]GGE|t.ECp"]8t.ECp"]8t.ECp"]8t.ECp"]8t.ECp"].nTF M+k T2HS.Wn^hbEU.U*[G*q.]hW= {Iuɬ:8W/СJuʺ-澛A?oqƢSҥQ&u .j/@)_7*~ąS48tӍ O.u0ZL*ΊsHd]wܤ )W7}1D@/@uT.]T]4h/*~t.iDBRt2uQq?,g^ 83iaL&:jTt8]8t.ECp"]8t.ECp"]8t.ECp"]8t.E"SS{7d/IENDB`ntfy-2.11.0/docs/static/img/uptimekuma-setup.png000066400000000000000000001000451462047176100216030ustar00rootroot00000000000000PNG  IHDR//sRGBgAMA a pHYsodtEXtSoftwareGreenshot^UIDATx^\y4+Ykְd^ά tZjI~Sؘdg&66`$6f,##tkdBL#0jɘySTUW:UuYb}~sNu眪~-UeÄ"Tږ $]4:BV *uD%:bPBȪGe.ǥbwikKB!T(kJT.:[F!lT@k@.:I C!jTXkAٔ.;id !+EM)*IPKFM=BHըTvC pzuGvBYVTJpB=,E)wHIXc $B%ƨ'DI H=o !ҜjE(.:jPEOL!)ܹstJ|X]4j!͋BHIB pWI"@K\h !^dDI(Ioo&E!CUKVQܥ|L!᷿-]%$j).:z)5#B!®jE(.:n)nf ! {Rm舥tBI.@~)<"]!\&}B&tBI.@E)B]t,tBI]JIB.ګ$:[ !]@IH.$:B!)#.@m$&݅B{믿E@e螒 ]bqq?Wڅ )'mݦ.b{Kk>r쯾tg|-m0b-Wm* J"".;Blw9׾mǮt⵭ٟ=WO= 2D޻a!nq9zW]P_7w{o\~ş hdijny9m"0cc PK(m+]~y % ʃ7.Ϝ9ɿGcQOsc?9܋/_}SK_굎n\w1iy뭷(~S o? ;~\~;{Yɔ0*T.@wѨ.׷A47nv'?]\\Do?=m$ct6:]KԌnH@Ec1e6BS޲h"p7x>MSw~TO]!E`0X (.@8.D7… ?nDˏٳBi/_ Xnf?Fa~m;v?=‚ "Xi]w?~>o}w}χ m[~q+VD/%#ݲmW }4>a3+Ȩ.m.#{!'_z o&ޛ>_5A`PwHʼn.ǟM'gp-CS6xߗG_!cw7O?/}!.`SwyW/DqJ(Nlw^zsh,^{-v'[]ǤF/>ƻ>9mG ǎNJ #w Dߛ/NbWDK/}5Kabjih%E5{ҕ@>^06q ^Bj1rU'`*E8_cZ^=2Aro`7b9e 8$a;l`W_4x~|'8Rt5ӳ8{M;YYӺ; ݅@`-B"cT􋠆Qw9`WߴU{ւf ~YXl:]:XE(}^ G(c+>ebC©S^vCW 1 /HwG~M2qeLވ>1 !L EA]:Z;_HH{]nVc} O!oOMQ|Fh@s@믋m1:]"#,+_C20.hb>߂Oӓ}uWYIK崘OG.8H ݯUU6;vW]3%E`"mbh< ^~[Vr-hG~Fy^KQ7~ < }k_ &E b`؅bEԧHd9u;~rn\D'!f rQZ:k|-M`kɿ>?h?˿ڧ/>OXp`/CB#.AÏ| /LA<=\H$YƅPq8$X%L(4*ɿ C#DsCTZV^X+zloRgo]6vxù@H`,ޣ= TgB!;]jEPoB$.Y ~o~N ! (| f E ܥ(]}Y:;;5FB!KaW/Dd]db@w!aT#Ia wi]!,I9* a^5" $X]!,wA ߗ2"&E,(XόBYyfP鏠VQ3cZGGB'+c2 *YT Q,KŁy|څB=<;OBh4^#QӔj 71.B.Q'wxBH(.@!qS s]!$}j_.B.Aw!! Y}jPoB,Y.2|$ R]4F0 ݅BRF9*"]!xV̝<’RdE͎BH*Xwٲd1݅BRE.@ B# 3o> !2yDs09d0xfgg;::4B! 1wN0`݋dikkt!#a0)Ʊ72+;VMBH*H]`pŞ={Ƴ299)&3#35511=cvliit!ʀ(L2 :4o߮BIQw'".X'wvwtQNptuwwݻwOSVMBH*H]RڶeWK ٙ2ήVtٲOWWצM4B! 1wttt3n۴y-[niko`ԭM7oijnZnC!$.@$B]h 5k׬]nlѲk׮VH[4pt۰qmpC!$2 gQoG%K<(Ynݵp5C׬]% c[sm% <Cc6n܄Κ!T47oB\}_ǵ;ٔkY~u߀? ,!Tl#[^2gr 5 $?ߟ"\h:BRAby\k*0,M"uI~6\C]Cw!<2KmcoqƍMM[nۆ,bnq +.^w,W!.7[nkj V1]n-MMwرsg[dn]MO!iû PKqDPWɑ /0k>t^o\SimZ[5oKue~zMBH*H]nk޼iݺX\w xRi֖];::𺳥^ ւ>0m !%䣮=۷hںmÆX6*!ݓ>/06޸vv[5!TlٵyMђuU`Poޞ86ālڼDw!]K9ؙ8~l#.ͻZ:zzvwwg%h ppelamߩۿSO?sW\y|+6GG@DmBI)KGG| ׮] *.-.|;6mVwٸ C𡇡x,bAc9ظe^!YwO!ɒtwwc}*luw"f-XР +`}ezul]{S .k|w\LюqI*NiBJ 1wٽ#5[4_a-fwccp;[wY~=\sMϻB`$7r+^a*Hw!@b߯훷oڼaF,S2%P2fWk+fs|5h: + f'Qw%#!߈M?]hǔc(^%-f'>46GE%c)ć",S,rM !RscǻZ([bu۶;wf{2oMFijeL4ijh+*^(&+vw(et=ECYh2mʤ3 h'$8TqF!1PGM&L eq`Ғ6ƒ%W2`鰳y;v{fk wh{@` ~o^ku&Hhg!K0 !TJb2111:66<VӜ&Z0%oؑBȒ$.0񑑑ZB(@ ݼyS Bs ѬH(KƏu`j.1mv$HnXXvPAf-_wBHu$.{LMMI`(YO{`GTђ8 YөBFr-.|K7t+]Uw6]^ߑ`-A2༆+'ZЎ1FwBH5$.Q-SؑEٳ6;[Z4J ; !x ls\P4K+r3ZA2u<k`]FI&@fY2/}BH$.FWKLg_(df2~Uө nn7錂J h).%͂& @0#@=zFV>tCz6+J{B*%1w1B[[C#j9BI6g1Ovk:$9 !n]4L>:aK廧IBƊp$$;='tBHXwr]!$e͏jYr^#QWwx݅BRFmEiNB!)#aw=hNB!)#1wA8ttBI5wNB!)wjtB!BI !I]}4CQ;w9p?zC<² am"RH% Ԧ$V x7߬|tI xNb[&B!eلxBBV 4jNM ;psM!B RȩnW]%>@>jPev{9^ #*BN!$ţ]``*6saSj+q|Qlr~"q\BH@T!܃ixw9{oBHBf}вzӺA!@f-_]?z7 !@f!Q ..;%;/酅 D!m]R{3>0}B<]N zMM.(A!$O6`VbtBHYetKq'QC{-b>e_bvFiƹj-랍[=v\BȊԩWǣSrvv@l!Q6.R]P_X061mk)E! A`bXP]z(a DΞ>!7VTzeL7*q(i!0m-Xwc @].H! xV]H "w[n}SXnzX]O$i :/,\|FBYUOSM0%`<,-AgC_yռOY@lW7pU˪KZkz!Uj:mBY=@`!8j'_Bjo]ṓg!B`ur]/\;c'^> e$J&d3IE珞@y3X{0n D#Qt#%HXag>p */CH|R2`QR.B !䡻BI !䡻BIqL须BHʨh+݅BRFE+7݅BRF=|ELefff: *-!TPsw1_S2111ui:BRAmQZW`*{ρ ݅BRF !Z/222WlǴh:BRAME51ʐC<رC! j./ )NZr  777k:BRA"0 1X \MMM!TP+w,\`-XQͲi&MBH*LMM࠹ ewk:BRA 񕮮.dvZMBH*تE}͚5!TP.]pU ݅BRIg~ W!$e$.0^/QJ{"`01w !$e]g|Odo+5}"W^uSO?UPQ;QBQw=33#_)#ronݪTƒ=|WXHtcEWβpalb:h$EYcƲi}vM eHn׋%0B !$}^\+q䊧},b1b3 !w$7 ogNw!uZK>jd).0Yi*.E _X% JظeB\L3c>b+zvtx'baHίr lo- Hz]vabߔQ0P[ !^]n6ioot*AK*K@ C}f*"~"짐L]XLg7-?30 Rg:::gg %Z/R]aT4y"z*J-+xGI00K$˽.(P!c}}t9 ?6%Z:{|–$!ԍ"j yd).˭cbJmDAvyCB1w@ӃY @ps-~: C4F'f8 8 Bw!ԙq] ~"X4o5HLrF(8Ϟ{Φ˱>~._A(۴4BU.{3>]=C7鼅pt@7tvBYq; @s/sPǟJ1wM>0b  YYt>es.#%?&@!žY8TQ{G$Kc b Ȧ A{F-sl:T,=sA)!Ԉv l@ !dϕKr0\]2 BY磖GKrj$,B.BB!$y.BB!$y.BB!$y.BB!$y.BB!$yR..>;?wGO<{؁GXXXXVyB!GeҤ]qpP^z7.\|EM!!$y`B6uwB]p'^>m"RH% Ԧ$H`wx${em"RM'$4keq{oBHBf}вzӺA!@f-_.5 YQ.=RS [ݨz˒r~b cӷ~nB*bᱚͱw^H{ wJWFI`Q?(ظ$5uǎoܲ )s]yB!6űz &/dƫyLGGS6s'OIjE$Z =B)eS[wA8pcZZZ49p֖Esma]b=ш ~ӔݛD F|vX (./{%%7&$uB!(_r B \N:l`N$.^Ep%l' .Uv sFiw&zl>!,ɊsY,\:k۝ux`[j:e1 R^MgRp >!׸,8廋`HB) 2&]w޽rMldd^ݕyfMl`-IK1CzwAjARtW0^. uttU<lذA)HL{~o">}~z&(!f=~/ .X`2J[[[kk+^cu4)Ӕ?PrMH6@cs1/}Y' FymWd+,!4+Ӕ.rYe׮]b0š5k4`L["(^x!X<d <%:X=OBJ]#t޽SSSvk.T`0b-]8ok B!-/p>/d Vj|?݅B_!2<<,ۋExL/dɳtBHB@Z!Q9r &]/H:&Ƨ) p */CH|R2`Q]@M݅BȲ@w!;Ύ]!T 3o %aoѢBI,/0 #(tBI= HX` JtBIKwn˯^XM⩧򪫏;ۄvV< lf+ I{T݅H@755vvqM !ݥtBGƃ=,Nhײ87"^3wݳq6*jEF].ML[4%H&EX@Rk]PsEmu5 "Tخ(Ȧu3>AQ_}tBHG+hinߩT+x wkѧvEsX *6c- !:KH< 3Q30 O``KA ]^bXC!i^] ό Of^FcCӣm5J.|3(@w!] LHF'G&QQ&9Yө0*rͷ+`%*/t%.|Vj.9ke`rP`@@8 ʖN%pBfwQ3MW^uw,l@OI=uq MZvuvkHM۷h:Wp]zk :H "b' 䆩_BHj썖aWz{{:19г~&M@ֽT B:!Z`-}]viCi۱vzM^$ntB]2FLJpnҵkggΎ]-ݭ7l\ԋRU]!Swt fܥֲ}׎׭Aө=rd;.Bw!OePewXO4@ֶCkt!]mq[[YsC!$hHo@O[ogKw+ fG{Z]!$e] =3iܵ}BHʨd?2K.mz2kut!H /njl~Æz?L!]FgF|X7_}⫯sܻ,,,,@ !F#DR l&D]Rqinߩ$Nӧ~S@*!Mh,d+hѢTxN;q > &u,=2t\pXXXXX,P)T R.g_; sReBN!*qIfq.x5%9Vixw9p8ZXXXX,UHk5`]ϝ R[9rN  K"%#qSN]FgZMZL;^s-;bⳇv K 2о̺d=&x#ђQ< KFfc-_s5{ON쟲&Wga0Ύ]N%<o泰Դ@f!*,JQ&O[7hcKgS6.ȉ,$[N>w/hg>tkRXb'+;?3Ծ쟙7ˮ6MlR{3)`I]XXXP2b[űeꦬܴw&SfLrw;y3on\}?>=Z=?hoBwaaaABrU|&1w{ӬٛwlK[gS6=O]V.,,^ 1n$.n޿}nk^ݿ/(2ʾَMl2"ZfdVh&DehAэ,+-@LFBFtJŜ~^I.xˏvihvh(rGg](5]XX@l!*e7ϾfMZf̥ot#+)(^EltD|;eԥωP"8Z:N.4b8hD:Z0vq,geQ؋>>m9;]GfG$Qct F],,,U *e࿛n\ɱ&Dʕuv@dz^.":kj DXG}Lef3Vpi{-QJ }w÷]aaaYvwvG]*2&uKS`Ϋ0^ģ h-( ^@QߒA҉;KcICf<:xCXwǎݗcSO.H尜.,,[ʘ?vG]ʿ-`t/ zgՃQj/&GJ )9A DpM u Y0c9d"l.+SRw9{>8xR^nNC?th1͍nzm`UQp|2(~3$Hۗ 1),(-Ho{ ˲e~"YC磁.V Qu'M79U:q^M/QG'@?y vW,P,l.\>7"nu3/Z@L"0QPe%cqم "#7]XX,)9{>8xR7xE 2P1hoXE uC@H]&"=т"YT :;.ti]|o(̠?z~PG?dhS +.ٔ.,,^`9{>8xX4- 7^I$ ,-= OlwJ-o6_ %cV ,,,,~힏'$ rzо%%6~)v K ]ϡvGM/Cߓge%xk9|ϡT.ɗN  K Uw \7`XXXXVsBT!*Hù !BTU^wYx%vBH\ur Sڬ$.s'8ūd,,,,&ZͽOEezJrg;~4/,Y Lf쇏 Rw uݻW*+Yw8M=#'^|gބ-`XXXX] D#" `d j..v2ezz^cwKx\p !TPCw'e"ӓ}(Y<1B!)ViJ1f֭[BI5t8pw7j:BRA"+BطXNNNYYʈ i4B!"461pA !i`w;? .O=#]!iQJH8 qR[w. +hܲeS :-R# xe1Q`$0ޞݻwl:Z6mڤT˧uBH []0XerrR.pXKww7^WqN%<oBHMBlu.pb @K w9p;Qt\vc ;q66!6c2]]D1+^=%Yvwy𡇃=}-6'tBH 1.ݻU"B w;yOp~fSS< D@pI gY@) !$O]GFF1 `-*lذA)|ZlyS ~BY!@lcz`8Z?DGDʃRV7 = Olw_.E!,dv0A磁.IYGcZp.ɳtBHB@Z!Q9 ..8xB iϽ s5C!)DO# ξv+B)qI,qC!BH\qp~ṓs'O*!Td ^'U">;c'^> e$J&d3IE珞@y3X{0n D#Qt#%HXag>p */CH|R2`QR.B !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䩟h,~J !zs`J݅BRFEbfB!)%{333xv !ں N4tjcǯ꧞~FC0uBHy]0ɉ=YPh1ikkt*+ML/,\}]!]+B`]"S͂xVM.(xETE!Z E2222exxumiit* cm[g]!|j.X`#k288h#ܬTB.^oN)]~# f!_}(ȨX'e B'yw~/" x |/KxzSSS %.+~:خ+Z|Bh1wA=`vߓBHmezzZE.wƫ M6i:= TO ZPP `|Ģ!]%=Y(RZ~S Psʋ;ޛw >w{K PB}]T0wGGG{{5k4J>$BH q1?88hbz7j:]RwAoa1o'Rww3wUKEL>hY]{6.}!urw;.ݘ5 "2V*bNBĝ J xwWoBj.rcߞKϑy$9Pr'W%O B3~388uVM+lvBQsw #9byro߮4fF !8j.@z#l`2ej 6#N[, !Xj.`L'w!b &1lvMBH*D1C!$] CLŠBHʨ8 ! !䡻BI !䡻BIϝ<:vU^ D#"r4tE5>^=3ͅ ygQwB*bI0BE'!Mݝ)t&8Ou~A!R lB<) R.X;lY!d MZYz?ۄB* !v]ξvx)BB 9v\.Y ^ #DBT\4_uW- UHk5`]ϝBIH+V7*tA!$QQ! .:-R# xl`wxnBx˗v珞|B)YnTBBHE@lc<<֨Kэ=vʫ+ljjOt!$@lc\kTw;yO]:{(ms]R+i~B 6ƝFug+]&.6!JBrul]ux̦M4$8}vCN|!dI Lf쇏 LNNK0YG3qFM'!q?zW`[`!$}@ !Fȣ$3G&KPWw ..6ltK<5,paaaaYbIOJ&u, tN#^"`H|B!dy]^,o* .Bں,_`0YP![lt!Z ۧ)`XǠMiƭ[j:BRA ./C%6}vMBH*H]tEY`&ߎ PM-{iiit!ں,_`0`:ԁlMkkC!$] :V06|]T BV u@ @<⯇BY]HB! j.F@w!Q?w8 ! !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BIFu=4 K݊opB!$y.BB!$y.BB!$y.BB!$y.BB!$y.BB!$y.BB!$y.BB!$y.BN!s).>j., fɤb]!$e]Bf{좻BHʨ L !ں LOOOfc:::4B!X?%{ˁ:Zc4B!&~X?`$###CCCxE]!N"h|b XoBC*Dgx.OQp/EB A6DŽ#".A, @݆.1hX@vDkwKI. &(Z!Iû 8o'F܅BJB!$y.BB!$y.BB!$y.BB!$y.BB!$y.BB!$y.BB!$y]>OؗϽw]ɁƂgpߑ}g?],yƏiL'ͼIReeǨYJwCm-3C9Ѧđxu ~PwYW0HrL^D,|%ާ*3x젊i2V,%PQV߸+bY0,ȨWCR;` gGhɟϤTE i ݨe;b"劲*ƕ^Kb8 Tנҿ_8x FȮH <_]Pr<)7zB:VDF g %HVҎIQdZ,C ~ Alo%y=4\v,Ů 8>P@t3*햞oF+ZWa1l %ۉQh&hoDdl}v&}|;eR}%ˤ!f,2k̍ A6^>Rn @`gF:ۊWK_l1 c-P"8p| A:3DAE {=g[ڙ`«L-a- ^1An>,ُZ,C%Ա}$^=Q^ȑJtvG8x? *>m^e>6"n`aS"KbGmHgiD'3`xe8\HvlA{dS~PJO~vn|(k/I̥nQ=&=-T)~Rl´ I:C0{H& )bh&^ '`Gz,فXLiX`"}Y+~_*âE&XVvۃM>%Agsl`"9KCQ@NyF'f fU V7@6팾'?(Xl G2HgC,%2) x}g6R,a@O(t fG4g&bHE*8Kp~gnYa?vXpT ^>9`v "vgh)I28B9{LŒ`" '9aG|uK>Qfl}"Yd,*~5GG󡬽D&D3!sa.um >7`S1czYX%RB@9˪,>lFmZ|Xp2᠎hrP83M[vlZLg~T161VV0h`-sZ7Qk%v}]ԘT*v~H.(cCݢ̪:wւۉWG%xE]A66x_Ig^R,Pb3t>sz9Xn`艖虑ξfGgF;'ji)@@fL$ .f'*;4d,&J5S}JKYgɇE7냬l :?coH-[T Dt`pͦl.ѡ؏Y HQG~4OlѰ˟ڱ{dӿ(2nc$dlb:~*}R,sG"X6]KO1dR x,h iP>%X_]DgARȊ?B@%8RJ؋H J"Qh)XT$lz3TPhO @4vKO>Qxc ({w?f,83rhm8ҎhtC>I.ԍN.%($݅%!dI.B~Q`J݅BRF=Ee;ͧC! j.+06MBH*iTkkC!$]ZW`$Y&{iiit!X (0XT۷k:BRAmQZH uddD[nt! B \ê288׷yfM'.[:*Luo_S)+?v?/|8P/A^gc8;C5?հ~H]fggp`#ٽ{wOT@oo/^7nܨĥJ] usZX\Y GhOrg gL )DME"޽{)0.̊W ׯtR4$"AewjN@w) Ώn ij./^ֆWԅkj: f& ^Q~}i ~]тva˗DDP@k/6oЎY"PGK@Z"\`MdauC:[}_3'z0*Ag:3_lZ z w |Xp$d>Ĕs48cAQ܎Wٌ^,DH1Y ]䲘qeݘL5 *š5k4hSO0#CkM?\~ .}DmBY|&7MV:N$,}JL{@-Y4 e>Z l"t>q2W%E2\Bv#BR*'8K؅Rr@C$RTUIEHA9 ClLmA1iH?:@EM;xRWt*"{zz]veϴ(͏ۂъt@la TXK @|&w>`eSXDCC#bvbgSlddvaw(85@XG%8?68 Q{,U `ǂ UphX|O렜3@V ɻCн{NMM]eՑ2.~7P?ֱ -R+ 6 %/ ϡ8QؼD,%Oڼ=Q)lC,+EP:KAzw= v92OQIF  #m$/BpNQXVAzX|OQ<dPweppfKKMwqg=nb u(HPQb"<q6ш]UE3 ہfeFƂG 88k, `H3fb= ,RUiR,'u+v*`"# q1ό ex!uL?8|ȯtPk[ͬQD)d:*Sb aIXڋۋCG^n$#f~Fb{@.c4,7k/ >vl A &`L]xdHώ:H1@ҰEcI<vKj.wO郡,̧(o6mڤTze4~:X ~c/55Xy~7_3t(;%8%J|) +%'X"dT10M۹%203@tF?; ^dbXg앖',a X9?!U9'$Q[ -2iXOLј%9]6w~/k`ƀ|ɘ| ̦I!. ȫ .!$r-߷?6#lo`3͚!+]wBH j.]%ʬ[apx]0GG E@t6cxӴoSBHh|df5B!4#t!ztBI%.B!B!$y.BB!$y.BB!$y.BB!$y.BB!$y.BB!$y.BB!$y.BB!$y.BB!$y.BB!$y.BB!$y.BB!$y.BB!$y.G/r/>qw;v!!TMû O BiPB!r_m-=/~WiA(u穧n788: Y4`=Z<%}Y@> ݅BHhTw>qF_Y nA~3:FwLx+PL1M@Qds@K.:,W^u!* ({ >ODWK heSfq>J 7`O;"iët5Yڃ]%2]Xт~.fa.$hTw1ʭ/:v &+) `{E7E.M5d`>8@r#G.&RbkG2&|݃t/ev8 khGW ];Yb%2Ag] AfǿA4tʹ볟 N>&B$LHq@NZ !+ !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI !䡻BI.s'OpB!$y.BB!$y.BB!$y.BB!$y.B4B!飘DP@w!rw@w!aWG G !K]!$݅BH]!$݅BH]GCw!ڏoyx_.ղf\bvͣ]<|CkoU߂1/fGhfISmBo߂g?xx@] }2A>X\\|RM:>(rd|rCkB]!) "O8 .e~PWBy[".9/]+ OdԵ2 !,_*՗Cq,~[C$..x.~"R"Wj/o{p7JA_$.v38.2F)_+ۿqE rS]"mDB~Ģ*3wt#^E5`.: wcdP3'?tU]! |B?(OSp,SBjo~> T%?hyqIɤ (-k.@壓8.e|d2^ʿ_rL+8x˗E tBH)2_uOFqO (8.=JBjKQ0P,a.b.Rp\1[w:O !)&sY|\O],束},Yr+qqן)o}G#wNb\@5 !(oL*˻_y;w~wotUz(J#8.oq ݅R[ܥĭo_JĸBw!ԖE˥fB*ؔfwmJ5NEuA;bf}̟KP삣hCw!Ԗ%px3K9D#z.OjcѣP|]X *^F13oz .+8:=βNBHH޽x"@9 :d.p p)(1R: :CQ`$o`Ã5MR;wQ(Dw:[ !)W2nKٲFJbR+cǘsX`(8,P0J9tꯌGP(݅RZՇ[dA λt(rE\ķn85zR** Aw!O$wܥO$&!ǼM[r0P1IHV鏠VA]!ӔV/_Y|Qis2hROSڭ{ Y͠.o6RA >>rȧ)U#UDPo).@cfb&.(b0:GKEr#S []#^ۀu3)b02P1J"ҟD![b 9.n,o)qEH )1n.*$ Bw! sqߘ%oWя&Q*ݥK!-8x= ®_?ma"tBV qjq5""r"tBVvdP3'?htU嘻GP{(@w!,A᱄J<*e餾fy "ƣb݅R?? ._ٗ~|'nqzE!c陓oȐ'^g]YdSW-_t}b%!®_5B.@BFz[PW<|eyC>2oCGq?U]&X AV-G&KP] F⠻B~ qo8M1{saF̛urxRSAӱ\̈y1;r@&I]Bw!<ɻ ^ wyG3"@ҋA!B]zzz^uMBH3??aWG͠j!T.}}}GѤ!48fP|hB oۚ!'; *wۿ[MBHswBUjPP'Ǿ}KBH1CUsA#B.@GBr` #hjByR@et333ofG!y7 t*EP(DFFFnMBH|bP/F! qE9}}}>H!ַUAd"a!wb'L !4nxP/F EЙȏ+Bi ڐnJCjʼn.@w{Ν;BYw}7D;ƪUQM!HW_WzBV xB]6B_5|#.@'o~?OO> B!Cy2]p"GM8K H\ o߾={ aӃ鬎h'r*qB!dr=R[w/"fk^BDQ+4GŽ8j)]+fT=)=E! bW6*%QQ.zq#vQyGl)$U T*At)T^]GD+R٪}g!Q!ΥP!.JyI#".@cDs,RiWQيRDE$j%_2tOIthKG\z CCBY0UJd.xqJ"nb$.@3] =әBH]PIP]  DPw$:OI42PzjkBHP-Dq]*Vͺ L@|!@lT^@%$*%Q ɧbw:gI42Q z !$ըU kXDE)Bs}Bg^ =2S9&BH*Pi2P^ PP[wz4').BHCPi.P KS }!dERU*e\*K#E fIENDB`ntfy-2.11.0/docs/static/img/uptimerobot-setup.jpg000066400000000000000000001535721462047176100220040ustar00rootroot00000000000000JFIF``C     C   3^" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?;+Xúƛfn&m&dgb+WMgS[[df*~1ydsd=RNI^K _E|cL?mߓ;wlSڇ|7swqZɚ BI4\:+cGZ35\+\:r9xZoړ/D/D]ihJQ&D(7,O&4(oMZŠI:w}'?hǙw_?zO|>>&|?g=]K~у.+Jp_@?@(>+|T_N}W"5{]GwKl {U<uH{>ZI V8nܒ}E|k۞*|Wgykhwn4qܣƀG*Vn` = oc͎mjYd9T3C 0p>ߢwƯ2|WM,t5sĞt61b li?|DfOc#<_P|62'%TVPH Eʊ^CP&ū^x~ 8mT.Cibr(QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEկZSz.x~h-!uᷚIRUc!dgZ( _"R=RS[כ2z@[EykI~p]>l>J#2mڷญ.5frʠUapz_ɭh~#h5m.k}&V%2ʸ;`+z)X ׮|D\ZlZ_t%yiTP2r6dzW4Q`3i)IylVz LH$8TLM}]EAm- \e7t11Ǘ`]HşmYx_%~:ӞM1ķ6[vؕpUp';Q`>ZHOïutZܖtz\W&+o Ih4現xw9n#3iܩlGQ>E'[ >LZZDCgk< `/?dMѼ-ZZ4S$kl&bNJmB gf <;=+&?so.$FWtgX;~_x7Ox;+l\ B?r<qFOE1Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@][aRkRwqՆ?W& ?(?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍?u?u֍QE(((((((((((((((((((((((((((((((((((((+Vg,/-ӮE0kc}$085]soaέȚeYN܏o¼^Ot o>ueLE[Kncy<˰tkPj\,/.qZ]ZU~ZjfEIM+x}jk[ ;E2\l d/3Vmu,>ssK/庆+BŇ+9.Nus>L<ʀ]jx|=.x^)/U. Fx݄HK 3`ס,(󻧦-#39xˑYYmtv ZYO}oo$bر;N3 9+,9uy1EnnFBFq%H8Fk˼Cqʲg)+jPtiovS,:̭;>#/R䋌y۾%S1u9SI+nhegep{]62DFWtB#0 22z|KҴICn CZb:xs^ˠVm6nZePQq `+2W[Gm<ь6'ǝc)<#vK*jIU%+'Ϛ9cTS\GU_N[⏅c#Jq%;c(pU9~/xv}[4붻KΖ٭NG2N>`ɯ-ۭk1:hZtײ('Y& ãq+r\|PעZI$Lꪣ% wռ NQZ[~7uۡ 1N.K׶[ZZoi_'𦉪jwfP@b(@d R젟9{?Lj"աȷb\H<|dc&km6+MKK`"',dThcq=*KgRK^Nm}#YyRKn"!yW: y%)sJJP׿NkY{Ochũiۯ-ݵg㖃ccSjVkim +(`p: ﴝV[ӡia27R9WNGx_Ń@UGg>bٔp  r3^kV^" t딼3H?#C Ɣ''{Ť{;_Fz_xn2a^'\\_-JiZ־ny⾮;{7-j|''m"x,l.UIQwI˨ȭپ)V믬E<fKG8e Nv麵|M]{[&H𭽄:h0vF "Ƶk zt, DVIHsqIjet՞^kg,J嵚wZ_;~ڜ4^|p{By{o214buQEC!(Hc u]F?bPAr2n-뀂$_ٻT(ݩj ʹ:Is8/}w~F1غ|S{?ou_|T O˹Uy+yfo(&G?1|Tχ8[϶-aun$p03 ONڗԬ+:Iz]1%-!N2i -]^,hQt 'ҷSFRqm=/rM{t릹K4:dMkn-?{Ϫz3Ofj!I4g3 B/N?/P{b!;u&e ĭt+NG| ^~T j{i'mh` I㻘QC&v4X2J( n \Z'([Zⶻ۶9xoᾛ|jOaBc󼧆HǜoM7{Et.~0|=SSAXJ|]*t9ҺS]xZ&BҵmŠ(< ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( Ҍ1#?:`.?㧿@%}MIaq=} ^:{dM94TbG0W>aq=}.2q WF$~3 x#HfG naq=}&ONTbG0W>aq=}%.?㧿A#\~+OslIEF$~3 x#HfG QQ^:{d?t?TbG0W>aq=}%.?㧿A#\~+OslIEF$~3 x#HfG QQ^:{d?t?TbG0W>aq=}%.?㧿A#\~+OslIEF$~3 x#HfG QQ^:{d?t?TbG0W>aq=}%.?㧿A#\~+OslIEF$~3 x#HfG QQ^:{d?t?TbG0W>aq=}%.?㧿A#\~+OslIEF$~3 x#HfG QQ^:{d?t?TbG0W>aq=}%.?㧿A#\~+OslIEF$~3 x#HfG QQ^:{d?t?TbG0W>aq=}%.?㧿U]}#EQEQEQEQEQEQEQEQEQEQEQEy6JxkC5[;Y?THi5۠W2O^z Y<2ҥ,Dmɟʒ_h S xwa}}gH,Nۻ}:+-HĊJ@W0࿊f>j:=BHf'!dbW0g9W-+ý[Zݽ֗>t:z#dʧƊK+L𷎼K.|Rie,(ͼ>ta,6:?^&`ь6Ү#) TX'>xඓcYdKIuIn ž ɺ2C%Hc˗Z20ϭiC3kŧs$1Xĭ+I$ " CŻ8y\4ytK=&T^މ\!FQۇW\f8 m?J PWMM @ݻ^E(k}w_cmƽ0i*ԴMoQ6sCH;3$ AŇ'qh mjxнRғP@{zg<gMSAxѮݺɇ9cথZRaY-EXE.Ƨ.f09nHՌOFd72mKn4DZ^YMØ͕|  C?4]qRu=.y-]lnG7AvfX eMWP/IoT,wD "0Wˆ-E߇ö&33M%Υ2aUUQ0;$SUt~o}2~nGox்5WHM%k˸+ئ^8}=㧯Ry7?l0xJMFnP7q%T2;fR jZ_ Z|״Zx5iBeNT@ 2Ysߵ'¯7',3e}/ºk_6 i&@,zWTQ`>L 7Ş>Nڃ0ieHp+VM>kĝİjfDy%uw\oFP"<~EYm~%x*/"/G&GF m6cqy|1mOm4wD5 shm;D6~\o! 0E1if$UFvO*|RM'Rׅxf`_nJu%H߈ D*Rqn33Ѯx/g>Nx&6 ox CWQG,B; +_NjbLm/'51^E T'cm@9?1W?{rϿ-S? E(^"sPQ>Nx&6 ox CWQG,B; +_NjbLm/'51^E T'cm@9?1W?{rϿ-S? E(^"sPQ>Nx&6 ox CWQG,B; +_Njb ox CWG,B; )}n]^y]K2lW]Eq\"X (AEPEPEPEPEPEPEPEPEP2a3 x1AO(żKCL zP-\b:a?~CҤ#.1 c0?!@qctJ[ĸ1t:%!cq=*J(1o18 x1AO(żKCL zP-\b:a?~CҤ#.1 c0?!@qctJ[ĸ1t:%!cq=*J(1o18 x1AO(żKCL zP-\b:a?~CҤ#.1 c0?!@qctJ[ĸ1t:%!cq=*JNjF]]Oӭn,[X+DYg 1 rje.] tR.1 c0?!@qctJ_ ?._ ?.+?̞w3EKCL zP-\b:a?~CҼ{<7kK{<7kK+?9Q.1 c0?!@qctJ_ ?._ ?.w0=D[ĸ1t:%!cq=+˿!S&?!S&9Ý+?o18 x1AO.AO AO w3EKCL zP-\b:a?~CҼ{<7kK{<7kK+?9Q.1 c0?!@qctJ_ ?._ ?.w0=D[ĸ1t:%!cq=+˿!S&?!S&9Ý+?o18 x1AO.AO AO w3EKCL zP-\b:a?~CҼ{<7kK{<7kK+?9Q.1 c0?!@qctJ_ ?._ ?.w0=D[ĸ1t:%!cq=+˿!S&?!S&9Ý+?o18 x1AO.AO AO w3EKCL zP-\b:a?~CҼ{<7kK{<7kK+?9Q.1 c0?!@qctJ_ ?.7kK+?9R.1 c0?!@qctJfo͞h$ ;KFH8"qjI4F-\b:a?~Cҁo18%F-\b:a?~Cҁo18%qctJKCL zTPb%!cq=(.1 c0?!RQ@x1AO[ĸ1t:IEF-\b:a?~Cҁo18%qctJKCL zTPb%!cq=(.1 c0?!RQ@x1AO[ĸ1t:IEF-\b:a?~Cҕa<*( ƞ06u[O uV}ȱ c,3L|c<'yZYj3+fe[dCA :S|d:TIqG,pA$13C2K#B#$ ל߉pǕm0y-Ý}!dW%Yԋj ZXvfZow V`yY.%Fcǟ#hC$JQ bxrk%-Jۍz=VOӵ;;v# NX^z2އ6;fqɖAS_ҝFf7X~/xCZ𽿈W_g{b0F @?w!bV[4WuE ÿJž!=f_E/yϵg|a%_+~/ T,^*;U(gexnm}qZPwwVKgX(/翙-2}BI \2B7F?@>C}gP.+&94omy~A?.ew"i^EƦ%B<Zk_IqoV &O+v!1rZ6Oo}k?|3jMӑuO<({g4b) gq*F5;PH-u [KrBJ<  1txBUcJ|C>$7!zgZ?&,zvg$#qPx,oM&UL,ԡg42Y:⼓OƳ:]''[h1o3D)%@nXZivi\ZΓi添)\%_^qQ'm "RVnEeomcv0Vxt6l^x7FI2.Cr~I<Jk9nUm$h2j!spU$HugfeYޟyoh =$mRAUc=5ͭBD6e=A`܎Y[Ź+rQEeQ@Q@Q@Q@Q@Q@Q@WC]{e틝ZU?LE<BOSG}zQl;y%b0cq@vGlWG $w0  >LE+IO2FkWI `(A?|;?~ev_+4fPx"T'ÿ)z_T'ÿ)I `(/^e2FkWI `(A?|;?=} њA?|;??Px"v_+4fPx"T'ÿ)z_T'ÿ)I `(/^e2FkWI `(A?|;?=} њA?|;??Px"v_+4fPx"T'ÿ)z\kZw6]Lc-ʛSQFK鐽 R? vKsgw'`}-|S#ȳ |} $w0  >LEe ϲ~ C$"0 =A{]Goo i 1D5 `@IWyb(((((((((((((((((((((+! ,g4giL+{vO?1SW_  XĚml&5:M۾]UxV^6C\F -_yRd#caINs*Τ+o kK>Vös^\iݻ/eub9b~;W(:~54zW9w\7,F+p1{3G=rB\5+m-Ch 1++ A!q/ {P-a.ᶽڱz!uf*ٛA~YVrkExſ|L*H-i}֛evsG414!l|«%t_tcXYu=bt-<\LE8."* ?XWO+ÿixz_muflI;6@;l\Z*xl"2$mnF<+,[Y_pӕooŵEy޳N+yS~+50p`urGcpinwm7>֬o ;H`H)-bLʱ3lĹWwEK|T޽;vfO#Sη{e(DEf'jF(`Fӵ JL] WZvm{57C@\B%tExa~gɫؿѼ?4w/ ݲe@I@Hl ='Ğ-.i-l Χs-܆g+,Q 0bʹq,D[{|<'4[Ծ8`"p+d \pH"fRakZXdc>lp=/Gg\G[[kb rˇCnhqKZO5mgH GU),vw7r]ctf)vPpelmro PvkExZ'C֤OOP2Ě4sol2OTき]|MAfCp[n t1L. z[WMg[Yֿúuywa L;X=h茹kQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE}{XxOĚn,@ִM7Y 8<ݷzڹ\JբI5-)hKzFqe>beV+[A`JTyVgK7@|ɷd. yWhʻ*etI5wtZFn8G6p9qN|3x4W?n,gp+J\k ;X͓:<ڵ&ɩ5fxS$_15 |?m{w ŔR"HYUĒG$OZآXX1. A-ÚE[D@XBș_H$89s{Jmiv37ږt ܏*xG̠@}MQM}9<7OB͂)t8( /tSk[ [f[`T0v`|'8WU+_xvIҭ?iW-{lbH%&sƱMg0d]+*+b9#{9#{ΏzDzi6 \GM-bTZLnaQqAP ً&hhVNc&c.V6d0PQʻ*e|QQZ6G -'P%CPK.Q.GU\H9:f(ʻv) N[>\&47c;w]/N+ _i !lVR#Lē&+P.ēꨤ+4)B2Vh6eX–XTU 8O&QEV"Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@sҘ-\b:a?~CҤ#.1 c0?!@qctJ[ĸ1t:%!cq=*J(1o18 x1AO(żKCL zP-\b:a?~CҤ#.1 c0?!@qctJ[ĸ1t:%!cq=*J(1o18 x1AO(żKCL zP-\b:a?~CҤ#.1 c0?!@qctJ[ĸ1t:%!cq=*J(1o18 x1AO+_//tytm?N;nec 9e02 p1ɩt&R=H[ĸ1t:%!cq=+˿!S&?!S&亞w2yQ.1 c0?!@qctJ_ ?._ ?.w0=D[ĸ1t:%!cq=+˿!S&?!S&9Ý+?o18 x1AO.AO AO w3EKCL zP-\b:a?~CҼ{<7kK{<7kK+?9Q.1 c0?!@qctJ_ ?._ ?.w0=D[ĸ1t:%!cq=+˿!S&?!S&9Ý+?o18 x1AO.AO AO w3EKCL zP-\b:a?~CҼ{<7kK{<7kK+?9Q.1 c0?!@qctJ_ ?._ ?.w0=D[ĸ1t:%!cq=+˿!S&?!S&9Ý+?o18 x1AO.AO AO w3EKCL zP-\b:a?~CҼ{<7kK{<7kK+?9Q.1 c0?!@qctJ_ ?._ ?.w0=D[ĸ1t:%!cq=+˿!S&?!S&9Ý+?o18 x1AO.AO AO w3EKCL zP-\b:a?~CҼ{<7kK{<7kK+?9Q.1 c0?!@qctJ_ ?._ ?.w0=D[ĸ1t:%!cq=+˿!S&?!S&9Ý+?o18 x1AO.AO AO w3EKCL zP-\b:a?~CҼ{<7kK{<7kK+?9Q.1 c0?!@qctJ_ ?._ ?.w0=D[ĸ1t:%!cq=+˿!S&?!S&9Ý+?o18 x1AO.AO AO w3EKCL zP-\b:a?~CҼ{<7kK{<7kK+?9Q.1 c0?!J Fq@J|zo.gܽŔ:}ۅI::rCcAxohU2U@ >qͤi.Z 3cyO4+ln㇆u?34PkV'b *ӿJi^{6Tn)y"A"%DEoyMsԕU'ȴ9ʪZ%CkkRfjkԴԖ"I" 0k?#e~-]`" do86N⯈w4I4+]Nb0@3ğ7¿~7ţq ը. FfE| 9Q`asԺ]= ̗OO> G<Y$mxgl%vצi;x$z/?۝7SxoR,KoIܪoWrN$ru돾gċmaPoG4&Ϸ"d/R_\iDOveFT(jU˖z>,C$Z#YmYk幁cU*_ypA.W~O,Em?{4kn}Zmb.5k-;;Z_YG  *.% ® r 1!@;+Gԡ$KKBoU˻6*@5.4X5]KqIo3ysP 8hϖ6#eZ|mGa? R7W4`I#iYT9\zFX.Ib4n!bB H ah>֤վ$JN u36쎲4fDPG'FWAt#G= [/XTy BUT36NNeԫ]z؉T]z="ëk{iϪ >Dcp ddsW<=OF>YX>#VTd!>5|Bw'I?hdeeysn\*r:*XO@M~,Xjj98 WnrAtM=^{[O@m=I犵MC&]2Z]9[xpfkVƞ>s˃ckgv1WᏇ7,rך|ڍ64Z&FHƅ$Hlv5CWJD𞥡[JHO0B:Xg^ XLS';Ar3ܹxz;ƞ$]odM:G!22?*OS|7iqM'7tТ*W#\͟Ÿb-#UΕ*]4E72U9 ~旵A?/Y~1x7E޼|Ci$,QLc[^HHjZreXHѰ$_ ]i~?٢jK&֫pM=ĖqBp@*_?X`A5v}P d2e@pHOZ!V^ e$EWi =_ÚWW7<j_qYK^3^,"Ru=2k{ "q;]O=skW!%hOsWTiN#6/T2i,r 8}(7%v۔nŠ( ((((((((((((((((((((((( :zXרחhWt?Qc^S #8|RQEQEQEQEQEQEQEQEQEQEQEW7<j_q^^;9}e/z?z?пk;.!,`a!V_ֿs{;J6~: FGdb93mbt@mIf\P;J8/COᙣ< [qg?o=*uoZ[ITM6W1" rB"M[>kĶ*nA0x#[yHXE#HmVwn8i 7Y%4.cP#$O^ [X~[%H +4xƷǡ&&o"vYdd1a2No!Ԭ4ŷY8g&* ʪ?wi VWB6[G.oeyI%XRUxdHnIVVdl+O6#M$q4r\$2mm9=OEUQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQƽFCQҋo/_◯肊( ((((((((((wsV*Ǟa[K+)|koQVhfx)n4˙%2+R2*:+QskIyTԢ Fb* ?ɹK"P+?Pˡirܥ"4Z?hx6_ٱQZ:EEvqIJO3 W^ y*RճR=[7R7ѵ)v!-FVKu;J89χ7WpX^x\[Ȱ-2c\`>صɵ tH&2*eG%F#㰨5$IVkeK0+ U0*[x^3|Oˏ0(E@{E~ah U8Gq|X {]Cɴ*IQ8;c€A$s\]94< ari@ԯp _>Bg9cJFq]h[if/)YGuiU@*L-aPiWC/{zu$w妑ZKk䰒0UKr+YU=FHٲ%spIVi9qZ)G2G53mKӯ;-.+Đ W~@8VUʒ9V5oh 9mDp۶OrԢi>HNZ<፼sN󑌈QY7 +ZXZn7qOݶT{`9❯{H}NK'²YŚ;6 U1s0ꚥ}6ʤ+@xǔxx5_h72^kzmŜr,OqmKI#E2{Tvlfaab28sGsǹEgIldjYj?aByۻ>^wtNj jz],|LuƹڍHo8$$15քomI[[cp N@O^mUԬ[=^-2#Ӯc*<Bd9^Ί̸FgyieuY]h-gDMjꗈ} vچg ƳQ)]sU: +>'Aejpچ]+匶yX"2w0Rq{Aj6qoŭд. [ dsҒ[;#Nh1Alޚ7 ]F`9$B}EMyM'MԭRM˓IurѢ{?楥Tek*m~wo^c}s͹ A$8*f|mzueyy  ʶ29RG=jƭA}a>Hvci4sGsǹEe^(|>CRyx##qxֳoV%+=Ero1̟l4s;_PO-xZOdKً5vl!Ø^Ab6-a5K)/m7wHV9 )kQY0odۋ8X+5v *F|e;zosӘ+T|dp=hpsjIԲ~v|N*J^b3[çVAI)`\1#VHGvutVwu|IjvM 7)#Pqz֍RiRWAESGCQҋJ`=GJ,kjaDg^ (4 ( ( ( ( ( ( ( ( ( ( Ǟa[K+ث|z5o/G/GQEY|LCPM?O? #*ܤQ6{uk;u%{+i+1>4..9 z);]7{/gGnm\>-K[yoDsE!:/y/|?5㇒YSbu'~DPK0 JTN?Ȋ.͋ |9q qj{ ~mW+zuٹW(Nw<Şolv_id['ˌ+Pw JMLZ[x%gH/$y"Pxf wW;zw2<]6X7L].Hnl^G0* 229 Z>*o$H@txb ;Tހ ^E=[0wm$M֗}=⋻K9IV)] ΧW9E>=TcLJ4nѺv;Fc "N?zb=/ySU׋TIm|-om# u GcIW\.adveqA1-u#P:˥HAk Փ4)q3y5!xвݽr;gע!#8TQtzS 7е-R^im^F kXЪ/'*T^hm-1]慢H2θ"\ Z>kZZ34ǝTAyVvW&s*\ s(qP:U5>CIJvs9wf=ITVS5-S !\B8,Q~`c5m?U/5XՖ jv1&lY(% ylǺSRR*PUt?N-I&#GrU ,H8*\+_y>H4KHknl96Q,h ۲@ Gu;׉'mRHFa 7aH^Y|p^giw,/쨨|t3?_Vy֏g:QXfP@LN y5k?./>)4Xmp3HY7 = utVVo1xO=KAg:|E4Ļ*ѫyKA+FIpG -~k r? [.7AES%wG55zXרyzDQEhhQEQEQEQEQEQEQEQEQEQE =_ÚWW7<j_qYK^3^7袊C'Eu9͇##G*.{m mǍQɫ5i3 YQVs3)ʉ]ۿw;[8㸆HtR,9϶zV~[ N=]%F{o}6QvxS&sr8,|*S_}[-OR3\i|-1 FQt9wf>.NuW%4k&eFq3`~\oCc|iꖚ{]å2%N /()$AU2j0\]jڥuoes24pۆhv \tJ5ta(¿/4o}M}>{)+'|Cv r:wYkrCqcc=rKyTc ĈHEt|/-TuMe~%-y,{p"s~g,xZä&{!o\Gs&*%T!we' yk[Oqmz[!Nu[âͩi $H";>|9HA?Cy;'hu84{9-&YrpAOȤnv_TҞ=r{wUwV o( K+м-&pMڹI}2mE#D}djI17%GMk?PTR\NVP2cDbhQv*ޭ_:g2G38"КFt*l#$4djKsyw̔ UPI4Nz)= u4<3Z{wqlM'fb^(UA H2Eu M%n\ mlpyu?CKi“NI'k1Qq(,((((((((((((]Ezyv%wG550^3/_QZQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@xWU =_ÚVRף  (g-\.CMsh%]x@4{WnWXJr#b|LCPM?O? #*ܤQ6{~%. ;ŶvZc&N :ca-ĈW#k(AA/vIӽRJW4MmugOh oTxIXM&MR5IRŮN&w=;WGQgi7zkfEW h;vu[?ŗ#G[RGIflB>ʌBQS?38LJ[vk_?Z֑-3Ot"Ncv8wM/5j mwUʿyR8 Ζ1ܳ=~f$ܟS\SzoA[7("KZ|ڑ 9I1E]%^zd7lzOxz+)/^) y%|۰֫IK%!|Gh`dGr o4c·.aoeGKm"27DHB]ʹH j%)L:iNcga>$Rnk 'Cm%5E`if @ hH(H+=4WVu.coy1-ʹ̒o0@Ep +.q]7;)4&.KkYo@6qc!RRS)[O3յ7A9=BNGK%fvd=Ž[!giUGdQۆYq$AgUӮ].ɡ{;1De݌|$fbW*_LN*yxI,-/cvi;6*8'w`qSkYMk H߱cm#+'wn຺i|r(K )܊[Km*&;x7qDf<˱A8TԥJsRz?gkEWIQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQƽFCQҋo/_◯肊( ((((((((((wsV*Ǟa[K+)|koQVhWj\ ʹG k93ܮ[iuk<02G5YH'pbsQ;+Oz%-ff%`ZHCynjO=t:뗶S5pH4ySĥ2 Hg5k][OM>Vxbxa9%] VSCC3!XkNvFg=6K Kgdr#`ЇBʧ 0xfjvAgVT*/ 9%x+Ʃc6Oqjbuh DKY=]%kA/]?8TPlXI<|3RO>0H4F @ />["gQ\?!v}^5A$qDTT .N㓜o&K}*IlZ{͜p\}Ñi0]\N+ݺy#G]Oq"qڦe5IR<aIn'Kk{WhYF *2O͹sp8?ɨDnmH&w7?@x(WN*ޓ KծTϝk <`Pr0N9j[Nڪ=Ă2wzpsf?h]~װϧj+%FHI>&8&Fz\'߽^Rqs4gXh=V[j"xn#1]ϻv $g޷5=VE{B0{V8',@. qwصEg_xIu Rm]>r0y4M. 5> {E>QI8+/#z]5h?ĚNy-eyu $H1PrV'$Z]6 y}+9.66ݩo?)s.pN)sGhz?N{ijvunp;#*Bܐg5z>skowX]rdlHzί 5 iX&3pH@[t~~F;Ud;Ǝ@_tN=)sǸ; yM'MԭRM˓IuhN_Kmqt8Rrrx\˹\[VϓZTzi٦ٵ @L䝤5D5.NGs$FYK+7T)sGk+K xOD˸Ya.|;S,wo  *=;G;=VmJ.!4cRum\q]Ae%rp #^ΚI귒YjWQ H-C }EcSִ{5s4Q@'.AŒy5\˹\kQXZ4֚lm%6qh$%H˕U躶^’Zh۹8Uڗ<{CMw::+25cq`"knQW$9e=ǭb]|OђQ͟W;i {"M"o Htl=z:+IENNx8h˄0 ;N jZѤLv]Gڔ9%w1`u` OV/k;Z*;&d CP)GCQҋJ`=GJ,kjaDg^ (4 ( ( ( ( ( ( ( ( ( ( Ǟa[K+ث|z5o/G/GQEYBЃhVX VP/41 d@ːw>ެAIꦱq[7G]zI,#*:C;GwEbhb'+~Oö)hڂh]+`yrD_|R6U_2ū Oxoo쭵86٬%፮bP2 q/5V~(c%\7_mΖ1ܳ=~f$ܟSV&Uf%UeuA(yME>4StJx\ u.| n!QDG 4W;SXt<L,$6vKHBǦK$ Gr r/g8wRmRP:mKuP?vS~pAq쫣GK8ycVfUqv9y>MYWmj?95tm1{{[9abq1\2N+nh*[B5m&jbX\2 g<]^s^3$/H㺳xMKR@?0\0AA7aewF6e%nRK)bHu9 SW5g}ndRr<2*d]_1xvۻ3tkC:đ^,[:iJC=c x^=7Kk;Bs"FRSct ^+rGxC?Elo$B綖-c(qGf H7<]isq34Rs@Hq^E:45xu;tiQ vHGhqxFT 0Ӯ *-ؾ~?g8ۿ~+(?}]wyAuIr6*[GoI<zU15xGUުZ~nWIHU.;Z*+&*_sk~K:=橥^hv\,mrC6צR%bVGgZNJEK{+,;emGZIZ8QXybwUӯ4 fVXAnSycuJ1 ǹKdWǐx֋ZCJo03,.=O^|,+8A 's[`=rA>ֿSç$ #z%{ҨhM/.DcsY,GEFm@;}/GV=ӫ)W ROTRdRs&kg5_+ck,pJ ^zTrĜ/V/pV CUd1I"yms --{5EKKWTImIѼIy [k8tɡyOF+~Ҹ\c?t;X_I$,@~oz1yWr#nxkx7Wo4-:kY1m܈ccƴa.4]B+O [<,j!DeB 1AQ^EGխ~߁Օ$n&ǂoU-=]-xľZ6]_\hdcQ*bL23C*0iq Bt JТmvfхޭ@p(]Ezyv%wG550^3/_QZQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@xWU =_ÚVRף  OcxF7k=J[Q䣹%Iu;I V}oxR{'ԯİ3"Hcwf%X$WSSNuŠ(MB((((((((((((((((((((((+<}si3A2kBwݴ_o0ry:?qi2ld{T54[vM>٭Rc?x>KɓJ3n}Fp +C@((((((((((7ZiZɕKnn)d<1 {]nEz? E(^"sPRS? E(^"sPQ>Nx&6 ox CWQG,B; +_NjbLm/'51^E T'cm@9?1W?{rϿ-S? E(^"sPQ>Nx&6 ox CWQG,B; +_NjbLm/'51^E T'cm@9?1W?{rϿ-S? E(^"sPQ>Nx&6 ox CWQG,B; +_NjbLm/'51^E T'cm@9?1W?{rϿ-S? E(^"sPQ>Nx&6 ox CWQG,B; +_NjbLm/'51^E T'cm@9?1W?{rϿ-S? E(^"sPQ>Nx&6 ox CWQG,B; +_NjbLm/'51^E T'cm@9?1W?{rϿ-S? E(^"sPQ>Nx&6 ox CWQG,B; +_NjbLm/'51^E T'x7:YxMYmxoP3$X;_s ~I ²+DǮiZtoOQ>NxGɧhfyi={vUm;zӥZw^6HF1Nٸ͹PdnZms]Ɖ$Mk[jQgfhgW~^>GKO[O[Ե=&KZۍ*ʌrp8?-dž<~%#̈́Fmd4qS dƙwIGguGIIs g*7,Y8">j.V=QrǵoZ{j3}yvlEcfP_v>e/!Q IGArM5qt/]'Tt-'kv@@DX;Ii6 6+vؿjd|F4-J[+˩H ks4Vsoj_D"*߼e°cA4?^Mk{q?o;XHy4eps!Q'&[Mm+zRN:1Q>ѺHsɐPv++TR[Su6Fa.%Z-mwcpH_R=u.|BKjg\يqdg͝'\,q54Bxh0gGדx?ޱ@-m7Bŕ?"7~eIm\:~q?麭k2e.sr20 q??#VoFtRZӭ2\ ) 2Sр =qV>4[7,%ѴA&&sRBYȸ  u/ŒZwKRmm`,Ǽ:@ʿ7@vkBxkG";*+?D -k[Xo!HPY (d\dg<Au=j?R^E<۔mu.c :0XCDSi {jm^xac{nV|6e)WK%Q_',TDK}l40!E#cOLoBדJ4 ]/[h[":mMB_:ːܿ9GPY{_ fk $Ӝ^ 2]0 0b TV JdNV>fP2I+|?t/GM/Ok_ctNt}TQ *b'a5x3Qφ k=BXmdtfӜgzyʪe8l+۽?]w-4"I[]՗z  -sCvi\B;j. ZFCulpM>> >%km6{)Y~#J[>I! z;dzK=Zw\YX.uT54x̃PE.apir9skH~(_̋+ƚ]ɂ4>gs C".a"dk%Y$ry5/xڎ"sږFnBgBBTx^bs(74x4x8+J"8So·mNoɦʓ8ңظÙ$ ULbVhinu᥵TW%}cujCyPsy㘻tעӴyiWZ%47*d>j)xr*Ў[X,`X-@2rpIknI<`C9!UW'Wu/uD5 ?N6kGHnTFPiatxKAN_M*eVMJYb# 8BV/V1[[l# a;gb噉$$jjZs%ΡX:.uVmZOna+rd0|pRu#JYKE;,1eM0"mOk[ծz74,F$I_Xʡw2<Vմ.]BMԆ}xI@`%@# qnRMu`mzMƍK;S*A(n4]Uu y2b2*8*A98Ş#՗ϳ|InOkQt~6n~'>~wr~CRO.RMksN7OӡFHHo(cy8ZLj<#[ٵ+ yv c'rȡKN(6myɪDm!M[.xvk$ytAP+.ъ؟m=b V8Zgeh)sc¨ jFZf bOnXFnjNLx8_v|] SFh,:mur 01 ߴZ]Ey4'3V0W6jj\Hqk(('n'Z犖DCZmHBe 4{cRmj98BQ^i^Zam3NuK5l[&H, 7ɐC֋3S4 >R9 b>Cg@9VىV4Wꟴ#k ,qj1\Q n"ϓ(WG,6=ƫm'QhɥA4SY^'J\* hզL&P JS}IXOWj]^m#OmRm2Uh_*Iyn\@DZ4܂{ h6 s R %O A #R2vFEtQEhhQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE |_xzOj֝\7Xo.ʝ0 AAץ-|;]=^\ޚ{8Jc8^.мE'-kO246wQX$ds]NѨTu=HV L\*Sze p$XOtl .3 8BVL2J[|3CLԵm ;{Xe]6)$uk^ZklU~4y'qGco6 +j߾DpGǗ2;_j_|:]45噰:lڭQ^Lxܐq]]{8٫C(-5k(YOH"I'ɿ;V5!]UjHi«꺦uh̗V["u0B@yiEñw_4&-[Z}"=-76ч-;|ۜ8>ͬ N;/5dyf!>XÌuTRP[!{(-}7Pul5Y1 3 d)xGi-gKSX&>onnmk(@ȅ` FI99j)p(KtrÝ37zqOGdкb#k3 Hy !)޹ ɹ/o{>jKq0HD!W+{z(t7N ݣYó7lnE?k[Kj?jhm4:dxwW24Lq*V!ۑ݁=;./'k˶O:y|E\* \4jkOKg/[咨DH1FC31䓓8]l]0=TneԯJYu`@"4w9;IcÞlmW\]nmL8HqkRQQ^@}3\^h.tUWo$Tb[*w5ovڥ$zƭY&}.@IxH LN20cQS؟gO#6 dK;)"H'lg ˜'0a[xB >t[4vЮ"|ds(FJrdW;jv[ZM\z-ŽDֈ"'eǘRs/|5o4bi,/K*@6V QS؟e#5>.jWRvۑH|pAPm'Oa-luYuiվ^P} IERjWCmMk:-ݔt:|(!|A 'p[7!* Gk1hehh"0Xn*cdF+Kð{8v9|jKCyqzVsGI$Y^62!# smM2ؒDF?}!秷}?]O$#H~yl"1o==S(Dcz{{~~COoobJ(1뷞ߩ"#v>ؒDF?}!秷}?]O$#H~yl"1o==S(Dcz{{~~COoobJ(1뷞ߩ"#v>ؒDF?}!秷}?]O$#H~yl"1o==S+񵵝^_4-GVw\J`o?]O뷞ߩ3 R5/L"#v>Dcz{{~'@MKzԿ;;@0~COoo`H~yls?5/ Rt"1o==SDF?}!秷}zԿ;;G'@MK?]O뷞ߩ3 R5/L"#v>Dcz{{~'@MKzԿ;;@0~COoo`H~yls?5/ Rt"1o==SDF?}!秷}zԿ;;G'@MK?]O뷞ߩ3 R5/L"#v>Dcz{{~'@MKzԿ;;@0~COoo`H~yls?5/ Rt"1o==SDF?}!秷}zԿ;;G'@MK?]O뷞ߩ3 R5/L"#v>Dcz{{~'@MK>!E67F3Q PP"#v>Dcz{{~\пvzu L/s\T"#v>Dcz{{~q][eRAAx U@F"#v>Dcz{{~Q@?]O뷞ߩĔPb"1o==SDF?}!秷}%~COoo`H~ylIEF"#v>Dcz{{~Q@?]O뷞ߩĔPb"1o==SDF?}!秷}%~COoo`H~ylIEF"#v>Dcz{{~Q@?]Oc+>l{zoaP-_Z?a%mF@{ɖ(',@j- ?-dѵ[^7kT8?%~IGoQ1u܎So~񝖭߈“4&F\0'ziqrγ|{}TVRNKw"feS*!8 S9pq+u\|85 +,SVԧL\E2Iq9 d,VCY(^kW" ӧ{1T;HX3riۑ-,\xեk\jwCmw֯\G N8=UƽizftKͨ>FʏuB@<.@jK]kZi׵ y}|z ka,(6Cd5q WV1JWV6<¬(,QM|' _E*o4m|Gص[i7Upܳy0ioP^ Dn|qsdE;@%˕$Ef\ kO'3z|I9I,DZ&X8>Ƹ${=:] i6I5đaK){w<o뚏'w7Rn|/48j)UfinVJ&ܭ-4Sz+(񞎞.Ե aeqkmy5<22cSd7> ѥ5;kO{d0j=cr ֝_iڕoiQ[Q@y߾(.IC xJZGO/.ٖ[2bYPFX Rxwg.|Fh6XdRHFvWv kv:V[ZW- "f_F]nd+$.Ś#ۧдx!In "yqp~^$gk՞d.-@k7,c˺ׁG޷-+IL+ei  v<CFٚ ƿ Fm2qfc=<_i,"M$cwd,>qj6Bt{| +ٻs^F# 'Foۙ/ڿ<+sHKē]z X5l~nv-ݔ%qQl~.qxh;]-6p  @> \6,K]:kk kky wXטhb^'T&xu7#h˭NJ"ȷAdG&HQ^隟&xHh?v*{{Y dռ-2xE vz4˫LO1Yy.Bʂ=g:{mSNcr␡]˒3;Ol_W1iW{]Ff@y XL)Ȁa[!Bcio#wiuO ńyy*!k@}IEaxOOaq4q7yemVw=O9b ( ( ( ( ( }O҈Q˷oZ!? <:xkQT,qp ïqyvޢ:Leq8 ҙkr|f[חg&e@QE((((((((((((((((((((+mqFk*z;/^Un;qiKE08j+KmO/?•+#FZ> sq}}~\\ܱ.ت6&A?1$kҿg~(KmOqWg@?G#_l?G߄ ?g~(e?6'Q@?E(/?G߄ ,Ev ?6'Q`8+KmO/?‹Q]#_l X2g~(KmOqWg@?G#_l?G߄ ?g~(e?6'Q@?E+/časn2W?6'Q@?EoOzRp2OzO#_l(t :L*yQW3|.1k~i-Y!ER(((((((((((((((((((((((((((((((((((((((((((((((ntfy-2.11.0/docs/static/img/uptimerobot-test.jpg000066400000000000000000000655171462047176100216240ustar00rootroot00000000000000JFIF``C     C  j"  X ! "1TW#5AQUrs2RV3Ba$Cq%Xb 48EScuӣ9!1Q"ASaqB#2CRb ?`:ٚ'FRI4cH/+?5esb3A)ՠdFFdܷˏX~Ճ5S-ټ<'319=K EЛJx %M},$neN)DߵF[d4Dƍ|}hjqg6?6?caaN`wwhc8K)b[O+zQ+aJaؓh̋Luݼ'=閥dvef89a5sCiZM "'2zk +")ʑ)Y~fŊVjRLߟؕaZxlرv )U^p\,dx~]ӭ7¹+X1մȍMfi3(d{CtifjeާGjm}^R(an/CkVFI?0yI)&Zc\INnLSZk:ܙN31 e3mcp4|L-cRinΓnHS Lu =&^ib1"[pbbbmT4Lӯ:ok{k[p-VizxEF rMut;C.Dl^[-\ƣ$ƪw:q}9UHǹ4Vw,b4ګZ6q wNn!f.j%cSqu\0/9]m8t]ǿ7??gߏs̵WҎ[j|e=77@]>v ;F͋Dgf{|f*6rKkd3עs=J1dʞiTh4q+.T2>́;Uyx >[j4x:aZHqiRd"<\뚫=IiRaPS_oZm9G)ꖸ:Շ^$Z1k9қ߳toR.k/j91b:3S䷴sM:F&B\)v{읶=:QebtYz[NcbD~c4QkTgi(###ۏDiE&3$]Z`S5"Srw G*ȻKsr㩸>׹;[SUV"ZrKOɒRQRDDDEڌ:ʽӉ5l_w$$Gw HVz{) [b/T`_W4soV+ϲO2gd#&ȋ3>ό1{Mq4U< 3( /T`_=Aza9U< 3쁀{Mqܿk/[> /T`_=Aza9U< 3쁀{Mqܿk/[>{Mqܿk/[> /T`_=Aza9U< 3쁀{Mqܿk/[> /T`_=Aza9U< 3쁀wJ }{u1ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪!ooUwC4s:zxg 67뷪 [>{''=#ߚ~[^O7涽װ&? `#ߚ~[^O7涽װ&? `#ߚ~[^ M3DpEXcCĆ!c_d'>)>lkĆ!c_d&C͍}_ CƾlkĆ!c_d&C͍}_ CƾlkĆ!c_d&C͍}_ CƾlkĆ!c_d&C͍}_ Cƾ־u4Ir$)V)IRJIGFAN61XXlZO#dVS&TgHSBfRYGε$KL)=>w"c¢Zˑ&PVӪ}R+i)pТJDd$D:8`GTiA0s7iJ5}e^ud{E:+'BθPȤxι":.-JR1x_Ud8喓m\KAZu$N┧m3m-RUI~H͸ޤ(U?GioklIˎ'ԕ$Ⱥ#B|ܩKHctڞTB,Iꆮ&]ǽv_{e>d1ؔL qŨ:.j^У{`5ΔqU]֭yR΍U:BTDӪ{Dt#r[h'/)ڍ!]ɺkxa~sw9 e_{BYw9xa~sн]{A_/@xa~sw9 e_{BYw9xa~sн]{A_/@xa~sw9 e_{BYw9xa~sн]{A_/@xa~s _$2xuXE%t6cEͪ\S WImHR"=]űʝD|Nm 35dUDEQnw4LGL4F_b;Z̸o0\222c?ͦE0Т*N<2 ֭+|S""H3C\'^]Dd]5A:c6㙵|4USA-ɼLOHdwmcT3rJDn\j~C 458d$f2"#3 q͆垗fO^}Wd SNT=!_g$}QE[ı |g6k͢fwCd+Il>r*QynƕȖԧR (;&ɱ/eЪj;2Z;H5,-%JRdI$jCw8|lJi)k]j cئrKY4B#>CGq[hR"0ZjGbh*5 ې\f[M8Nԅ$3J*JR1zSY\ Z=Y!k$;6.; ufaɗD7f+*$:C[j܍#A[qaCӋq/ [fNlB3ޗi1UHXSL"mA76؊~mB&-(Ҳ)Qrȍ_2<Gz|Y|GG&rAƬL;}ͤ D[%(M؆#qVؖV6r|;)f)9:mXDA\pwG~<ѽ9:̷ܲ6ˬ9Vmޞ泌'&vԦV|ëʨ3*3vNڎ=bnKiRRN8/-\Q>73 ?^b3 ?^bBn BL#0>Îr H32/1yp7uE#jN"mߑ!g,Rf-Ԗ)O! $;r'Hrc{xN'.Dĸ3-7e1u&' TpѲviW9kysl28uY;ڍU7xsi̙̚Z}wm[#tuOHqiwhϧ1%vvق`ťQ.Ŵh%:SMsR8c-:\RϓkǗdMfٽhu4GS]Z"k$[6҄d<ڋe%Ea]q[l rM d1f"dIIʔd,RΔԩD5rJ'pN%&Peѱ .3dX2,)(_{r>ڒOHbOnޠI%)BIIlDEfW]-IfFf:WDDrnZQԽ%6fIC5(@b`†{Ir@Ƨ}D6$5:GFfDGAim+Q|[p>=euKq챲aڳ~ "n?HKBVC3m^Isպ+%]6N12*C&! e/-k۴UO{??M6wͩEuIjJ=i[7 : N/?Y4Wdt,OJ;̓/DFQnFDd}@$D]@9'Z]J]q}Y#$y)do%CK3"")m]dBF ‡ίzXR("Ƚ HTKK2xξVe$ 14ˌfLz]>[u%ڒjRR%>RhZФGm-0zGl',-&2Is8Sn~sxډ~WqeŲ4˰ Fj3ƶ?fW6;#bGycp|))jI1Ӳ\QnIܷ#?0Q:_Όp۫q?to&H):ɞ$~3c46 AR !8 ŭ ʧA2mc: 33$F+F'b!{ٮYGGmOvVehy<򊤥FqNLbC[#QʲMq*:6ߺi?yruw rcu|bQSD誐́$PqTs̔FPMl׭)a~'zJۛ(XmH"]ot+t${TfD~qGeuo;>ՒcqB!XvԲC jCNIKRUTˎbV= BEQv$։s.x7i %78ڛQJԜ:;k۰lgpc4Y:O v<-HK$0jFm)`}A ZEaFk+ OpB@_MIfÐP"Mu×dVCMxwf鈭ő^qmGi[tw4`5;K4ZpmX5VIAfGaOuc.d,#"2?9C. ^ō6ibÅMótsl1ZbcLk;۞6rIjY)/Hr ;Ǘ}&: S :L}d:Î9[iVq+5:UGSF#۰uxm~~WPG&+i頢4h͗P]vi;zF۴cEsEEyOt?𮞏ozv1&刋E-yDuI#[8,(^ܽcrZ70y}]m&ѥ:wQ4;X1sO37wMr%*㶳r5NmC.B@x܁מ8n#5r2PZ#.P%0zyJ_)&q-MD]#jpkqES4vN0ij95_ڣt'.)۱ss'j)Xܗg+/DQu*C6RiCL4J ' }$8H#pSd<4Ϲ̹ю/pmG᷄RFsQ;fHқ*N5Mi7ٌu_ǿ@+Dgxɟ{N{*V-Y9َ[\[arYMWC[16XJHt ů$Sls2Ƞ}e %B.KS% Ɗ)7(mI%Ծ}`^Z@x[l5Gop %I40#d4A?)OHG):Dm`ݏ0Cc 6?~C 0?v?c ݏ0Cc 6?~C 0_֫QXQ_“ŷ}@rsja/$IvtxPkl'*dIimjkkۣ2QG4C>Mxw)>^ޱ습cÛ1e|tqG}]PenFn| $:ᶫ#JФ0z%D/LtZ^`ꮬɉNDzMtž&m%- QY$FHؚuAfjlz:2 lV̵$JV\qƙ3nTT_#^E26-,3)#%mI_oi% ZKmbDELEs3ScX?PpJnjvZw9ՍUʞB\&lIZ^TK\d4k%R67nYa-=Nt]UM*2iQ)l~+wLLQIRqźdMn'YaLSWr2n4vHmT$E5u? 5s2-n}VRrBN̥dө%b2Sn'>˴B#7>;wC5 38 g"-tNkO,JFNeXg+YdHuFHCy>YL-$wA2MD-)τ$ybτ$y`>|9 5 0rsj`< ()ID4ŮUS56(==|Dk!Ң)(u-맹H3fӄF#k>(XaGf6t3)+J}ƒ%6m+?#r3RRe\G;sqmxY_N?+' nL~SN b+HuQm=Umղzd4v\|d?e4_dsffUnѾkYiH Nt+}8f?f:y.7źH:xR[Kn+vI{ YJ<۩F{O Ҍ?уcpK`oY$/"f# ,-]qfQ)usuRxT-Jw1]{I R[iV5v 1qTeö~sc|mnΏnTm- *7UFƦ-kI i.3qotGmiGNJxeƺBTtd3oFLWӽ*mSMWSk~Qwz+ }:v5&=dGJXJ\%۱I$1^4׍CwNp;KY;ڦbGVwƌo ^~8m^o0yUhkbvVedQ. b]bp"n#O7ΗWdDZG7!siY-mlL]-n6kw%IW? ʹWSa}YleDI Yn3I+Er8{̞^ehᅳN0 GЛ] Rdk%js> 8*x,oq{7;R-&ңO1nSDj܈d`ֵmam8ϭ$+AI22>22uӬG+?í!ǚ;(C;-REk$=:9烮뼇eXXPͪl"#GGZZaW"CFj5f/jEN3c% c2VUrҝ,DW% >u$~rv垛E>޺0rF ̯ڳnDU$%6n%+"3fCU?Yw^cⰑոv=i|uNx%N%收'R l2J^>GwcթVbCɢ,8KQ4)qFjpIII}@rsja#,5 0_Uƌ_54PBJRҒRF۱n{Tw\.sٰNFǝinJJDe7?|kU]ΛX{ρa$V%ʃJY)&͋|Su F I\ˡ.:{Lwh#>3؀O@v$Gn\8\y$F愙O2w2sp -h_HYSҥIy-i-Ե[RDFfgDBγ5nrK 6%"ڪNS1|Rz%qesRܦGVnm8ιW)|$pګ~6p 3 *5:4Me(6$?K"< JX?jY&R}UfjljFռjYu}xm2'r:l2Cmdg\[\%bO}L-Sn< 2- 3ZVgff1LT1LfDMC'~`.Ӑ&qKWA~`Hc|ox8ߥ!{7jd7-^Z qKWA~`Hc|ox8ߥ!{7jd7-^Z qKWA~`Hc|ox8ߥ!{7jd7-^Z qKW@2@#s>)>)/$3_MI|Ij"ID9DY:sg."MK!ACv*n_FVT8y&{.řP'=VVt$>9QoA'*t<wU>{zL%R|d5JMK 'Vey$E눚,^Zu]MqWDɒ(,xCfҋKqn ?jqz{-'ETfR0n|(RVMnZcAqidLn{hRYf\Q5$k7gUnEQS+ZV ¡&BimnYI+pOK47TګƣÜ]'c]b[df!,-BV)oZTkF`A0mU*qqR:$%). 9Vg3³Zh6g *؏=\\ƭdC.ĕey2Ɲn*fEm#rFI=F{"flǍՋ\ښbI78o0㓙bZ#HSCZ)I#%"I=O+b8M3LXv=gjq&@i^>4\5W@8v~&TYPEN!-\'?i^>47StIm؁k.+*jm7 JlF[@хqYFbdLՂ8;|JA(5ዌҮD+Rࠎʲʽm=Rvj+i5^qj%*^yJnU\Gpr Mtdǁ[ 2B <:wI"ƴgPucRt.WXfca]bjEp޵, "m,W ᩸{Hyڛr#WaƫY2Ն qDf33xbc^`gTGY>5GR QB[gȸsl'4 VW-ĄOa9[rև;fu[n!D_z{8ʬP SM kWYFigђ-ĩ 2m;*kEKB}Dֻ-kQ e3 lP)$[놯)jqJ3==Ex>y9]#'#Ìz9''xIV*kIߓN[FQ92s1he#ROJh%N$ 2U9:'\cXTo#!TgC[)u˘Ȥˑ$4> 1cuK8gcQ Zm]6̛#>#x8qͬk 2Uf9R%zحC4T7ЭFI[OhY4r~>tڸ]kRVVY"X":3 ܒ+3DZ؎lFeYeMkra(Gu+9(3G%^Iy$!vj,1ՐBr[*< b Cjm{1BB76 'A,W)kYbp=3"*Gq%72p8Qā=VW.g'36dQ9>H_:W>u&T'2l٪[P*iWZdȆqmmġ6VىTMGԵJ-kHT@ghY&tH[H4ȞŒ;ze7 ƴ'ʬ,(UTWJ;e"KKROt)dOi[㾮 n8fJeWµ\”:#Deel o%yB_/N.dv13MFIJH71Q`)i5`_2Ch{ڙRiYѭ?JlQy*.T%n%;%/,-Z}ªz'/V{}owpύ]C?zLdӷ,EA8r\YlsTgћ*J|'w efxyO{;w;E8t[=io6ޛͯ^O=@dZ1 55ϰӺy}.4~aɭW2GqN>Cۘf]m q/餭b|՜{*,ycl9!094))7A̹RG̣JH̵wM)ի NrU[]cX%ZCaqI؉QR(Ԓ-~_<7Y%͘\%'I%T'}]#p|V$45$6IdJI;lCS3s.*Uo)do)!M#9!{ۊmjJOvf1jgyj6UE'%Qή +j'"+ݍ)"r;HBaFmI=2'`73 ?^b3 ?^bBn BL#0>x_wEA TQ/#f䭘lC7SY8OB874,=IL[2`I"DgR\a{- #̏r3#;~836c.;ExfOtǜr>C:Cl5tmC`>r$CQY<~V{KW7ßzWxѓOrߟoo᷆ Lc`QFS4Ҕ+nyp+bŨdD[DEݝŪ'/ s{gggFk;ghLh1L{Fm;CW\f\cG̱s\(oa)gȒ34IF} hQY815abE-9Vq-s%RgyX'~Ko' Y+#&fV15ʺeGqmrFK#eK23ruUt])in:fˌw\8ȯ#?/apԼ@p{-b.gr1Kl<j4y/zs= K{zҾ rˉy':sT"K)V*,m4HA-Dy-V/<<:x]🫚JZ4.ܑcPPJ\/ ew>\@p[3vʱ$sLQwŒ"isٹnj/9znSuNmI56KK #BҲ%$m2t~;1xOx[1f ;2mN\deW[ZS!get/e-jNWY9ow8 t^fZ)@zv{rbYL)㊏}iŵB0]+b8w !ykZ =b13*>+WTNF'7H՝ZڂfBE=R\ADyp+lR=s3,p+Ümצ4X " i։F.qK25s+D۹cIKwri]dg܈(r3#܇X)QR /7!v5#3J ?2cT쥅(-L1 M\n&q/|Z jeP=:vO;n]tQB ~5 I)3JyKbܼn܅I#@_CL[JP-ϰsUy^eYzENSYJC+rmHd9&*ҥr$nCziM&s=s;'')I:%dI*)f&ᓯ6i79őRA#s6y Hq -ҤvvVb3ZY[?ZVHz V9Z[HB 薈muI!.FҎuvR._3x-ꞥW굳Tw.P"-r* zMm*hRkB<286ٝ&%";aI3.vmm>tGC&\_F_)žCs̸<8đČFjo0XHΡ,ŐCM(4:6I4u 0]U=}KdE[hR JJuiAkqKBZePH:p)a͏Q[:S^2m(I2_*IҷChy 5ScrZ '\#RJlnWOs2}NϬKY$DZZJZY4㰬[67^i΃#yAO9QV46|"o9>{̞=ΙVJDk6=*9j坋UjuwO)A5}]Njh' kE媫v=zT$Gj^}!I[])EiMjS79S3NtO5z/FLCGxI)n܎?! 6JBJ'ٵ ZU32%laۛyZT7$#[%N- QO\CY&b) q$ҍfuErh4%HQ,G"d*GE+& ͦ2&rt0#̐%0ڐN!Vűl%K<6Y\MCͮfeĐ~Era "=#Əh2d]Ön㒲9ѿ`Q1QTC.8">lp$̌0'qb5r0bVfJ7k[H[2IPwЧ>TRVgFHf~ RkC(Ƶ㴋wsIn*܌պ-8Q+s~a)ml)QyNo/(Xhgz%csh8h~3WbRhR6-!?w ĸӼrO6Fڔm.Jh"Kp7]F5n/cvsF;\vj*7T'>k͜?}V[m ݋[So87-c`0/ ':e:ܴb"\Zو#j3πBOט*LBOטÐP!}7?&1LT1L!}7?&Bn BLJ$eǸx1dmßgZƲaˡvKbvALlҟmVh%Ua+t=\Eitӑ,5SHZ:FkN h6Y +-pk\{QqƤNu*75$(Ԣ=ٺfcINmnҷ+/Ckwv^B!FgKj[cM7­46D2HR)$n5ҠЕ+dI#K=KPeTG6Pͥ?}`j>~ɟﮧc#:>u1I*^Owj[oEvc ߽9ȶKj'|JUkpV54at^kgY{䎊+IW})(I)AOzVLacL[>պ&qw-^)V٢־=dx&ə2ZKI"e\Qҕ/1Y&c:;)>)`$SJa7Β=񑑙vy1Ggp-_ ψO?zW>!?Hp_ ψO?zW>!?Hp_ ψO?zW>!?Hp_ ψO?zW>!?Hp_ ψO?zW>!?Hp_ ψO?zW>!?Hp_ ψO?zW>!?Hp_ ψO?zW>!?Hp_ ψO?zW>!?Hp_ ψO?zW>!?Hp_ ψO?zW>!?Hp_ ψO?zW>!?Hp_ ψO?zW3ntfy-2.11.0/docs/static/img/web-account.png000066400000000000000000003050161462047176100205000ustar00rootroot00000000000000PNG  IHDRXz(mZzTXtRaw profile type exifxڥWv#B2hOgƙfef_~~ʪݦvi]vmC`NΝOFWL_mR33o ͛ TZb_gGeԘC FRK9S|hHT_]O_c:3k!+dpJ:2r [ΟqLc'?|~-!6u\0|m#u;\YtӉHKv{Jײb> -rxfvAR1Q¶tc%ؗPnMpT|[SY7؞h4>H޲=/sh_S j ̵\\>D@P$"BatT6Hvەp.F%tkFxBXe؏{l3Skspo6BL߯vW~+^ 4$=#R$~QEP^PD2mZ4DDQ']iTGF:; I;~E1=(HHU%@[lV`Z f^؉ J~ NGܵ Qnjo`%Ƅ"3B 諧Of+mydʄBYX~ߥf OKB7=H0>X'C 9Ehj=1^ڂm>YhTa>~s0&8D[TJh quXv-]K 9EZ7%S:}L_\BvW ٙ&w IWg񐣀8嚜RܨzQך_t^]f`N-1"QHby/9ᙆZ+ Fa?f&NGܩ tlR3\K;˜ex|9d޷|H4r{ WI< BXn9HNC=zqhxb(̠|  ֣y‰9oqpŊr2."' L56T|ey.\⒀"ր4-!m;&jsNP!m n2q̗[,tOjxP! _:[qf0 nj$";D4Gl:ð'jgA2mdH*$AQ|TNn2Zs!<#RN0mqĕ+= uf!Lk9LB':T7r0EA3U"%nj{+u"*Q ]h+@1rc)w}jmA[3w "t-ύi]0(yv.t' ߽_'&,+Lb 9j"Cw? QKB)D.k@$ȉz48 UH!\1E3Sa(͂hAol( U1 ԎQju- %e> SSJN{Y`"u|*@WKfMj jH >r%mꌍ].-oC&pDd,6 "f$KN8HfI{t{2-`m= Cped=AQ $c}jɴ1x5:dD4&RPAj'g&( мۗ}~C X!GApt !akvŐvڠUA9QPq2^58Sg.,J9 d- }gj=֘`m]E"8oms&C|Xcv,jfH?x*FGSЖ4LHғ)vZ`9J>AvdljL2$0od Ӂ`0rcP\$͋r~I;M Ep'nkTţ  &,wi|C#뭭93`uFz ЭFLv|QԳ^tbiwz"vr˳ :zcRXdXcdoS A_7ol/{@+voKګRQY-~U5F/Z$| ~D7EL޺ ?HU'AZ"=yvtdIc4,s#89>?A `jnkW#-[ zD hQA T5i*yZF3}F!,mӮ4 [64G^~׏M}f1Vzz@5;SzLKnH|ɯ-aۮ6zRYC#?ei}ZWh CX< +cA?HZBr]̗֡nsSJiCCPICC profilex}=H@ߦJE* ␡:Y+U(BP+`r4iIR\ׂ?Ug]\AIEJ.)ޗYa3m )[BH306'){~Yu-o1 ϲioOo5"+)9I$~LzX$]v1+:qT k8:kߓ07VNkI,b 2$ lh7HRU#С~?[ q>F.j8N3pet&0IzE6pq=rz)JAZB7[[@z"eoִRr+ iTXtXML:com.adobe.xmp 9bKGD pHYs  tIME.z" IDATxwxlI!BB $tA(*aޫ^,ׂklX@@z/HޑKww~@9;<>j;9{λgWt|I UC!mK +a3[R_0]F/Rt#BQmڼpΟBVCdڀ4_Rw@!$o'rB֟/ L)d˜B6}B/$Bvu|+o\{Pp'--ROQw^гmdouɜBa7@(~ԴeK箪VFNnDxAr#(  W} ۗ8 OUc+>Ռu&3hUу]s!qPHT7 2>{M/Ҥ WT`R\p|7\Q5!@q .t V5]+>{-y[duv_"l%^~x.X7re*#F pEXm[+NpP7/n]F^gVw"\<>O+՞v>Vm˹RUKzՁN_[֙[/ZvYu²*$Bkle+ ]fec5>Xaȯ.21u_ZgeikYv;J%\ܠe=he>ȹGTpEo+^)l@>2w]z(g8y(n,{:71._Vu²*1g:>YvYq;&5Xpet֊/`pU5 @UU+^WXvxo=V0T^es?2re묨V=+1$\Vƥge6B.첂a WSe%/u첛Ieኬˮʢwwj?Zr:^b@*;,\eæ.`p<.zdl=첞>o]Pe % $nՋeU+n쿑.+Y,O~veZQe-² Hj|e_.`1@5첑+ z-\1r YvYq{clU+\x˪*'3fuVbx@.(aò˞V8gTv تzmXvʡW:wxi[C+\#.-Xpe`EU²>ΰx7\@^ V\HW5+= `Ž-Je U w/ ]Vp[u!IY+ՁT+\?ms}2ZQ `eg]vY*2U'/X2re.`7ኑ.s[ V -gTuYvYjkljXvQ.=(gx5\aeO+%,J']t5Zbpe+-8 [lHBb5co]VUHr[ gx'XF VԼ u eeV| \a]UlY+lF]he ub²$^ȀeO+$5v@,l`Ż/pŋC+\eeOt.4Vsw7FHXQTww{QvY(DK7Ȳ^Vԅ+ZQ_>^eerJ篑.2ӹȽX=첏+^RKp[C+^Y31. +_m1ϔ]n!>܃e%&-t/,gSe7Ξ/5хN1첎h)zcv~6o`ኑ.ne+G~J$;.2 ige_VGADz˕?e{Dzn\*-`AXC/ IPw|z'֯?>w*>rU|l=':nUA[P?\V8 z'XQݖv `EuI@,\m}l6CRd4ZԊB2wf֤ڴ# Eut;Ė+{N}ۏFDQڠwѿDa( tM#p-``E .+O%?ò,d2 W~kܲ>ZH YWeт}[vRvD7vGyx$6EZn6޹kKzi,.:S3ĉL( PT m2=qүY+1j DO0Zxq . V ύ~.{'Xq⯺.M+ WrlsJ? hUc;!b-1+=B '*=u4+eBiwH7OZ1bRڏ߾KL-¥k vLA(/,:Pp}d2zioO,wJl˄ہ _-,y[ከЎ'j[]mIT_Xݏlfcxao>jdN8$8P| й\ީN7Ƭ* B*^t$ r|"XWĀX|ϰq\w٩֏BNEa4vp Flac*lvjx\ߥ;hVOk؞3: ݂KB]oFE\I = pnnS.`fo`ہ\;wk]vo_jnl+oYv;s\֥còƚl%lemE6CK~6de\Y؞rEX{,ɝ/NeÑ9h{:߅ cܚRuGIT{"DJA{#/ػ̇tJLB=qiV|y͕4u&h԰ nz%[I7ݍg:F`X !a2<}B/l<^*޹v<6afԊh^Ƨ7]ޡB׌'ocZ5B 0h / Y͖'a_V>4Gî,'ER•rSoyϬQ W*hm%{++Y+.qS/ ׾ua>ኺ+厌wJg(heZd5WgwưۇϹ>Y+rOJ%+%W7U+4N|9\}2}ʶ$}PRw&~?;+n+eb]UTA.-Wxnt>«FpP6uu#qEb Аspaȅ@` / SdW†=~čEB0(LDW:VhٻAwaGsD;<ҹ q)(L߀y }Wxo2j8)8}*z^%2X~ZvZv'{\9grՁTJu I3.KȽ:y[+*5zeQm;$*[lTj#+mJ~ɕ2%\} X-Vr/K68^ !DuW*Mȵ6E^+!P <4d؁MlUf3'G#k#>chp~o:7֖P &ذyLt< aGUxo!`B-#s ìgc<8`Ù#Ȇ@D\' Ƭ8k:iA ' +w$.}_x@&Vɘrf Vd>Br\@VKVS[QC}e5\Yq:OffΊSZxs^\u~W;kEūeV. UO'1XQ*oұ`~'YqSY9IkUۃoKzQH1k$Kb *Ѣ'[mVxK=Xv̆n,HJ 1K 1Et=Ž2790G7@Uv<V[p|Q&P~c4k9|n{ڛ v!lE GrBAY+*:~°rW5:V+5vbeeecΝ׋R76JNiF,,K2M՞Fre95}&yeeKc؞QtKPRd}IOV!)ePBvb`׾h^a8_ٙ`\"n"ʄ0CC=b" x(l͚uS h!M:4GQJ!K@ -/YDáBQd:.f^4"a&_pE(Py.`d@leCԦSM <1=euHXvςNXv 1Xz²ЁJgZpr7J颸 qEkf J^?(q&'/&])I n ɏhOlŽdh ` D JV EL@UMCv^^Q.2SP0j5+g?xl@blHv̨A#+>>.Uѻ7l"@VTzemH -XQ]Ųmzqx=\n^K 9ͫPx 9Xb*`qUEUd/-򏃨1* Gp|&~޶l) UL]IngSd@4҅[kv%wѸڧ?bݎNz1Hl:JgÌ<ؼG|q8hh6 jt,ŁSD@ԡ!Ĺx 8~; XHaiG12%Zv;O;Phkʾ<jr},ĽһJ$t]V|a8te#+PƊ$j*.@%BknbY+BeeU+.ɼPeWǖDFߓ+/@p݉v"uSh5ʄS[OnĜnA$7[g j5삧R ^%5IO ֹ ׶؀ApTF݉{ѫMLA{fqgvZ?Dۃ=rv͟ή}pM|3 ?+ was΅&WO˻cPhlANql޷߬Z9elӃݫ;4G6ނ6ګD;?.dC,iS묨Vb<<V)lumF+tZ*-`VgY+BY+BﶕUlI[A>cEU`Q߷f\lMa=CbPr7X0*dCcqGBCt^.d H.=&}ѬuW~fwesC\ oѦ(8yY=ɯ e-n.{.`+ UኇY}l 3kE{k7Z'Ͳ V +,\Dž+Vr:H%CbP}p'g.^<<IQXzKC0ѭ+Z)ˢCJeg<<=c{Nݬ/Xpee==\1Vrɲˆl+,6XQ8 *xC+,w/7X)1qz;:^p($v" IDAT.\w2Wu\hD7ƀ$׭/mGN~χ+B˲G.>U첏+uPz'.+VPvY:+n)ՁXvY mp/.9Xqza+{&֤A&#K8 =uč[+Tᳫn*?o?_`ŕgR Rl}$X1ZeVT1XvYNe% $Jm]j]VGڐXgT')v //,k&֜:"’ZZ@KkO<%{|~Cq<3{Ҏcwq v_T WN;Dz Vu֊ r[.n˜;YvYB+.Dz2.3XqOہ<V<l²V+. cu,ptV+[ EU8\ .Vu'g#W#Jr}%Xv٩s[]@GȲJK^ +ޭ ˪BMslxF+bہ/lŢw]vYWՁT+ 첑|Ɗ-s@b̲ZVQNal9c w& H</ z'XQo`ŧc]L3JZ|*Xq=de']= q2ee o.X;,l` AO+>Ge.3Xq cl*rZ|&\1@5@nu5 aeO+:FHՀF]/1]6@:?jVe V +Fg,l`ōWp[-+l" TN5reuu@le w]v˲~peT$V-S2ōZ\{5`[' !]`Ž-s[ .{1le.`[/[?vt֊OW?hFr[]v|޲_Wrs+X'xln\ms[ICQvYulU+]= aeV\'.{x[ "u]Wfr Vt~Z8k,# `֊_+n } .s _+² V *g,Xvى߰첺pEҩo1D3_XޭIJxf@j,{N.s[ U:)P|JPeAa#peud+~]vYUⅾu\WKe]=&]`\.`[n n[jsȲNleum_*C+{ʲ˾x첊@.cǎ WpeՕ]6@*#]l ( W|a[g^EօKG$^)l`0 o:}첑*T² V :kEq{#Tl#-`*\ VN~RWru}2PNⅲ˞_gȳVΊ j1UuVT+J +1rb~`+9?h}l4k X'FevZvY~g.=(҃+,zleU+>j/\hu!.{'Xdo1t]\VT+>ޓe`Er[Y+Nffet9]іo0re 7H|:\B;fQo[֗nn'eHj|eV2zbY+~d*[+ZVU+ V .2/+>XvYNW?o*URTou,,,,ql[oZJ"sM3!=w Zh?iyLDDDDDDUqv@ @P=t)"k>y_ `7/O(چ3??w#\Gց aԟ0g~)B.vtoӷbObȱD!U.h`amѭ}>;ΏN_Èq€:>w?~ 붝#zp+,hz,v,lñD7@⿟d~n6CXH*o{`pfxx-xў8s;pQq0kqy[{kwAX/"zp'׆q | fÿ]XsUǣcIDDDDDDD5D넞m'D^ iyD5KDb|u_: u3 yS64OͲ3hn _6l00om^!q}(,vnԮhY݊opw4)؁_~g46> QbLl.~!hoR}#}M … ߂{%!D`ߌtv[aQR|ؐya+{r0ne(02 Qͱ$""""""""zӖƬWcOh7hngs"~6%uBsaoi'ҡt@>>DC\ݺX,&;`ۻ ˎnк"*uL߷ '͊_ad-l9xX.w^ aBCۀxuXwhšS1Wߋ{7 }v)-c0!qR@meaNGԆqWbњh߷xZÍRQWmO`'f9(_ShTd=)"""""""o,]nxÎ +Kix?E; %"q2AH //F|RicnҐqE6Q :./pD(BJ#Q ̫qir7gfs lrD-t.' N:ǩ8gBt\J&%y9v>{Ѫ6G`fh`^3ig@XiȪxh]@DDDDDDECp![CZ:$wIw>Ÿk!:6Og_쀵6`uXr z f栈hh0vqWF&yfH0 QjZ%uv8JU~,@ti3 yb;fbF0`LXL-EQP‹,Zr5 P@;Ok8ӖPt7j4z\?WaTaGgBr}7Xr.׍ *?yEyq R!jx2!{,j~}jqhn:.d#0ȁ#Sk{/hظL8Wx[a1rqׁ Mq`fDzO$MDDDDD VX_ w]X׌s{VcIof3bü~;|3Mϕ8nʾ3>VP ]$!H!N+{d@+1gg>enԯ?L1'_|E4)Υkm#!pEφشpޗF_˰p,|.thy9Ds K4ڈy[QPL!Tql +.OF s -YpuҀ~`!&~oGشhrC%%i̪9 8Dtibۡi"""""dfBhfE,ApDslbɴZ1^D7b_cEw ;CE+!CڍۅB!_IXoEdθH fp+ϟ܀zHwnV؜~mz܆Q@yL0{/8 mC8 o4MM!%1 'wTwL apLZlCcwø3fik].P<ܰf5E%aM[m\\RXQIp8``6̉T*,,Dnn. aX`2 _.nܻXVg$^y Dq Q^=i4 E###fyPFFjBacdBDDDDaaaal ""_{yjEaa! N!"Έ,f[XX#&&o$:taaaZg]^uu"""""b X(Y薈'w""""""""ĀH',DDDDDDDD:1`!"""""""҉ N XtbBDDDDDDD""""""""ĀH',DDDDDDDD:1`!"""""""҉ N XtbBDDDDDDD""""""""ĀH',DDDDDDDD:1`!"""""""҉ N XtbBDDDDDDD"""""""" DX0xH  pĂKsK0u)0b uG|l<[yEFۇ)S ==]v0rH!qxLf\:1‰|nɓu+)S]!Ȏ=3as ã 6Nnjv"""""dddH!Aqaw0͘n 10r@l;1cVVD;No9 Ih:ȭZ~,)6$ZBbr'&Wh޻S"Ukt#| ?n8um9xG Z@ql%q| Kk4^6n~;s+Z#Q;ůoݍ[o%D1h@t @pLW 4?݈ %OuE|򝘜viϿ1a0a=-ϗзp|;pbxcHz}|#CߗgrwB? bYX:u>f4< mU yeۍ @hA~Ջ1w<,]ܑ[oqۑvwcbł٘OkV`XOLiXxiQy8o<&؈ +c. /0cq>a <?y ژyV9/ÌEg`] wѐ>y g. GmУG7$Dذuz^I6 D%tCmmKxwzTzG&P 0 8q2 `IСq0;2EZ:O&4?ﭗvI~qb~YVط 3t=~M`FPG`ԙm,,3y|L<%)if~0 {޾K:sta kvV? X4]<KڢO`l9G|| s``ĆB ąg+ףogE$?.޼-y)yS<[%q(&\f$D˦bމܵX<4s 4*p]1Rm2Ú^܈qyݸlQuX8S2 /B- ;(#a1Nێhqqlm&\`|,Z:~G tLޯo=W%{Kr"#_mDfoƈԺ-z\0_rhfHJ<-KLHy| p-JYxlA> WԖųKf$t{+KvX)$"!8Tpa[^^[#uiLږ n4ZW qЪ5tp—#9(IƮ__CS: ܀}gJ}XX2oœкu; .spmHLhnø_v""QMd?S":qersP mc`ڬ(ۊP[UW3b<} cՁ&DEfc3O GߍY* Mo[-&O,1`GB\iCТ@ ݉YwØ؝4/<1)]h IDAT _OJyOC_F= ㎸}$-4?֎x짹6.'͜R`i0&͛okSErּMo+L[&wbV"vv^QL9w9~{"%\ /*8oBo4f7T4Xc_xOuQXyo#r<Ҷ{|>7v|_;8ͣ0wP,8l윁[ k[ >ss *Vb˴_l#< FH3i̓ $4N jW Ph;DDDDTsY0^3O_Qp ٳgaIh AŁKuHi m7xoN.szm4"`OhKPA\+SFh& hGSQ8Q~YL¡G1w# WA ',0oqe]_ousK&;VKd ZR_k'g \螊Dq=%n_<ފ׾z}k R0e @/kބxahbzu5<|צ>;>-Ze77>6?(h}$-9X]d"s. E- Y b[JDDDD5`¼Y~ M}pY m[Yl@F!*ʆ^?·æF|U'].CmX{[?it Dx o,n\/:C&`=}*9^CRql+Z X±5ՏEPQ: U| Pt [w`g2Yr9G`jin_,-fn!/2{r/vl߁ѤyS@ھȪš۱cQdiaKĆnlYq8 N8s,KoUlvDDDDĀŘ9H rSz f2fuQܪQuEY+O¬oA#,2EF@L)q6#{̈3|b?`;x`xt>x)Q4[2 r1]%KTbyJ29pj4,9W|wF.C?smx :8 ̈VcGa}vƕ=#`ravS)h,Я$Q)y

      ֣J-]7t <(۰i-o|rn6"" e_p8ztw>V;>q 󈊊ǞXȁ{  & luyבͻJ06[ׇ39Kslܒ" JJǮ:d2 ~0dyE|{‡|E\7&\}=,~jcV|)n^|9I)Xn;q®"*%%-$yOp-QRRÏϡCy1qWsv ΛFİ'`{r>'$L!ҀSsJF$h4R)Vz=~]"##; gp]8D$ mxu' +:mFz|md&c(^.Vַ2&o?=e\lv~Gκ6w,Gc}_+G0,LDX8L~A7pxg_G\.GSqJZ|rUker,}^"Nnw<tTzEZsTx#$G#HYCqBy =#^Z \F­_{r}NlᮋŚ㨯ig>YO|VUzڱ.C3f{~|sGk0ڿsA3ϊAVw0}9|̿#G%23O˛o.w$ P8msY&zJ7WXlg߅ BK^)C`=2ۇ܂oD"]W~?E+qY\$E"{ {ƥL]2kxV6N^*/1  Bj.;w4& eƃ!טHK%aRdq󨬬yMȢ')--os0mꌞ nBFM~ snUHΐnQ{칫h a :3!K;l[{O]^#;jI=5Ղ  R[ln F[=9cQU}=v*AAN`a-[5O;w'&Bcx"""㮛?D"ԱDxR֭ϿiSi C{E|{9Neә~8jg^7q؍yk/h&aQ p(h:l|^J/1)K}=vMʭoAA㑖IQYfh!'IG_تtg^wqz?wTszLec 46uxoAAɃP^kiP)HNr6   p9(1q#- p jR)t:o'ݧϊmsVwsF.P4 bccqk[gDgɥxv=(;Xn  L i4Qh^y9ۧɈ}P K+^NNˉBA%֠ɢ}H$dff`֫y[͆d2nFq]G9ROθkFz蓮oι.OAlH0$~$FcG7:ܶ`FehH2EATɫCfPRE[Vmu<͟K   71s ݡR!)1)Ko=+}5>%WˉLPԄU iwcج /PːH\i=xSSŸ9#I׭w[> p|"_LIzTVmO͐>-R"3iRE62xӢcSj,ma`2Xq h%㨨1uj!Ғ"_iI4;Aע ~W^]cOXޚB'WɈLճCxLAt1jLO.WisߐGvxU&<2]N7vypj5QT!oAAr-F:+UȤr:zj!>F 'aK&"5H%^Gztul,rc妢~ =e%0qA_OGA%s/Vw8lqpἷ7Iyf'BWif5ϏӋBݧmA!x> )zbG!WuEZƬE4|p=* TތgʝQĪ6Rb3Ćv}6؍{ ‰jDX) T7OB) _0Pj,$3f(wL{]5x +ec4eM"+B0̽dg$Bw~B*Vu0WY𺼘rbD)AjGFSo6}{&&Ģ0aDH]r8"Yo3Wg{;d8[AA14`sY6SR Krf~Zaunm"+B5i(H$:VL y}NJ}4;A%ERQLZ|_~Lx L6:tD> )~X4x-C۩=Ј>^&P׈ΐmVhd7ֳE6  F$Ԙev`PGJ4^x| rQȔڎ zA^|?ś|ݠWdc @yfAOB+nb 91Oa_OGLiKB* I?Ჺ[zHdDH2BČ'ݐ+WH:%\Y[Ɛ0<&ξT+dKG{s/[pBH$L R/=izY7^AZE*k IDATb}5休3&[=~DMʠC~}.n-kpzŚCAf֤{t9@AzS&A>渮ر. z5%@AzINvw~>ԑůbɂ=@%n -*J]PDڸDFQֻ*%8 z;x V\65V^?)zJx]&"B%f*vՑ0")D:s5yX6 zV(y<;_"`./->?qV%8Npۭw2vTVU^D"`o[`{ 'Icwqm>"QTޔAl-Y7wd7n'Ą$zvEvi{ͤSV^?;;w6w/${.\g܏Vy=i u⍷^r{L2R[/hl]^``ݼKTWW_W*U\7FMr}[RU]/̚4ɪ1?aLOoNv"wZ+Va˜ Y;V;oc%X{G  ސשsNtf% fЬhl:^W=5\sa] _vW]yW|{ohR>_isܴ➻OH$\qyOii1o5vy|oL!Cf<ckt`,5v( >AB#F}UT.%d4ꐱZ9;>E}XK͸ln</J I߇71'ci3.[ & a?)ɜRE~$ JV/xL&Νu~ȸx4 w=V׉j;_GA89HKIcvW`3jI:_0?4,UvSsdzV??E-fp֐\p1˞_8Z8s|C dذ!cx|F#=ݍBEO_r_b۱X-,~|)*Ց{^ȤSxnSܿp>n?VC3+bA!噏e@ w=g;&3a 6.eƃLx^s&[X˒_iI=AEDv\e`VOd-x!LdKy) k(+/ q<2OI]]lvޯ;ހT*nM|_ew=;Ȣ'IJJ+"OHд~),B09&'{'yL6oѧ~*++xE! *N*DAvg1 :IRj>R-bcP)4}8#m=wF$A*}ش V@#fyW wbЫC-Arp@VSj k֤ pἷEY⩬*:X&(hld_}1cN# wο0ήjxW~rESZV̮cdO8|~w&U=iq"(ÐDG|[ώr4=ȀB+Gr?=*6q")iF=>SjO]0ó[Af;jY|.%H(Q)UT)斑;vP?\&97{yq%G*ABCrdSj;6בv2rt*}]y`vwn*M$ҐIj:ʚBnlY؊W돛nGao1v!׮SǞX}=p~SǞAQQecsi=9ysC%J^ee&?x^6nZj 8{`G=@7fNݥZզ`0u@UbЫzu9^ "-V۹% fܧ% ! Rxn]z\_|=5/)//e[þƚ5r}Kҕ5kػwhsLTT4_yc~ǝӚC68A^./f%ava! BdLi4&'?i`yY)h}n=N/~oΠ=y~;9ՠ)PGxGn|#KL}]+W<;5؛!ٍo(41$6E2N+Z8nkȁ|r23{MH2n pb0"q do yho@D}}+ })3TэIϧ?gEL;~ڮ":uδ)Bow#TW-++!""NOu{_wGKJJ>fҲR@(_D!X0))e%z8k4juDEFtTU!CqSY2>fͱ Z:+yW)6sGī] nr]ůbɂ> B״|8^A]]3cLVaws}Fˬi"^^dGj7KK]ם캲fnoο?y mc׳q:K:F׳. ==g>ѹ7GDJN?!WɉɌhakt ^AFّhU ?7Kr#Q땨t 37 Z.^km؛PG)ڿ|oWx3&Pɨ^9r* /J2^!溺?yX㝿svkNA89Zd1Cbv4C7鱓;̘ig$"StWap >!ȏ}ꢷxjY1E LszTRewrRkoj`-Mg`mǽb2wFj<@9{>,k˫ 5 ka6]DTT4:ibN -Y+Vi3%3%b=ܻkVoca]G[=f2H$s/GE)dN*L7o/݊jSn9nWVKyx|CTj~rή~so166Mʺdt<ªPUǓ,MNs|W\wMRjkO!}Z`ǐ€Wvaor`2י"(4VGdHem,V%ԅ5R+n }$IJ|lƶ, lF#NTL&(sDMM|@նnV ]t drtzr_N)JTjJJF&֜#ߏCgx NvqN0?ƀ\*G!S뉍 }pŃNyhUifܾjTBL|x?UPd2BPt93EPe¦z0h"IK_zcT8OEU@#1S|b Z+=111H$N~]\;C~xJ1ll=;Е!DD`46:C>_.g Gco:~?O<~-[7ŗ1l؈NS?km[P.kr YP|rWJ}+쾥_dl[5 jMKd%Yw0aLʎw,_sAW^Ą}=n^/We|?Z)*.2yM]ם3Nͷi70 :%99?݃B5߅6"9x]^Fi]*C1WZ; ZEE!Wk]mPb,5a Ud*}qb,i&T,dFݔm#2rOZ^}pT* Ua]C*rg2}Xc2X-XT~VVk}Sr9N&cSǃOpJZl F\&?ہH~prp:Ofvw_7%=NBD22zc-uuu d,fCcC#NϑA!yﱧjZ{?bO6*q=vm/^/z}Mcfrg"K07ik}4XHR)/ʚ9TGZTgc™h<14竸7P^Q?3lٺ18nܵ_M~snVSRSs˶) qX’V***l61qV xj 91,~jQ~BNdd'jCɽ_˥n Agb=\z 8 D9w20cLjydSR+ʀ:)##?o_er.Y'{]W)ɩ :\}\ 爿|5Ӧ^G|$J40ϧXlǮD*Adpb3̂| gig$"WJ7ᴴ f}8/DZ_ymk-"&3!z ٻ W_9nCȣ`4#J'%% p'r[0Wˏy п91FG&')0B&TAq!"-5m2sjԊKkZj+HʢȐLXMe,*ko#7i &!6XU4dH%#:$tM8m(j4JBCch62$~$_`%SE A¦1 * |4֭ۛUѣƲp=TTg/PT\ȶm7n&NiwJGsW5,z V/?B6o}<_?~lܴ.U+H$'ӏ_ccf|>|7^ 6r. [ k2X0A|U|~sCػow~PB1T-WXÄ1xcKm&.1r[2N]5;'͚4^ͥfE7fvxaYkQԬY@Xk2gP*Y5ϻɛoJMm5qS5Fyw;@:Ðq{={w`25hyއy7cd(>=ƻ!ZN)HeR8˚DI/vpZ[>LT~r3o ZnI mj[Kl.erj54ٚfcX>u?vݏ^|7ǻoy<^yuYqs =@0:efCigv%t[RR!@IɑxE\7&\}=,~j}i]T6蘘9K=7ƢaZxo32y:.y1~o়\7FDܽ,#q|anvٸ1^‰o 6*iw y,Y0S0v~ЎJ.s jIKdMOa@9i8w2a  @Q^VgㆹЃ!+ػo7,r$ _v_~/\coB@84z<t:>/x}C]޻%%E{|!ι?"" TUW??!}HEO8-檶IR4Q JT.9Ά!*MOA#ig$Prpe 4)䌫sL /ނ5夏K"6+K u&J>NKa}1_AT\POh?eBC6L٩=,am7(߀$ɐF *s9Qp[4qȥrrfs6BM΅ٔ3^7*c9q@aȈӟj{#\W% V(u4)m*$BɌa?,LzQIΤ>f?p:mm{bԺ&]1K/?K/?wsJK~+>͖fa]K81tCp%ٻ \tGNtY0[Psdd 0Xq]{Y2偯^˫Krgg4KymhMާk;3u_ힿ^.dVYVǚ-ͼVI0'ku$$EO'~hTW"VIzn_]ׇ: tLAUur}A8MrwۢjO=?T8XhcUm`2 ^z IDAT /1"s4 ɑP\^gX%n;>&[js:er=Ɇ4ʛhr45 LéysnVgq; ~?6EG^|#L~5 kW>+1ñ-Yᨨ1_ ޣ0a̠n ׄcvkoAh߀(,K>3}.kT&!ax n?_T!e=EݡNAeҽXae)JROKxSe%BEi30ڐ~?QK+ ZN ;{h5],i,1~z"Jd:̕WANS&ηYlр?OeZy*+Nx} d] P^BC/k qxT1&4Zkqy]HlS5l-]-Yp{28r$-/4xX̆ȫލT*TLrD:U2ֺV]vuEW>t vng\3';Qd +pǜNp_;Z=]J9Sxxb+}i@dJROM#*=GwK7U}K4WYUץ,^T:ZJD9i¥HwdGL!%&À&REwSB e!Ww ./6 <#:tZ]7$P2hr509 ^AAңK!gO k*hB2cw+WG6%kPȔahV57Y2c3a<9ˊ31{djÈ6!7=5<*ͥ~e>vW2c+L%^MŔ o<>7ƢyjV=}AzRGwb&9=bՆC\v Upl] +'d<1g22X B_~?8LN#h*;v.UR})|𐷲'0i6;$h"R"SuT@5%MsG!J٘qxv*wa7,}~ plx-.M$A${Z:a,1<&'*a37$}_PKLFNcYd 5Fkk 7aTqx$DkHЧRh缺Ies)j8i&BcЫ"Ck2\ / f2\^'E y8NOVAMFL6*=0>Tٺs5w/eT2=_m -v Q=x/8Fjv͂ cu+*jL&t6 y)< '$Ȇ̺WүY`ϮgA߀c79{GD*A~bN@XlG!W2#e^"U\JdJ +HiHR3ֱ4)dhԔo%Wʐ/^R9#z= XަMP"K%:@sMwA$E*S)n \Ý3gh)_ M4q9zJT_g KŞʭ 8* )3o1}No)?HO~; h.s*SG]A}UQ'ȑQP5ʽIz~W7Bz涆Ż[^↳dX̖VwFyNx v\Zp% f2͂ iNJ0լX'u+VN9I=f=LLa^n ]3 J49 b5~j4 y4mrW]@"SA[mΠ3BΓ$"H$ W+PdA .al~{?} aGˋʂ\)Ő I$(UEQwuuXWt .]uEE,좀tEBBHHGȐ!=$${}gdfs(r -"WAN0;K!=6(],RT 5 8}"q' Qe+sRkI:uz>-Eݟv9\/J3 B2zX^}pOn?_# S;qG6bYrupOC>زōe9<۲撙9~QYk8c(֬#sD0sִDrsYxG SjLz\7V1exu.~|NH8%،6+Ӈ@j!3DT]_QWd ‰Y[Vh0;j=!hZSsHoS7;\>74ֳ-Ÿ:mdo~tq+?<Ζ;-hX~n:MمjNIV9| [52K.]p +xsY} \F^Ͳ;Z|> &N 8^oҜ*Ą> ^)Ys^OM~==H$2-|Yz{n ?B .SB^fgA8b4Lk<AS<4&mG{5/[י-Trт  D!SWmiqL<^G+kQ->A68VsI7`T.Em^Ah$WuY 'G7" }&䱔S-4S}ُ/o8JsAA8&NaOEVutrM$*y˿'"Qa.wiq\0;D a&U 6VŸi3ͫIxH޾j&z m[\\7W_W>XǤ1:73xA;N]n~)gECY_h)є|o O]BJ찈{vv&4-Q(5?ՠRáQCMh#Z)2wArϨW8s t,[a-fpt*O|62xRgVװNB*0kAZ-Z6dfo-02SM&11m)fuqZ9e1ߕa;h|f"~Ӻ}.y捵kUU^n' ~rW3ӉIՁ:ZF?~12;dCCO^g+Z~sqثgFu9Sۑk8,m*c?lZ z G {  J.?ۑMYJ7&U89qnorOdcvt|J͇{ nc7nҶpq0\1ێUEB4JaV0QLf~^sqWfUCΗQً+SS+$^Uk՘nֆN#?'^7zoPN0jt Rf fU2N6ՔdWv>ʽ5$Ð~b ~GMvD*APqyA4S}ޅUDyQ:=8j]=~AA )CUVwQI1#P+4,نuRX+ ^Ͷ\vn?'fn=f@Gd+4<=K64[{kaL#7"8{ 75绢)F* GxFrchyɮ:^ŞGlOnW>̥6$R rۏ/iܟF0jF*ۏmLҡ6)I6ZMZ5N*{L3rڬS0&WVܤ)dJ& :'.Aណ ؠ!+-~>洴6b:Fu_;?BPk]A^0mrH$̿n8mr7voׯD=ZiOM{Aw\"3=>$ȼP+ر?cQͦgedzz~VQPN4./\3A]I;laJw`|Dzzzd۟ L)ES?" c.m #Ó41qd<~ކLŞ+BêЇ,=RL=.'r* }ߚ Zapt5*l(BaN j(^! Xw<Ԃf7ˋ1㛍IIIGOG|d\Xև| x9=矬`[Njf4އYw^DUW\{?!S HIn}q9gNJ/+gv cu5\to))-6fUHڽ^ur[Yȶ|s9Sޭ:^7g9edz`.2x+eII0{*ddz-k.Ƥ-knbctݾ'edzyGAu Njf7J*#Fl6 ț/O2n܄fc:r-;(%_~Lvb&j=s۽OHHG~|d7κ <4Xd>/O<qqG7x;+?))}1؀ BC8}qQSЏ͂ 4FiPD>-9'rZN䋆w-הju-TZpKuEsUHpId =JhZ)j&aJJf_d67&Sg>uۏzsd.rn!fpk3xV׻nc#2tȰaX_z|GoMMRr&o*w'Vg^J +ZͳO-lcwֿ_OW_υ18攓GWFnWd xՅsߝ Q_(JnyB5fwk o\(tHS ٰYyԐǾWgLr|x,]p FGnzdnAѩlzL o%G]nڅ̼Fk}lrvf󉉉 3;lG̽w6[>KFI1ÅoQ[}ywcذ x!|!d]:^.̓ p:̽w6[IFISCs ֲZL)E*t$=jC6v}znŞpݭI$HitJfHIVT! AfRa)s4dvzq6JK s 9dF2ϗ}챫~⋯>埲~Ï\qcƏ@Uu^O^~goL ޸ TW]{-[7RxE/͇ߵϴ JyՅ.*d㦟xqU33ᣏ6_qogۯ[9TK/fI_)<|mV5HV'3kvmnZz+> lħB5^oz2=d`Ƃp"69-Uk6g&M_<{qYX3?wz5sfN9UM]5i,c6m^Oa![6r䳃c.j/VYB>l)W3ȵ3XI>>lpΜ|6ۿ={s):E;z8"#8\Tȯ?_5vllC O3+ HFư@|mm !y1DZC5DB `߳C8@ <k|>7c wW;f<6~-^J~~ouM{*Uy53bރwAciv)\ƤkX*'x 8'p5יSx5zd̿"vUP\.;4A|ΫG1itFewtTdsvƤ?5{ܨW32=!W"ax˺x4~/̿"VꓻZ65(˯,6T*o8Vk&ggvȘёkǟ?>/Nө0s*yn+))7Eͯ)]rM,VO3t@˿ƍ=!%^?.q/sV؃AXg|LmT2(:}\S͍^N1W*m>Re-Vm%z/;A\1fn:L'n X}s 濜=(euv[)G Y‰x]))ހN$d :}LMMncvz>-!! ՊZ]p I-HiYsTTаOk]AiL㟯G|cO)SqsiT.DJ:s\Lzüc[{\R {KVmhZCY;] 5ZmX-o,V /}fqy(ӉFӼn>ZӔNgXp.~o|Ar/<hiC8`~>Bj.;۲2mrFHp_#kUsfN lZsҘ4j뫏ؠ˔zu ,]p-9%gA.U9foۖ5mYs9ߜ]Ql֢O>~ea֥m1hҘ4Vo3wåkc^$ Z?\.ܳo=2ײ'払 ׿{x Ff;%~)#Go϶XgI<\vxGK<wzJ?wpQ+]w}e3i X tjqL{ B&WȐQ~^uD.FRĆSd B%HDaPɈ=L 9jX 2bBpy38:#S~#ސL\WCݱR&*ɫڃ<]^@f B{_rUlظΆ+*U袈2zczbW1xzXRrfNIfjÿc. z9QϹ,6W؂@M{k<RL}&,Qcwo SLG \hk:-iefMПHvkka۝g6TL.j^kЦ ?U!-~e /u W\'x<\.WeOdgk_NYfߞ1?v??z?6cWZ{3awTT=ޒj.A¨SƲa7g o]~~$woϦ끆XWGe؞odJKI) ~q <|f= /^|*v]*\yŵlS}]xۢQkl!\. 9~.$R r 3B#ǐGu~=E|^?gOIQ{W,eN!E"UHZq҃^|fmӋKxszde-gǰؓ ]f*,%e *wyuq{sǧ(0A~^25C+7!)6wYHRB&8C tL͵\+{q痫4U{t{f2"a c?=9Ȥ ?:}N]{O8Q~-{Br&NÏ\g / ? &1)?oNp<3Tt̘~%~-?o$~?|o3v".q5}-q]B jJfL!r{̚>gXn`! jVً4&GnoMAXdJ59ބe<׿sn̿"e?\gMQۧR\^Or).4W5}"erBBt^¥E/GՑ6,knN\.'eeL2d( lСl޼y?¿̾m7̈>٠7su? ٺn|Ǝ=W_gx2\Nx Iu9̽º.^ˁRyDD"A7 .׏΅L%Ø&\%ÐRs$4uг1kEW( j?V0|% +edJ) +5/SʈL5`p ^A<>7נQPv*)ft҄n J%R"LHW9Ka:[.2(b7~omOG!2c Zy~J Rɉ8P  >=䆌ov+AޓNeHp:34&8CR0kv֑[ͤsF*ۂ7nM', HAA~p{yǸ[)..@Ѭmn+f{69lp,r9|ܝ<}80 $ qv:<}~_Y?X|#^眿)nѨ5fCw_fw )(fǨWduVK%s+gsvaɟ*Oͧ->*3=>ܼ &I{J|DX>Wy[ZXB3=ߦYOdLnMs/5L}>2v.I]]mHVF ٪V?zT*`4 N`A >5h*B#'*>=@Ll+e#-2. qKB@VOdjTF{d"HRrMȿCNrl7뉉!bG`Jգk9{U9r}}vJXCo?nc0صx"P \.YF'n^CLȄl>h.次S~[Υ99q\xUr5"RgoPT$ЩK)Sr DhɈɁ]l) DhѫMIdoyNHw%WFw*ө/sԴ]?#>(],Ζ_X]f.3.G^U.pAJ=RDJA&Qi)C‰O?O?h_O ` l޲vܲJO[|l{6&XqI>1CǾ6fy ;5LJSӴM3 ryL-QK\Ú y`fmQi瑜`(Ӓdˎi3:Ty z5sfNbs1σѭzNKנ\7~?^渎\nDt:xǏf^/Y/=nAA>O=pcZ;go  gN?} ˖J @*rgsW>ݎ݀dx:RL)?c˥rLi$2I$R{Lh; .=ΏslƤDVB ΐSaPwק\x-\WF6dJeoEN86C52HM kvxQH2bDrru8Vլ?8udW*W%ȫaObuQZ H4 -._A ‰/MZ%WٚԿRzQnu̿wT#9D^9WK:luK5Wz4&yGM/]p-@1Atf7;z>)2bGZ=\|5:2bO&BMZ0r+w3$rŸ97}%(-ryve*BUm_ǪdjR9V9nF%O$ΐ~=uRj)Y(J[.SwAxe4&5Xї;S8.b8p{*l.ĨW{ДS,lqm-k.s´mwz%EsL<*2>qJk% dvĶ\v~YF Wc]) Y k^͜"kUfmًeݬ ށ"~1d[ `<ݽ5 යFH%ⵜ4j,m|8Xv`g !AGBwR$ M-Vٿ2I7Ř\jP4sO5=5>2s)TTBHrD](z=(R\w{dhRL~M4N#FϙC<}<#!-jX'OFLq7)(t$RDulO)1xNK;UY|' \0 #҈0!m Rm!S>\I%*erh-^{%''gl$L(IRj)H};-ƨĨ7_ߡVhQ$pOIA褕?adÒ;9z5էz hY鱀\ `T6蹠Dz5(v[\}c V0mrH$Y߻mV׼+E̙9kL#7~'4[y٪Jk5FwUc-Y-П4 x^1,6DF6K=TZH ^kVKH%R2Gwh\M1Î-$2Dep؛*tB2#'ةsԐ]K(d]_ "4Ȥ2J̅ubOEN0ZUGROJ`|~^ׅ׵5J k̔k1[`*,%꾓:QȤrT 5 "W_XzEe h7LC=iB5iL W3ƀUיSUVpK4&5i\}U=EA,64#.Uzj#ſV^텙 !A^{teYmkۇmϛpJ nGJ+P>c229b3ثu@g }.!fV羽V2Q/y$ڕ9m9G2xcvu;5%Zτ)hzT MOhkHD7޵WJݑms5)\T{Yi&RT. 4AU֪Yu@dF >ܼ2&?=!A^`?,v?V{=S֪Yν5 :} .r*kធh#$euN]+B29 G%&:eIRƍKAa~uZ.>Ohv @#ɔN{]l] k1] V]>Ʊ?6.]:(rH%FM#qy9keyeTGkȯbp^ ^M4>KX{.{#b3tۤE3%B_2Sgo=Ta([y?Ȝ/è@2 v<89L\l5jCJMH*2i!mXԯFLys]XX*bL'z **kXhԫ:6y S ?-W)e4 .KZmP،6B!^ m4j ^AD"a_z/[XL TƄSOo^ A.`Hf?Hls w!FwA*,g+dJa)I6";yU 9\{XւѫL8i. ,{XVѩs}.>6;: wOԱ#ԳP+4i|.ABycԪX䵌Lm{pYKn^9gft,0%B5=@.#~>3?^?ʁFҘg9 R@mRQ]Iyn2eA?D¨Sư;w'uu ~?ZMXۋ?<}/bdJ$ \2eAަ<>7I4vhT"EԣW24zn^ٻ#7rI. FHXZjVj+ZgjҺjD+j H/q d]˂|;>/[]Mt}&9\=)Κq;1&sPu;jۋVĤ;Pj C6.M5kqxEwDhZ$)^ֹ|N>; ?03¬@U^ZܲF[-mhZ\͔H%nw'ǑJ5&ܰ,|jǵ8p7{ ʮQTr5Kf\ȱ9'U%8p8/८R:=A!V9f Zoݵ\|<ïSrw [Ys`]&k+p^ݏA(,A@ B=Ab$HHMKkƠ?৹ԮYj``$j+#\Dƭ+V x^%3"H2NP8sP87F -PLNNAQ4y{h|R{ӲI0" Dr5^N\^DM05NYˎa?kwv/wD|ϙys& ^mD%Q xZ@JBZLHmGflގK4?({w/e 0fYBƪ;Y2w8+:a.=p:nN ,[ZL~ni\qP' Bxm67V̬y+W#I^Ʃw.5){xlG 7>.a>ju#%SVF^J 9Eds6IӘ9h:#Yol:t'O=444J}ZwcT'a@IX=}6,F\خ7& |AAN9)ѾYY/t܉llVqs&v[F[xl}okB@e>rl36jB"ƺ _8ew;[^MƬ ΙI΂tNbԪ JRg$*d8ja)He+F8ܫ]wl ¬OEBԡVhpA]$ FMRgvC݁J) hq4afR |N Y(e*YuTϵF)WwQV~n2bԘH3 >k89l~y}4;Oѣ[va$❕q4]~7O5K*u\0*Uzsju~7m_tyՄhJ'9lC0$8)Z9%!NK/Eǃ3ywD o9쨉xm./7扥z+2 ۪9nNv+֗qcuh@5\Յ@uC>rуWG{su-61791O51iR؛b+6HK ASE 'pFO/\Rh-'Hj5hM d`R ys]AeG)4XI1NB-W(TfSR}O$ yILL,I%S?g>A@FEX\M;P%z=L&'A\~vʠLDQIKM'-9̉Z!ݔEr-nT5) JkܙWcE3pH"V 3},={0%&1jMam;JUddᷲ˲)sH3g֌NiRe5KE:<7 =_J”d"?P9T#gLcNsz$ڑ̥Ѩ(Jl?ZUηiB*^1н MN罽/Rz4RUœcJzH"9gaq5FIŘ`fimvl 4.- 11LdB=U'LӘB tdC'%%!HP"-5gY֭ۻ6odgeSS['[wY'##^sf͜fwVGzVYpH$֮g}2OvV[rqEKgeG?e|<z̓O:o-/|W_)>'.[ gEѿ\{UT fj :5iѲ7?exPp,!,S+_I%5(Ar&ĤqYok/ /.`0}6'hl-{cYMZ85nNw:ڋyk>~'~dxN*DW& `DA|7i3y^.ێ9$R5䙰q O@"PM+S}K^`j"JYpq|^iN 3~#iyo!qRj.wֶY:o~BmHa֤P4x^,?fҦf[Z[P5=V:::#T.zh?ΡpRO@Zj+b> n|P4$)bڦ'i2Nw}BM{$H ˋhvDn} Z2'GcSZq]=vd,8.g-?˅?K75j29G|ͅx&xp]}{Rx^ڱ8&KM|m>6ùNv.LsKS/@kx|x^Ș|4wKIX+AU{91+hP+ ݊V'йl?sz6Z^~˅?vaP0D{{;֖s^O&v{7 aZg0ZP]{=.͝ݿ^|qqs;~H?{Z=[ᦟF Ï-7Ijj7HKn=| 5׳}6 z6oNnLC*R5W8->ꤾWZ%h|ǂ6G"A7Ego% ˔(C RBi|[c][rv.~#=Dcc=]vܿ~]&rp3',:*xa-ki9vo(/^1r9&ÝF{9DfO>g SrZ1C&QEA}v:9,-V7v{ 2AA#2xa\ SJYnnL:ꫮwWIL4fǎp vT`ޏ~- xl/x_1O"R SqBil@5s7N*VhQU$jl+sy&{m;j!Qc8]F&K^FBV$| Kdet=}N{r+a6Mwt]&>]MF%ioK)Ϭ{Ov) @^dR92idΫRwRgsPgB2WuTWѩ$qwWgdzn]~U|S]E]}-zuK]3F*+曢<r?@2j"4idN8$S]KqXE'rկu~XZ-<_(//cbg83{ 5l=$D82z=TjiH<8+7?7-Hvx 0j)FKxBRR7P(T*˯/>˷G Ί{RmQ IDATM?f6q/vXq'+=RRH$vwyc{&1DЧ?@ڵD&APѧiiY+P%)@"SN7*LJHd ¸X?>⣏c[#HPdefc0p6W@(02NB"PnEAQ:x!~7͎`9[̀pcgVg E_ݴ'Pպ7<6naj,4jɭ BCǿV2 ހTRAbedecΚuT$~4>+>Gԑkgnq@GdHceca$I9xgKNΛu%f]:2Vg\No- F.ls08g_}G5t}9\J{ZvP 01)rK)v.ώKVL;zێaQ{lƪ~K _8m$ ?^W^{NsuYfrH$0G͝ot^+~[4i C{(;G=rjOױo^[@Mm߱p`ٳvW_wrv Ä.M\r_rza`ٙfW{瘻-b‘"?7_ArAw`oV&P7fģ }Hiz~9䆣#̣寇|??΄}}Z릘O5RU]ܿM4Ⱥu_E |SG-Ïލ^ݿ=@L`~i[9%׋aGW$QheXDyBr9 iMjHofWgG(Btt+eW+vB P%L*ì ENe-:\|s>w!?V)ZLAP8Ğ<]4Ƙ߿oF%Wc)grii)1W6o4j#::2TRtloD[ ;7s쫸?$+|?=N^p8DfpVO; sWYf8vI]p);:/?C vl݃Qcby& J=֪h7^V 6m&`@]fD<frL|FC vO< Nǟ5NOBƆ.kjteuEk S%%ٳ+/=#*r>Á`uMub "ۋX?59~}z;w>cO>jR80DfU2J^gOGZ~z<6ͻxc)4ӓPjg]kTHwWAOH.}=n*!9!tC?<=yᵱ6g oo{ʶ@O-hZìjr$ &{/R5'٣wcVh) 4i5ptb SݾϾo+MD)S^LA);q~l"a֥$0Vw;F]yR9+7>{?`RRo*0MLMuȿM|rLSjTꯑH$LNV@f$D:*{,A)Jk~c¿{읬D&L6h#k4g{<4M= ȕM; Y'<ijv^\|'M'K+>ßAҽ$Ẳ!sRFbh N͛ncua ^x̠KkMf禳ak앷FF/=[ȊeK(ǣ承*?]-h48}߯z/+,ko5yYKv$BZ˭|Fl  E!SJAvz1SޅA>Rg4و.U6GeWa| C~rr1'dPo¦uNYvsՂLIcvrx.*[ˆ?IӰy:l;‘ʇId̙p,wi Z jS~(TF,vKɤ<6T~m|G#Rgn&orB*9Iv$ʈwVg pAx nCԡU$)l+vZfe-¨oҲϜ "A-lBjž?`W62Y$4Nn!68 G\Jk߬u'{NZeqRu:݃/nz=nmu>M͍˟?CEPD__vrm,-1SVEɓՃf ZUc)_W'G_Zqs#ilmrH8+pXhV;xcNq^#*+/O1?ر۹BN\|*:ZBbu[1ŧGϿ}.,nN"+ PݟT68ZBj>k ڂJ$=?GCcn"1KO{{S%i MxA?. J)jpxm|]^;}AYduٰǿ7r}uxz͟hu[7)qO&ACРVh0i! 7e8nΘ~)TCJ[WWqs۶:)m܊J>v3y -YI7t@KZtۘ2p?8g*lNHG.Sbt`$on~Vgwk03H֦Ɍqޠ`(c[[o׺6DMYyڱ{g< C4h2@@7+x?u݆$33L;g@VfqL46֓u!rM=-^h:ݘͩ{"=f!ySY/ΜAx(yr9VWy0<!Eh;%d О9Jo)Z9?7( @hA>ah4˖P/e=˱ܿ565`JL"Ap:h_9{Yg\Უt;II(a=NƟ_Gm] ۶mf 'otlZWeK1whAEeSOl-fُn ## YL_6C< Ͽ/',Q#'t::WV]G*2w|{B [2oMAVٿ_'knAxq,ڥ kak5{5|.,w< ˔<=?'0 ?}+.=3z _uӈK{'VP[WL&cIlʢE'Gyp8ӽгXq<\p$y.˝GGG;>؏3'֎D"!}?wX[Jmu$ lL lۏqueJ)J/2xAwZrA?ȗLAM6UV3礪mo]e8Źg2)y:3 HHP03b h,ַ~T"A2( :hupTֱkM25n,{ .riyxF\K44먷VIF.UIB)SKǨI5a&EFe[M:rLS|'8J$%A#⽒pvxq.-oC @P#TC1Da#u_QkGeW\fϚo=/Пr} E'r~-_to~ \s2^~QpVY s;a,M|SJrsr 7+TTq$ Qa= \2B ~y^=L]BuR^5=iY)j-^]M^ff),>hA2Fۺ2/nhDFֵK|}vf#X<ZH|B>֎<2Y%ų/e UQBsNѳhz6 pr|z˯yt9Rz@loPXɲI]}-\tbz5>>z0˸buqc'rO~+SVi0 _` DYCck~wG FMc!Wc.U!=f4KբPHHV#SJs4¡0>c5Q#AƓ@Ou{/ow;<l߈I]h`TP#?mXW)\/O8}j{`(H0Wp`mՔ6nfLA`N<ᝒ\2}$(j|#*Z0?x\BR"/e&khs=s6wcxiRo&ME(DM,n!p5n.!y.R G#6&g=-[e)k=. M \2Fa:٥@UUEtY<=\sQWW=u<76n/X߱m+[#v>}Yȃ\wh zhO<{ز ^o֖nw*fã3z_VJ1l3ЦN;\1/(fЩ=4 HTrn>!˖eYΜX4#۞-]uu̸{>z0ƃ W_umm|忼Ϊxư^a@|N?F'Rx tf;B0NKA~ 'afkMХi CDAlbmy!ߛyހk Z^f^FU^v *=33#6N_KEqlI5oRG~33桒lˉKn͞1G4wUӼIxn>&pyR ʥ Jis*'11y*oo{n ^ǥz-gL9K%ØʹYT*ټFu3am|*p8Zc| |׌`oKuCb ūīmwMm]}-wڐx r]dgu30,1ڝp_V KQYsm[c%ez9 #XVRa{+3`z:au:'$6@B:mVn"`S#aOZ'X$`z_dUpѮZ Z91Uy$9v ^^g[N,/_^~wt xkEQa9DWβ~O{s7*r ag9\Rf]GZA2~wÇmVǼ+f@ށ6YM[U'SA8b~}KUnYVwVP>M-u8~4Gjg5cyv5mԾTr J JėebP'rNe:iu6ʀJm]Z\-%ØML9'UA1yƤMf߄R>wנNĤI pO\>'վrZ n*!21) f_V}Ml]{&ىS`kѬV|/5v*mˎ` (iuzys݁29f5-"bbps=mN },%O.ޫ^:$S{u[œF",SRtנ>< ZՈdO>6@a-GiÓqRO;rozƙ& 80L}oUPl\^V% }LVխy; c X}AkHbaH@U5i(ie9Jjk@wj6'g1}D&f'3 okI`JV8())3{K ,|*>GgUHP{(*6~+A~\N;i eTFZ]K8.$iRܗYZfCWL0fcҦ M)`Sz]^(*(w|{$'rᜫ9:\>'u"loĨN"%!r-yfCAt6o{˖P6n(1 rD>۞-hW <2a sX\u1C>xunۇ9؆'k@e$+;17Fviǀllfч:'JN)ͧa^,YS4 ?h@_|N?v F!SG8fFe>,{;׎#uzA_G݇܂ 4 xqvT7\~';ZTJ~Tz2% j&R2ՂĤ~1g±>KeF(&wVYJ᫽~#]ooeπ]9q\ն ߱RJ!sB:N9)c9f! 1, c0;),.q;NXDմb聈Ll}Ŏ *1Srj-X瘇z)dcBtj :5͉iNʇĘf`Ъba>%[k0hUnÓoz9"wԠxurWdq כ|0Z%lEѩbG?A8| ^a#X{/wp40O7cqP0щRA_c{|hMjBP}Aew6hw*-xmfu<>4+d ]ZvNF[-G5 wkҦfȤ@Yme HJB*wJ^i"`(@uWvW{?spNe,CsKksQAY&sϞ(\/ޗ1]8)<ӱKb IDATl=41y ;kZX8= kԙlwyycmrCeԉRB|!#326l/ˆf^tvƲVI0%21}\wa:zDg)۞-鳩sڴ6j-6 =€uiK(& ѥjGhdBo4*4F:J4=рAƇ3y̤e L5ؼ!Rv\LR9aN14"e^+. j2擟> z^Вy. ǧF!Sbiې/cK8a ]O6N'}`#͠UE kwFF=itI*pxl}wx7 Kt}?Zz ūo!?`[y5uȓ$|5p}'ko Z%O.gv?3hUZ3ϦkP 碶?; ?L%Cm}$DRKAFNvw+Sż\*gZ,fm+y=>JCR5T^m}dǤM!+q2NCsYJV$IkfF\R}pjFu{9.W}a>oly aShH$c;CP (*=%n٩<'!>{r\lnoYSĢY\`X_ Ʀ7 K,9<çxŵl޴?ǝ+禫í3ڝ`Ъ0jU,6⡧^ʳ2 n.̣b ffu{^CӰ U.2;ֱxS"JB ]zAƆW^7 m6&-`K}t$xE]AaCkgy }8c]nȢ }Um羽ͼɼ^oL/11)i먢iKc-mJSKǎVlv d'Ffd[g-zj+LHmG%,)[p#qBQ .~M`m0-ţo r> +7 ynTlŻeA*ZJK>a]g=Vxf疖79 6b$=zJEk93u֎ڰz[$>Q_l v)IagmGPg KQy(1cЪtq>guO,°5DxN&1[O8BR+ ^AaĹ|Zv01)Өd~P#Tr5m7z6?wVwj>;Ɖ{ۻl6jLXŐh M>\s>z g\^K)~q7=fC~>.R01ih:%3.i粭~# LaQYs8~ķd~.?^뼱v'+-RbiMCVɽn'M%O.'O7AބgY ScЩmngpY)j- ij@,祱v[6~qd#>r2% kyF㧦ꯁ ZxzU rR4ZNQ"W1+\/ޗyם97֖5 jNvހo*>i+x/>  G;^+jK׊m/ qxc^4drhw[h |f{=|&sk)ZͧbF/  3_h IȝCG}LH,9 5y\lnoLq}#|%/’!++gog%}Wtq~m ZUAjVHsUkwpQy]{MYvhx0S/ag_A̋R}þ.s2tӳ(bvn<}vpݒy}΄^8=VIYbT#dǟE'搄awh-b!SHsT^?^OgAF`{&>.98#Z,/lx;h*/zz̠6!*TQ݆\*^!IT. px:!~_z+:ye.ظ5d^n݂CIgƟ3[-{g2Լ鶸 g gEogFY٩{΀#oo/xx"nGb p$M#,Sx9irJ\G^Eaq9SĤX69sN0?+QjΘ|X岅z]';ŀA?SUץBɓ ;3|laLca7,~}h-|'rL}V0y>l&;RHMDwXE 0"&잩{p7"ٻ+ `TK줤~z:*A8RhUHe"+}).''9 U2hU?~P3 ǒ\tq Z\K@נUEcn?/ Q&-JYxTUWk/RY?|[6q ְa qux0)$ub;o8$MӔB E":(na~ +⎢ ![Ag) [bnM4I MIq7on皃 !8J3G5l%EhM:XϚKD֮  ,Έ|L*gyoqCIA ^w7l)0])zB\4ƦlnScض+7KSĨG-qtvEl5lJ:rK8p̽lnm08e:&%},a=]j%i[t^K}z ]A%/~Y@KIa>I ~Ol뛷b33whWvl?΋ m]Jlvܶa{s#Tm]Q w]AC19S7~==sΆO(768$  0 >V1[H$>ϛ _m?y9w8[&TOSYRc6g v evGٻ]HrB `}vay@ؿ`[9g+Փy ϕ̼SYj%] ZF=^cRm 8+تEV[V[uF^HY*vW;D_=`gE炝W~T2t,ٴ3!Bۑl6mqxelWIax'kZB+3U?,8=kQUX,DJlR,&+˂ c]-ev,pډɒk|QRR3߇<}Xj{|:Vuu܄VeݼRvt.b$ [6w0o6u\\mNR UOs{[1WeM%/?O>]`ΣO!yɇ-=b%m {ooum5z\bx˖de߈,Zٯr2Qj3{<&Cǂi-o[ d & 996|3#H:+v ܺק bhJJqxaޯyz,PV12iXk{[+գ-q+Yؒ]ɢ#8S%rO}>N%+ee\,rҝEKA'0'I<ݘj ]I\\o3h0zuϵWuDddwr޽GfʏٹV֮,c$iǟ_oС9- këP #v`R&%Խgٹޭȭj   4jw{ݞ؟xă3aS/rV~^ǟqF_.֜*WLV}m5ռJY3Я_} =gĬ|;︇KF]Ƣ^gPSSË-@8-6oq}3bf>2_x} Na/rH6;vλ͸& x':*9)..rןhCGF[β~.zhf 6eژf QZ uVI=ٶ+'(sD>?x]?߱(dqanYD{]2cL[mpD[3ژ@l.[lakvU[P6TI~Y` t]9 ~.82\?c3w%*{ Ioc?WNLg]<|:ε=w=+tܧ_sBR$ BnNyM:@3֩55٬v5u,VJ12 RƱ]ǩ.%e@vɫ !qt<}/|d`\Y K7K':jʺ^_ڨ~X"{WAA/i 3+l& /VDƏמ8]wGڕq]6_T Km#t'\qU/=9d_מ|+>&/?^v|]W7/9wp 5fͷ_sCWpHc:CReT(JOV,REXao߂P;4(-ϭ gCaPś|z'Ksy 3,+į .է#_+=@SdCڌL`yff UKj9VquzsSe0TS2t$ґhб.ٗWU[tN|dY 6 4c MA{e/3h5#/s ?oAݿ+sXR)oJ^~.:NfGVnju+ܶ?AɃKZ3,=6}5,'**q7NDxR)7v|a>Fc-o3+j5aj*y%uZJ* G&AҹO\^e[>|J&<^=&9-:v$'ò?hLgRSVyd2 \hmZ8ˍk{B*b'͚C|Mvg[ZE2xm_7e bmʰ(iҔ:ٯQfe99ȁ]To26U$4ﰷUhCǸ8?sΕE1=Dʶǚ rK|~e;YٟۖZ^7:Pu剝$6 _gIvVszͫ%Rw0A-VctglGa@Yy)q={yx&u{77zLFjk 6&<\\.b?v v~3Mќ'pmwPG]nɡMlqF#AYƩ)9T*lԛ9)[3 BeFsM(}vhEXY95eF 6. }aYݨoݛ   -P(`V;CUwrxZa3Z,ӦVcough4%G:N+V~sl6fϽ[`{ˏʛXVd2>zƕ?c:ൂFuqqa1^{׿fqdO HKAij82t> 0$%ݹya$kf(j01a~ZbPl+Փ;tcUv4 F5'Sϯq1޲t ; 6a^ogӶ5:Ʀ</Ǽ^AϺMNf՜qL/ kPoZWڹ9pZ sNRXxܼp4W\wTx}l\:3NBTT4e;V%Վ Qˉ;5?GqIח>Z PG^i4aCqۮBBSeMl'rMAXt:%v;Ԟz}AAA:nnG|Zf H=ʒeYL?Ү%- |546VWkR[GAQM+wpw9",z5$_gr$:+aQj6\ٻN9u(Y)H1Vv/AAAWRe}_hq^EFvgM;qcjݻNe꓁nȑlvn SQSn\g/X>EH}dqL&'o~'—QT7gqm/C*pmM~,ܵ 7'GRWg_<Ƨ 繶=3j   ^nȚN1oPYYQ6+E`ʥI}LC;z"||7ds>F"Jf\;9%|pZtLDZe;~|겋"?>;m眃B_גut}\Gf>ǖ~S #[׊JQqUxZNтvdZ%`9̝0PIYZ܊^9hf-s64"};rPO:蹳-cRAz w\S6T1* js,-`^]MQq!ݶij#(**:kmD¬sƣsr+{qx|?TqK=җ&5+lV)9].ҏ70MjQ,DF+un ~AJeAܳh׍bH0^Z m"]5W  Bg A"4[h敗I_lN% ݻw2KmV׸K.?wpe}9ݺ܎o߳:#G+9bQmԅYv}ܵiwG\\o +&?>nhՂZQQCkkk S=8p0 ]^\.{&Ǻ/Va'gmVfnjauF8{ˎ̚&^o_2~r-򊿓mKNB+^,T=aݖ0V9~# ۗ'`2S9e wr{QST. yr ʂjn.$qhkfY",F*k'AAV?Vlkim(cfWěoe9CxG)*v_s^}M=ocqȋytCxdr[,b̠fjry/C wDRS/?~{=̶m2ѧxc{bkf+;L&#k.__CaC3ʱ,xȮb<=Ngן`4֭jϗWgtLKe_nI@AmMF"=jMgTZY& oAٰek7pmrY5-Zձ U 3#7s팦p>/]Ў2oܠ_I[BrBSSI{yƃ)`+|#G%w~N^`bԣK]߂y ژߕ57p33zV3w6W~ v?0}&&51:v G3`0PRr۷{zHQQ!W^w=VEDWhYe|¶0"WOɡ ΛD:bR[an!Sԛ&FMdpS)#9DTj{i/ e*?_q|FNJZ'cˍ=~õdeɧg2b }ݵς/s]SEf' k&wN|BIn^o,z-zu6N>n(-)o6:tUU ^+(;nr_Ĭ=M@jkYP5:LKK[™oWh'&S 7t#?< c՜q :? w֫d^iGP썪p ƸPjiK#ijh}t4ZJlym*#)!Se>+qd(uX"wc[A~uUH|m1/o{Ϣ-8Ɏ;mO0A'}<ȂWMU5kW/\czw&OLGp{m[xg>ΊUF 'k>|j6U՝#"B3X3_??S+\ShfNx\XǨQLqrRWqg78fm\'TVRAAAbX3[@Ǻ1OXͺ/V{}L)ݶy߯7Exg=Fm?\.n?6U$vʐt|[ʓJ2='{3VlfMicR/7IfSuGZS\2tL=㞷7U+On6ז7p㏬sA97QړO?;O>=c[Sķv_qv;W~:- Be"Gd/ZՆlmibȕ2N乯8qqQ#QG6~~ݨ3X|7ۗ"GbAA:H%+(gpWV`Z*^^Izdty%,G055E %hC&#pT4;fw187G%Xj#I->/D_wy{0TzMhBn^Nh]2c} )(d. ")3Z[q.:qfCcYa ] *ZDpWiTmfP2NR~Gv9.SH1*v_e5Z3XPG tCbJp4SnKi oRP    3,ԔD2td}] c.%A]`ع]&gzD 3b޿ Ih񜼉Һm `f)`SgpwIs31Ȧ4T՘Xqzt% u&'D  {x7akMwd:,4Hl5xG B pZ3W[hE W{H =F /p2=P\WkAQeβ)qFTBŘ  yH$&|/[5saa7Wd2LObg_0n! *_m߆uLMM፯ϞnԔDUЩWADW80բ % kFk⇆e{ y*уWsHE5ga(҉p: Qp pص{'e/pCxRŵĒe{Nu7sҿـ##{dwrrP\\xUUۏJAAwz(eW5Ede*\[aW &J-|&'D355ŵNeҷVbǺYh5*}1{Sze0b@V@2WGL}ȁhJVo=DՂfN׻Z>N{̵zᶽdNJ:HUeUY&b1Y0TP^ʌB?xTJ`2oa*r:s ~Cmm'*1\rF~Ȥ2vph۩(, 80+AAAhoGgtoygS:rco]= 3) - |&'Dj8wdw$k&}s$%Ʋc,csaHfR3U+]v};b`4V$mq{ȈdgTs$%Dgt‪A#o B{+? b{P8¢ue}ʌΊ Ceeg^EXH^DdG^uGEEf?v;ǎm 1qT2H$zD!ɹ㶻8w f#7a.g/ BǦш2B먮 [[lf\;yLrB4* iلw3`8dݪ?NStR%rW?HG{<&Cǂi^<nA9m;S/-=N̚ ^8|=o2c.wIdf3G ع(pPwZډkPt^"+,F NnNA_xn*BT2{%5WYl ^[oK"h-]A\T*555M&"JxLf3pw]_2~b732Je]jEARSafKvG6 255Y׍`#}`.2tL*dVj8j> Fn<Mg/gcݖrwk7F_mȕS]ɋ[U7k?^k|>&ƏJb'Y>GIzTv3(_R)$4oBsӑܐ%#p%#QDX\_B*3HGW4D{Z :׿N==e6^ )rv AɀBY@ duhE" h4Fv;y,x%ڏfe„Xn%vU^  4܈*~ pq;i4i::Г+ g d6hv\j%zI9&T m3@ c=b IDAT,n6JPܙŝ_wnl={ ?/^Vdew Na8 DC>o-xf^Z)jaDvNA,vÇm K9g"HXHR K/ܕ+J9#Lk1vjj Ԝ~Qrȉ=VP(PTGy%U LNuuJu60v5MfL#[g`0PW7}ZTUWSVVxpjRmSQZQUjt-bv(+m4AL^Tȁ=/)!ͅMWL 6ZɖצJYH m:M[N5Т͙@G '@>qF\T,; ٱnJ%!!u?X%Q1 ˑ7ԚeeSh)Bn{>WV-aA3.C6<6@xClq%s[H:IfpuT'L)"v ^A8bg]OJgYH~uSjT2('o{G#>}"ט?Ԟp\pCuD fX>jR_){NڏD"caȹ)s&6~Ol6+q]'uDB^Qv>6]/3 BD/ 5XͧG W3du`Z*,w33ҙ NU)hJ^Wfa~;NoG :3՝AƌH'33;|Ղ[ UKya62W?BQQwJp~c%4}OMI$A}7[v5B :ja ќDtA YRs?6"6-D֠s{qv ^A8fqlW Ԣ(u2UKPf؀mlv0( E"%8+賻S9sd/jJ Ӫ5ˑ0P*l}6਎C}H$XVVYN1^o۷G&nIq{Ir/{-e|! _mϗ)  BѲ>oNKe;9㯚3ZɈ3}'_ϛ`bLf^?¯R=}A-Gk ,bY>qIP[δ>RxhvJf6JT(XG1IܟR%rW٣߲-R^P%UuGZxƵ2ۛ3nLjzjر|?r)M&FMMsl\ބQ*LEտwYrnl2l6}+lZ%|dzldؿfڜAAA:2-=б`Z*PYPVd̝4pӜA] |3ۯ37r`|ЂqRKYRQZ5/{][BRB4[{d^ #;i5*~d:Z?;JOE({ ̨+Ͼ9 IWb7'4]&FS_{Og4NwfiCi:ƍJ\7T̲-$Ydb 뉲lw{OIDW0U1ycζB!RG7x*h%H@*phS{    S:=U+b3AZy̚,]n 3 w*g'Z \Xή];xG2γϼDϞqm1e㏛xp=l{yE>f̡_<{ >;Y3ss]ěoP]S͋/@<v̞8_n\C37{恇rgnvP(㶻xfӑTUٽ'uFBR } \ErB4{Oy]+CכwWGⵆƶrs43U+Ѫ,ٴR=355.SUt< +yx`ZFiцLFw Lh-iN5:f/Iz7pans(#?ۼ!ovp5Wf v ]煇kBLwwOXM]E敗r+))9:/hkěoe̕cy<<NTV PB>CG&,/#  jb9CH[m{Q䁇ݞ+G.旌9ǟ|HQQ!]xI{l`igό73E^oC =ǨF'qZ*2qm|~۾ܼ.v\ǺiNo7\~-[~R5sa)s~6GnQv5=!M˱:VwKv%#l:Xun:tqX5Ǒ9vrWp&Cyzԑit2)%zsejй\}r/ q!v/ȳcسx:9f 6W'-CnjF49]!hwd4}_q~"BC6&RϬhgPjy *+6 zZ J:h0ח|_נuްᔖdg];1H$sM|>J;YƵsc.Lqx}ع9GXUuf7kБ͂,=AAAPjˍجF5=f_ {Vz$ wMΊU w{>g{=j oDsSX֫nY3 H<=ty9Vر̳Fef_6t8K""1`@/_{{If&o춽[H896@Lboizn2ԓոziVU ZIެU~l2٠>䗵?ZJ՞Ur*,:c9#*(zlgie3$Bg2ۆ;]g'?k$j% be ۑ*dÍ?LU驠M@n,o7KXO4ѫ*.)k?l2+f65y?6ŒZڹs7tykj{o:?_Nd  ХcU<~gc{:B3ʍ2N.%?hۯ<Z> qsl)yJ ',LCQ1yy9 xӳgE<׳1cL8ǘ> DGʋorzXW}&  r#[RiAdr؀l-,,x$'Dվa^I2ztâi^{Og#-K oԙYT6}Ha&G__+ *)¦8{U/&w{kXoIp7v ڜ<3:7ϵ͟?'zֵsc.qecXևl=PQY-W)= w~,Vk]z%oMWl)uguuvɑ=V{iCCF#'JuM1^aaa$ s}ish;\6 }e rWRq7v yF_F_r9g/_|`<HN{xYNoJKz}ViǺYh5*F֥!+'t%;3;^{QsIzdF=z姝YQ+d yp.2l!|M+ OPoDUk4޽Yr9{\sw:hkƄi4K<ؘ|L4W^ZF~$Ed  e*h56~ڮ`QJ;!rQW ׍_Ң|~A>Cf<(^rEf[ҽ_[uéu5FKm9v*U(K?zoC|]+]{Ǿc~ 5iS)-$Sd$9!RI>my 9; DRb,Z؎VbrɾZ=ł*L~1,2 v!Wb5cd#;A+>^C3ᅗRWǫ//"$$uNu͎Vy? /?%_Iڋ  e J-e'ğ?Kyvnjddw4ע(//,oHc՚?nRٔ*=5zv‰Muu5EELj홵כBǘB"u'L`L/N+/wܳwۘtƺ Ƴv*l6k珠_bVdV/])4"#$bWVhl 1PxCRb,_u{xf&w˙tL1) &>]޺kq) };c%[[[5\zgX!sicֺvnLyE 3L&&6Q9QYAA.kPJ E%"+ٳ6{]p!j^yikT~&T |эGfwc \f3!!޽Q]/];syqq),t̹wx ȑlJFLƨ Gf#{40U ?իqI}ʮ*[/&׻IR ؿ_S'4ܜnX\3w@tUPPE,6z@=6Dϱ`A#At!@ }|,YHrξ3=peS*- *Q@~K-(xxHP2NJZvXti;Z+^b/Nx!_Ͳ͇6sEU(NPX+Y˫"GtB(Z[0ҩfauzne^,'yuhHγ_Pjo^DbΙFt_=|Iv Z8 )9^} Yض}+&#B ر+(bfwPc8v(gwx}^w2Ȱ\˽' (?}Ԩ&f G5OBYײ {c۰m%&&` P>xeA~raaRϜ_/;qr8u*{5jiՐ8;aڋOWS4k;ǻ/NǠ7p>^xS$"*((((((((((#lj'j$K.>{s,YVUr eGȢ%?hɏ`<,W`n˧uv`kމc ,s]|2>AFXB%E/2ˣ\ېpУEێ 0Rʣ9+vVXzVcE--b[\rR2oRq61J xQۓC±vWH巩5-n[پckmJ;xJls5SQcg(9N>=L1wORQ>+((((((((((WKlTD\GLlܭMujJ%೗l<{o.jXJ^OfΤ.Lk8)(((T-_U G;P{Q;ϢvŐ1.B'8ɷu$ /T!/&fO<3ndnXܷ!i+_=ZE-|=pV{- Z4xu{l<=cRL说F=esW0hDKW]YԢ;cR ;GVl*:7^ZAAៃ"*((((((((((cWKbD͢X. TW 4`h_5k:qhy&/ZDŽAnܽNQD*č|Ԫ.pJ .QrU)((\!4$FP5!g ,˫gI9HԹ1LקPqtҀ|󶐸F:#/u71{ʫ[t cz.p扻k1d7לk~,jMʵO5c* 0n rΆmy/- %ρzү γ貏\Y:PPǣ UNfv|NKZNjZ$^՘`Jߝ4DѺ n>DH*N *8,n"wдASzuGBz^1Vq*((T7u:!̤ O%:PeQrw]"$/ kw^abs[f׭SjeKT͠pk1Xhm>r w [{)$~ >}tJHнЕ\VMN\{+ ٝ.yꯢPIԢvg]\9Χ.d]~}dAW\.6 UEUPPPPPPPP(!f^)-Шefߒ,>yVf*p`7f1)"e6"z-eJ[ĝ7y8yZ 6A,}U୯M|@v>V+9alY">0\%٢} _xz^ʥ_7/vjY8ʘ|}j#ntk WLG 4`wU5+((TY$!]wv'RtSybmO< jYBnѼڶj'3Tm)h@jkZ!Wk2uX 7 mv)X:(nym4':5͏FOd*5JYpg]ir _NLAA|QnuIp;]F q_۳TF5^/<pH%c. YV+(Te5H&X30`Le|dJc~ZF/7⺒h2JQmYUuFFHl#۪T7?I.A#]Ԭ.FRKx!XUzZ^s+? v4u>]ޏݥqNnWQ!AOMQSt_=o^~X盟 4k'"\fƗ&5MHu۴KkX45*͊:dLz³G5E:*4#x"0Fcł< y{Υ[ͨÅm_܅` +'evJf.kt䍅 m7un &`ۑO놵Xh k?}\,7t o,͇Klۺa<}\}jc1$d%=ZDxrxm=V[W3Z u{!S l<]˭c)-: " 7pݕJ#":Gy4 *;JGJqJE`0xWA 5^ g6 ~#L )h/.Yxdcv]GZYf7Z{#5,2h`yptWOT5 ~geGSԉx'5,5(26=hOڮ(4a?חYϲ ZFy;⊿Mʴ <*^x jҳDtܟj2dIWH͸4ev0{u8/KKzʸB5P"pJ+(OY)wdEUPPS \Mňj:2_PjIJ>7la\xHȥA)͇5yQT@*/pr:Q 37D1]I b̽ y &q}u Ʌě?71{v$3&l_hbvc1xm\?b1Y~U*~RI9 y1J@KtquW2Kb㠠p A'ӿ780dSEޚcdc B֕Bk0Ӫ0#-Şy ƙ{8r>7"vR<;>BH;g,&4W RbMڪ=Qf5ȉ,C\SLX56|T ˰|].#O#]ԫ`"#ڥkuWty+ D9T\*M䉙aN|s_/7pZ$ٹAwRܟ hP'GLJ 296: j2sdY^SZl_6S/N$^m[ÿ';iy,5 F+=U?O̫S[6fm_QLJ?mnZh ϞK УeToۨp?} 6ffM'ݵ9ne"JnEt_D(By"PƠ 5&g=RPPPPPPP8GZnB4k Nѱ^}^'ENZ݇ѱ߸@חK>S^sno\6)GF-,$2v^WljV&5CW5,]GZRvd~^_NSSq.>^h,\thC# "Hφ5$˅ 1'@\bppSG2rwf ?DV@EV [4Ⱦtfqi #*i-ZP~3_,3 @F!8m̤e ԫ%+`w/)U6fļligv?W2~Ջ oLdZ ) fs 2 2* \ǰ0NAbm .A{^\T7FjAڑEYE-Bs ny{7DEXtF+M=;ݪG*pEb0qDl-w/gÕ"oR`[t "KlSni]:˒jh!pWoւ~~ٳHX6A*TLAAAAAAA2[-1vq'E^$>EM|r(`)XC'X7aԗ [[_jCT2;y02 q;扻OfY;A==' h52q3qIe?)Z%]>BϡO~BV3ˌ͓\l?aj= VڄR1ɇ ;|odwlթ;{xݱN %H CfGl?AjSRAz=,Y㷭ZaV~ݬCAj2:L.AOjIT`0ehϗV0O8p}H斮^jKK,|k *zNW9=fOj1(*|́˭"!H:SwѪy+ޢGoQH2|F.Ʃ42Wbf 7KJzl!$V~lNM!OUX0f[y0U#UD E'vi.J1cC-JpTE> u%g䒜KD Fy0y@'g'1[1cAPXhG,5:5- {0%5AGf]ÐF.nAԹ1|*|6b3wkb*orΚ<\bv3wm>wGtXw]NZ0G37ל `,YxVGkUјB30թGU":LV#WAAb$ UaT $χO^I9 F *;*REhy QyosQ?N#s,Id--4@9y-߰TBDL> 2MTWs]=?hODuש۸cqF5?mh$73psU CKkHЖet0wPg{ob+78Vxf4 wt%DՖl=,2gDb+@'gK dd ۃǧBkbtZGFot|m #Gv m. ox C>:M|_Uܟ$*8-rA&"A1BOγoH(:NZv$뼼dgD/8^m"naIO'O toZM}::gzΊz:$t^VWQ?uSc\q.m 2qQZawPq+ =g8>>lrGo/vhq{+o\' yvqⴚwxaX)(\m)*{MGbUUH,"؊ޮhq0bX'Iϝ}OQW&'7`t6,|Q+"$N]_ܶ"&qmN&E񥎡=b19|.B>#x"^K9|)H`KRybn+lE iL4՛@ccdq4>9p:7 ,\*sPrAe\nw E _Å.뭜,UGK OC-toIAU#\y'5/A|.`.-o^O|uHT0ϓ/M,6[ 2GEeU 2._4d0ig=5K41`?^``iZMp3{-;\p].:OL-hy::~cFqlYVZ&=[`vm.ӭbA "%yNvE3sٰKodwGG}7jZ̘<Yt^O6~tZM xldc{4mEe'B"ҵ: Сm5Ŧ"T:ZL@Nn<%bw 4zASsp,I͢5zza2Ҋk0q\KtDPuP&auL܄coL iED]" c82wB(62m%Z537&п4AV~~&#VCsDVG 7ރoJY:Wh Cx~ݤn>gmn7 WDzl"3[lJΈPuOg//-2}zypi5Bh4(fYU4D unjZuUdFXVϜ.Gņ& NNv" wxkngl[(eѓ"1K9pL͏Ӧ]DEJ$҈yO2Yp풷p"Vk1xcvKu6.0Q?.%=q\}9HYbLF'40֬ Yz!]8%^;40})7v9Ǐ::tzbjH8gaƲU<=.ʿ}C\Ȥ-!"?t ޤ{}*%I8%ҧPKk_Oa:'Ȧg | %0{7V7a XvFjv9.rGNq8lN'*:esk2z{y`XӖ` RjjݩO2Qq(^M|J>+KU@`_EGj2$Pi4" 2#n2i7Fn?KRjT\.`ԁ<<5Evw5qV :37ҖGF>߮u?rr=7wz?_.7yuL p!wt3V*̱D5lcK?b3Qeby|<4šxm8*>^`d7D`i nm"9Gx^~s-Tx>F5ƶՠƴ;s9q&ljlgd!y8ln)S@D\ˀ#ѷM@Bl=ۆnwD4䕇<Ħ練BoCjp N^TSf5)08\*㕇0{nx;jO2%oKPA5#Y$ba2^3ʸd jnqyTma@oFuf%-b|\|ʁͩbFoo~6˟:ҳ {./qXͤanR>[b 1UΛv x); ni\/@n^Ī9V1ov3ðB],9W/\?"^qXN -nHrufqf34xaZݎONh7Ϟ\䰵U8~}ñST;a1\jjN!K2r +8-f9xo\&&% \GM9{89( UqYԖPHR0.t l@Ť` k\__xKx1n -|vMGr(צ&+gNJǁ^UT|R) Qxuܖ99>L1:(\ťAjcH]XTC|H}_rxۜ>SpwhYNDKsU,*uu8PcnM F&2S5'Dwv[zP䤂6 Tw^ 7ѫTFby|T~Os(7?YSB)^Ŧg<~Or M˜G!Mхi9$4'aa72v1͹PH>jw;_m_{{3zct^Z귯Ev}KH=άc^9ud/VЈ'qeܿM{6nN2hq^QČ/Mx |-&ΐɆ=Y}h|S}NluKPD x #5 W.oVv>O(wEWկ}Z6 xC-/ \%C5$Ҏ1Lc(i*-"ۗ6.1ދAp;:К _H~av kV}Hy ^o^_{?EꕅQs%Q812g鉩x7O~ĦW#x\Hެ|bnfC[Ǚ(m]ݼX}v_ k7ha8@ofh G0F $Cb$Y|p!^ WkZUTԬ?Lq{\_ jZh?DÆILL`ٻZֿ6b i6QQ 5b,]tfv5]ìFСCgF 8?{vuN?빟`n 8z߂eݺ5WrrZjˈachӺ-iige l݈[|=BtЙЬYsNJaOKص{;>noDX}%;Z9ݤq3 EN]͵hlو4t:nwzpI8Y13K zm5f;wmcOK0j٢5F rel6{5pT*ϐ#YqGq$C#rKzlȲȬiDQdQ5KXϸ\kb uc$9?ֲxɏ8T*ɝc c{dff#ƞ $be xO1AOs5 ωgzLV~]r\e|;#ݽ2I"^FdGbi_ jd8@,6 "K 85o|i*2En @QU?iYzzsfI'vnc68&лy$jbhĩ_hC\Dlu۵ 2߿K|ȡx5u"|Hf@>4j8$2r*lN0ĩ4M:C>8G'dx*(i9%`Po/GO['"Jw/$6AdzGok |g [dLNlco/LT7L/s857.vsyboQj0sp&E?&6'Cӯ"&"`RTd3,={8M5i8sOj vϏ=]+߹THk 0. Q#"*ehAj ˿';${'\_f|񪍟k^JN~Cǂzs/mŢwofI}tlgF WJpτQ]R0^;Z v%Pza Z~%opmz>܎}|r_QAZfTmZgȮhيZ<]/jJٙI(g} Tg^j)rY~5/ѓ]/*}qG<[%y ‹<~@-{ptvyL5 ;/`jgü|H@kW.{|gA{9vv1pB?5~'nreFCaa`SIػy9yLr҃rݭ0&:j' g InQ;ϲqvyvM޹& ״k2x|3T*sDԌ"EKT*㹧g|Gtҍ'{g45b,7ОgF>jֈ'f :@ uaAT#0igYpZf#$ܴQiۦw?XGCԻ/0?Iɉi6ѷO?z͜o>r;pԫa 3λ3[:F+Hi߾#C}|W֋G{Aڵ"iѼaabY#Qn=>taf ݎVczlњaCFc⭷_uw; *r] <'Y{tƝ!2۶oARqaoׁ蟖z fQDXBcYn=5Iq[Ȳ?4p(;wc:;3lhVĤW@իU iڴ9jQamzQLa4japlkSdnAXn5qǏrCg}0n"]ׄ9s?r21| W,&++JzԬS!<^I>SQ~y$)@0ix=^Xs 8o3|_8O0 oz)eYU==B7}/X>'8w7_g > Y@ Li~c$5j3tB 7Bϯ u{RZhȢY\}Evaaw -T-uoӤ=7vgp$mS/|Js;sga+r߉AXtBvoEQ{N&U[1^[9V.!1![g[b L t+݄ӁN kQqt]ұm"CzB_U_ ^X "*{!Z;%.A4$hy@ D9/`P砩z]>=$0r/3qi( ֬]{$%%sMw5j .'Sܑ@Oƫ3z2_=SRSSCsmv0s><}%x 1q CCuue>~NiAm] M8 k/P(jb`P$&:SN;>L߾fȐLx?pةB2sYr): Vǟ頾V铦v*=z|,.':I_~RPk4A idddt"oX?.glظ>Ƨ@~A{ &A}23F!"…\¸'kbk.Ba#fu( Bg bbbX|۶jcFgȐ v!3s8(S^QFii1a#رs+MM=HFy!Ȓ?RS[MyEf23_ZM}ٴy#ZB0D`瓞ދ=jA  IRH1l"s&&:!3(,0|(6nZNJx^zHeURmG  @fCCC=^Bii1$'зovΡR` Q*L|&7cU6ޯ}',CPO||"#G/>bǎ-c+q_n5+hii>f)KˊyF'ܿ!W*\r,qN$qޅ̞5[n"!ڵ}5j,_DeM^~\=?,aaֿgR U+TJ$T +rʨ~nlNoҳ b%<~WOP^dNx7+-e.#1 9f_ IDATdYc^|/sK#Ro}t?Q&'8c\%)QRV (XNÂ}' N[C575QuJ4pt8\kwޣH  #&dؔ+w,'a0ZFA)(x?db2EN'!F&Dܟt4 #rD?u߯8sse!EDd GX84SZ%}`0 y0m3hܳͲ^̝_Clwheu q2/U[H/<7h+FiC/Uϳv~8>gFGR*o~ z:l bmΟ.ԡ&-eIOt?_/Ѳe6>"5  2@E ܒEw7#;l6r:Gz)o~,]|D^?`/yM}LaEpKQ!S^}usQUG?XIe<@cvGڙ=qdx0a `wzyY}A`wi3_x5X-N.cX9=Vf0KeYiW/Ozeۑ&+a[x>10¹g[B3_}5(֢ׄǁO-;nF7[RBgͰQZ֥k cJ{# AO{}!"*9@mŨG>89Ng^$'w'=pzw=HP a3! n^!^x1o0xWѿ=V>y(T*n&r@?+W-w^w}_ŷEilPSӑDT 2 FàCزeSxcg:A >.gk۟(+#I"M+FKs 0!77_H(-=HDZZEE8[#;{9SHOZ!!>1ĴZ[(c@fnn6n\_}BLt Qhv475QS[CIZZ/;EE!g ৶N d$2QYYȑILH>ѫW BUU% c2xFaPPϾd$IpuuCڋXꩪRYUNll)iGMHH$>>bCMyE}#1!kd$1L6(eW3:k,|۶oWzo[(2E{85%JMMMUؚJZj:fvT ;{;;wnC. kظy=v{{ ȡ%8})+vzf 䇟NB1M 4.ޝO~TTuK>-lظ~vQcٱs[ؚjg>,))u:vdo[V v3,cyy91[-nیRbA~L? dFe퀲l/ jyBV0gvl)Hry^R0g-]$(Vg*ʔT[chQ |$Ixz^i.X:TJN5D.^F'bQ8Q^Ϳwtס`4"}Ta jJ*(P]d6H l26Qc1ݍW\S_ھ>V*͹,Q'"jXjq5ylx"Eq),w ;2KxroDGGSU!2Q}[ZpإB16iy<~ђ }N /W*y/nw)YD]c hh+jO-Aqqm{IȬyq2<%) s4ԣ )+HV.]̅S||P53$H<6+G]S}4VNq۰b$I _mXUAϽ\w cץ$e\gҟK~Mff g,fDlⲫYa `wҿ@.E^ʖy,GTrw1cyBf^q |6W_ݷ>)gutEdtPIE8^VmI iJ ; )3)6g j#W~ iN!) ˎ-ar{o 1mEȑ2ߺ|Nn\7퀈ΐɜ$hٵvEOc3S ,ۮu =@՚U.ϔWŘv䶹IݹKw1gYH90o g`wzYnolOF(cīPSS;Q`(Bm!1Q`]p?^S^}a|s{nyCf^>fPxf*6mO"`ʫF;lr5;ڪ,v<#އ궢Nۄkf9.#O42rmIݵרt)y <#]m/JCץpfluzs(RYUlWE 2gIv^|w/ʪ &6R?{.M==\ 1L &T*5gC”aG?qa6GBѪhւB`2e &2@~qf` ވh`ӁkiiFRR$Z-h4Zt:1!xEṿ Ȱ̑^ӎgڕVt:HODIOZ!..a=,"MMQUj<;wo ((͕W\É'N@Tӊ|7oV+z|$&&ctTV $%؀$oEK} I;$CI &T.-*>tr9CKŅǫ(DPԸ\"b U78c!.wpPc(! *(QRYOGVڈ|+<>U2IoxӭtZKcyI $?EzOF<4 ; ,;ܭ=1^+P,5K+58]TTA->rI_':ȷx?_Om(~,aՙ\3frF45nГt87_{ Cg]\yNCAػWToEt/j E+=,-躘;Bjov.wxgF=J|~{*TT[|Pjő")62Zd-C[tENq~'px{0dk[䞫4\X;Ռ+xt(LFfE0\垑n{GP5j Gaw( dY&=?XQ&''Y;oQѬ]*(߰A:ԉT9Ph Z|nMU{6tCtV.[6Gc23 e3JoK SPC[gҷ *%_w\/] ic-*K:rq!9QwE.Z,hbAc 8mOU !/}E1F'^)<)H8oI}`/8n՗ A^q=])5'a?یԍzH|m ZВ0Ϻ4?vʫF9O#x9Kwuv"ؙxj*?|. Uo+8fTloS.fŒJfr6}AQf3 l,;p9P͸j^p &vv4G۽w/pчFJ 464vg6ֽ^W粝4W1؜CKQaDqݍy]@7`{%l[ N'ػ`K.d P s`R:?b SAGgek֮;_3:k5rjJJ3f :} #6L^t t(ZAl hG?G)(U*"SFog@AN?gy /3&0ex{ĉ"arB wOMh/4^t?F3K] ۆf@  b)W*P0`hLFamƢ;2qq%Gs}Eiɞ]HC!*]ݓ %5Fu}}ZwoU2&=-2$ZBߕp$efo |\!L,+jcQ7r|x3ZmuT a ֏կoz[=bkP# 9i(lgEeW;ICs_d?65V2'O!qP sP+@–CRfTg<c>TU2ӷ9F/!Iބ/jID4|[GA 6\=م*D R5O6Z4LKoï`Uͼ2-LUʼx꟔\pfCI.r{`Ϳ>#Fq,lɧMd2xB.ʈm&D]'%Xee9fф頥^e03b))i8NrVT3zcԫT*Hm]DT5 (^-f6QA-5vRBy'`hj JϏwiY5oAµlSwkUsЮ\0ny`{,YA)wެ;^ 㷶6YVqt-#S̜껔,f/rc@dNӼΧzka]Yx"mseNeN%PS0Kp?3o?\x?-$wde8lGtݛ:U[CDە,Xa.`bcEՙmSwU1qj>)]Y]mײ + fӋdNVU[C/m}ڵxS'hl%S(P\˱_zDCrMsԭ׵?$:MIN풓vHjJŤR[ՠԔP0Gc"_fsI)xE|u_⣞W(qЃr \,Ỉu7KrT6l$Wͼw{=l,2^/XR#6c@Ss#$Q .р$IAԪwJN##X&4 I"S">APa]JZ)]JF!?6vD%TYjZM0@2b(Z]ܻ!  0 (ʰZ" A1,I:!"DU*#Wc (1\CSsNĴv5F9hUJ5RI[b1N,ˈb(p@P"}?o}ADVG>J%N$Ao $  PD.Fb zEGv?$:ZtID|Y>U3G,˫7S$reDaV{v5Snn65ϲj A \J:lhc4 0˝\S4~ISJ|Ěd,ۢ~n4OnkFkov~oЇvo  8,G~VYɐC[R^:7zcУɏx~U"U[&D0nހeְ  Ц*K(w{nwZ|ӕaEoOsd2Z60gdN1+_[ОTYEsfP~c\R&ޖ-;(/FK"cP2/LP[ۙhuג&v:9V IDATсAuCc;w;vEy+KA&3[v@Xw Kt%t3wyR!'qSOETf>^MWxaX [hAhS\uvzV6ck;:^ mA=Ee_uNhaϚ7kQ<1&r5o}=w#{PZg$L>1.o#uڂ 0l:*[*@p7 o$?AmlZ!:b_3T7]F0 j*/ઙrӍgM #xE?jOzJ%wv/+V.E~{P*~vOwO @>}{Yw[:M$INJ T*IHH`P(T*AQ LbB" ,MTJ&(Y[HLL P(ju >>C W Z匈hDGGvq: R(JJAI\\Sz6ÏqqkIV` 5΀qnޛdB}تqNnB=ok xz[/gx?_π+F0xJ$q2 z ࡿ!נ9͙j"~;SLIV#58Zr j"^+aRɴcͨQ)d6Ԑ>5X#+:T]IG/k1a{Ϟ#]{ {]P$)3B[0rk'U,~&/j'<=g8,͔>rC|8Άz5S{Qf)8  ["Xߠ OsŲhYB,@FtOeP(`s:p~]52sK m ҾK`- RbWT;qZMv%>{_ϳQ}ȴ͇lw Ӆ mQZm仳FkƵ|u}}ڲ9W#|R|~[|#Os; 0|#OGMeBVe{]SD^U[(Y1*_a#ƔcfiܙUۊJ/eQCc?Fo[U{A^Onf9pГC~[ggO:.xB >> wlfܯ#~7$~X4YjudKAaIHH'IAA{+JPT9;P Jի르9|.ʲ>Nj&OhrС6kOaG˚ȲLllI>l$7x7端?faw8AeU">.t/Emm5ƞAسZCjj:fҲccԈ_z<I)ݗF5j M<3ϘwއB@њ@O|G*.j/>ACoKWzo #5մ4ha@JMeU:޽ 2uu`,hnnWz/SE7Яo< "b<ʢDE PE\J֨1̚[mڂB`Р!>GaUc K$6&OkƎG0 2lV1}Q E6+|:=#\GOu+) IF7Ɂ(K'9I7[mRW]B[E1=_y8 V'ɧ}'Z˭<;$5xbz@v *s{NTS䶨x=GOF-Adx2*F qe̙6`4*dNΐy8u뚱٨(%=Tzd j⛙"$;Td]-/U&bBeCͩOGs܅Ӛ|}$%LjˣY߁dfļd4 (|=fhkyd VUAEIt|](hWUpjިѣ Ϻw Θ DU_K*Y^F0rV<^A T2Pǥ䩧kÎ"=7R⤦t:peHTTth\սua4iuc#~ǖ@H~G vj}!o T\R]fwI9WQ];`"tCd- 6l6UjkCFb_tt4 U0<_#օ]:`_NXw(-\/؝Gq=c?J#S1%"oP4F20E4$my>݆}Ģ{ 'չW{RٕL%66M5k2Xl}z@D,z^/׬)ӸYfcFe<3@"Xf%ՕȲjepm|{(Ktv<e_feݻ/gM=?|G0xg=7yvt,Y'3wHSS#;s7qW N#--゚@sK3׮du)gv;z5\N';vlA$**+Xk76ɜ>Lv젶f%`7rj6m' ֯&??7LFy6:ϿFٸq- HD:^=eQ]SI  /?&!27l6+%קO?zK"11nnDuMn`0Ȫ_~((iy/؍㡢\.Jtz=+yhht@x_~iӹ7dBbbb;epƍx~?8W\C +g^KYY yHQrwrRtُPW_+67yngOp! *KZ+0DךE:أ- dxf4t^RIֲ*̎CDGǸz] 6bnR1*>Hv xo{z>ד)u1qh,g Ǿ'j2P J{@Uc,W r0pr-KR+P ʽFj4;%sȄFI bdɥ9(ehef?b ȎOckψìQTPJzi.-X'wrg bq:ܬ/x#@.%:,coZȨxxY%:<(f3bD,^;ݒmkQqq}oc}rW"$0L7,inZ˷Uo$2ln*)IeY3q"B̼R-WY12)OHGk'ZyYg>fhI7JK kzv,01%gxm c|y4;RU2LCp(5P9+?\}>Bc`GRjط8>?9۸Vϧzzh,OvmHMMsi y%pI7Bă46$!!]ۏ=d:P=͐Y*С477. ^RAC?.՗o٬}CJ`U*nm(*oX [TWWݼY\v<Ot:X|?8Bع Aҋgr()-fl\;dHss&SHmm5 ~h'Y<Λ~!wy?@~Z’?>s(y쑧ihuxWۇlI-.JBF[ RoW{J)ww'quMI)6uA3g̙3;yXmT>B{F1`yۿL;KEjZ eH}ՙylbv5ԪaCϟdR.sѿ"#s]z'9q" G شy=J;qό?qj;Ψxh4j(,*v>x筏Z-[EK.YV=ŲP%'[ >v)x󼵘nK#dsSc ǛW5JiU߶Z(5z"JS2=)0i{{vCBr(4Ueoe&D'G9ַBPr0i®RCQ6B ARGIY4BFuOTjExc7uF,%3rM"Nhٗ+-]L?5u:$V ']c(f^| xSxٞSxS6hn|ZGQ vȑl| C; 3BH6WK =@Ep>:Xbets m(%fGP֘+4yqE-O&4sB?oC֔ޝm5N $ IVbWBgl0 f ?SA*-N5[;ZϠH#˝3;&IFUtU),Z݅{%c([@.)&4nwh\11| = !Q=(͙SSٽ{?-O< ;wm#==p}yXyb3̝7벎X_LFp@{6!+f)=5"7f)K\MY!B/?&u~pc0X[@PGM$SݶuwlW<>XAI̒cdo\En 0Šgs 0hf9M'HT]^s&=L+9{901KlvIZsWů%|S޺VA[پ}J(|~?.6C՗kUvCz1"#?~uO6=M>72hIfIfs5Ȉcsp|||9v(?MPOƘih&OzV-[Yk` dWT,a-8$ƼgR-S&4C:E5֫mk9;s='eE+<Ձ/oegZL?ք+ c[r5m׮E>->B֛zc_ҘѾOlDa h>}muysKP'p^at/"4VRs(o5%8zϤ>8Z˴Evl80}up!cȈL~| u/fyh:&>$}z`Ǯ͕֣3iӴiݎ2V\ʂ/ùa6x7ݟy:^އz^yj{}niMQq!˖/bw]'Lq A|wl޲еwCHH,]A@;u_k$~_Ζ,f1--[rLaZ'olBLjABk "}E[!LØV6fؙ"P V.-AKj"mQouv5ND88@b gifㅮYR/Sa *F-H+J_k|l ْI-W`Ea*JCҡ TTD>.ZAX@Eu( @RV1 D S@)Bz$*l-rS ʬ&@ƉFs!6$V)1;U(&)yh#T`)BE?/ 'LhS+WOtUɛ魒QC)iJ???rOc.i1NFbsz7?|7[7rr:v̤O1͗9vhB8Spȁ(En1l]6DDtZ=Şjgْw?-Iߓ<.z*$^,<Ouq)ުQ#j\cLRV\[]Zkl6 ]&T',Z]6^g~Phn~s6\ξ?[fC4TP((**d""1#Gye\JI.Ƥ:)hx7bw $,9.a,pH+uVȑ$͢888HyV#vU.)AE$ X~{1;rUt ^obNj [0ǂ4LEN?"QJl:h (b;4R@rӊ0ca!Jw 7% ZVY!%Na6t027V$K *T9G}-Rr`\"\Fyʁ ɞ'ÛYxGz><Q^d"$2o=y*NlHf=r49NP9)EFAkm1ZXU;R]̱:29sAی+ym 2 #}3~{#NJMʓjrMnG uyf-JSC@Yd΁KD Mښ1zQRrG3;CHYs^{F p܃2yد :#jUIO ؝0=jlvx+KSMТpj ԏ$ѝ*%5O-1cP&oxVNDR@䩵&-X>n1XO~0 l|ɜYWλ{oW]U T2222 , "wdt={w" :d (htlRW uJu'Q!STJep@/ӝ?!1b=[w&B@Wa*28c..e6bﲍ"3՜4(RJH૖1DTAVί(XaD3 S:BjcX[E"V'`/p@F!SĽP,N|Oq:)0 gg컖Z[\/Q$9I-pXC:+wcب0_' ?lNy rք^}Q`1arLl\_J$*9ZD)J$_]ddIt[}}V}C %^EMh~y*u Ǟ`6xXS`n|V)NǑQ4k̹ OcpZQ~fuVױ& FGu=͋酨TuBp5ﴀm5чحqx&U[Gx춢eǑ|^Ǫ"fߞ)@V]Zgn=MM6\&ZCyOگ s-ƂW UQQt?,6H \aM,̙D'QI?&eN~ftǒh |}탪TGHMo=dztnHO89@ؔVDaP4fHp~S15GUGY2^A 4$D$Vϟ[TGK|cV^"nQw/-]C)N+l3)z>4>h ė(ꈂE)|TYFLCÉE? ^Yz!|%av- O+r14$##sq `æ>Lww 7T^U)1Z~ҷDFMNMV[P^FٵgchߍA~ZkݖX°O;ni}?!]3u0MYms=9iscz4_uF6 ˬ9m{~+M˕t{ ? M_kG uU?\)Լw4WFJ?o J:qw3nYv?Z;^%"ֱUʌo֔&U{*믾ݶD><j3z[Q-QbةHɕ3|Pcohk-9OXq7am_ ܡ`G}~:͂Oi Оm?u̚>ӗ=xtjR֣U^mgtGKw!kO&Y\NZCO{RXpv,zf[rQ$~v~i,G̕*######h: ٴ$aXjk`8&@X@3IƁ\lnu[ߎ; .x2~]}tE|(Sod{0NJ@PF l ڜKiWFFFFFFF>^ WY,Z׵~/X=CEY Hӈ$.5|GV.tw^Za,J+???W{?餩 V/'3BxkHJz8"*/mϪ?uD{c1{uӆlSdǡMVɈ"H&&/ɂQ}grk>v¤Py4#{?xGiuC3G-x) #OڱuODʉ4{fgNI}A$6k|w*7`l|yvCIaR-*gi-Ѣ2Ob$jnS5~&>~8*KGE2w~~&mHQ3U? nbfC0S]X-5r [Wٚ1ιmRϺ|3Ee~,(d D&%{ڗQɗөsi@!z,k6!5O0i#kl%+kk|}4uv b]\E)Gzږ2fm/+a X4_Xmd#6nvZ^Q4U[U|{(N@*A xEPH(^ۗscj5_}#3U7OcғS^* %FiV`g) t6'ie<2 yk{=2+PK'T<Ⱥ|*Ρ 9dC3cv@#p3}w6Gfwb{[Jr])!9:s,_-a20ڔPJKKX.<F?"qTc232U2WzLO31s۶ov_g#(,̯cyInܖ^y{yTJEtyڿn까F#|P[E1v>a'<[61+k_yyQhoEL<퇵ϋ'~zZU=\soNYN1mKAc7W?0zsk£5չ0{RV{WNA*B K ]>Ppk+Yi $WR8sE]vg^ j+^^:t^UfJTtA0vs]Jfc.\D 3f77h[AA|)%)W{ :CER'RGxWf  RV{!Q)ċNg}g.5'JFPQ^RhQ( o~N$Iͦs{{cڰZ~ф~y L #Xq+J%m}d26l\W'#P;2鱧/>"66R&#####s!AedY@$$מԦ\8N& ^8k&-fp^j35lVs]X,ZC_Xk&ddv[.#$'թ_j3.:Ƌ2*GȾW#sd_ԅ,ȜNxn=垟bbl541tL9ș-##S?j,S3s^~%%ŗ2˝?ֳ%j\+xW^Σ[!¥6Х6CFFFFFFFFFFFFFFFFFFFFFFFFFFrծ0 ç_ IDAT3Цu[]bddddddd.(?J.7Pa(g5,\< Zkn<:ayKҿ@l615mڌ?BבDzg$Ijv* Zh}>DVmbEl޲_VGz0f}wWg{o|;:RɎ[Xd>y2Q0bXwIyy9k֭dkRsy/M4%%5wnw{}||wÆCpP0 ,^:ZoxX#nm ᰳa:VYNqqL~h:vLAA>+V.e XkZw~uHq,>%Ks46]Fҿ@6]z3i$aCWMVZƦMPV^ trw5Vڐ%ط76Aڪh| }:EK摜|]yunf ױ~j3iղ5=ΝEKkvF@^D5nJrqΟűcG (Doc̨ص{Χvm3rX:DYYgMTTX  x w AXX ǘ襤p9|ތZa_8۽mBÆ3z,_/`~&ijtg9/h4֡wͰCL9뀗~}nDٰ j13r8~#֬pNnN^^.dM8ѣe萻hݻ~־ ##sأOҧO$[6?aTDEghղ yy̜5]Z =;܅Va]7k+^ǧУ{/ +W-cY :6P<ի/0'Ï_~2'ܨ,>j6zF_ybsXh8OL~:c0XzsY+P*?_fJwz"##iu^NS4q ݻd6j fϙYkv_Ȝ O {jKd:hUIݑj7̝ÆGZZ }z՗G`X,fSN  20iShu:i(9t"y1c>s\@ϵn7`kħ;ڬ?Vc5xзύwCzkۦ&Ny~Ȅ՗̬ r弽}xrs<;eFGf-HLwx酩t؅! ϽFbR9gH^~u<=А0ڏSr |6_qwDZ8>S4 Hw߯^yM{  ‰*/f6Ǟqͷ_GF:oVmHMM&1)%### j)\\=V~3y3H'i-s>u/{ܼN X#u6|W9H~i$(}b~;rX,RS͚#'/ߦdc2IOOEPе {?7gy0h-$$SVVzV>> |}zYٵ{;:uCN<NddNi;?b4X{;w&11f@ЧwJKKDpMrMv,]@wAn^gȝÆ<ظ#ޛFpЪe{&gByE9}܈(8`o 7}vh\ /CnmY"Eҡ}g ((f ?=izw7_^ϧxGPJW}>UvxcoÏv*{>OyQ{6ΛyX^_fQT}CQQSbcc X≯s044J%119ziղ-?~pϱmfkxv^n_ȇh>Ì!AX-}u) g_Ki]G6l\W]WǞO"'7ֺ~yz6vjL8}Q#ֈ1=Q?CRs7k$&?@|B.sCx7ytdO~~Yٙ.Ӷu[L :R J]'!#\mOz SYdO~NǞAT(yOp:E\}سw?:#GոCAA'?^;AA|8|'<M}xbҔj>{x|&N~YK/L{^ч} g_$nyH5;F/~Ǹw~j^yu}ڏi\H`P0Q0}ϜHNbޝ,^:{"://BCo@# L.70k a=̝7:VM~$))-[7yt AE6Q(̜9Ĥx6nZǾ}o :wJB1,[@||,׬ +;fZ5hLVmYnvogݬ{ z7]:߀ 4jJxx8 !6ldt#~kמ/M|BkMZz ݻt7$`n߫wRXTHxHVVkhٲ5!!]}u&6l\GHH(m^(iQYb1ǎŲj bv mq]$gʥ;1oQiEf-ػo+^B̑C,[RxVRhPǂNP]1Xu6YtsDQK)**dͺOcydffp]\Ӿ}'ņ8shQk7***Xt{bM,Y:p6@VQOg>v*⎰9H oBw~'c$$1ʹm=l7kAAA>_bb":v|=٬g q]],9~~?}*  ضc II 24Z m\N#qS:u̒ طo7cthߑMqӦu;So\m%L@@ (Jvv9`0izouTT2;Y|1{Ds"""iݪJf-ԩ+~#:tidx41=M8v,ŅT]Pѳg22;ORROʥݻ~}NER;rM19|?y:ӪUUFFۗ{_rs ~PJKKedfdZsף]FϿ~ᘃ$'{Ν Zs|$}׌9} `Xn%֯&##~bnm(?/7s|EQdÏ3}gգP({_[ҨQ$SNHb̛ vS~u%;u%&/:Uك f^t/ᘃ{v^NSz药~Ǐ'{NM.s-\/~hbhъ7ƍlo͛|Ӧ{Wiٲ7wߟJxW_2p͵N\ qcǟᅗPFW^=gYd>Ͻ;vl卩ӬYz  w>!>1^z3~fܘc][ U*~~vm3akAHp}!'3IOO/?F׾ϵ@J%;woã9~µjbY]?O<6`NfcYn%c0ˢ0[g_|wrױ^֬Zs^ HMKŗbɲ r7Gcc%))ϿAoqcFEsgZ ٲu#}.fkQh<6m|v~cLA;5+8|ʼp8huj:$IddSɩ:P)I@^^._~ '3ҪmT*z7 ZC&جb\bdӦut^4jBRR<e GT& Noo9~" ktiY)I Afq2#.1u3>A+),, ''f&""2NwP٬dggR^QFtt&yJ``>p#== BC<Ɍx|vv:;o}C']b1$9l5BTp2==> 77А0jn_J K֬aCG?w@D UV⦦&#IFppAAdfeJb2IKOAr&QMXdfeWuFHqq%Ufgd[Kt#ާt Qi$ڵrC$I$&ƣ{HxX#]:UXAJq?%6`?9y2jwlL$ $$y4iCi 񔗻A?H޴j՚ܼr;\brܱXVDEh{d_3(,,3`0ֺ68(?^MӦxt9zWJIH8F֭QUo߁ԔC#͢7 -[7_k\Ut:mD_VMxc(D-[BVow?))-&Qt @.]=222b'qde2At;Vnth=/⍩*v˗w}Mڥ+qG())vٻw'V-^8pJPбCgo./IwnKyQ;۰Xܹz|9~6RyI+WYmVv}Օxlܸ3~^CĘ%K/ULENcsF  \תzyj+87mHMKaM,][@^\7T*5Fc1N^z-Jk۞vm3vxvJéM\Ỽzr$`ݿÇcV,6W;))N\7-ZӪ_zo{kނYTn|;Gbێsݙ*[(JɢEVL}+ob͛dվ;v''?Km$Q^^p/񕑑$ шX"ۇ^=Kœ:22OvJPTPRR^9jRTRH``0*__?rD$ LyyAJq1Ѩ5x9Y%$IF q8xy)..t1[BדJIQq僣lPZRPthPpk0T`VBӻ!l ǔÆ(--ATb̽mՊ^^zT* %ELEE96 i[:: oIv IݡSwWՍB)ww @4HH{6Y쐍"}s8m6wfl;0?릤僋+;SN= E@CYf9aa5#"ΒNdepqu%=-[S%gqqv1JEzz}ITv8q{CfQF#I888ur&==2e_ʷ4>>hjN:իDGgRSS̺5oBB! (j_`ׯ◧lzlsƒĖ<Zyzzhi6W<Ζj4ZF7}^~CB|zGZِK.pƎȼsf@lشVI_C7Ȼ g~jؠ @BB6#[VYZ+W #xgiղo\gBnQ EHz?kJIO`_囙IRѠ~#Kσ\{ѴIsʖ-ǟǸiؠInruTu.^gφz洲.'d^'C IDATwX`^ޠ/03GGbVzƍҮ]GRRqusK ,Je GRAG˲o>>4Zg g:=ْ_+sŮN97͝ۿ`\ (8̑쵲!F>} ΎS]RI_C7X;ڽssejYe WWͱc)]ڟy{EKS'ݻݾ}NqZ mꆋ+7>z5777\]\uj5'<_fhXu4r5RY*oIq |~j$ 69 [x7ػo7aghެkeܙJs^ƍDٺu#eѫg_/.п_ w0D授Oiݞ=s `fU*W%#E6tnntf+_AIoCO?_/;G@Ĺ0"΅p|OthߙV')D5 pyTK))KJZMM9ywvvvTT"Xvk֮`՟;x+V".OS ___峋ӰAΜ5cdffr:'*U7Ȱ~^[BG#7c_ xDNNUNmV%)9  JVTh#^0 zȻhlV 0}٦}׮U<.S?gMގcFMo>-?V`q[ѣ*ղ&DGO_~;;5O~Z _V%ёqc'3s/s;i [:;9;+Ǟ{csrr.b/)uprr*t z8ٜ_`@V3{ QlI_'GVs>eYf 7f &By[tÇKYP >| Zh GޣbJTT_|̌[sbbQQי4Ii(ZNǩU.|3͛ǗfA-)_"WL@歩Rfa4jF@X;*DSReS/s*Sl}ǐ#)Ej5hڸ2+U.NL@UoLe>/Ϡҹ~~tЅ7^ѻx|l}iZjYx,#J!ģGVSjuƍ̚u+9xhM۩T*YBCRr2V<<<%GCjj2:jIHw#;;4|oWprrBHBb<:t}4ww222HKO ڣRّc>Z6NNN$%%Eff&^^VDբ:l=콒ANN*;9;RHI5u` 1)3Yl!gBhؠ2ZVFwqlޞ230 x{XusuqEmV:k 7[Ij\]\1+]c .&ii*Pj{T*좼 (ܩZańGYMH:KjZ 9$$aRK8w.;wҩAh t(CLnޘ#_3VY^%qttee)[ 7cِĦ#laK{ ϟum[8z.+r?huzls>=YƑy7hۦ~~@WߠFGz w ϣfjYexN,3Mb1tصXi6hϽ93xI+[瞱 ,\FY|W3f3yӬXD`007/`-Dݰշ/?bQֆq?3<)f͘Se¹ޡco?XWW7)ߧ1i“Ly6Mop#wZ %%O>oF)R+*pRi٢53~~NXYf͞@\\,o"UT~㽷?&e֚d@:m#G㷙?)S:_0v$fMRE߫W#mއBJL@&M|#Gf;oyjÆM>m;tA8:jS.`<.叿_H+T^WWW\]]]iVkKiܠjjcTVdBBBkU$^^ޔ/Wˑ1ԩ]Æd2DZZjQK@@ ._"==7A*Us2 7W7.G^.MH'5-J*+RJSBECU>t4͂Z*Fj:u?v2vv**)۔);ׯ_#)91|9, 尳#*9^h4R\/J˔?؛$$sf F*Sgyl} Zd2q#..SX2*؛ǑG` -''g*HfV&q[V׮Fj)S&P @VTo/onDGB=jʖ#9%,j׬Cff2U٘Q/[FW#+@)Ҁ\Qi$%%sd*UC++U!>!{~jР1Mk9~Քڞ^|x|32śF5qs3AnnTZׯƹSTi%Yv]4 WFrҽc 2j-e˓ۇQpqvʕKdfeQ^}奀'5k"\9 R*x{(AF *.]X"mqt,q +3OO/rG`/G٩p9995mv v:8u'mIqhZSBBN? jΪQ =<ևA^OPfJzl8y0 uVZ͹6{ؒ^+@HiZjWTnݎ3r=4\vm;ҺU;VyɃK7XjY~>w.g^@w:κ sEbmSK/l敚o?8CN˗/v{vgg߳w2vaMV೉SFZ\ݹkm%[)!;;S\Ebn9` &&{wrL&qqq:}qc'3o4- t eft؍'<Ǻ+T*mڴg%6kFF:agiղ?ɖmQ6frHXN>ɘQ8`(gφҺU[Xr1 ٻSu"ճ/dgڥ'ii8yȕ+d1Zҥh߮OP:k)Ʉn6ҸQV`՚e bhZbbiԨ M4'8x)q>0Az գyd#wʕHC1Gv ?6RJ5֭O]^l+q k;Sk։31;AMֵ'*tg"rºtFQԫk>_{>>hެ%rE 'NA՟}iؠ eYaI \c9Jm0\LIKO JsǮ{s6С ;wmU:QG%.>8=9xhS&=MϞ}صk++V^^(odgsqڶF%,,F*TĘpQQ)]qs!]BFF:zdF$, \ə 4։TF K,GzIvyM,9rUӷik,?LHIsѳqZ F^ϵW2hףq>sLONydqc&+x}{f貳9w>&={w+uŞ;IHHd2c`Ū%<>Yz= LO\o<Ns->tڋn]{VٷW.h%M2h8ʖ-YaM@ÆM2h8Vrܵv+_]ێqJ$7&xϮyZWk^[ٰq y׮U NzDzn*vކNW>Vү Jv+s:䤒˛.ӥs\]8rZ~+VLhԂ 6l\Î[I7!TRQXr1Iz/iZvIc,[jZڵҿ`mHrJ2,#xN]z-Bz ILJd%?Gy^VTiݞ~}X<.]` =s_{Qskc̨ jpO_q1zB*]z.GDD͛K C }h4󉋻{z *YPKNUOcYZb*~}ѫg_<=8rY#::<+Le6l߱QSΏٴyܙLn 9%]3۞c14-Gdo?B-[kUVoz3gSxVT'_gĥr=4Že s⵲%-bؐTX NDZG5W^nNa_|b6mYw?)c[@,xt˪_+0US&=M5HOOcͺ,_\ꆏgÇ^35_^Z|,9HӦ;z1l ?MQ,BX1ded銵ԱB!mH+B cB;)VWN#++fD!xTj]]lB!LX!dH+BcmQnUZg't:e@!x t:Zg':V!3cB!uBQ2Ej{B U6:V!ԱB!Dɐ:V!(ŭcmQd!vũ7B!l'uBQ2B!J=7B!B!B!BxB!B!B!!!^!B!B!B!xHHW!B!B!B!B!B!B!BxB!B!B!!!^!B!B!B!xHHW!B!B!B!B!B!B!BxJfV֮Fwv ,]~gちVYj;_ɏVUAތ3E VӠ~!ģl-{?/=ٟB{R-X],m￝^VW;::/h*-^OV-ş_,{s} LJF.[۶}3>?w.VV~gE񈉊nU[H#E= !îzޛ+W#Y~%gQhN8;;xN<'"#/T!d:ͷ_O4ih}}Ү[W1ki?˛X&_J~\י~Aз -·3 ;jW-+V.a_]R*VL||6aEvJ]*T 6^=K1s¬„ӲE8| Yh[;+!V̝GwKn*;;u-e-IO1bٴe=9 6g't˖//tJynѹc7Xj)//o,*㬮-m_[lY+[([fZҼy+J*MkIKKU6ԩUӺҖ4 ڞ pqkH}8y2R{¸9b\{5 ;;;^~ a cE~:cђy4wwwOLy۱w׷RgR&g^&F}˩$%%*ugu=;93uƍ(ʕ@8vqq ?vm;28usdu /?V/…shފpA|Wڟ.v'AׁhhӪ=g8z0eѾ]'\]NE|Wli[| ݻ̬ oLmٸqe3ZϾyV=B].O=H֭Sr||:uJ͚9>OqX[{{{ڶHRR"'Oh4rAZlK58w>Ȧ- 2J7mY69xhL4*_`9,^:``İ14hИ}iԒZYsEѦMTʅ畼.Z7;wm`ݺUOڶh4YK}Xf0q9>k7j8z⍷^Ft{o3z>-..<'u˶DF^uiҸII|GgNd2R0L|gT\"dԨDE]W&++|d)|}Ű(]ڏ}˦ ˟ѽ7;uF6o5b' F FjZ=ոq_9׮]؉# ,Ydr%fAM[п`N={Q^ ތ჏V~h4iݞrgP!xܽy~j~7-[AV+EVV&E5m-IIIAl-k}g׮]ŗD34NMM9)HZu#>>XoK|~ s#:O> 5g K1vPeuj͝Ԕ{ZWڒ&55Efæ5;pL^ ?7+O+yڥ'/<սjB}i߮~~DЫG_T*֯f'L=MXmX}sd7zIyv9q_'FjXn} ^l?|} dيEJ۱na0xw 6a6?nՎjj} e/<*Wu:U`,\7:9_={n=v{ j777v١ciTuvѾ,XԫۀNҰAc\]]hެ%k֬i2lD_e!G٩|#:8<=5Lpf `YDG cooTƉGILJ]h݉7 ?KPT.]P26^ q. OO/^y-݃];xRgr75lڞ-6*GNPw܇-͂Zmrrrx'?i8FNdžMkٲu#4nD}(S&0xnu. ϽJ]̙6mYOj餋_W_~xS~[o5J~Z'es/o+S&[գ;z܅9Nʕ˜>umTRwdbؐQ=JϪ˸v]-K. 3LLL^cڒ[dŜ b4o֊\+OO/*Tĩ'v 'O:fAHJNĉcJՍ*UwWŒHf;zujё*7l=wlNþɡa}{v:_g6Kˆg*!xНtj{r5wֲ~݆T*lۨwvJz#ƌȘ= ~5 GGG{Vۧ}~aBh)"-+mIq.!+35jѦu{:wj֫;;ܶo߱_mBO]ҼDOn[ё]zrBg L{&11Nj5ȏӾ dFz5ot{R %mPTԯЦ}n8xx;vKq3h]n׭s烼Νg5.as!'iS5jʔOQ|E=7cb4dUa,_|{Ls9h4,j)XX*&KĶm:жMBߐoB*՝H$$Ӧu{:vd"<,s,r{} YS"6&eܗrmʋIIIa~ fЀaxyyEԍkd"T{cзXvK^l7X|rg)F᝷?BGor~ӧ.t[y-8pp/|6-s ]NBBMuDž 2lh `ͽmF{6ٺ\毯- mtctL[oKGGGx9:F!55+tnȏ%hm酳3K^Yu7uXvv6N} ` 29Y{SOOP-~C!Jd®rN/[Z)Yz[ZKL&MyiZ _^|++#ֶmVr9O]J[g_Q^&$^wހ3 '+8݃+, .[מ[0vm;s~+4-e- ۿ_ظi-cFM vse/K~INN.Ybbexz?q{p79nY@7>g28?5٣OyFKHI6lihMGp6iDܩjҤբw?%>>z ztͳOK jhMBdeeO?ô_BJ4׈Q#ϙ8e2 ׽ǗlmG[$''Std͛bħ8v0o2BW?yݻ0FKx|UÇᙧ_fl G./<+Tbi)4O`TBQ9RHII)Vݱo0AxW?^o`Ο3KyXc);fݻb鲅\DX9Qa#,$olL\jnˑx7h4TR-ѯ |||ygIN1lڲS? !ă.))J3<|=3;ۋvW͒,Y; S RiI KHHHn:c06ܻjumm%/Z+[J.33g{f99V{q%ťoMiy)kZm++^J"i?}{7L`DY9w?E%E_/& ܿ'7W7.< {|>oʚG77l9L&3<7̙H˱I2PpH}p$I)eTi? |Q?ɽ}&2Fg4[2qtݓS4D-ZxO H_ @j#7n:.8Jv}|T*l)vځx<A0}ڌ}7mJ_~)pOgV`ѽQՕ0 hll];k޽cFCz̙_]t:=j,?"$ TV+Ǧjr^ɓ-[7#%KSFAM< %ñqSG;fbOjq֙oST_£y(b~w[]ހ*R՛ߛ_pwn hjjë%Fw^E_ z:>\>Vb0|xY{}vځD<壙NzUOsL%Gc򤩨ٖq1{\pMȵq6m IDATcO a̤)V)Q#d&LrJʀ'=Ӧ<> )rQR<==a#p3k<p](|#EEػwwc¸bzkP"rd `0;W_dSELkwEQp֙紧O;z )iN==LЛ}e&eQpy=)_`sWӗgϚ#eihYJ>|ŘRf=-DH(Y: 7C$qƟY /_N]2̞5غm3䚲Pee)ϨO]pZi:di3\EQ}nQc߷g*kےx\(vL>7A~^$F|15Wooo _ذXrp޹_B$Ɔ gbd|k~W<7{x >۲ \5 +,=;Xxs[n;+Dss#FEݕo8>3%K/va9ȱݕoHzqe֭[F%_o5(Qygq)0oB<س{'DIĉaO>ֶ^/_vӧ̈́4;&Sk}Y3ގwyV+ fCoٶ}+fϚ~o(+ǜ9SԈw}K:W|X6,\rAܿ''UCQ]7H.B!̟{*nMX]ڵG@އõsO˾]vʼnbrq/>>\Ʉ3,E4SO?^fqƒÝ'a (,(J{<ӁKMTLֶV, +uʺҝL35ښqᅗԅd2c;f<6{GE $1n<uu5WY/]4֫xgW.s?P(>c?KK'b݌\u=.x^x ֮[_k_->'MŠ^ēO_l۾z+qB֠~#zv+. gҥvwO?;TVĊIrFKK3.|+! cOԓ'w̄M?j8eL&3Swqׯ}-Mxe =j,1󷷿7%KqշE4];3pm}&O e秼X^x |+EK0{<ll#xᬦ3'9;vmǎ[qշjCMM|ct7nw7ү_ QPU}hqխ?#gRWNҥ[W^C)G- ꕈb/W.nxaLg>r⦟~W\m̟fN|rӇ9m֛py\ހƦu MEIzo߳d[Ǘ/:*KXnеm|w҅`}(\&Л}e&e|pc3{v܆wy_Jڌ3X+. 5Ug? zC{L_j`a˖M)(`0W\~GaX;kYvڙ|| _ݿ|*CA|o@cxL(;g>.\~1}/ݝzpg8mhkk#/Ne}{Odr_ߌ}-Y azyo9Jy<}Y""!h4-Dt4AP\T)zqfvD>;ZkM͍۴Zz44ƍ?&Xm /gů;<#xO ^""""W|_ذll#A)gb)xJw1A;Qcުq #N[OR"t2-7\0Rʲ%m߱&MŢcSO$c!$]EbKD'Ba̹Xp1Ə@Ss#?]=:%BR\\ŋ[SfQL0E3Qaj+"">o%""Y#Qbh`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`hPeDDDDDDD (P BcCDDDŎI_:0KDDDDDDdpwWbXacO<͟mr1} W?Cr|;7`xXX ^"""""""ر܊=wܹsí܆tץ'מ?lI`(_U&""zn.|G0b|UfzDDDY/SO֯{+&cSIOnn.+؟U%""ҦL(;EZEg0KDDxxX $bDZ.,xԗhڹk;~cVN6 hiiNy]V:&NƓO=ݞD"}rL<hV^xh?LDD4$yxZg.Y7ZZ  }Ao~x3VؗL<Wb߾xQ\T{#DI'zkLDD44I\u"0|lWh@`ARRǿɇs+t4~:-OR݄D"rM }h(J_C<ݶ )E鴭?ҁmсmvHH0PWDQĹ˖c܅֛D؁mсmvHH0Pxih4Pkzٮ #шX4P(P?ڬp9]H$uM$-f8lW%j5Z-<ϱ q:(g*Ye0w0'}\ }kOI˾M;zBOJy0 }it)@mfhEEۡ"i C@0v5 q\~UQ[Ws}lll$CE@j2KDDDDDDd%gc㗿GDQ(j5b8Lνwqѣq#zI0L A@[xmll$CEۡ Q?yغm3DQnIll$ClWh @fq-ajǎ KDDDDDD"嗴o߾c+~_CVaͱA3\.n˟׍^y+^}1[hH;w! z&MIl'pefDDDDDDDDDDo}r_PAv}Y-""k^9 ""h`h`h`h`h`h`h`hPeDDDt4 z#"|>o2fؠp>jIDDDDDDDDDD'H 2"(q%!"L&,Zx:.ظi=?t*RpOѣ"8><]m"""""""""":N 4`)1a5psVuMknD2벜 ɱGM?m DDDDDDDDDDK#,EF2dDD=%hfTWWvYNج6V_W霉(;v- :4RBDD#i!"LweJDD454㾿A-ŐEQDDDDDDDt,Jyw- v8 gZDD40;Hj a#{ıoA5džH$ϻGF<MYDDDDDDD ,b#;p]D,@#"̅ g6DD4TAMV N۾MQp(?IٔQjNj5qjuj6Mz`cZ%ju#\52X,F,f Jh,dlH d?  ] EZ9?ܻ{ٮѐ #,8}S'Q*xY/# m\؈ѧvhE6>pU/_q/?dY ڌP( `0`IOt8rDVCd*YӅ "~ j!~ ycգ`#BHHX hx@ r3oLASabxzΪmվySX+""8EtEŠ\nj*r踘Lf_bS( jQPP˾ML:-y^W_{)30SH[k@T%^QWG1lj.dǎ99MIo ,ZDD4pRK@E܂3 Q6@֩`13pp83h$QP ɾt޿+. /K/?~-U&-c80dQط bYe I1R<*=3xPޒ4DDtx6@hLjMC!h 2 ou$#ab|V}٬6 gkp++># kU"|]aHj /D]XJ8*ݘIoW!gvDDDS+6-?iLv %>ʂ\IY/#g*@T0a,0f@A$'LNFٜaX> ,B-"""JkVC֩')GerUzj ke(ceP mݨ؄O݁GhZ^GDD4h9 t:FY0Q_dæa҅]cbwe+׾BA䔘?AL wN9j>m5~GDDD4h0h0־MEؔd= eq#A`)2sGBcTc3{ڷmlkQqDDD9I1lR.*?:}W~ɧhj>f^Yhpg&W h7Ɗ׶oOx}hE%2, {"N0Xs""""KJD,;vᓄ M ]kAg`m0~ 4ƝU/4h[nhhi! Q%qg[C0TZHDԗDyNAպzl}nosL f(K03"MiWjFPb#rG@oXi鈈0A$G* JeYN j S2g!jCYY9l𙅈cc*ԍ6ʵgaUQPa:I-ǴCAZpT{|}{yNցdgA֩ٮJF8'K$]h0E@q5.Lm##DDDDC.GD\AğE!' R3DM Q%`""A9#DQĴis.fG4mŗ >uи o՟4'; L>Zn'؀ DDD:I%"I`N6yWf!7%"k=b8 ެ%-X(S`ڲ`m( Cz_rFB!)*Z@".d)EXpVĔcU"Z(5{oXvook<#7wvV[T(`Gfmnk1> Ev4j\nrG0: zmG[>; t;s ;%"Sb#Z]1* s˘p^9,%&8jwPG@pVy(@)4QFEi&6pbnqf44]獱bҗFCo" Y7JG= ٖMxw囘9sNېz v%6JgLL`f5귴tY(uxh)34q`Bx:XKMpV,.G'jd_k4ZA #] `X ~Z[[H$M`@aA![vJehll((**VX,oDE Kr ?is3xwi#Azm!DDDDԿ$Y֤F4C"  :r QA89Hj pI;. PUtY۷䵊 IDATw bɁsb}>, cۋ0Kv I-%~l4v`;iwY6ҍqV44DDD}:܄ATM0e}^= N9nu4%7Ɗ]g ";*[:yWVɘ;g>91|UBug\\r0jHzpBƢ(b)_++^Hy_ww۶o]wN}g/놢`*EKKs_7$ Jg>2!w>ڨƄ&9MD'( LLDDD4$e8=ϯO&WT@D 29t Š5 vGD;4&5A:ԫ@jaAYm)6`jQ4%4߅7ޙ!V߻1-{q/ r|*t!b#^_0Q6g>׶c3xQR%h[~no#G˯Gk?o,'MH \51 >t?=c뎚q⢈A)U*̚6D#xm7w܊'~ ÇsCyߝQ%bӻpT{мׁO_k(L z-"""">]h(+Ծ-!=cJ#!LdvU{G>(CINRL.BqXLiG}b up}~>5}-݋9 :͞=c-3͚_VFޫѠ% 6%Bql||'c2zqɔqFSώ=yMDDI*S1f,h|y\ݕo둟Weذq=LF/:w?}cǎǶ[:SQp8<9{jOaSi@#qcGqigGo'J" v-">}xG,D,v'|AQcDDDD}|=D"eݐ'$Hh }J\AF">xf V!B1DQqaX]>\3iۃH^ PeDt p(..w݆h(BS/'Nۺ;*QJ}q5t]Ru:FSO^:*/tf zgu'#Eۡ"i C"b;:^ZKr .q:wyω/E T(_P;NO?QձN5nͶ>ESL_G@!ͷ_ (/ EI`=8&LL|lٺ/>톢(E%1Y ݞ^ @luDIަE,2\O( P Tghc$CЙZ4P䌏1c ưJxO!Im #aLg<#YA|zux ̟hlj`5ԌUPӶU'}./Ea[~4rvyL1MHmC՚I+ ]aN- gk"a !3lApw/G\h@"h_ß5QF[x &KFh&"U*WO+ٮNiWVnC~^\r6Diӧx7`r|afmy];c5`4yRɘ?v5%+1v85s^^q}6Q%BZ1x>Q%BgY=sk @o -<~}=gAQ=N΅1?9siw|mA(do+ m])]JJs:<}zir^QHyDH 3gW.}!TVF:ՕP(a| &ڡ6x.Wu.4jJ+b(اo]eT*\m#AkQ~gcIyo47Xk"aȀ7?nD۞?g6Aoe dFA0^44ԧ-SRR !5%|ou*Zg\l@;vtϓ?ݙ>4B֩䔘 I }jug/=2܇ q7f|Ge47x:c'qٳ @2YɄNO=⒔*yN3x465g(@gVn[QrQ6+HG. 1.9#-/JDruQXa C2 ZpC@S>>|=4F @8ڑ9~!Hj j>`+ HĒ >DQ O%ŀ1*).uA̟w*@Q>9.G_ pTut4&׏Z{FwE0IڡcQz hj!5ʠ'ƟSQQ0+34 A-_*|A0 ,/֭?ݙ:R%oڴO c,EF" o]Z@? I%2̈Û!˙VB@{CsR*YJ%C%PvP<EDu| S`3#7JoBkVn΢ ؿl0$+"|y,U$`: Y2 jdz-;? 8Cb0!T^;Ҿh<@6h/r456@%I8wD I}Ӹ N܂ G;^ ̸Ge"! &0|V!r\h{6d[w40,D~' *lRTXpV{zk$5PgZki&"5239xLL55$YӇc;X(J+= :/xp$`)2lWDD'<̀7NGno*o-a|X֫VK nWM cxi.ž0"0 gpѰ~WMVQ%ǁ{Ӭh֨4 ĢQN"$rs-F {#?,_s*PJVo"WCh=BF4CAQ`Y'Bg@k6;:~G-P}dr&orX:w% AkQTǢvC#*F4>UʍX8kZ/gҠdA֪pxsSm@p%@`M";(eu3uRO~>ֈyEX{rA F܂+]p8:f9NF& Pt1Moe5e#g3_]h9S {gКlWi^|c磡cƌC^^>a/x,;P!,Yݧx׮]o ۶oEmm5ԲS9I1l$ΙA0yTTUBm])q!w&,TcE f% v;UA<H?f 28vn[c+'} kLUH yxx4OtVMx y:zژSR3:tk hJ.̗])6ym!rP45Bd=+)K# 4n܌mLL1WX(X3ʚv;0r䏷\5Dr @! CޟX y:Ҿo]OgrԐ*4jC,GΦPWP:  zT,f n.8 E 55Uxggd\-ݤ.̸z`}8AT g=QϨ4Lx{>f {„ ڌy+D~(bƌ9PTعs;^}.xx lm[ThmmV8jjQZRι 飫᝕o"rk7$Jr&H`0Ѱc/M}pTyP2=ZB<2Qr$kN?0pmnBɌXK0SZX`Bg90@ PY/l0(Z9EkCm|McFVi$kPB0F5r( V TlAQ% #M Ѳǁihmbf| yzs}C.xye6-6?M۴fꪴef8N m ;K3|fvl;>2M3Oh*0 M`-3nS3&0KN?BA˨+||+_ǟl1.x}8&xPBW(LDDF m^ضm mxo~c+H`ؽgg6ۅױX |u08kM]b 8<˜yE ZB,C~'})"D)uDY;в˅1~Y9d $ i#”oƤF"CRu*k @gBc:vH<ڈ? AмׁMMr䏳! C6Ȉy$D $`xQ܂X8kp 1WOО]* `NX(MCNA:N<rGgtznSF6^%kМRS;Oz'Vf& &6= $455B@.*YV8 uږΤFAz}fY(j׵`ĩE kӧt4*b#FsBgmqc[$:-FvyP(xwM D\ijwz]?O|J>Tj 1i&"",2a"4lkE&8*ݝRza`5AWjx,X7i5^Oσ{1V( Z'F:UEa kUi*/xKB!7Z;ѼׁCnL8$@W!IgZ:=|g2|77!jm< :rqB03xXrl䔚8 g#[| Q+Q_K-:OvhւW`ג9YBiAWjylj-3 $ #F%qe? P55s.jk vp4m; (mGKmkw߫ؿ AWjnw2ӣyL"hP ~mqc[$:-IH=oU vV/;.opx5k`f#Jنr ~X̨8o$M6Ij ,"!>; QjsdģqDҤg>} I J‰YQ8_K v~߫BU煬Sa̹f2 1_DBAGlq?j76!c+q`uXkTZW>!W^2v*Ɲ y^mJ" P3H?}ey_]L < Cڕ=[qq݇VKQRtH D@$@ f4CML}~1ݝ]o󸖗RH(̔ ɵ })UVR PxvU ! kv?`~to?bY @Q_5<~=7AmVzfg@34N~ Cać?.L، ֱ A`g8Y|Wk0bp 8h/FBnG1/p>/nrD,D%ťE A !A(YLDqc̭i$.D7OCVX/}x[f?Բ̋\I?,Ixqd(^7^ۑcDtfu% W~scxw—NҊ ŹM͂A, O#6t '?տC!6\sx/\׃̴Kt">;AA{G^+k(IpgLM2@byѓALfyg۰Q-j`y`z(Blղ\eܖac U}O'srT0Vkkw `Š@ IDAT"?QmXȎ8%(녥[-e`l}AK̂\ŇYt 8WZh^f(8C"\ɇ+)ղ0//{L4C!r"tz[@pe oˍW*e_,?ޕc]?`-K81Y$oe^ˍB~^,lxY,#`?<7{Hxll0Ué `"rڗppobUZZx/Y b]fA*'<{}(AARCb.F^EV˲5֨5lb e#;RDeAFfPXvF#Ei^]ZyKL͂Q xy"xV1|aog­to}J F`mD xNjVcEc.^u0JLv@c^= #y7[Ȁ"O y޺hRN(:DoeQOJ^515 o d_Ndи0*hK!v* ާ:a(&N| 3q"(ͽrE_z[oֆ b?jSe:7 !}/ ǃ>Cϓq(4Ahg=>c 6m(*^dAh W3UU# 62ALl׿}2tP0MhކPjQR\U!eT}Qb,f+%ղ+]60Åeբ۰,hfeC? 9}Qj- :b,dbgDvd_J+Ȍp% 9B-jHxɴ՘URe wy_?RJ+{//X޳4lzO˃=\y8 >wlWLJ,!v!SΨp׭ Kz  <ݿܵB,|Y u7S֯ l,M !>"]߇|(LVABfڀ[$e, O% bwnΐ%_Ei~y6m׀eQ4bloVیfme.5L/od6MX M2 9P 8dx@έ̤t 4C Qû]iQ(L9Y֏x_ &=4} 7惻`(&fK!녧PY`6np 730wհ_n*l;H"?U^Q[ΩP U8V 'tM{n/șz":1k[6~ߺr @ss"_~ZP˻^8EFgq61v*۰qnzeo+l2F\{iC#z .w̉xb}aVq۲X+GFՄ;;愷Ӆö2wqGpgzȷQ_{r&j SNAA$Ã^۴a6xWR/QboMljIC3<<I=bQ'y [Tby^/Kog>Gvԝާ:P,!;V ,e8E3 de$d1^ <]mLͷM~~]^lm^H7&QK05 RfCA3Ca, 9"q! f#NsjA[6Y/[K4SRf:eΰS zQl$&L݆W!Iv AAfi80 92&Ԓw Bkq_' ETΪ(/ʰv0+u3|o̢ZpnPUD׃J P˲KXAtN7&Ql=h(&2S5w4[w5b@/PpGD'zƮ_Y|IkhokHC1!H z 6#@FzWSxߜቻUt貅SmڸƶՒ`4Co΁ }(xuPMMK'G<ߓؚgR5_E1Ӻ`ZКQ!hO9HrV/F^S!&\a񶜔rW9nMMeQX WS+_Z`Z*%W}| ~f4m5ئ V>Ag#pĎ]D5 Fլ,+0&8|7. ?ݏzꇷ ^JC-jx1ƑtZ0),Ȁw8KݣFiA e{e%mOQageH4{(z=('[UӲEz{}Ae1upњ;℩Y e`6zw!?]oNny ;{j/3qF^/mژ` Q7ws<b,] 94)AP8~Jx(C+wp3\aj|ZB ĝI$0z` 6_ /Ŗ˃DqSǿـ6a6E}CAf(<{gThқ 6E 8?'PZɂTK5&ln ۝'@{/w6n` A:,X< Dvw̉O-1[`x3@(~RFkӨ`˰Up0|*IʊTK8' ѵ=V`8kB> ڄpmibV(9L3fax/=*Լ✴nio '?ُd 4Ȏq~g^s8*IŹW` pG$.g"wȍq#Mwsp#q(tQzdL+/w߃7EiaJRAn|RFANOecl ]1j|%m¶lEVoA~9X}=Ot ,v 0NB/:E9909.0uдX:gE9 sWSx;|O}mwu~1w-҃GKS!x/K(.P j,u? Odp/A|Ƌ HI Z"q! 9nibV+w_P6sE85z嚎3}e|1\-̿FaXř2\]暔$vN׻ߕ N~H)H%MKaӝH\9gD>;%WE%pAF{<>k~h⺏[^6a?#m6m*h"A 7WX[5h D>AW+.`8>ڃK1c^[=Zaj&\q'{@ՠI/fAΨh@p~#enwK9`N4h!PfF v W&d4ـrw P jԽ4% ]bX_(wqOΊxkeڍXYZp»Melje#OHIeJI'H7yfWo wĀ^oނ2 \^ߊEJKÓÇr'.txy|+ga6}sxYŋJR^(/'\6暚L_^?+eLl zQi<$&l]6 CNPrUwpoTt~Łs?߹X]cp;ꏡY ^j͖nC->,[]t,9` G۴1 F^^Gy'۸1yTNaXQWXDPS?x.P@dG9WD< +9"r<ׇB bA_OoKQ1X\뉹VW^Ox+fV1=7HUCT:8Q,=IR+4ֶgr A۠/vc馋tˋ8nWl ,\+]R p3*1qcY|p I/,b A~tA-k*JRE pX 䬊jYG~˰7o ^nAͯރW ^>]Q4 WՖ딜 !,kj62wUte^֋a2# g.QU8(mk.M^/hFnǛZ}A{tL+gYDjxTdǙ0oo-Kؚ*52|=,8BQ6קvi<|/ u7md. 5}Q"+~GCQk߼b61v?:NPo1uJZ/ HqN9WrS%z ]hd!FՄ[p%@èeNd=8b]nHIÀf xxRNw0d5`G ;΄t_#}sjI ]ĜdLE*x^A\(rMM~RA\a1ξDdΠѓ[R&wZd+_bA})5_]7diPH\0S(uR cHz PM |e: Ǒ t@ٱ"jxnҼOc1t`^MPtـY 8fՌؚ]ȹ9 N`@ `֥$C荠miAx=.<;C8 uĻ8t_CȎ1r6nC5‰,nOYK%Rr;(Bq }(|]kY 5䖟S5.n b쁃}x[qO+yN7:Gټ#~Pn WN7Dz|b:] ~}+4'N᳟>ϯ?/si;yԖz=V`8 @&C!b~omtR})rR7Yه0-xL;'ށ_fh_ #~̼L,.es)+"lnhBD(Lr#|Ŀĉ b!V],x'),}ZsYҏbynx`<E=\IF3 t^`"_DŹ -XMeQ'r#y']1v"Ec1b{?_/`r~`27teTU̮],K\{t}k 4 Ѕj˳{ _˴A#u⍨d$E1,4w5^ʡbjrc2_IY]>'|jtEئLi#tďśO :PށKclHj `dwbA }(jVeEE#M0]9pA^O܅4*I JGFV:8g=McXH\3(uf'Sa9${ȉxdIwK`&.?ZА,(t?C8y&IjYGD[Th xέD܃@.%X˯ 4R A*7^f)fOd/Ŷ5YΠwqy5D`# 9`魟^c3>HX s1A; ?Y >k28Ea ą(e ׾1 M2e} Q'( typ{(K(nh;( .>/=#0t^hda6I SP)" IDATL? C10$Ԓ_ y}L5%BN+巜8B^1TfvfBf ҪA][󺨖4PRVEy^ee ;[RUj8jIqXm#5T @s &~6t1\Z`(>ExJNm: |K'p{XCtݗb?4,pb}C%oWUe;"~_!v3耧Åx fy_@ 05k;ĜyG?ҍJJ1w5.P_4fAFM!8 / >B5~@<<.#bL:`啫% 5 8n_Sv* ńm :p LkS!؆{?A(}6 gOQ@qdNJ3*bTmzyZEGvc]iEpx*)a<1d~2 /.~! oe*oj*-x:\tMmoorJ%q~Mݗc~^M2_i\A&gTrJĖ#N(_ //n{_;'GDV!egI r땊Zҗ,ty1-u7/4N[>Kڈmՠ+&( $ hBǙ0K5O/+0+/xz@( :û8 <߅SxZ{U 1oQm7 #PF8ĝknGk45 RZA^sR`8/ e&6_ԬZͷvxg:oeKxnz_p4t@~4ݖwr@ kx:2(L99gAdu3TYs3K'E(aF0WHs \8n> 0^ l,ۇZ`[5E 77MPnqxNNqGSPr*.p˯R^m#$_ʻ?__^^//H@@D[bl@ӝxk=s*f$1sexX4KNz ZԶ6cdF o1Kc9 psDUk[lQIp0SZTZC$؆ %_|A#>"7Y\5/?^Bχ:4 zN WX0{oafrF]5hI:=^x;%Ct(Y-y^k4Mg gx+gp0<1'/Wr%DʙllLc,A/@lQ hmpD_eF^±{,{n3 Z۰Ast=x - 0D|u˽oE= 8KEt?D%(eKsco̮[Z8t=E%%KT.qH0<Aps0| 8-en05 y/E׳%>.@oA % 72HA-iO}.'0[9 ˰䫐2*<4jk 2:"pU፹.y&C119X/27K;ҋk-;}.r.yxh䬊tyEǏ Cpq j%O8(™/|3WpG[S{ė 9hDAwsЊ!A\׶!u Uj'Z@ǙN~JN)t}]ס7~7nq8*/L sxk}:۱jfABE9m\n~ 3pYhˋ+4KcXErt\j(,Wk} '暟r@(J$*7D(bx+&9ꆞ #v* }},4Q5 @QU$r^A5TA+C)+UJKg JP.TxA7RS٦Ahϡ0WD\Y1&y"Y`m[ze~rzF(˿*}Ģqm\^$gUי ORO5K1 }toK ?<.H?ظ~ײ/8>d3A貁_S19jR]1PAu;(Byabs05 "jpxx ˰`++䚴*I>/X 9P`DIQ{ڃHi|Ւ3Lt}Ow"u7Pj UCq4HLEZEGX3WV; !z<7˾-b$$^8|nX9pQ-&PZ%ltmhFc1̾j|oDpW!=G'u\ZEp^^l\ߎ}ΐ__ .,)8#Oo{FQĶ,ޗ="Avز:߯j( #eyʢ)}<˃}^,xwέdVMOCJ 7ʥ>bl&*b!z8B@=?q.w={47Q 'x ]5`V]^V jaApo?+xx:ФRrUd? ]1 FS%I9):eߧޓ-6?Ht٨͍9Wۮ`?^5m6f$t'<1'S6@4ЅO | o6ىO#}?43{5ȉ@K7oiP9)^^½fVlK](JpǜknKtc)%_E_`sG8K+,'q 4Xz{gk3E=XYQ?Rw1/|kbJ׿ug>:;@#@IQeW(ܴ^u֖-Vm7kv{fF⌤h@R$AFNihI "UJp><!M1p|u+n o"u}L GfԪ%qFZi8{An W5:8Z̝_\sA؟Ln*޾2WVd 3.lYm:eya,Y*Pm'Js WB/3DROI,] fvl!2_QTV@`SVD Sgļɚ'ZS 1_n )vlFU.`S;Jĉ>fA JH]T03xU%*ʲ|txe\ \ۥ9HB kLz)䍈x8;Gކm@k_<|.D`wK2TdZ<&r]j!T(pEt6^&POI\R"+fa(@3m-ZFŸ ;c9,>cjF,&N{N4?}B*v&2TCj B +zSls~ wh^q#/t [{FBW~\,_.Q"VoxѫwC!W(Mh11tقcs,Z-rI'H9x77~pm:Tj%HY*O.g7&YHU`Q(  wiǚ}|R":X. dp8Oő4h:YG6Ck0 5Fb1] zR 6Op2}K*z&]Mbi_Jr0둻ZrBbk MGr)'8!bbh8fM&|CK5?ҡ r0f" ,Ͽ MŐ>T 8U2AXƠ澿w)@})_gn#Z޸f/,? Gy{N?Ĺs߉mBQ,#F~E5g jʈ&Й8:Do~_j%O4&]kR8z*f?ުOݷ;=TaH~p\6I*O+ N >+JJݹ&z~sA]VCRQY$x?BIW_9=24n;Kaznj!2`i%-ZOK:D2&:زVA6FoՂ̄hjTz#E>%!e ȅSg6y. L~1;WޚWx{/,ݘK:0?T)pvڰi{%C7t<LC]OVTJZn~ Rێo(CVJ"EikhEI&am4h7ԘEp2hM:܂m7 2'4 &6Q(,Zlf]hSU8a=żE:n$~S_ykznd:N3AX΀Z5ĩw1^[Z"Vln]VGp<ngOJ#=qdI1r_?~oŸfr\m۹/no g϶4!&R̪|R"Mfn-PT8v| ^Dl椙& ?LP*U+ IP(8vDv L& ?za'W>$ s3\u[n2b$u}3$Ox\IG+J1y(d'Z1Չ4F |[?UWm Ϡ )[d).y er]LPL}cE 5ުbA>^ZFӭ g8BM'ʽ G 40NǸ>ĂQM]DNeɧ%"qOw{x֩Й'l>%Q*ʋe6WC2L,r"%2on*:lFR`oOK$D a̝s0N,sg(g(ZU8i\BkZ6W8rmab.,\ TE_%*OXk j:k5Dl~T`3T$Ҙ?l7~,8ʞp99?G_&<D C eć&c|@-L5i}Jcx]x/,mݣ(yuU24F _LƻɌ~@҃֬]ml{h02??G{{7J+SD^ z{0 ;hkmӿ&(|7_@ÏqY8 U*;R@TQW_;T*_^x-%kQ˄&cRNyzܓ+;IW#e ś\xd C: e <(ou0 ocljf/86H6Z>'crpS:xKO~3IsF?Y{z>%q9zu}&q ;cD_KK8~_ګCToj13;MP{N+?E\ݒ,3;7muu'G xBfԂBd2#sn EA!M],/2CXMw1@>&at!3EI&, &rЊOy8v^I/x꩟gq= #[(p!(X,y1~k ]@8c Ԛ[vuWPT4!4XB.&a0HKpw)d\͏-{3 IHލKm{ior[.CP  ?zaffX\,Or)/T*vX 嫯>, 7>ϿH}}C 778Ad"9ґ,n;eP*P(+W+]kQ*bx/,KH/AJ|@XړjrΧ )R@T\'w1@j)ﴰdIfk//the QQa<|2޶wK1d+Jٲ>Q![$`3`i4XRQg֠T)ɧ lT0.‘pSMs^,~|Jbi$Lǣ|p0:&?ԸHF6]z\>=^+;\/);KaхҦ_sj\)n8B—BPR*OM7={e_`挏v8":`%շ+$$ 5k76/fR̆no}7xM&!255dg9TJz!M3p [knT*z /*.翫Xj1LHRDjRD>'[T 2b&K#v~P(P(HR;Q($lv+IΦ&3!O"en}:zf'2qIHRIcby%yϠke*@VPdR;K%ye*U l-l&.yni%S{[5x6(nJ|b"uv|$_B'Pi>63NW}܆粫hMRru.ؖWoH:#W?d-ٶ JvZhرyD0sG&ca .O_5QT6}}׉}Q[h(>+äR)/8Bbq.IRė GKh:z>GQm.,x?)PFw~ \7xgo Iuu=-׮Bg_ _`0Vsg}sZ}>fGTj'_%q|J"Mx܍i.aiMk;G`Q$lqKbyLJ!d;\2ɼ KHDp "6QkgZJrL-,A؏)Kb9M" {̟ef_d|A&>FkoS1\W.u^Xk\55[Jd;wK0"+̥\3w"q<-<}\yd*y(EFGr/r?a|\>O4Eo5T(.p@St>D=̞]$8b}/2i{ 2 9h^gѠT)RPa}(GB4ۥ ubro}Z|^MQdzkޖL*Yq9uJ'^MG'6sI. [.D#w]MQ?H3myϷ21'7:HV&4|*RJNQ0ۑP(ǟn".snT*1c;W-NÊ _\w> D2ec%Jۏ^\bkRDx*h'[w0lՌF.d9j%FS֫Ʋ\"KhZZBoQEA}n'яJ<%`q}z.ږ} 67p9Hq7D%?bMd6AۃL "ͧY` #w{y?/v3,?T%}u0B,sQǁ4D}.V \9s]rT0- nU?DU~T8a]d/RO'–RtA'*gpv/si+/4y{ÿ|#/tT2w8(dΕ%$Ls5W6VTȧJk`JPY8DWXW!S$6DTl q[y J0@d@ CI._L19&Hzꥏ RƠ&Y}\%$ iV(\oOmZBW[ecyҡ zkάAR &heh3G_6p^ދz]0(O3nefl&c[PiTxˊJ"L[m 2(G PEp"P@d !Pd#2gYlMfJS 6G^da(H㉺AڦnBQF}%~ndŮuWXݎЙ~4U*HS"=Ɖ{yIC}&˱{Fn\q&R,.PZg %JMJ/S.%ao<@1jh9Kr7TZQ\*g(J덫>NoӁ^ 񄛣/uW Vr*ۀ׾(gfs84u8-LP TЙ?Gkp6. q_wb31,;PEFIÀ/hJL2 !Of9 &.HʴF /w5jz{o ni:Qo(@2a +&3>}qzJdn=ߛ jMa\Gpuv{Xo*lm#1\ P I/uU(P> 2dccJ IDAT{nr<-<ۻ JT5UDR,^EKI. PGǚ9Jvv3u}{[ `FI糍Ak\y^(q؉r'"h]g$puW|Nfyq+Wcm4v 9e`͉Z8zhj| =&&ᐊ"W3of6VcF F3CoU3sfLsk-$D3m[t`#O0޿e/jR*%#"~A`ӡ5X*2wM.R؛~o-^iC%j%6 ]KHL|Ek`}1xLȒ,JWe*oUUj%RjnAaę>c Jrn*f-w_{]akhM[t#]p⍕%Ϡ AMp< H:s%?3*5M 6˽]Q|z Fsp ^SOu*a0HGx vf3Qol\h].)eњ4oxPi4u贑XL͂ ^OEM q2]:l\ ]hpY{&FY)WzCʟeEic?8R7s+XF˟{^X_2GpR@Q 5tgRi}A- "+lX![$MP(p2͂)|ZBD֮p0f{̔+j%:n`\'kT+5q[4tT  KPV*%R򤫹~dJ Y+A6%=$|0*Zgl7pv~oNRia_[:&3hW?/y?ϴv 6ѹOW_H&zmFџT>|N#3J-3x#+y=(9BNJsn4WTﻴDt6 pRC X{gX& Iџh~cɭ'yԍ*mv+1_WgW=qA,^FɱWz0uj"?nf qV^aJHd (,Xi-AI.;H-y?^RM k#/t`t;[ߞJδv Pi5eu*uFR r_bDŽμqBcTcoP*Dw P\\wѩ0Na3xA\:|nE"\CnYż{xXBJG[M^:$_t,Y\>;Ղ;+&ZGStsqv=G]=P|doɨ G1 8;AF׳8R0~{я7o4Wcm1oj <@FI:7zxmi`Uuå] 7AhyT S) \@Wd ތ8ڬL׫r̟[TQ~փJ ĽU_G8nzecy ZOyuav?'/P MDW8P "MPc~rArpKqRX!Fzhx[x|ɭ_3?U/\*OZ,|k\b1f>DghJ($Q>K.H{Qd&NwʭpdY񛁻o}guk?5\~gFIQ1YL2wy'Z8/u(w໸`8F Cj%鍝$Rx/| %s= Leq1orSr\xh{z|L59\`m43oC d\`sG_ 8fg1 XB*lJ![$6DQqnzn*-B6D1/J4 rW^ߛ`+/7aro2WQ^;g:fi{{[P72z77V)SX1EI&j58o- û=YCzNgA.) QdV- K,^6 ܵ 1;7V 1 {H?gֵp 1ɗXLx떽 &xT(oZd_3) ~7`#G^@g(|˧) yg+-&j{zYK*!h^f9`S`sgǕw'WM;zoMk1~+N0:wmawJo9ї%:]1P8z ܘ g> f9j7xXd.@t.A1W\ZMϓzh߃ѩgN{*DWؔRTPu8[zq,R!U*H3x/Qixhߺ>M0R'0 d9 zJR1x-J2X:jt-fbj}>mӋQS֩ImaTK, ka|\ywo|E [@9^x̍ƨFcTcm2s- T1<-ՋI}Я;{{oj? El>ɕwǹĚ\+Ǚ;&Gz" =_A;/&A /9ۭ lU\%D>=Nb1MM떕V4ugs`}COQwվrz\2ωzIb?'^jo 6PU;~k M"+܅l"w}:CzWZ|a=N+d -2xX?؈@Z~Id6jT(>&c- *tkL>`_{2VWck1P*ͯL$f ek*T+(d 5_XfR@p,?2&hA/24WgO!e|gם821,޿4FWcrVRixo3 =_LOao0T([[|!<m-LI}co0{d&*fX[⹥/iM_.=W"s?z#/v1iQ'*YMŚJuG\9=Fh2첢$Wq|z~ck5J/uM0x`%C6T,Op .mғ,"AlMfmR 1oRd ZQ*p%H8;mx/VNE]faf9ZNy6 P'U$E2WkM6s;ER JH.uU:\Jz {rba OѠծ\m'FL&ӮvlqZ@.[`/vp>.8XxjqY|)Qd3[N֓ Zuy2>iN˟ G;pu۹Dopօ[nf?DRiȵƞ[IJ٥<]6WƬ(|o>#gb'F>GopxDf8nt6-/XsgkFÀ]q[6gi$LS~b3(q36+p3"O?nYQm3$rql+hM&D 7~ǼN)Ko(T)ԗ^.˛+Ȅs|H,Y)S+^N6'w(dcy ճ7[,\ÝK%2ELKjjj6( RtGYj$Ytt~d6c_ރV+kPi= nő/Lcp>˟Ǜ \ znDX3__ ܙ K8 -] skMK:a p]{3wT*aULzT%M'j Zq%M4FBs~\]J`spwO9l&F.]'̊k-dkx%XR?3wvj;7LtnLoL w[~ő 5y .i<NB.!X}(ob鎕j CGIp[xAA2:x]8rAfwSt W?"8]>N 5dR[|tx d}I~8}"Nx*Ơp39n%2'ς!–)H–NgՑK).&|#{3}I"1ߟd /ǒxbf(iN̞]Fm_ЩLBn%ȧ$R ΕR:D Q`GR(A.kf P|d 7Ho_L}e+K_ aAZ}mN]1Gi;\иC&["sWavHM|r6;c\uǕ 3qH&=yEk38D bUT2i]']^aݔK*ѡWu{hAb - d Bt2[s轱ۗx&Q4Uc;?SI`1 5x 4+gmAcAoK-FX&ɡi3%.7f=ױdW'Ҫ   4Z ZIDAT ;g3ITEef`0%b#OJ-9=q/|ˮ' L)Ud N}e}m;?߂p(FuSA ]O gF|R+Lks`ZV+֓dskVRv|xp.HMBCoY8 &oºJGr><mvF=6RV\%a%4UQVHưz,40uD1W䓫v-T23UZ2ny:B#-~z\e#{ށűxƯ  '1^~r7PbABi~9o&}Rr[0ۍLz`N c)$!/g=ϴf|{cMAT8_WJ^!>W&^>ΊJ_{ir,QyRs%w=1L+"++UQDrr,_?>$J6 5U)A|AH&z#rfnCkk*l0In3oċYL$GݧH:ZZHN}sL\@^b@W-(9Q@AփY=E2`rM?IBx~`nAnX>g;r6D(N@p41n2AP^l 2Y煉LzIf&ǎwݞItNL[^_WK=PSv@Iʥr%꠷Rr%QώͤBiTEd lأOII)q5.]iwK| hkۦj}}wnf7L)CRʚh힥N3=8WYv[HN6n4O1ۍ7X==l0I6 ʠl5Y\-vv?ݎdcqK:I1SA֋W`I\Q?kYJ^<.>đWIMUքt`mۣeI#dV0uK߃)yT8wwݼ42qe@|,`Aa76rsG-+Z)%20N.^\GAaJ[u:M2a#-n2C|,Cr:nq\,Ou{Q!]Z$umTM4z lUfU*F|Jy2)eI2|ktz=t?A㗦 ?..|ƚ;`Яiύ\HvaTE*R̔p|DPh"=c6\%Tϝ{\v̩F^z^L<>2]Q׹Yʖe3 6)˘lF{(Tqnd|M*Ѭ*Oq4ڈSԵڑ/ޙS.e{1 FDgycd+ {ܨb}oAak^b!.eΆۈAT(CG*^UQ)1dgt<@MNr6ۖ( &(^Yb]A-//p}]Z2KonwC2IL\Tvq}GȟGf=n;d(<=''†TxP&.MOٲf Ե:Y†8x0|ާX,JG?h4t8 CrwdSr˻8/7De.30ޟn_oڊ3~t1[U&v]a6hF1]B)ݖjwGq;~K% ؼ2zԙ(Jym;E<>\UUI8;7bh4xhiBk3{7 יͮ򧃽Q)$CdG KrLv@.g1>7%>ZzAa8N0Oczֶ5q5އ^^s;Io66Szirr37g9{{eQSXNo4W+ \uwݝ-O2Kd"t !$Z-ۆ^fm> $¦)fKSu].in5Jߙ}g 7:/w,.3JޚXP2w0MN4/Os J4M#w&@IFQ\v2Ʒ}mfQy(27Eoгx3gזxx YK>oB7"\ &7wB-u_I>gsq_M l&n'L6jy1a /u ]-v39Ti2JN_$g F-J~~vm!U$2U+*kqi߇f 1\*"(TUa{?UU2vڃ W}9kh)P._hf$b_$v]5D.@=cɥAI*^ LEq(KEJ5-:P [ۍ˖N?3Pzى:ܜt5p!K\Q/Dw3%'\lccl^cЍt\ofvEQ en=*IcS ޾[zv*D\'f O= ])J\v_t/Ύyzzoƛ?݌ H1Sbf`FğEYf_KN)J۝KxN#b l6M1aYybcPc  a QZkFhV/Eq2& kd Qv6/2x {L&K/ۿ8l _‡Hđe+Nȇ3B4) 7n\/r9eA/EQP;eڶ$I\,P( IT8M,Xw4 Nwour;{֏hDQ?B:QAW6/)*39T~s8$-iBvؚA 9Gi983ㄟtsS۝j7і+h|ϯ Ԫ"+Y'Ngxmvo7Ѥ7rgݤ{qGmN&3߭~{X,|e4MÏ2>dhx`n[(4YwT[+^88*PGu6M6Q=C6 FUT"qBvиLo'܃P[R 㗧qvNbE,ladT(#2x L&|z?ɤUUVxBS  Mλo;<#'EU5Y^٫U&S)fJG pzYO~bJYY|' DBV}N73Q_m6@]}=++=i0Kt3q=?ts]u֙nwvWu,}Ksi8NQ{.`x67y '=ׯ_h2a4yr+Ky .m[ ,%?ڿd:Dߛ#5;Fm0Pe&&Rw-o`pk f_x5*~IENDB`ntfy-2.11.0/docs/static/img/nodered-message.png000066400000000000000000000166361462047176100213420ustar00rootroot00000000000000PNG  IHDR*0iCCPICC profile(}=H@_S"-qP,q*BZu0 4$).kŪ "%)=B4ktL%b&*^G?CHf1'IIx{zY!5g1'2ô77m>qexܤ ?r]qs ^Q2L2Hc0{=`O'=I"@\D `O' .6{bA @A @Ep@Ӊ" F(BPd{ΞJd2a6'++.VZC0&.!ȆwJ0H"j G*YtJ:Y L4(t|e 9,dIr4"Ar[u>! $2+.r%8xPLa܅CI *dtfrolFG>/f0@TT @rt}}=_n1ْRNll0h)gm9RLN켔+FDMiGǓ,\xW=P2 ٌbZX,Fvv6J`0kh!э跰ɤ"r.HU:b~jWGap&F$@V03j{U YF2a̘1shƈۊ+bd<C>m" -8_kKFShk%bu<xE l8xl/0,G2 UV x^R[QF)Z%DN{{{n ĠMsŝ+j+Q_:^ k0c7;[$T0FCFp8b6ǃ% }B`8ZAăHj|wZ%Tk{A$( '"-shȋ&n9 Oe+ RQ~,nY$͊1E]66*3!Y9%)&XDvwIddzJV RTHDx!jB% SK*V@n*!72-pZ7ًȠk$: Tηm`ͽ܈{i13+1b6`Nn"vҾv6x<N䦒~Wn*#y>//GG^Yhx0p QN B&3PP0pK0؆XI0H Z]XRP0 m p >~|>H d`58'ř8Ҏ-?w^TJcD|"C8NvšCD" 8tvWPLj=IiFm|Eo8#-%%;s2hn^˵dJvbSb ֮g};CD8ȑnwtAge|A`JθCB_߿3xfW5/?| >HZQgP+TozǙXh!tV]FT*n:-[֯=@>:n72 .U15uRB T;w?q4hսP^z [ `$AƢk0Lر#J$Sڶֶ xGP ((XIQ\Ҟ=2IC^?x׈u üy~{2 N&>JeK'Np،F3bP~c==GYh4ncvdr%6;Sc4ӏ+@l HdH$oxD¡ۘ4}v-FӮ[|9/&++~Ȕ)Ss~e1$}O!O"6 L}m)3 ~%p)SW~o+J=ח Ų Je.JeHL\;*U[ u׍K6X;,+~/Iq;)p^1زX;Db!n{c̵\4-n`WK}Ģe̹t`/d漻]@cGc0~oBwtXp$I LӇ xdΖ&rܳ/?_ETef>|DsOg^&Zis{˧*ݎfm˟qٙ>gQF>`46jeرtzZm:/|fL`{de,|` ¡ 嶇~LoK_dwn>\Ucgwէ|ߔU92xNMy'u;yOP2 W][)SRd|2tCAZjy@PR<2D}m3&;n>/!$2+W{FS@W {?yyW6u7ͱc-r$.]ŽկcrD6nϔ)}ϧ~˷QUu4O){Usצ PUu^&ݻxL:p8d۶<F ?۬\~wpp8%l?Piv(VWgfވZ9ӯoݰ'$Ӯg X,iʨ;۳HĬETkRCH[oZmLULˮ@Lm((ÖˉcĢQ|%á$Aս1G߸j f6gQ96L^?WRR2M9\~ǩnMiנ|^zbVS#Y]⨺eV Fv0b1o=w?2TZ)$π}| 9o\Z]^?r堼f̨`ƌ!BQڔWx5=B7ܐ:,u dHĚ5{P̞=g; "J҇8OT; Gtɒ[(nSfn`0Hm<&sjQ6ffk!T[yguXSFضa%w K1L C^A)Z)Wbtejbc̄u 0YSNd2I,E7"Him:X,!ǒF,EL:?c*recSu1 Vk!SbkCp[a* "8z*ax95a cH%bs #QX%ѝ9 sӕ. ,;j:f'I%wy.uHjs} ֶ`Ё4D"BVoI&448ڼ(YZ0JB0@SlYO<1&g_Nu}Uf̨`޼IXŲ#pt|! Xv9RTQ)C91{Sh&H⋵0il4Z=V%e4b}/hi"wĩ5D"7-Jfgikfm͍JtG(SX"aÇokO{}snڃ!"n3fs`gfM7PT܂3&cZ{~;)npgFТ^3Ȝ>g 5M9-ww@sz\]gdPazxf%%D"mdg+0u{XZZf'nV#S>K4nW<ԛj<1ݶ!)Ϲ SDai~:ܫmtu0' gի z7$jS"H{f NJJr{0F :ݩSsmeʝQ1d2)1n\ry77'Ґ(幃W._zjH1qLX255זyT7-B&dPjÍ՟}ek [ Z0gkJu6l$'yudN JqFClZ,u^w3 <ԄyO<:59׏0M,牻fnmfG[9ɓg~+Yt| ހLR~L"C" :zxb~ ߆XEIɢ383Xh4Fs'-`W\Qxewzxu'QRb!ק_̙TVs㍕<aZ3gVpSbVWAVf˖jt:=r5ғL&|Ю]BTTTV:kDn*D'72jjjkEf8,Q=}` BBR#`x#G}V)//wLjFDfQIHGM 5h ;"[-'[z"IZ| b\."7WD{kĈ=2$AGx+FLg(^|q9J,eM` \Qb=К^G& uؿݱ-N ^^-{ek0| KiSMXLqexܤ ?r]qs 񏯿)~L~)OMVIV@][=%n\'mۧHEGrf~?j\.W SUS,.ŜB.p V^õ۷Ѩ v*&M69#Q N%=NxXfnn߾_ŜlI&}'bnժU :fq1瑙YW%7\Bmf@Mbb`EMrGۣA SOI:ˑtX۪DYo;=d͚5}&Z[[ ɕݡyiJ.!2%---QLl-n+$(s P!כP|J墱O"*vѫw~Ŝf}֋T*N:].^l{yp +o``RI^*std2m"2 eh< D#Z⟘J(^{~T쁃i@Pzt4G.%+-a jdHMMA?8\2yhQS}lu85\fQIA'19͸*#)ЏLA!JT(!Nk4ӊ3ʤbbnu# 3YM:A:\KJU(Z[QW1 "ӧr5am&Й 8m{]TtfQSoAsS&R]WI)/51DY/LFGH #c*O+.WC.9̴ l S$FMz:D'cyqDkk+/â\0%10B~ih67Ͽ*W0k7m#nbk.:=g{nCk.CTTxڷ q8jպ(  Ex<-'JJddLEH+s?jTi[`< Ү7 ['T鈾$0=׏JHy\Zua?AWLr|Ɵ`@!QiP|{닑e\^}u=6IF-&eg'_+.=G)Lfhn%euQ=l8lGTTOrډ̠e'T12/x=Xk1f#Q He2Ӣ,0a~nŊ,\nG+Wd̘1gW_m+cϜV*"A`v::W 55V}tG~{  H؁&rsS&Q_o#73??U(F[s?6nzB~oKiAI=Jt?G77U(kEm[Qa(kwFuWĸbﱨm4!H۳u#uG#rw)?ϋ)3G!`1y֭FkmlsT7^ ?pvؙs B|z v; I)\;6 #KC bן\e#b%V x7_H  />f7EsS=;m_k)++cȐ!8fz[{ mr-Fhʞ^f^?Çgc4a4ƑBA(..eAA/{]dd$M({+V;<'g2&v&1th&^d޼qGf>57 ťx<> I?MJJMbٲ4md Bu++kG? ˗V~7y|vvw} +ih1~|!=6;,&B!/ʺu{hmuf3bD.fsJJj0tƝC3c 6 2ñw?gJE&~uTҒͲ~E>y uͼ)hD&r|~~b.rJ[}|%>3ƣu+H$,\6s "]AJJ<=6+bw|6.*"]$$LvEgyꩿrXD@ߋF9RTjiayid&H5.OTmn`4a7@3eޝT")%{&SWɲekpNdH֮Mz9ri>{.֯˱c ̘1KS\|gY٣5TT81vMNŲeillxF~o_bfs<{n3Fr` K$--ԑhex4%V$ W_7gL4瞻ýs$''O?G3efɒΏ <{ۏc;y47J[o~$z&::<{|ȽPx+vuoe,_;:">[%)I ƍnwcQzz ۬^o]~2t_`˹z nΡj iݶ9VQpHB"Li7M8bZVwfjA"aPkÓD|^O 9eXΩ̡#ǓTBX@|)W !tO45N`m ϏKc-I)iQs>ک:G"עf?:St奜vZ511Ãjg<"2;3][omرz23B^d2)~zs`6RP`b L4I. s:!{0I#G#3;RXNqqiEv9s?Ç琞n >^{lE92[Qa&=:3 ZN/wu *\T* u1v`tp.* ?7T/BRR)92VcYl##G1ka„BJJj.73f7].S͊-x9™Se /@y<} tNJR;Qe2j%9 NѾ(UVplBSHRy/BH$֭ۃFdڴ]Q \N^6jTO8z4\ψĹlc$ 4g{̄9#zXK^pL bm $EeǦU܋S. _COYlVojֆZ ao i`񗴷6 | drk*Je$&R,[/"Dސp6q0 ZM$$p`KCXCا"ג5E~MMq$%&u@;Ӛ5dv.'>^e`#\./{3|x6C,V.fѢBTUYI;MMT1zE&ȧ85=%;v88=\}u80S]^?99g1c 5$54 HOOWmذ b6 c4eWIaa:ړ䄧( -lڴo0.7Q윧 ?itlnLJvJef˞r:wvTsߟର@>vC2X[I_d.xTQDll] ĠP`4QUeqOS6K, '2jTf L]TUܯ{ E| ЛF.1Gm\cZ&)vRWY |ǧ+ˏc#B\OsS}${emaقhц%.D(-CR+?A~J1"ٿ3p|cbOLf 7a4e˙0FMM'], {MWQT15:,zthTPVV}$.NBJU7ttb0 G*9lGM@lڜ奞4Z?|̠A&Fȡe@q1HP 2n?ɼyWv 6 .ӞUU'2kFyk2R]m%//`0벩`Ϟ O$3m:IÍb"**NxM2rd^$v85Q;rC8ܵGD"!&Fq|~"z!Q*~ˁZLPtͶlYBݺ;p6m huo V;eu< $uM;!IK0mQHht/]._g;TYx:P\5Z1cj6~Q(w|JTam ߄lV}OHJ9!,5hcvnhwW̱hYx=n>_>~穂r?>B^#HJ ŎHpvF]l.>^Otu[?n?O[[ki"n/G.uNhm=r<ʄn//oD"өXڨ4~~7:/ J=:* ťAhu}>kf9S`6q@uD UT4"**N]l&yUHR227GPb"kdNR*1%PQфR)'=PTW[<1JollryxM|OeRmz|@F1bD.v'.^~y n@ļt%6]9mn  U+ˤׅլ~p3Hikid_w񨹹!'vG0/+bذ, ߷V*f}*Yx)55~bqH-F'ŖQ;uޣ5Q=,*DvZj%D6L'W :_E~ψLtť][Ue!++ TJEEFX%WVZ" ,OYY#o/c2%܀⭷6̂㩪";;ӯ(xx?#J=y@Ľ)\_l#..Rӧu9hmms85e f Q h1v.]0e\w\ñ /V>&ΆeOu/ng|}2nZ?W!22pV (TK.-ƍxY.ٻ$vX>te3eJ8z '妛Q[ی"˛θ,B/$ Y.vv3toǪQ&W!|͕ +$//||II %(Lg;mʵَNXйNTj j& bUdeejqg?|p8h$11RBJ uz.;\.s8=ÅNp[ bIDAT\<J{[ٿ.2|A=AVRi|TZGJ葘Mh/pU)qzC4؃U"%KVfs.>>\ ùH`=}KMcQ R><<@rr<"5{))|stdJ*P-K籔3('s;a3 f;5f~r%C:G]W"ƪyl;HTι :bÛN|=H'C"* O<&<*4 6۩]nJAIϞ}ȥ0('COwO? a?qS`'*"bL:\TDo|Ӂ*d {4@)x 8E%o榰b/v9KJJСC}oeCH7bp\gZ`0sf'T7N; *(3G*w| D Ag4S]HS{1%OERE͞F |'pC$%E?=O~q&d:$`oS_4JqxCh IDATxy|T93IH$( ""T" EۺK[ڢV[Qkj (P\K(̜Lf2='yY̙\g>>UVVf`6E< p#< p#< p#< p#< p#< p#< p#< p#< p#< p#< p#< p#< p#< p##c Sxeɲ,"IeYڼy\)98bCS$zp p|@$8A 98ێgd* Ib9G$#KNߎ$cIJ،VZF 6,o=IzF}LE'WٖX4P]Js^w,_%KVsYrc,e;! }L=w "dnk42ɸe -uӏeYr*ZގeK&(),RHQ$Qi m=@VH+[+$ǒ$AZ6}a6mۭ;KT'HQ8deNKյP{oO)X6!eF /sUVV j i۶iTN'(pdd]{FTRZdYuYoCUjgigHZS$}ߨ>z6m/U- ɑ7&6D2UH꒟}#կʉ2eUFbo_mc1s' vu`!h:8⇠hWI[Z g8X )bI{lifi'?_kWJ֊(WQ+3#[LZFutmO<@r)ǑND=TA,[ p8@As;>c=}wJJ2b=;LӜlR-?p* Te9lS)U)Q>@?UWIyXie$1)K p%uFzwu)PH@=/Խ{wuؑ4#7[iמrmUB2-"!fi*絨VTCҊMsV?di]Suף9+?I]?kPro*w]u!~]]EEE馛4qD_BeYzG\-@ Ԅی5VF򆸑eڲ\Qe2S[!Y#82j沝{"!.[jw0ip#uyd$EPG}%O77 -#8jTat{=\jV1ˋ${p1cc_w|E3g|Ie]aÆ5EoM/l;$|ɺ{eYVٺu&Le˖r Ͷ_݃eYzꩧ4uT_ygee1n=Ѩ/qqijѢ Guj$TTTkVhԩSյk׌Ϭ&Y֯}ٴc TXX^zo߾ׯZhr;E]WoeY4hLnA;wĉC:ujrgop֮=QR&,b*K( G-+TjI_m_nՠ5ucV+^R{HyNHaٵ >2d8∴Ċk.}w^zE#4.ܜ9s[C Iy|]wy =GVղeKhڵ㏵d 06L ?{wʛFysI:uͭ(L<6HҒ%KtM6ժWG&gcvرRU /PguXYN?t}? 6hʔ) nj'qhƱlF-mY*?D;!Y0jbSnfuV[oH~GS:XʔPYRؤ^frpXo]O>}XRojݺu.dmkU5,-[_{ܭ[7M6M|pqITVV,[*o˲ԲeKٳǫ7999uw{lҤIܵ/))ѻᆱ>wLϜJA׆lWU K,:oVSLѻᆱ)S}mA=>1Rj͟?_{=+޾TE'y @ -%YVcؖ-2:ʨzɻ=9JrK{D7URDT>}2W_}+2M+xUyA NvtTM_75z.ZOby?*w9Sʲ,=#ھ}$OM jVg͘1CguVl2}i{Uwl̞˄ 4hР:ݻwkݺuz}=?>x㍚6mZnA2YhYuo$vUZ 2UaUذ\eДoYҲmkўPw䤼 5ZrHX,KFRy*.F#Qݤ_ejm/ ,K>?x}q*ݥm_>|?xwUe?3mN9&j[1^y;#۶R +Vh̙_SC/ߌ[o$tۿ:gSI^z>7֭[%ņ>#jA2]<&s)˵uV=s˫wO,S&VHN˺VdJ-i'* uP#Ǫ%2(#j(OCm¼5: ES UivsU50;xHP2Mdoٲuϯ4 ؚtB!Xֳz{ȑׯ__dꫯf;wz9@jҐ?I&=ZRS?x=qYA2]va /{<}tm۶ہVlZ]eDbP8&"Rmiv%kn% nX,Y X{{STn~zV|e$9/(r4f-Zm[[Q >QߢEZAPL|={g` u(kvmP;7^yiI6<3/ReCv=\)c2}_{1:uEqݙo8_vC9)wܩٳg4Xr9jMfoذw _|J92RٴiJKK۷ڴi#F_1FO?=ܴypFQÞre5FBmK}^V;9jިSfC\Vq@,]QHTeQw}L=oT۶m?!}D4uT=#]V'V"=SzgytI?4n8_0Bvm?~+>~ӗ_~)I^T0˖-'|=N6tUC2/EEEm2yd'?zk׮T&Əz|+ c}w1~s|rgYorJ?? ct{y_#p z饗$9}:Cn4QR#I0HنTMQ9&;jd;6j*m)  l}1F={cSVL.ҥKD>/xƍtyo]xɖM|)^sx㍔ I/5qDM27ebv2hΝ4in?/\PǏ}WXօ^/Wg՗d= /))т t9W^IV 7ܠ/i}ٲeO^p#Y9رC<.X"mķ~Ey PϊFO~wjIhN;-iݮa%%%裏裏61-Z+-R}7Y>ڮ&L~g{<{}러+ʕ+}O;*{~$Y`TްTJ*t6ӑZjj tweJl)I c&6''G}wW>s1:j؈ \d~_h֭mjĈ޽7⭷V҄ w޾=#ԱcG_`&>)g˴xHhMliFcǎϟ?_7n$jѾwYkiɕ.=XuA%%%Zxf͚>c ct-$L7tϟ=WXX38C}Qvvnݪ>H}Ԯ];]tE[9_.]/ܛYBRŲ,\2i}Iv'5o<`R޽ժU+]VsUqqW?x +;r{\=yyN:$y^ټk)>M,뢢" ޺yҥ*mt"[Uy$nϡCO>jժ{_GqD '򊆻;CiﯾA>cA(Ҙ1ct}g}vi%SO|ܹKJ>3]r%5>gP]ƒ"Q'7\QKZDv4գ[Uj+7YpE~+?,˲TRRKӦMKx"|ںuw17a]vev^wuzY 6nܨ[nE?^[׿[7\)QErbO>[.R/[oʤ(IL q:S}-_\r,Y"I9s 38R੧7FI&UxkΜ9=Fk0+I&yݳjk=~_W5/yyyi .]w];7o߮ٳg{5cƌ zȫ'Rlz/Ґ+Ro5o{2 !*U\r=xcko|&@&MOS%K'z墨 8죮+mݦ#F$+һwo^oIzF}/))?=>C4eʔ SN9EW_}xO3j% U5)Fӽ6暤%???e}tÉ'?T۷ɓնm[oΝK.ھ}oJգ>ZW\qE|6:tԩSux561:kKm`zRZZw}7gq9蠃4dYjHh{JJ=R43<{.>l(kz5fC[Vv|1v3=dRO\zҐ!C~/qm:_ IҨQ26׮]Kp`I :Iv(beIv(/׸2:(VD 3G<|; s2֭[O.&LBw~_K.O>vؑg@]O]?tO[N/O ҥJ~[iXºu$3fL,i^ꫯכG y;(>mN:)z۾}{7ofl@ L,m]Z.\G> IDATpayԲB^,.(Fg {c p35x`]|;w=LU͛p%`YZnQ;v>(9hMyvۙ\ݐX>Ա*?я|W\{|>]xiSbm۶UiM5{/8Pn}qCn}INI%1Xlfp8  G\ӧOӽ!%5EEEag"s,]T|;7ޟSO={o},Kzj,@uti˖-zujڴiM8QiQFyh7W;2y~ذa~*]6mzTun(,,}?6[h44TEhZ0U>$Ϟ=[oF4x9_|QqI7NQF5X৪RUe:CK|لa_rM,;>'}o87qF(d>sߺ%p&%K˖-}&,K&ح[7HR,G)#8"et\MWY7܆iMn)u^W_ՠA*5?1c|wkȤlJL1G+~?bt^Y$g$UJIgT9RoXzJ ܹs}a|/Ei'qhD)xōBl&w i pT\7yIth:nVݻK.ޝ>NMb_,}o0`o{U ۶ugT,qߛ6mRqqʼV55mC㏽2ӧOnU޽vQ}6KU_X .@>$X^xƎ#FuYg(4nU=\M>]˺}9\ojѣG 4>PǏi3]|͕ )mĈz7N7ҥ/1N0 0ph?/;,<";0&-±$4Gc9FwnSVb;xiJ&vwӧwf9%MJ2H}C:w3wլY4{l'.\l޽rR?'.YFW3g̙3u裏֠At衇`gC*]P};,ψ_b bԨQ^R͞=[ƍT&=_~8p`ɾzlRC'N:)dwދ[oU p|cvi} 5F&-)TԮmQߜձM,,6?Ok7+"[BM-9*l,z4%+￯kJ^{5|:S3.n:i F]2eeeڽ{ZnlžoJ7$U9c*$_w-ZTe \\w\uy JKKPZho]w?kժU`1={Ըq4j(UIqr!:ꨣ#f̘s=/}CƍWi'5ĉТE jJ۷Wvv6_вeKy?)c,Xu֩k׮5kѣGWkW7_4PX%Q%ha:v)jeI 7UD+\Pj H#Nv4i$]}^KGqڵkKa,Yiu˥W$&6dM0A۷o^8pN=TKm۶F:쳛Lc| Ib}imkԨQ:SpB{zw|1ZzN=c馛|3{T'0Jl(&Jx9h…2諯_|{_6uuzdzjhsjSN"`__O犤;Ba[V&u5{vWr2]rZHjNbC,#ƨW|0qGӺH?tYg饗^1F6lдi4yW){չo. XϷ!NٳGzo.)֫FxcF/ԗxn}qwc6"5l0 6L7|V^%K>ӛo1t 7DguVg c I 0YoÇm۶^#_בGm^xw>줽RrnNtT'az oРAѣ֬Y#)s ,׳gOvaieY99k9e+;m0ΖtpW)Tɗi=7,(˔_B8R42D…5\:x͘1bܽB:.]Zh4Kz׳gfӥ= f?ꬡ'hٲe믿^#Glc다+cw(ҁѣG뷿fϞ+;3irL1^&AdVZs{.os;'24IS*D8֙g=׿kq3<띒靤 r|4 GDy!Yl +[!#(u+)dEMyGd-(Ru. GSs-4\lp$(رnF߅؝wō_&qeY:tի}I^ |oСί{[ )IőlHO|cqEJ}et 'L"IWrd"uQMfJ<몫%ܽ{o֡jٲ:u}|?{Oyy̙%Rׇzh9""éZ4Ne˖֭WeGy-BjdizLDY&m馼hlSְ4ד!Q٭vԀ.Rv+}:A?Q.]t7V']z7;2CYYnvߐ.L-ZHyћxݱcGﰙrMԦMg?/X@O>d 6OZϞ=us_|QwuH$ReIRߛ8&Yc$-[T_뮤=L՗K/W_j[*?ؾ}{>7g_@p?: )βۨnC3Y=v6l|rc*???}&OkjHHKVכJ mO{$6lX_}СC!Ӟ!͑ml$A.HWW=9r|pޠL#~d $%0?7}y/J`+SHg]zpT;8I\jѕ.2h\LȮE_.]xn=c]SѨ͛.L~I&U{=$wܡ[H$ŋ[nz3'YTTTe`{AtD"U1$/7xV\Yi˗kĉ={Fj;V'pI1cƨ[nuw'*RTT{L=\Ϟ=aK5mZdI-Zƿvg{XfXSM˨U5A/ '#P$,KC @^a r]6K^F\[aSޠ8Rr*E>H{H-)d{+]6B2MlPH&M'|uOJ{f5kf͚~W^2oђ%K|CoJ.+}}Q͜9S={Ԇ tgFI [,2N-zqu]/~}ݧ?:t:vb}Z~oI&G?Q[nꪫt}y}O}URR޹sgٳǛZvժUr'0^#_4cƌJ]i01֔)StW뫯1Ffo'/.>[ԩS5~x1O'A޽{e˖Z~>3_az]To? 0@-K8߳$np3Ѓ>{ϱ>Ze:wM>+]%;B}B I/\#Gܹs}T%~b-G>:9]Kbɶl9dUlޡ-dU\;=m>Wv?=3ֲ4V]cZJvv2]/8m(Ҡ%|T{: LC֊}\**.ft颇zKPZx^y꫕ÇC=Ν;]hԨQ߶m _>H]_uxGqMu,K%%%7ofΜ_hݺ.]xᅕ.H]vYۼyV\k\O?/ƍ+T-x۷oO[ޙܹzJkUj\/ >#+V_̙3T .=þ]Ν[5jj'{nر5n̦Q'5S<1`]WW'c~)77wlufxݏ?{C4ԹTp8^ n4[e;jHI0 hZ*xaS\HYWO_uedfNg HusGLDuQ>?U9eL2OWwqk{auV_^۷oeY*((P.]ԶmZm۴b +//O]vU׮]&Nx|tμk֭ھ}ծ];Sٕ.3~К5kk.}][5/ldw]ӕselذA6lЮ]$9vE;wrژ2e}Y/&mJ)SzcT碑$hmo.g=>;qy=UNLyܹk$Iz7TPPu8͛1!YFVHۊJ4* I&M۠b hkcUHBeo-.JrYJ5z!ɮ A[F)SS]59F*J-)n\oFcƌNO? @/5n8I9ڷo_鋣Ѩ.b}뮻7KME:GԮA9*=ELXQnEucIVHŶroo.JVXYze[FqlW'{]y`9XjQDj]o@;u{Gyd@}dΜ9ߧvڵkWЖdΝ7:ts9{-R2[m[*XD5}l -,U_Q~9E TLMF9dmJݡ6ؾT0XK=77{͛MY\1@ȫ76n rKsN={:_eYFr,unJeGF*ϙu~.ޙTR}mU# l']tΑm6򽲣;e7&$Yg|deʋ]=4l? *; 2.r;ꦛnN w}lْ40-kR%Bݹsn6Iz;Z3cIc=UVIqC1]%lԡ0W Z*7,eG"b֩kdIF1^r GSVrFs~J7]4@'vU٠6Ew))Qؔf]?0av"RD9NʏvPZ']WcګVQ)'=7\xwov=3,K'|eeeQPn&-[hڽ{֬Y3gjƍwuW)gywtzС,xIFP@\>7`Qqr]ؒeiwIDťe*)1!ۖc,b꬏@D*/j,YR-&-X\ϗӺ"G{Jv"Vʒcc:,#9Qe\frN9EoC!uHW%l$[&9,Dò,ٳGկ4oo:vghԩftWkΝ*((c=C9M]X9Pa,QXFFSjTZQq8Gf-aضʔbR-,-NZq6mۭmEe*SQV(YjZWKCjm2=ˉKcA)bIQkㇾp:6RؒBvHNRY%q;̮ 9qz5`8}MAA UV) _~1bSnZsV\{G}2O6ӑ:-7_E(tffScU'h93T;?I!%@Osy9@,߲ٶo҃@FGiذaP/^nݺ4#u 7" l@sfōPwH h6!YKu@sC>q  EO`@ceY\7!pp0L`T}Lw$8@Gx8@v۸ IDATGx8@Gx8@Gx8@Gx8@Gx8@Gx8@Gx8@Gx8@Gx8@Gx8@Gxᨲ(hRp /YMh'%7YYYYYYYYQڹ˳<˳<˳<˳<˳<˳<˳<zyk2##< p#< p#< p#< p#< p#< p#< p#< p#< w*oxTX&cQYb{'2kf9l 9q-SQ~qhJl~8׃#͝oT5l=&FݰZ{n8[NQ&]iq|۞ُWv4lxtg6͝="b;F)N5X=嶰*_]գ}=mrU.}5y 4a@CrUYb|;JYߐc֔`6z{yd](nOneph> 9f\9&y`7%wLīO! u a[2.ywl3O>_{A!%pQޛޙK_+p"a5x N˖ &7HLWMd"lɗ;_##+ٶU1ek&8ZK2}j;!hwf=czd;-5a޹7 3gSWW{Vh.EqG%:`fq.UpCNTmZt:CaS.KFF!EEr(b*bȱB26rƫ5:1db]1Ͳ|J/,V/V峲xEX Sѫr*w1Z0zmziDSJ%9W$ Ǖvizcشb~NY #K+ۧYZ!2}zW~^U)fOUê˲>YVHp8[|5!K*/ޡ_}l$i9ԯ E9992vܡիYoye,9z;ժz;ڿJ-5A -GQFt(KW_sy*3V(%iKzU[Y1 stxDSZ8*-ޡ;~ԡK9g(EѨvUY GJ5UXVP/cK(+^>v.Yc΍'c$]8Obw#nbQ97Xo{&Uu9N[h ME 4K,I$&MFKMbDϘ"4i*(  ˲lo3sq˔ٝ}}(3{y}tC E @fQÊz1|FCݍ[:0̂nh^'7|BcO08|d?a`ػ%G Bj!,!= y KPQDhXl9Rۄ塇7Iva7;IY9}بw4Hmap򻵚mv.~dm%OHw>|Ç&)<^31 ~NNQO"%% ˜vLNKpHEUvޙ!SNk~vO%X2mfV .v9 IÉǟ[KߴU"Ѩ`o"RgL~_ݥSbD~ w߹J[F;sX1czw]߽("MXt/~Ç>|'8:'v0Њm[,/CPH:v {cim#BDP"3IK$R[{o6 +f?YEBZQ.ccjdDAAQ% $ODu}lDƫeB[@ǎY;u[tV8ZFSVih;Gm' ]'E;vd?73M&Xq7>iQAJ!p^+ݺꊝ8@w-9?ogkOYld9jN1[3TQ]#ڲc3lM|Ç>Q]]m:mA Ґ[1XpB+l.}R!*+v8pIFv9F[Yu4"Qha_ 3#.BC+ "Tb󦯨 ?QoC@IFK@X_M)^Bcc=Rdeeѫw1DFV6T?QCZQWSN]Ms?p !t'PQʶyUfv4⓵kU҂a#GoADhŮXfO[hb;JoǞ[@=t!4,!A6 vlȅ|rrԊr>[Jɡo t0fzJH(m"%]ѷ)XBWacƳ[{q[ۃZjn S:-`tƜVm!/ǫ@#6r4{"9]B&-B6S[]ڞ+9xQUQF8ؔП]#YPTUikvQWWπ<vruBJ[89LbDÇ>|!8mM3&!> u陹ґM|W_vh$\t%g_x1!Rk6ya B]CFzHlR0t5}ߟz\v :sU 2KH$:?>4V䵗^{/s $;7fd̳,fJr Ķ_asѡ`0 s/cDˈ_s] ?|L& ο><^ s}:mxOyH„D/YQM5U\}ٹ:%LnV} ˗~ȳ{_F({9\qFX \)LXt {-bB\{ehK3t=!ǯk]*|?KLXSح;v&N;\dj| &WZ|:;w?doa}z་˄I"ͶOAcKx!h n@Y MH(a2b3s,aT2GFyMY47[樐:l$\r9>ƛsh$rs zh#9߹^ߚ|ps#Zk5v'a#^ݢ >D{Б)}- ݾjğ<"ֹGןm|c\S_'8|Ç C I :x(_}bǶ-F)U@$*Ő2i%&ѻKj+ sߝC}cafqĘ1SLZZ;`uyN te vdD 5[Ss; I?¢hٺe#OKC-&[;nY׭w ?xm, J 8d8F+-|a>g_kn@v9L5J1キٹs'hi:"U Ɣ|Ijj10Hѣp6j! mZ tem2duEЊO~D֯ROH[ Bݢ]_~8'_}n0tc'ӣgo,bG6͟KsC[[n_ϢC/:V~o[Ɉ8`(+KlA0=v6:A It|C)۶gZr2FLG:Ģd~sTaش ݋rRԥM_˖K1 stL[$W`J# 曯!b{|OT$NyyZiwLSH#Z8>Ē3y?><  FqSS_~<ay ro}X(mmV!v׾~W[>|czW?t wip1뎛@ۯDii)_|9th!9!q47)'pEߥS7/@*]<y  S<4̼Da_) -$g_p)gA\x XtVܶ ߽FUh*KKcy2=_sO<sz[6~Σb0;o°8ft,TT(v܉ԙg1t(fH% Qڪjgw!3fENAW0Кx⏏HB@_A # Pq M`wQZZ\bd'hSZC\)`$|2 K3ϻ3Ͻ@FvDgA+.JS EM6=fC fDTXr8b ]z%i$ZQWU=pʕfCF"mX@g1n9ho"%qs:bG͑M{eBY Jpigbeuk=SQO?'Fy]{"$ʩ3dȰ L,a2#(ދڲ- 4KgqPR&!N4kWp2 (MƎ?WR7m|k*o/=C615HBCn6}R[ ;|=5QΚjϾ"}G4mX}e1DÇ>|?o< n`ԄI~%XέJe qm7|lZ1T ন Ud.OF[mF,g_DD,a0ii\uMt3L"@XEݹwXNVK{uVT3F ɈQc9 -na'4rB~(R({-j(aϧ6T#F ^w&9( ,3x7z'݊}؎5QNtIz֣;t JNarn(08YؓH#IX0n>EŶMXyKۖ2WF8MdEBKFʿtVX.K~ 9= |'tv֋l Rv%$&L_M!gL#@9b.^ҐK 418 s GEHgQ1mk߾>|Ç,qׁdQhհ~xFy_eW] dPhLb|xYTo!;[m.z)#Z t՛KvN˵ mfqEy*l[1**P GfaGh2amWȉ%%ۣvm9o"|GM>Zlͬ=݋9ƐZSZRd"*2rב[dq8yS긥+)c2}EZ\)'Yݸb=oۑ=[BN*ne& IDATt/N(+y"OA|!_{tοrmiMcmUKpAaWمv+l¹Iv^>vwzjbGiwO+Ckwd/ˮ1:--Lb|eҁK洳'Ѵr[&;q?I&21̒RefpS4HÒ Dn窋YG1TPv3@N"u9&Ǝ;_l. nZՔ  ÈLEey'8c'M{m XCO"Se/k F*!(ٺUk҂SQԽg+{ē\-ݧ?LȒ祝 !@V|#*˜gSѝq퉿z, h%47;3y9YN;X!MĂZtNbiiGrL%J%L?[Uelٸϩo;>ׁϏ2LU+0{5vVTklDz/[yMXLqj<0$J=4oo-)fՊin[3 Zǣk>|ֽ1j7U^iO3Ǔ'N&`oy 8e[v! K<~k8ޝ&ϙM8؈pϦDXl9s/ /YtT`OcDz||!$m[ҵW?FuыBk*k;z*E@Z@At>6n>Yu  44g)lm(އg.*㵞&< ي܈&9G9G 8Q?c&M(ҮiStWd#(=$5BJ,%9񌏙; ޛ*EL)҂fw9j]t ;1&v}~N+Z+O:yd$L 6jW ` 'b$GZbb9hH:jHO>:#y =Qk[O~[IY|zׂWa0lpEaÇ>|Ըܸpʛ%PSSMmu M 45 A/;0 iH"==xݳ$`H$--+J'/71 OSvE Lù9Xf%˗}5#+vR.rƅ(#=u`۲2:Ka_{f* v Y̘y?$ljW7\SNc1S8x2sPŒҙnE|G,}BsȡCH!+&8Sh5D{HdvjtcW" ~D:QaQNKNf %L^QW,?d حWoI͎H!UN Sd+k+U:^&#K"חqsZDCqg횕X jE&O?ZM+p?3#&:J^k޽:HcUmeWxW -o!HbMDJF? ϏgZzJ&RTE}m5KD;|ZTV" ǟ9C){o2|#jņ?w{ua9b麲;Ç>|H9ls&j*˨, "-Eqr>4(eBnj ;CH MNNV{]D)B4@FVddeS.Hp;E%d K($]wq?vW~G|f9ޛ҅MA' .%L`HRIġ^DqOR.Ft@y>۶37mAF, o:`16j CgA"̀wJ(` Sto׮ݝ֮ۡa$k(@QQȓ=Zd;;0;vp?0mw-4BH |>CM*JP]Y_읏pٌ mC-VP[UMv^><=v)=8rnFzrrcߵoάy 9qDG|J SȨgQSټ3_YxRg#8qw#q+BفC_ZZi  U#ƌ>MMv -5y^2A>}9iL=D x? Bdfg܁LY{njy%mdfdǼi+Ѵ45DΊVJ }DBSsi9)yf xv\]ns'L-I f/7>ŊsX:s<zX,0d R@ u:Bcy=ZɱSO`md4T̢^hR 4S*(B a4f476! MVNvDFDQjR!o[ZZX=!80Mf_>|ÇBlڸ;FDq\ECm 5PT6cp1I^щ 5Uhnl$7?#zh+p%ċijfքuŃpw0m. I\=ZQ }#ܒ,Lz">$}L1ܢ(aآ~.=ٱ+~X<g] Ͷn ={׺E^Znk>t`.OC!7vk\VZ&,{P~vӯ>c&ZH 1'B"mbUYd_Hf^E_HvgV~!9w!#Y02m>Y;qGn9XqH4- u,?בyuҲ|(z #DZ-{6nϒur-ldd8BVnEd휊}}Ç>RVdG˩ܱPI5]HGBQ[Ғ :phjhF=BdQNja)BľYZ&4l<ʐY| ջ*n].J )GM,-1MFqݫl//7n*͟KKc-B,~Eg:u3ҳ*2뼱B=>Ս옆Rx$=hjn8_SIǝ]D}Dr'2220X`Rk ㌌ 2h_6,9!2B;3E|-hah"J(V.[J]u9م̧ Ғ GM')M3;i񟢅$;IM7_E`tu ӵ+5#"+"<˸/oF=lcYZ`׬j@N"!ׇ>|#}.FZek-MmF=ɋyZ,W-zfPV Wi/=:)){otaq'r^>ejS~CNaiҧ_?ʷ|(vp ô?qVJ`wHzϝcv bg>@nnnqA0Mz.lzV|綨K=P/7H}"M3?gl۲yo$ƸSR"=m]MfN>G?y_r4vT,#ZKtun6@PRZ "`a Mٿ@+e[yڏ`p H-ha"0p85b +S-QKD|i' лZŦb8Z!M1ةם/駜&RCKC-Yh('a~#{zk4j !wBZP#"܄ 8xg2ڭ*޽s}7 B ݧpIk$^dvy(O'aGKKڸn%l8lh,g=tn1=d-y_O擏`vh+ȏoWA dN S]TVKKmM}: 2Eaz0&㏚_gdɤfG8kbhNNby,C* :0gL}+۲oj~Ç>|pˠ~dCn(O{mŮ(VT,.V۷f?OV4M V>azE@JafV-[ 6"Z j\ЊQ$''@FfL)BC}mpFn(#qpt1FX`6MTTT~/s//=ijĤK9DGi;xr.4TVVFg%L>m.ZkV4pƩ'ri'3א{!Wƽg;OYℭ!>m;%f:6VF<۬ӱeJ =l$mI#CcB6%:WW^=`T!gN7t'DS,t<%Ҷf,]<̻@ah C[m2"M+d0DKukhpȇ^}3aq%tC[a2tuݿIFXWNӦ3xH9ʙ CY(E(:>|ÇĈnǻ]زicJR!PTHљPӝ30G|Pä{"Ue%-O/i ,% -ΥG>^|rv lU! 8elm!ܤq;5⳵'HPB2qt[DOW-aE,6j6سeO n-,N nwߐW_| "ǫ?$ jFf@~ 3-hCmdSڲKT8DGvNօmͧtf@ c@vn^bBL&?M}2isđ(ӳ_xI6MMe9/y G`[>3ސ`!٭$9%l&N9!^*Ʀ @*ϴzv/^?#'z05vfZ!sWBz¦-GPJ,v`٢B4sF 0h @b\{e]N3Kavm\:rX36XXÁ8W/'M`ЯG)!9rL'-^o2&۾ڳ!>|vFK0zQXBv]dKLSЅ=;Dq & C:;@c{wö0A(*ʢj׾S>|ÇM_}I)&#U'Ɋ/Ps U8$z }'IlH}7uOhv`L$C],?_]5+E0~(a2c$ Sx߲w1B)$3\φ5Kyd֭_1uR tuu,[0Rk_ C|vw'lٸ>cBHYhL9a:]{i avlZObj+y_?B`:2daQ' DO=| z䇡-ygVbjPp=ϯq-%i˿-bOIت&t8O<<_xb P_]ݷ@Վmmdѓ>j,JȄK{[bpxZ>kwߦkGÇ>|tf(R_Mmu;wƔe_[VUj  ;#AG}=FGc-VADSSC̨5 6Rcii3HOODbG($}KvUVP& a!Q .xuEt!hƎ?CΆuZQU^ƬNaQw@mm-%%4;A&#+N>j4-_m;o@2(ݺ];*h` ^|{׀aj B [`fp7qM?CZ/H߁ T,c'k6&3 ~Ċ;Wn[NC)ԟGQXԕf>t5e;02%\k9f?[uSFVK9oٳ9xPz4 7 IDATl۲-VX"@Qb.jLw"Va-ɡCa *^|Y|Mz_|+!QkB Ӳ'?~(,x 3an̦ F<:im6uO@&p nBhe(L@a׮hdfGPUtV^Wn6td;f~}m_!ӵ~H9dddPQ`ύ=zЅFlcI2ɘGҒ)M!ۼfԵ AVAd4 '|#GQإȞǟ|<ƞLJOPegĸn6#bݚU}pCȠ/777Ç>|Tn/IPuǯ my*u)eLcm4{q؋pSȄ)'ҫO^gX\ Fb!(sʾl_!P"G+0첔 {~s+7G0QWO+K )$Lf쑣y{1x;駞P}"Ė ;LauzDp6[zGaLBlߴ>҆FP [O~_rqX^ًPpx=<,*K"7ձzldk~ĩS65@~!`/rzmJO?n=<:uٴnԣ>Aֻ_B ACqY8w6R*DSu9_" H4J:g $+(^MUz4ׯzb:@nQēP-ٗ\ tSN٧Yh35?tg9AXOV})(߲[ ־Jj_>|Ç PI+܅(:V}]E[/ZP(HSSY(!>o+4o?^twUx]Ch1gc8F22bHV{1w~E^?4x0Na#G1s3~kW$(20rթB(mbI.0+/<ǂshjs{Wi'.$;^ ֲ#KK1YٯmW^(e7I?}S MnHe;J$4 ;Hy%%bG]9aL;t {a$$=E EIXtP53[Dy} 'lv^I"vdum3&$Wzz/>O8=o%Zŧ?~wtKz◷GޜXtI+k!3N?1'4O"B\D=9AXaab EU{  ~r-OV9-mzcBL8c'#ƠȜ#I=CCQ~vX4~Ǩr~ʩL6켄N7#-;(08u:&LJa^'m=JO_J<>j ye6%_m'nOSNgD6î3}Ep| E'7|Ç)R T!u,=jsبϒn`PGAzNaTmHff}I < #ўPh{[l7( [(jW H)$//{#̀ȺE%l]L"-TWWU.1P 'N|B[,_lTeN߾[q|z*v|cqvnȑF꤁##]rn鎲AE;.;$[ZȘ6K:"&q]3¤GhEJ%҃I/zHdԬv J=jv;!Bze'gy^m^6o9ڟm%+L;>|Ç ֮FtRC]Wq22cɌNLpi@_ Io:m;Vi^Z:H QBT|ǁ O@NMlDG`S31{@;hzEIgizۂzA>P2s['!"'K$lޝ#},D1귻uGBD~bfEt{Ǿ2Nr@H}}Ç_>il—J1|mYVρ䄻MhķY"ꔞ1Du9upqMv"n焄&u -\j`U\FƊd= 7{)s#|^{Av9eVmQ$o|PvsyZߞKo>X{4dk!mOܼvU{iDfx"hQ&xk,\>|Ghnnv;`& nwm;hcO' S5r2#'Zൈtoh-hFLkB쵠$z|7X'2dR%z:z㑚d[ l9 GdIsʴINlH拎yɯJQE }$d7e3K3-D*~銓Td7t3j7ýgx9Kw~`IeV>|G} #|Ι !2أɂ*.ŌH\ߘI{n+#:EtIH"$o舽6U{|gZ {[6 O|Ç}Mt'k ba9O5fNh8#"`Ji- W_ ջ9J[;.}orm:=:SnSgcRB$S=u/qÇ>|$5F,gۣ[|)nut|ᣓ#I}PlC%XZ >|Ç>|g؇f4M=;I":&a" }r6fNVAx#}(q۪F&_?RÇ>|7@zVŋ3R!7~l7MӉQ_<)! eA~|G#dO҅7>|Ç4zFFF^k\iչCmE at*N斊A3ؙ : Ç>|q #+;3X-IKKs;Lp%ܬ:C4Çw)>|ÇQ{}ao#Ӵ PHZB_Iԇ>|Ço"`:DH餲F1Yu{il\y?ﹳ}_M%[,kq414M7y4A)Ά6H-P- ڦm(IMR"Y־KH}{]8(Y#}?="gν.<' UI&8]j85QB; p+N CsW|mk&eܰ~ޜ kZA=w-:b)_"""8 cҀZ;CcBf| (!Lpl4ԤOO9^utР瞦h@W7`^;w.P^^x3s E0]8 A惁A0[;=`R-׶'oN""" }@ye%j:ԝM`X? wMr: ! 12Y! N5F=}<^AwW2+LDDDd$4w u.SPUU1X7Z@IYdKڼ4;]L3~'$$2(R| 2ﮥs\"""|PP|w:FS_YS %9{ o<7+p))(H)5:`=ji{Y?ۯʸ-clds3SFzQZ^ZK͓oDq$&Y^TV \Z """J~wHn8Y[phPwwF T]_ grnG*.V(@hwz3 _!fŠ:<P^^ hH@VVVP__ -5( ' WnYJаg~ttm/Bk/xD2>6W;pi6- @Ss+1vv߶U5( *HB8\!>w[D3 #Ãt4tȾh*ǝT[066Hd  1)h:C[#8UbڄҺ[e^/g독'ٳZCGrIs_iٹM99>:\@P0*h0Zƙ *gW ne {L+q=I_Z$WFc{(ÏacƍVBdy=*u Va3z{*K@%eezͼuwDc } !в  J3/{⼞3#["_cVJnΧzi#scqYȶ_sZۯW{Β}pvd]"""$y}ܶ5utt$0D^a8K(-|ϧ'P(  f lC ,Lji=:2^M(HrH%QUۀ-[q09i$8JSj$csd2xr$%i֮o0h*$/?H;"+ÓJ kUc,/cd<#B/ c濭dMy{u: {fm/i&\mu9?O 8)'NZ vYAnRoFwOJŠ[:1Q#끳sכdڌw穷03F_ey"%yf QyFR%(&&1=3Օ+#`v,Na%0|E())o~P*{^̖hBQC B̉ ;#9@C}c޼bSM]=z{!F1'Fwt%\c$ chBbH5H/&yԱD"χ0` Z4B ! WW]O c\*5aR{)i:1"A,CqIɚ 1ft%Pa.4\ӵ+p ۟W]*.녮R[6d颉hdx#QRVՉy/"A,j|e^|A3B2[qP֘5(0!<ש7P&8N,IvrH$(. QV^mHuz/nqU%q xɧQVV94liĎ(LI#q04؏D|ő޹M:xװ03 H ]& NŋЅ@YE5x}P0ĩ=J IDATщù3' }uΈ;uΜFogcxW@t(ZC0MOcCCv2Vtn߉*w]HC}̴}(x<^s#7_̔z=a&.;+%%xG]xp^(%;/40|sxc Pu<\a(ϡ:'@iy}l-9 .lQ5eZ  F_CA ]]A(KbB< /\^qPwbyiL j~H8܊m;@2͕ @áC p9 $ȶmhzB!T\>cH#)xܸ~ 3|u;m.6a]ekы"A46`ێ]C*LLp8{ %qcTT\mi """"]C:!PRQX5 ݯh՗[P B(P[߀I!&8l.<`8fHfZfOᛃꚚ,wS0CMI:y J˫ѵX]]z]D,K#PPvJTTT礹ڭo9SxWy޹ձ(obJ_;>!e٫[I΢@qI ~ I2Y!""112܁nHߒ >*i&32UלcÕJcdp)Se|Nm.#&FVTbzѵ=4Ԃ:+9pw/T x4S'ޱG`KG'cuMZ!ᛃCkG'kdX\0iVZ^Wqh1gPZ^J%ݓmYZgO<}X*7 '!Ν9CCCΡǞ뷗SZVz8 @?v~LVh3.JaiiW՞.TY@(XO =ck5uhjiۯE `۲ bڎ]c ZPWS_HDC{7fr!ESS[+cF+hm8Ѐo!$&G1:4vWXY' @Gj&҅ t_c{saKg'v=@Rh-9¨KQ]SShnbzJ444= Y^,x~WVEoi/ N:n pcqe<}# 8L֠py\ `Q{}2ADD {53 gB#s`JYN#8UW#ZuPz<Jhص{hFk?0gnьa53Xc%@[WP¼.E%As(.i$ 23c(5%m4VVȴާjPcxࡇQYl&qncwA*"&]KtA]xH@xе@`LCs/6ZJo!av'ҋ+jPqeDmhf p)9pҬqEsHLOJмzj8EաA75+++ki-YLF<ѨG;i{s^FVb$۴gŐ9K2YTUSkbvjtsd@0:Tԣ$esC)砙8TJ!TTJGaEX""f ahf5aDYY}..,@$p- YϙfnPum]$PSJ -[7!y2<62 j9f`KKK !1PFM m9V&>BAhM9qn&p'PQ] >+q/a"""z+GOqHh~<^rOϢ'VpĻf<`ǮQVZ%t#ad&c(-0KJLObldB]]`Ihkr2+Ԓ3N35M1"~3Y ĢQ;̬1pP ˋH]+4-ǥA9䙂pbs6 "}GJy}̄)R x$QaqqDRJ;L1a-1XD<(,..BS5-JDY 9e 5ni^MM!^y ըolBUU +ڤȘ[+e%P^Y٩q@*cHĞ\J.]J)Ň5(s8{bɲ*evHxLM5VsoB B󢮾=W.!bvfu$EMM-ad6Ţ[~8D"#iIGtihTۚf&'psNCpT__2DnCH׉( 9x[ں젮'=,_;v< ,,K 9eŌYz ;uF!7Pԕ:"5HJ؈e;ƐN/O|j/ෟ=#M9U}a.K-cSN&3fT90ATaϾAa+$wSEPEEEyXTDV}k((76ajl gPQUd :`==9;4SF/@EUeg;a#/f)CbB=#dWc[:@齂P(//ygoI#aS 3)/D2I!`At\_*ߟ&!;k4(hJ@s[wדXոQUuX1}hXDJ;{B5R_qR2SZF $BE%ܶv"0ɉ軎X,KxF v$ĺYu4cʊ=ݙ뵷5_+4445}rX.TzJ/ʌ٭836 y#Y@uU$+0>: -[oDww7g07r agmq /|uEB}s+~d{o-OcNU<4ڳx՗07a\v;v= x"""Ŋ=7 5Ν;ͯ/i5H%QԊV,.# \Rhty~xJ?.뽳F>CEEf)ijɘ1>{qqJp)dn>w% t,Ϲ^mUGDeWD^hBA~xAbc?k"c_dNt ܾW݉l=B?PpJ3w;uZ= AT֠sky Lc%<ðgYc4)XM?~cxܬ}s<37vp/Sts$* F15>6 DPSW?=YFԤbs_HHCIfc&fJڳ( wĶ\KG9"1;9 bNz{IԙJɍZÞImhh8oPC0J?0㖷_x=ha$qp9El͜1ezr r5Zm`MwiO-3.J*0Z]Aȋd}$Ի05>;BP_AVBGdOmI1KYttիykrĢ 8s31]Ba=eZX,m{7;Z;!<@H\>sDN1#W@u !=ƌ@ޏJ`?Nc?d㷓]]A&}tl@[V 1}>t5]q,35 z=f-;sť%Janj C}im1L;t־F8 IDATPy.?o2sӸzt(!a$J:4z{zp<+6:ԏ^ o2Kql8=쪪sUiLǪ446=ӔUF󠺦AIhhh0'\mJ}6ރn٬bx%Dw2?+{A016k=qBBr1=ZкC9N?s2#]]E bth|A~/zwg~Ds떜;D(~8R8~mtuN`cvf ׮\F, @C}cu %f(t#.AIi%t]!Z\oCACqI)v>ϟX믾m;v@xc#PJ`#,κm8]H\xolG,& *m x+ΡMDDDDGAJR8="{}oހ XΞ2ߨ Rm@s[ 3JA :NxB5^.jDhhiţd5sU5(4qP*5<*9GZEֹy|]$p%()q\t:LJG0g4wtafjCG Pƒ={ "R,-"\tc@UU**0;PB%ehoZ2e[:*ΜxJI\C5!!`߁ÀN꛰w!=yC1<П! p(.):Is+q*_l?RVQLz IwB)'C(~ (P z?t@мFhY!/@Y=1kq|*76abdBH8VSBE2w6aY'ÓgT9 Ŏ$**{>;sgNS|P89ZซwdܵcGɰ cyWuYG2Ø FAn ɕ0kX3dmiDUe z/c {*Q.tUM ں ?*Ax8pq\8ucZiÂzY]mg}4(x1o8!c\ރj\1w+h^sUf|FMM ^F,j?Ʀ&lATVVb~~7A`rz %iRNj'09:jn=!F;x힒,𠥽}7H$`O PUUmhjmO֖f/ُC hkByy9`h&t]w@mmܺE%A5uz]) `m]غx|遴sDA UUU͡ul{6tlaO9mO{tM.ju$kQ&#k㡱͜$37hhj9fl9g$K;P]]kײ,'έh_fR55)m$ڻczzCXDq)@x}VI'kW_Bx !PrLcamVpsJ_Gbx(..'µRY5t]VVb|B>}wy:+! %t}ˋXM$h?OR?<3q~|#yfH$1Y %4k Y3َG""""b/w9J"@I7f 6]HJzZ h?}B(5na 7g;>Zukc؄rkB8ܣΟ;kPԚ kJMDA-aq;kYyaLGdƗvG7l}^+`(m_כȾޙ{1hyu6;0Y+4fjCڳ|@`jyvKLJ=80G{h3Or#xkPiG3Tʨ#0 ^9y/9Iܙw5Y^LƦ%na\3ܩ:(w:Z6c=X2\*۵@Rkkg%,vo?g3!""";=8֠03Q׺SAL[?sV{r"DYvu>Z5@zϑ k5ݹzX33o:cM[ s:/w/|]=2Ƭ k"6X۩7rs>+CqeMzH&]+7!1q'zlv{Ǟqf3;u;wj7r{pdƝĔT uւ]쑐ֵkҲ2^[pu{P܃!GgnuWvhˬN( /py% ϛ'ȯ5͓uZmz]J9DJMlRMh"wf}5 ~ODDDD&΢I y#Gv`w&+nӐ|Rz"k(kwE o;YӐ*sX%wץَFP`_ /ܶW6 m\)soW. -Cwkvģ8m=cu)g-{VsBDDDD&8q1J """"""{ DDDDDDDT """"""<&81ADDDDDDD """""""*xLpQc DDDDDDDT """"""<&81ADDDDDDD """""""*xLpQc DDDDDDDT """"""<&81ADDDDDDD """""""*xLpQc DDDDDDDT """"""<&81ADDDDDDD """""""*xLpQc 7 02|#G>|#G>򑏅(J)|#G>|#G>ʊbG"""""""*dADDDDDDD """""""*xLpQc DDDDDDDT """"""<&81ADDDDDDD """""""*xLpQc DDDDDDDT """"""<&81ADDDDDDD """""""*xLpQc DDDDDDDT """"""<&81ADDDDDDD """""""*xLpQc DDDDDDDT """"""<&81ADDDDDDD """""""*xLpQc DDDDDDDT """"""<&81ADDDDDDD """""""*xLpd'xO> u@Q%dD_F:tG}F)::>paXe2Opׁb4ŷ-|3v#SMIh4o~?2EDDDDD}׿u{:8k=ݟBDDDDD}^éS쟧O~^kg ˤ)2CDDDDD}]dTJǮݸqÕxJ^dLnew'8r% .\Wگ^_ v g 5{Is?O133ã*Lew_ Qzi(x7n[y 8vd}6ɴl,V>z/kp!obiiݧ?i|cO~1tn3]H)7=Hba3?˹q+%2'Ykmvl=LZmr!~??Shjj³>>}׮]Î;6꺎Wƒ>099i?QYYW2 bjjk3, PSSm۶5gݣPZZj??55sazzHfggqE`nn@ؾ};9k-7S_xXXX@8Fyy9v؁W9{:\DDDDDDLpos=8p/3+}G>>JJJr+++'?H$!nq?)??]J_|oseV _{챜m__ַ0?ioooE{ۋ/Ռٵk~w<󌝀Xg2~?`Jw^!o/oF """"""E >_z%w@GA|O~x˿̚3gw~w =.Re:.hm|ԚD®!>1ٯ>` 8z(~u&~?j<Ө.]c~~_Ws&KxgǏhր^Q;HVJ~kc7ް_VV|#ؾ};~?fffpQ=z~߿˿ ۿ39c믿C4쳮zΝغu+zzz dLpd ^q?<>" R gϞŷmn~iPJa߾}gի#[b@}il1UUU}sï~+|+_{J|LJ?afMX?n'6/t=?55??w8я~Jp8͛mV __g;%uww._l/wG>X\\?I{_[[ϟ?Q__ȑ#v{8իk{%|3A0_/L;.(?,*/Axz<|`Ԧ?;]}_W@ '޽{OOضm[Y3 rx {׮]iD(_wTUUeg?///ɓim~/vڕ\uu5o+JAH$bw|CJKnm /;]Ӓ2n'R?|sK{n~e=.ɨ|+?o'7I| """"""tzzk<{1_~y+b۷og>頻g}9tgۻ(41`l8$ddv $3ݝj?f4ڑvdJ(0$;LC!`sNUuUwumhHQ:-Ss4twwĉr{ERR3r~cPuV{ׯ_7=g~xdlݺU0=_޾}7l꫺|n۷o 77~[QQ|P~066f.ĵ.[L s """""" S'N-[MBlܸQ&+yx^]W]]-_]v!:::nTUTVV(U=|sݼyϹ/Y'OĩSpI޽t^ ]y~7੧Bff5 /}688賽vH |{߳uƕ_d})SNۿ[!F? uuuϵ󠨪^xA ^/ UUuOP^^3tDxQ]] UUQ__Z_zUن ftI*EΝ;\GAoo/vǏVYY˗vqR#..NZx=W_}3LOAOII͛7j*ZԗYADDDDDDLpXׯ_Dž ;w ,I DEE@Q|> 찜6oތ={;vm߯ݱc ===]f6&px^&8VZ؀V۶mܮF\XX׋۷o618N{{smȘq """""y˅g*`OKKÎ;PU|?(Ceeq_|!W:AEEE駟>J}fEc_ǃN;xpMyMͨ ŶCCCBQ,ƍ1UE0L?99>:>>~VCUU]B>ep mې7 K/Kcɍ$)BBBjUUU=cHHHKyу핯C}1ᅬo>j8WEEbbbgΜI!]Oo}[PUW\+ WZ'|K,Ajj\Y~7kiajNU@$*6;o1ɧ,&&Fwv}GEEYZE񙼖=<NI1@ƍ7d}!FE!55w0=F s盜~%lE/( 55rSd IDAT׋q ˅_xꩧ|V011zց`L:XqUāxϸ-[_yjf N5褃=׋h2aK2 BDDDDDD" ׮(:V\Ծ~ƍw}?`6+WĥKL?oiiAQQQH}%֭Cff&nݺ`z5|f˖-(}׺͛CN>EPp8*֮]FK#))>8]5k?\|===Xhi O.`!""""" <}]:;;O>$gٳg}zj] \]]y v,XgyFGŅ UUvrJy-۷ou1?e[=[5kt?Vc~[u;f:\^jnj0ADDDDD/^~g}z^^G><ÈC|V0 ?b˖-ѣG`Ν.?ooo+Ç g{͛7rw;Hl_>/..mWYYkYz{{{eBX.7nDLL|}! .h'8TUC'x" <|?ݺmRSS}Ow/^ :9( ˱tRˑjWO(UUUw;\2s-)) /,3g୷޲n:;;__=ۍx@®]6/铤2Qww7~_ >矗[ZZ??~W1 """"""  }zٲe(++zoۺǏ_Fzz<tݾ}o~<ͷw3/ڵk}z'Ueeg;#Ckk|srr~> R-{ױ~󙚚‰'w^9q(?EttOٳ˖-=z*kdGGG'^_~ EQ#v!/C s%""""" D$ƹtOwrrC0=__E__wwÇw߅FVVz{{儥PPP._IA͒=ϓgytJ>sssx7>~mHOOGBBnݺ%{9ɥe$ıkW_TU׿56l؀ ૯Bgg_e^{ ?я`z]vvc刍EWWjjj7x999>mXÇQTTd]6ggrr2m&߻r jjj|ݼy3x 覦&9sF7n)Qmb_@UUGսo ލz饗g{{{؈QYN+Vo[9ix3M<կ~\>s'yn"!!vK,}n:'N%7qA Eڅ.h$8uCCN>-_oڴ 9\[nv z ~W7 D??㭷B~~>222L/ #>{{[nEVV6VN' o#Iqq1~(((C=j;I"_%%%IMM޽{qal߾9`߾}x7PYYiyOXxqr׶ 莭llDDDDDDdcNLLp]Yߏfc…HMMEQQ\0ݍV "..(,,1wyP@UUΝ;Gtt4vum߾>cppCvv6p8l1aߏڅ霵2""""""͛U+f;`NPi3^ bݭ2depԋ}h瑱j/v|CTECw7vYjf+|9`q2v9C[SݗB\qL9Lՙ>ͷӫV-KM@c&5sk`ѻjB&p;{nϖ`)[^=$99Q؎EDA+x nJ5fv`Aܫ [[uHDDDDD4_114 vpn0Ya&=]jfYl!*DDDDDD&.KDDDDDD~fc^g""""""">+yZ:Cߙ """""")ًn1ADDDDDD4f; 1ADDDDDDFfNUb>'; """""" >Ip0_C3б0(6A"""""")`Ϟ={QKa?Dw^ً/(?7nz$DDDDDDD3ph I6"b"aLḟbL|"4ww^Бp~4&712a3 1ާmW߼7ċ/޽{qسgݻwc߾}`zt܏iiY^zf|25h~'ݻuW^y%`jZ|}G !1P2f=\,ź{t̖brh~ڿ'n+]N`5,e׮]>=7k,G4fAxE 7랈hąF3MrٳG nСCɍݻwc1J@yzX%ĺxOΉBnĊGA}gscb#>f(عoYDDDD|M9'ag+=|Ŧ816>tuuoAww7TUERRFFFڊ #::HMMEff&Xp߃ܺu "..yyy, """y+۷-1QY/jXٜ7(EAtt4bbbLYGUU`ʕ|}jm6v̿ٹm>I2|gz.혘@nn.,X۷v8}4&''-#<`Yr>5j{{;Ǒ'nCgg+k=А\gxNk^''%""";1oeCQK>:t鰔]vYι8q59sF'?dw3X76f4s]V'knЀcǎn7lbZ7o{/..`hhH;U#MHlhllѣGEEEx'CJ;Kk@8?:jDDDD&=mIZ-%МN8O^ׯ_oܸ 6rM/Ȳ>PPhG(P>k``x9tX&^}OLLٳʕ+b ׇv$''Dvjb0++2n߾m$ t3M Ԗ&6""""$(rXO;\nr57kjjBYYYP\V= 62>jH㚽Ԅ/PQQgnahh6ll;###,[_u:HKKCZZZX*>~ssLhxٸ爈hnƞV ¼~Xce+V{suJ.[c{n[~>0ĄY Kڟ٤YVg• : %39L/""""$XB*nWqwCTZ[[HII LO1 DUULMMaddp:+܍$J!p 11QQQa-PovVɁ`'o:<N'tbttSSSFBBަpWVGTT\..\8566Ӊ+i7cl4EDDD9Wo&TUxlpLpÌX]]nyyyp\HOOGoo/f͚9]r``/_͛7岵B^^QPPhGFFpa@BB}Yc?W^xrLofTUUAUUZ WU/ĵkWTʕ+sp<^>'|"{x<ٳgW_AUUae?.]tVUU? BQ{rE|;?5ٳ8< -- ۶mjݺujpllLMnn./_98gY۪˗umKQ,]<\f&7nܸZ݄NK,uoXq]cQڱTl߾"8ԬW6axs*&ȸL<ʞxb藔hooՆ.Dhjj‰'dblmmmhkkCqq1}Q^UU\.ccc  $_X޺u /6-[nDO;e+#~wttGAKKi ~Uaǎ+Ainnǃ*ajj'A㑽B 0;^WWf%hhh@^^.]S6T!-$&&"11t?Mhܛ(sLپ};tלdffرc3g ;;[666F^^lقhYV)))ñc׋:[NC ]VN:%ߴiO6Re`Ezu+heo߾K:=䓺/n[ڱ2())(>ucl_1_.{^r[c6,0KdxxXkbb"*++ϟusOKK\kknqF=2DO ^;}Snn.~aОWnn.h._Tp鐑 eYV^$TUC=$2%Q/^,un?"LUVb=2Ruuu[HLLĦM .XK-2ɱLؽ? K|rֿڵkl_fe`䯬gr6ar ƍgYԋ-)׋+W~ʒ !]p8 O,_NPvZ9'6(nݺ%o̐n qP͛. s|rssexLoUվzP1DgvRM`W/_~Y|v@}:=Nvve˹ NӲmk||<{SIɝD6bVvluN?vDDDDA;m0q&/#0{R.ruE!%%%h0===@ OAVV܏%Ȱ8Г~mO)qlcV7.Q~VkV';p\~3++ ={9]O#q|?NSobb"`&ď:'ڦ:4[jW N!<rDlf +ӎKQ؎uS?zDDDD-Dd߼EVOE%744 '''2<<,݉g{k1t`jj ---#4XTtDcj.}6222- UUt:xb֢k֬ .s= W*~B-psՆCILLLO?CQRR4!u()~p0{m=va *#f5Ln/b Au,UWWvyVSZ'.' AFFL9Gmm-ܹo)))hii0=F(*L.>UUu811@0TpɍTTT.;990`5ՒVI mN"j{M٩ilSfI:2S-hq&7 $d˙[ .IDAT ߏ.Vf)+b,RSSADοQPPwff&,X tttp[c.1s 5 xӞVISSSv57l؀Yy܌SŴ͈E1lsa)v4YX2λa,&-A_0ގ1(blذV@j+m Trr2\.FGGՅ]0cvFyn\TTK. mmmrrly^QQQXx1]&]P'丛f|f4NJJBLL Յ1Yf_&2233QTT${@UU$$$zVueQs9BQ$''c…C__Vs]}cUUIIf}L^vxl-jW^}wwBg(ɑS;wN&7}]\_gg srrtOV=Vh{?tʡO^W7ʬJKK jjjPSS)MiF k 1!4:m,P*xYsEѭa˲<mcUU}ڱYo*f҆sU"""""&8!BvvHBB\ydtt#(--OkjjtOnFFFPUU%_Yt~[\aLYYYrN+7\]>Ѻ,BwKITϝ;WFqyӓ].W@mmڽ1y!3./6'uxE455n722'OùjŋuVSS ce o֎͆_q8 Wb ET vT!u7>>>8z(ȑ#(//AOO.^(B\… yƤ`͛\6 p$$$ 55\JJJºupYLNN?ի-6BEEn)QEQb >}pyܹssIIIIJLLDrr2<eY ֡(P,g,plXXf .\+V 77GCC1~Q>(9b,㔔uCDDDDGDbE^aaahԄA$$$8nl޼UUUzr \w[a=Lp(4XWaa |&RsQ>HOOGoo/<L$%%z`/H_bFGGq%LMM᫯2tbӦMGIeݍ7na[bƍ{s~Ʋ:uꔜSNYikU&W𩬬-c;W cYYCCCrJmmO(_^%#N :/--EFFOkV.юl1""""Dx088 DEErU>ETTtC>:6&Ī(Fbb" 066Ӊx*ڞv@e) `bbN{bppPr0#ZێgRVu^DDDD fwPog`!$&BPvDDDDDT~CTq N# uٹlqe7`C9g;u`Y0uf5\YP?=tu6ڕ> q)cR*    yDAAA#    }8AAAA!   BGAAAA<"p   CAAA>    yDAAA#    }8AAAA!   BGAAAA<"p   CAAA>    yDAAA#    }8AAAA!   BGAAAA<"p   CAAA>    yDAAA#    }8AAAA!   BGAAAA<"p   CAAA>    yDAAA#    }8AAAA!   BGAAAA<"p   C¢yUޗ{ 6RP-rۭ ݿ>bURl}[嵩\#\;{Xkss>>c9kYϳ='ݞfձ:v1g 7~e_߹ݜx~:s75^_:\.ڌPŅsw1רDv_ymMY{sBcj"pB_>\Cc՛ʮ{w?;oO섋cos'螊ZM)rAכmT)թΧ-}pmZZ}3uBm/߽y1msh3a{z}\,>zgüE U}E:oXdH\ﯴZƻU=Kr]Pڬ ԇz[9f.`TOBϝb;UB#_2Vڷs_Ow՛uocr cН+C,QZ(*)Bty*4Y;oV{}mXj7Ǔ 3Q(%ճ:꿳^r{#z:s=MS9+\ŪV폞t:7yG)˵l=7Y]=\Se};"klC ʞ9-IbVE~tUv7*Av[Mge9ߤL/X/JCtߥfӟg]* k ׀Og`m`T |u Y`-:-.kU0|Wf=P(!|vhM| b A9:ft 56mG ۀ =;Xz46)BZ7h'}RRRDҸB"$l'+FFoۈlqlc d]BWzfzB e|HA9? Z!nJ'ERSoΩDGp\E*~Q(T#2*]gl TbEz9:xDj뻉4tY#č1& ƌM-Dmwr&ik-Y5\59}TVu#o:Z:16':Uշ'^:gFe|FyͰG:KVF;rspF@y(Duy91xuMLq+6pf7Q '1Pc;(_/og׉vDBƠű 1fw2xBc (V3QO ;gڥҤ5u|?'Ҿ}ꈐWֻ2' \xm,2-NkBbԴ>vIDQO>|":ﻇ1Yuuަ'XmR"勥}QDCz*5IyۙN`jJ *<y޼UQǚN`1hT\5Tw΃'s Ю+ ?cp,$% rϔqiMI2%Zp1M.]C?]pk9C*ϪR `va.3yvyϏHel w\ˤ.|?&uoh\"h#T 3®'Hr?O[DN J55TWmOєJ,\K]yOaΔ)TWTz9+h"Ezt_&o)DYlȆd[+IUBb'W[ȡ_[2uVr 'O(8~${ds)>\퍵kb~"Kտ`t #d <*K.wz;K'p3#.D]ȡCh7^|!Csv5 M`渉UUhsMa{w4qR(?D`,QR`4Əjp8&?ʫq2@jqA!v~GcMywD(8b)+g͡:Zހјl p04CT9 dܰ !;{M$S<|#gf<9a8ݏCp+w(GyI)3&`D7FmUބ)l`PY,`^_vC*l|Lu)uN~Μu-bpIevϼOoZKc*?ItNob ( e܋|ڕpN?Aa7G<-vu Ց(&OciL@[ߕ*Fh(9ig-lomdxHG&z?{Wp,i?sՄdb[b@4i-wdls (-l4iP?~DQvN4a]ZK""-є&a錯ᗞY~i/~s5Wױxޥ8X$JSK3SJcq_hQ'D"iw5TFÊ,pA5q7E[*AM:]'8sM Es/aޔ cXt|cE5WΝY;*:xŒa|| *}b=$km&^.zG%ZnZ.$pkx 8h%َ^3yS~*krL~ۈW4ϯ냛oz`uWϻK&M48;x}b[{~J)F<+p9g3/j 4vĴRd/TMQ&5y$۩"[ER +λmR Fna?B[xQi  cI1'Z")-/} l4W +.O,  `y㦲䊅|qNNh |۪P43ƌgJ}(0np-^!w ;tw^3)EF:{wb4!/n0 h.5Kbb}%888zUanA/Sg^2mFv|f8kU P] 7eʥz Jd9]ܳ _,ae$ Uwtlbȏq:[઩seg h=Nnx) "u2V]7Ǐ>TxLI&Gtw]Joר/!E^ȱlY[b)tK'!#ĶrZc |#X6mnpfߥ}ȆH]z# C_0$66Ppܭwtr~izLFe'Ko h<Ƿ.n_?Q7V,;>}ZM4㮫gXE:9EȚZQːIppdxQ?7;seJ7`H0{9'RDF^S`vf32{t22ooÒ6LW4@ÁWtk3=)s"4,[MJ)b8*iSƖVb55,\׶lp}Y~w D2s4:2W䶇Ux5I!Bi %cG"O PaFe7m8?ɏI UYkk/[-VPC?ݧҺ7YkMI+FZ9-(kpż\5g>I钩s1e*=$ڏ]!PS_/5b5.v?70$sct1~z>j QȒe,67KSX(XZFJIs8?{-!.^ɲɳA_)#-[>x|WݿfrǍ7S r|_'yy) _pSOpSlOڦc#KK<L[[VmS:HP (/Q1-aMA!F6bEI16VlH;i'|U Y5~`Ÿy%?aP kU^k:5' [x<9ZZ*+˯KS_WܱF^۶C0j n*J0pmO>okaIyM#(Yxn$_)Sy`҄q~˩d$!c0eSK:UYo)݅>kXCH;D +^qhH}A%ŭ6yGm? @RSQIK{׺dFqtq]B]DhlLQ!MBL|ZEʺ})GӪaɣC⎕7`xjt]a:qoW>;XR[#Y}+Im9|>Ԕ0iZIqg9zp!é(q^ٸ=fx\k6o%)sJ: ꂴbrR1DѯђH^/ ͐A8~x5IuqJKѹ4єaB}۝mGcבC#*p:7/xX'@8" +6.F$C%e e5ұ5LKD9=rpҌ\m\t^I,ϙ=ߜm 괗 =-SA Qpē,7'6sJ78''v(ty?mu] ZZq `YԅKQg) *ˆ-X[[s0GaϑvC]Y9SƎ;{eC^DRԔVq\{"(-Ł}&d<Nmb]ԌH\os5].s27^vL偧M8Jj<6_!c)Qn75/qz͹O$Xs¢BHЗ&_ Kj=;%97?rnԛa IDAT &IMo_?D[HF4n;?z!JJY9m^\b̙:׿~$u~/լy]}}ae5~b^]'P(O4```[MA{CJiR/p+"l @hbIuo{g688㖶VN8W(2j,XPڋR lD!NDNml.7mdĩ,>HA POW𶆜tv6_pլyNZA I9٧mCI:?Gc`}=Eҁր+5~/gXINͭpr@,3N m{o;mDP~|US9jGbdfOavKSĄ~6nȬIcLto:R|@(-J)/z0ܧU~ HeG\~߅>n38eqN JuNN?Kw ?rȞli?sfض';t>OEK7at͞VXkZ,blWU1fpNl;CS[+NPiݿ%NRbqi) GI&lo5/Q^R%08u[Œ>t({e=1c<]I" 㒲^\CytV "Xʢ1fNP ܹZ)xnzZR 8]'l^3FN*ch>S i݂u]=+2.&nsEpRqyvݛ$ qpEU gcj8f7Hf e^\&8qGqxsN6|_YyBn_jfx* {Ez}<Ŏ~^/I7Ϩ/ |@y*yh=#ϵ62|;YmA֍Uk6-;^,޾C,cnڬ!lӖp v S?vC N'[eI?y0YpॵoĂ&NaY~5̝& H_~-IeyiúsTV?zex)<@ʸ޸έ;"UX? lL'x`^" gԗfDn\I!oi)fĹ\S?Oč[ eZsd+֔b0d(Ҡ]&2tw&ŷ`7ubAN&gDh(❬hUH 䚪GYuD|O}-T|﹧ihh D2p]Q߻]}B)lW+P&dE")iv wY:;t/^궏bOeșJ+e G8=a |q[xu;kn Zl]]}43fU(~.-h{GO`_|l=+EM^r!ᇏ>Ø7dV7҆N[]WG~ΑbEɳY6y6~e})Τq<U#X>5ɰ1PkqKi?9p|qi)s(:/u|SҶUpׯoTH"HV>=d{@vJ )?AA9xHpWi9{PC( \Nyp17sג y(6)8~(l$>]ʷR}sf iW>U^$Cְ-!Fnaaca\ FZÚxSs<;u1K%@ ;mz032g Is!Nk4V%oY學imƥʪkc sN4}MH"hw4Xά?SyR\G½\Ĕ!# x$A)݅&a^{~BK[Pn")g[=k+ݥmgTk;qX.*kU*B\5ewX`|¦i u XQ͸#/ʁGIa(5 JC4ˬCuyY L473y([e.?? |tJb9Lrb+-ņXR$TiսVVAB)v9݇{% +ݫ9P7]} #^Ζc-=?^8?\a|mgI_—(M9_r+)h$%.~@9p+~#H/QH]ϧʉJq1"JyR|2/rùͮ8[ocjIf4MW6@P-`סC$Xb&O!j{럵-ċcEO=m%RT}ǎSOf\"@]y%P~P?d&AiqCEYet; (N' ۻ>@"f!i.o>y|IՃpF?O.,q7Y|>-Ϲ1&,Cuaee{>&OR֠K,eGȍir7ųZMk=%X>|u(IX _s=g)@)^ݰ؉'k:Lm$Heیh8L9pӿѷ|aO;]M`čG_z'Od=gV^DN0 -w>U(%"p5 zόA+~(-xǾt_|.+PYIn`9Ne }1\:0!Nll`{'iR]C@UY9&L 9h楷7f:2e t+v%]ᣱ3͢ɐï_xG1(\ʨZ~߼w VyҾ疭! ba\?򢒈ϥR^ o A=ڕH|O`#9>Rof׃nX7r#ؼdַg粤'f;[宕7я0a`TY5#-I]഍_?K۷ eGa`޴ܿExpsVhktLYY}B]-yeY0s6Fiime]i:n\ c֝`* c/A.w4lܷvp+Jr>яSk҄ 3n ͛;fr%^2?3#SȴoYf4h7.-tĶ"rvVj o?a( UuLl]7d8]Tk"PPc#, =GzϹT,n\p2so^:q7ƀwGDZd0|vTE㝾_{HGdG1Rtl-PcxQ~ȃBԟrW%ԗeI7r̳yo15ki:AVJGk=#uآD~i8x+\e)KyKt06>dg1M{~Iɵ3yyfanVEq`ˮq,D\Ca#}A0݂86.Px@sk3k^bX/izgV|C~V gf>A"gs]|UՎ*#VnfX"85mkysv!R #}J::YNA>^ѡբ-WѸm&NYM?(wN ÷v?@ii)G`<%L.6\u8O I;VNxMVȗbt,q [gӦMFt*Y& (M r9\^'*?K2gdM2?sM}pVuv גve[f̰a,<V{e[&{ V|UT xz:yݝ-Z"_ 1)>ȍ$|xHctoUzj:F}IqŬ ۳zEb)×nœf"a\|'{\HNOMدׯtHp0(~2f߹g\?*Uޖ nfnÆh% K-OCz2NY.6c&MGqpvAC.z "po9^c$ޠӱҰmn^˦ VQ,>E{?áY^Q۹J2cxqDY~$oo6ǚ9F % B7*XRƏnB:2%A8W;Қ6o ᦸmJWzB Rٶ?t?~y3$W:ةmIiC2i_=}}Q4!uASdn&k_g#|H%(NCp."#-gfof0(ѵ? BTؑ0]LMO3rXVM8/q1I;X j8Ny꫖0sDj+@+N75q6xq5n; ;[+dtJWhRyFOհysS'}T0o_1PY ;yTs'%IW4!jB63lO<ݻhMxXغw7_ߡAFsVd8J)L_~.>kNhW?_+}id?gm?\GhzI(xy+5$5V/נq09*o>Xpts%24i"b찑| ~Ӵ2WΞågF8|u;Ev=B.&x[F=8rD$k Z-OI7kǪ FWvWmϋ܀*ȹï_zxwtTl5&uspuBp\ihpT IDATy>]s^r1dL9;yf6fLH:沈GŌP`~i:ȱS' zm s1ܾ:FTc wʺ7_[}]30X3@}]%/ʢ~=gNR8C#Գp{̙3P(wŸha3M1qNjMIwn]| K-*❄<|_Y!(d(ǯQpg\ן[_(Oy*%|lE4Iyej"4m`L g$4g8?M4ǹ[R^EĘ\zywLÎGyH >JVԚgt|3^{9>wA3 &Zٶo/_| uC:pu0J~׻<3ŀ:̞Ljx󝭼*˙7c &Nc}Gq5􋖳:x>8{#qyL2o|$o5GSWĉcyy[ēIFGV6RUieX4y&,':79BZ͜'o14I`ݼ$8ՅR !VްDZt`ycmy~ZRaw"Wsn& ר/3M1޶}N)Z?8r0\dAĭEEމCGi D[Yy1f70m`+˒K.c[p:lxRk]׿mn]r5K]BXq㼵n-<__"Rw>v #FtΥS,|3f VN7c*(*mwؐ(&!↟;EڎԞF&gZqAJKJU·gnid=(B1cXvM(!{Ç1j`VbOM:v>w~3ºSRQ7nU?QRR~䆟sÐ6 =ge?r; .]4&#)̷*&қwQ'L}6.t4 ذ]& ˨ڡ٤ѧʐgO1v{u]gfI`$HHVE-ɖl+n׉[%νNy7~Inbqb9EdɲeuYQjEwlA(3sSL$@ 9g{^McIR<ΪPQ0z|yOKb|lٿsll@3Oa.s|$3MxzjqpPsċv>¨H}7t1Oi⳰Sm޹-: ҋ/[w7{mKBǪ((?͔(ggCqo |?p~arW[[˘qciBqi>BkO+ &eѺ@ct>n2^3Më&H8zLT83\-$?CGc4r꬙dYf4M$u4Wnjoxϩ s5l_.:4u/N:1t*5ddzh4je>irCkq SF_{Bc I=q.;^/z=ʛ,焨T97YBs9BegWa'di<ȍt>C1*VZsкx ͮv~oG>Fcu-nc/HqΫepz<³LSS{p0)aa1h,+뇆P ϚXiF)mo@a7Aj$L5djãț/R3 8%Ooٷ^dݖzGp΋t9.wnal}SM=-d&͜-xʯq8ͻ76YiIuN-7ڏۃo$⒥gsLn̜8Z.\Ш.]ꨇRq#O>sNV'zHѣ~GxA1θVH6qcsU]ˌ)lkم5;O>Er3Ns r KvMT7F1En;4> uK)zߘq3H+v{杕?g4np.d,nauՖ,t܆ڢ===ycMсYD/9ef.Y~V oН3G+,I<^|%)·?dvtCC>pWDipl7 APp!L xe,1'rp̙0&>Q;1L=S奧lٵW% e,IF7}* 6]< 2N~hzX$˱$?O [BGׁߩ*’CW^#ӕ#]%6!RtϚհP+ :Hk(ao z!.:C̦$* ub{c&\Qap :܏ R5|擷ҙwo&<0Xtvy6yz<ƒ \u5jwhϠ-\~x) 8yY~.ǐ:;4 cرj͓B8ch  ]Sэh;wm[99spOknaWk+MM2I.{8fqP4M͟&MrH-mxҐbڄI$Kd +-lHC'Bٓ?NN k?DggHiؽEMSŧ>~+}ܱπ:(;8G cL,d0lBƁ7nggd j&%F(b57X͍u9y<>?|ˣk VG5ŪrU}9 S+ٸy3)?y`r.XVt ˷~暺H)Ѯ[b H2?QM`oww> YGsߓsi iN1$7wlk=[7GNvC^`t%af.[끃w_D΍ؑ\ ℁7(qζgi6LI"˦ʗIO*.9sKfϋ:#yۣoVi@19tt+/kν uA7';ϝ<đlH/-tZ&sެMKwҗO kfxVG*\hȸ>qp0sp6? ܖa=&ohokdւe֒?yjKϤ&.^r &M`wٱo^/4 yKgLU-M 6f"5!8~ոN=ccܗ:yfwys[dYR mפikKƒaS\$H{2檷5zACu,8aȕ15oOrڤYvOXe6SVh߷Wx5⫙6qEJpҳ!Ɋ+PJrڪWŝwЕC]k/{?3=ږ%߇x)]L?໴yA"ߎ:FawgzOKϽf~}N$2n -a'APs1st\ieT#t6ON;ͤФwǘ0>ᅲuvP_[3s5j_~p>Ϥz_oomی;D&pWgkQҤkfLƼ"o?&,*kz itn)5.|)5c Ko8-XgFp&mc4n!XqnڀJzP{ ~9x&NZ|3o|^{vbL}KO[j!n0G|iGGyz\,6Q554ՏE/}gx 7j:r<\}ht tZhd>k.juz4Θ >ǎ}{#C*x37sO?۞2~_R?^Ց8q`͏:OEo K9I?)p#7})nӭ9 ?9 Z:ڂ˝< ec'l OZ ,&eyz`'qgd=tg88ll揫p˥[78$PeC79Kߦ (?=흾8,?5&f1Ayn>Y z:\=|o_'yP 1a/_Q5Llldϑvw1oC^uuS%ُגH$xW;[}%]~5Iє?'Ìzt`vήC_xU؆:q#⚷Nj\]ڨ?OWST;#|*}x -P/2j 00WbUcHU[$)0sטXfK_g?Γ?K6sd90mJf rqc=u.],^7K$;0I(K"AЋqkkU7loח*pQt%4yyŎXpų_~ӸA'}dfM+%˰jyUopϣҚ :(_#&[<W= ds{Zx7xe*[A2H+yE~ l3)9෍Ԥ>m)3Iő`@wBE}ۋRy̛ͅ\w5YaAiK*&p905^l.J !_Ns#/piOb)s\̙4`9p*sewVoل {_wy/y,o̞dWdVS|!hV_~"kltB=y,L8cv}*P;[vWNh["=vQswWE5 e?5<ܨq _cVMcyRf= 0FSZL֨zkJDnޟ);U,hoĻ6YɏIm͊5oshƩԡI7Љٹ߿ +׮!urrÒv]#e‹Uoq4nRct~M^U\ߵ9]H|| IDAT:ԍ*b+%k,*&8Ldӏg$1>M6 |/>T<xdݾ7W)Ən\ç>I [vGW|t^&MO&͝υKbku\GG.$QE6?ծ0ZtX.\Sup#l`8Pa˜Q^alu gͥ+&a ϢCm"qUl ~Nh0$w'[`FUM(,E*ƟGCz'Qtt&喖RhƏn U5{عswmSН#̙8&x/nZݏ=LO*v%zʀͥE1hL^R{eo /d]`V;~p5cϿ*_7]39jSW7gՆj͂Ys4vUU)2 zZل3jz_xtn8rQ&4Ͼe4x51Y҉ȑۣocqp‰ވi_("%N+:X+:5s^A [4T42ܵsKprkmU~Sw:U(ʽGh"!MW3Tzt*z>/9N4MF <ܷk?#f2Ʋe7/y,XĘ:VtF)?Sp׬bSn<qpk+7oM/s[aaþ=dqw[oK$BKBНhǎ-aX8s3I~(jgmwr dha̹htWT@OݝL&hoi<[[35ҶY׶,u땗:g9.!%phݰmݱ:῏bQzk^Zm--R)Fa-t{Xmkق;w? fU"_0r9TG h?G}99qWq,*pe_A|eMI52KK{Zvv}! v.Iwӝloogw?|w{VtL8sX}mvX^[.~fR[6n¹&: ZWO"8wW*:5ۖKH͏',Yvl#m$K Pw7t0a_hs`?uU)fhj3i ;blu-"ǾԸZ5EߞQwԉK()/h5QG|H0"1F-l_Awwapv~D0~՝FruHX=Eض%uWA;9lޱ3gQH~Vֽ8z46ywFisi3(y~'$e ˬ1,r lȯP8ex\>YQ͍˩ jnL(UeSd͟57n*` ޸[˖^;ɦ}3N|?:[{`NF!eIcG68[Sr4<!Jy/΃  r΍Rbs%B4wV^>|xE )VdeJQ',*g8DW+zeG{-QqrMxted͏pp2;4׿*ux~j&$7u;',y*Rj/W]N;mwsg$( V+^y5wэ7a&&N ﻖ,g\ELA‘loot3F f9x{N8-EeZ[}6x-]޼kN@+(%< [v՜<:4MM|H: G*&׏ˮdgH$W@"d|n9eDF$)01JKN_z.56o|txe,/&;j5Jyr2HIQ/}u;#srĝ:挡gi`꭛P9^n*"GD4`Y޷8sb^_6[RbJE$=ÿ~o]=&\G"zl11pww\TK(W_Dn3!>+bqvvwGȪ\-86ɓjt4)Ё1QرH 1tݽegڸ4D6NF+L)z'CЇZJ+jtg6A})ɘ)D_Bҝ크m:(s6 ZqIz3r0O(cپGSakr̟> SP[Q~+9StE)PʉRc 哧x͕2 V{ :4O|h cGS:2فg-VAQÚ=;r/6QR.zoww{;NL U*XذgV+4xu!KRFN,.-{}kο&XӋ*{l;>8{:1(X7}8ôaf?1 YlW"j#gVҫcb {4R"=n]qd9H5:BG_ɥ?׈ 9_l2MC: vs>^aVz_>;?QfHB>gp=dIk-?$`xU.GIE¢sB!jvp{_o8Qes Cbm on e!䲛 "!b[܉=j^dm$6z[VLHRaߋW2 72k(UYUbG_JW}{uϿh|=ZΜJ [~בunF; "9W?}Seecpv]AWzaSP@qyST3-5^l|׵VS_ʽO__}`WA>ȂysyEFU6   15AJ$CB՗'_:/m@[2筴&ʉno%''~dd\F3{Ճzc=#3"qZ'-   p    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0    #qp   0GCS~x p@Y @<A6BM)QO\L GNͽQnqp  'J c I8_a8!}`6=g&'mXp)x <-pG/W;dFθS^9{ //6{`ΓkZѩG̃/o_@c$<)HkŖ9MVwJL}ϑ~$ Aб kH2al#[[ywf2JGVj2>px$'y>&±Cy2nDx Ë_?IOZy@ٜ֢FP<R[X^ A/m!i s'4ʜIQMp۝=S]dikh=kϻQMF d{ %pOz}[GeoNB-nu kDV1i*߄ @c&A~a-*>wpZ$X8/r+)w5:BY(2P‡zcU* KXeDShˉI- 6um] '[BA>}V7rYjKCE3gs8jj nٳqL0|A c8\>(=ݸX89}пG#\ߗ>YoH07(ǀlIpNs<|HXIg(Ds(/p]Pw<$ B<18ה7D<ѳhBg9uټW quJ*XtKE {yh+Q8N)1!o^U|8rXI;+w R""?WWffTU5 H(cX.^vOI2Њ-bﺳ`+#pqn8wnL2my-JkznHQB[ Uy˗ŧg׾%!"Jr ' $U @PUìi3PG2u^TUV.II0S^Ah%M^@\wo55Lޝ1~}=G xʏP|4y o5&('`p hiPh`l;H Ab?o4 IDAT:ppU.)蔑+lq4tYr"~azYIUF{.pe2rbC'K7HQPi)_.'fLFmu 'HIi@QNBW)tn\p1z'hxX<Ȱ{@^,Ec]Ӣݙcq;8q<ޡᢋO-W*Ϡau/?Vʪ\9'mLV<;/.w߅~sY//o܆7}w7~CA\7M΍/Q.;cyt^Wѡ*`)<)׏=意2ZK*88~胜6o/ Rà1Za:Ga]<;põzxmp15 ਤ@8j=eKs#?|o|tyi+HɮNFQ2g/k=~" Vy,6؀;^V"8T~?JR\Μ0wn,P4PgqFZa8s& _|LjKȳa1W,\NSSw d '٬HÜ\`it]na]::Ha0vlCT9ej@27Gxk]It,f W,^Ηr6XkomZ4.c's12x)~9oLhG\f Yeoha&eq-7^v5HF0¢p#MX Ϡ^|7e^3C,Bܩ!^ߕݗR*Pk`٩IŔH<˸:'4#X: OaJ_{pܸz}]vqV訾.\o_Nn6GR7}'Τf΍"4S~@ݧ)(G}T=p8/<7ROIZضkgpozGJFgGX+OI]#ܨq W.=_wsȍn/.(RR_: Zh33^אF* oBK~9œkO < zgp˩&?5s JQ|`ݴ֭!8qnZ*M%g/X)3#czivnC+71A*{`$ݸgǣiٴOGBMeg]KŚC Toax+3K6Do*RH1+5yAP$<-*ht 1 Y2?]d4xUoLyV*} Em_&nm<:5y/%P~<*ﰞcKb_~G^4Vi*| #HZ ]s0e}T8NqFad`[*-?yה\R~D`}n"n{ 6fCE6P|xijSf{`Pzsgf΋й?Cy գo~Dk{{QD< O?#,ϼ"HD8'h^Zw'ݮ%LPPt|1^sZ\Gn|[r r[€ kB$~k5ͱ_s:a'N. +ya:(Ҏ&A:?|c3H:0FP_YHS[YFAgWYkP{{Jt|/SG#Z6SkG /%Iakh|^XyLOiN+bGnٽS~b׿o#KW`~|oq0HK;iܸ̳uPO.rp=mQ 9B`{a?QU0G97G8qXJ_ay 7- *]fP`hga΢׸U:S,xԢ#g/.z0_wrA*ïvPȓZ.9sbhr^ ->l )WkGǢ2*\_/_#y$DBHd{rAGTqˆ? - d;z$CmXpvLQIڳ\†ڼteX=_OYYs??ٔ)k_Y{;;AjT5857Xr_57RZr|RD(4 *2F0ZBYNUtdҘ>ӕt $tN#s y!R RpESC͊7_'(UĔS{1욪QJCEr`܆jͣc%a$τ̛5I#=>0&Qn̚-H±P'nF]M\ݿd%a`ޜN!iV۹W a SGѐjKTeqp6U!VNPkn|)HKIB+{z-%uOX%.uRfmA m- cpLNl{O(^x-cPUn2bMyoޡ2!z @kn[yN_q͍ w,$ 0 `Q6Vk"i >2.s 75 SM~r?f;y7&wwEs#aއ,V+?vbJ9T4Y ה,髖C8*4rxsT$N8eڈ*k/՜χ:ӭ@}t+ޫ~ɏRsZFD=g; [\G: HSa( ٤g8{-*ڇ[؟}"}lęp~0S'4sټ$Exy{&@,վ$|=GHyޙ w1N6R)U3/((JЌ}r;8*9eծšA\Ʒ9n)'Bb7P&n<:=mfbL}u5ttz}mds_`j$ dzQ$Q}՞2h WB Yz$}*qԐG$R ̘2-p|_:WpG}7lőHch#[n 'H>)ۧLC0r#MbRUYdF;5smԚG -Ht~+ҫտ"=U+yjmk$j$.m^~|TV3x-ysoZ;U̵OIez8~5 ݿ]c..XZ8. "zﱽ˔[Ywf}ʩ(*x|1<oʠ?$GGL_≗_EZąa%4Ҁc-p6<_JX6Lh–}MfW"S%4&E < L2#!R+"bL*}3ME5ȁ>5.&_w=9"v|3 ,,ϔ8<ꋼVs%oB`P ;إwʑ.&Đ;G3oj( Ҍ<%=;T:o\ g fu֭f(.t._{=]@9ӳh ߌp6?f/]fLBi ,a#+%PNy,gCu-x9v4;}KZ`*E>QcَX}r?<y?H SA_E臨K;G40~& 8iXڹCf̘!g)Pkz)J p,V@z4E:l~|/|fXV/19&iQ`in|]t{ Pr)؝o_?yQ>ck~zl^FֵcI׾Ϟ=+vl%\&DgN1{PҚӍ@̜xh I'5{qr^Lp:88j!20lW7\E ꁪٓ>h*⛟D1_S> )Em/~qKO| Rn{ya[Lɱ8rSh[$23@Im*a86t`jmDk2s q ⦋.Sf78m ٕ(ݛGd1g/p^8GפqQ5]w3{CIp7=5p+1} v?D)k`-'NPe3q9!\ KAq%Wf)߹N9n7QL'qŜWBJ!$qid, }ߥi~v IABxJ*'N![U1qhf_!`PpΘ3=mceK?Qλb`Be2qrFH 0[]ƁffγAMI2v<.<>;ۅ᳕.V/gs#C*㪇yȜ*=uh=U<,Pݟk`tRDHu.w\t>tSWPԅCc6evbn>Du)׭G QRlHفzRui&VGdf~̓pRSR8:;>.ꎧԸw7zhR|9e>C_(Cr-w?67:MxPjX՛og|*(3bK.M7yvc]9rtlRg0$G=v+m`UOVHleV=~oAO!leÔ"l#"' 1qLjFcHI/o|`.v?z!I\<-ST\F& 'h=/ISω#F1{j.H#5|jf%i)6H}0e(.<;uW`447 ӯGay^k X bClj SVTL߲#'n_"lTb!x=怂c'8~G<,Q>hhO`c.mk@C=m(E.IiTA[/?;[H ̄b@iWnj?|XGڕ쭫ò,2zF/;λg?E̐z o(p ֽ<փ~]=z{/\̗,?|ĤAP:foe xZWqIE"M J:A89eZ&a=ـ VؐdtAj1I hN,dVImBgyCxia~pNǙr)kmpؤ 5>e[/5]}>rSt-O@)7N )+p ɰxy˷)ljc,FYa Jb_6x ę][}8ƿI~꒞hǧ^|ݟ7MaN2gE;LqЪ47{/~N?LgY;BcEË9r̕WZQa-V oΒuk|A˺q۵sn0HMDRLf xg)W_2j0#ՌK_kvo#@.%i %|q=N{=LK(Y:R iWv~61)::c_ì۷a7Rxot# >N IDAT~+#'l^9][yYa-J$]q5ᜁ=[pmCbr"CvzM;w8OLr˗pSh_$ 2řo1w" %V\g_ΥỴ 2z 6uJUORk\`ꕹyh3ksӸku)c‡l{̰Zѻ/quScQ S۲9.:%:`KFZSyϿkoC-LK2ۮ znȳG0bMY;UGB ͅgO e^+PZ^:߸;`h@73igO晙3В>kv²;!Mk{agz)1`U,߼XH1k>'CEb=Ci y~KKSk2e:SybPYOGL<' bHY/77W,sfFi%rϜׯB$`^bU Soإ B;X ^`>Z~k>ܼaAsH4%k?OU{$~PWa @k#VSe\s?l1LI4djJy)5}QC"-؎{ -dx׏ a;B5$5*Ź@R @W[@L9n_>g^196hHfYZ1_ $O8eWhl*[9/pvAogOM ቨfq@W{'2DgNAmOҹx6Ò&^7"e{w>GSҸOӒĒ[f}i IP䶄$ GNKՄ}jh,p)V68J'+НЮ2ko%w]3d"\XkrTgQSR_y9@EQ",=[C3E4h ٶނi0w#?7RԉgS,߶OmOx'ٛhLA̐D@9$ytp7q{ c0023hCRTPJ,4:&ࣵ+h A4[X]ƄyicJ 3`81T%6`:cJcg:r؀*B@tzR[~ŵL6 \ 0 c%쮯cm9 IӨ '41ߩԊpB1@/]KHvrj^jCyڝmLi/Sf'nt|Xn$P+Gܧ|C.f7}+@i)5+p>,$1S[RVNUCqUۄۏS);R@ᰣAZĴfņ 'IiQ!R+N>~(ef.6Sp0K t-.$niS͵] 9iF2 ڌbu\n'@ Y6 ظ}1lv"KI]s,z@ۿ]EVuiv,28e&Pѭ;VJﷄY˗ CR4j>kvR^mV-׎Њ˜n hl<[V?Q2vvvi!=+pxL 6bŦC9퍣T;xzc;x9-3]n&'oG2xOڀv =2/@wZ@ֿ=TpS)KhjW.c}= (I=XS[ܤ},(O.]8h&NqmWtsη|zVl^ٛ9l%7W2r-N&5L?Hy \7C:3L<UF=8ȶ&:<1PO'^|'J͵#zՆu\:t.L%oAXqi76XRnVN媘vY%¡Y >tրTLkv?'iKY3=P0a䘤FBpi\܃A7*a"Ű~/?yAW<-GV Er߸f+Иw_i`rW5IojɯD-ٰgg-_(;OZ#b kٵX &tN.N Hu{H'ogZ*_q%὚L>>$2G`X7]t}J1I`>kea;G' ~EBH(>]p~|t2 ;|3Oǁr5R5!Zꮽ׿yD8%^:W:d0t(=wq _*_sƎ9B1i"^dOm;۷ ^qT6%zƺCr5:*2P)u*(*s>\ȋoʭxǬ_S/®2,LX@3Q[,p8q|m憢@Iv.v&@8ōuATg\_¡p`Nc'>.(RY'B|[oDL!=vFd]KXs}DPK@ܐ<_BRO'!$K7o WMFI^R*]ҕe޾s+},)ql),۳` Ēsnm=@$!ŵ̪]T@l̀DXYNfêP>SԐXRKLyM#$lp.wǏ&#,!rz?Nő{5l5lqVlI aykL@3fXnUA9:^BBHv70*b7n2Peo-@jD,[XJ8n=#}4̔TTLzv,3n%ڱ1=rE7t?.UQ6ǻ@{k[+n ֒,\k/igNo^MsRHUy=Cs4!*EF;><4'ehDZ#tqnd98lvFnޘ// 3mx ('КnLC ldzAiR3[bz_~ \&͈kQd(WxpedZ{U\qPݥ'^x!Z1bBlnZ{E@#><NKɍoEU=2p"*~Ҵ7 s5~GL;,!%ӫ/rޙ0l,NqH躯3ׯ?Hq!듨'l;r J3y8|YMvmқ.-&pո򋧟r+ stARQDR8,znm}1rs  $tʺw zMm4{Vp^Zo@Ed=uxELXEdi~$|l1~1 EJ0߲![%$ZS=+Tfnfp20u5چfm v+ !nF;Tٳ]IXsh/sW\T2w~! 7_:w<;Rdl=AYQQ`VxEiBIc}X-x.e H5`ڐ,w6+*XRPV\N@WBH:WtjZ|>g@ ^# [k>K!ɲuy3甝nOV:!Ei? <&GX⅄irHW=D+qZ{T^'׎q;іkWS1|| ㇎pckVUOi/Xi-ri¦7jSsV04[7tF;5&q W͛n)<`sxgi mP>Qvfw^w[~x`͵V"94ʩbIG2/L;3Bxsc}|Pj04B+7ah{۞r(mE3.$&4Lar$5959(H|T8Dr_?nSY fNf95-2:XEKKK~:v0v!)vex=*hF)L)Ns0" nH<%);LBBjZ1¹W ѝ++`}Ez;3RôsΡ.۾}i̘#DSTB&nETu <:cn_?(;`P^@ذk'ѰL[Oڴ~MsWB;k@3ݯwR9*S5W G-N斮_Ǯ,حP@!tlowHM9ʑq_%ex8o>ĊMy7܀c~fs~q-qiBҋv<%AH8 IDATnY\;5a1N|Ȼsdڵn#k M҂@Cv6v: V&H B)/QN~}ƀ!&vmow"R-*2;aе ,z$fhTm0_Qt a lx)8{̙8 7܁򤆆pdJjJά4bݖMX%7![^ #ݺ֙O,Pyg)ݲwpzɎ ffv 2nmW^_nӆ3߲m͇LS"yic[_hWk(r{Bi? ` ^ V=ߺ+~z)Rz#!?=]5@ PR`9w7݉"Y! VօƖ`jP۸phPX|Юÿ.aX2ww2ƆH8Y@]KvŗS锅uٙϾVb)1©vP=׎ݜWT8z {)ETF~nsSt)QC2cB|)ڜ`Sjr.x{)#RD%$䶑O2> v*3ۭXqK3.^X /a1kVx/ L ъXR,L(A_b*f,bDE_LKJv.А޸(|fcx&5ڝ!="I*\̩uQp 6;qtFX) 6V&;n(K7 S=Jڤ}Jfm$?8NNR͊EjMt.y ۂc b@l!sv꽜7CЍ0t7CVJtDO-NZRo^zfS:a8 ]| RrU1 䔀֌֍ea u7Xfl4cX2 E,ɵ?EKwsUѷ*ؾә'O8B.Q@Z-3 l)W ΘZJC!D81xt'8ҵhS ,G΁i"RHABNX-ERYEa\qRյ"MKYEV.ۏA `o38sP}M%, " 4h(Ì!¶yK%2t,ɏs}4g;ޫe:/߳6НҜp%챳$'^y-MIkR&/ ҁ3+Gdw4+wq|h;/()WM_}T(Tճw\{=1E{»~~BQgoK0 ,S@ͪ عmǶNW:pI,o i駘 B CmCqPncʵ;Q૟GB[MjH^=Rnc uGh}vq tO-"29£}/<;S1"W :r>)Ƞ<ƃ RΙJcr̬6DkA 6> ޽}M>'pWY-_}J1-{>gԄ9KƇ+_o XC~Y¸|vŁ@Υoܹ=#Be\[Ra|ۘԷ *$4qM/ /_n"=DNB0s,S9c] |sY)Aaܾ~w.= fޯY@$j GXҠΊKo}ѳwv@6[?$D[~ GRga\Q\ԅ/]v5nz{Z~y|綻Vփ&? /nQӿL<(ҊsR9m1!`D|2"5H1K+}FLJ9ݹv::!b\4b]Y3 M`hi/r>RY?}C@_aiw╫Ta1qފZo`JU9R0avY1b`ߜ<`~ڍ ]=>D]"ϵhQL' 8 `xJ~p-"Zn55+zvϬ,_JHE]0~h&I!ɼ} *ˮ⡧QB5 |9= Y ECHك3;ߥfjoʁC1 ne 7U(t]+^|2 |T6FcGy Hei/vֳx*T,6^^g 򁁥ݹ۸8POkB*{RHSا5׭du}+YB2wI-w^r#/0yE|{XWrv ?Kc@:^_vu|w1sŗu.[1Mz0wmUq5Ik@ Ho\Ǜ pݤkj1 /x/H`U$!-Z]D[?׿%|떻l!# QZXDEQWG{ќY=MvrKq)=PؓrYu.a#͞f/YԳa0sFP] ۶?e _5R\wr!=zߎrv:y(;I B*)]\;Maӳ"l^;|ea}ubG\-׎a<;c&ׇӭ9+5% 75ʠ^|?[ϛvZE6)(9IrL~JY6g Xe g ƹ% +A ( @j!lPA  E rӜd8sS-%rC擟&'~Fʤ8[(n^ʽT ϋBpab5@#pjYD= 擩csO]p#b)?+ [@Uv)3~guGՙAEBzw+ \!up}:SoNLJ>1˳WT ZȮٞ] ,m!{CG0W?g~}ޡ**lƟA `ka~3D,!E5ĞVH!Iɟx!CUSBl]{sW_%$I8$`O}=V-|r֮TUX\& tk%vE1z52 `{g~6߿7|^*…XkewB\R=0WQ`5^4Z:rUALJ V JG/somh'Hhbgv3&W?|$ ak&M_SUn&u>;}o8E $.%VXkȇYu6YC<{'.5?CGQ,>8 F2?'Av:=ӫO Ppi+7m1ڊ ) -67~&@<V^qhZW}oEzy>2RA%6D[ƪ$SpF'?R'٭2~ _Z 5D(nzbi!x><7Mu3ҧc=[d؀DXu 0$л[OL ')'矿5{qoځOۚe: NvG ({i~S.LD'LaݸK$mZ翿X_W֟CIҠ 6S\R];9Sp y)E[H~s-p_ 2|IGh%61wku4 4/x7_Se^Z2f2$FP0ex|/P wi.xnd~|sΚϳ8Q:hix3>$֭Dj9$yE8D* n-z~#,޼_A’P$dG}Yy"Ҋ̩TP30sJ˺/>iLs@Rf6^3V. -wwqVMsȏCO~0Z+faW\z79E=851),ϮWԐ,nSi=cp@VL_.5N!L{γ_i3hH’Su$jJڤ]92ZB"ưjH>޿ÒrcwBŷI Exl=5s8A`[O]؇bzf%+S-fK'02&H1O[LJH f~gh!ѐ*E4SmW8#9. A{l5idv+m!8JHCYFҢN%EBJ& طSX|0o7NoRZp伲M{v/reWQ"=YߞA p h$hƌ㢳'34H0Xf%o}4{vj%efoX® ڀ!lAvJALwB{\l)کch8wxOӵڕHȏ(! VSĜ9:/Er0zEtm>F<=Uv775% 2"e=5y^S3Ocu { xn[Dq ֭d™g83nP+8l}v Hkh &/O0j0MJQZXe#}5@^M-!AC 4b$!%FpԢ<T¨p5L).(ƛ>ǯ|yFo<~s~1N8y5Dwg~Y8WAP' vtDb3Xa57^zWq`_YYT-ٷdOkQC)φrN,)TL3Ξ5ūW0cٽ6Skok ss.[L" Nt6}JˑF:~}3/$!l^&nzW /=[b-ٚ 86VWZOOP`O}T|*/,غ}[&nHbB'5B2!1-Ma0r0z< ",ˢ5`am¦۰)!e@viܰE-EZ]tBK4x_@7B'<|-HԐ^HO4xpj}eL C&I).*J?v b(*R*ŎC(t-.ea֝¼ 8no@C[nwDAG7Vm=)a&t.\T X6unbh%hƩ+:\gD / ue1ɸ<MWqu-ͺw8Gpx8誶F,t \5=Mr uw eL=8c+/کD<JUA"7 Zߝ[C[;V߻ 7G N (p8O ,@t†oB4(.EC{IP"Jflybnق}gO  z|RD˷ |0`ή6ԝVWe%Xi4d㤮:f^ G.ع"[$QU銢Ua+ @(0A\2{6Ahv(ٲ\|Y,QJmpNH.CiƗʓ2lbPʓӗ)p\1Ģru\Ν"zCr6+Ptj˺uK.b  -e^xCSQN7+5|Uxe0GyP˚{/X\ioAe}x-.NpH]W)pV@!q]++ j[^mN\YXe s܂޳E\tȩSD>,oQroBEH~Q(܎/kz㤵 9}zpX.Ev:>J'4Y:b􎐂JoA{Fm0UR;Vz==dջŒwG8!<8&Ͼ}r v0hp^c>Sp+Ò-OVhpyι)GnP6+]JEKqshuByfpO CA>F~SU`#72?S9픹rc8ȧN*iq 1:&I_#[v.:)$[bfQ7rVr֏pOlR꒤RX#6̔a`&r rwJ~ ?{e$VWPFszN[ IDAT$ѻ[AFCPCNj^fcMCƇ/vo@܈F;-ͩ.s1(3k{^Ws@Ng_h-: Q)=k"u_r:NtH 4qN#'~ow9Ny&}7\7hHwRv>8mF#m=xE[1%Ff^ġy0* )(x;# L//Azȼڙ^#S[rR} &h%2Te Q6VbK0[A(˄) 33—my䔷wwqݎs3a3U-?8C,yMǣ_~ꕑ_󦯿&z9C(WU0e(<Ρd )ڵ6I[ϟ>K9Z pLXdmF@D5{p#O!8G? èNPhij4! w5+6U'ʕ§-N+`LSjAmdQ)+6H=\u{pez G~~ңޮPۯ~O)H9V8 OomHaO$ڼw5\0νr=Un۟s?#X`6_AC<;GLkxH n;Þ2V߸k9sʍ|"`f)9A1AD؄4$ y".][ס VЏcc@pL,TFo$%Y{LVfO6 5 e>R`ع *H,~uN-<_͖Xzs}%*n߮<{P 3CTC%U<qJ^9dʖm&ޡ{x9›9wH>}}l l1}$Lz"G4ld I49㲐ٌ8_^.}b1@ >@dğhX4,Etq$ 0(? wf\>ܻ4X`RlBm)S n "dAYaKE:$u' lQchS怐m'6W^-YJDÉllsY_ bhs5IagD/Y_j0穃5Љtٌ ""!J!aJ X8+w|)[ f'ίyoe02\4 "wx+ EhwL1Oj,HL l_VI< KDDD GpQ"Ұ_Y9ڜDOQLDDD"""7 l@-*DCN 80`JDDD < "wS_p< x%&oq<8(1ADDDDDDD!""""""" y pQcBDDDDDDD """"""<8(1ADDDDDDD!""""""" y pQcBDDDDDDD """"""<8(1ADDDDDDD!""""""" y pQcBDDDDDDD """"""gIL""""""" i8( - ,ڿ"AtGXhc+!""""""rcsp pċp lxr""""""""y1xShdB 0 8(d ޞBDDDDDDD4P+(Ȁ 5`DDDDDDDDC """"""" u pQcBDDDDDDDD&: """"""DDDDDDD8BGpQcBDDDDDDD """"""<8(1ADDDDDDD!""""""" y pQcBDDDDDDD """"""<8(1ADDDDDDD!""""""" y pQcBDDDDDDD """"""<8(1ADDDDDDD!""""""" y pQcBDDDDDDD """"""<8(1ADDDDDDD!""""""" y pQcBDDDDDDD """"""<8(ɽ(|1ADDDDDDD!"""^=6 8( L""e6hP)DHQ;<#ב}q㼶CDD+ODDDasp?8(uN93*_y]_Ge3!G_.Jj*~DDDrQY!׌ ;ZXN2)|^JDDD,,GpkXB< r/}ۆzSOs:_[[`2py6;WTZZu֡mYl8tJJJ `ƍlϗǏ… x琞pf[lٳg=WOOۇCBBX,غuɲ Qu֖gy'N:'sPIc}Ap[ .ĪU`0t;r1[_㪮r<͆ %%%xsU]rήҪΝC^^\2s(.V^Ď{Pt ?ȑ[,.C^U6ڋ[';1od0ADDǀ|ш{{q%cbܹ! q,cN,Dss3`6(//ǓO>LJu 6lP; )))X|9&L(… ؽ{7zzzPSS??}࣏>R)))XbƏ_/}ƍtIMMŝwީb|嗰Z0LXn^~e|,5-Z3gj… jyP_ty+,.c6lЕԩS1i$N(v%  ;;E]]]hhh@^^._ 8|0A  EEE(--,9s]V?/ۣZZZ~z*;;NDuu5lق4d?frXuF~~ u l|;v?H6/S$Te?|+/ q}41/"""h"immEII dYFjj*.\PG8Mnl6#??_~%L&L&}]K7n\N9Cۿ?::Ô/111HMMEff&}]59s8m GQ?裘={==z4233? }ށÇ8-}]\r)MǍꀶ? N*@GOKVV|ѦÁ` ҰvZ\\l6q1 رc'x3fp@#++ cʔ)~1Y]v>|+W JPjĉթAO?T;H,̞=Ν;| &M[nů߅R5Hcf9rDGWGbڵn?0(++ٳg1{l.++ѣG]rhS)J]n?y̵$F2{`Q$$B6;Nŕz/"ET' %""ĆH|;K/cǪ-[6t}4uuuɓ+WA1~x]'7//s:7&Mӧ:F3===ѣGcʕg<3QOO?iiiXr%~ӟ⩧s/|X:;;qY+V 44i/^>~}i]yPyĉ;w!1-c NpqN}xHE/RAs{q{NL08qei??i$,]T}|)i:CWp](Cgʨ$f3egt>AiX,GDDD;᭑̫׃mĈx'UԆ`_Mjc<>>7xc>}zii)ZZZtwwwXiSNU6Lhoo(%K?!^y"--Ol^«\$q^b)^)iPZZk׮9իNnoVuڼ* :E ==>mgߵ `kܝ*mɟ~*eĩ:Cke;_lɪ04\s,BEZ!  8QYw؎\_y""N։z;w0LĘ1cp7ot|aEE*++!20k,;+++ bbb\_v1|XV\x/^D}}=f30zhp kV\t /_dBgg'␞L4mzAݏɓ'A$B4557L,#--kq9GeF jYM_'stTPPb9K,Qijevx^ SSC}y~XFŋE$d-UEss>*eL9e]k2:Lej9jde;'=z4 J|O9\j)'/_cG!nIrg!E>vnٓy plX,ݻpzII L2=˥g_5kˎ򸦦F 0dee hfΜ;wj%%%._O?+++QXX}aʔ)Xzv$ GQ'tty8p'NSܕFooW}MOOGkk+dYFSSrrra/A!o@QutMCC֯_?""i~ %_s 7n:Z1_%CfP&7U>.a` WnVkWIIIql\!I/uuulE22я~6H0X?oU ruN~Sg @'Ͼ (BDHA|2C`Ͼڃٓ!0d#"""bkgM{l6;-6ur<8wn݊gyƧKxL<EEE1wOZZԤ^-..Ƶk / !!29kGFll,ޮ?k׮Ÿq>FkWA)W\i6m4A;>##~r{'O7nv̟?_eYY>3ա 7nď~#+hH:~p; 7܀K.!..N?8}Mr݊+̋З2x`*?~)۱dDGG^׹q7)?u9xNf~*dG8q= Ք`&u|*$18qqd433k׮̙3ՎhDff&z)C*褤tB{qFA`X'fAe,X=.- nF<j.-P;wu 4i^x5 }v_iWu.mC$Ν;/w@)""/^{5ۿI%1|nM\ׯGeejf{謹1.\T{FDDx,8y$>Cu=2&2vF<{śo>,5 W̱u IDATi)~ q?=U RX M%6ac[h0A SU|~KEㄒ6۳\EGG7FGG#!!---X,n6XX\}n˖- hkkCUUzhĪU0ʕ2&VZvބ@رC'țT?uڸqvZl۶M]9v®]3g"'' &W ^ ]9|mlM& qw-uj,nlr^@#7%^gWFPWs*4V.6h͛Yf!??+t8' ,:i㒚fѱqoXuVuٳgcƌ=ۡJLL#<_]ը===wʲ*=\|YBG}ӦMs;P+c4V?@^^߯seX`f̘1hYsC=cf@@k{;_uΖUOO.\>tuu!&&F@;bVV׎BBB^{5vG$رC5%-- Vuټt>466i>fš׮]=zxt`Abb"$IB{{.Ga̙XjוA\\Q2t)˄X`̙b:uJW*|ꫯj*tMC3)|Be4suKy9Ȅl6#L&ntII 6&Al=٩uV*N)AP.`Ϟ=D111x'ϚMUY1sB_6;W ,{Aaa!JJJ?n>zտm6qy۷8s ߯[J޻w2+\-ZwxYfa֬Y0Lt Q\\|V\ܐX—T~ݥ/9֡c]OJ֞HD~Y(ۿPDQ0 N:Nci=}M_9rDN?[e%b4v]k{{;׿b֬YBnzz:x l۶ 'OD}}=oߎU RSS)SSWoʾ#G`޽j'PX0!_ 湚sbܹhnnF^^:Ν;3gɲіim:>1uH|1f̘!_wMKE]E$AtY.;Ge8a Fp""aBd>X__>{I|i't?:R:Lhߧa,(((Mca,lnEaZ}W#&Lyvv V\ P^^=j(u]Gz=~y-c,Í7!#|LvȑXbQw_|;Ђ?ڑe<QQQ>\j(Z4i$D쁈o_"l&ȸ0bظ ,D{ĉ'?Att_CԿ' 4^'-u}llwu]1JjYY6oެ>zj20~ iWpMS( <)Ȳӧ{ %$$`ʔ)8s dYFYYlQniiիW1f_ZZ(䪌G} }Ozz:֬Y{p5TTT&jުo]%˲ϓ/ZB%{Tػed_#fkۗ%D$̽yUu7aqB!95Au8 է0'!T6"Y~W9R}N\қFo  6lؠ^M]|9,X0:C)-KSS_HII$IhTҷa̘16lP?㪌sse\x `0;;&NѨΧ4dc++ wum۶Mёfm6|嗺EmܸQv_-Z(… ۷'OtIw^\pA}nΜ9.iZ}vu֜6 Xt=ӧOM;wD~~>f̘vM&2-If͚3fx,cڀ'|WhXuѣGu/tK7/"֭[N?DJJ nfh4l6[SƎ;n={6PTT䱮ؿ˺Jۗ=tw "F??x؝w2lY7d Bbu^D0Bk8DDD p`u,Y+Wݻ}3gvwh644gnjoݧ4'k׮͛ե8/]^t{ ƍsxg~z466__r%n;(GŖ-[PTT(..vqev-[v{;KOs#(t,`^1gmmm9הDQ#<[ Z|Ǵ9s&DQ7tvvriiixx;-_> pA@uuzK\`#2͂Yب[~ڵKFؔ27uT^CjS_G96W#"~aҞIHt&:ujGwʖ"ac=`ڴ^\ A}r$ H20eB6V/]y'#w;ADDǐG4_O?GNDzXp!jjjt`ԨQ\ǏGVVsYCAA;y֦Urr2nV,XiIXGG??ѣ 3f`ѢEs *::O= pa\|i[7t,Y3`ڂ=B_1++ 999())A\\$W'ٳgq(7ߌŋj‰'p1]PBlzz:͛ٳg{n.]B\\ۖdYhʕ+1}t;v ,~ L6 ӍFT F3>,JJJPTT4RCSb9 ?9U}MVOʰ$k2d\©/+Emc:s$blhLΞSm\npp$ȃ/:l6L&tttQQQȑ#Ց-296}NK,S6L/bo /GlHDDD4DDDDDZ2 @]!238hS"?}$"" JD PDDDDDDD ""!CARmDDD$&ydd회RԹ7 po- y\EBGpQ c(BDDDDDD4,p pn""""""pDDDDDDDhArcƈ "ը|@ 췮GnpQx@ jOAU#9 H!zZ,ۘDDDDDDDa$L]Ӄ"d@Ahjk+ 2󟈈(,xC}Fj HHJ!1lHNe!'"""""" !>ɨ @,hn*BB|b[P EVEbhEKsb2 &^ME倖 sᠤc"--gzX,8~8N<*L&$&&b„ {9ρԄ*qtt4n&&`X'N HHHН,EEEr2eDFF$""8hЌƚHI7B-׃D0H@ӵbJb!8 be?\}v8w~_`ӦMw}/"0k.8}˲=TyM7!33oǾ}\w{Pv|~sY{>UeҥؿHGɄYf鞫ODD4зҔ썱 2)K0")AFdAiɢҢd AD\ Z\=HT<Յ;whaԨQ8q"X),O~sG!JLLdBWs~m޽iiixW1m4i{kӳ@{{;~>oGQUUFDEE!55r ̙ "&&I0gDz4cW0}>P8""b췧Tܣ Dꟑ%47_*DħHCǸ an\imm]ԙs;>lPHSݻ:C`4vhAi&?V:tgϞE|||tbY?{,oߎ>x p(MEE??3&L˿w{[k{9""B=|Vʾr~;`֮}غjf:DDX Y  `C\ Mu4m_'B \\)ݷo^|EL6 >dYv96T(TV/uϧbӦMhnnFqq1҂o'N=|2._9ᅬŋc̙TWW{={b5x饗p.(yV|vڠyyyj r sBEaUak0] IV=aEX,X-H`Cth(Ȉ'ZR;n1n$Xʂ2+),/JKK_z6N8|>رc6oތo]``b7^|oW_}͛7O8x [|vv6Nb{A[[ݻwG;(((ѣGumٲcyʔ)}NMMEVVְ*%""bkG`x pހ 5ElL ABZZ0dX`Q@)#Ȉ5Gu4ɽ[5_?t}_ Պfb֭8t7x3g >PoS;uŋt*w< ***gaر/dͷDQQoߎ~x衇tl[a4]~?:wկ~pu>/]ԩL*O.cJ'^MDz_ʩ;~>0ADD p  (6Ke``@sU5;Yc'֍)X~4ܜcbDEHN]BTB265*ƏJnn.~b۶mxӣn^իroҒФ W:ы/zbcco7|c=ɄS}=!!999oQ}: IDATq#O4" #alEmti{ tc?Co]C Fb 7Tm(rrE#B­\ @p5kk׮1w=?mpC[/~ɓ{zz7xYϾ*s(+C5-DDD p Џd kh9oQnX7mˀٚ-=1Hc`1ẕ6AF#Dt_@WKaoO`ԨQN<F^_q}i\ +C=݂`싫p>$ r1 tVe([No͛?񏨬7}6** 7yf|'N*۾뮻Ob;, v؁ؾ}n&%P|r<#?ݍW_}Z7>}.^z%_K,{֭[M6itR˼xumذ¦McN}>(z!kN>۷c֭xǚ5k#~?X}|$ggrrr[=W_}EEEz 'Ol֭[m6|N+^,YO=~a$&&j;>sΜH}+Nsss=n[*+M&yc=ƻfY~眾{֭.߿xbv1}󎯢JgnIo @B Ћ"HG AE~]gAUٵ-" PPt! %Ҁ@z7q377z+3gΜ3sSSSٹsؐ!C*)SLjII hvok[`` {wF#5[o w1m3NblĈ!..]|YL/''͛7ϡk؎;lO'zou\\pB2,=>f0jwfǎc:uX&.]b1h"w})1˾+XzǬ_^Ί+΃+Y}=PH{6wSr umY\)ʉyVSS׿2ZPT]ڵ˪ܛ믿nqqMFA EP(CA^2 | ` kyBV pz(^ 78VGU%U^j^0PRR88u?VdffѣGmUn?~޳f¼yХKF*?#oA*lcLbYgWOLauko7&{ K:0~$ه111,tVcx%lYQ,}L[1VpֵDf3>s5V/ٰ̮a4؜9sdDEEפʮ7ntMZ,]Zxyfw}u[lq,ET*vmm-[fި9|KTΝ;Ç[5mv4hUKr[lvZgϞm%*;v0X=͛쮻]***j6c h`^vͺuiӦɮ۷o_epv\KTe믻Yko=y/- f{zͯBCCeO͖IaÆo׮۽{{~Yl7D %*.[*MC_-z1cq RLx7~%b ^*7\kA?jE (u222t رcaÆɾ:~EL?>>^裏#Jk/^UVɎٳ}~GE___l߾]Ӕ^z믿};9G}?ϲc/׿zy]dVЭ[7lݺ={4׻&Se)de닷z O=?/:|0a/111شi/s֯_oWr兿fUǎZ7ov Yx1V^T[u Z&ٲ.ҥ #۷qQcΝ8qhdɬܹ}!y߾}~Νv:lZ18Wqq1lق̙32?O*^K^x{Sd?%%o+̜95C eeobܹgϞ۰aMK#!!ŏ #pQ^z].P) oMy3(8 F%]GPZ `ƿF*@_ *K.զ#B=ALL z)}bܸqK.bxپztk*No6l _f f>=z+";X_6m3<#;rJBXNj/ӧ۝ صkpI&Odg#<7ߔEQ{k֬!C׿L>ݬ.x auqz!B]jB ,;ad9V9ɓrw۽gϞxeFw{'SXkGF=g"--f#-/ ͛ya1ccɒ%GK,;<92=d>^bnڷϛ7Oc}SR-œ9sSNf};AA-ԃ@i9hxѩ(xp103(8|}P@oV0 gT8k<z`` |ML6y UmmM4ɡvM_[[J,0K.ugϞm6uvsN,_LyG;RΞ=|[+%''̂@sxe>C ,8>|.郻ˡkcbbd7nԴlZSSZu8uuujsU555]O`6f{,g4TTfw}'KǑdK<;q駟̔M=z޽{yf;9q{ʝ?3VcPTfJd>222paYZ٢)~ c@EE@{8= S y+12Z[׃tyh磀Z`aP0$|I;֩8x |A3E dZ@RY:mL\ze67pUn_`Tr`6hBӶ 0@\|C6l.]Kbɒ%+8B|n۶j=ȢCm}IFF֯_Ç;j.+}?;qY;ׯò9rHq{]8GjÇ( 9y '(8C) rN#Ȼ>^8R 0U|}T3*7yCCr  P !fH$u&LfCGZԩSꫯsOĉsN̘1@nF#n뫐ikkP*f&EAӉ_&Nx4'7ښ[aÆɮ=vt:j$1c 鄇cĈ1$1ZEK/.pV>xyy9|OK5`ӷ< mU\-%< m?b̙x1~xʭ)2bØ1cNBZZzmvT ,Oqtr&8y$ {={gSZzOY '\TA.^(;>n8vDM??~FxϟяߏYfaСfV*ʿb۶m2(---O4izTTbĈ>|8F'|R_,X#FxT]!Mii]/9Mu*V]]ۋd.s͓r hx=o/]Fjd` ׍[ %?5/)|^༅CСmʻ K8Zbd,} 0 7oZGNN^l(^z[=LM}Gbe-O>ģ#x4K[WWפ4M~eeg*4kVWZeu'޽{mՓdwsF8x70|pL4IYyqpYt'O#Gd/nWO}{v;zV]SUU%R'W D<,t@PwŹ"ȧJ(``\B|s p`P*xpKM]> opg-H4m-}PVYv(}ƍCpp0***cgϞaڴiHMMSXz5f͚XtI \WPP; fj~᧟~=S4hу,jf禮7uim#Ҽ*<Z^^T[V;r1x`ÛoD$$$ !!%%%fÇXb>5Wuرc(YhK5˔۶mÇ~mȾ>qȑMPɼJR*U`pg*@  (E`\iˠdmd"8@0ۋ`P*8p<3gk0JN  K.uUT7,sgCA4۲Ac\\o.:~tfkmp*w䫽;v޽{ѣG#++ 1TVVbHLLJRl鷧qٜpr*:)C@yyy)--ѥ.w8۪0V=)Fxx!Eʕ+HJJž={7߈3ưqF૯rR8LYZj ZFl2|HOOeϴcٳ- i߹dq㢣cǎ"sHDRx[qjOB}[)OЛ*Mn7gqmYjApƁJf#$Ab!lf0P)B/  Z(A%8jz KE_J /2@U31-9;< sϜ9,eꫯb1c{꣏>W_}Pz< w*,,/\ =z44:tlȑ#N[TTTرc6eߖIJJV=k3ѣ6oތdcnqd8pw^Y:i$W^yӦM1m4ْ}-,i! Rp4DyykV蠀xqg8ca<x0J>^x 8J<d)8&ۗn‹@T?ĉxWddN.] hM}cf>,M<Ο?/:ݓզ%ϋ+WʎtpC6 wvba aaa';v)/;Pk.[ݻ7DVVZ-֮]+;%S.5'|RGɖؚ~g8yزe˨vHmZ;V݉ [ԎLD7W{Wfh9!Ss1qD#Gd_lZVT@ PT/dd1oooO/ 6o߾6? Ξ=k:i W_}={9A!gV|I%mu„ fm8a~ԩSѭ[7q?77Vۿ ŋfJ3f4O\^q[|9j]Ssҷo_#ȑ#6X]]?YլZ#d_xOI{1fUh"' d%7<㨪‚ Q ,@>}t4 /^4u̙dd ;f4#C@z@']?1 38?xUt0<.ׯ #zS 6o i9((AkL$Hp𶢴qhӦM8tՁ\UUqAѻ*0ZJHR21l0<|+WĬYХKiuuuFBB˖hbΜ9"#aҥ8us'+o>,N0qD\ .Dll,BBBjӧO>sdi]֭ᇥ({[|O >O=LҰuVTJՑgƍ1j(TTTٳgcٲexѿm(,,ıc'!!!߲%/^Ĉ#SOaر#xG~~>ߏ?eWAq' 1f`j VKi0:ӝ.D1v1Q.9՜|?v, Vԗ.ve]Np cX,qP1v1𤆆qJ7Z}]c{qYL8/ZɎ޽3~W~M6LgOnn.֭ѣGj'%%1___>l0O>i5O<~9}v5 .=ym^^(K_iW3k,Y>Ke>Ni[}//ؾ};On)*͖l~UkѢEo($&&gCNi&ٱǏg<a+ZכY,8>sصz8qqqrkh~L6f}>+wߙwpiw\d]k!>>i[m.^z%l޼Y\nc܅6l8@.]`޼ycK,h+aÆӘ;wSظq#CTz3zOYCÇܹsn?G;v,: &8#p17Ρ/[Be+=lE-#$ <B7(*Qq m} P@08[o$U^Z758t<6?=}yRPZZ񼍴-oh-8x [̛7jjG?:t,59agůe˖ySL={e ,,geA±fPÛ[ʁ\>m2Ѿ-J k8_Pk06aq 0^ _z eT(aAnjϗkR+:( cJ,_lt{dmhƕ_LTTT :t@^g`!++ yyy(--VEpp0qEŋ(,,D}}=Ѿ}{ލǂ d7n܈˗HMMEaa!*++0Ǣ9䭴())Auu5BBB={" z[7ɯi[ CϞ=-UOy\~7n@UU4 D زpe ʕ+b%BFVV]R-//ǵkPRR*xyym۶FxxxS\\k׮htܙ:Q ⎣Y"?8P= 1B A1&% zj@@@ր1x⪜o\?"(' tPq+PZXxw EioAs(DEE9g8v6l:՝ iZf;jڶm+[@OW\8ҖmB@ѽ{VXtٖ.YN[]J:$5%$$l+خ];# ~77WR JN!_ _5/ ~ M/&cR]0@ \T}%J 3 =߰I=j(`@/-T aP f\.uSNYk])ed']p}[={$W-ϷTir姇  H$tQ|$Pv!*Z0 z0/:Jykx=}Ρ<0 E(KZK=[iz`{Z4ww9#E﷟h8#-9)ite NKT8.E* / J F4|fЛc0#;4^ %à޽aJ>71ӂ8zFz/8ͣΠSPW@ [2p\rr +;< U)84ԣ:շ֎A7DU_ROGD{Z] xRKdYrc~V1Qp2:E],k0Oj@AA)4 *PYO4>{!Ћ^<`p.o㯥abp>3KYMc cHZ(3%xVW@kt$*Zp's$J   pͨhE7z"P+P*`BX_A8aߘ*kpq$+i0w_S7eLj%u~58Nd!Rt`b®AAAXo({<y)PVì 3INzAPPCn}'M@d& dMb…3f?`RnAAAyqWgh*j&S<SFݐ`y Z]K"~42,:   ~ O[=ŝO,cମW!AAAAV    0   h    V)8   h    V)8   h    V)8   hBr'  ;Rp!qT`T.TMhk'e )  Z ~7CVUIV˃ߕ2AAfWp4eܓ3ΛeH;ImKwɊJ2=zAAkM4 OȐ,~ۑ3$oAA^]A-Eee%~Gq̙ qZz-=ɯݻ{$vΟ?Y6_{w:  Vnd04;uoooE7n <<qqqft:qSN]NCff&ujA^^jjj CDDͮii  &lJGZ?UUUb""" }ގ;RJA i6V t / ,,j@nn.6n(Z ݻw+K7cťKpiTUUS qi$&&9^^^;v,ƏovKYqr&-!  Z;ͦpusoMhޛ1P^^ޤ ˻9DJUURSSqYܼyѓZV;v… vKLLDZZ/_H;4pA6*)~ɕykJ^ AAp1JT0D2DY2o fK陦moӟֳ5vRg+QQQFff&"##ѫW/Ll^GFF|2Ƙ1c0h iǡW^Łpml۶ ?xO#*,Յe9Ux&w_-M-!g͡@hJ  .FVc̘16kGv@1hLGKN }[`ʕh4iHԃ;dDO?ō79""nr>8}xŋcsѩS'tׯ`txǣ:ijTl׷M6q6`GV,4")O  <' ݑt#TWMGsw{Ɣ[n)-uٚ\׋;t耙3g_Ē%Ku$aÆ)7DEEaذaիW=FIa5!Gq 7rXK3i2UeJ  dT [_\11Ns5w}Qw3V!w$Z^0n8!22 QYVV֨[bZ?ݻwٳgsySSÒAc'-ᓨ}ۯ  p+yyy@NN***`0pĠk׮N{ !//@NЫW/t *p~!((Ȧ_k׮!++ 7ڴiH2Z^pW\Ahh(Ǝ+un߾l@{c YYYHOOGAA*++;"66{)qrrrp lL0?1bKcիW:sΈE.]^#00Pl:sd_UUk׮!;;MѢ)'iq:u$sMљo@@hWn:Ő!Cޯs޽;x뢰 DΝѻwo  -muu5݋sY8pzꅹs"44}4 ݋ӧO355G ą _ǔJ%&Nh|L/N;v]v!--̱`jj*:#Gb̙BQQ[g4|͛'*`,aRSS:yo߾MRp믿FAAmՕ2Axx8 q)L\e@bb"jjjdJ'[a8ݺu) ra B &8h4ڵsY^,jO?e(11 ¤IV 믿ZrJȦZڶmkןIbb6Ggoj5k_Fdd͉#Q4iϟ;BP8xyywXb,Dee%"""l2tE,kZ(,Y۷ϷA#++f o& -[S'fu%5g8m۶J@vDD{9L2qqq޽;s"##E9h4ʲgz187-VŹsqF̙3e`Z.U5!!A<>b΄sзo_<-hJl2ƠT*1`l;w) Utt:dggˬeH_nӲٳ'VX={ ǡcǎXpLٺo>hZ4_._;Z555żL4 ӦMJ*::=hiVTTs9,شij,Y"inFŋ˜+J9}Aӑr  RpH >l"%%..JRsez0닩SʖH -N b>S:Rd~dp!MB6mm !!!2?B~ VS!޲Ɏ`!bHr,՛+&D冭8ά\bq$gr}Q T.]$^k+\پ};6oތ͛7?k۷C@Raܹ7n\opEq9^s_M}Hek׮]we&ҼKe8%Hpp0',Kuuu2g8Wooơ7ϪB)Sղe2K.VZ8EEEfyt钨h׮&Ol5 L2E,"kYc ڵ#}Ug>>>5k_QQaWAAĝH_2tP :AzHH83;G:>|/tDU쒒 =z/蒲q$9((ȮS@a"E{mV&>Wo™q8CΝnw+~NNNHjEdggRRh"ϭ_SSSvw]wm\ښ6Oq4/^2ooož)22RV/,[9f E߾}EKFFklՁGlKKK󼸜Kd#GZm999jZ/%Xlkn*!*лwo  wү^5a@Űa{pami)5.,,ď?I&ɖ}H'ؖ30u`Vjޮ]; @M`܁3uRl~&wQaaaFff&pu3TF`0`0Ȗzlٲ ٳ->vvjquU.]qlt̔)gRِ]ii51nJxјQ!(ퟤ<ǙFkr5kֈǥwLc07Ȝ)/[ly'qpm<[nr  Rp6c(**Bvv6PYY F^/MTWW_?9Chh٤1aSرc8s  hDDD؜({3gׯ_G~~>***h+S<իHLLDmm-RRRPTT'x>>>Mek`0PTɦ4J`vɓHz)))Jٳ=> GHO޽r8͛7e:uBNʧZ t:^Bfddpw cLr|YΜ98ZkNVgr;BA)8<$رCR;_.;!!jShyS* 'OƐ!Csɜe8x ӧ}i֤UakpcP(طojjjdikj AAA4hRRR̖deeVFC8Khh(O-[N<1cȖ.5~!hM٘>"t mڴAiiN*blΝ;㥗^rxRX%]ZZڒgwedd 11Ѧ#[GUW0m<ϋ  HǏDŽ :e)_u: 6m`ĉ0a7nҥKurr2_\t޽\=pu@8??߬Ə=zlqmuծ];)  :PLMM"dzI}b;vlrRe qjYqH'B? ͇%ٴקTUU5QRaС8pc4}y\pAرc*V+݋'O7eѣ8ޱN v0Nk/pQQ0.]?e4-cT_m6`ٳgfyu\vܩ9KFw^{^{{;l٢|AnǶm4?A_8D,[ NRW߲e 򐙙 Qގ2Fl\xG}}=f3L& Ɂ`@gg'Ο?[9q*.\|ׯ_d[o3gb޼yHHH:::po,ׯ_?uVNڵkg(4:Չ[j.]Wfܹs}Ϋ@Ί, o,\.]_ ؽ{7JKKh"uԃdBEEjjj:ݎ#-fn=7A_Vot.[ _}Z9uTt:… )^,,,T Q(Z\\ܹsWZTTTMHHw=b}혶ZߏW,]@WWJKKQWWnݺuNxKE<øy&:::`2sNPG8u <裘5kְ)[&*'ׅ-eqJJ|SOI㺺:uxySSS1!UUU9aŕ+WE/kQ裏"..NبN p-,cظq4;{ fh<_KΟ?u:6oތO>⽲,#557o7u),;@m8yyyj0`^skOe̟?ӦMÇ~&`LL |I#}QWW棻LLLO?-[}}}8~kڰaV^wo `pÇcݺuNϻ뮻pu˭[Qvh*..v]Izz:͛C9sDz"2yfōI(1o<(((zNB+;[+// +`ҥN̹s…:Z&M{ш+WW_Eaas->OIϑۗ?xڡt(**RM5Be\xmr^5M^9UAŋQP:=qFKXdb… /FDDts[rrrꫯbٲeÂ)z/믿Rbsŋ/Ei)EEExWAԲt*=6::idc.8(**/4O)C˖-+ޫZA4_lɓK/aÆ öȕeY=/v/f̘ 6?,Hc0SOf'>>s~_ 33h݃ׯs=XU`0`Ŋx1uԀ܈B O- :::ߏH$%%9-^tttHNNV4Lo>7PԠ4LB?z=<,E$L&DGGkv0ewX,hoo"##1i$ {x| 9l6`X 2~:?9rssG}NhooG?F#F9dYGv IDAT\zzG]y{fttt````Tik}/2:::`6aZu` Qa4:,ιs}v@ff&^~eoT"99F#64zhoGEE9}qNLHH{7Q1iҤQ]X5|G-1Rzo? ezu54JC ** !]'SvP.])&&& A_֛rxg:'Ox>(Pƣ'""" %"@ŋ\VVƂ{ ^#B}/0f@k18* ܹs1NuD[N/ N*k/ഽDk9px,>"""p7!n?~qruI(..#9NXtY^B0:ܣ]; i5jddd`!r{ĉG̜93(N@`tT=ODDDt; )*gׇcǎ9yELL:G(esr@/X=`vC9@9w皘|;8w6oެfG(!0=l6dYlF}}=XvS{i`CS]|}/*xh4[vuuݾ$I};Zǻx;6}I>eb4 ֭[UV]1O) }aǟ6m,Yt H oF7`(L+XzǕF#>?Ell;KmTŚ4ֽ=XM),FLz5CUT-x'`0&t}.< r>00BDDDeY e hlld,ˈAFFM6'F >|f3g ގ[SS """PXXD!"""=NQ!""""""=8„B.$""""rQpM;k~""""""0g p~ODDDD4DDa =8(1ADDDDDDDa""""""" { pQcDDDDDDD """"""=8(1ADDDDDDDa""""""" { pQcDDDDDDD """"""=8(1ADDDDDDDa""""""" { pQcDDDDDDD """"""=8(1ADDDDDDDa""""""" { pQcDDDDDDD """"""=8(1ADDDDDDDa""""""" { pQcDDDDDDD """"""=8(1ADDDDDDDa""""""" { pQcDDDDDDD """"""=8(1ADDDDDDDa""""""" { pQcDDDDDDDۂ,~͟rF#22Pi輑9(4MDi;^廷&B@+AF|R~$ & ZHMMEttʕ+Z#>>IIIc6؈nh4"..HMM(jw8vo֦}؈&j"** ~'| p:)mr"yaPn(!? 1[ocHOONo0L#v^y!77קNDڊ/eeetXjV^gqxt:ñ @Eu(hkC=)i1gt_S @DDD p 3QG,h]S{{;;#Gwߘ.OuuuxpTWW'ĤI>w``;vvd.\@uu5z)L>=`ՅJիA;f0Zlٲcl6=z555# a۶m3gO~Q]>cXUk.ܸqC9^Ϲt>CX,u5{Xr%6mNk'wKP[[[䮮r'ݧQ.\@UU~i nxScp}(Z~ &an0j}X3sg#ba17~s***PSSDQQTll@J@,b֭[x" JKKЀ'xӦMsPfϫ[nU;))){i===tۇ~466⣏>³> ^ywvجX-Brr2z=QYYj[nūxl6RxoQev vmx=NTs=1a`2{W^ATTrN+V`…HII}4Z(--޽{a2`2? /0uTYv,RoСC0͐e'OOS{TTRSSjkkQZZŋkv־KahL<YYYx'OĆ .ko6\٩~]aTQ ͗Vک*..ּÇ4%n65៟~zAH""̘OVZ@3XO !V۷o8s9ZZ<1iۋsΩݰao%srrzj=v\}W1c֬YgH ?aÆ կ~'|z̍7W6o𲩜c__/<拲rsdXp.3gĪU:#y /`2U7֢I}裏zm""֬Yb7H|ɒ%nY1Ug}}=V+A/Z-ZV+_=s~ZN|ׇ 5mʃkQU\СCj177O<:"X@OIjllT@VVӈwb y7ot g<תIY#??XcCCVZW͚5y,\P}ͺyjyjq3^{5:#( C~މ+ Hn&9J;?~\Fpss3*++qUtuu!""C^^Ӣl^.5uר(!ƣ x8~8/_(͆*TUUVqqqHOOǬYֳ]]]F}}=L&, bbb3gbƌj'NKKKٳg;}uiiiWwhoowK^:^֚| n%>tLߣ HNNƪUvteϮ%55)_چP=0ҚzF%S"`1X27rg1 PsǑ#Gl,'Ny裏[_ Ν85nܸ> 0@8|QPPݻwfb ,pz|hjj8ŋqA̛7>SGFk I_b߾}^.]ÇGyīV:ugddV̘1C}NLL0gw[tty5|ss3nݪ>tN[&_׸̙3DERkvVWe`˖-jz)&x'ʃV㘦JKV FeBEEE{ Wttz455A$vEx饗<`ӪFZiHu(o*%YD5 /(7qx? le.̝ !1ֻl|bb"V;SOyF?X̙3+W p?۶msz4FC/^[nC\\f:Ȳ?ǏwɓVxSNA@wwSbn_6u40;6x NksLaJMobJyTv va[ZΜ9sXCaS L&ݽ8]y.]R+SQTGDD bvNсӧOcŊ^6++mzZ Ŏ}7=oܱlrޜHH0I*ڮ•Z:ϗr($e@$ԢS]"""b#h@5ZZZ҂T[śhf͛7_Z r9}[ /G]]\۷[x1$''v;jkk駟MM{L=kw,_\mKz|ghjjBoo/mۆ^z7Z 2DQԜ~yZi_󧤤)6鴹{?ƬYP]]kv|qX+_"##rJSvȲ+VS<<8-.0w}7>3fs=Okk3x7oh(𥞩˗PXXvvT\pSN bk׮dyxGr8pqau=d[jB+ =}; VVV j$U up!A Kd;U?&P ]GoMDn txGVFϘqjߔ˲2ܼyOC*2h"ˇM+)//W0{q9ǽދ>ȏ+Wt}Ӌ H&e2k.,mڴɫy(4iWk^Ȳ6_F#q|'jDz Fqqqꢠ{Ap n vRPlڴ ʎ,|ڡ-**Bzz:l6_nk6;?hcWxկ~S^; LWWك={ ##9s樂Hcm<VBDDGx6Ni5RRRԟ33e~ͦ8AP;OtRCʕ*((PX~8Y| :Nvo$V+>ctvvB9@牷ۗ?yuap/_#HFɳlq-塻[*  ەʕ+xwa6aXw^uq@y<4@ktg?CII <>͛7@jVV/_Eb(ʺNe/Vvt600>yJpCm6C28MRQ@[ADDG1PP{j;vr P[[=;;{󉋋Ûo6 tp1K_$GUUuM(AoӯF]FɻtĠn݂,/ڊGyiU 1>SCjj*xSvQ:4''+uuu pXiZXf5(,,Daa!:;;QSSrTTTiii_lذikPp(|:cqfq117C !ł {0\BDDDŽl5g8~8%!!A2"ǡCat3LqL/ofjhG|/RqO{PCGűixᇱ|a <رcΝ;fܹěHA,++î]?я0{l-<%_0͝6mGElذA]dhhh<8Mm؉nkk*`s0q㥗^BrrZ_޽iTKR\ bh幻̱Z*}9ϑf(}rC/I|;_yM\Gj[CԨ56\|EF]gKƹ֢# 1[:na:RA9Zux衇BrP1RhV8>Z- .@Sœ7o@}}uf|5rnO"""tSgC0GyslY~rӢYz-ضm)U[{;"DqQ>_"_p6t}8m#Ѐ7n]ni10J\+a{-^ڪ.|qnݪ~n:X5(E+qԂi8..ks-{1UbZ$$$DS__jfvӧO^f,hmm .1J+֯_湷DU7n`˖-yM5BsK07y*u |NCd,a~ ITr-""{t;N,8~Л:u*rssMkF Np1֭[?)/M>V'𤯯)[na˖-7Vws?|Q 5xblٲE*j*}^WԩSտL&53TGzXp۷^^wڙ%T(yX8湷[*ek]wc<}H$C/I"ZJW CSS"mνz/"""b!toZ"ፒ իW;h9sfT&A>.//Aj2NMv #KCCDDjzzzeY\\ 6pB/:'OvJ@ˤI755yu>JNul6c֭ ^׿˲X+++YYY<6 8  NX,N;/ Gswu?k444jhhPÑ*<*` }KW"*A'EAm}cZDDD pLhZSRݷ:}x?qDۆ,8}4vءK,Q555믇5v];s 8(((P>{*#@~~64ƧL)S?uH'O-,,tG__mۦ~~>~aA"TL2Em(ˬYԟO>WFi~>O:/[Lhuv+**͝;wĀ/u0sL={œ3g8= p]۴t'[^=x(P vdzŢ (6]e(e(g:"ރaj"""8n{NS:ݫ@`{{;lvlFee%?cΝﳳm䠰P;py̒͡$ѣرcۇO>d񲲲dY|6tYٳG}rJ 88wܰ$ ˗Jqqm6vܩvgΜ^_neeeؾ};8`?p/g6KcsMl߾>p]kq, T}Z]"!!7nuPBŋ}*ٸSNs={_̝;@kk+˝)S`Æ !U8RFwv]]5w\ČxOq*_f(8D)~ΞwKdȢ BԋO| KɀN6뗯ij?84vHDDm뮻•+Wp%kq߿RSSQ\\PJPv ,6ڵ-bbbӟ~! \M<?яJt?~mrÆ Xzi#"~?VP;w]w{u۰u\t?x:)( }fի|q:;wbA__;iii9AYc1OL&Ӱ|Jx湒Zy.ǺJ=٢lK9p\7)C8,=w.\E"·c1DY^n`L<,Νc Te#"""8&,w '|NѣGw܁+V8 6HJJBBB1m4dgg1y'? piuȳ,]+Wtuɓ'㥗^©SԑAEaժUN(++ɓ'0ΝUV90RZIn`ƬYP]],^X3MAhďcĉN5_,X,={gΜAggddd;ŋݮ] NCUUbbbPTTU~xq :uj4D,Yd}㩧Bmm-.^rtvv:eX` 1s̐m>౮#PX\?=hT]يr\6th)i3`^J&"1h)WN""" r(xBnG[[ eOOL& "bccDDDDAhr ; """"""=8(1ADDDDDDDa""""""" { pQcme1o aܟIC=&""""""8$@/"A ^T"Apz,C_ZpxւY V zAp#Q ~ xDDDDDDDa <T~헾.v痍ӈ63dH"""""""@cpm5-]3b߅].C>beXtׁ+F\BU9bqu@)]N;>( LEF%)NL7+u ^% uhmBuum Y88Dh"""""""q ޜЈ yhaQ܂ dnk۠c,0 R\JZ{V4Zg(!юeypW""""""woH6vB4_o߅dy]FH DEaNqQ,_B 6|h2R C3J4FXVX,'$N NM!""""" *lN}sih 5!\zKf kn2ġ޽^ni|}8\cbpZ!׮*Re #:A;.a2`X "LƷk 9h Ju&U"G8O,"*H@egOGGufEԏH+Rc#!:욢Y}QDf.V^QYQfE' QU8۪oCYu QskE5@ AӃDDD$ 흈LIR` !:(DDAOO8##'Of£{HKKc-:Ṗt1)0,rYJ1! 6d lj?/>l2dَIV3YI r:.LNJCҴN?4C x 8 nXzq5M0i@DQƳ?. 깵kQ+x$&&~{>C#7Z]FgG9w#;( q"" |/ y& ME_{+|F'mX)(Bs$n6O?Xr9ˇ.ح0:َQqKeDY +}u:D68 @%@Aoq䗈O”N@jZ:RR1XDD!ce Q'I:`B8~^$2Ӓ%O{ koyp,˰C۠fN!XP}SE߿B:r3f@AA<;wtzxbj[o{"-- :.\(nܸ˗d?3FZM{3%,X0bٗ6 .-ƴMTxp,ǂ nC}E."o,ʛł_@wgHv`,o :ֻ n^VS.ah $tHLJANn..B( u2,@Bg/Xj׎~6@W7 ' ";H=b  [O/n CO#8%N t1qhoCSeW. cp[o?V%}Qǟ~)M6nW_U;v .\@ll,k6A /ݻ}}}7&kcǎ 111~S)=QAm۶amRkv ܠ p"BE)YwUgq<Y zHo"FEօAȈYa'2aYm7qi.6ӡ7vN^@EI,ݘaҍ(t=H1t"`%H Q pyDڑĴdрɂ5Wk%ꠓD6ߊ8X1ٳgף^ "^WÇ6^'" g7jhg si81luXn쨯dZ(D7";M;b"X8{pa=tK:@v2d.|aʼp^4Fn8ӗ0φEA?crBdk:;iId]o, ::=Dt\h  }LV+b"2ƠkpQRC| o_#8@;wTdee! HZ ǏWG^YY^6)2;6.pZ]?SRRdTVV^pX݋{,-- 999L"8fp͋ b|Ԗ, F\C$F=B'!=)EI Ir:,Ĕ`\@54V##"1^;[ % hهΎ[H˰#s. *Z! $ '#_l]0C1ـntv".ڈ]AYlt۩aSOի0e˿  ?O .`ժUo~s[tqĉqyo78rm22xN511F[CSCrY~" 6̙#Xݬ KÆh=. P2H#4z= %4~]4!FӍv3"#b`.$X~ H YQ [m0@IE 2&~lVtl@ˈth_Ȫ$ 1DGGw~߅H xcOb9Æ[h囻t^>HJgvV9۔sw,؟ۡ&xlN bi*f㉟́!Rz "JgAނӳa ?6l 5c|'EB/Bu=2[Hnh͠ 1hތx,-ELR   Bnc+Ȁԍ~,#fRR3 95 @o$b+h%@{ :ŁntMTXVZ vZ}x#_13 {sT}=n{Os>𷜎U1Rj~<`~u mm~n{zOZ#ƪ__CD@GR <˨0> ݭQ&%"{J22)ڠ4j& XcY8Ea~(R<}u:g 5cJbA]}%=VDLìف_aNЫ {ȺlHB,=dIN`VDDFê$Nv2 nZ IDATB$ɈE!#&b#.X)(7VB081=Z zV0x@H]ƟN{Wzd4× T:Ceh:STggQ(|. FڍE`۫A~@($ {[ 6ɽ >c:Q%~$Qg{` I @L|fΛ!:nXO? 7$O'j!mr |1R"eT@~Yi$Ȳ08$"2Ad Љt]n._ C^an8wrȃ ܆}}}hnnF{{;z=?{e}OzB"" (Ҕ4?u]u]]V]|%"  I =d2y LL2zO1555HMMEZZ222b8֢UUUtn[_mw1͆s`0l6#99ȈJ %%P{i&rqqY1tdffBnjз] q\j& ϟGyyW:$ %%%^TCnkjjPTT䡧}=KQVVA".g6 0 0Lehގ'^>edd ''Q^Dzng*$dsbf!==h4A]?3"m$-- YYYQ]5PɄb4;Γ{'2%C'\|:^hsq ;vYq${  :6٩8ƄK`HPAb@Rj&:vVqT=[DR ]'C2(>3^ܧ?U&tYZX%5840^DIZ(0)$u`Ij%:X-58w:9BBVXg{PQ8 .7@׮];v'|O>tYfa֬Yh֬Y|wxם;vyV_~%֬Y+WZ4 Fɓ'cĉA سg>s|=0`Əɓ'龜gz1h 9so,X +ӁЭ[77tf@wђ%KPQQ!_;wy'x3 Ilق<].\}߾}1aq^wĉ:aWΟ?e˖aժUزe!oӦMÈ#vv>G^G^^-Zsɾ?~<ƍqATF|0|vZqzٳgԩS0dȐ<,]]wF\?}9 ~q7qDMn߾| .]f(mg\+Vqƅ\CΞ=7|3h9hLqQ,^د?cǎ ;^$a֭_V;DQQs=~'N`Μ9κ{GpM7_UU&O,ֲedI'7n܈^{>w\o{EcY G[ԓEtRgz2xjdXh,YǏ˾­ފYf9^x&qg0P9v4~}$dƶHNDjΫ]yj_e\\=si,.Vͫ/_<-껸\Z5?ǟz7z>d _S秌NcWs.Y8DI28F [kG۟|p2#/7lذʱg~u,x/_kii)ǂGRR׸d xmou_[-ZxdrF﯍QTT'Oj(FEl6p^Yk>ިO?4WTAÇ#GDΝ+O?(rW^;gΜF_ƍh@"X… `>G=[z3Zz*2}aAcHʙ.,,(>Zk=S+AΛ5kVPmܸѣ 4;d1?olkPǻ`d/w=I<ٳ}wԩE&seʕad ,)))A=ˣ>ʍF#4hxAAAzvA0>9W 'GM6۞#IKHhPJV8 Њ5POA@CFt+ݏj*).0>C1dP0Th B q,~KPp")Ifh>m8z͝N[++`Y!260p%2U$o K Qu 5KAjP%,=U\C8e@P )*6'^Kqq1O.;v,=8]?3͛7_u .`رx7Guu5׿{d Kݻ1i$:oW֟;1b/_ɄxO=Tf#<F17s6lvqƍ?>a5Jƪ,'_zhmi[oy՛sŠh4iΟ?4'gBə{91rH2 VpmaÆ>Azj+W&y;v}3fLHcw$~lkPƻH>ר0s^+6 F/Λ7w}7zz 3fӧC Ӿۮok\ř3g=ٿcF! تQuv?J0.L:}tL0PT8<{|(--hh[83n;d)m_JFF Cڞطa6RmY pn-<;^)^.Ⲓ3f/mҔsSKUfcWNf졇׋hxyil)ʩSgɓ}ŋ;÷o~qS3[_'ǽ &?1?=U^8u2Sc_gZ='oZtYqoԩ9^Q;yBY"";v,]v|߾}>9rիC V9ay*/ZoO>Q vw}FǏ>SX~ë"";wxfènCSRRW_}]v 9ZlH0|^7vڳgG;FƒI_z*//g&Shߖ-[ܿorf͚r>gˮ^peϲvZ_tr%:ebcV(4lҞwE,a[nkYYzO'XWu)ٿm^3_V@4EGPug*: D={ @bx}%(`E֙Hp{R(8R}n|y8 rs5ZTzWZ,lٲr!2 i~0ghaQHYQu EŰYDp!!- c)8`.fEBVgA]yd0?>#I 55Z={""k׮_|<|ry;wg}4籭[zrcay|f̘᳏zKx衇d}QT+W_V`h~]?ssb>Csss'Gaa!~ᇈ,˓}{cAP_ӦM< ;f͚l0ưw^⋲˖-ѣ}wUWwߕ{罆|^*=ZEm7=5}tt:^|FSh߂^텽{⥗^QF3z}<,P|ѪU+,^X׽ 2rHm۶/=|r `ĉQImٚ?ǛH$T~>|Xvl|ӢE ,[̯4%1j(㋷q۟>D$ߏ?W~޽^Go|ؿѠQ⭹FwT `{!8M ?J蘓[_^@6&4^ Azutp&3k !#I͓ 9U8nCeYl^`5A9G0P]]I<?uuχlo^*E]qM7Xӵ0+&rتPs IV@`HTk Dka5 E05I޽;^}Հ!w9998q#"~O<}{=ٱ1c`̙s hӦXuu5,Yt;u_CFJPm4am䮸}:u$ Kv#Vg?>O4)(n~%?ٳ;wcꪫd%uk+t-(lѢ_ޗ]/ l555a)_efzGC+t~>wO9 twqGDB^s5k} Vr~7nL>ýM-g;mq$l,?\1@?OTpcQ9ζw۲-Z[o}طK`OɭTF=PZ*V1$Rs-^4<a@yz', `l .X݈rXE*jZ}YRRWa(*3-UXS Pk5P(;M(+8"++FVBaa10?0m=dݷ 'Oʢ7`ƌA-$; EyxkʤSRROȎϛ7\#<荇~Xѻwog~AâEü?3F;00 A7)--ł dU*5k,"@+<#Aˤ{$7tS@S<,=嫞}=G%%% ;Sv,X9s!z,C2Ӿ}{y|޽8{m&Kꫯ"11ihoܸg\(J 0 $9n ěly{.wėlśM֔߱}vٱ9sKMM: G8:n;sqL+dƮ ];lj,P0Q]N.sA"A)Y S*:&jPQmJB^Dy+g&yV2 JS3! D 溺e8\;CYYlB7:z/@iiG(;3ju^mŅQqʫB IEdjmG\>`qͬ]/*79sJ˱k"Y;wW_R?3f |AwOѣGCӅ>8Fev9 rw1|}o߾>X{VLP租~}ի'do"k+ EoCo2=-܂ٳgGLOyh=rY32{!!Ҍ;vr_~xn:G;bҤI7+V7)//ǖ-[d.5Kc>e+^m(#1l2(=:`>r>q>=?/'yqzR5,玢pπ(Z0Pjm_ *Xjj!p+ 8" @MAئ0yY˜"``')uuu>(G֭|M,^ckDX 5ITcPP 4¹B.GH\@mgt$] fk5 <bxw;`5ozݝ3LMm#ιGx7|QFaX,!˟!I#555hDmmm2P^=!C|.o8&+l۶-*y eN9՛}UOqqM7Ɍ;ถ7=ՐuݾșGuʙkaڵ5j6l +C%\}tu>:#f|2Yn}yPiq'X[K Gp8]2 b gYv6Z(frF)[K6bݑ$I^\Eb1AXRq@[gaoGPc$ 1d6˶^_79Aٯ%{+P6AQ6HJe6gPr<u_|L0cml=kQ}d*gΜ}n߾}D&̱'BnRD 3 -o eo;v,nvs۴i6mڄ-[bĉ8p 11L駟uV۷{Eaa3O @㾝G\qu޳:kuSwuTaaaT&l`$[C\;v,NKF +iii|x뭷;l뮻s :*ʙ`tͲ717ك9 <-z1vzXj]6~}|ܐraѢExPPPh`0%jjj|fc'1ٿZ3w}MOsyXz*,&ZY0!ru ,@˖-#G;:&Lp 8s 9tT0ư~zy @eĉXl`ժU\ҥ t:$TIHq{X%L"6b euVlݺ5hv0-h /7އʀsqpscnJP|TZر(ƭ`J P)` >׊99`2U!2T*4 Y"]`dCͬh Ab( } Çh4z }[q&-gvEV\\t0\ I/y}DL% p`ҍ' ^/gu sueCIdNk_UӝCC~pրGscx}:7rssѹsgt:ur ݍHL8d,ֿʘ wz]{pT8urLu3{E6oŹsN<űם.6n܈s9?_pA1~hGĺ˞^XXw,Ecs, ٿ\D4Q UpZ=$Ӫ-48_fM =dY+8LEV1 0$ h5jW's$!35 *(IH)CaO>Ѓ.\3g --P#9p8 g}S]].\ƘlBLj TL:(ܪq@%"CEQ5Nmށv-GɊF_ꒌxݡѐɞrɺO@b+}^xlܸ֭yfl޼wu~mf8TUUo%~RTx1zht-ZX?zdggGՈvj͕OK.]kHh@ȱڿb5L"6M"ݾ̗+_5_eoU^9,`KMoV\|N4ɫa=n8W^-[[nnC*ޜʥ(=o!KZ=7qRط!O!@Kՙ_S$=zg^x~LvB )aT *X&Q+P\PYmTʆz`Wt1&ZL{oabpN΁Ǐ#!!۷GFFڷoRrH}  ]>KGum KK`YV'$&HAD $f!)'էԐdCrTp'J}'xrp[\G*H>}d}aMoۻwKr@;t耼^{;p 1bszM&n݊Bv߶ZИG-Cy˖-Qm;J%%)O(}Ҕ ٿcFp97GM$l`JP]gGr*\ueW̘v;lj` Ph h$`\'/UXLF#j34B)j*Z Z "I@J !6~* 59Vlm :urqHMMEZZZhA`6R`4^ϑ00L9995/)z *XP HM:} cQF9lu@hu1lkT܅dӦMp7o\COvW\QHMM |ٌQF9FVTXvUW]%;g۶m8tPHׯ]LII {XwǝG\OQ'$${y ~tC. 85EF}w˦MpQt9n5s Gx4DzK.AG0zʙkmu7F\eh o-Zpnwɶl޼96m`ذaشiO{hL 9)/{~4"ݺu}>p<5{ǽWׯ_IB>i$ gB n uXGlڴ ݻu왓Whe!}G 1(Հ ɼ-q,4R^$E8.FqGp0/>$THIT 0.#Մ{A`JǞ(99yENs\LVch׮RSQWWՋxvMdDuu5*+ JBFF6pQ>eǡ%V8 (4*pl[l%96\}ղ=`ѢE;wnH1έz^Xk׮k[ X{oPݻ׹.'Ysԩn&|727o޼aZoʎ͙3'{76GgZtҹ6m>n.k8ޱw mL={K.8|͛t|jժNppw8Bc]JoQ;v =eoȎ͞=COEb@$n=z˙{4MDj5&Lwyn:ɓ'ͳ5aO?u&Z+Sb<ɫ{y;z3X=\~ꪫ믿:}[iIRG տ#Gq; 7h%*d 葒 \ރ?^o7lD1 }F.2l@t-Us@(! 9j!pB60 Y^ÐRp1' Z():cMmЃ0!A-[@QԩS8}4L&JJJ`4( EEE(--hFAff&ZhsOj!V!l6QPL ,bSt?Ol۶-<71_f,+>uW/ĉ}?G(/>z0s̸L[xϤr:0"8da׮]ݻw{CWDF/c֬Y5>Ct +V=p[rGco/'e4hP/oFc5 S]omVjgn yyy!' qz~ץ&fcp g+))ok.*{{۱!^=? 51SO:vo~-`l6oxl67Wƒ%K[qqۿ1=%4>YI }b&27_-Rˮ@b @P+ V 6p23F}W$vLBZRt%HN'@0y8RRRpYUVPTt]^Zbҕf͚yBVVѮ];t=zBWuɑ%)7E!Ӑܽ , k3T0ׄ]i^^wևhĘ1c' ޘ3gG8^$[o$8qӧOJmm-?ac[ƤI~ȑ[eǦN*M-[18<3ԩS&0rHk<:wm矗}M75 }ɂ/;S$,_CW[Ô)SC=z})ӧd <v́BoR4hql߾.\@]] aL>cRw5oTP4rM$%%ѭ[7<رc a2P^^_/" 9]tF0sʲm6*6n܈]vakSL%&u%7ԟ^… ]]tNΜ96l@q}ꪪ*;v .SO6CN}9{#Gʾ{g1n8]N±cǰc,X^{-O6F`4Wvv{+VCgر#杼z5}aa!(SFѧbkO<oMLL*gr fΜŰZDZpB 2CΆ  t`.]deaA!4on'Ns׻vW=+wG8cqn1YݒՓ۷oǂ 0tPL>HP*JJ ^{5ٱ{ꫯoC9}G:t(FgxRǸ*;m>qQ)s$pdƶ-gJBUP~KXPc!x? a.!j}9\?*ARq~-r.F|>k333ѹsgڵ ۷Gbb"?L裏d <>(6mڄ-[8={6:e|2'??#m$ۧk׮ꫯpmɢL<L_֭[euW_᫯{>}&p0nܸF_3g?g{۷Ou=4xG4Zrssvڰb 97G[3yl׿'|y$28 oƺudnԨQ~nÇZ^_W }hc))tW=۷W=ٔQe3~xsu Erke7tlp8|@Oc֭q*#dƾ_ʄJ_جjtD n9:!9Ap."15 W]=de &SN۷/z^z᪫B cF`Vd{Ff(ՠR neNy25"7|CΝ7য়~ƒ>( Q܇?ǎ]w%?٘F;v,vލW^y.]`޼y_*;믿ƪU0a;$%%a֬Yزe ,XsK} Ҟ1L6 G?0aҰaðxbTƪUh"oIz=>۷< T*noE~}I׮]qFZ Ǐ{ѠAGa!m-F;wOlw-zz:̙0+##ׯmJSg9HuСk|^Nzj֭!HHo v)gjg"g]0c 9r=G'2lٲ%2C=dkGscw IDATV1s `y^~S%n䠡cOғ:衇 ZORNO=v܉;6p@,__~e3(###xL}JG.]"\ IP]74or׋p_ O0Zv?ԋG .ezA-tȽ*z@m(s5ùX8 З[Pw~iV@)ٗXLӁ=5^EQQTTٌds!ɓ(**Byy9, RSSѶm[\vea[=(++CMM RRRN:!111ju+;kN>3g`0d2!!!ԩ2229sƹMRYfܹRh?ıcPVVZt\ve~ >x>GqqsKשּׁ,tڵAK`BBBq;)`CRSSSO5EyھQ4_:wWClE4o\&$[^UOfԓX+ii);l6CuC dh4~ #QGIZZ:tU4G#7~wpp\p"&8g76RpZD].FnSS;7}pS,=s'xK 6pcHHFrU|PetR/4UG{7x ҖT 7~K A|/41 ̨3A:r lÅsvJ839pQ*5Mў*ѪKM/ KG7P[(x$ "xm"ޕ %Pf6 h~9\`5\X-j,fV cPiZ PZ=@&L0ݹ!&k4h4E)"l6DQ$IE 3RBRRܶF!KDѶm[ 0dB1l0L4 C eADn@BBz-\# C 'q΁zeqQeHmd!±e*8 %,~Z뿋6q(M}O"AApp_bo~_4%ܾ?AAAA*Kx $           "dnAAAPAAAAq%dBˮ)K? )_%{yf:hݺ5RSS#.rZzN 5V+t:5#ӧ4YNNNFzz֢Ũ(jHNNF˖-A !qq!i^ޞSF\W5piH ݎ]wPԻ8r3A98ł!O4=/ ;c K,AUUUs222Э[7tm۶CuZJJJn:߿ `РA됐(bΝشiuRثW/1YYYAMfH;$ EEEؿ?v܉|Ν?m6ઞ8HMMҹsgיf9Mw~I4}%/_ gϞŊ+P]]r#''K,СC1qDzEQƾ[|!-dc}B*24VyOOƌ"B@=_ᇝqbjLED^ W/Udv6؂]0y Ɔ ):  <ˉjZZ222ض6((HsA^&UUU())AZZlvv6fϞ-[sjW򔖖믿Fuu5cرcѱcGL&TUU̙3غu+pZ O>jal+7nT-fn0 ۶m0ͨƲeK/!$$umZ'N %%EwhtbAzz:RRRlR.B^.8{,:`1ڔ 23Ab;,p07'} "]  HLH"{#**zIZ#;wСC5S__'Ob˖-(++CYY>s<쳈eϨc 111X`j{ OaX 0@s&-GqX@M6h߾=>SYѴo>L0e5-+㑛렌O?/^t7۷Wr ֔Ktt4:tO?fNv[111xU׀Y.-jEII >#F4YYYؿ|q{ژ4Xuuuۘxn v56 ri׮Swƍ{Ebb"z _(//w4|JjO=fHHHg}&p5ViM9~xZc8X䱢-)Eb-WpTmAeaf0Xu#p5?QYrAmH fJSewifpVVшCvǪUd[;vL>0a[I:tQF=8p˷É*Ǐ(.O}}=&&&L+sz%?e{zi꫘;wnEZ11Æ SRR8 U{6MrqqqFuʶW3fpH1uVem|$+YSSjۮXu:pO-/Zm~r̐~nV,7[)9Pm`(0p̷ڭ 8~) -Ym   Hq KZ#9J0g9jիWq[F٣$;;fm{R׮]5ۀ=99Y0+--U^[[4բzeSVVFh4bx/cȑ*祍CҼQrIJJry}rrʟ$% 6Wt]RyZMi4CcҔ4+**ڶ㦳vh߾H۾<婔$ޜZ_ȧ*";;[vj?ViW޽YYY}mS`0`Ĉ7tLtOkr1 5zdZSHE?A(,N  nB!M4\t 0 E׮]ѵkW /]p>}hfN*gTTƍg 2.X,8<Ο?|f#66III^חLɳPVVm۶ҥ ַ'߻uSCM6 Ayyh /++!;plYHO؟z)&e}=HKKCdd$ ^.:kh B0JKn7㩭լT>}QQQ6lFcڃU}{(++ld1{' Dw2T{=kQQ[g7 򩫫ہt^1tUӧͱJEN۱J O?+7J9.08v>jrC'n@zGO+ >;{]5DW!%AA6}vܹᚌ ݻ=zC=/776l`{;ܷo_Ͻr劬`HHH틍7b\pׯG^^j!OƎ;УGL2m Q~lٲaa ".ܹ;vă>\B"ڶm+/ UMoY[[ZkFAA-[v}†*va*pYy1goaDw䨭uy?,==H?C`` ϟ/[yf]]irߘ0_zVխB1N^>+ǩMQ#4qLb0oOZQnloSJ[R8C ???YqrIb.]43 1Aj!9roAAAޤ qqqMjc~%%%8tnq)򉏏T6؏Un7ڧ}((ۦf-LF uuo!2 5;g s7:f{AA KAA Pwq`X͛7#==]^geeHHHYYYdggcʕ0fDFF.w}bz!;Rn=C (… ذa^,_/"қS0 wY,J9MiH7N3!!IIIHOOG``b_d2aСرc[D:h_ZZ_~E΃wеkW# +iP/5UFiZP뉬}ݾ˗/sףÇWY(NǙ̕l >ԱJ/]͛%+TLP)5|PpL*IAA 駟F߾}剷^G1w\՛FM|9ʷNύuV,CC=$+7@!)) f͒>|Xv.J9ǽދ_A'|i Wu/|S gΜChh(U;iŧ/ۣ`?^{ 5KocE\F!ҥK#GX,8{,-Z$[cs=*'ey'TeV =6WrwƶAw`0TY%l۶ ~gMToJ OwY;ws|wdep6;fVyQR!`g-5AA-i:&~~~0`o?1=o5550ͪ7婩P7}ӧN8RSS:uJ~{&$$cǎŷ~ _1tP&ĊE)۲2_^NgҤI׿tBPRVIPw???̚5 }d~~~Fii81#F`ܸq.h Rn6WF,/ Ҫo +hZᩧի+oSڼy36oތX]tA||-S04*ztӒeYY֭['%r~cQ_!\)o   n G۶m5=+'6J{?{O씔F?E IDATׯ\gCHZdȐ!.'=''I!n$fW>}\pE)~a$$$¹B 2Ǐ^ov oڃX,m}kZvf1Ҷm[<쳘:uCիشi.\ ѣN#x|!w Xا69ȾYp\s&3"TTW;LwD\BAĭ-Ee\CTNRoE2lΝ;'wmzH%W\AMMѡV|58'opp0?9Uȴa,=&&&Mrv9~zz:֭["\ll,Q\\,/8B̘1C5(=x2fUk,G/ı`wߍ -- j6۴iI&,SxX  G+IRbÓg}喕REGzz_ ¢ZVp[ZT*\ 9ۘ<1[l:gϞqMKO䒙 fs3C -8z*n݊ӧO###_}x 5K9mۆCy(Sc!C{y& C~PZZ :u iii5/0qD1Uh|sYٶm<1k֬=V1(Z! W .$ Mn:0\Dp` |mU! Rp-P6g~$1twH^AC/K罵ٿf͚D[=DK.o ӧOǐ!CW۶m1gYǎC~~>֮]{cMmkm̾aaa8p 9rwb7nDXXXoңQiW{ŠrmJiv.&W/U@SP8"z%7=7Ar M:~;SQfZ*sy cLZX,MZ-|p!ҡ࣏>nݺQg@S_ J -l;v;MKa„ ܹs=4vtԩV\=""ƍ?N7n*|r4E>J Jur;Unm9P*DE:&B<  n ȂQpΑ!K5eA7e/S'"b(',҂ϯYqƎ%rdddsN{{;u^/cQQQUpx+-3VOy}J=2q[P)2$ ߯+>dJp@/qGT-5ڕBA g=1Z"w%%<<\e$Ohhja㪮]&X.]r+ZGZ;K.ߤ6̫EJll^.Z"//O%{B#IEQ# AJ s9MgN.[X^^m۶aزeWaz}2h#PVZZcYm3U:& Ŧ푲%&+0y}oxAA-p6TMf*A>T,#GtpR'z쩺) (z%:uB }]۪..UoF䘝-?d2SYYe˖s 8'N$gtMEW^ud\HJV;h &tr2MƘ4tGIB2++tQVV&vKx'ތU߿?zyA_=Rl߾]Sѷo_#G4*J9zڵC\\||A׊{s˗/߫W/L68Nˁ.@DQľ}ʥK.6.9utMǎ]=zӧZ W ̺:6-.TcbbХKyצMTrq¬Jo߾E)QYiEX%DڷoXUWWoƣ|t[q<1avL"B/:Wf"mKӡ3 55AAҘŁ֤M68l٢r'Q\\K|47UUUHKKkyLHH)S.;tRJY'N,j/5k`֭Xn5C;/_EGMsCmlܹǎsȿ(ؾ}RzlڵkqRRfΜV&55+W5&e׮]*H}R˹skɥwrŠ+P^^_rJ8!!,+VpZłk"==1t3gt89bի)+oZcca„ r駟̙3KglܸQ>׿ڢ9h✫\׬Y6-*@ W~$%t"4\M"FBg'Ni= Vs2ژɝbh4bذaزe ĉx" 0TWWHIIi8pgΜd6QZZ2HNNU~6 ??yyyZX|99޽{#$$%%%8z( L ҥK(..Faa!> 40(//ɓ'I93SN!-- b G@yy9RRRpѣG#!!A3Aʐ0x`'Ix률˖->`9r[\R% 8qB%QF9Kpp0N*G8<{=yh׮L&jjjGaʔ)>8ݖeǎHII&6lѸ"[cرcN<޶IV)x"SpX`K ??_~%н{wDEE`0l6NBYY\ڵÄ Zc>9wX iRjǓ>!#FhWSy*&1H sgnHB2A,|mE[(]0y ƆHAAhq_+,M_c޼y8pv`9;CUyo@hh(бcG$$$x1"((?8RSSq!}!aiӦ y:t(\/3gRSSo>P;ÇWr r!ItNٳgԩS.2b,x8HNNFBB=Çʈwuw`ۢյkW#  hq؍jMWll,ϟL>}Z԰d2W^߿WJփ .ܹsqI>C1l0cvէ} s7 i8reeJQ*hn1G/􈊇 61  noomvojtGTTKnfMB+++QVVZ DDD4q%%%bdBdd$-(//le aұZ(//G@@K;UyҶ*++aX`0UQQVVuYӎ|omV7QQZZ*h4 YAn~穜'VVIS[X6 \"  HA҈[fђu+*T(\v?sN?   C-*7A)(x5("Uk Z`V5LoN0z`t&l/)DNڵk D@@b .0[1Ur_Ur    f$*YDY+lO"?ݛvBvL}pߔiɶG~~>bccG1cM~Qn "R   QjKq`68|8br6 "C_3ppFS*@d(] -f%E&=cNEtb׃s~cJ|AEϞ=oɅAP;!9R"  n-7oBeUEPn8 @Aпw70)7QQ6*z]2۔'Y-x$si1E02|2ưf 8-YDc Ejhɨ%eP{& pMr2js"w&?q Cm~/M.",(]%WcD|XTb&C*CΟAK tƦGVq²eп9łRСC)OkkkOŋNGPU+fϾhmB+1<)z  ZC&Qy4Xlpյ빤PV!"" и(DmKįmi^SU MUis2Ҏ;GN1c~mY:222伾[ 7i|+;[P΋[eu+.6ndzVs(Sfsֹt^  n%nR]hAzʯVAϹS[iB*(p  ~ 9snsj2!,*aRyV+*:&z<#طoFW_ݻ[Qj'KkX$45d~pq7K~21AAiCy .Vp jN8laZmJ+z5 Bdx(LÕK 9"GuY `u[>>&&&֭U{92 8c0 0!n1\Vj8(9LF"4$W+KmNOt_r{]?(`֮o߾o_>̓Nx|q]W~2dM~ .cNNK|7HOOW]vxG0|$''`Νr/^ڵsؽ{7-[~  83fٳѾ}fW^Ŋ+n:mD1g;Eg=zT>~1tP\xxbTTTȿW^N;<.]%K 77W[@@MSbԩޔ}C^^o;m>233Vn/"ƏRGQ+WDHH\ӧOw-\?kLy嗑&֭zjY?>|8Ν~, ~G|WذaJ]t? Cַ  Z37ͫM(9=kE3czXRG:EG1f`2:(()8N+;łk'Sc83Y\P卉V:HgAk#??s{=;Ν8q}q$*..[oR"88_d2yo/" ]^g00{l^Z… .+W(O~~~ @|j/K/j9r$.\={mf·~+oذ9s&^4;uzjjjwuXjq}ᣏ>BRRRenJR[o%6> O?|c/p{Ν;1zhxرزe뫫Ø1cG[nQsozL1n4'OƏ?($jkk].v,Zfrٌ_:''ƍx>3{X,xSOyH]vaԨQ8~Gu9s&4ӪbL2oG 0ضm&Llѣ믿:{u('_^ufTVVǡCTǓ&MrzmQQNa8q".\prLRn8c[3lق#`SM2СC5Zy(//̙3]*e:e^-OdJAqv9 oPt8Q0Fz?cH`0[!VWAfЇEP]] хr1nlffaȑ8s|"OZTL<GQ7nfϞ$'N_|s,]TS]vaL4 ӦMCa2_~-l￯řRCjj /c">>ؿ?>Ciヒ=z`ܹ>o?scǎO<޽{#44ʕ+UEEE;w.>U}jk_Uٳ'BBB ̚5 ۷oGC=N:mٶm.\(/233裏_~qjӘєz+,,-00!A!00UUU;vQQQN󓗗M69cر.g@6lunD(//ǤIT[cJ.],)/Fjjܿpαdt:Ǐӧ#..(,,ݻxbY^{ ǏǥK xѷo_O7|l|gF۷oLJ~L  nkxs#6|8\rnΞ}0g۳;~L̞oSOK~\,8/<łK~n-<ł}\,yίF~C,_>~)~u8?08f=.x[E9[Y]]W^WϞ={g}JkE%_V]o0ҥKky^x|UWW} 6lpzOZZӧól{VZP[:}ƥKU24\a˖-sgѢE.裏jӄ ;l,tOP?:}ѣGyddO?IuD7X۬Yc|ƍ.j{ر#7͚׺T_O䠼w7dL4i=m۶;wtzy~4ϛ7j]]]pڵk]泱}KdJAAp~cN0`4g`~F= F#9 c^ỴGpq說gdUT¯"abcdc }kKS^G@HC%yW+s!> suZ&[o:K/֮]'N-^'OvzOݱyfyEEw}:~Wq}9}FtR.__~iԚ.]:O_vfzΜ9xgU~LZuSOaڵ=z4zSk'NV_b&N :]])bҥ*oM\{ƍ}̓V\ cǎd#=l9܈!qn)ojLaᥗ^h+}?9rJJW_i;vX|' Fk޽Nm2U:v%S  ۙfWpppzM*g!004Ё3cV eZKǂM`4'7 fYgF%99(8ضs+BLH*vbo^` @a\~[}T {?}'_<.ή۶m:b9E׮]{裏Tsw{ߴi0`877vYg<ênON-++Sg6m1(opH,\PuK9Hm駟'O{=pQQQe˖y[AA %1(& &k zA~F Pg6nKñgPS]E@].q82v-@\a]'UUU.Hߟ~i,YD4&DMM Q]]tqk'1(//.- xbQB\AlBsuޔxSo;wVE:q}@PP|l(`0`Ȑ!rƢSAK2_Zcʫ9W)J(W^1=z=jIII/[Z2u5i-OeJAA ,O ?l 8qA@?B##@pf{`,X7:NH`P%9l:/aldW@Xjj cR"~&q_І-*B}ݺP@np]wyxAqy뤷R~bccy'xd=h ̛7OJa2{V򢮮Σ"o%ϒldg/G{kOڷ[e5\ʔ)c{g7oO4 III9sիW;a9{n܄ )lǽ{$9Hy$"uP)cl;wc3"""gJ`s>ՒiSa  H܏[ ڢJI&B ̊@Laezi+JʪQ^U+8v4j-.&"P]sm K*Q(Q"qeqk׮![7B?`V @08Di)(}H- &hpE\\jӌ")8{|eC7n܈'b횖,ͅ7 9jjjPYY*c_'ͱJ!=|pСx߾}"W2uVneIe OUk={h*VZ%K=ɏ)))ERhmPAb^՟4gŘq&)mIRIMTK%Ӧ-AAab= h! (Dyu D`"܂#C(@PTX  ϳ6،p&SPm,"DTכaU`D&"2&b@@:q~(,C 0QȈP WhJ sF\vvgϞ^/c;7s\rZ{>LYfa?30c }4h:ulۋ$bسgRRRp ݴǏ_~]yy9}ZQo1 0aaa(--|׿9|*TQ#G`}ܹ![wga-|%{MS$71)2Rx4!ӊ AA9aXDD&$ڵk0_0q+BLڵ 1(m;\~}\,CA@0 ΕL#<8zZpΊ [ .(/(c fT#0(!h/bocǎo c&۞.4U.ţ-B۶mS˗?`wbҤI8pϕjjjd書|K%ȍڵk{ I+++}ਭW_}7_3fȾqYb۶m .]ms1cVXXnK-[ݻwG5QRRh9((Ѳfia1E"**JUV϶)2u/AAĭ@3EEd[ g;uFH03q!Ft G@ {vGpb-J С;.& B0oAa *Ј~b1@@?wHtj@10tk(!&>Q1QhӮuC{ 07%ߐPwp oؖ,&O;m۶uGll C A|||ҴW`5WkV=ܣZ(ܹS^CMhpp*c/ǔGOxcl?.^AAC\T8 @|"N@(ʻ bEdT("Bj4a3""XAuZsA~.Q^Xk8B#6)"_? l>=C 2 5(7(87Xd^`oطfZfaaac-?!9Q?X,fյ_||ru$jޫW/\W~3չM64Huk.VVVVSgϞ6{wճdGu~Æ M~Vׯ24G+ v~cM<ψ#T:t ƎyrImm-݋+W¦7Χrp2XSڒcJk{[  rMxr6/+=8 &sTUa/a `ȾZtt=zz33:M҂zX|wqչg} PMۇ4 mۦ E^4g!55{,;YI&aԨQ!!>x'sOnr~ETha8رcΝ;nݺݴ6ޚ}E۶mؾ}wLttRPcǎ=z4~gtƩ9ۑkQCyTi15 T۱cΟ?]=AAt6E)`:B7(-i1t" >9+.g G9  $ گo܂ \NJJUSzlƿ/չ{(tatR'J8w}uV VX,qvv_-rsӧO끅 z/M);WrAhTEHټy3.]*?#0NU޻j*l߾]>ׯۨ8N Wwz`ٳg}?ʕ]b*k?l6hLi H2UQ =6W"  Gs(9&u VF B_B@iY%j@@`f>4!` "ؤ݃cDЃCl#Abe:0SMѡTQ__>Z8;mOK@-E`W^D|k.8#2$DDbBtD8F`RB+mv3@7~?Ia^kӦM>--- l0 Oo8ihʕ~(J xd4 mq_^^^x!zjDY~JJJBJMuAPۡ)~999:zh_HTVV&03\po O8 |M?v=zt4|ڽ{w0PrJ8ISmNjM~S2,6oa }K'[39?}aV,=:F7VF=Vr:Ƕ~G{s3[S׼j[]cUOy̬(suD?{i6MAA}vѣ9r$kjjl~SRR,;;t}Y@Zi,==/͠AرcM9w=#yI~)`R۷vSLfvQѣ_5kִmKJJ{^۸qŅ|u|Im?裐Y^^nÇKk_u***7Klٲ#G|>_*Xzc-{Ĉrڵ4>\oFp#Gk 駟}M0a|Iv!=zh@Y+++C[mwy௓8ͼ{U]8d/ϲQqhK_}Ύl>ƏiNٷî?fw}i2sg<1.u{ڧU^8bVUT`1 r p̚5/^Y`͜9|0Ij+RRRvmo>Ϸ˗/ٳgm֭O;zhrJy}il…{n˳Ǐۮ]W_&_~m^K IDATW^ٳgʕ+VTTd999dɒqtVRR.hѢǖ.]j۷ol۱cXFJCK#@~>rssf[c=X@iӦvٲeiի!ߖvhgS^O{\SFb9!R~w~mv贼A)9nՅ9A?7fZƠAmxz OOCC{RmsSۮ7]o[x5+?efW7dFpSO[U#G؝w٪|GVovy67᭷ju=&''ۭ}KJJl̘1~wC)ԩSme˖v p4%++zV9>IIIT7ѸB[n{qƐQt.f̘Ѧv{[GRR8pŶ8:MP+s?@smqH"c*F1OiO)z)E;5]YZ}gԿ}^=$ߵE䋈M$H5ٍ_nu&N;wjÆ kjڶm233ZogW_}VӲevC:)ShӦMaς n:y VsYE{4bn `w,55}Q;wmذΜ9ټyM4ɢM֭͘1òڔϡClv3n8۲e|>+++ ӧOx̙3]wl7֯_c6V [f :ufϞ~ʒ%Kׯ_yN:38͛mĉMOݝ?8G0UQQak׮!Cm6[coNń *oO>vh;܈Qw &Mjvڪk?ifpTUUU'NlkkYCe7cB$d*ZI2$.[wEO*ŝ\z^W{2f}W֦VTL7K7']{2ĉ***Ryyk׮/<)99Yݻw6wtս{:uJO֥KTQQnMJKKSRRRߵmw]YN;,{;333hp#Xu;u ʙ?nvSg7W'$j9 EH%.Rt\qN꫈;ފ"wrw\)2ҥĿ'%%QdR_zKщ+6hp->]Lvj͞=[!}YY/_?ꍨΠ3Y=yFNk)ڣ=f'j> [:Nѣ$%WL1Rtߤ*N;Wwxs[ Hڴ Z NAԙ .ԪU4~xܹ4zuĉwɓ'wځC[іlsk~tyӑm00؀v́#d$$IH_E=BtDCݿCyhgx9sh֬Y2d^W/^;v߻ᆱ^zϧ[V>o8G yZ,<ښEsΝ;7qI4h$kϞ=:{_Gf̘UV)**1XPc@|ߌ*S ,*׫˗_VuuQ עEKep橻s?jZvMy顇pӨÇSNܹsx 08r&p<蔘XtJtJ:%fpA8x8G8x8G8x8G8x8G8x8G8x8G8x8G8x8G8x8G8x8G8*FWIENDB`ntfy-2.11.0/docs/static/img/notification-with-title.png000066400000000000000000005027061462047176100230540ustar00rootroot00000000000000PNG  IHDR80lbKGD pHYs  tIME 0 >* IDATxw|u[ vwR$I$UK.r/IN    yDAAA#    }8AAAA!   BGAAAA<"p   CAAA>    yDAAA#    }8AAAA!   BGAAAA<"p   CAAA>    yDAAA#    }8AAAA!   BGAAAA<"p   CAAA>    yDAAA#    }8AAAA!   BGAAAA<"p   CAAA>    yDAAA#    }8AAAA!   BGAAAA<"p   CAAA>    yDAAA#    }8AAAA!i2Xe:Wϔ~Zj kO~uᯩg}ۢyZ<νswr]zwWҹ,n^s=O|Ϧ';nkQJk>C?ԋ}sM?BoOkmgya;8q?5YOۿ{Wg9t6`Ew)#{sԽv.5wqB[q>ROٵ_Mhntֺ޻ދzz.cE[WGm^jIsB`gvvm>g~FWmܛs#!i/ӕ ݕJΏ ,2,|G]}XU)u|әcP ljA62֢7:lߪFrTʎN߷suT7F]V޿=q_҆*m_ "{E<{މν.Ũw=0?_9SO[Mr۫#?#_>gHWס˞ߘ)w_En\~}}DrsAu ;ϦK`g_i<\u=oyOg~~5t=1Dt>P^=;\\gwrƘm}AAz6go58ڂC]=(8ִ;Il;qMNH [i7PVj(ehﰷ8m<ݲ3p,̿S[o5J[QSHw~=g-N$?7֤j1*T9o_g9aƥgNs z|/jO2]-k%쭿;ۺAܝM[^sik H1@ҁ +uEn Ento),[.t1x' cH*u=w텩"_ʾN.̄-}lREaR 3i8*K%gft%j㜠?dGgEޛ"@Rֽ^8euW퓏xNy( \&joU $2c2d \j4?_{T %dP*h俟1(cqYsvg2|ҫ+=qU< H:lAx[,!.4(:p\`ˉ}$VbLz"ۜ2|書l 3֮km$4M?l qp|1V"VQPUޏP8ܵNuSGIr&@+Q-" &o8Ms"%i,K=a &Oi?;)i9mǓN=׳fvNὍc=^QWb} ԻL45)9& Qc1dTJ 9@S;}}u.9񣫼(BM`x ÿ1Q1 mYS\ N4 $Zʏ3yYI9?3b-_g0ySic a3eS#Q$βq|^bo/''-3j1_5СQP:yc'MldEMJLe[2{DfĀ (mm-ԝ=wv6ZCc:#|q2ҩ3_;0g9t8[m4 Jw"c (H5ʂ"F)CʽL˛Vu1ZC[i:WHϥ&EPoP[ԏPz7rg†Ez'K&! eyW~.2(_YH;7 K3q*p8L[[g}h?oZϙdXȋ $ #`4H!g[}O2un/uDs, 0!#Εsl3E@w4qLһnlQyGn!o&mt/4ۖ]KmiьA^6 =O?k7`NOᆫp킫 AY@q2^޾_<|?u6Zۡ"d\LQz\`_k=ϭ}"l?[ג<;ρޯ?w\ٵ)Agw $<$nXץhz)_Kr;yS2r0uG^y7,Bq^J 3^ٶhf_~ bb~0*oɂL: {onۄ5c'>, V\ɔ0wSں k^бP9̝/=Y<8D\ n\RIssw ,:SPO_}_~X+I;b9KBPčQŕϘx|ia>{\=y1OIn|uᆅn""9~\a2^پ?6vv(p ̦ Yx׸GIh(?,&\;|+)͈8SXo vsQ=n<6EÜX;ʲr?bFu;t&p am4$I%UTDޟcq]͇.t1щe?o+/=C[L aҭwhl"˓kF,'dLPp"`;ڸTDܵzJ30vӊ1п '3G8:ETO#7ﺛ*'-<) L(o';h7A +fᲩX3*XiT@E؄|iD1pwlm5Iٳ7nfޤYKN*g"d`ڔ)$u{;hxIC;9|,k/1m=xuۖZnNŌacX;獗T` 6SfDhG^f7뻶fzV^(!շR6^yW%:Щr&ao}qLF͓[PZX@YI1'[8r4! h>q8Xϓoκ \wS$ٲo1 ƐhqKT7D UAK4tEدzRm_͚mv0Ie}|WX;q?*%)0(,[,%K'. [@\~5_ȣ/ȩdk{i',[ՃEnGmRdDB6b,%qȍBٙvOHG~K&Φ?.,01C|#-PovoPa E:i O[[å&soطK|7BJmE|ZJ9zw/ᥕYPNxq*kW]^J\8#&k;H8ZZ8F2'OC S 6,6 CDPD|#j9OmHjCJ -EgSDzOwN؉B}|@xC[+o8pX/Ε+RXF4ˡ."bי94T a#+Żf/nn-]R"}V^#zeo cX$ O`y?JZ kpDn䡠_gl9|ֈi& ?u{'X a4Fl޿&-LRCCKAvK[bNzpћ,Ts|$*J|7^}*^㕶ՕYݧ0aQ}?= L;w-v8JED:ʯ2.ײGl82k-/% rӏ+/yIS[]3櫼ћQA#a8CmQ 6SLKsqH BXz' "_wo^^ڴOlH$*0/||'ӔT/u7*$@uI$G )%>$Hrװ$?>:ܩu7R.`pX@u 2` xqNZ;>D\a2jJ+)܄մʴO}_RT@IAK+~b^޶I8 YM5u %L#o/=K}s %\sBnl%wXڍhhaB`V_&d |Q^x \k9q ]qeܡcXv i Օnbϸbt|V^g_~RUup- (4-])bK( GtiT@]iNrzɉZkmNf80^'i;ޯ Va?VW. Χ]cM( nUq|xu;r崏R腱.3qkoX7|k6o&Fv>DYE?6 ɣN57RȱS'Œ2p'湍k?pޥ< q=/[Aԟٌ+wg=H:w5a&)* KXQɡcG8&G)0ۓSzB+oHT9 ӧOĈ){kHKMVc*E!.d=,cQz%f_¿Go:C[ϱQB07tTŘ yfż /0>ܜ.jӫ쏪]E!FmGxq-̞0ѥ)}Yǰ`['n]Ç]DŽ ?ZŴ'ۧeݎ JY*x%z4rFUT-r߱6fAp"B㲞fF΅(#%Ϝv=R}O[CFW >'LH$QOa ;vPAsh2o W WO?JsX,phN'ŴТheQԏK'O _mrV~K^߻0XBc+Gk_ #  ܆5K gzdDjZtI|]reE%5$38Wk C! pC=Phad-u T_^!8U( :Ҹ3Dn?>q!U~{H2c` ٹ5ޡ%q!#M |?nt@ԌC@ͼi(󷷥xiNqǏT@sXsOt|bXu5!H~ p}kKG Z1L5w`;#3_kxmfnlWwl z"SQl>ʪOj8zM$(uxg'hpy}:x!SN "MEE7.7-^SigK<}h5i!̬$mvp!}w?}Ԥ`U> eS#czBZxר+V223ѿ/ܯkjy-ĵdsoX9ou9P 1z-m{vo&xlL͘>={bT Ξ;~ڨ. `]8x(-͍4:GV\ϸ!{e)y[[;fL4H d9Z߰m:/8fZgNE18t;s?m*IeLޛgorXkEm-JdNaI_ܘ?rBo~a pzb$Tosu7u h9nk!5XÇ[@h^ۼXY)T(N57sL0%'!EhRRX&h2P"ܺ⺠*N'ZqCoY|{=# /Aa0߀D՝V /0c<Wf d5ÇIfAj+o?'ZC/efϟr71 L?]I$ :G\nJ?7Ex3j.i%:1`Я" ; o7tX$K2g~?6}?IalܻǤ:i''kIh 7Jz{MTaVe UZuX^4s., `$C:$2Wi](eDA|`l_l?NҷgٿPU,6;~L-߸?^~ya׺bIBmMm+p0]E][ S |UZA1:Xaxѯ⠔*2 T8 0RN4q)l&WSKK1rsI[Q2z$̪lI`}$=;_'!e1oQS7zs]9o*ef$0d@ K%{&(QW!@8x5{pa}X}&bl3%D*B^LX:~]gz(8J!E90@cK36֏Rp447T6v̞:b ̙6;{jAo IvULAX6/nj yxcE,GlE Cqackk()*5‘9r$Hj FXfNJ?Λ?1nj sMP@ξYx^p a:½LX@h+K]2n6V4ϾWfR;ǂ=>,?eD_]DRy>1:JeYNϯs!FY2cmW]EtdQfdGRN |}Lv/I|?>#o>_&y޶xRz]鸝R  s~%ggDn)K y=϶X,;r y~yv9I"zv6vE;E<܋)G.EEENg0'L <8z.F׎&vF1oH`p0^23Q< l8Y, 'x$ehkʛRzx%v?%?1-7V^Z%xVÔ(ESW(ƔVk_2 KddlZeOpoCQ*;z#cazh֌eިq\9yYqW75g0hs,HN d;V 8:7%m59IO oc ]I M\)mbkHjMCc3 (\6qPk*yb!0z8_LQC q^[&wB'v@X* K7beH𙎅ʒ2&C(2zHmu#Gf6ŞCq$bjx{3|Q[L0Ύ85L0pkJe蠁,]LYY;Ioe˖1l@Bo+fn}_ZǏ>H}V51<㇂=13r#z;r&+N&"VBPsϦM६>,d~i?\8DZ"{w9!+[88Ȋ+1a0v:ƃ*%'[n.~uAur$:`,TwP k;U:+Kfhs5sx ƦwyEah@,pImIǧ Ga*t"^Ԫ9h _c걇xqFI77gKUvjg,CUUZa#xc*EuE? J_X yyzNĚx~:߼@;PrɤTPyfc6{ s# ֆuX4C ຫZ_zj)H_E8Y Oݡ3*ؼk' wIF+(J&)J/wEܥŗ>qVf 6d"KK٨,ka}R9F]H!/֯Yh~A,6ڹ"~rՂZ}cނx}v#?ڃ{h!0`(7-^JMr& ka=y'c*Z䟿׫nihnG?16m Z8X(!OP[:Ç P0ƽ"\sBV^y5ƛDرp<掙@IP0]׌Ysă;̘u|q0f4W̚GXcE Mp]lk3b>u,=Pe;q .)cҰTU̬C$4  Q'DQ.`VXq}ːBƶJ%rbl1t, .dUK1b p2ӫot=hWC郿. @MI%v*JqlZ,<_^;mGࢉ; q'0=-'/J%nתNE0irrn\\kͦ;H>G('*U/~ -Hm$y!X![>qLZC?O 'x%]U7EsXǏft 9@yyb$~zmY1 Xv:[7q$D9Y~3ְaE{0;ZmW- Cw(fp!7_z%MbΝmj!2odXnK]y69 7x( &NśY<M"xc&>yT( eI<~56wrq"t6 :Մ~Y2YᧃPG'3=ߦ1I*s=U0ż5ErnvGvNR8t6 SĂ1( |rM2[>30s>O],U[M4iʫv,qͽygi:A|FWXՊ¤a\V;cmUOT[# *S݋R]WTun^ؼ%S[bKX4 Y\vN„av2 _(_pHARrU+,Vrzchnm(څW1}Dlw` q&#Ę#!oouvy33^mx:KtBa~:TBz\/ ~#4č i2`$~6a"CAm IDATl[?"#W_)Ԗ #ky{,a# 5cySu]Jț S*.+}GIsxs[}pwpDAzBS|7??L]H46+h9y =l{={ƍMiqM-ڷVt*>t| M-ܿd‹$Ͼ 8I?E -`CV_~c>{۝*O҂@3>W17iAEazup-8zE?H"GC29tT%_Mbp"U'˩x{ܼt>^d1Ga(gsل8p1R ({Btru(|='1? N%xPE{*s9u.rnFn\R]{=197dō>VA-Ƹ!QN>թi =^T[ɓ'yk۴% XKWPYXnXd#mK&Τ8RȒK/UCr9.m˂sȵ&GvvVr-77f,4;X}?NM̟߼֭-*4"7j/q>HCA6K?81Gw(pXRb}^[srmК&cm?y*([>q+oY#<_?=ԩ0X|2k\sc/~:b!^DJEota,yM-ПCDȿӱ&TFsuUWwse `\ 4 B$7y7of2_ $! ń1"ٲ-g.]IWd#{9{Z{6Z‰C*ʪl$!^SUjz5.j  ݽ=ظΊ?p0i\#XC{]1hqÍ5 m(iB]87Ǔ?+߿/8-sWыkݛor[Ah(T5nFAO*XyUX֫sߋ83Ȥ3d[AKwYnjȂP!CǓ:G/yRg=i*}Ϊʄc30JZ*jh`)|q=|ʏrIDNq@ e-[Þv9cycf^߹x.g`k-;u(fWs rC<˵[9%j@8𾬿V|e@#OJD'Y2~"јÁ~=:m0Ic'^wz~Ce ƍ)'8Hխ{{NSX-9skz8i^THx'ٹoNX3g3S*`䙬Xt2ZqR-yqpB*81Vؘi(Z\ca0z ;^twlBkk@kE+W6Ek!h0ϣNl=*|V%x?Z0ag>yda(X^ro2=hUUS±ZK kd&~#Vd)[ 0P5f [{FL2+"ͥd)&hZqYͧoM{iGf_WRp89Z'co.:mffz=n؟b[~ī9y*nfME;ǎ H;D3"~>xFW/A1nl#̥7bƤD#sjpe~=D.g"㵜y5u;.}*j[/nagAR+j̐t&ZW_†×Ы-~cD"jE$wn7Av KZʐAU߈KMZ} e/]:4FyU&Li>^ ƢP`Ǯf:=vdp~p{oEXP+ [`snZ:;QSE2!j O⯯,>7unZOoL̕@r:b)KϻSf==q4'.XFLw~XVSX6u.5N!@'Fy"vcvS'̀S^a֢KԵ̚p-JD~yWvbObiÂMdyX-yч8kID|%dC>;NW\'G&Oe,1sɪnI!vj bchkXܫ~ŢM&d pDnJ_Xٌ bUiK9k5$ X~:Bq0*?(zί%)uSA1'|nn䋗^ʇʾƍi`l޽vǬYضwo؞a-v*F3}LV2:Ssi+ ǵ8MJmU `tdPyJ:zr N?RS4 ca_G<KO\G6VU1PL>-(0)>{?t-\Ja яso~E":Wt9 }tupty:tsk|a ߟ!I[`Ĕuva]YvK'pQ^͍21>U25~<;#QJIG*Rڻغ}~vtCRs |·DYK~= :щ{ϑֹE}xBo| 3!l|w~eґ>\t׊RC]8i7_IjMvBGjڸYLt kJҴ88☬z?\T ^e06O_4މÓ1cؚX9u6 L/pǣjR?qp 8xӺ5ּݼ?,]/j*+өÿ5s]q/gqNZϯ}ˍXkxKN9U+洦-Yk6栬.g_YK̻kH8 xg-W*l!V\&v|ǵT3_ŴS ۛ6JA'AA7uAu-NPGQ_ዡ?Ì7Ӧ1&Z{G_sX:G7F:e̳y?ˮd3ynӛlذI 2o bI 䱂O2S/ԻxicpʋhȏdDk{kIi/"&Ui$뵁{ MIEPLVTGcL0 ֞nn~෼c+>x*N_qF9)xWXm+" ;48u9O?(^8o\)֎t Ƣ~4BeFVʓ¦|gVx _zJsϓqⓙ2NEoz B*` gMDw<5$M%tB)}i͘% aW>LQ}hphcPV>*C0&i#sjχ[f5P4|D@I77@O=.="M:'7n^-m^Ra_ޘ0,b jV{y6SEaty3"h4ϱ`|S8I׏?#ϮLHpmyS8}Ih`G/(&JrƏVfm.L|I&S7!A&*FƮV^ްs?)<%Z2c.7xعM&pyckΩfO/a6RM'K8ṵ]]vi XCBc8~Sb^\nV6lsDu wq$^p3}J[13.%NWgy=wr}.?C<>k5w1C/2!7EG'$HFma|vwv۽sf;{t܉K8L4)4;S{9sמ-!҆"W[:SC~h?Z!̙<7qeLUU F*QW_h`wwmm7?>%&hT1oonߌx )nW6nB+2٥uX@2otJ84m/?7^[a#Im-&j: ^w7n.kPKJ'a%9턅a|fL5N4ށ}/=SL2 _,i:.Lg1X3e$>{uTHw d'ô>Ҿ~#Ғ%eرoIu8xj@=3焎z?EIAPau~zoW3 MeE6;Y Kp뽿7vy^lz IfsPtL~ȃbS>hcғa{ઌo)Z \ Qpbx1{YX,i U=۲E'ZdɽMwn)NQgVqޟs|n\;ќ&$CXx*7w1xw<ˑv|og_ / mX_#fӖچ.8!zڋ{z0_[HLNyv@~.Da\CD%f~{!Ƣ:0ɍilh*40&m{PDV')]rР¢^T06Be?;^bg."l^H L2z<.<;^|mb$"?SccZdJ*fH_SĆU+SZ3ے ~pmӗIAG) ۼU)Od󺥔3S#tCmn)\kK(i)`V_#.^-Oe O'ed97{_x}v ?ZjX>{aJ8 /-(_jg+?88N0kmO\r)h'^{9c?2׬ :D矿UV2t3x= kֺچQ|T-As#ְo&ev"g}Svrta;)mFg {m;>ȳ䄰涧._(KΞ~ﯸzHU')!x*ˎ&L U"d}=7s"W5_\ݏXͦ?W~+dV}D\u u ;Qr?"v"΍ _p/;{W?/N17M'Uli!愭'׏aa|7ОM浬X~&]uQx9^h9rr)_:M3/|F6kFL#@cm=&N[U9aq4={0ذqS&^ *˨88%aӬqijWZ[ϫFi̴C5P`wW/Ͽcq:mw/Ͽ6*\,^;9[O=ų/DIBr]_H 55s]߯LnѬM_ao3=Xhpu4[QM Cu O rs5BH:x'4N=p70Q=.g+?*{^_um-x5Һ0* ] Jzt*"!ҸʰL4RZc\N h3οؿLZqn qpBzcܯyo-?5WDd9.JK&5snxdvEnTɛR8_krDn"c_βB *N:xwe+FAt uf^X:/I1'7w8΍0o*k&o>g?g|KZ}/G>rELrjs"ྦྷ灧Q~r@hJڊt ,Sp#CFmZ$? }A̞ʹ+î{Yi#) yNE+e ]#=,8NZ{PJC*jwN5Pm+\gQp/~OәSSB3~FMZ}=#<ԆFϙKC]== OKwο8鈀s#b\,gW꧘XSlj35]lٵ{I9&ՙ2KZk~;e$JX\1Z^x%O̟]q%kZٸT^Kمk?Ŧ}v(Hŋy}]CG;ws.gɧ .eւ|!M& 2O2V"|k9emJfgpph5Dž cjjY4g=+@_`CcUyVaP*Ի~AIߨh`O/ 3tX)sbLlhqtvuӼsutw!fNsNƋ'âpiGn|ٵck)Tund;@2q&ԤUn)C1@?Ųuwsi5mW\t1f7/҉a{>i?sA{{kیۉP2X sxWi~ŸxXr‰L0osȺ$##$X `}+-Zh A.W)v:^ygm\ .< /5^:_GkKy)hgG\Fs'ͥzP0>>kn7@ui'X8LڶF4nc,2wlZ5 LP'Սݧsxm7X0Hy\A6kXa-=b\Mލ;1O[b//7RB1)F4WoD_t9@ 9a$Mɼ@S'MR+c_9!]ވSO̡Q${QxB_A? ;G=6QMIU`I8d!YƊ S\z#qobz>yGV BYZ&^RZ~:kwm`硜. +N[¿|o8qeӦM8t$ۚw 2aA7vQ9_NwA>zشciVt$uN٘Z74R2Ę1~Da~4ӆe\U5r01w!Zb(icJRRK5T Unm\4i`t$NBSnݭ:Qv_Alر٩HPOgSޖM$1$;IYfvW5?}wFk'o'Cy57,f#JQl Ǽ6y57Q\[Z{zZoD[6aguchU^قN/ϑS,j* L؜BGGyq̛G>x߱g6ey$E}}=>׮U06Rũs7 iV),_~]1}A6nD\~omzo]LY ОeMicVc:=]˚X<~P9Z_.`3olHMW46Uͻwº57ucPLi. N?X$„p \u*N_HD3n 29 5|K"MX"|ϒV G+fLv|1u$ƥ15}<4Ўskd=%CƇ+G`} nӜ[988Sy3)/&4w*ػL_{6@˻۶8= R=o`y}[߻t$Iy57fƳ"7sˈPɸ t8Ⱦy9ūc¥ԐdKd\d~lJUek7Bo.ҢDx^8}=gm; R2ŁGDa6'¥= p_Si/ Q] b5γ#yS-߉Aw[3c)BeQJy |yy֮d?cرTD1{ /{)cOwnU}t^^z5YgM{wэ\}G5 Zز01~m?SNYsB#ä5դ&>CC43@Dq7IomZϓoJKőC+W^/WY ^6oB^fmFۺ9CuC=@C{zm"ZE.gxWxm&L 5,p&b=?1i'f]Yi=bf1Z1ZWW_ξ;l7;4q5({x3`HET2u4+ ˤذKKj\Ꮒ0}|K諾?Lɧ0JcM/b@[?"p{#w9gX 0HAxy!ǥNTK9Uʅ+ު\|b'_Q rհKc3Q*4Xp CfȉCv=.y5GQ~8|Jk __>pɼ"ڵD8jj?~<駅dr6Eq'~NKZS,h_dp-#nt4/FYYViMM,I/\s ׳Y;.jHiƄs ۈ.GVWXZE]$N "OizIJ y5{H=Sj^F~g!bOI.r~wn @yS1@<9awAV"i=.gRx䙗_&wXh*cxr_”-9Aj81?7ٯnw_[]nb5n2gV4/}(~c.#tpL9!*!$(1baQ }s*I5^CKqpBdh 4Π -qwӀd9U::)CN38T[4㭐!R}\G[N&}Owu6ٯ˟#攵0|h& mj~11Zj{xE~^Z!џ#UYp2lܰ>E'k\T9[=ΕGq`{zzcTrӾZȝמ1~QPw) )e0oᨦbe{P7B:0h:H2}̀i} MS:]+ ±+Cu-Kցۗ 3Pz,/?s]`{l,0M axPXT1wLVc*=PbL\A@u1._7PPtR5yA='CsKt]92Ղ[]*ϱ_`,hiᛩ8?5y?0߶ZꧮGDunJ:braw!"/yaC hA2rcx8`ߧ?H 3{A[8789~\U|Kہ8l/=O (TZ+}jkNJ)~C2xDɓI)S ,|I\ =rߧd5yVZ~pבT1C\w*>,ϫ+2 ǣqTb}?0Z'%|qp )psdx?$BqJp!88ѢYM&?/o*kw;~_E25L󫴣cxNO}Su4Cݿk4{J&_O3,5?[H?W=QHf:jsH%A"$0Z1H4Hp2r!Dp8@.E׏QXEʉu, po&rc(uʟ柨^7|32K*S?)k|Vo􈚿CC߯SVn?H   Q, !e0R-Ka1\D<ֽ BG pL%đ!HB"8 9'## Ya0F k!x)Nqf75q=g [`*+^_{%WO?A8|/0R'"EaUѓj fL(a9$\_P?Qc8~R_uktp7y;ZbLc]dqkhj˥gdL*ԾQR=9l>_oh26NB͟6>5q AѤ'F\wЈybK-xx'9q @=P8/_s1s5:=BBU>zbācSVcI ^HQ\3KY5߉19~AMir6R~h0+0,>Ƃ5,= q@8sX,(/c8\p) =qr``:G/C,jǵD 8&Wa4nPڢ q>x% G[J 6*Zax@w4( B418E'_GZb.\HT]l۽FI⮡:R2T KdR}GK(bXv-c 5) WhR E-Tp8e(G}!}WA8bzk]M辖"QYC]UQ(j:hī-i'"_qcYt9'MM׊hhu{XYXϹ1n'9 dz@+k7oPQHl=o9;Zl`qp1pHqp|kXr$"()B #B1J*׎MAQfΌY%ˎ}{غ/p1^12 =6hFIAF«M&7LF,vG'׭# m(+"%j<ጓEho8?pydi\K!b 8W?\0~8? PO,QEk|+t9k:<3{sJEcv;8UN.8m9q5D/XJU7nHO GR'mzι'%.o@6 IDAT3O9' mÿ|;D!>9G{z@{b?j /3f iͣCln&iK'Mߣ[a8GiÄH} [o0D1J˯!}9<~=$"엣e!e̪"L!.>{etǮݸsX׭'?u_Ǚ'aw9E鵟u=~23ɖ^ #wg"t< 84@a"BNaWsgڄI$=~%#Fn2n|m&Qܨ"{KRpE3W2[-^'?>%'/׏=CϮ&UQq3 D(r^+ص;os+1_큘{Nwn(g N\s_[.{1^Jc:eF0 0k jiO$=@cҀ@B6΍ׯz ۜq]TFRpA|?5-^LΕ9{n9Zm=CrE:_Ѽw`/?ͯFPI^9\O=`^W~Os :;5Ty3(~W5W?|寘U Osݿ(eueƽb)t7 Ur_'k.%S.gn4nt4dQ9:>tOk-\>zчp4o=',8[Jwo`t0r#ZlẼż} ^Tedq-/YΗ|F}/Wifv W79 }79X܉2ZeX $ )D*DPyoq%Dᅘ N4*tom(7H~0Fq3-g3,ԃWz7`ry^߽5TGR|YJ+s:dY r -cϛ~Ky8rdCiY1yxI`[nFN>e1\ ;ș#TRubҸq4s()/=mzꛣ[Vz9c&ee|k'aΡM7КNVzs(#s꡽O8{meB[I꒹_5)e_+eI[<L z. " -6bцx1(eU00LE]%ĝ.ﺔRYݝ 5_HgV<)ݗ|*yC? -ups _*8k_WReh%ů} ̜>#.mN x?*#_ZEgOO~ۗ ttgwֿ t r:mXu tE#7{^跬KaH~4Yk#YSoiڟUfE~V?ɦ;hDj<=wӏ"U u2&j"J뛷ڊܳ;6Qͷv3[-k= pՅȡΎW86~''/t (AD"|xټiϼIeH{Y)k>+N\ĢiCc1 Ȅ) ckX4g~~%\2XQ8ƫ{SCaWsBS8~5~{}C~R{ 7v+& )J=ů2o9iZ_Ni缟+uTFahiK&pfiYEH-w1ThV+{>Rt@ߺ{L%7RƎn)5)ÅEӶo}憓Q)d)Cly ڂax*N-pn;A*^:)66 _կdUfgGWImcűXeVPYXuب)R߉uZmT׼{L^xA>K1_ox(fJsHUz^:eJU3<3"QR)tѸY{sfN u?O~LE0L1p3R'@\|<ii^ܖR/ccq>xֹa'枭<+c U59?Jx-b#gdּ~?pҜyLa7ۇdWg)'``ܸpr|5%kn|xi)9^-IK9v|DZS2e*/"Έ,3)5 Ԫ1m;-Hc* _u(4_!z"R˅a4c_q5(͎6nDA (bSVmֆ};8v}&j jn<,ҶoRRZU;2&w(EL/7ҡ~EW0ײ똸=ܺe'ric&nEo#;>yYgZ39үMfUoKaI7Il5XtJeiT'-fSֵ_͖c?F1k_c͖M"Zꪪr2vvsu uJ;<#m4;/Ջp叡QݏJE86Ԩwps87҆kn337ВNxFk @5DLjp&xbEX0gcꩭCmn-Tq< 5DS ǵa$QuUbhUJKąӆk 忶6i0oE缢rH3ts ˖mmqK+_~PzUVPSm-lٱ]9x0 m'@! yꍣ34( g27`ٶ+>e-۲N$eU|M6%W87<8$\G=GrWn+(_f]CMvCAyW3g%Ԕ[|$gˑ}~Yi[׾0Cb)?C& I %dvB{9a=O߱vk>t!?}i\S?<by ;+TuM:i6|'xyR?w%2b6~P-Lq & FZZ:`v@0ǀn*L>}=Rn6~e؂2B?{f'64JLkJ+XS*ٱR?.`g%U@yፅfm3 /pOؾ 7*H*z0\.=%>s4`M9ڌùk;_P?~$z |ɖ4z̚8N/g|66 }׾0C]}&a"|ϙl{@?rev?1^y<-cuM  ^Y2;ɬ T*,b+t8斃h>/q$ܐ.?N Ӯ |w$=Dİ~|?=K ׃)rMŬk3~ٓM;qx{v^\:K7Kّ|v>Y6zpkY3 |;6<]:2Ҍj=yW܈cːn( (_IeV@ҋ3;ڵ++|ѣg^bߕ77"柾m'$cFh_\PPh Ih}wEmE? !`lquѧM:$t3IMi = !â D)/^69[C^hV.]-(I{>dx/]LRfBߴjEQXKi=EurrRh|+׎F{VW0`+{ca=p`[#-ZHJrIW۫+ L8 $ބbǮu9kwl:O1;82nɳ8hs;#x@z3+7< R`r!L=%[MV?$4 eg;V)]`6foi/?ORXkNAnu[:nVͪ@`0Rtj7 xzS۫l~f:*"s"㊈((6O0.@U_ο>U<%:,< "~>ER`J݌t?]l7f#PᲉ`W77)} JckMHzYvI|nڅ?RQʼn$fn2Dv9,7h'b;Zjz'~FKīݶާYfQQT >)-,n0v9"2cJ:lYBs/}k4iR*:@iBq8Y'}E{g]C=~NK7-=j+Kih`QcjZ8؈5)\т„ìq-'1sTo_۷NT ZI L[%ǒ;@Ic`bM/ Bz_wQ]QůD[D*9{K -+nu9̽nޭZnT \6x$>~?ﲽDv.XF Idvu*>5n+lGb>xAc5 v:.8Kq'"nԊ:I?ϥka%EsrsBy|A8QUYőy{V\Jk:O<."V^܉S87R巻߿mH)]PFeu%AVUc9N #T"8&!XAqUόiq @ ̟y֭b.gw~6g+?Nv^J<BH!)/[UQ$Fť ){XmOI,`C0a,  R0m"q`5gſᵘ=L_>:rGe$sX[+/Xl@MM9~<=\+w̻77cgӉ3z5X?no,ZuՂ桏~Q=kB-^˄SIb/I?>QGt 2餃R^u7O_g@ ,Cѓc26 IDATo8hT -v򙁬z}1!|IlJ68B|c}gJ7{KA KL:n1{W^͗8h{2d5ȇ#/~J@n51U:R¨!CYGΠIjEe7mga)|*'t}H۞eY3`w)Ta0 CVe,9}I5"̵9l[poZpV,Rt&!\}t{%}81}J߆X*>s:I%O:y9:6ro]Uz#Y$m e#Rh!̜ 0 V,%ʹ%O?Q'GVM5^+=0/ZÎ=>|!\>f2W͹#O'/Eūƹ!["lH PY؜Uia{mYTtZս20^nzDU@)55H$(/.aPe }dZ!~Fɵ3_e ʑJl1 gCCB};iQ $aANDvwo`q9">}WX+wܓ`#$!{m223SFau!k".H (wcN+K֭hvfGc=s.6֯5t'olXϖ;ijm eP~L5?)z֭[xkE*Ǟ#StB[)nr.(ڕ$}M-DQÀJ\_ cGrͷ}V4$1fx;>vl?GZӣg!pl?,~NtБRMbu4qxGlt\(MD).5ˆK vϞc$XũfbCc (2 %6p%ÿ0driVUmWkng''ܴ:;=+[WOC@ߎ7cU9syz3åBHt_݈rS>@)XZSPwmTȨohJ'T6س='u,v ,l"K[S㘠ݖ(bIW eh3ɾ(Pчԃ|FK6v8Ί.*E@W?{~ާgatico[͑Wˋ07mIr Kϲz&_PbiEMEO+kGFzkGG iڡ_c>DOB[ߏŸ8s{>JJ}$K[f0q Co3-:i@*:\u3B*KMR32ZH!:-H g=1uhCTz[\1u?_bVGN8:qv뗞e-ID+U䞛na/x{CGUO=>~O&븎’uIz\YH[^͗_P.tKI~ _S(7+6vv]XLT?ЎS3~oؔ`.v Zs3?{7;y'gwI9w\w#sGK2]}7od{q,m%Vll<_l@I ->#oaJ(F@E0vӒT_Rj13mY =s-RZ'~[Zih6;5eT J)FBX>O?& zm &rZה` {iHzJāatH὿ wpB,|wQ)q`p8%R k\D#tՏa|pnJ6γ'6nG`8}:)8l:|7@Ct ~Y#!#U sɥ̞8ׯ즵ͷ\x*M̝ɹtLRb;\Նd)I+ nͭ~BN 74?; T.>UTКlsJ4Aq͸C'K$`;l; tR{Yc]lrxה:- 9 ߼yhrFª;C9yhdA*xj:ms+xerˌ `A>p쐛I>I:|?30Zba#x\~Yw/l\#mRĤb4__#]N VF hcSH/,,b:㘌K܌&̜EC}d]W?aIDL-ik9|8_ԧ&W&xsLeMo+ŵg3*kܢ̷M--4մ؁If_zaeӖm%׶o=JpHX&4F~{ICŸ^ SZEyq m6ѲҌv>gttp&D}E0 xz+>z翐;p]0ěI9!94rFO-̟:dE*ӓg]~6D-^_^JH4ۣmMIjģ >7N Y~ HxԊO_5(&`|8˝c?=偿dPiy)YyiG/ iT$\<Ѧ /aynDbxSH/#akl[RB\9|?fHRl 1ɝN zc! av,}SZ&<>` ս4R~;J7 ׅH̿b7.J`Hō,T+ƸnƬpKQ^^d$n[=ˬ0Md6.O@ 5+#UBгn6='+щuKb xWk7s{_S8E$q"nzÖْKǹ@r8KJpM#IJyz^ҽ#?hm޽rɋ,!AtQ~|ʘDp9jϩ5GGOT)♎ZS^ZF!QQO6wJB}gQ%Xm"t%UEY{v'_[~Y܂m1{եK2üvO̚2"l;=[9>e8f_ `u,6mv9&!%E`<^kʀ^O4T1⽿}m-&/nI-A[~Sl:?̫⾿cSURNߣM|?T[l蔂NT ^gϧz[N9*iZyw^ '_Vrhi O*2fHϒPUF\h6Ɂ.0uDNNcWIy٤*:HenK*(zƬ'gvH:# [w-9ӯD<ڔNIedjIx-'ʥ5*iI:lfUS3q57pe6wZd6 ͵mSDhݯϷ6m%eKrC|_u~0fH-cjƪfKh{wHDy<*\r;Xe#MN'vl!T%GqaQźh6g=;}T@;f0IM\@&#M 0!f)ysl(Ip3)Aۣ{O؁;/-^]flv[UuLBcՖ tgwJm}PVXe_ȬEQ\"A5+m]nGw$xenИzڝ* DQUVNk{/E[+e`E /,}*Sc$͆/|C4TĘ:v_Ȍ]#k\yvQ+kIicf().3!\l]2$G=$}q&e@7VXdc>!i5[2 Kp@p2E8X:NM %/ G*MLhh0p"hG$o%{MʩQ/-NܔAaN}unFjB.UŸ}{XK=%g]xT9ˀu8i}{bۮFHi- aI^Y#mMXkT$%(p|c' m_fҗ~P:|mضAwĽf)_g ;se3OB{VNOqf'-$i|tYHt "ëqI~|'e$"ysT;8]#'N],8ΓQwB% k˗QnA~$m1uq sx^C/*w-EF n'(M4zUs_[{jk;W=nV؂eѫh|HJu숟i-|Qhp.g Tl~y4̙t c!7ҧ/}mJBzՊTG#{mQ_IoWݳxö-\=b"G+ [wyLYR&'7h*<ƶ6TY/$6IBoFȞ82폠NKt[r8ފYTEw*w_@066S ɎC~0+Cd)cfҘH 5=RQpNN\ҭ4I9G 88[8Jc.KOki3}!7TWΛ2˻ ^M{vP=px*MfDϾ|_ymrMB#I"Ƴ cǸ">Q U'Kwh+h/R b17%M.Kua]{*>*T:GR0yH&9+gݓ$7 '&.i!Ļ$ zG7.Rpr-\g^ȊT4/dIeI8ޥ0TJ/ aKj2EZG8tp!~47)q192ӐYaJW"_B): +@W-o |fĘa#_~ ~#ZPW݊D޺NKz㽏l{_eB pqÔ\=e&l۷m{vv&vO%E Et8|F8Iu9y}rVlGEiE:|(JtO>I MZvmt$Cj<#_qybtnԤGCIu0,,^Xl7p < !PJ2=*2 8p0I4:!CEA6-۸ӫCdQ sa&L7#6Veހ򊬒/-,? +` W*$G[AuyyZewV8=ڵm/Z仇amH7MɕSfr$̎{ٲ{l`F4a85 I"`H~̘8Aѷѻe_{$~/ [:NTi]i$Dsӭ!`{-ZH2~I||ӟK&Ǔ$(i<uS.Cwr0c Z? _ dInP\2v1/|֩='}^L~wSI4ږzK4?ɝDhHSQI%&Mgٿ߾oIex]]eaL4G@ IDATġ7w+c. ԽRxg5}K  Ύ.zYyL$гvÅY'}~Rg=u%3v{GG& C1rp}bƎm[bE!Xyut ;"el+F=8߼'N5r57M&䊉3YOy6:?Mh*E#ԝfވ/˅-bDNz)@8.!$kvnn1"M+E[(lGSSփށ'dtOEE453gdI`]r)G-HY?ZːdN$uH3;- Wο8 p ĀjɇgC gB҃߿_f ;s*4͙M>Sib%mcVPY _4ㆍyl٫lJK~(mF>n9Kl`W2{zBі(qt2y~ eGT"G42I̶֭vle(3iL~6']9AJu=Y-G"]}Wـ:IF]=*I 7c pc1ٸ m .?b">߶9"m$eu{+i!R%'sWwW/cu̿jfL/ȷ]pu3jO7ߧMk$Lvnsp2yBty4?A~i$fd6Dp渿۷?G!;;靜iЎWKG!)_qSس5;In0sOs3cXZST{mTȨx&'iЎ+E}kt)I8{+$w h*&/.n/D$ V-'?];c@}U5 _#pą8#FټWWF`tDN0, ޽:ZKGQLL84$gXlYHw)P Iē䙧spلL9aQaN)RO+f+-ۿ)*bGy-1n"d,8#sNTv;;CAA(tz1 &GMȶt,bhEEYRo<>s!g!Fcgn!(*,)c'O෼IxmRn{u+ jm+g=k 'Hpn;ڠEj>#а3"nvxG4O= 3'Lar L] )!rl7LAqq1O Mh~[U[^ɔA.`N"8y}2VlXdžۈ+2hMa\OI;G)6䷞\TKjM.Qqi^=B^KGϧa+Ͱ~\>r? *~o#2+y6@J-@kӆW/%!4g*  W>;䈎ӡE˜4w 7OrK4/C< o]]|Vo$, J2 qy*":Y)gt='X$3+܊%H u:a1`*È:H:uH֏ggﳛ)wa؉~-]&#ۢtAYϗnWW2:趎vt,t] ,-6(=OEiiVD`v:}}2F<9$n2t=ʳʡtfmkۘQS[Z X֋={ # c|nDGv@X6(bWom`)l6>r>l(aik$ϬZ3+rɜkiZG ?"ysgčz/{(ג/J{v)l;y=:iN$V$Z@^I׆N.γ,eBҽs.Ώo8oƭ|>¨ {z,r)*&'0ByS~%GTeDprjW>×m'IXrbOu<:yv_y#&(0ihC5ûb) hMBc)/c)LyvKakҬؽ5;QblfMg]Π!f(^2?YNG=eg*e(+(`tm_Zмt)?Ҍ* %ЫReق?K +)4INB$ɖ&ty=T1]T a`~)ɀp NwSY]1[dKr$PSL>y}fil*CZ,42ꍝ:vc+(ϰ#6otE3k&(Z:۳蜦g:"gPd%(=Y.pGh%D`ݱ[A̙t 7̙Ǡe׶E/ƢK xk)3"(qic?eOI#E1ϣ#l XJsM4D}!{m79LnއP" |FW a4kCxWܘu,Uu~e(lmZV~7iܕo^m r(m,#.4MHqr:#}ݑa3mI=ڽ8ޚQnO}WS"^о5D=`/!<$bTŊ! ^¡S>oc a@8MѢre?l MK߉^ew~'qR-d관={!p"ۗh6!wMhS$ !vCUE HX^y0v%1=% z9Vpr hv)BKU70Ѳp 35U[PPP>3!4q"u@mHhc۞^EkWO~}B50 :$;k<ݨ08 hksN8yms]I"T:qŧnc&gyP+Kx|$;HZ"Tnj)F5Ն|4~ EIGܱ.&Kw\ʩ;~eQ/y2z0zs$wl/=Ǯ&~Gpaj0Gจ ~B@hDsUrTTr d ޅ.$C| "u {Ց57s8=Bm*E%2yq48TPP * _D\|ƃBA# cwL+/3{B`ѣF縏zg6YKF3Z %VisF䢎ͻwtV,V%:gw$̱p V@; ۷L"˧L7n܈(QTWf t-{w33^Eؐz|7hJWV;#LVf-$r@b"\~T~s!qK攃tǂN9Ɨ"}+4JBK<[YP[ӟhNko:Φ;qw /5۲䥗g3 n߄8vro*o,g+Ei~O~)Hiq!/g7cBI Aϊ*IZ^ZUZZL@zZ0G6-ޝ-L*>bdh֋QFyFK:\Jqr>|R-cDҲsql٫I#g#lޤ Ov INwڼx/q+6/ٞ ъ9R. @&%b]h2D0@3)qdC];i=]Nwr3pꥆ=z1@?S)E+L?>@ XaGk}w%ӈ:`6B3jTic`aE@!P&܁|]nimtDcWOI $?g[>wvr;]}>-pJ# 994 ]FN9dAB⵫3fGҷm![m2 ӳ'HS%amn;u?~:ٙ߃/%q_~7 & <Y<2SP!# 2$5* ! N ZϐG~y?g q!))VK`+(ldJt@8}^Pɽ7Jb^ŀߋo^lWcn]̝|)ŎQu@:'-D (jIr 0 I`.T{)Sf:TGsWt9pUV%gsi&0n8EIo)ledbIS~Z+#7ꏫ֠vO&C#M{ĂK}׃KحwP0ύ)#8)*1~-GO$\}Γ"Ѥs9'iڅ7 !C@]˘>RPa5ǛOݪ% gƛWq\udJ]0\5.qc ^ZF}VA7)Jd>_1eE E;>̕#&rة]$>#Yݻۯh)pPw|϶EuNɤ*lL#}Tk[F fܰĒKB1W"*I(ԍ?@c;]tͧ>x7W2}Xy>TڅX:?I]7T>{uoR '^|vLJ7my^9w'ODP8O5#HH6]8uCHb N,mPݒM i f1Ҹ0(J@^rC*bjE:>v4Fuƃ;9bӯ#n ]Sso!=wNs (vLq V/ e)ψ^{>h T5HD) MqB1>0ʌ@9 l߿7+BwO窋+h04Llh[.e:9oFP)y}2y (N0(+.4|!FVTޟ2,\ZiUI)yH2GkO3c /2;(;"vuE$[2Ioplry&(KhW~= >j2Jso- A+L ~<$„f)H!9WQ p9dڥbY[ ~R!e{%4& .>uq ]Wt,n0?\5j%@ pe$>{}; -UKHx}劬Ԩ5G>AMkےmGPP0[]g|% vhO wux٭{v -LTGYBS7{4>:Z>iǰ1iey Q3yQffި!*]֔\*rGƙgsʬUjWU?>S߻WW _C>U aͯSnjVQu:' 299豈0'>|Q2m S% 0t({5퍬ڲȶ%;q_#̽ܥ^V]+7\u eSӳ7zQHjI+lgʥ8vkV>qp  l;cͧpʒ2j i/Cϳ!s/ 0g܅>0{Ѯ'ykz|w!9$x_;?D Z;  9;o?U,)#h3aq cp ?y1ULh4*@i`}irϪveI@QY<8U_  c)pz0-)h>vXq$BQ3߸N} >-;BJЦ4cўӦAG.wKLOH^/D$yk^ g  \I-'Viː |n;<'Tn$y.!{>]-c~ǚOCp୽c9s&dBC &d'b9Q B_[/u?ڌ jN/૷ށ#^n'gC 3eqrC_=F_y~@Y*p[WAճ1s_l L?]W1_K XϜ4Av}9MyW=q4ۻ RX )p G*+ׅ1~ 'UHpaK-|0ߑزw]s/ y>&eDLɚwR'\z^>N_<, $ hڱI^| j*=8A<mU`G˅bI޾.&p@Aڵyv8X߿Q#P-A^V6޴ޓG=8t:{,9 $*VK*۵;0z'#-A[EXosdg N 8ȸuG5ڹm+n՘eꂶ,O!qבjw8ZҒ`ԷPZYEH*? {#$%U~ ﶾ݇iWTG=JX U1\M,7T !$Qtڽ ]l]K!NyUhW˪NVś#Pe$+T!+J@zOS  $ů(k^R,sYtxgKϣY R2O)(6u>m7I`"dH)ɿ@MK#66jVz9W7izQuPY,ӐUUZ"7${k+WnlnJpI@w/n}>#߀ve:ڠ/>߽ˊwP=PsѶ.PW$S_"$?π7d'6h~].[}A #1P{w/6 ;a>I Sbx瑓 ` o߃*; fM IP~#{9ˣDGwNYu?< 胰滰nizͪN">&U} Ͼ o?ԝ^gy5`LL;:w!jV*xpn=p/kqg#YdI%8T&hye  }~Y ߡ=֓=3IµD_gDH%$ja^bT`LR%*2alٵ2'پ?v{]*ꪱX޼WN%p\5\ޙ<38$8UT?{x]MW5$t|i{ۡ. 5>8uZ6i1pE|JPЗ\mi#>YSnI궹*'A$T=FV:O!!e@.?z.s-  g/5`ӎwcH4x]p+?ֻjGV .×n[r/$a>nwT%><)N^^vT 0{C:>P/ % =_Bh m PV"$y?O?G*- @FUB칸,=iH0J|˕d𠲾>ۃ#էћ [. $` >~,F\٫^ֽJ3z0~{K <|-i3PU yoOpjm܇Y !|۳"$%.yg'֠{I)Cp lX}GrN7Nֽ=aC!NUl_f$OD\nhh<6T**p+r2̚:>; {˾;Q3A2q#|ꮶ¥֕Do>1o.vW7GSM#/+}noM:AKXg*-P&ۨ—W߉9yF6߉}KN.t)$Dqrmis2r3.~-Ip0"x#zvgRInCZym?G$ WhO3#:B;4fdOܪ(Lc'/cCp%P51l01K6/Z坑#~@ݒ9b?E?8J=1T rl&LDK{< 7TF G YrNxopKo<$(7Kumʺ[HAUPT*Pg0vBBOZ:ةSxE/zCRY^p:dɷXRP8iTST9M.o8!- fDrr2]s%8:#9 pxT2 n,MIEjR<zNuvL}=^<З0 7^e%Ӳ+[$U Z/TI@xt$?d$@xW_C,D2.P^%(@EnBԩ?n]AC%=yݮ~m:7!s~2xPYϛHIN юQUS ++3 u`%x i׮?٭KuQ##w]AGYyϛ c NBC{ў}j}d{]E8Ρ$%Y>#Aȝ:ys IUv]+Z?b _SX6`3ILFLJqiHKNAW_[.L}=.z|-آ"h_|ܒEY(~=EN|LBZ&'Շ?M}o`@V3YK8۷~X_eر(Y23FV!U;~'ْLo[[b-y/D0a-7v{D-棸2#nhW}kuHٕ!gz$՟1 EFrws7ej'|ѝP4cYocy>mWp,ߣ֧! 8M| C]ުB$cpP̃D#T-_bK2.e@-tg+ARh(K 07~`:n JFz#7!{ƒ:pG{#ʍdy5 SbweŧS*ƅ;4g]8T,Do#8PVWbɥT"ԁ$mj+yHCm;7"lfZY,.D?DȾYC\ %ZlJ؟YP%-Ova)(upڸM=&A~`3rnq˰-Ur+@0&)DXdPn+Xߒ*A 6 Z~"ɧl$K(}@[ ݾ<'X#@}_ |f=PoYEvsOϴ @uW3v“M*Wi+T9YSMZ7|] F`;_xsI*߿#}rMUD/ݲ) zէQL֗%^)صw/@n*~oJ>whhW"x@COsi at^QmddWvL7)I[,~`Nz~Bmes:}2ͪd9 ڡȼ?ld{>ϗ# yJ'ZE˪$70{D_? '1tBG|Zw }{%BUlM^{bc 0r{:?z̆FtFYg_mpo_0?[sCWbW?Z A[`y2q"PY{]Ƽ(5s ONF^fU5]ĵ~#gOv# 7g7"I-vx&O`fI08~GΜ3 6EׇZ *zdtÏU%oHx_+bzdW$mTI[@ T$B eO>BOB8m5 JZ$:nKg/oœd1J1`vf+'Ū)퐆87D,)sԯP$ܙnw#}L u'Cɇ9mUP8ZDž(lV y+ I׋sE6]8}BXAG`$Z:Jt7/bQ(sD1/KHp~>1Vz @Vcx8 X1 }FÉRKj`6TA mꡀZUhN͛/GgHA۟>kJ5#͕؟pAb_ Pw pWW~~|h8!T %&gdޮWC8+ =ہ2́(N>wI;#ZۧDI1,sv8"]w?XCUoU˂9/f܅_2b*H10K|@Q}2}4u_[ t_P"BPOYEiG*QwP\U=Qh@U jĐ6d;!t9-bN"n_\.\pMMM;ӦMCnn.$ix'puwwL|ݹsl:͎?&Litttt].B\r׮]vnv6m#~cI_1n8L81h;FCC ǃd7X<.\p?"Pϛ:u ˅F466Z'bQlCW 5559s&P 1 hp8\.~'6oϩS믣' !p9+Xb֯_Y-ǎ$I!=>ra˖->@UU4wBcѾ/P_ew|8N6ˬY.:u ~!Ѐ͛7{lNyy%h"###ܹsxב> |ATm8f)));wncM|XFF_-ɲlٿ|̋`Hc8x (,, Qc~v=𔚚b̚5 ƍ$IEss3JKKQWWؿ?YC~/TVVb(**{!T{ܶm[}MQ,ڷ^GNN߾\n7jjjp1/n{ ;@o+A'ĝt]8úWF2fsC"!!!N@UUddd`ŊQ GCT!f͚9N?DGG::: /?4ݻA)Sr➒ ^Bmm-QTTgϞŁ߿obٲe礦"33999x獁qG|,_O?p_?tٳ8~8-[F AUU^ׯ ӑ_~ϟm3$']صkW8O Y}GcB咛egg#;;;/o֘ٳgGէ\. xڴigHbٲeطooϐ FP[[k ]]]8p֭[gngϞnz5os=gms=g~ n]xqv=FG;6ڰ NEZ.㯿}LDDDt2q*117|3~`ڴicͶcy}^M8ru^ٞ1c;JKKmg0,_/agyϣGFܗ3gbڵq?| #w@ff&^vTUE]]1u;u1X7o^uCpx@GBQ!mlpw>cɀf8uƾL4 V[N4:י`i0ҥKF'b#g2"++u[3 (V۷p\??GBB°{j)GNcЗ YnI 7@P8$n*DDD p_`Dr|kjjga׿n4ŋ{KCnn8`ɒ%ؾ};n7QSSc*諮.,_p㏱`B|">|`t:~KڵkFr<8y$lق|;a脻0f磲B?0;v mٟ)S 99Uڪ*\zO=Ǝpm۶Y]ff&RSS҂.cwx#N2.(eGʬW=f-hSOp;Yߥ8s{zz׮] ݁8N#86lx9T}}u UUq5n$%%!%%X3X.i89cK4v#d;kz3۶6|Occ,#i`9> ''Ƕĺ} Y_`)N\De] ܉B pK@e]-N\Ē n1A]ss37tvԄ;w eQX sp$-77pYcƀw}7&Nx<;#+Wv?l~G7N~ƠOM{ҥKūGHNNhW$}}}:UUՒH2,`3}Jy_K`$IBrr2{ujΜ9 x}뮰4ikk3_{{;>Ǐ[&LŋQ\\\̝;HKK-XK4СCFpn1̙l|}]tuuaHNNIx$%%up( 7qde P`Lϭ(٨VWQ_pd81""Qg&O?%K?Á|[2vh^Su+W\{;UUQ\\c!2͛89>t116w劶yyyxꩧ0i$m 2n.s<舦N<3gЦzos=2_:*ah\|9:|ꩧ_72XЀ?6g͚5Qo˅Vxf\z{??ѣeBBsg*_UUhu,\===ؿ7<"?__{n\|yT,PU5hv !ngr8U_ xgz\;%2~ါ.$''cٲe())<_P{{{r,'hllǏ}0P0}t,Yǎ~TTT'O+q{k@[pŊrWmGG}]G|Y[ _BK?~ܲڃӧO@uA$ۙvc֭ƾmذ!Y:f;v,pn7^{58t~6r =DZ^I.]tHVغu'( x~i書p햌;wbΝ’%K0gL>=c1R!D> ;@7w4#لjVcqI@CK*ADDG< _MXuazg+'n(//7Nho֐ϥKvE{ l9NCg|8ΰoG+TP . [l1A,[ #DZcǰb ̘1mmmx- dkc|AЖ;wnedBZZk֬U, *p|Ơ̙3&%4 59N|qۮ[ 7lVVybݖY5MMMhjjAqq1 G\@0@jXvtvuAI0Dۥ ZwΕ@F~>}}֬Y!_c؈^@~ 9P;v,~_'ۡ"C(غuqkʔ)S~ABM 6_Gnn.Ο?ؼy3q7uuuزeq.- [ZZcZ{'>O4 q%c~MNNƊ+0n8cn9r$^ĉz.i[:Է}'!eBBQTT*Y!.^7x{qM7>2Pbhhߡ3^fфs{o \qŔS$d-A yvDGGetMM L !t:-Sͫ[QgJV/࣏>2fE7Vn[.y˲ 6矇Dkk+}Y ++ 9'5"m77rx_rsX+wѢEXt,G,hsޕ+WƴΛgd~?+/K.EGGQQQ*9---/[k׮U,+))'x≈a?Ʀ)8c*T3:(z ysMF"``+9Pt, ySuϼ/}o v,rssO_6<wu "!!!]eee8uTUŋxpFrl/_n8i%-Hѓ'Of1Y:VƏ˗chkkCii)g۷#==K,}o;pJJJ?n[w2*};{1L:ugMKAm }ge5*92USnAO+gL2PI|&ŀ54cVc~ gz KG}1U`F!>oܹOb$ ,ٟG_NNNTݎ|B %%<@AP̴Uֱ@<\"g?\2m&>e9'NĽދ˿<ڱcGw뤹PU>(͛w۷/ WY2f!"b*Q?c6DDD7ǍӾ'wabٖE|N?ϐ@|7axŌH~qb^wJٳg?CeƼAjx衇a\v --:=Wfmf,+I6or[oe}9>{Uu,r1/_I"z&''IʡyOs|/"mY[4ƊOv}nnHΓ,_%G x(wyUAG_("""b#`ˇ951cj2IIIʇᛄ{BL8xLOJKKszzz^i&j=܃A|_} 6ؒ$)rɧN2~JvݖtzzzUTa^9Ԓ23*o4`M477H̯ƾs(^p! 2뮰?cp8p\Bu8i&c]{܆}n>;/vFZϘE3Pz.)vX8+ӍDDD pąh^#IqBdDz"'*Է9;;fͲOzz:RSSϟh0kHOO7^|x`ѫW?~|X43>26O7&ֆ7hժUҗ4$e}&pt%TVVf{+w{IӧG Ƭ`DWW?6`an3 4{hҥKAP_˗itvvZrҬZ*iiiF[T+B}@m&PP<@* kƱW^@ (B˧J*a>-!ލTp1O=) vB/*  ݭ*--ʼn'׬YPSe,\CpPۻpB߿2TĎ???DÜ4HOOxTRRe[߫]]]شih +׭[7dw_^tFy_->K~5k0ERdYƏ㰟r_8<f̘a[~iiiGgg'3g zl'O*F[.E0y?kv+ݲvǵvusX>@B}~,۷os_*nf[nyv O,{n+C BsUU! P${o-FѬ|8H n0n$NQUU܌+W|nOO?'/oi\.ձ@-}m K_1XSL9swaծ?[<\hѠY7 3 sf!U x?WދB= 3 P!~hYԩS)BڵXʕ+ظq#Z[[mۺQUU_|oxnn.|'3f̰ |M;vD`޽x7ZOnyW_}2bKKKco+WjPb }?c9roEAII N>mi7Ȋ+'a Nn7'__%]#͠7oFIII ***2cǰ{n<Fss3vc$'>HZb^.vpŮ:dG^^^DXh0MMMxqIUt. ۍ_lY[{ Fo|#>nbݾc˾j06VJ Rɧ$w6R] =/k UH ե`Ilɧ " ""FehÕDZ v2XΝCQQӃ~oHJJBgg'?Zw}w -[ TUUA͛7ĉX`RSSىr wyg$ xwzFHNPYYʠbNyw 777zUUߏn\|/̔)Sc!+++6677W^1p`ڵFN|`׮]ҥKEQڊR"򗿌'._M6˲;ö8q'Or9v덫ʁŷ^+V [p3~}+˗K/aɘ?>222p8t:҂ ˭)ӦM_!N}Ū}ݻm*pڔvcI9d)y/⶷s$.xP*)nR8@A̬^Ν3Vz*JJJ"ܹ3tտٸ*lxwba O_Ǚ3gK_SL>jo>x'qF*kݺuXfMz:,I7͛7I2lnb͚5ߥK,8pˆU\Gy[lAEEEXr=M===}?3!!Vš5k,+k׮Y7V}Z $a۶mxǭj9SI裏7\V^vˁfddXrX uǖJ˕1k,<3عsqLZZZbx衇0nܸAH}Ibھ$gmgdn.;xaѢlSup IFE( X0sn:#) """8F=sR|{͜7nnX Հ/%%&M¸q0c ̘13f ĉ/)c[n%+333eNebʕU7=INNNƷ-8qG]]{tMXz%g@8ud8mSRROby?>VZѾl1c`ʔ)Dnn.̙(t;w.fɻ21\r%ΝNo?.\UVE/n[XrHrY+WݡUS'DMM *++fj蒒PPPe˖aΜ9Ρ1 ڞXos">'Pp5}'@ |||eU'pl-Zq06-22?+,¼H 78{F$i+I`*Akk+!I1y䈃 q #.ttt$a̘14ieFHXW ˅$L<93-vtvvt"%%!2CQGgBrrr2( :::urXqhmm5ԃ~򈘏EсU.#AGGׇ$`ĉFe31RĪ}umgz _"펈F`LRB!ch|zdc0ADD41ADDD#~R"捉h """""""{ pш!l2ToLDDDDDD""" C@DDD#_k2VK1rop5""lh**DDDDDDD8DDDDDDD """"""=8(1ADDDDDDDq"""""""{ pQcDDDDDDD """"""=8(1ADDDDDDDq"""""""{BBKK lQmsEBUU-[x1$|Gxmv)珚Nm{'7WzzzFU=mH0jo Rjj*&ML:%FݕxߟzGs۞Ґ8W{xSTX{Z1Bh`0x|۵L %%B#Z?x:]9ֈ<7`޼y9sýJuev ZV]_țZփ遽e˖Xv}`СիUr.\P5ݳgO={ŋqY֭QF駟F͚5],٪x_|˗/ǚ5ke`]PPAaРA6ZAIWW9lX<-|e,Y;ovob@y(+U_۶mU1V}gyueÆ "66Vs=$Y}7vXP/]$y(n*v:}ݚ1 b֬Y" @3/$icƌ{۷,Oڵk'ves-R-֭[ ^x|:<(~]  SLn+/| 6#eY>Sڵkl5tPXmѣB 6L?/^FWC-ϲ\L9o^^3g ۋǏ^m]L>]uÇ (̙#BBBn+22Rlٲ=YbƌrʺޠA믿:uuGXso{ݞ"… iٲ?s-ZSNzNIIm۶uhqqq"<<ܡGqqxgJ$7n,N>Tey|wN1tRbٚ6m6mڤYWÇyyyp4nء{t:V7oP2AaÆjU{1ǫO_SC85kai8&O9ĉZwÆ |(G}}'}]":]AA5j?6[+ȣ%IPoQ\OG6v:r38up$S~Zp8w~7vXΖ?fSs[fFDDDv.4k׮ɪ}:.+99/ͷ||Wضm/4Ο8qT`„ ocĉ;v |ecjI&3f ^{5 6Lu S^ǏA񔙙zjLG͙3nt>'OT-۫Wb̘1yݔwW;;أBǡ5̑twa\7|/4mT :;&L_yMG[Gu˺gOZ^@VVսH:0ݛPF {ӌ3اt=(T%{=#ťKĵkıcmG_|j ׯkv3_n,Y"Ξ=+222żyDݺumւS-ZjSNY9]m\G|7"Vc>}Z4mT3Ǐw[KYf_95kDJJIII⣏><ڷo/JJJ<ڂ#&&F̟?_8qBddddL.˲E]y8pذapHMM⭷޲ Fzu_$ٻX^ԮZptE\R={VCSPe,X}@hn7"55UlذAtEsO>TWyhn>y{GMgϞ5kԼ7s#"""=yuVWyYͿc͊䊽CΝ;5wUbdɖ-[jveѢE WwԩN]ǣGV]oZDQQ2+Vpab"&L 6l 8 ;&~wlVZXi B_~Es۶mX#66V[ٳg5j"778s$&MMyWW\qi|G7Kc9Ǐ/6nܨy:Õre_Ū˽er6m>yv֬YK/}nժU={qK.-_Iķ~Ljjǚֽ M#n?~$((Hset!; P4B`r^洝;w1eoػw/ڷoo|ŊMg͚e״\͚51yd{ߏH\rjZjjK?5cƌQChh(yj;wիs[ !T_'7ʰK.xgW8lU~,JJJfi BFl>>HHH$`0`˖-vY i=:T8p 4h`5iӦ;wvG*\O?𱬜@VVC3gUG-[D޽mV뇥KZwǎ֪U~{4ѣ{yުU+y̻e=˓ *؜ֶm[lܸ*PVR^Oij[BCC5M68r+**B|||>(*V[L:[uoп4lj]MDDDDM!XwɓPw}vݤI4mIIIVv܉qɟϜ9C(Ut +Wh߾=Ǝ>}M6T/PXX<磨l{j-))mZ@R^^6mڤ:_~v_vmow8Hy`yƢF#Gto߾vJ#za9MʕU:Wծغhk:R%%%i#66駟`4i8*tod77ޤum#"""-<>hcw$CSN}zf􋮞Tq}Q{v0eL2ѣu놮]Cf#;@Aիؼy3v؁{?tk֙rKMM쾰~zdW7nxCFT_4qF?~ܡ+;'' 7_gϳJ#{:`L)/."I8_묣ǃ#<VӮ_zo֭.o}!"""-TBU;TKZX?|3˝(,X?a lڴ 7o5js=#F~n`deea֬Yx]~M[U;LJLLDbbi|ݡis߿wz7n}>y2QZW(^[J#gΤC:2sd ikf0ܕ&OeZV-|7MVWիW?/ߛآShLwm ֯!!!R+/s*[V:;pe_ZᓝxfwΝ;^Wy*V w_^fh됎;bXt)f̘O?Yu=%"""_Us xAȲim[rE_ѕFwB#F`طon݊-[hqFL:'Ov) ӧO n >.֭kӕDFz~7~7mrrv:ǿVyw@QW qz]V۴(qCŋeR9rޔއ֭[bњ'N(7V300S@-ZHW#UViN뮻>{Q~N bf| N`^h< チaϞ=Xfck׮-4ggg,31iL7k*j)**5+8Fdy:{*J򵠖,6w{,D ޫz]jʹW_ń 0~xL0ASJ|maXS75nتr{7֕+W[oO>kX-kcƌQ}!C.ɓ'k>x^pAs\MsV?ǣPu70uT'NXZJ3P"O y8}fVSksСC57n  zU-]-w-[bh#,W/I2VW.N3r{(AeS='9uicΜ9H]e5@cMyo:yʕ+MʼŽn# j3f3f|E>}4$I+WPݦhBQPP 5kg}V8qB^@_2_|6322DHH>˿a0BܸqCNjmjn ؽ{v=Y&(..VM߂ 4qq5۬Y3qsssٳYM$IVYhS7 &?l Ď;Daa~i.On2?G/n@sիW7o7o"%%ũsss5u8t1k\jԨa\LbU޼ySƺG|r{.] 4pK:SA_~=gCYm˝UV|<b./vKZp$zYʕ5O׺.[Z닩\SFa4=0;wʹ9Ķ"-M>]uxh{#it5xLDDD e2~B- Ǟ={T6gxNXXѪU+}ƒ?nݺv^7%!+VFvV,\jgȑ#ݾU촎WF0`/_nGծ]6l@ll]T:8Xq9ɻ>33::ׯL߈#cZ81n˗k#L 4nF°a>^靘XߠoVsi=_+:ȑ#K|MǚmYto^.\:O1U&GR-{f\UITX"fΜYfjժ[nغu+uf.m`ڵh߾7ofޕ+ٺuk.-Z`˖->|K;Vw[kΝ;SN4x`l۶ ]vux١CbΝNj߾=V^vZG.]|rʌZ޻uP[+… 5_i˗-WW֫W}GR W_aرw8yW`V˗u>aŘ2eJ¥cu?Mz5o\7հDDD2U.௦ѢGw{+Wɓ'6me˖ɃiB'>SѲeK;b͚5Mwgs;ANjA M{-.\h)+6n(ٷ'8p@ٲe3mOu (..V?\F)mAݞO.ի:_֭ٳEAA}vo>kaÆ]4JrQ;w4h`6{Pva:ziK{?Qf7n,>Cбu9heyouW7qpQ"""CNK {-79wRRRp5J*Z*6lhu'N+W`DEEy̟?uJɪVz*nܸ!*U4j<"-- IIĪ"""ТE +??'OĵkאTT QQQhР,mGAjj*PjUDFFI&n'ּ !Ǐ#33PJԩS 4{_gZKtt44hFpo[aa!N艹4mopE{L/`0M޽{͂tm w[yfG{y"?R?_|@DDD)@㩇Eӧ1n8|8p :9ݻ1tPtaםa˗uy8{vE[+^+ﶢ)w:zv; lSϘOSPP}_5{ЧOԬYHMM͛rJu5lGHH ;`ҤInYך5kЯ_?3%͇E^xQN:,_5x6%""""""){/v؁Xi@FÆ qF<䓐$A """""""8x^~~>/_/NP 'I4icGXX 8J˗g$%%ʕ+B*Un͚5? H'8r`Q2JDDDDDD7Q Њ#9_;? [pc """""""z pcDDDDDDD """""""y=81ADDDDDDD^! 1 I 1ADDDDDDD^vQ!""""""N p( wb?1ӧOFnn9225jԀ8WpobccxBDDDDDDe ,ܹ{ũS0ԭ[-[DǎѬY3A"""""""*. /_ƬYg!''^ի[_j[AK"66|lٲ}O>,M""""""24'OƐ!C:odd$bbb4ߢW^|2(?P8L9fΜ7|jq믿"'')))8q N8ٳgaÆfݻnP ?Ǐ7Yfؽ{7fϞ=zRJ4???`ܸqHHHq̖ݳg}]U""""""R p(ߐ$ xga06lUVcǎv3g_zM[rYf}7V]OlŴi!ӦMHPnGT~or$"""""W53gw/":w*T>ݻw[~=t L!<<5kִ[OFFF_DDD <<\ײ999trss0DEE̗WI#!!{1n̘1NW|t:YGXh,YLiM6ŨQ0j(T^G?Ϝ97`ҥK|r/rSyuO< ucڵX`VZIZP4lCŘ1cPN2gf͚ʗ`?BѣGGHDDDDDD!Jh?c @+sĬYٶm[y f6_-nܸ!^z%֭+v2ׯvqA+]-ZGwE1h y$IR]rbҥyVSN՝j{ǏDDDDDDDR&fMB:}޷ou-Çcƌ?w'Nxt< 6gϞVȑ#8p pit?e@Kul 26lQF}h"y߲e]qƌ.۔zlܸ͛^Itu%yn5j1cp]wjժšC0o<$''dffbҤIV6I&1h DEE!88رcK>}8 .ϢM6 ENNߛ *s=cǎ!00,->େFbb"Ny2X|wÇGDDDDDDn%R~EVVVj6ľ}V9A˗cV=cXdÆ ̙3QZ5iׯ_ѣ?})bKvZ"##xbCuSNaȐ!Vony'駟rVӋ0uT@ X 2ZBRRԩS1ay:vUܹs}9_{M*Uu[&t/oQ n@*U0{lTX{;YF35·~:gϞ/T7м書̾߹sռ~~~Tٺu}2ADDDDDDnW7nX}0iz͛7|`TfM!ʷʲ1km]e˖wX$ Æ 3W_~f9b7rJCYGDDDDDDnW! 䊵 eKl`uf]`e˖뮻>7kjU-52|y5kݻkҥKfW^<눈J5wOXׯyZwwu7҄}r U tѢE0n۶?kW"""""""Gz___*ȎT[ohQr$p|̋L+P$IJW Z^kXkѣ8pzϏ<ӯ&""""""Y_,+jJbnٚ"44ԩ4tVBi5kĐ!C̾SvS19++KC$GDDDDDDeB*TTo*$,-e.?fTLڵKoE{ UTGDDDDDDQ]TL-8^zKJJp9)OchٳYرcVoSYnA{ yL8ѦMnRR˕ .XSGL)?Յ;bȑf)`ٲeptڕgyOYl6 4}h%]ӧO}&Mvhi4hپZh<={!;|pձW yRp!Ю];-[\] J$Iظqw=z@@@tՓGRRMeӦMf8Psy:NaDDDDDD2iѽ{w˃jfffbͺUa…f JcԨQf߭[%%%fSjժN:5akODDDDDDW5v4** GB;8دiii60x`VB=4h"$&&ɓw#F@Ŋ$ㆈkb=z^ٳgo}3 ""{Zl:ȟO8I&ӿ2$XوS&cp]w݅W^y$M8_|u]r0~xR IFa]||V*j'"""""G8I&M6fӟy7Nrbԭ%>>ݺu4={6"##gKI~41~~~nߦ) zj5 >,mfuƪUOڝQ+ˍG^pe> ,c=ݻ;@@@233qIطox q!`V0`V^m5Xzlقϛ7DVTۼyٱ5'"""""W h֬6n܈!Cȑ#yyyꫯW_Zϻヒ7xCv]cؗ.lY'Æ pƢunϧ)=;wm6~""""""*[>!͚5öm/:\nڴ)֯_':TZ#Wջwo}O=\_խWVMLlO?ѣG#::fo߾Xd ۇ޽{J7TH#Xw3 B . ;; w܁FJ*eM6ol`4ѦM>|Э[7l߾5 8{,|||P~}؎#99wtDDDDDDTvUS>^)}HzСCܹs3/'iOUD1J;goZ_r>}VvheCDDDDDD?ͽ{+M%zdffb޼y2Cڵ=< ;+Į,ԩS)/OzKw """"""/ ';Ժ`֬Y:u]˖-*?#In޼Bصk  """""鑛鯿:{=3^BDDDDDDcp.'N;C{~"""""""wc> ~7dff"&&={"K IDATȑ#q]wL 9h4V[]QMJ DDDDDDD8y8&v1!""""""oy=81ADDDDDDD^"""""""z pcDDDDDDD """""""y=81ADDDDDDD^"""""""z pcDDDDDDD """""""y=81ADDDDDDD^"""""""z pcDDDDDDD """""""y=81ADDDDDDD^"""""""z pcDDDDDDDJ=!p#ӎ;S~#ƿFS$qomYrʉr,SpTi<~/ <:r=eJgj56 nS>jaY^ٔvo8oL׀+jժ]6 ZxNIIAJJ `009PTT3gΠnݺ.nD/e _=_DDDG(**g}æ- e9閇9-Zv GѢE ԭ[msgڞiIOOdž pa龾ҥ z`+))ABBnj[j޽{Zjn+tlܸr9/ԁn:\~]u5kb_~B\7nԩSfT !h4:K.`w j]Ono߾ѣ괬,l۶ '5͚5faa}AOpC+PF h4ztڲe,۔>| 믿߯u50(p%=v' %397o fjh\>5ofWC`"""8g*ƦUJ֡{ |Ãsff&v؁;vuӧfȴ;ҮVvѴd|wϷؾ};N:#FjժaHLLCɓ5jZZɑ>}#F0k!VIۼy36ol3])))/0|pjÇp!֩y Cu #~~T;\\pM2.\~Ν;ЕSək3- b 8p@qw)95`eTiY^$;;ǏǟٲSJbE96dDAQxn3Xu#Zi=z]80`;v OԪU wy+UP۴j 3{õkpQܩDEE>!s⨸.֯_;wv\ V\)nY&F*UX;۷oǺu;wD мys9a:}Ae0 ۮ:M3gA":t[9w\?^ؽ|ǯ%\5`ڷqWA}([Sb`q9-GAT~|J{zMYOPDtxB Ю];;5k֔+?#tו}ռߓo>s߾}56;KʊMmjРz!abb<#Gȕիwު&88C Gs!99#o8~8!bbbܲ'NmZ2VyZ8\SK㤸{&''#55U5Gڵ߸q\>塢kN5$11QŃ;oS4kUaaիo߾xW1rHv `)kݳ,V"y^8i M=@ 偣 }G[rŘ -cz]Ν`pʭrlddeeM/((c*7hBvv6rss:.mr$YEmУGرͷnTV :u2 ;HPPP wMPK]UV*: A_t1_g޽[^K.U_fMԮ][W5Ip9HR֜l`|)PVTPݺuرc+GVF9D!+pF6,jő烃`~  """(AFy@rIZZpܸq*Tw܁hq… k*UB6mmŋf]>|0;ptZy޲e}z:^kj]Ly1uuzB8a?˖  UVEf C:,,,L+S~^2Ϗe-<ǣ)$SkXʖJ>,ю0-eXg7*r<(VI0M-f ]ZC7"""~T> lڴ ۶mмys<裪K.&MM66ӟ"m:Q/cccb!99-[\ٳXr%\Zݲe 7o NшݻwcÆ ǏǶmP^= V'hҤ > ?^3q,^تW"//B=z׮]Ø1cPR%_L#of5j@PP222gϞŜ9s38<"A%u-U*URlZ_V-| w6/̋)۫tZn7//Ϫ♛kv,Wگ_?i$`Gqq5Ej=M-\NEV!rssa0PbE:"6X"bccvmtGUav^v {1d+gʠpTTەkkvZq\2D#B92 -:nk `Q_8cW/!6=rV"""8Jzz:PZ5 M4A@@q[Nرc8{,ׯ#GGGȑ#B̙3;w?m۶ٳ'%%%HNN?L`Æ xU+퓃${Aǎ劲hę3gj*!??/Ƌ/lbk| %寓7=^?Ӭ윭,XEOlŲ,M݃lA$R+h4jNB``ر.]To.гgO*hذ!N>`4fff݋CU\ЪU+tɬ듳lǎ]:I ]cʕEn> r9jC>IZ%IRtt&p }}`\N]#|օ(GeZ|#""bûծ]#G4Ekƈ#0c \v .+jo*\fe`0+Q:u€~ELL {1̚5 $!!!;vD͚5Zqɯ{{6AÆ O?Gff&222o>_YU^ >WtXg=pI 2/>>>`+/6oތt ͛7G5nfRRN:I8Bv&VyJ qi3,WYA#n :zAFrGyDw@@bccXJJm+| _>,7\2ľvhݺ5<+HӅ8|қ{2}t˭O=zkB@C3P__i1RzKmm])//:gnE=ӟ'Ni}3o+Pb2>&C{{ehnn Rj)? 7իWqFdeeq뭷ZY5rF]׹YlձtRfΜȑ#1MCYh'Nȁ{+iKxҾSFܳ?u=L?fbΜ97S4ԷJ ۟].bϟPUd|3gMMM߿]v{nkl#pŒ @!۬_=ߩ8sSڶ@N @Kg[_C@$sBH &Ce( BPaKo)_#7~)1~a}ΘZK[\.^* eꡰvZ+N[o5֧LdTJGroG}2ڵ]v'=痿ufWn~ۺu+{>ho@2w\q ZZZަgk;Gqq1ӧO2sfogܹ̝;6o̻kW^y!m"uYs-38@==UC7KUZ* BBSM@ R2WMMuMiii1wN2nfGcm c=(VRʌ}TVV /X~_eʔ)6p4ڣ&,&M.\rIBp3f|1;vc&MMM/B_-ZָMvNss3/u?:6㳆+GJo= 5Æ\s5|߶<+{1AEկ2uԴx[Ү^|L?ig$!2h\BGP(.7Ro>_.|>_ʯǣ뺺-mFwvv:n&_EɁl/RJ/^/i/K:DNJI%KII 7x#_='O4M@a$CadBDY4z*Af'Cʕ+1IgDVMXbE矷&rTצ7UMG'~ːs9Qq"1ŋ!|駶M s7ޘ_w ={:pYxuA٫$ IDATy4M?k: BP(3D idKIw=HHgxRfR }JߙND׷1Oyͱcx1 !W_}5\rIUXX,@,]@X2DJiLƠal߾ʢǎK0^߳ʢٚ]FcЩ⟭tu묿/䒄gj7.+&-tM0e=WC=2z|?~ܱ!H(&A4"NR OBI8{DPL BPϤ#Ui{G&J@^/ T8z,)8rHL`L땗G~~6:Fiwg=2 7bĈN*:;;c>Rc=fy$̛7/F뭢hwNtdb5HzSǏ!oBƌx|0cǎYx[sx٤V܈,̤Z[[y衇?}-ٶmuܹsO< ---^j XƜTs\R-*jhh5,X sUwCCC\_gۣ04 ) )˯.+mCP( eL \(}͛te%u3fyf6ngB2̙3Yv-RJvڕ2@bss3a?y)%h3R׏?؊zc?NCCpOx*/xO>)lRɒJ\ve [Y\.}K,v!5wtt?)fҗdz3:/o,sMoPЌ'e09g&{C2 BP<#GK)y8uTB{~QQ2ڨ==UrnGq{gbD ywxgyyco!(^qݴiV~7o^'7|[&(oizjݛr a\ 8i$,Yh|I噑IΟ??#Y"mv08z(oٳgBK,I3zիWLL'UpD'To&"Y1\`);v`͚51H\ }Nl޼Z?qD58]{H4-Zd=Ǐgٲe޽*w}_~Kk{`a=Hk> 9Ё/_甇L[#u6nO_ * BDmQqv`^{5l߾O>;|9z(;v:_*n,WhErtM)3\TWWs1Ldl޼Yfa444eKqz\|Ŷӵ^ÇKr3f<---ܹZ\uUL8Wmryk.Bb *++1cYYYcR'NE<=Vb@ȓ-nH")MN8a;d2NgΜi|8q"UguV dB#9?^{M k^!:u0XÆ4q缊xIUBP( e dW׿u֭[ǻロr0o޼l%磨\?~< "QZoPYYƍqr'M_)|;lذ!#s9̟?ʐ۾Bۨdڵ| >}: , "bkviM2YvMii)eee7'fɓ'o>~?{%r&M ,(`L2 6yfbƍ⬳biytuuYَ̟?{D%&m~ڊ~ܭ_èJss3hFvv66z':Whiig*R&477܌ax^★2Mf5Ţ,`uuuVZNOaaa'k4ijjN<FNHo`*3~AQ[B[[* BP(C8"V8*GY߮UmRw`P3Q,[L BP(Rq8c8QuTʤ⳦+j̨Q( B;4IX_fOtLԜ}ɠџSY;aNRp{^~ V d9u P( bG_œ_q*B= BP( "3҃t*m/RʒR=*ÙٶgBqP( TQBP(CȪD BPd@P( BP( pǥ@P( Ő=7^P( Byp( BP( B(BP(g,cCP(ʃCP( BP( ŰG8 BPv$2 BP(2A8 BP( BP {] 1 ̴^& 3tmjOf4e#T(@P( BWvV] BP( BP ]J9Lq6uz2wO޽$L) BP( W( `BP( BP(C!/^p=R~JNM8> zI-:gxBP( BP|Vp&HSV~DBP( BP(x=8>nS+epGo:yR(Ϙ Eֻb( BP( bH<8-]QgLG 2l( BP( řȐ!D@*Eyx~O֚;2_g3P(>sDB5( Bpd.MFԮ[3K3!B;'2dQsb8cUU(C!gq ÿI)QWLLX= 2e\>~p=|!L]Njn:~PJ M|3G-j Cj7ն bYCndjqiB A0aes-Т4T bF#-kDyw9*A!&CrʰqDbpU@E3r5/IZD3`O=)Bme >E'jəNmv=VZZʨQb0 >C[-3IAU Лv466yfoNmm-'O$77cr2o<Հ߿ք=3fP P(#"VjMRjEXi"d 2]vF” 1 :Fnp2"W]Ak9| u454d(*+c1Ba iF)=T0C 0 jL )RJRhUt&]u5 1zL9zDVM룲KdD)& :Oюat!d4c0Bsi A!:Q@6%e[; i;gPfm|{=֭[Gss3SN妛n";;{XUDFO>,ePޱ3Pįk|AmY`j,n|Ʉ;tOz^ݹGꢼb_ݻm[ŔݕVe{͎ؽ2AS@CT}]}^a } 9BȄ6p[F'fI-5ZסwwpD=ZU=|} \E&)k+Esx^o];8u5z\ɼ.4Є.%b1{%'hha9M2؉j GT/=L|ʔ׺nGcYUP(Q7lj`ݛczNVIG1_wd`g'ֽłg%2:Ƃä3 1NȘL{$,QJib Ɂ]ۑnKLڳ$_:7dm 4XY͎osɼ<-/]k B̙18!1ѐO j%&L mA_ hgÛkؾa=u2;2$|IĠ#ma9g!AH<&z4tvO5]pΌ a9]=ɞS]1]\&&L9$H{wx 텛Jnvz!z!̙s'?;3,&AxI Ke(CP(>FGc=|XDI3q {/t""&5Ӳ0KM쳧r#u͘AG鏛5iarxw%rWaq #Xs=ʁʝ MhG6 BtSzX ڬы&ߟs΢F:M[ ! |Ȧ}% MHjYcU ݝ1hh2cuɰ&|"п/`GV~6g3Z0Le3DD /nb쐜e \ѕ;__{ewlܸcqM7 ؈#>U —˜\t{Gˠ zrԣ28)2vESSSn'"$'''BJv~P(Ϻ ￾vn4ХB&L:0ט.A"FImIIP`䈠K{; #rB.MehƻʾM4{^Q !i 1}DyV+MKC M&Vpck}ٷc+i95 ?ϴ)U|쨐6 I0n>h7GS_ }<%(W{{;_yO2o2.}[PCA'5b'FA\x)QJv.QX"tr~l-S @mעF" L$At-T'ܞsEj/z\#ҲB$KX&]ۚ9vtG-I& crJ-7mB1D~ c/Zt[sRNnq#ˊ<6AIjmѯ%)%R7rrr;w._~9GNy߿ۿe߾}mfʕ,Y%eP(ÕAM,"vl%ly3$NGxno*QOsI ,L#HkCtvBL M{w젻dZJ)qbOv()[9n )(xөP|'c'k+7>fBvn-#SYnwD_D#7qAN&`t3j|G}y{?~LѪ*?_Fo+N$2~xz)N:E[[8ք Ғ!Y]b0@&r Ɨၸ`T(* Mq.xhzg 788sxɤU#B1\'1iBIkNѝ~5]dS*/Z7@W\HaAnMFtqummj&4\s it'ד"dI動_H !_X[BYhiM$!-M6 mM44zL/&n]#\'2~q{_RHAQ>n]S:y I4 iԄit9i?v<~wopUW%dG1c/_=[oųϟx IDAT>kpL~7b;TdM[t8*)w(/b3p;Cm(r*+:dbʆvcCOk { papcpH R~S3 ^ ۃ]>W+v5+',9' K5:4mEքފ0\`HKs]<#Dś#7ॡͶ<+]SRS_Zn쀗PpQNjC_C}*[qn|g=vWtҔi_-Zo[NK._*a Mmm-ʹOaaaL СDBuu5'OŶl0 ;FMM YYYL8כRT;n )((MR7AMM uuuAaa!ƍf*JpIjkkihh PRR2(PtvvRWWGcc#GQQѐPv'???i; t!ʸ{o]]]Hgg'yyyPXX/"s)3f,P(#Nuu^ @BG[+FW' m䓽G'+j0_㲧Db?+B:3ry Eu[B 3Tt^`O$mm]m "`#>[vgb-Vt |>ss)dIL]^ c61l0)#'P?Mhxz]Ll֣ls4 ̔ 0XtOi܈Gy'۲e o6W^ye)[oS4Mx 3P]]pE]_WUƏ߯2/9f_j*16yd|ALO<;v찎<y~i !n\غuksY^^βeb?O e|__8x <˗/СC1UTT;3QF9H9ͤo;3#Gy(|/2+VKxWr[F{7&痿eɋ/ȫʕ+innN8sa\)Sjݻ=O8vØqvs=8uz+?ASGG/"V矷mٳgs7&Sw`=_e~XNcѢE1s} v=ݲ/^ELMMM<,_ 6{EE_ַ5쌟 B1@{%4(˗/wM8/>X?f۶mI۱c;v{O~b)qƱ~zZZZSUUť^j>ZfMB?v?vڄ1D;m߾۷'Sw`=_xK;v~02GYʺ{lJvz7IUUcg?=+VPBvc 4cӨS Β!*±26"dY!DhJna3m`Ŵw t4WRYHY̘/"ka,LܚMdΖ\Vsؿe|SG\;Etе q Fryqt'7%]C^f P3Z~r~_D+A_W2_;3q1Y 7R-۹;8uilַҸ{.28m}#Gxm@v=N??9*E?~ŋәCjjj2*ĉx㍶&SA_YY7pCRF4o&7p~\<\s5)x~rW~q/DnN]ZWWg[?)%--- //-[5\RQNN)Q| ɶxKGHYN}TWׯ_… =z iӦӲP(!``+@4&R&B4 .zz٦7C Oa"TA\HFnR!++ URddIܧma9 r5Ivic# xqceee׽444 w뮳u۩x ~K_~_#7R|{s<~: N?蚖~D2rӭ9\ȐN$mBK+5lcظi/_O>M- /,_8K(#LBex$fuJŞ={UTTʨs:ȑ!?qwl1W^pRJ誟Ï~#+-w%UUUtAߝ(vZ*Gojժ!ꫯ~R??۽w)1;w;Nu]1ۮ"\xᅶ|뭷lU0^xGE.8E1ӶΝ;wu8p+l)C=,ķSYv_R/[/~W}ͼP(g#MHǃAO`"0衬"YYj ;hI Mdk+l֭hm>Dkm֭߸YVFGǫ'z]X2yfrrCTvy| v/)M|n '$M8-p`[XVgں!YG(qhL09Y1NVNvȒ!DדA -zt(#P^v[>햜DlT_MMfK]Ci"rQΞ )))=ǎx,P]sK/q1ؽ{7<@ȸiý;BV\ik83f [n??۹۸ذa;^aXlY[\aСC԰sN?\klْX`/BB9yyy͛vjii.1e|I:Dmm-{eٲewKgg+W^yGZsoYJ3C~ǹgaʕǃ|I)a;:0~R&o_~yL;VUUq9x3VW\qVJ(++Q*σ>Xo{'Np~mǸ0jB Xўq-x<^O(nH .n(D 0Vd2à#wRz(m4q49O*?$/ɶ%OdbפD n];ia# d(c)H^A\:Y>YpH -lȘMEf !t@HjHt '4ҁM*U˅?+ "^<~%6!]H|^7j+'&@=&`Ouwru2Esc"qK|) Frr~:[NYb{2VNq& χճ崐b< Eȱcx衇lgs^IZPPiӘ6m͛7Z=FJ[&MJ}ۿ7裏43ENNW^IYY^&JKKظyGcӒf͚YgEvؑ:~|<#1]3gru93TgժULfΜիc<2e -kI+fxx뭷l]X""sE]_n#ҥKҗ3n<-CB9{aر=`R`ڵf5bصk2)ZvRRPP)vjϗGLv4-qwڵMń񖟟v|"iTe}s{WwC=v\zL:5X; P4( \,^/wr>@~x< 4:[<|}7]=&8?Fvvhl7w~Ğ M0%ۇ"77l=3qtv0hrG´QNk݀nxշxɕlٱή`1#aA6tuS} NS`ü#.CrxGKn~y^ ਺EnA!K=r%?#L6B My PTT+:. PgZ!ώhF4 .dɒ%x㍴]<{ AMMdwwĤIXnj9K0a_2kuHpZ _U9Scǎ%,o~ >F=c=xSB^ѱ{g`{ܹ3FޱcG퀑TlUN2'Yqo{ŷS<NF-[8m8=_?q.y[-mv/+Y5O=q#>CیX B4pdl/Rx=$-Bpڛ'_7{bDFgY@AsM h3u^޾U֡:C ' T'fC=&y=$GK#''.}S +Ov6,/ b=]yt|Y^ qBkywO/]cK(J`AֈU0o݇WNP;:jnd:>7` L4L<. @vN[H~ d[r) |> Ѽ~L\f=;4EBd1!h\S0-ͫvüq ẃ6K&LHE/dlyxr?*=.MGNuۡBd6fkIzӗw}wPUFao[3f`ٲe1~a-[ƬYltqbҥ̜931y:I CufϞm+sB:eRN:oll95k8*^zizd%y/6`^zؗ9z뭎7nܘ\pF+SNY޽Ee? H작nqnٸqcL}R=cCJdxM7zEjYkH!23;,~Dʊ#|1F{n+^ښP(>ո.%eZ "8K]) /)4^~uii38rm>HR -6jZEhKG1ehHcc#yS' P_d7:.DA|^F,#I(BC^ npML sx|^ DWPISk`.Nuv;G/N@pÍԛx9ɑ&):,D7Cm ܔ/ !k(ō4aRR8bh [:hj7h5[ˈJSDXΆFق oEk'L\"uS6jv!)-/[6`H #3$1as)BzAۤ4?Q!0\3.MC٘rrq"9~/y#JCN p>ͯK5"穮.L% #hZml%}L>,Js|d.?B=ؑ*,[g?~1믿ŋ7rjkݘWb#?grWs};`ʞUNYg5d~aʔ))eB8ze+}B\. .L8CPSS믿s.^)ݬ]l@)9?_VtNVYv"}ϣ>5IP(*("4aL@H-$bdY?#'N@Z#8V [cbr IMבAl.kA=n m@=y-5tS] $rG2r4d;gڐ,1(;N` !A7Mr|# e9rC&a2ftkѐx݂q,_tk`Hs\60%di&^KM< JLSsw 'l&NpZ-C8JǍGfS@WcDYl&a2vT'GN;^]/g[F _\~%gMCh+$g3e6􂎎92!cHdqU>M$Mtٶm۶m ZlNW3f >(_-y7,#Fo~}kC.EmmkdT_N+Ң 6sP3ɍF=. pwKI&YAl,^v /`h|> IDATO>qxӝ3i3Ut͉cSSSݦe9ͽve !"8 B(BhT7 .gLJhEf2:OyYY/c:IR▛3mhFqł90_>/<A+Y(-D# G_ 1Cqi1eF1zTϿYmAQ"M2}NȒB =] +œcY)0\:-7ȴI#]Õ^Ĭqi/IȘy= АeS^X`OQL*EALQXZ)\LٔSRZ̈Q#9u&gͿA-9{q>sF0$n&b|Eu6P6j#bƂ+)4-$gB&ؔppLGYܳg㱡oI%g& s#lѢE̙3'kN8~3MOSۇBnk[_L1}l[toɶ-8og{Nmmo{~$G$=lt^~5+2-[pAJgּI2Ng"7c,>w .NYRʄpJ)3֪{B1pRV2 ^C8u ]E ): Pa"Lygo:(UJiQ^HLf?|RWI]OP ]H$b 49I%chlr/*1J JFsU {|NٹL>{:œ+FhRrgu1zL%Q 64DdHto6%o#%NGII RJJIqQ[A;rKRJwk+[T %#.Z95JpՋ*0iTJL'tJ{ޜ|w#QgB Vdx DXF̙XNIIRJ  a(-S #G1x,Mt"u7²Y=[9s;p@&MdÆ HڿTCAERz8}=YnO?4پ}{ZcӦM\2iV6B"Ɛj|pm.}L './//&-f)S0~x>7l؀a\2ry7&x]vc38Eo:$tFsj3Lq0v _\P(GI2Z!xdιǏRw(.K ),ٻ(ْd-t5)M@:z+^E !tD{ ff֙ٙy9m}9=@ ! gѤA XXԵ=r r.E (W3H~!z ¢k &jzZ "Ľgؒ¢c lLu4O"2: Q0@rFhԠVv XBJj[ ``aÝԻ(*,FU+CdX<gP;003 8՞j Z0 XR(nƩ3T g(Ě@b%<_ z uń;l|B4"k~Cdܸ`#AlTP Tkoq.:EBrõ8ضmz?nW{fǎ҆x;= 9f Uh,G||<#G`ǎؾ}l1U>n݊3f`>+gWw!OmjJr+ pݑ;Y>!,ˢ[noڵ ;^Rn*[+AN ;w$b MYDGHo_gm<.|4[ BhpBk`)p Q~zgw/WRlMXCzV>V3ڏIr(9-D3g`CEdѤ t*ٶX7XK"- KH!7C`wʊ:{8@ -3W"3+7H1rjH:w$7fX@X"TAƍaX=T2V+gp(oqހ`wATL)) VxZ2mq/2Ig\p%E[-`0?wi5nX6駟駟JشioT"##enݺ.eY!..222p1l۶ -ݻw%oJAL2J)Htڵk0$R͐˗/JȭZg[ƼyN={=/ׯXׯlаaC$;tZIN1V&GG)uIYɓv@ܖM~:~iEBe//MGL?`4z@F½ql',,5w1VٌGd0873sQ!/Eaݽ;tU*[_b&$6| hXu|z1b+YOoaϛ|/:|,XIyЬ Cr<;<uvr咺&5JNaUMhYgCO4NB&m~ y+xj],X72sQY \2Adt0ֿſ|2do<,f'7o̙3e֭]+]TPjՒvϾ8PkӧOǹsЧO~fddԩS_%Թ-[^:L&o7o.STn]-\wvx[G dM&9,ˢo߾kn:gI$WRٳctzPn]Yݑ#166V-NVNܺu VV͚5esA< 8a3ĺX@ k]hB1êvrss~0ѣLX3:gڝ @p( :=NgO0.N@g3k zk}RgcǮqÀbPwׁ!ֱkQD ܶd̬I3'';v탅ojzIih0 DdJc'xGmڴi"ȐQF vJt:^|E/lܸQ? qR+W$WN|'c֬Y@S\OS%Sxb91Lx%]nbb`oid2 |Xn6lM8O. :TRaлwo;Z&L&z衚NbqNL&wy la\a[ׯWVѠAk⪄sc:t:!%)oDm Dt)@C d[8!89IڀkM0 a, ԩ,^ 2,T"kdр?V\?t:D+ *'+O ᡲ}󷎓B0:XSWF=oǭ[s='[vv6kW4??l;v2ap#ۘ1cW3B_={?@222.\]x6lP)kjjvbS3w}ė_~$30`OO*O?T ]tQ!;w .p*m pN|ʲKu,˪~[VVOnțT[[[rHJJg}&\[>%%Ů K.UO((((kVtXBCFfS` Q`Q f00CblgP%+'h}_ xEt%8X>=Viy/b` FQ!*:ZE0#9h YK9*Klܸ/:dKeeeah߾`)~iӂnݺܹs1vX\x]aa!lق.] %%E&LpxϤrgrm)ӦMí[@Aqq1._? (((.2j:VV q. X? 5=FϮQ?6u~E1< kUEa4cמpr3 b @`R?2~I, 9%` ``)e1D`N^!-fcֵ ՏS"-FF:UQ'`0a8tx?F0Wp/}D `q3A`+ļ?~z&nݺ 6N?P0Ν{С0zD8[WoN}97|_~Y=ގvz` +"ӱc[GFF&Lz *T@dd$^\6 [E'YQ^=+Xxo'O1j(ԨQ>n݊ H>m۶KV3qe:uH X+?ǏGtt4RSS5o>6ݭ S㏈ɓKƍqF T~~~9sd a0|̟?(W]&{T'hÆ s; àM6ǿvIw燯Zǂ S1tP/=^%ycxLJgjdߞR[ 4/e˖I>uTL:S _c]XXCe^_ /APP" l\s4nwÔib3qeFѶ :X [)<kAbDg7FuF:z L/A)`X "6jwcʴOŗ_%ka yiUCuߵ8Nh^ođ#` *<(*FqA!Z>c;1eڧq%8gZ#%6lNI0 7n~APOhDڵkcɒ%4 %%OMn֢~jiӦ q!=:t@VЫW/|u U*x` >OmrÛ- ;x 4mT񚢢"V.]%rż~Ν;|Y3L?>L&0 U- (hG˖-J'> V.ȭPqka)ʄ!௸0ǎDHh~ބ`DYtAHx?˚Ѻ3xs([iFk_F }@`q;MNLG2!%L֚#܊#1/#,ĄUk7b/c/L1 =c182fn*B5LH c JG&>jzpbZg}ʗ/7xCfZ;vĒ%KPRR15=z`͚56l"rx'0sGhkעSN )=~t剻9r$V^`@6mcɊ#e[Z4LHHH@ǎ%W!00v7U}eڴiܹsEYXn5j]vӧ%X:vZpNJvǓ;+GGsjx&8UO4.Gmq6jժXjl!U10 4yLAAQf+8(O}ta`t& \iA/>VOǡRpb4 ~ @%sE[Ǝ'GWR kc La%h5 :S?ŵG L~ ^1 3OO=*шaBQ?2WFEsu^Nzm°`15 x+\אqP N$Cba4<ӨJL(T:^5L|0OV0L33f <([m_={66l؀+zt&(q}bhӦs5p@$mAƍ~ G.mРo $$V-ñ~zqeUzj;=VZشidK.=NgXԴ;wlOKm۶Ŏ;éjJ5jaÆʝjҼysTPcTT2t*-r$6oތe˖a֬Yr劀oI24i*WuI)U\8Z%-Լ61իWwƢEpBIE vxwD@4,^uK,5kpqپD^YLs ॗ^NS\ٱcGdݻwǀлwoY:9ғ/'c%):bFl;ۖ}SO=X|9<4 ߿?N:e  g]eg0zJ )Jt0aDZZJ*f͚ >~yܿ XEEv )S*..ŋq deeҠAjƙQ7, Ο?!00111_-`_x1F%y+WPzuב4J IDAT!44U̾o)225ktN=huӑp+ʛTm5cqㆀgaaar8wݻ|DEE!66ʕSEh0a KczC r`1؂b??Vz`K5ћ%Ǥ;eQ5@g&9̹X c, `t,MćAo:1,b M0ZOLaaU=l`kNo%?Ź`,fbb!`= 7hfA"0`P R2NxZJhDllqej4nܸLw-끔6t:2Y|?,\beY,zM ;wk{⋉֪U\VSVT,]+[ -lrt 39XYz#tF`)̆ `2:Ba @)zD(t@0~&Q:xqz`ς( X=tA``&-(YLfd-sSDO~^ٳbr} O$8tyM\,م~5,ZCܬTBf9yWEankVA^)%y8<ժ Ki@"gSPPz=MlPPPPPPPI#G%%%y$͛1yd;v4m6ţ غu+<*:{vx=5|Fqх8q3'$GHHGUz Y(**¼ye+W&MBF(3(}CQ OG^MpL>{\hJDD)(lbKnpAzԬYp-SbQP83X!_~W^BBAkp5J !]т̓B(CG3xeΝѣٳƇ .^ݻIS;u8 ~ժUh߾:NGM[O煲e|O*V++J˾ybd-ոhZv襵^xz,Wŏ $F_|NJ{\᫓|Դſ,HOO|/u=M; ]ʽқ'w>n6zqe9_˚LxZ}j{: RA(j6w'מ'y)瞲b̖{,,e-1UZ%Q\CD5\+j:YZ8;Az6X,e}U6MW});E ȫKʪe"׃j_ᩧKO8Ep%JN{Z' ⅷ2E,,}ݻwzDDD &&ƭ]2)) <˲@TTL&ݵ3q]dggeYr09Zv/L%Z,ÇAXX山fff"55FTT"##%+ì,ܼy999D^Ųq=deeXiXpMYr_- ݻTX,DDDbŊ0 kA/9q8OKKCvv6.Ag eXp]ܿ_giÜ+wy,7k}]?ʁN(VHIIAFFPjUJ>'0-Ofܺu (((@HHm_RF9cENN)&GWł$<|Pv1Ν;㌜۞(+WN`=;zEGG#""'7bܼyi[?hu222c%( ,"999sFսA do'Ǐ'vmƒ/ܻw\pLCru錳!kwr<:wgϟwSW&EEE.g}FbccC|MriB!v$%%-Чjժ6ԩ#SN_KY-<_R+dzJ* &xg܁:ms?so!9խ[|ݻ.վ޽{NmzB_Nz-,xGDosΒ wgF ,pxO^^7n`,]t!ǏWܹ9/_^RȌ3͛7= q|lTZ4Qbĉm0 @N:3Mߺfs# qIrVw8,l71 CbbbȤIȉ'l1%''k.r:_dd{ԩS'Aaa!ի` ~;rR뇪:bX$I& b.f(((P3ddd83ԨQC2fp%ٳg]~T#++[LUZfN999@ FE /0dd2)׮];IWjmڴ_7n޽{/b''NT W_|Uc޽Ǐ-ZjA͛_Tuohh(YzS 'RϓG%8c+SJjto- Yv-XO6x$O ?8AݿL4I󂃃yobIьwy&EoU;/ڵ#Ov`X,ym޽$++;krrPBU+}{Æ d޽k֬W1]-7^aT,&8 +b?x۷IUߓbDR鬼}-ݑkvQDGG;|` ӧO'EEEvp5Md\NN>s}ٿ]{rr [GtQf@*@o߾ 8P3g={: CNx5j W^՜EEEd Ctt49z6Lp;Vu,7%#u:dС$//ϡΡv4RfMrr%O8]SEGG#GH@ /~WN^0r\餂DeÙ?9bwVZ9C|UwO89)jܸqNeWjkNmZȁLcԩNa;#22;wNl&];/Vl͛aÆND{6YTkݕo75sUn5ή gt_~qq_h44ij-III?Ou 6Tݟӧ mӦbI~~ᇊXGUMl'Npcb/z,f(K1j4$P|y꫈CDDp),XW\L2?b0x`l۶MAЯ_?T^p$&&bܹ\rƮ]?c|:vW^y 6Dhh(rssqU$$$`ɒ%RSS1tP}3gȑ#e_ƩS;rHMMş9sݻ9?Gz0l0} oѣUET)pV^e!WcV adVT]q%6;vڵ FRhĝ;w{n,ZEEE5kaQQFSN jԉuطofϞ{ӹ޽{㫯}>u;M:/'%f#FӧGxPJA9[o-P.ґ~)W\g;?Tvc>}830 *U ΝÊ+1U1-*jkpY 4HvjZZdҥKv{Y>nϯ*۷ÇHA6P>X8xfΜIf=?=- 1;f?/Idozrssɿ/UogckŊΝ;evEҴiSaHZZiӦݳvZEgg͚lx&u| 觳:̟?_\ggÆ 8qB '믿v^(yyye^^Oꗻ<;y,ϴ\U gsۻbso*kRV/]#_q!.͙_׮]#pgަ}sNpuիl֭[<7oܮvrl#{認a.]Yo7wVGт9h;Rmx$ytYҸqciS:WTTdWF\/O gΜT8G[N젅(Z 18P2=zý_p>%)ټyNؕ+WvjKJ_yU;Vp_޽|CjҥKU-s188ܽ{׎g)cuam8qBPuЁ:j!^>7qD{c5jGd))u*&&IB*TrR85kj9 ,&8ɼҶA9~)%;<2%W|~I9yMj5$\)zkjw4W|ay&1w\۪cp'ӓ'Ovxυ lcsƟ ׎l èuNIᷖEqK_~q8ץzy,!w9%;*6l(k8ۏ]z (o1 /p+\@e(!6x 4j1tPSLV\| 9Es8O?A&Mʯc׮]vU0O&8J5t!oo{fΜ)O׿]tUqɒ%ZhJ6xL6Ip5ʩ_z)U:s 8pj^%&&zƀ+8^~eYw3 c'ԯ³&M/.땒cμ6d/ӚGo 71k׮-yڕկ_-韣ҥK%Sg۷dռ)J}ᔍrF^JSrpoڹEG3ڷo/_~dzg%8ի'tN<7@j G5y˗/P;p)nԨQ*juĕs.]^߿_UX|PT,^Xѣm=zÇ|'*ߏ\"''۷WQ-77/54;֭[X|w}Wx͙3ŊkР=5k&^zh޼*:ԪUKƍd#77W Dazl OMMŢE$uz=FP\;w ?~>6iҤ:֭[Xl̫=\,̝;W /n̗/_Ν;LȀ IDATLgOlɱ?^eddwj5F |Y?89Ko|Znz-:|4nؖQcX[l)_i2v*$7eGVNhB#.x \p@Tʉ\p;*%%Edˆ]eeCKEI@S+šrv &_0b+EX_.)/YgΜ'VxWkR'B5_N͓|8ުbNm0h w=z… *.{;8 6 񈏏G֭UCgЫW/ Iő\kis,!5|\CO9ݑgk좘G*TB)4nXR?..ΦoIA\ tʕX,ڵKo߾(_~ϟ?_0Omgg})qEĐf&(8p>fYm۶vR%<䓂 >Bldgg#++KMKi Ġ'o$v*ONeEU]MtR)9K%j#loǓ'Ouj߾}v:Uо}{F}wdKN ' رcvmzC6ŶVgZ>9ҫ,JmKieyCjqNS[9={=/_Գ^z%~ ݺuömWJi%gܯdCǏ>=O7|uoޞgż៊ ;Lyjl%\bb9+]v#t~|ׯӶ"116S $N x tĕqpr+bUYŋCv1曪A*-Q~~>OݻǏlj'jR*؎3jpuv-lkArrGld u4sAAM6N!v_])>rrr:[2 R~i3wgOTy ͲӧK~?k,̛7鱲,ERJ%''cΜ93g-۷/zgy.qZ(N?;A7훻sO[}+|@<G:7{l̞=ۦsCm:$8V\_@ };&&_}C[!vX|}d#~hi&NhjBdeeij̛7oC7nlrrʨSf͚@$/Z ͛7 /`رɍҐ aTrYYY9ۗy.v^=!/"b[,ϼWƍyQ+_yK!9x;i0|\ҥ6W_ȑ#v8{,>4o۷)=t޴oαRvJ+՗!#U gt?Ffl::tq:{vm^|EU/]'MZtz&4 9 -[DLLSƍ@M&4tgϞ}g00vXtXݾݻwB ^W])>,eCiL˖-Qre'~cNRQjI\l]'|^yS+^qB vmsC|x/79~|kذ!6olnܸqhڴ[;z),]ӧO۱evXBv܉;wbȑ3g>u5(a6J [M& g!=r<֪^v8Om6lٲ[lۂ) A||<Ν+Hh<Ӷm۪OӦMlvgl:B-KA> 21c >>5c ݠA$$$T ZO ʕ|;~Θ\}RzjƖZ</;v, 3 +|@~r2Hd7K|Φ@ׯիW^zz3er&A!+bӦMPZj˗/x?bl߾]x\5A||< ٌѣ_fK,ANN~GA0P gl!D^ }VsV ]x-㨝+N)**¹sp1tN>}6NKukС/+d#9[ٌgѣشi~Tb; Ǡ[T<Lܼy^ݢE,,7mF-&vtݻ] ^+iӦeƉԑ#GodCoΝ;5w ˭5gyFY|&K|&M_Rmygѣ^ހ/G M+2e`Nkݺ5f͚%oO?r得70vB ?/#4An߾7Z9b⣬jԨ'2{2ǶmBBB_~Cȗ)Qt5jPwoZT5j$| ;wx+}y |ZzJA|3%~ȵ%շSg Fx 7cǎ2 y߶MP7|w٧~Zp߾}HaÆ 55ӨQ#-)3޴R:R:fի`+Wıc &iW}wwq !>JAe 5`F?M-\d6_ڹv6KY|ygg S<ΟڵkK.[4QTT3g ?~])_}C( 8{5toe5jdIkE--_\5}y]6v̋ J2 qIinݺvNDzeT˾'yVTT/k˗堬@M^y u9r$rrry?k,֭[U'Te\glx;f,= )׍5Bݺu}o5B5ЦM|9Og_4ŋ1k,?YeuN.\+ԨQgϞPO!ȐS`ܸqN<_N.\(yBMI~WΙ3Gg{=ͳ+\q])V[ܑ!_)9PꛜFRZm^s|v88ɓ'ӺukĘ܊nF͟?)@K}ûǢEα wlҖQF ~3gQR]t׊+T Zjj3>>^@~ڵk#..Nu9"JvoaǭCR$8?ԙZZWLphQlPk 0.>`EE`0j(dggvo \A\\ݑ]ƍ۞w4~@*E;;{,>3}+VwߥVܹ3'n8t"'0 LڵkvLrɭvdc6?vIh󌃚;)&ENF,E߿`s~~> =99{}&XA$eOGse^O/g|4tPEݺu<{gJL;GzqZʐ/뇜(-hw&DڴiJΜ9szjY/Bxm=>TlԩSOJ6Jl%מow8Jc_}UsliGl6#>>^O>6yS*JҩS'%''^CZZ}O:׽{wNsHێ;0 1f8DVpR귔*~Ll猎휕WT*HNN&gΜqy w^rRٴi|hs\bccIzz6{))w1j}}Y[Qn]~;CANGBBB.?f1CYMphl!dϞ=|򊎫_dd$ٽ{f m۶u$&I݆ :v=j5kTB>cg5J'NU"jժIIIq?-׮UZZaX$J)'x%uJ|;:YEϞ=7oz<_;8qTV%V潩_8==zLˠ;==+6Wͼ&ܼ^n^++L߸1;7W>-\c B}-iժΖ~ƌ:vY=- /ⱬedmڴ;Ю];kѢكm۪^蚐$$$(.oԩX|]#G(դI[QQQmp7 {@ՎuرvZTȡQFغu+:wJ.vG6qU񎸹QʆSLQ ucǎjXqy4SJt-)z-̞=c9 <+WDժU5']Fe;wMՎS% 0{lz<[jϴDhh^9E9:|[]Ė7_)ɛ}ScK`[bEz+.òel[$..,;F9刯#F(~G}kݺoU K$kw_9si̙3U !!AӸD|/_߈z;J:hkxkf||c yg{?vpVFıZ4o\cza۶mXnzhZnKbΝ}Z9P*Tul23 !0LxWq L2:t\?:iǎq!L8Q`}q3{exuJ2`-i&[}`l788ÇǞ={{uI IdhQ$JJC1[)mW[hCVbj 51\!L2'2;s=wa=<8a^{ublX3Հ#@"tUX׍Yf-3}A)a?UuUVuJ_yL8ϟLj#dt|׮]Xv-*UCNcǰ|r^ WK/ĉqe֩S'ڵ ֭CŊm\Z쌱cWluΞ\mݺuiS+_f5%P;`.\?CÇ͛={6x  ڵkq14ib2Urڨ+Wl!`Femb۶mm>U;!oL^[LL<gϞŰae;w"** ...\q""".ҫ )l̥{|tǘt;KWիՑVZa8zj?0c}g]\Q*5y9n߾Tdff\rpwwGZg={.222P\9TZRY啓8<{ puuׯ//}ʏ>̤݃͢8;;Εqm۶űc̞| s};p~Po(AƒǒA'CM /`gr) 6VJӣ(S*7{oyśoWPYYYzwV7Tϝ;Oh4Xt)Ǝks?4jM B>d0׳n|~Q~^r5Vnjfh+]Qi_{=7¼SlN:%:ҥEꉡ:}ve-?4jMAAA*;;v,bccF?3% IDATI^* pJMMŲeݻw믿N C pAAAO>;}]DGG^# ?Ɲ;wsnnnӧO?y!55??j(R.AAA bbbСCL8/_ZǏǻヒիW~9s&SiZ/`\pp0uFA(AAA czWXX_~7hذ!CEUVɓmAFa!As筴qᏏ;+WRJ6u@IE5?~f:OXNIg5EFiQ"k*kQRRByf4iGVV*F.]0rH]gqx9޽{wB*UȎ|ٛSI!&[DAA@Y̮_ch48v+8\~ƍ?~8I#s c | fΜx*W[nfc3]1іCzD^^^xlv]J_m_IƼl 䟽8!#fC繠'Nx˩111/UK֟ly[hlpc„ ׯBBBPbE@QQHtٳga5YIo8tڴicqɓkزVji쌹syB}9)[}[)~, %g/FPqc+-0Q/g4ߘg(rab˺QZevv6ƍB\ڵsNlRXh&N(:#::*<{+W6Y:o$t:m@ws蟮PtrvcC~UfkKZm;gQÎÜ\N9&{44fxJ0%,k52G'e4}>>>^ HMME2eOOO8;;M506}J#55iiix\]]QZ5TTRjAZZ4 ԦGby>Cll,4iR*_s뤶@_HNNFff&\\\777HKKCNNT777d]i{ٿ-NﲲZ,i"##@J lTPnnnCuPX\]]eVmO}IGr,"a_ё/?{3 pؘ3g`ذaDխ[F¨Qe(,,Ν;k.[|yaݻ7d?e\rO[ff1ҥ\^M 8Ԗ3gi.ѕ&VEEE!55UV9UVU]W9>}7nğ)X+taÆSN:+Nܳd!G؟sٳnjcti-Z=v֚>|=hPvm,YjQ(@;Pzu4 .Y{ӧO˵KC !Ü/^`ӦMظq#٣{׮]1p@ 4Ƞ`0?e]zZlp 0g5 IIIqDD7ow?'M]T 8PT7ncI: uu^_ك'Owߧ~k׮Nj-B`` ^x-[`֭ؽ{hmÆ Àa׮]Xz5vءZjaРAx,c ӧOŋsk׮͛7cZ{8p X mom̙3g0k,o?jC~~>n߿E_]vŐ!Cйsg8::3fmpBw 6`ݺuZ}zaȑ䟑lAoʕ,33}'?FFĉWTTĖ-[Ɯ/k׮zAz10`δ ҥKYqqd0Uy˒?|Pջrrr̙3Yr/N؍7dիW/e͜9jS"66o^uׯoQ~+k撝1JWzu*rj׮, =b%%%&=sŢg6mT[n]\Cݲe[>BRRl_jUnܸZnJ'۷on޼Uֺt*%%M]t߼yPo&oȑd-/,,$6[R*ޕl+u]tߙ3gإK[oJ4h%$$pU͛7McE]~]p5mT$,,ݽ{mLnn.YtqignʵǺtEm{˿aYYY>S䟑*a~àPe ه~h`^^^… 򔐐U+oڴiiׯ_opZc:udjժ+FY͝>9N:\]] ~Gٮ]T@>YZԚ:3a.)-SV)B.ڀʕEϜ5kѶ{s3G*{Çe%5ӦMhcĉf͚vɓ'UVF}С,77W>|ب`Bnݴ*YYYzoŋ<-0U,Y8""":jtɓ'Ν;^383͟?yxx􎠠 ƨwa Vsimڴ1k4}^/?{uW #**?vttDaa!4 V1cƠypwwGVVl2ܽ{W`ƍ:W_a٢s;wѣ WWWMrJѵAAA8whC!r]vÇE'N08y$-Z5Dx͚56ld|IٹݻwGxx8?ɓ'ؽ{76mڤ5Ç:gϞ8xA_~Y&CaPMF͛رc(_ӇddۛU4ԩƌe6n܈UVUBY0|gZ%[44t˖-۷Iv-==sG;Cu!z_hhֲ?K)))8y$/^lvزeP` >AAATHܼySt}֭qa~333ѡCok@Iֹ"h4ݝm߾]5h@VLi.YV ܹsZ VGjIKKzpUW/{a hHvחedd5*//OqJ7X(+V|tZ#[fbsss_|6]|W~~~f;KJ#80vaE֭[I&_iΞ?.6k,{lR+_<[ft{N]nN6իWOtܹsk״ÍRc/)h ?{Ǹq{}srrݧkG}$??^t_xxa,))=c ͛|^sNWb np$%%ڵkkUd]L2ݻ`_Jc+WRR/ѵܹszqm&jtt25 |>NJCՋqƱNǏYE۲ej[5flU^};'t^nkG9:v۹sY Hssو"-FZwܜUVJVT=}THU2d3^xx߁D6hf #fj>;K~sr}˗ewԉ h4'TwW``辀?4}-YDnݺjw[˿ W20A?!ݻpjг'Nh CRk+\ʕ+ڷol 2OtѣGUV A%O &h-Gxx86m'&&ѣZr2KO`{M]6f̘!Y0Wsa zꅦMy@Z>juNzsrGJ8<^n/v~H7իW-UjWڪ6p ]Cu Amp*aM(-siMڥCj"IiSNULe"""BtV[t#F-sHu^+{nfdd`۶m"*, .(+51:؍~Z"vI/DW jCDD*TW 'ݵJvܹsEnݺӧO+sc޽Hqqq6ؾ}NC\{ؾ% ?{yC`ĉ;;n$|ӧu jԨ!:͕ݺGzϸq͏3;wȑ#Z .KHNNƊ+9RtСCf-km(mdԒ2gd9 BW_t^\giÆ EyVUdm٪,^PPu5$ngkJJU40`l4vXvT#G*4ҠA{k䶴LLLDddܔ)SD%'WWWL6Mtnɒ%())Ѻ7/]ɓ;Z+Cn#ZlYL[ChhР4J_>Zh:uhyUgի Ku?SDPPZJS>11QToѹsg3g;p);Hd)3^UlƘ>rFEtdT䜮<يhШQ#~WtICBBT}7W)"CרQ#\IQ;sYea vڡzꪜv~"]/))3 4lʞ1JR9m|.ܟ=!gt^XV t=//ONZb˾9N{wlj$ls{᯿⏥_h[.z-ߣGGƍZ<ڿ?e}x]޽;ԩ~_Vlق/R+Mbݺu]P4M!k"]4YfXʕE6&)) ([Y먃 3gt 2ǎaL2E6?41UV5K: ݗ ?{U)cωDҎ_QQɕ"//tek ~~߻w/}]?pI;sC2eҢ\65Ӊ'D;͘nݺW*NSᦄqrΐ|"i{L!Ag*=J #L8ubbbp%\|IIIϗuTWpמ={qGGG#::~~~ӧZl͛f͚Rs8O>Y)NP4 bcc1i$1Gs IDATPRR{VVRinݺeI$f)SsC h@rΒTO<nΕ&U/_ƥKx[e)͜TTI\NNL~Ktʊ5U޶\a]z"j>  nzz:*T?Q~}բE $47mnnn:0~G|96]ڵmkx-y)id=ȑ#8rзo_l*zg\uPmWtNlZZDǹй5b-Jۧ%Eo8;;k"˭]/?#%*q^^V^o=R9}X`GaXx1=ݻwGfʹmj#3d8+_]PtC~ m߲M ӗf~7QW*h.}2.hCmkϘ,77k֬9smUi@.odZ&}|)סY|v)((}%]|tJCJJX:_-d*T޽{}qFm۴8pݺuKED-Z-2X3#c;>6999S:r8֭[iӦ4111-w!22gǏIv-_F٫J5c&$$SN0aBnݺ D`` 3{\pAkq8!ׯ_GDD7o:h-dj/ݽb fvvl~3v购'uլ|nML L9+kIHH@XXƏVqv*00P뫚99! CqqWz*2 VQjԴKvI~Ws;H)J "\7o#VÇ?}TDxxx,wk_mmԼ_xfqS}tQL~:bccEϗꉱuCWq}+7q@@lRmZF٫K;EE ==]t-ǣ{W|||0z)UfTz|MZ sÇ~߿_ֹm=/66!FƨKBZl ү%R3E0搁i1 9ĜJߴ:kPbE4nXFEC  XKHIW*v9+AjKeմKÁ. ctvvu4 =QFwTT%n -{mz X~^i[ChJ+26X]?s3...>|8,YŸ۷oeo~~>l¿ m۶իCx}zz::w,ZGM{3x{{U9F8JVbܹ"lР6mda~~~>|8B> k.lݺUtʕ+ 60KJ攱h(q0bq>P挌 ߥG?U%tU[fzZG;fo^Өs޾}[hu'L+;Z풚0DvSؐwIGHmYhӦ bbbݻQPPˋ Z(Zj01ڵppopzvP[$_5w/wQQQ&akcra6͐ WgLݻ(~zL6 e˖ٳg)c1 6L6i;w(!l WR?EE322tRѹ˗8::aÆ1blق;wwޢk6mį m ۷:OSX8tW84J!!!A.%#ԣdOC:\n!-[r0WʋtK&+T2AWְh T:tbڵs5 {ڵkc͚5hԨ<.CgL W^=EZ_nAGN vqzu]ٳgq]N,aaavRs #G ::ݍ&'ŋ_d sk֬Ιx?VEGGHXY~… ~ν{W_5vX8J_m5RIk\lݺU޽ 6ZnTC@@v*:'^B-0al'JoʕMٿ0@gG]1M6F:5iDkw{upoݺeqBnQYc:wnJ+p99rDd:udHˤaÆQ7o_-V85̞TW?#/ҕkϟ?5VX|G 2׹*5k@,Y!tbU`F_t /T2U}?l+V~\C}_˕+gi47NU]XXy:r5.R[*_~Š^/_%)cǎ/ZHkH:gFw[uEY[%$ܚ۱hѢ&O,g3f0ә>} ==O>sna~_v21հg/z;<1|Ю];䧟~R=UsٲeY(ns*7)wvE6\`;ktػF;KAK.[1gܽ{W}/^ٳEk֬)K T׎FJ >\={КfXȶrrUj?{%a6`РA rJח_lށs,UVɓ'7ʕ+ݻ'{_FFQh4 `:t%zիM+'L$zvpp0~ ]vyY-D;;;KgZ 7|#~PZ:wN]aY%}yyyZh߾Nf~_%'',w#|ߪݸqì:g,ꏡJV 4H%l>Yhddd&M8ae/^`ϟ?gnb+Wd!!!ZiZjiԨۼy3vx";sw)ݸqedd\v=vZQ۹sN^RR(x`Ŋ29K7ꏥPiCei[%)}8{Ye5秕Vggg6fn:vAöoξ;ִiS}嗪UC:|johGZQ\TZ5Qgtdշo_pmM׮]y{!r ۴iܹ=͚5cyyy:ߕ|}}Em#2e ;}4{ a=b`CzO֭YnnA$6L|,X k?VC?s8Ǝk>w{ f ?`:tкE,??_-P(*Rz!nC!X=Agrs> Q]um۶:M0`Vwǎ: ܹsUGDPm a… ѣ#hTǏ3ooo_W3fqFSJ 4OGUɀ95W9K5%ߓn`svv[jkɨ_b UٳE_ 锵oHZȥWnREr)7nh~|(ZbIIIqZڸq˗9rwoٲEtol0!Kpp36ݯ6ѠA?u}}~U&M,5о=w9F٫DO1x^ӳpWWWlܸQk191̚5 k׮Z!… s:u*"##lPCBBpAEqOh"Vd0x`_^Ȝ4iъ߲eK?~m۶+kma(7Ml->b۶mxUf͚8|0F &2b[o!&&F 8+[ <6lyo);cKd,|v*Ui&Y[ĬYf4o\.2KPP;'<^zطof̘!ZK˒ӳ.L5k֨n85k&jJѿܹZPPv؁@UuaÆ8p5jo߮5Zm;(E q[2#v`63bVzgNR'L-/C55j9sp l聒bhSJ~;pN6ݺulx͚5M5}i{l+3^54ﲬ!>{.222P\9TZRQQJ# 33T y]֭[x_x Z?۷o#55(_H󓞞;w2(WQV-\o:ZjYL笩?ꇚ{LU\0bܽ{ x94ԩSGu^l;j [liK+Vvɒ!>>O>EFF*W oooԯ__gGԐJKK]vv6TwwwbŊ$Kt5?SKE;\RwAA3dff R]1YYYPAmLII 7n8@۶mq1qck!63(9(O#-8RL5^tZ(ξ2e^?k^^u}QҐҪ~6ܹs)Kֶ+g;e=M9l^K T{MbcN9Z2},o-aK0Ǟ탥dd븷=ݍM=Gc/KޛR:.ΰ/K,:jϧ72o.:6dKNAg ^ UmI.>/n ɈΡR.=Xlܽ{wk/Mݵ?|JP   wڸ`Ǽy󐚚ʟ9r$ U8  +MKJJ’%K`\ppUvO!AA`ܹ4`ҤINB~~B TpAAAAXVX_|]ҮA   { Jˌ3awi&¾AA2`nݚ?nذ]1GGG 111HMME@@:v#FyTxAцAAAؐ)p9MW!B    CkpAAAQAAAA pAAAQAAAA pAAAQAAAA pAAAQq c{.ިVZ^bb"RRR*T@``]SNժU7&hlT$&&|[. a7ŋx".^G!-- NNNAݺuѸqc몟<899=[  ^h4ꫯş[r%FU:dW̙3;wƾ}2r2_bFM5>ǎC߾}s8|0 a̺u0o<뼶Yf0`Ǝ :o!f nAa*zFcT8JNw48eHD^^٣Xʔ)eQref͚pww'A/7n֭[<<Ο?c_~QjUL< 6' ¬,Qj18::u>JWLїbchժz쉡CLJJJcOn:-[,m5O>?wq\r*U"%  l"WpVR aź~IL2o[x ia9rK.Ս Z ׮]ógϐ۷oo-[.CtޜCsý{H 0+{lJՕ:PaӧXnl]=tRȍݻ<==QvmtӦM ~!:oMW輗^{58_qƉ9~8) AA:.*8T!ϺuФIߋ 9 IDAT{ѣXr]va񈌌)c999믿vD`Z )nnnPlt9b<|;v쀯/f͚%(M[AAbbbHI 0"8( H^RR_\h{J;'weB իWGPPZnaÆaʔ)9r$Μ9P3P ,7hժY-_5g[khpvvܹs1w\*x  ,FW! ʕ+zi1~}yӕ7 zj.( ⯿f_.0L7jfhhoE7-m)GA=bS%591GppNwMl.RKV{NL-[{[&j/@TZ;+':hֹs֨w}uNpocƐFopAipUAA` ӧOe~~~ZNiII 2epvvVʍGQQSkεq SSSwwwL2&ۚg#CP\\O"%%%%%7ʕ+gNjvv6OOOԨQ,e2|ԩ7n˗/£G޳; s<{ YYY([,\\\oI˻=k}Ç(+ipϔ>`la'AA+8s ֯_(~WFѣG˨ߺu k֬Add$E9;;#<<zB^3cN縤Ǐڵk{n<}T뚐cС奎t^9ӧOcÆ ̅+׫W#Gȑ#QjU&Lh۶tDFF"**n1uTwN>.\/\AAAh48{,֯_u!==]$úu2x񽄄^֭í[Da1b6l?>9§}ժUz3mcꫯЪU+1ydXݿ]t ۷oiС1|7h֬]Ç\NOSN˗LgtEtܳgO?! BYA1ʕ+Yff&ODjԨN8ܒw䰙3g2GGGUԩqㆪg")) 0@4 '''tRV\\\*d.M6vܩ:;aaYYY>S'OM7lerٳYaa!߿{ώ;XLL }իWYNNVz͛Z_O>ܛ7oZz쉛7oʎr^za(,,Fz޽{:ktBB°i&_!9`]X\25\<{ Æ Â T}ɻ>z!!v˗cHNN[/^̙31uT$$$*-=66GRR9rU?|M6(mZ~40+V4;a?tQTTI&aرSG"44/^Tu}BB:w͛7lKUv'%%={JuNV7>[){ܻw,k(pai#.JzBAA2m4yᅬ#++ qqqXlhyjj*klܸQ0x`-wŠAp1/_ 'FB\\ĉ8::"%%'NE3y!((Æ c8uT9'T|Wz68sj'LOZ*ƌ͛ա!Ž￯ݻ#<<ʕ+'OرcXb^x +M=]ĶApuuÇM^aSWbccѤIۺuxȐ!$LM2K?,:ѣGaÆpuuE^^ܹ͛7cʕu:t(oA%{sRRRpI쑒8duO"Y 8P#\ITʕѠA19x /^Taٗ+WOWE..."@4}ǔ !MI0tPݻ?\ʀAA OQ Ğ={&{Yxx=o9/]vڥ8… C4~386m8p@>d-Z222,.d{ -!c򓓓|MP{777cr,))aׯ_g5M7EE:Z:֭;|0+**M_aa!W螹sk״u}sNQc5j=+"",Ca?.]sia…ck׮պgCKJJ͛E;::(7Ie%+t =de.թB^(ok;:$>88XUޤST9X:EC:*;Oh AAMcܸq,??_}=bNNN6olw^vӦHI;ӧOW;wMI:nǬ|enCr?So^XPPbCM~ƎTn:;ȌiYѭ[7.! Xr>c;pְ?<~x}:WGPc,!+97)]ZDjʀ  Bv1qAME>}D]8~ [0a:w7={FӦMD~' E\": U; &hD3et `zeヾ}*^PCFIYzH}ExxժUïjt~?I1н{wqqqZ'E+ 8.ӧ1i$ѹ&Me˖&#&&Ft<`U^o>TGtP:mIwd%Bp-Y=z" uJ-- !  ĉZnM4َ_rr2VX!rǍ*@PlY 2 ;j:i999Z7n8DFF"22WF֑֭oĉpuu5Y!:,ܿG)OFgҤITހFAPPڵk':w^{E舰0!b޼y m s1zkۏӧO#77С*H˓VS=RBh"##e'+}jpppJСCѯI&rʪޘȕCAAЩqpP iם>}ZtܨQ#c`NHF/]:u0$$!!!/xd^J>͌1ETuIu^}[oeTPAo> "RiӦN^hЧOx{{ۼ DEE) W|7֭w29Μ9c!7BG r+-~#%PVOMc gΜ1iaCꔹ.F쥺DAAҕU\zUtܶm[S.իO<|~!**?޳g}]L6 ʕ+( {[ K>%+Ry!pPU#,9c:vթz*.]$;dݢJ يm۶};|F)ֲJCqq1kP>hxw1uToZץqqq";.>dUPP`tT;ʹiƠmu%lAAaG\gnܸ!:x\}]...},NwϞ=1x`lذ?hO>xѼysԨQCk Kw $''ׯoT@Ŕ`˰.|}}1`lڴ}i8Eo8;;Zuޔu80b|GhРIiŭ[lb? p)˸toRڣԬYSqHe+++%NfZs#ϥK ʏ\q  W(A4)LOO|""""rkM'r̘1x'$ L-1bۇO>ANN/PPP,X;vˠSwp|SSYWt * ;v.駟 Fdddh;$jC~!::Z47,Y <}􁗗n޼޽{Rcm|XBk}Ҿ>Ǝ""""bE l6@t5BCCg}V<++KVJǨ:Ԕbt-V-~z jO [(++^ÇǨQlX<AZA ʖ,}wȩ.DDDDVlѢx]rڵ +VI w-;mPਬDEEKYP`̙e~-DTT(OLj3fÔ7o^eXG>X<ҽݾ;:Rk^CDDD6l/qsHu5 XJtEl߾]?KSO=%z,i@*t)\ήkHH$#i.]BRR=3fhwB~65He0j345?.^>d<2|IkcOG[9r뷱.矹)u+W-۹s{Mٳg }N.p]I=Aqhhh;.zkEʛT] ,X Z_h0ʭ;) ־0`Fqa~=4OA_qY2Vkkx]2Gh{",,LVYfREDD`ԩeׯ̙3W NBrr2&NR\] uVcXv-N8+W EEEHJJBxx8ZW^1_~yyy9s&RSS{n fic[;~cժUe F-[ ??(,,W_}'">>`^:`}ahرH~ݶJNN6Vq]TUUi*11Q&QQQk=zdrk3n8$&&jƃ>}K TVV~CIIص~m:wSN0g/%%E{;g z'/((H(**6mj:u%|mjr׷u^tm۬>ٲeK3n8eW^AP:$LB! >{%&&}Ν6;o?~cϑ#GDیrj&Lύ78Dzc^ڶR(튵8ݑ'Z'<<\R(Z&Ǽ5=Ͻ?l'$$8Maaa Bmm-N8͛7{1Lk544`'bBKKK]j֯_]v55k`ӦM܉DDDDD HMMoaLtt4V\ɓ'U 3k")).W&8ڨ (--Euu5nܸcȐ!ĠArȿ88qoƀ0eT*5;<D6xUGw ///eDDDDD r#LfcbDDDDD䩘 """""""cd """""""=&8H """""""cd """""""=&8H """""""cd """""""=&8H """""""cd """""""=&8H """""""cd """""""=&8H """""""cd """""""^[| IENDB`ntfy-2.11.0/docs/static/img/ntfy.png000066400000000000000000000070531462047176100172510ustar00rootroot00000000000000PNG  IHDReV֒X pHYs  .tEXtSoftwarewww.inkscape.org< IDATx]mpT~n&!D.AI"Ih ~@mDji[c8ZhkG3tvuhSv*کh-VCD"DHBB0a_眻 $g&{}{sݻ@EQĸgv 'x?^d"* ) D">ӓxD}}}K___@ ɌYR>%De_p\q q~5H5E@G />0/M4`$S3n)}b®8tP^^^T(XY<*LX 3e>`tV3MĶZě'De1crNS?$‰rqK/ PL Ā2 h"!xDT:}`3Rr„`B"Dy:`͋#yY"yuEGԮFH&'6xe*K2zA2g1̭\02؋#zL6 ~zLRn#9{, 6:bV@.RL?hIP\b`p3~/82h~iWR{:^'纯-q#2mBE#n~qhu `)Vnی߼#C+_]+pkK:B\Hµ%yږ x#xxprtVW5U .0a@ZQ^GBo#ʀ!01|y!oi {Y8ʢK.T$ 1DqܷY<"a{5ř05 ԸZT:"T h/^~էhߡpo_JYGp.d4>V`/ƫd狫#Ծ-™0;:=.`nihƊES5bY4`GGcR  7ڟoBf+Vq2 ud:<|\3J]Lj}Eϸゎh;cRH ?XԆ m5 cK^v$qV#ĆOp|Yӑո5]m;c88v{p6b$0# ni)J[u-޼d=9>Nu>SGa8g_' Y06!O~gwؙA)`uO1uĽKz">:} w"BtPG\ŹЛNr=|=u!0¬tT03 k^=|D\(%} EnیU/5$ Vw<#/#6 B(v]{qdΫf ^Ap<2J^K:\"ǥ#:dcy6|gB甃ͩ# e r~laj* ?vZ4Ha#xC{qx$43d녷_#Ht:|ȥ#>o^ނB/X#(S۟ u |l]JK#ǽfGG/6tp ?y)B_Bh,\R+z3?殎ж  ' do8ɕ?LzzD:B/`E>-۠.}i(!6uD0>dZ<8 OO=R]1 M(zP'"]h$ۦZp~%[_GR3?Bj3MȴJ=[c6EL;V`T'Ӕ}1TU t$up]eΟ??u|%7h2 >)Be4 I )ݺUhU3 %/I8,T@ :2-Wy_k~z;!gus_j|%X<*6Sn"?3M nkJ0&Hʹ*6 gעoW|%DE yԻhkBkm#f\ X,6` &Ǐ=gB.=3Dtڵ0~!y)-_ [͘+z1k>;w\j$3$o2&l^NxM6u,[mdCSMz 넇a񡡡=vdD+^EJԺwEaD"D"ݯ,_ԏ E'DynfcڛDp8 Xb { Aqn>NAO^ -[t vrSlap8;<<穧OCNxݭܖ'CF`BJ rEagCCC_z?^S $Ֆx_ҒԴDٻaxddHǺUl?wBh 8%-dg;Ξ=Kgj603 j*O glln֬Yeݺuȿ'g!Ș[X ) ɅeL3̈h%Kո,UU&?H~1Qɠkf4S~$LblCw˿/Ju,!GH{!␶K E\BɾE ntfy-2.11.0/docs/static/img/priority-2.svg000066400000000000000000000042121462047176100203160ustar00rootroot00000000000000 ntfy-2.11.0/docs/static/img/priority-4.svg000066400000000000000000000042311462047176100203210ustar00rootroot00000000000000 ntfy-2.11.0/docs/static/img/priority-5.svg000066400000000000000000000053241462047176100203260ustar00rootroot00000000000000 ntfy-2.11.0/docs/static/img/priority-detail-overview.png000066400000000000000000006013141462047176100232560ustar00rootroot00000000000000PNG  IHDR8^bKGD pHYs  tIME 8  IDATxwՕS7t 9,$$" 0lxZt4٫J;-}ڬKˎ+x_g wvnrBʮt&ۑN.V25+dn~tǥ+?sw^9qK^c_;{z?>q0gx`[?E)nt;?q~ד:MM8܋!=i Z3fbUN'XwL|9dϱ}O =g2hsq`^v0QaoQ?I㚻UDL㼖3?;vMH@2TWW-eLLgto5檻tҿeAd;ːh^VrDUv2siK/}|2cTpw;65 wcO E{oNN$N+kZm4gw:dW]o(ώn,,vgsSJ5Y^G0L^?|=K#ci;nMA}"MM};~Sb:!x6l;u<$7Ky&~d>{Svg.ЉЕJi } V{jrӿ{vB͙uWoEמbP _PͶWu>K59и*G0BFSW~l` mghFq;8xovrnf[]O}BDCtS4Oν=9N]]|VĿb+@~ڠ'/RkAFl_'eu;߽u 1зc'9 zKP-W;|?LUٹ X+%0w'Бu }lj2Cɉ ݴT~u SGoU5wmhS="I/6PɣFӷx<Φ]9H[H~fHR0yXJ98L i*nt>y9StEv(6J)\,X7;k׷k}CV ``bXiܿ4 m-%Eߦ_l/ N6&qmU-(X[=uNTu'ٽw`ϡ^lOrTڵ(1R՗k9w]]Ca..?\^c_sR Hb;L=knf+ڳLFwϣI6l +j('pifuk!dHDfg>#;8!BRf̈TDb5Գ}ݰdV.3NԄ i[\¬Y[KyQu طw>\C]2N"pѾ:ld9ԵL2Qk Ԫ_>uQintܜ=aIð>9a 5-m->~;fG410fݭDv]F Ĉy`ýVXC4=}K?r$ X+$rpʙ9 '?IU]/fׁ0yx.2}oZCҟdn^W.`ϩطbϼ&7©sHɓ c^q(!@ \zEQ(Ju[MJ+(B-{9z 3/>5S<Ѫ΅Y,lUEEMed+-ҷXKB[s"J\y\?דNˈ S5q2LϏٹ (+(gdMQ?WjzݴXbZ;_>׸I?3̍o~0y:\}K*s[⊉3 >TX0wAyq p&=[k>`Af^*#E Q5 /f _C4mʷ8۞QK+eu 6E2j VPbb"qҚjǚ8Y<. | nzLE)ق $n䅕o-^ @BVr (wp=OANǼxq[z3:<YX4aFn?֭!ӕ:3*pϵK>|<@8'K/\Ȯ<2V[CQAާJUjaui9gfqʳo|$cUoq ̿&R[R] xvX6I- @[(%č"a_pwx|0_fDE^ǖQQBܴx Ws"( k}Q%҅8/&I n榅KXf5[ gj]wT3h(_~ g khJ&hѷ1hMrH ϻw{G"?Tru>&ك 2cxb嚵$0DB!& μ1@cma(*(bɌ?K0֭Y++0ox"~B~!I1gdMdfyD.?s,Ttb>ɦ`ZqyWyWqMciybQSVMW^ì $Bԏ3::bWL)38A/XN},k8\FQ*{Ol/[.OY]'>G]nBUጘp+Ye ? ǚqC!d8(EgٖY'|h#f @u,SGaQT"؁,3x(w_4xO66iVodQg߳:8^@@hU/ѕDrǼE2o4 q2 !eTy1?11kFE*`jYjЧ$H_;)yȀ6{}E{搑|)ƨWڇ\z7cO{"ܩ;k a,g2otA!Np.w-#Jq s+  jy dn¹8 &O(z)ÚX>֭ܿis9q OI~SbܩӨt gCCvfLxd<`,[&Q !_3lhVr܋+c{8[BA !"AmqYm3׭˗Pۧ/%v1LMh422h4hgwqVVBqa!e9t[7qd! '6f"Qya۬ݳ L7d1tp?Aܴ{gf%ŁPU~cIWxb{I @ -YCL4_H8v! Ē)Lٝ1.2\s>uU'nTJ#) /纹Y<%Z9=qՕa앑)nd>k <8vnW,]6l E }yќwu ^mwxt K7Q-$.7ڴG8?KC|O7m4emyJpz"GnԐ1L>{Zʠ*"b#nT( = ,I1q˞MdYCNpekw˘D}cNMIBوޥO=F\ ڱP|2?&@Ib8"Q:O)~cuBEQI 5..vgm)CO A?^.u)TD}rl8ɳE¯[;®a1̟>cSU+A;t* [dęL=q@Bv+ ?#k{Dkh8! wnisGuqBq10v( {'[[E 1rٸsWM~D]˰hvb&xS.7䭲h3C/ CG5#zV؁TA&,8[-8p^{=S4'#w▚8*믶T;ɉ>8Jcۣɩ̚rj dwC19p+qǎ i C! қD-n8(" )m7PZQ yyۇklW_W]Fap R T!3s14I?<5i* 7d(= = L=Gg?L(m+C4 W]|)\~}\ڛYp<<Bބ4E|ԶȜ27^͍EY'e] cOI!n~vnGU]ۮgng&A.W T6p%:;u<(eܽ&*tP-\y1\w|ǣ/<֖^v |Tyĉ8mmsn[L6_;PZXDI8J]?\ORז-8't$5d w^y5,$˱<޺ OI K/Y/CW׾O^5)`d( zN{mB`ф]9jpy%w,XB0u$ɌE}!Q!ZN'Vdf 9>n<+o"s?wM&Xts{- W17" }p@pv$(OX2m.t4#=˫&hzշh<-#h-gNZ[߭,-c Z|&YZJCeeebqt!x6-m(0E=;1~(bc?|WLNPQ|+yhWi( [Ceq1[onbϑ 5]> ce<>r[IUʢRΞ EĔ⩗1e ?7WXc=ϰq]Χ3zgGz?(ӋV,t>'NАLTݚ.u>4xam+yvom&aLPxhҰx,>sRQgjS6s?Oldϩn)_NMgntώp(A6~sVְMt3FVo%qQ(LwnˤNZÆ]۹uBЧ5BOA>sT+Ϸ|qmmmgIY:A5=vW?XEk8ͫ*;׎b2i0"a |Ʉp>f q5y2e:8$_F IDATM6诞КW_-ձڷC'⦃PI$h\2nAՄxiWwhvU|4uoKR†P]^A4ҽu!EkH¯(5zƌE:زiRc)}Ub~ r& Z\koKL pmk_? .$.'a,:̝W]8$p(?{<=-aoLZjmW+ 20D2mp0y&D";:^݇ѣцz=3b Sgի/r ђ@u׆~v\<4j_Ycjs$["eˉ$!"%%$#a5;o1eDjTswl:T>ڹd'~b]865js+Et%sQ-`q\1y.;/I(W!VeOl2R*Lb4+70]M1w4:Ut~}$]OAn͆s_$:Unk2t]Nen|6qg|;YV'[8XGyiU"f9TYpipq'{0ODfbDkL*ͯϡ[4 VVl[G4wNFP]MY? d9EN&=i*NR׭ 뉇t66ogڵnMz5u3ZLt ,bjB~VG~#ɒ֝o]e3gZJd@N'1x5Y0v*Ky70 lϙyLޮZ(;3]vKɓ'5K\RQBӹ:Jm$GYe{(*a܈Q7Κ9x$n(Y26Ɗw㥷 3i< عGNfl?ǎ+e;8heჴc447|$z Z3vmmml߹=1-|ꊫq,_mzv-X˔#;.طoI}WJ(ly(os/h wyu-mMgnv7'jnAKކ$Cdqwo_w#Qқ6n"ڋ BBwe(8IBquD~RYzUTyU:@q~ 8^6pVFyNn?b9o&0:mr[_[,͉x Poݼ*`,!'c)8Y#W7&Nq)Y{;UAm }*+h qWwn`(/%:lΔannm{[eqYs|GsK`T([u:bUfކ!zRj.:#*b[;>d-ЂhS1YNtWu_XtV,oI 7o]5|<.7Fϰ>h54[[QXdK@y_F* j5Fc6CG;|$0 L1u3!: I4>$[h&\:,krnCJr ?}Qx-&Rmةz׵9c`PY_:E,{O?~-ӦG21G~Ø1pxZp(34/;,]st7~yIVϼߙ57M`Qv71~͍qԞwg@~Pg );LMͰh>B/븂0'LQ 0u`A}n`@q+k'7>S t}Z 7c\jpB/yyŗqIjHQ]SDK˩*Ț?*xꕗxÙP_\aS^F@NɪE5y =۱-kOc2]s)"FFIQ1=¡cǽΨa3aĴE9NbT L ~=;\Ϭ)SYcK.6WRaXU¾C1h^{uJK4a"Ue54af՟em* :u}s3lzDO\d#8> k a'ΦD1m3wj{ߧ$,,ëoϹ}c:P*̴ X\ΏzçNu>{W jQfg$-K{RwOYGihk U2/歸G@ZMEi {N4&fĢ9|Q`) πt(*(6޳`A;^ gדQG!ͣ|[XSK߂[?3&JXԕW)5?GӖyYSWz^O-Ծ[OT[Jw7Ws.My372Em9U:Ue "uM l: G~^)#L>g_<7n?d(_N8=msaS++h"p AH3/ۖbt>Xr%DIg[āw7)x{R{2f %]J1dxwZogX[Z]MwPTf9HZ;H` 'xc<ƫ4$e ܔ_PUo~`Q)_y&uylӾSijnr6u=Ycpq"”q㲪74_ゎ:)bW[O>Ǝ2jd~ =k-1o<zجYfYqI`Oۖ71.Ӆk+YVR>FSC?DMRr4{ _$:p ւRh¢;D* a %c(~GzGZ?kgiu<Wuڼׯ[㇏:^Yٔ 7ɱ:FLl(-,.!(0 0y'"?Es?yW;#;~"Ԛ]ǎ 1a*K(9^۞<[m|~:csWBX5uc?䟿'QN?PH' %4I>Fqme \L{LFq"`ي|pfx߾jv]k(K҂2vh YV͝U2̌aͬᣙ5l4 &NW]?_2«1u'!o%pytsA[Js0_7lJ)6AL e-eAۡ`j߸K|fV|%*HVc8rvv~I盌6wҦ qIO׮k[.PK:e54þHE)w|ֿrQ2m%߮{wq )ape_6D㠬ca豄G{5|ҫSajRkv33O VyAp$i2z᠚=~ݢ8B0V*lܿ7suǑqnIw)4xip=1uX0mMlK3UaMT)WV2 "@ua3Mdņ|^p FR̙8%*e<_@mNr"W;廿x* Jg͘ {Oc$BU 2_aGg׮FW2e]WVGk؋O2-:&-3>"t̍uKh{ u37c7l %qܰ*J碑~6uy`/u"UiL_󲧍KuqC]A뺲bmi3>`0(-lݳw׭Caf8xi_Դ1q!"py ~肤 7CC1z@ޚ9y57ԁÉdW>aeX/2 bZfN/qh׶be%f$-lݽVJ4jkGC!0@n\|"Q0.YP9fA݁:Yu=R*椯N>^[T86,qO{c>1L5+^D VTse_"sQr:nN3(\=7<b EL0^].PHWi rV4'=dI38^+Wi'vYS.W9zb7O eS>q^]sMğ$ǁg Y]7z"~LRܰ|V ,Ծ[JV֝ [41>ܾCjE<-~cD;|3gpIuF&L}I^ `+ 1!MAFT$wٸk'3Eܺvg "pBTΘ`!d ]z9NKj^ xo|Z#Nw8]Kap,6"xŀw~oJ¯2:dPSQJ*Kq3l5}l+vM`/d%|ʛ*l<|aWt48F0K|Rjn?W8?Ff+X.+?y}j`ӇĒ Fe̹ *$œ^-*0۲<0JZ.rsFMǚsO2 L]xk  ! r«)RC^] c:zJ\meVwE.uS 4;o7Qb"IwP-& ƢI ƿ&R䑣xwzi -}k2z,U(Pf̋0_9Jͧc6JSDê[ym{\?eNgpY5#k>oۏx!A8w ysT,-K/j$Yi ?1o렵?Eܷ'Ny*olXCMr0/c}oX쭂JQ\\LEuݶgVF]ۆ2S>wF%W/RLpɔi][c&5MMkh2 YŶ Ќa؜R):o3:Wlf,*XBy7t=i;A;70h*JJ_Wq磬=( _QX8m8`άLGLVyETO$b/me=l,IZwo{:jnŵ]k~ra,q#+/U$v9^̜f8wjOo pXp@,ͭubsolRJχC(i EZ|/{6JW^ ƍ5'Y#~UNm8YtCzufIM.p_榠 jk?~cm$Bap K)no[6TNQed59[D\kIj oœ}drڳwv'wWxJ_O pAW>,?Ceվ$3tpWǯy:]Qߟ~!0x)Gӂe|;Y\E0_MZ(P&/ޥV;<[FhŠPƒ aR^*X`K:˻h?o%WH%C(:`6$,w5ԓpW뗗Qo. \>/ IDATI[?cNA{ rM3_T|ao;r=0vOtۃ?dwW)S4D& 3F[n cnz=UGm LA)^Ymk:BǢ9 db}ǡ0Xݳ7w\o=)VVzl 1}/,|t0ێN8T)Fs޳]tCR[ڌel;~0-i7MbqUǁ'BS]^AeIZؼoן" $wN1V[xq5 s2p0>+ﯤ'OcƤ)l=ǟyVTdE 8^ZÇ(E7gS&Lb!Hj+I?:qnرc*ڒ +PUPtXkqx?omZeQ)dѼp2=+k Ʋ`, Ā wiK&7 Bk kV1v0=ِ**ռfm=EF*scX7372ΥM Z坷czs_.MٮFjr?GLxXaM*dwQ9&?_n[t%gͣOai0wcZ>O?,?oqQ>݆gZK*B0nPϼPG_> w0گN5aԫVZ}w?!OhD\U#aZPM{FE* ɮաlZzgCwGI_O=GGr}~>-\:bbzvpDuP*%6 68ʩfjNR3r8UݻU{wPR\\ޛU]ާ[@ g`!v<ű$%Nn{؎)61`30fMܧ3=odɒEf aNXs+_"q#U|D'A}Sk57>re V8 nAlRCۥ~p1p]4t%5w>(wQL1cIRh=7ׂcf7 C^^zu&P>)cw۩ 9s9s,4~v= 0\}E|ILN7W "pBU$a ?Bso=mx|w7K*[TB4|f&jz֒I{{(m)]~*8}BY&T@:d"flM 4`1K 7?%x}mMsfh )19i$Zŝ6l&@gWWԺLKjTk kъ[m,VYs&gb[CZͿQ;JsCN0,4|Ggw;H7sɂ~/54ǎfwKmcOw{;ظg' Mc]t>2SD&ӝdi8NQM~*yV)2-#V+ :c`l(N}ݮfDUF^\0 p:/(ru?wK'g\+.Wk/ ˾ﳭY$<^T~?$L0̙>77mp ~p;_9@?0 ~x;])ǯp$-JsXs>[26/em)5/n,`G+n䴟Y&2"UKUm2]?Ӣ}'&hF-8;X.$bw6+B҃/SM`]oAi=5ʆ[s3._FGʏ~).ӧ& >g.O_XC*M߱Ȁ&arMcwoQE43&czd pW+e\ &UcU Dn]V.56m{~voyƄI$Um RޫUώ>OO; a3  tgsA)m۸pQ'PLa]\k tˬ)SXspzqñ 8EbUwխ.6d=ΰ*SH[rZGҮg12J}ve55~g5|^[AߺnVnVi6GJUy-M#<-hmocL6-wGkex}fwu$L!IވuK6wV%\t"& OqgFP| .#l\pRe7Sc h?\vG-YsH4 Zbl_r9*!po6/!g5O`BhtјN3}Dհ_?]PdqJSN)ځl;t֔P -%'~n)=kn$x%57 čguKZe+_n/fǻt4&ijOK.*̟^+?&ƿFF^I ~}&a!MZվX۾gF#ˋM0*2&Q?1f4&I^YEr OvX3jj c5?F_Q+^M9V|Ok[C‹ Ev5TsNc3Ga}~`,-1.Y|vbɡXMX:[ƯaiΘ>mw03N2=2p!NNz vnBbk+ $o2~^m㻭+9?Mxu*f7EBm, V:;*T z+mn~zPeɣǁ ټu /_aEݝe^Z8q3H[G;^O,õ6MC 7ˆ1'P~ (ct< ԥS;Dˆajn.{`Ee,I5e*{-u ҙ蘳 `ք)Q;MV4551vXרQVZ֊׶lGχdMJψO{W7o %$h{=R,I,u9d٣Xl4\ԫQTsoZͰeԥk>n-XBӄfoҕЃz>sDKԦ|,eݭq5/9˭׿&m^۴7}=f#\-ncϿ П6O32G;fbg{-{z9wU)n_ rVGM$?kI( ;~1"|O a镯ܪ?ѝ.Re//'6~ӻ;q ~gX8m&K=/:oŦ{Xc&;gY͍.&ۿ2ZELJnx7kIsvXa]atPxs³^ ϯ^IWBYw܁i;Xs3gNA20no2n $))c\y-ֆԢmQ"s&Ov^y*aĩc!m`Τi4$ӼM\Q~pġxKϻG]#7K8׿inM_wBRuL #03lk8b4=d+/ڕJ]CފN3eL3_dh w]*KM"q}u oj]rnTӰ앗x}F /X9g,ɕҞr|3Z<Lտ8gũ5 c/y894X*O}cނLM3Z%VlDcl<%M(SrXr?.gʴ)\s|G쒫bVg3f^Ob3G#U2~@>>ju 倵{[۾EwBʫ7n:'5OdA*fL'MfhJղ⋸ iN3; ^] .g`WwwdFwNe}!P u̙e{RMA8 6oH~3' y l;q{njLaA0!YF{?k̇?Ƃ3"QbBs3z{quϢw5l޿;8S;?Dc`L>e!֯:yX~w /my z,2ۿ/snSg勖H9g6f{mܽGsN_>7<ꋬ۶\.Ǥf]p&ge=^'{vyc NS<_:pϣ1C Mh"_#,{%VnX5ggb.<2_jtNƎcc_Hy|C4q&#o܀Q*(لw]v5o&}{6(rޢ%Iςۈ^v9辻91bvx|r^o~tŞ>_3_hB3aI᠛;3(]8@Sm=cGdGa>ġÇt3]oߊ%ähEѮ,Xm 7v,>؋PN8Э-m@Wق9 `IGt]P"ܸ8[RiN<ՍV?}xcFW_נ4s gr*#jkԑ㩅 O+/& rWGp I.xe.r y0]m*N1 q=G^ p0lgS &'kŕ .dzk)Msm#K-͍M\v~Z/ǘ^ٷGF)qμi 6i;׭%Lut'4?~>f|SLm"8sG3kWvx~ 4psxsI:NX΋MB#B-pn i?fO^_IQb]u9 I9v oJ)gI -ukh7VkӍ"zXO6Ju%!\h_:L"r1v*_ȧW?g]d}.y|Mu5~+s  5iF֖]`%^8&rmH`uw kr|qAF h5}ٚR}PaLtųo*Vz)odvO ~IFI1eVL.? rS[ՑS }O'?K3IҪ9/~/;@[x異ƢN ܰV2637bY2rvFi GƒY&~3bh2| U¯[Oyl҉2+u5O~;D"c}A&Oize]yH1:Q˿~<˒ XۄMzB?V|Љu[D9"Wt*Ә@.o)G7{?ximJHW]lk=>}9eHDH#[wwzΗ]>2;hV~{vcWN1Б ',kbΎ^ԄSM(TTOi2GH;.7vpW<ÝOWjp f P9aʫfzc6tNWL7Wo~ސ)=z4ZvEw]2SgpX(^$P\xYL(Ҟejh?КQH(]# N}F\h ?>ƪyߥʉFs"~|eOKϓ ֐cJD֬wq'.:]mwɺ-dd`ݯtK1C[J)qƯan܈(`ڄI_%YhLpʨ X[{t+Pbq>~!f[W/NJu}11B{wa~oHG]_S[dbH H\љ]HːFvU!wU(e  W[*ɷALP ?tKx?[s]Aje8?'9m|4:rOE`iVY:5r\zyhj&Y$pdsˣ{#r>/s%qYK1r|T:W~= wjk kDMFr{טN`Lt2c .~T9Sk=>/\[c8w)Q&bK6#aBD=#"`[G{lv~qy9<@Vxp\JQ[)^߳WSY~{_//zہ6K7}+ 9sn*w\FՏ¨F7c6Zxhs _7hEGRwɌ-jGD?8osWDʔ(=2!WC P(J mʐ4&^8?j]ktؖ5Nf3e= ͊s`?Ì$ ؿ}݃rN#ۢj{$sѸְ|5ύҘD2GJdu5T2|T&[XKN0x`6QAr#\!)t€- ^9DVi<~ !N E;?#~(y8Ϭ"FBk?8%by{WŽ 2BJ$Ѱ~hoerA~{˛>oz'߹.[Xz"bqQ q 7 9!]♏2P,oD㤙S0muG)ZHvmޭQA8!nq.E)|}bnmTA ځu{ pLl8S߶ _> Sgk۷}r Ō|# vh{[AyKfx)ruoC70vt}{ 57c.\x&'Ϙ pu3OѐISB@ =m+׿ɲ^bowgP^Ռ2@[._|rg2zD#9`ĈXkieY{KZ1h]Le@9ؤC}b`9.juW'%]_G:,d{ȾíF yZ\ r_€OZ3+9uʵ*']<GC.*pd'ݨ|1)rzQGiJc O.,Hcqq>ڂS``HYEm"E"g(xt2 iHH+|: x.n6Z [RNdGŸz;6eK3~W{ptsT@hwOIiƻn,1trdŋՐLRp_c9H)UR iڳ;v-MAؒHh]<2l@.(^99i$haǡ<⋸X.;s1cGaW~zE\opy3s<z` EcfcX“2}$?s\قٮwb7شo`{. ]u:fOCԛ,t J?!c{=8q`pעenenRUv `,Nm);+ouP7/bNlPʁQlm)EUaGi2 ؒ_H\Pv׳c2_ıP 9ɳR鵕RQo;ַIcր(mo / |a,Ȏ5 }SSR@+%pX""Q,7Is ~OvQ@afLۡGk*~ ǁ5+̖_hlQQa%CW.'v Uit|񂚕^S}Du~^pQXky> 1ZE$;v={IF]BNbﷸz)w8|}JE\xu F" u Xwߎ;U K(֞TGEm VW8X> nKwjW*ot𦇂l=4&3!+sA8\7Qbhi+|Gx@b{qƋ_{;Y )aVUGV\\Vo\99{u,-tW{OtD8sHցz}okϫu$a#Ӧ+9)F~%hJ"E{.ao+5S E)UnBW>yr׃j?>}LUHpbO5>AE!pi5܄6AOyMx%"p0W{kpHѳbWr}tH pwǽ>AKqR.#gXgvcE_C9H3W9~f WL#{+ x9 Ea@=1 WAAAoA9q!h֮8Z@U-w]SD A8ރ|F?R^; Q~T< v}Qo6α(Wkkhj1ǺUUx|c#w^>+eKTE{+L_'VFoUAAV[8adpu=XPq .:p!a޻ >\}|~R匝[ 0e lv`k8{    8AAAA!   °GAAAA="p   0CAAAa    {DAAAa#    8AAAA!   °GAAAA="p   0CAAAa    {DAAAa#    8AAAA!   °GAAAA="p   0CAAAa    {DAAAa#    8AAAA!   °GAAAA="p   0CAAAa    {DAAAa#    8AAAA!   °GAAAA="p   0CAAAa    {DAAAa#    8AAAA!   °GAAAA="p   0CAAAa    {Dxi_/A ( _(~>jO{AY#UN@_-l(%6W±ca%!  pd( ƈ@z"wA $)-po8P;{ n[%kpJ1%Z rzR|a"[S85>8Sa!Ȥ/pBe!PB28z(PG'Np:/\'s!].8ָ_ a {Iϵq{'Ae3GU~1҂JȋMA%)چfsvԠmwߙ PschSikc^ %;Z>’UK\z IDl{ N h-ʂa0Qʙ2o_4'F%̜8Vlڽ B8~}yop{~Ee''&1c Ǜ?-$!ZN=ѣػ?oHW(JMyõ^;.XJpgnM+paq!ނ1Тy_h'JKDu#&ZIuj@8_)]y{#b{Mm!i s'wI&D26wモ(ϙ*o'NtbqabH;Ff.ꆔC-ֿϳз s-m?ȦՌ[cL㐱_Ư<pö|XH)&4 i&ɛo%BHX#.$ y[RT𕰾edѲ#=x )r+u-13Oņ\cױ}Ҫ`|?_&} ,‰g8kj 5Sg b8pƌ\q"l\V bd"A~-tsGzyϒ0i΂0&(ǀlID 24jl{u:]y0{mWHc)h;- ޳^zA8|_KPSCJa~A|+m,,Z¼3Ix8X,Z]wv܏ 9~Cdv/nLmͼYs;f {guj3 Q[ =g.7V"0duXDI - $>U @јeh'LͶ=ؼw7J1~1 j Q_N_8 أFͷ#xB*}66 h*ڎ{Axrr U%d G/vj4p,7 c{v:{5hv:/_Ç5Ji[HcCqcFF{$ؒ4~nμT7x) S\-] bژf1u`u.IWܢ)خq7 o u##&4<?6u (_8߽"?$@0,q#σQ~ ^󔅔,>kο8ws怛|t&|Ǔޣ m K9kϹO97hZ x7Ԣpq2lal[~#_L:(\`IsL` 7VO ƕrX R4G U+K"vē읣wa7q> IDATe!_}\>,qE4q/KA} 8%|򆛩/_LGJ{‚8{,}2{-LI5ư*ZtINR+_9fǟ+N[g>ϋ6_ IH;j][ʧϋ PSp&A~B{5ݽ8ªq|1x@-a[>Xzz@s*Spd[<0^O]8c67_hgݿ? '>3G|O>Usm58Y.G)sRxڝ[@9t; zI< g<|V;[7g+1aG5uPY.?s čT{ƃ-|oe@ү>N"cNa7{V{ñw '/k *]^N2ʈ Bc(.>3gRMr!7햾gci[DLXb"z9^ٱo9<R#}Q.|hׂ0\Pܨ?|/X<~&u1gF3f oc 7tb"a 'e-fZֳ`Qx8ف=gΡ:J颩Uelع u P X(V(0Ōӵ$+O mٿ/){_U8V &uOSOS%u6`5@v {płPm J]|!olXSo!,kۂW,3h.u~m 6 90qn꯯%OţHY`ǝxэ36 Y+ͧq#^,5z&"}" i6o85W\[o"Oh#QgFža-.Ѝ37 yyqêqCSamP(RoT|k4V1mi?{KGEd~;(WUmcr}e!bd]geoxa<<*r<9YwfS!{M|'?dfg1~}{m/0Fa넁w,} SeI`J]o2RtoۋDž_HК)͔ɓcELM;63i!/}!Ggdo~L~p2vdpwK,-t]|o57:(BF0&|~f1xE_rlczD]}q(~}ȥgˣrދڃ#pb]zLގZc)ΦYXy-3ؤZt*g,g-̍#F+2I{'I&b"h)<7㯢 W9;qS|L?Rٛ~XE_>Ɖ"'x "aE䷶ߊvORXl‹y?)p,<F@ ΎLyGt2k6՗k 2~ Б[ .9Y/¼Y'1.5ì޸_!vsb {=ãP~9a͍+\'ol͍/m[SX!]+q2[BYIK' FWPSR _8.yVgA )c8{UC_}LBU9j{ǔ%yMϯf@nفi8~퓶]Gf- 1~vÕXh\XΚń]RO쉓X5p,Ըnb!I~콿{%a`Isres,ۭgj0xf[[+HQd5dhڒMGe$W$ s~͍0s#GVZw[JNzUO_W|R/ >Zͣ{Y!L+ZPU~wĚO˖kSLg{=կ( UARoص՚H4My*Zb}qQ6&4cxNW-`g_{\R7j}?jZE//>x:Gª| wtY~*n$A{DFվU,u%Ԗ {̎58Csx~jT~+?1v#tsZW}r㽚whc*mKJٖj>S g_8EE{N'Z 1Y0d|94m#Ibׁ}f;093g6'eiJ@+ B }͝wg9l69IB$U@9V't鞰A IL=whH?G6'dM8Dpy9 ϟ?6 b^yMZv[D<]hI9T`;Ŏi3cr3UqNZ΢͖!H"B 05KfL-W]𪾡:ëF IQRpW_a}`_~//IȀKEI8x8W7I5bg |gcY$s>gYmߡFĉ^Mm3݉6l`h ŔZ6B7gs^W TZŀҪwL/XyC3S88]" =?Os>7on E7÷) 1s#Oai(M(J`k4~ˆʾ>[~s3 dG?%oU:$&0)+ H"B,( 8fc˄&׳Mg.Y/Ljl4/5u= L=7c8 rR+ #( ܷX5v-?*Jh*Erihu`i`xI%_g%]kQ'# n=Q\r1eHF>'z}m 2+`>,csWaҴ$, |w;Ќ)3Cn Iٵu72 X=3pUP9#iG]ڴTu&-r(Q-V;F]2'OwO>mі6X"Seʻ9 ^kMCW,֨X\'uA'm (s}KD0ccenઉR⮝V.u*PQZŀ0xO2gB !e(c0?nzoBmҍwT▷n[Xs_NQRE@]j^6"ݸ+B 8h$tstIR™VZ΁Kj!"\O:=kO$4 ;/A2,L;1 gK?I|2ꊳ a=Ť4eֱ#JBκ>RĴ**KfyusNDUғHTFAR.KI)L 1E)3L8_;S9xaP-пGdJ ]ˏ IdvTz{cQo݀֙|0;JK`d9ks[ßVTWW#;Z]{#xƗs؏H߯)+e-Lœ0n(zW`ذ9(!t Mz(ܘ9iJG[d )k`CO=T/0Hg'T _vuouN5rH3wbrfNXb3$w_I7R'$!R0,E ܿG4x NGUé(d3nyac8M<~wң:"2KUx[aiï2nOF.xI:Ě1)2,jxNi%1@Ƴ\559i.@ͣrQKx MwnTsGpr%Pޙw+ +=w|i*Dz,o=38̜4#T H_79i*璾Z@?/)GK9;Z{Ο<5⥘1K_H ފ7Nq/Bz筷1i $1! dk/տM$͏N9wͱqb:.H;8;-RhWL v]f'P4Q' Ҕq B"&/qqli~:øhd."8HqO.iYendyn~HQ,J,l*cSgFs@^m[C")1K&'sM l;% G2|c\H~![R`u-VKA]C©oDJ[:i,ٲ]%D&zh~ (*7@lVwlI^R"PhM*2nsV/ iqD7j4Q2;-[I_ȌJ1v:Ï@:ƛ+v&[)D2`;%gD\~5˖-cG%9: ΢HƁm-8H")rS4gۿx"|0C)8|`%۳{"CA&6`{48Ue .M1E "W^ISMl#RpL{spA9IRշ?*nehEnv46D]^/"dUǮ>{2#:"Z O봯JK}mjϷ [); FM XJt7W.c;OY IDATܿ?L8aŕ,+O7zu|crW8 Tn{ʻFW^ҚJED%NPaUqnȩc>u>pue# ,Oܒt}ˏ#cDQTݟ/6=OM/ 7>{7_h8LGD ,:ԏ2)%&4 Y .9c -^#B=s5f<װp:peKlZs  cpvÍL>N5{guӡ*]Oa;p팙Q(H1oo瞢N)'^xλۯu,Osg!tͮh{$~!|#P% }46ggA (ѧOfjTR( L5~I7ݩc8߲o -QRTLm8~ kY[_?vm5zUi!S .=<'5_5{w1xmd1pgd!}.|8ܲ 'ը>,?߰e6O+5dNZRJc)W^EJni4plGpY"FWISxa"85JTNF˜y>wM>yWQ(*Wy+˳\"J0,O)}A4C1o[}77pTD$MQɚ|_r6?=9j+Aeq)hrI|RfKZ#߄ kއ nA-E,lI2ҨӯgjEY1v m=b%,•BHa j #T:aL?rYGyw 1[e#E' %F0z@FˬX7YF$ 8-L2 ,5+Y 2ĀV-ooYOc1*Yt޷=T=YE <%?|Јfy"[B t:oKۿŻd=/[ֆJD@Θ<,%yUK? cp}wj<(f\I1c}6,ܶ?7#vjْSoK\j:OJCߦeVо. R+.:UBxI415݇~"6oST.wٻBJVfN9'4rj | ?z_= )]_{lAkD>2$RfGBCYrNZ>~ֶPtM5ig*|oլuUW2@ޞ)]/9?q+mNvx OTk*\u ?s0 kǫyp3LFs*sdHGaOKCA=u7aU>XuT7ޛŤ ̕93iu<0qhHEܒ-HƘ5mk=bPII_4Q>l2+!IJ}z^R*sk~;o F|*b>e™Dp9jϩ5jgIu}m_L"vWyj(+\ի,JBҝ-iP YAܴ`1Gen`z`á>E¶h٘=^Fvw24>7RjƔs(m]ǁVhzyezc4E]̶IMܒl㰵D%>Gu,Ť1cMfM8'Gd´yW,029S՜֖6W7V|vHH3 {8d@D>G+7#ęi]f~#D q #{.0gL`]}mtj@_zUʧ***(& U\쭝qR _E 5MNFi~G~a)Ï4a&T bl8 8S>,  7H,$Bhg@}zT.YQ'%uZ| W9>nxPWYgHn)(<*)Shtb8vn Rm4H`3ylIQq(z~2$] Xk+u7ᣈ&5q)"T:<́15$u7!<{fkA g-f/[LCK Q-*A<zXv%-$Qv]X,r~w7mۺpx%JaVB@w`?ta}-ͼk J2nD oo^ܑ-^f@G5ݜSudA](`+v-=jGɊu벚$*)3# \h,XʡwE%5}ed^9 7inja qURmkٷbqВ.0KoϬۻ_S~,#A9M/)7ֿw/6(ArsAYC-~p|I+ʏvy]Ս-?phEI\쟯$x9$mqB\ 4Rk"T(V}pqm6)~V|<Ʊ{ F {y8)uPO@R PnB ? 2ځԦJ~T@;-E#  N9i:(-iᅥ HJ纛2g*1oGv'ۉ"+ڍ,I9!agáN xOᎬafc7\r5Q[b.z!OwQrw7GEeCTV<./6mj (=/~7,E Y}3 +\BNMЏ;/74vBe!P  ' ^f̒իHjSƤ:{O9Ù`$`MKP) r$@2"<^]j`%-P?WX {m΅v(-,‚Rh"6Ydke2,x\QF `}4OADTjS J$~D8| bXtTSwAW%7oǰ1L(ף??Ehkwl%. q8Nt܄a'S \=ɜmr=XvNG`)Zk,!z\:¬|C6H+p/V=M:L;|$rG'j( )Sk_DmeTW˒4E PyZeGHv0,^L&*{wqA!_y%H`^=Y8Bs ,ܽ2mD>VJeuj(莜}#ZY}=05QF~Phhؑ5a<ܚuY7Swzl'$-WV lxu7`T|{?a2 2mM('#*H)Z)\ty}\@<"l)PJ`DjzZPUVΈ~!+[?2,ش?ϸH9omehAr8^ŮC,] fvmuU"( HRGIe,^y/ylwȾњf蛩 }3i]1^d:8NdBQPkq٧:D R7Xd/THu]d]E%L<ҏNY`G0;N9!SUwOI)Yiϸ/k<4ZƠ!R%kW1g.N.uk4] r>z .v6౗p̴v#R")${T/n cGЧG8 x}Ϸ11Hnd+or+Qx! _$άosgb)ut*{jlضDTf'HѶY/t7_}}%S'C]M*՝̺sYcO<+l"f̐ < r+eaԝZfpLS)YkKwz]骯"JQ$wtמsL/4OC`;=¬ ?D-'C!Lgz tյ=Z++,bsxҹ,ݱ'_z18.l<Z| G6kλbQ+D[(lGS]ޓ>p J\p (pe) {3- %HYW3~R?nA2*QȜ\yOe5uBy/.'._ƈTJH I|<8u:BN ֩0ҒD3f|(2lg֎9Ƅ4MDoY qލ',b”dp!(- wGf#c+87l7}q7ճ`廬ڴJ)NjuwRY޹$I4 AOw$`7,5r$$ l[C@XuRPVOy6cq i("El[<$U)dZ 91iRN+{ m>4:lx}y=6'23y{u8Z~ O##W?` (1^X2|SP`tg?Ϸc8Z0v\~ ^29(ֻbU+ (ioCj$dӾݨjdjh'X$3|<#GP;|aT \CJE2LV- !l>(OۅbTO8|im]N\(Bo,-аh%i:;,'pCj(6ל!xFn}w=MJh}LI)}႙ hnkvykV_թCn| w}9:=)\jwYNIi1W=$?l53rάʉy~BI7z6gL6|t2xhupa)J Iך΅3@9ہXnGuc}RmaїR>Kv䲓U.:iE L h T>Ϸ)m$poөN~GC$N8 ׬bغƌhgtOȡOWa'Gc)/)Lz>fRHJSeK7m0̘1[m#7n RrATq`ita Gs&gɉp 7/ݼ }rɊP* BW :v<㫇dxhjVaZ_RHZޤeΠlSշ=xfA%qť ӏ:f^c'D^(Rz*vȏ[I>O/2P/tc6C!Ҋ#G|4ucn[XhW[#Ͼj ͮy 똭SgԆkHi%_M_ɓ~|73J: IDATvϱt8UF'߰ogrɬ% я{'~3!J" /?N}[ت ߂H~u5kt2R*KCV͚[u N$Z@(Ԁ"PSh".oz{ ~߰jvPwU*^e̍ (ĢgUZє>j~^Kg&c޲%l _L Ic)Ӗ~LhMknB k ouai,)f?)hklu\0AɲpξȔB맞JU =:i.N~.>Q@ %7(v$2ed 8O5iz Q,IsKC>5N" |V.?(THeSEcz޻ 1sv;W8p +超 {Ymʔ=^)-:?v+jCo>uiI&L gp/ƺHHPV~eAg ,3ݣ_*#PHu<2=-#G>] B-; L-xji@L:ԯ^sDd{FVP4VHnxcIEl24Zf^2R T9SZHɎ=;k;Z%R,ϤA={3`$)BN Sw  ^=[( 72ZygMKfìڲ 4ߑ8oߥ=U 5V(WUQV駡fKK6: 98֧{a>t-)HJX~={ZIx@+60)o䯳(O\aJܬtd"gG5_B#HebMjE!v)\=6$RYvOI4$d~d3?8}􋷏J>|+Lkrg AA}3w.G=O~K?HKxBPR9TF ÜkK¼fnzTǾ|}˵߾ٻ7* L۶aSw^̜|6%iQu@:'-D (Ǝgn#ɁC3!D:l4'ďjs3K׬]%}ncaH`x~ݍEIE4uLL1NqI\DHIFyD_%q0'k%NCOIᖖkrY#k(N*JuGqB1unP60ޑDzxyJ"uهr _A"]KL3ΏFa"I}œ- i!W{ u%Czc@10sTc^ZIjƎVb$\$gkGnGGAā~V.7$Nr&Kft~]wSeartUWadi4v_*DX0*$X+o<)j+P% QsZ\Wn3Gajlu hCʼ]RY|Ⱐa9p v*Lo{kLu[6K->[:x1~E #~ɕ|OOm҇mw\pgޘ$ӌ0?sfP4מ5e.WG)P \2/qJr]EU١z -.7{(i@G!,zSͿ 1lA˲u;mTut"JqՌ ddIuan/\'ȿTtٕ (Ϋ M=v >/f/g٦ LS?C1 fS'ѡF 9yZ]299n۲39~=|W?@2͏H)t!UCwKF"}Ъ**Sehhw;,\18eKIXƿƝy#SBB#%x5?n()r4&UKupȱ~,\u[A,ˢWec cʈZJvS+:{<2 u)PY:h4.WAa ;],:Ϥٰ[H$(`T߁!}:c˞$+Ǻnk9A?I*a-^́ˮ%bqzX]X?qkdT1@*NIq+8LQ-FE$?Z'..ͻwp ˲,)c`~T}&Ys)]`䰫DqaY7^5 rW_ ! ƢzYÈݴcʿpjW5`Y=+ʩ: T)=NV=tV Pt{=^1Z uzjՉ@Kە,% fK33È"-$h鞂Fh/I3dir2`RX$lxe"\Z3k&A)Eɛ[V$#2v!RhVdXS(p3)dXfɐ25;i:K913zU{!}<s[?4Gqǽ׽}>PNr'tw{GtSWGk q+hLۜW}5Dׄs@h\T!Kd#9sUn 2̸ܽo^H}E>eܛ2xտzVKdժpٲpy[7-˓D[Fgf]+ZpY=f{Է3VcWUZĥ߹c+n{oI *2G ء#| lOش};S ͹wi6IE/fy~7 .)eV}ݑ|Ѳdsv=p8%o! !Q?#rӖMcx.4Z4HV[1X1K%RE6k7HX if~Fu,78O҂j}}؋q82Kp2`Xi5d+4 zK#fO嬛|G@1dZm]%&~Gymbw %9#9"i&XfvuugƷvM.9 0l" F(ڷ\~5*dI i,")%1P  g>Rw3 pX) $xsq_F9Z. fj_9;OrP.=]'_~0 V4R[?_.8K9QQ5s ,Zޚ˪iM#{RJ.õ Ks6 ,Ҽߓ !̺0)ci8wbyS]~ wn^d޺|䊫02.F[.᱗_dw[2 I):<-ّ%h$q ARʌyNsqט\I\"TBqΞ{ݫBw3f~,]k/G`<3鲿?<ʋ$$%kV2鬳}.|[p9Sk9I'iL;خ<[GXz9/s3:@!vՁ{۸s7#Uk!$)m] HcB#FzjWͪcYN ɦzs%r^뱘杆l:BtR"k!ʔ`Mz*F`u-^dR /R=0 &&`^NBJ^5u9҇ޟ]0_?mPBx?u弗SX8e=-F.quIJ̅FrYi HZ2g=`+"paԎEUY9wKVf})Ku!5DXIs=;23 6QPL9|KPV്ÿ5"Cϳ짪j-۶e.$vET"Zc;"bZǡ-`an[qtt+=4aCQK pAjա\h)Nv!ڿыu_}l5?'')ͽ^ވ:|K_e\y Axq|~ԣlsL?=zQZRf6+iI 2)dOKA4"~㾿,e>g)v^D~N߯l+N(~]n/i(l"tIILMu 9_KL7U}{Xy3we%:ԥ64dlkeu?hbzoA^͎:8a=aBM-BWr1?<qjwtH,e̝7̕&@:NB%Yd;/-:)ӱ8is"8?_RhEQ_wG{y, JД7tle1VN/#$1 m-'3uVZvp-ծu2zEGR7+n2Vw ʸLt==g'fu#z(AE")tN} %zM;f9w ~ P9==ƒ:QǑ۝##]WW֬Q($;_Suz׮]mk#oWwUόB?az<>*쁐BX¢P@q{Pu{G;WyyqQQY\GQMB$! IHUTwW, K:鮮9:{NyGHRo:M"\"p &